diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e8cbc03..4d97e10 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1 + uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 with: egress-policy: audit diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 9c9a61d..f26b47f 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -33,7 +33,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1 + uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 with: egress-policy: audit diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index ffa928c..3fff60c 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -17,11 +17,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Harden Runner - uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1 + uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 with: egress-policy: audit - name: 'Checkout Repository' uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: 'Dependency Review' - uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0 + uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 799a1e1..e2f34db 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1 + uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 with: egress-policy: audit @@ -38,7 +38,7 @@ jobs: bun-version: latest - name: "Setup: Cosign" - uses: sigstore/cosign-installer@398d4b0eeef1380460a10c8013a76f728fb906ac # v3.9.1 + uses: sigstore/cosign-installer@6f9f17788090df1f26f669e9d70d6ae9567deba6 # v4.1.2 - name: "Setup: Install Dependencies" run: bun install --frozen-lockfile @@ -89,7 +89,7 @@ jobs: "$ARTIFACT" - name: "Attest: Build Provenance" - uses: actions/attest-build-provenance@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0 + uses: actions/attest-build-provenance@0f67c3f4856b2e3261c31976d6725780e5e4c373 # v4.1.1 with: subject-path: ${{ env.ARTIFACT }} @@ -100,7 +100,7 @@ jobs: sbom-path: artifacts/sbom.spdx.json - name: "Release: Create" - uses: softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe # v2.6.1 + uses: softprops/action-gh-release@718ea10b132b3b2eba29c1007bb80653f286566b # v3.0.1 with: generate_release_notes: true make_latest: true diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 5cf791b..ba87ee8 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -31,7 +31,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1 + uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 with: egress-policy: audit diff --git a/README.md b/README.md index 70d1dc0..21945d4 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,29 @@ This checks all `.java` and `.kt` files in the repository for correct formatting fail-on-error: false ``` +**List affected files after a failed check** +```yaml +- uses: elide-dev/format + with: + output-mode: file +``` + +**Print diffs for unformatted files (check mode only)** +```yaml +- uses: elide-dev/format + with: + mode: check + output-mode: diff +``` + +**Print a fix command instead of file names** +```yaml +- uses: elide-dev/format + with: + output-mode: command + output-mode-command: make format # omit to generate an elide command automatically +``` + **Pass extra arguments to the formatters** ```yaml - uses: elide-dev/format @@ -87,6 +110,22 @@ This checks all `.java` and `.kt` files in the repository for correct formatting echo "Files checked: ${{ steps.format.outputs.files-checked }}" ``` +**Pass failing files to a subsequent step** +```yaml +- name: "Format: Check" + id: format + uses: elide-dev/format + with: + output-mode: file + fail-on-error: false + +- name: "Annotate" + run: | + echo "${{ steps.format.outputs.files-failed }}" | while read f; do + echo "::warning file=$f::File needs formatting" + done +``` + ## Inputs | Input | Type | Default | Description | @@ -101,17 +140,21 @@ This checks all `.java` and `.kt` files in the repository for correct formatting | `include-kts` | `boolean` | `false` | Include `.kts` (Kotlin script) files when running ktfmt | | `fail-on-error` | `boolean` | `true` | Fail the workflow when formatting check fails | | `telemetry` | `boolean` | `true` | Enable anonymous error telemetry ([details](#telemetry)) | +| `output-mode` | `string` | `none` | Output mode after the formatter runs: `none`, `file` (list affected files), `diff` (print diffs, check mode only), or `command` (print a fix command) | +| `output-mode-diffs` | `integer` | | When `output-mode` is `diff`, limit the number of diffs shown. When exceeded, falls back to listing file paths. Must be a positive integer. | +| `output-mode-command` | `string` | | When `output-mode` is `command`, print this string instead of the generated elide command (e.g. `make format`) | ## Outputs -| Output | Description | -|-----------------|--------------------------------------| -| `result` | Check result: `success` or `failure` | -| `files-checked` | Number of files checked | +| Output | Description | +|-----------------|----------------------------------------------------------------------------------------------------| +| `result` | Check result: `success` or `failure` | +| `files-checked` | Number of files checked | +| `files-failed` | Newline-separated list of files affected by the formatter: files that failed the format check (check mode) or were reformatted (write mode). Only set when `output-mode` is `file`. | ## File Discovery -When `files` is not set, the action scans `working-directory` recursively for source files by extension (`.java` for `javaformat`, `.kt` and optionally `.kts` for `ktfmt`). The following directories are always skipped during scanning: `node_modules`, `.git`, `build`, `dist`, `target`, `.gradle`, `.idea`, `out`. +When `files` is not set, the action scans `working-directory` recursively for source files by extension (`.java` for `javaformat`, `.kt` and optionally `.kts` for `ktfmt`). When `files` is provided, each entry can be an individual file or a directory. Directories are expanded recursively using the same extension filter. The `exclude` patterns are applied after all file resolution. diff --git a/__tests__/command.test.ts b/__tests__/command.test.ts index ce5a4ac..5bcd537 100644 --- a/__tests__/command.test.ts +++ b/__tests__/command.test.ts @@ -34,7 +34,7 @@ describe('buildFormatterArgs', () => { it('should build javaformat write args', () => { expect(buildFormatterArgs('javaformat', 'write', ['Foo.java'], [])).toEqual( - ['javaformat', '--', 'Foo.java'] + ['javaformat', '--', '-r', 'Foo.java'] ) }) @@ -83,13 +83,45 @@ describe('buildFormatterArgs', () => { it('should place extra args before files in write mode', () => { expect( buildFormatterArgs('javaformat', 'write', ['Foo.java'], ['--aosp']) - ).toEqual(['javaformat', '--', '--aosp', 'Foo.java']) + ).toEqual(['javaformat', '--', '-r', '--aosp', 'Foo.java']) }) it('should always include the -- separator', () => { const args = buildFormatterArgs('ktfmt', 'write', ['Main.kt'], []) expect(args[1]).toBe('--') }) + + it('should insert elide flags between formatter name and --', () => { + expect( + buildFormatterArgs('ktfmt', 'check', ['Main.kt'], [], ['--list-files']) + ).toEqual([ + 'ktfmt', + '--list-files', + '--', + '--dry-run', + '--set-exit-if-changed', + 'Main.kt' + ]) + }) + + it('should support multiple elide flags', () => { + expect( + buildFormatterArgs( + 'javaformat', + 'write', + ['Foo.java'], + [], + ['--list-files', '--verbose'] + ) + ).toEqual([ + 'javaformat', + '--list-files', + '--verbose', + '--', + '-r', + 'Foo.java' + ]) + }) }) describe('runFormatter', () => { @@ -114,23 +146,22 @@ describe('runFormatter', () => { expect(argfileArg).toBeDefined() expect(passedArgs).not.toContain('Main.kt') expect(passedArgs).not.toContain('Foo.kt') - // ktfmt: flags and files all go in the argfile + // ktfmt: only files go in the argfile (flags go in exec args) expect(writeFileSyncMock).toHaveBeenCalledWith( expect.stringContaining('format-ktfmt.txt'), - '--dry-run\n--set-exit-if-changed\nMain.kt\nFoo.kt', + 'Main.kt\nFoo.kt', 'utf-8' ) }) it('should call exec with elide and correct mode args', async () => { await runFormatter('ktfmt', 'check', ['Main.kt'], [], '/workspace') - // ktfmt: only @argfile follows --, flags are written into the file + // ktfmt: check flags are in exec args, not argfile const passedArgs: string[] = execMock.mock.calls[0][1] expect(passedArgs[0]).toBe('ktfmt') expect(passedArgs[1]).toBe('--') - expect(passedArgs[2]).toMatch(/^@.*format-ktfmt\.txt$/) - expect(passedArgs).not.toContain('--dry-run') - expect(passedArgs).not.toContain('--set-exit-if-changed') + expect(passedArgs).toContain('--dry-run') + expect(passedArgs).toContain('--set-exit-if-changed') expect(execMock).toHaveBeenCalledWith( 'elide', expect.anything(), @@ -153,7 +184,7 @@ describe('runFormatter', () => { ) }) - it('should write extraArgs into the ktfmt argfile', async () => { + it('should pass extraArgs in exec args for ktfmt, not in argfile', async () => { await runFormatter( 'ktfmt', 'check', @@ -161,23 +192,38 @@ describe('runFormatter', () => { ['--google-style'], '/workspace' ) + // Only files in argfile expect(writeFileSyncMock).toHaveBeenCalledWith( expect.stringContaining('format-ktfmt.txt'), - '--dry-run\n--set-exit-if-changed\n--google-style\nMain.kt', + 'Main.kt', 'utf-8' ) + // Extra args in exec args + const passedArgs: string[] = execMock.mock.calls[0][1] + expect(passedArgs).toContain('--google-style') }) it('should return the exit code', async () => { execMock.mockResolvedValue(1) - const code = await runFormatter( + const result = await runFormatter( 'ktfmt', 'check', ['Main.kt'], [], '/workspace' ) - expect(code).toBe(1) + expect(result.exitCode).toBe(1) + }) + + it('should pass elide flags before -- in exec args', async () => { + await runFormatter('ktfmt', 'check', ['Main.kt'], [], '/workspace', [ + '--list-files' + ]) + const passedArgs: string[] = execMock.mock.calls[0][1] + expect(passedArgs[0]).toBe('ktfmt') + expect(passedArgs[1]).toBe('--list-files') + const dashDashIdx = passedArgs.indexOf('--') + expect(dashDashIdx).toBe(2) }) it('should log a debug message with file count', async () => { diff --git a/__tests__/main.test.ts b/__tests__/main.test.ts index 5cca423..5402dde 100644 --- a/__tests__/main.test.ts +++ b/__tests__/main.test.ts @@ -8,11 +8,14 @@ mock.module('node:fs', () => ({ statSync: statSyncMock })) -const runFormatterMock = jest.fn().mockResolvedValue(0) +const runFormatterMock = jest + .fn() + .mockResolvedValue({ exitCode: 0, stdout: '' }) mock.module('../src/command', () => ({ runFormatter: runFormatterMock, - buildFormatterArgs: jest.fn() + buildFormatterArgs: jest.fn(), + WRITE_FLAGS: { javaformat: ['-r'], ktfmt: [] } })) const debugMock = jest.fn() @@ -63,14 +66,20 @@ const { findFiles, matchesExcludePattern, applyExclusions, - ActionOutputName + ActionOutputName, + buildElideFlags, + parseListedFiles, + parseDiffOutput, + isDiffOutput, + printOutputModeResult, + formatDiff } = await import('../src/main') const { default: buildOptions } = await import('../src/options') const resetMocks = () => { readdirSyncMock.mockReturnValue([]) statSyncMock.mockReturnValue({ isDirectory: () => false }) - runFormatterMock.mockResolvedValue(0) + runFormatterMock.mockResolvedValue({ exitCode: 0, stdout: '' }) groupMock.mockImplementation(async (_: string, fn: () => Promise) => fn() ) @@ -360,7 +369,7 @@ describe('run', () => { }) it('should set result=success on clean check', async () => { - runFormatterMock.mockResolvedValue(0) + runFormatterMock.mockResolvedValue({ exitCode: 0, stdout: '' }) await run({ formatter: 'ktfmt', files: ['Main.kt'] }) expect(setOutputMock).toHaveBeenCalledWith( ActionOutputName.RESULT, @@ -369,7 +378,7 @@ describe('run', () => { }) it('should set result=failure when formatter exits non-zero', async () => { - runFormatterMock.mockResolvedValue(1) + runFormatterMock.mockResolvedValue({ exitCode: 1, stdout: '' }) await run({ formatter: 'ktfmt', files: ['Main.kt'] }) expect(setOutputMock).toHaveBeenCalledWith( ActionOutputName.RESULT, @@ -378,7 +387,7 @@ describe('run', () => { }) it('should call setFailed when fail_on_error is true and check fails', async () => { - runFormatterMock.mockResolvedValue(1) + runFormatterMock.mockResolvedValue({ exitCode: 1, stdout: '' }) await run({ formatter: 'ktfmt', files: ['Main.kt'], fail_on_error: true }) expect(setFailedMock).toHaveBeenCalledWith( expect.stringContaining('Format check failed') @@ -386,7 +395,7 @@ describe('run', () => { }) it('should warn instead of failing when fail_on_error is false', async () => { - runFormatterMock.mockResolvedValue(1) + runFormatterMock.mockResolvedValue({ exitCode: 1, stdout: '' }) await run({ formatter: 'ktfmt', files: ['Main.kt'], fail_on_error: false }) expect(setFailedMock).not.toHaveBeenCalled() expect(warningMock).toHaveBeenCalledWith( @@ -403,14 +412,16 @@ describe('run', () => { expect.any(String), expect.any(Array), expect.any(Array), - expect.any(String) + expect.any(String), + expect.any(Array) ) expect(runFormatterMock).toHaveBeenCalledWith( 'ktfmt', expect.any(String), expect.any(Array), expect.any(Array), - expect.any(String) + expect.any(String), + expect.any(Array) ) }) @@ -422,7 +433,8 @@ describe('run', () => { expect.any(String), expect.any(Array), expect.any(Array), - expect.any(String) + expect.any(String), + expect.any(Array) ) }) @@ -447,7 +459,8 @@ describe('run', () => { expect.any(String), expect.any(Array), ['--aosp'], - expect.any(String) + expect.any(String), + expect.any(Array) ) }) @@ -462,7 +475,8 @@ describe('run', () => { expect.any(String), expect.any(Array), ['--google-style'], - expect.any(String) + expect.any(String), + expect.any(Array) ) }) @@ -515,7 +529,7 @@ describe('run', () => { }) it('should emit failure status in exit event when check fails', async () => { - runFormatterMock.mockResolvedValue(1) + runFormatterMock.mockResolvedValue({ exitCode: 1, stdout: '' }) await run({ formatter: 'ktfmt', files: ['Main.kt'], @@ -547,7 +561,7 @@ describe('run', () => { }) it('should write failure summary when check fails', async () => { - runFormatterMock.mockResolvedValue(1) + runFormatterMock.mockResolvedValue({ exitCode: 1, stdout: '' }) await run({ formatter: 'ktfmt', files: ['Main.kt'], @@ -597,7 +611,8 @@ describe('run', () => { expect.any(String), expect.arrayContaining([expect.stringContaining('Main.kt')]), expect.any(Array), - expect.any(String) + expect.any(String), + expect.any(Array) ) const passedFiles: string[] = runFormatterMock.mock.calls[0][2] expect(passedFiles.some((f: string) => f.includes('generated'))).toBe(false) @@ -620,4 +635,406 @@ describe('run', () => { const passedFiles: string[] = runFormatterMock.mock.calls[0][2] expect(passedFiles).toEqual(['/workspace/src/Main.kt']) }) + + it('should pass elide flags from output_mode to runFormatter', async () => { + await run({ + formatter: 'ktfmt', + files: ['Main.kt'], + output_mode: 'file' + }) + const passedElideFlags: string[] = runFormatterMock.mock.calls[0][5] + expect(passedElideFlags).toEqual(['--list-files']) + }) + + it('should pass --list-diffs flag for diff output mode', async () => { + await run({ + formatter: 'ktfmt', + files: ['Main.kt'], + mode: 'check', + output_mode: 'diff' + }) + const passedElideFlags: string[] = runFormatterMock.mock.calls[0][5] + expect(passedElideFlags).toEqual(['--list-diffs']) + }) + + it('should pass --list-diffs=N flag when output_mode_diffs is set', async () => { + await run({ + formatter: 'ktfmt', + files: ['Main.kt'], + mode: 'check', + output_mode: 'diff', + output_mode_diffs: 3 + }) + const passedElideFlags: string[] = runFormatterMock.mock.calls[0][5] + expect(passedElideFlags).toEqual(['--list-diffs=3']) + }) + + it('should pass --list-files for command output mode', async () => { + await run({ + formatter: 'ktfmt', + files: ['Main.kt'], + output_mode: 'command' + }) + const passedElideFlags: string[] = runFormatterMock.mock.calls[0][5] + expect(passedElideFlags).toEqual(['--list-files']) + }) + + it('should pass no elide flags for none output mode', async () => { + await run({ + formatter: 'ktfmt', + files: ['Main.kt'], + output_mode: 'none' + }) + const passedElideFlags: string[] = runFormatterMock.mock.calls[0][5] + expect(passedElideFlags).toEqual([]) + }) + + it('should print listed files in file output mode', async () => { + runFormatterMock.mockResolvedValue({ + exitCode: 1, + stdout: '/workspace/Main.kt\n/workspace/Foo.kt\n2 files checked\n' + }) + await run({ + formatter: 'ktfmt', + files: ['Main.kt', 'Foo.kt'], + output_mode: 'file', + fail_on_error: false + }) + expect(infoMock).toHaveBeenCalledWith( + expect.stringContaining('Files affected by ktfmt') + ) + expect(infoMock).toHaveBeenCalledWith('/workspace/Main.kt') + expect(infoMock).toHaveBeenCalledWith('/workspace/Foo.kt') + }) + + it('should print custom command in command output mode when output_mode_command is set', async () => { + runFormatterMock.mockResolvedValue({ + exitCode: 1, + stdout: '/workspace/Main.kt\n1 file checked\n' + }) + await run({ + formatter: 'ktfmt', + files: ['Main.kt'], + output_mode: 'command', + output_mode_command: 'make format', + fail_on_error: false + }) + expect(infoMock).toHaveBeenCalledWith('make format') + }) + + it('should print generated elide command in command output mode', async () => { + runFormatterMock.mockResolvedValue({ + exitCode: 1, + stdout: '/workspace/Main.kt\n1 file checked\n' + }) + await run({ + formatter: 'ktfmt', + files: ['Main.kt'], + output_mode: 'command', + fail_on_error: false + }) + expect(infoMock).toHaveBeenCalledWith( + expect.stringContaining("elide ktfmt -- '/workspace/Main.kt'") + ) + }) + + it('should set files-failed output when output_mode is file', async () => { + runFormatterMock.mockResolvedValue({ + exitCode: 1, + stdout: '/workspace/Main.kt\n/workspace/Foo.kt\n2 files checked\n' + }) + await run({ + formatter: 'ktfmt', + files: ['Main.kt', 'Foo.kt'], + output_mode: 'file', + fail_on_error: false + }) + expect(setOutputMock).toHaveBeenCalledWith( + ActionOutputName.FILES_FAILED, + '/workspace/Main.kt\n/workspace/Foo.kt' + ) + }) + + it('should set files-failed to empty string when no files fail', async () => { + runFormatterMock.mockResolvedValue({ exitCode: 0, stdout: '' }) + await run({ + formatter: 'ktfmt', + files: ['Main.kt'], + output_mode: 'file' + }) + expect(setOutputMock).toHaveBeenCalledWith( + ActionOutputName.FILES_FAILED, + '' + ) + }) + + it('should not set files-failed when output_mode is not file', async () => { + runFormatterMock.mockResolvedValue({ + exitCode: 1, + stdout: '/workspace/Main.kt\n1 file checked\n' + }) + await run({ + formatter: 'ktfmt', + files: ['Main.kt'], + output_mode: 'none', + fail_on_error: false + }) + expect(setOutputMock).not.toHaveBeenCalledWith( + ActionOutputName.FILES_FAILED, + expect.anything() + ) + }) +}) + +describe('buildElideFlags', () => { + it('should return empty array for none mode', () => { + const opts = buildOptions({ output_mode: 'none' }) + expect(buildElideFlags(opts)).toEqual([]) + }) + + it('should return --list-files for file mode', () => { + const opts = buildOptions({ output_mode: 'file' }) + expect(buildElideFlags(opts)).toEqual(['--list-files']) + }) + + it('should return --list-diffs for diff mode in check mode', () => { + const opts = buildOptions({ output_mode: 'diff', mode: 'check' }) + expect(buildElideFlags(opts)).toEqual(['--list-diffs']) + }) + + it('should return --list-diffs=N when output_mode_diffs is set', () => { + const opts = buildOptions({ + output_mode: 'diff', + mode: 'check', + output_mode_diffs: 5 + }) + expect(buildElideFlags(opts)).toEqual(['--list-diffs=5']) + }) + + it('should fall back to --list-files for diff mode in write mode', () => { + const opts = buildOptions({ output_mode: 'diff', mode: 'write' }) + expect(buildElideFlags(opts)).toEqual(['--list-files']) + }) + + it('should return --list-files for command mode', () => { + const opts = buildOptions({ output_mode: 'command' }) + expect(buildElideFlags(opts)).toEqual(['--list-files']) + }) +}) + +describe('parseListedFiles', () => { + it('should parse file paths from --list-files output', () => { + const stdout = '/workspace/Main.kt\n/workspace/Foo.kt\n2 files checked\n' + expect(parseListedFiles(stdout)).toEqual([ + '/workspace/Main.kt', + '/workspace/Foo.kt' + ]) + }) + + it('should return empty array when only summary line is present', () => { + expect(parseListedFiles('0 files checked\n')).toEqual([]) + }) + + it('should return empty array for empty output', () => { + expect(parseListedFiles('')).toEqual([]) + }) + + it('should strip whitespace from lines', () => { + expect(parseListedFiles(' /a/b.kt \n 1 file\n')).toEqual(['/a/b.kt']) + }) +}) + +describe('parseDiffOutput', () => { + it('should strip the trailing summary line', () => { + const stdout = '--- a/Main.kt\n+++ b/Main.kt\n-bad\n+good\n1 file checked' + expect(parseDiffOutput(stdout)).toBe( + '--- a/Main.kt\n+++ b/Main.kt\n-bad\n+good' + ) + }) + + it('should handle trailing newlines', () => { + const stdout = '--- a/Main.kt\n+++ b/Main.kt\n1 file checked\n\n' + expect(parseDiffOutput(stdout)).toBe('--- a/Main.kt\n+++ b/Main.kt') + }) +}) + +describe('printOutputModeResult', () => { + beforeEach(() => infoMock.mockReset()) + + it('should do nothing for none mode', () => { + printOutputModeResult('none', 'ktfmt', '/workspace/Main.kt\n1 file\n', null) + expect(infoMock).not.toHaveBeenCalled() + }) + + it('should do nothing when stdout is empty', () => { + printOutputModeResult('file', 'ktfmt', '', null) + expect(infoMock).not.toHaveBeenCalled() + }) + + it('should print file list for file mode', () => { + printOutputModeResult( + 'file', + 'ktfmt', + '/workspace/A.kt\n/workspace/B.kt\n2 files\n', + null + ) + expect(infoMock).toHaveBeenCalledWith('/workspace/A.kt') + expect(infoMock).toHaveBeenCalledWith('/workspace/B.kt') + }) + + it('should print diff for diff mode', () => { + printOutputModeResult( + 'diff', + 'ktfmt', + '--- a/Main.kt\n+++ b/Main.kt\n1 file\n', + null + ) + expect(infoMock).toHaveBeenCalledWith( + expect.stringContaining('--- a/Main.kt') + ) + }) + + it('should print custom command string for command mode', () => { + printOutputModeResult( + 'command', + 'ktfmt', + '/workspace/Main.kt\n1 file\n', + 'make format' + ) + expect(infoMock).toHaveBeenCalledWith('make format') + }) + + it('should generate elide command for ktfmt without write flag', () => { + printOutputModeResult( + 'command', + 'ktfmt', + '/workspace/Main.kt\n1 file\n', + null + ) + expect(infoMock).toHaveBeenCalledWith( + expect.stringContaining("elide ktfmt -- '/workspace/Main.kt'") + ) + }) + + it('should generate elide command for javaformat with -r write flag after --', () => { + printOutputModeResult( + 'command', + 'javaformat', + '/workspace/Main.java\n1 file\n', + null + ) + expect(infoMock).toHaveBeenCalledWith( + expect.stringContaining("elide javaformat -- -r '/workspace/Main.java'") + ) + }) + + it('should shell-quote paths with spaces in command mode', () => { + printOutputModeResult( + 'command', + 'ktfmt', + '/workspace/my project/Main.kt\n1 file\n', + null + ) + expect(infoMock).toHaveBeenCalledWith( + expect.stringContaining("'/workspace/my project/Main.kt'") + ) + }) + + it('should fall back to file listing for diff mode when output is not a diff', () => { + // elide fell back to --list-files (e.g. write mode or --list-diffs=N limit exceeded) + printOutputModeResult( + 'diff', + 'ktfmt', + '/workspace/Main.kt\n/workspace/Foo.kt\n2 files\n', + null + ) + expect(infoMock).toHaveBeenCalledWith('/workspace/Main.kt') + expect(infoMock).toHaveBeenCalledWith('/workspace/Foo.kt') + expect(infoMock).not.toHaveBeenCalledWith( + expect.stringContaining('Diffs for') + ) + }) + + it('should print diff content for diff mode when output is a real diff', () => { + printOutputModeResult( + 'diff', + 'ktfmt', + '--- a/Main.kt\n+++ b/Main.kt\n-bad\n+good\n1 file\n', + null + ) + expect(infoMock).toHaveBeenCalledWith( + expect.stringContaining('Diffs for ktfmt') + ) + expect(infoMock).toHaveBeenCalledWith( + expect.stringContaining('--- a/Main.kt') + ) + }) +}) + +describe('isDiffOutput', () => { + it('should return true for unified diff output', () => { + expect( + isDiffOutput('--- a/Main.kt\n+++ b/Main.kt\n@@ -1 +1 @@\n-bad\n+good\n') + ).toBe(true) + }) + + it('should return true when only --- is present on the first line', () => { + expect(isDiffOutput('--- a/Main.kt\nsome content\n')).toBe(true) + }) + + it('should return true when +++ is on the second non-empty line', () => { + expect(isDiffOutput('--- a/Main.kt\n+++ b/Main.kt\n')).toBe(true) + }) + + it('should return true when @@ is on the third non-empty line', () => { + expect(isDiffOutput('--- a\n+++ b\n@@ -1 +1 @@\n')).toBe(true) + }) + + it('should return false for file-listing output', () => { + expect( + isDiffOutput('/workspace/Main.kt\n/workspace/Foo.kt\n2 files\n') + ).toBe(false) + }) + + it('should return false for empty string', () => { + expect(isDiffOutput('')).toBe(false) + }) +}) + +describe('formatDiff', () => { + it('should color addition lines green and deletion lines red', () => { + const result = formatDiff( + 'ktfmt', + '--- a/Main.kt\n+++ b/Main.kt\n-old\n+new\n' + ) + expect(result).toContain('\x1b[32m+') + expect(result).toContain('\x1b[31m-') + }) + + it('should dim --- and +++ file header lines', () => { + const result = formatDiff('ktfmt', '--- a/Main.kt\n+++ b/Main.kt\n') + expect(result).toContain('\x1b[2m--- a/Main.kt') + expect(result).toContain('\x1b[2m+++ b/Main.kt') + }) + + it('should color @@ hunk headers cyan', () => { + const result = formatDiff('ktfmt', '@@ -1,3 +1,3 @@\n') + expect(result).toContain('\x1b[36m@@ -1,3 +1,3 @@') + }) + + it('should not color +++ and --- lines as + and - diff signs', () => { + const result = formatDiff('ktfmt', '--- a/Main.kt\n+++ b/Main.kt\n') + expect(result).not.toContain('\x1b[32m+++') + expect(result).not.toContain('\x1b[31m---') + }) + + it('should preserve context lines as-is', () => { + const result = formatDiff('ktfmt', ' val x = 1\n') + expect(result).toContain('val x = 1') + }) + + it('should color addition lines green for javaformat', () => { + const result = formatDiff('javaformat', '+public class Foo {}\n') + expect(result).toContain('\x1b[32m+') + }) }) diff --git a/__tests__/options.test.ts b/__tests__/options.test.ts index dd729d4..3914a0a 100644 --- a/__tests__/options.test.ts +++ b/__tests__/options.test.ts @@ -17,6 +17,7 @@ mock.module('@actions/core', () => ({ import buildOptions, { normalizeFormatter, normalizeMode, + normalizeOutputMode, parseArgs, parseFiles, buildOptionsFromInputs, @@ -63,6 +64,26 @@ describe('normalizeMode', () => { }) }) +describe('normalizeOutputMode', () => { + it('should recognize file mode', () => { + expect(normalizeOutputMode('file')).toBe('file') + expect(normalizeOutputMode('FILE')).toBe('file') + }) + it('should recognize diff mode', () => { + expect(normalizeOutputMode('diff')).toBe('diff') + expect(normalizeOutputMode('DIFF')).toBe('diff') + }) + it('should recognize command mode', () => { + expect(normalizeOutputMode('command')).toBe('command') + expect(normalizeOutputMode('COMMAND')).toBe('command') + }) + it('should default unknown values to none', () => { + expect(normalizeOutputMode('none')).toBe('none') + expect(normalizeOutputMode('')).toBe('none') + expect(normalizeOutputMode('unknown')).toBe('none') + }) +}) + describe('parseArgs', () => { it('should split by whitespace', () => { expect(parseArgs('--aosp --style=google')).toEqual([ @@ -103,6 +124,22 @@ describe('buildOptions', () => { expect(opts.fail_on_error).toBe(true) expect(opts.telemetry).toBe(true) expect(opts.working_directory).toBeTruthy() + expect(opts.output_mode).toBe('none') + expect(opts.output_mode_diffs).toBeNull() + expect(opts.output_mode_command).toBeNull() + }) + it('should allow overriding output_mode', () => { + expect(buildOptions({ output_mode: 'file' }).output_mode).toBe('file') + expect(buildOptions({ output_mode: 'diff' }).output_mode).toBe('diff') + expect(buildOptions({ output_mode: 'command' }).output_mode).toBe('command') + }) + it('should allow setting output_mode_diffs', () => { + expect(buildOptions({ output_mode_diffs: 5 }).output_mode_diffs).toBe(5) + }) + it('should allow setting output_mode_command', () => { + expect( + buildOptions({ output_mode_command: 'make fmt' }).output_mode_command + ).toBe('make fmt') }) it('should allow overriding formatter', () => { expect(buildOptions({ formatter: 'ktfmt' }).formatter).toBe('ktfmt') @@ -213,5 +250,47 @@ describe('buildOptionsFromInputs', () => { expect(opts.files).toEqual([]) expect(opts.exclude).toEqual([]) expect(opts.include_kts).toBe(false) + expect(opts.output_mode).toBe('none') + expect(opts.output_mode_diffs).toBeNull() + expect(opts.output_mode_command).toBeNull() + }) + + it('should read output-mode input', () => { + getInputMock.mockImplementation((name: string) => + name === OptionName.OUTPUT_MODE ? 'file' : '' + ) + expect(buildOptionsFromInputs().output_mode).toBe('file') + }) + + it('should read output-mode-diffs as integer', () => { + getInputMock.mockImplementation((name: string) => + name === OptionName.OUTPUT_MODE_DIFFS ? '3' : '' + ) + expect(buildOptionsFromInputs().output_mode_diffs).toBe(3) + }) + + it('should throw for invalid output-mode-diffs', () => { + getInputMock.mockImplementation((name: string) => + name === OptionName.OUTPUT_MODE_DIFFS ? 'not-a-number' : '' + ) + expect(() => buildOptionsFromInputs()).toThrow( + "invalid value for 'output-mode-diffs'" + ) + }) + + it('should throw for non-positive output-mode-diffs', () => { + getInputMock.mockImplementation((name: string) => + name === OptionName.OUTPUT_MODE_DIFFS ? '0' : '' + ) + expect(() => buildOptionsFromInputs()).toThrow( + "invalid value for 'output-mode-diffs'" + ) + }) + + it('should read output-mode-command as string', () => { + getInputMock.mockImplementation((name: string) => + name === OptionName.OUTPUT_MODE_COMMAND ? 'make format' : '' + ) + expect(buildOptionsFromInputs().output_mode_command).toBe('make format') }) }) diff --git a/action.yml b/action.yml index a96d65a..71d3d74 100644 --- a/action.yml +++ b/action.yml @@ -56,6 +56,26 @@ inputs: required: false default: 'true' + output-mode: + description: > + Output mode after the formatter runs: none (default), file (print affected file paths), + diff (print unified diffs, check mode only), or command (print a fix command). + required: false + default: 'none' + + output-mode-diffs: + description: > + When output-mode is diff, limit the number of files whose diffs are printed. If the number + of affected files exceeds this limit, falls back to listing file paths instead. Must be a + positive integer. + required: false + + output-mode-command: + description: > + When output-mode is command, print this string instead of a generated elide command. + Intended for projects that have a pre-defined formatter command (e.g. a Makefile target). + required: false + outputs: result: description: 'Check result: success or failure' @@ -63,6 +83,9 @@ outputs: files-checked: description: 'Number of files checked' + files-failed: + description: 'Newline-separated list of files affected by the formatter: files that failed the format check (check mode) or were reformatted (write mode). Only set when output-mode is file.' + runs: using: node24 main: dist/index.js diff --git a/bun.lock b/bun.lock index 9a3eea4..0e34259 100644 --- a/bun.lock +++ b/bun.lock @@ -7,11 +7,12 @@ "dependencies": { "@actions/core": "3.0.1", "@actions/exec": "3.0.0", - "@sentry/node": "^10.46.0", + "@sentry/node": "^10.63.0", + "syntax": "^1.6.3", }, "devDependencies": { - "@biomejs/biome": "^2.4.9", - "@commitlint/cli": "20.5.0", + "@biomejs/biome": "^2.5.2", + "@commitlint/cli": "21.2.0", "@commitlint/config-conventional": "21.2.0", "@types/bun": "latest", "@types/node": "26.1.0", @@ -30,123 +31,81 @@ "@actions/io": ["@actions/io@3.0.2", "", {}, "sha512-nRBchcMM+QK1pdjO7/idu86rbJI5YHUKCvKs0KxnSYbVe3F51UfGxuZX4Qy/fWlp6l7gWFwIkrOzN+oUK03kfw=="], + "@apm-js-collab/code-transformer": ["@apm-js-collab/code-transformer@0.15.0", "", { "dependencies": { "@types/estree": "^1.0.8", "astring": "^1.9.0", "esquery": "^1.7.0", "meriyah": "^6.1.4", "semifies": "^1.0.0", "source-map": "^0.6.0" }, "bin": { "code-transformer": "cli.js" } }, "sha512-XmXYVs8CzJ1Aj79noVbn2weUO/XWtRyURpGqx7aU7DOXlUQhR0WKOQNF0okh7PCeY37vxf7kU3v57OAkEPm3ww=="], + + "@apm-js-collab/code-transformer-bundler-plugins": ["@apm-js-collab/code-transformer-bundler-plugins@0.5.0", "", { "dependencies": { "@apm-js-collab/code-transformer": "^0.15.0", "es-module-lexer": "^2.1.0", "magic-string": "^0.30.21", "module-details-from-path": "^1.0.4" } }, "sha512-YxLBY5nGlurL7QeJLq6e5g0ouBpAp0pwgyA/5rHXEXwhiPLn9ZHbT+Y2LlP90GT872cSocfjWRYu/fnpuBudNQ=="], + + "@apm-js-collab/tracing-hooks": ["@apm-js-collab/tracing-hooks@0.10.1", "", { "dependencies": { "@apm-js-collab/code-transformer": "^0.15.0", "debug": "^4.4.1", "module-details-from-path": "^1.0.4" } }, "sha512-w2OWXR7FWrKqSziuE9+QclaZrStxO/8+OwbXM635s/zs0Eez1Qo3ivSPdB2WsaPY/iznKTytONPx/PitD7IXcA=="], + "@babel/code-frame": ["@babel/code-frame@7.26.2", "", { "dependencies": { "@babel/helper-validator-identifier": "7.25.9", "js-tokens": "4.0.0", "picocolors": "1.1.1" } }, "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ=="], "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.25.9", "", {}, "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ=="], - "@biomejs/biome": ["@biomejs/biome@2.4.9", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.4.9", "@biomejs/cli-darwin-x64": "2.4.9", "@biomejs/cli-linux-arm64": "2.4.9", "@biomejs/cli-linux-arm64-musl": "2.4.9", "@biomejs/cli-linux-x64": "2.4.9", "@biomejs/cli-linux-x64-musl": "2.4.9", "@biomejs/cli-win32-arm64": "2.4.9", "@biomejs/cli-win32-x64": "2.4.9" }, "bin": { "biome": "bin/biome" } }, "sha512-wvZW92FrwitTcacvCBT8xdAbfbxWfDLwjYMmU3djjqQTh7Ni4ZdiWIT/x5VcZ+RQuxiKzIOzi5D+dcyJDFZMsA=="], + "@biomejs/biome": ["@biomejs/biome@2.5.2", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.5.2", "@biomejs/cli-darwin-x64": "2.5.2", "@biomejs/cli-linux-arm64": "2.5.2", "@biomejs/cli-linux-arm64-musl": "2.5.2", "@biomejs/cli-linux-x64": "2.5.2", "@biomejs/cli-linux-x64-musl": "2.5.2", "@biomejs/cli-win32-arm64": "2.5.2", "@biomejs/cli-win32-x64": "2.5.2" }, "bin": { "biome": "bin/biome" } }, "sha512-VQ3RCqr7JmDIX+w6stWYl+g/3bYofN3q2wDBHUKKc/c7i5QWrFKFBZYCYPWTE6agsUPMIZZe6/CMmVUfUAhkKA=="], - "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.4.9", "", { "os": "darwin", "cpu": "arm64" }, "sha512-d5G8Gf2RpH5pYwiHLPA+UpG3G9TLQu4WM+VK6sfL7K68AmhcEQ9r+nkj/DvR/GYhYox6twsHUtmWWWIKfcfQQA=="], + "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.5.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-e7P3P7EkwFc/KiX2AHw4YDLIBOMfG9CPCAwy52k5Bp0dfhkozx9hf6wCmIr2QeXy2XeccJ3V/Sg+hDmzYEqxSg=="], - "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.4.9", "", { "os": "darwin", "cpu": "x64" }, "sha512-LNCLNgqDMG7BLdc3a8aY/dwKPK7+R8/JXJoXjCvZh2gx8KseqBdFDKbhrr7HCWF8SzNhbTaALhTBoh/I6rf9lA=="], + "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.5.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-ymzMvjC1Jg0b9K0D26ZdARqFQXs7MocfLC5FOCGfkC0Ss+ACUJkX5364ZM5nT4NLZanHRZNVrZEy+Ibwcvux/g=="], - "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.4.9", "", { "os": "linux", "cpu": "arm64" }, "sha512-4adnkAUi6K4C/emPRgYznMOcLlUqZdXWM6aIui4VP4LraE764g6Q4YguygnAUoxKjKIXIWPteKMgRbN0wsgwcg=="], + "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.5.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-t7sseOmqND57uUWTwlawU6BYj+J06T/9EkydzBhkrgw/FK3QVhjU2wsJR0frljrKZ0/I8A/rYw7284QgqjQfIQ=="], - "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.4.9", "", { "os": "linux", "cpu": "arm64" }, "sha512-8RCww5xnPn2wpK4L/QDGDOW0dq80uVWfppPxHIUg6mOs9B6gRmqPp32h1Ls3T8GnW8Wo5A8u7vpTwz4fExN+sw=="], + "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.5.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-w+ANG0ZvTu9IeEg9QnstoOnk6L0fpwJifW6aHR18+cb5Z39bkANItYjAfMrnvce5tmMK+IQ6nPX7/kQFdam5iw=="], - "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.4.9", "", { "os": "linux", "cpu": "x64" }, "sha512-L10na7POF0Ks/cgLFNF1ZvIe+X4onLkTi5oP9hY+Rh60Q+7fWzKDDCeGyiHUFf1nGIa9dQOOUPGe2MyYg8nMSQ=="], + "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.5.2", "", { "os": "linux", "cpu": "x64" }, "sha512-M/lOZrewzTCRDINbjhQ1gYYru37KlD3kJBQwwKCG0ckz5E9IZwIoJ3X0wBwRXA+yBDIwWUuPBHS67HzJY4dTfA=="], - "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.4.9", "", { "os": "linux", "cpu": "x64" }, "sha512-5TD+WS9v5vzXKzjetF0hgoaNFHMcpQeBUwKKVi3JbG1e9UCrFuUK3Gt185fyTzvRdwYkJJEMqglRPjmesmVv4A=="], + "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.5.2", "", { "os": "linux", "cpu": "x64" }, "sha512-VArNLAzND063tF+XY0yPyM+DyahpzOMzOAvb7qs259nhjJWRjvjZdssuA+Rfl+l07+NOesKZ0Xu2yFrXyBMtzw=="], - "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.4.9", "", { "os": "win32", "cpu": "arm64" }, "sha512-aDZr0RBC3sMGJOU10BvG7eZIlWLK/i51HRIfScE2lVhfts2dQTreowLiJJd+UYg/tHKxS470IbzpuKmd0MiD6g=="], + "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.5.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-kbjFFKyZlzYnAuw7sRy5qDoFG6zrP40UK08oPQsWK0ct3NMnGSt+Bs1iviEEyEIP57N5MrykGXdO/wRiaR4lww=="], - "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.4.9", "", { "os": "win32", "cpu": "x64" }, "sha512-NS4g/2G9SoQ4ktKtz31pvyc/rmgzlcIDCGU/zWbmHJAqx6gcRj2gj5Q/guXhoWTzCUaQZDIqiCQXHS7BcGYc0w=="], + "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.5.2", "", { "os": "win32", "cpu": "x64" }, "sha512-4InchVpdVmdkkkgjQqKpgvyu+VPnoF/7RPSw5YATgEVpt2j72wcCAeV5TwaE9ZGJUZWZn7v2CwSAj6CrMJEx8A=="], - "@commitlint/cli": ["@commitlint/cli@20.5.0", "", { "dependencies": { "@commitlint/format": "^20.5.0", "@commitlint/lint": "^20.5.0", "@commitlint/load": "^20.5.0", "@commitlint/read": "^20.5.0", "@commitlint/types": "^20.5.0", "tinyexec": "^1.0.0", "yargs": "^17.0.0" }, "bin": { "commitlint": "./cli.js" } }, "sha512-yNkyN/tuKTJS3wdVfsZ2tXDM4G4Gi7z+jW54Cki8N8tZqwKBltbIvUUrSbT4hz1bhW/h0CdR+5sCSpXD+wMKaQ=="], + "@commitlint/cli": ["@commitlint/cli@21.2.0", "", { "dependencies": { "@commitlint/config-conventional": "^21.2.0", "@commitlint/format": "^21.2.0", "@commitlint/lint": "^21.2.0", "@commitlint/load": "^21.2.0", "@commitlint/read": "^21.2.0", "@commitlint/types": "^21.2.0", "tinyexec": "^1.0.0", "yargs": "^18.0.0" }, "bin": { "commitlint": "cli.js" } }, "sha512-4GLVIhUaT3c3GBlQ0GB80/5H3xXdn/Tgw4lrsuoOQVDu2wl4Xw0GuzSar8xZKSMv4H3xaKaQXmvH91GmdyYBZA=="], "@commitlint/config-conventional": ["@commitlint/config-conventional@21.2.0", "", { "dependencies": { "@commitlint/types": "^21.2.0", "conventional-changelog-conventionalcommits": "^10.0.0" } }, "sha512-Qf8WRDVcyVd14if6VTWenebxFbKnVnbzPUJjlzjkyJGeHK2xCGd63Dr1XZzj0plXKQb9P0BfOxoc1HVeCo2BWQ=="], - "@commitlint/config-validator": ["@commitlint/config-validator@20.5.0", "", { "dependencies": { "@commitlint/types": "^20.5.0", "ajv": "^8.11.0" } }, "sha512-T/Uh6iJUzyx7j35GmHWdIiGRQB+ouZDk0pwAaYq4SXgB54KZhFdJ0vYmxiW6AMYICTIWuyMxDBl1jK74oFp/Gw=="], + "@commitlint/config-validator": ["@commitlint/config-validator@21.2.0", "", { "dependencies": { "@commitlint/types": "^21.2.0", "ajv": "^8.11.0" } }, "sha512-t7AzNHAKeIdo/3NRGwzpufKHsKkPHmFs/56N2Fnsh0/r0rGtnQzTxk6vnFgjaGr4hdSQKNB50/KAhR9Yk4LJKA=="], - "@commitlint/ensure": ["@commitlint/ensure@20.5.0", "", { "dependencies": { "@commitlint/types": "^20.5.0", "lodash.camelcase": "^4.3.0", "lodash.kebabcase": "^4.1.1", "lodash.snakecase": "^4.1.1", "lodash.startcase": "^4.4.0", "lodash.upperfirst": "^4.3.1" } }, "sha512-IpHqAUesBeW1EDDdjzJeaOxU9tnogLAyXLRBn03SHlj1SGENn2JGZqSWGkFvBJkJzfXAuCNtsoYzax+ZPS+puw=="], + "@commitlint/ensure": ["@commitlint/ensure@21.2.0", "", { "dependencies": { "@commitlint/types": "^21.2.0", "es-toolkit": "^1.46.0" } }, "sha512-76IF9vDNS13lAzEEik9eKwzt8f9hYhWiwVXZ2AnyLCz5/f511FsEQ3pw1X3/zSQpdRLQU7i5qDMVKyXi1GWjSg=="], - "@commitlint/execute-rule": ["@commitlint/execute-rule@20.0.0", "", {}, "sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw=="], + "@commitlint/execute-rule": ["@commitlint/execute-rule@21.0.1", "", {}, "sha512-RifH+FmImozKBE6mozhF4K3r2RRKP7SMi/Q/zLCmExtp5e05lhHOUYqGBlFBAGNHaZxU/WYw1XuugYK9jQzqnA=="], - "@commitlint/format": ["@commitlint/format@20.5.0", "", { "dependencies": { "@commitlint/types": "^20.5.0", "picocolors": "^1.1.1" } }, "sha512-TI9EwFU/qZWSK7a5qyXMpKPPv3qta7FO4tKW+Wt2al7sgMbLWTsAcDpX1cU8k16TRdsiiet9aOw0zpvRXNJu7Q=="], + "@commitlint/format": ["@commitlint/format@21.2.0", "", { "dependencies": { "@commitlint/types": "^21.2.0", "picocolors": "^1.1.1" } }, "sha512-c4q64xaav2U83t7k7RyzJerBZurPer7FxUOY0RL5L/6CZijZ7K+s6HIBGIghj0ey1P2+seRX0J9XQYtDued6tg=="], - "@commitlint/is-ignored": ["@commitlint/is-ignored@20.5.0", "", { "dependencies": { "@commitlint/types": "^20.5.0", "semver": "^7.6.0" } }, "sha512-JWLarAsurHJhPozbuAH6GbP4p/hdOCoqS9zJMfqwswne+/GPs5V0+rrsfOkP68Y8PSLphwtFXV0EzJ+GTXTTGg=="], + "@commitlint/is-ignored": ["@commitlint/is-ignored@21.2.0", "", { "dependencies": { "@commitlint/types": "^21.2.0", "semver": "^7.6.0" } }, "sha512-4/eB0vBN7L88O/oC4ajAEqi7j2ZfNgxl/+11RfAV9YosejZgDXhY2C9VcHnHJhOzPLoSy5P3Mg/46kqeyJfXKw=="], - "@commitlint/lint": ["@commitlint/lint@20.5.0", "", { "dependencies": { "@commitlint/is-ignored": "^20.5.0", "@commitlint/parse": "^20.5.0", "@commitlint/rules": "^20.5.0", "@commitlint/types": "^20.5.0" } }, "sha512-jiM3hNUdu04jFBf1VgPdjtIPvbuVfDTBAc6L98AWcoLjF5sYqkulBHBzlVWll4rMF1T5zeQFB6r//a+s+BBKlA=="], + "@commitlint/lint": ["@commitlint/lint@21.2.0", "", { "dependencies": { "@commitlint/is-ignored": "^21.2.0", "@commitlint/parse": "^21.2.0", "@commitlint/rules": "^21.2.0", "@commitlint/types": "^21.2.0" } }, "sha512-ceO5dp9pLjEZ6y6qbq/uXWXDPykqqlTsyzoQ0NzecpisSJhK3kTy9qzQoPeJuWG/IMNdV1lO0RgmzqoAlSi1uw=="], - "@commitlint/load": ["@commitlint/load@20.5.0", "", { "dependencies": { "@commitlint/config-validator": "^20.5.0", "@commitlint/execute-rule": "^20.0.0", "@commitlint/resolve-extends": "^20.5.0", "@commitlint/types": "^20.5.0", "cosmiconfig": "^9.0.1", "cosmiconfig-typescript-loader": "^6.1.0", "is-plain-obj": "^4.1.0", "lodash.mergewith": "^4.6.2", "picocolors": "^1.1.1" } }, "sha512-sLhhYTL/KxeOTZjjabKDhwidGZan84XKK1+XFkwDYL/4883kIajcz/dZFAhBJmZPtL8+nBx6bnkzA95YxPeDPw=="], + "@commitlint/load": ["@commitlint/load@21.2.0", "", { "dependencies": { "@commitlint/config-validator": "^21.2.0", "@commitlint/execute-rule": "^21.0.1", "@commitlint/resolve-extends": "^21.2.0", "@commitlint/types": "^21.2.0", "cosmiconfig": "^9.0.1", "cosmiconfig-typescript-loader": "^6.1.0", "es-toolkit": "^1.46.0", "is-plain-obj": "^4.1.0", "picocolors": "^1.1.1" } }, "sha512-RjlzWQqruRwIenJEfZtq7kG97co97nKoHpflE5YnF61tDLXxHPrdWImgzw6VL6MlFyaOcVlk74eBV8ZQmc3oIA=="], - "@commitlint/message": ["@commitlint/message@20.4.3", "", {}, "sha512-6akwCYrzcrFcTYz9GyUaWlhisY4lmQ3KvrnabmhoeAV8nRH4dXJAh4+EUQ3uArtxxKQkvxJS78hNX2EU3USgxQ=="], + "@commitlint/message": ["@commitlint/message@21.2.0", "", {}, "sha512-YxGoiXD/HXNXLJPrQwE5poXa+XH0CBEm+mdvbHQP0g6MV/dmJyUFCzPNzZbxL93GvZ70TmtTK0Z0/IBpAqHv8g=="], - "@commitlint/parse": ["@commitlint/parse@20.5.0", "", { "dependencies": { "@commitlint/types": "^20.5.0", "conventional-changelog-angular": "^8.2.0", "conventional-commits-parser": "^6.3.0" } }, "sha512-SeKWHBMk7YOTnnEWUhx+d1a9vHsjjuo6Uo1xRfPNfeY4bdYFasCH1dDpAv13Lyn+dDPOels+jP6D2GRZqzc5fA=="], + "@commitlint/parse": ["@commitlint/parse@21.2.0", "", { "dependencies": { "@commitlint/types": "^21.2.0", "conventional-changelog-angular": "^9.0.0", "conventional-commits-parser": "^7.0.0" } }, "sha512-QHWxG4d0PLTF634/AdyZ0MQS+CLn5YOuJlCFhMMlSGKFxzYGUetkHBj18xgBD+6fVzUrA2lrCdi/vlS2f/oYXg=="], - "@commitlint/read": ["@commitlint/read@20.5.0", "", { "dependencies": { "@commitlint/top-level": "^20.4.3", "@commitlint/types": "^20.5.0", "git-raw-commits": "^5.0.0", "minimist": "^1.2.8", "tinyexec": "^1.0.0" } }, "sha512-JDEIJ2+GnWpK8QqwfmW7O42h0aycJEWNqcdkJnyzLD11nf9dW2dWLTVEa8Wtlo4IZFGLPATjR5neA5QlOvIH1w=="], + "@commitlint/read": ["@commitlint/read@21.2.0", "", { "dependencies": { "@commitlint/top-level": "^21.2.0", "@commitlint/types": "^21.2.0", "git-raw-commits": "^5.0.0", "tinyexec": "^1.0.0" } }, "sha512-ELx8Ovh/JoAw5lpvDgxc6Y0We9skf2IPI2RFN+gnYgDGjRdMSF8zeodxhZmcclLWzfUIF7hXLOa8gOlllYcvBA=="], - "@commitlint/resolve-extends": ["@commitlint/resolve-extends@20.5.0", "", { "dependencies": { "@commitlint/config-validator": "^20.5.0", "@commitlint/types": "^20.5.0", "global-directory": "^4.0.1", "import-meta-resolve": "^4.0.0", "lodash.mergewith": "^4.6.2", "resolve-from": "^5.0.0" } }, "sha512-3SHPWUW2v0tyspCTcfSsYml0gses92l6TlogwzvM2cbxDgmhSRc+fldDjvGkCXJrjSM87BBaWYTPWwwyASZRrg=="], + "@commitlint/resolve-extends": ["@commitlint/resolve-extends@21.2.0", "", { "dependencies": { "@commitlint/config-validator": "^21.2.0", "@commitlint/types": "^21.2.0", "es-toolkit": "^1.46.0", "global-directory": "^5.0.0", "resolve-from": "^5.0.0" } }, "sha512-4O/1j51+79Wth9s/MGxt/5gs0XYLDgNlYpltQfhAvLE0itusLKs9zruxbiNg1oOkmkb9L9L4USYGjEj7n87NxA=="], - "@commitlint/rules": ["@commitlint/rules@20.5.0", "", { "dependencies": { "@commitlint/ensure": "^20.5.0", "@commitlint/message": "^20.4.3", "@commitlint/to-lines": "^20.0.0", "@commitlint/types": "^20.5.0" } }, "sha512-5NdQXQEdnDPT5pK8O39ZA7HohzPRHEsDGU23cyVCNPQy4WegAbAwrQk3nIu7p2sl3dutPk8RZd91yKTrMTnRkQ=="], + "@commitlint/rules": ["@commitlint/rules@21.2.0", "", { "dependencies": { "@commitlint/ensure": "^21.2.0", "@commitlint/message": "^21.2.0", "@commitlint/to-lines": "^21.0.1", "@commitlint/types": "^21.2.0" } }, "sha512-C2yXMNpiB8ETZKfx5JD8+ExgF8vTU1VQMKPSUUYwqKpw9oJWQBrlXBpdU038mj2WPjof7o9UzFpmTyBeGMZwZg=="], - "@commitlint/to-lines": ["@commitlint/to-lines@20.0.0", "", {}, "sha512-2l9gmwiCRqZNWgV+pX1X7z4yP0b3ex/86UmUFgoRt672Ez6cAM2lOQeHFRUTuE6sPpi8XBCGnd8Kh3bMoyHwJw=="], + "@commitlint/to-lines": ["@commitlint/to-lines@21.0.1", "", {}, "sha512-bd1BFII7p1EQZre9Kaj+kKaMFP3cFCdt21K7DItVux9XP5WjLgJ0/Uy1pJJh9aPwVJ6SKg62PxqlZaHI8hQAXw=="], - "@commitlint/top-level": ["@commitlint/top-level@20.4.3", "", { "dependencies": { "escalade": "^3.2.0" } }, "sha512-qD9xfP6dFg5jQ3NMrOhG0/w5y3bBUsVGyJvXxdWEwBm8hyx4WOk3kKXw28T5czBYvyeCVJgJJ6aoJZUWDpaacQ=="], + "@commitlint/top-level": ["@commitlint/top-level@21.2.0", "", { "dependencies": { "escalade": "^3.2.0" } }, "sha512-Y5gmQ+KxzqCrBFJfLvFEPvvwD3LDiNZoTT2yeFBm96M8qhmqSzQc5DvX3rheAaAMjyIvMXOCLS/mWfdpONsjyQ=="], - "@commitlint/types": ["@commitlint/types@20.5.0", "", { "dependencies": { "conventional-commits-parser": "^6.3.0", "picocolors": "^1.1.1" } }, "sha512-ZJoS8oSq2CAZEpc/YI9SulLrdiIyXeHb/OGqGrkUP6Q7YV+0ouNAa7GjqRdXeQPncHQIDz/jbCTlHScvYvO/gA=="], + "@commitlint/types": ["@commitlint/types@21.2.0", "", { "dependencies": { "conventional-commits-parser": "^7.0.0", "picocolors": "^1.1.1" } }, "sha512-7zVFCDB2reMvJH5dmbKnOQPjZEvjdJTH8jc0U/PIPU1r3/+vf5pD1HlfitV2MWsWXrvu7u39iY1lyLUPOaN0Gw=="], "@conventional-changelog/git-client": ["@conventional-changelog/git-client@2.6.0", "", { "dependencies": { "@simple-libs/child-process-utils": "^1.0.0", "@simple-libs/stream-utils": "^1.2.0", "semver": "^7.5.2" }, "peerDependencies": { "conventional-commits-filter": "^5.0.0", "conventional-commits-parser": "^6.3.0" }, "optionalPeers": ["conventional-commits-filter", "conventional-commits-parser"] }, "sha512-T+uPDciKf0/ioNNDpMGc8FDsehJClZP0yR3Q5MN6wE/Y/1QZ7F+80OgznnTCOlMEG4AV0LvH2UJi3C/nBnaBUg=="], "@conventional-changelog/template": ["@conventional-changelog/template@1.2.0", "", {}, "sha512-12qHxvlKjHmP0PQ+17EREgC7lWyLwbph1RKcZQZ7k7ZWGmrxfxC9gadHGfvzr0g0u8BhiBGg3tks93txodlyRQ=="], - "@fastify/otel": ["@fastify/otel@0.17.1", "", { "dependencies": { "@opentelemetry/core": "^2.0.0", "@opentelemetry/instrumentation": "^0.212.0", "@opentelemetry/semantic-conventions": "^1.28.0", "minimatch": "^10.2.4" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0" } }, "sha512-K4wyxfUZx2ux5o+b6BtTqouYFVILohLZmSbA2tKUueJstNcBnoGPVhllCaOvbQ3ZrXdUxUC/fyrSWSCqHhdOPg=="], + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], "@opentelemetry/api": ["@opentelemetry/api@1.9.1", "", {}, "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q=="], - "@opentelemetry/api-logs": ["@opentelemetry/api-logs@0.213.0", "", { "dependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-zRM5/Qj6G84Ej3F1yt33xBVY/3tnMxtL1fiDIxYbDWYaZ/eudVw3/PBiZ8G7JwUxXxjW8gU4g6LnOyfGKYHYgw=="], - - "@opentelemetry/context-async-hooks": ["@opentelemetry/context-async-hooks@2.6.1", "", { "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-XHzhwRNkBpeP8Fs/qjGrAf9r9PRv67wkJQ/7ZPaBQQ68DYlTBBx5MF9LvPx7mhuXcDessKK2b+DcxqwpgkcivQ=="], + "@opentelemetry/api-logs": ["@opentelemetry/api-logs@0.214.0", "", { "dependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-40lSJeqYO8Uz2Yj7u94/SJWE/wONa7rmMKjI1ZcIjgf3MHNHv1OZUCrCETGuaRF62d5pQD1wKIW+L4lmSMTzZA=="], "@opentelemetry/core": ["@opentelemetry/core@2.6.1", "", { "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-8xHSGWpJP9wBxgBpnqGL0R3PbdWQndL1Qp50qrg71+B28zK5OQmUgcDKLJgzyAAV38t4tOyLMGDD60LneR5W8g=="], - "@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.213.0", "", { "dependencies": { "@opentelemetry/api-logs": "0.213.0", "import-in-the-middle": "^3.0.0", "require-in-the-middle": "^8.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-3i9NdkET/KvQomeh7UaR/F4r9P25Rx6ooALlWXPIjypcEOUxksCmVu0zA70NBJWlrMW1rPr/LRidFAflLI+s/w=="], - - "@opentelemetry/instrumentation-amqplib": ["@opentelemetry/instrumentation-amqplib@0.60.0", "", { "dependencies": { "@opentelemetry/core": "^2.0.0", "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/semantic-conventions": "^1.33.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-q/B2IvoVXRm1M00MvhnzpMN6rKYOszPXVsALi6u0ss4AYHe+TidZEtLW9N1ZhrobI1dSriHnBqqtAOZVAv07sg=="], - - "@opentelemetry/instrumentation-connect": ["@opentelemetry/instrumentation-connect@0.56.0", "", { "dependencies": { "@opentelemetry/core": "^2.0.0", "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/connect": "3.4.38" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-PKp+sSZ7AfzMvGgO3VCyo1inwNu+q7A1k9X88WK4PQ+S6Hp7eFk8pie+sWHDTaARovmqq5V2osav3lQej2B0nw=="], - - "@opentelemetry/instrumentation-dataloader": ["@opentelemetry/instrumentation-dataloader@0.30.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.213.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-MXHP2Q38cd2OhzEBKAIXUi9uBlPEYzF6BNJbyjUXBQ6kLaf93kRC41vNMIz0Nl5mnuwK7fDvKT+/lpx7BXRwdg=="], - - "@opentelemetry/instrumentation-express": ["@opentelemetry/instrumentation-express@0.61.0", "", { "dependencies": { "@opentelemetry/core": "^2.0.0", "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-Xdmqo9RZuZlL29Flg8QdwrrX7eW1CZ7wFQPKHyXljNymgKhN1MCsYuqQ/7uxavhSKwAl7WxkTzKhnqpUApLMvQ=="], - - "@opentelemetry/instrumentation-fs": ["@opentelemetry/instrumentation-fs@0.32.0", "", { "dependencies": { "@opentelemetry/core": "^2.0.0", "@opentelemetry/instrumentation": "^0.213.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-koR6apx0g0wX6RRiPpjA4AFQUQUbXrK16kq4/SZjVp7u5cffJhNkY4TnITxcGA4acGSPYAfx3NHRIv4Khn1axQ=="], - - "@opentelemetry/instrumentation-generic-pool": ["@opentelemetry/instrumentation-generic-pool@0.56.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.213.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-fg+Jffs6fqrf0uQS0hom7qBFKsbtpBiBl8+Vkc63Gx8xh6pVh+FhagmiO6oM0m3vyb683t1lP7yGYq22SiDnqg=="], - - "@opentelemetry/instrumentation-graphql": ["@opentelemetry/instrumentation-graphql@0.61.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.213.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-pUiVASv6nh2XrerTvlbVHh7vKFzscpgwiQ/xvnZuAIzQ5lRjWVdRPUuXbvZJ/Yq79QsE81TZdJ7z9YsXiss1ew=="], - - "@opentelemetry/instrumentation-hapi": ["@opentelemetry/instrumentation-hapi@0.59.0", "", { "dependencies": { "@opentelemetry/core": "^2.0.0", "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-33wa4mEr+9+ztwdgLor1SeBu4Opz4IsmpcLETXAd3VmBrOjez8uQtrsOhPCa5Vhbm5gzDlMYTgFRLQzf8/YHFA=="], - - "@opentelemetry/instrumentation-http": ["@opentelemetry/instrumentation-http@0.213.0", "", { "dependencies": { "@opentelemetry/core": "2.6.0", "@opentelemetry/instrumentation": "0.213.0", "@opentelemetry/semantic-conventions": "^1.29.0", "forwarded-parse": "2.1.2" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-B978Xsm5XEPGhm1P07grDoaOFLHapJPkOG9h016cJsyWWxmiLnPu2M/4Nrm7UCkHSiLnkXgC+zVGUAIahy8EEA=="], - - "@opentelemetry/instrumentation-ioredis": ["@opentelemetry/instrumentation-ioredis@0.61.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/redis-common": "^0.38.2", "@opentelemetry/semantic-conventions": "^1.33.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-hsHDadUtAFbws1YSDc1XW0svGFKiUbqv2td1Cby+UAiwvojm1NyBo/taifH0t8CuFZ0x/2SDm0iuTwrM5pnVOg=="], - - "@opentelemetry/instrumentation-kafkajs": ["@opentelemetry/instrumentation-kafkajs@0.22.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/semantic-conventions": "^1.30.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-wJU4IBQMUikdJAcTChLFqK5lo+flo7pahqd8DSLv7uMxsdOdAHj6RzKYAm8pPfUS6ItKYutYyuicwKaFwQKsoA=="], - - "@opentelemetry/instrumentation-knex": ["@opentelemetry/instrumentation-knex@0.57.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/semantic-conventions": "^1.33.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-vMCSh8kolEm5rRsc+FZeTZymWmIJwc40hjIKnXH4O0Dv/gAkJJIRXCsPX5cPbe0c0j/34+PsENd0HqKruwhVYw=="], - - "@opentelemetry/instrumentation-koa": ["@opentelemetry/instrumentation-koa@0.61.0", "", { "dependencies": { "@opentelemetry/core": "^2.0.0", "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/semantic-conventions": "^1.36.0" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0" } }, "sha512-lvrfWe9ShK/D2X4brmx8ZqqeWPfRl8xekU0FCn7C1dHm5k6+rTOOi36+4fnaHAP8lig9Ux6XQ1D4RNIpPCt1WQ=="], - - "@opentelemetry/instrumentation-lru-memoizer": ["@opentelemetry/instrumentation-lru-memoizer@0.57.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.213.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-cEqpUocSKJfwDtLYTTJehRLWzkZ2eoePCxfVIgGkGkb83fMB71O+y4MvRHJPbeV2bdoWdOVrl8uO0+EynWhTEA=="], - - "@opentelemetry/instrumentation-mongodb": ["@opentelemetry/instrumentation-mongodb@0.66.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/semantic-conventions": "^1.33.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-d7m9QnAY+4TCWI4q1QRkfrc6fo/92VwssaB1DzQfXNRvu51b78P+HJlWP7Qg6N6nkwdb9faMZNBCZJfftmszkw=="], - - "@opentelemetry/instrumentation-mongoose": ["@opentelemetry/instrumentation-mongoose@0.59.0", "", { "dependencies": { "@opentelemetry/core": "^2.0.0", "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/semantic-conventions": "^1.33.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-6/jWU+c1NgznkVLDU/2y0bXV2nJo3o9FWZ9mZ9nN6T/JBNRoMnVXZl2FdBmgH+a5MwaWLs5kmRJTP5oUVGIkPw=="], - - "@opentelemetry/instrumentation-mysql": ["@opentelemetry/instrumentation-mysql@0.59.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/semantic-conventions": "^1.33.0", "@types/mysql": "2.15.27" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-r+V/Fh0sm7Ga8/zk/TI5H5FQRAjwr0RrpfPf8kNIehlsKf12XnvIaZi8ViZkpX0gyPEpLXqzqWD6QHlgObgzZw=="], - - "@opentelemetry/instrumentation-mysql2": ["@opentelemetry/instrumentation-mysql2@0.59.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/semantic-conventions": "^1.33.0", "@opentelemetry/sql-common": "^0.41.2" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-n9/xrVCRBfG9egVbffnlU1uhr+HX0vF4GgtAB/Bvm48wpFgRidqD8msBMiym1kRYzmpWvJqTxNT47u1MkgBEdw=="], - - "@opentelemetry/instrumentation-pg": ["@opentelemetry/instrumentation-pg@0.65.0", "", { "dependencies": { "@opentelemetry/core": "^2.0.0", "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/semantic-conventions": "^1.34.0", "@opentelemetry/sql-common": "^0.41.2", "@types/pg": "8.15.6", "@types/pg-pool": "2.0.7" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-W0zpHEIEuyZ8zvb3njaX9AAbHgPYOsSWVOoWmv1sjVRSF6ZpBqtlxBWbU+6hhq1TFWBeWJOXZ8nZS/PUFpLJYQ=="], - - "@opentelemetry/instrumentation-redis": ["@opentelemetry/instrumentation-redis@0.61.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/redis-common": "^0.38.2", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-JnPexA034/0UJRsvH96B0erQoNOqKJZjE2ZRSw9hiTSC23LzE0nJE/u6D+xqOhgUhRnhhcPHq4MdYtmUdYTF+Q=="], - - "@opentelemetry/instrumentation-tedious": ["@opentelemetry/instrumentation-tedious@0.32.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/semantic-conventions": "^1.33.0", "@types/tedious": "^4.0.14" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-BQS6gG8RJ1foEqfEZ+wxoqlwfCAzb1ZVG0ad8Gfe4x8T658HJCLGLd4E4NaoQd8EvPfLqOXgzGaE/2U4ytDSWA=="], - - "@opentelemetry/instrumentation-undici": ["@opentelemetry/instrumentation-undici@0.23.0", "", { "dependencies": { "@opentelemetry/core": "^2.0.0", "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/semantic-conventions": "^1.24.0" }, "peerDependencies": { "@opentelemetry/api": "^1.7.0" } }, "sha512-LL0VySzKVR2cJSFVZaTYpZl1XTpBGnfzoQPe2W7McS2267ldsaEIqtQY6VXs2KCXN0poFjze5110PIpxHDaDGg=="], - - "@opentelemetry/redis-common": ["@opentelemetry/redis-common@0.38.2", "", {}, "sha512-1BCcU93iwSRZvDAgwUxC/DV4T/406SkMfxGqu5ojc3AvNI+I9GhV7v0J1HljsczuuhcnFLYqD5VmwVXfCGHzxA=="], + "@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.214.0", "", { "dependencies": { "@opentelemetry/api-logs": "0.214.0", "import-in-the-middle": "^3.0.0", "require-in-the-middle": "^8.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-MHqEX5Dk59cqVah5LiARMACku7jXSVk9iVDWOea4x3cr7VfdByeDCURK6o1lntT1JS/Tsovw01UJrBhN3/uC5w=="], "@opentelemetry/resources": ["@opentelemetry/resources@2.6.1", "", { "dependencies": { "@opentelemetry/core": "2.6.1", "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, "sha512-lID/vxSuKWXM55XhAKNoYXu9Cutoq5hFdkbTdI/zDKQktXzcWBVhNsOkiZFTMU9UtEWuGRNe0HUgmsFldIdxVA=="], @@ -154,8 +113,6 @@ "@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.40.0", "", {}, "sha512-cifvXDhcqMwwTlTK04GBNeIe7yyo28Mfby85QXFe1Yk8nmi36Ab/5UQwptOx84SsoGNRg+EVSjwzfSZMy6pmlw=="], - "@opentelemetry/sql-common": ["@opentelemetry/sql-common@0.41.2", "", { "dependencies": { "@opentelemetry/core": "^2.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0" } }, "sha512-4mhWm3Z8z+i508zQJ7r6Xi7y4mmoJpdvH0fZPFRkWrdp5fq7hhZ2HhYokEOLkfqSMgPR4Z9EyB3DBkbKGOqZiQ=="], - "@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.72.0", "", { "os": "android", "cpu": "arm" }, "sha512-zhCmvn+1Mj3UchAc/90i99S0t7jJUsHmFVSPg4UWrjO8b8eaSGwscgO6QAUtvHBstkjQwBttQNswEnAF1mIQdA=="], "@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.72.0", "", { "os": "android", "cpu": "arm64" }, "sha512-mtH+aY/ozv1eZoCUC2owjFAtyNBKHpJHygKeEu9zXXnQGW1Q2/qOpvx+I+Lf23+TvTz66F4iiXUbl2cGvoLPCQ=="], @@ -194,51 +151,41 @@ "@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.72.0", "", { "os": "win32", "cpu": "x64" }, "sha512-b2eKFD2hX7tIwmo/cyH6TDq8vzWRZ2qNHrzoGntUTmq0h3zQh/uX3eTSHCwI8OB/ADQfJCRelLItK8BsxuucDA=="], - "@prisma/instrumentation": ["@prisma/instrumentation@7.4.2", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.207.0" }, "peerDependencies": { "@opentelemetry/api": "^1.8" } }, "sha512-r9JfchJF1Ae6yAxcaLu/V1TGqBhAuSDe3mRNOssBfx1rMzfZ4fdNvrgUBwyb/TNTGXFxlH9AZix5P257x07nrg=="], + "@sentry/conventions": ["@sentry/conventions@0.12.0", "", {}, "sha512-z1JQrl/1SLY+8wpzvork6vl+fpsg/oCCxM7HWWhUnI/R+OGNyoIzieQuggX3uUMY7NBtp8UWCQx6FeFazzOF9g=="], - "@sentry/core": ["@sentry/core@10.46.0", "", {}, "sha512-N3fj4zqBQOhXliS1Ne9euqIKuciHCGOJfPGQLwBoW9DNz03jF+NB8+dUKtrJ79YLoftjVgf8nbgwtADK7NR+2Q=="], + "@sentry/core": ["@sentry/core@10.63.0", "", {}, "sha512-OtUbsrnbEHffOF2S2+M5zXa3HIM0U2b4CDVLKMY1dgS0J3ivRF8XvkjvyIcEG/y8JXnwXbnprLyjhG+AqMdUZQ=="], - "@sentry/node": ["@sentry/node@10.46.0", "", { "dependencies": { "@fastify/otel": "0.17.1", "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^2.6.0", "@opentelemetry/core": "^2.6.0", "@opentelemetry/instrumentation": "^0.213.0", "@opentelemetry/instrumentation-amqplib": "0.60.0", "@opentelemetry/instrumentation-connect": "0.56.0", "@opentelemetry/instrumentation-dataloader": "0.30.0", "@opentelemetry/instrumentation-express": "0.61.0", "@opentelemetry/instrumentation-fs": "0.32.0", "@opentelemetry/instrumentation-generic-pool": "0.56.0", "@opentelemetry/instrumentation-graphql": "0.61.0", "@opentelemetry/instrumentation-hapi": "0.59.0", "@opentelemetry/instrumentation-http": "0.213.0", "@opentelemetry/instrumentation-ioredis": "0.61.0", "@opentelemetry/instrumentation-kafkajs": "0.22.0", "@opentelemetry/instrumentation-knex": "0.57.0", "@opentelemetry/instrumentation-koa": "0.61.0", "@opentelemetry/instrumentation-lru-memoizer": "0.57.0", "@opentelemetry/instrumentation-mongodb": "0.66.0", "@opentelemetry/instrumentation-mongoose": "0.59.0", "@opentelemetry/instrumentation-mysql": "0.59.0", "@opentelemetry/instrumentation-mysql2": "0.59.0", "@opentelemetry/instrumentation-pg": "0.65.0", "@opentelemetry/instrumentation-redis": "0.61.0", "@opentelemetry/instrumentation-tedious": "0.32.0", "@opentelemetry/instrumentation-undici": "0.23.0", "@opentelemetry/resources": "^2.6.0", "@opentelemetry/sdk-trace-base": "^2.6.0", "@opentelemetry/semantic-conventions": "^1.40.0", "@prisma/instrumentation": "7.4.2", "@sentry/core": "10.46.0", "@sentry/node-core": "10.46.0", "@sentry/opentelemetry": "10.46.0", "import-in-the-middle": "^3.0.0" } }, "sha512-vF+7FrUXEtmYWuVcnvBjlWKeyLw/kwHpwnGj9oUmO/a2uKjDmUr53ZVcapggNxCjivavGYr9uHOY64AGdeUyzA=="], + "@sentry/node": ["@sentry/node@10.63.0", "", { "dependencies": { "@opentelemetry/api": "^1.9.1", "@opentelemetry/instrumentation": "^0.214.0", "@opentelemetry/sdk-trace-base": "^2.6.1", "@opentelemetry/semantic-conventions": "^1.40.0", "@sentry/conventions": "^0.12.0", "@sentry/core": "10.63.0", "@sentry/node-core": "10.63.0", "@sentry/opentelemetry": "10.63.0", "@sentry/server-utils": "10.63.0", "import-in-the-middle": "^3.0.0" } }, "sha512-E+JfDTdUDGQPRsAfCTR2YgmQgxYdoxk4ks6niHN+ByW8alEZL+nXlcN9vI57qj1LsS4v2jjfLxJf1/cMMt84YA=="], - "@sentry/node-core": ["@sentry/node-core@10.46.0", "", { "dependencies": { "@sentry/core": "10.46.0", "@sentry/opentelemetry": "10.46.0", "import-in-the-middle": "^3.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.1.0", "@opentelemetry/core": "^1.30.1 || ^2.1.0", "@opentelemetry/instrumentation": ">=0.57.1 <1", "@opentelemetry/resources": "^1.30.1 || ^2.1.0", "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.1.0", "@opentelemetry/semantic-conventions": "^1.39.0" }, "optionalPeers": ["@opentelemetry/api", "@opentelemetry/context-async-hooks", "@opentelemetry/core", "@opentelemetry/instrumentation", "@opentelemetry/resources", "@opentelemetry/sdk-trace-base", "@opentelemetry/semantic-conventions"] }, "sha512-gwLGXfkzmiCmUI1VWttyoZBaVp1ItpDKc8AV2mQblWPQGdLSD0c6uKV/FkU291yZA3rXsrLXVwcWoibwnjE2vw=="], + "@sentry/node-core": ["@sentry/node-core@10.63.0", "", { "dependencies": { "@sentry/conventions": "^0.12.0", "@sentry/core": "10.63.0", "@sentry/opentelemetry": "10.63.0", "import-in-the-middle": "^3.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/core": "^1.30.1 || ^2.1.0", "@opentelemetry/exporter-trace-otlp-http": ">=0.57.0 <1", "@opentelemetry/instrumentation": ">=0.57.1 <1", "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.1.0" }, "optionalPeers": ["@opentelemetry/api", "@opentelemetry/core", "@opentelemetry/exporter-trace-otlp-http", "@opentelemetry/instrumentation", "@opentelemetry/sdk-trace-base"] }, "sha512-TaNtkGDRNxH3SjOea2PDtaebkNjMbAH8ZFsEcwlqmadpS7nqSR7z6slZy/iu7y1nLiUdbmcM5JmXwxksy52WRQ=="], - "@sentry/opentelemetry": ["@sentry/opentelemetry@10.46.0", "", { "dependencies": { "@sentry/core": "10.46.0" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.1.0", "@opentelemetry/core": "^1.30.1 || ^2.1.0", "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.1.0", "@opentelemetry/semantic-conventions": "^1.39.0" } }, "sha512-dzzV2ovruGsx9jzusGGr6cNPvMgYRu2BIrF8aMZ3rkQ1OpPJjPStqtA1l1fw0aoxHOxIjFU7ml4emF+xdmMl3g=="], + "@sentry/opentelemetry": ["@sentry/opentelemetry@10.63.0", "", { "dependencies": { "@sentry/conventions": "^0.12.0", "@sentry/core": "10.63.0" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/core": "^1.30.1 || ^2.1.0", "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.1.0" } }, "sha512-8yqi8+Ej/anmMn82blXA0BNMeAMs4av6nx0DzhxDrFya28ZaYOn19PChd3erMidfU0HnLLFNqWiFlYxBKq+/KA=="], + + "@sentry/server-utils": ["@sentry/server-utils@10.63.0", "", { "dependencies": { "@apm-js-collab/code-transformer": "^0.15.0", "@apm-js-collab/code-transformer-bundler-plugins": "^0.5.0", "@apm-js-collab/tracing-hooks": "^0.10.0", "@sentry/conventions": "^0.12.0", "@sentry/core": "10.63.0", "magic-string": "~0.30.0" } }, "sha512-7NN//DG9Yak8t2+6WiEcNmN269iHRVdtZtZIwucEd0OXyZ3FEBBDaBF+bT9V6H/kPtUvVMkHQ72Bn2Xs5JYGxg=="], "@simple-libs/child-process-utils": ["@simple-libs/child-process-utils@1.0.2", "", { "dependencies": { "@simple-libs/stream-utils": "^1.2.0" } }, "sha512-/4R8QKnd/8agJynkNdJmNw2MBxuFTRcNFnE5Sg/G+jkSsV8/UBgULMzhizWWW42p8L5H7flImV2ATi79Ove2Tw=="], - "@simple-libs/stream-utils": ["@simple-libs/stream-utils@1.2.0", "", {}, "sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA=="], + "@simple-libs/stream-utils": ["@simple-libs/stream-utils@2.0.0", "", {}, "sha512-fCTuZK4QBa+39Oz9l4OGfJfz+GpwCp3AqO7Zch3to99xHPgstVsRFpeQ8LNd2o1Gv8raL2mCFwiaHh7bFSp5DQ=="], "@types/bun": ["@types/bun@1.3.11", "", { "dependencies": { "bun-types": "1.3.11" } }, "sha512-5vPne5QvtpjGpsGYXiFyycfpDF2ECyPcTSsFBMa0fraoxiQyMJ3SmuQIGhzPg2WJuWxVBoxWJ2kClYTcw/4fAg=="], - "@types/connect": ["@types/connect@3.4.38", "", { "dependencies": { "@types/node": "*" } }, "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug=="], - - "@types/mysql": ["@types/mysql@2.15.27", "", { "dependencies": { "@types/node": "*" } }, "sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA=="], + "@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="], "@types/node": ["@types/node@26.1.0", "", { "dependencies": { "undici-types": "~8.3.0" } }, "sha512-O0A1G3xPGy4w7AgQdAQYUlQ+BKk2Oovw8eRpofyp5KdBZULnbe+WqaOVNrm705SHphCiG4XHsACrSmPu1f+Kgw=="], - "@types/pg": ["@types/pg@8.15.6", "", { "dependencies": { "@types/node": "*", "pg-protocol": "*", "pg-types": "^2.2.0" } }, "sha512-NoaMtzhxOrubeL/7UZuNTrejB4MPAJ0RpxZqXQf2qXuVlTPuG6Y8p4u9dKRaue4yjmC7ZhzVO2/Yyyn25znrPQ=="], - - "@types/pg-pool": ["@types/pg-pool@2.0.7", "", { "dependencies": { "@types/pg": "*" } }, "sha512-U4CwmGVQcbEuqpyju8/ptOKg6gEC+Tqsvj2xS9o1g71bUh8twxnC6ZL5rZKCsGN0iyH0CwgUyc9VR5owNQF9Ng=="], - - "@types/tedious": ["@types/tedious@4.0.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw=="], - "acorn": ["acorn@8.16.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw=="], "acorn-import-attributes": ["acorn-import-attributes@1.9.5", "", { "peerDependencies": { "acorn": "^8" } }, "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ=="], "ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "3.1.3", "fast-uri": "3.0.6", "json-schema-traverse": "1.0.0", "require-from-string": "2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], - "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], - "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], - "array-ify": ["array-ify@1.0.0", "", {}, "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng=="], - - "balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], - - "brace-expansion": ["brace-expansion@5.0.5", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ=="], + "astring": ["astring@1.9.0", "", { "bin": { "astring": "bin/astring" } }, "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg=="], "bun-types": ["bun-types@1.3.11", "", { "dependencies": { "@types/node": "*" } }, "sha512-1KGPpoxQWl9f6wcZh57LvrPIInQMn2TQ7jsgxqpRzg+l0QPOFvJVH7HmvHo/AiPgwXy+/Thf6Ov3EdVn1vOabg=="], @@ -246,19 +193,13 @@ "cjs-module-lexer": ["cjs-module-lexer@2.2.0", "", {}, "sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ=="], - "cliui": ["cliui@8.0.1", "", { "dependencies": { "string-width": "4.2.3", "strip-ansi": "6.0.1", "wrap-ansi": "7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="], - - "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], - - "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], - - "compare-func": ["compare-func@2.0.0", "", { "dependencies": { "array-ify": "1.0.0", "dot-prop": "5.3.0" } }, "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA=="], + "cliui": ["cliui@9.0.1", "", { "dependencies": { "string-width": "^7.2.0", "strip-ansi": "^7.1.0", "wrap-ansi": "^9.0.0" } }, "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w=="], - "conventional-changelog-angular": ["conventional-changelog-angular@8.3.0", "", { "dependencies": { "compare-func": "^2.0.0" } }, "sha512-DOuBwYSqWzfwuRByY9O4oOIvDlkUCTDzfbOgcSbkY+imXXj+4tmrEFao3K+FxemClYfYnZzsvudbwrhje9VHDA=="], + "conventional-changelog-angular": ["conventional-changelog-angular@9.2.1", "", { "dependencies": { "@conventional-changelog/template": "^1.2.1" } }, "sha512-oWSL6ZhnXbYraOFTK3PgRAQJ8fADDAEv5K6AdeyQPLvjFmhG8+ejL0jZZp/R7vTmGJaBvZEE+sE7dB4bCv7sAw=="], "conventional-changelog-conventionalcommits": ["conventional-changelog-conventionalcommits@10.2.0", "", { "dependencies": { "@conventional-changelog/template": "^1.2.0" } }, "sha512-UtlM9GqolY7OmlQh5L/UEVoKsTUpTgUVy1PU8JN5gl5Ydaejb7WRklGliG1SKPxxj7hzA173eG3Kt5fYWE2pmg=="], - "conventional-commits-parser": ["conventional-commits-parser@6.3.0", "", { "dependencies": { "@simple-libs/stream-utils": "^1.2.0", "meow": "^13.0.0" }, "bin": { "conventional-commits-parser": "dist/cli/index.js" } }, "sha512-RfOq/Cqy9xV9bOA8N+ZH6DlrDR+5S3Mi0B5kACEjESpE+AviIpAptx9a9cFpWCCvgRtWT+0BbUw+e1BZfts9jg=="], + "conventional-commits-parser": ["conventional-commits-parser@7.0.0", "", { "dependencies": { "@simple-libs/stream-utils": "^2.0.0", "meow": "^14.0.0" }, "bin": { "conventional-commits-parser": "./dist/cli/index.js" } }, "sha512-dZe/p+FgGQLNJFqaCgNdl8j6a7gI8xuaN30Wy5g7nvyK3jqOpNUEUZ3pGJ5D68h89uRh038FtkeOk/bnGmYkmg=="], "cosmiconfig": ["cosmiconfig@9.0.1", "", { "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0" }, "peerDependencies": { "typescript": ">=4.9.5" }, "optionalPeers": ["typescript"] }, "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ=="], @@ -266,27 +207,35 @@ "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], - "dot-prop": ["dot-prop@5.3.0", "", { "dependencies": { "is-obj": "2.0.0" } }, "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q=="], - - "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + "emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], "env-paths": ["env-paths@2.2.1", "", {}, "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="], "error-ex": ["error-ex@1.3.2", "", { "dependencies": { "is-arrayish": "0.2.1" } }, "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="], + "es-module-lexer": ["es-module-lexer@2.3.0", "", {}, "sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw=="], + + "es-toolkit": ["es-toolkit@1.49.0", "", {}, "sha512-G5iZ6Pc/FNRY/soKZHC+TxGDD83rHUDXxzaWhGCX44vAv/tMs56WMusnm/KMNK+luUPsgA9U28cGr4RDlSzL2g=="], + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + "esquery": ["esquery@1.7.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g=="], + + "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], "fast-uri": ["fast-uri@3.0.6", "", {}, "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw=="], - "forwarded-parse": ["forwarded-parse@2.1.2", "", {}, "sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw=="], - "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], + "get-east-asian-width": ["get-east-asian-width@1.6.0", "", {}, "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA=="], + "git-raw-commits": ["git-raw-commits@5.0.1", "", { "dependencies": { "@conventional-changelog/git-client": "^2.6.0", "meow": "^13.0.0" }, "bin": { "git-raw-commits": "src/cli.js" } }, "sha512-Y+csSm2GD/PCSh6Isd/WiMjNAydu0VBiG9J7EdQsNA5P9uXvLayqjmTsNlK5Gs9IhblFZqOU0yid5Il5JPoLiQ=="], - "global-directory": ["global-directory@4.0.1", "", { "dependencies": { "ini": "4.1.1" } }, "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q=="], + "global-directory": ["global-directory@5.0.0", "", { "dependencies": { "ini": "6.0.0" } }, "sha512-1pgFdhK3J2LeM+dVf2Pd424yHx2ou338lC0ErNP2hPx4j8eW1Sp0XqSjNxtk6Tc4Kr5wlWtSvz8cn2yb7/SG/w=="], + + "highlight.js": ["highlight.js@11.9.0", "", {}, "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw=="], "husky": ["husky@9.1.7", "", { "bin": { "husky": "bin.js" } }, "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA=="], @@ -294,16 +243,10 @@ "import-in-the-middle": ["import-in-the-middle@3.0.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-import-attributes": "^1.9.5", "cjs-module-lexer": "^2.2.0", "module-details-from-path": "^1.0.4" } }, "sha512-OnGy+eYT7wVejH2XWgLRgbmzujhhVIATQH0ztIeRilwHBjTeG3pD+XnH3PKX0r9gJ0BuJmJ68q/oh9qgXnNDQg=="], - "import-meta-resolve": ["import-meta-resolve@4.1.0", "", {}, "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw=="], - - "ini": ["ini@4.1.1", "", {}, "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g=="], + "ini": ["ini@6.0.0", "", {}, "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ=="], "is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="], - "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], - - "is-obj": ["is-obj@2.0.0", "", {}, "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="], - "is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], "jiti": ["jiti@2.4.2", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A=="], @@ -318,23 +261,11 @@ "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], - "lodash.camelcase": ["lodash.camelcase@4.3.0", "", {}, "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="], - - "lodash.kebabcase": ["lodash.kebabcase@4.1.1", "", {}, "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g=="], - - "lodash.mergewith": ["lodash.mergewith@4.6.2", "", {}, "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ=="], - - "lodash.snakecase": ["lodash.snakecase@4.1.1", "", {}, "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw=="], - - "lodash.startcase": ["lodash.startcase@4.4.0", "", {}, "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg=="], - - "lodash.upperfirst": ["lodash.upperfirst@4.3.1", "", {}, "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg=="], + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], "meow": ["meow@13.2.0", "", {}, "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA=="], - "minimatch": ["minimatch@10.2.4", "", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg=="], - - "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], + "meriyah": ["meriyah@6.1.4", "", {}, "sha512-Sz8FzjzI0kN13GK/6MVEsVzMZEPvOhnmmI1lU5+/1cGOiK3QUahntrNNtdVeihrO7t9JpoH75iMNXg6R6uWflQ=="], "module-details-from-path": ["module-details-from-path@1.0.4", "", {}, "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w=="], @@ -346,38 +277,32 @@ "parse-json": ["parse-json@5.2.0", "", { "dependencies": { "@babel/code-frame": "7.26.2", "error-ex": "1.3.2", "json-parse-even-better-errors": "2.3.1", "lines-and-columns": "1.2.4" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="], - "pg-int8": ["pg-int8@1.0.1", "", {}, "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="], - - "pg-protocol": ["pg-protocol@1.13.0", "", {}, "sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w=="], - - "pg-types": ["pg-types@2.2.0", "", { "dependencies": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", "postgres-bytea": "~1.0.0", "postgres-date": "~1.0.4", "postgres-interval": "^1.1.0" } }, "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA=="], - "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], - "postgres-array": ["postgres-array@2.0.0", "", {}, "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="], - - "postgres-bytea": ["postgres-bytea@1.0.1", "", {}, "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ=="], - - "postgres-date": ["postgres-date@1.0.7", "", {}, "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="], - - "postgres-interval": ["postgres-interval@1.2.0", "", { "dependencies": { "xtend": "^4.0.0" } }, "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="], - - "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], - "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], "require-in-the-middle": ["require-in-the-middle@8.0.1", "", { "dependencies": { "debug": "^4.3.5", "module-details-from-path": "^1.0.3" } }, "sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ=="], "resolve-from": ["resolve-from@5.0.0", "", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="], + "sax": ["sax@1.3.0", "", {}, "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="], + + "semifies": ["semifies@1.0.0", "", {}, "sha512-xXR3KGeoxTNWPD4aBvL5NUpMTT7WMANr3EWnaS190QVkY52lqqcVRD7Q05UVbBhiWDGWMlJEUam9m7uFFGVScw=="], + "semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "8.0.0", "is-fullwidth-code-point": "3.0.0", "strip-ansi": "6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + "source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + + "string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], + + "strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], - "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "syntax": ["syntax@1.6.3", "", { "dependencies": { "highlight.js": "11.9.0", "sax": "1.3.0", "tokenizr": "1.6.10" } }, "sha512-42Cj6qmJa19vQ2yj048w9ARpGKVlkRwqogpdFeI5fzqwd96LyZz+Lq2kTZYOQ7csaB2oRzZ7IgiswU0H8rkFlA=="], "tinyexec": ["tinyexec@1.0.1", "", {}, "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw=="], + "tokenizr": ["tokenizr@1.6.10", "", {}, "sha512-X+b3uWUlezYyvjltWlIEG8R2v7uLif3kr4UGmlmGbJpmg3CCnedzoWjQ5DIfr2q+EuIjAbc4AgItWguzl+0LyQ=="], + "tunnel": ["tunnel@0.0.6", "", {}, "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="], "typescript": ["typescript@6.0.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw=="], @@ -386,64 +311,34 @@ "undici-types": ["undici-types@8.3.0", "", {}, "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ=="], - "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "4.3.0", "string-width": "4.2.3", "strip-ansi": "6.0.1" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], - - "xtend": ["xtend@4.0.2", "", {}, "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="], + "wrap-ansi": ["wrap-ansi@9.0.2", "", { "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", "strip-ansi": "^7.1.0" } }, "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww=="], "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], - "yargs": ["yargs@17.7.2", "", { "dependencies": { "cliui": "8.0.1", "escalade": "3.2.0", "get-caller-file": "2.0.5", "require-directory": "2.1.1", "string-width": "4.2.3", "y18n": "5.0.8", "yargs-parser": "21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="], - - "yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="], + "yargs": ["yargs@18.0.0", "", { "dependencies": { "cliui": "^9.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "string-width": "^7.2.0", "y18n": "^5.0.5", "yargs-parser": "^22.0.0" } }, "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg=="], - "@commitlint/config-conventional/@commitlint/types": ["@commitlint/types@21.2.0", "", { "dependencies": { "conventional-commits-parser": "^7.0.0", "picocolors": "^1.1.1" } }, "sha512-7zVFCDB2reMvJH5dmbKnOQPjZEvjdJTH8jc0U/PIPU1r3/+vf5pD1HlfitV2MWsWXrvu7u39iY1lyLUPOaN0Gw=="], + "yargs-parser": ["yargs-parser@22.0.0", "", {}, "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw=="], - "@fastify/otel/@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.212.0", "", { "dependencies": { "@opentelemetry/api-logs": "0.212.0", "import-in-the-middle": "^2.0.6", "require-in-the-middle": "^8.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-IyXmpNnifNouMOe0I/gX7ENfv2ZCNdYTF0FpCsoBcpbIHzk81Ww9rQTYTnvghszCg7qGrIhNvWC8dhEifgX9Jg=="], + "@conventional-changelog/git-client/@simple-libs/stream-utils": ["@simple-libs/stream-utils@1.2.0", "", {}, "sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA=="], - "@opentelemetry/instrumentation-http/@opentelemetry/core": ["@opentelemetry/core@2.6.0", "", { "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-HLM1v2cbZ4TgYN6KEOj+Bbj8rAKriOdkF9Ed3tG25FoprSiQl7kYc+RRT6fUZGOvx0oMi5U67GoFdT+XUn8zEg=="], + "@conventional-changelog/git-client/conventional-commits-parser": ["conventional-commits-parser@6.3.0", "", { "dependencies": { "@simple-libs/stream-utils": "^1.2.0", "meow": "^13.0.0" }, "bin": { "conventional-commits-parser": "dist/cli/index.js" } }, "sha512-RfOq/Cqy9xV9bOA8N+ZH6DlrDR+5S3Mi0B5kACEjESpE+AviIpAptx9a9cFpWCCvgRtWT+0BbUw+e1BZfts9jg=="], - "@prisma/instrumentation/@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.207.0", "", { "dependencies": { "@opentelemetry/api-logs": "0.207.0", "import-in-the-middle": "^2.0.0", "require-in-the-middle": "^8.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-y6eeli9+TLKnznrR8AZlQMSJT7wILpXH+6EYq5Vf/4Ao+huI7EedxQHwRgVUOMLFbe7VFDvHJrX9/f4lcwnJsA=="], + "@simple-libs/child-process-utils/@simple-libs/stream-utils": ["@simple-libs/stream-utils@1.2.0", "", {}, "sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA=="], - "@types/connect/@types/node": ["@types/node@25.5.0", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw=="], - - "@types/mysql/@types/node": ["@types/node@25.5.0", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw=="], + "bun-types/@types/node": ["@types/node@25.5.0", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw=="], - "@types/pg/@types/node": ["@types/node@25.5.0", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw=="], + "conventional-changelog-angular/@conventional-changelog/template": ["@conventional-changelog/template@1.2.1", "", {}, "sha512-TzlTVpKPjaqW6qOYjQcYUDuGsLCNsvFHVBXkYGTAnf5V37jCWrE5haKNXzz0WZUtVHjrpV76L1buANjwXMfT8w=="], - "@types/tedious/@types/node": ["@types/node@25.5.0", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw=="], - - "bun-types/@types/node": ["@types/node@25.5.0", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw=="], + "conventional-commits-parser/meow": ["meow@14.1.0", "", {}, "sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw=="], "cosmiconfig-typescript-loader/cosmiconfig": ["cosmiconfig@9.0.0", "", { "dependencies": { "env-paths": "2.2.1", "import-fresh": "3.3.1", "js-yaml": "4.1.0", "parse-json": "5.2.0" }, "optionalDependencies": { "typescript": "5.9.3" } }, "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg=="], "import-fresh/resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], - "@commitlint/config-conventional/@commitlint/types/conventional-commits-parser": ["conventional-commits-parser@7.0.0", "", { "dependencies": { "@simple-libs/stream-utils": "^2.0.0", "meow": "^14.0.0" }, "bin": { "conventional-commits-parser": "./dist/cli/index.js" } }, "sha512-dZe/p+FgGQLNJFqaCgNdl8j6a7gI8xuaN30Wy5g7nvyK3jqOpNUEUZ3pGJ5D68h89uRh038FtkeOk/bnGmYkmg=="], - - "@fastify/otel/@opentelemetry/instrumentation/@opentelemetry/api-logs": ["@opentelemetry/api-logs@0.212.0", "", { "dependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-TEEVrLbNROUkYY51sBJGk7lO/OLjuepch8+hmpM6ffMJQ2z/KVCjdHuCFX6fJj8OkJP2zckPjrJzQtXU3IAsFg=="], - - "@fastify/otel/@opentelemetry/instrumentation/import-in-the-middle": ["import-in-the-middle@2.0.6", "", { "dependencies": { "acorn": "^8.15.0", "acorn-import-attributes": "^1.9.5", "cjs-module-lexer": "^2.2.0", "module-details-from-path": "^1.0.4" } }, "sha512-3vZV3jX0XRFW3EJDTwzWoZa+RH1b8eTTx6YOCjglrLyPuepwoBti1k3L2dKwdCUrnVEfc5CuRuGstaC/uQJJaw=="], - - "@prisma/instrumentation/@opentelemetry/instrumentation/@opentelemetry/api-logs": ["@opentelemetry/api-logs@0.207.0", "", { "dependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-lAb0jQRVyleQQGiuuvCOTDVspc14nx6XJjP4FspJ1sNARo3Regq4ZZbrc3rN4b1TYSuUCvgH+UXUPug4SLOqEQ=="], - - "@prisma/instrumentation/@opentelemetry/instrumentation/import-in-the-middle": ["import-in-the-middle@2.0.6", "", { "dependencies": { "acorn": "^8.15.0", "acorn-import-attributes": "^1.9.5", "cjs-module-lexer": "^2.2.0", "module-details-from-path": "^1.0.4" } }, "sha512-3vZV3jX0XRFW3EJDTwzWoZa+RH1b8eTTx6YOCjglrLyPuepwoBti1k3L2dKwdCUrnVEfc5CuRuGstaC/uQJJaw=="], - - "@types/connect/@types/node/undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="], - - "@types/mysql/@types/node/undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="], - - "@types/pg/@types/node/undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="], - - "@types/tedious/@types/node/undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="], - "bun-types/@types/node/undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="], "cosmiconfig-typescript-loader/cosmiconfig/js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], "cosmiconfig-typescript-loader/cosmiconfig/typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], - - "@commitlint/config-conventional/@commitlint/types/conventional-commits-parser/@simple-libs/stream-utils": ["@simple-libs/stream-utils@2.0.0", "", {}, "sha512-fCTuZK4QBa+39Oz9l4OGfJfz+GpwCp3AqO7Zch3to99xHPgstVsRFpeQ8LNd2o1Gv8raL2mCFwiaHh7bFSp5DQ=="], - - "@commitlint/config-conventional/@commitlint/types/conventional-commits-parser/meow": ["meow@14.1.0", "", {}, "sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw=="], } } diff --git a/dist/index.js b/dist/index.js index 19f6325..87a5913 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,88 +1,96 @@ -import{createRequire as mXA}from"node:module";var kXA=Object.create;var{getPrototypeOf:SXA,defineProperty:Tw,getOwnPropertyNames:gXA}=Object;var yXA=Object.prototype.hasOwnProperty;function hXA(A){return this[A]}var fXA,_XA,P=(A,Q,B)=>{var I=A!=null&&typeof A==="object";if(I){var C=Q?fXA??=new WeakMap:_XA??=new WeakMap,E=C.get(A);if(E)return E}B=A!=null?kXA(SXA(A)):{};let Y=Q||!A||!A.__esModule?Tw(B,"default",{value:A,enumerable:!0}):B;for(let J of gXA(A))if(!yXA.call(Y,J))Tw(Y,J,{get:hXA.bind(A,J),enumerable:!0});if(I)C.set(A,Y);return Y};var X=(A,Q)=>()=>(Q||A((Q={exports:{}}).exports,Q),Q.exports);var vXA=(A)=>A;function xXA(A,Q){this[A]=vXA.bind(null,Q)}var bXA=(A,Q)=>{for(var B in Q)Tw(A,B,{get:Q[B],enumerable:!0,configurable:!0,set:xXA.bind(Q,B)})};var H=mXA(import.meta.url);var yA=X((BWQ,nM)=>{nM.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent")}});var UA=X((IWQ,mL)=>{var oM=Symbol.for("undici.error.UND_ERR");class xA extends Error{constructor(A){super(A);this.name="UndiciError",this.code="UND_ERR"}static[Symbol.hasInstance](A){return A&&A[oM]===!0}[oM]=!0}var aM=Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT");class zL extends xA{constructor(A){super(A);this.name="ConnectTimeoutError",this.message=A||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[aM]===!0}[aM]=!0}var sM=Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT");class $L extends xA{constructor(A){super(A);this.name="HeadersTimeoutError",this.message=A||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[sM]===!0}[sM]=!0}var rM=Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW");class HL extends xA{constructor(A){super(A);this.name="HeadersOverflowError",this.message=A||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}static[Symbol.hasInstance](A){return A&&A[rM]===!0}[rM]=!0}var tM=Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT");class ML extends xA{constructor(A){super(A);this.name="BodyTimeoutError",this.message=A||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[tM]===!0}[tM]=!0}var eM=Symbol.for("undici.error.UND_ERR_RESPONSE_STATUS_CODE");class LL extends xA{constructor(A,Q,B,I){super(A);this.name="ResponseStatusCodeError",this.message=A||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=I,this.status=Q,this.statusCode=Q,this.headers=B}static[Symbol.hasInstance](A){return A&&A[eM]===!0}[eM]=!0}var AL=Symbol.for("undici.error.UND_ERR_INVALID_ARG");class NL extends xA{constructor(A){super(A);this.name="InvalidArgumentError",this.message=A||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}static[Symbol.hasInstance](A){return A&&A[AL]===!0}[AL]=!0}var QL=Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE");class jL extends xA{constructor(A){super(A);this.name="InvalidReturnValueError",this.message=A||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}static[Symbol.hasInstance](A){return A&&A[QL]===!0}[QL]=!0}var BL=Symbol.for("undici.error.UND_ERR_ABORT");class Sw extends xA{constructor(A){super(A);this.name="AbortError",this.message=A||"The operation was aborted",this.code="UND_ERR_ABORT"}static[Symbol.hasInstance](A){return A&&A[BL]===!0}[BL]=!0}var IL=Symbol.for("undici.error.UND_ERR_ABORTED");class RL extends Sw{constructor(A){super(A);this.name="AbortError",this.message=A||"Request aborted",this.code="UND_ERR_ABORTED"}static[Symbol.hasInstance](A){return A&&A[IL]===!0}[IL]=!0}var CL=Symbol.for("undici.error.UND_ERR_INFO");class qL extends xA{constructor(A){super(A);this.name="InformationalError",this.message=A||"Request information",this.code="UND_ERR_INFO"}static[Symbol.hasInstance](A){return A&&A[CL]===!0}[CL]=!0}var EL=Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH");class OL extends xA{constructor(A){super(A);this.name="RequestContentLengthMismatchError",this.message=A||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](A){return A&&A[EL]===!0}[EL]=!0}var YL=Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH");class TL extends xA{constructor(A){super(A);this.name="ResponseContentLengthMismatchError",this.message=A||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](A){return A&&A[YL]===!0}[YL]=!0}var JL=Symbol.for("undici.error.UND_ERR_DESTROYED");class PL extends xA{constructor(A){super(A);this.name="ClientDestroyedError",this.message=A||"The client is destroyed",this.code="UND_ERR_DESTROYED"}static[Symbol.hasInstance](A){return A&&A[JL]===!0}[JL]=!0}var FL=Symbol.for("undici.error.UND_ERR_CLOSED");class kL extends xA{constructor(A){super(A);this.name="ClientClosedError",this.message=A||"The client is closed",this.code="UND_ERR_CLOSED"}static[Symbol.hasInstance](A){return A&&A[FL]===!0}[FL]=!0}var GL=Symbol.for("undici.error.UND_ERR_SOCKET");class SL extends xA{constructor(A,Q){super(A);this.name="SocketError",this.message=A||"Socket error",this.code="UND_ERR_SOCKET",this.socket=Q}static[Symbol.hasInstance](A){return A&&A[GL]===!0}[GL]=!0}var DL=Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED");class gL extends xA{constructor(A){super(A);this.name="NotSupportedError",this.message=A||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}static[Symbol.hasInstance](A){return A&&A[DL]===!0}[DL]=!0}var ZL=Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM");class yL extends xA{constructor(A){super(A);this.name="MissingUpstreamError",this.message=A||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}static[Symbol.hasInstance](A){return A&&A[ZL]===!0}[ZL]=!0}var WL=Symbol.for("undici.error.UND_ERR_HTTP_PARSER");class hL extends Error{constructor(A,Q,B){super(A);this.name="HTTPParserError",this.code=Q?`HPE_${Q}`:void 0,this.data=B?B.toString():void 0}static[Symbol.hasInstance](A){return A&&A[WL]===!0}[WL]=!0}var UL=Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE");class fL extends xA{constructor(A){super(A);this.name="ResponseExceededMaxSizeError",this.message=A||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}static[Symbol.hasInstance](A){return A&&A[UL]===!0}[UL]=!0}var XL=Symbol.for("undici.error.UND_ERR_REQ_RETRY");class _L extends xA{constructor(A,Q,{headers:B,data:I}){super(A);this.name="RequestRetryError",this.message=A||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=Q,this.data=I,this.headers=B}static[Symbol.hasInstance](A){return A&&A[XL]===!0}[XL]=!0}var wL=Symbol.for("undici.error.UND_ERR_RESPONSE");class vL extends xA{constructor(A,Q,{headers:B,data:I}){super(A);this.name="ResponseError",this.message=A||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=Q,this.data=I,this.headers=B}static[Symbol.hasInstance](A){return A&&A[wL]===!0}[wL]=!0}var KL=Symbol.for("undici.error.UND_ERR_PRX_TLS");class xL extends xA{constructor(A,Q,B){super(Q,{cause:A,...B??{}});this.name="SecureProxyConnectionError",this.message=Q||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=A}static[Symbol.hasInstance](A){return A&&A[KL]===!0}[KL]=!0}var VL=Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED");class bL extends xA{constructor(A){super(A);this.name="MessageSizeExceededError",this.message=A||"Max decompressed message size exceeded",this.code="UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"}static[Symbol.hasInstance](A){return A&&A[VL]===!0}get[VL](){return!0}}mL.exports={AbortError:Sw,HTTPParserError:hL,UndiciError:xA,HeadersTimeoutError:$L,HeadersOverflowError:HL,BodyTimeoutError:ML,RequestContentLengthMismatchError:OL,ConnectTimeoutError:zL,ResponseStatusCodeError:LL,InvalidArgumentError:NL,InvalidReturnValueError:jL,RequestAbortedError:RL,ClientDestroyedError:PL,ClientClosedError:kL,InformationalError:qL,SocketError:SL,NotSupportedError:gL,ResponseContentLengthMismatchError:TL,BalancedPoolMissingUpstreamError:yL,ResponseExceededMaxSizeError:fL,RequestRetryError:_L,ResponseError:vL,SecureProxyConnectionError:xL,MessageSizeExceededError:bL}});var V9=X((CWQ,dL)=>{var K9={},gw=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let A=0;A{var{wellknownHeaderNames:cL,headerNameLowerCasedRecord:oXA}=V9();class JJ{value=null;left=null;middle=null;right=null;code;constructor(A,Q,B){if(B===void 0||B>=A.length)throw TypeError("Unreachable");if((this.code=A.charCodeAt(B))>127)throw TypeError("key must be ascii string");if(A.length!==++B)this.middle=new JJ(A,Q,B);else this.value=Q}add(A,Q){let B=A.length;if(B===0)throw TypeError("Unreachable");let I=0,C=this;while(!0){let E=A.charCodeAt(I);if(E>127)throw TypeError("key must be ascii string");if(C.code===E)if(B===++I){C.value=Q;break}else if(C.middle!==null)C=C.middle;else{C.middle=new JJ(A,Q,I);break}else if(C.code=65)C|=32;while(I!==null){if(C===I.code){if(Q===++B)return I;I=I.middle;break}I=I.code{var yG=H("node:assert"),{kDestroyed:nL,kBodyUsed:FJ,kListeners:hw,kBody:iL}=yA(),{IncomingMessage:aXA}=H("node:http"),$9=H("node:stream"),sXA=H("node:net"),{Blob:rXA}=H("node:buffer"),tXA=H("node:util"),{stringify:eXA}=H("node:querystring"),{EventEmitter:A8A}=H("node:events"),{InvalidArgumentError:wQ}=UA(),{headerNameLowerCasedRecord:Q8A}=V9(),{tree:oL}=pL(),[B8A,I8A]=process.versions.node.split(".").map((A)=>Number(A));class fw{constructor(A){this[iL]=A,this[FJ]=!1}async*[Symbol.asyncIterator](){yG(!this[FJ],"disturbed"),this[FJ]=!0,yield*this[iL]}}function C8A(A){if(H9(A)){if(eL(A)===0)A.on("data",function(){yG(!1)});if(typeof A.readableDidRead!=="boolean")A[FJ]=!1,A8A.prototype.on.call(A,"data",function(){this[FJ]=!0});return A}else if(A&&typeof A.pipeTo==="function")return new fw(A);else if(A&&typeof A!=="string"&&!ArrayBuffer.isView(A)&&tL(A))return new fw(A);else return A}function E8A(){}function H9(A){return A&&typeof A==="object"&&typeof A.pipe==="function"&&typeof A.on==="function"}function aL(A){if(A===null)return!1;else if(A instanceof rXA)return!0;else if(typeof A!=="object")return!1;else{let Q=A[Symbol.toStringTag];return(Q==="Blob"||Q==="File")&&(("stream"in A)&&typeof A.stream==="function"||("arrayBuffer"in A)&&typeof A.arrayBuffer==="function")}}function Y8A(A,Q){if(A.includes("?")||A.includes("#"))throw Error('Query params cannot be passed when url already contains "?" or "#".');let B=eXA(Q);if(B)A+="?"+B;return A}function sL(A){let Q=parseInt(A,10);return Q===Number(A)&&Q>=0&&Q<=65535}function z9(A){return A!=null&&A[0]==="h"&&A[1]==="t"&&A[2]==="t"&&A[3]==="p"&&(A[4]===":"||A[4]==="s"&&A[5]===":")}function rL(A){if(typeof A==="string"){if(A=new URL(A),!z9(A.origin||A.protocol))throw new wQ("Invalid URL protocol: the URL must start with `http:` or `https:`.");return A}if(!A||typeof A!=="object")throw new wQ("Invalid URL: The URL argument must be a non-null object.");if(!(A instanceof URL)){if(A.port!=null&&A.port!==""&&sL(A.port)===!1)throw new wQ("Invalid URL: port must be a valid integer or a string representation of an integer.");if(A.path!=null&&typeof A.path!=="string")throw new wQ("Invalid URL path: the path must be a string or null/undefined.");if(A.pathname!=null&&typeof A.pathname!=="string")throw new wQ("Invalid URL pathname: the pathname must be a string or null/undefined.");if(A.hostname!=null&&typeof A.hostname!=="string")throw new wQ("Invalid URL hostname: the hostname must be a string or null/undefined.");if(A.origin!=null&&typeof A.origin!=="string")throw new wQ("Invalid URL origin: the origin must be a string or null/undefined.");if(!z9(A.origin||A.protocol))throw new wQ("Invalid URL protocol: the URL must start with `http:` or `https:`.");let Q=A.port!=null?A.port:A.protocol==="https:"?443:80,B=A.origin!=null?A.origin:`${A.protocol||""}//${A.hostname||""}:${Q}`,I=A.path!=null?A.path:`${A.pathname||""}${A.search||""}`;if(B[B.length-1]==="/")B=B.slice(0,B.length-1);if(I&&I[0]!=="/")I=`/${I}`;return new URL(`${B}${I}`)}if(!z9(A.origin||A.protocol))throw new wQ("Invalid URL protocol: the URL must start with `http:` or `https:`.");return A}function J8A(A){if(A=rL(A),A.pathname!=="/"||A.search||A.hash)throw new wQ("invalid url");return A}function F8A(A){if(A[0]==="["){let B=A.indexOf("]");return yG(B!==-1),A.substring(1,B)}let Q=A.indexOf(":");if(Q===-1)return A;return A.substring(0,Q)}function G8A(A){if(!A)return null;yG(typeof A==="string");let Q=F8A(A);if(sXA.isIP(Q))return"";return Q}function D8A(A){return JSON.parse(JSON.stringify(A))}function Z8A(A){return A!=null&&typeof A[Symbol.asyncIterator]==="function"}function tL(A){return A!=null&&(typeof A[Symbol.iterator]==="function"||typeof A[Symbol.asyncIterator]==="function")}function eL(A){if(A==null)return 0;else if(H9(A)){let Q=A._readableState;return Q&&Q.objectMode===!1&&Q.ended===!0&&Number.isFinite(Q.length)?Q.length:null}else if(aL(A))return A.size!=null?A.size:null;else if(B2(A))return A.byteLength;return null}function A2(A){return A&&!!(A.destroyed||A[nL]||$9.isDestroyed?.(A))}function W8A(A,Q){if(A==null||!H9(A)||A2(A))return;if(typeof A.destroy==="function"){if(Object.getPrototypeOf(A).constructor===aXA)A.socket=null;A.destroy(Q)}else if(Q)queueMicrotask(()=>{A.emit("error",Q)});if(A.destroyed!==!0)A[nL]=!0}var U8A=/timeout=(\d+)/;function X8A(A){let Q=A.toString().match(U8A);return Q?parseInt(Q[1],10)*1000:null}function Q2(A){return typeof A==="string"?Q8A[A]??A.toLowerCase():oL.lookup(A)??A.toString("latin1").toLowerCase()}function w8A(A){return oL.lookup(A)??A.toString("latin1").toLowerCase()}function K8A(A,Q){if(Q===void 0)Q={};for(let B=0;BY.toString("utf8")):E.toString("utf8")}}if("content-length"in Q&&"content-disposition"in Q)Q["content-disposition"]=Buffer.from(Q["content-disposition"]).toString("latin1");return Q}function V8A(A){let Q=A.length,B=Array(Q),I=!1,C=-1,E,Y,J=0;for(let F=0;F{B.close(),B.byobRequest?.respond(0)});else{let E=Buffer.isBuffer(C)?C:Buffer.from(C);if(E.byteLength)B.enqueue(new Uint8Array(E))}return B.desiredSize>0},async cancel(B){await Q.return()},type:"bytes"})}function j8A(A){return A&&typeof A==="object"&&typeof A.append==="function"&&typeof A.delete==="function"&&typeof A.get==="function"&&typeof A.getAll==="function"&&typeof A.has==="function"&&typeof A.set==="function"&&A[Symbol.toStringTag]==="FormData"}function R8A(A,Q){if("addEventListener"in A)return A.addEventListener("abort",Q,{once:!0}),()=>A.removeEventListener("abort",Q);return A.addListener("abort",Q),()=>A.removeListener("abort",Q)}var q8A=typeof String.prototype.toWellFormed==="function",O8A=typeof String.prototype.isWellFormed==="function";function I2(A){return q8A?`${A}`.toWellFormed():tXA.toUSVString(A)}function T8A(A){return O8A?`${A}`.isWellFormed():I2(A)===`${A}`}function C2(A){switch(A){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return A>=33&&A<=126}}function P8A(A){if(A.length===0)return!1;for(let Q=0;Q{var KA=H("node:diagnostics_channel"),xw=H("node:util"),M9=xw.debuglog("undici"),vw=xw.debuglog("fetch"),y0=xw.debuglog("websocket"),F2=!1,_8A={beforeConnect:KA.channel("undici:client:beforeConnect"),connected:KA.channel("undici:client:connected"),connectError:KA.channel("undici:client:connectError"),sendHeaders:KA.channel("undici:client:sendHeaders"),create:KA.channel("undici:request:create"),bodySent:KA.channel("undici:request:bodySent"),headers:KA.channel("undici:request:headers"),trailers:KA.channel("undici:request:trailers"),error:KA.channel("undici:request:error"),open:KA.channel("undici:websocket:open"),close:KA.channel("undici:websocket:close"),socketError:KA.channel("undici:websocket:socket_error"),ping:KA.channel("undici:websocket:ping"),pong:KA.channel("undici:websocket:pong")};if(M9.enabled||vw.enabled){let A=vw.enabled?vw:M9;KA.channel("undici:client:beforeConnect").subscribe((Q)=>{let{connectParams:{version:B,protocol:I,port:C,host:E}}=Q;A("connecting to %s using %s%s",`${E}${C?`:${C}`:""}`,I,B)}),KA.channel("undici:client:connected").subscribe((Q)=>{let{connectParams:{version:B,protocol:I,port:C,host:E}}=Q;A("connected to %s using %s%s",`${E}${C?`:${C}`:""}`,I,B)}),KA.channel("undici:client:connectError").subscribe((Q)=>{let{connectParams:{version:B,protocol:I,port:C,host:E},error:Y}=Q;A("connection to %s using %s%s errored - %s",`${E}${C?`:${C}`:""}`,I,B,Y.message)}),KA.channel("undici:client:sendHeaders").subscribe((Q)=>{let{request:{method:B,path:I,origin:C}}=Q;A("sending request to %s %s/%s",B,C,I)}),KA.channel("undici:request:headers").subscribe((Q)=>{let{request:{method:B,path:I,origin:C},response:{statusCode:E}}=Q;A("received response to %s %s/%s - HTTP %d",B,C,I,E)}),KA.channel("undici:request:trailers").subscribe((Q)=>{let{request:{method:B,path:I,origin:C}}=Q;A("trailers received from %s %s/%s",B,C,I)}),KA.channel("undici:request:error").subscribe((Q)=>{let{request:{method:B,path:I,origin:C},error:E}=Q;A("request to %s %s/%s errored - %s",B,C,I,E.message)}),F2=!0}if(y0.enabled){if(!F2){let A=M9.enabled?M9:y0;KA.channel("undici:client:beforeConnect").subscribe((Q)=>{let{connectParams:{version:B,protocol:I,port:C,host:E}}=Q;A("connecting to %s%s using %s%s",E,C?`:${C}`:"",I,B)}),KA.channel("undici:client:connected").subscribe((Q)=>{let{connectParams:{version:B,protocol:I,port:C,host:E}}=Q;A("connected to %s%s using %s%s",E,C?`:${C}`:"",I,B)}),KA.channel("undici:client:connectError").subscribe((Q)=>{let{connectParams:{version:B,protocol:I,port:C,host:E},error:Y}=Q;A("connection to %s%s using %s%s errored - %s",E,C?`:${C}`:"",I,B,Y.message)}),KA.channel("undici:client:sendHeaders").subscribe((Q)=>{let{request:{method:B,path:I,origin:C}}=Q;A("sending request to %s %s/%s",B,C,I)})}KA.channel("undici:websocket:open").subscribe((A)=>{let{address:{address:Q,port:B}}=A;y0("connection opened %s%s",Q,B?`:${B}`:"")}),KA.channel("undici:websocket:close").subscribe((A)=>{let{websocket:Q,code:B,reason:I}=A;y0("closed connection to %s - %s %s",Q.url,B,I)}),KA.channel("undici:websocket:socket_error").subscribe((A)=>{y0("connection errored - %s",A.message)}),KA.channel("undici:websocket:ping").subscribe((A)=>{y0("ping received")}),KA.channel("undici:websocket:pong").subscribe((A)=>{y0("pong received")})}G2.exports={channels:_8A}});var X2=X((FWQ,U2)=>{var{InvalidArgumentError:OA,NotSupportedError:v8A}=UA(),OC=H("node:assert"),{isValidHTTPToken:Z2,isValidHeaderValue:bw,isStream:x8A,destroy:b8A,isBuffer:m8A,isFormDataLike:d8A,isIterable:c8A,isBlobLike:u8A,buildURL:l8A,validateHandler:p8A,getServerName:i8A,normalizedMethodRecords:n8A}=YA(),{channels:aI}=GJ(),{headerNameLowerCasedRecord:D2}=V9(),o8A=/[^\u0021-\u00ff]/,sB=Symbol("handler");class W2{constructor(A,{path:Q,method:B,body:I,headers:C,query:E,idempotent:Y,blocking:J,upgrade:F,headersTimeout:G,bodyTimeout:D,reset:Z,throwOnError:W,expectContinue:U,servername:w},K){if(typeof Q!=="string")throw new OA("path must be a string");else if(Q[0]!=="/"&&!(Q.startsWith("http://")||Q.startsWith("https://"))&&B!=="CONNECT")throw new OA("path must be an absolute URL or start with a slash");else if(o8A.test(Q))throw new OA("invalid request path");if(typeof B!=="string")throw new OA("method must be a string");else if(n8A[B]===void 0&&!Z2(B))throw new OA("invalid request method");if(F&&typeof F!=="string")throw new OA("upgrade must be a string");if(F&&!bw(F))throw new OA("invalid upgrade header");if(G!=null&&(!Number.isFinite(G)||G<0))throw new OA("invalid headersTimeout");if(D!=null&&(!Number.isFinite(D)||D<0))throw new OA("invalid bodyTimeout");if(Z!=null&&typeof Z!=="boolean")throw new OA("invalid reset");if(U!=null&&typeof U!=="boolean")throw new OA("invalid expectContinue");if(this.headersTimeout=G,this.bodyTimeout=D,this.throwOnError=W===!0,this.method=B,this.abort=null,I==null)this.body=null;else if(x8A(I)){this.body=I;let V=this.body._readableState;if(!V||!V.autoDestroy)this.endHandler=function(){b8A(this)},this.body.on("end",this.endHandler);this.errorHandler=(z)=>{if(this.abort)this.abort(z);else this.error=z},this.body.on("error",this.errorHandler)}else if(m8A(I))this.body=I.byteLength?I:null;else if(ArrayBuffer.isView(I))this.body=I.buffer.byteLength?Buffer.from(I.buffer,I.byteOffset,I.byteLength):null;else if(I instanceof ArrayBuffer)this.body=I.byteLength?Buffer.from(I):null;else if(typeof I==="string")this.body=I.length?Buffer.from(I):null;else if(d8A(I)||c8A(I)||u8A(I))this.body=I;else throw new OA("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=F||null,this.path=E?l8A(Q,E):Q,this.origin=A,this.idempotent=Y==null?B==="HEAD"||B==="GET":Y,this.blocking=J==null?!1:J,this.reset=Z==null?null:Z,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=U!=null?U:!1,Array.isArray(C)){if(C.length%2!==0)throw new OA("headers array must be even");for(let V=0;V{var a8A=H("node:events");class mw extends a8A{dispatch(){throw Error("not implemented")}close(){throw Error("not implemented")}destroy(){throw Error("not implemented")}compose(...A){let Q=Array.isArray(A[0])?A[0]:A,B=this.dispatch.bind(this);for(let I of Q){if(I==null)continue;if(typeof I!=="function")throw TypeError(`invalid interceptor, expected function received ${typeof I}`);if(B=I(B),B==null||typeof B!=="function"||B.length!==2)throw TypeError("invalid interceptor")}return new w2(this,B)}}class w2 extends mw{#A=null;#Q=null;constructor(A,Q){super();this.#A=A,this.#Q=Q}dispatch(...A){this.#Q(...A)}close(...A){return this.#A.close(...A)}destroy(...A){return this.#A.destroy(...A)}}K2.exports=mw});var UJ=X((DWQ,z2)=>{var s8A=hG(),{ClientDestroyedError:dw,ClientClosedError:r8A,InvalidArgumentError:DJ}=UA(),{kDestroy:t8A,kClose:e8A,kClosed:fG,kDestroyed:ZJ,kDispatch:cw,kInterceptors:h0}=yA(),TC=Symbol("onDestroyed"),WJ=Symbol("onClosed"),N9=Symbol("Intercepted Dispatch");class V2 extends s8A{constructor(){super();this[ZJ]=!1,this[TC]=null,this[fG]=!1,this[WJ]=[]}get destroyed(){return this[ZJ]}get closed(){return this[fG]}get interceptors(){return this[h0]}set interceptors(A){if(A){for(let Q=A.length-1;Q>=0;Q--)if(typeof this[h0][Q]!=="function")throw new DJ("interceptor must be an function")}this[h0]=A}close(A){if(A===void 0)return new Promise((B,I)=>{this.close((C,E)=>{return C?I(C):B(E)})});if(typeof A!=="function")throw new DJ("invalid callback");if(this[ZJ]){queueMicrotask(()=>A(new dw,null));return}if(this[fG]){if(this[WJ])this[WJ].push(A);else queueMicrotask(()=>A(null,null));return}this[fG]=!0,this[WJ].push(A);let Q=()=>{let B=this[WJ];this[WJ]=null;for(let I=0;Ithis.destroy()).then(()=>{queueMicrotask(Q)})}destroy(A,Q){if(typeof A==="function")Q=A,A=null;if(Q===void 0)return new Promise((I,C)=>{this.destroy(A,(E,Y)=>{return E?C(E):I(Y)})});if(typeof Q!=="function")throw new DJ("invalid callback");if(this[ZJ]){if(this[TC])this[TC].push(Q);else queueMicrotask(()=>Q(null,null));return}if(!A)A=new dw;this[ZJ]=!0,this[TC]=this[TC]||[],this[TC].push(Q);let B=()=>{let I=this[TC];this[TC]=null;for(let C=0;C{queueMicrotask(B)})}[N9](A,Q){if(!this[h0]||this[h0].length===0)return this[N9]=this[cw],this[cw](A,Q);let B=this[cw].bind(this);for(let I=this[h0].length-1;I>=0;I--)B=this[h0][I](B);return this[N9]=B,B(A,Q)}dispatch(A,Q){if(!Q||typeof Q!=="object")throw new DJ("handler must be an object");try{if(!A||typeof A!=="object")throw new DJ("opts must be an object.");if(this[ZJ]||this[TC])throw new dw;if(this[fG])throw new r8A;return this[N9](A,Q)}catch(B){if(typeof Q.onError!=="function")throw new DJ("invalid onError method");return Q.onError(B),!1}}}z2.exports=V2});var sw=X((ZWQ,L2)=>{var XJ=0,uw=1000,lw=(uw>>1)-1,PC,pw=Symbol("kFastTimer"),kC=[],iw=-2,nw=-1,H2=0,$2=1;function ow(){XJ+=lw;let A=0,Q=kC.length;while(A=B._idleStart+B._idleTimeout)B._state=nw,B._idleStart=-1,B._onTimeout(B._timerArg);if(B._state===nw){if(B._state=iw,--Q!==0)kC[A]=kC[Q]}else++A}if(kC.length=Q,kC.length!==0)M2()}function M2(){if(PC)PC.refresh();else if(clearTimeout(PC),PC=setTimeout(ow,lw),PC.unref)PC.unref()}class aw{[pw]=!0;_state=iw;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(A,Q,B){this._onTimeout=A,this._idleTimeout=Q,this._timerArg=B,this.refresh()}refresh(){if(this._state===iw)kC.push(this);if(!PC||kC.length===1)M2();this._state=H2}clear(){this._state=nw,this._idleStart=-1}}L2.exports={setTimeout(A,Q,B){return Q<=uw?setTimeout(A,Q,B):new aw(A,Q,B)},clearTimeout(A){if(A[pw])A.clear();else clearTimeout(A)},setFastTimeout(A,Q,B){return new aw(A,Q,B)},clearFastTimeout(A){A.clear()},now(){return XJ},tick(A=0){XJ+=A-uw+1,ow(),ow()},reset(){XJ=0,kC.length=0,clearTimeout(PC),PC=null},kFastTimer:pw}});var _G=X((WWQ,O2)=>{var AwA=H("node:net"),N2=H("node:assert"),q2=YA(),{InvalidArgumentError:QwA,ConnectTimeoutError:BwA}=UA(),j9=sw();function j2(){}var rw,tw;if(global.FinalizationRegistry&&!(process.env.NODE_V8_COVERAGE||process.env.UNDICI_NO_FG))tw=class{constructor(Q){this._maxCachedSessions=Q,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry((B)=>{if(this._sessionCache.size=this._maxCachedSessions){let{value:I}=this._sessionCache.keys().next();this._sessionCache.delete(I)}this._sessionCache.set(Q,B)}};function IwA({allowH2:A,maxCachedSessions:Q,socketPath:B,timeout:I,session:C,...E}){if(Q!=null&&(!Number.isInteger(Q)||Q<0))throw new QwA("maxCachedSessions must be a positive integer or zero");let Y={path:B,...E},J=new tw(Q==null?100:Q);return I=I==null?1e4:I,A=A!=null?A:!1,function({hostname:G,host:D,protocol:Z,port:W,servername:U,localAddress:w,httpSocket:K},V){let z;if(Z==="https:"){if(!rw)rw=H("node:tls");U=U||Y.servername||q2.getServerName(D)||null;let L=U||G;N2(L);let N=C||J.get(L)||null;W=W||443,z=rw.connect({highWaterMark:16384,...Y,servername:U,session:N,localAddress:w,ALPNProtocols:A?["http/1.1","h2"]:["http/1.1"],socket:K,port:W,host:G}),z.on("session",function(T){J.set(L,T)})}else N2(!K,"httpSocket can only be sent on TLS update"),W=W||80,z=AwA.connect({highWaterMark:65536,...Y,localAddress:w,port:W,host:G});if(Y.keepAlive==null||Y.keepAlive){let L=Y.keepAliveInitialDelay===void 0?60000:Y.keepAliveInitialDelay;z.setKeepAlive(!0,L)}let M=CwA(new WeakRef(z),{timeout:I,hostname:G,port:W});return z.setNoDelay(!0).once(Z==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(M),V){let L=V;V=null,L(null,this)}}).on("error",function(L){if(queueMicrotask(M),V){let N=V;V=null,N(L)}}),z}}var CwA=process.platform==="win32"?(A,Q)=>{if(!Q.timeout)return j2;let B=null,I=null,C=j9.setFastTimeout(()=>{B=setImmediate(()=>{I=setImmediate(()=>R2(A.deref(),Q))})},Q.timeout);return()=>{j9.clearFastTimeout(C),clearImmediate(B),clearImmediate(I)}}:(A,Q)=>{if(!Q.timeout)return j2;let B=null,I=j9.setFastTimeout(()=>{B=setImmediate(()=>{R2(A.deref(),Q)})},Q.timeout);return()=>{j9.clearFastTimeout(I),clearImmediate(B)}};function R2(A,Q){if(A==null)return;let B="Connect Timeout Error";if(Array.isArray(A.autoSelectFamilyAttemptedAddresses))B+=` (attempted addresses: ${A.autoSelectFamilyAttemptedAddresses.join(", ")},`;else B+=` (attempted address: ${Q.hostname}:${Q.port},`;B+=` timeout: ${Q.timeout}ms)`,q2.destroy(A,new BwA(B))}O2.exports=IwA});var k2=X((T2)=>{Object.defineProperty(T2,"__esModule",{value:!0});T2.enumToMap=void 0;function EwA(A){let Q={};return Object.keys(A).forEach((B)=>{let I=A[B];if(typeof I==="number")Q[B]=I}),Q}T2.enumToMap=EwA});var n2=X((x2)=>{Object.defineProperty(x2,"__esModule",{value:!0});x2.SPECIAL_HEADERS=x2.HEADER_STATE=x2.MINOR=x2.MAJOR=x2.CONNECTION_TOKEN_CHARS=x2.HEADER_CHARS=x2.TOKEN=x2.STRICT_TOKEN=x2.HEX=x2.URL_CHAR=x2.STRICT_URL_CHAR=x2.USERINFO_CHARS=x2.MARK=x2.ALPHANUM=x2.NUM=x2.HEX_MAP=x2.NUM_MAP=x2.ALPHA=x2.FINISH=x2.H_METHOD_MAP=x2.METHOD_MAP=x2.METHODS_RTSP=x2.METHODS_ICE=x2.METHODS_HTTP=x2.METHODS=x2.LENIENT_FLAGS=x2.FLAGS=x2.TYPE=x2.ERROR=void 0;var YwA=k2(),JwA;(function(A){A[A.OK=0]="OK",A[A.INTERNAL=1]="INTERNAL",A[A.STRICT=2]="STRICT",A[A.LF_EXPECTED=3]="LF_EXPECTED",A[A.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",A[A.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",A[A.INVALID_METHOD=6]="INVALID_METHOD",A[A.INVALID_URL=7]="INVALID_URL",A[A.INVALID_CONSTANT=8]="INVALID_CONSTANT",A[A.INVALID_VERSION=9]="INVALID_VERSION",A[A.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",A[A.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",A[A.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",A[A.INVALID_STATUS=13]="INVALID_STATUS",A[A.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",A[A.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",A[A.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",A[A.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",A[A.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",A[A.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",A[A.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",A[A.PAUSED=21]="PAUSED",A[A.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",A[A.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",A[A.USER=24]="USER"})(JwA=x2.ERROR||(x2.ERROR={}));var FwA;(function(A){A[A.BOTH=0]="BOTH",A[A.REQUEST=1]="REQUEST",A[A.RESPONSE=2]="RESPONSE"})(FwA=x2.TYPE||(x2.TYPE={}));var GwA;(function(A){A[A.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",A[A.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",A[A.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",A[A.CHUNKED=8]="CHUNKED",A[A.UPGRADE=16]="UPGRADE",A[A.CONTENT_LENGTH=32]="CONTENT_LENGTH",A[A.SKIPBODY=64]="SKIPBODY",A[A.TRAILING=128]="TRAILING",A[A.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(GwA=x2.FLAGS||(x2.FLAGS={}));var DwA;(function(A){A[A.HEADERS=1]="HEADERS",A[A.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",A[A.KEEP_ALIVE=4]="KEEP_ALIVE"})(DwA=x2.LENIENT_FLAGS||(x2.LENIENT_FLAGS={}));var d;(function(A){A[A.DELETE=0]="DELETE",A[A.GET=1]="GET",A[A.HEAD=2]="HEAD",A[A.POST=3]="POST",A[A.PUT=4]="PUT",A[A.CONNECT=5]="CONNECT",A[A.OPTIONS=6]="OPTIONS",A[A.TRACE=7]="TRACE",A[A.COPY=8]="COPY",A[A.LOCK=9]="LOCK",A[A.MKCOL=10]="MKCOL",A[A.MOVE=11]="MOVE",A[A.PROPFIND=12]="PROPFIND",A[A.PROPPATCH=13]="PROPPATCH",A[A.SEARCH=14]="SEARCH",A[A.UNLOCK=15]="UNLOCK",A[A.BIND=16]="BIND",A[A.REBIND=17]="REBIND",A[A.UNBIND=18]="UNBIND",A[A.ACL=19]="ACL",A[A.REPORT=20]="REPORT",A[A.MKACTIVITY=21]="MKACTIVITY",A[A.CHECKOUT=22]="CHECKOUT",A[A.MERGE=23]="MERGE",A[A["M-SEARCH"]=24]="M-SEARCH",A[A.NOTIFY=25]="NOTIFY",A[A.SUBSCRIBE=26]="SUBSCRIBE",A[A.UNSUBSCRIBE=27]="UNSUBSCRIBE",A[A.PATCH=28]="PATCH",A[A.PURGE=29]="PURGE",A[A.MKCALENDAR=30]="MKCALENDAR",A[A.LINK=31]="LINK",A[A.UNLINK=32]="UNLINK",A[A.SOURCE=33]="SOURCE",A[A.PRI=34]="PRI",A[A.DESCRIBE=35]="DESCRIBE",A[A.ANNOUNCE=36]="ANNOUNCE",A[A.SETUP=37]="SETUP",A[A.PLAY=38]="PLAY",A[A.PAUSE=39]="PAUSE",A[A.TEARDOWN=40]="TEARDOWN",A[A.GET_PARAMETER=41]="GET_PARAMETER",A[A.SET_PARAMETER=42]="SET_PARAMETER",A[A.REDIRECT=43]="REDIRECT",A[A.RECORD=44]="RECORD",A[A.FLUSH=45]="FLUSH"})(d=x2.METHODS||(x2.METHODS={}));x2.METHODS_HTTP=[d.DELETE,d.GET,d.HEAD,d.POST,d.PUT,d.CONNECT,d.OPTIONS,d.TRACE,d.COPY,d.LOCK,d.MKCOL,d.MOVE,d.PROPFIND,d.PROPPATCH,d.SEARCH,d.UNLOCK,d.BIND,d.REBIND,d.UNBIND,d.ACL,d.REPORT,d.MKACTIVITY,d.CHECKOUT,d.MERGE,d["M-SEARCH"],d.NOTIFY,d.SUBSCRIBE,d.UNSUBSCRIBE,d.PATCH,d.PURGE,d.MKCALENDAR,d.LINK,d.UNLINK,d.PRI,d.SOURCE];x2.METHODS_ICE=[d.SOURCE];x2.METHODS_RTSP=[d.OPTIONS,d.DESCRIBE,d.ANNOUNCE,d.SETUP,d.PLAY,d.PAUSE,d.TEARDOWN,d.GET_PARAMETER,d.SET_PARAMETER,d.REDIRECT,d.RECORD,d.FLUSH,d.GET,d.POST];x2.METHOD_MAP=YwA.enumToMap(d);x2.H_METHOD_MAP={};Object.keys(x2.METHOD_MAP).forEach((A)=>{if(/^H/.test(A))x2.H_METHOD_MAP[A]=x2.METHOD_MAP[A]});var ZwA;(function(A){A[A.SAFE=0]="SAFE",A[A.SAFE_WITH_CB=1]="SAFE_WITH_CB",A[A.UNSAFE=2]="UNSAFE"})(ZwA=x2.FINISH||(x2.FINISH={}));x2.ALPHA=[];for(let A=65;A<=90;A++)x2.ALPHA.push(String.fromCharCode(A)),x2.ALPHA.push(String.fromCharCode(A+32));x2.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};x2.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};x2.NUM=["0","1","2","3","4","5","6","7","8","9"];x2.ALPHANUM=x2.ALPHA.concat(x2.NUM);x2.MARK=["-","_",".","!","~","*","'","(",")"];x2.USERINFO_CHARS=x2.ALPHANUM.concat(x2.MARK).concat(["%",";",":","&","=","+","$",","]);x2.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(x2.ALPHANUM);x2.URL_CHAR=x2.STRICT_URL_CHAR.concat(["\t","\f"]);for(let A=128;A<=255;A++)x2.URL_CHAR.push(A);x2.HEX=x2.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);x2.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(x2.ALPHANUM);x2.TOKEN=x2.STRICT_TOKEN.concat([" "]);x2.HEADER_CHARS=["\t"];for(let A=32;A<=255;A++)if(A!==127)x2.HEADER_CHARS.push(A);x2.CONNECTION_TOKEN_CHARS=x2.HEADER_CHARS.filter((A)=>A!==44);x2.MAJOR=x2.NUM_MAP;x2.MINOR=x2.MAJOR;var wJ;(function(A){A[A.GENERAL=0]="GENERAL",A[A.CONNECTION=1]="CONNECTION",A[A.CONTENT_LENGTH=2]="CONTENT_LENGTH",A[A.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",A[A.UPGRADE=4]="UPGRADE",A[A.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",A[A.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",A[A.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",A[A.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(wJ=x2.HEADER_STATE||(x2.HEADER_STATE={}));x2.SPECIAL_HEADERS={connection:wJ.CONNECTION,"content-length":wJ.CONTENT_LENGTH,"proxy-connection":wJ.CONNECTION,"transfer-encoding":wJ.TRANSFER_ENCODING,upgrade:wJ.UPGRADE}});var B4=X((wWQ,o2)=>{var{Buffer:MwA}=H("node:buffer");o2.exports=MwA.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEVDF8LQZIBIQMgASAERg2aAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGhzwBqLQAARw1dIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAybAgsgAkEANgIAIAZBAWohAUEeDF4LIAEgBEYEQEGTASEDDJoCCyABLQAAQcwARw1bIAFBAWohAUEKDF0LIAEgBEYEQEGUASEDDJkCCwJAAkAgAS0AAEHBAGsODwBcXFxcXFxcXFxcXFxcAVwLIAFBAWohAUH+ACEDDIACCyABQQFqIQFB/wAhAwz/AQsgASAERgRAQZUBIQMMmAILAkACQCABLQAAQcEAaw4DAFsBWwsgAUEBaiEBQf0AIQMM/wELIAFBAWohAUGAASEDDP4BC0GWASEDIAEgBEYNlgIgAigCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBp88Aai0AAEcNWSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMlwILIAJBADYCACAGQQFqIQFBCwxaCyABIARGBEBBlwEhAwyWAgsCQAJAAkACQCABLQAAQS1rDiMAW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1sBW1tbW1sCW1tbA1sLIAFBAWohAUH7ACEDDP8BCyABQQFqIQFB/AAhAwz+AQsgAUEBaiEBQYEBIQMM/QELIAFBAWohAUGCASEDDPwBC0GYASEDIAEgBEYNlAIgAigCACIAIAQgAWtqIQUgASAAa0EEaiEGAkADQCABLQAAIABBqc8Aai0AAEcNVyAAQQRGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMlQILIAJBADYCACAGQQFqIQFBGQxYC0GZASEDIAEgBEYNkwIgAigCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBrs8Aai0AAEcNViAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMlAILIAJBADYCACAGQQFqIQFBBgxXC0GaASEDIAEgBEYNkgIgAigCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBtM8Aai0AAEcNVSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMkwILIAJBADYCACAGQQFqIQFBHAxWC0GbASEDIAEgBEYNkQIgAigCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBts8Aai0AAEcNVCAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMkgILIAJBADYCACAGQQFqIQFBJwxVCyABIARGBEBBnAEhAwyRAgsCQAJAIAEtAABB1ABrDgIAAVQLIAFBAWohAUGGASEDDPgBCyABQQFqIQFBhwEhAwz3AQtBnQEhAyABIARGDY8CIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbjPAGotAABHDVIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADJACCyACQQA2AgAgBkEBaiEBQSYMUwtBngEhAyABIARGDY4CIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbrPAGotAABHDVEgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADI8CCyACQQA2AgAgBkEBaiEBQQMMUgtBnwEhAyABIARGDY0CIAIoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQe3PAGotAABHDVAgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADI4CCyACQQA2AgAgBkEBaiEBQQwMUQtBoAEhAyABIARGDYwCIAIoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQbzPAGotAABHDU8gAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADI0CCyACQQA2AgAgBkEBaiEBQQ0MUAsgASAERgRAQaEBIQMMjAILAkACQCABLQAAQcYAaw4LAE9PT09PT09PTwFPCyABQQFqIQFBiwEhAwzzAQsgAUEBaiEBQYwBIQMM8gELIAEgBEYEQEGiASEDDIsCCyABLQAAQdAARw1MIAFBAWohAQxGCyABIARGBEBBowEhAwyKAgsCQAJAIAEtAABByQBrDgcBTU1NTU0ATQsgAUEBaiEBQY4BIQMM8QELIAFBAWohAUEiDE0LQaQBIQMgASAERg2IAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHAzwBqLQAARw1LIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyJAgsgAkEANgIAIAZBAWohAUEdDEwLIAEgBEYEQEGlASEDDIgCCwJAAkAgAS0AAEHSAGsOAwBLAUsLIAFBAWohAUGQASEDDO8BCyABQQFqIQFBBAxLCyABIARGBEBBpgEhAwyHAgsCQAJAAkACQAJAIAEtAABBwQBrDhUATU1NTU1NTU1NTQFNTQJNTQNNTQRNCyABQQFqIQFBiAEhAwzxAQsgAUEBaiEBQYkBIQMM8AELIAFBAWohAUGKASEDDO8BCyABQQFqIQFBjwEhAwzuAQsgAUEBaiEBQZEBIQMM7QELQacBIQMgASAERg2FAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHtzwBqLQAARw1IIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyGAgsgAkEANgIAIAZBAWohAUERDEkLQagBIQMgASAERg2EAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHCzwBqLQAARw1HIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyFAgsgAkEANgIAIAZBAWohAUEsDEgLQakBIQMgASAERg2DAiACKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEHFzwBqLQAARw1GIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyEAgsgAkEANgIAIAZBAWohAUErDEcLQaoBIQMgASAERg2CAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHKzwBqLQAARw1FIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyDAgsgAkEANgIAIAZBAWohAUEUDEYLIAEgBEYEQEGrASEDDIICCwJAAkACQAJAIAEtAABBwgBrDg8AAQJHR0dHR0dHR0dHRwNHCyABQQFqIQFBkwEhAwzrAQsgAUEBaiEBQZQBIQMM6gELIAFBAWohAUGVASEDDOkBCyABQQFqIQFBlgEhAwzoAQsgASAERgRAQawBIQMMgQILIAEtAABBxQBHDUIgAUEBaiEBDD0LQa0BIQMgASAERg3/ASACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHNzwBqLQAARw1CIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyAAgsgAkEANgIAIAZBAWohAUEODEMLIAEgBEYEQEGuASEDDP8BCyABLQAAQdAARw1AIAFBAWohAUElDEILQa8BIQMgASAERg39ASACKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEHQzwBqLQAARw1AIABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAz+AQsgAkEANgIAIAZBAWohAUEqDEELIAEgBEYEQEGwASEDDP0BCwJAAkAgAS0AAEHVAGsOCwBAQEBAQEBAQEABQAsgAUEBaiEBQZoBIQMM5AELIAFBAWohAUGbASEDDOMBCyABIARGBEBBsQEhAwz8AQsCQAJAIAEtAABBwQBrDhQAPz8/Pz8/Pz8/Pz8/Pz8/Pz8/AT8LIAFBAWohAUGZASEDDOMBCyABQQFqIQFBnAEhAwziAQtBsgEhAyABIARGDfoBIAIoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQdnPAGotAABHDT0gAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADPsBCyACQQA2AgAgBkEBaiEBQSEMPgtBswEhAyABIARGDfkBIAIoAgAiACAEIAFraiEFIAEgAGtBBmohBgJAA0AgAS0AACAAQd3PAGotAABHDTwgAEEGRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADPoBCyACQQA2AgAgBkEBaiEBQRoMPQsgASAERgRAQbQBIQMM+QELAkACQAJAIAEtAABBxQBrDhEAPT09PT09PT09AT09PT09Aj0LIAFBAWohAUGdASEDDOEBCyABQQFqIQFBngEhAwzgAQsgAUEBaiEBQZ8BIQMM3wELQbUBIQMgASAERg33ASACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHkzwBqLQAARw06IABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAz4AQsgAkEANgIAIAZBAWohAUEoDDsLQbYBIQMgASAERg32ASACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHqzwBqLQAARw05IABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAz3AQsgAkEANgIAIAZBAWohAUEHDDoLIAEgBEYEQEG3ASEDDPYBCwJAAkAgAS0AAEHFAGsODgA5OTk5OTk5OTk5OTkBOQsgAUEBaiEBQaEBIQMM3QELIAFBAWohAUGiASEDDNwBC0G4ASEDIAEgBEYN9AEgAigCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABB7c8Aai0AAEcNNyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAM9QELIAJBADYCACAGQQFqIQFBEgw4C0G5ASEDIAEgBEYN8wEgAigCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABB8M8Aai0AAEcNNiAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAM9AELIAJBADYCACAGQQFqIQFBIAw3C0G6ASEDIAEgBEYN8gEgAigCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABB8s8Aai0AAEcNNSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAM8wELIAJBADYCACAGQQFqIQFBDww2CyABIARGBEBBuwEhAwzyAQsCQAJAIAEtAABByQBrDgcANTU1NTUBNQsgAUEBaiEBQaUBIQMM2QELIAFBAWohAUGmASEDDNgBC0G8ASEDIAEgBEYN8AEgAigCACIAIAQgAWtqIQUgASAAa0EHaiEGAkADQCABLQAAIABB9M8Aai0AAEcNMyAAQQdGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAM8QELIAJBADYCACAGQQFqIQFBGww0CyABIARGBEBBvQEhAwzwAQsCQAJAAkAgAS0AAEHCAGsOEgA0NDQ0NDQ0NDQBNDQ0NDQ0AjQLIAFBAWohAUGkASEDDNgBCyABQQFqIQFBpwEhAwzXAQsgAUEBaiEBQagBIQMM1gELIAEgBEYEQEG+ASEDDO8BCyABLQAAQc4ARw0wIAFBAWohAQwsCyABIARGBEBBvwEhAwzuAQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABLQAAQcEAaw4VAAECAz8EBQY/Pz8HCAkKCz8MDQ4PPwsgAUEBaiEBQegAIQMM4wELIAFBAWohAUHpACEDDOIBCyABQQFqIQFB7gAhAwzhAQsgAUEBaiEBQfIAIQMM4AELIAFBAWohAUHzACEDDN8BCyABQQFqIQFB9gAhAwzeAQsgAUEBaiEBQfcAIQMM3QELIAFBAWohAUH6ACEDDNwBCyABQQFqIQFBgwEhAwzbAQsgAUEBaiEBQYQBIQMM2gELIAFBAWohAUGFASEDDNkBCyABQQFqIQFBkgEhAwzYAQsgAUEBaiEBQZgBIQMM1wELIAFBAWohAUGgASEDDNYBCyABQQFqIQFBowEhAwzVAQsgAUEBaiEBQaoBIQMM1AELIAEgBEcEQCACQRA2AgggAiABNgIEQasBIQMM1AELQcABIQMM7AELQQAhAAJAIAIoAjgiA0UNACADKAI0IgNFDQAgAiADEQAAIQALIABFDV4gAEEVRw0HIAJB0QA2AhwgAiABNgIUIAJBsBc2AhAgAkEVNgIMQQAhAwzrAQsgAUEBaiABIARHDQgaQcIBIQMM6gELA0ACQCABLQAAQQprDgQIAAALAAsgBCABQQFqIgFHDQALQcMBIQMM6QELIAEgBEcEQCACQRE2AgggAiABNgIEQQEhAwzQAQtBxAEhAwzoAQsgASAERgRAQcUBIQMM6AELAkACQCABLQAAQQprDgQBKCgAKAsgAUEBagwJCyABQQFqDAULIAEgBEYEQEHGASEDDOcBCwJAAkAgAS0AAEEKaw4XAQsLAQsLCwsLCwsLCwsLCwsLCwsLCwALCyABQQFqIQELQbABIQMMzQELIAEgBEYEQEHIASEDDOYBCyABLQAAQSBHDQkgAkEAOwEyIAFBAWohAUGzASEDDMwBCwNAIAEhAAJAIAEgBEcEQCABLQAAQTBrQf8BcSIDQQpJDQEMJwtBxwEhAwzmAQsCQCACLwEyIgFBmTNLDQAgAiABQQpsIgU7ATIgBUH+/wNxIANB//8Dc0sNACAAQQFqIQEgAiADIAVqIgM7ATIgA0H//wNxQegHSQ0BCwtBACEDIAJBADYCHCACQcEJNgIQIAJBDTYCDCACIABBAWo2AhQM5AELIAJBADYCHCACIAE2AhQgAkHwDDYCECACQRs2AgxBACEDDOMBCyACKAIEIQAgAkEANgIEIAIgACABECYiAA0BIAFBAWoLIQFBrQEhAwzIAQsgAkHBATYCHCACIAA2AgwgAiABQQFqNgIUQQAhAwzgAQsgAigCBCEAIAJBADYCBCACIAAgARAmIgANASABQQFqCyEBQa4BIQMMxQELIAJBwgE2AhwgAiAANgIMIAIgAUEBajYCFEEAIQMM3QELIAJBADYCHCACIAE2AhQgAkGXCzYCECACQQ02AgxBACEDDNwBCyACQQA2AhwgAiABNgIUIAJB4xA2AhAgAkEJNgIMQQAhAwzbAQsgAkECOgAoDKwBC0EAIQMgAkEANgIcIAJBrws2AhAgAkECNgIMIAIgAUEBajYCFAzZAQtBAiEDDL8BC0ENIQMMvgELQSYhAwy9AQtBFSEDDLwBC0EWIQMMuwELQRghAwy6AQtBHCEDDLkBC0EdIQMMuAELQSAhAwy3AQtBISEDDLYBC0EjIQMMtQELQcYAIQMMtAELQS4hAwyzAQtBPSEDDLIBC0HLACEDDLEBC0HOACEDDLABC0HYACEDDK8BC0HZACEDDK4BC0HbACEDDK0BC0HxACEDDKwBC0H0ACEDDKsBC0GNASEDDKoBC0GXASEDDKkBC0GpASEDDKgBC0GvASEDDKcBC0GxASEDDKYBCyACQQA2AgALQQAhAyACQQA2AhwgAiABNgIUIAJB8Rs2AhAgAkEGNgIMDL0BCyACQQA2AgAgBkEBaiEBQSQLOgApIAIoAgQhACACQQA2AgQgAiAAIAEQJyIARQRAQeUAIQMMowELIAJB+QA2AhwgAiABNgIUIAIgADYCDEEAIQMMuwELIABBFUcEQCACQQA2AhwgAiABNgIUIAJBzA42AhAgAkEgNgIMQQAhAwy7AQsgAkH4ADYCHCACIAE2AhQgAkHKGDYCECACQRU2AgxBACEDDLoBCyACQQA2AhwgAiABNgIUIAJBjhs2AhAgAkEGNgIMQQAhAwy5AQsgAkEANgIcIAIgATYCFCACQf4RNgIQIAJBBzYCDEEAIQMMuAELIAJBADYCHCACIAE2AhQgAkGMHDYCECACQQc2AgxBACEDDLcBCyACQQA2AhwgAiABNgIUIAJBww82AhAgAkEHNgIMQQAhAwy2AQsgAkEANgIcIAIgATYCFCACQcMPNgIQIAJBBzYCDEEAIQMMtQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv","base64")});var s2=X((KWQ,a2)=>{var{Buffer:LwA}=H("node:buffer");a2.exports=LwA.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==","base64")});var vG=X((VWQ,CN)=>{var r2=["GET","HEAD","POST"],NwA=new Set(r2),jwA=[101,204,205,304],t2=[301,302,303,307,308],RwA=new Set(t2),e2=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6666","6667","6668","6669","6679","6697","10080"],qwA=new Set(e2),AN=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],OwA=new Set(AN),TwA=["follow","manual","error"],QN=["GET","HEAD","OPTIONS","TRACE"],PwA=new Set(QN),kwA=["navigate","same-origin","no-cors","cors"],SwA=["omit","same-origin","include"],gwA=["default","no-store","reload","no-cache","force-cache","only-if-cached"],ywA=["content-encoding","content-language","content-location","content-type","content-length"],hwA=["half"],BN=["CONNECT","TRACE","TRACK"],fwA=new Set(BN),IN=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],_wA=new Set(IN);CN.exports={subresource:IN,forbiddenMethods:BN,requestBodyHeader:ywA,referrerPolicy:AN,requestRedirect:TwA,requestMode:kwA,requestCredentials:SwA,requestCache:gwA,redirectStatus:t2,corsSafeListedMethods:r2,nullBodyStatus:jwA,safeMethods:QN,badPorts:e2,requestDuplex:hwA,subresourceSet:_wA,badPortsSet:qwA,redirectStatusSet:RwA,corsSafeListedMethodsSet:NwA,safeMethodsSet:PwA,forbiddenMethodsSet:fwA,referrerPolicySet:OwA}});var C4=X((zWQ,EN)=>{var I4=Symbol.for("undici.globalOrigin.1");function vwA(){return globalThis[I4]}function xwA(A){if(A===void 0){Object.defineProperty(globalThis,I4,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let Q=new URL(A);if(Q.protocol!=="http:"&&Q.protocol!=="https:")throw TypeError(`Only http & https urls are allowed, received ${Q.protocol}`);Object.defineProperty(globalThis,I4,{value:Q,writable:!0,enumerable:!1,configurable:!1})}EN.exports={getGlobalOrigin:vwA,setGlobalOrigin:xwA}});var JB=X(($WQ,WN)=>{var T9=H("node:assert"),bwA=new TextEncoder,xG=/^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/,mwA=/[\u000A\u000D\u0009\u0020]/,dwA=/[\u0009\u000A\u000C\u000D\u0020]/g,cwA=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/;function uwA(A){T9(A.protocol==="data:");let Q=FN(A,!0);Q=Q.slice(5);let B={position:0},I=KJ(",",Q,B),C=I.length;if(I=awA(I,!0,!0),B.position>=Q.length)return"failure";B.position++;let E=Q.slice(C+1),Y=GN(E);if(/;(\u0020){0,}base64$/i.test(I)){let F=ZN(Y);if(Y=pwA(F),Y==="failure")return"failure";I=I.slice(0,-6),I=I.replace(/(\u0020)+$/,""),I=I.slice(0,-1)}if(I.startsWith(";"))I="text/plain"+I;let J=E4(I);if(J==="failure")J=E4("text/plain;charset=US-ASCII");return{mimeType:J,body:Y}}function FN(A,Q=!1){if(!Q)return A.href;let B=A.href,I=A.hash.length,C=I===0?B:B.substring(0,B.length-I);if(!I&&B.endsWith("#"))return C.slice(0,-1);return C}function P9(A,Q,B){let I="";while(B.position=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102}function JN(A){return A>=48&&A<=57?A-48:(A&223)-55}function lwA(A){let Q=A.length,B=new Uint8Array(Q),I=0;for(let C=0;CA.length)return"failure";Q.position++;let I=KJ(";",A,Q);if(I=O9(I,!1,!0),I.length===0||!xG.test(I))return"failure";let C=B.toLowerCase(),E=I.toLowerCase(),Y={type:C,subtype:E,parameters:new Map,essence:`${C}/${E}`};while(Q.positionmwA.test(G),A,Q);let J=P9((G)=>G!==";"&&G!=="=",A,Q);if(J=J.toLowerCase(),Q.positionA.length)break;let F=null;if(A[Q.position]==='"')F=DN(A,Q,!0),KJ(";",A,Q);else if(F=KJ(";",A,Q),F=O9(F,!1,!0),F.length===0)continue;if(J.length!==0&&xG.test(J)&&(F.length===0||cwA.test(F))&&!Y.parameters.has(J))Y.parameters.set(J,F)}return Y}function pwA(A){A=A.replace(dwA,"");let Q=A.length;if(Q%4===0){if(A.charCodeAt(Q-1)===61){if(--Q,A.charCodeAt(Q-1)===61)--Q}}if(Q%4===1)return"failure";if(/[^+/0-9A-Za-z]/.test(A.length===Q?A:A.substring(0,Q)))return"failure";let B=Buffer.from(A,"base64");return new Uint8Array(B.buffer,B.byteOffset,B.byteLength)}function DN(A,Q,B){let I=Q.position,C="";T9(A[Q.position]==='"'),Q.position++;while(!0){if(C+=P9((Y)=>Y!=='"'&&Y!=="\\",A,Q),Q.position>=A.length)break;let E=A[Q.position];if(Q.position++,E==="\\"){if(Q.position>=A.length){C+="\\";break}C+=A[Q.position],Q.position++}else{T9(E==='"');break}}if(B)return C;return A.slice(I,Q.position)}function iwA(A){T9(A!=="failure");let{parameters:Q,essence:B}=A,I=B;for(let[C,E]of Q.entries()){if(I+=";",I+=C,I+="=",!xG.test(E))E=E.replace(/(\\|")/g,"\\$1"),E='"'+E,E+='"';I+=E}return I}function nwA(A){return A===13||A===10||A===9||A===32}function O9(A,Q=!0,B=!0){return Y4(A,Q,B,nwA)}function owA(A){return A===13||A===10||A===9||A===12||A===32}function awA(A,Q=!0,B=!0){return Y4(A,Q,B,owA)}function Y4(A,Q,B,I){let C=0,E=A.length-1;if(Q)while(C0&&I(A.charCodeAt(E)))E--;return C===0&&E===A.length-1?A:A.slice(C,E+1)}function ZN(A){let Q=A.length;if(65535>Q)return String.fromCharCode.apply(null,A);let B="",I=0,C=65535;while(IQ)C=Q-I;B+=String.fromCharCode.apply(null,A.subarray(I,I+=C))}return B}function swA(A){switch(A.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}if(A.subtype.endsWith("+json"))return"application/json";if(A.subtype.endsWith("+xml"))return"application/xml";return""}WN.exports={dataURLProcessor:uwA,URLSerializer:FN,collectASequenceOfCodePoints:P9,collectASequenceOfCodePointsFast:KJ,stringPercentDecode:GN,parseMIMEType:E4,collectAnHTTPQuotedString:DN,serializeAMimeType:iwA,removeChars:Y4,removeHTTPWhitespace:O9,minimizeSupportedMimeType:swA,HTTP_TOKEN_CODEPOINTS:xG,isomorphicDecode:ZN}});var LQ=X((HWQ,UN)=>{var{types:sI,inspect:rwA}=H("node:util"),{markAsUncloneable:twA}=H("node:worker_threads"),{toUSVString:ewA}=YA(),O={};O.converters={};O.util={};O.errors={};O.errors.exception=function(A){return TypeError(`${A.header}: ${A.message}`)};O.errors.conversionFailed=function(A){let Q=A.types.length===1?"":" one of",B=`${A.argument} could not be converted to${Q}: ${A.types.join(", ")}.`;return O.errors.exception({header:A.prefix,message:B})};O.errors.invalidArgument=function(A){return O.errors.exception({header:A.prefix,message:`"${A.value}" is an invalid ${A.type}.`})};O.brandCheck=function(A,Q,B){if(B?.strict!==!1){if(!(A instanceof Q)){let I=TypeError("Illegal invocation");throw I.code="ERR_INVALID_THIS",I}}else if(A?.[Symbol.toStringTag]!==Q.prototype[Symbol.toStringTag]){let I=TypeError("Illegal invocation");throw I.code="ERR_INVALID_THIS",I}};O.argumentLengthCheck=function({length:A},Q,B){if(A{});O.util.ConvertToInt=function(A,Q,B,I){let C,E;if(Q===64)if(C=Math.pow(2,53)-1,B==="unsigned")E=0;else E=Math.pow(-2,53)+1;else if(B==="unsigned")E=0,C=Math.pow(2,Q)-1;else E=Math.pow(-2,Q)-1,C=Math.pow(2,Q-1)-1;let Y=Number(A);if(Y===0)Y=0;if(I?.enforceRange===!0){if(Number.isNaN(Y)||Y===Number.POSITIVE_INFINITY||Y===Number.NEGATIVE_INFINITY)throw O.errors.exception({header:"Integer conversion",message:`Could not convert ${O.util.Stringify(A)} to an integer.`});if(Y=O.util.IntegerPart(Y),YC)throw O.errors.exception({header:"Integer conversion",message:`Value must be between ${E}-${C}, got ${Y}.`});return Y}if(!Number.isNaN(Y)&&I?.clamp===!0){if(Y=Math.min(Math.max(Y,E),C),Math.floor(Y)%2===0)Y=Math.floor(Y);else Y=Math.ceil(Y);return Y}if(Number.isNaN(Y)||Y===0&&Object.is(0,Y)||Y===Number.POSITIVE_INFINITY||Y===Number.NEGATIVE_INFINITY)return 0;if(Y=O.util.IntegerPart(Y),Y=Y%Math.pow(2,Q),B==="signed"&&Y>=Math.pow(2,Q)-1)return Y-Math.pow(2,Q);return Y};O.util.IntegerPart=function(A){let Q=Math.floor(Math.abs(A));if(A<0)return-1*Q;return Q};O.util.Stringify=function(A){switch(O.util.Type(A)){case"Symbol":return`Symbol(${A.description})`;case"Object":return rwA(A);case"String":return`"${A}"`;default:return`${A}`}};O.sequenceConverter=function(A){return(Q,B,I,C)=>{if(O.util.Type(Q)!=="Object")throw O.errors.exception({header:B,message:`${I} (${O.util.Stringify(Q)}) is not iterable.`});let E=typeof C==="function"?C():Q?.[Symbol.iterator]?.(),Y=[],J=0;if(E===void 0||typeof E.next!=="function")throw O.errors.exception({header:B,message:`${I} is not iterable.`});while(!0){let{done:F,value:G}=E.next();if(F)break;Y.push(A(G,B,`${I}[${J++}]`))}return Y}};O.recordConverter=function(A,Q){return(B,I,C)=>{if(O.util.Type(B)!=="Object")throw O.errors.exception({header:I,message:`${C} ("${O.util.Type(B)}") is not an Object.`});let E={};if(!sI.isProxy(B)){let J=[...Object.getOwnPropertyNames(B),...Object.getOwnPropertySymbols(B)];for(let F of J){let G=A(F,I,C),D=Q(B[F],I,C);E[G]=D}return E}let Y=Reflect.ownKeys(B);for(let J of Y)if(Reflect.getOwnPropertyDescriptor(B,J)?.enumerable){let G=A(J,I,C),D=Q(B[J],I,C);E[G]=D}return E}};O.interfaceConverter=function(A){return(Q,B,I,C)=>{if(C?.strict!==!1&&!(Q instanceof A))throw O.errors.exception({header:B,message:`Expected ${I} ("${O.util.Stringify(Q)}") to be an instance of ${A.name}.`});return Q}};O.dictionaryConverter=function(A){return(Q,B,I)=>{let C=O.util.Type(Q),E={};if(C==="Null"||C==="Undefined")return E;else if(C!=="Object")throw O.errors.exception({header:B,message:`Expected ${Q} to be one of: Null, Undefined, Object.`});for(let Y of A){let{key:J,defaultValue:F,required:G,converter:D}=Y;if(G===!0){if(!Object.hasOwn(Q,J))throw O.errors.exception({header:B,message:`Missing required key "${J}".`})}let Z=Q[J],W=Object.hasOwn(Y,"defaultValue");if(W&&Z!==null)Z??=F();if(G||W||Z!==void 0){if(Z=D(Z,B,`${I}.${J}`),Y.allowedValues&&!Y.allowedValues.includes(Z))throw O.errors.exception({header:B,message:`${Z} is not an accepted type. Expected one of ${Y.allowedValues.join(", ")}.`});E[J]=Z}}return E}};O.nullableConverter=function(A){return(Q,B,I)=>{if(Q===null)return Q;return A(Q,B,I)}};O.converters.DOMString=function(A,Q,B,I){if(A===null&&I?.legacyNullToEmptyString)return"";if(typeof A==="symbol")throw O.errors.exception({header:Q,message:`${B} is a symbol, which cannot be converted to a DOMString.`});return String(A)};O.converters.ByteString=function(A,Q,B){let I=O.converters.DOMString(A,Q,B);for(let C=0;C255)throw TypeError(`Cannot convert argument to a ByteString because the character at index ${C} has a value of ${I.charCodeAt(C)} which is greater than 255.`);return I};O.converters.USVString=ewA;O.converters.boolean=function(A){return Boolean(A)};O.converters.any=function(A){return A};O.converters["long long"]=function(A,Q,B){return O.util.ConvertToInt(A,64,"signed",void 0,Q,B)};O.converters["unsigned long long"]=function(A,Q,B){return O.util.ConvertToInt(A,64,"unsigned",void 0,Q,B)};O.converters["unsigned long"]=function(A,Q,B){return O.util.ConvertToInt(A,32,"unsigned",void 0,Q,B)};O.converters["unsigned short"]=function(A,Q,B,I){return O.util.ConvertToInt(A,16,"unsigned",I,Q,B)};O.converters.ArrayBuffer=function(A,Q,B,I){if(O.util.Type(A)!=="Object"||!sI.isAnyArrayBuffer(A))throw O.errors.conversionFailed({prefix:Q,argument:`${B} ("${O.util.Stringify(A)}")`,types:["ArrayBuffer"]});if(I?.allowShared===!1&&sI.isSharedArrayBuffer(A))throw O.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(A.resizable||A.growable)throw O.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return A};O.converters.TypedArray=function(A,Q,B,I,C){if(O.util.Type(A)!=="Object"||!sI.isTypedArray(A)||A.constructor.name!==Q.name)throw O.errors.conversionFailed({prefix:B,argument:`${I} ("${O.util.Stringify(A)}")`,types:[Q.name]});if(C?.allowShared===!1&&sI.isSharedArrayBuffer(A.buffer))throw O.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(A.buffer.resizable||A.buffer.growable)throw O.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return A};O.converters.DataView=function(A,Q,B,I){if(O.util.Type(A)!=="Object"||!sI.isDataView(A))throw O.errors.exception({header:Q,message:`${B} is not a DataView.`});if(I?.allowShared===!1&&sI.isSharedArrayBuffer(A.buffer))throw O.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(A.buffer.resizable||A.buffer.growable)throw O.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return A};O.converters.BufferSource=function(A,Q,B,I){if(sI.isAnyArrayBuffer(A))return O.converters.ArrayBuffer(A,Q,B,{...I,allowShared:!1});if(sI.isTypedArray(A))return O.converters.TypedArray(A,A.constructor,Q,B,{...I,allowShared:!1});if(sI.isDataView(A))return O.converters.DataView(A,Q,B,{...I,allowShared:!1});throw O.errors.conversionFailed({prefix:Q,argument:`${B} ("${O.util.Stringify(A)}")`,types:["BufferSource"]})};O.converters["sequence"]=O.sequenceConverter(O.converters.ByteString);O.converters["sequence>"]=O.sequenceConverter(O.converters["sequence"]);O.converters["record"]=O.recordConverter(O.converters.ByteString,O.converters.ByteString);UN.exports={webidl:O}});var jB=X((MWQ,kN)=>{var{Transform:A4A}=H("node:stream"),XN=H("node:zlib"),{redirectStatusSet:Q4A,referrerPolicySet:B4A,badPortsSet:I4A}=vG(),{getGlobalOrigin:wN}=C4(),{collectASequenceOfCodePoints:f0,collectAnHTTPQuotedString:C4A,removeChars:E4A,parseMIMEType:Y4A}=JB(),{performance:J4A}=H("node:perf_hooks"),{isBlobLike:F4A,ReadableStreamFrom:G4A,isValidHTTPToken:KN,normalizedMethodRecordsBase:D4A}=YA(),_0=H("node:assert"),{isUint8Array:Z4A}=H("node:util/types"),{webidl:bG}=LQ(),VN=[],S9;try{S9=H("node:crypto");let A=["sha256","sha384","sha512"];VN=S9.getHashes().filter((Q)=>A.includes(Q))}catch{}function zN(A){let Q=A.urlList,B=Q.length;return B===0?null:Q[B-1].toString()}function W4A(A,Q){if(!Q4A.has(A.status))return null;let B=A.headersList.get("location",!0);if(B!==null&&HN(B)){if(!$N(B))B=U4A(B);B=new URL(B,zN(A))}if(B&&!B.hash)B.hash=Q;return B}function $N(A){for(let Q=0;Q126||B<32)return!1}return!0}function U4A(A){return Buffer.from(A,"binary").toString("utf8")}function dG(A){return A.urlList[A.urlList.length-1]}function X4A(A){let Q=dG(A);if(RN(Q)&&I4A.has(Q.port))return"blocked";return"allowed"}function w4A(A){return A instanceof Error||(A?.constructor?.name==="Error"||A?.constructor?.name==="DOMException")}function K4A(A){for(let Q=0;Q=32&&B<=126||B>=128&&B<=255))return!1}return!0}var V4A=KN;function HN(A){return(A[0]==="\t"||A[0]===" "||A[A.length-1]==="\t"||A[A.length-1]===" "||A.includes(` -`)||A.includes("\r")||A.includes("\x00"))===!1}function z4A(A,Q){let{headersList:B}=Q,I=(B.get("referrer-policy",!0)??"").split(","),C="";if(I.length>0)for(let E=I.length;E!==0;E--){let Y=I[E-1].trim();if(B4A.has(Y)){C=Y;break}}if(C!=="")A.referrerPolicy=C}function $4A(){return"allowed"}function H4A(){return"success"}function M4A(){return"success"}function L4A(A){let Q=null;Q=A.mode,A.headersList.set("sec-fetch-mode",Q,!0)}function N4A(A){let Q=A.origin;if(Q==="client"||Q===void 0)return;if(A.responseTainting==="cors"||A.mode==="websocket")A.headersList.append("origin",Q,!0);else if(A.method!=="GET"&&A.method!=="HEAD"){switch(A.referrerPolicy){case"no-referrer":Q=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":if(A.origin&&F4(A.origin)&&!F4(dG(A)))Q=null;break;case"same-origin":if(!g9(A,dG(A)))Q=null;break;default:}A.headersList.append("origin",Q,!0)}}function VJ(A,Q){return A}function j4A(A,Q,B){if(!A?.startTime||A.startTime4096)I=C;let E=g9(A,I),Y=mG(I)&&!mG(A.url);switch(Q){case"origin":return C!=null?C:J4(B,!0);case"unsafe-url":return I;case"same-origin":return E?C:"no-referrer";case"origin-when-cross-origin":return E?I:C;case"strict-origin-when-cross-origin":{let J=dG(A);if(g9(I,J))return I;if(mG(I)&&!mG(J))return"no-referrer";return C}case"strict-origin":case"no-referrer-when-downgrade":default:return Y?"no-referrer":C}}function J4(A,Q){if(_0(A instanceof URL),A=new URL(A),A.protocol==="file:"||A.protocol==="about:"||A.protocol==="blank:")return"no-referrer";if(A.username="",A.password="",A.hash="",Q)A.pathname="",A.search="";return A}function mG(A){if(!(A instanceof URL))return!1;if(A.href==="about:blank"||A.href==="about:srcdoc")return!0;if(A.protocol==="data:")return!0;if(A.protocol==="file:")return!0;return Q(A.origin);function Q(B){if(B==null||B==="null")return!1;let I=new URL(B);if(I.protocol==="https:"||I.protocol==="wss:")return!0;if(/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(I.hostname)||(I.hostname==="localhost"||I.hostname.includes("localhost."))||I.hostname.endsWith(".localhost"))return!0;return!1}}function P4A(A,Q){if(S9===void 0)return!0;let B=LN(Q);if(B==="no metadata")return!0;if(B.length===0)return!0;let I=S4A(B),C=g4A(B,I);for(let E of C){let{algo:Y,hash:J}=E,F=S9.createHash(Y).update(A).digest("base64");if(F[F.length-1]==="=")if(F[F.length-2]==="=")F=F.slice(0,-2);else F=F.slice(0,-1);if(y4A(F,J))return!0}return!1}var k4A=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function LN(A){let Q=[],B=!0;for(let I of A.split(" ")){B=!1;let C=k4A.exec(I);if(C===null||C.groups===void 0||C.groups.algo===void 0)continue;let E=C.groups.algo.toLowerCase();if(VN.includes(E))Q.push(C.groups)}if(B===!0)return"no metadata";return Q}function S4A(A){let Q=A[0].algo;if(Q[3]==="5")return Q;for(let B=1;B{A=I,Q=C}),resolve:A,reject:Q}}function _4A(A){return A.controller.state==="aborted"}function v4A(A){return A.controller.state==="aborted"||A.controller.state==="terminated"}function x4A(A){return D4A[A.toLowerCase()]??A}function b4A(A){let Q=JSON.stringify(A);if(Q===void 0)throw TypeError("Value is not JSON serializable");return _0(typeof Q==="string"),Q}var m4A=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function NN(A,Q,B=0,I=1){class C{#A;#Q;#C;constructor(E,Y){this.#A=E,this.#Q=Y,this.#C=0}next(){if(typeof this!=="object"||this===null||!(#A in this))throw TypeError(`'next' called on an object that does not implement interface ${A} Iterator.`);let E=this.#C,Y=this.#A[Q],J=Y.length;if(E>=J)return{value:void 0,done:!0};let{[B]:F,[I]:G}=Y[E];this.#C=E+1;let D;switch(this.#Q){case"key":D=F;break;case"value":D=G;break;case"key+value":D=[F,G];break}return{value:D,done:!1}}}return delete C.prototype.constructor,Object.setPrototypeOf(C.prototype,m4A),Object.defineProperties(C.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${A} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(E,Y){return new C(E,Y)}}function d4A(A,Q,B,I=0,C=1){let E=NN(A,B,I,C),Y={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return bG.brandCheck(this,Q),E(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return bG.brandCheck(this,Q),E(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return bG.brandCheck(this,Q),E(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(F,G=globalThis){if(bG.brandCheck(this,Q),bG.argumentLengthCheck(arguments,1,`${A}.forEach`),typeof F!=="function")throw TypeError(`Failed to execute 'forEach' on '${A}': parameter 1 is not of type 'Function'.`);for(let{0:D,1:Z}of E(this,"key+value"))F.call(G,Z,D,this)}}};return Object.defineProperties(Q.prototype,{...Y,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:Y.entries.value}})}async function c4A(A,Q,B){let I=Q,C=B,E;try{E=A.stream.getReader()}catch(Y){C(Y);return}try{I(await jN(E))}catch(Y){C(Y)}}function u4A(A){return A instanceof ReadableStream||A[Symbol.toStringTag]==="ReadableStream"&&typeof A.tee==="function"}function l4A(A){try{A.close(),A.byobRequest?.respond(0)}catch(Q){if(!Q.message.includes("Controller is already closed")&&!Q.message.includes("ReadableStream is already closed"))throw Q}}var p4A=/[^\x00-\xFF]/;function k9(A){return _0(!p4A.test(A)),A}async function jN(A){let Q=[],B=0;while(!0){let{done:I,value:C}=await A.read();if(I)return Buffer.concat(Q,B);if(!Z4A(C))throw TypeError("Received non-Uint8Array chunk");Q.push(C),B+=C.length}}function i4A(A){_0("protocol"in A);let Q=A.protocol;return Q==="about:"||Q==="blob:"||Q==="data:"}function F4(A){return typeof A==="string"&&A[5]===":"&&A[0]==="h"&&A[1]==="t"&&A[2]==="t"&&A[3]==="p"&&A[4]==="s"||A.protocol==="https:"}function RN(A){_0("protocol"in A);let Q=A.protocol;return Q==="http:"||Q==="https:"}function n4A(A,Q){let B=A;if(!B.startsWith("bytes"))return"failure";let I={position:5};if(Q)f0((F)=>F==="\t"||F===" ",B,I);if(B.charCodeAt(I.position)!==61)return"failure";if(I.position++,Q)f0((F)=>F==="\t"||F===" ",B,I);let C=f0((F)=>{let G=F.charCodeAt(0);return G>=48&&G<=57},B,I),E=C.length?Number(C):null;if(Q)f0((F)=>F==="\t"||F===" ",B,I);if(B.charCodeAt(I.position)!==45)return"failure";if(I.position++,Q)f0((F)=>F==="\t"||F===" ",B,I);let Y=f0((F)=>{let G=F.charCodeAt(0);return G>=48&&G<=57},B,I),J=Y.length?Number(Y):null;if(I.positionJ)return"failure";return{rangeStartValue:E,rangeEndValue:J}}function o4A(A,Q,B){let I="bytes ";return I+=k9(`${A}`),I+="-",I+=k9(`${Q}`),I+="/",I+=k9(`${B}`),I}class qN extends A4A{#A;constructor(A){super();this.#A=A}_transform(A,Q,B){if(!this._inflateStream){if(A.length===0){B();return}this._inflateStream=(A[0]&15)===8?XN.createInflate(this.#A):XN.createInflateRaw(this.#A),this._inflateStream.on("data",this.push.bind(this)),this._inflateStream.on("end",()=>this.push(null)),this._inflateStream.on("error",(I)=>this.destroy(I))}this._inflateStream.write(A,Q,B)}_final(A){if(this._inflateStream)this._inflateStream.end(),this._inflateStream=null;A()}}function a4A(A){return new qN(A)}function s4A(A){let Q=null,B=null,I=null,C=ON("content-type",A);if(C===null)return"failure";for(let E of C){let Y=Y4A(E);if(Y==="failure"||Y.essence==="*/*")continue;if(I=Y,I.essence!==B){if(Q=null,I.parameters.has("charset"))Q=I.parameters.get("charset");B=I.essence}else if(!I.parameters.has("charset")&&Q!==null)I.parameters.set("charset",Q)}if(I==null)return"failure";return I}function r4A(A){let Q=A,B={position:0},I=[],C="";while(B.positionE!=='"'&&E!==",",Q,B),B.positionE===9||E===32),I.push(C),C=""}return I}function ON(A,Q){let B=Q.get(A,!0);if(B===null)return null;return r4A(B)}var t4A=new TextDecoder;function e4A(A){if(A.length===0)return"";if(A[0]===239&&A[1]===187&&A[2]===191)A=A.subarray(3);return t4A.decode(A)}class TN{get baseUrl(){return wN()}get origin(){return this.baseUrl?.origin}policyContainer=MN()}class PN{settingsObject=new TN}var A5A=new PN;kN.exports={isAborted:_4A,isCancelled:v4A,isValidEncodedURL:$N,createDeferredPromise:f4A,ReadableStreamFrom:G4A,tryUpgradeRequestToAPotentiallyTrustworthyURL:h4A,clampAndCoarsenConnectionTimingInfo:j4A,coarsenedSharedCurrentTime:R4A,determineRequestsReferrer:T4A,makePolicyContainer:MN,clonePolicyContainer:O4A,appendFetchMetadata:L4A,appendRequestOriginHeader:N4A,TAOCheck:M4A,corsCheck:H4A,crossOriginResourcePolicyCheck:$4A,createOpaqueTimingInfo:q4A,setRequestReferrerPolicyOnRedirect:z4A,isValidHTTPToken:KN,requestBadPort:X4A,requestCurrentURL:dG,responseURL:zN,responseLocationURL:W4A,isBlobLike:F4A,isURLPotentiallyTrustworthy:mG,isValidReasonPhrase:K4A,sameOrigin:g9,normalizeMethod:x4A,serializeJavascriptValueToJSONString:b4A,iteratorMixin:d4A,createIterator:NN,isValidHeaderName:V4A,isValidHeaderValue:HN,isErrorLike:w4A,fullyReadBody:c4A,bytesMatch:P4A,isReadableStreamLike:u4A,readableStreamClose:l4A,isomorphicEncode:k9,urlIsLocal:i4A,urlHasHttpsScheme:F4,urlIsHttpHttpsScheme:RN,readAllBytes:jN,simpleRangeHeaderValue:n4A,buildContentRange:o4A,parseMetadata:LN,createInflate:a4A,extractMimeType:s4A,getDecodeSplit:ON,utf8DecodeBytes:e4A,environmentSettingsObject:A5A}});var zE=X((LWQ,SN)=>{SN.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kDispatcher:Symbol("dispatcher")}});var G4=X((NWQ,gN)=>{var{Blob:Q5A,File:B5A}=H("node:buffer"),{kState:SC}=zE(),{webidl:rI}=LQ();class tI{constructor(A,Q,B={}){let I=Q,C=B.type,E=B.lastModified??Date.now();this[SC]={blobLike:A,name:I,type:C,lastModified:E}}stream(...A){return rI.brandCheck(this,tI),this[SC].blobLike.stream(...A)}arrayBuffer(...A){return rI.brandCheck(this,tI),this[SC].blobLike.arrayBuffer(...A)}slice(...A){return rI.brandCheck(this,tI),this[SC].blobLike.slice(...A)}text(...A){return rI.brandCheck(this,tI),this[SC].blobLike.text(...A)}get size(){return rI.brandCheck(this,tI),this[SC].blobLike.size}get type(){return rI.brandCheck(this,tI),this[SC].blobLike.type}get name(){return rI.brandCheck(this,tI),this[SC].name}get lastModified(){return rI.brandCheck(this,tI),this[SC].lastModified}get[Symbol.toStringTag](){return"File"}}rI.converters.Blob=rI.interfaceConverter(Q5A);function I5A(A){return A instanceof B5A||A&&(typeof A.stream==="function"||typeof A.arrayBuffer==="function")&&A[Symbol.toStringTag]==="File"}gN.exports={FileLike:tI,isFileLike:I5A}});var cG=X((jWQ,vN)=>{var{isBlobLike:y9,iteratorMixin:C5A}=jB(),{kState:cQ}=zE(),{kEnumerableProperty:zJ}=YA(),{FileLike:yN,isFileLike:E5A}=G4(),{webidl:TA}=LQ(),{File:_N}=H("node:buffer"),hN=H("node:util"),fN=globalThis.File??_N;class eI{constructor(A){if(TA.util.markAsUncloneable(this),A!==void 0)throw TA.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[cQ]=[]}append(A,Q,B=void 0){TA.brandCheck(this,eI);let I="FormData.append";if(TA.argumentLengthCheck(arguments,2,I),arguments.length===3&&!y9(Q))throw TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");A=TA.converters.USVString(A,I,"name"),Q=y9(Q)?TA.converters.Blob(Q,I,"value",{strict:!1}):TA.converters.USVString(Q,I,"value"),B=arguments.length===3?TA.converters.USVString(B,I,"filename"):void 0;let C=D4(A,Q,B);this[cQ].push(C)}delete(A){TA.brandCheck(this,eI);let Q="FormData.delete";TA.argumentLengthCheck(arguments,1,Q),A=TA.converters.USVString(A,Q,"name"),this[cQ]=this[cQ].filter((B)=>B.name!==A)}get(A){TA.brandCheck(this,eI);let Q="FormData.get";TA.argumentLengthCheck(arguments,1,Q),A=TA.converters.USVString(A,Q,"name");let B=this[cQ].findIndex((I)=>I.name===A);if(B===-1)return null;return this[cQ][B].value}getAll(A){TA.brandCheck(this,eI);let Q="FormData.getAll";return TA.argumentLengthCheck(arguments,1,Q),A=TA.converters.USVString(A,Q,"name"),this[cQ].filter((B)=>B.name===A).map((B)=>B.value)}has(A){TA.brandCheck(this,eI);let Q="FormData.has";return TA.argumentLengthCheck(arguments,1,Q),A=TA.converters.USVString(A,Q,"name"),this[cQ].findIndex((B)=>B.name===A)!==-1}set(A,Q,B=void 0){TA.brandCheck(this,eI);let I="FormData.set";if(TA.argumentLengthCheck(arguments,2,I),arguments.length===3&&!y9(Q))throw TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");A=TA.converters.USVString(A,I,"name"),Q=y9(Q)?TA.converters.Blob(Q,I,"name",{strict:!1}):TA.converters.USVString(Q,I,"name"),B=arguments.length===3?TA.converters.USVString(B,I,"name"):void 0;let C=D4(A,Q,B),E=this[cQ].findIndex((Y)=>Y.name===A);if(E!==-1)this[cQ]=[...this[cQ].slice(0,E),C,...this[cQ].slice(E+1).filter((Y)=>Y.name!==A)];else this[cQ].push(C)}[hN.inspect.custom](A,Q){let B=this[cQ].reduce((C,E)=>{if(C[E.name])if(Array.isArray(C[E.name]))C[E.name].push(E.value);else C[E.name]=[C[E.name],E.value];else C[E.name]=E.value;return C},{__proto__:null});Q.depth??=A,Q.colors??=!0;let I=hN.formatWithOptions(Q,B);return`FormData ${I.slice(I.indexOf("]")+2)}`}}C5A("FormData",eI,cQ,"name","value");Object.defineProperties(eI.prototype,{append:zJ,delete:zJ,get:zJ,getAll:zJ,has:zJ,set:zJ,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function D4(A,Q,B){if(typeof Q==="string");else{if(!E5A(Q))Q=Q instanceof Blob?new fN([Q],"blob",{type:Q.type}):new yN(Q,"blob",{type:Q.type});if(B!==void 0){let I={type:Q.type,lastModified:Q.lastModified};Q=Q instanceof _N?new fN([Q],B,I):new yN(Q,B,I)}}return{name:A,value:Q}}vN.exports={FormData:eI,makeEntry:D4}});var uN=X((RWQ,cN)=>{var{isUSVString:xN,bufferToLowerCasedHeaderName:Y5A}=YA(),{utf8DecodeBytes:J5A}=jB(),{HTTP_TOKEN_CODEPOINTS:F5A,isomorphicDecode:bN}=JB(),{isFileLike:G5A}=G4(),{makeEntry:D5A}=cG(),h9=H("node:assert"),{File:Z5A}=H("node:buffer"),W5A=globalThis.File??Z5A,U5A=Buffer.from('form-data; name="'),mN=Buffer.from("; filename"),X5A=Buffer.from("--"),w5A=Buffer.from(`--\r -`);function K5A(A){for(let Q=0;Q70)return!1;for(let B=0;B=48&&I<=57||I>=65&&I<=90||I>=97&&I<=122||I===39||I===45||I===95))return!1}return!0}function z5A(A,Q){h9(Q!=="failure"&&Q.essence==="multipart/form-data");let B=Q.parameters.get("boundary");if(B===void 0)return"failure";let I=Buffer.from(`--${B}`,"utf8"),C=[],E={position:0};while(A[E.position]===13&&A[E.position+1]===10)E.position+=2;let Y=A.length;while(A[Y-1]===10&&A[Y-2]===13)Y-=2;if(Y!==A.length)A=A.subarray(0,Y);while(!0){if(A.subarray(E.position,E.position+I.length).equals(I))E.position+=I.length;else return"failure";if(E.position===A.length-2&&f9(A,X5A,E)||E.position===A.length-4&&f9(A,w5A,E))return C;if(A[E.position]!==13||A[E.position+1]!==10)return"failure";E.position+=2;let J=$5A(A,E);if(J==="failure")return"failure";let{name:F,filename:G,contentType:D,encoding:Z}=J;E.position+=2;let W;{let w=A.indexOf(I.subarray(2),E.position);if(w===-1)return"failure";if(W=A.subarray(E.position,w-4),E.position+=W.length,Z==="base64")W=Buffer.from(W.toString(),"base64")}if(A[E.position]!==13||A[E.position+1]!==10)return"failure";else E.position+=2;let U;if(G!==null){if(D??="text/plain",!K5A(D))D="";U=new W5A([W],G,{type:D})}else U=J5A(Buffer.from(W));h9(xN(F)),h9(typeof U==="string"&&xN(U)||G5A(U)),C.push(D5A(F,U,G))}}function $5A(A,Q){let B=null,I=null,C=null,E=null;while(!0){if(A[Q.position]===13&&A[Q.position+1]===10){if(B===null)return"failure";return{name:B,filename:I,contentType:C,encoding:E}}let Y=$J((J)=>J!==10&&J!==13&&J!==58,A,Q);if(Y=Z4(Y,!0,!0,(J)=>J===9||J===32),!F5A.test(Y.toString()))return"failure";if(A[Q.position]!==58)return"failure";switch(Q.position++,$J((J)=>J===32||J===9,A,Q),Y5A(Y)){case"content-disposition":{if(B=I=null,!f9(A,U5A,Q))return"failure";if(Q.position+=17,B=dN(A,Q),B===null)return"failure";if(f9(A,mN,Q)){let J=Q.position+mN.length;if(A[J]===42)Q.position+=1,J+=1;if(A[J]!==61||A[J+1]!==34)return"failure";if(Q.position+=12,I=dN(A,Q),I===null)return"failure"}break}case"content-type":{let J=$J((F)=>F!==10&&F!==13,A,Q);J=Z4(J,!1,!0,(F)=>F===9||F===32),C=bN(J);break}case"content-transfer-encoding":{let J=$J((F)=>F!==10&&F!==13,A,Q);J=Z4(J,!1,!0,(F)=>F===9||F===32),E=bN(J);break}default:$J((J)=>J!==10&&J!==13,A,Q)}if(A[Q.position]!==13&&A[Q.position+1]!==10)return"failure";else Q.position+=2}}function dN(A,Q){h9(A[Q.position-1]===34);let B=$J((I)=>I!==10&&I!==13&&I!==34,A,Q);if(A[Q.position]!==34)return null;else Q.position++;return B=new TextDecoder().decode(B).replace(/%0A/ig,` -`).replace(/%0D/ig,"\r").replace(/%22/g,'"'),B}function $J(A,Q,B){let I=B.position;while(I0&&I(A[E]))E--;return C===0&&E===A.length-1?A:A.subarray(C,E+1)}function f9(A,Q,B){if(A.length{var uG=YA(),{ReadableStreamFrom:H5A,isBlobLike:lN,isReadableStreamLike:M5A,readableStreamClose:L5A,createDeferredPromise:N5A,fullyReadBody:j5A,extractMimeType:R5A,utf8DecodeBytes:nN}=jB(),{FormData:pN}=cG(),{kState:MJ}=zE(),{webidl:q5A}=LQ(),{Blob:O5A}=H("node:buffer"),W4=H("node:assert"),{isErrored:oN,isDisturbed:T5A}=H("node:stream"),{isArrayBuffer:P5A}=H("node:util/types"),{serializeAMimeType:k5A}=JB(),{multipartFormDataParser:S5A}=uN(),U4;try{let A=H("node:crypto");U4=(Q)=>A.randomInt(0,Q)}catch{U4=(A)=>Math.floor(Math.random(A))}var _9=new TextEncoder;function g5A(){}var aN=globalThis.FinalizationRegistry&&process.version.indexOf("v18")!==0,sN;if(aN)sN=new FinalizationRegistry((A)=>{let Q=A.deref();if(Q&&!Q.locked&&!T5A(Q)&&!oN(Q))Q.cancel("Response object has been garbage collected").catch(g5A)});function rN(A,Q=!1){let B=null;if(A instanceof ReadableStream)B=A;else if(lN(A))B=A.stream();else B=new ReadableStream({async pull(F){let G=typeof C==="string"?_9.encode(C):C;if(G.byteLength)F.enqueue(G);queueMicrotask(()=>L5A(F))},start(){},type:"bytes"});W4(M5A(B));let I=null,C=null,E=null,Y=null;if(typeof A==="string")C=A,Y="text/plain;charset=UTF-8";else if(A instanceof URLSearchParams)C=A.toString(),Y="application/x-www-form-urlencoded;charset=UTF-8";else if(P5A(A))C=new Uint8Array(A.slice());else if(ArrayBuffer.isView(A))C=new Uint8Array(A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength));else if(uG.isFormDataLike(A)){let F=`----formdata-undici-0${`${U4(100000000000)}`.padStart(11,"0")}`,G=`--${F}\r -Content-Disposition: form-data`;/*! formdata-polyfill. MIT License. Jimmy Wärting */let D=(V)=>V.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),Z=(V)=>V.replace(/\r?\n|\r/g,`\r -`),W=[],U=new Uint8Array([13,10]);E=0;let w=!1;for(let[V,z]of A)if(typeof z==="string"){let M=_9.encode(G+`; name="${D(Z(V))}"\r +import{createRequire as HYA}from"node:module";var DYA=Object.create;var{getPrototypeOf:ZYA,defineProperty:D1,getOwnPropertyNames:UYA}=Object;var WYA=Object.prototype.hasOwnProperty;function wYA(A){return this[A]}var XYA,VYA,m=(A,Q,B)=>{var I=A!=null&&typeof A==="object";if(I){var C=Q?XYA??=new WeakMap:VYA??=new WeakMap,E=C.get(A);if(E)return E}B=A!=null?DYA(ZYA(A)):{};let Y=Q||!A||!A.__esModule?D1(B,"default",{value:A,enumerable:!0}):B;for(let J of UYA(A))if(!WYA.call(Y,J))D1(Y,J,{get:wYA.bind(A,J),enumerable:!0});if(I)C.set(A,Y);return Y};var z=(A,Q)=>()=>(Q||A((Q={exports:{}}).exports,Q),Q.exports);var KYA=(A)=>A;function zYA(A,Q){this[A]=KYA.bind(null,Q)}var $YA=(A,Q)=>{for(var B in Q)D1(A,B,{get:Q[B],enumerable:!0,configurable:!0,set:zYA.bind(Q,B)})};var j=HYA(import.meta.url);var AQ=z((PuA,c3)=>{c3.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent")}});var PA=z((OuA,fH)=>{var u3=Symbol.for("undici.error.UND_ERR");class IQ extends Error{constructor(A){super(A);this.name="UndiciError",this.code="UND_ERR"}static[Symbol.hasInstance](A){return A&&A[u3]===!0}[u3]=!0}var l3=Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT");class WH extends IQ{constructor(A){super(A);this.name="ConnectTimeoutError",this.message=A||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[l3]===!0}[l3]=!0}var p3=Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT");class wH extends IQ{constructor(A){super(A);this.name="HeadersTimeoutError",this.message=A||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[p3]===!0}[p3]=!0}var i3=Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW");class XH extends IQ{constructor(A){super(A);this.name="HeadersOverflowError",this.message=A||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}static[Symbol.hasInstance](A){return A&&A[i3]===!0}[i3]=!0}var o3=Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT");class VH extends IQ{constructor(A){super(A);this.name="BodyTimeoutError",this.message=A||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[o3]===!0}[o3]=!0}var n3=Symbol.for("undici.error.UND_ERR_RESPONSE_STATUS_CODE");class KH extends IQ{constructor(A,Q,B,I){super(A);this.name="ResponseStatusCodeError",this.message=A||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=I,this.status=Q,this.statusCode=Q,this.headers=B}static[Symbol.hasInstance](A){return A&&A[n3]===!0}[n3]=!0}var s3=Symbol.for("undici.error.UND_ERR_INVALID_ARG");class zH extends IQ{constructor(A){super(A);this.name="InvalidArgumentError",this.message=A||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}static[Symbol.hasInstance](A){return A&&A[s3]===!0}[s3]=!0}var a3=Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE");class $H extends IQ{constructor(A){super(A);this.name="InvalidReturnValueError",this.message=A||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}static[Symbol.hasInstance](A){return A&&A[a3]===!0}[a3]=!0}var r3=Symbol.for("undici.error.UND_ERR_ABORT");class W1 extends IQ{constructor(A){super(A);this.name="AbortError",this.message=A||"The operation was aborted",this.code="UND_ERR_ABORT"}static[Symbol.hasInstance](A){return A&&A[r3]===!0}[r3]=!0}var t3=Symbol.for("undici.error.UND_ERR_ABORTED");class HH extends W1{constructor(A){super(A);this.name="AbortError",this.message=A||"Request aborted",this.code="UND_ERR_ABORTED"}static[Symbol.hasInstance](A){return A&&A[t3]===!0}[t3]=!0}var e3=Symbol.for("undici.error.UND_ERR_INFO");class MH extends IQ{constructor(A){super(A);this.name="InformationalError",this.message=A||"Request information",this.code="UND_ERR_INFO"}static[Symbol.hasInstance](A){return A&&A[e3]===!0}[e3]=!0}var AH=Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH");class LH extends IQ{constructor(A){super(A);this.name="RequestContentLengthMismatchError",this.message=A||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](A){return A&&A[AH]===!0}[AH]=!0}var QH=Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH");class NH extends IQ{constructor(A){super(A);this.name="ResponseContentLengthMismatchError",this.message=A||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](A){return A&&A[QH]===!0}[QH]=!0}var BH=Symbol.for("undici.error.UND_ERR_DESTROYED");class jH extends IQ{constructor(A){super(A);this.name="ClientDestroyedError",this.message=A||"The client is destroyed",this.code="UND_ERR_DESTROYED"}static[Symbol.hasInstance](A){return A&&A[BH]===!0}[BH]=!0}var IH=Symbol.for("undici.error.UND_ERR_CLOSED");class RH extends IQ{constructor(A){super(A);this.name="ClientClosedError",this.message=A||"The client is closed",this.code="UND_ERR_CLOSED"}static[Symbol.hasInstance](A){return A&&A[IH]===!0}[IH]=!0}var CH=Symbol.for("undici.error.UND_ERR_SOCKET");class qH extends IQ{constructor(A,Q){super(A);this.name="SocketError",this.message=A||"Socket error",this.code="UND_ERR_SOCKET",this.socket=Q}static[Symbol.hasInstance](A){return A&&A[CH]===!0}[CH]=!0}var EH=Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED");class PH extends IQ{constructor(A){super(A);this.name="NotSupportedError",this.message=A||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}static[Symbol.hasInstance](A){return A&&A[EH]===!0}[EH]=!0}var YH=Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM");class OH extends IQ{constructor(A){super(A);this.name="MissingUpstreamError",this.message=A||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}static[Symbol.hasInstance](A){return A&&A[YH]===!0}[YH]=!0}var JH=Symbol.for("undici.error.UND_ERR_HTTP_PARSER");class kH extends Error{constructor(A,Q,B){super(A);this.name="HTTPParserError",this.code=Q?`HPE_${Q}`:void 0,this.data=B?B.toString():void 0}static[Symbol.hasInstance](A){return A&&A[JH]===!0}[JH]=!0}var FH=Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE");class gH extends IQ{constructor(A){super(A);this.name="ResponseExceededMaxSizeError",this.message=A||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}static[Symbol.hasInstance](A){return A&&A[FH]===!0}[FH]=!0}var GH=Symbol.for("undici.error.UND_ERR_REQ_RETRY");class TH extends IQ{constructor(A,Q,{headers:B,data:I}){super(A);this.name="RequestRetryError",this.message=A||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=Q,this.data=I,this.headers=B}static[Symbol.hasInstance](A){return A&&A[GH]===!0}[GH]=!0}var DH=Symbol.for("undici.error.UND_ERR_RESPONSE");class _H extends IQ{constructor(A,Q,{headers:B,data:I}){super(A);this.name="ResponseError",this.message=A||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=Q,this.data=I,this.headers=B}static[Symbol.hasInstance](A){return A&&A[DH]===!0}[DH]=!0}var ZH=Symbol.for("undici.error.UND_ERR_PRX_TLS");class yH extends IQ{constructor(A,Q,B){super(Q,{cause:A,...B??{}});this.name="SecureProxyConnectionError",this.message=Q||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=A}static[Symbol.hasInstance](A){return A&&A[ZH]===!0}[ZH]=!0}var UH=Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED");class SH extends IQ{constructor(A){super(A);this.name="MessageSizeExceededError",this.message=A||"Max decompressed message size exceeded",this.code="UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"}static[Symbol.hasInstance](A){return A&&A[UH]===!0}get[UH](){return!0}}fH.exports={AbortError:W1,HTTPParserError:kH,UndiciError:IQ,HeadersTimeoutError:wH,HeadersOverflowError:XH,BodyTimeoutError:VH,RequestContentLengthMismatchError:LH,ConnectTimeoutError:WH,ResponseStatusCodeError:KH,InvalidArgumentError:zH,InvalidReturnValueError:$H,RequestAbortedError:HH,ClientDestroyedError:jH,ClientClosedError:RH,InformationalError:MH,SocketError:qH,NotSupportedError:PH,ResponseContentLengthMismatchError:NH,BalancedPoolMissingUpstreamError:OH,ResponseExceededMaxSizeError:gH,RequestRetryError:TH,ResponseError:_H,SecureProxyConnectionError:yH,MessageSizeExceededError:SH}});var DW=z((kuA,hH)=>{var GW={},w1=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let A=0;A{var{wellknownHeaderNames:xH,headerNameLowerCasedRecord:OYA}=DW();class OJ{value=null;left=null;middle=null;right=null;code;constructor(A,Q,B){if(B===void 0||B>=A.length)throw TypeError("Unreachable");if((this.code=A.charCodeAt(B))>127)throw TypeError("key must be ascii string");if(A.length!==++B)this.middle=new OJ(A,Q,B);else this.value=Q}add(A,Q){let B=A.length;if(B===0)throw TypeError("Unreachable");let I=0,C=this;while(!0){let E=A.charCodeAt(I);if(E>127)throw TypeError("key must be ascii string");if(C.code===E)if(B===++I){C.value=Q;break}else if(C.middle!==null)C=C.middle;else{C.middle=new OJ(A,Q,I);break}else if(C.code=65)C|=32;while(I!==null){if(C===I.code){if(Q===++B)return I;I=I.middle;break}I=I.code{var AD=j("node:assert"),{kDestroyed:cH,kBodyUsed:kJ,kListeners:V1,kBody:dH}=AQ(),{IncomingMessage:kYA}=j("node:http"),UW=j("node:stream"),gYA=j("node:net"),{Blob:TYA}=j("node:buffer"),_YA=j("node:util"),{stringify:yYA}=j("node:querystring"),{EventEmitter:SYA}=j("node:events"),{InvalidArgumentError:kQ}=PA(),{headerNameLowerCasedRecord:fYA}=DW(),{tree:uH}=mH(),[hYA,xYA]=process.versions.node.split(".").map((A)=>Number(A));class K1{constructor(A){this[dH]=A,this[kJ]=!1}async*[Symbol.asyncIterator](){AD(!this[kJ],"disturbed"),this[kJ]=!0,yield*this[dH]}}function vYA(A){if(WW(A)){if(nH(A)===0)A.on("data",function(){AD(!1)});if(typeof A.readableDidRead!=="boolean")A[kJ]=!1,SYA.prototype.on.call(A,"data",function(){this[kJ]=!0});return A}else if(A&&typeof A.pipeTo==="function")return new K1(A);else if(A&&typeof A!=="string"&&!ArrayBuffer.isView(A)&&oH(A))return new K1(A);else return A}function bYA(){}function WW(A){return A&&typeof A==="object"&&typeof A.pipe==="function"&&typeof A.on==="function"}function lH(A){if(A===null)return!1;else if(A instanceof TYA)return!0;else if(typeof A!=="object")return!1;else{let Q=A[Symbol.toStringTag];return(Q==="Blob"||Q==="File")&&(("stream"in A)&&typeof A.stream==="function"||("arrayBuffer"in A)&&typeof A.arrayBuffer==="function")}}function mYA(A,Q){if(A.includes("?")||A.includes("#"))throw Error('Query params cannot be passed when url already contains "?" or "#".');let B=yYA(Q);if(B)A+="?"+B;return A}function pH(A){let Q=parseInt(A,10);return Q===Number(A)&&Q>=0&&Q<=65535}function ZW(A){return A!=null&&A[0]==="h"&&A[1]==="t"&&A[2]==="t"&&A[3]==="p"&&(A[4]===":"||A[4]==="s"&&A[5]===":")}function iH(A){if(typeof A==="string"){if(A=new URL(A),!ZW(A.origin||A.protocol))throw new kQ("Invalid URL protocol: the URL must start with `http:` or `https:`.");return A}if(!A||typeof A!=="object")throw new kQ("Invalid URL: The URL argument must be a non-null object.");if(!(A instanceof URL)){if(A.port!=null&&A.port!==""&&pH(A.port)===!1)throw new kQ("Invalid URL: port must be a valid integer or a string representation of an integer.");if(A.path!=null&&typeof A.path!=="string")throw new kQ("Invalid URL path: the path must be a string or null/undefined.");if(A.pathname!=null&&typeof A.pathname!=="string")throw new kQ("Invalid URL pathname: the pathname must be a string or null/undefined.");if(A.hostname!=null&&typeof A.hostname!=="string")throw new kQ("Invalid URL hostname: the hostname must be a string or null/undefined.");if(A.origin!=null&&typeof A.origin!=="string")throw new kQ("Invalid URL origin: the origin must be a string or null/undefined.");if(!ZW(A.origin||A.protocol))throw new kQ("Invalid URL protocol: the URL must start with `http:` or `https:`.");let Q=A.port!=null?A.port:A.protocol==="https:"?443:80,B=A.origin!=null?A.origin:`${A.protocol||""}//${A.hostname||""}:${Q}`,I=A.path!=null?A.path:`${A.pathname||""}${A.search||""}`;if(B[B.length-1]==="/")B=B.slice(0,B.length-1);if(I&&I[0]!=="/")I=`/${I}`;return new URL(`${B}${I}`)}if(!ZW(A.origin||A.protocol))throw new kQ("Invalid URL protocol: the URL must start with `http:` or `https:`.");return A}function dYA(A){if(A=iH(A),A.pathname!=="/"||A.search||A.hash)throw new kQ("invalid url");return A}function cYA(A){if(A[0]==="["){let B=A.indexOf("]");return AD(B!==-1),A.substring(1,B)}let Q=A.indexOf(":");if(Q===-1)return A;return A.substring(0,Q)}function uYA(A){if(!A)return null;AD(typeof A==="string");let Q=cYA(A);if(gYA.isIP(Q))return"";return Q}function lYA(A){return JSON.parse(JSON.stringify(A))}function pYA(A){return A!=null&&typeof A[Symbol.asyncIterator]==="function"}function oH(A){return A!=null&&(typeof A[Symbol.iterator]==="function"||typeof A[Symbol.asyncIterator]==="function")}function nH(A){if(A==null)return 0;else if(WW(A)){let Q=A._readableState;return Q&&Q.objectMode===!1&&Q.ended===!0&&Number.isFinite(Q.length)?Q.length:null}else if(lH(A))return A.size!=null?A.size:null;else if(rH(A))return A.byteLength;return null}function sH(A){return A&&!!(A.destroyed||A[cH]||UW.isDestroyed?.(A))}function iYA(A,Q){if(A==null||!WW(A)||sH(A))return;if(typeof A.destroy==="function"){if(Object.getPrototypeOf(A).constructor===kYA)A.socket=null;A.destroy(Q)}else if(Q)queueMicrotask(()=>{A.emit("error",Q)});if(A.destroyed!==!0)A[cH]=!0}var oYA=/timeout=(\d+)/;function nYA(A){let Q=A.toString().match(oYA);return Q?parseInt(Q[1],10)*1000:null}function aH(A){return typeof A==="string"?fYA[A]??A.toLowerCase():uH.lookup(A)??A.toString("latin1").toLowerCase()}function sYA(A){return uH.lookup(A)??A.toString("latin1").toLowerCase()}function aYA(A,Q){if(Q===void 0)Q={};for(let B=0;BY.toString("utf8")):E.toString("utf8")}}if("content-length"in Q&&"content-disposition"in Q)Q["content-disposition"]=Buffer.from(Q["content-disposition"]).toString("latin1");return Q}function rYA(A){let Q=A.length,B=Array(Q),I=!1,C=-1,E,Y,J=0;for(let F=0;F{B.close(),B.byobRequest?.respond(0)});else{let E=Buffer.isBuffer(C)?C:Buffer.from(C);if(E.byteLength)B.enqueue(new Uint8Array(E))}return B.desiredSize>0},async cancel(B){await Q.return()},type:"bytes"})}function CJA(A){return A&&typeof A==="object"&&typeof A.append==="function"&&typeof A.delete==="function"&&typeof A.get==="function"&&typeof A.getAll==="function"&&typeof A.has==="function"&&typeof A.set==="function"&&A[Symbol.toStringTag]==="FormData"}function EJA(A,Q){if("addEventListener"in A)return A.addEventListener("abort",Q,{once:!0}),()=>A.removeEventListener("abort",Q);return A.addListener("abort",Q),()=>A.removeListener("abort",Q)}var YJA=typeof String.prototype.toWellFormed==="function",JJA=typeof String.prototype.isWellFormed==="function";function tH(A){return YJA?`${A}`.toWellFormed():_YA.toUSVString(A)}function FJA(A){return JJA?`${A}`.isWellFormed():tH(A)===`${A}`}function eH(A){switch(A){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return A>=33&&A<=126}}function GJA(A){if(A.length===0)return!1;for(let Q=0;Q{var kA=j("node:diagnostics_channel"),H1=j("node:util"),wW=H1.debuglog("undici"),$1=H1.debuglog("fetch"),d0=H1.debuglog("websocket"),IM=!1,VJA={beforeConnect:kA.channel("undici:client:beforeConnect"),connected:kA.channel("undici:client:connected"),connectError:kA.channel("undici:client:connectError"),sendHeaders:kA.channel("undici:client:sendHeaders"),create:kA.channel("undici:request:create"),bodySent:kA.channel("undici:request:bodySent"),headers:kA.channel("undici:request:headers"),trailers:kA.channel("undici:request:trailers"),error:kA.channel("undici:request:error"),open:kA.channel("undici:websocket:open"),close:kA.channel("undici:websocket:close"),socketError:kA.channel("undici:websocket:socket_error"),ping:kA.channel("undici:websocket:ping"),pong:kA.channel("undici:websocket:pong")};if(wW.enabled||$1.enabled){let A=$1.enabled?$1:wW;kA.channel("undici:client:beforeConnect").subscribe((Q)=>{let{connectParams:{version:B,protocol:I,port:C,host:E}}=Q;A("connecting to %s using %s%s",`${E}${C?`:${C}`:""}`,I,B)}),kA.channel("undici:client:connected").subscribe((Q)=>{let{connectParams:{version:B,protocol:I,port:C,host:E}}=Q;A("connected to %s using %s%s",`${E}${C?`:${C}`:""}`,I,B)}),kA.channel("undici:client:connectError").subscribe((Q)=>{let{connectParams:{version:B,protocol:I,port:C,host:E},error:Y}=Q;A("connection to %s using %s%s errored - %s",`${E}${C?`:${C}`:""}`,I,B,Y.message)}),kA.channel("undici:client:sendHeaders").subscribe((Q)=>{let{request:{method:B,path:I,origin:C}}=Q;A("sending request to %s %s/%s",B,C,I)}),kA.channel("undici:request:headers").subscribe((Q)=>{let{request:{method:B,path:I,origin:C},response:{statusCode:E}}=Q;A("received response to %s %s/%s - HTTP %d",B,C,I,E)}),kA.channel("undici:request:trailers").subscribe((Q)=>{let{request:{method:B,path:I,origin:C}}=Q;A("trailers received from %s %s/%s",B,C,I)}),kA.channel("undici:request:error").subscribe((Q)=>{let{request:{method:B,path:I,origin:C},error:E}=Q;A("request to %s %s/%s errored - %s",B,C,I,E.message)}),IM=!0}if(d0.enabled){if(!IM){let A=wW.enabled?wW:d0;kA.channel("undici:client:beforeConnect").subscribe((Q)=>{let{connectParams:{version:B,protocol:I,port:C,host:E}}=Q;A("connecting to %s%s using %s%s",E,C?`:${C}`:"",I,B)}),kA.channel("undici:client:connected").subscribe((Q)=>{let{connectParams:{version:B,protocol:I,port:C,host:E}}=Q;A("connected to %s%s using %s%s",E,C?`:${C}`:"",I,B)}),kA.channel("undici:client:connectError").subscribe((Q)=>{let{connectParams:{version:B,protocol:I,port:C,host:E},error:Y}=Q;A("connection to %s%s using %s%s errored - %s",E,C?`:${C}`:"",I,B,Y.message)}),kA.channel("undici:client:sendHeaders").subscribe((Q)=>{let{request:{method:B,path:I,origin:C}}=Q;A("sending request to %s %s/%s",B,C,I)})}kA.channel("undici:websocket:open").subscribe((A)=>{let{address:{address:Q,port:B}}=A;d0("connection opened %s%s",Q,B?`:${B}`:"")}),kA.channel("undici:websocket:close").subscribe((A)=>{let{websocket:Q,code:B,reason:I}=A;d0("closed connection to %s - %s %s",Q.url,B,I)}),kA.channel("undici:websocket:socket_error").subscribe((A)=>{d0("connection errored - %s",A.message)}),kA.channel("undici:websocket:ping").subscribe((A)=>{d0("ping received")}),kA.channel("undici:websocket:pong").subscribe((A)=>{d0("pong received")})}CM.exports={channels:VJA}});var GM=z((yuA,FM)=>{var{InvalidArgumentError:oA,NotSupportedError:KJA}=PA(),xC=j("node:assert"),{isValidHTTPToken:YM,isValidHeaderValue:M1,isStream:zJA,destroy:$JA,isBuffer:HJA,isFormDataLike:MJA,isIterable:LJA,isBlobLike:NJA,buildURL:jJA,validateHandler:RJA,getServerName:qJA,normalizedMethodRecords:PJA}=$A(),{channels:eI}=gJ(),{headerNameLowerCasedRecord:EM}=DW(),OJA=/[^\u0021-\u00ff]/,QI=Symbol("handler");class JM{constructor(A,{path:Q,method:B,body:I,headers:C,query:E,idempotent:Y,blocking:J,upgrade:F,headersTimeout:G,bodyTimeout:D,reset:Z,throwOnError:U,expectContinue:W,servername:w},K){if(typeof Q!=="string")throw new oA("path must be a string");else if(Q[0]!=="/"&&!(Q.startsWith("http://")||Q.startsWith("https://"))&&B!=="CONNECT")throw new oA("path must be an absolute URL or start with a slash");else if(OJA.test(Q))throw new oA("invalid request path");if(typeof B!=="string")throw new oA("method must be a string");else if(PJA[B]===void 0&&!YM(B))throw new oA("invalid request method");if(F&&typeof F!=="string")throw new oA("upgrade must be a string");if(F&&!M1(F))throw new oA("invalid upgrade header");if(G!=null&&(!Number.isFinite(G)||G<0))throw new oA("invalid headersTimeout");if(D!=null&&(!Number.isFinite(D)||D<0))throw new oA("invalid bodyTimeout");if(Z!=null&&typeof Z!=="boolean")throw new oA("invalid reset");if(W!=null&&typeof W!=="boolean")throw new oA("invalid expectContinue");if(this.headersTimeout=G,this.bodyTimeout=D,this.throwOnError=U===!0,this.method=B,this.abort=null,I==null)this.body=null;else if(zJA(I)){this.body=I;let X=this.body._readableState;if(!X||!X.autoDestroy)this.endHandler=function(){$JA(this)},this.body.on("end",this.endHandler);this.errorHandler=(V)=>{if(this.abort)this.abort(V);else this.error=V},this.body.on("error",this.errorHandler)}else if(HJA(I))this.body=I.byteLength?I:null;else if(ArrayBuffer.isView(I))this.body=I.buffer.byteLength?Buffer.from(I.buffer,I.byteOffset,I.byteLength):null;else if(I instanceof ArrayBuffer)this.body=I.byteLength?Buffer.from(I):null;else if(typeof I==="string")this.body=I.length?Buffer.from(I):null;else if(MJA(I)||LJA(I)||NJA(I))this.body=I;else throw new oA("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=F||null,this.path=E?jJA(Q,E):Q,this.origin=A,this.idempotent=Y==null?B==="HEAD"||B==="GET":Y,this.blocking=J==null?!1:J,this.reset=Z==null?null:Z,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=W!=null?W:!1,Array.isArray(C)){if(C.length%2!==0)throw new oA("headers array must be even");for(let X=0;X{var kJA=j("node:events");class L1 extends kJA{dispatch(){throw Error("not implemented")}close(){throw Error("not implemented")}destroy(){throw Error("not implemented")}compose(...A){let Q=Array.isArray(A[0])?A[0]:A,B=this.dispatch.bind(this);for(let I of Q){if(I==null)continue;if(typeof I!=="function")throw TypeError(`invalid interceptor, expected function received ${typeof I}`);if(B=I(B),B==null||typeof B!=="function"||B.length!==2)throw TypeError("invalid interceptor")}return new DM(this,B)}}class DM extends L1{#A=null;#Q=null;constructor(A,Q){super();this.#A=A,this.#Q=Q}dispatch(...A){this.#Q(...A)}close(...A){return this.#A.close(...A)}destroy(...A){return this.#A.destroy(...A)}}ZM.exports=L1});var SJ=z((fuA,WM)=>{var gJA=QD(),{ClientDestroyedError:N1,ClientClosedError:TJA,InvalidArgumentError:TJ}=PA(),{kDestroy:_JA,kClose:yJA,kClosed:BD,kDestroyed:_J,kDispatch:j1,kInterceptors:c0}=AQ(),vC=Symbol("onDestroyed"),yJ=Symbol("onClosed"),VW=Symbol("Intercepted Dispatch");class UM extends gJA{constructor(){super();this[_J]=!1,this[vC]=null,this[BD]=!1,this[yJ]=[]}get destroyed(){return this[_J]}get closed(){return this[BD]}get interceptors(){return this[c0]}set interceptors(A){if(A){for(let Q=A.length-1;Q>=0;Q--)if(typeof this[c0][Q]!=="function")throw new TJ("interceptor must be an function")}this[c0]=A}close(A){if(A===void 0)return new Promise((B,I)=>{this.close((C,E)=>{return C?I(C):B(E)})});if(typeof A!=="function")throw new TJ("invalid callback");if(this[_J]){queueMicrotask(()=>A(new N1,null));return}if(this[BD]){if(this[yJ])this[yJ].push(A);else queueMicrotask(()=>A(null,null));return}this[BD]=!0,this[yJ].push(A);let Q=()=>{let B=this[yJ];this[yJ]=null;for(let I=0;Ithis.destroy()).then(()=>{queueMicrotask(Q)})}destroy(A,Q){if(typeof A==="function")Q=A,A=null;if(Q===void 0)return new Promise((I,C)=>{this.destroy(A,(E,Y)=>{return E?C(E):I(Y)})});if(typeof Q!=="function")throw new TJ("invalid callback");if(this[_J]){if(this[vC])this[vC].push(Q);else queueMicrotask(()=>Q(null,null));return}if(!A)A=new N1;this[_J]=!0,this[vC]=this[vC]||[],this[vC].push(Q);let B=()=>{let I=this[vC];this[vC]=null;for(let C=0;C{queueMicrotask(B)})}[VW](A,Q){if(!this[c0]||this[c0].length===0)return this[VW]=this[j1],this[j1](A,Q);let B=this[j1].bind(this);for(let I=this[c0].length-1;I>=0;I--)B=this[c0][I](B);return this[VW]=B,B(A,Q)}dispatch(A,Q){if(!Q||typeof Q!=="object")throw new TJ("handler must be an object");try{if(!A||typeof A!=="object")throw new TJ("opts must be an object.");if(this[_J]||this[vC])throw new N1;if(this[BD])throw new TJA;return this[VW](A,Q)}catch(B){if(typeof Q.onError!=="function")throw new TJ("invalid onError method");return Q.onError(B),!1}}}WM.exports=UM});var _1=z((huA,KM)=>{var fJ=0,R1=1000,q1=(R1>>1)-1,bC,P1=Symbol("kFastTimer"),mC=[],O1=-2,k1=-1,XM=0,wM=1;function g1(){fJ+=q1;let A=0,Q=mC.length;while(A=B._idleStart+B._idleTimeout)B._state=k1,B._idleStart=-1,B._onTimeout(B._timerArg);if(B._state===k1){if(B._state=O1,--Q!==0)mC[A]=mC[Q]}else++A}if(mC.length=Q,mC.length!==0)VM()}function VM(){if(bC)bC.refresh();else if(clearTimeout(bC),bC=setTimeout(g1,q1),bC.unref)bC.unref()}class T1{[P1]=!0;_state=O1;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(A,Q,B){this._onTimeout=A,this._idleTimeout=Q,this._timerArg=B,this.refresh()}refresh(){if(this._state===O1)mC.push(this);if(!bC||mC.length===1)VM();this._state=XM}clear(){this._state=k1,this._idleStart=-1}}KM.exports={setTimeout(A,Q,B){return Q<=R1?setTimeout(A,Q,B):new T1(A,Q,B)},clearTimeout(A){if(A[P1])A.clear();else clearTimeout(A)},setFastTimeout(A,Q,B){return new T1(A,Q,B)},clearFastTimeout(A){A.clear()},now(){return fJ},tick(A=0){fJ+=A-R1+1,g1(),g1()},reset(){fJ=0,mC.length=0,clearTimeout(bC),bC=null},kFastTimer:P1}});var ID=z((xuA,LM)=>{var SJA=j("node:net"),zM=j("node:assert"),MM=$A(),{InvalidArgumentError:fJA,ConnectTimeoutError:hJA}=PA(),KW=_1();function $M(){}var y1,S1;if(global.FinalizationRegistry&&!(process.env.NODE_V8_COVERAGE||process.env.UNDICI_NO_FG))S1=class{constructor(Q){this._maxCachedSessions=Q,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry((B)=>{if(this._sessionCache.size=this._maxCachedSessions){let{value:I}=this._sessionCache.keys().next();this._sessionCache.delete(I)}this._sessionCache.set(Q,B)}};function xJA({allowH2:A,maxCachedSessions:Q,socketPath:B,timeout:I,session:C,...E}){if(Q!=null&&(!Number.isInteger(Q)||Q<0))throw new fJA("maxCachedSessions must be a positive integer or zero");let Y={path:B,...E},J=new S1(Q==null?100:Q);return I=I==null?1e4:I,A=A!=null?A:!1,function({hostname:G,host:D,protocol:Z,port:U,servername:W,localAddress:w,httpSocket:K},X){let V;if(Z==="https:"){if(!y1)y1=j("node:tls");W=W||Y.servername||MM.getServerName(D)||null;let N=W||G;zM(N);let L=C||J.get(N)||null;U=U||443,V=y1.connect({highWaterMark:16384,...Y,servername:W,session:L,localAddress:w,ALPNProtocols:A?["http/1.1","h2"]:["http/1.1"],socket:K,port:U,host:G}),V.on("session",function(R){J.set(N,R)})}else zM(!K,"httpSocket can only be sent on TLS update"),U=U||80,V=SJA.connect({highWaterMark:65536,...Y,localAddress:w,port:U,host:G});if(Y.keepAlive==null||Y.keepAlive){let N=Y.keepAliveInitialDelay===void 0?60000:Y.keepAliveInitialDelay;V.setKeepAlive(!0,N)}let M=vJA(new WeakRef(V),{timeout:I,hostname:G,port:U});return V.setNoDelay(!0).once(Z==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(M),X){let N=X;X=null,N(null,this)}}).on("error",function(N){if(queueMicrotask(M),X){let L=X;X=null,L(N)}}),V}}var vJA=process.platform==="win32"?(A,Q)=>{if(!Q.timeout)return $M;let B=null,I=null,C=KW.setFastTimeout(()=>{B=setImmediate(()=>{I=setImmediate(()=>HM(A.deref(),Q))})},Q.timeout);return()=>{KW.clearFastTimeout(C),clearImmediate(B),clearImmediate(I)}}:(A,Q)=>{if(!Q.timeout)return $M;let B=null,I=KW.setFastTimeout(()=>{B=setImmediate(()=>{HM(A.deref(),Q)})},Q.timeout);return()=>{KW.clearFastTimeout(I),clearImmediate(B)}};function HM(A,Q){if(A==null)return;let B="Connect Timeout Error";if(Array.isArray(A.autoSelectFamilyAttemptedAddresses))B+=` (attempted addresses: ${A.autoSelectFamilyAttemptedAddresses.join(", ")},`;else B+=` (attempted address: ${Q.hostname}:${Q.port},`;B+=` timeout: ${Q.timeout}ms)`,MM.destroy(A,new hJA(B))}LM.exports=xJA});var RM=z((NM)=>{Object.defineProperty(NM,"__esModule",{value:!0});NM.enumToMap=void 0;function bJA(A){let Q={};return Object.keys(A).forEach((B)=>{let I=A[B];if(typeof I==="number")Q[B]=I}),Q}NM.enumToMap=bJA});var cM=z((yM)=>{Object.defineProperty(yM,"__esModule",{value:!0});yM.SPECIAL_HEADERS=yM.HEADER_STATE=yM.MINOR=yM.MAJOR=yM.CONNECTION_TOKEN_CHARS=yM.HEADER_CHARS=yM.TOKEN=yM.STRICT_TOKEN=yM.HEX=yM.URL_CHAR=yM.STRICT_URL_CHAR=yM.USERINFO_CHARS=yM.MARK=yM.ALPHANUM=yM.NUM=yM.HEX_MAP=yM.NUM_MAP=yM.ALPHA=yM.FINISH=yM.H_METHOD_MAP=yM.METHOD_MAP=yM.METHODS_RTSP=yM.METHODS_ICE=yM.METHODS_HTTP=yM.METHODS=yM.LENIENT_FLAGS=yM.FLAGS=yM.TYPE=yM.ERROR=void 0;var mJA=RM(),dJA;(function(A){A[A.OK=0]="OK",A[A.INTERNAL=1]="INTERNAL",A[A.STRICT=2]="STRICT",A[A.LF_EXPECTED=3]="LF_EXPECTED",A[A.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",A[A.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",A[A.INVALID_METHOD=6]="INVALID_METHOD",A[A.INVALID_URL=7]="INVALID_URL",A[A.INVALID_CONSTANT=8]="INVALID_CONSTANT",A[A.INVALID_VERSION=9]="INVALID_VERSION",A[A.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",A[A.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",A[A.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",A[A.INVALID_STATUS=13]="INVALID_STATUS",A[A.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",A[A.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",A[A.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",A[A.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",A[A.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",A[A.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",A[A.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",A[A.PAUSED=21]="PAUSED",A[A.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",A[A.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",A[A.USER=24]="USER"})(dJA=yM.ERROR||(yM.ERROR={}));var cJA;(function(A){A[A.BOTH=0]="BOTH",A[A.REQUEST=1]="REQUEST",A[A.RESPONSE=2]="RESPONSE"})(cJA=yM.TYPE||(yM.TYPE={}));var uJA;(function(A){A[A.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",A[A.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",A[A.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",A[A.CHUNKED=8]="CHUNKED",A[A.UPGRADE=16]="UPGRADE",A[A.CONTENT_LENGTH=32]="CONTENT_LENGTH",A[A.SKIPBODY=64]="SKIPBODY",A[A.TRAILING=128]="TRAILING",A[A.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(uJA=yM.FLAGS||(yM.FLAGS={}));var lJA;(function(A){A[A.HEADERS=1]="HEADERS",A[A.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",A[A.KEEP_ALIVE=4]="KEEP_ALIVE"})(lJA=yM.LENIENT_FLAGS||(yM.LENIENT_FLAGS={}));var e;(function(A){A[A.DELETE=0]="DELETE",A[A.GET=1]="GET",A[A.HEAD=2]="HEAD",A[A.POST=3]="POST",A[A.PUT=4]="PUT",A[A.CONNECT=5]="CONNECT",A[A.OPTIONS=6]="OPTIONS",A[A.TRACE=7]="TRACE",A[A.COPY=8]="COPY",A[A.LOCK=9]="LOCK",A[A.MKCOL=10]="MKCOL",A[A.MOVE=11]="MOVE",A[A.PROPFIND=12]="PROPFIND",A[A.PROPPATCH=13]="PROPPATCH",A[A.SEARCH=14]="SEARCH",A[A.UNLOCK=15]="UNLOCK",A[A.BIND=16]="BIND",A[A.REBIND=17]="REBIND",A[A.UNBIND=18]="UNBIND",A[A.ACL=19]="ACL",A[A.REPORT=20]="REPORT",A[A.MKACTIVITY=21]="MKACTIVITY",A[A.CHECKOUT=22]="CHECKOUT",A[A.MERGE=23]="MERGE",A[A["M-SEARCH"]=24]="M-SEARCH",A[A.NOTIFY=25]="NOTIFY",A[A.SUBSCRIBE=26]="SUBSCRIBE",A[A.UNSUBSCRIBE=27]="UNSUBSCRIBE",A[A.PATCH=28]="PATCH",A[A.PURGE=29]="PURGE",A[A.MKCALENDAR=30]="MKCALENDAR",A[A.LINK=31]="LINK",A[A.UNLINK=32]="UNLINK",A[A.SOURCE=33]="SOURCE",A[A.PRI=34]="PRI",A[A.DESCRIBE=35]="DESCRIBE",A[A.ANNOUNCE=36]="ANNOUNCE",A[A.SETUP=37]="SETUP",A[A.PLAY=38]="PLAY",A[A.PAUSE=39]="PAUSE",A[A.TEARDOWN=40]="TEARDOWN",A[A.GET_PARAMETER=41]="GET_PARAMETER",A[A.SET_PARAMETER=42]="SET_PARAMETER",A[A.REDIRECT=43]="REDIRECT",A[A.RECORD=44]="RECORD",A[A.FLUSH=45]="FLUSH"})(e=yM.METHODS||(yM.METHODS={}));yM.METHODS_HTTP=[e.DELETE,e.GET,e.HEAD,e.POST,e.PUT,e.CONNECT,e.OPTIONS,e.TRACE,e.COPY,e.LOCK,e.MKCOL,e.MOVE,e.PROPFIND,e.PROPPATCH,e.SEARCH,e.UNLOCK,e.BIND,e.REBIND,e.UNBIND,e.ACL,e.REPORT,e.MKACTIVITY,e.CHECKOUT,e.MERGE,e["M-SEARCH"],e.NOTIFY,e.SUBSCRIBE,e.UNSUBSCRIBE,e.PATCH,e.PURGE,e.MKCALENDAR,e.LINK,e.UNLINK,e.PRI,e.SOURCE];yM.METHODS_ICE=[e.SOURCE];yM.METHODS_RTSP=[e.OPTIONS,e.DESCRIBE,e.ANNOUNCE,e.SETUP,e.PLAY,e.PAUSE,e.TEARDOWN,e.GET_PARAMETER,e.SET_PARAMETER,e.REDIRECT,e.RECORD,e.FLUSH,e.GET,e.POST];yM.METHOD_MAP=mJA.enumToMap(e);yM.H_METHOD_MAP={};Object.keys(yM.METHOD_MAP).forEach((A)=>{if(/^H/.test(A))yM.H_METHOD_MAP[A]=yM.METHOD_MAP[A]});var pJA;(function(A){A[A.SAFE=0]="SAFE",A[A.SAFE_WITH_CB=1]="SAFE_WITH_CB",A[A.UNSAFE=2]="UNSAFE"})(pJA=yM.FINISH||(yM.FINISH={}));yM.ALPHA=[];for(let A=65;A<=90;A++)yM.ALPHA.push(String.fromCharCode(A)),yM.ALPHA.push(String.fromCharCode(A+32));yM.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};yM.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};yM.NUM=["0","1","2","3","4","5","6","7","8","9"];yM.ALPHANUM=yM.ALPHA.concat(yM.NUM);yM.MARK=["-","_",".","!","~","*","'","(",")"];yM.USERINFO_CHARS=yM.ALPHANUM.concat(yM.MARK).concat(["%",";",":","&","=","+","$",","]);yM.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(yM.ALPHANUM);yM.URL_CHAR=yM.STRICT_URL_CHAR.concat(["\t","\f"]);for(let A=128;A<=255;A++)yM.URL_CHAR.push(A);yM.HEX=yM.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);yM.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(yM.ALPHANUM);yM.TOKEN=yM.STRICT_TOKEN.concat([" "]);yM.HEADER_CHARS=["\t"];for(let A=32;A<=255;A++)if(A!==127)yM.HEADER_CHARS.push(A);yM.CONNECTION_TOKEN_CHARS=yM.HEADER_CHARS.filter((A)=>A!==44);yM.MAJOR=yM.NUM_MAP;yM.MINOR=yM.MAJOR;var hJ;(function(A){A[A.GENERAL=0]="GENERAL",A[A.CONNECTION=1]="CONNECTION",A[A.CONTENT_LENGTH=2]="CONTENT_LENGTH",A[A.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",A[A.UPGRADE=4]="UPGRADE",A[A.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",A[A.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",A[A.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",A[A.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(hJ=yM.HEADER_STATE||(yM.HEADER_STATE={}));yM.SPECIAL_HEADERS={connection:hJ.CONNECTION,"content-length":hJ.CONTENT_LENGTH,"proxy-connection":hJ.CONNECTION,"transfer-encoding":hJ.TRANSFER_ENCODING,upgrade:hJ.UPGRADE}});var v1=z((muA,uM)=>{var{Buffer:QFA}=j("node:buffer");uM.exports=QFA.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB9ysPC0GQMQ8LQdcxDwtBoi0PC0HUJw8LQeArDwtBnywPC0HrMQ8LQdUfDwtByjEPC0HeJQ8LQdQeDwtB9BwPC0GnMg8LQbEdDwtBoB0PC0G5MQ8LQbwwDwtBkiEPC0GzJg8LQeksDwtBrB4PC0HUKw8LQfcmDwtBgCYPC0GwIQ8LQf4eDwtBjSMPC0GJLQ8LQfciDwtBoDEPC0GuHw8LQcYlDwtB6B4PC0GTIg8LQcIvDwtBwx0PC0GLLA8LQeEdDwtBjS8PC0HqIQ8LQbQtDwtB0i8PC0HfMg8LQdIyDwtB8DAPC0GpIg8LQfkjDwtBmR4PC0G1LA8LQZswDwtBkjIPC0G2Kw8LQcIiDwtB+DIPC0GeJQ8LQdAiDwtBuh4PC0GBHg8LAAtB1iEhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCz4BAn8CQCAAKAI4IgNFDQAgAygCBCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBxhE2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCCCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9go2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCDCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB7Ro2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCECIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBlRA2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCFCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBqhs2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCGCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB7RM2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCKCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9gg2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCHCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBwhk2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCICIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBlBQ2AhBBGCEECyAEC1kBAn8CQCAALQAoQQFGDQAgAC8BMiIBQeQAa0HkAEkNACABQcwBRg0AIAFBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhAiAAQYgEcUGABEYNACAAQShxRSECCyACC4wBAQJ/AkACQAJAIAAtACpFDQAgAC0AK0UNACAALwEwIgFBAnFFDQEMAgsgAC8BMCIBQQFxRQ0BC0EBIQIgAC0AKEEBRg0AIAAvATIiAEHkAGtB5ABJDQAgAEHMAUYNACAAQbACRg0AIAFBwABxDQBBACECIAFBiARxQYAERg0AIAFBKHFBAEchAgsgAgtXACAAQRhqQgA3AwAgAEIANwMAIABBOGpCADcDACAAQTBqQgA3AwAgAEEoakIANwMAIABBIGpCADcDACAAQRBqQgA3AwAgAEEIakIANwMAIABB3QE2AhwLBgAgABAyC5otAQt/IwBBEGsiCiQAQaTQACgCACIJRQRAQeTTACgCACIFRQRAQfDTAEJ/NwIAQejTAEKAgISAgIDAADcCAEHk0wAgCkEIakFwcUHYqtWqBXMiBTYCAEH40wBBADYCAEHI0wBBADYCAAtBzNMAQYDUBDYCAEGc0ABBgNQENgIAQbDQACAFNgIAQazQAEF/NgIAQdDTAEGArAM2AgADQCABQcjQAGogAUG80ABqIgI2AgAgAiABQbTQAGoiAzYCACABQcDQAGogAzYCACABQdDQAGogAUHE0ABqIgM2AgAgAyACNgIAIAFB2NAAaiABQczQAGoiAjYCACACIAM2AgAgAUHU0ABqIAI2AgAgAUEgaiIBQYACRw0AC0GM1ARBwasDNgIAQajQAEH00wAoAgA2AgBBmNAAQcCrAzYCAEGk0ABBiNQENgIAQcz/B0E4NgIAQYjUBCEJCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFNBEBBjNAAKAIAIgZBECAAQRNqQXBxIABBC0kbIgRBA3YiAHYiAUEDcQRAAkAgAUEBcSAAckEBcyICQQN0IgBBtNAAaiIBIABBvNAAaigCACIAKAIIIgNGBEBBjNAAIAZBfiACd3E2AgAMAQsgASADNgIIIAMgATYCDAsgAEEIaiEBIAAgAkEDdCICQQNyNgIEIAAgAmoiACAAKAIEQQFyNgIEDBELQZTQACgCACIIIARPDQEgAQRAAkBBAiAAdCICQQAgAmtyIAEgAHRxaCIAQQN0IgJBtNAAaiIBIAJBvNAAaigCACICKAIIIgNGBEBBjNAAIAZBfiAAd3EiBjYCAAwBCyABIAM2AgggAyABNgIMCyACIARBA3I2AgQgAEEDdCIAIARrIQUgACACaiAFNgIAIAIgBGoiBCAFQQFyNgIEIAgEQCAIQXhxQbTQAGohAEGg0AAoAgAhAwJ/QQEgCEEDdnQiASAGcUUEQEGM0AAgASAGcjYCACAADAELIAAoAggLIgEgAzYCDCAAIAM2AgggAyAANgIMIAMgATYCCAsgAkEIaiEBQaDQACAENgIAQZTQACAFNgIADBELQZDQACgCACILRQ0BIAtoQQJ0QbzSAGooAgAiACgCBEF4cSAEayEFIAAhAgNAAkAgAigCECIBRQRAIAJBFGooAgAiAUUNAQsgASgCBEF4cSAEayIDIAVJIQIgAyAFIAIbIQUgASAAIAIbIQAgASECDAELCyAAKAIYIQkgACgCDCIDIABHBEBBnNAAKAIAGiADIAAoAggiATYCCCABIAM2AgwMEAsgAEEUaiICKAIAIgFFBEAgACgCECIBRQ0DIABBEGohAgsDQCACIQcgASIDQRRqIgIoAgAiAQ0AIANBEGohAiADKAIQIgENAAsgB0EANgIADA8LQX8hBCAAQb9/Sw0AIABBE2oiAUFwcSEEQZDQACgCACIIRQ0AQQAgBGshBQJAAkACQAJ/QQAgBEGAAkkNABpBHyAEQf///wdLDQAaIARBJiABQQh2ZyIAa3ZBAXEgAEEBdGtBPmoLIgZBAnRBvNIAaigCACICRQRAQQAhAUEAIQMMAQtBACEBIARBGSAGQQF2a0EAIAZBH0cbdCEAQQAhAwNAAkAgAigCBEF4cSAEayIHIAVPDQAgAiEDIAciBQ0AQQAhBSACIQEMAwsgASACQRRqKAIAIgcgByACIABBHXZBBHFqQRBqKAIAIgJGGyABIAcbIQEgAEEBdCEAIAINAAsLIAEgA3JFBEBBACEDQQIgBnQiAEEAIABrciAIcSIARQ0DIABoQQJ0QbzSAGooAgAhAQsgAUUNAQsDQCABKAIEQXhxIARrIgIgBUkhACACIAUgABshBSABIAMgABshAyABKAIQIgAEfyAABSABQRRqKAIACyIBDQALCyADRQ0AIAVBlNAAKAIAIARrTw0AIAMoAhghByADIAMoAgwiAEcEQEGc0AAoAgAaIAAgAygCCCIBNgIIIAEgADYCDAwOCyADQRRqIgIoAgAiAUUEQCADKAIQIgFFDQMgA0EQaiECCwNAIAIhBiABIgBBFGoiAigCACIBDQAgAEEQaiECIAAoAhAiAQ0ACyAGQQA2AgAMDQtBlNAAKAIAIgMgBE8EQEGg0AAoAgAhAQJAIAMgBGsiAkEQTwRAIAEgBGoiACACQQFyNgIEIAEgA2ogAjYCACABIARBA3I2AgQMAQsgASADQQNyNgIEIAEgA2oiACAAKAIEQQFyNgIEQQAhAEEAIQILQZTQACACNgIAQaDQACAANgIAIAFBCGohAQwPC0GY0AAoAgAiAyAESwRAIAQgCWoiACADIARrIgFBAXI2AgRBpNAAIAA2AgBBmNAAIAE2AgAgCSAEQQNyNgIEIAlBCGohAQwPC0EAIQEgBAJ/QeTTACgCAARAQezTACgCAAwBC0Hw0wBCfzcCAEHo0wBCgICEgICAwAA3AgBB5NMAIApBDGpBcHFB2KrVqgVzNgIAQfjTAEEANgIAQcjTAEEANgIAQYCABAsiACAEQccAaiIFaiIGQQAgAGsiB3EiAk8EQEH80wBBMDYCAAwPCwJAQcTTACgCACIBRQ0AQbzTACgCACIIIAJqIQAgACABTSAAIAhLcQ0AQQAhAUH80wBBMDYCAAwPC0HI0wAtAABBBHENBAJAAkAgCQRAQczTACEBA0AgASgCACIAIAlNBEAgACABKAIEaiAJSw0DCyABKAIIIgENAAsLQQAQMyIAQX9GDQUgAiEGQejTACgCACIBQQFrIgMgAHEEQCACIABrIAAgA2pBACABa3FqIQYLIAQgBk8NBSAGQf7///8HSw0FQcTTACgCACIDBEBBvNMAKAIAIgcgBmohASABIAdNDQYgASADSw0GCyAGEDMiASAARw0BDAcLIAYgA2sgB3EiBkH+////B0sNBCAGEDMhACAAIAEoAgAgASgCBGpGDQMgACEBCwJAIAYgBEHIAGpPDQAgAUF/Rg0AQezTACgCACIAIAUgBmtqQQAgAGtxIgBB/v///wdLBEAgASEADAcLIAAQM0F/RwRAIAAgBmohBiABIQAMBwtBACAGaxAzGgwECyABIgBBf0cNBQwDC0EAIQMMDAtBACEADAoLIABBf0cNAgtByNMAQcjTACgCAEEEcjYCAAsgAkH+////B0sNASACEDMhAEEAEDMhASAAQX9GDQEgAUF/Rg0BIAAgAU8NASABIABrIgYgBEE4ak0NAQtBvNMAQbzTACgCACAGaiIBNgIAQcDTACgCACABSQRAQcDTACABNgIACwJAAkACQEGk0AAoAgAiAgRAQczTACEBA0AgACABKAIAIgMgASgCBCIFakYNAiABKAIIIgENAAsMAgtBnNAAKAIAIgFBAEcgACABT3FFBEBBnNAAIAA2AgALQQAhAUHQ0wAgBjYCAEHM0wAgADYCAEGs0ABBfzYCAEGw0ABB5NMAKAIANgIAQdjTAEEANgIAA0AgAUHI0ABqIAFBvNAAaiICNgIAIAIgAUG00ABqIgM2AgAgAUHA0ABqIAM2AgAgAUHQ0ABqIAFBxNAAaiIDNgIAIAMgAjYCACABQdjQAGogAUHM0ABqIgI2AgAgAiADNgIAIAFB1NAAaiACNgIAIAFBIGoiAUGAAkcNAAtBeCAAa0EPcSIBIABqIgIgBkE4ayIDIAFrIgFBAXI2AgRBqNAAQfTTACgCADYCAEGY0AAgATYCAEGk0AAgAjYCACAAIANqQTg2AgQMAgsgACACTQ0AIAIgA0kNACABKAIMQQhxDQBBeCACa0EPcSIAIAJqIgNBmNAAKAIAIAZqIgcgAGsiAEEBcjYCBCABIAUgBmo2AgRBqNAAQfTTACgCADYCAEGY0AAgADYCAEGk0AAgAzYCACACIAdqQTg2AgQMAQsgAEGc0AAoAgBJBEBBnNAAIAA2AgALIAAgBmohA0HM0wAhAQJAAkACQANAIAMgASgCAEcEQCABKAIIIgENAQwCCwsgAS0ADEEIcUUNAQtBzNMAIQEDQCABKAIAIgMgAk0EQCADIAEoAgRqIgUgAksNAwsgASgCCCEBDAALAAsgASAANgIAIAEgASgCBCAGajYCBCAAQXggAGtBD3FqIgkgBEEDcjYCBCADQXggA2tBD3FqIgYgBCAJaiIEayEBIAIgBkYEQEGk0AAgBDYCAEGY0ABBmNAAKAIAIAFqIgA2AgAgBCAAQQFyNgIEDAgLQaDQACgCACAGRgRAQaDQACAENgIAQZTQAEGU0AAoAgAgAWoiADYCACAEIABBAXI2AgQgACAEaiAANgIADAgLIAYoAgQiBUEDcUEBRw0GIAVBeHEhCCAFQf8BTQRAIAVBA3YhAyAGKAIIIgAgBigCDCICRgRAQYzQAEGM0AAoAgBBfiADd3E2AgAMBwsgAiAANgIIIAAgAjYCDAwGCyAGKAIYIQcgBiAGKAIMIgBHBEAgACAGKAIIIgI2AgggAiAANgIMDAULIAZBFGoiAigCACIFRQRAIAYoAhAiBUUNBCAGQRBqIQILA0AgAiEDIAUiAEEUaiICKAIAIgUNACAAQRBqIQIgACgCECIFDQALIANBADYCAAwEC0F4IABrQQ9xIgEgAGoiByAGQThrIgMgAWsiAUEBcjYCBCAAIANqQTg2AgQgAiAFQTcgBWtBD3FqQT9rIgMgAyACQRBqSRsiA0EjNgIEQajQAEH00wAoAgA2AgBBmNAAIAE2AgBBpNAAIAc2AgAgA0EQakHU0wApAgA3AgAgA0HM0wApAgA3AghB1NMAIANBCGo2AgBB0NMAIAY2AgBBzNMAIAA2AgBB2NMAQQA2AgAgA0EkaiEBA0AgAUEHNgIAIAUgAUEEaiIBSw0ACyACIANGDQAgAyADKAIEQX5xNgIEIAMgAyACayIFNgIAIAIgBUEBcjYCBCAFQf8BTQRAIAVBeHFBtNAAaiEAAn9BjNAAKAIAIgFBASAFQQN2dCIDcUUEQEGM0AAgASADcjYCACAADAELIAAoAggLIgEgAjYCDCAAIAI2AgggAiAANgIMIAIgATYCCAwBC0EfIQEgBUH///8HTQRAIAVBJiAFQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAQsgAiABNgIcIAJCADcCECABQQJ0QbzSAGohAEGQ0AAoAgAiA0EBIAF0IgZxRQRAIAAgAjYCAEGQ0AAgAyAGcjYCACACIAA2AhggAiACNgIIIAIgAjYCDAwBCyAFQRkgAUEBdmtBACABQR9HG3QhASAAKAIAIQMCQANAIAMiACgCBEF4cSAFRg0BIAFBHXYhAyABQQF0IQEgACADQQRxakEQaiIGKAIAIgMNAAsgBiACNgIAIAIgADYCGCACIAI2AgwgAiACNgIIDAELIAAoAggiASACNgIMIAAgAjYCCCACQQA2AhggAiAANgIMIAIgATYCCAtBmNAAKAIAIgEgBE0NAEGk0AAoAgAiACAEaiICIAEgBGsiAUEBcjYCBEGY0AAgATYCAEGk0AAgAjYCACAAIARBA3I2AgQgAEEIaiEBDAgLQQAhAUH80wBBMDYCAAwHC0EAIQALIAdFDQACQCAGKAIcIgJBAnRBvNIAaiIDKAIAIAZGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAdBEEEUIAcoAhAgBkYbaiAANgIAIABFDQELIAAgBzYCGCAGKAIQIgIEQCAAIAI2AhAgAiAANgIYCyAGQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAIaiEBIAYgCGoiBigCBCEFCyAGIAVBfnE2AgQgASAEaiABNgIAIAQgAUEBcjYCBCABQf8BTQRAIAFBeHFBtNAAaiEAAn9BjNAAKAIAIgJBASABQQN2dCIBcUUEQEGM0AAgASACcjYCACAADAELIAAoAggLIgEgBDYCDCAAIAQ2AgggBCAANgIMIAQgATYCCAwBC0EfIQUgAUH///8HTQRAIAFBJiABQQh2ZyIAa3ZBAXEgAEEBdGtBPmohBQsgBCAFNgIcIARCADcCECAFQQJ0QbzSAGohAEGQ0AAoAgAiAkEBIAV0IgNxRQRAIAAgBDYCAEGQ0AAgAiADcjYCACAEIAA2AhggBCAENgIIIAQgBDYCDAwBCyABQRkgBUEBdmtBACAFQR9HG3QhBSAAKAIAIQACQANAIAAiAigCBEF4cSABRg0BIAVBHXYhACAFQQF0IQUgAiAAQQRxakEQaiIDKAIAIgANAAsgAyAENgIAIAQgAjYCGCAEIAQ2AgwgBCAENgIIDAELIAIoAggiACAENgIMIAIgBDYCCCAEQQA2AhggBCACNgIMIAQgADYCCAsgCUEIaiEBDAILAkAgB0UNAAJAIAMoAhwiAUECdEG80gBqIgIoAgAgA0YEQCACIAA2AgAgAA0BQZDQACAIQX4gAXdxIgg2AgAMAgsgB0EQQRQgBygCECADRhtqIAA2AgAgAEUNAQsgACAHNgIYIAMoAhAiAQRAIAAgATYCECABIAA2AhgLIANBFGooAgAiAUUNACAAQRRqIAE2AgAgASAANgIYCwJAIAVBD00EQCADIAQgBWoiAEEDcjYCBCAAIANqIgAgACgCBEEBcjYCBAwBCyADIARqIgIgBUEBcjYCBCADIARBA3I2AgQgAiAFaiAFNgIAIAVB/wFNBEAgBUF4cUG00ABqIQACf0GM0AAoAgAiAUEBIAVBA3Z0IgVxRQRAQYzQACABIAVyNgIAIAAMAQsgACgCCAsiASACNgIMIAAgAjYCCCACIAA2AgwgAiABNgIIDAELQR8hASAFQf///wdNBEAgBUEmIAVBCHZnIgBrdkEBcSAAQQF0a0E+aiEBCyACIAE2AhwgAkIANwIQIAFBAnRBvNIAaiEAQQEgAXQiBCAIcUUEQCAAIAI2AgBBkNAAIAQgCHI2AgAgAiAANgIYIAIgAjYCCCACIAI2AgwMAQsgBUEZIAFBAXZrQQAgAUEfRxt0IQEgACgCACEEAkADQCAEIgAoAgRBeHEgBUYNASABQR12IQQgAUEBdCEBIAAgBEEEcWpBEGoiBigCACIEDQALIAYgAjYCACACIAA2AhggAiACNgIMIAIgAjYCCAwBCyAAKAIIIgEgAjYCDCAAIAI2AgggAkEANgIYIAIgADYCDCACIAE2AggLIANBCGohAQwBCwJAIAlFDQACQCAAKAIcIgFBAnRBvNIAaiICKAIAIABGBEAgAiADNgIAIAMNAUGQ0AAgC0F+IAF3cTYCAAwCCyAJQRBBFCAJKAIQIABGG2ogAzYCACADRQ0BCyADIAk2AhggACgCECIBBEAgAyABNgIQIAEgAzYCGAsgAEEUaigCACIBRQ0AIANBFGogATYCACABIAM2AhgLAkAgBUEPTQRAIAAgBCAFaiIBQQNyNgIEIAAgAWoiASABKAIEQQFyNgIEDAELIAAgBGoiByAFQQFyNgIEIAAgBEEDcjYCBCAFIAdqIAU2AgAgCARAIAhBeHFBtNAAaiEBQaDQACgCACEDAn9BASAIQQN2dCICIAZxRQRAQYzQACACIAZyNgIAIAEMAQsgASgCCAsiAiADNgIMIAEgAzYCCCADIAE2AgwgAyACNgIIC0Gg0AAgBzYCAEGU0AAgBTYCAAsgAEEIaiEBCyAKQRBqJAAgAQtDACAARQRAPwBBEHQPCwJAIABB//8DcQ0AIABBAEgNACAAQRB2QAAiAEF/RgRAQfzTAEEwNgIAQX8PCyAAQRB0DwsACwvcPyIAQYAICwkBAAAAAgAAAAMAQZQICwUEAAAABQBBpAgLCQYAAAAHAAAACABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv","base64")});var pM=z((duA,lM)=>{var{Buffer:BFA}=j("node:buffer");lM.exports=BFA.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVuaWVudF9oZWFkZXJzACEhbGxodHRwX3NldF9sZW5pZW50X2NodW5rZWRfbGVuZ3RoACIdbGxodHRwX3NldF9sZW5pZW50X2tlZXBfYWxpdmUAIyRsbGh0dHBfc2V0X2xlbmllbnRfdHJhbnNmZXJfZW5jb2RpbmcAJBhsbGh0dHBfbWVzc2FnZV9uZWVkc19lb2YALgkXAQBBAQsRAQIDBAUKBgcrLSwqKSglJyYK77MCLBYAQYjQACgCAARAAAtBiNAAQQE2AgALFAAgABAwIAAgAjYCOCAAIAE6ACgLFAAgACAALwEyIAAtAC4gABAvEAALHgEBf0HAABAyIgEQMCABQYAINgI4IAEgADoAKCABC48MAQd/AkAgAEUNACAAQQhrIgEgAEEEaygCACIAQXhxIgRqIQUCQCAAQQFxDQAgAEEDcUUNASABIAEoAgAiAGsiAUGc0AAoAgBJDQEgACAEaiEEAkACQEGg0AAoAgAgAUcEQCAAQf8BTQRAIABBA3YhAyABKAIIIgAgASgCDCICRgRAQYzQAEGM0AAoAgBBfiADd3E2AgAMBQsgAiAANgIIIAAgAjYCDAwECyABKAIYIQYgASABKAIMIgBHBEAgACABKAIIIgI2AgggAiAANgIMDAMLIAFBFGoiAygCACICRQRAIAEoAhAiAkUNAiABQRBqIQMLA0AgAyEHIAIiAEEUaiIDKAIAIgINACAAQRBqIQMgACgCECICDQALIAdBADYCAAwCCyAFKAIEIgBBA3FBA0cNAiAFIABBfnE2AgRBlNAAIAQ2AgAgBSAENgIAIAEgBEEBcjYCBAwDC0EAIQALIAZFDQACQCABKAIcIgJBAnRBvNIAaiIDKAIAIAFGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgAUYbaiAANgIAIABFDQELIAAgBjYCGCABKAIQIgIEQCAAIAI2AhAgAiAANgIYCyABQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAFTw0AIAUoAgQiAEEBcUUNAAJAAkACQAJAIABBAnFFBEBBpNAAKAIAIAVGBEBBpNAAIAE2AgBBmNAAQZjQACgCACAEaiIANgIAIAEgAEEBcjYCBCABQaDQACgCAEcNBkGU0ABBADYCAEGg0ABBADYCAAwGC0Gg0AAoAgAgBUYEQEGg0AAgATYCAEGU0ABBlNAAKAIAIARqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAAwGCyAAQXhxIARqIQQgAEH/AU0EQCAAQQN2IQMgBSgCCCIAIAUoAgwiAkYEQEGM0ABBjNAAKAIAQX4gA3dxNgIADAULIAIgADYCCCAAIAI2AgwMBAsgBSgCGCEGIAUgBSgCDCIARwRAQZzQACgCABogACAFKAIIIgI2AgggAiAANgIMDAMLIAVBFGoiAygCACICRQRAIAUoAhAiAkUNAiAFQRBqIQMLA0AgAyEHIAIiAEEUaiIDKAIAIgINACAAQRBqIQMgACgCECICDQALIAdBADYCAAwCCyAFIABBfnE2AgQgASAEaiAENgIAIAEgBEEBcjYCBAwDC0EAIQALIAZFDQACQCAFKAIcIgJBAnRBvNIAaiIDKAIAIAVGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgBUYbaiAANgIAIABFDQELIAAgBjYCGCAFKAIQIgIEQCAAIAI2AhAgAiAANgIYCyAFQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAEaiAENgIAIAEgBEEBcjYCBCABQaDQACgCAEcNAEGU0AAgBDYCAAwBCyAEQf8BTQRAIARBeHFBtNAAaiEAAn9BjNAAKAIAIgJBASAEQQN2dCIDcUUEQEGM0AAgAiADcjYCACAADAELIAAoAggLIgIgATYCDCAAIAE2AgggASAANgIMIAEgAjYCCAwBC0EfIQIgBEH///8HTQRAIARBJiAEQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAgsgASACNgIcIAFCADcCECACQQJ0QbzSAGohAAJAQZDQACgCACIDQQEgAnQiB3FFBEAgACABNgIAQZDQACADIAdyNgIAIAEgADYCGCABIAE2AgggASABNgIMDAELIARBGSACQQF2a0EAIAJBH0cbdCECIAAoAgAhAAJAA0AgACIDKAIEQXhxIARGDQEgAkEddiEAIAJBAXQhAiADIABBBHFqQRBqIgcoAgAiAA0ACyAHIAE2AgAgASADNgIYIAEgATYCDCABIAE2AggMAQsgAygCCCIAIAE2AgwgAyABNgIIIAFBADYCGCABIAM2AgwgASAANgIIC0Gs0ABBrNAAKAIAQQFrIgBBfyAAGzYCAAsLBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LQAEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABAwIAAgBDYCOCAAIAM6ACggACACOgAtIAAgATYCGAu74gECB38DfiABIAJqIQQCQCAAIgIoAgwiAA0AIAIoAgQEQCACIAE2AgQLIwBBEGsiCCQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAhwiA0EBaw7dAdoBAdkBAgMEBQYHCAkKCwwNDtgBDxDXARES1gETFBUWFxgZGhvgAd8BHB0e1QEfICEiIyQl1AEmJygpKiss0wHSAS0u0QHQAS8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRtsBR0hJSs8BzgFLzQFMzAFNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBywHKAbgByQG5AcgBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgEA3AELQQAMxgELQQ4MxQELQQ0MxAELQQ8MwwELQRAMwgELQRMMwQELQRQMwAELQRUMvwELQRYMvgELQRgMvQELQRkMvAELQRoMuwELQRsMugELQRwMuQELQR0MuAELQQgMtwELQR4MtgELQSAMtQELQR8MtAELQQcMswELQSEMsgELQSIMsQELQSMMsAELQSQMrwELQRIMrgELQREMrQELQSUMrAELQSYMqwELQScMqgELQSgMqQELQcMBDKgBC0EqDKcBC0ErDKYBC0EsDKUBC0EtDKQBC0EuDKMBC0EvDKIBC0HEAQyhAQtBMAygAQtBNAyfAQtBDAyeAQtBMQydAQtBMgycAQtBMwybAQtBOQyaAQtBNQyZAQtBxQEMmAELQQsMlwELQToMlgELQTYMlQELQQoMlAELQTcMkwELQTgMkgELQTwMkQELQTsMkAELQT0MjwELQQkMjgELQSkMjQELQT4MjAELQT8MiwELQcAADIoBC0HBAAyJAQtBwgAMiAELQcMADIcBC0HEAAyGAQtBxQAMhQELQcYADIQBC0EXDIMBC0HHAAyCAQtByAAMgQELQckADIABC0HKAAx/C0HLAAx+C0HNAAx9C0HMAAx8C0HOAAx7C0HPAAx6C0HQAAx5C0HRAAx4C0HSAAx3C0HTAAx2C0HUAAx1C0HWAAx0C0HVAAxzC0EGDHILQdcADHELQQUMcAtB2AAMbwtBBAxuC0HZAAxtC0HaAAxsC0HbAAxrC0HcAAxqC0EDDGkLQd0ADGgLQd4ADGcLQd8ADGYLQeEADGULQeAADGQLQeIADGMLQeMADGILQQIMYQtB5AAMYAtB5QAMXwtB5gAMXgtB5wAMXQtB6AAMXAtB6QAMWwtB6gAMWgtB6wAMWQtB7AAMWAtB7QAMVwtB7gAMVgtB7wAMVQtB8AAMVAtB8QAMUwtB8gAMUgtB8wAMUQtB9AAMUAtB9QAMTwtB9gAMTgtB9wAMTQtB+AAMTAtB+QAMSwtB+gAMSgtB+wAMSQtB/AAMSAtB/QAMRwtB/gAMRgtB/wAMRQtBgAEMRAtBgQEMQwtBggEMQgtBgwEMQQtBhAEMQAtBhQEMPwtBhgEMPgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxBACEDDKIBCyACQeQANgIcIAIgATYCFCACQeMXNgIQIAJBFTYCDEEAIQMMoQELIAJBADYCACAGQQFqIQEgAi0AKSIAQSNrQQtJDQQCQCAAQQZLDQBBASAAdEHKAHFFDQAMBQtBACEDIAJBADYCHCACIAE2AhQgAkH3CTYCECACQQg2AgwMoAELIAJBADYCACAGQQFqIQEgAi0AKUEhRg0DIAJBADYCHCACIAE2AhQgAkGbCjYCECACQQg2AgxBACEDDJ8BCyACQQA2AgALQQAhAyACQQA2AhwgAiABNgIUIAJBkDM2AhAgAkEINgIMDJ0BCyACQQA2AgAgBkEBaiEBIAItAClBI0kNACACQQA2AhwgAiABNgIUIAJB0wk2AhAgAkEINgIMQQAhAwycAQtB0QAhAwyCAQsgAS0AAEEwayIAQf8BcUEKSQRAIAIgADoAKiABQQFqIQFBzwAhAwyCAQsgAigCBCEAIAJBADYCBCACIAAgARAoIgBFDYYBIAJB3gA2AhwgAiABNgIUIAIgADYCDEEAIQMMmgELIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ2GASACQdwANgIcIAIgATYCFCACIAA2AgxBACEDDJkBCyACKAIEIQAgAkEANgIEIAIgACAFECgiAEUEQCAFIQEMhwELIAJB2gA2AhwgAiAFNgIUIAIgADYCDAyYAQtBACEBQQEhAwsgAiADOgArIAVBAWohAwJAAkACQCACLQAtQRBxDQACQAJAAkAgAi0AKg4DAQACBAsgBkUNAwwCCyAADQEMAgsgAUUNAQsgAigCBCEAIAJBADYCBCACIAAgAxAoIgBFBEAgAyEBDAILIAJB2AA2AhwgAiADNgIUIAIgADYCDEEAIQMMmAELIAIoAgQhACACQQA2AgQgAiAAIAMQKCIARQRAIAMhAQyHAQsgAkHZADYCHCACIAM2AhQgAiAANgIMQQAhAwyXAQtBzAAhAwx9CyAAQRVHBEAgAkEANgIcIAIgATYCFCACQZQNNgIQIAJBITYCDEEAIQMMlgELIAJB1wA2AhwgAiABNgIUIAJByRc2AhAgAkEVNgIMQQAhAwyVAQtBACEDIAJBADYCHCACIAE2AhQgAkGAETYCECACQQk2AgwMlAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0AIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMkwELQckAIQMMeQsgAkEANgIcIAIgATYCFCACQcEoNgIQIAJBBzYCDCACQQA2AgBBACEDDJEBCyACKAIEIQBBACEDIAJBADYCBCACIAAgARAlIgBFDQAgAkHSADYCHCACIAE2AhQgAiAANgIMDJABC0HIACEDDHYLIAJBADYCACAFIQELIAJBgBI7ASogAUEBaiEBQQAhAAJAIAIoAjgiA0UNACADKAIwIgNFDQAgAiADEQAAIQALIAANAQtBxwAhAwxzCyAAQRVGBEAgAkHRADYCHCACIAE2AhQgAkHjFzYCECACQRU2AgxBACEDDIwBC0EAIQMgAkEANgIcIAIgATYCFCACQbkNNgIQIAJBGjYCDAyLAQtBACEDIAJBADYCHCACIAE2AhQgAkGgGTYCECACQR42AgwMigELIAEtAABBOkYEQCACKAIEIQBBACEDIAJBADYCBCACIAAgARApIgBFDQEgAkHDADYCHCACIAA2AgwgAiABQQFqNgIUDIoBC0EAIQMgAkEANgIcIAIgATYCFCACQbERNgIQIAJBCjYCDAyJAQsgAUEBaiEBQTshAwxvCyACQcMANgIcIAIgADYCDCACIAFBAWo2AhQMhwELQQAhAyACQQA2AhwgAiABNgIUIAJB8A42AhAgAkEcNgIMDIYBCyACIAIvATBBEHI7ATAMZgsCQCACLwEwIgBBCHFFDQAgAi0AKEEBRw0AIAItAC1BCHFFDQMLIAIgAEH3+wNxQYAEcjsBMAwECyABIARHBEACQANAIAEtAABBMGsiAEH/AXFBCk8EQEE1IQMMbgsgAikDICIKQpmz5syZs+bMGVYNASACIApCCn4iCjcDICAKIACtQv8BgyILQn+FVg0BIAIgCiALfDcDICAEIAFBAWoiAUcNAAtBOSEDDIUBCyACKAIEIQBBACEDIAJBADYCBCACIAAgAUEBaiIBECoiAA0MDHcLQTkhAwyDAQsgAi0AMEEgcQ0GQcUBIQMMaQtBACEDIAJBADYCBCACIAEgARAqIgBFDQQgAkE6NgIcIAIgADYCDCACIAFBAWo2AhQMgQELIAItAChBAUcNACACLQAtQQhxRQ0BC0E3IQMMZgsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIABEAgAkE7NgIcIAIgADYCDCACIAFBAWo2AhQMfwsgAUEBaiEBDG4LIAJBCDoALAwECyABQQFqIQEMbQtBACEDIAJBADYCHCACIAE2AhQgAkHkEjYCECACQQQ2AgwMewsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIARQ1sIAJBNzYCHCACIAE2AhQgAiAANgIMDHoLIAIgAi8BMEEgcjsBMAtBMCEDDF8LIAJBNjYCHCACIAE2AhQgAiAANgIMDHcLIABBLEcNASABQQFqIQBBASEBAkACQAJAAkACQCACLQAsQQVrDgQDAQIEAAsgACEBDAQLQQIhAQwBC0EEIQELIAJBAToALCACIAIvATAgAXI7ATAgACEBDAELIAIgAi8BMEEIcjsBMCAAIQELQTkhAwxcCyACQQA6ACwLQTQhAwxaCyABIARGBEBBLSEDDHMLAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0EtIQMMdAsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIARQ0CIAJBLDYCHCACIAE2AhQgAiAANgIMDHMLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABECoiAEUEQCABQQFqIQEMAgsgAkEsNgIcIAIgADYCDCACIAFBAWo2AhQMcgsgAS0AAEENRgRAIAIoAgQhAEEAIQMgAkEANgIEIAIgACABECoiAEUEQCABQQFqIQEMAgsgAkEsNgIcIAIgADYCDCACIAFBAWo2AhQMcgsgAi0ALUEBcQRAQcQBIQMMWQsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIADQEMZQtBLyEDDFcLIAJBLjYCHCACIAE2AhQgAiAANgIMDG8LQQAhAyACQQA2AhwgAiABNgIUIAJB8BQ2AhAgAkEDNgIMDG4LQQEhAwJAAkACQAJAIAItACxBBWsOBAMBAgAECyACIAIvATBBCHI7ATAMAwtBAiEDDAELQQQhAwsgAkEBOgAsIAIgAi8BMCADcjsBMAtBKiEDDFMLQQAhAyACQQA2AhwgAiABNgIUIAJB4Q82AhAgAkEKNgIMDGsLQQEhAwJAAkACQAJAAkACQCACLQAsQQJrDgcFBAQDAQIABAsgAiACLwEwQQhyOwEwDAMLQQIhAwwBC0EEIQMLIAJBAToALCACIAIvATAgA3I7ATALQSshAwxSC0EAIQMgAkEANgIcIAIgATYCFCACQasSNgIQIAJBCzYCDAxqC0EAIQMgAkEANgIcIAIgATYCFCACQf0NNgIQIAJBHTYCDAxpCyABIARHBEADQCABLQAAQSBHDUggBCABQQFqIgFHDQALQSUhAwxpC0ElIQMMaAsgAi0ALUEBcQRAQcMBIQMMTwsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKSIABEAgAkEmNgIcIAIgADYCDCACIAFBAWo2AhQMaAsgAUEBaiEBDFwLIAFBAWohASACLwEwIgBBgAFxBEBBACEAAkAgAigCOCIDRQ0AIAMoAlQiA0UNACACIAMRAAAhAAsgAEUNBiAAQRVHDR8gAkEFNgIcIAIgATYCFCACQfkXNgIQIAJBFTYCDEEAIQMMZwsCQCAAQaAEcUGgBEcNACACLQAtQQJxDQBBACEDIAJBADYCHCACIAE2AhQgAkGWEzYCECACQQQ2AgwMZwsgAgJ/IAIvATBBFHFBFEYEQEEBIAItAChBAUYNARogAi8BMkHlAEYMAQsgAi0AKUEFRgs6AC5BACEAAkAgAigCOCIDRQ0AIAMoAiQiA0UNACACIAMRAAAhAAsCQAJAAkACQAJAIAAOFgIBAAQEBAQEBAQEBAQEBAQEBAQEBAMECyACQQE6AC4LIAIgAi8BMEHAAHI7ATALQSchAwxPCyACQSM2AhwgAiABNgIUIAJBpRY2AhAgAkEVNgIMQQAhAwxnC0EAIQMgAkEANgIcIAIgATYCFCACQdULNgIQIAJBETYCDAxmC0EAIQACQCACKAI4IgNFDQAgAygCLCIDRQ0AIAIgAxEAACEACyAADQELQQ4hAwxLCyAAQRVGBEAgAkECNgIcIAIgATYCFCACQbAYNgIQIAJBFTYCDEEAIQMMZAtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMYwtBACEDIAJBADYCHCACIAE2AhQgAkGqHDYCECACQQ82AgwMYgsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEgCqdqIgEQKyIARQ0AIAJBBTYCHCACIAE2AhQgAiAANgIMDGELQQ8hAwxHC0EAIQMgAkEANgIcIAIgATYCFCACQc0TNgIQIAJBDDYCDAxfC0IBIQoLIAFBAWohAQJAIAIpAyAiC0L//////////w9YBEAgAiALQgSGIAqENwMgDAELQQAhAyACQQA2AhwgAiABNgIUIAJBrQk2AhAgAkEMNgIMDF4LQSQhAwxEC0EAIQMgAkEANgIcIAIgATYCFCACQc0TNgIQIAJBDDYCDAxcCyACKAIEIQBBACEDIAJBADYCBCACIAAgARAsIgBFBEAgAUEBaiEBDFILIAJBFzYCHCACIAA2AgwgAiABQQFqNgIUDFsLIAIoAgQhAEEAIQMgAkEANgIEAkAgAiAAIAEQLCIARQRAIAFBAWohAQwBCyACQRY2AhwgAiAANgIMIAIgAUEBajYCFAxbC0EfIQMMQQtBACEDIAJBADYCHCACIAE2AhQgAkGaDzYCECACQSI2AgwMWQsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQLSIARQRAIAFBAWohAQxQCyACQRQ2AhwgAiAANgIMIAIgAUEBajYCFAxYCyACKAIEIQBBACEDIAJBADYCBAJAIAIgACABEC0iAEUEQCABQQFqIQEMAQsgAkETNgIcIAIgADYCDCACIAFBAWo2AhQMWAtBHiEDDD4LQQAhAyACQQA2AhwgAiABNgIUIAJBxgw2AhAgAkEjNgIMDFYLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABEC0iAEUEQCABQQFqIQEMTgsgAkERNgIcIAIgADYCDCACIAFBAWo2AhQMVQsgAkEQNgIcIAIgATYCFCACIAA2AgwMVAtBACEDIAJBADYCHCACIAE2AhQgAkHGDDYCECACQSM2AgwMUwtBACEDIAJBADYCHCACIAE2AhQgAkHAFTYCECACQQI2AgwMUgsgAigCBCEAQQAhAyACQQA2AgQCQCACIAAgARAtIgBFBEAgAUEBaiEBDAELIAJBDjYCHCACIAA2AgwgAiABQQFqNgIUDFILQRshAww4C0EAIQMgAkEANgIcIAIgATYCFCACQcYMNgIQIAJBIzYCDAxQCyACKAIEIQBBACEDIAJBADYCBAJAIAIgACABECwiAEUEQCABQQFqIQEMAQsgAkENNgIcIAIgADYCDCACIAFBAWo2AhQMUAtBGiEDDDYLQQAhAyACQQA2AhwgAiABNgIUIAJBmg82AhAgAkEiNgIMDE4LIAIoAgQhAEEAIQMgAkEANgIEAkAgAiAAIAEQLCIARQRAIAFBAWohAQwBCyACQQw2AhwgAiAANgIMIAIgAUEBajYCFAxOC0EZIQMMNAtBACEDIAJBADYCHCACIAE2AhQgAkGaDzYCECACQSI2AgwMTAsgAEEVRwRAQQAhAyACQQA2AhwgAiABNgIUIAJBgww2AhAgAkETNgIMDEwLIAJBCjYCHCACIAE2AhQgAkHkFjYCECACQRU2AgxBACEDDEsLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABIAqnaiIBECsiAARAIAJBBzYCHCACIAE2AhQgAiAANgIMDEsLQRMhAwwxCyAAQRVHBEBBACEDIAJBADYCHCACIAE2AhQgAkHaDTYCECACQRQ2AgwMSgsgAkEeNgIcIAIgATYCFCACQfkXNgIQIAJBFTYCDEEAIQMMSQtBACEAAkAgAigCOCIDRQ0AIAMoAiwiA0UNACACIAMRAAAhAAsgAEUNQSAAQRVGBEAgAkEDNgIcIAIgATYCFCACQbAYNgIQIAJBFTYCDEEAIQMMSQtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMSAtBACEDIAJBADYCHCACIAE2AhQgAkHaDTYCECACQRQ2AgwMRwtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMRgsgAkEAOgAvIAItAC1BBHFFDT8LIAJBADoALyACQQE6ADRBACEDDCsLQQAhAyACQQA2AhwgAkHkETYCECACQQc2AgwgAiABQQFqNgIUDEMLAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB3QEhAwxDCwJAAkAgAi0ANEEBRw0AQQAhAAJAIAIoAjgiA0UNACADKAJYIgNFDQAgAiADEQAAIQALIABFDQAgAEEVRw0BIAJB3AE2AhwgAiABNgIUIAJB1RY2AhAgAkEVNgIMQQAhAwxEC0HBASEDDCoLIAJBADYCHCACIAE2AhQgAkHpCzYCECACQR82AgxBACEDDEILAkACQCACLQAoQQFrDgIEAQALQcABIQMMKQtBuQEhAwwoCyACQQI6AC9BACEAAkAgAigCOCIDRQ0AIAMoAgAiA0UNACACIAMRAAAhAAsgAEUEQEHCASEDDCgLIABBFUcEQCACQQA2AhwgAiABNgIUIAJBpAw2AhAgAkEQNgIMQQAhAwxBCyACQdsBNgIcIAIgATYCFCACQfoWNgIQIAJBFTYCDEEAIQMMQAsgASAERgRAQdoBIQMMQAsgAS0AAEHIAEYNASACQQE6ACgLQawBIQMMJQtBvwEhAwwkCyABIARHBEAgAkEQNgIIIAIgATYCBEG+ASEDDCQLQdkBIQMMPAsgASAERgRAQdgBIQMMPAsgAS0AAEHIAEcNBCABQQFqIQFBvQEhAwwiCyABIARGBEBB1wEhAww7CwJAAkAgAS0AAEHFAGsOEAAFBQUFBQUFBQUFBQUFBQEFCyABQQFqIQFBuwEhAwwiCyABQQFqIQFBvAEhAwwhC0HWASEDIAEgBEYNOSACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGD0ABqLQAARw0DIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAw6CyACKAIEIQAgAkIANwMAIAIgACAGQQFqIgEQJyIARQRAQcYBIQMMIQsgAkHVATYCHCACIAE2AhQgAiAANgIMQQAhAww5C0HUASEDIAEgBEYNOCACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGB0ABqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAw5CyACQYEEOwEoIAIoAgQhACACQgA3AwAgAiAAIAZBAWoiARAnIgANAwwCCyACQQA2AgALQQAhAyACQQA2AhwgAiABNgIUIAJB2Bs2AhAgAkEINgIMDDYLQboBIQMMHAsgAkHTATYCHCACIAE2AhQgAiAANgIMQQAhAww0C0EAIQACQCACKAI4IgNFDQAgAygCOCIDRQ0AIAIgAxEAACEACyAARQ0AIABBFUYNASACQQA2AhwgAiABNgIUIAJBzA42AhAgAkEgNgIMQQAhAwwzC0HkACEDDBkLIAJB+AA2AhwgAiABNgIUIAJByhg2AhAgAkEVNgIMQQAhAwwxC0HSASEDIAQgASIARg0wIAQgAWsgAigCACIBaiEFIAAgAWtBBGohBgJAA0AgAC0AACABQfzPAGotAABHDQEgAUEERg0DIAFBAWohASAEIABBAWoiAEcNAAsgAiAFNgIADDELIAJBADYCHCACIAA2AhQgAkGQMzYCECACQQg2AgwgAkEANgIAQQAhAwwwCyABIARHBEAgAkEONgIIIAIgATYCBEG3ASEDDBcLQdEBIQMMLwsgAkEANgIAIAZBAWohAQtBuAEhAwwUCyABIARGBEBB0AEhAwwtCyABLQAAQTBrIgBB/wFxQQpJBEAgAiAAOgAqIAFBAWohAUG2ASEDDBQLIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ0UIAJBzwE2AhwgAiABNgIUIAIgADYCDEEAIQMMLAsgASAERgRAQc4BIQMMLAsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ0VIAJBzQE2AhwgAiABNgIUIAIgADYCDEEAIQMMLAtBtQEhAwwSCyAEIAEiBUYEQEHMASEDDCsLQQAhAEEBIQFBASEGQQAhAwJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAUtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyEDQQAhAUEAIQYMAgtBCSEDQQEhAEEAIQFBACEGDAELQQAhAUEBIQMLIAIgAzoAKyAFQQFqIQMCQAJAIAItAC1BEHENAAJAAkACQCACLQAqDgMBAAIECyAGRQ0DDAILIAANAQwCCyABRQ0BCyACKAIEIQAgAkEANgIEIAIgACADECgiAEUEQCADIQEMAwsgAkHJATYCHCACIAM2AhQgAiAANgIMQQAhAwwtCyACKAIEIQAgAkEANgIEIAIgACADECgiAEUEQCADIQEMGAsgAkHKATYCHCACIAM2AhQgAiAANgIMQQAhAwwsCyACKAIEIQAgAkEANgIEIAIgACAFECgiAEUEQCAFIQEMFgsgAkHLATYCHCACIAU2AhQgAiAANgIMDCsLQbQBIQMMEQtBACEAAkAgAigCOCIDRQ0AIAMoAjwiA0UNACACIAMRAAAhAAsCQCAABEAgAEEVRg0BIAJBADYCHCACIAE2AhQgAkGUDTYCECACQSE2AgxBACEDDCsLQbIBIQMMEQsgAkHIATYCHCACIAE2AhQgAkHJFzYCECACQRU2AgxBACEDDCkLIAJBADYCACAGQQFqIQFB9QAhAwwPCyACLQApQQVGBEBB4wAhAwwPC0HiACEDDA4LIAAhASACQQA2AgALIAJBADoALEEJIQMMDAsgAkEANgIAIAdBAWohAUHAACEDDAsLQQELOgAsIAJBADYCACAGQQFqIQELQSkhAwwIC0E4IQMMBwsCQCABIARHBEADQCABLQAAQYA+ai0AACIAQQFHBEAgAEECRw0DIAFBAWohAQwFCyAEIAFBAWoiAUcNAAtBPiEDDCELQT4hAwwgCwsgAkEAOgAsDAELQQshAwwEC0E6IQMMAwsgAUEBaiEBQS0hAwwCCyACIAE6ACwgAkEANgIAIAZBAWohAUEMIQMMAQsgAkEANgIAIAZBAWohAUEKIQMMAAsAC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwXC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwWC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJBCTYCDAwVC0EAIQMgAkEANgIcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwUC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwTC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwSC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJBCTYCDAwRC0EAIQMgAkEANgIcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwQC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwPC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwOC0EAIQMgAkEANgIcIAIgATYCFCACQcASNgIQIAJBCzYCDAwNC0EAIQMgAkEANgIcIAIgATYCFCACQZUJNgIQIAJBCzYCDAwMC0EAIQMgAkEANgIcIAIgATYCFCACQeEPNgIQIAJBCjYCDAwLC0EAIQMgAkEANgIcIAIgATYCFCACQfsPNgIQIAJBCjYCDAwKC0EAIQMgAkEANgIcIAIgATYCFCACQfEZNgIQIAJBAjYCDAwJC0EAIQMgAkEANgIcIAIgATYCFCACQcQUNgIQIAJBAjYCDAwIC0EAIQMgAkEANgIcIAIgATYCFCACQfIVNgIQIAJBAjYCDAwHCyACQQI2AhwgAiABNgIUIAJBnBo2AhAgAkEWNgIMQQAhAwwGC0EBIQMMBQtB1AAhAyABIARGDQQgCEEIaiEJIAIoAgAhBQJAAkAgASAERwRAIAVB2MIAaiEHIAQgBWogAWshACAFQX9zQQpqIgUgAWohBgNAIAEtAAAgBy0AAEcEQEECIQcMAwsgBUUEQEEAIQcgBiEBDAMLIAVBAWshBSAHQQFqIQcgBCABQQFqIgFHDQALIAAhBSAEIQELIAlBATYCACACIAU2AgAMAQsgAkEANgIAIAkgBzYCAAsgCSABNgIEIAgoAgwhACAIKAIIDgMBBAIACwALIAJBADYCHCACQbUaNgIQIAJBFzYCDCACIABBAWo2AhRBACEDDAILIAJBADYCHCACIAA2AhQgAkHKGjYCECACQQk2AgxBACEDDAELIAEgBEYEQEEiIQMMAQsgAkEJNgIIIAIgATYCBEEhIQMLIAhBEGokACADRQRAIAIoAgwhAAwBCyACIAM2AhxBACEAIAIoAgQiAUUNACACIAEgBCACKAIIEQEAIgFFDQAgAiAENgIUIAIgATYCDCABIQALIAALvgIBAn8gAEEAOgAAIABB3ABqIgFBAWtBADoAACAAQQA6AAIgAEEAOgABIAFBA2tBADoAACABQQJrQQA6AAAgAEEAOgADIAFBBGtBADoAAEEAIABrQQNxIgEgAGoiAEEANgIAQdwAIAFrQXxxIgIgAGoiAUEEa0EANgIAAkAgAkEJSQ0AIABBADYCCCAAQQA2AgQgAUEIa0EANgIAIAFBDGtBADYCACACQRlJDQAgAEEANgIYIABBADYCFCAAQQA2AhAgAEEANgIMIAFBEGtBADYCACABQRRrQQA2AgAgAUEYa0EANgIAIAFBHGtBADYCACACIABBBHFBGHIiAmsiAUEgSQ0AIAAgAmohAANAIABCADcDGCAAQgA3AxAgAEIANwMIIABCADcDACAAQSBqIQAgAUEgayIBQR9LDQALCwtWAQF/AkAgACgCDA0AAkACQAJAAkAgAC0ALw4DAQADAgsgACgCOCIBRQ0AIAEoAiwiAUUNACAAIAERAAAiAQ0DC0EADwsACyAAQcMWNgIQQQ4hAQsgAQsaACAAKAIMRQRAIABB0Rs2AhAgAEEVNgIMCwsUACAAKAIMQRVGBEAgAEEANgIMCwsUACAAKAIMQRZGBEAgAEEANgIMCwsHACAAKAIMCwcAIAAoAhALCQAgACABNgIQCwcAIAAoAhQLFwAgAEEkTwRAAAsgAEECdEGgM2ooAgALFwAgAEEuTwRAAAsgAEECdEGwNGooAgALvwkBAX9B6yghAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==","base64")});var CD=z((cuA,eM)=>{var iM=["GET","HEAD","POST"],IFA=new Set(iM),CFA=[101,204,205,304],oM=[301,302,303,307,308],EFA=new Set(oM),nM=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6666","6667","6668","6669","6679","6697","10080"],YFA=new Set(nM),sM=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],JFA=new Set(sM),FFA=["follow","manual","error"],aM=["GET","HEAD","OPTIONS","TRACE"],GFA=new Set(aM),DFA=["navigate","same-origin","no-cors","cors"],ZFA=["omit","same-origin","include"],UFA=["default","no-store","reload","no-cache","force-cache","only-if-cached"],WFA=["content-encoding","content-language","content-location","content-type","content-length"],wFA=["half"],rM=["CONNECT","TRACE","TRACK"],XFA=new Set(rM),tM=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],VFA=new Set(tM);eM.exports={subresource:tM,forbiddenMethods:rM,requestBodyHeader:WFA,referrerPolicy:sM,requestRedirect:FFA,requestMode:DFA,requestCredentials:ZFA,requestCache:UFA,redirectStatus:oM,corsSafeListedMethods:iM,nullBodyStatus:CFA,safeMethods:aM,badPorts:nM,requestDuplex:wFA,subresourceSet:VFA,badPortsSet:YFA,redirectStatusSet:EFA,corsSafeListedMethodsSet:IFA,safeMethodsSet:GFA,forbiddenMethodsSet:XFA,referrerPolicySet:JFA}});var m1=z((uuA,AL)=>{var b1=Symbol.for("undici.globalOrigin.1");function KFA(){return globalThis[b1]}function zFA(A){if(A===void 0){Object.defineProperty(globalThis,b1,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let Q=new URL(A);if(Q.protocol!=="http:"&&Q.protocol!=="https:")throw TypeError(`Only http & https urls are allowed, received ${Q.protocol}`);Object.defineProperty(globalThis,b1,{value:Q,writable:!0,enumerable:!1,configurable:!1})}AL.exports={getGlobalOrigin:KFA,setGlobalOrigin:zFA}});var zB=z((luA,JL)=>{var MW=j("node:assert"),$FA=new TextEncoder,ED=/^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/,HFA=/[\u000A\u000D\u0009\u0020]/,MFA=/[\u0009\u000A\u000C\u000D\u0020]/g,LFA=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/;function NFA(A){MW(A.protocol==="data:");let Q=IL(A,!0);Q=Q.slice(5);let B={position:0},I=xJ(",",Q,B),C=I.length;if(I=kFA(I,!0,!0),B.position>=Q.length)return"failure";B.position++;let E=Q.slice(C+1),Y=CL(E);if(/;(\u0020){0,}base64$/i.test(I)){let F=YL(Y);if(Y=RFA(F),Y==="failure")return"failure";I=I.slice(0,-6),I=I.replace(/(\u0020)+$/,""),I=I.slice(0,-1)}if(I.startsWith(";"))I="text/plain"+I;let J=d1(I);if(J==="failure")J=d1("text/plain;charset=US-ASCII");return{mimeType:J,body:Y}}function IL(A,Q=!1){if(!Q)return A.href;let B=A.href,I=A.hash.length,C=I===0?B:B.substring(0,B.length-I);if(!I&&B.endsWith("#"))return C.slice(0,-1);return C}function LW(A,Q,B){let I="";while(B.position=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102}function BL(A){return A>=48&&A<=57?A-48:(A&223)-55}function jFA(A){let Q=A.length,B=new Uint8Array(Q),I=0;for(let C=0;CA.length)return"failure";Q.position++;let I=xJ(";",A,Q);if(I=HW(I,!1,!0),I.length===0||!ED.test(I))return"failure";let C=B.toLowerCase(),E=I.toLowerCase(),Y={type:C,subtype:E,parameters:new Map,essence:`${C}/${E}`};while(Q.positionHFA.test(G),A,Q);let J=LW((G)=>G!==";"&&G!=="=",A,Q);if(J=J.toLowerCase(),Q.positionA.length)break;let F=null;if(A[Q.position]==='"')F=EL(A,Q,!0),xJ(";",A,Q);else if(F=xJ(";",A,Q),F=HW(F,!1,!0),F.length===0)continue;if(J.length!==0&&ED.test(J)&&(F.length===0||LFA.test(F))&&!Y.parameters.has(J))Y.parameters.set(J,F)}return Y}function RFA(A){A=A.replace(MFA,"");let Q=A.length;if(Q%4===0){if(A.charCodeAt(Q-1)===61){if(--Q,A.charCodeAt(Q-1)===61)--Q}}if(Q%4===1)return"failure";if(/[^+/0-9A-Za-z]/.test(A.length===Q?A:A.substring(0,Q)))return"failure";let B=Buffer.from(A,"base64");return new Uint8Array(B.buffer,B.byteOffset,B.byteLength)}function EL(A,Q,B){let I=Q.position,C="";MW(A[Q.position]==='"'),Q.position++;while(!0){if(C+=LW((Y)=>Y!=='"'&&Y!=="\\",A,Q),Q.position>=A.length)break;let E=A[Q.position];if(Q.position++,E==="\\"){if(Q.position>=A.length){C+="\\";break}C+=A[Q.position],Q.position++}else{MW(E==='"');break}}if(B)return C;return A.slice(I,Q.position)}function qFA(A){MW(A!=="failure");let{parameters:Q,essence:B}=A,I=B;for(let[C,E]of Q.entries()){if(I+=";",I+=C,I+="=",!ED.test(E))E=E.replace(/(\\|")/g,"\\$1"),E='"'+E,E+='"';I+=E}return I}function PFA(A){return A===13||A===10||A===9||A===32}function HW(A,Q=!0,B=!0){return c1(A,Q,B,PFA)}function OFA(A){return A===13||A===10||A===9||A===12||A===32}function kFA(A,Q=!0,B=!0){return c1(A,Q,B,OFA)}function c1(A,Q,B,I){let C=0,E=A.length-1;if(Q)while(C0&&I(A.charCodeAt(E)))E--;return C===0&&E===A.length-1?A:A.slice(C,E+1)}function YL(A){let Q=A.length;if(65535>Q)return String.fromCharCode.apply(null,A);let B="",I=0,C=65535;while(IQ)C=Q-I;B+=String.fromCharCode.apply(null,A.subarray(I,I+=C))}return B}function gFA(A){switch(A.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}if(A.subtype.endsWith("+json"))return"application/json";if(A.subtype.endsWith("+xml"))return"application/xml";return""}JL.exports={dataURLProcessor:NFA,URLSerializer:IL,collectASequenceOfCodePoints:LW,collectASequenceOfCodePointsFast:xJ,stringPercentDecode:CL,parseMIMEType:d1,collectAnHTTPQuotedString:EL,serializeAMimeType:qFA,removeChars:c1,removeHTTPWhitespace:HW,minimizeSupportedMimeType:gFA,HTTP_TOKEN_CODEPOINTS:ED,isomorphicDecode:YL}});var hQ=z((puA,FL)=>{var{types:AC,inspect:TFA}=j("node:util"),{markAsUncloneable:_FA}=j("node:worker_threads"),{toUSVString:yFA}=$A(),y={};y.converters={};y.util={};y.errors={};y.errors.exception=function(A){return TypeError(`${A.header}: ${A.message}`)};y.errors.conversionFailed=function(A){let Q=A.types.length===1?"":" one of",B=`${A.argument} could not be converted to${Q}: ${A.types.join(", ")}.`;return y.errors.exception({header:A.prefix,message:B})};y.errors.invalidArgument=function(A){return y.errors.exception({header:A.prefix,message:`"${A.value}" is an invalid ${A.type}.`})};y.brandCheck=function(A,Q,B){if(B?.strict!==!1){if(!(A instanceof Q)){let I=TypeError("Illegal invocation");throw I.code="ERR_INVALID_THIS",I}}else if(A?.[Symbol.toStringTag]!==Q.prototype[Symbol.toStringTag]){let I=TypeError("Illegal invocation");throw I.code="ERR_INVALID_THIS",I}};y.argumentLengthCheck=function({length:A},Q,B){if(A{});y.util.ConvertToInt=function(A,Q,B,I){let C,E;if(Q===64)if(C=Math.pow(2,53)-1,B==="unsigned")E=0;else E=Math.pow(-2,53)+1;else if(B==="unsigned")E=0,C=Math.pow(2,Q)-1;else E=Math.pow(-2,Q)-1,C=Math.pow(2,Q-1)-1;let Y=Number(A);if(Y===0)Y=0;if(I?.enforceRange===!0){if(Number.isNaN(Y)||Y===Number.POSITIVE_INFINITY||Y===Number.NEGATIVE_INFINITY)throw y.errors.exception({header:"Integer conversion",message:`Could not convert ${y.util.Stringify(A)} to an integer.`});if(Y=y.util.IntegerPart(Y),YC)throw y.errors.exception({header:"Integer conversion",message:`Value must be between ${E}-${C}, got ${Y}.`});return Y}if(!Number.isNaN(Y)&&I?.clamp===!0){if(Y=Math.min(Math.max(Y,E),C),Math.floor(Y)%2===0)Y=Math.floor(Y);else Y=Math.ceil(Y);return Y}if(Number.isNaN(Y)||Y===0&&Object.is(0,Y)||Y===Number.POSITIVE_INFINITY||Y===Number.NEGATIVE_INFINITY)return 0;if(Y=y.util.IntegerPart(Y),Y=Y%Math.pow(2,Q),B==="signed"&&Y>=Math.pow(2,Q)-1)return Y-Math.pow(2,Q);return Y};y.util.IntegerPart=function(A){let Q=Math.floor(Math.abs(A));if(A<0)return-1*Q;return Q};y.util.Stringify=function(A){switch(y.util.Type(A)){case"Symbol":return`Symbol(${A.description})`;case"Object":return TFA(A);case"String":return`"${A}"`;default:return`${A}`}};y.sequenceConverter=function(A){return(Q,B,I,C)=>{if(y.util.Type(Q)!=="Object")throw y.errors.exception({header:B,message:`${I} (${y.util.Stringify(Q)}) is not iterable.`});let E=typeof C==="function"?C():Q?.[Symbol.iterator]?.(),Y=[],J=0;if(E===void 0||typeof E.next!=="function")throw y.errors.exception({header:B,message:`${I} is not iterable.`});while(!0){let{done:F,value:G}=E.next();if(F)break;Y.push(A(G,B,`${I}[${J++}]`))}return Y}};y.recordConverter=function(A,Q){return(B,I,C)=>{if(y.util.Type(B)!=="Object")throw y.errors.exception({header:I,message:`${C} ("${y.util.Type(B)}") is not an Object.`});let E={};if(!AC.isProxy(B)){let J=[...Object.getOwnPropertyNames(B),...Object.getOwnPropertySymbols(B)];for(let F of J){let G=A(F,I,C),D=Q(B[F],I,C);E[G]=D}return E}let Y=Reflect.ownKeys(B);for(let J of Y)if(Reflect.getOwnPropertyDescriptor(B,J)?.enumerable){let G=A(J,I,C),D=Q(B[J],I,C);E[G]=D}return E}};y.interfaceConverter=function(A){return(Q,B,I,C)=>{if(C?.strict!==!1&&!(Q instanceof A))throw y.errors.exception({header:B,message:`Expected ${I} ("${y.util.Stringify(Q)}") to be an instance of ${A.name}.`});return Q}};y.dictionaryConverter=function(A){return(Q,B,I)=>{let C=y.util.Type(Q),E={};if(C==="Null"||C==="Undefined")return E;else if(C!=="Object")throw y.errors.exception({header:B,message:`Expected ${Q} to be one of: Null, Undefined, Object.`});for(let Y of A){let{key:J,defaultValue:F,required:G,converter:D}=Y;if(G===!0){if(!Object.hasOwn(Q,J))throw y.errors.exception({header:B,message:`Missing required key "${J}".`})}let Z=Q[J],U=Object.hasOwn(Y,"defaultValue");if(U&&Z!==null)Z??=F();if(G||U||Z!==void 0){if(Z=D(Z,B,`${I}.${J}`),Y.allowedValues&&!Y.allowedValues.includes(Z))throw y.errors.exception({header:B,message:`${Z} is not an accepted type. Expected one of ${Y.allowedValues.join(", ")}.`});E[J]=Z}}return E}};y.nullableConverter=function(A){return(Q,B,I)=>{if(Q===null)return Q;return A(Q,B,I)}};y.converters.DOMString=function(A,Q,B,I){if(A===null&&I?.legacyNullToEmptyString)return"";if(typeof A==="symbol")throw y.errors.exception({header:Q,message:`${B} is a symbol, which cannot be converted to a DOMString.`});return String(A)};y.converters.ByteString=function(A,Q,B){let I=y.converters.DOMString(A,Q,B);for(let C=0;C255)throw TypeError(`Cannot convert argument to a ByteString because the character at index ${C} has a value of ${I.charCodeAt(C)} which is greater than 255.`);return I};y.converters.USVString=yFA;y.converters.boolean=function(A){return Boolean(A)};y.converters.any=function(A){return A};y.converters["long long"]=function(A,Q,B){return y.util.ConvertToInt(A,64,"signed",void 0,Q,B)};y.converters["unsigned long long"]=function(A,Q,B){return y.util.ConvertToInt(A,64,"unsigned",void 0,Q,B)};y.converters["unsigned long"]=function(A,Q,B){return y.util.ConvertToInt(A,32,"unsigned",void 0,Q,B)};y.converters["unsigned short"]=function(A,Q,B,I){return y.util.ConvertToInt(A,16,"unsigned",I,Q,B)};y.converters.ArrayBuffer=function(A,Q,B,I){if(y.util.Type(A)!=="Object"||!AC.isAnyArrayBuffer(A))throw y.errors.conversionFailed({prefix:Q,argument:`${B} ("${y.util.Stringify(A)}")`,types:["ArrayBuffer"]});if(I?.allowShared===!1&&AC.isSharedArrayBuffer(A))throw y.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(A.resizable||A.growable)throw y.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return A};y.converters.TypedArray=function(A,Q,B,I,C){if(y.util.Type(A)!=="Object"||!AC.isTypedArray(A)||A.constructor.name!==Q.name)throw y.errors.conversionFailed({prefix:B,argument:`${I} ("${y.util.Stringify(A)}")`,types:[Q.name]});if(C?.allowShared===!1&&AC.isSharedArrayBuffer(A.buffer))throw y.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(A.buffer.resizable||A.buffer.growable)throw y.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return A};y.converters.DataView=function(A,Q,B,I){if(y.util.Type(A)!=="Object"||!AC.isDataView(A))throw y.errors.exception({header:Q,message:`${B} is not a DataView.`});if(I?.allowShared===!1&&AC.isSharedArrayBuffer(A.buffer))throw y.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(A.buffer.resizable||A.buffer.growable)throw y.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return A};y.converters.BufferSource=function(A,Q,B,I){if(AC.isAnyArrayBuffer(A))return y.converters.ArrayBuffer(A,Q,B,{...I,allowShared:!1});if(AC.isTypedArray(A))return y.converters.TypedArray(A,A.constructor,Q,B,{...I,allowShared:!1});if(AC.isDataView(A))return y.converters.DataView(A,Q,B,{...I,allowShared:!1});throw y.errors.conversionFailed({prefix:Q,argument:`${B} ("${y.util.Stringify(A)}")`,types:["BufferSource"]})};y.converters["sequence"]=y.sequenceConverter(y.converters.ByteString);y.converters["sequence>"]=y.sequenceConverter(y.converters["sequence"]);y.converters["record"]=y.recordConverter(y.converters.ByteString,y.converters.ByteString);FL.exports={webidl:y}});var SB=z((iuA,RL)=>{var{Transform:SFA}=j("node:stream"),GL=j("node:zlib"),{redirectStatusSet:fFA,referrerPolicySet:hFA,badPortsSet:xFA}=CD(),{getGlobalOrigin:DL}=m1(),{collectASequenceOfCodePoints:u0,collectAnHTTPQuotedString:vFA,removeChars:bFA,parseMIMEType:mFA}=zB(),{performance:dFA}=j("node:perf_hooks"),{isBlobLike:cFA,ReadableStreamFrom:uFA,isValidHTTPToken:ZL,normalizedMethodRecordsBase:lFA}=$A(),l0=j("node:assert"),{isUint8Array:pFA}=j("node:util/types"),{webidl:YD}=hQ(),UL=[],jW;try{jW=j("node:crypto");let A=["sha256","sha384","sha512"];UL=jW.getHashes().filter((Q)=>A.includes(Q))}catch{}function WL(A){let Q=A.urlList,B=Q.length;return B===0?null:Q[B-1].toString()}function iFA(A,Q){if(!fFA.has(A.status))return null;let B=A.headersList.get("location",!0);if(B!==null&&XL(B)){if(!wL(B))B=oFA(B);B=new URL(B,WL(A))}if(B&&!B.hash)B.hash=Q;return B}function wL(A){for(let Q=0;Q126||B<32)return!1}return!0}function oFA(A){return Buffer.from(A,"binary").toString("utf8")}function FD(A){return A.urlList[A.urlList.length-1]}function nFA(A){let Q=FD(A);if(HL(Q)&&xFA.has(Q.port))return"blocked";return"allowed"}function sFA(A){return A instanceof Error||(A?.constructor?.name==="Error"||A?.constructor?.name==="DOMException")}function aFA(A){for(let Q=0;Q=32&&B<=126||B>=128&&B<=255))return!1}return!0}var rFA=ZL;function XL(A){return(A[0]==="\t"||A[0]===" "||A[A.length-1]==="\t"||A[A.length-1]===" "||A.includes(` +`)||A.includes("\r")||A.includes("\x00"))===!1}function tFA(A,Q){let{headersList:B}=Q,I=(B.get("referrer-policy",!0)??"").split(","),C="";if(I.length>0)for(let E=I.length;E!==0;E--){let Y=I[E-1].trim();if(hFA.has(Y)){C=Y;break}}if(C!=="")A.referrerPolicy=C}function eFA(){return"allowed"}function AGA(){return"success"}function QGA(){return"success"}function BGA(A){let Q=null;Q=A.mode,A.headersList.set("sec-fetch-mode",Q,!0)}function IGA(A){let Q=A.origin;if(Q==="client"||Q===void 0)return;if(A.responseTainting==="cors"||A.mode==="websocket")A.headersList.append("origin",Q,!0);else if(A.method!=="GET"&&A.method!=="HEAD"){switch(A.referrerPolicy){case"no-referrer":Q=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":if(A.origin&&l1(A.origin)&&!l1(FD(A)))Q=null;break;case"same-origin":if(!RW(A,FD(A)))Q=null;break;default:}A.headersList.append("origin",Q,!0)}}function vJ(A,Q){return A}function CGA(A,Q,B){if(!A?.startTime||A.startTime4096)I=C;let E=RW(A,I),Y=JD(I)&&!JD(A.url);switch(Q){case"origin":return C!=null?C:u1(B,!0);case"unsafe-url":return I;case"same-origin":return E?C:"no-referrer";case"origin-when-cross-origin":return E?I:C;case"strict-origin-when-cross-origin":{let J=FD(A);if(RW(I,J))return I;if(JD(I)&&!JD(J))return"no-referrer";return C}case"strict-origin":case"no-referrer-when-downgrade":default:return Y?"no-referrer":C}}function u1(A,Q){if(l0(A instanceof URL),A=new URL(A),A.protocol==="file:"||A.protocol==="about:"||A.protocol==="blank:")return"no-referrer";if(A.username="",A.password="",A.hash="",Q)A.pathname="",A.search="";return A}function JD(A){if(!(A instanceof URL))return!1;if(A.href==="about:blank"||A.href==="about:srcdoc")return!0;if(A.protocol==="data:")return!0;if(A.protocol==="file:")return!0;return Q(A.origin);function Q(B){if(B==null||B==="null")return!1;let I=new URL(B);if(I.protocol==="https:"||I.protocol==="wss:")return!0;if(/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(I.hostname)||(I.hostname==="localhost"||I.hostname.includes("localhost."))||I.hostname.endsWith(".localhost"))return!0;return!1}}function GGA(A,Q){if(jW===void 0)return!0;let B=KL(Q);if(B==="no metadata")return!0;if(B.length===0)return!0;let I=ZGA(B),C=UGA(B,I);for(let E of C){let{algo:Y,hash:J}=E,F=jW.createHash(Y).update(A).digest("base64");if(F[F.length-1]==="=")if(F[F.length-2]==="=")F=F.slice(0,-2);else F=F.slice(0,-1);if(WGA(F,J))return!0}return!1}var DGA=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function KL(A){let Q=[],B=!0;for(let I of A.split(" ")){B=!1;let C=DGA.exec(I);if(C===null||C.groups===void 0||C.groups.algo===void 0)continue;let E=C.groups.algo.toLowerCase();if(UL.includes(E))Q.push(C.groups)}if(B===!0)return"no metadata";return Q}function ZGA(A){let Q=A[0].algo;if(Q[3]==="5")return Q;for(let B=1;B{A=I,Q=C}),resolve:A,reject:Q}}function VGA(A){return A.controller.state==="aborted"}function KGA(A){return A.controller.state==="aborted"||A.controller.state==="terminated"}function zGA(A){return lFA[A.toLowerCase()]??A}function $GA(A){let Q=JSON.stringify(A);if(Q===void 0)throw TypeError("Value is not JSON serializable");return l0(typeof Q==="string"),Q}var HGA=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function zL(A,Q,B=0,I=1){class C{#A;#Q;#C;constructor(E,Y){this.#A=E,this.#Q=Y,this.#C=0}next(){if(typeof this!=="object"||this===null||!(#A in this))throw TypeError(`'next' called on an object that does not implement interface ${A} Iterator.`);let E=this.#C,Y=this.#A[Q],J=Y.length;if(E>=J)return{value:void 0,done:!0};let{[B]:F,[I]:G}=Y[E];this.#C=E+1;let D;switch(this.#Q){case"key":D=F;break;case"value":D=G;break;case"key+value":D=[F,G];break}return{value:D,done:!1}}}return delete C.prototype.constructor,Object.setPrototypeOf(C.prototype,HGA),Object.defineProperties(C.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${A} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(E,Y){return new C(E,Y)}}function MGA(A,Q,B,I=0,C=1){let E=zL(A,B,I,C),Y={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return YD.brandCheck(this,Q),E(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return YD.brandCheck(this,Q),E(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return YD.brandCheck(this,Q),E(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(F,G=globalThis){if(YD.brandCheck(this,Q),YD.argumentLengthCheck(arguments,1,`${A}.forEach`),typeof F!=="function")throw TypeError(`Failed to execute 'forEach' on '${A}': parameter 1 is not of type 'Function'.`);for(let{0:D,1:Z}of E(this,"key+value"))F.call(G,Z,D,this)}}};return Object.defineProperties(Q.prototype,{...Y,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:Y.entries.value}})}async function LGA(A,Q,B){let I=Q,C=B,E;try{E=A.stream.getReader()}catch(Y){C(Y);return}try{I(await $L(E))}catch(Y){C(Y)}}function NGA(A){return A instanceof ReadableStream||A[Symbol.toStringTag]==="ReadableStream"&&typeof A.tee==="function"}function jGA(A){try{A.close(),A.byobRequest?.respond(0)}catch(Q){if(!Q.message.includes("Controller is already closed")&&!Q.message.includes("ReadableStream is already closed"))throw Q}}var RGA=/[^\x00-\xFF]/;function NW(A){return l0(!RGA.test(A)),A}async function $L(A){let Q=[],B=0;while(!0){let{done:I,value:C}=await A.read();if(I)return Buffer.concat(Q,B);if(!pFA(C))throw TypeError("Received non-Uint8Array chunk");Q.push(C),B+=C.length}}function qGA(A){l0("protocol"in A);let Q=A.protocol;return Q==="about:"||Q==="blob:"||Q==="data:"}function l1(A){return typeof A==="string"&&A[5]===":"&&A[0]==="h"&&A[1]==="t"&&A[2]==="t"&&A[3]==="p"&&A[4]==="s"||A.protocol==="https:"}function HL(A){l0("protocol"in A);let Q=A.protocol;return Q==="http:"||Q==="https:"}function PGA(A,Q){let B=A;if(!B.startsWith("bytes"))return"failure";let I={position:5};if(Q)u0((F)=>F==="\t"||F===" ",B,I);if(B.charCodeAt(I.position)!==61)return"failure";if(I.position++,Q)u0((F)=>F==="\t"||F===" ",B,I);let C=u0((F)=>{let G=F.charCodeAt(0);return G>=48&&G<=57},B,I),E=C.length?Number(C):null;if(Q)u0((F)=>F==="\t"||F===" ",B,I);if(B.charCodeAt(I.position)!==45)return"failure";if(I.position++,Q)u0((F)=>F==="\t"||F===" ",B,I);let Y=u0((F)=>{let G=F.charCodeAt(0);return G>=48&&G<=57},B,I),J=Y.length?Number(Y):null;if(I.positionJ)return"failure";return{rangeStartValue:E,rangeEndValue:J}}function OGA(A,Q,B){let I="bytes ";return I+=NW(`${A}`),I+="-",I+=NW(`${Q}`),I+="/",I+=NW(`${B}`),I}class ML extends SFA{#A;constructor(A){super();this.#A=A}_transform(A,Q,B){if(!this._inflateStream){if(A.length===0){B();return}this._inflateStream=(A[0]&15)===8?GL.createInflate(this.#A):GL.createInflateRaw(this.#A),this._inflateStream.on("data",this.push.bind(this)),this._inflateStream.on("end",()=>this.push(null)),this._inflateStream.on("error",(I)=>this.destroy(I))}this._inflateStream.write(A,Q,B)}_final(A){if(this._inflateStream)this._inflateStream.end(),this._inflateStream=null;A()}}function kGA(A){return new ML(A)}function gGA(A){let Q=null,B=null,I=null,C=LL("content-type",A);if(C===null)return"failure";for(let E of C){let Y=mFA(E);if(Y==="failure"||Y.essence==="*/*")continue;if(I=Y,I.essence!==B){if(Q=null,I.parameters.has("charset"))Q=I.parameters.get("charset");B=I.essence}else if(!I.parameters.has("charset")&&Q!==null)I.parameters.set("charset",Q)}if(I==null)return"failure";return I}function TGA(A){let Q=A,B={position:0},I=[],C="";while(B.positionE!=='"'&&E!==",",Q,B),B.positionE===9||E===32),I.push(C),C=""}return I}function LL(A,Q){let B=Q.get(A,!0);if(B===null)return null;return TGA(B)}var _GA=new TextDecoder;function yGA(A){if(A.length===0)return"";if(A[0]===239&&A[1]===187&&A[2]===191)A=A.subarray(3);return _GA.decode(A)}class NL{get baseUrl(){return DL()}get origin(){return this.baseUrl?.origin}policyContainer=VL()}class jL{settingsObject=new NL}var SGA=new jL;RL.exports={isAborted:VGA,isCancelled:KGA,isValidEncodedURL:wL,createDeferredPromise:XGA,ReadableStreamFrom:uFA,tryUpgradeRequestToAPotentiallyTrustworthyURL:wGA,clampAndCoarsenConnectionTimingInfo:CGA,coarsenedSharedCurrentTime:EGA,determineRequestsReferrer:FGA,makePolicyContainer:VL,clonePolicyContainer:JGA,appendFetchMetadata:BGA,appendRequestOriginHeader:IGA,TAOCheck:QGA,corsCheck:AGA,crossOriginResourcePolicyCheck:eFA,createOpaqueTimingInfo:YGA,setRequestReferrerPolicyOnRedirect:tFA,isValidHTTPToken:ZL,requestBadPort:nFA,requestCurrentURL:FD,responseURL:WL,responseLocationURL:iFA,isBlobLike:cFA,isURLPotentiallyTrustworthy:JD,isValidReasonPhrase:aFA,sameOrigin:RW,normalizeMethod:zGA,serializeJavascriptValueToJSONString:$GA,iteratorMixin:MGA,createIterator:zL,isValidHeaderName:rFA,isValidHeaderValue:XL,isErrorLike:sFA,fullyReadBody:LGA,bytesMatch:GGA,isReadableStreamLike:NGA,readableStreamClose:jGA,isomorphicEncode:NW,urlIsLocal:qGA,urlHasHttpsScheme:l1,urlIsHttpHttpsScheme:HL,readAllBytes:$L,simpleRangeHeaderValue:PGA,buildContentRange:OGA,parseMetadata:KL,createInflate:kGA,extractMimeType:gGA,getDecodeSplit:LL,utf8DecodeBytes:yGA,environmentSettingsObject:SGA}});var kE=z((ouA,qL)=>{qL.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kDispatcher:Symbol("dispatcher")}});var p1=z((nuA,PL)=>{var{Blob:fGA,File:hGA}=j("node:buffer"),{kState:dC}=kE(),{webidl:QC}=hQ();class BC{constructor(A,Q,B={}){let I=Q,C=B.type,E=B.lastModified??Date.now();this[dC]={blobLike:A,name:I,type:C,lastModified:E}}stream(...A){return QC.brandCheck(this,BC),this[dC].blobLike.stream(...A)}arrayBuffer(...A){return QC.brandCheck(this,BC),this[dC].blobLike.arrayBuffer(...A)}slice(...A){return QC.brandCheck(this,BC),this[dC].blobLike.slice(...A)}text(...A){return QC.brandCheck(this,BC),this[dC].blobLike.text(...A)}get size(){return QC.brandCheck(this,BC),this[dC].blobLike.size}get type(){return QC.brandCheck(this,BC),this[dC].blobLike.type}get name(){return QC.brandCheck(this,BC),this[dC].name}get lastModified(){return QC.brandCheck(this,BC),this[dC].lastModified}get[Symbol.toStringTag](){return"File"}}QC.converters.Blob=QC.interfaceConverter(fGA);function xGA(A){return A instanceof hGA||A&&(typeof A.stream==="function"||typeof A.arrayBuffer==="function")&&A[Symbol.toStringTag]==="File"}PL.exports={FileLike:BC,isFileLike:xGA}});var GD=z((suA,_L)=>{var{isBlobLike:qW,iteratorMixin:vGA}=SB(),{kState:YB}=kE(),{kEnumerableProperty:bJ}=$A(),{FileLike:OL,isFileLike:bGA}=p1(),{webidl:nA}=hQ(),{File:TL}=j("node:buffer"),kL=j("node:util"),gL=globalThis.File??TL;class IC{constructor(A){if(nA.util.markAsUncloneable(this),A!==void 0)throw nA.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[YB]=[]}append(A,Q,B=void 0){nA.brandCheck(this,IC);let I="FormData.append";if(nA.argumentLengthCheck(arguments,2,I),arguments.length===3&&!qW(Q))throw TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");A=nA.converters.USVString(A,I,"name"),Q=qW(Q)?nA.converters.Blob(Q,I,"value",{strict:!1}):nA.converters.USVString(Q,I,"value"),B=arguments.length===3?nA.converters.USVString(B,I,"filename"):void 0;let C=i1(A,Q,B);this[YB].push(C)}delete(A){nA.brandCheck(this,IC);let Q="FormData.delete";nA.argumentLengthCheck(arguments,1,Q),A=nA.converters.USVString(A,Q,"name"),this[YB]=this[YB].filter((B)=>B.name!==A)}get(A){nA.brandCheck(this,IC);let Q="FormData.get";nA.argumentLengthCheck(arguments,1,Q),A=nA.converters.USVString(A,Q,"name");let B=this[YB].findIndex((I)=>I.name===A);if(B===-1)return null;return this[YB][B].value}getAll(A){nA.brandCheck(this,IC);let Q="FormData.getAll";return nA.argumentLengthCheck(arguments,1,Q),A=nA.converters.USVString(A,Q,"name"),this[YB].filter((B)=>B.name===A).map((B)=>B.value)}has(A){nA.brandCheck(this,IC);let Q="FormData.has";return nA.argumentLengthCheck(arguments,1,Q),A=nA.converters.USVString(A,Q,"name"),this[YB].findIndex((B)=>B.name===A)!==-1}set(A,Q,B=void 0){nA.brandCheck(this,IC);let I="FormData.set";if(nA.argumentLengthCheck(arguments,2,I),arguments.length===3&&!qW(Q))throw TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");A=nA.converters.USVString(A,I,"name"),Q=qW(Q)?nA.converters.Blob(Q,I,"name",{strict:!1}):nA.converters.USVString(Q,I,"name"),B=arguments.length===3?nA.converters.USVString(B,I,"name"):void 0;let C=i1(A,Q,B),E=this[YB].findIndex((Y)=>Y.name===A);if(E!==-1)this[YB]=[...this[YB].slice(0,E),C,...this[YB].slice(E+1).filter((Y)=>Y.name!==A)];else this[YB].push(C)}[kL.inspect.custom](A,Q){let B=this[YB].reduce((C,E)=>{if(C[E.name])if(Array.isArray(C[E.name]))C[E.name].push(E.value);else C[E.name]=[C[E.name],E.value];else C[E.name]=E.value;return C},{__proto__:null});Q.depth??=A,Q.colors??=!0;let I=kL.formatWithOptions(Q,B);return`FormData ${I.slice(I.indexOf("]")+2)}`}}vGA("FormData",IC,YB,"name","value");Object.defineProperties(IC.prototype,{append:bJ,delete:bJ,get:bJ,getAll:bJ,has:bJ,set:bJ,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function i1(A,Q,B){if(typeof Q==="string");else{if(!bGA(Q))Q=Q instanceof Blob?new gL([Q],"blob",{type:Q.type}):new OL(Q,"blob",{type:Q.type});if(B!==void 0){let I={type:Q.type,lastModified:Q.lastModified};Q=Q instanceof TL?new gL([Q],B,I):new OL(Q,B,I)}}return{name:A,value:Q}}_L.exports={FormData:IC,makeEntry:i1}});var vL=z((auA,xL)=>{var{isUSVString:yL,bufferToLowerCasedHeaderName:mGA}=$A(),{utf8DecodeBytes:dGA}=SB(),{HTTP_TOKEN_CODEPOINTS:cGA,isomorphicDecode:SL}=zB(),{isFileLike:uGA}=p1(),{makeEntry:lGA}=GD(),PW=j("node:assert"),{File:pGA}=j("node:buffer"),iGA=globalThis.File??pGA,oGA=Buffer.from('form-data; name="'),fL=Buffer.from("; filename"),nGA=Buffer.from("--"),sGA=Buffer.from(`--\r +`);function aGA(A){for(let Q=0;Q70)return!1;for(let B=0;B=48&&I<=57||I>=65&&I<=90||I>=97&&I<=122||I===39||I===45||I===95))return!1}return!0}function tGA(A,Q){PW(Q!=="failure"&&Q.essence==="multipart/form-data");let B=Q.parameters.get("boundary");if(B===void 0)return"failure";let I=Buffer.from(`--${B}`,"utf8"),C=[],E={position:0};while(A[E.position]===13&&A[E.position+1]===10)E.position+=2;let Y=A.length;while(A[Y-1]===10&&A[Y-2]===13)Y-=2;if(Y!==A.length)A=A.subarray(0,Y);while(!0){if(A.subarray(E.position,E.position+I.length).equals(I))E.position+=I.length;else return"failure";if(E.position===A.length-2&&OW(A,nGA,E)||E.position===A.length-4&&OW(A,sGA,E))return C;if(A[E.position]!==13||A[E.position+1]!==10)return"failure";E.position+=2;let J=eGA(A,E);if(J==="failure")return"failure";let{name:F,filename:G,contentType:D,encoding:Z}=J;E.position+=2;let U;{let w=A.indexOf(I.subarray(2),E.position);if(w===-1)return"failure";if(U=A.subarray(E.position,w-4),E.position+=U.length,Z==="base64")U=Buffer.from(U.toString(),"base64")}if(A[E.position]!==13||A[E.position+1]!==10)return"failure";else E.position+=2;let W;if(G!==null){if(D??="text/plain",!aGA(D))D="";W=new iGA([U],G,{type:D})}else W=dGA(Buffer.from(U));PW(yL(F)),PW(typeof W==="string"&&yL(W)||uGA(W)),C.push(lGA(F,W,G))}}function eGA(A,Q){let B=null,I=null,C=null,E=null;while(!0){if(A[Q.position]===13&&A[Q.position+1]===10){if(B===null)return"failure";return{name:B,filename:I,contentType:C,encoding:E}}let Y=mJ((J)=>J!==10&&J!==13&&J!==58,A,Q);if(Y=o1(Y,!0,!0,(J)=>J===9||J===32),!cGA.test(Y.toString()))return"failure";if(A[Q.position]!==58)return"failure";switch(Q.position++,mJ((J)=>J===32||J===9,A,Q),mGA(Y)){case"content-disposition":{if(B=I=null,!OW(A,oGA,Q))return"failure";if(Q.position+=17,B=hL(A,Q),B===null)return"failure";if(OW(A,fL,Q)){let J=Q.position+fL.length;if(A[J]===42)Q.position+=1,J+=1;if(A[J]!==61||A[J+1]!==34)return"failure";if(Q.position+=12,I=hL(A,Q),I===null)return"failure"}break}case"content-type":{let J=mJ((F)=>F!==10&&F!==13,A,Q);J=o1(J,!1,!0,(F)=>F===9||F===32),C=SL(J);break}case"content-transfer-encoding":{let J=mJ((F)=>F!==10&&F!==13,A,Q);J=o1(J,!1,!0,(F)=>F===9||F===32),E=SL(J);break}default:mJ((J)=>J!==10&&J!==13,A,Q)}if(A[Q.position]!==13&&A[Q.position+1]!==10)return"failure";else Q.position+=2}}function hL(A,Q){PW(A[Q.position-1]===34);let B=mJ((I)=>I!==10&&I!==13&&I!==34,A,Q);if(A[Q.position]!==34)return null;else Q.position++;return B=new TextDecoder().decode(B).replace(/%0A/ig,` +`).replace(/%0D/ig,"\r").replace(/%22/g,'"'),B}function mJ(A,Q,B){let I=B.position;while(I0&&I(A[E]))E--;return C===0&&E===A.length-1?A:A.subarray(C,E+1)}function OW(A,Q,B){if(A.length{var DD=$A(),{ReadableStreamFrom:ADA,isBlobLike:bL,isReadableStreamLike:QDA,readableStreamClose:BDA,createDeferredPromise:IDA,fullyReadBody:CDA,extractMimeType:EDA,utf8DecodeBytes:cL}=SB(),{FormData:mL}=GD(),{kState:cJ}=kE(),{webidl:YDA}=hQ(),{Blob:JDA}=j("node:buffer"),n1=j("node:assert"),{isErrored:uL,isDisturbed:FDA}=j("node:stream"),{isArrayBuffer:GDA}=j("node:util/types"),{serializeAMimeType:DDA}=zB(),{multipartFormDataParser:ZDA}=vL(),s1;try{let A=j("node:crypto");s1=(Q)=>A.randomInt(0,Q)}catch{s1=(A)=>Math.floor(Math.random(A))}var kW=new TextEncoder;function UDA(){}var lL=globalThis.FinalizationRegistry&&process.version.indexOf("v18")!==0,pL;if(lL)pL=new FinalizationRegistry((A)=>{let Q=A.deref();if(Q&&!Q.locked&&!FDA(Q)&&!uL(Q))Q.cancel("Response object has been garbage collected").catch(UDA)});function iL(A,Q=!1){let B=null;if(A instanceof ReadableStream)B=A;else if(bL(A))B=A.stream();else B=new ReadableStream({async pull(F){let G=typeof C==="string"?kW.encode(C):C;if(G.byteLength)F.enqueue(G);queueMicrotask(()=>BDA(F))},start(){},type:"bytes"});n1(QDA(B));let I=null,C=null,E=null,Y=null;if(typeof A==="string")C=A,Y="text/plain;charset=UTF-8";else if(A instanceof URLSearchParams)C=A.toString(),Y="application/x-www-form-urlencoded;charset=UTF-8";else if(GDA(A))C=new Uint8Array(A.slice());else if(ArrayBuffer.isView(A))C=new Uint8Array(A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength));else if(DD.isFormDataLike(A)){let F=`----formdata-undici-0${`${s1(100000000000)}`.padStart(11,"0")}`,G=`--${F}\r +Content-Disposition: form-data`;/*! formdata-polyfill. MIT License. Jimmy Wärting */let D=(X)=>X.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),Z=(X)=>X.replace(/\r?\n|\r/g,`\r +`),U=[],W=new Uint8Array([13,10]);E=0;let w=!1;for(let[X,V]of A)if(typeof V==="string"){let M=kW.encode(G+`; name="${D(Z(X))}"\r \r -${Z(z)}\r -`);W.push(M),E+=M.byteLength}else{let M=_9.encode(`${G}; name="${D(Z(V))}"`+(z.name?`; filename="${D(z.name)}"`:"")+`\r -Content-Type: ${z.type||"application/octet-stream"}\r +${Z(V)}\r +`);U.push(M),E+=M.byteLength}else{let M=kW.encode(`${G}; name="${D(Z(X))}"`+(V.name?`; filename="${D(V.name)}"`:"")+`\r +Content-Type: ${V.type||"application/octet-stream"}\r \r -`);if(W.push(M,z,U),typeof z.size==="number")E+=M.byteLength+z.size+U.byteLength;else w=!0}let K=_9.encode(`--${F}--\r -`);if(W.push(K),E+=K.byteLength,w)E=null;C=A,I=async function*(){for(let V of W)if(V.stream)yield*V.stream();else yield V},Y=`multipart/form-data; boundary=${F}`}else if(lN(A)){if(C=A,E=A.size,A.type)Y=A.type}else if(typeof A[Symbol.asyncIterator]==="function"){if(Q)throw TypeError("keepalive");if(uG.isDisturbed(A)||A.locked)throw TypeError("Response body object should not be disturbed or locked");B=A instanceof ReadableStream?A:H5A(A)}if(typeof C==="string"||uG.isBuffer(C))E=Buffer.byteLength(C);if(I!=null){let F;B=new ReadableStream({async start(){F=I(A)[Symbol.asyncIterator]()},async pull(G){let{value:D,done:Z}=await F.next();if(Z)queueMicrotask(()=>{G.close(),G.byobRequest?.respond(0)});else if(!oN(B)){let W=new Uint8Array(D);if(W.byteLength)G.enqueue(W)}return G.desiredSize>0},async cancel(G){await F.return()},type:"bytes"})}return[{stream:B,source:C,length:E},Y]}function y5A(A,Q=!1){if(A instanceof ReadableStream)W4(!uG.isDisturbed(A),"The body has already been consumed."),W4(!A.locked,"The stream is locked.");return rN(A,Q)}function h5A(A,Q){let[B,I]=Q.stream.tee();return Q.stream=B,{stream:I,length:Q.length,source:Q.source}}function f5A(A){if(A.aborted)throw new DOMException("The operation was aborted.","AbortError")}function _5A(A){return{blob(){return HJ(this,(B)=>{let I=iN(this);if(I===null)I="";else if(I)I=k5A(I);return new O5A([B],{type:I})},A)},arrayBuffer(){return HJ(this,(B)=>{return new Uint8Array(B).buffer},A)},text(){return HJ(this,nN,A)},json(){return HJ(this,x5A,A)},formData(){return HJ(this,(B)=>{let I=iN(this);if(I!==null)switch(I.essence){case"multipart/form-data":{let C=S5A(B,I);if(C==="failure")throw TypeError("Failed to parse body as FormData.");let E=new pN;return E[MJ]=C,E}case"application/x-www-form-urlencoded":{let C=new URLSearchParams(B.toString()),E=new pN;for(let[Y,J]of C)E.append(Y,J);return E}}throw TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},A)},bytes(){return HJ(this,(B)=>{return new Uint8Array(B)},A)}}}function v5A(A){Object.assign(A.prototype,_5A(A))}async function HJ(A,Q,B){if(q5A.brandCheck(A,B),tN(A))throw TypeError("Body is unusable: Body has already been read");f5A(A[MJ]);let I=N5A(),C=(Y)=>I.reject(Y),E=(Y)=>{try{I.resolve(Q(Y))}catch(J){C(J)}};if(A[MJ].body==null)return E(Buffer.allocUnsafe(0)),I.promise;return await j5A(A[MJ].body,E,C),I.promise}function tN(A){let Q=A[MJ].body;return Q!=null&&(Q.stream.locked||uG.isDisturbed(Q.stream))}function x5A(A){return JSON.parse(nN(A))}function iN(A){let Q=A[MJ].headersList,B=R5A(Q);if(B==="failure")return null;return B}eN.exports={extractBody:rN,safelyExtractBody:y5A,cloneBody:h5A,mixinBody:v5A,streamRegistry:sN,hasFinalizationRegistry:aN,bodyUnusable:tN}});var Zj=X((OWQ,Dj)=>{var p=H("node:assert"),r=YA(),{channels:Aj}=GJ(),X4=sw(),{RequestContentLengthMismatchError:v0,ResponseContentLengthMismatchError:b5A,RequestAbortedError:Yj,HeadersTimeoutError:m5A,HeadersOverflowError:d5A,SocketError:c9,InformationalError:NJ,BodyTimeoutError:c5A,HTTPParserError:u5A,ResponseExceededMaxSizeError:l5A}=UA(),{kUrl:Jj,kReset:FB,kClient:z4,kParser:lA,kBlocking:iG,kRunning:gQ,kPending:p5A,kSize:Qj,kWriting:HE,kQueue:jI,kNoRef:lG,kKeepAliveDefaultTimeout:i5A,kHostHeader:n5A,kPendingIdx:o5A,kRunningIdx:rB,kError:tB,kPipelining:m9,kSocket:jJ,kKeepAliveTimeoutValue:u9,kMaxHeadersSize:w4,kKeepAliveMaxTimeout:a5A,kKeepAliveTimeoutThreshold:s5A,kHeadersTimeout:r5A,kBodyTimeout:t5A,kStrictContentLength:$4,kMaxRequests:Bj,kCounter:e5A,kMaxResponseSize:AKA,kOnError:QKA,kResume:$E,kHTTPContext:Fj}=yA(),AC=n2(),BKA=Buffer.alloc(0),v9=Buffer[Symbol.species],x9=r.addListener,IKA=r.removeAllListeners,K4;async function CKA(){let A=process.env.JEST_WORKER_ID?B4():void 0,Q;try{Q=await WebAssembly.compile(s2())}catch(B){Q=await WebAssembly.compile(A||B4())}return await WebAssembly.instantiate(Q,{env:{wasm_on_url:(B,I,C)=>{return 0},wasm_on_status:(B,I,C)=>{p(GQ.ptr===B);let E=I-BC+QC.byteOffset;return GQ.onStatus(new v9(QC.buffer,E,C))||0},wasm_on_message_begin:(B)=>{return p(GQ.ptr===B),GQ.onMessageBegin()||0},wasm_on_header_field:(B,I,C)=>{p(GQ.ptr===B);let E=I-BC+QC.byteOffset;return GQ.onHeaderField(new v9(QC.buffer,E,C))||0},wasm_on_header_value:(B,I,C)=>{p(GQ.ptr===B);let E=I-BC+QC.byteOffset;return GQ.onHeaderValue(new v9(QC.buffer,E,C))||0},wasm_on_headers_complete:(B,I,C,E)=>{return p(GQ.ptr===B),GQ.onHeadersComplete(I,Boolean(C),Boolean(E))||0},wasm_on_body:(B,I,C)=>{p(GQ.ptr===B);let E=I-BC+QC.byteOffset;return GQ.onBody(new v9(QC.buffer,E,C))||0},wasm_on_message_complete:(B)=>{return p(GQ.ptr===B),GQ.onMessageComplete()||0}}})}var V4=null,H4=CKA();H4.catch();var GQ=null,QC=null,b9=0,BC=null,EKA=0,pG=1,RJ=2|pG,d9=4|pG,M4=8|EKA;class Gj{constructor(A,Q,{exports:B}){p(Number.isFinite(A[w4])&&A[w4]>0),this.llhttp=B,this.ptr=this.llhttp.llhttp_alloc(AC.TYPE.RESPONSE),this.client=A,this.socket=Q,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=A[w4],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=A[AKA]}setTimeout(A,Q){if(A!==this.timeoutValue||Q&pG^this.timeoutType&pG){if(this.timeout)X4.clearTimeout(this.timeout),this.timeout=null;if(A)if(Q&pG)this.timeout=X4.setFastTimeout(Ij,A,new WeakRef(this));else this.timeout=setTimeout(Ij,A,new WeakRef(this)),this.timeout.unref();this.timeoutValue=A}else if(this.timeout){if(this.timeout.refresh)this.timeout.refresh()}this.timeoutType=Q}resume(){if(this.socket.destroyed||!this.paused)return;if(p(this.ptr!=null),p(GQ==null),this.llhttp.llhttp_resume(this.ptr),p(this.timeoutType===d9),this.timeout){if(this.timeout.refresh)this.timeout.refresh()}this.paused=!1,this.execute(this.socket.read()||BKA),this.readMore()}readMore(){while(!this.paused&&this.ptr){let A=this.socket.read();if(A===null)break;this.execute(A)}}execute(A){p(this.ptr!=null),p(GQ==null),p(!this.paused);let{socket:Q,llhttp:B}=this;if(A.length>b9){if(BC)B.free(BC);b9=Math.ceil(A.length/4096)*4096,BC=B.malloc(b9)}new Uint8Array(B.memory.buffer,BC,b9).set(A);try{let I;try{QC=A,GQ=this,I=B.llhttp_execute(this.ptr,BC,A.length)}catch(E){throw E}finally{GQ=null,QC=null}let C=B.llhttp_get_error_pos(this.ptr)-BC;if(I===AC.ERROR.PAUSED_UPGRADE)this.onUpgrade(A.slice(C));else if(I===AC.ERROR.PAUSED)this.paused=!0,Q.unshift(A.slice(C));else if(I!==AC.ERROR.OK){let E=B.llhttp_get_error_reason(this.ptr),Y="";if(E){let J=new Uint8Array(B.memory.buffer,E).indexOf(0);Y="Response does not match the HTTP/1.1 protocol ("+Buffer.from(B.memory.buffer,E,J).toString()+")"}throw new u5A(Y,AC.ERROR[I],A.slice(C))}}catch(I){r.destroy(Q,I)}}destroy(){p(this.ptr!=null),p(GQ==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&X4.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(A){this.statusText=A.toString()}onMessageBegin(){let{socket:A,client:Q}=this;if(A.destroyed)return-1;let B=Q[jI][Q[rB]];if(!B)return-1;B.onResponseStarted()}onHeaderField(A){let Q=this.headers.length;if((Q&1)===0)this.headers.push(A);else this.headers[Q-1]=Buffer.concat([this.headers[Q-1],A]);this.trackHeader(A.length)}onHeaderValue(A){let Q=this.headers.length;if((Q&1)===1)this.headers.push(A),Q+=1;else this.headers[Q-1]=Buffer.concat([this.headers[Q-1],A]);let B=this.headers[Q-2];if(B.length===10){let I=r.bufferToLowerCasedHeaderName(B);if(I==="keep-alive")this.keepAlive+=A.toString();else if(I==="connection")this.connection+=A.toString()}else if(B.length===14&&r.bufferToLowerCasedHeaderName(B)==="content-length")this.contentLength+=A.toString();this.trackHeader(A.length)}trackHeader(A){if(this.headersSize+=A,this.headersSize>=this.headersMaxSize)r.destroy(this.socket,new d5A)}onUpgrade(A){let{upgrade:Q,client:B,socket:I,headers:C,statusCode:E}=this;p(Q),p(B[jJ]===I),p(!I.destroyed),p(!this.paused),p((C.length&1)===0);let Y=B[jI][B[rB]];p(Y),p(Y.upgrade||Y.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,this.headers=[],this.headersSize=0,I.unshift(A),I[lA].destroy(),I[lA]=null,I[z4]=null,I[tB]=null,IKA(I),B[jJ]=null,B[Fj]=null,B[jI][B[rB]++]=null,B.emit("disconnect",B[Jj],[B],new NJ("upgrade"));try{Y.onUpgrade(E,C,I)}catch(J){r.destroy(I,J)}B[$E]()}onHeadersComplete(A,Q,B){let{client:I,socket:C,headers:E,statusText:Y}=this;if(C.destroyed)return-1;let J=I[jI][I[rB]];if(!J)return-1;if(p(!this.upgrade),p(this.statusCode<200),A===100)return r.destroy(C,new c9("bad response",r.getSocketInfo(C))),-1;if(Q&&!J.upgrade)return r.destroy(C,new c9("bad upgrade",r.getSocketInfo(C))),-1;if(p(this.timeoutType===RJ),this.statusCode=A,this.shouldKeepAlive=B||J.method==="HEAD"&&!C[FB]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let G=J.bodyTimeout!=null?J.bodyTimeout:I[t5A];this.setTimeout(G,d9)}else if(this.timeout){if(this.timeout.refresh)this.timeout.refresh()}if(J.method==="CONNECT")return p(I[gQ]===1),this.upgrade=!0,2;if(Q)return p(I[gQ]===1),this.upgrade=!0,2;if(p((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&I[m9]){let G=this.keepAlive?r.parseKeepAliveTimeout(this.keepAlive):null;if(G!=null){let D=Math.min(G-I[s5A],I[a5A]);if(D<=0)C[FB]=!0;else I[u9]=D}else I[u9]=I[i5A]}else C[FB]=!0;let F=J.onHeaders(A,E,this.resume,Y)===!1;if(J.aborted)return-1;if(J.method==="HEAD")return 1;if(A<200)return 1;if(C[iG])C[iG]=!1,I[$E]();return F?AC.ERROR.PAUSED:0}onBody(A){let{client:Q,socket:B,statusCode:I,maxResponseSize:C}=this;if(B.destroyed)return-1;let E=Q[jI][Q[rB]];if(p(E),p(this.timeoutType===d9),this.timeout){if(this.timeout.refresh)this.timeout.refresh()}if(p(I>=200),C>-1&&this.bytesRead+A.length>C)return r.destroy(B,new l5A),-1;if(this.bytesRead+=A.length,E.onData(A)===!1)return AC.ERROR.PAUSED}onMessageComplete(){let{client:A,socket:Q,statusCode:B,upgrade:I,headers:C,contentLength:E,bytesRead:Y,shouldKeepAlive:J}=this;if(Q.destroyed&&(!B||J))return-1;if(I)return;p(B>=100),p((this.headers.length&1)===0);let F=A[jI][A[rB]];if(p(F),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",this.headers=[],this.headersSize=0,B<200)return;if(F.method!=="HEAD"&&E&&Y!==parseInt(E,10))return r.destroy(Q,new b5A),-1;if(F.onComplete(C),A[jI][A[rB]++]=null,Q[HE])return p(A[gQ]===0),r.destroy(Q,new NJ("reset")),AC.ERROR.PAUSED;else if(!J)return r.destroy(Q,new NJ("reset")),AC.ERROR.PAUSED;else if(Q[FB]&&A[gQ]===0)return r.destroy(Q,new NJ("reset")),AC.ERROR.PAUSED;else if(A[m9]==null||A[m9]===1)setImmediate(()=>A[$E]());else A[$E]()}}function Ij(A){let{socket:Q,timeoutType:B,client:I,paused:C}=A.deref();if(B===RJ){if(!Q[HE]||Q.writableNeedDrain||I[gQ]>1)p(!C,"cannot be paused while waiting for headers"),r.destroy(Q,new m5A)}else if(B===d9){if(!C)r.destroy(Q,new c5A)}else if(B===M4)p(I[gQ]===0&&I[u9]),r.destroy(Q,new NJ("socket idle timeout"))}async function YKA(A,Q){if(A[jJ]=Q,!V4)V4=await H4,H4=null;Q[lG]=!1,Q[HE]=!1,Q[FB]=!1,Q[iG]=!1,Q[lA]=new Gj(A,Q,V4),x9(Q,"error",function(I){p(I.code!=="ERR_TLS_CERT_ALTNAME_INVALID");let C=this[lA];if(I.code==="ECONNRESET"&&C.statusCode&&!C.shouldKeepAlive){C.onMessageComplete();return}this[tB]=I,this[z4][QKA](I)}),x9(Q,"readable",function(){let I=this[lA];if(I)I.readMore()}),x9(Q,"end",function(){let I=this[lA];if(I.statusCode&&!I.shouldKeepAlive){I.onMessageComplete();return}r.destroy(this,new c9("other side closed",r.getSocketInfo(this)))}),x9(Q,"close",function(){let I=this[z4],C=this[lA];if(C){if(!this[tB]&&C.statusCode&&!C.shouldKeepAlive)C.onMessageComplete();this[lA].destroy(),this[lA]=null}let E=this[tB]||new c9("closed",r.getSocketInfo(this));if(I[jJ]=null,I[Fj]=null,I.destroyed){p(I[p5A]===0);let Y=I[jI].splice(I[rB]);for(let J=0;J0&&E.code!=="UND_ERR_INFO"){let Y=I[jI][I[rB]];I[jI][I[rB]++]=null,r.errorRequest(I,Y,E)}I[o5A]=I[rB],p(I[gQ]===0),I.emit("disconnect",I[Jj],[I],E),I[$E]()});let B=!1;return Q.on("close",()=>{B=!0}),{version:"h1",defaultPipelining:1,write(...I){return GKA(A,...I)},resume(){JKA(A)},destroy(I,C){if(B)queueMicrotask(C);else Q.destroy(I).on("close",C)},get destroyed(){return Q.destroyed},busy(I){if(Q[HE]||Q[FB]||Q[iG])return!0;if(I){if(A[gQ]>0&&!I.idempotent)return!0;if(A[gQ]>0&&(I.upgrade||I.method==="CONNECT"))return!0;if(A[gQ]>0&&r.bodyLength(I.body)!==0&&(r.isStream(I.body)||r.isAsyncIterable(I.body)||r.isFormDataLike(I.body)))return!0}return!1}}}function JKA(A){let Q=A[jJ];if(Q&&!Q.destroyed){if(A[Qj]===0){if(!Q[lG]&&Q.unref)Q.unref(),Q[lG]=!0}else if(Q[lG]&&Q.ref)Q.ref(),Q[lG]=!1;if(A[Qj]===0){if(Q[lA].timeoutType!==M4)Q[lA].setTimeout(A[u9],M4)}else if(A[gQ]>0&&Q[lA].statusCode<200){if(Q[lA].timeoutType!==RJ){let B=A[jI][A[rB]],I=B.headersTimeout!=null?B.headersTimeout:A[r5A];Q[lA].setTimeout(I,RJ)}}}}function FKA(A){return A!=="GET"&&A!=="HEAD"&&A!=="OPTIONS"&&A!=="TRACE"&&A!=="CONNECT"}function GKA(A,Q){let{method:B,path:I,host:C,upgrade:E,blocking:Y,reset:J}=Q,{body:F,headers:G,contentLength:D}=Q,Z=B==="PUT"||B==="POST"||B==="PATCH"||B==="QUERY"||B==="PROPFIND"||B==="PROPPATCH";if(r.isFormDataLike(F)){if(!K4)K4=LJ().extractBody;let[V,z]=K4(F);if(Q.contentType==null)G.push("content-type",z);F=V.stream,D=V.length}else if(r.isBlobLike(F)&&Q.contentType==null&&F.type)G.push("content-type",F.type);if(F&&typeof F.read==="function")F.read(0);let W=r.bodyLength(F);if(D=W??D,D===null)D=Q.contentLength;if(D===0&&!Z)D=null;if(FKA(B)&&D>0&&Q.contentLength!==null&&Q.contentLength!==D){if(A[$4])return r.errorRequest(A,Q,new v0),!1;process.emitWarning(new v0)}let U=A[jJ],w=(V)=>{if(Q.aborted||Q.completed)return;r.errorRequest(A,Q,V||new Yj),r.destroy(F),r.destroy(U,new NJ("aborted"))};try{Q.onConnect(w)}catch(V){r.errorRequest(A,Q,V)}if(Q.aborted)return!1;if(B==="HEAD")U[FB]=!0;if(E||B==="CONNECT")U[FB]=!0;if(J!=null)U[FB]=J;if(A[Bj]&&U[e5A]++>=A[Bj])U[FB]=!0;if(Y)U[iG]=!0;let K=`${B} ${I} HTTP/1.1\r +`);if(U.push(M,V,W),typeof V.size==="number")E+=M.byteLength+V.size+W.byteLength;else w=!0}let K=kW.encode(`--${F}--\r +`);if(U.push(K),E+=K.byteLength,w)E=null;C=A,I=async function*(){for(let X of U)if(X.stream)yield*X.stream();else yield X},Y=`multipart/form-data; boundary=${F}`}else if(bL(A)){if(C=A,E=A.size,A.type)Y=A.type}else if(typeof A[Symbol.asyncIterator]==="function"){if(Q)throw TypeError("keepalive");if(DD.isDisturbed(A)||A.locked)throw TypeError("Response body object should not be disturbed or locked");B=A instanceof ReadableStream?A:ADA(A)}if(typeof C==="string"||DD.isBuffer(C))E=Buffer.byteLength(C);if(I!=null){let F;B=new ReadableStream({async start(){F=I(A)[Symbol.asyncIterator]()},async pull(G){let{value:D,done:Z}=await F.next();if(Z)queueMicrotask(()=>{G.close(),G.byobRequest?.respond(0)});else if(!uL(B)){let U=new Uint8Array(D);if(U.byteLength)G.enqueue(U)}return G.desiredSize>0},async cancel(G){await F.return()},type:"bytes"})}return[{stream:B,source:C,length:E},Y]}function WDA(A,Q=!1){if(A instanceof ReadableStream)n1(!DD.isDisturbed(A),"The body has already been consumed."),n1(!A.locked,"The stream is locked.");return iL(A,Q)}function wDA(A,Q){let[B,I]=Q.stream.tee();return Q.stream=B,{stream:I,length:Q.length,source:Q.source}}function XDA(A){if(A.aborted)throw new DOMException("The operation was aborted.","AbortError")}function VDA(A){return{blob(){return dJ(this,(B)=>{let I=dL(this);if(I===null)I="";else if(I)I=DDA(I);return new JDA([B],{type:I})},A)},arrayBuffer(){return dJ(this,(B)=>{return new Uint8Array(B).buffer},A)},text(){return dJ(this,cL,A)},json(){return dJ(this,zDA,A)},formData(){return dJ(this,(B)=>{let I=dL(this);if(I!==null)switch(I.essence){case"multipart/form-data":{let C=ZDA(B,I);if(C==="failure")throw TypeError("Failed to parse body as FormData.");let E=new mL;return E[cJ]=C,E}case"application/x-www-form-urlencoded":{let C=new URLSearchParams(B.toString()),E=new mL;for(let[Y,J]of C)E.append(Y,J);return E}}throw TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},A)},bytes(){return dJ(this,(B)=>{return new Uint8Array(B)},A)}}}function KDA(A){Object.assign(A.prototype,VDA(A))}async function dJ(A,Q,B){if(YDA.brandCheck(A,B),oL(A))throw TypeError("Body is unusable: Body has already been read");XDA(A[cJ]);let I=IDA(),C=(Y)=>I.reject(Y),E=(Y)=>{try{I.resolve(Q(Y))}catch(J){C(J)}};if(A[cJ].body==null)return E(Buffer.allocUnsafe(0)),I.promise;return await CDA(A[cJ].body,E,C),I.promise}function oL(A){let Q=A[cJ].body;return Q!=null&&(Q.stream.locked||DD.isDisturbed(Q.stream))}function zDA(A){return JSON.parse(cL(A))}function dL(A){let Q=A[cJ].headersList,B=EDA(Q);if(B==="failure")return null;return B}nL.exports={extractBody:iL,safelyExtractBody:WDA,cloneBody:wDA,mixinBody:KDA,streamRegistry:pL,hasFinalizationRegistry:lL,bodyUnusable:oL}});var YN=z((tuA,EN)=>{var BA=j("node:assert"),UA=$A(),{channels:sL}=gJ(),a1=_1(),{RequestContentLengthMismatchError:p0,ResponseContentLengthMismatchError:$DA,RequestAbortedError:QN,HeadersTimeoutError:HDA,HeadersOverflowError:MDA,SocketError:fW,InformationalError:lJ,BodyTimeoutError:LDA,HTTPParserError:NDA,ResponseExceededMaxSizeError:jDA}=PA(),{kUrl:BN,kReset:$B,kClient:A8,kParser:JQ,kBlocking:WD,kRunning:oQ,kPending:RDA,kSize:aL,kWriting:TE,kQueue:PI,kNoRef:ZD,kKeepAliveDefaultTimeout:qDA,kHostHeader:PDA,kPendingIdx:ODA,kRunningIdx:BI,kError:II,kPipelining:yW,kSocket:pJ,kKeepAliveTimeoutValue:hW,kMaxHeadersSize:r1,kKeepAliveMaxTimeout:kDA,kKeepAliveTimeoutThreshold:gDA,kHeadersTimeout:TDA,kBodyTimeout:_DA,kStrictContentLength:Q8,kMaxRequests:rL,kCounter:yDA,kMaxResponseSize:SDA,kOnError:fDA,kResume:gE,kHTTPContext:IN}=AQ(),CC=cM(),hDA=Buffer.alloc(0),gW=Buffer[Symbol.species],TW=UA.addListener,xDA=UA.removeAllListeners,t1;async function vDA(){let A=process.env.JEST_WORKER_ID?v1():void 0,Q;try{Q=await WebAssembly.compile(pM())}catch(B){Q=await WebAssembly.compile(A||v1())}return await WebAssembly.instantiate(Q,{env:{wasm_on_url:(B,I,C)=>{return 0},wasm_on_status:(B,I,C)=>{BA(NQ.ptr===B);let E=I-YC+EC.byteOffset;return NQ.onStatus(new gW(EC.buffer,E,C))||0},wasm_on_message_begin:(B)=>{return BA(NQ.ptr===B),NQ.onMessageBegin()||0},wasm_on_header_field:(B,I,C)=>{BA(NQ.ptr===B);let E=I-YC+EC.byteOffset;return NQ.onHeaderField(new gW(EC.buffer,E,C))||0},wasm_on_header_value:(B,I,C)=>{BA(NQ.ptr===B);let E=I-YC+EC.byteOffset;return NQ.onHeaderValue(new gW(EC.buffer,E,C))||0},wasm_on_headers_complete:(B,I,C,E)=>{return BA(NQ.ptr===B),NQ.onHeadersComplete(I,Boolean(C),Boolean(E))||0},wasm_on_body:(B,I,C)=>{BA(NQ.ptr===B);let E=I-YC+EC.byteOffset;return NQ.onBody(new gW(EC.buffer,E,C))||0},wasm_on_message_complete:(B)=>{return BA(NQ.ptr===B),NQ.onMessageComplete()||0}}})}var e1=null,B8=vDA();B8.catch();var NQ=null,EC=null,_W=0,YC=null,bDA=0,UD=1,iJ=2|UD,SW=4|UD,I8=8|bDA;class CN{constructor(A,Q,{exports:B}){BA(Number.isFinite(A[r1])&&A[r1]>0),this.llhttp=B,this.ptr=this.llhttp.llhttp_alloc(CC.TYPE.RESPONSE),this.client=A,this.socket=Q,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=A[r1],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=A[SDA]}setTimeout(A,Q){if(A!==this.timeoutValue||Q&UD^this.timeoutType&UD){if(this.timeout)a1.clearTimeout(this.timeout),this.timeout=null;if(A)if(Q&UD)this.timeout=a1.setFastTimeout(tL,A,new WeakRef(this));else this.timeout=setTimeout(tL,A,new WeakRef(this)),this.timeout.unref();this.timeoutValue=A}else if(this.timeout){if(this.timeout.refresh)this.timeout.refresh()}this.timeoutType=Q}resume(){if(this.socket.destroyed||!this.paused)return;if(BA(this.ptr!=null),BA(NQ==null),this.llhttp.llhttp_resume(this.ptr),BA(this.timeoutType===SW),this.timeout){if(this.timeout.refresh)this.timeout.refresh()}this.paused=!1,this.execute(this.socket.read()||hDA),this.readMore()}readMore(){while(!this.paused&&this.ptr){let A=this.socket.read();if(A===null)break;this.execute(A)}}execute(A){BA(this.ptr!=null),BA(NQ==null),BA(!this.paused);let{socket:Q,llhttp:B}=this;if(A.length>_W){if(YC)B.free(YC);_W=Math.ceil(A.length/4096)*4096,YC=B.malloc(_W)}new Uint8Array(B.memory.buffer,YC,_W).set(A);try{let I;try{EC=A,NQ=this,I=B.llhttp_execute(this.ptr,YC,A.length)}catch(E){throw E}finally{NQ=null,EC=null}let C=B.llhttp_get_error_pos(this.ptr)-YC;if(I===CC.ERROR.PAUSED_UPGRADE)this.onUpgrade(A.slice(C));else if(I===CC.ERROR.PAUSED)this.paused=!0,Q.unshift(A.slice(C));else if(I!==CC.ERROR.OK){let E=B.llhttp_get_error_reason(this.ptr),Y="";if(E){let J=new Uint8Array(B.memory.buffer,E).indexOf(0);Y="Response does not match the HTTP/1.1 protocol ("+Buffer.from(B.memory.buffer,E,J).toString()+")"}throw new NDA(Y,CC.ERROR[I],A.slice(C))}}catch(I){UA.destroy(Q,I)}}destroy(){BA(this.ptr!=null),BA(NQ==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&a1.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(A){this.statusText=A.toString()}onMessageBegin(){let{socket:A,client:Q}=this;if(A.destroyed)return-1;let B=Q[PI][Q[BI]];if(!B)return-1;B.onResponseStarted()}onHeaderField(A){let Q=this.headers.length;if((Q&1)===0)this.headers.push(A);else this.headers[Q-1]=Buffer.concat([this.headers[Q-1],A]);this.trackHeader(A.length)}onHeaderValue(A){let Q=this.headers.length;if((Q&1)===1)this.headers.push(A),Q+=1;else this.headers[Q-1]=Buffer.concat([this.headers[Q-1],A]);let B=this.headers[Q-2];if(B.length===10){let I=UA.bufferToLowerCasedHeaderName(B);if(I==="keep-alive")this.keepAlive+=A.toString();else if(I==="connection")this.connection+=A.toString()}else if(B.length===14&&UA.bufferToLowerCasedHeaderName(B)==="content-length")this.contentLength+=A.toString();this.trackHeader(A.length)}trackHeader(A){if(this.headersSize+=A,this.headersSize>=this.headersMaxSize)UA.destroy(this.socket,new MDA)}onUpgrade(A){let{upgrade:Q,client:B,socket:I,headers:C,statusCode:E}=this;BA(Q),BA(B[pJ]===I),BA(!I.destroyed),BA(!this.paused),BA((C.length&1)===0);let Y=B[PI][B[BI]];BA(Y),BA(Y.upgrade||Y.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,this.headers=[],this.headersSize=0,I.unshift(A),I[JQ].destroy(),I[JQ]=null,I[A8]=null,I[II]=null,xDA(I),B[pJ]=null,B[IN]=null,B[PI][B[BI]++]=null,B.emit("disconnect",B[BN],[B],new lJ("upgrade"));try{Y.onUpgrade(E,C,I)}catch(J){UA.destroy(I,J)}B[gE]()}onHeadersComplete(A,Q,B){let{client:I,socket:C,headers:E,statusText:Y}=this;if(C.destroyed)return-1;let J=I[PI][I[BI]];if(!J)return-1;if(BA(!this.upgrade),BA(this.statusCode<200),A===100)return UA.destroy(C,new fW("bad response",UA.getSocketInfo(C))),-1;if(Q&&!J.upgrade)return UA.destroy(C,new fW("bad upgrade",UA.getSocketInfo(C))),-1;if(BA(this.timeoutType===iJ),this.statusCode=A,this.shouldKeepAlive=B||J.method==="HEAD"&&!C[$B]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let G=J.bodyTimeout!=null?J.bodyTimeout:I[_DA];this.setTimeout(G,SW)}else if(this.timeout){if(this.timeout.refresh)this.timeout.refresh()}if(J.method==="CONNECT")return BA(I[oQ]===1),this.upgrade=!0,2;if(Q)return BA(I[oQ]===1),this.upgrade=!0,2;if(BA((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&I[yW]){let G=this.keepAlive?UA.parseKeepAliveTimeout(this.keepAlive):null;if(G!=null){let D=Math.min(G-I[gDA],I[kDA]);if(D<=0)C[$B]=!0;else I[hW]=D}else I[hW]=I[qDA]}else C[$B]=!0;let F=J.onHeaders(A,E,this.resume,Y)===!1;if(J.aborted)return-1;if(J.method==="HEAD")return 1;if(A<200)return 1;if(C[WD])C[WD]=!1,I[gE]();return F?CC.ERROR.PAUSED:0}onBody(A){let{client:Q,socket:B,statusCode:I,maxResponseSize:C}=this;if(B.destroyed)return-1;let E=Q[PI][Q[BI]];if(BA(E),BA(this.timeoutType===SW),this.timeout){if(this.timeout.refresh)this.timeout.refresh()}if(BA(I>=200),C>-1&&this.bytesRead+A.length>C)return UA.destroy(B,new jDA),-1;if(this.bytesRead+=A.length,E.onData(A)===!1)return CC.ERROR.PAUSED}onMessageComplete(){let{client:A,socket:Q,statusCode:B,upgrade:I,headers:C,contentLength:E,bytesRead:Y,shouldKeepAlive:J}=this;if(Q.destroyed&&(!B||J))return-1;if(I)return;BA(B>=100),BA((this.headers.length&1)===0);let F=A[PI][A[BI]];if(BA(F),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",this.headers=[],this.headersSize=0,B<200)return;if(F.method!=="HEAD"&&E&&Y!==parseInt(E,10))return UA.destroy(Q,new $DA),-1;if(F.onComplete(C),A[PI][A[BI]++]=null,Q[TE])return BA(A[oQ]===0),UA.destroy(Q,new lJ("reset")),CC.ERROR.PAUSED;else if(!J)return UA.destroy(Q,new lJ("reset")),CC.ERROR.PAUSED;else if(Q[$B]&&A[oQ]===0)return UA.destroy(Q,new lJ("reset")),CC.ERROR.PAUSED;else if(A[yW]==null||A[yW]===1)setImmediate(()=>A[gE]());else A[gE]()}}function tL(A){let{socket:Q,timeoutType:B,client:I,paused:C}=A.deref();if(B===iJ){if(!Q[TE]||Q.writableNeedDrain||I[oQ]>1)BA(!C,"cannot be paused while waiting for headers"),UA.destroy(Q,new HDA)}else if(B===SW){if(!C)UA.destroy(Q,new LDA)}else if(B===I8)BA(I[oQ]===0&&I[hW]),UA.destroy(Q,new lJ("socket idle timeout"))}async function mDA(A,Q){if(A[pJ]=Q,!e1)e1=await B8,B8=null;Q[ZD]=!1,Q[TE]=!1,Q[$B]=!1,Q[WD]=!1,Q[JQ]=new CN(A,Q,e1),TW(Q,"error",function(I){BA(I.code!=="ERR_TLS_CERT_ALTNAME_INVALID");let C=this[JQ];if(I.code==="ECONNRESET"&&C.statusCode&&!C.shouldKeepAlive){C.onMessageComplete();return}this[II]=I,this[A8][fDA](I)}),TW(Q,"readable",function(){let I=this[JQ];if(I)I.readMore()}),TW(Q,"end",function(){let I=this[JQ];if(I.statusCode&&!I.shouldKeepAlive){I.onMessageComplete();return}UA.destroy(this,new fW("other side closed",UA.getSocketInfo(this)))}),TW(Q,"close",function(){let I=this[A8],C=this[JQ];if(C){if(!this[II]&&C.statusCode&&!C.shouldKeepAlive)C.onMessageComplete();this[JQ].destroy(),this[JQ]=null}let E=this[II]||new fW("closed",UA.getSocketInfo(this));if(I[pJ]=null,I[IN]=null,I.destroyed){BA(I[RDA]===0);let Y=I[PI].splice(I[BI]);for(let J=0;J0&&E.code!=="UND_ERR_INFO"){let Y=I[PI][I[BI]];I[PI][I[BI]++]=null,UA.errorRequest(I,Y,E)}I[ODA]=I[BI],BA(I[oQ]===0),I.emit("disconnect",I[BN],[I],E),I[gE]()});let B=!1;return Q.on("close",()=>{B=!0}),{version:"h1",defaultPipelining:1,write(...I){return uDA(A,...I)},resume(){dDA(A)},destroy(I,C){if(B)queueMicrotask(C);else Q.destroy(I).on("close",C)},get destroyed(){return Q.destroyed},busy(I){if(Q[TE]||Q[$B]||Q[WD])return!0;if(I){if(A[oQ]>0&&!I.idempotent)return!0;if(A[oQ]>0&&(I.upgrade||I.method==="CONNECT"))return!0;if(A[oQ]>0&&UA.bodyLength(I.body)!==0&&(UA.isStream(I.body)||UA.isAsyncIterable(I.body)||UA.isFormDataLike(I.body)))return!0}return!1}}}function dDA(A){let Q=A[pJ];if(Q&&!Q.destroyed){if(A[aL]===0){if(!Q[ZD]&&Q.unref)Q.unref(),Q[ZD]=!0}else if(Q[ZD]&&Q.ref)Q.ref(),Q[ZD]=!1;if(A[aL]===0){if(Q[JQ].timeoutType!==I8)Q[JQ].setTimeout(A[hW],I8)}else if(A[oQ]>0&&Q[JQ].statusCode<200){if(Q[JQ].timeoutType!==iJ){let B=A[PI][A[BI]],I=B.headersTimeout!=null?B.headersTimeout:A[TDA];Q[JQ].setTimeout(I,iJ)}}}}function cDA(A){return A!=="GET"&&A!=="HEAD"&&A!=="OPTIONS"&&A!=="TRACE"&&A!=="CONNECT"}function uDA(A,Q){let{method:B,path:I,host:C,upgrade:E,blocking:Y,reset:J}=Q,{body:F,headers:G,contentLength:D}=Q,Z=B==="PUT"||B==="POST"||B==="PATCH"||B==="QUERY"||B==="PROPFIND"||B==="PROPPATCH";if(UA.isFormDataLike(F)){if(!t1)t1=uJ().extractBody;let[X,V]=t1(F);if(Q.contentType==null)G.push("content-type",V);F=X.stream,D=X.length}else if(UA.isBlobLike(F)&&Q.contentType==null&&F.type)G.push("content-type",F.type);if(F&&typeof F.read==="function")F.read(0);let U=UA.bodyLength(F);if(D=U??D,D===null)D=Q.contentLength;if(D===0&&!Z)D=null;if(cDA(B)&&D>0&&Q.contentLength!==null&&Q.contentLength!==D){if(A[Q8])return UA.errorRequest(A,Q,new p0),!1;process.emitWarning(new p0)}let W=A[pJ],w=(X)=>{if(Q.aborted||Q.completed)return;UA.errorRequest(A,Q,X||new QN),UA.destroy(F),UA.destroy(W,new lJ("aborted"))};try{Q.onConnect(w)}catch(X){UA.errorRequest(A,Q,X)}if(Q.aborted)return!1;if(B==="HEAD")W[$B]=!0;if(E||B==="CONNECT")W[$B]=!0;if(J!=null)W[$B]=J;if(A[rL]&&W[yDA]++>=A[rL])W[$B]=!0;if(Y)W[WD]=!0;let K=`${B} ${I} HTTP/1.1\r `;if(typeof C==="string")K+=`host: ${C}\r -`;else K+=A[n5A];if(E)K+=`connection: upgrade\r +`;else K+=A[PDA];if(E)K+=`connection: upgrade\r upgrade: ${E}\r -`;else if(A[m9]&&!U[FB])K+=`connection: keep-alive\r +`;else if(A[yW]&&!W[$B])K+=`connection: keep-alive\r `;else K+=`connection: close\r -`;if(Array.isArray(G))for(let V=0;V{Q.removeListener("error",U)}),!F){let w=new Yj;queueMicrotask(()=>U(w))}},U=function(w){if(F)return;if(F=!0,p(C.destroyed||C[HE]&&B[gQ]<=1),C.off("drain",Z).off("error",U),Q.removeListener("data",D).removeListener("end",U).removeListener("close",W),!w)try{G.end()}catch(K){w=K}if(G.destroy(w),w&&(w.code!=="UND_ERR_INFO"||w.message!=="reset"))r.destroy(Q,w);else r.destroy(Q)};if(Q.on("data",D).on("end",U).on("error",U).on("close",W),Q.resume)Q.resume();if(C.on("drain",Z).on("error",U),Q.errorEmitted??Q.errored)setImmediate(()=>U(Q.errored));else if(Q.endEmitted??Q.readableEnded)setImmediate(()=>U(null));if(Q.closeEmitted??Q.closed)setImmediate(W)}function Cj(A,Q,B,I,C,E,Y,J){try{if(!Q)if(E===0)C.write(`${Y}content-length: 0\r +`;if(Array.isArray(G))for(let X=0;X{Q.removeListener("error",W)}),!F){let w=new QN;queueMicrotask(()=>W(w))}},W=function(w){if(F)return;if(F=!0,BA(C.destroyed||C[TE]&&B[oQ]<=1),C.off("drain",Z).off("error",W),Q.removeListener("data",D).removeListener("end",W).removeListener("close",U),!w)try{G.end()}catch(K){w=K}if(G.destroy(w),w&&(w.code!=="UND_ERR_INFO"||w.message!=="reset"))UA.destroy(Q,w);else UA.destroy(Q)};if(Q.on("data",D).on("end",W).on("error",W).on("close",U),Q.resume)Q.resume();if(C.on("drain",Z).on("error",W),Q.errorEmitted??Q.errored)setImmediate(()=>W(Q.errored));else if(Q.endEmitted??Q.readableEnded)setImmediate(()=>W(null));if(Q.closeEmitted??Q.closed)setImmediate(U)}function eL(A,Q,B,I,C,E,Y,J){try{if(!Q)if(E===0)C.write(`${Y}content-length: 0\r \r -`,"latin1");else p(E===null,"no body must not have content length"),C.write(`${Y}\r -`,"latin1");else if(r.isBuffer(Q)){if(p(E===Q.byteLength,"buffer body must have content length"),C.cork(),C.write(`${Y}content-length: ${E}\r +`,"latin1");else BA(E===null,"no body must not have content length"),C.write(`${Y}\r +`,"latin1");else if(UA.isBuffer(Q)){if(BA(E===Q.byteLength,"buffer body must have content length"),C.cork(),C.write(`${Y}content-length: ${E}\r \r -`,"latin1"),C.write(Q),C.uncork(),I.onBodySent(Q),!J&&I.reset!==!1)C[FB]=!0}I.onRequestSent(),B[$E]()}catch(F){A(F)}}async function ZKA(A,Q,B,I,C,E,Y,J){p(E===Q.size,"blob body must have content length");try{if(E!=null&&E!==Q.size)throw new v0;let F=Buffer.from(await Q.arrayBuffer());if(C.cork(),C.write(`${Y}content-length: ${E}\r +`,"latin1"),C.write(Q),C.uncork(),I.onBodySent(Q),!J&&I.reset!==!1)C[$B]=!0}I.onRequestSent(),B[gE]()}catch(F){A(F)}}async function pDA(A,Q,B,I,C,E,Y,J){BA(E===Q.size,"blob body must have content length");try{if(E!=null&&E!==Q.size)throw new p0;let F=Buffer.from(await Q.arrayBuffer());if(C.cork(),C.write(`${Y}content-length: ${E}\r \r -`,"latin1"),C.write(F),C.uncork(),I.onBodySent(F),I.onRequestSent(),!J&&I.reset!==!1)C[FB]=!0;B[$E]()}catch(F){A(F)}}async function Ej(A,Q,B,I,C,E,Y,J){p(E!==0||B[gQ]===0,"iterator body cannot be pipelined");let F=null;function G(){if(F){let W=F;F=null,W()}}let D=()=>new Promise((W,U)=>{if(p(F===null),C[tB])U(C[tB]);else F=W});C.on("close",G).on("drain",G);let Z=new L4({abort:A,socket:C,request:I,contentLength:E,client:B,expectsPayload:J,header:Y});try{for await(let W of Q){if(C[tB])throw C[tB];if(!Z.write(W))await D()}Z.end()}catch(W){Z.destroy(W)}finally{C.off("close",G).off("drain",G)}}class L4{constructor({abort:A,socket:Q,request:B,contentLength:I,client:C,expectsPayload:E,header:Y}){this.socket=Q,this.request=B,this.contentLength=I,this.client=C,this.bytesWritten=0,this.expectsPayload=E,this.header=Y,this.abort=A,Q[HE]=!0}write(A){let{socket:Q,request:B,contentLength:I,client:C,bytesWritten:E,expectsPayload:Y,header:J}=this;if(Q[tB])throw Q[tB];if(Q.destroyed)return!1;let F=Buffer.byteLength(A);if(!F)return!0;if(I!==null&&E+F>I){if(C[$4])throw new v0;process.emitWarning(new v0)}if(Q.cork(),E===0){if(!Y&&B.reset!==!1)Q[FB]=!0;if(I===null)Q.write(`${J}transfer-encoding: chunked\r +`,"latin1"),C.write(F),C.uncork(),I.onBodySent(F),I.onRequestSent(),!J&&I.reset!==!1)C[$B]=!0;B[gE]()}catch(F){A(F)}}async function AN(A,Q,B,I,C,E,Y,J){BA(E!==0||B[oQ]===0,"iterator body cannot be pipelined");let F=null;function G(){if(F){let U=F;F=null,U()}}let D=()=>new Promise((U,W)=>{if(BA(F===null),C[II])W(C[II]);else F=U});C.on("close",G).on("drain",G);let Z=new C8({abort:A,socket:C,request:I,contentLength:E,client:B,expectsPayload:J,header:Y});try{for await(let U of Q){if(C[II])throw C[II];if(!Z.write(U))await D()}Z.end()}catch(U){Z.destroy(U)}finally{C.off("close",G).off("drain",G)}}class C8{constructor({abort:A,socket:Q,request:B,contentLength:I,client:C,expectsPayload:E,header:Y}){this.socket=Q,this.request=B,this.contentLength=I,this.client=C,this.bytesWritten=0,this.expectsPayload=E,this.header=Y,this.abort=A,Q[TE]=!0}write(A){let{socket:Q,request:B,contentLength:I,client:C,bytesWritten:E,expectsPayload:Y,header:J}=this;if(Q[II])throw Q[II];if(Q.destroyed)return!1;let F=Buffer.byteLength(A);if(!F)return!0;if(I!==null&&E+F>I){if(C[Q8])throw new p0;process.emitWarning(new p0)}if(Q.cork(),E===0){if(!Y&&B.reset!==!1)Q[$B]=!0;if(I===null)Q.write(`${J}transfer-encoding: chunked\r `,"latin1");else Q.write(`${J}content-length: ${I}\r \r `,"latin1")}if(I===null)Q.write(`\r ${F.toString(16)}\r -`,"latin1");this.bytesWritten+=F;let G=Q.write(A);if(Q.uncork(),B.onBodySent(A),!G){if(Q[lA].timeout&&Q[lA].timeoutType===RJ){if(Q[lA].timeout.refresh)Q[lA].timeout.refresh()}}return G}end(){let{socket:A,contentLength:Q,client:B,bytesWritten:I,expectsPayload:C,header:E,request:Y}=this;if(Y.onRequestSent(),A[HE]=!1,A[tB])throw A[tB];if(A.destroyed)return;if(I===0)if(C)A.write(`${E}content-length: 0\r +`,"latin1");this.bytesWritten+=F;let G=Q.write(A);if(Q.uncork(),B.onBodySent(A),!G){if(Q[JQ].timeout&&Q[JQ].timeoutType===iJ){if(Q[JQ].timeout.refresh)Q[JQ].timeout.refresh()}}return G}end(){let{socket:A,contentLength:Q,client:B,bytesWritten:I,expectsPayload:C,header:E,request:Y}=this;if(Y.onRequestSent(),A[TE]=!1,A[II])throw A[II];if(A.destroyed)return;if(I===0)if(C)A.write(`${E}content-length: 0\r \r `,"latin1");else A.write(`${E}\r `,"latin1");else if(Q===null)A.write(`\r 0\r \r -`,"latin1");if(Q!==null&&I!==Q)if(B[$4])throw new v0;else process.emitWarning(new v0);if(A[lA].timeout&&A[lA].timeoutType===RJ){if(A[lA].timeout.refresh)A[lA].timeout.refresh()}B[$E]()}destroy(A){let{socket:Q,client:B,abort:I}=this;if(Q[HE]=!1,A)p(B[gQ]<=1,"pipeline should only contain this request"),I(A)}}Dj.exports=YKA});var $j=X((TWQ,zj)=>{var eB=H("node:assert"),{pipeline:WKA}=H("node:stream"),GA=YA(),{RequestContentLengthMismatchError:N4,RequestAbortedError:Wj,SocketError:nG,InformationalError:j4}=UA(),{kUrl:l9,kReset:i9,kClient:qJ,kRunning:n9,kPending:UKA,kQueue:ME,kPendingIdx:R4,kRunningIdx:RI,kError:OI,kSocket:KQ,kStrictContentLength:XKA,kOnError:q4,kMaxConcurrentStreams:Vj,kHTTP2Session:qI,kResume:LE,kSize:wKA,kHTTPContext:KKA}=yA(),gC=Symbol("open streams"),Uj,Xj=!1,p9;try{p9=H("node:http2")}catch{p9={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:VKA,HTTP2_HEADER_METHOD:zKA,HTTP2_HEADER_PATH:$KA,HTTP2_HEADER_SCHEME:HKA,HTTP2_HEADER_CONTENT_LENGTH:MKA,HTTP2_HEADER_EXPECT:LKA,HTTP2_HEADER_STATUS:NKA}}=p9;function jKA(A){let Q=[];for(let[B,I]of Object.entries(A))if(Array.isArray(I))for(let C of I)Q.push(Buffer.from(B),Buffer.from(C));else Q.push(Buffer.from(B),Buffer.from(I));return Q}async function RKA(A,Q){if(A[KQ]=Q,!Xj)Xj=!0,process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"});let B=p9.connect(A[l9],{createConnection:()=>Q,peerMaxConcurrentStreams:A[Vj]});B[gC]=0,B[qJ]=A,B[KQ]=Q,GA.addListener(B,"error",OKA),GA.addListener(B,"frameError",TKA),GA.addListener(B,"end",PKA),GA.addListener(B,"goaway",kKA),GA.addListener(B,"close",function(){let{[qJ]:C}=this,{[KQ]:E}=C,Y=this[KQ][OI]||this[OI]||new nG("closed",GA.getSocketInfo(E));if(C[qI]=null,C.destroyed){eB(C[UKA]===0);let J=C[ME].splice(C[RI]);for(let F=0;F{I=!0}),{version:"h2",defaultPipelining:1/0,write(...C){return gKA(A,...C)},resume(){qKA(A)},destroy(C,E){if(I)queueMicrotask(E);else Q.destroy(C).on("close",E)},get destroyed(){return Q.destroyed},busy(){return!1}}}function qKA(A){let Q=A[KQ];if(Q?.destroyed===!1)if(A[wKA]===0&&A[Vj]===0)Q.unref(),A[qI].unref();else Q.ref(),A[qI].ref()}function OKA(A){eB(A.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[KQ][OI]=A,this[qJ][q4](A)}function TKA(A,Q,B){if(B===0){let I=new j4(`HTTP/2: "frameError" received - type ${A}, code ${Q}`);this[KQ][OI]=I,this[qJ][q4](I)}}function PKA(){let A=new nG("other side closed",GA.getSocketInfo(this[KQ]));this.destroy(A),GA.destroy(this[KQ],A)}function kKA(A){let Q=this[OI]||new nG(`HTTP/2: "GOAWAY" frame received with code ${A}`,GA.getSocketInfo(this)),B=this[qJ];if(B[KQ]=null,B[KKA]=null,this[qI]!=null)this[qI].destroy(Q),this[qI]=null;if(GA.destroy(this[KQ],Q),B[RI]{if(Q.aborted||Q.completed)return;if(N=N||new Wj,GA.errorRequest(A,Q,N),W!=null)GA.destroy(W,N);GA.destroy(D,N),A[ME][A[RI]++]=null,A[LE]()};try{Q.onConnect(K)}catch(N){GA.errorRequest(A,Q,N)}if(Q.aborted)return!1;if(I==="CONNECT"){if(B.ref(),W=B.request(Z,{endStream:!1,signal:F}),W.id&&!W.pending)Q.onUpgrade(null,null,W),++B[gC],A[ME][A[RI]++]=null;else W.once("ready",()=>{Q.onUpgrade(null,null,W),++B[gC],A[ME][A[RI]++]=null});return W.once("close",()=>{if(B[gC]-=1,B[gC]===0)B.unref()}),!0}Z[$KA]=C,Z[HKA]="https";let V=I==="PUT"||I==="POST"||I==="PATCH";if(D&&typeof D.read==="function")D.read(0);let z=GA.bodyLength(D);if(GA.isFormDataLike(D)){Uj??=LJ().extractBody;let[N,T]=Uj(D);Z["content-type"]=T,D=N.stream,z=N.length}if(z==null)z=Q.contentLength;if(z===0||!V)z=null;if(SKA(I)&&z>0&&Q.contentLength!=null&&Q.contentLength!==z){if(A[XKA])return GA.errorRequest(A,Q,new N4),!1;process.emitWarning(new N4)}if(z!=null)eB(D,"no body must not have content length"),Z[MKA]=`${z}`;B.ref();let M=I==="GET"||I==="HEAD"||D===null;if(J)Z[LKA]="100-continue",W=B.request(Z,{endStream:M,signal:F}),W.once("continue",L);else W=B.request(Z,{endStream:M,signal:F}),L();return++B[gC],W.once("response",(N)=>{let{[NKA]:T,...y}=N;if(Q.onResponseStarted(),Q.aborted){let f=new Wj;GA.errorRequest(A,Q,f),GA.destroy(W,f);return}if(Q.onHeaders(Number(T),jKA(y),W.resume.bind(W),"")===!1)W.pause();W.on("data",(f)=>{if(Q.onData(f)===!1)W.pause()})}),W.once("end",()=>{if(W.state?.state==null||W.state.state<6)Q.onComplete([]);if(B[gC]===0)B.unref();K(new j4("HTTP/2: stream half-closed (remote)")),A[ME][A[RI]++]=null,A[R4]=A[RI],A[LE]()}),W.once("close",()=>{if(B[gC]-=1,B[gC]===0)B.unref()}),W.once("error",function(N){K(N)}),W.once("frameError",(N,T)=>{K(new j4(`HTTP/2: "frameError" received - type ${N}, code ${T}`))}),!0;function L(){if(!D||z===0)wj(K,W,null,A,Q,A[KQ],z,V);else if(GA.isBuffer(D))wj(K,W,D,A,Q,A[KQ],z,V);else if(GA.isBlobLike(D))if(typeof D.stream==="function")Kj(K,W,D.stream(),A,Q,A[KQ],z,V);else hKA(K,W,D,A,Q,A[KQ],z,V);else if(GA.isStream(D))yKA(K,A[KQ],V,W,D,A,Q,z);else if(GA.isIterable(D))Kj(K,W,D,A,Q,A[KQ],z,V);else eB(!1)}}function wj(A,Q,B,I,C,E,Y,J){try{if(B!=null&&GA.isBuffer(B))eB(Y===B.byteLength,"buffer body must have content length"),Q.cork(),Q.write(B),Q.uncork(),Q.end(),C.onBodySent(B);if(!J)E[i9]=!0;C.onRequestSent(),I[LE]()}catch(F){A(F)}}function yKA(A,Q,B,I,C,E,Y,J){eB(J!==0||E[n9]===0,"stream body cannot be pipelined");let F=WKA(C,I,(D)=>{if(D)GA.destroy(F,D),A(D);else{if(GA.removeAllListeners(F),Y.onRequestSent(),!B)Q[i9]=!0;E[LE]()}});GA.addListener(F,"data",G);function G(D){Y.onBodySent(D)}}async function hKA(A,Q,B,I,C,E,Y,J){eB(Y===B.size,"blob body must have content length");try{if(Y!=null&&Y!==B.size)throw new N4;let F=Buffer.from(await B.arrayBuffer());if(Q.cork(),Q.write(F),Q.uncork(),Q.end(),C.onBodySent(F),C.onRequestSent(),!J)E[i9]=!0;I[LE]()}catch(F){A(F)}}async function Kj(A,Q,B,I,C,E,Y,J){eB(Y!==0||I[n9]===0,"iterator body cannot be pipelined");let F=null;function G(){if(F){let Z=F;F=null,Z()}}let D=()=>new Promise((Z,W)=>{if(eB(F===null),E[OI])W(E[OI]);else F=Z});Q.on("close",G).on("drain",G);try{for await(let Z of B){if(E[OI])throw E[OI];let W=Q.write(Z);if(C.onBodySent(Z),!W)await D()}if(Q.end(),C.onRequestSent(),!J)E[i9]=!0;I[LE]()}catch(Z){A(Z)}finally{Q.off("close",G).off("drain",G)}}zj.exports=RKA});var o9=X((PWQ,Nj)=>{var IC=YA(),{kBodyUsed:oG}=yA(),T4=H("node:assert"),{InvalidArgumentError:fKA}=UA(),_KA=H("node:events"),vKA=[300,301,302,303,307,308],Hj=Symbol("body");class O4{constructor(A){this[Hj]=A,this[oG]=!1}async*[Symbol.asyncIterator](){T4(!this[oG],"disturbed"),this[oG]=!0,yield*this[Hj]}}class Lj{constructor(A,Q,B,I){if(Q!=null&&(!Number.isInteger(Q)||Q<0))throw new fKA("maxRedirections must be a positive number");if(IC.validateHandler(I,B.method,B.upgrade),this.dispatch=A,this.location=null,this.abort=null,this.opts={...B,maxRedirections:0},this.maxRedirections=Q,this.handler=I,this.history=[],this.redirectionLimitReached=!1,IC.isStream(this.opts.body)){if(IC.bodyLength(this.opts.body)===0)this.opts.body.on("data",function(){T4(!1)});if(typeof this.opts.body.readableDidRead!=="boolean")this.opts.body[oG]=!1,_KA.prototype.on.call(this.opts.body,"data",function(){this[oG]=!0})}else if(this.opts.body&&typeof this.opts.body.pipeTo==="function")this.opts.body=new O4(this.opts.body);else if(this.opts.body&&typeof this.opts.body!=="string"&&!ArrayBuffer.isView(this.opts.body)&&IC.isIterable(this.opts.body))this.opts.body=new O4(this.opts.body)}onConnect(A){this.abort=A,this.handler.onConnect(A,{history:this.history})}onUpgrade(A,Q,B){this.handler.onUpgrade(A,Q,B)}onError(A){this.handler.onError(A)}onHeaders(A,Q,B,I){if(this.location=this.history.length>=this.maxRedirections||IC.isDisturbed(this.opts.body)?null:xKA(A,Q),this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections){if(this.request)this.request.abort(Error("max redirects"));this.redirectionLimitReached=!0,this.abort(Error("max redirects"));return}if(this.opts.origin)this.history.push(new URL(this.opts.path,this.opts.origin));if(!this.location)return this.handler.onHeaders(A,Q,B,I);let{origin:C,pathname:E,search:Y}=IC.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),J=Y?`${E}${Y}`:E;if(this.opts.headers=bKA(this.opts.headers,A===303,this.opts.origin!==C),this.opts.path=J,this.opts.origin=C,this.opts.maxRedirections=0,this.opts.query=null,A===303&&this.opts.method!=="HEAD")this.opts.method="GET",this.opts.body=null}onData(A){if(this.location);else return this.handler.onData(A)}onComplete(A){if(this.location)this.location=null,this.abort=null,this.dispatch(this.opts,this);else this.handler.onComplete(A)}onBodySent(A){if(this.handler.onBodySent)this.handler.onBodySent(A)}}function xKA(A,Q){if(vKA.indexOf(A)===-1)return null;for(let B=0;B{var mKA=o9();function dKA({maxRedirections:A}){return(Q)=>{return function(I,C){let{maxRedirections:E=A}=I;if(!E)return Q(I,C);let Y=new mKA(Q,E,I,C);return I={...I,maxRedirections:0},Q(I,Y)}}}jj.exports=dKA});var PJ=X((SWQ,fj)=>{var yC=H("node:assert"),kj=H("node:net"),cKA=H("node:http"),x0=YA(),{channels:OJ}=GJ(),uKA=X2(),lKA=UJ(),{InvalidArgumentError:aA,InformationalError:pKA,ClientDestroyedError:iKA}=UA(),nKA=_G(),{kUrl:CC,kServerName:NE,kClient:oKA,kBusy:P4,kConnect:aKA,kResuming:b0,kRunning:eG,kPending:AD,kSize:tG,kQueue:TI,kConnected:sKA,kConnecting:TJ,kNeedDrain:RE,kKeepAliveDefaultTimeout:Rj,kHostHeader:rKA,kPendingIdx:PI,kRunningIdx:hC,kError:tKA,kPipelining:s9,kKeepAliveTimeoutValue:eKA,kMaxHeadersSize:AVA,kKeepAliveMaxTimeout:QVA,kKeepAliveTimeoutThreshold:BVA,kHeadersTimeout:IVA,kBodyTimeout:CVA,kStrictContentLength:EVA,kConnector:aG,kMaxRedirections:YVA,kMaxRequests:k4,kCounter:JVA,kClose:FVA,kDestroy:GVA,kDispatch:DVA,kInterceptors:qj,kLocalAddress:sG,kMaxResponseSize:ZVA,kOnError:WVA,kHTTPContext:sA,kMaxConcurrentStreams:UVA,kResume:rG}=yA(),XVA=Zj(),wVA=$j(),Oj=!1,jE=Symbol("kClosedResolve"),Tj=()=>{};function Sj(A){return A[s9]??A[sA]?.defaultPipelining??1}class gj extends lKA{constructor(A,{interceptors:Q,maxHeaderSize:B,headersTimeout:I,socketTimeout:C,requestTimeout:E,connectTimeout:Y,bodyTimeout:J,idleTimeout:F,keepAlive:G,keepAliveTimeout:D,maxKeepAliveTimeout:Z,keepAliveMaxTimeout:W,keepAliveTimeoutThreshold:U,socketPath:w,pipelining:K,tls:V,strictContentLength:z,maxCachedSessions:M,maxRedirections:L,connect:N,maxRequestsPerClient:T,localAddress:y,maxResponseSize:f,autoSelectFamily:vA,autoSelectFamilyAttemptTimeout:uA,maxConcurrentStreams:dQ,allowH2:YB}={}){super();if(G!==void 0)throw new aA("unsupported keepAlive, use pipelining=0 instead");if(C!==void 0)throw new aA("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(E!==void 0)throw new aA("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(F!==void 0)throw new aA("unsupported idleTimeout, use keepAliveTimeout instead");if(Z!==void 0)throw new aA("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(B!=null&&!Number.isFinite(B))throw new aA("invalid maxHeaderSize");if(w!=null&&typeof w!=="string")throw new aA("invalid socketPath");if(Y!=null&&(!Number.isFinite(Y)||Y<0))throw new aA("invalid connectTimeout");if(D!=null&&(!Number.isFinite(D)||D<=0))throw new aA("invalid keepAliveTimeout");if(W!=null&&(!Number.isFinite(W)||W<=0))throw new aA("invalid keepAliveMaxTimeout");if(U!=null&&!Number.isFinite(U))throw new aA("invalid keepAliveTimeoutThreshold");if(I!=null&&(!Number.isInteger(I)||I<0))throw new aA("headersTimeout must be a positive integer or zero");if(J!=null&&(!Number.isInteger(J)||J<0))throw new aA("bodyTimeout must be a positive integer or zero");if(N!=null&&typeof N!=="function"&&typeof N!=="object")throw new aA("connect must be a function or an object");if(L!=null&&(!Number.isInteger(L)||L<0))throw new aA("maxRedirections must be a positive number");if(T!=null&&(!Number.isInteger(T)||T<0))throw new aA("maxRequestsPerClient must be a positive number");if(y!=null&&(typeof y!=="string"||kj.isIP(y)===0))throw new aA("localAddress must be valid string IP address");if(f!=null&&(!Number.isInteger(f)||f<-1))throw new aA("maxResponseSize must be a positive number");if(uA!=null&&(!Number.isInteger(uA)||uA<-1))throw new aA("autoSelectFamilyAttemptTimeout must be a positive number");if(YB!=null&&typeof YB!=="boolean")throw new aA("allowH2 must be a valid boolean value");if(dQ!=null&&(typeof dQ!=="number"||dQ<1))throw new aA("maxConcurrentStreams must be a positive integer, greater than 0");if(typeof N!=="function")N=nKA({...V,maxCachedSessions:M,allowH2:YB,socketPath:w,timeout:Y,...vA?{autoSelectFamily:vA,autoSelectFamilyAttemptTimeout:uA}:void 0,...N});if(Q?.Client&&Array.isArray(Q.Client)){if(this[qj]=Q.Client,!Oj)Oj=!0,process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.",{code:"UNDICI-CLIENT-INTERCEPTOR-DEPRECATED"})}else this[qj]=[KVA({maxRedirections:L})];this[CC]=x0.parseOrigin(A),this[aG]=N,this[s9]=K!=null?K:1,this[AVA]=B||cKA.maxHeaderSize,this[Rj]=D==null?4000:D,this[QVA]=W==null?600000:W,this[BVA]=U==null?2000:U,this[eKA]=this[Rj],this[NE]=null,this[sG]=y!=null?y:null,this[b0]=0,this[RE]=0,this[rKA]=`host: ${this[CC].hostname}${this[CC].port?`:${this[CC].port}`:""}\r -`,this[CVA]=J!=null?J:300000,this[IVA]=I!=null?I:300000,this[EVA]=z==null?!0:z,this[YVA]=L,this[k4]=T,this[jE]=null,this[ZVA]=f>-1?f:-1,this[UVA]=dQ!=null?dQ:100,this[sA]=null,this[TI]=[],this[hC]=0,this[PI]=0,this[rG]=(FQ)=>S4(this,FQ),this[WVA]=(FQ)=>yj(this,FQ)}get pipelining(){return this[s9]}set pipelining(A){this[s9]=A,this[rG](!0)}get[AD](){return this[TI].length-this[PI]}get[eG](){return this[PI]-this[hC]}get[tG](){return this[TI].length-this[hC]}get[sKA](){return!!this[sA]&&!this[TJ]&&!this[sA].destroyed}get[P4](){return Boolean(this[sA]?.busy(null)||this[tG]>=(Sj(this)||1)||this[AD]>0)}[aKA](A){hj(this),this.once("connect",A)}[DVA](A,Q){let B=A.origin||this[CC].origin,I=new uKA(B,A,Q);if(this[TI].push(I),this[b0]);else if(x0.bodyLength(I.body)==null&&x0.isIterable(I.body))this[b0]=1,queueMicrotask(()=>S4(this));else this[rG](!0);if(this[b0]&&this[RE]!==2&&this[P4])this[RE]=2;return this[RE]<2}async[FVA](){return new Promise((A)=>{if(this[tG])this[jE]=A;else A(null)})}async[GVA](A){return new Promise((Q)=>{let B=this[TI].splice(this[PI]);for(let C=0;C{if(this[jE])this[jE](),this[jE]=null;Q(null)};if(this[sA])this[sA].destroy(A,I),this[sA]=null;else queueMicrotask(I);this[rG]()})}}var KVA=a9();function yj(A,Q){if(A[eG]===0&&Q.code!=="UND_ERR_INFO"&&Q.code!=="UND_ERR_SOCKET"){yC(A[PI]===A[hC]);let B=A[TI].splice(A[hC]);for(let I=0;I{A[aG]({host:Q,hostname:B,protocol:I,port:C,servername:A[NE],localAddress:A[sG]},(F,G)=>{if(F)J(F);else Y(G)})});if(A.destroyed){x0.destroy(E.on("error",Tj),new iKA);return}yC(E);try{A[sA]=E.alpnProtocol==="h2"?await wVA(A,E):await XVA(A,E)}catch(Y){throw E.destroy().on("error",Tj),Y}if(A[TJ]=!1,E[JVA]=0,E[k4]=A[k4],E[oKA]=A,E[tKA]=null,OJ.connected.hasSubscribers)OJ.connected.publish({connectParams:{host:Q,hostname:B,protocol:I,port:C,version:A[sA]?.version,servername:A[NE],localAddress:A[sG]},connector:A[aG],socket:E});A.emit("connect",A[CC],[A])}catch(E){if(A.destroyed)return;if(A[TJ]=!1,OJ.connectError.hasSubscribers)OJ.connectError.publish({connectParams:{host:Q,hostname:B,protocol:I,port:C,version:A[sA]?.version,servername:A[NE],localAddress:A[sG]},connector:A[aG],error:E});if(E.code==="ERR_TLS_CERT_ALTNAME_INVALID"){yC(A[eG]===0);while(A[AD]>0&&A[TI][A[PI]].servername===A[NE]){let Y=A[TI][A[PI]++];x0.errorRequest(A,Y,E)}}else yj(A,E);A.emit("connectionError",A[CC],[A],E)}A[rG]()}function Pj(A){A[RE]=0,A.emit("drain",A[CC],[A])}function S4(A,Q){if(A[b0]===2)return;if(A[b0]=2,VVA(A,Q),A[b0]=0,A[hC]>256)A[TI].splice(0,A[hC]),A[PI]-=A[hC],A[hC]=0}function VVA(A,Q){while(!0){if(A.destroyed){yC(A[AD]===0);return}if(A[jE]&&!A[tG]){A[jE](),A[jE]=null;return}if(A[sA])A[sA].resume();if(A[P4])A[RE]=2;else if(A[RE]===2){if(Q)A[RE]=1,queueMicrotask(()=>Pj(A));else Pj(A);continue}if(A[AD]===0)return;if(A[eG]>=(Sj(A)||1))return;let B=A[TI][A[PI]];if(A[CC].protocol==="https:"&&A[NE]!==B.servername){if(A[eG]>0)return;A[NE]=B.servername,A[sA]?.destroy(new pKA("servername changed"),()=>{A[sA]=null,S4(A)})}if(A[TJ])return;if(!A[sA]){hj(A);return}if(A[sA].destroyed)return;if(A[sA].busy(B))return;if(!B.aborted&&A[sA].write(B))A[PI]++;else A[TI].splice(A[PI],1)}}fj.exports=gj});var y4=X((gWQ,_j)=>{class g4{constructor(){this.bottom=0,this.top=0,this.list=Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(A){this.list[this.top]=A,this.top=this.top+1&2047}shift(){let A=this.list[this.bottom];if(A===void 0)return null;return this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,A}}_j.exports=class{constructor(){this.head=this.tail=new g4}isEmpty(){return this.head.isEmpty()}push(Q){if(this.head.isFull())this.head=this.head.next=new g4;this.head.push(Q)}shift(){let Q=this.tail,B=Q.shift();if(Q.isEmpty()&&Q.next!==null)this.tail=Q.next;return B}}});var bj=X((yWQ,xj)=>{var{kFree:zVA,kConnected:$VA,kPending:HVA,kQueued:MVA,kRunning:LVA,kSize:NVA}=yA(),m0=Symbol("pool");class vj{constructor(A){this[m0]=A}get connected(){return this[m0][$VA]}get free(){return this[m0][zVA]}get pending(){return this[m0][HVA]}get queued(){return this[m0][MVA]}get running(){return this[m0][LVA]}get size(){return this[m0][NVA]}}xj.exports=vj});var x4=X((hWQ,sj)=>{var jVA=UJ(),RVA=y4(),{kConnected:h4,kSize:mj,kRunning:dj,kPending:cj,kQueued:QD,kBusy:qVA,kFree:OVA,kUrl:TVA,kClose:PVA,kDestroy:kVA,kDispatch:SVA}=yA(),gVA=bj(),GB=Symbol("clients"),uQ=Symbol("needDrain"),BD=Symbol("queue"),f4=Symbol("closed resolve"),_4=Symbol("onDrain"),uj=Symbol("onConnect"),lj=Symbol("onDisconnect"),pj=Symbol("onConnectionError"),v4=Symbol("get dispatcher"),nj=Symbol("add client"),oj=Symbol("remove client"),ij=Symbol("stats");class aj extends jVA{constructor(){super();this[BD]=new RVA,this[GB]=[],this[QD]=0;let A=this;this[_4]=function(B,I){let C=A[BD],E=!1;while(!E){let Y=C.shift();if(!Y)break;A[QD]--,E=!this.dispatch(Y.opts,Y.handler)}if(this[uQ]=E,!this[uQ]&&A[uQ])A[uQ]=!1,A.emit("drain",B,[A,...I]);if(A[f4]&&C.isEmpty())Promise.all(A[GB].map((Y)=>Y.close())).then(A[f4])},this[uj]=(Q,B)=>{A.emit("connect",Q,[A,...B])},this[lj]=(Q,B,I)=>{A.emit("disconnect",Q,[A,...B],I)},this[pj]=(Q,B,I)=>{A.emit("connectionError",Q,[A,...B],I)},this[ij]=new gVA(this)}get[qVA](){return this[uQ]}get[h4](){return this[GB].filter((A)=>A[h4]).length}get[OVA](){return this[GB].filter((A)=>A[h4]&&!A[uQ]).length}get[cj](){let A=this[QD];for(let{[cj]:Q}of this[GB])A+=Q;return A}get[dj](){let A=0;for(let{[dj]:Q}of this[GB])A+=Q;return A}get[mj](){let A=this[QD];for(let{[mj]:Q}of this[GB])A+=Q;return A}get stats(){return this[ij]}async[PVA](){if(this[BD].isEmpty())await Promise.all(this[GB].map((A)=>A.close()));else await new Promise((A)=>{this[f4]=A})}async[kVA](A){while(!0){let Q=this[BD].shift();if(!Q)break;Q.handler.onError(A)}await Promise.all(this[GB].map((Q)=>Q.destroy(A)))}[SVA](A,Q){let B=this[v4]();if(!B)this[uQ]=!0,this[BD].push({opts:A,handler:Q}),this[QD]++;else if(!B.dispatch(A,Q))B[uQ]=!0,this[uQ]=!this[v4]();return!this[uQ]}[nj](A){if(A.on("drain",this[_4]).on("connect",this[uj]).on("disconnect",this[lj]).on("connectionError",this[pj]),this[GB].push(A),this[uQ])queueMicrotask(()=>{if(this[uQ])this[_4](A[TVA],[this,A])});return this}[oj](A){A.close(()=>{let Q=this[GB].indexOf(A);if(Q!==-1)this[GB].splice(Q,1)}),this[uQ]=this[GB].some((Q)=>!Q[uQ]&&Q.closed!==!0&&Q.destroyed!==!0)}}sj.exports={PoolBase:aj,kClients:GB,kNeedDrain:uQ,kAddClient:nj,kRemoveClient:oj,kGetDispatcher:v4}});var kJ=X((fWQ,QR)=>{var{PoolBase:yVA,kClients:r9,kNeedDrain:hVA,kAddClient:fVA,kGetDispatcher:_VA}=x4(),vVA=PJ(),{InvalidArgumentError:b4}=UA(),rj=YA(),{kUrl:tj,kInterceptors:xVA}=yA(),bVA=_G(),m4=Symbol("options"),d4=Symbol("connections"),ej=Symbol("factory");function mVA(A,Q){return new vVA(A,Q)}class AR extends yVA{constructor(A,{connections:Q,factory:B=mVA,connect:I,connectTimeout:C,tls:E,maxCachedSessions:Y,socketPath:J,autoSelectFamily:F,autoSelectFamilyAttemptTimeout:G,allowH2:D,...Z}={}){super();if(Q!=null&&(!Number.isFinite(Q)||Q<0))throw new b4("invalid connections");if(typeof B!=="function")throw new b4("factory must be a function.");if(I!=null&&typeof I!=="function"&&typeof I!=="object")throw new b4("connect must be a function or an object");if(typeof I!=="function")I=bVA({...E,maxCachedSessions:Y,allowH2:D,socketPath:J,timeout:C,...F?{autoSelectFamily:F,autoSelectFamilyAttemptTimeout:G}:void 0,...I});this[xVA]=Z.interceptors?.Pool&&Array.isArray(Z.interceptors.Pool)?Z.interceptors.Pool:[],this[d4]=Q||null,this[tj]=rj.parseOrigin(A),this[m4]={...rj.deepClone(Z),connect:I,allowH2:D},this[m4].interceptors=Z.interceptors?{...Z.interceptors}:void 0,this[ej]=B,this.on("connectionError",(W,U,w)=>{for(let K of U){let V=this[r9].indexOf(K);if(V!==-1)this[r9].splice(V,1)}})}[_VA](){for(let A of this[r9])if(!A[hVA])return A;if(!this[d4]||this[r9].length{var{BalancedPoolMissingUpstreamError:dVA,InvalidArgumentError:cVA}=UA(),{PoolBase:uVA,kClients:yQ,kNeedDrain:ID,kAddClient:lVA,kRemoveClient:pVA,kGetDispatcher:iVA}=x4(),nVA=kJ(),{kUrl:c4,kInterceptors:oVA}=yA(),{parseOrigin:BR}=YA(),IR=Symbol("factory"),t9=Symbol("options"),CR=Symbol("kGreatestCommonDivisor"),d0=Symbol("kCurrentWeight"),c0=Symbol("kIndex"),AI=Symbol("kWeight"),e9=Symbol("kMaxWeightPerServer"),AU=Symbol("kErrorPenalty");function aVA(A,Q){if(A===0)return Q;while(Q!==0){let B=Q;Q=A%Q,A=B}return A}function sVA(A,Q){return new nVA(A,Q)}class ER extends uVA{constructor(A=[],{factory:Q=sVA,...B}={}){super();if(this[t9]=B,this[c0]=-1,this[d0]=0,this[e9]=this[t9].maxWeightPerServer||100,this[AU]=this[t9].errorPenalty||15,!Array.isArray(A))A=[A];if(typeof Q!=="function")throw new cVA("factory must be a function.");this[oVA]=B.interceptors?.BalancedPool&&Array.isArray(B.interceptors.BalancedPool)?B.interceptors.BalancedPool:[],this[IR]=Q;for(let I of A)this.addUpstream(I);this._updateBalancedPoolStats()}addUpstream(A){let Q=BR(A).origin;if(this[yQ].find((I)=>I[c4].origin===Q&&I.closed!==!0&&I.destroyed!==!0))return this;let B=this[IR](Q,Object.assign({},this[t9]));this[lVA](B),B.on("connect",()=>{B[AI]=Math.min(this[e9],B[AI]+this[AU])}),B.on("connectionError",()=>{B[AI]=Math.max(1,B[AI]-this[AU]),this._updateBalancedPoolStats()}),B.on("disconnect",(...I)=>{let C=I[2];if(C&&C.code==="UND_ERR_SOCKET")B[AI]=Math.max(1,B[AI]-this[AU]),this._updateBalancedPoolStats()});for(let I of this[yQ])I[AI]=this[e9];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let A=0;for(let Q=0;QI[c4].origin===Q&&I.closed!==!0&&I.destroyed!==!0);if(B)this[pVA](B);return this}get upstreams(){return this[yQ].filter((A)=>A.closed!==!0&&A.destroyed!==!0).map((A)=>A[c4].origin)}[iVA](){if(this[yQ].length===0)throw new dVA;if(!this[yQ].find((C)=>!C[ID]&&C.closed!==!0&&C.destroyed!==!0))return;if(this[yQ].map((C)=>C[ID]).reduce((C,E)=>C&&E,!0))return;let B=0,I=this[yQ].findIndex((C)=>!C[ID]);while(B++this[yQ][I][AI]&&!C[ID])I=this[c0];if(this[c0]===0){if(this[d0]=this[d0]-this[CR],this[d0]<=0)this[d0]=this[e9]}if(C[AI]>=this[d0]&&!C[ID])return C}return this[d0]=this[yQ][I][AI],this[c0]=I,this[yQ][I]}}YR.exports=ER});var SJ=X((vWQ,wR)=>{var{InvalidArgumentError:QU}=UA(),{kClients:qE,kRunning:FR,kClose:rVA,kDestroy:tVA,kDispatch:eVA,kInterceptors:A3A}=yA(),Q3A=UJ(),B3A=kJ(),I3A=PJ(),C3A=YA(),E3A=a9(),GR=Symbol("onConnect"),DR=Symbol("onDisconnect"),ZR=Symbol("onConnectionError"),Y3A=Symbol("maxRedirections"),WR=Symbol("onDrain"),UR=Symbol("factory"),u4=Symbol("options");function J3A(A,Q){return Q&&Q.connections===1?new I3A(A,Q):new B3A(A,Q)}class XR extends Q3A{constructor({factory:A=J3A,maxRedirections:Q=0,connect:B,...I}={}){super();if(typeof A!=="function")throw new QU("factory must be a function.");if(B!=null&&typeof B!=="function"&&typeof B!=="object")throw new QU("connect must be a function or an object");if(!Number.isInteger(Q)||Q<0)throw new QU("maxRedirections must be a positive number");if(B&&typeof B!=="function")B={...B};this[A3A]=I.interceptors?.Agent&&Array.isArray(I.interceptors.Agent)?I.interceptors.Agent:[E3A({maxRedirections:Q})],this[u4]={...C3A.deepClone(I),connect:B},this[u4].interceptors=I.interceptors?{...I.interceptors}:void 0,this[Y3A]=Q,this[UR]=A,this[qE]=new Map,this[WR]=(C,E)=>{this.emit("drain",C,[this,...E])},this[GR]=(C,E)=>{this.emit("connect",C,[this,...E])},this[DR]=(C,E,Y)=>{this.emit("disconnect",C,[this,...E],Y)},this[ZR]=(C,E,Y)=>{this.emit("connectionError",C,[this,...E],Y)}}get[FR](){let A=0;for(let Q of this[qE].values())A+=Q[FR];return A}[eVA](A,Q){let B;if(A.origin&&(typeof A.origin==="string"||A.origin instanceof URL))B=String(A.origin);else throw new QU("opts.origin must be a non-empty string or URL.");let I=this[qE].get(B);if(!I)I=this[UR](A.origin,this[u4]).on("drain",this[WR]).on("connect",this[GR]).on("disconnect",this[DR]).on("connectionError",this[ZR]),this[qE].set(B,I);return I.dispatch(A,Q)}async[rVA](){let A=[];for(let Q of this[qE].values())A.push(Q.close());this[qE].clear(),await Promise.all(A)}async[tVA](A){let Q=[];for(let B of this[qE].values())Q.push(B.destroy(A));this[qE].clear(),await Promise.all(Q)}}wR.exports=XR});var i4=X((xWQ,TR)=>{var{kProxy:l4,kClose:MR,kDestroy:LR,kDispatch:KR,kInterceptors:F3A}=yA(),{URL:u0}=H("node:url"),G3A=SJ(),NR=kJ(),jR=UJ(),{InvalidArgumentError:gJ,RequestAbortedError:D3A,SecureProxyConnectionError:Z3A}=UA(),VR=_G(),RR=PJ(),BU=Symbol("proxy agent"),IU=Symbol("proxy client"),OE=Symbol("proxy headers"),p4=Symbol("request tls settings"),zR=Symbol("proxy tls settings"),$R=Symbol("connect endpoint function"),HR=Symbol("tunnel proxy");function W3A(A){return A==="https:"?443:80}function U3A(A,Q){return new NR(A,Q)}var X3A=()=>{};function w3A(A,Q){if(Q.connections===1)return new RR(A,Q);return new NR(A,Q)}class qR extends jR{#A;constructor(A,{headers:Q={},connect:B,factory:I}){super();if(!A)throw new gJ("Proxy URL is mandatory");if(this[OE]=Q,I)this.#A=I(A,{connect:B});else this.#A=new RR(A,{connect:B})}[KR](A,Q){let B=Q.onHeaders;Q.onHeaders=function(Y,J,F){if(Y===407){if(typeof Q.onError==="function")Q.onError(new gJ("Proxy Authentication Required (407)"));return}if(B)B.call(this,Y,J,F)};let{origin:I,path:C="/",headers:E={}}=A;if(A.path=I+C,!("host"in E)&&!("Host"in E)){let{host:Y}=new u0(I);E.host=Y}return A.headers={...this[OE],...E},this.#A[KR](A,Q)}async[MR](){return this.#A.close()}async[LR](A){return this.#A.destroy(A)}}class OR extends jR{constructor(A){super();if(!A||typeof A==="object"&&!(A instanceof u0)&&!A.uri)throw new gJ("Proxy uri is mandatory");let{clientFactory:Q=U3A}=A;if(typeof Q!=="function")throw new gJ("Proxy opts.clientFactory must be a function.");let{proxyTunnel:B=!0}=A,I=this.#A(A),{href:C,origin:E,port:Y,protocol:J,username:F,password:G,hostname:D}=I;if(this[l4]={uri:C,protocol:J},this[F3A]=A.interceptors?.ProxyAgent&&Array.isArray(A.interceptors.ProxyAgent)?A.interceptors.ProxyAgent:[],this[p4]=A.requestTls,this[zR]=A.proxyTls,this[OE]=A.headers||{},this[HR]=B,A.auth&&A.token)throw new gJ("opts.auth cannot be used in combination with opts.token");else if(A.auth)this[OE]["proxy-authorization"]=`Basic ${A.auth}`;else if(A.token)this[OE]["proxy-authorization"]=A.token;else if(F&&G)this[OE]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(F)}:${decodeURIComponent(G)}`).toString("base64")}`;let Z=VR({...A.proxyTls});this[$R]=VR({...A.requestTls});let W=A.factory||w3A,U=(w,K)=>{let{protocol:V}=new u0(w);if(!this[HR]&&V==="http:"&&this[l4].protocol==="http:")return new qR(this[l4].uri,{headers:this[OE],connect:Z,factory:W});return W(w,K)};this[IU]=Q(I,{connect:Z}),this[BU]=new G3A({...A,factory:U,connect:async(w,K)=>{let V=w.host;if(!w.port)V+=`:${W3A(w.protocol)}`;try{let{socket:z,statusCode:M}=await this[IU].connect({origin:E,port:Y,path:V,signal:w.signal,headers:{...this[OE],host:w.host},servername:this[zR]?.servername||D});if(M!==200)z.on("error",X3A).destroy(),K(new D3A(`Proxy response (${M}) !== 200 when HTTP Tunneling`));if(w.protocol!=="https:"){K(null,z);return}let L;if(this[p4])L=this[p4].servername;else L=w.servername;this[$R]({...w,servername:L,httpSocket:z},K)}catch(z){if(z.code==="ERR_TLS_CERT_ALTNAME_INVALID")K(new Z3A(z));else K(z)}}})}dispatch(A,Q){let B=K3A(A.headers);if(V3A(B),B&&!("host"in B)&&!("Host"in B)){let{host:I}=new u0(A.origin);B.host=I}return this[BU].dispatch({...A,headers:B},Q)}#A(A){if(typeof A==="string")return new u0(A);else if(A instanceof u0)return A;else return new u0(A.uri)}async[MR](){await this[BU].close(),await this[IU].close()}async[LR](){await this[BU].destroy(),await this[IU].destroy()}}function K3A(A){if(Array.isArray(A)){let Q={};for(let B=0;BB.toLowerCase()==="proxy-authorization"))throw new gJ("Proxy-Authorization should be sent in ProxyAgent constructor")}TR.exports=OR});var fR=X((bWQ,hR)=>{var z3A=UJ(),{kClose:$3A,kDestroy:H3A,kClosed:PR,kDestroyed:kR,kDispatch:M3A,kNoProxyAgent:CD,kHttpProxyAgent:TE,kHttpsProxyAgent:l0}=yA(),SR=i4(),L3A=SJ(),N3A={"http:":80,"https:":443},gR=!1;class yR extends z3A{#A=null;#Q=null;#C=null;constructor(A={}){super();if(this.#C=A,!gR)gR=!0,process.emitWarning("EnvHttpProxyAgent is experimental, expect them to change at any time.",{code:"UNDICI-EHPA"});let{httpProxy:Q,httpsProxy:B,noProxy:I,...C}=A;this[CD]=new L3A(C);let E=Q??process.env.http_proxy??process.env.HTTP_PROXY;if(E)this[TE]=new SR({...C,uri:E});else this[TE]=this[CD];let Y=B??process.env.https_proxy??process.env.HTTPS_PROXY;if(Y)this[l0]=new SR({...C,uri:Y});else this[l0]=this[TE];this.#E()}[M3A](A,Q){let B=new URL(A.origin);return this.#B(B).dispatch(A,Q)}async[$3A](){if(await this[CD].close(),!this[TE][PR])await this[TE].close();if(!this[l0][PR])await this[l0].close()}async[H3A](A){if(await this[CD].destroy(A),!this[TE][kR])await this[TE].destroy(A);if(!this[l0][kR])await this[l0].destroy(A)}#B(A){let{protocol:Q,host:B,port:I}=A;if(B=B.replace(/:\d*$/,"").toLowerCase(),I=Number.parseInt(I,10)||N3A[Q]||0,!this.#I(B,I))return this[CD];if(Q==="https:")return this[l0];return this[TE]}#I(A,Q){if(this.#Y)this.#E();if(this.#Q.length===0)return!0;if(this.#A==="*")return!1;for(let B=0;B{var yJ=H("node:assert"),{kRetryHandlerDefaultRetry:_R}=yA(),{RequestRetryError:ED}=UA(),{isDisturbed:vR,parseHeaders:j3A,parseRangeHeader:xR,wrapRequestBody:R3A}=YA();function q3A(A){let Q=Date.now();return new Date(A).getTime()-Q}class n4{constructor(A,Q){let{retryOptions:B,...I}=A,{retry:C,maxRetries:E,maxTimeout:Y,minTimeout:J,timeoutFactor:F,methods:G,errorCodes:D,retryAfter:Z,statusCodes:W}=B??{};this.dispatch=Q.dispatch,this.handler=Q.handler,this.opts={...I,body:R3A(A.body)},this.abort=null,this.aborted=!1,this.retryOpts={retry:C??n4[_R],retryAfter:Z??!0,maxTimeout:Y??30000,minTimeout:J??500,timeoutFactor:F??2,maxRetries:E??5,methods:G??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:W??[500,502,503,504,429],errorCodes:D??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE","UND_ERR_SOCKET"]},this.retryCount=0,this.retryCountCheckpoint=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect((U)=>{if(this.aborted=!0,this.abort)this.abort(U);else this.reason=U})}onRequestSent(){if(this.handler.onRequestSent)this.handler.onRequestSent()}onUpgrade(A,Q,B){if(this.handler.onUpgrade)this.handler.onUpgrade(A,Q,B)}onConnect(A){if(this.aborted)A(this.reason);else this.abort=A}onBodySent(A){if(this.handler.onBodySent)return this.handler.onBodySent(A)}static[_R](A,{state:Q,opts:B},I){let{statusCode:C,code:E,headers:Y}=A,{method:J,retryOptions:F}=B,{maxRetries:G,minTimeout:D,maxTimeout:Z,timeoutFactor:W,statusCodes:U,errorCodes:w,methods:K}=F,{counter:V}=Q;if(E&&E!=="UND_ERR_REQ_RETRY"&&!w.includes(E)){I(A);return}if(Array.isArray(K)&&!K.includes(J)){I(A);return}if(C!=null&&Array.isArray(U)&&!U.includes(C)){I(A);return}if(V>G){I(A);return}let z=Y?.["retry-after"];if(z)z=Number(z),z=Number.isNaN(z)?q3A(z):z*1000;let M=z>0?Math.min(z,Z):Math.min(D*W**(V-1),Z);setTimeout(()=>I(null),M)}onHeaders(A,Q,B,I){let C=j3A(Q);if(this.retryCount+=1,A>=300)if(this.retryOpts.statusCodes.includes(A)===!1)return this.handler.onHeaders(A,Q,B,I);else return this.abort(new ED("Request failed",A,{headers:C,data:{count:this.retryCount}})),!1;if(this.resume!=null){if(this.resume=null,A!==206&&(this.start>0||A!==200))return this.abort(new ED("server does not support the range header and the payload was partially consumed",A,{headers:C,data:{count:this.retryCount}})),!1;let Y=xR(C["content-range"]);if(!Y)return this.abort(new ED("Content-Range mismatch",A,{headers:C,data:{count:this.retryCount}})),!1;if(this.etag!=null&&this.etag!==C.etag)return this.abort(new ED("ETag mismatch",A,{headers:C,data:{count:this.retryCount}})),!1;let{start:J,size:F,end:G=F-1}=Y;return yJ(this.start===J,"content-range mismatch"),yJ(this.end==null||this.end===G,"content-range mismatch"),this.resume=B,!0}if(this.end==null){if(A===206){let Y=xR(C["content-range"]);if(Y==null)return this.handler.onHeaders(A,Q,B,I);let{start:J,size:F,end:G=F-1}=Y;yJ(J!=null&&Number.isFinite(J),"content-range mismatch"),yJ(G!=null&&Number.isFinite(G),"invalid content-length"),this.start=J,this.end=G}if(this.end==null){let Y=C["content-length"];this.end=Y!=null?Number(Y)-1:null}if(yJ(Number.isFinite(this.start)),yJ(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=B,this.etag=C.etag!=null?C.etag:null,this.etag!=null&&this.etag.startsWith("W/"))this.etag=null;return this.handler.onHeaders(A,Q,B,I)}let E=new ED("Request failed",A,{headers:C,data:{count:this.retryCount}});return this.abort(E),!1}onData(A){return this.start+=A.length,this.handler.onData(A)}onComplete(A){return this.retryCount=0,this.handler.onComplete(A)}onError(A){if(this.aborted||vR(this.opts.body))return this.handler.onError(A);if(this.retryCount-this.retryCountCheckpoint>0)this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint);else this.retryCount+=1;this.retryOpts.retry(A,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},Q.bind(this));function Q(B){if(B!=null||this.aborted||vR(this.opts.body))return this.handler.onError(B);if(this.start!==0){let I={range:`bytes=${this.start}-${this.end??""}`};if(this.etag!=null)I["if-match"]=this.etag;this.opts={...this.opts,headers:{...this.opts.headers,...I}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(I){this.handler.onError(I)}}}}bR.exports=n4});var cR=X((dWQ,dR)=>{var O3A=hG(),T3A=CU();class mR extends O3A{#A=null;#Q=null;constructor(A,Q={}){super(Q);this.#A=A,this.#Q=Q}dispatch(A,Q){let B=new T3A({...A,retryOptions:this.#Q},{dispatch:this.#A.dispatch.bind(this.#A),handler:Q});return this.#A.dispatch(A,B)}close(){return this.#A.close()}destroy(){return this.#A.destroy()}}dR.exports=mR});var t4=X((cWQ,tR)=>{var nR=H("node:assert"),{Readable:P3A}=H("node:stream"),{RequestAbortedError:oR,NotSupportedError:k3A,InvalidArgumentError:S3A,AbortError:o4}=UA(),aR=YA(),{ReadableStreamFrom:g3A}=YA(),RB=Symbol("kConsume"),YD=Symbol("kReading"),PE=Symbol("kBody"),uR=Symbol("kAbort"),sR=Symbol("kContentType"),lR=Symbol("kContentLength"),y3A=()=>{};class rR extends P3A{constructor({resume:A,abort:Q,contentType:B="",contentLength:I,highWaterMark:C=65536}){super({autoDestroy:!0,read:A,highWaterMark:C});this._readableState.dataEmitted=!1,this[uR]=Q,this[RB]=null,this[PE]=null,this[sR]=B,this[lR]=I,this[YD]=!1}destroy(A){if(!A&&!this._readableState.endEmitted)A=new oR;if(A)this[uR]();return super.destroy(A)}_destroy(A,Q){if(!this[YD])setImmediate(()=>{Q(A)});else Q(A)}on(A,...Q){if(A==="data"||A==="readable")this[YD]=!0;return super.on(A,...Q)}addListener(A,...Q){return this.on(A,...Q)}off(A,...Q){let B=super.off(A,...Q);if(A==="data"||A==="readable")this[YD]=this.listenerCount("data")>0||this.listenerCount("readable")>0;return B}removeListener(A,...Q){return this.off(A,...Q)}push(A){if(this[RB]&&A!==null)return s4(this[RB],A),this[YD]?super.push(A):!0;return super.push(A)}async text(){return JD(this,"text")}async json(){return JD(this,"json")}async blob(){return JD(this,"blob")}async bytes(){return JD(this,"bytes")}async arrayBuffer(){return JD(this,"arrayBuffer")}async formData(){throw new k3A}get bodyUsed(){return aR.isDisturbed(this)}get body(){if(!this[PE]){if(this[PE]=g3A(this),this[RB])this[PE].getReader(),nR(this[PE].locked)}return this[PE]}async dump(A){let Q=Number.isFinite(A?.limit)?A.limit:131072,B=A?.signal;if(B!=null&&(typeof B!=="object"||!("aborted"in B)))throw new S3A("signal must be an AbortSignal");if(B?.throwIfAborted(),this._readableState.closeEmitted)return null;return await new Promise((I,C)=>{if(this[lR]>Q)this.destroy(new o4);let E=()=>{this.destroy(B.reason??new o4)};B?.addEventListener("abort",E),this.on("close",function(){if(B?.removeEventListener("abort",E),B?.aborted)C(B.reason??new o4);else I(null)}).on("error",y3A).on("data",function(Y){if(Q-=Y.length,Q<=0)this.destroy()}).resume()})}}function h3A(A){return A[PE]&&A[PE].locked===!0||A[RB]}function f3A(A){return aR.isDisturbed(A)||h3A(A)}async function JD(A,Q){return nR(!A[RB]),new Promise((B,I)=>{if(f3A(A)){let C=A._readableState;if(C.destroyed&&C.closeEmitted===!1)A.on("error",(E)=>{I(E)}).on("close",()=>{I(TypeError("unusable"))});else I(C.errored??TypeError("unusable"))}else queueMicrotask(()=>{A[RB]={type:Q,stream:A,resolve:B,reject:I,length:0,body:[]},A.on("error",function(C){r4(this[RB],C)}).on("close",function(){if(this[RB].body!==null)r4(this[RB],new oR)}),_3A(A[RB])})})}function _3A(A){if(A.body===null)return;let{_readableState:Q}=A.stream;if(Q.bufferIndex){let B=Q.bufferIndex,I=Q.buffer.length;for(let C=B;C2&&B[0]===239&&B[1]===187&&B[2]===191?3:0;return B.utf8Slice(C,I)}function pR(A,Q){if(A.length===0||Q===0)return new Uint8Array(0);if(A.length===1)return new Uint8Array(A[0]);let B=new Uint8Array(Buffer.allocUnsafeSlow(Q).buffer),I=0;for(let C=0;C{var v3A=H("node:assert"),{ResponseStatusCodeError:eR}=UA(),{chunksDecode:Aq}=t4();async function x3A({callback:A,body:Q,contentType:B,statusCode:I,statusMessage:C,headers:E}){v3A(Q);let Y=[],J=0;try{for await(let Z of Q)if(Y.push(Z),J+=Z.length,J>131072){Y=[],J=0;break}}catch{Y=[],J=0}let F=`Response status code ${I}${C?`: ${C}`:""}`;if(I===204||!B||!J){queueMicrotask(()=>A(new eR(F,I,E)));return}let G=Error.stackTraceLimit;Error.stackTraceLimit=0;let D;try{if(Qq(B))D=JSON.parse(Aq(Y,J));else if(Bq(B))D=Aq(Y,J)}catch{}finally{Error.stackTraceLimit=G}queueMicrotask(()=>A(new eR(F,I,E,D)))}var Qq=(A)=>{return A.length>15&&A[11]==="/"&&A[0]==="a"&&A[1]==="p"&&A[2]==="p"&&A[3]==="l"&&A[4]==="i"&&A[5]==="c"&&A[6]==="a"&&A[7]==="t"&&A[8]==="i"&&A[9]==="o"&&A[10]==="n"&&A[12]==="j"&&A[13]==="s"&&A[14]==="o"&&A[15]==="n"},Bq=(A)=>{return A.length>4&&A[4]==="/"&&A[0]==="t"&&A[1]==="e"&&A[2]==="x"&&A[3]==="t"};Iq.exports={getResolveErrorBodyCallback:x3A,isContentTypeApplicationJson:Qq,isContentTypeText:Bq}});var Yq=X((lWQ,Q5)=>{var b3A=H("node:assert"),{Readable:m3A}=t4(),{InvalidArgumentError:hJ,RequestAbortedError:Cq}=UA(),qB=YA(),{getResolveErrorBodyCallback:d3A}=e4(),{AsyncResource:c3A}=H("node:async_hooks");class A5 extends c3A{constructor(A,Q){if(!A||typeof A!=="object")throw new hJ("invalid opts");let{signal:B,method:I,opaque:C,body:E,onInfo:Y,responseHeaders:J,throwOnError:F,highWaterMark:G}=A;try{if(typeof Q!=="function")throw new hJ("invalid callback");if(G&&(typeof G!=="number"||G<0))throw new hJ("invalid highWaterMark");if(B&&typeof B.on!=="function"&&typeof B.addEventListener!=="function")throw new hJ("signal must be an EventEmitter or EventTarget");if(I==="CONNECT")throw new hJ("invalid method");if(Y&&typeof Y!=="function")throw new hJ("invalid onInfo callback");super("UNDICI_REQUEST")}catch(D){if(qB.isStream(E))qB.destroy(E.on("error",qB.nop),D);throw D}if(this.method=I,this.responseHeaders=J||null,this.opaque=C||null,this.callback=Q,this.res=null,this.abort=null,this.body=E,this.trailers={},this.context=null,this.onInfo=Y||null,this.throwOnError=F,this.highWaterMark=G,this.signal=B,this.reason=null,this.removeAbortListener=null,qB.isStream(E))E.on("error",(D)=>{this.onError(D)});if(this.signal)if(this.signal.aborted)this.reason=this.signal.reason??new Cq;else this.removeAbortListener=qB.addAbortListener(this.signal,()=>{if(this.reason=this.signal.reason??new Cq,this.res)qB.destroy(this.res.on("error",qB.nop),this.reason);else if(this.abort)this.abort(this.reason);if(this.removeAbortListener)this.res?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null})}onConnect(A,Q){if(this.reason){A(this.reason);return}b3A(this.callback),this.abort=A,this.context=Q}onHeaders(A,Q,B,I){let{callback:C,opaque:E,abort:Y,context:J,responseHeaders:F,highWaterMark:G}=this,D=F==="raw"?qB.parseRawHeaders(Q):qB.parseHeaders(Q);if(A<200){if(this.onInfo)this.onInfo({statusCode:A,headers:D});return}let Z=F==="raw"?qB.parseHeaders(Q):D,W=Z["content-type"],U=Z["content-length"],w=new m3A({resume:B,abort:Y,contentType:W,contentLength:this.method!=="HEAD"&&U?Number(U):null,highWaterMark:G});if(this.removeAbortListener)w.on("close",this.removeAbortListener);if(this.callback=null,this.res=w,C!==null)if(this.throwOnError&&A>=400)this.runInAsyncScope(d3A,null,{callback:C,body:w,contentType:W,statusCode:A,statusMessage:I,headers:D});else this.runInAsyncScope(C,null,null,{statusCode:A,headers:D,trailers:this.trailers,opaque:E,body:w,context:J})}onData(A){return this.res.push(A)}onComplete(A){qB.parseHeaders(A,this.trailers),this.res.push(null)}onError(A){let{res:Q,callback:B,body:I,opaque:C}=this;if(B)this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(B,null,A,{opaque:C})});if(Q)this.res=null,queueMicrotask(()=>{qB.destroy(Q,A)});if(I)this.body=null,qB.destroy(I,A);if(this.removeAbortListener)Q?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null}}function Eq(A,Q){if(Q===void 0)return new Promise((B,I)=>{Eq.call(this,A,(C,E)=>{return C?I(C):B(E)})});try{this.dispatch(A,new A5(A,Q))}catch(B){if(typeof Q!=="function")throw B;let I=A?.opaque;queueMicrotask(()=>Q(B,{opaque:I}))}}Q5.exports=Eq;Q5.exports.RequestHandler=A5});var FD=X((pWQ,Gq)=>{var{addAbortListener:u3A}=YA(),{RequestAbortedError:l3A}=UA(),fJ=Symbol("kListener"),EC=Symbol("kSignal");function Jq(A){if(A.abort)A.abort(A[EC]?.reason);else A.reason=A[EC]?.reason??new l3A;Fq(A)}function p3A(A,Q){if(A.reason=null,A[EC]=null,A[fJ]=null,!Q)return;if(Q.aborted){Jq(A);return}A[EC]=Q,A[fJ]=()=>{Jq(A)},u3A(A[EC],A[fJ])}function Fq(A){if(!A[EC])return;if("removeEventListener"in A[EC])A[EC].removeEventListener("abort",A[fJ]);else A[EC].removeListener("abort",A[fJ]);A[EC]=null,A[fJ]=null}Gq.exports={addSignal:p3A,removeSignal:Fq}});var Xq=X((iWQ,Uq)=>{var i3A=H("node:assert"),{finished:n3A,PassThrough:o3A}=H("node:stream"),{InvalidArgumentError:_J,InvalidReturnValueError:a3A}=UA(),kI=YA(),{getResolveErrorBodyCallback:s3A}=e4(),{AsyncResource:r3A}=H("node:async_hooks"),{addSignal:t3A,removeSignal:Dq}=FD();class Zq extends r3A{constructor(A,Q,B){if(!A||typeof A!=="object")throw new _J("invalid opts");let{signal:I,method:C,opaque:E,body:Y,onInfo:J,responseHeaders:F,throwOnError:G}=A;try{if(typeof B!=="function")throw new _J("invalid callback");if(typeof Q!=="function")throw new _J("invalid factory");if(I&&typeof I.on!=="function"&&typeof I.addEventListener!=="function")throw new _J("signal must be an EventEmitter or EventTarget");if(C==="CONNECT")throw new _J("invalid method");if(J&&typeof J!=="function")throw new _J("invalid onInfo callback");super("UNDICI_STREAM")}catch(D){if(kI.isStream(Y))kI.destroy(Y.on("error",kI.nop),D);throw D}if(this.responseHeaders=F||null,this.opaque=E||null,this.factory=Q,this.callback=B,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=Y,this.onInfo=J||null,this.throwOnError=G||!1,kI.isStream(Y))Y.on("error",(D)=>{this.onError(D)});t3A(this,I)}onConnect(A,Q){if(this.reason){A(this.reason);return}i3A(this.callback),this.abort=A,this.context=Q}onHeaders(A,Q,B,I){let{factory:C,opaque:E,context:Y,callback:J,responseHeaders:F}=this,G=F==="raw"?kI.parseRawHeaders(Q):kI.parseHeaders(Q);if(A<200){if(this.onInfo)this.onInfo({statusCode:A,headers:G});return}this.factory=null;let D;if(this.throwOnError&&A>=400){let U=(F==="raw"?kI.parseHeaders(Q):G)["content-type"];D=new o3A,this.callback=null,this.runInAsyncScope(s3A,null,{callback:J,body:D,contentType:U,statusCode:A,statusMessage:I,headers:G})}else{if(C===null)return;if(D=this.runInAsyncScope(C,null,{statusCode:A,headers:G,opaque:E,context:Y}),!D||typeof D.write!=="function"||typeof D.end!=="function"||typeof D.on!=="function")throw new a3A("expected Writable");n3A(D,{readable:!1},(W)=>{let{callback:U,res:w,opaque:K,trailers:V,abort:z}=this;if(this.res=null,W||!w.readable)kI.destroy(w,W);if(this.callback=null,this.runInAsyncScope(U,null,W||null,{opaque:K,trailers:V}),W)z()})}return D.on("drain",B),this.res=D,(D.writableNeedDrain!==void 0?D.writableNeedDrain:D._writableState?.needDrain)!==!0}onData(A){let{res:Q}=this;return Q?Q.write(A):!0}onComplete(A){let{res:Q}=this;if(Dq(this),!Q)return;this.trailers=kI.parseHeaders(A),Q.end()}onError(A){let{res:Q,callback:B,opaque:I,body:C}=this;if(Dq(this),this.factory=null,Q)this.res=null,kI.destroy(Q,A);else if(B)this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(B,null,A,{opaque:I})});if(C)this.body=null,kI.destroy(C,A)}}function Wq(A,Q,B){if(B===void 0)return new Promise((I,C)=>{Wq.call(this,A,Q,(E,Y)=>{return E?C(E):I(Y)})});try{this.dispatch(A,new Zq(A,Q,B))}catch(I){if(typeof B!=="function")throw I;let C=A?.opaque;queueMicrotask(()=>B(I,{opaque:C}))}}Uq.exports=Wq});var Mq=X((nWQ,Hq)=>{var{Readable:Kq,Duplex:e3A,PassThrough:A6A}=H("node:stream"),{InvalidArgumentError:GD,InvalidReturnValueError:Q6A,RequestAbortedError:B5}=UA(),QI=YA(),{AsyncResource:B6A}=H("node:async_hooks"),{addSignal:I6A,removeSignal:C6A}=FD(),wq=H("node:assert"),vJ=Symbol("resume");class Vq extends Kq{constructor(){super({autoDestroy:!0});this[vJ]=null}_read(){let{[vJ]:A}=this;if(A)this[vJ]=null,A()}_destroy(A,Q){this._read(),Q(A)}}class zq extends Kq{constructor(A){super({autoDestroy:!0});this[vJ]=A}_read(){this[vJ]()}_destroy(A,Q){if(!A&&!this._readableState.endEmitted)A=new B5;Q(A)}}class $q extends B6A{constructor(A,Q){if(!A||typeof A!=="object")throw new GD("invalid opts");if(typeof Q!=="function")throw new GD("invalid handler");let{signal:B,method:I,opaque:C,onInfo:E,responseHeaders:Y}=A;if(B&&typeof B.on!=="function"&&typeof B.addEventListener!=="function")throw new GD("signal must be an EventEmitter or EventTarget");if(I==="CONNECT")throw new GD("invalid method");if(E&&typeof E!=="function")throw new GD("invalid onInfo callback");super("UNDICI_PIPELINE");this.opaque=C||null,this.responseHeaders=Y||null,this.handler=Q,this.abort=null,this.context=null,this.onInfo=E||null,this.req=new Vq().on("error",QI.nop),this.ret=new e3A({readableObjectMode:A.objectMode,autoDestroy:!0,read:()=>{let{body:J}=this;if(J?.resume)J.resume()},write:(J,F,G)=>{let{req:D}=this;if(D.push(J,F)||D._readableState.destroyed)G();else D[vJ]=G},destroy:(J,F)=>{let{body:G,req:D,res:Z,ret:W,abort:U}=this;if(!J&&!W._readableState.endEmitted)J=new B5;if(U&&J)U();QI.destroy(G,J),QI.destroy(D,J),QI.destroy(Z,J),C6A(this),F(J)}}).on("prefinish",()=>{let{req:J}=this;J.push(null)}),this.res=null,I6A(this,B)}onConnect(A,Q){let{ret:B,res:I}=this;if(this.reason){A(this.reason);return}wq(!I,"pipeline cannot be retried"),wq(!B.destroyed),this.abort=A,this.context=Q}onHeaders(A,Q,B){let{opaque:I,handler:C,context:E}=this;if(A<200){if(this.onInfo){let J=this.responseHeaders==="raw"?QI.parseRawHeaders(Q):QI.parseHeaders(Q);this.onInfo({statusCode:A,headers:J})}return}this.res=new zq(B);let Y;try{this.handler=null;let J=this.responseHeaders==="raw"?QI.parseRawHeaders(Q):QI.parseHeaders(Q);Y=this.runInAsyncScope(C,null,{statusCode:A,headers:J,opaque:I,body:this.res,context:E})}catch(J){throw this.res.on("error",QI.nop),J}if(!Y||typeof Y.on!=="function")throw new Q6A("expected Readable");Y.on("data",(J)=>{let{ret:F,body:G}=this;if(!F.push(J)&&G.pause)G.pause()}).on("error",(J)=>{let{ret:F}=this;QI.destroy(F,J)}).on("end",()=>{let{ret:J}=this;J.push(null)}).on("close",()=>{let{ret:J}=this;if(!J._readableState.ended)QI.destroy(J,new B5)}),this.body=Y}onData(A){let{res:Q}=this;return Q.push(A)}onComplete(A){let{res:Q}=this;Q.push(null)}onError(A){let{ret:Q}=this;this.handler=null,QI.destroy(Q,A)}}function E6A(A,Q){try{let B=new $q(A,Q);return this.dispatch({...A,body:B.req},B),B.ret}catch(B){return new A6A().destroy(B)}}Hq.exports=E6A});var Tq=X((oWQ,Oq)=>{var{InvalidArgumentError:I5,SocketError:Y6A}=UA(),{AsyncResource:J6A}=H("node:async_hooks"),Lq=YA(),{addSignal:F6A,removeSignal:Nq}=FD(),jq=H("node:assert");class Rq extends J6A{constructor(A,Q){if(!A||typeof A!=="object")throw new I5("invalid opts");if(typeof Q!=="function")throw new I5("invalid callback");let{signal:B,opaque:I,responseHeaders:C}=A;if(B&&typeof B.on!=="function"&&typeof B.addEventListener!=="function")throw new I5("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE");this.responseHeaders=C||null,this.opaque=I||null,this.callback=Q,this.abort=null,this.context=null,F6A(this,B)}onConnect(A,Q){if(this.reason){A(this.reason);return}jq(this.callback),this.abort=A,this.context=null}onHeaders(){throw new Y6A("bad upgrade",null)}onUpgrade(A,Q,B){jq(A===101);let{callback:I,opaque:C,context:E}=this;Nq(this),this.callback=null;let Y=this.responseHeaders==="raw"?Lq.parseRawHeaders(Q):Lq.parseHeaders(Q);this.runInAsyncScope(I,null,null,{headers:Y,socket:B,opaque:C,context:E})}onError(A){let{callback:Q,opaque:B}=this;if(Nq(this),Q)this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(Q,null,A,{opaque:B})})}}function qq(A,Q){if(Q===void 0)return new Promise((B,I)=>{qq.call(this,A,(C,E)=>{return C?I(C):B(E)})});try{let B=new Rq(A,Q);this.dispatch({...A,method:A.method||"GET",upgrade:A.protocol||"Websocket"},B)}catch(B){if(typeof Q!=="function")throw B;let I=A?.opaque;queueMicrotask(()=>Q(B,{opaque:I}))}}Oq.exports=qq});var hq=X((aWQ,yq)=>{var G6A=H("node:assert"),{AsyncResource:D6A}=H("node:async_hooks"),{InvalidArgumentError:C5,SocketError:Z6A}=UA(),Pq=YA(),{addSignal:W6A,removeSignal:kq}=FD();class Sq extends D6A{constructor(A,Q){if(!A||typeof A!=="object")throw new C5("invalid opts");if(typeof Q!=="function")throw new C5("invalid callback");let{signal:B,opaque:I,responseHeaders:C}=A;if(B&&typeof B.on!=="function"&&typeof B.addEventListener!=="function")throw new C5("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT");this.opaque=I||null,this.responseHeaders=C||null,this.callback=Q,this.abort=null,W6A(this,B)}onConnect(A,Q){if(this.reason){A(this.reason);return}G6A(this.callback),this.abort=A,this.context=Q}onHeaders(){throw new Z6A("bad connect",null)}onUpgrade(A,Q,B){let{callback:I,opaque:C,context:E}=this;kq(this),this.callback=null;let Y=Q;if(Y!=null)Y=this.responseHeaders==="raw"?Pq.parseRawHeaders(Q):Pq.parseHeaders(Q);this.runInAsyncScope(I,null,null,{statusCode:A,headers:Y,socket:B,opaque:C,context:E})}onError(A){let{callback:Q,opaque:B}=this;if(kq(this),Q)this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(Q,null,A,{opaque:B})})}}function gq(A,Q){if(Q===void 0)return new Promise((B,I)=>{gq.call(this,A,(C,E)=>{return C?I(C):B(E)})});try{let B=new Sq(A,Q);this.dispatch({...A,method:"CONNECT"},B)}catch(B){if(typeof Q!=="function")throw B;let I=A?.opaque;queueMicrotask(()=>Q(B,{opaque:I}))}}yq.exports=gq});var fq=X((U6A,xJ)=>{U6A.request=Yq();U6A.stream=Xq();U6A.pipeline=Mq();U6A.upgrade=Tq();U6A.connect=hq()});var Y5=X((sWQ,vq)=>{var{UndiciError:$6A}=UA(),_q=Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED");class E5 extends $6A{constructor(A){super(A);Error.captureStackTrace(this,E5),this.name="MockNotMatchedError",this.message=A||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}static[Symbol.hasInstance](A){return A&&A[_q]===!0}[_q]=!0}vq.exports={MockNotMatchedError:E5}});var bJ=X((rWQ,xq)=>{xq.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var DD=X((tWQ,aq)=>{var{MockNotMatchedError:p0}=Y5(),{kDispatches:EU,kMockAgent:H6A,kOriginalDispatch:M6A,kOrigin:L6A,kGetNetConnect:N6A}=bJ(),{buildURL:j6A}=YA(),{STATUS_CODES:R6A}=H("node:http"),{types:{isPromise:q6A}}=H("node:util");function fC(A,Q){if(typeof A==="string")return A===Q;if(A instanceof RegExp)return A.test(Q);if(typeof A==="function")return A(Q)===!0;return!1}function mq(A){return Object.fromEntries(Object.entries(A).map(([Q,B])=>{return[Q.toLocaleLowerCase(),B]}))}function dq(A,Q){if(Array.isArray(A)){for(let B=0;B"u")return!0;if(typeof Q!=="object"||typeof A.headers!=="object")return!1;for(let[B,I]of Object.entries(A.headers)){let C=dq(Q,B);if(!fC(I,C))return!1}return!0}function bq(A){if(typeof A!=="string")return A;let Q=A.split("?");if(Q.length!==2)return A;let B=new URLSearchParams(Q.pop());return B.sort(),[...Q,B.toString()].join("?")}function O6A(A,{path:Q,method:B,body:I,headers:C}){let E=fC(A.path,Q),Y=fC(A.method,B),J=typeof A.body<"u"?fC(A.body,I):!0,F=cq(A,C);return E&&Y&&J&&F}function uq(A){if(Buffer.isBuffer(A))return A;else if(A instanceof Uint8Array)return A;else if(A instanceof ArrayBuffer)return A;else if(typeof A==="object")return JSON.stringify(A);else return A.toString()}function lq(A,Q){let B=Q.query?j6A(Q.path,Q.query):Q.path,I=typeof B==="string"?bq(B):B,C=A.filter(({consumed:E})=>!E).filter(({path:E})=>fC(bq(E),I));if(C.length===0)throw new p0(`Mock dispatch not matched for path '${I}'`);if(C=C.filter(({method:E})=>fC(E,Q.method)),C.length===0)throw new p0(`Mock dispatch not matched for method '${Q.method}' on path '${I}'`);if(C=C.filter(({body:E})=>typeof E<"u"?fC(E,Q.body):!0),C.length===0)throw new p0(`Mock dispatch not matched for body '${Q.body}' on path '${I}'`);if(C=C.filter((E)=>cq(E,Q.headers)),C.length===0){let E=typeof Q.headers==="object"?JSON.stringify(Q.headers):Q.headers;throw new p0(`Mock dispatch not matched for headers '${E}' on path '${I}'`)}return C[0]}function T6A(A,Q,B){let I={timesInvoked:0,times:1,persist:!1,consumed:!1},C=typeof B==="function"?{callback:B}:{...B},E={...I,...Q,pending:!0,data:{error:null,...C}};return A.push(E),E}function J5(A,Q){let B=A.findIndex((I)=>{if(!I.consumed)return!1;return O6A(I,Q)});if(B!==-1)A.splice(B,1)}function pq(A){let{path:Q,method:B,body:I,headers:C,query:E}=A;return{path:Q,method:B,body:I,headers:C,query:E}}function F5(A){let Q=Object.keys(A),B=[];for(let I=0;I=W,I.pending=Z0)setTimeout(()=>{U(this[EU])},G);else U(this[EU]);function U(K,V=E){let z=Array.isArray(A.headers)?G5(A.headers):A.headers,M=typeof V==="function"?V({...A,headers:z}):V;if(q6A(M)){M.then((y)=>U(K,y));return}let L=uq(M),N=F5(Y),T=F5(J);Q.onConnect?.((y)=>Q.onError(y),null),Q.onHeaders?.(C,N,w,iq(C)),Q.onData?.(Buffer.from(L)),Q.onComplete?.(T),J5(K,B)}function w(){}return!0}function k6A(){let A=this[H6A],Q=this[L6A],B=this[M6A];return function(C,E){if(A.isMockActive)try{nq.call(this,C,E)}catch(Y){if(Y instanceof p0){let J=A[N6A]();if(J===!1)throw new p0(`${Y.message}: subsequent request to origin ${Q} was not allowed (net.connect disabled)`);if(oq(J,Q))B.call(this,C,E);else throw new p0(`${Y.message}: subsequent request to origin ${Q} was not allowed (net.connect is not enabled for this origin)`)}else throw Y}else B.call(this,C,E)}}function oq(A,Q){let B=new URL(Q);if(A===!0)return!0;else if(Array.isArray(A)&&A.some((I)=>fC(I,B.host)))return!0;return!1}function S6A(A){if(A){let{agent:Q,...B}=A;return B}}aq.exports={getResponseData:uq,getMockDispatch:lq,addMockDispatch:T6A,deleteMockDispatch:J5,buildKey:pq,generateKeyValues:F5,matchValue:fC,getResponse:P6A,getStatusText:iq,mockDispatch:nq,buildMockDispatch:k6A,checkNetConnect:oq,buildMockOptions:S6A,getHeaderByName:dq,buildHeadersFromArray:G5}});var w5=X((f6A,X5)=>{var{getResponseData:g6A,buildKey:y6A,addMockDispatch:D5}=DD(),{kDispatches:YU,kDispatchKey:JU,kDefaultHeaders:Z5,kDefaultTrailers:W5,kContentLength:U5,kMockDispatch:FU}=bJ(),{InvalidArgumentError:YC}=UA(),{buildURL:h6A}=YA();class ZD{constructor(A){this[FU]=A}delay(A){if(typeof A!=="number"||!Number.isInteger(A)||A<=0)throw new YC("waitInMs must be a valid integer > 0");return this[FU].delay=A,this}persist(){return this[FU].persist=!0,this}times(A){if(typeof A!=="number"||!Number.isInteger(A)||A<=0)throw new YC("repeatTimes must be a valid integer > 0");return this[FU].times=A,this}}class sq{constructor(A,Q){if(typeof A!=="object")throw new YC("opts must be an object");if(typeof A.path>"u")throw new YC("opts.path must be defined");if(typeof A.method>"u")A.method="GET";if(typeof A.path==="string")if(A.query)A.path=h6A(A.path,A.query);else{let B=new URL(A.path,"data://");A.path=B.pathname+B.search}if(typeof A.method==="string")A.method=A.method.toUpperCase();this[JU]=y6A(A),this[YU]=Q,this[Z5]={},this[W5]={},this[U5]=!1}createMockScopeDispatchData({statusCode:A,data:Q,responseOptions:B}){let I=g6A(Q),C=this[U5]?{"content-length":I.length}:{},E={...this[Z5],...C,...B.headers},Y={...this[W5],...B.trailers};return{statusCode:A,data:Q,headers:E,trailers:Y}}validateReplyParameters(A){if(typeof A.statusCode>"u")throw new YC("statusCode must be defined");if(typeof A.responseOptions!=="object"||A.responseOptions===null)throw new YC("responseOptions must be an object")}reply(A){if(typeof A==="function"){let C=(Y)=>{let J=A(Y);if(typeof J!=="object"||J===null)throw new YC("reply options callback must return an object");let F={data:"",responseOptions:{},...J};return this.validateReplyParameters(F),{...this.createMockScopeDispatchData(F)}},E=D5(this[YU],this[JU],C);return new ZD(E)}let Q={statusCode:A,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(Q);let B=this.createMockScopeDispatchData(Q),I=D5(this[YU],this[JU],B);return new ZD(I)}replyWithError(A){if(typeof A>"u")throw new YC("error must be defined");let Q=D5(this[YU],this[JU],{error:A});return new ZD(Q)}defaultReplyHeaders(A){if(typeof A>"u")throw new YC("headers must be defined");return this[Z5]=A,this}defaultReplyTrailers(A){if(typeof A>"u")throw new YC("trailers must be defined");return this[W5]=A,this}replyContentLength(){return this[U5]=!0,this}}f6A.MockInterceptor=sq;f6A.MockScope=ZD});var V5=X((eWQ,CO)=>{var{promisify:x6A}=H("node:util"),b6A=PJ(),{buildMockDispatch:m6A}=DD(),{kDispatches:rq,kMockAgent:tq,kClose:eq,kOriginalClose:AO,kOrigin:QO,kOriginalDispatch:d6A,kConnected:K5}=bJ(),{MockInterceptor:c6A}=w5(),BO=yA(),{InvalidArgumentError:u6A}=UA();class IO extends b6A{constructor(A,Q){super(A,Q);if(!Q||!Q.agent||typeof Q.agent.dispatch!=="function")throw new u6A("Argument opts.agent must implement Agent");this[tq]=Q.agent,this[QO]=A,this[rq]=[],this[K5]=1,this[d6A]=this.dispatch,this[AO]=this.close.bind(this),this.dispatch=m6A.call(this),this.close=this[eq]}get[BO.kConnected](){return this[K5]}intercept(A){return new c6A(A,this[rq])}async[eq](){await x6A(this[AO])(),this[K5]=0,this[tq][BO.kClients].delete(this[QO])}}CO.exports=IO});var $5=X((A9Q,WO)=>{var{promisify:l6A}=H("node:util"),p6A=kJ(),{buildMockDispatch:i6A}=DD(),{kDispatches:EO,kMockAgent:YO,kClose:JO,kOriginalClose:FO,kOrigin:GO,kOriginalDispatch:n6A,kConnected:z5}=bJ(),{MockInterceptor:o6A}=w5(),DO=yA(),{InvalidArgumentError:a6A}=UA();class ZO extends p6A{constructor(A,Q){super(A,Q);if(!Q||!Q.agent||typeof Q.agent.dispatch!=="function")throw new a6A("Argument opts.agent must implement Agent");this[YO]=Q.agent,this[GO]=A,this[EO]=[],this[z5]=1,this[n6A]=this.dispatch,this[FO]=this.close.bind(this),this.dispatch=i6A.call(this),this.close=this[JO]}get[DO.kConnected](){return this[z5]}intercept(A){return new o6A(A,this[EO])}async[JO](){await l6A(this[FO])(),this[z5]=0,this[YO][DO.kClients].delete(this[GO])}}WO.exports=ZO});var XO=X((Q9Q,UO)=>{var s6A={pronoun:"it",is:"is",was:"was",this:"this"},r6A={pronoun:"they",is:"are",was:"were",this:"these"};UO.exports=class{constructor(Q,B){this.singular=Q,this.plural=B}pluralize(Q){let B=Q===1,I=B?s6A:r6A,C=B?this.singular:this.plural;return{...I,count:Q,noun:C}}}});var KO=X((B9Q,wO)=>{var{Transform:t6A}=H("node:stream"),{Console:e6A}=H("node:console"),A7A=process.versions.icu?"✅":"Y ",Q7A=process.versions.icu?"❌":"N ";wO.exports=class{constructor({disableColors:Q}={}){this.transform=new t6A({transform(B,I,C){C(null,B)}}),this.logger=new e6A({stdout:this.transform,inspectOptions:{colors:!Q&&!process.env.CI}})}format(Q){let B=Q.map(({method:I,path:C,data:{statusCode:E},persist:Y,times:J,timesInvoked:F,origin:G})=>({Method:I,Origin:G,Path:C,"Status code":E,Persistent:Y?A7A:Q7A,Invocations:F,Remaining:Y?1/0:J-F}));return this.logger.table(B),this.transform.read().toString()}}});var MO=X((I9Q,HO)=>{var{kClients:i0}=yA(),B7A=SJ(),{kAgent:H5,kMockAgentSet:GU,kMockAgentGet:VO,kDispatches:M5,kIsMockActive:DU,kNetConnect:n0,kGetNetConnect:I7A,kOptions:ZU,kFactory:WU}=bJ(),C7A=V5(),E7A=$5(),{matchValue:Y7A,buildMockOptions:J7A}=DD(),{InvalidArgumentError:zO,UndiciError:F7A}=UA(),G7A=hG(),D7A=XO(),Z7A=KO();class $O extends G7A{constructor(A){super(A);if(this[n0]=!0,this[DU]=!0,A?.agent&&typeof A.agent.dispatch!=="function")throw new zO("Argument opts.agent must implement Agent");let Q=A?.agent?A.agent:new B7A(A);this[H5]=Q,this[i0]=Q[i0],this[ZU]=J7A(A)}get(A){let Q=this[VO](A);if(!Q)Q=this[WU](A),this[GU](A,Q);return Q}dispatch(A,Q){return this.get(A.origin),this[H5].dispatch(A,Q)}async close(){await this[H5].close(),this[i0].clear()}deactivate(){this[DU]=!1}activate(){this[DU]=!0}enableNetConnect(A){if(typeof A==="string"||typeof A==="function"||A instanceof RegExp)if(Array.isArray(this[n0]))this[n0].push(A);else this[n0]=[A];else if(typeof A>"u")this[n0]=!0;else throw new zO("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[n0]=!1}get isMockActive(){return this[DU]}[GU](A,Q){this[i0].set(A,Q)}[WU](A){let Q=Object.assign({agent:this},this[ZU]);return this[ZU]&&this[ZU].connections===1?new C7A(A,Q):new E7A(A,Q)}[VO](A){let Q=this[i0].get(A);if(Q)return Q;if(typeof A!=="string"){let B=this[WU]("http://localhost:9999");return this[GU](A,B),B}for(let[B,I]of Array.from(this[i0]))if(I&&typeof B!=="string"&&Y7A(B,A)){let C=this[WU](A);return this[GU](A,C),C[M5]=I[M5],C}}[I7A](){return this[n0]}pendingInterceptors(){let A=this[i0];return Array.from(A.entries()).flatMap(([Q,B])=>B[M5].map((I)=>({...I,origin:Q}))).filter(({pending:Q})=>Q)}assertNoPendingInterceptors({pendingInterceptorsFormatter:A=new Z7A}={}){let Q=this.pendingInterceptors();if(Q.length===0)return;let B=new D7A("interceptor","interceptors").pluralize(Q.length);throw new F7A(` +`,"latin1");if(Q!==null&&I!==Q)if(B[Q8])throw new p0;else process.emitWarning(new p0);if(A[JQ].timeout&&A[JQ].timeoutType===iJ){if(A[JQ].timeout.refresh)A[JQ].timeout.refresh()}B[gE]()}destroy(A){let{socket:Q,client:B,abort:I}=this;if(Q[TE]=!1,A)BA(B[oQ]<=1,"pipeline should only contain this request"),I(A)}}EN.exports=mDA});var wN=z((euA,WN)=>{var CI=j("node:assert"),{pipeline:iDA}=j("node:stream"),MA=$A(),{RequestContentLengthMismatchError:E8,RequestAbortedError:JN,SocketError:wD,InformationalError:Y8}=PA(),{kUrl:xW,kReset:bW,kClient:oJ,kRunning:mW,kPending:oDA,kQueue:_E,kPendingIdx:J8,kRunningIdx:OI,kError:gI,kSocket:gQ,kStrictContentLength:nDA,kOnError:F8,kMaxConcurrentStreams:UN,kHTTP2Session:kI,kResume:yE,kSize:sDA,kHTTPContext:aDA}=AQ(),cC=Symbol("open streams"),FN,GN=!1,vW;try{vW=j("node:http2")}catch{vW={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:rDA,HTTP2_HEADER_METHOD:tDA,HTTP2_HEADER_PATH:eDA,HTTP2_HEADER_SCHEME:AZA,HTTP2_HEADER_CONTENT_LENGTH:QZA,HTTP2_HEADER_EXPECT:BZA,HTTP2_HEADER_STATUS:IZA}}=vW;function CZA(A){let Q=[];for(let[B,I]of Object.entries(A))if(Array.isArray(I))for(let C of I)Q.push(Buffer.from(B),Buffer.from(C));else Q.push(Buffer.from(B),Buffer.from(I));return Q}async function EZA(A,Q){if(A[gQ]=Q,!GN)GN=!0,process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"});let B=vW.connect(A[xW],{createConnection:()=>Q,peerMaxConcurrentStreams:A[UN]});B[cC]=0,B[oJ]=A,B[gQ]=Q,MA.addListener(B,"error",JZA),MA.addListener(B,"frameError",FZA),MA.addListener(B,"end",GZA),MA.addListener(B,"goaway",DZA),MA.addListener(B,"close",function(){let{[oJ]:C}=this,{[gQ]:E}=C,Y=this[gQ][gI]||this[gI]||new wD("closed",MA.getSocketInfo(E));if(C[kI]=null,C.destroyed){CI(C[oDA]===0);let J=C[_E].splice(C[OI]);for(let F=0;F{I=!0}),{version:"h2",defaultPipelining:1/0,write(...C){return UZA(A,...C)},resume(){YZA(A)},destroy(C,E){if(I)queueMicrotask(E);else Q.destroy(C).on("close",E)},get destroyed(){return Q.destroyed},busy(){return!1}}}function YZA(A){let Q=A[gQ];if(Q?.destroyed===!1)if(A[sDA]===0&&A[UN]===0)Q.unref(),A[kI].unref();else Q.ref(),A[kI].ref()}function JZA(A){CI(A.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[gQ][gI]=A,this[oJ][F8](A)}function FZA(A,Q,B){if(B===0){let I=new Y8(`HTTP/2: "frameError" received - type ${A}, code ${Q}`);this[gQ][gI]=I,this[oJ][F8](I)}}function GZA(){let A=new wD("other side closed",MA.getSocketInfo(this[gQ]));this.destroy(A),MA.destroy(this[gQ],A)}function DZA(A){let Q=this[gI]||new wD(`HTTP/2: "GOAWAY" frame received with code ${A}`,MA.getSocketInfo(this)),B=this[oJ];if(B[gQ]=null,B[aDA]=null,this[kI]!=null)this[kI].destroy(Q),this[kI]=null;if(MA.destroy(this[gQ],Q),B[OI]{if(Q.aborted||Q.completed)return;if(L=L||new JN,MA.errorRequest(A,Q,L),U!=null)MA.destroy(U,L);MA.destroy(D,L),A[_E][A[OI]++]=null,A[yE]()};try{Q.onConnect(K)}catch(L){MA.errorRequest(A,Q,L)}if(Q.aborted)return!1;if(I==="CONNECT"){if(B.ref(),U=B.request(Z,{endStream:!1,signal:F}),U.id&&!U.pending)Q.onUpgrade(null,null,U),++B[cC],A[_E][A[OI]++]=null;else U.once("ready",()=>{Q.onUpgrade(null,null,U),++B[cC],A[_E][A[OI]++]=null});return U.once("close",()=>{if(B[cC]-=1,B[cC]===0)B.unref()}),!0}Z[eDA]=C,Z[AZA]="https";let X=I==="PUT"||I==="POST"||I==="PATCH";if(D&&typeof D.read==="function")D.read(0);let V=MA.bodyLength(D);if(MA.isFormDataLike(D)){FN??=uJ().extractBody;let[L,R]=FN(D);Z["content-type"]=R,D=L.stream,V=L.length}if(V==null)V=Q.contentLength;if(V===0||!X)V=null;if(ZZA(I)&&V>0&&Q.contentLength!=null&&Q.contentLength!==V){if(A[nDA])return MA.errorRequest(A,Q,new E8),!1;process.emitWarning(new E8)}if(V!=null)CI(D,"no body must not have content length"),Z[QZA]=`${V}`;B.ref();let M=I==="GET"||I==="HEAD"||D===null;if(J)Z[BZA]="100-continue",U=B.request(Z,{endStream:M,signal:F}),U.once("continue",N);else U=B.request(Z,{endStream:M,signal:F}),N();return++B[cC],U.once("response",(L)=>{let{[IZA]:R,...P}=L;if(Q.onResponseStarted(),Q.aborted){let T=new JN;MA.errorRequest(A,Q,T),MA.destroy(U,T);return}if(Q.onHeaders(Number(R),CZA(P),U.resume.bind(U),"")===!1)U.pause();U.on("data",(T)=>{if(Q.onData(T)===!1)U.pause()})}),U.once("end",()=>{if(U.state?.state==null||U.state.state<6)Q.onComplete([]);if(B[cC]===0)B.unref();K(new Y8("HTTP/2: stream half-closed (remote)")),A[_E][A[OI]++]=null,A[J8]=A[OI],A[yE]()}),U.once("close",()=>{if(B[cC]-=1,B[cC]===0)B.unref()}),U.once("error",function(L){K(L)}),U.once("frameError",(L,R)=>{K(new Y8(`HTTP/2: "frameError" received - type ${L}, code ${R}`))}),!0;function N(){if(!D||V===0)DN(K,U,null,A,Q,A[gQ],V,X);else if(MA.isBuffer(D))DN(K,U,D,A,Q,A[gQ],V,X);else if(MA.isBlobLike(D))if(typeof D.stream==="function")ZN(K,U,D.stream(),A,Q,A[gQ],V,X);else wZA(K,U,D,A,Q,A[gQ],V,X);else if(MA.isStream(D))WZA(K,A[gQ],X,U,D,A,Q,V);else if(MA.isIterable(D))ZN(K,U,D,A,Q,A[gQ],V,X);else CI(!1)}}function DN(A,Q,B,I,C,E,Y,J){try{if(B!=null&&MA.isBuffer(B))CI(Y===B.byteLength,"buffer body must have content length"),Q.cork(),Q.write(B),Q.uncork(),Q.end(),C.onBodySent(B);if(!J)E[bW]=!0;C.onRequestSent(),I[yE]()}catch(F){A(F)}}function WZA(A,Q,B,I,C,E,Y,J){CI(J!==0||E[mW]===0,"stream body cannot be pipelined");let F=iDA(C,I,(D)=>{if(D)MA.destroy(F,D),A(D);else{if(MA.removeAllListeners(F),Y.onRequestSent(),!B)Q[bW]=!0;E[yE]()}});MA.addListener(F,"data",G);function G(D){Y.onBodySent(D)}}async function wZA(A,Q,B,I,C,E,Y,J){CI(Y===B.size,"blob body must have content length");try{if(Y!=null&&Y!==B.size)throw new E8;let F=Buffer.from(await B.arrayBuffer());if(Q.cork(),Q.write(F),Q.uncork(),Q.end(),C.onBodySent(F),C.onRequestSent(),!J)E[bW]=!0;I[yE]()}catch(F){A(F)}}async function ZN(A,Q,B,I,C,E,Y,J){CI(Y!==0||I[mW]===0,"iterator body cannot be pipelined");let F=null;function G(){if(F){let Z=F;F=null,Z()}}let D=()=>new Promise((Z,U)=>{if(CI(F===null),E[gI])U(E[gI]);else F=Z});Q.on("close",G).on("drain",G);try{for await(let Z of B){if(E[gI])throw E[gI];let U=Q.write(Z);if(C.onBodySent(Z),!U)await D()}if(Q.end(),C.onRequestSent(),!J)E[bW]=!0;I[yE]()}catch(Z){A(Z)}finally{Q.off("close",G).off("drain",G)}}WN.exports=EZA});var dW=z((AlA,zN)=>{var JC=$A(),{kBodyUsed:XD}=AQ(),D8=j("node:assert"),{InvalidArgumentError:XZA}=PA(),VZA=j("node:events"),KZA=[300,301,302,303,307,308],XN=Symbol("body");class G8{constructor(A){this[XN]=A,this[XD]=!1}async*[Symbol.asyncIterator](){D8(!this[XD],"disturbed"),this[XD]=!0,yield*this[XN]}}class KN{constructor(A,Q,B,I){if(Q!=null&&(!Number.isInteger(Q)||Q<0))throw new XZA("maxRedirections must be a positive number");if(JC.validateHandler(I,B.method,B.upgrade),this.dispatch=A,this.location=null,this.abort=null,this.opts={...B,maxRedirections:0},this.maxRedirections=Q,this.handler=I,this.history=[],this.redirectionLimitReached=!1,JC.isStream(this.opts.body)){if(JC.bodyLength(this.opts.body)===0)this.opts.body.on("data",function(){D8(!1)});if(typeof this.opts.body.readableDidRead!=="boolean")this.opts.body[XD]=!1,VZA.prototype.on.call(this.opts.body,"data",function(){this[XD]=!0})}else if(this.opts.body&&typeof this.opts.body.pipeTo==="function")this.opts.body=new G8(this.opts.body);else if(this.opts.body&&typeof this.opts.body!=="string"&&!ArrayBuffer.isView(this.opts.body)&&JC.isIterable(this.opts.body))this.opts.body=new G8(this.opts.body)}onConnect(A){this.abort=A,this.handler.onConnect(A,{history:this.history})}onUpgrade(A,Q,B){this.handler.onUpgrade(A,Q,B)}onError(A){this.handler.onError(A)}onHeaders(A,Q,B,I){if(this.location=this.history.length>=this.maxRedirections||JC.isDisturbed(this.opts.body)?null:zZA(A,Q),this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections){if(this.request)this.request.abort(Error("max redirects"));this.redirectionLimitReached=!0,this.abort(Error("max redirects"));return}if(this.opts.origin)this.history.push(new URL(this.opts.path,this.opts.origin));if(!this.location)return this.handler.onHeaders(A,Q,B,I);let{origin:C,pathname:E,search:Y}=JC.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),J=Y?`${E}${Y}`:E;if(this.opts.headers=$ZA(this.opts.headers,A===303,this.opts.origin!==C),this.opts.path=J,this.opts.origin=C,this.opts.maxRedirections=0,this.opts.query=null,A===303&&this.opts.method!=="HEAD")this.opts.method="GET",this.opts.body=null}onData(A){if(this.location);else return this.handler.onData(A)}onComplete(A){if(this.location)this.location=null,this.abort=null,this.dispatch(this.opts,this);else this.handler.onComplete(A)}onBodySent(A){if(this.handler.onBodySent)this.handler.onBodySent(A)}}function zZA(A,Q){if(KZA.indexOf(A)===-1)return null;for(let B=0;B{var HZA=dW();function MZA({maxRedirections:A}){return(Q)=>{return function(I,C){let{maxRedirections:E=A}=I;if(!E)return Q(I,C);let Y=new HZA(Q,E,I,C);return I={...I,maxRedirections:0},Q(I,Y)}}}$N.exports=MZA});var aJ=z((BlA,gN)=>{var uC=j("node:assert"),RN=j("node:net"),LZA=j("node:http"),i0=$A(),{channels:nJ}=gJ(),NZA=GM(),jZA=SJ(),{InvalidArgumentError:WQ,InformationalError:RZA,ClientDestroyedError:qZA}=PA(),PZA=ID(),{kUrl:FC,kServerName:SE,kClient:OZA,kBusy:Z8,kConnect:kZA,kResuming:o0,kRunning:HD,kPending:MD,kSize:$D,kQueue:TI,kConnected:gZA,kConnecting:sJ,kNeedDrain:hE,kKeepAliveDefaultTimeout:HN,kHostHeader:TZA,kPendingIdx:_I,kRunningIdx:lC,kError:_ZA,kPipelining:uW,kKeepAliveTimeoutValue:yZA,kMaxHeadersSize:SZA,kKeepAliveMaxTimeout:fZA,kKeepAliveTimeoutThreshold:hZA,kHeadersTimeout:xZA,kBodyTimeout:vZA,kStrictContentLength:bZA,kConnector:VD,kMaxRedirections:mZA,kMaxRequests:U8,kCounter:dZA,kClose:cZA,kDestroy:uZA,kDispatch:lZA,kInterceptors:MN,kLocalAddress:KD,kMaxResponseSize:pZA,kOnError:iZA,kHTTPContext:wQ,kMaxConcurrentStreams:oZA,kResume:zD}=AQ(),nZA=YN(),sZA=wN(),LN=!1,fE=Symbol("kClosedResolve"),NN=()=>{};function qN(A){return A[uW]??A[wQ]?.defaultPipelining??1}class PN extends jZA{constructor(A,{interceptors:Q,maxHeaderSize:B,headersTimeout:I,socketTimeout:C,requestTimeout:E,connectTimeout:Y,bodyTimeout:J,idleTimeout:F,keepAlive:G,keepAliveTimeout:D,maxKeepAliveTimeout:Z,keepAliveMaxTimeout:U,keepAliveTimeoutThreshold:W,socketPath:w,pipelining:K,tls:X,strictContentLength:V,maxCachedSessions:M,maxRedirections:N,connect:L,maxRequestsPerClient:R,localAddress:P,maxResponseSize:T,autoSelectFamily:u,autoSelectFamilyAttemptTimeout:DA,maxConcurrentStreams:ZA,allowH2:dA}={}){super();if(G!==void 0)throw new WQ("unsupported keepAlive, use pipelining=0 instead");if(C!==void 0)throw new WQ("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(E!==void 0)throw new WQ("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(F!==void 0)throw new WQ("unsupported idleTimeout, use keepAliveTimeout instead");if(Z!==void 0)throw new WQ("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(B!=null&&!Number.isFinite(B))throw new WQ("invalid maxHeaderSize");if(w!=null&&typeof w!=="string")throw new WQ("invalid socketPath");if(Y!=null&&(!Number.isFinite(Y)||Y<0))throw new WQ("invalid connectTimeout");if(D!=null&&(!Number.isFinite(D)||D<=0))throw new WQ("invalid keepAliveTimeout");if(U!=null&&(!Number.isFinite(U)||U<=0))throw new WQ("invalid keepAliveMaxTimeout");if(W!=null&&!Number.isFinite(W))throw new WQ("invalid keepAliveTimeoutThreshold");if(I!=null&&(!Number.isInteger(I)||I<0))throw new WQ("headersTimeout must be a positive integer or zero");if(J!=null&&(!Number.isInteger(J)||J<0))throw new WQ("bodyTimeout must be a positive integer or zero");if(L!=null&&typeof L!=="function"&&typeof L!=="object")throw new WQ("connect must be a function or an object");if(N!=null&&(!Number.isInteger(N)||N<0))throw new WQ("maxRedirections must be a positive number");if(R!=null&&(!Number.isInteger(R)||R<0))throw new WQ("maxRequestsPerClient must be a positive number");if(P!=null&&(typeof P!=="string"||RN.isIP(P)===0))throw new WQ("localAddress must be valid string IP address");if(T!=null&&(!Number.isInteger(T)||T<-1))throw new WQ("maxResponseSize must be a positive number");if(DA!=null&&(!Number.isInteger(DA)||DA<-1))throw new WQ("autoSelectFamilyAttemptTimeout must be a positive number");if(dA!=null&&typeof dA!=="boolean")throw new WQ("allowH2 must be a valid boolean value");if(ZA!=null&&(typeof ZA!=="number"||ZA<1))throw new WQ("maxConcurrentStreams must be a positive integer, greater than 0");if(typeof L!=="function")L=PZA({...X,maxCachedSessions:M,allowH2:dA,socketPath:w,timeout:Y,...u?{autoSelectFamily:u,autoSelectFamilyAttemptTimeout:DA}:void 0,...L});if(Q?.Client&&Array.isArray(Q.Client)){if(this[MN]=Q.Client,!LN)LN=!0,process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.",{code:"UNDICI-CLIENT-INTERCEPTOR-DEPRECATED"})}else this[MN]=[aZA({maxRedirections:N})];this[FC]=i0.parseOrigin(A),this[VD]=L,this[uW]=K!=null?K:1,this[SZA]=B||LZA.maxHeaderSize,this[HN]=D==null?4000:D,this[fZA]=U==null?600000:U,this[hZA]=W==null?2000:W,this[yZA]=this[HN],this[SE]=null,this[KD]=P!=null?P:null,this[o0]=0,this[hE]=0,this[TZA]=`host: ${this[FC].hostname}${this[FC].port?`:${this[FC].port}`:""}\r +`,this[vZA]=J!=null?J:300000,this[xZA]=I!=null?I:300000,this[bZA]=V==null?!0:V,this[mZA]=N,this[U8]=R,this[fE]=null,this[pZA]=T>-1?T:-1,this[oZA]=ZA!=null?ZA:100,this[wQ]=null,this[TI]=[],this[lC]=0,this[_I]=0,this[zD]=(cA)=>W8(this,cA),this[iZA]=(cA)=>ON(this,cA)}get pipelining(){return this[uW]}set pipelining(A){this[uW]=A,this[zD](!0)}get[MD](){return this[TI].length-this[_I]}get[HD](){return this[_I]-this[lC]}get[$D](){return this[TI].length-this[lC]}get[gZA](){return!!this[wQ]&&!this[sJ]&&!this[wQ].destroyed}get[Z8](){return Boolean(this[wQ]?.busy(null)||this[$D]>=(qN(this)||1)||this[MD]>0)}[kZA](A){kN(this),this.once("connect",A)}[lZA](A,Q){let B=A.origin||this[FC].origin,I=new NZA(B,A,Q);if(this[TI].push(I),this[o0]);else if(i0.bodyLength(I.body)==null&&i0.isIterable(I.body))this[o0]=1,queueMicrotask(()=>W8(this));else this[zD](!0);if(this[o0]&&this[hE]!==2&&this[Z8])this[hE]=2;return this[hE]<2}async[cZA](){return new Promise((A)=>{if(this[$D])this[fE]=A;else A(null)})}async[uZA](A){return new Promise((Q)=>{let B=this[TI].splice(this[_I]);for(let C=0;C{if(this[fE])this[fE](),this[fE]=null;Q(null)};if(this[wQ])this[wQ].destroy(A,I),this[wQ]=null;else queueMicrotask(I);this[zD]()})}}var aZA=cW();function ON(A,Q){if(A[HD]===0&&Q.code!=="UND_ERR_INFO"&&Q.code!=="UND_ERR_SOCKET"){uC(A[_I]===A[lC]);let B=A[TI].splice(A[lC]);for(let I=0;I{A[VD]({host:Q,hostname:B,protocol:I,port:C,servername:A[SE],localAddress:A[KD]},(F,G)=>{if(F)J(F);else Y(G)})});if(A.destroyed){i0.destroy(E.on("error",NN),new qZA);return}uC(E);try{A[wQ]=E.alpnProtocol==="h2"?await sZA(A,E):await nZA(A,E)}catch(Y){throw E.destroy().on("error",NN),Y}if(A[sJ]=!1,E[dZA]=0,E[U8]=A[U8],E[OZA]=A,E[_ZA]=null,nJ.connected.hasSubscribers)nJ.connected.publish({connectParams:{host:Q,hostname:B,protocol:I,port:C,version:A[wQ]?.version,servername:A[SE],localAddress:A[KD]},connector:A[VD],socket:E});A.emit("connect",A[FC],[A])}catch(E){if(A.destroyed)return;if(A[sJ]=!1,nJ.connectError.hasSubscribers)nJ.connectError.publish({connectParams:{host:Q,hostname:B,protocol:I,port:C,version:A[wQ]?.version,servername:A[SE],localAddress:A[KD]},connector:A[VD],error:E});if(E.code==="ERR_TLS_CERT_ALTNAME_INVALID"){uC(A[HD]===0);while(A[MD]>0&&A[TI][A[_I]].servername===A[SE]){let Y=A[TI][A[_I]++];i0.errorRequest(A,Y,E)}}else ON(A,E);A.emit("connectionError",A[FC],[A],E)}A[zD]()}function jN(A){A[hE]=0,A.emit("drain",A[FC],[A])}function W8(A,Q){if(A[o0]===2)return;if(A[o0]=2,rZA(A,Q),A[o0]=0,A[lC]>256)A[TI].splice(0,A[lC]),A[_I]-=A[lC],A[lC]=0}function rZA(A,Q){while(!0){if(A.destroyed){uC(A[MD]===0);return}if(A[fE]&&!A[$D]){A[fE](),A[fE]=null;return}if(A[wQ])A[wQ].resume();if(A[Z8])A[hE]=2;else if(A[hE]===2){if(Q)A[hE]=1,queueMicrotask(()=>jN(A));else jN(A);continue}if(A[MD]===0)return;if(A[HD]>=(qN(A)||1))return;let B=A[TI][A[_I]];if(A[FC].protocol==="https:"&&A[SE]!==B.servername){if(A[HD]>0)return;A[SE]=B.servername,A[wQ]?.destroy(new RZA("servername changed"),()=>{A[wQ]=null,W8(A)})}if(A[sJ])return;if(!A[wQ]){kN(A);return}if(A[wQ].destroyed)return;if(A[wQ].busy(B))return;if(!B.aborted&&A[wQ].write(B))A[_I]++;else A[TI].splice(A[_I],1)}}gN.exports=PN});var X8=z((IlA,TN)=>{class w8{constructor(){this.bottom=0,this.top=0,this.list=Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(A){this.list[this.top]=A,this.top=this.top+1&2047}shift(){let A=this.list[this.bottom];if(A===void 0)return null;return this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,A}}TN.exports=class{constructor(){this.head=this.tail=new w8}isEmpty(){return this.head.isEmpty()}push(Q){if(this.head.isFull())this.head=this.head.next=new w8;this.head.push(Q)}shift(){let Q=this.tail,B=Q.shift();if(Q.isEmpty()&&Q.next!==null)this.tail=Q.next;return B}}});var SN=z((ClA,yN)=>{var{kFree:tZA,kConnected:eZA,kPending:AUA,kQueued:QUA,kRunning:BUA,kSize:IUA}=AQ(),n0=Symbol("pool");class _N{constructor(A){this[n0]=A}get connected(){return this[n0][eZA]}get free(){return this[n0][tZA]}get pending(){return this[n0][AUA]}get queued(){return this[n0][QUA]}get running(){return this[n0][BUA]}get size(){return this[n0][IUA]}}yN.exports=_N});var H8=z((ElA,pN)=>{var CUA=SJ(),EUA=X8(),{kConnected:V8,kSize:fN,kRunning:hN,kPending:xN,kQueued:LD,kBusy:YUA,kFree:JUA,kUrl:FUA,kClose:GUA,kDestroy:DUA,kDispatch:ZUA}=AQ(),UUA=SN(),HB=Symbol("clients"),JB=Symbol("needDrain"),ND=Symbol("queue"),K8=Symbol("closed resolve"),z8=Symbol("onDrain"),vN=Symbol("onConnect"),bN=Symbol("onDisconnect"),mN=Symbol("onConnectionError"),$8=Symbol("get dispatcher"),cN=Symbol("add client"),uN=Symbol("remove client"),dN=Symbol("stats");class lN extends CUA{constructor(){super();this[ND]=new EUA,this[HB]=[],this[LD]=0;let A=this;this[z8]=function(B,I){let C=A[ND],E=!1;while(!E){let Y=C.shift();if(!Y)break;A[LD]--,E=!this.dispatch(Y.opts,Y.handler)}if(this[JB]=E,!this[JB]&&A[JB])A[JB]=!1,A.emit("drain",B,[A,...I]);if(A[K8]&&C.isEmpty())Promise.all(A[HB].map((Y)=>Y.close())).then(A[K8])},this[vN]=(Q,B)=>{A.emit("connect",Q,[A,...B])},this[bN]=(Q,B,I)=>{A.emit("disconnect",Q,[A,...B],I)},this[mN]=(Q,B,I)=>{A.emit("connectionError",Q,[A,...B],I)},this[dN]=new UUA(this)}get[YUA](){return this[JB]}get[V8](){return this[HB].filter((A)=>A[V8]).length}get[JUA](){return this[HB].filter((A)=>A[V8]&&!A[JB]).length}get[xN](){let A=this[LD];for(let{[xN]:Q}of this[HB])A+=Q;return A}get[hN](){let A=0;for(let{[hN]:Q}of this[HB])A+=Q;return A}get[fN](){let A=this[LD];for(let{[fN]:Q}of this[HB])A+=Q;return A}get stats(){return this[dN]}async[GUA](){if(this[ND].isEmpty())await Promise.all(this[HB].map((A)=>A.close()));else await new Promise((A)=>{this[K8]=A})}async[DUA](A){while(!0){let Q=this[ND].shift();if(!Q)break;Q.handler.onError(A)}await Promise.all(this[HB].map((Q)=>Q.destroy(A)))}[ZUA](A,Q){let B=this[$8]();if(!B)this[JB]=!0,this[ND].push({opts:A,handler:Q}),this[LD]++;else if(!B.dispatch(A,Q))B[JB]=!0,this[JB]=!this[$8]();return!this[JB]}[cN](A){if(A.on("drain",this[z8]).on("connect",this[vN]).on("disconnect",this[bN]).on("connectionError",this[mN]),this[HB].push(A),this[JB])queueMicrotask(()=>{if(this[JB])this[z8](A[FUA],[this,A])});return this}[uN](A){A.close(()=>{let Q=this[HB].indexOf(A);if(Q!==-1)this[HB].splice(Q,1)}),this[JB]=this[HB].some((Q)=>!Q[JB]&&Q.closed!==!0&&Q.destroyed!==!0)}}pN.exports={PoolBase:lN,kClients:HB,kNeedDrain:JB,kAddClient:cN,kRemoveClient:uN,kGetDispatcher:$8}});var rJ=z((YlA,aN)=>{var{PoolBase:WUA,kClients:lW,kNeedDrain:wUA,kAddClient:XUA,kGetDispatcher:VUA}=H8(),KUA=aJ(),{InvalidArgumentError:M8}=PA(),iN=$A(),{kUrl:oN,kInterceptors:zUA}=AQ(),$UA=ID(),L8=Symbol("options"),N8=Symbol("connections"),nN=Symbol("factory");function HUA(A,Q){return new KUA(A,Q)}class sN extends WUA{constructor(A,{connections:Q,factory:B=HUA,connect:I,connectTimeout:C,tls:E,maxCachedSessions:Y,socketPath:J,autoSelectFamily:F,autoSelectFamilyAttemptTimeout:G,allowH2:D,...Z}={}){super();if(Q!=null&&(!Number.isFinite(Q)||Q<0))throw new M8("invalid connections");if(typeof B!=="function")throw new M8("factory must be a function.");if(I!=null&&typeof I!=="function"&&typeof I!=="object")throw new M8("connect must be a function or an object");if(typeof I!=="function")I=$UA({...E,maxCachedSessions:Y,allowH2:D,socketPath:J,timeout:C,...F?{autoSelectFamily:F,autoSelectFamilyAttemptTimeout:G}:void 0,...I});this[zUA]=Z.interceptors?.Pool&&Array.isArray(Z.interceptors.Pool)?Z.interceptors.Pool:[],this[N8]=Q||null,this[oN]=iN.parseOrigin(A),this[L8]={...iN.deepClone(Z),connect:I,allowH2:D},this[L8].interceptors=Z.interceptors?{...Z.interceptors}:void 0,this[nN]=B,this.on("connectionError",(U,W,w)=>{for(let K of W){let X=this[lW].indexOf(K);if(X!==-1)this[lW].splice(X,1)}})}[VUA](){for(let A of this[lW])if(!A[wUA])return A;if(!this[N8]||this[lW].length{var{BalancedPoolMissingUpstreamError:MUA,InvalidArgumentError:LUA}=PA(),{PoolBase:NUA,kClients:nQ,kNeedDrain:jD,kAddClient:jUA,kRemoveClient:RUA,kGetDispatcher:qUA}=H8(),PUA=rJ(),{kUrl:j8,kInterceptors:OUA}=AQ(),{parseOrigin:rN}=$A(),tN=Symbol("factory"),pW=Symbol("options"),eN=Symbol("kGreatestCommonDivisor"),s0=Symbol("kCurrentWeight"),a0=Symbol("kIndex"),EI=Symbol("kWeight"),iW=Symbol("kMaxWeightPerServer"),oW=Symbol("kErrorPenalty");function kUA(A,Q){if(A===0)return Q;while(Q!==0){let B=Q;Q=A%Q,A=B}return A}function gUA(A,Q){return new PUA(A,Q)}class Aj extends NUA{constructor(A=[],{factory:Q=gUA,...B}={}){super();if(this[pW]=B,this[a0]=-1,this[s0]=0,this[iW]=this[pW].maxWeightPerServer||100,this[oW]=this[pW].errorPenalty||15,!Array.isArray(A))A=[A];if(typeof Q!=="function")throw new LUA("factory must be a function.");this[OUA]=B.interceptors?.BalancedPool&&Array.isArray(B.interceptors.BalancedPool)?B.interceptors.BalancedPool:[],this[tN]=Q;for(let I of A)this.addUpstream(I);this._updateBalancedPoolStats()}addUpstream(A){let Q=rN(A).origin;if(this[nQ].find((I)=>I[j8].origin===Q&&I.closed!==!0&&I.destroyed!==!0))return this;let B=this[tN](Q,Object.assign({},this[pW]));this[jUA](B),B.on("connect",()=>{B[EI]=Math.min(this[iW],B[EI]+this[oW])}),B.on("connectionError",()=>{B[EI]=Math.max(1,B[EI]-this[oW]),this._updateBalancedPoolStats()}),B.on("disconnect",(...I)=>{let C=I[2];if(C&&C.code==="UND_ERR_SOCKET")B[EI]=Math.max(1,B[EI]-this[oW]),this._updateBalancedPoolStats()});for(let I of this[nQ])I[EI]=this[iW];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let A=0;for(let Q=0;QI[j8].origin===Q&&I.closed!==!0&&I.destroyed!==!0);if(B)this[RUA](B);return this}get upstreams(){return this[nQ].filter((A)=>A.closed!==!0&&A.destroyed!==!0).map((A)=>A[j8].origin)}[qUA](){if(this[nQ].length===0)throw new MUA;if(!this[nQ].find((C)=>!C[jD]&&C.closed!==!0&&C.destroyed!==!0))return;if(this[nQ].map((C)=>C[jD]).reduce((C,E)=>C&&E,!0))return;let B=0,I=this[nQ].findIndex((C)=>!C[jD]);while(B++this[nQ][I][EI]&&!C[jD])I=this[a0];if(this[a0]===0){if(this[s0]=this[s0]-this[eN],this[s0]<=0)this[s0]=this[iW]}if(C[EI]>=this[s0]&&!C[jD])return C}return this[s0]=this[nQ][I][EI],this[a0]=I,this[nQ][I]}}Qj.exports=Aj});var tJ=z((FlA,Dj)=>{var{InvalidArgumentError:nW}=PA(),{kClients:xE,kRunning:Ij,kClose:TUA,kDestroy:_UA,kDispatch:yUA,kInterceptors:SUA}=AQ(),fUA=SJ(),hUA=rJ(),xUA=aJ(),vUA=$A(),bUA=cW(),Cj=Symbol("onConnect"),Ej=Symbol("onDisconnect"),Yj=Symbol("onConnectionError"),mUA=Symbol("maxRedirections"),Jj=Symbol("onDrain"),Fj=Symbol("factory"),R8=Symbol("options");function dUA(A,Q){return Q&&Q.connections===1?new xUA(A,Q):new hUA(A,Q)}class Gj extends fUA{constructor({factory:A=dUA,maxRedirections:Q=0,connect:B,...I}={}){super();if(typeof A!=="function")throw new nW("factory must be a function.");if(B!=null&&typeof B!=="function"&&typeof B!=="object")throw new nW("connect must be a function or an object");if(!Number.isInteger(Q)||Q<0)throw new nW("maxRedirections must be a positive number");if(B&&typeof B!=="function")B={...B};this[SUA]=I.interceptors?.Agent&&Array.isArray(I.interceptors.Agent)?I.interceptors.Agent:[bUA({maxRedirections:Q})],this[R8]={...vUA.deepClone(I),connect:B},this[R8].interceptors=I.interceptors?{...I.interceptors}:void 0,this[mUA]=Q,this[Fj]=A,this[xE]=new Map,this[Jj]=(C,E)=>{this.emit("drain",C,[this,...E])},this[Cj]=(C,E)=>{this.emit("connect",C,[this,...E])},this[Ej]=(C,E,Y)=>{this.emit("disconnect",C,[this,...E],Y)},this[Yj]=(C,E,Y)=>{this.emit("connectionError",C,[this,...E],Y)}}get[Ij](){let A=0;for(let Q of this[xE].values())A+=Q[Ij];return A}[yUA](A,Q){let B;if(A.origin&&(typeof A.origin==="string"||A.origin instanceof URL))B=String(A.origin);else throw new nW("opts.origin must be a non-empty string or URL.");let I=this[xE].get(B);if(!I)I=this[Fj](A.origin,this[R8]).on("drain",this[Jj]).on("connect",this[Cj]).on("disconnect",this[Ej]).on("connectionError",this[Yj]),this[xE].set(B,I);return I.dispatch(A,Q)}async[TUA](){let A=[];for(let Q of this[xE].values())A.push(Q.close());this[xE].clear(),await Promise.all(A)}async[_UA](A){let Q=[];for(let B of this[xE].values())Q.push(B.destroy(A));this[xE].clear(),await Promise.all(Q)}}Dj.exports=Gj});var O8=z((GlA,Nj)=>{var{kProxy:q8,kClose:Vj,kDestroy:Kj,kDispatch:Zj,kInterceptors:cUA}=AQ(),{URL:r0}=j("node:url"),uUA=tJ(),zj=rJ(),$j=SJ(),{InvalidArgumentError:eJ,RequestAbortedError:lUA,SecureProxyConnectionError:pUA}=PA(),Uj=ID(),Hj=aJ(),sW=Symbol("proxy agent"),aW=Symbol("proxy client"),vE=Symbol("proxy headers"),P8=Symbol("request tls settings"),Wj=Symbol("proxy tls settings"),wj=Symbol("connect endpoint function"),Xj=Symbol("tunnel proxy");function iUA(A){return A==="https:"?443:80}function oUA(A,Q){return new zj(A,Q)}var nUA=()=>{};function sUA(A,Q){if(Q.connections===1)return new Hj(A,Q);return new zj(A,Q)}class Mj extends $j{#A;constructor(A,{headers:Q={},connect:B,factory:I}){super();if(!A)throw new eJ("Proxy URL is mandatory");if(this[vE]=Q,I)this.#A=I(A,{connect:B});else this.#A=new Hj(A,{connect:B})}[Zj](A,Q){let B=Q.onHeaders;Q.onHeaders=function(Y,J,F){if(Y===407){if(typeof Q.onError==="function")Q.onError(new eJ("Proxy Authentication Required (407)"));return}if(B)B.call(this,Y,J,F)};let{origin:I,path:C="/",headers:E={}}=A;if(A.path=I+C,!("host"in E)&&!("Host"in E)){let{host:Y}=new r0(I);E.host=Y}return A.headers={...this[vE],...E},this.#A[Zj](A,Q)}async[Vj](){return this.#A.close()}async[Kj](A){return this.#A.destroy(A)}}class Lj extends $j{constructor(A){super();if(!A||typeof A==="object"&&!(A instanceof r0)&&!A.uri)throw new eJ("Proxy uri is mandatory");let{clientFactory:Q=oUA}=A;if(typeof Q!=="function")throw new eJ("Proxy opts.clientFactory must be a function.");let{proxyTunnel:B=!0}=A,I=this.#A(A),{href:C,origin:E,port:Y,protocol:J,username:F,password:G,hostname:D}=I;if(this[q8]={uri:C,protocol:J},this[cUA]=A.interceptors?.ProxyAgent&&Array.isArray(A.interceptors.ProxyAgent)?A.interceptors.ProxyAgent:[],this[P8]=A.requestTls,this[Wj]=A.proxyTls,this[vE]=A.headers||{},this[Xj]=B,A.auth&&A.token)throw new eJ("opts.auth cannot be used in combination with opts.token");else if(A.auth)this[vE]["proxy-authorization"]=`Basic ${A.auth}`;else if(A.token)this[vE]["proxy-authorization"]=A.token;else if(F&&G)this[vE]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(F)}:${decodeURIComponent(G)}`).toString("base64")}`;let Z=Uj({...A.proxyTls});this[wj]=Uj({...A.requestTls});let U=A.factory||sUA,W=(w,K)=>{let{protocol:X}=new r0(w);if(!this[Xj]&&X==="http:"&&this[q8].protocol==="http:")return new Mj(this[q8].uri,{headers:this[vE],connect:Z,factory:U});return U(w,K)};this[aW]=Q(I,{connect:Z}),this[sW]=new uUA({...A,factory:W,connect:async(w,K)=>{let X=w.host;if(!w.port)X+=`:${iUA(w.protocol)}`;try{let{socket:V,statusCode:M}=await this[aW].connect({origin:E,port:Y,path:X,signal:w.signal,headers:{...this[vE],host:w.host},servername:this[Wj]?.servername||D});if(M!==200)V.on("error",nUA).destroy(),K(new lUA(`Proxy response (${M}) !== 200 when HTTP Tunneling`));if(w.protocol!=="https:"){K(null,V);return}let N;if(this[P8])N=this[P8].servername;else N=w.servername;this[wj]({...w,servername:N,httpSocket:V},K)}catch(V){if(V.code==="ERR_TLS_CERT_ALTNAME_INVALID")K(new pUA(V));else K(V)}}})}dispatch(A,Q){let B=aUA(A.headers);if(rUA(B),B&&!("host"in B)&&!("Host"in B)){let{host:I}=new r0(A.origin);B.host=I}return this[sW].dispatch({...A,headers:B},Q)}#A(A){if(typeof A==="string")return new r0(A);else if(A instanceof r0)return A;else return new r0(A.uri)}async[Vj](){await this[sW].close(),await this[aW].close()}async[Kj](){await this[sW].destroy(),await this[aW].destroy()}}function aUA(A){if(Array.isArray(A)){let Q={};for(let B=0;BB.toLowerCase()==="proxy-authorization"))throw new eJ("Proxy-Authorization should be sent in ProxyAgent constructor")}Nj.exports=Lj});var gj=z((DlA,kj)=>{var tUA=SJ(),{kClose:eUA,kDestroy:AWA,kClosed:jj,kDestroyed:Rj,kDispatch:QWA,kNoProxyAgent:RD,kHttpProxyAgent:bE,kHttpsProxyAgent:t0}=AQ(),qj=O8(),BWA=tJ(),IWA={"http:":80,"https:":443},Pj=!1;class Oj extends tUA{#A=null;#Q=null;#C=null;constructor(A={}){super();if(this.#C=A,!Pj)Pj=!0,process.emitWarning("EnvHttpProxyAgent is experimental, expect them to change at any time.",{code:"UNDICI-EHPA"});let{httpProxy:Q,httpsProxy:B,noProxy:I,...C}=A;this[RD]=new BWA(C);let E=Q??process.env.http_proxy??process.env.HTTP_PROXY;if(E)this[bE]=new qj({...C,uri:E});else this[bE]=this[RD];let Y=B??process.env.https_proxy??process.env.HTTPS_PROXY;if(Y)this[t0]=new qj({...C,uri:Y});else this[t0]=this[bE];this.#E()}[QWA](A,Q){let B=new URL(A.origin);return this.#I(B).dispatch(A,Q)}async[eUA](){if(await this[RD].close(),!this[bE][jj])await this[bE].close();if(!this[t0][jj])await this[t0].close()}async[AWA](A){if(await this[RD].destroy(A),!this[bE][Rj])await this[bE].destroy(A);if(!this[t0][Rj])await this[t0].destroy(A)}#I(A){let{protocol:Q,host:B,port:I}=A;if(B=B.replace(/:\d*$/,"").toLowerCase(),I=Number.parseInt(I,10)||IWA[Q]||0,!this.#B(B,I))return this[RD];if(Q==="https:")return this[t0];return this[bE]}#B(A,Q){if(this.#Y)this.#E();if(this.#Q.length===0)return!0;if(this.#A==="*")return!1;for(let B=0;B{var AF=j("node:assert"),{kRetryHandlerDefaultRetry:Tj}=AQ(),{RequestRetryError:qD}=PA(),{isDisturbed:_j,parseHeaders:CWA,parseRangeHeader:yj,wrapRequestBody:EWA}=$A();function YWA(A){let Q=Date.now();return new Date(A).getTime()-Q}class k8{constructor(A,Q){let{retryOptions:B,...I}=A,{retry:C,maxRetries:E,maxTimeout:Y,minTimeout:J,timeoutFactor:F,methods:G,errorCodes:D,retryAfter:Z,statusCodes:U}=B??{};this.dispatch=Q.dispatch,this.handler=Q.handler,this.opts={...I,body:EWA(A.body)},this.abort=null,this.aborted=!1,this.retryOpts={retry:C??k8[Tj],retryAfter:Z??!0,maxTimeout:Y??30000,minTimeout:J??500,timeoutFactor:F??2,maxRetries:E??5,methods:G??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:U??[500,502,503,504,429],errorCodes:D??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE","UND_ERR_SOCKET"]},this.retryCount=0,this.retryCountCheckpoint=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect((W)=>{if(this.aborted=!0,this.abort)this.abort(W);else this.reason=W})}onRequestSent(){if(this.handler.onRequestSent)this.handler.onRequestSent()}onUpgrade(A,Q,B){if(this.handler.onUpgrade)this.handler.onUpgrade(A,Q,B)}onConnect(A){if(this.aborted)A(this.reason);else this.abort=A}onBodySent(A){if(this.handler.onBodySent)return this.handler.onBodySent(A)}static[Tj](A,{state:Q,opts:B},I){let{statusCode:C,code:E,headers:Y}=A,{method:J,retryOptions:F}=B,{maxRetries:G,minTimeout:D,maxTimeout:Z,timeoutFactor:U,statusCodes:W,errorCodes:w,methods:K}=F,{counter:X}=Q;if(E&&E!=="UND_ERR_REQ_RETRY"&&!w.includes(E)){I(A);return}if(Array.isArray(K)&&!K.includes(J)){I(A);return}if(C!=null&&Array.isArray(W)&&!W.includes(C)){I(A);return}if(X>G){I(A);return}let V=Y?.["retry-after"];if(V)V=Number(V),V=Number.isNaN(V)?YWA(V):V*1000;let M=V>0?Math.min(V,Z):Math.min(D*U**(X-1),Z);setTimeout(()=>I(null),M)}onHeaders(A,Q,B,I){let C=CWA(Q);if(this.retryCount+=1,A>=300)if(this.retryOpts.statusCodes.includes(A)===!1)return this.handler.onHeaders(A,Q,B,I);else return this.abort(new qD("Request failed",A,{headers:C,data:{count:this.retryCount}})),!1;if(this.resume!=null){if(this.resume=null,A!==206&&(this.start>0||A!==200))return this.abort(new qD("server does not support the range header and the payload was partially consumed",A,{headers:C,data:{count:this.retryCount}})),!1;let Y=yj(C["content-range"]);if(!Y)return this.abort(new qD("Content-Range mismatch",A,{headers:C,data:{count:this.retryCount}})),!1;if(this.etag!=null&&this.etag!==C.etag)return this.abort(new qD("ETag mismatch",A,{headers:C,data:{count:this.retryCount}})),!1;let{start:J,size:F,end:G=F-1}=Y;return AF(this.start===J,"content-range mismatch"),AF(this.end==null||this.end===G,"content-range mismatch"),this.resume=B,!0}if(this.end==null){if(A===206){let Y=yj(C["content-range"]);if(Y==null)return this.handler.onHeaders(A,Q,B,I);let{start:J,size:F,end:G=F-1}=Y;AF(J!=null&&Number.isFinite(J),"content-range mismatch"),AF(G!=null&&Number.isFinite(G),"invalid content-length"),this.start=J,this.end=G}if(this.end==null){let Y=C["content-length"];this.end=Y!=null?Number(Y)-1:null}if(AF(Number.isFinite(this.start)),AF(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=B,this.etag=C.etag!=null?C.etag:null,this.etag!=null&&this.etag.startsWith("W/"))this.etag=null;return this.handler.onHeaders(A,Q,B,I)}let E=new qD("Request failed",A,{headers:C,data:{count:this.retryCount}});return this.abort(E),!1}onData(A){return this.start+=A.length,this.handler.onData(A)}onComplete(A){return this.retryCount=0,this.handler.onComplete(A)}onError(A){if(this.aborted||_j(this.opts.body))return this.handler.onError(A);if(this.retryCount-this.retryCountCheckpoint>0)this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint);else this.retryCount+=1;this.retryOpts.retry(A,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},Q.bind(this));function Q(B){if(B!=null||this.aborted||_j(this.opts.body))return this.handler.onError(B);if(this.start!==0){let I={range:`bytes=${this.start}-${this.end??""}`};if(this.etag!=null)I["if-match"]=this.etag;this.opts={...this.opts,headers:{...this.opts.headers,...I}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(I){this.handler.onError(I)}}}}Sj.exports=k8});var xj=z((UlA,hj)=>{var JWA=QD(),FWA=rW();class fj extends JWA{#A=null;#Q=null;constructor(A,Q={}){super(Q);this.#A=A,this.#Q=Q}dispatch(A,Q){let B=new FWA({...A,retryOptions:this.#Q},{dispatch:this.#A.dispatch.bind(this.#A),handler:Q});return this.#A.dispatch(A,B)}close(){return this.#A.close()}destroy(){return this.#A.destroy()}}hj.exports=fj});var S8=z((WlA,oj)=>{var cj=j("node:assert"),{Readable:GWA}=j("node:stream"),{RequestAbortedError:uj,NotSupportedError:DWA,InvalidArgumentError:ZWA,AbortError:g8}=PA(),lj=$A(),{ReadableStreamFrom:UWA}=$A(),fB=Symbol("kConsume"),PD=Symbol("kReading"),mE=Symbol("kBody"),vj=Symbol("kAbort"),pj=Symbol("kContentType"),bj=Symbol("kContentLength"),WWA=()=>{};class ij extends GWA{constructor({resume:A,abort:Q,contentType:B="",contentLength:I,highWaterMark:C=65536}){super({autoDestroy:!0,read:A,highWaterMark:C});this._readableState.dataEmitted=!1,this[vj]=Q,this[fB]=null,this[mE]=null,this[pj]=B,this[bj]=I,this[PD]=!1}destroy(A){if(!A&&!this._readableState.endEmitted)A=new uj;if(A)this[vj]();return super.destroy(A)}_destroy(A,Q){if(!this[PD])setImmediate(()=>{Q(A)});else Q(A)}on(A,...Q){if(A==="data"||A==="readable")this[PD]=!0;return super.on(A,...Q)}addListener(A,...Q){return this.on(A,...Q)}off(A,...Q){let B=super.off(A,...Q);if(A==="data"||A==="readable")this[PD]=this.listenerCount("data")>0||this.listenerCount("readable")>0;return B}removeListener(A,...Q){return this.off(A,...Q)}push(A){if(this[fB]&&A!==null)return _8(this[fB],A),this[PD]?super.push(A):!0;return super.push(A)}async text(){return OD(this,"text")}async json(){return OD(this,"json")}async blob(){return OD(this,"blob")}async bytes(){return OD(this,"bytes")}async arrayBuffer(){return OD(this,"arrayBuffer")}async formData(){throw new DWA}get bodyUsed(){return lj.isDisturbed(this)}get body(){if(!this[mE]){if(this[mE]=UWA(this),this[fB])this[mE].getReader(),cj(this[mE].locked)}return this[mE]}async dump(A){let Q=Number.isFinite(A?.limit)?A.limit:131072,B=A?.signal;if(B!=null&&(typeof B!=="object"||!("aborted"in B)))throw new ZWA("signal must be an AbortSignal");if(B?.throwIfAborted(),this._readableState.closeEmitted)return null;return await new Promise((I,C)=>{if(this[bj]>Q)this.destroy(new g8);let E=()=>{this.destroy(B.reason??new g8)};B?.addEventListener("abort",E),this.on("close",function(){if(B?.removeEventListener("abort",E),B?.aborted)C(B.reason??new g8);else I(null)}).on("error",WWA).on("data",function(Y){if(Q-=Y.length,Q<=0)this.destroy()}).resume()})}}function wWA(A){return A[mE]&&A[mE].locked===!0||A[fB]}function XWA(A){return lj.isDisturbed(A)||wWA(A)}async function OD(A,Q){return cj(!A[fB]),new Promise((B,I)=>{if(XWA(A)){let C=A._readableState;if(C.destroyed&&C.closeEmitted===!1)A.on("error",(E)=>{I(E)}).on("close",()=>{I(TypeError("unusable"))});else I(C.errored??TypeError("unusable"))}else queueMicrotask(()=>{A[fB]={type:Q,stream:A,resolve:B,reject:I,length:0,body:[]},A.on("error",function(C){y8(this[fB],C)}).on("close",function(){if(this[fB].body!==null)y8(this[fB],new uj)}),VWA(A[fB])})})}function VWA(A){if(A.body===null)return;let{_readableState:Q}=A.stream;if(Q.bufferIndex){let B=Q.bufferIndex,I=Q.buffer.length;for(let C=B;C2&&B[0]===239&&B[1]===187&&B[2]===191?3:0;return B.utf8Slice(C,I)}function mj(A,Q){if(A.length===0||Q===0)return new Uint8Array(0);if(A.length===1)return new Uint8Array(A[0]);let B=new Uint8Array(Buffer.allocUnsafeSlow(Q).buffer),I=0;for(let C=0;C{var KWA=j("node:assert"),{ResponseStatusCodeError:nj}=PA(),{chunksDecode:sj}=S8();async function zWA({callback:A,body:Q,contentType:B,statusCode:I,statusMessage:C,headers:E}){KWA(Q);let Y=[],J=0;try{for await(let Z of Q)if(Y.push(Z),J+=Z.length,J>131072){Y=[],J=0;break}}catch{Y=[],J=0}let F=`Response status code ${I}${C?`: ${C}`:""}`;if(I===204||!B||!J){queueMicrotask(()=>A(new nj(F,I,E)));return}let G=Error.stackTraceLimit;Error.stackTraceLimit=0;let D;try{if(aj(B))D=JSON.parse(sj(Y,J));else if(rj(B))D=sj(Y,J)}catch{}finally{Error.stackTraceLimit=G}queueMicrotask(()=>A(new nj(F,I,E,D)))}var aj=(A)=>{return A.length>15&&A[11]==="/"&&A[0]==="a"&&A[1]==="p"&&A[2]==="p"&&A[3]==="l"&&A[4]==="i"&&A[5]==="c"&&A[6]==="a"&&A[7]==="t"&&A[8]==="i"&&A[9]==="o"&&A[10]==="n"&&A[12]==="j"&&A[13]==="s"&&A[14]==="o"&&A[15]==="n"},rj=(A)=>{return A.length>4&&A[4]==="/"&&A[0]==="t"&&A[1]==="e"&&A[2]==="x"&&A[3]==="t"};tj.exports={getResolveErrorBodyCallback:zWA,isContentTypeApplicationJson:aj,isContentTypeText:rj}});var QR=z((XlA,x8)=>{var $WA=j("node:assert"),{Readable:HWA}=S8(),{InvalidArgumentError:QF,RequestAbortedError:ej}=PA(),hB=$A(),{getResolveErrorBodyCallback:MWA}=f8(),{AsyncResource:LWA}=j("node:async_hooks");class h8 extends LWA{constructor(A,Q){if(!A||typeof A!=="object")throw new QF("invalid opts");let{signal:B,method:I,opaque:C,body:E,onInfo:Y,responseHeaders:J,throwOnError:F,highWaterMark:G}=A;try{if(typeof Q!=="function")throw new QF("invalid callback");if(G&&(typeof G!=="number"||G<0))throw new QF("invalid highWaterMark");if(B&&typeof B.on!=="function"&&typeof B.addEventListener!=="function")throw new QF("signal must be an EventEmitter or EventTarget");if(I==="CONNECT")throw new QF("invalid method");if(Y&&typeof Y!=="function")throw new QF("invalid onInfo callback");super("UNDICI_REQUEST")}catch(D){if(hB.isStream(E))hB.destroy(E.on("error",hB.nop),D);throw D}if(this.method=I,this.responseHeaders=J||null,this.opaque=C||null,this.callback=Q,this.res=null,this.abort=null,this.body=E,this.trailers={},this.context=null,this.onInfo=Y||null,this.throwOnError=F,this.highWaterMark=G,this.signal=B,this.reason=null,this.removeAbortListener=null,hB.isStream(E))E.on("error",(D)=>{this.onError(D)});if(this.signal)if(this.signal.aborted)this.reason=this.signal.reason??new ej;else this.removeAbortListener=hB.addAbortListener(this.signal,()=>{if(this.reason=this.signal.reason??new ej,this.res)hB.destroy(this.res.on("error",hB.nop),this.reason);else if(this.abort)this.abort(this.reason);if(this.removeAbortListener)this.res?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null})}onConnect(A,Q){if(this.reason){A(this.reason);return}$WA(this.callback),this.abort=A,this.context=Q}onHeaders(A,Q,B,I){let{callback:C,opaque:E,abort:Y,context:J,responseHeaders:F,highWaterMark:G}=this,D=F==="raw"?hB.parseRawHeaders(Q):hB.parseHeaders(Q);if(A<200){if(this.onInfo)this.onInfo({statusCode:A,headers:D});return}let Z=F==="raw"?hB.parseHeaders(Q):D,U=Z["content-type"],W=Z["content-length"],w=new HWA({resume:B,abort:Y,contentType:U,contentLength:this.method!=="HEAD"&&W?Number(W):null,highWaterMark:G});if(this.removeAbortListener)w.on("close",this.removeAbortListener);if(this.callback=null,this.res=w,C!==null)if(this.throwOnError&&A>=400)this.runInAsyncScope(MWA,null,{callback:C,body:w,contentType:U,statusCode:A,statusMessage:I,headers:D});else this.runInAsyncScope(C,null,null,{statusCode:A,headers:D,trailers:this.trailers,opaque:E,body:w,context:J})}onData(A){return this.res.push(A)}onComplete(A){hB.parseHeaders(A,this.trailers),this.res.push(null)}onError(A){let{res:Q,callback:B,body:I,opaque:C}=this;if(B)this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(B,null,A,{opaque:C})});if(Q)this.res=null,queueMicrotask(()=>{hB.destroy(Q,A)});if(I)this.body=null,hB.destroy(I,A);if(this.removeAbortListener)Q?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null}}function AR(A,Q){if(Q===void 0)return new Promise((B,I)=>{AR.call(this,A,(C,E)=>{return C?I(C):B(E)})});try{this.dispatch(A,new h8(A,Q))}catch(B){if(typeof Q!=="function")throw B;let I=A?.opaque;queueMicrotask(()=>Q(B,{opaque:I}))}}x8.exports=AR;x8.exports.RequestHandler=h8});var kD=z((VlA,CR)=>{var{addAbortListener:NWA}=$A(),{RequestAbortedError:jWA}=PA(),BF=Symbol("kListener"),GC=Symbol("kSignal");function BR(A){if(A.abort)A.abort(A[GC]?.reason);else A.reason=A[GC]?.reason??new jWA;IR(A)}function RWA(A,Q){if(A.reason=null,A[GC]=null,A[BF]=null,!Q)return;if(Q.aborted){BR(A);return}A[GC]=Q,A[BF]=()=>{BR(A)},NWA(A[GC],A[BF])}function IR(A){if(!A[GC])return;if("removeEventListener"in A[GC])A[GC].removeEventListener("abort",A[BF]);else A[GC].removeListener("abort",A[BF]);A[GC]=null,A[BF]=null}CR.exports={addSignal:RWA,removeSignal:IR}});var GR=z((KlA,FR)=>{var qWA=j("node:assert"),{finished:PWA,PassThrough:OWA}=j("node:stream"),{InvalidArgumentError:IF,InvalidReturnValueError:kWA}=PA(),yI=$A(),{getResolveErrorBodyCallback:gWA}=f8(),{AsyncResource:TWA}=j("node:async_hooks"),{addSignal:_WA,removeSignal:ER}=kD();class YR extends TWA{constructor(A,Q,B){if(!A||typeof A!=="object")throw new IF("invalid opts");let{signal:I,method:C,opaque:E,body:Y,onInfo:J,responseHeaders:F,throwOnError:G}=A;try{if(typeof B!=="function")throw new IF("invalid callback");if(typeof Q!=="function")throw new IF("invalid factory");if(I&&typeof I.on!=="function"&&typeof I.addEventListener!=="function")throw new IF("signal must be an EventEmitter or EventTarget");if(C==="CONNECT")throw new IF("invalid method");if(J&&typeof J!=="function")throw new IF("invalid onInfo callback");super("UNDICI_STREAM")}catch(D){if(yI.isStream(Y))yI.destroy(Y.on("error",yI.nop),D);throw D}if(this.responseHeaders=F||null,this.opaque=E||null,this.factory=Q,this.callback=B,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=Y,this.onInfo=J||null,this.throwOnError=G||!1,yI.isStream(Y))Y.on("error",(D)=>{this.onError(D)});_WA(this,I)}onConnect(A,Q){if(this.reason){A(this.reason);return}qWA(this.callback),this.abort=A,this.context=Q}onHeaders(A,Q,B,I){let{factory:C,opaque:E,context:Y,callback:J,responseHeaders:F}=this,G=F==="raw"?yI.parseRawHeaders(Q):yI.parseHeaders(Q);if(A<200){if(this.onInfo)this.onInfo({statusCode:A,headers:G});return}this.factory=null;let D;if(this.throwOnError&&A>=400){let W=(F==="raw"?yI.parseHeaders(Q):G)["content-type"];D=new OWA,this.callback=null,this.runInAsyncScope(gWA,null,{callback:J,body:D,contentType:W,statusCode:A,statusMessage:I,headers:G})}else{if(C===null)return;if(D=this.runInAsyncScope(C,null,{statusCode:A,headers:G,opaque:E,context:Y}),!D||typeof D.write!=="function"||typeof D.end!=="function"||typeof D.on!=="function")throw new kWA("expected Writable");PWA(D,{readable:!1},(U)=>{let{callback:W,res:w,opaque:K,trailers:X,abort:V}=this;if(this.res=null,U||!w.readable)yI.destroy(w,U);if(this.callback=null,this.runInAsyncScope(W,null,U||null,{opaque:K,trailers:X}),U)V()})}return D.on("drain",B),this.res=D,(D.writableNeedDrain!==void 0?D.writableNeedDrain:D._writableState?.needDrain)!==!0}onData(A){let{res:Q}=this;return Q?Q.write(A):!0}onComplete(A){let{res:Q}=this;if(ER(this),!Q)return;this.trailers=yI.parseHeaders(A),Q.end()}onError(A){let{res:Q,callback:B,opaque:I,body:C}=this;if(ER(this),this.factory=null,Q)this.res=null,yI.destroy(Q,A);else if(B)this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(B,null,A,{opaque:I})});if(C)this.body=null,yI.destroy(C,A)}}function JR(A,Q,B){if(B===void 0)return new Promise((I,C)=>{JR.call(this,A,Q,(E,Y)=>{return E?C(E):I(Y)})});try{this.dispatch(A,new YR(A,Q,B))}catch(I){if(typeof B!=="function")throw I;let C=A?.opaque;queueMicrotask(()=>B(I,{opaque:C}))}}FR.exports=JR});var VR=z((zlA,XR)=>{var{Readable:ZR,Duplex:yWA,PassThrough:SWA}=j("node:stream"),{InvalidArgumentError:gD,InvalidReturnValueError:fWA,RequestAbortedError:v8}=PA(),YI=$A(),{AsyncResource:hWA}=j("node:async_hooks"),{addSignal:xWA,removeSignal:vWA}=kD(),DR=j("node:assert"),CF=Symbol("resume");class UR extends ZR{constructor(){super({autoDestroy:!0});this[CF]=null}_read(){let{[CF]:A}=this;if(A)this[CF]=null,A()}_destroy(A,Q){this._read(),Q(A)}}class WR extends ZR{constructor(A){super({autoDestroy:!0});this[CF]=A}_read(){this[CF]()}_destroy(A,Q){if(!A&&!this._readableState.endEmitted)A=new v8;Q(A)}}class wR extends hWA{constructor(A,Q){if(!A||typeof A!=="object")throw new gD("invalid opts");if(typeof Q!=="function")throw new gD("invalid handler");let{signal:B,method:I,opaque:C,onInfo:E,responseHeaders:Y}=A;if(B&&typeof B.on!=="function"&&typeof B.addEventListener!=="function")throw new gD("signal must be an EventEmitter or EventTarget");if(I==="CONNECT")throw new gD("invalid method");if(E&&typeof E!=="function")throw new gD("invalid onInfo callback");super("UNDICI_PIPELINE");this.opaque=C||null,this.responseHeaders=Y||null,this.handler=Q,this.abort=null,this.context=null,this.onInfo=E||null,this.req=new UR().on("error",YI.nop),this.ret=new yWA({readableObjectMode:A.objectMode,autoDestroy:!0,read:()=>{let{body:J}=this;if(J?.resume)J.resume()},write:(J,F,G)=>{let{req:D}=this;if(D.push(J,F)||D._readableState.destroyed)G();else D[CF]=G},destroy:(J,F)=>{let{body:G,req:D,res:Z,ret:U,abort:W}=this;if(!J&&!U._readableState.endEmitted)J=new v8;if(W&&J)W();YI.destroy(G,J),YI.destroy(D,J),YI.destroy(Z,J),vWA(this),F(J)}}).on("prefinish",()=>{let{req:J}=this;J.push(null)}),this.res=null,xWA(this,B)}onConnect(A,Q){let{ret:B,res:I}=this;if(this.reason){A(this.reason);return}DR(!I,"pipeline cannot be retried"),DR(!B.destroyed),this.abort=A,this.context=Q}onHeaders(A,Q,B){let{opaque:I,handler:C,context:E}=this;if(A<200){if(this.onInfo){let J=this.responseHeaders==="raw"?YI.parseRawHeaders(Q):YI.parseHeaders(Q);this.onInfo({statusCode:A,headers:J})}return}this.res=new WR(B);let Y;try{this.handler=null;let J=this.responseHeaders==="raw"?YI.parseRawHeaders(Q):YI.parseHeaders(Q);Y=this.runInAsyncScope(C,null,{statusCode:A,headers:J,opaque:I,body:this.res,context:E})}catch(J){throw this.res.on("error",YI.nop),J}if(!Y||typeof Y.on!=="function")throw new fWA("expected Readable");Y.on("data",(J)=>{let{ret:F,body:G}=this;if(!F.push(J)&&G.pause)G.pause()}).on("error",(J)=>{let{ret:F}=this;YI.destroy(F,J)}).on("end",()=>{let{ret:J}=this;J.push(null)}).on("close",()=>{let{ret:J}=this;if(!J._readableState.ended)YI.destroy(J,new v8)}),this.body=Y}onData(A){let{res:Q}=this;return Q.push(A)}onComplete(A){let{res:Q}=this;Q.push(null)}onError(A){let{ret:Q}=this;this.handler=null,YI.destroy(Q,A)}}function bWA(A,Q){try{let B=new wR(A,Q);return this.dispatch({...A,body:B.req},B),B.ret}catch(B){return new SWA().destroy(B)}}XR.exports=bWA});var NR=z(($lA,LR)=>{var{InvalidArgumentError:b8,SocketError:mWA}=PA(),{AsyncResource:dWA}=j("node:async_hooks"),KR=$A(),{addSignal:cWA,removeSignal:zR}=kD(),$R=j("node:assert");class HR extends dWA{constructor(A,Q){if(!A||typeof A!=="object")throw new b8("invalid opts");if(typeof Q!=="function")throw new b8("invalid callback");let{signal:B,opaque:I,responseHeaders:C}=A;if(B&&typeof B.on!=="function"&&typeof B.addEventListener!=="function")throw new b8("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE");this.responseHeaders=C||null,this.opaque=I||null,this.callback=Q,this.abort=null,this.context=null,cWA(this,B)}onConnect(A,Q){if(this.reason){A(this.reason);return}$R(this.callback),this.abort=A,this.context=null}onHeaders(){throw new mWA("bad upgrade",null)}onUpgrade(A,Q,B){$R(A===101);let{callback:I,opaque:C,context:E}=this;zR(this),this.callback=null;let Y=this.responseHeaders==="raw"?KR.parseRawHeaders(Q):KR.parseHeaders(Q);this.runInAsyncScope(I,null,null,{headers:Y,socket:B,opaque:C,context:E})}onError(A){let{callback:Q,opaque:B}=this;if(zR(this),Q)this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(Q,null,A,{opaque:B})})}}function MR(A,Q){if(Q===void 0)return new Promise((B,I)=>{MR.call(this,A,(C,E)=>{return C?I(C):B(E)})});try{let B=new HR(A,Q);this.dispatch({...A,method:A.method||"GET",upgrade:A.protocol||"Websocket"},B)}catch(B){if(typeof Q!=="function")throw B;let I=A?.opaque;queueMicrotask(()=>Q(B,{opaque:I}))}}LR.exports=MR});var kR=z((HlA,OR)=>{var uWA=j("node:assert"),{AsyncResource:lWA}=j("node:async_hooks"),{InvalidArgumentError:m8,SocketError:pWA}=PA(),jR=$A(),{addSignal:iWA,removeSignal:RR}=kD();class qR extends lWA{constructor(A,Q){if(!A||typeof A!=="object")throw new m8("invalid opts");if(typeof Q!=="function")throw new m8("invalid callback");let{signal:B,opaque:I,responseHeaders:C}=A;if(B&&typeof B.on!=="function"&&typeof B.addEventListener!=="function")throw new m8("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT");this.opaque=I||null,this.responseHeaders=C||null,this.callback=Q,this.abort=null,iWA(this,B)}onConnect(A,Q){if(this.reason){A(this.reason);return}uWA(this.callback),this.abort=A,this.context=Q}onHeaders(){throw new pWA("bad connect",null)}onUpgrade(A,Q,B){let{callback:I,opaque:C,context:E}=this;RR(this),this.callback=null;let Y=Q;if(Y!=null)Y=this.responseHeaders==="raw"?jR.parseRawHeaders(Q):jR.parseHeaders(Q);this.runInAsyncScope(I,null,null,{statusCode:A,headers:Y,socket:B,opaque:C,context:E})}onError(A){let{callback:Q,opaque:B}=this;if(RR(this),Q)this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(Q,null,A,{opaque:B})})}}function PR(A,Q){if(Q===void 0)return new Promise((B,I)=>{PR.call(this,A,(C,E)=>{return C?I(C):B(E)})});try{let B=new qR(A,Q);this.dispatch({...A,method:"CONNECT"},B)}catch(B){if(typeof Q!=="function")throw B;let I=A?.opaque;queueMicrotask(()=>Q(B,{opaque:I}))}}OR.exports=PR});var gR=z((oWA,EF)=>{oWA.request=QR();oWA.stream=GR();oWA.pipeline=VR();oWA.upgrade=NR();oWA.connect=kR()});var c8=z((MlA,_R)=>{var{UndiciError:eWA}=PA(),TR=Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED");class d8 extends eWA{constructor(A){super(A);Error.captureStackTrace(this,d8),this.name="MockNotMatchedError",this.message=A||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}static[Symbol.hasInstance](A){return A&&A[TR]===!0}[TR]=!0}_R.exports={MockNotMatchedError:d8}});var YF=z((LlA,yR)=>{yR.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var TD=z((NlA,lR)=>{var{MockNotMatchedError:e0}=c8(),{kDispatches:tW,kMockAgent:AwA,kOriginalDispatch:QwA,kOrigin:BwA,kGetNetConnect:IwA}=YF(),{buildURL:CwA}=$A(),{STATUS_CODES:EwA}=j("node:http"),{types:{isPromise:YwA}}=j("node:util");function pC(A,Q){if(typeof A==="string")return A===Q;if(A instanceof RegExp)return A.test(Q);if(typeof A==="function")return A(Q)===!0;return!1}function fR(A){return Object.fromEntries(Object.entries(A).map(([Q,B])=>{return[Q.toLocaleLowerCase(),B]}))}function hR(A,Q){if(Array.isArray(A)){for(let B=0;B"u")return!0;if(typeof Q!=="object"||typeof A.headers!=="object")return!1;for(let[B,I]of Object.entries(A.headers)){let C=hR(Q,B);if(!pC(I,C))return!1}return!0}function SR(A){if(typeof A!=="string")return A;let Q=A.split("?");if(Q.length!==2)return A;let B=new URLSearchParams(Q.pop());return B.sort(),[...Q,B.toString()].join("?")}function JwA(A,{path:Q,method:B,body:I,headers:C}){let E=pC(A.path,Q),Y=pC(A.method,B),J=typeof A.body<"u"?pC(A.body,I):!0,F=xR(A,C);return E&&Y&&J&&F}function vR(A){if(Buffer.isBuffer(A))return A;else if(A instanceof Uint8Array)return A;else if(A instanceof ArrayBuffer)return A;else if(typeof A==="object")return JSON.stringify(A);else return A.toString()}function bR(A,Q){let B=Q.query?CwA(Q.path,Q.query):Q.path,I=typeof B==="string"?SR(B):B,C=A.filter(({consumed:E})=>!E).filter(({path:E})=>pC(SR(E),I));if(C.length===0)throw new e0(`Mock dispatch not matched for path '${I}'`);if(C=C.filter(({method:E})=>pC(E,Q.method)),C.length===0)throw new e0(`Mock dispatch not matched for method '${Q.method}' on path '${I}'`);if(C=C.filter(({body:E})=>typeof E<"u"?pC(E,Q.body):!0),C.length===0)throw new e0(`Mock dispatch not matched for body '${Q.body}' on path '${I}'`);if(C=C.filter((E)=>xR(E,Q.headers)),C.length===0){let E=typeof Q.headers==="object"?JSON.stringify(Q.headers):Q.headers;throw new e0(`Mock dispatch not matched for headers '${E}' on path '${I}'`)}return C[0]}function FwA(A,Q,B){let I={timesInvoked:0,times:1,persist:!1,consumed:!1},C=typeof B==="function"?{callback:B}:{...B},E={...I,...Q,pending:!0,data:{error:null,...C}};return A.push(E),E}function u8(A,Q){let B=A.findIndex((I)=>{if(!I.consumed)return!1;return JwA(I,Q)});if(B!==-1)A.splice(B,1)}function mR(A){let{path:Q,method:B,body:I,headers:C,query:E}=A;return{path:Q,method:B,body:I,headers:C,query:E}}function l8(A){let Q=Object.keys(A),B=[];for(let I=0;I=U,I.pending=Z0)setTimeout(()=>{W(this[tW])},G);else W(this[tW]);function W(K,X=E){let V=Array.isArray(A.headers)?p8(A.headers):A.headers,M=typeof X==="function"?X({...A,headers:V}):X;if(YwA(M)){M.then((P)=>W(K,P));return}let N=vR(M),L=l8(Y),R=l8(J);Q.onConnect?.((P)=>Q.onError(P),null),Q.onHeaders?.(C,L,w,dR(C)),Q.onData?.(Buffer.from(N)),Q.onComplete?.(R),u8(K,B)}function w(){}return!0}function DwA(){let A=this[AwA],Q=this[BwA],B=this[QwA];return function(C,E){if(A.isMockActive)try{cR.call(this,C,E)}catch(Y){if(Y instanceof e0){let J=A[IwA]();if(J===!1)throw new e0(`${Y.message}: subsequent request to origin ${Q} was not allowed (net.connect disabled)`);if(uR(J,Q))B.call(this,C,E);else throw new e0(`${Y.message}: subsequent request to origin ${Q} was not allowed (net.connect is not enabled for this origin)`)}else throw Y}else B.call(this,C,E)}}function uR(A,Q){let B=new URL(Q);if(A===!0)return!0;else if(Array.isArray(A)&&A.some((I)=>pC(I,B.host)))return!0;return!1}function ZwA(A){if(A){let{agent:Q,...B}=A;return B}}lR.exports={getResponseData:vR,getMockDispatch:bR,addMockDispatch:FwA,deleteMockDispatch:u8,buildKey:mR,generateKeyValues:l8,matchValue:pC,getResponse:GwA,getStatusText:dR,mockDispatch:cR,buildMockDispatch:DwA,checkNetConnect:uR,buildMockOptions:ZwA,getHeaderByName:hR,buildHeadersFromArray:p8}});var r8=z((XwA,a8)=>{var{getResponseData:UwA,buildKey:WwA,addMockDispatch:i8}=TD(),{kDispatches:eW,kDispatchKey:Aw,kDefaultHeaders:o8,kDefaultTrailers:n8,kContentLength:s8,kMockDispatch:Qw}=YF(),{InvalidArgumentError:DC}=PA(),{buildURL:wwA}=$A();class _D{constructor(A){this[Qw]=A}delay(A){if(typeof A!=="number"||!Number.isInteger(A)||A<=0)throw new DC("waitInMs must be a valid integer > 0");return this[Qw].delay=A,this}persist(){return this[Qw].persist=!0,this}times(A){if(typeof A!=="number"||!Number.isInteger(A)||A<=0)throw new DC("repeatTimes must be a valid integer > 0");return this[Qw].times=A,this}}class pR{constructor(A,Q){if(typeof A!=="object")throw new DC("opts must be an object");if(typeof A.path>"u")throw new DC("opts.path must be defined");if(typeof A.method>"u")A.method="GET";if(typeof A.path==="string")if(A.query)A.path=wwA(A.path,A.query);else{let B=new URL(A.path,"data://");A.path=B.pathname+B.search}if(typeof A.method==="string")A.method=A.method.toUpperCase();this[Aw]=WwA(A),this[eW]=Q,this[o8]={},this[n8]={},this[s8]=!1}createMockScopeDispatchData({statusCode:A,data:Q,responseOptions:B}){let I=UwA(Q),C=this[s8]?{"content-length":I.length}:{},E={...this[o8],...C,...B.headers},Y={...this[n8],...B.trailers};return{statusCode:A,data:Q,headers:E,trailers:Y}}validateReplyParameters(A){if(typeof A.statusCode>"u")throw new DC("statusCode must be defined");if(typeof A.responseOptions!=="object"||A.responseOptions===null)throw new DC("responseOptions must be an object")}reply(A){if(typeof A==="function"){let C=(Y)=>{let J=A(Y);if(typeof J!=="object"||J===null)throw new DC("reply options callback must return an object");let F={data:"",responseOptions:{},...J};return this.validateReplyParameters(F),{...this.createMockScopeDispatchData(F)}},E=i8(this[eW],this[Aw],C);return new _D(E)}let Q={statusCode:A,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(Q);let B=this.createMockScopeDispatchData(Q),I=i8(this[eW],this[Aw],B);return new _D(I)}replyWithError(A){if(typeof A>"u")throw new DC("error must be defined");let Q=i8(this[eW],this[Aw],{error:A});return new _D(Q)}defaultReplyHeaders(A){if(typeof A>"u")throw new DC("headers must be defined");return this[o8]=A,this}defaultReplyTrailers(A){if(typeof A>"u")throw new DC("trailers must be defined");return this[n8]=A,this}replyContentLength(){return this[s8]=!0,this}}XwA.MockInterceptor=pR;XwA.MockScope=_D});var e8=z((jlA,eR)=>{var{promisify:zwA}=j("node:util"),$wA=aJ(),{buildMockDispatch:HwA}=TD(),{kDispatches:iR,kMockAgent:oR,kClose:nR,kOriginalClose:sR,kOrigin:aR,kOriginalDispatch:MwA,kConnected:t8}=YF(),{MockInterceptor:LwA}=r8(),rR=AQ(),{InvalidArgumentError:NwA}=PA();class tR extends $wA{constructor(A,Q){super(A,Q);if(!Q||!Q.agent||typeof Q.agent.dispatch!=="function")throw new NwA("Argument opts.agent must implement Agent");this[oR]=Q.agent,this[aR]=A,this[iR]=[],this[t8]=1,this[MwA]=this.dispatch,this[sR]=this.close.bind(this),this.dispatch=HwA.call(this),this.close=this[nR]}get[rR.kConnected](){return this[t8]}intercept(A){return new LwA(A,this[iR])}async[nR](){await zwA(this[sR])(),this[t8]=0,this[oR][rR.kClients].delete(this[aR])}}eR.exports=tR});var Q4=z((RlA,Jq)=>{var{promisify:jwA}=j("node:util"),RwA=rJ(),{buildMockDispatch:qwA}=TD(),{kDispatches:Aq,kMockAgent:Qq,kClose:Bq,kOriginalClose:Iq,kOrigin:Cq,kOriginalDispatch:PwA,kConnected:A4}=YF(),{MockInterceptor:OwA}=r8(),Eq=AQ(),{InvalidArgumentError:kwA}=PA();class Yq extends RwA{constructor(A,Q){super(A,Q);if(!Q||!Q.agent||typeof Q.agent.dispatch!=="function")throw new kwA("Argument opts.agent must implement Agent");this[Qq]=Q.agent,this[Cq]=A,this[Aq]=[],this[A4]=1,this[PwA]=this.dispatch,this[Iq]=this.close.bind(this),this.dispatch=qwA.call(this),this.close=this[Bq]}get[Eq.kConnected](){return this[A4]}intercept(A){return new OwA(A,this[Aq])}async[Bq](){await jwA(this[Iq])(),this[A4]=0,this[Qq][Eq.kClients].delete(this[Cq])}}Jq.exports=Yq});var Gq=z((qlA,Fq)=>{var gwA={pronoun:"it",is:"is",was:"was",this:"this"},TwA={pronoun:"they",is:"are",was:"were",this:"these"};Fq.exports=class{constructor(Q,B){this.singular=Q,this.plural=B}pluralize(Q){let B=Q===1,I=B?gwA:TwA,C=B?this.singular:this.plural;return{...I,count:Q,noun:C}}}});var Zq=z((PlA,Dq)=>{var{Transform:_wA}=j("node:stream"),{Console:ywA}=j("node:console"),SwA=process.versions.icu?"✅":"Y ",fwA=process.versions.icu?"❌":"N ";Dq.exports=class{constructor({disableColors:Q}={}){this.transform=new _wA({transform(B,I,C){C(null,B)}}),this.logger=new ywA({stdout:this.transform,inspectOptions:{colors:!Q&&!process.env.CI}})}format(Q){let B=Q.map(({method:I,path:C,data:{statusCode:E},persist:Y,times:J,timesInvoked:F,origin:G})=>({Method:I,Origin:G,Path:C,"Status code":E,Persistent:Y?SwA:fwA,Invocations:F,Remaining:Y?1/0:J-F}));return this.logger.table(B),this.transform.read().toString()}}});var Vq=z((OlA,Xq)=>{var{kClients:AY}=AQ(),hwA=tJ(),{kAgent:B4,kMockAgentSet:Bw,kMockAgentGet:Uq,kDispatches:I4,kIsMockActive:Iw,kNetConnect:QY,kGetNetConnect:xwA,kOptions:Cw,kFactory:Ew}=YF(),vwA=e8(),bwA=Q4(),{matchValue:mwA,buildMockOptions:dwA}=TD(),{InvalidArgumentError:Wq,UndiciError:cwA}=PA(),uwA=QD(),lwA=Gq(),pwA=Zq();class wq extends uwA{constructor(A){super(A);if(this[QY]=!0,this[Iw]=!0,A?.agent&&typeof A.agent.dispatch!=="function")throw new Wq("Argument opts.agent must implement Agent");let Q=A?.agent?A.agent:new hwA(A);this[B4]=Q,this[AY]=Q[AY],this[Cw]=dwA(A)}get(A){let Q=this[Uq](A);if(!Q)Q=this[Ew](A),this[Bw](A,Q);return Q}dispatch(A,Q){return this.get(A.origin),this[B4].dispatch(A,Q)}async close(){await this[B4].close(),this[AY].clear()}deactivate(){this[Iw]=!1}activate(){this[Iw]=!0}enableNetConnect(A){if(typeof A==="string"||typeof A==="function"||A instanceof RegExp)if(Array.isArray(this[QY]))this[QY].push(A);else this[QY]=[A];else if(typeof A>"u")this[QY]=!0;else throw new Wq("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[QY]=!1}get isMockActive(){return this[Iw]}[Bw](A,Q){this[AY].set(A,Q)}[Ew](A){let Q=Object.assign({agent:this},this[Cw]);return this[Cw]&&this[Cw].connections===1?new vwA(A,Q):new bwA(A,Q)}[Uq](A){let Q=this[AY].get(A);if(Q)return Q;if(typeof A!=="string"){let B=this[Ew]("http://localhost:9999");return this[Bw](A,B),B}for(let[B,I]of Array.from(this[AY]))if(I&&typeof B!=="string"&&mwA(B,A)){let C=this[Ew](A);return this[Bw](A,C),C[I4]=I[I4],C}}[xwA](){return this[QY]}pendingInterceptors(){let A=this[AY];return Array.from(A.entries()).flatMap(([Q,B])=>B[I4].map((I)=>({...I,origin:Q}))).filter(({pending:Q})=>Q)}assertNoPendingInterceptors({pendingInterceptorsFormatter:A=new pwA}={}){let Q=this.pendingInterceptors();if(Q.length===0)return;let B=new lwA("interceptor","interceptors").pluralize(Q.length);throw new cwA(` ${B.count} ${B.noun} ${B.is} pending: ${A.format(Q)} -`.trim())}}HO.exports=$O});var UU=X((C9Q,RO)=>{var LO=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:W7A}=UA(),U7A=SJ();if(jO()===void 0)NO(new U7A);function NO(A){if(!A||typeof A.dispatch!=="function")throw new W7A("Argument agent must implement Agent");Object.defineProperty(globalThis,LO,{value:A,writable:!0,enumerable:!1,configurable:!1})}function jO(){return globalThis[LO]}RO.exports={setGlobalDispatcher:NO,getGlobalDispatcher:jO}});var XU=X((E9Q,qO)=>{qO.exports=class{#A;constructor(Q){if(typeof Q!=="object"||Q===null)throw TypeError("handler must be an object");this.#A=Q}onConnect(...Q){return this.#A.onConnect?.(...Q)}onError(...Q){return this.#A.onError?.(...Q)}onUpgrade(...Q){return this.#A.onUpgrade?.(...Q)}onResponseStarted(...Q){return this.#A.onResponseStarted?.(...Q)}onHeaders(...Q){return this.#A.onHeaders?.(...Q)}onData(...Q){return this.#A.onData?.(...Q)}onComplete(...Q){return this.#A.onComplete?.(...Q)}onBodySent(...Q){return this.#A.onBodySent?.(...Q)}}});var TO=X((Y9Q,OO)=>{var X7A=o9();OO.exports=(A)=>{let Q=A?.maxRedirections;return(B)=>{return function(C,E){let{maxRedirections:Y=Q,...J}=C;if(!Y)return B(C,E);let F=new X7A(B,Y,C,E);return B(J,F)}}}});var kO=X((J9Q,PO)=>{var w7A=CU();PO.exports=(A)=>{return(Q)=>{return function(I,C){return Q(I,new w7A({...I,retryOptions:{...A,...I.retryOptions}},{handler:C,dispatch:Q}))}}}});var yO=X((F9Q,gO)=>{var K7A=YA(),{InvalidArgumentError:V7A,RequestAbortedError:z7A}=UA(),$7A=XU();class SO extends $7A{#A=1048576;#Q=null;#C=!1;#B=!1;#I=0;#E=null;#Y=null;constructor({maxSize:A},Q){super(Q);if(A!=null&&(!Number.isFinite(A)||A<1))throw new V7A("maxSize must be a number greater than 0");this.#A=A??this.#A,this.#Y=Q}onConnect(A){this.#Q=A,this.#Y.onConnect(this.#J.bind(this))}#J(A){this.#B=!0,this.#E=A}onHeaders(A,Q,B,I){let E=K7A.parseHeaders(Q)["content-length"];if(E!=null&&E>this.#A)throw new z7A(`Response size (${E}) larger than maxSize (${this.#A})`);if(this.#B)return!0;return this.#Y.onHeaders(A,Q,B,I)}onError(A){if(this.#C)return;A=this.#E??A,this.#Y.onError(A)}onData(A){if(this.#I=this.#I+A.length,this.#I>=this.#A)if(this.#C=!0,this.#B)this.#Y.onError(this.#E);else this.#Y.onComplete([]);return!0}onComplete(A){if(this.#C)return;if(this.#B){this.#Y.onError(this.reason);return}this.#Y.onComplete(A)}}function H7A({maxSize:A}={maxSize:1048576}){return(Q)=>{return function(I,C){let{dumpMaxSize:E=A}=I,Y=new SO({maxSize:E},C);return Q(I,Y)}}}gO.exports=H7A});var xO=X((G9Q,vO)=>{var{isIP:M7A}=H("node:net"),{lookup:L7A}=H("node:dns"),N7A=XU(),{InvalidArgumentError:mJ,InformationalError:j7A}=UA(),hO=Math.pow(2,31)-1;class fO{#A=0;#Q=0;#C=new Map;dualStack=!0;affinity=null;lookup=null;pick=null;constructor(A){this.#A=A.maxTTL,this.#Q=A.maxItems,this.dualStack=A.dualStack,this.affinity=A.affinity,this.lookup=A.lookup??this.#B,this.pick=A.pick??this.#I}get full(){return this.#C.size===this.#Q}runLookup(A,Q,B){let I=this.#C.get(A.hostname);if(I==null&&this.full){B(null,A.origin);return}let C={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...Q.dns,maxTTL:this.#A,maxItems:this.#Q};if(I==null)this.lookup(A,C,(E,Y)=>{if(E||Y==null||Y.length===0){B(E??new j7A("No DNS entries found"));return}this.setRecords(A,Y);let J=this.#C.get(A.hostname),F=this.pick(A,J,C.affinity),G;if(typeof F.port==="number")G=`:${F.port}`;else if(A.port!=="")G=`:${A.port}`;else G="";B(null,`${A.protocol}//${F.family===6?`[${F.address}]`:F.address}${G}`)});else{let E=this.pick(A,I,C.affinity);if(E==null){this.#C.delete(A.hostname),this.runLookup(A,Q,B);return}let Y;if(typeof E.port==="number")Y=`:${E.port}`;else if(A.port!=="")Y=`:${A.port}`;else Y="";B(null,`${A.protocol}//${E.family===6?`[${E.address}]`:E.address}${Y}`)}}#B(A,Q,B){L7A(A.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:"ipv4first"},(I,C)=>{if(I)return B(I);let E=new Map;for(let Y of C)E.set(`${Y.address}:${Y.family}`,Y);B(null,E.values())})}#I(A,Q,B){let I=null,{records:C,offset:E}=Q,Y;if(this.dualStack){if(B==null)if(E==null||E===hO)Q.offset=0,B=4;else Q.offset++,B=(Q.offset&1)===1?6:4;if(C[B]!=null&&C[B].ips.length>0)Y=C[B];else Y=C[B===4?6:4]}else Y=C[B];if(Y==null||Y.ips.length===0)return I;if(Y.offset==null||Y.offset===hO)Y.offset=0;else Y.offset++;let J=Y.offset%Y.ips.length;if(I=Y.ips[J]??null,I==null)return I;if(Date.now()-I.timestamp>I.ttl)return Y.ips.splice(J,1),this.pick(A,Q,B);return I}setRecords(A,Q){let B=Date.now(),I={records:{4:null,6:null}};for(let C of Q){if(C.timestamp=B,typeof C.ttl==="number")C.ttl=Math.min(C.ttl,this.#A);else C.ttl=this.#A;let E=I.records[C.family]??{ips:[]};E.ips.push(C),I.records[C.family]=E}this.#C.set(A.hostname,I)}getHandler(A,Q){return new _O(this,A,Q)}}class _O extends N7A{#A=null;#Q=null;#C=null;#B=null;#I=null;constructor(A,{origin:Q,handler:B,dispatch:I},C){super(B);this.#I=Q,this.#B=B,this.#Q={...C},this.#A=A,this.#C=I}onError(A){switch(A.code){case"ETIMEDOUT":case"ECONNREFUSED":{if(this.#A.dualStack){this.#A.runLookup(this.#I,this.#Q,(Q,B)=>{if(Q)return this.#B.onError(Q);let I={...this.#Q,origin:B};this.#C(I,this)});return}this.#B.onError(A);return}case"ENOTFOUND":this.#A.deleteRecord(this.#I);default:this.#B.onError(A);break}}}vO.exports=(A)=>{if(A?.maxTTL!=null&&(typeof A?.maxTTL!=="number"||A?.maxTTL<0))throw new mJ("Invalid maxTTL. Must be a positive number");if(A?.maxItems!=null&&(typeof A?.maxItems!=="number"||A?.maxItems<1))throw new mJ("Invalid maxItems. Must be a positive number and greater than zero");if(A?.affinity!=null&&A?.affinity!==4&&A?.affinity!==6)throw new mJ("Invalid affinity. Must be either 4 or 6");if(A?.dualStack!=null&&typeof A?.dualStack!=="boolean")throw new mJ("Invalid dualStack. Must be a boolean");if(A?.lookup!=null&&typeof A?.lookup!=="function")throw new mJ("Invalid lookup. Must be a function");if(A?.pick!=null&&typeof A?.pick!=="function")throw new mJ("Invalid pick. Must be a function");let Q=A?.dualStack??!0,B;if(Q)B=A?.affinity??null;else B=A?.affinity??4;let I={maxTTL:A?.maxTTL??1e4,lookup:A?.lookup??null,pick:A?.pick??null,dualStack:Q,affinity:B,maxItems:A?.maxItems??1/0},C=new fO(I);return(E)=>{return function(J,F){let G=J.origin.constructor===URL?J.origin:new URL(J.origin);if(M7A(G.hostname)!==0)return E(J,F);return C.runLookup(G,J,(D,Z)=>{if(D)return F.onError(D);let W=null;W={...J,servername:G.hostname,origin:Z,headers:{host:G.hostname,...J.headers}},E(W,C.getHandler({origin:G,dispatch:E,handler:F},J))}),!0}}}});var o0=X((D9Q,pO)=>{var{kConstruct:R7A}=yA(),{kEnumerableProperty:dJ}=YA(),{iteratorMixin:q7A,isValidHeaderName:WD,isValidHeaderValue:mO}=jB(),{webidl:WA}=LQ(),L5=H("node:assert"),wU=H("node:util"),IQ=Symbol("headers map"),OB=Symbol("headers map sorted");function bO(A){return A===10||A===13||A===9||A===32}function dO(A){let Q=0,B=A.length;while(B>Q&&bO(A.charCodeAt(B-1)))--B;while(B>Q&&bO(A.charCodeAt(Q)))++Q;return Q===0&&B===A.length?A:A.substring(Q,B)}function cO(A,Q){if(Array.isArray(Q))for(let B=0;B>","record"]})}function N5(A,Q,B){if(B=dO(B),!WD(Q))throw WA.errors.invalidArgument({prefix:"Headers.append",value:Q,type:"header name"});else if(!mO(B))throw WA.errors.invalidArgument({prefix:"Headers.append",value:B,type:"header value"});if(lO(A)==="immutable")throw TypeError("immutable");return j5(A).append(Q,B,!1)}function uO(A,Q){return A[0]>1),Q[F][0]<=G[0])J=F+1;else Y=F;if(C!==F){E=C;while(E>J)Q[E]=Q[--E];Q[J]=G}}if(!B.next().done)throw TypeError("Unreachable");return Q}else{let B=0;for(let{0:I,1:{value:C}}of this[IQ])Q[B++]=[I,C],L5(C!==null);return Q.sort(uO)}}}class hQ{#A;#Q;constructor(A=void 0){if(WA.util.markAsUncloneable(this),A===R7A)return;if(this.#Q=new KU,this.#A="none",A!==void 0)A=WA.converters.HeadersInit(A,"Headers contructor","init"),cO(this,A)}append(A,Q){WA.brandCheck(this,hQ),WA.argumentLengthCheck(arguments,2,"Headers.append");let B="Headers.append";return A=WA.converters.ByteString(A,B,"name"),Q=WA.converters.ByteString(Q,B,"value"),N5(this,A,Q)}delete(A){WA.brandCheck(this,hQ),WA.argumentLengthCheck(arguments,1,"Headers.delete");let Q="Headers.delete";if(A=WA.converters.ByteString(A,Q,"name"),!WD(A))throw WA.errors.invalidArgument({prefix:"Headers.delete",value:A,type:"header name"});if(this.#A==="immutable")throw TypeError("immutable");if(!this.#Q.contains(A,!1))return;this.#Q.delete(A,!1)}get(A){WA.brandCheck(this,hQ),WA.argumentLengthCheck(arguments,1,"Headers.get");let Q="Headers.get";if(A=WA.converters.ByteString(A,Q,"name"),!WD(A))throw WA.errors.invalidArgument({prefix:Q,value:A,type:"header name"});return this.#Q.get(A,!1)}has(A){WA.brandCheck(this,hQ),WA.argumentLengthCheck(arguments,1,"Headers.has");let Q="Headers.has";if(A=WA.converters.ByteString(A,Q,"name"),!WD(A))throw WA.errors.invalidArgument({prefix:Q,value:A,type:"header name"});return this.#Q.contains(A,!1)}set(A,Q){WA.brandCheck(this,hQ),WA.argumentLengthCheck(arguments,2,"Headers.set");let B="Headers.set";if(A=WA.converters.ByteString(A,B,"name"),Q=WA.converters.ByteString(Q,B,"value"),Q=dO(Q),!WD(A))throw WA.errors.invalidArgument({prefix:B,value:A,type:"header name"});else if(!mO(Q))throw WA.errors.invalidArgument({prefix:B,value:Q,type:"header value"});if(this.#A==="immutable")throw TypeError("immutable");this.#Q.set(A,Q,!1)}getSetCookie(){WA.brandCheck(this,hQ);let A=this.#Q.cookies;if(A)return[...A];return[]}get[OB](){if(this.#Q[OB])return this.#Q[OB];let A=[],Q=this.#Q.toSortedArray(),B=this.#Q.cookies;if(B===null||B.length===1)return this.#Q[OB]=Q;for(let I=0;I>"](A,Q,B,I.bind(A));return WA.converters["record"](A,Q,B)}throw WA.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};pO.exports={fill:cO,compareHeaderName:uO,Headers:hQ,HeadersList:KU,getHeadersGuard:lO,setHeadersGuard:O7A,setHeadersList:T7A,getHeadersList:j5}});var XD=X((Z9Q,IT)=>{var{Headers:rO,HeadersList:iO,fill:P7A,getHeadersGuard:k7A,setHeadersGuard:tO,setHeadersList:eO}=o0(),{extractBody:nO,cloneBody:S7A,mixinBody:g7A,hasFinalizationRegistry:AT,streamRegistry:QT,bodyUnusable:y7A}=LJ(),R5=YA(),oO=H("node:util"),{kEnumerableProperty:TB}=R5,{isValidReasonPhrase:h7A,isCancelled:f7A,isAborted:_7A,isBlobLike:v7A,serializeJavascriptValueToJSONString:x7A,isErrorLike:b7A,isomorphicEncode:m7A,environmentSettingsObject:d7A}=jB(),{redirectStatusSet:c7A,nullBodyStatus:u7A}=vG(),{kState:hA,kHeaders:_C}=zE(),{webidl:IA}=LQ(),{FormData:l7A}=cG(),{URLSerializer:aO}=JB(),{kConstruct:zU}=yA(),q5=H("node:assert"),{types:p7A}=H("node:util"),i7A=new TextEncoder("utf-8");class fQ{static error(){return UD($U(),"immutable")}static json(A,Q={}){if(IA.argumentLengthCheck(arguments,1,"Response.json"),Q!==null)Q=IA.converters.ResponseInit(Q);let B=i7A.encode(x7A(A)),I=nO(B),C=UD(cJ({}),"response");return sO(C,Q,{body:I[0],type:"application/json"}),C}static redirect(A,Q=302){IA.argumentLengthCheck(arguments,1,"Response.redirect"),A=IA.converters.USVString(A),Q=IA.converters["unsigned short"](Q);let B;try{B=new URL(A,d7A.settingsObject.baseUrl)}catch(E){throw TypeError(`Failed to parse URL from ${A}`,{cause:E})}if(!c7A.has(Q))throw RangeError(`Invalid status code ${Q}`);let I=UD(cJ({}),"immutable");I[hA].status=Q;let C=m7A(aO(B));return I[hA].headersList.append("location",C,!0),I}constructor(A=null,Q={}){if(IA.util.markAsUncloneable(this),A===zU)return;if(A!==null)A=IA.converters.BodyInit(A);Q=IA.converters.ResponseInit(Q),this[hA]=cJ({}),this[_C]=new rO(zU),tO(this[_C],"response"),eO(this[_C],this[hA].headersList);let B=null;if(A!=null){let[I,C]=nO(A);B={body:I,type:C}}sO(this,Q,B)}get type(){return IA.brandCheck(this,fQ),this[hA].type}get url(){IA.brandCheck(this,fQ);let A=this[hA].urlList,Q=A[A.length-1]??null;if(Q===null)return"";return aO(Q,!0)}get redirected(){return IA.brandCheck(this,fQ),this[hA].urlList.length>1}get status(){return IA.brandCheck(this,fQ),this[hA].status}get ok(){return IA.brandCheck(this,fQ),this[hA].status>=200&&this[hA].status<=299}get statusText(){return IA.brandCheck(this,fQ),this[hA].statusText}get headers(){return IA.brandCheck(this,fQ),this[_C]}get body(){return IA.brandCheck(this,fQ),this[hA].body?this[hA].body.stream:null}get bodyUsed(){return IA.brandCheck(this,fQ),!!this[hA].body&&R5.isDisturbed(this[hA].body.stream)}clone(){if(IA.brandCheck(this,fQ),y7A(this))throw IA.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let A=O5(this[hA]);if(AT&&this[hA].body?.stream)QT.register(this,new WeakRef(this[hA].body.stream));return UD(A,k7A(this[_C]))}[oO.inspect.custom](A,Q){if(Q.depth===null)Q.depth=2;Q.colors??=!0;let B={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${oO.formatWithOptions(Q,B)}`}}g7A(fQ);Object.defineProperties(fQ.prototype,{type:TB,url:TB,status:TB,ok:TB,redirected:TB,statusText:TB,headers:TB,clone:TB,body:TB,bodyUsed:TB,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(fQ,{json:TB,redirect:TB,error:TB});function O5(A){if(A.internalResponse)return BT(O5(A.internalResponse),A.type);let Q=cJ({...A,body:null});if(A.body!=null)Q.body=S7A(Q,A.body);return Q}function cJ(A){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...A,headersList:A?.headersList?new iO(A?.headersList):new iO,urlList:A?.urlList?[...A.urlList]:[]}}function $U(A){let Q=b7A(A);return cJ({type:"error",status:0,error:Q?A:Error(A?String(A):A),aborted:A&&A.name==="AbortError"})}function n7A(A){return A.type==="error"&&A.status===0}function VU(A,Q){return Q={internalResponse:A,...Q},new Proxy(A,{get(B,I){return I in Q?Q[I]:B[I]},set(B,I,C){return q5(!(I in Q)),B[I]=C,!0}})}function BT(A,Q){if(Q==="basic")return VU(A,{type:"basic",headersList:A.headersList});else if(Q==="cors")return VU(A,{type:"cors",headersList:A.headersList});else if(Q==="opaque")return VU(A,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});else if(Q==="opaqueredirect")return VU(A,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});else q5(!1)}function o7A(A,Q=null){return q5(f7A(A)),_7A(A)?$U(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:Q})):$U(Object.assign(new DOMException("Request was cancelled."),{cause:Q}))}function sO(A,Q,B){if(Q.status!==null&&(Q.status<200||Q.status>599))throw RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in Q&&Q.statusText!=null){if(!h7A(String(Q.statusText)))throw TypeError("Invalid statusText")}if("status"in Q&&Q.status!=null)A[hA].status=Q.status;if("statusText"in Q&&Q.statusText!=null)A[hA].statusText=Q.statusText;if("headers"in Q&&Q.headers!=null)P7A(A[_C],Q.headers);if(B){if(u7A.includes(A.status))throw IA.errors.exception({header:"Response constructor",message:`Invalid response status code ${A.status}`});if(A[hA].body=B.body,B.type!=null&&!A[hA].headersList.contains("content-type",!0))A[hA].headersList.append("content-type",B.type,!0)}}function UD(A,Q){let B=new fQ(zU);if(B[hA]=A,B[_C]=new rO(zU),eO(B[_C],A.headersList),tO(B[_C],Q),AT&&A.body?.stream)QT.register(B,new WeakRef(A.body.stream));return B}IA.converters.ReadableStream=IA.interfaceConverter(ReadableStream);IA.converters.FormData=IA.interfaceConverter(l7A);IA.converters.URLSearchParams=IA.interfaceConverter(URLSearchParams);IA.converters.XMLHttpRequestBodyInit=function(A,Q,B){if(typeof A==="string")return IA.converters.USVString(A,Q,B);if(v7A(A))return IA.converters.Blob(A,Q,B,{strict:!1});if(ArrayBuffer.isView(A)||p7A.isArrayBuffer(A))return IA.converters.BufferSource(A,Q,B);if(R5.isFormDataLike(A))return IA.converters.FormData(A,Q,B,{strict:!1});if(A instanceof URLSearchParams)return IA.converters.URLSearchParams(A,Q,B);return IA.converters.DOMString(A,Q,B)};IA.converters.BodyInit=function(A,Q,B){if(A instanceof ReadableStream)return IA.converters.ReadableStream(A,Q,B);if(A?.[Symbol.asyncIterator])return A;return IA.converters.XMLHttpRequestBodyInit(A,Q,B)};IA.converters.ResponseInit=IA.dictionaryConverter([{key:"status",converter:IA.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:IA.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:IA.converters.HeadersInit}]);IT.exports={isNetworkError:n7A,makeNetworkError:$U,makeResponse:cJ,makeAppropriateNetworkError:o7A,filterResponse:BT,Response:fQ,cloneResponse:O5,fromInnerResponse:UD}});var GT=X((W9Q,FT)=>{var{kConnected:CT,kSize:ET}=yA();class YT{constructor(A){this.value=A}deref(){return this.value[CT]===0&&this.value[ET]===0?void 0:this.value}}class JT{constructor(A){this.finalizer=A}register(A,Q){if(A.on)A.on("disconnect",()=>{if(A[CT]===0&&A[ET]===0)this.finalizer(Q)})}unregister(A){}}FT.exports=function(){if(process.env.NODE_V8_COVERAGE&&process.version.startsWith("v18"))return process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"),{WeakRef:YT,FinalizationRegistry:JT};return{WeakRef,FinalizationRegistry}}});var uJ=X((U9Q,jT)=>{var{extractBody:a7A,mixinBody:s7A,cloneBody:r7A,bodyUnusable:DT}=LJ(),{Headers:$T,fill:t7A,HeadersList:NU,setHeadersGuard:P5,getHeadersGuard:e7A,setHeadersList:HT,getHeadersList:ZT}=o0(),{FinalizationRegistry:AzA}=GT()(),MU=YA(),WT=H("node:util"),{isValidHTTPToken:QzA,sameOrigin:UT,environmentSettingsObject:HU}=jB(),{forbiddenMethodsSet:BzA,corsSafeListedMethodsSet:IzA,referrerPolicy:CzA,requestRedirect:EzA,requestMode:YzA,requestCredentials:JzA,requestCache:FzA,requestDuplex:GzA}=vG(),{kEnumerableProperty:CQ,normalizedMethodRecordsBase:DzA,normalizedMethodRecords:ZzA}=MU,{kHeaders:PB,kSignal:LU,kState:PA,kDispatcher:T5}=zE(),{webidl:i}=LQ(),{URLSerializer:WzA}=JB(),{kConstruct:jU}=yA(),UzA=H("node:assert"),{getMaxListeners:XT,setMaxListeners:wT,getEventListeners:XzA,defaultMaxListeners:KT}=H("node:events"),wzA=Symbol("abortController"),MT=new AzA(({signal:A,abort:Q})=>{A.removeEventListener("abort",Q)}),RU=new WeakMap;function VT(A){return Q;function Q(){let B=A.deref();if(B!==void 0){MT.unregister(Q),this.removeEventListener("abort",Q),B.abort(this.reason);let I=RU.get(B.signal);if(I!==void 0){if(I.size!==0){for(let C of I){let E=C.deref();if(E!==void 0)E.abort(this.reason)}I.clear()}RU.delete(B.signal)}}}}var zT=!1;class qA{constructor(A,Q={}){if(i.util.markAsUncloneable(this),A===jU)return;let B="Request constructor";i.argumentLengthCheck(arguments,1,B),A=i.converters.RequestInfo(A,B,"input"),Q=i.converters.RequestInit(Q,B,"init");let I=null,C=null,E=HU.settingsObject.baseUrl,Y=null;if(typeof A==="string"){this[T5]=Q.dispatcher;let V;try{V=new URL(A,E)}catch(z){throw TypeError("Failed to parse URL from "+A,{cause:z})}if(V.username||V.password)throw TypeError("Request cannot be constructed from a URL that includes credentials: "+A);I=qU({urlList:[V]}),C="cors"}else this[T5]=Q.dispatcher||A[T5],UzA(A instanceof qA),I=A[PA],Y=A[LU];let J=HU.settingsObject.origin,F="client";if(I.window?.constructor?.name==="EnvironmentSettingsObject"&&UT(I.window,J))F=I.window;if(Q.window!=null)throw TypeError(`'window' option '${F}' must be null`);if("window"in Q)F="no-window";I=qU({method:I.method,headersList:I.headersList,unsafeRequest:I.unsafeRequest,client:HU.settingsObject,window:F,priority:I.priority,origin:I.origin,referrer:I.referrer,referrerPolicy:I.referrerPolicy,mode:I.mode,credentials:I.credentials,cache:I.cache,redirect:I.redirect,integrity:I.integrity,keepalive:I.keepalive,reloadNavigation:I.reloadNavigation,historyNavigation:I.historyNavigation,urlList:[...I.urlList]});let G=Object.keys(Q).length!==0;if(G){if(I.mode==="navigate")I.mode="same-origin";I.reloadNavigation=!1,I.historyNavigation=!1,I.origin="client",I.referrer="client",I.referrerPolicy="",I.url=I.urlList[I.urlList.length-1],I.urlList=[I.url]}if(Q.referrer!==void 0){let V=Q.referrer;if(V==="")I.referrer="no-referrer";else{let z;try{z=new URL(V,E)}catch(M){throw TypeError(`Referrer "${V}" is not a valid URL.`,{cause:M})}if(z.protocol==="about:"&&z.hostname==="client"||J&&!UT(z,HU.settingsObject.baseUrl))I.referrer="client";else I.referrer=z}}if(Q.referrerPolicy!==void 0)I.referrerPolicy=Q.referrerPolicy;let D;if(Q.mode!==void 0)D=Q.mode;else D=C;if(D==="navigate")throw i.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(D!=null)I.mode=D;if(Q.credentials!==void 0)I.credentials=Q.credentials;if(Q.cache!==void 0)I.cache=Q.cache;if(I.cache==="only-if-cached"&&I.mode!=="same-origin")throw TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(Q.redirect!==void 0)I.redirect=Q.redirect;if(Q.integrity!=null)I.integrity=String(Q.integrity);if(Q.keepalive!==void 0)I.keepalive=Boolean(Q.keepalive);if(Q.method!==void 0){let V=Q.method,z=ZzA[V];if(z!==void 0)I.method=z;else{if(!QzA(V))throw TypeError(`'${V}' is not a valid HTTP method.`);let M=V.toUpperCase();if(BzA.has(M))throw TypeError(`'${V}' HTTP method is unsupported.`);V=DzA[M]??V,I.method=V}if(!zT&&I.method==="patch")process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:"UNDICI-FETCH-patch"}),zT=!0}if(Q.signal!==void 0)Y=Q.signal;this[PA]=I;let Z=new AbortController;if(this[LU]=Z.signal,Y!=null){if(!Y||typeof Y.aborted!=="boolean"||typeof Y.addEventListener!=="function")throw TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(Y.aborted)Z.abort(Y.reason);else{this[wzA]=Z;let V=new WeakRef(Z),z=VT(V);try{if(typeof XT==="function"&&XT(Y)===KT)wT(1500,Y);else if(XzA(Y,"abort").length>=KT)wT(1500,Y)}catch{}MU.addAbortListener(Y,z),MT.register(Z,{signal:Y,abort:z},z)}}if(this[PB]=new $T(jU),HT(this[PB],I.headersList),P5(this[PB],"request"),D==="no-cors"){if(!IzA.has(I.method))throw TypeError(`'${I.method} is unsupported in no-cors mode.`);P5(this[PB],"request-no-cors")}if(G){let V=ZT(this[PB]),z=Q.headers!==void 0?Q.headers:new NU(V);if(V.clear(),z instanceof NU){for(let{name:M,value:L}of z.rawValues())V.append(M,L,!1);V.cookies=z.cookies}else t7A(this[PB],z)}let W=A instanceof qA?A[PA].body:null;if((Q.body!=null||W!=null)&&(I.method==="GET"||I.method==="HEAD"))throw TypeError("Request with GET/HEAD method cannot have body.");let U=null;if(Q.body!=null){let[V,z]=a7A(Q.body,I.keepalive);if(U=V,z&&!ZT(this[PB]).contains("content-type",!0))this[PB].append("content-type",z)}let w=U??W;if(w!=null&&w.source==null){if(U!=null&&Q.duplex==null)throw TypeError("RequestInit: duplex option is required when sending a body.");if(I.mode!=="same-origin"&&I.mode!=="cors")throw TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');I.useCORSPreflightFlag=!0}let K=w;if(U==null&&W!=null){if(DT(A))throw TypeError("Cannot construct a Request with a Request object that has already been used.");let V=new TransformStream;W.stream.pipeThrough(V),K={source:W.source,length:W.length,stream:V.readable}}this[PA].body=K}get method(){return i.brandCheck(this,qA),this[PA].method}get url(){return i.brandCheck(this,qA),WzA(this[PA].url)}get headers(){return i.brandCheck(this,qA),this[PB]}get destination(){return i.brandCheck(this,qA),this[PA].destination}get referrer(){if(i.brandCheck(this,qA),this[PA].referrer==="no-referrer")return"";if(this[PA].referrer==="client")return"about:client";return this[PA].referrer.toString()}get referrerPolicy(){return i.brandCheck(this,qA),this[PA].referrerPolicy}get mode(){return i.brandCheck(this,qA),this[PA].mode}get credentials(){return this[PA].credentials}get cache(){return i.brandCheck(this,qA),this[PA].cache}get redirect(){return i.brandCheck(this,qA),this[PA].redirect}get integrity(){return i.brandCheck(this,qA),this[PA].integrity}get keepalive(){return i.brandCheck(this,qA),this[PA].keepalive}get isReloadNavigation(){return i.brandCheck(this,qA),this[PA].reloadNavigation}get isHistoryNavigation(){return i.brandCheck(this,qA),this[PA].historyNavigation}get signal(){return i.brandCheck(this,qA),this[LU]}get body(){return i.brandCheck(this,qA),this[PA].body?this[PA].body.stream:null}get bodyUsed(){return i.brandCheck(this,qA),!!this[PA].body&&MU.isDisturbed(this[PA].body.stream)}get duplex(){return i.brandCheck(this,qA),"half"}clone(){if(i.brandCheck(this,qA),DT(this))throw TypeError("unusable");let A=LT(this[PA]),Q=new AbortController;if(this.signal.aborted)Q.abort(this.signal.reason);else{let B=RU.get(this.signal);if(B===void 0)B=new Set,RU.set(this.signal,B);let I=new WeakRef(Q);B.add(I),MU.addAbortListener(Q.signal,VT(I))}return NT(A,Q.signal,e7A(this[PB]))}[WT.inspect.custom](A,Q){if(Q.depth===null)Q.depth=2;Q.colors??=!0;let B={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${WT.formatWithOptions(Q,B)}`}}s7A(qA);function qU(A){return{method:A.method??"GET",localURLsOnly:A.localURLsOnly??!1,unsafeRequest:A.unsafeRequest??!1,body:A.body??null,client:A.client??null,reservedClient:A.reservedClient??null,replacesClientId:A.replacesClientId??"",window:A.window??"client",keepalive:A.keepalive??!1,serviceWorkers:A.serviceWorkers??"all",initiator:A.initiator??"",destination:A.destination??"",priority:A.priority??null,origin:A.origin??"client",policyContainer:A.policyContainer??"client",referrer:A.referrer??"client",referrerPolicy:A.referrerPolicy??"",mode:A.mode??"no-cors",useCORSPreflightFlag:A.useCORSPreflightFlag??!1,credentials:A.credentials??"same-origin",useCredentials:A.useCredentials??!1,cache:A.cache??"default",redirect:A.redirect??"follow",integrity:A.integrity??"",cryptoGraphicsNonceMetadata:A.cryptoGraphicsNonceMetadata??"",parserMetadata:A.parserMetadata??"",reloadNavigation:A.reloadNavigation??!1,historyNavigation:A.historyNavigation??!1,userActivation:A.userActivation??!1,taintedOrigin:A.taintedOrigin??!1,redirectCount:A.redirectCount??0,responseTainting:A.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:A.preventNoCacheCacheControlHeaderModification??!1,done:A.done??!1,timingAllowFailed:A.timingAllowFailed??!1,urlList:A.urlList,url:A.urlList[0],headersList:A.headersList?new NU(A.headersList):new NU}}function LT(A){let Q=qU({...A,body:null});if(A.body!=null)Q.body=r7A(Q,A.body);return Q}function NT(A,Q,B){let I=new qA(jU);return I[PA]=A,I[LU]=Q,I[PB]=new $T(jU),HT(I[PB],A.headersList),P5(I[PB],B),I}Object.defineProperties(qA.prototype,{method:CQ,url:CQ,headers:CQ,redirect:CQ,clone:CQ,signal:CQ,duplex:CQ,destination:CQ,body:CQ,bodyUsed:CQ,isHistoryNavigation:CQ,isReloadNavigation:CQ,keepalive:CQ,integrity:CQ,cache:CQ,credentials:CQ,attribute:CQ,referrerPolicy:CQ,referrer:CQ,mode:CQ,[Symbol.toStringTag]:{value:"Request",configurable:!0}});i.converters.Request=i.interfaceConverter(qA);i.converters.RequestInfo=function(A,Q,B){if(typeof A==="string")return i.converters.USVString(A,Q,B);if(A instanceof qA)return i.converters.Request(A,Q,B);return i.converters.USVString(A,Q,B)};i.converters.AbortSignal=i.interfaceConverter(AbortSignal);i.converters.RequestInit=i.dictionaryConverter([{key:"method",converter:i.converters.ByteString},{key:"headers",converter:i.converters.HeadersInit},{key:"body",converter:i.nullableConverter(i.converters.BodyInit)},{key:"referrer",converter:i.converters.USVString},{key:"referrerPolicy",converter:i.converters.DOMString,allowedValues:CzA},{key:"mode",converter:i.converters.DOMString,allowedValues:YzA},{key:"credentials",converter:i.converters.DOMString,allowedValues:JzA},{key:"cache",converter:i.converters.DOMString,allowedValues:FzA},{key:"redirect",converter:i.converters.DOMString,allowedValues:EzA},{key:"integrity",converter:i.converters.DOMString},{key:"keepalive",converter:i.converters.boolean},{key:"signal",converter:i.nullableConverter((A)=>i.converters.AbortSignal(A,"RequestInit","signal",{strict:!1}))},{key:"window",converter:i.converters.any},{key:"duplex",converter:i.converters.DOMString,allowedValues:GzA},{key:"dispatcher",converter:i.converters.any}]);jT.exports={Request:qA,makeRequest:qU,fromInnerRequest:NT,cloneRequest:LT}});var KD=X((X9Q,bT)=>{var{makeNetworkError:zA,makeAppropriateNetworkError:OU,filterResponse:k5,makeResponse:TU,fromInnerResponse:KzA}=XD(),{HeadersList:RT}=o0(),{Request:VzA,cloneRequest:zzA}=uJ(),kE=H("node:zlib"),{bytesMatch:$zA,makePolicyContainer:HzA,clonePolicyContainer:MzA,requestBadPort:LzA,TAOCheck:NzA,appendRequestOriginHeader:jzA,responseLocationURL:RzA,requestCurrentURL:JC,setRequestReferrerPolicyOnRedirect:qzA,tryUpgradeRequestToAPotentiallyTrustworthyURL:OzA,createOpaqueTimingInfo:f5,appendFetchMetadata:TzA,corsCheck:PzA,crossOriginResourcePolicyCheck:kzA,determineRequestsReferrer:SzA,coarsenedSharedCurrentTime:wD,createDeferredPromise:gzA,isBlobLike:yzA,sameOrigin:h5,isCancelled:a0,isAborted:qT,isErrorLike:hzA,fullyReadBody:fzA,readableStreamClose:_zA,isomorphicEncode:PU,urlIsLocal:vzA,urlIsHttpHttpsScheme:_5,urlHasHttpsScheme:xzA,clampAndCoarsenConnectionTimingInfo:bzA,simpleRangeHeaderValue:mzA,buildContentRange:dzA,createInflate:czA,extractMimeType:uzA}=jB(),{kState:kT,kDispatcher:lzA}=zE(),s0=H("node:assert"),{safelyExtractBody:v5,extractBody:OT}=LJ(),{redirectStatusSet:ST,nullBodyStatus:gT,safeMethodsSet:pzA,requestBodyHeader:izA,subresourceSet:nzA}=vG(),ozA=H("node:events"),{Readable:azA,pipeline:szA,finished:rzA}=H("node:stream"),{addAbortListener:tzA,isErrored:ezA,isReadable:kU,bufferToLowerCasedHeaderName:TT}=YA(),{dataURLProcessor:A$A,serializeAMimeType:Q$A,minimizeSupportedMimeType:B$A}=JB(),{getGlobalDispatcher:I$A}=UU(),{webidl:C$A}=LQ(),{STATUS_CODES:E$A}=H("node:http"),Y$A=["GET","HEAD"],J$A=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",S5;class x5 extends ozA{constructor(A){super();this.dispatcher=A,this.connection=null,this.dump=!1,this.state="ongoing"}terminate(A){if(this.state!=="ongoing")return;this.state="terminated",this.connection?.destroy(A),this.emit("terminated",A)}abort(A){if(this.state!=="ongoing")return;if(this.state="aborted",!A)A=new DOMException("The operation was aborted.","AbortError");this.serializedAbortReason=A,this.connection?.destroy(A),this.emit("terminated",A)}}function F$A(A){yT(A,"fetch")}function G$A(A,Q=void 0){C$A.argumentLengthCheck(arguments,1,"globalThis.fetch");let B=gzA(),I;try{I=new VzA(A,Q)}catch(D){return B.reject(D),B.promise}let C=I[kT];if(I.signal.aborted)return g5(B,C,null,I.signal.reason),B.promise;if(C.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope")C.serviceWorkers="none";let Y=null,J=!1,F=null;return tzA(I.signal,()=>{J=!0,s0(F!=null),F.abort(I.signal.reason);let D=Y?.deref();g5(B,C,D,I.signal.reason)}),F=fT({request:C,processResponseEndOfBody:F$A,processResponse:(D)=>{if(J)return;if(D.aborted){g5(B,C,Y,F.serializedAbortReason);return}if(D.type==="error"){B.reject(TypeError("fetch failed",{cause:D.error}));return}Y=new WeakRef(KzA(D,"immutable")),B.resolve(Y.deref()),B=null},dispatcher:I[lzA]}),B.promise}function yT(A,Q="other"){if(A.type==="error"&&A.aborted)return;if(!A.urlList?.length)return;let B=A.urlList[0],I=A.timingInfo,C=A.cacheState;if(!_5(B))return;if(I===null)return;if(!A.timingAllowPassed)I=f5({startTime:I.startTime}),C="";I.endTime=wD(),A.timingInfo=I,hT(I,B.href,Q,globalThis,C)}var hT=performance.markResourceTiming;function g5(A,Q,B,I){if(A)A.reject(I);if(Q.body!=null&&kU(Q.body?.stream))Q.body.stream.cancel(I).catch((E)=>{if(E.code==="ERR_INVALID_STATE")return;throw E});if(B==null)return;let C=B[kT];if(C.body!=null&&kU(C.body?.stream))C.body.stream.cancel(I).catch((E)=>{if(E.code==="ERR_INVALID_STATE")return;throw E})}function fT({request:A,processRequestBodyChunkLength:Q,processRequestEndOfBody:B,processResponse:I,processResponseEndOfBody:C,processResponseConsumeBody:E,useParallelQueue:Y=!1,dispatcher:J=I$A()}){s0(J);let F=null,G=!1;if(A.client!=null)F=A.client.globalObject,G=A.client.crossOriginIsolatedCapability;let D=wD(G),Z=f5({startTime:D}),W={controller:new x5(J),request:A,timingInfo:Z,processRequestBodyChunkLength:Q,processRequestEndOfBody:B,processResponse:I,processResponseConsumeBody:E,processResponseEndOfBody:C,taskDestination:F,crossOriginIsolatedCapability:G};if(s0(!A.body||A.body.stream),A.window==="client")A.window=A.client?.globalObject?.constructor?.name==="Window"?A.client:"no-window";if(A.origin==="client")A.origin=A.client.origin;if(A.policyContainer==="client")if(A.client!=null)A.policyContainer=MzA(A.client.policyContainer);else A.policyContainer=HzA();if(!A.headersList.contains("accept",!0))A.headersList.append("accept","*/*",!0);if(!A.headersList.contains("accept-language",!0))A.headersList.append("accept-language","*",!0);if(A.priority===null);if(nzA.has(A.destination));return _T(W).catch((U)=>{W.controller.terminate(U)}),W.controller}async function _T(A,Q=!1){let B=A.request,I=null;if(B.localURLsOnly&&!vzA(JC(B)))I=zA("local URLs only");if(OzA(B),LzA(B)==="blocked")I=zA("bad port");if(B.referrerPolicy==="")B.referrerPolicy=B.policyContainer.referrerPolicy;if(B.referrer!=="no-referrer")B.referrer=SzA(B);if(I===null)I=await(async()=>{let E=JC(B);if(h5(E,B.url)&&B.responseTainting==="basic"||E.protocol==="data:"||(B.mode==="navigate"||B.mode==="websocket"))return B.responseTainting="basic",await PT(A);if(B.mode==="same-origin")return zA('request mode cannot be "same-origin"');if(B.mode==="no-cors"){if(B.redirect!=="follow")return zA('redirect mode cannot be "follow" for "no-cors" request');return B.responseTainting="opaque",await PT(A)}if(!_5(JC(B)))return zA("URL scheme must be a HTTP(S) scheme");return B.responseTainting="cors",await vT(A)})();if(Q)return I;if(I.status!==0&&!I.internalResponse){if(B.responseTainting==="cors");if(B.responseTainting==="basic")I=k5(I,"basic");else if(B.responseTainting==="cors")I=k5(I,"cors");else if(B.responseTainting==="opaque")I=k5(I,"opaque");else s0(!1)}let C=I.status===0?I:I.internalResponse;if(C.urlList.length===0)C.urlList.push(...B.urlList);if(!B.timingAllowFailed)I.timingAllowPassed=!0;if(I.type==="opaque"&&C.status===206&&C.rangeRequested&&!B.headers.contains("range",!0))I=C=zA();if(I.status!==0&&(B.method==="HEAD"||B.method==="CONNECT"||gT.includes(C.status)))C.body=null,A.controller.dump=!0;if(B.integrity){let E=(J)=>y5(A,zA(J));if(B.responseTainting==="opaque"||I.body==null){E(I.error);return}let Y=(J)=>{if(!$zA(J,B.integrity)){E("integrity mismatch");return}I.body=v5(J)[0],y5(A,I)};await fzA(I.body,Y,E)}else y5(A,I)}function PT(A){if(a0(A)&&A.request.redirectCount===0)return Promise.resolve(OU(A));let{request:Q}=A,{protocol:B}=JC(Q);switch(B){case"about:":return Promise.resolve(zA("about scheme is not supported"));case"blob:":{if(!S5)S5=H("node:buffer").resolveObjectURL;let I=JC(Q);if(I.search.length!==0)return Promise.resolve(zA("NetworkError when attempting to fetch resource."));let C=S5(I.toString());if(Q.method!=="GET"||!yzA(C))return Promise.resolve(zA("invalid method"));let E=TU(),Y=C.size,J=PU(`${Y}`),F=C.type;if(!Q.headersList.contains("range",!0)){let G=OT(C);E.statusText="OK",E.body=G[0],E.headersList.set("content-length",J,!0),E.headersList.set("content-type",F,!0)}else{E.rangeRequested=!0;let G=Q.headersList.get("range",!0),D=mzA(G,!0);if(D==="failure")return Promise.resolve(zA("failed to fetch the data URL"));let{rangeStartValue:Z,rangeEndValue:W}=D;if(Z===null)Z=Y-W,W=Z+W-1;else{if(Z>=Y)return Promise.resolve(zA("Range start is greater than the blob's size."));if(W===null||W>=Y)W=Y-1}let U=C.slice(Z,W,F),w=OT(U);E.body=w[0];let K=PU(`${U.size}`),V=dzA(Z,W,Y);E.status=206,E.statusText="Partial Content",E.headersList.set("content-length",K,!0),E.headersList.set("content-type",F,!0),E.headersList.set("content-range",V,!0)}return Promise.resolve(E)}case"data:":{let I=JC(Q),C=A$A(I);if(C==="failure")return Promise.resolve(zA("failed to fetch the data URL"));let E=Q$A(C.mimeType);return Promise.resolve(TU({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:E}]],body:v5(C.body)[0]}))}case"file:":return Promise.resolve(zA("not implemented... yet..."));case"http:":case"https:":return vT(A).catch((I)=>zA(I));default:return Promise.resolve(zA("unknown scheme"))}}function D$A(A,Q){if(A.request.done=!0,A.processResponseDone!=null)queueMicrotask(()=>A.processResponseDone(Q))}function y5(A,Q){let B=A.timingInfo,I=()=>{let E=Date.now();if(A.request.destination==="document")A.controller.fullTimingInfo=B;A.controller.reportTimingSteps=()=>{if(A.request.url.protocol!=="https:")return;B.endTime=E;let{cacheState:J,bodyInfo:F}=Q;if(!Q.timingAllowPassed)B=f5(B),J="";let G=0;if(A.request.mode!=="navigator"||!Q.hasCrossOriginRedirects){G=Q.status;let D=uzA(Q.headersList);if(D!=="failure")F.contentType=B$A(D)}if(A.request.initiatorType!=null)hT(B,A.request.url.href,A.request.initiatorType,globalThis,J,F,G)};let Y=()=>{if(A.request.done=!0,A.processResponseEndOfBody!=null)queueMicrotask(()=>A.processResponseEndOfBody(Q));if(A.request.initiatorType!=null)A.controller.reportTimingSteps()};queueMicrotask(()=>Y())};if(A.processResponse!=null)queueMicrotask(()=>{A.processResponse(Q),A.processResponse=null});let C=Q.type==="error"?Q:Q.internalResponse??Q;if(C.body==null)I();else rzA(C.body.stream,()=>{I()})}async function vT(A){let Q=A.request,B=null,I=null,C=A.timingInfo;if(Q.serviceWorkers==="all");if(B===null){if(Q.redirect==="follow")Q.serviceWorkers="none";if(I=B=await xT(A),Q.responseTainting==="cors"&&PzA(Q,B)==="failure")return zA("cors failure");if(NzA(Q,B)==="failure")Q.timingAllowFailed=!0}if((Q.responseTainting==="opaque"||B.type==="opaque")&&kzA(Q.origin,Q.client,Q.destination,I)==="blocked")return zA("blocked");if(ST.has(I.status)){if(Q.redirect!=="manual")A.controller.connection.destroy(void 0,!1);if(Q.redirect==="error")B=zA("unexpected redirect");else if(Q.redirect==="manual")B=I;else if(Q.redirect==="follow")B=await Z$A(A,B);else s0(!1)}return B.timingInfo=C,B}function Z$A(A,Q){let B=A.request,I=Q.internalResponse?Q.internalResponse:Q,C;try{if(C=RzA(I,JC(B).hash),C==null)return Q}catch(Y){return Promise.resolve(zA(Y))}if(!_5(C))return Promise.resolve(zA("URL scheme must be a HTTP(S) scheme"));if(B.redirectCount===20)return Promise.resolve(zA("redirect count exceeded"));if(B.redirectCount+=1,B.mode==="cors"&&(C.username||C.password)&&!h5(B,C))return Promise.resolve(zA('cross origin not allowed for request mode "cors"'));if(B.responseTainting==="cors"&&(C.username||C.password))return Promise.resolve(zA('URL cannot contain credentials for request mode "cors"'));if(I.status!==303&&B.body!=null&&B.body.source==null)return Promise.resolve(zA());if([301,302].includes(I.status)&&B.method==="POST"||I.status===303&&!Y$A.includes(B.method)){B.method="GET",B.body=null;for(let Y of izA)B.headersList.delete(Y)}if(!h5(JC(B),C))B.headersList.delete("authorization",!0),B.headersList.delete("proxy-authorization",!0),B.headersList.delete("cookie",!0),B.headersList.delete("host",!0);if(B.body!=null)s0(B.body.source!=null),B.body=v5(B.body.source)[0];let E=A.timingInfo;if(E.redirectEndTime=E.postRedirectStartTime=wD(A.crossOriginIsolatedCapability),E.redirectStartTime===0)E.redirectStartTime=E.startTime;return B.urlList.push(C),qzA(B,I),_T(A,!0)}async function xT(A,Q=!1,B=!1){let I=A.request,C=null,E=null,Y=null,J=null,F=!1;if(I.window==="no-window"&&I.redirect==="error")C=A,E=I;else E=zzA(I),C={...A},C.request=E;let G=I.credentials==="include"||I.credentials==="same-origin"&&I.responseTainting==="basic",D=E.body?E.body.length:null,Z=null;if(E.body==null&&["POST","PUT"].includes(E.method))Z="0";if(D!=null)Z=PU(`${D}`);if(Z!=null)E.headersList.append("content-length",Z,!0);if(D!=null&&E.keepalive);if(E.referrer instanceof URL)E.headersList.append("referer",PU(E.referrer.href),!0);if(jzA(E),TzA(E),!E.headersList.contains("user-agent",!0))E.headersList.append("user-agent",J$A);if(E.cache==="default"&&(E.headersList.contains("if-modified-since",!0)||E.headersList.contains("if-none-match",!0)||E.headersList.contains("if-unmodified-since",!0)||E.headersList.contains("if-match",!0)||E.headersList.contains("if-range",!0)))E.cache="no-store";if(E.cache==="no-cache"&&!E.preventNoCacheCacheControlHeaderModification&&!E.headersList.contains("cache-control",!0))E.headersList.append("cache-control","max-age=0",!0);if(E.cache==="no-store"||E.cache==="reload"){if(!E.headersList.contains("pragma",!0))E.headersList.append("pragma","no-cache",!0);if(!E.headersList.contains("cache-control",!0))E.headersList.append("cache-control","no-cache",!0)}if(E.headersList.contains("range",!0))E.headersList.append("accept-encoding","identity",!0);if(!E.headersList.contains("accept-encoding",!0))if(xzA(JC(E)))E.headersList.append("accept-encoding","br, gzip, deflate",!0);else E.headersList.append("accept-encoding","gzip, deflate",!0);if(E.headersList.delete("host",!0),J==null)E.cache="no-store";if(E.cache!=="no-store"&&E.cache!=="reload");if(Y==null){if(E.cache==="only-if-cached")return zA("only if cached");let W=await W$A(C,G,B);if(!pzA.has(E.method)&&W.status>=200&&W.status<=399);if(F&&W.status===304);if(Y==null)Y=W}if(Y.urlList=[...E.urlList],E.headersList.contains("range",!0))Y.rangeRequested=!0;if(Y.requestIncludesCredentials=G,Y.status===407){if(I.window==="no-window")return zA();if(a0(A))return OU(A);return zA("proxy authentication required")}if(Y.status===421&&!B&&(I.body==null||I.body.source!=null)){if(a0(A))return OU(A);A.controller.connection.destroy(),Y=await xT(A,Q,!0)}return Y}async function W$A(A,Q=!1,B=!1){s0(!A.controller.connection||A.controller.connection.destroyed),A.controller.connection={abort:null,destroyed:!1,destroy(w,K=!0){if(!this.destroyed){if(this.destroyed=!0,K)this.abort?.(w??new DOMException("The operation was aborted.","AbortError"))}}};let I=A.request,C=null,E=A.timingInfo;if(!0)I.cache="no-store";let J=B?"yes":"no";if(I.mode==="websocket");let F=null;if(I.body==null&&A.processRequestEndOfBody)queueMicrotask(()=>A.processRequestEndOfBody());else if(I.body!=null){let w=async function*(z){if(a0(A))return;yield z,A.processRequestBodyChunkLength?.(z.byteLength)},K=()=>{if(a0(A))return;if(A.processRequestEndOfBody)A.processRequestEndOfBody()},V=(z)=>{if(a0(A))return;if(z.name==="AbortError")A.controller.abort();else A.controller.terminate(z)};F=async function*(){try{for await(let z of I.body.stream)yield*w(z);K()}catch(z){V(z)}}()}try{let{body:w,status:K,statusText:V,headersList:z,socket:M}=await U({body:F});if(M)C=TU({status:K,statusText:V,headersList:z,socket:M});else{let L=w[Symbol.asyncIterator]();A.controller.next=()=>L.next(),C=TU({status:K,statusText:V,headersList:z})}}catch(w){if(w.name==="AbortError")return A.controller.connection.destroy(),OU(A,w);return zA(w)}let G=async()=>{await A.controller.resume()},D=(w)=>{if(!a0(A))A.controller.abort(w)},Z=new ReadableStream({async start(w){A.controller.controller=w},async pull(w){await G(w)},async cancel(w){await D(w)},type:"bytes"});C.body={stream:Z,source:null,length:null},A.controller.onAborted=W,A.controller.on("terminated",W),A.controller.resume=async()=>{while(!0){let w,K;try{let{done:z,value:M}=await A.controller.next();if(qT(A))break;w=z?void 0:M}catch(z){if(A.controller.ended&&!E.encodedBodySize)w=void 0;else w=z,K=!0}if(w===void 0){_zA(A.controller.controller),D$A(A,C);return}if(E.decodedBodySize+=w?.byteLength??0,K){A.controller.terminate(w);return}let V=new Uint8Array(w);if(V.byteLength)A.controller.controller.enqueue(V);if(ezA(Z)){A.controller.terminate();return}if(A.controller.controller.desiredSize<=0)return}};function W(w){if(qT(A)){if(C.aborted=!0,kU(Z))A.controller.controller.error(A.controller.serializedAbortReason)}else if(kU(Z))A.controller.controller.error(TypeError("terminated",{cause:hzA(w)?w:void 0}));A.controller.connection.destroy()}return C;function U({body:w}){let K=JC(I),V=A.controller.dispatcher;return new Promise((z,M)=>V.dispatch({path:K.pathname+K.search,origin:K.origin,method:I.method,body:V.isMockActive?I.body&&(I.body.source||I.body.stream):w,headers:I.headersList.entries,maxRedirections:0,upgrade:I.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(L){let{connection:N}=A.controller;if(E.finalConnectionTimingInfo=bzA(void 0,E.postRedirectStartTime,A.crossOriginIsolatedCapability),N.destroyed)L(new DOMException("The operation was aborted.","AbortError"));else A.controller.on("terminated",L),this.abort=N.abort=L;E.finalNetworkRequestStartTime=wD(A.crossOriginIsolatedCapability)},onResponseStarted(){E.finalNetworkResponseStartTime=wD(A.crossOriginIsolatedCapability)},onHeaders(L,N,T,y){if(L<200)return;let f="",vA=new RT;for(let FQ=0;FQ5)return M(Error(`too many content-encodings in response: ${oA.length}, maximum allowed is 5`)),!0;for(let KE=oA.length-1;KE>=0;--KE){let S0=oA[KE].trim();if(S0==="x-gzip"||S0==="gzip")uA.push(kE.createGunzip({flush:kE.constants.Z_SYNC_FLUSH,finishFlush:kE.constants.Z_SYNC_FLUSH}));else if(S0==="deflate")uA.push(czA({flush:kE.constants.Z_SYNC_FLUSH,finishFlush:kE.constants.Z_SYNC_FLUSH}));else if(S0==="br")uA.push(kE.createBrotliDecompress({flush:kE.constants.BROTLI_OPERATION_FLUSH,finishFlush:kE.constants.BROTLI_OPERATION_FLUSH}));else{uA.length=0;break}}}let YB=this.onError.bind(this);return z({status:L,statusText:y,headersList:vA,body:uA.length?szA(this.body,...uA,(FQ)=>{if(FQ)this.onError(FQ)}).on("error",YB):this.body.on("error",YB)}),!0},onData(L){if(A.controller.dump)return;let N=L;return E.encodedBodySize+=N.byteLength,this.body.push(N)},onComplete(){if(this.abort)A.controller.off("terminated",this.abort);if(A.controller.onAborted)A.controller.off("terminated",A.controller.onAborted);A.controller.ended=!0,this.body.push(null)},onError(L){if(this.abort)A.controller.off("terminated",this.abort);this.body?.destroy(L),A.controller.terminate(L),M(L)},onUpgrade(L,N,T){if(L!==101)return;let y=new RT;for(let f=0;f{mT.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var cT=X((K9Q,dT)=>{var{webidl:kB}=LQ(),SU=Symbol("ProgressEvent state");class VD extends Event{constructor(A,Q={}){A=kB.converters.DOMString(A,"ProgressEvent constructor","type"),Q=kB.converters.ProgressEventInit(Q??{});super(A,Q);this[SU]={lengthComputable:Q.lengthComputable,loaded:Q.loaded,total:Q.total}}get lengthComputable(){return kB.brandCheck(this,VD),this[SU].lengthComputable}get loaded(){return kB.brandCheck(this,VD),this[SU].loaded}get total(){return kB.brandCheck(this,VD),this[SU].total}}kB.converters.ProgressEventInit=kB.dictionaryConverter([{key:"lengthComputable",converter:kB.converters.boolean,defaultValue:()=>!1},{key:"loaded",converter:kB.converters["unsigned long long"],defaultValue:()=>0},{key:"total",converter:kB.converters["unsigned long long"],defaultValue:()=>0},{key:"bubbles",converter:kB.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:kB.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:kB.converters.boolean,defaultValue:()=>!1}]);dT.exports={ProgressEvent:VD}});var lT=X((V9Q,uT)=>{function U$A(A){if(!A)return"failure";switch(A.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}uT.exports={getEncoding:U$A}});var tT=X((z9Q,rT)=>{var{kState:lJ,kError:m5,kResult:pT,kAborted:zD,kLastProgressEventFired:d5}=b5(),{ProgressEvent:X$A}=cT(),{getEncoding:iT}=lT(),{serializeAMimeType:w$A,parseMIMEType:nT}=JB(),{types:K$A}=H("node:util"),{StringDecoder:oT}=H("string_decoder"),{btoa:aT}=H("node:buffer"),V$A={enumerable:!0,writable:!1,configurable:!1};function z$A(A,Q,B,I){if(A[lJ]==="loading")throw new DOMException("Invalid state","InvalidStateError");A[lJ]="loading",A[pT]=null,A[m5]=null;let E=Q.stream().getReader(),Y=[],J=E.read(),F=!0;(async()=>{while(!A[zD])try{let{done:G,value:D}=await J;if(F&&!A[zD])queueMicrotask(()=>{SE("loadstart",A)});if(F=!1,!G&&K$A.isUint8Array(D)){if(Y.push(D),(A[d5]===void 0||Date.now()-A[d5]>=50)&&!A[zD])A[d5]=Date.now(),queueMicrotask(()=>{SE("progress",A)});J=E.read()}else if(G){queueMicrotask(()=>{A[lJ]="done";try{let Z=$$A(Y,B,Q.type,I);if(A[zD])return;A[pT]=Z,SE("load",A)}catch(Z){A[m5]=Z,SE("error",A)}if(A[lJ]!=="loading")SE("loadend",A)});break}}catch(G){if(A[zD])return;queueMicrotask(()=>{if(A[lJ]="done",A[m5]=G,SE("error",A),A[lJ]!=="loading")SE("loadend",A)});break}})()}function SE(A,Q){let B=new X$A(A,{bubbles:!1,cancelable:!1});Q.dispatchEvent(B)}function $$A(A,Q,B,I){switch(Q){case"DataURL":{let C="data:",E=nT(B||"application/octet-stream");if(E!=="failure")C+=w$A(E);C+=";base64,";let Y=new oT("latin1");for(let J of A)C+=aT(Y.write(J));return C+=aT(Y.end()),C}case"Text":{let C="failure";if(I)C=iT(I);if(C==="failure"&&B){let E=nT(B);if(E!=="failure")C=iT(E.parameters.get("charset"))}if(C==="failure")C="UTF-8";return H$A(A,C)}case"ArrayBuffer":return sT(A).buffer;case"BinaryString":{let C="",E=new oT("latin1");for(let Y of A)C+=E.write(Y);return C+=E.end(),C}}}function H$A(A,Q){let B=sT(A),I=M$A(B),C=0;if(I!==null)Q=I,C=I==="UTF-8"?3:2;let E=B.slice(C);return new TextDecoder(Q).decode(E)}function M$A(A){let[Q,B,I]=A;if(Q===239&&B===187&&I===191)return"UTF-8";else if(Q===254&&B===255)return"UTF-16BE";else if(Q===255&&B===254)return"UTF-16LE";return null}function sT(A){let Q=A.reduce((I,C)=>{return I+C.byteLength},0),B=0;return A.reduce((I,C)=>{return I.set(C,B),B+=C.byteLength,I},new Uint8Array(Q))}rT.exports={staticPropertyDescriptors:V$A,readOperation:z$A,fireAProgressEvent:SE}});var BP=X(($9Q,QP)=>{var{staticPropertyDescriptors:pJ,readOperation:gU,fireAProgressEvent:eT}=tT(),{kState:r0,kError:AP,kResult:yU,kEvents:XA,kAborted:L$A}=b5(),{webidl:LA}=LQ(),{kEnumerableProperty:DB}=YA();class $A extends EventTarget{constructor(){super();this[r0]="empty",this[yU]=null,this[AP]=null,this[XA]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(A){LA.brandCheck(this,$A),LA.argumentLengthCheck(arguments,1,"FileReader.readAsArrayBuffer"),A=LA.converters.Blob(A,{strict:!1}),gU(this,A,"ArrayBuffer")}readAsBinaryString(A){LA.brandCheck(this,$A),LA.argumentLengthCheck(arguments,1,"FileReader.readAsBinaryString"),A=LA.converters.Blob(A,{strict:!1}),gU(this,A,"BinaryString")}readAsText(A,Q=void 0){if(LA.brandCheck(this,$A),LA.argumentLengthCheck(arguments,1,"FileReader.readAsText"),A=LA.converters.Blob(A,{strict:!1}),Q!==void 0)Q=LA.converters.DOMString(Q,"FileReader.readAsText","encoding");gU(this,A,"Text",Q)}readAsDataURL(A){LA.brandCheck(this,$A),LA.argumentLengthCheck(arguments,1,"FileReader.readAsDataURL"),A=LA.converters.Blob(A,{strict:!1}),gU(this,A,"DataURL")}abort(){if(this[r0]==="empty"||this[r0]==="done"){this[yU]=null;return}if(this[r0]==="loading")this[r0]="done",this[yU]=null;if(this[L$A]=!0,eT("abort",this),this[r0]!=="loading")eT("loadend",this)}get readyState(){switch(LA.brandCheck(this,$A),this[r0]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return LA.brandCheck(this,$A),this[yU]}get error(){return LA.brandCheck(this,$A),this[AP]}get onloadend(){return LA.brandCheck(this,$A),this[XA].loadend}set onloadend(A){if(LA.brandCheck(this,$A),this[XA].loadend)this.removeEventListener("loadend",this[XA].loadend);if(typeof A==="function")this[XA].loadend=A,this.addEventListener("loadend",A);else this[XA].loadend=null}get onerror(){return LA.brandCheck(this,$A),this[XA].error}set onerror(A){if(LA.brandCheck(this,$A),this[XA].error)this.removeEventListener("error",this[XA].error);if(typeof A==="function")this[XA].error=A,this.addEventListener("error",A);else this[XA].error=null}get onloadstart(){return LA.brandCheck(this,$A),this[XA].loadstart}set onloadstart(A){if(LA.brandCheck(this,$A),this[XA].loadstart)this.removeEventListener("loadstart",this[XA].loadstart);if(typeof A==="function")this[XA].loadstart=A,this.addEventListener("loadstart",A);else this[XA].loadstart=null}get onprogress(){return LA.brandCheck(this,$A),this[XA].progress}set onprogress(A){if(LA.brandCheck(this,$A),this[XA].progress)this.removeEventListener("progress",this[XA].progress);if(typeof A==="function")this[XA].progress=A,this.addEventListener("progress",A);else this[XA].progress=null}get onload(){return LA.brandCheck(this,$A),this[XA].load}set onload(A){if(LA.brandCheck(this,$A),this[XA].load)this.removeEventListener("load",this[XA].load);if(typeof A==="function")this[XA].load=A,this.addEventListener("load",A);else this[XA].load=null}get onabort(){return LA.brandCheck(this,$A),this[XA].abort}set onabort(A){if(LA.brandCheck(this,$A),this[XA].abort)this.removeEventListener("abort",this[XA].abort);if(typeof A==="function")this[XA].abort=A,this.addEventListener("abort",A);else this[XA].abort=null}}$A.EMPTY=$A.prototype.EMPTY=0;$A.LOADING=$A.prototype.LOADING=1;$A.DONE=$A.prototype.DONE=2;Object.defineProperties($A.prototype,{EMPTY:pJ,LOADING:pJ,DONE:pJ,readAsArrayBuffer:DB,readAsBinaryString:DB,readAsText:DB,readAsDataURL:DB,abort:DB,readyState:DB,result:DB,error:DB,onloadstart:DB,onprogress:DB,onload:DB,onabort:DB,onerror:DB,onloadend:DB,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties($A,{EMPTY:pJ,LOADING:pJ,DONE:pJ});QP.exports={FileReader:$A}});var hU=X((H9Q,IP)=>{IP.exports={kConstruct:yA().kConstruct}});var YP=X((M9Q,EP)=>{var N$A=H("node:assert"),{URLSerializer:CP}=JB(),{isValidHeaderName:j$A}=jB();function R$A(A,Q,B=!1){let I=CP(A,B),C=CP(Q,B);return I===C}function q$A(A){N$A(A!==null);let Q=[];for(let B of A.split(","))if(B=B.trim(),j$A(B))Q.push(B);return Q}EP.exports={urlEquals:R$A,getFieldValues:q$A}});var GP=X((L9Q,FP)=>{var{kConstruct:O$A}=hU(),{urlEquals:T$A,getFieldValues:c5}=YP(),{kEnumerableProperty:t0,isDisturbed:P$A}=YA(),{webidl:m}=LQ(),{Response:k$A,cloneResponse:S$A,fromInnerResponse:g$A}=XD(),{Request:vC,fromInnerRequest:y$A}=uJ(),{kState:SI}=zE(),{fetching:h$A}=KD(),{urlIsHttpHttpsScheme:fU,createDeferredPromise:iJ,readAllBytes:f$A}=jB(),u5=H("node:assert");class FC{#A;constructor(){if(arguments[0]!==O$A)m.illegalConstructor();m.util.markAsUncloneable(this),this.#A=arguments[1]}async match(A,Q={}){m.brandCheck(this,FC);let B="Cache.match";m.argumentLengthCheck(arguments,1,B),A=m.converters.RequestInfo(A,B,"request"),Q=m.converters.CacheQueryOptions(Q,B,"options");let I=this.#I(A,Q,1);if(I.length===0)return;return I[0]}async matchAll(A=void 0,Q={}){m.brandCheck(this,FC);let B="Cache.matchAll";if(A!==void 0)A=m.converters.RequestInfo(A,B,"request");return Q=m.converters.CacheQueryOptions(Q,B,"options"),this.#I(A,Q)}async add(A){m.brandCheck(this,FC);let Q="Cache.add";m.argumentLengthCheck(arguments,1,Q),A=m.converters.RequestInfo(A,Q,"request");let B=[A];return await this.addAll(B)}async addAll(A){m.brandCheck(this,FC);let Q="Cache.addAll";m.argumentLengthCheck(arguments,1,Q);let B=[],I=[];for(let Z of A){if(Z===void 0)throw m.errors.conversionFailed({prefix:Q,argument:"Argument 1",types:["undefined is not allowed"]});if(Z=m.converters.RequestInfo(Z),typeof Z==="string")continue;let W=Z[SI];if(!fU(W.url)||W.method!=="GET")throw m.errors.exception({header:Q,message:"Expected http/s scheme when method is not GET."})}let C=[];for(let Z of A){let W=new vC(Z)[SI];if(!fU(W.url))throw m.errors.exception({header:Q,message:"Expected http/s scheme."});W.initiator="fetch",W.destination="subresource",I.push(W);let U=iJ();C.push(h$A({request:W,processResponse(w){if(w.type==="error"||w.status===206||w.status<200||w.status>299)U.reject(m.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(w.headersList.contains("vary")){let K=c5(w.headersList.get("vary"));for(let V of K)if(V==="*"){U.reject(m.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let z of C)z.abort();return}}},processResponseEndOfBody(w){if(w.aborted){U.reject(new DOMException("aborted","AbortError"));return}U.resolve(w)}})),B.push(U.promise)}let Y=await Promise.all(B),J=[],F=0;for(let Z of Y){let W={type:"put",request:I[F],response:Z};J.push(W),F++}let G=iJ(),D=null;try{this.#Q(J)}catch(Z){D=Z}return queueMicrotask(()=>{if(D===null)G.resolve(void 0);else G.reject(D)}),G.promise}async put(A,Q){m.brandCheck(this,FC);let B="Cache.put";m.argumentLengthCheck(arguments,2,B),A=m.converters.RequestInfo(A,B,"request"),Q=m.converters.Response(Q,B,"response");let I=null;if(A instanceof vC)I=A[SI];else I=new vC(A)[SI];if(!fU(I.url)||I.method!=="GET")throw m.errors.exception({header:B,message:"Expected an http/s scheme when method is not GET"});let C=Q[SI];if(C.status===206)throw m.errors.exception({header:B,message:"Got 206 status"});if(C.headersList.contains("vary")){let W=c5(C.headersList.get("vary"));for(let U of W)if(U==="*")throw m.errors.exception({header:B,message:"Got * vary field value"})}if(C.body&&(P$A(C.body.stream)||C.body.stream.locked))throw m.errors.exception({header:B,message:"Response body is locked or disturbed"});let E=S$A(C),Y=iJ();if(C.body!=null){let U=C.body.stream.getReader();f$A(U).then(Y.resolve,Y.reject)}else Y.resolve(void 0);let J=[],F={type:"put",request:I,response:E};J.push(F);let G=await Y.promise;if(E.body!=null)E.body.source=G;let D=iJ(),Z=null;try{this.#Q(J)}catch(W){Z=W}return queueMicrotask(()=>{if(Z===null)D.resolve();else D.reject(Z)}),D.promise}async delete(A,Q={}){m.brandCheck(this,FC);let B="Cache.delete";m.argumentLengthCheck(arguments,1,B),A=m.converters.RequestInfo(A,B,"request"),Q=m.converters.CacheQueryOptions(Q,B,"options");let I=null;if(A instanceof vC){if(I=A[SI],I.method!=="GET"&&!Q.ignoreMethod)return!1}else u5(typeof A==="string"),I=new vC(A)[SI];let C=[],E={type:"delete",request:I,options:Q};C.push(E);let Y=iJ(),J=null,F;try{F=this.#Q(C)}catch(G){J=G}return queueMicrotask(()=>{if(J===null)Y.resolve(!!F?.length);else Y.reject(J)}),Y.promise}async keys(A=void 0,Q={}){m.brandCheck(this,FC);let B="Cache.keys";if(A!==void 0)A=m.converters.RequestInfo(A,B,"request");Q=m.converters.CacheQueryOptions(Q,B,"options");let I=null;if(A!==void 0){if(A instanceof vC){if(I=A[SI],I.method!=="GET"&&!Q.ignoreMethod)return[]}else if(typeof A==="string")I=new vC(A)[SI]}let C=iJ(),E=[];if(A===void 0)for(let Y of this.#A)E.push(Y[0]);else{let Y=this.#C(I,Q);for(let J of Y)E.push(J[0])}return queueMicrotask(()=>{let Y=[];for(let J of E){let F=y$A(J,new AbortController().signal,"immutable");Y.push(F)}C.resolve(Object.freeze(Y))}),C.promise}#Q(A){let Q=this.#A,B=[...Q],I=[],C=[];try{for(let E of A){if(E.type!=="delete"&&E.type!=="put")throw m.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(E.type==="delete"&&E.response!=null)throw m.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#C(E.request,E.options,I).length)throw new DOMException("???","InvalidStateError");let Y;if(E.type==="delete"){if(Y=this.#C(E.request,E.options),Y.length===0)return[];for(let J of Y){let F=Q.indexOf(J);u5(F!==-1),Q.splice(F,1)}}else if(E.type==="put"){if(E.response==null)throw m.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let J=E.request;if(!fU(J.url))throw m.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(J.method!=="GET")throw m.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(E.options!=null)throw m.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});Y=this.#C(E.request);for(let F of Y){let G=Q.indexOf(F);u5(G!==-1),Q.splice(G,1)}Q.push([E.request,E.response]),I.push([E.request,E.response])}C.push([E.request,E.response])}return C}catch(E){throw this.#A.length=0,this.#A=B,E}}#C(A,Q,B){let I=[],C=B??this.#A;for(let E of C){let[Y,J]=E;if(this.#B(A,Y,J,Q))I.push(E)}return I}#B(A,Q,B=null,I){let C=new URL(A.url),E=new URL(Q.url);if(I?.ignoreSearch)E.search="",C.search="";if(!T$A(C,E,!0))return!1;if(B==null||I?.ignoreVary||!B.headersList.contains("vary"))return!0;let Y=c5(B.headersList.get("vary"));for(let J of Y){if(J==="*")return!1;let F=Q.headersList.get(J),G=A.headersList.get(J);if(F!==G)return!1}return!0}#I(A,Q,B=1/0){let I=null;if(A!==void 0){if(A instanceof vC){if(I=A[SI],I.method!=="GET"&&!Q.ignoreMethod)return[]}else if(typeof A==="string")I=new vC(A)[SI]}let C=[];if(A===void 0)for(let Y of this.#A)C.push(Y[1]);else{let Y=this.#C(I,Q);for(let J of Y)C.push(J[1])}let E=[];for(let Y of C){let J=g$A(Y,"immutable");if(E.push(J.clone()),E.length>=B)break}return Object.freeze(E)}}Object.defineProperties(FC.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:t0,matchAll:t0,add:t0,addAll:t0,put:t0,delete:t0,keys:t0});var JP=[{key:"ignoreSearch",converter:m.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:m.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:m.converters.boolean,defaultValue:()=>!1}];m.converters.CacheQueryOptions=m.dictionaryConverter(JP);m.converters.MultiCacheQueryOptions=m.dictionaryConverter([...JP,{key:"cacheName",converter:m.converters.DOMString}]);m.converters.Response=m.interfaceConverter(k$A);m.converters["sequence"]=m.sequenceConverter(m.converters.RequestInfo);FP.exports={Cache:FC}});var ZP=X((N9Q,DP)=>{var{kConstruct:$D}=hU(),{Cache:_U}=GP(),{webidl:_Q}=LQ(),{kEnumerableProperty:HD}=YA();class gE{#A=new Map;constructor(){if(arguments[0]!==$D)_Q.illegalConstructor();_Q.util.markAsUncloneable(this)}async match(A,Q={}){if(_Q.brandCheck(this,gE),_Q.argumentLengthCheck(arguments,1,"CacheStorage.match"),A=_Q.converters.RequestInfo(A),Q=_Q.converters.MultiCacheQueryOptions(Q),Q.cacheName!=null){if(this.#A.has(Q.cacheName)){let B=this.#A.get(Q.cacheName);return await new _U($D,B).match(A,Q)}}else for(let B of this.#A.values()){let C=await new _U($D,B).match(A,Q);if(C!==void 0)return C}}async has(A){_Q.brandCheck(this,gE);let Q="CacheStorage.has";return _Q.argumentLengthCheck(arguments,1,Q),A=_Q.converters.DOMString(A,Q,"cacheName"),this.#A.has(A)}async open(A){_Q.brandCheck(this,gE);let Q="CacheStorage.open";if(_Q.argumentLengthCheck(arguments,1,Q),A=_Q.converters.DOMString(A,Q,"cacheName"),this.#A.has(A)){let I=this.#A.get(A);return new _U($D,I)}let B=[];return this.#A.set(A,B),new _U($D,B)}async delete(A){_Q.brandCheck(this,gE);let Q="CacheStorage.delete";return _Q.argumentLengthCheck(arguments,1,Q),A=_Q.converters.DOMString(A,Q,"cacheName"),this.#A.delete(A)}async keys(){return _Q.brandCheck(this,gE),[...this.#A.keys()]}}Object.defineProperties(gE.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:HD,has:HD,open:HD,delete:HD,keys:HD});DP.exports={CacheStorage:gE}});var UP=X((j9Q,WP)=>{WP.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var l5=X((R9Q,zP)=>{function _$A(A){for(let Q=0;Q=0&&B<=8||B>=10&&B<=31||B===127)return!0}return!1}function XP(A){for(let Q=0;Q126||B===34||B===40||B===41||B===60||B===62||B===64||B===44||B===59||B===58||B===92||B===47||B===91||B===93||B===63||B===61||B===123||B===125)throw Error("Invalid cookie name")}}function wP(A){let Q=A.length,B=0;if(A[0]==='"'){if(Q===1||A[Q-1]!=='"')throw Error("Invalid cookie value");--Q,++B}while(B126||I===34||I===44||I===59||I===92)throw Error("Invalid cookie value")}}function KP(A){for(let Q=0;QQ.toString().padStart(2,"0"));function VP(A){if(typeof A==="number")A=new Date(A);return`${x$A[A.getUTCDay()]}, ${vU[A.getUTCDate()]} ${b$A[A.getUTCMonth()]} ${A.getUTCFullYear()} ${vU[A.getUTCHours()]}:${vU[A.getUTCMinutes()]}:${vU[A.getUTCSeconds()]} GMT`}function m$A(A){if(A<0)throw Error("Invalid cookie max-age")}function d$A(A){if(A.name.length===0)return null;XP(A.name),wP(A.value);let Q=[`${A.name}=${A.value}`];if(A.name.startsWith("__Secure-"))A.secure=!0;if(A.name.startsWith("__Host-"))A.secure=!0,A.domain=null,A.path="/";if(A.secure)Q.push("Secure");if(A.httpOnly)Q.push("HttpOnly");if(typeof A.maxAge==="number")m$A(A.maxAge),Q.push(`Max-Age=${A.maxAge}`);if(A.domain)v$A(A.domain),Q.push(`Domain=${A.domain}`);if(A.path)KP(A.path),Q.push(`Path=${A.path}`);if(A.expires&&A.expires.toString()!=="Invalid Date")Q.push(`Expires=${VP(A.expires)}`);if(A.sameSite)Q.push(`SameSite=${A.sameSite}`);for(let B of A.unparsed){if(!B.includes("="))throw Error("Invalid unparsed");let[I,...C]=B.split("=");Q.push(`${I.trim()}=${C.join("=")}`)}return Q.join("; ")}zP.exports={isCTLExcludingHtab:_$A,validateCookieName:XP,validateCookiePath:KP,validateCookieValue:wP,toIMFDate:VP,stringify:d$A}});var HP=X((q9Q,$P)=>{var{maxNameValuePairSize:c$A,maxAttributeValueSize:u$A}=UP(),{isCTLExcludingHtab:l$A}=l5(),{collectASequenceOfCodePointsFast:xU}=JB(),p$A=H("node:assert");function i$A(A){if(l$A(A))return null;let Q="",B="",I="",C="";if(A.includes(";")){let E={position:0};Q=xU(";",A,E),B=A.slice(E.position)}else Q=A;if(!Q.includes("="))C=Q;else{let E={position:0};I=xU("=",Q,E),C=Q.slice(E.position+1)}if(I=I.trim(),C=C.trim(),I.length+C.length>c$A)return null;return{name:I,value:C,...nJ(B)}}function nJ(A,Q={}){if(A.length===0)return Q;p$A(A[0]===";"),A=A.slice(1);let B="";if(A.includes(";"))B=xU(";",A,{position:0}),A=A.slice(B.length);else B=A,A="";let I="",C="";if(B.includes("=")){let Y={position:0};I=xU("=",B,Y),C=B.slice(Y.position+1)}else I=B;if(I=I.trim(),C=C.trim(),C.length>u$A)return nJ(A,Q);let E=I.toLowerCase();if(E==="expires"){let Y=new Date(C);Q.expires=Y}else if(E==="max-age"){let Y=C.charCodeAt(0);if((Y<48||Y>57)&&C[0]!=="-")return nJ(A,Q);if(!/^\d+$/.test(C))return nJ(A,Q);let J=Number(C);Q.maxAge=J}else if(E==="domain"){let Y=C;if(Y[0]===".")Y=Y.slice(1);Y=Y.toLowerCase(),Q.domain=Y}else if(E==="path"){let Y="";if(C.length===0||C[0]!=="/")Y="/";else Y=C;Q.path=Y}else if(E==="secure")Q.secure=!0;else if(E==="httponly")Q.httpOnly=!0;else if(E==="samesite"){let Y="Default",J=C.toLowerCase();if(J.includes("none"))Y="None";if(J.includes("strict"))Y="Strict";if(J.includes("lax"))Y="Lax";Q.sameSite=Y}else Q.unparsed??=[],Q.unparsed.push(`${I}=${C}`);return nJ(A,Q)}$P.exports={parseSetCookie:i$A,parseUnparsedAttributes:nJ}});var NP=X((O9Q,LP)=>{var{parseSetCookie:n$A}=HP(),{stringify:o$A}=l5(),{webidl:DA}=LQ(),{Headers:bU}=o0();function a$A(A){DA.argumentLengthCheck(arguments,1,"getCookies"),DA.brandCheck(A,bU,{strict:!1});let Q=A.get("cookie"),B={};if(!Q)return B;for(let I of Q.split(";")){let[C,...E]=I.split("=");B[C.trim()]=E.join("=")}return B}function s$A(A,Q,B){DA.brandCheck(A,bU,{strict:!1});let I="deleteCookie";DA.argumentLengthCheck(arguments,2,I),Q=DA.converters.DOMString(Q,I,"name"),B=DA.converters.DeleteCookieAttributes(B),MP(A,{name:Q,value:"",expires:new Date(0),...B})}function r$A(A){DA.argumentLengthCheck(arguments,1,"getSetCookies"),DA.brandCheck(A,bU,{strict:!1});let Q=A.getSetCookie();if(!Q)return[];return Q.map((B)=>n$A(B))}function MP(A,Q){DA.argumentLengthCheck(arguments,2,"setCookie"),DA.brandCheck(A,bU,{strict:!1}),Q=DA.converters.Cookie(Q);let B=o$A(Q);if(B)A.append("Set-Cookie",B)}DA.converters.DeleteCookieAttributes=DA.dictionaryConverter([{converter:DA.nullableConverter(DA.converters.DOMString),key:"path",defaultValue:()=>null},{converter:DA.nullableConverter(DA.converters.DOMString),key:"domain",defaultValue:()=>null}]);DA.converters.Cookie=DA.dictionaryConverter([{converter:DA.converters.DOMString,key:"name"},{converter:DA.converters.DOMString,key:"value"},{converter:DA.nullableConverter((A)=>{if(typeof A==="number")return DA.converters["unsigned long long"](A);return new Date(A)}),key:"expires",defaultValue:()=>null},{converter:DA.nullableConverter(DA.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:DA.nullableConverter(DA.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:DA.nullableConverter(DA.converters.DOMString),key:"path",defaultValue:()=>null},{converter:DA.nullableConverter(DA.converters.boolean),key:"secure",defaultValue:()=>null},{converter:DA.nullableConverter(DA.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:DA.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:DA.sequenceConverter(DA.converters.DOMString),key:"unparsed",defaultValue:()=>[]}]);LP.exports={getCookies:a$A,deleteCookie:s$A,getSetCookies:r$A,setCookie:MP}});var aJ=X((T9Q,RP)=>{var{webidl:b}=LQ(),{kEnumerableProperty:ZB}=YA(),{kConstruct:jP}=yA(),{MessagePort:t$A}=H("node:worker_threads");class SB extends Event{#A;constructor(A,Q={}){if(A===jP){super(arguments[1],arguments[2]);b.util.markAsUncloneable(this);return}let B="MessageEvent constructor";b.argumentLengthCheck(arguments,1,B),A=b.converters.DOMString(A,B,"type"),Q=b.converters.MessageEventInit(Q,B,"eventInitDict");super(A,Q);this.#A=Q,b.util.markAsUncloneable(this)}get data(){return b.brandCheck(this,SB),this.#A.data}get origin(){return b.brandCheck(this,SB),this.#A.origin}get lastEventId(){return b.brandCheck(this,SB),this.#A.lastEventId}get source(){return b.brandCheck(this,SB),this.#A.source}get ports(){if(b.brandCheck(this,SB),!Object.isFrozen(this.#A.ports))Object.freeze(this.#A.ports);return this.#A.ports}initMessageEvent(A,Q=!1,B=!1,I=null,C="",E="",Y=null,J=[]){return b.brandCheck(this,SB),b.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new SB(A,{bubbles:Q,cancelable:B,data:I,origin:C,lastEventId:E,source:Y,ports:J})}static createFastMessageEvent(A,Q){let B=new SB(jP,A,Q);return B.#A=Q,B.#A.data??=null,B.#A.origin??="",B.#A.lastEventId??="",B.#A.source??=null,B.#A.ports??=[],B}}var{createFastMessageEvent:e$A}=SB;delete SB.createFastMessageEvent;class oJ extends Event{#A;constructor(A,Q={}){b.argumentLengthCheck(arguments,1,"CloseEvent constructor"),A=b.converters.DOMString(A,"CloseEvent constructor","type"),Q=b.converters.CloseEventInit(Q);super(A,Q);this.#A=Q,b.util.markAsUncloneable(this)}get wasClean(){return b.brandCheck(this,oJ),this.#A.wasClean}get code(){return b.brandCheck(this,oJ),this.#A.code}get reason(){return b.brandCheck(this,oJ),this.#A.reason}}class yE extends Event{#A;constructor(A,Q){b.argumentLengthCheck(arguments,1,"ErrorEvent constructor");super(A,Q);b.util.markAsUncloneable(this),A=b.converters.DOMString(A,"ErrorEvent constructor","type"),Q=b.converters.ErrorEventInit(Q??{}),this.#A=Q}get message(){return b.brandCheck(this,yE),this.#A.message}get filename(){return b.brandCheck(this,yE),this.#A.filename}get lineno(){return b.brandCheck(this,yE),this.#A.lineno}get colno(){return b.brandCheck(this,yE),this.#A.colno}get error(){return b.brandCheck(this,yE),this.#A.error}}Object.defineProperties(SB.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:ZB,origin:ZB,lastEventId:ZB,source:ZB,ports:ZB,initMessageEvent:ZB});Object.defineProperties(oJ.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:ZB,code:ZB,wasClean:ZB});Object.defineProperties(yE.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:ZB,filename:ZB,lineno:ZB,colno:ZB,error:ZB});b.converters.MessagePort=b.interfaceConverter(t$A);b.converters["sequence"]=b.sequenceConverter(b.converters.MessagePort);var p5=[{key:"bubbles",converter:b.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:b.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:b.converters.boolean,defaultValue:()=>!1}];b.converters.MessageEventInit=b.dictionaryConverter([...p5,{key:"data",converter:b.converters.any,defaultValue:()=>null},{key:"origin",converter:b.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:b.converters.DOMString,defaultValue:()=>""},{key:"source",converter:b.nullableConverter(b.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:b.converters["sequence"],defaultValue:()=>[]}]);b.converters.CloseEventInit=b.dictionaryConverter([...p5,{key:"wasClean",converter:b.converters.boolean,defaultValue:()=>!1},{key:"code",converter:b.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:b.converters.USVString,defaultValue:()=>""}]);b.converters.ErrorEventInit=b.dictionaryConverter([...p5,{key:"message",converter:b.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:b.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:b.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:b.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:b.converters.any}]);RP.exports={MessageEvent:SB,CloseEvent:oJ,ErrorEvent:yE,createFastMessageEvent:e$A}});var e0=X((P9Q,qP)=>{var AHA={enumerable:!0,writable:!1,configurable:!1},QHA={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},BHA={NOT_SENT:0,PROCESSING:1,SENT:2},IHA={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},CHA={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},EHA=Buffer.allocUnsafe(0),YHA={string:1,typedArray:2,arrayBuffer:3,blob:4};qP.exports={uid:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",sentCloseFrameState:BHA,staticPropertyDescriptors:AHA,states:QHA,opcodes:IHA,maxUnsigned16Bit:65535,parserStates:CHA,emptyBuffer:EHA,sendHints:YHA}});var MD=X((k9Q,OP)=>{OP.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var jD=X((S9Q,_P)=>{var{kReadyState:LD,kController:JHA,kResponse:FHA,kBinaryType:GHA,kWebSocketURL:DHA}=MD(),{states:ND,opcodes:hE}=e0(),{ErrorEvent:ZHA,createFastMessageEvent:WHA}=aJ(),{isUtf8:UHA}=H("node:buffer"),{collectASequenceOfCodePointsFast:XHA,removeHTTPWhitespace:TP}=JB();function wHA(A){return A[LD]===ND.CONNECTING}function KHA(A){return A[LD]===ND.OPEN}function VHA(A){return A[LD]===ND.CLOSING}function zHA(A){return A[LD]===ND.CLOSED}function i5(A,Q,B=(C,E)=>new Event(C,E),I={}){let C=B(A,I);Q.dispatchEvent(C)}function $HA(A,Q,B){if(A[LD]!==ND.OPEN)return;let I;if(Q===hE.TEXT)try{I=fP(B)}catch{kP(A,"Received invalid UTF-8 in text frame.");return}else if(Q===hE.BINARY)if(A[GHA]==="blob")I=new Blob([B]);else I=HHA(B);i5("message",A,WHA,{origin:A[DHA].origin,data:I})}function HHA(A){if(A.byteLength===A.buffer.byteLength)return A.buffer;return A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength)}function MHA(A){if(A.length===0)return!1;for(let Q=0;Q126||B===34||B===40||B===41||B===44||B===47||B===58||B===59||B===60||B===61||B===62||B===63||B===64||B===91||B===92||B===93||B===123||B===125)return!1}return!0}function LHA(A){if(A>=1000&&A<1015)return A!==1004&&A!==1005&&A!==1006;return A>=3000&&A<=4999}function kP(A,Q){let{[JHA]:B,[FHA]:I}=A;if(B.abort(),I?.socket&&!I.socket.destroyed)I.socket.destroy();if(Q)i5("error",A,(C,E)=>new ZHA(C,E),{error:Error(Q),message:Q})}function SP(A){return A===hE.CLOSE||A===hE.PING||A===hE.PONG}function gP(A){return A===hE.CONTINUATION}function yP(A){return A===hE.TEXT||A===hE.BINARY}function NHA(A){return yP(A)||gP(A)||SP(A)}function jHA(A){let Q={position:0},B=new Map;while(Q.position57)return!1}let Q=Number.parseInt(A,10);return Q>=8&&Q<=15}var hP=typeof process.versions.icu==="string",PP=hP?new TextDecoder("utf-8",{fatal:!0}):void 0,fP=hP?PP.decode.bind(PP):function(A){if(UHA(A))return A.toString("utf-8");throw TypeError("Invalid utf-8 received.")};_P.exports={isConnecting:wHA,isEstablished:KHA,isClosing:VHA,isClosed:zHA,fireEvent:i5,isValidSubprotocol:MHA,isValidStatusCode:LHA,failWebsocketConnection:kP,websocketMessageReceived:$HA,utf8Decode:fP,isControlFrame:SP,isContinuationFrame:gP,isTextBinaryFrame:yP,isValidOpcode:NHA,parseExtensions:jHA,isValidClientWindowBits:RHA}});var mU=X((g9Q,xP)=>{var{maxUnsigned16Bit:qHA}=e0(),n5,RD=null,sJ=16386;try{n5=H("node:crypto")}catch{n5={randomFillSync:function(Q,B,I){for(let C=0;CqHA)E+=8,C=127;else if(I>125)E+=2,C=126;let Y=Buffer.allocUnsafe(I+E);Y[0]=Y[1]=0,Y[0]|=128,Y[0]=(Y[0]&240)+A;/*! ws. MIT License. Einar Otto Stangvik */if(Y[E-4]=B[0],Y[E-3]=B[1],Y[E-2]=B[2],Y[E-1]=B[3],Y[1]=C,C===126)Y.writeUInt16BE(I,2);else if(C===127)Y[2]=Y[3]=0,Y.writeUIntBE(I,4,6);Y[1]|=128;for(let J=0;J{var{uid:THA,states:qD,sentCloseFrameState:dU,emptyBuffer:PHA,opcodes:kHA}=e0(),{kReadyState:OD,kSentClose:cU,kByteParser:mP,kReceivedClose:bP,kResponse:dP}=MD(),{fireEvent:SHA,failWebsocketConnection:fE,isClosing:gHA,isClosed:yHA,isEstablished:hHA,parseExtensions:fHA}=jD(),{channels:rJ}=GJ(),{CloseEvent:_HA}=aJ(),{makeRequest:vHA}=uJ(),{fetching:xHA}=KD(),{Headers:bHA,getHeadersList:mHA}=o0(),{getDecodeSplit:dHA}=jB(),{WebsocketFrameSend:cHA}=mU(),o5;try{o5=H("node:crypto")}catch{}function uHA(A,Q,B,I,C,E){let Y=A;Y.protocol=A.protocol==="ws:"?"http:":"https:";let J=vHA({urlList:[Y],client:B,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(E.headers){let Z=mHA(new bHA(E.headers));J.headersList=Z}let F=o5.randomBytes(16).toString("base64");J.headersList.append("sec-websocket-key",F),J.headersList.append("sec-websocket-version","13");for(let Z of Q)J.headersList.append("sec-websocket-protocol",Z);let G="permessage-deflate; client_max_window_bits";return J.headersList.append("sec-websocket-extensions",G),xHA({request:J,useParallelQueue:!0,dispatcher:E.dispatcher,processResponse(Z){if(Z.type==="error"||Z.status!==101){fE(I,"Received network error or non-101 status code.");return}if(Q.length!==0&&!Z.headersList.get("Sec-WebSocket-Protocol")){fE(I,"Server did not respond with sent protocols.");return}if(Z.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){fE(I,'Server did not set Upgrade header to "websocket".');return}if(Z.headersList.get("Connection")?.toLowerCase()!=="upgrade"){fE(I,'Server did not set Connection header to "upgrade".');return}let W=Z.headersList.get("Sec-WebSocket-Accept"),U=o5.createHash("sha1").update(F+THA).digest("base64");if(W!==U){fE(I,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let w=Z.headersList.get("Sec-WebSocket-Extensions"),K;if(w!==null){if(K=fHA(w),!K.has("permessage-deflate")){fE(I,"Sec-WebSocket-Extensions header does not match.");return}}let V=Z.headersList.get("Sec-WebSocket-Protocol");if(V!==null){if(!dHA("sec-websocket-protocol",J.headersList).includes(V)){fE(I,"Protocol was not set in the opening handshake.");return}}if(Z.socket.on("data",cP),Z.socket.on("close",uP),Z.socket.on("error",lP),rJ.open.hasSubscribers)rJ.open.publish({address:Z.socket.address(),protocol:V,extensions:w});C(Z,K)}})}function lHA(A,Q,B,I){if(gHA(A)||yHA(A));else if(!hHA(A))fE(A,"Connection was closed before it was established."),A[OD]=qD.CLOSING;else if(A[cU]===dU.NOT_SENT){A[cU]=dU.PROCESSING;let C=new cHA;if(Q!==void 0&&B===void 0)C.frameData=Buffer.allocUnsafe(2),C.frameData.writeUInt16BE(Q,0);else if(Q!==void 0&&B!==void 0)C.frameData=Buffer.allocUnsafe(2+I),C.frameData.writeUInt16BE(Q,0),C.frameData.write(B,2,"utf-8");else C.frameData=PHA;A[dP].socket.write(C.createFrame(kHA.CLOSE)),A[cU]=dU.SENT,A[OD]=qD.CLOSING}else A[OD]=qD.CLOSING}function cP(A){if(!this.ws[mP].write(A))this.pause()}function uP(){let{ws:A}=this,{[dP]:Q}=A;Q.socket.off("data",cP),Q.socket.off("close",uP),Q.socket.off("error",lP);let B=A[cU]===dU.SENT&&A[bP],I=1005,C="",E=A[mP].closingInfo;if(E&&!E.error)I=E.code??1005,C=E.reason;else if(!A[bP])I=1006;if(A[OD]=qD.CLOSED,SHA("close",A,(Y,J)=>new _HA(Y,J),{wasClean:B,code:I,reason:C}),rJ.close.hasSubscribers)rJ.close.publish({websocket:A,code:I,reason:C})}function lP(A){let{ws:Q}=this;if(Q[OD]=qD.CLOSING,rJ.socketError.hasSubscribers)rJ.socketError.publish(A);this.destroy()}pP.exports={establishWebSocketConnection:uHA,closeWebSocketConnection:lHA}});var aP=X((h9Q,oP)=>{var{createInflateRaw:pHA,Z_DEFAULT_WINDOWBITS:iHA}=H("node:zlib"),{isValidClientWindowBits:nHA}=jD(),{MessageSizeExceededError:iP}=UA(),oHA=Buffer.from([0,0,255,255]),uU=Symbol("kBuffer"),TD=Symbol("kLength");class nP{#A;#Q={};#C=!1;#B=null;constructor(A){this.#Q.serverNoContextTakeover=A.has("server_no_context_takeover"),this.#Q.serverMaxWindowBits=A.get("server_max_window_bits")}decompress(A,Q,B){if(this.#C){B(new iP);return}if(!this.#A){let I=iHA;if(this.#Q.serverMaxWindowBits){if(!nHA(this.#Q.serverMaxWindowBits)){B(Error("Invalid server_max_window_bits"));return}I=Number.parseInt(this.#Q.serverMaxWindowBits)}try{this.#A=pHA({windowBits:I})}catch(C){B(C);return}this.#A[uU]=[],this.#A[TD]=0,this.#A.on("data",(C)=>{if(this.#C)return;if(this.#A[TD]+=C.length,this.#A[TD]>4194304){if(this.#C=!0,this.#A.removeAllListeners(),this.#A.destroy(),this.#A=null,this.#B){let E=this.#B;this.#B=null,E(new iP)}return}this.#A[uU].push(C)}),this.#A.on("error",(C)=>{this.#A=null,B(C)})}if(this.#B=B,this.#A.write(A),Q)this.#A.write(oHA);this.#A.flush(()=>{if(this.#C||!this.#A)return;let I=Buffer.concat(this.#A[uU],this.#A[TD]);this.#A[uU].length=0,this.#A[TD]=0,this.#B=null,B(null,I)})}}oP.exports={PerMessageDeflate:nP}});var Yk=X((f9Q,Ek)=>{var{Writable:aHA}=H("node:stream"),sHA=H("node:assert"),{parserStates:WB,opcodes:tJ,states:rHA,emptyBuffer:sP,sentCloseFrameState:rP}=e0(),{kReadyState:tHA,kSentClose:tP,kResponse:eP,kReceivedClose:Ak}=MD(),{channels:lU}=GJ(),{isValidStatusCode:eHA,isValidOpcode:AMA,failWebsocketConnection:gB,websocketMessageReceived:Qk,utf8Decode:QMA,isControlFrame:Bk,isTextBinaryFrame:s5,isContinuationFrame:BMA}=jD(),{WebsocketFrameSend:Ik}=mU(),{closeWebSocketConnection:IMA}=a5(),{PerMessageDeflate:CMA}=aP();class Ck extends aHA{#A=[];#Q=0;#C=!1;#B=WB.INFO;#I={};#E=[];#Y;constructor(A,Q){super();if(this.ws=A,this.#Y=Q==null?new Map:Q,this.#Y.has("permessage-deflate"))this.#Y.set("permessage-deflate",new CMA(Q))}_write(A,Q,B){this.#A.push(A),this.#Q+=A.length,this.#C=!0,this.run(B)}run(A){while(this.#C)if(this.#B===WB.INFO){if(this.#Q<2)return A();let Q=this.consume(2),B=(Q[0]&128)!==0,I=Q[0]&15,C=(Q[1]&128)===128,E=!B&&I!==tJ.CONTINUATION,Y=Q[1]&127,J=Q[0]&64,F=Q[0]&32,G=Q[0]&16;if(!AMA(I))return gB(this.ws,"Invalid opcode received"),A();if(C)return gB(this.ws,"Frame cannot be masked"),A();if(J!==0&&!this.#Y.has("permessage-deflate")){gB(this.ws,"Expected RSV1 to be clear.");return}if(F!==0||G!==0){gB(this.ws,"RSV1, RSV2, RSV3 must be clear");return}if(E&&!s5(I)){gB(this.ws,"Invalid frame type was fragmented.");return}if(s5(I)&&this.#E.length>0){gB(this.ws,"Expected continuation frame");return}if(this.#I.fragmented&&E){gB(this.ws,"Fragmented frame exceeded 125 bytes.");return}if((Y>125||E)&&Bk(I)){gB(this.ws,"Control frame either too large or fragmented");return}if(BMA(I)&&this.#E.length===0&&!this.#I.compressed){gB(this.ws,"Unexpected continuation frame");return}if(Y<=125)this.#I.payloadLength=Y,this.#B=WB.READ_DATA;else if(Y===126)this.#B=WB.PAYLOADLENGTH_16;else if(Y===127)this.#B=WB.PAYLOADLENGTH_64;if(s5(I))this.#I.binaryType=I,this.#I.compressed=J!==0;this.#I.opcode=I,this.#I.masked=C,this.#I.fin=B,this.#I.fragmented=E}else if(this.#B===WB.PAYLOADLENGTH_16){if(this.#Q<2)return A();let Q=this.consume(2);this.#I.payloadLength=Q.readUInt16BE(0),this.#B=WB.READ_DATA}else if(this.#B===WB.PAYLOADLENGTH_64){if(this.#Q<8)return A();let Q=this.consume(8),B=Q.readUInt32BE(0),I=Q.readUInt32BE(4);if(B!==0||I>2147483647){gB(this.ws,"Received payload length > 2^31 bytes.");return}this.#I.payloadLength=I,this.#B=WB.READ_DATA}else if(this.#B===WB.READ_DATA){if(this.#Q{if(B){gB(this.ws,B.message);return}if(this.#E.push(I),!this.#I.fin){this.#B=WB.INFO,this.#C=!0,this.run(A);return}Qk(this.ws,this.#I.binaryType,Buffer.concat(this.#E)),this.#C=!0,this.#B=WB.INFO,this.#E.length=0,this.run(A)}),this.#C=!1;break}}}consume(A){if(A>this.#Q)throw Error("Called consume() before buffers satiated.");else if(A===0)return sP;if(this.#A[0].length===A)return this.#Q-=this.#A[0].length,this.#A.shift();let Q=Buffer.allocUnsafe(A),B=0;while(B!==A){let I=this.#A[0],{length:C}=I;if(C+B===A){Q.set(this.#A.shift(),B);break}else if(C+B>A){Q.set(I.subarray(0,A-B),B),this.#A[0]=I.subarray(A-B);break}else Q.set(this.#A.shift(),B),B+=I.length}return this.#Q-=A,Q}parseCloseBody(A){sHA(A.length!==1);let Q;if(A.length>=2)Q=A.readUInt16BE(0);if(Q!==void 0&&!eHA(Q))return{code:1002,reason:"Invalid status code",error:!0};let B=A.subarray(2);if(B[0]===239&&B[1]===187&&B[2]===191)B=B.subarray(3);try{B=QMA(B)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:Q,reason:B,error:!1}}parseControlFrame(A){let{opcode:Q,payloadLength:B}=this.#I;if(Q===tJ.CLOSE){if(B===1)return gB(this.ws,"Received close frame with a 1-byte body."),!1;if(this.#I.closeInfo=this.parseCloseBody(A),this.#I.closeInfo.error){let{code:I,reason:C}=this.#I.closeInfo;return IMA(this.ws,I,C,C.length),gB(this.ws,C),!1}if(this.ws[tP]!==rP.SENT){let I=sP;if(this.#I.closeInfo.code)I=Buffer.allocUnsafe(2),I.writeUInt16BE(this.#I.closeInfo.code,0);let C=new Ik(I);this.ws[eP].socket.write(C.createFrame(tJ.CLOSE),(E)=>{if(!E)this.ws[tP]=rP.SENT})}return this.ws[tHA]=rHA.CLOSING,this.ws[Ak]=!0,!1}else if(Q===tJ.PING){if(!this.ws[Ak]){let I=new Ik(A);if(this.ws[eP].socket.write(I.createFrame(tJ.PONG)),lU.ping.hasSubscribers)lU.ping.publish({payload:A})}}else if(Q===tJ.PONG){if(lU.pong.hasSubscribers)lU.pong.publish({payload:A})}return!0}get closingInfo(){return this.#I.closeInfo}}Ek.exports={ByteParser:Ck}});var Wk=X((_9Q,Zk)=>{var{WebsocketFrameSend:EMA}=mU(),{opcodes:Jk,sendHints:eJ}=e0(),YMA=y4(),Fk=Buffer[Symbol.species];class Dk{#A=new YMA;#Q=!1;#C;constructor(A){this.#C=A}add(A,Q,B){if(B!==eJ.blob){let C=Gk(A,B);if(!this.#Q)this.#C.write(C,Q);else{let E={promise:null,callback:Q,frame:C};this.#A.push(E)}return}let I={promise:A.arrayBuffer().then((C)=>{I.promise=null,I.frame=Gk(C,B)}),callback:Q,frame:null};if(this.#A.push(I),!this.#Q)this.#B()}async#B(){this.#Q=!0;let A=this.#A;while(!A.isEmpty()){let Q=A.shift();if(Q.promise!==null)await Q.promise;this.#C.write(Q.frame,Q.callback),Q.callback=Q.frame=null}this.#Q=!1}}function Gk(A,Q){return new EMA(JMA(A,Q)).createFrame(Q===eJ.string?Jk.TEXT:Jk.BINARY)}function JMA(A,Q){switch(Q){case eJ.string:return Buffer.from(A);case eJ.arrayBuffer:case eJ.blob:return new Fk(A);case eJ.typedArray:return new Fk(A.buffer,A.byteOffset,A.byteLength)}}Zk.exports={SendQueue:Dk}});var Mk=X((v9Q,Hk)=>{var{webidl:a}=LQ(),{URLSerializer:FMA}=JB(),{environmentSettingsObject:Uk}=jB(),{staticPropertyDescriptors:_E,states:PD,sentCloseFrameState:GMA,sendHints:pU}=e0(),{kWebSocketURL:Xk,kReadyState:r5,kController:DMA,kBinaryType:iU,kResponse:wk,kSentClose:ZMA,kByteParser:WMA}=MD(),{isConnecting:UMA,isEstablished:XMA,isClosing:wMA,isValidSubprotocol:KMA,fireEvent:Kk}=jD(),{establishWebSocketConnection:VMA,closeWebSocketConnection:Vk}=a5(),{ByteParser:zMA}=Yk(),{kEnumerableProperty:BI,isBlobLike:zk}=YA(),{getGlobalDispatcher:$MA}=UU(),{types:$k}=H("node:util"),{ErrorEvent:HMA,CloseEvent:MMA}=aJ(),{SendQueue:LMA}=Wk();class VA extends EventTarget{#A={open:null,error:null,close:null,message:null};#Q=0;#C="";#B="";#I;constructor(A,Q=[]){super();a.util.markAsUncloneable(this);let B="WebSocket constructor";a.argumentLengthCheck(arguments,1,B);let I=a.converters["DOMString or sequence or WebSocketInit"](Q,B,"options");A=a.converters.USVString(A,B,"url"),Q=I.protocols;let C=Uk.settingsObject.baseUrl,E;try{E=new URL(A,C)}catch(J){throw new DOMException(J,"SyntaxError")}if(E.protocol==="http:")E.protocol="ws:";else if(E.protocol==="https:")E.protocol="wss:";if(E.protocol!=="ws:"&&E.protocol!=="wss:")throw new DOMException(`Expected a ws: or wss: protocol, got ${E.protocol}`,"SyntaxError");if(E.hash||E.href.endsWith("#"))throw new DOMException("Got fragment","SyntaxError");if(typeof Q==="string")Q=[Q];if(Q.length!==new Set(Q.map((J)=>J.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(Q.length>0&&!Q.every((J)=>KMA(J)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[Xk]=new URL(E.href);let Y=Uk.settingsObject;this[DMA]=VMA(E,Q,Y,this,(J,F)=>this.#E(J,F),I),this[r5]=VA.CONNECTING,this[ZMA]=GMA.NOT_SENT,this[iU]="blob"}close(A=void 0,Q=void 0){a.brandCheck(this,VA);let B="WebSocket.close";if(A!==void 0)A=a.converters["unsigned short"](A,B,"code",{clamp:!0});if(Q!==void 0)Q=a.converters.USVString(Q,B,"reason");if(A!==void 0){if(A!==1000&&(A<3000||A>4999))throw new DOMException("invalid code","InvalidAccessError")}let I=0;if(Q!==void 0){if(I=Buffer.byteLength(Q),I>123)throw new DOMException(`Reason must be less than 123 bytes; received ${I}`,"SyntaxError")}Vk(this,A,Q,I)}send(A){a.brandCheck(this,VA);let Q="WebSocket.send";if(a.argumentLengthCheck(arguments,1,Q),A=a.converters.WebSocketSendData(A,Q,"data"),UMA(this))throw new DOMException("Sent before connected.","InvalidStateError");if(!XMA(this)||wMA(this))return;if(typeof A==="string"){let B=Buffer.byteLength(A);this.#Q+=B,this.#I.add(A,()=>{this.#Q-=B},pU.string)}else if($k.isArrayBuffer(A))this.#Q+=A.byteLength,this.#I.add(A,()=>{this.#Q-=A.byteLength},pU.arrayBuffer);else if(ArrayBuffer.isView(A))this.#Q+=A.byteLength,this.#I.add(A,()=>{this.#Q-=A.byteLength},pU.typedArray);else if(zk(A))this.#Q+=A.size,this.#I.add(A,()=>{this.#Q-=A.size},pU.blob)}get readyState(){return a.brandCheck(this,VA),this[r5]}get bufferedAmount(){return a.brandCheck(this,VA),this.#Q}get url(){return a.brandCheck(this,VA),FMA(this[Xk])}get extensions(){return a.brandCheck(this,VA),this.#B}get protocol(){return a.brandCheck(this,VA),this.#C}get onopen(){return a.brandCheck(this,VA),this.#A.open}set onopen(A){if(a.brandCheck(this,VA),this.#A.open)this.removeEventListener("open",this.#A.open);if(typeof A==="function")this.#A.open=A,this.addEventListener("open",A);else this.#A.open=null}get onerror(){return a.brandCheck(this,VA),this.#A.error}set onerror(A){if(a.brandCheck(this,VA),this.#A.error)this.removeEventListener("error",this.#A.error);if(typeof A==="function")this.#A.error=A,this.addEventListener("error",A);else this.#A.error=null}get onclose(){return a.brandCheck(this,VA),this.#A.close}set onclose(A){if(a.brandCheck(this,VA),this.#A.close)this.removeEventListener("close",this.#A.close);if(typeof A==="function")this.#A.close=A,this.addEventListener("close",A);else this.#A.close=null}get onmessage(){return a.brandCheck(this,VA),this.#A.message}set onmessage(A){if(a.brandCheck(this,VA),this.#A.message)this.removeEventListener("message",this.#A.message);if(typeof A==="function")this.#A.message=A,this.addEventListener("message",A);else this.#A.message=null}get binaryType(){return a.brandCheck(this,VA),this[iU]}set binaryType(A){if(a.brandCheck(this,VA),A!=="blob"&&A!=="arraybuffer")this[iU]="blob";else this[iU]=A}#E(A,Q){this[wk]=A;let B=new zMA(this,Q);B.on("drain",NMA),B.on("error",jMA.bind(this)),A.socket.ws=this,this[WMA]=B,this.#I=new LMA(A.socket),this[r5]=PD.OPEN;let I=A.headersList.get("sec-websocket-extensions");if(I!==null)this.#B=I;let C=A.headersList.get("sec-websocket-protocol");if(C!==null)this.#C=C;Kk("open",this)}}VA.CONNECTING=VA.prototype.CONNECTING=PD.CONNECTING;VA.OPEN=VA.prototype.OPEN=PD.OPEN;VA.CLOSING=VA.prototype.CLOSING=PD.CLOSING;VA.CLOSED=VA.prototype.CLOSED=PD.CLOSED;Object.defineProperties(VA.prototype,{CONNECTING:_E,OPEN:_E,CLOSING:_E,CLOSED:_E,url:BI,readyState:BI,bufferedAmount:BI,onopen:BI,onerror:BI,onclose:BI,close:BI,onmessage:BI,binaryType:BI,send:BI,extensions:BI,protocol:BI,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(VA,{CONNECTING:_E,OPEN:_E,CLOSING:_E,CLOSED:_E});a.converters["sequence"]=a.sequenceConverter(a.converters.DOMString);a.converters["DOMString or sequence"]=function(A,Q,B){if(a.util.Type(A)==="Object"&&Symbol.iterator in A)return a.converters["sequence"](A);return a.converters.DOMString(A,Q,B)};a.converters.WebSocketInit=a.dictionaryConverter([{key:"protocols",converter:a.converters["DOMString or sequence"],defaultValue:()=>[]},{key:"dispatcher",converter:a.converters.any,defaultValue:()=>$MA()},{key:"headers",converter:a.nullableConverter(a.converters.HeadersInit)}]);a.converters["DOMString or sequence or WebSocketInit"]=function(A){if(a.util.Type(A)==="Object"&&!(Symbol.iterator in A))return a.converters.WebSocketInit(A);return{protocols:a.converters["DOMString or sequence"](A)}};a.converters.WebSocketSendData=function(A){if(a.util.Type(A)==="Object"){if(zk(A))return a.converters.Blob(A,{strict:!1});if(ArrayBuffer.isView(A)||$k.isArrayBuffer(A))return a.converters.BufferSource(A)}return a.converters.USVString(A)};function NMA(){this.ws[wk].socket.resume()}function jMA(A){let Q,B;if(A instanceof MMA)Q=A.reason,B=A.code;else Q=A.message;Kk("error",this,()=>new HMA("error",{error:A,message:Q})),Vk(this,B)}Hk.exports={WebSocket:VA}});var t5=X((x9Q,Lk)=>{function RMA(A){return A.indexOf("\x00")===-1}function qMA(A){if(A.length===0)return!1;for(let Q=0;Q57)return!1;return!0}function OMA(A){return new Promise((Q)=>{setTimeout(Q,A).unref()})}Lk.exports={isValidLastEventId:RMA,isASCIINumber:qMA,delay:OMA}});var Ok=X((b9Q,qk)=>{var{Transform:TMA}=H("node:stream"),{isASCIINumber:Nk,isValidLastEventId:jk}=t5(),xC=[239,187,191];class Rk extends TMA{state=null;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(A={}){A.readableObjectMode=!0;super(A);if(this.state=A.eventSourceSettings||{},A.push)this.push=A.push}_transform(A,Q,B){if(A.length===0){B();return}if(this.buffer)this.buffer=Buffer.concat([this.buffer,A]);else this.buffer=A;if(this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===xC[0]){B();return}this.checkBOM=!1,B();return;case 2:if(this.buffer[0]===xC[0]&&this.buffer[1]===xC[1]){B();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===xC[0]&&this.buffer[1]===xC[1]&&this.buffer[2]===xC[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,B();return}this.checkBOM=!1;break;default:if(this.buffer[0]===xC[0]&&this.buffer[1]===xC[1]&&this.buffer[2]===xC[2])this.buffer=this.buffer.subarray(3);this.checkBOM=!1;break}while(this.pos0)Q[I]=C;break}}processEvent(A){if(A.retry&&Nk(A.retry))this.state.reconnectionTime=parseInt(A.retry,10);if(A.id&&jk(A.id))this.state.lastEventId=A.id;if(A.data!==void 0)this.push({type:A.event||"message",options:{data:A.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}}qk.exports={EventSourceStream:Rk}});var fk=X((m9Q,hk)=>{var{pipeline:PMA}=H("node:stream"),{fetching:kMA}=KD(),{makeRequest:SMA}=uJ(),{webidl:bC}=LQ(),{EventSourceStream:gMA}=Ok(),{parseMIMEType:yMA}=JB(),{createFastMessageEvent:hMA}=aJ(),{isNetworkError:Tk}=XD(),{delay:fMA}=t5(),{kEnumerableProperty:AY}=YA(),{environmentSettingsObject:Pk}=jB(),kk=!1,Sk=3000,kD=0,gk=1,SD=2,_MA="anonymous",vMA="use-credentials";class AF extends EventTarget{#A={open:null,error:null,message:null};#Q=null;#C=!1;#B=kD;#I=null;#E=null;#Y;#J;constructor(A,Q={}){super();bC.util.markAsUncloneable(this);let B="EventSource constructor";if(bC.argumentLengthCheck(arguments,1,B),!kk)kk=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"});A=bC.converters.USVString(A,B,"url"),Q=bC.converters.EventSourceInitDict(Q,B,"eventSourceInitDict"),this.#Y=Q.dispatcher,this.#J={lastEventId:"",reconnectionTime:Sk};let I=Pk,C;try{C=new URL(A,I.settingsObject.baseUrl),this.#J.origin=C.origin}catch(J){throw new DOMException(J,"SyntaxError")}this.#Q=C.href;let E=_MA;if(Q.withCredentials)E=vMA,this.#C=!0;let Y={redirect:"follow",keepalive:!0,mode:"cors",credentials:E==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};Y.client=Pk.settingsObject,Y.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],Y.cache="no-store",Y.initiator="other",Y.urlList=[new URL(this.#Q)],this.#I=SMA(Y),this.#F()}get readyState(){return this.#B}get url(){return this.#Q}get withCredentials(){return this.#C}#F(){if(this.#B===SD)return;this.#B=kD;let A={request:this.#I,dispatcher:this.#Y},Q=(B)=>{if(Tk(B))this.dispatchEvent(new Event("error")),this.close();this.#G()};A.processResponseEndOfBody=Q,A.processResponse=(B)=>{if(Tk(B))if(B.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#G();return}let I=B.headersList.get("content-type",!0),C=I!==null?yMA(I):"failure",E=C!=="failure"&&C.essence==="text/event-stream";if(B.status!==200||E===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#B=gk,this.dispatchEvent(new Event("open")),this.#J.origin=B.urlList[B.urlList.length-1].origin;let Y=new gMA({eventSourceSettings:this.#J,push:(J)=>{this.dispatchEvent(hMA(J.type,J.options))}});PMA(B.body.stream,Y,(J)=>{if(J?.aborted===!1)this.close(),this.dispatchEvent(new Event("error"))})},this.#E=kMA(A)}async#G(){if(this.#B===SD)return;if(this.#B=kD,this.dispatchEvent(new Event("error")),await fMA(this.#J.reconnectionTime),this.#B!==kD)return;if(this.#J.lastEventId.length)this.#I.headersList.set("last-event-id",this.#J.lastEventId,!0);this.#F()}close(){if(bC.brandCheck(this,AF),this.#B===SD)return;this.#B=SD,this.#E.abort(),this.#I=null}get onopen(){return this.#A.open}set onopen(A){if(this.#A.open)this.removeEventListener("open",this.#A.open);if(typeof A==="function")this.#A.open=A,this.addEventListener("open",A);else this.#A.open=null}get onmessage(){return this.#A.message}set onmessage(A){if(this.#A.message)this.removeEventListener("message",this.#A.message);if(typeof A==="function")this.#A.message=A,this.addEventListener("message",A);else this.#A.message=null}get onerror(){return this.#A.error}set onerror(A){if(this.#A.error)this.removeEventListener("error",this.#A.error);if(typeof A==="function")this.#A.error=A,this.addEventListener("error",A);else this.#A.error=null}}var yk={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:kD,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:gk,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:SD,writable:!1}};Object.defineProperties(AF,yk);Object.defineProperties(AF.prototype,yk);Object.defineProperties(AF.prototype,{close:AY,onerror:AY,onmessage:AY,onopen:AY,readyState:AY,url:AY,withCredentials:AY});bC.converters.EventSourceInitDict=bC.dictionaryConverter([{key:"withCredentials",converter:bC.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:bC.converters.any}]);hk.exports={EventSource:AF,defaultReconnectionTime:Sk}});var KK=X((FS)=>{Object.defineProperty(FS,"__esModule",{value:!0});FS.VERSION=void 0;FS.VERSION="1.9.1"});var XS=X((WS)=>{Object.defineProperty(WS,"__esModule",{value:!0});WS.isCompatible=WS._makeCompatibilityCheck=void 0;var hLA=KK(),DS=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function ZS(A){let Q=new Set([A]),B=new Set,I=A.match(DS);if(!I)return()=>!1;let C={major:+I[1],minor:+I[2],patch:+I[3],prerelease:I[4]};if(C.prerelease!=null)return function(F){return F===A};function E(J){return B.add(J),!1}function Y(J){return Q.add(J),!0}return function(F){if(Q.has(F))return!0;if(B.has(F))return!1;let G=F.match(DS);if(!G)return E(F);let D={major:+G[1],minor:+G[2],patch:+G[3],prerelease:G[4]};if(D.prerelease!=null)return E(F);if(C.major!==D.major)return E(F);if(C.major===0){if(C.minor===D.minor&&C.patch<=D.patch)return Y(F);return E(F)}if(C.minor<=D.minor)return Y(F);return E(F)}}WS._makeCompatibilityCheck=ZS;WS.isCompatible=ZS(hLA.VERSION)});var IY=X((wS)=>{Object.defineProperty(wS,"__esModule",{value:!0});wS.unregisterGlobal=wS.getGlobal=wS.registerGlobal=void 0;var BF=KK(),_LA=XS(),vLA=BF.VERSION.split(".")[0],hD=Symbol.for(`opentelemetry.js.api.${vLA}`),fD=typeof globalThis==="object"?globalThis:typeof self==="object"?self:typeof window==="object"?window:typeof global==="object"?global:{};function xLA(A,Q,B,I=!1){var C;let E=fD[hD]=(C=fD[hD])!==null&&C!==void 0?C:{version:BF.VERSION};if(!I&&E[A]){let Y=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${A}`);return B.error(Y.stack||Y.message),!1}if(E.version!==BF.VERSION){let Y=Error(`@opentelemetry/api: Registration of version v${E.version} for ${A} does not match previously registered API v${BF.VERSION}`);return B.error(Y.stack||Y.message),!1}return E[A]=Q,B.debug(`@opentelemetry/api: Registered a global for ${A} v${BF.VERSION}.`),!0}wS.registerGlobal=xLA;function bLA(A){var Q,B;let I=(Q=fD[hD])===null||Q===void 0?void 0:Q.version;if(!I||!(0,_LA.isCompatible)(I))return;return(B=fD[hD])===null||B===void 0?void 0:B[A]}wS.getGlobal=bLA;function mLA(A,Q){Q.debug(`@opentelemetry/api: Unregistering a global for ${A} v${BF.VERSION}.`);let B=fD[hD];if(B)delete B[A]}wS.unregisterGlobal=mLA});var HS=X((zS)=>{Object.defineProperty(zS,"__esModule",{value:!0});zS.DiagComponentLogger=void 0;var uLA=IY();class VS{constructor(A){this._namespace=A.namespace||"DiagComponentLogger"}debug(...A){return _D("debug",this._namespace,A)}error(...A){return _D("error",this._namespace,A)}info(...A){return _D("info",this._namespace,A)}warn(...A){return _D("warn",this._namespace,A)}verbose(...A){return _D("verbose",this._namespace,A)}}zS.DiagComponentLogger=VS;function _D(A,Q,B){let I=(0,uLA.getGlobal)("diag");if(!I)return;return I[A](Q,...B)}});var B1=X((MS)=>{Object.defineProperty(MS,"__esModule",{value:!0});MS.DiagLogLevel=void 0;var lLA;(function(A){A[A.NONE=0]="NONE",A[A.ERROR=30]="ERROR",A[A.WARN=50]="WARN",A[A.INFO=60]="INFO",A[A.DEBUG=70]="DEBUG",A[A.VERBOSE=80]="VERBOSE",A[A.ALL=9999]="ALL"})(lLA=MS.DiagLogLevel||(MS.DiagLogLevel={}))});var jS=X((LS)=>{Object.defineProperty(LS,"__esModule",{value:!0});LS.createLogLevelDiagLogger=void 0;var mC=B1();function pLA(A,Q){if(AmC.DiagLogLevel.ALL)A=mC.DiagLogLevel.ALL;Q=Q||{};function B(I,C){let E=Q[I];if(typeof E==="function"&&A>=C)return E.bind(Q);return function(){}}return{error:B("error",mC.DiagLogLevel.ERROR),warn:B("warn",mC.DiagLogLevel.WARN),info:B("info",mC.DiagLogLevel.INFO),debug:B("debug",mC.DiagLogLevel.DEBUG),verbose:B("verbose",mC.DiagLogLevel.VERBOSE)}}LS.createLogLevelDiagLogger=pLA});var CY=X((qS)=>{Object.defineProperty(qS,"__esModule",{value:!0});qS.DiagAPI=void 0;var iLA=HS(),nLA=jS(),RS=B1(),I1=IY(),oLA="diag";class zK{static instance(){if(!this._instance)this._instance=new zK;return this._instance}constructor(){function A(I){return function(...C){let E=(0,I1.getGlobal)("diag");if(!E)return;return E[I](...C)}}let Q=this,B=(I,C={logLevel:RS.DiagLogLevel.INFO})=>{var E,Y,J;if(I===Q){let D=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return Q.error((E=D.stack)!==null&&E!==void 0?E:D.message),!1}if(typeof C==="number")C={logLevel:C};let F=(0,I1.getGlobal)("diag"),G=(0,nLA.createLogLevelDiagLogger)((Y=C.logLevel)!==null&&Y!==void 0?Y:RS.DiagLogLevel.INFO,I);if(F&&!C.suppressOverrideMessage){let D=(J=Error().stack)!==null&&J!==void 0?J:"";F.warn(`Current logger will be overwritten from ${D}`),G.warn(`Current logger will overwrite one already registered from ${D}`)}return(0,I1.registerGlobal)("diag",G,Q,!0)};Q.setLogger=B,Q.disable=()=>{(0,I1.unregisterGlobal)(oLA,Q)},Q.createComponentLogger=(I)=>{return new iLA.DiagComponentLogger(I)},Q.verbose=A("verbose"),Q.debug=A("debug"),Q.info=A("info"),Q.warn=A("warn"),Q.error=A("error")}}qS.DiagAPI=zK});var kS=X((TS)=>{Object.defineProperty(TS,"__esModule",{value:!0});TS.BaggageImpl=void 0;class IF{constructor(A){this._entries=A?new Map(A):new Map}getEntry(A){let Q=this._entries.get(A);if(!Q)return;return Object.assign({},Q)}getAllEntries(){return Array.from(this._entries.entries())}setEntry(A,Q){let B=new IF(this._entries);return B._entries.set(A,Q),B}removeEntry(A){let Q=new IF(this._entries);return Q._entries.delete(A),Q}removeEntries(...A){let Q=new IF(this._entries);for(let B of A)Q._entries.delete(B);return Q}clear(){return new IF}}TS.BaggageImpl=IF});var yS=X((SS)=>{Object.defineProperty(SS,"__esModule",{value:!0});SS.baggageEntryMetadataSymbol=void 0;SS.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")});var $K=X((hS)=>{Object.defineProperty(hS,"__esModule",{value:!0});hS.baggageEntryMetadataFromString=hS.createBaggage=void 0;var aLA=CY(),sLA=kS(),rLA=yS(),tLA=aLA.DiagAPI.instance();function eLA(A={}){return new sLA.BaggageImpl(new Map(Object.entries(A)))}hS.createBaggage=eLA;function A2A(A){if(typeof A!=="string")tLA.error(`Cannot create baggage metadata from unknown type: ${typeof A}`),A="";return{__TYPE__:rLA.baggageEntryMetadataSymbol,toString(){return A}}}hS.baggageEntryMetadataFromString=A2A});var vD=X((_S)=>{Object.defineProperty(_S,"__esModule",{value:!0});_S.ROOT_CONTEXT=_S.createContextKey=void 0;function B2A(A){return Symbol.for(A)}_S.createContextKey=B2A;class C1{constructor(A){let Q=this;Q._currentContext=A?new Map(A):new Map,Q.getValue=(B)=>Q._currentContext.get(B),Q.setValue=(B,I)=>{let C=new C1(Q._currentContext);return C._currentContext.set(B,I),C},Q.deleteValue=(B)=>{let I=new C1(Q._currentContext);return I._currentContext.delete(B),I}}}_S.ROOT_CONTEXT=new C1});var dS=X((bS)=>{Object.defineProperty(bS,"__esModule",{value:!0});bS.DiagConsoleLogger=bS._originalConsoleMethods=void 0;var HK=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];bS._originalConsoleMethods={};if(typeof console<"u"){let A=["error","warn","info","debug","trace","log"];for(let Q of A)if(typeof console[Q]==="function")bS._originalConsoleMethods[Q]=console[Q]}class xS{constructor(){function A(Q){return function(...B){let I=bS._originalConsoleMethods[Q];if(typeof I!=="function")I=bS._originalConsoleMethods.log;if(typeof I!=="function"&&console){if(I=console[Q],typeof I!=="function")I=console.log}if(typeof I==="function")return I.apply(console,B)}}for(let Q=0;Q{Object.defineProperty(cS,"__esModule",{value:!0});cS.createNoopMeter=cS.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=cS.NOOP_OBSERVABLE_GAUGE_METRIC=cS.NOOP_OBSERVABLE_COUNTER_METRIC=cS.NOOP_UP_DOWN_COUNTER_METRIC=cS.NOOP_HISTOGRAM_METRIC=cS.NOOP_GAUGE_METRIC=cS.NOOP_COUNTER_METRIC=cS.NOOP_METER=cS.NoopObservableUpDownCounterMetric=cS.NoopObservableGaugeMetric=cS.NoopObservableCounterMetric=cS.NoopObservableMetric=cS.NoopHistogramMetric=cS.NoopGaugeMetric=cS.NoopUpDownCounterMetric=cS.NoopCounterMetric=cS.NoopMetric=cS.NoopMeter=void 0;class MK{constructor(){}createGauge(A,Q){return cS.NOOP_GAUGE_METRIC}createHistogram(A,Q){return cS.NOOP_HISTOGRAM_METRIC}createCounter(A,Q){return cS.NOOP_COUNTER_METRIC}createUpDownCounter(A,Q){return cS.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(A,Q){return cS.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(A,Q){return cS.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(A,Q){return cS.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(A,Q){}removeBatchObservableCallback(A){}}cS.NoopMeter=MK;class CF{}cS.NoopMetric=CF;class LK extends CF{add(A,Q){}}cS.NoopCounterMetric=LK;class NK extends CF{add(A,Q){}}cS.NoopUpDownCounterMetric=NK;class jK extends CF{record(A,Q){}}cS.NoopGaugeMetric=jK;class RK extends CF{record(A,Q){}}cS.NoopHistogramMetric=RK;class xD{addCallback(A){}removeCallback(A){}}cS.NoopObservableMetric=xD;class qK extends xD{}cS.NoopObservableCounterMetric=qK;class OK extends xD{}cS.NoopObservableGaugeMetric=OK;class TK extends xD{}cS.NoopObservableUpDownCounterMetric=TK;cS.NOOP_METER=new MK;cS.NOOP_COUNTER_METRIC=new LK;cS.NOOP_GAUGE_METRIC=new jK;cS.NOOP_HISTOGRAM_METRIC=new RK;cS.NOOP_UP_DOWN_COUNTER_METRIC=new NK;cS.NOOP_OBSERVABLE_COUNTER_METRIC=new qK;cS.NOOP_OBSERVABLE_GAUGE_METRIC=new OK;cS.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new TK;function C2A(){return cS.NOOP_METER}cS.createNoopMeter=C2A});var eS=X((tS)=>{Object.defineProperty(tS,"__esModule",{value:!0});tS.ValueType=void 0;var w2A;(function(A){A[A.INT=0]="INT",A[A.DOUBLE=1]="DOUBLE"})(w2A=tS.ValueType||(tS.ValueType={}))});var SK=X((Ag)=>{Object.defineProperty(Ag,"__esModule",{value:!0});Ag.defaultTextMapSetter=Ag.defaultTextMapGetter=void 0;Ag.defaultTextMapGetter={get(A,Q){if(A==null)return;return A[Q]},keys(A){if(A==null)return[];return Object.keys(A)}};Ag.defaultTextMapSetter={set(A,Q,B){if(A==null)return;A[Q]=B}}});var Eg=X((Ig)=>{Object.defineProperty(Ig,"__esModule",{value:!0});Ig.NoopContextManager=void 0;var V2A=vD();class Bg{active(){return V2A.ROOT_CONTEXT}with(A,Q,B,...I){return Q.call(B,...I)}bind(A,Q){return Q}enable(){return this}disable(){return this}}Ig.NoopContextManager=Bg});var bD=X((Jg)=>{Object.defineProperty(Jg,"__esModule",{value:!0});Jg.ContextAPI=void 0;var z2A=Eg(),gK=IY(),Yg=CY(),yK="context",$2A=new z2A.NoopContextManager;class hK{constructor(){}static getInstance(){if(!this._instance)this._instance=new hK;return this._instance}setGlobalContextManager(A){return(0,gK.registerGlobal)(yK,A,Yg.DiagAPI.instance())}active(){return this._getContextManager().active()}with(A,Q,B,...I){return this._getContextManager().with(A,Q,B,...I)}bind(A,Q){return this._getContextManager().bind(A,Q)}_getContextManager(){return(0,gK.getGlobal)(yK)||$2A}disable(){this._getContextManager().disable(),(0,gK.unregisterGlobal)(yK,Yg.DiagAPI.instance())}}Jg.ContextAPI=hK});var _K=X((Gg)=>{Object.defineProperty(Gg,"__esModule",{value:!0});Gg.TraceFlags=void 0;var H2A;(function(A){A[A.NONE=0]="NONE",A[A.SAMPLED=1]="SAMPLED"})(H2A=Gg.TraceFlags||(Gg.TraceFlags={}))});var Y1=X((Dg)=>{Object.defineProperty(Dg,"__esModule",{value:!0});Dg.INVALID_SPAN_CONTEXT=Dg.INVALID_TRACEID=Dg.INVALID_SPANID=void 0;var M2A=_K();Dg.INVALID_SPANID="0000000000000000";Dg.INVALID_TRACEID="00000000000000000000000000000000";Dg.INVALID_SPAN_CONTEXT={traceId:Dg.INVALID_TRACEID,spanId:Dg.INVALID_SPANID,traceFlags:M2A.TraceFlags.NONE}});var J1=X((wg)=>{Object.defineProperty(wg,"__esModule",{value:!0});wg.NonRecordingSpan=void 0;var L2A=Y1();class Xg{constructor(A=L2A.INVALID_SPAN_CONTEXT){this._spanContext=A}spanContext(){return this._spanContext}setAttribute(A,Q){return this}setAttributes(A){return this}addEvent(A,Q){return this}addLink(A){return this}addLinks(A){return this}setStatus(A){return this}updateName(A){return this}end(A){}isRecording(){return!1}recordException(A,Q){}}wg.NonRecordingSpan=Xg});var bK=X((zg)=>{Object.defineProperty(zg,"__esModule",{value:!0});zg.getSpanContext=zg.setSpanContext=zg.deleteSpan=zg.setSpan=zg.getActiveSpan=zg.getSpan=void 0;var N2A=vD(),j2A=J1(),R2A=bD(),vK=(0,N2A.createContextKey)("OpenTelemetry Context Key SPAN");function xK(A){return A.getValue(vK)||void 0}zg.getSpan=xK;function q2A(){return xK(R2A.ContextAPI.getInstance().active())}zg.getActiveSpan=q2A;function Vg(A,Q){return A.setValue(vK,Q)}zg.setSpan=Vg;function O2A(A){return A.deleteValue(vK)}zg.deleteSpan=O2A;function T2A(A,Q){return Vg(A,new j2A.NonRecordingSpan(Q))}zg.setSpanContext=T2A;function P2A(A){var Q;return(Q=xK(A))===null||Q===void 0?void 0:Q.spanContext()}zg.getSpanContext=P2A});var G1=X((jg)=>{Object.defineProperty(jg,"__esModule",{value:!0});jg.wrapSpanContext=jg.isSpanContextValid=jg.isValidSpanId=jg.isValidTraceId=void 0;var Hg=Y1(),f2A=J1(),F1=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1]);function Mg(A,Q){if(typeof A!=="string"||A.length!==Q)return!1;let B=0;for(let I=0;I{Object.defineProperty(Tg,"__esModule",{value:!0});Tg.NoopTracer=void 0;var d2A=bD(),qg=bK(),mK=J1(),c2A=G1(),dK=d2A.ContextAPI.getInstance();class Og{startSpan(A,Q,B=dK.active()){if(Boolean(Q===null||Q===void 0?void 0:Q.root))return new mK.NonRecordingSpan;let C=B&&(0,qg.getSpanContext)(B);if(u2A(C)&&(0,c2A.isSpanContextValid)(C))return new mK.NonRecordingSpan(C);else return new mK.NonRecordingSpan}startActiveSpan(A,Q,B,I){let C,E,Y;if(arguments.length<2)return;else if(arguments.length===2)Y=Q;else if(arguments.length===3)C=Q,Y=B;else C=Q,E=B,Y=I;let J=E!==null&&E!==void 0?E:dK.active(),F=this.startSpan(A,C,J),G=(0,qg.setSpan)(J,F);return dK.with(G,Y,void 0,F)}}Tg.NoopTracer=Og;function u2A(A){return A!==null&&typeof A==="object"&&"spanId"in A&&typeof A.spanId==="string"&&"traceId"in A&&typeof A.traceId==="string"&&"traceFlags"in A&&typeof A.traceFlags==="number"}});var uK=X((Sg)=>{Object.defineProperty(Sg,"__esModule",{value:!0});Sg.ProxyTracer=void 0;var l2A=cK(),p2A=new l2A.NoopTracer;class kg{constructor(A,Q,B,I){this._provider=A,this.name=Q,this.version=B,this.options=I}startSpan(A,Q,B){return this._getTracer().startSpan(A,Q,B)}startActiveSpan(A,Q,B,I){let C=this._getTracer();return Reflect.apply(C.startActiveSpan,C,arguments)}_getTracer(){if(this._delegate)return this._delegate;let A=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!A)return p2A;return this._delegate=A,this._delegate}}Sg.ProxyTracer=kg});var _g=X((hg)=>{Object.defineProperty(hg,"__esModule",{value:!0});hg.NoopTracerProvider=void 0;var i2A=cK();class yg{getTracer(A,Q,B){return new i2A.NoopTracer}}hg.NoopTracerProvider=yg});var lK=X((xg)=>{Object.defineProperty(xg,"__esModule",{value:!0});xg.ProxyTracerProvider=void 0;var n2A=uK(),o2A=_g(),a2A=new o2A.NoopTracerProvider;class vg{getTracer(A,Q,B){var I;return(I=this.getDelegateTracer(A,Q,B))!==null&&I!==void 0?I:new n2A.ProxyTracer(this,A,Q,B)}getDelegate(){var A;return(A=this._delegate)!==null&&A!==void 0?A:a2A}setDelegate(A){this._delegate=A}getDelegateTracer(A,Q,B){var I;return(I=this._delegate)===null||I===void 0?void 0:I.getTracer(A,Q,B)}}xg.ProxyTracerProvider=vg});var dg=X((mg)=>{Object.defineProperty(mg,"__esModule",{value:!0});mg.SamplingDecision=void 0;var s2A;(function(A){A[A.NOT_RECORD=0]="NOT_RECORD",A[A.RECORD=1]="RECORD",A[A.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(s2A=mg.SamplingDecision||(mg.SamplingDecision={}))});var ug=X((cg)=>{Object.defineProperty(cg,"__esModule",{value:!0});cg.SpanKind=void 0;var r2A;(function(A){A[A.INTERNAL=0]="INTERNAL",A[A.SERVER=1]="SERVER",A[A.CLIENT=2]="CLIENT",A[A.PRODUCER=3]="PRODUCER",A[A.CONSUMER=4]="CONSUMER"})(r2A=cg.SpanKind||(cg.SpanKind={}))});var pg=X((lg)=>{Object.defineProperty(lg,"__esModule",{value:!0});lg.SpanStatusCode=void 0;var t2A;(function(A){A[A.UNSET=0]="UNSET",A[A.OK=1]="OK",A[A.ERROR=2]="ERROR"})(t2A=lg.SpanStatusCode||(lg.SpanStatusCode={}))});var og=X((ig)=>{Object.defineProperty(ig,"__esModule",{value:!0});ig.validateValue=ig.validateKey=void 0;var oK="[_0-9a-z-*/]",e2A=`[a-z]${oK}{0,255}`,ANA=`[a-z0-9]${oK}{0,240}@[a-z]${oK}{0,13}`,QNA=new RegExp(`^(?:${e2A}|${ANA})$`),BNA=/^[ -~]{0,255}[!-~]$/,INA=/,|=/;function CNA(A){return QNA.test(A)}ig.validateKey=CNA;function ENA(A){return BNA.test(A)&&!INA.test(A)}ig.validateValue=ENA});var Qy=X((eg)=>{Object.defineProperty(eg,"__esModule",{value:!0});eg.TraceStateImpl=void 0;var ag=og(),sg=32,JNA=512,rg=",",tg="=";class aK{constructor(A){if(this._internalState=new Map,A)this._parse(A)}set(A,Q){let B=this._clone();if(B._internalState.has(A))B._internalState.delete(A);return B._internalState.set(A,Q),B}unset(A){let Q=this._clone();return Q._internalState.delete(A),Q}get(A){return this._internalState.get(A)}serialize(){return Array.from(this._internalState.keys()).reduceRight((A,Q)=>{return A.push(Q+tg+this.get(Q)),A},[]).join(rg)}_parse(A){if(A.length>JNA)return;if(this._internalState=A.split(rg).reduceRight((Q,B)=>{let I=B.trim(),C=I.indexOf(tg);if(C!==-1){let E=I.slice(0,C),Y=I.slice(C+1,B.length);if((0,ag.validateKey)(E)&&(0,ag.validateValue)(Y))Q.set(E,Y)}return Q},new Map),this._internalState.size>sg)this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,sg))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let A=new aK;return A._internalState=new Map(this._internalState),A}}eg.TraceStateImpl=aK});var Cy=X((By)=>{Object.defineProperty(By,"__esModule",{value:!0});By.createTraceState=void 0;var FNA=Qy();function GNA(A){return new FNA.TraceStateImpl(A)}By.createTraceState=GNA});var Jy=X((Ey)=>{Object.defineProperty(Ey,"__esModule",{value:!0});Ey.context=void 0;var DNA=bD();Ey.context=DNA.ContextAPI.getInstance()});var Dy=X((Fy)=>{Object.defineProperty(Fy,"__esModule",{value:!0});Fy.diag=void 0;var ZNA=CY();Fy.diag=ZNA.DiagAPI.instance()});var Uy=X((Zy)=>{Object.defineProperty(Zy,"__esModule",{value:!0});Zy.NOOP_METER_PROVIDER=Zy.NoopMeterProvider=void 0;var WNA=PK();class sK{getMeter(A,Q,B){return WNA.NOOP_METER}}Zy.NoopMeterProvider=sK;Zy.NOOP_METER_PROVIDER=new sK});var Vy=X((wy)=>{Object.defineProperty(wy,"__esModule",{value:!0});wy.MetricsAPI=void 0;var XNA=Uy(),rK=IY(),Xy=CY(),tK="metrics";class eK{constructor(){}static getInstance(){if(!this._instance)this._instance=new eK;return this._instance}setGlobalMeterProvider(A){return(0,rK.registerGlobal)(tK,A,Xy.DiagAPI.instance())}getMeterProvider(){return(0,rK.getGlobal)(tK)||XNA.NOOP_METER_PROVIDER}getMeter(A,Q,B){return this.getMeterProvider().getMeter(A,Q,B)}disable(){(0,rK.unregisterGlobal)(tK,Xy.DiagAPI.instance())}}wy.MetricsAPI=eK});var Hy=X((zy)=>{Object.defineProperty(zy,"__esModule",{value:!0});zy.metrics=void 0;var wNA=Vy();zy.metrics=wNA.MetricsAPI.getInstance()});var jy=X((Ly)=>{Object.defineProperty(Ly,"__esModule",{value:!0});Ly.NoopTextMapPropagator=void 0;class My{inject(A,Q){}extract(A,Q){return A}fields(){return[]}}Ly.NoopTextMapPropagator=My});var Ty=X((qy)=>{Object.defineProperty(qy,"__esModule",{value:!0});qy.deleteBaggage=qy.setBaggage=qy.getActiveBaggage=qy.getBaggage=void 0;var KNA=bD(),VNA=vD(),AV=(0,VNA.createContextKey)("OpenTelemetry Baggage Key");function Ry(A){return A.getValue(AV)||void 0}qy.getBaggage=Ry;function zNA(){return Ry(KNA.ContextAPI.getInstance().active())}qy.getActiveBaggage=zNA;function $NA(A,Q){return A.setValue(AV,Q)}qy.setBaggage=$NA;function HNA(A){return A.deleteValue(AV)}qy.deleteBaggage=HNA});var yy=X((Sy)=>{Object.defineProperty(Sy,"__esModule",{value:!0});Sy.PropagationAPI=void 0;var QV=IY(),jNA=jy(),Py=SK(),D1=Ty(),RNA=$K(),ky=CY(),BV="propagation",qNA=new jNA.NoopTextMapPropagator;class IV{constructor(){this.createBaggage=RNA.createBaggage,this.getBaggage=D1.getBaggage,this.getActiveBaggage=D1.getActiveBaggage,this.setBaggage=D1.setBaggage,this.deleteBaggage=D1.deleteBaggage}static getInstance(){if(!this._instance)this._instance=new IV;return this._instance}setGlobalPropagator(A){return(0,QV.registerGlobal)(BV,A,ky.DiagAPI.instance())}inject(A,Q,B=Py.defaultTextMapSetter){return this._getGlobalPropagator().inject(A,Q,B)}extract(A,Q,B=Py.defaultTextMapGetter){return this._getGlobalPropagator().extract(A,Q,B)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,QV.unregisterGlobal)(BV,ky.DiagAPI.instance())}_getGlobalPropagator(){return(0,QV.getGlobal)(BV)||qNA}}Sy.PropagationAPI=IV});var _y=X((hy)=>{Object.defineProperty(hy,"__esModule",{value:!0});hy.propagation=void 0;var ONA=yy();hy.propagation=ONA.PropagationAPI.getInstance()});var cy=X((my)=>{Object.defineProperty(my,"__esModule",{value:!0});my.TraceAPI=void 0;var CV=IY(),vy=lK(),xy=G1(),EF=bK(),by=CY(),EV="trace";class YV{constructor(){this._proxyTracerProvider=new vy.ProxyTracerProvider,this.wrapSpanContext=xy.wrapSpanContext,this.isSpanContextValid=xy.isSpanContextValid,this.deleteSpan=EF.deleteSpan,this.getSpan=EF.getSpan,this.getActiveSpan=EF.getActiveSpan,this.getSpanContext=EF.getSpanContext,this.setSpan=EF.setSpan,this.setSpanContext=EF.setSpanContext}static getInstance(){if(!this._instance)this._instance=new YV;return this._instance}setGlobalTracerProvider(A){let Q=(0,CV.registerGlobal)(EV,this._proxyTracerProvider,by.DiagAPI.instance());if(Q)this._proxyTracerProvider.setDelegate(A);return Q}getTracerProvider(){return(0,CV.getGlobal)(EV)||this._proxyTracerProvider}getTracer(A,Q){return this.getTracerProvider().getTracer(A,Q)}disable(){(0,CV.unregisterGlobal)(EV,by.DiagAPI.instance()),this._proxyTracerProvider=new vy.ProxyTracerProvider}}my.TraceAPI=YV});var py=X((uy)=>{Object.defineProperty(uy,"__esModule",{value:!0});uy.trace=void 0;var TNA=cy();uy.trace=TNA.TraceAPI.getInstance()});var j=X((HA)=>{Object.defineProperty(HA,"__esModule",{value:!0});HA.trace=HA.propagation=HA.metrics=HA.diag=HA.context=HA.INVALID_SPAN_CONTEXT=HA.INVALID_TRACEID=HA.INVALID_SPANID=HA.isValidSpanId=HA.isValidTraceId=HA.isSpanContextValid=HA.createTraceState=HA.TraceFlags=HA.SpanStatusCode=HA.SpanKind=HA.SamplingDecision=HA.ProxyTracerProvider=HA.ProxyTracer=HA.defaultTextMapSetter=HA.defaultTextMapGetter=HA.ValueType=HA.createNoopMeter=HA.DiagLogLevel=HA.DiagConsoleLogger=HA.ROOT_CONTEXT=HA.createContextKey=HA.baggageEntryMetadataFromString=void 0;var PNA=$K();Object.defineProperty(HA,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return PNA.baggageEntryMetadataFromString}});var iy=vD();Object.defineProperty(HA,"createContextKey",{enumerable:!0,get:function(){return iy.createContextKey}});Object.defineProperty(HA,"ROOT_CONTEXT",{enumerable:!0,get:function(){return iy.ROOT_CONTEXT}});var kNA=dS();Object.defineProperty(HA,"DiagConsoleLogger",{enumerable:!0,get:function(){return kNA.DiagConsoleLogger}});var SNA=B1();Object.defineProperty(HA,"DiagLogLevel",{enumerable:!0,get:function(){return SNA.DiagLogLevel}});var gNA=PK();Object.defineProperty(HA,"createNoopMeter",{enumerable:!0,get:function(){return gNA.createNoopMeter}});var yNA=eS();Object.defineProperty(HA,"ValueType",{enumerable:!0,get:function(){return yNA.ValueType}});var ny=SK();Object.defineProperty(HA,"defaultTextMapGetter",{enumerable:!0,get:function(){return ny.defaultTextMapGetter}});Object.defineProperty(HA,"defaultTextMapSetter",{enumerable:!0,get:function(){return ny.defaultTextMapSetter}});var hNA=uK();Object.defineProperty(HA,"ProxyTracer",{enumerable:!0,get:function(){return hNA.ProxyTracer}});var fNA=lK();Object.defineProperty(HA,"ProxyTracerProvider",{enumerable:!0,get:function(){return fNA.ProxyTracerProvider}});var _NA=dg();Object.defineProperty(HA,"SamplingDecision",{enumerable:!0,get:function(){return _NA.SamplingDecision}});var vNA=ug();Object.defineProperty(HA,"SpanKind",{enumerable:!0,get:function(){return vNA.SpanKind}});var xNA=pg();Object.defineProperty(HA,"SpanStatusCode",{enumerable:!0,get:function(){return xNA.SpanStatusCode}});var bNA=_K();Object.defineProperty(HA,"TraceFlags",{enumerable:!0,get:function(){return bNA.TraceFlags}});var mNA=Cy();Object.defineProperty(HA,"createTraceState",{enumerable:!0,get:function(){return mNA.createTraceState}});var JV=G1();Object.defineProperty(HA,"isSpanContextValid",{enumerable:!0,get:function(){return JV.isSpanContextValid}});Object.defineProperty(HA,"isValidTraceId",{enumerable:!0,get:function(){return JV.isValidTraceId}});Object.defineProperty(HA,"isValidSpanId",{enumerable:!0,get:function(){return JV.isValidSpanId}});var FV=Y1();Object.defineProperty(HA,"INVALID_SPANID",{enumerable:!0,get:function(){return FV.INVALID_SPANID}});Object.defineProperty(HA,"INVALID_TRACEID",{enumerable:!0,get:function(){return FV.INVALID_TRACEID}});Object.defineProperty(HA,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return FV.INVALID_SPAN_CONTEXT}});var oy=Jy();Object.defineProperty(HA,"context",{enumerable:!0,get:function(){return oy.context}});var ay=Dy();Object.defineProperty(HA,"diag",{enumerable:!0,get:function(){return ay.diag}});var sy=Hy();Object.defineProperty(HA,"metrics",{enumerable:!0,get:function(){return sy.metrics}});var ry=_y();Object.defineProperty(HA,"propagation",{enumerable:!0,get:function(){return ry.propagation}});var ty=py();Object.defineProperty(HA,"trace",{enumerable:!0,get:function(){return ty.trace}});HA.default={context:oy.context,diag:ay.diag,metrics:sy.metrics,propagation:ry.propagation,trace:ty.trace}});var mD=X((ey)=>{Object.defineProperty(ey,"__esModule",{value:!0});ey.isTracingSuppressed=ey.unsuppressTracing=ey.suppressTracing=void 0;var uNA=j(),GV=(0,uNA.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function lNA(A){return A.setValue(GV,!0)}ey.suppressTracing=lNA;function pNA(A){return A.deleteValue(GV)}ey.unsuppressTracing=pNA;function iNA(A){return A.getValue(GV)===!0}ey.isTracingSuppressed=iNA});var DV=X((Qh)=>{Object.defineProperty(Qh,"__esModule",{value:!0});Qh.BAGGAGE_MAX_TOTAL_LENGTH=Qh.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=Qh.BAGGAGE_MAX_NAME_VALUE_PAIRS=Qh.BAGGAGE_HEADER=Qh.BAGGAGE_ITEMS_SEPARATOR=Qh.BAGGAGE_PROPERTIES_SEPARATOR=Qh.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;Qh.BAGGAGE_KEY_PAIR_SEPARATOR="=";Qh.BAGGAGE_PROPERTIES_SEPARATOR=";";Qh.BAGGAGE_ITEMS_SEPARATOR=",";Qh.BAGGAGE_HEADER="baggage";Qh.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;Qh.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;Qh.BAGGAGE_MAX_TOTAL_LENGTH=8192});var ZV=X((Ch)=>{Object.defineProperty(Ch,"__esModule",{value:!0});Ch.parseKeyPairsIntoRecord=Ch.parsePairKeyValue=Ch.getKeyPairs=Ch.serializeKeyPairs=void 0;var QjA=j(),YF=DV();function BjA(A){return A.reduce((Q,B)=>{let I=`${Q}${Q!==""?YF.BAGGAGE_ITEMS_SEPARATOR:""}${B}`;return I.length>YF.BAGGAGE_MAX_TOTAL_LENGTH?Q:I},"")}Ch.serializeKeyPairs=BjA;function IjA(A){return A.getAllEntries().map(([Q,B])=>{let I=`${encodeURIComponent(Q)}=${encodeURIComponent(B.value)}`;if(B.metadata!==void 0)I+=YF.BAGGAGE_PROPERTIES_SEPARATOR+B.metadata.toString();return I})}Ch.getKeyPairs=IjA;function Ih(A){if(!A)return;let Q=A.indexOf(YF.BAGGAGE_PROPERTIES_SEPARATOR),B=Q===-1?A:A.substring(0,Q),I=B.indexOf(YF.BAGGAGE_KEY_PAIR_SEPARATOR);if(I<=0)return;let C=B.substring(0,I).trim(),E=B.substring(I+1).trim();if(!C||!E)return;let Y,J;try{Y=decodeURIComponent(C),J=decodeURIComponent(E)}catch{return}let F;if(Q!==-1&&Q0)A.split(YF.BAGGAGE_ITEMS_SEPARATOR).forEach((B)=>{let I=Ih(B);if(I!==void 0&&I.value.length>0)Q[I.key]=I.value});return Q}Ch.parseKeyPairsIntoRecord=CjA});var Gh=X((Jh)=>{Object.defineProperty(Jh,"__esModule",{value:!0});Jh.W3CBaggagePropagator=void 0;var WV=j(),FjA=mD(),EY=DV(),UV=ZV();class Yh{inject(A,Q,B){let I=WV.propagation.getBaggage(A);if(!I||(0,FjA.isTracingSuppressed)(A))return;let C=(0,UV.getKeyPairs)(I).filter((Y)=>{return Y.length<=EY.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS}).slice(0,EY.BAGGAGE_MAX_NAME_VALUE_PAIRS),E=(0,UV.serializeKeyPairs)(C);if(E.length>0)B.set(Q,EY.BAGGAGE_HEADER,E)}extract(A,Q,B){let I=B.get(Q,EY.BAGGAGE_HEADER),C=Array.isArray(I)?I.join(EY.BAGGAGE_ITEMS_SEPARATOR):I;if(!C)return A;let E={};if(C.length===0)return A;if(C.split(EY.BAGGAGE_ITEMS_SEPARATOR).forEach((J)=>{let F=(0,UV.parsePairKeyValue)(J);if(F){let G={value:F.value};if(F.metadata)G.metadata=F.metadata;E[F.key]=G}}),Object.entries(E).length===0)return A;return WV.propagation.setBaggage(A,WV.propagation.createBaggage(E))}fields(){return[EY.BAGGAGE_HEADER]}}Jh.W3CBaggagePropagator=Yh});var Uh=X((Zh)=>{Object.defineProperty(Zh,"__esModule",{value:!0});Zh.AnchoredClock=void 0;class Dh{_monotonicClock;_epochMillis;_performanceMillis;constructor(A,Q){this._monotonicClock=Q,this._epochMillis=A.now(),this._performanceMillis=Q.now()}now(){let A=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+A}}Zh.AnchoredClock=Dh});var Hh=X((zh)=>{Object.defineProperty(zh,"__esModule",{value:!0});zh.isAttributeValue=zh.isAttributeKey=zh.sanitizeAttributes=void 0;var Xh=j();function GjA(A){let Q={};if(typeof A!=="object"||A==null)return Q;for(let B in A){if(!Object.prototype.hasOwnProperty.call(A,B))continue;if(!wh(B)){Xh.diag.warn(`Invalid attribute key: ${B}`);continue}let I=A[B];if(!Kh(I)){Xh.diag.warn(`Invalid attribute value set for key: ${B}`);continue}if(Array.isArray(I))Q[B]=I.slice();else Q[B]=I}return Q}zh.sanitizeAttributes=GjA;function wh(A){return typeof A==="string"&&A!==""}zh.isAttributeKey=wh;function Kh(A){if(A==null)return!0;if(Array.isArray(A))return DjA(A);return Vh(typeof A)}zh.isAttributeValue=Kh;function DjA(A){let Q;for(let B of A){if(B==null)continue;let I=typeof B;if(I===Q)continue;if(!Q){if(Vh(I)){Q=I;continue}return!1}return!1}return!0}function Vh(A){switch(A){case"number":case"boolean":case"string":return!0}return!1}});var XV=X((Mh)=>{Object.defineProperty(Mh,"__esModule",{value:!0});Mh.loggingErrorHandler=void 0;var UjA=j();function XjA(){return(A)=>{UjA.diag.error(wjA(A))}}Mh.loggingErrorHandler=XjA;function wjA(A){if(typeof A==="string")return A;else return JSON.stringify(KjA(A))}function KjA(A){let Q={},B=A;while(B!==null)Object.getOwnPropertyNames(B).forEach((I)=>{if(Q[I])return;let C=B[I];if(C)Q[I]=String(C)}),B=Object.getPrototypeOf(B);return Q}});var qh=X((jh)=>{Object.defineProperty(jh,"__esModule",{value:!0});jh.globalErrorHandler=jh.setGlobalErrorHandler=void 0;var VjA=XV(),Nh=(0,VjA.loggingErrorHandler)();function zjA(A){Nh=A}jh.setGlobalErrorHandler=zjA;function $jA(A){try{Nh(A)}catch{}}jh.globalErrorHandler=$jA});var gh=X((kh)=>{Object.defineProperty(kh,"__esModule",{value:!0});kh.getStringListFromEnv=kh.getBooleanFromEnv=kh.getStringFromEnv=kh.getNumberFromEnv=void 0;var Oh=j(),Th=H("util");function MjA(A){let Q=process.env[A];if(Q==null||Q.trim()==="")return;let B=Number(Q);if(isNaN(B)){Oh.diag.warn(`Unknown value ${(0,Th.inspect)(Q)} for ${A}, expected a number, using defaults`);return}return B}kh.getNumberFromEnv=MjA;function Ph(A){let Q=process.env[A];if(Q==null||Q.trim()==="")return;return Q}kh.getStringFromEnv=Ph;function LjA(A){let Q=process.env[A]?.trim().toLowerCase();if(Q==null||Q==="")return!1;if(Q==="true")return!0;else if(Q==="false")return!1;else return Oh.diag.warn(`Unknown value ${(0,Th.inspect)(Q)} for ${A}, expected 'true' or 'false', falling back to 'false' (default)`),!1}kh.getBooleanFromEnv=LjA;function NjA(A){return Ph(A)?.split(",").map((Q)=>Q.trim()).filter((Q)=>Q!=="")}kh.getStringListFromEnv=NjA});var fh=X((yh)=>{Object.defineProperty(yh,"__esModule",{value:!0});yh._globalThis=void 0;yh._globalThis=globalThis});var xh=X((_h)=>{Object.defineProperty(_h,"__esModule",{value:!0});_h.VERSION=void 0;_h.VERSION="2.6.0"});var wV=X((bh)=>{Object.defineProperty(bh,"__esModule",{value:!0});bh.createConstMap=void 0;function OjA(A){let Q={},B=A.length;for(let I=0;I{Object.defineProperty(Sb,"__esModule",{value:!0});Sb.SEMATTRS_NET_HOST_CARRIER_ICC=Sb.SEMATTRS_NET_HOST_CARRIER_MNC=Sb.SEMATTRS_NET_HOST_CARRIER_MCC=Sb.SEMATTRS_NET_HOST_CARRIER_NAME=Sb.SEMATTRS_NET_HOST_CONNECTION_SUBTYPE=Sb.SEMATTRS_NET_HOST_CONNECTION_TYPE=Sb.SEMATTRS_NET_HOST_NAME=Sb.SEMATTRS_NET_HOST_PORT=Sb.SEMATTRS_NET_HOST_IP=Sb.SEMATTRS_NET_PEER_NAME=Sb.SEMATTRS_NET_PEER_PORT=Sb.SEMATTRS_NET_PEER_IP=Sb.SEMATTRS_NET_TRANSPORT=Sb.SEMATTRS_FAAS_INVOKED_REGION=Sb.SEMATTRS_FAAS_INVOKED_PROVIDER=Sb.SEMATTRS_FAAS_INVOKED_NAME=Sb.SEMATTRS_FAAS_COLDSTART=Sb.SEMATTRS_FAAS_CRON=Sb.SEMATTRS_FAAS_TIME=Sb.SEMATTRS_FAAS_DOCUMENT_NAME=Sb.SEMATTRS_FAAS_DOCUMENT_TIME=Sb.SEMATTRS_FAAS_DOCUMENT_OPERATION=Sb.SEMATTRS_FAAS_DOCUMENT_COLLECTION=Sb.SEMATTRS_FAAS_EXECUTION=Sb.SEMATTRS_FAAS_TRIGGER=Sb.SEMATTRS_EXCEPTION_ESCAPED=Sb.SEMATTRS_EXCEPTION_STACKTRACE=Sb.SEMATTRS_EXCEPTION_MESSAGE=Sb.SEMATTRS_EXCEPTION_TYPE=Sb.SEMATTRS_DB_SQL_TABLE=Sb.SEMATTRS_DB_MONGODB_COLLECTION=Sb.SEMATTRS_DB_REDIS_DATABASE_INDEX=Sb.SEMATTRS_DB_HBASE_NAMESPACE=Sb.SEMATTRS_DB_CASSANDRA_COORDINATOR_DC=Sb.SEMATTRS_DB_CASSANDRA_COORDINATOR_ID=Sb.SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT=Sb.SEMATTRS_DB_CASSANDRA_IDEMPOTENCE=Sb.SEMATTRS_DB_CASSANDRA_TABLE=Sb.SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL=Sb.SEMATTRS_DB_CASSANDRA_PAGE_SIZE=Sb.SEMATTRS_DB_CASSANDRA_KEYSPACE=Sb.SEMATTRS_DB_MSSQL_INSTANCE_NAME=Sb.SEMATTRS_DB_OPERATION=Sb.SEMATTRS_DB_STATEMENT=Sb.SEMATTRS_DB_NAME=Sb.SEMATTRS_DB_JDBC_DRIVER_CLASSNAME=Sb.SEMATTRS_DB_USER=Sb.SEMATTRS_DB_CONNECTION_STRING=Sb.SEMATTRS_DB_SYSTEM=Sb.SEMATTRS_AWS_LAMBDA_INVOKED_ARN=void 0;Sb.SEMATTRS_MESSAGING_DESTINATION_KIND=Sb.SEMATTRS_MESSAGING_DESTINATION=Sb.SEMATTRS_MESSAGING_SYSTEM=Sb.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES=Sb.SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS=Sb.SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT=Sb.SEMATTRS_AWS_DYNAMODB_COUNT=Sb.SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS=Sb.SEMATTRS_AWS_DYNAMODB_SEGMENT=Sb.SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD=Sb.SEMATTRS_AWS_DYNAMODB_TABLE_COUNT=Sb.SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE=Sb.SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES=Sb.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES=Sb.SEMATTRS_AWS_DYNAMODB_SELECT=Sb.SEMATTRS_AWS_DYNAMODB_INDEX_NAME=Sb.SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET=Sb.SEMATTRS_AWS_DYNAMODB_LIMIT=Sb.SEMATTRS_AWS_DYNAMODB_PROJECTION=Sb.SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ=Sb.SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY=Sb.SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY=Sb.SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS=Sb.SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY=Sb.SEMATTRS_AWS_DYNAMODB_TABLE_NAMES=Sb.SEMATTRS_HTTP_CLIENT_IP=Sb.SEMATTRS_HTTP_ROUTE=Sb.SEMATTRS_HTTP_SERVER_NAME=Sb.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=Sb.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH=Sb.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=Sb.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH=Sb.SEMATTRS_HTTP_USER_AGENT=Sb.SEMATTRS_HTTP_FLAVOR=Sb.SEMATTRS_HTTP_STATUS_CODE=Sb.SEMATTRS_HTTP_SCHEME=Sb.SEMATTRS_HTTP_HOST=Sb.SEMATTRS_HTTP_TARGET=Sb.SEMATTRS_HTTP_URL=Sb.SEMATTRS_HTTP_METHOD=Sb.SEMATTRS_CODE_LINENO=Sb.SEMATTRS_CODE_FILEPATH=Sb.SEMATTRS_CODE_NAMESPACE=Sb.SEMATTRS_CODE_FUNCTION=Sb.SEMATTRS_THREAD_NAME=Sb.SEMATTRS_THREAD_ID=Sb.SEMATTRS_ENDUSER_SCOPE=Sb.SEMATTRS_ENDUSER_ROLE=Sb.SEMATTRS_ENDUSER_ID=Sb.SEMATTRS_PEER_SERVICE=void 0;Sb.DBSYSTEMVALUES_FILEMAKER=Sb.DBSYSTEMVALUES_DERBY=Sb.DBSYSTEMVALUES_FIREBIRD=Sb.DBSYSTEMVALUES_ADABAS=Sb.DBSYSTEMVALUES_CACHE=Sb.DBSYSTEMVALUES_EDB=Sb.DBSYSTEMVALUES_FIRSTSQL=Sb.DBSYSTEMVALUES_INGRES=Sb.DBSYSTEMVALUES_HANADB=Sb.DBSYSTEMVALUES_MAXDB=Sb.DBSYSTEMVALUES_PROGRESS=Sb.DBSYSTEMVALUES_HSQLDB=Sb.DBSYSTEMVALUES_CLOUDSCAPE=Sb.DBSYSTEMVALUES_HIVE=Sb.DBSYSTEMVALUES_REDSHIFT=Sb.DBSYSTEMVALUES_POSTGRESQL=Sb.DBSYSTEMVALUES_DB2=Sb.DBSYSTEMVALUES_ORACLE=Sb.DBSYSTEMVALUES_MYSQL=Sb.DBSYSTEMVALUES_MSSQL=Sb.DBSYSTEMVALUES_OTHER_SQL=Sb.SemanticAttributes=Sb.SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE=Sb.SEMATTRS_MESSAGE_COMPRESSED_SIZE=Sb.SEMATTRS_MESSAGE_ID=Sb.SEMATTRS_MESSAGE_TYPE=Sb.SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE=Sb.SEMATTRS_RPC_JSONRPC_ERROR_CODE=Sb.SEMATTRS_RPC_JSONRPC_REQUEST_ID=Sb.SEMATTRS_RPC_JSONRPC_VERSION=Sb.SEMATTRS_RPC_GRPC_STATUS_CODE=Sb.SEMATTRS_RPC_METHOD=Sb.SEMATTRS_RPC_SERVICE=Sb.SEMATTRS_RPC_SYSTEM=Sb.SEMATTRS_MESSAGING_KAFKA_TOMBSTONE=Sb.SEMATTRS_MESSAGING_KAFKA_PARTITION=Sb.SEMATTRS_MESSAGING_KAFKA_CLIENT_ID=Sb.SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP=Sb.SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY=Sb.SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY=Sb.SEMATTRS_MESSAGING_CONSUMER_ID=Sb.SEMATTRS_MESSAGING_OPERATION=Sb.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES=Sb.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES=Sb.SEMATTRS_MESSAGING_CONVERSATION_ID=Sb.SEMATTRS_MESSAGING_MESSAGE_ID=Sb.SEMATTRS_MESSAGING_URL=Sb.SEMATTRS_MESSAGING_PROTOCOL_VERSION=Sb.SEMATTRS_MESSAGING_PROTOCOL=Sb.SEMATTRS_MESSAGING_TEMP_DESTINATION=void 0;Sb.FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD=Sb.FaasDocumentOperationValues=Sb.FAASDOCUMENTOPERATIONVALUES_DELETE=Sb.FAASDOCUMENTOPERATIONVALUES_EDIT=Sb.FAASDOCUMENTOPERATIONVALUES_INSERT=Sb.FaasTriggerValues=Sb.FAASTRIGGERVALUES_OTHER=Sb.FAASTRIGGERVALUES_TIMER=Sb.FAASTRIGGERVALUES_PUBSUB=Sb.FAASTRIGGERVALUES_HTTP=Sb.FAASTRIGGERVALUES_DATASOURCE=Sb.DbCassandraConsistencyLevelValues=Sb.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL=Sb.DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL=Sb.DBCASSANDRACONSISTENCYLEVELVALUES_ANY=Sb.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE=Sb.DBCASSANDRACONSISTENCYLEVELVALUES_THREE=Sb.DBCASSANDRACONSISTENCYLEVELVALUES_TWO=Sb.DBCASSANDRACONSISTENCYLEVELVALUES_ONE=Sb.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM=Sb.DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM=Sb.DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM=Sb.DBCASSANDRACONSISTENCYLEVELVALUES_ALL=Sb.DbSystemValues=Sb.DBSYSTEMVALUES_COCKROACHDB=Sb.DBSYSTEMVALUES_MEMCACHED=Sb.DBSYSTEMVALUES_ELASTICSEARCH=Sb.DBSYSTEMVALUES_GEODE=Sb.DBSYSTEMVALUES_NEO4J=Sb.DBSYSTEMVALUES_DYNAMODB=Sb.DBSYSTEMVALUES_COSMOSDB=Sb.DBSYSTEMVALUES_COUCHDB=Sb.DBSYSTEMVALUES_COUCHBASE=Sb.DBSYSTEMVALUES_REDIS=Sb.DBSYSTEMVALUES_MONGODB=Sb.DBSYSTEMVALUES_HBASE=Sb.DBSYSTEMVALUES_CASSANDRA=Sb.DBSYSTEMVALUES_COLDFUSION=Sb.DBSYSTEMVALUES_H2=Sb.DBSYSTEMVALUES_VERTICA=Sb.DBSYSTEMVALUES_TERADATA=Sb.DBSYSTEMVALUES_SYBASE=Sb.DBSYSTEMVALUES_SQLITE=Sb.DBSYSTEMVALUES_POINTBASE=Sb.DBSYSTEMVALUES_PERVASIVE=Sb.DBSYSTEMVALUES_NETEZZA=Sb.DBSYSTEMVALUES_MARIADB=Sb.DBSYSTEMVALUES_INTERBASE=Sb.DBSYSTEMVALUES_INSTANTDB=Sb.DBSYSTEMVALUES_INFORMIX=void 0;Sb.MESSAGINGOPERATIONVALUES_RECEIVE=Sb.MessagingDestinationKindValues=Sb.MESSAGINGDESTINATIONKINDVALUES_TOPIC=Sb.MESSAGINGDESTINATIONKINDVALUES_QUEUE=Sb.HttpFlavorValues=Sb.HTTPFLAVORVALUES_QUIC=Sb.HTTPFLAVORVALUES_SPDY=Sb.HTTPFLAVORVALUES_HTTP_2_0=Sb.HTTPFLAVORVALUES_HTTP_1_1=Sb.HTTPFLAVORVALUES_HTTP_1_0=Sb.NetHostConnectionSubtypeValues=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_NR=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_GSM=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_LTE=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_IDEN=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_HSPA=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_UMTS=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_EDGE=Sb.NETHOSTCONNECTIONSUBTYPEVALUES_GPRS=Sb.NetHostConnectionTypeValues=Sb.NETHOSTCONNECTIONTYPEVALUES_UNKNOWN=Sb.NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE=Sb.NETHOSTCONNECTIONTYPEVALUES_CELL=Sb.NETHOSTCONNECTIONTYPEVALUES_WIRED=Sb.NETHOSTCONNECTIONTYPEVALUES_WIFI=Sb.NetTransportValues=Sb.NETTRANSPORTVALUES_OTHER=Sb.NETTRANSPORTVALUES_INPROC=Sb.NETTRANSPORTVALUES_PIPE=Sb.NETTRANSPORTVALUES_UNIX=Sb.NETTRANSPORTVALUES_IP=Sb.NETTRANSPORTVALUES_IP_UDP=Sb.NETTRANSPORTVALUES_IP_TCP=Sb.FaasInvokedProviderValues=Sb.FAASINVOKEDPROVIDERVALUES_GCP=Sb.FAASINVOKEDPROVIDERVALUES_AZURE=Sb.FAASINVOKEDPROVIDERVALUES_AWS=void 0;Sb.MessageTypeValues=Sb.MESSAGETYPEVALUES_RECEIVED=Sb.MESSAGETYPEVALUES_SENT=Sb.RpcGrpcStatusCodeValues=Sb.RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED=Sb.RPCGRPCSTATUSCODEVALUES_DATA_LOSS=Sb.RPCGRPCSTATUSCODEVALUES_UNAVAILABLE=Sb.RPCGRPCSTATUSCODEVALUES_INTERNAL=Sb.RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED=Sb.RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE=Sb.RPCGRPCSTATUSCODEVALUES_ABORTED=Sb.RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION=Sb.RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED=Sb.RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED=Sb.RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS=Sb.RPCGRPCSTATUSCODEVALUES_NOT_FOUND=Sb.RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED=Sb.RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT=Sb.RPCGRPCSTATUSCODEVALUES_UNKNOWN=Sb.RPCGRPCSTATUSCODEVALUES_CANCELLED=Sb.RPCGRPCSTATUSCODEVALUES_OK=Sb.MessagingOperationValues=Sb.MESSAGINGOPERATIONVALUES_PROCESS=void 0;var II=wV(),dh="aws.lambda.invoked_arn",ch="db.system",uh="db.connection_string",lh="db.user",ph="db.jdbc.driver_classname",ih="db.name",nh="db.statement",oh="db.operation",ah="db.mssql.instance_name",sh="db.cassandra.keyspace",rh="db.cassandra.page_size",th="db.cassandra.consistency_level",eh="db.cassandra.table",Af="db.cassandra.idempotence",Qf="db.cassandra.speculative_execution_count",Bf="db.cassandra.coordinator.id",If="db.cassandra.coordinator.dc",Cf="db.hbase.namespace",Ef="db.redis.database_index",Yf="db.mongodb.collection",Jf="db.sql.table",Ff="exception.type",Gf="exception.message",Df="exception.stacktrace",Zf="exception.escaped",Wf="faas.trigger",Uf="faas.execution",Xf="faas.document.collection",wf="faas.document.operation",Kf="faas.document.time",Vf="faas.document.name",zf="faas.time",$f="faas.cron",Hf="faas.coldstart",Mf="faas.invoked_name",Lf="faas.invoked_provider",Nf="faas.invoked_region",jf="net.transport",Rf="net.peer.ip",qf="net.peer.port",Of="net.peer.name",Tf="net.host.ip",Pf="net.host.port",kf="net.host.name",Sf="net.host.connection.type",gf="net.host.connection.subtype",yf="net.host.carrier.name",hf="net.host.carrier.mcc",ff="net.host.carrier.mnc",_f="net.host.carrier.icc",vf="peer.service",xf="enduser.id",bf="enduser.role",mf="enduser.scope",df="thread.id",cf="thread.name",uf="code.function",lf="code.namespace",pf="code.filepath",nf="code.lineno",of="http.method",af="http.url",sf="http.target",rf="http.host",tf="http.scheme",ef="http.status_code",A_="http.flavor",Q_="http.user_agent",B_="http.request_content_length",I_="http.request_content_length_uncompressed",C_="http.response_content_length",E_="http.response_content_length_uncompressed",Y_="http.server_name",J_="http.route",F_="http.client_ip",G_="aws.dynamodb.table_names",D_="aws.dynamodb.consumed_capacity",Z_="aws.dynamodb.item_collection_metrics",W_="aws.dynamodb.provisioned_read_capacity",U_="aws.dynamodb.provisioned_write_capacity",X_="aws.dynamodb.consistent_read",w_="aws.dynamodb.projection",K_="aws.dynamodb.limit",V_="aws.dynamodb.attributes_to_get",z_="aws.dynamodb.index_name",$_="aws.dynamodb.select",H_="aws.dynamodb.global_secondary_indexes",M_="aws.dynamodb.local_secondary_indexes",L_="aws.dynamodb.exclusive_start_table",N_="aws.dynamodb.table_count",j_="aws.dynamodb.scan_forward",R_="aws.dynamodb.segment",q_="aws.dynamodb.total_segments",O_="aws.dynamodb.count",T_="aws.dynamodb.scanned_count",P_="aws.dynamodb.attribute_definitions",k_="aws.dynamodb.global_secondary_index_updates",S_="messaging.system",g_="messaging.destination",y_="messaging.destination_kind",h_="messaging.temp_destination",f_="messaging.protocol",__="messaging.protocol_version",v_="messaging.url",x_="messaging.message_id",b_="messaging.conversation_id",m_="messaging.message_payload_size_bytes",d_="messaging.message_payload_compressed_size_bytes",c_="messaging.operation",u_="messaging.consumer_id",l_="messaging.rabbitmq.routing_key",p_="messaging.kafka.message_key",i_="messaging.kafka.consumer_group",n_="messaging.kafka.client_id",o_="messaging.kafka.partition",a_="messaging.kafka.tombstone",s_="rpc.system",r_="rpc.service",t_="rpc.method",e_="rpc.grpc.status_code",Av="rpc.jsonrpc.version",Qv="rpc.jsonrpc.request_id",Bv="rpc.jsonrpc.error_code",Iv="rpc.jsonrpc.error_message",Cv="message.type",Ev="message.id",Yv="message.compressed_size",Jv="message.uncompressed_size";Sb.SEMATTRS_AWS_LAMBDA_INVOKED_ARN=dh;Sb.SEMATTRS_DB_SYSTEM=ch;Sb.SEMATTRS_DB_CONNECTION_STRING=uh;Sb.SEMATTRS_DB_USER=lh;Sb.SEMATTRS_DB_JDBC_DRIVER_CLASSNAME=ph;Sb.SEMATTRS_DB_NAME=ih;Sb.SEMATTRS_DB_STATEMENT=nh;Sb.SEMATTRS_DB_OPERATION=oh;Sb.SEMATTRS_DB_MSSQL_INSTANCE_NAME=ah;Sb.SEMATTRS_DB_CASSANDRA_KEYSPACE=sh;Sb.SEMATTRS_DB_CASSANDRA_PAGE_SIZE=rh;Sb.SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL=th;Sb.SEMATTRS_DB_CASSANDRA_TABLE=eh;Sb.SEMATTRS_DB_CASSANDRA_IDEMPOTENCE=Af;Sb.SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT=Qf;Sb.SEMATTRS_DB_CASSANDRA_COORDINATOR_ID=Bf;Sb.SEMATTRS_DB_CASSANDRA_COORDINATOR_DC=If;Sb.SEMATTRS_DB_HBASE_NAMESPACE=Cf;Sb.SEMATTRS_DB_REDIS_DATABASE_INDEX=Ef;Sb.SEMATTRS_DB_MONGODB_COLLECTION=Yf;Sb.SEMATTRS_DB_SQL_TABLE=Jf;Sb.SEMATTRS_EXCEPTION_TYPE=Ff;Sb.SEMATTRS_EXCEPTION_MESSAGE=Gf;Sb.SEMATTRS_EXCEPTION_STACKTRACE=Df;Sb.SEMATTRS_EXCEPTION_ESCAPED=Zf;Sb.SEMATTRS_FAAS_TRIGGER=Wf;Sb.SEMATTRS_FAAS_EXECUTION=Uf;Sb.SEMATTRS_FAAS_DOCUMENT_COLLECTION=Xf;Sb.SEMATTRS_FAAS_DOCUMENT_OPERATION=wf;Sb.SEMATTRS_FAAS_DOCUMENT_TIME=Kf;Sb.SEMATTRS_FAAS_DOCUMENT_NAME=Vf;Sb.SEMATTRS_FAAS_TIME=zf;Sb.SEMATTRS_FAAS_CRON=$f;Sb.SEMATTRS_FAAS_COLDSTART=Hf;Sb.SEMATTRS_FAAS_INVOKED_NAME=Mf;Sb.SEMATTRS_FAAS_INVOKED_PROVIDER=Lf;Sb.SEMATTRS_FAAS_INVOKED_REGION=Nf;Sb.SEMATTRS_NET_TRANSPORT=jf;Sb.SEMATTRS_NET_PEER_IP=Rf;Sb.SEMATTRS_NET_PEER_PORT=qf;Sb.SEMATTRS_NET_PEER_NAME=Of;Sb.SEMATTRS_NET_HOST_IP=Tf;Sb.SEMATTRS_NET_HOST_PORT=Pf;Sb.SEMATTRS_NET_HOST_NAME=kf;Sb.SEMATTRS_NET_HOST_CONNECTION_TYPE=Sf;Sb.SEMATTRS_NET_HOST_CONNECTION_SUBTYPE=gf;Sb.SEMATTRS_NET_HOST_CARRIER_NAME=yf;Sb.SEMATTRS_NET_HOST_CARRIER_MCC=hf;Sb.SEMATTRS_NET_HOST_CARRIER_MNC=ff;Sb.SEMATTRS_NET_HOST_CARRIER_ICC=_f;Sb.SEMATTRS_PEER_SERVICE=vf;Sb.SEMATTRS_ENDUSER_ID=xf;Sb.SEMATTRS_ENDUSER_ROLE=bf;Sb.SEMATTRS_ENDUSER_SCOPE=mf;Sb.SEMATTRS_THREAD_ID=df;Sb.SEMATTRS_THREAD_NAME=cf;Sb.SEMATTRS_CODE_FUNCTION=uf;Sb.SEMATTRS_CODE_NAMESPACE=lf;Sb.SEMATTRS_CODE_FILEPATH=pf;Sb.SEMATTRS_CODE_LINENO=nf;Sb.SEMATTRS_HTTP_METHOD=of;Sb.SEMATTRS_HTTP_URL=af;Sb.SEMATTRS_HTTP_TARGET=sf;Sb.SEMATTRS_HTTP_HOST=rf;Sb.SEMATTRS_HTTP_SCHEME=tf;Sb.SEMATTRS_HTTP_STATUS_CODE=ef;Sb.SEMATTRS_HTTP_FLAVOR=A_;Sb.SEMATTRS_HTTP_USER_AGENT=Q_;Sb.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH=B_;Sb.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=I_;Sb.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH=C_;Sb.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=E_;Sb.SEMATTRS_HTTP_SERVER_NAME=Y_;Sb.SEMATTRS_HTTP_ROUTE=J_;Sb.SEMATTRS_HTTP_CLIENT_IP=F_;Sb.SEMATTRS_AWS_DYNAMODB_TABLE_NAMES=G_;Sb.SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY=D_;Sb.SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS=Z_;Sb.SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY=W_;Sb.SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY=U_;Sb.SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ=X_;Sb.SEMATTRS_AWS_DYNAMODB_PROJECTION=w_;Sb.SEMATTRS_AWS_DYNAMODB_LIMIT=K_;Sb.SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET=V_;Sb.SEMATTRS_AWS_DYNAMODB_INDEX_NAME=z_;Sb.SEMATTRS_AWS_DYNAMODB_SELECT=$_;Sb.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES=H_;Sb.SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES=M_;Sb.SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE=L_;Sb.SEMATTRS_AWS_DYNAMODB_TABLE_COUNT=N_;Sb.SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD=j_;Sb.SEMATTRS_AWS_DYNAMODB_SEGMENT=R_;Sb.SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS=q_;Sb.SEMATTRS_AWS_DYNAMODB_COUNT=O_;Sb.SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT=T_;Sb.SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS=P_;Sb.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES=k_;Sb.SEMATTRS_MESSAGING_SYSTEM=S_;Sb.SEMATTRS_MESSAGING_DESTINATION=g_;Sb.SEMATTRS_MESSAGING_DESTINATION_KIND=y_;Sb.SEMATTRS_MESSAGING_TEMP_DESTINATION=h_;Sb.SEMATTRS_MESSAGING_PROTOCOL=f_;Sb.SEMATTRS_MESSAGING_PROTOCOL_VERSION=__;Sb.SEMATTRS_MESSAGING_URL=v_;Sb.SEMATTRS_MESSAGING_MESSAGE_ID=x_;Sb.SEMATTRS_MESSAGING_CONVERSATION_ID=b_;Sb.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES=m_;Sb.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES=d_;Sb.SEMATTRS_MESSAGING_OPERATION=c_;Sb.SEMATTRS_MESSAGING_CONSUMER_ID=u_;Sb.SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY=l_;Sb.SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY=p_;Sb.SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP=i_;Sb.SEMATTRS_MESSAGING_KAFKA_CLIENT_ID=n_;Sb.SEMATTRS_MESSAGING_KAFKA_PARTITION=o_;Sb.SEMATTRS_MESSAGING_KAFKA_TOMBSTONE=a_;Sb.SEMATTRS_RPC_SYSTEM=s_;Sb.SEMATTRS_RPC_SERVICE=r_;Sb.SEMATTRS_RPC_METHOD=t_;Sb.SEMATTRS_RPC_GRPC_STATUS_CODE=e_;Sb.SEMATTRS_RPC_JSONRPC_VERSION=Av;Sb.SEMATTRS_RPC_JSONRPC_REQUEST_ID=Qv;Sb.SEMATTRS_RPC_JSONRPC_ERROR_CODE=Bv;Sb.SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE=Iv;Sb.SEMATTRS_MESSAGE_TYPE=Cv;Sb.SEMATTRS_MESSAGE_ID=Ev;Sb.SEMATTRS_MESSAGE_COMPRESSED_SIZE=Yv;Sb.SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE=Jv;Sb.SemanticAttributes=(0,II.createConstMap)([dh,ch,uh,lh,ph,ih,nh,oh,ah,sh,rh,th,eh,Af,Qf,Bf,If,Cf,Ef,Yf,Jf,Ff,Gf,Df,Zf,Wf,Uf,Xf,wf,Kf,Vf,zf,$f,Hf,Mf,Lf,Nf,jf,Rf,qf,Of,Tf,Pf,kf,Sf,gf,yf,hf,ff,_f,vf,xf,bf,mf,df,cf,uf,lf,pf,nf,of,af,sf,rf,tf,ef,A_,Q_,B_,I_,C_,E_,Y_,J_,F_,G_,D_,Z_,W_,U_,X_,w_,K_,V_,z_,$_,H_,M_,L_,N_,j_,R_,q_,O_,T_,P_,k_,S_,g_,y_,h_,f_,__,v_,x_,b_,m_,d_,c_,u_,l_,p_,i_,n_,o_,a_,s_,r_,t_,e_,Av,Qv,Bv,Iv,Cv,Ev,Yv,Jv]);var Fv="other_sql",Gv="mssql",Dv="mysql",Zv="oracle",Wv="db2",Uv="postgresql",Xv="redshift",wv="hive",Kv="cloudscape",Vv="hsqldb",zv="progress",$v="maxdb",Hv="hanadb",Mv="ingres",Lv="firstsql",Nv="edb",jv="cache",Rv="adabas",qv="firebird",Ov="derby",Tv="filemaker",Pv="informix",kv="instantdb",Sv="interbase",gv="mariadb",yv="netezza",hv="pervasive",fv="pointbase",_v="sqlite",vv="sybase",xv="teradata",bv="vertica",mv="h2",dv="coldfusion",cv="cassandra",uv="hbase",lv="mongodb",pv="redis",iv="couchbase",nv="couchdb",ov="cosmosdb",av="dynamodb",sv="neo4j",rv="geode",tv="elasticsearch",ev="memcached",Ax="cockroachdb";Sb.DBSYSTEMVALUES_OTHER_SQL=Fv;Sb.DBSYSTEMVALUES_MSSQL=Gv;Sb.DBSYSTEMVALUES_MYSQL=Dv;Sb.DBSYSTEMVALUES_ORACLE=Zv;Sb.DBSYSTEMVALUES_DB2=Wv;Sb.DBSYSTEMVALUES_POSTGRESQL=Uv;Sb.DBSYSTEMVALUES_REDSHIFT=Xv;Sb.DBSYSTEMVALUES_HIVE=wv;Sb.DBSYSTEMVALUES_CLOUDSCAPE=Kv;Sb.DBSYSTEMVALUES_HSQLDB=Vv;Sb.DBSYSTEMVALUES_PROGRESS=zv;Sb.DBSYSTEMVALUES_MAXDB=$v;Sb.DBSYSTEMVALUES_HANADB=Hv;Sb.DBSYSTEMVALUES_INGRES=Mv;Sb.DBSYSTEMVALUES_FIRSTSQL=Lv;Sb.DBSYSTEMVALUES_EDB=Nv;Sb.DBSYSTEMVALUES_CACHE=jv;Sb.DBSYSTEMVALUES_ADABAS=Rv;Sb.DBSYSTEMVALUES_FIREBIRD=qv;Sb.DBSYSTEMVALUES_DERBY=Ov;Sb.DBSYSTEMVALUES_FILEMAKER=Tv;Sb.DBSYSTEMVALUES_INFORMIX=Pv;Sb.DBSYSTEMVALUES_INSTANTDB=kv;Sb.DBSYSTEMVALUES_INTERBASE=Sv;Sb.DBSYSTEMVALUES_MARIADB=gv;Sb.DBSYSTEMVALUES_NETEZZA=yv;Sb.DBSYSTEMVALUES_PERVASIVE=hv;Sb.DBSYSTEMVALUES_POINTBASE=fv;Sb.DBSYSTEMVALUES_SQLITE=_v;Sb.DBSYSTEMVALUES_SYBASE=vv;Sb.DBSYSTEMVALUES_TERADATA=xv;Sb.DBSYSTEMVALUES_VERTICA=bv;Sb.DBSYSTEMVALUES_H2=mv;Sb.DBSYSTEMVALUES_COLDFUSION=dv;Sb.DBSYSTEMVALUES_CASSANDRA=cv;Sb.DBSYSTEMVALUES_HBASE=uv;Sb.DBSYSTEMVALUES_MONGODB=lv;Sb.DBSYSTEMVALUES_REDIS=pv;Sb.DBSYSTEMVALUES_COUCHBASE=iv;Sb.DBSYSTEMVALUES_COUCHDB=nv;Sb.DBSYSTEMVALUES_COSMOSDB=ov;Sb.DBSYSTEMVALUES_DYNAMODB=av;Sb.DBSYSTEMVALUES_NEO4J=sv;Sb.DBSYSTEMVALUES_GEODE=rv;Sb.DBSYSTEMVALUES_ELASTICSEARCH=tv;Sb.DBSYSTEMVALUES_MEMCACHED=ev;Sb.DBSYSTEMVALUES_COCKROACHDB=Ax;Sb.DbSystemValues=(0,II.createConstMap)([Fv,Gv,Dv,Zv,Wv,Uv,Xv,wv,Kv,Vv,zv,$v,Hv,Mv,Lv,Nv,jv,Rv,qv,Ov,Tv,Pv,kv,Sv,gv,yv,hv,fv,_v,vv,xv,bv,mv,dv,cv,uv,lv,pv,iv,nv,ov,av,sv,rv,tv,ev,Ax]);var Qx="all",Bx="each_quorum",Ix="quorum",Cx="local_quorum",Ex="one",Yx="two",Jx="three",Fx="local_one",Gx="any",Dx="serial",Zx="local_serial";Sb.DBCASSANDRACONSISTENCYLEVELVALUES_ALL=Qx;Sb.DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM=Bx;Sb.DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM=Ix;Sb.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM=Cx;Sb.DBCASSANDRACONSISTENCYLEVELVALUES_ONE=Ex;Sb.DBCASSANDRACONSISTENCYLEVELVALUES_TWO=Yx;Sb.DBCASSANDRACONSISTENCYLEVELVALUES_THREE=Jx;Sb.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE=Fx;Sb.DBCASSANDRACONSISTENCYLEVELVALUES_ANY=Gx;Sb.DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL=Dx;Sb.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL=Zx;Sb.DbCassandraConsistencyLevelValues=(0,II.createConstMap)([Qx,Bx,Ix,Cx,Ex,Yx,Jx,Fx,Gx,Dx,Zx]);var Wx="datasource",Ux="http",Xx="pubsub",wx="timer",Kx="other";Sb.FAASTRIGGERVALUES_DATASOURCE=Wx;Sb.FAASTRIGGERVALUES_HTTP=Ux;Sb.FAASTRIGGERVALUES_PUBSUB=Xx;Sb.FAASTRIGGERVALUES_TIMER=wx;Sb.FAASTRIGGERVALUES_OTHER=Kx;Sb.FaasTriggerValues=(0,II.createConstMap)([Wx,Ux,Xx,wx,Kx]);var Vx="insert",zx="edit",$x="delete";Sb.FAASDOCUMENTOPERATIONVALUES_INSERT=Vx;Sb.FAASDOCUMENTOPERATIONVALUES_EDIT=zx;Sb.FAASDOCUMENTOPERATIONVALUES_DELETE=$x;Sb.FaasDocumentOperationValues=(0,II.createConstMap)([Vx,zx,$x]);var Hx="alibaba_cloud",Mx="aws",Lx="azure",Nx="gcp";Sb.FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD=Hx;Sb.FAASINVOKEDPROVIDERVALUES_AWS=Mx;Sb.FAASINVOKEDPROVIDERVALUES_AZURE=Lx;Sb.FAASINVOKEDPROVIDERVALUES_GCP=Nx;Sb.FaasInvokedProviderValues=(0,II.createConstMap)([Hx,Mx,Lx,Nx]);var jx="ip_tcp",Rx="ip_udp",qx="ip",Ox="unix",Tx="pipe",Px="inproc",kx="other";Sb.NETTRANSPORTVALUES_IP_TCP=jx;Sb.NETTRANSPORTVALUES_IP_UDP=Rx;Sb.NETTRANSPORTVALUES_IP=qx;Sb.NETTRANSPORTVALUES_UNIX=Ox;Sb.NETTRANSPORTVALUES_PIPE=Tx;Sb.NETTRANSPORTVALUES_INPROC=Px;Sb.NETTRANSPORTVALUES_OTHER=kx;Sb.NetTransportValues=(0,II.createConstMap)([jx,Rx,qx,Ox,Tx,Px,kx]);var Sx="wifi",gx="wired",yx="cell",hx="unavailable",fx="unknown";Sb.NETHOSTCONNECTIONTYPEVALUES_WIFI=Sx;Sb.NETHOSTCONNECTIONTYPEVALUES_WIRED=gx;Sb.NETHOSTCONNECTIONTYPEVALUES_CELL=yx;Sb.NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE=hx;Sb.NETHOSTCONNECTIONTYPEVALUES_UNKNOWN=fx;Sb.NetHostConnectionTypeValues=(0,II.createConstMap)([Sx,gx,yx,hx,fx]);var _x="gprs",vx="edge",xx="umts",bx="cdma",mx="evdo_0",dx="evdo_a",cx="cdma2000_1xrtt",ux="hsdpa",lx="hsupa",px="hspa",ix="iden",nx="evdo_b",ox="lte",ax="ehrpd",sx="hspap",rx="gsm",tx="td_scdma",ex="iwlan",Ab="nr",Qb="nrnsa",Bb="lte_ca";Sb.NETHOSTCONNECTIONSUBTYPEVALUES_GPRS=_x;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_EDGE=vx;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_UMTS=xx;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA=bx;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0=mx;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A=dx;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT=cx;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA=ux;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA=lx;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_HSPA=px;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_IDEN=ix;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B=nx;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_LTE=ox;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD=ax;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP=sx;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_GSM=rx;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA=tx;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN=ex;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_NR=Ab;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA=Qb;Sb.NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA=Bb;Sb.NetHostConnectionSubtypeValues=(0,II.createConstMap)([_x,vx,xx,bx,mx,dx,cx,ux,lx,px,ix,nx,ox,ax,sx,rx,tx,ex,Ab,Qb,Bb]);var Ib="1.0",Cb="1.1",Eb="2.0",Yb="SPDY",Jb="QUIC";Sb.HTTPFLAVORVALUES_HTTP_1_0=Ib;Sb.HTTPFLAVORVALUES_HTTP_1_1=Cb;Sb.HTTPFLAVORVALUES_HTTP_2_0=Eb;Sb.HTTPFLAVORVALUES_SPDY=Yb;Sb.HTTPFLAVORVALUES_QUIC=Jb;Sb.HttpFlavorValues={HTTP_1_0:Ib,HTTP_1_1:Cb,HTTP_2_0:Eb,SPDY:Yb,QUIC:Jb};var Fb="queue",Gb="topic";Sb.MESSAGINGDESTINATIONKINDVALUES_QUEUE=Fb;Sb.MESSAGINGDESTINATIONKINDVALUES_TOPIC=Gb;Sb.MessagingDestinationKindValues=(0,II.createConstMap)([Fb,Gb]);var Db="receive",Zb="process";Sb.MESSAGINGOPERATIONVALUES_RECEIVE=Db;Sb.MESSAGINGOPERATIONVALUES_PROCESS=Zb;Sb.MessagingOperationValues=(0,II.createConstMap)([Db,Zb]);var Wb=0,Ub=1,Xb=2,wb=3,Kb=4,Vb=5,zb=6,$b=7,Hb=8,Mb=9,Lb=10,Nb=11,jb=12,Rb=13,qb=14,Ob=15,Tb=16;Sb.RPCGRPCSTATUSCODEVALUES_OK=Wb;Sb.RPCGRPCSTATUSCODEVALUES_CANCELLED=Ub;Sb.RPCGRPCSTATUSCODEVALUES_UNKNOWN=Xb;Sb.RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT=wb;Sb.RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED=Kb;Sb.RPCGRPCSTATUSCODEVALUES_NOT_FOUND=Vb;Sb.RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS=zb;Sb.RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED=$b;Sb.RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED=Hb;Sb.RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION=Mb;Sb.RPCGRPCSTATUSCODEVALUES_ABORTED=Lb;Sb.RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE=Nb;Sb.RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED=jb;Sb.RPCGRPCSTATUSCODEVALUES_INTERNAL=Rb;Sb.RPCGRPCSTATUSCODEVALUES_UNAVAILABLE=qb;Sb.RPCGRPCSTATUSCODEVALUES_DATA_LOSS=Ob;Sb.RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED=Tb;Sb.RpcGrpcStatusCodeValues={OK:Wb,CANCELLED:Ub,UNKNOWN:Xb,INVALID_ARGUMENT:wb,DEADLINE_EXCEEDED:Kb,NOT_FOUND:Vb,ALREADY_EXISTS:zb,PERMISSION_DENIED:$b,RESOURCE_EXHAUSTED:Hb,FAILED_PRECONDITION:Mb,ABORTED:Lb,OUT_OF_RANGE:Nb,UNIMPLEMENTED:jb,INTERNAL:Rb,UNAVAILABLE:qb,DATA_LOSS:Ob,UNAUTHENTICATED:Tb};var Pb="SENT",kb="RECEIVED";Sb.MESSAGETYPEVALUES_SENT=Pb;Sb.MESSAGETYPEVALUES_RECEIVED=kb;Sb.MessageTypeValues=(0,II.createConstMap)([Pb,kb])});var bb=X((YY)=>{var RPA=YY&&YY.__createBinding||(Object.create?function(A,Q,B,I){if(I===void 0)I=B;var C=Object.getOwnPropertyDescriptor(Q,B);if(!C||("get"in C?!Q.__esModule:C.writable||C.configurable))C={enumerable:!0,get:function(){return Q[B]}};Object.defineProperty(A,I,C)}:function(A,Q,B,I){if(I===void 0)I=B;A[I]=Q[B]}),qPA=YY&&YY.__exportStar||function(A,Q){for(var B in A)if(B!=="default"&&!Object.prototype.hasOwnProperty.call(Q,B))RPA(Q,A,B)};Object.defineProperty(YY,"__esModule",{value:!0});qPA(xb(),YY)});var Xc=X((Dc)=>{Object.defineProperty(Dc,"__esModule",{value:!0});Dc.SEMRESATTRS_K8S_STATEFULSET_NAME=Dc.SEMRESATTRS_K8S_STATEFULSET_UID=Dc.SEMRESATTRS_K8S_DEPLOYMENT_NAME=Dc.SEMRESATTRS_K8S_DEPLOYMENT_UID=Dc.SEMRESATTRS_K8S_REPLICASET_NAME=Dc.SEMRESATTRS_K8S_REPLICASET_UID=Dc.SEMRESATTRS_K8S_CONTAINER_NAME=Dc.SEMRESATTRS_K8S_POD_NAME=Dc.SEMRESATTRS_K8S_POD_UID=Dc.SEMRESATTRS_K8S_NAMESPACE_NAME=Dc.SEMRESATTRS_K8S_NODE_UID=Dc.SEMRESATTRS_K8S_NODE_NAME=Dc.SEMRESATTRS_K8S_CLUSTER_NAME=Dc.SEMRESATTRS_HOST_IMAGE_VERSION=Dc.SEMRESATTRS_HOST_IMAGE_ID=Dc.SEMRESATTRS_HOST_IMAGE_NAME=Dc.SEMRESATTRS_HOST_ARCH=Dc.SEMRESATTRS_HOST_TYPE=Dc.SEMRESATTRS_HOST_NAME=Dc.SEMRESATTRS_HOST_ID=Dc.SEMRESATTRS_FAAS_MAX_MEMORY=Dc.SEMRESATTRS_FAAS_INSTANCE=Dc.SEMRESATTRS_FAAS_VERSION=Dc.SEMRESATTRS_FAAS_ID=Dc.SEMRESATTRS_FAAS_NAME=Dc.SEMRESATTRS_DEVICE_MODEL_NAME=Dc.SEMRESATTRS_DEVICE_MODEL_IDENTIFIER=Dc.SEMRESATTRS_DEVICE_ID=Dc.SEMRESATTRS_DEPLOYMENT_ENVIRONMENT=Dc.SEMRESATTRS_CONTAINER_IMAGE_TAG=Dc.SEMRESATTRS_CONTAINER_IMAGE_NAME=Dc.SEMRESATTRS_CONTAINER_RUNTIME=Dc.SEMRESATTRS_CONTAINER_ID=Dc.SEMRESATTRS_CONTAINER_NAME=Dc.SEMRESATTRS_AWS_LOG_STREAM_ARNS=Dc.SEMRESATTRS_AWS_LOG_STREAM_NAMES=Dc.SEMRESATTRS_AWS_LOG_GROUP_ARNS=Dc.SEMRESATTRS_AWS_LOG_GROUP_NAMES=Dc.SEMRESATTRS_AWS_EKS_CLUSTER_ARN=Dc.SEMRESATTRS_AWS_ECS_TASK_REVISION=Dc.SEMRESATTRS_AWS_ECS_TASK_FAMILY=Dc.SEMRESATTRS_AWS_ECS_TASK_ARN=Dc.SEMRESATTRS_AWS_ECS_LAUNCHTYPE=Dc.SEMRESATTRS_AWS_ECS_CLUSTER_ARN=Dc.SEMRESATTRS_AWS_ECS_CONTAINER_ARN=Dc.SEMRESATTRS_CLOUD_PLATFORM=Dc.SEMRESATTRS_CLOUD_AVAILABILITY_ZONE=Dc.SEMRESATTRS_CLOUD_REGION=Dc.SEMRESATTRS_CLOUD_ACCOUNT_ID=Dc.SEMRESATTRS_CLOUD_PROVIDER=void 0;Dc.CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE=Dc.CLOUDPLATFORMVALUES_AZURE_APP_SERVICE=Dc.CLOUDPLATFORMVALUES_AZURE_FUNCTIONS=Dc.CLOUDPLATFORMVALUES_AZURE_AKS=Dc.CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES=Dc.CLOUDPLATFORMVALUES_AZURE_VM=Dc.CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK=Dc.CLOUDPLATFORMVALUES_AWS_LAMBDA=Dc.CLOUDPLATFORMVALUES_AWS_EKS=Dc.CLOUDPLATFORMVALUES_AWS_ECS=Dc.CLOUDPLATFORMVALUES_AWS_EC2=Dc.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC=Dc.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS=Dc.CloudProviderValues=Dc.CLOUDPROVIDERVALUES_GCP=Dc.CLOUDPROVIDERVALUES_AZURE=Dc.CLOUDPROVIDERVALUES_AWS=Dc.CLOUDPROVIDERVALUES_ALIBABA_CLOUD=Dc.SemanticResourceAttributes=Dc.SEMRESATTRS_WEBENGINE_DESCRIPTION=Dc.SEMRESATTRS_WEBENGINE_VERSION=Dc.SEMRESATTRS_WEBENGINE_NAME=Dc.SEMRESATTRS_TELEMETRY_AUTO_VERSION=Dc.SEMRESATTRS_TELEMETRY_SDK_VERSION=Dc.SEMRESATTRS_TELEMETRY_SDK_LANGUAGE=Dc.SEMRESATTRS_TELEMETRY_SDK_NAME=Dc.SEMRESATTRS_SERVICE_VERSION=Dc.SEMRESATTRS_SERVICE_INSTANCE_ID=Dc.SEMRESATTRS_SERVICE_NAMESPACE=Dc.SEMRESATTRS_SERVICE_NAME=Dc.SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION=Dc.SEMRESATTRS_PROCESS_RUNTIME_VERSION=Dc.SEMRESATTRS_PROCESS_RUNTIME_NAME=Dc.SEMRESATTRS_PROCESS_OWNER=Dc.SEMRESATTRS_PROCESS_COMMAND_ARGS=Dc.SEMRESATTRS_PROCESS_COMMAND_LINE=Dc.SEMRESATTRS_PROCESS_COMMAND=Dc.SEMRESATTRS_PROCESS_EXECUTABLE_PATH=Dc.SEMRESATTRS_PROCESS_EXECUTABLE_NAME=Dc.SEMRESATTRS_PROCESS_PID=Dc.SEMRESATTRS_OS_VERSION=Dc.SEMRESATTRS_OS_NAME=Dc.SEMRESATTRS_OS_DESCRIPTION=Dc.SEMRESATTRS_OS_TYPE=Dc.SEMRESATTRS_K8S_CRONJOB_NAME=Dc.SEMRESATTRS_K8S_CRONJOB_UID=Dc.SEMRESATTRS_K8S_JOB_NAME=Dc.SEMRESATTRS_K8S_JOB_UID=Dc.SEMRESATTRS_K8S_DAEMONSET_NAME=Dc.SEMRESATTRS_K8S_DAEMONSET_UID=void 0;Dc.TelemetrySdkLanguageValues=Dc.TELEMETRYSDKLANGUAGEVALUES_WEBJS=Dc.TELEMETRYSDKLANGUAGEVALUES_RUBY=Dc.TELEMETRYSDKLANGUAGEVALUES_PYTHON=Dc.TELEMETRYSDKLANGUAGEVALUES_PHP=Dc.TELEMETRYSDKLANGUAGEVALUES_NODEJS=Dc.TELEMETRYSDKLANGUAGEVALUES_JAVA=Dc.TELEMETRYSDKLANGUAGEVALUES_GO=Dc.TELEMETRYSDKLANGUAGEVALUES_ERLANG=Dc.TELEMETRYSDKLANGUAGEVALUES_DOTNET=Dc.TELEMETRYSDKLANGUAGEVALUES_CPP=Dc.OsTypeValues=Dc.OSTYPEVALUES_Z_OS=Dc.OSTYPEVALUES_SOLARIS=Dc.OSTYPEVALUES_AIX=Dc.OSTYPEVALUES_HPUX=Dc.OSTYPEVALUES_DRAGONFLYBSD=Dc.OSTYPEVALUES_OPENBSD=Dc.OSTYPEVALUES_NETBSD=Dc.OSTYPEVALUES_FREEBSD=Dc.OSTYPEVALUES_DARWIN=Dc.OSTYPEVALUES_LINUX=Dc.OSTYPEVALUES_WINDOWS=Dc.HostArchValues=Dc.HOSTARCHVALUES_X86=Dc.HOSTARCHVALUES_PPC64=Dc.HOSTARCHVALUES_PPC32=Dc.HOSTARCHVALUES_IA64=Dc.HOSTARCHVALUES_ARM64=Dc.HOSTARCHVALUES_ARM32=Dc.HOSTARCHVALUES_AMD64=Dc.AwsEcsLaunchtypeValues=Dc.AWSECSLAUNCHTYPEVALUES_FARGATE=Dc.AWSECSLAUNCHTYPEVALUES_EC2=Dc.CloudPlatformValues=Dc.CLOUDPLATFORMVALUES_GCP_APP_ENGINE=Dc.CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS=Dc.CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE=Dc.CLOUDPLATFORMVALUES_GCP_CLOUD_RUN=void 0;var JY=wV(),mb="cloud.provider",db="cloud.account.id",cb="cloud.region",ub="cloud.availability_zone",lb="cloud.platform",pb="aws.ecs.container.arn",ib="aws.ecs.cluster.arn",nb="aws.ecs.launchtype",ob="aws.ecs.task.arn",ab="aws.ecs.task.family",sb="aws.ecs.task.revision",rb="aws.eks.cluster.arn",tb="aws.log.group.names",eb="aws.log.group.arns",Am="aws.log.stream.names",Qm="aws.log.stream.arns",Bm="container.name",Im="container.id",Cm="container.runtime",Em="container.image.name",Ym="container.image.tag",Jm="deployment.environment",Fm="device.id",Gm="device.model.identifier",Dm="device.model.name",Zm="faas.name",Wm="faas.id",Um="faas.version",Xm="faas.instance",wm="faas.max_memory",Km="host.id",Vm="host.name",zm="host.type",$m="host.arch",Hm="host.image.name",Mm="host.image.id",Lm="host.image.version",Nm="k8s.cluster.name",jm="k8s.node.name",Rm="k8s.node.uid",qm="k8s.namespace.name",Om="k8s.pod.uid",Tm="k8s.pod.name",Pm="k8s.container.name",km="k8s.replicaset.uid",Sm="k8s.replicaset.name",gm="k8s.deployment.uid",ym="k8s.deployment.name",hm="k8s.statefulset.uid",fm="k8s.statefulset.name",_m="k8s.daemonset.uid",vm="k8s.daemonset.name",xm="k8s.job.uid",bm="k8s.job.name",mm="k8s.cronjob.uid",dm="k8s.cronjob.name",cm="os.type",um="os.description",lm="os.name",pm="os.version",im="process.pid",nm="process.executable.name",om="process.executable.path",am="process.command",sm="process.command_line",rm="process.command_args",tm="process.owner",em="process.runtime.name",Ad="process.runtime.version",Qd="process.runtime.description",Bd="service.name",Id="service.namespace",Cd="service.instance.id",Ed="service.version",Yd="telemetry.sdk.name",Jd="telemetry.sdk.language",Fd="telemetry.sdk.version",Gd="telemetry.auto.version",Dd="webengine.name",Zd="webengine.version",Wd="webengine.description";Dc.SEMRESATTRS_CLOUD_PROVIDER=mb;Dc.SEMRESATTRS_CLOUD_ACCOUNT_ID=db;Dc.SEMRESATTRS_CLOUD_REGION=cb;Dc.SEMRESATTRS_CLOUD_AVAILABILITY_ZONE=ub;Dc.SEMRESATTRS_CLOUD_PLATFORM=lb;Dc.SEMRESATTRS_AWS_ECS_CONTAINER_ARN=pb;Dc.SEMRESATTRS_AWS_ECS_CLUSTER_ARN=ib;Dc.SEMRESATTRS_AWS_ECS_LAUNCHTYPE=nb;Dc.SEMRESATTRS_AWS_ECS_TASK_ARN=ob;Dc.SEMRESATTRS_AWS_ECS_TASK_FAMILY=ab;Dc.SEMRESATTRS_AWS_ECS_TASK_REVISION=sb;Dc.SEMRESATTRS_AWS_EKS_CLUSTER_ARN=rb;Dc.SEMRESATTRS_AWS_LOG_GROUP_NAMES=tb;Dc.SEMRESATTRS_AWS_LOG_GROUP_ARNS=eb;Dc.SEMRESATTRS_AWS_LOG_STREAM_NAMES=Am;Dc.SEMRESATTRS_AWS_LOG_STREAM_ARNS=Qm;Dc.SEMRESATTRS_CONTAINER_NAME=Bm;Dc.SEMRESATTRS_CONTAINER_ID=Im;Dc.SEMRESATTRS_CONTAINER_RUNTIME=Cm;Dc.SEMRESATTRS_CONTAINER_IMAGE_NAME=Em;Dc.SEMRESATTRS_CONTAINER_IMAGE_TAG=Ym;Dc.SEMRESATTRS_DEPLOYMENT_ENVIRONMENT=Jm;Dc.SEMRESATTRS_DEVICE_ID=Fm;Dc.SEMRESATTRS_DEVICE_MODEL_IDENTIFIER=Gm;Dc.SEMRESATTRS_DEVICE_MODEL_NAME=Dm;Dc.SEMRESATTRS_FAAS_NAME=Zm;Dc.SEMRESATTRS_FAAS_ID=Wm;Dc.SEMRESATTRS_FAAS_VERSION=Um;Dc.SEMRESATTRS_FAAS_INSTANCE=Xm;Dc.SEMRESATTRS_FAAS_MAX_MEMORY=wm;Dc.SEMRESATTRS_HOST_ID=Km;Dc.SEMRESATTRS_HOST_NAME=Vm;Dc.SEMRESATTRS_HOST_TYPE=zm;Dc.SEMRESATTRS_HOST_ARCH=$m;Dc.SEMRESATTRS_HOST_IMAGE_NAME=Hm;Dc.SEMRESATTRS_HOST_IMAGE_ID=Mm;Dc.SEMRESATTRS_HOST_IMAGE_VERSION=Lm;Dc.SEMRESATTRS_K8S_CLUSTER_NAME=Nm;Dc.SEMRESATTRS_K8S_NODE_NAME=jm;Dc.SEMRESATTRS_K8S_NODE_UID=Rm;Dc.SEMRESATTRS_K8S_NAMESPACE_NAME=qm;Dc.SEMRESATTRS_K8S_POD_UID=Om;Dc.SEMRESATTRS_K8S_POD_NAME=Tm;Dc.SEMRESATTRS_K8S_CONTAINER_NAME=Pm;Dc.SEMRESATTRS_K8S_REPLICASET_UID=km;Dc.SEMRESATTRS_K8S_REPLICASET_NAME=Sm;Dc.SEMRESATTRS_K8S_DEPLOYMENT_UID=gm;Dc.SEMRESATTRS_K8S_DEPLOYMENT_NAME=ym;Dc.SEMRESATTRS_K8S_STATEFULSET_UID=hm;Dc.SEMRESATTRS_K8S_STATEFULSET_NAME=fm;Dc.SEMRESATTRS_K8S_DAEMONSET_UID=_m;Dc.SEMRESATTRS_K8S_DAEMONSET_NAME=vm;Dc.SEMRESATTRS_K8S_JOB_UID=xm;Dc.SEMRESATTRS_K8S_JOB_NAME=bm;Dc.SEMRESATTRS_K8S_CRONJOB_UID=mm;Dc.SEMRESATTRS_K8S_CRONJOB_NAME=dm;Dc.SEMRESATTRS_OS_TYPE=cm;Dc.SEMRESATTRS_OS_DESCRIPTION=um;Dc.SEMRESATTRS_OS_NAME=lm;Dc.SEMRESATTRS_OS_VERSION=pm;Dc.SEMRESATTRS_PROCESS_PID=im;Dc.SEMRESATTRS_PROCESS_EXECUTABLE_NAME=nm;Dc.SEMRESATTRS_PROCESS_EXECUTABLE_PATH=om;Dc.SEMRESATTRS_PROCESS_COMMAND=am;Dc.SEMRESATTRS_PROCESS_COMMAND_LINE=sm;Dc.SEMRESATTRS_PROCESS_COMMAND_ARGS=rm;Dc.SEMRESATTRS_PROCESS_OWNER=tm;Dc.SEMRESATTRS_PROCESS_RUNTIME_NAME=em;Dc.SEMRESATTRS_PROCESS_RUNTIME_VERSION=Ad;Dc.SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION=Qd;Dc.SEMRESATTRS_SERVICE_NAME=Bd;Dc.SEMRESATTRS_SERVICE_NAMESPACE=Id;Dc.SEMRESATTRS_SERVICE_INSTANCE_ID=Cd;Dc.SEMRESATTRS_SERVICE_VERSION=Ed;Dc.SEMRESATTRS_TELEMETRY_SDK_NAME=Yd;Dc.SEMRESATTRS_TELEMETRY_SDK_LANGUAGE=Jd;Dc.SEMRESATTRS_TELEMETRY_SDK_VERSION=Fd;Dc.SEMRESATTRS_TELEMETRY_AUTO_VERSION=Gd;Dc.SEMRESATTRS_WEBENGINE_NAME=Dd;Dc.SEMRESATTRS_WEBENGINE_VERSION=Zd;Dc.SEMRESATTRS_WEBENGINE_DESCRIPTION=Wd;Dc.SemanticResourceAttributes=(0,JY.createConstMap)([mb,db,cb,ub,lb,pb,ib,nb,ob,ab,sb,rb,tb,eb,Am,Qm,Bm,Im,Cm,Em,Ym,Jm,Fm,Gm,Dm,Zm,Wm,Um,Xm,wm,Km,Vm,zm,$m,Hm,Mm,Lm,Nm,jm,Rm,qm,Om,Tm,Pm,km,Sm,gm,ym,hm,fm,_m,vm,xm,bm,mm,dm,cm,um,lm,pm,im,nm,om,am,sm,rm,tm,em,Ad,Qd,Bd,Id,Cd,Ed,Yd,Jd,Fd,Gd,Dd,Zd,Wd]);var Ud="alibaba_cloud",Xd="aws",wd="azure",Kd="gcp";Dc.CLOUDPROVIDERVALUES_ALIBABA_CLOUD=Ud;Dc.CLOUDPROVIDERVALUES_AWS=Xd;Dc.CLOUDPROVIDERVALUES_AZURE=wd;Dc.CLOUDPROVIDERVALUES_GCP=Kd;Dc.CloudProviderValues=(0,JY.createConstMap)([Ud,Xd,wd,Kd]);var Vd="alibaba_cloud_ecs",zd="alibaba_cloud_fc",$d="aws_ec2",Hd="aws_ecs",Md="aws_eks",Ld="aws_lambda",Nd="aws_elastic_beanstalk",jd="azure_vm",Rd="azure_container_instances",qd="azure_aks",Od="azure_functions",Td="azure_app_service",Pd="gcp_compute_engine",kd="gcp_cloud_run",Sd="gcp_kubernetes_engine",gd="gcp_cloud_functions",yd="gcp_app_engine";Dc.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS=Vd;Dc.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC=zd;Dc.CLOUDPLATFORMVALUES_AWS_EC2=$d;Dc.CLOUDPLATFORMVALUES_AWS_ECS=Hd;Dc.CLOUDPLATFORMVALUES_AWS_EKS=Md;Dc.CLOUDPLATFORMVALUES_AWS_LAMBDA=Ld;Dc.CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK=Nd;Dc.CLOUDPLATFORMVALUES_AZURE_VM=jd;Dc.CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES=Rd;Dc.CLOUDPLATFORMVALUES_AZURE_AKS=qd;Dc.CLOUDPLATFORMVALUES_AZURE_FUNCTIONS=Od;Dc.CLOUDPLATFORMVALUES_AZURE_APP_SERVICE=Td;Dc.CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE=Pd;Dc.CLOUDPLATFORMVALUES_GCP_CLOUD_RUN=kd;Dc.CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE=Sd;Dc.CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS=gd;Dc.CLOUDPLATFORMVALUES_GCP_APP_ENGINE=yd;Dc.CloudPlatformValues=(0,JY.createConstMap)([Vd,zd,$d,Hd,Md,Ld,Nd,jd,Rd,qd,Od,Td,Pd,kd,Sd,gd,yd]);var hd="ec2",fd="fargate";Dc.AWSECSLAUNCHTYPEVALUES_EC2=hd;Dc.AWSECSLAUNCHTYPEVALUES_FARGATE=fd;Dc.AwsEcsLaunchtypeValues=(0,JY.createConstMap)([hd,fd]);var _d="amd64",vd="arm32",xd="arm64",bd="ia64",md="ppc32",dd="ppc64",cd="x86";Dc.HOSTARCHVALUES_AMD64=_d;Dc.HOSTARCHVALUES_ARM32=vd;Dc.HOSTARCHVALUES_ARM64=xd;Dc.HOSTARCHVALUES_IA64=bd;Dc.HOSTARCHVALUES_PPC32=md;Dc.HOSTARCHVALUES_PPC64=dd;Dc.HOSTARCHVALUES_X86=cd;Dc.HostArchValues=(0,JY.createConstMap)([_d,vd,xd,bd,md,dd,cd]);var ud="windows",ld="linux",pd="darwin",id="freebsd",nd="netbsd",od="openbsd",ad="dragonflybsd",sd="hpux",rd="aix",td="solaris",ed="z_os";Dc.OSTYPEVALUES_WINDOWS=ud;Dc.OSTYPEVALUES_LINUX=ld;Dc.OSTYPEVALUES_DARWIN=pd;Dc.OSTYPEVALUES_FREEBSD=id;Dc.OSTYPEVALUES_NETBSD=nd;Dc.OSTYPEVALUES_OPENBSD=od;Dc.OSTYPEVALUES_DRAGONFLYBSD=ad;Dc.OSTYPEVALUES_HPUX=sd;Dc.OSTYPEVALUES_AIX=rd;Dc.OSTYPEVALUES_SOLARIS=td;Dc.OSTYPEVALUES_Z_OS=ed;Dc.OsTypeValues=(0,JY.createConstMap)([ud,ld,pd,id,nd,od,ad,sd,rd,td,ed]);var Ac="cpp",Qc="dotnet",Bc="erlang",Ic="go",Cc="java",Ec="nodejs",Yc="php",Jc="python",Fc="ruby",Gc="webjs";Dc.TELEMETRYSDKLANGUAGEVALUES_CPP=Ac;Dc.TELEMETRYSDKLANGUAGEVALUES_DOTNET=Qc;Dc.TELEMETRYSDKLANGUAGEVALUES_ERLANG=Bc;Dc.TELEMETRYSDKLANGUAGEVALUES_GO=Ic;Dc.TELEMETRYSDKLANGUAGEVALUES_JAVA=Cc;Dc.TELEMETRYSDKLANGUAGEVALUES_NODEJS=Ec;Dc.TELEMETRYSDKLANGUAGEVALUES_PHP=Yc;Dc.TELEMETRYSDKLANGUAGEVALUES_PYTHON=Jc;Dc.TELEMETRYSDKLANGUAGEVALUES_RUBY=Fc;Dc.TELEMETRYSDKLANGUAGEVALUES_WEBJS=Gc;Dc.TelemetrySdkLanguageValues=(0,JY.createConstMap)([Ac,Qc,Bc,Ic,Cc,Ec,Yc,Jc,Fc,Gc])});var wc=X((FY)=>{var QgA=FY&&FY.__createBinding||(Object.create?function(A,Q,B,I){if(I===void 0)I=B;var C=Object.getOwnPropertyDescriptor(Q,B);if(!C||("get"in C?!Q.__esModule:C.writable||C.configurable))C={enumerable:!0,get:function(){return Q[B]}};Object.defineProperty(A,I,C)}:function(A,Q,B,I){if(I===void 0)I=B;A[I]=Q[B]}),BgA=FY&&FY.__exportStar||function(A,Q){for(var B in A)if(B!=="default"&&!Object.prototype.hasOwnProperty.call(Q,B))QgA(Q,A,B)};Object.defineProperty(FY,"__esModule",{value:!0});BgA(Xc(),FY)});var Hc=X((Kc)=>{Object.defineProperty(Kc,"__esModule",{value:!0});Kc.ATTR_EXCEPTION_TYPE=Kc.ATTR_EXCEPTION_STACKTRACE=Kc.ATTR_EXCEPTION_MESSAGE=Kc.ATTR_EXCEPTION_ESCAPED=Kc.ERROR_TYPE_VALUE_OTHER=Kc.ATTR_ERROR_TYPE=Kc.DOTNET_GC_HEAP_GENERATION_VALUE_POH=Kc.DOTNET_GC_HEAP_GENERATION_VALUE_LOH=Kc.DOTNET_GC_HEAP_GENERATION_VALUE_GEN2=Kc.DOTNET_GC_HEAP_GENERATION_VALUE_GEN1=Kc.DOTNET_GC_HEAP_GENERATION_VALUE_GEN0=Kc.ATTR_DOTNET_GC_HEAP_GENERATION=Kc.DB_SYSTEM_NAME_VALUE_POSTGRESQL=Kc.DB_SYSTEM_NAME_VALUE_MYSQL=Kc.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER=Kc.DB_SYSTEM_NAME_VALUE_MARIADB=Kc.ATTR_DB_SYSTEM_NAME=Kc.ATTR_DB_STORED_PROCEDURE_NAME=Kc.ATTR_DB_RESPONSE_STATUS_CODE=Kc.ATTR_DB_QUERY_TEXT=Kc.ATTR_DB_QUERY_SUMMARY=Kc.ATTR_DB_OPERATION_NAME=Kc.ATTR_DB_OPERATION_BATCH_SIZE=Kc.ATTR_DB_NAMESPACE=Kc.ATTR_DB_COLLECTION_NAME=Kc.ATTR_CODE_STACKTRACE=Kc.ATTR_CODE_LINE_NUMBER=Kc.ATTR_CODE_FUNCTION_NAME=Kc.ATTR_CODE_FILE_PATH=Kc.ATTR_CODE_COLUMN_NUMBER=Kc.ATTR_CLIENT_PORT=Kc.ATTR_CLIENT_ADDRESS=Kc.ATTR_ASPNETCORE_USER_IS_AUTHENTICATED=Kc.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS=Kc.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE=Kc.ATTR_ASPNETCORE_ROUTING_MATCH_STATUS=Kc.ATTR_ASPNETCORE_ROUTING_IS_FALLBACK=Kc.ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED=Kc.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED=Kc.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER=Kc.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER=Kc.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED=Kc.ATTR_ASPNETCORE_RATE_LIMITING_RESULT=Kc.ATTR_ASPNETCORE_RATE_LIMITING_POLICY=Kc.ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE=Kc.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED=Kc.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED=Kc.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED=Kc.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED=Kc.ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT=void 0;Kc.OTEL_STATUS_CODE_VALUE_ERROR=Kc.ATTR_OTEL_STATUS_CODE=Kc.ATTR_OTEL_SCOPE_VERSION=Kc.ATTR_OTEL_SCOPE_NAME=Kc.NETWORK_TYPE_VALUE_IPV6=Kc.NETWORK_TYPE_VALUE_IPV4=Kc.ATTR_NETWORK_TYPE=Kc.NETWORK_TRANSPORT_VALUE_UNIX=Kc.NETWORK_TRANSPORT_VALUE_UDP=Kc.NETWORK_TRANSPORT_VALUE_TCP=Kc.NETWORK_TRANSPORT_VALUE_QUIC=Kc.NETWORK_TRANSPORT_VALUE_PIPE=Kc.ATTR_NETWORK_TRANSPORT=Kc.ATTR_NETWORK_PROTOCOL_VERSION=Kc.ATTR_NETWORK_PROTOCOL_NAME=Kc.ATTR_NETWORK_PEER_PORT=Kc.ATTR_NETWORK_PEER_ADDRESS=Kc.ATTR_NETWORK_LOCAL_PORT=Kc.ATTR_NETWORK_LOCAL_ADDRESS=Kc.JVM_THREAD_STATE_VALUE_WAITING=Kc.JVM_THREAD_STATE_VALUE_TIMED_WAITING=Kc.JVM_THREAD_STATE_VALUE_TERMINATED=Kc.JVM_THREAD_STATE_VALUE_RUNNABLE=Kc.JVM_THREAD_STATE_VALUE_NEW=Kc.JVM_THREAD_STATE_VALUE_BLOCKED=Kc.ATTR_JVM_THREAD_STATE=Kc.ATTR_JVM_THREAD_DAEMON=Kc.JVM_MEMORY_TYPE_VALUE_NON_HEAP=Kc.JVM_MEMORY_TYPE_VALUE_HEAP=Kc.ATTR_JVM_MEMORY_TYPE=Kc.ATTR_JVM_MEMORY_POOL_NAME=Kc.ATTR_JVM_GC_NAME=Kc.ATTR_JVM_GC_ACTION=Kc.ATTR_HTTP_ROUTE=Kc.ATTR_HTTP_RESPONSE_STATUS_CODE=Kc.ATTR_HTTP_RESPONSE_HEADER=Kc.ATTR_HTTP_REQUEST_RESEND_COUNT=Kc.ATTR_HTTP_REQUEST_METHOD_ORIGINAL=Kc.HTTP_REQUEST_METHOD_VALUE_TRACE=Kc.HTTP_REQUEST_METHOD_VALUE_PUT=Kc.HTTP_REQUEST_METHOD_VALUE_POST=Kc.HTTP_REQUEST_METHOD_VALUE_PATCH=Kc.HTTP_REQUEST_METHOD_VALUE_OPTIONS=Kc.HTTP_REQUEST_METHOD_VALUE_HEAD=Kc.HTTP_REQUEST_METHOD_VALUE_GET=Kc.HTTP_REQUEST_METHOD_VALUE_DELETE=Kc.HTTP_REQUEST_METHOD_VALUE_CONNECT=Kc.HTTP_REQUEST_METHOD_VALUE_OTHER=Kc.ATTR_HTTP_REQUEST_METHOD=Kc.ATTR_HTTP_REQUEST_HEADER=void 0;Kc.ATTR_USER_AGENT_ORIGINAL=Kc.ATTR_URL_SCHEME=Kc.ATTR_URL_QUERY=Kc.ATTR_URL_PATH=Kc.ATTR_URL_FULL=Kc.ATTR_URL_FRAGMENT=Kc.ATTR_TELEMETRY_SDK_VERSION=Kc.ATTR_TELEMETRY_SDK_NAME=Kc.TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS=Kc.TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT=Kc.TELEMETRY_SDK_LANGUAGE_VALUE_RUST=Kc.TELEMETRY_SDK_LANGUAGE_VALUE_RUBY=Kc.TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON=Kc.TELEMETRY_SDK_LANGUAGE_VALUE_PHP=Kc.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS=Kc.TELEMETRY_SDK_LANGUAGE_VALUE_JAVA=Kc.TELEMETRY_SDK_LANGUAGE_VALUE_GO=Kc.TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG=Kc.TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET=Kc.TELEMETRY_SDK_LANGUAGE_VALUE_CPP=Kc.ATTR_TELEMETRY_SDK_LANGUAGE=Kc.SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS=Kc.SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS=Kc.SIGNALR_TRANSPORT_VALUE_LONG_POLLING=Kc.ATTR_SIGNALR_TRANSPORT=Kc.SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT=Kc.SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE=Kc.SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN=Kc.ATTR_SIGNALR_CONNECTION_STATUS=Kc.ATTR_SERVICE_VERSION=Kc.ATTR_SERVICE_NAMESPACE=Kc.ATTR_SERVICE_NAME=Kc.ATTR_SERVICE_INSTANCE_ID=Kc.ATTR_SERVER_PORT=Kc.ATTR_SERVER_ADDRESS=Kc.ATTR_OTEL_STATUS_DESCRIPTION=Kc.OTEL_STATUS_CODE_VALUE_OK=void 0;Kc.ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT="aspnetcore.diagnostics.exception.result";Kc.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED="aborted";Kc.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED="handled";Kc.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED="skipped";Kc.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED="unhandled";Kc.ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE="aspnetcore.diagnostics.handler.type";Kc.ATTR_ASPNETCORE_RATE_LIMITING_POLICY="aspnetcore.rate_limiting.policy";Kc.ATTR_ASPNETCORE_RATE_LIMITING_RESULT="aspnetcore.rate_limiting.result";Kc.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED="acquired";Kc.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER="endpoint_limiter";Kc.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER="global_limiter";Kc.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED="request_canceled";Kc.ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED="aspnetcore.request.is_unhandled";Kc.ATTR_ASPNETCORE_ROUTING_IS_FALLBACK="aspnetcore.routing.is_fallback";Kc.ATTR_ASPNETCORE_ROUTING_MATCH_STATUS="aspnetcore.routing.match_status";Kc.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE="failure";Kc.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS="success";Kc.ATTR_ASPNETCORE_USER_IS_AUTHENTICATED="aspnetcore.user.is_authenticated";Kc.ATTR_CLIENT_ADDRESS="client.address";Kc.ATTR_CLIENT_PORT="client.port";Kc.ATTR_CODE_COLUMN_NUMBER="code.column.number";Kc.ATTR_CODE_FILE_PATH="code.file.path";Kc.ATTR_CODE_FUNCTION_NAME="code.function.name";Kc.ATTR_CODE_LINE_NUMBER="code.line.number";Kc.ATTR_CODE_STACKTRACE="code.stacktrace";Kc.ATTR_DB_COLLECTION_NAME="db.collection.name";Kc.ATTR_DB_NAMESPACE="db.namespace";Kc.ATTR_DB_OPERATION_BATCH_SIZE="db.operation.batch.size";Kc.ATTR_DB_OPERATION_NAME="db.operation.name";Kc.ATTR_DB_QUERY_SUMMARY="db.query.summary";Kc.ATTR_DB_QUERY_TEXT="db.query.text";Kc.ATTR_DB_RESPONSE_STATUS_CODE="db.response.status_code";Kc.ATTR_DB_STORED_PROCEDURE_NAME="db.stored_procedure.name";Kc.ATTR_DB_SYSTEM_NAME="db.system.name";Kc.DB_SYSTEM_NAME_VALUE_MARIADB="mariadb";Kc.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER="microsoft.sql_server";Kc.DB_SYSTEM_NAME_VALUE_MYSQL="mysql";Kc.DB_SYSTEM_NAME_VALUE_POSTGRESQL="postgresql";Kc.ATTR_DOTNET_GC_HEAP_GENERATION="dotnet.gc.heap.generation";Kc.DOTNET_GC_HEAP_GENERATION_VALUE_GEN0="gen0";Kc.DOTNET_GC_HEAP_GENERATION_VALUE_GEN1="gen1";Kc.DOTNET_GC_HEAP_GENERATION_VALUE_GEN2="gen2";Kc.DOTNET_GC_HEAP_GENERATION_VALUE_LOH="loh";Kc.DOTNET_GC_HEAP_GENERATION_VALUE_POH="poh";Kc.ATTR_ERROR_TYPE="error.type";Kc.ERROR_TYPE_VALUE_OTHER="_OTHER";Kc.ATTR_EXCEPTION_ESCAPED="exception.escaped";Kc.ATTR_EXCEPTION_MESSAGE="exception.message";Kc.ATTR_EXCEPTION_STACKTRACE="exception.stacktrace";Kc.ATTR_EXCEPTION_TYPE="exception.type";var IgA=(A)=>`http.request.header.${A}`;Kc.ATTR_HTTP_REQUEST_HEADER=IgA;Kc.ATTR_HTTP_REQUEST_METHOD="http.request.method";Kc.HTTP_REQUEST_METHOD_VALUE_OTHER="_OTHER";Kc.HTTP_REQUEST_METHOD_VALUE_CONNECT="CONNECT";Kc.HTTP_REQUEST_METHOD_VALUE_DELETE="DELETE";Kc.HTTP_REQUEST_METHOD_VALUE_GET="GET";Kc.HTTP_REQUEST_METHOD_VALUE_HEAD="HEAD";Kc.HTTP_REQUEST_METHOD_VALUE_OPTIONS="OPTIONS";Kc.HTTP_REQUEST_METHOD_VALUE_PATCH="PATCH";Kc.HTTP_REQUEST_METHOD_VALUE_POST="POST";Kc.HTTP_REQUEST_METHOD_VALUE_PUT="PUT";Kc.HTTP_REQUEST_METHOD_VALUE_TRACE="TRACE";Kc.ATTR_HTTP_REQUEST_METHOD_ORIGINAL="http.request.method_original";Kc.ATTR_HTTP_REQUEST_RESEND_COUNT="http.request.resend_count";var CgA=(A)=>`http.response.header.${A}`;Kc.ATTR_HTTP_RESPONSE_HEADER=CgA;Kc.ATTR_HTTP_RESPONSE_STATUS_CODE="http.response.status_code";Kc.ATTR_HTTP_ROUTE="http.route";Kc.ATTR_JVM_GC_ACTION="jvm.gc.action";Kc.ATTR_JVM_GC_NAME="jvm.gc.name";Kc.ATTR_JVM_MEMORY_POOL_NAME="jvm.memory.pool.name";Kc.ATTR_JVM_MEMORY_TYPE="jvm.memory.type";Kc.JVM_MEMORY_TYPE_VALUE_HEAP="heap";Kc.JVM_MEMORY_TYPE_VALUE_NON_HEAP="non_heap";Kc.ATTR_JVM_THREAD_DAEMON="jvm.thread.daemon";Kc.ATTR_JVM_THREAD_STATE="jvm.thread.state";Kc.JVM_THREAD_STATE_VALUE_BLOCKED="blocked";Kc.JVM_THREAD_STATE_VALUE_NEW="new";Kc.JVM_THREAD_STATE_VALUE_RUNNABLE="runnable";Kc.JVM_THREAD_STATE_VALUE_TERMINATED="terminated";Kc.JVM_THREAD_STATE_VALUE_TIMED_WAITING="timed_waiting";Kc.JVM_THREAD_STATE_VALUE_WAITING="waiting";Kc.ATTR_NETWORK_LOCAL_ADDRESS="network.local.address";Kc.ATTR_NETWORK_LOCAL_PORT="network.local.port";Kc.ATTR_NETWORK_PEER_ADDRESS="network.peer.address";Kc.ATTR_NETWORK_PEER_PORT="network.peer.port";Kc.ATTR_NETWORK_PROTOCOL_NAME="network.protocol.name";Kc.ATTR_NETWORK_PROTOCOL_VERSION="network.protocol.version";Kc.ATTR_NETWORK_TRANSPORT="network.transport";Kc.NETWORK_TRANSPORT_VALUE_PIPE="pipe";Kc.NETWORK_TRANSPORT_VALUE_QUIC="quic";Kc.NETWORK_TRANSPORT_VALUE_TCP="tcp";Kc.NETWORK_TRANSPORT_VALUE_UDP="udp";Kc.NETWORK_TRANSPORT_VALUE_UNIX="unix";Kc.ATTR_NETWORK_TYPE="network.type";Kc.NETWORK_TYPE_VALUE_IPV4="ipv4";Kc.NETWORK_TYPE_VALUE_IPV6="ipv6";Kc.ATTR_OTEL_SCOPE_NAME="otel.scope.name";Kc.ATTR_OTEL_SCOPE_VERSION="otel.scope.version";Kc.ATTR_OTEL_STATUS_CODE="otel.status_code";Kc.OTEL_STATUS_CODE_VALUE_ERROR="ERROR";Kc.OTEL_STATUS_CODE_VALUE_OK="OK";Kc.ATTR_OTEL_STATUS_DESCRIPTION="otel.status_description";Kc.ATTR_SERVER_ADDRESS="server.address";Kc.ATTR_SERVER_PORT="server.port";Kc.ATTR_SERVICE_INSTANCE_ID="service.instance.id";Kc.ATTR_SERVICE_NAME="service.name";Kc.ATTR_SERVICE_NAMESPACE="service.namespace";Kc.ATTR_SERVICE_VERSION="service.version";Kc.ATTR_SIGNALR_CONNECTION_STATUS="signalr.connection.status";Kc.SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN="app_shutdown";Kc.SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE="normal_closure";Kc.SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT="timeout";Kc.ATTR_SIGNALR_TRANSPORT="signalr.transport";Kc.SIGNALR_TRANSPORT_VALUE_LONG_POLLING="long_polling";Kc.SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS="server_sent_events";Kc.SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS="web_sockets";Kc.ATTR_TELEMETRY_SDK_LANGUAGE="telemetry.sdk.language";Kc.TELEMETRY_SDK_LANGUAGE_VALUE_CPP="cpp";Kc.TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET="dotnet";Kc.TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG="erlang";Kc.TELEMETRY_SDK_LANGUAGE_VALUE_GO="go";Kc.TELEMETRY_SDK_LANGUAGE_VALUE_JAVA="java";Kc.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS="nodejs";Kc.TELEMETRY_SDK_LANGUAGE_VALUE_PHP="php";Kc.TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON="python";Kc.TELEMETRY_SDK_LANGUAGE_VALUE_RUBY="ruby";Kc.TELEMETRY_SDK_LANGUAGE_VALUE_RUST="rust";Kc.TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT="swift";Kc.TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS="webjs";Kc.ATTR_TELEMETRY_SDK_NAME="telemetry.sdk.name";Kc.ATTR_TELEMETRY_SDK_VERSION="telemetry.sdk.version";Kc.ATTR_URL_FRAGMENT="url.fragment";Kc.ATTR_URL_FULL="url.full";Kc.ATTR_URL_PATH="url.path";Kc.ATTR_URL_QUERY="url.query";Kc.ATTR_URL_SCHEME="url.scheme";Kc.ATTR_USER_AGENT_ORIGINAL="user_agent.original"});var jc=X((Mc)=>{Object.defineProperty(Mc,"__esModule",{value:!0});Mc.METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS=Mc.METRIC_KESTREL_UPGRADED_CONNECTIONS=Mc.METRIC_KESTREL_TLS_HANDSHAKE_DURATION=Mc.METRIC_KESTREL_REJECTED_CONNECTIONS=Mc.METRIC_KESTREL_QUEUED_REQUESTS=Mc.METRIC_KESTREL_QUEUED_CONNECTIONS=Mc.METRIC_KESTREL_CONNECTION_DURATION=Mc.METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES=Mc.METRIC_KESTREL_ACTIVE_CONNECTIONS=Mc.METRIC_JVM_THREAD_COUNT=Mc.METRIC_JVM_MEMORY_USED_AFTER_LAST_GC=Mc.METRIC_JVM_MEMORY_USED=Mc.METRIC_JVM_MEMORY_LIMIT=Mc.METRIC_JVM_MEMORY_COMMITTED=Mc.METRIC_JVM_GC_DURATION=Mc.METRIC_JVM_CPU_TIME=Mc.METRIC_JVM_CPU_RECENT_UTILIZATION=Mc.METRIC_JVM_CPU_COUNT=Mc.METRIC_JVM_CLASS_UNLOADED=Mc.METRIC_JVM_CLASS_LOADED=Mc.METRIC_JVM_CLASS_COUNT=Mc.METRIC_HTTP_SERVER_REQUEST_DURATION=Mc.METRIC_HTTP_CLIENT_REQUEST_DURATION=Mc.METRIC_DOTNET_TIMER_COUNT=Mc.METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT=Mc.METRIC_DOTNET_THREAD_POOL_THREAD_COUNT=Mc.METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH=Mc.METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET=Mc.METRIC_DOTNET_PROCESS_CPU_TIME=Mc.METRIC_DOTNET_PROCESS_CPU_COUNT=Mc.METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS=Mc.METRIC_DOTNET_JIT_COMPILED_METHODS=Mc.METRIC_DOTNET_JIT_COMPILED_IL_SIZE=Mc.METRIC_DOTNET_JIT_COMPILATION_TIME=Mc.METRIC_DOTNET_GC_PAUSE_TIME=Mc.METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE=Mc.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE=Mc.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE=Mc.METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED=Mc.METRIC_DOTNET_GC_COLLECTIONS=Mc.METRIC_DOTNET_EXCEPTIONS=Mc.METRIC_DOTNET_ASSEMBLY_COUNT=Mc.METRIC_DB_CLIENT_OPERATION_DURATION=Mc.METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS=Mc.METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS=Mc.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION=Mc.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE=Mc.METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS=Mc.METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES=Mc.METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS=void 0;Mc.METRIC_SIGNALR_SERVER_CONNECTION_DURATION=void 0;Mc.METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS="aspnetcore.diagnostics.exceptions";Mc.METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES="aspnetcore.rate_limiting.active_request_leases";Mc.METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS="aspnetcore.rate_limiting.queued_requests";Mc.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE="aspnetcore.rate_limiting.request.time_in_queue";Mc.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION="aspnetcore.rate_limiting.request_lease.duration";Mc.METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS="aspnetcore.rate_limiting.requests";Mc.METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS="aspnetcore.routing.match_attempts";Mc.METRIC_DB_CLIENT_OPERATION_DURATION="db.client.operation.duration";Mc.METRIC_DOTNET_ASSEMBLY_COUNT="dotnet.assembly.count";Mc.METRIC_DOTNET_EXCEPTIONS="dotnet.exceptions";Mc.METRIC_DOTNET_GC_COLLECTIONS="dotnet.gc.collections";Mc.METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED="dotnet.gc.heap.total_allocated";Mc.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE="dotnet.gc.last_collection.heap.fragmentation.size";Mc.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE="dotnet.gc.last_collection.heap.size";Mc.METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE="dotnet.gc.last_collection.memory.committed_size";Mc.METRIC_DOTNET_GC_PAUSE_TIME="dotnet.gc.pause.time";Mc.METRIC_DOTNET_JIT_COMPILATION_TIME="dotnet.jit.compilation.time";Mc.METRIC_DOTNET_JIT_COMPILED_IL_SIZE="dotnet.jit.compiled_il.size";Mc.METRIC_DOTNET_JIT_COMPILED_METHODS="dotnet.jit.compiled_methods";Mc.METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS="dotnet.monitor.lock_contentions";Mc.METRIC_DOTNET_PROCESS_CPU_COUNT="dotnet.process.cpu.count";Mc.METRIC_DOTNET_PROCESS_CPU_TIME="dotnet.process.cpu.time";Mc.METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET="dotnet.process.memory.working_set";Mc.METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH="dotnet.thread_pool.queue.length";Mc.METRIC_DOTNET_THREAD_POOL_THREAD_COUNT="dotnet.thread_pool.thread.count";Mc.METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT="dotnet.thread_pool.work_item.count";Mc.METRIC_DOTNET_TIMER_COUNT="dotnet.timer.count";Mc.METRIC_HTTP_CLIENT_REQUEST_DURATION="http.client.request.duration";Mc.METRIC_HTTP_SERVER_REQUEST_DURATION="http.server.request.duration";Mc.METRIC_JVM_CLASS_COUNT="jvm.class.count";Mc.METRIC_JVM_CLASS_LOADED="jvm.class.loaded";Mc.METRIC_JVM_CLASS_UNLOADED="jvm.class.unloaded";Mc.METRIC_JVM_CPU_COUNT="jvm.cpu.count";Mc.METRIC_JVM_CPU_RECENT_UTILIZATION="jvm.cpu.recent_utilization";Mc.METRIC_JVM_CPU_TIME="jvm.cpu.time";Mc.METRIC_JVM_GC_DURATION="jvm.gc.duration";Mc.METRIC_JVM_MEMORY_COMMITTED="jvm.memory.committed";Mc.METRIC_JVM_MEMORY_LIMIT="jvm.memory.limit";Mc.METRIC_JVM_MEMORY_USED="jvm.memory.used";Mc.METRIC_JVM_MEMORY_USED_AFTER_LAST_GC="jvm.memory.used_after_last_gc";Mc.METRIC_JVM_THREAD_COUNT="jvm.thread.count";Mc.METRIC_KESTREL_ACTIVE_CONNECTIONS="kestrel.active_connections";Mc.METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES="kestrel.active_tls_handshakes";Mc.METRIC_KESTREL_CONNECTION_DURATION="kestrel.connection.duration";Mc.METRIC_KESTREL_QUEUED_CONNECTIONS="kestrel.queued_connections";Mc.METRIC_KESTREL_QUEUED_REQUESTS="kestrel.queued_requests";Mc.METRIC_KESTREL_REJECTED_CONNECTIONS="kestrel.rejected_connections";Mc.METRIC_KESTREL_TLS_HANDSHAKE_DURATION="kestrel.tls_handshake.duration";Mc.METRIC_KESTREL_UPGRADED_CONNECTIONS="kestrel.upgraded_connections";Mc.METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS="signalr.server.active_connections";Mc.METRIC_SIGNALR_SERVER_CONNECTION_DURATION="signalr.server.connection.duration"});var Oc=X((Rc)=>{Object.defineProperty(Rc,"__esModule",{value:!0});Rc.EVENT_EXCEPTION=void 0;Rc.EVENT_EXCEPTION="exception"});var JA=X((gI)=>{var qfA=gI&&gI.__createBinding||(Object.create?function(A,Q,B,I){if(I===void 0)I=B;var C=Object.getOwnPropertyDescriptor(Q,B);if(!C||("get"in C?!Q.__esModule:C.writable||C.configurable))C={enumerable:!0,get:function(){return Q[B]}};Object.defineProperty(A,I,C)}:function(A,Q,B,I){if(I===void 0)I=B;A[I]=Q[B]}),dD=gI&&gI.__exportStar||function(A,Q){for(var B in A)if(B!=="default"&&!Object.prototype.hasOwnProperty.call(Q,B))qfA(Q,A,B)};Object.defineProperty(gI,"__esModule",{value:!0});dD(bb(),gI);dD(wc(),gI);dD(Hc(),gI);dD(jc(),gI);dD(Oc(),gI)});var kc=X((Tc)=>{Object.defineProperty(Tc,"__esModule",{value:!0});Tc.ATTR_PROCESS_RUNTIME_NAME=void 0;Tc.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var yc=X((Sc)=>{Object.defineProperty(Sc,"__esModule",{value:!0});Sc.SDK_INFO=void 0;var OfA=xh(),Z1=JA(),TfA=kc();Sc.SDK_INFO={[Z1.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[TfA.ATTR_PROCESS_RUNTIME_NAME]:"node",[Z1.ATTR_TELEMETRY_SDK_LANGUAGE]:Z1.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[Z1.ATTR_TELEMETRY_SDK_VERSION]:OfA.VERSION}});var fc=X((xE)=>{Object.defineProperty(xE,"__esModule",{value:!0});xE.otperformance=xE.SDK_INFO=xE._globalThis=xE.getStringListFromEnv=xE.getNumberFromEnv=xE.getBooleanFromEnv=xE.getStringFromEnv=void 0;var W1=gh();Object.defineProperty(xE,"getStringFromEnv",{enumerable:!0,get:function(){return W1.getStringFromEnv}});Object.defineProperty(xE,"getBooleanFromEnv",{enumerable:!0,get:function(){return W1.getBooleanFromEnv}});Object.defineProperty(xE,"getNumberFromEnv",{enumerable:!0,get:function(){return W1.getNumberFromEnv}});Object.defineProperty(xE,"getStringListFromEnv",{enumerable:!0,get:function(){return W1.getStringListFromEnv}});var PfA=fh();Object.defineProperty(xE,"_globalThis",{enumerable:!0,get:function(){return PfA._globalThis}});var kfA=yc();Object.defineProperty(xE,"SDK_INFO",{enumerable:!0,get:function(){return kfA.SDK_INFO}});xE.otperformance=performance});var KV=X((dC)=>{Object.defineProperty(dC,"__esModule",{value:!0});dC.getStringListFromEnv=dC.getNumberFromEnv=dC.getStringFromEnv=dC.getBooleanFromEnv=dC.otperformance=dC._globalThis=dC.SDK_INFO=void 0;var GY=fc();Object.defineProperty(dC,"SDK_INFO",{enumerable:!0,get:function(){return GY.SDK_INFO}});Object.defineProperty(dC,"_globalThis",{enumerable:!0,get:function(){return GY._globalThis}});Object.defineProperty(dC,"otperformance",{enumerable:!0,get:function(){return GY.otperformance}});Object.defineProperty(dC,"getBooleanFromEnv",{enumerable:!0,get:function(){return GY.getBooleanFromEnv}});Object.defineProperty(dC,"getStringFromEnv",{enumerable:!0,get:function(){return GY.getStringFromEnv}});Object.defineProperty(dC,"getNumberFromEnv",{enumerable:!0,get:function(){return GY.getNumberFromEnv}});Object.defineProperty(dC,"getStringListFromEnv",{enumerable:!0,get:function(){return GY.getStringListFromEnv}})});var dc=X((bc)=>{Object.defineProperty(bc,"__esModule",{value:!0});bc.addHrTimes=bc.isTimeInput=bc.isTimeInputHrTime=bc.hrTimeToMicroseconds=bc.hrTimeToMilliseconds=bc.hrTimeToNanoseconds=bc.hrTimeToTimeStamp=bc.hrTimeDuration=bc.timeInputToHrTime=bc.hrTime=bc.getTimeOrigin=bc.millisToHrTime=void 0;var U1=KV(),_c=9,gfA=6,yfA=Math.pow(10,gfA),X1=Math.pow(10,_c);function cD(A){let Q=A/1000,B=Math.trunc(Q),I=Math.round(A%1000*yfA);return[B,I]}bc.millisToHrTime=cD;function hfA(){return U1.otperformance.timeOrigin}bc.getTimeOrigin=hfA;function vc(A){let Q=cD(U1.otperformance.timeOrigin),B=cD(typeof A==="number"?A:U1.otperformance.now());return xc(Q,B)}bc.hrTime=vc;function ffA(A){if(VV(A))return A;else if(typeof A==="number")if(A=X1)B[1]-=X1,B[0]+=1;return B}bc.addHrTimes=xc});var lc=X((cc)=>{Object.defineProperty(cc,"__esModule",{value:!0});cc.unrefTimer=void 0;function efA(A){if(typeof A!=="number")A.unref()}cc.unrefTimer=efA});var ic=X((pc)=>{Object.defineProperty(pc,"__esModule",{value:!0});pc.ExportResultCode=void 0;var A_A;(function(A){A[A.SUCCESS=0]="SUCCESS",A[A.FAILED=1]="FAILED"})(A_A=pc.ExportResultCode||(pc.ExportResultCode={}))});var rc=X((ac)=>{Object.defineProperty(ac,"__esModule",{value:!0});ac.CompositePropagator=void 0;var nc=j();class oc{_propagators;_fields;constructor(A={}){this._propagators=A.propagators??[],this._fields=Array.from(new Set(this._propagators.map((Q)=>typeof Q.fields==="function"?Q.fields():[]).reduce((Q,B)=>Q.concat(B),[])))}inject(A,Q,B){for(let I of this._propagators)try{I.inject(A,Q,B)}catch(C){nc.diag.warn(`Failed to inject with ${I.constructor.name}. Err: ${C.message}`)}}extract(A,Q,B){return this._propagators.reduce((I,C)=>{try{return C.extract(I,Q,B)}catch(E){nc.diag.warn(`Failed to extract with ${C.constructor.name}. Err: ${E.message}`)}return I},A)}fields(){return this._fields.slice()}}ac.CompositePropagator=oc});var Au=X((tc)=>{Object.defineProperty(tc,"__esModule",{value:!0});tc.validateValue=tc.validateKey=void 0;var $V="[_0-9a-z-*/]",Q_A=`[a-z]${$V}{0,255}`,B_A=`[a-z0-9]${$V}{0,240}@[a-z]${$V}{0,13}`,I_A=new RegExp(`^(?:${Q_A}|${B_A})$`),C_A=/^[ -~]{0,255}[!-~]$/,E_A=/,|=/;function Y_A(A){return I_A.test(A)}tc.validateKey=Y_A;function J_A(A){return C_A.test(A)&&!E_A.test(A)}tc.validateValue=J_A});var MV=X((Eu)=>{Object.defineProperty(Eu,"__esModule",{value:!0});Eu.TraceState=void 0;var Qu=Au(),Bu=32,G_A=512,Iu=",",Cu="=";class HV{_internalState=new Map;constructor(A){if(A)this._parse(A)}set(A,Q){let B=this._clone();if(B._internalState.has(A))B._internalState.delete(A);return B._internalState.set(A,Q),B}unset(A){let Q=this._clone();return Q._internalState.delete(A),Q}get(A){return this._internalState.get(A)}serialize(){return this._keys().reduce((A,Q)=>{return A.push(Q+Cu+this.get(Q)),A},[]).join(Iu)}_parse(A){if(A.length>G_A)return;if(this._internalState=A.split(Iu).reverse().reduce((Q,B)=>{let I=B.trim(),C=I.indexOf(Cu);if(C!==-1){let E=I.slice(0,C),Y=I.slice(C+1,B.length);if((0,Qu.validateKey)(E)&&(0,Qu.validateValue)(Y))Q.set(E,Y)}return Q},new Map),this._internalState.size>Bu)this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,Bu))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let A=new HV;return A._internalState=new Map(this._internalState),A}}Eu.TraceState=HV});var Zu=X((Gu)=>{Object.defineProperty(Gu,"__esModule",{value:!0});Gu.W3CTraceContextPropagator=Gu.parseTraceParent=Gu.TRACE_STATE_HEADER=Gu.TRACE_PARENT_HEADER=void 0;var w1=j(),D_A=mD(),Z_A=MV();Gu.TRACE_PARENT_HEADER="traceparent";Gu.TRACE_STATE_HEADER="tracestate";var W_A="00",U_A="(?!ff)[\\da-f]{2}",X_A="(?![0]{32})[\\da-f]{32}",w_A="(?![0]{16})[\\da-f]{16}",K_A="[\\da-f]{2}",V_A=new RegExp(`^\\s?(${U_A})-(${X_A})-(${w_A})-(${K_A})(-.*)?\\s?$`);function Ju(A){let Q=V_A.exec(A);if(!Q)return null;if(Q[1]==="00"&&Q[5])return null;return{traceId:Q[2],spanId:Q[3],traceFlags:parseInt(Q[4],16)}}Gu.parseTraceParent=Ju;class Fu{inject(A,Q,B){let I=w1.trace.getSpanContext(A);if(!I||(0,D_A.isTracingSuppressed)(A)||!(0,w1.isSpanContextValid)(I))return;let C=`${W_A}-${I.traceId}-${I.spanId}-0${Number(I.traceFlags||w1.TraceFlags.NONE).toString(16)}`;if(B.set(Q,Gu.TRACE_PARENT_HEADER,C),I.traceState)B.set(Q,Gu.TRACE_STATE_HEADER,I.traceState.serialize())}extract(A,Q,B){let I=B.get(Q,Gu.TRACE_PARENT_HEADER);if(!I)return A;let C=Array.isArray(I)?I[0]:I;if(typeof C!=="string")return A;let E=Ju(C);if(!E)return A;E.isRemote=!0;let Y=B.get(Q,Gu.TRACE_STATE_HEADER);if(Y){let J=Array.isArray(Y)?Y.join(","):Y;E.traceState=new Z_A.TraceState(typeof J==="string"?J:void 0)}return w1.trace.setSpanContext(A,E)}fields(){return[Gu.TRACE_PARENT_HEADER,Gu.TRACE_STATE_HEADER]}}Gu.W3CTraceContextPropagator=Fu});var wu=X((Uu)=>{Object.defineProperty(Uu,"__esModule",{value:!0});Uu.getRPCMetadata=Uu.deleteRPCMetadata=Uu.setRPCMetadata=Uu.RPCType=void 0;var $_A=j(),LV=(0,$_A.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),H_A;(function(A){A.HTTP="http"})(H_A=Uu.RPCType||(Uu.RPCType={}));function M_A(A,Q){return A.setValue(LV,Q)}Uu.setRPCMetadata=M_A;function L_A(A){return A.deleteValue(LV)}Uu.deleteRPCMetadata=L_A;function N_A(A){return A.getValue(LV)}Uu.getRPCMetadata=N_A});var Lu=X((Hu)=>{Object.defineProperty(Hu,"__esModule",{value:!0});Hu.isPlainObject=void 0;var q_A="[object Object]",O_A="[object Null]",T_A="[object Undefined]",P_A=Function.prototype,Ku=P_A.toString,k_A=Ku.call(Object),S_A=Object.getPrototypeOf,Vu=Object.prototype,zu=Vu.hasOwnProperty,DY=Symbol?Symbol.toStringTag:void 0,$u=Vu.toString;function g_A(A){if(!y_A(A)||h_A(A)!==q_A)return!1;let Q=S_A(A);if(Q===null)return!0;let B=zu.call(Q,"constructor")&&Q.constructor;return typeof B=="function"&&B instanceof B&&Ku.call(B)===k_A}Hu.isPlainObject=g_A;function y_A(A){return A!=null&&typeof A=="object"}function h_A(A){if(A==null)return A===void 0?T_A:O_A;return DY&&DY in Object(A)?f_A(A):__A(A)}function f_A(A){let Q=zu.call(A,DY),B=A[DY],I=!1;try{A[DY]=void 0,I=!0}catch{}let C=$u.call(A);if(I)if(Q)A[DY]=B;else delete A[DY];return C}function __A(A){return $u.call(A)}});var Pu=X((Ou)=>{Object.defineProperty(Ou,"__esModule",{value:!0});Ou.merge=void 0;var Nu=Lu(),v_A=20;function x_A(...A){let Q=A.shift(),B=new WeakMap;while(A.length>0)Q=Ru(Q,A.shift(),0,B);return Q}Ou.merge=x_A;function NV(A){if($1(A))return A.slice();return A}function Ru(A,Q,B=0,I){let C;if(B>v_A)return;if(B++,z1(A)||z1(Q)||qu(Q))C=NV(Q);else if($1(A)){if(C=A.slice(),$1(Q))for(let E=0,Y=Q.length;E"u")delete C[F];else C[F]=G;else{let D=C[F],Z=G;if(ju(A,F,I)||ju(Q,F,I))delete C[F];else{if(uD(D)&&uD(Z)){let W=I.get(D)||[],U=I.get(Z)||[];W.push({obj:A,key:F}),U.push({obj:Q,key:F}),I.set(D,W),I.set(Z,U)}C[F]=Ru(C[F],G,B,I)}}}}else C=Q;return C}function ju(A,Q,B){let I=B.get(A[Q])||[];for(let C=0,E=I.length;C"u"||A instanceof Date||A instanceof RegExp||A===null}function b_A(A,Q){if(!(0,Nu.isPlainObject)(A)||!(0,Nu.isPlainObject)(Q))return!1;return!0}});var gu=X((ku)=>{Object.defineProperty(ku,"__esModule",{value:!0});ku.callWithTimeout=ku.TimeoutError=void 0;class H1 extends Error{constructor(A){super(A);Object.setPrototypeOf(this,H1.prototype)}}ku.TimeoutError=H1;function m_A(A,Q){let B,I=new Promise(function(E,Y){B=setTimeout(function(){Y(new H1("Operation timed out."))},Q)});return Promise.race([A,I]).then((C)=>{return clearTimeout(B),C},(C)=>{throw clearTimeout(B),C})}ku.callWithTimeout=m_A});var _u=X((hu)=>{Object.defineProperty(hu,"__esModule",{value:!0});hu.isUrlIgnored=hu.urlMatches=void 0;function yu(A,Q){if(typeof Q==="string")return A===Q;else return!!A.match(Q)}hu.urlMatches=yu;function c_A(A,Q){if(!Q)return!1;for(let B of Q)if(yu(A,B))return!0;return!1}hu.isUrlIgnored=c_A});var mu=X((xu)=>{Object.defineProperty(xu,"__esModule",{value:!0});xu.Deferred=void 0;class vu{_promise;_resolve;_reject;constructor(){this._promise=new Promise((A,Q)=>{this._resolve=A,this._reject=Q})}get promise(){return this._promise}resolve(A){this._resolve(A)}reject(A){this._reject(A)}}xu.Deferred=vu});var lu=X((cu)=>{Object.defineProperty(cu,"__esModule",{value:!0});cu.BindOnceFuture=void 0;var l_A=mu();class du{_isCalled=!1;_deferred=new l_A.Deferred;_callback;_that;constructor(A,Q){this._callback=A,this._that=Q}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...A){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...A)).then((Q)=>this._deferred.resolve(Q),(Q)=>this._deferred.reject(Q))}catch(Q){this._deferred.reject(Q)}}return this._deferred.promise}}cu.BindOnceFuture=du});var ou=X((iu)=>{Object.defineProperty(iu,"__esModule",{value:!0});iu.diagLogLevelFromString=void 0;var cC=j(),pu={ALL:cC.DiagLogLevel.ALL,VERBOSE:cC.DiagLogLevel.VERBOSE,DEBUG:cC.DiagLogLevel.DEBUG,INFO:cC.DiagLogLevel.INFO,WARN:cC.DiagLogLevel.WARN,ERROR:cC.DiagLogLevel.ERROR,NONE:cC.DiagLogLevel.NONE};function p_A(A){if(A==null)return;let Q=pu[A.toUpperCase()];if(Q==null)return cC.diag.warn(`Unknown log level "${A}", expected one of ${Object.keys(pu)}, using default`),cC.DiagLogLevel.INFO;return Q}iu.diagLogLevelFromString=p_A});var tu=X((su)=>{Object.defineProperty(su,"__esModule",{value:!0});su._export=void 0;var au=j(),i_A=mD();function n_A(A,Q){return new Promise((B)=>{au.context.with((0,i_A.suppressTracing)(au.context.active()),()=>{A.export(Q,B)})})}su._export=n_A});var RV=X((c)=>{Object.defineProperty(c,"__esModule",{value:!0});c.internal=c.diagLogLevelFromString=c.BindOnceFuture=c.urlMatches=c.isUrlIgnored=c.callWithTimeout=c.TimeoutError=c.merge=c.TraceState=c.unsuppressTracing=c.suppressTracing=c.isTracingSuppressed=c.setRPCMetadata=c.getRPCMetadata=c.deleteRPCMetadata=c.RPCType=c.parseTraceParent=c.W3CTraceContextPropagator=c.TRACE_STATE_HEADER=c.TRACE_PARENT_HEADER=c.CompositePropagator=c.otperformance=c.getStringListFromEnv=c.getNumberFromEnv=c.getBooleanFromEnv=c.getStringFromEnv=c._globalThis=c.SDK_INFO=c.parseKeyPairsIntoRecord=c.ExportResultCode=c.unrefTimer=c.timeInputToHrTime=c.millisToHrTime=c.isTimeInputHrTime=c.isTimeInput=c.hrTimeToTimeStamp=c.hrTimeToNanoseconds=c.hrTimeToMilliseconds=c.hrTimeToMicroseconds=c.hrTimeDuration=c.hrTime=c.getTimeOrigin=c.addHrTimes=c.loggingErrorHandler=c.setGlobalErrorHandler=c.globalErrorHandler=c.sanitizeAttributes=c.isAttributeValue=c.AnchoredClock=c.W3CBaggagePropagator=void 0;var o_A=Gh();Object.defineProperty(c,"W3CBaggagePropagator",{enumerable:!0,get:function(){return o_A.W3CBaggagePropagator}});var a_A=Uh();Object.defineProperty(c,"AnchoredClock",{enumerable:!0,get:function(){return a_A.AnchoredClock}});var eu=Hh();Object.defineProperty(c,"isAttributeValue",{enumerable:!0,get:function(){return eu.isAttributeValue}});Object.defineProperty(c,"sanitizeAttributes",{enumerable:!0,get:function(){return eu.sanitizeAttributes}});var Al=qh();Object.defineProperty(c,"globalErrorHandler",{enumerable:!0,get:function(){return Al.globalErrorHandler}});Object.defineProperty(c,"setGlobalErrorHandler",{enumerable:!0,get:function(){return Al.setGlobalErrorHandler}});var s_A=XV();Object.defineProperty(c,"loggingErrorHandler",{enumerable:!0,get:function(){return s_A.loggingErrorHandler}});var CI=dc();Object.defineProperty(c,"addHrTimes",{enumerable:!0,get:function(){return CI.addHrTimes}});Object.defineProperty(c,"getTimeOrigin",{enumerable:!0,get:function(){return CI.getTimeOrigin}});Object.defineProperty(c,"hrTime",{enumerable:!0,get:function(){return CI.hrTime}});Object.defineProperty(c,"hrTimeDuration",{enumerable:!0,get:function(){return CI.hrTimeDuration}});Object.defineProperty(c,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return CI.hrTimeToMicroseconds}});Object.defineProperty(c,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return CI.hrTimeToMilliseconds}});Object.defineProperty(c,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return CI.hrTimeToNanoseconds}});Object.defineProperty(c,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return CI.hrTimeToTimeStamp}});Object.defineProperty(c,"isTimeInput",{enumerable:!0,get:function(){return CI.isTimeInput}});Object.defineProperty(c,"isTimeInputHrTime",{enumerable:!0,get:function(){return CI.isTimeInputHrTime}});Object.defineProperty(c,"millisToHrTime",{enumerable:!0,get:function(){return CI.millisToHrTime}});Object.defineProperty(c,"timeInputToHrTime",{enumerable:!0,get:function(){return CI.timeInputToHrTime}});var r_A=lc();Object.defineProperty(c,"unrefTimer",{enumerable:!0,get:function(){return r_A.unrefTimer}});var t_A=ic();Object.defineProperty(c,"ExportResultCode",{enumerable:!0,get:function(){return t_A.ExportResultCode}});var e_A=ZV();Object.defineProperty(c,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return e_A.parseKeyPairsIntoRecord}});var ZY=KV();Object.defineProperty(c,"SDK_INFO",{enumerable:!0,get:function(){return ZY.SDK_INFO}});Object.defineProperty(c,"_globalThis",{enumerable:!0,get:function(){return ZY._globalThis}});Object.defineProperty(c,"getStringFromEnv",{enumerable:!0,get:function(){return ZY.getStringFromEnv}});Object.defineProperty(c,"getBooleanFromEnv",{enumerable:!0,get:function(){return ZY.getBooleanFromEnv}});Object.defineProperty(c,"getNumberFromEnv",{enumerable:!0,get:function(){return ZY.getNumberFromEnv}});Object.defineProperty(c,"getStringListFromEnv",{enumerable:!0,get:function(){return ZY.getStringListFromEnv}});Object.defineProperty(c,"otperformance",{enumerable:!0,get:function(){return ZY.otperformance}});var AvA=rc();Object.defineProperty(c,"CompositePropagator",{enumerable:!0,get:function(){return AvA.CompositePropagator}});var M1=Zu();Object.defineProperty(c,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return M1.TRACE_PARENT_HEADER}});Object.defineProperty(c,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return M1.TRACE_STATE_HEADER}});Object.defineProperty(c,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return M1.W3CTraceContextPropagator}});Object.defineProperty(c,"parseTraceParent",{enumerable:!0,get:function(){return M1.parseTraceParent}});var L1=wu();Object.defineProperty(c,"RPCType",{enumerable:!0,get:function(){return L1.RPCType}});Object.defineProperty(c,"deleteRPCMetadata",{enumerable:!0,get:function(){return L1.deleteRPCMetadata}});Object.defineProperty(c,"getRPCMetadata",{enumerable:!0,get:function(){return L1.getRPCMetadata}});Object.defineProperty(c,"setRPCMetadata",{enumerable:!0,get:function(){return L1.setRPCMetadata}});var jV=mD();Object.defineProperty(c,"isTracingSuppressed",{enumerable:!0,get:function(){return jV.isTracingSuppressed}});Object.defineProperty(c,"suppressTracing",{enumerable:!0,get:function(){return jV.suppressTracing}});Object.defineProperty(c,"unsuppressTracing",{enumerable:!0,get:function(){return jV.unsuppressTracing}});var QvA=MV();Object.defineProperty(c,"TraceState",{enumerable:!0,get:function(){return QvA.TraceState}});var BvA=Pu();Object.defineProperty(c,"merge",{enumerable:!0,get:function(){return BvA.merge}});var Ql=gu();Object.defineProperty(c,"TimeoutError",{enumerable:!0,get:function(){return Ql.TimeoutError}});Object.defineProperty(c,"callWithTimeout",{enumerable:!0,get:function(){return Ql.callWithTimeout}});var Bl=_u();Object.defineProperty(c,"isUrlIgnored",{enumerable:!0,get:function(){return Bl.isUrlIgnored}});Object.defineProperty(c,"urlMatches",{enumerable:!0,get:function(){return Bl.urlMatches}});var IvA=lu();Object.defineProperty(c,"BindOnceFuture",{enumerable:!0,get:function(){return IvA.BindOnceFuture}});var CvA=ou();Object.defineProperty(c,"diagLogLevelFromString",{enumerable:!0,get:function(){return CvA.diagLogLevelFromString}});var EvA=tu();c.internal={_export:EvA._export}});var Yl=X((Cl)=>{Object.defineProperty(Cl,"__esModule",{value:!0});Cl.VERSION=void 0;Cl.VERSION="0.213.0"});var Fl=X((Jl)=>{Object.defineProperty(Jl,"__esModule",{value:!0});Jl.SeverityNumber=void 0;var YvA;(function(A){A[A.UNSPECIFIED=0]="UNSPECIFIED",A[A.TRACE=1]="TRACE",A[A.TRACE2=2]="TRACE2",A[A.TRACE3=3]="TRACE3",A[A.TRACE4=4]="TRACE4",A[A.DEBUG=5]="DEBUG",A[A.DEBUG2=6]="DEBUG2",A[A.DEBUG3=7]="DEBUG3",A[A.DEBUG4=8]="DEBUG4",A[A.INFO=9]="INFO",A[A.INFO2=10]="INFO2",A[A.INFO3=11]="INFO3",A[A.INFO4=12]="INFO4",A[A.WARN=13]="WARN",A[A.WARN2=14]="WARN2",A[A.WARN3=15]="WARN3",A[A.WARN4=16]="WARN4",A[A.ERROR=17]="ERROR",A[A.ERROR2=18]="ERROR2",A[A.ERROR3=19]="ERROR3",A[A.ERROR4=20]="ERROR4",A[A.FATAL=21]="FATAL",A[A.FATAL2=22]="FATAL2",A[A.FATAL3=23]="FATAL3",A[A.FATAL4=24]="FATAL4"})(YvA=Jl.SeverityNumber||(Jl.SeverityNumber={}))});var N1=X((Gl)=>{Object.defineProperty(Gl,"__esModule",{value:!0});Gl.NOOP_LOGGER=Gl.NoopLogger=void 0;class OV{emit(A){}}Gl.NoopLogger=OV;Gl.NOOP_LOGGER=new OV});var Ul=X((Zl)=>{Object.defineProperty(Zl,"__esModule",{value:!0});Zl.API_BACKWARDS_COMPATIBILITY_VERSION=Zl.makeGetter=Zl._global=Zl.GLOBAL_LOGS_API_KEY=void 0;Zl.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");Zl._global=globalThis;function FvA(A,Q,B){return(I)=>I===A?Q:B}Zl.makeGetter=FvA;Zl.API_BACKWARDS_COMPATIBILITY_VERSION=1});var PV=X((Xl)=>{Object.defineProperty(Xl,"__esModule",{value:!0});Xl.NOOP_LOGGER_PROVIDER=Xl.NoopLoggerProvider=void 0;var WvA=N1();class TV{getLogger(A,Q,B){return new WvA.NoopLogger}}Xl.NoopLoggerProvider=TV;Xl.NOOP_LOGGER_PROVIDER=new TV});var $l=X((Vl)=>{Object.defineProperty(Vl,"__esModule",{value:!0});Vl.ProxyLogger=void 0;var XvA=N1();class Kl{constructor(A,Q,B,I){this._provider=A,this.name=Q,this.version=B,this.options=I}emit(A){this._getLogger().emit(A)}_getLogger(){if(this._delegate)return this._delegate;let A=this._provider._getDelegateLogger(this.name,this.version,this.options);if(!A)return XvA.NOOP_LOGGER;return this._delegate=A,this._delegate}}Vl.ProxyLogger=Kl});var Nl=X((Ml)=>{Object.defineProperty(Ml,"__esModule",{value:!0});Ml.ProxyLoggerProvider=void 0;var wvA=PV(),KvA=$l();class Hl{getLogger(A,Q,B){var I;return(I=this._getDelegateLogger(A,Q,B))!==null&&I!==void 0?I:new KvA.ProxyLogger(this,A,Q,B)}_getDelegate(){var A;return(A=this._delegate)!==null&&A!==void 0?A:wvA.NOOP_LOGGER_PROVIDER}_setDelegate(A){this._delegate=A}_getDelegateLogger(A,Q,B){var I;return(I=this._delegate)===null||I===void 0?void 0:I.getLogger(A,Q,B)}}Ml.ProxyLoggerProvider=Hl});var Ol=X((Rl)=>{Object.defineProperty(Rl,"__esModule",{value:!0});Rl.LogsAPI=void 0;var EI=Ul(),VvA=PV(),jl=Nl();class kV{constructor(){this._proxyLoggerProvider=new jl.ProxyLoggerProvider}static getInstance(){if(!this._instance)this._instance=new kV;return this._instance}setGlobalLoggerProvider(A){if(EI._global[EI.GLOBAL_LOGS_API_KEY])return this.getLoggerProvider();return EI._global[EI.GLOBAL_LOGS_API_KEY]=(0,EI.makeGetter)(EI.API_BACKWARDS_COMPATIBILITY_VERSION,A,VvA.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(A),A}getLoggerProvider(){var A,Q;return(Q=(A=EI._global[EI.GLOBAL_LOGS_API_KEY])===null||A===void 0?void 0:A.call(EI._global,EI.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&Q!==void 0?Q:this._proxyLoggerProvider}getLogger(A,Q,B){return this.getLoggerProvider().getLogger(A,Q,B)}disable(){delete EI._global[EI.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new jl.ProxyLoggerProvider}}Rl.LogsAPI=kV});var SV=X((lD)=>{Object.defineProperty(lD,"__esModule",{value:!0});lD.logs=lD.NoopLogger=lD.NOOP_LOGGER=lD.SeverityNumber=void 0;var zvA=Fl();Object.defineProperty(lD,"SeverityNumber",{enumerable:!0,get:function(){return zvA.SeverityNumber}});var Tl=N1();Object.defineProperty(lD,"NOOP_LOGGER",{enumerable:!0,get:function(){return Tl.NOOP_LOGGER}});Object.defineProperty(lD,"NoopLogger",{enumerable:!0,get:function(){return Tl.NoopLogger}});var $vA=Ol();lD.logs=$vA.LogsAPI.getInstance()});var gl=X((kl)=>{Object.defineProperty(kl,"__esModule",{value:!0});kl.disableInstrumentations=kl.enableInstrumentations=void 0;function HvA(A,Q,B,I){for(let C=0,E=A.length;CQ.disable())}kl.disableInstrumentations=MvA});var vl=X((fl)=>{Object.defineProperty(fl,"__esModule",{value:!0});fl.registerInstrumentations=void 0;var yl=j(),NvA=SV(),hl=gl();function jvA(A){let Q=A.tracerProvider||yl.trace.getTracerProvider(),B=A.meterProvider||yl.metrics.getMeterProvider(),I=A.loggerProvider||NvA.logs.getLoggerProvider(),C=A.instrumentations?.flat()??[];return(0,hl.enableInstrumentations)(C,Q,B,I),()=>{(0,hl.disableInstrumentations)(C)}}fl.registerInstrumentations=jvA});var ol=X((il)=>{Object.defineProperty(il,"__esModule",{value:!0});il.satisfies=void 0;var fV=j(),cl=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,RvA=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,qvA={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function OvA(A,Q,B){if(!TvA(A))return fV.diag.error(`Invalid version: ${A}`),!1;if(!Q)return!0;Q=Q.replace(/([<>=~^]+)\s+/g,"$1");let I=gvA(A);if(!I)return!1;let C=[],E=ul(I,Q,C,B);if(E&&!B?.includePrerelease)return kvA(I,C);return E}il.satisfies=OvA;function TvA(A){return typeof A==="string"&&cl.test(A)}function ul(A,Q,B,I){if(Q.includes("||")){let C=Q.trim().split("||");for(let E of C)if(gV(A,E,B,I))return!0;return!1}else if(Q.includes(" - "))Q=evA(Q,I);else if(Q.includes(" ")){let C=Q.trim().replace(/\s{2,}/g," ").split(" ");for(let E of C)if(!gV(A,E,B,I))return!1;return!0}return gV(A,Q,B,I)}function gV(A,Q,B,I){if(Q=SvA(Q,I),Q.includes(" "))return ul(A,Q,B,I);else{let C=yvA(Q);return B.push(C),PvA(A,C)}}function PvA(A,Q){if(Q.invalid)return!1;if(!Q.version||hV(Q.version))return!0;let B=bl(A.versionSegments||[],Q.versionSegments||[]);if(B===0){let I=A.prereleaseSegments||[],C=Q.prereleaseSegments||[];if(!I.length&&!C.length)B=0;else if(!I.length&&C.length)B=1;else if(I.length&&!C.length)B=-1;else B=bl(I,C)}return qvA[Q.op]?.includes(B)}function kvA(A,Q){if(A.prerelease)return Q.some((B)=>B.prerelease&&B.version===A.version);return!0}function SvA(A,Q){return A=A.trim(),A=rvA(A,Q),A=svA(A),A=tvA(A,Q),A=A.trim(),A}function pQ(A){return!A||A.toLowerCase()==="x"||A==="*"}function gvA(A){let Q=A.match(cl);if(!Q){fV.diag.error(`Invalid version: ${A}`);return}let B=Q.groups.version,I=Q.groups.prerelease,C=Q.groups.build,E=B.split("."),Y=I?.split(".");return{op:void 0,version:B,versionSegments:E,versionSegmentCount:E.length,prerelease:I,prereleaseSegments:Y,prereleaseSegmentCount:Y?Y.length:0,build:C}}function yvA(A){if(!A)return{};let Q=A.match(RvA);if(!Q)return fV.diag.error(`Invalid range: ${A}`),{invalid:!0};let B=Q.groups.op,I=Q.groups.version,C=Q.groups.prerelease,E=Q.groups.build,Y=I.split("."),J=C?.split(".");if(B==="==")B="=";return{op:B||"=",version:I,versionSegments:Y,versionSegmentCount:Y.length,prerelease:C,prereleaseSegments:J,prereleaseSegmentCount:J?J.length:0,build:E}}function hV(A){return A==="*"||A==="x"||A==="X"}function xl(A){let Q=parseInt(A,10);return isNaN(Q)?A:Q}function hvA(A,Q){if(typeof A===typeof Q)if(typeof A==="number")return[A,Q];else if(typeof A==="string")return[A,Q];else throw Error("Version segments can only be strings or numbers");else return[String(A),String(Q)]}function fvA(A,Q){if(hV(A)||hV(Q))return 0;let[B,I]=hvA(xl(A),xl(Q));if(B>I)return 1;else if(B)?=?)",ml=`(?:${pl}|${_vA})`,xvA=`(?:-(${ml}(?:\\.${ml})*))`,dl=`${ll}+`,bvA=`(?:\\+(${dl}(?:\\.${dl})*))`,yV=`${pl}|x|X|\\*`,pD=`[v=\\s]*(${yV})(?:\\.(${yV})(?:\\.(${yV})(?:${xvA})?${bvA}?)?)?`,mvA=`^${vvA}\\s*${pD}$`,dvA=new RegExp(mvA),cvA=`^\\s*(${pD})\\s+-\\s+(${pD})\\s*$`,uvA=new RegExp(cvA),lvA="(?:~>?)",pvA=`^${lvA}${pD}$`,ivA=new RegExp(pvA),nvA="(?:\\^)",ovA=`^${nvA}${pD}$`,avA=new RegExp(ovA);function svA(A){let Q=ivA;return A.replace(Q,(B,I,C,E,Y)=>{let J;if(pQ(I))J="";else if(pQ(C))J=`>=${I}.0.0 <${+I+1}.0.0-0`;else if(pQ(E))J=`>=${I}.${C}.0 <${I}.${+C+1}.0-0`;else if(Y)J=`>=${I}.${C}.${E}-${Y} <${I}.${+C+1}.0-0`;else J=`>=${I}.${C}.${E} <${I}.${+C+1}.0-0`;return J})}function rvA(A,Q){let B=avA,I=Q?.includePrerelease?"-0":"";return A.replace(B,(C,E,Y,J,F)=>{let G;if(pQ(E))G="";else if(pQ(Y))G=`>=${E}.0.0${I} <${+E+1}.0.0-0`;else if(pQ(J))if(E==="0")G=`>=${E}.${Y}.0${I} <${E}.${+Y+1}.0-0`;else G=`>=${E}.${Y}.0${I} <${+E+1}.0.0-0`;else if(F)if(E==="0")if(Y==="0")G=`>=${E}.${Y}.${J}-${F} <${E}.${Y}.${+J+1}-0`;else G=`>=${E}.${Y}.${J}-${F} <${E}.${+Y+1}.0-0`;else G=`>=${E}.${Y}.${J}-${F} <${+E+1}.0.0-0`;else if(E==="0")if(Y==="0")G=`>=${E}.${Y}.${J}${I} <${E}.${Y}.${+J+1}-0`;else G=`>=${E}.${Y}.${J}${I} <${E}.${+Y+1}.0-0`;else G=`>=${E}.${Y}.${J} <${+E+1}.0.0-0`;return G})}function tvA(A,Q){let B=dvA;return A.replace(B,(I,C,E,Y,J,F)=>{let G=pQ(E),D=G||pQ(Y),Z=D||pQ(J),W=Z;if(C==="="&&W)C="";if(F=Q?.includePrerelease?"-0":"",G)if(C===">"||C==="<")I="<0.0.0-0";else I="*";else if(C&&W){if(D)Y=0;if(J=0,C===">")if(C=">=",D)E=+E+1,Y=0,J=0;else Y=+Y+1,J=0;else if(C==="<=")if(C="<",D)E=+E+1;else Y=+Y+1;if(C==="<")F="-0";I=`${C+E}.${Y}.${J}${F}`}else if(D)I=`>=${E}.0.0${F} <${+E+1}.0.0-0`;else if(Z)I=`>=${E}.${Y}.0${F} <${E}.${+Y+1}.0-0`;return I})}function evA(A,Q){let B=uvA;return A.replace(B,(I,C,E,Y,J,F,G,D,Z,W,U,w)=>{if(pQ(E))C="";else if(pQ(Y))C=`>=${E}.0.0${Q?.includePrerelease?"-0":""}`;else if(pQ(J))C=`>=${E}.${Y}.0${Q?.includePrerelease?"-0":""}`;else if(F)C=`>=${C}`;else C=`>=${C}${Q?.includePrerelease?"-0":""}`;if(pQ(Z))D="";else if(pQ(W))D=`<${+Z+1}.0.0-0`;else if(pQ(U))D=`<${Z}.${+W+1}.0-0`;else if(w)D=`<=${Z}.${W}.${U}-${w}`;else if(Q?.includePrerelease)D=`<${Z}.${W}.${+U+1}-0`;else D=`<=${D}`;return`${C} ${D}`.trim()})}});var bV=X((al)=>{Object.defineProperty(al,"__esModule",{value:!0});al.massUnwrap=al.unwrap=al.massWrap=al.wrap=void 0;var iQ=console.error.bind(console);function iD(A,Q,B){let I=!!A[Q]&&Object.prototype.propertyIsEnumerable.call(A,Q);Object.defineProperty(A,Q,{configurable:!0,enumerable:I,writable:!0,value:B})}var AxA=(A,Q,B)=>{if(!A||!A[Q]){iQ("no original function "+String(Q)+" to wrap");return}if(!B){iQ("no wrapper function"),iQ(Error().stack);return}let I=A[Q];if(typeof I!=="function"||typeof B!=="function"){iQ("original object and wrapper must be functions");return}let C=B(I,Q);return iD(C,"__original",I),iD(C,"__unwrap",()=>{if(A[Q]===C)iD(A,Q,I)}),iD(C,"__wrapped",!0),iD(A,Q,C),C};al.wrap=AxA;var QxA=(A,Q,B)=>{if(!A){iQ("must provide one or more modules to patch"),iQ(Error().stack);return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){iQ("must provide one or more functions to wrap on modules");return}A.forEach((I)=>{Q.forEach((C)=>{al.wrap(I,C,B)})})};al.massWrap=QxA;var BxA=(A,Q)=>{if(!A||!A[Q]){iQ("no function to unwrap."),iQ(Error().stack);return}let B=A[Q];if(!B.__unwrap)iQ("no original to unwrap to -- has "+String(Q)+" already been unwrapped?");else{B.__unwrap();return}};al.unwrap=BxA;var IxA=(A,Q)=>{if(!A){iQ("must provide one or more modules to patch"),iQ(Error().stack);return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){iQ("must provide one or more functions to unwrap on modules");return}A.forEach((B)=>{Q.forEach((I)=>{al.unwrap(B,I)})})};al.massUnwrap=IxA;function nD(A){if(A&&A.logger)if(typeof A.logger!=="function")iQ("new logger isn't a function, not replacing");else iQ=A.logger}al.default=nD;nD.wrap=al.wrap;nD.massWrap=al.massWrap;nD.unwrap=al.unwrap;nD.massUnwrap=al.massUnwrap});var Ap=X((tl)=>{Object.defineProperty(tl,"__esModule",{value:!0});tl.InstrumentationAbstract=void 0;var mV=j(),ExA=SV(),j1=bV();class rl{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(A,Q,B){this.instrumentationName=A,this.instrumentationVersion=Q,this.setConfig(B),this._diag=mV.diag.createComponentLogger({namespace:A}),this._tracer=mV.trace.getTracer(A,Q),this._meter=mV.metrics.getMeter(A,Q),this._logger=ExA.logs.getLogger(A,Q),this._updateMetricInstruments()}_wrap=j1.wrap;_unwrap=j1.unwrap;_massWrap=j1.massWrap;_massUnwrap=j1.massUnwrap;get meter(){return this._meter}setMeterProvider(A){this._meter=A.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(A){this._logger=A.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let A=this.init()??[];if(!Array.isArray(A))return[A];return A}_updateMetricInstruments(){return}getConfig(){return this._config}setConfig(A){this._config={enabled:!0,...A}}setTracerProvider(A){this._tracer=A.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(A,Q,B,I){if(!A)return;try{A(B,I)}catch(C){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:Q},C)}}}tl.InstrumentationAbstract=rl});var Bp=X((mwQ,Qp)=>{var JF=1000,FF=JF*60,GF=FF*60,WY=GF*24,YxA=WY*7,JxA=WY*365.25;Qp.exports=function(A,Q){Q=Q||{};var B=typeof A;if(B==="string"&&A.length>0)return FxA(A);else if(B==="number"&&isFinite(A))return Q.long?DxA(A):GxA(A);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(A))};function FxA(A){if(A=String(A),A.length>100)return;var Q=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(A);if(!Q)return;var B=parseFloat(Q[1]),I=(Q[2]||"ms").toLowerCase();switch(I){case"years":case"year":case"yrs":case"yr":case"y":return B*JxA;case"weeks":case"week":case"w":return B*YxA;case"days":case"day":case"d":return B*WY;case"hours":case"hour":case"hrs":case"hr":case"h":return B*GF;case"minutes":case"minute":case"mins":case"min":case"m":return B*FF;case"seconds":case"second":case"secs":case"sec":case"s":return B*JF;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return B;default:return}}function GxA(A){var Q=Math.abs(A);if(Q>=WY)return Math.round(A/WY)+"d";if(Q>=GF)return Math.round(A/GF)+"h";if(Q>=FF)return Math.round(A/FF)+"m";if(Q>=JF)return Math.round(A/JF)+"s";return A+"ms"}function DxA(A){var Q=Math.abs(A);if(Q>=WY)return R1(A,Q,WY,"day");if(Q>=GF)return R1(A,Q,GF,"hour");if(Q>=FF)return R1(A,Q,FF,"minute");if(Q>=JF)return R1(A,Q,JF,"second");return A+" ms"}function R1(A,Q,B,I){var C=Q>=B*1.5;return Math.round(A/B)+" "+I+(C?"s":"")}});var dV=X((dwQ,Ip)=>{function ZxA(A){B.debug=B,B.default=B,B.coerce=F,B.disable=Y,B.enable=C,B.enabled=J,B.humanize=Bp(),B.destroy=G,Object.keys(A).forEach((D)=>{B[D]=A[D]}),B.names=[],B.skips=[],B.formatters={};function Q(D){let Z=0;for(let W=0;W{if(y==="%%")return"%";N++;let vA=B.formatters[f];if(typeof vA==="function"){let uA=V[N];y=vA.call(z,uA),V.splice(N,1),N--}return y}),B.formatArgs.call(z,V),(z.log||B.log).apply(z,V)}if(K.namespace=D,K.useColors=B.useColors(),K.color=B.selectColor(D),K.extend=I,K.destroy=B.destroy,Object.defineProperty(K,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(W!==null)return W;if(U!==B.namespaces)U=B.namespaces,w=B.enabled(D);return w},set:(V)=>{W=V}}),typeof B.init==="function")B.init(K);return K}function I(D,Z){let W=B(this.namespace+(typeof Z>"u"?":":Z)+D);return W.log=this.log,W}function C(D){B.save(D),B.namespaces=D,B.names=[],B.skips=[];let Z=(typeof D==="string"?D:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let W of Z)if(W[0]==="-")B.skips.push(W.slice(1));else B.names.push(W)}function E(D,Z){let W=0,U=0,w=-1,K=0;while(W"-"+Z)].join(",");return B.enable(""),D}function J(D){for(let Z of B.skips)if(E(D,Z))return!1;for(let Z of B.names)if(E(D,Z))return!0;return!1}function F(D){if(D instanceof Error)return D.stack||D.message;return D}function G(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return B.enable(B.load()),B}Ip.exports=ZxA});var Ep=X((Cp,q1)=>{Cp.formatArgs=UxA;Cp.save=XxA;Cp.load=wxA;Cp.useColors=WxA;Cp.storage=KxA();Cp.destroy=(()=>{let A=!1;return()=>{if(!A)A=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();Cp.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function WxA(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let A;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(A=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(A[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function UxA(A){if(A[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+A[0]+(this.useColors?"%c ":" ")+"+"+q1.exports.humanize(this.diff),!this.useColors)return;let Q="color: "+this.color;A.splice(1,0,Q,"color: inherit");let B=0,I=0;A[0].replace(/%[a-zA-Z%]/g,(C)=>{if(C==="%%")return;if(B++,C==="%c")I=B}),A.splice(I,0,Q)}Cp.log=console.debug||console.log||(()=>{});function XxA(A){try{if(A)Cp.storage.setItem("debug",A);else Cp.storage.removeItem("debug")}catch(Q){}}function wxA(){let A;try{A=Cp.storage.getItem("debug")||Cp.storage.getItem("DEBUG")}catch(Q){}if(!A&&typeof process<"u"&&"env"in process)A=process.env.DEBUG;return A}function KxA(){try{return localStorage}catch(A){}}q1.exports=dV()(Cp);var{formatters:VxA}=q1.exports;VxA.j=function(A){try{return JSON.stringify(A)}catch(Q){return"[UnexpectedJSONParseError]: "+Q.message}}});var Gp=X((Jp,T1)=>{var RxA=H("tty"),O1=H("util");Jp.init=gxA;Jp.log=PxA;Jp.formatArgs=OxA;Jp.save=kxA;Jp.load=SxA;Jp.useColors=qxA;Jp.destroy=O1.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Jp.colors=[6,2,3,4,5,1];try{let A=(()=>{throw new Error("Cannot require module "+"supports-color");})();if(A&&(A.stderr||A).level>=2)Jp.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(A){}Jp.inspectOpts=Object.keys(process.env).filter((A)=>{return/^debug_/i.test(A)}).reduce((A,Q)=>{let B=Q.substring(6).toLowerCase().replace(/_([a-z])/g,(C,E)=>{return E.toUpperCase()}),I=process.env[Q];if(/^(yes|on|true|enabled)$/i.test(I))I=!0;else if(/^(no|off|false|disabled)$/i.test(I))I=!1;else if(I==="null")I=null;else I=Number(I);return A[B]=I,A},{});function qxA(){return"colors"in Jp.inspectOpts?Boolean(Jp.inspectOpts.colors):RxA.isatty(process.stderr.fd)}function OxA(A){let{namespace:Q,useColors:B}=this;if(B){let I=this.color,C="\x1B[3"+(I<8?I:"8;5;"+I),E=` ${C};1m${Q} \x1B[0m`;A[0]=E+A[0].split(` +`.trim())}}Xq.exports=wq});var Yw=z((klA,Hq)=>{var Kq=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:iwA}=PA(),owA=tJ();if($q()===void 0)zq(new owA);function zq(A){if(!A||typeof A.dispatch!=="function")throw new iwA("Argument agent must implement Agent");Object.defineProperty(globalThis,Kq,{value:A,writable:!0,enumerable:!1,configurable:!1})}function $q(){return globalThis[Kq]}Hq.exports={setGlobalDispatcher:zq,getGlobalDispatcher:$q}});var Jw=z((glA,Mq)=>{Mq.exports=class{#A;constructor(Q){if(typeof Q!=="object"||Q===null)throw TypeError("handler must be an object");this.#A=Q}onConnect(...Q){return this.#A.onConnect?.(...Q)}onError(...Q){return this.#A.onError?.(...Q)}onUpgrade(...Q){return this.#A.onUpgrade?.(...Q)}onResponseStarted(...Q){return this.#A.onResponseStarted?.(...Q)}onHeaders(...Q){return this.#A.onHeaders?.(...Q)}onData(...Q){return this.#A.onData?.(...Q)}onComplete(...Q){return this.#A.onComplete?.(...Q)}onBodySent(...Q){return this.#A.onBodySent?.(...Q)}}});var Nq=z((TlA,Lq)=>{var nwA=dW();Lq.exports=(A)=>{let Q=A?.maxRedirections;return(B)=>{return function(C,E){let{maxRedirections:Y=Q,...J}=C;if(!Y)return B(C,E);let F=new nwA(B,Y,C,E);return B(J,F)}}}});var Rq=z((_lA,jq)=>{var swA=rW();jq.exports=(A)=>{return(Q)=>{return function(I,C){return Q(I,new swA({...I,retryOptions:{...A,...I.retryOptions}},{handler:C,dispatch:Q}))}}}});var Oq=z((ylA,Pq)=>{var awA=$A(),{InvalidArgumentError:rwA,RequestAbortedError:twA}=PA(),ewA=Jw();class qq extends ewA{#A=1048576;#Q=null;#C=!1;#I=!1;#B=0;#E=null;#Y=null;constructor({maxSize:A},Q){super(Q);if(A!=null&&(!Number.isFinite(A)||A<1))throw new rwA("maxSize must be a number greater than 0");this.#A=A??this.#A,this.#Y=Q}onConnect(A){this.#Q=A,this.#Y.onConnect(this.#J.bind(this))}#J(A){this.#I=!0,this.#E=A}onHeaders(A,Q,B,I){let E=awA.parseHeaders(Q)["content-length"];if(E!=null&&E>this.#A)throw new twA(`Response size (${E}) larger than maxSize (${this.#A})`);if(this.#I)return!0;return this.#Y.onHeaders(A,Q,B,I)}onError(A){if(this.#C)return;A=this.#E??A,this.#Y.onError(A)}onData(A){if(this.#B=this.#B+A.length,this.#B>=this.#A)if(this.#C=!0,this.#I)this.#Y.onError(this.#E);else this.#Y.onComplete([]);return!0}onComplete(A){if(this.#C)return;if(this.#I){this.#Y.onError(this.reason);return}this.#Y.onComplete(A)}}function A9A({maxSize:A}={maxSize:1048576}){return(Q)=>{return function(I,C){let{dumpMaxSize:E=A}=I,Y=new qq({maxSize:E},C);return Q(I,Y)}}}Pq.exports=A9A});var yq=z((SlA,_q)=>{var{isIP:Q9A}=j("node:net"),{lookup:B9A}=j("node:dns"),I9A=Jw(),{InvalidArgumentError:JF,InformationalError:C9A}=PA(),kq=Math.pow(2,31)-1;class gq{#A=0;#Q=0;#C=new Map;dualStack=!0;affinity=null;lookup=null;pick=null;constructor(A){this.#A=A.maxTTL,this.#Q=A.maxItems,this.dualStack=A.dualStack,this.affinity=A.affinity,this.lookup=A.lookup??this.#I,this.pick=A.pick??this.#B}get full(){return this.#C.size===this.#Q}runLookup(A,Q,B){let I=this.#C.get(A.hostname);if(I==null&&this.full){B(null,A.origin);return}let C={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...Q.dns,maxTTL:this.#A,maxItems:this.#Q};if(I==null)this.lookup(A,C,(E,Y)=>{if(E||Y==null||Y.length===0){B(E??new C9A("No DNS entries found"));return}this.setRecords(A,Y);let J=this.#C.get(A.hostname),F=this.pick(A,J,C.affinity),G;if(typeof F.port==="number")G=`:${F.port}`;else if(A.port!=="")G=`:${A.port}`;else G="";B(null,`${A.protocol}//${F.family===6?`[${F.address}]`:F.address}${G}`)});else{let E=this.pick(A,I,C.affinity);if(E==null){this.#C.delete(A.hostname),this.runLookup(A,Q,B);return}let Y;if(typeof E.port==="number")Y=`:${E.port}`;else if(A.port!=="")Y=`:${A.port}`;else Y="";B(null,`${A.protocol}//${E.family===6?`[${E.address}]`:E.address}${Y}`)}}#I(A,Q,B){B9A(A.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:"ipv4first"},(I,C)=>{if(I)return B(I);let E=new Map;for(let Y of C)E.set(`${Y.address}:${Y.family}`,Y);B(null,E.values())})}#B(A,Q,B){let I=null,{records:C,offset:E}=Q,Y;if(this.dualStack){if(B==null)if(E==null||E===kq)Q.offset=0,B=4;else Q.offset++,B=(Q.offset&1)===1?6:4;if(C[B]!=null&&C[B].ips.length>0)Y=C[B];else Y=C[B===4?6:4]}else Y=C[B];if(Y==null||Y.ips.length===0)return I;if(Y.offset==null||Y.offset===kq)Y.offset=0;else Y.offset++;let J=Y.offset%Y.ips.length;if(I=Y.ips[J]??null,I==null)return I;if(Date.now()-I.timestamp>I.ttl)return Y.ips.splice(J,1),this.pick(A,Q,B);return I}setRecords(A,Q){let B=Date.now(),I={records:{4:null,6:null}};for(let C of Q){if(C.timestamp=B,typeof C.ttl==="number")C.ttl=Math.min(C.ttl,this.#A);else C.ttl=this.#A;let E=I.records[C.family]??{ips:[]};E.ips.push(C),I.records[C.family]=E}this.#C.set(A.hostname,I)}getHandler(A,Q){return new Tq(this,A,Q)}}class Tq extends I9A{#A=null;#Q=null;#C=null;#I=null;#B=null;constructor(A,{origin:Q,handler:B,dispatch:I},C){super(B);this.#B=Q,this.#I=B,this.#Q={...C},this.#A=A,this.#C=I}onError(A){switch(A.code){case"ETIMEDOUT":case"ECONNREFUSED":{if(this.#A.dualStack){this.#A.runLookup(this.#B,this.#Q,(Q,B)=>{if(Q)return this.#I.onError(Q);let I={...this.#Q,origin:B};this.#C(I,this)});return}this.#I.onError(A);return}case"ENOTFOUND":this.#A.deleteRecord(this.#B);default:this.#I.onError(A);break}}}_q.exports=(A)=>{if(A?.maxTTL!=null&&(typeof A?.maxTTL!=="number"||A?.maxTTL<0))throw new JF("Invalid maxTTL. Must be a positive number");if(A?.maxItems!=null&&(typeof A?.maxItems!=="number"||A?.maxItems<1))throw new JF("Invalid maxItems. Must be a positive number and greater than zero");if(A?.affinity!=null&&A?.affinity!==4&&A?.affinity!==6)throw new JF("Invalid affinity. Must be either 4 or 6");if(A?.dualStack!=null&&typeof A?.dualStack!=="boolean")throw new JF("Invalid dualStack. Must be a boolean");if(A?.lookup!=null&&typeof A?.lookup!=="function")throw new JF("Invalid lookup. Must be a function");if(A?.pick!=null&&typeof A?.pick!=="function")throw new JF("Invalid pick. Must be a function");let Q=A?.dualStack??!0,B;if(Q)B=A?.affinity??null;else B=A?.affinity??4;let I={maxTTL:A?.maxTTL??1e4,lookup:A?.lookup??null,pick:A?.pick??null,dualStack:Q,affinity:B,maxItems:A?.maxItems??1/0},C=new gq(I);return(E)=>{return function(J,F){let G=J.origin.constructor===URL?J.origin:new URL(J.origin);if(Q9A(G.hostname)!==0)return E(J,F);return C.runLookup(G,J,(D,Z)=>{if(D)return F.onError(D);let U=null;U={...J,servername:G.hostname,origin:Z,headers:{host:G.hostname,...J.headers}},E(U,C.getHandler({origin:G,dispatch:E,handler:F},J))}),!0}}}});var BY=z((flA,mq)=>{var{kConstruct:E9A}=AQ(),{kEnumerableProperty:FF}=$A(),{iteratorMixin:Y9A,isValidHeaderName:yD,isValidHeaderValue:fq}=SB(),{webidl:RA}=hQ(),C4=j("node:assert"),Fw=j("node:util"),zQ=Symbol("headers map"),xB=Symbol("headers map sorted");function Sq(A){return A===10||A===13||A===9||A===32}function hq(A){let Q=0,B=A.length;while(B>Q&&Sq(A.charCodeAt(B-1)))--B;while(B>Q&&Sq(A.charCodeAt(Q)))++Q;return Q===0&&B===A.length?A:A.substring(Q,B)}function xq(A,Q){if(Array.isArray(Q))for(let B=0;B>","record"]})}function E4(A,Q,B){if(B=hq(B),!yD(Q))throw RA.errors.invalidArgument({prefix:"Headers.append",value:Q,type:"header name"});else if(!fq(B))throw RA.errors.invalidArgument({prefix:"Headers.append",value:B,type:"header value"});if(bq(A)==="immutable")throw TypeError("immutable");return Y4(A).append(Q,B,!1)}function vq(A,Q){return A[0]>1),Q[F][0]<=G[0])J=F+1;else Y=F;if(C!==F){E=C;while(E>J)Q[E]=Q[--E];Q[J]=G}}if(!B.next().done)throw TypeError("Unreachable");return Q}else{let B=0;for(let{0:I,1:{value:C}}of this[zQ])Q[B++]=[I,C],C4(C!==null);return Q.sort(vq)}}}class sQ{#A;#Q;constructor(A=void 0){if(RA.util.markAsUncloneable(this),A===E9A)return;if(this.#Q=new Gw,this.#A="none",A!==void 0)A=RA.converters.HeadersInit(A,"Headers contructor","init"),xq(this,A)}append(A,Q){RA.brandCheck(this,sQ),RA.argumentLengthCheck(arguments,2,"Headers.append");let B="Headers.append";return A=RA.converters.ByteString(A,B,"name"),Q=RA.converters.ByteString(Q,B,"value"),E4(this,A,Q)}delete(A){RA.brandCheck(this,sQ),RA.argumentLengthCheck(arguments,1,"Headers.delete");let Q="Headers.delete";if(A=RA.converters.ByteString(A,Q,"name"),!yD(A))throw RA.errors.invalidArgument({prefix:"Headers.delete",value:A,type:"header name"});if(this.#A==="immutable")throw TypeError("immutable");if(!this.#Q.contains(A,!1))return;this.#Q.delete(A,!1)}get(A){RA.brandCheck(this,sQ),RA.argumentLengthCheck(arguments,1,"Headers.get");let Q="Headers.get";if(A=RA.converters.ByteString(A,Q,"name"),!yD(A))throw RA.errors.invalidArgument({prefix:Q,value:A,type:"header name"});return this.#Q.get(A,!1)}has(A){RA.brandCheck(this,sQ),RA.argumentLengthCheck(arguments,1,"Headers.has");let Q="Headers.has";if(A=RA.converters.ByteString(A,Q,"name"),!yD(A))throw RA.errors.invalidArgument({prefix:Q,value:A,type:"header name"});return this.#Q.contains(A,!1)}set(A,Q){RA.brandCheck(this,sQ),RA.argumentLengthCheck(arguments,2,"Headers.set");let B="Headers.set";if(A=RA.converters.ByteString(A,B,"name"),Q=RA.converters.ByteString(Q,B,"value"),Q=hq(Q),!yD(A))throw RA.errors.invalidArgument({prefix:B,value:A,type:"header name"});else if(!fq(Q))throw RA.errors.invalidArgument({prefix:B,value:Q,type:"header value"});if(this.#A==="immutable")throw TypeError("immutable");this.#Q.set(A,Q,!1)}getSetCookie(){RA.brandCheck(this,sQ);let A=this.#Q.cookies;if(A)return[...A];return[]}get[xB](){if(this.#Q[xB])return this.#Q[xB];let A=[],Q=this.#Q.toSortedArray(),B=this.#Q.cookies;if(B===null||B.length===1)return this.#Q[xB]=Q;for(let I=0;I>"](A,Q,B,I.bind(A));return RA.converters["record"](A,Q,B)}throw RA.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};mq.exports={fill:xq,compareHeaderName:vq,Headers:sQ,HeadersList:Gw,getHeadersGuard:bq,setHeadersGuard:J9A,setHeadersList:F9A,getHeadersList:Y4}});var fD=z((hlA,tq)=>{var{Headers:iq,HeadersList:dq,fill:G9A,getHeadersGuard:D9A,setHeadersGuard:oq,setHeadersList:nq}=BY(),{extractBody:cq,cloneBody:Z9A,mixinBody:U9A,hasFinalizationRegistry:sq,streamRegistry:aq,bodyUnusable:W9A}=uJ(),J4=$A(),uq=j("node:util"),{kEnumerableProperty:vB}=J4,{isValidReasonPhrase:w9A,isCancelled:X9A,isAborted:V9A,isBlobLike:K9A,serializeJavascriptValueToJSONString:z9A,isErrorLike:$9A,isomorphicEncode:H9A,environmentSettingsObject:M9A}=SB(),{redirectStatusSet:L9A,nullBodyStatus:N9A}=CD(),{kState:QQ,kHeaders:iC}=kE(),{webidl:wA}=hQ(),{FormData:j9A}=GD(),{URLSerializer:lq}=zB(),{kConstruct:Zw}=AQ(),F4=j("node:assert"),{types:R9A}=j("node:util"),q9A=new TextEncoder("utf-8");class aQ{static error(){return SD(Uw(),"immutable")}static json(A,Q={}){if(wA.argumentLengthCheck(arguments,1,"Response.json"),Q!==null)Q=wA.converters.ResponseInit(Q);let B=q9A.encode(z9A(A)),I=cq(B),C=SD(GF({}),"response");return pq(C,Q,{body:I[0],type:"application/json"}),C}static redirect(A,Q=302){wA.argumentLengthCheck(arguments,1,"Response.redirect"),A=wA.converters.USVString(A),Q=wA.converters["unsigned short"](Q);let B;try{B=new URL(A,M9A.settingsObject.baseUrl)}catch(E){throw TypeError(`Failed to parse URL from ${A}`,{cause:E})}if(!L9A.has(Q))throw RangeError(`Invalid status code ${Q}`);let I=SD(GF({}),"immutable");I[QQ].status=Q;let C=H9A(lq(B));return I[QQ].headersList.append("location",C,!0),I}constructor(A=null,Q={}){if(wA.util.markAsUncloneable(this),A===Zw)return;if(A!==null)A=wA.converters.BodyInit(A);Q=wA.converters.ResponseInit(Q),this[QQ]=GF({}),this[iC]=new iq(Zw),oq(this[iC],"response"),nq(this[iC],this[QQ].headersList);let B=null;if(A!=null){let[I,C]=cq(A);B={body:I,type:C}}pq(this,Q,B)}get type(){return wA.brandCheck(this,aQ),this[QQ].type}get url(){wA.brandCheck(this,aQ);let A=this[QQ].urlList,Q=A[A.length-1]??null;if(Q===null)return"";return lq(Q,!0)}get redirected(){return wA.brandCheck(this,aQ),this[QQ].urlList.length>1}get status(){return wA.brandCheck(this,aQ),this[QQ].status}get ok(){return wA.brandCheck(this,aQ),this[QQ].status>=200&&this[QQ].status<=299}get statusText(){return wA.brandCheck(this,aQ),this[QQ].statusText}get headers(){return wA.brandCheck(this,aQ),this[iC]}get body(){return wA.brandCheck(this,aQ),this[QQ].body?this[QQ].body.stream:null}get bodyUsed(){return wA.brandCheck(this,aQ),!!this[QQ].body&&J4.isDisturbed(this[QQ].body.stream)}clone(){if(wA.brandCheck(this,aQ),W9A(this))throw wA.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let A=G4(this[QQ]);if(sq&&this[QQ].body?.stream)aq.register(this,new WeakRef(this[QQ].body.stream));return SD(A,D9A(this[iC]))}[uq.inspect.custom](A,Q){if(Q.depth===null)Q.depth=2;Q.colors??=!0;let B={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${uq.formatWithOptions(Q,B)}`}}U9A(aQ);Object.defineProperties(aQ.prototype,{type:vB,url:vB,status:vB,ok:vB,redirected:vB,statusText:vB,headers:vB,clone:vB,body:vB,bodyUsed:vB,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(aQ,{json:vB,redirect:vB,error:vB});function G4(A){if(A.internalResponse)return rq(G4(A.internalResponse),A.type);let Q=GF({...A,body:null});if(A.body!=null)Q.body=Z9A(Q,A.body);return Q}function GF(A){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...A,headersList:A?.headersList?new dq(A?.headersList):new dq,urlList:A?.urlList?[...A.urlList]:[]}}function Uw(A){let Q=$9A(A);return GF({type:"error",status:0,error:Q?A:Error(A?String(A):A),aborted:A&&A.name==="AbortError"})}function P9A(A){return A.type==="error"&&A.status===0}function Dw(A,Q){return Q={internalResponse:A,...Q},new Proxy(A,{get(B,I){return I in Q?Q[I]:B[I]},set(B,I,C){return F4(!(I in Q)),B[I]=C,!0}})}function rq(A,Q){if(Q==="basic")return Dw(A,{type:"basic",headersList:A.headersList});else if(Q==="cors")return Dw(A,{type:"cors",headersList:A.headersList});else if(Q==="opaque")return Dw(A,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});else if(Q==="opaqueredirect")return Dw(A,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});else F4(!1)}function O9A(A,Q=null){return F4(X9A(A)),V9A(A)?Uw(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:Q})):Uw(Object.assign(new DOMException("Request was cancelled."),{cause:Q}))}function pq(A,Q,B){if(Q.status!==null&&(Q.status<200||Q.status>599))throw RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in Q&&Q.statusText!=null){if(!w9A(String(Q.statusText)))throw TypeError("Invalid statusText")}if("status"in Q&&Q.status!=null)A[QQ].status=Q.status;if("statusText"in Q&&Q.statusText!=null)A[QQ].statusText=Q.statusText;if("headers"in Q&&Q.headers!=null)G9A(A[iC],Q.headers);if(B){if(N9A.includes(A.status))throw wA.errors.exception({header:"Response constructor",message:`Invalid response status code ${A.status}`});if(A[QQ].body=B.body,B.type!=null&&!A[QQ].headersList.contains("content-type",!0))A[QQ].headersList.append("content-type",B.type,!0)}}function SD(A,Q){let B=new aQ(Zw);if(B[QQ]=A,B[iC]=new iq(Zw),nq(B[iC],A.headersList),oq(B[iC],Q),sq&&A.body?.stream)aq.register(B,new WeakRef(A.body.stream));return B}wA.converters.ReadableStream=wA.interfaceConverter(ReadableStream);wA.converters.FormData=wA.interfaceConverter(j9A);wA.converters.URLSearchParams=wA.interfaceConverter(URLSearchParams);wA.converters.XMLHttpRequestBodyInit=function(A,Q,B){if(typeof A==="string")return wA.converters.USVString(A,Q,B);if(K9A(A))return wA.converters.Blob(A,Q,B,{strict:!1});if(ArrayBuffer.isView(A)||R9A.isArrayBuffer(A))return wA.converters.BufferSource(A,Q,B);if(J4.isFormDataLike(A))return wA.converters.FormData(A,Q,B,{strict:!1});if(A instanceof URLSearchParams)return wA.converters.URLSearchParams(A,Q,B);return wA.converters.DOMString(A,Q,B)};wA.converters.BodyInit=function(A,Q,B){if(A instanceof ReadableStream)return wA.converters.ReadableStream(A,Q,B);if(A?.[Symbol.asyncIterator])return A;return wA.converters.XMLHttpRequestBodyInit(A,Q,B)};wA.converters.ResponseInit=wA.dictionaryConverter([{key:"status",converter:wA.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:wA.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:wA.converters.HeadersInit}]);tq.exports={isNetworkError:P9A,makeNetworkError:Uw,makeResponse:GF,makeAppropriateNetworkError:O9A,filterResponse:rq,Response:aQ,cloneResponse:G4,fromInnerResponse:SD}});var CP=z((xlA,IP)=>{var{kConnected:eq,kSize:AP}=AQ();class QP{constructor(A){this.value=A}deref(){return this.value[eq]===0&&this.value[AP]===0?void 0:this.value}}class BP{constructor(A){this.finalizer=A}register(A,Q){if(A.on)A.on("disconnect",()=>{if(A[eq]===0&&A[AP]===0)this.finalizer(Q)})}unregister(A){}}IP.exports=function(){if(process.env.NODE_V8_COVERAGE&&process.version.startsWith("v18"))return process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"),{WeakRef:QP,FinalizationRegistry:BP};return{WeakRef,FinalizationRegistry}}});var DF=z((vlA,$P)=>{var{extractBody:k9A,mixinBody:g9A,cloneBody:T9A,bodyUnusable:EP}=uJ(),{Headers:wP,fill:_9A,HeadersList:Vw,setHeadersGuard:Z4,getHeadersGuard:y9A,setHeadersList:XP,getHeadersList:YP}=BY(),{FinalizationRegistry:S9A}=CP()(),ww=$A(),JP=j("node:util"),{isValidHTTPToken:f9A,sameOrigin:FP,environmentSettingsObject:Ww}=SB(),{forbiddenMethodsSet:h9A,corsSafeListedMethodsSet:x9A,referrerPolicy:v9A,requestRedirect:b9A,requestMode:m9A,requestCredentials:d9A,requestCache:c9A,requestDuplex:u9A}=CD(),{kEnumerableProperty:$Q,normalizedMethodRecordsBase:l9A,normalizedMethodRecords:p9A}=ww,{kHeaders:bB,kSignal:Xw,kState:tA,kDispatcher:D4}=kE(),{webidl:IA}=hQ(),{URLSerializer:i9A}=zB(),{kConstruct:Kw}=AQ(),o9A=j("node:assert"),{getMaxListeners:GP,setMaxListeners:DP,getEventListeners:n9A,defaultMaxListeners:ZP}=j("node:events"),s9A=Symbol("abortController"),VP=new S9A(({signal:A,abort:Q})=>{A.removeEventListener("abort",Q)}),zw=new WeakMap;function UP(A){return Q;function Q(){let B=A.deref();if(B!==void 0){VP.unregister(Q),this.removeEventListener("abort",Q),B.abort(this.reason);let I=zw.get(B.signal);if(I!==void 0){if(I.size!==0){for(let C of I){let E=C.deref();if(E!==void 0)E.abort(this.reason)}I.clear()}zw.delete(B.signal)}}}}var WP=!1;class uA{constructor(A,Q={}){if(IA.util.markAsUncloneable(this),A===Kw)return;let B="Request constructor";IA.argumentLengthCheck(arguments,1,B),A=IA.converters.RequestInfo(A,B,"input"),Q=IA.converters.RequestInit(Q,B,"init");let I=null,C=null,E=Ww.settingsObject.baseUrl,Y=null;if(typeof A==="string"){this[D4]=Q.dispatcher;let X;try{X=new URL(A,E)}catch(V){throw TypeError("Failed to parse URL from "+A,{cause:V})}if(X.username||X.password)throw TypeError("Request cannot be constructed from a URL that includes credentials: "+A);I=$w({urlList:[X]}),C="cors"}else this[D4]=Q.dispatcher||A[D4],o9A(A instanceof uA),I=A[tA],Y=A[Xw];let J=Ww.settingsObject.origin,F="client";if(I.window?.constructor?.name==="EnvironmentSettingsObject"&&FP(I.window,J))F=I.window;if(Q.window!=null)throw TypeError(`'window' option '${F}' must be null`);if("window"in Q)F="no-window";I=$w({method:I.method,headersList:I.headersList,unsafeRequest:I.unsafeRequest,client:Ww.settingsObject,window:F,priority:I.priority,origin:I.origin,referrer:I.referrer,referrerPolicy:I.referrerPolicy,mode:I.mode,credentials:I.credentials,cache:I.cache,redirect:I.redirect,integrity:I.integrity,keepalive:I.keepalive,reloadNavigation:I.reloadNavigation,historyNavigation:I.historyNavigation,urlList:[...I.urlList]});let G=Object.keys(Q).length!==0;if(G){if(I.mode==="navigate")I.mode="same-origin";I.reloadNavigation=!1,I.historyNavigation=!1,I.origin="client",I.referrer="client",I.referrerPolicy="",I.url=I.urlList[I.urlList.length-1],I.urlList=[I.url]}if(Q.referrer!==void 0){let X=Q.referrer;if(X==="")I.referrer="no-referrer";else{let V;try{V=new URL(X,E)}catch(M){throw TypeError(`Referrer "${X}" is not a valid URL.`,{cause:M})}if(V.protocol==="about:"&&V.hostname==="client"||J&&!FP(V,Ww.settingsObject.baseUrl))I.referrer="client";else I.referrer=V}}if(Q.referrerPolicy!==void 0)I.referrerPolicy=Q.referrerPolicy;let D;if(Q.mode!==void 0)D=Q.mode;else D=C;if(D==="navigate")throw IA.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(D!=null)I.mode=D;if(Q.credentials!==void 0)I.credentials=Q.credentials;if(Q.cache!==void 0)I.cache=Q.cache;if(I.cache==="only-if-cached"&&I.mode!=="same-origin")throw TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(Q.redirect!==void 0)I.redirect=Q.redirect;if(Q.integrity!=null)I.integrity=String(Q.integrity);if(Q.keepalive!==void 0)I.keepalive=Boolean(Q.keepalive);if(Q.method!==void 0){let X=Q.method,V=p9A[X];if(V!==void 0)I.method=V;else{if(!f9A(X))throw TypeError(`'${X}' is not a valid HTTP method.`);let M=X.toUpperCase();if(h9A.has(M))throw TypeError(`'${X}' HTTP method is unsupported.`);X=l9A[M]??X,I.method=X}if(!WP&&I.method==="patch")process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:"UNDICI-FETCH-patch"}),WP=!0}if(Q.signal!==void 0)Y=Q.signal;this[tA]=I;let Z=new AbortController;if(this[Xw]=Z.signal,Y!=null){if(!Y||typeof Y.aborted!=="boolean"||typeof Y.addEventListener!=="function")throw TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(Y.aborted)Z.abort(Y.reason);else{this[s9A]=Z;let X=new WeakRef(Z),V=UP(X);try{if(typeof GP==="function"&&GP(Y)===ZP)DP(1500,Y);else if(n9A(Y,"abort").length>=ZP)DP(1500,Y)}catch{}ww.addAbortListener(Y,V),VP.register(Z,{signal:Y,abort:V},V)}}if(this[bB]=new wP(Kw),XP(this[bB],I.headersList),Z4(this[bB],"request"),D==="no-cors"){if(!x9A.has(I.method))throw TypeError(`'${I.method} is unsupported in no-cors mode.`);Z4(this[bB],"request-no-cors")}if(G){let X=YP(this[bB]),V=Q.headers!==void 0?Q.headers:new Vw(X);if(X.clear(),V instanceof Vw){for(let{name:M,value:N}of V.rawValues())X.append(M,N,!1);X.cookies=V.cookies}else _9A(this[bB],V)}let U=A instanceof uA?A[tA].body:null;if((Q.body!=null||U!=null)&&(I.method==="GET"||I.method==="HEAD"))throw TypeError("Request with GET/HEAD method cannot have body.");let W=null;if(Q.body!=null){let[X,V]=k9A(Q.body,I.keepalive);if(W=X,V&&!YP(this[bB]).contains("content-type",!0))this[bB].append("content-type",V)}let w=W??U;if(w!=null&&w.source==null){if(W!=null&&Q.duplex==null)throw TypeError("RequestInit: duplex option is required when sending a body.");if(I.mode!=="same-origin"&&I.mode!=="cors")throw TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');I.useCORSPreflightFlag=!0}let K=w;if(W==null&&U!=null){if(EP(A))throw TypeError("Cannot construct a Request with a Request object that has already been used.");let X=new TransformStream;U.stream.pipeThrough(X),K={source:U.source,length:U.length,stream:X.readable}}this[tA].body=K}get method(){return IA.brandCheck(this,uA),this[tA].method}get url(){return IA.brandCheck(this,uA),i9A(this[tA].url)}get headers(){return IA.brandCheck(this,uA),this[bB]}get destination(){return IA.brandCheck(this,uA),this[tA].destination}get referrer(){if(IA.brandCheck(this,uA),this[tA].referrer==="no-referrer")return"";if(this[tA].referrer==="client")return"about:client";return this[tA].referrer.toString()}get referrerPolicy(){return IA.brandCheck(this,uA),this[tA].referrerPolicy}get mode(){return IA.brandCheck(this,uA),this[tA].mode}get credentials(){return this[tA].credentials}get cache(){return IA.brandCheck(this,uA),this[tA].cache}get redirect(){return IA.brandCheck(this,uA),this[tA].redirect}get integrity(){return IA.brandCheck(this,uA),this[tA].integrity}get keepalive(){return IA.brandCheck(this,uA),this[tA].keepalive}get isReloadNavigation(){return IA.brandCheck(this,uA),this[tA].reloadNavigation}get isHistoryNavigation(){return IA.brandCheck(this,uA),this[tA].historyNavigation}get signal(){return IA.brandCheck(this,uA),this[Xw]}get body(){return IA.brandCheck(this,uA),this[tA].body?this[tA].body.stream:null}get bodyUsed(){return IA.brandCheck(this,uA),!!this[tA].body&&ww.isDisturbed(this[tA].body.stream)}get duplex(){return IA.brandCheck(this,uA),"half"}clone(){if(IA.brandCheck(this,uA),EP(this))throw TypeError("unusable");let A=KP(this[tA]),Q=new AbortController;if(this.signal.aborted)Q.abort(this.signal.reason);else{let B=zw.get(this.signal);if(B===void 0)B=new Set,zw.set(this.signal,B);let I=new WeakRef(Q);B.add(I),ww.addAbortListener(Q.signal,UP(I))}return zP(A,Q.signal,y9A(this[bB]))}[JP.inspect.custom](A,Q){if(Q.depth===null)Q.depth=2;Q.colors??=!0;let B={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${JP.formatWithOptions(Q,B)}`}}g9A(uA);function $w(A){return{method:A.method??"GET",localURLsOnly:A.localURLsOnly??!1,unsafeRequest:A.unsafeRequest??!1,body:A.body??null,client:A.client??null,reservedClient:A.reservedClient??null,replacesClientId:A.replacesClientId??"",window:A.window??"client",keepalive:A.keepalive??!1,serviceWorkers:A.serviceWorkers??"all",initiator:A.initiator??"",destination:A.destination??"",priority:A.priority??null,origin:A.origin??"client",policyContainer:A.policyContainer??"client",referrer:A.referrer??"client",referrerPolicy:A.referrerPolicy??"",mode:A.mode??"no-cors",useCORSPreflightFlag:A.useCORSPreflightFlag??!1,credentials:A.credentials??"same-origin",useCredentials:A.useCredentials??!1,cache:A.cache??"default",redirect:A.redirect??"follow",integrity:A.integrity??"",cryptoGraphicsNonceMetadata:A.cryptoGraphicsNonceMetadata??"",parserMetadata:A.parserMetadata??"",reloadNavigation:A.reloadNavigation??!1,historyNavigation:A.historyNavigation??!1,userActivation:A.userActivation??!1,taintedOrigin:A.taintedOrigin??!1,redirectCount:A.redirectCount??0,responseTainting:A.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:A.preventNoCacheCacheControlHeaderModification??!1,done:A.done??!1,timingAllowFailed:A.timingAllowFailed??!1,urlList:A.urlList,url:A.urlList[0],headersList:A.headersList?new Vw(A.headersList):new Vw}}function KP(A){let Q=$w({...A,body:null});if(A.body!=null)Q.body=T9A(Q,A.body);return Q}function zP(A,Q,B){let I=new uA(Kw);return I[tA]=A,I[Xw]=Q,I[bB]=new wP(Kw),XP(I[bB],A.headersList),Z4(I[bB],B),I}Object.defineProperties(uA.prototype,{method:$Q,url:$Q,headers:$Q,redirect:$Q,clone:$Q,signal:$Q,duplex:$Q,destination:$Q,body:$Q,bodyUsed:$Q,isHistoryNavigation:$Q,isReloadNavigation:$Q,keepalive:$Q,integrity:$Q,cache:$Q,credentials:$Q,attribute:$Q,referrerPolicy:$Q,referrer:$Q,mode:$Q,[Symbol.toStringTag]:{value:"Request",configurable:!0}});IA.converters.Request=IA.interfaceConverter(uA);IA.converters.RequestInfo=function(A,Q,B){if(typeof A==="string")return IA.converters.USVString(A,Q,B);if(A instanceof uA)return IA.converters.Request(A,Q,B);return IA.converters.USVString(A,Q,B)};IA.converters.AbortSignal=IA.interfaceConverter(AbortSignal);IA.converters.RequestInit=IA.dictionaryConverter([{key:"method",converter:IA.converters.ByteString},{key:"headers",converter:IA.converters.HeadersInit},{key:"body",converter:IA.nullableConverter(IA.converters.BodyInit)},{key:"referrer",converter:IA.converters.USVString},{key:"referrerPolicy",converter:IA.converters.DOMString,allowedValues:v9A},{key:"mode",converter:IA.converters.DOMString,allowedValues:m9A},{key:"credentials",converter:IA.converters.DOMString,allowedValues:d9A},{key:"cache",converter:IA.converters.DOMString,allowedValues:c9A},{key:"redirect",converter:IA.converters.DOMString,allowedValues:b9A},{key:"integrity",converter:IA.converters.DOMString},{key:"keepalive",converter:IA.converters.boolean},{key:"signal",converter:IA.nullableConverter((A)=>IA.converters.AbortSignal(A,"RequestInit","signal",{strict:!1}))},{key:"window",converter:IA.converters.any},{key:"duplex",converter:IA.converters.DOMString,allowedValues:u9A},{key:"dispatcher",converter:IA.converters.any}]);$P.exports={Request:uA,makeRequest:$w,fromInnerRequest:zP,cloneRequest:KP}});var xD=z((blA,SP)=>{var{makeNetworkError:SA,makeAppropriateNetworkError:Hw,filterResponse:U4,makeResponse:Mw,fromInnerResponse:a9A}=fD(),{HeadersList:HP}=BY(),{Request:r9A,cloneRequest:t9A}=DF(),dE=j("node:zlib"),{bytesMatch:e9A,makePolicyContainer:A2A,clonePolicyContainer:Q2A,requestBadPort:B2A,TAOCheck:I2A,appendRequestOriginHeader:C2A,responseLocationURL:E2A,requestCurrentURL:ZC,setRequestReferrerPolicyOnRedirect:Y2A,tryUpgradeRequestToAPotentiallyTrustworthyURL:J2A,createOpaqueTimingInfo:K4,appendFetchMetadata:F2A,corsCheck:G2A,crossOriginResourcePolicyCheck:D2A,determineRequestsReferrer:Z2A,coarsenedSharedCurrentTime:hD,createDeferredPromise:U2A,isBlobLike:W2A,sameOrigin:V4,isCancelled:IY,isAborted:MP,isErrorLike:w2A,fullyReadBody:X2A,readableStreamClose:V2A,isomorphicEncode:Lw,urlIsLocal:K2A,urlIsHttpHttpsScheme:z4,urlHasHttpsScheme:z2A,clampAndCoarsenConnectionTimingInfo:$2A,simpleRangeHeaderValue:H2A,buildContentRange:M2A,createInflate:L2A,extractMimeType:N2A}=SB(),{kState:RP,kDispatcher:j2A}=kE(),CY=j("node:assert"),{safelyExtractBody:$4,extractBody:LP}=uJ(),{redirectStatusSet:qP,nullBodyStatus:PP,safeMethodsSet:R2A,requestBodyHeader:q2A,subresourceSet:P2A}=CD(),O2A=j("node:events"),{Readable:k2A,pipeline:g2A,finished:T2A}=j("node:stream"),{addAbortListener:_2A,isErrored:y2A,isReadable:Nw,bufferToLowerCasedHeaderName:NP}=$A(),{dataURLProcessor:S2A,serializeAMimeType:f2A,minimizeSupportedMimeType:h2A}=zB(),{getGlobalDispatcher:x2A}=Yw(),{webidl:v2A}=hQ(),{STATUS_CODES:b2A}=j("node:http"),m2A=["GET","HEAD"],d2A=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",W4;class H4 extends O2A{constructor(A){super();this.dispatcher=A,this.connection=null,this.dump=!1,this.state="ongoing"}terminate(A){if(this.state!=="ongoing")return;this.state="terminated",this.connection?.destroy(A),this.emit("terminated",A)}abort(A){if(this.state!=="ongoing")return;if(this.state="aborted",!A)A=new DOMException("The operation was aborted.","AbortError");this.serializedAbortReason=A,this.connection?.destroy(A),this.emit("terminated",A)}}function c2A(A){OP(A,"fetch")}function u2A(A,Q=void 0){v2A.argumentLengthCheck(arguments,1,"globalThis.fetch");let B=U2A(),I;try{I=new r9A(A,Q)}catch(D){return B.reject(D),B.promise}let C=I[RP];if(I.signal.aborted)return w4(B,C,null,I.signal.reason),B.promise;if(C.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope")C.serviceWorkers="none";let Y=null,J=!1,F=null;return _2A(I.signal,()=>{J=!0,CY(F!=null),F.abort(I.signal.reason);let D=Y?.deref();w4(B,C,D,I.signal.reason)}),F=gP({request:C,processResponseEndOfBody:c2A,processResponse:(D)=>{if(J)return;if(D.aborted){w4(B,C,Y,F.serializedAbortReason);return}if(D.type==="error"){B.reject(TypeError("fetch failed",{cause:D.error}));return}Y=new WeakRef(a9A(D,"immutable")),B.resolve(Y.deref()),B=null},dispatcher:I[j2A]}),B.promise}function OP(A,Q="other"){if(A.type==="error"&&A.aborted)return;if(!A.urlList?.length)return;let B=A.urlList[0],I=A.timingInfo,C=A.cacheState;if(!z4(B))return;if(I===null)return;if(!A.timingAllowPassed)I=K4({startTime:I.startTime}),C="";I.endTime=hD(),A.timingInfo=I,kP(I,B.href,Q,globalThis,C)}var kP=performance.markResourceTiming;function w4(A,Q,B,I){if(A)A.reject(I);if(Q.body!=null&&Nw(Q.body?.stream))Q.body.stream.cancel(I).catch((E)=>{if(E.code==="ERR_INVALID_STATE")return;throw E});if(B==null)return;let C=B[RP];if(C.body!=null&&Nw(C.body?.stream))C.body.stream.cancel(I).catch((E)=>{if(E.code==="ERR_INVALID_STATE")return;throw E})}function gP({request:A,processRequestBodyChunkLength:Q,processRequestEndOfBody:B,processResponse:I,processResponseEndOfBody:C,processResponseConsumeBody:E,useParallelQueue:Y=!1,dispatcher:J=x2A()}){CY(J);let F=null,G=!1;if(A.client!=null)F=A.client.globalObject,G=A.client.crossOriginIsolatedCapability;let D=hD(G),Z=K4({startTime:D}),U={controller:new H4(J),request:A,timingInfo:Z,processRequestBodyChunkLength:Q,processRequestEndOfBody:B,processResponse:I,processResponseConsumeBody:E,processResponseEndOfBody:C,taskDestination:F,crossOriginIsolatedCapability:G};if(CY(!A.body||A.body.stream),A.window==="client")A.window=A.client?.globalObject?.constructor?.name==="Window"?A.client:"no-window";if(A.origin==="client")A.origin=A.client.origin;if(A.policyContainer==="client")if(A.client!=null)A.policyContainer=Q2A(A.client.policyContainer);else A.policyContainer=A2A();if(!A.headersList.contains("accept",!0))A.headersList.append("accept","*/*",!0);if(!A.headersList.contains("accept-language",!0))A.headersList.append("accept-language","*",!0);if(A.priority===null);if(P2A.has(A.destination));return TP(U).catch((W)=>{U.controller.terminate(W)}),U.controller}async function TP(A,Q=!1){let B=A.request,I=null;if(B.localURLsOnly&&!K2A(ZC(B)))I=SA("local URLs only");if(J2A(B),B2A(B)==="blocked")I=SA("bad port");if(B.referrerPolicy==="")B.referrerPolicy=B.policyContainer.referrerPolicy;if(B.referrer!=="no-referrer")B.referrer=Z2A(B);if(I===null)I=await(async()=>{let E=ZC(B);if(V4(E,B.url)&&B.responseTainting==="basic"||E.protocol==="data:"||(B.mode==="navigate"||B.mode==="websocket"))return B.responseTainting="basic",await jP(A);if(B.mode==="same-origin")return SA('request mode cannot be "same-origin"');if(B.mode==="no-cors"){if(B.redirect!=="follow")return SA('redirect mode cannot be "follow" for "no-cors" request');return B.responseTainting="opaque",await jP(A)}if(!z4(ZC(B)))return SA("URL scheme must be a HTTP(S) scheme");return B.responseTainting="cors",await _P(A)})();if(Q)return I;if(I.status!==0&&!I.internalResponse){if(B.responseTainting==="cors");if(B.responseTainting==="basic")I=U4(I,"basic");else if(B.responseTainting==="cors")I=U4(I,"cors");else if(B.responseTainting==="opaque")I=U4(I,"opaque");else CY(!1)}let C=I.status===0?I:I.internalResponse;if(C.urlList.length===0)C.urlList.push(...B.urlList);if(!B.timingAllowFailed)I.timingAllowPassed=!0;if(I.type==="opaque"&&C.status===206&&C.rangeRequested&&!B.headers.contains("range",!0))I=C=SA();if(I.status!==0&&(B.method==="HEAD"||B.method==="CONNECT"||PP.includes(C.status)))C.body=null,A.controller.dump=!0;if(B.integrity){let E=(J)=>X4(A,SA(J));if(B.responseTainting==="opaque"||I.body==null){E(I.error);return}let Y=(J)=>{if(!e9A(J,B.integrity)){E("integrity mismatch");return}I.body=$4(J)[0],X4(A,I)};await X2A(I.body,Y,E)}else X4(A,I)}function jP(A){if(IY(A)&&A.request.redirectCount===0)return Promise.resolve(Hw(A));let{request:Q}=A,{protocol:B}=ZC(Q);switch(B){case"about:":return Promise.resolve(SA("about scheme is not supported"));case"blob:":{if(!W4)W4=j("node:buffer").resolveObjectURL;let I=ZC(Q);if(I.search.length!==0)return Promise.resolve(SA("NetworkError when attempting to fetch resource."));let C=W4(I.toString());if(Q.method!=="GET"||!W2A(C))return Promise.resolve(SA("invalid method"));let E=Mw(),Y=C.size,J=Lw(`${Y}`),F=C.type;if(!Q.headersList.contains("range",!0)){let G=LP(C);E.statusText="OK",E.body=G[0],E.headersList.set("content-length",J,!0),E.headersList.set("content-type",F,!0)}else{E.rangeRequested=!0;let G=Q.headersList.get("range",!0),D=H2A(G,!0);if(D==="failure")return Promise.resolve(SA("failed to fetch the data URL"));let{rangeStartValue:Z,rangeEndValue:U}=D;if(Z===null)Z=Y-U,U=Z+U-1;else{if(Z>=Y)return Promise.resolve(SA("Range start is greater than the blob's size."));if(U===null||U>=Y)U=Y-1}let W=C.slice(Z,U,F),w=LP(W);E.body=w[0];let K=Lw(`${W.size}`),X=M2A(Z,U,Y);E.status=206,E.statusText="Partial Content",E.headersList.set("content-length",K,!0),E.headersList.set("content-type",F,!0),E.headersList.set("content-range",X,!0)}return Promise.resolve(E)}case"data:":{let I=ZC(Q),C=S2A(I);if(C==="failure")return Promise.resolve(SA("failed to fetch the data URL"));let E=f2A(C.mimeType);return Promise.resolve(Mw({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:E}]],body:$4(C.body)[0]}))}case"file:":return Promise.resolve(SA("not implemented... yet..."));case"http:":case"https:":return _P(A).catch((I)=>SA(I));default:return Promise.resolve(SA("unknown scheme"))}}function l2A(A,Q){if(A.request.done=!0,A.processResponseDone!=null)queueMicrotask(()=>A.processResponseDone(Q))}function X4(A,Q){let B=A.timingInfo,I=()=>{let E=Date.now();if(A.request.destination==="document")A.controller.fullTimingInfo=B;A.controller.reportTimingSteps=()=>{if(A.request.url.protocol!=="https:")return;B.endTime=E;let{cacheState:J,bodyInfo:F}=Q;if(!Q.timingAllowPassed)B=K4(B),J="";let G=0;if(A.request.mode!=="navigator"||!Q.hasCrossOriginRedirects){G=Q.status;let D=N2A(Q.headersList);if(D!=="failure")F.contentType=h2A(D)}if(A.request.initiatorType!=null)kP(B,A.request.url.href,A.request.initiatorType,globalThis,J,F,G)};let Y=()=>{if(A.request.done=!0,A.processResponseEndOfBody!=null)queueMicrotask(()=>A.processResponseEndOfBody(Q));if(A.request.initiatorType!=null)A.controller.reportTimingSteps()};queueMicrotask(()=>Y())};if(A.processResponse!=null)queueMicrotask(()=>{A.processResponse(Q),A.processResponse=null});let C=Q.type==="error"?Q:Q.internalResponse??Q;if(C.body==null)I();else T2A(C.body.stream,()=>{I()})}async function _P(A){let Q=A.request,B=null,I=null,C=A.timingInfo;if(Q.serviceWorkers==="all");if(B===null){if(Q.redirect==="follow")Q.serviceWorkers="none";if(I=B=await yP(A),Q.responseTainting==="cors"&&G2A(Q,B)==="failure")return SA("cors failure");if(I2A(Q,B)==="failure")Q.timingAllowFailed=!0}if((Q.responseTainting==="opaque"||B.type==="opaque")&&D2A(Q.origin,Q.client,Q.destination,I)==="blocked")return SA("blocked");if(qP.has(I.status)){if(Q.redirect!=="manual")A.controller.connection.destroy(void 0,!1);if(Q.redirect==="error")B=SA("unexpected redirect");else if(Q.redirect==="manual")B=I;else if(Q.redirect==="follow")B=await p2A(A,B);else CY(!1)}return B.timingInfo=C,B}function p2A(A,Q){let B=A.request,I=Q.internalResponse?Q.internalResponse:Q,C;try{if(C=E2A(I,ZC(B).hash),C==null)return Q}catch(Y){return Promise.resolve(SA(Y))}if(!z4(C))return Promise.resolve(SA("URL scheme must be a HTTP(S) scheme"));if(B.redirectCount===20)return Promise.resolve(SA("redirect count exceeded"));if(B.redirectCount+=1,B.mode==="cors"&&(C.username||C.password)&&!V4(B,C))return Promise.resolve(SA('cross origin not allowed for request mode "cors"'));if(B.responseTainting==="cors"&&(C.username||C.password))return Promise.resolve(SA('URL cannot contain credentials for request mode "cors"'));if(I.status!==303&&B.body!=null&&B.body.source==null)return Promise.resolve(SA());if([301,302].includes(I.status)&&B.method==="POST"||I.status===303&&!m2A.includes(B.method)){B.method="GET",B.body=null;for(let Y of q2A)B.headersList.delete(Y)}if(!V4(ZC(B),C))B.headersList.delete("authorization",!0),B.headersList.delete("proxy-authorization",!0),B.headersList.delete("cookie",!0),B.headersList.delete("host",!0);if(B.body!=null)CY(B.body.source!=null),B.body=$4(B.body.source)[0];let E=A.timingInfo;if(E.redirectEndTime=E.postRedirectStartTime=hD(A.crossOriginIsolatedCapability),E.redirectStartTime===0)E.redirectStartTime=E.startTime;return B.urlList.push(C),Y2A(B,I),TP(A,!0)}async function yP(A,Q=!1,B=!1){let I=A.request,C=null,E=null,Y=null,J=null,F=!1;if(I.window==="no-window"&&I.redirect==="error")C=A,E=I;else E=t9A(I),C={...A},C.request=E;let G=I.credentials==="include"||I.credentials==="same-origin"&&I.responseTainting==="basic",D=E.body?E.body.length:null,Z=null;if(E.body==null&&["POST","PUT"].includes(E.method))Z="0";if(D!=null)Z=Lw(`${D}`);if(Z!=null)E.headersList.append("content-length",Z,!0);if(D!=null&&E.keepalive);if(E.referrer instanceof URL)E.headersList.append("referer",Lw(E.referrer.href),!0);if(C2A(E),F2A(E),!E.headersList.contains("user-agent",!0))E.headersList.append("user-agent",d2A);if(E.cache==="default"&&(E.headersList.contains("if-modified-since",!0)||E.headersList.contains("if-none-match",!0)||E.headersList.contains("if-unmodified-since",!0)||E.headersList.contains("if-match",!0)||E.headersList.contains("if-range",!0)))E.cache="no-store";if(E.cache==="no-cache"&&!E.preventNoCacheCacheControlHeaderModification&&!E.headersList.contains("cache-control",!0))E.headersList.append("cache-control","max-age=0",!0);if(E.cache==="no-store"||E.cache==="reload"){if(!E.headersList.contains("pragma",!0))E.headersList.append("pragma","no-cache",!0);if(!E.headersList.contains("cache-control",!0))E.headersList.append("cache-control","no-cache",!0)}if(E.headersList.contains("range",!0))E.headersList.append("accept-encoding","identity",!0);if(!E.headersList.contains("accept-encoding",!0))if(z2A(ZC(E)))E.headersList.append("accept-encoding","br, gzip, deflate",!0);else E.headersList.append("accept-encoding","gzip, deflate",!0);if(E.headersList.delete("host",!0),J==null)E.cache="no-store";if(E.cache!=="no-store"&&E.cache!=="reload");if(Y==null){if(E.cache==="only-if-cached")return SA("only if cached");let U=await i2A(C,G,B);if(!R2A.has(E.method)&&U.status>=200&&U.status<=399);if(F&&U.status===304);if(Y==null)Y=U}if(Y.urlList=[...E.urlList],E.headersList.contains("range",!0))Y.rangeRequested=!0;if(Y.requestIncludesCredentials=G,Y.status===407){if(I.window==="no-window")return SA();if(IY(A))return Hw(A);return SA("proxy authentication required")}if(Y.status===421&&!B&&(I.body==null||I.body.source!=null)){if(IY(A))return Hw(A);A.controller.connection.destroy(),Y=await yP(A,Q,!0)}return Y}async function i2A(A,Q=!1,B=!1){CY(!A.controller.connection||A.controller.connection.destroyed),A.controller.connection={abort:null,destroyed:!1,destroy(w,K=!0){if(!this.destroyed){if(this.destroyed=!0,K)this.abort?.(w??new DOMException("The operation was aborted.","AbortError"))}}};let I=A.request,C=null,E=A.timingInfo;if(!0)I.cache="no-store";let J=B?"yes":"no";if(I.mode==="websocket");let F=null;if(I.body==null&&A.processRequestEndOfBody)queueMicrotask(()=>A.processRequestEndOfBody());else if(I.body!=null){let w=async function*(V){if(IY(A))return;yield V,A.processRequestBodyChunkLength?.(V.byteLength)},K=()=>{if(IY(A))return;if(A.processRequestEndOfBody)A.processRequestEndOfBody()},X=(V)=>{if(IY(A))return;if(V.name==="AbortError")A.controller.abort();else A.controller.terminate(V)};F=async function*(){try{for await(let V of I.body.stream)yield*w(V);K()}catch(V){X(V)}}()}try{let{body:w,status:K,statusText:X,headersList:V,socket:M}=await W({body:F});if(M)C=Mw({status:K,statusText:X,headersList:V,socket:M});else{let N=w[Symbol.asyncIterator]();A.controller.next=()=>N.next(),C=Mw({status:K,statusText:X,headersList:V})}}catch(w){if(w.name==="AbortError")return A.controller.connection.destroy(),Hw(A,w);return SA(w)}let G=async()=>{await A.controller.resume()},D=(w)=>{if(!IY(A))A.controller.abort(w)},Z=new ReadableStream({async start(w){A.controller.controller=w},async pull(w){await G(w)},async cancel(w){await D(w)},type:"bytes"});C.body={stream:Z,source:null,length:null},A.controller.onAborted=U,A.controller.on("terminated",U),A.controller.resume=async()=>{while(!0){let w,K;try{let{done:V,value:M}=await A.controller.next();if(MP(A))break;w=V?void 0:M}catch(V){if(A.controller.ended&&!E.encodedBodySize)w=void 0;else w=V,K=!0}if(w===void 0){V2A(A.controller.controller),l2A(A,C);return}if(E.decodedBodySize+=w?.byteLength??0,K){A.controller.terminate(w);return}let X=new Uint8Array(w);if(X.byteLength)A.controller.controller.enqueue(X);if(y2A(Z)){A.controller.terminate();return}if(A.controller.controller.desiredSize<=0)return}};function U(w){if(MP(A)){if(C.aborted=!0,Nw(Z))A.controller.controller.error(A.controller.serializedAbortReason)}else if(Nw(Z))A.controller.controller.error(TypeError("terminated",{cause:w2A(w)?w:void 0}));A.controller.connection.destroy()}return C;function W({body:w}){let K=ZC(I),X=A.controller.dispatcher;return new Promise((V,M)=>X.dispatch({path:K.pathname+K.search,origin:K.origin,method:I.method,body:X.isMockActive?I.body&&(I.body.source||I.body.stream):w,headers:I.headersList.entries,maxRedirections:0,upgrade:I.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(N){let{connection:L}=A.controller;if(E.finalConnectionTimingInfo=$2A(void 0,E.postRedirectStartTime,A.crossOriginIsolatedCapability),L.destroyed)N(new DOMException("The operation was aborted.","AbortError"));else A.controller.on("terminated",N),this.abort=L.abort=N;E.finalNetworkRequestStartTime=hD(A.crossOriginIsolatedCapability)},onResponseStarted(){E.finalNetworkResponseStartTime=hD(A.crossOriginIsolatedCapability)},onHeaders(N,L,R,P){if(N<200)return;let T="",u=new HP;for(let cA=0;cA5)return M(Error(`too many content-encodings in response: ${qA.length}, maximum allowed is 5`)),!0;for(let SQ=qA.length-1;SQ>=0;--SQ){let TB=qA[SQ].trim();if(TB==="x-gzip"||TB==="gzip")DA.push(dE.createGunzip({flush:dE.constants.Z_SYNC_FLUSH,finishFlush:dE.constants.Z_SYNC_FLUSH}));else if(TB==="deflate")DA.push(L2A({flush:dE.constants.Z_SYNC_FLUSH,finishFlush:dE.constants.Z_SYNC_FLUSH}));else if(TB==="br")DA.push(dE.createBrotliDecompress({flush:dE.constants.BROTLI_OPERATION_FLUSH,finishFlush:dE.constants.BROTLI_OPERATION_FLUSH}));else{DA.length=0;break}}}let dA=this.onError.bind(this);return V({status:N,statusText:P,headersList:u,body:DA.length?g2A(this.body,...DA,(cA)=>{if(cA)this.onError(cA)}).on("error",dA):this.body.on("error",dA)}),!0},onData(N){if(A.controller.dump)return;let L=N;return E.encodedBodySize+=L.byteLength,this.body.push(L)},onComplete(){if(this.abort)A.controller.off("terminated",this.abort);if(A.controller.onAborted)A.controller.off("terminated",A.controller.onAborted);A.controller.ended=!0,this.body.push(null)},onError(N){if(this.abort)A.controller.off("terminated",this.abort);this.body?.destroy(N),A.controller.terminate(N),M(N)},onUpgrade(N,L,R){if(N!==101)return;let P=new HP;for(let T=0;T{fP.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var xP=z((dlA,hP)=>{var{webidl:mB}=hQ(),jw=Symbol("ProgressEvent state");class vD extends Event{constructor(A,Q={}){A=mB.converters.DOMString(A,"ProgressEvent constructor","type"),Q=mB.converters.ProgressEventInit(Q??{});super(A,Q);this[jw]={lengthComputable:Q.lengthComputable,loaded:Q.loaded,total:Q.total}}get lengthComputable(){return mB.brandCheck(this,vD),this[jw].lengthComputable}get loaded(){return mB.brandCheck(this,vD),this[jw].loaded}get total(){return mB.brandCheck(this,vD),this[jw].total}}mB.converters.ProgressEventInit=mB.dictionaryConverter([{key:"lengthComputable",converter:mB.converters.boolean,defaultValue:()=>!1},{key:"loaded",converter:mB.converters["unsigned long long"],defaultValue:()=>0},{key:"total",converter:mB.converters["unsigned long long"],defaultValue:()=>0},{key:"bubbles",converter:mB.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:mB.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:mB.converters.boolean,defaultValue:()=>!1}]);hP.exports={ProgressEvent:vD}});var bP=z((clA,vP)=>{function o2A(A){if(!A)return"failure";switch(A.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}vP.exports={getEncoding:o2A}});var oP=z((ulA,iP)=>{var{kState:ZF,kError:L4,kResult:mP,kAborted:bD,kLastProgressEventFired:N4}=M4(),{ProgressEvent:n2A}=xP(),{getEncoding:dP}=bP(),{serializeAMimeType:s2A,parseMIMEType:cP}=zB(),{types:a2A}=j("node:util"),{StringDecoder:uP}=j("string_decoder"),{btoa:lP}=j("node:buffer"),r2A={enumerable:!0,writable:!1,configurable:!1};function t2A(A,Q,B,I){if(A[ZF]==="loading")throw new DOMException("Invalid state","InvalidStateError");A[ZF]="loading",A[mP]=null,A[L4]=null;let E=Q.stream().getReader(),Y=[],J=E.read(),F=!0;(async()=>{while(!A[bD])try{let{done:G,value:D}=await J;if(F&&!A[bD])queueMicrotask(()=>{cE("loadstart",A)});if(F=!1,!G&&a2A.isUint8Array(D)){if(Y.push(D),(A[N4]===void 0||Date.now()-A[N4]>=50)&&!A[bD])A[N4]=Date.now(),queueMicrotask(()=>{cE("progress",A)});J=E.read()}else if(G){queueMicrotask(()=>{A[ZF]="done";try{let Z=e2A(Y,B,Q.type,I);if(A[bD])return;A[mP]=Z,cE("load",A)}catch(Z){A[L4]=Z,cE("error",A)}if(A[ZF]!=="loading")cE("loadend",A)});break}}catch(G){if(A[bD])return;queueMicrotask(()=>{if(A[ZF]="done",A[L4]=G,cE("error",A),A[ZF]!=="loading")cE("loadend",A)});break}})()}function cE(A,Q){let B=new n2A(A,{bubbles:!1,cancelable:!1});Q.dispatchEvent(B)}function e2A(A,Q,B,I){switch(Q){case"DataURL":{let C="data:",E=cP(B||"application/octet-stream");if(E!=="failure")C+=s2A(E);C+=";base64,";let Y=new uP("latin1");for(let J of A)C+=lP(Y.write(J));return C+=lP(Y.end()),C}case"Text":{let C="failure";if(I)C=dP(I);if(C==="failure"&&B){let E=cP(B);if(E!=="failure")C=dP(E.parameters.get("charset"))}if(C==="failure")C="UTF-8";return AXA(A,C)}case"ArrayBuffer":return pP(A).buffer;case"BinaryString":{let C="",E=new uP("latin1");for(let Y of A)C+=E.write(Y);return C+=E.end(),C}}}function AXA(A,Q){let B=pP(A),I=QXA(B),C=0;if(I!==null)Q=I,C=I==="UTF-8"?3:2;let E=B.slice(C);return new TextDecoder(Q).decode(E)}function QXA(A){let[Q,B,I]=A;if(Q===239&&B===187&&I===191)return"UTF-8";else if(Q===254&&B===255)return"UTF-16BE";else if(Q===255&&B===254)return"UTF-16LE";return null}function pP(A){let Q=A.reduce((I,C)=>{return I+C.byteLength},0),B=0;return A.reduce((I,C)=>{return I.set(C,B),B+=C.byteLength,I},new Uint8Array(Q))}iP.exports={staticPropertyDescriptors:r2A,readOperation:t2A,fireAProgressEvent:cE}});var rP=z((llA,aP)=>{var{staticPropertyDescriptors:UF,readOperation:Rw,fireAProgressEvent:nP}=oP(),{kState:EY,kError:sP,kResult:qw,kEvents:OA,kAborted:BXA}=M4(),{webidl:mA}=hQ(),{kEnumerableProperty:MB}=$A();class fA extends EventTarget{constructor(){super();this[EY]="empty",this[qw]=null,this[sP]=null,this[OA]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(A){mA.brandCheck(this,fA),mA.argumentLengthCheck(arguments,1,"FileReader.readAsArrayBuffer"),A=mA.converters.Blob(A,{strict:!1}),Rw(this,A,"ArrayBuffer")}readAsBinaryString(A){mA.brandCheck(this,fA),mA.argumentLengthCheck(arguments,1,"FileReader.readAsBinaryString"),A=mA.converters.Blob(A,{strict:!1}),Rw(this,A,"BinaryString")}readAsText(A,Q=void 0){if(mA.brandCheck(this,fA),mA.argumentLengthCheck(arguments,1,"FileReader.readAsText"),A=mA.converters.Blob(A,{strict:!1}),Q!==void 0)Q=mA.converters.DOMString(Q,"FileReader.readAsText","encoding");Rw(this,A,"Text",Q)}readAsDataURL(A){mA.brandCheck(this,fA),mA.argumentLengthCheck(arguments,1,"FileReader.readAsDataURL"),A=mA.converters.Blob(A,{strict:!1}),Rw(this,A,"DataURL")}abort(){if(this[EY]==="empty"||this[EY]==="done"){this[qw]=null;return}if(this[EY]==="loading")this[EY]="done",this[qw]=null;if(this[BXA]=!0,nP("abort",this),this[EY]!=="loading")nP("loadend",this)}get readyState(){switch(mA.brandCheck(this,fA),this[EY]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return mA.brandCheck(this,fA),this[qw]}get error(){return mA.brandCheck(this,fA),this[sP]}get onloadend(){return mA.brandCheck(this,fA),this[OA].loadend}set onloadend(A){if(mA.brandCheck(this,fA),this[OA].loadend)this.removeEventListener("loadend",this[OA].loadend);if(typeof A==="function")this[OA].loadend=A,this.addEventListener("loadend",A);else this[OA].loadend=null}get onerror(){return mA.brandCheck(this,fA),this[OA].error}set onerror(A){if(mA.brandCheck(this,fA),this[OA].error)this.removeEventListener("error",this[OA].error);if(typeof A==="function")this[OA].error=A,this.addEventListener("error",A);else this[OA].error=null}get onloadstart(){return mA.brandCheck(this,fA),this[OA].loadstart}set onloadstart(A){if(mA.brandCheck(this,fA),this[OA].loadstart)this.removeEventListener("loadstart",this[OA].loadstart);if(typeof A==="function")this[OA].loadstart=A,this.addEventListener("loadstart",A);else this[OA].loadstart=null}get onprogress(){return mA.brandCheck(this,fA),this[OA].progress}set onprogress(A){if(mA.brandCheck(this,fA),this[OA].progress)this.removeEventListener("progress",this[OA].progress);if(typeof A==="function")this[OA].progress=A,this.addEventListener("progress",A);else this[OA].progress=null}get onload(){return mA.brandCheck(this,fA),this[OA].load}set onload(A){if(mA.brandCheck(this,fA),this[OA].load)this.removeEventListener("load",this[OA].load);if(typeof A==="function")this[OA].load=A,this.addEventListener("load",A);else this[OA].load=null}get onabort(){return mA.brandCheck(this,fA),this[OA].abort}set onabort(A){if(mA.brandCheck(this,fA),this[OA].abort)this.removeEventListener("abort",this[OA].abort);if(typeof A==="function")this[OA].abort=A,this.addEventListener("abort",A);else this[OA].abort=null}}fA.EMPTY=fA.prototype.EMPTY=0;fA.LOADING=fA.prototype.LOADING=1;fA.DONE=fA.prototype.DONE=2;Object.defineProperties(fA.prototype,{EMPTY:UF,LOADING:UF,DONE:UF,readAsArrayBuffer:MB,readAsBinaryString:MB,readAsText:MB,readAsDataURL:MB,abort:MB,readyState:MB,result:MB,error:MB,onloadstart:MB,onprogress:MB,onload:MB,onabort:MB,onerror:MB,onloadend:MB,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(fA,{EMPTY:UF,LOADING:UF,DONE:UF});aP.exports={FileReader:fA}});var Pw=z((plA,tP)=>{tP.exports={kConstruct:AQ().kConstruct}});var QO=z((ilA,AO)=>{var IXA=j("node:assert"),{URLSerializer:eP}=zB(),{isValidHeaderName:CXA}=SB();function EXA(A,Q,B=!1){let I=eP(A,B),C=eP(Q,B);return I===C}function YXA(A){IXA(A!==null);let Q=[];for(let B of A.split(","))if(B=B.trim(),CXA(B))Q.push(B);return Q}AO.exports={urlEquals:EXA,getFieldValues:YXA}});var CO=z((olA,IO)=>{var{kConstruct:JXA}=Pw(),{urlEquals:FXA,getFieldValues:j4}=QO(),{kEnumerableProperty:YY,isDisturbed:GXA}=$A(),{webidl:a}=hQ(),{Response:DXA,cloneResponse:ZXA,fromInnerResponse:UXA}=fD(),{Request:oC,fromInnerRequest:WXA}=DF(),{kState:SI}=kE(),{fetching:wXA}=xD(),{urlIsHttpHttpsScheme:Ow,createDeferredPromise:WF,readAllBytes:XXA}=SB(),R4=j("node:assert");class UC{#A;constructor(){if(arguments[0]!==JXA)a.illegalConstructor();a.util.markAsUncloneable(this),this.#A=arguments[1]}async match(A,Q={}){a.brandCheck(this,UC);let B="Cache.match";a.argumentLengthCheck(arguments,1,B),A=a.converters.RequestInfo(A,B,"request"),Q=a.converters.CacheQueryOptions(Q,B,"options");let I=this.#B(A,Q,1);if(I.length===0)return;return I[0]}async matchAll(A=void 0,Q={}){a.brandCheck(this,UC);let B="Cache.matchAll";if(A!==void 0)A=a.converters.RequestInfo(A,B,"request");return Q=a.converters.CacheQueryOptions(Q,B,"options"),this.#B(A,Q)}async add(A){a.brandCheck(this,UC);let Q="Cache.add";a.argumentLengthCheck(arguments,1,Q),A=a.converters.RequestInfo(A,Q,"request");let B=[A];return await this.addAll(B)}async addAll(A){a.brandCheck(this,UC);let Q="Cache.addAll";a.argumentLengthCheck(arguments,1,Q);let B=[],I=[];for(let Z of A){if(Z===void 0)throw a.errors.conversionFailed({prefix:Q,argument:"Argument 1",types:["undefined is not allowed"]});if(Z=a.converters.RequestInfo(Z),typeof Z==="string")continue;let U=Z[SI];if(!Ow(U.url)||U.method!=="GET")throw a.errors.exception({header:Q,message:"Expected http/s scheme when method is not GET."})}let C=[];for(let Z of A){let U=new oC(Z)[SI];if(!Ow(U.url))throw a.errors.exception({header:Q,message:"Expected http/s scheme."});U.initiator="fetch",U.destination="subresource",I.push(U);let W=WF();C.push(wXA({request:U,processResponse(w){if(w.type==="error"||w.status===206||w.status<200||w.status>299)W.reject(a.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(w.headersList.contains("vary")){let K=j4(w.headersList.get("vary"));for(let X of K)if(X==="*"){W.reject(a.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let V of C)V.abort();return}}},processResponseEndOfBody(w){if(w.aborted){W.reject(new DOMException("aborted","AbortError"));return}W.resolve(w)}})),B.push(W.promise)}let Y=await Promise.all(B),J=[],F=0;for(let Z of Y){let U={type:"put",request:I[F],response:Z};J.push(U),F++}let G=WF(),D=null;try{this.#Q(J)}catch(Z){D=Z}return queueMicrotask(()=>{if(D===null)G.resolve(void 0);else G.reject(D)}),G.promise}async put(A,Q){a.brandCheck(this,UC);let B="Cache.put";a.argumentLengthCheck(arguments,2,B),A=a.converters.RequestInfo(A,B,"request"),Q=a.converters.Response(Q,B,"response");let I=null;if(A instanceof oC)I=A[SI];else I=new oC(A)[SI];if(!Ow(I.url)||I.method!=="GET")throw a.errors.exception({header:B,message:"Expected an http/s scheme when method is not GET"});let C=Q[SI];if(C.status===206)throw a.errors.exception({header:B,message:"Got 206 status"});if(C.headersList.contains("vary")){let U=j4(C.headersList.get("vary"));for(let W of U)if(W==="*")throw a.errors.exception({header:B,message:"Got * vary field value"})}if(C.body&&(GXA(C.body.stream)||C.body.stream.locked))throw a.errors.exception({header:B,message:"Response body is locked or disturbed"});let E=ZXA(C),Y=WF();if(C.body!=null){let W=C.body.stream.getReader();XXA(W).then(Y.resolve,Y.reject)}else Y.resolve(void 0);let J=[],F={type:"put",request:I,response:E};J.push(F);let G=await Y.promise;if(E.body!=null)E.body.source=G;let D=WF(),Z=null;try{this.#Q(J)}catch(U){Z=U}return queueMicrotask(()=>{if(Z===null)D.resolve();else D.reject(Z)}),D.promise}async delete(A,Q={}){a.brandCheck(this,UC);let B="Cache.delete";a.argumentLengthCheck(arguments,1,B),A=a.converters.RequestInfo(A,B,"request"),Q=a.converters.CacheQueryOptions(Q,B,"options");let I=null;if(A instanceof oC){if(I=A[SI],I.method!=="GET"&&!Q.ignoreMethod)return!1}else R4(typeof A==="string"),I=new oC(A)[SI];let C=[],E={type:"delete",request:I,options:Q};C.push(E);let Y=WF(),J=null,F;try{F=this.#Q(C)}catch(G){J=G}return queueMicrotask(()=>{if(J===null)Y.resolve(!!F?.length);else Y.reject(J)}),Y.promise}async keys(A=void 0,Q={}){a.brandCheck(this,UC);let B="Cache.keys";if(A!==void 0)A=a.converters.RequestInfo(A,B,"request");Q=a.converters.CacheQueryOptions(Q,B,"options");let I=null;if(A!==void 0){if(A instanceof oC){if(I=A[SI],I.method!=="GET"&&!Q.ignoreMethod)return[]}else if(typeof A==="string")I=new oC(A)[SI]}let C=WF(),E=[];if(A===void 0)for(let Y of this.#A)E.push(Y[0]);else{let Y=this.#C(I,Q);for(let J of Y)E.push(J[0])}return queueMicrotask(()=>{let Y=[];for(let J of E){let F=WXA(J,new AbortController().signal,"immutable");Y.push(F)}C.resolve(Object.freeze(Y))}),C.promise}#Q(A){let Q=this.#A,B=[...Q],I=[],C=[];try{for(let E of A){if(E.type!=="delete"&&E.type!=="put")throw a.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(E.type==="delete"&&E.response!=null)throw a.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#C(E.request,E.options,I).length)throw new DOMException("???","InvalidStateError");let Y;if(E.type==="delete"){if(Y=this.#C(E.request,E.options),Y.length===0)return[];for(let J of Y){let F=Q.indexOf(J);R4(F!==-1),Q.splice(F,1)}}else if(E.type==="put"){if(E.response==null)throw a.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let J=E.request;if(!Ow(J.url))throw a.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(J.method!=="GET")throw a.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(E.options!=null)throw a.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});Y=this.#C(E.request);for(let F of Y){let G=Q.indexOf(F);R4(G!==-1),Q.splice(G,1)}Q.push([E.request,E.response]),I.push([E.request,E.response])}C.push([E.request,E.response])}return C}catch(E){throw this.#A.length=0,this.#A=B,E}}#C(A,Q,B){let I=[],C=B??this.#A;for(let E of C){let[Y,J]=E;if(this.#I(A,Y,J,Q))I.push(E)}return I}#I(A,Q,B=null,I){let C=new URL(A.url),E=new URL(Q.url);if(I?.ignoreSearch)E.search="",C.search="";if(!FXA(C,E,!0))return!1;if(B==null||I?.ignoreVary||!B.headersList.contains("vary"))return!0;let Y=j4(B.headersList.get("vary"));for(let J of Y){if(J==="*")return!1;let F=Q.headersList.get(J),G=A.headersList.get(J);if(F!==G)return!1}return!0}#B(A,Q,B=1/0){let I=null;if(A!==void 0){if(A instanceof oC){if(I=A[SI],I.method!=="GET"&&!Q.ignoreMethod)return[]}else if(typeof A==="string")I=new oC(A)[SI]}let C=[];if(A===void 0)for(let Y of this.#A)C.push(Y[1]);else{let Y=this.#C(I,Q);for(let J of Y)C.push(J[1])}let E=[];for(let Y of C){let J=UXA(Y,"immutable");if(E.push(J.clone()),E.length>=B)break}return Object.freeze(E)}}Object.defineProperties(UC.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:YY,matchAll:YY,add:YY,addAll:YY,put:YY,delete:YY,keys:YY});var BO=[{key:"ignoreSearch",converter:a.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:a.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:a.converters.boolean,defaultValue:()=>!1}];a.converters.CacheQueryOptions=a.dictionaryConverter(BO);a.converters.MultiCacheQueryOptions=a.dictionaryConverter([...BO,{key:"cacheName",converter:a.converters.DOMString}]);a.converters.Response=a.interfaceConverter(DXA);a.converters["sequence"]=a.sequenceConverter(a.converters.RequestInfo);IO.exports={Cache:UC}});var YO=z((nlA,EO)=>{var{kConstruct:mD}=Pw(),{Cache:kw}=CO(),{webidl:rQ}=hQ(),{kEnumerableProperty:dD}=$A();class uE{#A=new Map;constructor(){if(arguments[0]!==mD)rQ.illegalConstructor();rQ.util.markAsUncloneable(this)}async match(A,Q={}){if(rQ.brandCheck(this,uE),rQ.argumentLengthCheck(arguments,1,"CacheStorage.match"),A=rQ.converters.RequestInfo(A),Q=rQ.converters.MultiCacheQueryOptions(Q),Q.cacheName!=null){if(this.#A.has(Q.cacheName)){let B=this.#A.get(Q.cacheName);return await new kw(mD,B).match(A,Q)}}else for(let B of this.#A.values()){let C=await new kw(mD,B).match(A,Q);if(C!==void 0)return C}}async has(A){rQ.brandCheck(this,uE);let Q="CacheStorage.has";return rQ.argumentLengthCheck(arguments,1,Q),A=rQ.converters.DOMString(A,Q,"cacheName"),this.#A.has(A)}async open(A){rQ.brandCheck(this,uE);let Q="CacheStorage.open";if(rQ.argumentLengthCheck(arguments,1,Q),A=rQ.converters.DOMString(A,Q,"cacheName"),this.#A.has(A)){let I=this.#A.get(A);return new kw(mD,I)}let B=[];return this.#A.set(A,B),new kw(mD,B)}async delete(A){rQ.brandCheck(this,uE);let Q="CacheStorage.delete";return rQ.argumentLengthCheck(arguments,1,Q),A=rQ.converters.DOMString(A,Q,"cacheName"),this.#A.delete(A)}async keys(){return rQ.brandCheck(this,uE),[...this.#A.keys()]}}Object.defineProperties(uE.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:dD,has:dD,open:dD,delete:dD,keys:dD});EO.exports={CacheStorage:uE}});var FO=z((slA,JO)=>{JO.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var q4=z((alA,WO)=>{function VXA(A){for(let Q=0;Q=0&&B<=8||B>=10&&B<=31||B===127)return!0}return!1}function GO(A){for(let Q=0;Q126||B===34||B===40||B===41||B===60||B===62||B===64||B===44||B===59||B===58||B===92||B===47||B===91||B===93||B===63||B===61||B===123||B===125)throw Error("Invalid cookie name")}}function DO(A){let Q=A.length,B=0;if(A[0]==='"'){if(Q===1||A[Q-1]!=='"')throw Error("Invalid cookie value");--Q,++B}while(B126||I===34||I===44||I===59||I===92)throw Error("Invalid cookie value")}}function ZO(A){for(let Q=0;QQ.toString().padStart(2,"0"));function UO(A){if(typeof A==="number")A=new Date(A);return`${zXA[A.getUTCDay()]}, ${gw[A.getUTCDate()]} ${$XA[A.getUTCMonth()]} ${A.getUTCFullYear()} ${gw[A.getUTCHours()]}:${gw[A.getUTCMinutes()]}:${gw[A.getUTCSeconds()]} GMT`}function HXA(A){if(A<0)throw Error("Invalid cookie max-age")}function MXA(A){if(A.name.length===0)return null;GO(A.name),DO(A.value);let Q=[`${A.name}=${A.value}`];if(A.name.startsWith("__Secure-"))A.secure=!0;if(A.name.startsWith("__Host-"))A.secure=!0,A.domain=null,A.path="/";if(A.secure)Q.push("Secure");if(A.httpOnly)Q.push("HttpOnly");if(typeof A.maxAge==="number")HXA(A.maxAge),Q.push(`Max-Age=${A.maxAge}`);if(A.domain)KXA(A.domain),Q.push(`Domain=${A.domain}`);if(A.path)ZO(A.path),Q.push(`Path=${A.path}`);if(A.expires&&A.expires.toString()!=="Invalid Date")Q.push(`Expires=${UO(A.expires)}`);if(A.sameSite)Q.push(`SameSite=${A.sameSite}`);for(let B of A.unparsed){if(!B.includes("="))throw Error("Invalid unparsed");let[I,...C]=B.split("=");Q.push(`${I.trim()}=${C.join("=")}`)}return Q.join("; ")}WO.exports={isCTLExcludingHtab:VXA,validateCookieName:GO,validateCookiePath:ZO,validateCookieValue:DO,toIMFDate:UO,stringify:MXA}});var XO=z((rlA,wO)=>{var{maxNameValuePairSize:LXA,maxAttributeValueSize:NXA}=FO(),{isCTLExcludingHtab:jXA}=q4(),{collectASequenceOfCodePointsFast:Tw}=zB(),RXA=j("node:assert");function qXA(A){if(jXA(A))return null;let Q="",B="",I="",C="";if(A.includes(";")){let E={position:0};Q=Tw(";",A,E),B=A.slice(E.position)}else Q=A;if(!Q.includes("="))C=Q;else{let E={position:0};I=Tw("=",Q,E),C=Q.slice(E.position+1)}if(I=I.trim(),C=C.trim(),I.length+C.length>LXA)return null;return{name:I,value:C,...wF(B)}}function wF(A,Q={}){if(A.length===0)return Q;RXA(A[0]===";"),A=A.slice(1);let B="";if(A.includes(";"))B=Tw(";",A,{position:0}),A=A.slice(B.length);else B=A,A="";let I="",C="";if(B.includes("=")){let Y={position:0};I=Tw("=",B,Y),C=B.slice(Y.position+1)}else I=B;if(I=I.trim(),C=C.trim(),C.length>NXA)return wF(A,Q);let E=I.toLowerCase();if(E==="expires"){let Y=new Date(C);Q.expires=Y}else if(E==="max-age"){let Y=C.charCodeAt(0);if((Y<48||Y>57)&&C[0]!=="-")return wF(A,Q);if(!/^\d+$/.test(C))return wF(A,Q);let J=Number(C);Q.maxAge=J}else if(E==="domain"){let Y=C;if(Y[0]===".")Y=Y.slice(1);Y=Y.toLowerCase(),Q.domain=Y}else if(E==="path"){let Y="";if(C.length===0||C[0]!=="/")Y="/";else Y=C;Q.path=Y}else if(E==="secure")Q.secure=!0;else if(E==="httponly")Q.httpOnly=!0;else if(E==="samesite"){let Y="Default",J=C.toLowerCase();if(J.includes("none"))Y="None";if(J.includes("strict"))Y="Strict";if(J.includes("lax"))Y="Lax";Q.sameSite=Y}else Q.unparsed??=[],Q.unparsed.push(`${I}=${C}`);return wF(A,Q)}wO.exports={parseSetCookie:qXA,parseUnparsedAttributes:wF}});var zO=z((tlA,KO)=>{var{parseSetCookie:PXA}=XO(),{stringify:OXA}=q4(),{webidl:LA}=hQ(),{Headers:_w}=BY();function kXA(A){LA.argumentLengthCheck(arguments,1,"getCookies"),LA.brandCheck(A,_w,{strict:!1});let Q=A.get("cookie"),B={};if(!Q)return B;for(let I of Q.split(";")){let[C,...E]=I.split("=");B[C.trim()]=E.join("=")}return B}function gXA(A,Q,B){LA.brandCheck(A,_w,{strict:!1});let I="deleteCookie";LA.argumentLengthCheck(arguments,2,I),Q=LA.converters.DOMString(Q,I,"name"),B=LA.converters.DeleteCookieAttributes(B),VO(A,{name:Q,value:"",expires:new Date(0),...B})}function TXA(A){LA.argumentLengthCheck(arguments,1,"getSetCookies"),LA.brandCheck(A,_w,{strict:!1});let Q=A.getSetCookie();if(!Q)return[];return Q.map((B)=>PXA(B))}function VO(A,Q){LA.argumentLengthCheck(arguments,2,"setCookie"),LA.brandCheck(A,_w,{strict:!1}),Q=LA.converters.Cookie(Q);let B=OXA(Q);if(B)A.append("Set-Cookie",B)}LA.converters.DeleteCookieAttributes=LA.dictionaryConverter([{converter:LA.nullableConverter(LA.converters.DOMString),key:"path",defaultValue:()=>null},{converter:LA.nullableConverter(LA.converters.DOMString),key:"domain",defaultValue:()=>null}]);LA.converters.Cookie=LA.dictionaryConverter([{converter:LA.converters.DOMString,key:"name"},{converter:LA.converters.DOMString,key:"value"},{converter:LA.nullableConverter((A)=>{if(typeof A==="number")return LA.converters["unsigned long long"](A);return new Date(A)}),key:"expires",defaultValue:()=>null},{converter:LA.nullableConverter(LA.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:LA.nullableConverter(LA.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:LA.nullableConverter(LA.converters.DOMString),key:"path",defaultValue:()=>null},{converter:LA.nullableConverter(LA.converters.boolean),key:"secure",defaultValue:()=>null},{converter:LA.nullableConverter(LA.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:LA.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:LA.sequenceConverter(LA.converters.DOMString),key:"unparsed",defaultValue:()=>[]}]);KO.exports={getCookies:kXA,deleteCookie:gXA,getSetCookies:TXA,setCookie:VO}});var VF=z((elA,HO)=>{var{webidl:n}=hQ(),{kEnumerableProperty:LB}=$A(),{kConstruct:$O}=AQ(),{MessagePort:_XA}=j("node:worker_threads");class dB extends Event{#A;constructor(A,Q={}){if(A===$O){super(arguments[1],arguments[2]);n.util.markAsUncloneable(this);return}let B="MessageEvent constructor";n.argumentLengthCheck(arguments,1,B),A=n.converters.DOMString(A,B,"type"),Q=n.converters.MessageEventInit(Q,B,"eventInitDict");super(A,Q);this.#A=Q,n.util.markAsUncloneable(this)}get data(){return n.brandCheck(this,dB),this.#A.data}get origin(){return n.brandCheck(this,dB),this.#A.origin}get lastEventId(){return n.brandCheck(this,dB),this.#A.lastEventId}get source(){return n.brandCheck(this,dB),this.#A.source}get ports(){if(n.brandCheck(this,dB),!Object.isFrozen(this.#A.ports))Object.freeze(this.#A.ports);return this.#A.ports}initMessageEvent(A,Q=!1,B=!1,I=null,C="",E="",Y=null,J=[]){return n.brandCheck(this,dB),n.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new dB(A,{bubbles:Q,cancelable:B,data:I,origin:C,lastEventId:E,source:Y,ports:J})}static createFastMessageEvent(A,Q){let B=new dB($O,A,Q);return B.#A=Q,B.#A.data??=null,B.#A.origin??="",B.#A.lastEventId??="",B.#A.source??=null,B.#A.ports??=[],B}}var{createFastMessageEvent:yXA}=dB;delete dB.createFastMessageEvent;class XF extends Event{#A;constructor(A,Q={}){n.argumentLengthCheck(arguments,1,"CloseEvent constructor"),A=n.converters.DOMString(A,"CloseEvent constructor","type"),Q=n.converters.CloseEventInit(Q);super(A,Q);this.#A=Q,n.util.markAsUncloneable(this)}get wasClean(){return n.brandCheck(this,XF),this.#A.wasClean}get code(){return n.brandCheck(this,XF),this.#A.code}get reason(){return n.brandCheck(this,XF),this.#A.reason}}class lE extends Event{#A;constructor(A,Q){n.argumentLengthCheck(arguments,1,"ErrorEvent constructor");super(A,Q);n.util.markAsUncloneable(this),A=n.converters.DOMString(A,"ErrorEvent constructor","type"),Q=n.converters.ErrorEventInit(Q??{}),this.#A=Q}get message(){return n.brandCheck(this,lE),this.#A.message}get filename(){return n.brandCheck(this,lE),this.#A.filename}get lineno(){return n.brandCheck(this,lE),this.#A.lineno}get colno(){return n.brandCheck(this,lE),this.#A.colno}get error(){return n.brandCheck(this,lE),this.#A.error}}Object.defineProperties(dB.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:LB,origin:LB,lastEventId:LB,source:LB,ports:LB,initMessageEvent:LB});Object.defineProperties(XF.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:LB,code:LB,wasClean:LB});Object.defineProperties(lE.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:LB,filename:LB,lineno:LB,colno:LB,error:LB});n.converters.MessagePort=n.interfaceConverter(_XA);n.converters["sequence"]=n.sequenceConverter(n.converters.MessagePort);var P4=[{key:"bubbles",converter:n.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:n.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:n.converters.boolean,defaultValue:()=>!1}];n.converters.MessageEventInit=n.dictionaryConverter([...P4,{key:"data",converter:n.converters.any,defaultValue:()=>null},{key:"origin",converter:n.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:n.converters.DOMString,defaultValue:()=>""},{key:"source",converter:n.nullableConverter(n.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:n.converters["sequence"],defaultValue:()=>[]}]);n.converters.CloseEventInit=n.dictionaryConverter([...P4,{key:"wasClean",converter:n.converters.boolean,defaultValue:()=>!1},{key:"code",converter:n.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:n.converters.USVString,defaultValue:()=>""}]);n.converters.ErrorEventInit=n.dictionaryConverter([...P4,{key:"message",converter:n.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:n.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:n.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:n.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:n.converters.any}]);HO.exports={MessageEvent:dB,CloseEvent:XF,ErrorEvent:lE,createFastMessageEvent:yXA}});var JY=z((ApA,MO)=>{var SXA={enumerable:!0,writable:!1,configurable:!1},fXA={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},hXA={NOT_SENT:0,PROCESSING:1,SENT:2},xXA={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},vXA={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},bXA=Buffer.allocUnsafe(0),mXA={string:1,typedArray:2,arrayBuffer:3,blob:4};MO.exports={uid:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",sentCloseFrameState:hXA,staticPropertyDescriptors:SXA,states:fXA,opcodes:xXA,maxUnsigned16Bit:65535,parserStates:vXA,emptyBuffer:bXA,sendHints:mXA}});var cD=z((QpA,LO)=>{LO.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var pD=z((BpA,TO)=>{var{kReadyState:uD,kController:dXA,kResponse:cXA,kBinaryType:uXA,kWebSocketURL:lXA}=cD(),{states:lD,opcodes:pE}=JY(),{ErrorEvent:pXA,createFastMessageEvent:iXA}=VF(),{isUtf8:oXA}=j("node:buffer"),{collectASequenceOfCodePointsFast:nXA,removeHTTPWhitespace:NO}=zB();function sXA(A){return A[uD]===lD.CONNECTING}function aXA(A){return A[uD]===lD.OPEN}function rXA(A){return A[uD]===lD.CLOSING}function tXA(A){return A[uD]===lD.CLOSED}function O4(A,Q,B=(C,E)=>new Event(C,E),I={}){let C=B(A,I);Q.dispatchEvent(C)}function eXA(A,Q,B){if(A[uD]!==lD.OPEN)return;let I;if(Q===pE.TEXT)try{I=gO(B)}catch{RO(A,"Received invalid UTF-8 in text frame.");return}else if(Q===pE.BINARY)if(A[uXA]==="blob")I=new Blob([B]);else I=A1A(B);O4("message",A,iXA,{origin:A[lXA].origin,data:I})}function A1A(A){if(A.byteLength===A.buffer.byteLength)return A.buffer;return A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength)}function Q1A(A){if(A.length===0)return!1;for(let Q=0;Q126||B===34||B===40||B===41||B===44||B===47||B===58||B===59||B===60||B===61||B===62||B===63||B===64||B===91||B===92||B===93||B===123||B===125)return!1}return!0}function B1A(A){if(A>=1000&&A<1015)return A!==1004&&A!==1005&&A!==1006;return A>=3000&&A<=4999}function RO(A,Q){let{[dXA]:B,[cXA]:I}=A;if(B.abort(),I?.socket&&!I.socket.destroyed)I.socket.destroy();if(Q)O4("error",A,(C,E)=>new pXA(C,E),{error:Error(Q),message:Q})}function qO(A){return A===pE.CLOSE||A===pE.PING||A===pE.PONG}function PO(A){return A===pE.CONTINUATION}function OO(A){return A===pE.TEXT||A===pE.BINARY}function I1A(A){return OO(A)||PO(A)||qO(A)}function C1A(A){let Q={position:0},B=new Map;while(Q.position57)return!1}let Q=Number.parseInt(A,10);return Q>=8&&Q<=15}var kO=typeof process.versions.icu==="string",jO=kO?new TextDecoder("utf-8",{fatal:!0}):void 0,gO=kO?jO.decode.bind(jO):function(A){if(oXA(A))return A.toString("utf-8");throw TypeError("Invalid utf-8 received.")};TO.exports={isConnecting:sXA,isEstablished:aXA,isClosing:rXA,isClosed:tXA,fireEvent:O4,isValidSubprotocol:Q1A,isValidStatusCode:B1A,failWebsocketConnection:RO,websocketMessageReceived:eXA,utf8Decode:gO,isControlFrame:qO,isContinuationFrame:PO,isTextBinaryFrame:OO,isValidOpcode:I1A,parseExtensions:C1A,isValidClientWindowBits:E1A}});var yw=z((IpA,yO)=>{var{maxUnsigned16Bit:Y1A}=JY(),k4,iD=null,KF=16386;try{k4=j("node:crypto")}catch{k4={randomFillSync:function(Q,B,I){for(let C=0;CY1A)E+=8,C=127;else if(I>125)E+=2,C=126;let Y=Buffer.allocUnsafe(I+E);Y[0]=Y[1]=0,Y[0]|=128,Y[0]=(Y[0]&240)+A;/*! ws. MIT License. Einar Otto Stangvik */if(Y[E-4]=B[0],Y[E-3]=B[1],Y[E-2]=B[2],Y[E-1]=B[3],Y[1]=C,C===126)Y.writeUInt16BE(I,2);else if(C===127)Y[2]=Y[3]=0,Y.writeUIntBE(I,4,6);Y[1]|=128;for(let J=0;J{var{uid:F1A,states:oD,sentCloseFrameState:Sw,emptyBuffer:G1A,opcodes:D1A}=JY(),{kReadyState:nD,kSentClose:fw,kByteParser:fO,kReceivedClose:SO,kResponse:hO}=cD(),{fireEvent:Z1A,failWebsocketConnection:iE,isClosing:U1A,isClosed:W1A,isEstablished:w1A,parseExtensions:X1A}=pD(),{channels:zF}=gJ(),{CloseEvent:V1A}=VF(),{makeRequest:K1A}=DF(),{fetching:z1A}=xD(),{Headers:$1A,getHeadersList:H1A}=BY(),{getDecodeSplit:M1A}=SB(),{WebsocketFrameSend:L1A}=yw(),g4;try{g4=j("node:crypto")}catch{}function N1A(A,Q,B,I,C,E){let Y=A;Y.protocol=A.protocol==="ws:"?"http:":"https:";let J=K1A({urlList:[Y],client:B,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(E.headers){let Z=H1A(new $1A(E.headers));J.headersList=Z}let F=g4.randomBytes(16).toString("base64");J.headersList.append("sec-websocket-key",F),J.headersList.append("sec-websocket-version","13");for(let Z of Q)J.headersList.append("sec-websocket-protocol",Z);let G="permessage-deflate; client_max_window_bits";return J.headersList.append("sec-websocket-extensions",G),z1A({request:J,useParallelQueue:!0,dispatcher:E.dispatcher,processResponse(Z){if(Z.type==="error"||Z.status!==101){iE(I,"Received network error or non-101 status code.");return}if(Q.length!==0&&!Z.headersList.get("Sec-WebSocket-Protocol")){iE(I,"Server did not respond with sent protocols.");return}if(Z.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){iE(I,'Server did not set Upgrade header to "websocket".');return}if(Z.headersList.get("Connection")?.toLowerCase()!=="upgrade"){iE(I,'Server did not set Connection header to "upgrade".');return}let U=Z.headersList.get("Sec-WebSocket-Accept"),W=g4.createHash("sha1").update(F+F1A).digest("base64");if(U!==W){iE(I,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let w=Z.headersList.get("Sec-WebSocket-Extensions"),K;if(w!==null){if(K=X1A(w),!K.has("permessage-deflate")){iE(I,"Sec-WebSocket-Extensions header does not match.");return}}let X=Z.headersList.get("Sec-WebSocket-Protocol");if(X!==null){if(!M1A("sec-websocket-protocol",J.headersList).includes(X)){iE(I,"Protocol was not set in the opening handshake.");return}}if(Z.socket.on("data",xO),Z.socket.on("close",vO),Z.socket.on("error",bO),zF.open.hasSubscribers)zF.open.publish({address:Z.socket.address(),protocol:X,extensions:w});C(Z,K)}})}function j1A(A,Q,B,I){if(U1A(A)||W1A(A));else if(!w1A(A))iE(A,"Connection was closed before it was established."),A[nD]=oD.CLOSING;else if(A[fw]===Sw.NOT_SENT){A[fw]=Sw.PROCESSING;let C=new L1A;if(Q!==void 0&&B===void 0)C.frameData=Buffer.allocUnsafe(2),C.frameData.writeUInt16BE(Q,0);else if(Q!==void 0&&B!==void 0)C.frameData=Buffer.allocUnsafe(2+I),C.frameData.writeUInt16BE(Q,0),C.frameData.write(B,2,"utf-8");else C.frameData=G1A;A[hO].socket.write(C.createFrame(D1A.CLOSE)),A[fw]=Sw.SENT,A[nD]=oD.CLOSING}else A[nD]=oD.CLOSING}function xO(A){if(!this.ws[fO].write(A))this.pause()}function vO(){let{ws:A}=this,{[hO]:Q}=A;Q.socket.off("data",xO),Q.socket.off("close",vO),Q.socket.off("error",bO);let B=A[fw]===Sw.SENT&&A[SO],I=1005,C="",E=A[fO].closingInfo;if(E&&!E.error)I=E.code??1005,C=E.reason;else if(!A[SO])I=1006;if(A[nD]=oD.CLOSED,Z1A("close",A,(Y,J)=>new V1A(Y,J),{wasClean:B,code:I,reason:C}),zF.close.hasSubscribers)zF.close.publish({websocket:A,code:I,reason:C})}function bO(A){let{ws:Q}=this;if(Q[nD]=oD.CLOSING,zF.socketError.hasSubscribers)zF.socketError.publish(A);this.destroy()}mO.exports={establishWebSocketConnection:N1A,closeWebSocketConnection:j1A}});var lO=z((EpA,uO)=>{var{createInflateRaw:R1A,Z_DEFAULT_WINDOWBITS:q1A}=j("node:zlib"),{isValidClientWindowBits:P1A}=pD(),{MessageSizeExceededError:dO}=PA(),O1A=Buffer.from([0,0,255,255]),hw=Symbol("kBuffer"),sD=Symbol("kLength");class cO{#A;#Q={};#C=!1;#I=null;constructor(A){this.#Q.serverNoContextTakeover=A.has("server_no_context_takeover"),this.#Q.serverMaxWindowBits=A.get("server_max_window_bits")}decompress(A,Q,B){if(this.#C){B(new dO);return}if(!this.#A){let I=q1A;if(this.#Q.serverMaxWindowBits){if(!P1A(this.#Q.serverMaxWindowBits)){B(Error("Invalid server_max_window_bits"));return}I=Number.parseInt(this.#Q.serverMaxWindowBits)}try{this.#A=R1A({windowBits:I})}catch(C){B(C);return}this.#A[hw]=[],this.#A[sD]=0,this.#A.on("data",(C)=>{if(this.#C)return;if(this.#A[sD]+=C.length,this.#A[sD]>4194304){if(this.#C=!0,this.#A.removeAllListeners(),this.#A.destroy(),this.#A=null,this.#I){let E=this.#I;this.#I=null,E(new dO)}return}this.#A[hw].push(C)}),this.#A.on("error",(C)=>{this.#A=null,B(C)})}if(this.#I=B,this.#A.write(A),Q)this.#A.write(O1A);this.#A.flush(()=>{if(this.#C||!this.#A)return;let I=Buffer.concat(this.#A[hw],this.#A[sD]);this.#A[hw].length=0,this.#A[sD]=0,this.#I=null,B(null,I)})}}uO.exports={PerMessageDeflate:cO}});var Qk=z((YpA,Ak)=>{var{Writable:k1A}=j("node:stream"),g1A=j("node:assert"),{parserStates:NB,opcodes:$F,states:T1A,emptyBuffer:pO,sentCloseFrameState:iO}=JY(),{kReadyState:_1A,kSentClose:oO,kResponse:nO,kReceivedClose:sO}=cD(),{channels:xw}=gJ(),{isValidStatusCode:y1A,isValidOpcode:S1A,failWebsocketConnection:cB,websocketMessageReceived:aO,utf8Decode:f1A,isControlFrame:rO,isTextBinaryFrame:_4,isContinuationFrame:h1A}=pD(),{WebsocketFrameSend:tO}=yw(),{closeWebSocketConnection:x1A}=T4(),{PerMessageDeflate:v1A}=lO();class eO extends k1A{#A=[];#Q=0;#C=!1;#I=NB.INFO;#B={};#E=[];#Y;constructor(A,Q){super();if(this.ws=A,this.#Y=Q==null?new Map:Q,this.#Y.has("permessage-deflate"))this.#Y.set("permessage-deflate",new v1A(Q))}_write(A,Q,B){this.#A.push(A),this.#Q+=A.length,this.#C=!0,this.run(B)}run(A){while(this.#C)if(this.#I===NB.INFO){if(this.#Q<2)return A();let Q=this.consume(2),B=(Q[0]&128)!==0,I=Q[0]&15,C=(Q[1]&128)===128,E=!B&&I!==$F.CONTINUATION,Y=Q[1]&127,J=Q[0]&64,F=Q[0]&32,G=Q[0]&16;if(!S1A(I))return cB(this.ws,"Invalid opcode received"),A();if(C)return cB(this.ws,"Frame cannot be masked"),A();if(J!==0&&!this.#Y.has("permessage-deflate")){cB(this.ws,"Expected RSV1 to be clear.");return}if(F!==0||G!==0){cB(this.ws,"RSV1, RSV2, RSV3 must be clear");return}if(E&&!_4(I)){cB(this.ws,"Invalid frame type was fragmented.");return}if(_4(I)&&this.#E.length>0){cB(this.ws,"Expected continuation frame");return}if(this.#B.fragmented&&E){cB(this.ws,"Fragmented frame exceeded 125 bytes.");return}if((Y>125||E)&&rO(I)){cB(this.ws,"Control frame either too large or fragmented");return}if(h1A(I)&&this.#E.length===0&&!this.#B.compressed){cB(this.ws,"Unexpected continuation frame");return}if(Y<=125)this.#B.payloadLength=Y,this.#I=NB.READ_DATA;else if(Y===126)this.#I=NB.PAYLOADLENGTH_16;else if(Y===127)this.#I=NB.PAYLOADLENGTH_64;if(_4(I))this.#B.binaryType=I,this.#B.compressed=J!==0;this.#B.opcode=I,this.#B.masked=C,this.#B.fin=B,this.#B.fragmented=E}else if(this.#I===NB.PAYLOADLENGTH_16){if(this.#Q<2)return A();let Q=this.consume(2);this.#B.payloadLength=Q.readUInt16BE(0),this.#I=NB.READ_DATA}else if(this.#I===NB.PAYLOADLENGTH_64){if(this.#Q<8)return A();let Q=this.consume(8),B=Q.readUInt32BE(0),I=Q.readUInt32BE(4);if(B!==0||I>2147483647){cB(this.ws,"Received payload length > 2^31 bytes.");return}this.#B.payloadLength=I,this.#I=NB.READ_DATA}else if(this.#I===NB.READ_DATA){if(this.#Q{if(B){cB(this.ws,B.message);return}if(this.#E.push(I),!this.#B.fin){this.#I=NB.INFO,this.#C=!0,this.run(A);return}aO(this.ws,this.#B.binaryType,Buffer.concat(this.#E)),this.#C=!0,this.#I=NB.INFO,this.#E.length=0,this.run(A)}),this.#C=!1;break}}}consume(A){if(A>this.#Q)throw Error("Called consume() before buffers satiated.");else if(A===0)return pO;if(this.#A[0].length===A)return this.#Q-=this.#A[0].length,this.#A.shift();let Q=Buffer.allocUnsafe(A),B=0;while(B!==A){let I=this.#A[0],{length:C}=I;if(C+B===A){Q.set(this.#A.shift(),B);break}else if(C+B>A){Q.set(I.subarray(0,A-B),B),this.#A[0]=I.subarray(A-B);break}else Q.set(this.#A.shift(),B),B+=I.length}return this.#Q-=A,Q}parseCloseBody(A){g1A(A.length!==1);let Q;if(A.length>=2)Q=A.readUInt16BE(0);if(Q!==void 0&&!y1A(Q))return{code:1002,reason:"Invalid status code",error:!0};let B=A.subarray(2);if(B[0]===239&&B[1]===187&&B[2]===191)B=B.subarray(3);try{B=f1A(B)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:Q,reason:B,error:!1}}parseControlFrame(A){let{opcode:Q,payloadLength:B}=this.#B;if(Q===$F.CLOSE){if(B===1)return cB(this.ws,"Received close frame with a 1-byte body."),!1;if(this.#B.closeInfo=this.parseCloseBody(A),this.#B.closeInfo.error){let{code:I,reason:C}=this.#B.closeInfo;return x1A(this.ws,I,C,C.length),cB(this.ws,C),!1}if(this.ws[oO]!==iO.SENT){let I=pO;if(this.#B.closeInfo.code)I=Buffer.allocUnsafe(2),I.writeUInt16BE(this.#B.closeInfo.code,0);let C=new tO(I);this.ws[nO].socket.write(C.createFrame($F.CLOSE),(E)=>{if(!E)this.ws[oO]=iO.SENT})}return this.ws[_1A]=T1A.CLOSING,this.ws[sO]=!0,!1}else if(Q===$F.PING){if(!this.ws[sO]){let I=new tO(A);if(this.ws[nO].socket.write(I.createFrame($F.PONG)),xw.ping.hasSubscribers)xw.ping.publish({payload:A})}}else if(Q===$F.PONG){if(xw.pong.hasSubscribers)xw.pong.publish({payload:A})}return!0}get closingInfo(){return this.#B.closeInfo}}Ak.exports={ByteParser:eO}});var Jk=z((JpA,Yk)=>{var{WebsocketFrameSend:b1A}=yw(),{opcodes:Bk,sendHints:HF}=JY(),m1A=X8(),Ik=Buffer[Symbol.species];class Ek{#A=new m1A;#Q=!1;#C;constructor(A){this.#C=A}add(A,Q,B){if(B!==HF.blob){let C=Ck(A,B);if(!this.#Q)this.#C.write(C,Q);else{let E={promise:null,callback:Q,frame:C};this.#A.push(E)}return}let I={promise:A.arrayBuffer().then((C)=>{I.promise=null,I.frame=Ck(C,B)}),callback:Q,frame:null};if(this.#A.push(I),!this.#Q)this.#I()}async#I(){this.#Q=!0;let A=this.#A;while(!A.isEmpty()){let Q=A.shift();if(Q.promise!==null)await Q.promise;this.#C.write(Q.frame,Q.callback),Q.callback=Q.frame=null}this.#Q=!1}}function Ck(A,Q){return new b1A(d1A(A,Q)).createFrame(Q===HF.string?Bk.TEXT:Bk.BINARY)}function d1A(A,Q){switch(Q){case HF.string:return Buffer.from(A);case HF.arrayBuffer:case HF.blob:return new Ik(A);case HF.typedArray:return new Ik(A.buffer,A.byteOffset,A.byteLength)}}Yk.exports={SendQueue:Ek}});var Vk=z((FpA,Xk)=>{var{webidl:JA}=hQ(),{URLSerializer:c1A}=zB(),{environmentSettingsObject:Fk}=SB(),{staticPropertyDescriptors:oE,states:aD,sentCloseFrameState:u1A,sendHints:vw}=JY(),{kWebSocketURL:Gk,kReadyState:y4,kController:l1A,kBinaryType:bw,kResponse:Dk,kSentClose:p1A,kByteParser:i1A}=cD(),{isConnecting:o1A,isEstablished:n1A,isClosing:s1A,isValidSubprotocol:a1A,fireEvent:Zk}=pD(),{establishWebSocketConnection:r1A,closeWebSocketConnection:Uk}=T4(),{ByteParser:t1A}=Qk(),{kEnumerableProperty:JI,isBlobLike:Wk}=$A(),{getGlobalDispatcher:e1A}=Yw(),{types:wk}=j("node:util"),{ErrorEvent:A8A,CloseEvent:Q8A}=VF(),{SendQueue:B8A}=Jk();class gA extends EventTarget{#A={open:null,error:null,close:null,message:null};#Q=0;#C="";#I="";#B;constructor(A,Q=[]){super();JA.util.markAsUncloneable(this);let B="WebSocket constructor";JA.argumentLengthCheck(arguments,1,B);let I=JA.converters["DOMString or sequence or WebSocketInit"](Q,B,"options");A=JA.converters.USVString(A,B,"url"),Q=I.protocols;let C=Fk.settingsObject.baseUrl,E;try{E=new URL(A,C)}catch(J){throw new DOMException(J,"SyntaxError")}if(E.protocol==="http:")E.protocol="ws:";else if(E.protocol==="https:")E.protocol="wss:";if(E.protocol!=="ws:"&&E.protocol!=="wss:")throw new DOMException(`Expected a ws: or wss: protocol, got ${E.protocol}`,"SyntaxError");if(E.hash||E.href.endsWith("#"))throw new DOMException("Got fragment","SyntaxError");if(typeof Q==="string")Q=[Q];if(Q.length!==new Set(Q.map((J)=>J.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(Q.length>0&&!Q.every((J)=>a1A(J)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[Gk]=new URL(E.href);let Y=Fk.settingsObject;this[l1A]=r1A(E,Q,Y,this,(J,F)=>this.#E(J,F),I),this[y4]=gA.CONNECTING,this[p1A]=u1A.NOT_SENT,this[bw]="blob"}close(A=void 0,Q=void 0){JA.brandCheck(this,gA);let B="WebSocket.close";if(A!==void 0)A=JA.converters["unsigned short"](A,B,"code",{clamp:!0});if(Q!==void 0)Q=JA.converters.USVString(Q,B,"reason");if(A!==void 0){if(A!==1000&&(A<3000||A>4999))throw new DOMException("invalid code","InvalidAccessError")}let I=0;if(Q!==void 0){if(I=Buffer.byteLength(Q),I>123)throw new DOMException(`Reason must be less than 123 bytes; received ${I}`,"SyntaxError")}Uk(this,A,Q,I)}send(A){JA.brandCheck(this,gA);let Q="WebSocket.send";if(JA.argumentLengthCheck(arguments,1,Q),A=JA.converters.WebSocketSendData(A,Q,"data"),o1A(this))throw new DOMException("Sent before connected.","InvalidStateError");if(!n1A(this)||s1A(this))return;if(typeof A==="string"){let B=Buffer.byteLength(A);this.#Q+=B,this.#B.add(A,()=>{this.#Q-=B},vw.string)}else if(wk.isArrayBuffer(A))this.#Q+=A.byteLength,this.#B.add(A,()=>{this.#Q-=A.byteLength},vw.arrayBuffer);else if(ArrayBuffer.isView(A))this.#Q+=A.byteLength,this.#B.add(A,()=>{this.#Q-=A.byteLength},vw.typedArray);else if(Wk(A))this.#Q+=A.size,this.#B.add(A,()=>{this.#Q-=A.size},vw.blob)}get readyState(){return JA.brandCheck(this,gA),this[y4]}get bufferedAmount(){return JA.brandCheck(this,gA),this.#Q}get url(){return JA.brandCheck(this,gA),c1A(this[Gk])}get extensions(){return JA.brandCheck(this,gA),this.#I}get protocol(){return JA.brandCheck(this,gA),this.#C}get onopen(){return JA.brandCheck(this,gA),this.#A.open}set onopen(A){if(JA.brandCheck(this,gA),this.#A.open)this.removeEventListener("open",this.#A.open);if(typeof A==="function")this.#A.open=A,this.addEventListener("open",A);else this.#A.open=null}get onerror(){return JA.brandCheck(this,gA),this.#A.error}set onerror(A){if(JA.brandCheck(this,gA),this.#A.error)this.removeEventListener("error",this.#A.error);if(typeof A==="function")this.#A.error=A,this.addEventListener("error",A);else this.#A.error=null}get onclose(){return JA.brandCheck(this,gA),this.#A.close}set onclose(A){if(JA.brandCheck(this,gA),this.#A.close)this.removeEventListener("close",this.#A.close);if(typeof A==="function")this.#A.close=A,this.addEventListener("close",A);else this.#A.close=null}get onmessage(){return JA.brandCheck(this,gA),this.#A.message}set onmessage(A){if(JA.brandCheck(this,gA),this.#A.message)this.removeEventListener("message",this.#A.message);if(typeof A==="function")this.#A.message=A,this.addEventListener("message",A);else this.#A.message=null}get binaryType(){return JA.brandCheck(this,gA),this[bw]}set binaryType(A){if(JA.brandCheck(this,gA),A!=="blob"&&A!=="arraybuffer")this[bw]="blob";else this[bw]=A}#E(A,Q){this[Dk]=A;let B=new t1A(this,Q);B.on("drain",I8A),B.on("error",C8A.bind(this)),A.socket.ws=this,this[i1A]=B,this.#B=new B8A(A.socket),this[y4]=aD.OPEN;let I=A.headersList.get("sec-websocket-extensions");if(I!==null)this.#I=I;let C=A.headersList.get("sec-websocket-protocol");if(C!==null)this.#C=C;Zk("open",this)}}gA.CONNECTING=gA.prototype.CONNECTING=aD.CONNECTING;gA.OPEN=gA.prototype.OPEN=aD.OPEN;gA.CLOSING=gA.prototype.CLOSING=aD.CLOSING;gA.CLOSED=gA.prototype.CLOSED=aD.CLOSED;Object.defineProperties(gA.prototype,{CONNECTING:oE,OPEN:oE,CLOSING:oE,CLOSED:oE,url:JI,readyState:JI,bufferedAmount:JI,onopen:JI,onerror:JI,onclose:JI,close:JI,onmessage:JI,binaryType:JI,send:JI,extensions:JI,protocol:JI,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(gA,{CONNECTING:oE,OPEN:oE,CLOSING:oE,CLOSED:oE});JA.converters["sequence"]=JA.sequenceConverter(JA.converters.DOMString);JA.converters["DOMString or sequence"]=function(A,Q,B){if(JA.util.Type(A)==="Object"&&Symbol.iterator in A)return JA.converters["sequence"](A);return JA.converters.DOMString(A,Q,B)};JA.converters.WebSocketInit=JA.dictionaryConverter([{key:"protocols",converter:JA.converters["DOMString or sequence"],defaultValue:()=>[]},{key:"dispatcher",converter:JA.converters.any,defaultValue:()=>e1A()},{key:"headers",converter:JA.nullableConverter(JA.converters.HeadersInit)}]);JA.converters["DOMString or sequence or WebSocketInit"]=function(A){if(JA.util.Type(A)==="Object"&&!(Symbol.iterator in A))return JA.converters.WebSocketInit(A);return{protocols:JA.converters["DOMString or sequence"](A)}};JA.converters.WebSocketSendData=function(A){if(JA.util.Type(A)==="Object"){if(Wk(A))return JA.converters.Blob(A,{strict:!1});if(ArrayBuffer.isView(A)||wk.isArrayBuffer(A))return JA.converters.BufferSource(A)}return JA.converters.USVString(A)};function I8A(){this.ws[Dk].socket.resume()}function C8A(A){let Q,B;if(A instanceof Q8A)Q=A.reason,B=A.code;else Q=A.message;Zk("error",this,()=>new A8A("error",{error:A,message:Q})),Uk(this,B)}Xk.exports={WebSocket:gA}});var S4=z((GpA,Kk)=>{function E8A(A){return A.indexOf("\x00")===-1}function Y8A(A){if(A.length===0)return!1;for(let Q=0;Q57)return!1;return!0}function J8A(A){return new Promise((Q)=>{setTimeout(Q,A).unref()})}Kk.exports={isValidLastEventId:E8A,isASCIINumber:Y8A,delay:J8A}});var Lk=z((DpA,Mk)=>{var{Transform:F8A}=j("node:stream"),{isASCIINumber:zk,isValidLastEventId:$k}=S4(),nC=[239,187,191];class Hk extends F8A{state=null;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(A={}){A.readableObjectMode=!0;super(A);if(this.state=A.eventSourceSettings||{},A.push)this.push=A.push}_transform(A,Q,B){if(A.length===0){B();return}if(this.buffer)this.buffer=Buffer.concat([this.buffer,A]);else this.buffer=A;if(this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===nC[0]){B();return}this.checkBOM=!1,B();return;case 2:if(this.buffer[0]===nC[0]&&this.buffer[1]===nC[1]){B();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===nC[0]&&this.buffer[1]===nC[1]&&this.buffer[2]===nC[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,B();return}this.checkBOM=!1;break;default:if(this.buffer[0]===nC[0]&&this.buffer[1]===nC[1]&&this.buffer[2]===nC[2])this.buffer=this.buffer.subarray(3);this.checkBOM=!1;break}while(this.pos0)Q[I]=C;break}}processEvent(A){if(A.retry&&zk(A.retry))this.state.reconnectionTime=parseInt(A.retry,10);if(A.id&&$k(A.id))this.state.lastEventId=A.id;if(A.data!==void 0)this.push({type:A.event||"message",options:{data:A.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}}Mk.exports={EventSourceStream:Hk}});var gk=z((ZpA,kk)=>{var{pipeline:G8A}=j("node:stream"),{fetching:D8A}=xD(),{makeRequest:Z8A}=DF(),{webidl:sC}=hQ(),{EventSourceStream:U8A}=Lk(),{parseMIMEType:W8A}=zB(),{createFastMessageEvent:w8A}=VF(),{isNetworkError:Nk}=fD(),{delay:X8A}=S4(),{kEnumerableProperty:FY}=$A(),{environmentSettingsObject:jk}=SB(),Rk=!1,qk=3000,rD=0,Pk=1,tD=2,V8A="anonymous",K8A="use-credentials";class MF extends EventTarget{#A={open:null,error:null,message:null};#Q=null;#C=!1;#I=rD;#B=null;#E=null;#Y;#J;constructor(A,Q={}){super();sC.util.markAsUncloneable(this);let B="EventSource constructor";if(sC.argumentLengthCheck(arguments,1,B),!Rk)Rk=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"});A=sC.converters.USVString(A,B,"url"),Q=sC.converters.EventSourceInitDict(Q,B,"eventSourceInitDict"),this.#Y=Q.dispatcher,this.#J={lastEventId:"",reconnectionTime:qk};let I=jk,C;try{C=new URL(A,I.settingsObject.baseUrl),this.#J.origin=C.origin}catch(J){throw new DOMException(J,"SyntaxError")}this.#Q=C.href;let E=V8A;if(Q.withCredentials)E=K8A,this.#C=!0;let Y={redirect:"follow",keepalive:!0,mode:"cors",credentials:E==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};Y.client=jk.settingsObject,Y.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],Y.cache="no-store",Y.initiator="other",Y.urlList=[new URL(this.#Q)],this.#B=Z8A(Y),this.#F()}get readyState(){return this.#I}get url(){return this.#Q}get withCredentials(){return this.#C}#F(){if(this.#I===tD)return;this.#I=rD;let A={request:this.#B,dispatcher:this.#Y},Q=(B)=>{if(Nk(B))this.dispatchEvent(new Event("error")),this.close();this.#G()};A.processResponseEndOfBody=Q,A.processResponse=(B)=>{if(Nk(B))if(B.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#G();return}let I=B.headersList.get("content-type",!0),C=I!==null?W8A(I):"failure",E=C!=="failure"&&C.essence==="text/event-stream";if(B.status!==200||E===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#I=Pk,this.dispatchEvent(new Event("open")),this.#J.origin=B.urlList[B.urlList.length-1].origin;let Y=new U8A({eventSourceSettings:this.#J,push:(J)=>{this.dispatchEvent(w8A(J.type,J.options))}});G8A(B.body.stream,Y,(J)=>{if(J?.aborted===!1)this.close(),this.dispatchEvent(new Event("error"))})},this.#E=D8A(A)}async#G(){if(this.#I===tD)return;if(this.#I=rD,this.dispatchEvent(new Event("error")),await X8A(this.#J.reconnectionTime),this.#I!==rD)return;if(this.#J.lastEventId.length)this.#B.headersList.set("last-event-id",this.#J.lastEventId,!0);this.#F()}close(){if(sC.brandCheck(this,MF),this.#I===tD)return;this.#I=tD,this.#E.abort(),this.#B=null}get onopen(){return this.#A.open}set onopen(A){if(this.#A.open)this.removeEventListener("open",this.#A.open);if(typeof A==="function")this.#A.open=A,this.addEventListener("open",A);else this.#A.open=null}get onmessage(){return this.#A.message}set onmessage(A){if(this.#A.message)this.removeEventListener("message",this.#A.message);if(typeof A==="function")this.#A.message=A,this.addEventListener("message",A);else this.#A.message=null}get onerror(){return this.#A.error}set onerror(A){if(this.#A.error)this.removeEventListener("error",this.#A.error);if(typeof A==="function")this.#A.error=A,this.addEventListener("error",A);else this.#A.error=null}}var Ok={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:rD,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:Pk,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:tD,writable:!1}};Object.defineProperties(MF,Ok);Object.defineProperties(MF.prototype,Ok);Object.defineProperties(MF.prototype,{close:FY,onerror:FY,onmessage:FY,onopen:FY,readyState:FY,url:FY,withCredentials:FY});sC.converters.EventSourceInitDict=sC.dictionaryConverter([{key:"withCredentials",converter:sC.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:sC.converters.any}]);kk.exports={EventSource:MF,defaultReconnectionTime:qk}});var rk=z((ak,s4)=>{(function(A){if(typeof ak==="object"&&typeof s4<"u")s4.exports=A();else if(typeof define==="function"&&define.amd)define([],A);else{var Q;if(typeof window<"u")Q=window;else if(typeof global<"u")Q=global;else if(typeof self<"u")Q=self;else Q=this;Q.Syntax=A()}})(function(){var A,Q,B;return function(){function I(C,E,Y){function J(D,Z){if(!E[D]){if(!C[D]){var U=j;if(!Z&&U)return U(D,!0);if(F)return F(D,!0);var W=Error("Cannot find module '"+D+"'");throw W.code="MODULE_NOT_FOUND",W}var w=E[D]={exports:{}};C[D][0].call(w.exports,function(K){var X=C[D][1][K];return J(X||K)},w,w.exports,I,C,E,Y)}return E[D].exports}for(var F=j,G=0;G{let p=$[_],XA=typeof p;if((XA==="object"||XA==="function")&&!Object.isFrozen(p))Y(p)}),$}class J{constructor($){if($.data===void 0)$.data={};this.data=$.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function F($){return $.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function G($,..._){let p=Object.create(null);for(let XA in $)p[XA]=$[XA];return _.forEach(function(XA){for(let ZQ in XA)p[ZQ]=XA[ZQ]}),p}let D="",Z=($)=>{return!!$.scope},U=($,{prefix:_})=>{if($.startsWith("language:"))return $.replace("language:","language-");if($.includes(".")){let p=$.split(".");return[`${_}${p.shift()}`,...p.map((XA,ZQ)=>`${XA}${"_".repeat(ZQ+1)}`)].join(" ")}return`${_}${$}`};class W{constructor($,_){this.buffer="",this.classPrefix=_.classPrefix,$.walk(this)}addText($){this.buffer+=F($)}openNode($){if(!Z($))return;let _=U($.scope,{prefix:this.classPrefix});this.span(_)}closeNode($){if(!Z($))return;this.buffer+=D}value(){return this.buffer}span($){this.buffer+=``}}let w=($={})=>{let _={children:[]};return Object.assign(_,$),_};class K{constructor(){this.rootNode=w(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add($){this.top.children.push($)}openNode($){let _=w({scope:$});this.add(_),this.stack.push(_)}closeNode(){if(this.stack.length>1)return this.stack.pop();return}closeAllNodes(){while(this.closeNode());}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk($){return this.constructor._walk($,this.rootNode)}static _walk($,_){if(typeof _==="string")$.addText(_);else if(_.children)$.openNode(_),_.children.forEach((p)=>this._walk($,p)),$.closeNode(_);return $}static _collapse($){if(typeof $==="string")return;if(!$.children)return;if($.children.every((_)=>typeof _==="string"))$.children=[$.children.join("")];else $.children.forEach((_)=>{K._collapse(_)})}}class X extends K{constructor($){super();this.options=$}addText($){if($==="")return;this.add($)}startScope($){this.openNode($)}endScope(){this.closeNode()}__addSublanguage($,_){let p=$.root;if(_)p.scope=`language:${_}`;this.add(p)}toHTML(){return new W(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function V($){if(!$)return null;if(typeof $==="string")return $;return $.source}function M($){return R("(?=",$,")")}function N($){return R("(?:",$,")*")}function L($){return R("(?:",$,")?")}function R(...$){return $.map((p)=>V(p)).join("")}function P($){let _=$[$.length-1];if(typeof _==="object"&&_.constructor===Object)return $.splice($.length-1,1),_;else return{}}function T(...$){return"("+(P($).capture?"":"?:")+$.map((XA)=>V(XA)).join("|")+")"}function u($){return new RegExp($.toString()+"|").exec("").length-1}function DA($,_){let p=$&&$.exec(_);return p&&p.index===0}let ZA=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function dA($,{joinWith:_}){let p=0;return $.map((XA)=>{p+=1;let ZQ=p,UQ=V(XA),v="";while(UQ.length>0){let d=ZA.exec(UQ);if(!d){v+=UQ;break}if(v+=UQ.substring(0,d.index),UQ=UQ.substring(d.index+d[0].length),d[0][0]==="\\"&&d[1])v+="\\"+String(Number(d[1])+ZQ);else if(v+=d[0],d[0]==="(")p++}return v}).map((XA)=>`(${XA})`).join(_)}let cA=/\b\B/,qA="[a-zA-Z]\\w*",RI="[a-zA-Z_]\\w*",SQ="\\b\\d+(\\.\\d+)?",TB="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",aI="\\b(0b[01]+)",fC="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",rU=($={})=>{let _=/^#![ ]*\//;if($.binary)$.begin=R(_,/.*\b/,$.binary,/\b.*/);return G({scope:"meta",begin:_,end:/$/,relevance:0,"on:begin":(p,XA)=>{if(p.index!==0)XA.ignoreMatch()}},$)},tG={begin:"\\\\[\\s\\S]",relevance:0},U0A={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[tG]},W0A={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[tG]},w0A={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},tU=function($,_,p={}){let XA=G({scope:"comment",begin:$,end:_,contains:[]},p);XA.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let ZQ=T("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return XA.contains.push({begin:R(/[ ]+/,"(",ZQ,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),XA},X0A=tU("//","$"),V0A=tU("/\\*","\\*/"),K0A=tU("#","$"),z0A={scope:"number",begin:SQ,relevance:0},$0A={scope:"number",begin:TB,relevance:0},H0A={scope:"number",begin:aI,relevance:0},M0A={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[tG,{begin:/\[/,end:/\]/,relevance:0,contains:[tG]}]},L0A={scope:"title",begin:qA,relevance:0},N0A={scope:"title",begin:RI,relevance:0},j0A={begin:"\\.\\s*"+RI,relevance:0};var eU=Object.freeze({__proto__:null,APOS_STRING_MODE:U0A,BACKSLASH_ESCAPE:tG,BINARY_NUMBER_MODE:H0A,BINARY_NUMBER_RE:aI,COMMENT:tU,C_BLOCK_COMMENT_MODE:V0A,C_LINE_COMMENT_MODE:X0A,C_NUMBER_MODE:$0A,C_NUMBER_RE:TB,END_SAME_AS_BEGIN:function($){return Object.assign($,{"on:begin":(_,p)=>{p.data._beginMatch=_[1]},"on:end":(_,p)=>{if(p.data._beginMatch!==_[1])p.ignoreMatch()}})},HASH_COMMENT_MODE:K0A,IDENT_RE:qA,MATCH_NOTHING_RE:cA,METHOD_GUARD:j0A,NUMBER_MODE:z0A,NUMBER_RE:SQ,PHRASAL_WORDS_MODE:w0A,QUOTE_STRING_MODE:W0A,REGEXP_MODE:M0A,RE_STARTERS_RE:fC,SHEBANG:rU,TITLE_MODE:L0A,UNDERSCORE_IDENT_RE:RI,UNDERSCORE_TITLE_MODE:N0A});function R0A($,_){if($.input[$.index-1]===".")_.ignoreMatch()}function q0A($,_){if($.className!==void 0)$.scope=$.className,delete $.className}function P0A($,_){if(!_)return;if(!$.beginKeywords)return;if($.begin="\\b("+$.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",$.__beforeBegin=R0A,$.keywords=$.keywords||$.beginKeywords,delete $.beginKeywords,$.relevance===void 0)$.relevance=0}function O0A($,_){if(!Array.isArray($.illegal))return;$.illegal=T(...$.illegal)}function k0A($,_){if(!$.match)return;if($.begin||$.end)throw Error("begin & end are not supported with match");$.begin=$.match,delete $.match}function g0A($,_){if($.relevance===void 0)$.relevance=1}let T0A=($,_)=>{if(!$.beforeMatch)return;if($.starts)throw Error("beforeMatch cannot be used with starts");let p=Object.assign({},$);Object.keys($).forEach((XA)=>{delete $[XA]}),$.keywords=p.keywords,$.begin=R(p.beforeMatch,M(p.begin)),$.starts={relevance:0,contains:[Object.assign(p,{endsParent:!0})]},$.relevance=0,delete p.beforeMatch},_0A=["of","and","for","in","not","or","if","then","parent","list","value"],y0A="keyword";function K3($,_,p=y0A){let XA=Object.create(null);if(typeof $==="string")ZQ(p,$.split(" "));else if(Array.isArray($))ZQ(p,$);else Object.keys($).forEach(function(UQ){Object.assign(XA,K3($[UQ],_,UQ))});return XA;function ZQ(UQ,v){if(_)v=v.map((d)=>d.toLowerCase());v.forEach(function(d){let HA=d.split("|");XA[HA[0]]=[UQ,S0A(HA[0],HA[1])]})}}function S0A($,_){if(_)return Number(_);return f0A($)?0:1}function f0A($){return _0A.includes($.toLowerCase())}let z3={},v0=($)=>{console.error($)},$3=($,..._)=>{console.log(`WARN: ${$}`,..._)},RJ=($,_)=>{if(z3[`${$}/${_}`])return;console.log(`Deprecated as of ${$}. ${_}`),z3[`${$}/${_}`]=!0},AW=Error();function H3($,_,{key:p}){let XA=0,ZQ=$[p],UQ={},v={};for(let d=1;d<=_.length;d++)v[d+XA]=ZQ[d],UQ[d+XA]=!0,XA+=u(_[d-1]);$[p]=v,$[p]._emit=UQ,$[p]._multi=!0}function h0A($){if(!Array.isArray($.begin))return;if($.skip||$.excludeBegin||$.returnBegin)throw v0("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),AW;if(typeof $.beginScope!=="object"||$.beginScope===null)throw v0("beginScope must be object"),AW;H3($,$.begin,{key:"beginScope"}),$.begin=dA($.begin,{joinWith:""})}function x0A($){if(!Array.isArray($.end))return;if($.skip||$.excludeEnd||$.returnEnd)throw v0("skip, excludeEnd, returnEnd not compatible with endScope: {}"),AW;if(typeof $.endScope!=="object"||$.endScope===null)throw v0("endScope must be object"),AW;H3($,$.end,{key:"endScope"}),$.end=dA($.end,{joinWith:""})}function v0A($){if($.scope&&typeof $.scope==="object"&&$.scope!==null)$.beginScope=$.scope,delete $.scope}function b0A($){if(v0A($),typeof $.beginScope==="string")$.beginScope={_wrap:$.beginScope};if(typeof $.endScope==="string")$.endScope={_wrap:$.endScope};h0A($),x0A($)}function m0A($){function _(v,d){return new RegExp(V(v),"m"+($.case_insensitive?"i":"")+($.unicodeRegex?"u":"")+(d?"g":""))}class p{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(v,d){d.position=this.position++,this.matchIndexes[this.matchAt]=d,this.regexes.push([d,v]),this.matchAt+=u(v)+1}compile(){if(this.regexes.length===0)this.exec=()=>null;let v=this.regexes.map((d)=>d[1]);this.matcherRe=_(dA(v,{joinWith:"|"}),!0),this.lastIndex=0}exec(v){this.matcherRe.lastIndex=this.lastIndex;let d=this.matcherRe.exec(v);if(!d)return null;let HA=d.findIndex((EB,eG)=>eG>0&&EB!==void 0),_B=this.matchIndexes[HA];return d.splice(0,HA),Object.assign(d,_B)}}class XA{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(v){if(this.multiRegexes[v])return this.multiRegexes[v];let d=new p;return this.rules.slice(v).forEach(([HA,_B])=>d.addRule(HA,_B)),d.compile(),this.multiRegexes[v]=d,d}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(v,d){if(this.rules.push([v,d]),d.type==="begin")this.count++}exec(v){let d=this.getMatcher(this.regexIndex);d.lastIndex=this.lastIndex;let HA=d.exec(v);if(this.resumingScanAtSamePosition())if(HA&&HA.index===this.lastIndex);else{let _B=this.getMatcher(0);_B.lastIndex=this.lastIndex+1,HA=_B.exec(v)}if(HA){if(this.regexIndex+=HA.position+1,this.regexIndex===this.count)this.considerAll()}return HA}}function ZQ(v){let d=new XA;if(v.contains.forEach((HA)=>d.addRule(HA.begin,{rule:HA,type:"begin"})),v.terminatorEnd)d.addRule(v.terminatorEnd,{type:"end"});if(v.illegal)d.addRule(v.illegal,{type:"illegal"});return d}function UQ(v,d){let HA=v;if(v.isCompiled)return HA;[q0A,k0A,b0A,T0A].forEach((EB)=>EB(v,d)),$.compilerExtensions.forEach((EB)=>EB(v,d)),v.__beforeBegin=null,[P0A,O0A,g0A].forEach((EB)=>EB(v,d)),v.isCompiled=!0;let _B=null;if(typeof v.keywords==="object"&&v.keywords.$pattern)v.keywords=Object.assign({},v.keywords),_B=v.keywords.$pattern,delete v.keywords.$pattern;if(_B=_B||/\w+/,v.keywords)v.keywords=K3(v.keywords,$.case_insensitive);if(HA.keywordPatternRe=_(_B,!0),d){if(!v.begin)v.begin=/\B|\b/;if(HA.beginRe=_(HA.begin),!v.end&&!v.endsWithParent)v.end=/\B|\b/;if(v.end)HA.endRe=_(HA.end);if(HA.terminatorEnd=V(HA.end)||"",v.endsWithParent&&d.terminatorEnd)HA.terminatorEnd+=(v.end?"|":"")+d.terminatorEnd}if(v.illegal)HA.illegalRe=_(v.illegal);if(!v.contains)v.contains=[];if(v.contains=[].concat(...v.contains.map(function(EB){return d0A(EB==="self"?v:EB)})),v.contains.forEach(function(EB){UQ(EB,HA)}),v.starts)UQ(v.starts,d);return HA.matcher=ZQ(HA),HA}if(!$.compilerExtensions)$.compilerExtensions=[];if($.contains&&$.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return $.classNameAliases=G($.classNameAliases||{}),UQ($)}function M3($){if(!$)return!1;return $.endsWithParent||M3($.starts)}function d0A($){if($.variants&&!$.cachedVariants)$.cachedVariants=$.variants.map(function(_){return G($,{variants:null},_)});if($.cachedVariants)return $.cachedVariants;if(M3($))return G($,{starts:$.starts?G($.starts):null});if(Object.isFrozen($))return G($);return $}var c0A="11.9.0";class L3 extends Error{constructor($,_){super($);this.name="HTMLInjectionError",this.html=_}}let C1=F,N3=G,j3=Symbol("nomatch"),u0A=7,R3=function($){let _=Object.create(null),p=Object.create(null),XA=[],ZQ=!0,UQ="Could not find the language '{}', did you forget to load/include a language module?",v={disableAutodetect:!0,name:"Plain text",contains:[]},d={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:X};function HA(S){return d.noHighlightRe.test(S)}function _B(S){let t=S.className+" ";t+=S.parentNode?S.parentNode.className:"";let NA=d.languageDetectRe.exec(t);if(NA){let iA=qE(NA[1]);if(!iA)$3(UQ.replace("{}",NA[1])),$3("Falling back to no-highlight mode for this block.",S);return iA?NA[1]:"no-highlight"}return t.split(/\s+/).find((iA)=>HA(iA)||qE(iA))}function EB(S,t,NA){let iA="",LQ="";if(typeof t==="object")iA=S,NA=t.ignoreIllegals,LQ=t.language;else RJ("10.7.0","highlight(lang, code, ...args) has been deprecated."),RJ("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),LQ=S,iA=t;if(NA===void 0)NA=!0;let qI={code:iA,language:LQ};BW("before:highlight",qI);let PE=qI.result?qI.result:eG(qI.language,qI.code,NA);return PE.code=qI.code,BW("after:highlight",PE),PE}function eG(S,t,NA,iA){let LQ=Object.create(null);function qI(b,i){return b.keywords[i]}function PE(){if(!WA.keywords){fQ.addText(rA);return}let b=0;WA.keywordPatternRe.lastIndex=0;let i=WA.keywordPatternRe.exec(rA),KA="";while(i){KA+=rA.substring(b,i.index);let yA=tI.case_insensitive?i[0].toLowerCase():i[0],iQ=qI(WA,yA);if(iQ){let[hC,FYA]=iQ;if(fQ.addText(KA),KA="",LQ[yA]=(LQ[yA]||0)+1,LQ[yA]<=u0A)EW+=FYA;if(hC.startsWith("_"))KA+=i[0];else{let GYA=tI.classNameAliases[hC]||hC;rI(i[0],GYA)}}else KA+=i[0];b=WA.keywordPatternRe.lastIndex,i=WA.keywordPatternRe.exec(rA)}KA+=rA.substring(b),fQ.addText(KA)}function IW(){if(rA==="")return;let b=null;if(typeof WA.subLanguage==="string"){if(!_[WA.subLanguage]){fQ.addText(rA);return}b=eG(WA.subLanguage,rA,!0,y3[WA.subLanguage]),y3[WA.subLanguage]=b._top}else b=E1(rA,WA.subLanguage.length?WA.subLanguage:null);if(WA.relevance>0)EW+=b.relevance;fQ.__addSublanguage(b._emitter,b.language)}function yB(){if(WA.subLanguage!=null)IW();else PE();rA=""}function rI(b,i){if(b==="")return;fQ.startScope(i),fQ.addText(b),fQ.endScope()}function k3(b,i){let KA=1,yA=i.length-1;while(KA<=yA){if(!b._emit[KA]){KA++;continue}let iQ=tI.classNameAliases[b[KA]]||b[KA],hC=i[KA];if(iQ)rI(hC,iQ);else rA=hC,PE(),rA="";KA++}}function g3(b,i){if(b.scope&&typeof b.scope==="string")fQ.openNode(tI.classNameAliases[b.scope]||b.scope);if(b.beginScope){if(b.beginScope._wrap)rI(rA,tI.classNameAliases[b.beginScope._wrap]||b.beginScope._wrap),rA="";else if(b.beginScope._multi)k3(b.beginScope,i),rA=""}return WA=Object.create(b,{parent:{value:WA}}),WA}function T3(b,i,KA){let yA=DA(b.endRe,KA);if(yA){if(b["on:end"]){let iQ=new J(b);if(b["on:end"](i,iQ),iQ.isMatchIgnored)yA=!1}if(yA){while(b.endsParent&&b.parent)b=b.parent;return b}}if(b.endsWithParent)return T3(b.parent,i,KA)}function IYA(b){if(WA.matcher.regexIndex===0)return rA+=b[0],1;else return G1=!0,0}function CYA(b){let i=b[0],KA=b.rule,yA=new J(KA),iQ=[KA.__beforeBegin,KA["on:begin"]];for(let hC of iQ){if(!hC)continue;if(hC(b,yA),yA.isMatchIgnored)return IYA(i)}if(KA.skip)rA+=i;else{if(KA.excludeBegin)rA+=i;if(yB(),!KA.returnBegin&&!KA.excludeBegin)rA=i}return g3(KA,b),KA.returnBegin?0:i.length}function EYA(b){let i=b[0],KA=t.substring(b.index),yA=T3(WA,b,KA);if(!yA)return j3;let iQ=WA;if(WA.endScope&&WA.endScope._wrap)yB(),rI(i,WA.endScope._wrap);else if(WA.endScope&&WA.endScope._multi)yB(),k3(WA.endScope,b);else if(iQ.skip)rA+=i;else{if(!(iQ.returnEnd||iQ.excludeEnd))rA+=i;if(yB(),iQ.excludeEnd)rA=i}do{if(WA.scope)fQ.closeNode();if(!WA.skip&&!WA.subLanguage)EW+=WA.relevance;WA=WA.parent}while(WA!==yA.parent);if(yA.starts)g3(yA.starts,b);return iQ.returnEnd?0:i.length}function YYA(){let b=[];for(let i=WA;i!==tI;i=i.parent)if(i.scope)b.unshift(i.scope);b.forEach((i)=>fQ.openNode(i))}let CW={};function _3(b,i){let KA=i&&i[0];if(rA+=b,KA==null)return yB(),0;if(CW.type==="begin"&&i.type==="end"&&CW.index===i.index&&KA===""){if(rA+=t.slice(i.index,i.index+1),!ZQ){let yA=Error(`0 width match regex (${S})`);throw yA.languageName=S,yA.badRule=CW.rule,yA}return 1}if(CW=i,i.type==="begin")return CYA(i);else if(i.type==="illegal"&&!NA){let yA=Error('Illegal lexeme "'+KA+'" for mode "'+(WA.scope||"")+'"');throw yA.mode=WA,yA}else if(i.type==="end"){let yA=EYA(i);if(yA!==j3)return yA}if(i.type==="illegal"&&KA==="")return 1;if(F1>1e5&&F1>i.index*3)throw Error("potential infinite loop, way more iterations than matches");return rA+=KA,KA.length}let tI=qE(S);if(!tI)throw v0(UQ.replace("{}",S)),Error('Unknown language: "'+S+'"');let JYA=m0A(tI),J1="",WA=iA||JYA,y3={},fQ=new d.__emitter(d);YYA();let rA="",EW=0,b0=0,F1=0,G1=!1;try{if(!tI.__emitTokens){WA.matcher.considerAll();for(;;){if(F1++,G1)G1=!1;else WA.matcher.considerAll();WA.matcher.lastIndex=b0;let b=WA.matcher.exec(t);if(!b)break;let i=t.substring(b0,b.index),KA=_3(i,b);b0=b.index+KA}_3(t.substring(b0))}else tI.__emitTokens(t,fQ);return fQ.finalize(),J1=fQ.toHTML(),{language:S,value:J1,relevance:EW,illegal:!1,_emitter:fQ,_top:WA}}catch(b){if(b.message&&b.message.includes("Illegal"))return{language:S,value:C1(t),illegal:!0,relevance:0,_illegalBy:{message:b.message,index:b0,context:t.slice(b0-100,b0+100),mode:b.mode,resultSoFar:J1},_emitter:fQ};else if(ZQ)return{language:S,value:C1(t),illegal:!1,relevance:0,errorRaised:b,_emitter:fQ,_top:WA};else throw b}}function l0A(S){let t={value:C1(S),illegal:!1,relevance:0,_top:v,_emitter:new d.__emitter(d)};return t._emitter.addText(S),t}function E1(S,t){t=t||d.languages||Object.keys(_);let NA=l0A(S),iA=t.filter(qE).filter(O3).map((yB)=>eG(yB,S,!1));iA.unshift(NA);let LQ=iA.sort((yB,rI)=>{if(yB.relevance!==rI.relevance)return rI.relevance-yB.relevance;if(yB.language&&rI.language){if(qE(yB.language).supersetOf===rI.language)return 1;else if(qE(rI.language).supersetOf===yB.language)return-1}return 0}),[qI,PE]=LQ,IW=qI;return IW.secondBest=PE,IW}function p0A(S,t,NA){let iA=t&&p[t]||NA;S.classList.add("hljs"),S.classList.add(`language-${iA}`)}function Y1(S){let t=null,NA=_B(S);if(HA(NA))return;if(BW("before:highlightElement",{el:S,language:NA}),S.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",S);return}if(S.children.length>0){if(!d.ignoreUnescapedHTML)console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(S);if(d.throwUnescapedHTML)throw new L3("One of your code blocks includes unescaped HTML.",S.innerHTML)}t=S;let iA=t.textContent,LQ=NA?EB(iA,{language:NA,ignoreIllegals:!0}):E1(iA);if(S.innerHTML=LQ.value,S.dataset.highlighted="yes",p0A(S,NA,LQ.language),S.result={language:LQ.language,re:LQ.relevance,relevance:LQ.relevance},LQ.secondBest)S.secondBest={language:LQ.secondBest.language,relevance:LQ.secondBest.relevance};BW("after:highlightElement",{el:S,result:LQ,text:iA})}function i0A(S){d=N3(d,S)}let o0A=()=>{QW(),RJ("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function n0A(){QW(),RJ("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let q3=!1;function QW(){if(document.readyState==="loading"){q3=!0;return}document.querySelectorAll(d.cssSelector).forEach(Y1)}function s0A(){if(q3)QW()}if(typeof window<"u"&&window.addEventListener)window.addEventListener("DOMContentLoaded",s0A,!1);function a0A(S,t){let NA=null;try{NA=t($)}catch(iA){if(v0("Language definition for '{}' could not be registered.".replace("{}",S)),!ZQ)throw iA;else v0(iA);NA=v}if(!NA.name)NA.name=S;if(_[S]=NA,NA.rawDefinition=t.bind(null,$),NA.aliases)P3(NA.aliases,{languageName:S})}function r0A(S){delete _[S];for(let t of Object.keys(p))if(p[t]===S)delete p[t]}function t0A(){return Object.keys(_)}function qE(S){return S=(S||"").toLowerCase(),_[S]||_[p[S]]}function P3(S,{languageName:t}){if(typeof S==="string")S=[S];S.forEach((NA)=>{p[NA.toLowerCase()]=t})}function O3(S){let t=qE(S);return t&&!t.disableAutodetect}function e0A(S){if(S["before:highlightBlock"]&&!S["before:highlightElement"])S["before:highlightElement"]=(t)=>{S["before:highlightBlock"](Object.assign({block:t.el},t))};if(S["after:highlightBlock"]&&!S["after:highlightElement"])S["after:highlightElement"]=(t)=>{S["after:highlightBlock"](Object.assign({block:t.el},t))}}function AYA(S){e0A(S),XA.push(S)}function QYA(S){let t=XA.indexOf(S);if(t!==-1)XA.splice(t,1)}function BW(S,t){let NA=S;XA.forEach(function(iA){if(iA[NA])iA[NA](t)})}function BYA(S){return RJ("10.7.0","highlightBlock will be removed entirely in v12.0"),RJ("10.7.0","Please use highlightElement now."),Y1(S)}Object.assign($,{highlight:EB,highlightAuto:E1,highlightAll:QW,highlightElement:Y1,highlightBlock:BYA,configure:i0A,initHighlighting:o0A,initHighlightingOnLoad:n0A,registerLanguage:a0A,unregisterLanguage:r0A,listLanguages:t0A,getLanguage:qE,registerAliases:P3,autoDetection:O3,inherit:N3,addPlugin:AYA,removePlugin:QYA}),$.debugMode=function(){ZQ=!1},$.safeMode=function(){ZQ=!0},$.versionString=c0A,$.regex={concat:R,lookahead:M,either:T,optional:L,anyNumberOfTimes:N};for(let S in eU)if(typeof eU[S]==="object")Y(eU[S]);return Object.assign($,eU),$},qJ=R3({});qJ.newInstance=()=>R3({}),C.exports=qJ,qJ.HighlightJS=qJ,qJ.default=qJ},{}],2:[function(I,C,E){function Y(J){let F=J.regex,G=J.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),D="decltype\\(auto\\)",Z="[a-zA-Z_]\\w*::",U="<[^<>]+>",W="(decltype\\(auto\\)|"+F.optional("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+F.optional("<[^<>]+>")+")",w={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},K="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",X={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[J.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},J.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},V={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},M={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},J.inherit(X,{className:"string"}),{className:"string",begin:/<.*?>/},G,J.C_BLOCK_COMMENT_MODE]},N={className:"title",begin:F.optional("[a-zA-Z_]\\w*::")+J.IDENT_RE,relevance:0},L=F.optional("[a-zA-Z_]\\w*::")+J.IDENT_RE+"\\s*\\(",T={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},u=[M,w,G,J.C_BLOCK_COMMENT_MODE,V,X],DA={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:T,contains:u.concat([{begin:/\(/,end:/\)/,keywords:T,contains:u.concat(["self"]),relevance:0}]),relevance:0},ZA={begin:"("+W+"[\\*&\\s]+)+"+L,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:T,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:T,relevance:0},{begin:L,returnBegin:!0,contains:[J.inherit(N,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:T,relevance:0,contains:[G,J.C_BLOCK_COMMENT_MODE,X,V,w,{begin:/\(/,end:/\)/,keywords:T,relevance:0,contains:["self",G,J.C_BLOCK_COMMENT_MODE,X,V,w]}]},w,G,J.C_BLOCK_COMMENT_MODE,M]};return{name:"C",aliases:["h"],keywords:T,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},J.TITLE_MODE]}]),exports:{preprocessor:M,strings:X,keywords:T}}}C.exports=Y},{}],3:[function(I,C,E){function Y(J){let F=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],G=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],D=["default","false","null","true"],Z=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],U=["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"],W={keyword:Z.concat(U),built_in:F,literal:D},w=J.inherit(J.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),K={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},X={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},V=J.inherit(X,{illegal:/\n/}),M={className:"subst",begin:/\{/,end:/\}/,keywords:W},N=J.inherit(M,{illegal:/\n/}),L={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},J.BACKSLASH_ESCAPE,N]},R={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},M]},P=J.inherit(R,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},N]});M.contains=[R,L,X,J.APOS_STRING_MODE,J.QUOTE_STRING_MODE,K,J.C_BLOCK_COMMENT_MODE],N.contains=[P,L,V,J.APOS_STRING_MODE,J.QUOTE_STRING_MODE,K,J.inherit(J.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];let T={variants:[R,L,X,J.APOS_STRING_MODE,J.QUOTE_STRING_MODE]},u={begin:"<",end:">",contains:[{beginKeywords:"in out"},w]},DA=J.IDENT_RE+"(<"+J.IDENT_RE+"(\\s*,\\s*"+J.IDENT_RE+")*>)?(\\[\\])?",ZA={begin:"@"+J.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:W,illegal:/::/,contains:[J.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),J.C_LINE_COMMENT_MODE,J.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},T,K,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},w,u,J.C_LINE_COMMENT_MODE,J.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[w,J.C_LINE_COMMENT_MODE,J.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[w,u,J.C_LINE_COMMENT_MODE,J.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+DA+"\\s+)+"+J.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:W,contains:[{beginKeywords:G.join(" "),relevance:0},{begin:J.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[J.TITLE_MODE,u],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:W,relevance:0,contains:[T,K,J.C_BLOCK_COMMENT_MODE]},J.C_LINE_COMMENT_MODE,J.C_BLOCK_COMMENT_MODE]},ZA]}}C.exports=Y},{}],4:[function(I,C,E){(function(Y){(function(){var J=D(I("tokenizr")),F=D(I("highlight.js/lib/core")),G=D(I("sax"));function D(V){return V&&V.__esModule?V:{default:V}}F.default.registerLanguage("xml",I("highlight.js/lib/languages/xml")),F.default.registerLanguage("css",I("highlight.js/lib/languages/css")),F.default.registerLanguage("less",I("highlight.js/lib/languages/less")),F.default.registerLanguage("http",I("highlight.js/lib/languages/http")),F.default.registerLanguage("json",I("highlight.js/lib/languages/json")),F.default.registerLanguage("yaml",I("highlight.js/lib/languages/yaml")),F.default.registerLanguage("ini",I("highlight.js/lib/languages/ini")),F.default.registerLanguage("c",I("highlight.js/lib/languages/c")),F.default.registerLanguage("cpp",I("highlight.js/lib/languages/cpp")),F.default.registerLanguage("objectivec",I("highlight.js/lib/languages/objectivec")),F.default.registerLanguage("swift",I("highlight.js/lib/languages/swift")),F.default.registerLanguage("csharp",I("highlight.js/lib/languages/csharp")),F.default.registerLanguage("fsharp",I("highlight.js/lib/languages/fsharp")),F.default.registerLanguage("go",I("highlight.js/lib/languages/go")),F.default.registerLanguage("java",I("highlight.js/lib/languages/java")),F.default.registerLanguage("kotlin",I("highlight.js/lib/languages/kotlin")),F.default.registerLanguage("groovy",I("highlight.js/lib/languages/groovy")),F.default.registerLanguage("scala",I("highlight.js/lib/languages/scala")),F.default.registerLanguage("javascript",I("highlight.js/lib/languages/javascript")),F.default.registerLanguage("typescript",I("highlight.js/lib/languages/typescript")),F.default.registerLanguage("php",I("highlight.js/lib/languages/php")),F.default.registerLanguage("perl",I("highlight.js/lib/languages/perl")),F.default.registerLanguage("python",I("highlight.js/lib/languages/python")),F.default.registerLanguage("ruby",I("highlight.js/lib/languages/ruby")),F.default.registerLanguage("shell",I("highlight.js/lib/languages/shell")),F.default.registerLanguage("bash",I("highlight.js/lib/languages/bash")),F.default.registerLanguage("powershell",I("highlight.js/lib/languages/powershell")),F.default.registerLanguage("makefile",I("highlight.js/lib/languages/makefile")),F.default.registerLanguage("sql",I("highlight.js/lib/languages/sql")),F.default.registerLanguage("markdown",I("highlight.js/lib/languages/markdown")),F.default.registerLanguage("diff",I("highlight.js/lib/languages/diff"));let Z=Symbol("CONFIG"),U=Symbol("RICHTEXT"),W=Symbol("PLAINTEXT"),w=Symbol("MARKUP"),K=Symbol("SEQUENCE");class X{static version(){return{major:1,minor:6,micro:3,date:20240311}}constructor(V={}){this[Z]={language:"auto",cssPrefix:"syntax-",xmlPrefix:"syntax-",tabReplace:" ",newlineReplace:` +`,regexAnchorOpen:"=\\(",regexAnchorClose:"\\)=",regexMarkerOpen:"=\\{",regexMarkerClose:"\\}="},this.config(V),this._reset()}_reset(){this[U]="",this[W]="",this[w]={anchor:{},marker:[],comment:[],keyword:[],literal:[]},this[K]=[]}config(V={}){if(arguments.length!==1)throw Error("invalid number of arguments (1 expected)");if(typeof V!=="object")throw Error("invalid configuration argument (object expected)");let M=this[Z].language;Object.keys(V).forEach((L)=>{if(this[Z][L]===void 0)throw Error(`invalid configuration option "${L}"`);this[Z][L]=V[L]});let N=this[Z].language;if(N!==M&&N.match(/^(?:auto|none)$/)===null){if(!F.default.getLanguage(N)){if(typeof Y.window==="object")throw Error("cannot auto-load new languages in browser environment");let R;try{R=I("highlight.js/lib/languages/"+N)}catch(P){}if(!R)throw Error(`failed to load language "${N}"`);F.default.registerLanguage(N,R)}}return this}richtext(V){if(arguments.length!==1)throw Error("invalid number of arguments (1 expected)");if(typeof V!=="string")throw Error("invalid rich text argument (string expected)");return this._reset(),this[U]=V,this._extract(),this._highlight(),this}_extract(){let V=new J.default,M=new RegExp(`${this[Z].regexAnchorOpen}(\\d+)${this[Z].regexAnchorClose}`),N=new RegExp(`${this[Z].regexMarkerOpen}(.+?)${this[Z].regexMarkerClose}`),L=new RegExp(`(?:.|\\r?\\n)+?(?=${this[Z].regexAnchorOpen}|${this[Z].regexMarkerOpen})`),R=/(?:.|\r?\n)+/;V.rule(M,(T,u)=>{T.accept("anchor",u[1])}),V.rule(N,(T,u)=>{T.accept("marker",u[1])}),V.rule(L,(T,u)=>{T.accept("text",u[0])}),V.rule(R,(T,u)=>{T.accept("text",u[0])}),V.input(this[U]),this[W]="";let P=0;V.tokens().forEach((T)=>{if(T.isA("anchor"))this[w].anchor[T.value]=P;else if(T.isA("marker"))this[w].marker.push([P,P+T.value.length]),this[W]+=T.value,P+=T.value.length;else if(T.isA("text"))this[W]+=T.value,P+=T.value.length})}_highlight(){if(this[Z].language==="none")return;let V;if(F.default.configure({tabReplace:this[Z].tabReplace,classPrefix:"highlight-redux-"}),this[Z].language==="auto")V=F.default.highlightAuto(this[W]);else if(this[Z].language instanceof Array)V=F.default.highlightAuto(this[W],this[Z].language);else V=F.default.highlight(this[W],{language:this[Z].language,ignoreIllegals:!0});let M=0,N=[],L=G.default.parser(!0,{});return L.onerror=(R)=>{throw Error(`internal XML/HTML parsing error: ${R}?!`)},L.onopentag=(R)=>{let P=R.attributes.class;if(typeof P==="string"&&P.match(/^highlight-redux-(?:regexp|string|number)$/)!==null)P="highlight-redux-literal";if(typeof P==="string"&&P.match(/^highlight-redux-(?:keyword|literal|comment)$/)!==null)P=P.replace(/^highlight-redux-/,""),N.push({type:P,tag:R.name,pos:M,take:!0});else N.push({take:!1,tag:R.name})},L.ontext=(R)=>{M+=R.length},L.onclosetag=(R)=>{let P=N.pop();if(P.tag!==R)throw Error(`internal XML/HTML parsing error: open tag <${P.tag}> does not match close tag ?!`);if(P.take)this[w][P.type].push([P.pos,M])},L.write(`${V.value}`).close(),this}plaintext(V){if(arguments.length>1)throw Error("invalid number of arguments (0 or 1 expected)");if(arguments.length===1){if(typeof V!=="string")throw Error("invalid plain text argument (string expected)");return this[W]=V,this}else return this[W]}markup(V){if(arguments.length>1)throw Error("invalid number of arguments (0 or 1 expected)");if(arguments.length===1){if(typeof V!=="object")throw Error("invalid markup argument (object expected)");return this[w]=V,this}else return this[w]}_sequence(){let V=[],M=(N)=>{this[w][N].forEach((R)=>{V.push([R[0],"S",N]),V.push([R[1],"E",N])})};M("comment"),M("keyword"),M("literal"),V=V.sort((N,L)=>N[0]-L[0]),this[w].marker.forEach((N)=>{let[L,R]=N,P;for(P=0;P=L)break;for(;P=R)break;V.splice(P,0,[V[P][0],"E","marker"]),V.splice(P+2,0,[V[P][0],"S","marker"]),P+=2}V.splice(P,0,[R,"E","marker"])}),Object.keys(this[w].anchor).forEach((N)=>{let L=this[w].anchor[N],R;for(R=0;R=L)break;V.splice(R,0,[L,"X","anchor",N])}),this[K]=V}html(){if(arguments.length!==0)throw Error("invalid number of arguments (0 expected)");this._sequence();let V=(R)=>R.replace(/&/g,"&").replace(//g,">").replace(/\r?\n/g,this[Z].newlineReplace),M=this[W],N="",L=0;return this[K].forEach((R)=>{let[P,T,u,DA]=R,ZA;if(u==="anchor")ZA=``;else if(T==="S")ZA=``;else ZA="";N+=V(M.substring(L,P))+ZA,L=P}),N+=V(M.substring(L)),N}xml(){if(arguments.length!==0)throw Error("invalid number of arguments (0 expected)");this._sequence();let V=(R)=>R.replace(/&/g,"&").replace(//g,">").replace(/\r?\n/g,this[Z].newlineReplace),M=this[W],N="",L=0;return this[K].forEach((R)=>{let[P,T,u,DA]=R,ZA;if(u==="anchor")ZA=`<${this[Z].xmlPrefix}${u}>${DA}`;else if(T==="S")ZA=`<${this[Z].xmlPrefix}${u}>`;else ZA=``;N+=V(M.substring(L,P))+ZA,L=P}),N+=V(M.substring(L)),N}}C.exports=X}).call(this)}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{"highlight.js/lib/core":1,"highlight.js/lib/languages/bash":"highlight.js/lib/languages/bash","highlight.js/lib/languages/c":2,"highlight.js/lib/languages/cpp":"highlight.js/lib/languages/cpp","highlight.js/lib/languages/csharp":3,"highlight.js/lib/languages/css":"highlight.js/lib/languages/css","highlight.js/lib/languages/diff":"highlight.js/lib/languages/diff","highlight.js/lib/languages/fsharp":"highlight.js/lib/languages/fsharp","highlight.js/lib/languages/go":"highlight.js/lib/languages/go","highlight.js/lib/languages/groovy":"highlight.js/lib/languages/groovy","highlight.js/lib/languages/http":"highlight.js/lib/languages/http","highlight.js/lib/languages/ini":"highlight.js/lib/languages/ini","highlight.js/lib/languages/java":"highlight.js/lib/languages/java","highlight.js/lib/languages/javascript":"highlight.js/lib/languages/javascript","highlight.js/lib/languages/json":"highlight.js/lib/languages/json","highlight.js/lib/languages/kotlin":"highlight.js/lib/languages/kotlin","highlight.js/lib/languages/less":"highlight.js/lib/languages/less","highlight.js/lib/languages/makefile":"highlight.js/lib/languages/makefile","highlight.js/lib/languages/markdown":"highlight.js/lib/languages/markdown","highlight.js/lib/languages/objectivec":"highlight.js/lib/languages/objectivec","highlight.js/lib/languages/perl":"highlight.js/lib/languages/perl","highlight.js/lib/languages/php":"highlight.js/lib/languages/php","highlight.js/lib/languages/powershell":"highlight.js/lib/languages/powershell","highlight.js/lib/languages/python":"highlight.js/lib/languages/python","highlight.js/lib/languages/ruby":"highlight.js/lib/languages/ruby","highlight.js/lib/languages/scala":"highlight.js/lib/languages/scala","highlight.js/lib/languages/shell":"highlight.js/lib/languages/shell","highlight.js/lib/languages/sql":"highlight.js/lib/languages/sql","highlight.js/lib/languages/swift":"highlight.js/lib/languages/swift","highlight.js/lib/languages/typescript":"highlight.js/lib/languages/typescript","highlight.js/lib/languages/xml":"highlight.js/lib/languages/xml","highlight.js/lib/languages/yaml":"highlight.js/lib/languages/yaml",sax:"sax",tokenizr:"tokenizr"}]},{},[4])(4)})});var wK=z((hS)=>{Object.defineProperty(hS,"__esModule",{value:!0});hS.VERSION=void 0;hS.VERSION="1.9.1"});var cS=z((mS)=>{Object.defineProperty(mS,"__esModule",{value:!0});mS.isCompatible=mS._makeCompatibilityCheck=void 0;var v6A=wK(),vS=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function bS(A){let Q=new Set([A]),B=new Set,I=A.match(vS);if(!I)return()=>!1;let C={major:+I[1],minor:+I[2],patch:+I[3],prerelease:I[4]};if(C.prerelease!=null)return function(F){return F===A};function E(J){return B.add(J),!1}function Y(J){return Q.add(J),!0}return function(F){if(Q.has(F))return!0;if(B.has(F))return!1;let G=F.match(vS);if(!G)return E(F);let D={major:+G[1],minor:+G[2],patch:+G[3],prerelease:G[4]};if(D.prerelease!=null)return E(F);if(C.major!==D.major)return E(F);if(C.major===0){if(C.minor===D.minor&&C.patch<=D.patch)return Y(F);return E(F)}if(C.minor<=D.minor)return Y(F);return E(F)}}mS._makeCompatibilityCheck=bS;mS.isCompatible=bS(v6A.VERSION)});var cY=z((uS)=>{Object.defineProperty(uS,"__esModule",{value:!0});uS.unregisterGlobal=uS.getGlobal=uS.registerGlobal=void 0;var FG=wK(),m6A=cS(),d6A=FG.VERSION.split(".")[0],aZ=Symbol.for(`opentelemetry.js.api.${d6A}`),rZ=typeof globalThis==="object"?globalThis:typeof self==="object"?self:typeof window==="object"?window:typeof global==="object"?global:{};function c6A(A,Q,B,I=!1){var C;let E=rZ[aZ]=(C=rZ[aZ])!==null&&C!==void 0?C:{version:FG.VERSION};if(!I&&E[A]){let Y=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${A}`);return B.error(Y.stack||Y.message),!1}if(E.version!==FG.VERSION){let Y=Error(`@opentelemetry/api: Registration of version v${E.version} for ${A} does not match previously registered API v${FG.VERSION}`);return B.error(Y.stack||Y.message),!1}return E[A]=Q,B.debug(`@opentelemetry/api: Registered a global for ${A} v${FG.VERSION}.`),!0}uS.registerGlobal=c6A;function u6A(A){var Q,B;let I=(Q=rZ[aZ])===null||Q===void 0?void 0:Q.version;if(!I||!(0,m6A.isCompatible)(I))return;return(B=rZ[aZ])===null||B===void 0?void 0:B[A]}uS.getGlobal=u6A;function l6A(A,Q){Q.debug(`@opentelemetry/api: Unregistering a global for ${A} v${FG.VERSION}.`);let B=rZ[aZ];if(B)delete B[A]}uS.unregisterGlobal=l6A});var nS=z((iS)=>{Object.defineProperty(iS,"__esModule",{value:!0});iS.DiagComponentLogger=void 0;var o6A=cY();class pS{constructor(A){this._namespace=A.namespace||"DiagComponentLogger"}debug(...A){return tZ("debug",this._namespace,A)}error(...A){return tZ("error",this._namespace,A)}info(...A){return tZ("info",this._namespace,A)}warn(...A){return tZ("warn",this._namespace,A)}verbose(...A){return tZ("verbose",this._namespace,A)}}iS.DiagComponentLogger=pS;function tZ(A,Q,B){let I=(0,o6A.getGlobal)("diag");if(!I)return;return I[A](Q,...B)}});var r9=z((sS)=>{Object.defineProperty(sS,"__esModule",{value:!0});sS.DiagLogLevel=void 0;var n6A;(function(A){A[A.NONE=0]="NONE",A[A.ERROR=30]="ERROR",A[A.WARN=50]="WARN",A[A.INFO=60]="INFO",A[A.DEBUG=70]="DEBUG",A[A.VERBOSE=80]="VERBOSE",A[A.ALL=9999]="ALL"})(n6A=sS.DiagLogLevel||(sS.DiagLogLevel={}))});var tS=z((aS)=>{Object.defineProperty(aS,"__esModule",{value:!0});aS.createLogLevelDiagLogger=void 0;var UE=r9();function s6A(A,Q){if(AUE.DiagLogLevel.ALL)A=UE.DiagLogLevel.ALL;Q=Q||{};function B(I,C){let E=Q[I];if(typeof E==="function"&&A>=C)return E.bind(Q);return function(){}}return{error:B("error",UE.DiagLogLevel.ERROR),warn:B("warn",UE.DiagLogLevel.WARN),info:B("info",UE.DiagLogLevel.INFO),debug:B("debug",UE.DiagLogLevel.DEBUG),verbose:B("verbose",UE.DiagLogLevel.VERBOSE)}}aS.createLogLevelDiagLogger=s6A});var uY=z((Af)=>{Object.defineProperty(Af,"__esModule",{value:!0});Af.DiagAPI=void 0;var a6A=nS(),r6A=tS(),eS=r9(),t9=cY(),t6A="diag";class VK{static instance(){if(!this._instance)this._instance=new VK;return this._instance}constructor(){function A(I){return function(...C){let E=(0,t9.getGlobal)("diag");if(!E)return;return E[I](...C)}}let Q=this,B=(I,C={logLevel:eS.DiagLogLevel.INFO})=>{var E,Y,J;if(I===Q){let D=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return Q.error((E=D.stack)!==null&&E!==void 0?E:D.message),!1}if(typeof C==="number")C={logLevel:C};let F=(0,t9.getGlobal)("diag"),G=(0,r6A.createLogLevelDiagLogger)((Y=C.logLevel)!==null&&Y!==void 0?Y:eS.DiagLogLevel.INFO,I);if(F&&!C.suppressOverrideMessage){let D=(J=Error().stack)!==null&&J!==void 0?J:"";F.warn(`Current logger will be overwritten from ${D}`),G.warn(`Current logger will overwrite one already registered from ${D}`)}return(0,t9.registerGlobal)("diag",G,Q,!0)};Q.setLogger=B,Q.disable=()=>{(0,t9.unregisterGlobal)(t6A,Q)},Q.createComponentLogger=(I)=>{return new a6A.DiagComponentLogger(I)},Q.verbose=A("verbose"),Q.debug=A("debug"),Q.info=A("info"),Q.warn=A("warn"),Q.error=A("error")}}Af.DiagAPI=VK});var Cf=z((Bf)=>{Object.defineProperty(Bf,"__esModule",{value:!0});Bf.BaggageImpl=void 0;class GG{constructor(A){this._entries=A?new Map(A):new Map}getEntry(A){let Q=this._entries.get(A);if(!Q)return;return Object.assign({},Q)}getAllEntries(){return Array.from(this._entries.entries())}setEntry(A,Q){let B=new GG(this._entries);return B._entries.set(A,Q),B}removeEntry(A){let Q=new GG(this._entries);return Q._entries.delete(A),Q}removeEntries(...A){let Q=new GG(this._entries);for(let B of A)Q._entries.delete(B);return Q}clear(){return new GG}}Bf.BaggageImpl=GG});var Jf=z((Ef)=>{Object.defineProperty(Ef,"__esModule",{value:!0});Ef.baggageEntryMetadataSymbol=void 0;Ef.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")});var KK=z((Ff)=>{Object.defineProperty(Ff,"__esModule",{value:!0});Ff.baggageEntryMetadataFromString=Ff.createBaggage=void 0;var e6A=uY(),A7A=Cf(),Q7A=Jf(),B7A=e6A.DiagAPI.instance();function I7A(A={}){return new A7A.BaggageImpl(new Map(Object.entries(A)))}Ff.createBaggage=I7A;function C7A(A){if(typeof A!=="string")B7A.error(`Cannot create baggage metadata from unknown type: ${typeof A}`),A="";return{__TYPE__:Q7A.baggageEntryMetadataSymbol,toString(){return A}}}Ff.baggageEntryMetadataFromString=C7A});var eZ=z((Df)=>{Object.defineProperty(Df,"__esModule",{value:!0});Df.ROOT_CONTEXT=Df.createContextKey=void 0;function Y7A(A){return Symbol.for(A)}Df.createContextKey=Y7A;class e9{constructor(A){let Q=this;Q._currentContext=A?new Map(A):new Map,Q.getValue=(B)=>Q._currentContext.get(B),Q.setValue=(B,I)=>{let C=new e9(Q._currentContext);return C._currentContext.set(B,I),C},Q.deleteValue=(B)=>{let I=new e9(Q._currentContext);return I._currentContext.delete(B),I}}}Df.ROOT_CONTEXT=new e9});var Xf=z((Wf)=>{Object.defineProperty(Wf,"__esModule",{value:!0});Wf.DiagConsoleLogger=Wf._originalConsoleMethods=void 0;var zK=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];Wf._originalConsoleMethods={};if(typeof console<"u"){let A=["error","warn","info","debug","trace","log"];for(let Q of A)if(typeof console[Q]==="function")Wf._originalConsoleMethods[Q]=console[Q]}class Uf{constructor(){function A(Q){return function(...B){let I=Wf._originalConsoleMethods[Q];if(typeof I!=="function")I=Wf._originalConsoleMethods.log;if(typeof I!=="function"&&console){if(I=console[Q],typeof I!=="function")I=console.log}if(typeof I==="function")return I.apply(console,B)}}for(let Q=0;Q{Object.defineProperty(Vf,"__esModule",{value:!0});Vf.createNoopMeter=Vf.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=Vf.NOOP_OBSERVABLE_GAUGE_METRIC=Vf.NOOP_OBSERVABLE_COUNTER_METRIC=Vf.NOOP_UP_DOWN_COUNTER_METRIC=Vf.NOOP_HISTOGRAM_METRIC=Vf.NOOP_GAUGE_METRIC=Vf.NOOP_COUNTER_METRIC=Vf.NOOP_METER=Vf.NoopObservableUpDownCounterMetric=Vf.NoopObservableGaugeMetric=Vf.NoopObservableCounterMetric=Vf.NoopObservableMetric=Vf.NoopHistogramMetric=Vf.NoopGaugeMetric=Vf.NoopUpDownCounterMetric=Vf.NoopCounterMetric=Vf.NoopMetric=Vf.NoopMeter=void 0;class $K{constructor(){}createGauge(A,Q){return Vf.NOOP_GAUGE_METRIC}createHistogram(A,Q){return Vf.NOOP_HISTOGRAM_METRIC}createCounter(A,Q){return Vf.NOOP_COUNTER_METRIC}createUpDownCounter(A,Q){return Vf.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(A,Q){return Vf.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(A,Q){return Vf.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(A,Q){return Vf.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(A,Q){}removeBatchObservableCallback(A){}}Vf.NoopMeter=$K;class DG{}Vf.NoopMetric=DG;class HK extends DG{add(A,Q){}}Vf.NoopCounterMetric=HK;class MK extends DG{add(A,Q){}}Vf.NoopUpDownCounterMetric=MK;class LK extends DG{record(A,Q){}}Vf.NoopGaugeMetric=LK;class NK extends DG{record(A,Q){}}Vf.NoopHistogramMetric=NK;class AU{addCallback(A){}removeCallback(A){}}Vf.NoopObservableMetric=AU;class jK extends AU{}Vf.NoopObservableCounterMetric=jK;class RK extends AU{}Vf.NoopObservableGaugeMetric=RK;class qK extends AU{}Vf.NoopObservableUpDownCounterMetric=qK;Vf.NOOP_METER=new $K;Vf.NOOP_COUNTER_METRIC=new HK;Vf.NOOP_GAUGE_METRIC=new LK;Vf.NOOP_HISTOGRAM_METRIC=new NK;Vf.NOOP_UP_DOWN_COUNTER_METRIC=new MK;Vf.NOOP_OBSERVABLE_COUNTER_METRIC=new jK;Vf.NOOP_OBSERVABLE_GAUGE_METRIC=new RK;Vf.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new qK;function F7A(){return Vf.NOOP_METER}Vf.createNoopMeter=F7A});var Pf=z((qf)=>{Object.defineProperty(qf,"__esModule",{value:!0});qf.ValueType=void 0;var $7A;(function(A){A[A.INT=0]="INT",A[A.DOUBLE=1]="DOUBLE"})($7A=qf.ValueType||(qf.ValueType={}))});var kK=z((Of)=>{Object.defineProperty(Of,"__esModule",{value:!0});Of.defaultTextMapSetter=Of.defaultTextMapGetter=void 0;Of.defaultTextMapGetter={get(A,Q){if(A==null)return;return A[Q]},keys(A){if(A==null)return[];return Object.keys(A)}};Of.defaultTextMapSetter={set(A,Q,B){if(A==null)return;A[Q]=B}}});var yf=z((Tf)=>{Object.defineProperty(Tf,"__esModule",{value:!0});Tf.NoopContextManager=void 0;var M7A=eZ();class gf{active(){return M7A.ROOT_CONTEXT}with(A,Q,B,...I){return Q.call(B,...I)}bind(A,Q){return Q}enable(){return this}disable(){return this}}Tf.NoopContextManager=gf});var QU=z((ff)=>{Object.defineProperty(ff,"__esModule",{value:!0});ff.ContextAPI=void 0;var L7A=yf(),gK=cY(),Sf=uY(),TK="context",N7A=new L7A.NoopContextManager;class _K{constructor(){}static getInstance(){if(!this._instance)this._instance=new _K;return this._instance}setGlobalContextManager(A){return(0,gK.registerGlobal)(TK,A,Sf.DiagAPI.instance())}active(){return this._getContextManager().active()}with(A,Q,B,...I){return this._getContextManager().with(A,Q,B,...I)}bind(A,Q){return this._getContextManager().bind(A,Q)}_getContextManager(){return(0,gK.getGlobal)(TK)||N7A}disable(){this._getContextManager().disable(),(0,gK.unregisterGlobal)(TK,Sf.DiagAPI.instance())}}ff.ContextAPI=_K});var SK=z((xf)=>{Object.defineProperty(xf,"__esModule",{value:!0});xf.TraceFlags=void 0;var j7A;(function(A){A[A.NONE=0]="NONE",A[A.SAMPLED=1]="SAMPLED"})(j7A=xf.TraceFlags||(xf.TraceFlags={}))});var Q2=z((vf)=>{Object.defineProperty(vf,"__esModule",{value:!0});vf.INVALID_SPAN_CONTEXT=vf.INVALID_TRACEID=vf.INVALID_SPANID=void 0;var R7A=SK();vf.INVALID_SPANID="0000000000000000";vf.INVALID_TRACEID="00000000000000000000000000000000";vf.INVALID_SPAN_CONTEXT={traceId:vf.INVALID_TRACEID,spanId:vf.INVALID_SPANID,traceFlags:R7A.TraceFlags.NONE}});var B2=z((uf)=>{Object.defineProperty(uf,"__esModule",{value:!0});uf.NonRecordingSpan=void 0;var q7A=Q2();class cf{constructor(A=q7A.INVALID_SPAN_CONTEXT){this._spanContext=A}spanContext(){return this._spanContext}setAttribute(A,Q){return this}setAttributes(A){return this}addEvent(A,Q){return this}addLink(A){return this}addLinks(A){return this}setStatus(A){return this}updateName(A){return this}end(A){}isRecording(){return!1}recordException(A,Q){}}uf.NonRecordingSpan=cf});var xK=z((of)=>{Object.defineProperty(of,"__esModule",{value:!0});of.getSpanContext=of.setSpanContext=of.deleteSpan=of.setSpan=of.getActiveSpan=of.getSpan=void 0;var P7A=eZ(),O7A=B2(),k7A=QU(),fK=(0,P7A.createContextKey)("OpenTelemetry Context Key SPAN");function hK(A){return A.getValue(fK)||void 0}of.getSpan=hK;function g7A(){return hK(k7A.ContextAPI.getInstance().active())}of.getActiveSpan=g7A;function pf(A,Q){return A.setValue(fK,Q)}of.setSpan=pf;function T7A(A){return A.deleteValue(fK)}of.deleteSpan=T7A;function _7A(A,Q){return pf(A,new O7A.NonRecordingSpan(Q))}of.setSpanContext=_7A;function y7A(A){var Q;return(Q=hK(A))===null||Q===void 0?void 0:Q.spanContext()}of.getSpanContext=y7A});var C2=z((ef)=>{Object.defineProperty(ef,"__esModule",{value:!0});ef.wrapSpanContext=ef.isSpanContextValid=ef.isValidSpanId=ef.isValidTraceId=void 0;var sf=Q2(),b7A=B2(),I2=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1]);function af(A,Q){if(typeof A!=="string"||A.length!==Q)return!1;let B=0;for(let I=0;I{Object.defineProperty(Ih,"__esModule",{value:!0});Ih.NoopTracer=void 0;var p7A=QU(),Qh=xK(),vK=B2(),i7A=C2(),bK=p7A.ContextAPI.getInstance();class Bh{startSpan(A,Q,B=bK.active()){if(Boolean(Q===null||Q===void 0?void 0:Q.root))return new vK.NonRecordingSpan;let C=B&&(0,Qh.getSpanContext)(B);if(o7A(C)&&(0,i7A.isSpanContextValid)(C))return new vK.NonRecordingSpan(C);else return new vK.NonRecordingSpan}startActiveSpan(A,Q,B,I){let C,E,Y;if(arguments.length<2)return;else if(arguments.length===2)Y=Q;else if(arguments.length===3)C=Q,Y=B;else C=Q,E=B,Y=I;let J=E!==null&&E!==void 0?E:bK.active(),F=this.startSpan(A,C,J),G=(0,Qh.setSpan)(J,F);return bK.with(G,Y,void 0,F)}}Ih.NoopTracer=Bh;function o7A(A){return A!==null&&typeof A==="object"&&"spanId"in A&&typeof A.spanId==="string"&&"traceId"in A&&typeof A.traceId==="string"&&"traceFlags"in A&&typeof A.traceFlags==="number"}});var dK=z((Yh)=>{Object.defineProperty(Yh,"__esModule",{value:!0});Yh.ProxyTracer=void 0;var n7A=mK(),s7A=new n7A.NoopTracer;class Eh{constructor(A,Q,B,I){this._provider=A,this.name=Q,this.version=B,this.options=I}startSpan(A,Q,B){return this._getTracer().startSpan(A,Q,B)}startActiveSpan(A,Q,B,I){let C=this._getTracer();return Reflect.apply(C.startActiveSpan,C,arguments)}_getTracer(){if(this._delegate)return this._delegate;let A=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!A)return s7A;return this._delegate=A,this._delegate}}Yh.ProxyTracer=Eh});var Zh=z((Gh)=>{Object.defineProperty(Gh,"__esModule",{value:!0});Gh.NoopTracerProvider=void 0;var a7A=mK();class Fh{getTracer(A,Q,B){return new a7A.NoopTracer}}Gh.NoopTracerProvider=Fh});var cK=z((Wh)=>{Object.defineProperty(Wh,"__esModule",{value:!0});Wh.ProxyTracerProvider=void 0;var r7A=dK(),t7A=Zh(),e7A=new t7A.NoopTracerProvider;class Uh{getTracer(A,Q,B){var I;return(I=this.getDelegateTracer(A,Q,B))!==null&&I!==void 0?I:new r7A.ProxyTracer(this,A,Q,B)}getDelegate(){var A;return(A=this._delegate)!==null&&A!==void 0?A:e7A}setDelegate(A){this._delegate=A}getDelegateTracer(A,Q,B){var I;return(I=this._delegate)===null||I===void 0?void 0:I.getTracer(A,Q,B)}}Wh.ProxyTracerProvider=Uh});var Vh=z((Xh)=>{Object.defineProperty(Xh,"__esModule",{value:!0});Xh.SamplingDecision=void 0;var AzA;(function(A){A[A.NOT_RECORD=0]="NOT_RECORD",A[A.RECORD=1]="RECORD",A[A.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(AzA=Xh.SamplingDecision||(Xh.SamplingDecision={}))});var zh=z((Kh)=>{Object.defineProperty(Kh,"__esModule",{value:!0});Kh.SpanKind=void 0;var QzA;(function(A){A[A.INTERNAL=0]="INTERNAL",A[A.SERVER=1]="SERVER",A[A.CLIENT=2]="CLIENT",A[A.PRODUCER=3]="PRODUCER",A[A.CONSUMER=4]="CONSUMER"})(QzA=Kh.SpanKind||(Kh.SpanKind={}))});var Hh=z(($h)=>{Object.defineProperty($h,"__esModule",{value:!0});$h.SpanStatusCode=void 0;var BzA;(function(A){A[A.UNSET=0]="UNSET",A[A.OK=1]="OK",A[A.ERROR=2]="ERROR"})(BzA=$h.SpanStatusCode||($h.SpanStatusCode={}))});var Nh=z((Mh)=>{Object.defineProperty(Mh,"__esModule",{value:!0});Mh.validateValue=Mh.validateKey=void 0;var iK="[_0-9a-z-*/]",IzA=`[a-z]${iK}{0,255}`,CzA=`[a-z0-9]${iK}{0,240}@[a-z]${iK}{0,13}`,EzA=new RegExp(`^(?:${IzA}|${CzA})$`),YzA=/^[ -~]{0,255}[!-~]$/,JzA=/,|=/;function FzA(A){return EzA.test(A)}Mh.validateKey=FzA;function GzA(A){return YzA.test(A)&&!JzA.test(A)}Mh.validateValue=GzA});var gh=z((Oh)=>{Object.defineProperty(Oh,"__esModule",{value:!0});Oh.TraceStateImpl=void 0;var jh=Nh(),Rh=32,ZzA=512,qh=",",Ph="=";class oK{constructor(A){if(this._internalState=new Map,A)this._parse(A)}set(A,Q){let B=this._clone();if(B._internalState.has(A))B._internalState.delete(A);return B._internalState.set(A,Q),B}unset(A){let Q=this._clone();return Q._internalState.delete(A),Q}get(A){return this._internalState.get(A)}serialize(){return Array.from(this._internalState.keys()).reduceRight((A,Q)=>{return A.push(Q+Ph+this.get(Q)),A},[]).join(qh)}_parse(A){if(A.length>ZzA)return;if(this._internalState=A.split(qh).reduceRight((Q,B)=>{let I=B.trim(),C=I.indexOf(Ph);if(C!==-1){let E=I.slice(0,C),Y=I.slice(C+1,B.length);if((0,jh.validateKey)(E)&&(0,jh.validateValue)(Y))Q.set(E,Y)}return Q},new Map),this._internalState.size>Rh)this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,Rh))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let A=new oK;return A._internalState=new Map(this._internalState),A}}Oh.TraceStateImpl=oK});var yh=z((Th)=>{Object.defineProperty(Th,"__esModule",{value:!0});Th.createTraceState=void 0;var UzA=gh();function WzA(A){return new UzA.TraceStateImpl(A)}Th.createTraceState=WzA});var hh=z((Sh)=>{Object.defineProperty(Sh,"__esModule",{value:!0});Sh.context=void 0;var wzA=QU();Sh.context=wzA.ContextAPI.getInstance()});var bh=z((xh)=>{Object.defineProperty(xh,"__esModule",{value:!0});xh.diag=void 0;var XzA=uY();xh.diag=XzA.DiagAPI.instance()});var ch=z((mh)=>{Object.defineProperty(mh,"__esModule",{value:!0});mh.NOOP_METER_PROVIDER=mh.NoopMeterProvider=void 0;var VzA=PK();class nK{getMeter(A,Q,B){return VzA.NOOP_METER}}mh.NoopMeterProvider=nK;mh.NOOP_METER_PROVIDER=new nK});var ih=z((lh)=>{Object.defineProperty(lh,"__esModule",{value:!0});lh.MetricsAPI=void 0;var zzA=ch(),sK=cY(),uh=uY(),aK="metrics";class rK{constructor(){}static getInstance(){if(!this._instance)this._instance=new rK;return this._instance}setGlobalMeterProvider(A){return(0,sK.registerGlobal)(aK,A,uh.DiagAPI.instance())}getMeterProvider(){return(0,sK.getGlobal)(aK)||zzA.NOOP_METER_PROVIDER}getMeter(A,Q,B){return this.getMeterProvider().getMeter(A,Q,B)}disable(){(0,sK.unregisterGlobal)(aK,uh.DiagAPI.instance())}}lh.MetricsAPI=rK});var sh=z((oh)=>{Object.defineProperty(oh,"__esModule",{value:!0});oh.metrics=void 0;var $zA=ih();oh.metrics=$zA.MetricsAPI.getInstance()});var eh=z((rh)=>{Object.defineProperty(rh,"__esModule",{value:!0});rh.NoopTextMapPropagator=void 0;class ah{inject(A,Q){}extract(A,Q){return A}fields(){return[]}}rh.NoopTextMapPropagator=ah});var Ix=z((Qx)=>{Object.defineProperty(Qx,"__esModule",{value:!0});Qx.deleteBaggage=Qx.setBaggage=Qx.getActiveBaggage=Qx.getBaggage=void 0;var HzA=QU(),MzA=eZ(),tK=(0,MzA.createContextKey)("OpenTelemetry Baggage Key");function Ax(A){return A.getValue(tK)||void 0}Qx.getBaggage=Ax;function LzA(){return Ax(HzA.ContextAPI.getInstance().active())}Qx.getActiveBaggage=LzA;function NzA(A,Q){return A.setValue(tK,Q)}Qx.setBaggage=NzA;function jzA(A){return A.deleteValue(tK)}Qx.deleteBaggage=jzA});var Fx=z((Yx)=>{Object.defineProperty(Yx,"__esModule",{value:!0});Yx.PropagationAPI=void 0;var eK=cY(),OzA=eh(),Cx=kK(),E2=Ix(),kzA=KK(),Ex=uY(),A6="propagation",gzA=new OzA.NoopTextMapPropagator;class Q6{constructor(){this.createBaggage=kzA.createBaggage,this.getBaggage=E2.getBaggage,this.getActiveBaggage=E2.getActiveBaggage,this.setBaggage=E2.setBaggage,this.deleteBaggage=E2.deleteBaggage}static getInstance(){if(!this._instance)this._instance=new Q6;return this._instance}setGlobalPropagator(A){return(0,eK.registerGlobal)(A6,A,Ex.DiagAPI.instance())}inject(A,Q,B=Cx.defaultTextMapSetter){return this._getGlobalPropagator().inject(A,Q,B)}extract(A,Q,B=Cx.defaultTextMapGetter){return this._getGlobalPropagator().extract(A,Q,B)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,eK.unregisterGlobal)(A6,Ex.DiagAPI.instance())}_getGlobalPropagator(){return(0,eK.getGlobal)(A6)||gzA}}Yx.PropagationAPI=Q6});var Zx=z((Gx)=>{Object.defineProperty(Gx,"__esModule",{value:!0});Gx.propagation=void 0;var TzA=Fx();Gx.propagation=TzA.PropagationAPI.getInstance()});var Kx=z((Xx)=>{Object.defineProperty(Xx,"__esModule",{value:!0});Xx.TraceAPI=void 0;var B6=cY(),Ux=cK(),Wx=C2(),ZG=xK(),wx=uY(),I6="trace";class C6{constructor(){this._proxyTracerProvider=new Ux.ProxyTracerProvider,this.wrapSpanContext=Wx.wrapSpanContext,this.isSpanContextValid=Wx.isSpanContextValid,this.deleteSpan=ZG.deleteSpan,this.getSpan=ZG.getSpan,this.getActiveSpan=ZG.getActiveSpan,this.getSpanContext=ZG.getSpanContext,this.setSpan=ZG.setSpan,this.setSpanContext=ZG.setSpanContext}static getInstance(){if(!this._instance)this._instance=new C6;return this._instance}setGlobalTracerProvider(A){let Q=(0,B6.registerGlobal)(I6,this._proxyTracerProvider,wx.DiagAPI.instance());if(Q)this._proxyTracerProvider.setDelegate(A);return Q}getTracerProvider(){return(0,B6.getGlobal)(I6)||this._proxyTracerProvider}getTracer(A,Q){return this.getTracerProvider().getTracer(A,Q)}disable(){(0,B6.unregisterGlobal)(I6,wx.DiagAPI.instance()),this._proxyTracerProvider=new Ux.ProxyTracerProvider}}Xx.TraceAPI=C6});var Hx=z((zx)=>{Object.defineProperty(zx,"__esModule",{value:!0});zx.trace=void 0;var _zA=Kx();zx.trace=_zA.TraceAPI.getInstance()});var AA=z((bA)=>{Object.defineProperty(bA,"__esModule",{value:!0});bA.trace=bA.propagation=bA.metrics=bA.diag=bA.context=bA.INVALID_SPAN_CONTEXT=bA.INVALID_TRACEID=bA.INVALID_SPANID=bA.isValidSpanId=bA.isValidTraceId=bA.isSpanContextValid=bA.createTraceState=bA.TraceFlags=bA.SpanStatusCode=bA.SpanKind=bA.SamplingDecision=bA.ProxyTracerProvider=bA.ProxyTracer=bA.defaultTextMapSetter=bA.defaultTextMapGetter=bA.ValueType=bA.createNoopMeter=bA.DiagLogLevel=bA.DiagConsoleLogger=bA.ROOT_CONTEXT=bA.createContextKey=bA.baggageEntryMetadataFromString=void 0;var yzA=KK();Object.defineProperty(bA,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return yzA.baggageEntryMetadataFromString}});var Mx=eZ();Object.defineProperty(bA,"createContextKey",{enumerable:!0,get:function(){return Mx.createContextKey}});Object.defineProperty(bA,"ROOT_CONTEXT",{enumerable:!0,get:function(){return Mx.ROOT_CONTEXT}});var SzA=Xf();Object.defineProperty(bA,"DiagConsoleLogger",{enumerable:!0,get:function(){return SzA.DiagConsoleLogger}});var fzA=r9();Object.defineProperty(bA,"DiagLogLevel",{enumerable:!0,get:function(){return fzA.DiagLogLevel}});var hzA=PK();Object.defineProperty(bA,"createNoopMeter",{enumerable:!0,get:function(){return hzA.createNoopMeter}});var xzA=Pf();Object.defineProperty(bA,"ValueType",{enumerable:!0,get:function(){return xzA.ValueType}});var Lx=kK();Object.defineProperty(bA,"defaultTextMapGetter",{enumerable:!0,get:function(){return Lx.defaultTextMapGetter}});Object.defineProperty(bA,"defaultTextMapSetter",{enumerable:!0,get:function(){return Lx.defaultTextMapSetter}});var vzA=dK();Object.defineProperty(bA,"ProxyTracer",{enumerable:!0,get:function(){return vzA.ProxyTracer}});var bzA=cK();Object.defineProperty(bA,"ProxyTracerProvider",{enumerable:!0,get:function(){return bzA.ProxyTracerProvider}});var mzA=Vh();Object.defineProperty(bA,"SamplingDecision",{enumerable:!0,get:function(){return mzA.SamplingDecision}});var dzA=zh();Object.defineProperty(bA,"SpanKind",{enumerable:!0,get:function(){return dzA.SpanKind}});var czA=Hh();Object.defineProperty(bA,"SpanStatusCode",{enumerable:!0,get:function(){return czA.SpanStatusCode}});var uzA=SK();Object.defineProperty(bA,"TraceFlags",{enumerable:!0,get:function(){return uzA.TraceFlags}});var lzA=yh();Object.defineProperty(bA,"createTraceState",{enumerable:!0,get:function(){return lzA.createTraceState}});var E6=C2();Object.defineProperty(bA,"isSpanContextValid",{enumerable:!0,get:function(){return E6.isSpanContextValid}});Object.defineProperty(bA,"isValidTraceId",{enumerable:!0,get:function(){return E6.isValidTraceId}});Object.defineProperty(bA,"isValidSpanId",{enumerable:!0,get:function(){return E6.isValidSpanId}});var Y6=Q2();Object.defineProperty(bA,"INVALID_SPANID",{enumerable:!0,get:function(){return Y6.INVALID_SPANID}});Object.defineProperty(bA,"INVALID_TRACEID",{enumerable:!0,get:function(){return Y6.INVALID_TRACEID}});Object.defineProperty(bA,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return Y6.INVALID_SPAN_CONTEXT}});var Nx=hh();Object.defineProperty(bA,"context",{enumerable:!0,get:function(){return Nx.context}});var jx=bh();Object.defineProperty(bA,"diag",{enumerable:!0,get:function(){return jx.diag}});var Rx=sh();Object.defineProperty(bA,"metrics",{enumerable:!0,get:function(){return Rx.metrics}});var qx=Zx();Object.defineProperty(bA,"propagation",{enumerable:!0,get:function(){return qx.propagation}});var Px=Hx();Object.defineProperty(bA,"trace",{enumerable:!0,get:function(){return Px.trace}});bA.default={context:Nx.context,diag:jx.diag,metrics:Rx.metrics,propagation:qx.propagation,trace:Px.trace}});var BU=z((Ox)=>{Object.defineProperty(Ox,"__esModule",{value:!0});Ox.isTracingSuppressed=Ox.unsuppressTracing=Ox.suppressTracing=void 0;var ozA=AA(),J6=(0,ozA.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function nzA(A){return A.setValue(J6,!0)}Ox.suppressTracing=nzA;function szA(A){return A.deleteValue(J6)}Ox.unsuppressTracing=szA;function azA(A){return A.getValue(J6)===!0}Ox.isTracingSuppressed=azA});var F6=z((gx)=>{Object.defineProperty(gx,"__esModule",{value:!0});gx.BAGGAGE_MAX_TOTAL_LENGTH=gx.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=gx.BAGGAGE_MAX_NAME_VALUE_PAIRS=gx.BAGGAGE_HEADER=gx.BAGGAGE_ITEMS_SEPARATOR=gx.BAGGAGE_PROPERTIES_SEPARATOR=gx.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;gx.BAGGAGE_KEY_PAIR_SEPARATOR="=";gx.BAGGAGE_PROPERTIES_SEPARATOR=";";gx.BAGGAGE_ITEMS_SEPARATOR=",";gx.BAGGAGE_HEADER="baggage";gx.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;gx.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;gx.BAGGAGE_MAX_TOTAL_LENGTH=8192});var G6=z((yx)=>{Object.defineProperty(yx,"__esModule",{value:!0});yx.parseKeyPairsIntoRecord=yx.parsePairKeyValue=yx.getKeyPairs=yx.serializeKeyPairs=void 0;var E$A=AA(),UG=F6();function Y$A(A){return A.reduce((Q,B)=>{let I=`${Q}${Q!==""?UG.BAGGAGE_ITEMS_SEPARATOR:""}${B}`;return I.length>UG.BAGGAGE_MAX_TOTAL_LENGTH?Q:I},"")}yx.serializeKeyPairs=Y$A;function J$A(A){return A.getAllEntries().map(([Q,B])=>{let I=`${encodeURIComponent(Q)}=${encodeURIComponent(B.value)}`;if(B.metadata!==void 0)I+=UG.BAGGAGE_PROPERTIES_SEPARATOR+B.metadata.toString();return I})}yx.getKeyPairs=J$A;function _x(A){if(!A)return;let Q=A.indexOf(UG.BAGGAGE_PROPERTIES_SEPARATOR),B=Q===-1?A:A.substring(0,Q),I=B.indexOf(UG.BAGGAGE_KEY_PAIR_SEPARATOR);if(I<=0)return;let C=B.substring(0,I).trim(),E=B.substring(I+1).trim();if(!C||!E)return;let Y,J;try{Y=decodeURIComponent(C),J=decodeURIComponent(E)}catch{return}let F;if(Q!==-1&&Q0)A.split(UG.BAGGAGE_ITEMS_SEPARATOR).forEach((B)=>{let I=_x(B);if(I!==void 0&&I.value.length>0)Q[I.key]=I.value});return Q}yx.parseKeyPairsIntoRecord=F$A});var vx=z((hx)=>{Object.defineProperty(hx,"__esModule",{value:!0});hx.W3CBaggagePropagator=void 0;var D6=AA(),U$A=BU(),lY=F6(),Z6=G6();class fx{inject(A,Q,B){let I=D6.propagation.getBaggage(A);if(!I||(0,U$A.isTracingSuppressed)(A))return;let C=(0,Z6.getKeyPairs)(I).filter((Y)=>{return Y.length<=lY.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS}).slice(0,lY.BAGGAGE_MAX_NAME_VALUE_PAIRS),E=(0,Z6.serializeKeyPairs)(C);if(E.length>0)B.set(Q,lY.BAGGAGE_HEADER,E)}extract(A,Q,B){let I=B.get(Q,lY.BAGGAGE_HEADER),C=Array.isArray(I)?I.join(lY.BAGGAGE_ITEMS_SEPARATOR):I;if(!C)return A;let E={};if(C.length===0)return A;if(C.split(lY.BAGGAGE_ITEMS_SEPARATOR).forEach((J)=>{let F=(0,Z6.parsePairKeyValue)(J);if(F){let G={value:F.value};if(F.metadata)G.metadata=F.metadata;E[F.key]=G}}),Object.entries(E).length===0)return A;return D6.propagation.setBaggage(A,D6.propagation.createBaggage(E))}fields(){return[lY.BAGGAGE_HEADER]}}hx.W3CBaggagePropagator=fx});var cx=z((mx)=>{Object.defineProperty(mx,"__esModule",{value:!0});mx.AnchoredClock=void 0;class bx{_monotonicClock;_epochMillis;_performanceMillis;constructor(A,Q){this._monotonicClock=Q,this._epochMillis=A.now(),this._performanceMillis=Q.now()}now(){let A=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+A}}mx.AnchoredClock=bx});var sx=z((ox)=>{Object.defineProperty(ox,"__esModule",{value:!0});ox.isAttributeValue=ox.isAttributeKey=ox.sanitizeAttributes=void 0;var ux=AA();function W$A(A){let Q={};if(typeof A!=="object"||A==null)return Q;for(let B in A){if(!Object.prototype.hasOwnProperty.call(A,B))continue;if(!lx(B)){ux.diag.warn(`Invalid attribute key: ${B}`);continue}let I=A[B];if(!px(I)){ux.diag.warn(`Invalid attribute value set for key: ${B}`);continue}if(Array.isArray(I))Q[B]=I.slice();else Q[B]=I}return Q}ox.sanitizeAttributes=W$A;function lx(A){return typeof A==="string"&&A!==""}ox.isAttributeKey=lx;function px(A){if(A==null)return!0;if(Array.isArray(A))return w$A(A);return ix(typeof A)}ox.isAttributeValue=px;function w$A(A){let Q;for(let B of A){if(B==null)continue;let I=typeof B;if(I===Q)continue;if(!Q){if(ix(I)){Q=I;continue}return!1}return!1}return!0}function ix(A){switch(A){case"number":case"boolean":case"string":return!0}return!1}});var U6=z((ax)=>{Object.defineProperty(ax,"__esModule",{value:!0});ax.loggingErrorHandler=void 0;var K$A=AA();function z$A(){return(A)=>{K$A.diag.error($$A(A))}}ax.loggingErrorHandler=z$A;function $$A(A){if(typeof A==="string")return A;else return JSON.stringify(H$A(A))}function H$A(A){let Q={},B=A;while(B!==null)Object.getOwnPropertyNames(B).forEach((I)=>{if(Q[I])return;let C=B[I];if(C)Q[I]=String(C)}),B=Object.getPrototypeOf(B);return Q}});var Qv=z((ex)=>{Object.defineProperty(ex,"__esModule",{value:!0});ex.globalErrorHandler=ex.setGlobalErrorHandler=void 0;var M$A=U6(),tx=(0,M$A.loggingErrorHandler)();function L$A(A){tx=A}ex.setGlobalErrorHandler=L$A;function N$A(A){try{tx(A)}catch{}}ex.globalErrorHandler=N$A});var Jv=z((Ev)=>{Object.defineProperty(Ev,"__esModule",{value:!0});Ev.getStringListFromEnv=Ev.getBooleanFromEnv=Ev.getStringFromEnv=Ev.getNumberFromEnv=void 0;var Bv=AA(),Iv=j("util");function R$A(A){let Q=process.env[A];if(Q==null||Q.trim()==="")return;let B=Number(Q);if(isNaN(B)){Bv.diag.warn(`Unknown value ${(0,Iv.inspect)(Q)} for ${A}, expected a number, using defaults`);return}return B}Ev.getNumberFromEnv=R$A;function Cv(A){let Q=process.env[A];if(Q==null||Q.trim()==="")return;return Q}Ev.getStringFromEnv=Cv;function q$A(A){let Q=process.env[A]?.trim().toLowerCase();if(Q==null||Q==="")return!1;if(Q==="true")return!0;else if(Q==="false")return!1;else return Bv.diag.warn(`Unknown value ${(0,Iv.inspect)(Q)} for ${A}, expected 'true' or 'false', falling back to 'false' (default)`),!1}Ev.getBooleanFromEnv=q$A;function P$A(A){return Cv(A)?.split(",").map((Q)=>Q.trim()).filter((Q)=>Q!=="")}Ev.getStringListFromEnv=P$A});var Dv=z((Fv)=>{Object.defineProperty(Fv,"__esModule",{value:!0});Fv._globalThis=void 0;Fv._globalThis=globalThis});var Wv=z((Zv)=>{Object.defineProperty(Zv,"__esModule",{value:!0});Zv.VERSION=void 0;Zv.VERSION="2.6.1"});var W6=z((wv)=>{Object.defineProperty(wv,"__esModule",{value:!0});wv.createConstMap=void 0;function T$A(A){let Q={},B=A.length;for(let I=0;I{Object.defineProperty(Eu,"__esModule",{value:!0});Eu.SEMATTRS_NET_HOST_CARRIER_ICC=Eu.SEMATTRS_NET_HOST_CARRIER_MNC=Eu.SEMATTRS_NET_HOST_CARRIER_MCC=Eu.SEMATTRS_NET_HOST_CARRIER_NAME=Eu.SEMATTRS_NET_HOST_CONNECTION_SUBTYPE=Eu.SEMATTRS_NET_HOST_CONNECTION_TYPE=Eu.SEMATTRS_NET_HOST_NAME=Eu.SEMATTRS_NET_HOST_PORT=Eu.SEMATTRS_NET_HOST_IP=Eu.SEMATTRS_NET_PEER_NAME=Eu.SEMATTRS_NET_PEER_PORT=Eu.SEMATTRS_NET_PEER_IP=Eu.SEMATTRS_NET_TRANSPORT=Eu.SEMATTRS_FAAS_INVOKED_REGION=Eu.SEMATTRS_FAAS_INVOKED_PROVIDER=Eu.SEMATTRS_FAAS_INVOKED_NAME=Eu.SEMATTRS_FAAS_COLDSTART=Eu.SEMATTRS_FAAS_CRON=Eu.SEMATTRS_FAAS_TIME=Eu.SEMATTRS_FAAS_DOCUMENT_NAME=Eu.SEMATTRS_FAAS_DOCUMENT_TIME=Eu.SEMATTRS_FAAS_DOCUMENT_OPERATION=Eu.SEMATTRS_FAAS_DOCUMENT_COLLECTION=Eu.SEMATTRS_FAAS_EXECUTION=Eu.SEMATTRS_FAAS_TRIGGER=Eu.SEMATTRS_EXCEPTION_ESCAPED=Eu.SEMATTRS_EXCEPTION_STACKTRACE=Eu.SEMATTRS_EXCEPTION_MESSAGE=Eu.SEMATTRS_EXCEPTION_TYPE=Eu.SEMATTRS_DB_SQL_TABLE=Eu.SEMATTRS_DB_MONGODB_COLLECTION=Eu.SEMATTRS_DB_REDIS_DATABASE_INDEX=Eu.SEMATTRS_DB_HBASE_NAMESPACE=Eu.SEMATTRS_DB_CASSANDRA_COORDINATOR_DC=Eu.SEMATTRS_DB_CASSANDRA_COORDINATOR_ID=Eu.SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT=Eu.SEMATTRS_DB_CASSANDRA_IDEMPOTENCE=Eu.SEMATTRS_DB_CASSANDRA_TABLE=Eu.SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL=Eu.SEMATTRS_DB_CASSANDRA_PAGE_SIZE=Eu.SEMATTRS_DB_CASSANDRA_KEYSPACE=Eu.SEMATTRS_DB_MSSQL_INSTANCE_NAME=Eu.SEMATTRS_DB_OPERATION=Eu.SEMATTRS_DB_STATEMENT=Eu.SEMATTRS_DB_NAME=Eu.SEMATTRS_DB_JDBC_DRIVER_CLASSNAME=Eu.SEMATTRS_DB_USER=Eu.SEMATTRS_DB_CONNECTION_STRING=Eu.SEMATTRS_DB_SYSTEM=Eu.SEMATTRS_AWS_LAMBDA_INVOKED_ARN=void 0;Eu.SEMATTRS_MESSAGING_DESTINATION_KIND=Eu.SEMATTRS_MESSAGING_DESTINATION=Eu.SEMATTRS_MESSAGING_SYSTEM=Eu.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES=Eu.SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS=Eu.SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT=Eu.SEMATTRS_AWS_DYNAMODB_COUNT=Eu.SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS=Eu.SEMATTRS_AWS_DYNAMODB_SEGMENT=Eu.SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD=Eu.SEMATTRS_AWS_DYNAMODB_TABLE_COUNT=Eu.SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE=Eu.SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES=Eu.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES=Eu.SEMATTRS_AWS_DYNAMODB_SELECT=Eu.SEMATTRS_AWS_DYNAMODB_INDEX_NAME=Eu.SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET=Eu.SEMATTRS_AWS_DYNAMODB_LIMIT=Eu.SEMATTRS_AWS_DYNAMODB_PROJECTION=Eu.SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ=Eu.SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY=Eu.SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY=Eu.SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS=Eu.SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY=Eu.SEMATTRS_AWS_DYNAMODB_TABLE_NAMES=Eu.SEMATTRS_HTTP_CLIENT_IP=Eu.SEMATTRS_HTTP_ROUTE=Eu.SEMATTRS_HTTP_SERVER_NAME=Eu.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=Eu.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH=Eu.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=Eu.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH=Eu.SEMATTRS_HTTP_USER_AGENT=Eu.SEMATTRS_HTTP_FLAVOR=Eu.SEMATTRS_HTTP_STATUS_CODE=Eu.SEMATTRS_HTTP_SCHEME=Eu.SEMATTRS_HTTP_HOST=Eu.SEMATTRS_HTTP_TARGET=Eu.SEMATTRS_HTTP_URL=Eu.SEMATTRS_HTTP_METHOD=Eu.SEMATTRS_CODE_LINENO=Eu.SEMATTRS_CODE_FILEPATH=Eu.SEMATTRS_CODE_NAMESPACE=Eu.SEMATTRS_CODE_FUNCTION=Eu.SEMATTRS_THREAD_NAME=Eu.SEMATTRS_THREAD_ID=Eu.SEMATTRS_ENDUSER_SCOPE=Eu.SEMATTRS_ENDUSER_ROLE=Eu.SEMATTRS_ENDUSER_ID=Eu.SEMATTRS_PEER_SERVICE=void 0;Eu.DBSYSTEMVALUES_FILEMAKER=Eu.DBSYSTEMVALUES_DERBY=Eu.DBSYSTEMVALUES_FIREBIRD=Eu.DBSYSTEMVALUES_ADABAS=Eu.DBSYSTEMVALUES_CACHE=Eu.DBSYSTEMVALUES_EDB=Eu.DBSYSTEMVALUES_FIRSTSQL=Eu.DBSYSTEMVALUES_INGRES=Eu.DBSYSTEMVALUES_HANADB=Eu.DBSYSTEMVALUES_MAXDB=Eu.DBSYSTEMVALUES_PROGRESS=Eu.DBSYSTEMVALUES_HSQLDB=Eu.DBSYSTEMVALUES_CLOUDSCAPE=Eu.DBSYSTEMVALUES_HIVE=Eu.DBSYSTEMVALUES_REDSHIFT=Eu.DBSYSTEMVALUES_POSTGRESQL=Eu.DBSYSTEMVALUES_DB2=Eu.DBSYSTEMVALUES_ORACLE=Eu.DBSYSTEMVALUES_MYSQL=Eu.DBSYSTEMVALUES_MSSQL=Eu.DBSYSTEMVALUES_OTHER_SQL=Eu.SemanticAttributes=Eu.SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE=Eu.SEMATTRS_MESSAGE_COMPRESSED_SIZE=Eu.SEMATTRS_MESSAGE_ID=Eu.SEMATTRS_MESSAGE_TYPE=Eu.SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE=Eu.SEMATTRS_RPC_JSONRPC_ERROR_CODE=Eu.SEMATTRS_RPC_JSONRPC_REQUEST_ID=Eu.SEMATTRS_RPC_JSONRPC_VERSION=Eu.SEMATTRS_RPC_GRPC_STATUS_CODE=Eu.SEMATTRS_RPC_METHOD=Eu.SEMATTRS_RPC_SERVICE=Eu.SEMATTRS_RPC_SYSTEM=Eu.SEMATTRS_MESSAGING_KAFKA_TOMBSTONE=Eu.SEMATTRS_MESSAGING_KAFKA_PARTITION=Eu.SEMATTRS_MESSAGING_KAFKA_CLIENT_ID=Eu.SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP=Eu.SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY=Eu.SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY=Eu.SEMATTRS_MESSAGING_CONSUMER_ID=Eu.SEMATTRS_MESSAGING_OPERATION=Eu.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES=Eu.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES=Eu.SEMATTRS_MESSAGING_CONVERSATION_ID=Eu.SEMATTRS_MESSAGING_MESSAGE_ID=Eu.SEMATTRS_MESSAGING_URL=Eu.SEMATTRS_MESSAGING_PROTOCOL_VERSION=Eu.SEMATTRS_MESSAGING_PROTOCOL=Eu.SEMATTRS_MESSAGING_TEMP_DESTINATION=void 0;Eu.FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD=Eu.FaasDocumentOperationValues=Eu.FAASDOCUMENTOPERATIONVALUES_DELETE=Eu.FAASDOCUMENTOPERATIONVALUES_EDIT=Eu.FAASDOCUMENTOPERATIONVALUES_INSERT=Eu.FaasTriggerValues=Eu.FAASTRIGGERVALUES_OTHER=Eu.FAASTRIGGERVALUES_TIMER=Eu.FAASTRIGGERVALUES_PUBSUB=Eu.FAASTRIGGERVALUES_HTTP=Eu.FAASTRIGGERVALUES_DATASOURCE=Eu.DbCassandraConsistencyLevelValues=Eu.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL=Eu.DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL=Eu.DBCASSANDRACONSISTENCYLEVELVALUES_ANY=Eu.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE=Eu.DBCASSANDRACONSISTENCYLEVELVALUES_THREE=Eu.DBCASSANDRACONSISTENCYLEVELVALUES_TWO=Eu.DBCASSANDRACONSISTENCYLEVELVALUES_ONE=Eu.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM=Eu.DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM=Eu.DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM=Eu.DBCASSANDRACONSISTENCYLEVELVALUES_ALL=Eu.DbSystemValues=Eu.DBSYSTEMVALUES_COCKROACHDB=Eu.DBSYSTEMVALUES_MEMCACHED=Eu.DBSYSTEMVALUES_ELASTICSEARCH=Eu.DBSYSTEMVALUES_GEODE=Eu.DBSYSTEMVALUES_NEO4J=Eu.DBSYSTEMVALUES_DYNAMODB=Eu.DBSYSTEMVALUES_COSMOSDB=Eu.DBSYSTEMVALUES_COUCHDB=Eu.DBSYSTEMVALUES_COUCHBASE=Eu.DBSYSTEMVALUES_REDIS=Eu.DBSYSTEMVALUES_MONGODB=Eu.DBSYSTEMVALUES_HBASE=Eu.DBSYSTEMVALUES_CASSANDRA=Eu.DBSYSTEMVALUES_COLDFUSION=Eu.DBSYSTEMVALUES_H2=Eu.DBSYSTEMVALUES_VERTICA=Eu.DBSYSTEMVALUES_TERADATA=Eu.DBSYSTEMVALUES_SYBASE=Eu.DBSYSTEMVALUES_SQLITE=Eu.DBSYSTEMVALUES_POINTBASE=Eu.DBSYSTEMVALUES_PERVASIVE=Eu.DBSYSTEMVALUES_NETEZZA=Eu.DBSYSTEMVALUES_MARIADB=Eu.DBSYSTEMVALUES_INTERBASE=Eu.DBSYSTEMVALUES_INSTANTDB=Eu.DBSYSTEMVALUES_INFORMIX=void 0;Eu.MESSAGINGOPERATIONVALUES_RECEIVE=Eu.MessagingDestinationKindValues=Eu.MESSAGINGDESTINATIONKINDVALUES_TOPIC=Eu.MESSAGINGDESTINATIONKINDVALUES_QUEUE=Eu.HttpFlavorValues=Eu.HTTPFLAVORVALUES_QUIC=Eu.HTTPFLAVORVALUES_SPDY=Eu.HTTPFLAVORVALUES_HTTP_2_0=Eu.HTTPFLAVORVALUES_HTTP_1_1=Eu.HTTPFLAVORVALUES_HTTP_1_0=Eu.NetHostConnectionSubtypeValues=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_NR=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_GSM=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_LTE=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_IDEN=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_HSPA=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_UMTS=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_EDGE=Eu.NETHOSTCONNECTIONSUBTYPEVALUES_GPRS=Eu.NetHostConnectionTypeValues=Eu.NETHOSTCONNECTIONTYPEVALUES_UNKNOWN=Eu.NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE=Eu.NETHOSTCONNECTIONTYPEVALUES_CELL=Eu.NETHOSTCONNECTIONTYPEVALUES_WIRED=Eu.NETHOSTCONNECTIONTYPEVALUES_WIFI=Eu.NetTransportValues=Eu.NETTRANSPORTVALUES_OTHER=Eu.NETTRANSPORTVALUES_INPROC=Eu.NETTRANSPORTVALUES_PIPE=Eu.NETTRANSPORTVALUES_UNIX=Eu.NETTRANSPORTVALUES_IP=Eu.NETTRANSPORTVALUES_IP_UDP=Eu.NETTRANSPORTVALUES_IP_TCP=Eu.FaasInvokedProviderValues=Eu.FAASINVOKEDPROVIDERVALUES_GCP=Eu.FAASINVOKEDPROVIDERVALUES_AZURE=Eu.FAASINVOKEDPROVIDERVALUES_AWS=void 0;Eu.MessageTypeValues=Eu.MESSAGETYPEVALUES_RECEIVED=Eu.MESSAGETYPEVALUES_SENT=Eu.RpcGrpcStatusCodeValues=Eu.RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED=Eu.RPCGRPCSTATUSCODEVALUES_DATA_LOSS=Eu.RPCGRPCSTATUSCODEVALUES_UNAVAILABLE=Eu.RPCGRPCSTATUSCODEVALUES_INTERNAL=Eu.RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED=Eu.RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE=Eu.RPCGRPCSTATUSCODEVALUES_ABORTED=Eu.RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION=Eu.RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED=Eu.RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED=Eu.RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS=Eu.RPCGRPCSTATUSCODEVALUES_NOT_FOUND=Eu.RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED=Eu.RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT=Eu.RPCGRPCSTATUSCODEVALUES_UNKNOWN=Eu.RPCGRPCSTATUSCODEVALUES_CANCELLED=Eu.RPCGRPCSTATUSCODEVALUES_OK=Eu.MessagingOperationValues=Eu.MESSAGINGOPERATIONVALUES_PROCESS=void 0;var VI=W6(),Vv="aws.lambda.invoked_arn",Kv="db.system",zv="db.connection_string",$v="db.user",Hv="db.jdbc.driver_classname",Mv="db.name",Lv="db.statement",Nv="db.operation",jv="db.mssql.instance_name",Rv="db.cassandra.keyspace",qv="db.cassandra.page_size",Pv="db.cassandra.consistency_level",Ov="db.cassandra.table",kv="db.cassandra.idempotence",gv="db.cassandra.speculative_execution_count",Tv="db.cassandra.coordinator.id",_v="db.cassandra.coordinator.dc",yv="db.hbase.namespace",Sv="db.redis.database_index",fv="db.mongodb.collection",hv="db.sql.table",xv="exception.type",vv="exception.message",bv="exception.stacktrace",mv="exception.escaped",dv="faas.trigger",cv="faas.execution",uv="faas.document.collection",lv="faas.document.operation",pv="faas.document.time",iv="faas.document.name",ov="faas.time",nv="faas.cron",sv="faas.coldstart",av="faas.invoked_name",rv="faas.invoked_provider",tv="faas.invoked_region",ev="net.transport",Ab="net.peer.ip",Qb="net.peer.port",Bb="net.peer.name",Ib="net.host.ip",Cb="net.host.port",Eb="net.host.name",Yb="net.host.connection.type",Jb="net.host.connection.subtype",Fb="net.host.carrier.name",Gb="net.host.carrier.mcc",Db="net.host.carrier.mnc",Zb="net.host.carrier.icc",Ub="peer.service",Wb="enduser.id",wb="enduser.role",Xb="enduser.scope",Vb="thread.id",Kb="thread.name",zb="code.function",$b="code.namespace",Hb="code.filepath",Mb="code.lineno",Lb="http.method",Nb="http.url",jb="http.target",Rb="http.host",qb="http.scheme",Pb="http.status_code",Ob="http.flavor",kb="http.user_agent",gb="http.request_content_length",Tb="http.request_content_length_uncompressed",_b="http.response_content_length",yb="http.response_content_length_uncompressed",Sb="http.server_name",fb="http.route",hb="http.client_ip",xb="aws.dynamodb.table_names",vb="aws.dynamodb.consumed_capacity",bb="aws.dynamodb.item_collection_metrics",mb="aws.dynamodb.provisioned_read_capacity",db="aws.dynamodb.provisioned_write_capacity",cb="aws.dynamodb.consistent_read",ub="aws.dynamodb.projection",lb="aws.dynamodb.limit",pb="aws.dynamodb.attributes_to_get",ib="aws.dynamodb.index_name",ob="aws.dynamodb.select",nb="aws.dynamodb.global_secondary_indexes",sb="aws.dynamodb.local_secondary_indexes",ab="aws.dynamodb.exclusive_start_table",rb="aws.dynamodb.table_count",tb="aws.dynamodb.scan_forward",eb="aws.dynamodb.segment",Am="aws.dynamodb.total_segments",Qm="aws.dynamodb.count",Bm="aws.dynamodb.scanned_count",Im="aws.dynamodb.attribute_definitions",Cm="aws.dynamodb.global_secondary_index_updates",Em="messaging.system",Ym="messaging.destination",Jm="messaging.destination_kind",Fm="messaging.temp_destination",Gm="messaging.protocol",Dm="messaging.protocol_version",Zm="messaging.url",Um="messaging.message_id",Wm="messaging.conversation_id",wm="messaging.message_payload_size_bytes",Xm="messaging.message_payload_compressed_size_bytes",Vm="messaging.operation",Km="messaging.consumer_id",zm="messaging.rabbitmq.routing_key",$m="messaging.kafka.message_key",Hm="messaging.kafka.consumer_group",Mm="messaging.kafka.client_id",Lm="messaging.kafka.partition",Nm="messaging.kafka.tombstone",jm="rpc.system",Rm="rpc.service",qm="rpc.method",Pm="rpc.grpc.status_code",Om="rpc.jsonrpc.version",km="rpc.jsonrpc.request_id",gm="rpc.jsonrpc.error_code",Tm="rpc.jsonrpc.error_message",_m="message.type",ym="message.id",Sm="message.compressed_size",fm="message.uncompressed_size";Eu.SEMATTRS_AWS_LAMBDA_INVOKED_ARN=Vv;Eu.SEMATTRS_DB_SYSTEM=Kv;Eu.SEMATTRS_DB_CONNECTION_STRING=zv;Eu.SEMATTRS_DB_USER=$v;Eu.SEMATTRS_DB_JDBC_DRIVER_CLASSNAME=Hv;Eu.SEMATTRS_DB_NAME=Mv;Eu.SEMATTRS_DB_STATEMENT=Lv;Eu.SEMATTRS_DB_OPERATION=Nv;Eu.SEMATTRS_DB_MSSQL_INSTANCE_NAME=jv;Eu.SEMATTRS_DB_CASSANDRA_KEYSPACE=Rv;Eu.SEMATTRS_DB_CASSANDRA_PAGE_SIZE=qv;Eu.SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL=Pv;Eu.SEMATTRS_DB_CASSANDRA_TABLE=Ov;Eu.SEMATTRS_DB_CASSANDRA_IDEMPOTENCE=kv;Eu.SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT=gv;Eu.SEMATTRS_DB_CASSANDRA_COORDINATOR_ID=Tv;Eu.SEMATTRS_DB_CASSANDRA_COORDINATOR_DC=_v;Eu.SEMATTRS_DB_HBASE_NAMESPACE=yv;Eu.SEMATTRS_DB_REDIS_DATABASE_INDEX=Sv;Eu.SEMATTRS_DB_MONGODB_COLLECTION=fv;Eu.SEMATTRS_DB_SQL_TABLE=hv;Eu.SEMATTRS_EXCEPTION_TYPE=xv;Eu.SEMATTRS_EXCEPTION_MESSAGE=vv;Eu.SEMATTRS_EXCEPTION_STACKTRACE=bv;Eu.SEMATTRS_EXCEPTION_ESCAPED=mv;Eu.SEMATTRS_FAAS_TRIGGER=dv;Eu.SEMATTRS_FAAS_EXECUTION=cv;Eu.SEMATTRS_FAAS_DOCUMENT_COLLECTION=uv;Eu.SEMATTRS_FAAS_DOCUMENT_OPERATION=lv;Eu.SEMATTRS_FAAS_DOCUMENT_TIME=pv;Eu.SEMATTRS_FAAS_DOCUMENT_NAME=iv;Eu.SEMATTRS_FAAS_TIME=ov;Eu.SEMATTRS_FAAS_CRON=nv;Eu.SEMATTRS_FAAS_COLDSTART=sv;Eu.SEMATTRS_FAAS_INVOKED_NAME=av;Eu.SEMATTRS_FAAS_INVOKED_PROVIDER=rv;Eu.SEMATTRS_FAAS_INVOKED_REGION=tv;Eu.SEMATTRS_NET_TRANSPORT=ev;Eu.SEMATTRS_NET_PEER_IP=Ab;Eu.SEMATTRS_NET_PEER_PORT=Qb;Eu.SEMATTRS_NET_PEER_NAME=Bb;Eu.SEMATTRS_NET_HOST_IP=Ib;Eu.SEMATTRS_NET_HOST_PORT=Cb;Eu.SEMATTRS_NET_HOST_NAME=Eb;Eu.SEMATTRS_NET_HOST_CONNECTION_TYPE=Yb;Eu.SEMATTRS_NET_HOST_CONNECTION_SUBTYPE=Jb;Eu.SEMATTRS_NET_HOST_CARRIER_NAME=Fb;Eu.SEMATTRS_NET_HOST_CARRIER_MCC=Gb;Eu.SEMATTRS_NET_HOST_CARRIER_MNC=Db;Eu.SEMATTRS_NET_HOST_CARRIER_ICC=Zb;Eu.SEMATTRS_PEER_SERVICE=Ub;Eu.SEMATTRS_ENDUSER_ID=Wb;Eu.SEMATTRS_ENDUSER_ROLE=wb;Eu.SEMATTRS_ENDUSER_SCOPE=Xb;Eu.SEMATTRS_THREAD_ID=Vb;Eu.SEMATTRS_THREAD_NAME=Kb;Eu.SEMATTRS_CODE_FUNCTION=zb;Eu.SEMATTRS_CODE_NAMESPACE=$b;Eu.SEMATTRS_CODE_FILEPATH=Hb;Eu.SEMATTRS_CODE_LINENO=Mb;Eu.SEMATTRS_HTTP_METHOD=Lb;Eu.SEMATTRS_HTTP_URL=Nb;Eu.SEMATTRS_HTTP_TARGET=jb;Eu.SEMATTRS_HTTP_HOST=Rb;Eu.SEMATTRS_HTTP_SCHEME=qb;Eu.SEMATTRS_HTTP_STATUS_CODE=Pb;Eu.SEMATTRS_HTTP_FLAVOR=Ob;Eu.SEMATTRS_HTTP_USER_AGENT=kb;Eu.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH=gb;Eu.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=Tb;Eu.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH=_b;Eu.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=yb;Eu.SEMATTRS_HTTP_SERVER_NAME=Sb;Eu.SEMATTRS_HTTP_ROUTE=fb;Eu.SEMATTRS_HTTP_CLIENT_IP=hb;Eu.SEMATTRS_AWS_DYNAMODB_TABLE_NAMES=xb;Eu.SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY=vb;Eu.SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS=bb;Eu.SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY=mb;Eu.SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY=db;Eu.SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ=cb;Eu.SEMATTRS_AWS_DYNAMODB_PROJECTION=ub;Eu.SEMATTRS_AWS_DYNAMODB_LIMIT=lb;Eu.SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET=pb;Eu.SEMATTRS_AWS_DYNAMODB_INDEX_NAME=ib;Eu.SEMATTRS_AWS_DYNAMODB_SELECT=ob;Eu.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES=nb;Eu.SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES=sb;Eu.SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE=ab;Eu.SEMATTRS_AWS_DYNAMODB_TABLE_COUNT=rb;Eu.SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD=tb;Eu.SEMATTRS_AWS_DYNAMODB_SEGMENT=eb;Eu.SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS=Am;Eu.SEMATTRS_AWS_DYNAMODB_COUNT=Qm;Eu.SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT=Bm;Eu.SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS=Im;Eu.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES=Cm;Eu.SEMATTRS_MESSAGING_SYSTEM=Em;Eu.SEMATTRS_MESSAGING_DESTINATION=Ym;Eu.SEMATTRS_MESSAGING_DESTINATION_KIND=Jm;Eu.SEMATTRS_MESSAGING_TEMP_DESTINATION=Fm;Eu.SEMATTRS_MESSAGING_PROTOCOL=Gm;Eu.SEMATTRS_MESSAGING_PROTOCOL_VERSION=Dm;Eu.SEMATTRS_MESSAGING_URL=Zm;Eu.SEMATTRS_MESSAGING_MESSAGE_ID=Um;Eu.SEMATTRS_MESSAGING_CONVERSATION_ID=Wm;Eu.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES=wm;Eu.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES=Xm;Eu.SEMATTRS_MESSAGING_OPERATION=Vm;Eu.SEMATTRS_MESSAGING_CONSUMER_ID=Km;Eu.SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY=zm;Eu.SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY=$m;Eu.SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP=Hm;Eu.SEMATTRS_MESSAGING_KAFKA_CLIENT_ID=Mm;Eu.SEMATTRS_MESSAGING_KAFKA_PARTITION=Lm;Eu.SEMATTRS_MESSAGING_KAFKA_TOMBSTONE=Nm;Eu.SEMATTRS_RPC_SYSTEM=jm;Eu.SEMATTRS_RPC_SERVICE=Rm;Eu.SEMATTRS_RPC_METHOD=qm;Eu.SEMATTRS_RPC_GRPC_STATUS_CODE=Pm;Eu.SEMATTRS_RPC_JSONRPC_VERSION=Om;Eu.SEMATTRS_RPC_JSONRPC_REQUEST_ID=km;Eu.SEMATTRS_RPC_JSONRPC_ERROR_CODE=gm;Eu.SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE=Tm;Eu.SEMATTRS_MESSAGE_TYPE=_m;Eu.SEMATTRS_MESSAGE_ID=ym;Eu.SEMATTRS_MESSAGE_COMPRESSED_SIZE=Sm;Eu.SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE=fm;Eu.SemanticAttributes=(0,VI.createConstMap)([Vv,Kv,zv,$v,Hv,Mv,Lv,Nv,jv,Rv,qv,Pv,Ov,kv,gv,Tv,_v,yv,Sv,fv,hv,xv,vv,bv,mv,dv,cv,uv,lv,pv,iv,ov,nv,sv,av,rv,tv,ev,Ab,Qb,Bb,Ib,Cb,Eb,Yb,Jb,Fb,Gb,Db,Zb,Ub,Wb,wb,Xb,Vb,Kb,zb,$b,Hb,Mb,Lb,Nb,jb,Rb,qb,Pb,Ob,kb,gb,Tb,_b,yb,Sb,fb,hb,xb,vb,bb,mb,db,cb,ub,lb,pb,ib,ob,nb,sb,ab,rb,tb,eb,Am,Qm,Bm,Im,Cm,Em,Ym,Jm,Fm,Gm,Dm,Zm,Um,Wm,wm,Xm,Vm,Km,zm,$m,Hm,Mm,Lm,Nm,jm,Rm,qm,Pm,Om,km,gm,Tm,_m,ym,Sm,fm]);var hm="other_sql",xm="mssql",vm="mysql",bm="oracle",mm="db2",dm="postgresql",cm="redshift",um="hive",lm="cloudscape",pm="hsqldb",im="progress",om="maxdb",nm="hanadb",sm="ingres",am="firstsql",rm="edb",tm="cache",em="adabas",Ad="firebird",Qd="derby",Bd="filemaker",Id="informix",Cd="instantdb",Ed="interbase",Yd="mariadb",Jd="netezza",Fd="pervasive",Gd="pointbase",Dd="sqlite",Zd="sybase",Ud="teradata",Wd="vertica",wd="h2",Xd="coldfusion",Vd="cassandra",Kd="hbase",zd="mongodb",$d="redis",Hd="couchbase",Md="couchdb",Ld="cosmosdb",Nd="dynamodb",jd="neo4j",Rd="geode",qd="elasticsearch",Pd="memcached",Od="cockroachdb";Eu.DBSYSTEMVALUES_OTHER_SQL=hm;Eu.DBSYSTEMVALUES_MSSQL=xm;Eu.DBSYSTEMVALUES_MYSQL=vm;Eu.DBSYSTEMVALUES_ORACLE=bm;Eu.DBSYSTEMVALUES_DB2=mm;Eu.DBSYSTEMVALUES_POSTGRESQL=dm;Eu.DBSYSTEMVALUES_REDSHIFT=cm;Eu.DBSYSTEMVALUES_HIVE=um;Eu.DBSYSTEMVALUES_CLOUDSCAPE=lm;Eu.DBSYSTEMVALUES_HSQLDB=pm;Eu.DBSYSTEMVALUES_PROGRESS=im;Eu.DBSYSTEMVALUES_MAXDB=om;Eu.DBSYSTEMVALUES_HANADB=nm;Eu.DBSYSTEMVALUES_INGRES=sm;Eu.DBSYSTEMVALUES_FIRSTSQL=am;Eu.DBSYSTEMVALUES_EDB=rm;Eu.DBSYSTEMVALUES_CACHE=tm;Eu.DBSYSTEMVALUES_ADABAS=em;Eu.DBSYSTEMVALUES_FIREBIRD=Ad;Eu.DBSYSTEMVALUES_DERBY=Qd;Eu.DBSYSTEMVALUES_FILEMAKER=Bd;Eu.DBSYSTEMVALUES_INFORMIX=Id;Eu.DBSYSTEMVALUES_INSTANTDB=Cd;Eu.DBSYSTEMVALUES_INTERBASE=Ed;Eu.DBSYSTEMVALUES_MARIADB=Yd;Eu.DBSYSTEMVALUES_NETEZZA=Jd;Eu.DBSYSTEMVALUES_PERVASIVE=Fd;Eu.DBSYSTEMVALUES_POINTBASE=Gd;Eu.DBSYSTEMVALUES_SQLITE=Dd;Eu.DBSYSTEMVALUES_SYBASE=Zd;Eu.DBSYSTEMVALUES_TERADATA=Ud;Eu.DBSYSTEMVALUES_VERTICA=Wd;Eu.DBSYSTEMVALUES_H2=wd;Eu.DBSYSTEMVALUES_COLDFUSION=Xd;Eu.DBSYSTEMVALUES_CASSANDRA=Vd;Eu.DBSYSTEMVALUES_HBASE=Kd;Eu.DBSYSTEMVALUES_MONGODB=zd;Eu.DBSYSTEMVALUES_REDIS=$d;Eu.DBSYSTEMVALUES_COUCHBASE=Hd;Eu.DBSYSTEMVALUES_COUCHDB=Md;Eu.DBSYSTEMVALUES_COSMOSDB=Ld;Eu.DBSYSTEMVALUES_DYNAMODB=Nd;Eu.DBSYSTEMVALUES_NEO4J=jd;Eu.DBSYSTEMVALUES_GEODE=Rd;Eu.DBSYSTEMVALUES_ELASTICSEARCH=qd;Eu.DBSYSTEMVALUES_MEMCACHED=Pd;Eu.DBSYSTEMVALUES_COCKROACHDB=Od;Eu.DbSystemValues=(0,VI.createConstMap)([hm,xm,vm,bm,mm,dm,cm,um,lm,pm,im,om,nm,sm,am,rm,tm,em,Ad,Qd,Bd,Id,Cd,Ed,Yd,Jd,Fd,Gd,Dd,Zd,Ud,Wd,wd,Xd,Vd,Kd,zd,$d,Hd,Md,Ld,Nd,jd,Rd,qd,Pd,Od]);var kd="all",gd="each_quorum",Td="quorum",_d="local_quorum",yd="one",Sd="two",fd="three",hd="local_one",xd="any",vd="serial",bd="local_serial";Eu.DBCASSANDRACONSISTENCYLEVELVALUES_ALL=kd;Eu.DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM=gd;Eu.DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM=Td;Eu.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM=_d;Eu.DBCASSANDRACONSISTENCYLEVELVALUES_ONE=yd;Eu.DBCASSANDRACONSISTENCYLEVELVALUES_TWO=Sd;Eu.DBCASSANDRACONSISTENCYLEVELVALUES_THREE=fd;Eu.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE=hd;Eu.DBCASSANDRACONSISTENCYLEVELVALUES_ANY=xd;Eu.DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL=vd;Eu.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL=bd;Eu.DbCassandraConsistencyLevelValues=(0,VI.createConstMap)([kd,gd,Td,_d,yd,Sd,fd,hd,xd,vd,bd]);var md="datasource",dd="http",cd="pubsub",ud="timer",ld="other";Eu.FAASTRIGGERVALUES_DATASOURCE=md;Eu.FAASTRIGGERVALUES_HTTP=dd;Eu.FAASTRIGGERVALUES_PUBSUB=cd;Eu.FAASTRIGGERVALUES_TIMER=ud;Eu.FAASTRIGGERVALUES_OTHER=ld;Eu.FaasTriggerValues=(0,VI.createConstMap)([md,dd,cd,ud,ld]);var pd="insert",id="edit",od="delete";Eu.FAASDOCUMENTOPERATIONVALUES_INSERT=pd;Eu.FAASDOCUMENTOPERATIONVALUES_EDIT=id;Eu.FAASDOCUMENTOPERATIONVALUES_DELETE=od;Eu.FaasDocumentOperationValues=(0,VI.createConstMap)([pd,id,od]);var nd="alibaba_cloud",sd="aws",ad="azure",rd="gcp";Eu.FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD=nd;Eu.FAASINVOKEDPROVIDERVALUES_AWS=sd;Eu.FAASINVOKEDPROVIDERVALUES_AZURE=ad;Eu.FAASINVOKEDPROVIDERVALUES_GCP=rd;Eu.FaasInvokedProviderValues=(0,VI.createConstMap)([nd,sd,ad,rd]);var td="ip_tcp",ed="ip_udp",Ac="ip",Qc="unix",Bc="pipe",Ic="inproc",Cc="other";Eu.NETTRANSPORTVALUES_IP_TCP=td;Eu.NETTRANSPORTVALUES_IP_UDP=ed;Eu.NETTRANSPORTVALUES_IP=Ac;Eu.NETTRANSPORTVALUES_UNIX=Qc;Eu.NETTRANSPORTVALUES_PIPE=Bc;Eu.NETTRANSPORTVALUES_INPROC=Ic;Eu.NETTRANSPORTVALUES_OTHER=Cc;Eu.NetTransportValues=(0,VI.createConstMap)([td,ed,Ac,Qc,Bc,Ic,Cc]);var Ec="wifi",Yc="wired",Jc="cell",Fc="unavailable",Gc="unknown";Eu.NETHOSTCONNECTIONTYPEVALUES_WIFI=Ec;Eu.NETHOSTCONNECTIONTYPEVALUES_WIRED=Yc;Eu.NETHOSTCONNECTIONTYPEVALUES_CELL=Jc;Eu.NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE=Fc;Eu.NETHOSTCONNECTIONTYPEVALUES_UNKNOWN=Gc;Eu.NetHostConnectionTypeValues=(0,VI.createConstMap)([Ec,Yc,Jc,Fc,Gc]);var Dc="gprs",Zc="edge",Uc="umts",Wc="cdma",wc="evdo_0",Xc="evdo_a",Vc="cdma2000_1xrtt",Kc="hsdpa",zc="hsupa",$c="hspa",Hc="iden",Mc="evdo_b",Lc="lte",Nc="ehrpd",jc="hspap",Rc="gsm",qc="td_scdma",Pc="iwlan",Oc="nr",kc="nrnsa",gc="lte_ca";Eu.NETHOSTCONNECTIONSUBTYPEVALUES_GPRS=Dc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_EDGE=Zc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_UMTS=Uc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA=Wc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0=wc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A=Xc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT=Vc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA=Kc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA=zc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_HSPA=$c;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_IDEN=Hc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B=Mc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_LTE=Lc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD=Nc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP=jc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_GSM=Rc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA=qc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN=Pc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_NR=Oc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA=kc;Eu.NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA=gc;Eu.NetHostConnectionSubtypeValues=(0,VI.createConstMap)([Dc,Zc,Uc,Wc,wc,Xc,Vc,Kc,zc,$c,Hc,Mc,Lc,Nc,jc,Rc,qc,Pc,Oc,kc,gc]);var Tc="1.0",_c="1.1",yc="2.0",Sc="SPDY",fc="QUIC";Eu.HTTPFLAVORVALUES_HTTP_1_0=Tc;Eu.HTTPFLAVORVALUES_HTTP_1_1=_c;Eu.HTTPFLAVORVALUES_HTTP_2_0=yc;Eu.HTTPFLAVORVALUES_SPDY=Sc;Eu.HTTPFLAVORVALUES_QUIC=fc;Eu.HttpFlavorValues={HTTP_1_0:Tc,HTTP_1_1:_c,HTTP_2_0:yc,SPDY:Sc,QUIC:fc};var hc="queue",xc="topic";Eu.MESSAGINGDESTINATIONKINDVALUES_QUEUE=hc;Eu.MESSAGINGDESTINATIONKINDVALUES_TOPIC=xc;Eu.MessagingDestinationKindValues=(0,VI.createConstMap)([hc,xc]);var vc="receive",bc="process";Eu.MESSAGINGOPERATIONVALUES_RECEIVE=vc;Eu.MESSAGINGOPERATIONVALUES_PROCESS=bc;Eu.MessagingOperationValues=(0,VI.createConstMap)([vc,bc]);var mc=0,dc=1,cc=2,uc=3,lc=4,pc=5,ic=6,oc=7,nc=8,sc=9,ac=10,rc=11,tc=12,ec=13,Au=14,Qu=15,Bu=16;Eu.RPCGRPCSTATUSCODEVALUES_OK=mc;Eu.RPCGRPCSTATUSCODEVALUES_CANCELLED=dc;Eu.RPCGRPCSTATUSCODEVALUES_UNKNOWN=cc;Eu.RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT=uc;Eu.RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED=lc;Eu.RPCGRPCSTATUSCODEVALUES_NOT_FOUND=pc;Eu.RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS=ic;Eu.RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED=oc;Eu.RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED=nc;Eu.RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION=sc;Eu.RPCGRPCSTATUSCODEVALUES_ABORTED=ac;Eu.RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE=rc;Eu.RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED=tc;Eu.RPCGRPCSTATUSCODEVALUES_INTERNAL=ec;Eu.RPCGRPCSTATUSCODEVALUES_UNAVAILABLE=Au;Eu.RPCGRPCSTATUSCODEVALUES_DATA_LOSS=Qu;Eu.RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED=Bu;Eu.RpcGrpcStatusCodeValues={OK:mc,CANCELLED:dc,UNKNOWN:cc,INVALID_ARGUMENT:uc,DEADLINE_EXCEEDED:lc,NOT_FOUND:pc,ALREADY_EXISTS:ic,PERMISSION_DENIED:oc,RESOURCE_EXHAUSTED:nc,FAILED_PRECONDITION:sc,ABORTED:ac,OUT_OF_RANGE:rc,UNIMPLEMENTED:tc,INTERNAL:ec,UNAVAILABLE:Au,DATA_LOSS:Qu,UNAUTHENTICATED:Bu};var Iu="SENT",Cu="RECEIVED";Eu.MESSAGETYPEVALUES_SENT=Iu;Eu.MESSAGETYPEVALUES_RECEIVED=Cu;Eu.MessageTypeValues=(0,VI.createConstMap)([Iu,Cu])});var Wu=z((pY)=>{var kNA=pY&&pY.__createBinding||(Object.create?function(A,Q,B,I){if(I===void 0)I=B;var C=Object.getOwnPropertyDescriptor(Q,B);if(!C||("get"in C?!Q.__esModule:C.writable||C.configurable))C={enumerable:!0,get:function(){return Q[B]}};Object.defineProperty(A,I,C)}:function(A,Q,B,I){if(I===void 0)I=B;A[I]=Q[B]}),gNA=pY&&pY.__exportStar||function(A,Q){for(var B in A)if(B!=="default"&&!Object.prototype.hasOwnProperty.call(Q,B))kNA(Q,A,B)};Object.defineProperty(pY,"__esModule",{value:!0});gNA(Uu(),pY)});var cp=z((vp)=>{Object.defineProperty(vp,"__esModule",{value:!0});vp.SEMRESATTRS_K8S_STATEFULSET_NAME=vp.SEMRESATTRS_K8S_STATEFULSET_UID=vp.SEMRESATTRS_K8S_DEPLOYMENT_NAME=vp.SEMRESATTRS_K8S_DEPLOYMENT_UID=vp.SEMRESATTRS_K8S_REPLICASET_NAME=vp.SEMRESATTRS_K8S_REPLICASET_UID=vp.SEMRESATTRS_K8S_CONTAINER_NAME=vp.SEMRESATTRS_K8S_POD_NAME=vp.SEMRESATTRS_K8S_POD_UID=vp.SEMRESATTRS_K8S_NAMESPACE_NAME=vp.SEMRESATTRS_K8S_NODE_UID=vp.SEMRESATTRS_K8S_NODE_NAME=vp.SEMRESATTRS_K8S_CLUSTER_NAME=vp.SEMRESATTRS_HOST_IMAGE_VERSION=vp.SEMRESATTRS_HOST_IMAGE_ID=vp.SEMRESATTRS_HOST_IMAGE_NAME=vp.SEMRESATTRS_HOST_ARCH=vp.SEMRESATTRS_HOST_TYPE=vp.SEMRESATTRS_HOST_NAME=vp.SEMRESATTRS_HOST_ID=vp.SEMRESATTRS_FAAS_MAX_MEMORY=vp.SEMRESATTRS_FAAS_INSTANCE=vp.SEMRESATTRS_FAAS_VERSION=vp.SEMRESATTRS_FAAS_ID=vp.SEMRESATTRS_FAAS_NAME=vp.SEMRESATTRS_DEVICE_MODEL_NAME=vp.SEMRESATTRS_DEVICE_MODEL_IDENTIFIER=vp.SEMRESATTRS_DEVICE_ID=vp.SEMRESATTRS_DEPLOYMENT_ENVIRONMENT=vp.SEMRESATTRS_CONTAINER_IMAGE_TAG=vp.SEMRESATTRS_CONTAINER_IMAGE_NAME=vp.SEMRESATTRS_CONTAINER_RUNTIME=vp.SEMRESATTRS_CONTAINER_ID=vp.SEMRESATTRS_CONTAINER_NAME=vp.SEMRESATTRS_AWS_LOG_STREAM_ARNS=vp.SEMRESATTRS_AWS_LOG_STREAM_NAMES=vp.SEMRESATTRS_AWS_LOG_GROUP_ARNS=vp.SEMRESATTRS_AWS_LOG_GROUP_NAMES=vp.SEMRESATTRS_AWS_EKS_CLUSTER_ARN=vp.SEMRESATTRS_AWS_ECS_TASK_REVISION=vp.SEMRESATTRS_AWS_ECS_TASK_FAMILY=vp.SEMRESATTRS_AWS_ECS_TASK_ARN=vp.SEMRESATTRS_AWS_ECS_LAUNCHTYPE=vp.SEMRESATTRS_AWS_ECS_CLUSTER_ARN=vp.SEMRESATTRS_AWS_ECS_CONTAINER_ARN=vp.SEMRESATTRS_CLOUD_PLATFORM=vp.SEMRESATTRS_CLOUD_AVAILABILITY_ZONE=vp.SEMRESATTRS_CLOUD_REGION=vp.SEMRESATTRS_CLOUD_ACCOUNT_ID=vp.SEMRESATTRS_CLOUD_PROVIDER=void 0;vp.CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE=vp.CLOUDPLATFORMVALUES_AZURE_APP_SERVICE=vp.CLOUDPLATFORMVALUES_AZURE_FUNCTIONS=vp.CLOUDPLATFORMVALUES_AZURE_AKS=vp.CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES=vp.CLOUDPLATFORMVALUES_AZURE_VM=vp.CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK=vp.CLOUDPLATFORMVALUES_AWS_LAMBDA=vp.CLOUDPLATFORMVALUES_AWS_EKS=vp.CLOUDPLATFORMVALUES_AWS_ECS=vp.CLOUDPLATFORMVALUES_AWS_EC2=vp.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC=vp.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS=vp.CloudProviderValues=vp.CLOUDPROVIDERVALUES_GCP=vp.CLOUDPROVIDERVALUES_AZURE=vp.CLOUDPROVIDERVALUES_AWS=vp.CLOUDPROVIDERVALUES_ALIBABA_CLOUD=vp.SemanticResourceAttributes=vp.SEMRESATTRS_WEBENGINE_DESCRIPTION=vp.SEMRESATTRS_WEBENGINE_VERSION=vp.SEMRESATTRS_WEBENGINE_NAME=vp.SEMRESATTRS_TELEMETRY_AUTO_VERSION=vp.SEMRESATTRS_TELEMETRY_SDK_VERSION=vp.SEMRESATTRS_TELEMETRY_SDK_LANGUAGE=vp.SEMRESATTRS_TELEMETRY_SDK_NAME=vp.SEMRESATTRS_SERVICE_VERSION=vp.SEMRESATTRS_SERVICE_INSTANCE_ID=vp.SEMRESATTRS_SERVICE_NAMESPACE=vp.SEMRESATTRS_SERVICE_NAME=vp.SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION=vp.SEMRESATTRS_PROCESS_RUNTIME_VERSION=vp.SEMRESATTRS_PROCESS_RUNTIME_NAME=vp.SEMRESATTRS_PROCESS_OWNER=vp.SEMRESATTRS_PROCESS_COMMAND_ARGS=vp.SEMRESATTRS_PROCESS_COMMAND_LINE=vp.SEMRESATTRS_PROCESS_COMMAND=vp.SEMRESATTRS_PROCESS_EXECUTABLE_PATH=vp.SEMRESATTRS_PROCESS_EXECUTABLE_NAME=vp.SEMRESATTRS_PROCESS_PID=vp.SEMRESATTRS_OS_VERSION=vp.SEMRESATTRS_OS_NAME=vp.SEMRESATTRS_OS_DESCRIPTION=vp.SEMRESATTRS_OS_TYPE=vp.SEMRESATTRS_K8S_CRONJOB_NAME=vp.SEMRESATTRS_K8S_CRONJOB_UID=vp.SEMRESATTRS_K8S_JOB_NAME=vp.SEMRESATTRS_K8S_JOB_UID=vp.SEMRESATTRS_K8S_DAEMONSET_NAME=vp.SEMRESATTRS_K8S_DAEMONSET_UID=void 0;vp.TelemetrySdkLanguageValues=vp.TELEMETRYSDKLANGUAGEVALUES_WEBJS=vp.TELEMETRYSDKLANGUAGEVALUES_RUBY=vp.TELEMETRYSDKLANGUAGEVALUES_PYTHON=vp.TELEMETRYSDKLANGUAGEVALUES_PHP=vp.TELEMETRYSDKLANGUAGEVALUES_NODEJS=vp.TELEMETRYSDKLANGUAGEVALUES_JAVA=vp.TELEMETRYSDKLANGUAGEVALUES_GO=vp.TELEMETRYSDKLANGUAGEVALUES_ERLANG=vp.TELEMETRYSDKLANGUAGEVALUES_DOTNET=vp.TELEMETRYSDKLANGUAGEVALUES_CPP=vp.OsTypeValues=vp.OSTYPEVALUES_Z_OS=vp.OSTYPEVALUES_SOLARIS=vp.OSTYPEVALUES_AIX=vp.OSTYPEVALUES_HPUX=vp.OSTYPEVALUES_DRAGONFLYBSD=vp.OSTYPEVALUES_OPENBSD=vp.OSTYPEVALUES_NETBSD=vp.OSTYPEVALUES_FREEBSD=vp.OSTYPEVALUES_DARWIN=vp.OSTYPEVALUES_LINUX=vp.OSTYPEVALUES_WINDOWS=vp.HostArchValues=vp.HOSTARCHVALUES_X86=vp.HOSTARCHVALUES_PPC64=vp.HOSTARCHVALUES_PPC32=vp.HOSTARCHVALUES_IA64=vp.HOSTARCHVALUES_ARM64=vp.HOSTARCHVALUES_ARM32=vp.HOSTARCHVALUES_AMD64=vp.AwsEcsLaunchtypeValues=vp.AWSECSLAUNCHTYPEVALUES_FARGATE=vp.AWSECSLAUNCHTYPEVALUES_EC2=vp.CloudPlatformValues=vp.CLOUDPLATFORMVALUES_GCP_APP_ENGINE=vp.CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS=vp.CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE=vp.CLOUDPLATFORMVALUES_GCP_CLOUD_RUN=void 0;var iY=W6(),wu="cloud.provider",Xu="cloud.account.id",Vu="cloud.region",Ku="cloud.availability_zone",zu="cloud.platform",$u="aws.ecs.container.arn",Hu="aws.ecs.cluster.arn",Mu="aws.ecs.launchtype",Lu="aws.ecs.task.arn",Nu="aws.ecs.task.family",ju="aws.ecs.task.revision",Ru="aws.eks.cluster.arn",qu="aws.log.group.names",Pu="aws.log.group.arns",Ou="aws.log.stream.names",ku="aws.log.stream.arns",gu="container.name",Tu="container.id",_u="container.runtime",yu="container.image.name",Su="container.image.tag",fu="deployment.environment",hu="device.id",xu="device.model.identifier",vu="device.model.name",bu="faas.name",mu="faas.id",du="faas.version",cu="faas.instance",uu="faas.max_memory",lu="host.id",pu="host.name",iu="host.type",ou="host.arch",nu="host.image.name",su="host.image.id",au="host.image.version",ru="k8s.cluster.name",tu="k8s.node.name",eu="k8s.node.uid",Al="k8s.namespace.name",Ql="k8s.pod.uid",Bl="k8s.pod.name",Il="k8s.container.name",Cl="k8s.replicaset.uid",El="k8s.replicaset.name",Yl="k8s.deployment.uid",Jl="k8s.deployment.name",Fl="k8s.statefulset.uid",Gl="k8s.statefulset.name",Dl="k8s.daemonset.uid",Zl="k8s.daemonset.name",Ul="k8s.job.uid",Wl="k8s.job.name",wl="k8s.cronjob.uid",Xl="k8s.cronjob.name",Vl="os.type",Kl="os.description",zl="os.name",$l="os.version",Hl="process.pid",Ml="process.executable.name",Ll="process.executable.path",Nl="process.command",jl="process.command_line",Rl="process.command_args",ql="process.owner",Pl="process.runtime.name",Ol="process.runtime.version",kl="process.runtime.description",gl="service.name",Tl="service.namespace",_l="service.instance.id",yl="service.version",Sl="telemetry.sdk.name",fl="telemetry.sdk.language",hl="telemetry.sdk.version",xl="telemetry.auto.version",vl="webengine.name",bl="webengine.version",ml="webengine.description";vp.SEMRESATTRS_CLOUD_PROVIDER=wu;vp.SEMRESATTRS_CLOUD_ACCOUNT_ID=Xu;vp.SEMRESATTRS_CLOUD_REGION=Vu;vp.SEMRESATTRS_CLOUD_AVAILABILITY_ZONE=Ku;vp.SEMRESATTRS_CLOUD_PLATFORM=zu;vp.SEMRESATTRS_AWS_ECS_CONTAINER_ARN=$u;vp.SEMRESATTRS_AWS_ECS_CLUSTER_ARN=Hu;vp.SEMRESATTRS_AWS_ECS_LAUNCHTYPE=Mu;vp.SEMRESATTRS_AWS_ECS_TASK_ARN=Lu;vp.SEMRESATTRS_AWS_ECS_TASK_FAMILY=Nu;vp.SEMRESATTRS_AWS_ECS_TASK_REVISION=ju;vp.SEMRESATTRS_AWS_EKS_CLUSTER_ARN=Ru;vp.SEMRESATTRS_AWS_LOG_GROUP_NAMES=qu;vp.SEMRESATTRS_AWS_LOG_GROUP_ARNS=Pu;vp.SEMRESATTRS_AWS_LOG_STREAM_NAMES=Ou;vp.SEMRESATTRS_AWS_LOG_STREAM_ARNS=ku;vp.SEMRESATTRS_CONTAINER_NAME=gu;vp.SEMRESATTRS_CONTAINER_ID=Tu;vp.SEMRESATTRS_CONTAINER_RUNTIME=_u;vp.SEMRESATTRS_CONTAINER_IMAGE_NAME=yu;vp.SEMRESATTRS_CONTAINER_IMAGE_TAG=Su;vp.SEMRESATTRS_DEPLOYMENT_ENVIRONMENT=fu;vp.SEMRESATTRS_DEVICE_ID=hu;vp.SEMRESATTRS_DEVICE_MODEL_IDENTIFIER=xu;vp.SEMRESATTRS_DEVICE_MODEL_NAME=vu;vp.SEMRESATTRS_FAAS_NAME=bu;vp.SEMRESATTRS_FAAS_ID=mu;vp.SEMRESATTRS_FAAS_VERSION=du;vp.SEMRESATTRS_FAAS_INSTANCE=cu;vp.SEMRESATTRS_FAAS_MAX_MEMORY=uu;vp.SEMRESATTRS_HOST_ID=lu;vp.SEMRESATTRS_HOST_NAME=pu;vp.SEMRESATTRS_HOST_TYPE=iu;vp.SEMRESATTRS_HOST_ARCH=ou;vp.SEMRESATTRS_HOST_IMAGE_NAME=nu;vp.SEMRESATTRS_HOST_IMAGE_ID=su;vp.SEMRESATTRS_HOST_IMAGE_VERSION=au;vp.SEMRESATTRS_K8S_CLUSTER_NAME=ru;vp.SEMRESATTRS_K8S_NODE_NAME=tu;vp.SEMRESATTRS_K8S_NODE_UID=eu;vp.SEMRESATTRS_K8S_NAMESPACE_NAME=Al;vp.SEMRESATTRS_K8S_POD_UID=Ql;vp.SEMRESATTRS_K8S_POD_NAME=Bl;vp.SEMRESATTRS_K8S_CONTAINER_NAME=Il;vp.SEMRESATTRS_K8S_REPLICASET_UID=Cl;vp.SEMRESATTRS_K8S_REPLICASET_NAME=El;vp.SEMRESATTRS_K8S_DEPLOYMENT_UID=Yl;vp.SEMRESATTRS_K8S_DEPLOYMENT_NAME=Jl;vp.SEMRESATTRS_K8S_STATEFULSET_UID=Fl;vp.SEMRESATTRS_K8S_STATEFULSET_NAME=Gl;vp.SEMRESATTRS_K8S_DAEMONSET_UID=Dl;vp.SEMRESATTRS_K8S_DAEMONSET_NAME=Zl;vp.SEMRESATTRS_K8S_JOB_UID=Ul;vp.SEMRESATTRS_K8S_JOB_NAME=Wl;vp.SEMRESATTRS_K8S_CRONJOB_UID=wl;vp.SEMRESATTRS_K8S_CRONJOB_NAME=Xl;vp.SEMRESATTRS_OS_TYPE=Vl;vp.SEMRESATTRS_OS_DESCRIPTION=Kl;vp.SEMRESATTRS_OS_NAME=zl;vp.SEMRESATTRS_OS_VERSION=$l;vp.SEMRESATTRS_PROCESS_PID=Hl;vp.SEMRESATTRS_PROCESS_EXECUTABLE_NAME=Ml;vp.SEMRESATTRS_PROCESS_EXECUTABLE_PATH=Ll;vp.SEMRESATTRS_PROCESS_COMMAND=Nl;vp.SEMRESATTRS_PROCESS_COMMAND_LINE=jl;vp.SEMRESATTRS_PROCESS_COMMAND_ARGS=Rl;vp.SEMRESATTRS_PROCESS_OWNER=ql;vp.SEMRESATTRS_PROCESS_RUNTIME_NAME=Pl;vp.SEMRESATTRS_PROCESS_RUNTIME_VERSION=Ol;vp.SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION=kl;vp.SEMRESATTRS_SERVICE_NAME=gl;vp.SEMRESATTRS_SERVICE_NAMESPACE=Tl;vp.SEMRESATTRS_SERVICE_INSTANCE_ID=_l;vp.SEMRESATTRS_SERVICE_VERSION=yl;vp.SEMRESATTRS_TELEMETRY_SDK_NAME=Sl;vp.SEMRESATTRS_TELEMETRY_SDK_LANGUAGE=fl;vp.SEMRESATTRS_TELEMETRY_SDK_VERSION=hl;vp.SEMRESATTRS_TELEMETRY_AUTO_VERSION=xl;vp.SEMRESATTRS_WEBENGINE_NAME=vl;vp.SEMRESATTRS_WEBENGINE_VERSION=bl;vp.SEMRESATTRS_WEBENGINE_DESCRIPTION=ml;vp.SemanticResourceAttributes=(0,iY.createConstMap)([wu,Xu,Vu,Ku,zu,$u,Hu,Mu,Lu,Nu,ju,Ru,qu,Pu,Ou,ku,gu,Tu,_u,yu,Su,fu,hu,xu,vu,bu,mu,du,cu,uu,lu,pu,iu,ou,nu,su,au,ru,tu,eu,Al,Ql,Bl,Il,Cl,El,Yl,Jl,Fl,Gl,Dl,Zl,Ul,Wl,wl,Xl,Vl,Kl,zl,$l,Hl,Ml,Ll,Nl,jl,Rl,ql,Pl,Ol,kl,gl,Tl,_l,yl,Sl,fl,hl,xl,vl,bl,ml]);var dl="alibaba_cloud",cl="aws",ul="azure",ll="gcp";vp.CLOUDPROVIDERVALUES_ALIBABA_CLOUD=dl;vp.CLOUDPROVIDERVALUES_AWS=cl;vp.CLOUDPROVIDERVALUES_AZURE=ul;vp.CLOUDPROVIDERVALUES_GCP=ll;vp.CloudProviderValues=(0,iY.createConstMap)([dl,cl,ul,ll]);var pl="alibaba_cloud_ecs",il="alibaba_cloud_fc",ol="aws_ec2",nl="aws_ecs",sl="aws_eks",al="aws_lambda",rl="aws_elastic_beanstalk",tl="azure_vm",el="azure_container_instances",Ap="azure_aks",Qp="azure_functions",Bp="azure_app_service",Ip="gcp_compute_engine",Cp="gcp_cloud_run",Ep="gcp_kubernetes_engine",Yp="gcp_cloud_functions",Jp="gcp_app_engine";vp.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS=pl;vp.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC=il;vp.CLOUDPLATFORMVALUES_AWS_EC2=ol;vp.CLOUDPLATFORMVALUES_AWS_ECS=nl;vp.CLOUDPLATFORMVALUES_AWS_EKS=sl;vp.CLOUDPLATFORMVALUES_AWS_LAMBDA=al;vp.CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK=rl;vp.CLOUDPLATFORMVALUES_AZURE_VM=tl;vp.CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES=el;vp.CLOUDPLATFORMVALUES_AZURE_AKS=Ap;vp.CLOUDPLATFORMVALUES_AZURE_FUNCTIONS=Qp;vp.CLOUDPLATFORMVALUES_AZURE_APP_SERVICE=Bp;vp.CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE=Ip;vp.CLOUDPLATFORMVALUES_GCP_CLOUD_RUN=Cp;vp.CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE=Ep;vp.CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS=Yp;vp.CLOUDPLATFORMVALUES_GCP_APP_ENGINE=Jp;vp.CloudPlatformValues=(0,iY.createConstMap)([pl,il,ol,nl,sl,al,rl,tl,el,Ap,Qp,Bp,Ip,Cp,Ep,Yp,Jp]);var Fp="ec2",Gp="fargate";vp.AWSECSLAUNCHTYPEVALUES_EC2=Fp;vp.AWSECSLAUNCHTYPEVALUES_FARGATE=Gp;vp.AwsEcsLaunchtypeValues=(0,iY.createConstMap)([Fp,Gp]);var Dp="amd64",Zp="arm32",Up="arm64",Wp="ia64",wp="ppc32",Xp="ppc64",Vp="x86";vp.HOSTARCHVALUES_AMD64=Dp;vp.HOSTARCHVALUES_ARM32=Zp;vp.HOSTARCHVALUES_ARM64=Up;vp.HOSTARCHVALUES_IA64=Wp;vp.HOSTARCHVALUES_PPC32=wp;vp.HOSTARCHVALUES_PPC64=Xp;vp.HOSTARCHVALUES_X86=Vp;vp.HostArchValues=(0,iY.createConstMap)([Dp,Zp,Up,Wp,wp,Xp,Vp]);var Kp="windows",zp="linux",$p="darwin",Hp="freebsd",Mp="netbsd",Lp="openbsd",Np="dragonflybsd",jp="hpux",Rp="aix",qp="solaris",Pp="z_os";vp.OSTYPEVALUES_WINDOWS=Kp;vp.OSTYPEVALUES_LINUX=zp;vp.OSTYPEVALUES_DARWIN=$p;vp.OSTYPEVALUES_FREEBSD=Hp;vp.OSTYPEVALUES_NETBSD=Mp;vp.OSTYPEVALUES_OPENBSD=Lp;vp.OSTYPEVALUES_DRAGONFLYBSD=Np;vp.OSTYPEVALUES_HPUX=jp;vp.OSTYPEVALUES_AIX=Rp;vp.OSTYPEVALUES_SOLARIS=qp;vp.OSTYPEVALUES_Z_OS=Pp;vp.OsTypeValues=(0,iY.createConstMap)([Kp,zp,$p,Hp,Mp,Lp,Np,jp,Rp,qp,Pp]);var Op="cpp",kp="dotnet",gp="erlang",Tp="go",_p="java",yp="nodejs",Sp="php",fp="python",hp="ruby",xp="webjs";vp.TELEMETRYSDKLANGUAGEVALUES_CPP=Op;vp.TELEMETRYSDKLANGUAGEVALUES_DOTNET=kp;vp.TELEMETRYSDKLANGUAGEVALUES_ERLANG=gp;vp.TELEMETRYSDKLANGUAGEVALUES_GO=Tp;vp.TELEMETRYSDKLANGUAGEVALUES_JAVA=_p;vp.TELEMETRYSDKLANGUAGEVALUES_NODEJS=yp;vp.TELEMETRYSDKLANGUAGEVALUES_PHP=Sp;vp.TELEMETRYSDKLANGUAGEVALUES_PYTHON=fp;vp.TELEMETRYSDKLANGUAGEVALUES_RUBY=hp;vp.TELEMETRYSDKLANGUAGEVALUES_WEBJS=xp;vp.TelemetrySdkLanguageValues=(0,iY.createConstMap)([Op,kp,gp,Tp,_p,yp,Sp,fp,hp,xp])});var up=z((oY)=>{var EqA=oY&&oY.__createBinding||(Object.create?function(A,Q,B,I){if(I===void 0)I=B;var C=Object.getOwnPropertyDescriptor(Q,B);if(!C||("get"in C?!Q.__esModule:C.writable||C.configurable))C={enumerable:!0,get:function(){return Q[B]}};Object.defineProperty(A,I,C)}:function(A,Q,B,I){if(I===void 0)I=B;A[I]=Q[B]}),YqA=oY&&oY.__exportStar||function(A,Q){for(var B in A)if(B!=="default"&&!Object.prototype.hasOwnProperty.call(Q,B))EqA(Q,A,B)};Object.defineProperty(oY,"__esModule",{value:!0});YqA(cp(),oY)});var np=z((lp)=>{Object.defineProperty(lp,"__esModule",{value:!0});lp.ATTR_EXCEPTION_TYPE=lp.ATTR_EXCEPTION_STACKTRACE=lp.ATTR_EXCEPTION_MESSAGE=lp.ATTR_EXCEPTION_ESCAPED=lp.ERROR_TYPE_VALUE_OTHER=lp.ATTR_ERROR_TYPE=lp.DOTNET_GC_HEAP_GENERATION_VALUE_POH=lp.DOTNET_GC_HEAP_GENERATION_VALUE_LOH=lp.DOTNET_GC_HEAP_GENERATION_VALUE_GEN2=lp.DOTNET_GC_HEAP_GENERATION_VALUE_GEN1=lp.DOTNET_GC_HEAP_GENERATION_VALUE_GEN0=lp.ATTR_DOTNET_GC_HEAP_GENERATION=lp.DB_SYSTEM_NAME_VALUE_POSTGRESQL=lp.DB_SYSTEM_NAME_VALUE_MYSQL=lp.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER=lp.DB_SYSTEM_NAME_VALUE_MARIADB=lp.ATTR_DB_SYSTEM_NAME=lp.ATTR_DB_STORED_PROCEDURE_NAME=lp.ATTR_DB_RESPONSE_STATUS_CODE=lp.ATTR_DB_QUERY_TEXT=lp.ATTR_DB_QUERY_SUMMARY=lp.ATTR_DB_OPERATION_NAME=lp.ATTR_DB_OPERATION_BATCH_SIZE=lp.ATTR_DB_NAMESPACE=lp.ATTR_DB_COLLECTION_NAME=lp.ATTR_CODE_STACKTRACE=lp.ATTR_CODE_LINE_NUMBER=lp.ATTR_CODE_FUNCTION_NAME=lp.ATTR_CODE_FILE_PATH=lp.ATTR_CODE_COLUMN_NUMBER=lp.ATTR_CLIENT_PORT=lp.ATTR_CLIENT_ADDRESS=lp.ATTR_ASPNETCORE_USER_IS_AUTHENTICATED=lp.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS=lp.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE=lp.ATTR_ASPNETCORE_ROUTING_MATCH_STATUS=lp.ATTR_ASPNETCORE_ROUTING_IS_FALLBACK=lp.ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED=lp.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED=lp.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER=lp.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER=lp.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED=lp.ATTR_ASPNETCORE_RATE_LIMITING_RESULT=lp.ATTR_ASPNETCORE_RATE_LIMITING_POLICY=lp.ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE=lp.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED=lp.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED=lp.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED=lp.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED=lp.ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT=void 0;lp.OTEL_STATUS_CODE_VALUE_ERROR=lp.ATTR_OTEL_STATUS_CODE=lp.ATTR_OTEL_SCOPE_VERSION=lp.ATTR_OTEL_SCOPE_NAME=lp.NETWORK_TYPE_VALUE_IPV6=lp.NETWORK_TYPE_VALUE_IPV4=lp.ATTR_NETWORK_TYPE=lp.NETWORK_TRANSPORT_VALUE_UNIX=lp.NETWORK_TRANSPORT_VALUE_UDP=lp.NETWORK_TRANSPORT_VALUE_TCP=lp.NETWORK_TRANSPORT_VALUE_QUIC=lp.NETWORK_TRANSPORT_VALUE_PIPE=lp.ATTR_NETWORK_TRANSPORT=lp.ATTR_NETWORK_PROTOCOL_VERSION=lp.ATTR_NETWORK_PROTOCOL_NAME=lp.ATTR_NETWORK_PEER_PORT=lp.ATTR_NETWORK_PEER_ADDRESS=lp.ATTR_NETWORK_LOCAL_PORT=lp.ATTR_NETWORK_LOCAL_ADDRESS=lp.JVM_THREAD_STATE_VALUE_WAITING=lp.JVM_THREAD_STATE_VALUE_TIMED_WAITING=lp.JVM_THREAD_STATE_VALUE_TERMINATED=lp.JVM_THREAD_STATE_VALUE_RUNNABLE=lp.JVM_THREAD_STATE_VALUE_NEW=lp.JVM_THREAD_STATE_VALUE_BLOCKED=lp.ATTR_JVM_THREAD_STATE=lp.ATTR_JVM_THREAD_DAEMON=lp.JVM_MEMORY_TYPE_VALUE_NON_HEAP=lp.JVM_MEMORY_TYPE_VALUE_HEAP=lp.ATTR_JVM_MEMORY_TYPE=lp.ATTR_JVM_MEMORY_POOL_NAME=lp.ATTR_JVM_GC_NAME=lp.ATTR_JVM_GC_ACTION=lp.ATTR_HTTP_ROUTE=lp.ATTR_HTTP_RESPONSE_STATUS_CODE=lp.ATTR_HTTP_RESPONSE_HEADER=lp.ATTR_HTTP_REQUEST_RESEND_COUNT=lp.ATTR_HTTP_REQUEST_METHOD_ORIGINAL=lp.HTTP_REQUEST_METHOD_VALUE_TRACE=lp.HTTP_REQUEST_METHOD_VALUE_PUT=lp.HTTP_REQUEST_METHOD_VALUE_POST=lp.HTTP_REQUEST_METHOD_VALUE_PATCH=lp.HTTP_REQUEST_METHOD_VALUE_OPTIONS=lp.HTTP_REQUEST_METHOD_VALUE_HEAD=lp.HTTP_REQUEST_METHOD_VALUE_GET=lp.HTTP_REQUEST_METHOD_VALUE_DELETE=lp.HTTP_REQUEST_METHOD_VALUE_CONNECT=lp.HTTP_REQUEST_METHOD_VALUE_OTHER=lp.ATTR_HTTP_REQUEST_METHOD=lp.ATTR_HTTP_REQUEST_HEADER=void 0;lp.ATTR_USER_AGENT_ORIGINAL=lp.ATTR_URL_SCHEME=lp.ATTR_URL_QUERY=lp.ATTR_URL_PATH=lp.ATTR_URL_FULL=lp.ATTR_URL_FRAGMENT=lp.ATTR_TELEMETRY_SDK_VERSION=lp.ATTR_TELEMETRY_SDK_NAME=lp.TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS=lp.TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT=lp.TELEMETRY_SDK_LANGUAGE_VALUE_RUST=lp.TELEMETRY_SDK_LANGUAGE_VALUE_RUBY=lp.TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON=lp.TELEMETRY_SDK_LANGUAGE_VALUE_PHP=lp.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS=lp.TELEMETRY_SDK_LANGUAGE_VALUE_JAVA=lp.TELEMETRY_SDK_LANGUAGE_VALUE_GO=lp.TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG=lp.TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET=lp.TELEMETRY_SDK_LANGUAGE_VALUE_CPP=lp.ATTR_TELEMETRY_SDK_LANGUAGE=lp.SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS=lp.SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS=lp.SIGNALR_TRANSPORT_VALUE_LONG_POLLING=lp.ATTR_SIGNALR_TRANSPORT=lp.SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT=lp.SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE=lp.SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN=lp.ATTR_SIGNALR_CONNECTION_STATUS=lp.ATTR_SERVICE_VERSION=lp.ATTR_SERVICE_NAMESPACE=lp.ATTR_SERVICE_NAME=lp.ATTR_SERVICE_INSTANCE_ID=lp.ATTR_SERVER_PORT=lp.ATTR_SERVER_ADDRESS=lp.ATTR_OTEL_STATUS_DESCRIPTION=lp.OTEL_STATUS_CODE_VALUE_OK=void 0;lp.ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT="aspnetcore.diagnostics.exception.result";lp.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED="aborted";lp.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED="handled";lp.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED="skipped";lp.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED="unhandled";lp.ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE="aspnetcore.diagnostics.handler.type";lp.ATTR_ASPNETCORE_RATE_LIMITING_POLICY="aspnetcore.rate_limiting.policy";lp.ATTR_ASPNETCORE_RATE_LIMITING_RESULT="aspnetcore.rate_limiting.result";lp.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED="acquired";lp.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER="endpoint_limiter";lp.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER="global_limiter";lp.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED="request_canceled";lp.ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED="aspnetcore.request.is_unhandled";lp.ATTR_ASPNETCORE_ROUTING_IS_FALLBACK="aspnetcore.routing.is_fallback";lp.ATTR_ASPNETCORE_ROUTING_MATCH_STATUS="aspnetcore.routing.match_status";lp.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE="failure";lp.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS="success";lp.ATTR_ASPNETCORE_USER_IS_AUTHENTICATED="aspnetcore.user.is_authenticated";lp.ATTR_CLIENT_ADDRESS="client.address";lp.ATTR_CLIENT_PORT="client.port";lp.ATTR_CODE_COLUMN_NUMBER="code.column.number";lp.ATTR_CODE_FILE_PATH="code.file.path";lp.ATTR_CODE_FUNCTION_NAME="code.function.name";lp.ATTR_CODE_LINE_NUMBER="code.line.number";lp.ATTR_CODE_STACKTRACE="code.stacktrace";lp.ATTR_DB_COLLECTION_NAME="db.collection.name";lp.ATTR_DB_NAMESPACE="db.namespace";lp.ATTR_DB_OPERATION_BATCH_SIZE="db.operation.batch.size";lp.ATTR_DB_OPERATION_NAME="db.operation.name";lp.ATTR_DB_QUERY_SUMMARY="db.query.summary";lp.ATTR_DB_QUERY_TEXT="db.query.text";lp.ATTR_DB_RESPONSE_STATUS_CODE="db.response.status_code";lp.ATTR_DB_STORED_PROCEDURE_NAME="db.stored_procedure.name";lp.ATTR_DB_SYSTEM_NAME="db.system.name";lp.DB_SYSTEM_NAME_VALUE_MARIADB="mariadb";lp.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER="microsoft.sql_server";lp.DB_SYSTEM_NAME_VALUE_MYSQL="mysql";lp.DB_SYSTEM_NAME_VALUE_POSTGRESQL="postgresql";lp.ATTR_DOTNET_GC_HEAP_GENERATION="dotnet.gc.heap.generation";lp.DOTNET_GC_HEAP_GENERATION_VALUE_GEN0="gen0";lp.DOTNET_GC_HEAP_GENERATION_VALUE_GEN1="gen1";lp.DOTNET_GC_HEAP_GENERATION_VALUE_GEN2="gen2";lp.DOTNET_GC_HEAP_GENERATION_VALUE_LOH="loh";lp.DOTNET_GC_HEAP_GENERATION_VALUE_POH="poh";lp.ATTR_ERROR_TYPE="error.type";lp.ERROR_TYPE_VALUE_OTHER="_OTHER";lp.ATTR_EXCEPTION_ESCAPED="exception.escaped";lp.ATTR_EXCEPTION_MESSAGE="exception.message";lp.ATTR_EXCEPTION_STACKTRACE="exception.stacktrace";lp.ATTR_EXCEPTION_TYPE="exception.type";var JqA=(A)=>`http.request.header.${A}`;lp.ATTR_HTTP_REQUEST_HEADER=JqA;lp.ATTR_HTTP_REQUEST_METHOD="http.request.method";lp.HTTP_REQUEST_METHOD_VALUE_OTHER="_OTHER";lp.HTTP_REQUEST_METHOD_VALUE_CONNECT="CONNECT";lp.HTTP_REQUEST_METHOD_VALUE_DELETE="DELETE";lp.HTTP_REQUEST_METHOD_VALUE_GET="GET";lp.HTTP_REQUEST_METHOD_VALUE_HEAD="HEAD";lp.HTTP_REQUEST_METHOD_VALUE_OPTIONS="OPTIONS";lp.HTTP_REQUEST_METHOD_VALUE_PATCH="PATCH";lp.HTTP_REQUEST_METHOD_VALUE_POST="POST";lp.HTTP_REQUEST_METHOD_VALUE_PUT="PUT";lp.HTTP_REQUEST_METHOD_VALUE_TRACE="TRACE";lp.ATTR_HTTP_REQUEST_METHOD_ORIGINAL="http.request.method_original";lp.ATTR_HTTP_REQUEST_RESEND_COUNT="http.request.resend_count";var FqA=(A)=>`http.response.header.${A}`;lp.ATTR_HTTP_RESPONSE_HEADER=FqA;lp.ATTR_HTTP_RESPONSE_STATUS_CODE="http.response.status_code";lp.ATTR_HTTP_ROUTE="http.route";lp.ATTR_JVM_GC_ACTION="jvm.gc.action";lp.ATTR_JVM_GC_NAME="jvm.gc.name";lp.ATTR_JVM_MEMORY_POOL_NAME="jvm.memory.pool.name";lp.ATTR_JVM_MEMORY_TYPE="jvm.memory.type";lp.JVM_MEMORY_TYPE_VALUE_HEAP="heap";lp.JVM_MEMORY_TYPE_VALUE_NON_HEAP="non_heap";lp.ATTR_JVM_THREAD_DAEMON="jvm.thread.daemon";lp.ATTR_JVM_THREAD_STATE="jvm.thread.state";lp.JVM_THREAD_STATE_VALUE_BLOCKED="blocked";lp.JVM_THREAD_STATE_VALUE_NEW="new";lp.JVM_THREAD_STATE_VALUE_RUNNABLE="runnable";lp.JVM_THREAD_STATE_VALUE_TERMINATED="terminated";lp.JVM_THREAD_STATE_VALUE_TIMED_WAITING="timed_waiting";lp.JVM_THREAD_STATE_VALUE_WAITING="waiting";lp.ATTR_NETWORK_LOCAL_ADDRESS="network.local.address";lp.ATTR_NETWORK_LOCAL_PORT="network.local.port";lp.ATTR_NETWORK_PEER_ADDRESS="network.peer.address";lp.ATTR_NETWORK_PEER_PORT="network.peer.port";lp.ATTR_NETWORK_PROTOCOL_NAME="network.protocol.name";lp.ATTR_NETWORK_PROTOCOL_VERSION="network.protocol.version";lp.ATTR_NETWORK_TRANSPORT="network.transport";lp.NETWORK_TRANSPORT_VALUE_PIPE="pipe";lp.NETWORK_TRANSPORT_VALUE_QUIC="quic";lp.NETWORK_TRANSPORT_VALUE_TCP="tcp";lp.NETWORK_TRANSPORT_VALUE_UDP="udp";lp.NETWORK_TRANSPORT_VALUE_UNIX="unix";lp.ATTR_NETWORK_TYPE="network.type";lp.NETWORK_TYPE_VALUE_IPV4="ipv4";lp.NETWORK_TYPE_VALUE_IPV6="ipv6";lp.ATTR_OTEL_SCOPE_NAME="otel.scope.name";lp.ATTR_OTEL_SCOPE_VERSION="otel.scope.version";lp.ATTR_OTEL_STATUS_CODE="otel.status_code";lp.OTEL_STATUS_CODE_VALUE_ERROR="ERROR";lp.OTEL_STATUS_CODE_VALUE_OK="OK";lp.ATTR_OTEL_STATUS_DESCRIPTION="otel.status_description";lp.ATTR_SERVER_ADDRESS="server.address";lp.ATTR_SERVER_PORT="server.port";lp.ATTR_SERVICE_INSTANCE_ID="service.instance.id";lp.ATTR_SERVICE_NAME="service.name";lp.ATTR_SERVICE_NAMESPACE="service.namespace";lp.ATTR_SERVICE_VERSION="service.version";lp.ATTR_SIGNALR_CONNECTION_STATUS="signalr.connection.status";lp.SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN="app_shutdown";lp.SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE="normal_closure";lp.SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT="timeout";lp.ATTR_SIGNALR_TRANSPORT="signalr.transport";lp.SIGNALR_TRANSPORT_VALUE_LONG_POLLING="long_polling";lp.SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS="server_sent_events";lp.SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS="web_sockets";lp.ATTR_TELEMETRY_SDK_LANGUAGE="telemetry.sdk.language";lp.TELEMETRY_SDK_LANGUAGE_VALUE_CPP="cpp";lp.TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET="dotnet";lp.TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG="erlang";lp.TELEMETRY_SDK_LANGUAGE_VALUE_GO="go";lp.TELEMETRY_SDK_LANGUAGE_VALUE_JAVA="java";lp.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS="nodejs";lp.TELEMETRY_SDK_LANGUAGE_VALUE_PHP="php";lp.TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON="python";lp.TELEMETRY_SDK_LANGUAGE_VALUE_RUBY="ruby";lp.TELEMETRY_SDK_LANGUAGE_VALUE_RUST="rust";lp.TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT="swift";lp.TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS="webjs";lp.ATTR_TELEMETRY_SDK_NAME="telemetry.sdk.name";lp.ATTR_TELEMETRY_SDK_VERSION="telemetry.sdk.version";lp.ATTR_URL_FRAGMENT="url.fragment";lp.ATTR_URL_FULL="url.full";lp.ATTR_URL_PATH="url.path";lp.ATTR_URL_QUERY="url.query";lp.ATTR_URL_SCHEME="url.scheme";lp.ATTR_USER_AGENT_ORIGINAL="user_agent.original"});var tp=z((sp)=>{Object.defineProperty(sp,"__esModule",{value:!0});sp.METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS=sp.METRIC_KESTREL_UPGRADED_CONNECTIONS=sp.METRIC_KESTREL_TLS_HANDSHAKE_DURATION=sp.METRIC_KESTREL_REJECTED_CONNECTIONS=sp.METRIC_KESTREL_QUEUED_REQUESTS=sp.METRIC_KESTREL_QUEUED_CONNECTIONS=sp.METRIC_KESTREL_CONNECTION_DURATION=sp.METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES=sp.METRIC_KESTREL_ACTIVE_CONNECTIONS=sp.METRIC_JVM_THREAD_COUNT=sp.METRIC_JVM_MEMORY_USED_AFTER_LAST_GC=sp.METRIC_JVM_MEMORY_USED=sp.METRIC_JVM_MEMORY_LIMIT=sp.METRIC_JVM_MEMORY_COMMITTED=sp.METRIC_JVM_GC_DURATION=sp.METRIC_JVM_CPU_TIME=sp.METRIC_JVM_CPU_RECENT_UTILIZATION=sp.METRIC_JVM_CPU_COUNT=sp.METRIC_JVM_CLASS_UNLOADED=sp.METRIC_JVM_CLASS_LOADED=sp.METRIC_JVM_CLASS_COUNT=sp.METRIC_HTTP_SERVER_REQUEST_DURATION=sp.METRIC_HTTP_CLIENT_REQUEST_DURATION=sp.METRIC_DOTNET_TIMER_COUNT=sp.METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT=sp.METRIC_DOTNET_THREAD_POOL_THREAD_COUNT=sp.METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH=sp.METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET=sp.METRIC_DOTNET_PROCESS_CPU_TIME=sp.METRIC_DOTNET_PROCESS_CPU_COUNT=sp.METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS=sp.METRIC_DOTNET_JIT_COMPILED_METHODS=sp.METRIC_DOTNET_JIT_COMPILED_IL_SIZE=sp.METRIC_DOTNET_JIT_COMPILATION_TIME=sp.METRIC_DOTNET_GC_PAUSE_TIME=sp.METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE=sp.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE=sp.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE=sp.METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED=sp.METRIC_DOTNET_GC_COLLECTIONS=sp.METRIC_DOTNET_EXCEPTIONS=sp.METRIC_DOTNET_ASSEMBLY_COUNT=sp.METRIC_DB_CLIENT_OPERATION_DURATION=sp.METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS=sp.METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS=sp.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION=sp.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE=sp.METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS=sp.METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES=sp.METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS=void 0;sp.METRIC_SIGNALR_SERVER_CONNECTION_DURATION=void 0;sp.METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS="aspnetcore.diagnostics.exceptions";sp.METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES="aspnetcore.rate_limiting.active_request_leases";sp.METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS="aspnetcore.rate_limiting.queued_requests";sp.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE="aspnetcore.rate_limiting.request.time_in_queue";sp.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION="aspnetcore.rate_limiting.request_lease.duration";sp.METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS="aspnetcore.rate_limiting.requests";sp.METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS="aspnetcore.routing.match_attempts";sp.METRIC_DB_CLIENT_OPERATION_DURATION="db.client.operation.duration";sp.METRIC_DOTNET_ASSEMBLY_COUNT="dotnet.assembly.count";sp.METRIC_DOTNET_EXCEPTIONS="dotnet.exceptions";sp.METRIC_DOTNET_GC_COLLECTIONS="dotnet.gc.collections";sp.METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED="dotnet.gc.heap.total_allocated";sp.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE="dotnet.gc.last_collection.heap.fragmentation.size";sp.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE="dotnet.gc.last_collection.heap.size";sp.METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE="dotnet.gc.last_collection.memory.committed_size";sp.METRIC_DOTNET_GC_PAUSE_TIME="dotnet.gc.pause.time";sp.METRIC_DOTNET_JIT_COMPILATION_TIME="dotnet.jit.compilation.time";sp.METRIC_DOTNET_JIT_COMPILED_IL_SIZE="dotnet.jit.compiled_il.size";sp.METRIC_DOTNET_JIT_COMPILED_METHODS="dotnet.jit.compiled_methods";sp.METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS="dotnet.monitor.lock_contentions";sp.METRIC_DOTNET_PROCESS_CPU_COUNT="dotnet.process.cpu.count";sp.METRIC_DOTNET_PROCESS_CPU_TIME="dotnet.process.cpu.time";sp.METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET="dotnet.process.memory.working_set";sp.METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH="dotnet.thread_pool.queue.length";sp.METRIC_DOTNET_THREAD_POOL_THREAD_COUNT="dotnet.thread_pool.thread.count";sp.METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT="dotnet.thread_pool.work_item.count";sp.METRIC_DOTNET_TIMER_COUNT="dotnet.timer.count";sp.METRIC_HTTP_CLIENT_REQUEST_DURATION="http.client.request.duration";sp.METRIC_HTTP_SERVER_REQUEST_DURATION="http.server.request.duration";sp.METRIC_JVM_CLASS_COUNT="jvm.class.count";sp.METRIC_JVM_CLASS_LOADED="jvm.class.loaded";sp.METRIC_JVM_CLASS_UNLOADED="jvm.class.unloaded";sp.METRIC_JVM_CPU_COUNT="jvm.cpu.count";sp.METRIC_JVM_CPU_RECENT_UTILIZATION="jvm.cpu.recent_utilization";sp.METRIC_JVM_CPU_TIME="jvm.cpu.time";sp.METRIC_JVM_GC_DURATION="jvm.gc.duration";sp.METRIC_JVM_MEMORY_COMMITTED="jvm.memory.committed";sp.METRIC_JVM_MEMORY_LIMIT="jvm.memory.limit";sp.METRIC_JVM_MEMORY_USED="jvm.memory.used";sp.METRIC_JVM_MEMORY_USED_AFTER_LAST_GC="jvm.memory.used_after_last_gc";sp.METRIC_JVM_THREAD_COUNT="jvm.thread.count";sp.METRIC_KESTREL_ACTIVE_CONNECTIONS="kestrel.active_connections";sp.METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES="kestrel.active_tls_handshakes";sp.METRIC_KESTREL_CONNECTION_DURATION="kestrel.connection.duration";sp.METRIC_KESTREL_QUEUED_CONNECTIONS="kestrel.queued_connections";sp.METRIC_KESTREL_QUEUED_REQUESTS="kestrel.queued_requests";sp.METRIC_KESTREL_REJECTED_CONNECTIONS="kestrel.rejected_connections";sp.METRIC_KESTREL_TLS_HANDSHAKE_DURATION="kestrel.tls_handshake.duration";sp.METRIC_KESTREL_UPGRADED_CONNECTIONS="kestrel.upgraded_connections";sp.METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS="signalr.server.active_connections";sp.METRIC_SIGNALR_SERVER_CONNECTION_DURATION="signalr.server.connection.duration"});var Qi=z((ep)=>{Object.defineProperty(ep,"__esModule",{value:!0});ep.EVENT_EXCEPTION=void 0;ep.EVENT_EXCEPTION="exception"});var tB=z((lI)=>{var gkA=lI&&lI.__createBinding||(Object.create?function(A,Q,B,I){if(I===void 0)I=B;var C=Object.getOwnPropertyDescriptor(Q,B);if(!C||("get"in C?!Q.__esModule:C.writable||C.configurable))C={enumerable:!0,get:function(){return Q[B]}};Object.defineProperty(A,I,C)}:function(A,Q,B,I){if(I===void 0)I=B;A[I]=Q[B]}),IU=lI&&lI.__exportStar||function(A,Q){for(var B in A)if(B!=="default"&&!Object.prototype.hasOwnProperty.call(Q,B))gkA(Q,A,B)};Object.defineProperty(lI,"__esModule",{value:!0});IU(Wu(),lI);IU(up(),lI);IU(np(),lI);IU(tp(),lI);IU(Qi(),lI)});var Ci=z((Bi)=>{Object.defineProperty(Bi,"__esModule",{value:!0});Bi.ATTR_PROCESS_RUNTIME_NAME=void 0;Bi.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var Ji=z((Ei)=>{Object.defineProperty(Ei,"__esModule",{value:!0});Ei.SDK_INFO=void 0;var TkA=Wv(),Y2=tB(),_kA=Ci();Ei.SDK_INFO={[Y2.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[_kA.ATTR_PROCESS_RUNTIME_NAME]:"node",[Y2.ATTR_TELEMETRY_SDK_LANGUAGE]:Y2.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[Y2.ATTR_TELEMETRY_SDK_VERSION]:TkA.VERSION}});var Gi=z((L0)=>{Object.defineProperty(L0,"__esModule",{value:!0});L0.otperformance=L0.SDK_INFO=L0._globalThis=L0.getStringListFromEnv=L0.getNumberFromEnv=L0.getBooleanFromEnv=L0.getStringFromEnv=void 0;var J2=Jv();Object.defineProperty(L0,"getStringFromEnv",{enumerable:!0,get:function(){return J2.getStringFromEnv}});Object.defineProperty(L0,"getBooleanFromEnv",{enumerable:!0,get:function(){return J2.getBooleanFromEnv}});Object.defineProperty(L0,"getNumberFromEnv",{enumerable:!0,get:function(){return J2.getNumberFromEnv}});Object.defineProperty(L0,"getStringListFromEnv",{enumerable:!0,get:function(){return J2.getStringListFromEnv}});var ykA=Dv();Object.defineProperty(L0,"_globalThis",{enumerable:!0,get:function(){return ykA._globalThis}});var SkA=Ji();Object.defineProperty(L0,"SDK_INFO",{enumerable:!0,get:function(){return SkA.SDK_INFO}});L0.otperformance=performance});var w6=z((WE)=>{Object.defineProperty(WE,"__esModule",{value:!0});WE.getStringListFromEnv=WE.getNumberFromEnv=WE.getStringFromEnv=WE.getBooleanFromEnv=WE.otperformance=WE._globalThis=WE.SDK_INFO=void 0;var nY=Gi();Object.defineProperty(WE,"SDK_INFO",{enumerable:!0,get:function(){return nY.SDK_INFO}});Object.defineProperty(WE,"_globalThis",{enumerable:!0,get:function(){return nY._globalThis}});Object.defineProperty(WE,"otperformance",{enumerable:!0,get:function(){return nY.otperformance}});Object.defineProperty(WE,"getBooleanFromEnv",{enumerable:!0,get:function(){return nY.getBooleanFromEnv}});Object.defineProperty(WE,"getStringFromEnv",{enumerable:!0,get:function(){return nY.getStringFromEnv}});Object.defineProperty(WE,"getNumberFromEnv",{enumerable:!0,get:function(){return nY.getNumberFromEnv}});Object.defineProperty(WE,"getStringListFromEnv",{enumerable:!0,get:function(){return nY.getStringListFromEnv}})});var Xi=z((Wi)=>{Object.defineProperty(Wi,"__esModule",{value:!0});Wi.addHrTimes=Wi.isTimeInput=Wi.isTimeInputHrTime=Wi.hrTimeToMicroseconds=Wi.hrTimeToMilliseconds=Wi.hrTimeToNanoseconds=Wi.hrTimeToTimeStamp=Wi.hrTimeDuration=Wi.timeInputToHrTime=Wi.hrTime=Wi.getTimeOrigin=Wi.millisToHrTime=void 0;var F2=w6(),Di=9,hkA=6,xkA=Math.pow(10,hkA),G2=Math.pow(10,Di);function CU(A){let Q=A/1000,B=Math.trunc(Q),I=Math.round(A%1000*xkA);return[B,I]}Wi.millisToHrTime=CU;function vkA(){return F2.otperformance.timeOrigin}Wi.getTimeOrigin=vkA;function Zi(A){let Q=CU(F2.otperformance.timeOrigin),B=CU(typeof A==="number"?A:F2.otperformance.now());return Ui(Q,B)}Wi.hrTime=Zi;function bkA(A){if(X6(A))return A;else if(typeof A==="number")if(A=G2)B[1]-=G2,B[0]+=1;return B}Wi.addHrTimes=Ui});var zi=z((Vi)=>{Object.defineProperty(Vi,"__esModule",{value:!0});Vi.unrefTimer=void 0;function IgA(A){if(typeof A!=="number")A.unref()}Vi.unrefTimer=IgA});var Hi=z(($i)=>{Object.defineProperty($i,"__esModule",{value:!0});$i.ExportResultCode=void 0;var CgA;(function(A){A[A.SUCCESS=0]="SUCCESS",A[A.FAILED=1]="FAILED"})(CgA=$i.ExportResultCode||($i.ExportResultCode={}))});var Ri=z((Ni)=>{Object.defineProperty(Ni,"__esModule",{value:!0});Ni.CompositePropagator=void 0;var Mi=AA();class Li{_propagators;_fields;constructor(A={}){this._propagators=A.propagators??[],this._fields=Array.from(new Set(this._propagators.map((Q)=>typeof Q.fields==="function"?Q.fields():[]).reduce((Q,B)=>Q.concat(B),[])))}inject(A,Q,B){for(let I of this._propagators)try{I.inject(A,Q,B)}catch(C){Mi.diag.warn(`Failed to inject with ${I.constructor.name}. Err: ${C.message}`)}}extract(A,Q,B){return this._propagators.reduce((I,C)=>{try{return C.extract(I,Q,B)}catch(E){Mi.diag.warn(`Failed to extract with ${C.constructor.name}. Err: ${E.message}`)}return I},A)}fields(){return this._fields.slice()}}Ni.CompositePropagator=Li});var Oi=z((qi)=>{Object.defineProperty(qi,"__esModule",{value:!0});qi.validateValue=qi.validateKey=void 0;var K6="[_0-9a-z-*/]",EgA=`[a-z]${K6}{0,255}`,YgA=`[a-z0-9]${K6}{0,240}@[a-z]${K6}{0,13}`,JgA=new RegExp(`^(?:${EgA}|${YgA})$`),FgA=/^[ -~]{0,255}[!-~]$/,GgA=/,|=/;function DgA(A){return JgA.test(A)}qi.validateKey=DgA;function ZgA(A){return FgA.test(A)&&!GgA.test(A)}qi.validateValue=ZgA});var $6=z((yi)=>{Object.defineProperty(yi,"__esModule",{value:!0});yi.TraceState=void 0;var ki=Oi(),gi=32,WgA=512,Ti=",",_i="=";class z6{_internalState=new Map;constructor(A){if(A)this._parse(A)}set(A,Q){let B=this._clone();if(B._internalState.has(A))B._internalState.delete(A);return B._internalState.set(A,Q),B}unset(A){let Q=this._clone();return Q._internalState.delete(A),Q}get(A){return this._internalState.get(A)}serialize(){return this._keys().reduce((A,Q)=>{return A.push(Q+_i+this.get(Q)),A},[]).join(Ti)}_parse(A){if(A.length>WgA)return;if(this._internalState=A.split(Ti).reverse().reduce((Q,B)=>{let I=B.trim(),C=I.indexOf(_i);if(C!==-1){let E=I.slice(0,C),Y=I.slice(C+1,B.length);if((0,ki.validateKey)(E)&&(0,ki.validateValue)(Y))Q.set(E,Y)}return Q},new Map),this._internalState.size>gi)this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,gi))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let A=new z6;return A._internalState=new Map(this._internalState),A}}yi.TraceState=z6});var bi=z((xi)=>{Object.defineProperty(xi,"__esModule",{value:!0});xi.W3CTraceContextPropagator=xi.parseTraceParent=xi.TRACE_STATE_HEADER=xi.TRACE_PARENT_HEADER=void 0;var D2=AA(),wgA=BU(),XgA=$6();xi.TRACE_PARENT_HEADER="traceparent";xi.TRACE_STATE_HEADER="tracestate";var VgA="00",KgA="(?!ff)[\\da-f]{2}",zgA="(?![0]{32})[\\da-f]{32}",$gA="(?![0]{16})[\\da-f]{16}",HgA="[\\da-f]{2}",MgA=new RegExp(`^\\s?(${KgA})-(${zgA})-(${$gA})-(${HgA})(-.*)?\\s?$`);function fi(A){let Q=MgA.exec(A);if(!Q)return null;if(Q[1]==="00"&&Q[5])return null;return{traceId:Q[2],spanId:Q[3],traceFlags:parseInt(Q[4],16)}}xi.parseTraceParent=fi;class hi{inject(A,Q,B){let I=D2.trace.getSpanContext(A);if(!I||(0,wgA.isTracingSuppressed)(A)||!(0,D2.isSpanContextValid)(I))return;let C=`${VgA}-${I.traceId}-${I.spanId}-0${Number(I.traceFlags||D2.TraceFlags.NONE).toString(16)}`;if(B.set(Q,xi.TRACE_PARENT_HEADER,C),I.traceState)B.set(Q,xi.TRACE_STATE_HEADER,I.traceState.serialize())}extract(A,Q,B){let I=B.get(Q,xi.TRACE_PARENT_HEADER);if(!I)return A;let C=Array.isArray(I)?I[0]:I;if(typeof C!=="string")return A;let E=fi(C);if(!E)return A;E.isRemote=!0;let Y=B.get(Q,xi.TRACE_STATE_HEADER);if(Y){let J=Array.isArray(Y)?Y.join(","):Y;E.traceState=new XgA.TraceState(typeof J==="string"?J:void 0)}return D2.trace.setSpanContext(A,E)}fields(){return[xi.TRACE_PARENT_HEADER,xi.TRACE_STATE_HEADER]}}xi.W3CTraceContextPropagator=hi});var ui=z((di)=>{Object.defineProperty(di,"__esModule",{value:!0});di.getRPCMetadata=di.deleteRPCMetadata=di.setRPCMetadata=di.RPCType=void 0;var NgA=AA(),H6=(0,NgA.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),jgA;(function(A){A.HTTP="http"})(jgA=di.RPCType||(di.RPCType={}));function RgA(A,Q){return A.setValue(H6,Q)}di.setRPCMetadata=RgA;function qgA(A){return A.deleteValue(H6)}di.deleteRPCMetadata=qgA;function PgA(A){return A.getValue(H6)}di.getRPCMetadata=PgA});var ai=z((ni)=>{Object.defineProperty(ni,"__esModule",{value:!0});ni.isPlainObject=void 0;var ggA="[object Object]",TgA="[object Null]",_gA="[object Undefined]",ygA=Function.prototype,li=ygA.toString,SgA=li.call(Object),fgA=Object.getPrototypeOf,pi=Object.prototype,ii=pi.hasOwnProperty,sY=Symbol?Symbol.toStringTag:void 0,oi=pi.toString;function hgA(A){if(!xgA(A)||vgA(A)!==ggA)return!1;let Q=fgA(A);if(Q===null)return!0;let B=ii.call(Q,"constructor")&&Q.constructor;return typeof B=="function"&&B instanceof B&&li.call(B)===SgA}ni.isPlainObject=hgA;function xgA(A){return A!=null&&typeof A=="object"}function vgA(A){if(A==null)return A===void 0?_gA:TgA;return sY&&sY in Object(A)?bgA(A):mgA(A)}function bgA(A){let Q=ii.call(A,sY),B=A[sY],I=!1;try{A[sY]=void 0,I=!0}catch{}let C=oi.call(A);if(I)if(Q)A[sY]=B;else delete A[sY];return C}function mgA(A){return oi.call(A)}});var Io=z((Qo)=>{Object.defineProperty(Qo,"__esModule",{value:!0});Qo.merge=void 0;var ri=ai(),dgA=20;function cgA(...A){let Q=A.shift(),B=new WeakMap;while(A.length>0)Q=ei(Q,A.shift(),0,B);return Q}Qo.merge=cgA;function M6(A){if(w2(A))return A.slice();return A}function ei(A,Q,B=0,I){let C;if(B>dgA)return;if(B++,W2(A)||W2(Q)||Ao(Q))C=M6(Q);else if(w2(A)){if(C=A.slice(),w2(Q))for(let E=0,Y=Q.length;E"u")delete C[F];else C[F]=G;else{let D=C[F],Z=G;if(ti(A,F,I)||ti(Q,F,I))delete C[F];else{if(EU(D)&&EU(Z)){let U=I.get(D)||[],W=I.get(Z)||[];U.push({obj:A,key:F}),W.push({obj:Q,key:F}),I.set(D,U),I.set(Z,W)}C[F]=ei(C[F],G,B,I)}}}}else C=Q;return C}function ti(A,Q,B){let I=B.get(A[Q])||[];for(let C=0,E=I.length;C"u"||A instanceof Date||A instanceof RegExp||A===null}function ugA(A,Q){if(!(0,ri.isPlainObject)(A)||!(0,ri.isPlainObject)(Q))return!1;return!0}});var Yo=z((Co)=>{Object.defineProperty(Co,"__esModule",{value:!0});Co.callWithTimeout=Co.TimeoutError=void 0;class X2 extends Error{constructor(A){super(A);Object.setPrototypeOf(this,X2.prototype)}}Co.TimeoutError=X2;function lgA(A,Q){let B,I=new Promise(function(E,Y){B=setTimeout(function(){Y(new X2("Operation timed out."))},Q)});return Promise.race([A,I]).then((C)=>{return clearTimeout(B),C},(C)=>{throw clearTimeout(B),C})}Co.callWithTimeout=lgA});var Do=z((Fo)=>{Object.defineProperty(Fo,"__esModule",{value:!0});Fo.isUrlIgnored=Fo.urlMatches=void 0;function Jo(A,Q){if(typeof Q==="string")return A===Q;else return!!A.match(Q)}Fo.urlMatches=Jo;function igA(A,Q){if(!Q)return!1;for(let B of Q)if(Jo(A,B))return!0;return!1}Fo.isUrlIgnored=igA});var wo=z((Uo)=>{Object.defineProperty(Uo,"__esModule",{value:!0});Uo.Deferred=void 0;class Zo{_promise;_resolve;_reject;constructor(){this._promise=new Promise((A,Q)=>{this._resolve=A,this._reject=Q})}get promise(){return this._promise}resolve(A){this._resolve(A)}reject(A){this._reject(A)}}Uo.Deferred=Zo});var zo=z((Vo)=>{Object.defineProperty(Vo,"__esModule",{value:!0});Vo.BindOnceFuture=void 0;var ngA=wo();class Xo{_isCalled=!1;_deferred=new ngA.Deferred;_callback;_that;constructor(A,Q){this._callback=A,this._that=Q}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...A){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...A)).then((Q)=>this._deferred.resolve(Q),(Q)=>this._deferred.reject(Q))}catch(Q){this._deferred.reject(Q)}}return this._deferred.promise}}Vo.BindOnceFuture=Xo});var Lo=z((Ho)=>{Object.defineProperty(Ho,"__esModule",{value:!0});Ho.diagLogLevelFromString=void 0;var wE=AA(),$o={ALL:wE.DiagLogLevel.ALL,VERBOSE:wE.DiagLogLevel.VERBOSE,DEBUG:wE.DiagLogLevel.DEBUG,INFO:wE.DiagLogLevel.INFO,WARN:wE.DiagLogLevel.WARN,ERROR:wE.DiagLogLevel.ERROR,NONE:wE.DiagLogLevel.NONE};function sgA(A){if(A==null)return;let Q=$o[A.toUpperCase()];if(Q==null)return wE.diag.warn(`Unknown log level "${A}", expected one of ${Object.keys($o)}, using default`),wE.DiagLogLevel.INFO;return Q}Ho.diagLogLevelFromString=sgA});var qo=z((jo)=>{Object.defineProperty(jo,"__esModule",{value:!0});jo._export=void 0;var No=AA(),agA=BU();function rgA(A,Q){return new Promise((B)=>{No.context.with((0,agA.suppressTracing)(No.context.active()),()=>{A.export(Q,B)})})}jo._export=rgA});var CB=z((QA)=>{Object.defineProperty(QA,"__esModule",{value:!0});QA.internal=QA.diagLogLevelFromString=QA.BindOnceFuture=QA.urlMatches=QA.isUrlIgnored=QA.callWithTimeout=QA.TimeoutError=QA.merge=QA.TraceState=QA.unsuppressTracing=QA.suppressTracing=QA.isTracingSuppressed=QA.setRPCMetadata=QA.getRPCMetadata=QA.deleteRPCMetadata=QA.RPCType=QA.parseTraceParent=QA.W3CTraceContextPropagator=QA.TRACE_STATE_HEADER=QA.TRACE_PARENT_HEADER=QA.CompositePropagator=QA.otperformance=QA.getStringListFromEnv=QA.getNumberFromEnv=QA.getBooleanFromEnv=QA.getStringFromEnv=QA._globalThis=QA.SDK_INFO=QA.parseKeyPairsIntoRecord=QA.ExportResultCode=QA.unrefTimer=QA.timeInputToHrTime=QA.millisToHrTime=QA.isTimeInputHrTime=QA.isTimeInput=QA.hrTimeToTimeStamp=QA.hrTimeToNanoseconds=QA.hrTimeToMilliseconds=QA.hrTimeToMicroseconds=QA.hrTimeDuration=QA.hrTime=QA.getTimeOrigin=QA.addHrTimes=QA.loggingErrorHandler=QA.setGlobalErrorHandler=QA.globalErrorHandler=QA.sanitizeAttributes=QA.isAttributeValue=QA.AnchoredClock=QA.W3CBaggagePropagator=void 0;var tgA=vx();Object.defineProperty(QA,"W3CBaggagePropagator",{enumerable:!0,get:function(){return tgA.W3CBaggagePropagator}});var egA=cx();Object.defineProperty(QA,"AnchoredClock",{enumerable:!0,get:function(){return egA.AnchoredClock}});var Po=sx();Object.defineProperty(QA,"isAttributeValue",{enumerable:!0,get:function(){return Po.isAttributeValue}});Object.defineProperty(QA,"sanitizeAttributes",{enumerable:!0,get:function(){return Po.sanitizeAttributes}});var Oo=Qv();Object.defineProperty(QA,"globalErrorHandler",{enumerable:!0,get:function(){return Oo.globalErrorHandler}});Object.defineProperty(QA,"setGlobalErrorHandler",{enumerable:!0,get:function(){return Oo.setGlobalErrorHandler}});var ATA=U6();Object.defineProperty(QA,"loggingErrorHandler",{enumerable:!0,get:function(){return ATA.loggingErrorHandler}});var KI=Xi();Object.defineProperty(QA,"addHrTimes",{enumerable:!0,get:function(){return KI.addHrTimes}});Object.defineProperty(QA,"getTimeOrigin",{enumerable:!0,get:function(){return KI.getTimeOrigin}});Object.defineProperty(QA,"hrTime",{enumerable:!0,get:function(){return KI.hrTime}});Object.defineProperty(QA,"hrTimeDuration",{enumerable:!0,get:function(){return KI.hrTimeDuration}});Object.defineProperty(QA,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return KI.hrTimeToMicroseconds}});Object.defineProperty(QA,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return KI.hrTimeToMilliseconds}});Object.defineProperty(QA,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return KI.hrTimeToNanoseconds}});Object.defineProperty(QA,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return KI.hrTimeToTimeStamp}});Object.defineProperty(QA,"isTimeInput",{enumerable:!0,get:function(){return KI.isTimeInput}});Object.defineProperty(QA,"isTimeInputHrTime",{enumerable:!0,get:function(){return KI.isTimeInputHrTime}});Object.defineProperty(QA,"millisToHrTime",{enumerable:!0,get:function(){return KI.millisToHrTime}});Object.defineProperty(QA,"timeInputToHrTime",{enumerable:!0,get:function(){return KI.timeInputToHrTime}});var QTA=zi();Object.defineProperty(QA,"unrefTimer",{enumerable:!0,get:function(){return QTA.unrefTimer}});var BTA=Hi();Object.defineProperty(QA,"ExportResultCode",{enumerable:!0,get:function(){return BTA.ExportResultCode}});var ITA=G6();Object.defineProperty(QA,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return ITA.parseKeyPairsIntoRecord}});var aY=w6();Object.defineProperty(QA,"SDK_INFO",{enumerable:!0,get:function(){return aY.SDK_INFO}});Object.defineProperty(QA,"_globalThis",{enumerable:!0,get:function(){return aY._globalThis}});Object.defineProperty(QA,"getStringFromEnv",{enumerable:!0,get:function(){return aY.getStringFromEnv}});Object.defineProperty(QA,"getBooleanFromEnv",{enumerable:!0,get:function(){return aY.getBooleanFromEnv}});Object.defineProperty(QA,"getNumberFromEnv",{enumerable:!0,get:function(){return aY.getNumberFromEnv}});Object.defineProperty(QA,"getStringListFromEnv",{enumerable:!0,get:function(){return aY.getStringListFromEnv}});Object.defineProperty(QA,"otperformance",{enumerable:!0,get:function(){return aY.otperformance}});var CTA=Ri();Object.defineProperty(QA,"CompositePropagator",{enumerable:!0,get:function(){return CTA.CompositePropagator}});var V2=bi();Object.defineProperty(QA,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return V2.TRACE_PARENT_HEADER}});Object.defineProperty(QA,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return V2.TRACE_STATE_HEADER}});Object.defineProperty(QA,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return V2.W3CTraceContextPropagator}});Object.defineProperty(QA,"parseTraceParent",{enumerable:!0,get:function(){return V2.parseTraceParent}});var K2=ui();Object.defineProperty(QA,"RPCType",{enumerable:!0,get:function(){return K2.RPCType}});Object.defineProperty(QA,"deleteRPCMetadata",{enumerable:!0,get:function(){return K2.deleteRPCMetadata}});Object.defineProperty(QA,"getRPCMetadata",{enumerable:!0,get:function(){return K2.getRPCMetadata}});Object.defineProperty(QA,"setRPCMetadata",{enumerable:!0,get:function(){return K2.setRPCMetadata}});var L6=BU();Object.defineProperty(QA,"isTracingSuppressed",{enumerable:!0,get:function(){return L6.isTracingSuppressed}});Object.defineProperty(QA,"suppressTracing",{enumerable:!0,get:function(){return L6.suppressTracing}});Object.defineProperty(QA,"unsuppressTracing",{enumerable:!0,get:function(){return L6.unsuppressTracing}});var ETA=$6();Object.defineProperty(QA,"TraceState",{enumerable:!0,get:function(){return ETA.TraceState}});var YTA=Io();Object.defineProperty(QA,"merge",{enumerable:!0,get:function(){return YTA.merge}});var ko=Yo();Object.defineProperty(QA,"TimeoutError",{enumerable:!0,get:function(){return ko.TimeoutError}});Object.defineProperty(QA,"callWithTimeout",{enumerable:!0,get:function(){return ko.callWithTimeout}});var go=Do();Object.defineProperty(QA,"isUrlIgnored",{enumerable:!0,get:function(){return go.isUrlIgnored}});Object.defineProperty(QA,"urlMatches",{enumerable:!0,get:function(){return go.urlMatches}});var JTA=zo();Object.defineProperty(QA,"BindOnceFuture",{enumerable:!0,get:function(){return JTA.BindOnceFuture}});var FTA=Lo();Object.defineProperty(QA,"diagLogLevelFromString",{enumerable:!0,get:function(){return FTA.diagLogLevelFromString}});var GTA=qo();QA.internal={_export:GTA._export}});var Mn=z((Hn)=>{Object.defineProperty(Hn,"__esModule",{value:!0});Hn.SeverityNumber=void 0;var NTA;(function(A){A[A.UNSPECIFIED=0]="UNSPECIFIED",A[A.TRACE=1]="TRACE",A[A.TRACE2=2]="TRACE2",A[A.TRACE3=3]="TRACE3",A[A.TRACE4=4]="TRACE4",A[A.DEBUG=5]="DEBUG",A[A.DEBUG2=6]="DEBUG2",A[A.DEBUG3=7]="DEBUG3",A[A.DEBUG4=8]="DEBUG4",A[A.INFO=9]="INFO",A[A.INFO2=10]="INFO2",A[A.INFO3=11]="INFO3",A[A.INFO4=12]="INFO4",A[A.WARN=13]="WARN",A[A.WARN2=14]="WARN2",A[A.WARN3=15]="WARN3",A[A.WARN4=16]="WARN4",A[A.ERROR=17]="ERROR",A[A.ERROR2=18]="ERROR2",A[A.ERROR3=19]="ERROR3",A[A.ERROR4=20]="ERROR4",A[A.FATAL=21]="FATAL",A[A.FATAL2=22]="FATAL2",A[A.FATAL3=23]="FATAL3",A[A.FATAL4=24]="FATAL4"})(NTA=Hn.SeverityNumber||(Hn.SeverityNumber={}))});var H2=z((Ln)=>{Object.defineProperty(Ln,"__esModule",{value:!0});Ln.NOOP_LOGGER=Ln.NoopLogger=void 0;class R6{emit(A){}}Ln.NoopLogger=R6;Ln.NOOP_LOGGER=new R6});var qn=z((jn)=>{Object.defineProperty(jn,"__esModule",{value:!0});jn.API_BACKWARDS_COMPATIBILITY_VERSION=jn.makeGetter=jn._global=jn.GLOBAL_LOGS_API_KEY=void 0;jn.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");jn._global=globalThis;function RTA(A,Q,B){return(I)=>I===A?Q:B}jn.makeGetter=RTA;jn.API_BACKWARDS_COMPATIBILITY_VERSION=1});var P6=z((Pn)=>{Object.defineProperty(Pn,"__esModule",{value:!0});Pn.NOOP_LOGGER_PROVIDER=Pn.NoopLoggerProvider=void 0;var kTA=H2();class q6{getLogger(A,Q,B){return new kTA.NoopLogger}}Pn.NoopLoggerProvider=q6;Pn.NOOP_LOGGER_PROVIDER=new q6});var _n=z((gn)=>{Object.defineProperty(gn,"__esModule",{value:!0});gn.ProxyLogger=void 0;var TTA=H2();class kn{constructor(A,Q,B,I){this._provider=A,this.name=Q,this.version=B,this.options=I}emit(A){this._getLogger().emit(A)}_getLogger(){if(this._delegate)return this._delegate;let A=this._provider._getDelegateLogger(this.name,this.version,this.options);if(!A)return TTA.NOOP_LOGGER;return this._delegate=A,this._delegate}}gn.ProxyLogger=kn});var hn=z((Sn)=>{Object.defineProperty(Sn,"__esModule",{value:!0});Sn.ProxyLoggerProvider=void 0;var _TA=P6(),yTA=_n();class yn{getLogger(A,Q,B){var I;return(I=this._getDelegateLogger(A,Q,B))!==null&&I!==void 0?I:new yTA.ProxyLogger(this,A,Q,B)}_getDelegate(){var A;return(A=this._delegate)!==null&&A!==void 0?A:_TA.NOOP_LOGGER_PROVIDER}_setDelegate(A){this._delegate=A}_getDelegateLogger(A,Q,B){var I;return(I=this._delegate)===null||I===void 0?void 0:I.getLogger(A,Q,B)}}Sn.ProxyLoggerProvider=yn});var mn=z((vn)=>{Object.defineProperty(vn,"__esModule",{value:!0});vn.LogsAPI=void 0;var $I=qn(),STA=P6(),xn=hn();class O6{constructor(){this._proxyLoggerProvider=new xn.ProxyLoggerProvider}static getInstance(){if(!this._instance)this._instance=new O6;return this._instance}setGlobalLoggerProvider(A){if($I._global[$I.GLOBAL_LOGS_API_KEY])return this.getLoggerProvider();return $I._global[$I.GLOBAL_LOGS_API_KEY]=(0,$I.makeGetter)($I.API_BACKWARDS_COMPATIBILITY_VERSION,A,STA.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(A),A}getLoggerProvider(){var A,Q;return(Q=(A=$I._global[$I.GLOBAL_LOGS_API_KEY])===null||A===void 0?void 0:A.call($I._global,$I.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&Q!==void 0?Q:this._proxyLoggerProvider}getLogger(A,Q,B){return this.getLoggerProvider().getLogger(A,Q,B)}disable(){delete $I._global[$I.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new xn.ProxyLoggerProvider}}vn.LogsAPI=O6});var k6=z((JU)=>{Object.defineProperty(JU,"__esModule",{value:!0});JU.logs=JU.NoopLogger=JU.NOOP_LOGGER=JU.SeverityNumber=void 0;var fTA=Mn();Object.defineProperty(JU,"SeverityNumber",{enumerable:!0,get:function(){return fTA.SeverityNumber}});var dn=H2();Object.defineProperty(JU,"NOOP_LOGGER",{enumerable:!0,get:function(){return dn.NOOP_LOGGER}});Object.defineProperty(JU,"NoopLogger",{enumerable:!0,get:function(){return dn.NoopLogger}});var hTA=mn();JU.logs=hTA.LogsAPI.getInstance()});var pn=z((un)=>{Object.defineProperty(un,"__esModule",{value:!0});un.disableInstrumentations=un.enableInstrumentations=void 0;function xTA(A,Q,B,I){for(let C=0,E=A.length;CQ.disable())}un.disableInstrumentations=vTA});var rn=z((sn)=>{Object.defineProperty(sn,"__esModule",{value:!0});sn.registerInstrumentations=void 0;var on=AA(),mTA=k6(),nn=pn();function dTA(A){let Q=A.tracerProvider||on.trace.getTracerProvider(),B=A.meterProvider||on.metrics.getMeterProvider(),I=A.loggerProvider||mTA.logs.getLoggerProvider(),C=A.instrumentations?.flat()??[];return(0,nn.enableInstrumentations)(C,Q,B,I),()=>{(0,nn.disableInstrumentations)(C)}}sn.registerInstrumentations=dTA});var Fs=z((Ys)=>{Object.defineProperty(Ys,"__esModule",{value:!0});Ys.satisfies=void 0;var y6=AA(),Bs=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,cTA=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,uTA={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function lTA(A,Q,B){if(!pTA(A))return y6.diag.error(`Invalid version: ${A}`),!1;if(!Q)return!0;Q=Q.replace(/([<>=~^]+)\s+/g,"$1");let I=sTA(A);if(!I)return!1;let C=[],E=Is(I,Q,C,B);if(E&&!B?.includePrerelease)return oTA(I,C);return E}Ys.satisfies=lTA;function pTA(A){return typeof A==="string"&&Bs.test(A)}function Is(A,Q,B,I){if(Q.includes("||")){let C=Q.trim().split("||");for(let E of C)if(g6(A,E,B,I))return!0;return!1}else if(Q.includes(" - "))Q=V_A(Q,I);else if(Q.includes(" ")){let C=Q.trim().replace(/\s{2,}/g," ").split(" ");for(let E of C)if(!g6(A,E,B,I))return!1;return!0}return g6(A,Q,B,I)}function g6(A,Q,B,I){if(Q=nTA(Q,I),Q.includes(" "))return Is(A,Q,B,I);else{let C=aTA(Q);return B.push(C),iTA(A,C)}}function iTA(A,Q){if(Q.invalid)return!1;if(!Q.version||_6(Q.version))return!0;let B=en(A.versionSegments||[],Q.versionSegments||[]);if(B===0){let I=A.prereleaseSegments||[],C=Q.prereleaseSegments||[];if(!I.length&&!C.length)B=0;else if(!I.length&&C.length)B=1;else if(I.length&&!C.length)B=-1;else B=en(I,C)}return uTA[Q.op]?.includes(B)}function oTA(A,Q){if(A.prerelease)return Q.some((B)=>B.prerelease&&B.version===A.version);return!0}function nTA(A,Q){return A=A.trim(),A=w_A(A,Q),A=W_A(A),A=X_A(A,Q),A=A.trim(),A}function UB(A){return!A||A.toLowerCase()==="x"||A==="*"}function sTA(A){let Q=A.match(Bs);if(!Q){y6.diag.error(`Invalid version: ${A}`);return}let B=Q.groups.version,I=Q.groups.prerelease,C=Q.groups.build,E=B.split("."),Y=I?.split(".");return{op:void 0,version:B,versionSegments:E,versionSegmentCount:E.length,prerelease:I,prereleaseSegments:Y,prereleaseSegmentCount:Y?Y.length:0,build:C}}function aTA(A){if(!A)return{};let Q=A.match(cTA);if(!Q)return y6.diag.error(`Invalid range: ${A}`),{invalid:!0};let B=Q.groups.op,I=Q.groups.version,C=Q.groups.prerelease,E=Q.groups.build,Y=I.split("."),J=C?.split(".");if(B==="==")B="=";return{op:B||"=",version:I,versionSegments:Y,versionSegmentCount:Y.length,prerelease:C,prereleaseSegments:J,prereleaseSegmentCount:J?J.length:0,build:E}}function _6(A){return A==="*"||A==="x"||A==="X"}function tn(A){let Q=parseInt(A,10);return isNaN(Q)?A:Q}function rTA(A,Q){if(typeof A===typeof Q)if(typeof A==="number")return[A,Q];else if(typeof A==="string")return[A,Q];else throw Error("Version segments can only be strings or numbers");else return[String(A),String(Q)]}function tTA(A,Q){if(_6(A)||_6(Q))return 0;let[B,I]=rTA(tn(A),tn(Q));if(B>I)return 1;else if(B)?=?)",As=`(?:${Es}|${eTA})`,Q_A=`(?:-(${As}(?:\\.${As})*))`,Qs=`${Cs}+`,B_A=`(?:\\+(${Qs}(?:\\.${Qs})*))`,T6=`${Es}|x|X|\\*`,FU=`[v=\\s]*(${T6})(?:\\.(${T6})(?:\\.(${T6})(?:${Q_A})?${B_A}?)?)?`,I_A=`^${A_A}\\s*${FU}$`,C_A=new RegExp(I_A),E_A=`^\\s*(${FU})\\s+-\\s+(${FU})\\s*$`,Y_A=new RegExp(E_A),J_A="(?:~>?)",F_A=`^${J_A}${FU}$`,G_A=new RegExp(F_A),D_A="(?:\\^)",Z_A=`^${D_A}${FU}$`,U_A=new RegExp(Z_A);function W_A(A){let Q=G_A;return A.replace(Q,(B,I,C,E,Y)=>{let J;if(UB(I))J="";else if(UB(C))J=`>=${I}.0.0 <${+I+1}.0.0-0`;else if(UB(E))J=`>=${I}.${C}.0 <${I}.${+C+1}.0-0`;else if(Y)J=`>=${I}.${C}.${E}-${Y} <${I}.${+C+1}.0-0`;else J=`>=${I}.${C}.${E} <${I}.${+C+1}.0-0`;return J})}function w_A(A,Q){let B=U_A,I=Q?.includePrerelease?"-0":"";return A.replace(B,(C,E,Y,J,F)=>{let G;if(UB(E))G="";else if(UB(Y))G=`>=${E}.0.0${I} <${+E+1}.0.0-0`;else if(UB(J))if(E==="0")G=`>=${E}.${Y}.0${I} <${E}.${+Y+1}.0-0`;else G=`>=${E}.${Y}.0${I} <${+E+1}.0.0-0`;else if(F)if(E==="0")if(Y==="0")G=`>=${E}.${Y}.${J}-${F} <${E}.${Y}.${+J+1}-0`;else G=`>=${E}.${Y}.${J}-${F} <${E}.${+Y+1}.0-0`;else G=`>=${E}.${Y}.${J}-${F} <${+E+1}.0.0-0`;else if(E==="0")if(Y==="0")G=`>=${E}.${Y}.${J}${I} <${E}.${Y}.${+J+1}-0`;else G=`>=${E}.${Y}.${J}${I} <${E}.${+Y+1}.0-0`;else G=`>=${E}.${Y}.${J} <${+E+1}.0.0-0`;return G})}function X_A(A,Q){let B=C_A;return A.replace(B,(I,C,E,Y,J,F)=>{let G=UB(E),D=G||UB(Y),Z=D||UB(J),U=Z;if(C==="="&&U)C="";if(F=Q?.includePrerelease?"-0":"",G)if(C===">"||C==="<")I="<0.0.0-0";else I="*";else if(C&&U){if(D)Y=0;if(J=0,C===">")if(C=">=",D)E=+E+1,Y=0,J=0;else Y=+Y+1,J=0;else if(C==="<=")if(C="<",D)E=+E+1;else Y=+Y+1;if(C==="<")F="-0";I=`${C+E}.${Y}.${J}${F}`}else if(D)I=`>=${E}.0.0${F} <${+E+1}.0.0-0`;else if(Z)I=`>=${E}.${Y}.0${F} <${E}.${+Y+1}.0-0`;return I})}function V_A(A,Q){let B=Y_A;return A.replace(B,(I,C,E,Y,J,F,G,D,Z,U,W,w)=>{if(UB(E))C="";else if(UB(Y))C=`>=${E}.0.0${Q?.includePrerelease?"-0":""}`;else if(UB(J))C=`>=${E}.${Y}.0${Q?.includePrerelease?"-0":""}`;else if(F)C=`>=${C}`;else C=`>=${C}${Q?.includePrerelease?"-0":""}`;if(UB(Z))D="";else if(UB(U))D=`<${+Z+1}.0.0-0`;else if(UB(W))D=`<${Z}.${+U+1}.0-0`;else if(w)D=`<=${Z}.${U}.${W}-${w}`;else if(Q?.includePrerelease)D=`<${Z}.${U}.${+W+1}-0`;else D=`<=${D}`;return`${C} ${D}`.trim()})}});var x6=z((Gs)=>{Object.defineProperty(Gs,"__esModule",{value:!0});Gs.massUnwrap=Gs.unwrap=Gs.massWrap=Gs.wrap=void 0;var WB=console.error.bind(console);function GU(A,Q,B){let I=!!A[Q]&&Object.prototype.propertyIsEnumerable.call(A,Q);Object.defineProperty(A,Q,{configurable:!0,enumerable:I,writable:!0,value:B})}var K_A=(A,Q,B)=>{if(!A||!A[Q]){WB("no original function "+String(Q)+" to wrap");return}if(!B){WB("no wrapper function"),WB(Error().stack);return}let I=A[Q];if(typeof I!=="function"||typeof B!=="function"){WB("original object and wrapper must be functions");return}let C=B(I,Q);return GU(C,"__original",I),GU(C,"__unwrap",()=>{if(A[Q]===C)GU(A,Q,I)}),GU(C,"__wrapped",!0),GU(A,Q,C),C};Gs.wrap=K_A;var z_A=(A,Q,B)=>{if(!A){WB("must provide one or more modules to patch"),WB(Error().stack);return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){WB("must provide one or more functions to wrap on modules");return}A.forEach((I)=>{Q.forEach((C)=>{Gs.wrap(I,C,B)})})};Gs.massWrap=z_A;var $_A=(A,Q)=>{if(!A||!A[Q]){WB("no function to unwrap."),WB(Error().stack);return}let B=A[Q];if(!B.__unwrap)WB("no original to unwrap to -- has "+String(Q)+" already been unwrapped?");else{B.__unwrap();return}};Gs.unwrap=$_A;var H_A=(A,Q)=>{if(!A){WB("must provide one or more modules to patch"),WB(Error().stack);return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){WB("must provide one or more functions to unwrap on modules");return}A.forEach((B)=>{Q.forEach((I)=>{Gs.unwrap(B,I)})})};Gs.massUnwrap=H_A;function DU(A){if(A&&A.logger)if(typeof A.logger!=="function")WB("new logger isn't a function, not replacing");else WB=A.logger}Gs.default=DU;DU.wrap=Gs.wrap;DU.massWrap=Gs.massWrap;DU.unwrap=Gs.unwrap;DU.massUnwrap=Gs.massUnwrap});var ws=z((Us)=>{Object.defineProperty(Us,"__esModule",{value:!0});Us.InstrumentationAbstract=void 0;var v6=AA(),L_A=k6(),M2=x6();class Zs{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(A,Q,B){this.instrumentationName=A,this.instrumentationVersion=Q,this.setConfig(B),this._diag=v6.diag.createComponentLogger({namespace:A}),this._tracer=v6.trace.getTracer(A,Q),this._meter=v6.metrics.getMeter(A,Q),this._logger=L_A.logs.getLogger(A,Q),this._updateMetricInstruments()}_wrap=M2.wrap;_unwrap=M2.unwrap;_massWrap=M2.massWrap;_massUnwrap=M2.massUnwrap;get meter(){return this._meter}setMeterProvider(A){this._meter=A.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(A){this._logger=A.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let A=this.init()??[];if(!Array.isArray(A))return[A];return A}_updateMetricInstruments(){return}getConfig(){return this._config}setConfig(A){this._config={enabled:!0,...A}}setTracerProvider(A){this._tracer=A.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(A,Q,B,I){if(!A)return;try{A(B,I)}catch(C){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:Q},C)}}}Us.InstrumentationAbstract=Zs});var Vs=z((sWQ,Xs)=>{var $G=1000,HG=$G*60,MG=HG*60,tY=MG*24,N_A=tY*7,j_A=tY*365.25;Xs.exports=function(A,Q){Q=Q||{};var B=typeof A;if(B==="string"&&A.length>0)return R_A(A);else if(B==="number"&&isFinite(A))return Q.long?P_A(A):q_A(A);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(A))};function R_A(A){if(A=String(A),A.length>100)return;var Q=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(A);if(!Q)return;var B=parseFloat(Q[1]),I=(Q[2]||"ms").toLowerCase();switch(I){case"years":case"year":case"yrs":case"yr":case"y":return B*j_A;case"weeks":case"week":case"w":return B*N_A;case"days":case"day":case"d":return B*tY;case"hours":case"hour":case"hrs":case"hr":case"h":return B*MG;case"minutes":case"minute":case"mins":case"min":case"m":return B*HG;case"seconds":case"second":case"secs":case"sec":case"s":return B*$G;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return B;default:return}}function q_A(A){var Q=Math.abs(A);if(Q>=tY)return Math.round(A/tY)+"d";if(Q>=MG)return Math.round(A/MG)+"h";if(Q>=HG)return Math.round(A/HG)+"m";if(Q>=$G)return Math.round(A/$G)+"s";return A+"ms"}function P_A(A){var Q=Math.abs(A);if(Q>=tY)return L2(A,Q,tY,"day");if(Q>=MG)return L2(A,Q,MG,"hour");if(Q>=HG)return L2(A,Q,HG,"minute");if(Q>=$G)return L2(A,Q,$G,"second");return A+" ms"}function L2(A,Q,B,I){var C=Q>=B*1.5;return Math.round(A/B)+" "+I+(C?"s":"")}});var b6=z((aWQ,Ks)=>{function O_A(A){B.debug=B,B.default=B,B.coerce=F,B.disable=Y,B.enable=C,B.enabled=J,B.humanize=Vs(),B.destroy=G,Object.keys(A).forEach((D)=>{B[D]=A[D]}),B.names=[],B.skips=[],B.formatters={};function Q(D){let Z=0;for(let U=0;U{if(P==="%%")return"%";L++;let u=B.formatters[T];if(typeof u==="function"){let DA=X[L];P=u.call(V,DA),X.splice(L,1),L--}return P}),B.formatArgs.call(V,X),(V.log||B.log).apply(V,X)}if(K.namespace=D,K.useColors=B.useColors(),K.color=B.selectColor(D),K.extend=I,K.destroy=B.destroy,Object.defineProperty(K,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(U!==null)return U;if(W!==B.namespaces)W=B.namespaces,w=B.enabled(D);return w},set:(X)=>{U=X}}),typeof B.init==="function")B.init(K);return K}function I(D,Z){let U=B(this.namespace+(typeof Z>"u"?":":Z)+D);return U.log=this.log,U}function C(D){B.save(D),B.namespaces=D,B.names=[],B.skips=[];let Z=(typeof D==="string"?D:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let U of Z)if(U[0]==="-")B.skips.push(U.slice(1));else B.names.push(U)}function E(D,Z){let U=0,W=0,w=-1,K=0;while(U"-"+Z)].join(",");return B.enable(""),D}function J(D){for(let Z of B.skips)if(E(D,Z))return!1;for(let Z of B.names)if(E(D,Z))return!0;return!1}function F(D){if(D instanceof Error)return D.stack||D.message;return D}function G(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return B.enable(B.load()),B}Ks.exports=O_A});var $s=z((zs,N2)=>{zs.formatArgs=g_A;zs.save=T_A;zs.load=__A;zs.useColors=k_A;zs.storage=y_A();zs.destroy=(()=>{let A=!1;return()=>{if(!A)A=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();zs.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function k_A(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let A;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(A=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(A[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function g_A(A){if(A[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+A[0]+(this.useColors?"%c ":" ")+"+"+N2.exports.humanize(this.diff),!this.useColors)return;let Q="color: "+this.color;A.splice(1,0,Q,"color: inherit");let B=0,I=0;A[0].replace(/%[a-zA-Z%]/g,(C)=>{if(C==="%%")return;if(B++,C==="%c")I=B}),A.splice(I,0,Q)}zs.log=console.debug||console.log||(()=>{});function T_A(A){try{if(A)zs.storage.setItem("debug",A);else zs.storage.removeItem("debug")}catch(Q){}}function __A(){let A;try{A=zs.storage.getItem("debug")||zs.storage.getItem("DEBUG")}catch(Q){}if(!A&&typeof process<"u"&&"env"in process)A=process.env.DEBUG;return A}function y_A(){try{return localStorage}catch(A){}}N2.exports=b6()(zs);var{formatters:S_A}=N2.exports;S_A.j=function(A){try{return JSON.stringify(A)}catch(Q){return"[UnexpectedJSONParseError]: "+Q.message}}});var Ns=z((Ms,R2)=>{var c_A=j("tty"),j2=j("util");Ms.init=s_A;Ms.log=i_A;Ms.formatArgs=l_A;Ms.save=o_A;Ms.load=n_A;Ms.useColors=u_A;Ms.destroy=j2.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Ms.colors=[6,2,3,4,5,1];try{let A=(()=>{throw new Error("Cannot require module "+"supports-color");})();if(A&&(A.stderr||A).level>=2)Ms.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(A){}Ms.inspectOpts=Object.keys(process.env).filter((A)=>{return/^debug_/i.test(A)}).reduce((A,Q)=>{let B=Q.substring(6).toLowerCase().replace(/_([a-z])/g,(C,E)=>{return E.toUpperCase()}),I=process.env[Q];if(/^(yes|on|true|enabled)$/i.test(I))I=!0;else if(/^(no|off|false|disabled)$/i.test(I))I=!1;else if(I==="null")I=null;else I=Number(I);return A[B]=I,A},{});function u_A(){return"colors"in Ms.inspectOpts?Boolean(Ms.inspectOpts.colors):c_A.isatty(process.stderr.fd)}function l_A(A){let{namespace:Q,useColors:B}=this;if(B){let I=this.color,C="\x1B[3"+(I<8?I:"8;5;"+I),E=` ${C};1m${Q} \x1B[0m`;A[0]=E+A[0].split(` `).join(` -`+E),A.push(C+"m+"+T1.exports.humanize(this.diff)+"\x1B[0m")}else A[0]=TxA()+Q+" "+A[0]}function TxA(){if(Jp.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function PxA(...A){return process.stderr.write(O1.formatWithOptions(Jp.inspectOpts,...A)+` -`)}function kxA(A){if(A)process.env.DEBUG=A;else delete process.env.DEBUG}function SxA(){return process.env.DEBUG}function gxA(A){A.inspectOpts={};let Q=Object.keys(Jp.inspectOpts);for(let B=0;BQ.trim()).join(" ")};Yp.O=function(A){return this.inspectOpts.colors=this.useColors,O1.inspect(A,this.inspectOpts)}});var Dp=X((lwQ,cV)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)cV.exports=Ep();else cV.exports=Gp()});var aD=X((pwQ,Zp)=>{var uV=H("path").sep;Zp.exports=function(A){var Q=A.split(uV),B=Q.lastIndexOf("node_modules");if(B===-1)return;if(!Q[B+1])return;var I=Q[B+1][0]==="@",C=I?Q[B+1]+"/"+Q[B+2]:Q[B+1],E=I?3:2,Y="",J=B+E-1;for(var F=0;F<=J;F++)if(F===J)Y+=Q[F];else Y+=Q[F]+uV;var G="",D=Q.length-1;for(var Z=B+E;Z<=D;Z++)if(Z===D)G+=Q[Z];else G+=Q[Z]+uV;return{name:C,basedir:Y,path:G}}});var XY=X((iwQ,pV)=>{var DF=H("path"),yI=H("module"),rA=Dp()("require-in-the-middle"),mxA=aD();pV.exports=sD;pV.exports.Hook=sD;var lV,P1;if(yI.isBuiltin)P1=yI.isBuiltin;else if(yI.builtinModules)P1=(A)=>{if(A.startsWith("node:"))return!0;if(lV===void 0)lV=new Set(yI.builtinModules);return lV.has(A)};else throw Error("'require-in-the-middle' requires Node.js >=v9.3.0 or >=v8.10.0");var dxA=/([/\\]index)?(\.js)?$/;class Wp{constructor(){this._localCache=new Map,this._kRitmExports=Symbol("RitmExports")}has(A,Q){if(this._localCache.has(A))return!0;else if(!Q){let B=H.cache[A];return!!(B&&(this._kRitmExports in B))}else return!1}get(A,Q){let B=this._localCache.get(A);if(B!==void 0)return B;else if(!Q){let I=H.cache[A];return I&&I[this._kRitmExports]}}set(A,Q,B){if(B)this._localCache.set(A,Q);else if(A in H.cache)H.cache[A][this._kRitmExports]=Q;else rA('non-core module is unexpectedly not in require.cache: "%s"',A),this._localCache.set(A,Q)}}function sD(A,Q,B){if(this instanceof sD===!1)return new sD(A,Q,B);if(typeof A==="function")B=A,A=null,Q=null;else if(typeof Q==="function")B=Q,Q=null;if(typeof yI._resolveFilename!=="function"){console.error("Error: Expected Module._resolveFilename to be a function (was: %s) - aborting!",typeof yI._resolveFilename),console.error("Please report this error as an issue related to Node.js %s at https://github.com/nodejs/require-in-the-middle/issues",process.version);return}this._cache=new Wp,this._unhooked=!1,this._origRequire=yI.prototype.require;let I=this,C=new Set,E=Q?Q.internals===!0:!1,Y=Array.isArray(A);if(rA("registering require hook"),this._require=yI.prototype.require=function(F){if(I._unhooked===!0)return rA("ignoring require call - module is soft-unhooked"),I._origRequire.apply(this,arguments);return J.call(this,arguments,!1)},typeof process.getBuiltinModule==="function")this._origGetBuiltinModule=process.getBuiltinModule,this._getBuiltinModule=process.getBuiltinModule=function(F){if(I._unhooked===!0)return rA("ignoring process.getBuiltinModule call - module is soft-unhooked"),I._origGetBuiltinModule.apply(this,arguments);return J.call(this,arguments,!0)};function J(F,G){let D=F[0],Z=P1(D),W;if(Z){if(W=D,D.startsWith("node:")){let M=D.slice(5);if(P1(M))W=M}}else if(G)return rA("call to process.getBuiltinModule with unknown built-in id"),I._origGetBuiltinModule.apply(this,F);else try{W=yI._resolveFilename(D,this)}catch(M){return rA('Module._resolveFilename("%s") threw %j, calling original Module.require',D,M.message),I._origRequire.apply(this,F)}let U,w;if(rA("processing %s module require('%s'): %s",Z===!0?"core":"non-core",D,W),I._cache.has(W,Z)===!0)return rA("returning already patched cached module: %s",W),I._cache.get(W,Z);let K=C.has(W);if(K===!1)C.add(W);let V=G?I._origGetBuiltinModule.apply(this,F):I._origRequire.apply(this,F);if(K===!0)return rA("module is in the process of being patched already - ignoring: %s",W),V;if(C.delete(W),Z===!0){if(Y===!0&&A.includes(W)===!1)return rA("ignoring core module not on whitelist: %s",W),V;U=W}else if(Y===!0&&A.includes(W)){let M=DF.parse(W);U=M.name,w=M.dir}else{let M=mxA(W);if(M===void 0)return rA("could not parse filename: %s",W),V;U=M.name,w=M.basedir;let L=cxA(M);rA("resolved filename to module: %s (id: %s, resolved: %s, basedir: %s)",U,D,L,w);let N=!1;if(Y){if(!D.startsWith(".")&&A.includes(D))U=D,N=!0;if(!A.includes(U)&&!A.includes(L))return V;if(A.includes(L)&&L!==U)U=L,N=!0}if(!N){let T;try{T=H.resolve(U,{paths:[w]})}catch(y){return rA("could not resolve module: %s",U),I._cache.set(W,V,Z),V}if(T!==W)if(E===!0)U=U+DF.sep+DF.relative(w,W),rA("preparing to process require of internal file: %s",U);else return rA("ignoring require of non-main module file: %s",T),I._cache.set(W,V,Z),V}}I._cache.set(W,V,Z),rA("calling require hook: %s",U);let z=B(V,U,w);return I._cache.set(W,z,Z),rA("returning module: %s",U),z}}sD.prototype.unhook=function(){if(this._unhooked=!0,this._require===yI.prototype.require)yI.prototype.require=this._origRequire,rA("require unhook successful");else rA("require unhook unsuccessful");if(process.getBuiltinModule!==void 0)if(this._getBuiltinModule===process.getBuiltinModule)process.getBuiltinModule=this._origGetBuiltinModule,rA("process.getBuiltinModule unhook successful");else rA("process.getBuiltinModule unhook unsuccessful")};function cxA(A){let Q=DF.sep!=="/"?A.path.split(DF.sep).join("/"):A.path;return DF.posix.join(A.name,Q).replace(dxA,"")}});var Kp=X((Xp)=>{Object.defineProperty(Xp,"__esModule",{value:!0});Xp.ModuleNameTrie=Xp.ModuleNameSeparator=void 0;Xp.ModuleNameSeparator="/";class iV{hooks=[];children=new Map}class Up{_trie=new iV;_counter=0;insert(A){let Q=this._trie;for(let B of A.moduleName.split(Xp.ModuleNameSeparator)){let I=Q.children.get(B);if(!I)I=new iV,Q.children.set(B,I);Q=I}Q.hooks.push({hook:A,insertedId:this._counter++})}search(A,{maintainInsertionOrder:Q,fullOnly:B}={}){let I=this._trie,C=[],E=!0;for(let Y of A.split(Xp.ModuleNameSeparator)){let J=I.children.get(Y);if(!J){E=!1;break}if(!B)C.push(...J.hooks);I=J}if(B&&E)C.push(...I.hooks);if(C.length===0)return[];if(C.length===1)return[C[0].hook];if(Q)C.sort((Y,J)=>Y.insertedId-J.insertedId);return C.map(({hook:Y})=>Y)}}Xp.ModuleNameTrie=Up});var Hp=X((zp)=>{Object.defineProperty(zp,"__esModule",{value:!0});zp.RequireInTheMiddleSingleton=void 0;var uxA=XY(),Vp=H("path"),oV=Kp(),lxA=["afterEach","after","beforeEach","before","describe","it"].every((A)=>{return typeof global[A]==="function"});class k1{_moduleNameTrie=new oV.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new uxA.Hook(null,{internals:!0},(A,Q,B)=>{let I=pxA(Q),C=this._moduleNameTrie.search(I,{maintainInsertionOrder:!0,fullOnly:B===void 0});for(let{onRequire:E}of C)A=E(A,Q,B);return A})}register(A,Q){let B={moduleName:A,onRequire:Q};return this._moduleNameTrie.insert(B),B}static getInstance(){if(lxA)return new k1;return this._instance=this._instance??new k1}}zp.RequireInTheMiddleSingleton=k1;function pxA(A){return Vp.sep!==oV.ModuleNameSeparator?A.split(Vp.sep).join(oV.ModuleNameSeparator):A}});var Rp=X((oxA)=>{var Mp=[],aV=new WeakMap,Lp=new WeakMap,Np=new Map,jp=[],ixA={set(A,Q,B){let I=aV.get(A),C=I&&I[Q];if(typeof C==="function")return C(B);return!0},get(A,Q){if(Q===Symbol.toStringTag)return"Module";let B=Lp.get(A)[Q];if(typeof B==="function")return B()},defineProperty(A,Q,B){if(!("value"in B))throw Error("Getters/setters are not supported for exports property descriptors.");let I=aV.get(A),C=I&&I[Q];if(typeof C==="function")return C(B.value);return!0}};function nxA(A,Q,B,I,C){Np.set(A,C),aV.set(Q,B),Lp.set(Q,I);let E=new Proxy(Q,ixA);Mp.forEach((Y)=>Y(A,E,C)),jp.push([A,E,C])}oxA.register=nxA;oxA.importHooks=Mp;oxA.specifiers=Np;oxA.toHook=jp});var eV=X((rwQ,WF)=>{var qp=H("path"),exA=aD(),{fileURLToPath:AbA}=H("url"),{MessageChannel:QbA}=H("worker_threads"),{isBuiltin:sV}=H("module");if(!sV)sV=()=>!0;var{importHooks:rV,specifiers:BbA,toHook:IbA}=Rp();function Op(A){rV.push(A),IbA.forEach(([Q,B,I])=>A(Q,B,I))}function Tp(A){let Q=rV.indexOf(A);if(Q>-1)rV.splice(Q,1)}function ZF(A,Q,B,I){let C=A(Q,B,I);if(C&&C!==Q){if("default"in Q)Q.default=C}}var tV;function CbA(){let{port1:A,port2:Q}=new QbA,B=0,I;tV=(J)=>{B++,A.postMessage(J)},A.on("message",()=>{if(B--,I&&B<=0)I()}).unref();function C(){let J=setInterval(()=>{},1000),F=new Promise((G)=>{I=G}).then(()=>{clearInterval(J)});if(B===0)I();return F}let E=Q;return{registerOptions:{data:{addHookMessagePort:E,include:[]},transferList:[E]},addHookMessagePort:E,waitForAllMessagesAcknowledged:C}}function rD(A,Q,B){if(this instanceof rD===!1)return new rD(A,Q,B);if(typeof A==="function")B=A,A=null,Q=null;else if(typeof Q==="function")B=Q,Q=null;let I=Q?Q.internals===!0:!1;if(tV&&Array.isArray(A))tV(A);this._iitmHook=(C,E,Y)=>{let J=C,F=J.startsWith("node:"),G,D;if(F){let Z=C.slice(5);if(sV(Z))C=Z}else if(J.startsWith("file://")){let Z=Error.stackTraceLimit;Error.stackTraceLimit=0;try{G=AbA(C),C=G}catch(W){}if(Error.stackTraceLimit=Z,G){let W=exA(G);if(W)C=W.name,D=W.basedir}}if(A){for(let Z of A)if(G&&Z===G)ZF(B,E,G,void 0);else if(Z===C){if(!D)ZF(B,E,C,D);else if(D.endsWith(BbA.get(J)))ZF(B,E,C,D);else if(I){let W=C+qp.sep+qp.relative(D,G);ZF(B,E,W,D)}}else if(Z===Y)ZF(B,E,Y,D)}else ZF(B,E,C,D)},Op(this._iitmHook)}rD.prototype.unhook=function(){Tp(this._iitmHook)};WF.exports=rD;WF.exports.Hook=rD;WF.exports.addHook=Op;WF.exports.removeHook=Tp;WF.exports.createAddHookMessageChannel=CbA});var A3=X((Pp)=>{Object.defineProperty(Pp,"__esModule",{value:!0});Pp.isWrapped=Pp.safeExecuteInTheMiddleAsync=Pp.safeExecuteInTheMiddle=void 0;function EbA(A,Q,B){let I,C;try{C=A()}catch(E){I=E}finally{if(Q(I,C),I&&!B)throw I;return C}}Pp.safeExecuteInTheMiddle=EbA;async function YbA(A,Q,B){let I,C;try{C=await A()}catch(E){I=E}finally{if(await Q(I,C),I&&!B)throw I;return C}}Pp.safeExecuteInTheMiddleAsync=YbA;function JbA(A){return typeof A==="function"&&typeof A.__original==="function"&&typeof A.__unwrap==="function"&&A.__wrapped===!0}Pp.isWrapped=JbA});var _p=X((hp)=>{Object.defineProperty(hp,"__esModule",{value:!0});hp.InstrumentationBase=void 0;var tD=H("path"),Sp=H("util"),DbA=ol(),Q3=bV(),ZbA=Ap(),WbA=Hp(),UbA=eV(),eD=j(),XbA=XY(),wbA=H("fs"),KbA=A3();class yp extends ZbA.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=WbA.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(A,Q,B){super(A,Q,B);let I=this.init();if(I&&!Array.isArray(I))I=[I];if(this._modules=I||[],this._config.enabled)this.enable()}_wrap=(A,Q,B)=>{if((0,KbA.isWrapped)(A[Q]))this._unwrap(A,Q);if(!Sp.types.isProxy(A))return(0,Q3.wrap)(A,Q,B);else{let I=(0,Q3.wrap)(Object.assign({},A),Q,B);return Object.defineProperty(A,Q,{value:I}),I}};_unwrap=(A,Q)=>{if(!Sp.types.isProxy(A))return(0,Q3.unwrap)(A,Q);else return Object.defineProperty(A,Q,{value:A[Q]})};_massWrap=(A,Q,B)=>{if(!A){eD.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){eD.diag.error("must provide one or more functions to wrap on modules");return}A.forEach((I)=>{Q.forEach((C)=>{this._wrap(I,C,B)})})};_massUnwrap=(A,Q)=>{if(!A){eD.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){eD.diag.error("must provide one or more functions to wrap on modules");return}A.forEach((B)=>{Q.forEach((I)=>{this._unwrap(B,I)})})};_warnOnPreloadedModules(){this._modules.forEach((A)=>{let{name:Q}=A;try{let B=H.resolve(Q);if(H.cache[B])this._diag.warn(`Module ${Q} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${Q}`)}catch{}})}_extractPackageVersion(A){try{let Q=(0,wbA.readFileSync)(tD.join(A,"package.json"),{encoding:"utf8"}),B=JSON.parse(Q).version;return typeof B==="string"?B:void 0}catch{eD.diag.warn("Failed extracting version",A)}return}_onRequire(A,Q,B,I){if(!I){if(typeof A.patch==="function"){if(A.moduleExports=Q,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:A.name}),A.patch(Q)}return Q}let C=this._extractPackageVersion(I);if(A.moduleVersion=C,A.name===B){if(gp(A.supportedVersions,C,A.includePrerelease)){if(typeof A.patch==="function"){if(A.moduleExports=Q,this._enabled)return this._diag.debug("Applying instrumentation patch for module on require hook",{module:A.name,version:A.moduleVersion,baseDir:I}),A.patch(Q,A.moduleVersion)}}return Q}let E=A.files??[],Y=tD.normalize(B);return E.filter((F)=>F.name===Y&&gp(F.supportedVersions,C,A.includePrerelease)).reduce((F,G)=>{if(G.moduleExports=F,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:A.name,version:A.moduleVersion,fileName:G.name,baseDir:I}),G.patch(F,A.moduleVersion);return F},Q)}enable(){if(this._enabled)return;if(this._enabled=!0,this._hooks.length>0){for(let A of this._modules){if(typeof A.patch==="function"&&A.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:A.name,version:A.moduleVersion}),A.patch(A.moduleExports,A.moduleVersion);for(let Q of A.files)if(Q.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:A.name,version:A.moduleVersion,fileName:Q.name}),Q.patch(Q.moduleExports,A.moduleVersion)}return}this._warnOnPreloadedModules();for(let A of this._modules){let Q=(E,Y,J)=>{if(!J&&tD.isAbsolute(Y)){let F=tD.parse(Y);Y=F.name,J=F.dir}return this._onRequire(A,E,Y,J)},B=(E,Y,J)=>{return this._onRequire(A,E,Y,J)},I=tD.isAbsolute(A.name)?new XbA.Hook([A.name],{internals:!0},B):this._requireInTheMiddleSingleton.register(A.name,B);this._hooks.push(I);let C=new UbA.Hook([A.name],{internals:!0},Q);this._hooks.push(C)}}disable(){if(!this._enabled)return;this._enabled=!1;for(let A of this._modules){if(typeof A.unpatch==="function"&&A.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:A.name,version:A.moduleVersion}),A.unpatch(A.moduleExports,A.moduleVersion);for(let Q of A.files)if(Q.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:A.name,version:A.moduleVersion,fileName:Q.name}),Q.unpatch(Q.moduleExports,A.moduleVersion)}}isEnabled(){return this._enabled}}hp.InstrumentationBase=yp;function gp(A,Q,B){if(typeof Q>"u")return A.includes("*");return A.some((I)=>{return(0,DbA.satisfies)(Q,I,{includePrerelease:B})})}});var vp=X((B3)=>{Object.defineProperty(B3,"__esModule",{value:!0});B3.normalize=void 0;var VbA=H("path");Object.defineProperty(B3,"normalize",{enumerable:!0,get:function(){return VbA.normalize}})});var xp=X((S1)=>{Object.defineProperty(S1,"__esModule",{value:!0});S1.normalize=S1.InstrumentationBase=void 0;var $bA=_p();Object.defineProperty(S1,"InstrumentationBase",{enumerable:!0,get:function(){return $bA.InstrumentationBase}});var HbA=vp();Object.defineProperty(S1,"normalize",{enumerable:!0,get:function(){return HbA.normalize}})});var I3=X((g1)=>{Object.defineProperty(g1,"__esModule",{value:!0});g1.normalize=g1.InstrumentationBase=void 0;var bp=xp();Object.defineProperty(g1,"InstrumentationBase",{enumerable:!0,get:function(){return bp.InstrumentationBase}});Object.defineProperty(g1,"normalize",{enumerable:!0,get:function(){return bp.normalize}})});var up=X((dp)=>{Object.defineProperty(dp,"__esModule",{value:!0});dp.InstrumentationNodeModuleDefinition=void 0;class mp{files;name;supportedVersions;patch;unpatch;constructor(A,Q,B,I,C){this.files=C||[],this.name=A,this.supportedVersions=Q,this.patch=B,this.unpatch=I}}dp.InstrumentationNodeModuleDefinition=mp});var np=X((pp)=>{Object.defineProperty(pp,"__esModule",{value:!0});pp.InstrumentationNodeModuleFile=void 0;var NbA=I3();class lp{name;supportedVersions;patch;unpatch;constructor(A,Q,B,I){this.name=(0,NbA.normalize)(A),this.supportedVersions=Q,this.patch=B,this.unpatch=I}}pp.InstrumentationNodeModuleFile=lp});var rp=X((ap)=>{Object.defineProperty(ap,"__esModule",{value:!0});ap.semconvStabilityFromStr=ap.SemconvStability=void 0;var y1;(function(A){A[A.STABLE=1]="STABLE",A[A.OLD=2]="OLD",A[A.DUPLICATE=3]="DUPLICATE"})(y1=ap.SemconvStability||(ap.SemconvStability={}));function jbA(A,Q){let B=y1.OLD,I=Q?.split(",").map((C)=>C.trim()).filter((C)=>C!=="");for(let C of I??[])if(C.toLowerCase()===A+"/dup"){B=y1.DUPLICATE;break}else if(C.toLowerCase()===A)B=y1.STABLE;return B}ap.semconvStabilityFromStr=jbA});var s=X((hI)=>{Object.defineProperty(hI,"__esModule",{value:!0});hI.semconvStabilityFromStr=hI.SemconvStability=hI.safeExecuteInTheMiddleAsync=hI.safeExecuteInTheMiddle=hI.isWrapped=hI.InstrumentationNodeModuleFile=hI.InstrumentationNodeModuleDefinition=hI.InstrumentationBase=hI.registerInstrumentations=void 0;var RbA=vl();Object.defineProperty(hI,"registerInstrumentations",{enumerable:!0,get:function(){return RbA.registerInstrumentations}});var qbA=I3();Object.defineProperty(hI,"InstrumentationBase",{enumerable:!0,get:function(){return qbA.InstrumentationBase}});var ObA=up();Object.defineProperty(hI,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return ObA.InstrumentationNodeModuleDefinition}});var TbA=np();Object.defineProperty(hI,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return TbA.InstrumentationNodeModuleFile}});var C3=A3();Object.defineProperty(hI,"isWrapped",{enumerable:!0,get:function(){return C3.isWrapped}});Object.defineProperty(hI,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return C3.safeExecuteInTheMiddle}});Object.defineProperty(hI,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return C3.safeExecuteInTheMiddleAsync}});var tp=rp();Object.defineProperty(hI,"SemconvStability",{enumerable:!0,get:function(){return tp.SemconvStability}});Object.defineProperty(hI,"semconvStabilityFromStr",{enumerable:!0,get:function(){return tp.semconvStabilityFromStr}})});var Qi=X((ep)=>{Object.defineProperty(ep,"__esModule",{value:!0});ep.HTTP_FLAVOR_VALUE_HTTP_1_1=ep.NET_TRANSPORT_VALUE_IP_UDP=ep.NET_TRANSPORT_VALUE_IP_TCP=ep.ATTR_NET_TRANSPORT=ep.ATTR_NET_PEER_PORT=ep.ATTR_NET_PEER_NAME=ep.ATTR_NET_PEER_IP=ep.ATTR_NET_HOST_PORT=ep.ATTR_NET_HOST_NAME=ep.ATTR_NET_HOST_IP=ep.ATTR_HTTP_USER_AGENT=ep.ATTR_HTTP_URL=ep.ATTR_HTTP_TARGET=ep.ATTR_HTTP_STATUS_CODE=ep.ATTR_HTTP_SERVER_NAME=ep.ATTR_HTTP_SCHEME=ep.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=ep.ATTR_HTTP_RESPONSE_CONTENT_LENGTH=ep.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=ep.ATTR_HTTP_REQUEST_CONTENT_LENGTH=ep.ATTR_HTTP_METHOD=ep.ATTR_HTTP_HOST=ep.ATTR_HTTP_FLAVOR=ep.ATTR_HTTP_CLIENT_IP=ep.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST=ep.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT=ep.ATTR_USER_AGENT_SYNTHETIC_TYPE=void 0;ep.ATTR_USER_AGENT_SYNTHETIC_TYPE="user_agent.synthetic.type";ep.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT="bot";ep.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST="test";ep.ATTR_HTTP_CLIENT_IP="http.client_ip";ep.ATTR_HTTP_FLAVOR="http.flavor";ep.ATTR_HTTP_HOST="http.host";ep.ATTR_HTTP_METHOD="http.method";ep.ATTR_HTTP_REQUEST_CONTENT_LENGTH="http.request_content_length";ep.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED="http.request_content_length_uncompressed";ep.ATTR_HTTP_RESPONSE_CONTENT_LENGTH="http.response_content_length";ep.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED="http.response_content_length_uncompressed";ep.ATTR_HTTP_SCHEME="http.scheme";ep.ATTR_HTTP_SERVER_NAME="http.server_name";ep.ATTR_HTTP_STATUS_CODE="http.status_code";ep.ATTR_HTTP_TARGET="http.target";ep.ATTR_HTTP_URL="http.url";ep.ATTR_HTTP_USER_AGENT="http.user_agent";ep.ATTR_NET_HOST_IP="net.host.ip";ep.ATTR_NET_HOST_NAME="net.host.name";ep.ATTR_NET_HOST_PORT="net.host.port";ep.ATTR_NET_PEER_IP="net.peer.ip";ep.ATTR_NET_PEER_NAME="net.peer.name";ep.ATTR_NET_PEER_PORT="net.peer.port";ep.ATTR_NET_TRANSPORT="net.transport";ep.NET_TRANSPORT_VALUE_IP_TCP="ip_tcp";ep.NET_TRANSPORT_VALUE_IP_UDP="ip_udp";ep.HTTP_FLAVOR_VALUE_HTTP_1_1="1.1"});var Ii=X((Bi)=>{Object.defineProperty(Bi,"__esModule",{value:!0});Bi.AttributeNames=void 0;var BmA;(function(A){A.HTTP_ERROR_NAME="http.error_name",A.HTTP_ERROR_MESSAGE="http.error_message",A.HTTP_STATUS_TEXT="http.status_text"})(BmA=Bi.AttributeNames||(Bi.AttributeNames={}))});var Y3=X((Ci)=>{Object.defineProperty(Ci,"__esModule",{value:!0});Ci.DEFAULT_QUERY_STRINGS_TO_REDACT=Ci.STR_REDACTED=Ci.SYNTHETIC_BOT_NAMES=Ci.SYNTHETIC_TEST_NAMES=void 0;Ci.SYNTHETIC_TEST_NAMES=["alwayson"];Ci.SYNTHETIC_BOT_NAMES=["googlebot","bingbot"];Ci.STR_REDACTED="REDACTED";Ci.DEFAULT_QUERY_STRINGS_TO_REDACT=["sig","Signature","AWSAccessKeyId","X-Goog-Signature"]});var Ji=X((M4Q,Yi)=>{var YmA=H("util");function J3(A,Q){Error.captureStackTrace(this,J3),this.name=this.constructor.name,this.message=A,this.input=Q}YmA.inherits(J3,Error);Yi.exports=J3});var Gi=X((L4Q,Fi)=>{function JmA(A){return A===34||A===40||A===41||A===44||A===47||A>=58&&A<=64||A>=91&&A<=93||A===123||A===125}function FmA(A){return A===33||A>=35&&A<=39||A===42||A===43||A===45||A===46||A>=48&&A<=57||A>=65&&A<=90||A>=94&&A<=122||A===124||A===126}function GmA(A){return A>=32&&A<=126}function DmA(A){return A>=128&&A<=255}Fi.exports={isDelimiter:JmA,isTokenChar:FmA,isExtended:DmA,isPrint:GmA}});var Xi=X((N4Q,Ui)=>{var ZmA=H("util"),UF=Ji(),h1=Gi(),WmA=h1.isDelimiter,Di=h1.isTokenChar,Zi=h1.isExtended,UmA=h1.isPrint;function Wi(A){return A.replace(/\\(.)/g,"$1")}function AZ(A,Q){return ZmA.format("Unexpected character '%s' at index %d",A.charAt(Q),Q)}function XmA(A){var Q=!1,B=!1,I=!1,C={},E=[],Y=-1,J=-1,F,G;for(var D=0;D{Object.defineProperty(Ni,"__esModule",{value:!0});Ni.headerCapture=Ni.getIncomingStableRequestMetricAttributesOnResponse=Ni.getIncomingRequestMetricAttributesOnResponse=Ni.getIncomingRequestAttributesOnResponse=Ni.getIncomingRequestMetricAttributes=Ni.getIncomingRequestAttributes=Ni.getRemoteClientAddress=Ni.getOutgoingStableRequestMetricAttributesOnResponse=Ni.getOutgoingRequestMetricAttributesOnResponse=Ni.getOutgoingRequestAttributesOnResponse=Ni.setAttributesFromHttpKind=Ni.getOutgoingRequestMetricAttributes=Ni.getOutgoingRequestAttributes=Ni.extractHostnameAndPort=Ni.isValidOptionsType=Ni.getRequestInfo=Ni.isCompressed=Ni.setResponseContentLengthAttribute=Ni.setRequestContentLengthAttribute=Ni.setSpanWithError=Ni.satisfiesPattern=Ni.parseResponseStatus=Ni.getAbsoluteUrl=void 0;var QZ=j(),CA=JA(),_=Qi(),wi=RV(),yB=s(),wmA=H("url"),_1=Ii(),Ki=Y3(),f1=Y3(),KmA=Xi(),VmA=(A,Q,B="http:",I=Array.from(f1.DEFAULT_QUERY_STRINGS_TO_REDACT))=>{let C=A||{},E=C.protocol||B,Y=(C.port||"").toString(),J=C.path||"/",F=C.host||C.hostname||Q.host||"localhost";if(F.indexOf(":")===-1&&Y&&Y!=="80"&&Y!=="443")F+=`:${Y}`;if(J.includes("?"))try{let D=new URL(J,"http://localhost"),Z=I||[];for(let W of Z)if(D.searchParams.get(W))D.searchParams.set(W,f1.STR_REDACTED);J=`${D.pathname}${D.search}`}catch{}let G=C.auth?`${f1.STR_REDACTED}:${f1.STR_REDACTED}@`:"";return`${E}//${G}${F}${J}`};Ni.getAbsoluteUrl=VmA;var zmA=(A,Q)=>{let B=A===QZ.SpanKind.CLIENT?400:500;if(Q&&Q>=100&&Q{if(typeof Q==="string")return Q===A;else if(Q instanceof RegExp)return Q.test(A);else if(typeof Q==="function")return Q(A);else throw TypeError("Pattern is in unsupported datatype")};Ni.satisfiesPattern=$mA;var HmA=(A,Q,B)=>{let I=Q.message;if(B&yB.SemconvStability.OLD)A.setAttribute(_1.AttributeNames.HTTP_ERROR_NAME,Q.name),A.setAttribute(_1.AttributeNames.HTTP_ERROR_MESSAGE,I);if(B&yB.SemconvStability.STABLE)A.setAttribute(CA.ATTR_ERROR_TYPE,Q.name);A.setStatus({code:QZ.SpanStatusCode.ERROR,message:I}),A.recordException(Q)};Ni.setSpanWithError=HmA;var MmA=(A,Q)=>{let B=zi(A.headers);if(B===null)return;if(Ni.isCompressed(A.headers))Q[_.ATTR_HTTP_REQUEST_CONTENT_LENGTH]=B;else Q[_.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED]=B};Ni.setRequestContentLengthAttribute=MmA;var LmA=(A,Q)=>{let B=zi(A.headers);if(B===null)return;if(Ni.isCompressed(A.headers))Q[_.ATTR_HTTP_RESPONSE_CONTENT_LENGTH]=B;else Q[_.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED]=B};Ni.setResponseContentLengthAttribute=LmA;function zi(A){let Q=A["content-length"];if(Q===void 0)return null;let B=parseInt(Q,10);if(isNaN(B))return null;return B}var NmA=(A)=>{let Q=A["content-encoding"];return!!Q&&Q!=="identity"};Ni.isCompressed=NmA;function jmA(A){let{hostname:Q,pathname:B,port:I,username:C,password:E,search:Y,protocol:J,hash:F,href:G,origin:D,host:Z}=new URL(A),W={protocol:J,hostname:Q&&Q[0]==="["?Q.slice(1,-1):Q,hash:F,search:Y,pathname:B,path:`${B||""}${Y||""}`,href:G,origin:D,host:Z};if(I!=="")W.port=Number(I);if(C||E)W.auth=`${decodeURIComponent(C)}:${decodeURIComponent(E)}`;return W}var RmA=(A,Q,B)=>{let I,C,E,Y=!1;if(typeof Q==="string"){try{let F=jmA(Q);E=F,I=F.pathname||"/"}catch(F){Y=!0,A.verbose("Unable to parse URL provided to HTTP request, using fallback to determine path. Original error:",F),E={path:Q},I=E.path||"/"}if(C=`${E.protocol||"http:"}//${E.host}`,B!==void 0)Object.assign(E,B)}else if(Q instanceof wmA.URL){if(E={protocol:Q.protocol,hostname:typeof Q.hostname==="string"&&Q.hostname.startsWith("[")?Q.hostname.slice(1,-1):Q.hostname,path:`${Q.pathname||""}${Q.search||""}`},Q.port!=="")E.port=Number(Q.port);if(Q.username||Q.password)E.auth=`${Q.username}:${Q.password}`;if(I=Q.pathname,C=Q.origin,B!==void 0)Object.assign(E,B)}else{E=Object.assign({protocol:Q.host?"http:":void 0},Q);let F=E.host||(E.port!=null?`${E.hostname}${E.port}`:E.hostname);if(C=`${E.protocol||"http:"}//${F}`,I=Q.pathname,!I&&E.path)try{I=new URL(E.path,C).pathname||"/"}catch{I="/"}}let J=E.method?E.method.toUpperCase():"GET";return{origin:C,pathname:I,method:J,optionsParsed:E,invalidUrl:Y}};Ni.getRequestInfo=RmA;var qmA=(A)=>{if(!A)return!1;let Q=typeof A;return Q==="string"||Q==="object"&&!Array.isArray(A)};Ni.isValidOptionsType=qmA;var OmA=(A)=>{if(A.hostname&&A.port)return{hostname:A.hostname,port:A.port};let Q=A.host?.match(/^([^:/ ]+)(:\d{1,5})?/)||null,B=A.hostname||(Q===null?"localhost":Q[1]),I=A.port;if(!I)if(Q&&Q[2])I=Q[2].substring(1);else I=A.protocol==="https:"?"443":"80";return{hostname:B,port:I}};Ni.extractHostnameAndPort=OmA;var TmA=(A,Q,B,I)=>{let{hostname:C,port:E}=Q,Y=A.method??"GET",J=Mi(Y),F=A.headers||{},G=F["user-agent"],D=Ni.getAbsoluteUrl(A,F,`${Q.component}:`,Q.redactedQueryParams),Z={[_.ATTR_HTTP_URL]:D,[_.ATTR_HTTP_METHOD]:Y,[_.ATTR_HTTP_TARGET]:A.path||"/",[_.ATTR_NET_PEER_NAME]:C,[_.ATTR_HTTP_HOST]:F.host??`${C}:${E}`},W={[CA.ATTR_HTTP_REQUEST_METHOD]:J,[CA.ATTR_SERVER_ADDRESS]:C,[CA.ATTR_SERVER_PORT]:Number(E),[CA.ATTR_URL_FULL]:D,[CA.ATTR_USER_AGENT_ORIGINAL]:G};if(Y!==J)W[CA.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]=Y;if(I&&G)W[_.ATTR_USER_AGENT_SYNTHETIC_TYPE]=$i(G);if(G!==void 0)Z[_.ATTR_HTTP_USER_AGENT]=G;switch(B){case yB.SemconvStability.STABLE:return Object.assign(W,Q.hookAttributes);case yB.SemconvStability.OLD:return Object.assign(Z,Q.hookAttributes)}return Object.assign(Z,W,Q.hookAttributes)};Ni.getOutgoingRequestAttributes=TmA;var PmA=(A)=>{let Q={};return Q[_.ATTR_HTTP_METHOD]=A[_.ATTR_HTTP_METHOD],Q[_.ATTR_NET_PEER_NAME]=A[_.ATTR_NET_PEER_NAME],Q};Ni.getOutgoingRequestMetricAttributes=PmA;var kmA=(A,Q)=>{if(A)if(Q[_.ATTR_HTTP_FLAVOR]=A,A.toUpperCase()!=="QUIC")Q[_.ATTR_NET_TRANSPORT]=_.NET_TRANSPORT_VALUE_IP_TCP;else Q[_.ATTR_NET_TRANSPORT]=_.NET_TRANSPORT_VALUE_IP_UDP};Ni.setAttributesFromHttpKind=kmA;var $i=(A)=>{let Q=String(A).toLowerCase();for(let B of Ki.SYNTHETIC_TEST_NAMES)if(Q.includes(B))return _.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;for(let B of Ki.SYNTHETIC_BOT_NAMES)if(Q.includes(B))return _.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT;return},SmA=(A,Q)=>{let{statusCode:B,statusMessage:I,httpVersion:C,socket:E}=A,Y={},J={};if(B!=null)J[CA.ATTR_HTTP_RESPONSE_STATUS_CODE]=B;if(E){let{remoteAddress:F,remotePort:G}=E;Y[_.ATTR_NET_PEER_IP]=F,Y[_.ATTR_NET_PEER_PORT]=G,J[CA.ATTR_NETWORK_PEER_ADDRESS]=F,J[CA.ATTR_NETWORK_PEER_PORT]=G,J[CA.ATTR_NETWORK_PROTOCOL_VERSION]=A.httpVersion}if(Ni.setResponseContentLengthAttribute(A,Y),B)Y[_.ATTR_HTTP_STATUS_CODE]=B,Y[_1.AttributeNames.HTTP_STATUS_TEXT]=(I||"").toUpperCase();switch(Ni.setAttributesFromHttpKind(C,Y),Q){case yB.SemconvStability.STABLE:return J;case yB.SemconvStability.OLD:return Y}return Object.assign(Y,J)};Ni.getOutgoingRequestAttributesOnResponse=SmA;var gmA=(A)=>{let Q={};return Q[_.ATTR_NET_PEER_PORT]=A[_.ATTR_NET_PEER_PORT],Q[_.ATTR_HTTP_STATUS_CODE]=A[_.ATTR_HTTP_STATUS_CODE],Q[_.ATTR_HTTP_FLAVOR]=A[_.ATTR_HTTP_FLAVOR],Q};Ni.getOutgoingRequestMetricAttributesOnResponse=gmA;var ymA=(A)=>{let Q={};if(A[CA.ATTR_NETWORK_PROTOCOL_VERSION])Q[CA.ATTR_NETWORK_PROTOCOL_VERSION]=A[CA.ATTR_NETWORK_PROTOCOL_VERSION];if(A[CA.ATTR_HTTP_RESPONSE_STATUS_CODE])Q[CA.ATTR_HTTP_RESPONSE_STATUS_CODE]=A[CA.ATTR_HTTP_RESPONSE_STATUS_CODE];return Q};Ni.getOutgoingStableRequestMetricAttributesOnResponse=ymA;function bE(A,Q){let B=A.split(":");if(B.length===1){if(Q==="http")return{host:B[0],port:"80"};if(Q==="https")return{host:B[0],port:"443"};return{host:B[0]}}if(B.length===2)return{host:B[0],port:B[1]};if(B[0].startsWith("[")){if(B[B.length-1].endsWith("]")){if(Q==="http")return{host:A,port:"80"};if(Q==="https")return{host:A,port:"443"}}else if(B[B.length-2].endsWith("]"))return{host:B.slice(0,-1).join(":"),port:B[B.length-1]}}return{host:A}}function hmA(A,Q){let B=A.headers.forwarded;if(B){for(let E of Li(B))if(E.host)return bE(E.host,E.proto)}let I=A.headers["x-forwarded-host"];if(typeof I==="string"){if(typeof A.headers["x-forwarded-proto"]==="string")return bE(I,A.headers["x-forwarded-proto"]);if(Array.isArray(A.headers["x-forwarded-proto"]))return bE(I,A.headers["x-forwarded-proto"][0]);return bE(I)}else if(Array.isArray(I)&&typeof I[0]==="string"&&I[0].length>0){if(typeof A.headers["x-forwarded-proto"]==="string")return bE(I[0],A.headers["x-forwarded-proto"]);if(Array.isArray(A.headers["x-forwarded-proto"]))return bE(I[0],A.headers["x-forwarded-proto"][0]);return bE(I[0])}let C=A.headers.host;if(typeof C==="string"&&C.length>0)return bE(C,Q);return null}function Hi(A){let Q=A.headers.forwarded;if(Q){for(let C of Li(Q))if(C.for)return Vi(C.for)}let B=A.headers["x-forwarded-for"];if(B){let C;if(typeof B==="string")C=B;else if(Array.isArray(B))C=B[0];if(typeof C==="string")return C=C.split(",")[0].trim(),Vi(C)}let I=A.socket.remoteAddress;if(I)return I;return null}Ni.getRemoteClientAddress=Hi;function Vi(A){try{let{hostname:Q}=new URL(`http://${A}`);if(Q.startsWith("[")&&Q.endsWith("]"))return Q.slice(1,-1);return Q}catch{return A}}function fmA(A,Q,B){try{if(Q.headers.host)return new URL(Q.url??"/",`${A}://${Q.headers.host}`);else{let I=new URL(Q.url??"/",`${A}://localhost`);return{pathname:I.pathname,search:I.search,toString:function(){return I.pathname+I.search}}}}catch(I){return B.verbose("Unable to get URL from request",I),{}}}var _mA=(A,Q,B)=>{let{component:I,enableSyntheticSourceDetection:C,hookAttributes:E,semconvStability:Y,serverName:J}=Q,{headers:F,httpVersion:G,method:D}=A,{host:Z,"user-agent":W,"x-forwarded-for":U}=F,w=fmA(I,A,B),K,V;if(Y!==yB.SemconvStability.OLD){let z=Mi(D),M=hmA(A,I),L=Hi(A);if(K={[CA.ATTR_HTTP_REQUEST_METHOD]:z,[CA.ATTR_URL_SCHEME]:I,[CA.ATTR_SERVER_ADDRESS]:M?.host,[CA.ATTR_NETWORK_PEER_ADDRESS]:A.socket.remoteAddress,[CA.ATTR_NETWORK_PEER_PORT]:A.socket.remotePort,[CA.ATTR_NETWORK_PROTOCOL_VERSION]:A.httpVersion,[CA.ATTR_USER_AGENT_ORIGINAL]:W},w.pathname!=null)K[CA.ATTR_URL_PATH]=w.pathname;if(w.search)K[CA.ATTR_URL_QUERY]=w.search.slice(1);if(L!=null)K[CA.ATTR_CLIENT_ADDRESS]=L;if(M?.port!=null)K[CA.ATTR_SERVER_PORT]=Number(M.port);if(D!==z)K[CA.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]=D;if(C&&W)K[_.ATTR_USER_AGENT_SYNTHETIC_TYPE]=$i(W)}if(Y!==yB.SemconvStability.STABLE){let z=Z?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost";if(V={[_.ATTR_HTTP_URL]:w.toString(),[_.ATTR_HTTP_HOST]:Z,[_.ATTR_NET_HOST_NAME]:z,[_.ATTR_HTTP_METHOD]:D,[_.ATTR_HTTP_SCHEME]:I},typeof U==="string")V[_.ATTR_HTTP_CLIENT_IP]=U.split(",")[0];if(typeof J==="string")V[_.ATTR_HTTP_SERVER_NAME]=J;if(w.pathname)V[_.ATTR_HTTP_TARGET]=w.pathname+w.search||"/";if(W!==void 0)V[_.ATTR_HTTP_USER_AGENT]=W;Ni.setRequestContentLengthAttribute(A,V),Ni.setAttributesFromHttpKind(G,V)}switch(Y){case yB.SemconvStability.STABLE:return Object.assign(K,E);case yB.SemconvStability.OLD:return Object.assign(V,E);default:return Object.assign(V,K,E)}};Ni.getIncomingRequestAttributes=_mA;var vmA=(A)=>{let Q={};return Q[_.ATTR_HTTP_SCHEME]=A[_.ATTR_HTTP_SCHEME],Q[_.ATTR_HTTP_METHOD]=A[_.ATTR_HTTP_METHOD],Q[_.ATTR_NET_HOST_NAME]=A[_.ATTR_NET_HOST_NAME],Q[_.ATTR_HTTP_FLAVOR]=A[_.ATTR_HTTP_FLAVOR],Q};Ni.getIncomingRequestMetricAttributes=vmA;var xmA=(A,Q,B)=>{let{socket:I}=A,{statusCode:C,statusMessage:E}=Q,Y={[CA.ATTR_HTTP_RESPONSE_STATUS_CODE]:C},J=(0,wi.getRPCMetadata)(QZ.context.active()),F={};if(I){let{localAddress:G,localPort:D,remoteAddress:Z,remotePort:W}=I;F[_.ATTR_NET_HOST_IP]=G,F[_.ATTR_NET_HOST_PORT]=D,F[_.ATTR_NET_PEER_IP]=Z,F[_.ATTR_NET_PEER_PORT]=W}if(F[_.ATTR_HTTP_STATUS_CODE]=C,F[_1.AttributeNames.HTTP_STATUS_TEXT]=(E||"").toUpperCase(),J?.type===wi.RPCType.HTTP&&J.route!==void 0)F[CA.ATTR_HTTP_ROUTE]=J.route,Y[CA.ATTR_HTTP_ROUTE]=J.route;switch(B){case yB.SemconvStability.STABLE:return Y;case yB.SemconvStability.OLD:return F}return Object.assign(F,Y)};Ni.getIncomingRequestAttributesOnResponse=xmA;var bmA=(A)=>{let Q={};if(Q[_.ATTR_HTTP_STATUS_CODE]=A[_.ATTR_HTTP_STATUS_CODE],Q[_.ATTR_NET_HOST_PORT]=A[_.ATTR_NET_HOST_PORT],A[CA.ATTR_HTTP_ROUTE]!==void 0)Q[CA.ATTR_HTTP_ROUTE]=A[CA.ATTR_HTTP_ROUTE];return Q};Ni.getIncomingRequestMetricAttributesOnResponse=bmA;var mmA=(A)=>{let Q={};if(A[CA.ATTR_HTTP_ROUTE]!==void 0)Q[CA.ATTR_HTTP_ROUTE]=A[CA.ATTR_HTTP_ROUTE];if(A[CA.ATTR_HTTP_RESPONSE_STATUS_CODE])Q[CA.ATTR_HTTP_RESPONSE_STATUS_CODE]=A[CA.ATTR_HTTP_RESPONSE_STATUS_CODE];return Q};Ni.getIncomingStableRequestMetricAttributesOnResponse=mmA;function dmA(A,Q,B){let I=new Map;for(let C=0,E=Q.length;C{let E={};for(let Y of I.keys()){let J=C(Y);if(J===void 0)continue;let F=I.get(Y),G=`http.${A}.header.${F}`;if(typeof J==="string")E[G]=[J];else if(Array.isArray(J))E[G]=J;else E[G]=[J]}return E}}Ni.headerCapture=dmA;var cmA=new Set(["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH","QUERY"]);function Mi(A){if(A==null)return"GET";let Q=A.toUpperCase();if(cmA.has(Q))return Q;return"_OTHER"}function Li(A){try{return KmA(A)}catch{return[]}}});var gi=X((ki)=>{Object.defineProperty(ki,"__esModule",{value:!0});ki.HttpInstrumentation=void 0;var e=j(),mE=RV(),YdA=H("url"),JdA=Yl(),VQ=s(),D3=H("events"),fA=JA(),tA=Ti();class Pi extends VQ.InstrumentationBase{_spanNotEnded=new WeakSet;_headerCapture;_httpPatched=!1;_httpsPatched=!1;_semconvStability=VQ.SemconvStability.OLD;constructor(A={}){super("@opentelemetry/instrumentation-http",JdA.VERSION,A);this._semconvStability=(0,VQ.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._headerCapture=this._createHeaderCapture(this._semconvStability)}_updateMetricInstruments(){this._oldHttpServerDurationHistogram=this.meter.createHistogram("http.server.duration",{description:"Measures the duration of inbound HTTP requests.",unit:"ms",valueType:e.ValueType.DOUBLE}),this._oldHttpClientDurationHistogram=this.meter.createHistogram("http.client.duration",{description:"Measures the duration of outbound HTTP requests.",unit:"ms",valueType:e.ValueType.DOUBLE}),this._stableHttpServerDurationHistogram=this.meter.createHistogram(fA.METRIC_HTTP_SERVER_REQUEST_DURATION,{description:"Duration of HTTP server requests.",unit:"s",valueType:e.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[0.005,0.01,0.025,0.05,0.075,0.1,0.25,0.5,0.75,1,2.5,5,7.5,10]}}),this._stableHttpClientDurationHistogram=this.meter.createHistogram(fA.METRIC_HTTP_CLIENT_REQUEST_DURATION,{description:"Duration of HTTP client requests.",unit:"s",valueType:e.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[0.005,0.01,0.025,0.05,0.075,0.1,0.25,0.5,0.75,1,2.5,5,7.5,10]}})}_recordServerDuration(A,Q,B){if(this._semconvStability&VQ.SemconvStability.OLD)this._oldHttpServerDurationHistogram.record(A,Q);if(this._semconvStability&VQ.SemconvStability.STABLE)this._stableHttpServerDurationHistogram.record(A/1000,B)}_recordClientDuration(A,Q,B){if(this._semconvStability&VQ.SemconvStability.OLD)this._oldHttpClientDurationHistogram.record(A,Q);if(this._semconvStability&VQ.SemconvStability.STABLE)this._stableHttpClientDurationHistogram.record(A/1000,B)}setConfig(A={}){super.setConfig(A),this._headerCapture=this._createHeaderCapture(this._semconvStability)}init(){return[this._getHttpsInstrumentation(),this._getHttpInstrumentation()]}_getHttpInstrumentation(){return new VQ.InstrumentationNodeModuleDefinition("http",["*"],(A)=>{if(this._httpPatched)return A;this._httpPatched=!0;let Q=A[Symbol.toStringTag]==="Module";if(!this.getConfig().disableOutgoingRequestInstrumentation){let B=this._wrap(A,"request",this._getPatchOutgoingRequestFunction("http")),I=this._wrap(A,"get",this._getPatchOutgoingGetFunction(B));if(Q)A.default.request=B,A.default.get=I}if(!this.getConfig().disableIncomingRequestInstrumentation)this._wrap(A.Server.prototype,"emit",this._getPatchIncomingRequestFunction("http"));return A},(A)=>{if(this._httpPatched=!1,A===void 0)return;if(!this.getConfig().disableOutgoingRequestInstrumentation)this._unwrap(A,"request"),this._unwrap(A,"get");if(!this.getConfig().disableIncomingRequestInstrumentation)this._unwrap(A.Server.prototype,"emit")})}_getHttpsInstrumentation(){return new VQ.InstrumentationNodeModuleDefinition("https",["*"],(A)=>{if(this._httpsPatched)return A;this._httpsPatched=!0;let Q=A[Symbol.toStringTag]==="Module";if(!this.getConfig().disableOutgoingRequestInstrumentation){let B=this._wrap(A,"request",this._getPatchHttpsOutgoingRequestFunction("https")),I=this._wrap(A,"get",this._getPatchHttpsOutgoingGetFunction(B));if(Q)A.default.request=B,A.default.get=I}if(!this.getConfig().disableIncomingRequestInstrumentation)this._wrap(A.Server.prototype,"emit",this._getPatchIncomingRequestFunction("https"));return A},(A)=>{if(this._httpsPatched=!1,A===void 0)return;if(!this.getConfig().disableOutgoingRequestInstrumentation)this._unwrap(A,"request"),this._unwrap(A,"get");if(!this.getConfig().disableIncomingRequestInstrumentation)this._unwrap(A.Server.prototype,"emit")})}_getPatchIncomingRequestFunction(A){return(Q)=>{return this._incomingRequestFunction(A,Q)}}_getPatchOutgoingRequestFunction(A){return(Q)=>{return this._outgoingRequestFunction(A,Q)}}_getPatchOutgoingGetFunction(A){return(Q)=>{return function(I,...C){let E=A(I,...C);return E.end(),E}}}_getPatchHttpsOutgoingRequestFunction(A){return(Q)=>{let B=this;return function(C,...E){if(A==="https"&&typeof C==="object"&&C?.constructor?.name!=="URL")C=Object.assign({},C),B._setDefaultOptions(C);return B._getPatchOutgoingRequestFunction(A)(Q)(C,...E)}}}_setDefaultOptions(A){A.protocol=A.protocol||"https:",A.port=A.port||443}_getPatchHttpsOutgoingGetFunction(A){return(Q)=>{let B=this;return function(C,...E){return B._getPatchOutgoingGetFunction(A)(Q)(C,...E)}}}_traceClientRequest(A,Q,B,I,C){if(this.getConfig().requestHook)this._callRequestHook(Q,A);let E=!1;return A.prependListener("response",(Y)=>{if(this._diag.debug("outgoingRequest on response()"),A.listenerCount("response")<=1)Y.resume();let J=(0,tA.getOutgoingRequestAttributesOnResponse)(Y,this._semconvStability);if(Q.setAttributes(J),I=Object.assign(I,(0,tA.getOutgoingRequestMetricAttributesOnResponse)(J)),C=Object.assign(C,(0,tA.getOutgoingStableRequestMetricAttributesOnResponse)(J)),this.getConfig().responseHook)this._callResponseHook(Q,Y);Q.setAttributes(this._headerCapture.client.captureRequestHeaders((G)=>A.getHeader(G))),Q.setAttributes(this._headerCapture.client.captureResponseHeaders((G)=>Y.headers[G])),e.context.bind(e.context.active(),Y);let F=()=>{if(this._diag.debug("outgoingRequest on end()"),E)return;E=!0;let G;if(Y.aborted&&!Y.complete)G={code:e.SpanStatusCode.ERROR};else G={code:(0,tA.parseResponseStatus)(e.SpanKind.CLIENT,Y.statusCode)};if(Q.setStatus(G),this.getConfig().applyCustomAttributesOnSpan)(0,VQ.safeExecuteInTheMiddle)(()=>this.getConfig().applyCustomAttributesOnSpan(Q,A,Y),()=>{},!0);this._closeHttpSpan(Q,e.SpanKind.CLIENT,B,I,C)};Y.on("end",F),Y.on(D3.errorMonitor,(G)=>{if(this._diag.debug("outgoingRequest on error()",G),E)return;E=!0,this._onOutgoingRequestError(Q,I,C,B,G)})}),A.on("close",()=>{if(this._diag.debug("outgoingRequest on request close()"),A.aborted||E)return;E=!0,this._closeHttpSpan(Q,e.SpanKind.CLIENT,B,I,C)}),A.on(D3.errorMonitor,(Y)=>{if(this._diag.debug("outgoingRequest on request error()",Y),E)return;E=!0,this._onOutgoingRequestError(Q,I,C,B,Y)}),this._diag.debug("http.ClientRequest return request"),A}_incomingRequestFunction(A,Q){let B=this;return function(C,...E){if(C!=="request")return Q.apply(this,[C,...E]);let Y=E[0],J=E[1],F=Y.method||"GET";if(B._diag.debug(`${A} instrumentation incomingRequest`),(0,VQ.safeExecuteInTheMiddle)(()=>B.getConfig().ignoreIncomingRequestHook?.(Y),(M)=>{if(M!=null)B._diag.error("caught ignoreIncomingRequestHook error: ",M)},!0))return e.context.with((0,mE.suppressTracing)(e.context.active()),()=>{return e.context.bind(e.context.active(),Y),e.context.bind(e.context.active(),J),Q.apply(this,[C,...E])});let G=Y.headers,D=(0,tA.getIncomingRequestAttributes)(Y,{component:A,serverName:B.getConfig().serverName,hookAttributes:B._callStartSpanHook(Y,B.getConfig().startIncomingSpanHook),semconvStability:B._semconvStability,enableSyntheticSourceDetection:B.getConfig().enableSyntheticSourceDetection||!1},B._diag);Object.assign(D,B._headerCapture.server.captureRequestHeaders((M)=>Y.headers[M]));let Z={kind:e.SpanKind.SERVER,attributes:D},W=(0,mE.hrTime)(),U=(0,tA.getIncomingRequestMetricAttributes)(D),w={[fA.ATTR_HTTP_REQUEST_METHOD]:D[fA.ATTR_HTTP_REQUEST_METHOD],[fA.ATTR_URL_SCHEME]:D[fA.ATTR_URL_SCHEME]};if(D[fA.ATTR_NETWORK_PROTOCOL_VERSION])w[fA.ATTR_NETWORK_PROTOCOL_VERSION]=D[fA.ATTR_NETWORK_PROTOCOL_VERSION];let K=e.propagation.extract(e.ROOT_CONTEXT,G),V=B._startHttpSpan(F,Z,K),z={type:mE.RPCType.HTTP,span:V};return e.context.with((0,mE.setRPCMetadata)(e.trace.setSpan(K,V),z),()=>{if(e.context.bind(e.context.active(),Y),e.context.bind(e.context.active(),J),B.getConfig().requestHook)B._callRequestHook(V,Y);if(B.getConfig().responseHook)B._callResponseHook(V,J);let M=!1;return J.on("close",()=>{if(M)return;B._onServerResponseFinish(Y,J,V,U,w,W)}),J.on(D3.errorMonitor,(L)=>{M=!0,B._onServerResponseError(V,U,w,W,L)}),(0,VQ.safeExecuteInTheMiddle)(()=>Q.apply(this,[C,...E]),(L)=>{if(L)throw B._onServerResponseError(V,U,w,W,L),L})})}}_outgoingRequestFunction(A,Q){let B=this;return function(C,...E){if(!(0,tA.isValidOptionsType)(C))return Q.apply(this,[C,...E]);let Y=typeof E[0]==="object"&&(typeof C==="string"||C instanceof YdA.URL)?E.shift():void 0,{method:J,invalidUrl:F,optionsParsed:G}=(0,tA.getRequestInfo)(B._diag,C,Y);if((0,VQ.safeExecuteInTheMiddle)(()=>B.getConfig().ignoreOutgoingRequestHook?.(G),(N)=>{if(N!=null)B._diag.error("caught ignoreOutgoingRequestHook error: ",N)},!0))return Q.apply(this,[G,...E]);let{hostname:D,port:Z}=(0,tA.extractHostnameAndPort)(G),W=(0,tA.getOutgoingRequestAttributes)(G,{component:A,port:Z,hostname:D,hookAttributes:B._callStartSpanHook(G,B.getConfig().startOutgoingSpanHook),redactedQueryParams:B.getConfig().redactedQueryParams},B._semconvStability,B.getConfig().enableSyntheticSourceDetection||!1),U=(0,mE.hrTime)(),w=(0,tA.getOutgoingRequestMetricAttributes)(W),K={[fA.ATTR_HTTP_REQUEST_METHOD]:W[fA.ATTR_HTTP_REQUEST_METHOD],[fA.ATTR_SERVER_ADDRESS]:W[fA.ATTR_SERVER_ADDRESS],[fA.ATTR_SERVER_PORT]:W[fA.ATTR_SERVER_PORT]};if(W[fA.ATTR_HTTP_RESPONSE_STATUS_CODE])K[fA.ATTR_HTTP_RESPONSE_STATUS_CODE]=W[fA.ATTR_HTTP_RESPONSE_STATUS_CODE];if(W[fA.ATTR_NETWORK_PROTOCOL_VERSION])K[fA.ATTR_NETWORK_PROTOCOL_VERSION]=W[fA.ATTR_NETWORK_PROTOCOL_VERSION];let V={kind:e.SpanKind.CLIENT,attributes:W},z=B._startHttpSpan(J,V),M=e.context.active(),L=e.trace.setSpan(M,z);if(!G.headers)G.headers={};else G.headers=Object.assign({},G.headers);return e.propagation.inject(L,G.headers),e.context.with(L,()=>{let N=E[E.length-1];if(typeof N==="function")E[E.length-1]=e.context.bind(M,N);let T=(0,VQ.safeExecuteInTheMiddle)(()=>{if(F)return Q.apply(this,[C,...E]);else return Q.apply(this,[G,...E])},(y)=>{if(y)throw B._onOutgoingRequestError(z,w,K,U,y),y});return B._diag.debug(`${A} instrumentation outgoingRequest`),e.context.bind(M,T),B._traceClientRequest(T,z,U,w,K)})}}_onServerResponseFinish(A,Q,B,I,C,E){let Y=(0,tA.getIncomingRequestAttributesOnResponse)(A,Q,this._semconvStability);I=Object.assign(I,(0,tA.getIncomingRequestMetricAttributesOnResponse)(Y)),C=Object.assign(C,(0,tA.getIncomingStableRequestMetricAttributesOnResponse)(Y)),B.setAttributes(this._headerCapture.server.captureResponseHeaders((F)=>Q.getHeader(F))),B.setAttributes(Y).setStatus({code:(0,tA.parseResponseStatus)(e.SpanKind.SERVER,Q.statusCode)});let J=Y[fA.ATTR_HTTP_ROUTE];if(J)B.updateName(`${A.method||"GET"} ${J}`);if(this.getConfig().applyCustomAttributesOnSpan)(0,VQ.safeExecuteInTheMiddle)(()=>this.getConfig().applyCustomAttributesOnSpan(B,A,Q),()=>{},!0);this._closeHttpSpan(B,e.SpanKind.SERVER,E,I,C)}_onOutgoingRequestError(A,Q,B,I,C){(0,tA.setSpanWithError)(A,C,this._semconvStability),B[fA.ATTR_ERROR_TYPE]=C.name,this._closeHttpSpan(A,e.SpanKind.CLIENT,I,Q,B)}_onServerResponseError(A,Q,B,I,C){(0,tA.setSpanWithError)(A,C,this._semconvStability),B[fA.ATTR_ERROR_TYPE]=C.name,this._closeHttpSpan(A,e.SpanKind.SERVER,I,Q,B)}_startHttpSpan(A,Q,B=e.context.active()){let I=Q.kind===e.SpanKind.CLIENT?this.getConfig().requireParentforOutgoingSpans:this.getConfig().requireParentforIncomingSpans,C,E=e.trace.getSpan(B);if(I===!0&&(!E||!e.trace.isSpanContextValid(E.spanContext())))C=e.trace.wrapSpanContext(e.INVALID_SPAN_CONTEXT);else if(I===!0&&E?.spanContext().isRemote)C=E;else C=this.tracer.startSpan(A,Q,B);return this._spanNotEnded.add(C),C}_closeHttpSpan(A,Q,B,I,C){if(!this._spanNotEnded.has(A))return;A.end(),this._spanNotEnded.delete(A);let E=(0,mE.hrTimeToMilliseconds)((0,mE.hrTimeDuration)(B,(0,mE.hrTime)()));if(Q===e.SpanKind.SERVER)this._recordServerDuration(E,I,C);else if(Q===e.SpanKind.CLIENT)this._recordClientDuration(E,I,C)}_callResponseHook(A,Q){(0,VQ.safeExecuteInTheMiddle)(()=>this.getConfig().responseHook(A,Q),()=>{},!0)}_callRequestHook(A,Q){(0,VQ.safeExecuteInTheMiddle)(()=>this.getConfig().requestHook(A,Q),()=>{},!0)}_callStartSpanHook(A,Q){if(typeof Q==="function")return(0,VQ.safeExecuteInTheMiddle)(()=>Q(A),()=>{},!0)}_createHeaderCapture(A){let Q=this.getConfig();return{client:{captureRequestHeaders:(0,tA.headerCapture)("request",Q.headersToSpanAttributes?.client?.requestHeaders??[],A),captureResponseHeaders:(0,tA.headerCapture)("response",Q.headersToSpanAttributes?.client?.responseHeaders??[],A)},server:{captureRequestHeaders:(0,tA.headerCapture)("request",Q.headersToSpanAttributes?.server?.requestHeaders??[],A),captureResponseHeaders:(0,tA.headerCapture)("response",Q.headersToSpanAttributes?.server?.responseHeaders??[],A)}}}}ki.HttpInstrumentation=Pi});var yi=X((Z3)=>{Object.defineProperty(Z3,"__esModule",{value:!0});Z3.HttpInstrumentation=void 0;var FdA=gi();Object.defineProperty(Z3,"HttpInstrumentation",{enumerable:!0,get:function(){return FdA.HttpInstrumentation}})});var aZ=X((ps)=>{Object.defineProperty(ps,"__esModule",{value:!0});ps.isTracingSuppressed=ps.unsuppressTracing=ps.suppressTracing=void 0;var BpA=j(),F7=(0,BpA.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function IpA(A){return A.setValue(F7,!0)}ps.suppressTracing=IpA;function CpA(A){return A.deleteValue(F7)}ps.unsuppressTracing=CpA;function EpA(A){return A.getValue(F7)===!0}ps.isTracingSuppressed=EpA});var G7=X((ns)=>{Object.defineProperty(ns,"__esModule",{value:!0});ns.BAGGAGE_MAX_TOTAL_LENGTH=ns.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=ns.BAGGAGE_MAX_NAME_VALUE_PAIRS=ns.BAGGAGE_HEADER=ns.BAGGAGE_ITEMS_SEPARATOR=ns.BAGGAGE_PROPERTIES_SEPARATOR=ns.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;ns.BAGGAGE_KEY_PAIR_SEPARATOR="=";ns.BAGGAGE_PROPERTIES_SEPARATOR=";";ns.BAGGAGE_ITEMS_SEPARATOR=",";ns.BAGGAGE_HEADER="baggage";ns.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;ns.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;ns.BAGGAGE_MAX_TOTAL_LENGTH=8192});var D7=X((ss)=>{Object.defineProperty(ss,"__esModule",{value:!0});ss.parseKeyPairsIntoRecord=ss.parsePairKeyValue=ss.getKeyPairs=ss.serializeKeyPairs=void 0;var XpA=j(),nF=G7();function wpA(A){return A.reduce((Q,B)=>{let I=`${Q}${Q!==""?nF.BAGGAGE_ITEMS_SEPARATOR:""}${B}`;return I.length>nF.BAGGAGE_MAX_TOTAL_LENGTH?Q:I},"")}ss.serializeKeyPairs=wpA;function KpA(A){return A.getAllEntries().map(([Q,B])=>{let I=`${encodeURIComponent(Q)}=${encodeURIComponent(B.value)}`;if(B.metadata!==void 0)I+=nF.BAGGAGE_PROPERTIES_SEPARATOR+B.metadata.toString();return I})}ss.getKeyPairs=KpA;function as(A){if(!A)return;let Q=A.indexOf(nF.BAGGAGE_PROPERTIES_SEPARATOR),B=Q===-1?A:A.substring(0,Q),I=B.indexOf(nF.BAGGAGE_KEY_PAIR_SEPARATOR);if(I<=0)return;let C=B.substring(0,I).trim(),E=B.substring(I+1).trim();if(!C||!E)return;let Y,J;try{Y=decodeURIComponent(C),J=decodeURIComponent(E)}catch{return}let F;if(Q!==-1&&Q0)A.split(nF.BAGGAGE_ITEMS_SEPARATOR).forEach((B)=>{let I=as(B);if(I!==void 0&&I.value.length>0)Q[I.key]=I.value});return Q}ss.parseKeyPairsIntoRecord=VpA});var Qr=X((es)=>{Object.defineProperty(es,"__esModule",{value:!0});es.W3CBaggagePropagator=void 0;var Z7=j(),MpA=aZ(),dY=G7(),W7=D7();class ts{inject(A,Q,B){let I=Z7.propagation.getBaggage(A);if(!I||(0,MpA.isTracingSuppressed)(A))return;let C=(0,W7.getKeyPairs)(I).filter((Y)=>{return Y.length<=dY.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS}).slice(0,dY.BAGGAGE_MAX_NAME_VALUE_PAIRS),E=(0,W7.serializeKeyPairs)(C);if(E.length>0)B.set(Q,dY.BAGGAGE_HEADER,E)}extract(A,Q,B){let I=B.get(Q,dY.BAGGAGE_HEADER),C=Array.isArray(I)?I.join(dY.BAGGAGE_ITEMS_SEPARATOR):I;if(!C)return A;let E={};if(C.length===0)return A;if(C.split(dY.BAGGAGE_ITEMS_SEPARATOR).forEach((J)=>{let F=(0,W7.parsePairKeyValue)(J);if(F){let G={value:F.value};if(F.metadata)G.metadata=F.metadata;E[F.key]=G}}),Object.entries(E).length===0)return A;return Z7.propagation.setBaggage(A,Z7.propagation.createBaggage(E))}fields(){return[dY.BAGGAGE_HEADER]}}es.W3CBaggagePropagator=ts});var Er=X((Ir)=>{Object.defineProperty(Ir,"__esModule",{value:!0});Ir.AnchoredClock=void 0;class Br{_monotonicClock;_epochMillis;_performanceMillis;constructor(A,Q){this._monotonicClock=Q,this._epochMillis=A.now(),this._performanceMillis=Q.now()}now(){let A=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+A}}Ir.AnchoredClock=Br});var Wr=X((Dr)=>{Object.defineProperty(Dr,"__esModule",{value:!0});Dr.isAttributeValue=Dr.isAttributeKey=Dr.sanitizeAttributes=void 0;var Yr=j();function LpA(A){let Q={};if(typeof A!=="object"||A==null)return Q;for(let B in A){if(!Object.prototype.hasOwnProperty.call(A,B))continue;if(!Jr(B)){Yr.diag.warn(`Invalid attribute key: ${B}`);continue}let I=A[B];if(!Fr(I)){Yr.diag.warn(`Invalid attribute value set for key: ${B}`);continue}if(Array.isArray(I))Q[B]=I.slice();else Q[B]=I}return Q}Dr.sanitizeAttributes=LpA;function Jr(A){return typeof A==="string"&&A!==""}Dr.isAttributeKey=Jr;function Fr(A){if(A==null)return!0;if(Array.isArray(A))return NpA(A);return Gr(typeof A)}Dr.isAttributeValue=Fr;function NpA(A){let Q;for(let B of A){if(B==null)continue;let I=typeof B;if(I===Q)continue;if(!Q){if(Gr(I)){Q=I;continue}return!1}return!1}return!0}function Gr(A){switch(A){case"number":case"boolean":case"string":return!0}return!1}});var U7=X((Ur)=>{Object.defineProperty(Ur,"__esModule",{value:!0});Ur.loggingErrorHandler=void 0;var qpA=j();function OpA(){return(A)=>{qpA.diag.error(TpA(A))}}Ur.loggingErrorHandler=OpA;function TpA(A){if(typeof A==="string")return A;else return JSON.stringify(PpA(A))}function PpA(A){let Q={},B=A;while(B!==null)Object.getOwnPropertyNames(B).forEach((I)=>{if(Q[I])return;let C=B[I];if(C)Q[I]=String(C)}),B=Object.getPrototypeOf(B);return Q}});var zr=X((Kr)=>{Object.defineProperty(Kr,"__esModule",{value:!0});Kr.globalErrorHandler=Kr.setGlobalErrorHandler=void 0;var kpA=U7(),wr=(0,kpA.loggingErrorHandler)();function SpA(A){wr=A}Kr.setGlobalErrorHandler=SpA;function gpA(A){try{wr(A)}catch{}}Kr.globalErrorHandler=gpA});var jr=X((Lr)=>{Object.defineProperty(Lr,"__esModule",{value:!0});Lr.getStringListFromEnv=Lr.getBooleanFromEnv=Lr.getStringFromEnv=Lr.getNumberFromEnv=void 0;var $r=j(),Hr=H("util");function hpA(A){let Q=process.env[A];if(Q==null||Q.trim()==="")return;let B=Number(Q);if(isNaN(B)){$r.diag.warn(`Unknown value ${(0,Hr.inspect)(Q)} for ${A}, expected a number, using defaults`);return}return B}Lr.getNumberFromEnv=hpA;function Mr(A){let Q=process.env[A];if(Q==null||Q.trim()==="")return;return Q}Lr.getStringFromEnv=Mr;function fpA(A){let Q=process.env[A]?.trim().toLowerCase();if(Q==null||Q==="")return!1;if(Q==="true")return!0;else if(Q==="false")return!1;else return $r.diag.warn(`Unknown value ${(0,Hr.inspect)(Q)} for ${A}, expected 'true' or 'false', falling back to 'false' (default)`),!1}Lr.getBooleanFromEnv=fpA;function _pA(A){return Mr(A)?.split(",").map((Q)=>Q.trim()).filter((Q)=>Q!=="")}Lr.getStringListFromEnv=_pA});var Or=X((Rr)=>{Object.defineProperty(Rr,"__esModule",{value:!0});Rr._globalThis=void 0;Rr._globalThis=globalThis});var kr=X((Tr)=>{Object.defineProperty(Tr,"__esModule",{value:!0});Tr.VERSION=void 0;Tr.VERSION="2.6.1"});var yr=X((Sr)=>{Object.defineProperty(Sr,"__esModule",{value:!0});Sr.ATTR_PROCESS_RUNTIME_NAME=void 0;Sr.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var _r=X((hr)=>{Object.defineProperty(hr,"__esModule",{value:!0});hr.SDK_INFO=void 0;var mpA=kr(),OX=JA(),dpA=yr();hr.SDK_INFO={[OX.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[dpA.ATTR_PROCESS_RUNTIME_NAME]:"node",[OX.ATTR_TELEMETRY_SDK_LANGUAGE]:OX.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[OX.ATTR_TELEMETRY_SDK_VERSION]:mpA.VERSION}});var xr=X((D0)=>{Object.defineProperty(D0,"__esModule",{value:!0});D0.otperformance=D0.SDK_INFO=D0._globalThis=D0.getStringListFromEnv=D0.getNumberFromEnv=D0.getBooleanFromEnv=D0.getStringFromEnv=void 0;var TX=jr();Object.defineProperty(D0,"getStringFromEnv",{enumerable:!0,get:function(){return TX.getStringFromEnv}});Object.defineProperty(D0,"getBooleanFromEnv",{enumerable:!0,get:function(){return TX.getBooleanFromEnv}});Object.defineProperty(D0,"getNumberFromEnv",{enumerable:!0,get:function(){return TX.getNumberFromEnv}});Object.defineProperty(D0,"getStringListFromEnv",{enumerable:!0,get:function(){return TX.getStringListFromEnv}});var cpA=Or();Object.defineProperty(D0,"_globalThis",{enumerable:!0,get:function(){return cpA._globalThis}});var upA=_r();Object.defineProperty(D0,"SDK_INFO",{enumerable:!0,get:function(){return upA.SDK_INFO}});D0.otperformance=performance});var X7=X((eC)=>{Object.defineProperty(eC,"__esModule",{value:!0});eC.getStringListFromEnv=eC.getNumberFromEnv=eC.getStringFromEnv=eC.getBooleanFromEnv=eC.otperformance=eC._globalThis=eC.SDK_INFO=void 0;var cY=xr();Object.defineProperty(eC,"SDK_INFO",{enumerable:!0,get:function(){return cY.SDK_INFO}});Object.defineProperty(eC,"_globalThis",{enumerable:!0,get:function(){return cY._globalThis}});Object.defineProperty(eC,"otperformance",{enumerable:!0,get:function(){return cY.otperformance}});Object.defineProperty(eC,"getBooleanFromEnv",{enumerable:!0,get:function(){return cY.getBooleanFromEnv}});Object.defineProperty(eC,"getStringFromEnv",{enumerable:!0,get:function(){return cY.getStringFromEnv}});Object.defineProperty(eC,"getNumberFromEnv",{enumerable:!0,get:function(){return cY.getNumberFromEnv}});Object.defineProperty(eC,"getStringListFromEnv",{enumerable:!0,get:function(){return cY.getStringListFromEnv}})});var lr=X((cr)=>{Object.defineProperty(cr,"__esModule",{value:!0});cr.addHrTimes=cr.isTimeInput=cr.isTimeInputHrTime=cr.hrTimeToMicroseconds=cr.hrTimeToMilliseconds=cr.hrTimeToNanoseconds=cr.hrTimeToTimeStamp=cr.hrTimeDuration=cr.timeInputToHrTime=cr.hrTime=cr.getTimeOrigin=cr.millisToHrTime=void 0;var PX=X7(),br=9,ppA=6,ipA=Math.pow(10,ppA),kX=Math.pow(10,br);function sZ(A){let Q=A/1000,B=Math.trunc(Q),I=Math.round(A%1000*ipA);return[B,I]}cr.millisToHrTime=sZ;function npA(){return PX.otperformance.timeOrigin}cr.getTimeOrigin=npA;function mr(A){let Q=sZ(PX.otperformance.timeOrigin),B=sZ(typeof A==="number"?A:PX.otperformance.now());return dr(Q,B)}cr.hrTime=mr;function opA(A){if(w7(A))return A;else if(typeof A==="number")if(A=kX)B[1]-=kX,B[0]+=1;return B}cr.addHrTimes=dr});var nr=X((pr)=>{Object.defineProperty(pr,"__esModule",{value:!0});pr.unrefTimer=void 0;function WiA(A){if(typeof A!=="number")A.unref()}pr.unrefTimer=WiA});var ar=X((or)=>{Object.defineProperty(or,"__esModule",{value:!0});or.ExportResultCode=void 0;var UiA;(function(A){A[A.SUCCESS=0]="SUCCESS",A[A.FAILED=1]="FAILED"})(UiA=or.ExportResultCode||(or.ExportResultCode={}))});var At=X((tr)=>{Object.defineProperty(tr,"__esModule",{value:!0});tr.CompositePropagator=void 0;var sr=j();class rr{_propagators;_fields;constructor(A={}){this._propagators=A.propagators??[],this._fields=Array.from(new Set(this._propagators.map((Q)=>typeof Q.fields==="function"?Q.fields():[]).reduce((Q,B)=>Q.concat(B),[])))}inject(A,Q,B){for(let I of this._propagators)try{I.inject(A,Q,B)}catch(C){sr.diag.warn(`Failed to inject with ${I.constructor.name}. Err: ${C.message}`)}}extract(A,Q,B){return this._propagators.reduce((I,C)=>{try{return C.extract(I,Q,B)}catch(E){sr.diag.warn(`Failed to extract with ${C.constructor.name}. Err: ${E.message}`)}return I},A)}fields(){return this._fields.slice()}}tr.CompositePropagator=rr});var It=X((Qt)=>{Object.defineProperty(Qt,"__esModule",{value:!0});Qt.validateValue=Qt.validateKey=void 0;var V7="[_0-9a-z-*/]",XiA=`[a-z]${V7}{0,255}`,wiA=`[a-z0-9]${V7}{0,240}@[a-z]${V7}{0,13}`,KiA=new RegExp(`^(?:${XiA}|${wiA})$`),ViA=/^[ -~]{0,255}[!-~]$/,ziA=/,|=/;function $iA(A){return KiA.test(A)}Qt.validateKey=$iA;function HiA(A){return ViA.test(A)&&!ziA.test(A)}Qt.validateValue=HiA});var $7=X((Ft)=>{Object.defineProperty(Ft,"__esModule",{value:!0});Ft.TraceState=void 0;var Ct=It(),Et=32,LiA=512,Yt=",",Jt="=";class z7{_internalState=new Map;constructor(A){if(A)this._parse(A)}set(A,Q){let B=this._clone();if(B._internalState.has(A))B._internalState.delete(A);return B._internalState.set(A,Q),B}unset(A){let Q=this._clone();return Q._internalState.delete(A),Q}get(A){return this._internalState.get(A)}serialize(){return this._keys().reduce((A,Q)=>{return A.push(Q+Jt+this.get(Q)),A},[]).join(Yt)}_parse(A){if(A.length>LiA)return;if(this._internalState=A.split(Yt).reverse().reduce((Q,B)=>{let I=B.trim(),C=I.indexOf(Jt);if(C!==-1){let E=I.slice(0,C),Y=I.slice(C+1,B.length);if((0,Ct.validateKey)(E)&&(0,Ct.validateValue)(Y))Q.set(E,Y)}return Q},new Map),this._internalState.size>Et)this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,Et))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let A=new z7;return A._internalState=new Map(this._internalState),A}}Ft.TraceState=z7});var Xt=X((Wt)=>{Object.defineProperty(Wt,"__esModule",{value:!0});Wt.W3CTraceContextPropagator=Wt.parseTraceParent=Wt.TRACE_STATE_HEADER=Wt.TRACE_PARENT_HEADER=void 0;var SX=j(),NiA=aZ(),jiA=$7();Wt.TRACE_PARENT_HEADER="traceparent";Wt.TRACE_STATE_HEADER="tracestate";var RiA="00",qiA="(?!ff)[\\da-f]{2}",OiA="(?![0]{32})[\\da-f]{32}",TiA="(?![0]{16})[\\da-f]{16}",PiA="[\\da-f]{2}",kiA=new RegExp(`^\\s?(${qiA})-(${OiA})-(${TiA})-(${PiA})(-.*)?\\s?$`);function Dt(A){let Q=kiA.exec(A);if(!Q)return null;if(Q[1]==="00"&&Q[5])return null;return{traceId:Q[2],spanId:Q[3],traceFlags:parseInt(Q[4],16)}}Wt.parseTraceParent=Dt;class Zt{inject(A,Q,B){let I=SX.trace.getSpanContext(A);if(!I||(0,NiA.isTracingSuppressed)(A)||!(0,SX.isSpanContextValid)(I))return;let C=`${RiA}-${I.traceId}-${I.spanId}-0${Number(I.traceFlags||SX.TraceFlags.NONE).toString(16)}`;if(B.set(Q,Wt.TRACE_PARENT_HEADER,C),I.traceState)B.set(Q,Wt.TRACE_STATE_HEADER,I.traceState.serialize())}extract(A,Q,B){let I=B.get(Q,Wt.TRACE_PARENT_HEADER);if(!I)return A;let C=Array.isArray(I)?I[0]:I;if(typeof C!=="string")return A;let E=Dt(C);if(!E)return A;E.isRemote=!0;let Y=B.get(Q,Wt.TRACE_STATE_HEADER);if(Y){let J=Array.isArray(Y)?Y.join(","):Y;E.traceState=new jiA.TraceState(typeof J==="string"?J:void 0)}return SX.trace.setSpanContext(A,E)}fields(){return[Wt.TRACE_PARENT_HEADER,Wt.TRACE_STATE_HEADER]}}Wt.W3CTraceContextPropagator=Zt});var zt=X((Kt)=>{Object.defineProperty(Kt,"__esModule",{value:!0});Kt.getRPCMetadata=Kt.deleteRPCMetadata=Kt.setRPCMetadata=Kt.RPCType=void 0;var giA=j(),H7=(0,giA.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),yiA;(function(A){A.HTTP="http"})(yiA=Kt.RPCType||(Kt.RPCType={}));function hiA(A,Q){return A.setValue(H7,Q)}Kt.setRPCMetadata=hiA;function fiA(A){return A.deleteValue(H7)}Kt.deleteRPCMetadata=fiA;function _iA(A){return A.getValue(H7)}Kt.getRPCMetadata=_iA});var Rt=X((Nt)=>{Object.defineProperty(Nt,"__esModule",{value:!0});Nt.isPlainObject=void 0;var biA="[object Object]",miA="[object Null]",diA="[object Undefined]",ciA=Function.prototype,$t=ciA.toString,uiA=$t.call(Object),liA=Object.getPrototypeOf,Ht=Object.prototype,Mt=Ht.hasOwnProperty,uY=Symbol?Symbol.toStringTag:void 0,Lt=Ht.toString;function piA(A){if(!iiA(A)||niA(A)!==biA)return!1;let Q=liA(A);if(Q===null)return!0;let B=Mt.call(Q,"constructor")&&Q.constructor;return typeof B=="function"&&B instanceof B&&$t.call(B)===uiA}Nt.isPlainObject=piA;function iiA(A){return A!=null&&typeof A=="object"}function niA(A){if(A==null)return A===void 0?diA:miA;return uY&&uY in Object(A)?oiA(A):aiA(A)}function oiA(A){let Q=Mt.call(A,uY),B=A[uY],I=!1;try{A[uY]=void 0,I=!0}catch{}let C=Lt.call(A);if(I)if(Q)A[uY]=B;else delete A[uY];return C}function aiA(A){return Lt.call(A)}});var gt=X((kt)=>{Object.defineProperty(kt,"__esModule",{value:!0});kt.merge=void 0;var qt=Rt(),siA=20;function riA(...A){let Q=A.shift(),B=new WeakMap;while(A.length>0)Q=Tt(Q,A.shift(),0,B);return Q}kt.merge=riA;function M7(A){if(fX(A))return A.slice();return A}function Tt(A,Q,B=0,I){let C;if(B>siA)return;if(B++,hX(A)||hX(Q)||Pt(Q))C=M7(Q);else if(fX(A)){if(C=A.slice(),fX(Q))for(let E=0,Y=Q.length;E"u")delete C[F];else C[F]=G;else{let D=C[F],Z=G;if(Ot(A,F,I)||Ot(Q,F,I))delete C[F];else{if(rZ(D)&&rZ(Z)){let W=I.get(D)||[],U=I.get(Z)||[];W.push({obj:A,key:F}),U.push({obj:Q,key:F}),I.set(D,W),I.set(Z,U)}C[F]=Tt(C[F],G,B,I)}}}}else C=Q;return C}function Ot(A,Q,B){let I=B.get(A[Q])||[];for(let C=0,E=I.length;C"u"||A instanceof Date||A instanceof RegExp||A===null}function tiA(A,Q){if(!(0,qt.isPlainObject)(A)||!(0,qt.isPlainObject)(Q))return!1;return!0}});var ft=X((yt)=>{Object.defineProperty(yt,"__esModule",{value:!0});yt.callWithTimeout=yt.TimeoutError=void 0;class _X extends Error{constructor(A){super(A);Object.setPrototypeOf(this,_X.prototype)}}yt.TimeoutError=_X;function eiA(A,Q){let B,I=new Promise(function(E,Y){B=setTimeout(function(){Y(new _X("Operation timed out."))},Q)});return Promise.race([A,I]).then((C)=>{return clearTimeout(B),C},(C)=>{throw clearTimeout(B),C})}yt.callWithTimeout=eiA});var bt=X((vt)=>{Object.defineProperty(vt,"__esModule",{value:!0});vt.isUrlIgnored=vt.urlMatches=void 0;function _t(A,Q){if(typeof Q==="string")return A===Q;else return!!A.match(Q)}vt.urlMatches=_t;function QnA(A,Q){if(!Q)return!1;for(let B of Q)if(_t(A,B))return!0;return!1}vt.isUrlIgnored=QnA});var ut=X((dt)=>{Object.defineProperty(dt,"__esModule",{value:!0});dt.Deferred=void 0;class mt{_promise;_resolve;_reject;constructor(){this._promise=new Promise((A,Q)=>{this._resolve=A,this._reject=Q})}get promise(){return this._promise}resolve(A){this._resolve(A)}reject(A){this._reject(A)}}dt.Deferred=mt});var nt=X((pt)=>{Object.defineProperty(pt,"__esModule",{value:!0});pt.BindOnceFuture=void 0;var InA=ut();class lt{_isCalled=!1;_deferred=new InA.Deferred;_callback;_that;constructor(A,Q){this._callback=A,this._that=Q}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...A){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...A)).then((Q)=>this._deferred.resolve(Q),(Q)=>this._deferred.reject(Q))}catch(Q){this._deferred.reject(Q)}}return this._deferred.promise}}pt.BindOnceFuture=lt});var rt=X((at)=>{Object.defineProperty(at,"__esModule",{value:!0});at.diagLogLevelFromString=void 0;var AE=j(),ot={ALL:AE.DiagLogLevel.ALL,VERBOSE:AE.DiagLogLevel.VERBOSE,DEBUG:AE.DiagLogLevel.DEBUG,INFO:AE.DiagLogLevel.INFO,WARN:AE.DiagLogLevel.WARN,ERROR:AE.DiagLogLevel.ERROR,NONE:AE.DiagLogLevel.NONE};function CnA(A){if(A==null)return;let Q=ot[A.toUpperCase()];if(Q==null)return AE.diag.warn(`Unknown log level "${A}", expected one of ${Object.keys(ot)}, using default`),AE.DiagLogLevel.INFO;return Q}at.diagLogLevelFromString=CnA});var Qe=X((et)=>{Object.defineProperty(et,"__esModule",{value:!0});et._export=void 0;var tt=j(),EnA=aZ();function YnA(A,Q){return new Promise((B)=>{tt.context.with((0,EnA.suppressTracing)(tt.context.active()),()=>{A.export(Q,B)})})}et._export=YnA});var MA=X((l)=>{Object.defineProperty(l,"__esModule",{value:!0});l.internal=l.diagLogLevelFromString=l.BindOnceFuture=l.urlMatches=l.isUrlIgnored=l.callWithTimeout=l.TimeoutError=l.merge=l.TraceState=l.unsuppressTracing=l.suppressTracing=l.isTracingSuppressed=l.setRPCMetadata=l.getRPCMetadata=l.deleteRPCMetadata=l.RPCType=l.parseTraceParent=l.W3CTraceContextPropagator=l.TRACE_STATE_HEADER=l.TRACE_PARENT_HEADER=l.CompositePropagator=l.otperformance=l.getStringListFromEnv=l.getNumberFromEnv=l.getBooleanFromEnv=l.getStringFromEnv=l._globalThis=l.SDK_INFO=l.parseKeyPairsIntoRecord=l.ExportResultCode=l.unrefTimer=l.timeInputToHrTime=l.millisToHrTime=l.isTimeInputHrTime=l.isTimeInput=l.hrTimeToTimeStamp=l.hrTimeToNanoseconds=l.hrTimeToMilliseconds=l.hrTimeToMicroseconds=l.hrTimeDuration=l.hrTime=l.getTimeOrigin=l.addHrTimes=l.loggingErrorHandler=l.setGlobalErrorHandler=l.globalErrorHandler=l.sanitizeAttributes=l.isAttributeValue=l.AnchoredClock=l.W3CBaggagePropagator=void 0;var JnA=Qr();Object.defineProperty(l,"W3CBaggagePropagator",{enumerable:!0,get:function(){return JnA.W3CBaggagePropagator}});var FnA=Er();Object.defineProperty(l,"AnchoredClock",{enumerable:!0,get:function(){return FnA.AnchoredClock}});var Be=Wr();Object.defineProperty(l,"isAttributeValue",{enumerable:!0,get:function(){return Be.isAttributeValue}});Object.defineProperty(l,"sanitizeAttributes",{enumerable:!0,get:function(){return Be.sanitizeAttributes}});var Ie=zr();Object.defineProperty(l,"globalErrorHandler",{enumerable:!0,get:function(){return Ie.globalErrorHandler}});Object.defineProperty(l,"setGlobalErrorHandler",{enumerable:!0,get:function(){return Ie.setGlobalErrorHandler}});var GnA=U7();Object.defineProperty(l,"loggingErrorHandler",{enumerable:!0,get:function(){return GnA.loggingErrorHandler}});var ZI=lr();Object.defineProperty(l,"addHrTimes",{enumerable:!0,get:function(){return ZI.addHrTimes}});Object.defineProperty(l,"getTimeOrigin",{enumerable:!0,get:function(){return ZI.getTimeOrigin}});Object.defineProperty(l,"hrTime",{enumerable:!0,get:function(){return ZI.hrTime}});Object.defineProperty(l,"hrTimeDuration",{enumerable:!0,get:function(){return ZI.hrTimeDuration}});Object.defineProperty(l,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return ZI.hrTimeToMicroseconds}});Object.defineProperty(l,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return ZI.hrTimeToMilliseconds}});Object.defineProperty(l,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return ZI.hrTimeToNanoseconds}});Object.defineProperty(l,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return ZI.hrTimeToTimeStamp}});Object.defineProperty(l,"isTimeInput",{enumerable:!0,get:function(){return ZI.isTimeInput}});Object.defineProperty(l,"isTimeInputHrTime",{enumerable:!0,get:function(){return ZI.isTimeInputHrTime}});Object.defineProperty(l,"millisToHrTime",{enumerable:!0,get:function(){return ZI.millisToHrTime}});Object.defineProperty(l,"timeInputToHrTime",{enumerable:!0,get:function(){return ZI.timeInputToHrTime}});var DnA=nr();Object.defineProperty(l,"unrefTimer",{enumerable:!0,get:function(){return DnA.unrefTimer}});var ZnA=ar();Object.defineProperty(l,"ExportResultCode",{enumerable:!0,get:function(){return ZnA.ExportResultCode}});var WnA=D7();Object.defineProperty(l,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return WnA.parseKeyPairsIntoRecord}});var lY=X7();Object.defineProperty(l,"SDK_INFO",{enumerable:!0,get:function(){return lY.SDK_INFO}});Object.defineProperty(l,"_globalThis",{enumerable:!0,get:function(){return lY._globalThis}});Object.defineProperty(l,"getStringFromEnv",{enumerable:!0,get:function(){return lY.getStringFromEnv}});Object.defineProperty(l,"getBooleanFromEnv",{enumerable:!0,get:function(){return lY.getBooleanFromEnv}});Object.defineProperty(l,"getNumberFromEnv",{enumerable:!0,get:function(){return lY.getNumberFromEnv}});Object.defineProperty(l,"getStringListFromEnv",{enumerable:!0,get:function(){return lY.getStringListFromEnv}});Object.defineProperty(l,"otperformance",{enumerable:!0,get:function(){return lY.otperformance}});var UnA=At();Object.defineProperty(l,"CompositePropagator",{enumerable:!0,get:function(){return UnA.CompositePropagator}});var vX=Xt();Object.defineProperty(l,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return vX.TRACE_PARENT_HEADER}});Object.defineProperty(l,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return vX.TRACE_STATE_HEADER}});Object.defineProperty(l,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return vX.W3CTraceContextPropagator}});Object.defineProperty(l,"parseTraceParent",{enumerable:!0,get:function(){return vX.parseTraceParent}});var xX=zt();Object.defineProperty(l,"RPCType",{enumerable:!0,get:function(){return xX.RPCType}});Object.defineProperty(l,"deleteRPCMetadata",{enumerable:!0,get:function(){return xX.deleteRPCMetadata}});Object.defineProperty(l,"getRPCMetadata",{enumerable:!0,get:function(){return xX.getRPCMetadata}});Object.defineProperty(l,"setRPCMetadata",{enumerable:!0,get:function(){return xX.setRPCMetadata}});var L7=aZ();Object.defineProperty(l,"isTracingSuppressed",{enumerable:!0,get:function(){return L7.isTracingSuppressed}});Object.defineProperty(l,"suppressTracing",{enumerable:!0,get:function(){return L7.suppressTracing}});Object.defineProperty(l,"unsuppressTracing",{enumerable:!0,get:function(){return L7.unsuppressTracing}});var XnA=$7();Object.defineProperty(l,"TraceState",{enumerable:!0,get:function(){return XnA.TraceState}});var wnA=gt();Object.defineProperty(l,"merge",{enumerable:!0,get:function(){return wnA.merge}});var Ce=ft();Object.defineProperty(l,"TimeoutError",{enumerable:!0,get:function(){return Ce.TimeoutError}});Object.defineProperty(l,"callWithTimeout",{enumerable:!0,get:function(){return Ce.callWithTimeout}});var Ee=bt();Object.defineProperty(l,"isUrlIgnored",{enumerable:!0,get:function(){return Ee.isUrlIgnored}});Object.defineProperty(l,"urlMatches",{enumerable:!0,get:function(){return Ee.urlMatches}});var KnA=nt();Object.defineProperty(l,"BindOnceFuture",{enumerable:!0,get:function(){return KnA.BindOnceFuture}});var VnA=rt();Object.defineProperty(l,"diagLogLevelFromString",{enumerable:!0,get:function(){return VnA.diagLogLevelFromString}});var znA=Qe();l.internal={_export:znA._export}});var T7=X((je)=>{Object.defineProperty(je,"__esModule",{value:!0});je.AbstractAsyncHooksContextManager=void 0;var mnA=H("events"),dnA=["addListener","on","once","prependListener","prependOnceListener"];class Ne{bind(A,Q){if(Q instanceof mnA.EventEmitter)return this._bindEventEmitter(A,Q);if(typeof Q==="function")return this._bindFunction(A,Q);return Q}_bindFunction(A,Q){let B=this,I=function(...C){return B.with(A,()=>Q.apply(this,C))};return Object.defineProperty(I,"length",{enumerable:!1,configurable:!0,writable:!1,value:Q.length}),I}_bindEventEmitter(A,Q){if(this._getPatchMap(Q)!==void 0)return Q;if(this._createPatchMap(Q),dnA.forEach((I)=>{if(Q[I]===void 0)return;Q[I]=this._patchAddListener(Q,Q[I],A)}),typeof Q.removeListener==="function")Q.removeListener=this._patchRemoveListener(Q,Q.removeListener);if(typeof Q.off==="function")Q.off=this._patchRemoveListener(Q,Q.off);if(typeof Q.removeAllListeners==="function")Q.removeAllListeners=this._patchRemoveAllListeners(Q,Q.removeAllListeners);return Q}_patchRemoveListener(A,Q){let B=this;return function(I,C){let E=B._getPatchMap(A)?.[I];if(E===void 0)return Q.call(this,I,C);let Y=E.get(C);return Q.call(this,I,Y||C)}}_patchRemoveAllListeners(A,Q){let B=this;return function(I){let C=B._getPatchMap(A);if(C!==void 0){if(arguments.length===0)B._createPatchMap(A);else if(C[I]!==void 0)delete C[I]}return Q.apply(this,arguments)}}_patchAddListener(A,Q,B){let I=this;return function(C,E){if(I._wrapped)return Q.call(this,C,E);let Y=I._getPatchMap(A);if(Y===void 0)Y=I._createPatchMap(A);let J=Y[C];if(J===void 0)J=new WeakMap,Y[C]=J;let F=I.bind(B,E);J.set(E,F),I._wrapped=!0;try{return Q.call(this,C,F)}finally{I._wrapped=!1}}}_createPatchMap(A){let Q=Object.create(null);return A[this._kOtListeners]=Q,Q}_getPatchMap(A){return A[this._kOtListeners]}_kOtListeners=Symbol("OtListeners");_wrapped=!1}je.AbstractAsyncHooksContextManager=Ne});var Pe=X((Oe)=>{Object.defineProperty(Oe,"__esModule",{value:!0});Oe.AsyncHooksContextManager=void 0;var cnA=j(),unA=H("async_hooks"),lnA=T7();class qe extends lnA.AbstractAsyncHooksContextManager{_asyncHook;_contexts=new Map;_stack=[];constructor(){super();this._asyncHook=unA.createHook({init:this._init.bind(this),before:this._before.bind(this),after:this._after.bind(this),destroy:this._destroy.bind(this),promiseResolve:this._destroy.bind(this)})}active(){return this._stack[this._stack.length-1]??cnA.ROOT_CONTEXT}with(A,Q,B,...I){this._enterContext(A);try{return Q.call(B,...I)}finally{this._exitContext()}}enable(){return this._asyncHook.enable(),this}disable(){return this._asyncHook.disable(),this._contexts.clear(),this._stack=[],this}_init(A,Q){if(Q==="TIMERWRAP")return;let B=this._stack[this._stack.length-1];if(B!==void 0)this._contexts.set(A,B)}_destroy(A){this._contexts.delete(A)}_before(A){let Q=this._contexts.get(A);if(Q!==void 0)this._enterContext(Q)}_after(){this._exitContext()}_enterContext(A){this._stack.push(A)}_exitContext(){this._stack.pop()}}Oe.AsyncHooksContextManager=qe});var ye=X((Se)=>{Object.defineProperty(Se,"__esModule",{value:!0});Se.AsyncLocalStorageContextManager=void 0;var pnA=j(),inA=H("async_hooks"),nnA=T7();class ke extends nnA.AbstractAsyncHooksContextManager{_asyncLocalStorage;constructor(){super();this._asyncLocalStorage=new inA.AsyncLocalStorage}active(){return this._asyncLocalStorage.getStore()??pnA.ROOT_CONTEXT}with(A,Q,B,...I){let C=B==null?Q:Q.bind(B);return this._asyncLocalStorage.run(A,C,...I)}enable(){return this}disable(){return this._asyncLocalStorage.disable(),this}}Se.AsyncLocalStorageContextManager=ke});var he=X((lX)=>{Object.defineProperty(lX,"__esModule",{value:!0});lX.AsyncLocalStorageContextManager=lX.AsyncHooksContextManager=void 0;var onA=Pe();Object.defineProperty(lX,"AsyncHooksContextManager",{enumerable:!0,get:function(){return onA.AsyncHooksContextManager}});var anA=ye();Object.defineProperty(lX,"AsyncLocalStorageContextManager",{enumerable:!0,get:function(){return anA.AsyncLocalStorageContextManager}})});var P7=X((fe)=>{Object.defineProperty(fe,"__esModule",{value:!0});fe._clearDefaultServiceNameCache=fe.defaultServiceName=void 0;var QW;function rnA(){if(QW===void 0)try{let A=globalThis.process.argv0;QW=A?`unknown_service:${A}`:"unknown_service"}catch{QW="unknown_service"}return QW}fe.defaultServiceName=rnA;function tnA(){QW=void 0}fe._clearDefaultServiceNameCache=tnA});var be=X((ve)=>{Object.defineProperty(ve,"__esModule",{value:!0});ve.isPromiseLike=void 0;var AoA=(A)=>{return A!==null&&typeof A==="object"&&typeof A.then==="function"};ve.isPromiseLike=AoA});var g7=X((de)=>{Object.defineProperty(de,"__esModule",{value:!0});de.defaultResource=de.emptyResource=de.resourceFromDetectedResource=de.resourceFromAttributes=void 0;var IW=j(),k7=MA(),pY=JA(),QoA=P7(),BW=be();class CW{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(A,Q){let B=new CW({},Q);return B._rawAttributes=me(A),B._asyncAttributesPending=A.filter(([I,C])=>(0,BW.isPromiseLike)(C)).length>0,B}constructor(A,Q){let B=A.attributes??{};this._rawAttributes=Object.entries(B).map(([I,C])=>{if((0,BW.isPromiseLike)(C))this._asyncAttributesPending=!0;return[I,C]}),this._rawAttributes=me(this._rawAttributes),this._schemaUrl=EoA(Q?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(!this.asyncAttributesPending)return;for(let A=0;A{if((0,BW.isPromiseLike)(B))return[Q,B.catch((I)=>{IW.diag.debug("promise rejection for resource attribute: %s - %s",Q,I);return})];return[Q,B]})}function EoA(A){if(typeof A==="string"||A===void 0)return A;IW.diag.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",A);return}function YoA(A,Q){let B=A?.schemaUrl,I=Q?.schemaUrl,C=B===void 0||B==="",E=I===void 0||I==="";if(C)return I;if(E)return B;if(B===I)return B;IW.diag.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',B,I);return}});var ie=X((le)=>{Object.defineProperty(le,"__esModule",{value:!0});le.detectResources=void 0;var ue=j(),y7=g7(),DoA=(A={})=>{return(A.detectors||[]).map((B)=>{try{let I=(0,y7.resourceFromDetectedResource)(B.detect(A));return ue.diag.debug(`${B.constructor.name} found resource.`,I),I}catch(I){return ue.diag.debug(`${B.constructor.name} failed: ${I.message}`),(0,y7.emptyResource)()}}).reduce((B,I)=>B.merge(I),(0,y7.emptyResource)())};le.detectResources=DoA});var re=X((ae)=>{Object.defineProperty(ae,"__esModule",{value:!0});ae.envDetector=void 0;var ZoA=j(),WoA=JA(),ne=MA();class oe{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(A){let Q={},B=(0,ne.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),I=(0,ne.getStringFromEnv)("OTEL_SERVICE_NAME");if(B)try{let C=this._parseResourceAttributes(B);Object.assign(Q,C)}catch(C){ZoA.diag.debug(`EnvDetector failed: ${C instanceof Error?C.message:C}`)}if(I)Q[WoA.ATTR_SERVICE_NAME]=I;return{attributes:Q}}_parseResourceAttributes(A){if(!A)return{};let Q={},B=A.split(this._COMMA_SEPARATOR);for(let I of B){let C=I.split(this._LABEL_KEY_VALUE_SPLITTER);if(C.length!==2)throw Error(`Invalid format for OTEL_RESOURCE_ATTRIBUTES: "${I}". Expected format: key=value. The ',' and '=' characters must be percent-encoded in keys and values.`);let[E,Y]=C,J=E.trim(),F=Y.trim();if(J.length===0)throw Error(`Invalid OTEL_RESOURCE_ATTRIBUTES: empty attribute key in "${I}".`);let G,D;try{G=decodeURIComponent(J),D=decodeURIComponent(F)}catch(Z){throw Error(`Failed to percent-decode OTEL_RESOURCE_ATTRIBUTES entry "${I}": ${Z instanceof Error?Z.message:Z}`)}if(G.length>this._MAX_LENGTH)throw Error(`Attribute key exceeds the maximum length of ${this._MAX_LENGTH} characters: "${G}".`);if(D.length>this._MAX_LENGTH)throw Error(`Attribute value exceeds the maximum length of ${this._MAX_LENGTH} characters for key "${G}".`);Q[G]=D}return Q}}ae.envDetector=new oe});var EW=X((te)=>{Object.defineProperty(te,"__esModule",{value:!0});te.ATTR_WEBENGINE_VERSION=te.ATTR_WEBENGINE_NAME=te.ATTR_WEBENGINE_DESCRIPTION=te.ATTR_SERVICE_NAMESPACE=te.ATTR_SERVICE_INSTANCE_ID=te.ATTR_PROCESS_RUNTIME_VERSION=te.ATTR_PROCESS_RUNTIME_NAME=te.ATTR_PROCESS_RUNTIME_DESCRIPTION=te.ATTR_PROCESS_PID=te.ATTR_PROCESS_OWNER=te.ATTR_PROCESS_EXECUTABLE_PATH=te.ATTR_PROCESS_EXECUTABLE_NAME=te.ATTR_PROCESS_COMMAND_ARGS=te.ATTR_PROCESS_COMMAND=te.ATTR_OS_VERSION=te.ATTR_OS_TYPE=te.ATTR_K8S_POD_NAME=te.ATTR_K8S_NAMESPACE_NAME=te.ATTR_K8S_DEPLOYMENT_NAME=te.ATTR_K8S_CLUSTER_NAME=te.ATTR_HOST_TYPE=te.ATTR_HOST_NAME=te.ATTR_HOST_IMAGE_VERSION=te.ATTR_HOST_IMAGE_NAME=te.ATTR_HOST_IMAGE_ID=te.ATTR_HOST_ID=te.ATTR_HOST_ARCH=te.ATTR_CONTAINER_NAME=te.ATTR_CONTAINER_IMAGE_TAGS=te.ATTR_CONTAINER_IMAGE_NAME=te.ATTR_CONTAINER_ID=te.ATTR_CLOUD_REGION=te.ATTR_CLOUD_PROVIDER=te.ATTR_CLOUD_AVAILABILITY_ZONE=te.ATTR_CLOUD_ACCOUNT_ID=void 0;te.ATTR_CLOUD_ACCOUNT_ID="cloud.account.id";te.ATTR_CLOUD_AVAILABILITY_ZONE="cloud.availability_zone";te.ATTR_CLOUD_PROVIDER="cloud.provider";te.ATTR_CLOUD_REGION="cloud.region";te.ATTR_CONTAINER_ID="container.id";te.ATTR_CONTAINER_IMAGE_NAME="container.image.name";te.ATTR_CONTAINER_IMAGE_TAGS="container.image.tags";te.ATTR_CONTAINER_NAME="container.name";te.ATTR_HOST_ARCH="host.arch";te.ATTR_HOST_ID="host.id";te.ATTR_HOST_IMAGE_ID="host.image.id";te.ATTR_HOST_IMAGE_NAME="host.image.name";te.ATTR_HOST_IMAGE_VERSION="host.image.version";te.ATTR_HOST_NAME="host.name";te.ATTR_HOST_TYPE="host.type";te.ATTR_K8S_CLUSTER_NAME="k8s.cluster.name";te.ATTR_K8S_DEPLOYMENT_NAME="k8s.deployment.name";te.ATTR_K8S_NAMESPACE_NAME="k8s.namespace.name";te.ATTR_K8S_POD_NAME="k8s.pod.name";te.ATTR_OS_TYPE="os.type";te.ATTR_OS_VERSION="os.version";te.ATTR_PROCESS_COMMAND="process.command";te.ATTR_PROCESS_COMMAND_ARGS="process.command_args";te.ATTR_PROCESS_EXECUTABLE_NAME="process.executable.name";te.ATTR_PROCESS_EXECUTABLE_PATH="process.executable.path";te.ATTR_PROCESS_OWNER="process.owner";te.ATTR_PROCESS_PID="process.pid";te.ATTR_PROCESS_RUNTIME_DESCRIPTION="process.runtime.description";te.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name";te.ATTR_PROCESS_RUNTIME_VERSION="process.runtime.version";te.ATTR_SERVICE_INSTANCE_ID="service.instance.id";te.ATTR_SERVICE_NAMESPACE="service.namespace";te.ATTR_WEBENGINE_DESCRIPTION="webengine.description";te.ATTR_WEBENGINE_NAME="webengine.name";te.ATTR_WEBENGINE_VERSION="webengine.version"});var pX=X((AAA)=>{Object.defineProperty(AAA,"__esModule",{value:!0});AAA.execAsync=void 0;var noA=H("child_process"),ooA=H("util");AAA.execAsync=ooA.promisify(noA.exec)});var CAA=X((BAA)=>{Object.defineProperty(BAA,"__esModule",{value:!0});BAA.getMachineId=void 0;var aoA=pX(),soA=j();async function roA(){try{let Q=(await(0,aoA.execAsync)('ioreg -rd1 -c "IOPlatformExpertDevice"')).stdout.split(` -`).find((I)=>I.includes("IOPlatformUUID"));if(!Q)return;let B=Q.split('" = "');if(B.length===2)return B[1].slice(0,-1)}catch(A){soA.diag.debug(`error reading machine id: ${A}`)}return}BAA.getMachineId=roA});var JAA=X((EAA)=>{Object.defineProperty(EAA,"__esModule",{value:!0});EAA.getMachineId=void 0;var toA=H("fs"),eoA=j();async function AaA(){let A=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let Q of A)try{return(await toA.promises.readFile(Q,{encoding:"utf8"})).trim()}catch(B){eoA.diag.debug(`error reading machine id: ${B}`)}return}EAA.getMachineId=AaA});var ZAA=X((GAA)=>{Object.defineProperty(GAA,"__esModule",{value:!0});GAA.getMachineId=void 0;var QaA=H("fs"),BaA=pX(),FAA=j();async function IaA(){try{return(await QaA.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(A){FAA.diag.debug(`error reading machine id: ${A}`)}try{return(await(0,BaA.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(A){FAA.diag.debug(`error reading machine id: ${A}`)}return}GAA.getMachineId=IaA});var wAA=X((UAA)=>{Object.defineProperty(UAA,"__esModule",{value:!0});UAA.getMachineId=void 0;var WAA=H("process"),CaA=pX(),EaA=j();async function YaA(){let Q="%windir%\\System32\\REG.exe";if(WAA.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in WAA.env)Q="%windir%\\sysnative\\cmd.exe /c "+Q;try{let I=(await(0,CaA.execAsync)(`${Q} QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid`)).stdout.split("REG_SZ");if(I.length===2)return I[1].trim()}catch(B){EaA.diag.debug(`error reading machine id: ${B}`)}return}UAA.getMachineId=YaA});var zAA=X((KAA)=>{Object.defineProperty(KAA,"__esModule",{value:!0});KAA.getMachineId=void 0;var JaA=j();async function FaA(){JaA.diag.debug("could not read machine-id: unsupported platform");return}KAA.getMachineId=FaA});var MAA=X(($AA)=>{Object.defineProperty($AA,"__esModule",{value:!0});$AA.getMachineId=void 0;var GaA=H("process"),iY;async function DaA(){if(!iY)switch(GaA.platform){case"darwin":iY=(await Promise.resolve().then(() => P(CAA()))).getMachineId;break;case"linux":iY=(await Promise.resolve().then(() => P(JAA()))).getMachineId;break;case"freebsd":iY=(await Promise.resolve().then(() => P(ZAA()))).getMachineId;break;case"win32":iY=(await Promise.resolve().then(() => P(wAA()))).getMachineId;break;default:iY=(await Promise.resolve().then(() => P(zAA()))).getMachineId;break}return iY()}$AA.getMachineId=DaA});var h7=X((LAA)=>{Object.defineProperty(LAA,"__esModule",{value:!0});LAA.normalizeType=LAA.normalizeArch=void 0;var ZaA=(A)=>{switch(A){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return A}};LAA.normalizeArch=ZaA;var WaA=(A)=>{switch(A){case"sunos":return"solaris";case"win32":return"windows";default:return A}};LAA.normalizeType=WaA});var TAA=X((qAA)=>{Object.defineProperty(qAA,"__esModule",{value:!0});qAA.hostDetector=void 0;var f7=EW(),jAA=H("os"),XaA=MAA(),waA=h7();class RAA{detect(A){return{attributes:{[f7.ATTR_HOST_NAME]:(0,jAA.hostname)(),[f7.ATTR_HOST_ARCH]:(0,waA.normalizeArch)((0,jAA.arch)()),[f7.ATTR_HOST_ID]:(0,XaA.getMachineId)()}}}}qAA.hostDetector=new RAA});var hAA=X((gAA)=>{Object.defineProperty(gAA,"__esModule",{value:!0});gAA.osDetector=void 0;var PAA=EW(),kAA=H("os"),KaA=h7();class SAA{detect(A){return{attributes:{[PAA.ATTR_OS_TYPE]:(0,KaA.normalizeType)((0,kAA.platform)()),[PAA.ATTR_OS_VERSION]:(0,kAA.release)()}}}}gAA.osDetector=new SAA});var xAA=X((_AA)=>{Object.defineProperty(_AA,"__esModule",{value:!0});_AA.processDetector=void 0;var VaA=j(),IE=EW(),zaA=H("os");class fAA{detect(A){let Q={[IE.ATTR_PROCESS_PID]:process.pid,[IE.ATTR_PROCESS_EXECUTABLE_NAME]:process.title,[IE.ATTR_PROCESS_EXECUTABLE_PATH]:process.execPath,[IE.ATTR_PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[IE.ATTR_PROCESS_RUNTIME_VERSION]:process.versions.node,[IE.ATTR_PROCESS_RUNTIME_NAME]:"nodejs",[IE.ATTR_PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};if(process.argv.length>1)Q[IE.ATTR_PROCESS_COMMAND]=process.argv[1];try{let B=zaA.userInfo();Q[IE.ATTR_PROCESS_OWNER]=B.username}catch(B){VaA.diag.debug(`error obtaining process owner: ${B}`)}return{attributes:Q}}}_AA.processDetector=new fAA});var cAA=X((mAA)=>{Object.defineProperty(mAA,"__esModule",{value:!0});mAA.serviceInstanceIdDetector=void 0;var $aA=EW(),HaA=H("crypto");class bAA{detect(A){return{attributes:{[$aA.ATTR_SERVICE_INSTANCE_ID]:(0,HaA.randomUUID)()}}}}mAA.serviceInstanceIdDetector=new bAA});var uAA=X((AG)=>{Object.defineProperty(AG,"__esModule",{value:!0});AG.serviceInstanceIdDetector=AG.processDetector=AG.osDetector=AG.hostDetector=void 0;var MaA=TAA();Object.defineProperty(AG,"hostDetector",{enumerable:!0,get:function(){return MaA.hostDetector}});var LaA=hAA();Object.defineProperty(AG,"osDetector",{enumerable:!0,get:function(){return LaA.osDetector}});var NaA=xAA();Object.defineProperty(AG,"processDetector",{enumerable:!0,get:function(){return NaA.processDetector}});var jaA=cAA();Object.defineProperty(AG,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return jaA.serviceInstanceIdDetector}})});var lAA=X((QG)=>{Object.defineProperty(QG,"__esModule",{value:!0});QG.serviceInstanceIdDetector=QG.processDetector=QG.osDetector=QG.hostDetector=void 0;var iX=uAA();Object.defineProperty(QG,"hostDetector",{enumerable:!0,get:function(){return iX.hostDetector}});Object.defineProperty(QG,"osDetector",{enumerable:!0,get:function(){return iX.osDetector}});Object.defineProperty(QG,"processDetector",{enumerable:!0,get:function(){return iX.processDetector}});Object.defineProperty(QG,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return iX.serviceInstanceIdDetector}})});var nAA=X((pAA)=>{Object.defineProperty(pAA,"__esModule",{value:!0});pAA.noopDetector=pAA.NoopDetector=void 0;class _7{detect(){return{attributes:{}}}}pAA.NoopDetector=_7;pAA.noopDetector=new _7});var oAA=X((W0)=>{Object.defineProperty(W0,"__esModule",{value:!0});W0.noopDetector=W0.serviceInstanceIdDetector=W0.processDetector=W0.osDetector=W0.hostDetector=W0.envDetector=void 0;var TaA=re();Object.defineProperty(W0,"envDetector",{enumerable:!0,get:function(){return TaA.envDetector}});var nX=lAA();Object.defineProperty(W0,"hostDetector",{enumerable:!0,get:function(){return nX.hostDetector}});Object.defineProperty(W0,"osDetector",{enumerable:!0,get:function(){return nX.osDetector}});Object.defineProperty(W0,"processDetector",{enumerable:!0,get:function(){return nX.processDetector}});Object.defineProperty(W0,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return nX.serviceInstanceIdDetector}});var PaA=nAA();Object.defineProperty(W0,"noopDetector",{enumerable:!0,get:function(){return PaA.noopDetector}})});var x7=X((UI)=>{Object.defineProperty(UI,"__esModule",{value:!0});UI.defaultServiceName=UI.emptyResource=UI.defaultResource=UI.resourceFromAttributes=UI.serviceInstanceIdDetector=UI.processDetector=UI.osDetector=UI.hostDetector=UI.envDetector=UI.detectResources=void 0;var SaA=ie();Object.defineProperty(UI,"detectResources",{enumerable:!0,get:function(){return SaA.detectResources}});var YW=oAA();Object.defineProperty(UI,"envDetector",{enumerable:!0,get:function(){return YW.envDetector}});Object.defineProperty(UI,"hostDetector",{enumerable:!0,get:function(){return YW.hostDetector}});Object.defineProperty(UI,"osDetector",{enumerable:!0,get:function(){return YW.osDetector}});Object.defineProperty(UI,"processDetector",{enumerable:!0,get:function(){return YW.processDetector}});Object.defineProperty(UI,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return YW.serviceInstanceIdDetector}});var v7=g7();Object.defineProperty(UI,"resourceFromAttributes",{enumerable:!0,get:function(){return v7.resourceFromAttributes}});Object.defineProperty(UI,"defaultResource",{enumerable:!0,get:function(){return v7.defaultResource}});Object.defineProperty(UI,"emptyResource",{enumerable:!0,get:function(){return v7.emptyResource}});var gaA=P7();Object.defineProperty(UI,"defaultServiceName",{enumerable:!0,get:function(){return gaA.defaultServiceName}})});var rAA=X((aAA)=>{Object.defineProperty(aAA,"__esModule",{value:!0});aAA.ExceptionEventName=void 0;aAA.ExceptionEventName="exception"});var QQA=X((eAA)=>{Object.defineProperty(eAA,"__esModule",{value:!0});eAA.SpanImpl=void 0;var TQ=j(),PQ=MA(),nY=JA(),haA=rAA();class tAA{_spanContext;kind;parentSpanContext;attributes={};links=[];events=[];startTime;resource;instrumentationScope;_droppedAttributesCount=0;_droppedEventsCount=0;_droppedLinksCount=0;_attributesCount=0;name;status={code:TQ.SpanStatusCode.UNSET};endTime=[0,0];_ended=!1;_duration=[-1,-1];_spanProcessor;_spanLimits;_attributeValueLengthLimit;_recordEndMetrics;_performanceStartTime;_performanceOffset;_startTimeProvided;constructor(A){let Q=Date.now();if(this._spanContext=A.spanContext,this._performanceStartTime=PQ.otperformance.now(),this._performanceOffset=Q-(this._performanceStartTime+PQ.otperformance.timeOrigin),this._startTimeProvided=A.startTime!=null,this._spanLimits=A.spanLimits,this._attributeValueLengthLimit=this._spanLimits.attributeValueLengthLimit??0,this._spanProcessor=A.spanProcessor,this.name=A.name,this.parentSpanContext=A.parentSpanContext,this.kind=A.kind,A.links)for(let B of A.links)this.addLink(B);if(this.startTime=this._getTime(A.startTime??Q),this.resource=A.resource,this.instrumentationScope=A.scope,this._recordEndMetrics=A.recordEndMetrics,A.attributes!=null)this.setAttributes(A.attributes);this._spanProcessor.onStart(this,A.context)}spanContext(){return this._spanContext}setAttribute(A,Q){if(Q==null||this._isSpanEnded())return this;if(A.length===0)return TQ.diag.warn(`Invalid attribute key: ${A}`),this;if(!(0,PQ.isAttributeValue)(Q))return TQ.diag.warn(`Invalid attribute value set for key: ${A}`),this;let{attributeCountLimit:B}=this._spanLimits,I=!Object.prototype.hasOwnProperty.call(this.attributes,A);if(B!==void 0&&this._attributesCount>=B&&I)return this._droppedAttributesCount++,this;if(this.attributes[A]=this._truncateToSize(Q),I)this._attributesCount++;return this}setAttributes(A){for(let Q in A)if(Object.prototype.hasOwnProperty.call(A,Q))this.setAttribute(Q,A[Q]);return this}addEvent(A,Q,B){if(this._isSpanEnded())return this;let{eventCountLimit:I}=this._spanLimits;if(I===0)return TQ.diag.warn("No events allowed."),this._droppedEventsCount++,this;if(I!==void 0&&this.events.length>=I){if(this._droppedEventsCount===0)TQ.diag.debug("Dropping extra events.");this.events.shift(),this._droppedEventsCount++}if((0,PQ.isTimeInput)(Q)){if(!(0,PQ.isTimeInput)(B))B=Q;Q=void 0}let C=(0,PQ.sanitizeAttributes)(Q),{attributePerEventCountLimit:E}=this._spanLimits,Y={},J=0,F=0;for(let G in C){if(!Object.prototype.hasOwnProperty.call(C,G))continue;let D=C[G];if(E!==void 0&&F>=E){J++;continue}Y[G]=this._truncateToSize(D),F++}return this.events.push({name:A,attributes:Y,time:this._getTime(B),droppedAttributesCount:J}),this}addLink(A){if(this._isSpanEnded())return this;let{linkCountLimit:Q}=this._spanLimits;if(Q===0)return this._droppedLinksCount++,this;if(Q!==void 0&&this.links.length>=Q){if(this._droppedLinksCount===0)TQ.diag.debug("Dropping extra links.");this.links.shift(),this._droppedLinksCount++}let{attributePerLinkCountLimit:B}=this._spanLimits,I=(0,PQ.sanitizeAttributes)(A.attributes),C={},E=0,Y=0;for(let F in I){if(!Object.prototype.hasOwnProperty.call(I,F))continue;let G=I[F];if(B!==void 0&&Y>=B){E++;continue}C[F]=this._truncateToSize(G),Y++}let J={context:A.context};if(Y>0)J.attributes=C;if(E>0)J.droppedAttributesCount=E;return this.links.push(J),this}addLinks(A){for(let Q of A)this.addLink(Q);return this}setStatus(A){if(this._isSpanEnded())return this;if(A.code===TQ.SpanStatusCode.UNSET)return this;if(this.status.code===TQ.SpanStatusCode.OK)return this;let Q={code:A.code};if(A.code===TQ.SpanStatusCode.ERROR){if(typeof A.message==="string")Q.message=A.message;else if(A.message!=null)TQ.diag.warn(`Dropping invalid status.message of type '${typeof A.message}', expected 'string'`)}return this.status=Q,this}updateName(A){if(this._isSpanEnded())return this;return this.name=A,this}end(A){if(this._isSpanEnded()){TQ.diag.error(`${this.name} ${this._spanContext.traceId}-${this._spanContext.spanId} - You can only call end() on a span once.`);return}if(this.endTime=this._getTime(A),this._duration=(0,PQ.hrTimeDuration)(this.startTime,this.endTime),this._duration[0]<0)TQ.diag.warn("Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.",this.startTime,this.endTime),this.endTime=this.startTime.slice(),this._duration=[0,0];if(this._droppedEventsCount>0)TQ.diag.warn(`Dropped ${this._droppedEventsCount} events because eventCountLimit reached`);if(this._droppedLinksCount>0)TQ.diag.warn(`Dropped ${this._droppedLinksCount} links because linkCountLimit reached`);if(this._spanProcessor.onEnding)this._spanProcessor.onEnding(this);this._recordEndMetrics?.(),this._ended=!0,this._spanProcessor.onEnd(this)}_getTime(A){if(typeof A==="number"&&A<=PQ.otperformance.now())return(0,PQ.hrTime)(A+this._performanceOffset);if(typeof A==="number")return(0,PQ.millisToHrTime)(A);if(A instanceof Date)return(0,PQ.millisToHrTime)(A.getTime());if((0,PQ.isTimeInputHrTime)(A))return A;if(this._startTimeProvided)return(0,PQ.millisToHrTime)(Date.now());let Q=PQ.otperformance.now()-this._performanceStartTime;return(0,PQ.addHrTimes)(this.startTime,(0,PQ.millisToHrTime)(Q))}isRecording(){return this._ended===!1}recordException(A,Q){let B={};if(typeof A==="string")B[nY.ATTR_EXCEPTION_MESSAGE]=A;else if(A){if(A.code)B[nY.ATTR_EXCEPTION_TYPE]=A.code.toString();else if(A.name)B[nY.ATTR_EXCEPTION_TYPE]=A.name;if(A.message)B[nY.ATTR_EXCEPTION_MESSAGE]=A.message;if(A.stack)B[nY.ATTR_EXCEPTION_STACKTRACE]=A.stack}if(B[nY.ATTR_EXCEPTION_TYPE]||B[nY.ATTR_EXCEPTION_MESSAGE])this.addEvent(haA.ExceptionEventName,B,Q);else TQ.diag.warn(`Failed to record an exception ${A}`)}get duration(){return this._duration}get ended(){return this._ended}get droppedAttributesCount(){return this._droppedAttributesCount}get droppedEventsCount(){return this._droppedEventsCount}get droppedLinksCount(){return this._droppedLinksCount}_isSpanEnded(){if(this._ended){let A=Error(`Operation attempted on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`);TQ.diag.warn(`Cannot execute the operation on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`,A)}return this._ended}_truncateToLimitUtil(A,Q){if(A.length<=Q)return A;return A.substring(0,Q)}_truncateToSize(A){let Q=this._attributeValueLengthLimit;if(Q<=0)return TQ.diag.warn(`Attribute value limit must be positive, got ${Q}`),A;if(typeof A==="string")return this._truncateToLimitUtil(A,Q);if(Array.isArray(A))return A.map((B)=>typeof B==="string"?this._truncateToLimitUtil(B,Q):B);return A}}eAA.SpanImpl=tAA});var BG=X((BQA)=>{Object.defineProperty(BQA,"__esModule",{value:!0});BQA.SamplingDecision=void 0;var faA;(function(A){A[A.NOT_RECORD=0]="NOT_RECORD",A[A.RECORD=1]="RECORD",A[A.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(faA=BQA.SamplingDecision||(BQA.SamplingDecision={}))});var oX=X((CQA)=>{Object.defineProperty(CQA,"__esModule",{value:!0});CQA.AlwaysOffSampler=void 0;var _aA=BG();class IQA{shouldSample(){return{decision:_aA.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}}CQA.AlwaysOffSampler=IQA});var aX=X((JQA)=>{Object.defineProperty(JQA,"__esModule",{value:!0});JQA.AlwaysOnSampler=void 0;var vaA=BG();class YQA{shouldSample(){return{decision:vaA.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}}JQA.AlwaysOnSampler=YQA});var d7=X((ZQA)=>{Object.defineProperty(ZQA,"__esModule",{value:!0});ZQA.ParentBasedSampler=void 0;var sX=j(),xaA=MA(),GQA=oX(),m7=aX();class DQA{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(A){if(this._root=A.root,!this._root)(0,xaA.globalErrorHandler)(Error("ParentBasedSampler must have a root sampler configured")),this._root=new m7.AlwaysOnSampler;this._remoteParentSampled=A.remoteParentSampled??new m7.AlwaysOnSampler,this._remoteParentNotSampled=A.remoteParentNotSampled??new GQA.AlwaysOffSampler,this._localParentSampled=A.localParentSampled??new m7.AlwaysOnSampler,this._localParentNotSampled=A.localParentNotSampled??new GQA.AlwaysOffSampler}shouldSample(A,Q,B,I,C,E){let Y=sX.trace.getSpanContext(A);if(!Y||!(0,sX.isSpanContextValid)(Y))return this._root.shouldSample(A,Q,B,I,C,E);if(Y.isRemote){if(Y.traceFlags&sX.TraceFlags.SAMPLED)return this._remoteParentSampled.shouldSample(A,Q,B,I,C,E);return this._remoteParentNotSampled.shouldSample(A,Q,B,I,C,E)}if(Y.traceFlags&sX.TraceFlags.SAMPLED)return this._localParentSampled.shouldSample(A,Q,B,I,C,E);return this._localParentNotSampled.shouldSample(A,Q,B,I,C,E)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}}ZQA.ParentBasedSampler=DQA});var c7=X((wQA)=>{Object.defineProperty(wQA,"__esModule",{value:!0});wQA.TraceIdRatioBasedSampler=void 0;var baA=j(),UQA=BG();class XQA{_ratio;_upperBound;constructor(A=0){this._ratio=this._normalize(A),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(A,Q){return{decision:(0,baA.isValidTraceId)(Q)&&this._accumulate(Q)=1?1:A<=0?0:A}_accumulate(A){let Q=0;for(let B=0;B>>0}return Q}}wQA.TraceIdRatioBasedSampler=XQA});var p7=X((MQA)=>{Object.defineProperty(MQA,"__esModule",{value:!0});MQA.buildSamplerFromEnv=MQA.loadDefaultConfig=void 0;var l7=j(),zC=MA(),VQA=oX(),u7=aX(),rX=d7(),zQA=c7(),$C;(function(A){A.AlwaysOff="always_off",A.AlwaysOn="always_on",A.ParentBasedAlwaysOff="parentbased_always_off",A.ParentBasedAlwaysOn="parentbased_always_on",A.ParentBasedTraceIdRatio="parentbased_traceidratio",A.TraceIdRatio="traceidratio"})($C||($C={}));var tX=1;function maA(){return{sampler:HQA(),forceFlushTimeoutMillis:30000,generalLimits:{attributeValueLengthLimit:(0,zC.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,zC.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??128},spanLimits:{attributeValueLengthLimit:(0,zC.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,zC.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??128,linkCountLimit:(0,zC.getNumberFromEnv)("OTEL_SPAN_LINK_COUNT_LIMIT")??128,eventCountLimit:(0,zC.getNumberFromEnv)("OTEL_SPAN_EVENT_COUNT_LIMIT")??128,attributePerEventCountLimit:(0,zC.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT")??128,attributePerLinkCountLimit:(0,zC.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT")??128}}}MQA.loadDefaultConfig=maA;function HQA(){let A=(0,zC.getStringFromEnv)("OTEL_TRACES_SAMPLER")??$C.ParentBasedAlwaysOn;switch(A){case $C.AlwaysOn:return new u7.AlwaysOnSampler;case $C.AlwaysOff:return new VQA.AlwaysOffSampler;case $C.ParentBasedAlwaysOn:return new rX.ParentBasedSampler({root:new u7.AlwaysOnSampler});case $C.ParentBasedAlwaysOff:return new rX.ParentBasedSampler({root:new VQA.AlwaysOffSampler});case $C.TraceIdRatio:return new zQA.TraceIdRatioBasedSampler($QA());case $C.ParentBasedTraceIdRatio:return new rX.ParentBasedSampler({root:new zQA.TraceIdRatioBasedSampler($QA())});default:return l7.diag.error(`OTEL_TRACES_SAMPLER value "${A}" invalid, defaulting to "${$C.ParentBasedAlwaysOn}".`),new rX.ParentBasedSampler({root:new u7.AlwaysOnSampler})}}MQA.buildSamplerFromEnv=HQA;function $QA(){let A=(0,zC.getNumberFromEnv)("OTEL_TRACES_SAMPLER_ARG");if(A==null)return l7.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${tX}.`),tX;if(A<0||A>1)return l7.diag.error(`OTEL_TRACES_SAMPLER_ARG=${A} was given, but it is out of range ([0..1]), defaulting to ${tX}.`),tX;return A}});var i7=X((jQA)=>{Object.defineProperty(jQA,"__esModule",{value:!0});jQA.reconfigureLimits=jQA.mergeConfig=jQA.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=jQA.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;var NQA=p7(),eX=MA();jQA.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;jQA.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function caA(A){let Q={sampler:(0,NQA.buildSamplerFromEnv)()},B=(0,NQA.loadDefaultConfig)(),I=Object.assign({},B,Q,A);return I.generalLimits=Object.assign({},B.generalLimits,A.generalLimits||{}),I.spanLimits=Object.assign({},B.spanLimits,A.spanLimits||{}),I}jQA.mergeConfig=caA;function uaA(A){let Q=Object.assign({},A.spanLimits);return Q.attributeCountLimit=A.spanLimits?.attributeCountLimit??A.generalLimits?.attributeCountLimit??(0,eX.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??(0,eX.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??jQA.DEFAULT_ATTRIBUTE_COUNT_LIMIT,Q.attributeValueLengthLimit=A.spanLimits?.attributeValueLengthLimit??A.generalLimits?.attributeValueLengthLimit??(0,eX.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??(0,eX.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??jQA.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},A,{spanLimits:Q})}jQA.reconfigureLimits=uaA});var SQA=X((PQA)=>{Object.defineProperty(PQA,"__esModule",{value:!0});PQA.BatchSpanProcessorBase=void 0;var IG=j(),CE=MA();class TQA{_maxExportBatchSize;_maxQueueSize;_scheduledDelayMillis;_exportTimeoutMillis;_exporter;_isExporting=!1;_finishedSpans=[];_timer;_shutdownOnce;_droppedSpansCount=0;constructor(A,Q){if(this._exporter=A,this._maxExportBatchSize=typeof Q?.maxExportBatchSize==="number"?Q.maxExportBatchSize:(0,CE.getNumberFromEnv)("OTEL_BSP_MAX_EXPORT_BATCH_SIZE")??512,this._maxQueueSize=typeof Q?.maxQueueSize==="number"?Q.maxQueueSize:(0,CE.getNumberFromEnv)("OTEL_BSP_MAX_QUEUE_SIZE")??2048,this._scheduledDelayMillis=typeof Q?.scheduledDelayMillis==="number"?Q.scheduledDelayMillis:(0,CE.getNumberFromEnv)("OTEL_BSP_SCHEDULE_DELAY")??5000,this._exportTimeoutMillis=typeof Q?.exportTimeoutMillis==="number"?Q.exportTimeoutMillis:(0,CE.getNumberFromEnv)("OTEL_BSP_EXPORT_TIMEOUT")??30000,this._shutdownOnce=new CE.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize)IG.diag.warn("BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize"),this._maxExportBatchSize=this._maxQueueSize}forceFlush(){if(this._shutdownOnce.isCalled)return this._shutdownOnce.promise;return this._flushAll()}onStart(A,Q){}onEnd(A){if(this._shutdownOnce.isCalled)return;if((A.spanContext().traceFlags&IG.TraceFlags.SAMPLED)===0)return;this._addToBuffer(A)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return Promise.resolve().then(()=>{return this.onShutdown()}).then(()=>{return this._flushAll()}).then(()=>{return this._exporter.shutdown()})}_addToBuffer(A){if(this._finishedSpans.length>=this._maxQueueSize){if(this._droppedSpansCount===0)IG.diag.debug("maxQueueSize reached, dropping spans");this._droppedSpansCount++;return}if(this._droppedSpansCount>0)IG.diag.warn(`Dropped ${this._droppedSpansCount} spans because maxQueueSize reached`),this._droppedSpansCount=0;this._finishedSpans.push(A),this._maybeStartTimer()}_flushAll(){return new Promise((A,Q)=>{let B=[],I=Math.ceil(this._finishedSpans.length/this._maxExportBatchSize);for(let C=0,E=I;C{A()}).catch(Q)})}_flushOneBatch(){if(this._clearTimer(),this._finishedSpans.length===0)return Promise.resolve();return new Promise((A,Q)=>{let B=setTimeout(()=>{Q(Error("Timeout"))},this._exportTimeoutMillis);IG.context.with((0,CE.suppressTracing)(IG.context.active()),()=>{let I;if(this._finishedSpans.length<=this._maxExportBatchSize)I=this._finishedSpans,this._finishedSpans=[];else I=this._finishedSpans.splice(0,this._maxExportBatchSize);let C=()=>this._exporter.export(I,(Y)=>{if(clearTimeout(B),Y.code===CE.ExportResultCode.SUCCESS)A();else Q(Y.error??Error("BatchSpanProcessor: span export failed"))}),E=null;for(let Y=0,J=I.length;Y{(0,CE.globalErrorHandler)(Y),Q(Y)})})})}_maybeStartTimer(){if(this._isExporting)return;let A=()=>{this._isExporting=!0,this._flushOneBatch().finally(()=>{if(this._isExporting=!1,this._finishedSpans.length>0)this._clearTimer(),this._maybeStartTimer()}).catch((Q)=>{this._isExporting=!1,(0,CE.globalErrorHandler)(Q)})};if(this._finishedSpans.length>=this._maxExportBatchSize)return A();if(this._timer!==void 0)return;if(this._timer=setTimeout(()=>A(),this._scheduledDelayMillis),typeof this._timer!=="number")this._timer.unref()}_clearTimer(){if(this._timer!==void 0)clearTimeout(this._timer),this._timer=void 0}}PQA.BatchSpanProcessorBase=TQA});var fQA=X((yQA)=>{Object.defineProperty(yQA,"__esModule",{value:!0});yQA.BatchSpanProcessor=void 0;var paA=SQA();class gQA extends paA.BatchSpanProcessorBase{onShutdown(){}}yQA.BatchSpanProcessor=gQA});var dQA=X((bQA)=>{Object.defineProperty(bQA,"__esModule",{value:!0});bQA.RandomIdGenerator=void 0;var iaA=8,vQA=16;class xQA{generateTraceId=_QA(vQA);generateSpanId=_QA(iaA)}bQA.RandomIdGenerator=xQA;var A8=Buffer.allocUnsafe(vQA);function _QA(A){return function(){for(let B=0;B>>0,B*4);for(let B=0;B0)break;else if(B===A-1)A8[A-1]=1;return A8.toString("hex",0,A)}}});var cQA=X((Q8)=>{Object.defineProperty(Q8,"__esModule",{value:!0});Q8.RandomIdGenerator=Q8.BatchSpanProcessor=void 0;var naA=fQA();Object.defineProperty(Q8,"BatchSpanProcessor",{enumerable:!0,get:function(){return naA.BatchSpanProcessor}});var oaA=dQA();Object.defineProperty(Q8,"RandomIdGenerator",{enumerable:!0,get:function(){return oaA.RandomIdGenerator}})});var n7=X((B8)=>{Object.defineProperty(B8,"__esModule",{value:!0});B8.RandomIdGenerator=B8.BatchSpanProcessor=void 0;var uQA=cQA();Object.defineProperty(B8,"BatchSpanProcessor",{enumerable:!0,get:function(){return uQA.BatchSpanProcessor}});Object.defineProperty(B8,"RandomIdGenerator",{enumerable:!0,get:function(){return uQA.RandomIdGenerator}})});var iQA=X((lQA)=>{Object.defineProperty(lQA,"__esModule",{value:!0});lQA.METRIC_OTEL_SDK_SPAN_STARTED=lQA.METRIC_OTEL_SDK_SPAN_LIVE=lQA.ATTR_OTEL_SPAN_SAMPLING_RESULT=lQA.ATTR_OTEL_SPAN_PARENT_ORIGIN=void 0;lQA.ATTR_OTEL_SPAN_PARENT_ORIGIN="otel.span.parent.origin";lQA.ATTR_OTEL_SPAN_SAMPLING_RESULT="otel.span.sampling_result";lQA.METRIC_OTEL_SDK_SPAN_LIVE="otel.sdk.span.live";lQA.METRIC_OTEL_SDK_SPAN_STARTED="otel.sdk.span.started"});var sQA=X((oQA)=>{Object.defineProperty(oQA,"__esModule",{value:!0});oQA.TracerMetrics=void 0;var I8=BG(),JW=iQA();class nQA{startedSpans;liveSpans;constructor(A){this.startedSpans=A.createCounter(JW.METRIC_OTEL_SDK_SPAN_STARTED,{unit:"{span}",description:"The number of created spans."}),this.liveSpans=A.createUpDownCounter(JW.METRIC_OTEL_SDK_SPAN_LIVE,{unit:"{span}",description:"The number of currently live spans."})}startSpan(A,Q){let B=QsA(Q);if(this.startedSpans.add(1,{[JW.ATTR_OTEL_SPAN_PARENT_ORIGIN]:AsA(A),[JW.ATTR_OTEL_SPAN_SAMPLING_RESULT]:B}),Q===I8.SamplingDecision.NOT_RECORD)return()=>{};let I={[JW.ATTR_OTEL_SPAN_SAMPLING_RESULT]:B};return this.liveSpans.add(1,I),()=>{this.liveSpans.add(-1,I)}}}oQA.TracerMetrics=nQA;function AsA(A){if(!A)return"none";if(A.isRemote)return"remote";return"local"}function QsA(A){switch(A){case I8.SamplingDecision.RECORD_AND_SAMPLED:return"RECORD_AND_SAMPLE";case I8.SamplingDecision.RECORD:return"RECORD_ONLY";case I8.SamplingDecision.NOT_RECORD:return"DROP"}}});var eQA=X((rQA)=>{Object.defineProperty(rQA,"__esModule",{value:!0});rQA.VERSION=void 0;rQA.VERSION="2.6.1"});var IBA=X((QBA)=>{Object.defineProperty(QBA,"__esModule",{value:!0});QBA.Tracer=void 0;var HQ=j(),C8=MA(),BsA=QQA(),IsA=i7(),CsA=n7(),EsA=sQA(),YsA=eQA();class ABA{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;_tracerMetrics;constructor(A,Q,B,I){let C=(0,IsA.mergeConfig)(Q);this._sampler=C.sampler,this._generalLimits=C.generalLimits,this._spanLimits=C.spanLimits,this._idGenerator=Q.idGenerator||new CsA.RandomIdGenerator,this._resource=B,this._spanProcessor=I,this.instrumentationScope=A;let E=C.meterProvider?C.meterProvider.getMeter("@opentelemetry/sdk-trace",YsA.VERSION):HQ.createNoopMeter();this._tracerMetrics=new EsA.TracerMetrics(E)}startSpan(A,Q={},B=HQ.context.active()){if(Q.root)B=HQ.trace.deleteSpan(B);let I=HQ.trace.getSpan(B);if((0,C8.isTracingSuppressed)(B))return HQ.diag.debug("Instrumentation suppressed, returning Noop Span"),HQ.trace.wrapSpanContext(HQ.INVALID_SPAN_CONTEXT);let C=I?.spanContext(),E=this._idGenerator.generateSpanId(),Y,J,F;if(!C||!HQ.trace.isSpanContextValid(C))J=this._idGenerator.generateTraceId();else J=C.traceId,F=C.traceState,Y=C;let G=Q.kind??HQ.SpanKind.INTERNAL,D=(Q.links??[]).map((M)=>{return{context:M.context,attributes:(0,C8.sanitizeAttributes)(M.attributes)}}),Z=(0,C8.sanitizeAttributes)(Q.attributes),W=this._sampler.shouldSample(B,J,A,G,Z,D),U=this._tracerMetrics.startSpan(C,W.decision);F=W.traceState??F;let w=W.decision===HQ.SamplingDecision.RECORD_AND_SAMPLED?HQ.TraceFlags.SAMPLED:HQ.TraceFlags.NONE,K={traceId:J,spanId:E,traceFlags:w,traceState:F};if(W.decision===HQ.SamplingDecision.NOT_RECORD)return HQ.diag.debug("Recording is off, propagating context in a non-recording span"),HQ.trace.wrapSpanContext(K);let V=(0,C8.sanitizeAttributes)(Object.assign(Z,W.attributes));return new BsA.SpanImpl({resource:this._resource,scope:this.instrumentationScope,context:B,spanContext:K,name:A,kind:G,links:D,parentSpanContext:Y,attributes:V,startTime:Q.startTime,spanProcessor:this._spanProcessor,spanLimits:this._spanLimits,recordEndMetrics:U})}startActiveSpan(A,Q,B,I){let C,E,Y;if(arguments.length<2)return;else if(arguments.length===2)Y=Q;else if(arguments.length===3)C=Q,Y=B;else C=Q,E=B,Y=I;let J=E??HQ.context.active(),F=this.startSpan(A,C,J),G=HQ.trace.setSpan(J,F);return HQ.context.with(G,Y,void 0,F)}getGeneralLimits(){return this._generalLimits}getSpanLimits(){return this._spanLimits}}QBA.Tracer=ABA});var JBA=X((EBA)=>{Object.defineProperty(EBA,"__esModule",{value:!0});EBA.MultiSpanProcessor=void 0;var JsA=MA();class CBA{_spanProcessors;constructor(A){this._spanProcessors=A}forceFlush(){let A=[];for(let Q of this._spanProcessors)A.push(Q.forceFlush());return new Promise((Q)=>{Promise.all(A).then(()=>{Q()}).catch((B)=>{(0,JsA.globalErrorHandler)(B||Error("MultiSpanProcessor: forceFlush failed")),Q()})})}onStart(A,Q){for(let B of this._spanProcessors)B.onStart(A,Q)}onEnding(A){for(let Q of this._spanProcessors)if(Q.onEnding)Q.onEnding(A)}onEnd(A){for(let Q of this._spanProcessors)Q.onEnd(A)}shutdown(){let A=[];for(let Q of this._spanProcessors)A.push(Q.shutdown());return new Promise((Q,B)=>{Promise.all(A).then(()=>{Q()},B)})}}EBA.MultiSpanProcessor=CBA});var WBA=X((DBA)=>{Object.defineProperty(DBA,"__esModule",{value:!0});DBA.BasicTracerProvider=DBA.ForceFlushState=void 0;var FsA=MA(),GsA=x7(),DsA=IBA(),ZsA=p7(),WsA=JBA(),UsA=i7(),CG;(function(A){A[A.resolved=0]="resolved",A[A.timeout=1]="timeout",A[A.error=2]="error",A[A.unresolved=3]="unresolved"})(CG=DBA.ForceFlushState||(DBA.ForceFlushState={}));class GBA{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(A={}){let Q=(0,FsA.merge)({},(0,ZsA.loadDefaultConfig)(),(0,UsA.reconfigureLimits)(A));this._resource=Q.resource??(0,GsA.defaultResource)(),this._config=Object.assign({},Q,{resource:this._resource});let B=[];if(A.spanProcessors?.length)B.push(...A.spanProcessors);this._activeSpanProcessor=new WsA.MultiSpanProcessor(B)}getTracer(A,Q,B){let I=`${A}@${Q||""}:${B?.schemaUrl||""}`;if(!this._tracers.has(I))this._tracers.set(I,new DsA.Tracer({name:A,version:Q,schemaUrl:B?.schemaUrl},this._config,this._resource,this._activeSpanProcessor));return this._tracers.get(I)}forceFlush(){let A=this._config.forceFlushTimeoutMillis,Q=this._activeSpanProcessor._spanProcessors.map((B)=>{return new Promise((I)=>{let C,E=setTimeout(()=>{I(Error(`Span processor did not completed within timeout period of ${A} ms`)),C=CG.timeout},A);B.forceFlush().then(()=>{if(clearTimeout(E),C!==CG.timeout)C=CG.resolved,I(C)}).catch((Y)=>{clearTimeout(E),C=CG.error,I(Y)})})});return new Promise((B,I)=>{Promise.all(Q).then((C)=>{let E=C.filter((Y)=>Y!==CG.resolved);if(E.length>0)I(E);else B()}).catch((C)=>I([C]))})}shutdown(){return this._activeSpanProcessor.shutdown()}}DBA.BasicTracerProvider=GBA});var KBA=X((XBA)=>{Object.defineProperty(XBA,"__esModule",{value:!0});XBA.ConsoleSpanExporter=void 0;var o7=MA();class UBA{export(A,Q){return this._sendSpans(A,Q)}shutdown(){return this._sendSpans([]),this.forceFlush()}forceFlush(){return Promise.resolve()}_exportInfo(A){return{resource:{attributes:A.resource.attributes},instrumentationScope:A.instrumentationScope,traceId:A.spanContext().traceId,parentSpanContext:A.parentSpanContext,traceState:A.spanContext().traceState?.serialize(),name:A.name,id:A.spanContext().spanId,kind:A.kind,timestamp:(0,o7.hrTimeToMicroseconds)(A.startTime),duration:(0,o7.hrTimeToMicroseconds)(A.duration),attributes:A.attributes,status:A.status,events:A.events,links:A.links}}_sendSpans(A,Q){for(let B of A)console.dir(this._exportInfo(B),{depth:3});if(Q)return Q({code:o7.ExportResultCode.SUCCESS})}}XBA.ConsoleSpanExporter=UBA});var MBA=X(($BA)=>{Object.defineProperty($BA,"__esModule",{value:!0});$BA.InMemorySpanExporter=void 0;var VBA=MA();class zBA{_finishedSpans=[];_stopped=!1;export(A,Q){if(this._stopped)return Q({code:VBA.ExportResultCode.FAILED,error:Error("Exporter has been stopped")});this._finishedSpans.push(...A),setTimeout(()=>Q({code:VBA.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}}$BA.InMemorySpanExporter=zBA});var RBA=X((NBA)=>{Object.defineProperty(NBA,"__esModule",{value:!0});NBA.SimpleSpanProcessor=void 0;var XsA=j(),E8=MA();class LBA{_exporter;_shutdownOnce;_pendingExports;constructor(A){this._exporter=A,this._shutdownOnce=new E8.BindOnceFuture(this._shutdown,this),this._pendingExports=new Set}async forceFlush(){if(await Promise.all(Array.from(this._pendingExports)),this._exporter.forceFlush)await this._exporter.forceFlush()}onStart(A,Q){}onEnd(A){if(this._shutdownOnce.isCalled)return;if((A.spanContext().traceFlags&XsA.TraceFlags.SAMPLED)===0)return;let Q=this._doExport(A).catch((B)=>(0,E8.globalErrorHandler)(B));this._pendingExports.add(Q),Q.finally(()=>this._pendingExports.delete(Q))}async _doExport(A){if(A.resource.asyncAttributesPending)await A.resource.waitForAsyncAttributes?.();let Q=await E8.internal._export(this._exporter,[A]);if(Q.code!==E8.ExportResultCode.SUCCESS)throw Q.error??Error(`SimpleSpanProcessor: span export failed (status ${Q})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}}NBA.SimpleSpanProcessor=LBA});var PBA=X((OBA)=>{Object.defineProperty(OBA,"__esModule",{value:!0});OBA.NoopSpanProcessor=void 0;class qBA{onStart(A,Q){}onEnd(A){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}}OBA.NoopSpanProcessor=qBA});var a7=X((zB)=>{Object.defineProperty(zB,"__esModule",{value:!0});zB.SamplingDecision=zB.TraceIdRatioBasedSampler=zB.ParentBasedSampler=zB.AlwaysOnSampler=zB.AlwaysOffSampler=zB.NoopSpanProcessor=zB.SimpleSpanProcessor=zB.InMemorySpanExporter=zB.ConsoleSpanExporter=zB.RandomIdGenerator=zB.BatchSpanProcessor=zB.BasicTracerProvider=void 0;var wsA=WBA();Object.defineProperty(zB,"BasicTracerProvider",{enumerable:!0,get:function(){return wsA.BasicTracerProvider}});var kBA=n7();Object.defineProperty(zB,"BatchSpanProcessor",{enumerable:!0,get:function(){return kBA.BatchSpanProcessor}});Object.defineProperty(zB,"RandomIdGenerator",{enumerable:!0,get:function(){return kBA.RandomIdGenerator}});var KsA=KBA();Object.defineProperty(zB,"ConsoleSpanExporter",{enumerable:!0,get:function(){return KsA.ConsoleSpanExporter}});var VsA=MBA();Object.defineProperty(zB,"InMemorySpanExporter",{enumerable:!0,get:function(){return VsA.InMemorySpanExporter}});var zsA=RBA();Object.defineProperty(zB,"SimpleSpanProcessor",{enumerable:!0,get:function(){return zsA.SimpleSpanProcessor}});var $sA=PBA();Object.defineProperty(zB,"NoopSpanProcessor",{enumerable:!0,get:function(){return $sA.NoopSpanProcessor}});var HsA=oX();Object.defineProperty(zB,"AlwaysOffSampler",{enumerable:!0,get:function(){return HsA.AlwaysOffSampler}});var MsA=aX();Object.defineProperty(zB,"AlwaysOnSampler",{enumerable:!0,get:function(){return MsA.AlwaysOnSampler}});var LsA=d7();Object.defineProperty(zB,"ParentBasedSampler",{enumerable:!0,get:function(){return LsA.ParentBasedSampler}});var NsA=c7();Object.defineProperty(zB,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return NsA.TraceIdRatioBasedSampler}});var jsA=BG();Object.defineProperty(zB,"SamplingDecision",{enumerable:!0,get:function(){return jsA.SamplingDecision}})});var rIA=X((aIA)=>{Object.defineProperty(aIA,"__esModule",{value:!0});aIA.PACKAGE_NAME=aIA.PACKAGE_VERSION=void 0;aIA.PACKAGE_VERSION="0.23.0";aIA.PACKAGE_NAME="@opentelemetry/instrumentation-undici"});var BCA=X((ACA)=>{Object.defineProperty(ACA,"__esModule",{value:!0});ACA.UndiciInstrumentation=void 0;var bz=H("diagnostics_channel"),zeA=H("url"),zW=s(),pB=j(),V8=MA(),JQ=JA(),tIA=rIA();class eIA extends zW.InstrumentationBase{_recordFromReq=new WeakMap;constructor(A={}){super(tIA.PACKAGE_NAME,tIA.PACKAGE_VERSION,A)}init(){return}disable(){super.disable(),this._channelSubs.forEach((A)=>A.unsubscribe()),this._channelSubs.length=0}enable(){if(super.enable(),this._channelSubs=this._channelSubs||[],this._channelSubs.length>0)return;this.subscribeToChannel("undici:request:create",this.onRequestCreated.bind(this)),this.subscribeToChannel("undici:client:sendHeaders",this.onRequestHeaders.bind(this)),this.subscribeToChannel("undici:request:headers",this.onResponseHeaders.bind(this)),this.subscribeToChannel("undici:request:trailers",this.onDone.bind(this)),this.subscribeToChannel("undici:request:error",this.onError.bind(this))}_updateMetricInstruments(){this._httpClientDurationHistogram=this.meter.createHistogram(JQ.METRIC_HTTP_CLIENT_REQUEST_DURATION,{description:"Measures the duration of outbound HTTP requests.",unit:"s",valueType:pB.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[0.005,0.01,0.025,0.05,0.075,0.1,0.25,0.5,0.75,1,2.5,5,7.5,10]}})}subscribeToChannel(A,Q){let[B,I]=process.version.replace("v","").split(".").map((Y)=>Number(Y)),C=B>18||B===18&&I>=19,E;if(C)bz.subscribe?.(A,Q),E=()=>bz.unsubscribe?.(A,Q);else{let Y=bz.channel(A);Y.subscribe(Q),E=()=>Y.unsubscribe(Q)}this._channelSubs.push({name:A,unsubscribe:E})}parseRequestHeaders(A){let Q=new Map;if(Array.isArray(A.headers))for(let B=0;B!B||A.method==="CONNECT"||Q.ignoreRequestHook?.(A),(T)=>T&&this._diag.error("caught ignoreRequestHook error: ",T),!0))return;let C=(0,V8.hrTime)(),E;try{E=new zeA.URL(A.path,A.origin)}catch(T){this._diag.warn("could not determine url.full:",T);return}let Y=E.protocol.replace(":",""),J=this.getRequestMethod(A.method),F={[JQ.ATTR_HTTP_REQUEST_METHOD]:J,[JQ.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]:A.method,[JQ.ATTR_URL_FULL]:E.toString(),[JQ.ATTR_URL_PATH]:E.pathname,[JQ.ATTR_URL_QUERY]:E.search,[JQ.ATTR_URL_SCHEME]:Y},G={https:"443",http:"80"},D=E.hostname,Z=E.port||G[Y];if(F[JQ.ATTR_SERVER_ADDRESS]=D,Z&&!isNaN(Number(Z)))F[JQ.ATTR_SERVER_PORT]=Number(Z);let U=this.parseRequestHeaders(A).get("user-agent");if(U){let T=Array.isArray(U)?U[U.length-1]:U;F[JQ.ATTR_USER_AGENT_ORIGINAL]=T}let w=(0,zW.safeExecuteInTheMiddle)(()=>Q.startSpanHook?.(A),(T)=>T&&this._diag.error("caught startSpanHook error: ",T),!0);if(w)Object.entries(w).forEach(([T,y])=>{F[T]=y});let K=pB.context.active(),V=pB.trace.getSpan(K),z;if(Q.requireParentforSpans&&(!V||!pB.trace.isSpanContextValid(V.spanContext())))z=pB.trace.wrapSpanContext(pB.INVALID_SPAN_CONTEXT);else z=this.tracer.startSpan(J==="_OTHER"?"HTTP":J,{kind:pB.SpanKind.CLIENT,attributes:F},K);(0,zW.safeExecuteInTheMiddle)(()=>Q.requestHook?.(z,A),(T)=>T&&this._diag.error("caught requestHook error: ",T),!0);let M=pB.trace.setSpan(pB.context.active(),z),L={};pB.propagation.inject(M,L);let N=Object.entries(L);for(let T=0;TD.toLowerCase())),G=this.parseRequestHeaders(A);for(let[D,Z]of G.entries())if(F.has(D)){let W=Array.isArray(Z)?Z:[Z];J[`http.request.header.${D}`]=W}}C.setAttributes(J)}onResponseHeaders({request:A,response:Q}){let B=this._recordFromReq.get(A);if(!B)return;let{span:I,attributes:C}=B,E={[JQ.ATTR_HTTP_RESPONSE_STATUS_CODE]:Q.statusCode},Y=this.getConfig();if((0,zW.safeExecuteInTheMiddle)(()=>Y.responseHook?.(I,{request:A,response:Q}),(J)=>J&&this._diag.error("caught responseHook error: ",J),!0),Y.headersToSpanAttributes?.responseHeaders){let J=new Set;Y.headersToSpanAttributes?.responseHeaders.forEach((F)=>J.add(F.toLowerCase()));for(let F=0;F=400?pB.SpanStatusCode.ERROR:pB.SpanStatusCode.UNSET}),B.attributes=Object.assign(C,E)}onDone({request:A}){let Q=this._recordFromReq.get(A);if(!Q)return;let{span:B,attributes:I,startTime:C}=Q;B.end(),this._recordFromReq.delete(A),this.recordRequestDuration(I,C)}onError({request:A,error:Q}){let B=this._recordFromReq.get(A);if(!B)return;let{span:I,attributes:C,startTime:E}=B;I.recordException(Q),I.setStatus({code:pB.SpanStatusCode.ERROR,message:Q.message}),I.end(),this._recordFromReq.delete(A),C[JQ.ATTR_ERROR_TYPE]=Q.message,this.recordRequestDuration(C,E)}recordRequestDuration(A,Q){let B={};[JQ.ATTR_HTTP_RESPONSE_STATUS_CODE,JQ.ATTR_HTTP_REQUEST_METHOD,JQ.ATTR_SERVER_ADDRESS,JQ.ATTR_SERVER_PORT,JQ.ATTR_URL_SCHEME,JQ.ATTR_ERROR_TYPE].forEach((E)=>{if(E in A)B[E]=A[E]});let C=(0,V8.hrTimeToMilliseconds)((0,V8.hrTimeDuration)(Q,(0,V8.hrTime)()))/1000;this._httpClientDurationHistogram.record(C,B)}getRequestMethod(A){let Q={CONNECT:!0,OPTIONS:!0,HEAD:!0,GET:!0,POST:!0,PUT:!0,PATCH:!0,DELETE:!0,TRACE:!0,QUERY:!0};if(A.toUpperCase()in Q)return A.toUpperCase();return"_OTHER"}}ACA.UndiciInstrumentation=eIA});var ICA=X((mz)=>{Object.defineProperty(mz,"__esModule",{value:!0});mz.UndiciInstrumentation=void 0;var $eA=BCA();Object.defineProperty(mz,"UndiciInstrumentation",{enumerable:!0,get:function(){return $eA.UndiciInstrumentation}})});var z8=X((FCA)=>{Object.defineProperty(FCA,"__esModule",{value:!0});FCA.ExpressLayerType=void 0;var qeA;(function(A){A.ROUTER="router",A.MIDDLEWARE="middleware",A.REQUEST_HANDLER="request_handler"})(qeA=FCA.ExpressLayerType||(FCA.ExpressLayerType={}))});var $8=X((GCA)=>{Object.defineProperty(GCA,"__esModule",{value:!0});GCA.AttributeNames=void 0;var OeA;(function(A){A.EXPRESS_TYPE="express.type",A.EXPRESS_NAME="express.name"})(OeA=GCA.AttributeNames||(GCA.AttributeNames={}))});var uz=X((DCA)=>{Object.defineProperty(DCA,"__esModule",{value:!0});DCA._LAYERS_STORE_PROPERTY=DCA.kLayerPatched=void 0;DCA.kLayerPatched=Symbol("express-layer-patched");DCA._LAYERS_STORE_PROPERTY="__ot_middlewares"});var KCA=X((XCA)=>{Object.defineProperty(XCA,"__esModule",{value:!0});XCA.getActualMatchedRoute=XCA.getConstructedRoute=XCA.getLayerPath=XCA.asErrorAndMessage=XCA.isLayerIgnored=XCA.getLayerMetadata=XCA.getRouterPath=XCA.storeLayerPath=void 0;var lz=z8(),GG=$8(),oY=uz(),PeA=(A,Q)=>{if(Array.isArray(A[oY._LAYERS_STORE_PROPERTY])===!1)Object.defineProperty(A,oY._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]});if(Q===void 0)return{isLayerPathStored:!1};return A[oY._LAYERS_STORE_PROPERTY].push(Q),{isLayerPathStored:!0}};XCA.storeLayerPath=PeA;var keA=(A,Q)=>{let B=Q.handle?.stack?.[0];if(B?.route?.path)return`${A}${B.route.path}`;if(B?.handle?.stack)return XCA.getRouterPath(A,B);return A};XCA.getRouterPath=keA;var SeA=(A,Q,B)=>{if(Q.name==="router"){let I=XCA.getRouterPath("",Q),C=I?I:B||A||"/";return{attributes:{[GG.AttributeNames.EXPRESS_NAME]:C,[GG.AttributeNames.EXPRESS_TYPE]:lz.ExpressLayerType.ROUTER},name:`router - ${C}`}}else if(Q.name==="bound dispatch"||Q.name==="handle")return{attributes:{[GG.AttributeNames.EXPRESS_NAME]:(A||B)??"request handler",[GG.AttributeNames.EXPRESS_TYPE]:lz.ExpressLayerType.REQUEST_HANDLER},name:`request handler${Q.path?` - ${A||B}`:""}`};else return{attributes:{[GG.AttributeNames.EXPRESS_NAME]:Q.name,[GG.AttributeNames.EXPRESS_TYPE]:lz.ExpressLayerType.MIDDLEWARE},name:`middleware - ${Q.name}`}};XCA.getLayerMetadata=SeA;var geA=(A,Q)=>{if(typeof Q==="string")return Q===A;else if(Q instanceof RegExp)return Q.test(A);else if(typeof Q==="function")return Q(A);else throw TypeError("Pattern is in unsupported datatype")},yeA=(A,Q,B)=>{if(Array.isArray(B?.ignoreLayersType)&&B?.ignoreLayersType?.includes(Q))return!0;if(Array.isArray(B?.ignoreLayers)===!1)return!1;try{for(let I of B.ignoreLayers)if(geA(A,I))return!0}catch(I){}return!1};XCA.isLayerIgnored=yeA;var heA=(A)=>A instanceof Error?[A,A.message]:[String(A),String(A)];XCA.asErrorAndMessage=heA;var feA=(A)=>{let Q=A[0];if(Array.isArray(Q))return Q.map((B)=>WCA(B)||"").join(",");return WCA(Q)};XCA.getLayerPath=feA;var WCA=(A)=>{if(typeof A==="string")return A;if(A instanceof RegExp||typeof A==="number")return A.toString();return};function UCA(A){let B=(Array.isArray(A[oY._LAYERS_STORE_PROPERTY])?A[oY._LAYERS_STORE_PROPERTY]:[]).filter((I)=>I!=="/"&&I!=="/*");if(B.length===1&&B[0]==="*")return"*";return B.join("").replace(/\/{2,}/g,"/")}XCA.getConstructedRoute=UCA;function _eA(A){let Q=Array.isArray(A[oY._LAYERS_STORE_PROPERTY])?A[oY._LAYERS_STORE_PROPERTY]:[];if(Q.length===0)return;if(Q.every((E)=>E==="/"))return A.originalUrl==="/"?"/":void 0;let B=UCA(A);if(B==="*")return B;if(B.includes("/")&&(B.includes(",")||B.includes("\\")||B.includes("*")||B.includes("[")))return B;let I=B.startsWith("/")?B:`/${B}`;return I.length>0&&(A.originalUrl===I||A.originalUrl.startsWith(I)||veA(I))?I:void 0}XCA.getActualMatchedRoute=_eA;function veA(A){return A.includes(":")||A.includes("*")}});var $CA=X((VCA)=>{Object.defineProperty(VCA,"__esModule",{value:!0});VCA.PACKAGE_NAME=VCA.PACKAGE_VERSION=void 0;VCA.PACKAGE_VERSION="0.61.0";VCA.PACKAGE_NAME="@opentelemetry/instrumentation-express"});var OCA=X((RCA)=>{Object.defineProperty(RCA,"__esModule",{value:!0});RCA.ExpressInstrumentation=void 0;var HCA=MA(),cI=j(),MCA=z8(),LCA=$8(),LC=KCA(),NCA=$CA(),DG=s(),peA=JA(),H8=uz();class jCA extends DG.InstrumentationBase{constructor(A={}){super(NCA.PACKAGE_NAME,NCA.PACKAGE_VERSION,A)}init(){return[new DG.InstrumentationNodeModuleDefinition("express",[">=4.0.0 <6"],(A)=>{let Q=typeof A?.Router?.prototype?.route==="function",B=Q?A.Router.prototype:A.Router;if((0,DG.isWrapped)(B.route))this._unwrap(B,"route");if(this._wrap(B,"route",this._getRoutePatch()),(0,DG.isWrapped)(B.use))this._unwrap(B,"use");if(this._wrap(B,"use",this._getRouterUsePatch()),(0,DG.isWrapped)(A.application.use))this._unwrap(A.application,"use");return this._wrap(A.application,"use",this._getAppUsePatch(Q)),A},(A)=>{if(A===void 0)return;let B=typeof A?.Router?.prototype?.route==="function"?A.Router.prototype:A.Router;this._unwrap(B,"route"),this._unwrap(B,"use"),this._unwrap(A.application,"use")})]}_getRoutePatch(){let A=this;return function(Q){return function(...I){let C=Q.apply(this,I),E=this.stack[this.stack.length-1];return A._applyPatch(E,(0,LC.getLayerPath)(I)),C}}}_getRouterUsePatch(){let A=this;return function(Q){return function(...I){let C=Q.apply(this,I),E=this.stack[this.stack.length-1];return A._applyPatch(E,(0,LC.getLayerPath)(I)),C}}}_getAppUsePatch(A){let Q=this;return function(B){return function(...C){let E=A?this.router:this._router,Y=B.apply(this,C);if(E){let J=E.stack[E.stack.length-1];Q._applyPatch(J,(0,LC.getLayerPath)(C))}return Y}}}_applyPatch(A,Q){let B=this;if(A[H8.kLayerPatched]===!0)return;A[H8.kLayerPatched]=!0,this._wrap(A,"handle",(I)=>{if(I.length===4)return I;let C=function(E,Y){let{isLayerPathStored:J}=(0,LC.storeLayerPath)(E,Q),F=(0,LC.getConstructedRoute)(E),G=(0,LC.getActualMatchedRoute)(E),D={[peA.ATTR_HTTP_ROUTE]:G},Z=(0,LC.getLayerMetadata)(F,A,Q),W=Z.attributes[LCA.AttributeNames.EXPRESS_TYPE],U=(0,HCA.getRPCMetadata)(cI.context.active());if(U?.type===HCA.RPCType.HTTP)U.route=G;if((0,LC.isLayerIgnored)(Z.name,W,B.getConfig())){if(W===MCA.ExpressLayerType.MIDDLEWARE)E[H8._LAYERS_STORE_PROPERTY].pop();return I.apply(this,arguments)}if(cI.trace.getSpan(cI.context.active())===void 0)return I.apply(this,arguments);let w=B._getSpanName({request:E,layerType:W,route:F},Z.name),K=B.tracer.startSpan(w,{attributes:Object.assign(D,Z.attributes)}),V=cI.context.active(),z=cI.trace.setSpan(V,K),{requestHook:M}=B.getConfig();if(M)(0,DG.safeExecuteInTheMiddle)(()=>M(K,{request:E,layerType:W,route:F}),(f)=>{if(f)cI.diag.error("express instrumentation: request hook failed",f)},!0);let L=!1;if(Z.attributes[LCA.AttributeNames.EXPRESS_TYPE]===MCA.ExpressLayerType.ROUTER)K.end(),L=!0,z=V;let N=()=>{if(L===!1)L=!0,K.end()},T=Array.from(arguments),y=T.findIndex((f)=>typeof f==="function");if(y>=0)arguments[y]=function(){let f=arguments[0],vA=![void 0,null,"route","router"].includes(f);if(!L&&vA){let[dQ,YB]=(0,LC.asErrorAndMessage)(f);K.recordException(dQ),K.setStatus({code:cI.SpanStatusCode.ERROR,message:YB})}if(L===!1)L=!0,E.res?.removeListener("finish",N),K.end();if(!(E.route&&vA)&&J)E[H8._LAYERS_STORE_PROPERTY].pop();let uA=T[y];return cI.context.bind(V,uA).apply(this,arguments)};try{return cI.context.bind(z,I).apply(this,arguments)}catch(f){let[vA,uA]=(0,LC.asErrorAndMessage)(f);throw K.recordException(vA),K.setStatus({code:cI.SpanStatusCode.ERROR,message:uA}),f}finally{if(!L)Y.once("finish",N)}};for(let E in I)Object.defineProperty(C,E,{get(){return I[E]},set(Y){I[E]=Y}});return C})}_getSpanName(A,Q){let{spanNameHook:B}=this.getConfig();if(!(B instanceof Function))return Q;try{return B(A,Q)??Q}catch(I){return cI.diag.error("express instrumentation: error calling span name rewrite hook",I),Q}}}RCA.ExpressInstrumentation=jCA});var TCA=X(($W)=>{Object.defineProperty($W,"__esModule",{value:!0});$W.AttributeNames=$W.ExpressLayerType=$W.ExpressInstrumentation=void 0;var ieA=OCA();Object.defineProperty($W,"ExpressInstrumentation",{enumerable:!0,get:function(){return ieA.ExpressInstrumentation}});var neA=z8();Object.defineProperty($W,"ExpressLayerType",{enumerable:!0,get:function(){return neA.ExpressLayerType}});var oeA=$8();Object.defineProperty($W,"AttributeNames",{enumerable:!0,get:function(){return oeA.AttributeNames}})});var hCA=X((yCA)=>{Object.defineProperty(yCA,"__esModule",{value:!0});yCA.SeverityNumber=void 0;var eeA;(function(A){A[A.UNSPECIFIED=0]="UNSPECIFIED",A[A.TRACE=1]="TRACE",A[A.TRACE2=2]="TRACE2",A[A.TRACE3=3]="TRACE3",A[A.TRACE4=4]="TRACE4",A[A.DEBUG=5]="DEBUG",A[A.DEBUG2=6]="DEBUG2",A[A.DEBUG3=7]="DEBUG3",A[A.DEBUG4=8]="DEBUG4",A[A.INFO=9]="INFO",A[A.INFO2=10]="INFO2",A[A.INFO3=11]="INFO3",A[A.INFO4=12]="INFO4",A[A.WARN=13]="WARN",A[A.WARN2=14]="WARN2",A[A.WARN3=15]="WARN3",A[A.WARN4=16]="WARN4",A[A.ERROR=17]="ERROR",A[A.ERROR2=18]="ERROR2",A[A.ERROR3=19]="ERROR3",A[A.ERROR4=20]="ERROR4",A[A.FATAL=21]="FATAL",A[A.FATAL2=22]="FATAL2",A[A.FATAL3=23]="FATAL3",A[A.FATAL4=24]="FATAL4"})(eeA=yCA.SeverityNumber||(yCA.SeverityNumber={}))});var L8=X((fCA)=>{Object.defineProperty(fCA,"__esModule",{value:!0});fCA.NOOP_LOGGER=fCA.NoopLogger=void 0;class nz{emit(A){}}fCA.NoopLogger=nz;fCA.NOOP_LOGGER=new nz});var bCA=X((vCA)=>{Object.defineProperty(vCA,"__esModule",{value:!0});vCA.API_BACKWARDS_COMPATIBILITY_VERSION=vCA.makeGetter=vCA._global=vCA.GLOBAL_LOGS_API_KEY=void 0;vCA.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");vCA._global=globalThis;function QAQ(A,Q,B){return(I)=>I===A?Q:B}vCA.makeGetter=QAQ;vCA.API_BACKWARDS_COMPATIBILITY_VERSION=1});var az=X((mCA)=>{Object.defineProperty(mCA,"__esModule",{value:!0});mCA.NOOP_LOGGER_PROVIDER=mCA.NoopLoggerProvider=void 0;var EAQ=L8();class oz{getLogger(A,Q,B){return new EAQ.NoopLogger}}mCA.NoopLoggerProvider=oz;mCA.NOOP_LOGGER_PROVIDER=new oz});var pCA=X((uCA)=>{Object.defineProperty(uCA,"__esModule",{value:!0});uCA.ProxyLogger=void 0;var JAQ=L8();class cCA{constructor(A,Q,B,I){this._provider=A,this.name=Q,this.version=B,this.options=I}emit(A){this._getLogger().emit(A)}_getLogger(){if(this._delegate)return this._delegate;let A=this._provider._getDelegateLogger(this.name,this.version,this.options);if(!A)return JAQ.NOOP_LOGGER;return this._delegate=A,this._delegate}}uCA.ProxyLogger=cCA});var aCA=X((nCA)=>{Object.defineProperty(nCA,"__esModule",{value:!0});nCA.ProxyLoggerProvider=void 0;var FAQ=az(),GAQ=pCA();class iCA{getLogger(A,Q,B){var I;return(I=this._getDelegateLogger(A,Q,B))!==null&&I!==void 0?I:new GAQ.ProxyLogger(this,A,Q,B)}_getDelegate(){var A;return(A=this._delegate)!==null&&A!==void 0?A:FAQ.NOOP_LOGGER_PROVIDER}_setDelegate(A){this._delegate=A}_getDelegateLogger(A,Q,B){var I;return(I=this._delegate)===null||I===void 0?void 0:I.getLogger(A,Q,B)}}nCA.ProxyLoggerProvider=iCA});var eCA=X((rCA)=>{Object.defineProperty(rCA,"__esModule",{value:!0});rCA.LogsAPI=void 0;var XI=bCA(),DAQ=az(),sCA=aCA();class sz{constructor(){this._proxyLoggerProvider=new sCA.ProxyLoggerProvider}static getInstance(){if(!this._instance)this._instance=new sz;return this._instance}setGlobalLoggerProvider(A){if(XI._global[XI.GLOBAL_LOGS_API_KEY])return this.getLoggerProvider();return XI._global[XI.GLOBAL_LOGS_API_KEY]=(0,XI.makeGetter)(XI.API_BACKWARDS_COMPATIBILITY_VERSION,A,DAQ.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(A),A}getLoggerProvider(){var A,Q;return(Q=(A=XI._global[XI.GLOBAL_LOGS_API_KEY])===null||A===void 0?void 0:A.call(XI._global,XI.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&Q!==void 0?Q:this._proxyLoggerProvider}getLogger(A,Q,B){return this.getLoggerProvider().getLogger(A,Q,B)}disable(){delete XI._global[XI.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new sCA.ProxyLoggerProvider}}rCA.LogsAPI=sz});var rz=X((HW)=>{Object.defineProperty(HW,"__esModule",{value:!0});HW.logs=HW.NoopLogger=HW.NOOP_LOGGER=HW.SeverityNumber=void 0;var ZAQ=hCA();Object.defineProperty(HW,"SeverityNumber",{enumerable:!0,get:function(){return ZAQ.SeverityNumber}});var AEA=L8();Object.defineProperty(HW,"NOOP_LOGGER",{enumerable:!0,get:function(){return AEA.NOOP_LOGGER}});Object.defineProperty(HW,"NoopLogger",{enumerable:!0,get:function(){return AEA.NoopLogger}});var WAQ=eCA();HW.logs=WAQ.LogsAPI.getInstance()});var CEA=X((BEA)=>{Object.defineProperty(BEA,"__esModule",{value:!0});BEA.disableInstrumentations=BEA.enableInstrumentations=void 0;function UAQ(A,Q,B,I){for(let C=0,E=A.length;CQ.disable())}BEA.disableInstrumentations=XAQ});var GEA=X((JEA)=>{Object.defineProperty(JEA,"__esModule",{value:!0});JEA.registerInstrumentations=void 0;var EEA=j(),KAQ=rz(),YEA=CEA();function VAQ(A){let Q=A.tracerProvider||EEA.trace.getTracerProvider(),B=A.meterProvider||EEA.metrics.getMeterProvider(),I=A.loggerProvider||KAQ.logs.getLoggerProvider(),C=A.instrumentations?.flat()??[];return(0,YEA.enableInstrumentations)(C,Q,B,I),()=>{(0,YEA.disableInstrumentations)(C)}}JEA.registerInstrumentations=VAQ});var HEA=X((zEA)=>{Object.defineProperty(zEA,"__esModule",{value:!0});zEA.satisfies=void 0;var Q$=j(),XEA=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,zAQ=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,$AQ={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function HAQ(A,Q,B){if(!MAQ(A))return Q$.diag.error(`Invalid version: ${A}`),!1;if(!Q)return!0;Q=Q.replace(/([<>=~^]+)\s+/g,"$1");let I=RAQ(A);if(!I)return!1;let C=[],E=wEA(I,Q,C,B);if(E&&!B?.includePrerelease)return NAQ(I,C);return E}zEA.satisfies=HAQ;function MAQ(A){return typeof A==="string"&&XEA.test(A)}function wEA(A,Q,B,I){if(Q.includes("||")){let C=Q.trim().split("||");for(let E of C)if(tz(A,E,B,I))return!0;return!1}else if(Q.includes(" - "))Q=iAQ(Q,I);else if(Q.includes(" ")){let C=Q.trim().replace(/\s{2,}/g," ").split(" ");for(let E of C)if(!tz(A,E,B,I))return!1;return!0}return tz(A,Q,B,I)}function tz(A,Q,B,I){if(Q=jAQ(Q,I),Q.includes(" "))return wEA(A,Q,B,I);else{let C=qAQ(Q);return B.push(C),LAQ(A,C)}}function LAQ(A,Q){if(Q.invalid)return!1;if(!Q.version||A$(Q.version))return!0;let B=ZEA(A.versionSegments||[],Q.versionSegments||[]);if(B===0){let I=A.prereleaseSegments||[],C=Q.prereleaseSegments||[];if(!I.length&&!C.length)B=0;else if(!I.length&&C.length)B=1;else if(I.length&&!C.length)B=-1;else B=ZEA(I,C)}return $AQ[Q.op]?.includes(B)}function NAQ(A,Q){if(A.prerelease)return Q.some((B)=>B.prerelease&&B.version===A.version);return!0}function jAQ(A,Q){return A=A.trim(),A=lAQ(A,Q),A=uAQ(A),A=pAQ(A,Q),A=A.trim(),A}function eQ(A){return!A||A.toLowerCase()==="x"||A==="*"}function RAQ(A){let Q=A.match(XEA);if(!Q){Q$.diag.error(`Invalid version: ${A}`);return}let B=Q.groups.version,I=Q.groups.prerelease,C=Q.groups.build,E=B.split("."),Y=I?.split(".");return{op:void 0,version:B,versionSegments:E,versionSegmentCount:E.length,prerelease:I,prereleaseSegments:Y,prereleaseSegmentCount:Y?Y.length:0,build:C}}function qAQ(A){if(!A)return{};let Q=A.match(zAQ);if(!Q)return Q$.diag.error(`Invalid range: ${A}`),{invalid:!0};let B=Q.groups.op,I=Q.groups.version,C=Q.groups.prerelease,E=Q.groups.build,Y=I.split("."),J=C?.split(".");if(B==="==")B="=";return{op:B||"=",version:I,versionSegments:Y,versionSegmentCount:Y.length,prerelease:C,prereleaseSegments:J,prereleaseSegmentCount:J?J.length:0,build:E}}function A$(A){return A==="*"||A==="x"||A==="X"}function DEA(A){let Q=parseInt(A,10);return isNaN(Q)?A:Q}function OAQ(A,Q){if(typeof A===typeof Q)if(typeof A==="number")return[A,Q];else if(typeof A==="string")return[A,Q];else throw Error("Version segments can only be strings or numbers");else return[String(A),String(Q)]}function TAQ(A,Q){if(A$(A)||A$(Q))return 0;let[B,I]=OAQ(DEA(A),DEA(Q));if(B>I)return 1;else if(B)?=?)",WEA=`(?:${VEA}|${PAQ})`,SAQ=`(?:-(${WEA}(?:\\.${WEA})*))`,UEA=`${KEA}+`,gAQ=`(?:\\+(${UEA}(?:\\.${UEA})*))`,ez=`${VEA}|x|X|\\*`,MW=`[v=\\s]*(${ez})(?:\\.(${ez})(?:\\.(${ez})(?:${SAQ})?${gAQ}?)?)?`,yAQ=`^${kAQ}\\s*${MW}$`,hAQ=new RegExp(yAQ),fAQ=`^\\s*(${MW})\\s+-\\s+(${MW})\\s*$`,_AQ=new RegExp(fAQ),vAQ="(?:~>?)",xAQ=`^${vAQ}${MW}$`,bAQ=new RegExp(xAQ),mAQ="(?:\\^)",dAQ=`^${mAQ}${MW}$`,cAQ=new RegExp(dAQ);function uAQ(A){let Q=bAQ;return A.replace(Q,(B,I,C,E,Y)=>{let J;if(eQ(I))J="";else if(eQ(C))J=`>=${I}.0.0 <${+I+1}.0.0-0`;else if(eQ(E))J=`>=${I}.${C}.0 <${I}.${+C+1}.0-0`;else if(Y)J=`>=${I}.${C}.${E}-${Y} <${I}.${+C+1}.0-0`;else J=`>=${I}.${C}.${E} <${I}.${+C+1}.0-0`;return J})}function lAQ(A,Q){let B=cAQ,I=Q?.includePrerelease?"-0":"";return A.replace(B,(C,E,Y,J,F)=>{let G;if(eQ(E))G="";else if(eQ(Y))G=`>=${E}.0.0${I} <${+E+1}.0.0-0`;else if(eQ(J))if(E==="0")G=`>=${E}.${Y}.0${I} <${E}.${+Y+1}.0-0`;else G=`>=${E}.${Y}.0${I} <${+E+1}.0.0-0`;else if(F)if(E==="0")if(Y==="0")G=`>=${E}.${Y}.${J}-${F} <${E}.${Y}.${+J+1}-0`;else G=`>=${E}.${Y}.${J}-${F} <${E}.${+Y+1}.0-0`;else G=`>=${E}.${Y}.${J}-${F} <${+E+1}.0.0-0`;else if(E==="0")if(Y==="0")G=`>=${E}.${Y}.${J}${I} <${E}.${Y}.${+J+1}-0`;else G=`>=${E}.${Y}.${J}${I} <${E}.${+Y+1}.0-0`;else G=`>=${E}.${Y}.${J} <${+E+1}.0.0-0`;return G})}function pAQ(A,Q){let B=hAQ;return A.replace(B,(I,C,E,Y,J,F)=>{let G=eQ(E),D=G||eQ(Y),Z=D||eQ(J),W=Z;if(C==="="&&W)C="";if(F=Q?.includePrerelease?"-0":"",G)if(C===">"||C==="<")I="<0.0.0-0";else I="*";else if(C&&W){if(D)Y=0;if(J=0,C===">")if(C=">=",D)E=+E+1,Y=0,J=0;else Y=+Y+1,J=0;else if(C==="<=")if(C="<",D)E=+E+1;else Y=+Y+1;if(C==="<")F="-0";I=`${C+E}.${Y}.${J}${F}`}else if(D)I=`>=${E}.0.0${F} <${+E+1}.0.0-0`;else if(Z)I=`>=${E}.${Y}.0${F} <${E}.${+Y+1}.0-0`;return I})}function iAQ(A,Q){let B=_AQ;return A.replace(B,(I,C,E,Y,J,F,G,D,Z,W,U,w)=>{if(eQ(E))C="";else if(eQ(Y))C=`>=${E}.0.0${Q?.includePrerelease?"-0":""}`;else if(eQ(J))C=`>=${E}.${Y}.0${Q?.includePrerelease?"-0":""}`;else if(F)C=`>=${C}`;else C=`>=${C}${Q?.includePrerelease?"-0":""}`;if(eQ(Z))D="";else if(eQ(W))D=`<${+Z+1}.0.0-0`;else if(eQ(U))D=`<${Z}.${+W+1}.0-0`;else if(w)D=`<=${Z}.${W}.${U}-${w}`;else if(Q?.includePrerelease)D=`<${Z}.${W}.${+U+1}-0`;else D=`<=${D}`;return`${C} ${D}`.trim()})}});var E$=X((MEA)=>{Object.defineProperty(MEA,"__esModule",{value:!0});MEA.massUnwrap=MEA.unwrap=MEA.massWrap=MEA.wrap=void 0;var AB=console.error.bind(console);function LW(A,Q,B){let I=!!A[Q]&&Object.prototype.propertyIsEnumerable.call(A,Q);Object.defineProperty(A,Q,{configurable:!0,enumerable:I,writable:!0,value:B})}var nAQ=(A,Q,B)=>{if(!A||!A[Q]){AB("no original function "+String(Q)+" to wrap");return}if(!B){AB("no wrapper function"),AB(Error().stack);return}let I=A[Q];if(typeof I!=="function"||typeof B!=="function"){AB("original object and wrapper must be functions");return}let C=B(I,Q);return LW(C,"__original",I),LW(C,"__unwrap",()=>{if(A[Q]===C)LW(A,Q,I)}),LW(C,"__wrapped",!0),LW(A,Q,C),C};MEA.wrap=nAQ;var oAQ=(A,Q,B)=>{if(!A){AB("must provide one or more modules to patch"),AB(Error().stack);return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){AB("must provide one or more functions to wrap on modules");return}A.forEach((I)=>{Q.forEach((C)=>{MEA.wrap(I,C,B)})})};MEA.massWrap=oAQ;var aAQ=(A,Q)=>{if(!A||!A[Q]){AB("no function to unwrap."),AB(Error().stack);return}let B=A[Q];if(!B.__unwrap)AB("no original to unwrap to -- has "+String(Q)+" already been unwrapped?");else{B.__unwrap();return}};MEA.unwrap=aAQ;var sAQ=(A,Q)=>{if(!A){AB("must provide one or more modules to patch"),AB(Error().stack);return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){AB("must provide one or more functions to unwrap on modules");return}A.forEach((B)=>{Q.forEach((I)=>{MEA.unwrap(B,I)})})};MEA.massUnwrap=sAQ;function NW(A){if(A&&A.logger)if(typeof A.logger!=="function")AB("new logger isn't a function, not replacing");else AB=A.logger}MEA.default=NW;NW.wrap=MEA.wrap;NW.massWrap=MEA.massWrap;NW.unwrap=MEA.unwrap;NW.massUnwrap=MEA.massUnwrap});var qEA=X((jEA)=>{Object.defineProperty(jEA,"__esModule",{value:!0});jEA.InstrumentationAbstract=void 0;var Y$=j(),tAQ=rz(),N8=E$();class NEA{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(A,Q,B){this.instrumentationName=A,this.instrumentationVersion=Q,this.setConfig(B),this._diag=Y$.diag.createComponentLogger({namespace:A}),this._tracer=Y$.trace.getTracer(A,Q),this._meter=Y$.metrics.getMeter(A,Q),this._logger=tAQ.logs.getLogger(A,Q),this._updateMetricInstruments()}_wrap=N8.wrap;_unwrap=N8.unwrap;_massWrap=N8.massWrap;_massUnwrap=N8.massUnwrap;get meter(){return this._meter}setMeterProvider(A){this._meter=A.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(A){this._logger=A.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let A=this.init()??[];if(!Array.isArray(A))return[A];return A}_updateMetricInstruments(){return}getConfig(){return this._config}setConfig(A){this._config={enabled:!0,...A}}setTracerProvider(A){this._tracer=A.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(A,Q,B,I){if(!A)return;try{A(B,I)}catch(C){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:Q},C)}}}jEA.InstrumentationAbstract=NEA});var kEA=X((TEA)=>{Object.defineProperty(TEA,"__esModule",{value:!0});TEA.ModuleNameTrie=TEA.ModuleNameSeparator=void 0;TEA.ModuleNameSeparator="/";class J${hooks=[];children=new Map}class OEA{_trie=new J$;_counter=0;insert(A){let Q=this._trie;for(let B of A.moduleName.split(TEA.ModuleNameSeparator)){let I=Q.children.get(B);if(!I)I=new J$,Q.children.set(B,I);Q=I}Q.hooks.push({hook:A,insertedId:this._counter++})}search(A,{maintainInsertionOrder:Q,fullOnly:B}={}){let I=this._trie,C=[],E=!0;for(let Y of A.split(TEA.ModuleNameSeparator)){let J=I.children.get(Y);if(!J){E=!1;break}if(!B)C.push(...J.hooks);I=J}if(B&&E)C.push(...I.hooks);if(C.length===0)return[];if(C.length===1)return[C[0].hook];if(Q)C.sort((Y,J)=>Y.insertedId-J.insertedId);return C.map(({hook:Y})=>Y)}}TEA.ModuleNameTrie=OEA});var hEA=X((gEA)=>{Object.defineProperty(gEA,"__esModule",{value:!0});gEA.RequireInTheMiddleSingleton=void 0;var eAQ=XY(),SEA=H("path"),G$=kEA(),AQQ=["afterEach","after","beforeEach","before","describe","it"].every((A)=>{return typeof global[A]==="function"});class j8{_moduleNameTrie=new G$.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new eAQ.Hook(null,{internals:!0},(A,Q,B)=>{let I=QQQ(Q),C=this._moduleNameTrie.search(I,{maintainInsertionOrder:!0,fullOnly:B===void 0});for(let{onRequire:E}of C)A=E(A,Q,B);return A})}register(A,Q){let B={moduleName:A,onRequire:Q};return this._moduleNameTrie.insert(B),B}static getInstance(){if(AQQ)return new j8;return this._instance=this._instance??new j8}}gEA.RequireInTheMiddleSingleton=j8;function QQQ(A){return SEA.sep!==G$.ModuleNameSeparator?A.split(SEA.sep).join(G$.ModuleNameSeparator):A}});var bEA=X((CQQ)=>{var fEA=[],D$=new WeakMap,_EA=new WeakMap,vEA=new Map,xEA=[],BQQ={set(A,Q,B){let I=D$.get(A),C=I&&I[Q];if(typeof C==="function")return C(B);return!0},get(A,Q){if(Q===Symbol.toStringTag)return"Module";let B=_EA.get(A)[Q];if(typeof B==="function")return B()},defineProperty(A,Q,B){if(!("value"in B))throw Error("Getters/setters are not supported for exports property descriptors.");let I=D$.get(A),C=I&&I[Q];if(typeof C==="function")return C(B.value);return!0}};function IQQ(A,Q,B,I,C){vEA.set(A,C),D$.set(Q,B),_EA.set(Q,I);let E=new Proxy(Q,BQQ);fEA.forEach((Y)=>Y(A,E,C)),xEA.push([A,E,C])}CQQ.register=IQQ;CQQ.importHooks=fEA;CQQ.specifiers=vEA;CQQ.toHook=xEA});var uEA=X(($gQ,WG)=>{var mEA=H("path"),GQQ=aD(),{fileURLToPath:DQQ}=H("url"),{MessageChannel:ZQQ}=H("worker_threads"),{isBuiltin:Z$}=H("module");if(!Z$)Z$=()=>!0;var{importHooks:W$,specifiers:WQQ,toHook:UQQ}=bEA();function dEA(A){W$.push(A),UQQ.forEach(([Q,B,I])=>A(Q,B,I))}function cEA(A){let Q=W$.indexOf(A);if(Q>-1)W$.splice(Q,1)}function ZG(A,Q,B,I){let C=A(Q,B,I);if(C&&C!==Q){if("default"in Q)Q.default=C}}var U$;function XQQ(){let{port1:A,port2:Q}=new ZQQ,B=0,I;U$=(J)=>{B++,A.postMessage(J)},A.on("message",()=>{if(B--,I&&B<=0)I()}).unref();function C(){let J=setInterval(()=>{},1000),F=new Promise((G)=>{I=G}).then(()=>{clearInterval(J)});if(B===0)I();return F}let E=Q;return{registerOptions:{data:{addHookMessagePort:E,include:[]},transferList:[E]},addHookMessagePort:E,waitForAllMessagesAcknowledged:C}}function jW(A,Q,B){if(this instanceof jW===!1)return new jW(A,Q,B);if(typeof A==="function")B=A,A=null,Q=null;else if(typeof Q==="function")B=Q,Q=null;let I=Q?Q.internals===!0:!1;if(U$&&Array.isArray(A))U$(A);this._iitmHook=(C,E,Y)=>{let J=C,F=J.startsWith("node:"),G,D;if(F){let Z=C.slice(5);if(Z$(Z))C=Z}else if(J.startsWith("file://")){let Z=Error.stackTraceLimit;Error.stackTraceLimit=0;try{G=DQQ(C),C=G}catch(W){}if(Error.stackTraceLimit=Z,G){let W=GQQ(G);if(W)C=W.name,D=W.basedir}}if(A){for(let Z of A)if(G&&Z===G)ZG(B,E,G,void 0);else if(Z===C){if(!D)ZG(B,E,C,D);else if(D.endsWith(WQQ.get(J)))ZG(B,E,C,D);else if(I){let W=C+mEA.sep+mEA.relative(D,G);ZG(B,E,W,D)}}else if(Z===Y)ZG(B,E,Y,D)}else ZG(B,E,C,D)},dEA(this._iitmHook)}jW.prototype.unhook=function(){cEA(this._iitmHook)};WG.exports=jW;WG.exports.Hook=jW;WG.exports.addHook=dEA;WG.exports.removeHook=cEA;WG.exports.createAddHookMessageChannel=XQQ});var X$=X((lEA)=>{Object.defineProperty(lEA,"__esModule",{value:!0});lEA.isWrapped=lEA.safeExecuteInTheMiddleAsync=lEA.safeExecuteInTheMiddle=void 0;function wQQ(A,Q,B){let I,C;try{C=A()}catch(E){I=E}finally{if(Q(I,C),I&&!B)throw I;return C}}lEA.safeExecuteInTheMiddle=wQQ;async function KQQ(A,Q,B){let I,C;try{C=await A()}catch(E){I=E}finally{if(await Q(I,C),I&&!B)throw I;return C}}lEA.safeExecuteInTheMiddleAsync=KQQ;function VQQ(A){return typeof A==="function"&&typeof A.__original==="function"&&typeof A.__unwrap==="function"&&A.__wrapped===!0}lEA.isWrapped=VQQ});var rEA=X((aEA)=>{Object.defineProperty(aEA,"__esModule",{value:!0});aEA.InstrumentationBase=void 0;var RW=H("path"),iEA=H("util"),HQQ=HEA(),w$=E$(),MQQ=qEA(),LQQ=hEA(),NQQ=uEA(),qW=j(),jQQ=XY(),RQQ=H("fs"),qQQ=X$();class oEA extends MQQ.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=LQQ.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(A,Q,B){super(A,Q,B);let I=this.init();if(I&&!Array.isArray(I))I=[I];if(this._modules=I||[],this._config.enabled)this.enable()}_wrap=(A,Q,B)=>{if((0,qQQ.isWrapped)(A[Q]))this._unwrap(A,Q);if(!iEA.types.isProxy(A))return(0,w$.wrap)(A,Q,B);else{let I=(0,w$.wrap)(Object.assign({},A),Q,B);return Object.defineProperty(A,Q,{value:I}),I}};_unwrap=(A,Q)=>{if(!iEA.types.isProxy(A))return(0,w$.unwrap)(A,Q);else return Object.defineProperty(A,Q,{value:A[Q]})};_massWrap=(A,Q,B)=>{if(!A){qW.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){qW.diag.error("must provide one or more functions to wrap on modules");return}A.forEach((I)=>{Q.forEach((C)=>{this._wrap(I,C,B)})})};_massUnwrap=(A,Q)=>{if(!A){qW.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){qW.diag.error("must provide one or more functions to wrap on modules");return}A.forEach((B)=>{Q.forEach((I)=>{this._unwrap(B,I)})})};_warnOnPreloadedModules(){this._modules.forEach((A)=>{let{name:Q}=A;try{let B=H.resolve(Q);if(H.cache[B])this._diag.warn(`Module ${Q} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${Q}`)}catch{}})}_extractPackageVersion(A){try{let Q=(0,RQQ.readFileSync)(RW.join(A,"package.json"),{encoding:"utf8"}),B=JSON.parse(Q).version;return typeof B==="string"?B:void 0}catch{qW.diag.warn("Failed extracting version",A)}return}_onRequire(A,Q,B,I){if(!I){if(typeof A.patch==="function"){if(A.moduleExports=Q,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:A.name}),A.patch(Q)}return Q}let C=this._extractPackageVersion(I);if(A.moduleVersion=C,A.name===B){if(nEA(A.supportedVersions,C,A.includePrerelease)){if(typeof A.patch==="function"){if(A.moduleExports=Q,this._enabled)return this._diag.debug("Applying instrumentation patch for module on require hook",{module:A.name,version:A.moduleVersion,baseDir:I}),A.patch(Q,A.moduleVersion)}}return Q}let E=A.files??[],Y=RW.normalize(B);return E.filter((F)=>F.name===Y&&nEA(F.supportedVersions,C,A.includePrerelease)).reduce((F,G)=>{if(G.moduleExports=F,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:A.name,version:A.moduleVersion,fileName:G.name,baseDir:I}),G.patch(F,A.moduleVersion);return F},Q)}enable(){if(this._enabled)return;if(this._enabled=!0,this._hooks.length>0){for(let A of this._modules){if(typeof A.patch==="function"&&A.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:A.name,version:A.moduleVersion}),A.patch(A.moduleExports,A.moduleVersion);for(let Q of A.files)if(Q.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:A.name,version:A.moduleVersion,fileName:Q.name}),Q.patch(Q.moduleExports,A.moduleVersion)}return}this._warnOnPreloadedModules();for(let A of this._modules){let Q=(E,Y,J)=>{if(!J&&RW.isAbsolute(Y)){let F=RW.parse(Y);Y=F.name,J=F.dir}return this._onRequire(A,E,Y,J)},B=(E,Y,J)=>{return this._onRequire(A,E,Y,J)},I=RW.isAbsolute(A.name)?new jQQ.Hook([A.name],{internals:!0},B):this._requireInTheMiddleSingleton.register(A.name,B);this._hooks.push(I);let C=new NQQ.Hook([A.name],{internals:!0},Q);this._hooks.push(C)}}disable(){if(!this._enabled)return;this._enabled=!1;for(let A of this._modules){if(typeof A.unpatch==="function"&&A.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:A.name,version:A.moduleVersion}),A.unpatch(A.moduleExports,A.moduleVersion);for(let Q of A.files)if(Q.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:A.name,version:A.moduleVersion,fileName:Q.name}),Q.unpatch(Q.moduleExports,A.moduleVersion)}}isEnabled(){return this._enabled}}aEA.InstrumentationBase=oEA;function nEA(A,Q,B){if(typeof Q>"u")return A.includes("*");return A.some((I)=>{return(0,HQQ.satisfies)(Q,I,{includePrerelease:B})})}});var tEA=X((K$)=>{Object.defineProperty(K$,"__esModule",{value:!0});K$.normalize=void 0;var OQQ=H("path");Object.defineProperty(K$,"normalize",{enumerable:!0,get:function(){return OQQ.normalize}})});var eEA=X((R8)=>{Object.defineProperty(R8,"__esModule",{value:!0});R8.normalize=R8.InstrumentationBase=void 0;var PQQ=rEA();Object.defineProperty(R8,"InstrumentationBase",{enumerable:!0,get:function(){return PQQ.InstrumentationBase}});var kQQ=tEA();Object.defineProperty(R8,"normalize",{enumerable:!0,get:function(){return kQQ.normalize}})});var V$=X((q8)=>{Object.defineProperty(q8,"__esModule",{value:!0});q8.normalize=q8.InstrumentationBase=void 0;var A0A=eEA();Object.defineProperty(q8,"InstrumentationBase",{enumerable:!0,get:function(){return A0A.InstrumentationBase}});Object.defineProperty(q8,"normalize",{enumerable:!0,get:function(){return A0A.normalize}})});var C0A=X((B0A)=>{Object.defineProperty(B0A,"__esModule",{value:!0});B0A.InstrumentationNodeModuleDefinition=void 0;class Q0A{files;name;supportedVersions;patch;unpatch;constructor(A,Q,B,I,C){this.files=C||[],this.name=A,this.supportedVersions=Q,this.patch=B,this.unpatch=I}}B0A.InstrumentationNodeModuleDefinition=Q0A});var F0A=X((Y0A)=>{Object.defineProperty(Y0A,"__esModule",{value:!0});Y0A.InstrumentationNodeModuleFile=void 0;var yQQ=V$();class E0A{name;supportedVersions;patch;unpatch;constructor(A,Q,B,I){this.name=(0,yQQ.normalize)(A),this.supportedVersions=Q,this.patch=B,this.unpatch=I}}Y0A.InstrumentationNodeModuleFile=E0A});var W0A=X((D0A)=>{Object.defineProperty(D0A,"__esModule",{value:!0});D0A.semconvStabilityFromStr=D0A.SemconvStability=void 0;var O8;(function(A){A[A.STABLE=1]="STABLE",A[A.OLD=2]="OLD",A[A.DUPLICATE=3]="DUPLICATE"})(O8=D0A.SemconvStability||(D0A.SemconvStability={}));function hQQ(A,Q){let B=O8.OLD,I=Q?.split(",").map((C)=>C.trim()).filter((C)=>C!=="");for(let C of I??[])if(C.toLowerCase()===A+"/dup"){B=O8.DUPLICATE;break}else if(C.toLowerCase()===A)B=O8.STABLE;return B}D0A.semconvStabilityFromStr=hQQ});var X0A=X((uI)=>{Object.defineProperty(uI,"__esModule",{value:!0});uI.semconvStabilityFromStr=uI.SemconvStability=uI.safeExecuteInTheMiddleAsync=uI.safeExecuteInTheMiddle=uI.isWrapped=uI.InstrumentationNodeModuleFile=uI.InstrumentationNodeModuleDefinition=uI.InstrumentationBase=uI.registerInstrumentations=void 0;var fQQ=GEA();Object.defineProperty(uI,"registerInstrumentations",{enumerable:!0,get:function(){return fQQ.registerInstrumentations}});var _QQ=V$();Object.defineProperty(uI,"InstrumentationBase",{enumerable:!0,get:function(){return _QQ.InstrumentationBase}});var vQQ=C0A();Object.defineProperty(uI,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return vQQ.InstrumentationNodeModuleDefinition}});var xQQ=F0A();Object.defineProperty(uI,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return xQQ.InstrumentationNodeModuleFile}});var z$=X$();Object.defineProperty(uI,"isWrapped",{enumerable:!0,get:function(){return z$.isWrapped}});Object.defineProperty(uI,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return z$.safeExecuteInTheMiddle}});Object.defineProperty(uI,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return z$.safeExecuteInTheMiddleAsync}});var U0A=W0A();Object.defineProperty(uI,"SemconvStability",{enumerable:!0,get:function(){return U0A.SemconvStability}});Object.defineProperty(uI,"semconvStabilityFromStr",{enumerable:!0,get:function(){return U0A.semconvStabilityFromStr}})});var w0A=X((mgQ,mQQ)=>{mQQ.exports={name:"@fastify/otel",version:"0.17.1",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}}});var z0A=X((V0A)=>{Object.defineProperty(V0A,"__esModule",{value:!0});V0A.range=V0A.balanced=void 0;var dQQ=(A,Q,B)=>{let I=A instanceof RegExp?K0A(A,B):A,C=Q instanceof RegExp?K0A(Q,B):Q,E=I!==null&&C!=null&&V0A.range(I,C,B);return E&&{start:E[0],end:E[1],pre:B.slice(0,E[0]),body:B.slice(E[0]+I.length,E[1]),post:B.slice(E[1]+C.length)}};V0A.balanced=dQQ;var K0A=(A,Q)=>{let B=Q.match(A);return B?B[0]:null},cQQ=(A,Q,B)=>{let I,C,E,Y=void 0,J,F=B.indexOf(A),G=B.indexOf(Q,F+1),D=F;if(F>=0&&G>0){if(A===Q)return[F,G];I=[],E=B.length;while(D>=0&&!J){if(D===F)I.push(D),F=B.indexOf(A,D+1);else if(I.length===1){let Z=I.pop();if(Z!==void 0)J=[Z,G]}else{if(C=I.pop(),C!==void 0&&C=0?F:G}if(I.length&&Y!==void 0)J=[E,Y]}return J};V0A.range=cQQ});var q0A=X((R0A)=>{Object.defineProperty(R0A,"__esModule",{value:!0});R0A.EXPANSION_MAX=void 0;R0A.expand=BBQ;var $0A=z0A(),H0A="\x00SLASH"+Math.random()+"\x00",M0A="\x00OPEN"+Math.random()+"\x00",M$="\x00CLOSE"+Math.random()+"\x00",L0A="\x00COMMA"+Math.random()+"\x00",N0A="\x00PERIOD"+Math.random()+"\x00",lQQ=new RegExp(H0A,"g"),pQQ=new RegExp(M0A,"g"),iQQ=new RegExp(M$,"g"),nQQ=new RegExp(L0A,"g"),oQQ=new RegExp(N0A,"g"),aQQ=/\\\\/g,sQQ=/\\{/g,rQQ=/\\}/g,tQQ=/\\,/g,eQQ=/\\\./g;R0A.EXPANSION_MAX=1e5;function H$(A){return!isNaN(A)?parseInt(A,10):A.charCodeAt(0)}function ABQ(A){return A.replace(aQQ,H0A).replace(sQQ,M0A).replace(rQQ,M$).replace(tQQ,L0A).replace(eQQ,N0A)}function QBQ(A){return A.replace(lQQ,"\\").replace(pQQ,"{").replace(iQQ,"}").replace(nQQ,",").replace(oQQ,".")}function j0A(A){if(!A)return[""];let Q=[],B=(0,$0A.balanced)("{","}",A);if(!B)return A.split(",");let{pre:I,body:C,post:E}=B,Y=I.split(",");Y[Y.length-1]+="{"+C+"}";let J=j0A(E);if(E.length)Y[Y.length-1]+=J.shift(),Y.push.apply(Y,J);return Q.push.apply(Q,Y),Q}function BBQ(A,Q={}){if(!A)return[];let{max:B=R0A.EXPANSION_MAX}=Q;if(A.slice(0,2)==="{}")A="\\{\\}"+A.slice(2);return OW(ABQ(A),B,!0).map(QBQ)}function IBQ(A){return"{"+A+"}"}function CBQ(A){return/^-?0\d/.test(A)}function EBQ(A,Q){return A<=Q}function YBQ(A,Q){return A>=Q}function OW(A,Q,B){let I=[],C=(0,$0A.balanced)("{","}",A);if(!C)return[A];let E=C.pre,Y=C.post.length?OW(C.post,Q,!1):[""];if(/\$$/.test(C.pre))for(let J=0;J=0;if(!G&&!D){if(C.post.match(/,(?!,).*\}/))return A=C.pre+"{"+C.body+M$+C.post,OW(A,Q,!0);return[A]}let Z;if(G)Z=C.body.split(/\.\./);else if(Z=j0A(C.body),Z.length===1&&Z[0]!==void 0){if(Z=OW(Z[0],Q,!1).map(IBQ),Z.length===1)return Y.map((U)=>C.pre+Z[0]+U)}let W;if(G&&Z[0]!==void 0&&Z[1]!==void 0){let U=H$(Z[0]),w=H$(Z[1]),K=Math.max(Z[0].length,Z[1].length),V=Z.length===3&&Z[2]!==void 0?Math.max(Math.abs(H$(Z[2])),1):1,z=EBQ;if(w0){let f=Array(y+1).join("0");if(N<0)T="-"+f+T.slice(1);else T=f+T}}W.push(T)}}else{W=[];for(let U=0;U{Object.defineProperty(O0A,"__esModule",{value:!0});O0A.assertValidPattern=void 0;var FBQ=65536,GBQ=(A)=>{if(typeof A!=="string")throw TypeError("invalid pattern");if(A.length>FBQ)throw TypeError("pattern is too long")};O0A.assertValidPattern=GBQ});var y0A=X((S0A)=>{Object.defineProperty(S0A,"__esModule",{value:!0});S0A.parseClass=void 0;var DBQ={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},TW=(A)=>A.replace(/[[\]\\-]/g,"\\$&"),ZBQ=(A)=>A.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),k0A=(A)=>A.join(""),WBQ=(A,Q)=>{let B=Q;if(A.charAt(B)!=="[")throw Error("not in a brace expression");let I=[],C=[],E=B+1,Y=!1,J=!1,F=!1,G=!1,D=B,Z="";A:while(EZ)I.push(TW(Z)+"-"+TW(K));else if(K===Z)I.push(TW(K));Z="",E++;continue}if(A.startsWith("-]",E+1)){I.push(TW(K+"-")),E+=2;continue}if(A.startsWith("-",E+1)){Z=K,E+=2;continue}I.push(TW(K)),E++}if(D{Object.defineProperty(h0A,"__esModule",{value:!0});h0A.unescape=void 0;var UBQ=(A,{windowsPathsNoEscape:Q=!1,magicalBraces:B=!0}={})=>{if(B)return Q?A.replace(/\[([^\/\\])\]/g,"$1"):A.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");return Q?A.replace(/\[([^\/\\{}])\]/g,"$1"):A.replace(/((?!\\).|^)\[([^\/\\{}])\]/g,"$1$2").replace(/\\([^\/{}])/g,"$1")};h0A.unescape=UBQ});var q$=X((m0A)=>{var HB;Object.defineProperty(m0A,"__esModule",{value:!0});m0A.AST=void 0;var XBQ=y0A(),P8=T8(),wBQ=new Set(["!","?","+","*","@"]),N$=(A)=>wBQ.has(A),_0A=(A)=>N$(A.type),KBQ=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),VBQ=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),zBQ=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),v0A=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),$BQ="(?!(?:^|/)\\.\\.?(?:$|/))",k8="(?!\\.)",HBQ=new Set(["[","."]),MBQ=new Set(["..","."]),LBQ=new Set("().*{}+?[]^$\\!"),NBQ=(A)=>A.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),j$="[^/]",x0A=j$+"*?",b0A=j$+"+?",jBQ=0;class R${type;#A;#Q;#C=!1;#B=[];#I;#E;#Y;#J=!1;#F;#G;#D=!1;id=++jBQ;get depth(){return(this.#I?.depth??-1)+1}[Symbol.for("nodejs.util.inspect.custom")](){return{"@@type":"AST",id:this.id,type:this.type,root:this.#A.id,parent:this.#I?.id,depth:this.depth,partsLength:this.#B.length,parts:this.#B}}constructor(A,Q,B={}){if(this.type=A,A)this.#Q=!0;if(this.#I=Q,this.#A=this.#I?this.#I.#A:this,this.#F=this.#A===this?B:this.#A.#F,this.#Y=this.#A===this?[]:this.#A.#Y,A==="!"&&!this.#A.#J)this.#Y.push(this);this.#E=this.#I?this.#I.#B.length:0}get hasMagic(){if(this.#Q!==void 0)return this.#Q;for(let A of this.#B){if(typeof A==="string")continue;if(A.type||A.hasMagic)return this.#Q=!0}return this.#Q}toString(){if(this.#G!==void 0)return this.#G;if(!this.type)return this.#G=this.#B.map((A)=>String(A)).join("");else return this.#G=this.type+"("+this.#B.map((A)=>String(A)).join("|")+")"}#V(){if(this!==this.#A)throw Error("should only call on root");if(this.#J)return this;this.toString(),this.#J=!0;let A;while(A=this.#Y.pop()){if(A.type!=="!")continue;let Q=A,B=Q.#I;while(B){for(let I=Q.#E+1;!B.type&&Itypeof Q==="string"?Q:Q.toJSON()):[this.type,...this.#B.map((Q)=>Q.toJSON())];if(this.isStart()&&!this.type)A.unshift([]);if(this.isEnd()&&(this===this.#A||this.#A.#J&&this.#I?.type==="!"))A.push({});return A}isStart(){if(this.#A===this)return!0;if(!this.#I?.isStart())return!1;if(this.#E===0)return!0;let A=this.#I;for(let Q=0;Qtypeof W!=="string"),F=this.#B.map((W)=>{let[U,w,K,V]=typeof W==="string"?HB.#N(W,this.#Q,J):W.toRegExpSource(A);return this.#Q=this.#Q||K,this.#C=this.#C||V,U}).join(""),G="";if(this.isStart()){if(typeof this.#B[0]==="string"){if(!(this.#B.length===1&&MBQ.has(this.#B[0]))){let U=HBQ,w=Q&&U.has(F.charAt(0))||F.startsWith("\\.")&&U.has(F.charAt(2))||F.startsWith("\\.\\.")&&U.has(F.charAt(4)),K=!Q&&!A&&U.has(F.charAt(0));G=w?$BQ:K?k8:""}}}let D="";if(this.isEnd()&&this.#A.#J&&this.#I?.type==="!")D="(?:$|\\/)";return[G+F+D,(0,P8.unescape)(F),this.#Q=!!this.#Q,this.#C]}let B=this.type==="*"||this.type==="+",I=this.type==="!"?"(?:(?!(?:":"(?:",C=this.#K(Q);if(this.isStart()&&this.isEnd()&&!C&&this.type!=="!"){let J=this.toString(),F=this;return F.#B=[J],F.type=null,F.#Q=void 0,[J,(0,P8.unescape)(this.toString()),!1,!1]}let E=!B||A||Q||!k8?"":this.#K(!0);if(E===C)E="";if(E)C=`(?:${C})(?:${E})*?`;let Y="";if(this.type==="!"&&this.#D)Y=(this.isStart()&&!Q?k8:"")+b0A;else{let J=this.type==="!"?"))"+(this.isStart()&&!Q&&!A?k8:"")+x0A+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&E?")":this.type==="*"&&E?")?":`)${this.type}`;Y=I+C+J}return[Y,(0,P8.unescape)(C),this.#Q=!!this.#Q,this.#C]}#U(){if(!_0A(this)){for(let A of this.#B)if(typeof A==="object")A.#U()}else{let A=0,Q=!1;do{Q=!0;for(let B=0;B{if(typeof Q==="string")throw Error("string type in extglob ast??");let[B,I,C,E]=Q.toRegExpSource(A);return this.#C=this.#C||E,B}).filter((Q)=>!(this.isStart()&&this.isEnd())||!!Q).join("|")}static#N(A,Q,B=!1){let I=!1,C="",E=!1,Y=!1;for(let J=0;J{Object.defineProperty(c0A,"__esModule",{value:!0});c0A.escape=void 0;var RBQ=(A,{windowsPathsNoEscape:Q=!1,magicalBraces:B=!1}={})=>{if(B)return Q?A.replace(/[?*()[\]{}]/g,"[$&]"):A.replace(/[?*()[\]\\{}]/g,"\\$&");return Q?A.replace(/[?*()[\]]/g,"[$&]"):A.replace(/[?*()[\]\\]/g,"\\$&")};c0A.escape=RBQ});var QYA=X((PW)=>{Object.defineProperty(PW,"__esModule",{value:!0});PW.unescape=PW.escape=PW.AST=PW.Minimatch=PW.match=PW.makeRe=PW.braceExpand=PW.defaults=PW.filter=PW.GLOBSTAR=PW.sep=PW.minimatch=void 0;var qBQ=q0A(),S8=P0A(),i0A=q$(),OBQ=O$(),TBQ=T8(),PBQ=(A,Q,B={})=>{if((0,S8.assertValidPattern)(Q),!B.nocomment&&Q.charAt(0)==="#")return!1;return new UG(Q,B).match(A)};PW.minimatch=PBQ;var kBQ=/^\*+([^+@!?\*\[\(]*)$/,SBQ=(A)=>(Q)=>!Q.startsWith(".")&&Q.endsWith(A),gBQ=(A)=>(Q)=>Q.endsWith(A),yBQ=(A)=>{return A=A.toLowerCase(),(Q)=>!Q.startsWith(".")&&Q.toLowerCase().endsWith(A)},hBQ=(A)=>{return A=A.toLowerCase(),(Q)=>Q.toLowerCase().endsWith(A)},fBQ=/^\*+\.\*+$/,_BQ=(A)=>!A.startsWith(".")&&A.includes("."),vBQ=(A)=>A!=="."&&A!==".."&&A.includes("."),xBQ=/^\.\*+$/,bBQ=(A)=>A!=="."&&A!==".."&&A.startsWith("."),mBQ=/^\*+$/,dBQ=(A)=>A.length!==0&&!A.startsWith("."),cBQ=(A)=>A.length!==0&&A!=="."&&A!=="..",uBQ=/^\?+([^+@!?\*\[\(]*)?$/,lBQ=([A,Q=""])=>{let B=n0A([A]);if(!Q)return B;return Q=Q.toLowerCase(),(I)=>B(I)&&I.toLowerCase().endsWith(Q)},pBQ=([A,Q=""])=>{let B=o0A([A]);if(!Q)return B;return Q=Q.toLowerCase(),(I)=>B(I)&&I.toLowerCase().endsWith(Q)},iBQ=([A,Q=""])=>{let B=o0A([A]);return!Q?B:(I)=>B(I)&&I.endsWith(Q)},nBQ=([A,Q=""])=>{let B=n0A([A]);return!Q?B:(I)=>B(I)&&I.endsWith(Q)},n0A=([A])=>{let Q=A.length;return(B)=>B.length===Q&&!B.startsWith(".")},o0A=([A])=>{let Q=A.length;return(B)=>B.length===Q&&B!=="."&&B!==".."},a0A=typeof process==="object"&&process?typeof process.env==="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",l0A={win32:{sep:"\\"},posix:{sep:"/"}};PW.sep=a0A==="win32"?l0A.win32.sep:l0A.posix.sep;PW.minimatch.sep=PW.sep;PW.GLOBSTAR=Symbol("globstar **");PW.minimatch.GLOBSTAR=PW.GLOBSTAR;var oBQ="[^/]",aBQ=oBQ+"*?",sBQ="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",rBQ="(?:(?!(?:\\/|^)\\.).)*?",tBQ=(A,Q={})=>(B)=>PW.minimatch(B,A,Q);PW.filter=tBQ;PW.minimatch.filter=PW.filter;var wI=(A,Q={})=>Object.assign({},A,Q),eBQ=(A)=>{if(!A||typeof A!=="object"||!Object.keys(A).length)return PW.minimatch;let Q=PW.minimatch;return Object.assign((I,C,E={})=>Q(I,C,wI(A,E)),{Minimatch:class extends Q.Minimatch{constructor(C,E={}){super(C,wI(A,E))}static defaults(C){return Q.defaults(wI(A,C)).Minimatch}},AST:class extends Q.AST{constructor(C,E,Y={}){super(C,E,wI(A,Y))}static fromGlob(C,E={}){return Q.AST.fromGlob(C,wI(A,E))}},unescape:(I,C={})=>Q.unescape(I,wI(A,C)),escape:(I,C={})=>Q.escape(I,wI(A,C)),filter:(I,C={})=>Q.filter(I,wI(A,C)),defaults:(I)=>Q.defaults(wI(A,I)),makeRe:(I,C={})=>Q.makeRe(I,wI(A,C)),braceExpand:(I,C={})=>Q.braceExpand(I,wI(A,C)),match:(I,C,E={})=>Q.match(I,C,wI(A,E)),sep:Q.sep,GLOBSTAR:PW.GLOBSTAR})};PW.defaults=eBQ;PW.minimatch.defaults=PW.defaults;var AIQ=(A,Q={})=>{if((0,S8.assertValidPattern)(A),Q.nobrace||!/\{(?:(?!\{).)*\}/.test(A))return[A];return(0,qBQ.expand)(A,{max:Q.braceExpandMax})};PW.braceExpand=AIQ;PW.minimatch.braceExpand=PW.braceExpand;var QIQ=(A,Q={})=>new UG(A,Q).makeRe();PW.makeRe=QIQ;PW.minimatch.makeRe=PW.makeRe;var BIQ=(A,Q,B={})=>{let I=new UG(Q,B);if(A=A.filter((C)=>I.match(C)),I.options.nonull&&!A.length)A.push(Q);return A};PW.match=BIQ;PW.minimatch.match=PW.match;var p0A=/[?*]|[+@!]\(.*?\)|\[|\]/,IIQ=(A)=>A.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");class UG{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(A,Q={}){(0,S8.assertValidPattern)(A),Q=Q||{},this.options=Q,this.maxGlobstarRecursion=Q.maxGlobstarRecursion??200,this.pattern=A,this.platform=Q.platform||a0A,this.isWindows=this.platform==="win32";let B="allowWindowsEscape";if(this.windowsPathsNoEscape=!!Q.windowsPathsNoEscape||Q[B]===!1,this.windowsPathsNoEscape)this.pattern=this.pattern.replace(/\\/g,"/");this.preserveMultipleSlashes=!!Q.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!Q.nonegate,this.comment=!1,this.empty=!1,this.partial=!!Q.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=Q.windowsNoMagicRoot!==void 0?Q.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let A of this.set)for(let Q of A)if(typeof Q!=="string")return!0;return!1}debug(...A){}make(){let A=this.pattern,Q=this.options;if(!Q.nocomment&&A.charAt(0)==="#"){this.comment=!0;return}if(!A){this.empty=!0;return}if(this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],Q.debug)this.debug=(...C)=>console.error(...C);this.debug(this.pattern,this.globSet);let B=this.globSet.map((C)=>this.slashSplit(C));this.globParts=this.preprocess(B),this.debug(this.pattern,this.globParts);let I=this.globParts.map((C,E,Y)=>{if(this.isWindows&&this.windowsNoMagicRoot){let J=C[0]===""&&C[1]===""&&(C[2]==="?"||!p0A.test(C[2]))&&!p0A.test(C[3]),F=/^[a-z]:/i.test(C[0]);if(J)return[...C.slice(0,4),...C.slice(4).map((G)=>this.parse(G))];else if(F)return[C[0],...C.slice(1).map((G)=>this.parse(G))]}return C.map((J)=>this.parse(J))});if(this.debug(this.pattern,I),this.set=I.filter((C)=>C.indexOf(!1)===-1),this.isWindows)for(let C=0;C=2)A=this.firstPhasePreProcess(A),A=this.secondPhasePreProcess(A);else if(Q>=1)A=this.levelOneOptimize(A);else A=this.adjascentGlobstarOptimize(A);return A}adjascentGlobstarOptimize(A){return A.map((Q)=>{let B=-1;while((B=Q.indexOf("**",B+1))!==-1){let I=B;while(Q[I+1]==="**")I++;if(I!==B)Q.splice(B,I-B)}return Q})}levelOneOptimize(A){return A.map((Q)=>{return Q=Q.reduce((B,I)=>{let C=B[B.length-1];if(I==="**"&&C==="**")return B;if(I===".."){if(C&&C!==".."&&C!=="."&&C!=="**")return B.pop(),B}return B.push(I),B},[]),Q.length===0?[""]:Q})}levelTwoFileOptimize(A){if(!Array.isArray(A))A=this.slashSplit(A);let Q=!1;do{if(Q=!1,!this.preserveMultipleSlashes){for(let I=1;II)B.splice(I+1,E-I);let Y=B[I+1],J=B[I+2],F=B[I+3];if(Y!=="..")continue;if(!J||J==="."||J===".."||!F||F==="."||F==="..")continue;Q=!0,B.splice(I,1);let G=B.slice(0);G[I]="**",A.push(G),I--}if(!this.preserveMultipleSlashes){for(let E=1;EQ.length)}partsMatch(A,Q,B=!1){let I=0,C=0,E=[],Y="";while(I=2)A=this.levelTwoFileOptimize(A);if(Q.includes(PW.GLOBSTAR))return this.#A(A,Q,B,I,C);return this.#C(A,Q,B,I,C)}#A(A,Q,B,I,C){let E=Q.indexOf(PW.GLOBSTAR,C),Y=Q.lastIndexOf(PW.GLOBSTAR),[J,F,G]=B?[Q.slice(C,E),Q.slice(E+1),[]]:[Q.slice(C,E),Q.slice(E+1,Y),Q.slice(Y+1)];if(J.length){let z=A.slice(I,I+J.length);if(!this.#C(z,J,B,0,0))return!1;I+=J.length,C+=J.length}let D=0;if(G.length){if(G.length+I>A.length)return!1;let z=A.length-G.length;if(this.#C(A,G,B,z,0))D=G.length;else{if(A[A.length-1]!==""||I+G.length===A.length)return!1;if(z--,!this.#C(A,G,B,z,0))return!1;D=G.length+1}}if(!F.length){let z=!!D;for(let M=I;M{let F=J.map((D)=>{if(D instanceof RegExp)for(let Z of D.flags.split(""))I.add(Z);return typeof D==="string"?IIQ(D):D===PW.GLOBSTAR?PW.GLOBSTAR:D._src});F.forEach((D,Z)=>{let W=F[Z+1],U=F[Z-1];if(D!==PW.GLOBSTAR||U===PW.GLOBSTAR)return;if(U===void 0)if(W!==void 0&&W!==PW.GLOBSTAR)F[Z+1]="(?:\\/|"+B+"\\/)?"+W;else F[Z]=B;else if(W===void 0)F[Z-1]=U+"(?:\\/|\\/"+B+")?";else if(W!==PW.GLOBSTAR)F[Z-1]=U+"(?:\\/|\\/"+B+"\\/)"+W,F[Z+1]=PW.GLOBSTAR});let G=F.filter((D)=>D!==PW.GLOBSTAR);if(this.partial&&G.length>=1){let D=[];for(let Z=1;Z<=G.length;Z++)D.push(G.slice(0,Z).join("/"));return"(?:"+D.join("|")+")"}return G.join("/")}).join("|"),[E,Y]=A.length>1?["(?:",")"]:["",""];if(C="^"+E+C+Y+"$",this.partial)C="^(?:\\/|"+E+C.slice(1,-1)+Y+")$";if(this.negate)C="^(?!"+C+").+$";try{this.regexp=new RegExp(C,[...I].join(""))}catch(J){this.regexp=!1}return this.regexp}slashSplit(A){if(this.preserveMultipleSlashes)return A.split("/");else if(this.isWindows&&/^\/\/[^\/]+/.test(A))return["",...A.split(/\/+/)];else return A.split(/\/+/)}match(A,Q=this.partial){if(this.debug("match",A,this.pattern),this.comment)return!1;if(this.empty)return A==="";if(A==="/"&&Q)return!0;let B=this.options;if(this.isWindows)A=A.split("\\").join("/");let I=this.slashSplit(A);this.debug(this.pattern,"split",I);let C=this.set;this.debug(this.pattern,"set",C);let E=I[I.length-1];if(!E)for(let Y=I.length-2;!E&&Y>=0;Y--)E=I[Y];for(let Y=0;Y{var BYA=H("node:diagnostics_channel"),{context:g8,trace:P$,SpanStatusCode:kW,propagation:k$,diag:GIQ}=j(),{getRPCMetadata:DIQ,RPCType:ZIQ}=MA(),{ATTR_HTTP_ROUTE:y8,ATTR_HTTP_RESPONSE_STATUS_CODE:IYA,ATTR_HTTP_REQUEST_METHOD:WIQ,ATTR_URL_PATH:UIQ}=JA(),{InstrumentationBase:XIQ}=X0A(),{version:wIQ,name:CYA}=w0A(),EYA=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend","onResponse","onError"],SA={HOOK_NAME:"hook.name",FASTIFY_TYPE:"fastify.type",HOOK_CALLBACK_NAME:"hook.callback.name",ROOT:"fastify.root"},w0={ROUTE:"route-hook",INSTANCE:"hook",HANDLER:"request-handler"},K0=Symbol("fastify otel instance"),V0=Symbol("fastify otel request spans"),SW=Symbol("fastify otel request context"),YYA=Symbol("fastify otel addhook original"),JYA=Symbol("fastify otel setnotfound original"),gW=Symbol("fastify otel ignore path"),yW=Symbol("fastify otel record exceptions");class S$ extends XIQ{logger=null;_requestHook=null;_lifecycleHook=null;constructor(A){super(CYA,wIQ,A);if(this.logger=GIQ.createComponentLogger({namespace:CYA}),this[gW]=null,this[yW]=!0,A?.recordExceptions!=null){if(typeof A.recordExceptions!=="boolean")throw TypeError("recordExceptions must be a boolean");this[yW]=A.recordExceptions}if(typeof A?.requestHook==="function")this._requestHook=A.requestHook;if(typeof A?.lifecycleHook==="function")this._lifecycleHook=A.lifecycleHook;if(A?.ignorePaths!=null||process.env.OTEL_FASTIFY_IGNORE_PATHS!=null){let Q=A?.ignorePaths??process.env.OTEL_FASTIFY_IGNORE_PATHS;if((typeof Q!=="string"||Q.length===0)&&typeof Q!=="function")throw TypeError("ignorePaths must be a string or a function");let B=null;this[gW]=(I)=>{if(typeof Q==="function")return Q(I);else{if(B==null)B=QYA().minimatch;return B(I.url,Q)}}}}enable(){if(this._handleInitialization===void 0&&this.getConfig().registerOnInitialization)this._handleInitialization=(A)=>{this.plugin()(A.fastify,void 0,()=>{});let Q=(B,I,C)=>{C()};Q[Symbol.for("skip-override")]=!0,Q[Symbol.for("fastify.display-name")]="@fastify/otel",A.fastify.register(Q)},BYA.subscribe("fastify.initialization",this._handleInitialization);return super.enable()}disable(){if(this._handleInitialization)BYA.unsubscribe("fastify.initialization",this._handleInitialization),this._handleInitialization=void 0;return super.disable()}init(){return[]}plugin(){let A=this;return Q[Symbol.for("skip-override")]=!0,Q[Symbol.for("fastify.display-name")]="@fastify/otel",Q[Symbol.for("plugin-meta")]={fastify:">=4.0.0 <6",name:"@fastify/otel"},Q;function Q(B,I,C){B.decorate(K0,A),B.decorate(YYA,B.addHook),B.decorate(JYA,B.setNotFoundHandler),B.decorateRequest("opentelemetry",function(){let Z=this[SW],W=this[V0];return{enabled:this.routeOptions.config?.otel!==!1,span:W,tracer:A.tracer,context:Z,inject:(U,w)=>{return k$.inject(Z,U,w)},extract:(U,w)=>{return k$.extract(Z,U,w)}}}),B.decorateRequest(V0,null),B.decorateRequest(SW,null),B.addHook("onRoute",function(Z){if(A[gW]?.(Z)===!0){A.logger.debug(`Ignoring route instrumentation ${Z.method} ${Z.url} because it matches the ignore path`);return}if(Z.config?.otel===!1){A.logger.debug(`Ignoring route instrumentation ${Z.method} ${Z.url} because it is disabled`);return}for(let W of EYA)if(Z[W]!=null){let U=Z[W];if(typeof U==="function")Z[W]=G(U,W,{[SA.HOOK_NAME]:`${this.pluginName} - route -> ${W}`,[SA.FASTIFY_TYPE]:w0.ROUTE,[y8]:Z.url,[SA.HOOK_CALLBACK_NAME]:U.name?.length>0?U.name:"anonymous"});else if(Array.isArray(U)){let w=[];for(let K of U)w.push(G(K,W,{[SA.HOOK_NAME]:`${this.pluginName} - route -> ${W}`,[SA.FASTIFY_TYPE]:w0.ROUTE,[y8]:Z.url,[SA.HOOK_CALLBACK_NAME]:K.name?.length>0?K.name:"anonymous"}));Z[W]=w}}if(Z.onSend!=null)Z.onSend=Array.isArray(Z.onSend)?[...Z.onSend,E]:[Z.onSend,E];else Z.onSend=E;if(Z.onError!=null)Z.onError=Array.isArray(Z.onError)?[...Z.onError,Y]:[Z.onError,Y];else Z.onError=Y;Z.handler=G(Z.handler,"handler",{[SA.HOOK_NAME]:`${this.pluginName} - route-handler`,[SA.FASTIFY_TYPE]:w0.HANDLER,[y8]:Z.url,[SA.HOOK_CALLBACK_NAME]:Z.handler.name.length>0?Z.handler.name:"anonymous"})}),B.addHook("onRequest",function(Z,W,U){if(this[K0].isEnabled()===!1||Z.routeOptions.config?.otel===!1)return U();if(this[K0][gW]?.({url:Z.url,method:Z.method})===!0)return this[K0].logger.debug(`Ignoring request ${Z.method} ${Z.url} because it matches the ignore path`),U();let w=g8.active();if(P$.getSpan(w)==null)w=k$.extract(w,Z.headers);let K=DIQ(w);if(Z.routeOptions.url!=null&&K?.type===ZIQ.HTTP)K.route=Z.routeOptions.url;let V={[SA.ROOT]:"@fastify/otel",[WIQ]:Z.method,[UIQ]:Z.url};if(Z.routeOptions.url!=null)V[y8]=Z.routeOptions.url;let z=this[K0].tracer.startSpan("request",{attributes:V},w);try{this[K0]._requestHook?.(z,Z)}catch(M){this[K0].logger.error({err:M},"requestHook threw")}Z[SW]=P$.setSpan(w,z),Z[V0]=z,g8.with(Z[SW],()=>{U()})}),B.addHook("onResponse",function(Z,W,U){let w=Z[V0];if(w!=null)w.setStatus({code:kW.OK,message:"OK"}),w.setAttributes({[IYA]:404}),w.end();Z[V0]=null,U()}),B.addHook=J,B.setNotFoundHandler=F,C();function E(D,Z,W,U){let w=D[V0];if(w!=null){if(Z.statusCode<500)w.setStatus({code:kW.OK,message:"OK"});w.setAttributes({[IYA]:Z.statusCode}),w.end()}D[V0]=null,U(null,W)}function Y(D,Z,W,U){let w=D[V0];if(w!=null){if(w.setStatus({code:kW.ERROR,message:W.message}),A[yW]!==!1)w.recordException(W)}U()}function J(D,Z){let W=this[YYA];if(EYA.includes(D))return W.call(this,D,G(Z,D,{[SA.HOOK_NAME]:`${this.pluginName} - ${D}`,[SA.FASTIFY_TYPE]:w0.INSTANCE,[SA.HOOK_CALLBACK_NAME]:Z.name?.length>0?Z.name:"anonymous"}));else return W.call(this,D,Z)}function F(D,Z){let W=this[JYA];if(typeof D==="function")Z=G(D,"notFoundHandler",{[SA.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[SA.FASTIFY_TYPE]:w0.INSTANCE,[SA.HOOK_CALLBACK_NAME]:D.name?.length>0?D.name:"anonymous"}),W.call(this,Z);else{if(D.preValidation!=null)D.preValidation=G(D.preValidation,"notFoundHandler - preValidation",{[SA.HOOK_NAME]:`${this.pluginName} - not-found-handler - preValidation`,[SA.FASTIFY_TYPE]:w0.INSTANCE,[SA.HOOK_CALLBACK_NAME]:D.preValidation.name?.length>0?D.preValidation.name:"anonymous"});if(D.preHandler!=null)D.preHandler=G(D.preHandler,"notFoundHandler - preHandler",{[SA.HOOK_NAME]:`${this.pluginName} - not-found-handler - preHandler`,[SA.FASTIFY_TYPE]:w0.INSTANCE,[SA.HOOK_CALLBACK_NAME]:D.preHandler.name?.length>0?D.preHandler.name:"anonymous"});Z=G(Z,"notFoundHandler",{[SA.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[SA.FASTIFY_TYPE]:w0.INSTANCE,[SA.HOOK_CALLBACK_NAME]:Z.name?.length>0?Z.name:"anonymous"}),W.call(this,D,Z)}}function G(D,Z,W={}){return function(...w){let K=this[K0],[V]=w;if(K.isEnabled()===!1||V.routeOptions.config?.otel===!1)return K.logger.debug(`Ignoring route instrumentation ${V.routeOptions.method} ${V.routeOptions.url} because it is disabled`),D.call(this,...w);if(K[gW]?.({url:V.url,method:V.method})===!0)return K.logger.debug(`Ignoring route instrumentation ${V.routeOptions.method} ${V.routeOptions.url} because it matches the ignore path`),D.call(this,...w);let z=V[SW]??g8.active(),M=D.name?.length>0?D.name:this.pluginName??"anonymous",L=K.tracer.startSpan(`${Z} - ${M}`,{attributes:W},z);if(K._lifecycleHook!=null)try{K._lifecycleHook(L,{hookName:Z,request:V,handler:M})}catch(N){K.logger.error({err:N},"Execution of lifecycleHook failed")}return g8.with(P$.setSpan(z,L),function(){try{let N=D.call(this,...w);if(typeof N?.then==="function")return N.then((T)=>{return L.end(),T},(T)=>{if(L.setStatus({code:kW.ERROR,message:T.message}),K[yW]!==!1)L.recordException(T);return L.end(),Promise.reject(T)});return L.end(),N}catch(N){if(L.setStatus({code:kW.ERROR,message:N.message}),K[yW]!==!1)L.recordException(N);throw L.end(),N}},this)}}}}}g$.exports=S$;g$.exports.FastifyOtelInstrumentation=S$});var v$=X((jYA)=>{Object.defineProperty(jYA,"__esModule",{value:!0});jYA.SpanNames=jYA.TokenKind=jYA.AllowedOperationTypes=void 0;var jIQ;(function(A){A.QUERY="query",A.MUTATION="mutation",A.SUBSCRIPTION="subscription"})(jIQ=jYA.AllowedOperationTypes||(jYA.AllowedOperationTypes={}));var RIQ;(function(A){A.SOF="",A.EOF="",A.BANG="!",A.DOLLAR="$",A.AMP="&",A.PAREN_L="(",A.PAREN_R=")",A.SPREAD="...",A.COLON=":",A.EQUALS="=",A.AT="@",A.BRACKET_L="[",A.BRACKET_R="]",A.BRACE_L="{",A.PIPE="|",A.BRACE_R="}",A.NAME="Name",A.INT="Int",A.FLOAT="Float",A.STRING="String",A.BLOCK_STRING="BlockString",A.COMMENT="Comment"})(RIQ=jYA.TokenKind||(jYA.TokenKind={}));var qIQ;(function(A){A.EXECUTE="graphql.execute",A.PARSE="graphql.parse",A.RESOLVE="graphql.resolve",A.VALIDATE="graphql.validate",A.SCHEMA_VALIDATE="graphql.validateSchema",A.SCHEMA_PARSE="graphql.parseSchema"})(qIQ=jYA.SpanNames||(jYA.SpanNames={}))});var b$=X((RYA)=>{Object.defineProperty(RYA,"__esModule",{value:!0});RYA.AttributeNames=void 0;var OIQ;(function(A){A.SOURCE="graphql.source",A.FIELD_NAME="graphql.field.name",A.FIELD_PATH="graphql.field.path",A.FIELD_TYPE="graphql.field.type",A.PARENT_NAME="graphql.parent.name",A.OPERATION_TYPE="graphql.operation.type",A.OPERATION_NAME="graphql.operation.name",A.VARIABLES="graphql.variables.",A.ERROR_VALIDATION_NAME="graphql.validation.error"})(OIQ=RYA.AttributeNames||(RYA.AttributeNames={}))});var v8=X((qYA)=>{Object.defineProperty(qYA,"__esModule",{value:!0});qYA.OTEL_GRAPHQL_DATA_SYMBOL=qYA.OTEL_PATCHED_SYMBOL=void 0;qYA.OTEL_PATCHED_SYMBOL=Symbol.for("opentelemetry.patched");qYA.OTEL_GRAPHQL_DATA_SYMBOL=Symbol.for("opentelemetry.graphql_data")});var kYA=X((TYA)=>{Object.defineProperty(TYA,"__esModule",{value:!0});TYA.OPERATION_NOT_SUPPORTED=void 0;var XyQ=v8();TYA.OPERATION_NOT_SUPPORTED="Operation$operationName$not supported"});var nYA=X((lYA)=>{Object.defineProperty(lYA,"__esModule",{value:!0});lYA.wrapFieldResolver=lYA.wrapFields=lYA.getSourceFromLocation=lYA.getOperation=lYA.endSpan=lYA.addSpanSource=lYA.addInputVariableAttributes=lYA.isPromise=void 0;var XG=j(),z0=v$(),sY=b$(),JE=v8(),SYA=Object.values(z0.AllowedOperationTypes),PIQ=(A)=>{return typeof A?.then==="function"};lYA.isPromise=PIQ;var kIQ=(A)=>{return typeof A=="object"&&A!==null};function m$(A,Q,B){if(Array.isArray(B))B.forEach((I,C)=>{m$(A,`${Q}.${C}`,I)});else if(B instanceof Object)Object.entries(B).forEach(([I,C])=>{m$(A,`${Q}.${I}`,C)});else A.setAttribute(`${sY.AttributeNames.VARIABLES}${String(Q)}`,B)}function SIQ(A,Q){Object.entries(Q).forEach(([B,I])=>{m$(A,B,I)})}lYA.addInputVariableAttributes=SIQ;function fYA(A,Q,B,I,C){let E=mYA(Q,B,I,C);A.setAttribute(sY.AttributeNames.SOURCE,E)}lYA.addSpanSource=fYA;function gIQ(A,Q,B,I,C){let E=_YA(B,C);if(E)return{field:E,spanAdded:!1};let J=Q().flatResolveSpans?xYA(B):vYA(B,C);return E={span:yIQ(A,Q,B,I,C,J)},_IQ(B,C,E),{field:E,spanAdded:!0}}function yIQ(A,Q,B,I,C,E){let Y={[sY.AttributeNames.FIELD_NAME]:I.fieldName,[sY.AttributeNames.FIELD_PATH]:C.join("."),[sY.AttributeNames.FIELD_TYPE]:I.returnType.toString(),[sY.AttributeNames.PARENT_NAME]:I.parentType.name},J=A.startSpan(`${z0.SpanNames.RESOLVE} ${Y[sY.AttributeNames.FIELD_PATH]}`,{attributes:Y},E?XG.trace.setSpan(XG.context.active(),E):void 0),F=B[JE.OTEL_GRAPHQL_DATA_SYMBOL].source,G=I.fieldNodes.find((D)=>D.kind==="Field");if(G)fYA(J,F.loc,Q().allowValues,G.loc?.start,G.loc?.end);return J}function hIQ(A,Q){if(Q)A.recordException(Q);A.end()}lYA.endSpan=hIQ;function fIQ(A,Q){if(!A||!Array.isArray(A.definitions))return;if(Q)return A.definitions.filter((B)=>SYA.indexOf(B?.operation)!==-1).find((B)=>Q===B?.name?.value);else return A.definitions.find((B)=>SYA.indexOf(B?.operation)!==-1)}lYA.getOperation=fIQ;function _IQ(A,Q,B){return A[JE.OTEL_GRAPHQL_DATA_SYMBOL].fields[Q.join(".")]=B}function _YA(A,Q){return A[JE.OTEL_GRAPHQL_DATA_SYMBOL].fields[Q.join(".")]}function vYA(A,Q){for(let B=Q.length-1;B>0;B--){let I=_YA(A,Q.slice(0,B));if(I)return I.span}return xYA(A)}function xYA(A){return A[JE.OTEL_GRAPHQL_DATA_SYMBOL].span}function vIQ(A,Q){let B=[],I=Q;while(I){let C=I.key;if(A&&typeof C==="number")C="*";B.push(String(C)),I=I.prev}return B.reverse()}function xIQ(A){return bYA(` -`,A)}function gYA(A){return bYA(" ",A)}function bYA(A,Q){let B="";for(let I=0;IY){J=J.next,F=J?.line;continue}let G=J.value||J.kind,D="";if(!Q&&bIQ.indexOf(J.kind)>=0)G="*";if(J.kind===z0.TokenKind.STRING)G=`"${G}"`;if(J.kind===z0.TokenKind.EOF)G="";if(J.line>F)C+=xIQ(J.line-F),F=J.line,D=gYA(J.column-1);else if(J.line===J.prev?.line)D=gYA(J.start-(J.prev?.end||0));if(C+=D+G,J)J=J.next}}return C}lYA.getSourceFromLocation=mYA;function dYA(A,Q,B){if(!A||A[JE.OTEL_PATCHED_SYMBOL])return;let I=A.getFields();A[JE.OTEL_PATCHED_SYMBOL]=!0,Object.keys(I).forEach((C)=>{let E=I[C];if(!E)return;if(E.resolve)E.resolve=uYA(Q,B,E.resolve);if(E.type){let Y=cYA(E.type);for(let J of Y)dYA(J,Q,B)}})}lYA.wrapFields=dYA;function cYA(A){if("ofType"in A)return cYA(A.ofType);if(mIQ(A))return A.getTypes();if(dIQ(A))return[A];return[]}function mIQ(A){return"getTypes"in A&&typeof A.getTypes==="function"}function dIQ(A){return"getFields"in A&&typeof A.getFields==="function"}var yYA=(A,Q,B)=>{if(!B)return;A.recordException(Q),A.setStatus({code:XG.SpanStatusCode.ERROR,message:Q.message}),A.end()},hYA=(A,Q)=>{if(!Q)return;A.end()};function uYA(A,Q,B,I=!1){if(C[JE.OTEL_PATCHED_SYMBOL]||typeof B!=="function")return B;function C(E,Y,J,F){if(!B)return;let G=Q();if(G.ignoreTrivialResolveSpans&&I&&(kIQ(E)||typeof E==="function")){if(typeof E[F.fieldName]!=="function")return B.call(this,E,Y,J,F)}if(!J[JE.OTEL_GRAPHQL_DATA_SYMBOL])return B.call(this,E,Y,J,F);let D=vIQ(G.mergeItems,F&&F.path),Z=D.filter((w)=>typeof w==="string").length,W,U=!1;if(G.depth>=0&&G.depth{try{let w=B.call(this,E,Y,J,F);if(lYA.isPromise(w))return w.then((K)=>{return hYA(W,U),K},(K)=>{throw yYA(W,K,U),K});else return hYA(W,U),w}catch(w){throw yYA(W,w,U),w}})}return C[JE.OTEL_PATCHED_SYMBOL]=!0,C}lYA.wrapFieldResolver=uYA});var sYA=X((oYA)=>{Object.defineProperty(oYA,"__esModule",{value:!0});oYA.PACKAGE_NAME=oYA.PACKAGE_VERSION=void 0;oYA.PACKAGE_VERSION="0.61.0";oYA.PACKAGE_NAME="@opentelemetry/instrumentation-graphql"});var BJA=X((AJA)=>{Object.defineProperty(AJA,"__esModule",{value:!0});AJA.GraphQLInstrumentation=void 0;var FE=j(),KI=s(),vW=v$(),x8=b$(),d$=v8(),aIQ=kYA(),mQ=nYA(),rYA=sYA(),tYA={mergeItems:!1,depth:-1,allowValues:!1,ignoreResolveSpans:!1},b8=[">=14.0.0 <17"];class eYA extends KI.InstrumentationBase{constructor(A={}){super(rYA.PACKAGE_NAME,rYA.PACKAGE_VERSION,{...tYA,...A})}setConfig(A={}){super.setConfig({...tYA,...A})}init(){let A=new KI.InstrumentationNodeModuleDefinition("graphql",b8);return A.files.push(this._addPatchingExecute()),A.files.push(this._addPatchingParser()),A.files.push(this._addPatchingValidate()),A}_addPatchingExecute(){return new KI.InstrumentationNodeModuleFile("graphql/execution/execute.js",b8,(A)=>{if((0,KI.isWrapped)(A.execute))this._unwrap(A,"execute");return this._wrap(A,"execute",this._patchExecute(A.defaultFieldResolver)),A},(A)=>{if(A)this._unwrap(A,"execute")})}_addPatchingParser(){return new KI.InstrumentationNodeModuleFile("graphql/language/parser.js",b8,(A)=>{if((0,KI.isWrapped)(A.parse))this._unwrap(A,"parse");return this._wrap(A,"parse",this._patchParse()),A},(A)=>{if(A)this._unwrap(A,"parse")})}_addPatchingValidate(){return new KI.InstrumentationNodeModuleFile("graphql/validation/validate.js",b8,(A)=>{if((0,KI.isWrapped)(A.validate))this._unwrap(A,"validate");return this._wrap(A,"validate",this._patchValidate()),A},(A)=>{if(A)this._unwrap(A,"validate")})}_patchExecute(A){let Q=this;return function(I){return function(){let E;if(arguments.length>=2){let F=arguments;E=Q._wrapExecuteArgs(F[0],F[1],F[2],F[3],F[4],F[5],F[6],F[7],A)}else{let F=arguments[0];E=Q._wrapExecuteArgs(F.schema,F.document,F.rootValue,F.contextValue,F.variableValues,F.operationName,F.fieldResolver,F.typeResolver,A)}let Y=(0,mQ.getOperation)(E.document,E.operationName),J=Q._createExecuteSpan(Y,E);return E.contextValue[d$.OTEL_GRAPHQL_DATA_SYMBOL]={source:E.document?E.document||E.document[d$.OTEL_GRAPHQL_DATA_SYMBOL]:void 0,span:J,fields:{}},FE.context.with(FE.trace.setSpan(FE.context.active(),J),()=>{return(0,KI.safeExecuteInTheMiddle)(()=>{return I.apply(this,[E])},(F,G)=>{Q._handleExecutionResult(J,F,G)})})}}}_handleExecutionResult(A,Q,B){let I=this.getConfig();if(B===void 0||Q){(0,mQ.endSpan)(A,Q);return}if((0,mQ.isPromise)(B))B.then((C)=>{if(typeof I.responseHook!=="function"){(0,mQ.endSpan)(A);return}this._executeResponseHook(A,C)},(C)=>{(0,mQ.endSpan)(A,C)});else{if(typeof I.responseHook!=="function"){(0,mQ.endSpan)(A);return}this._executeResponseHook(A,B)}}_executeResponseHook(A,Q){let{responseHook:B}=this.getConfig();if(!B)return;(0,KI.safeExecuteInTheMiddle)(()=>{B(A,Q)},(I)=>{if(I)this._diag.error("Error running response hook",I);(0,mQ.endSpan)(A,void 0)},!0)}_patchParse(){let A=this;return function(B){return function(C,E){return A._parse(this,B,C,E)}}}_patchValidate(){let A=this;return function(B){return function(C,E,Y,J,F){return A._validate(this,B,C,E,Y,F,J)}}}_parse(A,Q,B,I){let C=this.getConfig(),E=this.tracer.startSpan(vW.SpanNames.PARSE);return FE.context.with(FE.trace.setSpan(FE.context.active(),E),()=>{return(0,KI.safeExecuteInTheMiddle)(()=>{return Q.call(A,B,I)},(Y,J)=>{if(J){if(!(0,mQ.getOperation)(J))E.updateName(vW.SpanNames.SCHEMA_PARSE);else if(J.loc)(0,mQ.addSpanSource)(E,J.loc,C.allowValues)}(0,mQ.endSpan)(E,Y)})})}_validate(A,Q,B,I,C,E,Y){let J=this.tracer.startSpan(vW.SpanNames.VALIDATE,{});return FE.context.with(FE.trace.setSpan(FE.context.active(),J),()=>{return(0,KI.safeExecuteInTheMiddle)(()=>{return Q.call(A,B,I,C,Y,E)},(F,G)=>{if(!I.loc)J.updateName(vW.SpanNames.SCHEMA_VALIDATE);if(G&&G.length)J.recordException({name:x8.AttributeNames.ERROR_VALIDATION_NAME,message:JSON.stringify(G)});(0,mQ.endSpan)(J,F)})})}_createExecuteSpan(A,Q){let B=this.getConfig(),I=this.tracer.startSpan(vW.SpanNames.EXECUTE,{});if(A){let{operation:C,name:E}=A;I.setAttribute(x8.AttributeNames.OPERATION_TYPE,C);let Y=E?.value;if(Y)I.setAttribute(x8.AttributeNames.OPERATION_NAME,Y),I.updateName(`${C} ${Y}`);else I.updateName(C)}else{let C=" ";if(Q.operationName)C=` "${Q.operationName}" `;C=aIQ.OPERATION_NOT_SUPPORTED.replace("$operationName$",C),I.setAttribute(x8.AttributeNames.OPERATION_NAME,C)}if(Q.document?.loc)(0,mQ.addSpanSource)(I,Q.document.loc,B.allowValues);if(Q.variableValues&&B.allowValues)(0,mQ.addInputVariableAttributes)(I,Q.variableValues);return I}_wrapExecuteArgs(A,Q,B,I,C,E,Y,J,F){if(!I)I={};if(I[d$.OTEL_GRAPHQL_DATA_SYMBOL]||this.getConfig().ignoreResolveSpans)return{schema:A,document:Q,rootValue:B,contextValue:I,variableValues:C,operationName:E,fieldResolver:Y,typeResolver:J};let G=Y==null,D=Y??F;if(Y=(0,mQ.wrapFieldResolver)(this.tracer,()=>this.getConfig(),D,G),A)(0,mQ.wrapFields)(A.getQueryType(),this.tracer,()=>this.getConfig()),(0,mQ.wrapFields)(A.getMutationType(),this.tracer,()=>this.getConfig());return{schema:A,document:Q,rootValue:B,contextValue:I,variableValues:C,operationName:E,fieldResolver:Y,typeResolver:J}}}AJA.GraphQLInstrumentation=eYA});var IJA=X((c$)=>{Object.defineProperty(c$,"__esModule",{value:!0});c$.GraphQLInstrumentation=void 0;var sIQ=BJA();Object.defineProperty(c$,"GraphQLInstrumentation",{enumerable:!0,get:function(){return sIQ.GraphQLInstrumentation}})});var WJA=X((DJA)=>{Object.defineProperty(DJA,"__esModule",{value:!0});DJA.EVENT_LISTENERS_SET=void 0;DJA.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.kafkajs.eventListenersSet")});var wJA=X((UJA)=>{Object.defineProperty(UJA,"__esModule",{value:!0});UJA.bufferTextMapGetter=void 0;UJA.bufferTextMapGetter={get(A,Q){if(!A)return;let B=Object.keys(A);for(let I of B)if(I===Q||I.toLowerCase()===Q)return A[I]?.toString();return},keys(A){return A?Object.keys(A):[]}}});var zJA=X((KJA)=>{Object.defineProperty(KJA,"__esModule",{value:!0});KJA.METRIC_MESSAGING_PROCESS_DURATION=KJA.METRIC_MESSAGING_CLIENT_SENT_MESSAGES=KJA.METRIC_MESSAGING_CLIENT_OPERATION_DURATION=KJA.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES=KJA.MESSAGING_SYSTEM_VALUE_KAFKA=KJA.MESSAGING_OPERATION_TYPE_VALUE_SEND=KJA.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE=KJA.MESSAGING_OPERATION_TYPE_VALUE_PROCESS=KJA.ATTR_MESSAGING_SYSTEM=KJA.ATTR_MESSAGING_OPERATION_TYPE=KJA.ATTR_MESSAGING_OPERATION_NAME=KJA.ATTR_MESSAGING_KAFKA_OFFSET=KJA.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE=KJA.ATTR_MESSAGING_KAFKA_MESSAGE_KEY=KJA.ATTR_MESSAGING_DESTINATION_PARTITION_ID=KJA.ATTR_MESSAGING_DESTINATION_NAME=KJA.ATTR_MESSAGING_BATCH_MESSAGE_COUNT=void 0;KJA.ATTR_MESSAGING_BATCH_MESSAGE_COUNT="messaging.batch.message_count";KJA.ATTR_MESSAGING_DESTINATION_NAME="messaging.destination.name";KJA.ATTR_MESSAGING_DESTINATION_PARTITION_ID="messaging.destination.partition.id";KJA.ATTR_MESSAGING_KAFKA_MESSAGE_KEY="messaging.kafka.message.key";KJA.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE="messaging.kafka.message.tombstone";KJA.ATTR_MESSAGING_KAFKA_OFFSET="messaging.kafka.offset";KJA.ATTR_MESSAGING_OPERATION_NAME="messaging.operation.name";KJA.ATTR_MESSAGING_OPERATION_TYPE="messaging.operation.type";KJA.ATTR_MESSAGING_SYSTEM="messaging.system";KJA.MESSAGING_OPERATION_TYPE_VALUE_PROCESS="process";KJA.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE="receive";KJA.MESSAGING_OPERATION_TYPE_VALUE_SEND="send";KJA.MESSAGING_SYSTEM_VALUE_KAFKA="kafka";KJA.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES="messaging.client.consumed.messages";KJA.METRIC_MESSAGING_CLIENT_OPERATION_DURATION="messaging.client.operation.duration";KJA.METRIC_MESSAGING_CLIENT_SENT_MESSAGES="messaging.client.sent.messages";KJA.METRIC_MESSAGING_PROCESS_DURATION="messaging.process.duration"});var MJA=X(($JA)=>{Object.defineProperty($JA,"__esModule",{value:!0});$JA.PACKAGE_NAME=$JA.PACKAGE_VERSION=void 0;$JA.PACKAGE_VERSION="0.22.0";$JA.PACKAGE_NAME="@opentelemetry/instrumentation-kafkajs"});var kJA=X((TJA)=>{Object.defineProperty(TJA,"__esModule",{value:!0});TJA.KafkaJsInstrumentation=void 0;var jA=j(),VI=s(),wG=JA(),LJA=WJA(),NJA=wJA(),h=zJA(),jJA=MJA();function m8(A,Q,B){return(I)=>{A.add(Q,{...B,...I?{[wG.ATTR_ERROR_TYPE]:I}:{}})}}function RJA(A,Q,B){return(I)=>{A.record((Date.now()-Q)/1000,{...B,...I?{[wG.ATTR_ERROR_TYPE]:I}:{}})}}var qJA=[0.005,0.01,0.025,0.05,0.075,0.1,0.25,0.5,0.75,1,2.5,5,7.5,10];class OJA extends VI.InstrumentationBase{constructor(A={}){super(jJA.PACKAGE_NAME,jJA.PACKAGE_VERSION,A)}_updateMetricInstruments(){this._clientDuration=this.meter.createHistogram(h.METRIC_MESSAGING_CLIENT_OPERATION_DURATION,{advice:{explicitBucketBoundaries:qJA}}),this._sentMessages=this.meter.createCounter(h.METRIC_MESSAGING_CLIENT_SENT_MESSAGES),this._consumedMessages=this.meter.createCounter(h.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES),this._processDuration=this.meter.createHistogram(h.METRIC_MESSAGING_PROCESS_DURATION,{advice:{explicitBucketBoundaries:qJA}})}init(){let A=(B)=>{if((0,VI.isWrapped)(B?.Kafka?.prototype.producer))this._unwrap(B.Kafka.prototype,"producer");if((0,VI.isWrapped)(B?.Kafka?.prototype.consumer))this._unwrap(B.Kafka.prototype,"consumer")};return new VI.InstrumentationNodeModuleDefinition("kafkajs",[">=0.3.0 <3"],(B)=>{return A(B),this._wrap(B?.Kafka?.prototype,"producer",this._getProducerPatch()),this._wrap(B?.Kafka?.prototype,"consumer",this._getConsumerPatch()),B},A)}_getConsumerPatch(){let A=this;return(Q)=>{return function(...I){let C=Q.apply(this,I);if((0,VI.isWrapped)(C.run))A._unwrap(C,"run");return A._wrap(C,"run",A._getConsumerRunPatch()),A._setKafkaEventListeners(C),C}}}_setKafkaEventListeners(A){if(A[LJA.EVENT_LISTENERS_SET])return;if(A.events?.REQUEST)A.on(A.events.REQUEST,this._recordClientDurationMetric.bind(this));A[LJA.EVENT_LISTENERS_SET]=!0}_recordClientDurationMetric(A){let[Q,B]=A.payload.broker.split(":");this._clientDuration.record(A.payload.duration/1000,{[h.ATTR_MESSAGING_SYSTEM]:h.MESSAGING_SYSTEM_VALUE_KAFKA,[h.ATTR_MESSAGING_OPERATION_NAME]:`${A.payload.apiName}`,[wG.ATTR_SERVER_ADDRESS]:Q,[wG.ATTR_SERVER_PORT]:Number.parseInt(B,10)})}_getProducerPatch(){let A=this;return(Q)=>{return function(...I){let C=Q.apply(this,I);if((0,VI.isWrapped)(C.sendBatch))A._unwrap(C,"sendBatch");if(A._wrap(C,"sendBatch",A._getSendBatchPatch()),(0,VI.isWrapped)(C.send))A._unwrap(C,"send");if(A._wrap(C,"send",A._getSendPatch()),(0,VI.isWrapped)(C.transaction))A._unwrap(C,"transaction");return A._wrap(C,"transaction",A._getProducerTransactionPatch()),A._setKafkaEventListeners(C),C}}}_getConsumerRunPatch(){let A=this;return(Q)=>{return function(...I){let C=I[0];if(C?.eachMessage){if((0,VI.isWrapped)(C.eachMessage))A._unwrap(C,"eachMessage");A._wrap(C,"eachMessage",A._getConsumerEachMessagePatch())}if(C?.eachBatch){if((0,VI.isWrapped)(C.eachBatch))A._unwrap(C,"eachBatch");A._wrap(C,"eachBatch",A._getConsumerEachBatchPatch())}return Q.call(this,C)}}}_getConsumerEachMessagePatch(){let A=this;return(Q)=>{return function(...I){let C=I[0],E=jA.propagation.extract(jA.ROOT_CONTEXT,C.message.headers,NJA.bufferTextMapGetter),Y=A._startConsumerSpan({topic:C.topic,message:C.message,operationType:h.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,ctx:E,attributes:{[h.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(C.partition)}}),J=[RJA(A._processDuration,Date.now(),{[h.ATTR_MESSAGING_SYSTEM]:h.MESSAGING_SYSTEM_VALUE_KAFKA,[h.ATTR_MESSAGING_OPERATION_NAME]:"process",[h.ATTR_MESSAGING_DESTINATION_NAME]:C.topic,[h.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(C.partition)}),m8(A._consumedMessages,1,{[h.ATTR_MESSAGING_SYSTEM]:h.MESSAGING_SYSTEM_VALUE_KAFKA,[h.ATTR_MESSAGING_OPERATION_NAME]:"process",[h.ATTR_MESSAGING_DESTINATION_NAME]:C.topic,[h.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(C.partition)})],F=jA.context.with(jA.trace.setSpan(E,Y),()=>{return Q.apply(this,I)});return A._endSpansOnPromise([Y],J,F)}}}_getConsumerEachBatchPatch(){return(A)=>{let Q=this;return function(...I){let C=I[0],E=Q._startConsumerSpan({topic:C.batch.topic,message:void 0,operationType:h.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE,ctx:jA.ROOT_CONTEXT,attributes:{[h.ATTR_MESSAGING_BATCH_MESSAGE_COUNT]:C.batch.messages.length,[h.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(C.batch.partition)}});return jA.context.with(jA.trace.setSpan(jA.context.active(),E),()=>{let Y=Date.now(),J=[],F=[m8(Q._consumedMessages,C.batch.messages.length,{[h.ATTR_MESSAGING_SYSTEM]:h.MESSAGING_SYSTEM_VALUE_KAFKA,[h.ATTR_MESSAGING_OPERATION_NAME]:"process",[h.ATTR_MESSAGING_DESTINATION_NAME]:C.batch.topic,[h.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(C.batch.partition)})];C.batch.messages.forEach((D)=>{let Z=jA.propagation.extract(jA.ROOT_CONTEXT,D.headers,NJA.bufferTextMapGetter),W=jA.trace.getSpan(Z)?.spanContext(),U;if(W)U={context:W};J.push(Q._startConsumerSpan({topic:C.batch.topic,message:D,operationType:h.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,link:U,attributes:{[h.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(C.batch.partition)}})),F.push(RJA(Q._processDuration,Y,{[h.ATTR_MESSAGING_SYSTEM]:h.MESSAGING_SYSTEM_VALUE_KAFKA,[h.ATTR_MESSAGING_OPERATION_NAME]:"process",[h.ATTR_MESSAGING_DESTINATION_NAME]:C.batch.topic,[h.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(C.batch.partition)}))});let G=A.apply(this,I);return J.unshift(E),Q._endSpansOnPromise(J,F,G)})}}}_getProducerTransactionPatch(){let A=this;return(Q)=>{return function(...I){let C=A.tracer.startSpan("transaction"),E=Q.apply(this,I);return E.then((Y)=>{let J=Y.send;Y.send=function(...W){return jA.context.with(jA.trace.setSpan(jA.context.active(),C),()=>{return A._getSendPatch()(J).apply(this,W).catch((w)=>{throw C.setStatus({code:jA.SpanStatusCode.ERROR,message:w?.message}),C.recordException(w),w})})};let F=Y.sendBatch;Y.sendBatch=function(...W){return jA.context.with(jA.trace.setSpan(jA.context.active(),C),()=>{return A._getSendBatchPatch()(F).apply(this,W).catch((w)=>{throw C.setStatus({code:jA.SpanStatusCode.ERROR,message:w?.message}),C.recordException(w),w})})};let G=Y.commit;Y.commit=function(...W){let U=G.apply(this,W).then(()=>{C.setStatus({code:jA.SpanStatusCode.OK})});return A._endSpansOnPromise([C],[],U)};let D=Y.abort;Y.abort=function(...W){let U=D.apply(this,W);return A._endSpansOnPromise([C],[],U)}}).catch((Y)=>{C.setStatus({code:jA.SpanStatusCode.ERROR,message:Y?.message}),C.recordException(Y),C.end()}),E}}}_getSendBatchPatch(){let A=this;return(Q)=>{return function(...I){let E=I[0].topicMessages||[],Y=[],J=[];E.forEach((G)=>{G.messages.forEach((D)=>{Y.push(A._startProducerSpan(G.topic,D)),J.push(m8(A._sentMessages,1,{[h.ATTR_MESSAGING_SYSTEM]:h.MESSAGING_SYSTEM_VALUE_KAFKA,[h.ATTR_MESSAGING_OPERATION_NAME]:"send",[h.ATTR_MESSAGING_DESTINATION_NAME]:G.topic,...D.partition!==void 0?{[h.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(D.partition)}:{}}))})});let F=Q.apply(this,I);return A._endSpansOnPromise(Y,J,F)}}}_getSendPatch(){let A=this;return(Q)=>{return function(...I){let C=I[0],E=C.messages.map((F)=>{return A._startProducerSpan(C.topic,F)}),Y=C.messages.map((F)=>m8(A._sentMessages,1,{[h.ATTR_MESSAGING_SYSTEM]:h.MESSAGING_SYSTEM_VALUE_KAFKA,[h.ATTR_MESSAGING_OPERATION_NAME]:"send",[h.ATTR_MESSAGING_DESTINATION_NAME]:C.topic,...F.partition!==void 0?{[h.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(F.partition)}:{}})),J=Q.apply(this,I);return A._endSpansOnPromise(E,Y,J)}}}_endSpansOnPromise(A,Q,B){return Promise.resolve(B).then((I)=>{return Q.forEach((C)=>C()),I}).catch((I)=>{let C,E=wG.ERROR_TYPE_VALUE_OTHER;if(typeof I==="string"||I===void 0)C=I;else if(typeof I==="object"&&Object.prototype.hasOwnProperty.call(I,"message"))C=I.message,E=I.constructor.name;throw Q.forEach((Y)=>Y(E)),A.forEach((Y)=>{Y.setAttribute(wG.ATTR_ERROR_TYPE,E),Y.setStatus({code:jA.SpanStatusCode.ERROR,message:C})}),I}).finally(()=>{A.forEach((I)=>I.end())})}_startConsumerSpan({topic:A,message:Q,operationType:B,ctx:I,link:C,attributes:E}){let Y=B===h.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE?"poll":B,J=this.tracer.startSpan(`${Y} ${A}`,{kind:B===h.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE?jA.SpanKind.CLIENT:jA.SpanKind.CONSUMER,attributes:{...E,[h.ATTR_MESSAGING_SYSTEM]:h.MESSAGING_SYSTEM_VALUE_KAFKA,[h.ATTR_MESSAGING_DESTINATION_NAME]:A,[h.ATTR_MESSAGING_OPERATION_TYPE]:B,[h.ATTR_MESSAGING_OPERATION_NAME]:Y,[h.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]:Q?.key?String(Q.key):void 0,[h.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:Q?.key&&Q.value===null?!0:void 0,[h.ATTR_MESSAGING_KAFKA_OFFSET]:Q?.offset},links:C?[C]:[]},I),{consumerHook:F}=this.getConfig();if(F&&Q)(0,VI.safeExecuteInTheMiddle)(()=>F(J,{topic:A,message:Q}),(G)=>{if(G)this._diag.error("consumerHook error",G)},!0);return J}_startProducerSpan(A,Q){let B=this.tracer.startSpan(`send ${A}`,{kind:jA.SpanKind.PRODUCER,attributes:{[h.ATTR_MESSAGING_SYSTEM]:h.MESSAGING_SYSTEM_VALUE_KAFKA,[h.ATTR_MESSAGING_DESTINATION_NAME]:A,[h.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]:Q.key?String(Q.key):void 0,[h.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:Q.key&&Q.value===null?!0:void 0,[h.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:Q.partition!==void 0?String(Q.partition):void 0,[h.ATTR_MESSAGING_OPERATION_NAME]:"send",[h.ATTR_MESSAGING_OPERATION_TYPE]:h.MESSAGING_OPERATION_TYPE_VALUE_SEND}});Q.headers=Q.headers??{},jA.propagation.inject(jA.trace.setSpan(jA.context.active(),B),Q.headers);let{producerHook:I}=this.getConfig();if(I)(0,VI.safeExecuteInTheMiddle)(()=>I(B,{topic:A,message:Q}),(C)=>{if(C)this._diag.error("producerHook error",C)},!0);return B}}TJA.KafkaJsInstrumentation=OJA});var SJA=X((u$)=>{Object.defineProperty(u$,"__esModule",{value:!0});u$.KafkaJsInstrumentation=void 0;var VCQ=kJA();Object.defineProperty(u$,"KafkaJsInstrumentation",{enumerable:!0,get:function(){return VCQ.KafkaJsInstrumentation}})});var xJA=X((_JA)=>{Object.defineProperty(_JA,"__esModule",{value:!0});_JA.PACKAGE_NAME=_JA.PACKAGE_VERSION=void 0;_JA.PACKAGE_VERSION="0.57.0";_JA.PACKAGE_NAME="@opentelemetry/instrumentation-lru-memoizer"});var pJA=X((uJA)=>{Object.defineProperty(uJA,"__esModule",{value:!0});uJA.LruMemoizerInstrumentation=void 0;var bJA=j(),mJA=s(),dJA=xJA();class cJA extends mJA.InstrumentationBase{constructor(A={}){super(dJA.PACKAGE_NAME,dJA.PACKAGE_VERSION,A)}init(){return[new mJA.InstrumentationNodeModuleDefinition("lru-memoizer",[">=1.3 <3"],(A)=>{let Q=function(){let B=A.apply(this,arguments);return function(){let I=[...arguments],C=I.pop(),E=typeof C==="function"?bJA.context.bind(bJA.context.active(),C):C;return I.push(E),B.apply(this,I)}};return Q.sync=A.sync,Q},void 0)]}}uJA.LruMemoizerInstrumentation=cJA});var iJA=X((l$)=>{Object.defineProperty(l$,"__esModule",{value:!0});l$.LruMemoizerInstrumentation=void 0;var MCQ=pJA();Object.defineProperty(l$,"LruMemoizerInstrumentation",{enumerable:!0,get:function(){return MCQ.LruMemoizerInstrumentation}})});var eJA=X((rJA)=>{Object.defineProperty(rJA,"__esModule",{value:!0});rJA.METRIC_DB_CLIENT_CONNECTIONS_USAGE=rJA.DB_SYSTEM_VALUE_MONGODB=rJA.DB_SYSTEM_NAME_VALUE_MONGODB=rJA.ATTR_NET_PEER_PORT=rJA.ATTR_NET_PEER_NAME=rJA.ATTR_DB_SYSTEM=rJA.ATTR_DB_STATEMENT=rJA.ATTR_DB_OPERATION=rJA.ATTR_DB_NAME=rJA.ATTR_DB_MONGODB_COLLECTION=rJA.ATTR_DB_CONNECTION_STRING=void 0;rJA.ATTR_DB_CONNECTION_STRING="db.connection_string";rJA.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection";rJA.ATTR_DB_NAME="db.name";rJA.ATTR_DB_OPERATION="db.operation";rJA.ATTR_DB_STATEMENT="db.statement";rJA.ATTR_DB_SYSTEM="db.system";rJA.ATTR_NET_PEER_NAME="net.peer.name";rJA.ATTR_NET_PEER_PORT="net.peer.port";rJA.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb";rJA.DB_SYSTEM_VALUE_MONGODB="mongodb";rJA.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"});var QFA=X((AFA)=>{Object.defineProperty(AFA,"__esModule",{value:!0});AFA.MongodbCommandType=void 0;var hCQ;(function(A){A.CREATE_INDEXES="createIndexes",A.FIND_AND_MODIFY="findAndModify",A.IS_MASTER="isMaster",A.COUNT="count",A.AGGREGATE="aggregate",A.UNKNOWN="unknown"})(hCQ=AFA.MongodbCommandType||(AFA.MongodbCommandType={}))});var CFA=X((BFA)=>{Object.defineProperty(BFA,"__esModule",{value:!0});BFA.PACKAGE_NAME=BFA.PACKAGE_VERSION=void 0;BFA.PACKAGE_VERSION="0.66.0";BFA.PACKAGE_NAME="@opentelemetry/instrumentation-mongodb"});var GFA=X((JFA)=>{Object.defineProperty(JFA,"__esModule",{value:!0});JFA.MongoDBInstrumentation=void 0;var mA=j(),ZA=s(),GE=JA(),iB=eJA(),rY=QFA(),EFA=CFA(),YFA={requireParentSpan:!0};class i$ extends ZA.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(A={}){super(EFA.PACKAGE_NAME,EFA.PACKAGE_VERSION,{...YFA,...A});this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,ZA.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,ZA.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(A={}){super.setConfig({...YFA,...A})}_updateMetricInstruments(){this._connectionsUsage=this.meter.createUpDownCounter(iB.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(A,Q,B){this._connectionsUsage?.add(A,{"pool.name":Q,state:B})}init(){let{v3PatchConnection:A,v3UnpatchConnection:Q}=this._getV3ConnectionPatches(),{v4PatchConnect:B,v4UnpatchConnect:I}=this._getV4ConnectPatches(),{v4PatchConnectionCallback:C,v4PatchConnectionPromise:E,v4UnpatchConnection:Y}=this._getV4ConnectionPatches(),{v4PatchConnectionPool:J,v4UnpatchConnectionPool:F}=this._getV4ConnectionPoolPatches(),{v4PatchSessions:G,v4UnpatchSessions:D}=this._getV4SessionsPatches();return[new ZA.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new ZA.InstrumentationNodeModuleFile("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],A,Q)]),new ZA.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <8"],void 0,void 0,[new ZA.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],C,Y),new ZA.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=6.4.0 <8"],E,Y),new ZA.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],J,F),new ZA.InstrumentationNodeModuleFile("mongodb/lib/cmap/connect.js",[">=4.0.0 <8"],B,I),new ZA.InstrumentationNodeModuleFile("mongodb/lib/sessions.js",[">=4.0.0 <8"],G,D)])]}_getV3ConnectionPatches(){return{v3PatchConnection:(A)=>{if((0,ZA.isWrapped)(A.insert))this._unwrap(A,"insert");if(this._wrap(A,"insert",this._getV3PatchOperation("insert")),(0,ZA.isWrapped)(A.remove))this._unwrap(A,"remove");if(this._wrap(A,"remove",this._getV3PatchOperation("remove")),(0,ZA.isWrapped)(A.update))this._unwrap(A,"update");if(this._wrap(A,"update",this._getV3PatchOperation("update")),(0,ZA.isWrapped)(A.command))this._unwrap(A,"command");if(this._wrap(A,"command",this._getV3PatchCommand()),(0,ZA.isWrapped)(A.query))this._unwrap(A,"query");if(this._wrap(A,"query",this._getV3PatchFind()),(0,ZA.isWrapped)(A.getMore))this._unwrap(A,"getMore");return this._wrap(A,"getMore",this._getV3PatchCursor()),A},v3UnpatchConnection:(A)=>{if(A===void 0)return;this._unwrap(A,"insert"),this._unwrap(A,"remove"),this._unwrap(A,"update"),this._unwrap(A,"command"),this._unwrap(A,"query"),this._unwrap(A,"getMore")}}}_getV4SessionsPatches(){return{v4PatchSessions:(A)=>{if((0,ZA.isWrapped)(A.acquire))this._unwrap(A,"acquire");if(this._wrap(A.ServerSessionPool.prototype,"acquire",this._getV4AcquireCommand()),(0,ZA.isWrapped)(A.release))this._unwrap(A,"release");return this._wrap(A.ServerSessionPool.prototype,"release",this._getV4ReleaseCommand()),A},v4UnpatchSessions:(A)=>{if(A===void 0)return;if((0,ZA.isWrapped)(A.acquire))this._unwrap(A,"acquire");if((0,ZA.isWrapped)(A.release))this._unwrap(A,"release")}}}_getV4AcquireCommand(){let A=this;return(Q)=>{return function(){let I=this.sessions.length,C=Q.call(this),E=this.sessions.length;if(I===E)A._connCountAdd(1,A._poolName,"used");else if(I-1===E)A._connCountAdd(-1,A._poolName,"idle"),A._connCountAdd(1,A._poolName,"used");return C}}}_getV4ReleaseCommand(){let A=this;return(Q)=>{return function(I){let C=Q.call(this,I);return A._connCountAdd(-1,A._poolName,"used"),A._connCountAdd(1,A._poolName,"idle"),C}}}_getV4ConnectionPoolPatches(){return{v4PatchConnectionPool:(A)=>{let Q=A.ConnectionPool.prototype;if((0,ZA.isWrapped)(Q.checkOut))this._unwrap(Q,"checkOut");return this._wrap(Q,"checkOut",this._getV4ConnectionPoolCheckOut()),A},v4UnpatchConnectionPool:(A)=>{if(A===void 0)return;this._unwrap(A.ConnectionPool.prototype,"checkOut")}}}_getV4ConnectPatches(){return{v4PatchConnect:(A)=>{if((0,ZA.isWrapped)(A.connect))this._unwrap(A,"connect");return this._wrap(A,"connect",this._getV4ConnectCommand()),A},v4UnpatchConnect:(A)=>{if(A===void 0)return;this._unwrap(A,"connect")}}}_getV4ConnectionPoolCheckOut(){return(A)=>{return function(B){let I=mA.context.bind(mA.context.active(),B);return A.call(this,I)}}}_getV4ConnectCommand(){let A=this;return(Q)=>{return function(I,C){if(Q.length===1){let Y=Q.call(this,I);if(Y&&typeof Y.then==="function")Y.then(()=>A.setPoolName(I),()=>{return});return Y}let E=function(Y,J){if(Y||!J){C(Y,J);return}A.setPoolName(I),C(Y,J)};return Q.call(this,I,E)}}}_getV4ConnectionPatches(){return{v4PatchConnectionCallback:(A)=>{if((0,ZA.isWrapped)(A.Connection.prototype.command))this._unwrap(A.Connection.prototype,"command");return this._wrap(A.Connection.prototype,"command",this._getV4PatchCommandCallback()),A},v4PatchConnectionPromise:(A)=>{if((0,ZA.isWrapped)(A.Connection.prototype.command))this._unwrap(A.Connection.prototype,"command");return this._wrap(A.Connection.prototype,"command",this._getV4PatchCommandPromise()),A},v4UnpatchConnection:(A)=>{if(A===void 0)return;this._unwrap(A.Connection.prototype,"command")}}}_getV3PatchOperation(A){let Q=this;return(B)=>{return function(C,E,Y,J,F){let G=mA.trace.getSpan(mA.context.active()),D=Q._checkSkipInstrumentation(G),Z=typeof J==="function"?J:F;if(D||typeof Z!=="function"||typeof Y!=="object")if(typeof J==="function")return B.call(this,C,E,Y,J);else return B.call(this,C,E,Y,J,F);let W=Q._getV3SpanAttributes(E,C,Y[0],A),U=Q._spanNameFromAttrs(W),w=Q.tracer.startSpan(U,{kind:mA.SpanKind.CLIENT,attributes:W}),K=Q._patchEnd(w,Z);if(typeof J==="function")return B.call(this,C,E,Y,K);else return B.call(this,C,E,Y,J,K)}}}_getV3PatchCommand(){let A=this;return(Q)=>{return function(I,C,E,Y,J){let F=mA.trace.getSpan(mA.context.active()),G=A._checkSkipInstrumentation(F),D=typeof Y==="function"?Y:J;if(G||typeof D!=="function"||typeof E!=="object")if(typeof Y==="function")return Q.call(this,I,C,E,Y);else return Q.call(this,I,C,E,Y,J);let Z=i$._getCommandType(E),W=Z===rY.MongodbCommandType.UNKNOWN?void 0:Z,U=A._getV3SpanAttributes(C,I,E,W),w=A._spanNameFromAttrs(U),K=A.tracer.startSpan(w,{kind:mA.SpanKind.CLIENT,attributes:U}),V=A._patchEnd(K,D);if(typeof Y==="function")return Q.call(this,I,C,E,V);else return Q.call(this,I,C,E,Y,V)}}}_getV4PatchCommandCallback(){let A=this;return(Q)=>{return function(I,C,E,Y){let J=mA.trace.getSpan(mA.context.active()),F=A._checkSkipInstrumentation(J),G=Y,D=Object.keys(C)[0];if(typeof C!=="object"||C.ismaster||C.hello)return Q.call(this,I,C,E,Y);let Z=void 0;if(!F){let U=A._getV4SpanAttributes(this,I,C,D),w=A._spanNameFromAttrs(U);Z=A.tracer.startSpan(w,{kind:mA.SpanKind.CLIENT,attributes:U})}let W=A._patchEnd(Z,G,this.id,D);return Q.call(this,I,C,E,W)}}}_getV4PatchCommandPromise(){let A=this;return(Q)=>{return function(...I){let[C,E]=I,Y=mA.trace.getSpan(mA.context.active()),J=A._checkSkipInstrumentation(Y),F=Object.keys(E)[0],G=()=>{return};if(typeof E!=="object"||E.ismaster||E.hello)return Q.apply(this,I);let D=void 0;if(!J){let U=A._getV4SpanAttributes(this,C,E,F),w=A._spanNameFromAttrs(U);D=A.tracer.startSpan(w,{kind:mA.SpanKind.CLIENT,attributes:U})}let Z=A._patchEnd(D,G,this.id,F),W=Q.apply(this,I);return W.then((U)=>Z(null,U),(U)=>Z(U)),W}}}_getV3PatchFind(){let A=this;return(Q)=>{return function(I,C,E,Y,J,F){let G=mA.trace.getSpan(mA.context.active()),D=A._checkSkipInstrumentation(G),Z=typeof J==="function"?J:F;if(D||typeof Z!=="function"||typeof E!=="object")if(typeof J==="function")return Q.call(this,I,C,E,Y,J);else return Q.call(this,I,C,E,Y,J,F);let W=A._getV3SpanAttributes(C,I,E,"find"),U=A._spanNameFromAttrs(W),w=A.tracer.startSpan(U,{kind:mA.SpanKind.CLIENT,attributes:W}),K=A._patchEnd(w,Z);if(typeof J==="function")return Q.call(this,I,C,E,Y,K);else return Q.call(this,I,C,E,Y,J,K)}}}_getV3PatchCursor(){let A=this;return(Q)=>{return function(I,C,E,Y,J,F){let G=mA.trace.getSpan(mA.context.active()),D=A._checkSkipInstrumentation(G),Z=typeof J==="function"?J:F;if(D||typeof Z!=="function")if(typeof J==="function")return Q.call(this,I,C,E,Y,J);else return Q.call(this,I,C,E,Y,J,F);let W=A._getV3SpanAttributes(C,I,E.cmd,"getMore"),U=A._spanNameFromAttrs(W),w=A.tracer.startSpan(U,{kind:mA.SpanKind.CLIENT,attributes:W}),K=A._patchEnd(w,Z);if(typeof J==="function")return Q.call(this,I,C,E,Y,K);else return Q.call(this,I,C,E,Y,J,K)}}}static _getCommandType(A){if(A.createIndexes!==void 0)return rY.MongodbCommandType.CREATE_INDEXES;else if(A.findandmodify!==void 0)return rY.MongodbCommandType.FIND_AND_MODIFY;else if(A.ismaster!==void 0)return rY.MongodbCommandType.IS_MASTER;else if(A.count!==void 0)return rY.MongodbCommandType.COUNT;else if(A.aggregate!==void 0)return rY.MongodbCommandType.AGGREGATE;else return rY.MongodbCommandType.UNKNOWN}_getV4SpanAttributes(A,Q,B,I){let C,E;if(A){let J=typeof A.address==="string"?A.address.split(":"):"";if(J.length===2)C=J[0],E=J[1]}let Y;if(B?.documents&&B.documents[0])Y=B.documents[0];else if(B?.cursors)Y=B.cursors;else Y=B;return this._getSpanAttributes(Q.db,Q.collection,C,E,Y,I)}_getV3SpanAttributes(A,Q,B,I){let C,E;if(Q&&Q.s){if(C=Q.s.options?.host??Q.s.host,E=(Q.s.options?.port??Q.s.port)?.toString(),C==null||E==null){let G=Q.description?.address;if(G){let D=G.split(":");C=D[0],E=D[1]}}}let[Y,J]=A.toString().split("."),F=B?.query??B?.q??B;return this._getSpanAttributes(Y,J,C,E,F,I)}_getSpanAttributes(A,Q,B,I,C,E){let Y={};if(this._dbSemconvStability&ZA.SemconvStability.OLD)Y[iB.ATTR_DB_SYSTEM]=iB.DB_SYSTEM_VALUE_MONGODB,Y[iB.ATTR_DB_NAME]=A,Y[iB.ATTR_DB_MONGODB_COLLECTION]=Q,Y[iB.ATTR_DB_OPERATION]=E,Y[iB.ATTR_DB_CONNECTION_STRING]=`mongodb://${B}:${I}/${A}`;if(this._dbSemconvStability&ZA.SemconvStability.STABLE)Y[GE.ATTR_DB_SYSTEM_NAME]=iB.DB_SYSTEM_NAME_VALUE_MONGODB,Y[GE.ATTR_DB_NAMESPACE]=A,Y[GE.ATTR_DB_OPERATION_NAME]=E,Y[GE.ATTR_DB_COLLECTION_NAME]=Q;if(B&&I){if(this._netSemconvStability&ZA.SemconvStability.OLD)Y[iB.ATTR_NET_PEER_NAME]=B;if(this._netSemconvStability&ZA.SemconvStability.STABLE)Y[GE.ATTR_SERVER_ADDRESS]=B;let J=parseInt(I,10);if(!isNaN(J)){if(this._netSemconvStability&ZA.SemconvStability.OLD)Y[iB.ATTR_NET_PEER_PORT]=J;if(this._netSemconvStability&ZA.SemconvStability.STABLE)Y[GE.ATTR_SERVER_PORT]=J}}if(C){let{dbStatementSerializer:J}=this.getConfig(),F=typeof J==="function"?J:this._defaultDbStatementSerializer.bind(this);(0,ZA.safeExecuteInTheMiddle)(()=>{let G=F(C);if(this._dbSemconvStability&ZA.SemconvStability.OLD)Y[iB.ATTR_DB_STATEMENT]=G;if(this._dbSemconvStability&ZA.SemconvStability.STABLE)Y[GE.ATTR_DB_QUERY_TEXT]=G},(G)=>{if(G)this._diag.error("Error running dbStatementSerializer hook",G)},!0)}return Y}_spanNameFromAttrs(A){let Q;if(this._dbSemconvStability&ZA.SemconvStability.STABLE)Q=[A[GE.ATTR_DB_OPERATION_NAME],A[GE.ATTR_DB_COLLECTION_NAME]].filter((B)=>B).join(" ")||iB.DB_SYSTEM_NAME_VALUE_MONGODB;else Q=`mongodb.${A[iB.ATTR_DB_OPERATION]||"command"}`;return Q}_getDefaultDbStatementReplacer(){let A=new WeakSet;return(Q,B)=>{if(typeof B!=="object"||!B)return"?";if(A.has(B))return"[Circular]";return A.add(B),B}}_defaultDbStatementSerializer(A){let{enhancedDatabaseReporting:Q}=this.getConfig();if(Q)return JSON.stringify(A);return JSON.stringify(A,this._getDefaultDbStatementReplacer())}_handleExecutionResult(A,Q){let{responseHook:B}=this.getConfig();if(typeof B==="function")(0,ZA.safeExecuteInTheMiddle)(()=>{B(A,{data:Q})},(I)=>{if(I)this._diag.error("Error running response hook",I)},!0)}_patchEnd(A,Q,B,I){let C=mA.context.active(),E=this,Y=!1;return function(...F){if(!Y){Y=!0;let G=F[0];if(A){if(G instanceof Error)A.setStatus({code:mA.SpanStatusCode.ERROR,message:G.message});else{let D=F[1];E._handleExecutionResult(A,D)}A.end()}if(I==="endSessions")E._connCountAdd(-1,E._poolName,"idle")}return mA.context.with(C,()=>{return Q.apply(this,F)})}}setPoolName(A){let Q=A.hostAddress?.host,B=A.hostAddress?.port,I=A.dbName,C=`mongodb://${Q}:${B}/${I}`;this._poolName=C}_checkSkipInstrumentation(A){return this.getConfig().requireParentSpan===!0&&A===void 0}}JFA.MongoDBInstrumentation=i$});var ZFA=X((DFA)=>{Object.defineProperty(DFA,"__esModule",{value:!0});DFA.MongodbCommandType=void 0;var _CQ;(function(A){A.CREATE_INDEXES="createIndexes",A.FIND_AND_MODIFY="findAndModify",A.IS_MASTER="isMaster",A.COUNT="count",A.UNKNOWN="unknown"})(_CQ=DFA.MongodbCommandType||(DFA.MongodbCommandType={}))});var WFA=X((d8)=>{Object.defineProperty(d8,"__esModule",{value:!0});d8.MongodbCommandType=d8.MongoDBInstrumentation=void 0;var vCQ=GFA();Object.defineProperty(d8,"MongoDBInstrumentation",{enumerable:!0,get:function(){return vCQ.MongoDBInstrumentation}});var xCQ=ZFA();Object.defineProperty(d8,"MongodbCommandType",{enumerable:!0,get:function(){return xCQ.MongodbCommandType}})});var a$=X((VFA)=>{Object.defineProperty(VFA,"__esModule",{value:!0});VFA.DB_SYSTEM_NAME_VALUE_MONGODB=VFA.ATTR_NET_PEER_PORT=VFA.ATTR_NET_PEER_NAME=VFA.ATTR_DB_USER=VFA.ATTR_DB_SYSTEM=VFA.ATTR_DB_STATEMENT=VFA.ATTR_DB_OPERATION=VFA.ATTR_DB_NAME=VFA.ATTR_DB_MONGODB_COLLECTION=void 0;VFA.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection";VFA.ATTR_DB_NAME="db.name";VFA.ATTR_DB_OPERATION="db.operation";VFA.ATTR_DB_STATEMENT="db.statement";VFA.ATTR_DB_SYSTEM="db.system";VFA.ATTR_DB_USER="db.user";VFA.ATTR_NET_PEER_NAME="net.peer.name";VFA.ATTR_NET_PEER_PORT="net.peer.port";VFA.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb"});var NFA=X((MFA)=>{Object.defineProperty(MFA,"__esModule",{value:!0});MFA.handleCallbackResponse=MFA.handlePromiseResponse=MFA.getAttributesFromCollection=void 0;var $FA=j(),bW=s(),xW=a$(),c8=JA();function eCQ(A,Q,B){let I={};if(Q&bW.SemconvStability.OLD)I[xW.ATTR_DB_MONGODB_COLLECTION]=A.name,I[xW.ATTR_DB_NAME]=A.conn.name,I[xW.ATTR_DB_USER]=A.conn.user;if(Q&bW.SemconvStability.STABLE)I[c8.ATTR_DB_COLLECTION_NAME]=A.name,I[c8.ATTR_DB_NAMESPACE]=A.conn.name;if(B&bW.SemconvStability.OLD)I[xW.ATTR_NET_PEER_NAME]=A.conn.host,I[xW.ATTR_NET_PEER_PORT]=A.conn.port;if(B&bW.SemconvStability.STABLE)I[c8.ATTR_SERVER_ADDRESS]=A.conn.host,I[c8.ATTR_SERVER_PORT]=A.conn.port;return I}MFA.getAttributesFromCollection=eCQ;function HFA(A,Q={}){A.recordException(Q),A.setStatus({code:$FA.SpanStatusCode.ERROR,message:`${Q.message} ${Q.code?` -Mongoose Error Code: ${Q.code}`:""}`})}function s$(A,Q,B,I=void 0){if(!B)return;(0,bW.safeExecuteInTheMiddle)(()=>B(A,{moduleVersion:I,response:Q}),(C)=>{if(C)$FA.diag.error("mongoose instrumentation: responseHook error",C)},!0)}function AEQ(A,Q,B,I=void 0){if(!(A instanceof Promise))return s$(Q,A,B,I),Q.end(),A;return A.then((C)=>{return s$(Q,C,B,I),C}).catch((C)=>{throw HFA(Q,C),C}).finally(()=>Q.end())}MFA.handlePromiseResponse=AEQ;function QEQ(A,Q,B,I,C,E,Y=void 0){let J=0;if(C.length===2)J=1;else if(C.length===3)J=2;return C[J]=(F,G)=>{if(F)HFA(I,F);else s$(I,G,E,Y);return I.end(),A(F,G)},Q.apply(B,C)}MFA.handleCallbackResponse=QEQ});var qFA=X((jFA)=>{Object.defineProperty(jFA,"__esModule",{value:!0});jFA.PACKAGE_NAME=jFA.PACKAGE_VERSION=void 0;jFA.PACKAGE_VERSION="0.59.0";jFA.PACKAGE_NAME="@opentelemetry/instrumentation-mongoose"});var hFA=X((gFA)=>{Object.defineProperty(gFA,"__esModule",{value:!0});gFA.MongooseInstrumentation=gFA._ALREADY_INSTRUMENTED=gFA._STORED_PARENT_SPAN=void 0;var XQ=j(),EEQ=MA(),r$=NFA(),SQ=s(),OFA=qFA(),$0=a$(),tY=JA(),u8=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],YEQ=["remove","count","findOneAndRemove",...u8],JEQ=["count","findOneAndRemove",...u8],FEQ=[...u8];function TFA(A){if(!A)return u8;else if(A.startsWith("6.")||A.startsWith("5."))return YEQ;else if(A.startsWith("7."))return JEQ;else return FEQ}function PFA(A){return A&&(A.startsWith("5.")||A.startsWith("6."))||!1}function kFA(A){if(!A||!A.startsWith("8."))return!1;return parseInt(A.split(".")[1],10)>=21}gFA._STORED_PARENT_SPAN=Symbol("stored-parent-span");gFA._ALREADY_INSTRUMENTED=Symbol("already-instrumented");class SFA extends SQ.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(A={}){super(OFA.PACKAGE_NAME,OFA.PACKAGE_VERSION,A);this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,SQ.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,SQ.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new SQ.InstrumentationNodeModuleDefinition("mongoose",[">=5.9.7 <10"],this.patch.bind(this),this.unpatch.bind(this))}patch(A,Q){let B=A[Symbol.toStringTag]==="Module"?A.default:A;if(this._wrap(B.Model.prototype,"save",this.patchOnModelMethods("save",Q)),B.Model.prototype.$save=B.Model.prototype.save,PFA(Q))this._wrap(B.Model.prototype,"remove",this.patchOnModelMethods("remove",Q));if(kFA(Q))this._wrap(B.Model.prototype,"updateOne",this._patchDocumentUpdateMethods("updateOne",Q)),this._wrap(B.Model.prototype,"deleteOne",this._patchDocumentUpdateMethods("deleteOne",Q));return this._wrap(B.Query.prototype,"exec",this.patchQueryExec(Q)),this._wrap(B.Aggregate.prototype,"exec",this.patchAggregateExec(Q)),TFA(Q).forEach((C)=>{this._wrap(B.Query.prototype,C,this.patchAndCaptureSpanContext(C))}),this._wrap(B.Model,"aggregate",this.patchModelAggregate()),this._wrap(B.Model,"insertMany",this.patchModelStatic("insertMany",Q)),this._wrap(B.Model,"bulkWrite",this.patchModelStatic("bulkWrite",Q)),B}unpatch(A,Q){let B=A[Symbol.toStringTag]==="Module"?A.default:A,I=TFA(Q);if(this._unwrap(B.Model.prototype,"save"),B.Model.prototype.$save=B.Model.prototype.save,PFA(Q))this._unwrap(B.Model.prototype,"remove");if(kFA(Q))this._unwrap(B.Model.prototype,"updateOne"),this._unwrap(B.Model.prototype,"deleteOne");this._unwrap(B.Query.prototype,"exec"),this._unwrap(B.Aggregate.prototype,"exec"),I.forEach((C)=>{this._unwrap(B.Query.prototype,C)}),this._unwrap(B.Model,"aggregate"),this._unwrap(B.Model,"insertMany"),this._unwrap(B.Model,"bulkWrite")}patchAggregateExec(A){let Q=this;return(B)=>{return function(C){if(Q.getConfig().requireParentSpan&&XQ.trace.getSpan(XQ.context.active())===void 0)return B.apply(this,arguments);let E=this[gFA._STORED_PARENT_SPAN],Y={},{dbStatementSerializer:J}=Q.getConfig();if(J){let G=J("aggregate",{options:this.options,aggregatePipeline:this._pipeline});if(Q._dbSemconvStability&SQ.SemconvStability.OLD)Y[$0.ATTR_DB_STATEMENT]=G;if(Q._dbSemconvStability&SQ.SemconvStability.STABLE)Y[tY.ATTR_DB_QUERY_TEXT]=G}let F=Q._startSpan(this._model.collection,this._model?.modelName,"aggregate",Y,E);return Q._handleResponse(F,B,this,arguments,C,A)}}}patchQueryExec(A){let Q=this;return(B)=>{return function(C){if(this[gFA._ALREADY_INSTRUMENTED])return B.apply(this,arguments);if(Q.getConfig().requireParentSpan&&XQ.trace.getSpan(XQ.context.active())===void 0)return B.apply(this,arguments);let E=this[gFA._STORED_PARENT_SPAN],Y={},{dbStatementSerializer:J}=Q.getConfig();if(J){let G=J(this.op,{condition:this.getFilter?.()??this._conditions,updates:this._update,options:this.getOptions?.()??this.options,fields:this._fields});if(Q._dbSemconvStability&SQ.SemconvStability.OLD)Y[$0.ATTR_DB_STATEMENT]=G;if(Q._dbSemconvStability&SQ.SemconvStability.STABLE)Y[tY.ATTR_DB_QUERY_TEXT]=G}let F=Q._startSpan(this.mongooseCollection,this.model.modelName,this.op,Y,E);return Q._handleResponse(F,B,this,arguments,C,A)}}}patchOnModelMethods(A,Q){let B=this;return(I)=>{return function(E,Y){if(B.getConfig().requireParentSpan&&XQ.trace.getSpan(XQ.context.active())===void 0)return I.apply(this,arguments);let J={document:this};if(E&&!(E instanceof Function))J.options=E;let F={},{dbStatementSerializer:G}=B.getConfig();if(G){let Z=G(A,J);if(B._dbSemconvStability&SQ.SemconvStability.OLD)F[$0.ATTR_DB_STATEMENT]=Z;if(B._dbSemconvStability&SQ.SemconvStability.STABLE)F[tY.ATTR_DB_QUERY_TEXT]=Z}let D=B._startSpan(this.constructor.collection,this.constructor.modelName,A,F);if(E instanceof Function)Y=E,E=void 0;return B._handleResponse(D,I,this,arguments,Y,Q)}}}_patchDocumentUpdateMethods(A,Q){let B=this;return(I)=>{return function(E,Y,J){if(B.getConfig().requireParentSpan&&XQ.trace.getSpan(XQ.context.active())===void 0)return I.apply(this,arguments);let F=J,G=E,D=Y;if(typeof E==="function")F=E,G=void 0,D=void 0;else if(typeof Y==="function")F=Y,D=void 0;let Z={},W=B.getConfig().dbStatementSerializer;if(W){let K=W(A,{condition:{_id:this._id},updates:G,options:D});if(B._dbSemconvStability&SQ.SemconvStability.OLD)Z[$0.ATTR_DB_STATEMENT]=K;if(B._dbSemconvStability&SQ.SemconvStability.STABLE)Z[tY.ATTR_DB_QUERY_TEXT]=K}let U=B._startSpan(this.constructor.collection,this.constructor.modelName,A,Z),w=B._handleResponse(U,I,this,arguments,F,Q);if(w&&typeof w==="object")w[gFA._ALREADY_INSTRUMENTED]=!0;return w}}}patchModelStatic(A,Q){let B=this;return(I)=>{return function(E,Y,J){if(B.getConfig().requireParentSpan&&XQ.trace.getSpan(XQ.context.active())===void 0)return I.apply(this,arguments);if(typeof Y==="function")J=Y,Y=void 0;let F={};switch(A){case"insertMany":F.documents=E;break;case"bulkWrite":F.operations=E;break;default:F.document=E;break}if(Y!==void 0)F.options=Y;let G={},{dbStatementSerializer:D}=B.getConfig();if(D){let W=D(A,F);if(B._dbSemconvStability&SQ.SemconvStability.OLD)G[$0.ATTR_DB_STATEMENT]=W;if(B._dbSemconvStability&SQ.SemconvStability.STABLE)G[tY.ATTR_DB_QUERY_TEXT]=W}let Z=B._startSpan(this.collection,this.modelName,A,G);return B._handleResponse(Z,I,this,arguments,J,Q)}}}patchModelAggregate(){let A=this;return(Q)=>{return function(){let I=XQ.trace.getSpan(XQ.context.active()),C=A._callOriginalFunction(()=>Q.apply(this,arguments));if(C)C[gFA._STORED_PARENT_SPAN]=I;return C}}}patchAndCaptureSpanContext(A){let Q=this;return(B)=>{return function(){return this[gFA._STORED_PARENT_SPAN]=XQ.trace.getSpan(XQ.context.active()),Q._callOriginalFunction(()=>B.apply(this,arguments))}}}_startSpan(A,Q,B,I,C){let E={...I,...(0,r$.getAttributesFromCollection)(A,this._dbSemconvStability,this._netSemconvStability)};if(this._dbSemconvStability&SQ.SemconvStability.OLD)E[$0.ATTR_DB_OPERATION]=B,E[$0.ATTR_DB_SYSTEM]="mongoose";if(this._dbSemconvStability&SQ.SemconvStability.STABLE)E[tY.ATTR_DB_OPERATION_NAME]=B,E[tY.ATTR_DB_SYSTEM_NAME]=$0.DB_SYSTEM_NAME_VALUE_MONGODB;let Y=this._dbSemconvStability&SQ.SemconvStability.STABLE?`${B} ${A.name}`:`mongoose.${Q}.${B}`;return this.tracer.startSpan(Y,{kind:XQ.SpanKind.CLIENT,attributes:E},C?XQ.trace.setSpan(XQ.context.active(),C):void 0)}_handleResponse(A,Q,B,I,C,E=void 0){let Y=this;if(C instanceof Function)return Y._callOriginalFunction(()=>(0,r$.handleCallbackResponse)(C,Q,B,A,I,Y.getConfig().responseHook,E));else{let J=Y._callOriginalFunction(()=>Q.apply(B,I));return(0,r$.handlePromiseResponse)(J,A,Y.getConfig().responseHook,E)}}_callOriginalFunction(A){if(this.getConfig().suppressInternalInstrumentation)return XQ.context.with((0,EEQ.suppressTracing)(XQ.context.active()),A);else return A()}}gFA.MongooseInstrumentation=SFA});var fFA=X((e$)=>{Object.defineProperty(e$,"__esModule",{value:!0});e$.MongooseInstrumentation=void 0;var GEQ=hFA();Object.defineProperty(e$,"MongooseInstrumentation",{enumerable:!0,get:function(){return GEQ.MongooseInstrumentation}})});var cFA=X((mFA)=>{Object.defineProperty(mFA,"__esModule",{value:!0});mFA.METRIC_DB_CLIENT_CONNECTIONS_USAGE=mFA.DB_SYSTEM_VALUE_MYSQL=mFA.ATTR_NET_PEER_PORT=mFA.ATTR_NET_PEER_NAME=mFA.ATTR_DB_USER=mFA.ATTR_DB_SYSTEM=mFA.ATTR_DB_STATEMENT=mFA.ATTR_DB_NAME=mFA.ATTR_DB_CONNECTION_STRING=void 0;mFA.ATTR_DB_CONNECTION_STRING="db.connection_string";mFA.ATTR_DB_NAME="db.name";mFA.ATTR_DB_STATEMENT="db.statement";mFA.ATTR_DB_SYSTEM="db.system";mFA.ATTR_DB_USER="db.user";mFA.ATTR_NET_PEER_NAME="net.peer.name";mFA.ATTR_NET_PEER_PORT="net.peer.port";mFA.DB_SYSTEM_VALUE_MYSQL="mysql";mFA.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"});var lFA=X((uFA)=>{Object.defineProperty(uFA,"__esModule",{value:!0});uFA.AttributeNames=void 0;var HEQ;(function(A){A.MYSQL_VALUES="db.mysql.values"})(HEQ=uFA.AttributeNames||(uFA.AttributeNames={}))});var nFA=X((pFA)=>{Object.defineProperty(pFA,"__esModule",{value:!0});pFA.getPoolNameOld=pFA.arrayStringifyHelper=pFA.getSpanName=pFA.getDbValues=pFA.getDbQueryText=pFA.getJDBCString=pFA.getConfig=void 0;function MEQ(A){let{host:Q,port:B,database:I,user:C}=A&&A.connectionConfig||A||{};return{host:Q,port:B,database:I,user:C}}pFA.getConfig=MEQ;function LEQ(A,Q,B){let I=`jdbc:mysql://${A||"localhost"}`;if(typeof Q==="number")I+=`:${Q}`;if(typeof B==="string")I+=`/${B}`;return I}pFA.getJDBCString=LEQ;function NEQ(A){if(typeof A==="string")return A;else return A.sql}pFA.getDbQueryText=NEQ;function jEQ(A,Q){if(typeof A==="string")return QH(Q);else return QH(Q||A.values)}pFA.getDbValues=jEQ;function REQ(A){let Q=typeof A==="object"?A.sql:A,B=Q?.indexOf(" ");if(typeof B==="number"&&B!==-1)return Q?.substring(0,B);return Q}pFA.getSpanName=REQ;function QH(A){if(A)return`[${A.toString()}]`;return""}pFA.arrayStringifyHelper=QH;function qEQ(A){let Q=A.config.connectionConfig,B="";if(B+=Q.host?`host: '${Q.host}', `:"",B+=Q.port?`port: ${Q.port}, `:"",B+=Q.database?`database: '${Q.database}', `:"",B+=Q.user?`user: '${Q.user}'`:"",!Q.user)B=B.substring(0,B.length-2);return B.trim()}pFA.getPoolNameOld=qEQ});var sFA=X((oFA)=>{Object.defineProperty(oFA,"__esModule",{value:!0});oFA.PACKAGE_NAME=oFA.PACKAGE_VERSION=void 0;oFA.PACKAGE_VERSION="0.59.0";oFA.PACKAGE_NAME="@opentelemetry/instrumentation-mysql"});var QGA=X((eFA)=>{Object.defineProperty(eFA,"__esModule",{value:!0});eFA.MySQLInstrumentation=void 0;var MB=j(),zI=s(),KG=JA(),DE=cFA(),hEQ=lFA(),eY=nFA(),rFA=sFA();class tFA extends zI.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(A={}){super(rFA.PACKAGE_NAME,rFA.PACKAGE_VERSION,A);this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,zI.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,zI.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._connectionsUsageOld=this.meter.createUpDownCounter(DE.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(A,Q,B){this._connectionsUsageOld?.add(A,{state:B,name:Q})}init(){return[new zI.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],(A)=>{if((0,zI.isWrapped)(A.createConnection))this._unwrap(A,"createConnection");if(this._wrap(A,"createConnection",this._patchCreateConnection()),(0,zI.isWrapped)(A.createPool))this._unwrap(A,"createPool");if(this._wrap(A,"createPool",this._patchCreatePool()),(0,zI.isWrapped)(A.createPoolCluster))this._unwrap(A,"createPoolCluster");return this._wrap(A,"createPoolCluster",this._patchCreatePoolCluster()),A},(A)=>{if(A===void 0)return;this._unwrap(A,"createConnection"),this._unwrap(A,"createPool"),this._unwrap(A,"createPoolCluster")})]}_patchCreateConnection(){return(A)=>{let Q=this;return function(I){let C=A(...arguments);return Q._wrap(C,"query",Q._patchQuery(C)),C}}}_patchCreatePool(){return(A)=>{let Q=this;return function(I){let C=A(...arguments);return Q._wrap(C,"query",Q._patchQuery(C)),Q._wrap(C,"getConnection",Q._patchGetConnection(C)),Q._wrap(C,"end",Q._patchPoolEnd(C)),Q._setPoolCallbacks(C,""),C}}}_patchPoolEnd(A){return(Q)=>{let B=this;return function(C){let E=A._allConnections.length,Y=A._freeConnections.length,J=E-Y,F=(0,eY.getPoolNameOld)(A);B._connCountAdd(-J,F,"used"),B._connCountAdd(-Y,F,"idle"),Q.apply(A,arguments)}}}_patchCreatePoolCluster(){return(A)=>{let Q=this;return function(I){let C=A(...arguments);return Q._wrap(C,"getConnection",Q._patchGetConnection(C)),Q._wrap(C,"add",Q._patchAdd(C)),C}}}_patchAdd(A){return(Q)=>{let B=this;return function(C,E){if(!B._enabled)return B._unwrap(A,"add"),Q.apply(A,arguments);Q.apply(A,arguments);let Y=A._nodes;if(Y){let J=typeof C==="object"?"CLUSTER::"+A._lastId:String(C),F=Y[J].pool;B._setPoolCallbacks(F,C)}}}}_patchGetConnection(A){return(Q)=>{let B=this;return function(C,E,Y){if(!B._enabled)return B._unwrap(A,"getConnection"),Q.apply(A,arguments);if(arguments.length===1&&typeof C==="function"){let J=B._getConnectionCallbackPatchFn(C);return Q.call(A,J)}if(arguments.length===2&&typeof E==="function"){let J=B._getConnectionCallbackPatchFn(E);return Q.call(A,C,J)}if(arguments.length===3&&typeof Y==="function"){let J=B._getConnectionCallbackPatchFn(Y);return Q.call(A,C,E,J)}return Q.apply(A,arguments)}}}_getConnectionCallbackPatchFn(A){let Q=this,B=MB.context.active();return function(I,C){if(C){if(!(0,zI.isWrapped)(C.query))Q._wrap(C,"query",Q._patchQuery(C))}if(typeof A==="function")MB.context.with(B,A,this,I,C)}}_patchQuery(A){return(Q)=>{let B=this;return function(I,C,E){if(!B._enabled)return B._unwrap(A,"query"),Q.apply(A,arguments);let Y={},{host:J,port:F,database:G,user:D}=(0,eY.getConfig)(A.config),Z=parseInt(F,10),W=(0,eY.getDbQueryText)(I);if(B._dbSemconvStability&zI.SemconvStability.OLD)Y[DE.ATTR_DB_SYSTEM]=DE.DB_SYSTEM_VALUE_MYSQL,Y[DE.ATTR_DB_CONNECTION_STRING]=(0,eY.getJDBCString)(J,F,G),Y[DE.ATTR_DB_NAME]=G,Y[DE.ATTR_DB_USER]=D,Y[DE.ATTR_DB_STATEMENT]=W;if(B._dbSemconvStability&zI.SemconvStability.STABLE)Y[KG.ATTR_DB_SYSTEM_NAME]=KG.DB_SYSTEM_NAME_VALUE_MYSQL,Y[KG.ATTR_DB_NAMESPACE]=G,Y[KG.ATTR_DB_QUERY_TEXT]=W;if(B._netSemconvStability&zI.SemconvStability.OLD){if(Y[DE.ATTR_NET_PEER_NAME]=J,!isNaN(Z))Y[DE.ATTR_NET_PEER_PORT]=Z}if(B._netSemconvStability&zI.SemconvStability.STABLE){if(Y[KG.ATTR_SERVER_ADDRESS]=J,!isNaN(Z))Y[KG.ATTR_SERVER_PORT]=Z}let U=B.tracer.startSpan((0,eY.getSpanName)(I),{kind:MB.SpanKind.CLIENT,attributes:Y});if(B.getConfig().enhancedDatabaseReporting){let V;if(Array.isArray(C))V=C;else if(arguments[2])V=[C];U.setAttribute(hEQ.AttributeNames.MYSQL_VALUES,(0,eY.getDbValues)(I,V))}let w=Array.from(arguments).findIndex((V)=>typeof V==="function"),K=MB.context.active();if(w===-1){let V=MB.context.with(MB.trace.setSpan(MB.context.active(),U),()=>{return Q.apply(A,arguments)});return MB.context.bind(K,V),V.on("error",(z)=>U.setStatus({code:MB.SpanStatusCode.ERROR,message:z.message})).on("end",()=>{U.end()})}else return B._wrap(arguments,w,B._patchCallbackQuery(U,K)),MB.context.with(MB.trace.setSpan(MB.context.active(),U),()=>{return Q.apply(A,arguments)})}}}_patchCallbackQuery(A,Q){return(B)=>{return function(I,C,E){if(I)A.setStatus({code:MB.SpanStatusCode.ERROR,message:I.message});return A.end(),MB.context.with(Q,()=>B(...arguments))}}}_setPoolCallbacks(A,Q){let B=Q||(0,eY.getPoolNameOld)(A);A.on("connection",(I)=>{this._connCountAdd(1,B,"idle")}),A.on("acquire",(I)=>{this._connCountAdd(-1,B,"idle"),this._connCountAdd(1,B,"used")}),A.on("release",(I)=>{this._connCountAdd(1,B,"idle"),this._connCountAdd(-1,B,"used")})}}eFA.MySQLInstrumentation=tFA});var BGA=X((BH)=>{Object.defineProperty(BH,"__esModule",{value:!0});BH.MySQLInstrumentation=void 0;var fEQ=QGA();Object.defineProperty(BH,"MySQLInstrumentation",{enumerable:!0,get:function(){return fEQ.MySQLInstrumentation}})});var IH=X((JGA)=>{Object.defineProperty(JGA,"__esModule",{value:!0});JGA.DB_SYSTEM_VALUE_MYSQL=JGA.ATTR_NET_PEER_PORT=JGA.ATTR_NET_PEER_NAME=JGA.ATTR_DB_USER=JGA.ATTR_DB_SYSTEM=JGA.ATTR_DB_STATEMENT=JGA.ATTR_DB_NAME=JGA.ATTR_DB_CONNECTION_STRING=void 0;JGA.ATTR_DB_CONNECTION_STRING="db.connection_string";JGA.ATTR_DB_NAME="db.name";JGA.ATTR_DB_STATEMENT="db.statement";JGA.ATTR_DB_SYSTEM="db.system";JGA.ATTR_DB_USER="db.user";JGA.ATTR_NET_PEER_NAME="net.peer.name";JGA.ATTR_NET_PEER_PORT="net.peer.port";JGA.DB_SYSTEM_VALUE_MYSQL="mysql"});var EH=X((GGA)=>{Object.defineProperty(GGA,"__esModule",{value:!0});GGA.addSqlCommenterComment=void 0;var CH=j(),pEQ=MA();function iEQ(A){let Q=A.indexOf("--");if(Q>=0)return!0;if(A.indexOf("/*")<0)return!1;let I=A.indexOf("*/");return Q`%${Q.charCodeAt(0).toString(16).toUpperCase()}`)}function oEQ(A,Q){if(typeof Q!=="string"||Q.length===0)return Q;if(iEQ(Q))return Q;let B=new pEQ.W3CTraceContextPropagator,I={};B.inject(CH.trace.setSpan(CH.ROOT_CONTEXT,A),I,CH.defaultTextMapSetter);let C=Object.keys(I).sort();if(C.length===0)return Q;let E=C.map((Y)=>{let J=nEQ(I[Y]);return`${Y}='${J}'`}).join(",");return`${Q} /*${E}*/`}GGA.addSqlCommenterComment=oEQ});var UGA=X((ZGA)=>{Object.defineProperty(ZGA,"__esModule",{value:!0});ZGA.getConnectionPrototypeToInstrument=ZGA.once=ZGA.getSpanName=ZGA.getQueryText=ZGA.getConnectionAttributes=void 0;var dW=IH(),l8=s(),YH=JA();function aEQ(A,Q,B){let{host:I,port:C,database:E,user:Y}=sEQ(A),J={};if(Q&l8.SemconvStability.OLD)J[dW.ATTR_DB_CONNECTION_STRING]=rEQ(I,C,E),J[dW.ATTR_DB_NAME]=E,J[dW.ATTR_DB_USER]=Y;if(Q&l8.SemconvStability.STABLE)J[YH.ATTR_DB_NAMESPACE]=E;let F=parseInt(C,10);if(B&l8.SemconvStability.OLD){if(J[dW.ATTR_NET_PEER_NAME]=I,!isNaN(F))J[dW.ATTR_NET_PEER_PORT]=F}if(B&l8.SemconvStability.STABLE){if(J[YH.ATTR_SERVER_ADDRESS]=I,!isNaN(F))J[YH.ATTR_SERVER_PORT]=F}return J}ZGA.getConnectionAttributes=aEQ;function sEQ(A){let{host:Q,port:B,database:I,user:C}=A&&A.connectionConfig||A||{};return{host:Q,port:B,database:I,user:C}}function rEQ(A,Q,B){let I=`jdbc:mysql://${A||"localhost"}`;if(typeof Q==="number")I+=`:${Q}`;if(typeof B==="string")I+=`/${B}`;return I}function tEQ(A,Q,B,I=!1,C=eEQ){let[E,Y]=typeof A==="string"?[A,B]:[A.sql,A0Q(A)?B||A.values:B];try{if(I)return C(E);else if(Q&&Y)return Q(E,Y);else return E}catch(J){return"Could not determine the query due to an error in masking or formatting"}}ZGA.getQueryText=tEQ;function eEQ(A){return A.replace(/\b\d+\b/g,"?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,"?")}function A0Q(A){return"values"in A}function Q0Q(A){let Q=typeof A==="object"?A.sql:A,B=Q?.indexOf(" ");if(typeof B==="number"&&B!==-1)return Q?.substring(0,B);return Q}ZGA.getSpanName=Q0Q;var B0Q=(A)=>{let Q=!1;return(...B)=>{if(Q)return;return Q=!0,A(...B)}};ZGA.once=B0Q;function I0Q(A){let Q=A.prototype,B=Object.getPrototypeOf(Q);if(typeof B?.query==="function"&&typeof B?.execute==="function")return B;return Q}ZGA.getConnectionPrototypeToInstrument=I0Q});var KGA=X((XGA)=>{Object.defineProperty(XGA,"__esModule",{value:!0});XGA.PACKAGE_NAME=XGA.PACKAGE_VERSION=void 0;XGA.PACKAGE_VERSION="0.59.0";XGA.PACKAGE_NAME="@opentelemetry/instrumentation-mysql2"});var NGA=X((MGA)=>{Object.defineProperty(MGA,"__esModule",{value:!0});MGA.MySQL2Instrumentation=void 0;var VGA=j(),pI=s(),JH=IH(),zGA=EH(),VG=UGA(),$GA=KGA(),FH=JA(),GH=[">=1.4.2 <4"];class HGA extends pI.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(A={}){super($GA.PACKAGE_NAME,$GA.PACKAGE_VERSION,A);this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,pI.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,pI.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){let A;function Q(C){if(!A&&C.format)A=C.format}let B=(C)=>{if((0,pI.isWrapped)(C.query))this._unwrap(C,"query");if(this._wrap(C,"query",this._patchQuery(A,!1)),(0,pI.isWrapped)(C.execute))this._unwrap(C,"execute");this._wrap(C,"execute",this._patchQuery(A,!0))},I=(C)=>{this._unwrap(C,"query"),this._unwrap(C,"execute")};return[new pI.InstrumentationNodeModuleDefinition("mysql2",GH,(C)=>{return Q(C),C},()=>{},[new pI.InstrumentationNodeModuleFile("mysql2/promise.js",GH,(C)=>{return Q(C),C},()=>{}),new pI.InstrumentationNodeModuleFile("mysql2/lib/connection.js",GH,(C)=>{let E=(0,VG.getConnectionPrototypeToInstrument)(C);return B(E),C},(C)=>{if(C===void 0)return;let E=(0,VG.getConnectionPrototypeToInstrument)(C);I(E)})])]}_patchQuery(A,Q){return(B)=>{let I=this;return function(C,E,Y){let J;if(Array.isArray(E))J=E;else if(arguments[2])J=[E];let{maskStatement:F,maskStatementHook:G,responseHook:D}=I.getConfig(),Z=(0,VG.getConnectionAttributes)(this.config,I._dbSemconvStability,I._netSemconvStability),W=(0,VG.getQueryText)(C,A,J,F,G);if(I._dbSemconvStability&pI.SemconvStability.OLD)Z[JH.ATTR_DB_SYSTEM]=JH.DB_SYSTEM_VALUE_MYSQL,Z[JH.ATTR_DB_STATEMENT]=W;if(I._dbSemconvStability&pI.SemconvStability.STABLE)Z[FH.ATTR_DB_SYSTEM_NAME]=FH.DB_SYSTEM_NAME_VALUE_MYSQL,Z[FH.ATTR_DB_QUERY_TEXT]=W;let U=I.tracer.startSpan((0,VG.getSpanName)(C),{kind:VGA.SpanKind.CLIENT,attributes:Z});if(!Q&&I.getConfig().addSqlCommenterCommentToQueries)arguments[0]=C=typeof C==="string"?(0,zGA.addSqlCommenterComment)(U,C):Object.assign(C,{sql:(0,zGA.addSqlCommenterComment)(U,C.sql)});let w=(0,VG.once)((K,V)=>{if(K)U.setStatus({code:VGA.SpanStatusCode.ERROR,message:K.message});else if(typeof D==="function")(0,pI.safeExecuteInTheMiddle)(()=>{D(U,{queryResults:V})},(z)=>{if(z)I._diag.warn("Failed executing responseHook",z)},!0);U.end()});if(arguments.length===1){if(typeof C.onResult==="function")I._wrap(C,"onResult",I._patchCallbackQuery(w));let K=B.apply(this,arguments);return K.once("error",(V)=>{w(V)}).once("result",(V)=>{w(void 0,V)}),K}if(typeof arguments[1]==="function")I._wrap(arguments,1,I._patchCallbackQuery(w));else if(typeof arguments[2]==="function")I._wrap(arguments,2,I._patchCallbackQuery(w));return B.apply(this,arguments)}}}_patchCallbackQuery(A){return(Q)=>{return function(B,I,C){return A(B,I),Q(...arguments)}}}}MGA.MySQL2Instrumentation=HGA});var jGA=X((DH)=>{Object.defineProperty(DH,"__esModule",{value:!0});DH.MySQL2Instrumentation=void 0;var G0Q=NGA();Object.defineProperty(DH,"MySQL2Instrumentation",{enumerable:!0,get:function(){return G0Q.MySQL2Instrumentation}})});var SGA=X((PGA)=>{Object.defineProperty(PGA,"__esModule",{value:!0});PGA.DB_SYSTEM_VALUE_REDIS=PGA.DB_SYSTEM_NAME_VALUE_REDIS=PGA.ATTR_NET_PEER_PORT=PGA.ATTR_NET_PEER_NAME=PGA.ATTR_DB_SYSTEM=PGA.ATTR_DB_STATEMENT=PGA.ATTR_DB_CONNECTION_STRING=void 0;PGA.ATTR_DB_CONNECTION_STRING="db.connection_string";PGA.ATTR_DB_STATEMENT="db.statement";PGA.ATTR_DB_SYSTEM="db.system";PGA.ATTR_NET_PEER_NAME="net.peer.name";PGA.ATTR_NET_PEER_PORT="net.peer.port";PGA.DB_SYSTEM_NAME_VALUE_REDIS="redis";PGA.DB_SYSTEM_VALUE_REDIS="redis"});var hGA=X((gGA)=>{Object.defineProperty(gGA,"__esModule",{value:!0});gGA.endSpan=void 0;var z0Q=j(),$0Q=(A,Q)=>{if(Q)A.recordException(Q),A.setStatus({code:z0Q.SpanStatusCode.ERROR,message:Q.message});A.end()};gGA.endSpan=$0Q});var p8=X((fGA)=>{Object.defineProperty(fGA,"__esModule",{value:!0});fGA.defaultDbStatementSerializer=void 0;var H0Q=[{regex:/^ECHO/i,args:0},{regex:/^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,args:1},{regex:/^(HSET|HMSET|LSET|LINSERT)/i,args:2},{regex:/^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,args:-1}],M0Q=(A,Q)=>{if(Array.isArray(Q)&&Q.length){let B=H0Q.find(({regex:C})=>{return C.test(A)})?.args??0,I=B>=0?Q.slice(0,B):Q;if(Q.length>I.length)I.push(`[${Q.length-B} other arguments]`);return`${A} ${I.join(" ")}`}return A};fGA.defaultDbStatementSerializer=M0Q});var bGA=X((vGA)=>{Object.defineProperty(vGA,"__esModule",{value:!0});vGA.PACKAGE_NAME=vGA.PACKAGE_VERSION=void 0;vGA.PACKAGE_VERSION="0.61.0";vGA.PACKAGE_NAME="@opentelemetry/instrumentation-ioredis"});var iGA=X((lGA)=>{Object.defineProperty(lGA,"__esModule",{value:!0});lGA.IORedisInstrumentation=void 0;var H0=j(),LB=s(),M0=JA(),NB=SGA(),mGA=s(),cW=hGA(),N0Q=p8(),dGA=bGA(),cGA={requireParentSpan:!0};class uGA extends LB.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(A={}){super(dGA.PACKAGE_NAME,dGA.PACKAGE_VERSION,{...cGA,...A});this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,LB.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,LB.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(A={}){super.setConfig({...cGA,...A})}init(){return[new LB.InstrumentationNodeModuleDefinition("ioredis",[">=2.0.0 <6"],(A,Q)=>{let B=A[Symbol.toStringTag]==="Module"?A.default:A;if((0,LB.isWrapped)(B.prototype.sendCommand))this._unwrap(B.prototype,"sendCommand");if(this._wrap(B.prototype,"sendCommand",this._patchSendCommand(Q)),(0,LB.isWrapped)(B.prototype.connect))this._unwrap(B.prototype,"connect");return this._wrap(B.prototype,"connect",this._patchConnection()),A},(A)=>{if(A===void 0)return;let Q=A[Symbol.toStringTag]==="Module"?A.default:A;this._unwrap(Q.prototype,"sendCommand"),this._unwrap(Q.prototype,"connect")})]}_patchSendCommand(A){return(Q)=>{return this._traceSendCommand(Q,A)}}_patchConnection(){return(A)=>{return this._traceConnection(A)}}_traceSendCommand(A,Q){let B=this;return function(I){if(arguments.length<1||typeof I!=="object")return A.apply(this,arguments);let C=B.getConfig(),E=C.dbStatementSerializer||N0Q.defaultDbStatementSerializer,Y=H0.trace.getSpan(H0.context.active())===void 0;if(C.requireParentSpan===!0&&Y)return A.apply(this,arguments);let J={},{host:F,port:G}=this.options,D=E(I.name,I.args);if(B._dbSemconvStability&LB.SemconvStability.OLD)J[NB.ATTR_DB_SYSTEM]=NB.DB_SYSTEM_VALUE_REDIS,J[NB.ATTR_DB_STATEMENT]=D,J[NB.ATTR_DB_CONNECTION_STRING]=`redis://${F}:${G}`;if(B._dbSemconvStability&LB.SemconvStability.STABLE)J[M0.ATTR_DB_SYSTEM_NAME]=NB.DB_SYSTEM_NAME_VALUE_REDIS,J[M0.ATTR_DB_QUERY_TEXT]=D;if(B._netSemconvStability&LB.SemconvStability.OLD)J[NB.ATTR_NET_PEER_NAME]=F,J[NB.ATTR_NET_PEER_PORT]=G;if(B._netSemconvStability&LB.SemconvStability.STABLE)J[M0.ATTR_SERVER_ADDRESS]=F,J[M0.ATTR_SERVER_PORT]=G;let Z=B.tracer.startSpan(I.name,{kind:H0.SpanKind.CLIENT,attributes:J}),{requestHook:W}=C;if(W)(0,mGA.safeExecuteInTheMiddle)(()=>W(Z,{moduleVersion:Q,cmdName:I.name,cmdArgs:I.args}),(U)=>{if(U)H0.diag.error("ioredis instrumentation: request hook failed",U)},!0);try{let U=A.apply(this,arguments),w=I.resolve;I.resolve=function(V){(0,mGA.safeExecuteInTheMiddle)(()=>C.responseHook?.(Z,I.name,I.args,V),(z)=>{if(z)H0.diag.error("ioredis instrumentation: response hook failed",z)},!0),(0,cW.endSpan)(Z,null),w(V)};let K=I.reject;return I.reject=function(V){(0,cW.endSpan)(Z,V),K(V)},U}catch(U){throw(0,cW.endSpan)(Z,U),U}}}_traceConnection(A){let Q=this;return function(){let B=H0.trace.getSpan(H0.context.active())===void 0;if(Q.getConfig().requireParentSpan===!0&&B)return A.apply(this,arguments);let I={},{host:C,port:E}=this.options;if(Q._dbSemconvStability&LB.SemconvStability.OLD)I[NB.ATTR_DB_SYSTEM]=NB.DB_SYSTEM_VALUE_REDIS,I[NB.ATTR_DB_STATEMENT]="connect",I[NB.ATTR_DB_CONNECTION_STRING]=`redis://${C}:${E}`;if(Q._dbSemconvStability&LB.SemconvStability.STABLE)I[M0.ATTR_DB_SYSTEM_NAME]=NB.DB_SYSTEM_NAME_VALUE_REDIS,I[M0.ATTR_DB_QUERY_TEXT]="connect";if(Q._netSemconvStability&LB.SemconvStability.OLD)I[NB.ATTR_NET_PEER_NAME]=C,I[NB.ATTR_NET_PEER_PORT]=E;if(Q._netSemconvStability&LB.SemconvStability.STABLE)I[M0.ATTR_SERVER_ADDRESS]=C,I[M0.ATTR_SERVER_PORT]=E;let Y=Q.tracer.startSpan("connect",{kind:H0.SpanKind.CLIENT,attributes:I});try{let J=A.apply(this,arguments);return(0,cW.endSpan)(Y,null),J}catch(J){throw(0,cW.endSpan)(Y,J),J}}}}lGA.IORedisInstrumentation=uGA});var nGA=X((ZH)=>{Object.defineProperty(ZH,"__esModule",{value:!0});ZH.IORedisInstrumentation=void 0;var j0Q=iGA();Object.defineProperty(ZH,"IORedisInstrumentation",{enumerable:!0,get:function(){return j0Q.IORedisInstrumentation}})});var i8=X((oGA)=>{Object.defineProperty(oGA,"__esModule",{value:!0});oGA.PACKAGE_NAME=oGA.PACKAGE_VERSION=void 0;oGA.PACKAGE_VERSION="0.61.0";oGA.PACKAGE_NAME="@opentelemetry/instrumentation-redis"});var tGA=X((sGA)=>{Object.defineProperty(sGA,"__esModule",{value:!0});sGA.getTracedCreateStreamTrace=sGA.getTracedCreateClient=sGA.endSpan=void 0;var uW=j(),O0Q=(A,Q)=>{if(Q)A.setStatus({code:uW.SpanStatusCode.ERROR,message:Q.message});A.end()};sGA.endSpan=O0Q;var T0Q=(A)=>{return function(){let B=A.apply(this,arguments);return uW.context.bind(uW.context.active(),B)}};sGA.getTracedCreateClient=T0Q;var P0Q=(A)=>{return function(){if(!Object.prototype.hasOwnProperty.call(this,"stream"))Object.defineProperty(this,"stream",{get(){return this._patched_redis_stream},set(B){uW.context.bind(uW.context.active(),B),this._patched_redis_stream=B}});return A.apply(this,arguments)}};sGA.getTracedCreateStreamTrace=P0Q});var n8=X((eGA)=>{Object.defineProperty(eGA,"__esModule",{value:!0});eGA.DB_SYSTEM_VALUE_REDIS=eGA.DB_SYSTEM_NAME_VALUE_REDIS=eGA.ATTR_NET_PEER_PORT=eGA.ATTR_NET_PEER_NAME=eGA.ATTR_DB_SYSTEM=eGA.ATTR_DB_STATEMENT=eGA.ATTR_DB_CONNECTION_STRING=void 0;eGA.ATTR_DB_CONNECTION_STRING="db.connection_string";eGA.ATTR_DB_STATEMENT="db.statement";eGA.ATTR_DB_SYSTEM="db.system";eGA.ATTR_NET_PEER_NAME="net.peer.name";eGA.ATTR_NET_PEER_PORT="net.peer.port";eGA.DB_SYSTEM_NAME_VALUE_REDIS="redis";eGA.DB_SYSTEM_VALUE_REDIS="redis"});var CDA=X((BDA)=>{Object.defineProperty(BDA,"__esModule",{value:!0});BDA.RedisInstrumentationV2_V3=void 0;var nB=s(),o8=tGA(),QDA=i8(),lW=j(),pW=JA(),AJ=n8(),x0Q=p8();class WH extends nB.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(A={}){super(QDA.PACKAGE_NAME,QDA.PACKAGE_VERSION,A);this._semconvStability=A.semconvStability?A.semconvStability:(0,nB.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(A={}){super.setConfig(A),this._semconvStability=A.semconvStability?A.semconvStability:(0,nB.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new nB.InstrumentationNodeModuleDefinition("redis",[">=2.6.0 <4"],(A)=>{if((0,nB.isWrapped)(A.RedisClient.prototype.internal_send_command))this._unwrap(A.RedisClient.prototype,"internal_send_command");if(this._wrap(A.RedisClient.prototype,"internal_send_command",this._getPatchInternalSendCommand()),(0,nB.isWrapped)(A.RedisClient.prototype.create_stream))this._unwrap(A.RedisClient.prototype,"create_stream");if(this._wrap(A.RedisClient.prototype,"create_stream",this._getPatchCreateStream()),(0,nB.isWrapped)(A.createClient))this._unwrap(A,"createClient");return this._wrap(A,"createClient",this._getPatchCreateClient()),A},(A)=>{if(A===void 0)return;this._unwrap(A.RedisClient.prototype,"internal_send_command"),this._unwrap(A.RedisClient.prototype,"create_stream"),this._unwrap(A,"createClient")})]}_getPatchInternalSendCommand(){let A=this;return function(B){return function(C){if(arguments.length!==1||typeof C!=="object")return B.apply(this,arguments);let E=A.getConfig(),Y=lW.trace.getSpan(lW.context.active())===void 0;if(E.requireParentSpan===!0&&Y)return B.apply(this,arguments);let J=E?.dbStatementSerializer||x0Q.defaultDbStatementSerializer,F={};if(A._semconvStability&nB.SemconvStability.OLD)Object.assign(F,{[AJ.ATTR_DB_SYSTEM]:AJ.DB_SYSTEM_VALUE_REDIS,[AJ.ATTR_DB_STATEMENT]:J(C.command,C.args)});if(A._semconvStability&nB.SemconvStability.STABLE)Object.assign(F,{[pW.ATTR_DB_SYSTEM_NAME]:AJ.DB_SYSTEM_NAME_VALUE_REDIS,[pW.ATTR_DB_OPERATION_NAME]:C.command,[pW.ATTR_DB_QUERY_TEXT]:J(C.command,C.args)});let G=A.tracer.startSpan(`${WH.COMPONENT}-${C.command}`,{kind:lW.SpanKind.CLIENT,attributes:F});if(this.connection_options){let Z={};if(A._semconvStability&nB.SemconvStability.OLD)Object.assign(Z,{[AJ.ATTR_NET_PEER_NAME]:this.connection_options.host,[AJ.ATTR_NET_PEER_PORT]:this.connection_options.port});if(A._semconvStability&nB.SemconvStability.STABLE)Object.assign(Z,{[pW.ATTR_SERVER_ADDRESS]:this.connection_options.host,[pW.ATTR_SERVER_PORT]:this.connection_options.port});G.setAttributes(Z)}if(this.address&&A._semconvStability&nB.SemconvStability.OLD)G.setAttribute(AJ.ATTR_DB_CONNECTION_STRING,`redis://${this.address}`);let D=arguments[0].callback;if(D){let Z=lW.context.active();arguments[0].callback=function(U,w){if(E?.responseHook){let K=E.responseHook;(0,nB.safeExecuteInTheMiddle)(()=>{K(G,C.command,C.args,w)},(V)=>{if(V)A._diag.error("Error executing responseHook",V)},!0)}return(0,o8.endSpan)(G,U),lW.context.with(Z,D,this,...arguments)}}try{return B.apply(this,arguments)}catch(Z){throw(0,o8.endSpan)(G,Z),Z}}}}_getPatchCreateClient(){return function(Q){return(0,o8.getTracedCreateClient)(Q)}}_getPatchCreateStream(){return function(Q){return(0,o8.getTracedCreateStreamTrace)(Q)}}}BDA.RedisInstrumentationV2_V3=WH});var FDA=X((YDA)=>{Object.defineProperty(YDA,"__esModule",{value:!0});YDA.getClientAttributes=void 0;var UH=JA(),zG=n8(),EDA=s();function b0Q(A,Q,B){let I={};if(B&EDA.SemconvStability.OLD)Object.assign(I,{[zG.ATTR_DB_SYSTEM]:zG.DB_SYSTEM_VALUE_REDIS,[zG.ATTR_NET_PEER_NAME]:Q?.socket?.host,[zG.ATTR_NET_PEER_PORT]:Q?.socket?.port,[zG.ATTR_DB_CONNECTION_STRING]:m0Q(A,Q?.url)});if(B&EDA.SemconvStability.STABLE)Object.assign(I,{[UH.ATTR_DB_SYSTEM_NAME]:zG.DB_SYSTEM_NAME_VALUE_REDIS,[UH.ATTR_SERVER_ADDRESS]:Q?.socket?.host,[UH.ATTR_SERVER_PORT]:Q?.socket?.port});return I}YDA.getClientAttributes=b0Q;function m0Q(A,Q){if(typeof Q!=="string"||!Q)return;try{let B=new URL(Q);return B.searchParams.delete("user_pwd"),B.username="",B.password="",B.href}catch(B){A.error("failed to sanitize redis connection url",B)}return}});var XDA=X((WDA)=>{Object.defineProperty(WDA,"__esModule",{value:!0});WDA.RedisInstrumentationV4_V5=void 0;var $I=j(),gA=s(),GDA=FDA(),d0Q=p8(),DDA=i8(),XH=JA(),c0Q=n8(),iW=Symbol("opentelemetry.instrumentation.redis.open_spans"),ZDA=Symbol("opentelemetry.instrumentation.redis.multi_command_options");class a8 extends gA.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(A={}){super(DDA.PACKAGE_NAME,DDA.PACKAGE_VERSION,A);this._semconvStability=A.semconvStability?A.semconvStability:(0,gA.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(A={}){super.setConfig(A),this._semconvStability=A.semconvStability?A.semconvStability:(0,gA.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[this._getInstrumentationNodeModuleDefinition("@redis/client"),this._getInstrumentationNodeModuleDefinition("@node-redis/client")]}_getInstrumentationNodeModuleDefinition(A){let Q=new gA.InstrumentationNodeModuleFile(`${A}/dist/lib/commander.js`,["^1.0.0"],(C,E)=>{let Y=C.transformCommandArguments;if(!Y)return this._diag.error("internal instrumentation error, missing transformCommandArguments function"),C;let J=E?.startsWith("1.0.")?"extendWithCommands":"attachCommands";if((0,gA.isWrapped)(C?.[J]))this._unwrap(C,J);return this._wrap(C,J,this._getPatchExtendWithCommands(Y)),C},(C)=>{if((0,gA.isWrapped)(C?.extendWithCommands))this._unwrap(C,"extendWithCommands");if((0,gA.isWrapped)(C?.attachCommands))this._unwrap(C,"attachCommands")}),B=new gA.InstrumentationNodeModuleFile(`${A}/dist/lib/client/multi-command.js`,["^1.0.0","^5.0.0"],(C)=>{let E=C?.default?.prototype;if((0,gA.isWrapped)(E?.exec))this._unwrap(E,"exec");if(this._wrap(E,"exec",this._getPatchMultiCommandsExec(!1)),(0,gA.isWrapped)(E?.execAsPipeline))this._unwrap(E,"execAsPipeline");if(this._wrap(E,"execAsPipeline",this._getPatchMultiCommandsExec(!0)),(0,gA.isWrapped)(E?.addCommand))this._unwrap(E,"addCommand");return this._wrap(E,"addCommand",this._getPatchMultiCommandsAddCommand()),C},(C)=>{let E=C?.default?.prototype;if((0,gA.isWrapped)(E?.exec))this._unwrap(E,"exec");if((0,gA.isWrapped)(E?.addCommand))this._unwrap(E,"addCommand")}),I=new gA.InstrumentationNodeModuleFile(`${A}/dist/lib/client/index.js`,["^1.0.0","^5.0.0"],(C)=>{let E=C?.default?.prototype;if(E?.multi){if((0,gA.isWrapped)(E?.multi))this._unwrap(E,"multi");this._wrap(E,"multi",this._getPatchRedisClientMulti())}if(E?.MULTI){if((0,gA.isWrapped)(E?.MULTI))this._unwrap(E,"MULTI");this._wrap(E,"MULTI",this._getPatchRedisClientMulti())}if((0,gA.isWrapped)(E?.sendCommand))this._unwrap(E,"sendCommand");return this._wrap(E,"sendCommand",this._getPatchRedisClientSendCommand()),this._wrap(E,"connect",this._getPatchedClientConnect()),C},(C)=>{let E=C?.default?.prototype;if((0,gA.isWrapped)(E?.multi))this._unwrap(E,"multi");if((0,gA.isWrapped)(E?.MULTI))this._unwrap(E,"MULTI");if((0,gA.isWrapped)(E?.sendCommand))this._unwrap(E,"sendCommand")});return new gA.InstrumentationNodeModuleDefinition(A,["^1.0.0","^5.0.0"],(C)=>{return C},()=>{},[Q,B,I])}_getPatchExtendWithCommands(A){let Q=this;return function(I){return function(E){if(E?.BaseClass?.name!=="RedisClient")return I.apply(this,arguments);let Y=E.executor;return E.executor=function(J,F){let G=A(J,F).args;return Q._traceClientCommand(Y,this,arguments,G)},I.apply(this,arguments)}}}_getPatchMultiCommandsExec(A){let Q=this;return function(I){return function(){let E=I.apply(this,arguments);if(typeof E?.then!=="function")return Q._diag.error("non-promise result when patching exec/execAsPipeline"),E;return E.then((Y)=>{let J=this[iW];return Q._endSpansWithRedisReplies(J,Y,A),Y}).catch((Y)=>{let J=this[iW];if(!J)Q._diag.error("cannot find open spans to end for multi/pipeline");else{let F=Y.constructor.name==="MultiErrorReply"?Y.replies:Array(J.length).fill(Y);Q._endSpansWithRedisReplies(J,F,A)}return Promise.reject(Y)})}}}_getPatchMultiCommandsAddCommand(){let A=this;return function(B){return function(C){return A._traceClientCommand(B,this,arguments,C)}}}_getPatchRedisClientMulti(){return function(Q){return function(){let I=Q.apply(this,arguments);return I[ZDA]=this.options,I}}}_getPatchRedisClientSendCommand(){let A=this;return function(B){return function(C){return A._traceClientCommand(B,this,arguments,C)}}}_getPatchedClientConnect(){let A=this;return function(B){return function(){let C=this.options,E=(0,GDA.getClientAttributes)(A._diag,C,A._semconvStability),Y=A.tracer.startSpan(`${a8.COMPONENT}-connect`,{kind:$I.SpanKind.CLIENT,attributes:E});return $I.context.with($I.trace.setSpan($I.context.active(),Y),()=>{return B.apply(this)}).then((F)=>{return Y.end(),F}).catch((F)=>{return Y.recordException(F),Y.setStatus({code:$I.SpanStatusCode.ERROR,message:F.message}),Y.end(),Promise.reject(F)})}}}_traceClientCommand(A,Q,B,I){if($I.trace.getSpan($I.context.active())===void 0&&this.getConfig().requireParentSpan)return A.apply(Q,B);let E=Q.options||Q[ZDA],Y=I[0],J=I.slice(1),F=this.getConfig().dbStatementSerializer||d0Q.defaultDbStatementSerializer,G=(0,GDA.getClientAttributes)(this._diag,E,this._semconvStability);if(this._semconvStability&gA.SemconvStability.STABLE)G[XH.ATTR_DB_OPERATION_NAME]=Y;try{let W=F(Y,J);if(W!=null){if(this._semconvStability&gA.SemconvStability.OLD)G[c0Q.ATTR_DB_STATEMENT]=W;if(this._semconvStability&gA.SemconvStability.STABLE)G[XH.ATTR_DB_QUERY_TEXT]=W}}catch(W){this._diag.error("dbStatementSerializer throw an exception",W,{commandName:Y})}let D=this.tracer.startSpan(`${a8.COMPONENT}-${Y}`,{kind:$I.SpanKind.CLIENT,attributes:G}),Z=$I.context.with($I.trace.setSpan($I.context.active(),D),()=>{return A.apply(Q,B)});if(typeof Z?.then==="function")Z.then((W)=>{this._endSpanWithResponse(D,Y,J,W,void 0)},(W)=>{this._endSpanWithResponse(D,Y,J,null,W)});else{let W=Z;W[iW]=W[iW]||[],W[iW].push({span:D,commandName:Y,commandArgs:J})}return Z}_endSpansWithRedisReplies(A,Q,B=!1){if(!A)return this._diag.error("cannot find open spans to end for redis multi/pipeline");if(Q.length!==A.length)return this._diag.error("number of multi command spans does not match response from redis");let I=A.map((Y)=>Y.commandName),E=I.every((Y)=>Y===I[0])?(B?"PIPELINE ":"MULTI ")+I[0]:B?"PIPELINE":"MULTI";for(let Y=0;Y{Object.defineProperty(zDA,"__esModule",{value:!0});zDA.RedisInstrumentation=void 0;var u0Q=s(),wDA=i8(),l0Q=CDA(),p0Q=XDA(),KDA={requireParentSpan:!1};class VDA extends u0Q.InstrumentationBase{instrumentationV2_V3;instrumentationV4_V5;initialized=!1;constructor(A={}){let Q={...KDA,...A};super(wDA.PACKAGE_NAME,wDA.PACKAGE_VERSION,Q);this.instrumentationV2_V3=new l0Q.RedisInstrumentationV2_V3(this.getConfig()),this.instrumentationV4_V5=new p0Q.RedisInstrumentationV4_V5(this.getConfig()),this.initialized=!0}setConfig(A={}){let Q={...KDA,...A};if(super.setConfig(Q),!this.initialized)return;this.instrumentationV2_V3.setConfig(Q),this.instrumentationV4_V5.setConfig(Q)}init(){}getModuleDefinitions(){return[...this.instrumentationV2_V3.getModuleDefinitions(),...this.instrumentationV4_V5.getModuleDefinitions()]}setTracerProvider(A){if(super.setTracerProvider(A),!this.initialized)return;this.instrumentationV2_V3.setTracerProvider(A),this.instrumentationV4_V5.setTracerProvider(A)}enable(){if(super.enable(),!this.initialized)return;this.instrumentationV2_V3.enable(),this.instrumentationV4_V5.enable()}disable(){if(super.disable(),!this.initialized)return;this.instrumentationV2_V3.disable(),this.instrumentationV4_V5.disable()}}zDA.RedisInstrumentation=VDA});var MDA=X((wH)=>{Object.defineProperty(wH,"__esModule",{value:!0});wH.RedisInstrumentation=void 0;var i0Q=HDA();Object.defineProperty(wH,"RedisInstrumentation",{enumerable:!0,get:function(){return i0Q.RedisInstrumentation}})});var yDA=X((SDA)=>{Object.defineProperty(SDA,"__esModule",{value:!0});SDA.EVENT_LISTENERS_SET=void 0;SDA.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")});var $H=X((hDA)=>{Object.defineProperty(hDA,"__esModule",{value:!0});hDA.AttributeNames=void 0;var AYQ;(function(A){A.PG_VALUES="db.postgresql.values",A.PG_PLAN="db.postgresql.plan",A.IDLE_TIMEOUT_MILLIS="db.postgresql.idle.timeout.millis",A.MAX_CLIENT="db.postgresql.max.client"})(AYQ=hDA.AttributeNames||(hDA.AttributeNames={}))});var HH=X((fDA)=>{Object.defineProperty(fDA,"__esModule",{value:!0});fDA.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS=fDA.METRIC_DB_CLIENT_CONNECTION_COUNT=fDA.DB_SYSTEM_VALUE_POSTGRESQL=fDA.DB_CLIENT_CONNECTION_STATE_VALUE_USED=fDA.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE=fDA.ATTR_NET_PEER_PORT=fDA.ATTR_NET_PEER_NAME=fDA.ATTR_DB_USER=fDA.ATTR_DB_SYSTEM=fDA.ATTR_DB_STATEMENT=fDA.ATTR_DB_NAME=fDA.ATTR_DB_CONNECTION_STRING=fDA.ATTR_DB_CLIENT_CONNECTION_STATE=fDA.ATTR_DB_CLIENT_CONNECTION_POOL_NAME=void 0;fDA.ATTR_DB_CLIENT_CONNECTION_POOL_NAME="db.client.connection.pool.name";fDA.ATTR_DB_CLIENT_CONNECTION_STATE="db.client.connection.state";fDA.ATTR_DB_CONNECTION_STRING="db.connection_string";fDA.ATTR_DB_NAME="db.name";fDA.ATTR_DB_STATEMENT="db.statement";fDA.ATTR_DB_SYSTEM="db.system";fDA.ATTR_DB_USER="db.user";fDA.ATTR_NET_PEER_NAME="net.peer.name";fDA.ATTR_NET_PEER_PORT="net.peer.port";fDA.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE="idle";fDA.DB_CLIENT_CONNECTION_STATE_VALUE_USED="used";fDA.DB_SYSTEM_VALUE_POSTGRESQL="postgresql";fDA.METRIC_DB_CLIENT_CONNECTION_COUNT="db.client.connection.count";fDA.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS="db.client.connection.pending_requests"});var LH=X((vDA)=>{Object.defineProperty(vDA,"__esModule",{value:!0});vDA.SpanNames=void 0;var XYQ;(function(A){A.QUERY_PREFIX="pg.query",A.CONNECT="pg.connect",A.POOL_CONNECT="pg-pool.connect"})(XYQ=vDA.SpanNames||(vDA.SpanNames={}))});var iDA=X((lDA)=>{Object.defineProperty(lDA,"__esModule",{value:!0});lDA.sanitizedErrorMessage=lDA.isObjectWithTextString=lDA.getErrorMessage=lDA.patchClientConnectCallback=lDA.patchCallbackPGPool=lDA.updateCounter=lDA.getPoolName=lDA.patchCallback=lDA.handleExecutionResult=lDA.handleConfigQuery=lDA.shouldSkipInstrumentation=lDA.getSemanticAttributesFromPoolConnection=lDA.getSemanticAttributesFromConnection=lDA.getConnectionString=lDA.parseAndMaskConnectionString=lDA.parseNormalizedOperationName=lDA.getQuerySpanName=void 0;var L0=j(),r8=$H(),HI=JA(),iA=HH(),QJ=s(),xDA=LH();function bDA(A,Q){if(!Q)return xDA.SpanNames.QUERY_PREFIX;let B=typeof Q.name==="string"&&Q.name?Q.name:mDA(Q.text);return`${xDA.SpanNames.QUERY_PREFIX}:${B}${A?` ${A}`:""}`}lDA.getQuerySpanName=bDA;function mDA(A){let Q=A.trim(),B=Q.indexOf(" "),I=B===-1?Q:Q.slice(0,B);return I=I.toUpperCase(),I.endsWith(";")?I.slice(0,-1):I}lDA.parseNormalizedOperationName=mDA;function dDA(A){try{let Q=new URL(A);return Q.username="",Q.password="",Q.toString()}catch(Q){return"postgresql://localhost:5432/"}}lDA.parseAndMaskConnectionString=dDA;function NH(A){if("connectionString"in A&&A.connectionString)return dDA(A.connectionString);let Q=A.host||"localhost",B=A.port||5432,I=A.database||"";return`postgresql://${Q}:${B}/${I}`}lDA.getConnectionString=NH;function t8(A){if(Number.isInteger(A))return A;return}function cDA(A,Q){let B={};if(Q&QJ.SemconvStability.OLD)B={...B,[iA.ATTR_DB_SYSTEM]:iA.DB_SYSTEM_VALUE_POSTGRESQL,[iA.ATTR_DB_NAME]:A.database,[iA.ATTR_DB_CONNECTION_STRING]:NH(A),[iA.ATTR_DB_USER]:A.user,[iA.ATTR_NET_PEER_NAME]:A.host,[iA.ATTR_NET_PEER_PORT]:t8(A.port)};if(Q&QJ.SemconvStability.STABLE)B={...B,[HI.ATTR_DB_SYSTEM_NAME]:HI.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[HI.ATTR_DB_NAMESPACE]:A.namespace,[HI.ATTR_SERVER_ADDRESS]:A.host,[HI.ATTR_SERVER_PORT]:t8(A.port)};return B}lDA.getSemanticAttributesFromConnection=cDA;function wYQ(A,Q){let B;try{B=A.connectionString?new URL(A.connectionString):void 0}catch(C){B=void 0}let I={[r8.AttributeNames.IDLE_TIMEOUT_MILLIS]:A.idleTimeoutMillis,[r8.AttributeNames.MAX_CLIENT]:A.maxClient};if(Q&QJ.SemconvStability.OLD)I={...I,[iA.ATTR_DB_SYSTEM]:iA.DB_SYSTEM_VALUE_POSTGRESQL,[iA.ATTR_DB_NAME]:B?.pathname.slice(1)??A.database,[iA.ATTR_DB_CONNECTION_STRING]:NH(A),[iA.ATTR_NET_PEER_NAME]:B?.hostname??A.host,[iA.ATTR_NET_PEER_PORT]:Number(B?.port)||t8(A.port),[iA.ATTR_DB_USER]:B?.username??A.user};if(Q&QJ.SemconvStability.STABLE)I={...I,[HI.ATTR_DB_SYSTEM_NAME]:HI.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[HI.ATTR_DB_NAMESPACE]:A.namespace,[HI.ATTR_SERVER_ADDRESS]:B?.hostname??A.host,[HI.ATTR_SERVER_PORT]:Number(B?.port)||t8(A.port)};return I}lDA.getSemanticAttributesFromPoolConnection=wYQ;function KYQ(A){return A.requireParentSpan===!0&&L0.trace.getSpan(L0.context.active())===void 0}lDA.shouldSkipInstrumentation=KYQ;function VYQ(A,Q,B,I){let{connectionParameters:C}=this,E=C.database,Y=bDA(E,I),J=A.startSpan(Y,{kind:L0.SpanKind.CLIENT,attributes:cDA(C,B)});if(!I)return J;if(I.text){if(B&QJ.SemconvStability.OLD)J.setAttribute(iA.ATTR_DB_STATEMENT,I.text);if(B&QJ.SemconvStability.STABLE)J.setAttribute(HI.ATTR_DB_QUERY_TEXT,I.text)}if(Q.enhancedDatabaseReporting&&Array.isArray(I.values))try{let F=I.values.map((G)=>{if(G==null)return"null";else if(G instanceof Buffer)return G.toString();else if(typeof G==="object"){if(typeof G.toPostgres==="function")return G.toPostgres();return JSON.stringify(G)}else return G.toString()});J.setAttribute(r8.AttributeNames.PG_VALUES,F)}catch(F){L0.diag.error("failed to stringify ",I.values,F)}if(typeof I.name==="string")J.setAttribute(r8.AttributeNames.PG_PLAN,I.name);return J}lDA.handleConfigQuery=VYQ;function uDA(A,Q,B){if(typeof A.responseHook==="function")(0,QJ.safeExecuteInTheMiddle)(()=>{A.responseHook(Q,{data:B})},(I)=>{if(I)L0.diag.error("Error running response hook",I)},!0)}lDA.handleExecutionResult=uDA;function zYQ(A,Q,B,I,C){return function(Y,J){if(Y){if(Object.prototype.hasOwnProperty.call(Y,"code"))I[HI.ATTR_ERROR_TYPE]=Y.code;if(Y instanceof Error)Q.recordException(e8(Y));Q.setStatus({code:L0.SpanStatusCode.ERROR,message:Y.message})}else uDA(A,Q,J);C(),Q.end(),B.call(this,Y,J)}}lDA.patchCallback=zYQ;function $YQ(A){let Q="";return Q+=(A?.host?`${A.host}`:"unknown_host")+":",Q+=(A?.port?`${A.port}`:"unknown_port")+"/",Q+=A?.database?`${A.database}`:"unknown_database",Q.trim()}lDA.getPoolName=$YQ;function HYQ(A,Q,B,I,C){let{totalCount:E,waitingCount:Y,idleCount:J}=Q,F=E-J;return B.add(F-C.used,{[iA.ATTR_DB_CLIENT_CONNECTION_STATE]:iA.DB_CLIENT_CONNECTION_STATE_VALUE_USED,[iA.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:A}),B.add(J-C.idle,{[iA.ATTR_DB_CLIENT_CONNECTION_STATE]:iA.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,[iA.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:A}),I.add(Y-C.pending,{[iA.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:A}),{used:F,idle:J,pending:Y}}lDA.updateCounter=HYQ;function MYQ(A,Q){return function(I,C,E){if(I){if(I instanceof Error)A.recordException(e8(I));A.setStatus({code:L0.SpanStatusCode.ERROR,message:I.message})}A.end(),Q.call(this,I,C,E)}}lDA.patchCallbackPGPool=MYQ;function LYQ(A,Q){return function(I){if(I){if(I instanceof Error)A.recordException(e8(I));A.setStatus({code:L0.SpanStatusCode.ERROR,message:I.message})}A.end(),Q.apply(this,arguments)}}lDA.patchClientConnectCallback=LYQ;function NYQ(A){return typeof A==="object"&&A!==null&&"message"in A?String(A.message):void 0}lDA.getErrorMessage=NYQ;function jYQ(A){return typeof A==="object"&&typeof A?.text==="string"}lDA.isObjectWithTextString=jYQ;function e8(A){let Q=A?.name??"PostgreSQLError",B=A?.code??"UNKNOWN";return`PostgreSQL error of type '${Q}' occurred (code: ${B})`}lDA.sanitizedErrorMessage=e8});var aDA=X((nDA)=>{Object.defineProperty(nDA,"__esModule",{value:!0});nDA.PACKAGE_NAME=nDA.PACKAGE_VERSION=void 0;nDA.PACKAGE_VERSION="0.65.0";nDA.PACKAGE_NAME="@opentelemetry/instrumentation-pg"});var CZA=X((BZA)=>{Object.defineProperty(BZA,"__esModule",{value:!0});BZA.PgInstrumentation=void 0;var QB=s(),RA=j(),sDA=yDA(),dA=iDA(),rDA=EH(),tDA=aDA(),eDA=LH(),Aw=MA(),iI=JA(),aW=HH();function $G(A){return A[Symbol.toStringTag]==="Module"?A.default:A}class QZA extends QB.InstrumentationBase{_connectionsCounter={used:0,idle:0,pending:0};_semconvStability;constructor(A={}){super(tDA.PACKAGE_NAME,tDA.PACKAGE_VERSION,A);this._semconvStability=(0,QB.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._operationDuration=this.meter.createHistogram(iI.METRIC_DB_CLIENT_OPERATION_DURATION,{description:"Duration of database client operations.",unit:"s",valueType:RA.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[0.001,0.005,0.01,0.05,0.1,0.5,1,5,10]}}),this._connectionsCounter={idle:0,pending:0,used:0},this._connectionsCount=this.meter.createUpDownCounter(aW.METRIC_DB_CLIENT_CONNECTION_COUNT,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"}),this._connectionPendingRequests=this.meter.createUpDownCounter(aW.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS,{description:"The number of current pending requests for an open connection.",unit:"{connection}"})}init(){let A=[">=8.0.3 <9"],Q=[">=2.0.0 <4"],B=new QB.InstrumentationNodeModuleFile("pg/lib/native/client.js",A,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),I=new QB.InstrumentationNodeModuleFile("pg/lib/client.js",A,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),C=new QB.InstrumentationNodeModuleDefinition("pg",A,(Y)=>{let J=$G(Y);return this._patchPgClient(J.Client),Y},(Y)=>{let J=$G(Y);return this._unpatchPgClient(J.Client),Y},[I,B]),E=new QB.InstrumentationNodeModuleDefinition("pg-pool",Q,(Y)=>{let J=$G(Y);if((0,QB.isWrapped)(J.prototype.connect))this._unwrap(J.prototype,"connect");return this._wrap(J.prototype,"connect",this._getPoolConnectPatch()),J},(Y)=>{let J=$G(Y);if((0,QB.isWrapped)(J.prototype.connect))this._unwrap(J.prototype,"connect")});return[C,E]}_patchPgClient(A){if(!A)return;let Q=$G(A);if((0,QB.isWrapped)(Q.prototype.query))this._unwrap(Q.prototype,"query");if((0,QB.isWrapped)(Q.prototype.connect))this._unwrap(Q.prototype,"connect");return this._wrap(Q.prototype,"query",this._getClientQueryPatch()),this._wrap(Q.prototype,"connect",this._getClientConnectPatch()),A}_unpatchPgClient(A){let Q=$G(A);if((0,QB.isWrapped)(Q.prototype.query))this._unwrap(Q.prototype,"query");if((0,QB.isWrapped)(Q.prototype.connect))this._unwrap(Q.prototype,"connect");return A}_getClientConnectPatch(){let A=this;return(Q)=>{return function(I){let C=A.getConfig();if(dA.shouldSkipInstrumentation(C)||C.ignoreConnectSpans)return Q.call(this,I);let E=A.tracer.startSpan(eDA.SpanNames.CONNECT,{kind:RA.SpanKind.CLIENT,attributes:dA.getSemanticAttributesFromConnection(this,A._semconvStability)});if(I){let J=RA.trace.getSpan(RA.context.active());if(I=dA.patchClientConnectCallback(E,I),J)I=RA.context.bind(RA.context.active(),I)}let Y=RA.context.with(RA.trace.setSpan(RA.context.active(),E),()=>{return Q.call(this,I)});return AZA(E,Y)}}}recordOperationDuration(A,Q){let B={},I=[iI.ATTR_DB_NAMESPACE,iI.ATTR_ERROR_TYPE,iI.ATTR_SERVER_PORT,iI.ATTR_SERVER_ADDRESS,iI.ATTR_DB_OPERATION_NAME];if(this._semconvStability&QB.SemconvStability.OLD)I.push(aW.ATTR_DB_SYSTEM);if(this._semconvStability&QB.SemconvStability.STABLE)I.push(iI.ATTR_DB_SYSTEM_NAME);I.forEach((E)=>{if(E in A)B[E]=A[E]});let C=(0,Aw.hrTimeToMilliseconds)((0,Aw.hrTimeDuration)(Q,(0,Aw.hrTime)()))/1000;this._operationDuration.record(C,B)}_getClientQueryPatch(){let A=this;return(Q)=>{return this._diag.debug("Patching pg.Client.prototype.query"),function(...I){if(dA.shouldSkipInstrumentation(A.getConfig()))return Q.apply(this,I);let C=(0,Aw.hrTime)(),E=I[0],Y=typeof E==="string",J=dA.isObjectWithTextString(E),F=Y?{text:E,values:Array.isArray(I[1])?I[1]:void 0}:J?{...E,name:E.name,text:E.text,values:E.values??(Array.isArray(I[1])?I[1]:void 0)}:void 0,G={[aW.ATTR_DB_SYSTEM]:aW.DB_SYSTEM_VALUE_POSTGRESQL,[iI.ATTR_DB_NAMESPACE]:this.database,[iI.ATTR_SERVER_PORT]:this.connectionParameters.port,[iI.ATTR_SERVER_ADDRESS]:this.connectionParameters.host};if(F?.text)G[iI.ATTR_DB_OPERATION_NAME]=dA.parseNormalizedOperationName(F?.text);let D=()=>{A.recordOperationDuration(G,C)},Z=A.getConfig(),W=dA.handleConfigQuery.call(this,A.tracer,Z,A._semconvStability,F);if(Z.addSqlCommenterCommentToQueries){if(Y)I[0]=(0,rDA.addSqlCommenterComment)(W,E);else if(J&&!("name"in E))I[0]={...E,text:(0,rDA.addSqlCommenterComment)(W,E.text)}}if(I.length>0){let K=RA.trace.getSpan(RA.context.active());if(typeof I[I.length-1]==="function"){if(I[I.length-1]=dA.patchCallback(Z,W,I[I.length-1],G,D),K)I[I.length-1]=RA.context.bind(RA.context.active(),I[I.length-1])}else if(typeof F?.callback==="function"){let V=dA.patchCallback(A.getConfig(),W,F.callback,G,D);if(K)V=RA.context.bind(RA.context.active(),V);I[0].callback=V}}let{requestHook:U}=Z;if(typeof U==="function"&&F)(0,QB.safeExecuteInTheMiddle)(()=>{let{database:K,host:V,port:z,user:M}=this.connectionParameters;U(W,{connection:{database:K,host:V,port:z,user:M},query:{text:F.text,values:F.values,name:F.name}})},(K)=>{if(K)A._diag.error("Error running query hook",K)},!0);let w;try{w=Q.apply(this,I)}catch(K){if(K instanceof Error)W.recordException(dA.sanitizedErrorMessage(K));throw W.setStatus({code:RA.SpanStatusCode.ERROR,message:dA.getErrorMessage(K)}),W.end(),K}if(w instanceof Promise)return w.then((K)=>{return new Promise((V)=>{dA.handleExecutionResult(A.getConfig(),W,K),D(),W.end(),V(K)})}).catch((K)=>{return new Promise((V,z)=>{if(K instanceof Error)W.recordException(dA.sanitizedErrorMessage(K));W.setStatus({code:RA.SpanStatusCode.ERROR,message:K.message}),D(),W.end(),z(K)})});return w}}}_setPoolConnectEventListeners(A){if(A[sDA.EVENT_LISTENERS_SET])return;let Q=dA.getPoolName(A.options);A.on("connect",()=>{this._connectionsCounter=dA.updateCounter(Q,A,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),A.on("acquire",()=>{this._connectionsCounter=dA.updateCounter(Q,A,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),A.on("remove",()=>{this._connectionsCounter=dA.updateCounter(Q,A,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),A.on("release",()=>{this._connectionsCounter=dA.updateCounter(Q,A,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),A[sDA.EVENT_LISTENERS_SET]=!0}_getPoolConnectPatch(){let A=this;return(Q)=>{return function(I){let C=A.getConfig();if(dA.shouldSkipInstrumentation(C))return Q.call(this,I);if(A._setPoolConnectEventListeners(this),C.ignoreConnectSpans)return Q.call(this,I);let E=A.tracer.startSpan(eDA.SpanNames.POOL_CONNECT,{kind:RA.SpanKind.CLIENT,attributes:dA.getSemanticAttributesFromPoolConnection(this.options,A._semconvStability)});if(I){let J=RA.trace.getSpan(RA.context.active());if(I=dA.patchCallbackPGPool(E,I),J)I=RA.context.bind(RA.context.active(),I)}let Y=RA.context.with(RA.trace.setSpan(RA.context.active(),E),()=>{return Q.call(this,I)});return AZA(E,Y)}}}}BZA.PgInstrumentation=QZA;function AZA(A,Q){if(!(Q instanceof Promise))return Q;let B=Q;return RA.context.bind(RA.context.active(),B.then((I)=>{return A.end(),I}).catch((I)=>{if(I instanceof Error)A.recordException(dA.sanitizedErrorMessage(I));return A.setStatus({code:RA.SpanStatusCode.ERROR,message:dA.getErrorMessage(I)}),A.end(),Promise.reject(I)}))}});var EZA=X((Qw)=>{Object.defineProperty(Qw,"__esModule",{value:!0});Qw.AttributeNames=Qw.PgInstrumentation=void 0;var cYQ=CZA();Object.defineProperty(Qw,"PgInstrumentation",{enumerable:!0,get:function(){return cYQ.PgInstrumentation}});var uYQ=$H();Object.defineProperty(Qw,"AttributeNames",{enumerable:!0,get:function(){return uYQ.AttributeNames}})});var wZA=X((XZA)=>{Object.defineProperty(XZA,"__esModule",{value:!0});XZA.SeverityNumber=void 0;var aYQ;(function(A){A[A.UNSPECIFIED=0]="UNSPECIFIED",A[A.TRACE=1]="TRACE",A[A.TRACE2=2]="TRACE2",A[A.TRACE3=3]="TRACE3",A[A.TRACE4=4]="TRACE4",A[A.DEBUG=5]="DEBUG",A[A.DEBUG2=6]="DEBUG2",A[A.DEBUG3=7]="DEBUG3",A[A.DEBUG4=8]="DEBUG4",A[A.INFO=9]="INFO",A[A.INFO2=10]="INFO2",A[A.INFO3=11]="INFO3",A[A.INFO4=12]="INFO4",A[A.WARN=13]="WARN",A[A.WARN2=14]="WARN2",A[A.WARN3=15]="WARN3",A[A.WARN4=16]="WARN4",A[A.ERROR=17]="ERROR",A[A.ERROR2=18]="ERROR2",A[A.ERROR3=19]="ERROR3",A[A.ERROR4=20]="ERROR4",A[A.FATAL=21]="FATAL",A[A.FATAL2=22]="FATAL2",A[A.FATAL3=23]="FATAL3",A[A.FATAL4=24]="FATAL4"})(aYQ=XZA.SeverityNumber||(XZA.SeverityNumber={}))});var Bw=X((KZA)=>{Object.defineProperty(KZA,"__esModule",{value:!0});KZA.NOOP_LOGGER=KZA.NoopLogger=void 0;class qH{emit(A){}}KZA.NoopLogger=qH;KZA.NOOP_LOGGER=new qH});var Iw=X((zZA)=>{Object.defineProperty(zZA,"__esModule",{value:!0});zZA.NOOP_LOGGER_PROVIDER=zZA.NoopLoggerProvider=void 0;var rYQ=Bw();class OH{getLogger(A,Q,B){return new rYQ.NoopLogger}}zZA.NoopLoggerProvider=OH;zZA.NOOP_LOGGER_PROVIDER=new OH});var TH=X((MZA)=>{Object.defineProperty(MZA,"__esModule",{value:!0});MZA.ProxyLogger=void 0;var eYQ=Bw();class HZA{constructor(A,Q,B,I){this._provider=A,this.name=Q,this.version=B,this.options=I}emit(A){this._getLogger().emit(A)}_getLogger(){if(this._delegate)return this._delegate;let A=this._provider._getDelegateLogger(this.name,this.version,this.options);if(!A)return eYQ.NOOP_LOGGER;return this._delegate=A,this._delegate}}MZA.ProxyLogger=HZA});var PH=X((jZA)=>{Object.defineProperty(jZA,"__esModule",{value:!0});jZA.ProxyLoggerProvider=void 0;var AJQ=Iw(),QJQ=TH();class NZA{getLogger(A,Q,B){var I;return(I=this._getDelegateLogger(A,Q,B))!==null&&I!==void 0?I:new QJQ.ProxyLogger(this,A,Q,B)}_getDelegate(){var A;return(A=this._delegate)!==null&&A!==void 0?A:AJQ.NOOP_LOGGER_PROVIDER}_setDelegate(A){this._delegate=A}_getDelegateLogger(A,Q,B){var I;return(I=this._delegate)===null||I===void 0?void 0:I.getLogger(A,Q,B)}}jZA.ProxyLoggerProvider=NZA});var TZA=X((qZA)=>{Object.defineProperty(qZA,"__esModule",{value:!0});qZA._globalThis=void 0;qZA._globalThis=typeof globalThis==="object"?globalThis:global});var PZA=X((kH)=>{Object.defineProperty(kH,"__esModule",{value:!0});kH._globalThis=void 0;var BJQ=TZA();Object.defineProperty(kH,"_globalThis",{enumerable:!0,get:function(){return BJQ._globalThis}})});var kZA=X((SH)=>{Object.defineProperty(SH,"__esModule",{value:!0});SH._globalThis=void 0;var CJQ=PZA();Object.defineProperty(SH,"_globalThis",{enumerable:!0,get:function(){return CJQ._globalThis}})});var yZA=X((SZA)=>{Object.defineProperty(SZA,"__esModule",{value:!0});SZA.API_BACKWARDS_COMPATIBILITY_VERSION=SZA.makeGetter=SZA._global=SZA.GLOBAL_LOGS_API_KEY=void 0;var YJQ=kZA();SZA.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");SZA._global=YJQ._globalThis;function JJQ(A,Q,B){return(I)=>I===A?Q:B}SZA.makeGetter=JJQ;SZA.API_BACKWARDS_COMPATIBILITY_VERSION=1});var vZA=X((fZA)=>{Object.defineProperty(fZA,"__esModule",{value:!0});fZA.LogsAPI=void 0;var MI=yZA(),ZJQ=Iw(),hZA=PH();class gH{constructor(){this._proxyLoggerProvider=new hZA.ProxyLoggerProvider}static getInstance(){if(!this._instance)this._instance=new gH;return this._instance}setGlobalLoggerProvider(A){if(MI._global[MI.GLOBAL_LOGS_API_KEY])return this.getLoggerProvider();return MI._global[MI.GLOBAL_LOGS_API_KEY]=(0,MI.makeGetter)(MI.API_BACKWARDS_COMPATIBILITY_VERSION,A,ZJQ.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(A),A}getLoggerProvider(){var A,Q;return(Q=(A=MI._global[MI.GLOBAL_LOGS_API_KEY])===null||A===void 0?void 0:A.call(MI._global,MI.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&Q!==void 0?Q:this._proxyLoggerProvider}getLogger(A,Q,B){return this.getLoggerProvider().getLogger(A,Q,B)}disable(){delete MI._global[MI.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new hZA.ProxyLoggerProvider}}fZA.LogsAPI=gH});var yH=X((ZE)=>{Object.defineProperty(ZE,"__esModule",{value:!0});ZE.logs=ZE.ProxyLoggerProvider=ZE.ProxyLogger=ZE.NoopLoggerProvider=ZE.NOOP_LOGGER_PROVIDER=ZE.NoopLogger=ZE.NOOP_LOGGER=ZE.SeverityNumber=void 0;var WJQ=wZA();Object.defineProperty(ZE,"SeverityNumber",{enumerable:!0,get:function(){return WJQ.SeverityNumber}});var xZA=Bw();Object.defineProperty(ZE,"NOOP_LOGGER",{enumerable:!0,get:function(){return xZA.NOOP_LOGGER}});Object.defineProperty(ZE,"NoopLogger",{enumerable:!0,get:function(){return xZA.NoopLogger}});var bZA=Iw();Object.defineProperty(ZE,"NOOP_LOGGER_PROVIDER",{enumerable:!0,get:function(){return bZA.NOOP_LOGGER_PROVIDER}});Object.defineProperty(ZE,"NoopLoggerProvider",{enumerable:!0,get:function(){return bZA.NoopLoggerProvider}});var UJQ=TH();Object.defineProperty(ZE,"ProxyLogger",{enumerable:!0,get:function(){return UJQ.ProxyLogger}});var XJQ=PH();Object.defineProperty(ZE,"ProxyLoggerProvider",{enumerable:!0,get:function(){return XJQ.ProxyLoggerProvider}});var wJQ=vZA();ZE.logs=wJQ.LogsAPI.getInstance()});var uZA=X((dZA)=>{Object.defineProperty(dZA,"__esModule",{value:!0});dZA.disableInstrumentations=dZA.enableInstrumentations=void 0;function KJQ(A,Q,B,I){for(let C=0,E=A.length;CQ.disable())}dZA.disableInstrumentations=VJQ});var oZA=X((iZA)=>{Object.defineProperty(iZA,"__esModule",{value:!0});iZA.registerInstrumentations=void 0;var lZA=j(),$JQ=yH(),pZA=uZA();function HJQ(A){let Q=A.tracerProvider||lZA.trace.getTracerProvider(),B=A.meterProvider||lZA.metrics.getMeterProvider(),I=A.loggerProvider||$JQ.logs.getLoggerProvider(),C=A.instrumentations?.flat()??[];return(0,pZA.enableInstrumentations)(C,Q,B,I),()=>{(0,pZA.disableInstrumentations)(C)}}iZA.registerInstrumentations=HJQ});var EWA=X((IWA)=>{Object.defineProperty(IWA,"__esModule",{value:!0});IWA.satisfies=void 0;var vH=j(),eZA=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,MJQ=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,LJQ={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function NJQ(A,Q,B){if(!jJQ(A))return vH.diag.error(`Invalid version: ${A}`),!1;if(!Q)return!0;Q=Q.replace(/([<>=~^]+)\s+/g,"$1");let I=TJQ(A);if(!I)return!1;let C=[],E=AWA(I,Q,C,B);if(E&&!B?.includePrerelease)return qJQ(I,C);return E}IWA.satisfies=NJQ;function jJQ(A){return typeof A==="string"&&eZA.test(A)}function AWA(A,Q,B,I){if(Q.includes("||")){let C=Q.trim().split("||");for(let E of C)if(hH(A,E,B,I))return!0;return!1}else if(Q.includes(" - "))Q=aJQ(Q,I);else if(Q.includes(" ")){let C=Q.trim().replace(/\s{2,}/g," ").split(" ");for(let E of C)if(!hH(A,E,B,I))return!1;return!0}return hH(A,Q,B,I)}function hH(A,Q,B,I){if(Q=OJQ(Q,I),Q.includes(" "))return AWA(A,Q,B,I);else{let C=PJQ(Q);return B.push(C),RJQ(A,C)}}function RJQ(A,Q){if(Q.invalid)return!1;if(!Q.version||_H(Q.version))return!0;let B=sZA(A.versionSegments||[],Q.versionSegments||[]);if(B===0){let I=A.prereleaseSegments||[],C=Q.prereleaseSegments||[];if(!I.length&&!C.length)B=0;else if(!I.length&&C.length)B=1;else if(I.length&&!C.length)B=-1;else B=sZA(I,C)}return LJQ[Q.op]?.includes(B)}function qJQ(A,Q){if(A.prerelease)return Q.some((B)=>B.prerelease&&B.version===A.version);return!0}function OJQ(A,Q){return A=A.trim(),A=nJQ(A,Q),A=iJQ(A),A=oJQ(A,Q),A=A.trim(),A}function BB(A){return!A||A.toLowerCase()==="x"||A==="*"}function TJQ(A){let Q=A.match(eZA);if(!Q){vH.diag.error(`Invalid version: ${A}`);return}let B=Q.groups.version,I=Q.groups.prerelease,C=Q.groups.build,E=B.split("."),Y=I?.split(".");return{op:void 0,version:B,versionSegments:E,versionSegmentCount:E.length,prerelease:I,prereleaseSegments:Y,prereleaseSegmentCount:Y?Y.length:0,build:C}}function PJQ(A){if(!A)return{};let Q=A.match(MJQ);if(!Q)return vH.diag.error(`Invalid range: ${A}`),{invalid:!0};let B=Q.groups.op,I=Q.groups.version,C=Q.groups.prerelease,E=Q.groups.build,Y=I.split("."),J=C?.split(".");if(B==="==")B="=";return{op:B||"=",version:I,versionSegments:Y,versionSegmentCount:Y.length,prerelease:C,prereleaseSegments:J,prereleaseSegmentCount:J?J.length:0,build:E}}function _H(A){return A==="*"||A==="x"||A==="X"}function aZA(A){let Q=parseInt(A,10);return isNaN(Q)?A:Q}function kJQ(A,Q){if(typeof A===typeof Q)if(typeof A==="number")return[A,Q];else if(typeof A==="string")return[A,Q];else throw Error("Version segments can only be strings or numbers");else return[String(A),String(Q)]}function SJQ(A,Q){if(_H(A)||_H(Q))return 0;let[B,I]=kJQ(aZA(A),aZA(Q));if(B>I)return 1;else if(B)?=?)",rZA=`(?:${BWA}|${gJQ})`,hJQ=`(?:-(${rZA}(?:\\.${rZA})*))`,tZA=`${QWA}+`,fJQ=`(?:\\+(${tZA}(?:\\.${tZA})*))`,fH=`${BWA}|x|X|\\*`,sW=`[v=\\s]*(${fH})(?:\\.(${fH})(?:\\.(${fH})(?:${hJQ})?${fJQ}?)?)?`,_JQ=`^${yJQ}\\s*${sW}$`,vJQ=new RegExp(_JQ),xJQ=`^\\s*(${sW})\\s+-\\s+(${sW})\\s*$`,bJQ=new RegExp(xJQ),mJQ="(?:~>?)",dJQ=`^${mJQ}${sW}$`,cJQ=new RegExp(dJQ),uJQ="(?:\\^)",lJQ=`^${uJQ}${sW}$`,pJQ=new RegExp(lJQ);function iJQ(A){let Q=cJQ;return A.replace(Q,(B,I,C,E,Y)=>{let J;if(BB(I))J="";else if(BB(C))J=`>=${I}.0.0 <${+I+1}.0.0-0`;else if(BB(E))J=`>=${I}.${C}.0 <${I}.${+C+1}.0-0`;else if(Y)J=`>=${I}.${C}.${E}-${Y} <${I}.${+C+1}.0-0`;else J=`>=${I}.${C}.${E} <${I}.${+C+1}.0-0`;return J})}function nJQ(A,Q){let B=pJQ,I=Q?.includePrerelease?"-0":"";return A.replace(B,(C,E,Y,J,F)=>{let G;if(BB(E))G="";else if(BB(Y))G=`>=${E}.0.0${I} <${+E+1}.0.0-0`;else if(BB(J))if(E==="0")G=`>=${E}.${Y}.0${I} <${E}.${+Y+1}.0-0`;else G=`>=${E}.${Y}.0${I} <${+E+1}.0.0-0`;else if(F)if(E==="0")if(Y==="0")G=`>=${E}.${Y}.${J}-${F} <${E}.${Y}.${+J+1}-0`;else G=`>=${E}.${Y}.${J}-${F} <${E}.${+Y+1}.0-0`;else G=`>=${E}.${Y}.${J}-${F} <${+E+1}.0.0-0`;else if(E==="0")if(Y==="0")G=`>=${E}.${Y}.${J}${I} <${E}.${Y}.${+J+1}-0`;else G=`>=${E}.${Y}.${J}${I} <${E}.${+Y+1}.0-0`;else G=`>=${E}.${Y}.${J} <${+E+1}.0.0-0`;return G})}function oJQ(A,Q){let B=vJQ;return A.replace(B,(I,C,E,Y,J,F)=>{let G=BB(E),D=G||BB(Y),Z=D||BB(J),W=Z;if(C==="="&&W)C="";if(F=Q?.includePrerelease?"-0":"",G)if(C===">"||C==="<")I="<0.0.0-0";else I="*";else if(C&&W){if(D)Y=0;if(J=0,C===">")if(C=">=",D)E=+E+1,Y=0,J=0;else Y=+Y+1,J=0;else if(C==="<=")if(C="<",D)E=+E+1;else Y=+Y+1;if(C==="<")F="-0";I=`${C+E}.${Y}.${J}${F}`}else if(D)I=`>=${E}.0.0${F} <${+E+1}.0.0-0`;else if(Z)I=`>=${E}.${Y}.0${F} <${E}.${+Y+1}.0-0`;return I})}function aJQ(A,Q){let B=bJQ;return A.replace(B,(I,C,E,Y,J,F,G,D,Z,W,U,w)=>{if(BB(E))C="";else if(BB(Y))C=`>=${E}.0.0${Q?.includePrerelease?"-0":""}`;else if(BB(J))C=`>=${E}.${Y}.0${Q?.includePrerelease?"-0":""}`;else if(F)C=`>=${C}`;else C=`>=${C}${Q?.includePrerelease?"-0":""}`;if(BB(Z))D="";else if(BB(W))D=`<${+Z+1}.0.0-0`;else if(BB(U))D=`<${Z}.${+W+1}.0-0`;else if(w)D=`<=${Z}.${W}.${U}-${w}`;else if(Q?.includePrerelease)D=`<${Z}.${W}.${+U+1}-0`;else D=`<=${D}`;return`${C} ${D}`.trim()})}});var dH=X((YWA)=>{Object.defineProperty(YWA,"__esModule",{value:!0});YWA.massUnwrap=YWA.unwrap=YWA.massWrap=YWA.wrap=void 0;var IB=console.error.bind(console);function rW(A,Q,B){let I=!!A[Q]&&Object.prototype.propertyIsEnumerable.call(A,Q);Object.defineProperty(A,Q,{configurable:!0,enumerable:I,writable:!0,value:B})}var sJQ=(A,Q,B)=>{if(!A||!A[Q]){IB("no original function "+String(Q)+" to wrap");return}if(!B){IB("no wrapper function"),IB(Error().stack);return}let I=A[Q];if(typeof I!=="function"||typeof B!=="function"){IB("original object and wrapper must be functions");return}let C=B(I,Q);return rW(C,"__original",I),rW(C,"__unwrap",()=>{if(A[Q]===C)rW(A,Q,I)}),rW(C,"__wrapped",!0),rW(A,Q,C),C};YWA.wrap=sJQ;var rJQ=(A,Q,B)=>{if(!A){IB("must provide one or more modules to patch"),IB(Error().stack);return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){IB("must provide one or more functions to wrap on modules");return}A.forEach((I)=>{Q.forEach((C)=>{YWA.wrap(I,C,B)})})};YWA.massWrap=rJQ;var tJQ=(A,Q)=>{if(!A||!A[Q]){IB("no function to unwrap."),IB(Error().stack);return}let B=A[Q];if(!B.__unwrap)IB("no original to unwrap to -- has "+String(Q)+" already been unwrapped?");else{B.__unwrap();return}};YWA.unwrap=tJQ;var eJQ=(A,Q)=>{if(!A){IB("must provide one or more modules to patch"),IB(Error().stack);return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){IB("must provide one or more functions to unwrap on modules");return}A.forEach((B)=>{Q.forEach((I)=>{YWA.unwrap(B,I)})})};YWA.massUnwrap=eJQ;function tW(A){if(A&&A.logger)if(typeof A.logger!=="function")IB("new logger isn't a function, not replacing");else IB=A.logger}YWA.default=tW;tW.wrap=YWA.wrap;tW.massWrap=YWA.massWrap;tW.unwrap=YWA.unwrap;tW.massUnwrap=YWA.massUnwrap});var ZWA=X((GWA)=>{Object.defineProperty(GWA,"__esModule",{value:!0});GWA.InstrumentationAbstract=void 0;var cH=j(),QFQ=yH(),Cw=dH();class FWA{instrumentationName;instrumentationVersion;_config={};_tracer;_meter;_logger;_diag;constructor(A,Q,B){this.instrumentationName=A,this.instrumentationVersion=Q,this.setConfig(B),this._diag=cH.diag.createComponentLogger({namespace:A}),this._tracer=cH.trace.getTracer(A,Q),this._meter=cH.metrics.getMeter(A,Q),this._logger=QFQ.logs.getLogger(A,Q),this._updateMetricInstruments()}_wrap=Cw.wrap;_unwrap=Cw.unwrap;_massWrap=Cw.massWrap;_massUnwrap=Cw.massUnwrap;get meter(){return this._meter}setMeterProvider(A){this._meter=A.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(A){this._logger=A.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let A=this.init()??[];if(!Array.isArray(A))return[A];return A}_updateMetricInstruments(){return}getConfig(){return this._config}setConfig(A){this._config={enabled:!0,...A}}setTracerProvider(A){this._tracer=A.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(A,Q,B,I){if(!A)return;try{A(B,I)}catch(C){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:Q},C)}}}GWA.InstrumentationAbstract=FWA});var wWA=X((UWA)=>{Object.defineProperty(UWA,"__esModule",{value:!0});UWA.ModuleNameTrie=UWA.ModuleNameSeparator=void 0;UWA.ModuleNameSeparator="/";class uH{hooks=[];children=new Map}class WWA{_trie=new uH;_counter=0;insert(A){let Q=this._trie;for(let B of A.moduleName.split(UWA.ModuleNameSeparator)){let I=Q.children.get(B);if(!I)I=new uH,Q.children.set(B,I);Q=I}Q.hooks.push({hook:A,insertedId:this._counter++})}search(A,{maintainInsertionOrder:Q,fullOnly:B}={}){let I=this._trie,C=[],E=!0;for(let Y of A.split(UWA.ModuleNameSeparator)){let J=I.children.get(Y);if(!J){E=!1;break}if(!B)C.push(...J.hooks);I=J}if(B&&E)C.push(...I.hooks);if(C.length===0)return[];if(C.length===1)return[C[0].hook];if(Q)C.sort((Y,J)=>Y.insertedId-J.insertedId);return C.map(({hook:Y})=>Y)}}UWA.ModuleNameTrie=WWA});var $WA=X((VWA)=>{Object.defineProperty(VWA,"__esModule",{value:!0});VWA.RequireInTheMiddleSingleton=void 0;var BFQ=XY(),KWA=H("path"),pH=wWA(),IFQ=["afterEach","after","beforeEach","before","describe","it"].every((A)=>{return typeof global[A]==="function"});class Ew{_moduleNameTrie=new pH.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new BFQ.Hook(null,{internals:!0},(A,Q,B)=>{let I=CFQ(Q),C=this._moduleNameTrie.search(I,{maintainInsertionOrder:!0,fullOnly:B===void 0});for(let{onRequire:E}of C)A=E(A,Q,B);return A})}register(A,Q){let B={moduleName:A,onRequire:Q};return this._moduleNameTrie.insert(B),B}static getInstance(){if(IFQ)return new Ew;return this._instance=this._instance??new Ew}}VWA.RequireInTheMiddleSingleton=Ew;function CFQ(A){return KWA.sep!==pH.ModuleNameSeparator?A.split(KWA.sep).join(pH.ModuleNameSeparator):A}});var jWA=X((JFQ)=>{var HWA=[],iH=new WeakMap,MWA=new WeakMap,LWA=new Map,NWA=[],EFQ={set(A,Q,B){let I=iH.get(A),C=I&&I[Q];if(typeof C==="function")return C(B);return!0},get(A,Q){if(Q===Symbol.toStringTag)return"Module";let B=MWA.get(A)[Q];if(typeof B==="function")return B()},defineProperty(A,Q,B){if(!("value"in B))throw Error("Getters/setters are not supported for exports property descriptors.");let I=iH.get(A),C=I&&I[Q];if(typeof C==="function")return C(B.value);return!0}};function YFQ(A,Q,B,I,C){LWA.set(A,C),iH.set(Q,B),MWA.set(Q,I);let E=new Proxy(Q,EFQ);HWA.forEach((Y)=>Y(A,E,C)),NWA.push([A,E,C])}JFQ.register=YFQ;JFQ.importHooks=HWA;JFQ.specifiers=LWA;JFQ.toHook=NWA});var TWA=X((TfQ,LG)=>{var RWA=H("path"),WFQ=aD(),{fileURLToPath:UFQ}=H("url"),{MessageChannel:XFQ}=H("worker_threads"),{isBuiltin:nH}=H("module");if(!nH)nH=()=>!0;var{importHooks:oH,specifiers:wFQ,toHook:KFQ}=jWA();function qWA(A){oH.push(A),KFQ.forEach(([Q,B,I])=>A(Q,B,I))}function OWA(A){let Q=oH.indexOf(A);if(Q>-1)oH.splice(Q,1)}function MG(A,Q,B,I){let C=A(Q,B,I);if(C&&C!==Q){if("default"in Q)Q.default=C}}var aH;function VFQ(){let{port1:A,port2:Q}=new XFQ,B=0,I;aH=(J)=>{B++,A.postMessage(J)},A.on("message",()=>{if(B--,I&&B<=0)I()}).unref();function C(){let J=setInterval(()=>{},1000),F=new Promise((G)=>{I=G}).then(()=>{clearInterval(J)});if(B===0)I();return F}let E=Q;return{registerOptions:{data:{addHookMessagePort:E,include:[]},transferList:[E]},addHookMessagePort:E,waitForAllMessagesAcknowledged:C}}function eW(A,Q,B){if(this instanceof eW===!1)return new eW(A,Q,B);if(typeof A==="function")B=A,A=null,Q=null;else if(typeof Q==="function")B=Q,Q=null;let I=Q?Q.internals===!0:!1;if(aH&&Array.isArray(A))aH(A);this._iitmHook=(C,E,Y)=>{let J=C,F=J.startsWith("node:"),G,D;if(F){let Z=C.slice(5);if(nH(Z))C=Z}else if(J.startsWith("file://")){let Z=Error.stackTraceLimit;Error.stackTraceLimit=0;try{G=UFQ(C),C=G}catch(W){}if(Error.stackTraceLimit=Z,G){let W=WFQ(G);if(W)C=W.name,D=W.basedir}}if(A){for(let Z of A)if(G&&Z===G)MG(B,E,G,void 0);else if(Z===C){if(!D)MG(B,E,C,D);else if(D.endsWith(wFQ.get(J)))MG(B,E,C,D);else if(I){let W=C+RWA.sep+RWA.relative(D,G);MG(B,E,W,D)}}else if(Z===Y)MG(B,E,Y,D)}else MG(B,E,C,D)},qWA(this._iitmHook)}eW.prototype.unhook=function(){OWA(this._iitmHook)};LG.exports=eW;LG.exports.Hook=eW;LG.exports.addHook=qWA;LG.exports.removeHook=OWA;LG.exports.createAddHookMessageChannel=VFQ});var sH=X((PWA)=>{Object.defineProperty(PWA,"__esModule",{value:!0});PWA.isWrapped=PWA.safeExecuteInTheMiddleAsync=PWA.safeExecuteInTheMiddle=void 0;function zFQ(A,Q,B){let I,C;try{C=A()}catch(E){I=E}finally{if(Q(I,C),I&&!B)throw I;return C}}PWA.safeExecuteInTheMiddle=zFQ;async function $FQ(A,Q,B){let I,C;try{C=await A()}catch(E){I=E}finally{if(Q(I,C),I&&!B)throw I;return C}}PWA.safeExecuteInTheMiddleAsync=$FQ;function HFQ(A){return typeof A==="function"&&typeof A.__original==="function"&&typeof A.__unwrap==="function"&&A.__wrapped===!0}PWA.isWrapped=HFQ});var _WA=X((hWA)=>{Object.defineProperty(hWA,"__esModule",{value:!0});hWA.InstrumentationBase=void 0;var A9=H("path"),SWA=H("util"),NFQ=EWA(),rH=dH(),jFQ=ZWA(),RFQ=$WA(),qFQ=TWA(),Q9=j(),OFQ=XY(),TFQ=H("fs"),PFQ=sH();class yWA extends jFQ.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=RFQ.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(A,Q,B){super(A,Q,B);let I=this.init();if(I&&!Array.isArray(I))I=[I];if(this._modules=I||[],this._config.enabled)this.enable()}_wrap=(A,Q,B)=>{if((0,PFQ.isWrapped)(A[Q]))this._unwrap(A,Q);if(!SWA.types.isProxy(A))return(0,rH.wrap)(A,Q,B);else{let I=(0,rH.wrap)(Object.assign({},A),Q,B);return Object.defineProperty(A,Q,{value:I}),I}};_unwrap=(A,Q)=>{if(!SWA.types.isProxy(A))return(0,rH.unwrap)(A,Q);else return Object.defineProperty(A,Q,{value:A[Q]})};_massWrap=(A,Q,B)=>{if(!A){Q9.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){Q9.diag.error("must provide one or more functions to wrap on modules");return}A.forEach((I)=>{Q.forEach((C)=>{this._wrap(I,C,B)})})};_massUnwrap=(A,Q)=>{if(!A){Q9.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){Q9.diag.error("must provide one or more functions to wrap on modules");return}A.forEach((B)=>{Q.forEach((I)=>{this._unwrap(B,I)})})};_warnOnPreloadedModules(){this._modules.forEach((A)=>{let{name:Q}=A;try{let B=H.resolve(Q);if(H.cache[B])this._diag.warn(`Module ${Q} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${Q}`)}catch{}})}_extractPackageVersion(A){try{let Q=(0,TFQ.readFileSync)(A9.join(A,"package.json"),{encoding:"utf8"}),B=JSON.parse(Q).version;return typeof B==="string"?B:void 0}catch{Q9.diag.warn("Failed extracting version",A)}return}_onRequire(A,Q,B,I){if(!I){if(typeof A.patch==="function"){if(A.moduleExports=Q,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:A.name}),A.patch(Q)}return Q}let C=this._extractPackageVersion(I);if(A.moduleVersion=C,A.name===B){if(gWA(A.supportedVersions,C,A.includePrerelease)){if(typeof A.patch==="function"){if(A.moduleExports=Q,this._enabled)return this._diag.debug("Applying instrumentation patch for module on require hook",{module:A.name,version:A.moduleVersion,baseDir:I}),A.patch(Q,A.moduleVersion)}}return Q}let E=A.files??[],Y=A9.normalize(B);return E.filter((F)=>F.name===Y).filter((F)=>gWA(F.supportedVersions,C,A.includePrerelease)).reduce((F,G)=>{if(G.moduleExports=F,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:A.name,version:A.moduleVersion,fileName:G.name,baseDir:I}),G.patch(F,A.moduleVersion);return F},Q)}enable(){if(this._enabled)return;if(this._enabled=!0,this._hooks.length>0){for(let A of this._modules){if(typeof A.patch==="function"&&A.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:A.name,version:A.moduleVersion}),A.patch(A.moduleExports,A.moduleVersion);for(let Q of A.files)if(Q.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:A.name,version:A.moduleVersion,fileName:Q.name}),Q.patch(Q.moduleExports,A.moduleVersion)}return}this._warnOnPreloadedModules();for(let A of this._modules){let Q=(E,Y,J)=>{if(!J&&A9.isAbsolute(Y)){let F=A9.parse(Y);Y=F.name,J=F.dir}return this._onRequire(A,E,Y,J)},B=(E,Y,J)=>{return this._onRequire(A,E,Y,J)},I=A9.isAbsolute(A.name)?new OFQ.Hook([A.name],{internals:!0},B):this._requireInTheMiddleSingleton.register(A.name,B);this._hooks.push(I);let C=new qFQ.Hook([A.name],{internals:!1},Q);this._hooks.push(C)}}disable(){if(!this._enabled)return;this._enabled=!1;for(let A of this._modules){if(typeof A.unpatch==="function"&&A.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:A.name,version:A.moduleVersion}),A.unpatch(A.moduleExports,A.moduleVersion);for(let Q of A.files)if(Q.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:A.name,version:A.moduleVersion,fileName:Q.name}),Q.unpatch(Q.moduleExports,A.moduleVersion)}}isEnabled(){return this._enabled}}hWA.InstrumentationBase=yWA;function gWA(A,Q,B){if(typeof Q>"u")return A.includes("*");return A.some((I)=>{return(0,NFQ.satisfies)(Q,I,{includePrerelease:B})})}});var vWA=X((tH)=>{Object.defineProperty(tH,"__esModule",{value:!0});tH.normalize=void 0;var kFQ=H("path");Object.defineProperty(tH,"normalize",{enumerable:!0,get:function(){return kFQ.normalize}})});var xWA=X((Yw)=>{Object.defineProperty(Yw,"__esModule",{value:!0});Yw.normalize=Yw.InstrumentationBase=void 0;var gFQ=_WA();Object.defineProperty(Yw,"InstrumentationBase",{enumerable:!0,get:function(){return gFQ.InstrumentationBase}});var yFQ=vWA();Object.defineProperty(Yw,"normalize",{enumerable:!0,get:function(){return yFQ.normalize}})});var eH=X((Jw)=>{Object.defineProperty(Jw,"__esModule",{value:!0});Jw.normalize=Jw.InstrumentationBase=void 0;var bWA=xWA();Object.defineProperty(Jw,"InstrumentationBase",{enumerable:!0,get:function(){return bWA.InstrumentationBase}});Object.defineProperty(Jw,"normalize",{enumerable:!0,get:function(){return bWA.normalize}})});var uWA=X((dWA)=>{Object.defineProperty(dWA,"__esModule",{value:!0});dWA.InstrumentationNodeModuleDefinition=void 0;class mWA{name;supportedVersions;patch;unpatch;files;constructor(A,Q,B,I,C){this.name=A,this.supportedVersions=Q,this.patch=B,this.unpatch=I,this.files=C||[]}}dWA.InstrumentationNodeModuleDefinition=mWA});var nWA=X((pWA)=>{Object.defineProperty(pWA,"__esModule",{value:!0});pWA.InstrumentationNodeModuleFile=void 0;var _FQ=eH();class lWA{supportedVersions;patch;unpatch;name;constructor(A,Q,B,I){this.supportedVersions=Q,this.patch=B,this.unpatch=I,this.name=(0,_FQ.normalize)(A)}}pWA.InstrumentationNodeModuleFile=lWA});var rWA=X((aWA)=>{Object.defineProperty(aWA,"__esModule",{value:!0});aWA.semconvStabilityFromStr=aWA.SemconvStability=void 0;var Fw;(function(A){A[A.STABLE=1]="STABLE",A[A.OLD=2]="OLD",A[A.DUPLICATE=3]="DUPLICATE"})(Fw=aWA.SemconvStability||(aWA.SemconvStability={}));function vFQ(A,Q){let B=Fw.OLD,I=Q?.split(",").map((C)=>C.trim()).filter((C)=>C!=="");for(let C of I??[])if(C.toLowerCase()===A+"/dup"){B=Fw.DUPLICATE;break}else if(C.toLowerCase()===A)B=Fw.STABLE;return B}aWA.semconvStabilityFromStr=vFQ});var eWA=X((oI)=>{Object.defineProperty(oI,"__esModule",{value:!0});oI.semconvStabilityFromStr=oI.SemconvStability=oI.safeExecuteInTheMiddleAsync=oI.safeExecuteInTheMiddle=oI.isWrapped=oI.InstrumentationNodeModuleFile=oI.InstrumentationNodeModuleDefinition=oI.InstrumentationBase=oI.registerInstrumentations=void 0;var xFQ=oZA();Object.defineProperty(oI,"registerInstrumentations",{enumerable:!0,get:function(){return xFQ.registerInstrumentations}});var bFQ=eH();Object.defineProperty(oI,"InstrumentationBase",{enumerable:!0,get:function(){return bFQ.InstrumentationBase}});var mFQ=uWA();Object.defineProperty(oI,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return mFQ.InstrumentationNodeModuleDefinition}});var dFQ=nWA();Object.defineProperty(oI,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return dFQ.InstrumentationNodeModuleFile}});var AM=sH();Object.defineProperty(oI,"isWrapped",{enumerable:!0,get:function(){return AM.isWrapped}});Object.defineProperty(oI,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return AM.safeExecuteInTheMiddle}});Object.defineProperty(oI,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return AM.safeExecuteInTheMiddleAsync}});var tWA=rWA();Object.defineProperty(oI,"SemconvStability",{enumerable:!0,get:function(){return tWA.SemconvStability}});Object.defineProperty(oI,"semconvStabilityFromStr",{enumerable:!0,get:function(){return tWA.semconvStabilityFromStr}})});var U9A=X((Z9A)=>{Object.defineProperty(Z9A,"__esModule",{value:!0});Z9A.PACKAGE_NAME=Z9A.PACKAGE_VERSION=void 0;Z9A.PACKAGE_VERSION="0.59.0";Z9A.PACKAGE_NAME="@opentelemetry/instrumentation-hapi"});var IM=X((X9A)=>{Object.defineProperty(X9A,"__esModule",{value:!0});X9A.HapiLifecycleMethodNames=X9A.HapiLayerType=X9A.handlerPatched=X9A.HapiComponentName=void 0;X9A.HapiComponentName="@hapi/hapi";X9A.handlerPatched=Symbol("hapi-handler-patched");X9A.HapiLayerType={ROUTER:"router",PLUGIN:"plugin",EXT:"server.ext"};X9A.HapiLifecycleMethodNames=new Set(["onPreAuth","onCredentials","onPostAuth","onPreHandler","onPostHandler","onPreResponse","onRequest"])});var z9A=X((K9A)=>{Object.defineProperty(K9A,"__esModule",{value:!0});K9A.ATTR_HTTP_METHOD=void 0;K9A.ATTR_HTTP_METHOD="http.method"});var EM=X(($9A)=>{Object.defineProperty($9A,"__esModule",{value:!0});$9A.AttributeNames=void 0;var FGQ;(function(A){A.HAPI_TYPE="hapi.type",A.PLUGIN_NAME="hapi.plugin.name",A.EXT_TYPE="server.ext.type"})(FGQ=$9A.AttributeNames||($9A.AttributeNames={}))});var j9A=X((L9A)=>{Object.defineProperty(L9A,"__esModule",{value:!0});L9A.getPluginFromInput=L9A.getExtMetadata=L9A.getRouteMetadata=L9A.isPatchableExtMethod=L9A.isDirectExtInput=L9A.isLifecycleExtEventObj=L9A.isLifecycleExtType=L9A.getPluginName=void 0;var H9A=JA(),GGQ=z9A(),B9=IM(),R0=EM(),M9A=s();function DGQ(A){if(A.name)return A.name;else return A.pkg.name}L9A.getPluginName=DGQ;var ZGQ=(A)=>{return typeof A==="string"&&B9.HapiLifecycleMethodNames.has(A)};L9A.isLifecycleExtType=ZGQ;var WGQ=(A)=>{let Q=A?.type;return Q!==void 0&&L9A.isLifecycleExtType(Q)};L9A.isLifecycleExtEventObj=WGQ;var UGQ=(A)=>{return Array.isArray(A)&&A.length<=3&&L9A.isLifecycleExtType(A[0])&&typeof A[1]==="function"};L9A.isDirectExtInput=UGQ;var XGQ=(A)=>{return!Array.isArray(A)};L9A.isPatchableExtMethod=XGQ;var wGQ=(A,Q,B)=>{let I={[H9A.ATTR_HTTP_ROUTE]:A.path};if(Q&M9A.SemconvStability.OLD)I[GGQ.ATTR_HTTP_METHOD]=A.method;if(Q&M9A.SemconvStability.STABLE)I[H9A.ATTR_HTTP_REQUEST_METHOD]=A.method;let C;if(B)I[R0.AttributeNames.HAPI_TYPE]=B9.HapiLayerType.PLUGIN,I[R0.AttributeNames.PLUGIN_NAME]=B,C=`${B}: route - ${A.path}`;else I[R0.AttributeNames.HAPI_TYPE]=B9.HapiLayerType.ROUTER,C=`route - ${A.path}`;return{attributes:I,name:C}};L9A.getRouteMetadata=wGQ;var KGQ=(A,Q)=>{if(Q)return{attributes:{[R0.AttributeNames.EXT_TYPE]:A,[R0.AttributeNames.HAPI_TYPE]:B9.HapiLayerType.EXT,[R0.AttributeNames.PLUGIN_NAME]:Q},name:`${Q}: ext - ${A}`};return{attributes:{[R0.AttributeNames.EXT_TYPE]:A,[R0.AttributeNames.HAPI_TYPE]:B9.HapiLayerType.EXT},name:`ext - ${A}`}};L9A.getExtMetadata=KGQ;var VGQ=(A)=>{if("plugin"in A){if("plugin"in A.plugin)return A.plugin.plugin;return A.plugin}return A};L9A.getPluginFromInput=VGQ});var k9A=X((T9A)=>{Object.defineProperty(T9A,"__esModule",{value:!0});T9A.HapiInstrumentation=void 0;var oB=j(),R9A=MA(),I9=s(),q9A=U9A(),C9=IM(),WE=j9A();class O9A extends I9.InstrumentationBase{_semconvStability;constructor(A={}){super(q9A.PACKAGE_NAME,q9A.PACKAGE_VERSION,A);this._semconvStability=(0,I9.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new I9.InstrumentationNodeModuleDefinition(C9.HapiComponentName,[">=17.0.0 <22"],(A)=>{let Q=A[Symbol.toStringTag]==="Module"?A.default:A;if(!(0,I9.isWrapped)(Q.server))this._wrap(Q,"server",this._getServerPatch.bind(this));if(!(0,I9.isWrapped)(Q.Server))this._wrap(Q,"Server",this._getServerPatch.bind(this));return Q},(A)=>{let Q=A[Symbol.toStringTag]==="Module"?A.default:A;this._massUnwrap([Q],["server","Server"])})}_getServerPatch(A){let Q=this,B=this;return function(C){let E=A.apply(this,[C]);return B._wrap(E,"route",(Y)=>{return Q._getServerRoutePatch.bind(Q)(Y)}),B._wrap(E,"ext",(Y)=>{return Q._getServerExtPatch.bind(Q)(Y)}),B._wrap(E,"register",Q._getServerRegisterPatch.bind(Q)),E}}_getServerRegisterPatch(A){let Q=this;return function(I,C){if(Array.isArray(I))for(let E of I){let Y=(0,WE.getPluginFromInput)(E);Q._wrapRegisterHandler(Y)}else{let E=(0,WE.getPluginFromInput)(I);Q._wrapRegisterHandler(E)}return A.apply(this,[I,C])}}_getServerExtPatch(A,Q){let B=this;return function(...C){if(Array.isArray(C[0])){let E=C[0];for(let Y=0;Y{return Q._getServerRoutePatch.bind(Q)(F,B)}),C._wrap(Y,"ext",(F)=>{return Q._getServerExtPatch.bind(Q)(F,B)}),I.call(this,Y,J)};A.register=E}_wrapExtMethods(A,Q,B){let I=this;if(A instanceof Array){for(let C=0;C{return async function(...E){if(oB.trace.getSpan(oB.context.active())===void 0)return await C.call(this,...E);let Y=(0,R9A.getRPCMetadata)(oB.context.active());if(Y?.type===R9A.RPCType.HTTP)Y.route=A.path;let J=(0,WE.getRouteMetadata)(A,B._semconvStability,Q),F=B.tracer.startSpan(J.name,{attributes:J.attributes});try{return await oB.context.with(oB.trace.setSpan(oB.context.active(),F),()=>C.call(this,...E))}catch(G){throw F.recordException(G),F.setStatus({code:oB.SpanStatusCode.ERROR,message:G.message}),G}finally{F.end()}}};if(typeof A.handler==="function")A.handler=I(A.handler);else if(typeof A.options==="function"){let C=A.options;A.options=function(E){let Y=C(E);if(typeof Y.handler==="function")Y.handler=I(Y.handler);return Y}}else if(typeof A.options?.handler==="function")A.options.handler=I(A.options.handler);return A}}T9A.HapiInstrumentation=O9A});var S9A=X((Dw)=>{Object.defineProperty(Dw,"__esModule",{value:!0});Dw.AttributeNames=Dw.HapiInstrumentation=void 0;var jGQ=k9A();Object.defineProperty(Dw,"HapiInstrumentation",{enumerable:!0,get:function(){return jGQ.HapiInstrumentation}});var RGQ=EM();Object.defineProperty(Dw,"AttributeNames",{enumerable:!0,get:function(){return RGQ.AttributeNames}})});var Uw=X((b9A)=>{Object.defineProperty(b9A,"__esModule",{value:!0});b9A.KoaLayerType=void 0;var gGQ;(function(A){A.ROUTER="router",A.MIDDLEWARE="middleware"})(gGQ=b9A.KoaLayerType||(b9A.KoaLayerType={}))});var c9A=X((m9A)=>{Object.defineProperty(m9A,"__esModule",{value:!0});m9A.PACKAGE_NAME=m9A.PACKAGE_VERSION=void 0;m9A.PACKAGE_VERSION="0.61.0";m9A.PACKAGE_NAME="@opentelemetry/instrumentation-koa"});var DM=X((u9A)=>{Object.defineProperty(u9A,"__esModule",{value:!0});u9A.AttributeNames=void 0;var hGQ;(function(A){A.KOA_TYPE="koa.type",A.KOA_NAME="koa.name"})(hGQ=u9A.AttributeNames||(u9A.AttributeNames={}))});var n9A=X((p9A)=>{Object.defineProperty(p9A,"__esModule",{value:!0});p9A.isLayerIgnored=p9A.getMiddlewareMetadata=void 0;var l9A=Uw(),Xw=DM(),fGQ=JA(),_GQ=(A,Q,B,I)=>{if(B)return{attributes:{[Xw.AttributeNames.KOA_NAME]:I?.toString(),[Xw.AttributeNames.KOA_TYPE]:l9A.KoaLayerType.ROUTER,[fGQ.ATTR_HTTP_ROUTE]:I?.toString()},name:A._matchedRouteName||`router - ${I}`};else return{attributes:{[Xw.AttributeNames.KOA_NAME]:Q.name??"middleware",[Xw.AttributeNames.KOA_TYPE]:l9A.KoaLayerType.MIDDLEWARE},name:`middleware - ${Q.name}`}};p9A.getMiddlewareMetadata=_GQ;var vGQ=(A,Q)=>{return!!(Array.isArray(Q?.ignoreLayersType)&&Q?.ignoreLayersType?.includes(A))};p9A.isLayerIgnored=vGQ});var s9A=X((o9A)=>{Object.defineProperty(o9A,"__esModule",{value:!0});o9A.kLayerPatched=void 0;o9A.kLayerPatched=Symbol("koa-layer-patched")});var EUA=X((IUA)=>{Object.defineProperty(IUA,"__esModule",{value:!0});IUA.KoaInstrumentation=void 0;var NC=j(),Y9=s(),r9A=Uw(),t9A=c9A(),e9A=n9A(),AUA=MA(),QUA=s9A();class BUA extends Y9.InstrumentationBase{constructor(A={}){super(t9A.PACKAGE_NAME,t9A.PACKAGE_VERSION,A)}init(){return new Y9.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],(A)=>{let Q=A[Symbol.toStringTag]==="Module"?A.default:A;if(Q==null)return Q;if((0,Y9.isWrapped)(Q.prototype.use))this._unwrap(Q.prototype,"use");return this._wrap(Q.prototype,"use",this._getKoaUsePatch.bind(this)),A},(A)=>{let Q=A[Symbol.toStringTag]==="Module"?A.default:A;if((0,Y9.isWrapped)(Q.prototype.use))this._unwrap(Q.prototype,"use")})}_getKoaUsePatch(A){let Q=this;return function(I){let C;if(I.router)C=Q._patchRouterDispatch(I);else C=Q._patchLayer(I,!1);return A.apply(this,[C])}}_patchRouterDispatch(A){NC.diag.debug("Patching @koa/router dispatch");let B=A.router?.stack??[];for(let I of B){let{path:C,stack:E}=I;for(let Y=0;Y{if(NC.trace.getSpan(NC.context.active())===void 0)return A(C,E);let J=(0,e9A.getMiddlewareMetadata)(C,A,Q,B),F=this.tracer.startSpan(J.name,{attributes:J.attributes}),G=(0,AUA.getRPCMetadata)(NC.context.active());if(G?.type===AUA.RPCType.HTTP&&C._matchedRoute)G.route=C._matchedRoute.toString();let{requestHook:D}=this.getConfig();if(D)(0,Y9.safeExecuteInTheMiddle)(()=>D(F,{context:C,middlewareLayer:A,layerType:I}),(W)=>{if(W)NC.diag.error("koa instrumentation: request hook failed",W)},!0);let Z=NC.trace.setSpan(NC.context.active(),F);return NC.context.with(Z,async()=>{try{return await A(C,E)}catch(W){throw F.recordException(W),W}finally{F.end()}})}}}IUA.KoaInstrumentation=BUA});var YUA=X((J9)=>{Object.defineProperty(J9,"__esModule",{value:!0});J9.KoaLayerType=J9.AttributeNames=J9.KoaInstrumentation=void 0;var bGQ=EUA();Object.defineProperty(J9,"KoaInstrumentation",{enumerable:!0,get:function(){return bGQ.KoaInstrumentation}});var mGQ=DM();Object.defineProperty(J9,"AttributeNames",{enumerable:!0,get:function(){return mGQ.AttributeNames}});var dGQ=Uw();Object.defineProperty(J9,"KoaLayerType",{enumerable:!0,get:function(){return dGQ.KoaLayerType}})});var WM=X((XUA)=>{Object.defineProperty(XUA,"__esModule",{value:!0});XUA.ConnectNames=XUA.ConnectTypes=XUA.AttributeNames=void 0;var lGQ;(function(A){A.CONNECT_TYPE="connect.type",A.CONNECT_NAME="connect.name"})(lGQ=XUA.AttributeNames||(XUA.AttributeNames={}));var pGQ;(function(A){A.MIDDLEWARE="middleware",A.REQUEST_HANDLER="request_handler"})(pGQ=XUA.ConnectTypes||(XUA.ConnectTypes={}));var iGQ;(function(A){A.MIDDLEWARE="middleware",A.REQUEST_HANDLER="request handler"})(iGQ=XUA.ConnectNames||(XUA.ConnectNames={}))});var VUA=X((wUA)=>{Object.defineProperty(wUA,"__esModule",{value:!0});wUA.PACKAGE_NAME=wUA.PACKAGE_VERSION=void 0;wUA.PACKAGE_VERSION="0.56.0";wUA.PACKAGE_NAME="@opentelemetry/instrumentation-connect"});var HUA=X((zUA)=>{Object.defineProperty(zUA,"__esModule",{value:!0});zUA._LAYERS_STORE_PROPERTY=void 0;zUA._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")});var NUA=X((MUA)=>{Object.defineProperty(MUA,"__esModule",{value:!0});MUA.generateRoute=MUA.replaceCurrentStackRoute=MUA.addNewStackLayer=void 0;var oGQ=j(),O0=HUA(),aGQ=(A)=>{if(Array.isArray(A[O0._LAYERS_STORE_PROPERTY])===!1)Object.defineProperty(A,O0._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]});A[O0._LAYERS_STORE_PROPERTY].push("/");let Q=A[O0._LAYERS_STORE_PROPERTY].length;return()=>{if(Q===A[O0._LAYERS_STORE_PROPERTY].length)A[O0._LAYERS_STORE_PROPERTY].pop();else oGQ.diag.warn("Connect: Trying to pop the stack multiple time")}};MUA.addNewStackLayer=aGQ;var sGQ=(A,Q)=>{if(Q)A[O0._LAYERS_STORE_PROPERTY].splice(-1,1,Q)};MUA.replaceCurrentStackRoute=sGQ;var rGQ=(A)=>{return A[O0._LAYERS_STORE_PROPERTY].reduce((Q,B)=>Q.replace(/\/+$/,"")+B)};MUA.generateRoute=rGQ});var PUA=X((OUA)=>{Object.defineProperty(OUA,"__esModule",{value:!0});OUA.ConnectInstrumentation=OUA.ANONYMOUS_NAME=void 0;var ADQ=j(),jUA=MA(),jG=WM(),RUA=VUA(),ww=s(),QDQ=JA(),UM=NUA();OUA.ANONYMOUS_NAME="anonymous";class qUA extends ww.InstrumentationBase{constructor(A={}){super(RUA.PACKAGE_NAME,RUA.PACKAGE_VERSION,A)}init(){return[new ww.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],(A)=>{return this._patchConstructor(A)})]}_patchApp(A){if(!(0,ww.isWrapped)(A.use))this._wrap(A,"use",this._patchUse.bind(this));if(!(0,ww.isWrapped)(A.handle))this._wrap(A,"handle",this._patchHandle.bind(this))}_patchConstructor(A){let Q=this;return function(...B){let I=A.apply(this,B);return Q._patchApp(I),I}}_patchNext(A,Q){return function(I){let C=A.apply(this,[I]);return Q(),C}}_startSpan(A,Q){let B,I,C;if(A)B=jG.ConnectTypes.REQUEST_HANDLER,C=jG.ConnectNames.REQUEST_HANDLER,I=A;else B=jG.ConnectTypes.MIDDLEWARE,C=jG.ConnectNames.MIDDLEWARE,I=Q.name||OUA.ANONYMOUS_NAME;let E=`${C} - ${I}`,Y={attributes:{[QDQ.ATTR_HTTP_ROUTE]:A.length>0?A:"/",[jG.AttributeNames.CONNECT_TYPE]:B,[jG.AttributeNames.CONNECT_NAME]:I}};return this.tracer.startSpan(E,Y)}_patchMiddleware(A,Q){let B=this,I=Q.length===4;function C(){if(!B.isEnabled())return Q.apply(this,arguments);let[E,Y,J]=I?[1,2,3]:[0,1,2],F=arguments[E],G=arguments[Y],D=arguments[J];(0,UM.replaceCurrentStackRoute)(F,A);let Z=(0,jUA.getRPCMetadata)(ADQ.context.active());if(A&&Z?.type===jUA.RPCType.HTTP)Z.route=(0,UM.generateRoute)(F);let W="";if(A)W=`request handler - ${A}`;else W=`middleware - ${Q.name||OUA.ANONYMOUS_NAME}`;let U=B._startSpan(A,Q);B._diag.debug("start span",W);let w=!1;function K(){if(!w)w=!0,B._diag.debug(`finishing span ${U.name}`),U.end();else B._diag.debug(`span ${U.name} - already finished`);G.removeListener("close",K)}return G.addListener("close",K),arguments[J]=B._patchNext(D,K),Q.apply(this,arguments)}return Object.defineProperty(C,"length",{value:Q.length,writable:!1,configurable:!0}),C}_patchUse(A){let Q=this;return function(...B){let I=B[B.length-1],C=B[B.length-2]||"";return B[B.length-1]=Q._patchMiddleware(C,I),A.apply(this,B)}}_patchHandle(A){let Q=this;return function(){let[B,I]=[0,2],C=arguments[B],E=arguments[I],Y=(0,UM.addNewStackLayer)(C);if(typeof E==="function")arguments[I]=Q._patchOut(E,Y);return A.apply(this,arguments)}}_patchOut(A,Q){return function(...I){return Q(),Reflect.apply(A,this,I)}}}OUA.ConnectInstrumentation=qUA});var SUA=X((IJ)=>{Object.defineProperty(IJ,"__esModule",{value:!0});IJ.ConnectTypes=IJ.ConnectNames=IJ.AttributeNames=IJ.ANONYMOUS_NAME=IJ.ConnectInstrumentation=void 0;var kUA=PUA();Object.defineProperty(IJ,"ConnectInstrumentation",{enumerable:!0,get:function(){return kUA.ConnectInstrumentation}});Object.defineProperty(IJ,"ANONYMOUS_NAME",{enumerable:!0,get:function(){return kUA.ANONYMOUS_NAME}});var wM=WM();Object.defineProperty(IJ,"AttributeNames",{enumerable:!0,get:function(){return wM.AttributeNames}});Object.defineProperty(IJ,"ConnectNames",{enumerable:!0,get:function(){return wM.ConnectNames}});Object.defineProperty(IJ,"ConnectTypes",{enumerable:!0,get:function(){return wM.ConnectTypes}})});var xUA=X((_UA)=>{Object.defineProperty(_UA,"__esModule",{value:!0});_UA.DB_SYSTEM_VALUE_MSSQL=_UA.ATTR_NET_PEER_PORT=_UA.ATTR_NET_PEER_NAME=_UA.ATTR_DB_USER=_UA.ATTR_DB_SYSTEM=_UA.ATTR_DB_STATEMENT=_UA.ATTR_DB_SQL_TABLE=_UA.ATTR_DB_NAME=void 0;_UA.ATTR_DB_NAME="db.name";_UA.ATTR_DB_SQL_TABLE="db.sql.table";_UA.ATTR_DB_STATEMENT="db.statement";_UA.ATTR_DB_SYSTEM="db.system";_UA.ATTR_DB_USER="db.user";_UA.ATTR_NET_PEER_NAME="net.peer.name";_UA.ATTR_NET_PEER_PORT="net.peer.port";_UA.DB_SYSTEM_VALUE_MSSQL="mssql"});var dUA=X((bUA)=>{Object.defineProperty(bUA,"__esModule",{value:!0});bUA.once=bUA.getSpanName=void 0;function ZDQ(A,Q,B,I){if(A==="execBulkLoad"&&I&&Q)return`${A} ${I} ${Q}`;if(A==="callProcedure"){if(Q)return`${A} ${B} ${Q}`;return`${A} ${B}`}if(Q)return`${A} ${Q}`;return`${A}`}bUA.getSpanName=ZDQ;var WDQ=(A)=>{let Q=!1;return(...B)=>{if(Q)return;return Q=!0,A(...B)}};bUA.once=WDQ});var lUA=X((cUA)=>{Object.defineProperty(cUA,"__esModule",{value:!0});cUA.PACKAGE_NAME=cUA.PACKAGE_VERSION=void 0;cUA.PACKAGE_VERSION="0.32.0";cUA.PACKAGE_NAME="@opentelemetry/instrumentation-tedious"});var rUA=X((aUA)=>{Object.defineProperty(aUA,"__esModule",{value:!0});aUA.TediousInstrumentation=aUA.INJECTED_CTX=void 0;var RG=j(),wDQ=H("events"),jC=s(),CJ=JA(),T0=xUA(),pUA=dUA(),iUA=lUA(),oUA=Symbol("opentelemetry.instrumentation-tedious.current-database");aUA.INJECTED_CTX=Symbol("opentelemetry.instrumentation-tedious.context-info-injected");var nUA=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function Kw(A){Object.defineProperty(this,oUA,{value:A,writable:!0})}class VM extends jC.InstrumentationBase{static COMPONENT="tedious";_netSemconvStability;_dbSemconvStability;constructor(A={}){super(iUA.PACKAGE_NAME,iUA.PACKAGE_VERSION,A);this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,jC.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,jC.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new jC.InstrumentationNodeModuleDefinition(VM.COMPONENT,[">=1.11.0 <20"],(A)=>{let Q=A.Connection.prototype;for(let B of nUA){if((0,jC.isWrapped)(Q[B]))this._unwrap(Q,B);this._wrap(Q,B,this._patchQuery(B,A))}if((0,jC.isWrapped)(Q.connect))this._unwrap(Q,"connect");return this._wrap(Q,"connect",this._patchConnect),A},(A)=>{if(A===void 0)return;let Q=A.Connection.prototype;for(let B of nUA)this._unwrap(Q,B);this._unwrap(Q,"connect")})]}_patchConnect(A){return function(){return Kw.call(this,this.config?.options?.database),this.removeListener("databaseChange",Kw),this.on("databaseChange",Kw),this.once("end",()=>{this.removeListener("databaseChange",Kw)}),A.apply(this,arguments)}}_buildTraceparent(A){let Q=A.spanContext();return`00-${Q.traceId}-${Q.spanId}-0${Number(Q.traceFlags||RG.TraceFlags.NONE).toString(16)}`}_injectContextInfo(A,Q,B){return new Promise((I)=>{try{let E=new Q.Request("set context_info @opentelemetry_traceparent",(J)=>{I()});Object.defineProperty(E,aUA.INJECTED_CTX,{value:!0});let Y=Buffer.from(B,"utf8");E.addParameter("opentelemetry_traceparent",Q.TYPES.VarBinary,Y,{length:Y.length}),A.execSql(E)}catch{I()}})}_shouldInjectFor(A){return A==="execSql"||A==="execSqlBatch"||A==="callProcedure"||A==="execute"}_patchQuery(A,Q){return(B)=>{let I=this;function C(E){if(E?.[aUA.INJECTED_CTX])return B.apply(this,arguments);if(!(E instanceof wDQ.EventEmitter))return I._diag.warn(`Unexpected invocation of patched ${A} method. Span not recorded`),B.apply(this,arguments);let Y=0,J=0,F=()=>J++,G=()=>Y++,D=this[oUA],Z=((L)=>{if(L.sqlTextOrProcedure==="sp_prepare"&&L.parametersByName?.stmt?.value)return L.parametersByName.stmt.value;return L.sqlTextOrProcedure})(E),W={};if(I._dbSemconvStability&jC.SemconvStability.OLD)W[T0.ATTR_DB_SYSTEM]=T0.DB_SYSTEM_VALUE_MSSQL,W[T0.ATTR_DB_NAME]=D,W[T0.ATTR_DB_USER]=this.config?.userName??this.config?.authentication?.options?.userName,W[T0.ATTR_DB_STATEMENT]=Z,W[T0.ATTR_DB_SQL_TABLE]=E.table;if(I._dbSemconvStability&jC.SemconvStability.STABLE)W[CJ.ATTR_DB_NAMESPACE]=D,W[CJ.ATTR_DB_SYSTEM_NAME]=CJ.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,W[CJ.ATTR_DB_QUERY_TEXT]=Z,W[CJ.ATTR_DB_COLLECTION_NAME]=E.table;if(I._netSemconvStability&jC.SemconvStability.OLD)W[T0.ATTR_NET_PEER_NAME]=this.config?.server,W[T0.ATTR_NET_PEER_PORT]=this.config?.options?.port;if(I._netSemconvStability&jC.SemconvStability.STABLE)W[CJ.ATTR_SERVER_ADDRESS]=this.config?.server,W[CJ.ATTR_SERVER_PORT]=this.config?.options?.port;let U=I.tracer.startSpan((0,pUA.getSpanName)(A,D,Z,E.table),{kind:RG.SpanKind.CLIENT,attributes:W}),w=(0,pUA.once)((L)=>{if(E.removeListener("done",F),E.removeListener("doneInProc",F),E.removeListener("doneProc",G),E.removeListener("error",w),this.removeListener("end",w),U.setAttribute("tedious.procedure_count",Y),U.setAttribute("tedious.statement_count",J),L)U.setStatus({code:RG.SpanStatusCode.ERROR,message:L.message});U.end()});if(E.on("done",F),E.on("doneInProc",F),E.on("doneProc",G),E.once("error",w),this.on("end",w),typeof E.callback==="function")I._wrap(E,"callback",I._patchCallbackQuery(w));else I._diag.error("Expected request.callback to be a function");let K=()=>{return RG.context.with(RG.trace.setSpan(RG.context.active(),U),B,this,...arguments)};if(!(I.getConfig().enableTraceContextPropagation&&I._shouldInjectFor(A)))return K();let M=I._buildTraceparent(U);I._injectContextInfo(this,Q,M).finally(K)}return Object.defineProperty(C,"length",{value:B.length,writable:!1}),C}}_patchCallbackQuery(A){return(Q)=>{return function(B,I,C){return A(B),Q.apply(this,arguments)}}}}aUA.TediousInstrumentation=VM});var tUA=X((zM)=>{Object.defineProperty(zM,"__esModule",{value:!0});zM.TediousInstrumentation=void 0;var KDQ=rUA();Object.defineProperty(zM,"TediousInstrumentation",{enumerable:!0,get:function(){return KDQ.TediousInstrumentation}})});var E1A=X((I1A)=>{Object.defineProperty(I1A,"__esModule",{value:!0});I1A.PACKAGE_NAME=I1A.PACKAGE_VERSION=void 0;I1A.PACKAGE_VERSION="0.56.0";I1A.PACKAGE_NAME="@opentelemetry/instrumentation-generic-pool"});var D1A=X((F1A)=>{Object.defineProperty(F1A,"__esModule",{value:!0});F1A.GenericPoolInstrumentation=void 0;var qG=j(),EJ=s(),Y1A=E1A(),$M="generic-pool";class J1A extends EJ.InstrumentationBase{_isDisabled=!1;constructor(A={}){super(Y1A.PACKAGE_NAME,Y1A.PACKAGE_VERSION,A)}init(){return[new EJ.InstrumentationNodeModuleDefinition($M,[">=3.0.0 <4"],(A)=>{let Q=A.Pool;if((0,EJ.isWrapped)(Q.prototype.acquire))this._unwrap(Q.prototype,"acquire");return this._wrap(Q.prototype,"acquire",this._acquirePatcher.bind(this)),A},(A)=>{let Q=A.Pool;return this._unwrap(Q.prototype,"acquire"),A}),new EJ.InstrumentationNodeModuleDefinition($M,[">=2.4.0 <3"],(A)=>{let Q=A.Pool;if((0,EJ.isWrapped)(Q.prototype.acquire))this._unwrap(Q.prototype,"acquire");return this._wrap(Q.prototype,"acquire",this._acquireWithCallbacksPatcher.bind(this)),A},(A)=>{let Q=A.Pool;return this._unwrap(Q.prototype,"acquire"),A}),new EJ.InstrumentationNodeModuleDefinition($M,[">=2.0.0 <2.4"],(A)=>{if(this._isDisabled=!1,(0,EJ.isWrapped)(A.Pool))this._unwrap(A,"Pool");return this._wrap(A,"Pool",this._poolWrapper.bind(this)),A},(A)=>{return this._isDisabled=!0,A})]}_acquirePatcher(A){let Q=this;return function(...I){let C=qG.context.active(),E=Q.tracer.startSpan("generic-pool.acquire",{},C);return qG.context.with(qG.trace.setSpan(C,E),()=>{return A.call(this,...I).then((Y)=>{return E.end(),Y},(Y)=>{throw E.recordException(Y),E.end(),Y})})}}_poolWrapper(A){let Q=this;return function(){let I=A.apply(this,arguments);return Q._wrap(I,"acquire",Q._acquireWithCallbacksPatcher.bind(Q)),I}}_acquireWithCallbacksPatcher(A){let Q=this;return function(I,C){if(Q._isDisabled)return A.call(this,I,C);let E=qG.context.active(),Y=Q.tracer.startSpan("generic-pool.acquire",{},E);return qG.context.with(qG.trace.setSpan(E,Y),()=>{A.call(this,(J,F)=>{if(Y.end(),I)return I(J,F)},C)})}}}F1A.GenericPoolInstrumentation=J1A});var Z1A=X((HM)=>{Object.defineProperty(HM,"__esModule",{value:!0});HM.GenericPoolInstrumentation=void 0;var MDQ=D1A();Object.defineProperty(HM,"GenericPoolInstrumentation",{enumerable:!0,get:function(){return MDQ.GenericPoolInstrumentation}})});var MM=X((K1A)=>{Object.defineProperty(K1A,"__esModule",{value:!0});K1A.ATTR_NET_PEER_PORT=K1A.ATTR_NET_PEER_NAME=K1A.ATTR_MESSAGING_SYSTEM=K1A.ATTR_MESSAGING_OPERATION=void 0;K1A.ATTR_MESSAGING_OPERATION="messaging.operation";K1A.ATTR_MESSAGING_SYSTEM="messaging.system";K1A.ATTR_NET_PEER_NAME="net.peer.name";K1A.ATTR_NET_PEER_PORT="net.peer.port"});var LM=X((z1A)=>{Object.defineProperty(z1A,"__esModule",{value:!0});z1A.ATTR_MESSAGING_CONVERSATION_ID=z1A.OLD_ATTR_MESSAGING_MESSAGE_ID=z1A.MESSAGING_DESTINATION_KIND_VALUE_TOPIC=z1A.ATTR_MESSAGING_URL=z1A.ATTR_MESSAGING_PROTOCOL_VERSION=z1A.ATTR_MESSAGING_PROTOCOL=z1A.MESSAGING_OPERATION_VALUE_PROCESS=z1A.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY=z1A.ATTR_MESSAGING_DESTINATION_KIND=z1A.ATTR_MESSAGING_DESTINATION=void 0;z1A.ATTR_MESSAGING_DESTINATION="messaging.destination";z1A.ATTR_MESSAGING_DESTINATION_KIND="messaging.destination_kind";z1A.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY="messaging.rabbitmq.routing_key";z1A.MESSAGING_OPERATION_VALUE_PROCESS="process";z1A.ATTR_MESSAGING_PROTOCOL="messaging.protocol";z1A.ATTR_MESSAGING_PROTOCOL_VERSION="messaging.protocol_version";z1A.ATTR_MESSAGING_URL="messaging.url";z1A.MESSAGING_DESTINATION_KIND_VALUE_TOPIC="topic";z1A.OLD_ATTR_MESSAGING_MESSAGE_ID="messaging.message_id";z1A.ATTR_MESSAGING_CONVERSATION_ID="messaging.conversation_id"});var NM=X((M1A)=>{Object.defineProperty(M1A,"__esModule",{value:!0});M1A.DEFAULT_CONFIG=M1A.EndOperation=void 0;var _DQ;(function(A){A.AutoAck="auto ack",A.Ack="ack",A.AckAll="ackAll",A.Reject="reject",A.Nack="nack",A.NackAll="nackAll",A.ChannelClosed="channel closed",A.ChannelError="channel error",A.InstrumentationTimeout="instrumentation timeout"})(_DQ=M1A.EndOperation||(M1A.EndOperation={}));M1A.DEFAULT_CONFIG={consumeTimeoutMs:60000,useLinksForConsume:!1}});var T1A=X((q1A)=>{Object.defineProperty(q1A,"__esModule",{value:!0});q1A.isConfirmChannelTracing=q1A.unmarkConfirmChannelTracing=q1A.markConfirmChannelTracing=q1A.getConnectionAttributesFromUrl=q1A.getConnectionAttributesFromServer=q1A.normalizeExchange=q1A.CONNECTION_ATTRIBUTES=q1A.CHANNEL_CONSUME_TIMEOUT_TIMER=q1A.CHANNEL_SPANS_NOT_ENDED=q1A.MESSAGE_STORED_SPAN=void 0;var jM=j(),P0=s(),Vw=JA(),F9=MM(),zw=LM();q1A.MESSAGE_STORED_SPAN=Symbol("opentelemetry.amqplib.message.stored-span");q1A.CHANNEL_SPANS_NOT_ENDED=Symbol("opentelemetry.amqplib.channel.spans-not-ended");q1A.CHANNEL_CONSUME_TIMEOUT_TIMER=Symbol("opentelemetry.amqplib.channel.consumer-timeout-timer");q1A.CONNECTION_ATTRIBUTES=Symbol("opentelemetry.amqplib.connection.attributes");var RM=(0,jM.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel"),vDQ=(A)=>A!==""?A:"";q1A.normalizeExchange=vDQ;var xDQ=(A)=>{return A.replace(/:[^:@/]*@/,":***@")},N1A=(A,Q)=>{return A||(Q==="AMQP"?5672:5671)},j1A=(A)=>{let Q=A||"amqp";return(Q.endsWith(":")?Q.substring(0,Q.length-1):Q).toUpperCase()},R1A=(A)=>{return A||"localhost"},RC=(A,Q,B,I)=>{if(B)return{[Q]:B};else return jM.diag.error(`amqplib instrumentation: could not extract connection attribute ${I} from user supplied url`,{url:A}),{}},bDQ=(A)=>{let Q=A.serverProperties.product?.toLowerCase?.();if(Q)return{[F9.ATTR_MESSAGING_SYSTEM]:Q};else return{}};q1A.getConnectionAttributesFromServer=bDQ;var mDQ=(A,Q)=>{let B={[zw.ATTR_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if(A=A||"amqp://localhost",typeof A==="object"){let I=A,C=j1A(I?.protocol);Object.assign(B,{...RC(A,zw.ATTR_MESSAGING_PROTOCOL,C,"protocol")});let E=R1A(I?.hostname);if(Q&P0.SemconvStability.OLD)Object.assign(B,{...RC(A,F9.ATTR_NET_PEER_NAME,E,"hostname")});if(Q&P0.SemconvStability.STABLE)Object.assign(B,{...RC(A,Vw.ATTR_SERVER_ADDRESS,E,"hostname")});let Y=N1A(I.port,C);if(Q&P0.SemconvStability.OLD)Object.assign(B,RC(A,F9.ATTR_NET_PEER_PORT,Y,"port"));if(Q&P0.SemconvStability.STABLE)Object.assign(B,RC(A,Vw.ATTR_SERVER_PORT,Y,"port"))}else{let I=xDQ(A);B[zw.ATTR_MESSAGING_URL]=I;try{let C=new URL(I),E=j1A(C.protocol);Object.assign(B,{...RC(I,zw.ATTR_MESSAGING_PROTOCOL,E,"protocol")});let Y=R1A(C.hostname);if(Q&P0.SemconvStability.OLD)Object.assign(B,{...RC(I,F9.ATTR_NET_PEER_NAME,Y,"hostname")});if(Q&P0.SemconvStability.STABLE)Object.assign(B,{...RC(I,Vw.ATTR_SERVER_ADDRESS,Y,"hostname")});let J=N1A(C.port?parseInt(C.port):void 0,E);if(Q&P0.SemconvStability.OLD)Object.assign(B,RC(I,F9.ATTR_NET_PEER_PORT,J,"port"));if(Q&P0.SemconvStability.STABLE)Object.assign(B,RC(I,Vw.ATTR_SERVER_PORT,J,"port"))}catch(C){jM.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:I,err:C})}}return B};q1A.getConnectionAttributesFromUrl=mDQ;var dDQ=(A)=>{return A.setValue(RM,!0)};q1A.markConfirmChannelTracing=dDQ;var cDQ=(A)=>{return A.deleteValue(RM)};q1A.unmarkConfirmChannelTracing=cDQ;var uDQ=(A)=>{return A.getValue(RM)===!0};q1A.isConfirmChannelTracing=uDQ});var S1A=X((P1A)=>{Object.defineProperty(P1A,"__esModule",{value:!0});P1A.PACKAGE_NAME=P1A.PACKAGE_VERSION=void 0;P1A.PACKAGE_VERSION="0.60.0";P1A.PACKAGE_NAME="@opentelemetry/instrumentation-amqplib"});var _1A=X((h1A)=>{Object.defineProperty(h1A,"__esModule",{value:!0});h1A.AmqplibInstrumentation=void 0;var cA=j(),$w=MA(),wA=s(),AZQ=MM(),aB=LM(),CB=NM(),nA=T1A(),g1A=S1A(),Hw=[">=0.5.5 <1"];class y1A extends wA.InstrumentationBase{_netSemconvStability;constructor(A={}){super(g1A.PACKAGE_NAME,g1A.PACKAGE_VERSION,{...CB.DEFAULT_CONFIG,...A});this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,wA.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(A={}){super.setConfig({...CB.DEFAULT_CONFIG,...A})}init(){let A=new wA.InstrumentationNodeModuleFile("amqplib/lib/channel_model.js",Hw,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),Q=new wA.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",Hw,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),B=new wA.InstrumentationNodeModuleFile("amqplib/lib/connect.js",Hw,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new wA.InstrumentationNodeModuleDefinition("amqplib",Hw,void 0,void 0,[A,B,Q])}patchConnect(A){if(A=this.unpatchConnect(A),!(0,wA.isWrapped)(A.connect))this._wrap(A,"connect",this.getConnectPatch.bind(this));return A}unpatchConnect(A){if((0,wA.isWrapped)(A.connect))this._unwrap(A,"connect");return A}patchChannelModel(A,Q){if(!(0,wA.isWrapped)(A.Channel.prototype.publish))this._wrap(A.Channel.prototype,"publish",this.getPublishPatch.bind(this,Q));if(!(0,wA.isWrapped)(A.Channel.prototype.consume))this._wrap(A.Channel.prototype,"consume",this.getConsumePatch.bind(this,Q));if(!(0,wA.isWrapped)(A.Channel.prototype.ack))this._wrap(A.Channel.prototype,"ack",this.getAckPatch.bind(this,!1,CB.EndOperation.Ack));if(!(0,wA.isWrapped)(A.Channel.prototype.nack))this._wrap(A.Channel.prototype,"nack",this.getAckPatch.bind(this,!0,CB.EndOperation.Nack));if(!(0,wA.isWrapped)(A.Channel.prototype.reject))this._wrap(A.Channel.prototype,"reject",this.getAckPatch.bind(this,!0,CB.EndOperation.Reject));if(!(0,wA.isWrapped)(A.Channel.prototype.ackAll))this._wrap(A.Channel.prototype,"ackAll",this.getAckAllPatch.bind(this,!1,CB.EndOperation.AckAll));if(!(0,wA.isWrapped)(A.Channel.prototype.nackAll))this._wrap(A.Channel.prototype,"nackAll",this.getAckAllPatch.bind(this,!0,CB.EndOperation.NackAll));if(!(0,wA.isWrapped)(A.Channel.prototype.emit))this._wrap(A.Channel.prototype,"emit",this.getChannelEmitPatch.bind(this));if(!(0,wA.isWrapped)(A.ConfirmChannel.prototype.publish))this._wrap(A.ConfirmChannel.prototype,"publish",this.getConfirmedPublishPatch.bind(this,Q));return A}unpatchChannelModel(A){if((0,wA.isWrapped)(A.Channel.prototype.publish))this._unwrap(A.Channel.prototype,"publish");if((0,wA.isWrapped)(A.Channel.prototype.consume))this._unwrap(A.Channel.prototype,"consume");if((0,wA.isWrapped)(A.Channel.prototype.ack))this._unwrap(A.Channel.prototype,"ack");if((0,wA.isWrapped)(A.Channel.prototype.nack))this._unwrap(A.Channel.prototype,"nack");if((0,wA.isWrapped)(A.Channel.prototype.reject))this._unwrap(A.Channel.prototype,"reject");if((0,wA.isWrapped)(A.Channel.prototype.ackAll))this._unwrap(A.Channel.prototype,"ackAll");if((0,wA.isWrapped)(A.Channel.prototype.nackAll))this._unwrap(A.Channel.prototype,"nackAll");if((0,wA.isWrapped)(A.Channel.prototype.emit))this._unwrap(A.Channel.prototype,"emit");if((0,wA.isWrapped)(A.ConfirmChannel.prototype.publish))this._unwrap(A.ConfirmChannel.prototype,"publish");return A}getConnectPatch(A){let Q=this;return function(I,C,E){return A.call(this,I,C,function(Y,J){if(Y==null){let F=(0,nA.getConnectionAttributesFromUrl)(I,Q._netSemconvStability),G=(0,nA.getConnectionAttributesFromServer)(J);J[nA.CONNECTION_ATTRIBUTES]={...F,...G}}E.apply(this,arguments)})}}getChannelEmitPatch(A){let Q=this;return function(I){if(I==="close"){Q.endAllSpansOnChannel(this,!0,CB.EndOperation.ChannelClosed,void 0);let C=this[nA.CHANNEL_CONSUME_TIMEOUT_TIMER];if(C)clearInterval(C);this[nA.CHANNEL_CONSUME_TIMEOUT_TIMER]=void 0}else if(I==="error")Q.endAllSpansOnChannel(this,!0,CB.EndOperation.ChannelError,void 0);return A.apply(this,arguments)}}getAckAllPatch(A,Q,B){let I=this;return function(E){return I.endAllSpansOnChannel(this,A,Q,E),B.apply(this,arguments)}}getAckPatch(A,Q,B){let I=this;return function(E,Y,J){let F=this,G=Q===CB.EndOperation.Reject?Y:J,D=F[nA.CHANNEL_SPANS_NOT_ENDED]??[],Z=D.findIndex((W)=>W.msg===E);if(Z<0)I.endConsumerSpan(E,A,Q,G);else if(Q!==CB.EndOperation.Reject&&Y){for(let W=0;W<=Z;W++)I.endConsumerSpan(D[W].msg,A,Q,G);D.splice(0,Z+1)}else I.endConsumerSpan(E,A,Q,G),D.splice(Z,1);return B.apply(this,arguments)}}getConsumePatch(A,Q){let B=this;return function(C,E,Y){let J=this;if(!Object.prototype.hasOwnProperty.call(J,nA.CHANNEL_SPANS_NOT_ENDED)){let{consumeTimeoutMs:G}=B.getConfig();if(G){let D=setInterval(()=>{B.checkConsumeTimeoutOnChannel(J)},G);D.unref(),J[nA.CHANNEL_CONSUME_TIMEOUT_TIMER]=D}J[nA.CHANNEL_SPANS_NOT_ENDED]=[]}let F=function(G){if(!G)return E.call(this,G);let D=G.properties.headers??{},Z=cA.propagation.extract(cA.ROOT_CONTEXT,D),W=G.fields?.exchange,U;if(B._config.useLinksForConsume){let z=Z?cA.trace.getSpan(Z)?.spanContext():void 0;if(Z=void 0,z)U=[{context:z}]}let w=B.tracer.startSpan(`${C} process`,{kind:cA.SpanKind.CONSUMER,attributes:{...J?.connection?.[nA.CONNECTION_ATTRIBUTES],[aB.ATTR_MESSAGING_DESTINATION]:W,[aB.ATTR_MESSAGING_DESTINATION_KIND]:aB.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[aB.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:G.fields?.routingKey,[AZQ.ATTR_MESSAGING_OPERATION]:aB.MESSAGING_OPERATION_VALUE_PROCESS,[aB.OLD_ATTR_MESSAGING_MESSAGE_ID]:G?.properties.messageId,[aB.ATTR_MESSAGING_CONVERSATION_ID]:G?.properties.correlationId},links:U},Z),{consumeHook:K}=B.getConfig();if(K)(0,wA.safeExecuteInTheMiddle)(()=>K(w,{moduleVersion:A,msg:G}),(z)=>{if(z)cA.diag.error("amqplib instrumentation: consumerHook error",z)},!0);if(!Y?.noAck)J[nA.CHANNEL_SPANS_NOT_ENDED].push({msg:G,timeOfConsume:(0,$w.hrTime)()}),G[nA.MESSAGE_STORED_SPAN]=w;let V=Z?Z:cA.ROOT_CONTEXT;if(cA.context.with(cA.trace.setSpan(V,w),()=>{E.call(this,G)}),Y?.noAck)B.callConsumeEndHook(w,G,!1,CB.EndOperation.AutoAck),w.end()};return arguments[1]=F,Q.apply(this,arguments)}}getConfirmedPublishPatch(A,Q){let B=this;return function(C,E,Y,J,F){let G=this,{span:D,modifiedOptions:Z}=B.createPublishSpan(B,C,E,G,J),{publishHook:W}=B.getConfig();if(W)(0,wA.safeExecuteInTheMiddle)(()=>W(D,{moduleVersion:A,exchange:C,routingKey:E,content:Y,options:Z,isConfirmChannel:!0}),(V)=>{if(V)cA.diag.error("amqplib instrumentation: publishHook error",V)},!0);let U=function(V,z){try{F?.call(this,V,z)}finally{let{publishConfirmHook:M}=B.getConfig();if(M)(0,wA.safeExecuteInTheMiddle)(()=>M(D,{moduleVersion:A,exchange:C,routingKey:E,content:Y,options:J,isConfirmChannel:!0,confirmError:V}),(L)=>{if(L)cA.diag.error("amqplib instrumentation: publishConfirmHook error",L)},!0);if(V)D.setStatus({code:cA.SpanStatusCode.ERROR,message:"message confirmation has been nack'ed"});D.end()}},w=(0,nA.markConfirmChannelTracing)(cA.context.active()),K=[...arguments];return K[3]=Z,K[4]=cA.context.bind((0,nA.unmarkConfirmChannelTracing)(cA.trace.setSpan(w,D)),U),cA.context.with(w,Q.bind(this,...K))}}getPublishPatch(A,Q){let B=this;return function(C,E,Y,J){if((0,nA.isConfirmChannelTracing)(cA.context.active()))return Q.apply(this,arguments);else{let F=this,{span:G,modifiedOptions:D}=B.createPublishSpan(B,C,E,F,J),{publishHook:Z}=B.getConfig();if(Z)(0,wA.safeExecuteInTheMiddle)(()=>Z(G,{moduleVersion:A,exchange:C,routingKey:E,content:Y,options:D,isConfirmChannel:!1}),(w)=>{if(w)cA.diag.error("amqplib instrumentation: publishHook error",w)},!0);let W=[...arguments];W[3]=D;let U=Q.apply(this,W);return G.end(),U}}}createPublishSpan(A,Q,B,I,C){let E=(0,nA.normalizeExchange)(Q),Y=A.tracer.startSpan(`publish ${E}`,{kind:cA.SpanKind.PRODUCER,attributes:{...I.connection[nA.CONNECTION_ATTRIBUTES],[aB.ATTR_MESSAGING_DESTINATION]:Q,[aB.ATTR_MESSAGING_DESTINATION_KIND]:aB.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[aB.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:B,[aB.OLD_ATTR_MESSAGING_MESSAGE_ID]:C?.messageId,[aB.ATTR_MESSAGING_CONVERSATION_ID]:C?.correlationId}}),J=C??{};return J.headers=J.headers??{},cA.propagation.inject(cA.trace.setSpan(cA.context.active(),Y),J.headers),{span:Y,modifiedOptions:J}}endConsumerSpan(A,Q,B,I){let C=A[nA.MESSAGE_STORED_SPAN];if(!C)return;if(Q!==!1)C.setStatus({code:cA.SpanStatusCode.ERROR,message:B!==CB.EndOperation.ChannelClosed&&B!==CB.EndOperation.ChannelError?`${B} called on message${I===!0?" with requeue":I===!1?" without requeue":""}`:B});this.callConsumeEndHook(C,A,Q,B),C.end(),A[nA.MESSAGE_STORED_SPAN]=void 0}endAllSpansOnChannel(A,Q,B,I){(A[nA.CHANNEL_SPANS_NOT_ENDED]??[]).forEach((E)=>{this.endConsumerSpan(E.msg,Q,B,I)}),A[nA.CHANNEL_SPANS_NOT_ENDED]=[]}callConsumeEndHook(A,Q,B,I){let{consumeEndHook:C}=this.getConfig();if(!C)return;(0,wA.safeExecuteInTheMiddle)(()=>C(A,{msg:Q,rejected:B,endOperation:I}),(E)=>{if(E)cA.diag.error("amqplib instrumentation: consumerEndHook error",E)},!0)}checkConsumeTimeoutOnChannel(A){let Q=(0,$w.hrTime)(),B=A[nA.CHANNEL_SPANS_NOT_ENDED]??[],I,{consumeTimeoutMs:C}=this.getConfig();for(I=0;I{Object.defineProperty(G9,"__esModule",{value:!0});G9.EndOperation=G9.DEFAULT_CONFIG=G9.AmqplibInstrumentation=void 0;var QZQ=_1A();Object.defineProperty(G9,"AmqplibInstrumentation",{enumerable:!0,get:function(){return QZQ.AmqplibInstrumentation}});var v1A=NM();Object.defineProperty(G9,"DEFAULT_CONFIG",{enumerable:!0,get:function(){return v1A.DEFAULT_CONFIG}});Object.defineProperty(G9,"EndOperation",{enumerable:!0,get:function(){return v1A.EndOperation}})});import*as mM from"os";function VE(A){if(A===null||A===void 0)return"";else if(typeof A==="string"||A instanceof String)return A;return JSON.stringify(A)}function Pw(A){if(!Object.keys(A).length)return{};return{title:A.title,file:A.file,line:A.startLine,endLine:A.endLine,col:A.startColumn,endColumn:A.endColumn}}function YJ(A,Q,B){let I=new dM(A,Q,B);process.stdout.write(I.toString()+mM.EOL)}function kw(A,Q=""){YJ(A,{},Q)}var bM="::";class dM{constructor(A,Q,B){if(!A)A="missing.command";this.command=A,this.properties=Q,this.message=B}toString(){let A=bM+this.command;if(this.properties&&Object.keys(this.properties).length>0){A+=" ";let Q=!0;for(let B in this.properties)if(this.properties.hasOwnProperty(B)){let I=this.properties[B];if(I){if(Q)Q=!1;else A+=",";A+=`${B}=${cXA(I)}`}}}return A+=`${bM}${dXA(this.message)}`,A}}function dXA(A){return VE(A).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function cXA(A){return VE(A).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}import*as cM from"crypto";import*as X9 from"fs";import*as U9 from"os";function uM(A,Q){let B=process.env[`GITHUB_${A}`];if(!B)throw Error(`Unable to find environment variable for file command ${A}`);if(!X9.existsSync(B))throw Error(`Missing file at path: ${B}`);X9.appendFileSync(B,`${VE(Q)}${U9.EOL}`,{encoding:"utf8"})}function lM(A,Q){let B=`ghadelimiter_${cM.randomUUID()}`,I=VE(Q);if(A.includes(B))throw Error(`Unexpected input: name should not contain the delimiter "${B}"`);if(I.includes(B))throw Error(`Unexpected input: value should not contain the delimiter "${B}"`);return`${A}<<${B}${U9.EOL}${I}${U9.EOL}${B}`}import*as GK from"os";var tZQ=H("net"),eZQ=H("tls"),lXA=H("http"),AWQ=H("https"),pXA=H("events"),QWQ=H("assert"),iXA=H("util");function w9(A){var Q=this;Q.options=A||{},Q.proxyOptions=Q.options.proxy||{},Q.maxSockets=Q.options.maxSockets||lXA.Agent.defaultMaxSockets,Q.requests=[],Q.sockets=[],Q.on("free",function(I,C,E,Y){var J=pM(C,E,Y);for(var F=0,G=Q.requests.length;F=this.maxSockets){E.requests.push(Y);return}E.createSocket(Y,function(J){J.on("free",F),J.on("close",G),J.on("agentRemove",G),Q.onSocket(J);function F(){E.emit("free",J,Y)}function G(D){E.removeSocket(J),J.removeListener("free",F),J.removeListener("close",G),J.removeListener("agentRemove",G)}})};w9.prototype.createSocket=function(Q,B){var I=this,C={};I.sockets.push(C);var E=iM({},I.proxyOptions,{method:"CONNECT",path:Q.host+":"+Q.port,agent:!1,headers:{host:Q.host+":"+Q.port}});if(Q.localAddress)E.localAddress=Q.localAddress;if(E.proxyAuth)E.headers=E.headers||{},E.headers["Proxy-Authorization"]="Basic "+new Buffer(E.proxyAuth).toString("base64");g0("making CONNECT request");var Y=I.request(E);Y.useChunkedEncodingByDefault=!1,Y.once("response",J),Y.once("upgrade",F),Y.once("connect",G),Y.once("error",D),Y.end();function J(Z){Z.upgrade=!0}function F(Z,W,U){process.nextTick(function(){G(Z,W,U)})}function G(Z,W,U){if(Y.removeAllListeners(),W.removeAllListeners(),Z.statusCode!==200){g0("tunneling socket could not be established, statusCode=%d",Z.statusCode),W.destroy();var w=Error("tunneling socket could not be established, statusCode="+Z.statusCode);w.code="ECONNRESET",Q.request.emit("error",w),I.removeSocket(C);return}if(U.length>0){g0("got illegal response body from proxy"),W.destroy();var w=Error("got illegal response body from proxy");w.code="ECONNRESET",Q.request.emit("error",w),I.removeSocket(C);return}return g0("tunneling connection has established"),I.sockets[I.sockets.indexOf(C)]=W,B(W)}function D(Z){Y.removeAllListeners(),g0(`tunneling socket could not be established, cause=%s -`,Z.message,Z.stack);var W=Error("tunneling socket could not be established, cause="+Z.message);W.code="ECONNRESET",Q.request.emit("error",W),I.removeSocket(C)}};w9.prototype.removeSocket=function(Q){var B=this.sockets.indexOf(Q);if(B===-1)return;this.sockets.splice(B,1);var I=this.requests.shift();if(I)this.createSocket(I,function(C){I.request.onSocket(C)})};function pM(A,Q,B){if(typeof A==="string")return{host:A,port:Q,localAddress:B};return A}function iM(A){for(var Q=1,B=arguments.length;Q{if(typeof B==="function")I=B,B=null;if(!Q||typeof Q!=="string"&&typeof Q!=="object"&&!(Q instanceof URL))throw new nU("invalid url");if(B!=null&&typeof B!=="object")throw new nU("invalid opts");if(B&&B.path!=null){if(typeof B.path!=="string")throw new nU("invalid opts.path");let Y=B.path;if(!B.path.startsWith("/"))Y=`/${Y}`;Q=new URL(oU.parseOrigin(Q).origin+Y)}else{if(!B)B=typeof Q==="object"?Q:{};Q=oU.parseURL(Q)}let{agent:C,dispatcher:E=mMA()}=B;if(C)throw new nU("unsupported opts.agent. Did you mean opts.client?");return A.call(E,{...B,origin:Q.origin,path:Q.search?`${Q.pathname}${Q.search}`:Q.pathname,method:B.method||(B.body?"PUT":"GET")},I)}}var CUQ=KD().fetch;var pMA=o0().Headers,iMA=XD().Response,nMA=uJ().Request,oMA=cG().FormData,aMA=globalThis.File??H("node:buffer").File,sMA=BP().FileReader;var{setGlobalOrigin:EUQ,getGlobalOrigin:YUQ}=C4();var{CacheStorage:dMA}=ZP(),{kConstruct:cMA}=hU();var rMA=new dMA(cMA);var{deleteCookie:JUQ,getCookies:FUQ,getSetCookies:GUQ,setCookie:DUQ}=NP();var{parseMIMEType:ZUQ,serializeAMimeType:WUQ}=JB();var{CloseEvent:UUQ,ErrorEvent:XUQ,MessageEvent:wUQ}=aJ();var tMA=Mk().WebSocket;var eMA=gD(QF.request),ALA=gD(QF.stream),QLA=gD(QF.pipeline),BLA=gD(QF.connect),ILA=gD(QF.upgrade);var{EventSource:KUQ}=fk();var GC;(function(A){A[A.OK=200]="OK",A[A.MultipleChoices=300]="MultipleChoices",A[A.MovedPermanently=301]="MovedPermanently",A[A.ResourceMoved=302]="ResourceMoved",A[A.SeeOther=303]="SeeOther",A[A.NotModified=304]="NotModified",A[A.UseProxy=305]="UseProxy",A[A.SwitchProxy=306]="SwitchProxy",A[A.TemporaryRedirect=307]="TemporaryRedirect",A[A.PermanentRedirect=308]="PermanentRedirect",A[A.BadRequest=400]="BadRequest",A[A.Unauthorized=401]="Unauthorized",A[A.PaymentRequired=402]="PaymentRequired",A[A.Forbidden=403]="Forbidden",A[A.NotFound=404]="NotFound",A[A.MethodNotAllowed=405]="MethodNotAllowed",A[A.NotAcceptable=406]="NotAcceptable",A[A.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",A[A.RequestTimeout=408]="RequestTimeout",A[A.Conflict=409]="Conflict",A[A.Gone=410]="Gone",A[A.TooManyRequests=429]="TooManyRequests",A[A.InternalServerError=500]="InternalServerError",A[A.NotImplemented=501]="NotImplemented",A[A.BadGateway=502]="BadGateway",A[A.ServiceUnavailable=503]="ServiceUnavailable",A[A.GatewayTimeout=504]="GatewayTimeout"})(GC||(GC={}));var _k;(function(A){A.Accept="accept",A.ContentType="content-type"})(_k||(_k={}));var vk;(function(A){A.ApplicationJson="application/json"})(vk||(vk={}));var RUQ=[GC.MovedPermanently,GC.ResourceMoved,GC.SeeOther,GC.TemporaryRedirect,GC.PermanentRedirect],qUQ=[GC.BadGateway,GC.ServiceUnavailable,GC.GatewayTimeout];import{EOL as CLA}from"os";import{constants as xk,promises as ELA}from"fs";var AK=function(A,Q,B,I){function C(E){return E instanceof B?E:new B(function(Y){Y(E)})}return new(B||(B=Promise))(function(E,Y){function J(D){try{G(I.next(D))}catch(Z){Y(Z)}}function F(D){try{G(I.throw(D))}catch(Z){Y(Z)}}function G(D){D.done?E(D.value):C(D.value).then(J,F)}G((I=I.apply(A,Q||[])).next())})},{access:YLA,appendFile:JLA,writeFile:FLA}=ELA,bk="GITHUB_STEP_SUMMARY";class mk{constructor(){this._buffer=""}filePath(){return AK(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let A=process.env[bk];if(!A)throw Error(`Unable to find environment variable for $${bk}. Check if your runtime environment supports job summaries.`);try{yield YLA(A,xk.R_OK|xk.W_OK)}catch(Q){throw Error(`Unable to access summary file: '${A}'. Check if the file has correct read/write permissions.`)}return this._filePath=A,this._filePath})}wrap(A,Q,B={}){let I=Object.entries(B).map(([C,E])=>` ${C}="${E}"`).join("");if(!Q)return`<${A}${I}>`;return`<${A}${I}>${Q}`}write(A){return AK(this,void 0,void 0,function*(){let Q=!!(A===null||A===void 0?void 0:A.overwrite),B=yield this.filePath();return yield(Q?FLA:JLA)(B,this._buffer,{encoding:"utf8"}),this.emptyBuffer()})}clear(){return AK(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:!0})})}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){return this._buffer="",this}addRaw(A,Q=!1){return this._buffer+=A,Q?this.addEOL():this}addEOL(){return this.addRaw(CLA)}addCodeBlock(A,Q){let B=Object.assign({},Q&&{lang:Q}),I=this.wrap("pre",this.wrap("code",A),B);return this.addRaw(I).addEOL()}addList(A,Q=!1){let B=Q?"ol":"ul",I=A.map((E)=>this.wrap("li",E)).join(""),C=this.wrap(B,I);return this.addRaw(C).addEOL()}addTable(A){let Q=A.map((I)=>{let C=I.map((E)=>{if(typeof E==="string")return this.wrap("td",E);let{header:Y,data:J,colspan:F,rowspan:G}=E,D=Y?"th":"td",Z=Object.assign(Object.assign({},F&&{colspan:F}),G&&{rowspan:G});return this.wrap(D,J,Z)}).join("");return this.wrap("tr",C)}).join(""),B=this.wrap("table",Q);return this.addRaw(B).addEOL()}addDetails(A,Q){let B=this.wrap("details",this.wrap("summary",A)+Q);return this.addRaw(B).addEOL()}addImage(A,Q,B){let{width:I,height:C}=B||{},E=Object.assign(Object.assign({},I&&{width:I}),C&&{height:C}),Y=this.wrap("img",null,Object.assign({src:A,alt:Q},E));return this.addRaw(Y).addEOL()}addHeading(A,Q){let B=`h${Q}`,I=["h1","h2","h3","h4","h5","h6"].includes(B)?B:"h1",C=this.wrap(I,A);return this.addRaw(C).addEOL()}addSeparator(){let A=this.wrap("hr",null);return this.addRaw(A).addEOL()}addBreak(){let A=this.wrap("br",null);return this.addRaw(A).addEOL()}addQuote(A,Q){let B=Object.assign({},Q&&{cite:Q}),I=this.wrap("blockquote",A,B);return this.addRaw(I).addEOL()}addLink(A,Q){let B=this.wrap("a",A,{href:Q});return this.addRaw(B).addEOL()}}var GLA=new mk;var QK=GLA;import tk from"os";import*as yD from"os";import*as EK from"events";import*as nk from"child_process";import*as ok from"path";import*as DC from"path";import*as sU from"fs";import*as vE from"path";var ck=function(A,Q,B,I){function C(E){return E instanceof B?E:new B(function(Y){Y(E)})}return new(B||(B=Promise))(function(E,Y){function J(D){try{G(I.next(D))}catch(Z){Y(Z)}}function F(D){try{G(I.throw(D))}catch(Z){Y(Z)}}function G(D){D.done?E(D.value):C(D.value).then(J,F)}G((I=I.apply(A,Q||[])).next())})},{chmod:DLA,copyFile:ZLA,lstat:WLA,mkdir:ULA,open:mUQ,readdir:uk,rename:XLA,rm:wLA,rmdir:dUQ,stat:aU,symlink:KLA,unlink:VLA}=sU.promises,QY=process.platform==="win32";var cUQ=sU.constants.O_RDONLY;function BK(A){return ck(this,void 0,void 0,function*(){try{yield aU(A)}catch(Q){if(Q.code==="ENOENT")return!1;throw Q}return!0})}function rU(A){if(A=zLA(A),!A)throw Error('isRooted() parameter "p" cannot be empty');if(QY)return A.startsWith("\\")||/^[A-Z]:/i.test(A);return A.startsWith("/")}function IK(A,Q){return ck(this,void 0,void 0,function*(){let B=void 0;try{B=yield aU(A)}catch(C){if(C.code!=="ENOENT")console.log(`Unexpected error attempting to determine if executable file exists '${A}': ${C}`)}if(B&&B.isFile()){if(QY){let C=vE.extname(A).toUpperCase();if(Q.some((E)=>E.toUpperCase()===C))return A}else if(dk(B))return A}let I=A;for(let C of Q){A=I+C,B=void 0;try{B=yield aU(A)}catch(E){if(E.code!=="ENOENT")console.log(`Unexpected error attempting to determine if executable file exists '${A}': ${E}`)}if(B&&B.isFile()){if(QY){try{let E=vE.dirname(A),Y=vE.basename(A).toUpperCase();for(let J of yield uk(E))if(Y===J.toUpperCase()){A=vE.join(E,J);break}}catch(E){console.log(`Unexpected error attempting to determine the actual case of the file '${A}': ${E}`)}return A}else if(dk(B))return A}}return""})}function zLA(A){if(A=A||"",QY)return A=A.replace(/\//g,"\\"),A.replace(/\\\\+/g,"\\");return A.replace(/\/\/+/g,"/")}function dk(A){return(A.mode&1)>0||(A.mode&8)>0&&process.getgid!==void 0&&A.gid===process.getgid()||(A.mode&64)>0&&process.getuid!==void 0&&A.uid===process.getuid()}var pk=function(A,Q,B,I){function C(E){return E instanceof B?E:new B(function(Y){Y(E)})}return new(B||(B=Promise))(function(E,Y){function J(D){try{G(I.next(D))}catch(Z){Y(Z)}}function F(D){try{G(I.throw(D))}catch(Z){Y(Z)}}function G(D){D.done?E(D.value):C(D.value).then(J,F)}G((I=I.apply(A,Q||[])).next())})};function CK(A,Q){return pk(this,void 0,void 0,function*(){if(!A)throw Error("parameter 'tool' is required");if(Q){let I=yield CK(A,!1);if(!I)if(QY)throw Error(`Unable to locate executable file: ${A}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);else throw Error(`Unable to locate executable file: ${A}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);return I}let B=yield $LA(A);if(B&&B.length>0)return B[0];return""})}function $LA(A){return pk(this,void 0,void 0,function*(){if(!A)throw Error("parameter 'tool' is required");let Q=[];if(QY&&process.env.PATHEXT){for(let C of process.env.PATHEXT.split(DC.delimiter))if(C)Q.push(C)}if(rU(A)){let C=yield IK(A,Q);if(C)return[C];return[]}if(A.includes(DC.sep))return[];let B=[];if(process.env.PATH){for(let C of process.env.PATH.split(DC.delimiter))if(C)B.push(C)}let I=[];for(let C of B){let E=yield IK(DC.join(C,A),Q);if(E)I.push(E)}return I})}import{setTimeout as MLA}from"timers";var ik=function(A,Q,B,I){function C(E){return E instanceof B?E:new B(function(Y){Y(E)})}return new(B||(B=Promise))(function(E,Y){function J(D){try{G(I.next(D))}catch(Z){Y(Z)}}function F(D){try{G(I.throw(D))}catch(Z){Y(Z)}}function G(D){D.done?E(D.value):C(D.value).then(J,F)}G((I=I.apply(A,Q||[])).next())})},tU=process.platform==="win32";class YK extends EK.EventEmitter{constructor(A,Q,B){super();if(!A)throw Error("Parameter 'toolPath' cannot be null or empty.");this.toolPath=A,this.args=Q||[],this.options=B||{}}_debug(A){if(this.options.listeners&&this.options.listeners.debug)this.options.listeners.debug(A)}_getCommandString(A,Q){let B=this._getSpawnFileName(),I=this._getSpawnArgs(A),C=Q?"":"[command]";if(tU)if(this._isCmdFile()){C+=B;for(let E of I)C+=` ${E}`}else if(A.windowsVerbatimArguments){C+=`"${B}"`;for(let E of I)C+=` ${E}`}else{C+=this._windowsQuoteCmdArg(B);for(let E of I)C+=` ${this._windowsQuoteCmdArg(E)}`}else{C+=B;for(let E of I)C+=` ${E}`}return C}_processLineBuffer(A,Q,B){try{let I=Q+A.toString(),C=I.indexOf(yD.EOL);while(C>-1){let E=I.substring(0,C);B(E),I=I.substring(C+yD.EOL.length),C=I.indexOf(yD.EOL)}return I}catch(I){return this._debug(`error processing line. Failed with error ${I}`),""}}_getSpawnFileName(){if(tU){if(this._isCmdFile())return process.env.COMSPEC||"cmd.exe"}return this.toolPath}_getSpawnArgs(A){if(tU){if(this._isCmdFile()){let Q=`/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;for(let B of this.args)Q+=" ",Q+=A.windowsVerbatimArguments?B:this._windowsQuoteCmdArg(B);return Q+='"',[Q]}}return this.args}_endsWith(A,Q){return A.endsWith(Q)}_isCmdFile(){let A=this.toolPath.toUpperCase();return this._endsWith(A,".CMD")||this._endsWith(A,".BAT")}_windowsQuoteCmdArg(A){if(!this._isCmdFile())return this._uvQuoteCmdArg(A);if(!A)return'""';let Q=[" ","\t","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'],B=!1;for(let E of A)if(Q.some((Y)=>Y===E)){B=!0;break}if(!B)return A;let I='"',C=!0;for(let E=A.length;E>0;E--)if(I+=A[E-1],C&&A[E-1]==="\\")I+="\\";else if(A[E-1]==='"')C=!0,I+='"';else C=!1;return I+='"',I.split("").reverse().join("")}_uvQuoteCmdArg(A){if(!A)return'""';if(!A.includes(" ")&&!A.includes("\t")&&!A.includes('"'))return A;if(!A.includes('"')&&!A.includes("\\"))return`"${A}"`;let Q='"',B=!0;for(let I=A.length;I>0;I--)if(Q+=A[I-1],B&&A[I-1]==="\\")Q+="\\";else if(A[I-1]==='"')B=!0,Q+="\\";else B=!1;return Q+='"',Q.split("").reverse().join("")}_cloneExecOptions(A){A=A||{};let Q={cwd:A.cwd||process.cwd(),env:A.env||process.env,silent:A.silent||!1,windowsVerbatimArguments:A.windowsVerbatimArguments||!1,failOnStdErr:A.failOnStdErr||!1,ignoreReturnCode:A.ignoreReturnCode||!1,delay:A.delay||1e4};return Q.outStream=A.outStream||process.stdout,Q.errStream=A.errStream||process.stderr,Q}_getSpawnOptions(A,Q){A=A||{};let B={};if(B.cwd=A.cwd,B.env=A.env,B.windowsVerbatimArguments=A.windowsVerbatimArguments||this._isCmdFile(),A.windowsVerbatimArguments)B.argv0=`"${Q}"`;return B}exec(){return ik(this,void 0,void 0,function*(){if(!rU(this.toolPath)&&(this.toolPath.includes("/")||tU&&this.toolPath.includes("\\")))this.toolPath=ok.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath);return this.toolPath=yield CK(this.toolPath,!0),new Promise((A,Q)=>ik(this,void 0,void 0,function*(){this._debug(`exec tool: ${this.toolPath}`),this._debug("arguments:");for(let F of this.args)this._debug(` ${F}`);let B=this._cloneExecOptions(this.options);if(!B.silent&&B.outStream)B.outStream.write(this._getCommandString(B)+yD.EOL);let I=new JK(B,this.toolPath);if(I.on("debug",(F)=>{this._debug(F)}),this.options.cwd&&!(yield BK(this.options.cwd)))return Q(Error(`The cwd: ${this.options.cwd} does not exist!`));let C=this._getSpawnFileName(),E=nk.spawn(C,this._getSpawnArgs(B),this._getSpawnOptions(this.options,C)),Y="";if(E.stdout)E.stdout.on("data",(F)=>{if(this.options.listeners&&this.options.listeners.stdout)this.options.listeners.stdout(F);if(!B.silent&&B.outStream)B.outStream.write(F);Y=this._processLineBuffer(F,Y,(G)=>{if(this.options.listeners&&this.options.listeners.stdline)this.options.listeners.stdline(G)})});let J="";if(E.stderr)E.stderr.on("data",(F)=>{if(I.processStderr=!0,this.options.listeners&&this.options.listeners.stderr)this.options.listeners.stderr(F);if(!B.silent&&B.errStream&&B.outStream)(B.failOnStdErr?B.errStream:B.outStream).write(F);J=this._processLineBuffer(F,J,(G)=>{if(this.options.listeners&&this.options.listeners.errline)this.options.listeners.errline(G)})});if(E.on("error",(F)=>{I.processError=F.message,I.processExited=!0,I.processClosed=!0,I.CheckComplete()}),E.on("exit",(F)=>{I.processExitCode=F,I.processExited=!0,this._debug(`Exit code ${F} received from tool '${this.toolPath}'`),I.CheckComplete()}),E.on("close",(F)=>{I.processExitCode=F,I.processExited=!0,I.processClosed=!0,this._debug(`STDIO streams have closed for tool '${this.toolPath}'`),I.CheckComplete()}),I.on("done",(F,G)=>{if(Y.length>0)this.emit("stdline",Y);if(J.length>0)this.emit("errline",J);if(E.removeAllListeners(),F)Q(F);else A(G)}),this.options.input){if(!E.stdin)throw Error("child process missing stdin");E.stdin.end(this.options.input)}}))})}}function ak(A){let Q=[],B=!1,I=!1,C="";function E(Y){if(I&&Y!=='"')C+="\\";C+=Y,I=!1}for(let Y=0;Y0)Q.push(C),C="";continue}E(J)}if(C.length>0)Q.push(C.trim());return Q}class JK extends EK.EventEmitter{constructor(A,Q){super();if(this.processClosed=!1,this.processError="",this.processExitCode=0,this.processExited=!1,this.processStderr=!1,this.delay=1e4,this.done=!1,this.timeout=null,!Q)throw Error("toolPath must not be empty");if(this.options=A,this.toolPath=Q,A.delay)this.delay=A.delay}CheckComplete(){if(this.done)return;if(this.processClosed)this._setResult();else if(this.processExited)this.timeout=MLA(JK.HandleTimeout,this.delay,this)}_debug(A){this.emit("debug",A)}_setResult(){let A;if(this.processExited){if(this.processError)A=Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`);else if(this.processExitCode!==0&&!this.options.ignoreReturnCode)A=Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`);else if(this.processStderr&&this.options.failOnStdErr)A=Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)}if(this.timeout)clearTimeout(this.timeout),this.timeout=null;this.done=!0,this.emit("done",A,this.processExitCode)}static HandleTimeout(A){if(A.done)return;if(!A.processClosed&&A.processExited){let Q=`The STDIO streams did not close within ${A.delay/1000} seconds of the exit event from process '${A.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;A._debug(Q)}A._setResult()}}var NLA=function(A,Q,B,I){function C(E){return E instanceof B?E:new B(function(Y){Y(E)})}return new(B||(B=Promise))(function(E,Y){function J(D){try{G(I.next(D))}catch(Z){Y(Z)}}function F(D){try{G(I.throw(D))}catch(Z){Y(Z)}}function G(D){D.done?E(D.value):C(D.value).then(J,F)}G((I=I.apply(A,Q||[])).next())})};function sk(A,Q,B){return NLA(this,void 0,void 0,function*(){let I=ak(A);if(I.length===0)throw Error("Parameter 'commandLine' cannot be null or empty.");let C=I[0];return Q=I.slice(1).concat(Q||[]),new YK(C,Q,B).exec()})}var oUQ=tk.platform(),aUQ=tk.arch();var RLA=function(A,Q,B,I){function C(E){return E instanceof B?E:new B(function(Y){Y(E)})}return new(B||(B=Promise))(function(E,Y){function J(D){try{G(I.next(D))}catch(Z){Y(Z)}}function F(D){try{G(I.throw(D))}catch(Z){Y(Z)}}function G(D){D.done?E(D.value):C(D.value).then(J,F)}G((I=I.apply(A,Q||[])).next())})},FK;(function(A){A[A.Success=0]="Success",A[A.Failure=1]="Failure"})(FK||(FK={}));function DK(A,Q){let B=process.env[`INPUT_${A.replace(/ /g,"_").toUpperCase()}`]||"";if(Q&&Q.required&&!B)throw Error(`Input required and not supplied: ${A}`);if(Q&&Q.trimWhitespace===!1)return B;return B.trim()}function ek(A,Q){let B=["true","True","TRUE"],I=["false","False","FALSE"],C=DK(A,Q);if(B.includes(C))return!0;if(I.includes(C))return!1;throw TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${A} -Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}function ZK(A,Q){if(process.env.GITHUB_OUTPUT||"")return uM("OUTPUT",lM(A,Q));process.stdout.write(GK.EOL),YJ("set-output",{name:A},VE(Q))}function WK(A){process.exitCode=FK.Failure,eU(A)}function e5(A){YJ("debug",{},A)}function eU(A,Q={}){YJ("error",Pw(Q),A instanceof Error?A.toString():A)}function AS(A,Q={}){YJ("warning",Pw(Q),A instanceof Error?A.toString():A)}function A1(A){process.stdout.write(A+GK.EOL)}function qLA(A){kw("group",A)}function OLA(){kw("endgroup")}function UK(A,Q){return RLA(this,void 0,void 0,function*(){qLA(A);let B;try{B=yield Q()}finally{OLA()}return B})}import{readdirSync as bZQ,statSync as mZQ}from"node:fs";import _M from"node:path";var IS={formatter:"all",mode:"check",files:[],exclude:[],working_directory:process.env.GITHUB_WORKSPACE??process.cwd(),gjf_args:[],ktfmt_args:[],include_kts:!1,fail_on_error:!0,telemetry:!0};function TLA(A){switch(A.trim().toLowerCase()){case"google-java-format":case"javaformat":case"gjf":return"javaformat";case"ktfmt":return"ktfmt";default:return"all"}}function PLA(A){switch(A.trim().toLowerCase()){case"write":case"format":return"write";default:return"check"}}function QS(A){return A.trim().split(/\s+/).filter(Boolean)}function BS(A){return A.trim().split(/[\s\n]+/).filter(Boolean)}function Q1(A){return{...IS,...A}}function wK(A,Q){try{return ek(A)}catch{return Q}}function BY(A,Q){return DK(A)||Q||void 0}function CS(){return Q1({formatter:TLA(BY("formatter","all")),mode:PLA(BY("mode","check")),files:BS(BY("files","")??""),exclude:BS(BY("exclude","")??""),working_directory:BY("working-directory",IS.working_directory),gjf_args:QS(BY("gjf-args","")??""),ktfmt_args:QS(BY("ktfmt-args","")??""),include_kts:wK("include-kts",!1),fail_on_error:wK("fail-on-error",!0),telemetry:wK("telemetry",!0)})}import{writeFileSync as ES,unlinkSync as kLA}from"node:fs";import SLA from"node:os";import gLA from"node:path";var YS={javaformat:["--dry-run","--set-exit-if-changed"],ktfmt:["--dry-run","--set-exit-if-changed"]};function yLA(A,Q,B,I){return[A,"--",...Q==="check"?YS[A]:[],...I,...B]}async function JS(A,Q,B,I,C){let E=process.env.RUNNER_TEMP??SLA.tmpdir(),Y=gLA.join(E,`format-${A}.txt`),J;if(A==="ktfmt"){let F=Q==="check"?YS.ktfmt:[];ES(Y,[...F,...I,...B].join(` -`),"utf-8"),J=[A,"--",`@${Y}`]}else ES(Y,B.join(` -`),"utf-8"),J=yLA(A,Q,[`@${Y}`],I);e5(`Running: elide ${A} on ${B.length} files`);try{return await sk("elide",J,{cwd:C,ignoreReturnCode:!0})}finally{try{kLA(Y)}catch{}}}var iIA=P(j(),1),nIA=P(yi(),1);var q=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var hi=Object.prototype.toString;function ZC(A){switch(hi.call(A)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return WC(A,Error)}}function v1(A,Q){return hi.call(A)===`[object ${Q}]`}function W3(A){return v1(A,"ErrorEvent")}function dE(A){return v1(A,"String")}function XF(A){return typeof A==="object"&&A!==null&&"__sentry_template_string__"in A&&"__sentry_template_values__"in A}function BZ(A){return A===null||XF(A)||typeof A!=="object"&&typeof A!=="function"}function uC(A){return v1(A,"Object")}function U3(A){return typeof Event<"u"&&WC(A,Event)}function X3(A){return typeof Element<"u"&&WC(A,Element)}function w3(A){return v1(A,"RegExp")}function NQ(A){return Boolean(A?.then&&typeof A.then==="function")}function K3(A){return uC(A)&&"nativeEvent"in A&&"preventDefault"in A&&"stopPropagation"in A}function WC(A,Q){try{return A instanceof Q}catch{return!1}}function IZ(A){return!!(typeof A==="object"&&A!==null&&(A.__isVue||A._isVue||A.__v_isVNode))}var o=globalThis;var DdA=o,ZdA=80;function fi(A,Q={}){if(!A)return"";try{let B=A,I=5,C=[],E=0,Y=0,J=" > ",F=J.length,G,D=Array.isArray(Q)?Q:Q.keyAttrs,Z=!Array.isArray(Q)&&Q.maxStringLength||ZdA;while(B&&E++1&&Y+C.length*F+G.length>=Z)break;C.push(G),Y+=G.length,B=B.parentNode}return C.reverse().join(J)}catch{return""}}function WdA(A,Q){let B=A,I=[];if(!B?.tagName)return"";if(DdA.HTMLElement){if(B instanceof HTMLElement&&B.dataset){if(B.dataset.sentryComponent)return B.dataset.sentryComponent;if(B.dataset.sentryElement)return B.dataset.sentryElement}}I.push(B.tagName.toLowerCase());let C=Q?.length?Q.filter((E)=>B.getAttribute(E)).map((E)=>[E,B.getAttribute(E)]):null;if(C?.length)C.forEach((E)=>{I.push(`[${E[0]}="${E[1]}"]`)});else{if(B.id)I.push(`#${B.id}`);let E=B.className;if(E&&dE(E)){let Y=E.split(/\s+/);for(let J of Y)I.push(`.${J}`)}}for(let E of["aria-label","type","name","title","alt"]){let Y=B.getAttribute(E);if(Y)I.push(`[${E}="${Y}"]`)}return I.join("")}var EA="10.46.0";function nQ(){return cE(o),o}function cE(A){let Q=A.__SENTRY__=A.__SENTRY__||{};return Q.version=Q.version||EA,Q[EA]=Q[EA]||{}}function fI(A,Q,B=o){let I=B.__SENTRY__=B.__SENTRY__||{},C=I[EA]=I[EA]||{};return C[A]||(C[A]=Q())}var CZ=["debug","info","warn","error","log","assert","trace"],UdA="Sentry Logger ",wF={};function eA(A){if(!("console"in o))return A();let Q=o.console,B={},I=Object.keys(wF);I.forEach((C)=>{let E=wF[C];B[C]=Q[C],Q[C]=E});try{return A()}finally{I.forEach((C)=>{Q[C]=B[C]})}}function XdA(){z3().enabled=!0}function wdA(){z3().enabled=!1}function _i(){return z3().enabled}function KdA(...A){V3("log",...A)}function VdA(...A){V3("warn",...A)}function zdA(...A){V3("error",...A)}function V3(A,...Q){if(!q)return;if(_i())eA(()=>{o.console[A](`${UdA}[${A}]:`,...Q)})}function z3(){if(!q)return{enabled:!1};return fI("loggerSettings",()=>({enabled:!1}))}var $={enable:XdA,disable:wdA,isEnabled:_i,log:KdA,warn:VdA,error:zdA};function $3(A,Q,B){if(!(Q in A))return;let I=A[Q];if(typeof I!=="function")return;let C=B(I);if(typeof C==="function")bi(C,I);try{A[Q]=C}catch{q&&$.log(`Failed to replace method "${Q}" in object`,A)}}function EQ(A,Q,B){try{Object.defineProperty(A,Q,{value:B,writable:!0,configurable:!0})}catch{q&&$.log(`Failed to add non-enumerable property "${Q}" to object`,A)}}function bi(A,Q){try{let B=Q.prototype||{};A.prototype=Q.prototype=B,EQ(A,"__sentry_original__",Q)}catch{}}function H3(A){return A.__sentry_original__}function x1(A){if(ZC(A))return{message:A.message,name:A.name,stack:A.stack,...xi(A)};else if(U3(A)){let Q={type:A.type,target:vi(A.target),currentTarget:vi(A.currentTarget),...xi(A)};if(typeof CustomEvent<"u"&&WC(A,CustomEvent))Q.detail=A.detail;return Q}else return A}function vi(A){try{return X3(A)?fi(A):Object.prototype.toString.call(A)}catch{return""}}function xi(A){if(typeof A==="object"&&A!==null)return Object.fromEntries(Object.entries(A));return{}}function M3(A){let Q=Object.keys(x1(A));return Q.sort(),!Q[0]?"[object has no keys]":Q.join(", ")}var mi="_sentryScope",di="_sentryIsolationScope";function $dA(A){try{let Q=o.WeakRef;if(typeof Q==="function")return new Q(A)}catch{}return A}function HdA(A){if(!A)return;if(typeof A==="object"&&"deref"in A&&typeof A.deref==="function")try{return A.deref()}catch{return}return A}function EZ(A,Q,B){if(A)EQ(A,di,$dA(B)),EQ(A,mi,Q)}function _I(A){let Q=A;return{scope:Q[mi],isolationScope:HdA(Q[di])}}var L3=0,KF=1,BA=2;function UC(A){if(A<400&&A>=100)return{code:1};if(A>=400&&A<500)switch(A){case 401:return{code:2,message:"unauthenticated"};case 403:return{code:2,message:"permission_denied"};case 404:return{code:2,message:"not_found"};case 409:return{code:2,message:"already_exists"};case 413:return{code:2,message:"failed_precondition"};case 429:return{code:2,message:"resource_exhausted"};case 499:return{code:2,message:"cancelled"};default:return{code:2,message:"invalid_argument"}}if(A>=500&&A<600)switch(A){case 501:return{code:2,message:"unimplemented"};case 503:return{code:2,message:"unavailable"};case 504:return{code:2,message:"deadline_exceeded"};default:return{code:2,message:"internal_error"}}return{code:2,message:"internal_error"}}var VF;function wY(A){if(VF!==void 0)return VF?VF(A):A();let Q=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),B=o;if(Q in B&&typeof B[Q]==="function")return VF=B[Q],VF(A);return VF=null,A()}function jQ(){return wY(()=>Math.random())}function YI(){return wY(()=>Date.now())}var j3="?",ci=/\(error: (.*)\)/,ui=/captureMessage|captureException/;function m1(...A){let Q=A.sort((B,I)=>B[0]-I[0]).map((B)=>B[1]);return(B,I=0,C=0)=>{let E=[],Y=B.split(` -`);for(let J=I;J1024)F=F.slice(0,1024);let G=ci.test(F)?F.replace(ci,"$1"):F;if(G.match(/\S*Error: /))continue;for(let D of Q){let Z=D(G);if(Z){E.push(Z);break}}if(E.length>=50+C)break}return li(E.slice(C))}}function R3(A){if(Array.isArray(A))return m1(...A);return A}function li(A){if(!A.length)return[];let Q=Array.from(A);if(/sentryWrapped/.test(b1(Q).function||""))Q.pop();if(Q.reverse(),ui.test(b1(Q).function||"")){if(Q.pop(),ui.test(b1(Q).function||""))Q.pop()}return Q.slice(0,50).map((B)=>({...B,filename:B.filename||b1(Q).filename,function:B.function||"?"}))}function b1(A){return A[A.length-1]||{}}var N3="";function YZ(A){try{if(!A||typeof A!=="function")return N3;return A.name||N3}catch{return N3}}function d1(A){return"__v_isVNode"in A&&A.__v_isVNode?"[VueVNode]":"[VueViewModel]"}function pi(A){let Q=A?.startsWith("file://")?A.slice(7):A;if(Q?.match(/\/[A-Z]:/))Q=Q.slice(1);return Q}function uE(A,Q=0){if(typeof A!=="string"||Q===0)return A;return A.length<=Q?A:`${A.slice(0,Q)}...`}function q3(A,Q){let B=A,I=B.length;if(I<=150)return B;if(Q>I)Q=I;let C=Math.max(Q-60,0);if(C<5)C=0;let E=Math.min(C+140,I);if(E>I-5)E=I;if(E===I)C=Math.max(E-140,0);if(B=B.slice(C,E),C>0)B=`'{snip} ${B}`;if(ElC(A,I,B))}function MdA(){let A=o;return A.crypto||A.msCrypto}var T3;function LdA(){return jQ()*16}function DQ(A=MdA()){try{if(A?.randomUUID)return wY(()=>A.randomUUID()).replace(/-/g,"")}catch{}if(!T3)T3=[1e7]+1000+4000+8000+100000000000;return T3.replace(/[018]/g,(Q)=>(Q^(LdA()&15)>>Q/4).toString(16))}function ii(A){return A.exception?.values?.[0]}function pE(A){let{message:Q,event_id:B}=A;if(Q)return Q;let I=ii(A);if(I){if(I.type&&I.value)return`${I.type}: ${I.value}`;return I.type||I.value||B||""}return B||""}function k3(A,Q,B){let I=A.exception=A.exception||{},C=I.values=I.values||[],E=C[0]=C[0]||{};if(!E.value)E.value=Q||"";if(!E.type)E.type=B||"Error"}function zF(A,Q){let B=ii(A);if(!B)return;let I={type:"generic",handled:!0},C=B.mechanism;if(B.mechanism={...I,...C,...Q},Q&&"data"in Q){let E={...C?.data,...Q.data};B.mechanism.data=E}}var NdA=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function P3(A){return parseInt(A||"",10)}function S3(A){let Q=A.match(NdA)||[],B=P3(Q[1]),I=P3(Q[2]),C=P3(Q[3]);return{buildmetadata:Q[5],major:isNaN(B)?void 0:B,minor:isNaN(I)?void 0:I,patch:isNaN(C)?void 0:C,prerelease:Q[4]}}function c1(A){if(ni(A))return!0;try{EQ(A,"__sentry_captured__",!0)}catch{}return!1}function ni(A){try{return A.__sentry_captured__}catch{}}var ai=1000;function pC(){return YI()/ai}function jdA(){let{performance:A}=o;if(!A?.now||!A.timeOrigin)return pC;let Q=A.timeOrigin;return()=>{return(Q+wY(()=>A.now()))/ai}}var oi;function XC(){return(oi??(oi=jdA()))()}function si(A){let Q=XC(),B={sid:DQ(),init:!0,timestamp:Q,started:Q,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>RdA(B)};if(A)iC(B,A);return B}function iC(A,Q={}){if(Q.user){if(!A.ipAddress&&Q.user.ip_address)A.ipAddress=Q.user.ip_address;if(!A.did&&!Q.did)A.did=Q.user.id||Q.user.email||Q.user.username}if(A.timestamp=Q.timestamp||XC(),Q.abnormal_mechanism)A.abnormal_mechanism=Q.abnormal_mechanism;if(Q.ignoreDuration)A.ignoreDuration=Q.ignoreDuration;if(Q.sid)A.sid=Q.sid.length===32?Q.sid:DQ();if(Q.init!==void 0)A.init=Q.init;if(!A.did&&Q.did)A.did=`${Q.did}`;if(typeof Q.started==="number")A.started=Q.started;if(A.ignoreDuration)A.duration=void 0;else if(typeof Q.duration==="number")A.duration=Q.duration;else{let B=A.timestamp-A.started;A.duration=B>=0?B:0}if(Q.release)A.release=Q.release;if(Q.environment)A.environment=Q.environment;if(!A.ipAddress&&Q.ipAddress)A.ipAddress=Q.ipAddress;if(!A.userAgent&&Q.userAgent)A.userAgent=Q.userAgent;if(typeof Q.errors==="number")A.errors=Q.errors;if(Q.status)A.status=Q.status}function ri(A,Q){let B={};if(Q)B={status:Q};else if(A.status==="ok")B={status:"exited"};iC(A,B)}function RdA(A){return{sid:`${A.sid}`,init:A.init,started:new Date(A.started*1000).toISOString(),timestamp:new Date(A.timestamp*1000).toISOString(),status:A.status,errors:A.errors,did:typeof A.did==="number"||typeof A.did==="string"?`${A.did}`:void 0,duration:A.duration,abnormal_mechanism:A.abnormal_mechanism,attrs:{release:A.release,environment:A.environment,ip_address:A.ipAddress,user_agent:A.userAgent}}}function iE(A,Q,B=2){if(!Q||typeof Q!=="object"||B<=0)return Q;if(A&&Object.keys(Q).length===0)return A;let I={...A};for(let C in Q)if(Object.prototype.hasOwnProperty.call(Q,C))I[C]=iE(I[C],Q[C],B-1);return I}function UB(){return DQ()}function XB(){return DQ().substring(16)}var g3="_sentrySpan";function KY(A,Q){if(Q)EQ(A,g3,Q);else delete A[g3]}function nC(A){return A[g3]}var qdA=100;class vQ{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._attributes={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:UB(),sampleRand:jQ()}}clone(){let A=new vQ;if(A._breadcrumbs=[...this._breadcrumbs],A._tags={...this._tags},A._attributes={...this._attributes},A._extra={...this._extra},A._contexts={...this._contexts},this._contexts.flags)A._contexts.flags={values:[...this._contexts.flags.values]};return A._user=this._user,A._level=this._level,A._session=this._session,A._transactionName=this._transactionName,A._fingerprint=this._fingerprint,A._eventProcessors=[...this._eventProcessors],A._attachments=[...this._attachments],A._sdkProcessingMetadata={...this._sdkProcessingMetadata},A._propagationContext={...this._propagationContext},A._client=this._client,A._lastEventId=this._lastEventId,A._conversationId=this._conversationId,KY(A,nC(this)),A}setClient(A){this._client=A}setLastEventId(A){this._lastEventId=A}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(A){this._scopeListeners.push(A)}addEventProcessor(A){return this._eventProcessors.push(A),this}setUser(A){if(this._user=A||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session)iC(this._session,{user:A});return this._notifyScopeListeners(),this}getUser(){return this._user}setConversationId(A){return this._conversationId=A||void 0,this._notifyScopeListeners(),this}setTags(A){return this._tags={...this._tags,...A},this._notifyScopeListeners(),this}setTag(A,Q){return this.setTags({[A]:Q})}setAttributes(A){return this._attributes={...this._attributes,...A},this._notifyScopeListeners(),this}setAttribute(A,Q){return this.setAttributes({[A]:Q})}removeAttribute(A){if(A in this._attributes)delete this._attributes[A],this._notifyScopeListeners();return this}setExtras(A){return this._extra={...this._extra,...A},this._notifyScopeListeners(),this}setExtra(A,Q){return this._extra={...this._extra,[A]:Q},this._notifyScopeListeners(),this}setFingerprint(A){return this._fingerprint=A,this._notifyScopeListeners(),this}setLevel(A){return this._level=A,this._notifyScopeListeners(),this}setTransactionName(A){return this._transactionName=A,this._notifyScopeListeners(),this}setContext(A,Q){if(Q===null)delete this._contexts[A];else this._contexts[A]=Q;return this._notifyScopeListeners(),this}setSession(A){if(!A)delete this._session;else this._session=A;return this._notifyScopeListeners(),this}getSession(){return this._session}update(A){if(!A)return this;let Q=typeof A==="function"?A(this):A,B=Q instanceof vQ?Q.getScopeData():uC(Q)?A:void 0,{tags:I,attributes:C,extra:E,user:Y,contexts:J,level:F,fingerprint:G=[],propagationContext:D,conversationId:Z}=B||{};if(this._tags={...this._tags,...I},this._attributes={...this._attributes,...C},this._extra={...this._extra,...E},this._contexts={...this._contexts,...J},Y&&Object.keys(Y).length)this._user=Y;if(F)this._level=F;if(G.length)this._fingerprint=G;if(D)this._propagationContext=D;if(Z)this._conversationId=Z;return this}clear(){return this._breadcrumbs=[],this._tags={},this._attributes={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,this._conversationId=void 0,KY(this,void 0),this._attachments=[],this.setPropagationContext({traceId:UB(),sampleRand:jQ()}),this._notifyScopeListeners(),this}addBreadcrumb(A,Q){let B=typeof Q==="number"?Q:qdA;if(B<=0)return this;let I={timestamp:pC(),...A,message:A.message?uE(A.message,2048):A.message};if(this._breadcrumbs.push(I),this._breadcrumbs.length>B)this._breadcrumbs=this._breadcrumbs.slice(-B),this._client?.recordDroppedEvent("buffer_overflow","log_item");return this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(A){return this._attachments.push(A),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,attributes:this._attributes,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:nC(this),conversationId:this._conversationId}}setSDKProcessingMetadata(A){return this._sdkProcessingMetadata=iE(this._sdkProcessingMetadata,A,2),this}setPropagationContext(A){return this._propagationContext=A,this}getPropagationContext(){return this._propagationContext}captureException(A,Q){let B=Q?.event_id||DQ();if(!this._client)return q&&$.warn("No client configured on scope - will not capture exception!"),B;let I=Error("Sentry syntheticException");return this._client.captureException(A,{originalException:A,syntheticException:I,...Q,event_id:B},this),B}captureMessage(A,Q,B){let I=B?.event_id||DQ();if(!this._client)return q&&$.warn("No client configured on scope - will not capture message!"),I;let C=B?.syntheticException??Error(A);return this._client.captureMessage(A,Q,{originalException:A,syntheticException:C,...B,event_id:I},this),I}captureEvent(A,Q){let B=A.event_id||Q?.event_id||DQ();if(!this._client)return q&&$.warn("No client configured on scope - will not capture event!"),B;return this._client.captureEvent(A,{...Q,event_id:B},this),B}_notifyScopeListeners(){if(!this._notifyingListeners)this._notifyingListeners=!0,this._scopeListeners.forEach((A)=>{A(this)}),this._notifyingListeners=!1}}function $F(){return fI("defaultCurrentScope",()=>new vQ)}function hB(){return fI("defaultIsolationScope",()=>new vQ)}var ti=(A)=>A instanceof Promise&&!A[ei],ei=Symbol("chained PromiseLike"),u1=(A,Q,B)=>{let I=A.then((C)=>{return Q(C),C},(C)=>{throw B(C),C});return ti(I)&&ti(A)?I:OdA(A,I)},OdA=(A,Q)=>{let B=!1;for(let I in A){if(I in Q)continue;B=!0;let C=A[I];if(typeof C==="function")Object.defineProperty(Q,I,{value:(...E)=>C.apply(A,E),enumerable:!0,configurable:!0,writable:!0});else Q[I]=C}if(B)Object.assign(Q,{[ei]:!0});return Q};class Qn{constructor(A,Q){let B;if(!A)B=new vQ;else B=A;let I;if(!Q)I=new vQ;else I=Q;this._stack=[{scope:B}],this._isolationScope=I}withScope(A){let Q=this._pushScope(),B;try{B=A(Q)}catch(I){throw this._popScope(),I}if(NQ(B))return u1(B,()=>this._popScope(),()=>this._popScope());return this._popScope(),B}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){let A=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:A}),A}_popScope(){if(this._stack.length<=1)return!1;return!!this._stack.pop()}}function HF(){let A=nQ(),Q=cE(A);return Q.stack=Q.stack||new Qn($F(),hB())}function TdA(A){return HF().withScope(A)}function PdA(A,Q){let B=HF();return B.withScope(()=>{return B.getStackTop().scope=A,Q(A)})}function An(A){return HF().withScope(()=>{return A(HF().getIsolationScope())})}function Bn(){return{withIsolationScope:An,withScope:TdA,withSetScope:PdA,withSetIsolationScope:(A,Q)=>{return An(Q)},getCurrentScope:()=>HF().getScope(),getIsolationScope:()=>HF().getIsolationScope()}}function y3(A){let Q=nQ(),B=cE(Q);B.acs=A}function vI(A){let Q=cE(A);if(Q.acs)return Q.acs;return Bn()}function FA(){let A=nQ();return vI(A).getCurrentScope()}function AA(){let A=nQ();return vI(A).getIsolationScope()}function JZ(){return fI("globalScope",()=>new vQ)}function xQ(...A){let Q=nQ(),B=vI(Q);if(A.length===2){let[I,C]=A;if(!I)return B.withScope(C);return B.withSetScope(I,C)}return B.withScope(A[0])}function MF(...A){let Q=nQ(),B=vI(Q);if(A.length===2){let[I,C]=A;if(!I)return B.withIsolationScope(C);return B.withSetIsolationScope(I,C)}return B.withIsolationScope(A[0])}function g(){return FA().getClient()}function VY(A){let Q=A.getPropagationContext(),{traceId:B,parentSpanId:I,propagationSpanId:C}=Q,E={trace_id:B,span_id:C||XB()};if(I)E.parent_span_id=I;return E}var _A="sentry.source",JI="sentry.sample_rate",h3="sentry.previous_trace_sample_rate",u="sentry.op",x="sentry.origin";var f3="sentry.measurement_unit",_3="sentry.measurement_value",FI="sentry.custom_span_name",LF="sentry.profile_id",NF="sentry.exclusive_time",v3="cache.hit",x3="cache.key",b3="cache.item_size",m3="http.request.method",nE="url.full";var d3="gen_ai.conversation.id";var jF="sentry-";var Cn=8192;function oC(A){let Q=$Y(A);if(!Q)return;let B=Object.entries(Q).reduce((I,[C,E])=>{if(C.startsWith(jF)){let Y=C.slice(jF.length);I[Y]=E}return I},{});if(Object.keys(B).length>0)return B;else return}function zY(A){if(!A)return;let Q=Object.entries(A).reduce((B,[I,C])=>{if(C)B[`${jF}${I}`]=C;return B},{});return l1(Q)}function $Y(A){if(!A||!dE(A)&&!Array.isArray(A))return;if(Array.isArray(A))return A.reduce((Q,B)=>{let I=In(B);return Object.entries(I).forEach(([C,E])=>{Q[C]=E}),Q},{});return In(A)}function In(A){return A.split(",").map((Q)=>{let B=Q.indexOf("=");if(B===-1)return[];let I=Q.slice(0,B),C=Q.slice(B+1);return[I,C].map((E)=>{try{return decodeURIComponent(E.trim())}catch{return}})}).reduce((Q,[B,I])=>{if(B&&I)Q[B]=I;return Q},{})}function l1(A){if(Object.keys(A).length===0)return;return Object.entries(A).reduce((Q,[B,I],C)=>{let E=`${encodeURIComponent(B)}=${encodeURIComponent(I)}`,Y=C===0?E:`${Q},${E}`;if(Y.length>Cn)return q&&$.warn(`Not adding key: ${B} with val: ${I} to baggage header due to exceeding baggage size limits.`),Q;else return Y},"")}function xI(A,Q,B=()=>{},I=()=>{}){let C;try{C=A()}catch(E){throw Q(E),B(),E}return kdA(C,Q,B,I)}function kdA(A,Q,B,I){if(NQ(A))return u1(A,(C)=>{B(),I(C)},(C)=>{Q(C),B()});return B(),I(A),A}function AQ(A){if(typeof __SENTRY_TRACING__==="boolean"&&!__SENTRY_TRACING__)return!1;let Q=A||g()?.getOptions();return!!Q&&(Q.tracesSampleRate!=null||!!Q.tracesSampler)}function fB(A){if(typeof A==="boolean")return Number(A);let Q=typeof A==="string"?parseFloat(A):A;if(typeof Q!=="number"||isNaN(Q)||Q<0||Q>1)return;return Q}var SdA=/^o(\d+)\./,gdA=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)((?:\[[:.%\w]+\]|[\w.-]+))(?::(\d+))?\/(.+)/;function ydA(A){return A==="http"||A==="https"}function _B(A,Q=!1){let{host:B,path:I,pass:C,port:E,projectId:Y,protocol:J,publicKey:F}=A;return`${J}://${F}${Q&&C?`:${C}`:""}@${B}${E?`:${E}`:""}/${I?`${I}/`:I}${Y}`}function hdA(A){let Q=gdA.exec(A);if(!Q){eA(()=>{console.error(`Invalid Sentry Dsn: ${A}`)});return}let[B,I,C="",E="",Y="",J=""]=Q.slice(1),F="",G=J,D=G.split("/");if(D.length>1)F=D.slice(0,-1).join("/"),G=D.pop();if(G){let Z=G.match(/^\d+/);if(Z)G=Z[0]}return En({host:E,pass:C,path:F,projectId:G,port:Y,protocol:B,publicKey:I})}function En(A){return{protocol:A.protocol,publicKey:A.publicKey||"",pass:A.pass||"",host:A.host,port:A.port||"",path:A.path||"",projectId:A.projectId}}function fdA(A){if(!q)return!0;let{port:Q,projectId:B,protocol:I}=A;if(["protocol","publicKey","host","projectId"].find((Y)=>{if(!A[Y])return $.error(`Invalid Sentry Dsn: ${Y} missing`),!0;return!1}))return!1;if(!B.match(/^\d+$/))return $.error(`Invalid Sentry Dsn: Invalid projectId ${B}`),!1;if(!ydA(I))return $.error(`Invalid Sentry Dsn: Invalid protocol ${I}`),!1;if(Q&&isNaN(parseInt(Q,10)))return $.error(`Invalid Sentry Dsn: Invalid port ${Q}`),!1;return!0}function _dA(A){return A.match(SdA)?.[1]}function p1(A){let Q=A.getOptions(),{host:B}=A.getDsn()||{},I;if(Q.orgId)I=String(Q.orgId);else if(B)I=_dA(B);return I}function Yn(A){let Q=typeof A==="string"?hdA(A):En(A);if(!Q||!fdA(Q))return;return Q}var FZ=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$");function Jn(A){if(!A)return;let Q=A.match(FZ);if(!Q)return;let B;if(Q[3]==="1")B=!0;else if(Q[3]==="0")B=!1;return{traceId:Q[1],parentSampled:B,parentSpanId:Q[2]}}function GZ(A,Q){let B=Jn(A),I=oC(Q);if(!B?.traceId)return{traceId:UB(),sampleRand:jQ()};let C=vdA(B,I);if(I)I.sample_rand=C.toString();let{traceId:E,parentSpanId:Y,parentSampled:J}=B;return{traceId:E,parentSpanId:Y,sampled:J,dsc:I||{},sampleRand:C}}function oE(A=UB(),Q=XB(),B){let I="";if(B!==void 0)I=B?"-1":"-0";return`${A}-${Q}${I}`}function aE(A=UB(),Q=XB(),B){return`00-${A}-${Q}-${B?"01":"00"}`}function vdA(A,Q){let B=fB(Q?.sample_rand);if(B!==void 0)return B;let I=fB(Q?.sample_rate);if(I&&A?.parentSampled!==void 0)return A.parentSampled?jQ()*I:I+jQ()*(1-I);else return jQ()}function c3(A,Q){let B=p1(A);if(Q&&B&&Q!==B)return $.log(`Won't continue trace because org IDs don't match (incoming baggage: ${Q}, SDK options: ${B})`),!1;if(A.getOptions().strictTraceContinuation||!1){if(Q&&!B||!Q&&B)return $.log(`Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${Q}, Sentry client: ${B})`),!1}return!0}var i1=0,n1=1,Fn=!1;function Dn(A){let{spanId:Q,traceId:B}=A.spanContext(),{data:I,op:C,parent_span_id:E,status:Y,origin:J,links:F}=v(A);return{parent_span_id:E,span_id:Q,trace_id:B,data:I,op:C,status:Y,origin:J,links:F}}function sE(A){let{spanId:Q,traceId:B,isRemote:I}=A.spanContext(),C=I?Q:v(A).parent_span_id,E=_I(A).scope,Y=I?E?.getPropagationContext().propagationSpanId||XB():Q;return{parent_span_id:C,span_id:Y,trace_id:B}}function ZZ(A){let{traceId:Q,spanId:B}=A.spanContext(),I=bI(A);return oE(Q,B,I)}function Zn(A){let{traceId:Q,spanId:B}=A.spanContext(),I=bI(A);return aE(Q,B,I)}function HY(A){if(A&&A.length>0)return A.map(({context:{spanId:Q,traceId:B,traceFlags:I,...C},attributes:E})=>({span_id:Q,trace_id:B,sampled:I===n1,attributes:E,...C}));else return}function wB(A){if(typeof A==="number")return Gn(A);if(Array.isArray(A))return A[0]+A[1]/1e9;if(A instanceof Date)return Gn(A.getTime());return XC()}function Gn(A){return A>9999999999?A/1000:A}function v(A){if(bdA(A))return A.getSpanJSON();let{spanId:Q,traceId:B}=A.spanContext();if(xdA(A)){let{attributes:I,startTime:C,name:E,endTime:Y,status:J,links:F}=A,G="parentSpanId"in A?A.parentSpanId:("parentSpanContext"in A)?A.parentSpanContext?.spanId:void 0;return{span_id:Q,trace_id:B,data:I,description:E,parent_span_id:G,start_timestamp:wB(C),timestamp:wB(Y)||void 0,status:MY(J),op:I[u],origin:I[x],links:HY(F)}}return{span_id:Q,trace_id:B,start_timestamp:0,data:{}}}function xdA(A){let Q=A;return!!Q.attributes&&!!Q.startTime&&!!Q.name&&!!Q.endTime&&!!Q.status}function bdA(A){return typeof A.getSpanJSON==="function"}function bI(A){let{traceFlags:Q}=A.spanContext();return Q===n1}function MY(A){if(!A||A.code===L3)return;if(A.code===KF)return"ok";return A.message||"internal_error"}var DZ="_sentryChildSpans",u3="_sentryRootSpan";function RF(A,Q){let B=A[u3]||A;if(EQ(Q,u3,B),A[DZ])A[DZ].add(Q);else EQ(A,DZ,new Set([Q]))}function WZ(A){let Q=new Set;function B(I){if(Q.has(I))return;else if(bI(I)){Q.add(I);let C=I[DZ]?Array.from(I[DZ]):[];for(let E of C)B(E)}}return B(A),Array.from(Q)}function bA(A){return A[u3]||A}function vB(){let A=nQ(),Q=vI(A);if(Q.getActiveSpan)return Q.getActiveSpan();return nC(FA())}function UZ(){if(!Fn)eA(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),Fn=!0}var qF="production";var Wn="_frozenDsc";function o1(A,Q){EQ(A,Wn,Q)}function l3(A,Q){let B=Q.getOptions(),{publicKey:I}=Q.getDsn()||{},C={environment:B.environment||qF,release:B.release,public_key:I,trace_id:A,org_id:p1(Q)};return Q.emit("createDsc",C),C}function wC(A,Q){let B=Q.getPropagationContext();return B.dsc||l3(B.traceId,A)}function QQ(A){let Q=g();if(!Q)return{};let B=bA(A),I=v(B),C=I.data,E=B.spanContext().traceState,Y=E?.get("sentry.sample_rate")??C[JI]??C[h3];function J(w){if(typeof Y==="number"||typeof Y==="string")w.sample_rate=`${Y}`;return w}let F=B[Wn];if(F)return J(F);let G=E?.get("sentry.dsc"),D=G&&oC(G);if(D)return J(D);let Z=l3(A.spanContext().traceId,Q),W=C[_A],U=I.description;if(W!=="url"&&U)Z.transaction=U;if(AQ())Z.sampled=String(bI(B)),Z.sample_rand=E?.get("sentry.sample_rand")??_I(B).scope?.getPropagationContext().sampleRand.toString();return J(Z),Q.emit("createDsc",Z,B),Z}function XZ(A){if(!q)return;let{description:Q="< unknown name >",op:B="< unknown op >",parent_span_id:I}=v(A),{spanId:C}=A.spanContext(),E=bI(A),Y=bA(A),J=Y===A,F=`[Tracing] Starting ${E?"sampled":"unsampled"} ${J?"root ":""}span`,G=[`op: ${B}`,`name: ${Q}`,`ID: ${C}`];if(I)G.push(`parent ID: ${I}`);if(!J){let{op:D,description:Z}=v(Y);if(G.push(`root ID: ${Y.spanContext().spanId}`),D)G.push(`root op: ${D}`);if(Z)G.push(`root description: ${Z}`)}$.log(`${F} +`+E),A.push(C+"m+"+R2.exports.humanize(this.diff)+"\x1B[0m")}else A[0]=p_A()+Q+" "+A[0]}function p_A(){if(Ms.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function i_A(...A){return process.stderr.write(j2.formatWithOptions(Ms.inspectOpts,...A)+` +`)}function o_A(A){if(A)process.env.DEBUG=A;else delete process.env.DEBUG}function n_A(){return process.env.DEBUG}function s_A(A){A.inspectOpts={};let Q=Object.keys(Ms.inspectOpts);for(let B=0;BQ.trim()).join(" ")};Hs.O=function(A){return this.inspectOpts.colors=this.useColors,j2.inspect(A,this.inspectOpts)}});var js=z((eWQ,m6)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)m6.exports=$s();else m6.exports=Ns()});var c6=z((AwQ,Rs)=>{var d6=j("path").sep;Rs.exports=function(A){var Q=A.split(d6),B=Q.lastIndexOf("node_modules");if(B===-1)return;if(!Q[B+1])return;var I=Q[B+1][0]==="@",C=I?Q[B+1]+"/"+Q[B+2]:Q[B+1],E=I?3:2,Y="",J=B+E-1;for(var F=0;F<=J;F++)if(F===J)Y+=Q[F];else Y+=Q[F]+d6;var G="",D=Q.length-1;for(var Z=B+E;Z<=D;Z++)if(Z===D)G+=Q[Z];else G+=Q[Z]+d6;return{name:C,basedir:Y,path:G}}});var p6=z((QwQ,l6)=>{var LG=j("path"),iI=j("module"),KQ=js()("require-in-the-middle"),IyA=c6();l6.exports=UU;l6.exports.Hook=UU;var u6,q2;if(iI.isBuiltin)q2=iI.isBuiltin;else if(iI.builtinModules)q2=(A)=>{if(A.startsWith("node:"))return!0;if(u6===void 0)u6=new Set(iI.builtinModules);return u6.has(A)};else throw Error("'require-in-the-middle' requires Node.js >=v9.3.0 or >=v8.10.0");var CyA=/([/\\]index)?(\.js)?$/;class qs{constructor(){this._localCache=new Map,this._kRitmExports=Symbol("RitmExports")}has(A,Q){if(this._localCache.has(A))return!0;else if(!Q){let B=j.cache[A];return!!(B&&(this._kRitmExports in B))}else return!1}get(A,Q){let B=this._localCache.get(A);if(B!==void 0)return B;else if(!Q){let I=j.cache[A];return I&&I[this._kRitmExports]}}set(A,Q,B){if(B)this._localCache.set(A,Q);else if(A in j.cache)j.cache[A][this._kRitmExports]=Q;else KQ('non-core module is unexpectedly not in require.cache: "%s"',A),this._localCache.set(A,Q)}}function UU(A,Q,B){if(this instanceof UU===!1)return new UU(A,Q,B);if(typeof A==="function")B=A,A=null,Q=null;else if(typeof Q==="function")B=Q,Q=null;if(typeof iI._resolveFilename!=="function"){console.error("Error: Expected Module._resolveFilename to be a function (was: %s) - aborting!",typeof iI._resolveFilename),console.error("Please report this error as an issue related to Node.js %s at https://github.com/nodejs/require-in-the-middle/issues",process.version);return}this._cache=new qs,this._unhooked=!1,this._origRequire=iI.prototype.require;let I=this,C=new Set,E=Q?Q.internals===!0:!1,Y=Array.isArray(A);if(KQ("registering require hook"),this._require=iI.prototype.require=function(F){if(I._unhooked===!0)return KQ("ignoring require call - module is soft-unhooked"),I._origRequire.apply(this,arguments);return J.call(this,arguments,!1)},typeof process.getBuiltinModule==="function")this._origGetBuiltinModule=process.getBuiltinModule,this._getBuiltinModule=process.getBuiltinModule=function(F){if(I._unhooked===!0)return KQ("ignoring process.getBuiltinModule call - module is soft-unhooked"),I._origGetBuiltinModule.apply(this,arguments);return J.call(this,arguments,!0)};function J(F,G){let D=F[0],Z=q2(D),U;if(Z){if(U=D,D.startsWith("node:")){let M=D.slice(5);if(q2(M))U=M}}else if(G)return KQ("call to process.getBuiltinModule with unknown built-in id"),I._origGetBuiltinModule.apply(this,F);else try{U=iI._resolveFilename(D,this)}catch(M){return KQ('Module._resolveFilename("%s") threw %j, calling original Module.require',D,M.message),I._origRequire.apply(this,F)}let W,w;if(KQ("processing %s module require('%s'): %s",Z===!0?"core":"non-core",D,U),I._cache.has(U,Z)===!0)return KQ("returning already patched cached module: %s",U),I._cache.get(U,Z);let K=C.has(U);if(K===!1)C.add(U);let X=G?I._origGetBuiltinModule.apply(this,F):I._origRequire.apply(this,F);if(K===!0)return KQ("module is in the process of being patched already - ignoring: %s",U),X;if(C.delete(U),Z===!0){if(Y===!0&&A.includes(U)===!1)return KQ("ignoring core module not on whitelist: %s",U),X;W=U}else if(Y===!0&&A.includes(U)){let M=LG.parse(U);W=M.name,w=M.dir}else{let M=IyA(U);if(M===void 0)return KQ("could not parse filename: %s",U),X;W=M.name,w=M.basedir;let N=EyA(M);KQ("resolved filename to module: %s (id: %s, resolved: %s, basedir: %s)",W,D,N,w);let L=!1;if(Y){if(!D.startsWith(".")&&A.includes(D))W=D,L=!0;if(!A.includes(W)&&!A.includes(N))return X;if(A.includes(N)&&N!==W)W=N,L=!0}if(!L){let R;try{R=j.resolve(W,{paths:[w]})}catch(P){return KQ("could not resolve module: %s",W),I._cache.set(U,X,Z),X}if(R!==U)if(E===!0)W=W+LG.sep+LG.relative(w,U),KQ("preparing to process require of internal file: %s",W);else return KQ("ignoring require of non-main module file: %s",R),I._cache.set(U,X,Z),X}}I._cache.set(U,X,Z),KQ("calling require hook: %s",W);let V=B(X,W,w);return I._cache.set(U,V,Z),KQ("returning module: %s",W),V}}UU.prototype.unhook=function(){if(this._unhooked=!0,this._require===iI.prototype.require)iI.prototype.require=this._origRequire,KQ("require unhook successful");else KQ("require unhook unsuccessful");if(process.getBuiltinModule!==void 0)if(this._getBuiltinModule===process.getBuiltinModule)process.getBuiltinModule=this._origGetBuiltinModule,KQ("process.getBuiltinModule unhook successful");else KQ("process.getBuiltinModule unhook unsuccessful")};function EyA(A){let Q=LG.sep!=="/"?A.path.split(LG.sep).join("/"):A.path;return LG.posix.join(A.name,Q).replace(CyA,"")}});var gs=z((Os)=>{Object.defineProperty(Os,"__esModule",{value:!0});Os.ModuleNameTrie=Os.ModuleNameSeparator=void 0;Os.ModuleNameSeparator="/";class i6{hooks=[];children=new Map}class Ps{_trie=new i6;_counter=0;insert(A){let Q=this._trie;for(let B of A.moduleName.split(Os.ModuleNameSeparator)){let I=Q.children.get(B);if(!I)I=new i6,Q.children.set(B,I);Q=I}Q.hooks.push({hook:A,insertedId:this._counter++})}search(A,{maintainInsertionOrder:Q,fullOnly:B}={}){let I=this._trie,C=[],E=!0;for(let Y of A.split(Os.ModuleNameSeparator)){let J=I.children.get(Y);if(!J){E=!1;break}if(!B)C.push(...J.hooks);I=J}if(B&&E)C.push(...I.hooks);if(C.length===0)return[];if(C.length===1)return[C[0].hook];if(Q)C.sort((Y,J)=>Y.insertedId-J.insertedId);return C.map(({hook:Y})=>Y)}}Os.ModuleNameTrie=Ps});var Ss=z((_s)=>{Object.defineProperty(_s,"__esModule",{value:!0});_s.RequireInTheMiddleSingleton=void 0;var YyA=p6(),Ts=j("path"),n6=gs(),JyA=["afterEach","after","beforeEach","before","describe","it"].every((A)=>{return typeof global[A]==="function"});class P2{_moduleNameTrie=new n6.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new YyA.Hook(null,{internals:!0},(A,Q,B)=>{let I=FyA(Q),C=this._moduleNameTrie.search(I,{maintainInsertionOrder:!0,fullOnly:B===void 0});for(let{onRequire:E}of C)A=E(A,Q,B);return A})}register(A,Q){let B={moduleName:A,onRequire:Q};return this._moduleNameTrie.insert(B),B}static getInstance(){if(JyA)return new P2;return this._instance=this._instance??new P2}}_s.RequireInTheMiddleSingleton=P2;function FyA(A){return Ts.sep!==n6.ModuleNameSeparator?A.split(Ts.sep).join(n6.ModuleNameSeparator):A}});var bs=z((ZyA)=>{var fs=[],s6=new WeakMap,hs=new WeakMap,xs=new Map,vs=[],GyA={set(A,Q,B){let I=s6.get(A),C=I&&I[Q];if(typeof C==="function")return C(B);return!0},get(A,Q){if(Q===Symbol.toStringTag)return"Module";let B=hs.get(A)[Q];if(typeof B==="function")return B()},defineProperty(A,Q,B){if(!("value"in B))throw Error("Getters/setters are not supported for exports property descriptors.");let I=s6.get(A),C=I&&I[Q];if(typeof C==="function")return C(B.value);return!0}};function DyA(A,Q,B,I,C){xs.set(A,C),s6.set(Q,B),hs.set(Q,I);let E=new Proxy(Q,GyA);fs.forEach((Y)=>Y(A,E,C)),vs.push([A,E,C])}ZyA.register=DyA;ZyA.importHooks=fs;ZyA.specifiers=xs;ZyA.toHook=vs});var e6=z((YwQ,jG)=>{var ms=j("path"),VyA=c6(),{fileURLToPath:KyA}=j("url"),{MessageChannel:zyA}=j("worker_threads"),{isBuiltin:a6}=j("module");if(!a6)a6=()=>!0;var{importHooks:r6,specifiers:$yA,toHook:HyA}=bs();function ds(A){r6.push(A),HyA.forEach(([Q,B,I])=>A(Q,B,I))}function cs(A){let Q=r6.indexOf(A);if(Q>-1)r6.splice(Q,1)}function NG(A,Q,B,I){let C=A(Q,B,I);if(C&&C!==Q){if("default"in Q)Q.default=C}}var t6;function MyA(){let{port1:A,port2:Q}=new zyA,B=0,I;t6=(J)=>{B++,A.postMessage(J)},A.on("message",()=>{if(B--,I&&B<=0)I()}).unref();function C(){let J=setInterval(()=>{},1000),F=new Promise((G)=>{I=G}).then(()=>{clearInterval(J)});if(B===0)I();return F}let E=Q;return{registerOptions:{data:{addHookMessagePort:E,include:[]},transferList:[E]},addHookMessagePort:E,waitForAllMessagesAcknowledged:C}}function WU(A,Q,B){if(this instanceof WU===!1)return new WU(A,Q,B);if(typeof A==="function")B=A,A=null,Q=null;else if(typeof Q==="function")B=Q,Q=null;let I=Q?Q.internals===!0:!1;if(t6&&Array.isArray(A))t6(A);this._iitmHook=(C,E,Y)=>{let J=C,F=J.startsWith("node:"),G,D;if(F){let Z=C.slice(5);if(a6(Z))C=Z}else if(J.startsWith("file://")){let Z=Error.stackTraceLimit;Error.stackTraceLimit=0;try{G=KyA(C),C=G}catch(U){}if(Error.stackTraceLimit=Z,G){let U=VyA(G);if(U)C=U.name,D=U.basedir}}if(A){for(let Z of A)if(G&&Z===G)NG(B,E,G,void 0);else if(Z===C){if(!D)NG(B,E,C,D);else if(D.endsWith($yA.get(J)))NG(B,E,C,D);else if(I){let U=C+ms.sep+ms.relative(D,G);NG(B,E,U,D)}}else if(Z===Y)NG(B,E,Y,D)}else NG(B,E,C,D)},ds(this._iitmHook)}WU.prototype.unhook=function(){cs(this._iitmHook)};jG.exports=WU;jG.exports.Hook=WU;jG.exports.addHook=ds;jG.exports.removeHook=cs;jG.exports.createAddHookMessageChannel=MyA});var A7=z((us)=>{Object.defineProperty(us,"__esModule",{value:!0});us.isWrapped=us.safeExecuteInTheMiddleAsync=us.safeExecuteInTheMiddle=void 0;function LyA(A,Q,B){let I,C;try{C=A()}catch(E){I=E}finally{if(Q(I,C),I&&!B)throw I;return C}}us.safeExecuteInTheMiddle=LyA;async function NyA(A,Q,B){let I,C;try{C=await A()}catch(E){I=E}finally{if(await Q(I,C),I&&!B)throw I;return C}}us.safeExecuteInTheMiddleAsync=NyA;function jyA(A){return typeof A==="function"&&typeof A.__original==="function"&&typeof A.__unwrap==="function"&&A.__wrapped===!0}us.isWrapped=jyA});var as=z((ns)=>{Object.defineProperty(ns,"__esModule",{value:!0});ns.InstrumentationBase=void 0;var wU=j("path"),ps=j("util"),PyA=Fs(),Q7=x6(),OyA=ws(),kyA=Ss(),gyA=e6(),XU=AA(),TyA=p6(),_yA=j("fs"),yyA=A7();class os extends OyA.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=kyA.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(A,Q,B){super(A,Q,B);let I=this.init();if(I&&!Array.isArray(I))I=[I];if(this._modules=I||[],this._config.enabled)this.enable()}_wrap=(A,Q,B)=>{if((0,yyA.isWrapped)(A[Q]))this._unwrap(A,Q);if(!ps.types.isProxy(A))return(0,Q7.wrap)(A,Q,B);else{let I=(0,Q7.wrap)(Object.assign({},A),Q,B);return Object.defineProperty(A,Q,{value:I}),I}};_unwrap=(A,Q)=>{if(!ps.types.isProxy(A))return(0,Q7.unwrap)(A,Q);else return Object.defineProperty(A,Q,{value:A[Q]})};_massWrap=(A,Q,B)=>{if(!A){XU.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){XU.diag.error("must provide one or more functions to wrap on modules");return}A.forEach((I)=>{Q.forEach((C)=>{this._wrap(I,C,B)})})};_massUnwrap=(A,Q)=>{if(!A){XU.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray(A))A=[A];if(!(Q&&Array.isArray(Q))){XU.diag.error("must provide one or more functions to wrap on modules");return}A.forEach((B)=>{Q.forEach((I)=>{this._unwrap(B,I)})})};_warnOnPreloadedModules(){let A=globalThis.require;if(!A?.resolve||!A?.cache)return;this._modules.forEach((Q)=>{let{name:B}=Q;try{let I=A.resolve(B);if(A.cache[I]?.loaded)this._diag.warn(`Module ${B} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${B}`)}catch{}})}_extractPackageVersion(A){try{let Q=(0,_yA.readFileSync)(wU.join(A,"package.json"),{encoding:"utf8"}),B=JSON.parse(Q).version;return typeof B==="string"?B:void 0}catch{XU.diag.warn("Failed extracting version",A)}return}_onRequire(A,Q,B,I){if(!I){if(typeof A.patch==="function"){if(A.moduleExports=Q,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:A.name}),A.patch(Q)}return Q}let C=this._extractPackageVersion(I);if(A.moduleVersion=C,A.name===B){if(is(A.supportedVersions,C,A.includePrerelease)){if(typeof A.patch==="function"){if(A.moduleExports=Q,this._enabled)return this._diag.debug("Applying instrumentation patch for module on require hook",{module:A.name,version:A.moduleVersion,baseDir:I}),A.patch(Q,A.moduleVersion)}}return Q}let E=A.files??[],Y=wU.normalize(B);return E.filter((F)=>F.name===Y&&is(F.supportedVersions,C,A.includePrerelease)).reduce((F,G)=>{if(G.moduleExports=F,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:A.name,version:A.moduleVersion,fileName:G.name,baseDir:I}),G.patch(F,A.moduleVersion);return F},Q)}enable(){if(this._enabled)return;if(this._enabled=!0,this._hooks.length>0){for(let A of this._modules){if(typeof A.patch==="function"&&A.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:A.name,version:A.moduleVersion}),A.patch(A.moduleExports,A.moduleVersion);for(let Q of A.files)if(Q.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:A.name,version:A.moduleVersion,fileName:Q.name}),Q.patch(Q.moduleExports,A.moduleVersion)}return}this._warnOnPreloadedModules();for(let A of this._modules){let Q=(E,Y,J)=>{if(!J&&wU.isAbsolute(Y)){let F=wU.parse(Y);Y=F.name,J=F.dir}return this._onRequire(A,E,Y,J)},B=(E,Y,J)=>{return this._onRequire(A,E,Y,J)},I=wU.isAbsolute(A.name)?new TyA.Hook([A.name],{internals:!0},B):this._requireInTheMiddleSingleton.register(A.name,B);this._hooks.push(I);let C=new gyA.Hook([A.name],{internals:!0},Q);this._hooks.push(C)}}disable(){if(!this._enabled)return;this._enabled=!1;for(let A of this._modules){if(typeof A.unpatch==="function"&&A.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:A.name,version:A.moduleVersion}),A.unpatch(A.moduleExports,A.moduleVersion);for(let Q of A.files)if(Q.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:A.name,version:A.moduleVersion,fileName:Q.name}),Q.unpatch(Q.moduleExports,A.moduleVersion)}}isEnabled(){return this._enabled}}ns.InstrumentationBase=os;function is(A,Q,B){if(typeof Q>"u")return A.includes("*");return A.some((I)=>{return(0,PyA.satisfies)(Q,I,{includePrerelease:B})})}});var rs=z((B7)=>{Object.defineProperty(B7,"__esModule",{value:!0});B7.normalize=void 0;var SyA=j("path");Object.defineProperty(B7,"normalize",{enumerable:!0,get:function(){return SyA.normalize}})});var ts=z((O2)=>{Object.defineProperty(O2,"__esModule",{value:!0});O2.normalize=O2.InstrumentationBase=void 0;var hyA=as();Object.defineProperty(O2,"InstrumentationBase",{enumerable:!0,get:function(){return hyA.InstrumentationBase}});var xyA=rs();Object.defineProperty(O2,"normalize",{enumerable:!0,get:function(){return xyA.normalize}})});var I7=z((k2)=>{Object.defineProperty(k2,"__esModule",{value:!0});k2.normalize=k2.InstrumentationBase=void 0;var es=ts();Object.defineProperty(k2,"InstrumentationBase",{enumerable:!0,get:function(){return es.InstrumentationBase}});Object.defineProperty(k2,"normalize",{enumerable:!0,get:function(){return es.normalize}})});var Ia=z((Qa)=>{Object.defineProperty(Qa,"__esModule",{value:!0});Qa.InstrumentationNodeModuleDefinition=void 0;class Aa{files;name;supportedVersions;patch;unpatch;constructor(A,Q,B,I,C){this.files=C||[],this.name=A,this.supportedVersions=Q,this.patch=B,this.unpatch=I}}Qa.InstrumentationNodeModuleDefinition=Aa});var Ja=z((Ea)=>{Object.defineProperty(Ea,"__esModule",{value:!0});Ea.InstrumentationNodeModuleFile=void 0;var myA=I7();class Ca{name;supportedVersions;patch;unpatch;constructor(A,Q,B,I){this.name=(0,myA.normalize)(A),this.supportedVersions=Q,this.patch=B,this.unpatch=I}}Ea.InstrumentationNodeModuleFile=Ca});var Za=z((Ga)=>{Object.defineProperty(Ga,"__esModule",{value:!0});Ga.semconvStabilityFromStr=Ga.SemconvStability=void 0;var g2;(function(A){A[A.STABLE=1]="STABLE",A[A.OLD=2]="OLD",A[A.DUPLICATE=3]="DUPLICATE"})(g2=Ga.SemconvStability||(Ga.SemconvStability={}));function dyA(A,Q){let B=g2.OLD,I=Q?.split(",").map((C)=>C.trim()).filter((C)=>C!=="");for(let C of I??[])if(C.toLowerCase()===A+"/dup"){B=g2.DUPLICATE;break}else if(C.toLowerCase()===A)B=g2.STABLE;return B}Ga.semconvStabilityFromStr=dyA});var jA=z((oI)=>{Object.defineProperty(oI,"__esModule",{value:!0});oI.semconvStabilityFromStr=oI.SemconvStability=oI.safeExecuteInTheMiddleAsync=oI.safeExecuteInTheMiddle=oI.isWrapped=oI.InstrumentationNodeModuleFile=oI.InstrumentationNodeModuleDefinition=oI.InstrumentationBase=oI.registerInstrumentations=void 0;var cyA=rn();Object.defineProperty(oI,"registerInstrumentations",{enumerable:!0,get:function(){return cyA.registerInstrumentations}});var uyA=I7();Object.defineProperty(oI,"InstrumentationBase",{enumerable:!0,get:function(){return uyA.InstrumentationBase}});var lyA=Ia();Object.defineProperty(oI,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return lyA.InstrumentationNodeModuleDefinition}});var pyA=Ja();Object.defineProperty(oI,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return pyA.InstrumentationNodeModuleFile}});var C7=A7();Object.defineProperty(oI,"isWrapped",{enumerable:!0,get:function(){return C7.isWrapped}});Object.defineProperty(oI,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return C7.safeExecuteInTheMiddle}});Object.defineProperty(oI,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return C7.safeExecuteInTheMiddleAsync}});var Ua=Za();Object.defineProperty(oI,"SemconvStability",{enumerable:!0,get:function(){return Ua.SemconvStability}});Object.defineProperty(oI,"semconvStabilityFromStr",{enumerable:!0,get:function(){return Ua.semconvStabilityFromStr}})});var F7=z((Ka)=>{Object.defineProperty(Ka,"__esModule",{value:!0});Ka._clearDefaultServiceNameCache=Ka.defaultServiceName=void 0;var zU;function ISA(){if(zU===void 0)try{let A=globalThis.process.argv0;zU=A?`unknown_service:${A}`:"unknown_service"}catch{zU="unknown_service"}return zU}Ka.defaultServiceName=ISA;function CSA(){zU=void 0}Ka._clearDefaultServiceNameCache=CSA});var Ma=z(($a)=>{Object.defineProperty($a,"__esModule",{value:!0});$a.isPromiseLike=void 0;var YSA=(A)=>{return A!==null&&typeof A==="object"&&typeof A.then==="function"};$a.isPromiseLike=YSA});var Z7=z((Na)=>{Object.defineProperty(Na,"__esModule",{value:!0});Na.defaultResource=Na.emptyResource=Na.resourceFromDetectedResource=Na.resourceFromAttributes=void 0;var HU=AA(),G7=CB(),QJ=tB(),JSA=F7(),$U=Ma();class MU{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(A,Q){let B=new MU({},Q);return B._rawAttributes=La(A),B._asyncAttributesPending=A.filter(([I,C])=>(0,$U.isPromiseLike)(C)).length>0,B}constructor(A,Q){let B=A.attributes??{};this._rawAttributes=Object.entries(B).map(([I,C])=>{if((0,$U.isPromiseLike)(C))this._asyncAttributesPending=!0;return[I,C]}),this._rawAttributes=La(this._rawAttributes),this._schemaUrl=ZSA(Q?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(!this.asyncAttributesPending)return;for(let A=0;A{if((0,$U.isPromiseLike)(B))return[Q,B.catch((I)=>{HU.diag.debug("promise rejection for resource attribute: %s - %s",Q,I);return})];return[Q,B]})}function ZSA(A){if(typeof A==="string"||A===void 0)return A;HU.diag.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",A);return}function USA(A,Q){let B=A?.schemaUrl,I=Q?.schemaUrl,C=B===void 0||B==="",E=I===void 0||I==="";if(C)return I;if(E)return B;if(B===I)return B;HU.diag.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',B,I);return}});var Oa=z((qa)=>{Object.defineProperty(qa,"__esModule",{value:!0});qa.detectResources=void 0;var Ra=AA(),U7=Z7(),VSA=(A={})=>{return(A.detectors||[]).map((B)=>{try{let I=(0,U7.resourceFromDetectedResource)(B.detect(A));return Ra.diag.debug(`${B.constructor.name} found resource.`,I),I}catch(I){return Ra.diag.debug(`${B.constructor.name} failed: ${I.message}`),(0,U7.emptyResource)()}}).reduce((B,I)=>B.merge(I),(0,U7.emptyResource)())};qa.detectResources=VSA});var ya=z((Ta)=>{Object.defineProperty(Ta,"__esModule",{value:!0});Ta.envDetector=void 0;var KSA=AA(),zSA=tB(),ka=CB();class ga{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(A){let Q={},B=(0,ka.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),I=(0,ka.getStringFromEnv)("OTEL_SERVICE_NAME");if(B)try{let C=this._parseResourceAttributes(B);Object.assign(Q,C)}catch(C){KSA.diag.debug(`EnvDetector failed: ${C instanceof Error?C.message:C}`)}if(I)Q[zSA.ATTR_SERVICE_NAME]=I;return{attributes:Q}}_parseResourceAttributes(A){if(!A)return{};let Q={},B=A.split(this._COMMA_SEPARATOR);for(let I of B){let C=I.split(this._LABEL_KEY_VALUE_SPLITTER);if(C.length!==2)throw Error(`Invalid format for OTEL_RESOURCE_ATTRIBUTES: "${I}". Expected format: key=value. The ',' and '=' characters must be percent-encoded in keys and values.`);let[E,Y]=C,J=E.trim(),F=Y.trim();if(J.length===0)throw Error(`Invalid OTEL_RESOURCE_ATTRIBUTES: empty attribute key in "${I}".`);let G,D;try{G=decodeURIComponent(J),D=decodeURIComponent(F)}catch(Z){throw Error(`Failed to percent-decode OTEL_RESOURCE_ATTRIBUTES entry "${I}": ${Z instanceof Error?Z.message:Z}`)}if(G.length>this._MAX_LENGTH)throw Error(`Attribute key exceeds the maximum length of ${this._MAX_LENGTH} characters: "${G}".`);if(D.length>this._MAX_LENGTH)throw Error(`Attribute value exceeds the maximum length of ${this._MAX_LENGTH} characters for key "${G}".`);Q[G]=D}return Q}}Ta.envDetector=new ga});var LU=z((Sa)=>{Object.defineProperty(Sa,"__esModule",{value:!0});Sa.ATTR_WEBENGINE_VERSION=Sa.ATTR_WEBENGINE_NAME=Sa.ATTR_WEBENGINE_DESCRIPTION=Sa.ATTR_SERVICE_NAMESPACE=Sa.ATTR_SERVICE_INSTANCE_ID=Sa.ATTR_PROCESS_RUNTIME_VERSION=Sa.ATTR_PROCESS_RUNTIME_NAME=Sa.ATTR_PROCESS_RUNTIME_DESCRIPTION=Sa.ATTR_PROCESS_PID=Sa.ATTR_PROCESS_OWNER=Sa.ATTR_PROCESS_EXECUTABLE_PATH=Sa.ATTR_PROCESS_EXECUTABLE_NAME=Sa.ATTR_PROCESS_COMMAND_ARGS=Sa.ATTR_PROCESS_COMMAND=Sa.ATTR_OS_VERSION=Sa.ATTR_OS_TYPE=Sa.ATTR_K8S_POD_NAME=Sa.ATTR_K8S_NAMESPACE_NAME=Sa.ATTR_K8S_DEPLOYMENT_NAME=Sa.ATTR_K8S_CLUSTER_NAME=Sa.ATTR_HOST_TYPE=Sa.ATTR_HOST_NAME=Sa.ATTR_HOST_IMAGE_VERSION=Sa.ATTR_HOST_IMAGE_NAME=Sa.ATTR_HOST_IMAGE_ID=Sa.ATTR_HOST_ID=Sa.ATTR_HOST_ARCH=Sa.ATTR_CONTAINER_NAME=Sa.ATTR_CONTAINER_IMAGE_TAGS=Sa.ATTR_CONTAINER_IMAGE_NAME=Sa.ATTR_CONTAINER_ID=Sa.ATTR_CLOUD_REGION=Sa.ATTR_CLOUD_PROVIDER=Sa.ATTR_CLOUD_AVAILABILITY_ZONE=Sa.ATTR_CLOUD_ACCOUNT_ID=void 0;Sa.ATTR_CLOUD_ACCOUNT_ID="cloud.account.id";Sa.ATTR_CLOUD_AVAILABILITY_ZONE="cloud.availability_zone";Sa.ATTR_CLOUD_PROVIDER="cloud.provider";Sa.ATTR_CLOUD_REGION="cloud.region";Sa.ATTR_CONTAINER_ID="container.id";Sa.ATTR_CONTAINER_IMAGE_NAME="container.image.name";Sa.ATTR_CONTAINER_IMAGE_TAGS="container.image.tags";Sa.ATTR_CONTAINER_NAME="container.name";Sa.ATTR_HOST_ARCH="host.arch";Sa.ATTR_HOST_ID="host.id";Sa.ATTR_HOST_IMAGE_ID="host.image.id";Sa.ATTR_HOST_IMAGE_NAME="host.image.name";Sa.ATTR_HOST_IMAGE_VERSION="host.image.version";Sa.ATTR_HOST_NAME="host.name";Sa.ATTR_HOST_TYPE="host.type";Sa.ATTR_K8S_CLUSTER_NAME="k8s.cluster.name";Sa.ATTR_K8S_DEPLOYMENT_NAME="k8s.deployment.name";Sa.ATTR_K8S_NAMESPACE_NAME="k8s.namespace.name";Sa.ATTR_K8S_POD_NAME="k8s.pod.name";Sa.ATTR_OS_TYPE="os.type";Sa.ATTR_OS_VERSION="os.version";Sa.ATTR_PROCESS_COMMAND="process.command";Sa.ATTR_PROCESS_COMMAND_ARGS="process.command_args";Sa.ATTR_PROCESS_EXECUTABLE_NAME="process.executable.name";Sa.ATTR_PROCESS_EXECUTABLE_PATH="process.executable.path";Sa.ATTR_PROCESS_OWNER="process.owner";Sa.ATTR_PROCESS_PID="process.pid";Sa.ATTR_PROCESS_RUNTIME_DESCRIPTION="process.runtime.description";Sa.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name";Sa.ATTR_PROCESS_RUNTIME_VERSION="process.runtime.version";Sa.ATTR_SERVICE_INSTANCE_ID="service.instance.id";Sa.ATTR_SERVICE_NAMESPACE="service.namespace";Sa.ATTR_WEBENGINE_DESCRIPTION="webengine.description";Sa.ATTR_WEBENGINE_NAME="webengine.name";Sa.ATTR_WEBENGINE_VERSION="webengine.version"});var y2=z((ha)=>{Object.defineProperty(ha,"__esModule",{value:!0});ha.execAsync=void 0;var eSA=j("child_process"),AfA=j("util");ha.execAsync=AfA.promisify(eSA.exec)});var ma=z((va)=>{Object.defineProperty(va,"__esModule",{value:!0});va.getMachineId=void 0;var QfA=y2(),BfA=AA();async function IfA(){try{let Q=(await(0,QfA.execAsync)('ioreg -rd1 -c "IOPlatformExpertDevice"')).stdout.split(` +`).find((I)=>I.includes("IOPlatformUUID"));if(!Q)return;let B=Q.split('" = "');if(B.length===2)return B[1].slice(0,-1)}catch(A){BfA.diag.debug(`error reading machine id: ${A}`)}return}va.getMachineId=IfA});var ua=z((da)=>{Object.defineProperty(da,"__esModule",{value:!0});da.getMachineId=void 0;var CfA=j("fs"),EfA=AA();async function YfA(){let A=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let Q of A)try{return(await CfA.promises.readFile(Q,{encoding:"utf8"})).trim()}catch(B){EfA.diag.debug(`error reading machine id: ${B}`)}return}da.getMachineId=YfA});var oa=z((pa)=>{Object.defineProperty(pa,"__esModule",{value:!0});pa.getMachineId=void 0;var JfA=j("fs"),FfA=y2(),la=AA();async function GfA(){try{return(await JfA.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(A){la.diag.debug(`error reading machine id: ${A}`)}try{return(await(0,FfA.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(A){la.diag.debug(`error reading machine id: ${A}`)}return}pa.getMachineId=GfA});var ra=z((sa)=>{Object.defineProperty(sa,"__esModule",{value:!0});sa.getMachineId=void 0;var na=j("process"),DfA=y2(),ZfA=AA();async function UfA(){let Q="%windir%\\System32\\REG.exe";if(na.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in na.env)Q="%windir%\\sysnative\\cmd.exe /c "+Q;try{let I=(await(0,DfA.execAsync)(`${Q} QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid`)).stdout.split("REG_SZ");if(I.length===2)return I[1].trim()}catch(B){ZfA.diag.debug(`error reading machine id: ${B}`)}return}sa.getMachineId=UfA});var Ar=z((ta)=>{Object.defineProperty(ta,"__esModule",{value:!0});ta.getMachineId=void 0;var WfA=AA();async function wfA(){WfA.diag.debug("could not read machine-id: unsupported platform");return}ta.getMachineId=wfA});var Ir=z((Qr)=>{Object.defineProperty(Qr,"__esModule",{value:!0});Qr.getMachineId=void 0;var XfA=j("process"),BJ;async function VfA(){if(!BJ)switch(XfA.platform){case"darwin":BJ=(await Promise.resolve().then(() => m(ma()))).getMachineId;break;case"linux":BJ=(await Promise.resolve().then(() => m(ua()))).getMachineId;break;case"freebsd":BJ=(await Promise.resolve().then(() => m(oa()))).getMachineId;break;case"win32":BJ=(await Promise.resolve().then(() => m(ra()))).getMachineId;break;default:BJ=(await Promise.resolve().then(() => m(Ar()))).getMachineId;break}return BJ()}Qr.getMachineId=VfA});var W7=z((Cr)=>{Object.defineProperty(Cr,"__esModule",{value:!0});Cr.normalizeType=Cr.normalizeArch=void 0;var KfA=(A)=>{switch(A){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return A}};Cr.normalizeArch=KfA;var zfA=(A)=>{switch(A){case"sunos":return"solaris";case"win32":return"windows";default:return A}};Cr.normalizeType=zfA});var Dr=z((Fr)=>{Object.defineProperty(Fr,"__esModule",{value:!0});Fr.hostDetector=void 0;var w7=LU(),Yr=j("os"),HfA=Ir(),MfA=W7();class Jr{detect(A){return{attributes:{[w7.ATTR_HOST_NAME]:(0,Yr.hostname)(),[w7.ATTR_HOST_ARCH]:(0,MfA.normalizeArch)((0,Yr.arch)()),[w7.ATTR_HOST_ID]:(0,HfA.getMachineId)()}}}}Fr.hostDetector=new Jr});var Vr=z((wr)=>{Object.defineProperty(wr,"__esModule",{value:!0});wr.osDetector=void 0;var Zr=LU(),Ur=j("os"),LfA=W7();class Wr{detect(A){return{attributes:{[Zr.ATTR_OS_TYPE]:(0,LfA.normalizeType)((0,Ur.platform)()),[Zr.ATTR_OS_VERSION]:(0,Ur.release)()}}}}wr.osDetector=new Wr});var Hr=z((zr)=>{Object.defineProperty(zr,"__esModule",{value:!0});zr.processDetector=void 0;var NfA=AA(),KE=LU(),jfA=j("os");class Kr{detect(A){let Q={[KE.ATTR_PROCESS_PID]:process.pid,[KE.ATTR_PROCESS_EXECUTABLE_NAME]:process.title,[KE.ATTR_PROCESS_EXECUTABLE_PATH]:process.execPath,[KE.ATTR_PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[KE.ATTR_PROCESS_RUNTIME_VERSION]:process.versions.node,[KE.ATTR_PROCESS_RUNTIME_NAME]:"nodejs",[KE.ATTR_PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};if(process.argv.length>1)Q[KE.ATTR_PROCESS_COMMAND]=process.argv[1];try{let B=jfA.userInfo();Q[KE.ATTR_PROCESS_OWNER]=B.username}catch(B){NfA.diag.debug(`error obtaining process owner: ${B}`)}return{attributes:Q}}}zr.processDetector=new Kr});var jr=z((Lr)=>{Object.defineProperty(Lr,"__esModule",{value:!0});Lr.serviceInstanceIdDetector=void 0;var RfA=LU(),qfA=j("crypto");class Mr{detect(A){return{attributes:{[RfA.ATTR_SERVICE_INSTANCE_ID]:(0,qfA.randomUUID)()}}}}Lr.serviceInstanceIdDetector=new Mr});var Rr=z((OG)=>{Object.defineProperty(OG,"__esModule",{value:!0});OG.serviceInstanceIdDetector=OG.processDetector=OG.osDetector=OG.hostDetector=void 0;var PfA=Dr();Object.defineProperty(OG,"hostDetector",{enumerable:!0,get:function(){return PfA.hostDetector}});var OfA=Vr();Object.defineProperty(OG,"osDetector",{enumerable:!0,get:function(){return OfA.osDetector}});var kfA=Hr();Object.defineProperty(OG,"processDetector",{enumerable:!0,get:function(){return kfA.processDetector}});var gfA=jr();Object.defineProperty(OG,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return gfA.serviceInstanceIdDetector}})});var qr=z((kG)=>{Object.defineProperty(kG,"__esModule",{value:!0});kG.serviceInstanceIdDetector=kG.processDetector=kG.osDetector=kG.hostDetector=void 0;var S2=Rr();Object.defineProperty(kG,"hostDetector",{enumerable:!0,get:function(){return S2.hostDetector}});Object.defineProperty(kG,"osDetector",{enumerable:!0,get:function(){return S2.osDetector}});Object.defineProperty(kG,"processDetector",{enumerable:!0,get:function(){return S2.processDetector}});Object.defineProperty(kG,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return S2.serviceInstanceIdDetector}})});var kr=z((Pr)=>{Object.defineProperty(Pr,"__esModule",{value:!0});Pr.noopDetector=Pr.NoopDetector=void 0;class X7{detect(){return{attributes:{}}}}Pr.NoopDetector=X7;Pr.noopDetector=new X7});var gr=z((q0)=>{Object.defineProperty(q0,"__esModule",{value:!0});q0.noopDetector=q0.serviceInstanceIdDetector=q0.processDetector=q0.osDetector=q0.hostDetector=q0.envDetector=void 0;var SfA=ya();Object.defineProperty(q0,"envDetector",{enumerable:!0,get:function(){return SfA.envDetector}});var f2=qr();Object.defineProperty(q0,"hostDetector",{enumerable:!0,get:function(){return f2.hostDetector}});Object.defineProperty(q0,"osDetector",{enumerable:!0,get:function(){return f2.osDetector}});Object.defineProperty(q0,"processDetector",{enumerable:!0,get:function(){return f2.processDetector}});Object.defineProperty(q0,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return f2.serviceInstanceIdDetector}});var ffA=kr();Object.defineProperty(q0,"noopDetector",{enumerable:!0,get:function(){return ffA.noopDetector}})});var Tr=z((HI)=>{Object.defineProperty(HI,"__esModule",{value:!0});HI.defaultServiceName=HI.emptyResource=HI.defaultResource=HI.resourceFromAttributes=HI.serviceInstanceIdDetector=HI.processDetector=HI.osDetector=HI.hostDetector=HI.envDetector=HI.detectResources=void 0;var xfA=Oa();Object.defineProperty(HI,"detectResources",{enumerable:!0,get:function(){return xfA.detectResources}});var NU=gr();Object.defineProperty(HI,"envDetector",{enumerable:!0,get:function(){return NU.envDetector}});Object.defineProperty(HI,"hostDetector",{enumerable:!0,get:function(){return NU.hostDetector}});Object.defineProperty(HI,"osDetector",{enumerable:!0,get:function(){return NU.osDetector}});Object.defineProperty(HI,"processDetector",{enumerable:!0,get:function(){return NU.processDetector}});Object.defineProperty(HI,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return NU.serviceInstanceIdDetector}});var V7=Z7();Object.defineProperty(HI,"resourceFromAttributes",{enumerable:!0,get:function(){return V7.resourceFromAttributes}});Object.defineProperty(HI,"defaultResource",{enumerable:!0,get:function(){return V7.defaultResource}});Object.defineProperty(HI,"emptyResource",{enumerable:!0,get:function(){return V7.emptyResource}});var vfA=F7();Object.defineProperty(HI,"defaultServiceName",{enumerable:!0,get:function(){return vfA.defaultServiceName}})});var Sr=z((_r)=>{Object.defineProperty(_r,"__esModule",{value:!0});_r.ExceptionEventName=void 0;_r.ExceptionEventName="exception"});var vr=z((hr)=>{Object.defineProperty(hr,"__esModule",{value:!0});hr.SpanImpl=void 0;var uQ=AA(),lQ=CB(),IJ=tB(),mfA=Sr();class fr{_spanContext;kind;parentSpanContext;attributes={};links=[];events=[];startTime;resource;instrumentationScope;_droppedAttributesCount=0;_droppedEventsCount=0;_droppedLinksCount=0;_attributesCount=0;name;status={code:uQ.SpanStatusCode.UNSET};endTime=[0,0];_ended=!1;_duration=[-1,-1];_spanProcessor;_spanLimits;_attributeValueLengthLimit;_recordEndMetrics;_performanceStartTime;_performanceOffset;_startTimeProvided;constructor(A){let Q=Date.now();if(this._spanContext=A.spanContext,this._performanceStartTime=lQ.otperformance.now(),this._performanceOffset=Q-(this._performanceStartTime+lQ.otperformance.timeOrigin),this._startTimeProvided=A.startTime!=null,this._spanLimits=A.spanLimits,this._attributeValueLengthLimit=this._spanLimits.attributeValueLengthLimit??0,this._spanProcessor=A.spanProcessor,this.name=A.name,this.parentSpanContext=A.parentSpanContext,this.kind=A.kind,A.links)for(let B of A.links)this.addLink(B);if(this.startTime=this._getTime(A.startTime??Q),this.resource=A.resource,this.instrumentationScope=A.scope,this._recordEndMetrics=A.recordEndMetrics,A.attributes!=null)this.setAttributes(A.attributes);this._spanProcessor.onStart(this,A.context)}spanContext(){return this._spanContext}setAttribute(A,Q){if(Q==null||this._isSpanEnded())return this;if(A.length===0)return uQ.diag.warn(`Invalid attribute key: ${A}`),this;if(!(0,lQ.isAttributeValue)(Q))return uQ.diag.warn(`Invalid attribute value set for key: ${A}`),this;let{attributeCountLimit:B}=this._spanLimits,I=!Object.prototype.hasOwnProperty.call(this.attributes,A);if(B!==void 0&&this._attributesCount>=B&&I)return this._droppedAttributesCount++,this;if(this.attributes[A]=this._truncateToSize(Q),I)this._attributesCount++;return this}setAttributes(A){for(let Q in A)if(Object.prototype.hasOwnProperty.call(A,Q))this.setAttribute(Q,A[Q]);return this}addEvent(A,Q,B){if(this._isSpanEnded())return this;let{eventCountLimit:I}=this._spanLimits;if(I===0)return uQ.diag.warn("No events allowed."),this._droppedEventsCount++,this;if(I!==void 0&&this.events.length>=I){if(this._droppedEventsCount===0)uQ.diag.debug("Dropping extra events.");this.events.shift(),this._droppedEventsCount++}if((0,lQ.isTimeInput)(Q)){if(!(0,lQ.isTimeInput)(B))B=Q;Q=void 0}let C=(0,lQ.sanitizeAttributes)(Q),{attributePerEventCountLimit:E}=this._spanLimits,Y={},J=0,F=0;for(let G in C){if(!Object.prototype.hasOwnProperty.call(C,G))continue;let D=C[G];if(E!==void 0&&F>=E){J++;continue}Y[G]=this._truncateToSize(D),F++}return this.events.push({name:A,attributes:Y,time:this._getTime(B),droppedAttributesCount:J}),this}addLink(A){if(this._isSpanEnded())return this;let{linkCountLimit:Q}=this._spanLimits;if(Q===0)return this._droppedLinksCount++,this;if(Q!==void 0&&this.links.length>=Q){if(this._droppedLinksCount===0)uQ.diag.debug("Dropping extra links.");this.links.shift(),this._droppedLinksCount++}let{attributePerLinkCountLimit:B}=this._spanLimits,I=(0,lQ.sanitizeAttributes)(A.attributes),C={},E=0,Y=0;for(let F in I){if(!Object.prototype.hasOwnProperty.call(I,F))continue;let G=I[F];if(B!==void 0&&Y>=B){E++;continue}C[F]=this._truncateToSize(G),Y++}let J={context:A.context};if(Y>0)J.attributes=C;if(E>0)J.droppedAttributesCount=E;return this.links.push(J),this}addLinks(A){for(let Q of A)this.addLink(Q);return this}setStatus(A){if(this._isSpanEnded())return this;if(A.code===uQ.SpanStatusCode.UNSET)return this;if(this.status.code===uQ.SpanStatusCode.OK)return this;let Q={code:A.code};if(A.code===uQ.SpanStatusCode.ERROR){if(typeof A.message==="string")Q.message=A.message;else if(A.message!=null)uQ.diag.warn(`Dropping invalid status.message of type '${typeof A.message}', expected 'string'`)}return this.status=Q,this}updateName(A){if(this._isSpanEnded())return this;return this.name=A,this}end(A){if(this._isSpanEnded()){uQ.diag.error(`${this.name} ${this._spanContext.traceId}-${this._spanContext.spanId} - You can only call end() on a span once.`);return}if(this.endTime=this._getTime(A),this._duration=(0,lQ.hrTimeDuration)(this.startTime,this.endTime),this._duration[0]<0)uQ.diag.warn("Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.",this.startTime,this.endTime),this.endTime=this.startTime.slice(),this._duration=[0,0];if(this._droppedEventsCount>0)uQ.diag.warn(`Dropped ${this._droppedEventsCount} events because eventCountLimit reached`);if(this._droppedLinksCount>0)uQ.diag.warn(`Dropped ${this._droppedLinksCount} links because linkCountLimit reached`);if(this._spanProcessor.onEnding)this._spanProcessor.onEnding(this);this._recordEndMetrics?.(),this._ended=!0,this._spanProcessor.onEnd(this)}_getTime(A){if(typeof A==="number"&&A<=lQ.otperformance.now())return(0,lQ.hrTime)(A+this._performanceOffset);if(typeof A==="number")return(0,lQ.millisToHrTime)(A);if(A instanceof Date)return(0,lQ.millisToHrTime)(A.getTime());if((0,lQ.isTimeInputHrTime)(A))return A;if(this._startTimeProvided)return(0,lQ.millisToHrTime)(Date.now());let Q=lQ.otperformance.now()-this._performanceStartTime;return(0,lQ.addHrTimes)(this.startTime,(0,lQ.millisToHrTime)(Q))}isRecording(){return this._ended===!1}recordException(A,Q){let B={};if(typeof A==="string")B[IJ.ATTR_EXCEPTION_MESSAGE]=A;else if(A){if(A.code)B[IJ.ATTR_EXCEPTION_TYPE]=A.code.toString();else if(A.name)B[IJ.ATTR_EXCEPTION_TYPE]=A.name;if(A.message)B[IJ.ATTR_EXCEPTION_MESSAGE]=A.message;if(A.stack)B[IJ.ATTR_EXCEPTION_STACKTRACE]=A.stack}if(B[IJ.ATTR_EXCEPTION_TYPE]||B[IJ.ATTR_EXCEPTION_MESSAGE])this.addEvent(mfA.ExceptionEventName,B,Q);else uQ.diag.warn(`Failed to record an exception ${A}`)}get duration(){return this._duration}get ended(){return this._ended}get droppedAttributesCount(){return this._droppedAttributesCount}get droppedEventsCount(){return this._droppedEventsCount}get droppedLinksCount(){return this._droppedLinksCount}_isSpanEnded(){if(this._ended){let A=Error(`Operation attempted on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`);uQ.diag.warn(`Cannot execute the operation on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`,A)}return this._ended}_truncateToLimitUtil(A,Q){if(A.length<=Q)return A;return A.substring(0,Q)}_truncateToSize(A){let Q=this._attributeValueLengthLimit;if(Q<=0)return uQ.diag.warn(`Attribute value limit must be positive, got ${Q}`),A;if(typeof A==="string")return this._truncateToLimitUtil(A,Q);if(Array.isArray(A))return A.map((B)=>typeof B==="string"?this._truncateToLimitUtil(B,Q):B);return A}}hr.SpanImpl=fr});var gG=z((br)=>{Object.defineProperty(br,"__esModule",{value:!0});br.SamplingDecision=void 0;var dfA;(function(A){A[A.NOT_RECORD=0]="NOT_RECORD",A[A.RECORD=1]="RECORD",A[A.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(dfA=br.SamplingDecision||(br.SamplingDecision={}))});var h2=z((dr)=>{Object.defineProperty(dr,"__esModule",{value:!0});dr.AlwaysOffSampler=void 0;var cfA=gG();class mr{shouldSample(){return{decision:cfA.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}}dr.AlwaysOffSampler=mr});var x2=z((lr)=>{Object.defineProperty(lr,"__esModule",{value:!0});lr.AlwaysOnSampler=void 0;var ufA=gG();class ur{shouldSample(){return{decision:ufA.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}}lr.AlwaysOnSampler=ur});var $7=z((nr)=>{Object.defineProperty(nr,"__esModule",{value:!0});nr.ParentBasedSampler=void 0;var v2=AA(),lfA=CB(),ir=h2(),z7=x2();class or{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(A){if(this._root=A.root,!this._root)(0,lfA.globalErrorHandler)(Error("ParentBasedSampler must have a root sampler configured")),this._root=new z7.AlwaysOnSampler;this._remoteParentSampled=A.remoteParentSampled??new z7.AlwaysOnSampler,this._remoteParentNotSampled=A.remoteParentNotSampled??new ir.AlwaysOffSampler,this._localParentSampled=A.localParentSampled??new z7.AlwaysOnSampler,this._localParentNotSampled=A.localParentNotSampled??new ir.AlwaysOffSampler}shouldSample(A,Q,B,I,C,E){let Y=v2.trace.getSpanContext(A);if(!Y||!(0,v2.isSpanContextValid)(Y))return this._root.shouldSample(A,Q,B,I,C,E);if(Y.isRemote){if(Y.traceFlags&v2.TraceFlags.SAMPLED)return this._remoteParentSampled.shouldSample(A,Q,B,I,C,E);return this._remoteParentNotSampled.shouldSample(A,Q,B,I,C,E)}if(Y.traceFlags&v2.TraceFlags.SAMPLED)return this._localParentSampled.shouldSample(A,Q,B,I,C,E);return this._localParentNotSampled.shouldSample(A,Q,B,I,C,E)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}}nr.ParentBasedSampler=or});var H7=z((tr)=>{Object.defineProperty(tr,"__esModule",{value:!0});tr.TraceIdRatioBasedSampler=void 0;var pfA=AA(),ar=gG();class rr{_ratio;_upperBound;constructor(A=0){this._ratio=this._normalize(A),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(A,Q){return{decision:(0,pfA.isValidTraceId)(Q)&&this._accumulate(Q)=1?1:A<=0?0:A}_accumulate(A){let Q=0;for(let B=0;B>>0}return Q}}tr.TraceIdRatioBasedSampler=rr});var N7=z((Ct)=>{Object.defineProperty(Ct,"__esModule",{value:!0});Ct.buildSamplerFromEnv=Ct.loadDefaultConfig=void 0;var L7=AA(),RC=CB(),At=h2(),M7=x2(),b2=$7(),Qt=H7(),qC;(function(A){A.AlwaysOff="always_off",A.AlwaysOn="always_on",A.ParentBasedAlwaysOff="parentbased_always_off",A.ParentBasedAlwaysOn="parentbased_always_on",A.ParentBasedTraceIdRatio="parentbased_traceidratio",A.TraceIdRatio="traceidratio"})(qC||(qC={}));var m2=1;function ifA(){return{sampler:It(),forceFlushTimeoutMillis:30000,generalLimits:{attributeValueLengthLimit:(0,RC.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,RC.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??128},spanLimits:{attributeValueLengthLimit:(0,RC.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,RC.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??128,linkCountLimit:(0,RC.getNumberFromEnv)("OTEL_SPAN_LINK_COUNT_LIMIT")??128,eventCountLimit:(0,RC.getNumberFromEnv)("OTEL_SPAN_EVENT_COUNT_LIMIT")??128,attributePerEventCountLimit:(0,RC.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT")??128,attributePerLinkCountLimit:(0,RC.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT")??128}}}Ct.loadDefaultConfig=ifA;function It(){let A=(0,RC.getStringFromEnv)("OTEL_TRACES_SAMPLER")??qC.ParentBasedAlwaysOn;switch(A){case qC.AlwaysOn:return new M7.AlwaysOnSampler;case qC.AlwaysOff:return new At.AlwaysOffSampler;case qC.ParentBasedAlwaysOn:return new b2.ParentBasedSampler({root:new M7.AlwaysOnSampler});case qC.ParentBasedAlwaysOff:return new b2.ParentBasedSampler({root:new At.AlwaysOffSampler});case qC.TraceIdRatio:return new Qt.TraceIdRatioBasedSampler(Bt());case qC.ParentBasedTraceIdRatio:return new b2.ParentBasedSampler({root:new Qt.TraceIdRatioBasedSampler(Bt())});default:return L7.diag.error(`OTEL_TRACES_SAMPLER value "${A}" invalid, defaulting to "${qC.ParentBasedAlwaysOn}".`),new b2.ParentBasedSampler({root:new M7.AlwaysOnSampler})}}Ct.buildSamplerFromEnv=It;function Bt(){let A=(0,RC.getNumberFromEnv)("OTEL_TRACES_SAMPLER_ARG");if(A==null)return L7.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${m2}.`),m2;if(A<0||A>1)return L7.diag.error(`OTEL_TRACES_SAMPLER_ARG=${A} was given, but it is out of range ([0..1]), defaulting to ${m2}.`),m2;return A}});var j7=z((Jt)=>{Object.defineProperty(Jt,"__esModule",{value:!0});Jt.reconfigureLimits=Jt.mergeConfig=Jt.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=Jt.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;var Yt=N7(),d2=CB();Jt.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Jt.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function nfA(A){let Q={sampler:(0,Yt.buildSamplerFromEnv)()},B=(0,Yt.loadDefaultConfig)(),I=Object.assign({},B,Q,A);return I.generalLimits=Object.assign({},B.generalLimits,A.generalLimits||{}),I.spanLimits=Object.assign({},B.spanLimits,A.spanLimits||{}),I}Jt.mergeConfig=nfA;function sfA(A){let Q=Object.assign({},A.spanLimits);return Q.attributeCountLimit=A.spanLimits?.attributeCountLimit??A.generalLimits?.attributeCountLimit??(0,d2.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??(0,d2.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??Jt.DEFAULT_ATTRIBUTE_COUNT_LIMIT,Q.attributeValueLengthLimit=A.spanLimits?.attributeValueLengthLimit??A.generalLimits?.attributeValueLengthLimit??(0,d2.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??(0,d2.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??Jt.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},A,{spanLimits:Q})}Jt.reconfigureLimits=sfA});var wt=z((Ut)=>{Object.defineProperty(Ut,"__esModule",{value:!0});Ut.BatchSpanProcessorBase=void 0;var TG=AA(),zE=CB();class Zt{_maxExportBatchSize;_maxQueueSize;_scheduledDelayMillis;_exportTimeoutMillis;_exporter;_isExporting=!1;_finishedSpans=[];_timer;_shutdownOnce;_droppedSpansCount=0;constructor(A,Q){if(this._exporter=A,this._maxExportBatchSize=typeof Q?.maxExportBatchSize==="number"?Q.maxExportBatchSize:(0,zE.getNumberFromEnv)("OTEL_BSP_MAX_EXPORT_BATCH_SIZE")??512,this._maxQueueSize=typeof Q?.maxQueueSize==="number"?Q.maxQueueSize:(0,zE.getNumberFromEnv)("OTEL_BSP_MAX_QUEUE_SIZE")??2048,this._scheduledDelayMillis=typeof Q?.scheduledDelayMillis==="number"?Q.scheduledDelayMillis:(0,zE.getNumberFromEnv)("OTEL_BSP_SCHEDULE_DELAY")??5000,this._exportTimeoutMillis=typeof Q?.exportTimeoutMillis==="number"?Q.exportTimeoutMillis:(0,zE.getNumberFromEnv)("OTEL_BSP_EXPORT_TIMEOUT")??30000,this._shutdownOnce=new zE.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize)TG.diag.warn("BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize"),this._maxExportBatchSize=this._maxQueueSize}forceFlush(){if(this._shutdownOnce.isCalled)return this._shutdownOnce.promise;return this._flushAll()}onStart(A,Q){}onEnd(A){if(this._shutdownOnce.isCalled)return;if((A.spanContext().traceFlags&TG.TraceFlags.SAMPLED)===0)return;this._addToBuffer(A)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return Promise.resolve().then(()=>{return this.onShutdown()}).then(()=>{return this._flushAll()}).then(()=>{return this._exporter.shutdown()})}_addToBuffer(A){if(this._finishedSpans.length>=this._maxQueueSize){if(this._droppedSpansCount===0)TG.diag.debug("maxQueueSize reached, dropping spans");this._droppedSpansCount++;return}if(this._droppedSpansCount>0)TG.diag.warn(`Dropped ${this._droppedSpansCount} spans because maxQueueSize reached`),this._droppedSpansCount=0;this._finishedSpans.push(A),this._maybeStartTimer()}_flushAll(){return new Promise((A,Q)=>{let B=[],I=Math.ceil(this._finishedSpans.length/this._maxExportBatchSize);for(let C=0,E=I;C{A()}).catch(Q)})}_flushOneBatch(){if(this._clearTimer(),this._finishedSpans.length===0)return Promise.resolve();return new Promise((A,Q)=>{let B=setTimeout(()=>{Q(Error("Timeout"))},this._exportTimeoutMillis);TG.context.with((0,zE.suppressTracing)(TG.context.active()),()=>{let I;if(this._finishedSpans.length<=this._maxExportBatchSize)I=this._finishedSpans,this._finishedSpans=[];else I=this._finishedSpans.splice(0,this._maxExportBatchSize);let C=()=>this._exporter.export(I,(Y)=>{if(clearTimeout(B),Y.code===zE.ExportResultCode.SUCCESS)A();else Q(Y.error??Error("BatchSpanProcessor: span export failed"))}),E=null;for(let Y=0,J=I.length;Y{(0,zE.globalErrorHandler)(Y),Q(Y)})})})}_maybeStartTimer(){if(this._isExporting)return;let A=()=>{this._isExporting=!0,this._flushOneBatch().finally(()=>{if(this._isExporting=!1,this._finishedSpans.length>0)this._clearTimer(),this._maybeStartTimer()}).catch((Q)=>{this._isExporting=!1,(0,zE.globalErrorHandler)(Q)})};if(this._finishedSpans.length>=this._maxExportBatchSize)return A();if(this._timer!==void 0)return;if(this._timer=setTimeout(()=>A(),this._scheduledDelayMillis),typeof this._timer!=="number")this._timer.unref()}_clearTimer(){if(this._timer!==void 0)clearTimeout(this._timer),this._timer=void 0}}Ut.BatchSpanProcessorBase=Zt});var zt=z((Vt)=>{Object.defineProperty(Vt,"__esModule",{value:!0});Vt.BatchSpanProcessor=void 0;var rfA=wt();class Xt extends rfA.BatchSpanProcessorBase{onShutdown(){}}Vt.BatchSpanProcessor=Xt});var jt=z((Lt)=>{Object.defineProperty(Lt,"__esModule",{value:!0});Lt.RandomIdGenerator=void 0;var tfA=8,Ht=16;class Mt{generateTraceId=$t(Ht);generateSpanId=$t(tfA)}Lt.RandomIdGenerator=Mt;var c2=Buffer.allocUnsafe(Ht);function $t(A){return function(){for(let B=0;B>>0,B*4);for(let B=0;B0)break;else if(B===A-1)c2[A-1]=1;return c2.toString("hex",0,A)}}});var Rt=z((u2)=>{Object.defineProperty(u2,"__esModule",{value:!0});u2.RandomIdGenerator=u2.BatchSpanProcessor=void 0;var efA=zt();Object.defineProperty(u2,"BatchSpanProcessor",{enumerable:!0,get:function(){return efA.BatchSpanProcessor}});var AhA=jt();Object.defineProperty(u2,"RandomIdGenerator",{enumerable:!0,get:function(){return AhA.RandomIdGenerator}})});var R7=z((l2)=>{Object.defineProperty(l2,"__esModule",{value:!0});l2.RandomIdGenerator=l2.BatchSpanProcessor=void 0;var qt=Rt();Object.defineProperty(l2,"BatchSpanProcessor",{enumerable:!0,get:function(){return qt.BatchSpanProcessor}});Object.defineProperty(l2,"RandomIdGenerator",{enumerable:!0,get:function(){return qt.RandomIdGenerator}})});var kt=z((Pt)=>{Object.defineProperty(Pt,"__esModule",{value:!0});Pt.METRIC_OTEL_SDK_SPAN_STARTED=Pt.METRIC_OTEL_SDK_SPAN_LIVE=Pt.ATTR_OTEL_SPAN_SAMPLING_RESULT=Pt.ATTR_OTEL_SPAN_PARENT_ORIGIN=void 0;Pt.ATTR_OTEL_SPAN_PARENT_ORIGIN="otel.span.parent.origin";Pt.ATTR_OTEL_SPAN_SAMPLING_RESULT="otel.span.sampling_result";Pt.METRIC_OTEL_SDK_SPAN_LIVE="otel.sdk.span.live";Pt.METRIC_OTEL_SDK_SPAN_STARTED="otel.sdk.span.started"});var yt=z((Tt)=>{Object.defineProperty(Tt,"__esModule",{value:!0});Tt.TracerMetrics=void 0;var p2=gG(),jU=kt();class gt{startedSpans;liveSpans;constructor(A){this.startedSpans=A.createCounter(jU.METRIC_OTEL_SDK_SPAN_STARTED,{unit:"{span}",description:"The number of created spans."}),this.liveSpans=A.createUpDownCounter(jU.METRIC_OTEL_SDK_SPAN_LIVE,{unit:"{span}",description:"The number of currently live spans."})}startSpan(A,Q){let B=JhA(Q);if(this.startedSpans.add(1,{[jU.ATTR_OTEL_SPAN_PARENT_ORIGIN]:YhA(A),[jU.ATTR_OTEL_SPAN_SAMPLING_RESULT]:B}),Q===p2.SamplingDecision.NOT_RECORD)return()=>{};let I={[jU.ATTR_OTEL_SPAN_SAMPLING_RESULT]:B};return this.liveSpans.add(1,I),()=>{this.liveSpans.add(-1,I)}}}Tt.TracerMetrics=gt;function YhA(A){if(!A)return"none";if(A.isRemote)return"remote";return"local"}function JhA(A){switch(A){case p2.SamplingDecision.RECORD_AND_SAMPLED:return"RECORD_AND_SAMPLE";case p2.SamplingDecision.RECORD:return"RECORD_ONLY";case p2.SamplingDecision.NOT_RECORD:return"DROP"}}});var ht=z((St)=>{Object.defineProperty(St,"__esModule",{value:!0});St.VERSION=void 0;St.VERSION="2.6.1"});var mt=z((vt)=>{Object.defineProperty(vt,"__esModule",{value:!0});vt.Tracer=void 0;var yQ=AA(),i2=CB(),FhA=vr(),GhA=j7(),DhA=R7(),ZhA=yt(),UhA=ht();class xt{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;_tracerMetrics;constructor(A,Q,B,I){let C=(0,GhA.mergeConfig)(Q);this._sampler=C.sampler,this._generalLimits=C.generalLimits,this._spanLimits=C.spanLimits,this._idGenerator=Q.idGenerator||new DhA.RandomIdGenerator,this._resource=B,this._spanProcessor=I,this.instrumentationScope=A;let E=C.meterProvider?C.meterProvider.getMeter("@opentelemetry/sdk-trace",UhA.VERSION):yQ.createNoopMeter();this._tracerMetrics=new ZhA.TracerMetrics(E)}startSpan(A,Q={},B=yQ.context.active()){if(Q.root)B=yQ.trace.deleteSpan(B);let I=yQ.trace.getSpan(B);if((0,i2.isTracingSuppressed)(B))return yQ.diag.debug("Instrumentation suppressed, returning Noop Span"),yQ.trace.wrapSpanContext(yQ.INVALID_SPAN_CONTEXT);let C=I?.spanContext(),E=this._idGenerator.generateSpanId(),Y,J,F;if(!C||!yQ.trace.isSpanContextValid(C))J=this._idGenerator.generateTraceId();else J=C.traceId,F=C.traceState,Y=C;let G=Q.kind??yQ.SpanKind.INTERNAL,D=(Q.links??[]).map((M)=>{return{context:M.context,attributes:(0,i2.sanitizeAttributes)(M.attributes)}}),Z=(0,i2.sanitizeAttributes)(Q.attributes),U=this._sampler.shouldSample(B,J,A,G,Z,D),W=this._tracerMetrics.startSpan(C,U.decision);F=U.traceState??F;let w=U.decision===yQ.SamplingDecision.RECORD_AND_SAMPLED?yQ.TraceFlags.SAMPLED:yQ.TraceFlags.NONE,K={traceId:J,spanId:E,traceFlags:w,traceState:F};if(U.decision===yQ.SamplingDecision.NOT_RECORD)return yQ.diag.debug("Recording is off, propagating context in a non-recording span"),yQ.trace.wrapSpanContext(K);let X=(0,i2.sanitizeAttributes)(Object.assign(Z,U.attributes));return new FhA.SpanImpl({resource:this._resource,scope:this.instrumentationScope,context:B,spanContext:K,name:A,kind:G,links:D,parentSpanContext:Y,attributes:X,startTime:Q.startTime,spanProcessor:this._spanProcessor,spanLimits:this._spanLimits,recordEndMetrics:W})}startActiveSpan(A,Q,B,I){let C,E,Y;if(arguments.length<2)return;else if(arguments.length===2)Y=Q;else if(arguments.length===3)C=Q,Y=B;else C=Q,E=B,Y=I;let J=E??yQ.context.active(),F=this.startSpan(A,C,J),G=yQ.trace.setSpan(J,F);return yQ.context.with(G,Y,void 0,F)}getGeneralLimits(){return this._generalLimits}getSpanLimits(){return this._spanLimits}}vt.Tracer=xt});var lt=z((ct)=>{Object.defineProperty(ct,"__esModule",{value:!0});ct.MultiSpanProcessor=void 0;var WhA=CB();class dt{_spanProcessors;constructor(A){this._spanProcessors=A}forceFlush(){let A=[];for(let Q of this._spanProcessors)A.push(Q.forceFlush());return new Promise((Q)=>{Promise.all(A).then(()=>{Q()}).catch((B)=>{(0,WhA.globalErrorHandler)(B||Error("MultiSpanProcessor: forceFlush failed")),Q()})})}onStart(A,Q){for(let B of this._spanProcessors)B.onStart(A,Q)}onEnding(A){for(let Q of this._spanProcessors)if(Q.onEnding)Q.onEnding(A)}onEnd(A){for(let Q of this._spanProcessors)Q.onEnd(A)}shutdown(){let A=[];for(let Q of this._spanProcessors)A.push(Q.shutdown());return new Promise((Q,B)=>{Promise.all(A).then(()=>{Q()},B)})}}ct.MultiSpanProcessor=dt});var st=z((ot)=>{Object.defineProperty(ot,"__esModule",{value:!0});ot.BasicTracerProvider=ot.ForceFlushState=void 0;var whA=CB(),XhA=Tr(),VhA=mt(),KhA=N7(),zhA=lt(),$hA=j7(),_G;(function(A){A[A.resolved=0]="resolved",A[A.timeout=1]="timeout",A[A.error=2]="error",A[A.unresolved=3]="unresolved"})(_G=ot.ForceFlushState||(ot.ForceFlushState={}));class it{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(A={}){let Q=(0,whA.merge)({},(0,KhA.loadDefaultConfig)(),(0,$hA.reconfigureLimits)(A));this._resource=Q.resource??(0,XhA.defaultResource)(),this._config=Object.assign({},Q,{resource:this._resource});let B=[];if(A.spanProcessors?.length)B.push(...A.spanProcessors);this._activeSpanProcessor=new zhA.MultiSpanProcessor(B)}getTracer(A,Q,B){let I=`${A}@${Q||""}:${B?.schemaUrl||""}`;if(!this._tracers.has(I))this._tracers.set(I,new VhA.Tracer({name:A,version:Q,schemaUrl:B?.schemaUrl},this._config,this._resource,this._activeSpanProcessor));return this._tracers.get(I)}forceFlush(){let A=this._config.forceFlushTimeoutMillis,Q=this._activeSpanProcessor._spanProcessors.map((B)=>{return new Promise((I)=>{let C,E=setTimeout(()=>{I(Error(`Span processor did not completed within timeout period of ${A} ms`)),C=_G.timeout},A);B.forceFlush().then(()=>{if(clearTimeout(E),C!==_G.timeout)C=_G.resolved,I(C)}).catch((Y)=>{clearTimeout(E),C=_G.error,I(Y)})})});return new Promise((B,I)=>{Promise.all(Q).then((C)=>{let E=C.filter((Y)=>Y!==_G.resolved);if(E.length>0)I(E);else B()}).catch((C)=>I([C]))})}shutdown(){return this._activeSpanProcessor.shutdown()}}ot.BasicTracerProvider=it});var et=z((rt)=>{Object.defineProperty(rt,"__esModule",{value:!0});rt.ConsoleSpanExporter=void 0;var q7=CB();class at{export(A,Q){return this._sendSpans(A,Q)}shutdown(){return this._sendSpans([]),this.forceFlush()}forceFlush(){return Promise.resolve()}_exportInfo(A){return{resource:{attributes:A.resource.attributes},instrumentationScope:A.instrumentationScope,traceId:A.spanContext().traceId,parentSpanContext:A.parentSpanContext,traceState:A.spanContext().traceState?.serialize(),name:A.name,id:A.spanContext().spanId,kind:A.kind,timestamp:(0,q7.hrTimeToMicroseconds)(A.startTime),duration:(0,q7.hrTimeToMicroseconds)(A.duration),attributes:A.attributes,status:A.status,events:A.events,links:A.links}}_sendSpans(A,Q){for(let B of A)console.dir(this._exportInfo(B),{depth:3});if(Q)return Q({code:q7.ExportResultCode.SUCCESS})}}rt.ConsoleSpanExporter=at});var Ce=z((Be)=>{Object.defineProperty(Be,"__esModule",{value:!0});Be.InMemorySpanExporter=void 0;var Ae=CB();class Qe{_finishedSpans=[];_stopped=!1;export(A,Q){if(this._stopped)return Q({code:Ae.ExportResultCode.FAILED,error:Error("Exporter has been stopped")});this._finishedSpans.push(...A),setTimeout(()=>Q({code:Ae.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}}Be.InMemorySpanExporter=Qe});var Fe=z((Ye)=>{Object.defineProperty(Ye,"__esModule",{value:!0});Ye.SimpleSpanProcessor=void 0;var HhA=AA(),o2=CB();class Ee{_exporter;_shutdownOnce;_pendingExports;constructor(A){this._exporter=A,this._shutdownOnce=new o2.BindOnceFuture(this._shutdown,this),this._pendingExports=new Set}async forceFlush(){if(await Promise.all(Array.from(this._pendingExports)),this._exporter.forceFlush)await this._exporter.forceFlush()}onStart(A,Q){}onEnd(A){if(this._shutdownOnce.isCalled)return;if((A.spanContext().traceFlags&HhA.TraceFlags.SAMPLED)===0)return;let Q=this._doExport(A).catch((B)=>(0,o2.globalErrorHandler)(B));this._pendingExports.add(Q),Q.finally(()=>this._pendingExports.delete(Q))}async _doExport(A){if(A.resource.asyncAttributesPending)await A.resource.waitForAsyncAttributes?.();let Q=await o2.internal._export(this._exporter,[A]);if(Q.code!==o2.ExportResultCode.SUCCESS)throw Q.error??Error(`SimpleSpanProcessor: span export failed (status ${Q})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}}Ye.SimpleSpanProcessor=Ee});var Ue=z((De)=>{Object.defineProperty(De,"__esModule",{value:!0});De.NoopSpanProcessor=void 0;class Ge{onStart(A,Q){}onEnd(A){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}}De.NoopSpanProcessor=Ge});var P7=z((OB)=>{Object.defineProperty(OB,"__esModule",{value:!0});OB.SamplingDecision=OB.TraceIdRatioBasedSampler=OB.ParentBasedSampler=OB.AlwaysOnSampler=OB.AlwaysOffSampler=OB.NoopSpanProcessor=OB.SimpleSpanProcessor=OB.InMemorySpanExporter=OB.ConsoleSpanExporter=OB.RandomIdGenerator=OB.BatchSpanProcessor=OB.BasicTracerProvider=void 0;var MhA=st();Object.defineProperty(OB,"BasicTracerProvider",{enumerable:!0,get:function(){return MhA.BasicTracerProvider}});var We=R7();Object.defineProperty(OB,"BatchSpanProcessor",{enumerable:!0,get:function(){return We.BatchSpanProcessor}});Object.defineProperty(OB,"RandomIdGenerator",{enumerable:!0,get:function(){return We.RandomIdGenerator}});var LhA=et();Object.defineProperty(OB,"ConsoleSpanExporter",{enumerable:!0,get:function(){return LhA.ConsoleSpanExporter}});var NhA=Ce();Object.defineProperty(OB,"InMemorySpanExporter",{enumerable:!0,get:function(){return NhA.InMemorySpanExporter}});var jhA=Fe();Object.defineProperty(OB,"SimpleSpanProcessor",{enumerable:!0,get:function(){return jhA.SimpleSpanProcessor}});var RhA=Ue();Object.defineProperty(OB,"NoopSpanProcessor",{enumerable:!0,get:function(){return RhA.NoopSpanProcessor}});var qhA=h2();Object.defineProperty(OB,"AlwaysOffSampler",{enumerable:!0,get:function(){return qhA.AlwaysOffSampler}});var PhA=x2();Object.defineProperty(OB,"AlwaysOnSampler",{enumerable:!0,get:function(){return PhA.AlwaysOnSampler}});var OhA=$7();Object.defineProperty(OB,"ParentBasedSampler",{enumerable:!0,get:function(){return OhA.ParentBasedSampler}});var khA=H7();Object.defineProperty(OB,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return khA.TraceIdRatioBasedSampler}});var ghA=gG();Object.defineProperty(OB,"SamplingDecision",{enumerable:!0,get:function(){return ghA.SamplingDecision}})});import*as f3 from"os";function OE(A){if(A===null||A===void 0)return"";else if(typeof A==="string"||A instanceof String)return A;return JSON.stringify(A)}function Z1(A){if(!Object.keys(A).length)return{};return{title:A.title,file:A.file,line:A.startLine,endLine:A.endLine,col:A.startColumn,endColumn:A.endColumn}}function PJ(A,Q,B){let I=new h3(A,Q,B);process.stdout.write(I.toString()+f3.EOL)}function U1(A,Q=""){PJ(A,{},Q)}var S3="::";class h3{constructor(A,Q,B){if(!A)A="missing.command";this.command=A,this.properties=Q,this.message=B}toString(){let A=S3+this.command;if(this.properties&&Object.keys(this.properties).length>0){A+=" ";let Q=!0;for(let B in this.properties)if(this.properties.hasOwnProperty(B)){let I=this.properties[B];if(I){if(Q)Q=!1;else A+=",";A+=`${B}=${LYA(I)}`}}}return A+=`${S3}${MYA(this.message)}`,A}}function MYA(A){return OE(A).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function LYA(A){return OE(A).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}import*as x3 from"crypto";import*as JW from"fs";import*as YW from"os";function v3(A,Q){let B=process.env[`GITHUB_${A}`];if(!B)throw Error(`Unable to find environment variable for file command ${A}`);if(!JW.existsSync(B))throw Error(`Missing file at path: ${B}`);JW.appendFileSync(B,`${OE(Q)}${YW.EOL}`,{encoding:"utf8"})}function b3(A,Q){let B=`ghadelimiter_${x3.randomUUID()}`,I=OE(Q);if(A.includes(B))throw Error(`Unexpected input: name should not contain the delimiter "${B}"`);if(I.includes(B))throw Error(`Unexpected input: value should not contain the delimiter "${B}"`);return`${A}<<${B}${YW.EOL}${I}${YW.EOL}${B}`}import*as p4 from"os";var NuA=j("net"),juA=j("tls"),jYA=j("http"),RuA=j("https"),RYA=j("events"),quA=j("assert"),qYA=j("util");function FW(A){var Q=this;Q.options=A||{},Q.proxyOptions=Q.options.proxy||{},Q.maxSockets=Q.options.maxSockets||jYA.Agent.defaultMaxSockets,Q.requests=[],Q.sockets=[],Q.on("free",function(I,C,E,Y){var J=m3(C,E,Y);for(var F=0,G=Q.requests.length;F=this.maxSockets){E.requests.push(Y);return}E.createSocket(Y,function(J){J.on("free",F),J.on("close",G),J.on("agentRemove",G),Q.onSocket(J);function F(){E.emit("free",J,Y)}function G(D){E.removeSocket(J),J.removeListener("free",F),J.removeListener("close",G),J.removeListener("agentRemove",G)}})};FW.prototype.createSocket=function(Q,B){var I=this,C={};I.sockets.push(C);var E=d3({},I.proxyOptions,{method:"CONNECT",path:Q.host+":"+Q.port,agent:!1,headers:{host:Q.host+":"+Q.port}});if(Q.localAddress)E.localAddress=Q.localAddress;if(E.proxyAuth)E.headers=E.headers||{},E.headers["Proxy-Authorization"]="Basic "+new Buffer(E.proxyAuth).toString("base64");m0("making CONNECT request");var Y=I.request(E);Y.useChunkedEncodingByDefault=!1,Y.once("response",J),Y.once("upgrade",F),Y.once("connect",G),Y.once("error",D),Y.end();function J(Z){Z.upgrade=!0}function F(Z,U,W){process.nextTick(function(){G(Z,U,W)})}function G(Z,U,W){if(Y.removeAllListeners(),U.removeAllListeners(),Z.statusCode!==200){m0("tunneling socket could not be established, statusCode=%d",Z.statusCode),U.destroy();var w=Error("tunneling socket could not be established, statusCode="+Z.statusCode);w.code="ECONNRESET",Q.request.emit("error",w),I.removeSocket(C);return}if(W.length>0){m0("got illegal response body from proxy"),U.destroy();var w=Error("got illegal response body from proxy");w.code="ECONNRESET",Q.request.emit("error",w),I.removeSocket(C);return}return m0("tunneling connection has established"),I.sockets[I.sockets.indexOf(C)]=U,B(U)}function D(Z){Y.removeAllListeners(),m0(`tunneling socket could not be established, cause=%s +`,Z.message,Z.stack);var U=Error("tunneling socket could not be established, cause="+Z.message);U.code="ECONNRESET",Q.request.emit("error",U),I.removeSocket(C)}};FW.prototype.removeSocket=function(Q){var B=this.sockets.indexOf(Q);if(B===-1)return;this.sockets.splice(B,1);var I=this.requests.shift();if(I)this.createSocket(I,function(C){I.request.onSocket(C)})};function m3(A,Q,B){if(typeof A==="string")return{host:A,port:Q,localAddress:B};return A}function d3(A){for(var Q=1,B=arguments.length;Q{if(typeof B==="function")I=B,B=null;if(!Q||typeof Q!=="string"&&typeof Q!=="object"&&!(Q instanceof URL))throw new mw("invalid url");if(B!=null&&typeof B!=="object")throw new mw("invalid opts");if(B&&B.path!=null){if(typeof B.path!=="string")throw new mw("invalid opts.path");let Y=B.path;if(!B.path.startsWith("/"))Y=`/${Y}`;Q=new URL(dw.parseOrigin(Q).origin+Y)}else{if(!B)B=typeof Q==="object"?Q:{};Q=dw.parseURL(Q)}let{agent:C,dispatcher:E=H8A()}=B;if(C)throw new mw("unsupported opts.agent. Did you mean opts.client?");return A.call(E,{...B,origin:Q.origin,path:Q.search?`${Q.pathname}${Q.search}`:Q.pathname,method:B.method||(B.body?"PUT":"GET")},I)}}var kpA=xD().fetch;var R8A=BY().Headers,q8A=fD().Response,P8A=DF().Request,O8A=GD().FormData,k8A=globalThis.File??j("node:buffer").File,g8A=rP().FileReader;var{setGlobalOrigin:gpA,getGlobalOrigin:TpA}=m1();var{CacheStorage:M8A}=YO(),{kConstruct:L8A}=Pw();var T8A=new M8A(L8A);var{deleteCookie:_pA,getCookies:ypA,getSetCookies:SpA,setCookie:fpA}=zO();var{parseMIMEType:hpA,serializeAMimeType:xpA}=zB();var{CloseEvent:vpA,ErrorEvent:bpA,MessageEvent:mpA}=VF();var _8A=Vk().WebSocket;var y8A=eD(LF.request),S8A=eD(LF.stream),f8A=eD(LF.pipeline),h8A=eD(LF.connect),x8A=eD(LF.upgrade);var{EventSource:dpA}=gk();var WC;(function(A){A[A.OK=200]="OK",A[A.MultipleChoices=300]="MultipleChoices",A[A.MovedPermanently=301]="MovedPermanently",A[A.ResourceMoved=302]="ResourceMoved",A[A.SeeOther=303]="SeeOther",A[A.NotModified=304]="NotModified",A[A.UseProxy=305]="UseProxy",A[A.SwitchProxy=306]="SwitchProxy",A[A.TemporaryRedirect=307]="TemporaryRedirect",A[A.PermanentRedirect=308]="PermanentRedirect",A[A.BadRequest=400]="BadRequest",A[A.Unauthorized=401]="Unauthorized",A[A.PaymentRequired=402]="PaymentRequired",A[A.Forbidden=403]="Forbidden",A[A.NotFound=404]="NotFound",A[A.MethodNotAllowed=405]="MethodNotAllowed",A[A.NotAcceptable=406]="NotAcceptable",A[A.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",A[A.RequestTimeout=408]="RequestTimeout",A[A.Conflict=409]="Conflict",A[A.Gone=410]="Gone",A[A.TooManyRequests=429]="TooManyRequests",A[A.InternalServerError=500]="InternalServerError",A[A.NotImplemented=501]="NotImplemented",A[A.BadGateway=502]="BadGateway",A[A.ServiceUnavailable=503]="ServiceUnavailable",A[A.GatewayTimeout=504]="GatewayTimeout"})(WC||(WC={}));var Tk;(function(A){A.Accept="accept",A.ContentType="content-type"})(Tk||(Tk={}));var _k;(function(A){A.ApplicationJson="application/json"})(_k||(_k={}));var apA=[WC.MovedPermanently,WC.ResourceMoved,WC.SeeOther,WC.TemporaryRedirect,WC.PermanentRedirect],rpA=[WC.BadGateway,WC.ServiceUnavailable,WC.GatewayTimeout];import{EOL as v8A}from"os";import{constants as yk,promises as b8A}from"fs";var h4=function(A,Q,B,I){function C(E){return E instanceof B?E:new B(function(Y){Y(E)})}return new(B||(B=Promise))(function(E,Y){function J(D){try{G(I.next(D))}catch(Z){Y(Z)}}function F(D){try{G(I.throw(D))}catch(Z){Y(Z)}}function G(D){D.done?E(D.value):C(D.value).then(J,F)}G((I=I.apply(A,Q||[])).next())})},{access:m8A,appendFile:d8A,writeFile:c8A}=b8A,Sk="GITHUB_STEP_SUMMARY";class fk{constructor(){this._buffer=""}filePath(){return h4(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let A=process.env[Sk];if(!A)throw Error(`Unable to find environment variable for $${Sk}. Check if your runtime environment supports job summaries.`);try{yield m8A(A,yk.R_OK|yk.W_OK)}catch(Q){throw Error(`Unable to access summary file: '${A}'. Check if the file has correct read/write permissions.`)}return this._filePath=A,this._filePath})}wrap(A,Q,B={}){let I=Object.entries(B).map(([C,E])=>` ${C}="${E}"`).join("");if(!Q)return`<${A}${I}>`;return`<${A}${I}>${Q}`}write(A){return h4(this,void 0,void 0,function*(){let Q=!!(A===null||A===void 0?void 0:A.overwrite),B=yield this.filePath();return yield(Q?c8A:d8A)(B,this._buffer,{encoding:"utf8"}),this.emptyBuffer()})}clear(){return h4(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:!0})})}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){return this._buffer="",this}addRaw(A,Q=!1){return this._buffer+=A,Q?this.addEOL():this}addEOL(){return this.addRaw(v8A)}addCodeBlock(A,Q){let B=Object.assign({},Q&&{lang:Q}),I=this.wrap("pre",this.wrap("code",A),B);return this.addRaw(I).addEOL()}addList(A,Q=!1){let B=Q?"ol":"ul",I=A.map((E)=>this.wrap("li",E)).join(""),C=this.wrap(B,I);return this.addRaw(C).addEOL()}addTable(A){let Q=A.map((I)=>{let C=I.map((E)=>{if(typeof E==="string")return this.wrap("td",E);let{header:Y,data:J,colspan:F,rowspan:G}=E,D=Y?"th":"td",Z=Object.assign(Object.assign({},F&&{colspan:F}),G&&{rowspan:G});return this.wrap(D,J,Z)}).join("");return this.wrap("tr",C)}).join(""),B=this.wrap("table",Q);return this.addRaw(B).addEOL()}addDetails(A,Q){let B=this.wrap("details",this.wrap("summary",A)+Q);return this.addRaw(B).addEOL()}addImage(A,Q,B){let{width:I,height:C}=B||{},E=Object.assign(Object.assign({},I&&{width:I}),C&&{height:C}),Y=this.wrap("img",null,Object.assign({src:A,alt:Q},E));return this.addRaw(Y).addEOL()}addHeading(A,Q){let B=`h${Q}`,I=["h1","h2","h3","h4","h5","h6"].includes(B)?B:"h1",C=this.wrap(I,A);return this.addRaw(C).addEOL()}addSeparator(){let A=this.wrap("hr",null);return this.addRaw(A).addEOL()}addBreak(){let A=this.wrap("br",null);return this.addRaw(A).addEOL()}addQuote(A,Q){let B=Object.assign({},Q&&{cite:Q}),I=this.wrap("blockquote",A,B);return this.addRaw(I).addEOL()}addLink(A,Q){let B=this.wrap("a",A,{href:Q});return this.addRaw(B).addEOL()}}var u8A=new fk;var x4=u8A;import ok from"os";import*as AZ from"os";import*as d4 from"events";import*as ck from"child_process";import*as uk from"path";import*as wC from"path";import*as uw from"fs";import*as nE from"path";var xk=function(A,Q,B,I){function C(E){return E instanceof B?E:new B(function(Y){Y(E)})}return new(B||(B=Promise))(function(E,Y){function J(D){try{G(I.next(D))}catch(Z){Y(Z)}}function F(D){try{G(I.throw(D))}catch(Z){Y(Z)}}function G(D){D.done?E(D.value):C(D.value).then(J,F)}G((I=I.apply(A,Q||[])).next())})},{chmod:l8A,copyFile:p8A,lstat:i8A,mkdir:o8A,open:ZiA,readdir:vk,rename:n8A,rm:s8A,rmdir:UiA,stat:cw,symlink:a8A,unlink:r8A}=uw.promises,GY=process.platform==="win32";var WiA=uw.constants.O_RDONLY;function v4(A){return xk(this,void 0,void 0,function*(){try{yield cw(A)}catch(Q){if(Q.code==="ENOENT")return!1;throw Q}return!0})}function lw(A){if(A=t8A(A),!A)throw Error('isRooted() parameter "p" cannot be empty');if(GY)return A.startsWith("\\")||/^[A-Z]:/i.test(A);return A.startsWith("/")}function b4(A,Q){return xk(this,void 0,void 0,function*(){let B=void 0;try{B=yield cw(A)}catch(C){if(C.code!=="ENOENT")console.log(`Unexpected error attempting to determine if executable file exists '${A}': ${C}`)}if(B&&B.isFile()){if(GY){let C=nE.extname(A).toUpperCase();if(Q.some((E)=>E.toUpperCase()===C))return A}else if(hk(B))return A}let I=A;for(let C of Q){A=I+C,B=void 0;try{B=yield cw(A)}catch(E){if(E.code!=="ENOENT")console.log(`Unexpected error attempting to determine if executable file exists '${A}': ${E}`)}if(B&&B.isFile()){if(GY){try{let E=nE.dirname(A),Y=nE.basename(A).toUpperCase();for(let J of yield vk(E))if(Y===J.toUpperCase()){A=nE.join(E,J);break}}catch(E){console.log(`Unexpected error attempting to determine the actual case of the file '${A}': ${E}`)}return A}else if(hk(B))return A}}return""})}function t8A(A){if(A=A||"",GY)return A=A.replace(/\//g,"\\"),A.replace(/\\\\+/g,"\\");return A.replace(/\/\/+/g,"/")}function hk(A){return(A.mode&1)>0||(A.mode&8)>0&&process.getgid!==void 0&&A.gid===process.getgid()||(A.mode&64)>0&&process.getuid!==void 0&&A.uid===process.getuid()}var mk=function(A,Q,B,I){function C(E){return E instanceof B?E:new B(function(Y){Y(E)})}return new(B||(B=Promise))(function(E,Y){function J(D){try{G(I.next(D))}catch(Z){Y(Z)}}function F(D){try{G(I.throw(D))}catch(Z){Y(Z)}}function G(D){D.done?E(D.value):C(D.value).then(J,F)}G((I=I.apply(A,Q||[])).next())})};function m4(A,Q){return mk(this,void 0,void 0,function*(){if(!A)throw Error("parameter 'tool' is required");if(Q){let I=yield m4(A,!1);if(!I)if(GY)throw Error(`Unable to locate executable file: ${A}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);else throw Error(`Unable to locate executable file: ${A}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);return I}let B=yield e8A(A);if(B&&B.length>0)return B[0];return""})}function e8A(A){return mk(this,void 0,void 0,function*(){if(!A)throw Error("parameter 'tool' is required");let Q=[];if(GY&&process.env.PATHEXT){for(let C of process.env.PATHEXT.split(wC.delimiter))if(C)Q.push(C)}if(lw(A)){let C=yield b4(A,Q);if(C)return[C];return[]}if(A.includes(wC.sep))return[];let B=[];if(process.env.PATH){for(let C of process.env.PATH.split(wC.delimiter))if(C)B.push(C)}let I=[];for(let C of B){let E=yield b4(wC.join(C,A),Q);if(E)I.push(E)}return I})}import{setTimeout as Q4A}from"timers";var dk=function(A,Q,B,I){function C(E){return E instanceof B?E:new B(function(Y){Y(E)})}return new(B||(B=Promise))(function(E,Y){function J(D){try{G(I.next(D))}catch(Z){Y(Z)}}function F(D){try{G(I.throw(D))}catch(Z){Y(Z)}}function G(D){D.done?E(D.value):C(D.value).then(J,F)}G((I=I.apply(A,Q||[])).next())})},pw=process.platform==="win32";class c4 extends d4.EventEmitter{constructor(A,Q,B){super();if(!A)throw Error("Parameter 'toolPath' cannot be null or empty.");this.toolPath=A,this.args=Q||[],this.options=B||{}}_debug(A){if(this.options.listeners&&this.options.listeners.debug)this.options.listeners.debug(A)}_getCommandString(A,Q){let B=this._getSpawnFileName(),I=this._getSpawnArgs(A),C=Q?"":"[command]";if(pw)if(this._isCmdFile()){C+=B;for(let E of I)C+=` ${E}`}else if(A.windowsVerbatimArguments){C+=`"${B}"`;for(let E of I)C+=` ${E}`}else{C+=this._windowsQuoteCmdArg(B);for(let E of I)C+=` ${this._windowsQuoteCmdArg(E)}`}else{C+=B;for(let E of I)C+=` ${E}`}return C}_processLineBuffer(A,Q,B){try{let I=Q+A.toString(),C=I.indexOf(AZ.EOL);while(C>-1){let E=I.substring(0,C);B(E),I=I.substring(C+AZ.EOL.length),C=I.indexOf(AZ.EOL)}return I}catch(I){return this._debug(`error processing line. Failed with error ${I}`),""}}_getSpawnFileName(){if(pw){if(this._isCmdFile())return process.env.COMSPEC||"cmd.exe"}return this.toolPath}_getSpawnArgs(A){if(pw){if(this._isCmdFile()){let Q=`/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;for(let B of this.args)Q+=" ",Q+=A.windowsVerbatimArguments?B:this._windowsQuoteCmdArg(B);return Q+='"',[Q]}}return this.args}_endsWith(A,Q){return A.endsWith(Q)}_isCmdFile(){let A=this.toolPath.toUpperCase();return this._endsWith(A,".CMD")||this._endsWith(A,".BAT")}_windowsQuoteCmdArg(A){if(!this._isCmdFile())return this._uvQuoteCmdArg(A);if(!A)return'""';let Q=[" ","\t","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'],B=!1;for(let E of A)if(Q.some((Y)=>Y===E)){B=!0;break}if(!B)return A;let I='"',C=!0;for(let E=A.length;E>0;E--)if(I+=A[E-1],C&&A[E-1]==="\\")I+="\\";else if(A[E-1]==='"')C=!0,I+='"';else C=!1;return I+='"',I.split("").reverse().join("")}_uvQuoteCmdArg(A){if(!A)return'""';if(!A.includes(" ")&&!A.includes("\t")&&!A.includes('"'))return A;if(!A.includes('"')&&!A.includes("\\"))return`"${A}"`;let Q='"',B=!0;for(let I=A.length;I>0;I--)if(Q+=A[I-1],B&&A[I-1]==="\\")Q+="\\";else if(A[I-1]==='"')B=!0,Q+="\\";else B=!1;return Q+='"',Q.split("").reverse().join("")}_cloneExecOptions(A){A=A||{};let Q={cwd:A.cwd||process.cwd(),env:A.env||process.env,silent:A.silent||!1,windowsVerbatimArguments:A.windowsVerbatimArguments||!1,failOnStdErr:A.failOnStdErr||!1,ignoreReturnCode:A.ignoreReturnCode||!1,delay:A.delay||1e4};return Q.outStream=A.outStream||process.stdout,Q.errStream=A.errStream||process.stderr,Q}_getSpawnOptions(A,Q){A=A||{};let B={};if(B.cwd=A.cwd,B.env=A.env,B.windowsVerbatimArguments=A.windowsVerbatimArguments||this._isCmdFile(),A.windowsVerbatimArguments)B.argv0=`"${Q}"`;return B}exec(){return dk(this,void 0,void 0,function*(){if(!lw(this.toolPath)&&(this.toolPath.includes("/")||pw&&this.toolPath.includes("\\")))this.toolPath=uk.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath);return this.toolPath=yield m4(this.toolPath,!0),new Promise((A,Q)=>dk(this,void 0,void 0,function*(){this._debug(`exec tool: ${this.toolPath}`),this._debug("arguments:");for(let F of this.args)this._debug(` ${F}`);let B=this._cloneExecOptions(this.options);if(!B.silent&&B.outStream)B.outStream.write(this._getCommandString(B)+AZ.EOL);let I=new u4(B,this.toolPath);if(I.on("debug",(F)=>{this._debug(F)}),this.options.cwd&&!(yield v4(this.options.cwd)))return Q(Error(`The cwd: ${this.options.cwd} does not exist!`));let C=this._getSpawnFileName(),E=ck.spawn(C,this._getSpawnArgs(B),this._getSpawnOptions(this.options,C)),Y="";if(E.stdout)E.stdout.on("data",(F)=>{if(this.options.listeners&&this.options.listeners.stdout)this.options.listeners.stdout(F);if(!B.silent&&B.outStream)B.outStream.write(F);Y=this._processLineBuffer(F,Y,(G)=>{if(this.options.listeners&&this.options.listeners.stdline)this.options.listeners.stdline(G)})});let J="";if(E.stderr)E.stderr.on("data",(F)=>{if(I.processStderr=!0,this.options.listeners&&this.options.listeners.stderr)this.options.listeners.stderr(F);if(!B.silent&&B.errStream&&B.outStream)(B.failOnStdErr?B.errStream:B.outStream).write(F);J=this._processLineBuffer(F,J,(G)=>{if(this.options.listeners&&this.options.listeners.errline)this.options.listeners.errline(G)})});if(E.on("error",(F)=>{I.processError=F.message,I.processExited=!0,I.processClosed=!0,I.CheckComplete()}),E.on("exit",(F)=>{I.processExitCode=F,I.processExited=!0,this._debug(`Exit code ${F} received from tool '${this.toolPath}'`),I.CheckComplete()}),E.on("close",(F)=>{I.processExitCode=F,I.processExited=!0,I.processClosed=!0,this._debug(`STDIO streams have closed for tool '${this.toolPath}'`),I.CheckComplete()}),I.on("done",(F,G)=>{if(Y.length>0)this.emit("stdline",Y);if(J.length>0)this.emit("errline",J);if(E.removeAllListeners(),F)Q(F);else A(G)}),this.options.input){if(!E.stdin)throw Error("child process missing stdin");E.stdin.end(this.options.input)}}))})}}function lk(A){let Q=[],B=!1,I=!1,C="";function E(Y){if(I&&Y!=='"')C+="\\";C+=Y,I=!1}for(let Y=0;Y0)Q.push(C),C="";continue}E(J)}if(C.length>0)Q.push(C.trim());return Q}class u4 extends d4.EventEmitter{constructor(A,Q){super();if(this.processClosed=!1,this.processError="",this.processExitCode=0,this.processExited=!1,this.processStderr=!1,this.delay=1e4,this.done=!1,this.timeout=null,!Q)throw Error("toolPath must not be empty");if(this.options=A,this.toolPath=Q,A.delay)this.delay=A.delay}CheckComplete(){if(this.done)return;if(this.processClosed)this._setResult();else if(this.processExited)this.timeout=Q4A(u4.HandleTimeout,this.delay,this)}_debug(A){this.emit("debug",A)}_setResult(){let A;if(this.processExited){if(this.processError)A=Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`);else if(this.processExitCode!==0&&!this.options.ignoreReturnCode)A=Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`);else if(this.processStderr&&this.options.failOnStdErr)A=Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)}if(this.timeout)clearTimeout(this.timeout),this.timeout=null;this.done=!0,this.emit("done",A,this.processExitCode)}static HandleTimeout(A){if(A.done)return;if(!A.processClosed&&A.processExited){let Q=`The STDIO streams did not close within ${A.delay/1000} seconds of the exit event from process '${A.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;A._debug(Q)}A._setResult()}}var I4A=function(A,Q,B,I){function C(E){return E instanceof B?E:new B(function(Y){Y(E)})}return new(B||(B=Promise))(function(E,Y){function J(D){try{G(I.next(D))}catch(Z){Y(Z)}}function F(D){try{G(I.throw(D))}catch(Z){Y(Z)}}function G(D){D.done?E(D.value):C(D.value).then(J,F)}G((I=I.apply(A,Q||[])).next())})};function pk(A,Q,B){return I4A(this,void 0,void 0,function*(){let I=lk(A);if(I.length===0)throw Error("Parameter 'commandLine' cannot be null or empty.");let C=I[0];return Q=I.slice(1).concat(Q||[]),new c4(C,Q,B).exec()})}var $iA=ok.platform(),HiA=ok.arch();var E4A=function(A,Q,B,I){function C(E){return E instanceof B?E:new B(function(Y){Y(E)})}return new(B||(B=Promise))(function(E,Y){function J(D){try{G(I.next(D))}catch(Z){Y(Z)}}function F(D){try{G(I.throw(D))}catch(Z){Y(Z)}}function G(D){D.done?E(D.value):C(D.value).then(J,F)}G((I=I.apply(A,Q||[])).next())})},l4;(function(A){A[A.Success=0]="Success",A[A.Failure=1]="Failure"})(l4||(l4={}));function iw(A,Q){let B=process.env[`INPUT_${A.replace(/ /g,"_").toUpperCase()}`]||"";if(Q&&Q.required&&!B)throw Error(`Input required and not supplied: ${A}`);if(Q&&Q.trimWhitespace===!1)return B;return B.trim()}function nk(A,Q){let B=["true","True","TRUE"],I=["false","False","FALSE"],C=iw(A,Q);if(B.includes(C))return!0;if(I.includes(C))return!1;throw TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${A} +Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}function ow(A,Q){if(process.env.GITHUB_OUTPUT||"")return v3("OUTPUT",b3(A,Q));process.stdout.write(p4.EOL),PJ("set-output",{name:A},OE(Q))}function i4(A){process.exitCode=l4.Failure,nw(A)}function f4(A){PJ("debug",{},A)}function nw(A,Q={}){PJ("error",Z1(Q),A instanceof Error?A.toString():A)}function sk(A,Q={}){PJ("warning",Z1(Q),A instanceof Error?A.toString():A)}function FI(A){process.stdout.write(A+p4.EOL)}function Y4A(A){U1("group",A)}function J4A(){U1("endgroup")}function o4(A,Q){return E4A(this,void 0,void 0,function*(){Y4A(A);let B;try{B=yield Q()}finally{J4A()}return B})}var G0A=m(rk(),1);import{readdirSync as BuA,statSync as IuA}from"node:fs";import V3 from"node:path";var Ag={formatter:"all",mode:"check",files:[],exclude:[],working_directory:process.env.GITHUB_WORKSPACE??process.cwd(),gjf_args:[],ktfmt_args:[],include_kts:!1,fail_on_error:!0,telemetry:!0,output_mode:"none",output_mode_diffs:null,output_mode_command:null};function F4A(A){switch(A.trim().toLowerCase()){case"google-java-format":case"javaformat":case"gjf":return"javaformat";case"ktfmt":return"ktfmt";default:return"all"}}function G4A(A){switch(A.trim().toLowerCase()){case"write":case"format":return"write";default:return"check"}}function D4A(A){switch(A.trim().toLowerCase()){case"file":return"file";case"diff":return"diff";case"command":return"command";default:return"none"}}function tk(A){return A.trim().split(/\s+/).filter(Boolean)}function ek(A){return A.trim().split(/[\s\n]+/).filter(Boolean)}function sw(A){return{...Ag,...A}}function a4(A,Q){try{return nk(A)}catch{return Q}}function aC(A,Q){return iw(A)||Q||void 0}function Z4A(A){let Q=iw(A).trim();if(!Q)return null;if(!/^\d+$/.test(Q)||parseInt(Q,10)<=0)throw Error(`invalid value for '${A}': must be a positive integer, got '${Q}'`);return parseInt(Q,10)}function Qg(){return sw({formatter:F4A(aC("formatter","all")),mode:G4A(aC("mode","check")),files:ek(aC("files","")??""),exclude:ek(aC("exclude","")??""),working_directory:aC("working-directory",Ag.working_directory),gjf_args:tk(aC("gjf-args","")??""),ktfmt_args:tk(aC("ktfmt-args","")??""),include_kts:a4("include-kts",!1),fail_on_error:a4("fail-on-error",!0),telemetry:a4("telemetry",!0),output_mode:D4A(aC("output-mode","none")),output_mode_diffs:Z4A("output-mode-diffs"),output_mode_command:aC("output-mode-command")??null})}import{writeFileSync as U4A,unlinkSync as W4A}from"node:fs";import w4A from"node:os";import X4A from"node:path";var V4A={javaformat:["--dry-run","--set-exit-if-changed"],ktfmt:["--dry-run","--set-exit-if-changed"]},r4={javaformat:["-r"],ktfmt:[]};function K4A(A,Q,B,I,C=[]){return[A,...C,"--",...Q==="check"?V4A[A]:r4[A],...I,...B]}async function Bg(A,Q,B,I,C,E=[]){let Y=process.env.RUNNER_TEMP??w4A.tmpdir(),J=X4A.join(Y,`format-${A}.txt`);U4A(J,B.join(` +`),"utf-8");let F=K4A(A,Q,[`@${J}`],I,E),G="",D=E.length>0?{stdout:(Z)=>{G+=Z.toString()}}:void 0;f4(`Running: elide ${A} on ${B.length} files`);try{return{exitCode:await pk("elide",F,{cwd:C,ignoreReturnCode:!0,listeners:D}),stdout:G}}finally{try{W4A(J)}catch{}}}var q=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var h="10.63.0";var FA=globalThis;function CQ(){return sE(FA),FA}function sE(A){let Q=A.__SENTRY__=A.__SENTRY__||{};return Q.version=Q.version||h,Q[h]=Q[h]||{}}function GI(A,Q,B=FA){let I=B.__SENTRY__=B.__SENTRY__||{},C=I[h]=I[h]||{};return C[A]||(C[A]=Q())}var DY=["debug","info","warn","error","log","assert","trace"],z4A="Sentry Logger ",fI={};function XQ(A){if(!("console"in FA))return A();let Q=FA.console,B={},I=Object.keys(fI);I.forEach((C)=>{let E=fI[C];B[C]=Q[C],Q[C]=E});try{return A()}finally{I.forEach((C)=>{Q[C]=B[C]})}}function $4A(){e4().enabled=!0}function H4A(){e4().enabled=!1}function Ig(){return e4().enabled}function M4A(...A){t4("log",...A)}function L4A(...A){t4("warn",...A)}function N4A(...A){t4("error",...A)}function t4(A,...Q){if(!q)return;if(Ig())XQ(()=>{FA.console[A](`${z4A}[${A}]:`,...Q)})}function e4(){if(!q)return{enabled:!1};return GI("loggerSettings",()=>({enabled:!1}))}var H={enable:$4A,disable:H4A,isEnabled:Ig,log:M4A,warn:L4A,error:N4A};var Cg=Object.prototype.toString;function DI(A){switch(Cg.call(A)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return ZY(A,Error)}}function aw(A,Q){return Cg.call(A)===`[object ${Q}]`}function A5(A){return aw(A,"ErrorEvent")}function NF(A){return aw(A,"String")}function jF(A){return typeof A==="object"&&A!==null&&"__sentry_template_string__"in A&&"__sentry_template_values__"in A}function rC(A){return A===null||jF(A)||typeof A!=="object"&&typeof A!=="function"}function aE(A){return aw(A,"Object")}function Q5(A){return typeof Event<"u"&&ZY(A,Event)}function B5(A){return aw(A,"RegExp")}function xQ(A){return Boolean(A?.then&&typeof A.then==="function")}function ZY(A,Q){try{return A instanceof Q}catch{return!1}}function QZ(A,Q,B){if(!(Q in A))return;let I=A[Q];if(typeof I!=="function")return;let C=B(I);if(typeof C==="function")UY(C,I);try{A[Q]=C}catch{q&&H.log(`Failed to replace method "${Q}" in object`,A)}}function FQ(A,Q,B){try{Object.defineProperty(A,Q,{value:B,writable:!0,configurable:!0})}catch{q&&H.log(`Failed to add non-enumerable property "${String(Q)}" to object`,A)}}function UY(A,Q){try{let B=Q.prototype||{};A.prototype=Q.prototype=B,FQ(A,"__sentry_original__",Q)}catch{}}function WY(A,Q,B,I=!0){let C=A[Q];if(typeof C!=="function")throw Error(`Cannot wrap method: ${Q} is not a function`);if(tC(C))throw Error(`Attempting to wrap method ${Q} multiple times`);UY(B,C),Object.defineProperty(A,Q,{writable:!0,configurable:!0,enumerable:I,value:B})}function tC(A){return A.__sentry_original__}function rw(A){if(DI(A))return{message:A.message,name:A.name,stack:A.stack,...Eg(A)};if(Q5(A)){let{type:Q,target:B,currentTarget:I,detail:C}=A;return{type:Q,target:B,currentTarget:I,...C?{detail:C}:{},...Eg(A)}}return A}function Eg(A){if(typeof A==="object"&&A!==null)return Object.fromEntries(Object.entries(A));return{}}function I5(A){let Q=Object.keys(rw(A));return Q.sort(),!Q[0]?"[object has no keys]":Q.join(", ")}function wY(A){try{let Q=FA.WeakRef;if(typeof Q==="function")return new Q(A)}catch{}return A}function XY(A){if(!A)return;if(typeof A==="object"&&"deref"in A&&typeof A.deref==="function")try{return A.deref()}catch{return}return A}var Yg="_sentryScope",Jg="_sentryIsolationScope",j4A=Symbol.for("sentry.otelSourceInference");function eC(A,Q,B){if(A)FQ(A,Jg,wY(B)),FQ(A,Yg,Q)}function jB(A){let Q=A;return{scope:Q[Yg],isolationScope:XY(Q[Jg])}}function C5(A){return A[j4A]===!0}var RF=0,AE=1,k=2;function uB(A){if(A<400&&A>=100)return{code:1};if(A>=400&&A<500)switch(A){case 401:return{code:2,message:"unauthenticated"};case 403:return{code:2,message:"permission_denied"};case 404:return{code:2,message:"not_found"};case 409:return{code:2,message:"already_exists"};case 413:return{code:2,message:"failed_precondition"};case 429:return{code:2,message:"resource_exhausted"};case 499:return{code:2,message:"cancelled"};default:return{code:2,message:"invalid_argument"}}if(A>=500&&A<600)switch(A){case 501:return{code:2,message:"unimplemented"};case 503:return{code:2,message:"unavailable"};case 504:return{code:2,message:"deadline_exceeded"};default:return{code:2,message:"internal_error"}}return{code:2,message:"internal_error"}}var qF;function VY(A){if(qF!==void 0)return qF?qF(A):A();let Q=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),B=FA;if(Q in B&&typeof B[Q]==="function")return qF=B[Q],qF(A);return qF=null,A()}function HQ(){return VY(()=>Math.random())}function VQ(){return VY(()=>Date.now())}var R4A=Symbol.for("sentry.skipNormalization"),q4A=Symbol.for("sentry.overrideNormalizationDepth");function Fg(A){return Boolean(A[R4A])}function Gg(A){let Q=A[q4A];return typeof Q==="number"?Q:void 0}var Y5="?",Dg=/\(error: (.*)\)/,Zg=/captureMessage|captureException/;function ew(...A){let Q=A.sort((B,I)=>B[0]-I[0]).map((B)=>B[1]);return(B,I=0,C=0)=>{let E=[],Y=B.split(` +`);for(let J=I;J1024)F=F.slice(0,1024);let G=Dg.test(F)?F.replace(Dg,"$1"):F;if(G.includes("Error: "))continue;for(let D of Q){let Z=D(G);if(Z){E.push(Z);break}}if(E.length>=50+C)break}return Ug(E.slice(C))}}function J5(A){if(Array.isArray(A))return ew(...A);return A}function Ug(A){if(!A.length)return[];let Q=Array.from(A);if(/sentryWrapped/.test(tw(Q).function||""))Q.pop();if(Q.reverse(),Zg.test(tw(Q).function||"")){if(Q.pop(),Zg.test(tw(Q).function||""))Q.pop()}return Q.slice(0,50).map((B)=>({...B,filename:B.filename||tw(Q).filename,function:B.function||"?"}))}function tw(A){return A[A.length-1]||{}}var E5="";function BZ(A){try{if(!A||typeof A!=="function")return E5;return A.name||E5}catch{return E5}}function Wg(A){let Q=A?.startsWith("file://")?A.slice(7):A;if(Q?.match(/\/[A-Z]:/))Q=Q.slice(1);return Q}var wg;function hI(A,Q=100,B=1/0){try{return F5("",A,Q,B)}catch(I){return{ERROR:`**non-serializable** (${I})`}}}function G5(A,Q=3,B=102400){let I=hI(A,Q);if(k4A(I)>B)return G5(A,Q-1,B);return I}function F5(A,Q,B=1/0,I=1/0,C=g4A()){let[E,Y]=C;if(Q==null||["boolean","string"].includes(typeof Q)||typeof Q==="number"&&Number.isFinite(Q))return Q;let J=D5(A,Q);if(!J.startsWith("[object "))return J;if(Fg(Q))return Q;let F=Gg(Q),G=F!==void 0?F:B;if(G===0)return J.replace("object ","");if(E(Q))return"[Circular ~]";let D=Q;if(D&&typeof D.toJSON==="function")try{let w=D.toJSON();return F5("",w,G-1,I,C)}catch{}let Z=Array.isArray(Q)?[]:{},U=0,W=rw(Q);for(let w in W){if(!Object.prototype.hasOwnProperty.call(W,w))continue;if(U>=I){Z[w]="[MaxProperties ~]";break}let K=W[w];Z[w]=F5(w,K,G-1,I,C),U++}return Y(Q),Z}function D5(A,Q){try{if(wg){let I=wg(Q);if(I)return I}if(typeof global<"u"&&Q===global)return"[Global]";if(typeof Q==="number"&&!Number.isFinite(Q))return`[${Q}]`;if(typeof Q==="function")return`[Function: ${BZ(Q)}]`;if(typeof Q==="symbol")return`[${String(Q)}]`;if(typeof Q==="bigint")return`[BigInt: ${String(Q)}]`;return`[object ${P4A(Q)}]`}catch(B){return`**non-serializable** (${B})`}}function P4A(A){let Q=Object.getPrototypeOf(A);return Q?.constructor?Q.constructor.name:"null prototype"}function O4A(A){return~-encodeURI(A).split(/%..|./).length}function k4A(A){return O4A(JSON.stringify(A))}function g4A(){let A=new WeakSet;function Q(I){if(A.has(I))return!0;return A.add(I),!1}function B(I){A.delete(I)}return[Q,B]}function rE(A,Q=0){if(typeof A!=="string"||Q===0)return A;return A.length<=Q?A:`${A.slice(0,Q)}...`}function Z5(A,Q){let B=A,I=B.length;if(I<=150)return B;if(Q>I)Q=I;let C=Math.max(Q-60,0);if(C<5)C=0;let E=Math.min(C+140,I);if(E>I-5)E=I;if(E===I)C=Math.max(E-140,0);if(B=B.slice(C,E),C>0)B=`'{snip} ${B}`;if(EA.randomUUID()).replace(/-/g,"")}catch{}if(!W5)W5="10000000100040008000100000000000";return W5.replace(/[018]/g,(Q)=>(Q^(_4A()&15)>>Q/4).toString(16))}function Xg(A){return A.exception?.values?.[0]}function tE(A){let{message:Q,event_id:B}=A;if(Q)return Q;let I=Xg(A);if(I){if(I.type&&I.value)return`${I.type}: ${I.value}`;return I.type||I.value||B||""}return B||""}function X5(A,Q,B){let I=A.exception=A.exception||{},C=I.values=I.values||[],E=C[0]=C[0]||{};if(!E.value)E.value=Q||"";if(!E.type)E.type=B||"Error"}function PF(A,Q){let B=Xg(A);if(!B)return;let I={type:"generic",handled:!0},C=B.mechanism;if(B.mechanism={...I,...C,...Q},Q&&"data"in Q){let E={...C?.data,...Q.data};B.mechanism.data=E}}var y4A=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function w5(A){return parseInt(A||"",10)}function V5(A){let Q=A.match(y4A)||[],B=w5(Q[1]),I=w5(Q[2]),C=w5(Q[3]);return{buildmetadata:Q[5],major:isNaN(B)?void 0:B,minor:isNaN(I)?void 0:I,patch:isNaN(C)?void 0:C,prerelease:Q[4]}}function A9(A){if(Vg(A))return!0;try{FQ(A,"__sentry_captured__",!0)}catch{}return!1}function Vg(A){try{return A.__sentry_captured__}catch{}}var zg=1000;function VC(){return VQ()/zg}function S4A(){let{performance:A}=FA;if(!A?.now||!A.timeOrigin)return VC;let Q=A.timeOrigin;return()=>{return(Q+VY(()=>A.now()))/zg}}var Kg;function RB(){return(Kg??(Kg=S4A()))()}function $g(A){let Q=RB(),B={sid:jQ(),init:!0,timestamp:Q,started:Q,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>f4A(B)};if(A)QE(B,A);return B}function QE(A,Q={}){if(Q.user){if(!A.ipAddress&&Q.user.ip_address)A.ipAddress=Q.user.ip_address;if(!A.did&&!Q.did)A.did=Q.user.id||Q.user.email||Q.user.username}if(A.timestamp=Q.timestamp||RB(),Q.abnormal_mechanism)A.abnormal_mechanism=Q.abnormal_mechanism;if(Q.ignoreDuration)A.ignoreDuration=Q.ignoreDuration;if(Q.sid)A.sid=Q.sid.length===32?Q.sid:jQ();if(Q.init!==void 0)A.init=Q.init;if(!A.did&&Q.did)A.did=`${Q.did}`;if(typeof Q.started==="number")A.started=Q.started;if(A.ignoreDuration)A.duration=void 0;else if(typeof Q.duration==="number")A.duration=Q.duration;else{let B=A.timestamp-A.started;A.duration=B>=0?B:0}if(Q.release)A.release=Q.release;if(Q.environment)A.environment=Q.environment;if(!A.ipAddress&&Q.ipAddress)A.ipAddress=Q.ipAddress;if(!A.userAgent&&Q.userAgent)A.userAgent=Q.userAgent;if(typeof Q.errors==="number")A.errors=Q.errors;if(Q.status)A.status=Q.status}function Hg(A,Q){let B={};if(Q)B={status:Q};else if(A.status==="ok")B={status:"exited"};QE(A,B)}function f4A(A){return{sid:`${A.sid}`,init:A.init,started:new Date(A.started*1000).toISOString(),timestamp:new Date(A.timestamp*1000).toISOString(),status:A.status,errors:A.errors,did:typeof A.did==="number"||typeof A.did==="string"?`${A.did}`:void 0,duration:A.duration,abnormal_mechanism:A.abnormal_mechanism,attrs:{release:A.release,environment:A.environment,ip_address:A.ipAddress,user_agent:A.userAgent}}}function eE(A,Q,B=2){if(!Q||typeof Q!=="object"||B<=0)return Q;if(A&&Object.keys(Q).length===0)return A;let I={...A};for(let C in Q)if(Object.prototype.hasOwnProperty.call(Q,C))I[C]=eE(I[C],Q[C],B-1);return I}function TQ(){return jQ()}function tQ(){return jQ().substring(16)}var K5="_sentrySpan";function A0(A,Q){if(Q)FQ(A,K5,wY(Q));else delete A[K5]}function BE(A){return XY(A[K5])}var h4A=100;class eQ{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._attributes={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:TQ(),sampleRand:HQ()}}clone(){let A=new eQ;if(A._breadcrumbs=[...this._breadcrumbs],A._tags={...this._tags},A._attributes={...this._attributes},A._extra={...this._extra},A._contexts={...this._contexts},this._contexts.flags)A._contexts.flags={values:[...this._contexts.flags.values]};return A._user=this._user,A._level=this._level,A._session=this._session,A._transactionName=this._transactionName,A._fingerprint=this._fingerprint,A._eventProcessors=[...this._eventProcessors],A._attachments=[...this._attachments],A._sdkProcessingMetadata={...this._sdkProcessingMetadata},A._propagationContext={...this._propagationContext},A._client=this._client,A._lastEventId=this._lastEventId,A._conversationId=this._conversationId,A0(A,BE(this)),A}setClient(A){this._client=A}setLastEventId(A){this._lastEventId=A}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(A){this._scopeListeners.push(A)}addEventProcessor(A){return this._eventProcessors.push(A),this}setUser(A){if(this._user=A||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session)QE(this._session,{user:A});return this._notifyScopeListeners(),this}getUser(){return this._user}setConversationId(A){return this._conversationId=A||void 0,this._notifyScopeListeners(),this}setTags(A){return this._tags={...this._tags,...A},this._notifyScopeListeners(),this}setTag(A,Q){return this.setTags({[A]:Q})}setAttributes(A){return this._attributes={...this._attributes,...A},this._notifyScopeListeners(),this}setAttribute(A,Q){return this.setAttributes({[A]:Q})}removeAttribute(A){if(A in this._attributes)delete this._attributes[A],this._notifyScopeListeners();return this}setExtras(A){return this._extra={...this._extra,...A},this._notifyScopeListeners(),this}setExtra(A,Q){return this._extra={...this._extra,[A]:Q},this._notifyScopeListeners(),this}setFingerprint(A){return this._fingerprint=A,this._notifyScopeListeners(),this}setLevel(A){return this._level=A,this._notifyScopeListeners(),this}setTransactionName(A){return this._transactionName=A,this._notifyScopeListeners(),this}setContext(A,Q){if(Q===null)delete this._contexts[A];else this._contexts[A]=Q;return this._notifyScopeListeners(),this}setSession(A){if(!A)delete this._session;else this._session=A;return this._notifyScopeListeners(),this}getSession(){return this._session}update(A){if(!A)return this;let Q=typeof A==="function"?A(this):A,B=Q instanceof eQ?Q.getScopeData():aE(Q)?A:void 0,{tags:I,attributes:C,extra:E,user:Y,contexts:J,level:F,fingerprint:G=[],propagationContext:D,conversationId:Z}=B||{};if(this._tags={...this._tags,...I},this._attributes={...this._attributes,...C},this._extra={...this._extra,...E},this._contexts={...this._contexts,...J},Y&&Object.keys(Y).length)this._user=Y;if(F)this._level=F;if(G.length)this._fingerprint=G;if(D)this._propagationContext=D;if(Z)this._conversationId=Z;return this}clear(){return this._breadcrumbs=[],this._tags={},this._attributes={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,this._conversationId=void 0,A0(this,void 0),this._attachments=[],this.setPropagationContext({traceId:TQ(),sampleRand:HQ()}),this._notifyScopeListeners(),this}addBreadcrumb(A,Q){let B=typeof Q==="number"?Q:h4A;if(B<=0)return this;let I={timestamp:VC(),...A,message:A.message?rE(A.message,2048):A.message};if(this._breadcrumbs.push(I),this._breadcrumbs.length>B)this._breadcrumbs=this._breadcrumbs.slice(-B),this._client?.recordDroppedEvent("buffer_overflow","log_item");return this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(A){return this._attachments.push(A),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,attributes:this._attributes,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:BE(this),conversationId:this._conversationId}}setSDKProcessingMetadata(A){return this._sdkProcessingMetadata=eE(this._sdkProcessingMetadata,A,2),this}setPropagationContext(A){return this._propagationContext=A,this}getPropagationContext(){return this._propagationContext}captureException(A,Q){let B=Q?.event_id||jQ();if(!this._client)return q&&H.warn("No client configured on scope - will not capture exception!"),B;let I=Error("Sentry syntheticException");return this._client.captureException(A,{originalException:A,syntheticException:I,...Q,event_id:B},this),B}captureMessage(A,Q,B){let I=B?.event_id||jQ();if(!this._client)return q&&H.warn("No client configured on scope - will not capture message!"),I;let C=B?.syntheticException??Error(A);return this._client.captureMessage(A,Q,{originalException:A,syntheticException:C,...B,event_id:I},this),I}captureEvent(A,Q){let B=A.event_id||Q?.event_id||jQ();if(!this._client)return q&&H.warn("No client configured on scope - will not capture event!"),B;return this._client.captureEvent(A,{...Q,event_id:B},this),B}_notifyScopeListeners(){if(!this._notifyingListeners)this._notifyingListeners=!0,this._scopeListeners.forEach((A)=>{A(this)}),this._notifyingListeners=!1}}function OF(){return GI("defaultCurrentScope",()=>new eQ)}function lB(){return GI("defaultIsolationScope",()=>new eQ)}var Mg=(A)=>A instanceof Promise&&!A[Lg],Lg=Symbol("chained PromiseLike"),Q9=(A,Q,B)=>{let I=A.then((C)=>{return Q(C),C},(C)=>{throw B(C),C});return Mg(I)&&Mg(A)?I:x4A(A,I)},x4A=(A,Q)=>{if(!Q)return A;let B=!1;for(let I in A){if(I in Q)continue;B=!0;let C=A[I];if(typeof C==="function")Object.defineProperty(Q,I,{value:(...E)=>C.apply(A,E),enumerable:!0,configurable:!0,writable:!0});else Q[I]=C}if(B)Object.assign(Q,{[Lg]:!0});return Q};class jg{constructor(A,Q){let B;if(!A)B=new eQ;else B=A;let I;if(!Q)I=new eQ;else I=Q;this._stack=[{scope:B}],this._isolationScope=I}withScope(A){let Q=this._pushScope(),B;try{B=A(Q)}catch(I){throw this._popScope(),I}if(xQ(B))return Q9(B,()=>this._popScope(),()=>this._popScope());return this._popScope(),B}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){let A=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:A}),A}_popScope(){if(this._stack.length<=1)return!1;return!!this._stack.pop()}}function kF(){let A=CQ(),Q=sE(A);return Q.stack=Q.stack||new jg(OF(),lB())}function v4A(A){return kF().withScope(A)}function b4A(A,Q){let B=kF();return B.withScope(()=>{return B.getStackTop().scope=A,Q(A)})}function Ng(A){return kF().withScope(()=>{return A(kF().getIsolationScope())})}function Rg(){return{withIsolationScope:Ng,withScope:v4A,withSetScope:b4A,withSetIsolationScope:(A,Q)=>{return Ng(Q)},getCurrentScope:()=>kF().getScope(),getIsolationScope:()=>kF().getIsolationScope()}}function z5(A){let Q=CQ(),B=sE(Q);B.acs=A}function RQ(A){let Q=sE(A);if(Q.acs)return Q.acs;return Rg()}var qg;function Pg(){return qg?.()}function $5(){return qg!==void 0}function YA(){let A=CQ();return RQ(A).getCurrentScope()}function CA(){let A=CQ();return RQ(A).getIsolationScope()}function IZ(){return GI("globalScope",()=>new eQ)}function lA(...A){let Q=CQ(),B=RQ(Q);if(A.length===2){let[I,C]=A;if(!I)return B.withScope(C);return B.withSetScope(I,C)}return B.withScope(A[0])}function gF(...A){let Q=CQ(),B=RQ(Q);if(A.length===2){let[I,C]=A;if(!I)return B.withIsolationScope(C);return B.withSetIsolationScope(I,C)}return B.withIsolationScope(A[0])}function f(){return YA().getClient()}function KY(A){let Q=Pg();if(Q)return{trace_id:Q.traceId,span_id:Q.spanId};let B=A.getPropagationContext(),{traceId:I,parentSpanId:C,propagationSpanId:E}=B,Y={trace_id:I,span_id:E||tQ()};if(C)Y.parent_span_id=C;return Y}var hA="sentry.source",UI="sentry.sample_rate",H5="sentry.previous_trace_sample_rate",l="sentry.op",O="sentry.origin",M5="sentry.status.message";var L5="sentry.measurement_unit",N5="sentry.measurement_value",j5="sentry.release",R5="sentry.environment",q5="sentry.segment.name",P5="sentry.segment.id",O5="sentry.sdk.name",k5="sentry.sdk.version",g5="sentry.sdk.integrations",T5="user.id",_5="user.email",CZ="user.ip_address",y5="user.name",WI="sentry.custom_span_name",TF="sentry.profile_id",_F="sentry.exclusive_time",S5="cache.hit",f5="cache.key",h5="cache.item_size",x5="http.request.method",EZ="url.full";var zY="gen_ai.conversation.id";var IE="sentry-";var kg=8192;function xI(A){let Q=yF(A);if(!Q)return;let B=Object.entries(Q).reduce((I,[C,E])=>{if(C.startsWith(IE)){let Y=C.slice(IE.length);I[Y]=E}return I},{});if(Object.keys(B).length>0)return B;else return}function $Y(A){if(!A)return;let Q=Object.entries(A).reduce((B,[I,C])=>{if(C)B[`${IE}${I}`]=C;return B},{});return v5(Q)}function yF(A){if(!A||!NF(A)&&!Array.isArray(A))return;if(Array.isArray(A))return A.reduce((Q,B)=>{let I=Og(B);return Object.entries(I).forEach(([C,E])=>{Q[C]=E}),Q},{});return Og(A)}function Og(A){return A.split(",").map((Q)=>{let B=Q.indexOf("=");if(B===-1)return[];let I=Q.slice(0,B),C=Q.slice(B+1);return[I,C].map((E)=>{try{return decodeURIComponent(E.trim())}catch{return}})}).reduce((Q,[B,I])=>{if(B&&I)Q[B]=I;return Q},{})}function v5(A){if(Object.keys(A).length===0)return;return Object.entries(A).reduce((Q,[B,I],C)=>{let E=`${encodeURIComponent(B)}=${encodeURIComponent(I)}`,Y=C===0?E:`${Q},${E}`;if(Y.length>kg)return q&&H.warn(`Not adding key: ${B} with val: ${I} to baggage header due to exceeding baggage size limits.`),Q;else return Y},"")}function SF(A,Q){if(!A)return Q;let B=yF(A),I=yF(Q);if(!I)return A;let C={},E=!1,Y={},J={};for(let[F,G]of Object.entries(I))if(F.startsWith(IE))Y[F]=G,E=!0;else J[F]=G;if(B){for(let[F,G]of Object.entries(B))if(!E||!F.startsWith(IE))C[F]=G}if(E)Object.assign(C,Y);for(let[F,G]of Object.entries(J))C[F]??(C[F]=G);return v5(C)}function vI(A,Q,B=()=>{},I=()=>{}){let C;try{C=A()}catch(E){throw Q(E),B(),E}return m4A(C,Q,B,I)}function m4A(A,Q,B,I){if(xQ(A))return Q9(A,(C)=>{B(),I(C)},(C)=>{Q(C),B()});return B(),I(A),A}function xA(A){if(typeof __SENTRY_TRACING__==="boolean"&&!__SENTRY_TRACING__)return!1;let Q=A||f()?.getOptions();return!!Q&&(Q.tracesSampleRate!=null||!!Q.tracesSampler)}function gg(A){H.log(`Ignoring span ${A.op} - ${A.description} because it matches \`ignoreSpans\`.`)}function bI(A,Q){if(!Q?.length)return!1;for(let B of Q){if(c4A(B)){if(A.description&&XC(A.description,B))return q&&gg(A),!0;continue}let I=!!B.attributes&&Object.keys(B.attributes).length>0;if(!B.name&&!B.op&&!I)continue;let C=B.name?A.description&&XC(A.description,B.name):!0,E=B.op?A.op&&XC(A.op,B.op):!0,Y=B.attributes?Object.entries(B.attributes).every(([J,F])=>d4A(A.attributes?.[J],F)):!0;if(C&&E&&Y)return q&&gg(A),!0}return!1}function d4A(A,Q){if(typeof A==="string"&&(typeof Q==="string"||Q instanceof RegExp))return XC(A,Q);if(Array.isArray(A)&&Array.isArray(Q))return A.length===Q.length&&A.every((B,I)=>B===Q[I]);return A===Q}function Tg(A,Q){let{parent_span_id:B,span_id:I}=Q;if(!B)return;for(let C of A)if(C.parent_span_id===I)C.parent_span_id=B}function c4A(A){return typeof A==="string"||A instanceof RegExp}function qQ(A){return A.getOptions().traceLifecycle==="stream"}function pB(A){if(typeof A==="boolean")return Number(A);let Q=typeof A==="string"?parseFloat(A):A;if(typeof Q!=="number"||isNaN(Q)||Q<0||Q>1)return;return Q}function u4A(A){return typeof A==="object"&&A!=null&&!Array.isArray(A)&&Object.keys(A).includes("value")}function l4A(A,Q){let{value:B,unit:I}=u4A(A)?A:{value:A,unit:void 0},C=p4A(B),E=I&&typeof I==="string"?{unit:I}:{};if(C)return{...C,...E};if(!Q||Q==="skip-undefined"&&B===void 0)return;let Y="";try{Y=JSON.stringify(B)??""}catch{}return{value:Y,type:"string",...E}}function fF(A,Q=!1){let B={};for(let[I,C]of Object.entries(A??{})){let E=l4A(C,Q);if(E)B[I]=E}return B}function b5(A){if(!A)return 0;let Q=0;for(let[B,I]of Object.entries(A)){Q+=B.length*2,Q+=I.type.length*2,Q+=(I.unit?.length??0)*2;let C=I.value;if(Array.isArray(C))Q+=_g(C[0])*C.length;else if(rC(C))Q+=_g(C);else Q+=100}return Q}function _g(A){if(typeof A==="string")return A.length*2;else if(typeof A==="boolean")return 4;else if(typeof A==="number")return 8;return 0}function p4A(A){if(Array.isArray(A))return{value:A,type:"array"};let Q=typeof A==="string"?"string":typeof A==="boolean"?"boolean":typeof A==="number"&&!Number.isNaN(A)?Number.isInteger(A)?"integer":"double":null;if(Q)return{value:A,type:Q}}var i4A=/^o(\d+)\./,o4A=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)((?:\[[:.%\w]+\]|[\w.-]+))(?::(\d+))?\/(.+)/;function n4A(A){return A==="http"||A==="https"}function GB(A,Q=!1){let{host:B,path:I,pass:C,port:E,projectId:Y,protocol:J,publicKey:F}=A;return`${J}://${F}${Q&&C?`:${C}`:""}@${B}${E?`:${E}`:""}/${I?`${I}/`:I}${Y}`}function s4A(A){let Q=o4A.exec(A);if(!Q){XQ(()=>{console.error(`Invalid Sentry Dsn: ${A}`)});return}let[B,I,C="",E="",Y="",J=""]=Q.slice(1),F="",G=J,D=G.split("/");if(D.length>1)F=D.slice(0,-1).join("/"),G=D.pop();if(G){let Z=G.match(/^\d+/);if(Z)G=Z[0]}return yg({host:E,pass:C,path:F,projectId:G,port:Y,protocol:B,publicKey:I})}function yg(A){return{protocol:A.protocol,publicKey:A.publicKey||"",pass:A.pass||"",host:A.host,port:A.port||"",path:A.path||"",projectId:A.projectId}}function a4A(A){if(!q)return!0;let{port:Q,projectId:B,protocol:I}=A;if(["protocol","publicKey","host","projectId"].find((Y)=>{if(!A[Y])return H.error(`Invalid Sentry Dsn: ${Y} missing`),!0;return!1}))return!1;if(!B.match(/^\d+$/))return H.error(`Invalid Sentry Dsn: Invalid projectId ${B}`),!1;if(!n4A(I))return H.error(`Invalid Sentry Dsn: Invalid protocol ${I}`),!1;if(Q&&isNaN(parseInt(Q,10)))return H.error(`Invalid Sentry Dsn: Invalid port ${Q}`),!1;return!0}function r4A(A){return A.match(i4A)?.[1]}function B9(A){let Q=A.getOptions(),{host:B}=A.getDsn()||{},I;if(Q.orgId)I=String(Q.orgId);else if(B)I=r4A(B);return I}function Sg(A){let Q=typeof A==="string"?s4A(A):yg(A);if(!Q||!a4A(Q))return;return Q}var YZ=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$");function fg(A){if(!A)return;let Q=A.match(YZ);if(!Q)return;let B;if(Q[3]==="1")B=!0;else if(Q[3]==="0")B=!1;return{traceId:Q[1],parentSampled:B,parentSpanId:Q[2]}}function CE(A,Q){let B=fg(A),I=xI(Q);if(!B?.traceId)return{traceId:TQ(),sampleRand:HQ()};let C=t4A(B,I);if(I)I.sample_rand=C.toString();let{traceId:E,parentSpanId:Y,parentSampled:J}=B;return{traceId:E,parentSpanId:Y,sampled:J,dsc:I||{},sampleRand:C}}function Q0(A=TQ(),Q=tQ(),B){let I="";if(B!==void 0)I=B?"-1":"-0";return`${A}-${Q}${I}`}function B0(A=TQ(),Q=tQ(),B){return`00-${A}-${Q}-${B?"01":"00"}`}function t4A(A,Q){let B=pB(Q?.sample_rand);if(B!==void 0)return B;let I=pB(Q?.sample_rate);if(I&&A?.parentSampled!==void 0)return A.parentSampled?HQ()*I:I+HQ()*(1-I);else return HQ()}function JZ(A,Q){let B=B9(A);if(Q&&B&&Q!==B)return H.log(`Won't continue trace because org IDs don't match (incoming baggage: ${Q}, SDK options: ${B})`),!1;if(A.getOptions().strictTraceContinuation||!1){if(Q&&!B||!Q&&B)return H.log(`Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${Q}, Sentry client: ${B})`),!1}return!0}var I9=0,GZ=1,hg=!1;function vg(A){let{spanId:Q,traceId:B}=A.spanContext(),{data:I,op:C,parent_span_id:E,status:Y,origin:J,links:F}=r(A);return{parent_span_id:E,span_id:Q,trace_id:B,data:I,op:C,status:Y,origin:J,links:F}}function KC(A){let{spanId:Q,traceId:B,isRemote:I}=A.spanContext(),C=I?Q:r(A).parent_span_id,E=jB(A).scope,Y=I?E?.getPropagationContext().propagationSpanId||tQ():Q;return{parent_span_id:C,span_id:Y,trace_id:B}}function DZ(A){let{traceId:Q,spanId:B}=A.spanContext(),I=iB(A);return Q0(Q,B,I)}function bg(A){let{traceId:Q,spanId:B}=A.spanContext(),I=iB(A);return B0(Q,B,I)}function HY(A){if(A&&A.length>0)return A.map(({context:{spanId:Q,traceId:B,traceFlags:I,...C},attributes:E})=>({span_id:Q,trace_id:B,sampled:I===GZ,attributes:E,...C}));else return}function d5(A){if(A?.length)return A.map(({context:{spanId:Q,traceId:B,traceFlags:I},attributes:C})=>({span_id:Q,trace_id:B,sampled:I===GZ,attributes:C}));else return}function AB(A){if(typeof A==="number")return xg(A);if(Array.isArray(A))return A[0]+A[1]/1e9;if(A instanceof Date)return xg(A.getTime());return RB()}function xg(A){return A>9999999999?A/1000:A}function r(A){if(cg(A))return A.getSpanJSON();let{spanId:Q,traceId:B}=A.spanContext();if(dg(A)){let{attributes:I,startTime:C,name:E,endTime:Y,status:J,links:F}=A;return{span_id:Q,trace_id:B,data:I,description:E,parent_span_id:mg(A),start_timestamp:AB(C),timestamp:AB(Y)||void 0,status:MY(J),op:I[l],origin:I[O],links:HY(F)}}return{span_id:Q,trace_id:B,start_timestamp:0,data:{}}}function C9(A){if(cg(A))return A.getStreamedSpanJSON();let{spanId:Q,traceId:B}=A.spanContext();if(dg(A)){let{attributes:I,startTime:C,name:E,endTime:Y,status:J,links:F}=A;return{name:E,span_id:Q,trace_id:B,parent_span_id:mg(A),start_timestamp:AB(C),end_timestamp:AB(Y),is_segment:A===hF(A),status:Y9(J),attributes:c5(I,J),links:d5(F)}}return{span_id:Q,trace_id:B,start_timestamp:0,name:"",end_timestamp:0,status:"ok",is_segment:A===hF(A)}}function mg(A){return"parentSpanId"in A?A.parentSpanId:("parentSpanContext"in A)?A.parentSpanContext?.spanId:void 0}function E9(A){return{...A,attributes:fF(A.attributes),links:A.links?.map((Q)=>({...Q,attributes:fF(Q.attributes)}))}}function dg(A){let Q=A;return!!Q.attributes&&!!Q.startTime&&!!Q.name&&!!Q.endTime&&!!Q.status}function cg(A){return typeof A.getSpanJSON==="function"}function iB(A){let{traceFlags:Q}=A.spanContext();return Q===GZ}function MY(A){if(!A||A.code===RF)return;if(A.code===AE)return"ok";return A.message||"internal_error"}function Y9(A){return!A||A.code===AE||A.code===RF||A.message==="cancelled"?"ok":"error"}function c5(A,Q){let B=Y9(Q)==="error"?Q?.message:void 0;return{...B&&{[M5]:B},...A}}var FZ="_sentryChildSpans",m5="_sentryRootSpan";function LY(A,Q){let B=A[m5]||A;if(FQ(Q,m5,B),A[FZ])A[FZ].add(Q);else FQ(A,FZ,new Set([Q]))}function ZZ(A){let Q=new Set;function B(I){if(Q.has(I))return;else if(iB(I)){Q.add(I);let C=I[FZ]?Array.from(I[FZ]):[];for(let E of C)B(E)}}return B(A),Array.from(Q)}var sA=hF;function hF(A){return A[m5]||A}function VA(){let A=CQ(),Q=RQ(A);if(Q.getActiveSpan)return Q.getActiveSpan();return BE(YA())}function NY(){if(!hg)XQ(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),hg=!0}var I0="production";var ug=Symbol.for("sentry.nonRecordingSpan");class xF{constructor(A={}){this._traceId=A.traceId||TQ(),this._spanId=A.spanId||tQ(),this.dropReason=A.dropReason,FQ(this,ug,!0)}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:I9}}end(A){}setAttribute(A,Q){return this}setAttributes(A){return this}setStatus(A){return this}updateName(A){return this}isRecording(){return!1}addEvent(A,Q,B){return this}addLink(A){return this}addLinks(A){return this}recordException(A,Q){}}function C0(A){return!!A&&A[ug]===!0}var lg="_frozenDsc";function u5(A,Q){FQ(A,lg,Q)}function l5(A,Q){let B=Q.getOptions(),{publicKey:I}=Q.getDsn()||{},C={environment:B.environment||I0,release:B.release,public_key:I,trace_id:A,org_id:B9(Q)};return Q.emit("createDsc",C),C}function mI(A,Q){let B=Q.getPropagationContext();return B.dsc||l5(B.traceId,A)}function GQ(A){let Q=f();if(!Q)return{};let B=sA(A),I=r(B),C=I.data,E=B.spanContext().traceState,Y=E?.get("sentry.sample_rate")??C[UI]??C[H5];function J(w){if(typeof Y==="number"||typeof Y==="string")w.sample_rate=`${Y}`;return w}let F=B[lg];if(F)return J(F);if(C0(B)&&!xA(Q.getOptions())){let w=jB(B).scope;if(w)return J({...mI(Q,w)})}let G=E?.get("sentry.dsc"),D=G&&xI(G);if(D)return J(D);let Z=l5(A.spanContext().traceId,Q),U=C[hA]??C["sentry.span.source"],W=I.description;if(U!=="url"&&W)Z.transaction=W;if(xA())Z.sampled=String(iB(B)),Z.sample_rand=E?.get("sentry.sample_rand")??jB(B).scope?.getPropagationContext().sampleRand.toString();return J(Z),Q.emit("createDsc",Z,B),Z}function UZ(A){if(!q)return;let{description:Q="< unknown name >",op:B="< unknown op >",parent_span_id:I}=r(A),{spanId:C}=A.spanContext(),E=iB(A),Y=sA(A),J=Y===A,F=`[Tracing] Starting ${E?"sampled":"unsampled"} ${J?"root ":""}span`,G=[`op: ${B}`,`name: ${Q}`,`ID: ${C}`];if(I)G.push(`parent ID: ${I}`);if(!J){let{op:D,description:Z}=r(Y);if(G.push(`root ID: ${Y.spanContext().spanId}`),D)G.push(`root op: ${D}`);if(Z)G.push(`root description: ${Z}`)}H.log(`${F} ${G.join(` - `)}`)}function wZ(A){if(!q)return;let{description:Q="< unknown name >",op:B="< unknown op >"}=v(A),{spanId:I}=A.spanContext(),E=bA(A)===A,Y=`[Tracing] Finishing "${B}" ${E?"root ":""}span "${Q}" with ID ${I}`;$.log(Y)}function KZ(A,Q,B){if(!AQ(A))return[!1];let I=void 0,C;if(typeof A.tracesSampler==="function")C=A.tracesSampler({...Q,inheritOrSampleWith:(J)=>{if(typeof Q.parentSampleRate==="number")return Q.parentSampleRate;if(typeof Q.parentSampled==="boolean")return Number(Q.parentSampled);return J}}),I=!0;else if(Q.parentSampled!==void 0)C=Q.parentSampled;else if(typeof A.tracesSampleRate<"u")C=A.tracesSampleRate,I=!0;let E=fB(C);if(E===void 0)return q&&$.warn(`[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(C)} of type ${JSON.stringify(typeof C)}.`),[!1];if(!E)return q&&$.log(`[Tracing] Discarding transaction because ${typeof A.tracesSampler==="function"?"tracesSampler returned 0 or false":"a negative sampling decision was inherited or tracesSampleRate is set to 0"}`),[!1,E,I];let Y=BB)return i3(A,Q-1,B);return I}function p3(A,Q,B=1/0,I=1/0,C=ldA()){let[E,Y]=C;if(Q==null||["boolean","string"].includes(typeof Q)||typeof Q==="number"&&Number.isFinite(Q))return Q;let J=mdA(A,Q);if(!J.startsWith("[object "))return J;if(Q.__sentry_skip_normalization__)return Q;let F=typeof Q.__sentry_override_normalization_depth__==="number"?Q.__sentry_override_normalization_depth__:B;if(F===0)return J.replace("object ","");if(E(Q))return"[Circular ~]";let G=Q;if(G&&typeof G.toJSON==="function")try{let U=G.toJSON();return p3("",U,F-1,I,C)}catch{}let D=Array.isArray(Q)?[]:{},Z=0,W=x1(Q);for(let U in W){if(!Object.prototype.hasOwnProperty.call(W,U))continue;if(Z>=I){D[U]="[MaxProperties ~]";break}let w=W[U];D[U]=p3(U,w,F-1,I,C),Z++}return Y(Q),D}function mdA(A,Q){try{if(A==="domain"&&Q&&typeof Q==="object"&&Q._events)return"[Domain]";if(A==="domainEmitter")return"[DomainEmitter]";if(typeof global<"u"&&Q===global)return"[Global]";if(typeof window<"u"&&Q===window)return"[Window]";if(typeof document<"u"&&Q===document)return"[Document]";if(IZ(Q))return d1(Q);if(K3(Q))return"[SyntheticEvent]";if(typeof Q==="number"&&!Number.isFinite(Q))return`[${Q}]`;if(typeof Q==="function")return`[Function: ${YZ(Q)}]`;if(typeof Q==="symbol")return`[${String(Q)}]`;if(typeof Q==="bigint")return`[BigInt: ${String(Q)}]`;let B=ddA(Q);if(/^HTML(\w*)Element$/.test(B))return`[HTMLElement: ${B}]`;return`[object ${B}]`}catch(B){return`**non-serializable** (${B})`}}function ddA(A){let Q=Object.getPrototypeOf(A);return Q?.constructor?Q.constructor.name:"null prototype"}function cdA(A){return~-encodeURI(A).split(/%..|./).length}function udA(A){return cdA(JSON.stringify(A))}function ldA(){let A=new WeakSet;function Q(I){if(A.has(I))return!0;return A.add(I),!1}function B(I){A.delete(I)}return[Q,B]}function oQ(A,Q=[]){return[A,Q]}function o3(A,Q){let[B,I]=A;return[B,[...I,Q]]}function VZ(A,Q){let B=A[1];for(let I of B){let C=I[0].type;if(Q(I,C))return!0}return!1}function a3(A,Q){return VZ(A,(B,I)=>Q.includes(I))}function n3(A){let Q=cE(o);return Q.encodePolyfill?Q.encodePolyfill(A):new TextEncoder().encode(A)}function zZ(A){let[Q,B]=A,I=JSON.stringify(Q);function C(E){if(typeof I==="string")I=typeof E==="string"?I+E:[n3(I),E];else I.push(typeof E==="string"?n3(E):E)}for(let E of B){let[Y,J]=E;if(C(` + `)}`)}function WZ(A){if(!q)return;let{description:Q="< unknown name >",op:B="< unknown op >"}=r(A),{spanId:I}=A.spanContext(),E=sA(A)===A,Y=`[Tracing] Finishing "${B}" ${E?"root ":""}span "${Q}" with ID ${I}`;H.log(Y)}function wZ(A,Q,B){if(!xA(A))return[!1];let I=void 0,C;if(typeof A.tracesSampler==="function")C=A.tracesSampler({...Q,inheritOrSampleWith:(J)=>{if(typeof Q.parentSampleRate==="number")return Q.parentSampleRate;if(typeof Q.parentSampled==="boolean")return Number(Q.parentSampled);return J}}),I=!0;else if(Q.parentSampled!==void 0)C=Q.parentSampled;else if(typeof A.tracesSampleRate<"u")C=A.tracesSampleRate,I=!0;let E=pB(C);if(E===void 0)return q&&H.warn(`[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(C)} of type ${JSON.stringify(typeof C)}.`),[!1];if(!E)return q&&H.log(`[Tracing] Discarding transaction because ${typeof A.tracesSampler==="function"?"tracesSampler returned 0 or false":"a negative sampling decision was inherited or tracesSampleRate is set to 0"}`),[!1,E,I];let Y=BQ.includes(I))}function p5(A){let Q=sE(FA);return Q.encodePolyfill?Q.encodePolyfill(A):new TextEncoder().encode(A)}function VZ(A){let[Q,B]=A,I=JSON.stringify(Q);function C(E){if(typeof I==="string")I=typeof E==="string"?I+E:[p5(I),E];else I.push(typeof E==="string"?p5(E):E)}for(let E of B){let[Y,J]=E;if(C(` ${JSON.stringify(Y)} -`),typeof J==="string"||J instanceof Uint8Array)C(J);else{let F;try{F=JSON.stringify(J)}catch{F=JSON.stringify(mI(J))}C(F)}}return typeof I==="string"?I:pdA(I)}function pdA(A){let Q=A.reduce((C,E)=>C+E.length,0),B=new Uint8Array(Q),I=0;for(let C of A)B.set(C,I),I+=C.length;return B}function s3(A){return[{type:"span"},A]}function r3(A){let Q=typeof A.data==="string"?n3(A.data):A.data;return[{type:"attachment",length:Q.length,filename:A.filename,content_type:A.contentType,attachment_type:A.attachmentType},Q]}var Un={sessions:"session",event:"error",client_report:"internal",user_report:"default",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",raw_security:"security",log:"log_item",trace_metric:"metric"};function idA(A){return A in Un}function a1(A){return idA(A)?Un[A]:A}function s1(A){if(!A?.sdk)return;let{name:Q,version:B}=A.sdk;return{name:Q,version:B}}function t3(A,Q,B,I){let C=A.sdkProcessingMetadata?.dynamicSamplingContext;return{event_id:A.event_id,sent_at:new Date().toISOString(),...Q&&{sdk:Q},...!!B&&I&&{dsn:_B(I)},...C&&{trace:C}}}function Xn(A){$.log(`Ignoring span ${A.op} - ${A.description} because it matches \`ignoreSpans\`.`)}function $Z(A,Q){if(!Q?.length||!A.description)return!1;for(let B of Q){if(ndA(B)){if(lC(A.description,B))return q&&Xn(A),!0;continue}if(!B.name&&!B.op)continue;let I=B.name?lC(A.description,B.name):!0,C=B.op?A.op&&lC(A.op,B.op):!0;if(I&&C)return q&&Xn(A),!0}return!1}function wn(A,Q){let{parent_span_id:B,span_id:I}=Q;if(!B)return;for(let C of A)if(C.parent_span_id===I)C.parent_span_id=B}function ndA(A){return typeof A==="string"||A instanceof RegExp}function odA(A,Q){if(!Q)return A;let B=A.sdk||{};return A.sdk={...B,name:B.name||Q.name,version:B.version||Q.version,integrations:[...A.sdk?.integrations||[],...Q.integrations||[]],packages:[...A.sdk?.packages||[],...Q.packages||[]],settings:A.sdk?.settings||Q.settings?{...A.sdk?.settings,...Q.settings}:void 0},A}function Kn(A,Q,B,I){let C=s1(B),E={sent_at:new Date().toISOString(),...C&&{sdk:C},...!!I&&Q&&{dsn:_B(Q)}},Y="aggregates"in A?[{type:"sessions"},A]:[{type:"session"},A.toJSON()];return oQ(E,[Y])}function Vn(A,Q,B,I){let C=s1(B),E=A.type&&A.type!=="replay_event"?A.type:"event";odA(A,B?.sdk);let Y=t3(A,C,I,Q);return delete A.sdkProcessingMetadata,oQ(Y,[[{type:E},A]])}function zn(A,Q){function B(U){return!!U.trace_id&&!!U.public_key}let I=QQ(A[0]),C=Q?.getDsn(),E=Q?.getOptions().tunnel,Y={sent_at:new Date().toISOString(),...B(I)&&{trace:I},...!!E&&C&&{dsn:_B(C)}},{beforeSendSpan:J,ignoreSpans:F}=Q?.getOptions()||{},G=F?.length?A.filter((U)=>!$Z(v(U),F)):A,D=A.length-G.length;if(D)Q?.recordDroppedEvent("before_send","span",D);let Z=J?(U)=>{let w=v(U),K=J(w);if(!K)return UZ(),w;return K}:v,W=[];for(let U of G){let w=Z(U);if(w)W.push(s3(w))}return oQ(Y,W)}function NY(A){if(!A||A.length===0)return;let Q={};return A.forEach((B)=>{let I=B.attributes||{},C=I[f3],E=I[_3];if(typeof C==="string"&&typeof E==="number")Q[B.name]={value:E,unit:C}}),Q}var $n=1000;class HZ{constructor(A={}){if(this._traceId=A.traceId||UB(),this._spanId=A.spanId||XB(),this._startTime=A.startTimestamp||XC(),this._links=A.links,this._attributes={},this.setAttributes({[x]:"manual",[u]:A.op,...A.attributes}),this._name=A.name,A.parentSpanId)this._parentSpanId=A.parentSpanId;if("sampled"in A)this._sampled=A.sampled;if(A.endTimestamp)this._endTime=A.endTimestamp;if(this._events=[],this._isStandaloneSpan=A.isStandalone,this._endTime)this._onSpanEnded()}addLink(A){if(this._links)this._links.push(A);else this._links=[A];return this}addLinks(A){if(this._links)this._links.push(...A);else this._links=A;return this}recordException(A,Q){}spanContext(){let{_spanId:A,_traceId:Q,_sampled:B}=this;return{spanId:A,traceId:Q,traceFlags:B?n1:i1}}setAttribute(A,Q){if(Q===void 0)delete this._attributes[A];else this._attributes[A]=Q;return this}setAttributes(A){return Object.keys(A).forEach((Q)=>this.setAttribute(Q,A[Q])),this}updateStartTime(A){this._startTime=wB(A)}setStatus(A){return this._status=A,this}updateName(A){return this._name=A,this.setAttribute(_A,"custom"),this}end(A){if(this._endTime)return;this._endTime=wB(A),wZ(this),this._onSpanEnded()}getSpanJSON(){return{data:this._attributes,description:this._name,op:this._attributes[u],parent_span_id:this._parentSpanId,span_id:this._spanId,start_timestamp:this._startTime,status:MY(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[x],profile_id:this._attributes[LF],exclusive_time:this._attributes[NF],measurements:NY(this._events),is_segment:this._isStandaloneSpan&&bA(this)===this||void 0,segment_id:this._isStandaloneSpan?bA(this).spanContext().spanId:void 0,links:HY(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(A,Q,B){q&&$.log("[Tracing] Adding an event to span:",A);let I=Hn(Q)?Q:B||XC(),C=Hn(Q)?{}:Q||{},E={name:A,time:wB(I),attributes:C};return this._events.push(E),this}isStandaloneSpan(){return!!this._isStandaloneSpan}_onSpanEnded(){let A=g();if(A)A.emit("spanEnd",this);if(!(this._isStandaloneSpan||this===bA(this)))return;if(this._isStandaloneSpan){if(this._sampled)sdA(zn([this],A));else if(q&&$.log("[Tracing] Discarding standalone span because its trace was not chosen to be sampled."),A)A.recordDroppedEvent("sample_rate","span");return}let B=this._convertSpanToTransaction();if(B)(_I(this).scope||FA()).captureEvent(B)}_convertSpanToTransaction(){if(!Mn(v(this)))return;if(!this._name)q&&$.warn("Transaction has no name, falling back to ``."),this._name="";let{scope:A,isolationScope:Q}=_I(this),B=A?.getScopeData().sdkProcessingMetadata?.normalizedRequest;if(this._sampled!==!0)return;let C=WZ(this).filter((G)=>G!==this&&!adA(G)).map((G)=>v(G)).filter(Mn),E=this._attributes[_A];delete this._attributes[FI],C.forEach((G)=>{delete G.data[FI]});let Y={contexts:{trace:Dn(this)},spans:C.length>$n?C.sort((G,D)=>G.start_timestamp-D.start_timestamp).slice(0,$n):C,start_timestamp:this._startTime,timestamp:this._endTime,transaction:this._name,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:A,capturedSpanIsolationScope:Q,dynamicSamplingContext:QQ(this)},request:B,...E&&{transaction_info:{source:E}}},J=NY(this._events);if(J&&Object.keys(J).length)q&&$.log("[Measurements] Adding measurements to transaction event",JSON.stringify(J,void 0,2)),Y.measurements=J;return Y}}function Hn(A){return A&&typeof A==="number"||A instanceof Date||Array.isArray(A)}function Mn(A){return!!A.start_timestamp&&!!A.timestamp&&!!A.span_id&&!!A.trace_id}function adA(A){return A instanceof HZ&&A.isStandaloneSpan()}function sdA(A){let Q=g();if(!Q)return;let B=A[1];if(!B||B.length===0){Q.recordDroppedEvent("before_send","span");return}Q.sendEnvelope(A)}var r1="__SENTRY_SUPPRESS_TRACING__";function KB(A,Q){let B=LZ();if(B.startSpan)return B.startSpan(A,Q);let I=A6(A),{forceTransaction:C,parentSpan:E,scope:Y}=A,J=Y?.clone();return xQ(J,()=>{return Nn(E)(()=>{let G=FA(),D=Q6(G,E),W=A.onlyIfParent&&!D?new LY:e3({parentSpan:D,spanArguments:I,forceTransaction:C,scope:G});return KY(G,W),xI(()=>Q(W),()=>{let{status:U}=v(W);if(W.isRecording()&&(!U||U==="ok"))W.setStatus({code:BA,message:"internal_error"})},()=>{W.end()})})})}function ZQ(A,Q){let B=LZ();if(B.startSpanManual)return B.startSpanManual(A,Q);let I=A6(A),{forceTransaction:C,parentSpan:E,scope:Y}=A,J=Y?.clone();return xQ(J,()=>{return Nn(E)(()=>{let G=FA(),D=Q6(G,E),W=A.onlyIfParent&&!D?new LY:e3({parentSpan:D,spanArguments:I,forceTransaction:C,scope:G});return KY(G,W),xI(()=>Q(W,()=>W.end()),()=>{let{status:U}=v(W);if(W.isRecording()&&(!U||U==="ok"))W.setStatus({code:BA,message:"internal_error"})})})})}function MZ(A){let Q=LZ();if(Q.startInactiveSpan)return Q.startInactiveSpan(A);let B=A6(A),{forceTransaction:I,parentSpan:C}=A;return(A.scope?(Y)=>xQ(A.scope,Y):C!==void 0?(Y)=>jY(C,Y):(Y)=>Y())(()=>{let Y=FA(),J=Q6(Y,C);if(A.onlyIfParent&&!J)return new LY;return e3({parentSpan:J,spanArguments:B,forceTransaction:I,scope:Y})})}function jY(A,Q){let B=LZ();if(B.withActiveSpan)return B.withActiveSpan(A,Q);return xQ((I)=>{return KY(I,A||void 0),Q(I)})}function RY(A){let Q=LZ();if(Q.suppressTracing)return Q.suppressTracing(A);return xQ((B)=>{B.setSDKProcessingMetadata({[r1]:!0});let I=A();return B.setSDKProcessingMetadata({[r1]:void 0}),I})}function e3({parentSpan:A,spanArguments:Q,forceTransaction:B,scope:I}){if(!AQ()){let Y=new LY;if(B||!A){let J={sampled:"false",sample_rate:"0",transaction:Q.name,...QQ(Y)};o1(Y,J)}return Y}let C=AA(),E;if(A&&!B)E=rdA(A,I,Q),RF(A,E);else if(A){let Y=QQ(A),{traceId:J,spanId:F}=A.spanContext(),G=bI(A);E=Ln({traceId:J,parentSpanId:F,...Q},I,G),o1(E,Y)}else{let{traceId:Y,dsc:J,parentSpanId:F,sampled:G}={...C.getPropagationContext(),...I.getPropagationContext()};if(E=Ln({traceId:Y,parentSpanId:F,...Q},I,G),J)o1(E,J)}return XZ(E),EZ(E,I,C),E}function A6(A){let B={isStandalone:(A.experimental||{}).standalone,...A};if(A.startTime){let I={...B};return I.startTimestamp=wB(A.startTime),delete I.startTime,I}return B}function LZ(){let A=nQ();return vI(A)}function Ln(A,Q,B){let I=g(),C=I?.getOptions()||{},{name:E=""}=A,Y={spanAttributes:{...A.attributes},spanName:E,parentSampled:B};I?.emit("beforeSampling",Y,{decision:!1});let J=Y.parentSampled??B,F=Y.spanAttributes,G=Q.getPropagationContext(),[D,Z,W]=Q.getScopeData().sdkProcessingMetadata[r1]?[!1]:KZ(C,{name:E,parentSampled:J,attributes:F,parentSampleRate:fB(G.dsc?.sample_rate)},G.sampleRand),U=new HZ({...A,attributes:{[_A]:"custom",[JI]:Z!==void 0&&W?Z:void 0,...F},sampled:D});if(!D&&I)q&&$.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),I.recordDroppedEvent("sample_rate","transaction");if(I)I.emit("spanStart",U);return U}function rdA(A,Q,B){let{spanId:I,traceId:C}=A.spanContext(),E=Q.getScopeData().sdkProcessingMetadata[r1]?!1:bI(A),Y=E?new HZ({...B,parentSpanId:I,traceId:C,sampled:E}):new LY({traceId:C});RF(A,Y);let J=g();if(J){if(J.emit("spanStart",Y),B.endTimestamp)J.emit("spanEnd",Y)}return Y}function Q6(A,Q){if(Q)return Q;if(Q===null)return;let B=nC(A);if(!B)return;let I=g();if((I?I.getOptions():{}).parentSpanIsAlwaysRootSpan)return bA(B);return B}function Nn(A){return A!==void 0?(Q)=>{return jY(A,Q)}:(Q)=>Q()}var B6=0,jn=1,Rn=2;function aC(A){return new NZ((Q)=>{Q(A)})}function OF(A){return new NZ((Q,B)=>{B(A)})}class NZ{constructor(A){this._state=B6,this._handlers=[],this._runExecutor(A)}then(A,Q){return new NZ((B,I)=>{this._handlers.push([!1,(C)=>{if(!A)B(C);else try{B(A(C))}catch(E){I(E)}},(C)=>{if(!Q)I(C);else try{B(Q(C))}catch(E){I(E)}}]),this._executeHandlers()})}catch(A){return this.then((Q)=>Q,A)}finally(A){return new NZ((Q,B)=>{let I,C;return this.then((E)=>{if(C=!1,I=E,A)A()},(E)=>{if(C=!0,I=E,A)A()}).then(()=>{if(C){B(I);return}Q(I)})})}_executeHandlers(){if(this._state===B6)return;let A=this._handlers.slice();this._handlers=[],A.forEach((Q)=>{if(Q[0])return;if(this._state===jn)Q[1](this._value);if(this._state===Rn)Q[2](this._value);Q[0]=!0})}_runExecutor(A){let Q=(C,E)=>{if(this._state!==B6)return;if(NQ(E)){E.then(B,I);return}this._state=C,this._value=E,this._executeHandlers()},B=(C)=>{Q(jn,C)},I=(C)=>{Q(Rn,C)};try{A(B,I)}catch(C){I(C)}}}function qn(A,Q,B,I=0){try{let C=I6(Q,B,A,I);return NQ(C)?C:aC(C)}catch(C){return OF(C)}}function I6(A,Q,B,I){let C=B[I];if(!A||!C)return A;let E=C({...A},Q);if(q&&E===null&&$.log(`Event processor "${C.id||"?"}" dropped event`),NQ(E))return E.then((Y)=>I6(Y,Q,B,I+1));return I6(E,Q,B,I+1)}var qY,On,Tn,rE;function Pn(A){let Q=o._sentryDebugIds,B=o._debugIds;if(!Q&&!B)return{};let I=Q?Object.keys(Q):[],C=B?Object.keys(B):[];if(rE&&I.length===On&&C.length===Tn)return rE;if(On=I.length,Tn=C.length,rE={},!qY)qY={};let E=(Y,J)=>{for(let F of Y){let G=J[F],D=qY?.[F];if(D&&rE&&G){if(rE[D[0]]=G,qY)qY[F]=[D[0],G]}else if(G){let Z=A(F);for(let W=Z.length-1;W>=0;W--){let w=Z[W]?.filename;if(w&&rE&&qY){rE[w]=G,qY[F]=[w,G];break}}}}};if(Q)E(I,Q);if(B)E(C,B);return rE}function Sn(A,Q){let{fingerprint:B,span:I,breadcrumbs:C,sdkProcessingMetadata:E}=Q;if(tdA(A,Q),I)QcA(A,I);BcA(A,B),edA(A,C),AcA(A,E)}function kn(A,Q){let{extra:B,tags:I,attributes:C,user:E,contexts:Y,level:J,sdkProcessingMetadata:F,breadcrumbs:G,fingerprint:D,eventProcessors:Z,attachments:W,propagationContext:U,transactionName:w,span:K}=Q;if(jZ(A,"extra",B),jZ(A,"tags",I),jZ(A,"attributes",C),jZ(A,"user",E),jZ(A,"contexts",Y),A.sdkProcessingMetadata=iE(A.sdkProcessingMetadata,F,2),J)A.level=J;if(w)A.transactionName=w;if(K)A.span=K;if(G.length)A.breadcrumbs=[...A.breadcrumbs,...G];if(D.length)A.fingerprint=[...A.fingerprint,...D];if(Z.length)A.eventProcessors=[...A.eventProcessors,...Z];if(W.length)A.attachments=[...A.attachments,...W];A.propagationContext={...A.propagationContext,...U}}function jZ(A,Q,B){A[Q]=iE(A[Q],B,1)}function TF(A,Q){let B=JZ().getScopeData();return A&&kn(B,A.getScopeData()),Q&&kn(B,Q.getScopeData()),B}function tdA(A,Q){let{extra:B,tags:I,user:C,contexts:E,level:Y,transactionName:J}=Q;if(Object.keys(B).length)A.extra={...B,...A.extra};if(Object.keys(I).length)A.tags={...I,...A.tags};if(Object.keys(C).length)A.user={...C,...A.user};if(Object.keys(E).length)A.contexts={...E,...A.contexts};if(Y)A.level=Y;if(J&&A.type!=="transaction")A.transaction=J}function edA(A,Q){let B=[...A.breadcrumbs||[],...Q];A.breadcrumbs=B.length?B:void 0}function AcA(A,Q){A.sdkProcessingMetadata={...A.sdkProcessingMetadata,...Q}}function QcA(A,Q){A.contexts={trace:sE(Q),...A.contexts},A.sdkProcessingMetadata={dynamicSamplingContext:QQ(Q),...A.sdkProcessingMetadata};let B=bA(Q),I=v(B).description;if(I&&!A.transaction&&A.type==="transaction")A.transaction=I}function BcA(A,Q){if(A.fingerprint=A.fingerprint?Array.isArray(A.fingerprint)?A.fingerprint:[A.fingerprint]:[],Q)A.fingerprint=A.fingerprint.concat(Q);if(!A.fingerprint.length)delete A.fingerprint}function gn(A,Q,B,I,C,E){let{normalizeDepth:Y=3,normalizeMaxBreadth:J=1000}=A,F={...Q,event_id:Q.event_id||B.event_id||DQ(),timestamp:Q.timestamp||pC()},G=B.integrations||A.integrations.map((z)=>z.name);if(IcA(F,A),YcA(F,G),C)C.emit("applyFrameMetadata",Q);if(Q.type===void 0)CcA(F,A.stackParser);let D=FcA(I,B.captureContext);if(B.mechanism)zF(F,B.mechanism);let Z=C?C.getEventProcessors():[],W=TF(E,D),U=[...B.attachments||[],...W.attachments];if(U.length)B.attachments=U;Sn(F,W);let w=[...Z,...W.eventProcessors];return(B.data&&B.data.__sentry__===!0?aC(F):qn(w,F,B)).then((z)=>{if(z)EcA(z);if(typeof Y==="number"&&Y>0)return JcA(z,Y,J);return z})}function IcA(A,Q){let{environment:B,release:I,dist:C,maxValueLength:E}=Q;if(A.environment=A.environment||B||qF,!A.release&&I)A.release=I;if(!A.dist&&C)A.dist=C;let Y=A.request;if(Y?.url&&E)Y.url=uE(Y.url,E);if(E)A.exception?.values?.forEach((J)=>{if(J.value)J.value=uE(J.value,E)})}function CcA(A,Q){let B=Pn(Q);A.exception?.values?.forEach((I)=>{I.stacktrace?.frames?.forEach((C)=>{if(C.filename)C.debug_id=B[C.filename]})})}function EcA(A){let Q={};if(A.exception?.values?.forEach((I)=>{I.stacktrace?.frames?.forEach((C)=>{if(C.debug_id){if(C.abs_path)Q[C.abs_path]=C.debug_id;else if(C.filename)Q[C.filename]=C.debug_id;delete C.debug_id}})}),Object.keys(Q).length===0)return;A.debug_meta=A.debug_meta||{},A.debug_meta.images=A.debug_meta.images||[];let B=A.debug_meta.images;Object.entries(Q).forEach(([I,C])=>{B.push({type:"sourcemap",code_file:I,debug_id:C})})}function YcA(A,Q){if(Q.length>0)A.sdk=A.sdk||{},A.sdk.integrations=[...A.sdk.integrations||[],...Q]}function JcA(A,Q,B){if(!A)return null;let I={...A,...A.breadcrumbs&&{breadcrumbs:A.breadcrumbs.map((C)=>({...C,...C.data&&{data:mI(C.data,Q,B)}}))},...A.user&&{user:mI(A.user,Q,B)},...A.contexts&&{contexts:mI(A.contexts,Q,B)},...A.extra&&{extra:mI(A.extra,Q,B)}};if(A.contexts?.trace&&I.contexts){if(I.contexts.trace=A.contexts.trace,A.contexts.trace.data)I.contexts.trace.data=mI(A.contexts.trace.data,Q,B)}if(A.spans)I.spans=A.spans.map((C)=>{return{...C,...C.data&&{data:mI(C.data,Q,B)}}});if(A.contexts?.flags&&I.contexts)I.contexts.flags=mI(A.contexts.flags,3,B);return I}function FcA(A,Q){if(!Q)return A;let B=A?A.clone():new vQ;return B.update(Q),B}function yn(A){if(!A)return;if(GcA(A))return{captureContext:A};if(ZcA(A))return{captureContext:A};return A}function GcA(A){return A instanceof vQ||typeof A==="function"}var DcA=["user","level","extra","contexts","tags","fingerprint","propagationContext"];function ZcA(A){return Object.keys(A).some((Q)=>DcA.includes(Q))}function n(A,Q){return FA().captureException(A,yn(Q))}function RZ(A,Q){let B=typeof Q==="string"?Q:void 0,I=typeof Q!=="string"?{captureContext:Q}:void 0;return FA().captureMessage(A,B,I)}function qZ(A,Q){return FA().captureEvent(A,Q)}function OZ(A){AA().setTags(A)}async function OY(A){let Q=g();if(Q)return Q.flush(A);return q&&$.warn("Cannot flush events. No client defined."),Promise.resolve(!1)}function TZ(){let A=g();return A?.getOptions().enabled!==!1&&!!A?.getTransport()}function PZ(A){let Q=AA(),{user:B}=TF(Q,FA()),{userAgent:I}=o.navigator||{},C=si({user:B,...I&&{userAgent:I},...A}),E=Q.getSession();if(E?.status==="ok")iC(E,{status:"exited"});return PF(),Q.setSession(C),C}function PF(){let A=AA(),B=FA().getSession()||A.getSession();if(B)ri(B);WcA(),A.setSession()}function WcA(){let A=AA(),Q=g(),B=A.getSession();if(B&&Q)Q.captureSession(B)}function hn(A,Q,B,I,C){let E={sent_at:new Date().toISOString()};if(B?.sdk)E.sdk={name:B.sdk.name,version:B.sdk.version};if(!!I&&!!C)E.dsn=_B(C);if(Q)E.trace=Q;let Y=UcA(A);return oQ(E,[Y])}function UcA(A){return[{type:"check_in"},A]}var XcA="7";function wcA(A){let Q=A.protocol?`${A.protocol}:`:"",B=A.port?`:${A.port}`:"";return`${Q}//${A.host}${B}${A.path?`/${A.path}`:""}/api/`}function KcA(A){return`${wcA(A)}${A.projectId}/envelope/`}function VcA(A,Q){let B={sentry_version:XcA};if(A.publicKey)B.sentry_key=A.publicKey;if(Q)B.sentry_client=`${Q.name}/${Q.version}`;return new URLSearchParams(B).toString()}function fn(A,Q,B){return Q?Q:`${KcA(A)}?${VcA(A,B)}`}var C6=[];function zcA(A){let Q={};return A.forEach((B)=>{let{name:I}=B,C=Q[I];if(C&&!C.isDefaultInstance&&B.isDefaultInstance)return;Q[I]=B}),Object.values(Q)}function E6(A){let Q=A.defaultIntegrations||[],B=A.integrations;Q.forEach((C)=>{C.isDefaultInstance=!0});let I;if(Array.isArray(B))I=[...Q,...B];else if(typeof B==="function"){let C=B(Q);I=Array.isArray(C)?C:[C]}else I=Q;return zcA(I)}function _n(A,Q){let B={};return Q.forEach((I)=>{if(I)J6(A,I,B)}),B}function Y6(A,Q){for(let B of Q)if(B?.afterAllSetup)B.afterAllSetup(A)}function J6(A,Q,B){if(B[Q.name]){q&&$.log(`Integration skipped because it was already installed: ${Q.name}`);return}if(B[Q.name]=Q,!C6.includes(Q.name)&&typeof Q.setupOnce==="function")Q.setupOnce(),C6.push(Q.name);if(Q.setup&&typeof Q.setup==="function")Q.setup(A);if(typeof Q.preprocessEvent==="function"){let I=Q.preprocessEvent.bind(Q);A.on("preprocessEvent",(C,E)=>I(C,E,A))}if(typeof Q.processEvent==="function"){let I=Q.processEvent.bind(Q),C=Object.assign((E,Y)=>I(E,Y,A),{id:Q.name});A.addEventProcessor(C)}q&&$.log(`Integration installed: ${Q.name}`)}function R(A){return A}function $cA(A){return typeof A==="object"&&A!=null&&!Array.isArray(A)&&Object.keys(A).includes("value")}function HcA(A,Q){let{value:B,unit:I}=$cA(A)?A:{value:A,unit:void 0},C=McA(B),E=I&&typeof I==="string"?{unit:I}:{};if(C)return{...C,...E};if(!Q||Q==="skip-undefined"&&B===void 0)return;let Y="";try{Y=JSON.stringify(B)??""}catch{}return{value:Y,type:"string",...E}}function F6(A,Q=!1){let B={};for(let[I,C]of Object.entries(A??{})){let E=HcA(C,Q);if(E)B[I]=E}return B}function McA(A){let Q=typeof A==="string"?"string":typeof A==="boolean"?"boolean":typeof A==="number"&&!Number.isNaN(A)?Number.isInteger(A)?"integer":"double":null;if(Q)return{value:A,type:Q}}var G6=0,D6;function vn(A){let Q=Math.floor(A*1000);if(D6!==void 0&&Q!==D6)G6=0;let B=G6;return G6++,D6=Q,{key:"sentry.timestamp.sequence",value:{value:B,type:"integer"}}}function t1(A,Q){if(!Q)return[void 0,void 0];return xQ(Q,()=>{let B=vB(),I=B?sE(B):VY(Q);return[B?QQ(B):wC(A,Q),I]})}function LcA(A){return[{type:"log",item_count:A.length,content_type:"application/vnd.sentry.items.log+json"},{items:A}]}function xn(A,Q,B,I){let C={};if(Q?.sdk)C.sdk={name:Q.sdk.name,version:Q.sdk.version};if(!!B&&!!I)C.dsn=_B(I);return oQ(C,[LcA(A)])}function kF(A,Q){let B=Q??NcA(A)??[];if(B.length===0)return;let I=A.getOptions(),C=xn(B,I._metadata,I.tunnel,A.getDsn());bn().set(A,[]),A.emit("flushLogs"),A.sendEnvelope(C)}function NcA(A){return bn().get(A)}function bn(){return fI("clientToLogBufferMap",()=>new WeakMap)}function jcA(A){return[{type:"trace_metric",item_count:A.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:A}]}function mn(A,Q,B,I){let C={};if(Q?.sdk)C.sdk={name:Q.sdk.name,version:Q.sdk.version};if(!!B&&!!I)C.dsn=_B(I);return oQ(C,[jcA(A)])}var RcA=1000;function sC(A,Q,B,I=!0){if(B&&(I||!(Q in A)))A[Q]=B}function qcA(A,Q){let B=W6(),I=cn(A);if(I===void 0)B.set(A,[Q]);else if(I.length>=RcA)Z6(A,I),B.set(A,[Q]);else B.set(A,[...I,Q])}function OcA(A,Q,B){let{release:I,environment:C}=Q.getOptions(),E={...A.attributes};sC(E,"user.id",B.id,!1),sC(E,"user.email",B.email,!1),sC(E,"user.name",B.username,!1),sC(E,"sentry.release",I),sC(E,"sentry.environment",C);let{name:Y,version:J}=Q.getSdkMetadata()?.sdk??{};sC(E,"sentry.sdk.name",Y),sC(E,"sentry.sdk.version",J);let F=Q.getIntegrationByName("Replay"),G=F?.getReplayId(!0);if(sC(E,"sentry.replay_id",G),G&&F?.getRecordingMode()==="buffer")sC(E,"sentry._internal.replay_is_buffering",!0);return{...A,attributes:E}}function TcA(A,Q,B,I){let[,C]=t1(Q,B),E=nC(B),Y=E?E.spanContext().traceId:C?.trace_id,J=E?E.spanContext().spanId:void 0,F=XC(),G=vn(F);return{timestamp:F,trace_id:Y??"",span_id:J,name:A.name,type:A.type,unit:A.unit,value:A.value,attributes:{...F6(I),...F6(A.attributes,"skip-undefined"),[G.key]:G.value}}}function dn(A,Q){let B=Q?.scope??FA(),I=Q?.captureSerializedMetric??qcA,C=B?.getClient()??g();if(!C){q&&$.warn("No client available to capture metric.");return}let{_experiments:E,enableMetrics:Y,beforeSendMetric:J}=C.getOptions();if(!(Y??E?.enableMetrics??!0)){q&&$.warn("metrics option not enabled, metric will not be captured.");return}let{user:G,attributes:D}=TF(AA(),B),Z=OcA(A,C,G);C.emit("processMetric",Z);let W=J||E?.beforeSendMetric,U=W?W(Z):Z;if(!U){q&&$.log("`beforeSendMetric` returned `null`, will not send metric.");return}let w=TcA(U,C,B,D);q&&$.log("[Metric]",w),I(C,w),C.emit("afterCaptureMetric",U)}function Z6(A,Q){let B=Q??cn(A)??[];if(B.length===0)return;let I=A.getOptions(),C=mn(B,I._metadata,I.tunnel,A.getDsn());W6().set(A,[]),A.emit("flushMetrics"),A.sendEnvelope(C)}function cn(A){return W6().get(A)}function W6(){return fI("clientToMetricBufferMap",()=>new WeakMap)}function e1(A){if(typeof A==="object"&&typeof A.unref==="function")A.unref();return A}var kZ=Symbol.for("SentryBufferFullError");function SF(A=100){let Q=new Set;function B(){return Q.sizeI(J),()=>I(J)),J}function E(Y){if(!Q.size)return aC(!0);let J=Promise.allSettled(Array.from(Q)).then(()=>!0);if(!Y)return J;let F=[J,new Promise((G)=>e1(setTimeout(()=>G(!1),Y)))];return Promise.race(F)}return{get $(){return Array.from(Q)},add:C,drain:E}}var PcA=60000;function kcA(A,Q=YI()){let B=parseInt(`${A}`,10);if(!isNaN(B))return B*1000;let I=Date.parse(`${A}`);if(!isNaN(I))return I-Q;return PcA}function ScA(A,Q){return A[Q]||A.all||0}function un(A,Q,B=YI()){return ScA(A,Q)>B}function ln(A,{statusCode:Q,headers:B},I=YI()){let C={...A},E=B?.["x-sentry-rate-limits"],Y=B?.["retry-after"];if(E)for(let J of E.trim().split(",")){let[F,G,,,D]=J.split(":",5),Z=parseInt(F,10),W=(!isNaN(Z)?Z:60)*1000;if(!G)C.all=I+W;else for(let U of G.split(";"))if(U==="metric_bucket"){if(!D||D.split(";").includes("custom"))C[U]=I+W}else C[U]=I+W}else if(Y)C.all=I+kcA(Y,I);else if(Q===429)C.all=I+60000;return C}var SZ=64;function gF(A,Q,B=SF(A.bufferSize||SZ)){let I={},C=(Y)=>B.drain(Y);function E(Y){let J=[];if(VZ(Y,(Z,W)=>{let U=a1(W);if(un(I,U))A.recordDroppedEvent("ratelimit_backoff",U);else J.push(Z)}),J.length===0)return Promise.resolve({});let F=oQ(Y[0],J),G=(Z)=>{if(a3(F,["client_report"])){q&&$.warn(`Dropping client report. Will not send outcomes (reason: ${Z}).`);return}VZ(F,(W,U)=>{A.recordDroppedEvent(Z,a1(U))})},D=()=>Q({body:zZ(F)}).then((Z)=>{if(Z.statusCode===413)return q&&$.error("Sentry responded with status code 413. Envelope was discarded due to exceeding size limits."),G("send_error"),Z;if(q&&Z.statusCode!==void 0&&(Z.statusCode<200||Z.statusCode>=300))$.warn(`Sentry responded with status code ${Z.statusCode} to sent event.`);return I=ln(I,Z),Z},(Z)=>{throw G("network_error"),q&&$.error("Encountered error running transport request:",Z),Z});return B.add(D).then((Z)=>Z,(Z)=>{if(Z===kZ)return q&&$.error("Skipped sending event because buffer is full."),G("queue_overflow"),Promise.resolve({});else throw Z})}return{send:E,flush:C}}function pn(A,Q,B){let I=[{type:"client_report"},{timestamp:B||pC(),discarded_events:A}];return oQ(Q?{dsn:Q}:{},[I])}function AX(A){let Q=[];if(A.message)Q.push(A.message);try{let B=A.exception.values[A.exception.values.length-1];if(B?.value){if(Q.push(B.value),B.type)Q.push(`${B.type}: ${B.value}`)}}catch{}return Q}function nn(A){let{trace_id:Q,parent_span_id:B,span_id:I,status:C,origin:E,data:Y,op:J}=A.contexts?.trace??{};return{data:Y??{},description:A.transaction,op:J,parent_span_id:B,span_id:I??"",start_timestamp:A.start_timestamp??0,status:C,timestamp:A.timestamp,trace_id:Q??"",origin:E,profile_id:Y?.[LF],exclusive_time:Y?.[NF],measurements:A.measurements,is_segment:!0}}function on(A){return{type:"transaction",timestamp:A.timestamp,start_timestamp:A.start_timestamp,transaction:A.description,contexts:{trace:{trace_id:A.trace_id,span_id:A.span_id,parent_span_id:A.parent_span_id,op:A.op,status:A.status,origin:A.origin,data:{...A.data,...A.profile_id&&{[LF]:A.profile_id},...A.exclusive_time&&{[NF]:A.exclusive_time}}}},measurements:A.measurements}}var an="Not capturing exception because it's already been captured.",sn="Discarded session because of missing or non-string release",Bo=Symbol.for("SentryInternalError"),Io=Symbol.for("SentryDoNotSendEventError"),gcA=5000;function QX(A){return{message:A,[Bo]:!0}}function U6(A){return{message:A,[Io]:!0}}function rn(A){return!!A&&typeof A==="object"&&Bo in A}function tn(A){return!!A&&typeof A==="object"&&Io in A}function en(A,Q,B,I,C){let E=0,Y,J=!1;A.on(B,()=>{E=0,clearTimeout(Y),J=!1}),A.on(Q,(F)=>{if(E+=I(F),E>=800000)C(A);else if(!J)J=!0,Y=e1(setTimeout(()=>{C(A)},gcA))}),A.on("flush",()=>{C(A)})}class w6{constructor(A){if(this._options=A,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=SF(A.transportOptions?.bufferSize??SZ),A.dsn)this._dsn=Yn(A.dsn);else q&&$.warn("No DSN provided, client will not send events.");if(this._dsn){let B=fn(this._dsn,A.tunnel,A._metadata?A._metadata.sdk:void 0);this._transport=A.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...A.transportOptions,url:B})}if(this._options.enableLogs=this._options.enableLogs??this._options._experiments?.enableLogs,this._options.enableLogs)en(this,"afterCaptureLog","flushLogs",_cA,kF);if(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)en(this,"afterCaptureMetric","flushMetrics",fcA,Z6)}captureException(A,Q,B){let I=DQ();if(c1(A))return q&&$.log(an),I;let C={event_id:I,...Q};return this._process(()=>this.eventFromException(A,C).then((E)=>this._captureEvent(E,C,B)).then((E)=>E),"error"),C.event_id}captureMessage(A,Q,B,I){let C={event_id:DQ(),...B},E=XF(A)?A:String(A),Y=BZ(A),J=Y?this.eventFromMessage(E,Q,C):this.eventFromException(A,C);return this._process(()=>J.then((F)=>this._captureEvent(F,C,I)),Y?"unknown":"error"),C.event_id}captureEvent(A,Q,B){let I=DQ();if(Q?.originalException&&c1(Q.originalException))return q&&$.log(an),I;let C={event_id:I,...Q},E=A.sdkProcessingMetadata||{},Y=E.capturedSpanScope,J=E.capturedSpanIsolationScope,F=Ao(A.type);return this._process(()=>this._captureEvent(A,C,Y||B,J),F),C.event_id}captureSession(A){this.sendSession(A),iC(A,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}async flush(A){let Q=this._transport;if(!Q)return!0;this.emit("flush");let B=await this._isClientDoneProcessing(A),I=await Q.flush(A);return B&&I}async close(A){kF(this);let Q=await this.flush(A);return this.getOptions().enabled=!1,this.emit("close"),Q}getEventProcessors(){return this._eventProcessors}addEventProcessor(A){this._eventProcessors.push(A)}init(){if(this._isEnabled()||this._options.integrations.some(({name:A})=>A.startsWith("Spotlight")))this._setupIntegrations()}getIntegrationByName(A){return this._integrations[A]}addIntegration(A){let Q=this._integrations[A.name];if(J6(this,A,this._integrations),!Q)Y6(this,[A])}sendEvent(A,Q={}){this.emit("beforeSendEvent",A,Q);let B=Vn(A,this._dsn,this._options._metadata,this._options.tunnel);for(let I of Q.attachments||[])B=o3(B,r3(I));this.sendEnvelope(B).then((I)=>this.emit("afterSendEvent",A,I))}sendSession(A){let{release:Q,environment:B=qF}=this._options;if("aggregates"in A){let C=A.attrs||{};if(!C.release&&!Q){q&&$.warn(sn);return}C.release=C.release||Q,C.environment=C.environment||B,A.attrs=C}else{if(!A.release&&!Q){q&&$.warn(sn);return}A.release=A.release||Q,A.environment=A.environment||B}this.emit("beforeSendSession",A);let I=Kn(A,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(I)}recordDroppedEvent(A,Q,B=1){if(this._options.sendClientReports){let I=`${A}:${Q}`;q&&$.log(`Recording outcome: "${I}"${B>1?` (${B} times)`:""}`),this._outcomes[I]=(this._outcomes[I]||0)+B}}on(A,Q){let B=this._hooks[A]=this._hooks[A]||new Set,I=(...C)=>Q(...C);return B.add(I),()=>{B.delete(I)}}emit(A,...Q){let B=this._hooks[A];if(B)B.forEach((I)=>I(...Q))}async sendEnvelope(A){if(this.emit("beforeEnvelope",A),this._isEnabled()&&this._transport)try{return await this._transport.send(A)}catch(Q){return q&&$.error("Error while sending envelope:",Q),{}}return q&&$.error("Transport disabled"),{}}dispose(){}_setupIntegrations(){let{integrations:A}=this._options;this._integrations=_n(this,A),Y6(this,A)}_updateSessionFromEvent(A,Q){let B=Q.level==="fatal",I=!1,C=Q.exception?.values;if(C){I=!0,B=!1;for(let J of C)if(J.mechanism?.handled===!1){B=!0;break}}let E=A.status==="ok";if(E&&A.errors===0||E&&B)iC(A,{...B&&{status:"crashed"},errors:A.errors||Number(I||B)}),this.captureSession(A)}async _isClientDoneProcessing(A){let Q=0;while(!A||QsetTimeout(B,1)),!this._numProcessing)return!0;Q++}return!1}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(A,Q,B,I){let C=this.getOptions(),E=Object.keys(this._integrations);if(!Q.integrations&&E?.length)Q.integrations=E;if(this.emit("preprocessEvent",A,Q),!A.type)I.setLastEventId(A.event_id||Q.event_id);return gn(C,A,Q,B,this,I).then((Y)=>{if(Y===null)return Y;this.emit("postprocessEvent",Y,Q),Y.contexts={trace:{...Y.contexts?.trace,...VY(B)},...Y.contexts};let J=wC(this,B);return Y.sdkProcessingMetadata={dynamicSamplingContext:J,...Y.sdkProcessingMetadata},Y})}_captureEvent(A,Q={},B=FA(),I=AA()){if(q&&X6(A))$.log(`Captured error event \`${AX(A)[0]||""}\``);return this._processEvent(A,Q,B,I).then((C)=>{return C.event_id},(C)=>{if(q)if(tn(C))$.log(C.message);else if(rn(C))$.warn(C.message);else $.warn(C);return})}_processEvent(A,Q,B,I){let C=this.getOptions(),{sampleRate:E}=C,Y=Co(A),J=X6(A),G=`before send for type \`${A.type||"error"}\``,D=typeof E>"u"?void 0:fB(E);if(J&&typeof D==="number"&&jQ()>D)return this.recordDroppedEvent("sample_rate","error"),OF(U6(`Discarding event because it's not included in the random sample (sampling rate = ${E})`));let Z=Ao(A.type);return this._prepareEvent(A,Q,B,I).then((W)=>{if(W===null)throw this.recordDroppedEvent("event_processor",Z),U6("An event processor returned `null`, will not send event.");if(Q.data?.__sentry__===!0)return W;let w=hcA(this,C,W,Q);return ycA(w,G)}).then((W)=>{if(W===null){if(this.recordDroppedEvent("before_send",Z),Y){let V=1+(A.spans||[]).length;this.recordDroppedEvent("before_send","span",V)}throw U6(`${G} returned \`null\`, will not send event.`)}let U=B.getSession()||I.getSession();if(J&&U)this._updateSessionFromEvent(U,W);if(Y){let K=W.sdkProcessingMetadata?.spanCountBeforeProcessing||0,V=W.spans?W.spans.length:0,z=K-V;if(z>0)this.recordDroppedEvent("before_send","span",z)}let w=W.transaction_info;if(Y&&w&&W.transaction!==A.transaction)W.transaction_info={...w,source:"custom"};return this.sendEvent(W,Q),W}).then(null,(W)=>{if(tn(W)||rn(W))throw W;throw this.captureException(W,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:W}),QX(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. -Reason: ${W}`)})}_process(A,Q){this._numProcessing++,this._promiseBuffer.add(A).then((B)=>{return this._numProcessing--,B},(B)=>{if(this._numProcessing--,B===kZ)this.recordDroppedEvent("queue_overflow",Q);return B})}_clearOutcomes(){let A=this._outcomes;return this._outcomes={},Object.entries(A).map(([Q,B])=>{let[I,C]=Q.split(":");return{reason:I,category:C,quantity:B}})}_flushOutcomes(){q&&$.log("Flushing outcomes...");let A=this._clearOutcomes();if(A.length===0){q&&$.log("No outcomes to send");return}if(!this._dsn){q&&$.log("No dsn provided, will not send outcomes");return}q&&$.log("Sending outcomes:",A);let Q=pn(A,this._options.tunnel&&_B(this._dsn));this.sendEnvelope(Q)}}function Ao(A){return A==="replay_event"?"replay":A||"error"}function ycA(A,Q){let B=`${Q} must return \`null\` or a valid event.`;if(NQ(A))return A.then((I)=>{if(!uC(I)&&I!==null)throw QX(B);return I},(I)=>{throw QX(`${Q} rejected with ${I}`)});else if(!uC(A)&&A!==null)throw QX(B);return A}function hcA(A,Q,B,I){let{beforeSend:C,beforeSendTransaction:E,beforeSendSpan:Y,ignoreSpans:J}=Q,F=B;if(X6(F)&&C)return C(F,I);if(Co(F)){if(Y||J){let G=nn(F);if(J?.length&&$Z(G,J))return null;if(Y){let D=Y(G);if(!D)UZ();else F=iE(B,on(D))}if(F.spans){let D=[],Z=F.spans;for(let U of Z){if(J?.length&&$Z(U,J)){wn(Z,U);continue}if(Y){let w=Y(U);if(!w)UZ(),D.push(U);else D.push(w)}else D.push(U)}let W=F.spans.length-D.length;if(W)A.recordDroppedEvent("before_send","span",W);F.spans=D}}if(E){if(F.spans){let G=F.spans.length;F.sdkProcessingMetadata={...B.sdkProcessingMetadata,spanCountBeforeProcessing:G}}return E(F,I)}}return F}function X6(A){return A.type===void 0}function Co(A){return A.type==="transaction"}function fcA(A){let Q=0;if(A.name)Q+=A.name.length*2;return Q+=8,Q+Eo(A.attributes)}function _cA(A){let Q=0;if(A.message)Q+=A.message.length*2;return Q+Eo(A.attributes)}function Eo(A){if(!A)return 0;let Q=0;return Object.values(A).forEach((B)=>{if(Array.isArray(B))Q+=B.length*Qo(B[0]);else if(BZ(B))Q+=Qo(B);else Q+=100}),Q}function Qo(A){if(typeof A==="string")return A.length*2;else if(typeof A==="number")return 8;else if(typeof A==="boolean")return 4;return 0}var BX={},Yo={};function yF(A,Q){BX[A]=BX[A]||[],BX[A].push(Q)}function hF(A,Q){if(!Yo[A]){Yo[A]=!0;try{Q()}catch(B){q&&$.error(`Error while instrumenting ${A}`,B)}}}function fF(A,Q){let B=A&&BX[A];if(!B)return;for(let I of B)try{I(Q)}catch(C){q&&$.error(`Error while triggering instrumentation handler. +`),typeof J==="string"||J instanceof Uint8Array)C(J);else{let F;try{F=JSON.stringify(J)}catch{F=JSON.stringify(hI(J))}C(F)}}return typeof I==="string"?I:e4A(I)}function e4A(A){let Q=A.reduce((C,E)=>C+E.length,0),B=new Uint8Array(Q),I=0;for(let C of A)B.set(C,I),I+=C.length;return B}function o5(A){return[{type:"span"},A]}function n5(A){let Q=typeof A.data==="string"?p5(A.data):A.data;return[{type:"attachment",length:Q.length,filename:A.filename,content_type:A.contentType,attachment_type:A.attachmentType},Q]}var pg={sessions:"session",event:"error",client_report:"internal",user_report:"default",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",raw_security:"security",log:"log_item",trace_metric:"metric"};function A5A(A){return A in pg}function F9(A){return A5A(A)?pg[A]:A}function vF(A){if(!A?.sdk)return;let{name:Q,version:B}=A.sdk;return{name:Q,version:B}}function s5(A,Q,B,I){let C=A.sdkProcessingMetadata?.dynamicSamplingContext;return{event_id:A.event_id,sent_at:new Date(VQ()).toISOString(),...Q&&{sdk:Q},...!!B&&I&&{dsn:GB(I)},...C&&{trace:C}}}function Q5A(A,Q){if(!Q)return A;let B=A.sdk||{};return A.sdk={...B,name:B.name||Q.name,version:B.version||Q.version,integrations:[...A.sdk?.integrations||[],...Q.integrations||[]],packages:[...A.sdk?.packages||[],...Q.packages||[]],settings:A.sdk?.settings||Q.settings?{...A.sdk?.settings,...Q.settings}:void 0},A}function ig(A,Q,B,I){let C=vF(B),E={sent_at:new Date(VQ()).toISOString(),...C&&{sdk:C},...!!I&&Q&&{dsn:GB(Q)}},Y="aggregates"in A?[{type:"sessions"},A]:[{type:"session"},A.toJSON()];return vQ(E,[Y])}function og(A,Q,B,I){let C=vF(B),E=A.type&&A.type!=="replay_event"?A.type:"event";Q5A(A,B?.sdk);let Y=s5(A,C,I,Q);return delete A.sdkProcessingMetadata,vQ(Y,[[{type:E},A]])}function ng(A,Q){function B(W){return!!W.trace_id&&!!W.public_key}let I=GQ(A[0]),C=Q?.getDsn(),E=Q?.getOptions().tunnel,Y={sent_at:new Date(VQ()).toISOString(),...B(I)&&{trace:I},...!!E&&C&&{dsn:GB(C)}},{beforeSendSpan:J,ignoreSpans:F}=Q?.getOptions()||{},G=F?.length?A.filter((W)=>{let w=r(W);return!bI({description:w.description,op:w.op,attributes:w.data},F)}):A,D=A.length-G.length;if(D)Q?.recordDroppedEvent("before_send","span",D);let Z=J?(W)=>{let w=r(W),K=!E0(J)?J(w):w;if(!K)return NY(),w;return K}:r,U=[];for(let W of G){let w=Z(W);if(w)U.push(o5(w))}return vQ(Y,U)}function jY(A){if(!A||A.length===0)return;let Q={};return A.forEach((B)=>{let I=B.attributes||{},C=I[L5],E=I[N5];if(typeof C==="string"&&typeof E==="number")Q[B.name]={value:E,unit:C}}),Q}var sg=1000;class KZ{constructor(A={}){if(this._traceId=A.traceId||TQ(),this._spanId=A.spanId||tQ(),this._startTime=A.startTimestamp||RB(),this._links=A.links,this._attributes={},this.setAttributes({[O]:"manual",[l]:A.op,...A.attributes}),this._name=A.name,A.parentSpanId)this._parentSpanId=A.parentSpanId;if("sampled"in A)this._sampled=A.sampled;if(A.endTimestamp)this._endTime=A.endTimestamp;if(this._events=[],this._isStandaloneSpan=A.isStandalone,this._endTime)this._onSpanEnded()}addLink(A){if(this._links)this._links.push(A);else this._links=[A];return this}addLinks(A){if(this._links)this._links.push(...A);else this._links=A;return this}recordException(A,Q){}spanContext(){let{_spanId:A,_traceId:Q,_sampled:B}=this;return{spanId:A,traceId:Q,traceFlags:B?GZ:I9}}setAttribute(A,Q){if(Q===void 0)delete this._attributes[A];else this._attributes[A]=Q;return this}setAttributes(A){return Object.keys(A).forEach((Q)=>this.setAttribute(Q,A[Q])),this}updateStartTime(A){this._startTime=AB(A)}setStatus(A){return this._status=A,this}updateName(A){if(this._name=A,!C5(this))this.setAttribute(hA,"custom");return this}end(A){if(this._endTime)return;this._endTime=AB(A),WZ(this),this._onSpanEnded()}getSpanJSON(){return{data:this._attributes,description:this._name,op:this._attributes[l],parent_span_id:this._parentSpanId,span_id:this._spanId,start_timestamp:this._startTime,status:MY(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[O],profile_id:this._attributes[TF],exclusive_time:this._attributes[_F],measurements:jY(this._events),is_segment:this._isStandaloneSpan&&sA(this)===this||void 0,segment_id:this._isStandaloneSpan?sA(this).spanContext().spanId:void 0,links:HY(this._links)}}getStreamedSpanJSON(){return{name:this._name??"",span_id:this._spanId,trace_id:this._traceId,parent_span_id:this._parentSpanId,start_timestamp:this._startTime,end_timestamp:this._endTime??this._startTime,is_segment:this._isStandaloneSpan||this===sA(this),status:Y9(this._status),attributes:c5(this._attributes,this._status),links:d5(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(A,Q,B){q&&H.log("[Tracing] Adding an event to span:",A);let I=ag(Q)?Q:B||RB(),C=ag(Q)?{}:Q||{},E={name:A,time:AB(I),attributes:C};return this._events.push(E),this}isStandaloneSpan(){return!!this._isStandaloneSpan}_onSpanEnded(){let A=f();if(A){if(A.emit("spanEnd",this),!this._isStandaloneSpan)A.emit("afterSpanEnd",this)}if(!(this._isStandaloneSpan||this===sA(this)))return;if(this._isStandaloneSpan){if(this._sampled)I5A(ng([this],A));else if(q&&H.log("[Tracing] Discarding standalone span because its trace was not chosen to be sampled."),A)A.recordDroppedEvent("sample_rate","span");return}else if(A&&qQ(A)){A.emit("afterSegmentSpanEnd",this);return}let B=this._convertSpanToTransaction();if(B)(jB(this).scope||YA()).captureEvent(B)}_convertSpanToTransaction(){if(!rg(r(this)))return;if(!this._name)q&&H.warn("Transaction has no name, falling back to ``."),this._name="";let{scope:A,isolationScope:Q}=jB(this),B=A?.getScopeData().sdkProcessingMetadata?.normalizedRequest;if(this._sampled!==!0)return;let C=ZZ(this).filter((D)=>D!==this&&!B5A(D)).map((D)=>r(D)).filter(rg),E=this._attributes[hA];delete this._attributes[WI];let Y=!1;C.forEach((D)=>{if(delete D.data[WI],D.op?.startsWith("gen_ai."))Y=!0});let J={contexts:{trace:vg(this)},spans:C.length>sg?C.sort((D,Z)=>D.start_timestamp-Z.start_timestamp).slice(0,sg):C,start_timestamp:this._startTime,timestamp:this._endTime,transaction:this._name,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:A,capturedSpanIsolationScope:Q,dynamicSamplingContext:GQ(this),hasGenAiSpans:Y},request:B,...E&&{transaction_info:{source:E}}},F=jY(this._events);if(F&&Object.keys(F).length)q&&H.log("[Measurements] Adding measurements to transaction event",JSON.stringify(F,void 0,2)),J.measurements=F;return J}}function ag(A){return A&&typeof A==="number"||A instanceof Date||Array.isArray(A)}function rg(A){return!!A.start_timestamp&&!!A.timestamp&&!!A.span_id&&!!A.trace_id}function B5A(A){return A instanceof KZ&&A.isStandaloneSpan()}function I5A(A){let Q=f();if(!Q)return;let B=A[1];if(!B||B.length===0){Q.recordDroppedEvent("before_send","span");return}Q.sendEnvelope(A)}var bF="__SENTRY_SUPPRESS_TRACING__";function vA(A,Q){let B=qY();if(B.startSpan)return B.startSpan(A,Q);let I=t5(A),{forceTransaction:C,parentSpan:E,scope:Y}=A,J=Y?.clone();return lA(J,()=>{return eg(E)(()=>{let G=YA(),D=e5(G,E),Z=f(),W=A.onlyIfParent&&!D?a5(G,Z):r5({parentSpan:D,spanArguments:I,forceTransaction:C,scope:G});if(!AT(W)||!D)A0(G,W);return vI(()=>Q(W),()=>{let{status:w}=r(W);if(W.isRecording()&&(!w||w==="ok"))W.setStatus({code:k,message:"internal_error"})},()=>{W.end()})})})}function TA(A,Q){let B=qY();if(B.startSpanManual)return B.startSpanManual(A,Q);let I=t5(A),{forceTransaction:C,parentSpan:E,scope:Y}=A,J=Y?.clone();return lA(J,()=>{return eg(E)(()=>{let G=YA(),D=e5(G,E),U=A.onlyIfParent&&!D?a5(G,f()):r5({parentSpan:D,spanArguments:I,forceTransaction:C,scope:G});if(!AT(U)||!D)A0(G,U);return vI(()=>Q(U,()=>U.end()),()=>{let{status:W}=r(U);if(U.isRecording()&&(!W||W==="ok"))U.setStatus({code:k,message:"internal_error"})})})})}function s(A){let Q=qY();if(Q.startInactiveSpan)return Q.startInactiveSpan(A);let B=t5(A),{forceTransaction:I,parentSpan:C}=A;return(A.scope?(Y)=>lA(A.scope,Y):C!==void 0?(Y)=>EA(C,Y):(Y)=>Y())(()=>{let Y=YA(),J=e5(Y,C),F=f();if(A.onlyIfParent&&!J)return a5(Y,F);return r5({parentSpan:J,spanArguments:B,forceTransaction:I,scope:Y})})}var EE=(A,Q)=>{let B=CQ(),I=RQ(B);if(I.continueTrace)return I.continueTrace(A,Q);let{sentryTrace:C,baggage:E}=A,Y=f(),J=xI(E);if(Y&&!JZ(Y,J?.org_id))return mF(Q);return lA((F)=>{let G=CE(C,E);return F.setPropagationContext(G),A0(F,void 0),Q()})};function EA(A,Q){let B=qY();if(B.withActiveSpan)return B.withActiveSpan(A,Q);return lA((I)=>{return A0(I,A||void 0),Q(I)})}function RY(A){let Q=qY();if(Q.suppressTracing)return Q.suppressTracing(A);return lA((B)=>{B.setSDKProcessingMetadata({[bF]:!0});let I=A();return B.setSDKProcessingMetadata({[bF]:void 0}),I})}function zC(A=YA()){let Q=qY();if(Q.isTracingSuppressed)return Q.isTracingSuppressed(A);return A.getScopeData().sdkProcessingMetadata[bF]===!0}function mF(A){let Q=qY();if(Q.startNewTrace)return Q.startNewTrace(A);return lA((B)=>{return B.setPropagationContext({traceId:TQ(),sampleRand:HQ()}),q&&H.log(`Starting a new trace with id ${B.getPropagationContext().traceId}`),EA(null,A)})}function a5(A,Q){Q?.recordDroppedEvent("no_parent_span","span");let B=new xF({traceId:A.getPropagationContext().traceId});return eC(B,A,CA()),B}function r5({parentSpan:A,spanArguments:Q,forceTransaction:B,scope:I}){let C=CA();if(!xA()){let J={...C.getPropagationContext(),...I.getPropagationContext()},F=A?A.spanContext().traceId:J.traceId,G=new xF({traceId:F});if(A&&!B)LY(A,G);return eC(G,I,C),G}let E=f();if(E5A(E,Q)){if(!zC(I))E?.recordDroppedEvent("ignored","span");let J=new xF({dropReason:"ignored",traceId:A?.spanContext().traceId??I.getPropagationContext().traceId});return eC(J,I,C),J}let Y;if(A&&!B)Y=C5A(A,I,Q,C),LY(A,Y);else if(A){let J=GQ(A),{traceId:F,spanId:G}=A.spanContext(),D=iB(A);Y=tg({traceId:F,parentSpanId:G,...Q},I,C,D),u5(Y,J)}else{let{traceId:J,dsc:F,parentSpanId:G,sampled:D}={...C.getPropagationContext(),...I.getPropagationContext()};if(Y=tg({traceId:J,parentSpanId:G,...Q},I,C,D),F)u5(Y,F)}return UZ(Y),Y}function t5(A){let B={isStandalone:(A.experimental||{}).standalone,...A};if(A.startTime){let I={...B};return I.startTimestamp=AB(A.startTime),delete I.startTime,I}return B}function qY(){let A=CQ();return RQ(A)}function tg(A,Q,B,I){let C=f(),E=C?.getOptions()||{},{name:Y=""}=A,J={spanAttributes:{...A.attributes},spanName:Y,parentSampled:I};C?.emit("beforeSampling",J,{decision:!1});let F=J.parentSampled??I,G=J.spanAttributes,D=Q.getPropagationContext(),Z=zC(Q),[U,W,w]=Z?[!1]:wZ(E,{name:Y,parentSampled:F,attributes:G,normalizedRequest:B.getScopeData().sdkProcessingMetadata.normalizedRequest,parentSampleRate:pB(D.dsc?.sample_rate)},D.sampleRand),K=new KZ({...A,attributes:{[hA]:"custom",[UI]:W!==void 0&&w?W:void 0,...G},sampled:U});if(!U&&C&&!Z)q&&H.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),C.recordDroppedEvent("sample_rate",qQ(C)?"span":"transaction");if(eC(K,Q,B),C)C.emit("spanStart",K);return K}function C5A(A,Q,B,I){let{spanId:C,traceId:E}=A.spanContext(),Y=zC(Q),J=Y?!1:iB(A),F=J?new KZ({...B,parentSpanId:C,traceId:E,sampled:J}):new xF({traceId:E});LY(A,F),eC(F,Q,I);let G=f();if(!G)return F;if(qQ(G)&&C0(F)){if(C0(A)&&A.dropReason)F.dropReason=A.dropReason,G.recordDroppedEvent(A.dropReason,"span");else if(!Y)F.dropReason="sample_rate",G.recordDroppedEvent("sample_rate","span")}if(G.emit("spanStart",F),B.endTimestamp)G.emit("spanEnd",F),G.emit("afterSpanEnd",F);return F}function e5(A,Q){if(Q)return Q;if(Q===null)return;let B=BE(A);if(!B)return;let I=f();if((I?I.getOptions():{}).parentSpanIsAlwaysRootSpan)return sA(B);return B}function eg(A){return A!==void 0?(Q)=>{return EA(A,Q)}:(Q)=>Q()}function E5A(A,Q){let B=A?.getOptions().ignoreSpans;if(!A||!qQ(A)||!B?.length)return!1;return bI({description:Q.name||"",op:Q.attributes?.[l]||Q.op,attributes:Q.attributes},B)}function AT(A){return C0(A)&&A.dropReason==="ignored"}var Y5A=["addListener","on","once","prependListener","prependOnceListener","addEventListener"],J5A=["removeListener","off","removeEventListener"],QT=Symbol("SentryScopeBoundListeners"),dF;function F5A(A){return dF!==void 0&&(A===dF||A.listener===dF)}function zZ(A,Q=YA()){let B=A;if(G9(B))return A;AV(B);for(let I of Y5A){if(typeof B[I]!=="function")continue;B[I]=D5A(B,B[I],Q)}for(let I of J5A){if(typeof B[I]!=="function")continue;B[I]=Z5A(B,B[I])}if(typeof B.removeAllListeners==="function")B.removeAllListeners=U5A(B,B.removeAllListeners);return A}function G5A(A,Q){return function(...B){return lA(Q,()=>A.apply(this,B))}}function BT(A){return typeof A==="function"}function D5A(A,Q,B){return function(...I){let C=I[0],E=I[1],Y=I.slice(2);if(!BT(E)||F5A(E))return Q.apply(this,I);let J=G9(A)||AV(A),F=J.get(C);if(!F)F=new WeakMap,J.set(C,F);let G=F.get(E);if(!G)G=G5A(E,B),F.set(E,G);let D=dF;dF=G;try{return Q.call(this,C,G,...Y)}finally{dF=D}}}function Z5A(A,Q){return function(...B){let I=B[0],C=B[1],E=B.slice(2),Y=BT(C)?G9(A)?.get(I)?.get(C):void 0;if(!Y)return Q.apply(this,B);return Q.call(this,I,Y,...E)}}function U5A(A,Q){return function(...B){let I=G9(A);if(I)if(B.length===0)AV(A);else{let C=B[0];I.delete(C)}return Q.apply(this,B)}}function AV(A){let Q=new Map;return A[QT]=Q,Q}function G9(A){return A[QT]}function CT(A,Q){let{fingerprint:B,span:I,breadcrumbs:C,sdkProcessingMetadata:E}=Q;if(W5A(A,Q),I)V5A(A,I);K5A(A,B),w5A(A,C),X5A(A,E)}function IT(A,Q){let{extra:B,tags:I,attributes:C,user:E,contexts:Y,level:J,sdkProcessingMetadata:F,breadcrumbs:G,fingerprint:D,eventProcessors:Z,attachments:U,propagationContext:W,transactionName:w,span:K}=Q;if($Z(A,"extra",B),$Z(A,"tags",I),$Z(A,"attributes",C),$Z(A,"user",E),$Z(A,"contexts",Y),A.sdkProcessingMetadata=eE(A.sdkProcessingMetadata,F,2),J)A.level=J;if(w)A.transactionName=w;if(K)A.span=K;if(G.length)A.breadcrumbs=[...A.breadcrumbs,...G];if(D.length)A.fingerprint=[...A.fingerprint,...D];if(Z.length)A.eventProcessors=[...A.eventProcessors,...Z];if(U.length)A.attachments=[...A.attachments,...U];A.propagationContext={...A.propagationContext,...W}}function $Z(A,Q,B){A[Q]=eE(A[Q],B,1)}function Y0(A,Q){let B=IZ().getScopeData();return A&&IT(B,A.getScopeData()),Q&&IT(B,Q.getScopeData()),B}function W5A(A,Q){let{extra:B,tags:I,user:C,contexts:E,level:Y,transactionName:J}=Q;if(Object.keys(B).length)A.extra={...B,...A.extra};if(Object.keys(I).length)A.tags={...I,...A.tags};if(Object.keys(C).length)A.user={...C,...A.user};if(Object.keys(E).length)A.contexts={...E,...A.contexts};if(Y)A.level=Y;if(J&&A.type!=="transaction")A.transaction=J}function w5A(A,Q){let B=[...A.breadcrumbs||[],...Q];A.breadcrumbs=B.length?B:void 0}function X5A(A,Q){A.sdkProcessingMetadata={...A.sdkProcessingMetadata,...Q}}function V5A(A,Q){A.contexts={trace:KC(Q),...A.contexts},A.sdkProcessingMetadata={dynamicSamplingContext:GQ(Q),...A.sdkProcessingMetadata};let B=sA(Q),I=r(B).description;if(I&&!A.transaction&&A.type==="transaction")A.transaction=I}function K5A(A,Q){if(A.fingerprint=A.fingerprint?Array.isArray(A.fingerprint)?A.fingerprint:[A.fingerprint]:[],Q)A.fingerprint=A.fingerprint.concat(Q);if(!A.fingerprint.length)delete A.fingerprint}function ET(A){let Q={},{response:B,profile:I,cloud_resource:C,culture:E,state:Y}=A;if(B){if(B.status_code!=null)Q["http.response.status_code"]=B.status_code;if(B.body_size!=null)Q["http.response.body.size"]=B.body_size}if(I){if(I.profile_id)Q["sentry.profile_id"]=I.profile_id;if(I.profiler_id)Q["sentry.profiler_id"]=I.profiler_id}if(C){for(let[G,D]of Object.entries(C))if(D!=null)Q[G]=D}if(E){if(E.locale)Q["culture.locale"]=E.locale;if(E.timezone)Q["culture.timezone"]=E.timezone}if(Y?.state&&typeof Y.state.type==="string")Q["state.type"]=Y.state.type;let J=A.angular;if(J){let G=J.version;if(typeof G==="string"||typeof G==="number")Q["angular.version"]=G}let F=A.react;if(F){let G=F.version;if(typeof G==="string"||typeof G==="number")Q["react.version"]=G}return Q}function QV(A,Q){let B=C9(A),I=hF(A),C=C9(I),{isolationScope:E,scope:Y}=jB(A),J=Y0(E,Y);H5A(B,C,Q,J);let F=A.kind;if(Q.emit("preprocessSpan",B,{spanKind:F}),B.is_segment)z5A(B,J),$5A(B,Q),Q.emit("processSegmentSpan",B);Q.emit("processSpan",B);let{beforeSendSpan:G}=Q.getOptions(),D=G&&E0(G)?M5A(B,G):B,Z=D.attributes?.[hA];if(Z)bQ(D,{"sentry.span.source":Z});return{...E9(D),_segmentSpan:I}}function z5A(A,Q){let B=ET(Q.contexts);bQ(A,B)}function bQ(A,Q){let B=A.attributes??(A.attributes={});Object.entries(Q).forEach(([I,C])=>{if(C!=null&&!(I in B))B[I]=C})}function $5A(A,Q){let B=Q.getIntegrationNames();if(!B.length)return;bQ(A,{[g5]:B})}function H5A(A,Q,B,I){let C=B.getSdkMetadata(),{release:E,environment:Y}=B.getOptions();bQ(A,{[j5]:E,[R5]:Y||I0,[q5]:Q.name,[P5]:Q.span_id,[O5]:C?.sdk?.name,[k5]:C?.sdk?.version,[T5]:I.user?.id,[_5]:I.user?.email,[CZ]:I.user?.ip_address,[y5]:I.user?.username,...I.attributes})}function M5A(A,Q){let B=Q(A);if(!B)return NY(),A;return B}var BV=0,YT=1,JT=2;function YE(A){return new HZ((Q)=>{Q(A)})}function cF(A){return new HZ((Q,B)=>{B(A)})}class HZ{constructor(A){this._state=BV,this._handlers=[],this._runExecutor(A)}then(A,Q){return new HZ((B,I)=>{this._handlers.push([!1,(C)=>{if(!A)B(C);else try{B(A(C))}catch(E){I(E)}},(C)=>{if(!Q)I(C);else try{B(Q(C))}catch(E){I(E)}}]),this._executeHandlers()})}catch(A){return this.then((Q)=>Q,A)}finally(A){return new HZ((Q,B)=>{let I,C;return this.then((E)=>{if(C=!1,I=E,A)A()},(E)=>{if(C=!0,I=E,A)A()}).then(()=>{if(C){B(I);return}Q(I)})})}_executeHandlers(){if(this._state===BV)return;let A=this._handlers.slice();this._handlers=[],A.forEach((Q)=>{if(Q[0])return;if(this._state===YT)Q[1](this._value);if(this._state===JT)Q[2](this._value);Q[0]=!0})}_runExecutor(A){let Q=(C,E)=>{if(this._state!==BV)return;if(xQ(E)){E.then(B,I);return}this._state=C,this._value=E,this._executeHandlers()},B=(C)=>{Q(YT,C)},I=(C)=>{Q(JT,C)};try{A(B,I)}catch(C){I(C)}}}function FT(A,Q,B,I=0){try{let C=IV(Q,B,A,I);return xQ(C)?C:YE(C)}catch(C){return cF(C)}}function IV(A,Q,B,I){let C=B[I];if(!A||!C)return A;let E=C({...A},Q);if(q&&E===null&&H.log(`Event processor "${C.id||"?"}" dropped event`),xQ(E))return E.then((Y)=>IV(Y,Q,B,I+1));return IV(E,Q,B,I+1)}var PY,GT,DT,J0;function ZT(A){let Q=FA._sentryDebugIds,B=FA._debugIds;if(!Q&&!B)return{};let I=Q?Object.keys(Q):[],C=B?Object.keys(B):[];if(J0&&I.length===GT&&C.length===DT)return J0;if(GT=I.length,DT=C.length,J0={},!PY)PY={};let E=(Y,J)=>{for(let F of Y){let G=J[F],D=PY?.[F];if(D&&J0&&G){if(J0[D[0]]=G,PY)PY[F]=[D[0],G]}else if(G){let Z=A(F);for(let U=Z.length-1;U>=0;U--){let w=Z[U]?.filename;if(w&&J0&&PY){J0[w]=G,PY[F]=[w,G];break}}}}};if(Q)E(I,Q);if(B)E(C,B);return J0}function UT(A,Q,B,I,C,E){let{normalizeDepth:Y=3,normalizeMaxBreadth:J=1000}=A,F={...Q,event_id:Q.event_id||B.event_id||jQ(),timestamp:Q.timestamp||VC()},G=B.integrations||A.integrations.map((V)=>V.name);if(L5A(F,A),R5A(F,G),C)C.emit("applyFrameMetadata",Q);if(Q.type===void 0)N5A(F,A.stackParser);let D=P5A(I,B.captureContext);if(B.mechanism)PF(F,B.mechanism);let Z=C?C.getEventProcessors():[],U=Y0(E,D),W=[...B.attachments||[],...U.attachments];if(W.length)B.attachments=W;CT(F,U);let w=[...Z,...U.eventProcessors];return(B.data&&B.data.__sentry__===!0?YE(F):FT(w,F,B)).then((V)=>{if(V)j5A(V);if(typeof Y==="number"&&Y>0)return q5A(V,Y,J);return V})}function L5A(A,Q){let{environment:B,release:I,dist:C,maxValueLength:E}=Q;if(A.environment=A.environment||B||I0,!A.release&&I)A.release=I;if(!A.dist&&C)A.dist=C;let Y=A.request;if(Y?.url&&E)Y.url=rE(Y.url,E);if(E)A.exception?.values?.forEach((J)=>{if(J.value)J.value=rE(J.value,E)})}function N5A(A,Q){let B=ZT(Q);A.exception?.values?.forEach((I)=>{I.stacktrace?.frames?.forEach((C)=>{if(C.filename)C.debug_id=B[C.filename]})})}function j5A(A){let Q={};if(A.exception?.values?.forEach((I)=>{I.stacktrace?.frames?.forEach((C)=>{if(C.debug_id){if(C.abs_path)Q[C.abs_path]=C.debug_id;else if(C.filename)Q[C.filename]=C.debug_id;delete C.debug_id}})}),Object.keys(Q).length===0)return;A.debug_meta=A.debug_meta||{},A.debug_meta.images=A.debug_meta.images||[];let B=A.debug_meta.images;Object.entries(Q).forEach(([I,C])=>{B.push({type:"sourcemap",code_file:I,debug_id:C})})}function R5A(A,Q){if(Q.length>0)A.sdk=A.sdk||{},A.sdk.integrations=[...A.sdk.integrations||[],...Q]}function q5A(A,Q,B){if(!A)return null;let I={...A,...A.breadcrumbs&&{breadcrumbs:A.breadcrumbs.map((C)=>({...C,...C.data&&{data:hI(C.data,Q,B)}}))},...A.user&&{user:hI(A.user,Q,B)},...A.contexts&&{contexts:hI(A.contexts,Q,B)},...A.extra&&{extra:hI(A.extra,Q,B)}};if(A.contexts?.trace&&I.contexts){if(I.contexts.trace=A.contexts.trace,A.contexts.trace.data)I.contexts.trace.data=hI(A.contexts.trace.data,Q,B)}if(A.spans)I.spans=A.spans.map((C)=>{return{...C,...C.data&&{data:hI(C.data,Q,B)}}});if(A.contexts?.flags&&I.contexts)I.contexts.flags=hI(A.contexts.flags,3,B);return I}function P5A(A,Q){if(!Q)return A;let B=A?A.clone():new eQ;return B.update(Q),B}function WT(A){if(!A)return;if(O5A(A))return{captureContext:A};if(g5A(A))return{captureContext:A};return A}function O5A(A){return A instanceof eQ||typeof A==="function"}var k5A=["user","level","extra","contexts","tags","fingerprint","propagationContext"];function g5A(A){return Object.keys(A).some((Q)=>k5A.includes(Q))}function o(A,Q){return YA().captureException(A,WT(Q))}function MZ(A,Q){let B=typeof Q==="string"?Q:void 0,I=typeof Q!=="string"?{captureContext:Q}:void 0;return YA().captureMessage(A,B,I)}function LZ(A,Q){return YA().captureEvent(A,Q)}function NZ(A){CA().setTags(A)}async function OY(A){let Q=f();if(Q)return Q.flush(A);return q&&H.warn("Cannot flush events. No client defined."),Promise.resolve(!1)}function jZ(){let A=f();return A?.getOptions().enabled!==!1&&!!A?.getTransport()}function RZ(A){let Q=CA(),{user:B}=Y0(Q,YA()),{userAgent:I}=FA.navigator||{},C=$g({user:B,...I&&{userAgent:I},...A}),E=Q.getSession();if(E?.status==="ok")QE(E,{status:"exited"});return uF(),Q.setSession(C),C}function uF(){let A=CA(),B=YA().getSession()||A.getSession();if(B)Hg(B);T5A(),A.setSession()}function T5A(){let A=CA(),Q=f(),B=A.getSession();if(B&&Q)Q.captureSession(B)}function $C(A){if(typeof A==="object"&&typeof A.unref==="function")A.unref();return A}function lF(A,Q=1){if(RQ(CQ()).getTracingChannelBinding?.()){A();return}if(!Q)return;$C(setTimeout(()=>{lF(A,Q-1)},1))}var qZ=Symbol.for("SentryBufferFullError");function pF(A=100){let Q=new Set;function B(){return Q.sizeI(J),()=>I(J)),J}function E(Y){if(!Q.size)return YE(!0);let J=Promise.allSettled(Array.from(Q)).then(()=>!0);if(!Y)return J;let F=[J,new Promise((G)=>$C(setTimeout(()=>G(!1),Y)))];return Promise.race(F)}return{get $(){return Array.from(Q)},add:C,drain:E}}var _5A=60000;function y5A(A,Q=VQ()){let B=parseInt(`${A}`,10);if(!isNaN(B))return B*1000;let I=Date.parse(`${A}`);if(!isNaN(I))return I-Q;return _5A}function S5A(A,Q){return A[Q]||A.all||0}function wT(A,Q,B=VQ()){return S5A(A,Q)>B}function XT(A,{statusCode:Q,headers:B},I=VQ()){let C={...A},E=B?.["x-sentry-rate-limits"],Y=B?.["retry-after"];if(E)for(let J of E.trim().split(",")){let[F,G,,,D]=J.split(":",5),Z=parseInt(F,10),U=(!isNaN(Z)?Z:60)*1000;if(!G)C.all=I+U;else for(let W of G.split(";"))if(W==="metric_bucket"){if(!D||D.split(";").includes("custom"))C[W]=I+U}else C[W]=I+U}else if(Y)C.all=I+y5A(Y,I);else if(Q===429)C.all=I+60000;return C}var PZ=64;function iF(A,Q,B=pF(A.bufferSize||PZ)){let I={},C=(Y)=>B.drain(Y);function E(Y){let J=[];if(XZ(Y,(Z,U)=>{let W=F9(U);if(wT(I,W))A.recordDroppedEvent("ratelimit_backoff",W);else J.push(Z)}),J.length===0)return Promise.resolve({});let F=vQ(Y[0],J),G=(Z)=>{if(i5(F,["client_report"])){q&&H.warn(`Dropping client report. Will not send outcomes (reason: ${Z}).`);return}XZ(F,(U,W)=>{A.recordDroppedEvent(Z,F9(W))})},D=()=>Q({body:VZ(F)}).then((Z)=>{if(Z.statusCode===413)return q&&H.error("Sentry responded with status code 413. Envelope was discarded due to exceeding size limits."),G("send_error"),Z;if(q&&Z.statusCode!==void 0&&(Z.statusCode<200||Z.statusCode>=300))H.warn(`Sentry responded with status code ${Z.statusCode} to sent event.`);return I=XT(I,Z),Z},(Z)=>{throw G("network_error"),q&&H.error("Encountered error running transport request:",Z),Z});return B.add(D).then((Z)=>Z,(Z)=>{if(Z===qZ)return q&&H.error("Skipped sending event because buffer is full."),G("queue_overflow"),Promise.resolve({});else throw Z})}return{send:E,flush:C}}var CV=[];function f5A(A){let Q={};return A.forEach((B)=>{let{name:I}=B,C=Q[I];if(C&&!C.isDefaultInstance&&B.isDefaultInstance)return;Q[I]=B}),Object.values(Q)}function EV(A){let Q=A.defaultIntegrations||[],B=A.integrations;Q.forEach((C)=>{C.isDefaultInstance=!0});let I;if(Array.isArray(B))I=[...Q,...B];else if(typeof B==="function"){let C=B(Q);I=Array.isArray(C)?C:[C]}else I=Q;return f5A(I)}function VT(A,Q){let B={};return Q.forEach((I)=>{if(I?.beforeSetup)I.beforeSetup(A)}),Q.forEach((I)=>{if(I)JV(A,I,B)}),B}function YV(A,Q){for(let B of Q)if(B?.afterAllSetup)B.afterAllSetup(A)}function JV(A,Q,B){if(B[Q.name]){q&&H.log(`Integration skipped because it was already installed: ${Q.name}`);return}if(B[Q.name]=Q,!CV.includes(Q.name)&&typeof Q.setupOnce==="function")Q.setupOnce(),CV.push(Q.name);if(Q.setup&&typeof Q.setup==="function")Q.setup(A);if(typeof Q.preprocessEvent==="function"){let I=Q.preprocessEvent.bind(Q);A.on("preprocessEvent",(C,E)=>I(C,E,A))}if(typeof Q.processEvent==="function"){let I=Q.processEvent.bind(Q),C=Object.assign((E,Y)=>I(E,Y,A),{id:Q.name});A.addEventProcessor(C)}["processSpan","processSegmentSpan"].forEach((I)=>{let C=Q[I];if(typeof C==="function")A.on(I,(E)=>C.call(Q,E,A))}),q&&H.log(`Integration installed: ${Q.name}`)}function g(A){return A}function OZ(A,Q){let B={...A,...Q};for(let I in Q){let C=A[I],E=Q[I];if(typeof C==="function"&&typeof E==="function"){let Y=new Proxy(C,{apply:(J,F,G)=>{return Reflect.apply(J,F,G),Reflect.apply(E,F,G)}});B[I]=Y}}return B}var FV=new Set;function GV(A){A.forEach((Q)=>{FV.add(Q),q&&H.log(`AI provider "${Q}" wrapping will be skipped`)})}function kY(A){return FV.has(A)}function DV(){FV.clear(),q&&H.log("Cleared AI provider skip registrations")}var h5A=new Set(["false","f","n","no","off","0"]),x5A=new Set(["true","t","y","yes","on","1"]);function gY(A,Q){let B=String(A).toLowerCase();if(h5A.has(B))return!1;if(x5A.has(B))return!0;return Q?.strict?null:Boolean(A)}var v5A="thismessage:/";function ZV(A){return"isRelative"in A}function TY(A,Q){let B=A.indexOf("://")<=0&&A.indexOf("//")!==0,I=Q??(B?v5A:void 0);try{if("canParse"in URL&&!URL.canParse(A,I))return;let C=new URL(A,I);if(B)return{isRelative:B,pathname:C.pathname,search:C.search,hash:C.hash};return C}catch{}return}function KT(A){if(ZV(A))return A.pathname;let Q=new URL(A);if(Q.search="",Q.hash="",["80","443"].includes(Q.port))Q.port="";if(Q.password)Q.password="%filtered%";if(Q.username)Q.username="%filtered%";return Q.toString()}function b5A(A,Q,B,I){let C=B?.method?.toUpperCase()??"GET",E=I?I:A?Q==="client"?KT(A):A.pathname:"/";return`${C} ${E}`}function UV(A,Q,B,I,C){let E={[O]:B,[hA]:"url"};if(C)E[Q==="server"?"http.route":"url.template"]=C,E[hA]="route";if(I?.method)E[x5]=I.method.toUpperCase();if(A){if(A.search)E["url.query"]=A.search;if(A.hash)E["url.fragment"]=A.hash;if(A.pathname){if(E["url.path"]=A.pathname,A.pathname==="/")E[hA]="route"}if(!ZV(A)){if(E[EZ]=A.href,A.port)E["url.port"]=A.port;if(A.protocol)E["url.scheme"]=A.protocol;if(A.hostname)E[Q==="server"?"server.address":"url.domain"]=A.hostname}}return[b5A(A,Q,I,C),E]}function F0(A){if(!A)return{};let Q=A.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!Q)return{};let B=Q[6]||"",I=Q[8]||"";return{host:Q[4],path:Q[5],protocol:Q[2],search:B,hash:I,relative:Q[5]+B+I}}function dI(A){return A.split(/[?#]/,1)[0]}function G0(A){let{protocol:Q,host:B,path:I}=A,C=B?.replace(/^.*@/,"[filtered]:[filtered]@").replace(/(:80)$/,"").replace(/(:443)$/,"")||"";return`${Q?`${Q}://`:""}${C}${I}`}function kZ(A,Q=!0){if(A.startsWith("data:")){let B=A.match(/^data:([^;,]+)/),I=B?B[1]:"text/plain",C=A.includes(";base64,"),E=A.indexOf(","),Y="";if(Q&&E!==-1){let J=A.slice(E+1);Y=J.length>10?`${J.slice(0,10)}... [truncated]`:J}return`data:${I}${C?",base64":""}${Y?`,${Y}`:""}`}return A}function _Y(A,Q,B=[Q],I="npm"){let C=(A._metadata=A._metadata||{}).sdk=A._metadata.sdk||{};if(!C.name)C.name=`sentry.javascript.${Q}`,C.packages=B.map((E)=>({name:`${I}:@sentry/${E}`,version:h})),C.version=h}function oB(A={}){let Q=A.client||f();if(!jZ()||!Q)return{};let B=CQ(),I=RQ(B);if(I.getTraceData)return I.getTraceData(A);let C=A.scope||YA(),E=A.span||VA(),Y=C0(E)&&!xA(Q.getOptions());if(!E&&$5())return{};let J=E&&!Y?DZ(E):m5A(C),F=E?GQ(E):mI(Q,C),G=$Y(F);if(!YZ.test(J))return H.warn("Invalid sentry-trace data. Cannot generate trace data"),{};let Z={"sentry-trace":J,baggage:G};if(A.propagateTraceparent)Z.traceparent=E&&!Y?bg(E):d5A(C);return Z}function m5A(A){let{traceId:Q,sampled:B,propagationSpanId:I}=A.getPropagationContext();return Q0(Q,I,B)}function d5A(A){let{traceId:Q,sampled:B,propagationSpanId:I}=A.getPropagationContext();return B0(Q,I,B)}var zT="[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:";function JE(A,Q,B){if(typeof A!=="string"||!Q)return!0;let I=B?.get(A);if(I!==void 0)return q&&!I&&H.log(zT,A),I;let C=ZI(A,Q);return B?.set(A,C),q&&!C&&H.log(zT,A),C}function WV(A,Q,B){let I,C,E,Y=B?.maxWait?Math.max(B.maxWait,Q):0,J=B?.setTimeoutImpl||setTimeout;function F(){return G(),I=A(),I}function G(){C!==void 0&&clearTimeout(C),E!==void 0&&clearTimeout(E),C=E=void 0}function D(){if(C!==void 0||E!==void 0)return F();return I}function Z(){if(C)clearTimeout(C);if(C=J(F,Q),Y&&E===void 0)E=J(F,Y);return I}return Z.cancel=G,Z.flush=D,Z}var yY="[Filtered]",gZ=["forwarded","-ip","remote-","via","-user"],wV=["auth","token","secret","session","password","passwd","pwd","key","jwt","bearer","sso","saml","csrf","xsrf","credentials","sid","identity","set-cookie","cookie"],$T=[".sid","sessid","remember","oidc","pkce","nonce","__secure-","__host-","awsalb","awselb","akamai","__stripe","cognito","firebase","supabase","sb-","mfa","2fa"];function D9(A){return A===!0?{userInfo:!0,cookies:!0,httpHeaders:{request:!0,response:!0},httpBodies:["incomingRequest","outgoingRequest","incomingResponse","outgoingResponse"],queryParams:!0,genAI:{inputs:!0,outputs:!0},stackFrameVariables:!0,frameContextLines:7}:{userInfo:!1,cookies:{deny:gZ},httpHeaders:{request:{deny:gZ},response:{deny:gZ}},httpBodies:[],queryParams:{deny:gZ},genAI:{inputs:!1,outputs:!1},stackFrameVariables:!0,frameContextLines:7}}function XV(A,Q){return Q.some((B)=>A.includes(B))}function VV(A,Q,B){if(Q===!1)return{};let I=B!=null?[...wV,...B]:wV,C={};if(Q===!0){for(let Y of Object.keys(A))C[Y]=XV(Y.toLowerCase(),I)?yY:A[Y];return C}if("deny"in Q){let Y=Q.deny.map((J)=>J.toLowerCase());for(let J of Object.keys(A)){let F=J.toLowerCase(),G=XV(F,I)||Y.some((D)=>F.includes(D));C[J]=G?yY:A[J]}return C}let E=Q.allow.map((Y)=>Y.toLowerCase());for(let Y of Object.keys(A)){let J=Y.toLowerCase();if(XV(J,I))C[Y]=yY;else{let F=E.some((G)=>J.includes(G));C[Y]=F?A[Y]:yY}}return C}var HT=1048576;function KV(A){if(A==="small")return 1000;if(A==="medium")return 1e4;return HT}function U9(A){let Q=Object.create(null);try{Object.entries(A).forEach(([B,I])=>{if(typeof I==="string")Q[B]=I;else if(typeof I==="number")Q[B]=String(I)})}catch{}return Q}function oF(A){let Q=A.headers||{},I=(typeof Q["x-forwarded-host"]==="string"?Q["x-forwarded-host"]:void 0)||(typeof Q.host==="string"?Q.host:void 0),E=(typeof Q["x-forwarded-proto"]==="string"?Q["x-forwarded-proto"]:void 0)||A.protocol||(A.socket?.encrypted?"https":"http"),Y=A.url||"",J=c5A({url:Y,host:I,protocol:E}),F=A.body||void 0,G=A.cookies;return{url:J,method:A.method,query_string:MT(Y),headers:U9(Q),cookies:G,data:F}}function c5A({url:A,protocol:Q,host:B}){if(A?.startsWith("http"))return A;if(A&&B)return`${Q}://${B}${A}`;return}function HC(A,Q=!1,B="request"){let I=typeof Q==="boolean"?D9(Q):Q,C=B==="request"?I.httpHeaders.request:I.httpHeaders.response,E=I.cookies,Y=`http.${B}.header.`,J={};try{let F={};for(let[G,D]of Object.entries(A)){if(D==null)continue;let Z=G.toLowerCase();if(Z==="cookie"||Z==="set-cookie"){if(E===!1)continue;if(typeof D==="string"&&D!==""){let W=u5A(D,Z==="set-cookie"),w=VV(W,E,$T);for(let[K,X]of Object.entries(w))J[`${Y}${Z9(Z)}.${Z9(K)}`]=X}else J[`${Y}${Z9(Z)}`]=yY}else{if(C===!1)continue;if(Array.isArray(D))F[Z]=D.map((W)=>W!=null?String(W):W).join(";");else if(typeof D==="string")F[Z]=D}}if(C!==!1){let G=VV(F,C);for(let[D,Z]of Object.entries(G))J[`${Y}${Z9(D)}`]=Z}}catch{}return J}function Z9(A){return A.replace(/-/g,"_")}function u5A(A,Q){let B=A.indexOf(";"),I=Q&&B!==-1?A.substring(0,B):A,C=Q?[I]:I.split("; "),E={};for(let Y of C){let J=Y.indexOf("="),F=(J!==-1?Y.substring(0,J):Y).toLowerCase(),G=J!==-1?Y.substring(J+1):"";E[F]=G}return E}function MT(A){if(!A)return;try{let Q=new URL(A,"http://s.io").search.slice(1);return Q.length?Q:void 0}catch{return}}var GA={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},l5A={[GA.INTERNAL]:"INTERNAL",[GA.SERVER]:"SERVER",[GA.CLIENT]:"CLIENT",[GA.PRODUCER]:"PRODUCER",[GA.CONSUMER]:"CONSUMER"};function zV(A){return l5A[A]}var p5A=100;function nB(A,Q){let B=f(),I=CA();if(!B)return;let{beforeBreadcrumb:C=null,maxBreadcrumbs:E=p5A}=B.getOptions();if(E<=0)return;let J={timestamp:VC(),...A},F=C?XQ(()=>C(J,Q)):J;if(F===null)return;if(B.emit)B.emit("beforeAddBreadcrumb",F,Q);I.addBreadcrumb(F,E)}var LT,i5A="FunctionToString",NT=new WeakMap,o5A=()=>{return{name:i5A,setupOnce(){LT=Function.prototype.toString;try{Function.prototype.toString=function(...A){let Q=tC(this),B=NT.has(f())&&Q!==void 0?Q:this;return LT.apply(B,A)}}catch{}},setup(A){NT.set(A,!0)}}},TZ=g(o5A);function W9(A){let Q=[];if(A.message)Q.push(A.message);try{let B=A.exception.values[A.exception.values.length-1];if(B?.value){if(Q.push(B.value),B.type)Q.push(`${B.type}: ${B.value}`)}}catch{}return Q}var n5A=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,/can't redefine non-configurable property "solana"/,/vv\(\)\.getRestrictions is not a function/,/Can't find variable: _AutofillCallbackHandler/,/Object Not Found Matching Id:\d+, MethodName:simulateEvent/,/^Java exception was raised during method invocation$/],s5A="EventFilters",X9=g((A={})=>{let Q;return{name:s5A,setup(B){let I=B.getOptions();Q=jT(A,I)},processEvent(B,I,C){if(!Q){let E=C.getOptions();Q=jT(A,E)}return a5A(B,Q)?null:B}}}),_Z=g((A={})=>{return{...X9(A),name:"InboundFilters"}});function jT(A={},Q={}){return{allowUrls:[...A.allowUrls||[],...Q.allowUrls||[]],denyUrls:[...A.denyUrls||[],...Q.denyUrls||[]],ignoreErrors:[...A.ignoreErrors||[],...Q.ignoreErrors||[],...A.disableErrorDefaults?[]:n5A],ignoreTransactions:[...A.ignoreTransactions||[],...Q.ignoreTransactions||[]]}}function a5A(A,Q){if(!A.type){if(r5A(A,Q.ignoreErrors))return q&&H.warn(`Event dropped due to being matched by \`ignoreErrors\` option. +Event: ${tE(A)}`),!0;if(BVA(A))return q&&H.warn(`Event dropped due to not having an error message, error type or stacktrace. +Event: ${tE(A)}`),!0;if(e5A(A,Q.denyUrls))return q&&H.warn(`Event dropped due to being matched by \`denyUrls\` option. +Event: ${tE(A)}. +Url: ${w9(A)}`),!0;if(!AVA(A,Q.allowUrls))return q&&H.warn(`Event dropped due to not being matched by \`allowUrls\` option. +Event: ${tE(A)}. +Url: ${w9(A)}`),!0}else if(A.type==="transaction"){if(t5A(A,Q.ignoreTransactions))return q&&H.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. +Event: ${tE(A)}`),!0}return!1}function r5A(A,Q){if(!Q?.length)return!1;return W9(A).some((B)=>ZI(B,Q))}function t5A(A,Q){if(!Q?.length)return!1;let B=A.transaction;return B?ZI(B,Q):!1}function e5A(A,Q){if(!Q?.length)return!1;let B=w9(A);return!B?!1:ZI(B,Q)}function AVA(A,Q){if(!Q?.length)return!0;let B=w9(A);return!B?!0:ZI(B,Q)}function QVA(A=[]){for(let Q=A.length-1;Q>=0;Q--){let B=A[Q];if(B&&B.filename!==""&&B.filename!=="[native code]")return B.filename||null}return null}function w9(A){try{let B=[...A.exception?.values??[]].reverse().find((I)=>I.mechanism?.parent_id===void 0&&I.stacktrace?.frames?.length)?.stacktrace?.frames;return B?QVA(B):null}catch{return q&&H.error(`Cannot extract url for event ${tE(A)}`),null}}function BVA(A){if(!A.exception?.values?.length)return!1;return!A.message&&!A.exception.values.some((Q)=>Q.stacktrace||Q.type&&Q.type!=="Error"||Q.value)}function PT(A,Q,B,I,C,E){if(!C.exception?.values||!E||!ZY(E.originalException,Error))return;let Y=C.exception.values.length>0?C.exception.values[C.exception.values.length-1]:void 0;if(Y)C.exception.values=$V(A,Q,I,E.originalException,B,C.exception.values,Y,0)}function $V(A,Q,B,I,C,E,Y,J){if(E.length>=B+1)return E;let F=[...E];if(ZY(I[C],Error)){RT(Y,J,I);let G=A(Q,I[C]),D=F.length;qT(G,C,D,J),F=$V(A,Q,B,I[C],C,[G,...F],G,D)}if(OT(I))I.errors.forEach((G,D)=>{if(ZY(G,Error)){RT(Y,J,I);let Z=A(Q,G),U=F.length;qT(Z,`errors[${D}]`,U,J),F=$V(A,Q,B,G,C,[Z,...F],Z,U)}});return F}function OT(A){return Array.isArray(A.errors)}function RT(A,Q,B){A.mechanism={handled:!0,type:"auto.core.linked_errors",...OT(B)&&{is_exception_group:!0},...A.mechanism,exception_id:Q}}function qT(A,Q,B,I){A.mechanism={handled:!0,...A.mechanism,type:"chained",source:Q,exception_id:B,parent_id:I}}function kT(A,Q){return A(Q.stack||"",1)}function IVA(A){return DI(A)&&"__sentry_fetch_url_host__"in A&&typeof A.__sentry_fetch_url_host__==="string"}function CVA(A){if(IVA(A))return`${A.message} (${A.__sentry_fetch_url_host__})`;return A.message}function HV(A,Q){let B={type:Q.name||Q.constructor.name,value:CVA(Q)},I=kT(A,Q);if(I.length)B.stacktrace={frames:I};return B}function EVA(A){for(let Q in A)if(Object.prototype.hasOwnProperty.call(A,Q)){let B=A[Q];if(B instanceof Error)return B}return}function YVA(A){if("name"in A&&typeof A.name==="string"){let I=`'${A.name}' captured as exception`;if("message"in A&&typeof A.message==="string")I+=` with message '${A.message}'`;return I}else if("message"in A&&typeof A.message==="string")return A.message;let Q=I5(A);if(A5(A))return`Event \`ErrorEvent\` captured as exception with message \`${A.message}\``;let B=JVA(A);return`${B&&B!=="Object"?`'${B}'`:"Object"} captured as exception with keys: ${Q}`}function JVA(A){try{let Q=Object.getPrototypeOf(A);return Q?Q.constructor.name:void 0}catch{}}function FVA(A,Q,B,I){if(DI(B))return[B,void 0];if(Q.synthetic=!0,aE(B)){let E=A?.getOptions().normalizeDepth,Y={["__serialized__"]:G5(B,E)},J=EVA(B);if(J)return[J,Y];let F=YVA(B),G=I?.syntheticException||Error(F);return G.message=F,[G,Y]}let C=I?.syntheticException||Error(B);return C.message=`${B}`,[C,void 0]}function gT(A,Q,B,I){let E=I?.data&&I.data.mechanism||{handled:!0,type:"generic"},[Y,J]=FVA(A,E,B,I),F={exception:{values:[HV(Q,Y)]}};if(J)F.extra=J;return X5(F,void 0,void 0),PF(F,E),{...F,event_id:I?.event_id}}function TT(A,Q,B="info",I,C){let E={event_id:I?.event_id,level:B};if(C&&I?.syntheticException){let Y=kT(A,I.syntheticException);if(Y.length)E.exception={values:[{value:Q,stacktrace:{frames:Y}}]},PF(E,{synthetic:!0})}if(jF(Q)){let{__sentry_template_string__:Y,__sentry_template_values__:J}=Q;return E.logentry={message:Y,params:J},E}return E.message=Q,E}var GVA="cause",DVA=5,ZVA="LinkedErrors",UVA=(A={})=>{let Q=A.limit||DVA,B=A.key||GVA;return{name:ZVA,preprocessEvent(I,C,E){let Y=E.getOptions();PT(HV,Y.stackParser,B,Q,I,C)}}},yZ=g(UVA);function _T(A){let Q={},B=0;while(B{let Y=Q[E.toLowerCase()],J=Array.isArray(Y)?Y.join(";"):Y;if(E==="Forwarded")return WVA(J);return J?.split(",").map((F)=>F.trim())}).reduce((E,Y)=>{if(!Y)return E;return E.concat(Y)},[]).find((E)=>E!==null&&wVA(E))||null}function WVA(A){if(!A)return null;for(let Q of A.split(";"))if(Q.startsWith("for="))return Q.slice(4);return null}function wVA(A){return/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/.test(A)}var XVA="RequestData",VVA=(A={})=>{function Q(B){let I=B.getDataCollectionOptions(),C={...I,...A.include?.cookies===!0&&I.cookies===!1&&{cookies:!0},...A.include?.headers===!0&&I.httpHeaders.request===!1&&{httpHeaders:{...I.httpHeaders,request:!0}}};return{dataCollection:C,include:{cookies:C.cookies!==!1,data:!0,headers:C.httpHeaders.request!==!1,ip:C.userInfo,query_string:C.queryParams!==!1,url:!0,...A.include}}}return{name:XVA,processEvent(B,I,C){let{sdkProcessingMetadata:E={}}=B,{normalizedRequest:Y,ipAddress:J}=E,{include:F}=Q(C);if(Y)KVA(B,Y,{ipAddress:J},F);return B},processSegmentSpan(B,I){let{sdkProcessingMetadata:C={}}=CA().getScopeData(),{normalizedRequest:E,ipAddress:Y}=C;if(!E)return;let{include:J,dataCollection:F}=Q(I);zVA(B,E,Y,J,F)}}},SZ=g(VVA);function KVA(A,Q,B,I){if(A.request={...A.request,...yT(Q,I)},I.ip){let C=Q.headers&&LV(Q.headers)||B.ipAddress;if(C)A.user={...A.user,ip_address:C}}}function zVA(A,Q,B,I,C){let E=yT(Q,I),Y={};if(E.url)Y["url.full"]=E.url;if(E.method)Y["http.request.method"]=E.method;if(E.query_string)Y["url.query"]=$VA(E.query_string);if(bQ(A,Y),E.cookies&&Object.keys(E.cookies).length>0){let J=Object.entries(E.cookies).map(([G,D])=>`${G}=${D}`).join("; "),F=HC({cookie:J},C,"request");bQ(A,F)}if(E.headers){let J=HC(E.headers,C,"request");bQ(A,J)}if(E.data!=null){let J=typeof E.data==="string"?E.data:JSON.stringify(E.data);if(J)bQ(A,{"http.request.body.data":J})}if(I.ip){let J=Q.headers&&LV(Q.headers)||B||void 0;if(J)bQ(A,{[CZ]:J})}}function yT(A,Q){let B={},I={...A.headers};if(Q.headers){if(B.headers=I,!Q.cookies)delete I.cookie;if(!Q.ip){let C=new Set(MV.map((E)=>E.toLowerCase()));for(let E of Object.keys(I))if(C.has(E.toLowerCase()))delete I[E]}}if(B.method=A.method,Q.url)B.url=A.url;if(Q.cookies){let C=A.cookies||(I?.cookie?_T(I.cookie):void 0);B.cookies=C||{}}if(Q.query_string)B.query_string=A.query_string;if(Q.data)B.data=A.data;return B}function $VA(A){if(typeof A==="string")return A||void 0;return(Array.isArray(A)?A:Object.entries(A)).map(([I,C])=>`${I}=${C}`).join("&")||void 0}var fZ={},ST={};function NV(A,Q){return fZ[A]=fZ[A]||[],fZ[A].push(Q),()=>{let B=fZ[A];if(B){let I=B.indexOf(Q);if(I!==-1)B.splice(I,1)}}}function hZ(A,Q){if(!ST[A]){ST[A]=!0;try{Q()}catch(B){q&&H.error(`Error while instrumenting ${A}`,B)}}}function nF(A,Q){let B=A&&fZ[A];if(!B)return;for(let I of B)try{I(Q)}catch(C){q&&H.error(`Error while triggering instrumentation handler. Type: ${A} -Name: ${YZ(I)} -Error:`,C)}}var K6=null;function Jo(A){yF("error",A),hF("error",vcA)}function vcA(){K6=o.onerror,o.onerror=function(A,Q,B,I,C){if(fF("error",{column:I,error:C,line:B,msg:A,url:Q}),K6)return K6.apply(this,arguments);return!1},o.onerror.__SENTRY_INSTRUMENTED__=!0}var V6=null;function Fo(A){yF("unhandledrejection",A),hF("unhandledrejection",xcA)}function xcA(){V6=o.onunhandledrejection,o.onunhandledrejection=function(A){if(fF("unhandledrejection",A),V6)return V6.apply(this,arguments);return!0},o.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}var Go=!1;function Do(){if(Go)return;function A(){let Q=vB(),B=Q&&bA(Q);if(B)q&&$.log("[Tracing] Root span: internal_error -> Global error occurred"),B.setStatus({code:BA,message:"internal_error"})}A.tag="sentry_tracingErrorCallback",Go=!0,Jo(A),Fo(A)}function Zo(A){let Q=A._metadata?.sdk,B=Q?.name&&Q?.version?`${Q?.name}/${Q?.version}`:void 0;A.transportOptions={...A.transportOptions,headers:{...B&&{"user-agent":B},...A.transportOptions?.headers}}}function Wo(A,Q){return A(Q.stack||"",1)}function bcA(A){return ZC(A)&&"__sentry_fetch_url_host__"in A&&typeof A.__sentry_fetch_url_host__==="string"}function mcA(A){if(bcA(A))return`${A.message} (${A.__sentry_fetch_url_host__})`;return A.message}function z6(A,Q){let B={type:Q.name||Q.constructor.name,value:mcA(Q)},I=Wo(A,Q);if(I.length)B.stacktrace={frames:I};return B}function dcA(A){for(let Q in A)if(Object.prototype.hasOwnProperty.call(A,Q)){let B=A[Q];if(B instanceof Error)return B}return}function ccA(A){if("name"in A&&typeof A.name==="string"){let I=`'${A.name}' captured as exception`;if("message"in A&&typeof A.message==="string")I+=` with message '${A.message}'`;return I}else if("message"in A&&typeof A.message==="string")return A.message;let Q=M3(A);if(W3(A))return`Event \`ErrorEvent\` captured as exception with message \`${A.message}\``;let B=ucA(A);return`${B&&B!=="Object"?`'${B}'`:"Object"} captured as exception with keys: ${Q}`}function ucA(A){try{let Q=Object.getPrototypeOf(A);return Q?Q.constructor.name:void 0}catch{}}function lcA(A,Q,B,I){if(ZC(B))return[B,void 0];if(Q.synthetic=!0,uC(B)){let E=A?.getOptions().normalizeDepth,Y={["__serialized__"]:i3(B,E)},J=dcA(B);if(J)return[J,Y];let F=ccA(B),G=I?.syntheticException||Error(F);return G.message=F,[G,Y]}let C=I?.syntheticException||Error(B);return C.message=`${B}`,[C,void 0]}function Uo(A,Q,B,I){let E=I?.data&&I.data.mechanism||{handled:!0,type:"generic"},[Y,J]=lcA(A,E,B,I),F={exception:{values:[z6(Q,Y)]}};if(J)F.extra=J;return k3(F,void 0,void 0),zF(F,E),{...F,event_id:I?.event_id}}function Xo(A,Q,B="info",I,C){let E={event_id:I?.event_id,level:B};if(C&&I?.syntheticException){let Y=Wo(A,I.syntheticException);if(Y.length)E.exception={values:[{value:Q,stacktrace:{frames:Y}}]},zF(E,{synthetic:!0})}if(XF(Q)){let{__sentry_template_string__:Y,__sentry_template_values__:J}=Q;return E.logentry={message:Y,params:J},E}return E.message=Q,E}class IX extends w6{constructor(A){Do(),Zo(A);super(A);this._setUpMetricsProcessing()}eventFromException(A,Q){let B=Uo(this,this._options.stackParser,A,Q);return B.level="error",aC(B)}eventFromMessage(A,Q="info",B){return aC(Xo(this._options.stackParser,A,Q,B,this._options.attachStacktrace))}captureException(A,Q,B){return wo(Q),super.captureException(A,Q,B)}captureEvent(A,Q,B){if(!A.type&&A.exception?.values&&A.exception.values.length>0)wo(Q);return super.captureEvent(A,Q,B)}captureCheckIn(A,Q,B){let I="checkInId"in A&&A.checkInId?A.checkInId:DQ();if(!this._isEnabled())return q&&$.warn("SDK not enabled, will not capture check-in."),I;let C=this.getOptions(),{release:E,environment:Y,tunnel:J}=C,F={check_in_id:I,monitor_slug:A.monitorSlug,status:A.status,release:E,environment:Y};if("duration"in A)F.duration=A.duration;if(Q)F.monitor_config={schedule:Q.schedule,checkin_margin:Q.checkinMargin,max_runtime:Q.maxRuntime,timezone:Q.timezone,failure_issue_threshold:Q.failureIssueThreshold,recovery_threshold:Q.recoveryThreshold};let[G,D]=t1(this,B);if(D)F.contexts={trace:D};let Z=hn(F,G,this.getSdkMetadata(),J,this.getDsn());return q&&$.log("Sending checkin:",A.monitorSlug,A.status),this.sendEnvelope(Z),I}dispose(){q&&$.log("Disposing client...");for(let A of Object.keys(this._hooks))this._hooks[A]?.clear();this._hooks={},this._eventProcessors.length=0,this._integrations={},this._outcomes={},this._transport=void 0,this._promiseBuffer=SF(SZ)}_prepareEvent(A,Q,B,I){if(this._options.platform)A.platform=A.platform||this._options.platform;if(this._options.runtime)A.contexts={...A.contexts,runtime:A.contexts?.runtime||this._options.runtime};if(this._options.serverName)A.server_name=A.server_name||this._options.serverName;return super._prepareEvent(A,Q,B,I)}_setUpMetricsProcessing(){this.on("processMetric",(A)=>{if(this._options.serverName)A.attributes={"server.address":this._options.serverName,...A.attributes}})}}function wo(A){let Q=AA().getScopeData().sdkProcessingMetadata.requestSession;if(Q){let B=A?.mechanism?.handled??!0;if(B&&Q.status!=="crashed")Q.status="errored";else if(!B)Q.status="crashed"}}var $6=new Set;function H6(A){A.forEach((Q)=>{$6.add(Q),q&&$.log(`AI provider "${Q}" wrapping will be skipped`)})}function TY(A){return $6.has(A)}function M6(){$6.clear(),q&&$.log("Cleared AI provider skip registrations")}var pcA=new Set(["false","f","n","no","off","0"]),icA=new Set(["true","t","y","yes","on","1"]);function PY(A,Q){let B=String(A).toLowerCase();if(pcA.has(B))return!1;if(icA.has(B))return!0;return Q?.strict?null:Boolean(A)}var ncA="thismessage:/";function L6(A){return"isRelative"in A}function gZ(A,Q){let B=A.indexOf("://")<=0&&A.indexOf("//")!==0,I=Q??(B?ncA:void 0);try{if("canParse"in URL&&!URL.canParse(A,I))return;let C=new URL(A,I);if(B)return{isRelative:B,pathname:C.pathname,search:C.search,hash:C.hash};return C}catch{}return}function Ko(A){if(L6(A))return A.pathname;let Q=new URL(A);if(Q.search="",Q.hash="",["80","443"].includes(Q.port))Q.port="";if(Q.password)Q.password="%filtered%";if(Q.username)Q.username="%filtered%";return Q.toString()}function ocA(A,Q,B,I){let C=B?.method?.toUpperCase()??"GET",E=I?I:A?Q==="client"?Ko(A):A.pathname:"/";return`${C} ${E}`}function N6(A,Q,B,I,C){let E={[x]:B,[_A]:"url"};if(C)E[Q==="server"?"http.route":"url.template"]=C,E[_A]="route";if(I?.method)E[m3]=I.method.toUpperCase();if(A){if(A.search)E["url.query"]=A.search;if(A.hash)E["url.fragment"]=A.hash;if(A.pathname){if(E["url.path"]=A.pathname,A.pathname==="/")E[_A]="route"}if(!L6(A)){if(E[nE]=A.href,A.port)E["url.port"]=A.port;if(A.protocol)E["url.scheme"]=A.protocol;if(A.hostname)E[Q==="server"?"server.address":"url.domain"]=A.hostname}}return[ocA(A,Q,I,C),E]}function tE(A){if(!A)return{};let Q=A.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!Q)return{};let B=Q[6]||"",I=Q[8]||"";return{host:Q[4],path:Q[5],protocol:Q[2],search:B,hash:I,relative:Q[5]+B+I}}function rC(A){return A.split(/[?#]/,1)[0]}function eE(A){let{protocol:Q,host:B,path:I}=A,C=B?.replace(/^.*@/,"[filtered]:[filtered]@").replace(/(:80)$/,"").replace(/(:443)$/,"")||"";return`${Q?`${Q}://`:""}${C}${I}`}function _F(A,Q=!0){if(A.startsWith("data:")){let B=A.match(/^data:([^;,]+)/),I=B?B[1]:"text/plain",C=A.includes(";base64,"),E=A.indexOf(","),Y="";if(Q&&E!==-1){let J=A.slice(E+1);Y=J.length>10?`${J.slice(0,10)}... [truncated]`:J}return`data:${I}${C?",base64":""}${Y?`,${Y}`:""}`}return A}function kY(A,Q,B=[Q],I="npm"){let C=(A._metadata=A._metadata||{}).sdk=A._metadata.sdk||{};if(!C.name)C.name=`sentry.javascript.${Q}`,C.packages=B.map((E)=>({name:`${I}:@sentry/${E}`,version:EA})),C.version=EA}function SY(A={}){let Q=A.client||g();if(!TZ()||!Q)return{};let B=nQ(),I=vI(B);if(I.getTraceData)return I.getTraceData(A);let C=A.scope||FA(),E=A.span||vB(),Y=E?ZZ(E):acA(C),J=E?QQ(E):wC(Q,C),F=zY(J);if(!FZ.test(Y))return $.warn("Invalid sentry-trace data. Cannot generate trace data"),{};let D={"sentry-trace":Y,baggage:F};if(A.propagateTraceparent)D.traceparent=E?Zn(E):scA(C);return D}function acA(A){let{traceId:Q,sampled:B,propagationSpanId:I}=A.getPropagationContext();return oE(Q,I,B)}function scA(A){let{traceId:Q,sampled:B,propagationSpanId:I}=A.getPropagationContext();return aE(Q,I,B)}var Vo="[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:";function gY(A,Q,B){if(typeof A!=="string"||!Q)return!0;let I=B?.get(A);if(I!==void 0)return q&&!I&&$.log(Vo,A),I;let C=lE(A,Q);return B?.set(A,C),q&&!C&&$.log(Vo,A),C}function j6(A,Q,B){let I,C,E,Y=B?.maxWait?Math.max(B.maxWait,Q):0,J=B?.setTimeoutImpl||setTimeout;function F(){return G(),I=A(),I}function G(){C!==void 0&&clearTimeout(C),E!==void 0&&clearTimeout(E),C=E=void 0}function D(){if(C!==void 0||E!==void 0)return F();return I}function Z(){if(C)clearTimeout(C);if(C=J(F,Q),Y&&E===void 0)E=J(F,Y);return I}return Z.cancel=G,Z.flush=D,Z}function Mo(A){let Q=Object.create(null);try{Object.entries(A).forEach(([B,I])=>{if(typeof I==="string")Q[B]=I})}catch{}return Q}function yZ(A){let Q=A.headers||{},I=(typeof Q["x-forwarded-host"]==="string"?Q["x-forwarded-host"]:void 0)||(typeof Q.host==="string"?Q.host:void 0),E=(typeof Q["x-forwarded-proto"]==="string"?Q["x-forwarded-proto"]:void 0)||A.protocol||(A.socket?.encrypted?"https":"http"),Y=A.url||"",J=rcA({url:Y,host:I,protocol:E}),F=A.body||void 0,G=A.cookies;return{url:J,method:A.method,query_string:Lo(Y),headers:Mo(Q),cookies:G,data:F}}function rcA({url:A,protocol:Q,host:B}){if(A?.startsWith("http"))return A;if(A&&B)return`${Q}://${B}${A}`;return}var zo=["auth","token","secret","session","password","passwd","pwd","key","jwt","bearer","sso","saml","csrf","xsrf","credentials","set-cookie","cookie"],tcA=["x-forwarded-","-user"];function CX(A,Q=!1,B="request"){let I={};try{Object.entries(A).forEach(([C,E])=>{if(E==null)return;let Y=C.toLowerCase();if((Y==="cookie"||Y==="set-cookie")&&typeof E==="string"&&E!==""){let F=Y==="set-cookie",G=E.indexOf(";"),D=F&&G!==-1?E.substring(0,G):E,Z=F?[D]:D.split("; ");for(let W of Z){let U=W.indexOf("="),w=U!==-1?W.substring(0,U):W,K=U!==-1?W.substring(U+1):"",V=w.toLowerCase();Ho(I,Y,V,K,Q,B)}}else Ho(I,Y,"",E,Q,B)})}catch{}return I}function $o(A){return A.replace(/-/g,"_")}function Ho(A,Q,B,I,C,E){let Y=ecA(B||Q,I,C);if(Y==null)return;let J=`http.${E}.header.${$o(Q)}${B?`.${$o(B)}`:""}`;A[J]=Y}function ecA(A,Q,B){if(B?zo.some((C)=>A.includes(C)):[...tcA,...zo].some((C)=>A.includes(C)))return"[Filtered]";else if(Array.isArray(Q))return Q.map((C)=>C!=null?String(C):C).join(";");else if(typeof Q==="string")return Q;return}function Lo(A){if(!A)return;try{let Q=new URL(A,"http://s.io").search.slice(1);return Q.length?Q:void 0}catch{return}}var AuA=100;function xB(A,Q){let B=g(),I=AA();if(!B)return;let{beforeBreadcrumb:C=null,maxBreadcrumbs:E=AuA}=B.getOptions();if(E<=0)return;let J={timestamp:pC(),...A},F=C?eA(()=>C(J,Q)):J;if(F===null)return;if(B.emit)B.emit("beforeAddBreadcrumb",F,Q);I.addBreadcrumb(F,E)}var No,QuA="FunctionToString",jo=new WeakMap,BuA=()=>{return{name:QuA,setupOnce(){No=Function.prototype.toString;try{Function.prototype.toString=function(...A){let Q=H3(this),B=jo.has(g())&&Q!==void 0?Q:this;return No.apply(B,A)}}catch{}},setup(A){jo.set(A,!0)}}},hZ=R(BuA);var IuA=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,/can't redefine non-configurable property "solana"/,/vv\(\)\.getRestrictions is not a function/,/Can't find variable: _AutofillCallbackHandler/,/Object Not Found Matching Id:\d+, MethodName:simulateEvent/,/^Java exception was raised during method invocation$/],CuA="EventFilters",YX=R((A={})=>{let Q;return{name:CuA,setup(B){let I=B.getOptions();Q=Ro(A,I)},processEvent(B,I,C){if(!Q){let E=C.getOptions();Q=Ro(A,E)}return EuA(B,Q)?null:B}}}),fZ=R((A={})=>{return{...YX(A),name:"InboundFilters"}});function Ro(A={},Q={}){return{allowUrls:[...A.allowUrls||[],...Q.allowUrls||[]],denyUrls:[...A.denyUrls||[],...Q.denyUrls||[]],ignoreErrors:[...A.ignoreErrors||[],...Q.ignoreErrors||[],...A.disableErrorDefaults?[]:IuA],ignoreTransactions:[...A.ignoreTransactions||[],...Q.ignoreTransactions||[]]}}function EuA(A,Q){if(!A.type){if(YuA(A,Q.ignoreErrors))return q&&$.warn(`Event dropped due to being matched by \`ignoreErrors\` option. -Event: ${pE(A)}`),!0;if(ZuA(A))return q&&$.warn(`Event dropped due to not having an error message, error type or stacktrace. -Event: ${pE(A)}`),!0;if(FuA(A,Q.denyUrls))return q&&$.warn(`Event dropped due to being matched by \`denyUrls\` option. -Event: ${pE(A)}. -Url: ${EX(A)}`),!0;if(!GuA(A,Q.allowUrls))return q&&$.warn(`Event dropped due to not being matched by \`allowUrls\` option. -Event: ${pE(A)}. -Url: ${EX(A)}`),!0}else if(A.type==="transaction"){if(JuA(A,Q.ignoreTransactions))return q&&$.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. -Event: ${pE(A)}`),!0}return!1}function YuA(A,Q){if(!Q?.length)return!1;return AX(A).some((B)=>lE(B,Q))}function JuA(A,Q){if(!Q?.length)return!1;let B=A.transaction;return B?lE(B,Q):!1}function FuA(A,Q){if(!Q?.length)return!1;let B=EX(A);return!B?!1:lE(B,Q)}function GuA(A,Q){if(!Q?.length)return!0;let B=EX(A);return!B?!0:lE(B,Q)}function DuA(A=[]){for(let Q=A.length-1;Q>=0;Q--){let B=A[Q];if(B&&B.filename!==""&&B.filename!=="[native code]")return B.filename||null}return null}function EX(A){try{let B=[...A.exception?.values??[]].reverse().find((I)=>I.mechanism?.parent_id===void 0&&I.stacktrace?.frames?.length)?.stacktrace?.frames;return B?DuA(B):null}catch{return q&&$.error(`Cannot extract url for event ${pE(A)}`),null}}function ZuA(A){if(!A.exception?.values?.length)return!1;return!A.message&&!A.exception.values.some((Q)=>Q.stacktrace||Q.type&&Q.type!=="Error"||Q.value)}function To(A,Q,B,I,C,E){if(!C.exception?.values||!E||!WC(E.originalException,Error))return;let Y=C.exception.values.length>0?C.exception.values[C.exception.values.length-1]:void 0;if(Y)C.exception.values=R6(A,Q,I,E.originalException,B,C.exception.values,Y,0)}function R6(A,Q,B,I,C,E,Y,J){if(E.length>=B+1)return E;let F=[...E];if(WC(I[C],Error)){qo(Y,J,I);let G=A(Q,I[C]),D=F.length;Oo(G,C,D,J),F=R6(A,Q,B,I[C],C,[G,...F],G,D)}if(Po(I))I.errors.forEach((G,D)=>{if(WC(G,Error)){qo(Y,J,I);let Z=A(Q,G),W=F.length;Oo(Z,`errors[${D}]`,W,J),F=R6(A,Q,B,G,C,[Z,...F],Z,W)}});return F}function Po(A){return Array.isArray(A.errors)}function qo(A,Q,B){A.mechanism={handled:!0,type:"auto.core.linked_errors",...Po(B)&&{is_exception_group:!0},...A.mechanism,exception_id:Q}}function Oo(A,Q,B,I){A.mechanism={handled:!0,...A.mechanism,type:"chained",source:Q,exception_id:B,parent_id:I}}var WuA="cause",UuA=5,XuA="LinkedErrors",wuA=(A={})=>{let Q=A.limit||UuA,B=A.key||WuA;return{name:XuA,preprocessEvent(I,C,E){let Y=E.getOptions();To(z6,Y.stackParser,B,Q,I,C)}}},_Z=R(wuA);function ko(A){let Q={},B=0;while(B{let Y=Q[E.toLowerCase()],J=Array.isArray(Y)?Y.join(";"):Y;if(E==="Forwarded")return KuA(J);return J?.split(",").map((F)=>F.trim())}).reduce((E,Y)=>{if(!Y)return E;return E.concat(Y)},[]).find((E)=>E!==null&&VuA(E))||null}function KuA(A){if(!A)return null;for(let Q of A.split(";"))if(Q.startsWith("for="))return Q.slice(4);return null}function VuA(A){return/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/.test(A)}var zuA={cookies:!0,data:!0,headers:!0,query_string:!0,url:!0},$uA="RequestData",HuA=(A={})=>{let Q={...zuA,...A.include};return{name:$uA,processEvent(B,I,C){let{sdkProcessingMetadata:E={}}=B,{normalizedRequest:Y,ipAddress:J}=E,F={...Q,ip:Q.ip??C.getOptions().sendDefaultPii};if(Y)MuA(B,Y,{ipAddress:J},F);return B}}},vZ=R(HuA);function MuA(A,Q,B,I){if(A.request={...A.request,...LuA(Q,I)},I.ip){let C=Q.headers&&So(Q.headers)||B.ipAddress;if(C)A.user={...A.user,ip_address:C}}}function LuA(A,Q){let B={},I={...A.headers};if(Q.headers){if(B.headers=I,!Q.cookies)delete I.cookie;if(!Q.ip)q6.forEach((C)=>{delete I[C]})}if(B.method=A.method,Q.url)B.url=A.url;if(Q.cookies){let C=A.cookies||(I?.cookie?ko(I.cookie):void 0);B.cookies=C||{}}if(Q.query_string)B.query_string=A.query_string;if(Q.data)B.data=A.data;return B}function go(A){yF("console",A),hF("console",NuA)}function NuA(){if(!("console"in o))return;CZ.forEach(function(A){if(!(A in o.console))return;$3(o.console,A,function(Q){return wF[A]=Q,function(...B){fF("console",{args:B,level:A}),wF[A]?.apply(o.console,B)}})})}function yo(A){return A==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(A)?A:"log"}var juA=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/;function RuA(A){let Q=A.length>1024?`${A.slice(-1024)}`:A,B=juA.exec(Q);return B?B.slice(1):[]}function O6(A){let Q=RuA(A),B=Q[0]||"",I=Q[1];if(!B&&!I)return".";if(I)I=I.slice(0,I.length-1);return B+I}var quA=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,JX=Symbol("sentryPostgresConnectionContext"),T6=Symbol.for("sentry.instrumented.postgresjs"),OuA=Symbol.for("sentry.query.from.instrumented.sql");function k6(A,Q){if(!A||typeof A!=="function")return q&&$.warn("instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance"),A;return P6(A,{requireParentSpan:!0,...Q})}function P6(A,Q,B){if(A[T6])return A;let I=new Proxy(A,{apply(C,E,Y){let J=Reflect.apply(C,E,Y);if(J&&typeof J==="object"&&"handle"in J)fo(J,I,Q);return J},get(C,E){let Y=C[E];if(typeof E!=="string"||typeof Y!=="function")return Y;if(E==="unsafe"||E==="file")return TuA(Y,C,I,Q);if(E==="begin"||E==="reserve")return PuA(Y,C,I,Q);return Y}});if(B)I[JX]=B;else huA(A,I);return A[T6]=!0,I[T6]=!0,I}function TuA(A,Q,B,I){return function(...C){let E=Reflect.apply(A,Q,C);if(E&&typeof E==="object"&&"handle"in E)fo(E,B,I);return E}}function PuA(A,Q,B,I){return function(...C){let E=B[JX];if(typeof C[C.length-1]!=="function"){let D=Reflect.apply(A,Q,C);if(D&&typeof D.then==="function")return D.then((Z)=>{return P6(Z,I,E)});return D}let J=C.length===1?C[0]:C[1],F=function(D){let Z=P6(D,I,E);return J(Z)},G=C.length===1?[F]:[C[0],F];return Reflect.apply(A,Q,G)}}function fo(A,Q,B){if(A.handle?.__sentryWrapped)return;A[OuA]=!0;let I=A.handle,C=async function(...E){if(!kuA(B))return I.apply(this,E);let Y=SuA(A.strings),J=guA(Y);return ZQ({name:J||"postgresjs.query",op:"db"},(F)=>{F.setAttribute(x,"auto.db.postgresjs"),F.setAttributes({"db.system.name":"postgres","db.query.text":J});let G=Q?Q[JX]:void 0;if(yuA(F,G),B.requestHook)try{B.requestHook(F,J,G)}catch(Z){F.setAttribute("sentry.hook.error","requestHook failed"),q&&$.error("Error in requestHook for PostgresJs instrumentation:",Z)}let D=this;D.resolve=new Proxy(D.resolve,{apply:(Z,W,U)=>{try{ho(F,J,U?.[0]?.command),F.end()}catch(w){q&&$.error("Error ending span in resolve callback:",w)}return Reflect.apply(Z,W,U)}}),D.reject=new Proxy(D.reject,{apply:(Z,W,U)=>{try{F.setStatus({code:BA,message:U?.[0]?.message||"unknown_error"}),F.setAttribute("db.response.status_code",U?.[0]?.code||"unknown"),F.setAttribute("error.type",U?.[0]?.name||"unknown"),ho(F,J),F.end()}catch(w){q&&$.error("Error ending span in reject callback:",w)}return Reflect.apply(Z,W,U)}});try{return I.apply(this,E)}catch(Z){throw F.setStatus({code:BA,message:Z instanceof Error?Z.message:"unknown_error"}),F.end(),Z}})};C.__sentryWrapped=!0,A.handle=C}function kuA(A){return vB()!==void 0||!A.requireParentSpan}function SuA(A){if(!A?.length)return;if(A.length===1)return A[0]||void 0;return A.reduce((Q,B,I)=>I===0?B:`${Q}$${I}${B}`,"")}function guA(A){if(!A)return"Unknown SQL Query";return A.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{let Q=new Set(A.levels||CZ);return{name:fuA,setup(B){go(({args:I,level:C})=>{if(g()!==B||!Q.has(C))return;_uA(C,I)})}}});function _uA(A,Q){let B={category:"console",data:{arguments:Q,logger:"console"},level:yo(A),message:_o(Q)};if(A==="assert")if(Q[0]===!1){let I=Q.slice(1);B.message=I.length>0?`Assertion failed: ${_o(I)}`:"Assertion failed",B.data.arguments=I}else return;xB(B,{input:Q,level:A})}function _o(A){return"util"in o&&typeof o.util.format==="function"?o.util.format(...A):O3(A," ")}var vuA="ConversationId",xuA=()=>{return{name:vuA,setup(A){A.on("spanStart",(Q)=>{let B=FA().getScopeData(),I=AA().getScopeData(),C=B.conversationId||I.conversationId;if(C)Q.setAttribute(d3,C)})}}},S6=R(xuA);var vF={};bXA(vF,{gauge:()=>muA,distribution:()=>duA,count:()=>buA});function g6(A,Q,B,I){dn({type:A,name:Q,value:B,unit:I?.unit,attributes:I?.attributes},{scope:I?.scope})}function buA(A,Q=1,B){g6("counter",A,Q,B)}function muA(A,Q,B){g6("gauge",A,Q,B)}function duA(A,Q,B){g6("distribution",A,Q,B)}var vo="gen_ai.prompt",A0="gen_ai.system",pA="gen_ai.request.model",xF="gen_ai.request.stream",Q0="gen_ai.request.temperature",bF="gen_ai.request.max_tokens",B0="gen_ai.request.frequency_penalty",mF="gen_ai.request.presence_penalty",I0="gen_ai.request.top_p",FX="gen_ai.request.top_k",xo="gen_ai.request.encoding_format",bo="gen_ai.request.dimensions",VB="gen_ai.response.finish_reasons",WQ="gen_ai.response.model",GI="gen_ai.response.id",mo="gen_ai.response.stop_reason",kA="gen_ai.usage.input_tokens",BQ="gen_ai.usage.output_tokens",aQ="gen_ai.usage.total_tokens",RQ="gen_ai.operation.name",sQ="sentry.sdk_meta.gen_ai.input.messages.original_length",qQ="gen_ai.input.messages",co="gen_ai.output.messages",bB="gen_ai.system_instructions",YQ="gen_ai.response.text",KC="gen_ai.request.available_tools",yY="gen_ai.response.streaming",zQ="gen_ai.response.tool_calls",y6="gen_ai.agent.name",uo="gen_ai.pipeline.name",bZ="gen_ai.conversation.id",lo="gen_ai.usage.cache_creation_input_tokens",po="gen_ai.usage.cache_read_input_tokens",h6="gen_ai.usage.input_tokens.cache_write",C0="gen_ai.usage.input_tokens.cached",GX="gen_ai.invoke_agent",io="gen_ai.generate_text",no="gen_ai.stream_text",oo="gen_ai.generate_object",ao="gen_ai.stream_object",DX="gen_ai.embeddings.input",so="gen_ai.embeddings",ro="gen_ai.embeddings",to="gen_ai.rerank",eo="gen_ai.execute_tool",hY="gen_ai.tool.name",f6="gen_ai.tool.call.id",_6="gen_ai.tool.type",ZX="gen_ai.tool.input",WX="gen_ai.tool.output",Aa="gen_ai.tool.description",v6="openai.response.id",x6="openai.response.model",b6="openai.response.timestamp",Qa="openai.usage.completion_tokens",Ba="openai.usage.prompt_tokens",fY={CHAT:"chat",EMBEDDINGS:"embeddings"},m6="anthropic.response.timestamp";var mZ=new Map,d6=new Set(["ai.generateText","ai.streamText","ai.generateObject","ai.streamObject"]),c6=new Set(["ai.generateText.doGenerate","ai.streamText.doStream","ai.generateObject.doGenerate","ai.streamObject.doStream"]),Ia=new Set(["ai.embed.doEmbed","ai.embedMany.doEmbed"]),Ca=new Set(["ai.rerank.doRerank"]),Ea={"ai.embed.doEmbed":"embeddings","ai.embedMany.doEmbed":"embeddings","ai.rerank.doRerank":"rerank"};function E0(A){if(!A||typeof A!=="object")return!1;return uuA(A)||Ja(A)||cuA(A)||Fa(A)||Ga(A)||luA(A)||puA(A)||iuA(A)||nuA(A)||ouA(A)||auA(A)||suA(A)}function cuA(A){if(!("image_url"in A))return!1;if(typeof A.image_url==="string")return A.image_url.startsWith("data:");return Ya(A)}function Ya(A){return"image_url"in A&&!!A.image_url&&typeof A.image_url==="object"&&"url"in A.image_url&&typeof A.image_url.url==="string"&&A.image_url.url.startsWith("data:")}function uuA(A){return"type"in A&&typeof A.type==="string"&&"source"in A&&E0(A.source)}function Ja(A){return"inlineData"in A&&!!A.inlineData&&typeof A.inlineData==="object"&&"data"in A.inlineData&&typeof A.inlineData.data==="string"}function Fa(A){return"type"in A&&A.type==="input_audio"&&"input_audio"in A&&!!A.input_audio&&typeof A.input_audio==="object"&&"data"in A.input_audio&&typeof A.input_audio.data==="string"}function Ga(A){return"type"in A&&A.type==="file"&&"file"in A&&!!A.file&&typeof A.file==="object"&&"file_data"in A.file&&typeof A.file.file_data==="string"}function luA(A){return"media_type"in A&&typeof A.media_type==="string"&&"data"in A}function puA(A){return"type"in A&&A.type==="file"&&"mediaType"in A&&typeof A.mediaType==="string"&&"data"in A&&typeof A.data==="string"&&!A.data.startsWith("http://")&&!A.data.startsWith("https://")}function iuA(A){return"type"in A&&A.type==="image"&&"image"in A&&typeof A.image==="string"&&!A.image.startsWith("http://")&&!A.image.startsWith("https://")}function nuA(A){return"type"in A&&(A.type==="blob"||A.type==="base64")}function ouA(A){return"b64_json"in A}function auA(A){return"type"in A&&"result"in A&&A.type==="image_generation"}function suA(A){return"uri"in A&&typeof A.uri==="string"&&A.uri.startsWith("data:")}var dZ="[Blob substitute]",ruA=["image_url","data","content","b64_json","result","uri","image"];function _Y(A){let Q={...A};if(E0(Q.source))Q.source=_Y(Q.source);if(Ja(A))Q.inlineData={...A.inlineData,data:dZ};if(Ya(A))Q.image_url={...A.image_url,url:dZ};if(Fa(A))Q.input_audio={...A.input_audio,data:dZ};if(Ga(A))Q.file={...A.file,file_data:dZ};for(let B of ruA)if(typeof Q[B]==="string")Q[B]=dZ;return Q}var Za=20000,UX=(A)=>{return new TextEncoder().encode(A).length},l6=(A)=>{return UX(JSON.stringify(A))};function XX(A,Q){if(UX(A)<=Q)return A;let B=0,I=A.length,C="";while(B<=I){let E=Math.floor((B+I)/2),Y=A.slice(0,E);if(UX(Y)<=Q)C=Y,B=E+1;else I=E-1}return C}function tuA(A){if(typeof A==="string")return A;if("text"in A&&typeof A.text==="string")return A.text;return""}function Da(A,Q){if(typeof A==="string")return Q;return{...A,text:Q}}function euA(A){return A!==null&&typeof A==="object"&&"content"in A&&typeof A.content==="string"}function Wa(A){return A!==null&&typeof A==="object"&&"content"in A&&Array.isArray(A.content)}function Ua(A){return A!==null&&typeof A==="object"&&"parts"in A&&Array.isArray(A.parts)&&A.parts.length>0}function AlA(A,Q){let B={...A,content:""},I=l6(B),C=Q-I;if(C<=0)return[];let E=XX(A.content,C);return[{...A,content:E}]}function QlA(A){if("parts"in A&&Array.isArray(A.parts))return{key:"parts",items:A.parts};if("content"in A&&Array.isArray(A.content))return{key:"content",items:A.content};return{key:null,items:[]}}function BlA(A,Q){let{key:B,items:I}=QlA(A);if(B===null||I.length===0)return[];let C=I.map((F)=>Da(F,"")),E=l6({...A,[B]:C}),Y=Q-E;if(Y<=0)return[];let J=[];for(let F of I){let G=tuA(F),D=UX(G);if(D<=Y)J.push(F),Y-=D;else if(J.length===0){let Z=XX(G,Y);if(Z)J.push(Da(F,Z));break}else break}if(J.length<=0)return[];else return[{...A,[B]:J}]}function IlA(A,Q){if(!A)return[];if(typeof A==="string"){let B=XX(A,Q);return B?[B]:[]}if(typeof A!=="object")return[];if(euA(A))return AlA(A,Q);if(Wa(A)||Ua(A))return BlA(A,Q);return[]}function u6(A){return A.map((B)=>{let I=void 0;if(!!B&&typeof B==="object"){if(Wa(B))I={...B,content:u6(B.content)};else if("content"in B&&E0(B.content))I={...B,content:_Y(B.content)};if(Ua(B))I={...I??B,parts:u6(B.parts)};if(E0(I))I=_Y(I);else if(E0(B))I=_Y(B)}return I??B})}function ClA(A,Q){if(!Array.isArray(A)||A.length===0)return A;let B=Q-2,I=A[A.length-1],C=u6([I]),E=C[0];if(l6(E)<=B)return C;return IlA(E,B)}function Y0(A){return ClA(A,Za)}function Xa(A){return XX(A,Za)}function VC(A){let Q=Boolean(g()?.getOptions().sendDefaultPii);return{...A,recordInputs:A?.recordInputs??Q,recordOutputs:A?.recordOutputs??Q}}function vY(A){if(A.includes("messages"))return"chat";if(A.includes("completions"))return"text_completion";if(A.includes("generateContent"))return"generate_content";if(A.includes("models"))return"models";if(A.includes("chat"))return"chat";return A.split(".").pop()||"unknown"}function dF(A){return`gen_ai.${vY(A)}`}function cF(A,Q){return A?`${A}.${Q}`:Q}function cZ(A,Q,B,I,C){if(Q!==void 0)A.setAttributes({[kA]:Q});if(B!==void 0)A.setAttributes({[BQ]:B});if(Q!==void 0||B!==void 0||I!==void 0||C!==void 0){let E=(Q??0)+(B??0)+(I??0)+(C??0);A.setAttributes({[aQ]:E})}}function xY(A){if(typeof A==="string")return Xa(A);if(Array.isArray(A)){let Q=Y0(A);return JSON.stringify(Q)}return JSON.stringify(A)}function mB(A){if(!Array.isArray(A))return{systemInstructions:void 0,filteredMessages:A};let Q=A.findIndex((Y)=>Y&&typeof Y==="object"&&("role"in Y)&&Y.role==="system");if(Q===-1)return{systemInstructions:void 0,filteredMessages:A};let B=A[Q],I=typeof B.content==="string"?B.content:B.content!==void 0?JSON.stringify(B.content):void 0;if(!I)return{systemInstructions:void 0,filteredMessages:A};let C=JSON.stringify([{type:"text",content:I}]),E=[...A.slice(0,Q),...A.slice(Q+1)];return{systemInstructions:C,filteredMessages:E}}async function ElA(A,Q,B){let I=A.catch((Y)=>{throw n(Y,{mechanism:{handled:!1,type:B}}),Y}),C=await Q,E=await I;if(E&&typeof E==="object"&&"data"in E)return{...E,data:C};return C}function uF(A,Q,B){if(!NQ(A))return Q;return new Proxy(A,{get(I,C){let Y=C in Promise.prototype||C===Symbol.toStringTag?Q:I,J=Reflect.get(Y,C);if(C==="withResponse"&&typeof J==="function")return function(){let G=J.call(I);return ElA(G,Q,B)};return typeof J==="function"?J.bind(Y):J}})}var wX="operation.name",wa="ai.operationId",KX="ai.prompt",Ka="ai.schema",Va="ai.response.object",p6="ai.values",i6="ai.response.text",n6="ai.response.toolCalls",za="ai.response.finishReason",bY="ai.prompt.messages",lF="ai.prompt.tools",uZ="ai.model.id",$a="ai.response.providerMetadata",Ha="ai.usage.cachedInputTokens",Ma="ai.telemetry.functionId",La="ai.usage.completionTokens",Na="ai.usage.promptTokens",ja="ai.usage.tokens",o6="ai.toolCall.name",a6="ai.toolCall.id",Ra="ai.toolCall.args",qa="ai.toolCall.result";function Ta(A,Q){let B=A.parent_span_id;if(!B)return;let I=A.data[kA],C=A.data[BQ];if(typeof I==="number"||typeof C==="number"){let E=Q.get(B)||{inputTokens:0,outputTokens:0};if(typeof I==="number")E.inputTokens+=I;if(typeof C==="number")E.outputTokens+=C;Q.set(B,E)}}function s6(A,Q){let B=Q.get(A.span_id);if(!B||!A.data)return;if(B.inputTokens>0)A.data[kA]=B.inputTokens;if(B.outputTokens>0)A.data[BQ]=B.outputTokens;if(B.inputTokens>0||B.outputTokens>0)A.data["gen_ai.usage.total_tokens"]=B.inputTokens+B.outputTokens}function YlA(A){let Q=new Map;for(let B of A){let I=B.data[KC];if(typeof I!=="string")continue;try{let C=JSON.parse(I);for(let E of C)if(E.name&&E.description&&!Q.has(E.name))Q.set(E.name,E.description)}catch{}}return Q}function Pa(A,Q){let B=YlA(A);for(let I of A){if(I.op==="gen_ai.execute_tool"){let C=I.data[hY];if(typeof C==="string"){let E=B.get(C);if(E)I.data[Aa]=E}}if(I.op==="gen_ai.invoke_agent")s6(I,Q)}}function r6(A){return mZ.get(A)}function t6(A){mZ.delete(A)}function ka(A){let Q=A.map((B)=>{if(typeof B==="string")try{return JSON.parse(B)}catch{return B}return B});return JSON.stringify(Q)}function Oa(A){return A.filter((Q)=>!!Q&&typeof Q==="object"&&("role"in Q)&&("content"in Q))}function JlA(A){try{let Q=JSON.parse(A);if(!!Q&&typeof Q==="object"){let{messages:B}=Q,{prompt:I,system:C}=Q,E=[];if(typeof C==="string")E.push({role:"system",content:C});if(typeof B==="string")try{B=JSON.parse(B)}catch{}if(Array.isArray(B))return E.push(...Oa(B)),E;if(Array.isArray(I))return E.push(...Oa(I)),E;if(typeof I==="string")E.push({role:"user",content:I});if(E.length>0)return E}}catch{}return[]}function Sa(A,Q){if(typeof Q[KX]==="string"&&!Q[qQ]&&!Q[bY]){let B=Q[KX],I=JlA(B);if(I.length){let{systemInstructions:C,filteredMessages:E}=mB(I);if(C)A.setAttribute(bB,C);let Y=Array.isArray(E)?E.length:0,J=xY(E);A.setAttributes({[KX]:J,[qQ]:J,[sQ]:Y})}}else if(typeof Q[bY]==="string")try{let B=JSON.parse(Q[bY]);if(Array.isArray(B)){let{systemInstructions:I,filteredMessages:C}=mB(B);if(I)A.setAttribute(bB,I);let E=Array.isArray(C)?C.length:0,Y=xY(C);A.setAttributes({[bY]:Y,[qQ]:Y,[sQ]:E})}}catch{}}function ga(A){switch(A){case"ai.generateText":case"ai.streamText":case"ai.generateObject":case"ai.streamObject":return GX;case"ai.generateText.doGenerate":return io;case"ai.streamText.doStream":return no;case"ai.generateObject.doGenerate":return oo;case"ai.streamObject.doStream":return ao;case"ai.embed.doEmbed":return so;case"ai.embedMany.doEmbed":return ro;case"ai.rerank.doRerank":return to;case"ai.toolCall":return eo;default:if(A.startsWith("ai.stream"))return"ai.run";return}}function FlA(A){if(d6.has(A))return"invoke_agent";if(c6.has(A))return"generate_content";if(Ia.has(A))return"embeddings";if(Ca.has(A))return"rerank";if(A==="ai.toolCall")return"execute_tool";return A}function GlA(A){let{data:Q,description:B}=v(A);if(!B)return;if(Q[o6]&&Q[a6]&&B==="ai.toolCall"){XlA(A,Q);return}if(!Q[wa]&&!B.startsWith("ai."))return;wlA(A,B,Q)}function DlA(A){if(A.type==="transaction"&&A.spans){let Q=new Map;for(let I of A.spans)UlA(I),Ta(I,Q);Pa(A.spans,Q);let B=A.contexts?.trace;if(B?.op==="gen_ai.invoke_agent")s6(B,Q)}return A}function ZlA(A){if(typeof A!=="string")return"stop";switch(A){case"tool-calls":return"tool_call";case"stop":case"length":case"content_filter":case"error":return A;default:return A}}function WlA(A){let Q=A[i6],B=A[n6],I=A[za];if(Q==null&&B==null)return;let C=[];if(typeof Q==="string"&&Q.length>0)C.push({type:"text",content:Q});if(B!=null)try{let E=typeof B==="string"?JSON.parse(B):B;if(Array.isArray(E)){for(let Y of E){let J=Y.input??Y.args;C.push({type:"tool_call",id:Y.toolCallId,name:Y.toolName,arguments:typeof J==="string"?J:JSON.stringify(J??{})})}delete A[n6]}}catch{}if(C.length>0){let E={role:"assistant",parts:C,finish_reason:ZlA(I)};A[co]=JSON.stringify([E]),delete A[i6]}}function UlA(A){let{data:Q,origin:B}=A;if(B!=="auto.vercelai.otel")return;if(A.status&&A.status!=="ok")A.status="internal_error";if(OQ(Q,La,BQ),OQ(Q,Na,kA),OQ(Q,Ha,C0),OQ(Q,"ai.usage.inputTokens",kA),OQ(Q,"ai.usage.outputTokens",BQ),OQ(Q,ja,kA),OQ(Q,"ai.response.avgOutputTokensPerSecond","ai.response.avgCompletionTokensPerSecond"),typeof Q[kA]==="number"&&typeof Q[C0]==="number")Q[kA]=Q[kA]+Q[C0];if(typeof Q[kA]==="number"){let I=typeof Q[BQ]==="number"?Q[BQ]:0;Q[aQ]=I+Q[kA]}if(Q[lF]&&Array.isArray(Q[lF]))Q[lF]=ka(Q[lF]);if(Q[wX]){let I=FlA(Q[wX]);Q[RQ]=I,delete Q[wX]}if(OQ(Q,bY,qQ),WlA(Q),OQ(Q,Va,"gen_ai.response.object"),OQ(Q,lF,"gen_ai.request.available_tools"),OQ(Q,Ra,ZX),OQ(Q,qa,WX),OQ(Q,Ka,"gen_ai.request.schema"),OQ(Q,uZ,pA),Array.isArray(Q[p6])){let I=Q[p6].map((C)=>{try{return JSON.parse(C)}catch{return C}});Q[DX]=I.length===1?I[0]:JSON.stringify(I)}KlA(Q);for(let I of Object.keys(Q))if(I.startsWith("ai."))OQ(Q,I,`vercel.${I}`)}function OQ(A,Q,B){if(A[Q]!=null)A[B]=A[Q],delete A[Q]}function XlA(A,Q){A.setAttribute(x,"auto.vercelai.otel"),A.setAttribute(u,"gen_ai.execute_tool"),A.setAttribute(RQ,"execute_tool"),OQ(Q,o6,hY),OQ(Q,a6,f6);let B=Q[f6];if(typeof B==="string")mZ.set(B,A.spanContext());if(!Q[_6])A.setAttribute(_6,"function");let I=Q[hY];if(I)A.updateName(`execute_tool ${I}`)}function wlA(A,Q,B){A.setAttribute(x,"auto.vercelai.otel");let I=Q.replace("ai.","");A.setAttribute("ai.pipeline.name",I),A.updateName(I);let C=B[Ma];if(C&&typeof C==="string")A.setAttribute("gen_ai.function_id",C);if(Sa(A,B),B[uZ]&&!B[WQ])A.setAttribute(WQ,B[uZ]);A.setAttribute("ai.streaming",Q.includes("stream"));let E=ga(Q);if(E)A.setAttribute(u,E);if(d6.has(Q)){if(C&&typeof C==="string")A.updateName(`invoke_agent ${C}`);else A.updateName("invoke_agent");return}let Y=B[uZ];if(Y){let J=c6.has(Q)?"generate_content":Ea[Q];if(J)A.updateName(`${J} ${Y}`)}}function VX(A){A.on("spanStart",GlA),A.addEventProcessor(Object.assign(DlA,{id:"VercelAiEventProcessor"}))}function KlA(A){let Q=A[$a];if(Q)try{let B=JSON.parse(Q),I=B.openai??B.azure;if(I){if(dI(A,C0,I.cachedPromptTokens),dI(A,"gen_ai.usage.output_tokens.reasoning",I.reasoningTokens),dI(A,"gen_ai.usage.output_tokens.prediction_accepted",I.acceptedPredictionTokens),dI(A,"gen_ai.usage.output_tokens.prediction_rejected",I.rejectedPredictionTokens),!A["gen_ai.conversation.id"])dI(A,"gen_ai.conversation.id",I.responseId)}if(B.anthropic){let C=B.anthropic.usage?.cache_read_input_tokens??B.anthropic.cacheReadInputTokens;dI(A,C0,C);let E=B.anthropic.usage?.cache_creation_input_tokens??B.anthropic.cacheCreationInputTokens;dI(A,h6,E)}if(B.bedrock?.usage)dI(A,C0,B.bedrock.usage.cacheReadInputTokens),dI(A,h6,B.bedrock.usage.cacheWriteInputTokens);if(B.deepseek)dI(A,C0,B.deepseek.promptCacheHitTokens),dI(A,"gen_ai.usage.input_tokens.cache_miss",B.deepseek.promptCacheMissTokens)}catch{}}function dI(A,Q,B){if(B!=null)A[Q]=B}var J0="OpenAI",ya=["responses.create","chat.completions.create","embeddings.create","conversations.create"],VlA=["response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"],ha=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta",...VlA];function zX(A){if(A.includes("chat.completions"))return fY.CHAT;if(A.includes("responses"))return fY.CHAT;if(A.includes("embeddings"))return fY.EMBEDDINGS;if(A.includes("conversations"))return fY.CHAT;return A.split(".").pop()||"unknown"}function fa(A){return`gen_ai.${zX(A)}`}function _a(A){return ya.includes(A)}function va(A){return A!==null&&typeof A==="object"&&"object"in A&&A.object==="chat.completion"}function xa(A){return A!==null&&typeof A==="object"&&"object"in A&&A.object==="response"}function ba(A){if(A===null||typeof A!=="object"||!("object"in A))return!1;let Q=A;return Q.object==="list"&&typeof Q.model==="string"&&Q.model.toLowerCase().includes("embedding")}function ma(A){return A!==null&&typeof A==="object"&&"object"in A&&A.object==="conversation"}function da(A){return A!==null&&typeof A==="object"&&"type"in A&&typeof A.type==="string"&&A.type.startsWith("response.")}function ca(A){return A!==null&&typeof A==="object"&&"object"in A&&A.object==="chat.completion.chunk"}function ua(A,Q,B){if($X(A,Q.id,Q.model,Q.created),Q.usage)lZ(A,Q.usage.prompt_tokens,Q.usage.completion_tokens,Q.usage.total_tokens);if(Array.isArray(Q.choices)){let I=Q.choices.map((C)=>C.finish_reason).filter((C)=>C!==null);if(I.length>0)A.setAttributes({[VB]:JSON.stringify(I)});if(B){let C=Q.choices.map((E)=>E.message?.tool_calls).filter((E)=>Array.isArray(E)&&E.length>0).flat();if(C.length>0)A.setAttributes({[zQ]:JSON.stringify(C)})}}}function la(A,Q,B){if($X(A,Q.id,Q.model,Q.created_at),Q.status)A.setAttributes({[VB]:JSON.stringify([Q.status])});if(Q.usage)lZ(A,Q.usage.input_tokens,Q.usage.output_tokens,Q.usage.total_tokens);if(B){let I=Q;if(Array.isArray(I.output)&&I.output.length>0){let C=I.output.filter((E)=>typeof E==="object"&&E!==null&&E.type==="function_call");if(C.length>0)A.setAttributes({[zQ]:JSON.stringify(C)})}}}function pa(A,Q){if(A.setAttributes({[x6]:Q.model,[WQ]:Q.model}),Q.usage)lZ(A,Q.usage.prompt_tokens,void 0,Q.usage.total_tokens)}function ia(A,Q){let{id:B,created_at:I}=Q;if(A.setAttributes({[v6]:B,[GI]:B,[bZ]:B}),I)A.setAttributes({[b6]:new Date(I*1000).toISOString()})}function lZ(A,Q,B,I){if(Q!==void 0)A.setAttributes({[Ba]:Q,[kA]:Q});if(B!==void 0)A.setAttributes({[Qa]:B,[BQ]:B});if(I!==void 0)A.setAttributes({[aQ]:I})}function $X(A,Q,B,I){A.setAttributes({[v6]:Q,[GI]:Q}),A.setAttributes({[x6]:B,[WQ]:B}),A.setAttributes({[b6]:new Date(I*1000).toISOString()})}function zlA(A){if("conversation"in A&&typeof A.conversation==="string")return A.conversation;if("previous_response_id"in A&&typeof A.previous_response_id==="string")return A.previous_response_id;return}function na(A){let Q={[pA]:A.model??"unknown"};if("temperature"in A)Q[Q0]=A.temperature;if("top_p"in A)Q[I0]=A.top_p;if("frequency_penalty"in A)Q[B0]=A.frequency_penalty;if("presence_penalty"in A)Q[mF]=A.presence_penalty;if("stream"in A)Q[xF]=A.stream;if("encoding_format"in A)Q[xo]=A.encoding_format;if("dimensions"in A)Q[bo]=A.dimensions;let B=zlA(A);if(B)Q[bZ]=B;return Q}function $lA(A,Q){for(let B of A){let I=B.index;if(I===void 0||!B.function)continue;if(!(I in Q.chatCompletionToolCalls))Q.chatCompletionToolCalls[I]={...B,function:{name:B.function.name,arguments:B.function.arguments||""}};else{let C=Q.chatCompletionToolCalls[I];if(B.function.arguments&&C?.function)C.function.arguments+=B.function.arguments}}}function HlA(A,Q,B){if(Q.responseId=A.id??Q.responseId,Q.responseModel=A.model??Q.responseModel,Q.responseTimestamp=A.created??Q.responseTimestamp,A.usage)Q.promptTokens=A.usage.prompt_tokens,Q.completionTokens=A.usage.completion_tokens,Q.totalTokens=A.usage.total_tokens;for(let I of A.choices??[]){if(B){if(I.delta?.content)Q.responseTexts.push(I.delta.content);if(I.delta?.tool_calls)$lA(I.delta.tool_calls,Q)}if(I.finish_reason)Q.finishReasons.push(I.finish_reason)}}function MlA(A,Q,B,I){if(!(A&&typeof A==="object")){Q.eventTypes.push("unknown:non-object");return}if(A instanceof Error){I.setStatus({code:BA,message:"internal_error"}),n(A,{mechanism:{handled:!1,type:"auto.ai.openai.stream-response"}});return}if(!("type"in A))return;let C=A;if(!ha.includes(C.type)){Q.eventTypes.push(C.type);return}if(B){if(C.type==="response.output_item.done"&&"item"in C)Q.responsesApiToolCalls.push(C.item);if(C.type==="response.output_text.delta"&&"delta"in C&&C.delta){Q.responseTexts.push(C.delta);return}}if("response"in C){let{response:E}=C;if(Q.responseId=E.id??Q.responseId,Q.responseModel=E.model??Q.responseModel,Q.responseTimestamp=E.created_at??Q.responseTimestamp,E.usage)Q.promptTokens=E.usage.input_tokens,Q.completionTokens=E.usage.output_tokens,Q.totalTokens=E.usage.total_tokens;if(E.status)Q.finishReasons.push(E.status);if(B&&E.output_text)Q.responseTexts.push(E.output_text)}}async function*oa(A,Q,B){let I={eventTypes:[],responseTexts:[],finishReasons:[],responseId:"",responseModel:"",responseTimestamp:0,promptTokens:void 0,completionTokens:void 0,totalTokens:void 0,chatCompletionToolCalls:{},responsesApiToolCalls:[]};try{for await(let C of A){if(ca(C))HlA(C,I,B);else if(da(C))MlA(C,I,B,Q);yield C}}finally{if($X(Q,I.responseId,I.responseModel,I.responseTimestamp),lZ(Q,I.promptTokens,I.completionTokens,I.totalTokens),Q.setAttributes({[yY]:!0}),I.finishReasons.length)Q.setAttributes({[VB]:JSON.stringify(I.finishReasons)});if(B&&I.responseTexts.length)Q.setAttributes({[YQ]:I.responseTexts.join("")});let E=[...Object.values(I.chatCompletionToolCalls),...I.responsesApiToolCalls];if(E.length>0)Q.setAttributes({[zQ]:JSON.stringify(E)});Q.end()}}function LlA(A){let Q=Array.isArray(A.tools)?A.tools:[],I=A.web_search_options&&typeof A.web_search_options==="object"?[{type:"web_search_options",...A.web_search_options}]:[],C=[...Q,...I];if(C.length===0)return;try{return JSON.stringify(C)}catch(E){q&&$.error("Failed to serialize OpenAI tools:",E);return}}function NlA(A,Q){let B={[A0]:"openai",[RQ]:zX(Q),[x]:"auto.ai.openai"};if(A.length>0&&typeof A[0]==="object"&&A[0]!==null){let I=A[0],C=LlA(I);if(C)B[KC]=C;Object.assign(B,na(I))}else B[pA]="unknown";return B}function jlA(A,Q,B){if(!Q||typeof Q!=="object")return;let I=Q;if(va(I)){if(ua(A,I,B),B&&I.choices?.length){let C=I.choices.map((E)=>E.message?.content||"");A.setAttributes({[YQ]:JSON.stringify(C)})}}else if(xa(I)){if(la(A,I,B),B&&I.output_text)A.setAttributes({[YQ]:I.output_text})}else if(ba(I))pa(A,I);else if(ma(I))ia(A,I)}function aa(A,Q,B){if(B===fY.EMBEDDINGS&&"input"in Q){let J=Q.input;if(J==null)return;if(typeof J==="string"&&J.length===0)return;if(Array.isArray(J)&&J.length===0)return;A.setAttribute(DX,typeof J==="string"?J:JSON.stringify(J));return}let I="input"in Q?Q.input:("messages"in Q)?Q.messages:void 0;if(!I)return;if(Array.isArray(I)&&I.length===0)return;let{systemInstructions:C,filteredMessages:E}=mB(I);if(C)A.setAttribute(bB,C);let Y=xY(E);if(A.setAttribute(qQ,Y),Array.isArray(E))A.setAttribute(sQ,E.length);else A.setAttribute(sQ,1)}function RlA(A,Q,B,I){return function(...E){let Y=NlA(E,Q),J=Y[pA]||"unknown",F=zX(Q),G=E[0],D=G&&typeof G==="object"&&G.stream===!0,Z={name:`${F} ${J}`,op:fa(Q),attributes:Y};if(D){let w,K=ZQ(Z,(V)=>{if(w=A.apply(B,E),I.recordInputs&&G)aa(V,G,F);return(async()=>{try{let z=await w;return oa(z,V,I.recordOutputs??!1)}catch(z){throw V.setStatus({code:BA,message:"internal_error"}),n(z,{mechanism:{handled:!1,type:"auto.ai.openai.stream",data:{function:Q}}}),V.end(),z}})()});return uF(w,K,"auto.ai.openai")}let W,U=KB(Z,(w)=>{if(W=A.apply(B,E),I.recordInputs&&G)aa(w,G,F);return W.then((K)=>{return jlA(w,K,I.recordOutputs),K},(K)=>{throw n(K,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:Q}}}),K})});return uF(W,U,"auto.ai.openai")}}function sa(A,Q="",B){return new Proxy(A,{get(I,C){let E=I[C],Y=cF(Q,String(C));if(typeof E==="function"&&_a(Y))return RlA(E,Y,I,B);if(typeof E==="function")return E.bind(I);if(E&&typeof E==="object")return sa(E,Y,B);return E}})}function HX(A,Q){return sa(A,"",VC(Q))}var F0="Anthropic_AI",ra=["messages.create","messages.stream","messages.countTokens","models.get","completions.create","models.retrieve","beta.messages.create"];function ta(A){return ra.includes(A)}function ea(A,Q){if(Array.isArray(Q)&&Q.length===0)return;let{systemInstructions:B,filteredMessages:I}=mB(Q);if(B)A.setAttributes({[bB]:B});let C=Array.isArray(I)?I.length:1;A.setAttributes({[qQ]:xY(I),[sQ]:C})}var qlA={invalid_request_error:"invalid_argument",authentication_error:"unauthenticated",permission_error:"permission_denied",not_found_error:"not_found",request_too_large:"failed_precondition",rate_limit_error:"resource_exhausted",api_error:"internal_error",overloaded_error:"unavailable"};function e6(A){if(!A)return"internal_error";return qlA[A]||"internal_error"}function As(A,Q){if(Q.error)A.setStatus({code:BA,message:e6(Q.error.type)}),n(Q.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}})}function Qs(A){let{system:Q,messages:B,input:I}=A,C=typeof Q==="string"?[{role:"system",content:A.system}]:[],E=Array.isArray(I)?I:I!=null?[I]:void 0,Y=Array.isArray(B)?B:B!=null?[B]:[],J=E??Y;return[...C,...J]}function OlA(A,Q){if("type"in A&&typeof A.type==="string"){if(A.type==="error")return Q.setStatus({code:BA,message:e6(A.error?.type)}),n(A.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0}return!1}function TlA(A,Q){if(A.type==="message_delta"&&A.usage){if("output_tokens"in A.usage&&typeof A.usage.output_tokens==="number")Q.completionTokens=A.usage.output_tokens}if(A.message){let B=A.message;if(B.id)Q.responseId=B.id;if(B.model)Q.responseModel=B.model;if(B.stop_reason)Q.finishReasons.push(B.stop_reason);if(B.usage){if(typeof B.usage.input_tokens==="number")Q.promptTokens=B.usage.input_tokens;if(typeof B.usage.cache_creation_input_tokens==="number")Q.cacheCreationInputTokens=B.usage.cache_creation_input_tokens;if(typeof B.usage.cache_read_input_tokens==="number")Q.cacheReadInputTokens=B.usage.cache_read_input_tokens}}}function PlA(A,Q){if(A.type!=="content_block_start"||typeof A.index!=="number"||!A.content_block)return;if(A.content_block.type==="tool_use"||A.content_block.type==="server_tool_use")Q.activeToolBlocks[A.index]={id:A.content_block.id,name:A.content_block.name,inputJsonParts:[]}}function klA(A,Q,B){if(A.type!=="content_block_delta"||!A.delta)return;if(typeof A.index==="number"&&"partial_json"in A.delta&&typeof A.delta.partial_json==="string"){let I=Q.activeToolBlocks[A.index];if(I)I.inputJsonParts.push(A.delta.partial_json)}if(B&&typeof A.delta.text==="string")Q.responseTexts.push(A.delta.text)}function SlA(A,Q){if(A.type!=="content_block_stop"||typeof A.index!=="number")return;let B=Q.activeToolBlocks[A.index];if(!B)return;let I=B.inputJsonParts.join(""),C;try{C=I?JSON.parse(I):{}}catch{C={__unparsed:I}}Q.toolCalls.push({type:"tool_use",id:B.id,name:B.name,input:C}),delete Q.activeToolBlocks[A.index]}function Bs(A,Q,B,I){if(!(A&&typeof A==="object"))return;if(OlA(A,I))return;TlA(A,Q),PlA(A,Q),klA(A,Q,B),SlA(A,Q)}function glA(A,Q,B){if(!Q.isRecording())return;if(A.responseId)Q.setAttributes({[GI]:A.responseId});if(A.responseModel)Q.setAttributes({[WQ]:A.responseModel});if(cZ(Q,A.promptTokens,A.completionTokens,A.cacheCreationInputTokens,A.cacheReadInputTokens),Q.setAttributes({[yY]:!0}),A.finishReasons.length>0)Q.setAttributes({[VB]:JSON.stringify(A.finishReasons)});if(B&&A.responseTexts.length>0)Q.setAttributes({[YQ]:A.responseTexts.join("")});if(B&&A.toolCalls.length>0)Q.setAttributes({[zQ]:JSON.stringify(A.toolCalls)});Q.end()}async function*Is(A,Q,B){let I={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};try{for await(let C of A)Bs(C,I,B,Q),yield C}finally{if(I.responseId)Q.setAttributes({[GI]:I.responseId});if(I.responseModel)Q.setAttributes({[WQ]:I.responseModel});if(cZ(Q,I.promptTokens,I.completionTokens,I.cacheCreationInputTokens,I.cacheReadInputTokens),Q.setAttributes({[yY]:!0}),I.finishReasons.length>0)Q.setAttributes({[VB]:JSON.stringify(I.finishReasons)});if(B&&I.responseTexts.length>0)Q.setAttributes({[YQ]:I.responseTexts.join("")});if(B&&I.toolCalls.length>0)Q.setAttributes({[zQ]:JSON.stringify(I.toolCalls)});Q.end()}}function Cs(A,Q,B){let I={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};return A.on("streamEvent",(C)=>{Bs(C,I,B,Q)}),A.on("message",()=>{glA(I,Q,B)}),A.on("error",(C)=>{if(n(C,{mechanism:{handled:!1,type:"auto.ai.anthropic.stream_error"}}),Q.isRecording())Q.setStatus({code:BA,message:"internal_error"}),Q.end()}),A}function ylA(A,Q){let B={[A0]:"anthropic",[RQ]:vY(Q),[x]:"auto.ai.anthropic"};if(A.length>0&&typeof A[0]==="object"&&A[0]!==null){let I=A[0];if(I.tools&&Array.isArray(I.tools))B[KC]=JSON.stringify(I.tools);if(B[pA]=I.model??"unknown","temperature"in I)B[Q0]=I.temperature;if("top_p"in I)B[I0]=I.top_p;if("stream"in I)B[xF]=I.stream;if("top_k"in I)B[FX]=I.top_k;if("frequency_penalty"in I)B[B0]=I.frequency_penalty;if("max_tokens"in I)B[bF]=I.max_tokens}else if(Q==="models.retrieve"||Q==="models.get")B[pA]=A[0];else B[pA]="unknown";return B}function A7(A,Q){let B=Qs(Q);if(ea(A,B),"prompt"in Q)A.setAttributes({[vo]:JSON.stringify(Q.prompt)})}function hlA(A,Q){if("content"in Q){if(Array.isArray(Q.content)){A.setAttributes({[YQ]:Q.content.map((I)=>I.text).filter((I)=>!!I).join("")});let B=[];for(let I of Q.content)if(I.type==="tool_use"||I.type==="server_tool_use")B.push(I);if(B.length>0)A.setAttributes({[zQ]:JSON.stringify(B)})}}if("completion"in Q)A.setAttributes({[YQ]:Q.completion});if("input_tokens"in Q)A.setAttributes({[YQ]:JSON.stringify(Q.input_tokens)})}function flA(A,Q){if("id"in Q&&"model"in Q){if(A.setAttributes({[GI]:Q.id,[WQ]:Q.model}),"created"in Q&&typeof Q.created==="number")A.setAttributes({[m6]:new Date(Q.created*1000).toISOString()});if("created_at"in Q&&typeof Q.created_at==="number")A.setAttributes({[m6]:new Date(Q.created_at*1000).toISOString()});if("usage"in Q&&Q.usage)cZ(A,Q.usage.input_tokens,Q.usage.output_tokens,Q.usage.cache_creation_input_tokens,Q.usage.cache_read_input_tokens)}}function _lA(A,Q,B){if(!Q||typeof Q!=="object")return;if("type"in Q&&Q.type==="error"){As(A,Q);return}if(B)hlA(A,Q);flA(A,Q)}function Es(A,Q,B){if(n(A,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:B}}}),Q.isRecording())Q.setStatus({code:BA,message:"internal_error"}),Q.end();throw A}function vlA(A,Q,B,I,C,E,Y,J,F,G,D){let Z=C[pA]??"unknown",W={name:`${E} ${Z}`,op:dF(Y),attributes:C};if(G&&!D){let U,w=ZQ(W,(K)=>{if(U=A.apply(B,I),F.recordInputs&&J)A7(K,J);return(async()=>{try{let V=await U;return Is(V,K,F.recordOutputs??!1)}catch(V){return Es(V,K,Y)}})()});return uF(U,w,"auto.ai.anthropic")}else return ZQ(W,(U)=>{try{if(F.recordInputs&&J)A7(U,J);let w=Q.apply(B,I);return Cs(w,U,F.recordOutputs??!1)}catch(w){return Es(w,U,Y)}})}function xlA(A,Q,B,I){return new Proxy(A,{apply(C,E,Y){let J=ylA(Y,Q),F=J[pA]??"unknown",G=vY(Q),D=typeof Y[0]==="object"?Y[0]:void 0,Z=Boolean(D?.stream),W=Q==="messages.stream";if(Z||W)return vlA(A,C,B,Y,J,G,Q,D,I,Z,W);let U,w=KB({name:`${G} ${F}`,op:dF(Q),attributes:J},(K)=>{if(U=C.apply(B,Y),I.recordInputs&&D)A7(K,D);return U.then((V)=>{return _lA(K,V,I.recordOutputs),V},(V)=>{throw n(V,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:Q}}}),V})});return uF(U,w,"auto.ai.anthropic")}})}function Ys(A,Q="",B){return new Proxy(A,{get(I,C){let E=I[C],Y=cF(Q,String(C));if(typeof E==="function"&&ta(Y))return xlA(E,Y,I,B);if(typeof E==="function")return E.bind(I);if(E&&typeof E==="object")return Ys(E,Y,B);return E}})}function MX(A,Q){return Ys(A,"",VC(Q))}var G0="Google_GenAI",Q7=["models.generateContent","models.generateContentStream","chats.create","sendMessage","sendMessageStream"],Js="google_genai",B7="chats.create",Fs="chat";function blA(A,Q){let B=A?.promptFeedback;if(B?.blockReason){let I=B.blockReasonMessage??B.blockReason;return Q.setStatus({code:BA,message:"internal_error"}),n(`Content blocked: ${I}`,{mechanism:{handled:!1,type:"auto.ai.google_genai"}}),!0}return!1}function mlA(A,Q){if(typeof A.responseId==="string")Q.responseId=A.responseId;if(typeof A.modelVersion==="string")Q.responseModel=A.modelVersion;let B=A.usageMetadata;if(B){if(typeof B.promptTokenCount==="number")Q.promptTokens=B.promptTokenCount;if(typeof B.candidatesTokenCount==="number")Q.completionTokens=B.candidatesTokenCount;if(typeof B.totalTokenCount==="number")Q.totalTokens=B.totalTokenCount}}function dlA(A,Q,B){if(Array.isArray(A.functionCalls))Q.toolCalls.push(...A.functionCalls);for(let I of A.candidates??[]){if(I?.finishReason&&!Q.finishReasons.includes(I.finishReason))Q.finishReasons.push(I.finishReason);for(let C of I?.content?.parts??[]){if(B&&C.text)Q.responseTexts.push(C.text);if(C.functionCall)Q.toolCalls.push({type:"function",id:C.functionCall.id,name:C.functionCall.name,arguments:C.functionCall.args})}}}function clA(A,Q,B,I){if(!A||blA(A,I))return;mlA(A,Q),dlA(A,Q,B)}async function*Gs(A,Q,B){let I={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(let C of A)clA(C,I,B,Q),yield C}finally{let C={[yY]:!0};if(I.responseId)C[GI]=I.responseId;if(I.responseModel)C[WQ]=I.responseModel;if(I.promptTokens!==void 0)C[kA]=I.promptTokens;if(I.completionTokens!==void 0)C[BQ]=I.completionTokens;if(I.totalTokens!==void 0)C[aQ]=I.totalTokens;if(I.finishReasons.length)C[VB]=JSON.stringify(I.finishReasons);if(B&&I.responseTexts.length)C[YQ]=I.responseTexts.join("");if(B&&I.toolCalls.length)C[zQ]=JSON.stringify(I.toolCalls);Q.setAttributes(C),Q.end()}}function Ds(A){if(Q7.includes(A))return!0;let Q=A.split(".").pop();return Q7.includes(Q)}function Zs(A){return A.includes("Stream")}function pF(A,Q="user"){if(typeof A==="string")return[{role:Q,content:A}];if(Array.isArray(A))return A.flatMap((B)=>pF(B,Q));if(typeof A!=="object"||!A)return[];if("role"in A&&typeof A.role==="string")return[A];if("parts"in A)return[{...A,role:Q}];return[{role:Q,content:A}]}function Ws(A,Q){if("model"in A&&typeof A.model==="string")return A.model;if(Q&&typeof Q==="object"){let B=Q;if("model"in B&&typeof B.model==="string")return B.model;if("modelVersion"in B&&typeof B.modelVersion==="string")return B.modelVersion}return"unknown"}function ulA(A){let Q={};if("temperature"in A&&typeof A.temperature==="number")Q[Q0]=A.temperature;if("topP"in A&&typeof A.topP==="number")Q[I0]=A.topP;if("topK"in A&&typeof A.topK==="number")Q[FX]=A.topK;if("maxOutputTokens"in A&&typeof A.maxOutputTokens==="number")Q[bF]=A.maxOutputTokens;if("frequencyPenalty"in A&&typeof A.frequencyPenalty==="number")Q[B0]=A.frequencyPenalty;if("presencePenalty"in A&&typeof A.presencePenalty==="number")Q[mF]=A.presencePenalty;return Q}function llA(A,Q,B){let I={[A0]:Js,[RQ]:vY(A),[x]:"auto.ai.google_genai"};if(Q){if(I[pA]=Ws(Q,B),"config"in Q&&typeof Q.config==="object"&&Q.config){let C=Q.config;if(Object.assign(I,ulA(C)),"tools"in C&&Array.isArray(C.tools)){let E=C.tools.flatMap((Y)=>Y.functionDeclarations);I[KC]=JSON.stringify(E)}}}else I[pA]=Ws({},B);return I}function Us(A,Q){let B=[];if("config"in Q&&Q.config&&typeof Q.config==="object"&&"systemInstruction"in Q.config&&Q.config.systemInstruction)B.push(...pF(Q.config.systemInstruction,"system"));if("history"in Q)B.push(...pF(Q.history,"user"));if("contents"in Q)B.push(...pF(Q.contents,"user"));if("message"in Q)B.push(...pF(Q.message,"user"));if(Array.isArray(B)&&B.length){let{systemInstructions:I,filteredMessages:C}=mB(B);if(I)A.setAttribute(bB,I);let E=Array.isArray(C)?C.length:0;A.setAttributes({[sQ]:E,[qQ]:JSON.stringify(Y0(C))})}}function plA(A,Q,B){if(!Q||typeof Q!=="object")return;if(Q.modelVersion)A.setAttribute(WQ,Q.modelVersion);if(Q.usageMetadata&&typeof Q.usageMetadata==="object"){let I=Q.usageMetadata;if(typeof I.promptTokenCount==="number")A.setAttributes({[kA]:I.promptTokenCount});if(typeof I.candidatesTokenCount==="number")A.setAttributes({[BQ]:I.candidatesTokenCount});if(typeof I.totalTokenCount==="number")A.setAttributes({[aQ]:I.totalTokenCount})}if(B&&Array.isArray(Q.candidates)&&Q.candidates.length>0){let I=Q.candidates.map((C)=>{if(C.content?.parts&&Array.isArray(C.content.parts))return C.content.parts.map((E)=>typeof E.text==="string"?E.text:"").filter((E)=>E.length>0).join("");return""}).filter((C)=>C.length>0);if(I.length>0)A.setAttributes({[YQ]:I.join("")})}if(B&&Q.functionCalls){let I=Q.functionCalls;if(Array.isArray(I)&&I.length>0)A.setAttributes({[zQ]:JSON.stringify(I)})}}function Xs(A,Q,B,I){let C=Q===B7;return new Proxy(A,{apply(E,Y,J){let F=J[0],G=llA(Q,F,B),D=G[pA]??"unknown",Z=vY(Q);if(Zs(Q))return ZQ({name:`${Z} ${D}`,op:dF(Q),attributes:G},async(W)=>{try{if(I.recordInputs&&F)Us(W,F);let U=await E.apply(B,J);return Gs(U,W,Boolean(I.recordOutputs))}catch(U){throw W.setStatus({code:BA,message:"internal_error"}),n(U,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:Q}}}),W.end(),U}});return KB({name:C?`${Z} ${D} create`:`${Z} ${D}`,op:dF(Q),attributes:G},(W)=>{if(I.recordInputs&&F)Us(W,F);return xI(()=>E.apply(B,J),(U)=>{n(U,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:Q}}})},()=>{},(U)=>{if(!C)plA(W,U,I.recordOutputs)})})}})}function I7(A,Q="",B){return new Proxy(A,{get:(I,C,E)=>{let Y=Reflect.get(I,C,E),J=cF(Q,String(C));if(typeof Y==="function"&&Ds(J)){if(J===B7){let F=Xs(Y,J,I,B);return function(...D){let Z=F(...D);if(Z&&typeof Z==="object")return I7(Z,Fs,B);return Z}}return Xs(Y,J,I,B)}if(typeof Y==="function")return Y.bind(I);if(Y&&typeof Y==="object")return I7(Y,J,B);return Y}})}function LX(A,Q){return I7(A,"",VC(Q))}var NX="LangChain",mY="auto.ai.langchain",ws={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"};var DI=(A,Q,B)=>{if(B!=null)A[Q]=B},dB=(A,Q,B)=>{let I=Number(B);if(!Number.isNaN(I))A[Q]=I};function tC(A){if(typeof A==="string")return A;try{return JSON.stringify(A)}catch{return String(A)}}function iF(A){if(Array.isArray(A))try{let Q=A.map((B)=>B&&typeof B==="object"&&E0(B)?_Y(B):B);return JSON.stringify(Q)}catch{return String(A)}return tC(A)}function pZ(A){let Q=A.toLowerCase();return ws[Q]??Q}function Ks(A){if(A.includes("System"))return"system";if(A.includes("Human"))return"user";if(A.includes("AI")||A.includes("Assistant"))return"assistant";if(A.includes("Function"))return"function";if(A.includes("Tool"))return"tool";return"user"}function C7(A){if(!A||Array.isArray(A))return;return A.invocation_params}function iZ(A){return A.map((Q)=>{let B=Q._getType;if(typeof B==="function"){let C=B.call(Q);return{role:pZ(C),content:iF(Q.content)}}if(Q.lc===1&&Q.kwargs){let C=Q.id,E=Array.isArray(C)&&C.length>0?C[C.length-1]:"",Y=typeof E==="string"?Ks(E):"user";return{role:pZ(Y),content:iF(Q.kwargs?.content)}}if(Q.type){let C=String(Q.type).toLowerCase();return{role:pZ(C),content:iF(Q.content)}}if(Q.role)return{role:pZ(String(Q.role)),content:iF(Q.content)};let I=Q.constructor?.name;if(I&&I!=="Object")return{role:pZ(Ks(I)),content:iF(Q.content)};return{role:"user",content:iF(Q.content)}})}function ilA(A,Q,B){let I={},C="kwargs"in A?A.kwargs:void 0,E=Q?.temperature??B?.ls_temperature??C?.temperature;dB(I,Q0,E);let Y=Q?.max_tokens??B?.ls_max_tokens??C?.max_tokens;dB(I,bF,Y);let J=Q?.top_p??C?.top_p;dB(I,I0,J);let F=Q?.frequency_penalty;dB(I,B0,F);let G=Q?.presence_penalty;if(dB(I,mF,G),Q&&"stream"in Q)DI(I,xF,Boolean(Q.stream));return I}function Vs(A,Q,B,I,C){return{[A0]:tC(A??"langchain"),[RQ]:"chat",[pA]:tC(Q),[x]:mY,...ilA(B,I,C)}}function zs(A,Q,B,I,C){let E=C?.ls_provider,Y=I?.model??C?.ls_model_name??"unknown",J=Vs(E,Y,A,I,C);if(B&&Array.isArray(Q)&&Q.length>0){DI(J,sQ,Q.length);let F=Q.map((G)=>({role:"user",content:G}));DI(J,qQ,tC(F))}return J}function $s(A,Q,B,I,C){let E=C?.ls_provider??A.id?.[2],Y=I?.model??C?.ls_model_name??"unknown",J=Vs(E,Y,A,I,C);if(B&&Array.isArray(Q)&&Q.length>0){let F=iZ(Q.flat()),{systemInstructions:G,filteredMessages:D}=mB(F);if(G)DI(J,bB,G);let Z=Array.isArray(D)?D.length:0;DI(J,sQ,Z);let W=Y0(D);DI(J,qQ,tC(W))}return J}function nlA(A,Q){let B=[],I=A.flat();for(let C of I){let E=C.message?.content;if(Array.isArray(E))for(let Y of E){let J=Y;if(J.type==="tool_use")B.push(J)}}if(B.length>0)DI(Q,zQ,tC(B))}function olA(A,Q){if(!A)return;let{tokenUsage:B,usage:I}=A;if(B)dB(Q,kA,B.promptTokens),dB(Q,BQ,B.completionTokens),dB(Q,aQ,B.totalTokens);else if(I){dB(Q,kA,I.input_tokens),dB(Q,BQ,I.output_tokens);let C=Number(I.input_tokens),E=Number(I.output_tokens),Y=(Number.isNaN(C)?0:C)+(Number.isNaN(E)?0:E);if(Y>0)dB(Q,aQ,Y);if(I.cache_creation_input_tokens!==void 0)dB(Q,lo,I.cache_creation_input_tokens);if(I.cache_read_input_tokens!==void 0)dB(Q,po,I.cache_read_input_tokens)}}function Hs(A,Q){if(!A)return;let B={};if(Array.isArray(A.generations)){let G=A.generations.flat().map((D)=>{if(D.generationInfo?.finish_reason)return D.generationInfo.finish_reason;if(D.generation_info?.finish_reason)return D.generation_info.finish_reason;return null}).filter((D)=>typeof D==="string");if(G.length>0)DI(B,VB,tC(G));if(nlA(A.generations,B),Q){let D=A.generations.flat().map((Z)=>Z.text??Z.message?.content).filter((Z)=>typeof Z==="string");if(D.length>0)DI(B,YQ,tC(D))}}olA(A.llmOutput,B);let I=A.llmOutput,E=A.generations?.[0]?.[0]?.message,Y=I?.model_name??I?.model??E?.response_metadata?.model_name;if(Y)DI(B,WQ,Y);let J=I?.id??E?.id;if(J)DI(B,GI,J);let F=I?.stop_reason??E?.response_metadata?.finish_reason;if(F)DI(B,mo,tC(F));return B}function jX(A={}){let{recordInputs:Q,recordOutputs:B}=VC(A),I=new Map,C=(Y)=>{let J=I.get(Y);if(J?.isRecording())J.end(),I.delete(Y)},E={lc_serializable:!1,lc_namespace:["langchain_core","callbacks","sentry"],lc_secrets:void 0,lc_attributes:void 0,lc_aliases:void 0,lc_serializable_keys:void 0,lc_id:["langchain_core","callbacks","sentry"],lc_kwargs:{},name:"SentryCallbackHandler",ignoreLLM:!1,ignoreChain:!1,ignoreAgent:!1,ignoreRetriever:!1,ignoreCustomEvent:!1,raiseError:!1,awaitHandlers:!0,handleLLMStart(Y,J,F,G,D,Z,W,U){let w=C7(Z),K=zs(Y,J,Q,w,W),V=K[pA],z=K[RQ];ZQ({name:`${z} ${V}`,op:"gen_ai.chat",attributes:{...K,[u]:"gen_ai.chat"}},(M)=>{return I.set(F,M),M})},handleChatModelStart(Y,J,F,G,D,Z,W,U){let w=C7(Z),K=$s(Y,J,Q,w,W),V=K[pA],z=K[RQ];ZQ({name:`${z} ${V}`,op:"gen_ai.chat",attributes:{...K,[u]:"gen_ai.chat"}},(M)=>{return I.set(F,M),M})},handleLLMEnd(Y,J,F,G,D){let Z=I.get(J);if(Z?.isRecording()){let W=Hs(Y,B);if(W)Z.setAttributes(W);C(J)}},handleLLMError(Y,J){let F=I.get(J);if(F?.isRecording())F.setStatus({code:BA,message:"internal_error"}),C(J);n(Y,{mechanism:{handled:!1,type:`${mY}.llm_error_handler`}})},handleChainStart(Y,J,F,G,D,Z,W,U){let w=U||Y.name||"unknown_chain",K={[x]:"auto.ai.langchain","langchain.chain.name":w};if(Q)K["langchain.chain.inputs"]=JSON.stringify(J);ZQ({name:`chain ${w}`,op:"gen_ai.invoke_agent",attributes:{...K,[u]:"gen_ai.invoke_agent"}},(V)=>{return I.set(F,V),V})},handleChainEnd(Y,J){let F=I.get(J);if(F?.isRecording()){if(B)F.setAttributes({"langchain.chain.outputs":JSON.stringify(Y)});C(J)}},handleChainError(Y,J){let F=I.get(J);if(F?.isRecording())F.setStatus({code:BA,message:"internal_error"}),C(J);n(Y,{mechanism:{handled:!1,type:`${mY}.chain_error_handler`}})},handleToolStart(Y,J,F,G){let D=Y.name||"unknown_tool",Z={[x]:mY,[hY]:D};if(Q)Z[ZX]=J;ZQ({name:`execute_tool ${D}`,op:"gen_ai.execute_tool",attributes:{...Z,[u]:"gen_ai.execute_tool"}},(W)=>{return I.set(F,W),W})},handleToolEnd(Y,J){let F=I.get(J);if(F?.isRecording()){if(B)F.setAttributes({[WX]:JSON.stringify(Y)});C(J)}},handleToolError(Y,J){let F=I.get(J);if(F?.isRecording())F.setStatus({code:BA,message:"internal_error"}),C(J);n(Y,{mechanism:{handled:!1,type:`${mY}.tool_error_handler`}})},copy(){return E},toJSON(){return{lc:1,type:"not_implemented",id:E.lc_id}},toJSONNotImplemented(){return{lc:1,type:"not_implemented",id:E.lc_id}}};return E}var RX="LangGraph",E7="auto.ai.langgraph";function alA(A){if(!A||A.length===0)return null;let Q=[];for(let B of A)if(B&&typeof B==="object"){let I=B.tool_calls;if(I&&Array.isArray(I))Q.push(...I)}return Q.length>0?Q:null}function slA(A){let Q=A,B=0,I=0,C=0;if(Q.usage_metadata&&typeof Q.usage_metadata==="object"){let E=Q.usage_metadata;if(typeof E.input_tokens==="number")B=E.input_tokens;if(typeof E.output_tokens==="number")I=E.output_tokens;if(typeof E.total_tokens==="number")C=E.total_tokens;return{inputTokens:B,outputTokens:I,totalTokens:C}}if(Q.response_metadata&&typeof Q.response_metadata==="object"){let E=Q.response_metadata;if(E.tokenUsage&&typeof E.tokenUsage==="object"){let Y=E.tokenUsage;if(typeof Y.promptTokens==="number")B=Y.promptTokens;if(typeof Y.completionTokens==="number")I=Y.completionTokens;if(typeof Y.totalTokens==="number")C=Y.totalTokens}}return{inputTokens:B,outputTokens:I,totalTokens:C}}function rlA(A,Q){let B=Q;if(B.response_metadata&&typeof B.response_metadata==="object"){let I=B.response_metadata;if(I.model_name&&typeof I.model_name==="string")A.setAttribute(WQ,I.model_name);if(I.finish_reason&&typeof I.finish_reason==="string")A.setAttribute(VB,[I.finish_reason])}}function Ms(A){if(!A.builder?.nodes?.tools?.runnable?.tools)return null;let Q=A.builder?.nodes?.tools?.runnable?.tools;if(!Q||!Array.isArray(Q)||Q.length===0)return null;return Q.map((B)=>({name:B.lc_kwargs?.name,description:B.lc_kwargs?.description,schema:B.lc_kwargs?.schema}))}function Ls(A,Q,B){let C=B?.messages;if(!C||!Array.isArray(C))return;let E=Q?.length??0,Y=C.length>E?C.slice(E):[];if(Y.length===0)return;let J=alA(Y);if(J)A.setAttribute(zQ,JSON.stringify(J));let F=iZ(Y);A.setAttribute(YQ,JSON.stringify(F));let G=0,D=0,Z=0;for(let W of Y){let U=slA(W);G+=U.inputTokens,D+=U.outputTokens,Z+=U.totalTokens,rlA(A,W)}if(G>0)A.setAttribute(kA,G);if(D>0)A.setAttribute(BQ,D);if(Z>0)A.setAttribute(aQ,Z)}function Y7(A,Q){return new Proxy(A,{apply(B,I,C){return KB({op:"gen_ai.create_agent",name:"create_agent",attributes:{[x]:E7,[u]:"gen_ai.create_agent",[RQ]:"create_agent"}},(E)=>{try{let Y=Reflect.apply(B,I,C),J=C.length>0?C[0]:{};if(J?.name&&typeof J.name==="string")E.setAttribute(y6,J.name),E.updateName(`create_agent ${J.name}`);let F=Y.invoke;if(F&&typeof F==="function")Y.invoke=tlA(F.bind(Y),Y,J,Q);return Y}catch(Y){throw E.setStatus({code:BA,message:"internal_error"}),n(Y,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),Y}})}})}function tlA(A,Q,B,I){return new Proxy(A,{apply(C,E,Y){return KB({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[x]:E7,[u]:GX,[RQ]:"invoke_agent"}},async(J)=>{try{let F=B?.name;if(F&&typeof F==="string")J.setAttribute(uo,F),J.setAttribute(y6,F),J.updateName(`invoke_agent ${F}`);let Z=(Y.length>1?Y[1]:void 0)?.configurable?.thread_id;if(Z&&typeof Z==="string")J.setAttribute(bZ,Z);let W=Ms(Q);if(W)J.setAttribute(KC,JSON.stringify(W));let{recordInputs:U,recordOutputs:w}=I,K=Y.length>0?Y[0]?.messages??[]:[];if(K&&U){let z=iZ(K),{systemInstructions:M,filteredMessages:L}=mB(z);if(M)J.setAttribute(bB,M);let N=Y0(L),T=Array.isArray(L)?L.length:0;J.setAttributes({[qQ]:JSON.stringify(N),[sQ]:T})}let V=await Reflect.apply(C,E,Y);if(w)Ls(J,K??null,V);return V}catch(F){throw J.setStatus({code:BA,message:"internal_error"}),n(F,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),F}})}})}function qX(A,Q){return A.compile=Y7(A.compile,VC(Q)),A}function nZ(A){if(A===void 0)return;else if(A>=400&&A<500)return"warning";else if(A>=500)return"error";else return}function oZ(A,Q,B){let I=A[Q];if(typeof I!=="function")return;try{A[Q]=B}catch{Object.defineProperty(A,Q,{value:B,writable:!0,configurable:!0,enumerable:!0})}if(A.default===I)try{A.default=B}catch{Object.defineProperty(A,"default",{value:B,writable:!0,configurable:!0,enumerable:!0})}}function js(A,Q=!1){return!(Q||A&&!A.startsWith("/")&&!A.match(/^[A-Z]:/)&&!A.startsWith(".")&&!A.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&A!==void 0&&!A.includes("node_modules/")}function Rs(A){let Q=/^\s*[-]{4,}$/,B=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,I=/at (?:async )?(.+?) \(data:(.*?),/;return(C)=>{let E=C.match(I);if(E)return{filename:``,function:E[1]};let Y=C.match(B);if(Y){let J,F,G,D,Z;if(Y[1]){G=Y[1];let K=G.lastIndexOf(".");if(G[K-1]===".")K--;if(K>0){J=G.slice(0,K),F=G.slice(K+1);let V=J.indexOf(".Module");if(V>0)G=G.slice(V+1),J=J.slice(0,V)}D=void 0}if(F)D=J,Z=F;if(F==="")Z=void 0,G=void 0;if(G===void 0)Z=Z||j3,G=D?`${D}.${Z}`:Z;let W=pi(Y[2]),U=Y[5]==="native";if(!W&&Y[5]&&!U)W=Y[5];let w=W?elA(W):void 0;return{filename:w??W,module:w&&A?.(w),function:G,lineno:Ns(Y[3]),colno:Ns(Y[4]),in_app:js(W||"",U)}}if(C.match(Q))return{filename:C};return}}function J7(A){return[90,Rs(A)]}function Ns(A){return parseInt(A||"",10)||void 0}function elA(A){try{return decodeURI(A)}catch{return}}class cB{constructor(A){this._maxSize=A,this._cache=new Map}get size(){return this._cache.size}get(A){let Q=this._cache.get(A);if(Q===void 0)return;return this._cache.delete(A),this._cache.set(A,Q),Q}set(A,Q){if(this._cache.size>=this._maxSize){let B=this._cache.keys().next().value;this._cache.delete(B)}this._cache.set(A,Q)}remove(A){let Q=this._cache.get(A);if(Q)this._cache.delete(A);return Q}clear(){this._cache.clear()}keys(){return Array.from(this._cache.keys())}values(){let A=[];return this._cache.forEach((Q)=>A.push(Q)),A}}var uB=P(j(),1),QE=P(MA(),1),lB=P(JA(),1);import{errorMonitor as NnA}from"node:events";var t=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var Z0=P(j(),1);import{subscribe as $nA}from"node:diagnostics_channel";var bX="@sentry/instrumentation-http",Je=1048576;function Fe(A,Q,B,I){let C=0,E=[];t&&$.log(I,"Patching request.on");let Y=new WeakMap,J=B==="small"?1000:B==="medium"?1e4:Je;try{A.on=new Proxy(A.on,{apply:(F,G,D)=>{let[Z,W,...U]=D;if(Z==="data"){t&&$.log(I,`Handling request.on("data") with maximum body size of ${J}b`);let w=new Proxy(W,{apply:(K,V,z)=>{try{let M=z[0],L=Buffer.from(M);if(C{let[,Z]=D,W=Y.get(Z);if(W){Y.delete(Z);let U=D.slice();return U[1]=W,Reflect.apply(F,G,U)}return Reflect.apply(F,G,D)}}),A.on("end",()=>{try{let F=Buffer.concat(E).toString("utf-8");if(F){let D=Buffer.byteLength(F,"utf-8")>J?`${Buffer.from(F).subarray(0,J-3).toString("utf-8")}...`:F;Q.setSDKProcessingMetadata({normalizedRequest:{data:D}})}}catch(F){if(t)$.error(I,"Error building captured request body",F)}})}catch(F){if(t)$.error(I,"Error patching request to capture body",F)}}var Ge=Z0.createContextKey("sentry_http_server_instrumented"),j7="Http.Server",N7=new Map,De=new WeakSet;function Ze(A,Q){EQ(A,"_startSpanCallback",new WeakRef(Q))}var HnA=(A={})=>{let Q={sessions:A.sessions??!0,sessionFlushingDelayMS:A.sessionFlushingDelayMS??60000,maxRequestBodySize:A.maxRequestBodySize??"medium",ignoreRequestBody:A.ignoreRequestBody};return{name:j7,setupOnce(){$nA("http.server.request.start",(I)=>{MnA(I.server,Q)})},afterAllSetup(B){if(t&&B.getIntegrationByName("Http"))$.warn("It seems that you have manually added `httpServerIntegration` while `httpIntegration` is also present. Make sure to remove `httpServerIntegration` when adding `httpIntegration`.")}}},oF=HnA;function MnA(A,{ignoreRequestBody:Q,maxRequestBodySize:B,sessions:I,sessionFlushingDelayMS:C}){let E=A.emit;if(De.has(E))return;let Y=new Proxy(E,{apply(J,F,G){if(G[0]!=="request")return J.apply(F,G);let D=g();if(Z0.context.active().getValue(Ge)||!D)return J.apply(F,G);t&&$.log(j7,"Handling incoming request");let Z=AA().clone(),W=G[1],U=G[2],w=yZ(W),K=W.ip||W.socket?.remoteAddress,V=W.url||"/";if(B!=="none"&&!Q?.(V,W))Fe(W,Z,B,j7);Z.setSDKProcessingMetadata({normalizedRequest:w,ipAddress:K});let z=(W.method||"GET").toUpperCase(),M=rC(V),L=`${z} ${M}`;if(Z.setTransactionName(L),I&&D)LnA(D,{requestIsolationScope:Z,response:U,sessionFlushingDelayMS:C??60000});return MF(Z,()=>{let N={traceId:UB(),sampleRand:jQ(),propagationSpanId:XB()};FA().setPropagationContext({...N}),Z.setPropagationContext({...N});let T=Z0.propagation.extract(Z0.context.active(),w.headers).setValue(Ge,!0);return Z0.context.with(T,()=>{D.emit("httpServerRequest",W,U,w);let y=W._startSpanCallback?.deref();if(y)return y(()=>J.apply(F,G));return J.apply(F,G)})})}});De.add(Y),A.emit=Y}function LnA(A,{requestIsolationScope:Q,response:B,sessionFlushingDelayMS:I}){Q.setSDKProcessingMetadata({requestSession:{status:"ok"}}),B.once("close",()=>{let C=Q.getScopeData().sdkProcessingMetadata.requestSession;if(A&&C){t&&$.log(`Recorded request session with status: ${C.status}`);let E=new Date;E.setSeconds(0,0);let Y=E.toISOString(),J=N7.get(A),F=J?.[Y]||{exited:0,crashed:0,errored:0};if(F[{ok:"exited",crashed:"crashed",errored:"errored"}[C.status]]++,J)J[Y]=F;else{t&&$.log("Opened new request session aggregate.");let G={[Y]:F};N7.set(A,G);let D=()=>{clearTimeout(W),Z(),N7.delete(A);let U=Object.entries(G).map(([w,K])=>({started:w,exited:K.exited,errored:K.errored,crashed:K.crashed}));A.sendSession({aggregates:U})},Z=A.on("flush",()=>{t&&$.log("Sending request session aggregate due to client flush"),D()}),W=setTimeout(()=>{t&&$.log("Sending request session aggregate due to flushing schedule"),D()},I).unref()}}})}var We="Http.ServerSpans",jnA=(A={})=>{let Q=A.ignoreStaticAssets??!0,B=A.ignoreIncomingRequests,I=A.ignoreStatusCodes??[[401,404],[301,303],[305,399]],{onSpanCreated:C}=A,{requestHook:E,responseHook:Y,applyCustomAttributesOnSpan:J}=A.instrumentation??{};return{name:We,setup(F){if(typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__)return;F.on("httpServerRequest",(G,D,Z)=>{let W=G,U=D;Ze(W,(K)=>{if(OnA(W,{ignoreStaticAssets:Q,ignoreIncomingRequests:B}))return t&&$.log(We,"Skipping span creation for incoming request",W.url),K();let V=Z.url||W.url||"/",z=gZ(V),M=W.headers,L=M["user-agent"],N=M["x-forwarded-for"],T=W.httpVersion,y=M.host,f=y?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost",vA=F.tracer,uA=V.startsWith("https")?"https":"http",dQ=Z.method||W.method?.toUpperCase()||"GET",YB=z?z.pathname:rC(V),FQ=`${dQ} ${YB}`,oA=vA.startSpan(FQ,{kind:uB.SpanKind.SERVER,attributes:{[u]:"http.server",[x]:"auto.http.otel.http","sentry.http.prefetch":RnA(W)||void 0,"http.url":V,"http.method":Z.method,"http.target":z?`${z.pathname}${z.search}`:YB,"http.host":y,"net.host.name":f,"http.client_ip":typeof N==="string"?N.split(",")[0]:void 0,"http.user_agent":L,"http.scheme":uA,"http.flavor":T,"net.transport":T?.toUpperCase()==="QUIC"?"ip_udp":"ip_tcp",...TnA(W),...CX(Z.headers||{},F.getOptions().sendDefaultPii??!1)}});E?.(oA,W),Y?.(oA,U),J?.(oA,W,U),C?.(oA,W,U);let gG={type:QE.RPCType.HTTP,span:oA};return uB.context.with(QE.setRPCMetadata(uB.trace.setSpan(uB.context.active(),oA),gG),()=>{uB.context.bind(uB.context.active(),W),uB.context.bind(uB.context.active(),U);let KE=!1;function S0(W9){if(KE)return;KE=!0;let vM=SnA(W,U);oA.setAttributes(vM),oA.setStatus(W9),oA.end();let xM=vM["http.route"];if(xM)AA().setTransactionName(`${W.method?.toUpperCase()||"GET"} ${xM}`)}return U.on("close",()=>{S0(UC(U.statusCode))}),U.on(NnA,()=>{let W9=UC(U.statusCode);S0(W9.code===BA?W9:{code:BA})}),K()})})})},processEvent(F){if(F.type==="transaction"){let G=F.contexts?.trace?.data?.["http.response.status_code"];if(typeof G==="number"){if(gnA(G,I))return t&&$.log("Dropping transaction due to status code",G),null}}return F},afterAllSetup(F){if(!t)return;if(F.getIntegrationByName("Http"))$.warn("It seems that you have manually added `httpServerSpansIntergation` while `httpIntegration` is also present. Make sure to remove `httpIntegration` when adding `httpServerSpansIntegration`.");if(!F.getIntegrationByName("Http.Server"))$.error("It seems that you have manually added `httpServerSpansIntergation` without adding `httpServerIntegration`. This is a requiement for spans to be created - please add the `httpServerIntegration` integration.")}}},aF=jnA;function RnA(A){return A.headers["next-router-prefetch"]==="1"}function qnA(A){let Q=rC(A);if(Q.match(/\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/))return!0;if(Q.match(/^\/(robots\.txt|sitemap\.xml|manifest\.json|browserconfig\.xml)$/))return!0;return!1}function OnA(A,{ignoreStaticAssets:Q,ignoreIncomingRequests:B}){if(QE.isTracingSuppressed(uB.context.active()))return!0;let I=A.url,C=A.method?.toUpperCase();if(C==="OPTIONS"||C==="HEAD"||!I)return!0;if(Q&&C==="GET"&&qnA(I))return!0;if(B?.(I,A))return!0;return!1}function TnA(A){let Q=PnA(A.headers);if(Q==null)return{};if(knA(A.headers))return{["http.request_content_length"]:Q};else return{["http.request_content_length_uncompressed"]:Q}}function PnA(A){let Q=A["content-length"];if(Q===void 0)return null;let B=parseInt(Q,10);if(isNaN(B))return null;return B}function knA(A){let Q=A["content-encoding"];return!!Q&&Q!=="identity"}function SnA(A,Q){let{socket:B}=A,{statusCode:I,statusMessage:C}=Q,E={[lB.ATTR_HTTP_RESPONSE_STATUS_CODE]:I,[lB.SEMATTRS_HTTP_STATUS_CODE]:I,"http.status_text":C?.toUpperCase()},Y=QE.getRPCMetadata(uB.context.active());if(B){let{localAddress:J,localPort:F,remoteAddress:G,remotePort:D}=B;E[lB.SEMATTRS_NET_HOST_IP]=J,E[lB.SEMATTRS_NET_HOST_PORT]=F,E[lB.SEMATTRS_NET_PEER_IP]=G,E["net.peer.port"]=D}if(E[lB.SEMATTRS_HTTP_STATUS_CODE]=I,E["http.status_text"]=(C||"").toUpperCase(),Y?.type===QE.RPCType.HTTP&&Y.route!==void 0){let J=Y.route;E[lB.ATTR_HTTP_ROUTE]=J}return E}function gnA(A,Q){return Q.some((B)=>{if(typeof B==="number")return B===A;let[I,C]=B;return A>=I&&A<=C})}var rQ=P(j(),1),Ke=P(MA(),1),eZ=P(s(),1),$Q=P(JA(),1);import{subscribe as R7,unsubscribe as q7}from"node:diagnostics_channel";import{errorMonitor as we}from"node:events";function tZ(A,Q){if(!A)return Q;let B=$Y(A),I=$Y(Q);if(!I)return A;let C={...B};return Object.entries(I).forEach(([E,Y])=>{if(E.startsWith("sentry-")||!C[E])C[E]=Y}),l1(C)}var sF="@sentry/instrumentation-http";function Ue(A,Q){let B=ynA(A),I=Q?.statusCode,C=nZ(I);xB({category:"http",data:{status_code:I,...B},type:"http",level:C},{event:"response",request:A,response:Q})}function mX(A,Q){let B=dX(A),{tracePropagationTargets:I,propagateTraceparent:C}=g()?.getOptions()||{},E=gY(B,I,Q)?SY({propagateTraceparent:C}):void 0;if(!E)return;let{"sentry-trace":Y,baggage:J,traceparent:F}=E;if(Y&&!A.getHeader("sentry-trace"))try{A.setHeader("sentry-trace",Y),t&&$.log(sF,"Added sentry-trace header to outgoing request")}catch(G){t&&$.error(sF,"Failed to add sentry-trace header to outgoing request:",ZC(G)?G.message:"Unknown error")}if(F&&!A.getHeader("traceparent"))try{A.setHeader("traceparent",F),t&&$.log(sF,"Added traceparent header to outgoing request")}catch(G){t&&$.error(sF,"Failed to add traceparent header to outgoing request:",ZC(G)?G.message:"Unknown error")}if(J){let G=tZ(A.getHeader("baggage"),J);if(G)try{A.setHeader("baggage",G),t&&$.log(sF,"Added baggage header to outgoing request")}catch(D){t&&$.error(sF,"Failed to add baggage header to outgoing request:",ZC(D)?D.message:"Unknown error")}}}function ynA(A){try{let Q=A.getHeader("host")||A.host,B=new URL(A.path,`${A.protocol}//${Q}`),I=tE(B.toString()),C={url:eE(I),"http.method":A.method||"GET"};if(I.search)C["http.query"]=I.search;if(I.hash)C["http.fragment"]=I.hash;return C}catch{return{}}}function Xe(A){return{method:A.method,protocol:A.protocol,host:A.host,hostname:A.host,path:A.path,headers:A.getHeaders()}}function dX(A){let Q=A.getHeader("host")||A.host,B=A.protocol,I=A.path;return`${B}//${Q}${I}`}class rF extends eZ.InstrumentationBase{constructor(A={}){super(bX,EA,A);this._propagationDecisionMap=new cB(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){let A=!1,Q=(Y)=>{let J=Y;this._onOutgoingRequestFinish(J.request,J.response)},B=(Y)=>{let J=Y;this._onOutgoingRequestFinish(J.request,void 0)},I=(Y)=>{let J=Y;this._onOutgoingRequestCreated(J.request)},C=(Y)=>{if(A)return Y;if(A=!0,R7("http.client.response.finish",Q),R7("http.client.request.error",B),this.getConfig().propagateTraceInOutgoingRequests||this.getConfig().createSpansForOutgoingRequests)R7("http.client.request.created",I);return Y},E=()=>{q7("http.client.response.finish",Q),q7("http.client.request.error",B),q7("http.client.request.created",I)};return[new eZ.InstrumentationNodeModuleDefinition("http",["*"],C,E),new eZ.InstrumentationNodeModuleDefinition("https",["*"],C,E)]}_startSpanForOutgoingRequest(A){let Q=A.once,[B,I]=hnA(A),C=MZ({name:B,attributes:I,onlyIfParent:!0});this.getConfig().outgoingRequestHook?.(C,A);let E=new Proxy(Q,{apply(F,G,D){let[Z]=D;if(Z!=="response")return F.apply(G,D);let W=rQ.context.active(),U=rQ.trace.setSpan(W,C);return rQ.context.with(U,()=>{return F.apply(G,D)})}});A.once=E;let Y=!1,J=(F)=>{if(Y)return;Y=!0,C.setStatus(F),C.end()};return A.prependListener("response",(F)=>{if(A.listenerCount("response")<=1)F.resume();rQ.context.bind(rQ.context.active(),F);let G=fnA(F);C.setAttributes(G),this.getConfig().outgoingResponseHook?.(C,F),this.getConfig().outgoingRequestApplyCustomAttributes?.(C,A,F);let D=(Z=!1)=>{this._diag.debug("outgoingRequest on end()");let W=Z||typeof F.statusCode!=="number"||F.aborted&&!F.complete?{code:rQ.SpanStatusCode.ERROR}:UC(F.statusCode);J(W)};F.on("end",()=>{D()}),F.on(we,(Z)=>{this._diag.debug("outgoingRequest on response error()",Z),D(!0)})}),A.on("close",()=>{J({code:rQ.SpanStatusCode.UNSET})}),A.on(we,(F)=>{this._diag.debug("outgoingRequest on request error()",F),J({code:rQ.SpanStatusCode.ERROR})}),C}_onOutgoingRequestFinish(A,Q){t&&$.log(bX,"Handling finished outgoing request");let B=this.getConfig().breadcrumbs,I=typeof B>"u"?!0:B,C=this._ignoreOutgoingRequestsMap.get(A)??this._shouldIgnoreOutgoingRequest(A);if(this._ignoreOutgoingRequestsMap.set(A,C),I&&!C)Ue(A,Q)}_onOutgoingRequestCreated(A){t&&$.log(bX,"Handling outgoing request created");let Q=this._ignoreOutgoingRequestsMap.get(A)??this._shouldIgnoreOutgoingRequest(A);if(this._ignoreOutgoingRequestsMap.set(A,Q),Q)return;let B=this.getConfig().createSpansForOutgoingRequests&&(this.getConfig().spans??!0),I=this.getConfig().propagateTraceInOutgoingRequests;if(B){let C=this._startSpanForOutgoingRequest(A);if(I&&C.isRecording()){let E=rQ.trace.setSpan(rQ.context.active(),C);rQ.context.with(E,()=>{mX(A,this._propagationDecisionMap)})}else if(I)mX(A,this._propagationDecisionMap)}else if(I)mX(A,this._propagationDecisionMap)}_shouldIgnoreOutgoingRequest(A){if(Ke.isTracingSuppressed(rQ.context.active()))return!0;let Q=this.getConfig().ignoreOutgoingRequests;if(!Q)return!1;let B=Xe(A),I=dX(A);return Q(I,B)}}function hnA(A){let Q=dX(A),[B,I]=N6(gZ(Q),"client","auto.http.otel.http",A),C=A.getHeader("user-agent");return[B,{[u]:"http.client","otel.kind":"CLIENT",[$Q.ATTR_USER_AGENT_ORIGINAL]:C,[$Q.ATTR_URL_FULL]:Q,"http.url":Q,"http.method":A.method,"http.target":A.path||"/","net.peer.name":A.host,"http.host":A.getHeader("host"),...I}]}function fnA(A){let{statusCode:Q,statusMessage:B,httpVersion:I,socket:C}=A,E=I.toUpperCase()!=="QUIC"?"ip_tcp":"ip_udp",Y={[$Q.ATTR_HTTP_RESPONSE_STATUS_CODE]:Q,[$Q.ATTR_NETWORK_PROTOCOL_VERSION]:I,"http.flavor":I,[$Q.ATTR_NETWORK_TRANSPORT]:E,"net.transport":E,["http.status_text"]:B?.toUpperCase(),"http.status_code":Q,..._nA(A)};if(C){let{remoteAddress:J,remotePort:F}=C;Y[$Q.ATTR_NETWORK_PEER_ADDRESS]=J,Y[$Q.ATTR_NETWORK_PEER_PORT]=F,Y["net.peer.ip"]=J,Y["net.peer.port"]=F}return Y}function _nA(A){let Q=vnA(A.headers);if(Q==null)return{};if(xnA(A.headers))return{[$Q.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH]:Q};else return{[$Q.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED]:Q}}function vnA(A){let Q=A["content-length"];if(typeof Q==="number")return Q;if(typeof Q!=="string")return;let B=parseInt(Q,10);if(isNaN(B))return;return B}function xnA(A){let Q=A["content-encoding"];return!!Q&&Q!=="identity"}var He=P(j(),1),Me=P(MA(),1),Le=P(s(),1);import*as tF from"diagnostics_channel";var WI=S3(process.versions.node),BE=WI.major,AW=WI.minor;var cX="sentry-trace",O7="baggage",Ve=/baggage: (.*)\r\n/;function ze(A,Q){let B=uX(A.origin,A.path),{tracePropagationTargets:I,propagateTraceparent:C}=g()?.getOptions()||{},E=gY(B,I,Q)?SY({propagateTraceparent:C}):void 0;if(!E)return;let{"sentry-trace":Y,baggage:J,traceparent:F}=E;if(Array.isArray(A.headers)){let G=A.headers;if(Y&&!G.includes(cX))G.push(cX,Y);if(F&&!G.includes("traceparent"))G.push("traceparent",F);let D=G.findIndex((Z)=>Z===O7);if(J&&D===-1)G.push(O7,J);else if(J){let Z=G[D+1],W=tZ(Z,J);if(W)G[D+1]=W}}else{let G=A.headers;if(Y&&!G.includes(`${cX}:`))A.headers+=`${cX}: ${Y}\r -`;if(F&&!G.includes("traceparent:"))A.headers+=`traceparent: ${F}\r -`;let D=A.headers.match(Ve)?.[1];if(J&&!D)A.headers+=`${O7}: ${J}\r -`;else if(J){let Z=tZ(D,J);if(Z)A.headers=A.headers.replace(Ve,`baggage: ${Z}\r -`)}}}function $e(A,Q){let B=bnA(A),I=Q.statusCode,C=nZ(I);xB({category:"http",data:{status_code:I,...B},type:"http",level:C},{event:"response",request:A,response:Q})}function bnA(A){try{let Q=uX(A.origin,A.path),B=tE(Q),I={url:eE(B),"http.method":A.method||"GET"};if(B.search)I["http.query"]=B.search;if(B.hash)I["http.fragment"]=B.hash;return I}catch{return{}}}function uX(A,Q="/"){try{return new URL(Q,A).toString()}catch{let B=`${A}`;if(B.endsWith("/")&&Q.startsWith("/"))return`${B}${Q.slice(1)}`;if(!B.endsWith("/")&&!Q.startsWith("/"))return`${B}/${Q}`;return`${B}${Q}`}}class eF extends Le.InstrumentationBase{constructor(A={}){super("@sentry/instrumentation-node-fetch",EA,A);this._channelSubs=[],this._propagationDecisionMap=new cB(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){return}disable(){super.disable(),this._channelSubs.forEach((A)=>A.unsubscribe()),this._channelSubs=[]}enable(){if(super.enable(),this._channelSubs=this._channelSubs||[],this._channelSubs.length>0)return;this._subscribeToChannel("undici:request:create",this._onRequestCreated.bind(this)),this._subscribeToChannel("undici:request:headers",this._onResponseHeaders.bind(this))}_onRequestCreated({request:A}){let Q=this.getConfig();if(Q.enabled===!1)return;let I=this._shouldIgnoreOutgoingRequest(A);if(this._ignoreOutgoingRequestsMap.set(A,I),I)return;if(Q.tracePropagation!==!1)ze(A,this._propagationDecisionMap)}_onResponseHeaders({request:A,response:Q}){let B=this.getConfig();if(B.enabled===!1)return;let C=B.breadcrumbs,E=typeof C>"u"?!0:C,Y=this._ignoreOutgoingRequestsMap.get(A);if(E&&!Y)$e(A,Q)}_subscribeToChannel(A,Q){let B=BE>18||BE===18&&AW>=19,I;if(B)tF.subscribe?.(A,Q),I=()=>tF.unsubscribe?.(A,Q);else{let C=tF.channel(A);C.subscribe(Q),I=()=>C.unsubscribe(Q)}this._channelSubs.push({name:A,unsubscribe:I})}_shouldIgnoreOutgoingRequest(A){if(Me.isTracingSuppressed(He.context.active()))return!0;let Q=uX(A.origin,A.path),B=this.getConfig().ignoreOutgoingRequests;if(typeof B!=="function"||!Q)return!1;return B(Q)}}var DIA=P(he(),1);var QA=P(JA(),1);var $B=P(j(),1),k=P(j(),1),tQ=P(MA(),1),U0=P(a7(),1),Iz="sentry.parentIsRemote",JG="sentry.graphql.operation";function Cz(A){if("parentSpanId"in A)return A.parentSpanId;else if("parentSpanContext"in A)return A.parentSpanContext?.spanId;return}function Ez(A){let Q=A;return!!Q.attributes&&typeof Q.attributes==="object"}function qsA(A){return typeof A.kind==="number"}function OsA(A){return!!A.status}function hBA(A){return!!A.name}function TsA(A){if(!Ez(A))return{};let Q=A.attributes[QA.ATTR_URL_FULL]||A.attributes[QA.SEMATTRS_HTTP_URL],B={url:Q,"http.method":A.attributes[QA.ATTR_HTTP_REQUEST_METHOD]||A.attributes[QA.SEMATTRS_HTTP_METHOD]};if(!B["http.method"]&&B.url)B["http.method"]="GET";try{if(typeof Q==="string"){let I=tE(Q);if(B.url=eE(I),I.search)B["http.query"]=I.search;if(I.hash)B["http.fragment"]=I.hash}}catch{}return B}function PsA(A){if(qsA(A))return A.kind;return k.SpanKind.INTERNAL}var s7="sentry-trace",r7="baggage",Yz="sentry.dsc",Jz="sentry.sampled_not_recording",fBA="sentry.url",ksA="sentry.sample_rand",SsA="sentry.sample_rate",Fz=k.createContextKey("sentry_scopes"),t7=k.createContextKey("sentry_fork_isolation_scope"),e7=k.createContextKey("sentry_fork_set_scope"),Az=k.createContextKey("sentry_fork_set_isolation_scope"),_BA="_scopeContext";function FG(A){return A.getValue(Fz)}function vBA(A,Q){return A.setValue(Fz,Q)}function gsA(A,Q){EQ(A,_BA,Q)}function GW(A){return A[_BA]}function YG(A){let{traceFlags:Q,traceState:B}=A,I=B?B.get(Jz)==="1":!1;if(Q===k.TraceFlags.SAMPLED)return!0;if(I)return!1;let C=B?B.get(Yz):void 0,E=C?oC(C):void 0;if(E?.sampled==="true")return!0;if(E?.sampled==="false")return!1;return}function xBA(A,Q,B){let I=Q[QA.ATTR_HTTP_REQUEST_METHOD]||Q[QA.SEMATTRS_HTTP_METHOD];if(I)return hsA({attributes:Q,name:A,kind:B},I);let C=Q[QA.ATTR_DB_SYSTEM_NAME]||Q[QA.SEMATTRS_DB_SYSTEM],E=typeof Q[u]==="string"&&Q[u].startsWith("cache.");if(C&&!E)return ysA({attributes:Q,name:A});let Y=Q[_A]==="custom"?"custom":"route";if(Q[QA.SEMATTRS_RPC_SERVICE])return{...FW(A,Q,"route"),op:"rpc"};if(Q[QA.SEMATTRS_MESSAGING_SYSTEM])return{...FW(A,Q,Y),op:"message"};let G=Q[QA.SEMATTRS_FAAS_TRIGGER];if(G)return{...FW(A,Q,Y),op:G.toString()};return{op:void 0,description:A,source:"custom"}}function bBA(A){let Q=Ez(A)?A.attributes:{},B=hBA(A)?A.name:"",I=PsA(A);return xBA(B,Q,I)}function ysA({attributes:A,name:Q}){let B=A[FI];if(typeof B==="string")return{op:"db",description:B,source:A[_A]||"custom"};if(A[_A]==="custom")return{op:"db",description:Q,source:"custom"};let I=A[QA.SEMATTRS_DB_STATEMENT];return{op:"db",description:I?I.toString():Q,source:"task"}}function hsA({name:A,kind:Q,attributes:B},I){let C=["http"];switch(Q){case k.SpanKind.CLIENT:C.push("client");break;case k.SpanKind.SERVER:C.push("server");break}if(B["sentry.http.prefetch"])C.push("prefetch");let{urlPath:E,url:Y,query:J,fragment:F,hasRoute:G}=_sA(B,Q);if(!E)return{...FW(A,B),op:C.join(".")};let D=B[JG],Z=`${I} ${E}`,W=D?`${Z} (${fsA(D)})`:Z,U=G||E==="/"?"route":"url",w={};if(Y)w.url=Y;if(J)w["http.query"]=J;if(F)w["http.fragment"]=F;let K=Q===k.SpanKind.CLIENT||Q===k.SpanKind.SERVER,z=!`${B[x]||"manual"}`.startsWith("auto"),M=B[_A]==="custom",L=B[FI],N=!M&&L==null&&(K||!z),{description:T,source:y}=N?{description:W,source:U}:FW(A,B);return{op:C.join("."),description:T,source:y,data:w}}function fsA(A){if(Array.isArray(A)){let Q=A.slice().sort();if(Q.length<=5)return Q.join(", ");else return`${Q.slice(0,5).join(", ")}, +${Q.length-5}`}return`${A}`}function _sA(A,Q){let B=A[QA.SEMATTRS_HTTP_TARGET],I=A[QA.SEMATTRS_HTTP_URL]||A[QA.ATTR_URL_FULL],C=A[QA.ATTR_HTTP_ROUTE],E=typeof I==="string"?tE(I):void 0,Y=E?eE(E):void 0,J=E?.search||void 0,F=E?.hash||void 0;if(typeof C==="string")return{urlPath:C,url:Y,query:J,fragment:F,hasRoute:!0};if(Q===k.SpanKind.SERVER&&typeof B==="string")return{urlPath:rC(B),url:Y,query:J,fragment:F,hasRoute:!1};if(E)return{urlPath:Y,url:Y,query:J,fragment:F,hasRoute:!1};if(typeof B==="string")return{urlPath:rC(B),url:Y,query:J,fragment:F,hasRoute:!1};return{urlPath:void 0,url:Y,query:J,fragment:F,hasRoute:!1}}function FW(A,Q,B="custom"){let I=Q[_A]||B,C=Q[FI];if(C&&typeof C==="string")return{description:C,source:I};return{description:A,source:I}}function mBA(A){A.on("createDsc",(Q,B)=>{if(!B)return;let E=v(B).data[_A],{description:Y}=hBA(B)?bBA(B):{description:void 0};if(E!=="url"&&Y)Q.transaction=Y;if(AQ()){let J=YG(B.spanContext());Q.sampled=J==null?void 0:String(J)}})}function dBA(){return k.trace.getActiveSpan()}var X0=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;function cBA({dsc:A,sampled:Q}){let B=A?zY(A):void 0,I=new tQ.TraceState,C=B?I.set(Yz,B):I;return Q===!1?C.set(Jz,"1"):C}var uBA=new Set;function lBA(){return Array.from(uBA)}function Y8(A){uBA.add(A)}class Gz extends tQ.W3CBaggagePropagator{constructor(){super();Y8("SentryPropagator"),this._urlMatchesTargetsMap=new cB(100)}inject(A,Q,B){if(tQ.isTracingSuppressed(A)){X0&&$.log("[Tracing] Not injecting trace data for url because tracing is suppressed.");return}let I=k.trace.getSpan(A),C=I&&bsA(I),{tracePropagationTargets:E,propagateTraceparent:Y}=g()?.getOptions()||{};if(!gY(C,E,this._urlMatchesTargetsMap)){X0&&$.log("[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:",C);return}let J=xsA(Q),F=k.propagation.getBaggage(A)||k.propagation.createBaggage({}),{dynamicSamplingContext:G,traceId:D,spanId:Z,sampled:W}=pBA(A);if(J){let U=$Y(J);if(U)Object.entries(U).forEach(([w,K])=>{F=F.setEntry(w,{value:K})})}if(G)F=Object.entries(G).reduce((U,[w,K])=>{if(K)return U.setEntry(`${jF}${w}`,{value:K});return U},F);if(D&&D!==k.INVALID_TRACEID){if(B.set(Q,s7,oE(D,Z,W)),Y)B.set(Q,"traceparent",aE(D,Z,W))}super.inject(k.propagation.setBaggage(A,F),Q,B)}extract(A,Q,B){let I=B.get(Q,s7),C=B.get(Q,r7),E=I?Array.isArray(I)?I[0]:I:void 0;return nBA(iBA(A,{sentryTrace:E,baggage:C}))}fields(){return[s7,r7,"traceparent"]}}function pBA(A,Q={}){let B=k.trace.getSpan(A);if(B?.spanContext().isRemote){let J=B.spanContext();return{dynamicSamplingContext:QQ(B),traceId:J.traceId,spanId:void 0,sampled:YG(J)}}if(B){let J=B.spanContext();return{dynamicSamplingContext:QQ(B),traceId:J.traceId,spanId:J.spanId,sampled:YG(J)}}let I=Q.scope||FG(A)?.scope||FA(),C=Q.client||g(),E=I.getPropagationContext();return{dynamicSamplingContext:C?wC(C,I):void 0,traceId:E.traceId,spanId:E.propagationSpanId,sampled:E.sampled}}function iBA(A,{sentryTrace:Q,baggage:B}){let I=GZ(Q,B),{traceId:C,parentSpanId:E,sampled:Y,dsc:J}=I,F=g(),G=oC(B);if(!E||F&&!c3(F,G?.org_id))return A;let D=msA({traceId:C,spanId:E,sampled:Y,dsc:J});return k.trace.setSpanContext(A,D)}function vsA(A,Q,B){let I=nBA(iBA(A,Q));return k.context.with(I,B)}function nBA(A){let Q=FG(A),B={scope:Q?Q.scope:FA().clone(),isolationScope:Q?Q.isolationScope:AA()};return vBA(A,B)}function xsA(A){try{let Q=A[r7];return Array.isArray(Q)?Q.join(","):Q}catch{return}}function bsA(A){let Q=v(A).data,B=Q[QA.SEMATTRS_HTTP_URL]||Q[QA.ATTR_URL_FULL];if(typeof B==="string")return B;let I=A.spanContext().traceState?.get(fBA);if(I)return I;return}function msA({spanId:A,traceId:Q,sampled:B,dsc:I}){let C=cBA({dsc:I,sampled:B});return{traceId:Q,spanId:A,isRemote:!0,traceFlags:B?k.TraceFlags.SAMPLED:k.TraceFlags.NONE,traceState:C}}function oBA(A,Q,B){let I=sBA(),{name:C,parentSpan:E}=A;return AIA(E)(()=>{let J=tBA(A.scope,A.forceTransaction),G=A.onlyIfParent&&!k.trace.getSpan(J)?tQ.suppressTracing(J):J,D=rBA(A);if(!AQ()){let Z=tQ.isTracingSuppressed(G)?G:tQ.suppressTracing(G);return k.context.with(Z,()=>{return I.startActiveSpan(C,D,Z,(W)=>{return k.context.with(J,()=>{return xI(()=>Q(W),()=>{if(v(W).status===void 0)W.setStatus({code:k.SpanStatusCode.ERROR})},B?()=>W.end():void 0)})})})}return I.startActiveSpan(C,D,G,(Z)=>{return xI(()=>Q(Z),()=>{if(v(Z).status===void 0)Z.setStatus({code:k.SpanStatusCode.ERROR})},B?()=>Z.end():void 0)})})}function dsA(A,Q){return oBA(A,Q,!0)}function csA(A,Q){return oBA(A,(B)=>Q(B,()=>B.end()),!1)}function usA(A){let Q=sBA(),{name:B,parentSpan:I}=A;return AIA(I)(()=>{let E=tBA(A.scope,A.forceTransaction),J=A.onlyIfParent&&!k.trace.getSpan(E)?tQ.suppressTracing(E):E,F=rBA(A);if(!AQ())J=tQ.isTracingSuppressed(J)?J:tQ.suppressTracing(J);return Q.startSpan(B,F,J)})}function aBA(A,Q){let B=A?k.trace.setSpan(k.context.active(),A):k.trace.deleteSpan(k.context.active());return k.context.with(B,()=>Q(FA()))}function sBA(){return g()?.tracer||k.trace.getTracer("@sentry/opentelemetry",EA)}function rBA(A){let{startTime:Q,attributes:B,kind:I,op:C,links:E}=A,Y=typeof Q==="number"?lsA(Q):Q;return{attributes:C?{[u]:C,...B}:B,kind:I,links:E,startTime:Y}}function lsA(A){return A<9999999999?A*1000:A}function tBA(A,Q){let B=psA(A),I=k.trace.getSpan(B);if(!I)return B;if(!Q)return B;let C=k.trace.deleteSpan(B),{spanId:E,traceId:Y}=I.spanContext(),J=YG(I.spanContext()),F=bA(I),G=QQ(F),D=cBA({dsc:G,sampled:J}),Z={traceId:Y,spanId:E,isRemote:!0,traceFlags:J?k.TraceFlags.SAMPLED:k.TraceFlags.NONE,traceState:D};return k.trace.setSpanContext(C,Z)}function psA(A){if(A){let Q=GW(A);if(Q)return Q}return k.context.active()}function isA(A,Q){return vsA(k.context.active(),A,Q)}function eBA(A,Q){let B=GW(Q),I=B&&k.trace.getSpan(B),C=I?sE(I):VY(Q);return[I?QQ(I):wC(A,Q),C]}function AIA(A){return A!==void 0?(Q)=>{return aBA(A,Q)}:(Q)=>Q()}function nsA(A){let Q=tQ.suppressTracing(k.context.active());return k.context.with(Q,A)}function QIA(A){A.on("preprocessEvent",(Q)=>{let B=dBA();if(!B||Q.type==="transaction")return;Q.contexts={trace:sE(B),...Q.contexts};let I=bA(B);return Q.sdkProcessingMetadata={dynamicSamplingContext:QQ(I),...Q.sdkProcessingMetadata},Q})}function osA({span:A,scope:Q,client:B,propagateTraceparent:I}={}){let C=(Q&&GW(Q))??$B.context.active();if(A){let{scope:D}=_I(A);C=D&&GW(D)||$B.trace.setSpan($B.context.active(),A)}let{traceId:E,spanId:Y,sampled:J,dynamicSamplingContext:F}=pBA(C,{scope:Q,client:B}),G={"sentry-trace":oE(E,Y,J),baggage:zY(F)};if(I)G.traceparent=aE(E,Y,J);return G}function BIA(){function A(){let J=$B.context.active(),F=FG(J);if(F)return F;return{scope:$F(),isolationScope:hB()}}function Q(J){let F=$B.context.active();return $B.context.with(F,()=>{return J(E())})}function B(J,F){let G=GW(J)||$B.context.active();return $B.context.with(G.setValue(e7,J),()=>{return F(J)})}function I(J){let F=$B.context.active();return $B.context.with(F.setValue(t7,!0),()=>{return J(Y())})}function C(J,F){let G=$B.context.active();return $B.context.with(G.setValue(Az,J),()=>{return F(Y())})}function E(){return A().scope}function Y(){return A().isolationScope}y3({withScope:Q,withSetScope:B,withSetIsolationScope:C,withIsolationScope:I,getCurrentScope:E,getIsolationScope:Y,startSpan:dsA,startSpanManual:csA,startInactiveSpan:usA,getActiveSpan:dBA,suppressTracing:nsA,getTraceData:osA,continueTrace:isA,withActiveSpan:aBA})}function IIA(A){class Q extends A{constructor(...B){super(...B);Y8("SentryContextManager")}with(B,I,C,...E){let Y=FG(B),J=Y?.scope||FA(),F=Y?.isolationScope||AA(),G=B.getValue(t7)===!0,D=B.getValue(e7),Z=B.getValue(Az),W=D||J.clone(),U=Z||(G?F.clone():F),V=vBA(B,{scope:W,isolationScope:U}).deleteValue(t7).deleteValue(e7).deleteValue(Az);return gsA(W,V),super.with(V,I,C,...E)}getAsyncLocalStorageLookup(){return{asyncLocalStorage:this._asyncLocalStorage,contextSymbol:Fz}}}return Q}function asA(A){let Q=new Map;for(let B of A)ssA(Q,B);return Array.from(Q,function([B,I]){return I})}function CIA(A){return A.attributes[Iz]!==!0?Cz(A):void 0}function ssA(A,Q){let B=Q.spanContext().spanId,I=CIA(Q);if(!I){Qz(A,{id:B,span:Q,children:[]});return}let C=rsA(A,I),E=Qz(A,{id:B,span:Q,parentNode:C,children:[]});C.children.push(E)}function rsA(A,Q){let B=A.get(Q);if(B)return B;return Qz(A,{id:Q,children:[]})}function Qz(A,Q){let B=A.get(Q.id);if(B?.span)return B;if(B&&!B.span)return B.span=Q.span,B.parentNode=Q.parentNode,B;return A.set(Q.id,Q),Q}var EIA={"1":"cancelled","2":"unknown_error","3":"invalid_argument","4":"deadline_exceeded","5":"not_found","6":"already_exists","7":"permission_denied","8":"resource_exhausted","9":"failed_precondition","10":"aborted","11":"out_of_range","12":"unimplemented","13":"internal_error","14":"unavailable","15":"data_loss","16":"unauthenticated"},tsA=(A)=>{return Object.values(EIA).includes(A)};function YIA(A){let Q=Ez(A)?A.attributes:{},B=OsA(A)?A.status:void 0;if(B){if(B.code===k.SpanStatusCode.OK)return{code:KF};else if(B.code===k.SpanStatusCode.ERROR){if(typeof B.message>"u"){let C=SBA(Q);if(C)return C}if(B.message&&tsA(B.message))return{code:BA,message:B.message};else return{code:BA,message:"internal_error"}}}let I=SBA(Q);if(I)return I;if(B?.code===k.SpanStatusCode.UNSET)return{code:KF};else return{code:BA,message:"unknown_error"}}function SBA(A){let Q=A[QA.ATTR_HTTP_RESPONSE_STATUS_CODE]||A[QA.SEMATTRS_HTTP_STATUS_CODE],B=A[QA.SEMATTRS_RPC_GRPC_STATUS_CODE],I=typeof Q==="number"?Q:typeof Q==="string"?parseInt(Q):void 0;if(typeof I==="number")return UC(I);if(typeof B==="string")return{code:BA,message:EIA[B]||"unknown_error"};return}var gBA=1000,yBA=300;class JIA{constructor(A){this._finishedSpanBucketSize=A?.timeout||yBA,this._finishedSpanBuckets=Array(this._finishedSpanBucketSize).fill(void 0),this._lastCleanupTimestampInS=Math.floor(YI()/1000),this._spansToBucketEntry=new WeakMap,this._sentSpans=new Map,this._debouncedFlush=j6(this.flush.bind(this),1,{maxWait:100})}export(A){let Q=Math.floor(YI()/1000);if(this._lastCleanupTimestampInS!==Q){let E=0;if(this._finishedSpanBuckets.forEach((Y,J)=>{if(Y&&Y.timestampInS<=Q-this._finishedSpanBucketSize)E+=Y.spans.size,this._finishedSpanBuckets[J]=void 0}),E>0)X0&&$.log(`SpanExporter dropped ${E} spans because they were pending for more than ${this._finishedSpanBucketSize} seconds.`);this._lastCleanupTimestampInS=Q}let B=Q%this._finishedSpanBucketSize,I=this._finishedSpanBuckets[B]||{timestampInS:Q,spans:new Set};this._finishedSpanBuckets[B]=I,I.spans.add(A),this._spansToBucketEntry.set(A,I);let C=CIA(A);if(!C||this._sentSpans.has(C))this._debouncedFlush()}flush(){let A=this._finishedSpanBuckets.flatMap((E)=>E?Array.from(E.spans):[]);this._flushSentSpanCache();let Q=this._maybeSend(A),B=Q.size,I=A.length-B;X0&&$.log(`SpanExporter exported ${B} spans, ${I} spans are waiting for their parent spans to finish`);let C=YI()+yBA*1000;for(let E of Q){this._sentSpans.set(E.spanContext().spanId,C);let Y=this._spansToBucketEntry.get(E);if(Y)Y.spans.delete(E)}this._debouncedFlush.cancel()}clear(){this._finishedSpanBuckets=this._finishedSpanBuckets.fill(void 0),this._sentSpans.clear(),this._debouncedFlush.cancel()}_maybeSend(A){let Q=asA(A),B=new Set,I=this._getCompletedRootNodes(Q);for(let C of I){let E=C.span;B.add(E);let Y=ArA(E);if(C.parentNode&&this._sentSpans.has(C.parentNode.id)){let G=Y.contexts?.trace?.data;if(G)G["sentry.parent_span_already_sent"]=!0}let J=Y.spans||[];for(let G of C.children)Bz(G,J,B);Y.spans=J.length>gBA?J.sort((G,D)=>G.start_timestamp-D.start_timestamp).slice(0,gBA):J;let F=NY(E.events);if(F)Y.measurements=F;qZ(Y)}return B}_flushSentSpanCache(){let A=YI();for(let[Q,B]of this._sentSpans.entries())if(B<=A)this._sentSpans.delete(Q)}_nodeIsCompletedRootNodeOrHasSentParent(A){return!!A.span&&(!A.parentNode||this._sentSpans.has(A.parentNode.id))}_getCompletedRootNodes(A){return A.filter((Q)=>this._nodeIsCompletedRootNodeOrHasSentParent(Q))}}function esA(A){let Q=A.attributes,B=Q[x],I=Q[u],C=Q[_A];return{origin:B,op:I,source:C}}function ArA(A){let{op:Q,description:B,data:I,origin:C="manual",source:E}=FIA(A),Y=_I(A),J=A.attributes[JI],F={[_A]:E,[JI]:J,[u]:Q,[x]:C,...I,...GIA(A.attributes)},{links:G}=A,{traceId:D,spanId:Z}=A.spanContext(),W=Cz(A),U=YIA(A),w={parent_span_id:W,span_id:Z,trace_id:D,data:F,origin:C,op:Q,status:MY(U),links:HY(G)},K=F[QA.ATTR_HTTP_RESPONSE_STATUS_CODE],V=typeof K==="number"?{response:{status_code:K}}:void 0;return{contexts:{trace:w,otel:{resource:A.resource.attributes},...V},spans:[],start_timestamp:wB(A.startTime),timestamp:wB(A.endTime),transaction:B,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:Y.scope,capturedSpanIsolationScope:Y.isolationScope,sampleRate:J,dynamicSamplingContext:QQ(A)},...E&&{transaction_info:{source:E}}}}function Bz(A,Q,B){let I=A.span;if(I)B.add(I);if(!I){A.children.forEach((L)=>{Bz(L,Q,B)});return}let E=I.spanContext().spanId,Y=I.spanContext().traceId,J=Cz(I),{attributes:F,startTime:G,endTime:D,links:Z}=I,{op:W,description:U,data:w,origin:K="manual"}=FIA(I),V={[x]:K,[u]:W,...GIA(F),...w},z=YIA(I),M={span_id:E,trace_id:Y,data:V,description:U,parent_span_id:J,start_timestamp:wB(G),timestamp:wB(D)||void 0,status:MY(z),op:W,origin:K,measurements:NY(I.events),links:HY(Z)};Q.push(M),A.children.forEach((L)=>{Bz(L,Q,B)})}function FIA(A){let{op:Q,source:B,origin:I}=esA(A),{op:C,description:E,source:Y,data:J}=bBA(A),F=Q||C,G=B||Y,D={...J,...QrA(A)};return{op:F,description:E,source:G,origin:I,data:D}}function GIA(A){let Q={...A};return delete Q[JI],delete Q[Iz],delete Q[FI],Q}function QrA(A){let Q=A.attributes,B={};if(A.kind!==k.SpanKind.INTERNAL)B["otel.kind"]=k.SpanKind[A.kind];let I=Q[QA.SEMATTRS_HTTP_STATUS_CODE];if(I)B[QA.ATTR_HTTP_RESPONSE_STATUS_CODE]=I;let C=TsA(A);if(C.url)B.url=C.url;if(C["http.query"])B["http.query"]=C["http.query"].slice(1);if(C["http.fragment"])B["http.fragment"]=C["http.fragment"].slice(1);return B}function BrA(A,Q){let B=k.trace.getSpan(Q),I=FG(Q);if(B&&!B.spanContext().isRemote)RF(B,A);if(B?.spanContext().isRemote)A.setAttribute(Iz,!0);if(Q===k.ROOT_CONTEXT)I={scope:$F(),isolationScope:hB()};if(I)EZ(A,I.scope,I.isolationScope);XZ(A),g()?.emit("spanStart",A)}function IrA(A){wZ(A),g()?.emit("spanEnd",A)}class Dz{constructor(A){Y8("SentrySpanProcessor"),this._exporter=new JIA(A)}async forceFlush(){this._exporter.flush()}async shutdown(){this._exporter.clear()}onStart(A,Q){BrA(A,Q)}onEnd(A){IrA(A),this._exporter.export(A)}}class Zz{constructor(A){this._client=A,Y8("SentrySampler")}shouldSample(A,Q,B,I,C,E){let Y=this._client.getOptions(),J=YrA(A),F=J?.spanContext();if(!AQ(Y))return EG({decision:void 0,context:A,spanAttributes:C});let G=C[QA.SEMATTRS_HTTP_METHOD]||C[QA.ATTR_HTTP_REQUEST_METHOD];if(I===k.SpanKind.CLIENT&&G&&(!J||F?.isRemote))return EG({decision:void 0,context:A,spanAttributes:C});let D=J?CrA(J,Q,B):void 0;if(!(!J||F?.isRemote))return EG({decision:D?U0.SamplingDecision.RECORD_AND_SAMPLED:U0.SamplingDecision.NOT_RECORD,context:A,spanAttributes:C});let{description:W,data:U,op:w}=xBA(B,C,I),K={...U,...C};if(w)K[u]=w;let V={decision:!0};if(this._client.emit("beforeSampling",{spanAttributes:K,spanName:W,parentSampled:D,parentContext:F},V),!V.decision)return EG({decision:void 0,context:A,spanAttributes:C});let{isolationScope:z}=FG(A)??{},M=F?.traceState?F.traceState.get(Yz):void 0,L=M?oC(M):void 0,N=fB(L?.sample_rand)??jQ(),[T,y,f]=KZ(Y,{name:W,attributes:K,normalizedRequest:z?.getScopeData().sdkProcessingMetadata.normalizedRequest,parentSampled:D,parentSampleRate:fB(L?.sample_rate)},N),vA=`${G}`.toUpperCase();if(vA==="OPTIONS"||vA==="HEAD")return X0&&$.log(`[Tracing] Not sampling span because HTTP method is '${vA}' for ${B}`),EG({decision:U0.SamplingDecision.NOT_RECORD,context:A,spanAttributes:C,sampleRand:N,downstreamTraceSampleRate:0});if(!T&&D===void 0)X0&&$.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),this._client.recordDroppedEvent("sample_rate","transaction");return{...EG({decision:T?U0.SamplingDecision.RECORD_AND_SAMPLED:U0.SamplingDecision.NOT_RECORD,context:A,spanAttributes:C,sampleRand:N,downstreamTraceSampleRate:f?y:void 0}),attributes:{[JI]:f?y:void 0}}}toString(){return"SentrySampler"}}function CrA(A,Q,B){let I=A.spanContext();if(k.isSpanContextValid(I)&&I.traceId===Q){if(I.isRemote){let E=YG(A.spanContext());return X0&&$.log(`[Tracing] Inheriting remote parent's sampled decision for ${B}: ${E}`),E}let C=YG(I);return X0&&$.log(`[Tracing] Inheriting parent's sampled decision for ${B}: ${C}`),C}return}function EG({decision:A,context:Q,spanAttributes:B,sampleRand:I,downstreamTraceSampleRate:C}){let E=ErA(Q,B);if(C!==void 0)E=E.set(SsA,`${C}`);if(I!==void 0)E=E.set(ksA,`${I}`);if(A==null)return{decision:U0.SamplingDecision.NOT_RECORD,traceState:E};if(A===U0.SamplingDecision.NOT_RECORD)return{decision:A,traceState:E.set(Jz,"1")};return{decision:A,traceState:E}}function ErA(A,Q){let C=k.trace.getSpan(A)?.spanContext()?.traceState||new tQ.TraceState,E=Q[QA.SEMATTRS_HTTP_URL]||Q[QA.ATTR_URL_FULL];if(E&&typeof E==="string")C=C.set(fBA,E);return C}function YrA(A){let Q=k.trace.getSpan(A);return Q&&k.isSpanContextValid(Q.spanContext())?Q:void 0}var J8=IIA(DIA.AsyncLocalStorageContextManager);var DW=P(j(),1);function Wz(){DW.diag.disable(),DW.diag.setLogger({error:$.error,warn:$.warn,info:$.log,debug:$.log,verbose:$.log},DW.DiagLogLevel.DEBUG)}var Uz=P(s(),1),ZW={};function S(A,Q,B){if(B)return FrA(A,Q,B);return JrA(A,Q)}function JrA(A,Q){return Object.assign((B)=>{let I=ZW[A];if(I){if(B)I.setConfig(B);return I}let C=Q(B);return ZW[A]=C,Uz.registerInstrumentations({instrumentations:[C]}),C},{id:A})}function FrA(A,Q,B){return Object.assign((I)=>{let C=B(I),E=ZW[A];if(E)return E.setConfig(C),E;let Y=new Q(C);return ZW[A]=Y,Uz.registerInstrumentations({instrumentations:[Y]}),Y},{id:A})}function WW(A){let Q=!1,B=[];if(!GrA(A))Q=!0;else{let C=A._wrap;A._wrap=(...E)=>{return Q=!0,B.forEach((Y)=>Y()),B=[],C(...E)}}return(C)=>{if(Q)C();else B.push(C)}}function GrA(A){return typeof A._wrap==="function"}import*as Xz from"node:diagnostics_channel";var DrA="ChildProcess",wz=R((A={})=>{return{name:DrA,setup(){Xz.channel("child_process").subscribe((Q)=>{if(Q&&typeof Q==="object"&&"process"in Q)ZrA(Q.process,A)}),Xz.channel("worker_threads").subscribe((Q)=>{if(Q&&typeof Q==="object"&&"worker"in Q)WrA(Q.worker,A)})}}});function ZrA(A,Q){let B=!1,I;A.on("spawn",()=>{if(A.spawnfile==="/usr/bin/sw_vers"){B=!0;return}if(I={spawnfile:A.spawnfile},Q.includeChildProcessArgs)I.spawnargs=A.spawnargs}).on("exit",(C)=>{if(!B){if(B=!0,C!==null&&C!==0)xB({category:"child_process",message:`Child process exited with code '${C}'`,level:C===0?"info":"warning",data:I})}}).on("error",(C)=>{if(!B)B=!0,xB({category:"child_process",message:`Child process errored with '${C.message}'`,level:"error",data:I})})}function WrA(A,Q){let B;A.on("online",()=>{B=A.threadId}).on("error",(I)=>{if(Q.captureWorkerErrors!==!1)n(I,{mechanism:{type:"auto.child_process.worker_thread",handled:!1,data:{threadId:String(B)}}});else xB({category:"worker_thread",message:`Worker thread errored with '${I.message}'`,level:"error",data:{threadId:B}})})}import{execFile as UrA}from"node:child_process";import{readFile as XrA,readdir as wrA}from"node:fs";import*as MQ from"node:os";import{join as KrA}from"node:path";import{promisify as WIA}from"node:util";var VrA=WIA(XrA),zrA=WIA(wrA),$rA="Context",HrA=(A={})=>{let Q,B={app:!0,os:!0,device:!0,culture:!0,cloudResource:!0,...A};async function I(E){if(Q===void 0)Q=C();let Y=MrA(await Q);return E.contexts={...E.contexts,app:{...Y.app,...E.contexts?.app},os:{...Y.os,...E.contexts?.os},device:{...Y.device,...E.contexts?.device},culture:{...Y.culture,...E.contexts?.culture},cloud_resource:{...Y.cloud_resource,...E.contexts?.cloud_resource}},E}async function C(){let E={};if(B.os)E.os=await LrA();if(B.app)E.app=jrA();if(B.device)E.device=RrA(B.device);if(B.culture){let Y=NrA();if(Y)E.culture=Y}if(B.cloudResource)E.cloud_resource=SrA();return E}return{name:$rA,processEvent(E){return I(E)}}},Kz=R(HrA);function MrA(A){if(A.app?.app_memory)A.app.app_memory=process.memoryUsage().rss;if(A.app?.free_memory&&typeof process.availableMemory==="function"){let Q=process.availableMemory?.();if(Q!=null)A.app.free_memory=Q}if(A.device?.free_memory)A.device.free_memory=MQ.freemem();return A}async function LrA(){let A=MQ.platform();switch(A){case"darwin":return PrA();case"linux":return krA();default:return{name:qrA[A]||A,version:MQ.release()}}}function NrA(){try{if(typeof process.versions.icu!=="string")return;let A=new Date(900000000);if(new Intl.DateTimeFormat("es",{month:"long"}).format(A)==="enero"){let B=Intl.DateTimeFormat().resolvedOptions();return{locale:B.locale,timezone:B.timeZone}}}catch{}return}function jrA(){let A=process.memoryUsage().rss,B={app_start_time:new Date(Date.now()-process.uptime()*1000).toISOString(),app_memory:A};if(typeof process.availableMemory==="function"){let I=process.availableMemory?.();if(I!=null)B.free_memory=I}return B}function RrA(A){let Q={},B;try{B=MQ.uptime()}catch{}if(typeof B==="number")Q.boot_time=new Date(Date.now()-B*1000).toISOString();if(Q.arch=MQ.arch(),A===!0||A.memory)Q.memory_size=MQ.totalmem(),Q.free_memory=MQ.freemem();if(A===!0||A.cpu){let I=MQ.cpus(),C=I?.[0];if(C)Q.processor_count=I.length,Q.cpu_description=C.model,Q.processor_frequency=C.speed}return Q}var qrA={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows",ohos:"OpenHarmony",android:"Android"},OrA=[{name:"fedora-release",distros:["Fedora"]},{name:"redhat-release",distros:["Red Hat Linux","Centos"]},{name:"redhat_version",distros:["Red Hat Linux"]},{name:"SuSE-release",distros:["SUSE Linux"]},{name:"lsb-release",distros:["Ubuntu Linux","Arch Linux"]},{name:"debian_version",distros:["Debian"]},{name:"debian_release",distros:["Debian"]},{name:"arch-release",distros:["Arch Linux"]},{name:"gentoo-release",distros:["Gentoo Linux"]},{name:"novell-release",distros:["SUSE Linux"]},{name:"alpine-release",distros:["Alpine Linux"]}],TrA={alpine:(A)=>A,arch:(A)=>HC(/distrib_release=(.*)/,A),centos:(A)=>HC(/release ([^ ]+)/,A),debian:(A)=>A,fedora:(A)=>HC(/release (..)/,A),mint:(A)=>HC(/distrib_release=(.*)/,A),red:(A)=>HC(/release ([^ ]+)/,A),suse:(A)=>HC(/VERSION = (.*)\n/,A),ubuntu:(A)=>HC(/distrib_release=(.*)/,A)};function HC(A,Q){let B=A.exec(Q);return B?B[1]:void 0}async function PrA(){let A={kernel_version:MQ.release(),name:"Mac OS X",version:`10.${Number(MQ.release().split(".")[0])-4}`};try{let Q=await new Promise((B,I)=>{UrA("/usr/bin/sw_vers",(C,E)=>{if(C){I(C);return}B(E)})});A.name=HC(/^ProductName:\s+(.*)$/m,Q),A.version=HC(/^ProductVersion:\s+(.*)$/m,Q),A.build=HC(/^BuildVersion:\s+(.*)$/m,Q)}catch{}return A}function ZIA(A){return A.split(" ")[0].toLowerCase()}async function krA(){let A={kernel_version:MQ.release(),name:"Linux"};try{let Q=await zrA("/etc"),B=OrA.find((J)=>Q.includes(J.name));if(!B)return A;let I=KrA("/etc",B.name),C=(await VrA(I,{encoding:"utf-8"})).toLowerCase(),{distros:E}=B;A.name=E.find((J)=>C.indexOf(ZIA(J))>=0)||E[0];let Y=ZIA(A.name);A.version=TrA[Y]?.(C)}catch{}return A}function SrA(){if(process.env.VERCEL)return{"cloud.provider":"vercel","cloud.region":process.env.VERCEL_REGION};else if(process.env.AWS_REGION)return{"cloud.provider":"aws","cloud.region":process.env.AWS_REGION,"cloud.platform":process.env.AWS_EXECUTION_ENV};else if(process.env.GCP_PROJECT)return{"cloud.provider":"gcp"};else if(process.env.ALIYUN_REGION_ID)return{"cloud.provider":"alibaba_cloud","cloud.region":process.env.ALIYUN_REGION_ID};else if(process.env.WEBSITE_SITE_NAME&&process.env.REGION_NAME)return{"cloud.provider":"azure","cloud.region":process.env.REGION_NAME};else if(process.env.IBM_CLOUD_REGION)return{"cloud.provider":"ibm_cloud","cloud.region":process.env.IBM_CLOUD_REGION};else if(process.env.TENCENTCLOUD_REGION)return{"cloud.provider":"tencent_cloud","cloud.region":process.env.TENCENTCLOUD_REGION,"cloud.account.id":process.env.TENCENTCLOUD_APPID,"cloud.availability_zone":process.env.TENCENTCLOUD_ZONE};else if(process.env.NETLIFY)return{"cloud.provider":"netlify"};else if(process.env.FLY_REGION)return{"cloud.provider":"fly.io","cloud.region":process.env.FLY_REGION};else if(process.env.DYNO)return{"cloud.provider":"heroku"};else return}import{createReadStream as grA}from"node:fs";import{createInterface as yrA}from"node:readline";var Vz=new cB(10),wIA=new cB(20),hrA=7,frA="ContextLines",_rA=1000,vrA=1e4;function xrA(A,Q,B){let I=A.get(Q);if(I===void 0)return A.set(Q,B),B;return I}function brA(A){if(A.startsWith("node:"))return!0;if(A.endsWith(".min.js"))return!0;if(A.endsWith(".min.cjs"))return!0;if(A.endsWith(".min.mjs"))return!0;if(A.startsWith("data:"))return!0;return!1}function mrA(A){if(A.lineno!==void 0&&A.lineno>vrA)return!0;if(A.colno!==void 0&&A.colno>_rA)return!0;return!1}function drA(A,Q){let B=Vz.get(A);if(B===void 0)return!1;for(let I=Q[0];I<=Q[1];I++)if(B[I]===void 0)return!1;return!0}function crA(A,Q){if(!A.length)return[];let B=0,I=A[0];if(typeof I!=="number")return[];let C=XIA(I,Q),E=[];while(!0){if(B===A.length-1){E.push(C);break}let Y=A[B+1];if(typeof Y!=="number")break;if(Y<=C[1])C[1]=Y+Q;else E.push(C),C=XIA(Y,Q);B++}return E}function urA(A,Q,B){return new Promise((I,C)=>{let E=grA(A),Y=yrA({input:E});function J(){E.destroy(),I()}let F=0,G=0,D=Q[G];if(D===void 0){J();return}let Z=D[0],W=D[1];function U(w){wIA.set(A,1),t&&$.error(`Failed to read file: ${A}. Error: ${w}`),Y.close(),Y.removeAllListeners(),J()}E.on("error",U),Y.on("error",U),Y.on("close",J),Y.on("line",(w)=>{if(F++,F=W){if(G===Q.length-1){Y.close(),Y.removeAllListeners();return}G++;let K=Q[G];if(K===void 0){Y.close(),Y.removeAllListeners();return}Z=K[0],W=K[1]}})})}async function lrA(A,Q){let B={};if(Q>0&&A.exception?.values)for(let E of A.exception.values){if(!E.stacktrace?.frames?.length)continue;for(let Y=E.stacktrace.frames.length-1;Y>=0;Y--){let J=E.stacktrace.frames[Y],F=J?.filename;if(!J||typeof F!=="string"||typeof J.lineno!=="number"||brA(F)||mrA(J))continue;if(!B[F])B[F]=[];B[F].push(J.lineno)}}let I=Object.keys(B);if(I.length==0)return A;let C=[];for(let E of I){if(wIA.get(E))continue;let Y=B[E];if(!Y)continue;Y.sort((G,D)=>G-D);let J=crA(Y,Q);if(J.every((G)=>drA(E,G)))continue;let F=xrA(Vz,E,{});C.push(urA(E,J,F))}if(await Promise.all(C).catch(()=>{t&&$.log("Failed to read one or more source files and resolve context lines")}),Q>0&&A.exception?.values){for(let E of A.exception.values)if(E.stacktrace?.frames&&E.stacktrace.frames.length>0)prA(E.stacktrace.frames,Q,Vz)}return A}function prA(A,Q,B){for(let I of A)if(I.filename&&I.context_line===void 0&&typeof I.lineno==="number"){let C=B.get(I.filename);if(C===void 0)continue;irA(I.lineno,I,Q,C)}}function UIA(A){delete A.pre_context,delete A.context_line,delete A.post_context}function irA(A,Q,B,I){if(Q.lineno===void 0||I===void 0){t&&$.error("Cannot resolve context for frame with no lineno or file contents");return}Q.pre_context=[];for(let E=KIA(A,B);E{let Q=A.frameContextLines!==void 0?A.frameContextLines:hrA;return{name:frA,processEvent(B){return lrA(B,Q)}}},zz=R(nrA);var zIA="Http",orA=S(`${zIA}.sentry`,(A)=>{return new rF(A)}),$IA=R((A={})=>{let Q={sessions:A.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:A.sessionFlushingDelayMS,ignoreRequestBody:A.ignoreIncomingRequestBody,maxRequestBodySize:A.maxIncomingRequestBodySize},B={ignoreIncomingRequests:A.ignoreIncomingRequests,ignoreStaticAssets:A.ignoreStaticAssets,ignoreStatusCodes:A.dropSpansForIncomingRequestStatusCodes},I={breadcrumbs:A.breadcrumbs,propagateTraceInOutgoingRequests:A.tracePropagation??!0,ignoreOutgoingRequests:A.ignoreOutgoingRequests},C=oF(Q),E=aF(B),Y=A.spans??!1,J=A.disableIncomingRequestSpans??!1,F=Y&&!J;return{name:zIA,setup(G){if(F)E.setup(G)},setupOnce(){C.setupOnce(),orA(I)},processEvent(G){return E.processEvent(G)}}});import{Worker as arA}from"node:worker_threads";var F8;async function G8(){if(F8===void 0)try{F8=!!(await import("node:inspector")).url()}catch{F8=!1}return F8}var UW="__SENTRY_ERROR_LOCAL_VARIABLES__";function MIA(A,Q,B){let I=0,C=5,E=0;return setInterval(()=>{if(E===0){if(I>A){if(C*=2,B(C),C>86400)C=86400;E=C}}else if(E-=1,E===0)Q();I=0},1000).unref(),()=>{I+=1}}function HIA(A){return A!==void 0&&(A.length===0||A==="?"||A==="")}function D8(A,Q){return A===Q||`Object.${A}`===Q||A===`Object.${Q}`||HIA(A)&&HIA(Q)}var srA="LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQ2LjAgKGU1ZmRjOWQpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=";function LIA(...A){$.log("[LocalVariables]",...A)}var NIA=R((A={})=>{function Q(E,Y){let J=(E.stacktrace?.frames||[]).filter((F)=>F.function!=="new Promise");for(let F=0;F{Y.terminate()}),Y.once("error",(J)=>{LIA("Worker error",J)}),Y.once("exit",(J)=>{LIA("Worker exit",J)}),Y.unref()}return{name:"LocalVariablesAsync",async setup(E){if(!E.getOptions().includeLocalVariables)return;if(await G8()){$.warn("Local variables capture has been disabled because the debugger was already enabled");return}let J={...A,debug:$.isEnabled()};I().then(()=>{try{C(J)}catch(F){$.error("Failed to start worker",F)}},(F)=>{$.error("Failed to start inspector",F)})},processEvent(E,Y){return B(E,Y)}}});function jIA(A){if(A===void 0)return;return A.slice(-10).reduce((Q,B)=>`${Q},${B.function},${B.lineno},${B.colno}`,"")}function rrA(A,Q){if(Q===void 0)return;return jIA(A(Q,1))}function RIA(A){let Q=[],B=!1;function I(Y){if(Q=[],B)return;B=!0,A(Y)}Q.push(I);function C(Y){Q.push(Y)}function E(Y){let J=Q.pop()||I;try{J(Y)}catch{I(Y)}}return{add:C,next:E}}class $z{constructor(A){this._session=A}static async create(A){if(A)return A;let Q=await import("node:inspector");return new $z(new Q.Session)}configureAndConnect(A,Q){this._session.connect(),this._session.on("Debugger.paused",(B)=>{A(B,()=>{this._session.post("Debugger.resume")})}),this._session.post("Debugger.enable"),this._session.post("Debugger.setPauseOnExceptions",{state:Q?"all":"uncaught"})}setPauseOnExceptions(A){this._session.post("Debugger.setPauseOnExceptions",{state:A?"all":"uncaught"})}getLocalVariables(A,Q){this._getProperties(A,(B)=>{let{add:I,next:C}=RIA(Q);for(let E of B)if(E.value?.objectId&&E.value.className==="Array"){let Y=E.value.objectId;I((J)=>this._unrollArray(Y,E.name,J,C))}else if(E.value?.objectId&&E.value.className==="Object"){let Y=E.value.objectId;I((J)=>this._unrollObject(Y,E.name,J,C))}else if(E.value)I((Y)=>this._unrollOther(E,Y,C));C({})})}_getProperties(A,Q){this._session.post("Runtime.getProperties",{objectId:A,ownProperties:!0},(B,I)=>{if(B)Q([]);else Q(I.result)})}_unrollArray(A,Q,B,I){this._getProperties(A,(C)=>{B[Q]=C.filter((E)=>E.name!=="length"&&!isNaN(parseInt(E.name,10))).sort((E,Y)=>parseInt(E.name,10)-parseInt(Y.name,10)).map((E)=>E.value?.value),I(B)})}_unrollObject(A,Q,B,I){this._getProperties(A,(C)=>{B[Q]=C.map((E)=>[E.name,E.value?.value]).reduce((E,[Y,J])=>{return E[Y]=J,E},{}),I(B)})}_unrollOther(A,Q,B){if(A.value){if("value"in A.value)if(A.value.value===void 0||A.value.value===null)Q[A.name]=`<${A.value.value}>`;else Q[A.name]=A.value.value;else if("description"in A.value&&A.value.type!=="function")Q[A.name]=`<${A.value.description}>`;else if(A.value.type==="undefined")Q[A.name]=""}B(Q)}}var trA="LocalVariables",erA=(A={},Q)=>{let B=new cB(20),I,C=!1;function E(G){let D=jIA(G.stacktrace?.frames);if(D===void 0)return;let Z=B.remove(D);if(Z===void 0)return;let W=(G.stacktrace?.frames||[]).filter((U)=>U.function!=="new Promise");for(let U=0;U= v18.");return}if(await G8()){$.warn("Local variables capture has been disabled because the debugger was already enabled");return}try{let W=await $z.create(Q),U=(K,{params:{reason:V,data:z,callFrames:M}},L)=>{if(V!=="exception"&&V!=="promiseRejection"){L();return}I?.();let N=rrA(K,z.description);if(N==null){L();return}let{add:T,next:y}=RIA((f)=>{B.set(N,f),L()});for(let f=0;foA.type==="local"),FQ=dQ.className==="global"||!dQ.className?uA:`${dQ.className}.${uA}`;if(YB?.object.objectId===void 0)T((oA)=>{oA[f]={function:FQ},y(oA)});else{let oA=YB.object.objectId;T((gG)=>W.getLocalVariables(oA,(KE)=>{gG[f]={function:FQ,vars:KE},y(gG)}))}}y([])},w=A.captureAllExceptions!==!1;if(W.configureAndConnect((K,V)=>U(D.stackParser,K,V),w),w){let K=A.maxExceptionsPerSecond||50;I=MIA(K,()=>{$.log("Local variables rate-limit lifted."),W.setPauseOnExceptions(!0)},(V)=>{$.log(`Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${V} seconds.`),W.setPauseOnExceptions(!1)})}C=!0}catch(W){$.log("The `LocalVariables` integration failed to start.",W)}}return{name:trA,setupOnce(){J=F()},async processEvent(G){if(await J,C)return Y(G);return G},_getCachedFramesCount(){return B.size},_getFirstCachedFrame(){return B.values()[0]}}},qIA=R(erA);var Hz=(A={})=>{return WI.major<19?qIA(A):NIA(A)};import{existsSync as AtA,readFileSync as SIA}from"node:fs";import{dirname as QtA,join as gIA}from"node:path";function XW(){try{return typeof TIA<"u"&&typeof yPQ<"u"}catch{return!1}}var OIA;function PIA(){if(XW())return!1;if(BE>=21||BE===20&&AW>=6||BE===18&&AW>=19)return!0;if(!OIA)OIA=!0,eA(()=>{console.warn(`[Sentry] You are using Node.js v${process.versions.node} in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.`)});return!1}var Mz,BtA="Modules",ItA=typeof __SENTRY_SERVER_MODULES__>"u"?{}:__SENTRY_SERVER_MODULES__,CtA=()=>{return{name:BtA,processEvent(A){return A.modules={...A.modules,...kIA()},A},getModules:kIA}},Lz=CtA;function EtA(){try{return H.cache?Object.keys(H.cache):[]}catch{return[]}}function YtA(){return{...ItA,...GtA(),...XW()?JtA():{}}}function JtA(){let A=H.main?.paths||[],Q=EtA(),B={},I=new Set;return Q.forEach((C)=>{let E=C,Y=()=>{let J=E;if(E=QtA(J),!E||J===E||I.has(J))return;if(A.indexOf(E)<0)return Y();let F=gIA(J,"package.json");if(I.add(J),!AtA(F))return Y();try{let G=JSON.parse(SIA(F,"utf8"));B[G.name]=G.version}catch{}};Y()}),B}function kIA(){if(!Mz)Mz=YtA();return Mz}function FtA(){try{let A=gIA(process.cwd(),"package.json");return JSON.parse(SIA(A,"utf8"))}catch{return{}}}function GtA(){let A=FtA();return{...A.dependencies,...A.devDependencies}}var DtA="NodeFetch",ZtA=S(`${DtA}.sentry`,eF,(A)=>{return A}),WtA=(A={})=>{return{name:"NodeFetch",setupOnce(){ZtA(A)}}},yIA=R(WtA);import{isMainThread as XtA}from"worker_threads";var UtA=2000;function wW(A){eA(()=>{console.error(A)});let Q=g();if(Q===void 0){t&&$.warn("No NodeClient was defined, we are exiting the process now."),global.process.exit(1);return}let B=Q.getOptions(),I=B?.shutdownTimeout&&B.shutdownTimeout>0?B.shutdownTimeout:UtA;Q.close(I).then((C)=>{if(!C)t&&$.warn("We reached the timeout for emptying the request buffer, still exiting now!");global.process.exit(1)},(C)=>{t&&$.error(C)})}var wtA="OnUncaughtException",Nz=R((A={})=>{let Q={exitEvenIfOtherHandlersAreRegistered:!1,...A};return{name:wtA,setup(B){if(!XtA)return;global.process.on("uncaughtException",KtA(B,Q))}}});function KtA(A,Q){let I=!1,C=!1,E=!1,Y,J=A.getOptions();return Object.assign((F)=>{let G=wW;if(Q.onFatalError)G=Q.onFatalError;else if(J.onFatalError)G=J.onFatalError;let Z=global.process.listeners("uncaughtException").filter((U)=>{return U.name!=="domainUncaughtExceptionClear"&&U.tag!=="sentry_tracingErrorCallback"&&U._errorHandler!==!0}).length===0,W=Q.exitEvenIfOtherHandlersAreRegistered||Z;if(!I){if(Y=F,I=!0,g()===A)n(F,{originalException:F,captureContext:{level:"fatal"},mechanism:{handled:!1,type:"auto.node.onuncaughtexception"}});if(!E&&W)E=!0,G(F)}else if(W){if(E)t&&$.warn("uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown"),wW(F);else if(!C)C=!0,setTimeout(()=>{if(!E)E=!0,G(Y,F)},2000)}},{_errorHandler:!0})}var VtA="OnUnhandledRejection",ztA=[{name:"AI_NoOutputGeneratedError"},{name:"AbortError"}],$tA=(A={})=>{let Q={mode:A.mode??"warn",ignore:[...ztA,...A.ignore??[]]};return{name:VtA,setup(B){global.process.on("unhandledRejection",NtA(B,Q))}}},jz=R($tA);function HtA(A){if(typeof A!=="object"||A===null)return{name:"",message:String(A??"")};let Q=A,B=typeof Q.name==="string"?Q.name:"",I=typeof Q.message==="string"?Q.message:String(A);return{name:B,message:I}}function MtA(A,Q){let B=A.name===void 0||lC(Q.name,A.name,!0),I=A.message===void 0||lC(Q.message,A.message);return B&&I}function LtA(A,Q){let B=HtA(Q);return A.some((I)=>MtA(I,B))}function NtA(A,Q){return function(I,C){if(g()!==A)return;if(LtA(Q.ignore??[],I))return;let E=Q.mode==="strict"?"fatal":"error",Y=I&&typeof I==="object"?I._sentry_active_span:void 0;(Y?(F)=>jY(Y,F):(F)=>F())(()=>{n(I,{originalException:C,captureContext:{extra:{unhandledPromiseRejection:!0},level:E},mechanism:{handled:!1,type:"auto.node.onunhandledrejection"}})}),jtA(I,Q.mode)}}function jtA(A,Q){let B="This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:";if(Q==="warn")eA(()=>{console.warn(B),console.error(A&&typeof A==="object"&&"stack"in A?A.stack:A)});else if(Q==="strict")eA(()=>{console.warn(B)}),wW(A)}var RtA="ProcessSession",Rz=R(()=>{return{name:RtA,setupOnce(){PZ(),process.on("beforeExit",()=>{if(AA().getSession()?.status!=="ok")PF()})}}});import*as hIA from"node:http";var qz="Spotlight",qtA=(A={})=>{let Q={sidecarUrl:A.sidecarUrl||"http://localhost:8969/stream"};return{name:qz,setup(B){try{}catch{}OtA(B,Q)}}},Oz=R(qtA);function OtA(A,Q){let B=TtA(Q.sidecarUrl);if(!B)return;let I=0;A.on("beforeEnvelope",(C)=>{if(I>3){$.warn("[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests");return}let E=zZ(C);RY(()=>{let Y=hIA.request({method:"POST",path:B.pathname,hostname:B.hostname,port:B.port,headers:{"Content-Type":"application/x-sentry-envelope"}},(J)=>{if(J.statusCode&&J.statusCode>=200&&J.statusCode<400)I=0;J.on("data",()=>{}),J.on("end",()=>{}),J.setEncoding("utf8")});Y.on("error",()=>{I++,$.warn("[Spotlight] Failed to send envelope to Spotlight Sidecar")}),Y.write(E),Y.end()})})}function TtA(A){try{return new URL(`${A}`)}catch{$.warn(`[Spotlight] Invalid sidecar URL: ${A}`);return}}import*as fIA from"node:util";var PtA="NodeSystemError";function ktA(A){if(!(A instanceof Error))return!1;if(!("errno"in A)||typeof A.errno!=="number")return!1;return fIA.getSystemErrorMap().has(A.errno)}var Tz=R((A={})=>{return{name:PtA,processEvent:(Q,B,I)=>{if(!ktA(B.originalException))return Q;let C=B.originalException,E={...C};if(!I.getOptions().sendDefaultPii&&A.includePaths!==!0)delete E.path,delete E.dest;Q.contexts={...Q.contexts,node_system_error:E};for(let Y of Q.exception?.values||[])if(Y.value){if(C.path&&Y.value.includes(C.path))Y.value=Y.value.replace(`'${C.path}'`,"").trim();if(C.dest&&Y.value.includes(C.dest))Y.value=Y.value.replace(`'${C.dest}'`,"").trim()}return Q}}});import*as gtA from"node:http";import*as ytA from"node:https";import{Readable as htA}from"node:stream";import{createGzip as ftA}from"node:zlib";import*as EE from"node:net";import*as Sz from"node:tls";import*as Pz from"node:http";var MC=Symbol("AgentBaseInternalState");class kz extends Pz.Agent{constructor(A){super(A);this[MC]={}}isSecureEndpoint(A){if(A){if(typeof A.secureEndpoint==="boolean")return A.secureEndpoint;if(typeof A.protocol==="string")return A.protocol==="https:"}let{stack:Q}=Error();if(typeof Q!=="string")return!1;return Q.split(` -`).some((B)=>B.indexOf("(https.js:")!==-1||B.indexOf("node:https:")!==-1)}createSocket(A,Q,B){let I={...Q,secureEndpoint:this.isSecureEndpoint(Q)};Promise.resolve().then(()=>this.connect(A,I)).then((C)=>{if(C instanceof Pz.Agent)return C.addRequest(A,I);this[MC].currentSocket=C,super.createSocket(A,Q,B)},B)}createConnection(){let A=this[MC].currentSocket;if(this[MC].currentSocket=void 0,!A)throw Error("No socket was returned in the `connect()` function");return A}get defaultPort(){return this[MC].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(A){if(this[MC])this[MC].defaultPort=A}get protocol(){return this[MC].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(A){if(this[MC])this[MC].protocol=A}}function Z8(...A){$.log("[https-proxy-agent:parse-proxy-response]",...A)}function _IA(A){return new Promise((Q,B)=>{let I=0,C=[];function E(){let D=A.read();if(D)G(D);else A.once("readable",E)}function Y(){A.removeListener("end",J),A.removeListener("error",F),A.removeListener("readable",E)}function J(){Y(),Z8("onend"),B(Error("Proxy connection ended before receiving CONNECT response"))}function F(D){Y(),Z8("onerror %o",D),B(D)}function G(D){C.push(D),I+=D.length;let Z=Buffer.concat(C,I),W=Z.indexOf(`\r +Name: ${BZ(I)} +Error:`,C)}}var V9=new Set([]);function fT(A){let B=NV("console",A);return hZ("console",HVA),B}function hT(A){for(let Q of A)V9.add(Q);return()=>{for(let Q of A)V9.delete(Q)}}function HVA(){if(!("console"in FA))return;DY.forEach(function(A){if(!(A in FA.console))return;QZ(FA.console,A,function(Q){return fI[A]=Q,function(...B){let I=B[0],C=fI[A],E=V9.size&&typeof I==="string"&&ZI(I,V9);if(!E)nF("console",{args:B,level:A});if(!E||q&&H.isEnabled())C?.apply(FA.console,B)}})})}function xT(A){return A==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(A)?A:"log"}var MVA=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/;function LVA(A){let Q=A.length>1024?`${A.slice(-1024)}`:A,B=MVA.exec(Q);return B?B.slice(1):[]}function jV(A){let Q=LVA(A),B=Q[0]||"",I=Q[1];if(!B&&!I)return".";if(I)I=I.slice(0,I.length-1);return B+I}var NVA="Console",RV=g((A={})=>{let Q=new Set(A.levels||DY);return{name:NVA,setup(B){let I=fT(({args:C,level:E})=>{if(f()!==B||!Q.has(E))return;jVA(E,C)});if(B.registerCleanup(I),A.filter){let C=hT(A.filter);B.registerCleanup(C)}}}});function jVA(A,Q){let B={category:"console",data:{arguments:Q,logger:"console"},level:xT(A),message:vT(Q)};if(A==="assert")if(Q[0]===!1){let I=Q.slice(1);B.message=I.length>0?`Assertion failed: ${vT(I)}`:"Assertion failed",B.data.arguments=I}else return;nB(B,{input:Q,level:A})}function vT(A){return"util"in FA&&typeof FA.util.format==="function"?FA.util.format(...A):U5(A," ")}var RVA="ConversationId",qVA=()=>{return{name:RVA,setup(A){A.on("spanStart",(Q)=>{let B=YA().getScopeData(),I=CA().getScopeData(),C=B.conversationId||I.conversationId;if(C){let{op:E,data:Y,description:J}=r(Q);if(!E?.startsWith("gen_ai.")&&!Y["ai.operationId"]&&!J?.startsWith("ai."))return;Q.setAttribute(zY,C)}})}}},qV=g(qVA);var PV=0,OV;function bT(A){let Q=Math.floor(A*1000);if(OV!==void 0&&Q!==OV)PV=0;let B=PV;return PV++,OV=Q,{key:"sentry.timestamp.sequence",value:{value:B,type:"integer"}}}function K9(A,Q){if(!Q)return[void 0,void 0];return lA(Q,()=>{let B=VA(),I=B?KC(B):KY(Q);return[B?GQ(B):mI(A,Q),I]})}function mT(){return typeof __SENTRY_BROWSER_BUNDLE__<"u"&&!!__SENTRY_BROWSER_BUNDLE__}function dT(){return!mT()&&Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]"}function D0(){return typeof window<"u"&&(!dT()||PVA())}function PVA(){return FA.process?.type==="renderer"}function OVA(A,Q){let B=Q?"auto":"never";return[{type:"log",item_count:A.length,content_type:"application/vnd.sentry.items.log+json"},{version:2,...D0()&&{ingest_settings:{infer_ip:B,infer_user_agent:B}},items:A}]}function cT(A,Q,B,I,C){let E={};if(Q?.sdk)E.sdk={name:Q.sdk.name,version:Q.sdk.version};if(!!B&&!!I)E.dsn=GB(I);return vQ(E,[OVA(A,C)])}function sF(A,Q){let B=Q??kVA(A)??[];if(B.length===0)return;let I=A.getOptions(),C=cT(B,I._metadata,I.tunnel,A.getDsn(),A.getDataCollectionOptions().userInfo);uT().set(A,[]),A.emit("flushLogs"),A.sendEnvelope(C)}function kVA(A){return uT().get(A)}function uT(){return GI("clientToLogBufferMap",()=>new WeakMap)}var aF={};$YA(aF,{gauge:()=>hVA,distribution:()=>xVA,count:()=>fVA});function gVA(A,Q){let B=Q?"auto":"never";return[{type:"trace_metric",item_count:A.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{version:2,...D0()&&{ingest_settings:{infer_ip:B,infer_user_agent:B}},items:A}]}function lT(A,Q,B,I,C){let E={};if(Q?.sdk)E.sdk={name:Q.sdk.name,version:Q.sdk.version};if(!!B&&!!I)E.dsn=GB(I);return vQ(E,[gVA(A,C)])}var TVA=1000;function FE(A,Q,B,I=!0){if(B&&(I||!(Q in A)))A[Q]=B}function _VA(A,Q){let B=gV(),I=iT(A);if(I===void 0)B.set(A,[Q]);else if(I.length>=TVA)kV(A,I),B.set(A,[Q]);else B.set(A,[...I,Q])}function yVA(A,Q,B){let{release:I,environment:C}=Q.getOptions(),E={...A.attributes};FE(E,"user.id",B.id,!1),FE(E,"user.email",B.email,!1),FE(E,"user.name",B.username,!1),FE(E,"sentry.release",I),FE(E,"sentry.environment",C);let{name:Y,version:J}=Q.getSdkMetadata()?.sdk??{};FE(E,"sentry.sdk.name",Y),FE(E,"sentry.sdk.version",J);let F=Q.getIntegrationByName("Replay"),G=F?.getReplayId(!0);if(FE(E,"sentry.replay_id",G),G&&F?.getRecordingMode()==="buffer")FE(E,"sentry._internal.replay_is_buffering",!0);return{...A,attributes:E}}function SVA(A,Q,B,I){let[,C]=K9(Q,B),E=BE(B),Y=E?E.spanContext().traceId:C?.trace_id,J=E?E.spanContext().spanId:void 0,F=RB(),G=bT(F);return{timestamp:F,trace_id:Y??"",span_id:J,name:A.name,type:A.type,unit:A.unit,value:A.value,attributes:{...fF(I),...fF(A.attributes,"skip-undefined"),[G.key]:G.value}}}function pT(A,Q){let B=Q?.scope??YA(),I=Q?.captureSerializedMetric??_VA,C=B?.getClient()??f();if(!C){q&&H.warn("No client available to capture metric.");return}let{_experiments:E,enableMetrics:Y,beforeSendMetric:J}=C.getOptions();if(!(Y??E?.enableMetrics??!0)){q&&H.warn("metrics option not enabled, metric will not be captured.");return}let{user:G,attributes:D}=Y0(CA(),B),Z=yVA(A,C,G);C.emit("processMetric",Z);let U=J||E?.beforeSendMetric,W=U?U(Z):Z;if(!W){q&&H.log("`beforeSendMetric` returned `null`, will not send metric.");return}let w=SVA(W,C,B,D);q&&H.log("[Metric]",w),I(C,w),C.emit("afterCaptureMetric",W)}function kV(A,Q){let B=Q??iT(A)??[];if(B.length===0)return;let I=A.getOptions(),C=lT(B,I._metadata,I.tunnel,A.getDsn(),A.getDataCollectionOptions().userInfo);gV().set(A,[]),A.emit("flushMetrics"),A.sendEnvelope(C)}function iT(A){return gV().get(A)}function gV(){return GI("clientToMetricBufferMap",()=>new WeakMap)}function TV(A,Q,B,I){pT({type:A,name:Q,value:B,unit:I?.unit,attributes:I?.attributes},{scope:I?.scope})}function fVA(A,Q=1,B){TV("counter",A,Q,B)}function hVA(A,Q,B){TV("gauge",A,Q,B)}function xVA(A,Q,B){TV("distribution",A,Q,B)}var oT="gen_ai.prompt",MC="gen_ai.system",pA="gen_ai.request.model",rF="gen_ai.request.stream",Z0="gen_ai.request.temperature",tF="gen_ai.request.max_tokens",U0="gen_ai.request.frequency_penalty",eF="gen_ai.request.presence_penalty",W0="gen_ai.request.top_p",z9="gen_ai.request.top_k",$9="gen_ai.request.encoding_format",H9="gen_ai.request.dimensions",LC="gen_ai.response.finish_reasons",DB="gen_ai.response.model",w0="gen_ai.response.id",nT="gen_ai.response.stop_reason",BQ="gen_ai.usage.input_tokens",MQ="gen_ai.usage.output_tokens",ZB="gen_ai.usage.total_tokens",DQ="gen_ai.operation.name",_Q="sentry.sdk_meta.gen_ai.input.messages.original_length",mQ="gen_ai.input.messages",sT="gen_ai.output.messages",QB="gen_ai.system_instructions",BB="gen_ai.response.text",wI="gen_ai.request.available_tools",aT="gen_ai.response.streaming",qB="gen_ai.response.tool_calls",SY="gen_ai.agent.name",rT="gen_ai.pipeline.name",X0="gen_ai.conversation.id",tT="gen_ai.usage.cache_creation_input_tokens",eT="gen_ai.usage.cache_read_input_tokens",_V="gen_ai.usage.input_tokens.cache_write",V0="gen_ai.usage.input_tokens.cached",A_="gen_ai.invoke_agent",K0="gen_ai.embeddings.input",yV="gen_ai.embeddings",SV="gen_ai.execute_tool",NC="gen_ai.tool.name",xZ="gen_ai.tool.call.id",vZ="gen_ai.tool.type",AG="gen_ai.tool.input",QG="gen_ai.tool.output",BG="gen_ai.tool.description";function z0(A){if(!A||typeof A!=="object")return!1;return bVA(A)||B_(A)||vVA(A)||I_(A)||C_(A)||mVA(A)||dVA(A)||cVA(A)||uVA(A)||lVA(A)||pVA(A)||iVA(A)}function vVA(A){if(!("image_url"in A))return!1;if(typeof A.image_url==="string")return A.image_url.startsWith("data:");return Q_(A)}function Q_(A){return"image_url"in A&&!!A.image_url&&typeof A.image_url==="object"&&"url"in A.image_url&&typeof A.image_url.url==="string"&&A.image_url.url.startsWith("data:")}function bVA(A){return"type"in A&&typeof A.type==="string"&&"source"in A&&z0(A.source)}function B_(A){return"inlineData"in A&&!!A.inlineData&&typeof A.inlineData==="object"&&"data"in A.inlineData&&typeof A.inlineData.data==="string"}function I_(A){return"type"in A&&A.type==="input_audio"&&"input_audio"in A&&!!A.input_audio&&typeof A.input_audio==="object"&&"data"in A.input_audio&&typeof A.input_audio.data==="string"}function C_(A){return"type"in A&&A.type==="file"&&"file"in A&&!!A.file&&typeof A.file==="object"&&"file_data"in A.file&&typeof A.file.file_data==="string"}function mVA(A){return"media_type"in A&&typeof A.media_type==="string"&&"data"in A}function dVA(A){return"type"in A&&A.type==="file"&&"mediaType"in A&&typeof A.mediaType==="string"&&"data"in A&&typeof A.data==="string"&&!A.data.startsWith("http://")&&!A.data.startsWith("https://")}function cVA(A){return"type"in A&&A.type==="image"&&"image"in A&&typeof A.image==="string"&&!A.image.startsWith("http://")&&!A.image.startsWith("https://")}function uVA(A){return"type"in A&&(A.type==="blob"||A.type==="base64")}function lVA(A){return"b64_json"in A}function pVA(A){return"type"in A&&"result"in A&&A.type==="image_generation"}function iVA(A){return"uri"in A&&typeof A.uri==="string"&&A.uri.startsWith("data:")}var bZ="[Blob substitute]",oVA=["image_url","data","content","b64_json","result","uri","image"];function fY(A){let Q={...A};if(z0(Q.source))Q.source=fY(Q.source);if(B_(A))Q.inlineData={...A.inlineData,data:bZ};if(Q_(A))Q.image_url={...A.image_url,url:bZ};if(I_(A))Q.input_audio={...A.input_audio,data:bZ};if(C_(A))Q.file={...A.file,file_data:bZ};for(let B of oVA)if(typeof Q[B]==="string")Q[B]=bZ;return Q}var Y_=20000,M9=(A)=>{return new TextEncoder().encode(A).length},hV=(A)=>{return M9(JSON.stringify(A))};function L9(A,Q){if(M9(A)<=Q)return A;let B=0,I=A.length,C="";while(B<=I){let E=Math.floor((B+I)/2),Y=A.slice(0,E);if(M9(Y)<=Q)C=Y,B=E+1;else I=E-1}return C}function nVA(A){if(typeof A==="string")return A;if("text"in A&&typeof A.text==="string")return A.text;return""}function E_(A,Q){if(typeof A==="string")return Q;return{...A,text:Q}}function sVA(A){return A!==null&&typeof A==="object"&&"content"in A&&typeof A.content==="string"}function J_(A){return A!==null&&typeof A==="object"&&"content"in A&&Array.isArray(A.content)}function F_(A){return A!==null&&typeof A==="object"&&"parts"in A&&Array.isArray(A.parts)&&A.parts.length>0}function aVA(A,Q){let B={...A,content:""},I=hV(B),C=Q-I;if(C<=0)return[];let E=L9(A.content,C);return[{...A,content:E}]}function rVA(A){if("parts"in A&&Array.isArray(A.parts))return{key:"parts",items:A.parts};if("content"in A&&Array.isArray(A.content))return{key:"content",items:A.content};return{key:null,items:[]}}function tVA(A,Q){let{key:B,items:I}=rVA(A);if(B===null||I.length===0)return[];let C=I.map((F)=>E_(F,"")),E=hV({...A,[B]:C}),Y=Q-E;if(Y<=0)return[];let J=[];for(let F of I){let G=nVA(F),D=M9(G);if(D<=Y)J.push(F),Y-=D;else if(J.length===0){let Z=L9(G,Y);if(Z)J.push(E_(F,Z));break}else break}if(J.length<=0)return[];else return[{...A,[B]:J}]}function eVA(A,Q){if(!A)return[];if(typeof A==="string"){let B=L9(A,Q);return B?[B]:[]}if(typeof A!=="object")return[];if(sVA(A))return aVA(A,Q);if(J_(A)||F_(A))return tVA(A,Q);return[]}function fV(A){return A.map((B)=>{let I=void 0;if(!!B&&typeof B==="object"){if(J_(B))I={...B,content:fV(B.content)};else if("content"in B&&z0(B.content))I={...B,content:fY(B.content)};if(F_(B))I={...I??B,parts:fV(B.parts)};if(z0(I))I=fY(I);else if(z0(B))I=fY(B)}return I??B})}function AKA(A,Q){if(!Array.isArray(A)||A.length===0)return A;let B=Q-2,I=A[A.length-1],C=fV([I]),E=C[0];if(hV(E)<=B)return C;return eVA(E,B)}function G_(A){return AKA(A,Y_)}function D_(A){return L9(A,Y_)}function sB(A){let Q=f()?.getDataCollectionOptions().genAI;return{...A,recordInputs:A?.recordInputs??Q?.inputs??!1,recordOutputs:A?.recordOutputs??Q?.outputs??!1}}function PQ(A){if(A!==void 0)return A;let Q=f();if(!Q)return!0;return!qQ(Q)&&Q.getOptions().streamGenAiSpans===!1}function IG(A,Q){return A?`${A}.${Q}`:Q}function Z_(A,Q,B,I,C){if(Q!==void 0)A.setAttributes({[BQ]:Q});if(B!==void 0)A.setAttributes({[MQ]:B});if(Q!==void 0||B!==void 0||I!==void 0||C!==void 0){let E=(Q??0)+(B??0)+(I??0)+(C??0);A.setAttributes({[ZB]:E})}}function hY(A,Q,B){if(!A.isRecording())return;let I={[aT]:!0};if(Q.responseId)I[w0]=Q.responseId;if(Q.responseModel)I[DB]=Q.responseModel;if(Q.promptTokens!==void 0)I[BQ]=Q.promptTokens;if(Q.completionTokens!==void 0)I[MQ]=Q.completionTokens;if(Q.totalTokens!==void 0)I[ZB]=Q.totalTokens;else if(Q.promptTokens!==void 0||Q.completionTokens!==void 0||Q.cacheCreationInputTokens!==void 0||Q.cacheReadInputTokens!==void 0)I[ZB]=(Q.promptTokens??0)+(Q.completionTokens??0)+(Q.cacheCreationInputTokens??0)+(Q.cacheReadInputTokens??0);if(Q.finishReasons.length)I[LC]=JSON.stringify(Q.finishReasons);if(B&&Q.responseTexts.length)I[BB]=Q.responseTexts.join("");if(B&&Q.toolCalls.length)I[qB]=JSON.stringify(Q.toolCalls);A.setAttributes(I),A.end()}function PB(A){if(typeof A==="string")return A;return JSON.stringify(A)}function dQ(A){if(typeof A==="string")return D_(A);if(Array.isArray(A)){let Q=G_(A);return JSON.stringify(Q)}return JSON.stringify(A)}function aB(A){if(!Array.isArray(A))return{systemInstructions:void 0,filteredMessages:A};let Q=A.findIndex((Y)=>Y&&typeof Y==="object"&&("role"in Y)&&Y.role==="system");if(Q===-1)return{systemInstructions:void 0,filteredMessages:A};let B=A[Q],I=typeof B.content==="string"?B.content:B.content!==void 0?JSON.stringify(B.content):void 0;if(!I)return{systemInstructions:void 0,filteredMessages:A};let C=JSON.stringify([{type:"text",content:I}]),E=[...A.slice(0,Q),...A.slice(Q+1)];return{systemInstructions:C,filteredMessages:E}}async function QKA(A,Q,B){let I=A.catch((Y)=>{throw o(Y,{mechanism:{handled:!1,type:B}}),Y}),C=await Q,E=await I;if(E&&typeof E==="object"&&"data"in E)return{...E,data:C};return C}function CG(A,Q,B){if(!xQ(A))return Q;return new Proxy(A,{get(I,C){let Y=C in Promise.prototype||C===Symbol.toStringTag?Q:I,J=Reflect.get(Y,C);if(C==="withResponse"&&typeof J==="function")return function(){let G=J.call(I);return QKA(G,Q,B)};return typeof J==="function"?J.bind(Y):J}})}var mZ=new Map,N9=new Map,xV=new Map([["ai.generateText","invoke_agent"],["ai.streamText","invoke_agent"],["ai.generateObject","invoke_agent"],["ai.streamObject","invoke_agent"],["ai.generateText.doGenerate","generate_content"],["ai.streamText.doStream","generate_content"],["ai.generateObject.doGenerate","generate_content"],["ai.streamObject.doStream","generate_content"],["ai.embed.doEmbed","embeddings"],["ai.embedMany.doEmbed","embeddings"],["ai.rerank.doRerank","rerank"],["ai.toolCall","execute_tool"]]);var j9="operation.name",R9="ai.operationId",q9="ai.prompt",U_="ai.schema",W_="ai.response.object",vV="ai.values",bV="ai.response.text",mV="ai.response.toolCalls",w_="ai.response.finishReason",xY="ai.prompt.messages",GE="ai.prompt.tools",dZ="ai.model.id",X_="ai.response.providerMetadata",V_="ai.usage.cachedInputTokens",K_="ai.usage.inputTokenDetails.",z_="ai.telemetry.functionId",$_="ai.usage.completionTokens",H_="ai.usage.promptTokens",M_="ai.usage.tokens",dV="ai.toolCall.name",cV="ai.toolCall.id",L_="ai.toolCall.args",N_="ai.toolCall.result";function R_(A,Q){let B=A.parent_span_id;if(!B)return;let I=A.data[BQ],C=A.data[MQ];if(typeof I==="number"||typeof C==="number"){let E=Q.get(B)||{inputTokens:0,outputTokens:0};if(typeof I==="number")E.inputTokens+=I;if(typeof C==="number")E.outputTokens+=C;Q.set(B,E)}}function uV(A,Q){let B=Q.get(A.span_id);if(!B||!A.data)return;if(B.inputTokens>0)A.data[BQ]=B.inputTokens;if(B.outputTokens>0)A.data[MQ]=B.outputTokens;if(B.inputTokens>0||B.outputTokens>0)A.data["gen_ai.usage.total_tokens"]=B.inputTokens+B.outputTokens}function BKA(A){let Q=new Map;for(let B of A){let I=B.data[wI];if(typeof I!=="string")continue;try{let C=JSON.parse(I);for(let E of C)if(E.name&&E.description&&!Q.has(E.name))Q.set(E.name,E.description)}catch{}}return Q}function q_(A,Q){let B=BKA(A);for(let I of A){if(I.op==="gen_ai.execute_tool"){let C=I.data[NC];if(typeof C==="string"){let E=B.get(C);if(E)I.data[BG]=E}}if(I.op==="gen_ai.invoke_agent")uV(I,Q)}}function lV(A){return mZ.get(A)}function pV(A){mZ.delete(A)}function P_(A){let Q=A.map((B)=>{if(typeof B==="string")try{return JSON.parse(B)}catch{return B}return B});return JSON.stringify(Q)}function j_(A){return A.filter((Q)=>!!Q&&typeof Q==="object"&&("role"in Q)&&("content"in Q))}function IKA(A){try{let Q=JSON.parse(A);if(!!Q&&typeof Q==="object"){let{messages:B}=Q,{prompt:I,system:C}=Q,E=[];if(typeof C==="string")E.push({role:"system",content:C});if(typeof B==="string")try{B=JSON.parse(B)}catch{}if(Array.isArray(B))return E.push(...j_(B)),E;if(Array.isArray(I))return E.push(...j_(I)),E;if(typeof I==="string")E.push({role:"user",content:I});if(E.length>0)return E}}catch{}return[]}function O_(A,Q,B){if(typeof Q[q9]==="string"&&!Q[mQ]&&!Q[xY]){let I=Q[q9],C=IKA(I);if(C.length){let{systemInstructions:E,filteredMessages:Y}=aB(C);if(E)A.setAttribute(QB,E);let J=Array.isArray(Y)?Y.length:0,F=B?dQ(Y):PB(Y);A.setAttributes({[q9]:F,[mQ]:F,[_Q]:J})}}else if(typeof Q[xY]==="string"){let I=Q[xY];try{let C=JSON.parse(I);if(Array.isArray(C)){let{systemInstructions:E,filteredMessages:Y}=aB(C);if(E)A.setAttribute(QB,E);let J=Array.isArray(Y)?Y.length:0,F=!B&&Y===C?I:B?dQ(Y):PB(Y);A.setAttributes({[xY]:F,[mQ]:F,[_Q]:J})}}catch{}}}function CKA(A){let{data:Q,description:B}=r(A);if(!B)return;if(Q[dV]&&Q[cV]&&B==="ai.toolCall"){DKA(A,Q);return}if(!Q[R9]&&!B.startsWith("ai."))return;let C=f()?.getIntegrationByName("VercelAI"),E=PQ(C?.options?.enableTruncation);ZKA(A,B,Q,E)}function EKA(A){if(A.type==="transaction"&&A.spans){let Q=new Map;for(let I of A.spans)FKA(I),R_(I,Q);q_(A.spans,Q);let B=A.contexts?.trace;if(B?.op==="gen_ai.invoke_agent")uV(B,Q)}return A}function YKA(A){if(typeof A!=="string")return"stop";switch(A){case"tool-calls":return"tool_call";case"stop":case"length":case"content_filter":case"error":return A;default:return A}}function JKA(A){let Q=A[bV],B=A[mV],I=A[w_];if(Q==null&&B==null)return;let C=[];if(typeof Q==="string"&&Q.length>0)C.push({type:"text",content:Q});if(B!=null)try{let E=typeof B==="string"?JSON.parse(B):B;if(Array.isArray(E)){for(let Y of E){let J=Y.input??Y.args;C.push({type:"tool_call",id:Y.toolCallId,name:Y.toolName,arguments:typeof J==="string"?J:JSON.stringify(J??{})})}delete A[mV]}}catch{}if(C.length>0){let E={role:"assistant",parts:C,finish_reason:YKA(I)};A[sT]=JSON.stringify([E]),delete A[bV]}}function k_(A){if(cQ(A,$_,MQ),cQ(A,H_,BQ),cQ(A,V_,V0),cQ(A,"ai.usage.inputTokens",BQ),cQ(A,"ai.usage.outputTokens",MQ),cQ(A,M_,BQ),cQ(A,"ai.response.avgOutputTokensPerSecond","ai.response.avgCompletionTokensPerSecond"),!Object.keys(A).some((B)=>B.startsWith(K_))&&typeof A[BQ]==="number"&&typeof A[V0]==="number")A[BQ]=A[BQ]+A[V0];if(typeof A[BQ]==="number"){let B=typeof A[MQ]==="number"?A[MQ]:0;A[ZB]=B+A[BQ]}if(A[GE]&&Array.isArray(A[GE]))A[GE]=P_(A[GE]);if(A[j9]){let B=A[R9]?A[R9]:A[j9],I=xV.get(B)??B;A[DQ]=I,delete A[j9]}if(cQ(A,xY,mQ),JKA(A),cQ(A,W_,"gen_ai.response.object"),cQ(A,GE,"gen_ai.request.available_tools"),cQ(A,L_,AG),cQ(A,N_,QG),cQ(A,U_,"gen_ai.request.schema"),cQ(A,dZ,pA),Array.isArray(A[vV])){let B=A[vV].map((I)=>{try{return JSON.parse(I)}catch{return I}});A[K0]=B.length===1?B[0]:JSON.stringify(B)}UKA(A);for(let B of Object.keys(A)){if(Array.isArray(A[B]))A[B]=JSON.stringify(A[B]);if(B.startsWith("ai."))cQ(A,B,`vercel.${B}`)}}function FKA(A){let{data:Q,origin:B}=A;if(B!=="auto.vercelai.otel")return;if(A.status&&A.status!=="ok")A.status="internal_error";k_(Q)}function GKA(A){let Q=A.attributes;if(Q?.[O]!=="auto.vercelai.otel")return;if(k_(Q),Q[l]==="gen_ai.execute_tool"&&A.parent_span_id){let B=N9.get(A.parent_span_id);if(B){let I=Q[NC];if(typeof I==="string"){let C=B.get(I);if(C)Q[BG]=C}}}N9.delete(A.span_id)}function cQ(A,Q,B){if(A[Q]!=null)A[B]=A[Q],delete A[Q]}function DKA(A,Q){A.setAttribute(O,"auto.vercelai.otel"),A.setAttribute(l,"gen_ai.execute_tool"),A.setAttribute(DQ,"execute_tool"),cQ(Q,dV,NC),cQ(Q,cV,xZ);let B=Q[xZ];if(typeof B==="string")mZ.set(B,A.spanContext());if(!Q[vZ])A.setAttribute(vZ,"function");let I=Q[NC];if(I)A.updateName(`execute_tool ${I}`)}function ZKA(A,Q,B,I){A.setAttribute(O,"auto.vercelai.otel");let C=Q.replace("ai.","");A.setAttribute("ai.pipeline.name",C),A.updateName(C);let E=B[z_];if(E&&typeof E==="string")A.setAttribute("gen_ai.function_id",E);if(O_(A,B,I),B[dZ]&&!B[DB])A.setAttribute(DB,B[dZ]);A.setAttribute("ai.streaming",Q.includes("stream"));let Y=xV.get(Q);if(Y)A.setAttribute(l,`gen_ai.${Y}`);else if(Q.startsWith("ai.stream"))A.setAttribute(l,"ai.run");if(Y==="invoke_agent"){if(E&&typeof E==="string")A.updateName(`invoke_agent ${E}`);else A.updateName("invoke_agent");return}let J=B[dZ];if(J&&Y)A.updateName(`${Y} ${J}`);let F=f();if(F&&qQ(F)&&B[GE]&&Array.isArray(B[GE])){let G=new Map;for(let D of B[GE])try{let Z=typeof D==="string"?JSON.parse(D):D;if(Z?.name&&Z?.description)G.set(Z.name,Z.description)}catch{}if(G.size>0){let D=r(A).parent_span_id;if(D)N9.set(D,G)}}}function P9(A){A.on("spanStart",CKA),A.addEventProcessor(Object.assign(EKA,{id:"VercelAiEventProcessor"})),A.on("processSpan",(Q)=>{GKA(Q)})}function O9(A){let Q={};if(!A||typeof A!=="object")return Q;let B=A,I=B.openai??B.azure;if(I)cI(Q,V0,I.cachedPromptTokens),cI(Q,"gen_ai.usage.output_tokens.reasoning",I.reasoningTokens),cI(Q,"gen_ai.usage.output_tokens.prediction_accepted",I.acceptedPredictionTokens),cI(Q,"gen_ai.usage.output_tokens.prediction_rejected",I.rejectedPredictionTokens),cI(Q,X0,I.responseId);if(B.anthropic){let C=B.anthropic.usage?.cache_read_input_tokens??B.anthropic.cacheReadInputTokens;cI(Q,V0,C);let E=B.anthropic.usage?.cache_creation_input_tokens??B.anthropic.cacheCreationInputTokens;cI(Q,_V,E)}if(B.bedrock?.usage)cI(Q,V0,B.bedrock.usage.cacheReadInputTokens),cI(Q,_V,B.bedrock.usage.cacheWriteInputTokens);if(B.deepseek)cI(Q,V0,B.deepseek.promptCacheHitTokens),cI(Q,"gen_ai.usage.input_tokens.cache_miss",B.deepseek.promptCacheMissTokens);return Q}function UKA(A){let Q=A[X_];if(!Q)return;try{let B=O9(JSON.parse(Q));for(let[I,C]of Object.entries(B)){if(I===X0&&A[I])continue;A[I]=C}}catch{}}function cI(A,Q,B){if(B!=null)A[Q]=B}var $0="OpenAI",g_={"responses.create":{operation:"chat"},"chat.completions.create":{operation:"chat"},"embeddings.create":{operation:"embeddings"},"conversations.create":{operation:"chat"}},WKA=["response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"],T_=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta",...WKA];function __(A){return A!==null&&typeof A==="object"&&"type"in A&&typeof A.type==="string"&&A.type.startsWith("response.")}function y_(A){return A!==null&&typeof A==="object"&&"object"in A&&A.object==="chat.completion.chunk"}function S_(A,Q,B){if(!Q||typeof Q!=="object")return;let I=Q,C={};if(typeof I.id==="string")C[w0]=I.id;if(typeof I.model==="string")C[DB]=I.model;if(I.object==="conversation"&&typeof I.id==="string")C[X0]=I.id;if(I.usage&&typeof I.usage==="object"){let E=I.usage,Y=E.prompt_tokens??E.input_tokens;if(typeof Y==="number")C[BQ]=Y;let J=E.completion_tokens??E.output_tokens;if(typeof J==="number")C[MQ]=J;if(typeof E.total_tokens==="number")C[ZB]=E.total_tokens}if(Array.isArray(I.choices)){let E=I.choices,Y=E.map((J)=>J.finish_reason).filter((J)=>typeof J==="string");if(Y.length>0)C[LC]=JSON.stringify(Y);if(B){let J=E.map((G)=>{return G.message?.content||""});C[BB]=JSON.stringify(J);let F=E.map((G)=>{return G.message?.tool_calls}).filter((G)=>Array.isArray(G)&&G.length>0).flat();if(F.length>0)C[qB]=JSON.stringify(F)}}if(typeof I.status==="string"){if(!C[LC])C[LC]=JSON.stringify([I.status])}if(B){if(typeof I.output_text==="string"&&!C[BB])C[BB]=I.output_text;if(Array.isArray(I.output)&&I.output.length>0&&!C[qB]){let E=I.output.filter((Y)=>Y?.type==="function_call");if(E.length>0)C[qB]=JSON.stringify(E)}}A.setAttributes(C)}function wKA(A){if("conversation"in A&&typeof A.conversation==="string")return A.conversation;if("previous_response_id"in A&&typeof A.previous_response_id==="string")return A.previous_response_id;return}function f_(A){let Q={[pA]:A.model??"unknown"};if("temperature"in A)Q[Z0]=A.temperature;if("top_p"in A)Q[W0]=A.top_p;if("frequency_penalty"in A)Q[U0]=A.frequency_penalty;if("presence_penalty"in A)Q[eF]=A.presence_penalty;if("stream"in A)Q[rF]=A.stream;if("encoding_format"in A)Q[$9]=A.encoding_format;if("dimensions"in A)Q[H9]=A.dimensions;let B=wKA(A);if(B)Q[X0]=B;return Q}function XKA(A,Q){for(let B of A){let I=B.index;if(I===void 0||!B.function)continue;if(!(I in Q.chatCompletionToolCalls))Q.chatCompletionToolCalls[I]={...B,function:{name:B.function.name,arguments:B.function.arguments||""}};else{let C=Q.chatCompletionToolCalls[I];if(B.function.arguments&&C?.function)C.function.arguments+=B.function.arguments}}}function VKA(A,Q,B){if(Q.responseId=A.id??Q.responseId,Q.responseModel=A.model??Q.responseModel,A.usage)Q.promptTokens=A.usage.prompt_tokens,Q.completionTokens=A.usage.completion_tokens,Q.totalTokens=A.usage.total_tokens;for(let I of A.choices??[]){if(B){if(I.delta?.content)Q.responseTexts.push(I.delta.content);if(I.delta?.tool_calls)XKA(I.delta.tool_calls,Q)}if(I.finish_reason)Q.finishReasons.push(I.finish_reason)}}function KKA(A,Q,B,I){if(!(A&&typeof A==="object")){Q.eventTypes.push("unknown:non-object");return}if(A instanceof Error){I.setStatus({code:k,message:"internal_error"}),o(A,{mechanism:{handled:!1,type:"auto.ai.openai.stream-response"}});return}if(!("type"in A))return;let C=A;if(!T_.includes(C.type)){Q.eventTypes.push(C.type);return}if(B){if(C.type==="response.output_item.done"&&"item"in C)Q.responsesApiToolCalls.push(C.item);if(C.type==="response.output_text.delta"&&"delta"in C&&C.delta){Q.responseTexts.push(C.delta);return}}if("response"in C){let{response:E}=C;if(Q.responseId=E.id??Q.responseId,Q.responseModel=E.model??Q.responseModel,E.usage)Q.promptTokens=E.usage.input_tokens,Q.completionTokens=E.usage.output_tokens,Q.totalTokens=E.usage.total_tokens;if(E.status)Q.finishReasons.push(E.status);if(B&&E.output_text)Q.responseTexts.push(E.output_text)}}async function*h_(A,Q,B){let I={eventTypes:[],responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,totalTokens:void 0,chatCompletionToolCalls:{},responsesApiToolCalls:[]};try{for await(let C of A){if(y_(C))VKA(C,I,B);else if(__(C))KKA(C,I,B,Q);yield C}}finally{let C=[...Object.values(I.chatCompletionToolCalls),...I.responsesApiToolCalls];hY(Q,{...I,toolCalls:C},B)}}function zKA(A){let Q=Array.isArray(A.tools)?A.tools:[],I=A.web_search_options&&typeof A.web_search_options==="object"?[{type:"web_search_options",...A.web_search_options}]:[],C=[...Q,...I];if(C.length===0)return;try{return JSON.stringify(C)}catch(E){q&&H.error("Failed to serialize OpenAI tools:",E);return}}function $KA(A,Q){let B={[MC]:"openai",[DQ]:Q,[O]:"auto.ai.openai"};if(A.length>0&&typeof A[0]==="object"&&A[0]!==null){let I=A[0],C=zKA(I);if(C)B[wI]=C;Object.assign(B,f_(I))}else B[pA]="unknown";return B}function x_(A,Q,B,I){if(B==="embeddings"&&"input"in Q){let J=Q.input;if(J==null)return;if(typeof J==="string"&&J.length===0)return;if(Array.isArray(J)&&J.length===0)return;A.setAttribute(K0,typeof J==="string"?J:JSON.stringify(J));return}let C="input"in Q?Q.input:("messages"in Q)?Q.messages:void 0;if(!C)return;if(Array.isArray(C)&&C.length===0)return;let{systemInstructions:E,filteredMessages:Y}=aB(C);if(E)A.setAttribute(QB,E);if(A.setAttribute(mQ,I?dQ(Y):PB(Y)),Array.isArray(Y))A.setAttribute(_Q,Y.length);else A.setAttribute(_Q,1)}function HKA(A,Q,B,I,C){return function(...Y){let J=B.operation||"unknown",F=$KA(Y,J),G=F[pA]||"unknown",D=Y[0],Z=D&&typeof D==="object"&&D.stream===!0,U={name:`${J} ${G}`,op:`gen_ai.${J}`,attributes:F};if(Z){let K,X=TA(U,(V)=>{if(K=A.apply(I,Y),C.recordInputs&&D)x_(V,D,J,PQ(C.enableTruncation));return(async()=>{try{let M=await K;return h_(M,V,C.recordOutputs??!1)}catch(M){throw V.setStatus({code:k,message:"internal_error"}),o(M,{mechanism:{handled:!1,type:"auto.ai.openai.stream",data:{function:Q}}}),V.end(),M}})()});return CG(K,X,"auto.ai.openai")}let W,w=vA(U,(K)=>{if(W=A.apply(I,Y),C.recordInputs&&D)x_(K,D,J,PQ(C.enableTruncation));return W.then((X)=>{return S_(K,X,C.recordOutputs),X},(X)=>{throw o(X,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:Q}}}),X})});return CG(W,w,"auto.ai.openai")}}function v_(A,Q="",B){return new Proxy(A,{get(I,C){let E=I[C],Y=IG(Q,String(C)),J=g_[Y];if(typeof E==="function"&&J)return HKA(E,Y,J,I,B);if(typeof E==="function")return E.bind(I);if(E&&typeof E==="object")return v_(E,Y,B);return E}})}function k9(A,Q){return v_(A,"",sB(Q))}var H0="Anthropic_AI",b_={"messages.create":{operation:"chat"},"messages.stream":{operation:"chat",streaming:!0},"messages.countTokens":{operation:"chat"},"models.get":{operation:"models"},"completions.create":{operation:"chat"},"models.retrieve":{operation:"models"},"beta.messages.create":{operation:"chat"}};function m_(A,Q,B){if(Array.isArray(Q)&&Q.length===0)return;let{systemInstructions:I,filteredMessages:C}=aB(Q);if(I)A.setAttributes({[QB]:I});let E=Array.isArray(C)?C.length:1;A.setAttributes({[mQ]:B?dQ(C):PB(C),[_Q]:E})}var MKA={invalid_request_error:"invalid_argument",authentication_error:"unauthenticated",permission_error:"permission_denied",not_found_error:"not_found",request_too_large:"failed_precondition",rate_limit_error:"resource_exhausted",api_error:"internal_error",overloaded_error:"unavailable"};function iV(A){if(!A)return"internal_error";return MKA[A]||"internal_error"}function d_(A,Q){if(Q.error)A.setStatus({code:k,message:iV(Q.error.type)}),o(Q.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}})}function c_(A){let{system:Q,messages:B,input:I}=A,C=typeof Q==="string"?[{role:"system",content:A.system}]:[],E=Array.isArray(I)?I:I!=null?[I]:void 0,Y=Array.isArray(B)?B:B!=null?[B]:[],J=E??Y;return[...C,...J]}function LKA(A,Q){if("type"in A&&typeof A.type==="string"){if(A.type==="error")return Q.setStatus({code:k,message:iV(A.error?.type)}),o(A.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0}return!1}function NKA(A,Q){if(A.type==="message_delta"&&A.usage){if("output_tokens"in A.usage&&typeof A.usage.output_tokens==="number")Q.completionTokens=A.usage.output_tokens}if(A.message){let B=A.message;if(B.id)Q.responseId=B.id;if(B.model)Q.responseModel=B.model;if(B.stop_reason)Q.finishReasons.push(B.stop_reason);if(B.usage){if(typeof B.usage.input_tokens==="number")Q.promptTokens=B.usage.input_tokens;if(typeof B.usage.cache_creation_input_tokens==="number")Q.cacheCreationInputTokens=B.usage.cache_creation_input_tokens;if(typeof B.usage.cache_read_input_tokens==="number")Q.cacheReadInputTokens=B.usage.cache_read_input_tokens}}}function jKA(A,Q){if(A.type!=="content_block_start"||typeof A.index!=="number"||!A.content_block)return;if(A.content_block.type==="tool_use"||A.content_block.type==="server_tool_use")Q.activeToolBlocks[A.index]={id:A.content_block.id,name:A.content_block.name,inputJsonParts:[]}}function RKA(A,Q,B){if(A.type!=="content_block_delta"||!A.delta)return;if(typeof A.index==="number"&&"partial_json"in A.delta&&typeof A.delta.partial_json==="string"){let I=Q.activeToolBlocks[A.index];if(I)I.inputJsonParts.push(A.delta.partial_json)}if(B&&typeof A.delta.text==="string")Q.responseTexts.push(A.delta.text)}function qKA(A,Q){if(A.type!=="content_block_stop"||typeof A.index!=="number")return;let B=Q.activeToolBlocks[A.index];if(!B)return;let I=B.inputJsonParts.join(""),C;try{C=I?JSON.parse(I):{}}catch{C={__unparsed:I}}Q.toolCalls.push({type:"tool_use",id:B.id,name:B.name,input:C}),delete Q.activeToolBlocks[A.index]}function u_(A,Q,B,I){if(!(A&&typeof A==="object"))return;if(LKA(A,I))return;NKA(A,Q),jKA(A,Q),RKA(A,Q,B),qKA(A,Q)}async function*l_(A,Q,B){let I={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};try{for await(let C of A)u_(C,I,B,Q),yield C}finally{hY(Q,I,B)}}function p_(A,Q,B){let I={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};return A.on("streamEvent",(C)=>{u_(C,I,B,Q)}),A.on("message",()=>{hY(Q,I,B)}),A.on("error",(C)=>{if(o(C,{mechanism:{handled:!1,type:"auto.ai.anthropic.stream_error"}}),Q.isRecording())Q.setStatus({code:k,message:"internal_error"}),Q.end()}),A}function PKA(A,Q,B){let I={[MC]:"anthropic",[DQ]:B,[O]:"auto.ai.anthropic"};if(A.length>0&&typeof A[0]==="object"&&A[0]!==null){let C=A[0];if(C.tools&&Array.isArray(C.tools))I[wI]=JSON.stringify(C.tools);if(I[pA]=C.model??"unknown","temperature"in C)I[Z0]=C.temperature;if("top_p"in C)I[W0]=C.top_p;if("stream"in C)I[rF]=C.stream;if("top_k"in C)I[z9]=C.top_k;if("frequency_penalty"in C)I[U0]=C.frequency_penalty;if("max_tokens"in C)I[tF]=C.max_tokens}else if(Q==="models.retrieve"||Q==="models.get")I[pA]=A[0];else I[pA]="unknown";return I}function oV(A,Q,B){let I=c_(Q);if(m_(A,I,B),"prompt"in Q)A.setAttributes({[oT]:JSON.stringify(Q.prompt)})}function OKA(A,Q){if("content"in Q){if(Array.isArray(Q.content)){A.setAttributes({[BB]:Q.content.map((I)=>I.text).filter((I)=>!!I).join("")});let B=[];for(let I of Q.content)if(I.type==="tool_use"||I.type==="server_tool_use")B.push(I);if(B.length>0)A.setAttributes({[qB]:JSON.stringify(B)})}}if("completion"in Q)A.setAttributes({[BB]:Q.completion});if("input_tokens"in Q)A.setAttributes({[BB]:JSON.stringify(Q.input_tokens)})}function kKA(A,Q){if("id"in Q&&"model"in Q){if(A.setAttributes({[w0]:Q.id,[DB]:Q.model}),"usage"in Q&&Q.usage)Z_(A,Q.usage.input_tokens,Q.usage.output_tokens,Q.usage.cache_creation_input_tokens,Q.usage.cache_read_input_tokens)}}function gKA(A,Q,B){if(!Q||typeof Q!=="object")return;if("type"in Q&&Q.type==="error"){d_(A,Q);return}if(B)OKA(A,Q);kKA(A,Q)}function i_(A,Q,B){if(o(A,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:B}}}),Q.isRecording())Q.setStatus({code:k,message:"internal_error"}),Q.end();throw A}function TKA(A,Q,B,I,C,E,Y,J,F,G,D){let Z=C[pA]??"unknown",U={name:`${E} ${Z}`,op:`gen_ai.${E}`,attributes:C};if(G&&!D){let W,w=TA(U,(K)=>{if(W=A.apply(B,I),F.recordInputs&&J)oV(K,J,PQ(F.enableTruncation));return(async()=>{try{let X=await W;return l_(X,K,F.recordOutputs??!1)}catch(X){return i_(X,K,Y)}})()});return CG(W,w,"auto.ai.anthropic")}else return TA(U,(W)=>{try{if(F.recordInputs&&J)oV(W,J,PQ(F.enableTruncation));let w=Q.apply(B,I);return p_(w,W,F.recordOutputs??!1)}catch(w){return i_(w,W,Y)}})}function _KA(A,Q,B,I,C){return new Proxy(A,{apply(E,Y,J){let F=B.operation||"unknown",G=PKA(J,Q,F),D=G[pA]??"unknown",Z=typeof J[0]==="object"?J[0]:void 0,U=Boolean(Z?.stream),W=B.streaming===!0;if(U||W)return TKA(A,E,I,J,G,F,Q,Z,C,U,W);let w,K=vA({name:`${F} ${D}`,op:`gen_ai.${F}`,attributes:G},(X)=>{if(w=E.apply(I,J),C.recordInputs&&Z)oV(X,Z,PQ(C.enableTruncation));return w.then((V)=>{return gKA(X,V,C.recordOutputs),V},(V)=>{throw o(V,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:Q}}}),V})});return CG(w,K,"auto.ai.anthropic")}})}function o_(A,Q="",B){return new Proxy(A,{get(I,C){let E=I[C],Y=IG(Q,String(C)),J=b_[Y];if(typeof E==="function"&&J)return _KA(E,Y,J,I,B);if(typeof E==="function")return E.bind(I);if(E&&typeof E==="object")return o_(E,Y,B);return E}})}function g9(A,Q){return o_(A,"",sB(Q))}var M0="Google_GenAI",n_={"models.generateContent":{operation:"generate_content"},"models.generateContentStream":{operation:"generate_content",streaming:!0},"models.embedContent":{operation:"embeddings"},"chats.create":{proxyResultPath:"chat"},"chat.sendMessage":{operation:"chat"},"chat.sendMessageStream":{operation:"chat",streaming:!0}},s_="google_genai";function yKA(A,Q){let B=A?.promptFeedback;if(B?.blockReason){let I=B.blockReasonMessage??B.blockReason;return Q.setStatus({code:k,message:"internal_error"}),o(`Content blocked: ${I}`,{mechanism:{handled:!1,type:"auto.ai.google_genai"}}),!0}return!1}function SKA(A,Q){if(typeof A.responseId==="string")Q.responseId=A.responseId;if(typeof A.modelVersion==="string")Q.responseModel=A.modelVersion;let B=A.usageMetadata;if(B){if(typeof B.promptTokenCount==="number")Q.promptTokens=B.promptTokenCount;if(typeof B.candidatesTokenCount==="number")Q.completionTokens=B.candidatesTokenCount;if(typeof B.totalTokenCount==="number")Q.totalTokens=B.totalTokenCount}}function fKA(A,Q,B){if(Array.isArray(A.functionCalls))Q.toolCalls.push(...A.functionCalls);for(let I of A.candidates??[]){if(I?.finishReason&&!Q.finishReasons.includes(I.finishReason))Q.finishReasons.push(I.finishReason);for(let C of I?.content?.parts??[]){if(B&&C.text)Q.responseTexts.push(C.text);if(C.functionCall)Q.toolCalls.push({type:"function",id:C.functionCall.id,name:C.functionCall.name,arguments:C.functionCall.args})}}}function hKA(A,Q,B,I){if(!A||yKA(A,I))return;SKA(A,Q),fKA(A,Q,B)}async function*a_(A,Q,B){let I={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(let C of A)hKA(C,I,B,Q),yield C}finally{hY(Q,I,B)}}function EG(A,Q="user"){if(typeof A==="string")return[{role:Q,content:A}];if(Array.isArray(A))return A.flatMap((B)=>EG(B,Q));if(typeof A!=="object"||!A)return[];if("role"in A&&typeof A.role==="string")return[A];if("parts"in A)return[{...A,role:Q}];return[{role:Q,content:A}]}function r_(A,Q){if("model"in A&&typeof A.model==="string")return A.model;if(Q&&typeof Q==="object"){let B=Q;if("model"in B&&typeof B.model==="string")return B.model;if("modelVersion"in B&&typeof B.modelVersion==="string")return B.modelVersion}return"unknown"}function xKA(A){let Q={};if("temperature"in A&&typeof A.temperature==="number")Q[Z0]=A.temperature;if("topP"in A&&typeof A.topP==="number")Q[W0]=A.topP;if("topK"in A&&typeof A.topK==="number")Q[z9]=A.topK;if("maxOutputTokens"in A&&typeof A.maxOutputTokens==="number")Q[tF]=A.maxOutputTokens;if("frequencyPenalty"in A&&typeof A.frequencyPenalty==="number")Q[U0]=A.frequencyPenalty;if("presencePenalty"in A&&typeof A.presencePenalty==="number")Q[eF]=A.presencePenalty;return Q}function vKA(A,Q,B){let I={[MC]:s_,[DQ]:A,[O]:"auto.ai.google_genai"};if(Q){if(I[pA]=r_(Q,B),"config"in Q&&typeof Q.config==="object"&&Q.config){let C=Q.config;if(Object.assign(I,xKA(C)),"tools"in C&&Array.isArray(C.tools)){let E=C.tools.flatMap((Y)=>Y.functionDeclarations);I[wI]=JSON.stringify(E)}}}else I[pA]=r_({},B);return I}function t_(A,Q,B,I){if(B){let E=Q.contents;if(E!=null)A.setAttribute(K0,typeof E==="string"?E:JSON.stringify(E));return}let C=[];if("config"in Q&&Q.config&&typeof Q.config==="object"&&"systemInstruction"in Q.config&&Q.config.systemInstruction)C.push(...EG(Q.config.systemInstruction,"system"));if("history"in Q)C.push(...EG(Q.history,"user"));if("contents"in Q)C.push(...EG(Q.contents,"user"));if("message"in Q)C.push(...EG(Q.message,"user"));if(Array.isArray(C)&&C.length){let{systemInstructions:E,filteredMessages:Y}=aB(C);if(E)A.setAttribute(QB,E);let J=Array.isArray(Y)?Y.length:0;A.setAttributes({[_Q]:J,[mQ]:I?dQ(Y):PB(Y)})}}function bKA(A,Q,B){if(!Q||typeof Q!=="object")return;if(Q.modelVersion)A.setAttribute(DB,Q.modelVersion);if(Q.usageMetadata&&typeof Q.usageMetadata==="object"){let I=Q.usageMetadata;if(typeof I.promptTokenCount==="number")A.setAttributes({[BQ]:I.promptTokenCount});if(typeof I.candidatesTokenCount==="number")A.setAttributes({[MQ]:I.candidatesTokenCount});if(typeof I.totalTokenCount==="number")A.setAttributes({[ZB]:I.totalTokenCount})}if(B&&Array.isArray(Q.candidates)&&Q.candidates.length>0){let I=Q.candidates.map((C)=>{if(C.content?.parts&&Array.isArray(C.content.parts))return C.content.parts.map((E)=>typeof E.text==="string"?E.text:"").filter((E)=>E.length>0).join("");return""}).filter((C)=>C.length>0);if(I.length>0)A.setAttributes({[BB]:I.join("")})}if(B&&Q.functionCalls){let I=Q.functionCalls;if(Array.isArray(I)&&I.length>0)A.setAttributes({[qB]:JSON.stringify(I)})}}function mKA(A,Q,B,I,C){let E=B.operation==="embeddings";return new Proxy(A,{apply(Y,J,F){let G=B.operation||"unknown",D=F[0],Z=vKA(G,D,I),U=Z[pA]??"unknown";if(B.streaming)return TA({name:`${G} ${U}`,op:`gen_ai.${G}`,attributes:Z},async(W)=>{try{if(C.recordInputs&&D)t_(W,D,E,PQ(C.enableTruncation));let w=await Y.apply(I,F);return a_(w,W,Boolean(C.recordOutputs))}catch(w){throw W.setStatus({code:k,message:"internal_error"}),o(w,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:Q}}}),W.end(),w}});return vA({name:`${G} ${U}`,op:`gen_ai.${G}`,attributes:Z},(W)=>{if(C.recordInputs&&D)t_(W,D,E,PQ(C.enableTruncation));return vI(()=>Y.apply(I,F),(w)=>{o(w,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:Q}}})},()=>{},(w)=>{if(!E)bKA(W,w,C.recordOutputs)})})}})}function nV(A,Q="",B){return new Proxy(A,{get:(I,C,E)=>{let Y=Reflect.get(I,C,E),J=IG(Q,String(C)),F=n_[J];if(typeof Y==="function"&&F){let G=F.operation?mKA(Y,J,F,I,B):Y.bind(I);if(!F.proxyResultPath)return G;return function(...D){let Z=G(...D);if(Z&&typeof Z==="object")return nV(Z,F.proxyResultPath,B);return Z}}if(typeof Y==="function")return Y.bind(I);if(Y&&typeof Y==="object")return nV(Y,J,B);return Y}})}function T9(A,Q){return nV(A,"",sB(Q))}var _9="LangChain",DE="auto.ai.langchain",e_={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"};var XI=(A,Q,B)=>{if(B!=null)A[Q]=B},rB=(A,Q,B)=>{let I=Number(B);if(!Number.isNaN(I))A[Q]=I};function vY(A){if(typeof A==="string")return A;try{return JSON.stringify(A)}catch{return String(A)}}function YG(A){if(Array.isArray(A))try{let Q=A.map((B)=>B&&typeof B==="object"&&z0(B)?fY(B):B);return JSON.stringify(Q)}catch{return String(A)}return vY(A)}function cZ(A){let Q=A.toLowerCase();return e_[Q]??Q}function Ay(A){if(A.includes("System"))return"system";if(A.includes("Human"))return"user";if(A.includes("AI")||A.includes("Assistant"))return"assistant";if(A.includes("Function"))return"function";if(A.includes("Tool"))return"tool";return"user"}function sV(A){if(!A||Array.isArray(A))return;return A.invocation_params}function uZ(A){return A.map((Q)=>{let B=Q._getType;if(typeof B==="function"){let C=B.call(Q);return{role:cZ(C),content:YG(Q.content)}}if(Q.lc===1&&Q.kwargs){let C=Q.id,E=Array.isArray(C)&&C.length>0?C[C.length-1]:"",Y=typeof E==="string"?Ay(E):"user";return{role:cZ(Y),content:YG(Q.kwargs?.content)}}if(Q.type){let C=String(Q.type).toLowerCase();return{role:cZ(C),content:YG(Q.content)}}if(Q.role)return{role:cZ(String(Q.role)),content:YG(Q.content)};let I=Q.constructor?.name;if(I&&I!=="Object")return{role:cZ(Ay(I)),content:YG(Q.content)};return{role:"user",content:YG(Q.content)}})}function dKA(A,Q,B){let I={},C="kwargs"in A?A.kwargs:void 0,E=Q?.temperature??B?.ls_temperature??C?.temperature;rB(I,Z0,E);let Y=Q?.max_tokens??B?.ls_max_tokens??C?.max_tokens;rB(I,tF,Y);let J=Q?.top_p??C?.top_p;rB(I,W0,J);let F=Q?.frequency_penalty;rB(I,U0,F);let G=Q?.presence_penalty;if(rB(I,eF,G),Q&&"stream"in Q)XI(I,rF,Boolean(Q.stream));return I}function By(A,Q,B,I,C){return{[MC]:vY(A??"langchain"),[DQ]:"chat",[pA]:vY(Q),[O]:DE,...dKA(B,I,C)}}function Iy(A,Q,B,I,C,E){let Y=E?.ls_provider,J=C?.model??E?.ls_model_name??"unknown",F=By(Y,J,A,C,E);if(B&&Array.isArray(Q)&&Q.length>0){XI(F,_Q,Q.length);let G=Q.map((D)=>({role:"user",content:D}));XI(F,mQ,I?dQ(G):PB(G))}return F}function Cy(A,Q,B,I,C,E){let Y=E?.ls_provider??A.id?.[2],J=C?.model??E?.ls_model_name??"unknown",F=By(Y,J,A,C,E);if(B&&Array.isArray(Q)&&Q.length>0){let G=uZ(Q.flat()),{systemInstructions:D,filteredMessages:Z}=aB(G);if(D)XI(F,QB,D);let U=Array.isArray(Z)?Z.length:0;XI(F,_Q,U),XI(F,mQ,I?dQ(Z):PB(Z))}return F}function cKA(A,Q){let B=[],I=A.flat();for(let C of I){let Y=C.message?.tool_calls;if(Array.isArray(Y)&&Y.length>0)B.push(...Y);else{let J=C.message?.content;if(Array.isArray(J))for(let F of J){let G=F;if(G.type==="tool_use")B.push(G)}}}if(B.length>0)XI(Q,qB,vY(B))}function uKA(A,Q){if(!A)return;let{tokenUsage:B,usage:I}=A;if(B)rB(Q,BQ,B.promptTokens),rB(Q,MQ,B.completionTokens),rB(Q,ZB,B.totalTokens);else if(I){rB(Q,BQ,I.input_tokens),rB(Q,MQ,I.output_tokens);let C=Number(I.input_tokens),E=Number(I.output_tokens),Y=(Number.isNaN(C)?0:C)+(Number.isNaN(E)?0:E);if(Y>0)rB(Q,ZB,Y);if(I.cache_creation_input_tokens!==void 0)rB(Q,tT,I.cache_creation_input_tokens);if(I.cache_read_input_tokens!==void 0)rB(Q,eT,I.cache_read_input_tokens)}}function Ey(A,Q){if(!A)return;let B={};if(Array.isArray(A.generations)){let G=A.generations.flat().map((D)=>{if(D.generationInfo?.finish_reason)return D.generationInfo.finish_reason;if(D.generation_info?.finish_reason)return D.generation_info.finish_reason;return null}).filter((D)=>typeof D==="string");if(G.length>0)XI(B,LC,vY(G));if(cKA(A.generations,B),Q){let D=A.generations.flat().map((Z)=>Z.text??Z.message?.content).filter((Z)=>typeof Z==="string");if(D.length>0)XI(B,BB,vY(D))}}uKA(A.llmOutput,B);let I=A.llmOutput,E=A.generations?.[0]?.[0]?.message,Y=I?.model_name??I?.model??E?.response_metadata?.model_name;if(Y)XI(B,DB,Y);let J=I?.id??E?.id;if(J)XI(B,w0,J);let F=I?.stop_reason??E?.response_metadata?.finish_reason;if(F)XI(B,nT,vY(F));return B}function y9(A){let Q={},B=A?.lc_agent_name;if(typeof B==="string")Q[SY]=B;return Q}function Yy(A){let Q=A?.invocation_params?.tools??A?.options?.tools;if(!Array.isArray(Q)||Q.length===0)return;let B=Q.map((I)=>{let C=I.function;return{type:"function",name:I.name??C?.name??"",description:I.description??C?.description}});return JSON.stringify(B)}function lKA(A){if(!A||typeof A!=="object")return!1;let Q=A;return typeof Q.addHandler==="function"&&typeof Q.copy==="function"}function pKA(A){return typeof A==="object"&&A?.name==="SentryCallbackHandler"}function Qy(A){return A.some(pKA)}function lZ(A,Q){if(!A)return[Q];if(lKA(A)){if(Qy(A.handlers??[]))return A;let I=A.copy();return I.addHandler(Q,!0),I}let B=Array.isArray(A)?A:[A];if(Qy(B))return A;return[...B,Q]}function bY(A={}){let{recordInputs:Q,recordOutputs:B}=sB(A),I=PQ(A.enableTruncation),C=new Map,E=(J)=>{let F=C.get(J);if(F?.isRecording())F.end(),C.delete(J)},Y={lc_serializable:!1,lc_namespace:["langchain_core","callbacks","sentry"],lc_secrets:void 0,lc_attributes:void 0,lc_aliases:void 0,lc_serializable_keys:void 0,lc_id:["langchain_core","callbacks","sentry"],lc_kwargs:{},name:"SentryCallbackHandler",ignoreLLM:!1,ignoreChain:!1,ignoreAgent:!1,ignoreRetriever:!1,ignoreCustomEvent:!1,raiseError:!1,awaitHandlers:!0,handleLLMStart(J,F,G,D,Z,U,W,w){let K=sV(U),X=Iy(J,F,Q,I,K,W),V=X[pA],M=X[DQ];TA({name:`${M} ${V}`,op:"gen_ai.chat",attributes:{...y9(W),...X,[l]:"gen_ai.chat"}},(N)=>{return C.set(G,N),N})},handleChatModelStart(J,F,G,D,Z,U,W,w){let K=sV(U),X=Cy(J,F,Q,I,K,W),V=Yy(Z);if(V)X[wI]=V;let M=X[pA],N=X[DQ];TA({name:`${N} ${M}`,op:"gen_ai.chat",attributes:{...y9(W),...X,[l]:"gen_ai.chat"}},(L)=>{return C.set(G,L),L})},handleLLMEnd(J,F,G,D,Z){let U=C.get(F);if(U?.isRecording()){let W=Ey(J,B);if(W)U.setAttributes(W);E(F)}},handleLLMError(J,F){let G=C.get(F);if(G?.isRecording())G.setStatus({code:k,message:"internal_error"}),E(F);o(J,{mechanism:{handled:!1,type:`${DE}.llm_error_handler`}})},handleChainStart(J,F,G,D,Z,U,W,w){if(U?.__sentry_langgraph__)return;let K=w||J.name||"unknown_chain",X={[O]:"auto.ai.langchain","langchain.chain.name":K};if(Q)X["langchain.chain.inputs"]=JSON.stringify(F);TA({name:`chain ${K}`,op:"gen_ai.invoke_agent",attributes:{...X,[l]:"gen_ai.invoke_agent"}},(V)=>{return C.set(G,V),V})},handleChainEnd(J,F){let G=C.get(F);if(G?.isRecording()){if(B)G.setAttributes({"langchain.chain.outputs":JSON.stringify(J)});E(F)}},handleChainError(J,F){let G=C.get(F);if(G?.isRecording())G.setStatus({code:k,message:"internal_error"}),E(F);o(J,{mechanism:{handled:!1,type:`${DE}.chain_error_handler`}})},handleToolStart(J,F,G,D,Z,U,W){if(U?.__sentry_langgraph__)return;let w=W||J.name||"unknown_tool",K={...y9(U),[O]:DE,[DQ]:"execute_tool",[NC]:w};if(Q)K[AG]=F;TA({name:`execute_tool ${w}`,op:"gen_ai.execute_tool",attributes:{...K,[l]:"gen_ai.execute_tool"}},(X)=>{return C.set(G,X),X})},handleToolEnd(J,F){let G=C.get(F);if(G?.isRecording()){if(B){let D=J,Z=D&&typeof D==="object"&&"content"in D?D.content:J;G.setAttributes({[QG]:typeof Z==="string"?Z:JSON.stringify(Z)})}E(F)}},handleToolError(J,F){let G=C.get(F);if(G?.isRecording())G.setStatus({code:k,message:"internal_error"}),E(F);o(J,{mechanism:{handled:!1,type:`${DE}.tool_error_handler`}})},copy(){return Y},toJSON(){return{lc:1,type:"not_implemented",id:Y.lc_id}},toJSONNotImplemented(){return{lc:1,type:"not_implemented",id:Y.lc_id}}};return Y}var S9="LangGraph",pZ="auto.ai.langgraph";function Jy(A){let Q=A[0];if(typeof Q!=="object"||!Q||!("llm"in Q)||!Q.llm||typeof Q.llm!=="object")return null;let B=Q.llm;if(typeof B.modelName!=="string"&&typeof B.model!=="string")return null;return B}function Fy(A){let Q=A[0];if(typeof Q==="object"&&!!Q&&"name"in Q&&typeof Q.name==="string")return Q.name;return null}function Gy(A,Q,B){for(let C of A){if(!C||typeof C!=="object")continue;let E=C,Y=E.invoke;if(typeof Y!=="function"||Object.prototype.hasOwnProperty.call(E,"__sentry_tool_wrapped__"))continue;let J=typeof E.name==="string"?E.name:"unknown_tool",F=typeof E.description==="string"?E.description:void 0,G=new Proxy(Y,{apply(D,Z,U){let W={[O]:pZ,[l]:SV,[DQ]:"execute_tool",[NC]:J,[vZ]:"function"},K=U[1]?.metadata?.lc_agent_name??B;if(typeof K==="string")W[SY]=K;if(F)W[BG]=F;let X=U[0];if(typeof X==="object"&&!!X){if("id"in X&&typeof X.id==="string")W[xZ]=X.id;if(Q.recordInputs){let V="args"in X&&typeof X.args==="object"?X.args:X;try{W[AG]=JSON.stringify(V)}catch{}}}return vA({op:SV,name:`execute_tool ${J}`,attributes:W},async(V)=>{try{let M=await Reflect.apply(D,Z,U);if(Q.recordOutputs)try{let N=M,L=N&&typeof N==="object"&&"content"in N?N.content:M;V.setAttribute(QG,typeof L==="string"?L:JSON.stringify(L))}catch{}return M}catch(M){throw V.setStatus({code:k,message:"internal_error"}),o(M,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),M}})}});E.invoke=G,Object.defineProperty(E,"__sentry_tool_wrapped__",{value:!0,enumerable:!1})}return A}function iKA(A){if(!A||A.length===0)return null;let Q=[];for(let B of A)if(B&&typeof B==="object"){let I=B.tool_calls;if(I&&Array.isArray(I))Q.push(...I)}return Q.length>0?Q:null}function oKA(A){let Q=A,B=0,I=0,C=0;if(Q.usage_metadata&&typeof Q.usage_metadata==="object"){let E=Q.usage_metadata;if(typeof E.input_tokens==="number")B=E.input_tokens;if(typeof E.output_tokens==="number")I=E.output_tokens;if(typeof E.total_tokens==="number")C=E.total_tokens;return{inputTokens:B,outputTokens:I,totalTokens:C}}if(Q.response_metadata&&typeof Q.response_metadata==="object"){let E=Q.response_metadata;if(E.tokenUsage&&typeof E.tokenUsage==="object"){let Y=E.tokenUsage;if(typeof Y.promptTokens==="number")B=Y.promptTokens;if(typeof Y.completionTokens==="number")I=Y.completionTokens;if(typeof Y.totalTokens==="number")C=Y.totalTokens}}return{inputTokens:B,outputTokens:I,totalTokens:C}}function nKA(A,Q){let B=Q;if(B.response_metadata&&typeof B.response_metadata==="object"){let I=B.response_metadata;if(I.model_name&&typeof I.model_name==="string")A.setAttribute(DB,I.model_name);if(I.finish_reason&&typeof I.finish_reason==="string")A.setAttribute(LC,[I.finish_reason])}}function Dy(A){if(!A.builder?.nodes?.tools?.runnable?.tools)return null;let Q=A.builder?.nodes?.tools?.runnable?.tools;if(!Q||!Array.isArray(Q)||Q.length===0)return null;return Q.map((B)=>({name:B.lc_kwargs?.name,description:B.lc_kwargs?.description,schema:B.lc_kwargs?.schema}))}function Zy(A,Q,B){let C=B?.messages;if(!C||!Array.isArray(C))return;let E=Q?.length??0,Y=C.length>E?C.slice(E):[];if(Y.length===0)return;let J=iKA(Y);if(J)A.setAttribute(qB,JSON.stringify(J));let F=uZ(Y);A.setAttribute(BB,JSON.stringify(F));let G=0,D=0,Z=0;for(let U of Y){let W=oKA(U);G+=W.inputTokens,D+=W.outputTokens,Z+=W.totalTokens,nKA(A,U)}if(G>0)A.setAttribute(BQ,G);if(D>0)A.setAttribute(MQ,D);if(Z>0)A.setAttribute(ZB,Z)}var aV=!1,f9="__sentry_patched__";function rV(A,Q){if(Object.prototype.hasOwnProperty.call(A,f9))return A;let B=bY(Q),I=new Proxy(A,{apply(C,E,Y){if(aV)return Reflect.apply(C,E,Y);return vA({op:"gen_ai.create_agent",name:"create_agent",attributes:{[O]:pZ,[l]:"gen_ai.create_agent",[DQ]:"create_agent"}},(J)=>{try{let F=Reflect.apply(C,E,Y),G=Y.length>0?Y[0]:{};if(G?.name&&typeof G.name==="string")J.setAttribute(SY,G.name),J.updateName(`create_agent ${G.name}`);let D=F.invoke;if(D&&typeof D==="function")F.invoke=Uy(D.bind(F),F,G,Q,void 0,B);return F}catch(F){throw J.setStatus({code:k,message:"internal_error"}),o(F,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),F}})}});return Object.defineProperty(I,f9,{value:!0,enumerable:!1}),I}function Uy(A,Q,B,I,C,E){return new Proxy(A,{apply(Y,J,F){let G=C?.modelName??C?.model;return vA({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[O]:pZ,[l]:A_,[DQ]:"invoke_agent"}},async(D)=>{try{let Z=B?.name;if(Z&&typeof Z==="string")D.setAttribute(rT,Z),D.setAttribute(SY,Z),D.updateName(`invoke_agent ${Z}`);if(G)D.setAttribute(pA,G);let w=(F.length>1?F[1]:void 0)?.configurable?.thread_id;if(w&&typeof w==="string")D.setAttribute(X0,w);if(E){let L=F[1]??{};F[1]=L;let R=L.metadata??{};L.metadata={...R,__sentry_langgraph__:!0,...typeof Z==="string"?{lc_agent_name:Z}:{}},L.callbacks=lZ(L.callbacks,E)}let K=Dy(Q);if(K)D.setAttribute(wI,JSON.stringify(K));let{recordInputs:X,recordOutputs:V}=I,M=F.length>0?F[0]?.messages??[]:[];if(M&&X){let L=uZ(M),{systemInstructions:R,filteredMessages:P}=aB(L);if(R)D.setAttribute(QB,R);let T=PQ(I.enableTruncation),u=Array.isArray(P)?P.length:0;D.setAttributes({[mQ]:T?dQ(P):PB(P),[_Q]:u})}let N=await Reflect.apply(Y,J,F);if(V)Zy(D,M??null,N);return N}catch(Z){throw D.setStatus({code:k,message:"internal_error"}),o(Z,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),Z}})}})}function tV(A,Q){if(Object.prototype.hasOwnProperty.call(A,f9))return A;let B=sB(Q),I=bY(B),C=new Proxy(A,{apply(E,Y,J){let F=Jy(J),G=Fy(J),D=J[0];if(D&&Array.isArray(D.tools)&&D.tools.length>0)Gy(D.tools,B,G??void 0);aV=!0;let Z;try{Z=Reflect.apply(E,Y,J)}finally{aV=!1}let U=Z.invoke;if(U&&typeof U==="function"){let W={};if(G)W.name=G;Z.invoke=Uy(U.bind(Z),Z,W,B,F,I)}return Z}});return Object.defineProperty(C,f9,{value:!0,enumerable:!1}),C}function h9(A,Q){return A.compile=rV(A.compile,sB(Q)),A}function Wy(A,Q,B){let I=B.getOptions(),C=B.getDsn(),E=I.tunnel,Y=vF(I._metadata),J={sent_at:new Date(VQ()).toISOString(),...sKA(Q)&&{trace:Q},...Y&&{sdk:Y},...!!E&&C&&{dsn:GB(C)}},F=B.getDataCollectionOptions().userInfo?"auto":"never",G=[{type:"span",item_count:A.length,content_type:"application/vnd.sentry.items.span.v2+json"},{version:2,...D0()&&{ingest_settings:{infer_ip:F,infer_user_agent:F}},items:A}];return vQ(J,[G])}function sKA(A){return!!A.trace_id&&!!A.public_key}function wy(A){let Q=156;if(Q+=A.name.length*2,Q+=b5(A.attributes),A.links&&A.links.length>0){let I=A.links[0]?.attributes,C=100+(I?b5(I):0);Q+=C*A.links.length}return Q}var Xy=1000,aKA=5000000;class eV{constructor(A,Q){this._traceBuckets=new Map,this._client=A;let{maxSpanLimit:B,flushInterval:I,maxTraceWeightInBytes:C}=Q??{};this._maxSpanLimit=B&&B>0&&B<=Xy?B:Xy,this._flushInterval=I&&I>0?I:5000,this._maxTraceWeight=C&&C>0?C:aKA,this._client.on("flush",()=>{this.drain()}),this._client.on("close",()=>{this._traceBuckets.forEach((E)=>{clearTimeout(E.timeout)}),this._traceBuckets.clear()})}add(A){let Q=A.trace_id,B=this._traceBuckets.get(Q);if(!B)B={spans:new Set,size:0,timeout:$C(setTimeout(()=>{this.flush(Q)},this._flushInterval))},this._traceBuckets.set(Q,B);if(B.spans.add(A),B.size+=wy(A),B.spans.size>=this._maxSpanLimit||B.size>=this._maxTraceWeight)this.flush(Q)}drain(){if(!this._traceBuckets.size)return;q&&H.log(`Flushing span tree map with ${this._traceBuckets.size} traces`),this._traceBuckets.forEach((A,Q)=>{this.flush(Q)})}flush(A){let Q=this._traceBuckets.get(A);if(!Q)return;if(!Q.spans.size){this._removeTrace(A);return}let B=Array.from(Q.spans),I=B[0]?._segmentSpan;if(!I){q&&H.warn("No segment span reference found on span JSON, cannot compute DSC"),this._removeTrace(A);return}let C=GQ(I),E=B.map((J)=>{let{_segmentSpan:F,...G}=J;return G}),Y=Wy(E,C,this._client);q&&H.log(`Sending span envelope for trace ${A} with ${E.length} spans`),this._client.sendEnvelope(Y).then(null,(J)=>{q&&H.error("Error while sending streamed span envelope:",J)}),this._removeTrace(A)}_removeTrace(A){let Q=this._traceBuckets.get(A);if(Q)clearTimeout(Q.timeout);this._traceBuckets.delete(A)}}var x9=g(()=>{return{name:"SpanStreaming",setup(A){let I=A.getOptions();if(!qQ(A)){I.traceLifecycle="static",q&&H.warn('SpanStreaming integration requires `traceLifecycle` to be set to "stream"! Falling back to static trace lifecycle.');return}let C=I.beforeSendSpan;if(C&&!E0(C)){I.traceLifecycle="static",q&&H.warn("SpanStreaming integration requires a beforeSendSpan callback using `withStreamedSpan`! Falling back to static trace lifecycle.");return}let E=new eV(A);A.on("afterSpanEnd",(Y)=>{if(!iB(Y))return;E.add(QV(Y,A))})}}});function iZ(A){if(A===void 0)return;else if(A>=400&&A<500)return"warning";else if(A>=500)return"error";else return}function oZ(A,Q,B){let I=A[Q];if(typeof I!=="function")return;try{A[Q]=B}catch{Object.defineProperty(A,Q,{value:B,writable:!0,configurable:!0,enumerable:!0})}if(A.default===I)try{A.default=B}catch{Object.defineProperty(A,"default",{value:B,writable:!0,configurable:!0,enumerable:!0})}}class IB{constructor(A){this._maxSize=A,this._cache=new Map}get size(){return this._cache.size}get(A){let Q=this._cache.get(A);if(Q===void 0)return;return this._cache.delete(A),this._cache.set(A,Q),Q}set(A,Q){if(this._cache.size>=this._maxSize){let B=this._cache.keys().next().value;this._cache.delete(B)}this._cache.set(A,Q)}remove(A){let Q=this._cache.get(A);if(Q)this._cache.delete(A);return Q}clear(){this._cache.clear()}keys(){return Array.from(this._cache.keys())}values(){let A=[];return this._cache.forEach((Q)=>A.push(Q)),A}}function Vy(A,Q,B,I,C){let E={sent_at:new Date(VQ()).toISOString()};if(B?.sdk)E.sdk={name:B.sdk.name,version:B.sdk.version};if(!!I&&!!C)E.dsn=GB(C);if(Q)E.trace=Q;let Y=rKA(A);return vQ(E,[Y])}function rKA(A){return[{type:"check_in"},A]}var tKA="7";function eKA(A){let Q=A.protocol?`${A.protocol}:`:"",B=A.port?`:${A.port}`:"";return`${Q}//${A.host}${B}${A.path?`/${A.path}`:""}/api/`}function A6A(A){return`${eKA(A)}${A.projectId}/envelope/`}function Q6A(A,Q){let B={sentry_version:tKA};if(A.publicKey)B.sentry_key=A.publicKey;if(Q)B.sentry_client=`${Q.name}/${Q.version}`;return new URLSearchParams(B).toString()}function Ky(A,Q,B){return Q?Q:`${A6A(A)}?${Q6A(A,B)}`}function zy(A){let Q={trace_id:A.trace_id,span_id:A.span_id,parent_span_id:A.parent_span_id,name:A.description||"",start_timestamp:A.start_timestamp,end_timestamp:A.timestamp||A.start_timestamp,status:!A.status||A.status==="ok"||A.status==="cancelled"?"ok":"error",is_segment:!1,attributes:{...A.data},links:A.links};return E9(Q)}function $y(A,Q){if(A.type!=="transaction"||!A.spans?.length||!A.sdkProcessingMetadata?.hasGenAiSpans||Q.getOptions().streamGenAiSpans===!1||qQ(Q))return;let B=[],I=[];for(let E of A.spans)if(E.op?.startsWith("gen_ai."))B.push(zy(E));else I.push(E);if(B.length===0)return;A.spans=I;let C=Q.getDataCollectionOptions().userInfo?"auto":"never";return[{type:"span",item_count:B.length,content_type:"application/vnd.sentry.items.span.v2+json"},{version:2,...D0()&&{ingest_settings:{infer_ip:C,infer_user_agent:C}},items:B}]}function Hy(A,Q,B){let I=[{type:"client_report"},{timestamp:B||VC(),discarded_events:A}];return vQ(Q?{dsn:Q}:{},[I])}function My(A){let{trace_id:Q,parent_span_id:B,span_id:I,status:C,origin:E,data:Y,op:J}=A.contexts?.trace??{};return{data:Y??{},description:A.transaction,op:J,parent_span_id:B,span_id:I??"",start_timestamp:A.start_timestamp??0,status:C,timestamp:A.timestamp,trace_id:Q??"",origin:E,profile_id:Y?.[TF],exclusive_time:Y?.[_F],measurements:A.measurements,is_segment:!0}}function Ly(A){return{type:"transaction",timestamp:A.timestamp,start_timestamp:A.start_timestamp,transaction:A.description,contexts:{trace:{trace_id:A.trace_id,span_id:A.span_id,parent_span_id:A.parent_span_id,op:A.op,status:A.status,origin:A.origin,data:{...A.data,...A.profile_id&&{[TF]:A.profile_id},...A.exclusive_time&&{[_F]:A.exclusive_time}}}},measurements:A.measurements}}var B6A={userInfo:!0,cookies:!0,httpHeaders:{request:!0,response:!0},httpBodies:["incomingRequest","outgoingRequest","incomingResponse","outgoingResponse"],queryParams:!0,genAI:{inputs:!0,outputs:!0},stackFrameVariables:!0,frameContextLines:5};function Ny(A){let Q=A.dataCollection!=null?B6A:D9(A.sendDefaultPii),B=A.dataCollection??{};return{userInfo:B.userInfo??Q.userInfo,cookies:B.cookies??Q.cookies,httpHeaders:{request:B.httpHeaders?.request??Q.httpHeaders.request,response:B.httpHeaders?.response??Q.httpHeaders.response},httpBodies:B.httpBodies??Q.httpBodies,queryParams:B.queryParams??Q.queryParams,genAI:{inputs:B.genAI?.inputs??Q.genAI.inputs,outputs:B.genAI?.outputs??Q.genAI.outputs},stackFrameVariables:B.stackFrameVariables??Q.stackFrameVariables,frameContextLines:B.frameContextLines??Q.frameContextLines}}var jy="Not capturing exception because it's already been captured.",Ry="Discarded session because of missing or non-string release",Ty=Symbol.for("SentryInternalError"),_y=Symbol.for("SentryDoNotSendEventError"),I6A=5000;function v9(A){return{message:A,[Ty]:!0}}function AK(A){return{message:A,[_y]:!0}}function qy(A){return!!A&&typeof A==="object"&&Ty in A}function Py(A){return!!A&&typeof A==="object"&&_y in A}function Oy(A,Q,B,I,C){let E=0,Y,J=!1;A.on(B,()=>{E=0,clearTimeout(Y),J=!1}),A.on(Q,(F)=>{if(E+=I(F),E>=800000)C(A);else if(!J){let G=A.getOptions()._flushInterval??I6A;if(G>0)J=!0,Y=$C(setTimeout(()=>{C(A)},G))}}),A.on("flush",()=>{C(A)})}class BK{constructor(A){if(this._options=A,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=pF(A.transportOptions?.bufferSize??PZ),this._dataCollection=Ny(A),A.dsn)this._dsn=Sg(A.dsn);else q&&H.warn("No DSN provided, client will not send events.");if(this._dsn){let B=Ky(this._dsn,A.tunnel,A._metadata?A._metadata.sdk:void 0);this._transport=A.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...A.transportOptions,url:B})}if(this._options.enableLogs=this._options.enableLogs??this._options._experiments?.enableLogs,this._options.enableLogs)Oy(this,"afterCaptureLog","flushLogs",J6A,sF);if(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)Oy(this,"afterCaptureMetric","flushMetrics",Y6A,kV)}captureException(A,Q,B){let I=jQ();if(A9(A))return q&&H.log(jy),I;let C={event_id:I,...Q};return this._process(()=>this.eventFromException(A,C).then((E)=>this._captureEvent(E,C,B)).then((E)=>E),"error"),C.event_id}captureMessage(A,Q,B,I){let C={event_id:jQ(),...B},E=jF(A)?A:String(A),Y=rC(A),J=Y?this.eventFromMessage(E,Q,C):this.eventFromException(A,C);return this._process(()=>J.then((F)=>this._captureEvent(F,C,I)),Y?"unknown":"error"),C.event_id}captureEvent(A,Q,B){let I=jQ();if(Q?.originalException&&A9(Q.originalException))return q&&H.log(jy),I;let C={event_id:I,...Q},E=A.sdkProcessingMetadata||{},Y=E.capturedSpanScope,J=E.capturedSpanIsolationScope,F=ky(A.type);return this._process(()=>this._captureEvent(A,C,Y||B,J),F),C.event_id}captureSession(A){this.sendSession(A),QE(A,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getDataCollectionOptions(){return this._dataCollection}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}async flush(A){let Q=this._transport;if(this.emit("flush"),!Q)return!0;let B=await this._isClientDoneProcessing(A),I=await Q.flush(A);return B&&I}async close(A){sF(this);let Q=await this.flush(A);return this.getOptions().enabled=!1,this.emit("close"),Q}getEventProcessors(){return this._eventProcessors}addEventProcessor(A){this._eventProcessors.push(A)}init(){if(this._isEnabled()||this._options.integrations.some(({name:A})=>A.startsWith("Spotlight")))this._setupIntegrations()}getIntegrationByName(A){return this._integrations[A]}getIntegrationNames(){return Object.keys(this._integrations)}addIntegration(A){let Q=this._integrations[A.name];if(!Q&&A.beforeSetup)A.beforeSetup(this);if(JV(this,A,this._integrations),!Q)YV(this,[A])}sendEvent(A,Q={}){this.emit("beforeSendEvent",A,Q);let B=$y(A,this),I=og(A,this._dsn,this._options._metadata,this._options.tunnel);for(let C of Q.attachments||[])I=J9(I,n5(C));if(B)I=J9(I,B);this.sendEnvelope(I).then((C)=>this.emit("afterSendEvent",A,C))}sendSession(A){let{release:Q,environment:B=I0}=this._options;if("aggregates"in A){let C=A.attrs||{};if(!C.release&&!Q){q&&H.warn(Ry);return}C.release=C.release||Q,C.environment=C.environment||B,A.attrs=C}else{if(!A.release&&!Q){q&&H.warn(Ry);return}A.release=A.release||Q,A.environment=A.environment||B}this.emit("beforeSendSession",A);let I=ig(A,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(I)}recordDroppedEvent(A,Q,B=1){if(this._options.sendClientReports){let I=`${A}:${Q}`;q&&H.log(`Recording outcome: "${I}"${B>1?` (${B} times)`:""}`),this._outcomes[I]=(this._outcomes[I]||0)+B}}on(A,Q){let B=this._hooks[A]=this._hooks[A]||new Set,I=(...C)=>Q(...C);return B.add(I),()=>{B.delete(I)}}emit(A,...Q){let B=this._hooks[A];if(B)B.forEach((I)=>I(...Q))}async sendEnvelope(A){if(this.emit("beforeEnvelope",A),this._isEnabled()&&this._transport)try{return await this._transport.send(A)}catch(Q){return q&&H.error("Error while sending envelope:",Q),{}}return q&&H.error("Transport disabled"),{}}registerCleanup(A){}dispose(){}_setupIntegrations(){let{integrations:A}=this._options;this._integrations=VT(this,A),YV(this,A)}_updateSessionFromEvent(A,Q){let B=Q.level==="fatal",I=!1,C=Q.exception?.values;if(C){I=!0,B=!1;for(let J of C)if(J.mechanism?.handled===!1){B=!0;break}}let E=A.status==="ok";if(E&&A.errors===0||E&&B)QE(A,{...B&&{status:"crashed"},errors:A.errors||Number(I||B)}),this.captureSession(A)}async _isClientDoneProcessing(A){let Q=0;while(!A||QsetTimeout(B,1)),!this._numProcessing)return!0;Q++}return!1}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(A,Q,B,I){let C=this.getOptions(),E=this.getIntegrationNames();if(!Q.integrations&&E.length)Q.integrations=E;if(this.emit("preprocessEvent",A,Q),!A.type)I.setLastEventId(A.event_id||Q.event_id);return UT(C,A,Q,B,this,I).then((Y)=>{if(Y===null)return Y;this.emit("postprocessEvent",Y,Q),Y.contexts={trace:{...Y.contexts?.trace,...KY(B)},...Y.contexts};let J=mI(this,B);return Y.sdkProcessingMetadata={dynamicSamplingContext:J,...Y.sdkProcessingMetadata},Y})}_captureEvent(A,Q={},B=YA(),I=CA()){if(q&&QK(A))H.log(`Captured error event \`${W9(A)[0]||""}\``);return this._processEvent(A,Q,B,I).then((C)=>{return C.event_id},(C)=>{if(q)if(Py(C))H.log(C.message);else if(qy(C))H.warn(C.message);else H.warn(C);return})}_processEvent(A,Q,B,I){let C=this.getOptions(),{sampleRate:E}=C,Y=yy(A),J=QK(A),G=`before send for type \`${A.type||"error"}\``,D=typeof E>"u"?void 0:pB(E);if(J&&typeof D==="number"&&HQ()>D)return this.recordDroppedEvent("sample_rate","error"),cF(AK(`Discarding event because it's not included in the random sample (sampling rate = ${E})`));let Z=ky(A.type);return this._prepareEvent(A,Q,B,I).then((U)=>{if(U===null)throw this.recordDroppedEvent("event_processor",Z),AK("An event processor returned `null`, will not send event.");if(Q.data?.__sentry__===!0)return U;let w=E6A(this,C,U,Q);return C6A(w,G)}).then((U)=>{if(U===null){if(this.recordDroppedEvent("before_send",Z),Y){let X=1+(A.spans||[]).length;this.recordDroppedEvent("before_send","span",X)}throw AK(`${G} returned \`null\`, will not send event.`)}let W=B.getSession()||I.getSession();if(J&&W)this._updateSessionFromEvent(W,U);if(Y){let K=U.sdkProcessingMetadata?.spanCountBeforeProcessing||0,X=U.spans?U.spans.length:0,V=K-X;if(V>0)this.recordDroppedEvent("before_send","span",V)}let w=U.transaction_info;if(Y&&w&&U.transaction!==A.transaction)U.transaction_info={...w,source:"custom"};return this.sendEvent(U,Q),U}).then(null,(U)=>{if(Py(U)||qy(U))throw U;throw this.captureException(U,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:U}),v9(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. +Reason: ${U}`)})}_process(A,Q){this._numProcessing++,this._promiseBuffer.add(A).then((B)=>{return this._numProcessing--,B},(B)=>{if(this._numProcessing--,B===qZ)this.recordDroppedEvent("queue_overflow",Q);return B})}_clearOutcomes(){let A=this._outcomes;return this._outcomes={},Object.entries(A).map(([Q,B])=>{let[I,C]=Q.split(":");return{reason:I,category:C,quantity:B}})}_flushOutcomes(){q&&H.log("Flushing outcomes...");let A=this._clearOutcomes();if(A.length===0){q&&H.log("No outcomes to send");return}if(!this._dsn){q&&H.log("No dsn provided, will not send outcomes");return}q&&H.log("Sending outcomes:",A);let Q=Hy(A,this._options.tunnel&&GB(this._dsn));this.sendEnvelope(Q)}}function ky(A){return A==="replay_event"?"replay":A||"error"}function C6A(A,Q){let B=`${Q} must return \`null\` or a valid event.`;if(xQ(A))return A.then((I)=>{if(!aE(I)&&I!==null)throw v9(B);return I},(I)=>{throw v9(`${Q} rejected with ${I}`)});else if(!aE(A)&&A!==null)throw v9(B);return A}function E6A(A,Q,B,I){let{beforeSend:C,beforeSendTransaction:E,ignoreSpans:Y}=Q,J=!E0(Q.beforeSendSpan)&&Q.beforeSendSpan,F=B;if(QK(F)&&C)return C(F,I);if(yy(F)){if(J||Y){let G=My(F);if(Y?.length&&bI({description:G.description,op:G.op,attributes:G.data},Y))return null;if(J){let D=J(G);if(!D)NY();else F=eE(B,Ly(D))}if(F.spans){let D=[],Z=F.spans;for(let W of Z){if(Y?.length&&bI({description:W.description,op:W.op,attributes:W.data},Y)){Tg(Z,W);continue}if(J){let w=J(W);if(!w)NY(),D.push(W);else D.push(w)}else D.push(W)}let U=F.spans.length-D.length;if(U)A.recordDroppedEvent("before_send","span",U);F.spans=D}}if(E){if(F.spans){let G=F.spans.length;F.sdkProcessingMetadata={...B.sdkProcessingMetadata,spanCountBeforeProcessing:G}}return E(F,I)}}return F}function QK(A){return A.type===void 0}function yy(A){return A.type==="transaction"}function Y6A(A){let Q=0;if(A.name)Q+=A.name.length*2;return Q+=8,Q+Sy(A.attributes)}function J6A(A){let Q=0;if(A.message)Q+=A.message.length*2;return Q+Sy(A.attributes)}function Sy(A){if(!A)return 0;let Q=0;return Object.values(A).forEach((B)=>{if(Array.isArray(B))Q+=B.length*gy(B[0]);else if(rC(B))Q+=gy(B);else Q+=100}),Q}function gy(A){if(typeof A==="string")return A.length*2;else if(typeof A==="number")return 8;else if(typeof A==="boolean")return 4;return 0}function fy(A){let Q=A._metadata?.sdk,B=Q?.name&&Q?.version?`${Q?.name}/${Q?.version}`:void 0;A.transportOptions={...A.transportOptions,headers:{...B&&{"user-agent":B},...A.transportOptions?.headers}}}class b9 extends BK{constructor(A){if(fy(A),A.traceLifecycle==="stream"&&!A.integrations.some((Q)=>Q.name==="SpanStreaming"))A.integrations.push(x9());super(A);this._disposeCallbacks=[],this._setUpMetricsProcessing()}eventFromException(A,Q){let B=gT(this,this._options.stackParser,A,Q);return B.level="error",YE(B)}eventFromMessage(A,Q="info",B){return YE(TT(this._options.stackParser,A,Q,B,this._options.attachStacktrace))}captureException(A,Q,B){return hy(Q),super.captureException(A,Q,B)}captureEvent(A,Q,B){if(!A.type&&A.exception?.values&&A.exception.values.length>0)hy(Q);return super.captureEvent(A,Q,B)}captureCheckIn(A,Q,B){let I="checkInId"in A&&A.checkInId?A.checkInId:jQ();if(!this._isEnabled())return q&&H.warn("SDK not enabled, will not capture check-in."),I;let C=this.getOptions(),{release:E,environment:Y,tunnel:J}=C,F={check_in_id:I,monitor_slug:A.monitorSlug,status:A.status,release:E,environment:Y};if("duration"in A)F.duration=A.duration;if(Q)F.monitor_config={schedule:Q.schedule,checkin_margin:Q.checkinMargin,max_runtime:Q.maxRuntime,timezone:Q.timezone,failure_issue_threshold:Q.failureIssueThreshold,recovery_threshold:Q.recoveryThreshold};let[G,D]=K9(this,B);if(D)F.contexts={trace:D};let Z=Vy(F,G,this.getSdkMetadata(),J,this.getDsn());return q&&H.log("Sending checkin:",A.monitorSlug,A.status),this.sendEnvelope(Z),I}registerCleanup(A){this._disposeCallbacks.push(A)}dispose(){q&&H.log("Disposing client...");for(let A of this._disposeCallbacks)try{A()}catch{}this._disposeCallbacks.length=0;for(let A of Object.keys(this._hooks))this._hooks[A]?.clear();this._hooks={},this._eventProcessors.length=0,this._integrations={},this._outcomes={},this._transport=void 0,this._promiseBuffer=pF(PZ)}_prepareEvent(A,Q,B,I){if(this._options.platform)A.platform=A.platform||this._options.platform;if(this._options.runtime)A.contexts={...A.contexts,runtime:A.contexts?.runtime||this._options.runtime};if(this._options.serverName)A.server_name=A.server_name||this._options.serverName;return super._prepareEvent(A,Q,B,I)}_setUpMetricsProcessing(){this.on("processMetric",(A)=>{if(this._options.serverName)A.attributes={"server.address":this._options.serverName,...A.attributes}})}}function hy(A){let Q=CA().getScopeData().sdkProcessingMetadata.requestSession;if(Q){let B=A?.mechanism?.handled??!0;if(B&&Q.status!=="crashed")Q.status="errored";else if(!B)Q.status="crashed"}}function vy(A,Q=!1){return!(Q||A&&!A.startsWith("/")&&!A.match(/^[A-Z]:/)&&!A.startsWith(".")&&!A.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&A!==void 0&&!A.includes("node_modules/")}function by(A){let Q=/^\s*[-]{4,}$/,B=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,I=/at (?:async )?(.+?) \(data:(.*?),/;return(C)=>{let E=C.match(I);if(E)return{filename:``,function:E[1]};let Y=C.match(B);if(Y){let J,F,G,D,Z;if(Y[1]){G=Y[1];let K=G.lastIndexOf(".");if(G[K-1]===".")K--;if(K>0){J=G.slice(0,K),F=G.slice(K+1);let X=J.indexOf(".Module");if(X>0)G=G.slice(X+1),J=J.slice(0,X)}D=void 0}if(F)D=J,Z=F;if(F==="")Z=void 0,G=void 0;if(G===void 0)Z=Z||Y5,G=D?`${D}.${Z}`:Z;let U=Wg(Y[2]),W=Y[5]==="native";if(!U&&Y[5]&&!W)U=Y[5];let w=U?F6A(U):void 0;return{filename:w??U,module:w&&A?.(w),function:G,lineno:xy(Y[3]),colno:xy(Y[4]),in_app:vy(U||"",W)}}if(C.match(Q))return{filename:C};return}}function IK(A){return[90,by(A)]}function xy(A){return parseInt(A||"",10)||void 0}function F6A(A){try{return decodeURI(A)}catch{return}}var m9=new WeakMap,my=(A,Q)=>{let B=m9.get(A);if(!B)m9.set(A,[Q]);else B.push(Q)},nZ=(A)=>{let Q=m9.get(A);if(!Q)Q=[],m9.set(A,Q);return Q};var mY="express.name",dy="http.route",dY="express.type",d9="router",cy="middleware",uy="request_handler";var CK=(A)=>A instanceof Error?[A,A.message]:[String(A),String(A)];function G6A(A){return A.includes(":")||A.includes("*")}var py=(A,Q,B)=>{if(Q.name==="router"){let I=iy("",Q),C=I?I:B||A||"/";return{attributes:{[mY]:C,[dY]:d9},name:`router - ${C}`}}else if(Q.name==="bound dispatch"||Q.name==="handle")return{attributes:{[mY]:(A||B)??"request handler",[dY]:uy},name:`request handler${Q.path?` - ${A||B}`:""}`};else return{attributes:{[mY]:Q.name,[dY]:cy},name:`middleware - ${Q.name}`}},iy=(A,Q)=>{let B=Array.isArray(Q.handle?.stack)?Q.handle?.stack?.[0]:void 0;if(B?.route?.path)return`${A}${B.route.path}`;if(B&&Array.isArray(B?.handle?.stack))return iy(A,B);return A},oy=(A,Q,B)=>{if(Array.isArray(B?.ignoreLayersType)&&B?.ignoreLayersType?.includes(Q))return!0;if(!Array.isArray(B?.ignoreLayers))return!1;try{return ZI(A,B.ignoreLayers,!0)}catch{}return!1};function ny(A,Q){let B=nZ(A);if(B.length===0)return;if(B.every((E)=>E==="/"))return A.originalUrl==="/"?"/":void 0;if(Q==="*")return Q;if(Q.includes("/")&&(Q.includes(",")||Q.includes("\\")||Q.includes("*")||Q.includes("[")))return Q;let I=Q.startsWith("/")?Q:`/${Q}`;return I.length>0&&(A.originalUrl===I||A.originalUrl.startsWith(I)||G6A(I))?I:void 0}function sy(A){let Q=nZ(A),B="";for(let I of Q){if(I==="/"||I==="/*")continue;B+=!B||B.endsWith("/")?I:`/${I}`}return B.replace(/\/{2,}/g,"/")}var c9=(A)=>{let Q=A[0];if(Array.isArray(Q))return Q.map((B)=>ly(B)||"").join(",");return ly(Q)},ly=(A)=>typeof A==="string"?A:A instanceof RegExp||typeof A==="number"?String(A):void 0,u9=(A)=>ay(A?.Router?.prototype),ay=(A)=>(typeof A==="object"||typeof A==="function")&&!!A&&("route"in A)&&typeof A.route==="function",ry=(A)=>ay(A.Router)&&!u9(A);function ty(A){if(!CA()?.getScopeData()?.sdkProcessingMetadata?.normalizedRequest){let B=oF(A);CA().setSDKProcessingMetadata({normalizedRequest:B})}}function l9(A,Q,B){if(!Q?.handle)return;let I=Q,C=I.handle;if(tC(C))return;if(C.length===4)return;function E(Y,J,...F){let G=A();ty(Y);let D=VA();if(!D)return C.apply(this,[Y,J,...F]);if(B)my(Y,B);let Z=nZ(Y),U=!!B,W=sy(Y),w=ny(Y,W);G.onRouteResolved?.(w);let K=py(W,I,B),X=K.attributes[mY],V=K.attributes[dY],M=Object.assign(K.attributes,{[O]:"auto.http.express",[l]:`${V}.express`});if(w)M[dy]=w;if(oy(K.attributes[mY],V,G)){if(U)Z.pop();return C.apply(this,[Y,J,...F])}let N=CA();if(N!==lB()){if(V==="request_handler"){let L=Y.method?Y.method.toUpperCase():"GET";N.setTransactionName(`${L} ${W}`)}}else q&&H.warn("Isolation scope is still default isolation scope - skipping setting transactionName");return TA({name:X,attributes:M},(L)=>{let R=!1;if(K.attributes[dY]===d9)L.end(),R=!0;let P=()=>{if(!R)R=!0,L.end()};for(let T=0;Tu.apply(this,DA))};break}try{return C.apply(this,[Y,J,...F])}catch(T){let[u,DA]=CK(T);throw L.setStatus({code:k,message:DA}),T}finally{if(!R)J.once("finish",P)}})}for(let Y in C){if(Y in E)continue;Object.defineProperty(E,Y,{get(){return C[Y]},set(J){C[Y]=J}})}UY(E,C),Object.defineProperty(I,"handle",{enumerable:!0,configurable:!0,writable:!0,value:E})}function p9(A){return!!A&&typeof A==="object"&&"default"in A&&A.default||A}function D6A(A){return!!A.express}var ey=!1;function Z6A(){if(!ey)ey=!0,q&&H.warn("[Express] `patchExpressModule(options)` is deprecated. Use `patchExpressModule(moduleExports, getOptions)` instead.")}function EK(A,Q){let B,I;if(!Q&&D6A(A)){let{express:D,...Z}=A;I=D,B=()=>Z,Z6A()}else if(typeof Q!=="function")throw TypeError("`patchExpressModule(moduleExports, getOptions)` requires a `getOptions` callback");else B=Q,I=A;let C=p9(I),E=u9(C)?C.Router.prototype:ry(C)?C.Router:void 0;if(!E)throw TypeError("no valid Express route function to instrument");let Y=E.route;try{WY(E,"route",function(...Z){let U=Y.apply(this,Z),W=this.stack[this.stack.length-1];return l9(B,W,c9(Z)),U})}catch(D){q&&H.error("Failed to patch express route method:",D)}let J=E.use;try{WY(E,"use",function(...Z){let U=J.apply(this,Z),W=this.stack[this.stack.length-1];if(!W)return U;return l9(B,W,c9(Z)),U})}catch(D){q&&H.error("Failed to patch express use method:",D)}let{application:F}=C,G=F.use;try{WY(F,"use",function(...Z){let U=G.apply(this,Z),W=u9(C)?this.router:this._router;if(W){let w=W.stack[W.stack.length-1];if(w)l9(B,w,c9(Z))}return U})}catch(D){q&&H.error("Failed to patch express application.use method:",D)}return C}var U6A=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,i9=Symbol("sentryPostgresConnectionContext"),YK=Symbol.for("sentry.instrumented.postgresjs"),W6A=Symbol.for("sentry.query.from.instrumented.sql");function GK(A,Q){if(!A||typeof A!=="function")return q&&H.warn("instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance"),A;return FK(A,{requireParentSpan:!0,...Q})}function FK(A,Q,B){if(A[YK])return A;let I=new Proxy(A,{apply(C,E,Y){let J=Reflect.apply(C,E,Y);if(J&&typeof J==="object"&&"handle"in J)QS(J,I,Q);return J},get(C,E){let Y=C[E];if(typeof E!=="string"||typeof Y!=="function")return Y;if(E==="unsafe"||E==="file")return w6A(Y,C,I,Q);if(E==="begin"||E==="reserve")return X6A(Y,C,I,Q);return Y}});if(B)I[i9]=B;else $6A(A,I);return A[YK]=!0,I[YK]=!0,I}function w6A(A,Q,B,I){return function(...C){let E=Reflect.apply(A,Q,C);if(E&&typeof E==="object"&&"handle"in E)QS(E,B,I);return E}}function X6A(A,Q,B,I){return function(...C){let E=B[i9];if(typeof C[C.length-1]!=="function"){let D=Reflect.apply(A,Q,C);if(D&&typeof D.then==="function")return D.then((Z)=>{return FK(Z,I,E)});return D}let J=C.length===1?C[0]:C[1],F=function(D){let Z=FK(D,I,E);return J(Z)},G=C.length===1?[F]:[C[0],F];return Reflect.apply(A,Q,G)}}function QS(A,Q,B){if(A.handle?.__sentryWrapped)return;A[W6A]=!0;let I=A.handle,C=async function(...E){if(this.executed||!V6A(B))return I.apply(this,E);let Y=K6A(A.strings),J=BS(Y);return TA({name:J||"postgresjs.query",op:"db"},(F)=>{F.setAttribute(O,"auto.db.postgresjs"),F.setAttributes({"db.system.name":"postgres","db.query.text":J});let G=Q?Q[i9]:void 0;if(z6A(F,G),B.requestHook)try{B.requestHook(F,J,G)}catch(Z){F.setAttribute("sentry.hook.error","requestHook failed"),q&&H.error("Error in requestHook for PostgresJs instrumentation:",Z)}let D=this;D.resolve=new Proxy(D.resolve,{apply:(Z,U,W)=>{try{AS(F,J,W?.[0]?.command),F.end()}catch(w){q&&H.error("Error ending span in resolve callback:",w)}return Reflect.apply(Z,U,W)}}),D.reject=new Proxy(D.reject,{apply:(Z,U,W)=>{try{F.setStatus({code:k,message:W?.[0]?.message||"unknown_error"}),F.setAttribute("db.response.status_code",W?.[0]?.code||"unknown"),F.setAttribute("error.type",W?.[0]?.name||"unknown"),AS(F,J),F.end()}catch(w){q&&H.error("Error ending span in reject callback:",w)}return Reflect.apply(Z,U,W)}});try{return I.apply(this,E)}catch(Z){throw F.setStatus({code:k,message:Z instanceof Error?Z.message:"unknown_error"}),F.end(),Z}})};C.__sentryWrapped=!0,A.handle=C}function V6A(A){return VA()!==void 0||!A.requireParentSpan}function K6A(A){if(!A?.length)return;if(A.length===1)return A[0]||void 0;return A.reduce((Q,B,I)=>I===0?B:`${Q}$${I}${B}`,"")}var JK;function BS(A){if(!A)return"Unknown SQL Query";if(!JK)JK=new RegExp("(?=0?C&&C!=="identity"?{"http.response_content_length":I}:{"http.response_content_length_uncompressed":I}:{}}function n9(A,Q){let B=uI(A),I=f()?.getOptions(),{tracePropagationTargets:C,propagateTraceparent:E}=I??{};if(!JE(B,C,Q))return;if(!!A.getHeader("sentry-trace"))return;let J=oB({propagateTraceparent:E});if(!J)return;let{"sentry-trace":F,baggage:G,traceparent:D}=J;if(F)try{A.setHeader("sentry-trace",F),q&&H.log(jC,"Added sentry-trace header")}catch(Z){q&&H.error(jC,"Failed to set sentry-trace header:",DI(Z)?Z.message:"Unknown error")}if(D&&!A.getHeader("traceparent"))try{A.setHeader("traceparent",D),q&&H.log(jC,"Added traceparent header")}catch(Z){q&&H.error(jC,"Failed to set traceparent header:",DI(Z)?Z.message:"Unknown error")}if(G){let Z=SF(A.getHeader("baggage"),G);if(Z)try{A.setHeader("baggage",Z),q&&H.log(jC,"Added baggage header")}catch(U){q&&H.error(jC,"Failed to set baggage header:",DI(U)?U.message:"Unknown error")}}}var JS=(A)=>typeof A.__unwrap==="function",L6A="Double-wrapped http.client detected. Either disable spans in Sentry.httpIntegration, or disable the OpenTelemetry HTTP instrumentation. See: https://docs.sentry.io/platforms/javascript/guides/express/opentelemetry/custom-setup/#custom-http-instrumentation",FS=!1,ZK=q?(A)=>{if(!FS){if(JS(A.request)||JS(A.get))FS=!0,H.warn(L6A)}}:()=>{};function sZ(A){let Q=new IB(100),B=()=>f()?.getOptions(),I=(C)=>{if(YA().getScopeData().sdkProcessingMetadata[bF]===!0)return;let E=B(),{errorMonitor:Y="error",spans:J=E?xA(E):!0,propagateTrace:F=!1,breadcrumbs:G=!0,http:D,https:Z,suppressOtelWarning:U=!1}=A,{request:W}=C;if(A.ignoreOutgoingRequests?.(uI(W),W))return;let w=!1;function K(R,P){if(!w)w=!0,CS(R,P)}function X(R){R.on(Y,()=>K(R,void 0)),R.prependListener("response",(P)=>{if(R.listenerCount("response")<=1)P.resume();P.on("end",()=>K(R,P)),P.on(Y,()=>K(R,P))})}if(!J){if(G)X(W);if(F)n9(W,Q);return}if(!U){if(D)ZK(D);if(Z)ZK(Z)}let V=s(ES(W));if(A.outgoingRequestHook?.(V,W),F)if(V.isRecording())EA(V,()=>{n9(W,Q)});else n9(W,Q);let M=!1;function N(R){if(!M)M=!0,V.setStatus(R),V.end()}let L=()=>N({code:RF});W.on("close",L),W.on(Y,(R)=>{if(q&&H.log(jC,"outgoingRequest on request error()",R),G)K(W,void 0);N({code:k})}),W.prependListener("response",(R)=>{if(W.removeListener("close",L),W.listenerCount("response")<=1)R.resume();YS(R,V),A.outgoingResponseHook?.(V,R);let P=!1;function T(u){if(!P){if(P=!0,u)q&&H.log(jC,"outgoingRequest on response error()",u);if(G)K(W,R);let DA=R.aborted&&!R.complete,ZA=u||typeof R.statusCode!=="number"||DA?{code:k}:uB(R.statusCode);A.applyCustomAttributesOnSpan?.(V,W,R),N(ZA)}}R.on("end",()=>T()),R.on(Y,T)})};return{[ZE]:I}}function N6A(A,Q){if(!tC(A.request)){let{[ZE]:B}=sZ({...Q,http:A}),I=A.request;WY(A,"request",function(...E){let Y=I.apply(this,E);return B({request:Y},ZE),Y})}}function j6A(A){if(!tC(A.get))WY(A,"get",function(B,I,C){let E=A.request.call(this,B,I,C);return E.end(),E})}function GS(A,Q={}){let B=p9(A),I=A;if(B!==A){GS(B,Q);for(let C of["get","request"]){let E=Object.getOwnPropertyDescriptor(B,C);if(E)Object.defineProperty(I,C,E)}return I}return N6A(I,Q),j6A(I),A}var s9=(A,Q={})=>GS(A,Q);function DS(A,Q,B,I){let C=0,E=[];q&&H.log(I,"Patching request.on");let Y=new WeakMap,J=KV(B);try{A.on=A.addListener=new Proxy(A.on,{apply:(F,G,D)=>{let[Z,U,...W]=D;if(Z==="data"){q&&H.log(I,`Handling request.on("data") with maximum body size of ${J}b`);let w=new Proxy(U,{apply:(K,X,V)=>{try{let M=V[0],N=Buffer.from(M);if(C{let[,Z]=D,U=Y.get(Z);if(U){Y.delete(Z);let W=D.slice();return W[1]=U,Reflect.apply(F,G,W)}return Reflect.apply(F,G,D)}}),A.on("end",()=>{try{let F=Buffer.concat(E).toString("utf-8");if(F){let D=Buffer.byteLength(F,"utf-8")>J?`${Buffer.from(F).subarray(0,J-3).toString("utf-8")}...`:F;Q.setSDKProcessingMetadata({normalizedRequest:{data:D}})}}catch(F){if(q)H.error(I,"Error building captured request body",F)}})}catch(F){if(q)H.error(I,"Error patching request to capture body",F)}}var UK=new WeakMap;function ZS(A,{requestIsolationScope:Q,response:B,sessionFlushingDelayMS:I}){Q.setSDKProcessingMetadata({requestSession:{status:"ok"}}),B.once("close",()=>{let C=Q.getScopeData().sdkProcessingMetadata.requestSession;if(A&&C){q&&H.log(`Recorded request session with status: ${C.status}`);let E=new Date(VQ());E.setSeconds(0,0);let Y=E.toISOString(),J=UK.get(A),F=J?.[Y]||{exited:0,crashed:0,errored:0};if(F[{ok:"exited",crashed:"crashed",errored:"errored"}[C.status]]++,J)J[Y]=F;else{q&&H.log("Opened new request session aggregate.");let G={[Y]:F};UK.set(A,G);let D=()=>{clearTimeout(U),Z(),UK.delete(A);let W=Object.entries(G).map(([w,K])=>({started:w,exited:K.exited,errored:K.errored,crashed:K.crashed}));A.sendSession({aggregates:W})},Z=A.on("flush",()=>{q&&H.log("Sending request session aggregate due to client flush"),D()}),U=setTimeout(()=>{q&&H.log("Sending request session aggregate due to flushing schedule"),D()},I);$C(U)}}})}var US="Http.Server",R6A="Http.SentryServerSpans",WS=new WeakMap,wS=Symbol.for("sentry_http_server_instrumented");function q6A(A){return!A[wS]&&(A[wS]=!0)}function P6A(A,Q){let B=Q.emit,I=WS.get(Q);if(B===I)return;let C=new Proxy(B,{apply(E,Y,J){let[F,...G]=J;if(F!=="request")return E.apply(Y,J);let D=f(),[Z,U]=G;if(!D||!q6A(Z))return E.apply(Y,J);q&&H.log(US,"Handling incoming request");let W=CA().clone();W.setClient(D);let w=Z.socket?.remoteAddress,K=Z.url||"/",X=oF(Z),{maxRequestBodySize:V="medium",ignoreRequestBody:M,sessions:N=!0,sessionFlushingDelayMS:L=60000}=A;if(V!=="none"&&!M?.(K,Z))DS(Z,W,V,US);W.setSDKProcessingMetadata({normalizedRequest:X,ipAddress:w});let R=(Z.method||"GET").toUpperCase(),P=dI(K),T=`${R} ${P}`;if(W.setTransactionName(T),N)ZS(D,{requestIsolationScope:W,response:U,sessionFlushingDelayMS:L??60000});return gF(W,()=>{let u=X.headers?.["sentry-trace"],DA=X.headers?.baggage,ZA=Array.isArray(u)?u[0]:u;return EE({sentryTrace:ZA,baggage:Array.isArray(DA)?DA[0]:DA},()=>{let dA=YA().getPropagationContext();if(dA.propagationSpanId=tQ(),!ZA)dA.traceId=TQ(),dA.sampleRand=HQ();U.once("close",()=>{W.setContext("response",{status_code:U.statusCode})});let cA=A.wrapServerEmitRequest,qA=!1;if(cA)cA(Z,U,X,()=>{qA=E.apply(Y,J)});else qA=E.apply(Y,J);return qA})})}});WS.set(Q,C),Q.emit=C}function WK(A){let Q=A.wrapServerEmitRequest,B=O6A(A),I={...A,wrapServerEmitRequest(E,Y,J,F){let G=f()?.getOptions();if(A.spans??(G?xA(G):!1))B(E,Y,J,F);else if(Q)Q(E,Y,J,F);else F()}},C=(E)=>{let{server:Y}=E;P6A(I,Y)};return{[JG]:C}}function O6A(A){let{wrapServerEmitRequest:Q,ignoreIncomingRequests:B,ignoreStaticAssets:I=!0,onSpanCreated:C,errorMonitor:E="error",onSpanEnd:Y}=A;return(J,F,G,D)=>{if(typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__)return D();return Q?Q(J,F,G,Z):Z();function Z(){let W=CA().getClient();if(!W)return D();if(k6A(J,{ignoreStaticAssets:I,ignoreIncomingRequests:B}))return q&&H.log(R6A,"Skipping span creation for incoming request",J.url),D();let w=G.url||J.url||"/",K=TY(w),X=K?K.pathname:dI(w),V=(J.method||"GET").toUpperCase(),M=`${V} ${X}`,N=J.headers,L=N["user-agent"],R=N["x-forwarded-for"],P=J.httpVersion,T=N.host,u=T?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost",DA=w.startsWith("https")?"https":"http",{socket:ZA}=J,{localAddress:dA,localPort:cA,remoteAddress:qA,remotePort:RI}=ZA??{};return TA({name:M,kind:GA.SERVER,attributes:{[l]:"http.server",[O]:"auto.http.server",[hA]:"url","http.route":X,"otel.kind":"SERVER","net.host.ip":dA,"net.host.port":cA,"net.peer.ip":qA,"net.peer.port":RI,"sentry.http.prefetch":g6A(J)||void 0,"http.url":w,"http.method":V,"http.target":K?`${K.pathname}${K.search}`:X,"http.host":T,"net.host.name":u,"http.client_ip":typeof R==="string"?R.split(",")[0]:void 0,"http.user_agent":L,"http.scheme":DA,"http.flavor":P,"net.transport":P?.toUpperCase()==="QUIC"?"ip_udp":"ip_tcp",...T6A(J),...HC(G.headers||{},W.getDataCollectionOptions())}},(SQ)=>{C?.(SQ,J,F);let TB=!1;function aI(fC){if(TB)return;TB=!0,SQ.setAttributes({"http.status_text":F.statusMessage?.toUpperCase(),"http.response.status_code":F.statusCode,"http.status_code":F.statusCode,...HC(U9(F.headers),W?.getDataCollectionOptions()??!1,"response")}),SQ.setStatus(fC),Y?.(SQ,J,F),SQ.end()}F.once("close",()=>{aI(uB(F.statusCode))}),F.once(E,()=>{let fC=uB(F.statusCode);aI(fC.code===k?fC:{code:k})}),D()})}}}function k6A(A,{ignoreStaticAssets:Q,ignoreIncomingRequests:B}){let I=A.url,C=A.method?.toUpperCase();if(C==="OPTIONS"||C==="HEAD"||!I)return!0;if(Q&&C==="GET"&&XS(I))return!0;if(B?.(I,A))return!0;return!1}function XS(A){let Q=dI(A);if(Q.match(/\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/))return!0;if(Q.match(/^\/(robots\.txt|sitemap\.xml|manifest\.json|browserconfig\.xml)$/))return!0;return!1}function g6A(A){return A.headers["next-router-prefetch"]==="1"}function T6A(A){let{headers:Q}=A,B=Q["content-length"],I=B?parseInt(String(B),10):-1,C=Q["content-encoding"];return I>=0?C&&C!=="identity"?{"http.request_content_length":I}:{"http.request_content_length_uncompressed":I}:{}}function _6A(A){let Q=A.constructor?.name??"";if(Q.includes("OpenAI"))return"openai";if(Q.includes("Google"))return"google_genai";if(Q.includes("Mistral"))return"mistralai";if(Q.includes("Vertex"))return"google_vertexai";if(Q.includes("Bedrock"))return"aws_bedrock";if(Q.includes("Ollama"))return"ollama";if(Q.includes("Cloudflare"))return"cloudflare";if(Q.includes("Cohere"))return"cohere";return"langchain"}function y6A(A){let Q=A??{},B={[O]:DE,[l]:yV,[DQ]:"embeddings",[pA]:Q.model??"unknown"};if(B[MC]=_6A(Q),"dimensions"in Q)B[H9]=Q.dimensions;if("encodingFormat"in Q)B[$9]=Q.encodingFormat;return B}function VS(A,Q={}){let{recordInputs:B}=sB(Q);return new Proxy(A,{apply(I,C,E){let Y=y6A(C),J=Y[pA]||"unknown";if(B){let F=E[0];if(F!=null)Y[K0]=typeof F==="string"?F:JSON.stringify(F)}return vA({name:`embeddings ${J}`,op:yV,attributes:Y},()=>{return Reflect.apply(I,C,E).then(void 0,(F)=>{throw o(F,{mechanism:{handled:!1,type:"auto.ai.langchain"}}),F})})}})}function a9(A,Q){let B=A;if(typeof B.embedQuery==="function")B.embedQuery=VS(B.embedQuery,Q);if(typeof B.embedDocuments==="function")B.embedDocuments=VS(B.embedDocuments,Q);return A}var zI=m(AA(),1),rY=m(CB(),1);import{errorMonitor as WTA}from"node:events";var _o="db.operation.batch.size";var yo="db.query.text";var So="db.statement";var fo="db.system",WG="db.system.name";var ho="error.type";var xo="faas.trigger";var vo="gen_ai.embeddings.input",bo="gen_ai.function_id",mo="gen_ai.input.messages",co="gen_ai.operation.name";var uo="gen_ai.output.messages";var lo="gen_ai.request.available_tools";var po="gen_ai.request.model";var io="gen_ai.response.finish_reasons",oo="gen_ai.response.id",no="gen_ai.response.model",so="gen_ai.response.streaming";var ao="gen_ai.system";var ro="gen_ai.tool.input";var to="gen_ai.tool.name",eo="gen_ai.tool.output",An="gen_ai.tool.type";var Qn="gen_ai.usage.input_tokens";var Bn="gen_ai.usage.output_tokens";var In="gen_ai.usage.total_tokens";var z2="http.method";var N0="http.request.method";var pI="http.response.status_code";var XE="http.route";var wG="http.status_code",Cn="http.target",YU="http.url";var En="messaging.system";var Yn="network.peer.address",Jn="network.peer.port";var Fn="net.host.ip";var Gn="net.host.port",Dn="net.peer.ip";var Zn="rpc.grpc.status_code";var Un="rpc.service";var XG="server.address",VG="server.port",N6="service.name",Wn="service.version";var j0="url.full",$2="url.path";var wn="url.query",Xn="url.scheme";var Vn="user_agent.original";var EQ=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var R0=m(AA(),1);import{subscribe as DTA}from"node:diagnostics_channel";var Kn=R0.createContextKey("sentry_http_server_instrumented"),ZTA="Http.Server";function zn(A,Q){FQ(A,"_startSpanCallback",new WeakRef(Q))}var UTA=(A={})=>{let Q={sessions:A.sessions??!0,sessionFlushingDelayMS:A.sessionFlushingDelayMS??60000,maxRequestBodySize:A.maxRequestBodySize??"medium",spans:!1,ignoreRequestBody:A.ignoreRequestBody,wrapServerEmitRequest(B,I,C,E){let Y=f();if(!Y)return E();if(R0.context.active().getValue(Kn))return E();let J=R0.propagation.extract(R0.context.active(),C.headers).setValue(Kn,!0);R0.context.with(J,()=>{Y.emit("httpServerRequest",B,I,C);let F=B._startSpanCallback?.deref();if(F)F(()=>{return E(),!0});else E()})}};return{name:ZTA,setupOnce(){let{[JG]:B}=WK(Q);DTA(JG,B)},afterAllSetup(B){if(EQ&&B.getIntegrationByName("Http"))H.warn("It seems that you have manually added `httpServerIntegration` while `httpIntegration` is also present. Make sure to remove `httpServerIntegration` when adding `httpIntegration`.")}}},KG=UTA;var $n="Http.ServerSpans",wTA=(A={})=>{let Q=A.ignoreStaticAssets??!0,B=A.ignoreIncomingRequests,I=A.ignoreStatusCodes??[[401,404],[301,303],[305,399]],{onSpanCreated:C}=A,{requestHook:E,responseHook:Y,applyCustomAttributesOnSpan:J}=A.instrumentation??{};return{name:$n,setup(F){if(typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__)return;F.on("httpServerRequest",(G,D,Z)=>{let U=G,W=D;zn(U,(K)=>{if(KTA(U,{ignoreStaticAssets:Q,ignoreIncomingRequests:B}))return EQ&&H.log($n,"Skipping span creation for incoming request",U.url),K();let X=Z.url||U.url||"/",V=TY(X),M=U.headers,N=M["user-agent"],L=M["x-forwarded-for"],R=U.httpVersion,P=M.host,T=P?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost",u=F.tracer,DA=X.startsWith("https")?"https":"http",ZA=Z.method||U.method?.toUpperCase()||"GET",dA=V?V.pathname:dI(X),cA=`${ZA} ${dA}`,qA=u.startSpan(cA,{kind:zI.SpanKind.SERVER,attributes:{[l]:"http.server",[O]:"auto.http.otel.http","sentry.http.prefetch":XTA(U)||void 0,"http.url":X,"http.method":Z.method,"http.target":V?`${V.pathname}${V.search}`:dA,"http.host":P,"net.host.name":T,"http.client_ip":typeof L==="string"?L.split(",")[0]:void 0,"http.user_agent":N,"http.scheme":DA,"http.flavor":R,"net.transport":R?.toUpperCase()==="QUIC"?"ip_udp":"ip_tcp",...zTA(U),...HC(Z.headers||{},F.getDataCollectionOptions())}});E?.(qA,U),Y?.(qA,W),J?.(qA,U,W),C?.(qA,U,W);let RI={type:rY.RPCType.HTTP,span:qA};return zI.context.with(rY.setRPCMetadata(zI.trace.setSpan(zI.context.active(),qA),RI),()=>{zI.context.bind(zI.context.active(),U),zI.context.bind(zI.context.active(),W);let SQ=!1;function TB(aI){if(SQ)return;SQ=!0;let fC=MTA(U,W);qA.setAttributes(fC),qA.setStatus(aI),qA.end();let rU=fC["http.route"];if(rU)CA().setTransactionName(`${U.method?.toUpperCase()||"GET"} ${rU}`)}return W.on("close",()=>{TB(uB(W.statusCode))}),W.on(WTA,()=>{let aI=uB(W.statusCode);TB(aI.code===k?aI:{code:k})}),K()})})})},processEvent(F){if(F.type==="transaction"){let G=F.contexts?.trace?.data?.["http.response.status_code"];if(typeof G==="number"){if(LTA(G,I))return EQ&&H.log("Dropping transaction due to status code",G),null}}return F},afterAllSetup(F){if(!EQ)return;if(F.getIntegrationByName("Http"))H.warn("It seems that you have manually added `httpServerSpansIntegration` while `httpIntegration` is also present. Make sure to remove `httpIntegration` when adding `httpServerSpansIntegration`.");if(!F.getIntegrationByName("Http.Server"))H.error("It seems that you have manually added `httpServerSpansIntegration` without adding `httpServerIntegration`. This is a requiement for spans to be created - please add the `httpServerIntegration` integration.")}}},zG=wTA;function XTA(A){return A.headers["next-router-prefetch"]==="1"}function VTA(A){let Q=dI(A);if(Q.match(/\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/))return!0;if(Q.match(/^\/(robots\.txt|sitemap\.xml|manifest\.json|browserconfig\.xml)$/))return!0;return!1}function KTA(A,{ignoreStaticAssets:Q,ignoreIncomingRequests:B}){if(zC())return!0;let I=A.url,C=A.method?.toUpperCase();if(C==="OPTIONS"||C==="HEAD"||!I)return!0;if(Q&&C==="GET"&&VTA(I))return!0;if(B?.(I,A))return!0;return!1}function zTA(A){let Q=$TA(A.headers);if(Q==null)return{};if(HTA(A.headers))return{["http.request_content_length"]:Q};else return{["http.request_content_length_uncompressed"]:Q}}function $TA(A){let Q=A["content-length"];if(Q===void 0)return null;let B=parseInt(Q,10);if(isNaN(B))return null;return B}function HTA(A){let Q=A["content-encoding"];return!!Q&&Q!=="identity"}function MTA(A,Q){let{socket:B}=A,{statusCode:I,statusMessage:C}=Q,E={[pI]:I,[wG]:I,"http.status_text":C?.toUpperCase()},Y=rY.getRPCMetadata(zI.context.active());if(B){let{localAddress:J,localPort:F,remoteAddress:G,remotePort:D}=B;E[Fn]=J,E[Gn]=F,E[Dn]=G,E["net.peer.port"]=D}if(E[wG]=I,E["http.status_text"]=(C||"").toUpperCase(),Y?.type===rY.RPCType.HTTP&&Y.route!==void 0){let J=Y.route;E[XE]=J}return E}function LTA(A,Q){return Q.some((B)=>{if(typeof B==="number")return B===A;let[I,C]=B;return A>=I&&A<=C})}var AJ=m(AA(),1),KU=m(jA(),1);import{subscribe as oyA}from"node:diagnostics_channel";var Wa="@sentry/instrumentation-http";var nI=V5(process.versions.node),VE=nI.major,VU=nI.minor;import{errorMonitor as nyA}from"node:events";import*as syA from"node:http";import*as ayA from"node:https";var ryA=nI.major===22&&nI.minor>=12||nI.major===23&&nI.minor>=2||nI.major>=24;class RG extends KU.InstrumentationBase{constructor(A={}){super(Wa,h,A)}init(){let{outgoingRequestApplyCustomAttributes:A,...Q}=this.getConfig(),B={propagateTrace:Q.propagateTraceInOutgoingRequests,applyCustomAttributesOnSpan:A,...Q,spans:Q.createSpansForOutgoingRequests&&(Q.spans??!0),ignoreOutgoingRequests(F,G){return zC()||!!Q.ignoreOutgoingRequests?.(F,o9(G))},outgoingRequestHook(F,G){Q.outgoingRequestHook?.(F,G);let D=G.once,Z=new Proxy(D,{apply(U,W,w){let[K]=w;if(K!=="response")return U.apply(W,w);let X=AJ.context.active(),V=AJ.trace.setSpan(X,F);return AJ.context.with(V,()=>{return U.apply(W,w)})}});G.once=Z},outgoingResponseHook(F,G){Q.outgoingResponseHook?.(F,G),AJ.context.bind(AJ.context.active(),G)},errorMonitor:nyA,http:syA,https:ayA},{[ZE]:I}=ryA?sZ(B):{},C=!1,E=I?(F)=>{if(!C&&I)C=!0,oyA(ZE,I);return F}:void 0,Y=E??((F)=>s9(F,B)),J=E??((F)=>s9(F,B));return[new KU.InstrumentationNodeModuleDefinition("http",["*"],Y),new KU.InstrumentationNodeModuleDefinition("https",["*"],J)]}}var Va=m(jA(),1);import*as qG from"diagnostics_channel";var E7="sentry-trace",T2="baggage",tyA="traceparent";function wa(A,Q){let B=_2(A.origin,A.path),{tracePropagationTargets:I,propagateTraceparent:C}=f()?.getOptions()||{},E=JE(B,I,Q)?oB({propagateTraceparent:C}):void 0;if(!E)return;let{"sentry-trace":Y,baggage:J,traceparent:F}=E,G=Array.isArray(A.headers)?eyA(A.headers):ASA(A.headers);if(Y7(G,E7),Y7(G,T2),C)Y7(G,tyA);if(J7(G,E7)===-1){if(Y)G.push(E7,Y);if(F&&J7(G,"traceparent")===-1)G.push("traceparent",F);let Z=J7(G,T2);if(J&&Z===-1)G.push(T2,J);else if(J){let U=G[Z+1],W=SF(U,J);if(W)G[Z+1]=W}}if(Array.isArray(A.headers))A.headers.splice(0,A.headers.length,...G);else A.headers=QSA(G)}function eyA(A){let Q=[];for(let B=0;BI%2===0&&B===Q)}function Xa(A,Q){let B=BSA(A),I=Q.statusCode,C=iZ(I);nB({category:"http",data:{status_code:I,...B},type:"http",level:C},{event:"response",request:A,response:Q})}function BSA(A){try{let Q=_2(A.origin,A.path),B=F0(Q),I={url:G0(B),"http.method":A.method||"GET"};if(B.search)I["http.query"]=B.search;if(B.hash)I["http.fragment"]=B.hash;return I}catch{return{}}}function _2(A,Q="/"){try{return new URL(Q,A).toString()}catch{let B=`${A}`;if(B.endsWith("/")&&Q.startsWith("/"))return`${B}${Q.slice(1)}`;if(!B.endsWith("/")&&!Q.startsWith("/"))return`${B}/${Q}`;return`${B}${Q}`}}class PG extends Va.InstrumentationBase{constructor(A={}){super("@sentry/instrumentation-node-fetch",h,A);this._channelSubs=[],this._propagationDecisionMap=new IB(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){return}disable(){super.disable(),this._channelSubs.forEach((A)=>A.unsubscribe()),this._channelSubs=[]}enable(){if(super.enable(),this._channelSubs=this._channelSubs||[],this._channelSubs.length>0)return;this._subscribeToChannel("undici:request:create",this._onRequestCreated.bind(this)),this._subscribeToChannel("undici:request:headers",this._onResponseHeaders.bind(this))}_onRequestCreated({request:A}){let Q=this.getConfig();if(Q.enabled===!1)return;let I=this._shouldIgnoreOutgoingRequest(A);if(this._ignoreOutgoingRequestsMap.set(A,I),I)return;if(Q.tracePropagation!==!1)wa(A,this._propagationDecisionMap)}_onResponseHeaders({request:A,response:Q}){let B=this.getConfig();if(B.enabled===!1)return;let C=B.breadcrumbs,E=typeof C>"u"?!0:C,Y=this._ignoreOutgoingRequestsMap.get(A);if(E&&!Y)Xa(A,Q)}_subscribeToChannel(A,Q){let B=VE>18||VE===18&&VU>=19,I;if(B)qG.subscribe?.(A,Q),I=()=>qG.unsubscribe?.(A,Q);else{let C=qG.channel(A);C.subscribe(Q),I=()=>C.unsubscribe(Q)}this._channelSubs.push({name:A,unsubscribe:I})}_shouldIgnoreOutgoingRequest(A){if(zC())return!0;let Q=_2(A.origin,A.path),B=this.getConfig().ignoreOutgoingRequests;if(typeof B!=="function"||!Q)return!1;return B(Q)}}var kB=m(AA(),1),x=m(AA(),1);var PC=m(P7(),1),pQ=m(CB(),1),f7="sentry.parentIsRemote",CJ="sentry.graphql.operation";function h7(A){if("parentSpanId"in A)return A.parentSpanId;else if("parentSpanContext"in A)return A.parentSpanContext?.spanId;return}function a2(A){let Q=A;return!!Q.attributes&&typeof Q.attributes==="object"}function $e(A){return typeof A.kind==="number"}function He(A){return!!A.status}function x7(A){return!!A.name}function Me(A){if(!a2(A))return{};let Q=A.attributes[j0]||A.attributes[YU],B={url:Q,"http.method":A.attributes[N0]||A.attributes[z2]};if(!B["http.method"]&&B.url)B["http.method"]="GET";try{if(typeof Q==="string"){let I=F0(Q);if(B.url=G0(I),I.search)B["http.query"]=I.search;if(I.hash)B["http.fragment"]=I.hash}}catch{}return B}function Le(A){if($e(A))return A.kind;return x.SpanKind.INTERNAL}var n2="sentry-trace",O7="baggage",v7="sentry.dsc",b7="sentry.sampled_not_recording",Ne="sentry.url",_hA="sentry.sample_rand",yhA="sentry.sample_rate",je="sentry.ignored",Re="sentry.segment_ignored",r2=x.createContextKey("sentry_scopes"),k7=x.createContextKey("sentry_fork_isolation_scope"),g7=x.createContextKey("sentry_fork_set_scope"),T7=x.createContextKey("sentry_fork_set_isolation_scope"),qe="_scopeContext";function EJ(A){return A.getValue(r2)}function Pe(A,Q){return A.setValue(r2,Q)}function ShA(A,Q){FQ(A,qe,wY(Q))}function yG(A){return XY(A[qe])}function SG(A){let{traceFlags:Q,traceState:B}=A,I=B?B.get(b7)==="1":!1;if(Q===x.TraceFlags.SAMPLED)return!0;if(I)return!1;let C=B?B.get(v7):void 0,E=C?xI(C):void 0;if(E?.sampled==="true")return!0;if(E?.sampled==="false")return!1;return}function s2(A,Q,B){let I=Q[N0]||Q[z2];if(I)return hhA({attributes:Q,name:A,kind:B},I);let C=Q[WG]||Q[fo],E=typeof Q[l]==="string"&&Q[l].startsWith("cache.");if(C&&!E)return fhA({attributes:Q,name:A});let Y=Q[hA]==="custom"?"custom":"route";if(Q[Un])return{...RU(A,Q,"route"),op:"rpc"};if(Q[En])return{...RU(A,Q,Y),op:"message"};let G=Q[xo];if(G)return{...RU(A,Q,Y),op:G.toString()};return{op:void 0,description:A,source:"custom"}}function Oe(A){let Q=a2(A)?A.attributes:{},B=x7(A)?A.name:"",I=Le(A);return s2(B,Q,I)}function fhA({attributes:A,name:Q}){let B=A[WI];if(typeof B==="string")return{op:"db",description:B,source:A[hA]||"custom"};if(A[hA]==="custom")return{op:"db",description:Q,source:"custom"};let I=A[So];return{op:"db",description:I?I.toString():Q,source:"task"}}function hhA({name:A,kind:Q,attributes:B},I){let C=["http"];switch(Q){case x.SpanKind.CLIENT:C.push("client");break;case x.SpanKind.SERVER:C.push("server");break}if(B["sentry.http.prefetch"])C.push("prefetch");let{urlPath:E,url:Y,query:J,fragment:F,hasRoute:G}=vhA(B,Q);if(!E)return{...RU(A,B),op:C.join(".")};let D=B[CJ],Z=`${I} ${E}`,U=D?`${Z} (${xhA(D)})`:Z,W=G||E==="/"?"route":"url",w={};if(Y)w.url=Y;if(J)w["http.query"]=J.slice(1);if(F)w["http.fragment"]=F.slice(1);let K=Q===x.SpanKind.CLIENT||Q===x.SpanKind.SERVER,V=!`${B[O]||"manual"}`.startsWith("auto"),M=B[hA]==="custom",N=B[WI],L=!M&&N==null&&(K||!V),{description:R,source:P}=L?{description:U,source:W}:RU(A,B);return{op:C.join("."),description:R,source:P,data:w}}function xhA(A){if(Array.isArray(A)){let Q=A.slice().sort();if(Q.length<=5)return Q.join(", ");else return`${Q.slice(0,5).join(", ")}, +${Q.length-5}`}return`${A}`}function vhA(A,Q){let B=A[Cn],I=A[YU]||A[j0],C=A[XE],E=typeof I==="string"?F0(I):void 0,Y=E?G0(E):void 0,J=E?.search||void 0,F=E?.hash||void 0;if(typeof C==="string")return{urlPath:C,url:Y,query:J,fragment:F,hasRoute:!0};if(Q===x.SpanKind.SERVER&&typeof B==="string")return{urlPath:dI(B),url:Y,query:J,fragment:F,hasRoute:!1};if(E)return{urlPath:Y,url:Y,query:J,fragment:F,hasRoute:!1};if(typeof B==="string")return{urlPath:dI(B),url:Y,query:J,fragment:F,hasRoute:!1};return{urlPath:void 0,url:Y,query:J,fragment:F,hasRoute:!1}}function RU(A,Q,B="custom"){let I=Q[hA]||B,C=Q[WI];if(C&&typeof C==="string")return{description:C,source:I};return{description:A,source:I}}function m7(A){A.on("createDsc",(Q,B)=>{if(!B)return;let E=r(B).data[hA],{description:Y}=x7(B)?Oe(B):{description:void 0};if(E!=="url"&&Y)Q.transaction=Y;if(xA()){let J=SG(B.spanContext());Q.sampled=J==null?void 0:String(J)}})}function d7(){return x.trace.getActiveSpan()}var P0=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;class t2{constructor(){this._internalState=new Map}set(A,Q){let B=this._clone();if(B._internalState.has(A))B._internalState.delete(A);return B._internalState.set(A,Q),B}unset(A){let Q=this._clone();return Q._internalState.delete(A),Q}get(A){return this._internalState.get(A)}serialize(){return Array.from(this._internalState.keys()).reverse().map((A)=>`${A}=${this._internalState.get(A)}`).join(",")}_clone(){let A=new t2;return A._internalState=new Map(this._internalState),A}}function ke({dsc:A,sampled:Q}){let B=A?$Y(A):void 0,I=new t2,C=B?I.set(v7,B):I;return Q===!1?C.set(b7,"1"):C}var ge=new Set;function c7(){return Array.from(ge)}function qU(A){ge.add(A)}class e2 extends pQ.W3CBaggagePropagator{constructor(){super();qU("SentryPropagator"),this._urlMatchesTargetsMap=new IB(100)}inject(A,Q,B){if(pQ.isTracingSuppressed(A)){P0&&H.log("[Tracing] Not injecting trace data for url because tracing is suppressed.");return}let I=x.trace.getSpan(A),C=I&&chA(I),{tracePropagationTargets:E,propagateTraceparent:Y}=f()?.getOptions()||{};if(!JE(C,E,this._urlMatchesTargetsMap)){P0&&H.log("[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:",C);return}let J=mhA(Q),F=dhA(Q),G=x.propagation.getBaggage(A)||x.propagation.createBaggage({}),{dynamicSamplingContext:D,traceId:Z,spanId:U,sampled:W}=Te(A);if(J){let w=yF(J);if(w)Object.entries(w).forEach(([K,X])=>{if(!F&&K.startsWith(IE))return;G=G.setEntry(K,{value:X})})}if(!F&&D)G=Object.entries(D).reduce((w,[K,X])=>{if(X)return w.setEntry(`${IE}${K}`,{value:X});return w},G);if(!F&&Z&&Z!==x.INVALID_TRACEID){if(B.set(Q,n2,Q0(Z,U,W)),Y)B.set(Q,"traceparent",B0(Z,U,W))}super.inject(x.propagation.setBaggage(A,G),Q,B)}extract(A,Q,B){let I=B.get(Q,n2),C=B.get(Q,O7),E=I?Array.isArray(I)?I[0]:I:void 0;return ye(_e(A,{sentryTrace:E,baggage:C}))}fields(){return[n2,O7,"traceparent"]}}function Te(A,Q={}){let B=x.trace.getSpan(A);if(B?.spanContext().isRemote){let J=B.spanContext();return{dynamicSamplingContext:GQ(B),traceId:J.traceId,spanId:void 0,sampled:SG(J)}}if(B){let J=B.spanContext();return{dynamicSamplingContext:GQ(B),traceId:J.traceId,spanId:J.spanId,sampled:SG(J)}}let I=Q.scope||EJ(A)?.scope||YA(),C=Q.client||f(),E=I.getPropagationContext();return{dynamicSamplingContext:C?mI(C,I):void 0,traceId:E.traceId,spanId:E.propagationSpanId,sampled:E.sampled}}function _e(A,{sentryTrace:Q,baggage:B}){let I=CE(Q,B),{traceId:C,parentSpanId:E,sampled:Y,dsc:J}=I,F=f(),G=xI(B);if(!E||F&&!JZ(F,G?.org_id))return A;let D=uhA({traceId:C,spanId:E,sampled:Y,dsc:J});return x.trace.setSpanContext(A,D)}function bhA(A,Q,B){let I=ye(_e(A,Q));return x.context.with(I,B)}function ye(A){let Q=EJ(A),B={scope:Q?Q.scope:YA().clone(),isolationScope:Q?Q.isolationScope:CA()};return Pe(A,B)}function mhA(A){try{let Q=A[O7];return Array.isArray(Q)?Q.join(","):Q}catch{return}}function dhA(A){try{return A[n2]}catch{return}}function chA(A){let Q=r(A).data,B=Q[YU]||Q[j0];if(typeof B==="string")return B;let I=A.spanContext().traceState?.get(Ne);if(I)return I;return}function uhA({spanId:A,traceId:Q,sampled:B,dsc:I}){let C=ke({dsc:I,sampled:B});return{traceId:Q,spanId:A,isRemote:!0,traceFlags:B?x.TraceFlags.SAMPLED:x.TraceFlags.NONE,traceState:C}}function Se(A,Q,B){let I=ve(),{name:C,parentSpan:E}=A;return ue(E)(()=>{let J=de(A.scope,A.forceTransaction),F=A.onlyIfParent&&!x.trace.getSpan(J),G=F?pQ.suppressTracing(J):J;if(F)f()?.recordDroppedEvent("no_parent_span","span");let D=be(A);if(!xA()){let Z=pQ.isTracingSuppressed(G)?G:pQ.suppressTracing(G);return x.context.with(Z,()=>{return I.startActiveSpan(C,D,Z,(U)=>{return _7(U),x.context.with(J,()=>{return vI(()=>Q(U),()=>{if(r(U).status===void 0)U.setStatus({code:x.SpanStatusCode.ERROR})},B?()=>U.end():void 0)})})})}return I.startActiveSpan(C,D,G,(Z)=>{return _7(Z),vI(()=>Q(Z),()=>{if(r(Z).status===void 0)Z.setStatus({code:x.SpanStatusCode.ERROR})},B?()=>Z.end():void 0)})})}function fe(A,Q){return Se(A,Q,!0)}function he(A,Q){return Se(A,(B)=>Q(B,()=>B.end()),!1)}function xe(A){let Q=ve(),{name:B,parentSpan:I}=A;return ue(I)(()=>{let E=de(A.scope,A.forceTransaction),Y=A.onlyIfParent&&!x.trace.getSpan(E),J=Y?pQ.suppressTracing(E):E;if(Y)f()?.recordDroppedEvent("no_parent_span","span");let F=be(A);if(!xA())J=pQ.isTracingSuppressed(J)?J:pQ.suppressTracing(J);let G=Q.startSpan(B,F,J);return _7(G),G})}function u7(A,Q){let B=A?x.trace.setSpan(x.context.active(),A):x.trace.deleteSpan(x.context.active());return x.context.with(B,()=>Q(YA()))}function ve(){return f()?.tracer||x.trace.getTracer("@sentry/opentelemetry",h)}function be(A){let{startTime:Q,attributes:B,kind:I,op:C,links:E}=A,Y=typeof Q==="number"?me(Q):Q;return{attributes:C?{[l]:C,...B}:B,kind:I,links:E,startTime:Y}}function me(A){return A<9999999999?A*1000:A}function _7(A){let Q=A.end.bind(A);A.end=(B)=>{return Q(typeof B==="number"?me(B):B)}}function de(A,Q){let B=lhA(A),I=x.trace.getSpan(B);if(!I)return B;if(!Q)return B;let C=x.trace.deleteSpan(B),{spanId:E,traceId:Y}=I.spanContext(),J=SG(I.spanContext()),F=sA(I),G=GQ(F),D=ke({dsc:G,sampled:J}),Z={traceId:Y,spanId:E,isRemote:!0,traceFlags:J?x.TraceFlags.SAMPLED:x.TraceFlags.NONE,traceState:D};return x.trace.setSpanContext(C,Z)}function lhA(A){if(A){let Q=yG(A);if(Q)return Q}return x.context.active()}function ce(A,Q){return bhA(x.context.active(),A,Q)}function phA(A){let Q=TQ(),B=tQ(),I={traceId:Q,spanId:B,isRemote:!0,traceFlags:x.TraceFlags.NONE},C=x.trace.setSpanContext(x.context.active(),I);return x.context.with(C,()=>{return YA().setPropagationContext({traceId:Q,sampleRand:HQ()}),A()})}function l7(A,Q){let B=yG(Q),I=B&&x.trace.getSpan(B),C=I?KC(I):KY(Q);return[I?GQ(I):mI(A,Q),C]}function ue(A){return A!==void 0?(Q)=>{return u7(A,Q)}:(Q)=>Q()}function le(A){let Q=pQ.suppressTracing(x.context.active());return x.context.with(Q,A)}function ihA(A){let Q=A?yG(A):x.context.active();return Q?pQ.isTracingSuppressed(Q):!1}function p7(A){A.on("preprocessEvent",(Q)=>{let B=d7();if(!B||Q.type==="transaction")return;Q.contexts={trace:KC(B),...Q.contexts};let I=sA(B);return Q.sdkProcessingMetadata={dynamicSamplingContext:GQ(I),...Q.sdkProcessingMetadata},Q})}function pe(A,Q){let B=x.trace.getSpan(A),I;if(B?.spanContext().traceState?.get(je)==="1"){let K=x.trace.deleteSpan(A),X=x.trace.getSpan(Q);I=X?x.trace.setSpan(K,X):K}else I=A;let C=EJ(I),E=C?.scope||YA(),Y=C?.isolationScope||CA(),J=I.getValue(k7)===!0,F=I.getValue(g7),G=I.getValue(T7),D=F||E.clone(),Z=G||(J?Y.clone():Y),w=Pe(I,{scope:D,isolationScope:Z}).deleteValue(k7).deleteValue(g7).deleteValue(T7);return ShA(D,w),w}function ohA(A){let Q=new Map;for(let B of A)nhA(Q,B);return Array.from(Q,function([B,I]){return I})}function ie(A){return A.attributes[f7]!==!0?h7(A):void 0}function nhA(A,Q){let B=Q.spanContext().spanId,I=ie(Q);if(!I){y7(A,{id:B,span:Q,children:[]});return}let C=shA(A,I),E=y7(A,{id:B,span:Q,parentNode:C,children:[]});C.children.push(E)}function shA(A,Q){let B=A.get(Q);if(B)return B;return y7(A,{id:Q,children:[]})}function y7(A,Q){let B=A.get(Q.id);if(B?.span)return B;if(B&&!B.span)return B.span=Q.span,B.parentNode=Q.parentNode,B;return A.set(Q.id,Q),Q}var oe={"1":"cancelled","2":"unknown_error","3":"invalid_argument","4":"deadline_exceeded","5":"not_found","6":"already_exists","7":"permission_denied","8":"resource_exhausted","9":"failed_precondition","10":"aborted","11":"out_of_range","12":"unimplemented","13":"internal_error","14":"unavailable","15":"data_loss","16":"unauthenticated"},ahA=(A)=>{return Object.values(oe).includes(A)};function ne(A){let Q=a2(A)?A.attributes:{},B=He(A)?A.status:void 0;if(B){if(B.code===x.SpanStatusCode.OK)return{code:AE};else if(B.code===x.SpanStatusCode.ERROR){if(typeof B.message>"u"){let C=we(Q);if(C)return C}if(B.message&&ahA(B.message))return{code:k,message:B.message};else return{code:k,message:"internal_error"}}}let I=we(Q);if(I)return I;if(B?.code===x.SpanStatusCode.UNSET)return{code:AE};else return{code:k,message:"unknown_error"}}function we(A){let Q=A[pI]||A[wG],B=A[Zn],I=typeof Q==="number"?Q:typeof Q==="string"?parseInt(Q):void 0;if(typeof I==="number")return uB(I);if(typeof B==="string")return{code:k,message:oe[B]||"unknown_error"};return}var Xe=1000,rhA=300,thA=1e4;class se{constructor(A){this._finishedSpanBucketSize=A?.timeout||rhA,this._finishedSpanBuckets=Array(this._finishedSpanBucketSize).fill(void 0),this._lastCleanupTimestampInS=Math.floor(VQ()/1000),this._spansToBucketEntry=new WeakMap,this._sentSpans=new IB(thA),this._debouncedFlush=WV(this.flush.bind(this),1,{maxWait:100})}export(A){let Q=Math.floor(VQ()/1000);if(this._lastCleanupTimestampInS!==Q){let E=0;if(this._finishedSpanBuckets.forEach((Y,J)=>{if(Y&&Y.timestampInS<=Q-this._finishedSpanBucketSize)E+=Y.spans.size,this._finishedSpanBuckets[J]=void 0}),E>0)P0&&H.log(`SpanExporter dropped ${E} spans because they were pending for more than ${this._finishedSpanBucketSize} seconds.`);this._lastCleanupTimestampInS=Q}let B=Q%this._finishedSpanBucketSize,I=this._finishedSpanBuckets[B]||{timestampInS:Q,spans:new Set};this._finishedSpanBuckets[B]=I,I.spans.add(A),this._spansToBucketEntry.set(A,I);let C=ie(A);if(!C||this._sentSpans.get(C))this._debouncedFlush()}flush(){let A=this._finishedSpanBuckets.flatMap((C)=>C?Array.from(C.spans):[]),Q=this._maybeSend(A),B=Q.size,I=A.length-B;P0&&H.log(`SpanExporter exported ${B} spans, ${I} spans are waiting for their parent spans to finish`);for(let C of Q){this._sentSpans.set(C.spanContext().spanId,1);let E=this._spansToBucketEntry.get(C);if(E)E.spans.delete(C)}this._debouncedFlush.cancel()}clear(){this._finishedSpanBuckets=this._finishedSpanBuckets.fill(void 0),this._sentSpans.clear(),this._debouncedFlush.cancel()}_maybeSend(A){let Q=ohA(A),B=new Set,I=this._getCompletedRootNodes(Q);for(let C of I){let E=C.span;B.add(E);let Y=AxA(E);if(C.parentNode&&this._sentSpans.get(C.parentNode.id)){let D=Y.contexts?.trace?.data;if(D)D["sentry.parent_span_already_sent"]=!0}let J=Y.spans||[],F=!1;for(let D of C.children)if(S7(D,J,B))F=!0;if(Y.spans=J.length>Xe?J.sort((D,Z)=>D.start_timestamp-Z.start_timestamp).slice(0,Xe):J,F)Y.sdkProcessingMetadata={...Y.sdkProcessingMetadata,hasGenAiSpans:!0};let G=jY(E.events);if(G)Y.measurements=G;LZ(Y)}return B}_nodeIsCompletedRootNodeOrHasSentParent(A){return!!A.span&&(!A.parentNode||!!this._sentSpans.get(A.parentNode.id))}_getCompletedRootNodes(A){return A.filter((Q)=>this._nodeIsCompletedRootNodeOrHasSentParent(Q))}}function ehA(A){let Q=A.attributes,B=Q[O],I=Q[l],C=Q[hA];return{origin:B,op:I,source:C}}function AxA(A){let{op:Q,description:B,data:I,origin:C="manual",source:E}=ae(A),Y=jB(A),J=A.attributes[UI],F={[hA]:E,[UI]:J,[l]:Q,[O]:C,...I,...re(A.attributes)},{links:G}=A,{traceId:D,spanId:Z}=A.spanContext(),U=h7(A),W=ne(A),w={parent_span_id:U,span_id:Z,trace_id:D,data:F,origin:C,op:Q,status:MY(W),links:HY(G)},K=F[pI],X=typeof K==="number"?{response:{status_code:K}}:void 0;return{contexts:{trace:w,otel:{resource:A.resource.attributes},...X},spans:[],start_timestamp:AB(A.startTime),timestamp:AB(A.endTime),transaction:B,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:Y.scope,capturedSpanIsolationScope:Y.isolationScope,sampleRate:J,dynamicSamplingContext:GQ(A)},...E&&{transaction_info:{source:E}}}}function S7(A,Q,B){let I=A.span;if(I)B.add(I);if(!I){let L=!1;return A.children.forEach((R)=>{if(S7(R,Q,B))L=!0}),L}let E=I.spanContext().spanId,Y=I.spanContext().traceId,J=h7(I),{attributes:F,startTime:G,endTime:D,links:Z}=I,{op:U,description:W,data:w,origin:K="manual"}=ae(I),X={[O]:K,[l]:U,...re(F),...w},V=ne(I),M={span_id:E,trace_id:Y,data:X,description:W,parent_span_id:J,start_timestamp:AB(G),timestamp:AB(D)||void 0,status:MY(V),op:U,origin:K,measurements:jY(I.events),links:HY(Z)};Q.push(M);let N=!!U?.startsWith("gen_ai.");return A.children.forEach((L)=>{if(S7(L,Q,B))N=!0}),N}function ae(A){let{op:Q,source:B,origin:I}=ehA(A),{op:C,description:E,source:Y,data:J}=Oe(A),F=Q||C,G=B||Y,D={...J,...QxA(A)};return{op:F,description:E,source:G,origin:I,data:D}}function re(A){let Q={...A};return delete Q[UI],delete Q[f7],delete Q[WI],Q}function QxA(A){let Q=A.attributes,B={};if(A.kind!==x.SpanKind.INTERNAL)B["otel.kind"]=x.SpanKind[A.kind];let I=Q[wG];if(I)B[pI]=I;let C=Me(A);if(C.url)B.url=C.url;if(C["http.query"])B["http.query"]=C["http.query"].slice(1);if(C["http.fragment"])B["http.fragment"]=C["http.fragment"].slice(1);return B}class AX{constructor(A){if(this._unsubscribePreprocessSpan=void 0,qU("SentrySpanProcessor"),this._exporter=new se(A),this._client=A?.client??f(),this._client&&qQ(this._client))this._unsubscribePreprocessSpan=this._client.on("preprocessSpan",BxA)}async forceFlush(){this._exporter.flush()}async shutdown(){this._unsubscribePreprocessSpan?.(),this._exporter.clear()}onStart(A,Q){let B=x.trace.getSpan(Q),I=EJ(Q);if(B&&!B.spanContext().isRemote)LY(B,A);if(B?.spanContext().isRemote)A.setAttribute(f7,!0);if(Q===x.ROOT_CONTEXT)I={scope:OF(),isolationScope:lB()};if(I)eC(A,I.scope,I.isolationScope);UZ(A),this._client?.emit("spanStart",A)}onEnd(A){if(WZ(A),this._client?.emit("spanEnd",A),this._client&&qQ(this._client))this._client.emit("afterSpanEnd",A);else this._exporter.export(A)}}function BxA(A,Q){let B=A.attributes;if(!B)return;let I=Q?.spanKind??GA.INTERNAL,{op:C,description:E,source:Y,data:J}=s2(A.name,B,I);if(A.name=E,bQ(A,{[l]:C,[hA]:Y,...J}),I!==GA.INTERNAL)bQ(A,{"otel.kind":zV(I)})}class QX{constructor(A){this._client=A,this._isSpanStreaming=qQ(A),qU("SentrySampler")}shouldSample(A,Q,B,I,C,E){let Y=this._client.getOptions(),{ignoreSpans:J}=Y,F=ExA(A),G=F?.spanContext();if(!xA(Y))return $E({decision:void 0,context:A,spanAttributes:C});let D=C[z2]||C[N0];if(I===x.SpanKind.CLIENT&&D&&(!F||G?.isRemote)){if(!this._isSpanStreaming)return this._client.recordDroppedEvent("no_parent_span","span"),$E({decision:void 0,context:A,spanAttributes:C})}let Z=F?IxA(F,Q,B):void 0;if(!(!F||G?.isRemote)){if(this._isSpanStreaming){if(Z){if(J?.length){let{description:ZA,op:dA}=s2(B,C,I);if(bI({description:ZA,op:C[l]??dA,attributes:C},J))return this._client.recordDroppedEvent("ignored","span"),$E({decision:PC.SamplingDecision.NOT_RECORD,context:A,spanAttributes:C,ignoredChildSpan:!0})}}if(!Z){let ZA=G?.traceState?.get(Re)==="1";this._client.recordDroppedEvent(ZA?"ignored":"sample_rate","span")}}return $E({decision:Z?PC.SamplingDecision.RECORD_AND_SAMPLED:PC.SamplingDecision.NOT_RECORD,context:A,spanAttributes:C})}let{description:W,data:w,op:K}=s2(B,C,I),X={...w,...C};if(K)X[l]=K;if(this._isSpanStreaming&&J?.length&&bI({description:W,op:X[l]??K,attributes:X},J))return this._client.recordDroppedEvent("ignored","span"),$E({decision:PC.SamplingDecision.NOT_RECORD,context:A,spanAttributes:C,ignoredSegmentSpan:!0});let V={decision:!0};if(this._client.emit("beforeSampling",{spanAttributes:X,spanName:W,parentSampled:Z,parentContext:G},V),!V.decision)return $E({decision:void 0,context:A,spanAttributes:C});let{isolationScope:M}=EJ(A)??{},N=G?.traceState?G.traceState.get(v7):void 0,L=N?xI(N):void 0,R=pB(L?.sample_rand)??HQ(),[P,T,u]=wZ(Y,{name:W,attributes:X,normalizedRequest:M?.getScopeData().sdkProcessingMetadata.normalizedRequest,parentSampled:Z,parentSampleRate:pB(L?.sample_rate)},R),DA=`${D}`.toUpperCase();if(DA==="OPTIONS"||DA==="HEAD")return P0&&H.log(`[Tracing] Not sampling span because HTTP method is '${DA}' for ${B}`),$E({decision:PC.SamplingDecision.NOT_RECORD,context:A,spanAttributes:C,sampleRand:R,downstreamTraceSampleRate:0});if(!P&&Z===void 0)P0&&H.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),this._client.recordDroppedEvent("sample_rate",this._isSpanStreaming?"span":"transaction");return{...$E({decision:P?PC.SamplingDecision.RECORD_AND_SAMPLED:PC.SamplingDecision.NOT_RECORD,context:A,spanAttributes:C,sampleRand:R,downstreamTraceSampleRate:u?T:void 0}),attributes:{[UI]:u?T:void 0}}}toString(){return"SentrySampler"}}function IxA(A,Q,B){let I=A.spanContext();if(x.isSpanContextValid(I)&&I.traceId===Q){if(I.isRemote){let E=SG(A.spanContext());return P0&&H.log(`[Tracing] Inheriting remote parent's sampled decision for ${B}: ${E}`),E}let C=SG(I);return P0&&H.log(`[Tracing] Inheriting parent's sampled decision for ${B}: ${C}`),C}return}function $E({decision:A,context:Q,spanAttributes:B,sampleRand:I,downstreamTraceSampleRate:C,ignoredChildSpan:E,ignoredSegmentSpan:Y}){let J=CxA(Q,B);if(C!==void 0)J=J.set(yhA,`${C}`);if(I!==void 0)J=J.set(_hA,`${I}`);if(E)J=J.set(je,"1");if(Y)J=J.set(Re,"1");if(A==null)return{decision:PC.SamplingDecision.NOT_RECORD,traceState:J};if(A===PC.SamplingDecision.NOT_RECORD)return{decision:A,traceState:J.set(b7,"1")};return{decision:A,traceState:J}}function CxA(A,Q){let C=x.trace.getSpan(A)?.spanContext()?.traceState||new t2,E=Q[YU]||Q[j0];if(E&&typeof E==="string")C=C.set(Ne,E);return C}function ExA(A){let Q=x.trace.getSpan(A);return Q&&x.isSpanContextValid(Q.spanContext())?Q:void 0}var Ve="telemetry.sdk.language",Ke="telemetry.sdk.name",ze="telemetry.sdk.version",YxA="service.namespace";class i7{constructor(A){this._attributes=A}get attributes(){return this._attributes}merge(A){if(!A)return this;return new i7({...this._attributes,...A.attributes})}getRawAttributes(){return Object.entries(this._attributes)}}function JxA(A){if(!A)return{};let Q={};for(let B of A.split(",")){let I=B.indexOf("=");if(I===-1)continue;let C=B.substring(0,I).trim(),E=B.substring(I+1).trim();if(C)try{Q[C]=decodeURIComponent(E)}catch{Q[C]=E}}return Q}function o7(A){let Q=typeof process<"u"?process.env:{},B=Q.OTEL_SERVICE_NAME,I=JxA(Q.OTEL_RESOURCE_ATTRIBUTES);return new i7({[YxA]:"sentry",[N6]:A,...I,...B?{[N6]:B}:{},[Wn]:h,[Ve]:pQ.SDK_INFO[Ve],[Ke]:pQ.SDK_INFO[Ke],[ze]:pQ.SDK_INFO[ze]})}function FxA({span:A,scope:Q,client:B,propagateTraceparent:I}={}){let C=(Q&&yG(Q))??kB.context.active();if(A){let{scope:D}=jB(A);C=D&&yG(D)||kB.trace.setSpan(kB.context.active(),A)}let{traceId:E,spanId:Y,sampled:J,dynamicSamplingContext:F}=Te(C,{scope:Q,client:B}),G={"sentry-trace":Q0(E,Y,J),baggage:$Y(F)};if(I)G.traceparent=B0(E,Y,J);return G}function te(A){function Q(){let F=kB.context.active(),G=EJ(F);if(G)return G;return{scope:OF(),isolationScope:lB()}}function B(F){let G=kB.context.active();return kB.context.with(G,()=>{return F(Y())})}function I(F,G){let D=yG(F)||kB.context.active();return kB.context.with(D.setValue(g7,F),()=>{return G(F)})}function C(F){let G=kB.context.active();return kB.context.with(G.setValue(k7,!0),()=>{return F(J())})}function E(F,G){let D=kB.context.active();return kB.context.with(D.setValue(T7,F),()=>{return G(J())})}function Y(){return Q().scope}function J(){return Q().isolationScope}z5({withScope:B,withSetScope:I,withSetIsolationScope:E,withIsolationScope:C,getCurrentScope:Y,getIsolationScope:J,startSpan:fe,startSpanManual:he,startInactiveSpan:xe,getActiveSpan:d7,suppressTracing:le,isTracingSuppressed:ihA,getTraceData:FxA,continueTrace:ce,startNewTrace:phA,withActiveSpan:u7,getTracingChannelBinding:A?.getTracingChannelBinding})}var YJ=m(AA(),1),ee=m(AA(),1);import{AsyncLocalStorage as AAA}from"node:async_hooks";import{EventEmitter as GxA}from"node:events";var DxA=["addListener","on","once","prependListener","prependOnceListener"];class n7{constructor(){this._kOtListeners=Symbol("OtListeners"),this._wrapped=!1,qU("SentryContextManager"),this._asyncLocalStorage=RQ(CQ()).getTracingChannelBinding?.()?.asyncLocalStorage??new AAA}active(){return this._asyncLocalStorage.getStore()??ee.ROOT_CONTEXT}with(A,Q,B,...I){let C=pe(A,this.active()),E=B==null?Q:Q.bind(B);return this._asyncLocalStorage.run(C,E,...I)}enable(){return this}disable(){return this._asyncLocalStorage.disable(),this}bind(A,Q){if(Q instanceof GxA)return this._bindEventEmitter(A,Q);if(typeof Q==="function")return this._bindFunction(A,Q);return Q}getAsyncLocalStorageLookup(){return{asyncLocalStorage:this._asyncLocalStorage,contextSymbol:r2}}_bindFunction(A,Q){let B=this.with.bind(this),I=function(...C){return B(A,()=>Q.apply(this,C))};return Object.defineProperty(I,"length",{enumerable:!1,configurable:!0,writable:!1,value:Q.length}),I}_bindEventEmitter(A,Q){if(this._getPatchMap(Q)!==void 0)return Q;this._createPatchMap(Q);for(let B of DxA){if(Q[B]===void 0)continue;Q[B]=this._patchAddListener(Q,Q[B],A)}if(typeof Q.removeListener==="function")Q.removeListener=this._patchRemoveListener(Q,Q.removeListener);if(typeof Q.off==="function")Q.off=this._patchRemoveListener(Q,Q.off);if(typeof Q.removeAllListeners==="function")Q.removeAllListeners=this._patchRemoveAllListeners(Q,Q.removeAllListeners);return Q}_patchRemoveListener(A,Q){let B=this;return function(I,C){let E=B._getPatchMap(A)?.[I];if(E===void 0)return Q.call(this,I,C);let Y=E.get(C);return Q.call(this,I,Y||C)}}_patchRemoveAllListeners(A,Q){let B=this;return function(I){let C=B._getPatchMap(A);if(C!==void 0){if(arguments.length===0)B._createPatchMap(A);else if(I!==void 0&&C[I]!==void 0)delete C[I]}return Q.apply(this,arguments)}}_patchAddListener(A,Q,B){let I=this;return function(C,E){if(I._wrapped)return Q.call(this,C,E);let Y=I._getPatchMap(A);if(Y===void 0)Y=I._createPatchMap(A);let J=Y[C];if(J===void 0)J=new WeakMap,Y[C]=J;let F=I.bind(B,E);J.set(E,F),I._wrapped=!0;try{return Q.call(this,C,F)}finally{I._wrapped=!1}}}_createPatchMap(A){let Q=Object.create(null);return A[this._kOtListeners]=Q,Q}_getPatchMap(A){return A[this._kOtListeners]}}function QAA(A){te({getTracingChannelBinding:!A?.skipOpenTelemetrySetup?ZxA():UxA()})}function ZxA(){let A=new AAA;return()=>{return{asyncLocalStorage:A,getStoreWithActiveSpan:(Q)=>YJ.trace.setSpan(YJ.context.active(),Q)}}}function UxA(){return()=>{try{let Q=YJ.context._getContextManager()?.getAsyncLocalStorageLookup().asyncLocalStorage;return Q?{asyncLocalStorage:Q,getStoreWithActiveSpan:(B)=>YJ.trace.setSpan(YJ.context.active(),B)}:void 0}catch{return}}}var BX=n7;var PU=m(AA(),1);function s7(){PU.diag.disable(),PU.diag.setLogger({error:H.error,warn:H.warn,info:H.log,debug:H.log,verbose:H.log},PU.DiagLogLevel.DEBUG)}var a7=m(jA(),1),OU={};function c(A,Q,B){if(B)return wxA(A,Q,B);return WxA(A,Q)}function WxA(A,Q){return Object.assign((B)=>{let I=OU[A];if(I){if(B)I.setConfig(B);return I}let C=Q(B);return OU[A]=C,a7.registerInstrumentations({instrumentations:[C]}),C},{id:A})}function wxA(A,Q,B){return Object.assign((I)=>{let C=B(I),E=OU[A];if(E)return E.setConfig(C),E;let Y=new Q(C);return OU[A]=Y,a7.registerInstrumentations({instrumentations:[Y]}),Y},{id:A})}import*as r7 from"node:diagnostics_channel";var XxA="ChildProcess",t7=g((A={})=>{return{name:XxA,setup(){r7.channel("child_process").subscribe((Q)=>{if(Q&&typeof Q==="object"&&"process"in Q)VxA(Q.process,A)}),r7.channel("worker_threads").subscribe((Q)=>{if(Q&&typeof Q==="object"&&"worker"in Q)KxA(Q.worker,A)})}}});function VxA(A,Q){let B=!1,I;A.on("spawn",()=>{if(A.spawnfile==="/usr/bin/sw_vers"){B=!0;return}if(I={spawnfile:A.spawnfile},Q.includeChildProcessArgs)I.spawnargs=A.spawnargs}).on("exit",(C)=>{if(!B){if(B=!0,C!==null&&C!==0)nB({category:"child_process",message:`Child process exited with code '${C}'`,level:C===0?"info":"warning",data:I})}}).on("error",(C)=>{if(!B)B=!0,nB({category:"child_process",message:`Child process errored with '${C.message}'`,level:"error",data:I})})}function KxA(A,Q){let B;A.on("online",()=>{B=A.threadId}).on("error",(I)=>{if(Q.captureWorkerErrors!==!1)o(I,{mechanism:{type:"auto.child_process.worker_thread",handled:!1,data:{threadId:String(B)}}});else nB({category:"worker_thread",message:`Worker thread errored with '${I.message}'`,level:"error",data:{threadId:B}})})}import{execFile as zxA}from"node:child_process";import{readFile as $xA,readdir as HxA}from"node:fs";import*as OQ from"node:os";import{join as MxA}from"node:path";import{promisify as CAA}from"node:util";var LxA=CAA($xA),NxA=CAA(HxA),jxA="Context",RxA=(A={})=>{let Q={app:!0,os:!0,device:!0,culture:!0,cloudResource:!0,...A},B=Q.app?gxA():void 0,I=Q.device?TxA(Q.device):void 0,C=Q.culture?kxA():void 0,E=Q.cloudResource?xxA():void 0,Y=Q.os?OxA():void 0,J={"process.runtime.engine.name":"v8","process.runtime.engine.version":process.versions.v8,...BAA({app:B,device:I,culture:C,cloud_resource:E})};if(Y)Y.then((D)=>Object.assign(J,BAA({os:D}))).catch(()=>{});let F=(async()=>{let D={};if(Y)D.os=await Y;if(B)D.app=B;if(I)D.device=I;if(C)D.culture=C;if(E)D.cloud_resource=E;return D})();async function G(D){let Z=qxA(await F);return D.contexts={...D.contexts,app:{...Z.app,...D.contexts?.app},os:{...Z.os,...D.contexts?.os},device:{...Z.device,...D.contexts?.device},culture:{...Z.culture,...D.contexts?.culture},cloud_resource:{...Z.cloud_resource,...D.contexts?.cloud_resource}},D}return{name:jxA,processEvent(D){return G(D)},processSegmentSpan(D){bQ(D,J),bQ(D,PxA(B,I))}}},e7=g(RxA);function qxA(A){if(A.app?.app_memory)A.app.app_memory=process.memoryUsage().rss;if(A.app?.free_memory&&typeof process.availableMemory==="function"){let Q=process.availableMemory?.();if(Q!=null)A.app.free_memory=Q}if(A.device?.free_memory)A.device.free_memory=OQ.freemem();return A}function BAA(A){let Q={},{app:B,device:I,os:C,culture:E,cloud_resource:Y}=A;if(B){if(B.app_start_time)Q["app.start_time"]=B.app_start_time}if(I){if(I.arch)Q["device.archs"]=[I.arch];if(I.boot_time)Q["device.boot_time"]=I.boot_time;if(I.memory_size!=null)Q["device.memory_size"]=I.memory_size;if(I.processor_count!=null)Q["device.processor_count"]=I.processor_count;if(I.cpu_description)Q["device.cpu_description"]=I.cpu_description;if(I.processor_frequency!=null)Q["device.processor_frequency"]=I.processor_frequency}if(C){if(C.name)Q["os.name"]=C.name;if(C.version)Q["os.version"]=C.version;if(C.kernel_version)Q["os.kernel_version"]=C.kernel_version;if(C.build)Q["os.build"]=C.build}if(E){if(E.locale)Q["culture.locale"]=E.locale;if(E.timezone)Q["culture.timezone"]=E.timezone}if(Y){for(let[J,F]of Object.entries(Y))if(F!=null)Q[J]=F}return Q}function PxA(A,Q){let B={};if(A){if(B["app.memory"]=process.memoryUsage().rss,typeof process.availableMemory==="function"){let I=process.availableMemory?.();if(I!=null)B["app.free_memory"]=I}}if(Q?.free_memory!=null)B["device.free_memory"]=OQ.freemem();return B}async function OxA(){let A=OQ.platform();switch(A){case"darwin":return fxA();case"linux":return hxA();default:return{name:_xA[A]||A,version:OQ.release()}}}function kxA(){try{if(typeof process.versions.icu!=="string")return;let A=new Date(900000000);if(new Intl.DateTimeFormat("es",{month:"long"}).format(A)==="enero"){let B=Intl.DateTimeFormat().resolvedOptions();return{locale:B.locale,timezone:B.timeZone}}}catch{}return}function gxA(){let A=process.memoryUsage().rss,B={app_start_time:new Date(Date.now()-process.uptime()*1000).toISOString(),app_memory:A};if(typeof process.availableMemory==="function"){let I=process.availableMemory?.();if(I!=null)B.free_memory=I}return B}function TxA(A){let Q={},B;try{B=OQ.uptime()}catch{}if(typeof B==="number")Q.boot_time=new Date(Date.now()-B*1000).toISOString();if(Q.arch=OQ.arch(),A===!0||A.memory)Q.memory_size=OQ.totalmem(),Q.free_memory=OQ.freemem();if(A===!0||A.cpu){let I=OQ.cpus(),C=I?.[0];if(C)Q.processor_count=I.length,Q.cpu_description=C.model,Q.processor_frequency=C.speed}return Q}var _xA={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows",ohos:"OpenHarmony",android:"Android"},yxA=[{name:"fedora-release",distros:["Fedora"]},{name:"redhat-release",distros:["Red Hat Linux","Centos"]},{name:"redhat_version",distros:["Red Hat Linux"]},{name:"SuSE-release",distros:["SUSE Linux"]},{name:"lsb-release",distros:["Ubuntu Linux","Arch Linux"]},{name:"debian_version",distros:["Debian"]},{name:"debian_release",distros:["Debian"]},{name:"arch-release",distros:["Arch Linux"]},{name:"gentoo-release",distros:["Gentoo Linux"]},{name:"novell-release",distros:["SUSE Linux"]},{name:"alpine-release",distros:["Alpine Linux"]}],SxA={alpine:(A)=>A,arch:(A)=>OC(/distrib_release=(.*)/,A),centos:(A)=>OC(/release ([^ ]+)/,A),debian:(A)=>A,fedora:(A)=>OC(/release (..)/,A),mint:(A)=>OC(/distrib_release=(.*)/,A),red:(A)=>OC(/release ([^ ]+)/,A),suse:(A)=>OC(/VERSION = (.*)\n/,A),ubuntu:(A)=>OC(/distrib_release=(.*)/,A)};function OC(A,Q){let B=A.exec(Q);return B?B[1]:void 0}async function fxA(){let A={kernel_version:OQ.release(),name:"Mac OS X",version:`10.${Number(OQ.release().split(".")[0])-4}`};try{let Q=await new Promise((B,I)=>{zxA("/usr/bin/sw_vers",(C,E)=>{if(C){I(C);return}B(E)})});A.name=OC(/^ProductName:\s+(.*)$/m,Q),A.version=OC(/^ProductVersion:\s+(.*)$/m,Q),A.build=OC(/^BuildVersion:\s+(.*)$/m,Q)}catch{}return A}function IAA(A){return A.split(" ")[0].toLowerCase()}async function hxA(){let A={kernel_version:OQ.release(),name:"Linux"};try{let Q=await NxA("/etc"),B=yxA.find((J)=>Q.includes(J.name));if(!B)return A;let I=MxA("/etc",B.name),C=(await LxA(I,{encoding:"utf-8"})).toLowerCase(),{distros:E}=B;A.name=E.find((J)=>C.indexOf(IAA(J))>=0)||E[0];let Y=IAA(A.name);A.version=SxA[Y]?.(C)}catch{}return A}function xxA(){if(process.env.VERCEL)return{"cloud.provider":"vercel","cloud.region":process.env.VERCEL_REGION};else if(process.env.AWS_REGION)return{"cloud.provider":"aws","cloud.region":process.env.AWS_REGION,"cloud.platform":process.env.AWS_EXECUTION_ENV};else if(process.env.GCP_PROJECT)return{"cloud.provider":"gcp"};else if(process.env.ALIYUN_REGION_ID)return{"cloud.provider":"alibaba_cloud","cloud.region":process.env.ALIYUN_REGION_ID};else if(process.env.WEBSITE_SITE_NAME&&process.env.REGION_NAME)return{"cloud.provider":"azure","cloud.region":process.env.REGION_NAME};else if(process.env.IBM_CLOUD_REGION)return{"cloud.provider":"ibm_cloud","cloud.region":process.env.IBM_CLOUD_REGION};else if(process.env.TENCENTCLOUD_REGION)return{"cloud.provider":"tencent_cloud","cloud.region":process.env.TENCENTCLOUD_REGION,"cloud.account.id":process.env.TENCENTCLOUD_APPID,"cloud.availability_zone":process.env.TENCENTCLOUD_ZONE};else if(process.env.NETLIFY)return{"cloud.provider":"netlify"};else if(process.env.FLY_REGION)return{"cloud.provider":"fly.io","cloud.region":process.env.FLY_REGION};else if(process.env.DYNO)return{"cloud.provider":"heroku"};else return}import{createReadStream as vxA}from"node:fs";import{createInterface as bxA}from"node:readline";var Az=new IB(10),JAA=new IB(20),mxA=7,dxA="ContextLines",cxA=1000,uxA=1e4;function lxA(A,Q,B){let I=A.get(Q);if(I===void 0)return A.set(Q,B),B;return I}function pxA(A){if(A.startsWith("node:"))return!0;if(A.endsWith(".min.js"))return!0;if(A.endsWith(".min.cjs"))return!0;if(A.endsWith(".min.mjs"))return!0;if(A.startsWith("data:"))return!0;return!1}function ixA(A){if(A.lineno!==void 0&&A.lineno>uxA)return!0;if(A.colno!==void 0&&A.colno>cxA)return!0;return!1}function oxA(A,Q){let B=Az.get(A);if(B===void 0)return!1;for(let I=Q[0];I<=Q[1];I++)if(B[I]===void 0)return!1;return!0}function nxA(A,Q){if(!A.length)return[];let B=0,I=A[0];if(typeof I!=="number")return[];let C=YAA(I,Q),E=[];while(!0){if(B===A.length-1){E.push(C);break}let Y=A[B+1];if(typeof Y!=="number")break;if(Y<=C[1])C[1]=Y+Q;else E.push(C),C=YAA(Y,Q);B++}return E}function sxA(A,Q,B){return new Promise((I,C)=>{let E=vxA(A),Y=bxA({input:E});function J(){E.destroy(),I()}let F=0,G=0,D=Q[G];if(D===void 0){J();return}let Z=D[0],U=D[1];function W(w){JAA.set(A,1),EQ&&H.error(`Failed to read file: ${A}. Error: ${w}`),Y.close(),Y.removeAllListeners(),J()}E.on("error",W),Y.on("error",W),Y.on("close",J),Y.on("line",(w)=>{if(F++,F=U){if(G===Q.length-1){Y.close(),Y.removeAllListeners();return}G++;let K=Q[G];if(K===void 0){Y.close(),Y.removeAllListeners();return}Z=K[0],U=K[1]}})})}async function axA(A,Q){let B={};if(Q>0&&A.exception?.values)for(let E of A.exception.values){if(!E.stacktrace?.frames?.length)continue;for(let Y=E.stacktrace.frames.length-1;Y>=0;Y--){let J=E.stacktrace.frames[Y],F=J?.filename;if(!J||typeof F!=="string"||typeof J.lineno!=="number"||pxA(F)||ixA(J))continue;if(!B[F])B[F]=[];B[F].push(J.lineno)}}let I=Object.keys(B);if(I.length==0)return A;let C=[];for(let E of I){if(JAA.get(E))continue;let Y=B[E];if(!Y)continue;Y.sort((G,D)=>G-D);let J=nxA(Y,Q);if(J.every((G)=>oxA(E,G)))continue;let F=lxA(Az,E,{});C.push(sxA(E,J,F))}if(await Promise.all(C).catch(()=>{EQ&&H.log("Failed to read one or more source files and resolve context lines")}),Q>0&&A.exception?.values){for(let E of A.exception.values)if(E.stacktrace?.frames&&E.stacktrace.frames.length>0)rxA(E.stacktrace.frames,Q,Az)}return A}function rxA(A,Q,B){for(let I of A)if(I.filename&&I.context_line===void 0&&typeof I.lineno==="number"){let C=B.get(I.filename);if(C===void 0)continue;txA(I.lineno,I,Q,C)}}function EAA(A){delete A.pre_context,delete A.context_line,delete A.post_context}function txA(A,Q,B,I){if(Q.lineno===void 0||I===void 0){EQ&&H.error("Cannot resolve context for frame with no lineno or file contents");return}Q.pre_context=[];for(let E=FAA(A,B);E{return{name:dxA,processEvent(Q,B,I){let C=A.frameContextLines??I?.getDataCollectionOptions().frameContextLines??mxA;return axA(Q,C)}}},Qz=g(exA);var DAA="Http",AvA=c(`${DAA}.sentry`,(A)=>{return new RG(A)}),ZAA=g((A={})=>{let Q={sessions:A.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:A.sessionFlushingDelayMS,ignoreRequestBody:A.ignoreIncomingRequestBody,maxRequestBodySize:A.maxIncomingRequestBodySize},B={ignoreIncomingRequests:A.ignoreIncomingRequests,ignoreStaticAssets:A.ignoreStaticAssets,ignoreStatusCodes:A.dropSpansForIncomingRequestStatusCodes},I={breadcrumbs:A.breadcrumbs,propagateTraceInOutgoingRequests:A.tracePropagation??!0,ignoreOutgoingRequests:A.ignoreOutgoingRequests},C=KG(Q),E=zG(B),Y=A.spans??!1,J=A.disableIncomingRequestSpans??!1,F=Y&&!J;return{name:DAA,setup(G){if(F)E.setup(G)},setupOnce(){C.setupOnce(),AvA(I)},processEvent(G){return E.processEvent(G)}}});import{Worker as QvA}from"node:worker_threads";var IX;async function CX(){if(IX===void 0)try{IX=!!(await import("node:inspector")).url()}catch{IX=!1}return IX}var kU="__SENTRY_ERROR_LOCAL_VARIABLES__";function WAA(A,Q,B){let I=0,C=5,E=0;return setInterval(()=>{if(E===0){if(I>A){if(C*=2,B(C),C>86400)C=86400;E=C}}else if(E-=1,E===0)Q();I=0},1000).unref(),()=>{I+=1}}function UAA(A){return A!==void 0&&(A.length===0||A==="?"||A==="")}function EX(A,Q){return A===Q||`Object.${A}`===Q||A===`Object.${Q}`||UAA(A)&&UAA(Q)}var BvA="LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjYzLjAgKDIzNjJlOWYpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=";function wAA(...A){H.log("[LocalVariables]",...A)}var XAA=g((A={})=>{function Q(E,Y){let J=(E.stacktrace?.frames||[]).filter((F)=>F.function!=="new Promise");for(let F=0;F{Y.terminate()}),Y.once("error",(J)=>{wAA("Worker error",J)}),Y.once("exit",(J)=>{wAA("Worker exit",J)}),Y.unref()}return{name:"LocalVariablesAsync",async setup(E){if(!E.getOptions().includeLocalVariables)return;if(await CX()){H.warn("Local variables capture has been disabled because the debugger was already enabled");return}let J={...A,debug:H.isEnabled()};I().then(()=>{try{C(J)}catch(F){H.error("Failed to start worker",F)}},(F)=>{H.error("Failed to start inspector",F)})},processEvent(E,Y){return B(E,Y)}}});function VAA(A){if(A===void 0)return;return A.slice(-10).reduce((Q,B)=>`${Q},${B.function},${B.lineno},${B.colno}`,"")}function IvA(A,Q){if(Q===void 0)return;return VAA(A(Q,1))}function KAA(A){let Q=[],B=!1;function I(Y){if(Q=[],B)return;B=!0,A(Y)}Q.push(I);function C(Y){Q.push(Y)}function E(Y){let J=Q.pop()||I;try{J(Y)}catch{I(Y)}}return{add:C,next:E}}class Bz{constructor(A){this._session=A}static async create(A){if(A)return A;let Q=await import("node:inspector");return new Bz(new Q.Session)}configureAndConnect(A,Q){this._session.connect(),this._session.on("Debugger.paused",(B)=>{A(B,()=>{this._session.post("Debugger.resume")})}),this._session.post("Debugger.enable"),this._session.post("Debugger.setPauseOnExceptions",{state:Q?"all":"uncaught"})}setPauseOnExceptions(A){this._session.post("Debugger.setPauseOnExceptions",{state:A?"all":"uncaught"})}getLocalVariables(A,Q){this._getProperties(A,(B)=>{let{add:I,next:C}=KAA(Q);for(let E of B)if(E.value?.objectId&&E.value.className==="Array"){let Y=E.value.objectId;I((J)=>this._unrollArray(Y,E.name,J,C))}else if(E.value?.objectId&&E.value.className==="Object"){let Y=E.value.objectId;I((J)=>this._unrollObject(Y,E.name,J,C))}else if(E.value)I((Y)=>this._unrollOther(E,Y,C));C({})})}_getProperties(A,Q){this._session.post("Runtime.getProperties",{objectId:A,ownProperties:!0},(B,I)=>{if(B)Q([]);else Q(I.result)})}_unrollArray(A,Q,B,I){this._getProperties(A,(C)=>{B[Q]=C.filter((E)=>E.name!=="length"&&!isNaN(parseInt(E.name,10))).sort((E,Y)=>parseInt(E.name,10)-parseInt(Y.name,10)).map((E)=>E.value?.value),I(B)})}_unrollObject(A,Q,B,I){this._getProperties(A,(C)=>{B[Q]=C.map((E)=>[E.name,E.value?.value]).reduce((E,[Y,J])=>{return E[Y]=J,E},{}),I(B)})}_unrollOther(A,Q,B){if(A.value){if("value"in A.value)if(A.value.value===void 0||A.value.value===null)Q[A.name]=`<${A.value.value}>`;else Q[A.name]=A.value.value;else if("description"in A.value&&A.value.type!=="function")Q[A.name]=`<${A.value.description}>`;else if(A.value.type==="undefined")Q[A.name]=""}B(Q)}}var CvA="LocalVariables",EvA=(A={},Q)=>{let B=new IB(20),I,C=!1;function E(G){let D=VAA(G.stacktrace?.frames);if(D===void 0)return;let Z=B.remove(D);if(Z===void 0)return;let U=(G.stacktrace?.frames||[]).filter((W)=>W.function!=="new Promise");for(let W=0;W= v18.");return}if(await CX()){H.warn("Local variables capture has been disabled because the debugger was already enabled");return}try{let U=await Bz.create(Q),W=(K,{params:{reason:X,data:V,callFrames:M}},N)=>{if(X!=="exception"&&X!=="promiseRejection"){N();return}I?.();let L=IvA(K,V.description);if(L==null){N();return}let{add:R,next:P}=KAA((T)=>{B.set(L,T),N()});for(let T=0;TqA.type==="local"),cA=ZA.className==="global"||!ZA.className?DA:`${ZA.className}.${DA}`;if(dA?.object.objectId===void 0)R((qA)=>{qA[T]={function:cA},P(qA)});else{let qA=dA.object.objectId;R((RI)=>U.getLocalVariables(qA,(SQ)=>{RI[T]={function:cA,vars:SQ},P(RI)}))}}P([])},w=A.captureAllExceptions!==!1;if(U.configureAndConnect((K,X)=>W(D.stackParser,K,X),w),w){let K=A.maxExceptionsPerSecond||50;I=WAA(K,()=>{H.log("Local variables rate-limit lifted."),U.setPauseOnExceptions(!0)},(X)=>{H.log(`Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${X} seconds.`),U.setPauseOnExceptions(!1)})}C=!0}catch(U){H.log("The `LocalVariables` integration failed to start.",U)}}return{name:CvA,setupOnce(){J=F()},async processEvent(G){if(await J,C)return Y(G);return G},_getCachedFramesCount(){return B.size},_getFirstCachedFrame(){return B.values()[0]}}},zAA=g(EvA);var Iz=(A={})=>{return nI.major<19?zAA(A):XAA(A)};import{readFileSync as YvA}from"node:fs";import{join as JvA}from"node:path";var Cz,FvA="Modules";function GvA(){if(typeof __SENTRY_SERVER_MODULES__<"u")return __SENTRY_SERVER_MODULES__;return FA.__SENTRY_SERVER_MODULES__??{}}var DvA=()=>{return{name:FvA,processEvent(A){return A.modules={...A.modules,...$AA()},A},getModules:$AA}},Ez=DvA;function ZvA(){return{...GvA(),...WvA(),...{}}}function $AA(){if(!Cz)Cz=ZvA();return Cz}function UvA(){try{let A=JvA(process.cwd(),"package.json");return JSON.parse(YvA(A,"utf8"))}catch{return{}}}function WvA(){let A=UvA();return{...A.dependencies,...A.devDependencies}}var wvA="NodeFetch",XvA=c(`${wvA}.sentry`,PG,(A)=>{return A}),VvA=(A={})=>{return{name:"NodeFetch",setupOnce(){XvA(A)}}},HAA=g(VvA);import{isMainThread as zvA}from"worker_threads";var KvA=2000;function gU(A){XQ(()=>{console.error(A)});let Q=f();if(Q===void 0){EQ&&H.warn("No NodeClient was defined, we are exiting the process now."),global.process.exit(1);return}let B=Q.getOptions(),I=B?.shutdownTimeout&&B.shutdownTimeout>0?B.shutdownTimeout:KvA;Q.close(I).then((C)=>{if(!C)EQ&&H.warn("We reached the timeout for emptying the request buffer, still exiting now!");global.process.exit(1)},(C)=>{EQ&&H.error(C)})}var $vA="OnUncaughtException",Yz=g((A={})=>{let Q={exitEvenIfOtherHandlersAreRegistered:!1,...A};return{name:$vA,setup(B){if(!zvA)return;global.process.on("uncaughtException",HvA(B,Q))}}});function HvA(A,Q){let I=!1,C=!1,E=!1,Y,J=A.getOptions();return Object.assign((F)=>{let G=gU;if(Q.onFatalError)G=Q.onFatalError;else if(J.onFatalError)G=J.onFatalError;let Z=global.process.listeners("uncaughtException").filter((W)=>{return W.name!=="domainUncaughtExceptionClear"&&W._errorHandler!==!0}).length===0,U=Q.exitEvenIfOtherHandlersAreRegistered||Z;if(!I){if(Y=F,I=!0,f()===A)o(F,{originalException:F,captureContext:{level:"fatal"},mechanism:{handled:!1,type:"auto.node.onuncaughtexception"}});if(!E&&U)E=!0,G(F)}else if(U){if(E)EQ&&H.warn("uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown"),gU(F);else if(!C)C=!0,setTimeout(()=>{if(!E)E=!0,G(Y,F)},2000)}},{_errorHandler:!0})}var MvA="OnUnhandledRejection",LvA=[{name:"AI_NoOutputGeneratedError"},{name:"AbortError"}],NvA=(A={})=>{let Q={mode:A.mode??"warn",ignore:[...LvA,...A.ignore??[]]};return{name:MvA,setup(B){global.process.on("unhandledRejection",PvA(B,Q))}}},Jz=g(NvA);function jvA(A){if(typeof A!=="object"||A===null)return{name:"",message:String(A??"")};let Q=A,B=typeof Q.name==="string"?Q.name:"",I=typeof Q.message==="string"?Q.message:String(A);return{name:B,message:I}}function RvA(A,Q){let B=A.name===void 0||XC(Q.name,A.name,!0),I=A.message===void 0||XC(Q.message,A.message);return B&&I}function qvA(A,Q){let B=jvA(Q);return A.some((I)=>RvA(I,B))}function PvA(A,Q){return function(I,C){if(f()!==A)return;if(qvA(Q.ignore??[],I))return;let E=Q.mode==="strict"?"fatal":"error",Y=I&&typeof I==="object"?I._sentry_active_span:void 0;(Y?(F)=>EA(Y,F):(F)=>F())(()=>{o(I,{originalException:I,captureContext:{extra:{unhandledPromiseRejection:!0},level:E},mechanism:{handled:!1,type:"auto.node.onunhandledrejection"}})}),OvA(I,Q.mode)}}function OvA(A,Q){if(Q==="warn")XQ(()=>{console.warn("This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:"),console.error(A&&typeof A==="object"&&"stack"in A?A.stack:A)});else if(Q==="strict")XQ(()=>{console.warn("This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:")}),gU(A)}var kvA="ProcessSession",Fz=g(()=>{return{name:kvA,setupOnce(){RZ(),process.on("beforeExit",()=>{if(CA().getSession()?.status!=="ok")uF()})}}});import*as MAA from"node:http";var Gz="Spotlight",gvA=(A={})=>{let Q={sidecarUrl:A.sidecarUrl||"http://localhost:8969/stream"};return{name:Gz,setup(B){try{}catch{}TvA(B,Q)}}},Dz=g(gvA);function TvA(A,Q){let B=_vA(Q.sidecarUrl);if(!B)return;let I=0;A.on("beforeEnvelope",(C)=>{if(I>3){H.warn("[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests");return}let E=VZ(C);RY(()=>{let Y=MAA.request({method:"POST",path:B.pathname,hostname:B.hostname,port:B.port,headers:{"Content-Type":"application/x-sentry-envelope"}},(J)=>{if(J.statusCode&&J.statusCode>=200&&J.statusCode<400)I=0;J.on("data",()=>{}),J.on("end",()=>{}),J.setEncoding("utf8")});Y.on("error",()=>{I++,H.warn("[Spotlight] Failed to send envelope to Spotlight Sidecar")}),Y.write(E),Y.end()})})}function _vA(A){try{return new URL(`${A}`)}catch{H.warn(`[Spotlight] Invalid sidecar URL: ${A}`);return}}var Zz=g((A={})=>{return{name:"Console",setup(Q){if(process.env.LAMBDA_TASK_ROOT)hZ("console",yvA);RV({...A,filter:[...A.filter||[],"[DEP0205] DeprecationWarning"]}).setup?.(Q)}}});function yvA(){let A=FA?.console;if(!A)return;DY.forEach((Q)=>{if(Q in A)SvA(A,Q)})}function SvA(A,Q){let B=A[Q];fI[Q]=B;let I=B,C,E=!1,Y=function(...F){if(E){B.apply(A,F);return}E=!0;try{nF("console",{args:F,level:Q}),I.apply(A,F)}finally{E=!1}};UY(Y,B);let J=B.bind(A);fI[Q]=J;try{let F=Y;Object.defineProperty(A,Q,{configurable:!0,enumerable:!0,get(){return F},set(G){if(G===Y){if(C!==void 0)I=C,C=void 0;F=Y}else if(G===J)C=I,F=J;else if(typeof G==="function"&&!G.__sentry_original__)I=G,F=Y;else F=G}})}catch{QZ(A,Q,function(F){return fI[Q]=F,function(...G){nF("console",{args:G,level:Q}),fI[Q]?.apply(this,G)}})}}import*as Uz from"node:util";var fvA="NodeSystemError";function hvA(A){if(!(A instanceof Error))return!1;if(!("errno"in A)||typeof A.errno!=="number")return!1;if(typeof Uz.getSystemErrorMap!=="function")return!1;return Uz.getSystemErrorMap().has(A.errno)}var Wz=g((A={})=>{return{name:fvA,processEvent:(Q,B,I)=>{if(!hvA(B.originalException))return Q;let C=B.originalException,E={...C};if(!I.getDataCollectionOptions().userInfo&&A.includePaths!==!0)delete E.path,delete E.dest;Q.contexts={...Q.contexts,node_system_error:E};for(let Y of Q.exception?.values||[])if(Y.value){if(C.path&&Y.value.includes(C.path))Y.value=Y.value.replace(`'${C.path}'`,"").trim();if(C.dest&&Y.value.includes(C.dest))Y.value=Y.value.replace(`'${C.dest}'`,"").trim()}return Q}}});import*as vvA from"node:http";import*as bvA from"node:https";import{Readable as mvA}from"node:stream";import{createGzip as dvA}from"node:zlib";import*as HE from"node:net";import*as Vz from"node:tls";import*as wz from"node:http";var LAA,kC=Symbol("AgentBaseInternalState");class Xz extends(LAA=wz.Agent,LAA){constructor(A){super(A);this[kC]={}}isSecureEndpoint(A){if(A){if(typeof A.secureEndpoint==="boolean")return A.secureEndpoint;if(typeof A.protocol==="string")return A.protocol==="https:"}let{stack:Q}=Error();if(typeof Q!=="string")return!1;return Q.split(` +`).some((B)=>B.indexOf("(https.js:")!==-1||B.indexOf("node:https:")!==-1)}createSocket(A,Q,B){let I={...Q,secureEndpoint:this.isSecureEndpoint(Q)};Promise.resolve().then(()=>this.connect(A,I)).then((C)=>{if(C instanceof wz.Agent)return C.addRequest(A,I);this[kC].currentSocket=C,super.createSocket(A,Q,B)},B)}createConnection(){let A=this[kC].currentSocket;if(this[kC].currentSocket=void 0,!A)throw Error("No socket was returned in the `connect()` function");return A}get defaultPort(){return this[kC].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(A){if(this[kC])this[kC].defaultPort=A}get protocol(){return this[kC].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(A){if(this[kC])this[kC].protocol=A}}function YX(...A){H.log("[https-proxy-agent:parse-proxy-response]",...A)}function NAA(A){return new Promise((Q,B)=>{let I=0,C=[];function E(){let D=A.read();if(D)G(D);else A.once("readable",E)}function Y(){A.removeListener("end",J),A.removeListener("error",F),A.removeListener("readable",E)}function J(){Y(),YX("onend"),B(Error("Proxy connection ended before receiving CONNECT response"))}function F(D){Y(),YX("onerror %o",D),B(D)}function G(D){C.push(D),I+=D.length;let Z=Buffer.concat(C,I),U=Z.indexOf(`\r \r -`);if(W===-1){Z8("have not received end of HTTP headers yet..."),E();return}let U=Z.subarray(0,W).toString("ascii").split(`\r -`),w=U.shift();if(!w)return A.destroy(),B(Error("No header received from proxy CONNECT response"));let K=w.split(" "),V=+(K[1]||0),z=K.slice(2).join(" "),M={};for(let L of U){if(!L)continue;let N=L.indexOf(":");if(N===-1)return A.destroy(),B(Error(`Invalid header from proxy CONNECT response: "${L}"`));let T=L.slice(0,N).toLowerCase(),y=L.slice(N+1).trimStart(),f=M[T];if(typeof f==="string")M[T]=[f,y];else if(Array.isArray(f))f.push(y);else M[T]=y}Z8("got proxy server response: %o %o",w,M),Y(),Q({connect:{statusCode:V,statusText:z,headers:M},buffered:Z})}A.on("error",F),A.on("end",J),E()})}function KW(...A){$.log("[https-proxy-agent]",...A)}class W8 extends kz{static __initStatic(){this.protocols=["http","https"]}constructor(A,Q){super(Q);this.options={},this.proxy=typeof A==="string"?new URL(A):A,this.proxyHeaders=Q?.headers??{},KW("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let B=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),I=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...Q?vIA(Q,"headers"):null,host:B,port:I}}async connect(A,Q){let{proxy:B}=this;if(!Q.host)throw TypeError('No "host" provided');let I;if(B.protocol==="https:"){KW("Creating `tls.Socket`: %o",this.connectOpts);let Z=this.connectOpts.servername||this.connectOpts.host;I=Sz.connect({...this.connectOpts,servername:Z&&EE.isIP(Z)?void 0:Z})}else KW("Creating `net.Socket`: %o",this.connectOpts),I=EE.connect(this.connectOpts);let C=typeof this.proxyHeaders==="function"?this.proxyHeaders():{...this.proxyHeaders},E=EE.isIPv6(Q.host)?`[${Q.host}]`:Q.host,Y=`CONNECT ${E}:${Q.port} HTTP/1.1\r +`);if(U===-1){YX("have not received end of HTTP headers yet..."),E();return}let W=Z.subarray(0,U).toString("ascii").split(`\r +`),w=W.shift();if(!w)return A.destroy(),B(Error("No header received from proxy CONNECT response"));let K=w.split(" "),X=+(K[1]||0),V=K.slice(2).join(" "),M={};for(let N of W){if(!N)continue;let L=N.indexOf(":");if(L===-1)return A.destroy(),B(Error(`Invalid header from proxy CONNECT response: "${N}"`));let R=N.slice(0,L).toLowerCase(),P=N.slice(L+1).trimStart(),T=M[R];if(typeof T==="string")M[R]=[T,P];else if(Array.isArray(T))T.push(P);else M[R]=P}YX("got proxy server response: %o %o",w,M),Y(),Q({connect:{statusCode:X,statusText:V,headers:M},buffered:Z})}A.on("error",F),A.on("end",J),E()})}function TU(...A){H.log("[https-proxy-agent]",...A)}class JX extends Xz{constructor(A,Q){super(Q);this.options={},this.proxy=typeof A==="string"?new URL(A):A,this.proxyHeaders=Q?.headers??{},TU("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let B=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),I=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...Q?jAA(Q,"headers"):null,host:B,port:I}}async connect(A,Q){let{proxy:B}=this;if(!Q.host)throw TypeError('No "host" provided');let I;if(B.protocol==="https:"){TU("Creating `tls.Socket`: %o",this.connectOpts);let Z=this.connectOpts.servername||this.connectOpts.host;I=Vz.connect({...this.connectOpts,servername:Z&&HE.isIP(Z)?void 0:Z})}else TU("Creating `net.Socket`: %o",this.connectOpts),I=HE.connect(this.connectOpts);let C=typeof this.proxyHeaders==="function"?this.proxyHeaders():{...this.proxyHeaders},E=HE.isIPv6(Q.host)?`[${Q.host}]`:Q.host,Y=`CONNECT ${E}:${Q.port} HTTP/1.1\r `;if(B.username||B.password){let Z=`${decodeURIComponent(B.username)}:${decodeURIComponent(B.password)}`;C["Proxy-Authorization"]=`Basic ${Buffer.from(Z).toString("base64")}`}if(C.Host=`${E}:${Q.port}`,!C["Proxy-Connection"])C["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close";for(let Z of Object.keys(C))Y+=`${Z}: ${C[Z]}\r -`;let J=_IA(I);I.write(`${Y}\r -`);let{connect:F,buffered:G}=await J;if(A.emit("proxyConnect",F),this.emit("proxyConnect",F,A),F.statusCode===200){if(A.once("socket",StA),Q.secureEndpoint){KW("Upgrading socket connection to TLS");let Z=Q.servername||Q.host;return Sz.connect({...vIA(Q,"host","path","port"),socket:I,servername:EE.isIP(Z)?void 0:Z})}return I}I.destroy();let D=new EE.Socket({writable:!1});return D.readable=!0,A.once("socket",(Z)=>{KW("Replaying proxy buffer for failed request"),Z.push(G),Z.push(null)}),D}}W8.__initStatic();function StA(A){A.resume()}function vIA(A,...Q){let B={},I;for(I in A)if(!Q.includes(I))B[I]=A[I];return B}var _tA=32768;function vtA(A){return new htA({read(){this.push(A),this.push(null)}})}function gz(A){let Q;try{Q=new URL(A.url)}catch(F){return eA(()=>{console.warn("[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.")}),gF(A,()=>Promise.resolve({}))}let B=Q.protocol==="https:",I=xtA(Q,A.proxy||(B?process.env.https_proxy:void 0)||process.env.http_proxy),C=B?ytA:gtA,E=A.keepAlive===void 0?!1:A.keepAlive,Y=I?new W8(I):new C.Agent({keepAlive:E,maxSockets:30,timeout:2000}),J=btA(A,A.httpModule??C,Y);return gF(A,J)}function xtA(A,Q){let{no_proxy:B}=process.env;if(B?.split(",").some((C)=>A.host.endsWith(C)||A.hostname.endsWith(C)))return;else return Q}function btA(A,Q,B){let{hostname:I,pathname:C,port:E,protocol:Y,search:J}=new URL(A.url);return function(G){return new Promise((D,Z)=>{RY(()=>{let W=vtA(G.body),U={...A.headers};if(G.body.length>_tA)U["content-encoding"]="gzip",W=W.pipe(ftA());let w=I.startsWith("["),K=Q.request({method:"POST",agent:B,headers:U,hostname:w?I.slice(1,-1):I,path:`${C}${J}`,port:E,protocol:Y,ca:A.caCerts},(V)=>{V.on("data",()=>{}),V.on("end",()=>{}),V.setEncoding("utf8");let z=V.headers["retry-after"]??null,M=V.headers["x-sentry-rate-limits"]??null;D({statusCode:V.statusCode,headers:{"retry-after":z,"x-sentry-rate-limits":Array.isArray(M)?M[0]||null:M}})});K.on("error",Z),W.pipe(K)})})}}function xIA(A){if(A===!1)return!1;if(typeof A==="string")return A;let Q=PY(process.env.SENTRY_SPOTLIGHT,{strict:!0}),B=Q===null&&process.env.SENTRY_SPOTLIGHT?process.env.SENTRY_SPOTLIGHT:void 0;return A===!0?B??!0:Q??B}import{posix as mtA,sep as dtA}from"node:path";function bIA(A){return A.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function yz(A=process.argv[1]?O6(process.argv[1]):process.cwd(),Q=dtA==="\\"){let B=Q?bIA(A):A;return(I)=>{if(!I)return;let C=Q?bIA(I):I,{dir:E,base:Y,ext:J}=mtA.parse(C);if(J===".js"||J===".mjs"||J===".cjs")Y=Y.slice(0,J.length*-1);let F=decodeURIComponent(Y);if(!E)E=".";let G=E.lastIndexOf("/node_modules");if(G>-1)return`${E.slice(G+14).replace(/\//g,".")}:${F}`;if(E.startsWith(B)){let D=E.slice(B.length+1).replace(/\//g,".");return D?`${D}:${F}`:F}return F}}function hz(A){if(process.env.SENTRY_RELEASE)return process.env.SENTRY_RELEASE;if(o.SENTRY_RELEASE?.id)return o.SENTRY_RELEASE.id;let Q=process.env.GITHUB_SHA||process.env.CI_MERGE_REQUEST_SOURCE_BRANCH_SHA||process.env.CI_BUILD_REF||process.env.CI_COMMIT_SHA||process.env.BITBUCKET_COMMIT,B=process.env.APPVEYOR_PULL_REQUEST_HEAD_COMMIT||process.env.APPVEYOR_REPO_COMMIT||process.env.CODEBUILD_RESOLVED_SOURCE_VERSION||process.env.AWS_COMMIT_ID||process.env.BUILD_SOURCEVERSION||process.env.GIT_CLONE_COMMIT_HASH||process.env.BUDDY_EXECUTION_REVISION||process.env.BUILDKITE_COMMIT||process.env.CIRCLE_SHA1||process.env.CIRRUS_CHANGE_IN_REPO||process.env.CF_REVISION||process.env.CM_COMMIT||process.env.CF_PAGES_COMMIT_SHA||process.env.DRONE_COMMIT_SHA||process.env.FC_GIT_COMMIT_SHA||process.env.HEROKU_TEST_RUN_COMMIT_VERSION||process.env.HEROKU_BUILD_COMMIT||process.env.HEROKU_SLUG_COMMIT||process.env.RAILWAY_GIT_COMMIT_SHA||process.env.RENDER_GIT_COMMIT||process.env.SEMAPHORE_GIT_SHA||process.env.TRAVIS_PULL_REQUEST_SHA||process.env.VERCEL_GIT_COMMIT_SHA||process.env.VERCEL_GITHUB_COMMIT_SHA||process.env.VERCEL_GITLAB_COMMIT_SHA||process.env.VERCEL_BITBUCKET_COMMIT_SHA||process.env.ZEIT_GITHUB_COMMIT_SHA||process.env.ZEIT_GITLAB_COMMIT_SHA||process.env.ZEIT_BITBUCKET_COMMIT_SHA,I=process.env.CI_COMMIT_ID||process.env.SOURCE_COMMIT||process.env.SOURCE_VERSION||process.env.GIT_COMMIT||process.env.COMMIT_REF||process.env.BUILD_VCS_NUMBER||process.env.CI_COMMIT_SHA;return Q||B||I||A}var fz=m1(J7(yz()));var dIA=P(j(),1),cIA=P(s(),1);import*as mIA from"node:os";import{threadId as ctA,isMainThread as utA}from"worker_threads";var ltA=60000;class U8 extends IX{constructor(A){let Q=A.includeServerName===!1?void 0:A.serverName||global.process.env.SENTRY_NAME||mIA.hostname(),B={...A,platform:"node",runtime:A.runtime||{name:"node",version:global.process.version},serverName:Q};if(A.openTelemetryInstrumentations)cIA.registerInstrumentations({instrumentations:A.openTelemetryInstrumentations});kY(B,"node"),$.log(`Initializing Sentry: process: ${process.pid}, thread: ${utA?"main":`worker-${ctA}`}.`);super(B);if(this.getOptions().enableLogs){if(this._logOnExitFlushListener=()=>{kF(this)},Q)this.on("beforeCaptureLog",(I)=>{I.attributes={...I.attributes,"server.address":Q}});process.on("beforeExit",this._logOnExitFlushListener)}}get tracer(){if(this._tracer)return this._tracer;let A="@sentry/node",Q=EA,B=dIA.trace.getTracer(A,Q);return this._tracer=B,B}async flush(A){if(await this.traceProvider?.forceFlush(),this.getOptions().sendClientReports)this._flushOutcomes();return super.flush(A)}async close(A){if(this._clientReportInterval)clearInterval(this._clientReportInterval);if(this._clientReportOnExitFlushListener)process.off("beforeExit",this._clientReportOnExitFlushListener);if(this._logOnExitFlushListener)process.off("beforeExit",this._logOnExitFlushListener);let Q=await super.close(A);if(this.traceProvider)await this.traceProvider.shutdown();return Q}startClientReportTracking(){let A=this.getOptions();if(A.sendClientReports)this._clientReportOnExitFlushListener=()=>{this._flushOutcomes()},this._clientReportInterval=setInterval(()=>{t&&$.log("Flushing client reports based on interval."),this._flushOutcomes()},A.clientReportFlushInterval??ltA).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener)}_setupIntegrations(){M6(),super._setupIntegrations()}_getTraceInfoFromScope(A){if(!A)return[void 0,void 0];return eBA(this,A)}}var uIA=P(eV(),1);import*as lIA from"module";function _z(){if(!PIA())return;if(!o._sentryEsmLoaderHookRegistered){o._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:A}=uIA.createAddHookMessageChannel();lIA.register("import-in-the-middle/hook.mjs",import.meta.url,{data:{addHookMessagePort:A,include:[]},transferList:[A]})}catch(A){$.warn("Failed to register 'import-in-the-middle' hook",A)}}}function X8(){return[fZ(),hZ(),_Z(),vZ(),Tz(),S6(),xZ(),$IA(),yIA(),Nz(),jz(),zz(),Hz(),Kz(),wz(),Rz(),Lz()]}function vz(A={}){return ptA(A,X8)}function ptA(A={},Q){let B=itA(A,Q);if(B.debug===!0)if(t)$.enable();else eA(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")});if(B.registerEsmLoaderHooks!==!1)_z();if(BIA(),FA().update(B.initialScope),B.spotlight&&!B.integrations.some(({name:E})=>E===qz))B.integrations.push(Oz({sidecarUrl:typeof B.spotlight==="string"?B.spotlight:void 0}));kY(B,"node-core");let C=new U8(B);if(FA().setClient(C),C.init(),$.log(`SDK initialized from ${XW()?"CommonJS":"ESM"}`),C.startClientReportTracking(),atA(),mBA(C),QIA(C),process.env.VERCEL)process.on("SIGTERM",async()=>{await C.flush(200)});return C}function w8(){if(!t)return;let A=lBA(),Q=["SentryContextManager","SentryPropagator"];if(AQ())Q.push("SentrySpanProcessor");for(let B of Q)if(!A.includes(B))$.error(`You have to set up the ${B}. Without this, the OpenTelemetry & Sentry integration will not work properly.`);if(!A.includes("SentrySampler"))$.warn("You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.")}function itA(A,Q){let B=ntA(A.release),I=xIA(A.spotlight),C=otA(A.tracesSampleRate),E={...A,dsn:A.dsn??process.env.SENTRY_DSN,environment:A.environment??process.env.SENTRY_ENVIRONMENT,sendClientReports:A.sendClientReports??!0,transport:A.transport??gz,stackParser:R3(A.stackParser||fz),release:B,tracesSampleRate:C,spotlight:I,debug:PY(A.debug??process.env.SENTRY_DEBUG)},Y=A.integrations,J=A.defaultIntegrations??Q(E);return{...E,integrations:E6({defaultIntegrations:J,integrations:Y})}}function ntA(A){if(A!==void 0)return A;let Q=hz();if(Q!==void 0)return Q;return}function otA(A){if(A!==void 0)return A;let Q=process.env.SENTRY_TRACES_SAMPLE_RATE;if(!Q)return;let B=parseFloat(Q);return isFinite(B)?B:void 0}function atA(){if(PY(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let A=process.env.SENTRY_TRACE,Q=process.env.SENTRY_BAGGAGE,B=GZ(A,Q);FA().setPropagationContext(B)}}function NA(A,Q){A.setAttribute(x,Q)}function VW(A){let Q=A.protocol||"",B=A.hostname||A.host||"",I=!A.port||A.port===80||A.port===443||/^(.*):(\d+)$/.test(B)?"":`:${A.port}`,C=A.path?A.path:"/";return`${Q}//${B}${I}${C}`}var xz="Http",pIA="@opentelemetry_sentry-patched/instrumentation-http",K8=WI.major===22&&WI.minor>=12||WI.major===23&&WI.minor>=2||WI.major>=24,UeA=S(`${xz}.sentry`,(A)=>{return new rF(A)}),XeA=S(xz,(A)=>{let Q=new nIA.HttpInstrumentation({...A,disableIncomingRequestInstrumentation:!0});try{Q._diag=iIA.diag.createComponentLogger({namespace:pIA}),Q.instrumentationName=pIA}catch{}try{let B={get:()=>!1,set:()=>{}};Object.defineProperty(Q,"_httpPatched",B),Object.defineProperty(Q,"_httpsPatched",B)}catch{}return Q});function weA(A,Q={}){if(typeof A.spans==="boolean")return A.spans;if(Q.skipOpenTelemetrySetup)return!1;if(!AQ(Q)&&K8)return!1;return!0}var oIA=R((A={})=>{let Q=A.spans??!0,B=A.disableIncomingRequestSpans,I={sessions:A.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:A.sessionFlushingDelayMS,ignoreRequestBody:A.ignoreIncomingRequestBody,maxRequestBodySize:A.maxIncomingRequestBodySize},C={ignoreIncomingRequests:A.ignoreIncomingRequests,ignoreStaticAssets:A.ignoreStaticAssets,ignoreStatusCodes:A.dropSpansForIncomingRequestStatusCodes,instrumentation:A.instrumentation,onSpanCreated:A.incomingRequestSpanHook},E=oF(I),Y=aF(C),J=Q&&!B;return{name:xz,setup(F){let G=F.getOptions();if(J&&AQ(G))Y.setup(F)},setupOnce(){let F=g()?.getOptions()||{},G=weA(A,F);E.setupOnce();let D={breadcrumbs:A.breadcrumbs,propagateTraceInOutgoingRequests:typeof A.tracePropagation==="boolean"?A.tracePropagation:K8||!G,createSpansForOutgoingRequests:K8,spans:A.spans,ignoreOutgoingRequests:A.ignoreOutgoingRequests,outgoingRequestHook:(Z,W)=>{let U=VW(W);if(U.startsWith("data:")){let w=_F(U);Z.setAttribute("http.url",w),Z.setAttribute(nE,w),Z.updateName(`${W.method||"GET"} ${w}`)}A.instrumentation?.requestHook?.(Z,W)},outgoingResponseHook:A.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:A.instrumentation?.applyCustomAttributesOnSpan};if(UeA(D),G){let Z=KeA(A);XeA(Z)}},processEvent(F){return Y.processEvent(F)}}});function KeA(A={}){return{disableOutgoingRequestInstrumentation:K8,ignoreOutgoingRequestHook:(B)=>{let I=VW(B);if(!I)return!1;let C=A.ignoreOutgoingRequests;if(C?.(I,B))return!0;return!1},requireParentforOutgoingSpans:!1,requestHook:(B,I)=>{NA(B,"auto.http.otel.http");let C=VW(I);if(C.startsWith("data:")){let E=_F(C);B.setAttribute("http.url",E),B.setAttribute(nE,E),B.updateName(`${I.method||"GET"} ${E}`)}A.instrumentation?.requestHook?.(B,I)},responseHook:(B,I)=>{A.instrumentation?.responseHook?.(B,I)},applyCustomAttributesOnSpan:(B,I,C)=>{A.instrumentation?.applyCustomAttributesOnSpan?.(B,I,C)}}}var ECA=P(ICA(),1);var YCA="NodeFetch",MeA=S(YCA,ECA.UndiciInstrumentation,(A)=>{return ReA(A)}),LeA=S(`${YCA}.sentry`,eF,(A)=>{return A}),NeA=(A={})=>{return{name:"NodeFetch",setupOnce(){if(jeA(A,g()?.getOptions()))MeA(A);LeA(A)}}},JCA=R(NeA);function CCA(A,Q="/"){let B=`${A}`;if(B.endsWith("/")&&Q.startsWith("/"))return`${B}${Q.slice(1)}`;if(!B.endsWith("/")&&!Q.startsWith("/"))return`${B}/${Q}`;return`${B}${Q}`}function jeA(A,Q={}){return typeof A.spans==="boolean"?A.spans:!Q.skipOpenTelemetrySetup&&AQ(Q)}function ReA(A={}){return{requireParentforSpans:!1,ignoreRequestHook:(B)=>{let I=CCA(B.origin,B.path),C=A.ignoreOutgoingRequests;return!!(C&&I&&C(I))},startSpanHook:(B)=>{let I=CCA(B.origin,B.path);if(I.startsWith("data:")){let C=_F(I);return{[x]:"auto.http.otel.node_fetch","http.url":C,[nE]:C,[FI]:`${B.method||"GET"} ${C}`}}return{[x]:"auto.http.otel.node_fetch"}},requestHook:A.requestHook,responseHook:A.responseHook,headersToSpanAttributes:A.headersToSpanAttributes}}var PCA=P(TCA(),1);var UQ=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var kCA="Express";function seA(A){NA(A,"auto.http.otel.express");let Q=v(A).data,B=Q["express.type"];if(B)A.setAttribute(u,`${B}.express`);let I=Q["express.name"];if(typeof I==="string")A.updateName(I)}function reA(A,Q){if(AA()===hB())return UQ&&$.warn("Isolation scope is still default isolation scope - skipping setting transactionName"),Q;if(A.layerType==="request_handler"){let B=A.request,I=B.method?B.method.toUpperCase():"GET";AA().setTransactionName(`${I} ${A.route}`)}return Q}var SCA=S(kCA,()=>new PCA.ExpressInstrumentation({requestHook:(A)=>seA(A),spanNameHook:(A,Q)=>reA(A,Q)})),teA=()=>{return{name:kCA,setupOnce(){SCA()}}},gCA=R(teA);var KYA=P(FYA(),1);import*as f$ from"node:diagnostics_channel";var lI=P(j(),1),f8=P(MA(),1),aY=P(s(),1),UYA=P(JA(),1);var YE;(function(A){A.FASTIFY_NAME="fastify.name";let B="fastify.type";A.FASTIFY_TYPE=B;let I="hook.name";A.HOOK_NAME=I;let C="plugin.name";A.PLUGIN_NAME=C})(YE||(YE={}));var hW;(function(A){A.MIDDLEWARE="middleware";let B="request_handler";A.REQUEST_HANDLER=B})(hW||(hW={}));var fW;(function(A){A.MIDDLEWARE="middleware";let B="request handler";A.REQUEST_HANDLER=B})(fW||(fW={}));var DYA=P(j(),1);var _W=Symbol("opentelemetry.instrumentation.fastify.request_active_span");function y$(A,Q,B,I={}){let C=Q.startSpan(B,{attributes:I}),E=A[_W]||[];return E.push(C),Object.defineProperty(A,_W,{enumerable:!1,configurable:!0,value:E}),C}function h8(A,Q){let B=A[_W]||[];if(!B.length)return;B.forEach((I)=>{if(Q)I.setStatus({code:DYA.SpanStatusCode.ERROR,message:Q.message}),I.recordException(Q);I.end()}),delete A[_W]}function ZYA(A,Q,B){let I,C=void 0;try{if(C=A(),GYA(C))C.then((E)=>Q(void 0,E),(E)=>Q(E))}catch(E){I=E}finally{if(!GYA(C)){if(Q(I,C),I)throw I}return C}}function GYA(A){return typeof A==="object"&&A&&typeof Object.getOwnPropertyDescriptor(A,"then")?.value==="function"||!1}var KIQ="0.1.0",VIQ="@sentry/instrumentation-fastify-v3",WYA="anonymous",zIQ=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]);class h$ extends aY.InstrumentationBase{constructor(A={}){super(VIQ,KIQ,A)}init(){return[new aY.InstrumentationNodeModuleDefinition("fastify",[">=3.0.0 <4"],(A)=>{return this._patchConstructor(A)})]}_hookOnRequest(){let A=this;return function(B,I,C){if(!A.isEnabled())return C();A._wrap(I,"send",A._patchSend());let E=B,Y=f8.getRPCMetadata(lI.context.active()),J=E.routeOptions?E.routeOptions.url:B.routerPath;if(J&&Y?.type===f8.RPCType.HTTP)Y.route=J;let F=B.method||"GET";AA().setTransactionName(`${F} ${J}`),C()}}_wrapHandler(A,Q,B,I){let C=this;return this._diag.debug("Patching fastify route.handler function"),function(...E){if(!C.isEnabled())return B.apply(this,E);let Y=B.name||A||WYA,J=`${fW.MIDDLEWARE} - ${Y}`,F=E[1],G=y$(F,C.tracer,J,{[YE.FASTIFY_TYPE]:hW.MIDDLEWARE,[YE.PLUGIN_NAME]:A,[YE.HOOK_NAME]:Q}),D=I&&E[E.length-1];if(D)E[E.length-1]=function(...Z){h8(F),D.apply(this,Z)};return lI.context.with(lI.trace.setSpan(lI.context.active(),G),()=>{return ZYA(()=>{return B.apply(this,E)},(Z)=>{if(Z instanceof Error)G.setStatus({code:lI.SpanStatusCode.ERROR,message:Z.message}),G.recordException(Z);if(!I)h8(F)})})}}_wrapAddHook(){let A=this;return this._diag.debug("Patching fastify server.addHook function"),function(Q){return function(...I){let C=I[0],E=I[1],Y=this.pluginName;if(!zIQ.has(C))return Q.apply(this,I);let J=typeof I[I.length-1]==="function"&&E.constructor.name!=="AsyncFunction";return Q.apply(this,[C,A._wrapHandler(Y,C,E,J)])}}}_patchConstructor(A){let Q=this;function B(...I){let C=A.fastify.apply(this,I);return C.addHook("onRequest",Q._hookOnRequest()),C.addHook("preHandler",Q._hookPreHandler()),$IQ(),Q._wrap(C,"addHook",Q._wrapAddHook()),C}if(A.errorCodes!==void 0)B.errorCodes=A.errorCodes;return B.fastify=B,B.default=B,B}_patchSend(){let A=this;return this._diag.debug("Patching fastify reply.send function"),function(B){return function(...C){let E=C[0];if(!A.isEnabled())return B.apply(this,C);return aY.safeExecuteInTheMiddle(()=>{return B.apply(this,C)},(Y)=>{if(!Y&&E instanceof Error)Y=E;h8(this,Y)})}}}_hookPreHandler(){let A=this;return this._diag.debug("Patching fastify preHandler function"),function(B,I,C){if(!A.isEnabled())return C();let E=B,Y=E.routeOptions?.handler||E.context?.handler,J=Y?.name.startsWith("bound ")?Y.name.substring(6):Y?.name,F=`${fW.REQUEST_HANDLER} - ${J||this.pluginName||WYA}`,G={[YE.PLUGIN_NAME]:this.pluginName,[YE.FASTIFY_TYPE]:hW.REQUEST_HANDLER,[UYA.SEMATTRS_HTTP_ROUTE]:E.routeOptions?E.routeOptions.url:B.routerPath};if(J)G[YE.FASTIFY_NAME]=J;let D=y$(I,A.tracer,F,G);XYA(D);let{requestHook:Z}=A.getConfig();if(Z)aY.safeExecuteInTheMiddle(()=>Z(D,{request:B}),(W)=>{if(W)A._diag.error("request hook failed",W)},!0);return lI.context.with(lI.trace.setSpan(lI.context.active(),D),()=>{C()})}}}function $IQ(){let A=g();if(A)A.on("spanStart",(Q)=>{XYA(Q)})}function XYA(A){let Q=v(A).data,B=Q["fastify.type"];if(Q[u]||!B)return;A.setAttributes({[x]:"auto.http.otel.fastify",[u]:`${B}.fastify`});let I=Q["fastify.name"]||Q["plugin.name"]||Q["hook.name"];if(typeof I==="string"){let C=I.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");A.updateName(C)}}var _8="Fastify",VYA=S(`${_8}.v3`,()=>new h$);function HIQ(){let A=g();if(!A)return;else return A.getIntegrationByName(_8)}function wYA(A,Q,B,I){let C=HIQ()?.getShouldHandleError()||HYA;if(I==="diagnostics-channel")this.diagnosticsChannelExists=!0;if(this.diagnosticsChannelExists&&I==="onError-hook"){UQ&&$.warn("Fastify error handler was already registered via diagnostics channel.","You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.");return}if(C(A,Q,B))n(A,{mechanism:{handled:!1,type:"auto.function.fastify"}})}var zYA=S(`${_8}.v5`,()=>{let A=new KYA.FastifyOtelInstrumentation,Q=A.plugin();return f$.subscribe("fastify.initialization",(B)=>{let I=B.fastify;I?.register(Q).after((C)=>{if(C)UQ&&$.error("Failed to setup Fastify instrumentation",C);else if(LIQ(),I)NIQ(I)})}),f$.subscribe("tracing:fastify.request.handler:error",(B)=>{let{error:I,request:C,reply:E}=B;wYA.call(wYA,I,C,E,"diagnostics-channel")}),A}),MIQ=({shouldHandleError:A})=>{let Q;return{name:_8,setupOnce(){Q=A||HYA,VYA(),zYA()},getShouldHandleError(){return Q},setShouldHandleError(B){Q=B}}},$YA=R((A={})=>MIQ(A));function HYA(A,Q,B){let I=B.statusCode;return I>=500||I<=299}function MYA(A){let Q=v(A),B=Q.description,I=Q.data,C=I["fastify.type"],E=C==="hook",Y=C===B?.startsWith("handler -"),J=B==="request"||C==="request-handler";if(I[u]||!Y&&!J&&!E)return;let F=E?"hook":Y?"middleware":J?"request_handler":"";A.setAttributes({[x]:"auto.http.otel.fastify",[u]:`${F}.fastify`});let G=I["fastify.name"]||I["plugin.name"]||I["hook.name"];if(typeof G==="string"){let D=G.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");A.updateName(D)}}function LIQ(){let A=g();if(A)A.on("spanStart",(Q)=>{MYA(Q)})}function NIQ(A){A.addHook("onRequest",async(Q,B)=>{if(Q.opentelemetry){let{span:E}=Q.opentelemetry();if(E)MYA(E)}let I=Q.routeOptions?.url,C=Q.method||"GET";AA().setTransactionName(`${C} ${I}`)})}var CJA=P(j(),1),EJA=P(IJA(),1);var YJA="Graphql",JJA=S(YJA,EJA.GraphQLInstrumentation,(A)=>{let Q=GJA(A);return{...Q,responseHook(B,I){if(NA(B,"auto.graphql.otel.graphql"),I.errors?.length&&!v(B).status)B.setStatus({code:CJA.SpanStatusCode.ERROR});let E=v(B).data,Y=E["graphql.operation.type"],J=E["graphql.operation.name"];if(Q.useOperationNameForRootSpan&&Y){let F=bA(B),D=v(F).data[JG]||[],Z=J?`${Y} ${J}`:`${Y}`;if(Array.isArray(D))D.push(Z),F.setAttribute(JG,D);else if(typeof D==="string")F.setAttribute(JG,[D,Z]);else F.setAttribute(JG,Z);if(!v(F).data["original-description"])F.setAttribute("original-description",v(F).description);F.updateName(`${v(F).data["original-description"]} (${eIQ(D)})`)}}}}),tIQ=(A={})=>{return{name:YJA,setupOnce(){JJA(GJA(A))}}},FJA=R(tIQ);function GJA(A){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...A}}function eIQ(A){if(Array.isArray(A)){let Q=A.slice().sort();if(Q.length<=5)return Q.join(", ");else return`${Q.slice(0,5).join(", ")}, +${Q.length-5}`}return`${A}`}var gJA=P(SJA(),1);var yJA="Kafka",hJA=S(yJA,()=>new gJA.KafkaJsInstrumentation({consumerHook(A){NA(A,"auto.kafkajs.otel.consumer")},producerHook(A){NA(A,"auto.kafkajs.otel.producer")}})),$CQ=()=>{return{name:yJA,setupOnce(){hJA()}}},fJA=R($CQ);var nJA=P(iJA(),1);var oJA="LruMemoizer",aJA=S(oJA,()=>new nJA.LruMemoizerInstrumentation),NCQ=()=>{return{name:oJA,setupOnce(){aJA()}}},sJA=R(NCQ);var UFA=P(WFA(),1);var XFA="Mongo",wFA=S(XFA,()=>new UFA.MongoDBInstrumentation({dbStatementSerializer:mCQ,responseHook(A){NA(A,"auto.db.otel.mongo")}}));function mCQ(A){let Q=o$(A);return JSON.stringify(Q)}function o$(A){if(Array.isArray(A))return A.map((Q)=>o$(Q));if(dCQ(A)){let Q={};return Object.entries(A).map(([B,I])=>[B,o$(I)]).reduce((B,I)=>{if(uCQ(I))B[I[0]]=I[1];return B},Q)}return"?"}function dCQ(A){return typeof A==="object"&&A!==null&&!cCQ(A)}function cCQ(A){let Q=!1;if(typeof Buffer<"u")Q=Buffer.isBuffer(A);return Q}function uCQ(A){return Array.isArray(A)}var lCQ=()=>{return{name:XFA,setupOnce(){wFA()}}},KFA=R(lCQ);var _FA=P(fFA(),1);var vFA="Mongoose",xFA=S(vFA,()=>new _FA.MongooseInstrumentation({responseHook(A){NA(A,"auto.db.otel.mongoose")}})),ZEQ=()=>{return{name:vFA,setupOnce(){xFA()}}},bFA=R(ZEQ);var IGA=P(BGA(),1);var CGA="Mysql",EGA=S(CGA,()=>new IGA.MySQLInstrumentation({})),vEQ=()=>{return{name:CGA,setupOnce(){EGA()}}},YGA=R(vEQ);var RGA=P(jGA(),1);var qGA="Mysql2",OGA=S(qGA,()=>new RGA.MySQL2Instrumentation({responseHook(A){NA(A,"auto.db.otel.mysql2")}})),Z0Q=()=>{return{name:qGA,setupOnce(){OGA()}}},TGA=R(Z0Q);var qDA=P(nGA(),1),ODA=P(MDA(),1);var o0Q=["get","set","setex"],KH=["get","mget"],a0Q=["set","setex"];function nW(A,Q){return A.includes(Q.toLowerCase())}function VH(A){if(nW(KH,A))return"cache.get";else if(nW(a0Q,A))return"cache.put";else return}function s0Q(A,Q){return Q.some((B)=>A.startsWith(B))}function NDA(A,Q){try{if(Q.length===0)return;let B=(C)=>{if(typeof C==="string"||typeof C==="number"||Buffer.isBuffer(C))return[C.toString()];else if(Array.isArray(C))return LDA(C.map((E)=>B(E)));else return[""]},I=Q[0];if(nW(o0Q,A)&&I!=null)return B(I);return LDA(Q.map((C)=>B(C)))}catch{return}}function jDA(A,Q,B){if(!VH(A))return!1;for(let I of Q)if(s0Q(I,B))return!0;return!1}function RDA(A){let Q=(B)=>{try{if(Buffer.isBuffer(B))return B.byteLength;else if(typeof B==="string")return B.length;else if(typeof B==="number")return B.toString().length;else if(B===null||B===void 0)return 0;return JSON.stringify(B).length}catch{return}};return Array.isArray(A)?A.reduce((B,I)=>{let C=Q(I);return typeof C==="number"?B!==void 0?B+C:C:B},0):Q(A)}function LDA(A){let Q=[],B=(I)=>{I.forEach((C)=>{if(Array.isArray(C))B(C);else Q.push(C)})};return B(A),Q}var s8="Redis",oW={},TDA=(A,Q,B,I)=>{A.setAttribute(x,"auto.db.otel.redis");let C=NDA(Q,B),E=VH(Q);if(!C||!E||!oW.cachePrefixes||!jDA(Q,C,oW.cachePrefixes))return;let Y=v(A).data["net.peer.name"],J=v(A).data["net.peer.port"];if(J&&Y)A.setAttributes({"network.peer.address":Y,"network.peer.port":J});let F=RDA(I);if(F)A.setAttribute(b3,F);if(nW(KH,Q)&&F!==void 0)A.setAttribute(v3,F>0);A.setAttributes({[u]:E,[x3]:C});let G=C.join(", ");A.updateName(oW.maxCacheKeyLength?uE(G,oW.maxCacheKeyLength):G)},r0Q=S(`${s8}.IORedis`,()=>{return new qDA.IORedisInstrumentation({responseHook:TDA})}),t0Q=S(`${s8}.Redis`,()=>{return new ODA.RedisInstrumentation({responseHook:TDA})}),PDA=Object.assign(()=>{r0Q(),t0Q()},{id:s8}),e0Q=(A={})=>{return{name:s8,setupOnce(){oW=A,PDA()}}},kDA=R(e0Q);var YZA=P(EZA(),1);var JZA="Postgres",FZA=S(JZA,YZA.PgInstrumentation,(A)=>({requireParentSpan:!0,requestHook(Q){NA(Q,"auto.db.otel.postgres")},ignoreConnectSpans:A?.ignoreConnectSpans??!1})),pYQ=(A)=>{return{name:JZA,setupOnce(){FZA(A)}}},GZA=R(pYQ);var HG=P(j(),1),N0=P(s(),1),nI=P(JA(),1);var jH="PostgresJs",DZA=[">=3.0.0 <4"],iYQ=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,nYQ=Symbol.for("sentry.query.from.instrumented.sql"),ZZA=S(jH,(A)=>new WZA({requireParentSpan:A?.requireParentSpan??!0,requestHook:A?.requestHook}));class WZA extends N0.InstrumentationBase{constructor(A){super("sentry-postgres-js",EA,A)}init(){let A=new N0.InstrumentationNodeModuleDefinition("postgres",DZA,(Q)=>{try{return this._patchPostgres(Q)}catch(B){return UQ&&$.error("Failed to patch postgres module:",B),Q}},(Q)=>Q);return["src","cf/src","cjs/src"].forEach((Q)=>{A.files.push(new N0.InstrumentationNodeModuleFile(`postgres/${Q}/query.js`,DZA,this._patchQueryPrototype.bind(this),this._unpatchQueryPrototype.bind(this)))}),A}_patchPostgres(A){let Q=typeof A==="function",B=Q?A:A.default;if(typeof B!=="function")return UQ&&$.warn("postgres module does not export a function. Skipping instrumentation."),A;let I=this,C=function(...E){let Y=Reflect.construct(B,E);if(!Y||typeof Y!=="function")return UQ&&$.warn("postgres() did not return a valid instance"),Y;let J=I.getConfig();return k6(Y,{requireParentSpan:J.requireParentSpan,requestHook:J.requestHook})};Object.setPrototypeOf(C,B),Object.setPrototypeOf(C.prototype,B.prototype);for(let E of Object.getOwnPropertyNames(B))if(!["length","name","prototype"].includes(E)){let Y=Object.getOwnPropertyDescriptor(B,E);if(Y)Object.defineProperty(C,E,Y)}if(Q)return C;else return oZ(A,"default",C),A}_shouldCreateSpans(){let A=this.getConfig();return HG.trace.getSpan(HG.context.active())!==void 0||!A.requireParentSpan}_setOperationName(A,Q,B){if(B){A.setAttribute(nI.ATTR_DB_OPERATION_NAME,B);return}let I=Q?.match(iYQ);if(I?.[1])A.setAttribute(nI.ATTR_DB_OPERATION_NAME,I[1].toUpperCase())}_reconstructQuery(A){if(!A?.length)return;if(A.length===1)return A[0]||void 0;return A.reduce((Q,B,I)=>I===0?B:`${Q}$${I}${B}`,"")}_sanitizeSqlQuery(A){if(!A)return"Unknown SQL Query";return A.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{NA(Y,"auto.db.postgresjs"),Y.setAttributes({[nI.ATTR_DB_SYSTEM_NAME]:"postgres",[nI.ATTR_DB_QUERY_TEXT]:E});let J=Q.getConfig(),{requestHook:F}=J;if(F)N0.safeExecuteInTheMiddle(()=>F(Y,E,void 0),(Z)=>{if(Z)Y.setAttribute("sentry.hook.error","requestHook failed"),UQ&&$.error(`Error in requestHook for ${jH} integration:`,Z)},!0);let G=this.resolve;this.resolve=new Proxy(G,{apply:(Z,W,U)=>{try{Q._setOperationName(Y,E,U?.[0]?.command),Y.end()}catch(w){UQ&&$.error("Error ending span in resolve callback:",w)}return Reflect.apply(Z,W,U)}});let D=this.reject;this.reject=new Proxy(D,{apply:(Z,W,U)=>{try{Y.setStatus({code:BA,message:U?.[0]?.message||"unknown_error"}),Y.setAttribute(nI.ATTR_DB_RESPONSE_STATUS_CODE,U?.[0]?.code||"unknown"),Y.setAttribute(nI.ATTR_ERROR_TYPE,U?.[0]?.name||"unknown"),Q._setOperationName(Y,E),Y.end()}catch(w){UQ&&$.error("Error ending span in reject callback:",w)}return Reflect.apply(Z,W,U)}});try{return B.apply(this,I)}catch(Z){throw Y.setStatus({code:BA,message:Z instanceof Error?Z.message:"unknown_error"}),Y.end(),Z}})},A.Query.prototype.handle.__sentry_original__=B,A}_unpatchQueryPrototype(A){if(A.Query.prototype.handle.__sentry_original__)A.Query.prototype.handle=A.Query.prototype.handle.__sentry_original__;return A}}var oYQ=(A)=>{return{name:jH,setupOnce(){ZZA(A)}}},UZA=R(oYQ);var LI=P(j(),1);var B9A=P(j(),1),Gw=P(eWA(),1),j0=P(j(),1);var uFQ={name:"@prisma/instrumentation-contract",version:"7.4.2",description:"Shared types and utilities for Prisma instrumentation",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",exports:{".":{require:{types:"./dist/index.d.ts",default:"./dist/index.js"},import:{types:"./dist/index.d.mts",default:"./dist/index.mjs"}}},license:"Apache-2.0",homepage:"https://www.prisma.io",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/instrumentation-contract"},bugs:"https://github.com/prisma/prisma/issues",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",prepublishOnly:"pnpm run build",test:"vitest run"},files:["dist"],sideEffects:!1,devDependencies:{"@opentelemetry/api":"1.9.0"},peerDependencies:{"@opentelemetry/api":"^1.8"}},lFQ=uFQ.version.split(".")[0],QM="PRISMA_INSTRUMENTATION",BM=`V${lFQ}_PRISMA_INSTRUMENTATION`,NG=globalThis;function pFQ(){let A=NG[BM];if(A?.helper)return A.helper;return NG[QM]?.helper}function iFQ(A){let Q={helper:A};NG[BM]=Q,NG[QM]=Q}function nFQ(){delete NG[BM],delete NG[QM]}var oFQ=process.env.PRISMA_SHOW_ALL_TRACES==="true",aFQ="00-10-10-00";function sFQ(A){switch(A){case"client":return j0.SpanKind.CLIENT;case"internal":default:return j0.SpanKind.INTERNAL}}var rFQ=class{tracerProvider;ignoreSpanTypes;constructor({tracerProvider:A,ignoreSpanTypes:Q}){this.tracerProvider=A,this.ignoreSpanTypes=Q}isEnabled(){return!0}getTraceParent(A){let Q=j0.trace.getSpanContext(A??j0.context.active());if(Q)return`00-${Q.traceId}-${Q.spanId}-0${Q.traceFlags}`;return aFQ}dispatchEngineSpans(A){let Q=this.tracerProvider.getTracer("prisma"),B=new Map,I=A.filter((C)=>C.parentId===null);for(let C of I)I9A(Q,C,A,B,this.ignoreSpanTypes)}getActiveContext(){return j0.context.active()}runInChildSpan(A,Q){if(typeof A==="string")A={name:A};if(A.internal&&!oFQ)return Q();let B=this.tracerProvider.getTracer("prisma"),I=A.context??this.getActiveContext(),C=`prisma:client:${A.name}`;if(C9A(C,this.ignoreSpanTypes))return Q();if(A.active===!1){let E=B.startSpan(C,A,I);return A9A(E,Q(E,I))}return B.startActiveSpan(C,A,(E)=>A9A(E,Q(E,I)))}};function I9A(A,Q,B,I,C){if(C9A(Q.name,C))return;let E={attributes:Q.attributes,kind:sFQ(Q.kind),startTime:Q.startTime};A.startActiveSpan(Q.name,E,(Y)=>{if(I.set(Q.id,Y.spanContext().spanId),Q.links)Y.addLinks(Q.links.flatMap((F)=>{let G=I.get(F);if(!G)return[];return{context:{spanId:G,traceId:Y.spanContext().traceId,traceFlags:Y.spanContext().traceFlags}}}));let J=B.filter((F)=>F.parentId===Q.id);for(let F of J)I9A(A,F,B,I,C);Y.end(Q.endTime)})}function A9A(A,Q){if(tFQ(Q))return Q.then((B)=>{return A.end(),B},(B)=>{throw A.end(),B});return A.end(),Q}function tFQ(A){return A!=null&&typeof A.then==="function"}function C9A(A,Q){return Q.some((B)=>typeof B==="string"?B===A:B.test(A))}var E9A={name:"@prisma/instrumentation",version:"7.4.2",description:"OpenTelemetry compliant instrumentation for Prisma Client",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",exports:{".":{require:{types:"./dist/index.d.ts",default:"./dist/index.js"},import:{types:"./dist/index.d.ts",default:"./dist/index.mjs"}}},license:"Apache-2.0",homepage:"https://www.prisma.io",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/instrumentation"},bugs:"https://github.com/prisma/prisma/issues",devDependencies:{"@opentelemetry/api":"1.9.0","@prisma/instrumentation-contract":"workspace:*","@types/node":"~20.19.24",typescript:"5.4.5"},dependencies:{"@opentelemetry/instrumentation":"^0.207.0"},peerDependencies:{"@opentelemetry/api":"^1.8"},files:["dist"],keywords:["prisma","instrumentation","opentelemetry","otel"],scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",prepublishOnly:"pnpm run build",test:"vitest run"},sideEffects:!1},Q9A=E9A.version,eFQ=E9A.name,AGQ="@prisma/client",Y9A=class extends Gw.InstrumentationBase{tracerProvider;constructor(A={}){super(eFQ,Q9A,A)}setTracerProvider(A){this.tracerProvider=A}init(){return[new Gw.InstrumentationNodeModuleDefinition(AGQ,[Q9A])]}enable(){let A=this._config;iFQ(new rFQ({tracerProvider:this.tracerProvider??B9A.trace.getTracerProvider(),ignoreSpanTypes:A.ignoreSpanTypes??[]}))}disable(){nFQ()}isEnabled(){return pFQ()!==void 0}};var J9A="Prisma";function QGQ(A){return!!A&&typeof A==="object"&&"dispatchEngineSpans"in A}function F9A(){let A=globalThis.PRISMA_INSTRUMENTATION;return A&&typeof A==="object"&&"helper"in A?A.helper:void 0}class G9A extends Y9A{constructor(A){super(A?.instrumentationConfig)}enable(){super.enable();let A=F9A();if(QGQ(A))A.createEngineSpan=(Q)=>{let B=LI.trace.getTracer("prismaV5Compatibility"),I=B._idGenerator;if(!I){eA(()=>{console.warn("[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!")});return}try{Q.spans.forEach((C)=>{let E=BGQ(C.kind),Y=C.parent_span_id,J=C.span_id,F=C.trace_id,G=C.links?.map((Z)=>{return{context:{traceId:Z.trace_id,spanId:Z.span_id,traceFlags:LI.TraceFlags.SAMPLED}}}),D=LI.trace.setSpanContext(LI.context.active(),{traceId:F,spanId:Y,traceFlags:LI.TraceFlags.SAMPLED});LI.context.with(D,()=>{let Z={generateTraceId:()=>{return F},generateSpanId:()=>{return J}};B._idGenerator=Z,B.startSpan(C.name,{kind:E,links:G,startTime:C.start_time,attributes:C.attributes}).end(C.end_time),B._idGenerator=I})})}finally{B._idGenerator=I}}}}function BGQ(A){switch(A){case"client":return LI.SpanKind.CLIENT;case"internal":default:return LI.SpanKind.INTERNAL}}var IGQ=S(J9A,(A)=>{return new G9A(A)}),D9A=R((A)=>{return{name:J9A,setupOnce(){IGQ(A)},setup(Q){if(!F9A())return;Q.on("spanStart",(B)=>{let I=v(B);if(I.description?.startsWith("prisma:"))B.setAttribute(x,"auto.db.otel.prisma");if(I.description==="prisma:engine:db_query"&&I.data["db.query.text"])B.updateName(I.data["db.query.text"]);if(I.description==="prisma:engine:db_query"&&!I.data["db.system"])B.setAttribute("db.system","prisma")})}}});var g9A=P(S9A(),1);var y9A="Hapi",h9A=S(y9A,()=>new g9A.HapiInstrumentation),OGQ=()=>{return{name:y9A,setupOnce(){h9A()}}},f9A=R(OGQ);var Ww=P(JA(),1);var q0={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},E9={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"};var BJ=P(j(),1),Zw=P(s(),1);var TGQ="@sentry/instrumentation-hono",PGQ="0.0.1";class JM extends Zw.InstrumentationBase{constructor(A={}){super(TGQ,PGQ,A)}init(){return[new Zw.InstrumentationNodeModuleDefinition("hono",[">=4.0.0 <5"],(A)=>this._patch(A))]}_patch(A){let Q=this;class B extends A.Hono{constructor(...I){super(...I);Q._wrap(this,"get",Q._patchHandler()),Q._wrap(this,"post",Q._patchHandler()),Q._wrap(this,"put",Q._patchHandler()),Q._wrap(this,"delete",Q._patchHandler()),Q._wrap(this,"options",Q._patchHandler()),Q._wrap(this,"patch",Q._patchHandler()),Q._wrap(this,"all",Q._patchHandler()),Q._wrap(this,"on",Q._patchOnHandler()),Q._wrap(this,"use",Q._patchMiddlewareHandler())}}try{A.Hono=B}catch{return{...A,Hono:B}}return A}_patchHandler(){let A=this;return function(Q){return function(...I){if(typeof I[0]==="string"){let C=I[0];if(I.length===1)return Q.apply(this,[C]);let E=I.slice(1);return Q.apply(this,[C,...E.map((Y)=>A._wrapHandler(Y))])}return Q.apply(this,I.map((C)=>A._wrapHandler(C)))}}}_patchOnHandler(){let A=this;return function(Q){return function(...I){let C=I.slice(2);return Q.apply(this,[...I.slice(0,2),...C.map((E)=>A._wrapHandler(E))])}}}_patchMiddlewareHandler(){let A=this;return function(Q){return function(...I){if(typeof I[0]==="string"){let C=I[0];if(I.length===1)return Q.apply(this,[C]);let E=I.slice(1);return Q.apply(this,[C,...E.map((Y)=>A._wrapHandler(Y))])}return Q.apply(this,I.map((C)=>A._wrapHandler(C)))}}}_wrapHandler(A){let Q=this;return function(B,I){if(!Q.isEnabled())return A.apply(this,[B,I]);let C=B.req.path,E=Q.tracer.startSpan(C);return BJ.context.with(BJ.trace.setSpan(BJ.context.active(),E),()=>{return Q._safeExecute(()=>{let Y=A.apply(this,[B,I]);if(NQ(Y))return Y.then((J)=>{let F=Q._determineHandlerType(J);return E.setAttributes({[q0.HONO_TYPE]:F,[q0.HONO_NAME]:F===E9.REQUEST_HANDLER?C:A.name||"anonymous"}),Q.getConfig().responseHook?.(E),J});else{let J=Q._determineHandlerType(Y);return E.setAttributes({[q0.HONO_TYPE]:J,[q0.HONO_NAME]:J===E9.REQUEST_HANDLER?C:A.name||"anonymous"}),Q.getConfig().responseHook?.(E),Y}},()=>E.end(),(Y)=>{Q._handleError(E,Y),E.end()})})}}_safeExecute(A,Q,B){try{let I=A();if(NQ(I))I.then(()=>Q(),(C)=>B(C));else Q();return I}catch(I){throw B(I),I}}_determineHandlerType(A){return A===void 0?E9.MIDDLEWARE:E9.REQUEST_HANDLER}_handleError(A,Q){if(Q instanceof Error)A.setStatus({code:BJ.SpanStatusCode.ERROR,message:Q.message}),A.recordException(Q)}}var _9A="Hono";function kGQ(A){let Q=v(A).data,B=Q[q0.HONO_TYPE];if(Q[u]||!B)return;A.setAttributes({[x]:"auto.http.otel.hono",[u]:`${B}.hono`});let I=Q[q0.HONO_NAME];if(typeof I==="string")A.updateName(I);if(AA()===hB()){UQ&&$.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let C=Q[Ww.ATTR_HTTP_ROUTE],E=Q[Ww.ATTR_HTTP_REQUEST_METHOD];if(typeof C==="string"&&typeof E==="string")AA().setTransactionName(`${E} ${C}`)}var v9A=S(_9A,()=>new JM({responseHook:(A)=>{kGQ(A)}})),SGQ=()=>{return{name:_9A,setupOnce(){v9A()}}},x9A=R(SGQ);var JUA=P(YUA(),1),FUA=P(JA(),1);var GUA="Koa",DUA=S(GUA,JUA.KoaInstrumentation,(A={})=>{return{ignoreLayersType:A.ignoreLayersType,requestHook(Q,B){NA(Q,"auto.http.otel.koa");let I=v(Q).data,C=I["koa.type"];if(C)Q.setAttribute(u,`${C}.koa`);let E=I["koa.name"];if(typeof E==="string")Q.updateName(E||"< unknown >");if(AA()===hB()){UQ&&$.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let Y=I[FUA.ATTR_HTTP_ROUTE],J=B.context?.request?.method?.toUpperCase()||"GET";if(Y)AA().setTransactionName(`${J} ${Y}`)}}}),uGQ=(A={})=>{return{name:GUA,setupOnce(){DUA(A)}}},ZUA=R(uGQ);var gUA=P(SUA(),1);var yUA="Connect",hUA=S(yUA,()=>new gUA.ConnectInstrumentation),IDQ=()=>{return{name:yUA,setupOnce(){hUA()}}},fUA=R(IDQ);var eUA=P(tUA(),1);var zDQ=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),A1A="Tedious",Q1A=S(A1A,()=>new eUA.TediousInstrumentation({})),$DQ=()=>{let A;return{name:A1A,setupOnce(){let Q=Q1A();A=WW(Q)},setup(Q){A?.(()=>Q.on("spanStart",(B)=>{let{description:I,data:C}=v(B);if(!I||C["db.system"]!=="mssql")return;let E=I.split(" ")[0]||"";if(zDQ.has(E))B.setAttribute(x,"auto.db.otel.tedious")}))}}},B1A=R($DQ);var W1A=P(Z1A(),1);var U1A="GenericPool",X1A=S(U1A,()=>new W1A.GenericPoolInstrumentation({})),NDQ=()=>{let A;return{name:U1A,setupOnce(){let Q=X1A();A=WW(Q)},setup(Q){A?.(()=>Q.on("spanStart",(B)=>{let C=v(B).description;if(C==="generic-pool.aquire"||C==="generic-pool.acquire")B.setAttribute(x,"auto.db.otel.generic_pool")}))}}},w1A=R(NDQ);var b1A=P(x1A(),1);var m1A="Amqplib",IZQ={consumeEndHook:(A)=>{NA(A,"auto.amqplib.otel.consumer")},publishHook:(A)=>{NA(A,"auto.amqplib.otel.publisher")}},d1A=S(m1A,()=>new b1A.AmqplibInstrumentation(IZQ)),CZQ=()=>{return{name:m1A,setupOnce(){d1A()}}},c1A=R(CZQ);var D9="VercelAI";var Mw=P(s(),1);var EZQ=[">=3.0.0 <7"],u1A=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];function YZQ(A){if(typeof A!=="object"||A===null)return!1;let Q=A;return"type"in Q&&"error"in Q&&"toolName"in Q&&"toolCallId"in Q&&Q.type==="tool-error"&&Q.error instanceof Error}function JZQ(A){if(typeof A!=="object"||A===null||!("content"in A))return;let Q=A;if(!Array.isArray(Q.content))return;FZQ(Q.content),GZQ(Q.content)}function FZQ(A){for(let Q of A){if(!YZQ(Q))continue;let B=r6(Q.toolCallId);if(B)xQ((I)=>{I.setContext("trace",{trace_id:B.traceId,span_id:B.spanId}),I.setTag("vercel.ai.tool.name",Q.toolName),I.setTag("vercel.ai.tool.callId",Q.toolCallId),I.setLevel("error"),n(Q.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})});else xQ((I)=>{I.setTag("vercel.ai.tool.name",Q.toolName),I.setTag("vercel.ai.tool.callId",Q.toolCallId),I.setLevel("error"),n(Q.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})})}}function GZQ(A){for(let Q of A)if(typeof Q==="object"&&Q!==null&&"toolCallId"in Q&&typeof Q.toolCallId==="string")t6(Q.toolCallId)}function DZQ(A,Q,B,I){let C=A?.recordInputs!==void 0?A.recordInputs:Q.recordInputs!==void 0?Q.recordInputs:B===!0?!0:I,E=A?.recordOutputs!==void 0?A.recordOutputs:Q.recordOutputs!==void 0?Q.recordOutputs:B===!0?!0:I;return{recordInputs:C,recordOutputs:E}}class Z9 extends Mw.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(A={}){super("@sentry/instrumentation-vercel-ai",EA,A);Z9.prototype.__init.call(this),Z9.prototype.__init2.call(this)}init(){return new Mw.InstrumentationNodeModuleDefinition("ai",EZQ,this._patch.bind(this))}callWhenPatched(A){if(this._isPatched)A();else this._callbacks.push(A)}_patch(A){this._isPatched=!0,this._callbacks.forEach((B)=>B()),this._callbacks=[];let Q=(B)=>{return new Proxy(B,{apply:(I,C,E)=>{let Y=E[0].experimental_telemetry||{},J=Y.isEnabled,F=g(),G=F?.getIntegrationByName(D9),D=G?.options,Z=G?Boolean(F?.getOptions().sendDefaultPii):!1,{recordInputs:W,recordOutputs:U}=DZQ(D,Y,J,Z);return E[0].experimental_telemetry={...Y,isEnabled:J!==void 0?J:!0,recordInputs:W,recordOutputs:U},xI(()=>Reflect.apply(I,C,E),(w)=>{if(w&&typeof w==="object")EQ(w,"_sentry_active_span",vB())},()=>{},(w)=>{JZQ(w)})}})};if(Object.prototype.toString.call(A)==="[object Module]"){for(let B of u1A)if(A[B]!=null)A[B]=Q(A[B]);return A}else{let B=u1A.reduce((I,C)=>{if(A[C]!=null)I[C]=Q(A[C]);return I},{});return{...A,...B}}}}var l1A=S(D9,()=>new Z9({}));function ZZQ(A){return!!A.getIntegrationByName("Modules")?.getModules?.()?.ai}var WZQ=(A={})=>{let Q;return{name:D9,options:A,setupOnce(){Q=l1A()},afterAllSetup(B){if(A.force??ZZQ(B))VX(B);else Q?.callWhenPatched(()=>VX(B))}}},p1A=R(WZQ);var Lw=P(s(),1);var UZQ=[">=4.0.0 <7"];class qM extends Lw.InstrumentationBase{constructor(A={}){super("@sentry/instrumentation-openai",EA,A)}init(){return new Lw.InstrumentationNodeModuleDefinition("openai",UZQ,this._patch.bind(this))}_patch(A){let Q=A;return Q=this._patchClient(Q,"OpenAI"),Q=this._patchClient(Q,"AzureOpenAI"),Q}_patchClient(A,Q){let B=A[Q];if(!B)return A;let I=this.getConfig(),C=function(...E){if(TY(J0))return Reflect.construct(B,E);let Y=Reflect.construct(B,E);return HX(Y,I)};Object.setPrototypeOf(C,B),Object.setPrototypeOf(C.prototype,B.prototype);for(let E of Object.getOwnPropertyNames(B))if(!["length","name","prototype"].includes(E)){let Y=Object.getOwnPropertyDescriptor(B,E);if(Y)Object.defineProperty(C,E,Y)}try{A[Q]=C}catch{Object.defineProperty(A,Q,{value:C,writable:!0,configurable:!0,enumerable:!0})}if(A.default===B)try{A.default=C}catch{Object.defineProperty(A,"default",{value:C,writable:!0,configurable:!0,enumerable:!0})}return A}}var i1A=S(J0,(A)=>new qM(A)),XZQ=(A={})=>{return{name:J0,setupOnce(){i1A(A)}}},n1A=R(XZQ);var Nw=P(s(),1);var wZQ=[">=0.19.2 <1.0.0"];class OM extends Nw.InstrumentationBase{constructor(A={}){super("@sentry/instrumentation-anthropic-ai",EA,A)}init(){return new Nw.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",wZQ,this._patch.bind(this))}_patch(A){let Q=A.Anthropic,B=this.getConfig(),I=function(...C){if(TY(F0))return Reflect.construct(Q,C);let E=Reflect.construct(Q,C);return MX(E,B)};Object.setPrototypeOf(I,Q),Object.setPrototypeOf(I.prototype,Q.prototype);for(let C of Object.getOwnPropertyNames(Q))if(!["length","name","prototype"].includes(C)){let E=Object.getOwnPropertyDescriptor(Q,C);if(E)Object.defineProperty(I,C,E)}try{A.Anthropic=I}catch{Object.defineProperty(A,"Anthropic",{value:I,writable:!0,configurable:!0,enumerable:!0})}if(A.default===Q)try{A.default=I}catch{Object.defineProperty(A,"default",{value:I,writable:!0,configurable:!0,enumerable:!0})}return A}}var o1A=S(F0,(A)=>new OM(A)),KZQ=(A={})=>{return{name:F0,options:A,setupOnce(){o1A(A)}}},a1A=R(KZQ);var OG=P(s(),1);var s1A=[">=0.10.0 <2"];class TM extends OG.InstrumentationBase{constructor(A={}){super("@sentry/instrumentation-google-genai",EA,A)}init(){return new OG.InstrumentationNodeModuleDefinition("@google/genai",s1A,(Q)=>this._patch(Q),(Q)=>Q,[new OG.InstrumentationNodeModuleFile("@google/genai/dist/node/index.cjs",s1A,(Q)=>this._patch(Q),(Q)=>Q)])}_patch(A){let Q=A.GoogleGenAI,B=this.getConfig();if(typeof Q!=="function")return A;let I=function(...C){if(TY(G0))return Reflect.construct(Q,C);let E=Reflect.construct(Q,C);return LX(E,B)};Object.setPrototypeOf(I,Q),Object.setPrototypeOf(I.prototype,Q.prototype);for(let C of Object.getOwnPropertyNames(Q))if(!["length","name","prototype"].includes(C)){let E=Object.getOwnPropertyDescriptor(Q,C);if(E)Object.defineProperty(I,C,E)}return oZ(A,"GoogleGenAI",I),A}}var r1A=S(G0,(A)=>new TM(A)),VZQ=(A={})=>{return{name:G0,setupOnce(){r1A(A)}}},t1A=R(VZQ);var k0=P(s(),1);var jw=[">=0.1.0 <2.0.0"];function zZQ(A,Q){if(!A)return[Q];if(Array.isArray(A)){if(A.includes(Q))return A;return[...A,Q]}if(typeof A==="object")return[A,Q];return A}function $ZQ(A,Q,B){return new Proxy(A,{apply(I,C,E){let J=E[1];if(!J||typeof J!=="object"||Array.isArray(J))J={},E[1]=J;let F=J.callbacks,G=zZQ(F,Q);return J.callbacks=G,Reflect.apply(I,C,E)}})}class PM extends k0.InstrumentationBase{constructor(A={}){super("@sentry/instrumentation-langchain",EA,A)}init(){let A=[],Q=["@langchain/anthropic","@langchain/openai","@langchain/google-genai","@langchain/mistralai","@langchain/google-vertexai","@langchain/groq"];for(let B of Q)A.push(new k0.InstrumentationNodeModuleDefinition(B,jw,this._patch.bind(this),(I)=>I,[new k0.InstrumentationNodeModuleFile(`${B}/dist/index.cjs`,jw,this._patch.bind(this),(I)=>I)]));return A.push(new k0.InstrumentationNodeModuleDefinition("langchain",jw,this._patch.bind(this),(B)=>B,[new k0.InstrumentationNodeModuleFile("langchain/dist/chat_models/universal.cjs",jw,this._patch.bind(this),(B)=>B)])),A}_patch(A){H6([J0,F0,G0]);let Q=jX(this.getConfig());return this._patchRunnableMethods(A,Q),A}_patchRunnableMethods(A,Q){let B=["ChatAnthropic","ChatOpenAI","ChatGoogleGenerativeAI","ChatMistralAI","ChatVertexAI","ChatGroq","ConfigurableModel"],I=A.universal_exports??A,C=Object.values(I).find((J)=>{return typeof J==="function"&&B.includes(J.name)});if(!C)return;let E=C.prototype;if(E.__sentry_patched__)return;E.__sentry_patched__=!0;let Y=["invoke","stream","batch"];for(let J of Y){let F=E[J];if(typeof F==="function")E[J]=$ZQ(F,Q)}}}var e1A=S(NX,(A)=>new PM(A)),HZQ=(A={})=>{return{name:NX,setupOnce(){e1A(A)}}},AXA=R(HZQ);var TG=P(s(),1);var QXA=[">=0.0.0 <2.0.0"];class kM extends TG.InstrumentationBase{constructor(A={}){super("@sentry/instrumentation-langgraph",EA,A)}init(){return new TG.InstrumentationNodeModuleDefinition("@langchain/langgraph",QXA,this._patch.bind(this),(Q)=>Q,[new TG.InstrumentationNodeModuleFile("@langchain/langgraph/dist/index.cjs",QXA,this._patch.bind(this),(Q)=>Q)])}_patch(A){if(A.StateGraph&&typeof A.StateGraph==="function")qX(A.StateGraph.prototype,this.getConfig());return A}}var BXA=S(RX,(A)=>new kM(A)),MZQ=(A={})=>{return{name:RX,setupOnce(){BXA(A)}}},IXA=R(MZQ);var ZXA=P(s(),1);var UE=P(j(),1),XE=P(s(),1),NI=P(JA(),1);import*as EXA from"node:net";function YXA(A,Q,B,I,C){let Y=()=>{},J=C.firestoreSpanCreationHook;if(typeof J==="function")Y=(D)=>{XE.safeExecuteInTheMiddle(()=>J(D),(Z)=>{if(!Z)return;UE.diag.error(Z?.message)},!0)};let F=new XE.InstrumentationNodeModuleDefinition("@firebase/firestore",Q,(D)=>CXA(D,B,I,A,Y)),G=["@firebase/firestore/dist/lite/index.node.cjs.js","@firebase/firestore/dist/lite/index.node.mjs.js","@firebase/firestore/dist/lite/index.rn.esm2017.js","@firebase/firestore/dist/lite/index.cjs.js"];for(let D of G)F.files.push(new XE.InstrumentationNodeModuleFile(D,Q,(Z)=>CXA(Z,B,I,A,Y),(Z)=>JXA(Z,I)));return F}function CXA(A,Q,B,I,C){return JXA(A,B),Q(A,"addDoc",LZQ(I,C)),Q(A,"getDocs",jZQ(I,C)),Q(A,"setDoc",RZQ(I,C)),Q(A,"deleteDoc",NZQ(I,C)),A}function JXA(A,Q){for(let B of["addDoc","getDocs","setDoc","deleteDoc"])if(XE.isWrapped(A[B]))Q(A,B);return A}function LZQ(A,Q){return function(I){return function(C,E){let Y=qw(A,"addDoc",C);return Q(Y),Rw(Y,()=>{return I(C,E)})}}}function NZQ(A,Q){return function(I){return function(C){let E=qw(A,"deleteDoc",C.parent||C);return Q(E),Rw(E,()=>{return I(C)})}}}function jZQ(A,Q){return function(I){return function(C){let E=qw(A,"getDocs",C);return Q(E),Rw(E,()=>{return I(C)})}}}function RZQ(A,Q){return function(I){return function(C,E,Y){let J=qw(A,"setDoc",C.parent||C);return Q(J),Rw(J,()=>{return typeof Y<"u"?I(C,E,Y):I(C,E)})}}}function Rw(A,Q){return UE.context.with(UE.trace.setSpan(UE.context.active(),A),()=>{return XE.safeExecuteInTheMiddle(()=>{return Q()},(B)=>{if(B)A.recordException(B);A.end()},!0)})}function qw(A,Q,B){let I=A.startSpan(`${Q} ${B.path}`,{kind:UE.SpanKind.CLIENT});return OZQ(I,B),I.setAttribute(NI.ATTR_DB_OPERATION_NAME,Q),I}function qZQ(A){let Q,B;if(typeof A.host==="string")if(A.host.startsWith("[")){if(A.host.endsWith("]"))Q=A.host.replace(/^\[|\]$/g,"");else if(A.host.includes("]:")){let I=A.host.lastIndexOf(":");if(I!==-1)Q=A.host.slice(1,I).replace(/^\[|\]$/g,""),B=A.host.slice(I+1)}}else if(EXA.isIPv6(A.host))Q=A.host;else{let I=A.host.lastIndexOf(":");if(I!==-1)Q=A.host.slice(0,I),B=A.host.slice(I+1);else Q=A.host}return{address:Q,port:B?parseInt(B,10):void 0}}function OZQ(A,Q){let B=Q.firestore.app,I=B.options,E=(Q.firestore.toJSON()||{}).settings||{},Y={[NI.ATTR_DB_COLLECTION_NAME]:Q.path,[NI.ATTR_DB_NAMESPACE]:B.name,[NI.ATTR_DB_SYSTEM_NAME]:"firebase.firestore","firebase.firestore.type":Q.type,"firebase.firestore.options.projectId":I.projectId,"firebase.firestore.options.appId":I.appId,"firebase.firestore.options.messagingSenderId":I.messagingSenderId,"firebase.firestore.options.storageBucket":I.storageBucket},{address:J,port:F}=qZQ(E);if(J)Y[NI.ATTR_SERVER_ADDRESS]=J;if(F)Y[NI.ATTR_SERVER_PORT]=F;A.setAttributes(Y)}var qC=P(j(),1),wE=P(s(),1);function FXA(A,Q,B,I,C){let E=()=>{},Y=()=>{},J=C.functions?.errorHook,F=C.functions?.requestHook,G=C.functions?.responseHook;if(typeof G==="function")Y=(W,U)=>{wE.safeExecuteInTheMiddle(()=>G(W,U),(w)=>{if(!w)return;qC.diag.error(w?.message)},!0)};if(typeof F==="function")E=(W)=>{wE.safeExecuteInTheMiddle(()=>F(W),(U)=>{if(!U)return;qC.diag.error(U?.message)},!0)};let D=new wE.InstrumentationNodeModuleDefinition("firebase-functions",Q);return[{name:"firebase-functions/lib/v2/providers/https.js",triggerType:"function"},{name:"firebase-functions/lib/v2/providers/firestore.js",triggerType:"firestore"},{name:"firebase-functions/lib/v2/providers/scheduler.js",triggerType:"scheduler"},{name:"firebase-functions/lib/v2/storage.js",triggerType:"storage"}].forEach(({name:W,triggerType:U})=>{D.files.push(new wE.InstrumentationNodeModuleFile(W,Q,(w)=>TZQ(w,B,I,A,{requestHook:E,responseHook:Y,errorHook:J},U),(w)=>GXA(w,I)))}),D}function EB(A,Q,B){return function(C){return function(...E){let Y=typeof E[0]==="function"?E[0]:E[1],J=typeof E[0]==="function"?void 0:E[0];if(!Y)return C.call(this,...E);let F=async function(...G){let D=process.env.FUNCTION_TARGET||process.env.K_SERVICE||"unknown",Z=A.startSpan(`firebase.function.${B}`,{kind:qC.SpanKind.SERVER}),W={"faas.name":D,"faas.trigger":B,"faas.provider":"firebase"};if(process.env.GCLOUD_PROJECT)W["cloud.project_id"]=process.env.GCLOUD_PROJECT;if(process.env.EVENTARC_CLOUD_EVENT_SOURCE)W["cloud.event_source"]=process.env.EVENTARC_CLOUD_EVENT_SOURCE;return Z.setAttributes(W),Q?.requestHook?.(Z),qC.context.with(qC.trace.setSpan(qC.context.active(),Z),async()=>{let U,w;try{w=await Y.apply(this,G)}catch(K){U=K}if(Q?.responseHook?.(Z,U),U)Z.recordException(U);if(Z.end(),U)throw await Q?.errorHook?.(Z,U),U;return w})};if(J)return C.call(this,J,F);else return C.call(this,F)}}}function TZQ(A,Q,B,I,C,E){switch(GXA(A,B),E){case"function":Q(A,"onRequest",EB(I,C,"http.request")),Q(A,"onCall",EB(I,C,"http.call"));break;case"firestore":Q(A,"onDocumentCreated",EB(I,C,"firestore.document.created")),Q(A,"onDocumentUpdated",EB(I,C,"firestore.document.updated")),Q(A,"onDocumentDeleted",EB(I,C,"firestore.document.deleted")),Q(A,"onDocumentWritten",EB(I,C,"firestore.document.written")),Q(A,"onDocumentCreatedWithAuthContext",EB(I,C,"firestore.document.created")),Q(A,"onDocumentUpdatedWithAuthContext",EB(I,C,"firestore.document.updated")),Q(A,"onDocumentDeletedWithAuthContext",EB(I,C,"firestore.document.deleted")),Q(A,"onDocumentWrittenWithAuthContext",EB(I,C,"firestore.document.written"));break;case"scheduler":Q(A,"onSchedule",EB(I,C,"scheduler.scheduled"));break;case"storage":Q(A,"onObjectFinalized",EB(I,C,"storage.object.finalized")),Q(A,"onObjectArchived",EB(I,C,"storage.object.archived")),Q(A,"onObjectDeleted",EB(I,C,"storage.object.deleted")),Q(A,"onObjectMetadataUpdated",EB(I,C,"storage.object.metadataUpdated"));break}return A}function GXA(A,Q){let B=["onSchedule","onRequest","onCall","onObjectFinalized","onObjectArchived","onObjectDeleted","onObjectMetadataUpdated","onDocumentCreated","onDocumentUpdated","onDocumentDeleted","onDocumentWritten","onDocumentCreatedWithAuthContext","onDocumentUpdatedWithAuthContext","onDocumentDeletedWithAuthContext","onDocumentWrittenWithAuthContext"];for(let I of B)if(wE.isWrapped(A[I]))Q(A,I);return A}var DXA={},PZQ=[">=3.0.0 <5"],kZQ=[">=6.0.0 <7"];class SM extends ZXA.InstrumentationBase{constructor(A=DXA){super("@sentry/instrumentation-firebase",EA,A)}setConfig(A={}){super.setConfig({...DXA,...A})}init(){let A=[];return A.push(YXA(this.tracer,PZQ,this._wrap,this._unwrap,this.getConfig())),A.push(FXA(this.tracer,kZQ,this._wrap,this._unwrap,this.getConfig())),A}}var WXA="Firebase",SZQ={firestoreSpanCreationHook:(A)=>{NA(A,"auto.firebase.otel.firestore"),A.setAttribute(u,"db.query")},functions:{requestHook:(A)=>{NA(A,"auto.firebase.otel.functions"),A.setAttribute(u,"http.request")},errorHook:async(A,Q)=>{if(Q)n(Q,{mechanism:{type:"auto.firebase.otel.functions",handled:!1}}),await OY(2000)}}},UXA=S(WXA,()=>new SM(SZQ)),gZQ=()=>{return{name:WXA,setupOnce(){UXA()}}},XXA=R(gZQ);function wXA(){return[gCA(),$YA(),FJA(),x9A(),KFA(),bFA(),YGA(),TGA(),kDA(),GZA(),D9A(),f9A(),ZUA(),fUA(),B1A(),w1A(),fJA(),c1A(),sJA(),AXA(),IXA(),p1A(),n1A(),a1A(),t1A(),UZA(),XXA()]}var PG=P(j(),1),Ow=P(x7(),1),KXA=P(a7(),1),kG=P(JA(),1);var gM=1e6;function VXA(A,Q={}){if(A.getOptions().debug)Wz();let[B,I]=yZQ(A,Q);A.traceProvider=B,A.asyncLocalStorageLookup=I}function yZQ(A,Q={}){let B=new KXA.BasicTracerProvider({sampler:new Zz(A),resource:Ow.defaultResource().merge(Ow.resourceFromAttributes({[kG.ATTR_SERVICE_NAME]:"node",[kG.SEMRESATTRS_SERVICE_NAMESPACE]:"sentry",[kG.ATTR_SERVICE_VERSION]:EA})),forceFlushTimeoutMillis:500,spanProcessors:[new Dz({timeout:hZQ(A.getOptions().maxSpanWaitDuration)}),...Q.spanProcessors||[]]});PG.trace.setGlobalTracerProvider(B),PG.propagation.setGlobalPropagator(new Gz);let I=new J8;return PG.context.setGlobalContextManager(I),[B,I.getAsyncLocalStorageLookup()]}function hZQ(A){if(A==null)return;if(A>gM)return UQ&&$.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${gM}`),gM;else if(A<=0||Number.isNaN(A)){UQ&&$.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return A}function zXA(){return X8().filter((Q)=>Q.name!=="Http"&&Q.name!=="NodeFetch").concat(oIA(),JCA())}function $XA(A){return[...zXA(),...AQ(A)?wXA():[]]}function yM(A={}){return fZQ(A,$XA)}function fZQ(A={},Q){kY(A,"node");let B=vz({...A,defaultIntegrations:A.defaultIntegrations??Q(A)});if(B&&!A.skipOpenTelemetrySetup)VXA(B,{spanProcessors:A.openTelemetrySpanProcessors}),w8();return B}var vZQ="https://b5a33745f4bf36a0f1e66dbcfceaa898@o4510814125228032.ingest.us.sentry.io/4511124523974656",HXA="1.0.0",SG=!1,xZQ=[/token/i,/secret/i,/password/i,/key/i,/credential/i,/auth/i,/^GITHUB_/i,/^AWS_/i,/^AZURE_/i,/^GCP_/i,/^NPM_/i,/^NODE_AUTH/i];function MXA(A){let Q=A;for(let[B,I]of Object.entries(process.env)){if(!I||I.length<8)continue;if(xZQ.some((C)=>C.test(B)))Q=Q.replaceAll(I,"[REDACTED]")}return Q}function LXA(A){if(delete A.server_name,delete A.extra,delete A.user,delete A.request,A.contexts={},A.breadcrumbs=[],A.exception?.values){for(let Q of A.exception.values)if(Q.value)Q.value=MXA(Q.value)}if(A.message)A.message=MXA(A.message);return A}function NXA(A,Q){if(SG=A,!A)return;yM({dsn:vZQ,defaultIntegrations:!1,environment:"production",release:`format@${HXA}`,tracesSampleRate:1,beforeSend(B){return LXA(B)},beforeSendTransaction(B){return LXA(B)}}),OZ({formatter:Q.formatter,mode:Q.mode,action_version:HXA})}function jXA(A,Q){if(!SG)return;xQ((B)=>{if(Q)for(let[I,C]of Object.entries(Q))B.setTag(I,C);n(A)})}async function hM(A,Q,B){if(!SG)return B();return KB({name:A,op:Q,attributes:{"sentry.origin":"manual"}},async()=>B())}function RXA(A,Q,B,I){if(!SG)return;vF.gauge(A,Q,{unit:B,tags:I})}function fM(A,Q){if(!SG)return;RZ(A,{level:"info",tags:Q})}async function qXA(){if(!SG)return;await OY(2000)}function OXA(A,Q,B=[]){let I=[];function C(E){for(let Y of bZQ(E,{withFileTypes:!0})){let J=_M.join(E,Y.name);if(Y.isDirectory()){if(!B.some((F)=>TXA(J,F)))C(J)}else if(Y.name.endsWith(Q))I.push(J)}}return C(A),I}function dZQ(A,Q){if(A==="javaformat")return[".java"];return Q.include_kts?[".kt",".kts"]:[".kt"]}function cZQ(A,Q){let B=dZQ(Q,A);if(A.files.length>0)return A.files.flatMap((I)=>{let C=_M.isAbsolute(I)?I:_M.join(A.working_directory,I);try{if(mZQ(C).isDirectory())return B.flatMap((E)=>OXA(C,E,A.exclude))}catch{}return[C]});return B.flatMap((I)=>OXA(A.working_directory,I,A.exclude))}function TXA(A,Q){let B=A.replace(/\\/g,"/"),I=Q.replace(/\\/g,"/");if(!I.includes("*")&&!I.includes("?"))return B===I||B.startsWith(I+"/")||B.includes("/"+I+"/")||B.endsWith("/"+I);let C="^"+I.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g," ").replace(/\*/g,"[^/]*").replace(/\?/g,"[^/]").replace(/ /g,".*")+"$";return new RegExp(C).test(B)}function uZQ(A,Q){if(Q.length===0)return A;return A.filter((B)=>!Q.some((I)=>TXA(B,I)))}async function lZQ(A,Q,B,I,C){try{let E=C<1000?`${Math.round(C)}ms`:`${(C/1000).toFixed(1)}s`,Y=A.map((J)=>[{data:J,header:!1},{data:Q[J]===0?"passed":"failed",header:!1}]);await QK.addHeading(I?"Format Check Passed":"Format Check Failed",2).addTable([[{data:"Formatter",header:!0},{data:"Result",header:!0}],...Y,[{data:"Files checked",header:!0},{data:String(B),header:!1}],[{data:"Time",header:!0},{data:E,header:!1}]]).write()}catch{}}async function PXA(A){let Q=Date.now();try{let B=await UK("Resolving options",async()=>{let I=A?Q1(A):CS();return A1(`formatter=${I.formatter} mode=${I.mode} working_directory=${I.working_directory}`),I});NXA(B.telemetry,B),fM("format.start",{formatter:B.formatter,mode:B.mode}),await hM("format","format",async()=>{let I=B.formatter==="all"?["javaformat","ktfmt"]:[B.formatter],C={},E=0;for(let F of I){let G=cZQ(B,F),D=uZQ(G,B.exclude);if(E+=D.length,D.length===0){A1(`No ${F==="javaformat"?".java":".kt"} files found, skipping ${F}`),C[F]=0;continue}let Z=F==="javaformat"?B.gjf_args:B.ktfmt_args,W=await UK(`Running ${F}`,async()=>hM(`format.${F}`,"format",()=>JS(F,B.mode,D,Z,B.working_directory)));if(C[F]=W,W!==0)eU(`${F} check failed (exit code ${W})`,{title:"Format Check Failed"});else A1(`${F} check passed`)}let Y=Object.values(C).every((F)=>F===0),J=Date.now()-Q;if(ZK("result",Y?"success":"failure"),ZK("files-checked",String(E)),RXA("format.duration_ms",J,"millisecond",{formatter:B.formatter,mode:B.mode}),fM("format.exit",{status:Y?"success":"failure",formatter:B.formatter,mode:B.mode}),await lZQ(I,C,E,Y,J),!Y){let G=`Format check failed. Run locally to fix: ${Object.entries(C).filter(([,D])=>D!==0).map(([D])=>`elide ${D}`).join(", ")}`;if(B.fail_on_error)WK(G);else AS(G,{title:"Format Check Failed"})}})}catch(B){if(B instanceof Error)jXA(B),eU(B.message,{title:"Action Failed"}),WK(B.message)}finally{await qXA()}}PXA(); +`;let J=NAA(I);I.write(`${Y}\r +`);let{connect:F,buffered:G}=await J;if(A.emit("proxyConnect",F),this.emit("proxyConnect",F,A),F.statusCode===200){if(A.once("socket",xvA),Q.secureEndpoint){TU("Upgrading socket connection to TLS");let Z=Q.servername||Q.host;return Vz.connect({...jAA(Q,"host","path","port"),socket:I,servername:HE.isIP(Z)?void 0:Z})}return I}I.destroy();let D=new HE.Socket({writable:!1});return D.readable=!0,A.once("socket",(Z)=>{TU("Replaying proxy buffer for failed request"),Z.push(G),Z.push(null)}),D}}JX.protocols=["http","https"];function xvA(A){A.resume()}function jAA(A,...Q){let B={},I;for(I in A)if(!Q.includes(I))B[I]=A[I];return B}var cvA=32768;function uvA(A){return new mvA({read(){this.push(A),this.push(null)}})}function Kz(A){let Q;try{Q=new URL(A.url)}catch(F){return XQ(()=>{console.warn("[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.")}),iF(A,()=>Promise.resolve({}))}let B=Q.protocol==="https:",I=lvA(Q,A.proxy||(B?process.env.https_proxy:void 0)||process.env.http_proxy),C=B?bvA:vvA,E=A.keepAlive===void 0?!1:A.keepAlive,Y=I?new JX(I):new C.Agent({keepAlive:E,maxSockets:30,timeout:2000}),J=pvA(A,A.httpModule??C,Y);return iF(A,J)}function lvA(A,Q){let{no_proxy:B}=process.env;if(B?.split(",").some((C)=>A.host.endsWith(C)||A.hostname.endsWith(C)))return;else return Q}function pvA(A,Q,B){let{hostname:I,pathname:C,port:E,protocol:Y,search:J}=new URL(A.url);return function(G){return new Promise((D,Z)=>{RY(()=>{let U=uvA(G.body),W={...A.headers};if(G.body.length>cvA)W["content-encoding"]="gzip",U=U.pipe(dvA());let w=I.startsWith("["),K=Q.request({method:"POST",agent:B,headers:W,hostname:w?I.slice(1,-1):I,path:`${C}${J}`,port:E,protocol:Y,ca:A.caCerts},(X)=>{X.on("data",()=>{}),X.on("end",()=>{}),X.setEncoding("utf8");let V=X.headers["retry-after"]??null,M=X.headers["x-sentry-rate-limits"]??null;D({statusCode:X.statusCode,headers:{"retry-after":V,"x-sentry-rate-limits":Array.isArray(M)?M[0]||null:M}})});K.on("error",Z),U.pipe(K)})})}}function RAA(A){if(A===!1)return!1;if(typeof A==="string")return A;let Q=gY(process.env.SENTRY_SPOTLIGHT,{strict:!0}),B=Q===null&&process.env.SENTRY_SPOTLIGHT?process.env.SENTRY_SPOTLIGHT:void 0;return A===!0?B??!0:Q??B}import{posix as ivA,sep as ovA}from"node:path";function qAA(A){return A.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function zz(A=process.argv[1]?jV(process.argv[1]):process.cwd(),Q=ovA==="\\"){let B=Q?qAA(A):A;return(I)=>{if(!I)return;let C=Q?qAA(I):I,{dir:E,base:Y,ext:J}=ivA.parse(C);if(J===".js"||J===".mjs"||J===".cjs")Y=Y.slice(0,J.length*-1);let F=decodeURIComponent(Y);if(!E)E=".";let G=E.lastIndexOf("/node_modules");if(G>-1)return`${E.slice(G+14).replace(/\//g,".")}:${F}`;if(E.startsWith(B)){let D=E.slice(B.length+1).replace(/\//g,".");return D?`${D}:${F}`:F}return F}}function $z(A){if(process.env.SENTRY_RELEASE)return process.env.SENTRY_RELEASE;if(FA.SENTRY_RELEASE?.id)return FA.SENTRY_RELEASE.id;let Q=process.env.GITHUB_SHA||process.env.CI_MERGE_REQUEST_SOURCE_BRANCH_SHA||process.env.CI_BUILD_REF||process.env.CI_COMMIT_SHA||process.env.BITBUCKET_COMMIT,B=process.env.APPVEYOR_PULL_REQUEST_HEAD_COMMIT||process.env.APPVEYOR_REPO_COMMIT||process.env.CODEBUILD_RESOLVED_SOURCE_VERSION||process.env.AWS_COMMIT_ID||process.env.BUILD_SOURCEVERSION||process.env.GIT_CLONE_COMMIT_HASH||process.env.BUDDY_EXECUTION_REVISION||process.env.BUILDKITE_COMMIT||process.env.CIRCLE_SHA1||process.env.CIRRUS_CHANGE_IN_REPO||process.env.CF_REVISION||process.env.CM_COMMIT||process.env.CF_PAGES_COMMIT_SHA||process.env.DRONE_COMMIT_SHA||process.env.FC_GIT_COMMIT_SHA||process.env.HEROKU_TEST_RUN_COMMIT_VERSION||process.env.HEROKU_BUILD_COMMIT||process.env.HEROKU_SLUG_COMMIT||process.env.RAILWAY_GIT_COMMIT_SHA||process.env.RENDER_GIT_COMMIT||process.env.SEMAPHORE_GIT_SHA||process.env.TRAVIS_PULL_REQUEST_SHA||process.env.VERCEL_GIT_COMMIT_SHA||process.env.VERCEL_GITHUB_COMMIT_SHA||process.env.VERCEL_GITLAB_COMMIT_SHA||process.env.VERCEL_BITBUCKET_COMMIT_SHA||process.env.ZEIT_GITHUB_COMMIT_SHA||process.env.ZEIT_GITLAB_COMMIT_SHA||process.env.ZEIT_BITBUCKET_COMMIT_SHA,I=process.env.CI_COMMIT_ID||process.env.SOURCE_COMMIT||process.env.SOURCE_VERSION||process.env.GIT_COMMIT||process.env.COMMIT_REF||process.env.BUILD_VCS_NUMBER||process.env.CI_COMMIT_SHA;return Q||B||I||A}var Hz=ew(IK(zz()));var OAA=m(AA(),1),kAA=m(jA(),1);import*as PAA from"node:os";import{threadId as nvA,isMainThread as svA}from"worker_threads";var avA=60000;class FX extends b9{constructor(A){let Q=A.includeServerName===!1?void 0:A.serverName||global.process.env.SENTRY_NAME||PAA.hostname(),B={...A,platform:"node",runtime:A.runtime||{name:"node",version:global.process.version},serverName:Q};if(A.openTelemetryInstrumentations)kAA.registerInstrumentations({instrumentations:A.openTelemetryInstrumentations});_Y(B,"node"),H.log(`Initializing Sentry: process: ${process.pid}, thread: ${svA?"main":`worker-${nvA}`}.`);super(B);if(this.getOptions().enableLogs){if(this._logOnExitFlushListener=()=>{sF(this)},Q)this.on("beforeCaptureLog",(I)=>{I.attributes={...I.attributes,"server.address":Q}});process.on("beforeExit",this._logOnExitFlushListener)}}get tracer(){if(this._tracer)return this._tracer;let A="@sentry/node",Q=h,B=OAA.trace.getTracer(A,Q);return this._tracer=B,B}async flush(A){if(await this.traceProvider?.forceFlush(),this.getOptions().sendClientReports)this._flushOutcomes();return super.flush(A)}async close(A){if(this._clientReportInterval)clearInterval(this._clientReportInterval);if(this._clientReportOnExitFlushListener)process.off("beforeExit",this._clientReportOnExitFlushListener);if(this._logOnExitFlushListener)process.off("beforeExit",this._logOnExitFlushListener);let Q=await super.close(A);if(this.traceProvider)await this.traceProvider.shutdown();return Q}startClientReportTracking(){let A=this.getOptions();if(A.sendClientReports)this._clientReportOnExitFlushListener=()=>{this._flushOutcomes()},this._clientReportInterval=setInterval(()=>{EQ&&H.log("Flushing client reports based on interval."),this._flushOutcomes()},A.clientReportFlushInterval??avA).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener)}_setupIntegrations(){DV(),super._setupIntegrations()}_getTraceInfoFromScope(A){if(!A)return[void 0,void 0];return l7(this,A)}}var _AA=m(e6(),1);import*as yAA from"module";var gAA;function TAA(){if(VE>=21||VE===20&&VU>=6||VE===18&&VU>=19)return!0;if(!gAA)gAA=!0,XQ(()=>{console.warn(`[Sentry] You are using Node.js v${process.versions.node} in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.`)});return!1}function Mz(){if(!TAA())return;if(!FA._sentryEsmLoaderHookRegistered){FA._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:A}=_AA.createAddHookMessageChannel();yAA.register("import-in-the-middle/hook.mjs",import.meta.url,{data:{addHookMessagePort:A,include:[]},transferList:[A]})}catch(A){H.warn("Failed to register 'import-in-the-middle' hook",A)}}}function GX(){return[_Z(),TZ(),yZ(),SZ(),Wz(),qV(),Zz(),ZAA(),HAA(),Yz(),Jz(),Qz(),Iz(),e7(),t7(),Fz(),Ez()]}function Lz(A={}){return rvA(A,GX)}function rvA(A={},Q){let B=tvA(A,Q);if(B.debug===!0)if(EQ)H.enable();else XQ(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")});if(B.registerEsmLoaderHooks!==!1)Mz();if(QAA(B),YA().update(B.initialScope),B.spotlight&&!B.integrations.some(({name:E})=>E===Gz))B.integrations.push(Dz({sidecarUrl:typeof B.spotlight==="string"?B.spotlight:void 0}));_Y(B,"node-core");let C=new FX(B);if(YA().setClient(C),C.init(),H.log("SDK initialized from ESM"),C.startClientReportTracking(),QbA(),m7(C),p7(C),process.env.VERCEL)process.on("SIGTERM",async()=>{await C.flush(200)});return C}function DX(){if(!EQ)return;let A=c7(),Q=["SentryContextManager","SentryPropagator"];if(xA())Q.push("SentrySpanProcessor");for(let B of Q)if(!A.includes(B))H.error(`You have to set up the ${B}. Without this, the OpenTelemetry & Sentry integration will not work properly.`);if(!A.includes("SentrySampler"))H.warn("You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.")}function tvA(A,Q){let B=evA(A.release),I=RAA(A.spotlight),C=AbA(A.tracesSampleRate),E={...A,dsn:A.dsn??process.env.SENTRY_DSN,environment:A.environment??process.env.SENTRY_ENVIRONMENT,sendClientReports:A.sendClientReports??!0,transport:A.transport??Kz,stackParser:J5(A.stackParser||Hz),release:B,tracesSampleRate:C,spotlight:I,debug:gY(A.debug??process.env.SENTRY_DEBUG)},Y=A.integrations,J=A.defaultIntegrations??Q(E),F=EV({defaultIntegrations:J,integrations:Y});return{...E,integrations:F}}function evA(A){if(A!==void 0)return A;let Q=$z();if(Q!==void 0)return Q;return}function AbA(A){if(A!==void 0)return A;let Q=process.env.SENTRY_TRACES_SAMPLE_RATE;if(!Q)return;let B=parseFloat(Q);return isFinite(B)?B:void 0}function QbA(){if(gY(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let A=process.env.SENTRY_TRACE,Q=process.env.SENTRY_BAGGAGE,B=CE(A,Q);YA().setPropagationContext(B)}}function Nz(A,Q){A.setAttribute(O,Q)}var SAA="Http",HbA=c(`${SAA}.sentry`,(A)=>{return new RG(A)}),fAA=g((A={})=>{let Q=A.spans??!0,B=A.disableIncomingRequestSpans,I=Q&&!B,C={sessions:A.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:A.sessionFlushingDelayMS,ignoreRequestBody:A.ignoreIncomingRequestBody,maxRequestBodySize:A.maxIncomingRequestBodySize},E={ignoreIncomingRequests:A.ignoreIncomingRequests,ignoreStaticAssets:A.ignoreStaticAssets,ignoreStatusCodes:A.dropSpansForIncomingRequestStatusCodes,instrumentation:A.instrumentation,onSpanCreated:A.incomingRequestSpanHook},Y=KG(C),J=zG(E);return{name:SAA,setup(F){let G=F.getOptions();if(I&&xA(G))J.setup(F)},setupOnce(){Y.setupOnce();let F={breadcrumbs:A.breadcrumbs,spans:Q,propagateTraceInOutgoingRequests:A.tracePropagation??!0,createSpansForOutgoingRequests:Q,ignoreOutgoingRequests:A.ignoreOutgoingRequests,outgoingRequestHook:(G,D)=>{let Z=uI(D);if(Z.startsWith("data:")){let U=kZ(Z);G.setAttribute("http.url",U),G.setAttribute(EZ,U),G.updateName(`${D.method||"GET"} ${U}`)}A.instrumentation?.requestHook?.(G,D)},outgoingResponseHook:A.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:A.instrumentation?.applyCustomAttributesOnSpan};HbA(F)},processEvent(F){return J.processEvent(F)}}});import*as ZX from"diagnostics_channel";import{URL as MbA}from"url";var _A=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var LbA="http.request.method_original",jz=[],JJ=new WeakMap,NbA=new IB(100);function hAA(A={}){if(jz.length)return;_U("undici:request:create",(Q)=>jbA(A,Q)),_U("undici:client:sendHeaders",(Q)=>RbA(A,Q)),_U("undici:request:headers",(Q)=>qbA(A,Q)),_U("undici:request:trailers",(Q)=>PbA(Q)),_U("undici:request:error",(Q)=>ObA(Q))}function Rz(A,Q){try{return A()}catch(B){Q(B);return}}function _U(A,Q){let[B=0,I=0]=process.version.replace("v","").split(".").map((E)=>Number(E));if(B>18||B===18&&I>=19)jz.push(ZX.subscribe?.(A,Q));else jz.push(ZX.channel(A).subscribe(Q))}function xAA(A){let Q=new Map;if(Array.isArray(A.headers))for(let B=0;BQ.method==="CONNECT"||!!A.ignoreOutgoingRequests?.(B),(w)=>w&&_A&&H.error("caught ignoreOutgoingRequests error: ",w)))return;let C;try{C=new MbA(Q.path,Q.origin)}catch(w){_A&&H.warn("could not determine url.full:",w);return}let E=C.protocol.replace(":",""),Y=gbA(Q.method),J={[N0]:Y,[LbA]:Q.method,[j0]:C.toString(),[$2]:C.pathname,[wn]:C.search,[Xn]:E,[O]:"auto.http.otel.node_fetch"};if(B.startsWith("data:")){let w=kZ(B);J["http.url"]=w,J[j0]=w,J[WI]=`${Q.method||"GET"} ${w}`}let F={https:"443",http:"80"},G=C.hostname,D=C.port||F[E];if(J[XG]=G,D&&!isNaN(Number(D)))J[VG]=Number(D);let U=xAA(Q).get("user-agent");if(U){let w=Array.isArray(U)?U[U.length-1]:U;J[Vn]=w}let W=s({name:Y==="_OTHER"?"HTTP":Y,kind:GA.CLIENT,attributes:J});Rz(()=>A.requestHook?.(W,Q),(w)=>w&&_A&&H.error("caught requestHook error: ",w)),kbA(W,Q,C.toString()),JJ.set(Q,W)}function RbA(A,{request:Q,socket:B}){let I=JJ.get(Q);if(!I)return;let{remoteAddress:C,remotePort:E}=B,Y={[Yn]:C,[Jn]:E};if(A.headersToSpanAttributes?.requestHeaders){let J=new Set(A.headersToSpanAttributes.requestHeaders.map((G)=>G.toLowerCase())),F=xAA(Q);for(let[G,D]of F.entries())if(J.has(G)){let Z=Array.isArray(D)?D:[D];Y[`http.request.header.${G}`]=Z}}I.setAttributes(Y)}function qbA(A,{request:Q,response:B}){let I=JJ.get(Q);if(!I)return;let C={[pI]:B.statusCode};if(Rz(()=>A.responseHook?.(I,{request:Q,response:B}),(E)=>E&&_A&&H.error("caught responseHook error: ",E)),A.headersToSpanAttributes?.responseHeaders){let E=new Set;A.headersToSpanAttributes?.responseHeaders.forEach((Y)=>E.add(Y.toLowerCase()));for(let Y=0;Y=400)I.setStatus({code:k})}function PbA({request:A}){let Q=JJ.get(A);if(!Q)return;Q.end(),JJ.delete(A)}function ObA({request:A,error:Q}){let B=JJ.get(A);if(!B)return;B.setStatus({code:k,message:Q.message}),B.end(),JJ.delete(A)}function kbA(A,Q,B){let{tracePropagationTargets:I,propagateTraceparent:C}=f()?.getOptions()??{};if(!JE(B,I,NbA))return;let E=EA(A,()=>oB({propagateTraceparent:C}));for(let[Y,J]of Object.entries(E)){if(!J)continue;if(typeof Q.addHeader==="function")Q.addHeader(Y,J);else if(typeof Q.headers==="string")Q.headers+=`${Y}: ${J}\r +`;else if(Array.isArray(Q.headers))Q.headers.push(Y,J)}}function gbA(A){let Q={CONNECT:!0,OPTIONS:!0,HEAD:!0,GET:!0,POST:!0,PUT:!0,PATCH:!0,DELETE:!0,TRACE:!0,QUERY:!0};if(A.toUpperCase()in Q)return A.toUpperCase();return"_OTHER"}function TbA(A,Q="/"){let B=`${A}`;if(B.endsWith("/")&&Q.startsWith("/"))return`${B}${Q.slice(1)}`;if(!B.endsWith("/")&&!Q.startsWith("/"))return`${B}/${Q}`;return`${B}${Q}`}var _bA="NodeFetch",ybA=c(`${_bA}.sentry`,PG,(A)=>{return A}),SbA=(A={})=>{return{name:"NodeFetch",setupOnce(){if(fbA(A,f()?.getOptions()))hAA({ignoreOutgoingRequests:A.ignoreOutgoingRequests,requestHook:A.requestHook,responseHook:A.responseHook,headersToSpanAttributes:A.headersToSpanAttributes});ybA(A)}}},vAA=g(SbA);function fbA(A,Q={}){return typeof A.spans==="boolean"?A.spans:!Q.skipOpenTelemetrySetup&&xA(Q)}var WX=m(jA(),1);function gC(A){let Q=VA();if(!Q)return;let B=sA(Q);if(!B)return;if(r(B).data[l]!=="http.server")return;B.setAttribute("http.route",A)}var bAA="Express",hbA=[">=4.0.0 <6"];var mAA=c(bAA,(A)=>new dAA(A));class dAA extends WX.InstrumentationBase{constructor(A={}){super("sentry-express",h,A)}init(){return new WX.InstrumentationNodeModuleDefinition("express",hbA,(Q)=>{try{EK(Q,()=>({...this.getConfig(),onRouteResolved(B){if(B)gC(B)}}))}catch(B){_A&&H.error("Failed to patch express module:",B)}return Q},(Q)=>Q)}}var xbA=(A)=>{return{name:bAA,setupOnce(){mAA(A)}}},cAA=g(xbA);var TC=m(AA(),1),FJ=m(jA(),1),oAA=m(tB(),1);var O0=((A)=>{return A.FASTIFY_NAME="fastify.name",A.FASTIFY_TYPE="fastify.type",A.HOOK_NAME="hook.name",A.PLUGIN_NAME="plugin.name",A})(O0||{}),wX=((A)=>{return A.MIDDLEWARE="middleware",A.REQUEST_HANDLER="request_handler",A})(wX||{}),XX=((A)=>{return A.MIDDLEWARE="middleware",A.REQUEST_HANDLER="request handler",A})(XX||{});var lAA=m(AA(),1);var yU=Symbol("opentelemetry.instrumentation.fastify.request_active_span");function qz(A,Q,B,I={}){let C=Q.startSpan(B,{attributes:I}),E=A[yU]||[];return E.push(C),Object.defineProperty(A,yU,{enumerable:!1,configurable:!0,value:E}),C}function VX(A,Q){let B=A[yU]||[];if(!B.length)return;B.forEach((I)=>{if(Q)I.setStatus({code:lAA.SpanStatusCode.ERROR,message:Q.message}),I.recordException(Q);I.end()}),delete A[yU]}function pAA(A,Q,B){let I,C=void 0;try{if(C=A(),uAA(C))C.then((E)=>Q(void 0,E),(E)=>Q(E))}catch(E){I=E}finally{if(!uAA(C)){if(Q(I,C),I)throw I}return C}}function uAA(A){return typeof A==="object"&&A&&typeof Object.getOwnPropertyDescriptor(A,"then")?.value==="function"||!1}var vbA="@sentry/instrumentation-fastify-v3",iAA="anonymous",bbA=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]);class Pz extends FJ.InstrumentationBase{constructor(A={}){super(vbA,h,A)}init(){return[new FJ.InstrumentationNodeModuleDefinition("fastify",[">=3.0.0 <3.21.0"],(A)=>{return this._patchConstructor(A)})]}_hookOnRequest(){let A=this;return function(B,I,C){if(!A.isEnabled())return C();A._wrap(I,"send",A._patchSend());let E=B,Y=E.routeOptions?E.routeOptions.url:B.routerPath;if(Y)gC(Y);let J=B.method||"GET";CA().setTransactionName(`${J} ${Y}`),C()}}_wrapHandler(A,Q,B,I){let C=this;return this._diag.debug("Patching fastify route.handler function"),function(...E){if(!C.isEnabled())return B.apply(this,E);let Y=B.name||A||iAA,J=`${XX.MIDDLEWARE} - ${Y}`,F=E[1],G=qz(F,C.tracer,J,{[O0.FASTIFY_TYPE]:wX.MIDDLEWARE,[O0.PLUGIN_NAME]:A,[O0.HOOK_NAME]:Q}),D=I&&E[E.length-1];if(D)E[E.length-1]=function(...Z){VX(F),D.apply(this,Z)};return TC.context.with(TC.trace.setSpan(TC.context.active(),G),()=>{return pAA(()=>{return B.apply(this,E)},(Z)=>{if(Z instanceof Error)G.setStatus({code:TC.SpanStatusCode.ERROR,message:Z.message}),G.recordException(Z);if(!I)VX(F)})})}}_wrapAddHook(){let A=this;return this._diag.debug("Patching fastify server.addHook function"),function(Q){return function(...I){let C=I[0],E=I[1],Y=this.pluginName;if(!bbA.has(C))return Q.apply(this,I);let J=typeof I[I.length-1]==="function"&&E.constructor.name!=="AsyncFunction";return Q.apply(this,[C,A._wrapHandler(Y,C,E,J)])}}}_patchConstructor(A){let Q=this;function B(...I){let C=A.fastify.apply(this,I);return C.addHook("onRequest",Q._hookOnRequest()),C.addHook("preHandler",Q._hookPreHandler()),mbA(),Q._wrap(C,"addHook",Q._wrapAddHook()),C}if(A.errorCodes!==void 0)B.errorCodes=A.errorCodes;return B.fastify=B,B.default=B,B}_patchSend(){let A=this;return this._diag.debug("Patching fastify reply.send function"),function(B){return function(...C){let E=C[0];if(!A.isEnabled())return B.apply(this,C);return FJ.safeExecuteInTheMiddle(()=>{return B.apply(this,C)},(Y)=>{if(!Y&&E instanceof Error)Y=E;VX(this,Y)})}}}_hookPreHandler(){let A=this;return this._diag.debug("Patching fastify preHandler function"),function(B,I,C){if(!A.isEnabled())return C();let E=B,Y=E.routeOptions?.handler||E.context?.handler,J=Y?.name.startsWith("bound ")?Y.name.substring(6):Y?.name,F=`${XX.REQUEST_HANDLER} - ${J||this.pluginName||iAA}`,G={[O0.PLUGIN_NAME]:this.pluginName,[O0.FASTIFY_TYPE]:wX.REQUEST_HANDLER,[oAA.SEMATTRS_HTTP_ROUTE]:E.routeOptions?E.routeOptions.url:B.routerPath};if(J)G[O0.FASTIFY_NAME]=J;let D=qz(I,A.tracer,F,G);nAA(D);let{requestHook:Z}=A.getConfig();if(Z)FJ.safeExecuteInTheMiddle(()=>Z(D,{request:B}),(U)=>{if(U)A._diag.error("request hook failed",U)},!0);return TC.context.with(TC.trace.setSpan(TC.context.active(),D),()=>{C()})}}}function mbA(){let A=f();if(A)A.on("spanStart",(Q)=>{nAA(Q)})}function nAA(A){let Q=r(A).data,B=Q["fastify.type"];if(Q[l]||!B)return;A.setAttributes({[O]:"auto.http.otel.fastify",[l]:`${B}.fastify`});let I=Q["fastify.name"]||Q["plugin.name"]||Q["hook.name"];if(typeof I==="string"){let C=I.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");A.updateName(C)}}var k0=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var kz=()=>{};function fG(A,Q,B){let I=dbA(A,Q),C=B?.beforeSpanEnd,E=B?.deferSpanEnd,Y=(D)=>{if(typeof B?.captureError==="function")return B.captureError(D);return{mechanism:{type:"auto.diagnostic_channels.bind_span",handled:!1}}},J=(D,Z)=>{if(B?.captureError)o(Z,Y(Z));let{message:U,attributes:W}=cbA(Z);D.setStatus({code:k,message:U}),D.setAttributes(W)},F=(D,Z)=>{let U=!1;return(W)=>{if(U)return;if(U=!0,W!==void 0)J(D,W);Oz(Z,C)}},G={start:kz,asyncStart:kz,end(D){if("error"in D||"result"in D){let Z=D._sentrySpan;if(Z&&E?.({span:Z,data:D,end:F(Z,D)}))return;Oz(D,C)}},error(D){let Z=D._sentrySpan;if(!Z)return;J(Z,D.error)},asyncEnd(D){let Z=D._sentrySpan;if(Z&&E?.({span:Z,data:D,end:F(Z,D)}))return;Oz(D,C)}};return I.channel.subscribe(G),{channel:I.channel,unbind:()=>{I.channel.unsubscribe(G),I.unbind()}}}function dbA(A,Q){let B=RQ(CQ()).getTracingChannelBinding?.();if(!B)return k0&&H.log("[TracingChannel] Could not access async context binding."),{channel:A,unbind:kz};let I=B.asyncLocalStorage;return A.start.bindStore(I,(C)=>{C._sentryCallerStore=I.getStore();let E=Q(C);if(!E)return C._sentryCallerStore;return C._sentrySpan=E,B.getStoreWithActiveSpan(E)}),A.asyncStart.bindStore(I,(C)=>{return C._sentryCallerStore}),{channel:A,unbind:()=>{A.start.unbindStore(I),A.asyncStart.unbindStore(I)}}}function Oz(A,Q){let B=A._sentrySpan;if(!B)return;Q?.(B,A),B.end()}function cbA(A){let Q=!!A&&typeof A==="object",B=Q?"message"in A?A.message:void 0:A,I=B?String(B):"unknown_error",C=Q&&"name"in A?String(A.name):"unknown";return{message:I,attributes:{[ho]:C}}}var tAA="node-redis:command",eAA="node-redis:batch",AQA="node-redis:connect",QQA="ioredis:command",BQA="ioredis:connect",gz="auto.db.redis.diagnostic_channel",Tz="redis",sAA=!1,IQA,ubA=[];function _z(A,Q){if(IQA=Q,sAA)return;sAA=!0;try{ubA.push(aAA(A,tAA,(B)=>B.args.slice(1)),lbA(A,eAA,(B)=>B.batchMode==="PIPELINE"?"PIPELINE":"MULTI"),rAA(A,AQA),aAA(A,QQA,(B)=>B.args),rAA(A,BQA))}catch{k0&&H.log("Redis node:diagnostics_channel subscription failed.")}}function aAA(A,Q,B){return fG(A(Q),(I)=>{let C=B(I),E=C.length?`${I.command} ${C.join(" ")}`:I.command;return s({name:`redis-${I.command}`,attributes:{[O]:gz,[l]:"db.redis",[WG]:Tz,[yo]:E,...I.serverAddress!=null?{[XG]:I.serverAddress}:{},...I.serverPort!=null?{[VG]:I.serverPort}:{}}})},{captureError:!1,beforeSpanEnd(I,C){if("error"in C)return;pbA(I,C.command,B(C),C.result)}}).unbind}function lbA(A,Q,B){return fG(A(Q),(I)=>{return s({name:B(I),attributes:{[O]:gz,[l]:"db.redis",[WG]:Tz,...Number(I.batchSize)>1?{[_o]:I.batchSize}:{},...I.serverAddress!=null?{[XG]:I.serverAddress}:{},...I.serverPort!=null?{[VG]:I.serverPort}:{}}})},{captureError:!1}).unbind}function rAA(A,Q){return fG(A(Q),(B)=>{return s({name:"redis-connect",attributes:{[O]:gz,[l]:"db.redis.connect",[WG]:Tz,...B.serverAddress!=null?{[XG]:B.serverAddress}:{},...B.serverPort!=null?{[VG]:B.serverPort}:{}}})},{captureError:!1}).unbind}function pbA(A,Q,B,I){let C=IQA;if(!C)return;try{C(A,Q,B,I)}catch{}}var CQA="execute_tool";var EQA="invoke_agent";var ibA="ai:telemetry",FQA="auto.vercelai.channel",obA="gen_ai.tool.call.id",nbA="gen_ai.tool.description",sbA="embeddings",abA="rerank",rbA="generate_content",GQA="vercel.ai.operationId",tbA="vercel.ai.model.provider",ebA="vercel.ai.settings.maxRetries",Sz=new Map,zX=new Map,AmA=new Set(["generateText","streamText","embed","rerank"]);function QmA(A){if(!AmA.has(A.type))return;let Q=YQ(A.event.callId);if(Q)Sz.delete(Q),zX.delete(Q)}function BmA(A,Q){if(!A||!Array.isArray(Q))return;let B=zX.get(A);for(let I of Q)if(wB(I)&&typeof I.name==="string"&&typeof I.description==="string"){if(B=B??new Map,!B.has(I.name))B.set(I.name,I.description)}if(B)zX.set(A,B)}function ImA(A,Q,B){let I=A?zX.get(A)?.get(Q):void 0;if(I)return I;if(Array.isArray(B)){let C=B.find((E)=>wB(E)&&E.name===Q);return wB(C)?YQ(C.description):void 0}if(wB(B)){let C=B[Q];return wB(C)?YQ(C.description):void 0}return}var YQA=!1;function DQA(A,Q={}){if(YQA)return;YQA=!0,fG(A(ibA),(B)=>CmA(B,Q),{beforeSpanEnd:(B,I)=>{FmA(B,I,Q),QmA(I)}})}function CmA(A,Q){let{type:B,event:I}=A;if(B==="step"||!I||typeof I!=="object")return;let{recordInputs:C,enableTruncation:E}=UQA(I,Q),Y=YQ(I.provider),J=YQ(I.modelId),F=YQ(I.callId),G=yz(I.maxRetries);if(C)BmA(F,I.tools);let D={[O]:FQA,...Y?{[ao]:Y,[tbA]:Y}:{},...J?{[po]:J}:{},...G!==void 0?{[ebA]:G}:{}};switch(B){case"generateText":case"streamText":return EmA(I,D,C,E,F,B==="streamText");case"languageModelCall":return YmA(I,D,C,E,F,J);case"executeTool":return JmA(I,C);case"embed":return SU(sbA,J,{...D,...C&&I.value!==void 0?{[vo]:ME(I.value)}:{}});case"rerank":return SU(abA,J,D);default:return}}function SU(A,Q,B){return s({name:Q?`${A} ${Q}`:A,op:`gen_ai.${A}`,attributes:{[co]:A,...B}})}function EmA(A,Q,B,I,C,E){let Y=YQ(A.functionId),J=YQ(A.operationId)??(E?"ai.streamText":"ai.generateText");if(C)Sz.set(C,{operationId:J,isStream:E});return SU(EQA,Y,{...Q,[GQA]:J,[so]:E,...Y?{[bo]:Y}:{},...B?WQA(A,I):{}})}function YmA(A,Q,B,I,C,E){let Y=C?Sz.get(C):void 0,J=Y?`${Y.operationId}.${Y.isStream?"doStream":"doGenerate"}`:"ai.generateText.doGenerate";return SU(rbA,E,{...Q,[GQA]:J,...B?WQA(A,I):{},...B&&Array.isArray(A.tools)?{[lo]:ME(A.tools)}:{}})}function JmA(A,Q){let B=wB(A.toolCall)?A.toolCall:{},I=YQ(B.toolName),C=YQ(A.toolCallId)??YQ(B.toolCallId),E=B.input??B.args,Y=Q&&I?ImA(YQ(A.callId),I,A.tools):void 0;return SU(CQA,I,{[O]:FQA,[An]:"function",...I?{[to]:I}:{},...C?{[obA]:C}:{},...Y?{[nbA]:Y}:{},...Q&&E!==void 0?{[ro]:ME(E)}:{}})}function FmA(A,Q,B){let{type:I,result:C}=Q;if(!wB(C))return;let{recordOutputs:E}=UQA(Q.event,B);if(I==="executeTool"){if(E)A.setAttribute(eo,ME(C.output??C));let W=wB(C.output)?C.output:void 0;if(W?.type==="tool-error")wmA(A,Q,W.error);return}let Y=wB(C.usage)?C.usage:void 0;if(Y){let W=KX(Y.inputTokens)??KX(Y.tokens),w=KX(Y.outputTokens),K=KX(Y.totalTokens)??XmA(W,w);if(W!==void 0)A.setAttribute(Qn,W);if(w!==void 0)A.setAttribute(Bn,w);if(K!==void 0)A.setAttribute(In,K)}let J=DmA(C);if(J&&I==="languageModelCall")A.setAttribute(io,ME([J]));let F=wB(C.response)?C.response:void 0,G=YQ(F?.id)??YQ(C.responseId);if(G)A.setAttribute(oo,G);let D=YQ(F?.modelId)??YQ(Q.event.modelId);if(D)A.setAttribute(no,D);let Z=C.providerMetadata,U=O9(Z);if(zY in U&&r(A).data[zY])delete U[zY];if(A.setAttributes(U),E){let W=I==="languageModelCall"&&Array.isArray(C.content)?UmA(C.content):WmA(C.text,C.toolCalls),w=ZmA(W,J);if(w)A.setAttribute(uo,w)}}function GmA(A){return A==="tool-calls"?"tool_call":A??"stop"}function DmA(A){let Q=A.finishReason;if(typeof Q==="string")return Q;return wB(Q)?YQ(Q.unified):void 0}function KX(A){return yz(A)??(wB(A)?yz(A.total):void 0)}function ZmA(A,Q){if(!A.length)return;return ME([{role:"assistant",parts:A,finish_reason:GmA(Q)}])}function ZQA(A){let Q=A.input??A.args;return{type:"tool_call",id:YQ(A.toolCallId),name:YQ(A.toolName),arguments:typeof Q==="string"?Q:ME(Q??{})}}function UmA(A){let Q=[];for(let B of A){if(!wB(B))continue;if(B.type==="text"&&typeof B.text==="string")Q.push({type:"text",content:B.text});else if(B.type==="tool-call")Q.push(ZQA(B))}return Q}function WmA(A,Q){let B=[];if(typeof A==="string"&&A.length)B.push({type:"text",content:A});if(Array.isArray(Q)){for(let I of Q)if(wB(I))B.push(ZQA(I))}return B}function wmA(A,Q,B){A.setStatus({code:k,message:B instanceof Error?B.message:"tool_error"});let I=wB(Q.event.toolCall)?Q.event.toolCall:{},C=YQ(I.toolName),E=YQ(Q.event.toolCallId)??YQ(I.toolCallId);lA((Y)=>{if(Y.setContext("trace",KC(A)),C)Y.setTag("vercel.ai.tool.name",C);if(E)Y.setTag("vercel.ai.tool.callId",E);Y.setLevel("error"),o(B instanceof Error?B:Error(typeof B==="string"?B:"Tool execution failed"),{mechanism:{type:"auto.vercelai.channel",handled:!1}})})}function UQA(A,Q){let B=f()?.getDataCollectionOptions().genAI;return{recordInputs:JQA(Q.recordInputs,A.recordInputs,B?.inputs),recordOutputs:JQA(Q.recordOutputs,A.recordOutputs,B?.outputs),enableTruncation:PQ(Q.enableTruncation)}}function JQA(A,Q,B){if(typeof A==="boolean")return A;if(typeof Q==="boolean")return Q;return B===!0}function WQA(A,Q){let B={},I=YQ(A.instructions);if(I)B[QB]=ME([{type:"text",content:I}]);let C=A.messages??A.prompt;if(C!==void 0)B[mo]=Q?dQ(C):ME(C),B[_Q]=Array.isArray(C)?C.length:1;return B}function YQ(A){return typeof A==="string"?A:void 0}function yz(A){return typeof A==="number"&&!isNaN(A)?A:void 0}function XmA(A,Q){return A===void 0&&Q===void 0?void 0:(A??0)+(Q??0)}function wB(A){return typeof A==="object"&&A!==null}function ME(A){if(typeof A==="string")return A;try{return JSON.stringify(A)}catch{return"[unserializable]"}}import*as fz from"node:diagnostics_channel";var VmA=(A={})=>{return{name:"VercelAI",setupOnce(){if(!fz.tracingChannel)return;lF(()=>{DQA(fz.tracingChannel,A)})}}},hz=g(VmA);import*as KQA from"node:diagnostics_channel";var xz="@sentry/instrumentation-fastify",KmA=">=3.21.0 <6",zQA="auto.http.otel.fastify",zmA="hook.fastify",$QA="request_handler.fastify",HQA=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend","onResponse","onError"],g0="hook.name",T0="fastify.type",GJ="hook.callback.name",$mA="fastify.root",HmA="route-hook",hG="hook",MQA="request-handler",_0="anonymous",LE=Symbol("sentry fastify request span"),LQA=Symbol("sentry fastify addHook original"),NQA=Symbol("sentry fastify setNotFoundHandler original");function jQA(A){return A.routeOptions?.url??A.routerPath}function RQA(A){return A.routeOptions?.config??A.routeConfig}function MmA(A){return!!A&&typeof A==="object"&&!!A.method&&!!A.url&&(!!A.routeOptions||("routerPath"in A))}function qQA(A,Q,B){A.decorate(LQA,A.addHook),A.decorate(NQA,A.setNotFoundHandler),A.decorateRequest("opentelemetry",function(){return{span:this[LE]}}),A.decorateRequest(LE,null),A.addHook("onRoute",LmA),A.addHook("onRequest",NmA),A.addHook("onResponse",jmA),A.addHook=PmA,A.setNotFoundHandler=OmA,B()}var vz=qQA;vz[Symbol.for("skip-override")]=!0;vz[Symbol.for("fastify.display-name")]=xz;vz[Symbol.for("plugin-meta")]={fastify:KmA,name:xz};function LmA(A){if(A.config?.otel===!1)return;for(let Q of HQA){let B=A[Q];if(typeof B==="function")A[Q]=y0(B,Q,wQA(this.pluginName,Q,B,A.url));else if(Array.isArray(B))A[Q]=B.map((I)=>y0(I,Q,wQA(this.pluginName,Q,I,A.url)))}A.onSend=XQA(A.onSend,RmA),A.onError=XQA(A.onError,qmA),A.handler=y0(A.handler,"handler",{[g0]:`${this.pluginName} - route-handler`,[T0]:MQA,[XE]:A.url,[GJ]:A.handler.name.length>0?A.handler.name:_0})}function wQA(A,Q,B,I){return{[g0]:`${A} - route -> ${Q}`,[T0]:HmA,[XE]:I,[GJ]:B.name?.length>0?B.name:_0}}function XQA(A,Q){if(A==null)return Q;return Array.isArray(A)?[...A,Q]:[A,Q]}function NmA(A,Q,B){if(RQA(A)?.otel===!1)return B();let I={[O]:zQA,[$mA]:xz,[N0]:A.method,[$2]:A.url},C=jQA(A);if(C!=null){I[XE]=C;let Y=VA(),J=Y&&sA(Y);if(J&&r(J).data[l]==="http.server")J.setAttribute(XE,C)}let E=s({name:"request",op:$QA,attributes:I});A[LE]=E,EA(E,()=>{B()})}function jmA(A,Q,B){let I=A[LE];if(I!=null)I.setAttributes({[pI]:Q.statusCode}),I.end();A[LE]=null,B()}function RmA(A,Q,B,I){let C=A[LE];if(C!=null){if(Q.statusCode>=500)C.setStatus({code:k});C.setAttributes({[pI]:Q.statusCode}),C.end()}A[LE]=null,I(null,B)}function qmA(A,Q,B,I){let C=A[LE];if(C!=null)C.setStatus({code:k,message:B.message});I()}function PmA(A,Q){let B=this[LQA];if(HQA.includes(A))return B.call(this,A,y0(Q,A,{[g0]:`${this.pluginName} - ${A}`,[T0]:hG,[GJ]:Q.name?.length>0?Q.name:_0}));return B.call(this,A,Q)}function OmA(A,Q){let B=this[NQA];if(typeof A==="function"){B.call(this,y0(A,"notFoundHandler",{[g0]:`${this.pluginName} - not-found-handler`,[T0]:hG,[GJ]:A.name?.length>0?A.name:_0}));return}if(A.preValidation!=null)A.preValidation=y0(A.preValidation,"notFoundHandler - preValidation",{[g0]:`${this.pluginName} - not-found-handler - preValidation`,[T0]:hG,[GJ]:A.preValidation.name?.length>0?A.preValidation.name:_0});if(A.preHandler!=null)A.preHandler=y0(A.preHandler,"notFoundHandler - preHandler",{[g0]:`${this.pluginName} - not-found-handler - preHandler`,[T0]:hG,[GJ]:A.preHandler.name?.length>0?A.preHandler.name:_0});if(Q==null){B.call(this,A);return}B.call(this,A,y0(Q,"notFoundHandler",{[g0]:`${this.pluginName} - not-found-handler`,[T0]:hG,[GJ]:Q.name?.length>0?Q.name:_0}))}function kmA(A){for(let Q of A)if(MmA(Q))return Q;return null}function y0(A,Q,B={}){return function(...C){let E=kmA(C);if(E===null||RQA(E)?.otel===!1)return A.call(this,...C);let Y=E[LE]??void 0,J=A.name?.length>0?A.name:this.pluginName??_0,F=B[T0],G=F===hG?zmA:F===MQA?$QA:void 0,D=G?gmA(B[g0]):`${Q} - ${J}`;return vA({name:D,op:G,attributes:{...B,[O]:zQA},parentSpan:Y},()=>A.call(this,...C))}}function gmA(A=""){return A.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"").replace(/^@sentry\/instrumentation-fastify -> /,"")}function TmA(A){A.addHook("onRequest",async(Q,B)=>{let I=jQA(Q),C=Q.method||"GET";CA().setTransactionName(`${C} ${I}`)})}var VQA=!1,PQA=Object.assign(function(){if(VQA)return;VQA=!0,KQA.subscribe("fastify.initialization",(Q)=>{let B=Q.fastify;B?.register(qQA).after((I)=>{if(I)k0&&H.error("Failed to setup Fastify instrumentation",I);else if(B)TmA(B)})})},{id:"Fastify.v5"});var $X="Fastify";function HX(A,Q,B){let I=B.statusCode;return I>=500||I<=299}import*as OQA from"node:diagnostics_channel";function _mA(){return f()?.getIntegrationByName($X)}function kQA(){OQA.subscribe("tracing:fastify.request.handler:error",(A)=>{let{error:Q,request:B,reply:I}=A;bz.call(bz,Q,B,I,"diagnostics-channel")})}function bz(A,Q,B,I){let C=_mA()?.getShouldHandleError()||HX;if(I==="diagnostics-channel")this.diagnosticsChannelExists=!0;if(this.diagnosticsChannelExists&&I==="onError-hook"){k0&&H.warn("Fastify error handler was already registered via diagnostics channel.","You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.");return}if(C(A,Q,B))o(A,{mechanism:{handled:!1,type:"auto.function.fastify"}})}var ymA=({shouldHandleError:A})=>{let Q;return{name:$X,setupOnce(){Q=A||HX,kQA(),PQA()},getShouldHandleError(){return Q},setShouldHandleError(B){Q=B}}},mz=g((A={})=>ymA(A));var fmA="Fastify",gQA=c(`${fmA}.v3`,()=>new Pz);var hmA=(A)=>{let Q=mz(A);return OZ(Q,{setupOnce(){gQA()}})},TQA=g((A={})=>hmA(A));var MI=m(jA(),1);import{normalize as xmA}from"path";class zA{constructor(A,Q,B,I){this.name=xmA(A),this.supportedVersions=Q,this.patch=B,this.unpatch=I}}var dz=((A)=>{return A.QUERY="query",A.MUTATION="mutation",A.SUBSCRIPTION="subscription",A})(dz||{}),S0=((A)=>{return A.SOF="",A.EOF="",A.BANG="!",A.DOLLAR="$",A.AMP="&",A.PAREN_L="(",A.PAREN_R=")",A.SPREAD="...",A.COLON=":",A.EQUALS="=",A.AT="@",A.BRACKET_L="[",A.BRACKET_R="]",A.BRACE_L="{",A.PIPE="|",A.BRACE_R="}",A.NAME="Name",A.INT="Int",A.FLOAT="Float",A.STRING="String",A.BLOCK_STRING="BlockString",A.COMMENT="Comment",A})(S0||{}),NE=((A)=>{return A.EXECUTE="graphql.execute",A.PARSE="graphql.parse",A.RESOLVE="graphql.resolve",A.VALIDATE="graphql.validate",A.SCHEMA_VALIDATE="graphql.validateSchema",A.SCHEMA_PARSE="graphql.parseSchema",A})(NE||{});var gB=((A)=>{return A.SOURCE="graphql.source",A.FIELD_NAME="graphql.field.name",A.FIELD_PATH="graphql.field.path",A.FIELD_TYPE="graphql.field.type",A.PARENT_NAME="graphql.parent.name",A.OPERATION_TYPE="graphql.operation.type",A.OPERATION_NAME="graphql.operation.name",A})(gB||{});var fU=Symbol.for("opentelemetry.patched"),_C=Symbol.for("opentelemetry.graphql_data");var _QA="Operation$operationName$not supported";var yQA=Object.values(dz),cz=(A)=>{return typeof A?.then==="function"},vmA=(A)=>{return typeof A=="object"&&A!==null};function MX(A,Q,B,I){let C=omA(Q,B,I);A.setAttribute(gB.SOURCE,C)}function bmA(A,Q,B){let I=xQA(A,B);if(I)return{field:I,spanAdded:!1};let C=cmA(A,B);return I={span:mmA(A,Q,B,C)},dmA(A,B,I),{field:I,spanAdded:!0}}function mmA(A,Q,B,I){let C={[gB.FIELD_NAME]:Q.fieldName,[gB.FIELD_PATH]:B.join("."),[gB.FIELD_TYPE]:Q.returnType.toString(),[gB.PARENT_NAME]:Q.parentType.name},E=s({name:`${NE.RESOLVE} ${C[gB.FIELD_PATH]}`,attributes:C,parentSpan:I}),Y=A[_C].source,J=Q.fieldNodes.find((F)=>F.kind==="Field");if(J)MX(E,Y.loc,J.loc?.start,J.loc?.end);return E}function DJ(A,Q){if(Q)A.setStatus({code:k,message:Q.message});A.end()}function uz(A,Q){if(!A||!Array.isArray(A.definitions))return;if(Q)return A.definitions.filter((B)=>yQA.indexOf(B?.operation)!==-1).find((B)=>Q===B?.name?.value);else return A.definitions.find((B)=>yQA.indexOf(B?.operation)!==-1)}function dmA(A,Q,B){return A[_C].fields[Q.join(".")]=B}function xQA(A,Q){return A[_C].fields[Q.join(".")]}function cmA(A,Q){for(let B=Q.length-1;B>0;B--){let I=xQA(A,Q.slice(0,B));if(I)return I.span}return umA(A)}function umA(A){return A[_C].span}function lmA(A){let Q=[],B=A;while(B)Q.push(String(B.key)),B=B.prev;return Q.reverse()}function pmA(A){return vQA(` +`,A)}function SQA(A){return vQA(" ",A)}function vQA(A,Q){let B="";for(let I=0;IE){Y=Y.next,J=Y?.line;continue}let F=Y.value||Y.kind,G="";if(imA.indexOf(Y.kind)>=0)F="*";if(Y.kind===S0.STRING)F=`"${F}"`;if(Y.kind===S0.EOF)F="";if(Y.line>J)I+=pmA(Y.line-J),J=Y.line,G=SQA(Y.column-1);else if(Y.line===Y.prev?.line)G=SQA(Y.start-(Y.prev?.end||0));if(I+=G+F,Y)Y=Y.next}}return I}function LX(A,Q){if(!A||A[fU])return;let B=A.getFields();A[fU]=!0,Object.keys(B).forEach((I)=>{let C=B[I];if(!C)return;if(C.resolve)C.resolve=lz(Q,C.resolve);if(C.type){let E=bQA(C.type);for(let Y of E)LX(Y,Q)}})}function bQA(A){if("ofType"in A)return bQA(A.ofType);if(nmA(A))return A.getTypes();if(smA(A))return[A];return[]}function nmA(A){return"getTypes"in A&&typeof A.getTypes==="function"}function smA(A){return"getFields"in A&&typeof A.getFields==="function"}var fQA=(A,Q,B)=>{if(!B)return;A.setStatus({code:k,message:Q.message}),A.end()},hQA=(A,Q)=>{if(!Q)return;A.end()};function lz(A,Q,B=!1){if(I[fU]||typeof Q!=="function")return Q;function I(C,E,Y,J){if(!Q)return;if(A().ignoreTrivialResolveSpans&&B&&(vmA(C)||typeof C==="function")){if(typeof C[J.fieldName]!=="function")return Q.call(this,C,E,Y,J)}if(!Y[_C])return Q.call(this,C,E,Y,J);let G=lmA(J?.path),{field:D,spanAdded:Z}=bmA(Y,J,G),U=D.span,W=Z;return EA(U,()=>{try{let w=Q.call(this,C,E,Y,J);if(cz(w))return w.then((K)=>{return hQA(U,W),K},(K)=>{throw fQA(U,K,W),K});else return hQA(U,W),w}catch(w){throw fQA(U,w,W),w}})}return I[fU]=!0,I}var amA="@sentry/instrumentation-graphql",rmA="auto.graphql.otel.graphql",mQA={ignoreResolveSpans:!1},NX=[">=14.0.0 <17"];class pz extends MI.InstrumentationBase{constructor(A={}){super(amA,h,{...mQA,...A})}setConfig(A={}){super.setConfig({...mQA,...A})}init(){let A=new MI.InstrumentationNodeModuleDefinition("graphql",NX);return A.files.push(this._addPatchingExecute()),A.files.push(this._addPatchingParser()),A.files.push(this._addPatchingValidate()),A}_addPatchingExecute(){return new zA("graphql/execution/execute.js",NX,(A)=>{if(MI.isWrapped(A.execute))this._unwrap(A,"execute");return this._wrap(A,"execute",this._patchExecute(A.defaultFieldResolver)),A},(A)=>{if(A)this._unwrap(A,"execute")})}_addPatchingParser(){return new zA("graphql/language/parser.js",NX,(A)=>{if(MI.isWrapped(A.parse))this._unwrap(A,"parse");return this._wrap(A,"parse",this._patchParse()),A},(A)=>{if(A)this._unwrap(A,"parse")})}_addPatchingValidate(){return new zA("graphql/validation/validate.js",NX,(A)=>{if(MI.isWrapped(A.validate))this._unwrap(A,"validate");return this._wrap(A,"validate",this._patchValidate()),A},(A)=>{if(A)this._unwrap(A,"validate")})}_patchExecute(A){let Q=this;return function(I){return function(){let E;if(arguments.length>=2){let F=arguments;E=Q._wrapExecuteArgs(F[0],F[1],F[2],F[3],F[4],F[5],F[6],F[7],A)}else{let F=arguments[0];E=Q._wrapExecuteArgs(F.schema,F.document,F.rootValue,F.contextValue,F.variableValues,F.operationName,F.fieldResolver,F.typeResolver,A)}let Y=uz(E.document,E.operationName),J=Q._createExecuteSpan(Y,E);return E.contextValue[_C]={source:E.document?E.document||E.document[_C]:void 0,span:J,fields:{}},EA(J,()=>{return MI.safeExecuteInTheMiddle(()=>{return I.apply(this,[E])},(F,G)=>{Q._handleExecutionResult(J,F,G)})})}}}_handleExecutionResult(A,Q,B){if(B===void 0||Q){DJ(A,Q);return}if(cz(B))B.then((I)=>{this._updateSpanFromResult(A,I),DJ(A)},(I)=>{DJ(A,I)});else this._updateSpanFromResult(A,B),DJ(A)}_updateSpanFromResult(A,Q){if(Q.errors?.length&&!r(A).status)A.setStatus({code:k});if(!this.getConfig().useOperationNameForRootSpan)return;let B=r(A).data,I=B[gB.OPERATION_TYPE],C=B[gB.OPERATION_NAME];if(!I)return;let E=sA(A),J=r(E).data[CJ]||[],F=C?`${I} ${C}`:`${I}`;if(Array.isArray(J))J.push(F),E.setAttribute(CJ,J);else if(typeof J==="string")E.setAttribute(CJ,[J,F]);else E.setAttribute(CJ,F);if(!r(E).data["original-description"])E.setAttribute("original-description",r(E).description);E.updateName(`${r(E).data["original-description"]} (${tmA(J)})`)}_patchParse(){let A=this;return function(B){return function(C,E){return A._parse(this,B,C,E)}}}_patchValidate(){let A=this;return function(B){return function(C,E,Y,J,F){return A._validate(this,B,C,E,Y,F,J)}}}_parse(A,Q,B,I){let C=s({name:NE.PARSE});return EA(C,()=>{return MI.safeExecuteInTheMiddle(()=>{return Q.call(A,B,I)},(E,Y)=>{if(Y){if(!uz(Y))C.updateName(NE.SCHEMA_PARSE);else if(Y.loc)MX(C,Y.loc)}DJ(C,E)})})}_validate(A,Q,B,I,C,E,Y){let J=s({name:NE.VALIDATE});return EA(J,()=>{return MI.safeExecuteInTheMiddle(()=>{return Q.call(A,B,I,C,Y,E)},(F,G)=>{if(!I.loc)J.updateName(NE.SCHEMA_VALIDATE);DJ(J,F)})})}_createExecuteSpan(A,Q){let B=s({name:NE.EXECUTE,attributes:{[O]:rmA}});if(A){let{operation:I,name:C}=A;B.setAttribute(gB.OPERATION_TYPE,I);let E=C?.value;if(E)B.setAttribute(gB.OPERATION_NAME,E),B.updateName(`${I} ${E}`);else B.updateName(I)}else{let I=" ";if(Q.operationName)I=` "${Q.operationName}" `;I=_QA.replace("$operationName$",I),B.setAttribute(gB.OPERATION_NAME,I)}if(Q.document?.loc)MX(B,Q.document.loc);return B}_wrapExecuteArgs(A,Q,B,I,C,E,Y,J,F){if(!I)I={};if(I[_C]||this.getConfig().ignoreResolveSpans)return{schema:A,document:Q,rootValue:B,contextValue:I,variableValues:C,operationName:E,fieldResolver:Y,typeResolver:J};let G=Y==null;if(Y=lz(()=>this.getConfig(),Y??F,G),A)LX(A.getQueryType(),()=>this.getConfig()),LX(A.getMutationType(),()=>this.getConfig());return{schema:A,document:Q,rootValue:B,contextValue:I,variableValues:C,operationName:E,fieldResolver:Y,typeResolver:J}}}function tmA(A){if(Array.isArray(A)){let Q=A.slice().sort();if(Q.length<=5)return Q.join(", ");else return`${Q.slice(0,5).join(", ")}, +${Q.length-5}`}return`${A}`}var dQA="Graphql",cQA=c(dQA,pz,(A)=>lQA(A)),emA=(A={})=>{return{name:dQA,setupOnce(){cQA(lQA(A))}}},uQA=g(emA);function lQA(A){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...A}}var eB=m(jA(),1);var pQA="messaging.batch.message_count",iz="messaging.destination.name",xG="messaging.destination.partition.id",oz="messaging.kafka.message.key",nz="messaging.kafka.message.tombstone",iQA="messaging.kafka.offset",sz="messaging.operation.name",az="messaging.operation.type",rz="messaging.system",tz="process",hU="receive",oQA="send",ez="kafka",nQA="error.type",sQA="_OTHER";var A$=m(AA(),1);var AdA="auto.kafkajs.otel.producer",QdA="auto.kafkajs.otel.consumer";function xU(A,Q){let B=A?.[Q];if(B==null)return;return Array.isArray(B)?B[0]?.toString():B.toString()}function aQA(A){let Q=xU(A,"sentry-trace");if(!Q)return;let{traceId:B,parentSpanId:I,sampled:C}=CE(Q,xU(A,"baggage"));if(!I)return;return[{context:{traceId:B,spanId:I,isRemote:!0,traceFlags:C?A$.TraceFlags.SAMPLED:A$.TraceFlags.NONE}}]}function jX({topic:A,message:Q,operationType:B,links:I,attributes:C}){let E=B===hU?"poll":B;return s({name:`${E} ${A}`,kind:B===hU?GA.CLIENT:GA.CONSUMER,links:I,attributes:{...C,[rz]:ez,[iz]:A,[az]:B,[sz]:E,[oz]:Q?.key?String(Q.key):void 0,[nz]:Q?.key&&Q.value===null?!0:void 0,[iQA]:Q?.offset,...Q?{[O]:QdA}:{}}})}function Q$(A,Q){let B=s({name:`send ${A}`,kind:GA.PRODUCER,attributes:{[rz]:ez,[iz]:A,[oz]:Q.key?String(Q.key):void 0,[nz]:Q.key&&Q.value===null?!0:void 0,[xG]:Q.partition!==void 0?String(Q.partition):void 0,[sz]:"send",[az]:oQA,[O]:AdA}});Q.headers=Q.headers??{};let I=oB({span:B});if(I["sentry-trace"])Q.headers["sentry-trace"]=I["sentry-trace"];if(I.baggage)Q.headers.baggage=I.baggage;return B}function ZJ(A,Q){return Promise.resolve(Q).catch((B)=>{let I,C=sQA;if(typeof B==="string"||B===void 0)I=B;else if(typeof B==="object"&&Object.prototype.hasOwnProperty.call(B,"message"))I=B.message,C=B.constructor.name;throw A.forEach((E)=>{E.setAttribute(nQA,C),E.setStatus({code:k,message:I})}),B}).finally(()=>{A.forEach((B)=>B.end())})}var BdA="@sentry/instrumentation-kafkajs";class B$ extends eB.InstrumentationBase{constructor(A={}){super(BdA,h,A)}init(){let A=(B)=>{if(eB.isWrapped(B?.Kafka?.prototype.producer))this._unwrap(B.Kafka.prototype,"producer");if(eB.isWrapped(B?.Kafka?.prototype.consumer))this._unwrap(B.Kafka.prototype,"consumer")};return new eB.InstrumentationNodeModuleDefinition("kafkajs",[">=0.3.0 <3"],(B)=>{return A(B),this._wrap(B?.Kafka?.prototype,"producer",this._getProducerPatch()),this._wrap(B?.Kafka?.prototype,"consumer",this._getConsumerPatch()),B},A)}_getConsumerPatch(){let A=this;return(Q)=>{return function(...I){let C=Q.apply(this,I);if(eB.isWrapped(C.run))A._unwrap(C,"run");return A._wrap(C,"run",A._getConsumerRunPatch()),C}}}_getProducerPatch(){let A=this;return(Q)=>{return function(...I){let C=Q.apply(this,I);if(eB.isWrapped(C.sendBatch))A._unwrap(C,"sendBatch");if(A._wrap(C,"sendBatch",A._getSendBatchPatch()),eB.isWrapped(C.send))A._unwrap(C,"send");if(A._wrap(C,"send",A._getSendPatch()),eB.isWrapped(C.transaction))A._unwrap(C,"transaction");return A._wrap(C,"transaction",A._getProducerTransactionPatch()),C}}}_getConsumerRunPatch(){let A=this;return(Q)=>{return function(...I){let C=I[0];if(C?.eachMessage){if(eB.isWrapped(C.eachMessage))A._unwrap(C,"eachMessage");A._wrap(C,"eachMessage",A._getConsumerEachMessagePatch())}if(C?.eachBatch){if(eB.isWrapped(C.eachBatch))A._unwrap(C,"eachBatch");A._wrap(C,"eachBatch",A._getConsumerEachBatchPatch())}return Q.call(this,C)}}}_getConsumerEachMessagePatch(){return(A)=>{return function(...B){let I=B[0],C=xU(I.message.headers,"sentry-trace"),E=xU(I.message.headers,"baggage");return EE({sentryTrace:C,baggage:E},()=>{let Y=jX({topic:I.topic,message:I.message,operationType:tz,attributes:{[xG]:String(I.partition)}}),J=EA(Y,()=>{return A.apply(this,B)});return ZJ([Y],J)})}}}_getConsumerEachBatchPatch(){return(A)=>{return function(...B){let I=B[0],C=mF(()=>jX({topic:I.batch.topic,message:void 0,operationType:hU,attributes:{[pQA]:I.batch.messages.length,[xG]:String(I.batch.partition)}}));return EA(C,()=>{let E=[C];I.batch.messages.forEach((J)=>{E.push(jX({topic:I.batch.topic,message:J,operationType:tz,links:aQA(J.headers),attributes:{[xG]:String(I.batch.partition)}}))});let Y=A.apply(this,B);return ZJ(E,Y)})}}}_getProducerTransactionPatch(){let A=this;return(Q)=>{return function(...I){let C=s({name:"transaction"}),E=Q.apply(this,I);return E.then((Y)=>{let J=Y.send;Y.send=function(...U){return EA(C,()=>{return A._getSendPatch()(J).apply(this,U).catch((w)=>{throw C.setStatus({code:k,message:w?.message}),w})})};let F=Y.sendBatch;Y.sendBatch=function(...U){return EA(C,()=>{return A._getSendBatchPatch()(F).apply(this,U).catch((w)=>{throw C.setStatus({code:k,message:w?.message}),w})})};let G=Y.commit;Y.commit=function(...U){let W=G.apply(this,U).then(()=>{C.setStatus({code:AE})});return ZJ([C],W)};let D=Y.abort;Y.abort=function(...U){let W=D.apply(this,U);return ZJ([C],W)}}).catch((Y)=>{C.setStatus({code:k,message:Y?.message}),C.end()}),E}}}_getSendBatchPatch(){return(A)=>{return function(...B){let C=B[0].topicMessages||[],E=[];C.forEach((J)=>{J.messages.forEach((F)=>{E.push(Q$(J.topic,F))})});let Y=A.apply(this,B);return ZJ(E,Y)}}}_getSendPatch(){return(A)=>{return function(...B){let I=B[0],C=I.messages.map((Y)=>{return Q$(I.topic,Y)}),E=A.apply(this,B);return ZJ(C,E)}}}}var rQA="Kafka",tQA=c(rQA,()=>new B$),IdA=()=>{return{name:rQA,setupOnce(){tQA()}}},eQA=g(IdA);var RX=m(jA(),1);var CdA="@sentry/instrumentation-lru-memoizer";class I$ extends RX.InstrumentationBase{constructor(){super(CdA,h,{})}init(){return[new RX.InstrumentationNodeModuleDefinition("lru-memoizer",[">=1.3 <4"],(A)=>{return Object.assign(function(...B){let I=A.apply(this,B);return function(...C){let E=C.pop(),Y=YA(),J=typeof E==="function"?function(...F){return lA(Y,()=>E.apply(this,F))}:E;return I.apply(this,[...C,J])}},{sync:A.sync})},void 0)]}}var ABA="LruMemoizer",QBA=c(ABA,()=>new I$),EdA=()=>{return{name:ABA,setupOnce(){QBA()}}},BBA=g(EdA);var XB=m(jA(),1);var yC=((A)=>{return A.CREATE_INDEXES="createIndexes",A.FIND_AND_MODIFY="findAndModify",A.IS_MASTER="isMaster",A.COUNT="count",A.AGGREGATE="aggregate",A.UNKNOWN="unknown",A})(yC||{});var IBA="db.connection_string",CBA="db.mongodb.collection",EBA="db.name",C$="db.operation",YBA="db.statement",JBA="db.system",FBA="net.peer.name",GBA="net.peer.port",DBA="mongodb";var YdA="auto.db.otel.mongo";function JdA(A){return JSON.stringify(E$(A))}function E$(A){if(Array.isArray(A))return A.map((Q)=>E$(Q));if(FdA(A)){let Q={};return Object.entries(A).map(([B,I])=>[B,E$(I)]).reduce((B,I)=>{if(DdA(I))B[I[0]]=I[1];return B},Q)}return"?"}function FdA(A){return typeof A==="object"&&A!==null&&!GdA(A)}function GdA(A){return typeof Buffer<"u"&&Buffer.isBuffer(A)}function DdA(A){return Array.isArray(A)}function ZBA(A){if(A.createIndexes!==void 0)return yC.CREATE_INDEXES;else if(A.findandmodify!==void 0)return yC.FIND_AND_MODIFY;else if(A.ismaster!==void 0)return yC.IS_MASTER;else if(A.count!==void 0)return yC.COUNT;else if(A.aggregate!==void 0)return yC.AGGREGATE;else return yC.UNKNOWN}function Y$(A,Q,B,I){let C,E;if(A){let J=typeof A.address==="string"?A.address.split(":"):"";if(J.length===2)C=J[0],E=J[1]}let Y;if(B?.documents&&B.documents[0])Y=B.documents[0];else if(B?.cursors)Y=B.cursors;else Y=B;return UBA(Q.db,Q.collection,C,E,Y,I)}function vU(A,Q,B,I){let C,E;if(Q?.s){if(C=Q.s.options?.host??Q.s.host,E=(Q.s.options?.port??Q.s.port)?.toString(),C==null||E==null){let G=Q.description?.address;if(G){let D=G.split(":");C=D[0],E=D[1]}}}let[Y,J]=A.toString().split("."),F=B?.query??B?.q??B;return UBA(Y,J,C,E,F,I)}function UBA(A,Q,B,I,C,E){let Y={[O]:YdA,[JBA]:DBA,[EBA]:A,[CBA]:Q,[C$]:E,[IBA]:`mongodb://${B}:${I}/${A}`};if(B&&I){Y[FBA]=B;let J=parseInt(I,10);if(!isNaN(J))Y[GBA]=J}if(C)try{Y[YBA]=JdA(C)}catch{}return Y}function UJ(A){return s({name:`mongodb.${A[C$]||"command"}`,kind:GA.CLIENT,attributes:A})}function WJ(A,Q){let B=VA(),I=!1;return function(...E){if(!I){I=!0;let Y=E[0];if(A){if(Y instanceof Error)A.setStatus({code:k,message:Y.message});A.end()}}return EA(B??null,()=>Q.apply(this,E))}}function wJ(){return!VA()}function qX(A){return(Q)=>{return function(I,C,E,Y,J){let F=typeof Y==="function"?Y:J;if(wJ()||typeof F!=="function"||typeof E!=="object")if(typeof Y==="function")return Q.call(this,I,C,E,Y);else return Q.call(this,I,C,E,Y,J);let G=UJ(vU(C,I,E[0],A)),D=WJ(G,F);if(typeof Y==="function")return Q.call(this,I,C,E,D);else return Q.call(this,I,C,E,Y,D)}}}function WBA(){return(A)=>{return function(B,I,C,E,Y){let J=typeof E==="function"?E:Y;if(wJ()||typeof J!=="function"||typeof C!=="object")if(typeof E==="function")return A.call(this,B,I,C,E);else return A.call(this,B,I,C,E,Y);let F=ZBA(C),G=F===yC.UNKNOWN?void 0:F,D=UJ(vU(I,B,C,G)),Z=WJ(D,J);if(typeof E==="function")return A.call(this,B,I,C,Z);else return A.call(this,B,I,C,E,Z)}}}function wBA(){return(A)=>{return function(B,I,C,E){let Y=E,J=Object.keys(I)[0];if(typeof I!=="object"||I.ismaster||I.hello)return A.call(this,B,I,C,E);let F=void 0;if(!wJ())F=UJ(Y$(this,B,I,J));let G=WJ(F,Y);return A.call(this,B,I,C,G)}}}function XBA(){return(A)=>{return function(...B){let[I,C]=B,E=Object.keys(C)[0],Y=()=>{return};if(typeof C!=="object"||C.ismaster||C.hello)return A.apply(this,B);let J=void 0;if(!wJ())J=UJ(Y$(this,I,C,E));let F=WJ(J,Y),G=A.apply(this,B);return G.then((D)=>F(null,D),(D)=>F(D)),G}}}function VBA(){return(A)=>{return function(B,I,C,E,Y,J){let F=typeof Y==="function"?Y:J;if(wJ()||typeof F!=="function"||typeof C!=="object")if(typeof Y==="function")return A.call(this,B,I,C,E,Y);else return A.call(this,B,I,C,E,Y,J);let G=UJ(vU(I,B,C,"find")),D=WJ(G,F);if(typeof Y==="function")return A.call(this,B,I,C,E,D);else return A.call(this,B,I,C,E,Y,D)}}}function KBA(){return(A)=>{return function(B,I,C,E,Y,J){let F=typeof Y==="function"?Y:J;if(wJ()||typeof F!=="function")if(typeof Y==="function")return A.call(this,B,I,C,E,Y);else return A.call(this,B,I,C,E,Y,J);let G=UJ(vU(I,B,C.cmd,"getMore")),D=WJ(G,F);if(typeof Y==="function")return A.call(this,B,I,C,E,D);else return A.call(this,B,I,C,E,Y,D)}}}function zBA(){return(A)=>{return function(B){let I=VA();return A.call(this,function(...C){return EA(I??null,()=>B.apply(this,C))})}}}var ZdA="@sentry/instrumentation-mongodb";class J$ extends XB.InstrumentationBase{constructor(A={}){super(ZdA,h,A)}init(){let{v3PatchConnection:A,v3UnpatchConnection:Q}=this._getV3ConnectionPatches(),{v4PatchConnectionCallback:B,v4PatchConnectionPromise:I,v4UnpatchConnection:C}=this._getV4ConnectionPatches(),{v4PatchConnectionPool:E,v4UnpatchConnectionPool:Y}=this._getV4ConnectionPoolPatches();return[new XB.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new zA("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],A,Q)]),new XB.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <8"],void 0,void 0,[new zA("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],B,C),new zA("mongodb/lib/cmap/connection.js",[">=6.4.0 <8"],I,C),new zA("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],E,Y)])]}_getV3ConnectionPatches(){return{v3PatchConnection:(A)=>{if(XB.isWrapped(A.insert))this._unwrap(A,"insert");if(this._wrap(A,"insert",qX("insert")),XB.isWrapped(A.remove))this._unwrap(A,"remove");if(this._wrap(A,"remove",qX("remove")),XB.isWrapped(A.update))this._unwrap(A,"update");if(this._wrap(A,"update",qX("update")),XB.isWrapped(A.command))this._unwrap(A,"command");if(this._wrap(A,"command",WBA()),XB.isWrapped(A.query))this._unwrap(A,"query");if(this._wrap(A,"query",VBA()),XB.isWrapped(A.getMore))this._unwrap(A,"getMore");return this._wrap(A,"getMore",KBA()),A},v3UnpatchConnection:(A)=>{if(A===void 0)return;this._unwrap(A,"insert"),this._unwrap(A,"remove"),this._unwrap(A,"update"),this._unwrap(A,"command"),this._unwrap(A,"query"),this._unwrap(A,"getMore")}}}_getV4ConnectionPoolPatches(){return{v4PatchConnectionPool:(A)=>{let Q=A.ConnectionPool.prototype;if(XB.isWrapped(Q.checkOut))this._unwrap(Q,"checkOut");return this._wrap(Q,"checkOut",zBA()),A},v4UnpatchConnectionPool:(A)=>{if(A===void 0)return;this._unwrap(A.ConnectionPool.prototype,"checkOut")}}}_getV4ConnectionPatches(){return{v4PatchConnectionCallback:(A)=>{if(XB.isWrapped(A.Connection.prototype.command))this._unwrap(A.Connection.prototype,"command");return this._wrap(A.Connection.prototype,"command",wBA()),A},v4PatchConnectionPromise:(A)=>{if(XB.isWrapped(A.Connection.prototype.command))this._unwrap(A.Connection.prototype,"command");return this._wrap(A.Connection.prototype,"command",XBA()),A},v4UnpatchConnection:(A)=>{if(A===void 0)return;this._unwrap(A.Connection.prototype,"command")}}}}var $BA="Mongo",HBA=c($BA,()=>new J$),UdA=()=>{return{name:$BA,setupOnce(){HBA()}}},MBA=g(UdA);var OX=m(jA(),1);var LBA="db.mongodb.collection",NBA="db.name",jBA="db.operation",RBA="db.system",qBA="db.user",PBA="net.peer.name",OBA="net.peer.port";function kBA(A){return{[LBA]:A.name,[NBA]:A.conn.name,[qBA]:A.conn.user,[PBA]:A.conn.host,[OBA]:A.conn.port}}function gBA(A,Q){A.setStatus({code:k,message:`${Q.message} ${Q.code?` +Mongoose Error Code: ${Q.code}`:""}`})}function TBA(A,Q){if(!(A instanceof Promise))return Q.end(),A;return A.catch((B)=>{throw gBA(Q,B),B}).finally(()=>Q.end())}function _BA(A,Q,B,I,C){let E=0;if(C.length===2)E=1;else if(C.length===3)E=2;return C[E]=(Y,J)=>{if(Y)gBA(I,Y);return I.end(),A(Y,J)},Q.apply(B,C)}var WdA="@sentry/instrumentation-mongoose",wdA="auto.db.otel.mongoose",kX=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],XdA=["remove","count","findOneAndRemove",...kX],VdA=["count","findOneAndRemove",...kX],KdA=[...kX];function yBA(A){if(!A)return kX;else if(A.startsWith("6.")||A.startsWith("5."))return XdA;else if(A.startsWith("7."))return VdA;else return KdA}function SBA(A){return A&&(A.startsWith("5.")||A.startsWith("6."))||!1}function fBA(A){if(!A||!A.startsWith("8."))return!1;return parseInt(A.split(".")[1],10)>=21}var PX=Symbol("stored-parent-span"),hBA=Symbol("already-instrumented");class F$ extends OX.InstrumentationBase{constructor(A={}){super(WdA,h,A)}init(){return new OX.InstrumentationNodeModuleDefinition("mongoose",[">=5.9.7 <10"],this.patch.bind(this),this.unpatch.bind(this))}patch(A,Q){let B=A[Symbol.toStringTag]==="Module"&&A.default?A.default:A;if(this._wrap(B.Model.prototype,"save",this.patchOnModelMethods("save")),B.Model.prototype.$save=B.Model.prototype.save,SBA(Q))this._wrap(B.Model.prototype,"remove",this.patchOnModelMethods("remove"));if(fBA(Q))this._wrap(B.Model.prototype,"updateOne",this._patchDocumentUpdateMethods("updateOne")),this._wrap(B.Model.prototype,"deleteOne",this._patchDocumentUpdateMethods("deleteOne"));return this._wrap(B.Query.prototype,"exec",this.patchQueryExec()),this._wrap(B.Aggregate.prototype,"exec",this.patchAggregateExec()),yBA(Q).forEach((C)=>{this._wrap(B.Query.prototype,C,this.patchAndCaptureSpanContext(C))}),this._wrap(B.Model,"aggregate",this.patchModelAggregate()),this._wrap(B.Model,"insertMany",this.patchModelStatic("insertMany")),this._wrap(B.Model,"bulkWrite",this.patchModelStatic("bulkWrite")),B}unpatch(A,Q){let B=A[Symbol.toStringTag]==="Module"&&A.default?A.default:A,I=yBA(Q);if(this._unwrap(B.Model.prototype,"save"),B.Model.prototype.$save=B.Model.prototype.save,SBA(Q))this._unwrap(B.Model.prototype,"remove");if(fBA(Q))this._unwrap(B.Model.prototype,"updateOne"),this._unwrap(B.Model.prototype,"deleteOne");this._unwrap(B.Query.prototype,"exec"),this._unwrap(B.Aggregate.prototype,"exec"),I.forEach((C)=>{this._unwrap(B.Query.prototype,C)}),this._unwrap(B.Model,"aggregate"),this._unwrap(B.Model,"insertMany"),this._unwrap(B.Model,"bulkWrite")}patchAggregateExec(){let A=this;return(Q)=>{return function(I){let C=this[PX],E=A._startSpan(this._model.collection,this._model?.modelName,"aggregate",C);return A._handleResponse(E,Q,this,arguments,I)}}}patchQueryExec(){let A=this;return(Q)=>{return function(I){if(this[hBA])return Q.apply(this,arguments);let C=this[PX],E=A._startSpan(this.mongooseCollection,this.model.modelName,this.op,C);return A._handleResponse(E,Q,this,arguments,I)}}}patchOnModelMethods(A){let Q=this;return(B)=>{return function(C,E){let Y=Q._startSpan(this.constructor.collection,this.constructor.modelName,A);if(C instanceof Function)E=C;return Q._handleResponse(Y,B,this,arguments,E)}}}_patchDocumentUpdateMethods(A){let Q=this;return(B)=>{return function(C,E,Y){let J=Y;if(typeof C==="function")J=C;else if(typeof E==="function")J=E;let F=Q._startSpan(this.constructor.collection,this.constructor.modelName,A),G=Q._handleResponse(F,B,this,arguments,J);if(G&&typeof G==="object")G[hBA]=!0;return G}}}patchModelStatic(A){let Q=this;return(B)=>{return function(C,E,Y){if(typeof E==="function")Y=E;let J=Q._startSpan(this.collection,this.modelName,A);return Q._handleResponse(J,B,this,arguments,Y)}}}patchModelAggregate(){return(A)=>{return function(){let B=VA(),I=A.apply(this,arguments);if(I)I[PX]=B;return I}}}patchAndCaptureSpanContext(A){return(Q)=>{return function(){return this[PX]=VA(),Q.apply(this,arguments)}}}_startSpan(A,Q,B,I){let C={...kBA(A),[jBA]:B,[RBA]:"mongoose",[O]:wdA};return s({name:`mongoose.${Q}.${B}`,kind:GA.CLIENT,attributes:C,parentSpan:I})}_handleResponse(A,Q,B,I,C){return EA(A,()=>{if(C instanceof Function)return _BA(C,Q,B,A,I);else{let E=Q.apply(B,I);return TBA(E,A)}})}}var xBA="Mongoose",vBA=c(xBA,()=>new F$),zdA=()=>{return{name:xBA,setupOnce(){vBA()}}},bBA=g(zdA);var jE=m(jA(),1);var mBA="db.connection_string",dBA="db.name",cBA="db.statement",uBA="db.system",lBA="db.user",pBA="net.peer.name",iBA="net.peer.port",oBA="mysql";function nBA(A){let Q=A?.connectionConfig||A||{},{host:B,port:I,database:C,user:E}=Q;return{host:B,port:I,database:C,user:E}}function sBA(A,Q,B){let I=`jdbc:mysql://${A||"localhost"}`;if(typeof Q==="number")I+=`:${Q}`;if(typeof B==="string")I+=`/${B}`;return I}function aBA(A){if(typeof A==="string")return A;else return A.sql}function rBA(A){let Q=typeof A==="object"?A.sql:A,B=Q?.indexOf(" ");if(typeof B==="number"&&B!==-1)return Q?.substring(0,B);return Q}var $dA="@sentry/instrumentation-mysql",HdA="auto.db.otel.mysql";class G$ extends jE.InstrumentationBase{constructor(A={}){super($dA,h,A)}init(){return[new jE.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],(A)=>{if(jE.isWrapped(A.createConnection))this._unwrap(A,"createConnection");if(this._wrap(A,"createConnection",this._patchCreateConnection()),jE.isWrapped(A.createPool))this._unwrap(A,"createPool");if(this._wrap(A,"createPool",this._patchCreatePool()),jE.isWrapped(A.createPoolCluster))this._unwrap(A,"createPoolCluster");return this._wrap(A,"createPoolCluster",this._patchCreatePoolCluster()),A},(A)=>{if(A===void 0)return;this._unwrap(A,"createConnection"),this._unwrap(A,"createPool"),this._unwrap(A,"createPoolCluster")})]}_patchCreateConnection(){return(A)=>{let Q=this;return function(I){let C=A(...arguments);return Q._wrap(C,"query",Q._patchQuery(C)),C}}}_patchCreatePool(){return(A)=>{let Q=this;return function(I){let C=A(...arguments);return Q._wrap(C,"query",Q._patchQuery(C)),Q._wrap(C,"getConnection",Q._patchGetConnection(C)),C}}}_patchCreatePoolCluster(){return(A)=>{let Q=this;return function(I){let C=A(...arguments);return Q._wrap(C,"getConnection",Q._patchGetConnection(C)),C}}}_patchGetConnection(A){return(Q)=>{let B=this;return function(C,E,Y){if(!B._enabled)return B._unwrap(A,"getConnection"),Q.apply(A,arguments);if(arguments.length===1&&typeof C==="function"){let J=B._getConnectionCallbackPatchFn(C);return Q.call(A,J)}if(arguments.length===2&&typeof E==="function"){let J=B._getConnectionCallbackPatchFn(E);return Q.call(A,C,J)}if(arguments.length===3&&typeof Y==="function"){let J=B._getConnectionCallbackPatchFn(Y);return Q.call(A,C,E,J)}return Q.apply(A,arguments)}}}_getConnectionCallbackPatchFn(A){let Q=this,B=YA();return function(I,C){if(C){if(!jE.isWrapped(C.query))Q._wrap(C,"query",Q._patchQuery(C))}if(typeof A==="function")lA(B,()=>A.call(this,I,C))}}_patchQuery(A){return(Q)=>{let B=this;return function(I,C,E){if(!B._enabled)return B._unwrap(A,"query"),Q.apply(A,arguments);let{host:Y,port:J,database:F,user:G}=nBA(A.config),D=parseInt(String(J),10),Z={[O]:HdA,[uBA]:oBA,[mBA]:sBA(Y,J,F),[dBA]:F,[lBA]:G,[cBA]:aBA(I),[pBA]:Y};if(!isNaN(D))Z[iBA]=D;let U=s({name:rBA(I),kind:GA.CLIENT,attributes:Z}),W=Array.from(arguments).findIndex((K)=>typeof K==="function"),w=YA();if(W===-1){let K=EA(U,()=>{return Q.apply(A,arguments)});return zZ(K,w),K.on("error",(X)=>{U.setStatus({code:k,message:X.message})}).on("end",()=>{U.end()})}else return B._wrap(arguments,W,B._patchCallbackQuery(U,w)),EA(U,()=>{return Q.apply(A,arguments)})}}}_patchCallbackQuery(A,Q){return(B)=>{return function(I,C,E){if(I)A.setStatus({code:k,message:I.message});return A.end(),lA(Q,()=>B(...arguments))}}}}var tBA="Mysql",eBA=c(tBA,()=>new G$({})),MdA=()=>{return{name:tBA,setupOnce(){eBA()}}},AIA=g(MdA);var XJ=m(jA(),1);var QIA="db.connection_string",BIA="db.name",IIA="db.statement",CIA="db.system",EIA="db.user",YIA="net.peer.name",JIA="net.peer.port",FIA="mysql";function GIA(A){let{host:Q,port:B,database:I,user:C}=LdA(A),E={[QIA]:NdA(Q,B,I),[BIA]:I,[EIA]:C,[YIA]:Q},Y=parseInt(B,10);if(!isNaN(Y))E[JIA]=Y;return E}function LdA(A){let{host:Q,port:B,database:I,user:C}=A?.connectionConfig||A||{};return{host:Q,port:B,database:I,user:C}}function NdA(A,Q,B){let I=`jdbc:mysql://${A||"localhost"}`;if(typeof Q==="number")I+=`:${Q}`;if(typeof B==="string")I+=`/${B}`;return I}function DIA(A,Q,B){let[I,C]=typeof A==="string"?[A,B]:[A.sql,jdA(A)?B||A.values:B];try{if(Q&&C)return Q(I,C);else return I}catch{return"Could not determine the query due to an error in formatting"}}function jdA(A){return"values"in A}function ZIA(A){let Q=typeof A==="object"?A.sql:A,B=Q?.indexOf(" ");if(typeof B==="number"&&B!==-1)return Q?.substring(0,B);return Q}var UIA=(A)=>{let Q=!1;return(...B)=>{if(Q)return;return Q=!0,A(...B)}};function D$(A){let Q=A.prototype,B=Object.getPrototypeOf(Q);if(typeof B?.query==="function"&&typeof B?.execute==="function")return B;return Q}var RdA="@sentry/instrumentation-mysql2",qdA="auto.db.otel.mysql2",Z$=[">=1.4.2 <4"];class U$ extends XJ.InstrumentationBase{constructor(A={}){super(RdA,h,A)}init(){let A;function Q(C){if(!A&&C.format)A=C.format}let B=(C)=>{if(XJ.isWrapped(C.query))this._unwrap(C,"query");if(this._wrap(C,"query",this._patchQuery(A)),XJ.isWrapped(C.execute))this._unwrap(C,"execute");this._wrap(C,"execute",this._patchQuery(A))},I=(C)=>{this._unwrap(C,"query"),this._unwrap(C,"execute")};return[new XJ.InstrumentationNodeModuleDefinition("mysql2",Z$,(C)=>{return Q(C),C},()=>{},[new zA("mysql2/promise.js",Z$,(C)=>{return Q(C),C},()=>{}),new zA("mysql2/lib/connection.js",Z$,(C)=>{let E=D$(C);return B(E),C},(C)=>{if(C===void 0)return;let E=D$(C);I(E)})])]}_patchQuery(A){let Q=this;return(B)=>{return function(I,C,E){let Y;if(Array.isArray(C))Y=C;else if(arguments[2])Y=[C];let J={...GIA(this.config),[CIA]:FIA,[IIA]:DIA(I,A,Y),[O]:qdA},F=s({name:ZIA(I),kind:GA.CLIENT,attributes:J}),G=UIA((D)=>{if(D)F.setStatus({code:k,message:D.message});F.end()});if(arguments.length===1){if(typeof I.onResult==="function")Q._wrap(I,"onResult",Q._patchCallbackQuery(G));let D=B.apply(this,arguments);return D.once("error",(Z)=>{G(Z)}).once("result",()=>{G()}),D}if(typeof arguments[1]==="function")Q._wrap(arguments,1,Q._patchCallbackQuery(G));else if(typeof arguments[2]==="function")Q._wrap(arguments,2,Q._patchCallbackQuery(G));return B.apply(this,arguments)}}}_patchCallbackQuery(A){return(Q)=>{return function(...B){return A(B[0]),Q(...B)}}}}var WIA="Mysql2",wIA=c(WIA,()=>new U$),PdA=()=>{return{name:WIA,setupOnce(){wIA()}}},XIA=g(PdA);import*as z$ from"node:diagnostics_channel";var OdA=["get","set","setex"],W$=["get","mget"],kdA=["set","setex"];function bU(A,Q){return A.includes(Q.toLowerCase())}function w$(A){if(bU(W$,A))return"cache.get";else if(bU(kdA,A))return"cache.put";else return}function gdA(A,Q){return Q.some((B)=>A.startsWith(B))}function KIA(A,Q){try{if(Q.length===0)return;let B=(C)=>{if(typeof C==="string"||typeof C==="number"||Buffer.isBuffer(C))return[C.toString()];else if(Array.isArray(C))return VIA(C.map((E)=>B(E)));else return[""]},I=Q[0];if(bU(OdA,A)&&I!=null)return B(I);return VIA(Q.map((C)=>B(C)))}catch{return}}function zIA(A,Q,B){if(!w$(A))return!1;for(let I of Q)if(gdA(I,B))return!0;return!1}function $IA(A){let Q=(B)=>{try{if(Buffer.isBuffer(B))return B.byteLength;else if(typeof B==="string")return B.length;else if(typeof B==="number")return B.toString().length;else if(B===null||B===void 0)return 0;return JSON.stringify(B).length}catch{return}};return Array.isArray(A)?A.reduce((B,I)=>{let C=Q(I);return typeof C==="number"?B!==void 0?B+C:C:B},0):Q(A)}function VIA(A){let Q=[],B=(I)=>{I.forEach((C)=>{if(Array.isArray(C))B(C);else Q.push(C)})};return B(A),Q}var KJ=m(jA(),1);var TdA=[{regex:/^ECHO/i,args:0},{regex:/^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,args:1},{regex:/^(HSET|HMSET|LSET|LINSERT)/i,args:2},{regex:/^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,args:-1}],mU=(A,Q)=>{if(Array.isArray(Q)&&Q.length){let B=TdA.find(({regex:C})=>C.test(A))?.args??0,I=B>=0?Q.slice(0,B):Q.slice();if(Q.length>I.length)I.push(`[${Q.length-B} other arguments]`);return`${A} ${I.join(" ")}`}return A};var vG="db.connection_string",bG="db.statement",mG="db.system",dG="net.peer.name",cG="net.peer.port",uG="redis";var _dA="@sentry/instrumentation-ioredis",HIA="auto.db.otel.redis",ydA=[">=2.0.0 <5.11.0"];function VJ(A,Q){if(Q)A.setStatus({code:k,message:Q.message});A.end()}class X$ extends KJ.InstrumentationBase{constructor(A={}){super(_dA,h,A)}init(){return[new KJ.InstrumentationNodeModuleDefinition("ioredis",ydA,(A)=>{let Q=A[Symbol.toStringTag]==="Module"&&A.default?A.default:A;if(KJ.isWrapped(Q.prototype.sendCommand))this._unwrap(Q.prototype,"sendCommand");if(this._wrap(Q.prototype,"sendCommand",this._patchSendCommand()),KJ.isWrapped(Q.prototype.connect))this._unwrap(Q.prototype,"connect");return this._wrap(Q.prototype,"connect",this._patchConnection()),A},(A)=>{if(A===void 0)return;let Q=A[Symbol.toStringTag]==="Module"&&A.default?A.default:A;this._unwrap(Q.prototype,"sendCommand"),this._unwrap(Q.prototype,"connect")})]}_patchSendCommand(){let A=this;return(Q)=>{return function(...B){let I=B[0];if(B.length<1||typeof I!=="object"||!VA())return Q.apply(this,B);let{host:C,port:E}=this.options,Y={[mG]:uG,[bG]:mU(I.name,I.args),[vG]:`redis://${C}:${E}`,[dG]:C,[cG]:E,[O]:HIA},J=s({name:I.name,kind:GA.CLIENT,attributes:Y});try{let F=Q.apply(this,B),G=I.resolve;I.resolve=function(Z){A._callResponseHook(J,I,Z),VJ(J,null),G(Z)};let D=I.reject;return I.reject=function(Z){VJ(J,Z),D(Z)},F}catch(F){throw VJ(J,F),F}}}}_patchConnection(){return(A)=>{return function(...Q){if(!VA())return A.apply(this,Q);let{host:B,port:I}=this.options,C={[mG]:uG,[bG]:"connect",[vG]:`redis://${B}:${I}`,[dG]:B,[cG]:I,[O]:HIA},E=s({name:"connect",kind:GA.CLIENT,attributes:C});try{let Y=A.apply(this,Q);if(Y instanceof Promise)return Y.then((J)=>{return VJ(E,null),J},(J)=>{return VJ(E,J),Promise.reject(J)});return VJ(E,null),Y}catch(Y){throw VJ(E,Y),Y}}}}_callResponseHook(A,Q,B){let{responseHook:I}=this.getConfig();if(!I)return;try{I(A,Q.name,Q.args,B)}catch{}}}var aA=m(jA(),1);var V$="@sentry/instrumentation-redis",NIA="auto.db.otel.redis",dU=Symbol("opentelemetry.instrumentation.redis.open_spans"),MIA=Symbol("opentelemetry.instrumentation.redis.multi_command_options");function gX(A,Q){if(Q)A.setStatus({code:k,message:Q.message});A.end()}function jIA(A,Q,B,I,C){if(!A)return;try{A(Q,B,I,C)}catch{}}function SdA(A){if(typeof A!=="string"||!A)return;try{let Q=new URL(A);return Q.searchParams.delete("user_pwd"),Q.username="",Q.password="",Q.href}catch(Q){_A&&H.error("failed to sanitize redis connection url",Q)}return}function LIA(A){return{[mG]:uG,[dG]:A?.socket?.host,[cG]:A?.socket?.port,[vG]:SdA(A?.url),[O]:NIA}}var RIA=class A extends aA.InstrumentationBase{constructor(Q={}){super(V$,h,Q)}init(){return[new aA.InstrumentationNodeModuleDefinition("redis",[">=2.6.0 <4"],(Q)=>{if(aA.isWrapped(Q.RedisClient.prototype.internal_send_command))this._unwrap(Q.RedisClient.prototype,"internal_send_command");return this._wrap(Q.RedisClient.prototype,"internal_send_command",this._getPatchInternalSendCommand()),Q},(Q)=>{if(Q===void 0)return;this._unwrap(Q.RedisClient.prototype,"internal_send_command")})]}_getPatchInternalSendCommand(){let Q=this;return function(I){return function(E){if(arguments.length!==1||typeof E!=="object")return I.apply(this,arguments);let Y={[mG]:uG,[bG]:mU(E.command,E.args),[O]:NIA};if(this.connection_options)Y[dG]=this.connection_options.host,Y[cG]=this.connection_options.port;if(this.address)Y[vG]=`redis://${this.address}`;let J=s({name:`${A.COMPONENT}-${E.command}`,kind:GA.CLIENT,attributes:Y}),F=arguments[0].callback;if(F){let G=VA();arguments[0].callback=function(Z,U){return jIA(Q.getConfig().responseHook,J,E.command,E.args,U),gX(J,Z),EA(G??null,()=>F.apply(this,arguments))}}try{return I.apply(this,arguments)}catch(G){throw gX(J,G),G}}}}};RIA.COMPONENT="redis";var fdA=RIA,qIA=class A extends aA.InstrumentationBase{constructor(Q={}){super(V$,h,Q)}init(){return[this._getInstrumentationNodeModuleDefinition("@redis/client"),this._getInstrumentationNodeModuleDefinition("@node-redis/client")]}_getInstrumentationNodeModuleDefinition(Q){let B=new zA(`${Q}/dist/lib/commander.js`,["^1.0.0"],(E,Y)=>{let J=E.transformCommandArguments;if(!J)return _A&&H.error("internal instrumentation error, missing transformCommandArguments function"),E;let F=Y?.startsWith("1.0.")?"extendWithCommands":"attachCommands";if(aA.isWrapped(E?.[F]))this._unwrap(E,F);return this._wrap(E,F,this._getPatchExtendWithCommands(J)),E},(E)=>{if(aA.isWrapped(E?.extendWithCommands))this._unwrap(E,"extendWithCommands");if(aA.isWrapped(E?.attachCommands))this._unwrap(E,"attachCommands")}),I=new zA(`${Q}/dist/lib/client/multi-command.js`,["^1.0.0",">=5.0.0 <5.12.0"],(E)=>{let Y=E?.default?.prototype;if(aA.isWrapped(Y?.exec))this._unwrap(Y,"exec");if(this._wrap(Y,"exec",this._getPatchMultiCommandsExec()),aA.isWrapped(Y?.execAsPipeline))this._unwrap(Y,"execAsPipeline");if(this._wrap(Y,"execAsPipeline",this._getPatchMultiCommandsExec()),aA.isWrapped(Y?.addCommand))this._unwrap(Y,"addCommand");return this._wrap(Y,"addCommand",this._getPatchMultiCommandsAddCommand()),E},(E)=>{let Y=E?.default?.prototype;if(aA.isWrapped(Y?.exec))this._unwrap(Y,"exec");if(aA.isWrapped(Y?.execAsPipeline))this._unwrap(Y,"execAsPipeline");if(aA.isWrapped(Y?.addCommand))this._unwrap(Y,"addCommand")}),C=new zA(`${Q}/dist/lib/client/index.js`,["^1.0.0",">=5.0.0 <5.12.0"],(E)=>{let Y=E?.default?.prototype;if(Y?.multi){if(aA.isWrapped(Y?.multi))this._unwrap(Y,"multi");this._wrap(Y,"multi",this._getPatchRedisClientMulti())}if(Y?.MULTI){if(aA.isWrapped(Y?.MULTI))this._unwrap(Y,"MULTI");this._wrap(Y,"MULTI",this._getPatchRedisClientMulti())}if(aA.isWrapped(Y?.sendCommand))this._unwrap(Y,"sendCommand");if(this._wrap(Y,"sendCommand",this._getPatchRedisClientSendCommand()),aA.isWrapped(Y?.connect))this._unwrap(Y,"connect");return this._wrap(Y,"connect",this._getPatchedClientConnect()),E},(E)=>{let Y=E?.default?.prototype;if(aA.isWrapped(Y?.multi))this._unwrap(Y,"multi");if(aA.isWrapped(Y?.MULTI))this._unwrap(Y,"MULTI");if(aA.isWrapped(Y?.sendCommand))this._unwrap(Y,"sendCommand");if(aA.isWrapped(Y?.connect))this._unwrap(Y,"connect")});return new aA.InstrumentationNodeModuleDefinition(Q,["^1.0.0",">=5.0.0 <5.12.0"],(E)=>E,()=>{},[B,I,C])}_getPatchExtendWithCommands(Q){let B=this;return function(C){return function(Y){if(Y?.BaseClass?.name!=="RedisClient")return C.apply(this,arguments);let J=Y.executor;return Y.executor=function(F,G){let D=Q(F,G).args;return B._traceClientCommand(J,this,arguments,D)},C.apply(this,arguments)}}}_getPatchMultiCommandsExec(){let Q=this;return function(I){return function(){let E=I.apply(this,arguments);if(typeof E?.then!=="function")return _A&&H.error("non-promise result when patching exec/execAsPipeline"),E;return E.then((Y)=>{let J=this[dU];return Q._endSpansWithRedisReplies(J,Y),Y}).catch((Y)=>{let J=this[dU];if(!J)_A&&H.error("cannot find open spans to end for multi/pipeline");else{let F=Y.constructor.name==="MultiErrorReply"?Y.replies:Array(J.length).fill(Y);Q._endSpansWithRedisReplies(J,F)}return Promise.reject(Y)})}}}_getPatchMultiCommandsAddCommand(){let Q=this;return function(I){return function(E){return Q._traceClientCommand(I,this,arguments,E)}}}_getPatchRedisClientMulti(){return function(B){return function(){let C=B.apply(this,arguments);return C[MIA]=this.options,C}}}_getPatchRedisClientSendCommand(){let Q=this;return function(I){return function(E){return Q._traceClientCommand(I,this,arguments,E)}}}_getPatchedClientConnect(){return function(B){return function(){let C=LIA(this.options),E=s({name:`${A.COMPONENT}-connect`,kind:GA.CLIENT,attributes:C});return EA(E,()=>B.apply(this)).then((J)=>{return E.end(),J},(J)=>{return gX(E,J),Promise.reject(J)})}}}_traceClientCommand(Q,B,I,C){let E=B.options||B[MIA],Y=C[0],J=C.slice(1),F=LIA(E),G=mU(Y,J);if(G!=null)F[bG]=G;let D=s({name:`${A.COMPONENT}-${Y}`,kind:GA.CLIENT,attributes:F}),Z=EA(D,()=>Q.apply(B,I));if(Z instanceof Promise)Z.then((U)=>{this._endSpanWithResponse(D,Y,J,U,void 0)},(U)=>{this._endSpanWithResponse(D,Y,J,null,U)});else{let U=Z;U[dU]=U[dU]||[],U[dU].push({span:D,commandName:Y,commandArgs:J})}return Z}_endSpansWithRedisReplies(Q,B){if(!Q){_A&&H.error("cannot find open spans to end for redis multi/pipeline");return}if(B.length!==Q.length){_A&&H.error("number of multi command spans does not match response from redis");return}for(let I=0;I{let C=KIA(Q,B),E=w$(Q);if(!C||!E||!cU.cachePrefixes||!zIA(Q,C,cU.cachePrefixes))return;let Y=r(A).data,J=Y["net.peer.name"]??Y["server.address"],F=Y["net.peer.port"]??Y["server.port"];if(F&&J)A.setAttributes({"network.peer.address":J,"network.peer.port":F});let G=$IA(I);if(G)A.setAttribute(h5,G);if(bU(W$,Q)&&G!==void 0)A.setAttribute(S5,G>0);A.setAttributes({[l]:E,[f5]:C});let D=C.join(", ");A.updateName(cU.maxCacheKeyLength?rE(D,cU.maxCacheKeyLength):D)},xdA=c(`${TX}.IORedis`,()=>{return new X$({responseHook:$$})}),vdA=c(`${TX}.Redis`,()=>{return new K$({responseHook:$$})}),PIA=Object.assign(()=>{if(xdA(),vdA(),z$.tracingChannel)lF(()=>{_z(z$.tracingChannel,$$)})},{id:TX}),bdA=(A={})=>{return{name:TX,setupOnce(){cU=A,PIA()}}},OIA=g(bdA);var LI=m(jA(),1);var zJ=((A)=>{return A.QUERY_PREFIX="pg.query",A.CONNECT="pg.connect",A.POOL_CONNECT="pg-pool.connect",A})(zJ||{});var uU=((A)=>{return A.PG_PLAN="db.postgresql.plan",A.IDLE_TIMEOUT_MILLIS="db.postgresql.idle.timeout.millis",A.MAX_CLIENT="db.postgresql.max.client",A})(uU||{});var H$="db.connection_string",M$="db.name",kIA="db.statement",L$="db.system",N$="db.user",j$="net.peer.name",R$="net.peer.port",q$="postgresql";var mdA="auto.db.otel.postgres";function ddA(A,Q){if(!Q)return zJ.QUERY_PREFIX;let B=typeof Q.name==="string"&&Q.name?Q.name:cdA(Q.text);return`${zJ.QUERY_PREFIX}:${B}${A?` ${A}`:""}`}function cdA(A){let Q=A.trim(),B=Q.indexOf(" "),I=B===-1?Q:Q.slice(0,B);return I=I.toUpperCase(),I.endsWith(";")?I.slice(0,-1):I}function udA(A){try{let Q=new URL(A);return Q.username="",Q.password="",Q.toString()}catch{return"postgresql://localhost:5432/"}}function gIA(A){if("connectionString"in A&&A.connectionString)return udA(A.connectionString);let Q=A.host||"localhost",B=A.port||5432,I=A.database||"";return`postgresql://${Q}:${B}/${I}`}function TIA(A){if(Number.isInteger(A))return A;return}function P$(A){return{[L$]:q$,[M$]:A.database,[H$]:gIA(A),[N$]:A.user,[j$]:A.host,[R$]:TIA(A.port)}}function _IA(A){let Q;try{Q=A.connectionString?new URL(A.connectionString):void 0}catch{Q=void 0}return{[uU.IDLE_TIMEOUT_MILLIS]:A.idleTimeoutMillis,[uU.MAX_CLIENT]:A.maxClient,[L$]:q$,[M$]:Q?.pathname.slice(1)??A.database,[H$]:gIA(A),[j$]:Q?.hostname??A.host,[R$]:Number(Q?.port)||TIA(A.port),[N$]:Q?.username??A.user}}function _X(){return VA()===void 0}function yIA(A){let{connectionParameters:Q}=this,B=Q.database,I=ddA(B,A),C=s({name:I,kind:GA.CLIENT,attributes:{...P$(Q),[O]:mdA}});if(!A)return C;if(A.text)C.setAttribute(kIA,A.text);if(typeof A.name==="string")C.setAttribute(uU.PG_PLAN,A.name);return C}function O$(A,Q){return function(I,C){if(I)A.setStatus({code:k,message:I.message});A.end(),Q.call(this,I,C)}}function SIA(A,Q){return function(I,C,E){if(I)A.setStatus({code:k,message:I.message});A.end(),Q.call(this,I,C,E)}}function fIA(A,Q){return function(...I){let C=I[0];if(C instanceof Error)A.setStatus({code:k,message:C.message});A.end(),Q.apply(this,I)}}function yX(A){return typeof A==="object"&&A!==null&&"message"in A?String(A.message):void 0}function hIA(A){return typeof A==="object"&&typeof A?.text==="string"}var ldA="@sentry/instrumentation-pg";function lG(A){return A[Symbol.toStringTag]==="Module"?A.default:A}function SX(A,Q){return function(...B){return EA(A,()=>Q.apply(this,B))}}class k$ extends LI.InstrumentationBase{constructor(A={}){super(ldA,h,A)}init(){let A=[">=8.0.3 <9"],Q=[">=2.0.0 <4"],B=new zA("pg/lib/native/client.js",A,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),I=new zA("pg/lib/client.js",A,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),C=new LI.InstrumentationNodeModuleDefinition("pg",A,(Y)=>{let J=lG(Y);return this._patchPgClient(J.Client),Y},(Y)=>{let J=lG(Y);return this._unpatchPgClient(J.Client),Y},[I,B]),E=new LI.InstrumentationNodeModuleDefinition("pg-pool",Q,(Y)=>{let J=lG(Y);if(LI.isWrapped(J.prototype.connect))this._unwrap(J.prototype,"connect");return this._wrap(J.prototype,"connect",this._getPoolConnectPatch()),J},(Y)=>{let J=lG(Y);if(LI.isWrapped(J.prototype.connect))this._unwrap(J.prototype,"connect")});return[C,E]}_patchPgClient(A){if(!A)return;let Q=lG(A);if(LI.isWrapped(Q.prototype.query))this._unwrap(Q.prototype,"query");if(LI.isWrapped(Q.prototype.connect))this._unwrap(Q.prototype,"connect");return this._wrap(Q.prototype,"query",this._getClientQueryPatch()),this._wrap(Q.prototype,"connect",this._getClientConnectPatch()),A}_unpatchPgClient(A){let Q=lG(A);if(LI.isWrapped(Q.prototype.query))this._unwrap(Q.prototype,"query");if(LI.isWrapped(Q.prototype.connect))this._unwrap(Q.prototype,"connect");return A}_getClientConnectPatch(){let A=this;return(Q)=>{return function(I){if(_X()||A.getConfig().ignoreConnectSpans)return Q.call(this,I);let C=s({name:zJ.CONNECT,kind:GA.CLIENT,attributes:P$(this)}),E=I;if(E){let J=VA();if(E=fIA(C,E),J)E=SX(J,E)}let Y=EA(C,()=>{return Q.call(this,E)});return xIA(C,Y)}}}_getClientQueryPatch(){return(A)=>{return this._diag.debug("Patching pg.Client.prototype.query"),function(...B){if(_X())return A.apply(this,B);let I=B[0],C=typeof I==="string",E=hIA(I),Y=C?{text:I,values:Array.isArray(B[1])?B[1]:void 0}:E?{...I,name:I.name,text:I.text,values:I.values??(Array.isArray(B[1])?B[1]:void 0)}:void 0,J=yIA.call(this,Y);if(B.length>0){let G=VA();if(typeof B[B.length-1]==="function"){if(B[B.length-1]=O$(J,B[B.length-1]),G)B[B.length-1]=SX(G,B[B.length-1])}else if(typeof Y?.callback==="function"){let D=O$(J,Y.callback);if(G)D=SX(G,D);B[0].callback=D}}let F;try{F=A.apply(this,B)}catch(G){throw J.setStatus({code:k,message:yX(G)}),J.end(),G}if(F instanceof Promise)return F.then((G)=>{return J.end(),G}).catch((G)=>{return J.setStatus({code:k,message:yX(G)}),J.end(),Promise.reject(G)});return F}}}_getPoolConnectPatch(){let A=this;return(Q)=>{return function(I){if(_X()||A.getConfig().ignoreConnectSpans)return Q.call(this,I);let C=s({name:zJ.POOL_CONNECT,kind:GA.CLIENT,attributes:_IA(this.options)}),E=I;if(E){let J=VA();if(E=SIA(C,E),J)E=SX(J,E)}let Y=EA(C,()=>{return Q.call(this,E)});return xIA(C,Y)}}}}function xIA(A,Q){if(!(Q instanceof Promise))return Q;return Q.then((I)=>{return A.end(),I}).catch((I)=>{return A.setStatus({code:k,message:yX(I)}),A.end(),Promise.reject(I)})}var vIA="Postgres",bIA=c(vIA,k$,(A)=>({ignoreConnectSpans:A?.ignoreConnectSpans??!1})),pdA=(A)=>{return{name:vIA,setupOnce(){bIA(A)}}},mIA=g(pdA);var pG=m(AA(),1),iG=m(jA(),1);var sI=m(tB(),1);var g$="PostgresJs",dIA=[">=3.0.0 <4"],idA=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,odA=Symbol.for("sentry.query.from.instrumented.sql"),cIA=c(g$,(A)=>new uIA({requireParentSpan:A?.requireParentSpan??!0,requestHook:A?.requestHook}));class uIA extends iG.InstrumentationBase{constructor(A){super("sentry-postgres-js",h,A)}init(){let A=new iG.InstrumentationNodeModuleDefinition("postgres",dIA,(Q)=>{try{return this._patchPostgres(Q)}catch(B){return _A&&H.error("Failed to patch postgres module:",B),Q}},(Q)=>Q);return["src","cf/src","cjs/src"].forEach((Q)=>{A.files.push(new zA(`postgres/${Q}/query.js`,dIA,this._patchQueryPrototype.bind(this),this._unpatchQueryPrototype.bind(this)))}),A}_patchPostgres(A){let Q=typeof A==="function",B=Q?A:A.default;if(typeof B!=="function")return _A&&H.warn("postgres module does not export a function. Skipping instrumentation."),A;let I=this,C=function(...E){let Y=Reflect.construct(B,E);if(!Y||typeof Y!=="function")return _A&&H.warn("postgres() did not return a valid instance"),Y;let J=I.getConfig();return GK(Y,{requireParentSpan:J.requireParentSpan,requestHook:J.requestHook})};Object.setPrototypeOf(C,B),Object.setPrototypeOf(C.prototype,B.prototype);for(let E of Object.getOwnPropertyNames(B))if(!["length","name","prototype"].includes(E)){let Y=Object.getOwnPropertyDescriptor(B,E);if(Y)Object.defineProperty(C,E,Y)}if(Q)return C;else return oZ(A,"default",C),A}_shouldCreateSpans(){let A=this.getConfig();return pG.trace.getSpan(pG.context.active())!==void 0||!A.requireParentSpan}_setOperationName(A,Q,B){if(B){A.setAttribute(sI.ATTR_DB_OPERATION_NAME,B);return}let I=Q?.match(idA);if(I?.[1])A.setAttribute(sI.ATTR_DB_OPERATION_NAME,I[1].toUpperCase())}_reconstructQuery(A){if(!A?.length)return;if(A.length===1)return A[0]||void 0;return A.reduce((Q,B,I)=>I===0?B:`${Q}$${I}${B}`,"")}_sanitizeSqlQuery(A){if(!A)return"Unknown SQL Query";return A.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{Nz(Y,"auto.db.postgresjs"),Y.setAttributes({[sI.ATTR_DB_SYSTEM_NAME]:"postgres",[sI.ATTR_DB_QUERY_TEXT]:E});let J=Q.getConfig(),{requestHook:F}=J;if(F)iG.safeExecuteInTheMiddle(()=>F(Y,E,void 0),(Z)=>{if(Z)Y.setAttribute("sentry.hook.error","requestHook failed"),_A&&H.error(`Error in requestHook for ${g$} integration:`,Z)},!0);let G=this.resolve;this.resolve=new Proxy(G,{apply:(Z,U,W)=>{try{Q._setOperationName(Y,E,W?.[0]?.command),Y.end()}catch(w){_A&&H.error("Error ending span in resolve callback:",w)}return Reflect.apply(Z,U,W)}});let D=this.reject;this.reject=new Proxy(D,{apply:(Z,U,W)=>{try{Y.setStatus({code:k,message:W?.[0]?.message||"unknown_error"}),Y.setAttribute(sI.ATTR_DB_RESPONSE_STATUS_CODE,W?.[0]?.code||"unknown"),Y.setAttribute(sI.ATTR_ERROR_TYPE,W?.[0]?.name||"unknown"),Q._setOperationName(Y,E),Y.end()}catch(w){_A&&H.error("Error ending span in reject callback:",w)}return Reflect.apply(Z,U,W)}});try{return B.apply(this,I)}catch(Z){throw Y.setStatus({code:k,message:Z instanceof Error?Z.message:"unknown_error"}),Y.end(),Z}})},A.Query.prototype.handle.__sentry_original__=B,A}_unpatchQueryPrototype(A){if(A.Query.prototype.handle.__sentry_original__)A.Query.prototype.handle=A.Query.prototype.handle.__sentry_original__;return A}}var ndA=(A)=>{return{name:g$,setupOnce(){cIA(A)}}},lIA=g(ndA);var NI=m(AA(),1);var fX=m(jA(),1);var sdA=process.env.PRISMA_SHOW_ALL_TRACES==="true",adA="00-10-10-00",rdA="auto.db.otel.prisma";function iIA(A,Q){let B={...Q,[O]:rdA};if(A==="prisma:engine:db_query"&&B["db.system"]==null)B["db.system"]="prisma";return B}function oIA(A,Q){let B=Q["db.query.text"];if((A==="prisma:engine:db_query"||A==="prisma:client:db_query")&&typeof B==="string")return B;return A}class T${constructor({ignoreSpanTypes:A}){this.ignoreSpanTypes=A}isEnabled(){return!0}getTraceParent(A){let Q=(A??VA())?.spanContext();if(Q)return`00-${Q.traceId}-${Q.spanId}-0${Q.traceFlags}`;return adA}dispatchEngineSpans(A){let Q=new Map,B=A.filter((I)=>I.parentId===null);for(let I of B)nIA(I,A,Q,this.ignoreSpanTypes)}getActiveContext(){return VA()}runInChildSpan(A,Q){let B=typeof A==="string"?{name:A}:A;if(B.internal&&!sdA)return Q();let I=`prisma:client:${B.name}`;if(sIA(I,this.ignoreSpanTypes))return Q();let C=VA(),E=iIA(I,B.attributes),Y={name:oIA(I,E),attributes:E,kind:B.kind,links:B.links,startTime:B.startTime,parentSpan:C};if(B.active===!1){let J=s(Y);return pIA(J,()=>Q(J,C))}return TA(Y,(J)=>pIA(J,()=>Q(J,C)))}}function nIA(A,Q,B,I){if(sIA(A.name,I))return;let C=iIA(A.name,A.attributes);TA({name:oIA(A.name,C),attributes:C,kind:A.kind==="client"?GA.CLIENT:GA.INTERNAL,startTime:A.startTime},(E)=>{if(B.set(A.id,E.spanContext().spanId),A.links)E.addLinks(A.links.flatMap((J)=>{let F=B.get(J);if(!F)return[];return{context:{spanId:F,traceId:E.spanContext().traceId,traceFlags:E.spanContext().traceFlags}}}));let Y=Q.filter((J)=>J.parentId===A.id);for(let J of Y)nIA(J,Q,B,I);E.end(A.endTime)})}function pIA(A,Q){let B;try{B=Q()}catch(I){throw A.end(),I}if(tdA(B))return B.then((I)=>{return A.end(),I},(I)=>{throw A.end(),I});return A.end(),B}function tdA(A){return A!=null&&typeof A.then==="function"}function sIA(A,Q){return Q.some((B)=>typeof B==="string"?B===A:B.test(A))}var aIA=h,rIA="@sentry/instrumentation-prisma",tIA="@prisma/client",eIA=[">=5.0.0"];var oG=globalThis;function ACA(){let A=oG.V7_PRISMA_INSTRUMENTATION;if(A?.helper)return A.helper;return oG.PRISMA_INSTRUMENTATION?.helper}function QCA(A){let Q={helper:A};oG.V7_PRISMA_INSTRUMENTATION=Q,oG.PRISMA_INSTRUMENTATION=Q}function BCA(){oG.V7_PRISMA_INSTRUMENTATION=void 0,oG.PRISMA_INSTRUMENTATION=void 0}class _$ extends fX.InstrumentationBase{constructor(A={}){super(rIA,aIA,A)}init(){return[new fX.InstrumentationNodeModuleDefinition(tIA,eIA)]}enable(){let A=this._config;QCA(new T$({ignoreSpanTypes:A.ignoreSpanTypes??[]}))}disable(){BCA()}isEnabled(){return ACA()!==void 0}}var ICA="Prisma";function edA(A){return!!A&&typeof A==="object"&&"dispatchEngineSpans"in A}function CCA(){let A=globalThis.PRISMA_INSTRUMENTATION;return A&&typeof A==="object"&&"helper"in A?A.helper:void 0}class ECA extends _${constructor(A){super(A?.instrumentationConfig)}enable(){super.enable();let A=CCA();if(edA(A))A.createEngineSpan=(Q)=>{let B=NI.trace.getTracer("prismaV5Compatibility"),I=B._idGenerator;if(!I){XQ(()=>{console.warn("[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!")});return}try{Q.spans.forEach((C)=>{let E=C.kind==="client"?NI.SpanKind.CLIENT:NI.SpanKind.INTERNAL,Y=C.parent_span_id,J=C.span_id,F=C.trace_id,G=C.links?.map((Z)=>{return{context:{traceId:Z.trace_id,spanId:Z.span_id,traceFlags:NI.TraceFlags.SAMPLED}}}),D=NI.trace.setSpanContext(NI.context.active(),{traceId:F,spanId:Y,traceFlags:NI.TraceFlags.SAMPLED});NI.context.with(D,()=>{let Z={generateTraceId:()=>{return F},generateSpanId:()=>{return J}};B._idGenerator=Z,B.startSpan(C.name,{kind:E,links:G,startTime:C.start_time,attributes:C.attributes}).end(C.end_time),B._idGenerator=I})})}finally{B._idGenerator=I}}}}var AcA=c(ICA,(A)=>{return new ECA(A)}),YCA=g((A)=>{return{name:ICA,setupOnce(){AcA(A)},setup(Q){if(!CCA())return;Q.on("spanStart",(B)=>{let I=r(B);if(I.description?.startsWith("prisma:"))B.setAttribute(O,"auto.db.otel.prisma");if((I.description==="prisma:engine:db_query"||I.description==="prisma:client:db_query")&&I.data["db.query.text"])B.updateName(I.data["db.query.text"]);if(I.description==="prisma:engine:db_query"&&!I.data["db.system"])B.setAttribute("db.system","prisma")})}}});var nG=m(AA(),1);var $J=m(jA(),1);var AI=((A)=>{return A.HAPI_TYPE="hapi.type",A.PLUGIN_NAME="hapi.plugin.name",A.EXT_TYPE="server.ext.type",A})(AI||{});var JCA="@hapi/hapi",lU=Symbol("hapi-handler-patched"),pU={ROUTER:"router",PLUGIN:"plugin",EXT:"server.ext"},FCA=new Set(["onPreAuth","onCredentials","onPostAuth","onPreHandler","onPostHandler","onPreResponse","onRequest"]);var DCA=m(tB(),1);var GCA="http.method";function ZCA(A){if(A.name)return A.name;else return A.pkg.name}var hX=(A)=>{return typeof A==="string"&&FCA.has(A)},UCA=(A)=>{let Q=A?.type;return Q!==void 0&&hX(Q)},WCA=(A)=>{return Array.isArray(A)&&A.length<=3&&hX(A[0])&&typeof A[1]==="function"},wCA=(A)=>{return!Array.isArray(A)},XCA=(A,Q)=>{let B={[DCA.ATTR_HTTP_ROUTE]:A.path,[GCA]:A.method},I;if(Q)B[AI.HAPI_TYPE]=pU.PLUGIN,B[AI.PLUGIN_NAME]=Q,I=`${Q}: route - ${A.path}`;else B[AI.HAPI_TYPE]=pU.ROUTER,I=`route - ${A.path}`;return{attributes:B,name:I}},VCA=(A,Q,B)=>{let I=`ext - ${A}`;if(B&&B!=="method")I=`ext - ${A} - ${B}`;if(Q)return{attributes:{[AI.EXT_TYPE]:A,[AI.HAPI_TYPE]:pU.EXT,[AI.PLUGIN_NAME]:Q},name:`${Q}: ${I}`};return{attributes:{[AI.EXT_TYPE]:A,[AI.HAPI_TYPE]:pU.EXT},name:I}},y$=(A)=>{if("plugin"in A){if("plugin"in A.plugin)return A.plugin.plugin;return A.plugin}return A};var QcA="@sentry/instrumentation-hapi";class S$ extends $J.InstrumentationBase{constructor(A={}){super(QcA,h,A)}init(){return new $J.InstrumentationNodeModuleDefinition(JCA,[">=17.0.0 <22"],(A)=>{let Q=A[Symbol.toStringTag]==="Module"?A.default:A;if(!$J.isWrapped(Q.server))this._wrap(Q,"server",this._getServerPatch.bind(this));if(!$J.isWrapped(Q.Server))this._wrap(Q,"Server",this._getServerPatch.bind(this));return Q},(A)=>{let Q=A[Symbol.toStringTag]==="Module"?A.default:A;this._massUnwrap([Q],["server","Server"])})}_getServerPatch(A){let Q=this,B=this;return function(C){let E=A.apply(this,[C]);return B._wrap(E,"route",(Y)=>{return Q._getServerRoutePatch.bind(Q)(Y)}),B._wrap(E,"ext",(Y)=>{return Q._getServerExtPatch.bind(Q)(Y)}),B._wrap(E,"register",Q._getServerRegisterPatch.bind(Q)),E}}_getServerRegisterPatch(A){let Q=this;return function(I,C){if(Array.isArray(I))for(let E of I){let Y=y$(E);Q._wrapRegisterHandler(Y)}else{let E=y$(I);Q._wrapRegisterHandler(E)}return A.apply(this,[I,C])}}_getServerExtPatch(A,Q){let B=this;return function(...C){if(Array.isArray(C[0])){let E=C[0];for(let Y=0;Y{return Q._getServerRoutePatch.bind(Q)(F,B)}),C._wrap(Y,"ext",(F)=>{return Q._getServerExtPatch.bind(Q)(F,B)}),I.call(this,Y,J)};A.register=E}_wrapExtMethods(A,Q,B){let I=this;if(A instanceof Array){for(let C=0;CA.apply(void 0,E))}}return A}_wrapRouteHandler(A,Q){if(A[lU]===!0)return A;A[lU]=!0;let B=(I)=>{return function(...C){if(nG.trace.getSpan(nG.context.active())===void 0)return I.call(this,...C);gC(A.path);let E=XCA(A,Q);return vA({name:E.name,op:`${E.attributes[AI.HAPI_TYPE]}.hapi`,attributes:{...E.attributes,[O]:"auto.http.otel.hapi"}},()=>I.call(this,...C))}};if(typeof A.handler==="function")A.handler=B(A.handler);else if(typeof A.options==="function"){let I=A.options;A.options=function(C){let E=I(C);if(typeof E.handler==="function")E.handler=B(E.handler);return E}}else if(typeof A.options?.handler==="function")A.options.handler=B(A.options.handler);return A}}var KCA="Hapi",zCA=c(KCA,()=>new S$),BcA=()=>{return{name:KCA,setupOnce(){zCA()}}},$CA=g(BcA);var vX=m(tB(),1);var f0={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},iU={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"};var HJ=m(AA(),1),xX=m(jA(),1);var IcA="@sentry/instrumentation-hono",CcA="0.0.1";class f$ extends xX.InstrumentationBase{constructor(A={}){super(IcA,CcA,A)}init(){return[new xX.InstrumentationNodeModuleDefinition("hono",[">=4.0.0 <5"],(A)=>this._patch(A))]}_patch(A){let Q=this;class B extends A.Hono{constructor(...I){super(...I);Q._wrap(this,"get",Q._patchHandler()),Q._wrap(this,"post",Q._patchHandler()),Q._wrap(this,"put",Q._patchHandler()),Q._wrap(this,"delete",Q._patchHandler()),Q._wrap(this,"options",Q._patchHandler()),Q._wrap(this,"patch",Q._patchHandler()),Q._wrap(this,"all",Q._patchHandler()),Q._wrap(this,"on",Q._patchOnHandler()),Q._wrap(this,"use",Q._patchMiddlewareHandler())}}try{A.Hono=B}catch{return{...A,Hono:B}}return A}_patchHandler(){let A=this;return function(Q){return function(...I){if(typeof I[0]==="string"){let C=I[0];if(I.length===1)return Q.apply(this,[C]);let E=I.slice(1);return Q.apply(this,[C,...E.map((Y)=>A._wrapHandler(Y))])}return Q.apply(this,I.map((C)=>A._wrapHandler(C)))}}}_patchOnHandler(){let A=this;return function(Q){return function(...I){let C=I.slice(2);return Q.apply(this,[...I.slice(0,2),...C.map((E)=>A._wrapHandler(E))])}}}_patchMiddlewareHandler(){let A=this;return function(Q){return function(...I){if(typeof I[0]==="string"){let C=I[0];if(I.length===1)return Q.apply(this,[C]);let E=I.slice(1);return Q.apply(this,[C,...E.map((Y)=>A._wrapHandler(Y))])}return Q.apply(this,I.map((C)=>A._wrapHandler(C)))}}}_wrapHandler(A){let Q=this;return function(B,I){if(!Q.isEnabled())return A.apply(this,[B,I]);let C=B.req.path,E=Q.tracer.startSpan(C);return HJ.context.with(HJ.trace.setSpan(HJ.context.active(),E),()=>{return Q._safeExecute(()=>{let Y=A.apply(this,[B,I]);if(xQ(Y))return Y.then((J)=>{let F=Q._determineHandlerType(J);return E.setAttributes({[f0.HONO_TYPE]:F,[f0.HONO_NAME]:F===iU.REQUEST_HANDLER?C:A.name||"anonymous"}),Q.getConfig().responseHook?.(E),J});else{let J=Q._determineHandlerType(Y);return E.setAttributes({[f0.HONO_TYPE]:J,[f0.HONO_NAME]:J===iU.REQUEST_HANDLER?C:A.name||"anonymous"}),Q.getConfig().responseHook?.(E),Y}},()=>E.end(),(Y)=>{Q._handleError(E,Y),E.end()})})}}_safeExecute(A,Q,B){try{let I=A();if(xQ(I))I.then(()=>Q(),(C)=>B(C));else Q();return I}catch(I){throw B(I),I}}_determineHandlerType(A){return A===void 0?iU.MIDDLEWARE:iU.REQUEST_HANDLER}_handleError(A,Q){if(Q instanceof Error)A.setStatus({code:HJ.SpanStatusCode.ERROR,message:Q.message}),A.recordException(Q)}}var HCA="Hono";function EcA(A){let Q=r(A).data,B=Q[f0.HONO_TYPE];if(Q[l]||!B)return;A.setAttributes({[O]:"auto.http.otel.hono",[l]:`${B}.hono`});let I=Q[f0.HONO_NAME];if(typeof I==="string")A.updateName(I);if(CA()===lB()){_A&&H.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let C=Q[vX.ATTR_HTTP_ROUTE],E=Q[vX.ATTR_HTTP_REQUEST_METHOD];if(typeof C==="string"&&typeof E==="string")CA().setTransactionName(`${E} ${C}`)}var MCA=c(HCA,()=>new f$({responseHook:(A)=>{EcA(A)}})),YcA=()=>{return{name:HCA,setupOnce(){MCA()}}},LCA=g(YcA);var sG=m(AA(),1),LJ=m(jA(),1);var MJ=((A)=>{return A.ROUTER="router",A.MIDDLEWARE="middleware",A})(MJ||{});var qCA=m(tB(),1);var h0=((A)=>{return A.KOA_TYPE="koa.type",A.KOA_NAME="koa.name",A})(h0||{});var NCA=m(tB(),1),jCA=(A,Q,B,I)=>{if(B)return{attributes:{[h0.KOA_NAME]:I?.toString(),[h0.KOA_TYPE]:MJ.ROUTER,[NCA.ATTR_HTTP_ROUTE]:I?.toString()},name:A._matchedRouteName||`router - ${I}`};else return{attributes:{[h0.KOA_NAME]:Q.name??"middleware",[h0.KOA_TYPE]:MJ.MIDDLEWARE},name:`middleware - ${Q.name}`}},RCA=(A,Q)=>{return!!(Array.isArray(Q?.ignoreLayersType)&&Q?.ignoreLayersType?.includes(A))};var h$=Symbol("koa-layer-patched");var JcA="@sentry/instrumentation-koa";class x$ extends LJ.InstrumentationBase{constructor(A={}){super(JcA,h,A)}init(){return new LJ.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],(A)=>{let Q=A[Symbol.toStringTag]==="Module"?A.default:A;if(Q==null)return Q;if(LJ.isWrapped(Q.prototype.use))this._unwrap(Q.prototype,"use");return this._wrap(Q.prototype,"use",this._getKoaUsePatch.bind(this)),A},(A)=>{let Q=A[Symbol.toStringTag]==="Module"?A.default:A;if(Q&&LJ.isWrapped(Q.prototype.use))this._unwrap(Q.prototype,"use")})}_getKoaUsePatch(A){let Q=this._patchRouterDispatch.bind(this),B=this._patchLayer.bind(this);return function(C){let E=C.router?Q(C):B(C,!1);return A.apply(this,[E])}}_patchRouterDispatch(A){let B=A.router?.stack??[];for(let I of B){let{path:C,stack:E}=I;for(let Y=0;Y{if(sG.trace.getSpan(sG.context.active())===void 0)return A(C,E);let J=jCA(C,A,Q,B);if(C._matchedRoute)gC(C._matchedRoute.toString());let F=J.attributes[h0.KOA_NAME],G=typeof F==="string"?F||"< unknown >":J.name;return vA({name:G,op:`${I}.koa`,attributes:{...J.attributes,[O]:"auto.http.otel.koa"}},()=>{let D=J.attributes[qCA.ATTR_HTTP_ROUTE];if(CA()===lB())_A&&H.warn("Isolation scope is default isolation scope - skipping setting transactionName");else if(D){let Z=C.request?.method?.toUpperCase()||"GET";CA().setTransactionName(`${Z} ${D}`)}return A(C,E)})}}}var PCA="Koa",OCA=c(PCA,x$,(A={})=>{return{ignoreLayersType:A.ignoreLayersType}}),FcA=(A={})=>{return{name:PCA,setupOnce(){OCA(A)}}},kCA=g(FcA);var bX=((A)=>{return A.CONNECT_TYPE="connect.type",A.CONNECT_NAME="connect.name",A})(bX||{}),mX=((A)=>{return A.MIDDLEWARE="middleware",A.REQUEST_HANDLER="request_handler",A})(mX||{});var NJ=m(jA(),1),yCA=m(tB(),1);var RE=Symbol("opentelemetry.instrumentation-connect.request-route-stack");var gCA=(A)=>{if(Array.isArray(A[RE])===!1)Object.defineProperty(A,RE,{enumerable:!1,value:[]});A[RE].push("/");let Q=A[RE].length;return()=>{if(Q===A[RE].length)A[RE].pop();else _A&&H.warn("Connect: Trying to pop the stack multiple time")}},TCA=(A,Q)=>{if(Q)A[RE].splice(-1,1,Q)},_CA=(A)=>{return A[RE].reduce((Q,B)=>Q.replace(/\/+$/,"")+B)};var GcA="@sentry/instrumentation-connect",DcA="anonymous";class v$ extends NJ.InstrumentationBase{constructor(A={}){super(GcA,h,A)}init(){return[new NJ.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],(A)=>{return this._patchConstructor(A)})]}_patchApp(A){if(!NJ.isWrapped(A.use))this._wrap(A,"use",this._patchUse.bind(this));if(!NJ.isWrapped(A.handle))this._wrap(A,"handle",this._patchHandle.bind(this))}_patchConstructor(A){let Q=this._patchApp.bind(this);return function(...B){let I=Reflect.apply(A,this,B);return Q(I),I}}_patchNext(A,Q,B){return function(C){if(DI(C))Q.setStatus({code:k,message:"internal_error"});let E=A.apply(this,[C]);return B(),E}}_startSpan(A,Q){let B=A?mX.REQUEST_HANDLER:mX.MIDDLEWARE,I=A||Q.name||DcA;return s({name:I,op:`${B}.connect`,attributes:{[O]:"auto.http.otel.connect",[yCA.ATTR_HTTP_ROUTE]:A.length>0?A:"/",[bX.CONNECT_TYPE]:B,[bX.CONNECT_NAME]:I}})}_patchMiddleware(A,Q){let B=this.isEnabled.bind(this),I=this._startSpan.bind(this),C=this._patchNext.bind(this),E=Q.length===4;function Y(){if(!B())return Reflect.apply(Q,this,arguments);let[J,F,G]=E?[1,2,3]:[0,1,2],D=arguments[J],Z=arguments[F],U=arguments[G];if(TCA(D,A),A)gC(_CA(D));let W=I(A,Q),w=!1;function K(){if(!w)w=!0,W.end();Z.removeListener("close",K)}Z.addListener("close",K),arguments[G]=C(U,W,K);try{return Reflect.apply(Q,this,arguments)}catch(X){throw W.setStatus({code:k,message:"internal_error"}),K(),X}}return Object.defineProperty(Y,"length",{value:Q.length,writable:!1,configurable:!0}),Y}_patchUse(A){let Q=this._patchMiddleware.bind(this);return function(...B){let I=B[B.length-1],C=B[B.length-2]||"";return B[B.length-1]=Q(C,I),A.apply(this,B)}}_patchHandle(A){let Q=this._patchOut.bind(this);return function(){let[B,I]=[0,2],C=arguments[B],E=arguments[I],Y=gCA(C);if(typeof E==="function")arguments[I]=Q(E,Y);return Reflect.apply(A,this,arguments)}}_patchOut(A,Q){return function(...I){return Q(),Reflect.apply(A,this,I)}}}var SCA="Connect",fCA=c(SCA,()=>new v$),ZcA=()=>{return{name:SCA,setupOnce(){fCA()}}},hCA=g(ZcA);var jJ=m(jA(),1);import{EventEmitter as UcA}from"events";var xCA="db.name",vCA="db.sql.table",bCA="db.statement",mCA="db.system",dCA="db.user",cCA="net.peer.name",uCA="net.peer.port",lCA="mssql";function pCA(A,Q,B,I){if(A==="execBulkLoad"&&I&&Q)return`${A} ${I} ${Q}`;if(A==="callProcedure"){if(Q)return`${A} ${B} ${Q}`;return`${A} ${B}`}if(Q)return`${A} ${Q}`;return`${A}`}var iCA=(A)=>{let Q=!1;return(...B)=>{if(Q)return;return Q=!0,A(...B)}};var WcA="@sentry/instrumentation-tedious",nCA=Symbol("opentelemetry.instrumentation-tedious.current-database"),oCA=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function dX(A){Object.defineProperty(this,nCA,{value:A,writable:!0})}var sCA=class A extends jJ.InstrumentationBase{constructor(Q={}){super(WcA,h,Q)}init(){return[new jJ.InstrumentationNodeModuleDefinition(A.COMPONENT,[">=1.11.0 <20"],(Q)=>{let B=Q.Connection.prototype;for(let I of oCA){if(jJ.isWrapped(B[I]))this._unwrap(B,I);this._wrap(B,I,this._patchQuery(I))}if(jJ.isWrapped(B.connect))this._unwrap(B,"connect");return this._wrap(B,"connect",this._patchConnect),Q},(Q)=>{if(Q===void 0)return;let B=Q.Connection.prototype;for(let I of oCA)this._unwrap(B,I);this._unwrap(B,"connect")})]}_patchConnect(Q){return function(){return dX.call(this,this.config?.options?.database),this.removeListener("databaseChange",dX),this.on("databaseChange",dX),this.once("end",()=>{this.removeListener("databaseChange",dX)}),Q.apply(this,arguments)}}_patchQuery(Q){return(B)=>{let I=this;function C(E){if(!(E instanceof UcA))return I._diag.warn(`Unexpected invocation of patched ${Q} method. Span not recorded`),B.apply(this,arguments);let Y=0,J=0,F=()=>J++,G=()=>Y++,D=this[nCA],Z=((K)=>{if(K.sqlTextOrProcedure==="sp_prepare"&&K.parametersByName?.stmt?.value)return K.parametersByName.stmt.value;return K.sqlTextOrProcedure})(E),U={[O]:"auto.db.otel.tedious",[mCA]:lCA,[xCA]:D,[dCA]:this.config?.userName??this.config?.authentication?.options?.userName,[bCA]:Z,[vCA]:E.table,[cCA]:this.config?.server,[uCA]:this.config?.options?.port},W=s({name:pCA(Q,D,Z,E.table),kind:GA.CLIENT,attributes:U}),w=iCA((K)=>{if(E.removeListener("done",F),E.removeListener("doneInProc",F),E.removeListener("doneProc",G),E.removeListener("error",w),this.removeListener("end",w),W.setAttribute("tedious.procedure_count",Y),W.setAttribute("tedious.statement_count",J),K)W.setStatus({code:k,message:K.message});W.end()});if(E.on("done",F),E.on("doneInProc",F),E.on("doneProc",G),E.once("error",w),this.on("end",w),typeof E.callback==="function")I._wrap(E,"callback",I._patchCallbackQuery(w));else I._diag.error("Expected request.callback to be a function");return EA(W,()=>B.apply(this,arguments))}return Object.defineProperty(C,"length",{value:B.length,writable:!1}),C}}_patchCallbackQuery(Q){return(B)=>{return function(I,C,E){return Q(I),B.apply(this,arguments)}}}};sCA.COMPONENT="tedious";var aCA=sCA;var rCA="Tedious",tCA=c(rCA,()=>new aCA({})),wcA=()=>{return{name:rCA,setupOnce(){tCA()}}},eCA=g(wcA);var SC=m(jA(),1);var b$="generic-pool",XcA="@sentry/instrumentation-generic-pool";class m$ extends SC.InstrumentationBase{constructor(A={}){super(XcA,h,A);this._isDisabled=!1}init(){return[new SC.InstrumentationNodeModuleDefinition(b$,[">=3.0.0 <4"],(A)=>{let Q=A.Pool;if(SC.isWrapped(Q.prototype.acquire))this._unwrap(Q.prototype,"acquire");return this._wrap(Q.prototype,"acquire",this._acquirePatcher.bind(this)),A},(A)=>{let Q=A.Pool;return this._unwrap(Q.prototype,"acquire"),A}),new SC.InstrumentationNodeModuleDefinition(b$,[">=2.4.0 <3"],(A)=>{let Q=A.Pool;if(SC.isWrapped(Q.prototype.acquire))this._unwrap(Q.prototype,"acquire");return this._wrap(Q.prototype,"acquire",this._acquireWithCallbacksPatcher.bind(this)),A},(A)=>{let Q=A.Pool;return this._unwrap(Q.prototype,"acquire"),A}),new SC.InstrumentationNodeModuleDefinition(b$,[">=2.0.0 <2.4"],(A)=>{if(this._isDisabled=!1,SC.isWrapped(A.Pool))this._unwrap(A,"Pool");return this._wrap(A,"Pool",this._poolWrapper.bind(this)),A},(A)=>{return this._isDisabled=!0,A})]}_acquirePatcher(A){return function(...B){return vA({name:"generic-pool.acquire",attributes:{[O]:"auto.db.otel.generic_pool"}},()=>{return A.call(this,...B)})}}_poolWrapper(A){let Q=this._wrap.bind(this),B=this._acquireWithCallbacksPatcher.bind(this);return function(...C){let E=A.apply(this,C);return Q(E,"acquire",B),E}}_acquireWithCallbacksPatcher(A){let Q=()=>this._isDisabled;return function(I,C){if(Q())return A.call(this,I,C);return TA({name:"generic-pool.acquire",attributes:{[O]:"auto.db.otel.generic_pool"}},(E)=>{A.call(this,(Y,J)=>{if(Y)E.setStatus({code:k,message:"internal_error"});if(E.end(),I)I(Y,J)},C)})}}}var AEA="GenericPool",QEA=c(AEA,()=>new m$({})),VcA=()=>{return{name:AEA,setupOnce(){QEA()}}},BEA=g(VcA);var eA=m(jA(),1);var VB=((A)=>{return A.AutoAck="auto ack",A.Ack="ack",A.AckAll="ackAll",A.Reject="reject",A.Nack="nack",A.NackAll="nackAll",A.ChannelClosed="channel closed",A.ChannelError="channel error",A.InstrumentationTimeout="instrumentation timeout",A})(VB||{});var a$=m(AA(),1);var IEA="messaging.system",CEA="messaging.operation",d$="net.peer.name",c$="net.peer.port",u$="messaging.destination",l$="messaging.destination_kind",p$="messaging.rabbitmq.routing_key",i$="messaging.protocol",EEA="messaging.protocol_version",YEA="messaging.url",o$="messaging.message_id",n$="messaging.conversation_id",s$="topic",JEA="process";var KcA="auto.amqplib.otel.publisher",zcA="auto.amqplib.otel.consumer",cX=Symbol("opentelemetry.amqplib.message.stored-span"),x0=Symbol("opentelemetry.amqplib.channel.spans-not-ended"),uX=Symbol("opentelemetry.amqplib.channel.consumer-timeout-timer"),lX=Symbol("opentelemetry.amqplib.connection.attributes"),pX=Symbol("sentry.amqplib.channel.is-confirm-publishing"),$cA=(A)=>A!==""?A:"",HcA=(A)=>{return A.replace(/:[^:@/]*@/,":***@")},FEA=(A,Q)=>{return A||(Q==="AMQP"?5672:5671)},GEA=(A)=>{let Q=A||"amqp";return(Q.endsWith(":")?Q.substring(0,Q.length-1):Q).toUpperCase()},DEA=(A)=>{return A||"localhost"},ZEA=(A)=>{let Q=A.serverProperties.product?.toLowerCase?.();if(Q)return{[IEA]:Q};else return{}},UEA=(A)=>{let Q={[EEA]:"0.9.1"},B=A||"amqp://localhost";if(typeof B==="object"){let I=B,C=GEA(I?.protocol);Q[i$]=C,Q[d$]=DEA(I?.hostname),Q[c$]=FEA(I.port,C)}else{let I=HcA(B);Q[YEA]=I;try{let C=new URL(I),E=GEA(C.protocol);Q[i$]=E,Q[d$]=DEA(C.hostname),Q[c$]=FEA(C.port?parseInt(C.port):void 0,E)}catch{}}return Q};function r$(A,Q){let B=A?.[Q];if(B==null)return;return Array.isArray(B)?String(B[0]):String(B)}function t$(A,Q,B,I){let C=$cA(A),E=s({name:`publish ${C}`,kind:a$.SpanKind.PRODUCER,attributes:{...B.connection[lX],[u$]:A,[l$]:s$,[p$]:Q,[o$]:I?.messageId,[n$]:I?.correlationId,[O]:KcA}}),Y=I??{};Y.headers=Y.headers??{};let J=oB({span:E});if(J["sentry-trace"])Y.headers["sentry-trace"]=J["sentry-trace"];if(J.baggage)Y.headers.baggage=J.baggage;return{span:E,modifiedOptions:Y}}function WEA(A,Q,B){return s({name:`${A} process`,kind:a$.SpanKind.CONSUMER,attributes:{...B?.connection?.[lX],[u$]:Q.fields?.exchange,[l$]:s$,[p$]:Q.fields?.routingKey,[CEA]:JEA,[o$]:Q?.properties.messageId,[n$]:Q?.properties.correlationId,[O]:zcA}})}var wEA=60000;function oU(A,Q,B,I){let C=A[cX];if(!C)return;if(Q!==!1)C.setStatus({code:k,message:B!==VB.ChannelClosed&&B!==VB.ChannelError?`${B} called on message${I===!0?" with requeue":I===!1?" without requeue":""}`:B});C.end(),A[cX]=void 0}function e$(A,Q,B,I){(A[x0]??[]).forEach((E)=>{oU(E.msg,Q,B,I)}),A[x0]=[]}function McA(A){let Q=RB(),B=A[x0]??[],I;for(I=0;Ifunction(C){return e$(this,A,Q,C),B.apply(this,arguments)}}function iX(A,Q){return(B)=>function(C,E,Y){let J=this,F=Q===VB.Reject?E:Y,G=J[x0]??[],D=G.findIndex((Z)=>Z.msg===C);if(D<0)oU(C,A,Q,F);else if(Q!==VB.Reject&&E){for(let Z=0;Z<=D;Z++)oU(G[Z].msg,A,Q,F);G.splice(0,D+1)}else oU(C,A,Q,F),G.splice(D,1);return B.apply(this,arguments)}}function KEA(A){return function(B,I,C){let E=this;if(!Object.prototype.hasOwnProperty.call(E,x0)){let F=setInterval(()=>{McA(E)},wEA);F.unref(),E[uX]=F,E[x0]=[]}let Y=function(F){if(!F)return I.call(this,F);let G=F.properties.headers??{},D=r$(G,"sentry-trace"),Z=r$(G,"baggage");EE({sentryTrace:D,baggage:Z},()=>{let U=WEA(B,F,E);if(!C?.noAck)E[x0].push({msg:F,timeOfConsume:RB()}),F[cX]=U;if(EA(U,()=>{I.call(this,F)}),C?.noAck)U.end()})},J=Array.prototype.slice.call(arguments);return J[1]=Y,A.apply(this,J)}}function zEA(A){return function(B,I,C,E,Y){let J=this,{span:F,modifiedOptions:G}=t$(B,I,J,E),D=function(U,W){try{EA(F,()=>{Y?.call(this,U,W)})}finally{if(U)F.setStatus({code:k,message:"message confirmation has been nack'ed"});F.end()}},Z=[...arguments];Z[3]=G,Z[4]=D,J[pX]=!0;try{return A.apply(this,Z)}finally{J[pX]=!1}}}function $EA(A){return function(B,I,C,E){if(this[pX])return A.apply(this,arguments);let Y=this,{span:J,modifiedOptions:F}=t$(B,I,Y,E),G=[...arguments];G[3]=F;let D=A.apply(this,G);return J.end(),D}}var LcA="@sentry/instrumentation-amqplib",oX=[">=0.5.5 <2"];class Q3 extends eA.InstrumentationBase{constructor(A={}){super(LcA,h,A)}init(){let A=new zA("amqplib/lib/channel_model.js",oX,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),Q=new zA("amqplib/lib/callback_model.js",oX,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),B=new zA("amqplib/lib/connect.js",oX,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new eA.InstrumentationNodeModuleDefinition("amqplib",oX,void 0,void 0,[A,B,Q])}patchConnect(A){let Q=this.unpatchConnect(A);if(!eA.isWrapped(Q.connect))this._wrap(Q,"connect",XEA);return Q}unpatchConnect(A){if(eA.isWrapped(A.connect))this._unwrap(A,"connect");return A}patchChannelModel(A){if(!eA.isWrapped(A.Channel.prototype.publish))this._wrap(A.Channel.prototype,"publish",$EA);if(!eA.isWrapped(A.Channel.prototype.consume))this._wrap(A.Channel.prototype,"consume",KEA);if(!eA.isWrapped(A.Channel.prototype.ack))this._wrap(A.Channel.prototype,"ack",iX(!1,VB.Ack));if(!eA.isWrapped(A.Channel.prototype.nack))this._wrap(A.Channel.prototype,"nack",iX(!0,VB.Nack));if(!eA.isWrapped(A.Channel.prototype.reject))this._wrap(A.Channel.prototype,"reject",iX(!0,VB.Reject));if(!eA.isWrapped(A.Channel.prototype.ackAll))this._wrap(A.Channel.prototype,"ackAll",A3(!1,VB.AckAll));if(!eA.isWrapped(A.Channel.prototype.nackAll))this._wrap(A.Channel.prototype,"nackAll",A3(!0,VB.NackAll));if(!eA.isWrapped(A.Channel.prototype.emit))this._wrap(A.Channel.prototype,"emit",VEA);if(!eA.isWrapped(A.ConfirmChannel.prototype.publish))this._wrap(A.ConfirmChannel.prototype,"publish",zEA);return A}unpatchChannelModel(A){if(eA.isWrapped(A.Channel.prototype.publish))this._unwrap(A.Channel.prototype,"publish");if(eA.isWrapped(A.Channel.prototype.consume))this._unwrap(A.Channel.prototype,"consume");if(eA.isWrapped(A.Channel.prototype.ack))this._unwrap(A.Channel.prototype,"ack");if(eA.isWrapped(A.Channel.prototype.nack))this._unwrap(A.Channel.prototype,"nack");if(eA.isWrapped(A.Channel.prototype.reject))this._unwrap(A.Channel.prototype,"reject");if(eA.isWrapped(A.Channel.prototype.ackAll))this._unwrap(A.Channel.prototype,"ackAll");if(eA.isWrapped(A.Channel.prototype.nackAll))this._unwrap(A.Channel.prototype,"nackAll");if(eA.isWrapped(A.Channel.prototype.emit))this._unwrap(A.Channel.prototype,"emit");if(eA.isWrapped(A.ConfirmChannel.prototype.publish))this._unwrap(A.ConfirmChannel.prototype,"publish");return A}}var HEA="Amqplib",MEA=c(HEA,()=>new Q3),NcA=()=>{return{name:HEA,setupOnce(){MEA()}}},LEA=g(NcA);var nX="VercelAI";var sX=m(jA(),1);var jcA=[">=3.0.0 <7"],NEA=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];function RcA(A){if(typeof A!=="object"||A===null)return!1;let Q=A;return"type"in Q&&"error"in Q&&"toolName"in Q&&"toolCallId"in Q&&Q.type==="tool-error"&&Q.error instanceof Error}function qcA(A){if(typeof A!=="object"||A===null||!("content"in A))return;let Q=A;if(!Array.isArray(Q.content))return;PcA(Q.content),OcA(Q.content)}function PcA(A){for(let Q of A){if(!RcA(Q))continue;let B=lV(Q.toolCallId);if(B)lA((I)=>{I.setContext("trace",{trace_id:B.traceId,span_id:B.spanId}),I.setTag("vercel.ai.tool.name",Q.toolName),I.setTag("vercel.ai.tool.callId",Q.toolCallId),I.setLevel("error"),o(Q.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})});else lA((I)=>{I.setTag("vercel.ai.tool.name",Q.toolName),I.setTag("vercel.ai.tool.callId",Q.toolCallId),I.setLevel("error"),o(Q.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})})}}function OcA(A){for(let Q of A)if(typeof Q==="object"&&Q!==null&&"toolCallId"in Q&&typeof Q.toolCallId==="string")pV(Q.toolCallId)}function kcA(A,Q,B,I,C){let E=A?.recordInputs!==void 0?A.recordInputs:Q.recordInputs!==void 0?Q.recordInputs:B===!0?!0:I,Y=A?.recordOutputs!==void 0?A.recordOutputs:Q.recordOutputs!==void 0?Q.recordOutputs:B===!0?!0:C;return{recordInputs:E,recordOutputs:Y}}class B3 extends sX.InstrumentationBase{constructor(A={}){super("@sentry/instrumentation-vercel-ai",h,A);this._isPatched=!1,this._callbacks=[]}init(){return new sX.InstrumentationNodeModuleDefinition("ai",jcA,this._patch.bind(this))}callWhenPatched(A){if(this._isPatched)A();else this._callbacks.push(A)}_patch(A){this._isPatched=!0,this._callbacks.forEach((B)=>B()),this._callbacks=[];let Q=(B)=>{return new Proxy(B,{apply:(I,C,E)=>{let Y=E[0].experimental_telemetry||{},J=Y.isEnabled,F=f(),G=F?.getIntegrationByName(nX),D=G?.options,Z=G?F?.getDataCollectionOptions().genAI:void 0,{recordInputs:U,recordOutputs:W}=kcA(D,Y,J,Boolean(Z?.inputs),Boolean(Z?.outputs));return E[0].experimental_telemetry={...Y,isEnabled:J!==void 0?J:!0,recordInputs:U,recordOutputs:W},vI(()=>Reflect.apply(I,C,E),(w)=>{if(w&&typeof w==="object")FQ(w,"_sentry_active_span",VA())},()=>{},(w)=>{qcA(w)})}})};if(Object.prototype.toString.call(A)==="[object Module]"){for(let B of NEA)if(A[B]!=null)A[B]=Q(A[B]);return A}else{let B=NEA.reduce((I,C)=>{if(A[C]!=null)I[C]=Q(A[C]);return I},{});return{...A,...B}}}}var jEA=c(nX,()=>new B3({}));function gcA(A){return!!A.getIntegrationByName("Modules")?.getModules?.()?.ai}var TcA=(A={})=>{let Q,B=hz(A);return OZ(B,{options:A,setupOnce(){Q=jEA()},afterAllSetup(I){if(A.force??gcA(I))P9(I);else Q?.callWhenPatched(()=>P9(I))}})},REA=g(TcA);var aX=m(jA(),1);var _cA=[">=4.0.0 <7"];class I3 extends aX.InstrumentationBase{constructor(A={}){super("@sentry/instrumentation-openai",h,A)}init(){return new aX.InstrumentationNodeModuleDefinition("openai",_cA,this._patch.bind(this))}_patch(A){let Q=A;return Q=this._patchClient(Q,"OpenAI"),Q=this._patchClient(Q,"AzureOpenAI"),Q}_patchClient(A,Q){let B=A[Q];if(!B)return A;let I=this.getConfig(),C=function(...E){if(kY($0))return Reflect.construct(B,E);let Y=Reflect.construct(B,E);return k9(Y,I)};Object.setPrototypeOf(C,B),Object.setPrototypeOf(C.prototype,B.prototype);for(let E of Object.getOwnPropertyNames(B))if(!["length","name","prototype"].includes(E)){let Y=Object.getOwnPropertyDescriptor(B,E);if(Y)Object.defineProperty(C,E,Y)}try{A[Q]=C}catch{Object.defineProperty(A,Q,{value:C,writable:!0,configurable:!0,enumerable:!0})}if(A.default===B)try{A.default=C}catch{Object.defineProperty(A,"default",{value:C,writable:!0,configurable:!0,enumerable:!0})}return A}}var qEA=c($0,(A)=>new I3(A)),ycA=(A={})=>{return{name:$0,setupOnce(){qEA(A)}}},PEA=g(ycA);var rX=m(jA(),1);var ScA=[">=0.19.2 <1.0.0"];class C3 extends rX.InstrumentationBase{constructor(A={}){super("@sentry/instrumentation-anthropic-ai",h,A)}init(){return new rX.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",ScA,this._patch.bind(this))}_patch(A){let Q=A.Anthropic,B=this.getConfig(),I=function(...C){if(kY(H0))return Reflect.construct(Q,C);let E=Reflect.construct(Q,C);return g9(E,B)};Object.setPrototypeOf(I,Q),Object.setPrototypeOf(I.prototype,Q.prototype);for(let C of Object.getOwnPropertyNames(Q))if(!["length","name","prototype"].includes(C)){let E=Object.getOwnPropertyDescriptor(Q,C);if(E)Object.defineProperty(I,C,E)}try{A.Anthropic=I}catch{Object.defineProperty(A,"Anthropic",{value:I,writable:!0,configurable:!0,enumerable:!0})}if(A.default===Q)try{A.default=I}catch{Object.defineProperty(A,"default",{value:I,writable:!0,configurable:!0,enumerable:!0})}return A}}var OEA=c(H0,(A)=>new C3(A)),fcA=(A={})=>{return{name:H0,options:A,setupOnce(){OEA(A)}}},kEA=g(fcA);var tX=m(jA(),1);var gEA=[">=0.10.0 <2"];class E3 extends tX.InstrumentationBase{constructor(A={}){super("@sentry/instrumentation-google-genai",h,A)}init(){return new tX.InstrumentationNodeModuleDefinition("@google/genai",gEA,(Q)=>this._patch(Q),(Q)=>Q,[new zA("@google/genai/dist/node/index.cjs",gEA,(Q)=>this._patch(Q),(Q)=>Q)])}_patch(A){let Q=A.GoogleGenAI,B=this.getConfig();if(typeof Q!=="function")return A;let I=function(...C){if(kY(M0))return Reflect.construct(Q,C);let E=Reflect.construct(Q,C);return T9(E,B)};Object.setPrototypeOf(I,Q),Object.setPrototypeOf(I.prototype,Q.prototype);for(let C of Object.getOwnPropertyNames(Q))if(!["length","name","prototype"].includes(C)){let E=Object.getOwnPropertyDescriptor(Q,C);if(E)Object.defineProperty(I,C,E)}return oZ(A,"GoogleGenAI",I),A}}var TEA=c(M0,(A)=>new E3(A)),hcA=(A={})=>{return{name:M0,setupOnce(){TEA(A)}}},_EA=g(hcA);var nU=m(jA(),1);var eX=[">=0.1.0 <2.0.0"];function xcA(A,Q,B){return new Proxy(A,{apply(I,C,E){let J=E[1];if(!J||typeof J!=="object"||Array.isArray(J))J={},E[1]=J;return J.callbacks=lZ(J.callbacks,Q),Reflect.apply(I,C,E)}})}class Y3 extends nU.InstrumentationBase{constructor(A={}){super("@sentry/instrumentation-langchain",h,A)}init(){let A=[],Q=["@langchain/anthropic","@langchain/openai","@langchain/google-genai","@langchain/mistralai","@langchain/google-vertexai","@langchain/groq"];for(let B of Q)A.push(new nU.InstrumentationNodeModuleDefinition(B,eX,this._patch.bind(this),(I)=>I,[new zA(`${B}/dist/index.cjs`,eX,this._patch.bind(this),(I)=>I)]));return A.push(new nU.InstrumentationNodeModuleDefinition("langchain",eX,this._patch.bind(this),(B)=>B,[new zA("langchain/dist/chat_models/universal.cjs",eX,this._patch.bind(this),(B)=>B)])),A}_patch(A){GV([$0,H0,M0]);let Q=this.getConfig(),B=bY(Q);return this._patchRunnableMethods(A,B),this._patchEmbeddingsMethods(A,Q),A}_patchRunnableMethods(A,Q){let B=["ChatAnthropic","ChatOpenAI","ChatGoogleGenerativeAI","ChatMistralAI","ChatVertexAI","ChatGroq","ConfigurableModel"],I=A.universal_exports??A,C=Object.values(I).find((J)=>{return typeof J==="function"&&B.includes(J.name)});if(!C)return;let E=C.prototype;if(E.__sentry_patched__)return;E.__sentry_patched__=!0;let Y=["invoke","stream","batch"];for(let J of Y){let F=E[J];if(typeof F==="function")E[J]=xcA(F,Q)}}_patchEmbeddingsMethods(A,Q){let B=A.universal_exports??A;for(let I of Object.values(B)){if(typeof I!=="function"||!I.prototype)continue;let C=I.prototype;if(typeof C.embedQuery!=="function"||typeof C.embedDocuments!=="function")continue;if(C.__sentry_patched__)continue;C.__sentry_patched__=!0,a9(C,Q)}}}var yEA=c(_9,(A)=>new Y3(A)),vcA=(A={})=>{return{name:_9,setupOnce(){yEA(A)}}},SEA=g(vcA);var aU=m(jA(),1);var sU=[">=0.0.0 <2.0.0"];class J3 extends aU.InstrumentationBase{constructor(A={}){super("@sentry/instrumentation-langgraph",h,A)}init(){return[new aU.InstrumentationNodeModuleDefinition("@langchain/langgraph",sU,this._patch.bind(this),(A)=>A,[new zA("@langchain/langgraph/dist/index.cjs",sU,this._patch.bind(this),(A)=>A),new zA("@langchain/langgraph/dist/prebuilt/index.cjs",sU,this._patch.bind(this),(A)=>A)]),new aU.InstrumentationNodeModuleDefinition("@langchain/langgraph/prebuilt",sU,this._patch.bind(this),(A)=>A,[new zA("@langchain/langgraph/dist/prebuilt/index.cjs",sU,this._patch.bind(this),(A)=>A)])]}_patch(A){let B=f()?.getDataCollectionOptions().genAI,I={...this.getConfig(),recordInputs:this.getConfig().recordInputs??B?.inputs??!1,recordOutputs:this.getConfig().recordOutputs??B?.outputs??!1};if(A.StateGraph&&typeof A.StateGraph==="function")h9(A.StateGraph.prototype,I);if(A.createReactAgent&&typeof A.createReactAgent==="function"){let C=A.createReactAgent;Object.defineProperty(A,"createReactAgent",{value:tV(C,I),writable:!0,enumerable:!0,configurable:!0})}return A}}var fEA=c(S9,(A)=>new J3(A)),bcA=(A={})=>{return{name:S9,setupOnce(){fEA(A)}}},hEA=g(bcA);var uEA=m(jA(),1);var A1=m(jA(),1);import*as vEA from"node:net";var jI=m(tB(),1);function bEA(A,Q,B){let I=new A1.InstrumentationNodeModuleDefinition("@firebase/firestore",A,(E)=>xEA(E,Q,B)),C=["@firebase/firestore/dist/lite/index.node.cjs.js","@firebase/firestore/dist/lite/index.node.mjs.js","@firebase/firestore/dist/lite/index.rn.esm2017.js","@firebase/firestore/dist/lite/index.cjs.js"];for(let E of C)I.files.push(new zA(E,A,(Y)=>xEA(Y,Q,B),(Y)=>mEA(Y,B)));return I}function xEA(A,Q,B){return mEA(A,B),Q(A,"addDoc",mcA()),Q(A,"getDocs",ccA()),Q(A,"setDoc",ucA()),Q(A,"deleteDoc",dcA()),A}function mEA(A,Q){for(let B of["addDoc","getDocs","setDoc","deleteDoc"])if(A1.isWrapped(A[B]))Q(A,B);return A}function mcA(){return function(Q){return function(B,I){return Q1("addDoc",B,()=>Q(B,I))}}}function dcA(){return function(Q){return function(B){return Q1("deleteDoc",B.parent||B,()=>Q(B))}}}function ccA(){return function(Q){return function(B){return Q1("getDocs",B,()=>Q(B))}}}function ucA(){return function(Q){return function(B,I,C){return Q1("setDoc",B.parent||B,()=>{return typeof C<"u"?Q(B,I,C):Q(B,I)})}}}function Q1(A,Q,B){return vA({name:`${A} ${Q.path}`,op:"db.query",kind:GA.CLIENT,attributes:{[O]:"auto.firebase.otel.firestore",[jI.ATTR_DB_OPERATION_NAME]:A,...pcA(Q)}},B)}function lcA(A){let Q,B;if(typeof A.host==="string")if(A.host.startsWith("[")){if(A.host.endsWith("]"))Q=A.host.replace(/^\[|\]$/g,"");else if(A.host.includes("]:")){let I=A.host.lastIndexOf(":");if(I!==-1)Q=A.host.slice(1,I).replace(/^\[|\]$/g,""),B=A.host.slice(I+1)}}else if(vEA.isIPv6(A.host))Q=A.host;else{let I=A.host.lastIndexOf(":");if(I!==-1)Q=A.host.slice(0,I),B=A.host.slice(I+1);else Q=A.host}return{address:Q,port:B?parseInt(B,10):void 0}}function pcA(A){let Q=A.firestore.app,B=Q.options,C=(A.firestore.toJSON()||{}).settings||{},E={[jI.ATTR_DB_COLLECTION_NAME]:A.path,[jI.ATTR_DB_NAMESPACE]:Q.name,[jI.ATTR_DB_SYSTEM_NAME]:"firebase.firestore","firebase.firestore.type":A.type,"firebase.firestore.options.projectId":B.projectId,"firebase.firestore.options.appId":B.appId,"firebase.firestore.options.messagingSenderId":B.messagingSenderId,"firebase.firestore.options.storageBucket":B.storageBucket},{address:Y,port:J}=lcA(C);if(Y)E[jI.ATTR_SERVER_ADDRESS]=Y;if(J)E[jI.ATTR_SERVER_PORT]=J;return E}var B1=m(jA(),1);function dEA(A,Q,B){let I=new B1.InstrumentationNodeModuleDefinition("firebase-functions",A);return[{name:"firebase-functions/lib/v2/providers/https.js",triggerType:"function"},{name:"firebase-functions/lib/v2/providers/firestore.js",triggerType:"firestore"},{name:"firebase-functions/lib/v2/providers/scheduler.js",triggerType:"scheduler"},{name:"firebase-functions/lib/v2/storage.js",triggerType:"storage"}].forEach(({name:E,triggerType:Y})=>{I.files.push(new zA(E,A,(J)=>icA(J,Q,B,Y),(J)=>cEA(J,B)))}),I}function KB(A){return function(B){return function(...I){let C=typeof I[0]==="function"?I[0]:I[1],E=typeof I[0]==="function"?void 0:I[0];if(!C)return B.call(this,...I);let Y=async function(...J){let F=process.env.FUNCTION_TARGET||process.env.K_SERVICE||"unknown",G={[O]:"auto.firebase.otel.functions","faas.name":F,"faas.trigger":A,"faas.provider":"firebase"};if(process.env.GCLOUD_PROJECT)G["cloud.project_id"]=process.env.GCLOUD_PROJECT;if(process.env.EVENTARC_CLOUD_EVENT_SOURCE)G["cloud.event_source"]=process.env.EVENTARC_CLOUD_EVENT_SOURCE;return TA({name:`firebase.function.${A}`,op:"http.request",kind:GA.SERVER,attributes:G},async(D)=>{try{let Z=await C.apply(this,J);return D.end(),Z}catch(Z){throw D.setStatus({code:k}),o(Z,{mechanism:{type:"auto.firebase.otel.functions",handled:!1}}),D.end(),await OY(2000),Z}})};if(E)return B.call(this,E,Y);else return B.call(this,Y)}}}function icA(A,Q,B,I){switch(cEA(A,B),I){case"function":Q(A,"onRequest",KB("http.request")),Q(A,"onCall",KB("http.call"));break;case"firestore":Q(A,"onDocumentCreated",KB("firestore.document.created")),Q(A,"onDocumentUpdated",KB("firestore.document.updated")),Q(A,"onDocumentDeleted",KB("firestore.document.deleted")),Q(A,"onDocumentWritten",KB("firestore.document.written")),Q(A,"onDocumentCreatedWithAuthContext",KB("firestore.document.created")),Q(A,"onDocumentUpdatedWithAuthContext",KB("firestore.document.updated")),Q(A,"onDocumentDeletedWithAuthContext",KB("firestore.document.deleted")),Q(A,"onDocumentWrittenWithAuthContext",KB("firestore.document.written"));break;case"scheduler":Q(A,"onSchedule",KB("scheduler.scheduled"));break;case"storage":Q(A,"onObjectFinalized",KB("storage.object.finalized")),Q(A,"onObjectArchived",KB("storage.object.archived")),Q(A,"onObjectDeleted",KB("storage.object.deleted")),Q(A,"onObjectMetadataUpdated",KB("storage.object.metadataUpdated"));break}return A}function cEA(A,Q){let B=["onSchedule","onRequest","onCall","onObjectFinalized","onObjectArchived","onObjectDeleted","onObjectMetadataUpdated","onDocumentCreated","onDocumentUpdated","onDocumentDeleted","onDocumentWritten","onDocumentCreatedWithAuthContext","onDocumentUpdatedWithAuthContext","onDocumentDeletedWithAuthContext","onDocumentWrittenWithAuthContext"];for(let I of B)if(B1.isWrapped(A[I]))Q(A,I);return A}var ocA=[">=3.0.0 <5"],ncA=[">=6.0.0 <7"];class F3 extends uEA.InstrumentationBase{constructor(A={}){super("@sentry/instrumentation-firebase",h,A)}init(){let A=[];return A.push(bEA(ocA,this._wrap,this._unwrap)),A.push(dEA(ncA,this._wrap,this._unwrap)),A}}var lEA="Firebase",pEA=c(lEA,()=>new F3),scA=()=>{return{name:lEA,setupOnce(){pEA()}}},iEA=g(scA);function oEA(){return[cAA(),TQA(),uQA(),LCA(),MBA(),bBA(),AIA(),XIA(),OIA(),mIA(),YCA(),$CA(),kCA(),hCA(),eCA(),BEA(),eQA(),LEA(),BBA(),SEA(),hEA(),REA(),PEA(),kEA(),_EA(),lIA(),iEA()]}var G3,nEA;function D3(){return!!G3}function Z3(){if(!G3)return;return nEA??(nEA=G3())}var aG=m(AA(),1),sEA=m(P7(),1);var U3=1e6;function aEA(A,Q={}){if(A.getOptions().debug)s7();let[B,I]=acA(A,Q);A.traceProvider=B,A.asyncLocalStorageLookup=I}function acA(A,Q={}){let B=new sEA.BasicTracerProvider({sampler:new QX(A),resource:o7("node"),forceFlushTimeoutMillis:500,spanProcessors:[new AX({timeout:rcA(A.getOptions().maxSpanWaitDuration),client:A}),...Q.spanProcessors||[]]});aG.trace.setGlobalTracerProvider(B),aG.propagation.setGlobalPropagator(new e2);let I=new BX;return aG.context.setGlobalContextManager(I),[B,I.getAsyncLocalStorageLookup()]}function rcA(A){if(A==null)return;if(A>U3)return _A&&H.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${U3}`),U3;else if(A<=0||Number.isNaN(A)){_A&&H.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return A}function rEA(){return GX().filter((Q)=>Q.name!=="Http"&&Q.name!=="NodeFetch").concat(fAA(),vAA())}function tEA(A){let Q=[...rEA(),...xA(A)?oEA():[]];if(D3()&&xA(A)){let B=Z3();if(B){let I=new Set(B.replacedOtelIntegrationNames);return[...Q.filter((C)=>!I.has(C.name)),...B.integrations]}}return Q}function W3(A={}){return tcA(A,tEA)}function tcA(A={},Q){_Y(A,"node");let B=D3()&&xA(A)?Z3():void 0;if(B)B.register();let I=Lz({...A,defaultIntegrations:A.defaultIntegrations??Q(A)});if(I&&!A.skipOpenTelemetrySetup)aEA(I,{spanProcessors:A.openTelemetrySpanProcessors}),DX();if(B)B.detect();return I}var AuA="https://b5a33745f4bf36a0f1e66dbcfceaa898@o4510814125228032.ingest.us.sentry.io/4511124523974656",eEA="1.0.0",rG=!1,QuA=[/token/i,/secret/i,/password/i,/key/i,/credential/i,/auth/i,/^GITHUB_/i,/^AWS_/i,/^AZURE_/i,/^GCP_/i,/^NPM_/i,/^NODE_AUTH/i];function A0A(A){let Q=A;for(let[B,I]of Object.entries(process.env)){if(!I||I.length<8)continue;if(QuA.some((C)=>C.test(B)))Q=Q.replaceAll(I,"[REDACTED]")}return Q}function Q0A(A){if(delete A.server_name,delete A.extra,delete A.user,delete A.request,A.contexts={},A.breadcrumbs=[],A.exception?.values){for(let Q of A.exception.values)if(Q.value)Q.value=A0A(Q.value)}if(A.message)A.message=A0A(A.message);return A}function B0A(A,Q){if(rG=A,!A)return;W3({dsn:AuA,defaultIntegrations:!1,environment:"production",release:`format@${eEA}`,tracesSampleRate:1,beforeSend(B){return Q0A(B)},beforeSendTransaction(B){return Q0A(B)}}),NZ({formatter:Q.formatter,mode:Q.mode,action_version:eEA})}function I0A(A,Q){if(!rG)return;lA((B)=>{if(Q)for(let[I,C]of Object.entries(Q))B.setTag(I,C);o(A)})}async function w3(A,Q,B){if(!rG)return B();return vA({name:A,op:Q,attributes:{"sentry.origin":"manual"}},async()=>B())}function C0A(A,Q,B,I){if(!rG)return;aF.gauge(A,Q,{unit:B,tags:I})}function X3(A,Q){if(!rG)return;MZ(A,{level:"info",tags:Q})}async function E0A(){if(!rG)return;await OY(2000)}function Y0A(A,Q,B=[]){let I=[];function C(E){for(let Y of BuA(E,{withFileTypes:!0})){let J=V3.join(E,Y.name);if(Y.isDirectory()){if(!B.some((F)=>D0A(J,F)))C(J)}else if(Y.name.endsWith(Q))I.push(J)}}return C(A),I}function CuA(A,Q){if(A==="javaformat")return[".java"];return Q.include_kts?[".kt",".kts"]:[".kt"]}function EuA(A,Q){let B=CuA(Q,A);if(A.files.length>0)return A.files.flatMap((I)=>{let C=V3.isAbsolute(I)?I:V3.join(A.working_directory,I);try{if(IuA(C).isDirectory())return B.flatMap((E)=>Y0A(C,E,A.exclude))}catch{}return[C]});return B.flatMap((I)=>Y0A(A.working_directory,I,A.exclude))}function D0A(A,Q){let B=A.replace(/\\/g,"/"),I=Q.replace(/\\/g,"/");if(!I.includes("*")&&!I.includes("?"))return B===I||B.startsWith(I+"/")||B.includes("/"+I+"/")||B.endsWith("/"+I);let C="^"+I.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g," ").replace(/\*/g,"[^/]*").replace(/\?/g,"[^/]").replace(/ /g,".*")+"$";return new RegExp(C).test(B)}function YuA(A,Q){if(Q.length===0)return A;return A.filter((B)=>!Q.some((I)=>D0A(B,I)))}function JuA(A){switch(A.output_mode){case"file":return["--list-files"];case"diff":if(A.mode!=="check")return["--list-files"];return A.output_mode_diffs!=null?[`--list-diffs=${A.output_mode_diffs}`]:["--list-diffs"];case"command":return["--list-files"];default:return[]}}function I1(A){let Q=A.split(` +`).map((B)=>B.trim()).filter(Boolean);if(Q.length<=1)return[];return Q.slice(0,-1)}function FuA(A){let Q=A.split(` +`),B=Q.length-1;while(B>=0&&!Q[B].trim())B--;return Q.slice(0,B).join(` +`).trimEnd()}function GuA(A){let Q=A.split(` +`).filter((B)=>B.trim());return!!(Q[0]?.startsWith("---")||Q[1]?.startsWith("+++")||Q[2]?.startsWith("@@"))}function J0A(A){return`'${A.replace(/'/g,"'\\''")}'`}var DuA={comment:"\x1B[2m",keyword:"\x1B[34m",literal:"\x1B[33m"};function ZuA(A,Q){let B=[];for(let[E,Y]of Object.entries(Q)){let J=DuA[E];if(!J||!Array.isArray(Y))continue;for(let F of Y){let[G,D]=F;B.push({start:G,end:D,color:J})}}B.sort((E,Y)=>E.start-Y.start);let I="",C=0;for(let{start:E,end:Y,color:J}of B)I+=A.slice(C,E),I+=J+A.slice(E,Y)+"\x1B[0m",C=Y;return I+A.slice(C)}function F0A(A){return A.split(` +`).map((Q)=>{if(Q.startsWith("---")||Q.startsWith("+++"))return Q;if(Q.startsWith("@@"))return`\x1B[36m${Q}\x1B[0m`;if(Q.startsWith("+"))return`\x1B[32m${Q}\x1B[0m`;if(Q.startsWith("-"))return`\x1B[31m${Q}\x1B[0m`;return Q}).join(` +`)}function UuA(A,Q){try{let B=new G0A.default({language:"diff",cssPrefix:""});return B.richtext(Q),F0A(ZuA(Q,B.markup()))}catch{return F0A(Q)}}function WuA(A,Q,B,I,C=[]){if(A==="none"||!B)return;switch(A){case"file":{let E=I1(B);if(E.length>0){FI(`Files affected by ${Q}:`);for(let Y of E)FI(Y)}break}case"diff":{if(GuA(B)){let E=FuA(B);if(E)FI(`Diffs for ${Q}:`),FI(UuA(Q,E))}else{let E=I1(B);if(E.length>0){FI(`Files affected by ${Q}:`);for(let Y of E)FI(Y)}}break}case"command":{if(I)FI(I);else{let E=I1(B);if(E.length>0){let J=["--",...r4[Q],...C.map(J0A),...E.map(J0A)];FI(`Run the following command to fix formatting: +elide ${Q} ${J.join(" ")}`)}}break}}}async function wuA(A,Q,B,I,C){try{let E=C<1000?`${Math.round(C)}ms`:`${(C/1000).toFixed(1)}s`,Y=A.map((J)=>[{data:J,header:!1},{data:Q[J]===0?"passed":"failed",header:!1}]);await x4.addHeading(I?"Format Check Passed":"Format Check Failed",2).addTable([[{data:"Formatter",header:!0},{data:"Result",header:!0}],...Y,[{data:"Files checked",header:!0},{data:String(B),header:!1}],[{data:"Time",header:!0},{data:E,header:!1}]]).write()}catch{}}async function Z0A(A){let Q=Date.now();try{let B=await o4("Resolving options",async()=>{let I=A?sw(A):Qg();return FI(`formatter=${I.formatter} mode=${I.mode} working_directory=${I.working_directory}`),I});B0A(B.telemetry,B),X3("format.start",{formatter:B.formatter,mode:B.mode}),await w3("format","format",async()=>{let I=B.formatter==="all"?["javaformat","ktfmt"]:[B.formatter],C={},E=0,Y=JuA(B),J=[];for(let D of I){let Z=EuA(B,D),U=YuA(Z,B.exclude);if(E+=U.length,U.length===0){FI(`No ${D==="javaformat"?".java":".kt"} files found, skipping ${D}`),C[D]=0;continue}let W=D==="javaformat"?B.gjf_args:B.ktfmt_args,{exitCode:w,stdout:K}=await o4(`Running ${D}`,async()=>w3(`format.${D}`,"format",()=>Bg(D,B.mode,U,W,B.working_directory,Y)));if(C[D]=w,WuA(B.output_mode,D,K,B.output_mode_command,W),B.output_mode==="file")J.push(...I1(K));if(w!==0)nw(`${D} check failed (exit code ${w})`,{title:"Format Check Failed"});else FI(`${D} check passed`)}let F=Object.values(C).every((D)=>D===0),G=Date.now()-Q;if(ow("result",F?"success":"failure"),ow("files-checked",String(E)),B.output_mode==="file")ow("files-failed",J.join(` +`));if(C0A("format.duration_ms",G,"millisecond",{formatter:B.formatter,mode:B.mode}),X3("format.exit",{status:F?"success":"failure",formatter:B.formatter,mode:B.mode}),await wuA(I,C,E,F,G),!F){let Z=`Format check failed. Run locally to fix: ${Object.entries(C).filter(([,U])=>U!==0).map(([U])=>`elide ${U}`).join(", ")}`;if(B.fail_on_error)i4(Z);else sk(Z,{title:"Format Check Failed"})}})}catch(B){if(B instanceof Error)I0A(B),nw(B.message,{title:"Action Failed"}),i4(B.message)}finally{await E0A()}}Z0A(); -//# debugId=3D27DE305139BF5364756E2164756E21 +//# debugId=D4328BADF68CA84F64756E2164756E21 //# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map index e02bd04..f0cf8da 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1,6 +1,6 @@ { "version": 3, - "sources": ["../node_modules/undici/lib/core/symbols.js", "../node_modules/undici/lib/core/errors.js", "../node_modules/undici/lib/core/constants.js", "../node_modules/undici/lib/core/tree.js", "../node_modules/undici/lib/core/util.js", "../node_modules/undici/lib/core/diagnostics.js", "../node_modules/undici/lib/core/request.js", "../node_modules/undici/lib/dispatcher/dispatcher.js", "../node_modules/undici/lib/dispatcher/dispatcher-base.js", "../node_modules/undici/lib/util/timers.js", "../node_modules/undici/lib/core/connect.js", "../node_modules/undici/lib/llhttp/utils.js", "../node_modules/undici/lib/llhttp/constants.js", "../node_modules/undici/lib/llhttp/llhttp-wasm.js", "../node_modules/undici/lib/llhttp/llhttp_simd-wasm.js", "../node_modules/undici/lib/web/fetch/constants.js", "../node_modules/undici/lib/web/fetch/global.js", "../node_modules/undici/lib/web/fetch/data-url.js", "../node_modules/undici/lib/web/fetch/webidl.js", "../node_modules/undici/lib/web/fetch/util.js", "../node_modules/undici/lib/web/fetch/symbols.js", "../node_modules/undici/lib/web/fetch/file.js", "../node_modules/undici/lib/web/fetch/formdata.js", "../node_modules/undici/lib/web/fetch/formdata-parser.js", "../node_modules/undici/lib/web/fetch/body.js", "../node_modules/undici/lib/dispatcher/client-h1.js", "../node_modules/undici/lib/dispatcher/client-h2.js", "../node_modules/undici/lib/handler/redirect-handler.js", "../node_modules/undici/lib/interceptor/redirect-interceptor.js", "../node_modules/undici/lib/dispatcher/client.js", "../node_modules/undici/lib/dispatcher/fixed-queue.js", "../node_modules/undici/lib/dispatcher/pool-stats.js", "../node_modules/undici/lib/dispatcher/pool-base.js", "../node_modules/undici/lib/dispatcher/pool.js", "../node_modules/undici/lib/dispatcher/balanced-pool.js", "../node_modules/undici/lib/dispatcher/agent.js", "../node_modules/undici/lib/dispatcher/proxy-agent.js", "../node_modules/undici/lib/dispatcher/env-http-proxy-agent.js", "../node_modules/undici/lib/handler/retry-handler.js", "../node_modules/undici/lib/dispatcher/retry-agent.js", "../node_modules/undici/lib/api/readable.js", "../node_modules/undici/lib/api/util.js", "../node_modules/undici/lib/api/api-request.js", "../node_modules/undici/lib/api/abort-signal.js", "../node_modules/undici/lib/api/api-stream.js", "../node_modules/undici/lib/api/api-pipeline.js", "../node_modules/undici/lib/api/api-upgrade.js", "../node_modules/undici/lib/api/api-connect.js", "../node_modules/undici/lib/api/index.js", "../node_modules/undici/lib/mock/mock-errors.js", "../node_modules/undici/lib/mock/mock-symbols.js", "../node_modules/undici/lib/mock/mock-utils.js", "../node_modules/undici/lib/mock/mock-interceptor.js", "../node_modules/undici/lib/mock/mock-client.js", "../node_modules/undici/lib/mock/mock-pool.js", "../node_modules/undici/lib/mock/pluralizer.js", "../node_modules/undici/lib/mock/pending-interceptors-formatter.js", "../node_modules/undici/lib/mock/mock-agent.js", "../node_modules/undici/lib/global.js", "../node_modules/undici/lib/handler/decorator-handler.js", "../node_modules/undici/lib/interceptor/redirect.js", "../node_modules/undici/lib/interceptor/retry.js", "../node_modules/undici/lib/interceptor/dump.js", "../node_modules/undici/lib/interceptor/dns.js", "../node_modules/undici/lib/web/fetch/headers.js", "../node_modules/undici/lib/web/fetch/response.js", "../node_modules/undici/lib/web/fetch/dispatcher-weakref.js", "../node_modules/undici/lib/web/fetch/request.js", "../node_modules/undici/lib/web/fetch/index.js", "../node_modules/undici/lib/web/fileapi/symbols.js", "../node_modules/undici/lib/web/fileapi/progressevent.js", "../node_modules/undici/lib/web/fileapi/encoding.js", "../node_modules/undici/lib/web/fileapi/util.js", "../node_modules/undici/lib/web/fileapi/filereader.js", "../node_modules/undici/lib/web/cache/symbols.js", "../node_modules/undici/lib/web/cache/util.js", "../node_modules/undici/lib/web/cache/cache.js", "../node_modules/undici/lib/web/cache/cachestorage.js", "../node_modules/undici/lib/web/cookies/constants.js", "../node_modules/undici/lib/web/cookies/util.js", "../node_modules/undici/lib/web/cookies/parse.js", "../node_modules/undici/lib/web/cookies/index.js", "../node_modules/undici/lib/web/websocket/events.js", "../node_modules/undici/lib/web/websocket/constants.js", "../node_modules/undici/lib/web/websocket/symbols.js", "../node_modules/undici/lib/web/websocket/util.js", "../node_modules/undici/lib/web/websocket/frame.js", "../node_modules/undici/lib/web/websocket/connection.js", "../node_modules/undici/lib/web/websocket/permessage-deflate.js", "../node_modules/undici/lib/web/websocket/receiver.js", "../node_modules/undici/lib/web/websocket/sender.js", "../node_modules/undici/lib/web/websocket/websocket.js", "../node_modules/undici/lib/web/eventsource/util.js", "../node_modules/undici/lib/web/eventsource/eventsource-stream.js", "../node_modules/undici/lib/web/eventsource/eventsource.js", "../node_modules/@opentelemetry/api/build/src/version.js", "../node_modules/@opentelemetry/api/build/src/internal/semver.js", "../node_modules/@opentelemetry/api/build/src/internal/global-utils.js", "../node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js", "../node_modules/@opentelemetry/api/build/src/diag/types.js", "../node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js", "../node_modules/@opentelemetry/api/build/src/api/diag.js", "../node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js", "../node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js", "../node_modules/@opentelemetry/api/build/src/baggage/utils.js", "../node_modules/@opentelemetry/api/build/src/context/context.js", "../node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js", "../node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js", "../node_modules/@opentelemetry/api/build/src/metrics/Metric.js", "../node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js", "../node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js", "../node_modules/@opentelemetry/api/build/src/api/context.js", "../node_modules/@opentelemetry/api/build/src/trace/trace_flags.js", "../node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js", "../node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js", "../node_modules/@opentelemetry/api/build/src/trace/context-utils.js", "../node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js", "../node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js", "../node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js", "../node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js", "../node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js", "../node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js", "../node_modules/@opentelemetry/api/build/src/trace/span_kind.js", "../node_modules/@opentelemetry/api/build/src/trace/status.js", "../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js", "../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js", "../node_modules/@opentelemetry/api/build/src/trace/internal/utils.js", "../node_modules/@opentelemetry/api/build/src/context-api.js", "../node_modules/@opentelemetry/api/build/src/diag-api.js", "../node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js", "../node_modules/@opentelemetry/api/build/src/api/metrics.js", "../node_modules/@opentelemetry/api/build/src/metrics-api.js", "../node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js", "../node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js", "../node_modules/@opentelemetry/api/build/src/api/propagation.js", "../node_modules/@opentelemetry/api/build/src/propagation-api.js", "../node_modules/@opentelemetry/api/build/src/api/trace.js", "../node_modules/@opentelemetry/api/build/src/trace-api.js", "../node_modules/@opentelemetry/api/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/trace/suppress-tracing.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/baggage/constants.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/baggage/utils.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/baggage/propagation/W3CBaggagePropagator.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/common/anchored-clock.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/common/attributes.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/common/logging-error-handler.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/common/global-error-handler.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/platform/node/environment.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/common/globalThis.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/version.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/internal/utils.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/trace/SemanticAttributes.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/trace/index.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/resource/SemanticResourceAttributes.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/resource/index.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/stable_metrics.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/stable_events.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/platform/node/sdk-info.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/platform/node/index.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/platform/index.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/common/time.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/common/timer-util.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/ExportResult.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/propagation/composite.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/internal/validators.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/trace/TraceState.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/trace/W3CTraceContextPropagator.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/trace/rpc-metadata.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/utils/lodash.merge.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/utils/merge.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/utils/timeout.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/utils/url.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/utils/promise.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/utils/callback.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/utils/configuration.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/internal/exporter.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-http/build/src/version.js", "../node_modules/@opentelemetry/api-logs/build/src/types/LogRecord.js", "../node_modules/@opentelemetry/api-logs/build/src/NoopLogger.js", "../node_modules/@opentelemetry/api-logs/build/src/internal/global-utils.js", "../node_modules/@opentelemetry/api-logs/build/src/NoopLoggerProvider.js", "../node_modules/@opentelemetry/api-logs/build/src/ProxyLogger.js", "../node_modules/@opentelemetry/api-logs/build/src/ProxyLoggerProvider.js", "../node_modules/@opentelemetry/api-logs/build/src/api/logs.js", "../node_modules/@opentelemetry/api-logs/build/src/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/autoLoaderUtils.js", "../node_modules/@opentelemetry/instrumentation/build/src/autoLoader.js", "../node_modules/@opentelemetry/instrumentation/build/src/semver.js", "../node_modules/@opentelemetry/instrumentation/build/src/shimmer.js", "../node_modules/@opentelemetry/instrumentation/build/src/instrumentation.js", "../node_modules/ms/index.js", "../node_modules/debug/src/common.js", "../node_modules/debug/src/browser.js", "../node_modules/debug/src/node.js", "../node_modules/debug/src/index.js", "../node_modules/module-details-from-path/index.js", "../node_modules/require-in-the-middle/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/ModuleNameTrie.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/RequireInTheMiddleSingleton.js", "../node_modules/import-in-the-middle/lib/register.js", "../node_modules/import-in-the-middle/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/instrumentation.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/normalize.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleDefinition.js", "../node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleFile.js", "../node_modules/@opentelemetry/instrumentation/build/src/semconvStability.js", "../node_modules/@opentelemetry/instrumentation/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-http/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-http/build/src/enums/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-http/build/src/internal-types.js", "../node_modules/forwarded-parse/lib/error.js", "../node_modules/forwarded-parse/lib/ascii.js", "../node_modules/forwarded-parse/index.js", "../node_modules/@opentelemetry/instrumentation-http/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-http/build/src/http.js", "../node_modules/@opentelemetry/instrumentation-http/build/src/index.js", "../node_modules/@opentelemetry/core/build/src/trace/suppress-tracing.js", "../node_modules/@opentelemetry/core/build/src/baggage/constants.js", "../node_modules/@opentelemetry/core/build/src/baggage/utils.js", "../node_modules/@opentelemetry/core/build/src/baggage/propagation/W3CBaggagePropagator.js", "../node_modules/@opentelemetry/core/build/src/common/anchored-clock.js", "../node_modules/@opentelemetry/core/build/src/common/attributes.js", "../node_modules/@opentelemetry/core/build/src/common/logging-error-handler.js", "../node_modules/@opentelemetry/core/build/src/common/global-error-handler.js", "../node_modules/@opentelemetry/core/build/src/platform/node/environment.js", "../node_modules/@opentelemetry/core/build/src/common/globalThis.js", "../node_modules/@opentelemetry/core/build/src/version.js", "../node_modules/@opentelemetry/core/build/src/semconv.js", "../node_modules/@opentelemetry/core/build/src/platform/node/sdk-info.js", "../node_modules/@opentelemetry/core/build/src/platform/node/index.js", "../node_modules/@opentelemetry/core/build/src/platform/index.js", "../node_modules/@opentelemetry/core/build/src/common/time.js", "../node_modules/@opentelemetry/core/build/src/common/timer-util.js", "../node_modules/@opentelemetry/core/build/src/ExportResult.js", "../node_modules/@opentelemetry/core/build/src/propagation/composite.js", "../node_modules/@opentelemetry/core/build/src/internal/validators.js", "../node_modules/@opentelemetry/core/build/src/trace/TraceState.js", "../node_modules/@opentelemetry/core/build/src/trace/W3CTraceContextPropagator.js", "../node_modules/@opentelemetry/core/build/src/trace/rpc-metadata.js", "../node_modules/@opentelemetry/core/build/src/utils/lodash.merge.js", "../node_modules/@opentelemetry/core/build/src/utils/merge.js", "../node_modules/@opentelemetry/core/build/src/utils/timeout.js", "../node_modules/@opentelemetry/core/build/src/utils/url.js", "../node_modules/@opentelemetry/core/build/src/utils/promise.js", "../node_modules/@opentelemetry/core/build/src/utils/callback.js", "../node_modules/@opentelemetry/core/build/src/utils/configuration.js", "../node_modules/@opentelemetry/core/build/src/internal/exporter.js", "../node_modules/@opentelemetry/core/build/src/index.js", "../node_modules/@opentelemetry/context-async-hooks/build/src/AbstractAsyncHooksContextManager.js", "../node_modules/@opentelemetry/context-async-hooks/build/src/AsyncHooksContextManager.js", "../node_modules/@opentelemetry/context-async-hooks/build/src/AsyncLocalStorageContextManager.js", "../node_modules/@opentelemetry/context-async-hooks/build/src/index.js", "../node_modules/@opentelemetry/resources/build/src/default-service-name.js", "../node_modules/@opentelemetry/resources/build/src/utils.js", "../node_modules/@opentelemetry/resources/build/src/ResourceImpl.js", "../node_modules/@opentelemetry/resources/build/src/detect-resources.js", "../node_modules/@opentelemetry/resources/build/src/detectors/EnvDetector.js", "../node_modules/@opentelemetry/resources/build/src/semconv.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/execAsync.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-darwin.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-linux.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-bsd.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-win.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-unsupported.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/utils.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/HostDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/OSDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/ProcessDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/ServiceInstanceIdDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/index.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/index.js", "../node_modules/@opentelemetry/resources/build/src/detectors/NoopDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/index.js", "../node_modules/@opentelemetry/resources/build/src/index.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/enums.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/Span.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/Sampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/AlwaysOffSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/AlwaysOnSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/ParentBasedSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/TraceIdRatioBasedSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/config.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/utility.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/BatchSpanProcessorBase.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/node/export/BatchSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/node/RandomIdGenerator.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/node/index.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/index.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/semconv.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/TracerMetrics.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/version.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/Tracer.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/MultiSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/BasicTracerProvider.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/ConsoleSpanExporter.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/InMemorySpanExporter.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/SimpleSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/NoopSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-undici/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-undici/build/src/undici.js", "../node_modules/@opentelemetry/instrumentation-undici/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-express/build/src/enums/ExpressLayerType.js", "../node_modules/@opentelemetry/instrumentation-express/build/src/enums/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-express/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-express/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-express/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-express/build/src/index.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/types/LogRecord.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/NoopLogger.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/internal/global-utils.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/NoopLoggerProvider.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/ProxyLogger.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/ProxyLoggerProvider.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/api/logs.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/index.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/autoLoaderUtils.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/autoLoader.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/semver.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/shimmer.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/instrumentation.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/platform/node/ModuleNameTrie.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/platform/node/RequireInTheMiddleSingleton.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/import-in-the-middle/lib/register.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/import-in-the-middle/index.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/utils.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/platform/node/instrumentation.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/platform/node/normalize.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/platform/node/index.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/platform/index.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleDefinition.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleFile.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/semconvStability.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/index.js", "../node_modules/balanced-match/dist/commonjs/index.js", "../node_modules/brace-expansion/dist/commonjs/index.js", "../node_modules/minimatch/dist/commonjs/assert-valid-pattern.js", "../node_modules/minimatch/dist/commonjs/brace-expressions.js", "../node_modules/minimatch/dist/commonjs/unescape.js", "../node_modules/minimatch/dist/commonjs/ast.js", "../node_modules/minimatch/dist/commonjs/escape.js", "../node_modules/minimatch/dist/commonjs/index.js", "../node_modules/@fastify/otel/index.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/enum.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/enums/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/symbols.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-kafkajs/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-kafkajs/build/src/propagator.js", "../node_modules/@opentelemetry/instrumentation-kafkajs/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-kafkajs/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-kafkajs/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-mongodb/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-mongodb/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-mongodb/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-mongodb/build/src/types.js", "../node_modules/@opentelemetry/instrumentation-mongodb/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-mongoose/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-mongoose/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-mongoose/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-mongoose/build/src/mongoose.js", "../node_modules/@opentelemetry/instrumentation-mongoose/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-mysql/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-mysql/build/src/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-mysql/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-mysql/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-mysql/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-mysql2/build/src/semconv.js", "../node_modules/@opentelemetry/sql-common/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-mysql2/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-mysql2/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-mysql2/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-ioredis/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-ioredis/build/src/utils.js", "../node_modules/@opentelemetry/redis-common/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-ioredis/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-ioredis/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/utils.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/utils.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/redis.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/enums/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/enums/SpanNames.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/index.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/types/LogRecord.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/NoopLogger.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/NoopLoggerProvider.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/ProxyLogger.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/ProxyLoggerProvider.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/platform/node/globalThis.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/platform/node/index.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/platform/index.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/internal/global-utils.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/api/logs.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/index.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/autoLoaderUtils.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/autoLoader.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/semver.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/shimmer.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/instrumentation.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/node/ModuleNameTrie.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/node/RequireInTheMiddleSingleton.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/import-in-the-middle/lib/register.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/import-in-the-middle/index.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/utils.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/node/instrumentation.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/node/normalize.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/node/index.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/index.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleDefinition.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleFile.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/semconvStability.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-hapi/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-hapi/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-hapi/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-hapi/build/src/enums/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-hapi/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-hapi/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-koa/build/src/types.js", "../node_modules/@opentelemetry/instrumentation-koa/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-koa/build/src/enums/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-koa/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-koa/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-koa/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-connect/build/src/enums/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-connect/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-connect/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-connect/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-connect/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-tedious/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-tedious/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-tedious/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-tedious/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-generic-pool/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-generic-pool/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-amqplib/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-amqplib/build/src/semconv-obsolete.js", "../node_modules/@opentelemetry/instrumentation-amqplib/build/src/types.js", "../node_modules/@opentelemetry/instrumentation-amqplib/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-amqplib/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-amqplib/build/src/amqplib.js", "../node_modules/@opentelemetry/instrumentation-amqplib/build/src/index.js", "../node_modules/@actions/core/lib/command.js", "../node_modules/@actions/core/lib/utils.js", "../node_modules/@actions/core/lib/file-command.js", "../node_modules/@actions/core/lib/core.js", "../node_modules/tunnel/lib/tunnel.js", "../node_modules/undici/index.js", "../node_modules/@actions/http-client/lib/index.js", "../node_modules/@actions/core/lib/summary.js", "../node_modules/@actions/core/lib/platform.js", "../node_modules/@actions/exec/lib/toolrunner.js", "../node_modules/@actions/io/lib/io.js", "../node_modules/@actions/io/lib/io-util.js", "../node_modules/@actions/exec/lib/exec.js", "../src/main.ts", "../src/options.ts", "../src/command.ts", "../node_modules/@sentry/node/build/esm/integrations/http.js", "../node_modules/@sentry/core/build/esm/debug-build.js", "../node_modules/@sentry/core/build/esm/utils/is.js", "../node_modules/@sentry/core/build/esm/utils/worldwide.js", "../node_modules/@sentry/core/build/esm/utils/browser.js", "../node_modules/@sentry/core/build/esm/utils/version.js", "../node_modules/@sentry/core/build/esm/carrier.js", "../node_modules/@sentry/core/build/esm/utils/debug-logger.js", "../node_modules/@sentry/core/build/esm/utils/object.js", "../node_modules/@sentry/core/build/esm/tracing/utils.js", "../node_modules/@sentry/core/build/esm/tracing/spanstatus.js", "../node_modules/@sentry/core/build/esm/utils/randomSafeContext.js", "../node_modules/@sentry/core/build/esm/utils/stacktrace.js", "../node_modules/@sentry/core/build/esm/utils/string.js", "../node_modules/@sentry/core/build/esm/utils/misc.js", "../node_modules/@sentry/core/build/esm/utils/time.js", "../node_modules/@sentry/core/build/esm/session.js", "../node_modules/@sentry/core/build/esm/utils/merge.js", "../node_modules/@sentry/core/build/esm/utils/propagationContext.js", "../node_modules/@sentry/core/build/esm/utils/spanOnScope.js", "../node_modules/@sentry/core/build/esm/scope.js", "../node_modules/@sentry/core/build/esm/defaultScopes.js", "../node_modules/@sentry/core/build/esm/utils/chain-and-copy-promiselike.js", "../node_modules/@sentry/core/build/esm/asyncContext/stackStrategy.js", "../node_modules/@sentry/core/build/esm/asyncContext/index.js", "../node_modules/@sentry/core/build/esm/currentScopes.js", "../node_modules/@sentry/core/build/esm/semanticAttributes.js", "../node_modules/@sentry/core/build/esm/utils/baggage.js", "../node_modules/@sentry/core/build/esm/utils/handleCallbackErrors.js", "../node_modules/@sentry/core/build/esm/utils/hasSpansEnabled.js", "../node_modules/@sentry/core/build/esm/utils/parseSampleRate.js", "../node_modules/@sentry/core/build/esm/utils/dsn.js", "../node_modules/@sentry/core/build/esm/utils/tracing.js", "../node_modules/@sentry/core/build/esm/utils/spanUtils.js", "../node_modules/@sentry/core/build/esm/constants.js", "../node_modules/@sentry/core/build/esm/tracing/dynamicSamplingContext.js", "../node_modules/@sentry/core/build/esm/tracing/logSpans.js", "../node_modules/@sentry/core/build/esm/tracing/sampling.js", "../node_modules/@sentry/core/build/esm/tracing/sentryNonRecordingSpan.js", "../node_modules/@sentry/core/build/esm/utils/normalize.js", "../node_modules/@sentry/core/build/esm/utils/envelope.js", "../node_modules/@sentry/core/build/esm/utils/should-ignore-span.js", "../node_modules/@sentry/core/build/esm/envelope.js", "../node_modules/@sentry/core/build/esm/tracing/measurement.js", "../node_modules/@sentry/core/build/esm/tracing/sentrySpan.js", "../node_modules/@sentry/core/build/esm/tracing/trace.js", "../node_modules/@sentry/core/build/esm/utils/syncpromise.js", "../node_modules/@sentry/core/build/esm/eventProcessors.js", "../node_modules/@sentry/core/build/esm/utils/debug-ids.js", "../node_modules/@sentry/core/build/esm/utils/scopeData.js", "../node_modules/@sentry/core/build/esm/utils/prepareEvent.js", "../node_modules/@sentry/core/build/esm/exports.js", "../node_modules/@sentry/core/build/esm/checkin.js", "../node_modules/@sentry/core/build/esm/api.js", "../node_modules/@sentry/core/build/esm/integration.js", "../node_modules/@sentry/core/build/esm/attributes.js", "../node_modules/@sentry/core/build/esm/utils/timestampSequence.js", "../node_modules/@sentry/core/build/esm/utils/trace-info.js", "../node_modules/@sentry/core/build/esm/logs/envelope.js", "../node_modules/@sentry/core/build/esm/logs/internal.js", "../node_modules/@sentry/core/build/esm/metrics/envelope.js", "../node_modules/@sentry/core/build/esm/metrics/internal.js", "../node_modules/@sentry/core/build/esm/utils/timer.js", "../node_modules/@sentry/core/build/esm/utils/promisebuffer.js", "../node_modules/@sentry/core/build/esm/utils/ratelimit.js", "../node_modules/@sentry/core/build/esm/transports/base.js", "../node_modules/@sentry/core/build/esm/utils/clientreport.js", "../node_modules/@sentry/core/build/esm/utils/eventUtils.js", "../node_modules/@sentry/core/build/esm/utils/transactionEvent.js", "../node_modules/@sentry/core/build/esm/client.js", "../node_modules/@sentry/core/build/esm/instrument/handlers.js", "../node_modules/@sentry/core/build/esm/instrument/globalError.js", "../node_modules/@sentry/core/build/esm/instrument/globalUnhandledRejection.js", "../node_modules/@sentry/core/build/esm/tracing/errors.js", "../node_modules/@sentry/core/build/esm/transports/userAgent.js", "../node_modules/@sentry/core/build/esm/utils/eventbuilder.js", "../node_modules/@sentry/core/build/esm/server-runtime-client.js", "../node_modules/@sentry/core/build/esm/utils/ai/providerSkip.js", "../node_modules/@sentry/core/build/esm/utils/envToBool.js", "../node_modules/@sentry/core/build/esm/utils/url.js", "../node_modules/@sentry/core/build/esm/utils/sdkMetadata.js", "../node_modules/@sentry/core/build/esm/utils/traceData.js", "../node_modules/@sentry/core/build/esm/utils/tracePropagationTargets.js", "../node_modules/@sentry/core/build/esm/utils/debounce.js", "../node_modules/@sentry/core/build/esm/utils/request.js", "../node_modules/@sentry/core/build/esm/breadcrumbs.js", "../node_modules/@sentry/core/build/esm/integrations/functiontostring.js", "../node_modules/@sentry/core/build/esm/integrations/eventFilters.js", "../node_modules/@sentry/core/build/esm/utils/aggregate-errors.js", "../node_modules/@sentry/core/build/esm/integrations/linkederrors.js", "../node_modules/@sentry/core/build/esm/utils/cookie.js", "../node_modules/@sentry/core/build/esm/vendor/getIpAddress.js", "../node_modules/@sentry/core/build/esm/integrations/requestdata.js", "../node_modules/@sentry/core/build/esm/instrument/console.js", "../node_modules/@sentry/core/build/esm/utils/severity.js", "../node_modules/@sentry/core/build/esm/utils/path.js", "../node_modules/@sentry/core/build/esm/integrations/postgresjs.js", "../node_modules/@sentry/core/build/esm/integrations/console.js", "../node_modules/@sentry/core/build/esm/integrations/conversationId.js", "../node_modules/@sentry/core/build/esm/metrics/public-api.js", "../node_modules/@sentry/core/build/esm/tracing/ai/gen-ai-attributes.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/ai/mediaStripping.js", "../node_modules/@sentry/core/build/esm/tracing/ai/messageTruncation.js", "../node_modules/@sentry/core/build/esm/tracing/ai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/vercel-ai-attributes.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/index.js", "../node_modules/@sentry/core/build/esm/tracing/openai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/openai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/openai/streaming.js", "../node_modules/@sentry/core/build/esm/tracing/openai/index.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/streaming.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/index.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/streaming.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/index.js", "../node_modules/@sentry/core/build/esm/tracing/langchain/constants.js", "../node_modules/@sentry/core/build/esm/tracing/langchain/utils.js", "../node_modules/@sentry/core/build/esm/tracing/langchain/index.js", "../node_modules/@sentry/core/build/esm/tracing/langgraph/constants.js", "../node_modules/@sentry/core/build/esm/tracing/langgraph/utils.js", "../node_modules/@sentry/core/build/esm/tracing/langgraph/index.js", "../node_modules/@sentry/core/build/esm/utils/breadcrumb-log-level.js", "../node_modules/@sentry/core/build/esm/utils/exports.js", "../node_modules/@sentry/core/build/esm/utils/node-stack-trace.js", "../node_modules/@sentry/core/build/esm/utils/lru.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/httpServerSpansIntegration.js", "../node_modules/@sentry/node-core/build/esm/debug-build.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/httpServerIntegration.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/constants.js", "../node_modules/@sentry/node-core/build/esm/utils/captureRequestBody.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/SentryHttpInstrumentation.js", "../node_modules/@sentry/node-core/build/esm/utils/baggage.js", "../node_modules/@sentry/node-core/build/esm/utils/outgoingHttpRequest.js", "../node_modules/@sentry/node-core/build/esm/integrations/node-fetch/SentryNodeFetchInstrumentation.js", "../node_modules/@sentry/node-core/build/esm/nodeVersion.js", "../node_modules/@sentry/node-core/build/esm/utils/outgoingFetchRequest.js", "../node_modules/@sentry/node-core/build/esm/otel/contextManager.js", "../node_modules/@sentry/opentelemetry/build/esm/index.js", "../node_modules/@sentry/node-core/build/esm/otel/logger.js", "../node_modules/@sentry/node-core/build/esm/otel/instrument.js", "../node_modules/@sentry/node-core/build/esm/integrations/childProcess.js", "../node_modules/@sentry/node-core/build/esm/integrations/context.js", "../node_modules/@sentry/node-core/build/esm/integrations/contextlines.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/index.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/local-variables-async.js", "../node_modules/@sentry/node-core/build/esm/utils/debug.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/common.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/local-variables-sync.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/index.js", "../node_modules/@sentry/node-core/build/esm/integrations/modules.js", "../node_modules/@sentry/node-core/build/esm/utils/detection.js", "../node_modules/@sentry/node-core/build/esm/integrations/node-fetch/index.js", "../node_modules/@sentry/node-core/build/esm/integrations/onuncaughtexception.js", "../node_modules/@sentry/node-core/build/esm/utils/errorhandling.js", "../node_modules/@sentry/node-core/build/esm/integrations/onunhandledrejection.js", "../node_modules/@sentry/node-core/build/esm/integrations/processSession.js", "../node_modules/@sentry/node-core/build/esm/integrations/spotlight.js", "../node_modules/@sentry/node-core/build/esm/integrations/systemError.js", "../node_modules/@sentry/node-core/build/esm/transports/http.js", "../node_modules/@sentry/node-core/build/esm/proxy/index.js", "../node_modules/@sentry/node-core/build/esm/proxy/base.js", "../node_modules/@sentry/node-core/build/esm/proxy/parse-proxy-response.js", "../node_modules/@sentry/node-core/build/esm/utils/spotlight.js", "../node_modules/@sentry/node-core/build/esm/utils/module.js", "../node_modules/@sentry/node-core/build/esm/sdk/api.js", "../node_modules/@sentry/node-core/build/esm/sdk/client.js", "../node_modules/@sentry/node-core/build/esm/sdk/esmLoader.js", "../node_modules/@sentry/node-core/build/esm/sdk/index.js", "../node_modules/@sentry/node-core/build/esm/utils/addOriginToSpan.js", "../node_modules/@sentry/node-core/build/esm/utils/getRequestUrl.js", "../node_modules/@sentry/node/build/esm/integrations/node-fetch.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/express.js", "../node_modules/@sentry/node/build/esm/debug-build.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/enums/AttributeNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/constants.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/kafka.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/lrumemoizer.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongo.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongoose.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql2.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/redis.js", "../node_modules/@sentry/node/build/esm/utils/redisCache.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgres.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgresjs.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/prisma.js", "../node_modules/@prisma/instrumentation/dist/index.mjs", "../node_modules/@sentry/node/build/esm/integrations/tracing/hapi/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hono/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hono/constants.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hono/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/koa.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/connect.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/tedious.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/genericPool.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/amqplib.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/vercelai/constants.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/vercelai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/vercelai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/openai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/openai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/anthropic-ai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/anthropic-ai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/google-genai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/google-genai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langchain/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langchain/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langgraph/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langgraph/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/otel/firebaseInstrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/otel/patches/firestore.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/otel/patches/functions.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/firebase.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/index.js", "../node_modules/@sentry/node/build/esm/sdk/initOtel.js", "../node_modules/@sentry/node/build/esm/sdk/index.js", "../src/telemetry.ts", "../src/index.ts"], + "sources": ["../node_modules/undici/lib/core/symbols.js", "../node_modules/undici/lib/core/errors.js", "../node_modules/undici/lib/core/constants.js", "../node_modules/undici/lib/core/tree.js", "../node_modules/undici/lib/core/util.js", "../node_modules/undici/lib/core/diagnostics.js", "../node_modules/undici/lib/core/request.js", "../node_modules/undici/lib/dispatcher/dispatcher.js", "../node_modules/undici/lib/dispatcher/dispatcher-base.js", "../node_modules/undici/lib/util/timers.js", "../node_modules/undici/lib/core/connect.js", "../node_modules/undici/lib/llhttp/utils.js", "../node_modules/undici/lib/llhttp/constants.js", "../node_modules/undici/lib/llhttp/llhttp-wasm.js", "../node_modules/undici/lib/llhttp/llhttp_simd-wasm.js", "../node_modules/undici/lib/web/fetch/constants.js", "../node_modules/undici/lib/web/fetch/global.js", "../node_modules/undici/lib/web/fetch/data-url.js", "../node_modules/undici/lib/web/fetch/webidl.js", "../node_modules/undici/lib/web/fetch/util.js", "../node_modules/undici/lib/web/fetch/symbols.js", "../node_modules/undici/lib/web/fetch/file.js", "../node_modules/undici/lib/web/fetch/formdata.js", "../node_modules/undici/lib/web/fetch/formdata-parser.js", "../node_modules/undici/lib/web/fetch/body.js", "../node_modules/undici/lib/dispatcher/client-h1.js", "../node_modules/undici/lib/dispatcher/client-h2.js", "../node_modules/undici/lib/handler/redirect-handler.js", "../node_modules/undici/lib/interceptor/redirect-interceptor.js", "../node_modules/undici/lib/dispatcher/client.js", "../node_modules/undici/lib/dispatcher/fixed-queue.js", "../node_modules/undici/lib/dispatcher/pool-stats.js", "../node_modules/undici/lib/dispatcher/pool-base.js", "../node_modules/undici/lib/dispatcher/pool.js", "../node_modules/undici/lib/dispatcher/balanced-pool.js", "../node_modules/undici/lib/dispatcher/agent.js", "../node_modules/undici/lib/dispatcher/proxy-agent.js", "../node_modules/undici/lib/dispatcher/env-http-proxy-agent.js", "../node_modules/undici/lib/handler/retry-handler.js", "../node_modules/undici/lib/dispatcher/retry-agent.js", "../node_modules/undici/lib/api/readable.js", "../node_modules/undici/lib/api/util.js", "../node_modules/undici/lib/api/api-request.js", "../node_modules/undici/lib/api/abort-signal.js", "../node_modules/undici/lib/api/api-stream.js", "../node_modules/undici/lib/api/api-pipeline.js", "../node_modules/undici/lib/api/api-upgrade.js", "../node_modules/undici/lib/api/api-connect.js", "../node_modules/undici/lib/api/index.js", "../node_modules/undici/lib/mock/mock-errors.js", "../node_modules/undici/lib/mock/mock-symbols.js", "../node_modules/undici/lib/mock/mock-utils.js", "../node_modules/undici/lib/mock/mock-interceptor.js", "../node_modules/undici/lib/mock/mock-client.js", "../node_modules/undici/lib/mock/mock-pool.js", "../node_modules/undici/lib/mock/pluralizer.js", "../node_modules/undici/lib/mock/pending-interceptors-formatter.js", "../node_modules/undici/lib/mock/mock-agent.js", "../node_modules/undici/lib/global.js", "../node_modules/undici/lib/handler/decorator-handler.js", "../node_modules/undici/lib/interceptor/redirect.js", "../node_modules/undici/lib/interceptor/retry.js", "../node_modules/undici/lib/interceptor/dump.js", "../node_modules/undici/lib/interceptor/dns.js", "../node_modules/undici/lib/web/fetch/headers.js", "../node_modules/undici/lib/web/fetch/response.js", "../node_modules/undici/lib/web/fetch/dispatcher-weakref.js", "../node_modules/undici/lib/web/fetch/request.js", "../node_modules/undici/lib/web/fetch/index.js", "../node_modules/undici/lib/web/fileapi/symbols.js", "../node_modules/undici/lib/web/fileapi/progressevent.js", "../node_modules/undici/lib/web/fileapi/encoding.js", "../node_modules/undici/lib/web/fileapi/util.js", "../node_modules/undici/lib/web/fileapi/filereader.js", "../node_modules/undici/lib/web/cache/symbols.js", "../node_modules/undici/lib/web/cache/util.js", "../node_modules/undici/lib/web/cache/cache.js", "../node_modules/undici/lib/web/cache/cachestorage.js", "../node_modules/undici/lib/web/cookies/constants.js", "../node_modules/undici/lib/web/cookies/util.js", "../node_modules/undici/lib/web/cookies/parse.js", "../node_modules/undici/lib/web/cookies/index.js", "../node_modules/undici/lib/web/websocket/events.js", "../node_modules/undici/lib/web/websocket/constants.js", "../node_modules/undici/lib/web/websocket/symbols.js", "../node_modules/undici/lib/web/websocket/util.js", "../node_modules/undici/lib/web/websocket/frame.js", "../node_modules/undici/lib/web/websocket/connection.js", "../node_modules/undici/lib/web/websocket/permessage-deflate.js", "../node_modules/undici/lib/web/websocket/receiver.js", "../node_modules/undici/lib/web/websocket/sender.js", "../node_modules/undici/lib/web/websocket/websocket.js", "../node_modules/undici/lib/web/eventsource/util.js", "../node_modules/undici/lib/web/eventsource/eventsource-stream.js", "../node_modules/undici/lib/web/eventsource/eventsource.js", "../node_modules/syntax/lib/syntax.node.js", "../node_modules/@opentelemetry/api/build/src/version.js", "../node_modules/@opentelemetry/api/build/src/internal/semver.js", "../node_modules/@opentelemetry/api/build/src/internal/global-utils.js", "../node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js", "../node_modules/@opentelemetry/api/build/src/diag/types.js", "../node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js", "../node_modules/@opentelemetry/api/build/src/api/diag.js", "../node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js", "../node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js", "../node_modules/@opentelemetry/api/build/src/baggage/utils.js", "../node_modules/@opentelemetry/api/build/src/context/context.js", "../node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js", "../node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js", "../node_modules/@opentelemetry/api/build/src/metrics/Metric.js", "../node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js", "../node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js", "../node_modules/@opentelemetry/api/build/src/api/context.js", "../node_modules/@opentelemetry/api/build/src/trace/trace_flags.js", "../node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js", "../node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js", "../node_modules/@opentelemetry/api/build/src/trace/context-utils.js", "../node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js", "../node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js", "../node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js", "../node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js", "../node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js", "../node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js", "../node_modules/@opentelemetry/api/build/src/trace/span_kind.js", "../node_modules/@opentelemetry/api/build/src/trace/status.js", "../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js", "../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js", "../node_modules/@opentelemetry/api/build/src/trace/internal/utils.js", "../node_modules/@opentelemetry/api/build/src/context-api.js", "../node_modules/@opentelemetry/api/build/src/diag-api.js", "../node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js", "../node_modules/@opentelemetry/api/build/src/api/metrics.js", "../node_modules/@opentelemetry/api/build/src/metrics-api.js", "../node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js", "../node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js", "../node_modules/@opentelemetry/api/build/src/api/propagation.js", "../node_modules/@opentelemetry/api/build/src/propagation-api.js", "../node_modules/@opentelemetry/api/build/src/api/trace.js", "../node_modules/@opentelemetry/api/build/src/trace-api.js", "../node_modules/@opentelemetry/api/build/src/index.js", "../node_modules/@opentelemetry/core/build/src/trace/suppress-tracing.js", "../node_modules/@opentelemetry/core/build/src/baggage/constants.js", "../node_modules/@opentelemetry/core/build/src/baggage/utils.js", "../node_modules/@opentelemetry/core/build/src/baggage/propagation/W3CBaggagePropagator.js", "../node_modules/@opentelemetry/core/build/src/common/anchored-clock.js", "../node_modules/@opentelemetry/core/build/src/common/attributes.js", "../node_modules/@opentelemetry/core/build/src/common/logging-error-handler.js", "../node_modules/@opentelemetry/core/build/src/common/global-error-handler.js", "../node_modules/@opentelemetry/core/build/src/platform/node/environment.js", "../node_modules/@opentelemetry/core/build/src/common/globalThis.js", "../node_modules/@opentelemetry/core/build/src/version.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/internal/utils.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/trace/SemanticAttributes.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/trace/index.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/resource/SemanticResourceAttributes.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/resource/index.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/stable_metrics.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/stable_events.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/index.js", "../node_modules/@opentelemetry/core/build/src/semconv.js", "../node_modules/@opentelemetry/core/build/src/platform/node/sdk-info.js", "../node_modules/@opentelemetry/core/build/src/platform/node/index.js", "../node_modules/@opentelemetry/core/build/src/platform/index.js", "../node_modules/@opentelemetry/core/build/src/common/time.js", "../node_modules/@opentelemetry/core/build/src/common/timer-util.js", "../node_modules/@opentelemetry/core/build/src/ExportResult.js", "../node_modules/@opentelemetry/core/build/src/propagation/composite.js", "../node_modules/@opentelemetry/core/build/src/internal/validators.js", "../node_modules/@opentelemetry/core/build/src/trace/TraceState.js", "../node_modules/@opentelemetry/core/build/src/trace/W3CTraceContextPropagator.js", "../node_modules/@opentelemetry/core/build/src/trace/rpc-metadata.js", "../node_modules/@opentelemetry/core/build/src/utils/lodash.merge.js", "../node_modules/@opentelemetry/core/build/src/utils/merge.js", "../node_modules/@opentelemetry/core/build/src/utils/timeout.js", "../node_modules/@opentelemetry/core/build/src/utils/url.js", "../node_modules/@opentelemetry/core/build/src/utils/promise.js", "../node_modules/@opentelemetry/core/build/src/utils/callback.js", "../node_modules/@opentelemetry/core/build/src/utils/configuration.js", "../node_modules/@opentelemetry/core/build/src/internal/exporter.js", "../node_modules/@opentelemetry/core/build/src/index.js", "../node_modules/@opentelemetry/api-logs/build/src/types/LogRecord.js", "../node_modules/@opentelemetry/api-logs/build/src/NoopLogger.js", "../node_modules/@opentelemetry/api-logs/build/src/internal/global-utils.js", "../node_modules/@opentelemetry/api-logs/build/src/NoopLoggerProvider.js", "../node_modules/@opentelemetry/api-logs/build/src/ProxyLogger.js", "../node_modules/@opentelemetry/api-logs/build/src/ProxyLoggerProvider.js", "../node_modules/@opentelemetry/api-logs/build/src/api/logs.js", "../node_modules/@opentelemetry/api-logs/build/src/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/autoLoaderUtils.js", "../node_modules/@opentelemetry/instrumentation/build/src/autoLoader.js", "../node_modules/@opentelemetry/instrumentation/build/src/semver.js", "../node_modules/@opentelemetry/instrumentation/build/src/shimmer.js", "../node_modules/@opentelemetry/instrumentation/build/src/instrumentation.js", "../node_modules/ms/index.js", "../node_modules/debug/src/common.js", "../node_modules/debug/src/browser.js", "../node_modules/debug/src/node.js", "../node_modules/debug/src/index.js", "../node_modules/module-details-from-path/index.js", "../node_modules/require-in-the-middle/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/ModuleNameTrie.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/RequireInTheMiddleSingleton.js", "../node_modules/import-in-the-middle/lib/register.js", "../node_modules/import-in-the-middle/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/instrumentation.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/normalize.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleDefinition.js", "../node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleFile.js", "../node_modules/@opentelemetry/instrumentation/build/src/semconvStability.js", "../node_modules/@opentelemetry/instrumentation/build/src/index.js", "../node_modules/@opentelemetry/resources/build/src/default-service-name.js", "../node_modules/@opentelemetry/resources/build/src/utils.js", "../node_modules/@opentelemetry/resources/build/src/ResourceImpl.js", "../node_modules/@opentelemetry/resources/build/src/detect-resources.js", "../node_modules/@opentelemetry/resources/build/src/detectors/EnvDetector.js", "../node_modules/@opentelemetry/resources/build/src/semconv.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/execAsync.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-darwin.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-linux.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-bsd.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-win.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-unsupported.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/utils.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/HostDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/OSDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/ProcessDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/ServiceInstanceIdDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/index.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/index.js", "../node_modules/@opentelemetry/resources/build/src/detectors/NoopDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/index.js", "../node_modules/@opentelemetry/resources/build/src/index.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/enums.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/Span.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/Sampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/AlwaysOffSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/AlwaysOnSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/ParentBasedSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/TraceIdRatioBasedSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/config.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/utility.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/BatchSpanProcessorBase.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/node/export/BatchSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/node/RandomIdGenerator.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/node/index.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/index.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/semconv.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/TracerMetrics.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/version.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/Tracer.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/MultiSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/BasicTracerProvider.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/ConsoleSpanExporter.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/InMemorySpanExporter.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/SimpleSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/NoopSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/index.js", "../node_modules/@actions/core/lib/command.js", "../node_modules/@actions/core/lib/utils.js", "../node_modules/@actions/core/lib/file-command.js", "../node_modules/@actions/core/lib/core.js", "../node_modules/tunnel/lib/tunnel.js", "../node_modules/undici/index.js", "../node_modules/@actions/http-client/lib/index.js", "../node_modules/@actions/core/lib/summary.js", "../node_modules/@actions/core/lib/platform.js", "../node_modules/@actions/exec/lib/toolrunner.js", "../node_modules/@actions/io/lib/io.js", "../node_modules/@actions/io/lib/io-util.js", "../node_modules/@actions/exec/lib/exec.js", "../src/main.ts", "../src/options.ts", "../src/command.ts", "../node_modules/@sentry/core/build/esm/debug-build.js", "../node_modules/@sentry/core/build/esm/utils/version.js", "../node_modules/@sentry/core/build/esm/utils/worldwide.js", "../node_modules/@sentry/core/build/esm/carrier.js", "../node_modules/@sentry/core/build/esm/utils/debug-logger.js", "../node_modules/@sentry/core/build/esm/utils/is.js", "../node_modules/@sentry/core/build/esm/utils/object.js", "../node_modules/@sentry/core/build/esm/utils/weakRef.js", "../node_modules/@sentry/core/build/esm/tracing/utils.js", "../node_modules/@sentry/core/build/esm/tracing/spanstatus.js", "../node_modules/@sentry/core/build/esm/utils/randomSafeContext.js", "../node_modules/@sentry/core/build/esm/utils/normalizationHints.js", "../node_modules/@sentry/core/build/esm/utils/stacktrace.js", "../node_modules/@sentry/core/build/esm/utils/normalize.js", "../node_modules/@sentry/core/build/esm/utils/string.js", "../node_modules/@sentry/core/build/esm/utils/misc.js", "../node_modules/@sentry/core/build/esm/utils/time.js", "../node_modules/@sentry/core/build/esm/session.js", "../node_modules/@sentry/core/build/esm/utils/merge.js", "../node_modules/@sentry/core/build/esm/utils/propagationContext.js", "../node_modules/@sentry/core/build/esm/utils/spanOnScope.js", "../node_modules/@sentry/core/build/esm/scope.js", "../node_modules/@sentry/core/build/esm/defaultScopes.js", "../node_modules/@sentry/core/build/esm/utils/chain-and-copy-promiselike.js", "../node_modules/@sentry/core/build/esm/asyncContext/stackStrategy.js", "../node_modules/@sentry/core/build/esm/asyncContext/index.js", "../node_modules/@sentry/core/build/esm/currentScopes.js", "../node_modules/@sentry/core/build/esm/semanticAttributes.js", "../node_modules/@sentry/core/build/esm/utils/baggage.js", "../node_modules/@sentry/core/build/esm/utils/handleCallbackErrors.js", "../node_modules/@sentry/core/build/esm/utils/hasSpansEnabled.js", "../node_modules/@sentry/core/build/esm/utils/should-ignore-span.js", "../node_modules/@sentry/core/build/esm/tracing/spans/hasSpanStreamingEnabled.js", "../node_modules/@sentry/core/build/esm/utils/parseSampleRate.js", "../node_modules/@sentry/core/build/esm/attributes.js", "../node_modules/@sentry/core/build/esm/utils/dsn.js", "../node_modules/@sentry/core/build/esm/utils/tracing.js", "../node_modules/@sentry/core/build/esm/utils/spanUtils.js", "../node_modules/@sentry/core/build/esm/constants.js", "../node_modules/@sentry/core/build/esm/tracing/sentryNonRecordingSpan.js", "../node_modules/@sentry/core/build/esm/tracing/dynamicSamplingContext.js", "../node_modules/@sentry/core/build/esm/tracing/logSpans.js", "../node_modules/@sentry/core/build/esm/tracing/sampling.js", "../node_modules/@sentry/core/build/esm/tracing/spans/beforeSendSpan.js", "../node_modules/@sentry/core/build/esm/utils/envelope.js", "../node_modules/@sentry/core/build/esm/envelope.js", "../node_modules/@sentry/core/build/esm/tracing/measurement.js", "../node_modules/@sentry/core/build/esm/tracing/sentrySpan.js", "../node_modules/@sentry/core/build/esm/tracing/trace.js", "../node_modules/@sentry/core/build/esm/tracing/bindScopeToEmitter.js", "../node_modules/@sentry/core/build/esm/utils/scopeData.js", "../node_modules/@sentry/core/build/esm/tracing/spans/scopeContextAttributes.js", "../node_modules/@sentry/core/build/esm/tracing/spans/captureSpan.js", "../node_modules/@sentry/core/build/esm/utils/syncpromise.js", "../node_modules/@sentry/core/build/esm/eventProcessors.js", "../node_modules/@sentry/core/build/esm/utils/debug-ids.js", "../node_modules/@sentry/core/build/esm/utils/prepareEvent.js", "../node_modules/@sentry/core/build/esm/exports.js", "../node_modules/@sentry/core/build/esm/utils/timer.js", "../node_modules/@sentry/core/build/esm/asyncContext/tracing-channel-binding.js", "../node_modules/@sentry/core/build/esm/utils/promisebuffer.js", "../node_modules/@sentry/core/build/esm/utils/ratelimit.js", "../node_modules/@sentry/core/build/esm/transports/base.js", "../node_modules/@sentry/core/build/esm/integration.js", "../node_modules/@sentry/core/build/esm/utils/ai/providerSkip.js", "../node_modules/@sentry/core/build/esm/utils/envToBool.js", "../node_modules/@sentry/core/build/esm/utils/url.js", "../node_modules/@sentry/core/build/esm/utils/sdkMetadata.js", "../node_modules/@sentry/core/build/esm/utils/traceData.js", "../node_modules/@sentry/core/build/esm/utils/tracePropagationTargets.js", "../node_modules/@sentry/core/build/esm/utils/debounce.js", "../node_modules/@sentry/core/build/esm/utils/data-collection/filtering-snippets.js", "../node_modules/@sentry/core/build/esm/utils/data-collection/defaultPiiToCollectionOptions.js", "../node_modules/@sentry/core/build/esm/utils/data-collection/filterKeyValueData.js", "../node_modules/@sentry/core/build/esm/utils/request.js", "../node_modules/@sentry/core/build/esm/spanKind.js", "../node_modules/@sentry/core/build/esm/breadcrumbs.js", "../node_modules/@sentry/core/build/esm/integrations/functiontostring.js", "../node_modules/@sentry/core/build/esm/utils/eventUtils.js", "../node_modules/@sentry/core/build/esm/integrations/eventFilters.js", "../node_modules/@sentry/core/build/esm/utils/aggregate-errors.js", "../node_modules/@sentry/core/build/esm/utils/eventbuilder.js", "../node_modules/@sentry/core/build/esm/integrations/linkederrors.js", "../node_modules/@sentry/core/build/esm/utils/cookie.js", "../node_modules/@sentry/core/build/esm/vendor/getIpAddress.js", "../node_modules/@sentry/core/build/esm/integrations/requestdata.js", "../node_modules/@sentry/core/build/esm/instrument/handlers.js", "../node_modules/@sentry/core/build/esm/instrument/console.js", "../node_modules/@sentry/core/build/esm/utils/severity.js", "../node_modules/@sentry/core/build/esm/utils/path.js", "../node_modules/@sentry/core/build/esm/integrations/console.js", "../node_modules/@sentry/core/build/esm/integrations/conversationId.js", "../node_modules/@sentry/core/build/esm/utils/timestampSequence.js", "../node_modules/@sentry/core/build/esm/utils/trace-info.js", "../node_modules/@sentry/core/build/esm/utils/env.js", "../node_modules/@sentry/core/build/esm/utils/node.js", "../node_modules/@sentry/core/build/esm/utils/isBrowser.js", "../node_modules/@sentry/core/build/esm/logs/envelope.js", "../node_modules/@sentry/core/build/esm/logs/internal.js", "../node_modules/@sentry/core/build/esm/metrics/envelope.js", "../node_modules/@sentry/core/build/esm/metrics/internal.js", "../node_modules/@sentry/core/build/esm/metrics/public-api.js", "../node_modules/@sentry/core/build/esm/tracing/ai/gen-ai-attributes.js", "../node_modules/@sentry/core/build/esm/tracing/ai/mediaStripping.js", "../node_modules/@sentry/core/build/esm/tracing/ai/messageTruncation.js", "../node_modules/@sentry/core/build/esm/tracing/ai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/vercel-ai-attributes.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/index.js", "../node_modules/@sentry/core/build/esm/tracing/openai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/openai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/openai/streaming.js", "../node_modules/@sentry/core/build/esm/tracing/openai/index.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/streaming.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/index.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/streaming.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/index.js", "../node_modules/@sentry/core/build/esm/tracing/langchain/constants.js", "../node_modules/@sentry/core/build/esm/tracing/langchain/utils.js", "../node_modules/@sentry/core/build/esm/tracing/langchain/index.js", "../node_modules/@sentry/core/build/esm/tracing/langgraph/constants.js", "../node_modules/@sentry/core/build/esm/tracing/langgraph/utils.js", "../node_modules/@sentry/core/build/esm/tracing/langgraph/index.js", "../node_modules/@sentry/core/build/esm/tracing/spans/envelope.js", "../node_modules/@sentry/core/build/esm/tracing/spans/estimateSize.js", "../node_modules/@sentry/core/build/esm/tracing/spans/spanBuffer.js", "../node_modules/@sentry/core/build/esm/integrations/spanStreaming.js", "../node_modules/@sentry/core/build/esm/utils/breadcrumb-log-level.js", "../node_modules/@sentry/core/build/esm/utils/exports.js", "../node_modules/@sentry/core/build/esm/utils/lru.js", "../node_modules/@sentry/core/build/esm/checkin.js", "../node_modules/@sentry/core/build/esm/api.js", "../node_modules/@sentry/core/build/esm/tracing/spans/spanJsonToStreamedSpan.js", "../node_modules/@sentry/core/build/esm/tracing/spans/extractGenAiSpans.js", "../node_modules/@sentry/core/build/esm/utils/clientreport.js", "../node_modules/@sentry/core/build/esm/utils/transactionEvent.js", "../node_modules/@sentry/core/build/esm/utils/data-collection/resolveDataCollectionOptions.js", "../node_modules/@sentry/core/build/esm/client.js", "../node_modules/@sentry/core/build/esm/transports/userAgent.js", "../node_modules/@sentry/core/build/esm/server-runtime-client.js", "../node_modules/@sentry/core/build/esm/utils/node-stack-trace.js", "../node_modules/@sentry/core/build/esm/integrations/express/request-layer-store.js", "../node_modules/@sentry/core/build/esm/integrations/express/types.js", "../node_modules/@sentry/core/build/esm/integrations/express/utils.js", "../node_modules/@sentry/core/build/esm/integrations/express/set-sdk-processing-metadata.js", "../node_modules/@sentry/core/build/esm/integrations/express/patch-layer.js", "../node_modules/@sentry/core/build/esm/utils/get-default-export.js", "../node_modules/@sentry/core/build/esm/integrations/express/index.js", "../node_modules/@sentry/core/build/esm/integrations/postgresjs.js", "../node_modules/@sentry/core/build/esm/integrations/http/constants.js", "../node_modules/@sentry/core/build/esm/integrations/http/get-request-url.js", "../node_modules/@sentry/core/build/esm/integrations/http/add-outgoing-request-breadcrumb.js", "../node_modules/@sentry/core/build/esm/integrations/http/get-outgoing-span-data.js", "../node_modules/@sentry/core/build/esm/integrations/http/inject-trace-propagation-headers.js", "../node_modules/@sentry/core/build/esm/integrations/http/double-wrap-warning.js", "../node_modules/@sentry/core/build/esm/integrations/http/client-subscriptions.js", "../node_modules/@sentry/core/build/esm/integrations/http/client-patch.js", "../node_modules/@sentry/core/build/esm/integrations/http/patch-request-to-capture-body.js", "../node_modules/@sentry/core/build/esm/integrations/http/record-request-session.js", "../node_modules/@sentry/core/build/esm/integrations/http/server-subscription.js", "../node_modules/@sentry/core/build/esm/tracing/langchain/embeddings.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/httpServerSpansIntegration.js", "../node_modules/@sentry/conventions/dist/attributes.mjs", "../node_modules/@sentry/node-core/build/esm/debug-build.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/httpServerIntegration.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/SentryHttpInstrumentation.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/constants.js", "../node_modules/@sentry/node-core/build/esm/nodeVersion.js", "../node_modules/@sentry/node-core/build/esm/integrations/node-fetch/SentryNodeFetchInstrumentation.js", "../node_modules/@sentry/node-core/build/esm/utils/outgoingFetchRequest.js", "../node_modules/@sentry/opentelemetry/build/esm/asyncContextStrategy-DfM95hx5.js", "../node_modules/@sentry/opentelemetry/build/esm/index.js", "../node_modules/@sentry/node-core/build/esm/otel/contextManager.js", "../node_modules/@sentry/node-core/build/esm/otel/logger.js", "../node_modules/@sentry/node-core/build/esm/otel/instrument.js", "../node_modules/@sentry/node-core/build/esm/integrations/childProcess.js", "../node_modules/@sentry/node-core/build/esm/integrations/context.js", "../node_modules/@sentry/node-core/build/esm/integrations/contextlines.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/index.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/local-variables-async.js", "../node_modules/@sentry/node-core/build/esm/utils/debug.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/common.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/local-variables-sync.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/index.js", "../node_modules/@sentry/node-core/build/esm/integrations/modules.js", "../node_modules/@sentry/node-core/build/esm/integrations/node-fetch/index.js", "../node_modules/@sentry/node-core/build/esm/integrations/onuncaughtexception.js", "../node_modules/@sentry/node-core/build/esm/utils/errorhandling.js", "../node_modules/@sentry/node-core/build/esm/integrations/onunhandledrejection.js", "../node_modules/@sentry/node-core/build/esm/integrations/processSession.js", "../node_modules/@sentry/node-core/build/esm/integrations/spotlight.js", "../node_modules/@sentry/node-core/build/esm/integrations/console.js", "../node_modules/@sentry/node-core/build/esm/integrations/systemError.js", "../node_modules/@sentry/node-core/build/esm/transports/http.js", "../node_modules/@sentry/node-core/build/esm/proxy/index.js", "../node_modules/@sentry/node-core/build/esm/proxy/base.js", "../node_modules/@sentry/node-core/build/esm/proxy/parse-proxy-response.js", "../node_modules/@sentry/node-core/build/esm/utils/spotlight.js", "../node_modules/@sentry/node-core/build/esm/utils/module.js", "../node_modules/@sentry/node-core/build/esm/sdk/api.js", "../node_modules/@sentry/node-core/build/esm/sdk/client.js", "../node_modules/@sentry/node-core/build/esm/sdk/esmLoader.js", "../node_modules/@sentry/node-core/build/esm/utils/detection.js", "../node_modules/@sentry/node-core/build/esm/sdk/index.js", "../node_modules/@sentry/node-core/build/esm/utils/addOriginToSpan.js", "../node_modules/@sentry/node/build/esm/integrations/http.js", "../node_modules/@sentry/node/build/esm/integrations/node-fetch/undici-instrumentation.js", "../node_modules/@sentry/node/build/esm/debug-build.js", "../node_modules/@sentry/node/build/esm/integrations/node-fetch/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/express.js", "../node_modules/@sentry/node/build/esm/utils/setHttpServerSpanRouteAttribute.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/enums/AttributeNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/constants.js", "../node_modules/@sentry/server-utils/build/esm/debug-build.js", "../node_modules/@sentry/server-utils/build/esm/tracing-channel.js", "../node_modules/@sentry/server-utils/build/esm/redis/redis-dc-subscriber.js", "../node_modules/@sentry/conventions/dist/op.mjs", "../node_modules/@sentry/server-utils/build/esm/vercel-ai/vercel-ai-dc-subscriber.js", "../node_modules/@sentry/server-utils/build/esm/vercel-ai/index.js", "../node_modules/@sentry/server-utils/build/esm/integrations/tracing-channel/fastify/instrumentation.js", "../node_modules/@sentry/server-utils/build/esm/integrations/tracing-channel/fastify/utils.js", "../node_modules/@sentry/server-utils/build/esm/integrations/tracing-channel/fastify/errors.js", "../node_modules/@sentry/server-utils/build/esm/integrations/tracing-channel/fastify/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/InstrumentationNodeModuleFile.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql/vendored/enum.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql/vendored/enums/AttributeNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql/vendored/symbols.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql/vendored/internal-types.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/kafka/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/kafka/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/kafka/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/kafka/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/lrumemoizer/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/lrumemoizer/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongo/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongo/vendored/internal-types.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongo/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongo/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongo/vendored/patches.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongo/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongoose/vendored/mongoose.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongoose/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongoose/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongoose/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql2/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql2/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql2/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/redis/index.js", "../node_modules/@sentry/node/build/esm/utils/redisCache.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/redis/vendored/redis-common.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/redis/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgres/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgres/vendored/enums/SpanNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgres/vendored/enums/AttributeNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgres/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgres/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgres/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgresjs.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/prisma/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/prisma/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/prisma/vendored/active-tracing-helper.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/prisma/vendored/constants.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/prisma/vendored/global.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hapi/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hapi/vendored/enums/AttributeNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hapi/vendored/internal-types.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hapi/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hapi/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hapi/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hono/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hono/constants.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hono/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/koa/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/koa/vendored/types.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/koa/vendored/enums/AttributeNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/koa/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/koa/vendored/internal-types.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/koa/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/connect/vendored/enums/AttributeNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/connect/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/connect/vendored/internal-types.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/connect/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/connect/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/tedious/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/tedious/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/tedious/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/tedious/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/genericPool/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/genericPool/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/amqplib/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/amqplib/vendored/types.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/amqplib/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/amqplib/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/amqplib/vendored/patches.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/amqplib/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/vercelai/constants.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/vercelai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/vercelai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/openai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/openai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/anthropic-ai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/anthropic-ai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/google-genai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/google-genai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langchain/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langchain/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langgraph/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langgraph/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/otel/firebaseInstrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/otel/patches/firestore.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/otel/patches/functions.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/firebase.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/index.js", "../node_modules/@sentry/node/build/esm/sdk/diagnosticsChannelInjection.js", "../node_modules/@sentry/node/build/esm/sdk/initOtel.js", "../node_modules/@sentry/node/build/esm/sdk/index.js", "../src/telemetry.ts", "../src/index.ts"], "sourcesContent": [ "module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kBody: Symbol('abstracted request body'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kResume: Symbol('resume'),\n kOnError: Symbol('on error'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size'),\n kHTTP2Session: Symbol('http2Session'),\n kHTTP2SessionState: Symbol('http2Session state'),\n kRetryHandlerDefaultRetry: Symbol('retry agent default retry'),\n kConstruct: Symbol('constructable'),\n kListeners: Symbol('listeners'),\n kHTTPContext: Symbol('http context'),\n kMaxConcurrentStreams: Symbol('max concurrent streams'),\n kNoProxyAgent: Symbol('no proxy agent'),\n kHttpProxyAgent: Symbol('http proxy agent'),\n kHttpsProxyAgent: Symbol('https proxy agent')\n}\n", "'use strict'\n\nconst kUndiciError = Symbol.for('undici.error.UND_ERR')\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kUndiciError] === true\n }\n\n [kUndiciError] = true\n}\n\nconst kConnectTimeoutError = Symbol.for('undici.error.UND_ERR_CONNECT_TIMEOUT')\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kConnectTimeoutError] === true\n }\n\n [kConnectTimeoutError] = true\n}\n\nconst kHeadersTimeoutError = Symbol.for('undici.error.UND_ERR_HEADERS_TIMEOUT')\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kHeadersTimeoutError] === true\n }\n\n [kHeadersTimeoutError] = true\n}\n\nconst kHeadersOverflowError = Symbol.for('undici.error.UND_ERR_HEADERS_OVERFLOW')\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kHeadersOverflowError] === true\n }\n\n [kHeadersOverflowError] = true\n}\n\nconst kBodyTimeoutError = Symbol.for('undici.error.UND_ERR_BODY_TIMEOUT')\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kBodyTimeoutError] === true\n }\n\n [kBodyTimeoutError] = true\n}\n\nconst kResponseStatusCodeError = Symbol.for('undici.error.UND_ERR_RESPONSE_STATUS_CODE')\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kResponseStatusCodeError] === true\n }\n\n [kResponseStatusCodeError] = true\n}\n\nconst kInvalidArgumentError = Symbol.for('undici.error.UND_ERR_INVALID_ARG')\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kInvalidArgumentError] === true\n }\n\n [kInvalidArgumentError] = true\n}\n\nconst kInvalidReturnValueError = Symbol.for('undici.error.UND_ERR_INVALID_RETURN_VALUE')\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kInvalidReturnValueError] === true\n }\n\n [kInvalidReturnValueError] = true\n}\n\nconst kAbortError = Symbol.for('undici.error.UND_ERR_ABORT')\nclass AbortError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'AbortError'\n this.message = message || 'The operation was aborted'\n this.code = 'UND_ERR_ABORT'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kAbortError] === true\n }\n\n [kAbortError] = true\n}\n\nconst kRequestAbortedError = Symbol.for('undici.error.UND_ERR_ABORTED')\nclass RequestAbortedError extends AbortError {\n constructor (message) {\n super(message)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kRequestAbortedError] === true\n }\n\n [kRequestAbortedError] = true\n}\n\nconst kInformationalError = Symbol.for('undici.error.UND_ERR_INFO')\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kInformationalError] === true\n }\n\n [kInformationalError] = true\n}\n\nconst kRequestContentLengthMismatchError = Symbol.for('undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH')\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kRequestContentLengthMismatchError] === true\n }\n\n [kRequestContentLengthMismatchError] = true\n}\n\nconst kResponseContentLengthMismatchError = Symbol.for('undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH')\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kResponseContentLengthMismatchError] === true\n }\n\n [kResponseContentLengthMismatchError] = true\n}\n\nconst kClientDestroyedError = Symbol.for('undici.error.UND_ERR_DESTROYED')\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kClientDestroyedError] === true\n }\n\n [kClientDestroyedError] = true\n}\n\nconst kClientClosedError = Symbol.for('undici.error.UND_ERR_CLOSED')\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kClientClosedError] === true\n }\n\n [kClientClosedError] = true\n}\n\nconst kSocketError = Symbol.for('undici.error.UND_ERR_SOCKET')\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kSocketError] === true\n }\n\n [kSocketError] = true\n}\n\nconst kNotSupportedError = Symbol.for('undici.error.UND_ERR_NOT_SUPPORTED')\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kNotSupportedError] === true\n }\n\n [kNotSupportedError] = true\n}\n\nconst kBalancedPoolMissingUpstreamError = Symbol.for('undici.error.UND_ERR_BPL_MISSING_UPSTREAM')\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kBalancedPoolMissingUpstreamError] === true\n }\n\n [kBalancedPoolMissingUpstreamError] = true\n}\n\nconst kHTTPParserError = Symbol.for('undici.error.UND_ERR_HTTP_PARSER')\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kHTTPParserError] === true\n }\n\n [kHTTPParserError] = true\n}\n\nconst kResponseExceededMaxSizeError = Symbol.for('undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE')\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kResponseExceededMaxSizeError] === true\n }\n\n [kResponseExceededMaxSizeError] = true\n}\n\nconst kRequestRetryError = Symbol.for('undici.error.UND_ERR_REQ_RETRY')\nclass RequestRetryError extends UndiciError {\n constructor (message, code, { headers, data }) {\n super(message)\n this.name = 'RequestRetryError'\n this.message = message || 'Request retry error'\n this.code = 'UND_ERR_REQ_RETRY'\n this.statusCode = code\n this.data = data\n this.headers = headers\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kRequestRetryError] === true\n }\n\n [kRequestRetryError] = true\n}\n\nconst kResponseError = Symbol.for('undici.error.UND_ERR_RESPONSE')\nclass ResponseError extends UndiciError {\n constructor (message, code, { headers, data }) {\n super(message)\n this.name = 'ResponseError'\n this.message = message || 'Response error'\n this.code = 'UND_ERR_RESPONSE'\n this.statusCode = code\n this.data = data\n this.headers = headers\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kResponseError] === true\n }\n\n [kResponseError] = true\n}\n\nconst kSecureProxyConnectionError = Symbol.for('undici.error.UND_ERR_PRX_TLS')\nclass SecureProxyConnectionError extends UndiciError {\n constructor (cause, message, options) {\n super(message, { cause, ...(options ?? {}) })\n this.name = 'SecureProxyConnectionError'\n this.message = message || 'Secure Proxy Connection failed'\n this.code = 'UND_ERR_PRX_TLS'\n this.cause = cause\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kSecureProxyConnectionError] === true\n }\n\n [kSecureProxyConnectionError] = true\n}\n\nconst kMessageSizeExceededError = Symbol.for('undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED')\nclass MessageSizeExceededError extends UndiciError {\n constructor (message) {\n super(message)\n this.name = 'MessageSizeExceededError'\n this.message = message || 'Max decompressed message size exceeded'\n this.code = 'UND_ERR_WS_MESSAGE_SIZE_EXCEEDED'\n }\n\n static [Symbol.hasInstance] (instance) {\n return instance && instance[kMessageSizeExceededError] === true\n }\n\n get [kMessageSizeExceededError] () {\n return true\n }\n}\n\nmodule.exports = {\n AbortError,\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError,\n RequestRetryError,\n ResponseError,\n SecureProxyConnectionError,\n MessageSizeExceededError\n}\n", @@ -97,6 +97,7 @@ "'use strict'\n\n/**\n * Checks if the given value is a valid LastEventId.\n * @param {string} value\n * @returns {boolean}\n */\nfunction isValidLastEventId (value) {\n // LastEventId should not contain U+0000 NULL\n return value.indexOf('\\u0000') === -1\n}\n\n/**\n * Checks if the given value is a base 10 digit.\n * @param {string} value\n * @returns {boolean}\n */\nfunction isASCIINumber (value) {\n if (value.length === 0) return false\n for (let i = 0; i < value.length; i++) {\n if (value.charCodeAt(i) < 0x30 || value.charCodeAt(i) > 0x39) return false\n }\n return true\n}\n\n// https://github.com/nodejs/undici/issues/2664\nfunction delay (ms) {\n return new Promise((resolve) => {\n setTimeout(resolve, ms).unref()\n })\n}\n\nmodule.exports = {\n isValidLastEventId,\n isASCIINumber,\n delay\n}\n", "'use strict'\nconst { Transform } = require('node:stream')\nconst { isASCIINumber, isValidLastEventId } = require('./util')\n\n/**\n * @type {number[]} BOM\n */\nconst BOM = [0xEF, 0xBB, 0xBF]\n/**\n * @type {10} LF\n */\nconst LF = 0x0A\n/**\n * @type {13} CR\n */\nconst CR = 0x0D\n/**\n * @type {58} COLON\n */\nconst COLON = 0x3A\n/**\n * @type {32} SPACE\n */\nconst SPACE = 0x20\n\n/**\n * @typedef {object} EventSourceStreamEvent\n * @type {object}\n * @property {string} [event] The event type.\n * @property {string} [data] The data of the message.\n * @property {string} [id] A unique ID for the event.\n * @property {string} [retry] The reconnection time, in milliseconds.\n */\n\n/**\n * @typedef eventSourceSettings\n * @type {object}\n * @property {string} lastEventId The last event ID received from the server.\n * @property {string} origin The origin of the event source.\n * @property {number} reconnectionTime The reconnection time, in milliseconds.\n */\n\nclass EventSourceStream extends Transform {\n /**\n * @type {eventSourceSettings}\n */\n state = null\n\n /**\n * Leading byte-order-mark check.\n * @type {boolean}\n */\n checkBOM = true\n\n /**\n * @type {boolean}\n */\n crlfCheck = false\n\n /**\n * @type {boolean}\n */\n eventEndCheck = false\n\n /**\n * @type {Buffer}\n */\n buffer = null\n\n pos = 0\n\n event = {\n data: undefined,\n event: undefined,\n id: undefined,\n retry: undefined\n }\n\n /**\n * @param {object} options\n * @param {eventSourceSettings} options.eventSourceSettings\n * @param {Function} [options.push]\n */\n constructor (options = {}) {\n // Enable object mode as EventSourceStream emits objects of shape\n // EventSourceStreamEvent\n options.readableObjectMode = true\n\n super(options)\n\n this.state = options.eventSourceSettings || {}\n if (options.push) {\n this.push = options.push\n }\n }\n\n /**\n * @param {Buffer} chunk\n * @param {string} _encoding\n * @param {Function} callback\n * @returns {void}\n */\n _transform (chunk, _encoding, callback) {\n if (chunk.length === 0) {\n callback()\n return\n }\n\n // Cache the chunk in the buffer, as the data might not be complete while\n // processing it\n // TODO: Investigate if there is a more performant way to handle\n // incoming chunks\n // see: https://github.com/nodejs/undici/issues/2630\n if (this.buffer) {\n this.buffer = Buffer.concat([this.buffer, chunk])\n } else {\n this.buffer = chunk\n }\n\n // Strip leading byte-order-mark if we opened the stream and started\n // the processing of the incoming data\n if (this.checkBOM) {\n switch (this.buffer.length) {\n case 1:\n // Check if the first byte is the same as the first byte of the BOM\n if (this.buffer[0] === BOM[0]) {\n // If it is, we need to wait for more data\n callback()\n return\n }\n // Set the checkBOM flag to false as we don't need to check for the\n // BOM anymore\n this.checkBOM = false\n\n // The buffer only contains one byte so we need to wait for more data\n callback()\n return\n case 2:\n // Check if the first two bytes are the same as the first two bytes\n // of the BOM\n if (\n this.buffer[0] === BOM[0] &&\n this.buffer[1] === BOM[1]\n ) {\n // If it is, we need to wait for more data, because the third byte\n // is needed to determine if it is the BOM or not\n callback()\n return\n }\n\n // Set the checkBOM flag to false as we don't need to check for the\n // BOM anymore\n this.checkBOM = false\n break\n case 3:\n // Check if the first three bytes are the same as the first three\n // bytes of the BOM\n if (\n this.buffer[0] === BOM[0] &&\n this.buffer[1] === BOM[1] &&\n this.buffer[2] === BOM[2]\n ) {\n // If it is, we can drop the buffered data, as it is only the BOM\n this.buffer = Buffer.alloc(0)\n // Set the checkBOM flag to false as we don't need to check for the\n // BOM anymore\n this.checkBOM = false\n\n // Await more data\n callback()\n return\n }\n // If it is not the BOM, we can start processing the data\n this.checkBOM = false\n break\n default:\n // The buffer is longer than 3 bytes, so we can drop the BOM if it is\n // present\n if (\n this.buffer[0] === BOM[0] &&\n this.buffer[1] === BOM[1] &&\n this.buffer[2] === BOM[2]\n ) {\n // Remove the BOM from the buffer\n this.buffer = this.buffer.subarray(3)\n }\n\n // Set the checkBOM flag to false as we don't need to check for the\n this.checkBOM = false\n break\n }\n }\n\n while (this.pos < this.buffer.length) {\n // If the previous line ended with an end-of-line, we need to check\n // if the next character is also an end-of-line.\n if (this.eventEndCheck) {\n // If the the current character is an end-of-line, then the event\n // is finished and we can process it\n\n // If the previous line ended with a carriage return, we need to\n // check if the current character is a line feed and remove it\n // from the buffer.\n if (this.crlfCheck) {\n // If the current character is a line feed, we can remove it\n // from the buffer and reset the crlfCheck flag\n if (this.buffer[this.pos] === LF) {\n this.buffer = this.buffer.subarray(this.pos + 1)\n this.pos = 0\n this.crlfCheck = false\n\n // It is possible that the line feed is not the end of the\n // event. We need to check if the next character is an\n // end-of-line character to determine if the event is\n // finished. We simply continue the loop to check the next\n // character.\n\n // As we removed the line feed from the buffer and set the\n // crlfCheck flag to false, we basically don't make any\n // distinction between a line feed and a carriage return.\n continue\n }\n this.crlfCheck = false\n }\n\n if (this.buffer[this.pos] === LF || this.buffer[this.pos] === CR) {\n // If the current character is a carriage return, we need to\n // set the crlfCheck flag to true, as we need to check if the\n // next character is a line feed so we can remove it from the\n // buffer\n if (this.buffer[this.pos] === CR) {\n this.crlfCheck = true\n }\n\n this.buffer = this.buffer.subarray(this.pos + 1)\n this.pos = 0\n if (\n this.event.data !== undefined || this.event.event || this.event.id || this.event.retry) {\n this.processEvent(this.event)\n }\n this.clearEvent()\n continue\n }\n // If the current character is not an end-of-line, then the event\n // is not finished and we have to reset the eventEndCheck flag\n this.eventEndCheck = false\n continue\n }\n\n // If the current character is an end-of-line, we can process the\n // line\n if (this.buffer[this.pos] === LF || this.buffer[this.pos] === CR) {\n // If the current character is a carriage return, we need to\n // set the crlfCheck flag to true, as we need to check if the\n // next character is a line feed\n if (this.buffer[this.pos] === CR) {\n this.crlfCheck = true\n }\n\n // In any case, we can process the line as we reached an\n // end-of-line character\n this.parseLine(this.buffer.subarray(0, this.pos), this.event)\n\n // Remove the processed line from the buffer\n this.buffer = this.buffer.subarray(this.pos + 1)\n // Reset the position as we removed the processed line from the buffer\n this.pos = 0\n // A line was processed and this could be the end of the event. We need\n // to check if the next line is empty to determine if the event is\n // finished.\n this.eventEndCheck = true\n continue\n }\n\n this.pos++\n }\n\n callback()\n }\n\n /**\n * @param {Buffer} line\n * @param {EventStreamEvent} event\n */\n parseLine (line, event) {\n // If the line is empty (a blank line)\n // Dispatch the event, as defined below.\n // This will be handled in the _transform method\n if (line.length === 0) {\n return\n }\n\n // If the line starts with a U+003A COLON character (:)\n // Ignore the line.\n const colonPosition = line.indexOf(COLON)\n if (colonPosition === 0) {\n return\n }\n\n let field = ''\n let value = ''\n\n // If the line contains a U+003A COLON character (:)\n if (colonPosition !== -1) {\n // Collect the characters on the line before the first U+003A COLON\n // character (:), and let field be that string.\n // TODO: Investigate if there is a more performant way to extract the\n // field\n // see: https://github.com/nodejs/undici/issues/2630\n field = line.subarray(0, colonPosition).toString('utf8')\n\n // Collect the characters on the line after the first U+003A COLON\n // character (:), and let value be that string.\n // If value starts with a U+0020 SPACE character, remove it from value.\n let valueStart = colonPosition + 1\n if (line[valueStart] === SPACE) {\n ++valueStart\n }\n // TODO: Investigate if there is a more performant way to extract the\n // value\n // see: https://github.com/nodejs/undici/issues/2630\n value = line.subarray(valueStart).toString('utf8')\n\n // Otherwise, the string is not empty but does not contain a U+003A COLON\n // character (:)\n } else {\n // Process the field using the steps described below, using the whole\n // line as the field name, and the empty string as the field value.\n field = line.toString('utf8')\n value = ''\n }\n\n // Modify the event with the field name and value. The value is also\n // decoded as UTF-8\n switch (field) {\n case 'data':\n if (event[field] === undefined) {\n event[field] = value\n } else {\n event[field] += `\\n${value}`\n }\n break\n case 'retry':\n if (isASCIINumber(value)) {\n event[field] = value\n }\n break\n case 'id':\n if (isValidLastEventId(value)) {\n event[field] = value\n }\n break\n case 'event':\n if (value.length > 0) {\n event[field] = value\n }\n break\n }\n }\n\n /**\n * @param {EventSourceStreamEvent} event\n */\n processEvent (event) {\n if (event.retry && isASCIINumber(event.retry)) {\n this.state.reconnectionTime = parseInt(event.retry, 10)\n }\n\n if (event.id && isValidLastEventId(event.id)) {\n this.state.lastEventId = event.id\n }\n\n // only dispatch event, when data is provided\n if (event.data !== undefined) {\n this.push({\n type: event.event || 'message',\n options: {\n data: event.data,\n lastEventId: this.state.lastEventId,\n origin: this.state.origin\n }\n })\n }\n }\n\n clearEvent () {\n this.event = {\n data: undefined,\n event: undefined,\n id: undefined,\n retry: undefined\n }\n }\n}\n\nmodule.exports = {\n EventSourceStream\n}\n", "'use strict'\n\nconst { pipeline } = require('node:stream')\nconst { fetching } = require('../fetch')\nconst { makeRequest } = require('../fetch/request')\nconst { webidl } = require('../fetch/webidl')\nconst { EventSourceStream } = require('./eventsource-stream')\nconst { parseMIMEType } = require('../fetch/data-url')\nconst { createFastMessageEvent } = require('../websocket/events')\nconst { isNetworkError } = require('../fetch/response')\nconst { delay } = require('./util')\nconst { kEnumerableProperty } = require('../../core/util')\nconst { environmentSettingsObject } = require('../fetch/util')\n\nlet experimentalWarned = false\n\n/**\n * A reconnection time, in milliseconds. This must initially be an implementation-defined value,\n * probably in the region of a few seconds.\n *\n * In Comparison:\n * - Chrome uses 3000ms.\n * - Deno uses 5000ms.\n *\n * @type {3000}\n */\nconst defaultReconnectionTime = 3000\n\n/**\n * The readyState attribute represents the state of the connection.\n * @enum\n * @readonly\n * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#dom-eventsource-readystate-dev\n */\n\n/**\n * The connection has not yet been established, or it was closed and the user\n * agent is reconnecting.\n * @type {0}\n */\nconst CONNECTING = 0\n\n/**\n * The user agent has an open connection and is dispatching events as it\n * receives them.\n * @type {1}\n */\nconst OPEN = 1\n\n/**\n * The connection is not open, and the user agent is not trying to reconnect.\n * @type {2}\n */\nconst CLOSED = 2\n\n/**\n * Requests for the element will have their mode set to \"cors\" and their credentials mode set to \"same-origin\".\n * @type {'anonymous'}\n */\nconst ANONYMOUS = 'anonymous'\n\n/**\n * Requests for the element will have their mode set to \"cors\" and their credentials mode set to \"include\".\n * @type {'use-credentials'}\n */\nconst USE_CREDENTIALS = 'use-credentials'\n\n/**\n * The EventSource interface is used to receive server-sent events. It\n * connects to a server over HTTP and receives events in text/event-stream\n * format without closing the connection.\n * @extends {EventTarget}\n * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#server-sent-events\n * @api public\n */\nclass EventSource extends EventTarget {\n #events = {\n open: null,\n error: null,\n message: null\n }\n\n #url = null\n #withCredentials = false\n\n #readyState = CONNECTING\n\n #request = null\n #controller = null\n\n #dispatcher\n\n /**\n * @type {import('./eventsource-stream').eventSourceSettings}\n */\n #state\n\n /**\n * Creates a new EventSource object.\n * @param {string} url\n * @param {EventSourceInit} [eventSourceInitDict]\n * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#the-eventsource-interface\n */\n constructor (url, eventSourceInitDict = {}) {\n // 1. Let ev be a new EventSource object.\n super()\n\n webidl.util.markAsUncloneable(this)\n\n const prefix = 'EventSource constructor'\n webidl.argumentLengthCheck(arguments, 1, prefix)\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('EventSource is experimental, expect them to change at any time.', {\n code: 'UNDICI-ES'\n })\n }\n\n url = webidl.converters.USVString(url, prefix, 'url')\n eventSourceInitDict = webidl.converters.EventSourceInitDict(eventSourceInitDict, prefix, 'eventSourceInitDict')\n\n this.#dispatcher = eventSourceInitDict.dispatcher\n this.#state = {\n lastEventId: '',\n reconnectionTime: defaultReconnectionTime\n }\n\n // 2. Let settings be ev's relevant settings object.\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n const settings = environmentSettingsObject\n\n let urlRecord\n\n try {\n // 3. Let urlRecord be the result of encoding-parsing a URL given url, relative to settings.\n urlRecord = new URL(url, settings.settingsObject.baseUrl)\n this.#state.origin = urlRecord.origin\n } catch (e) {\n // 4. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 5. Set ev's url to urlRecord.\n this.#url = urlRecord.href\n\n // 6. Let corsAttributeState be Anonymous.\n let corsAttributeState = ANONYMOUS\n\n // 7. If the value of eventSourceInitDict's withCredentials member is true,\n // then set corsAttributeState to Use Credentials and set ev's\n // withCredentials attribute to true.\n if (eventSourceInitDict.withCredentials) {\n corsAttributeState = USE_CREDENTIALS\n this.#withCredentials = true\n }\n\n // 8. Let request be the result of creating a potential-CORS request given\n // urlRecord, the empty string, and corsAttributeState.\n const initRequest = {\n redirect: 'follow',\n keepalive: true,\n // @see https://html.spec.whatwg.org/multipage/urls-and-fetching.html#cors-settings-attributes\n mode: 'cors',\n credentials: corsAttributeState === 'anonymous'\n ? 'same-origin'\n : 'omit',\n referrer: 'no-referrer'\n }\n\n // 9. Set request's client to settings.\n initRequest.client = environmentSettingsObject.settingsObject\n\n // 10. User agents may set (`Accept`, `text/event-stream`) in request's header list.\n initRequest.headersList = [['accept', { name: 'accept', value: 'text/event-stream' }]]\n\n // 11. Set request's cache mode to \"no-store\".\n initRequest.cache = 'no-store'\n\n // 12. Set request's initiator type to \"other\".\n initRequest.initiator = 'other'\n\n initRequest.urlList = [new URL(this.#url)]\n\n // 13. Set ev's request to request.\n this.#request = makeRequest(initRequest)\n\n this.#connect()\n }\n\n /**\n * Returns the state of this EventSource object's connection. It can have the\n * values described below.\n * @returns {0|1|2}\n * @readonly\n */\n get readyState () {\n return this.#readyState\n }\n\n /**\n * Returns the URL providing the event stream.\n * @readonly\n * @returns {string}\n */\n get url () {\n return this.#url\n }\n\n /**\n * Returns a boolean indicating whether the EventSource object was\n * instantiated with CORS credentials set (true), or not (false, the default).\n */\n get withCredentials () {\n return this.#withCredentials\n }\n\n #connect () {\n if (this.#readyState === CLOSED) return\n\n this.#readyState = CONNECTING\n\n const fetchParams = {\n request: this.#request,\n dispatcher: this.#dispatcher\n }\n\n // 14. Let processEventSourceEndOfBody given response res be the following step: if res is not a network error, then reestablish the connection.\n const processEventSourceEndOfBody = (response) => {\n if (isNetworkError(response)) {\n this.dispatchEvent(new Event('error'))\n this.close()\n }\n\n this.#reconnect()\n }\n\n // 15. Fetch request, with processResponseEndOfBody set to processEventSourceEndOfBody...\n fetchParams.processResponseEndOfBody = processEventSourceEndOfBody\n\n // and processResponse set to the following steps given response res:\n fetchParams.processResponse = (response) => {\n // 1. If res is an aborted network error, then fail the connection.\n\n if (isNetworkError(response)) {\n // 1. When a user agent is to fail the connection, the user agent\n // must queue a task which, if the readyState attribute is set to a\n // value other than CLOSED, sets the readyState attribute to CLOSED\n // and fires an event named error at the EventSource object. Once the\n // user agent has failed the connection, it does not attempt to\n // reconnect.\n if (response.aborted) {\n this.close()\n this.dispatchEvent(new Event('error'))\n return\n // 2. Otherwise, if res is a network error, then reestablish the\n // connection, unless the user agent knows that to be futile, in\n // which case the user agent may fail the connection.\n } else {\n this.#reconnect()\n return\n }\n }\n\n // 3. Otherwise, if res's status is not 200, or if res's `Content-Type`\n // is not `text/event-stream`, then fail the connection.\n const contentType = response.headersList.get('content-type', true)\n const mimeType = contentType !== null ? parseMIMEType(contentType) : 'failure'\n const contentTypeValid = mimeType !== 'failure' && mimeType.essence === 'text/event-stream'\n if (\n response.status !== 200 ||\n contentTypeValid === false\n ) {\n this.close()\n this.dispatchEvent(new Event('error'))\n return\n }\n\n // 4. Otherwise, announce the connection and interpret res's body\n // line by line.\n\n // When a user agent is to announce the connection, the user agent\n // must queue a task which, if the readyState attribute is set to a\n // value other than CLOSED, sets the readyState attribute to OPEN\n // and fires an event named open at the EventSource object.\n // @see https://html.spec.whatwg.org/multipage/server-sent-events.html#sse-processing-model\n this.#readyState = OPEN\n this.dispatchEvent(new Event('open'))\n\n // If redirected to a different origin, set the origin to the new origin.\n this.#state.origin = response.urlList[response.urlList.length - 1].origin\n\n const eventSourceStream = new EventSourceStream({\n eventSourceSettings: this.#state,\n push: (event) => {\n this.dispatchEvent(createFastMessageEvent(\n event.type,\n event.options\n ))\n }\n })\n\n pipeline(response.body.stream,\n eventSourceStream,\n (error) => {\n if (\n error?.aborted === false\n ) {\n this.close()\n this.dispatchEvent(new Event('error'))\n }\n })\n }\n\n this.#controller = fetching(fetchParams)\n }\n\n /**\n * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#sse-processing-model\n * @returns {Promise}\n */\n async #reconnect () {\n // When a user agent is to reestablish the connection, the user agent must\n // run the following steps. These steps are run in parallel, not as part of\n // a task. (The tasks that it queues, of course, are run like normal tasks\n // and not themselves in parallel.)\n\n // 1. Queue a task to run the following steps:\n\n // 1. If the readyState attribute is set to CLOSED, abort the task.\n if (this.#readyState === CLOSED) return\n\n // 2. Set the readyState attribute to CONNECTING.\n this.#readyState = CONNECTING\n\n // 3. Fire an event named error at the EventSource object.\n this.dispatchEvent(new Event('error'))\n\n // 2. Wait a delay equal to the reconnection time of the event source.\n await delay(this.#state.reconnectionTime)\n\n // 5. Queue a task to run the following steps:\n\n // 1. If the EventSource object's readyState attribute is not set to\n // CONNECTING, then return.\n if (this.#readyState !== CONNECTING) return\n\n // 2. Let request be the EventSource object's request.\n // 3. If the EventSource object's last event ID string is not the empty\n // string, then:\n // 1. Let lastEventIDValue be the EventSource object's last event ID\n // string, encoded as UTF-8.\n // 2. Set (`Last-Event-ID`, lastEventIDValue) in request's header\n // list.\n if (this.#state.lastEventId.length) {\n this.#request.headersList.set('last-event-id', this.#state.lastEventId, true)\n }\n\n // 4. Fetch request and process the response obtained in this fashion, if any, as described earlier in this section.\n this.#connect()\n }\n\n /**\n * Closes the connection, if any, and sets the readyState attribute to\n * CLOSED.\n */\n close () {\n webidl.brandCheck(this, EventSource)\n\n if (this.#readyState === CLOSED) return\n this.#readyState = CLOSED\n this.#controller.abort()\n this.#request = null\n }\n\n get onopen () {\n return this.#events.open\n }\n\n set onopen (fn) {\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onmessage () {\n return this.#events.message\n }\n\n set onmessage (fn) {\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get onerror () {\n return this.#events.error\n }\n\n set onerror (fn) {\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n}\n\nconst constantsPropertyDescriptors = {\n CONNECTING: {\n __proto__: null,\n configurable: false,\n enumerable: true,\n value: CONNECTING,\n writable: false\n },\n OPEN: {\n __proto__: null,\n configurable: false,\n enumerable: true,\n value: OPEN,\n writable: false\n },\n CLOSED: {\n __proto__: null,\n configurable: false,\n enumerable: true,\n value: CLOSED,\n writable: false\n }\n}\n\nObject.defineProperties(EventSource, constantsPropertyDescriptors)\nObject.defineProperties(EventSource.prototype, constantsPropertyDescriptors)\n\nObject.defineProperties(EventSource.prototype, {\n close: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n onopen: kEnumerableProperty,\n readyState: kEnumerableProperty,\n url: kEnumerableProperty,\n withCredentials: kEnumerableProperty\n})\n\nwebidl.converters.EventSourceInitDict = webidl.dictionaryConverter([\n {\n key: 'withCredentials',\n converter: webidl.converters.boolean,\n defaultValue: () => false\n },\n {\n key: 'dispatcher', // undici only\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n EventSource,\n defaultReconnectionTime\n}\n", + "/*\n** Syntax -- Unobtrusive Syntax Highlighting\n** Copyright (c) 2015-2024 Dr. Ralf S. Engelschall \n**\n** Permission is hereby granted, free of charge, to any person obtaining\n** a copy of this software and associated documentation files (the\n** \"Software\"), to deal in the Software without restriction, including\n** without limitation the rights to use, copy, modify, merge, publish,\n** distribute, sublicense, and/or sell copies of the Software, and to\n** permit persons to whom the Software is furnished to do so, subject to\n** the following conditions:\n**\n** The above copyright notice and this permission notice shall be included\n** in all copies or substantial portions of the Software.\n**\n** THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Syntax = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i {\n const prop = obj[name];\n const type = typeof prop;\n\n // Freeze prop if it is an object or function and also not already frozen\n if ((type === 'object' || type === 'function') && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '';\n\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n // rarely we can have a sublanguage where language is undefined\n // TODO: track down why\n return !!node.scope;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst scopeToCSSClass = (name, { prefix }) => {\n // sub-language\n if (name.startsWith(\"language:\")) {\n return name.replace(\"language:\", \"language-\");\n }\n // tiered scope: comment.line\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n // simple scope\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n const className = scopeToCSSClass(node.scope,\n { prefix: this.classPrefix });\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += ``;\n }\n}\n\n/** @typedef {{scope?: string, language?: string, children: Node[]} | string} Node */\n/** @typedef {{scope?: string, language?: string, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\n/** @returns {DataNode} */\nconst newNode = (opts = {}) => {\n /** @type DataNode */\n const result = { children: [] };\n Object.assign(result, opts);\n return result;\n};\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = newNode();\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} scope */\n openNode(scope) {\n /** @type Node */\n const node = newNode({ scope });\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addText(text)\n - __addSublanguage(emitter, subLanguageName)\n - startScope(scope)\n - endScope()\n - finalize()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /** @param {string} scope */\n startScope(scope) {\n this.openNode(scope);\n }\n\n endScope() {\n this.closeNode();\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n __addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n if (name) node.scope = `language:${name}`;\n\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n this.closeAllNodes();\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n scope: \"regexp\",\n begin: /\\/(?=[^/\\n]*\\/)/,\n end: /\\/[gimuy]*/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n APOS_STRING_MODE: APOS_STRING_MODE,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n COMMENT: COMMENT,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n C_NUMBER_RE: C_NUMBER_RE,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n IDENT_RE: IDENT_RE,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n METHOD_GUARD: METHOD_GUARD,\n NUMBER_MODE: NUMBER_MODE,\n NUMBER_RE: NUMBER_RE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n REGEXP_MODE: REGEXP_MODE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record | Array} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type {import(\"highlight.js/private\").KeywordDict} */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record */\n const emit = {};\n /** @type Record */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.9.0\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record} */\n const languages = Object.create(null);\n /** @type {Record} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substring(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.__addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {string} text\n * @param {string} scope\n */\n function emitKeyword(keyword, scope) {\n if (keyword === \"\") return;\n\n emitter.startScope(scope);\n emitter.addText(keyword);\n emitter.endScope();\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substring(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n if (!language.__emitTokens) {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substring(index));\n } else {\n language.__emitTokens(codeToHighlight, emitter);\n }\n\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language });\n\n if (element.dataset.highlighted) {\n console.log(\"Element previously highlighted. To highlight again, first unset `dataset.highlighted`.\", element);\n return;\n }\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n element.dataset.highlighted = \"yes\";\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function removePlugin(plugin) {\n const index = plugins.indexOf(plugin);\n if (index !== -1) {\n plugins.splice(index, 1);\n }\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin,\n removePlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// Other names for the variable may break build script\nconst highlight = HLJS({});\n\n// returns a new instance of the highlighter to be used for extensions\n// check https://github.com/wooorm/lowlight/issues/47\nhighlight.newInstance = () => HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n\n},{}],2:[function(_dereq_,module,exports){\n/*\nLanguage: C\nCategory: common, system\nWebsite: https://en.wikipedia.org/wiki/C_(programming_language)\n*/\n\n/** @type LanguageFn */\nfunction c(hljs) {\n const regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', { contains: [ { begin: /\\\\\\n/ } ] });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '('\n + DECLTYPE_AUTO_RE + '|'\n + regex.optional(NAMESPACE_RE)\n + '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE)\n + ')';\n\n\n const TYPES = {\n className: 'type',\n variants: [\n { begin: '\\\\b[a-z\\\\d_]*_t\\\\b' },\n { match: /\\batomic_[a-z]{3,6}\\b/ }\n ]\n\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + \"|.)\",\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n { begin: '\\\\b(0b[01\\']+)' },\n { begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)' },\n { begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)' }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: { keyword:\n 'if else elif endif define undef warning error line '\n + 'pragma _Pragma ifdef ifndef include' },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, { className: 'string' }),\n {\n className: 'string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n const C_KEYWORDS = [\n \"asm\",\n \"auto\",\n \"break\",\n \"case\",\n \"continue\",\n \"default\",\n \"do\",\n \"else\",\n \"enum\",\n \"extern\",\n \"for\",\n \"fortran\",\n \"goto\",\n \"if\",\n \"inline\",\n \"register\",\n \"restrict\",\n \"return\",\n \"sizeof\",\n \"struct\",\n \"switch\",\n \"typedef\",\n \"union\",\n \"volatile\",\n \"while\",\n \"_Alignas\",\n \"_Alignof\",\n \"_Atomic\",\n \"_Generic\",\n \"_Noreturn\",\n \"_Static_assert\",\n \"_Thread_local\",\n // aliases\n \"alignas\",\n \"alignof\",\n \"noreturn\",\n \"static_assert\",\n \"thread_local\",\n // not a C keyword but is, for all intents and purposes, treated exactly like one.\n \"_Pragma\"\n ];\n\n const C_TYPES = [\n \"float\",\n \"double\",\n \"signed\",\n \"unsigned\",\n \"int\",\n \"short\",\n \"long\",\n \"char\",\n \"void\",\n \"_Bool\",\n \"_Complex\",\n \"_Imaginary\",\n \"_Decimal32\",\n \"_Decimal64\",\n \"_Decimal128\",\n // modifiers\n \"const\",\n \"static\",\n // aliases\n \"complex\",\n \"bool\",\n \"imaginary\"\n ];\n\n const KEYWORDS = {\n keyword: C_KEYWORDS,\n type: C_TYPES,\n literal: 'true false NULL',\n // TODO: apply hinting work similar to what was done in cpp.js\n built_in: 'std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream '\n + 'auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set '\n + 'unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos '\n + 'asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp '\n + 'fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper '\n + 'isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow '\n + 'printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp '\n + 'strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan '\n + 'vfprintf vprintf vsprintf endl initializer_list unique_ptr',\n };\n\n const EXPRESSION_CONTAINS = [\n PREPROCESSOR,\n TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ hljs.inherit(TITLE_MODE, { className: \"title.function\" }) ],\n relevance: 0\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n TYPES\n ]\n }\n ]\n },\n TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: \"C\",\n aliases: [ 'h' ],\n keywords: KEYWORDS,\n // Until differentiations are added between `c` and `cpp`, `c` will\n // not be auto-detected to avoid auto-detect conflicts between C and C++\n disableAutodetect: true,\n illegal: '=]/,\n contains: [\n { beginKeywords: \"final class struct\" },\n hljs.TITLE_MODE\n ]\n }\n ]),\n exports: {\n preprocessor: PREPROCESSOR,\n strings: STRINGS,\n keywords: KEYWORDS\n }\n };\n}\n\nmodule.exports = c;\n\n},{}],3:[function(_dereq_,module,exports){\n/*\nLanguage: C#\nAuthor: Jason Diamond \nContributor: Nicolas LLOBERA , Pieter Vantorre , David Pine \nWebsite: https://docs.microsoft.com/dotnet/csharp/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction csharp(hljs) {\n const BUILT_IN_KEYWORDS = [\n 'bool',\n 'byte',\n 'char',\n 'decimal',\n 'delegate',\n 'double',\n 'dynamic',\n 'enum',\n 'float',\n 'int',\n 'long',\n 'nint',\n 'nuint',\n 'object',\n 'sbyte',\n 'short',\n 'string',\n 'ulong',\n 'uint',\n 'ushort'\n ];\n const FUNCTION_MODIFIERS = [\n 'public',\n 'private',\n 'protected',\n 'static',\n 'internal',\n 'protected',\n 'abstract',\n 'async',\n 'extern',\n 'override',\n 'unsafe',\n 'virtual',\n 'new',\n 'sealed',\n 'partial'\n ];\n const LITERAL_KEYWORDS = [\n 'default',\n 'false',\n 'null',\n 'true'\n ];\n const NORMAL_KEYWORDS = [\n 'abstract',\n 'as',\n 'base',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'const',\n 'continue',\n 'do',\n 'else',\n 'event',\n 'explicit',\n 'extern',\n 'finally',\n 'fixed',\n 'for',\n 'foreach',\n 'goto',\n 'if',\n 'implicit',\n 'in',\n 'interface',\n 'internal',\n 'is',\n 'lock',\n 'namespace',\n 'new',\n 'operator',\n 'out',\n 'override',\n 'params',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'record',\n 'ref',\n 'return',\n 'scoped',\n 'sealed',\n 'sizeof',\n 'stackalloc',\n 'static',\n 'struct',\n 'switch',\n 'this',\n 'throw',\n 'try',\n 'typeof',\n 'unchecked',\n 'unsafe',\n 'using',\n 'virtual',\n 'void',\n 'volatile',\n 'while'\n ];\n const CONTEXTUAL_KEYWORDS = [\n 'add',\n 'alias',\n 'and',\n 'ascending',\n 'async',\n 'await',\n 'by',\n 'descending',\n 'equals',\n 'from',\n 'get',\n 'global',\n 'group',\n 'init',\n 'into',\n 'join',\n 'let',\n 'nameof',\n 'not',\n 'notnull',\n 'on',\n 'or',\n 'orderby',\n 'partial',\n 'remove',\n 'select',\n 'set',\n 'unmanaged',\n 'value|0',\n 'var',\n 'when',\n 'where',\n 'with',\n 'yield'\n ];\n\n const KEYWORDS = {\n keyword: NORMAL_KEYWORDS.concat(CONTEXTUAL_KEYWORDS),\n built_in: BUILT_IN_KEYWORDS,\n literal: LITERAL_KEYWORDS\n };\n const TITLE_MODE = hljs.inherit(hljs.TITLE_MODE, { begin: '[a-zA-Z](\\\\.?\\\\w)*' });\n const NUMBERS = {\n className: 'number',\n variants: [\n { begin: '\\\\b(0b[01\\']+)' },\n { begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)(u|U|l|L|ul|UL|f|F|b|B)' },\n { begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)' }\n ],\n relevance: 0\n };\n const VERBATIM_STRING = {\n className: 'string',\n begin: '@\"',\n end: '\"',\n contains: [ { begin: '\"\"' } ]\n };\n const VERBATIM_STRING_NO_LF = hljs.inherit(VERBATIM_STRING, { illegal: /\\n/ });\n const SUBST = {\n className: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS\n };\n const SUBST_NO_LF = hljs.inherit(SUBST, { illegal: /\\n/ });\n const INTERPOLATED_STRING = {\n className: 'string',\n begin: /\\$\"/,\n end: '\"',\n illegal: /\\n/,\n contains: [\n { begin: /\\{\\{/ },\n { begin: /\\}\\}/ },\n hljs.BACKSLASH_ESCAPE,\n SUBST_NO_LF\n ]\n };\n const INTERPOLATED_VERBATIM_STRING = {\n className: 'string',\n begin: /\\$@\"/,\n end: '\"',\n contains: [\n { begin: /\\{\\{/ },\n { begin: /\\}\\}/ },\n { begin: '\"\"' },\n SUBST\n ]\n };\n const INTERPOLATED_VERBATIM_STRING_NO_LF = hljs.inherit(INTERPOLATED_VERBATIM_STRING, {\n illegal: /\\n/,\n contains: [\n { begin: /\\{\\{/ },\n { begin: /\\}\\}/ },\n { begin: '\"\"' },\n SUBST_NO_LF\n ]\n });\n SUBST.contains = [\n INTERPOLATED_VERBATIM_STRING,\n INTERPOLATED_STRING,\n VERBATIM_STRING,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n NUMBERS,\n hljs.C_BLOCK_COMMENT_MODE\n ];\n SUBST_NO_LF.contains = [\n INTERPOLATED_VERBATIM_STRING_NO_LF,\n INTERPOLATED_STRING,\n VERBATIM_STRING_NO_LF,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n NUMBERS,\n hljs.inherit(hljs.C_BLOCK_COMMENT_MODE, { illegal: /\\n/ })\n ];\n const STRING = { variants: [\n INTERPOLATED_VERBATIM_STRING,\n INTERPOLATED_STRING,\n VERBATIM_STRING,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ] };\n\n const GENERIC_MODIFIER = {\n begin: \"<\",\n end: \">\",\n contains: [\n { beginKeywords: \"in out\" },\n TITLE_MODE\n ]\n };\n const TYPE_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '(\\\\s*,\\\\s*' + hljs.IDENT_RE + ')*>)?(\\\\[\\\\])?';\n const AT_IDENTIFIER = {\n // prevents expressions like `@class` from incorrect flagging\n // `class` as a keyword\n begin: \"@\" + hljs.IDENT_RE,\n relevance: 0\n };\n\n return {\n name: 'C#',\n aliases: [\n 'cs',\n 'c#'\n ],\n keywords: KEYWORDS,\n illegal: /::/,\n contains: [\n hljs.COMMENT(\n '///',\n '$',\n {\n returnBegin: true,\n contains: [\n {\n className: 'doctag',\n variants: [\n {\n begin: '///',\n relevance: 0\n },\n { begin: '' },\n {\n begin: ''\n }\n ]\n }\n ]\n }\n ),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'meta',\n begin: '#',\n end: '$',\n keywords: { keyword: 'if else elif endif define undef warning error line region endregion pragma checksum' }\n },\n STRING,\n NUMBERS,\n {\n beginKeywords: 'class interface',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:,]/,\n contains: [\n { beginKeywords: \"where class\" },\n TITLE_MODE,\n GENERIC_MODIFIER,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:]/,\n contains: [\n TITLE_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n beginKeywords: 'record',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:]/,\n contains: [\n TITLE_MODE,\n GENERIC_MODIFIER,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n // [Attributes(\"\")]\n className: 'meta',\n begin: '^\\\\s*\\\\[(?=[\\\\w])',\n excludeBegin: true,\n end: '\\\\]',\n excludeEnd: true,\n contains: [\n {\n className: 'string',\n begin: /\"/,\n end: /\"/\n }\n ]\n },\n {\n // Expression keywords prevent 'keyword Name(...)' from being\n // recognized as a function definition\n beginKeywords: 'new return throw await else',\n relevance: 0\n },\n {\n className: 'function',\n begin: '(' + TYPE_IDENT_RE + '\\\\s+)+' + hljs.IDENT_RE + '\\\\s*(<[^=]+>\\\\s*)?\\\\(',\n returnBegin: true,\n end: /\\s*[{;=]/,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n // prevents these from being highlighted `title`\n {\n beginKeywords: FUNCTION_MODIFIERS.join(\" \"),\n relevance: 0\n },\n {\n begin: hljs.IDENT_RE + '\\\\s*(<[^=]+>\\\\s*)?\\\\(',\n returnBegin: true,\n contains: [\n hljs.TITLE_MODE,\n GENERIC_MODIFIER\n ],\n relevance: 0\n },\n { match: /\\(\\)/ },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n STRING,\n NUMBERS,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n AT_IDENTIFIER\n ]\n };\n}\n\nmodule.exports = csharp;\n\n},{}],4:[function(_dereq_,module,exports){\n(function (global){(function (){\n\"use strict\";\n\nvar _tokenizr = _interopRequireDefault(_dereq_(\"tokenizr\"));\nvar _core = _interopRequireDefault(_dereq_(\"highlight.js/lib/core\"));\nvar _sax = _interopRequireDefault(_dereq_(\"sax\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/*\n** Syntax -- Unobtrusive Syntax Highlighting\n** Copyright (c) 2015-2024 Dr. Ralf S. Engelschall \n**\n** Permission is hereby granted, free of charge, to any person obtaining\n** a copy of this software and associated documentation files (the\n** \"Software\"), to deal in the Software without restriction, including\n** without limitation the rights to use, copy, modify, merge, publish,\n** distribute, sublicense, and/or sell copies of the Software, and to\n** permit persons to whom the Software is furnished to do so, subject to\n** the following conditions:\n**\n** The above copyright notice and this permission notice shall be included\n** in all copies or substantial portions of the Software.\n**\n** THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n/* external requirements */\n\n/* load language support (Web) */\n_core.default.registerLanguage(\"xml\", _dereq_(\"highlight.js/lib/languages/xml\"));\n_core.default.registerLanguage(\"css\", _dereq_(\"highlight.js/lib/languages/css\"));\n_core.default.registerLanguage(\"less\", _dereq_(\"highlight.js/lib/languages/less\"));\n_core.default.registerLanguage(\"http\", _dereq_(\"highlight.js/lib/languages/http\"));\n\n/* load language support (Configuration) */\n_core.default.registerLanguage(\"json\", _dereq_(\"highlight.js/lib/languages/json\"));\n_core.default.registerLanguage(\"yaml\", _dereq_(\"highlight.js/lib/languages/yaml\"));\n_core.default.registerLanguage(\"ini\", _dereq_(\"highlight.js/lib/languages/ini\"));\n\n/* load language support (Programming Languages) */\n_core.default.registerLanguage(\"c\", _dereq_(\"highlight.js/lib/languages/c\"));\n_core.default.registerLanguage(\"cpp\", _dereq_(\"highlight.js/lib/languages/cpp\"));\n_core.default.registerLanguage(\"objectivec\", _dereq_(\"highlight.js/lib/languages/objectivec\"));\n_core.default.registerLanguage(\"swift\", _dereq_(\"highlight.js/lib/languages/swift\"));\n_core.default.registerLanguage(\"csharp\", _dereq_(\"highlight.js/lib/languages/csharp\"));\n_core.default.registerLanguage(\"fsharp\", _dereq_(\"highlight.js/lib/languages/fsharp\"));\n_core.default.registerLanguage(\"go\", _dereq_(\"highlight.js/lib/languages/go\"));\n_core.default.registerLanguage(\"java\", _dereq_(\"highlight.js/lib/languages/java\"));\n_core.default.registerLanguage(\"kotlin\", _dereq_(\"highlight.js/lib/languages/kotlin\"));\n_core.default.registerLanguage(\"groovy\", _dereq_(\"highlight.js/lib/languages/groovy\"));\n_core.default.registerLanguage(\"scala\", _dereq_(\"highlight.js/lib/languages/scala\"));\n_core.default.registerLanguage(\"javascript\", _dereq_(\"highlight.js/lib/languages/javascript\"));\n_core.default.registerLanguage(\"typescript\", _dereq_(\"highlight.js/lib/languages/typescript\"));\n_core.default.registerLanguage(\"php\", _dereq_(\"highlight.js/lib/languages/php\"));\n_core.default.registerLanguage(\"perl\", _dereq_(\"highlight.js/lib/languages/perl\"));\n_core.default.registerLanguage(\"python\", _dereq_(\"highlight.js/lib/languages/python\"));\n_core.default.registerLanguage(\"ruby\", _dereq_(\"highlight.js/lib/languages/ruby\"));\n\n/* load language support (Shell) */\n_core.default.registerLanguage(\"shell\", _dereq_(\"highlight.js/lib/languages/shell\"));\n_core.default.registerLanguage(\"bash\", _dereq_(\"highlight.js/lib/languages/bash\"));\n_core.default.registerLanguage(\"powershell\", _dereq_(\"highlight.js/lib/languages/powershell\"));\n_core.default.registerLanguage(\"makefile\", _dereq_(\"highlight.js/lib/languages/makefile\"));\n\n/* load language support (Other) */\n_core.default.registerLanguage(\"sql\", _dereq_(\"highlight.js/lib/languages/sql\"));\n_core.default.registerLanguage(\"markdown\", _dereq_(\"highlight.js/lib/languages/markdown\"));\n_core.default.registerLanguage(\"diff\", _dereq_(\"highlight.js/lib/languages/diff\"));\n\n/* internal API symbols */\nconst CONFIG = Symbol(\"CONFIG\");\nconst RICHTEXT = Symbol(\"RICHTEXT\");\nconst PLAINTEXT = Symbol(\"PLAINTEXT\");\nconst MARKUP = Symbol(\"MARKUP\");\nconst SEQUENCE = Symbol(\"SEQUENCE\");\n\n/* exported API class */\nclass Syntax {\n /* return the library version */\n static version() {\n /* global 1: false */\n /* global 6: false */\n /* global 3: false */\n /* global 20240311: false */\n return {\n major: 1,\n minor: 6,\n micro: 3,\n date: 20240311\n };\n }\n\n /* construct the API class */\n constructor(config = {}) {\n /* predefine valid options */\n this[CONFIG] = {\n language: \"auto\",\n cssPrefix: \"syntax-\",\n xmlPrefix: \"syntax-\",\n tabReplace: \" \",\n newlineReplace: \"\\n\",\n regexAnchorOpen: \"=\\\\(\",\n regexAnchorClose: \"\\\\)=\",\n regexMarkerOpen: \"=\\\\{\",\n regexMarkerClose: \"\\\\}=\"\n };\n\n /* initialize us */\n this.config(config);\n this._reset();\n }\n\n /* INTERNAL: reset the internals */\n _reset() {\n this[RICHTEXT] = \"\";\n this[PLAINTEXT] = \"\";\n this[MARKUP] = {\n anchor: {},\n marker: [],\n comment: [],\n keyword: [],\n literal: []\n };\n this[SEQUENCE] = [];\n }\n\n /* set configuration options */\n config(config = {}) {\n /* sanity check usage */\n if (arguments.length !== 1) throw new Error(\"invalid number of arguments (1 expected)\");\n if (typeof config !== \"object\") throw new Error(\"invalid configuration argument (object expected)\");\n\n /* remember old language */\n const languageOld = this[CONFIG].language;\n\n /* iterate over all configuration options */\n Object.keys(config).forEach(option => {\n /* sanity check their validity */\n if (this[CONFIG][option] === undefined) throw new Error(`invalid configuration option \"${option}\"`);\n\n /* override default value */\n this[CONFIG][option] = config[option];\n });\n\n /* try to auto-load new language */\n const language = this[CONFIG].language;\n if (language !== languageOld && language.match(/^(?:auto|none)$/) === null) {\n const found = _core.default.getLanguage(language);\n if (!found) {\n /* global global: true */\n if (typeof global.window === \"object\") throw new Error(\"cannot auto-load new languages in browser environment\");\n let obj;\n try {\n obj = _dereq_(\"highlight.js/lib/languages/\" + language);\n } catch (ex) {\n /* no-op */\n }\n if (!obj) throw new Error(`failed to load language \"${language}\"`);\n _core.default.registerLanguage(language, obj);\n }\n }\n return this;\n }\n\n /* set rich text */\n richtext(text) {\n /* sanity check usage */\n if (arguments.length !== 1) throw new Error(\"invalid number of arguments (1 expected)\");\n if (typeof text !== \"string\") throw new Error(\"invalid rich text argument (string expected)\");\n\n /* reset internals */\n this._reset();\n\n /* parse rich text */\n this[RICHTEXT] = text;\n this._extract();\n this._highlight();\n return this;\n }\n\n /* INTERNAL: split rich text into plain text plus anchors/markers */\n _extract() {\n /* extract explicit language-unspecific anchor/marker\n (beforehand to make text valid language syntax again) */\n const lexer = new _tokenizr.default();\n const regexAnchor = new RegExp(`${this[CONFIG].regexAnchorOpen}(\\\\d+)${this[CONFIG].regexAnchorClose}`);\n const regexMarker = new RegExp(`${this[CONFIG].regexMarkerOpen}(.+?)${this[CONFIG].regexMarkerClose}`);\n const regexTextNonGreedy = new RegExp(`(?:.|\\\\r?\\\\n)+?(?=${this[CONFIG].regexAnchorOpen}|${this[CONFIG].regexMarkerOpen})`);\n const regexTextGreedy = /(?:.|\\r?\\n)+/;\n lexer.rule(regexAnchor, (ctx, m) => {\n ctx.accept(\"anchor\", m[1]);\n });\n lexer.rule(regexMarker, (ctx, m) => {\n ctx.accept(\"marker\", m[1]);\n });\n lexer.rule(regexTextNonGreedy, (ctx, m) => {\n ctx.accept(\"text\", m[0]);\n });\n lexer.rule(regexTextGreedy, (ctx, m) => {\n ctx.accept(\"text\", m[0]);\n });\n lexer.input(this[RICHTEXT]);\n this[PLAINTEXT] = \"\";\n let pos = 0;\n lexer.tokens().forEach(token => {\n if (token.isA(\"anchor\")) this[MARKUP].anchor[token.value] = pos;else if (token.isA(\"marker\")) {\n this[MARKUP].marker.push([pos, pos + token.value.length]);\n this[PLAINTEXT] += token.value;\n pos += token.value.length;\n } else if (token.isA(\"text\")) {\n this[PLAINTEXT] += token.value;\n pos += token.value.length;\n }\n });\n }\n\n /* INTERNAL: find language-specific syntactical elements of text */\n _highlight() {\n /* pass 1: apply the highlighting engine onto plain text and get XML/HTML */\n if (this[CONFIG].language === \"none\") return;\n let result;\n _core.default.configure({\n tabReplace: this[CONFIG].tabReplace,\n classPrefix: \"highlight-redux-\"\n });\n if (this[CONFIG].language === \"auto\") result = _core.default.highlightAuto(this[PLAINTEXT]);else if (this[CONFIG].language instanceof Array) result = _core.default.highlightAuto(this[PLAINTEXT], this[CONFIG].language);else result = _core.default.highlight(this[PLAINTEXT], {\n language: this[CONFIG].language,\n ignoreIllegals: true\n });\n\n /* pass 2: parse XML/HTML to determine highlighting positions */\n let pos = 0;\n const stack = [];\n const parser = _sax.default.parser(true, {});\n parser.onerror = err => {\n throw new Error(`internal XML/HTML parsing error: ${err}?!`);\n };\n parser.onopentag = node => {\n let type = node.attributes.class;\n if (typeof type === \"string\" && type.match(/^highlight-redux-(?:regexp|string|number)$/) !== null) type = \"highlight-redux-literal\";\n if (typeof type === \"string\" && type.match(/^highlight-redux-(?:keyword|literal|comment)$/) !== null) {\n type = type.replace(/^highlight-redux-/, \"\");\n stack.push({\n type,\n tag: node.name,\n pos,\n take: true\n });\n } else stack.push({\n take: false,\n tag: node.name\n });\n };\n parser.ontext = text => {\n pos += text.length;\n };\n parser.onclosetag = name => {\n const info = stack.pop();\n if (info.tag !== name) throw new Error(\"internal XML/HTML parsing error: \" + `open tag <${info.tag}> does not match close tag ?!`);\n if (info.take) this[MARKUP][info.type].push([info.pos, pos]);\n };\n parser.write(`${result.value}`).close();\n return this;\n }\n\n /* retrieve plain text */\n plaintext(plaintext) {\n if (arguments.length > 1) throw new Error(\"invalid number of arguments (0 or 1 expected)\");\n if (arguments.length === 1) {\n if (typeof plaintext !== \"string\") throw new Error(\"invalid plain text argument (string expected)\");\n this[PLAINTEXT] = plaintext;\n return this;\n } else return this[PLAINTEXT];\n }\n\n /* set/get markup information */\n markup(markup) {\n if (arguments.length > 1) throw new Error(\"invalid number of arguments (0 or 1 expected)\");\n if (arguments.length === 1) {\n if (typeof markup !== \"object\") throw new Error(\"invalid markup argument (object expected)\");\n this[MARKUP] = markup;\n return this;\n } else return this[MARKUP];\n }\n\n /* INTERNAL: merge and sequence the markup information */\n _sequence() {\n /* insert all highlighting results\n (potentially strictly nested, but never overlapping) */\n let list = [];\n const insert = type => {\n const items = this[MARKUP][type];\n items.forEach(item => {\n list.push([item[0], \"S\", type]);\n list.push([item[1], \"E\", type]);\n });\n };\n insert(\"comment\");\n insert(\"keyword\");\n insert(\"literal\");\n\n /* make list sorted according to position */\n list = list.sort((a, b) => a[0] - b[0]);\n\n /* iterate over all markers... */\n this[MARKUP].marker.forEach(marker => {\n const [S, E] = marker;\n\n /* find position for marker start */\n let i;\n for (i = 0; i < list.length; i++) if (list[i][0] >= S) break;\n\n /* skip start tags at marker start position\n (to avoid inserting zero-length markers) */\n for (; i < list.length; i++) if (!(list[i][0] === S && list[i][1] === \"S\")) break;\n\n /* insert marker start */\n list.splice(i, 0, [S, \"S\", \"marker\"]);\n i += 1;\n\n /* skip over all intermediate items */\n for (; i < list.length; i++) {\n if (list[i][0] >= E) break;\n /* stop marker before, start again after */\n list.splice(i, 0, [list[i][0], \"E\", \"marker\"]);\n list.splice(i + 2, 0, [list[i][0], \"S\", \"marker\"]);\n i += 2;\n }\n\n /* insert marker end */\n list.splice(i, 0, [E, \"E\", \"marker\"]);\n });\n\n /* iterate over all anchors... */\n Object.keys(this[MARKUP].anchor).forEach(anchor => {\n const pos = this[MARKUP].anchor[anchor];\n\n /* find position for anchor start */\n let i;\n for (i = 0; i < list.length; i++) if (list[i][0] >= pos) break;\n\n /* insert anchor */\n list.splice(i, 0, [pos, \"X\", \"anchor\", anchor]);\n });\n\n /* iterate over all markers */\n this[SEQUENCE] = list;\n }\n\n /* convert into HTML */\n html() {\n /* sanity check usage */\n if (arguments.length !== 0) throw new Error(\"invalid number of arguments (0 expected)\");\n\n /* merge and sequence the markup information */\n this._sequence();\n\n /* helper function for escaping characters with special meaning in HTML */\n const renderText = text => text.replace(/&/g, \"&\").replace(//g, \">\").replace(/\\r?\\n/g, this[CONFIG].newlineReplace);\n\n /* spice HTML markup into the plain text */\n const text = this[PLAINTEXT];\n let markup = \"\";\n let posLast = 0;\n this[SEQUENCE].forEach(item => {\n const [pos, kind, type, val] = item;\n let tag;\n if (type === \"anchor\") tag = ``;else if (kind === \"S\") tag = ``;else tag = \"\";\n markup += renderText(text.substring(posLast, pos)) + tag;\n posLast = pos;\n });\n markup += renderText(text.substring(posLast));\n return markup;\n }\n\n /* convert into XML */\n xml() {\n /* sanity check usage */\n if (arguments.length !== 0) throw new Error(\"invalid number of arguments (0 expected)\");\n\n /* merge and sequence the markup information */\n this._sequence();\n\n /* helper function for escaping characters with special meaning in HTML */\n const renderText = text => text.replace(/&/g, \"&\").replace(//g, \">\").replace(/\\r?\\n/g, this[CONFIG].newlineReplace);\n\n /* spice XML markup into the plain text */\n const text = this[PLAINTEXT];\n let markup = \"\";\n let posLast = 0;\n this[SEQUENCE].forEach(item => {\n const [pos, kind, type, val] = item;\n let tag;\n if (type === \"anchor\") tag = `<${this[CONFIG].xmlPrefix}${type}>${val}`;else if (kind === \"S\") tag = `<${this[CONFIG].xmlPrefix}${type}>`;else tag = ``;\n markup += renderText(text.substring(posLast, pos)) + tag;\n posLast = pos;\n });\n markup += renderText(text.substring(posLast));\n return markup;\n }\n}\n\n/* export the traditional way for interoperability reasons\n (as Babel would export an object with a 'default' field) */\nmodule.exports = Syntax;\n\n}).call(this)}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"highlight.js/lib/core\":1,\"highlight.js/lib/languages/bash\":\"highlight.js/lib/languages/bash\",\"highlight.js/lib/languages/c\":2,\"highlight.js/lib/languages/cpp\":\"highlight.js/lib/languages/cpp\",\"highlight.js/lib/languages/csharp\":3,\"highlight.js/lib/languages/css\":\"highlight.js/lib/languages/css\",\"highlight.js/lib/languages/diff\":\"highlight.js/lib/languages/diff\",\"highlight.js/lib/languages/fsharp\":\"highlight.js/lib/languages/fsharp\",\"highlight.js/lib/languages/go\":\"highlight.js/lib/languages/go\",\"highlight.js/lib/languages/groovy\":\"highlight.js/lib/languages/groovy\",\"highlight.js/lib/languages/http\":\"highlight.js/lib/languages/http\",\"highlight.js/lib/languages/ini\":\"highlight.js/lib/languages/ini\",\"highlight.js/lib/languages/java\":\"highlight.js/lib/languages/java\",\"highlight.js/lib/languages/javascript\":\"highlight.js/lib/languages/javascript\",\"highlight.js/lib/languages/json\":\"highlight.js/lib/languages/json\",\"highlight.js/lib/languages/kotlin\":\"highlight.js/lib/languages/kotlin\",\"highlight.js/lib/languages/less\":\"highlight.js/lib/languages/less\",\"highlight.js/lib/languages/makefile\":\"highlight.js/lib/languages/makefile\",\"highlight.js/lib/languages/markdown\":\"highlight.js/lib/languages/markdown\",\"highlight.js/lib/languages/objectivec\":\"highlight.js/lib/languages/objectivec\",\"highlight.js/lib/languages/perl\":\"highlight.js/lib/languages/perl\",\"highlight.js/lib/languages/php\":\"highlight.js/lib/languages/php\",\"highlight.js/lib/languages/powershell\":\"highlight.js/lib/languages/powershell\",\"highlight.js/lib/languages/python\":\"highlight.js/lib/languages/python\",\"highlight.js/lib/languages/ruby\":\"highlight.js/lib/languages/ruby\",\"highlight.js/lib/languages/scala\":\"highlight.js/lib/languages/scala\",\"highlight.js/lib/languages/shell\":\"highlight.js/lib/languages/shell\",\"highlight.js/lib/languages/sql\":\"highlight.js/lib/languages/sql\",\"highlight.js/lib/languages/swift\":\"highlight.js/lib/languages/swift\",\"highlight.js/lib/languages/typescript\":\"highlight.js/lib/languages/typescript\",\"highlight.js/lib/languages/xml\":\"highlight.js/lib/languages/xml\",\"highlight.js/lib/languages/yaml\":\"highlight.js/lib/languages/yaml\",\"sax\":\"sax\",\"tokenizr\":\"tokenizr\"}]},{},[4])(4)\n});\n", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.VERSION = '1.9.1';\n//# sourceMappingURL=version.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCompatible = exports._makeCompatibilityCheck = void 0;\nconst version_1 = require(\"../version\");\nconst re = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n/**\n * Create a function to test an API version to see if it is compatible with the provided ownVersion.\n *\n * The returned function has the following semantics:\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param ownVersion version which should be checked against\n */\nfunction _makeCompatibilityCheck(ownVersion) {\n const acceptedVersions = new Set([ownVersion]);\n const rejectedVersions = new Set();\n const myVersionMatch = ownVersion.match(re);\n if (!myVersionMatch) {\n // we cannot guarantee compatibility so we always return noop\n return () => false;\n }\n const ownVersionParsed = {\n major: +myVersionMatch[1],\n minor: +myVersionMatch[2],\n patch: +myVersionMatch[3],\n prerelease: myVersionMatch[4],\n };\n // if ownVersion has a prerelease tag, versions must match exactly\n if (ownVersionParsed.prerelease != null) {\n return function isExactmatch(globalVersion) {\n return globalVersion === ownVersion;\n };\n }\n function _reject(v) {\n rejectedVersions.add(v);\n return false;\n }\n function _accept(v) {\n acceptedVersions.add(v);\n return true;\n }\n return function isCompatible(globalVersion) {\n if (acceptedVersions.has(globalVersion)) {\n return true;\n }\n if (rejectedVersions.has(globalVersion)) {\n return false;\n }\n const globalVersionMatch = globalVersion.match(re);\n if (!globalVersionMatch) {\n // cannot parse other version\n // we cannot guarantee compatibility so we always noop\n return _reject(globalVersion);\n }\n const globalVersionParsed = {\n major: +globalVersionMatch[1],\n minor: +globalVersionMatch[2],\n patch: +globalVersionMatch[3],\n prerelease: globalVersionMatch[4],\n };\n // if globalVersion has a prerelease tag, versions must match exactly\n if (globalVersionParsed.prerelease != null) {\n return _reject(globalVersion);\n }\n // major versions must match\n if (ownVersionParsed.major !== globalVersionParsed.major) {\n return _reject(globalVersion);\n }\n if (ownVersionParsed.major === 0) {\n if (ownVersionParsed.minor === globalVersionParsed.minor &&\n ownVersionParsed.patch <= globalVersionParsed.patch) {\n return _accept(globalVersion);\n }\n return _reject(globalVersion);\n }\n if (ownVersionParsed.minor <= globalVersionParsed.minor) {\n return _accept(globalVersion);\n }\n return _reject(globalVersion);\n };\n}\nexports._makeCompatibilityCheck = _makeCompatibilityCheck;\n/**\n * Test an API version to see if it is compatible with this API.\n *\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param version version of the API requesting an instance of the global API\n */\nexports.isCompatible = _makeCompatibilityCheck(version_1.VERSION);\n//# sourceMappingURL=semver.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unregisterGlobal = exports.getGlobal = exports.registerGlobal = void 0;\nconst version_1 = require(\"../version\");\nconst semver_1 = require(\"./semver\");\nconst major = version_1.VERSION.split('.')[0];\nconst GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(`opentelemetry.js.api.${major}`);\nconst _global = (typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : {});\nfunction registerGlobal(type, instance, diag, allowOverride = false) {\n var _a;\n const api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : {\n version: version_1.VERSION,\n });\n if (!allowOverride && api[type]) {\n // already registered an API of this type\n const err = new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${type}`);\n diag.error(err.stack || err.message);\n return false;\n }\n if (api.version !== version_1.VERSION) {\n // All registered APIs must be of the same version exactly\n const err = new Error(`@opentelemetry/api: Registration of version v${api.version} for ${type} does not match previously registered API v${version_1.VERSION}`);\n diag.error(err.stack || err.message);\n return false;\n }\n api[type] = instance;\n diag.debug(`@opentelemetry/api: Registered a global for ${type} v${version_1.VERSION}.`);\n return true;\n}\nexports.registerGlobal = registerGlobal;\nfunction getGlobal(type) {\n var _a, _b;\n const globalVersion = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _a === void 0 ? void 0 : _a.version;\n if (!globalVersion || !(0, semver_1.isCompatible)(globalVersion)) {\n return;\n }\n return (_b = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b === void 0 ? void 0 : _b[type];\n}\nexports.getGlobal = getGlobal;\nfunction unregisterGlobal(type, diag) {\n diag.debug(`@opentelemetry/api: Unregistering a global for ${type} v${version_1.VERSION}.`);\n const api = _global[GLOBAL_OPENTELEMETRY_API_KEY];\n if (api) {\n delete api[type];\n }\n}\nexports.unregisterGlobal = unregisterGlobal;\n//# sourceMappingURL=global-utils.js.map", @@ -143,7 +144,7 @@ "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.trace = exports.propagation = exports.metrics = exports.diag = exports.context = exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = exports.isValidSpanId = exports.isValidTraceId = exports.isSpanContextValid = exports.createTraceState = exports.TraceFlags = exports.SpanStatusCode = exports.SpanKind = exports.SamplingDecision = exports.ProxyTracerProvider = exports.ProxyTracer = exports.defaultTextMapSetter = exports.defaultTextMapGetter = exports.ValueType = exports.createNoopMeter = exports.DiagLogLevel = exports.DiagConsoleLogger = exports.ROOT_CONTEXT = exports.createContextKey = exports.baggageEntryMetadataFromString = void 0;\nvar utils_1 = require(\"./baggage/utils\");\nObject.defineProperty(exports, \"baggageEntryMetadataFromString\", { enumerable: true, get: function () { return utils_1.baggageEntryMetadataFromString; } });\n// Context APIs\nvar context_1 = require(\"./context/context\");\nObject.defineProperty(exports, \"createContextKey\", { enumerable: true, get: function () { return context_1.createContextKey; } });\nObject.defineProperty(exports, \"ROOT_CONTEXT\", { enumerable: true, get: function () { return context_1.ROOT_CONTEXT; } });\n// Diag APIs\nvar consoleLogger_1 = require(\"./diag/consoleLogger\");\nObject.defineProperty(exports, \"DiagConsoleLogger\", { enumerable: true, get: function () { return consoleLogger_1.DiagConsoleLogger; } });\nvar types_1 = require(\"./diag/types\");\nObject.defineProperty(exports, \"DiagLogLevel\", { enumerable: true, get: function () { return types_1.DiagLogLevel; } });\n// Metrics APIs\nvar NoopMeter_1 = require(\"./metrics/NoopMeter\");\nObject.defineProperty(exports, \"createNoopMeter\", { enumerable: true, get: function () { return NoopMeter_1.createNoopMeter; } });\nvar Metric_1 = require(\"./metrics/Metric\");\nObject.defineProperty(exports, \"ValueType\", { enumerable: true, get: function () { return Metric_1.ValueType; } });\n// Propagation APIs\nvar TextMapPropagator_1 = require(\"./propagation/TextMapPropagator\");\nObject.defineProperty(exports, \"defaultTextMapGetter\", { enumerable: true, get: function () { return TextMapPropagator_1.defaultTextMapGetter; } });\nObject.defineProperty(exports, \"defaultTextMapSetter\", { enumerable: true, get: function () { return TextMapPropagator_1.defaultTextMapSetter; } });\nvar ProxyTracer_1 = require(\"./trace/ProxyTracer\");\nObject.defineProperty(exports, \"ProxyTracer\", { enumerable: true, get: function () { return ProxyTracer_1.ProxyTracer; } });\n// TODO: Remove ProxyTracerProvider export in the next major version.\nvar ProxyTracerProvider_1 = require(\"./trace/ProxyTracerProvider\");\nObject.defineProperty(exports, \"ProxyTracerProvider\", { enumerable: true, get: function () { return ProxyTracerProvider_1.ProxyTracerProvider; } });\nvar SamplingResult_1 = require(\"./trace/SamplingResult\");\nObject.defineProperty(exports, \"SamplingDecision\", { enumerable: true, get: function () { return SamplingResult_1.SamplingDecision; } });\nvar span_kind_1 = require(\"./trace/span_kind\");\nObject.defineProperty(exports, \"SpanKind\", { enumerable: true, get: function () { return span_kind_1.SpanKind; } });\nvar status_1 = require(\"./trace/status\");\nObject.defineProperty(exports, \"SpanStatusCode\", { enumerable: true, get: function () { return status_1.SpanStatusCode; } });\nvar trace_flags_1 = require(\"./trace/trace_flags\");\nObject.defineProperty(exports, \"TraceFlags\", { enumerable: true, get: function () { return trace_flags_1.TraceFlags; } });\nvar utils_2 = require(\"./trace/internal/utils\");\nObject.defineProperty(exports, \"createTraceState\", { enumerable: true, get: function () { return utils_2.createTraceState; } });\nvar spancontext_utils_1 = require(\"./trace/spancontext-utils\");\nObject.defineProperty(exports, \"isSpanContextValid\", { enumerable: true, get: function () { return spancontext_utils_1.isSpanContextValid; } });\nObject.defineProperty(exports, \"isValidTraceId\", { enumerable: true, get: function () { return spancontext_utils_1.isValidTraceId; } });\nObject.defineProperty(exports, \"isValidSpanId\", { enumerable: true, get: function () { return spancontext_utils_1.isValidSpanId; } });\nvar invalid_span_constants_1 = require(\"./trace/invalid-span-constants\");\nObject.defineProperty(exports, \"INVALID_SPANID\", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPANID; } });\nObject.defineProperty(exports, \"INVALID_TRACEID\", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_TRACEID; } });\nObject.defineProperty(exports, \"INVALID_SPAN_CONTEXT\", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPAN_CONTEXT; } });\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nconst context_api_1 = require(\"./context-api\");\nObject.defineProperty(exports, \"context\", { enumerable: true, get: function () { return context_api_1.context; } });\nconst diag_api_1 = require(\"./diag-api\");\nObject.defineProperty(exports, \"diag\", { enumerable: true, get: function () { return diag_api_1.diag; } });\nconst metrics_api_1 = require(\"./metrics-api\");\nObject.defineProperty(exports, \"metrics\", { enumerable: true, get: function () { return metrics_api_1.metrics; } });\nconst propagation_api_1 = require(\"./propagation-api\");\nObject.defineProperty(exports, \"propagation\", { enumerable: true, get: function () { return propagation_api_1.propagation; } });\nconst trace_api_1 = require(\"./trace-api\");\nObject.defineProperty(exports, \"trace\", { enumerable: true, get: function () { return trace_api_1.trace; } });\n// Default export.\nexports.default = {\n context: context_api_1.context,\n diag: diag_api_1.diag,\n metrics: metrics_api_1.metrics,\n propagation: propagation_api_1.propagation,\n trace: trace_api_1.trace,\n};\n//# sourceMappingURL=index.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTracingSuppressed = exports.unsuppressTracing = exports.suppressTracing = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst SUPPRESS_TRACING_KEY = (0, api_1.createContextKey)('OpenTelemetry SDK Context Key SUPPRESS_TRACING');\nfunction suppressTracing(context) {\n return context.setValue(SUPPRESS_TRACING_KEY, true);\n}\nexports.suppressTracing = suppressTracing;\nfunction unsuppressTracing(context) {\n return context.deleteValue(SUPPRESS_TRACING_KEY);\n}\nexports.unsuppressTracing = unsuppressTracing;\nfunction isTracingSuppressed(context) {\n return context.getValue(SUPPRESS_TRACING_KEY) === true;\n}\nexports.isTracingSuppressed = isTracingSuppressed;\n//# sourceMappingURL=suppress-tracing.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BAGGAGE_MAX_TOTAL_LENGTH = exports.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS = exports.BAGGAGE_MAX_NAME_VALUE_PAIRS = exports.BAGGAGE_HEADER = exports.BAGGAGE_ITEMS_SEPARATOR = exports.BAGGAGE_PROPERTIES_SEPARATOR = exports.BAGGAGE_KEY_PAIR_SEPARATOR = void 0;\nexports.BAGGAGE_KEY_PAIR_SEPARATOR = '=';\nexports.BAGGAGE_PROPERTIES_SEPARATOR = ';';\nexports.BAGGAGE_ITEMS_SEPARATOR = ',';\n// Name of the http header used to propagate the baggage\nexports.BAGGAGE_HEADER = 'baggage';\n// Maximum number of name-value pairs allowed by w3c spec\nexports.BAGGAGE_MAX_NAME_VALUE_PAIRS = 180;\n// Maximum number of bytes per a single name-value pair allowed by w3c spec\nexports.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS = 4096;\n// Maximum total length of all name-value pairs allowed by w3c spec\nexports.BAGGAGE_MAX_TOTAL_LENGTH = 8192;\n//# sourceMappingURL=constants.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseKeyPairsIntoRecord = exports.parsePairKeyValue = exports.getKeyPairs = exports.serializeKeyPairs = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst constants_1 = require(\"./constants\");\nfunction serializeKeyPairs(keyPairs) {\n return keyPairs.reduce((hValue, current) => {\n const value = `${hValue}${hValue !== '' ? constants_1.BAGGAGE_ITEMS_SEPARATOR : ''}${current}`;\n return value.length > constants_1.BAGGAGE_MAX_TOTAL_LENGTH ? hValue : value;\n }, '');\n}\nexports.serializeKeyPairs = serializeKeyPairs;\nfunction getKeyPairs(baggage) {\n return baggage.getAllEntries().map(([key, value]) => {\n let entry = `${encodeURIComponent(key)}=${encodeURIComponent(value.value)}`;\n // include opaque metadata if provided\n // NOTE: we intentionally don't URI-encode the metadata - that responsibility falls on the metadata implementation\n if (value.metadata !== undefined) {\n entry += constants_1.BAGGAGE_PROPERTIES_SEPARATOR + value.metadata.toString();\n }\n return entry;\n });\n}\nexports.getKeyPairs = getKeyPairs;\nfunction parsePairKeyValue(entry) {\n if (!entry)\n return;\n const metadataSeparatorIndex = entry.indexOf(constants_1.BAGGAGE_PROPERTIES_SEPARATOR);\n const keyPairPart = metadataSeparatorIndex === -1\n ? entry\n : entry.substring(0, metadataSeparatorIndex);\n const separatorIndex = keyPairPart.indexOf(constants_1.BAGGAGE_KEY_PAIR_SEPARATOR);\n if (separatorIndex <= 0)\n return;\n const rawKey = keyPairPart.substring(0, separatorIndex).trim();\n const rawValue = keyPairPart.substring(separatorIndex + 1).trim();\n if (!rawKey || !rawValue)\n return;\n let key;\n let value;\n try {\n key = decodeURIComponent(rawKey);\n value = decodeURIComponent(rawValue);\n }\n catch {\n return;\n }\n let metadata;\n if (metadataSeparatorIndex !== -1 &&\n metadataSeparatorIndex < entry.length - 1) {\n const metadataString = entry.substring(metadataSeparatorIndex + 1);\n metadata = (0, api_1.baggageEntryMetadataFromString)(metadataString);\n }\n return { key, value, metadata };\n}\nexports.parsePairKeyValue = parsePairKeyValue;\n/**\n * Parse a string serialized in the baggage HTTP Format (without metadata):\n * https://github.com/w3c/baggage/blob/master/baggage/HTTP_HEADER_FORMAT.md\n */\nfunction parseKeyPairsIntoRecord(value) {\n const result = {};\n if (typeof value === 'string' && value.length > 0) {\n value.split(constants_1.BAGGAGE_ITEMS_SEPARATOR).forEach(entry => {\n const keyPair = parsePairKeyValue(entry);\n if (keyPair !== undefined && keyPair.value.length > 0) {\n result[keyPair.key] = keyPair.value;\n }\n });\n }\n return result;\n}\nexports.parseKeyPairsIntoRecord = parseKeyPairsIntoRecord;\n//# sourceMappingURL=utils.js.map", + "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseKeyPairsIntoRecord = exports.parsePairKeyValue = exports.getKeyPairs = exports.serializeKeyPairs = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst constants_1 = require(\"./constants\");\nfunction serializeKeyPairs(keyPairs) {\n return keyPairs.reduce((hValue, current) => {\n const value = `${hValue}${hValue !== '' ? constants_1.BAGGAGE_ITEMS_SEPARATOR : ''}${current}`;\n return value.length > constants_1.BAGGAGE_MAX_TOTAL_LENGTH ? hValue : value;\n }, '');\n}\nexports.serializeKeyPairs = serializeKeyPairs;\nfunction getKeyPairs(baggage) {\n return baggage.getAllEntries().map(([key, value]) => {\n let entry = `${encodeURIComponent(key)}=${encodeURIComponent(value.value)}`;\n // include opaque metadata if provided\n // NOTE: we intentionally don't URI-encode the metadata - that responsibility falls on the metadata implementation\n if (value.metadata !== undefined) {\n entry += constants_1.BAGGAGE_PROPERTIES_SEPARATOR + value.metadata.toString();\n }\n return entry;\n });\n}\nexports.getKeyPairs = getKeyPairs;\nfunction parsePairKeyValue(entry) {\n if (!entry)\n return;\n const metadataSeparatorIndex = entry.indexOf(constants_1.BAGGAGE_PROPERTIES_SEPARATOR);\n const keyPairPart = metadataSeparatorIndex === -1\n ? entry\n : entry.substring(0, metadataSeparatorIndex);\n const separatorIndex = keyPairPart.indexOf(constants_1.BAGGAGE_KEY_PAIR_SEPARATOR);\n if (separatorIndex <= 0)\n return;\n const rawKey = keyPairPart.substring(0, separatorIndex).trim();\n const rawValue = keyPairPart.substring(separatorIndex + 1).trim();\n if (!rawKey || !rawValue)\n return;\n let key;\n let value;\n try {\n key = decodeURIComponent(rawKey);\n value = decodeURIComponent(rawValue);\n }\n catch {\n return;\n }\n let metadata;\n if (metadataSeparatorIndex !== -1 &&\n metadataSeparatorIndex < entry.length - 1) {\n const metadataString = entry.substring(metadataSeparatorIndex + 1);\n metadata = (0, api_1.baggageEntryMetadataFromString)(metadataString);\n }\n return { key, value, metadata };\n}\nexports.parsePairKeyValue = parsePairKeyValue;\n/**\n * Parse a string serialized in the baggage HTTP Format (without metadata):\n * https://github.com/w3c/baggage/blob/master/baggage/HTTP_HEADER_FORMAT.md\n */\nfunction parseKeyPairsIntoRecord(value) {\n const result = {};\n if (typeof value === 'string' && value.length > 0) {\n value.split(constants_1.BAGGAGE_ITEMS_SEPARATOR).forEach(entry => {\n const keyPair = parsePairKeyValue(entry);\n if (keyPair !== undefined && keyPair.value.length > 0) {\n result[keyPair.key] = keyPair.value;\n }\n });\n }\n return result;\n}\nexports.parseKeyPairsIntoRecord = parseKeyPairsIntoRecord;\n//# sourceMappingURL=utils.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.W3CBaggagePropagator = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst suppress_tracing_1 = require(\"../../trace/suppress-tracing\");\nconst constants_1 = require(\"../constants\");\nconst utils_1 = require(\"../utils\");\n/**\n * Propagates {@link Baggage} through Context format propagation.\n *\n * Based on the Baggage specification:\n * https://w3c.github.io/baggage/\n */\nclass W3CBaggagePropagator {\n inject(context, carrier, setter) {\n const baggage = api_1.propagation.getBaggage(context);\n if (!baggage || (0, suppress_tracing_1.isTracingSuppressed)(context))\n return;\n const keyPairs = (0, utils_1.getKeyPairs)(baggage)\n .filter((pair) => {\n return pair.length <= constants_1.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS;\n })\n .slice(0, constants_1.BAGGAGE_MAX_NAME_VALUE_PAIRS);\n const headerValue = (0, utils_1.serializeKeyPairs)(keyPairs);\n if (headerValue.length > 0) {\n setter.set(carrier, constants_1.BAGGAGE_HEADER, headerValue);\n }\n }\n extract(context, carrier, getter) {\n const headerValue = getter.get(carrier, constants_1.BAGGAGE_HEADER);\n const baggageString = Array.isArray(headerValue)\n ? headerValue.join(constants_1.BAGGAGE_ITEMS_SEPARATOR)\n : headerValue;\n if (!baggageString)\n return context;\n const baggage = {};\n if (baggageString.length === 0) {\n return context;\n }\n const pairs = baggageString.split(constants_1.BAGGAGE_ITEMS_SEPARATOR);\n pairs.forEach(entry => {\n const keyPair = (0, utils_1.parsePairKeyValue)(entry);\n if (keyPair) {\n const baggageEntry = { value: keyPair.value };\n if (keyPair.metadata) {\n baggageEntry.metadata = keyPair.metadata;\n }\n baggage[keyPair.key] = baggageEntry;\n }\n });\n if (Object.entries(baggage).length === 0) {\n return context;\n }\n return api_1.propagation.setBaggage(context, api_1.propagation.createBaggage(baggage));\n }\n fields() {\n return [constants_1.BAGGAGE_HEADER];\n }\n}\nexports.W3CBaggagePropagator = W3CBaggagePropagator;\n//# sourceMappingURL=W3CBaggagePropagator.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnchoredClock = void 0;\n/**\n * A utility for returning wall times anchored to a given point in time. Wall time measurements will\n * not be taken from the system, but instead are computed by adding a monotonic clock time\n * to the anchor point.\n *\n * This is needed because the system time can change and result in unexpected situations like\n * spans ending before they are started. Creating an anchored clock for each local root span\n * ensures that span timings and durations are accurate while preventing span times from drifting\n * too far from the system clock.\n *\n * Only creating an anchored clock once per local trace ensures span times are correct relative\n * to each other. For example, a child span will never have a start time before its parent even\n * if the system clock is corrected during the local trace.\n *\n * Heavily inspired by the OTel Java anchored clock\n * https://github.com/open-telemetry/opentelemetry-java/blob/main/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/AnchoredClock.java\n */\nclass AnchoredClock {\n _monotonicClock;\n _epochMillis;\n _performanceMillis;\n /**\n * Create a new AnchoredClock anchored to the current time returned by systemClock.\n *\n * @param systemClock should be a clock that returns the number of milliseconds since January 1 1970 such as Date\n * @param monotonicClock should be a clock that counts milliseconds monotonically such as window.performance or perf_hooks.performance\n */\n constructor(systemClock, monotonicClock) {\n this._monotonicClock = monotonicClock;\n this._epochMillis = systemClock.now();\n this._performanceMillis = monotonicClock.now();\n }\n /**\n * Returns the current time by adding the number of milliseconds since the\n * AnchoredClock was created to the creation epoch time\n */\n now() {\n const delta = this._monotonicClock.now() - this._performanceMillis;\n return this._epochMillis + delta;\n }\n}\nexports.AnchoredClock = AnchoredClock;\n//# sourceMappingURL=anchored-clock.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAttributeValue = exports.isAttributeKey = exports.sanitizeAttributes = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nfunction sanitizeAttributes(attributes) {\n const out = {};\n if (typeof attributes !== 'object' || attributes == null) {\n return out;\n }\n for (const key in attributes) {\n if (!Object.prototype.hasOwnProperty.call(attributes, key)) {\n continue;\n }\n if (!isAttributeKey(key)) {\n api_1.diag.warn(`Invalid attribute key: ${key}`);\n continue;\n }\n const val = attributes[key];\n if (!isAttributeValue(val)) {\n api_1.diag.warn(`Invalid attribute value set for key: ${key}`);\n continue;\n }\n if (Array.isArray(val)) {\n out[key] = val.slice();\n }\n else {\n out[key] = val;\n }\n }\n return out;\n}\nexports.sanitizeAttributes = sanitizeAttributes;\nfunction isAttributeKey(key) {\n return typeof key === 'string' && key !== '';\n}\nexports.isAttributeKey = isAttributeKey;\nfunction isAttributeValue(val) {\n if (val == null) {\n return true;\n }\n if (Array.isArray(val)) {\n return isHomogeneousAttributeValueArray(val);\n }\n return isValidPrimitiveAttributeValueType(typeof val);\n}\nexports.isAttributeValue = isAttributeValue;\nfunction isHomogeneousAttributeValueArray(arr) {\n let type;\n for (const element of arr) {\n // null/undefined elements are allowed\n if (element == null)\n continue;\n const elementType = typeof element;\n if (elementType === type) {\n continue;\n }\n if (!type) {\n if (isValidPrimitiveAttributeValueType(elementType)) {\n type = elementType;\n continue;\n }\n // encountered an invalid primitive\n return false;\n }\n return false;\n }\n return true;\n}\nfunction isValidPrimitiveAttributeValueType(valType) {\n switch (valType) {\n case 'number':\n case 'boolean':\n case 'string':\n return true;\n }\n return false;\n}\n//# sourceMappingURL=attributes.js.map", @@ -151,7 +152,7 @@ "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.globalErrorHandler = exports.setGlobalErrorHandler = void 0;\nconst logging_error_handler_1 = require(\"./logging-error-handler\");\n/** The global error handler delegate */\nlet delegateHandler = (0, logging_error_handler_1.loggingErrorHandler)();\n/**\n * Set the global error handler\n * @param {ErrorHandler} handler\n */\nfunction setGlobalErrorHandler(handler) {\n delegateHandler = handler;\n}\nexports.setGlobalErrorHandler = setGlobalErrorHandler;\n/**\n * Return the global error handler\n * @param {Exception} ex\n */\nfunction globalErrorHandler(ex) {\n try {\n delegateHandler(ex);\n }\n catch { } // eslint-disable-line no-empty\n}\nexports.globalErrorHandler = globalErrorHandler;\n//# sourceMappingURL=global-error-handler.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getStringListFromEnv = exports.getBooleanFromEnv = exports.getStringFromEnv = exports.getNumberFromEnv = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst util_1 = require(\"util\");\n/**\n * Retrieves a number from an environment variable.\n * - Returns `undefined` if the environment variable is empty, unset, contains only whitespace, or is not a number.\n * - Returns a number in all other cases.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {number | undefined} - The number value or `undefined`.\n */\nfunction getNumberFromEnv(key) {\n const raw = process.env[key];\n if (raw == null || raw.trim() === '') {\n return undefined;\n }\n const value = Number(raw);\n if (isNaN(value)) {\n api_1.diag.warn(`Unknown value ${(0, util_1.inspect)(raw)} for ${key}, expected a number, using defaults`);\n return undefined;\n }\n return value;\n}\nexports.getNumberFromEnv = getNumberFromEnv;\n/**\n * Retrieves a string from an environment variable.\n * - Returns `undefined` if the environment variable is empty, unset, or contains only whitespace.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {string | undefined} - The string value or `undefined`.\n */\nfunction getStringFromEnv(key) {\n const raw = process.env[key];\n if (raw == null || raw.trim() === '') {\n return undefined;\n }\n return raw;\n}\nexports.getStringFromEnv = getStringFromEnv;\n/**\n * Retrieves a boolean value from an environment variable.\n * - Trims leading and trailing whitespace and ignores casing.\n * - Returns `false` if the environment variable is empty, unset, or contains only whitespace.\n * - Returns `false` for strings that cannot be mapped to a boolean.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {boolean} - The boolean value or `false` if the environment variable is unset empty, unset, or contains only whitespace.\n */\nfunction getBooleanFromEnv(key) {\n const raw = process.env[key]?.trim().toLowerCase();\n if (raw == null || raw === '') {\n // NOTE: falling back to `false` instead of `undefined` as required by the specification.\n // If you have a use-case that requires `undefined`, consider using `getStringFromEnv()` and applying the necessary\n // normalizations in the consuming code.\n return false;\n }\n if (raw === 'true') {\n return true;\n }\n else if (raw === 'false') {\n return false;\n }\n else {\n api_1.diag.warn(`Unknown value ${(0, util_1.inspect)(raw)} for ${key}, expected 'true' or 'false', falling back to 'false' (default)`);\n return false;\n }\n}\nexports.getBooleanFromEnv = getBooleanFromEnv;\n/**\n * Retrieves a list of strings from an environment variable.\n * - Uses ',' as the delimiter.\n * - Trims leading and trailing whitespace from each entry.\n * - Excludes empty entries.\n * - Returns `undefined` if the environment variable is empty or contains only whitespace.\n * - Returns an empty array if all entries are empty or whitespace.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {string[] | undefined} - The list of strings or `undefined`.\n */\nfunction getStringListFromEnv(key) {\n return getStringFromEnv(key)\n ?.split(',')\n .map(v => v.trim())\n .filter(s => s !== '');\n}\nexports.getStringListFromEnv = getStringListFromEnv;\n//# sourceMappingURL=environment.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._globalThis = void 0;\n/**\n * @deprecated Use globalThis directly instead.\n */\nexports._globalThis = globalThis;\n//# sourceMappingURL=globalThis.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.VERSION = '2.6.0';\n//# sourceMappingURL=version.js.map", + "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.VERSION = '2.6.1';\n//# sourceMappingURL=version.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createConstMap = void 0;\n/**\n * Creates a const map from the given values\n * @param values - An array of values to be used as keys and values in the map.\n * @returns A populated version of the map with the values and keys derived from the values.\n */\n/*#__NO_SIDE_EFFECTS__*/\nfunction createConstMap(values) {\n // eslint-disable-next-line prefer-const, @typescript-eslint/no-explicit-any\n let res = {};\n const len = values.length;\n for (let lp = 0; lp < len; lp++) {\n const val = values[lp];\n if (val) {\n res[String(val).toUpperCase().replace(/[-.]/g, '_')] = val;\n }\n }\n return res;\n}\nexports.createConstMap = createConstMap;\n//# sourceMappingURL=utils.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SEMATTRS_NET_HOST_CARRIER_ICC = exports.SEMATTRS_NET_HOST_CARRIER_MNC = exports.SEMATTRS_NET_HOST_CARRIER_MCC = exports.SEMATTRS_NET_HOST_CARRIER_NAME = exports.SEMATTRS_NET_HOST_CONNECTION_SUBTYPE = exports.SEMATTRS_NET_HOST_CONNECTION_TYPE = exports.SEMATTRS_NET_HOST_NAME = exports.SEMATTRS_NET_HOST_PORT = exports.SEMATTRS_NET_HOST_IP = exports.SEMATTRS_NET_PEER_NAME = exports.SEMATTRS_NET_PEER_PORT = exports.SEMATTRS_NET_PEER_IP = exports.SEMATTRS_NET_TRANSPORT = exports.SEMATTRS_FAAS_INVOKED_REGION = exports.SEMATTRS_FAAS_INVOKED_PROVIDER = exports.SEMATTRS_FAAS_INVOKED_NAME = exports.SEMATTRS_FAAS_COLDSTART = exports.SEMATTRS_FAAS_CRON = exports.SEMATTRS_FAAS_TIME = exports.SEMATTRS_FAAS_DOCUMENT_NAME = exports.SEMATTRS_FAAS_DOCUMENT_TIME = exports.SEMATTRS_FAAS_DOCUMENT_OPERATION = exports.SEMATTRS_FAAS_DOCUMENT_COLLECTION = exports.SEMATTRS_FAAS_EXECUTION = exports.SEMATTRS_FAAS_TRIGGER = exports.SEMATTRS_EXCEPTION_ESCAPED = exports.SEMATTRS_EXCEPTION_STACKTRACE = exports.SEMATTRS_EXCEPTION_MESSAGE = exports.SEMATTRS_EXCEPTION_TYPE = exports.SEMATTRS_DB_SQL_TABLE = exports.SEMATTRS_DB_MONGODB_COLLECTION = exports.SEMATTRS_DB_REDIS_DATABASE_INDEX = exports.SEMATTRS_DB_HBASE_NAMESPACE = exports.SEMATTRS_DB_CASSANDRA_COORDINATOR_DC = exports.SEMATTRS_DB_CASSANDRA_COORDINATOR_ID = exports.SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT = exports.SEMATTRS_DB_CASSANDRA_IDEMPOTENCE = exports.SEMATTRS_DB_CASSANDRA_TABLE = exports.SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL = exports.SEMATTRS_DB_CASSANDRA_PAGE_SIZE = exports.SEMATTRS_DB_CASSANDRA_KEYSPACE = exports.SEMATTRS_DB_MSSQL_INSTANCE_NAME = exports.SEMATTRS_DB_OPERATION = exports.SEMATTRS_DB_STATEMENT = exports.SEMATTRS_DB_NAME = exports.SEMATTRS_DB_JDBC_DRIVER_CLASSNAME = exports.SEMATTRS_DB_USER = exports.SEMATTRS_DB_CONNECTION_STRING = exports.SEMATTRS_DB_SYSTEM = exports.SEMATTRS_AWS_LAMBDA_INVOKED_ARN = void 0;\nexports.SEMATTRS_MESSAGING_DESTINATION_KIND = exports.SEMATTRS_MESSAGING_DESTINATION = exports.SEMATTRS_MESSAGING_SYSTEM = exports.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES = exports.SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS = exports.SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT = exports.SEMATTRS_AWS_DYNAMODB_COUNT = exports.SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS = exports.SEMATTRS_AWS_DYNAMODB_SEGMENT = exports.SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD = exports.SEMATTRS_AWS_DYNAMODB_TABLE_COUNT = exports.SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE = exports.SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES = exports.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES = exports.SEMATTRS_AWS_DYNAMODB_SELECT = exports.SEMATTRS_AWS_DYNAMODB_INDEX_NAME = exports.SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET = exports.SEMATTRS_AWS_DYNAMODB_LIMIT = exports.SEMATTRS_AWS_DYNAMODB_PROJECTION = exports.SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ = exports.SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY = exports.SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY = exports.SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS = exports.SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY = exports.SEMATTRS_AWS_DYNAMODB_TABLE_NAMES = exports.SEMATTRS_HTTP_CLIENT_IP = exports.SEMATTRS_HTTP_ROUTE = exports.SEMATTRS_HTTP_SERVER_NAME = exports.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED = exports.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH = exports.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED = exports.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH = exports.SEMATTRS_HTTP_USER_AGENT = exports.SEMATTRS_HTTP_FLAVOR = exports.SEMATTRS_HTTP_STATUS_CODE = exports.SEMATTRS_HTTP_SCHEME = exports.SEMATTRS_HTTP_HOST = exports.SEMATTRS_HTTP_TARGET = exports.SEMATTRS_HTTP_URL = exports.SEMATTRS_HTTP_METHOD = exports.SEMATTRS_CODE_LINENO = exports.SEMATTRS_CODE_FILEPATH = exports.SEMATTRS_CODE_NAMESPACE = exports.SEMATTRS_CODE_FUNCTION = exports.SEMATTRS_THREAD_NAME = exports.SEMATTRS_THREAD_ID = exports.SEMATTRS_ENDUSER_SCOPE = exports.SEMATTRS_ENDUSER_ROLE = exports.SEMATTRS_ENDUSER_ID = exports.SEMATTRS_PEER_SERVICE = void 0;\nexports.DBSYSTEMVALUES_FILEMAKER = exports.DBSYSTEMVALUES_DERBY = exports.DBSYSTEMVALUES_FIREBIRD = exports.DBSYSTEMVALUES_ADABAS = exports.DBSYSTEMVALUES_CACHE = exports.DBSYSTEMVALUES_EDB = exports.DBSYSTEMVALUES_FIRSTSQL = exports.DBSYSTEMVALUES_INGRES = exports.DBSYSTEMVALUES_HANADB = exports.DBSYSTEMVALUES_MAXDB = exports.DBSYSTEMVALUES_PROGRESS = exports.DBSYSTEMVALUES_HSQLDB = exports.DBSYSTEMVALUES_CLOUDSCAPE = exports.DBSYSTEMVALUES_HIVE = exports.DBSYSTEMVALUES_REDSHIFT = exports.DBSYSTEMVALUES_POSTGRESQL = exports.DBSYSTEMVALUES_DB2 = exports.DBSYSTEMVALUES_ORACLE = exports.DBSYSTEMVALUES_MYSQL = exports.DBSYSTEMVALUES_MSSQL = exports.DBSYSTEMVALUES_OTHER_SQL = exports.SemanticAttributes = exports.SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE = exports.SEMATTRS_MESSAGE_COMPRESSED_SIZE = exports.SEMATTRS_MESSAGE_ID = exports.SEMATTRS_MESSAGE_TYPE = exports.SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE = exports.SEMATTRS_RPC_JSONRPC_ERROR_CODE = exports.SEMATTRS_RPC_JSONRPC_REQUEST_ID = exports.SEMATTRS_RPC_JSONRPC_VERSION = exports.SEMATTRS_RPC_GRPC_STATUS_CODE = exports.SEMATTRS_RPC_METHOD = exports.SEMATTRS_RPC_SERVICE = exports.SEMATTRS_RPC_SYSTEM = exports.SEMATTRS_MESSAGING_KAFKA_TOMBSTONE = exports.SEMATTRS_MESSAGING_KAFKA_PARTITION = exports.SEMATTRS_MESSAGING_KAFKA_CLIENT_ID = exports.SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP = exports.SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY = exports.SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY = exports.SEMATTRS_MESSAGING_CONSUMER_ID = exports.SEMATTRS_MESSAGING_OPERATION = exports.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES = exports.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES = exports.SEMATTRS_MESSAGING_CONVERSATION_ID = exports.SEMATTRS_MESSAGING_MESSAGE_ID = exports.SEMATTRS_MESSAGING_URL = exports.SEMATTRS_MESSAGING_PROTOCOL_VERSION = exports.SEMATTRS_MESSAGING_PROTOCOL = exports.SEMATTRS_MESSAGING_TEMP_DESTINATION = void 0;\nexports.FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD = exports.FaasDocumentOperationValues = exports.FAASDOCUMENTOPERATIONVALUES_DELETE = exports.FAASDOCUMENTOPERATIONVALUES_EDIT = exports.FAASDOCUMENTOPERATIONVALUES_INSERT = exports.FaasTriggerValues = exports.FAASTRIGGERVALUES_OTHER = exports.FAASTRIGGERVALUES_TIMER = exports.FAASTRIGGERVALUES_PUBSUB = exports.FAASTRIGGERVALUES_HTTP = exports.FAASTRIGGERVALUES_DATASOURCE = exports.DbCassandraConsistencyLevelValues = exports.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL = exports.DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL = exports.DBCASSANDRACONSISTENCYLEVELVALUES_ANY = exports.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE = exports.DBCASSANDRACONSISTENCYLEVELVALUES_THREE = exports.DBCASSANDRACONSISTENCYLEVELVALUES_TWO = exports.DBCASSANDRACONSISTENCYLEVELVALUES_ONE = exports.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM = exports.DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM = exports.DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM = exports.DBCASSANDRACONSISTENCYLEVELVALUES_ALL = exports.DbSystemValues = exports.DBSYSTEMVALUES_COCKROACHDB = exports.DBSYSTEMVALUES_MEMCACHED = exports.DBSYSTEMVALUES_ELASTICSEARCH = exports.DBSYSTEMVALUES_GEODE = exports.DBSYSTEMVALUES_NEO4J = exports.DBSYSTEMVALUES_DYNAMODB = exports.DBSYSTEMVALUES_COSMOSDB = exports.DBSYSTEMVALUES_COUCHDB = exports.DBSYSTEMVALUES_COUCHBASE = exports.DBSYSTEMVALUES_REDIS = exports.DBSYSTEMVALUES_MONGODB = exports.DBSYSTEMVALUES_HBASE = exports.DBSYSTEMVALUES_CASSANDRA = exports.DBSYSTEMVALUES_COLDFUSION = exports.DBSYSTEMVALUES_H2 = exports.DBSYSTEMVALUES_VERTICA = exports.DBSYSTEMVALUES_TERADATA = exports.DBSYSTEMVALUES_SYBASE = exports.DBSYSTEMVALUES_SQLITE = exports.DBSYSTEMVALUES_POINTBASE = exports.DBSYSTEMVALUES_PERVASIVE = exports.DBSYSTEMVALUES_NETEZZA = exports.DBSYSTEMVALUES_MARIADB = exports.DBSYSTEMVALUES_INTERBASE = exports.DBSYSTEMVALUES_INSTANTDB = exports.DBSYSTEMVALUES_INFORMIX = void 0;\nexports.MESSAGINGOPERATIONVALUES_RECEIVE = exports.MessagingDestinationKindValues = exports.MESSAGINGDESTINATIONKINDVALUES_TOPIC = exports.MESSAGINGDESTINATIONKINDVALUES_QUEUE = exports.HttpFlavorValues = exports.HTTPFLAVORVALUES_QUIC = exports.HTTPFLAVORVALUES_SPDY = exports.HTTPFLAVORVALUES_HTTP_2_0 = exports.HTTPFLAVORVALUES_HTTP_1_1 = exports.HTTPFLAVORVALUES_HTTP_1_0 = exports.NetHostConnectionSubtypeValues = exports.NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA = exports.NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA = exports.NETHOSTCONNECTIONSUBTYPEVALUES_NR = exports.NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN = exports.NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA = exports.NETHOSTCONNECTIONSUBTYPEVALUES_GSM = exports.NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP = exports.NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD = exports.NETHOSTCONNECTIONSUBTYPEVALUES_LTE = exports.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B = exports.NETHOSTCONNECTIONSUBTYPEVALUES_IDEN = exports.NETHOSTCONNECTIONSUBTYPEVALUES_HSPA = exports.NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA = exports.NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA = exports.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT = exports.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A = exports.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0 = exports.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA = exports.NETHOSTCONNECTIONSUBTYPEVALUES_UMTS = exports.NETHOSTCONNECTIONSUBTYPEVALUES_EDGE = exports.NETHOSTCONNECTIONSUBTYPEVALUES_GPRS = exports.NetHostConnectionTypeValues = exports.NETHOSTCONNECTIONTYPEVALUES_UNKNOWN = exports.NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE = exports.NETHOSTCONNECTIONTYPEVALUES_CELL = exports.NETHOSTCONNECTIONTYPEVALUES_WIRED = exports.NETHOSTCONNECTIONTYPEVALUES_WIFI = exports.NetTransportValues = exports.NETTRANSPORTVALUES_OTHER = exports.NETTRANSPORTVALUES_INPROC = exports.NETTRANSPORTVALUES_PIPE = exports.NETTRANSPORTVALUES_UNIX = exports.NETTRANSPORTVALUES_IP = exports.NETTRANSPORTVALUES_IP_UDP = exports.NETTRANSPORTVALUES_IP_TCP = exports.FaasInvokedProviderValues = exports.FAASINVOKEDPROVIDERVALUES_GCP = exports.FAASINVOKEDPROVIDERVALUES_AZURE = exports.FAASINVOKEDPROVIDERVALUES_AWS = void 0;\nexports.MessageTypeValues = exports.MESSAGETYPEVALUES_RECEIVED = exports.MESSAGETYPEVALUES_SENT = exports.RpcGrpcStatusCodeValues = exports.RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED = exports.RPCGRPCSTATUSCODEVALUES_DATA_LOSS = exports.RPCGRPCSTATUSCODEVALUES_UNAVAILABLE = exports.RPCGRPCSTATUSCODEVALUES_INTERNAL = exports.RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED = exports.RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE = exports.RPCGRPCSTATUSCODEVALUES_ABORTED = exports.RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION = exports.RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED = exports.RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED = exports.RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS = exports.RPCGRPCSTATUSCODEVALUES_NOT_FOUND = exports.RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED = exports.RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT = exports.RPCGRPCSTATUSCODEVALUES_UNKNOWN = exports.RPCGRPCSTATUSCODEVALUES_CANCELLED = exports.RPCGRPCSTATUSCODEVALUES_OK = exports.MessagingOperationValues = exports.MESSAGINGOPERATIONVALUES_PROCESS = void 0;\nconst utils_1 = require(\"../internal/utils\");\n//----------------------------------------------------------------------------------------------------------\n// DO NOT EDIT, this is an Auto-generated file from scripts/semconv/templates//templates/SemanticAttributes.ts.j2\n//----------------------------------------------------------------------------------------------------------\n//----------------------------------------------------------------------------------------------------------\n// Constant values for SemanticAttributes\n//----------------------------------------------------------------------------------------------------------\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_AWS_LAMBDA_INVOKED_ARN = 'aws.lambda.invoked_arn';\nconst TMP_DB_SYSTEM = 'db.system';\nconst TMP_DB_CONNECTION_STRING = 'db.connection_string';\nconst TMP_DB_USER = 'db.user';\nconst TMP_DB_JDBC_DRIVER_CLASSNAME = 'db.jdbc.driver_classname';\nconst TMP_DB_NAME = 'db.name';\nconst TMP_DB_STATEMENT = 'db.statement';\nconst TMP_DB_OPERATION = 'db.operation';\nconst TMP_DB_MSSQL_INSTANCE_NAME = 'db.mssql.instance_name';\nconst TMP_DB_CASSANDRA_KEYSPACE = 'db.cassandra.keyspace';\nconst TMP_DB_CASSANDRA_PAGE_SIZE = 'db.cassandra.page_size';\nconst TMP_DB_CASSANDRA_CONSISTENCY_LEVEL = 'db.cassandra.consistency_level';\nconst TMP_DB_CASSANDRA_TABLE = 'db.cassandra.table';\nconst TMP_DB_CASSANDRA_IDEMPOTENCE = 'db.cassandra.idempotence';\nconst TMP_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT = 'db.cassandra.speculative_execution_count';\nconst TMP_DB_CASSANDRA_COORDINATOR_ID = 'db.cassandra.coordinator.id';\nconst TMP_DB_CASSANDRA_COORDINATOR_DC = 'db.cassandra.coordinator.dc';\nconst TMP_DB_HBASE_NAMESPACE = 'db.hbase.namespace';\nconst TMP_DB_REDIS_DATABASE_INDEX = 'db.redis.database_index';\nconst TMP_DB_MONGODB_COLLECTION = 'db.mongodb.collection';\nconst TMP_DB_SQL_TABLE = 'db.sql.table';\nconst TMP_EXCEPTION_TYPE = 'exception.type';\nconst TMP_EXCEPTION_MESSAGE = 'exception.message';\nconst TMP_EXCEPTION_STACKTRACE = 'exception.stacktrace';\nconst TMP_EXCEPTION_ESCAPED = 'exception.escaped';\nconst TMP_FAAS_TRIGGER = 'faas.trigger';\nconst TMP_FAAS_EXECUTION = 'faas.execution';\nconst TMP_FAAS_DOCUMENT_COLLECTION = 'faas.document.collection';\nconst TMP_FAAS_DOCUMENT_OPERATION = 'faas.document.operation';\nconst TMP_FAAS_DOCUMENT_TIME = 'faas.document.time';\nconst TMP_FAAS_DOCUMENT_NAME = 'faas.document.name';\nconst TMP_FAAS_TIME = 'faas.time';\nconst TMP_FAAS_CRON = 'faas.cron';\nconst TMP_FAAS_COLDSTART = 'faas.coldstart';\nconst TMP_FAAS_INVOKED_NAME = 'faas.invoked_name';\nconst TMP_FAAS_INVOKED_PROVIDER = 'faas.invoked_provider';\nconst TMP_FAAS_INVOKED_REGION = 'faas.invoked_region';\nconst TMP_NET_TRANSPORT = 'net.transport';\nconst TMP_NET_PEER_IP = 'net.peer.ip';\nconst TMP_NET_PEER_PORT = 'net.peer.port';\nconst TMP_NET_PEER_NAME = 'net.peer.name';\nconst TMP_NET_HOST_IP = 'net.host.ip';\nconst TMP_NET_HOST_PORT = 'net.host.port';\nconst TMP_NET_HOST_NAME = 'net.host.name';\nconst TMP_NET_HOST_CONNECTION_TYPE = 'net.host.connection.type';\nconst TMP_NET_HOST_CONNECTION_SUBTYPE = 'net.host.connection.subtype';\nconst TMP_NET_HOST_CARRIER_NAME = 'net.host.carrier.name';\nconst TMP_NET_HOST_CARRIER_MCC = 'net.host.carrier.mcc';\nconst TMP_NET_HOST_CARRIER_MNC = 'net.host.carrier.mnc';\nconst TMP_NET_HOST_CARRIER_ICC = 'net.host.carrier.icc';\nconst TMP_PEER_SERVICE = 'peer.service';\nconst TMP_ENDUSER_ID = 'enduser.id';\nconst TMP_ENDUSER_ROLE = 'enduser.role';\nconst TMP_ENDUSER_SCOPE = 'enduser.scope';\nconst TMP_THREAD_ID = 'thread.id';\nconst TMP_THREAD_NAME = 'thread.name';\nconst TMP_CODE_FUNCTION = 'code.function';\nconst TMP_CODE_NAMESPACE = 'code.namespace';\nconst TMP_CODE_FILEPATH = 'code.filepath';\nconst TMP_CODE_LINENO = 'code.lineno';\nconst TMP_HTTP_METHOD = 'http.method';\nconst TMP_HTTP_URL = 'http.url';\nconst TMP_HTTP_TARGET = 'http.target';\nconst TMP_HTTP_HOST = 'http.host';\nconst TMP_HTTP_SCHEME = 'http.scheme';\nconst TMP_HTTP_STATUS_CODE = 'http.status_code';\nconst TMP_HTTP_FLAVOR = 'http.flavor';\nconst TMP_HTTP_USER_AGENT = 'http.user_agent';\nconst TMP_HTTP_REQUEST_CONTENT_LENGTH = 'http.request_content_length';\nconst TMP_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED = 'http.request_content_length_uncompressed';\nconst TMP_HTTP_RESPONSE_CONTENT_LENGTH = 'http.response_content_length';\nconst TMP_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED = 'http.response_content_length_uncompressed';\nconst TMP_HTTP_SERVER_NAME = 'http.server_name';\nconst TMP_HTTP_ROUTE = 'http.route';\nconst TMP_HTTP_CLIENT_IP = 'http.client_ip';\nconst TMP_AWS_DYNAMODB_TABLE_NAMES = 'aws.dynamodb.table_names';\nconst TMP_AWS_DYNAMODB_CONSUMED_CAPACITY = 'aws.dynamodb.consumed_capacity';\nconst TMP_AWS_DYNAMODB_ITEM_COLLECTION_METRICS = 'aws.dynamodb.item_collection_metrics';\nconst TMP_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY = 'aws.dynamodb.provisioned_read_capacity';\nconst TMP_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY = 'aws.dynamodb.provisioned_write_capacity';\nconst TMP_AWS_DYNAMODB_CONSISTENT_READ = 'aws.dynamodb.consistent_read';\nconst TMP_AWS_DYNAMODB_PROJECTION = 'aws.dynamodb.projection';\nconst TMP_AWS_DYNAMODB_LIMIT = 'aws.dynamodb.limit';\nconst TMP_AWS_DYNAMODB_ATTRIBUTES_TO_GET = 'aws.dynamodb.attributes_to_get';\nconst TMP_AWS_DYNAMODB_INDEX_NAME = 'aws.dynamodb.index_name';\nconst TMP_AWS_DYNAMODB_SELECT = 'aws.dynamodb.select';\nconst TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES = 'aws.dynamodb.global_secondary_indexes';\nconst TMP_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES = 'aws.dynamodb.local_secondary_indexes';\nconst TMP_AWS_DYNAMODB_EXCLUSIVE_START_TABLE = 'aws.dynamodb.exclusive_start_table';\nconst TMP_AWS_DYNAMODB_TABLE_COUNT = 'aws.dynamodb.table_count';\nconst TMP_AWS_DYNAMODB_SCAN_FORWARD = 'aws.dynamodb.scan_forward';\nconst TMP_AWS_DYNAMODB_SEGMENT = 'aws.dynamodb.segment';\nconst TMP_AWS_DYNAMODB_TOTAL_SEGMENTS = 'aws.dynamodb.total_segments';\nconst TMP_AWS_DYNAMODB_COUNT = 'aws.dynamodb.count';\nconst TMP_AWS_DYNAMODB_SCANNED_COUNT = 'aws.dynamodb.scanned_count';\nconst TMP_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS = 'aws.dynamodb.attribute_definitions';\nconst TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES = 'aws.dynamodb.global_secondary_index_updates';\nconst TMP_MESSAGING_SYSTEM = 'messaging.system';\nconst TMP_MESSAGING_DESTINATION = 'messaging.destination';\nconst TMP_MESSAGING_DESTINATION_KIND = 'messaging.destination_kind';\nconst TMP_MESSAGING_TEMP_DESTINATION = 'messaging.temp_destination';\nconst TMP_MESSAGING_PROTOCOL = 'messaging.protocol';\nconst TMP_MESSAGING_PROTOCOL_VERSION = 'messaging.protocol_version';\nconst TMP_MESSAGING_URL = 'messaging.url';\nconst TMP_MESSAGING_MESSAGE_ID = 'messaging.message_id';\nconst TMP_MESSAGING_CONVERSATION_ID = 'messaging.conversation_id';\nconst TMP_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES = 'messaging.message_payload_size_bytes';\nconst TMP_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES = 'messaging.message_payload_compressed_size_bytes';\nconst TMP_MESSAGING_OPERATION = 'messaging.operation';\nconst TMP_MESSAGING_CONSUMER_ID = 'messaging.consumer_id';\nconst TMP_MESSAGING_RABBITMQ_ROUTING_KEY = 'messaging.rabbitmq.routing_key';\nconst TMP_MESSAGING_KAFKA_MESSAGE_KEY = 'messaging.kafka.message_key';\nconst TMP_MESSAGING_KAFKA_CONSUMER_GROUP = 'messaging.kafka.consumer_group';\nconst TMP_MESSAGING_KAFKA_CLIENT_ID = 'messaging.kafka.client_id';\nconst TMP_MESSAGING_KAFKA_PARTITION = 'messaging.kafka.partition';\nconst TMP_MESSAGING_KAFKA_TOMBSTONE = 'messaging.kafka.tombstone';\nconst TMP_RPC_SYSTEM = 'rpc.system';\nconst TMP_RPC_SERVICE = 'rpc.service';\nconst TMP_RPC_METHOD = 'rpc.method';\nconst TMP_RPC_GRPC_STATUS_CODE = 'rpc.grpc.status_code';\nconst TMP_RPC_JSONRPC_VERSION = 'rpc.jsonrpc.version';\nconst TMP_RPC_JSONRPC_REQUEST_ID = 'rpc.jsonrpc.request_id';\nconst TMP_RPC_JSONRPC_ERROR_CODE = 'rpc.jsonrpc.error_code';\nconst TMP_RPC_JSONRPC_ERROR_MESSAGE = 'rpc.jsonrpc.error_message';\nconst TMP_MESSAGE_TYPE = 'message.type';\nconst TMP_MESSAGE_ID = 'message.id';\nconst TMP_MESSAGE_COMPRESSED_SIZE = 'message.compressed_size';\nconst TMP_MESSAGE_UNCOMPRESSED_SIZE = 'message.uncompressed_size';\n/**\n * The full invoked ARN as provided on the `Context` passed to the function (`Lambda-Runtime-Invoked-Function-Arn` header on the `/runtime/invocation/next` applicable).\n *\n * Note: This may be different from `faas.id` if an alias is involved.\n *\n * @deprecated Use ATTR_AWS_LAMBDA_INVOKED_ARN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_LAMBDA_INVOKED_ARN = TMP_AWS_LAMBDA_INVOKED_ARN;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use ATTR_DB_SYSTEM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_SYSTEM = TMP_DB_SYSTEM;\n/**\n * The connection string used to connect to the database. It is recommended to remove embedded credentials.\n *\n * @deprecated Use ATTR_DB_CONNECTION_STRING in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CONNECTION_STRING = TMP_DB_CONNECTION_STRING;\n/**\n * Username for accessing the database.\n *\n * @deprecated Use ATTR_DB_USER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_USER = TMP_DB_USER;\n/**\n * The fully-qualified class name of the [Java Database Connectivity (JDBC)](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) driver used to connect.\n *\n * @deprecated Use ATTR_DB_JDBC_DRIVER_CLASSNAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_JDBC_DRIVER_CLASSNAME = TMP_DB_JDBC_DRIVER_CLASSNAME;\n/**\n * If no [tech-specific attribute](#call-level-attributes-for-specific-technologies) is defined, this attribute is used to report the name of the database being accessed. For commands that switch the database, this should be set to the target database (even if the command fails).\n *\n * Note: In some SQL databases, the database name to be used is called "schema name".\n *\n * @deprecated Use ATTR_DB_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_NAME = TMP_DB_NAME;\n/**\n * The database statement being executed.\n *\n * Note: The value may be sanitized to exclude sensitive information.\n *\n * @deprecated Use ATTR_DB_STATEMENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_STATEMENT = TMP_DB_STATEMENT;\n/**\n * The name of the operation being executed, e.g. the [MongoDB command name](https://docs.mongodb.com/manual/reference/command/#database-operations) such as `findAndModify`, or the SQL keyword.\n *\n * Note: When setting this to an SQL keyword, it is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if the operation name is provided by the library being instrumented. If the SQL statement has an ambiguous operation, or performs more than one operation, this value may be omitted.\n *\n * @deprecated Use ATTR_DB_OPERATION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_OPERATION = TMP_DB_OPERATION;\n/**\n * The Microsoft SQL Server [instance name](https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15) connecting to. This name is used to determine the port of a named instance.\n *\n * Note: If setting a `db.mssql.instance_name`, `net.peer.port` is no longer required (but still recommended if non-standard).\n *\n * @deprecated Use ATTR_DB_MSSQL_INSTANCE_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_MSSQL_INSTANCE_NAME = TMP_DB_MSSQL_INSTANCE_NAME;\n/**\n * The name of the keyspace being accessed. To be used instead of the generic `db.name` attribute.\n *\n * @deprecated Use ATTR_DB_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_KEYSPACE = TMP_DB_CASSANDRA_KEYSPACE;\n/**\n * The fetch size used for paging, i.e. how many rows will be returned at once.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_PAGE_SIZE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_PAGE_SIZE = TMP_DB_CASSANDRA_PAGE_SIZE;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use ATTR_DB_CASSANDRA_CONSISTENCY_LEVEL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL = TMP_DB_CASSANDRA_CONSISTENCY_LEVEL;\n/**\n * The name of the primary table that the operation is acting upon, including the schema name (if applicable).\n *\n * Note: This mirrors the db.sql.table attribute but references cassandra rather than sql. It is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_TABLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_TABLE = TMP_DB_CASSANDRA_TABLE;\n/**\n * Whether or not the query is idempotent.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_IDEMPOTENCE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_IDEMPOTENCE = TMP_DB_CASSANDRA_IDEMPOTENCE;\n/**\n * The number of times a query was speculatively executed. Not set or `0` if the query was not executed speculatively.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT = TMP_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT;\n/**\n * The ID of the coordinating node for a query.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_COORDINATOR_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_COORDINATOR_ID = TMP_DB_CASSANDRA_COORDINATOR_ID;\n/**\n * The data center of the coordinating node for a query.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_COORDINATOR_DC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_COORDINATOR_DC = TMP_DB_CASSANDRA_COORDINATOR_DC;\n/**\n * The [HBase namespace](https://hbase.apache.org/book.html#_namespace) being accessed. To be used instead of the generic `db.name` attribute.\n *\n * @deprecated Use ATTR_DB_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_HBASE_NAMESPACE = TMP_DB_HBASE_NAMESPACE;\n/**\n * The index of the database being accessed as used in the [`SELECT` command](https://redis.io/commands/select), provided as an integer. To be used instead of the generic `db.name` attribute.\n *\n * @deprecated Use ATTR_DB_REDIS_DATABASE_INDEX in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_REDIS_DATABASE_INDEX = TMP_DB_REDIS_DATABASE_INDEX;\n/**\n * The collection being accessed within the database stated in `db.name`.\n *\n * @deprecated Use ATTR_DB_MONGODB_COLLECTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_MONGODB_COLLECTION = TMP_DB_MONGODB_COLLECTION;\n/**\n * The name of the primary table that the operation is acting upon, including the schema name (if applicable).\n *\n * Note: It is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set.\n *\n * @deprecated Use ATTR_DB_SQL_TABLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_SQL_TABLE = TMP_DB_SQL_TABLE;\n/**\n * The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.\n *\n * @deprecated Use ATTR_EXCEPTION_TYPE.\n */\nexports.SEMATTRS_EXCEPTION_TYPE = TMP_EXCEPTION_TYPE;\n/**\n * The exception message.\n *\n * @deprecated Use ATTR_EXCEPTION_MESSAGE.\n */\nexports.SEMATTRS_EXCEPTION_MESSAGE = TMP_EXCEPTION_MESSAGE;\n/**\n * A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.\n *\n * @deprecated Use ATTR_EXCEPTION_STACKTRACE.\n */\nexports.SEMATTRS_EXCEPTION_STACKTRACE = TMP_EXCEPTION_STACKTRACE;\n/**\n* SHOULD be set to true if the exception event is recorded at a point where it is known that the exception is escaping the scope of the span.\n*\n* Note: An exception is considered to have escaped (or left) the scope of a span,\nif that span is ended while the exception is still logically "in flight".\nThis may be actually "in flight" in some languages (e.g. if the exception\nis passed to a Context manager's `__exit__` method in Python) but will\nusually be caught at the point of recording the exception in most languages.\n\nIt is usually not possible to determine at the point where an exception is thrown\nwhether it will escape the scope of a span.\nHowever, it is trivial to know that an exception\nwill escape, if one checks for an active exception just before ending the span,\nas done in the [example above](#exception-end-example).\n\nIt follows that an exception may still escape the scope of the span\neven if the `exception.escaped` attribute was not set or set to false,\nsince the event might have been recorded at a time where it was not\nclear whether the exception will escape.\n*\n* @deprecated Use ATTR_EXCEPTION_ESCAPED.\n*/\nexports.SEMATTRS_EXCEPTION_ESCAPED = TMP_EXCEPTION_ESCAPED;\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use ATTR_FAAS_TRIGGER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_TRIGGER = TMP_FAAS_TRIGGER;\n/**\n * The execution ID of the current function execution.\n *\n * @deprecated Use ATTR_FAAS_INVOCATION_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_EXECUTION = TMP_FAAS_EXECUTION;\n/**\n * The name of the source on which the triggering operation was performed. For example, in Cloud Storage or S3 corresponds to the bucket name, and in Cosmos DB to the database name.\n *\n * @deprecated Use ATTR_FAAS_DOCUMENT_COLLECTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_DOCUMENT_COLLECTION = TMP_FAAS_DOCUMENT_COLLECTION;\n/**\n * Describes the type of the operation that was performed on the data.\n *\n * @deprecated Use ATTR_FAAS_DOCUMENT_OPERATION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_DOCUMENT_OPERATION = TMP_FAAS_DOCUMENT_OPERATION;\n/**\n * A string containing the time when the data was accessed in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\n *\n * @deprecated Use ATTR_FAAS_DOCUMENT_TIME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_DOCUMENT_TIME = TMP_FAAS_DOCUMENT_TIME;\n/**\n * The document name/table subjected to the operation. For example, in Cloud Storage or S3 is the name of the file, and in Cosmos DB the table name.\n *\n * @deprecated Use ATTR_FAAS_DOCUMENT_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_DOCUMENT_NAME = TMP_FAAS_DOCUMENT_NAME;\n/**\n * A string containing the function invocation time in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\n *\n * @deprecated Use ATTR_FAAS_TIME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_TIME = TMP_FAAS_TIME;\n/**\n * A string containing the schedule period as [Cron Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).\n *\n * @deprecated Use ATTR_FAAS_CRON in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_CRON = TMP_FAAS_CRON;\n/**\n * A boolean that is true if the serverless function is executed for the first time (aka cold-start).\n *\n * @deprecated Use ATTR_FAAS_COLDSTART in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_COLDSTART = TMP_FAAS_COLDSTART;\n/**\n * The name of the invoked function.\n *\n * Note: SHOULD be equal to the `faas.name` resource attribute of the invoked function.\n *\n * @deprecated Use ATTR_FAAS_INVOKED_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_INVOKED_NAME = TMP_FAAS_INVOKED_NAME;\n/**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n *\n * @deprecated Use ATTR_FAAS_INVOKED_PROVIDER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_INVOKED_PROVIDER = TMP_FAAS_INVOKED_PROVIDER;\n/**\n * The cloud region of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.region` resource attribute of the invoked function.\n *\n * @deprecated Use ATTR_FAAS_INVOKED_REGION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_INVOKED_REGION = TMP_FAAS_INVOKED_REGION;\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use ATTR_NET_TRANSPORT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_TRANSPORT = TMP_NET_TRANSPORT;\n/**\n * Remote address of the peer (dotted decimal for IPv4 or [RFC5952](https://tools.ietf.org/html/rfc5952) for IPv6).\n *\n * @deprecated Use ATTR_NET_PEER_IP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_PEER_IP = TMP_NET_PEER_IP;\n/**\n * Remote port number.\n *\n * @deprecated Use ATTR_NET_PEER_PORT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_PEER_PORT = TMP_NET_PEER_PORT;\n/**\n * Remote hostname or similar, see note below.\n *\n * @deprecated Use ATTR_NET_PEER_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_PEER_NAME = TMP_NET_PEER_NAME;\n/**\n * Like `net.peer.ip` but for the host IP. Useful in case of a multi-IP host.\n *\n * @deprecated Use ATTR_NET_HOST_IP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_IP = TMP_NET_HOST_IP;\n/**\n * Like `net.peer.port` but for the host port.\n *\n * @deprecated Use ATTR_NET_HOST_PORT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_PORT = TMP_NET_HOST_PORT;\n/**\n * Local hostname or similar, see note below.\n *\n * @deprecated Use ATTR_NET_HOST_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_NAME = TMP_NET_HOST_NAME;\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use ATTR_NETWORK_CONNECTION_TYPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_CONNECTION_TYPE = TMP_NET_HOST_CONNECTION_TYPE;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use ATTR_NETWORK_CONNECTION_SUBTYPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_CONNECTION_SUBTYPE = TMP_NET_HOST_CONNECTION_SUBTYPE;\n/**\n * The name of the mobile carrier.\n *\n * @deprecated Use ATTR_NETWORK_CARRIER_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_CARRIER_NAME = TMP_NET_HOST_CARRIER_NAME;\n/**\n * The mobile carrier country code.\n *\n * @deprecated Use ATTR_NETWORK_CARRIER_MCC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_CARRIER_MCC = TMP_NET_HOST_CARRIER_MCC;\n/**\n * The mobile carrier network code.\n *\n * @deprecated Use ATTR_NETWORK_CARRIER_MNC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_CARRIER_MNC = TMP_NET_HOST_CARRIER_MNC;\n/**\n * The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network.\n *\n * @deprecated Use ATTR_NETWORK_CARRIER_ICC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_CARRIER_ICC = TMP_NET_HOST_CARRIER_ICC;\n/**\n * The [`service.name`](../../resource/semantic_conventions/README.md#service) of the remote service. SHOULD be equal to the actual `service.name` resource attribute of the remote service if any.\n *\n * @deprecated Use ATTR_PEER_SERVICE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_PEER_SERVICE = TMP_PEER_SERVICE;\n/**\n * Username or client_id extracted from the access token or [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header in the inbound request from outside the system.\n *\n * @deprecated Use ATTR_ENDUSER_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_ENDUSER_ID = TMP_ENDUSER_ID;\n/**\n * Actual/assumed role the client is making the request under extracted from token or application security context.\n *\n * @deprecated Use ATTR_ENDUSER_ROLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_ENDUSER_ROLE = TMP_ENDUSER_ROLE;\n/**\n * Scopes or granted authorities the client currently possesses extracted from token or application security context. The value would come from the scope associated with an [OAuth 2.0 Access Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute value in a [SAML 2.0 Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).\n *\n * @deprecated Use ATTR_ENDUSER_SCOPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_ENDUSER_SCOPE = TMP_ENDUSER_SCOPE;\n/**\n * Current "managed" thread ID (as opposed to OS thread ID).\n *\n * @deprecated Use ATTR_THREAD_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_THREAD_ID = TMP_THREAD_ID;\n/**\n * Current thread name.\n *\n * @deprecated Use ATTR_THREAD_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_THREAD_NAME = TMP_THREAD_NAME;\n/**\n * The method or function name, or equivalent (usually rightmost part of the code unit's name).\n *\n * @deprecated Use ATTR_CODE_FUNCTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_CODE_FUNCTION = TMP_CODE_FUNCTION;\n/**\n * The "namespace" within which `code.function` is defined. Usually the qualified class or module name, such that `code.namespace` + some separator + `code.function` form a unique identifier for the code unit.\n *\n * @deprecated Use ATTR_CODE_NAMESPACE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_CODE_NAMESPACE = TMP_CODE_NAMESPACE;\n/**\n * The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).\n *\n * @deprecated Use ATTR_CODE_FILEPATH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_CODE_FILEPATH = TMP_CODE_FILEPATH;\n/**\n * The line number in `code.filepath` best representing the operation. It SHOULD point within the code unit named in `code.function`.\n *\n * @deprecated Use ATTR_CODE_LINENO in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_CODE_LINENO = TMP_CODE_LINENO;\n/**\n * HTTP request method.\n *\n * @deprecated Use ATTR_HTTP_METHOD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_METHOD = TMP_HTTP_METHOD;\n/**\n * Full HTTP request URL in the form `scheme://host[:port]/path?query[#fragment]`. Usually the fragment is not transmitted over HTTP, but if it is known, it should be included nevertheless.\n *\n * Note: `http.url` MUST NOT contain credentials passed via URL in form of `https://username:password@www.example.com/`. In such case the attribute's value should be `https://www.example.com/`.\n *\n * @deprecated Use ATTR_HTTP_URL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_URL = TMP_HTTP_URL;\n/**\n * The full request target as passed in a HTTP request line or equivalent.\n *\n * @deprecated Use ATTR_HTTP_TARGET in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_TARGET = TMP_HTTP_TARGET;\n/**\n * The value of the [HTTP host header](https://tools.ietf.org/html/rfc7230#section-5.4). An empty Host header should also be reported, see note.\n *\n * Note: When the header is present but empty the attribute SHOULD be set to the empty string. Note that this is a valid situation that is expected in certain cases, according the aforementioned [section of RFC 7230](https://tools.ietf.org/html/rfc7230#section-5.4). When the header is not set the attribute MUST NOT be set.\n *\n * @deprecated Use ATTR_HTTP_HOST in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_HOST = TMP_HTTP_HOST;\n/**\n * The URI scheme identifying the used protocol.\n *\n * @deprecated Use ATTR_HTTP_SCHEME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_SCHEME = TMP_HTTP_SCHEME;\n/**\n * [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).\n *\n * @deprecated Use ATTR_HTTP_STATUS_CODE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_STATUS_CODE = TMP_HTTP_STATUS_CODE;\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use ATTR_HTTP_FLAVOR in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_FLAVOR = TMP_HTTP_FLAVOR;\n/**\n * Value of the [HTTP User-Agent](https://tools.ietf.org/html/rfc7231#section-5.5.3) header sent by the client.\n *\n * @deprecated Use ATTR_HTTP_USER_AGENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_USER_AGENT = TMP_HTTP_USER_AGENT;\n/**\n * The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://tools.ietf.org/html/rfc7230#section-3.3.2) header. For requests using transport encoding, this should be the compressed size.\n *\n * @deprecated Use ATTR_HTTP_REQUEST_CONTENT_LENGTH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH = TMP_HTTP_REQUEST_CONTENT_LENGTH;\n/**\n * The size of the uncompressed request payload body after transport decoding. Not set if transport encoding not used.\n *\n * @deprecated Use ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED = TMP_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED;\n/**\n * The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://tools.ietf.org/html/rfc7230#section-3.3.2) header. For requests using transport encoding, this should be the compressed size.\n *\n * @deprecated Use ATTR_HTTP_RESPONSE_CONTENT_LENGTH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH = TMP_HTTP_RESPONSE_CONTENT_LENGTH;\n/**\n * The size of the uncompressed response payload body after transport decoding. Not set if transport encoding not used.\n *\n * @deprecated Use ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED = TMP_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED;\n/**\n * The primary server name of the matched virtual host. This should be obtained via configuration. If no such configuration can be obtained, this attribute MUST NOT be set ( `net.host.name` should be used instead).\n *\n * Note: `http.url` is usually not readily available on the server side but would have to be assembled in a cumbersome and sometimes lossy process from other information (see e.g. open-telemetry/opentelemetry-python/pull/148). It is thus preferred to supply the raw data that is available.\n *\n * @deprecated Use ATTR_HTTP_SERVER_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_SERVER_NAME = TMP_HTTP_SERVER_NAME;\n/**\n * The matched route (path template).\n *\n * @deprecated Use ATTR_HTTP_ROUTE.\n */\nexports.SEMATTRS_HTTP_ROUTE = TMP_HTTP_ROUTE;\n/**\n* The IP address of the original client behind all proxies, if known (e.g. from [X-Forwarded-For](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For)).\n*\n* Note: This is not necessarily the same as `net.peer.ip`, which would\nidentify the network-level peer, which may be a proxy.\n\nThis attribute should be set when a source of information different\nfrom the one used for `net.peer.ip`, is available even if that other\nsource just confirms the same value as `net.peer.ip`.\nRationale: For `net.peer.ip`, one typically does not know if it\ncomes from a proxy, reverse proxy, or the actual client. Setting\n`http.client_ip` when it's the same as `net.peer.ip` means that\none is at least somewhat confident that the address is not that of\nthe closest proxy.\n*\n* @deprecated Use ATTR_HTTP_CLIENT_IP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n*/\nexports.SEMATTRS_HTTP_CLIENT_IP = TMP_HTTP_CLIENT_IP;\n/**\n * The keys in the `RequestItems` object field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_TABLE_NAMES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_TABLE_NAMES = TMP_AWS_DYNAMODB_TABLE_NAMES;\n/**\n * The JSON-serialized value of each item in the `ConsumedCapacity` response field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_CONSUMED_CAPACITY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY = TMP_AWS_DYNAMODB_CONSUMED_CAPACITY;\n/**\n * The JSON-serialized value of the `ItemCollectionMetrics` response field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_ITEM_COLLECTION_METRICS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS = TMP_AWS_DYNAMODB_ITEM_COLLECTION_METRICS;\n/**\n * The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY = TMP_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY;\n/**\n * The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY = TMP_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY;\n/**\n * The value of the `ConsistentRead` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_CONSISTENT_READ in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ = TMP_AWS_DYNAMODB_CONSISTENT_READ;\n/**\n * The value of the `ProjectionExpression` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_PROJECTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_PROJECTION = TMP_AWS_DYNAMODB_PROJECTION;\n/**\n * The value of the `Limit` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_LIMIT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_LIMIT = TMP_AWS_DYNAMODB_LIMIT;\n/**\n * The value of the `AttributesToGet` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_ATTRIBUTES_TO_GET in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET = TMP_AWS_DYNAMODB_ATTRIBUTES_TO_GET;\n/**\n * The value of the `IndexName` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_INDEX_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_INDEX_NAME = TMP_AWS_DYNAMODB_INDEX_NAME;\n/**\n * The value of the `Select` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_SELECT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_SELECT = TMP_AWS_DYNAMODB_SELECT;\n/**\n * The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES = TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES;\n/**\n * The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES = TMP_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES;\n/**\n * The value of the `ExclusiveStartTableName` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_EXCLUSIVE_START_TABLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE = TMP_AWS_DYNAMODB_EXCLUSIVE_START_TABLE;\n/**\n * The the number of items in the `TableNames` response parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_TABLE_COUNT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_TABLE_COUNT = TMP_AWS_DYNAMODB_TABLE_COUNT;\n/**\n * The value of the `ScanIndexForward` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_SCAN_FORWARD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD = TMP_AWS_DYNAMODB_SCAN_FORWARD;\n/**\n * The value of the `Segment` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_SEGMENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_SEGMENT = TMP_AWS_DYNAMODB_SEGMENT;\n/**\n * The value of the `TotalSegments` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_TOTAL_SEGMENTS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS = TMP_AWS_DYNAMODB_TOTAL_SEGMENTS;\n/**\n * The value of the `Count` response parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_COUNT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_COUNT = TMP_AWS_DYNAMODB_COUNT;\n/**\n * The value of the `ScannedCount` response parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_SCANNED_COUNT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT = TMP_AWS_DYNAMODB_SCANNED_COUNT;\n/**\n * The JSON-serialized value of each item in the `AttributeDefinitions` request field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS = TMP_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS;\n/**\n * The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates` request field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES = TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES;\n/**\n * A string identifying the messaging system.\n *\n * @deprecated Use ATTR_MESSAGING_SYSTEM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_SYSTEM = TMP_MESSAGING_SYSTEM;\n/**\n * The message destination name. This might be equal to the span name but is required nevertheless.\n *\n * @deprecated Use ATTR_MESSAGING_DESTINATION_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_DESTINATION = TMP_MESSAGING_DESTINATION;\n/**\n * The kind of message destination.\n *\n * @deprecated Removed in semconv v1.20.0.\n */\nexports.SEMATTRS_MESSAGING_DESTINATION_KIND = TMP_MESSAGING_DESTINATION_KIND;\n/**\n * A boolean that is true if the message destination is temporary.\n *\n * @deprecated Use ATTR_MESSAGING_DESTINATION_TEMPORARY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_TEMP_DESTINATION = TMP_MESSAGING_TEMP_DESTINATION;\n/**\n * The name of the transport protocol.\n *\n * @deprecated Use ATTR_NETWORK_PROTOCOL_NAME.\n */\nexports.SEMATTRS_MESSAGING_PROTOCOL = TMP_MESSAGING_PROTOCOL;\n/**\n * The version of the transport protocol.\n *\n * @deprecated Use ATTR_NETWORK_PROTOCOL_VERSION.\n */\nexports.SEMATTRS_MESSAGING_PROTOCOL_VERSION = TMP_MESSAGING_PROTOCOL_VERSION;\n/**\n * Connection string.\n *\n * @deprecated Removed in semconv v1.17.0.\n */\nexports.SEMATTRS_MESSAGING_URL = TMP_MESSAGING_URL;\n/**\n * A value used by the messaging system as an identifier for the message, represented as a string.\n *\n * @deprecated Use ATTR_MESSAGING_MESSAGE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_MESSAGE_ID = TMP_MESSAGING_MESSAGE_ID;\n/**\n * The [conversation ID](#conversations) identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID".\n *\n * @deprecated Use ATTR_MESSAGING_MESSAGE_CONVERSATION_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_CONVERSATION_ID = TMP_MESSAGING_CONVERSATION_ID;\n/**\n * The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported.\n *\n * @deprecated Use ATTR_MESSAGING_MESSAGE_BODY_SIZE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES = TMP_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES;\n/**\n * The compressed size of the message payload in bytes.\n *\n * @deprecated Removed in semconv v1.22.0.\n */\nexports.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES = TMP_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES;\n/**\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n *\n * @deprecated Use ATTR_MESSAGING_OPERATION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_OPERATION = TMP_MESSAGING_OPERATION;\n/**\n * The identifier for the consumer receiving a message. For Kafka, set it to `{messaging.kafka.consumer_group} - {messaging.kafka.client_id}`, if both are present, or only `messaging.kafka.consumer_group`. For brokers, such as RabbitMQ and Artemis, set it to the `client_id` of the client consuming the message.\n *\n * @deprecated Removed in semconv v1.21.0.\n */\nexports.SEMATTRS_MESSAGING_CONSUMER_ID = TMP_MESSAGING_CONSUMER_ID;\n/**\n * RabbitMQ message routing key.\n *\n * @deprecated Use ATTR_MESSAGING_RABBITMQ_DESTINATION_ROUTING_KEY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY = TMP_MESSAGING_RABBITMQ_ROUTING_KEY;\n/**\n * Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from `messaging.message_id` in that they're not unique. If the key is `null`, the attribute MUST NOT be set.\n *\n * Note: If the key type is not string, it's string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don't include its value.\n *\n * @deprecated Use ATTR_MESSAGING_KAFKA_MESSAGE_KEY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY = TMP_MESSAGING_KAFKA_MESSAGE_KEY;\n/**\n * Name of the Kafka Consumer Group that is handling the message. Only applies to consumers, not producers.\n *\n * @deprecated Use ATTR_MESSAGING_KAFKA_CONSUMER_GROUP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP = TMP_MESSAGING_KAFKA_CONSUMER_GROUP;\n/**\n * Client Id for the Consumer or Producer that is handling the message.\n *\n * @deprecated Use ATTR_MESSAGING_CLIENT_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_KAFKA_CLIENT_ID = TMP_MESSAGING_KAFKA_CLIENT_ID;\n/**\n * Partition the message is sent to.\n *\n * @deprecated Use ATTR_MESSAGING_KAFKA_DESTINATION_PARTITION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_KAFKA_PARTITION = TMP_MESSAGING_KAFKA_PARTITION;\n/**\n * A boolean that is true if the message is a tombstone.\n *\n * @deprecated Use ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_KAFKA_TOMBSTONE = TMP_MESSAGING_KAFKA_TOMBSTONE;\n/**\n * A string identifying the remoting system.\n *\n * @deprecated Use ATTR_RPC_SYSTEM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_SYSTEM = TMP_RPC_SYSTEM;\n/**\n * The full (logical) name of the service being called, including its package name, if applicable.\n *\n * Note: This is the logical name of the service from the RPC interface perspective, which can be different from the name of any implementing class. The `code.namespace` attribute may be used to store the latter (despite the attribute name, it may include a class name; e.g., class with method actually executing the call on the server side, RPC client stub class on the client side).\n *\n * @deprecated Use ATTR_RPC_SERVICE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_SERVICE = TMP_RPC_SERVICE;\n/**\n * The name of the (logical) method being called, must be equal to the $method part in the span name.\n *\n * Note: This is the logical name of the method from the RPC interface perspective, which can be different from the name of any implementing method/function. The `code.function` attribute may be used to store the latter (e.g., method actually executing the call on the server side, RPC client stub method on the client side).\n *\n * @deprecated Use ATTR_RPC_METHOD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_METHOD = TMP_RPC_METHOD;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use ATTR_RPC_GRPC_STATUS_CODE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_GRPC_STATUS_CODE = TMP_RPC_GRPC_STATUS_CODE;\n/**\n * Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0 does not specify this, the value can be omitted.\n *\n * @deprecated Use ATTR_RPC_JSONRPC_VERSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_JSONRPC_VERSION = TMP_RPC_JSONRPC_VERSION;\n/**\n * `id` property of request or response. Since protocol allows id to be int, string, `null` or missing (for notifications), value is expected to be cast to string for simplicity. Use empty string in case of `null` value. Omit entirely if this is a notification.\n *\n * @deprecated Use ATTR_RPC_JSONRPC_REQUEST_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_JSONRPC_REQUEST_ID = TMP_RPC_JSONRPC_REQUEST_ID;\n/**\n * `error.code` property of response if it is an error response.\n *\n * @deprecated Use ATTR_RPC_JSONRPC_ERROR_CODE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_JSONRPC_ERROR_CODE = TMP_RPC_JSONRPC_ERROR_CODE;\n/**\n * `error.message` property of response if it is an error response.\n *\n * @deprecated Use ATTR_RPC_JSONRPC_ERROR_MESSAGE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE = TMP_RPC_JSONRPC_ERROR_MESSAGE;\n/**\n * Whether this is a received or sent message.\n *\n * @deprecated Use ATTR_MESSAGE_TYPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGE_TYPE = TMP_MESSAGE_TYPE;\n/**\n * MUST be calculated as two different counters starting from `1` one for sent messages and one for received message.\n *\n * Note: This way we guarantee that the values will be consistent between different implementations.\n *\n * @deprecated Use ATTR_MESSAGE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGE_ID = TMP_MESSAGE_ID;\n/**\n * Compressed size of the message in bytes.\n *\n * @deprecated Use ATTR_MESSAGE_COMPRESSED_SIZE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGE_COMPRESSED_SIZE = TMP_MESSAGE_COMPRESSED_SIZE;\n/**\n * Uncompressed size of the message in bytes.\n *\n * @deprecated Use ATTR_MESSAGE_UNCOMPRESSED_SIZE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE = TMP_MESSAGE_UNCOMPRESSED_SIZE;\n/**\n * Create exported Value Map for SemanticAttributes values\n * @deprecated Use the SEMATTRS_XXXXX constants rather than the SemanticAttributes.XXXXX for bundle minification\n */\nexports.SemanticAttributes = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_AWS_LAMBDA_INVOKED_ARN,\n TMP_DB_SYSTEM,\n TMP_DB_CONNECTION_STRING,\n TMP_DB_USER,\n TMP_DB_JDBC_DRIVER_CLASSNAME,\n TMP_DB_NAME,\n TMP_DB_STATEMENT,\n TMP_DB_OPERATION,\n TMP_DB_MSSQL_INSTANCE_NAME,\n TMP_DB_CASSANDRA_KEYSPACE,\n TMP_DB_CASSANDRA_PAGE_SIZE,\n TMP_DB_CASSANDRA_CONSISTENCY_LEVEL,\n TMP_DB_CASSANDRA_TABLE,\n TMP_DB_CASSANDRA_IDEMPOTENCE,\n TMP_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT,\n TMP_DB_CASSANDRA_COORDINATOR_ID,\n TMP_DB_CASSANDRA_COORDINATOR_DC,\n TMP_DB_HBASE_NAMESPACE,\n TMP_DB_REDIS_DATABASE_INDEX,\n TMP_DB_MONGODB_COLLECTION,\n TMP_DB_SQL_TABLE,\n TMP_EXCEPTION_TYPE,\n TMP_EXCEPTION_MESSAGE,\n TMP_EXCEPTION_STACKTRACE,\n TMP_EXCEPTION_ESCAPED,\n TMP_FAAS_TRIGGER,\n TMP_FAAS_EXECUTION,\n TMP_FAAS_DOCUMENT_COLLECTION,\n TMP_FAAS_DOCUMENT_OPERATION,\n TMP_FAAS_DOCUMENT_TIME,\n TMP_FAAS_DOCUMENT_NAME,\n TMP_FAAS_TIME,\n TMP_FAAS_CRON,\n TMP_FAAS_COLDSTART,\n TMP_FAAS_INVOKED_NAME,\n TMP_FAAS_INVOKED_PROVIDER,\n TMP_FAAS_INVOKED_REGION,\n TMP_NET_TRANSPORT,\n TMP_NET_PEER_IP,\n TMP_NET_PEER_PORT,\n TMP_NET_PEER_NAME,\n TMP_NET_HOST_IP,\n TMP_NET_HOST_PORT,\n TMP_NET_HOST_NAME,\n TMP_NET_HOST_CONNECTION_TYPE,\n TMP_NET_HOST_CONNECTION_SUBTYPE,\n TMP_NET_HOST_CARRIER_NAME,\n TMP_NET_HOST_CARRIER_MCC,\n TMP_NET_HOST_CARRIER_MNC,\n TMP_NET_HOST_CARRIER_ICC,\n TMP_PEER_SERVICE,\n TMP_ENDUSER_ID,\n TMP_ENDUSER_ROLE,\n TMP_ENDUSER_SCOPE,\n TMP_THREAD_ID,\n TMP_THREAD_NAME,\n TMP_CODE_FUNCTION,\n TMP_CODE_NAMESPACE,\n TMP_CODE_FILEPATH,\n TMP_CODE_LINENO,\n TMP_HTTP_METHOD,\n TMP_HTTP_URL,\n TMP_HTTP_TARGET,\n TMP_HTTP_HOST,\n TMP_HTTP_SCHEME,\n TMP_HTTP_STATUS_CODE,\n TMP_HTTP_FLAVOR,\n TMP_HTTP_USER_AGENT,\n TMP_HTTP_REQUEST_CONTENT_LENGTH,\n TMP_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED,\n TMP_HTTP_RESPONSE_CONTENT_LENGTH,\n TMP_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED,\n TMP_HTTP_SERVER_NAME,\n TMP_HTTP_ROUTE,\n TMP_HTTP_CLIENT_IP,\n TMP_AWS_DYNAMODB_TABLE_NAMES,\n TMP_AWS_DYNAMODB_CONSUMED_CAPACITY,\n TMP_AWS_DYNAMODB_ITEM_COLLECTION_METRICS,\n TMP_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY,\n TMP_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY,\n TMP_AWS_DYNAMODB_CONSISTENT_READ,\n TMP_AWS_DYNAMODB_PROJECTION,\n TMP_AWS_DYNAMODB_LIMIT,\n TMP_AWS_DYNAMODB_ATTRIBUTES_TO_GET,\n TMP_AWS_DYNAMODB_INDEX_NAME,\n TMP_AWS_DYNAMODB_SELECT,\n TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES,\n TMP_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES,\n TMP_AWS_DYNAMODB_EXCLUSIVE_START_TABLE,\n TMP_AWS_DYNAMODB_TABLE_COUNT,\n TMP_AWS_DYNAMODB_SCAN_FORWARD,\n TMP_AWS_DYNAMODB_SEGMENT,\n TMP_AWS_DYNAMODB_TOTAL_SEGMENTS,\n TMP_AWS_DYNAMODB_COUNT,\n TMP_AWS_DYNAMODB_SCANNED_COUNT,\n TMP_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS,\n TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES,\n TMP_MESSAGING_SYSTEM,\n TMP_MESSAGING_DESTINATION,\n TMP_MESSAGING_DESTINATION_KIND,\n TMP_MESSAGING_TEMP_DESTINATION,\n TMP_MESSAGING_PROTOCOL,\n TMP_MESSAGING_PROTOCOL_VERSION,\n TMP_MESSAGING_URL,\n TMP_MESSAGING_MESSAGE_ID,\n TMP_MESSAGING_CONVERSATION_ID,\n TMP_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES,\n TMP_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES,\n TMP_MESSAGING_OPERATION,\n TMP_MESSAGING_CONSUMER_ID,\n TMP_MESSAGING_RABBITMQ_ROUTING_KEY,\n TMP_MESSAGING_KAFKA_MESSAGE_KEY,\n TMP_MESSAGING_KAFKA_CONSUMER_GROUP,\n TMP_MESSAGING_KAFKA_CLIENT_ID,\n TMP_MESSAGING_KAFKA_PARTITION,\n TMP_MESSAGING_KAFKA_TOMBSTONE,\n TMP_RPC_SYSTEM,\n TMP_RPC_SERVICE,\n TMP_RPC_METHOD,\n TMP_RPC_GRPC_STATUS_CODE,\n TMP_RPC_JSONRPC_VERSION,\n TMP_RPC_JSONRPC_REQUEST_ID,\n TMP_RPC_JSONRPC_ERROR_CODE,\n TMP_RPC_JSONRPC_ERROR_MESSAGE,\n TMP_MESSAGE_TYPE,\n TMP_MESSAGE_ID,\n TMP_MESSAGE_COMPRESSED_SIZE,\n TMP_MESSAGE_UNCOMPRESSED_SIZE,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for DbSystemValues enum definition\n *\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_DBSYSTEMVALUES_OTHER_SQL = 'other_sql';\nconst TMP_DBSYSTEMVALUES_MSSQL = 'mssql';\nconst TMP_DBSYSTEMVALUES_MYSQL = 'mysql';\nconst TMP_DBSYSTEMVALUES_ORACLE = 'oracle';\nconst TMP_DBSYSTEMVALUES_DB2 = 'db2';\nconst TMP_DBSYSTEMVALUES_POSTGRESQL = 'postgresql';\nconst TMP_DBSYSTEMVALUES_REDSHIFT = 'redshift';\nconst TMP_DBSYSTEMVALUES_HIVE = 'hive';\nconst TMP_DBSYSTEMVALUES_CLOUDSCAPE = 'cloudscape';\nconst TMP_DBSYSTEMVALUES_HSQLDB = 'hsqldb';\nconst TMP_DBSYSTEMVALUES_PROGRESS = 'progress';\nconst TMP_DBSYSTEMVALUES_MAXDB = 'maxdb';\nconst TMP_DBSYSTEMVALUES_HANADB = 'hanadb';\nconst TMP_DBSYSTEMVALUES_INGRES = 'ingres';\nconst TMP_DBSYSTEMVALUES_FIRSTSQL = 'firstsql';\nconst TMP_DBSYSTEMVALUES_EDB = 'edb';\nconst TMP_DBSYSTEMVALUES_CACHE = 'cache';\nconst TMP_DBSYSTEMVALUES_ADABAS = 'adabas';\nconst TMP_DBSYSTEMVALUES_FIREBIRD = 'firebird';\nconst TMP_DBSYSTEMVALUES_DERBY = 'derby';\nconst TMP_DBSYSTEMVALUES_FILEMAKER = 'filemaker';\nconst TMP_DBSYSTEMVALUES_INFORMIX = 'informix';\nconst TMP_DBSYSTEMVALUES_INSTANTDB = 'instantdb';\nconst TMP_DBSYSTEMVALUES_INTERBASE = 'interbase';\nconst TMP_DBSYSTEMVALUES_MARIADB = 'mariadb';\nconst TMP_DBSYSTEMVALUES_NETEZZA = 'netezza';\nconst TMP_DBSYSTEMVALUES_PERVASIVE = 'pervasive';\nconst TMP_DBSYSTEMVALUES_POINTBASE = 'pointbase';\nconst TMP_DBSYSTEMVALUES_SQLITE = 'sqlite';\nconst TMP_DBSYSTEMVALUES_SYBASE = 'sybase';\nconst TMP_DBSYSTEMVALUES_TERADATA = 'teradata';\nconst TMP_DBSYSTEMVALUES_VERTICA = 'vertica';\nconst TMP_DBSYSTEMVALUES_H2 = 'h2';\nconst TMP_DBSYSTEMVALUES_COLDFUSION = 'coldfusion';\nconst TMP_DBSYSTEMVALUES_CASSANDRA = 'cassandra';\nconst TMP_DBSYSTEMVALUES_HBASE = 'hbase';\nconst TMP_DBSYSTEMVALUES_MONGODB = 'mongodb';\nconst TMP_DBSYSTEMVALUES_REDIS = 'redis';\nconst TMP_DBSYSTEMVALUES_COUCHBASE = 'couchbase';\nconst TMP_DBSYSTEMVALUES_COUCHDB = 'couchdb';\nconst TMP_DBSYSTEMVALUES_COSMOSDB = 'cosmosdb';\nconst TMP_DBSYSTEMVALUES_DYNAMODB = 'dynamodb';\nconst TMP_DBSYSTEMVALUES_NEO4J = 'neo4j';\nconst TMP_DBSYSTEMVALUES_GEODE = 'geode';\nconst TMP_DBSYSTEMVALUES_ELASTICSEARCH = 'elasticsearch';\nconst TMP_DBSYSTEMVALUES_MEMCACHED = 'memcached';\nconst TMP_DBSYSTEMVALUES_COCKROACHDB = 'cockroachdb';\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_OTHER_SQL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_OTHER_SQL = TMP_DBSYSTEMVALUES_OTHER_SQL;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MSSQL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_MSSQL = TMP_DBSYSTEMVALUES_MSSQL;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MYSQL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_MYSQL = TMP_DBSYSTEMVALUES_MYSQL;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_ORACLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_ORACLE = TMP_DBSYSTEMVALUES_ORACLE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_DB2 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_DB2 = TMP_DBSYSTEMVALUES_DB2;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_POSTGRESQL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_POSTGRESQL = TMP_DBSYSTEMVALUES_POSTGRESQL;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_REDSHIFT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_REDSHIFT = TMP_DBSYSTEMVALUES_REDSHIFT;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_HIVE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_HIVE = TMP_DBSYSTEMVALUES_HIVE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_CLOUDSCAPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_CLOUDSCAPE = TMP_DBSYSTEMVALUES_CLOUDSCAPE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_HSQLDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_HSQLDB = TMP_DBSYSTEMVALUES_HSQLDB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_PROGRESS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_PROGRESS = TMP_DBSYSTEMVALUES_PROGRESS;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MAXDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_MAXDB = TMP_DBSYSTEMVALUES_MAXDB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_HANADB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_HANADB = TMP_DBSYSTEMVALUES_HANADB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_INGRES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_INGRES = TMP_DBSYSTEMVALUES_INGRES;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_FIRSTSQL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_FIRSTSQL = TMP_DBSYSTEMVALUES_FIRSTSQL;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_EDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_EDB = TMP_DBSYSTEMVALUES_EDB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_CACHE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_CACHE = TMP_DBSYSTEMVALUES_CACHE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_ADABAS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_ADABAS = TMP_DBSYSTEMVALUES_ADABAS;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_FIREBIRD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_FIREBIRD = TMP_DBSYSTEMVALUES_FIREBIRD;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_DERBY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_DERBY = TMP_DBSYSTEMVALUES_DERBY;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_FILEMAKER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_FILEMAKER = TMP_DBSYSTEMVALUES_FILEMAKER;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_INFORMIX in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_INFORMIX = TMP_DBSYSTEMVALUES_INFORMIX;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_INSTANTDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_INSTANTDB = TMP_DBSYSTEMVALUES_INSTANTDB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_INTERBASE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_INTERBASE = TMP_DBSYSTEMVALUES_INTERBASE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MARIADB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_MARIADB = TMP_DBSYSTEMVALUES_MARIADB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_NETEZZA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_NETEZZA = TMP_DBSYSTEMVALUES_NETEZZA;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_PERVASIVE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_PERVASIVE = TMP_DBSYSTEMVALUES_PERVASIVE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_POINTBASE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_POINTBASE = TMP_DBSYSTEMVALUES_POINTBASE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_SQLITE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_SQLITE = TMP_DBSYSTEMVALUES_SQLITE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_SYBASE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_SYBASE = TMP_DBSYSTEMVALUES_SYBASE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_TERADATA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_TERADATA = TMP_DBSYSTEMVALUES_TERADATA;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_VERTICA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_VERTICA = TMP_DBSYSTEMVALUES_VERTICA;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_H2 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_H2 = TMP_DBSYSTEMVALUES_H2;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_COLDFUSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_COLDFUSION = TMP_DBSYSTEMVALUES_COLDFUSION;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_CASSANDRA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_CASSANDRA = TMP_DBSYSTEMVALUES_CASSANDRA;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_HBASE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_HBASE = TMP_DBSYSTEMVALUES_HBASE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MONGODB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_MONGODB = TMP_DBSYSTEMVALUES_MONGODB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_REDIS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_REDIS = TMP_DBSYSTEMVALUES_REDIS;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_COUCHBASE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_COUCHBASE = TMP_DBSYSTEMVALUES_COUCHBASE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_COUCHDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_COUCHDB = TMP_DBSYSTEMVALUES_COUCHDB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_COSMOSDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_COSMOSDB = TMP_DBSYSTEMVALUES_COSMOSDB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_DYNAMODB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_DYNAMODB = TMP_DBSYSTEMVALUES_DYNAMODB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_NEO4J in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_NEO4J = TMP_DBSYSTEMVALUES_NEO4J;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_GEODE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_GEODE = TMP_DBSYSTEMVALUES_GEODE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_ELASTICSEARCH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_ELASTICSEARCH = TMP_DBSYSTEMVALUES_ELASTICSEARCH;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MEMCACHED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_MEMCACHED = TMP_DBSYSTEMVALUES_MEMCACHED;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_COCKROACHDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_COCKROACHDB = TMP_DBSYSTEMVALUES_COCKROACHDB;\n/**\n * The constant map of values for DbSystemValues.\n * @deprecated Use the DBSYSTEMVALUES_XXXXX constants rather than the DbSystemValues.XXXXX for bundle minification.\n */\nexports.DbSystemValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_DBSYSTEMVALUES_OTHER_SQL,\n TMP_DBSYSTEMVALUES_MSSQL,\n TMP_DBSYSTEMVALUES_MYSQL,\n TMP_DBSYSTEMVALUES_ORACLE,\n TMP_DBSYSTEMVALUES_DB2,\n TMP_DBSYSTEMVALUES_POSTGRESQL,\n TMP_DBSYSTEMVALUES_REDSHIFT,\n TMP_DBSYSTEMVALUES_HIVE,\n TMP_DBSYSTEMVALUES_CLOUDSCAPE,\n TMP_DBSYSTEMVALUES_HSQLDB,\n TMP_DBSYSTEMVALUES_PROGRESS,\n TMP_DBSYSTEMVALUES_MAXDB,\n TMP_DBSYSTEMVALUES_HANADB,\n TMP_DBSYSTEMVALUES_INGRES,\n TMP_DBSYSTEMVALUES_FIRSTSQL,\n TMP_DBSYSTEMVALUES_EDB,\n TMP_DBSYSTEMVALUES_CACHE,\n TMP_DBSYSTEMVALUES_ADABAS,\n TMP_DBSYSTEMVALUES_FIREBIRD,\n TMP_DBSYSTEMVALUES_DERBY,\n TMP_DBSYSTEMVALUES_FILEMAKER,\n TMP_DBSYSTEMVALUES_INFORMIX,\n TMP_DBSYSTEMVALUES_INSTANTDB,\n TMP_DBSYSTEMVALUES_INTERBASE,\n TMP_DBSYSTEMVALUES_MARIADB,\n TMP_DBSYSTEMVALUES_NETEZZA,\n TMP_DBSYSTEMVALUES_PERVASIVE,\n TMP_DBSYSTEMVALUES_POINTBASE,\n TMP_DBSYSTEMVALUES_SQLITE,\n TMP_DBSYSTEMVALUES_SYBASE,\n TMP_DBSYSTEMVALUES_TERADATA,\n TMP_DBSYSTEMVALUES_VERTICA,\n TMP_DBSYSTEMVALUES_H2,\n TMP_DBSYSTEMVALUES_COLDFUSION,\n TMP_DBSYSTEMVALUES_CASSANDRA,\n TMP_DBSYSTEMVALUES_HBASE,\n TMP_DBSYSTEMVALUES_MONGODB,\n TMP_DBSYSTEMVALUES_REDIS,\n TMP_DBSYSTEMVALUES_COUCHBASE,\n TMP_DBSYSTEMVALUES_COUCHDB,\n TMP_DBSYSTEMVALUES_COSMOSDB,\n TMP_DBSYSTEMVALUES_DYNAMODB,\n TMP_DBSYSTEMVALUES_NEO4J,\n TMP_DBSYSTEMVALUES_GEODE,\n TMP_DBSYSTEMVALUES_ELASTICSEARCH,\n TMP_DBSYSTEMVALUES_MEMCACHED,\n TMP_DBSYSTEMVALUES_COCKROACHDB,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for DbCassandraConsistencyLevelValues enum definition\n *\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ALL = 'all';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM = 'each_quorum';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM = 'quorum';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM = 'local_quorum';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ONE = 'one';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_TWO = 'two';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_THREE = 'three';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE = 'local_one';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ANY = 'any';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL = 'serial';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL = 'local_serial';\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_ALL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_ALL = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ALL;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_EACH_QUORUM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_QUORUM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_LOCAL_QUORUM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_ONE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_ONE = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ONE;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_TWO in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_TWO = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_TWO;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_THREE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_THREE = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_THREE;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_LOCAL_ONE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_ANY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_ANY = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ANY;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_SERIAL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_LOCAL_SERIAL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL;\n/**\n * The constant map of values for DbCassandraConsistencyLevelValues.\n * @deprecated Use the DBCASSANDRACONSISTENCYLEVELVALUES_XXXXX constants rather than the DbCassandraConsistencyLevelValues.XXXXX for bundle minification.\n */\nexports.DbCassandraConsistencyLevelValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ALL,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ONE,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_TWO,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_THREE,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ANY,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for FaasTriggerValues enum definition\n *\n * Type of the trigger on which the function is executed.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_FAASTRIGGERVALUES_DATASOURCE = 'datasource';\nconst TMP_FAASTRIGGERVALUES_HTTP = 'http';\nconst TMP_FAASTRIGGERVALUES_PUBSUB = 'pubsub';\nconst TMP_FAASTRIGGERVALUES_TIMER = 'timer';\nconst TMP_FAASTRIGGERVALUES_OTHER = 'other';\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use FAAS_TRIGGER_VALUE_DATASOURCE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASTRIGGERVALUES_DATASOURCE = TMP_FAASTRIGGERVALUES_DATASOURCE;\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use FAAS_TRIGGER_VALUE_HTTP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASTRIGGERVALUES_HTTP = TMP_FAASTRIGGERVALUES_HTTP;\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use FAAS_TRIGGER_VALUE_PUBSUB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASTRIGGERVALUES_PUBSUB = TMP_FAASTRIGGERVALUES_PUBSUB;\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use FAAS_TRIGGER_VALUE_TIMER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASTRIGGERVALUES_TIMER = TMP_FAASTRIGGERVALUES_TIMER;\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use FAAS_TRIGGER_VALUE_OTHER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASTRIGGERVALUES_OTHER = TMP_FAASTRIGGERVALUES_OTHER;\n/**\n * The constant map of values for FaasTriggerValues.\n * @deprecated Use the FAASTRIGGERVALUES_XXXXX constants rather than the FaasTriggerValues.XXXXX for bundle minification.\n */\nexports.FaasTriggerValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_FAASTRIGGERVALUES_DATASOURCE,\n TMP_FAASTRIGGERVALUES_HTTP,\n TMP_FAASTRIGGERVALUES_PUBSUB,\n TMP_FAASTRIGGERVALUES_TIMER,\n TMP_FAASTRIGGERVALUES_OTHER,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for FaasDocumentOperationValues enum definition\n *\n * Describes the type of the operation that was performed on the data.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_FAASDOCUMENTOPERATIONVALUES_INSERT = 'insert';\nconst TMP_FAASDOCUMENTOPERATIONVALUES_EDIT = 'edit';\nconst TMP_FAASDOCUMENTOPERATIONVALUES_DELETE = 'delete';\n/**\n * Describes the type of the operation that was performed on the data.\n *\n * @deprecated Use FAAS_DOCUMENT_OPERATION_VALUE_INSERT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASDOCUMENTOPERATIONVALUES_INSERT = TMP_FAASDOCUMENTOPERATIONVALUES_INSERT;\n/**\n * Describes the type of the operation that was performed on the data.\n *\n * @deprecated Use FAAS_DOCUMENT_OPERATION_VALUE_EDIT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASDOCUMENTOPERATIONVALUES_EDIT = TMP_FAASDOCUMENTOPERATIONVALUES_EDIT;\n/**\n * Describes the type of the operation that was performed on the data.\n *\n * @deprecated Use FAAS_DOCUMENT_OPERATION_VALUE_DELETE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASDOCUMENTOPERATIONVALUES_DELETE = TMP_FAASDOCUMENTOPERATIONVALUES_DELETE;\n/**\n * The constant map of values for FaasDocumentOperationValues.\n * @deprecated Use the FAASDOCUMENTOPERATIONVALUES_XXXXX constants rather than the FaasDocumentOperationValues.XXXXX for bundle minification.\n */\nexports.FaasDocumentOperationValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_FAASDOCUMENTOPERATIONVALUES_INSERT,\n TMP_FAASDOCUMENTOPERATIONVALUES_EDIT,\n TMP_FAASDOCUMENTOPERATIONVALUES_DELETE,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for FaasInvokedProviderValues enum definition\n *\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD = 'alibaba_cloud';\nconst TMP_FAASINVOKEDPROVIDERVALUES_AWS = 'aws';\nconst TMP_FAASINVOKEDPROVIDERVALUES_AZURE = 'azure';\nconst TMP_FAASINVOKEDPROVIDERVALUES_GCP = 'gcp';\n/**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n *\n * @deprecated Use FAAS_INVOKED_PROVIDER_VALUE_ALIBABA_CLOUD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD = TMP_FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD;\n/**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n *\n * @deprecated Use FAAS_INVOKED_PROVIDER_VALUE_AWS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASINVOKEDPROVIDERVALUES_AWS = TMP_FAASINVOKEDPROVIDERVALUES_AWS;\n/**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n *\n * @deprecated Use FAAS_INVOKED_PROVIDER_VALUE_AZURE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASINVOKEDPROVIDERVALUES_AZURE = TMP_FAASINVOKEDPROVIDERVALUES_AZURE;\n/**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n *\n * @deprecated Use FAAS_INVOKED_PROVIDER_VALUE_GCP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASINVOKEDPROVIDERVALUES_GCP = TMP_FAASINVOKEDPROVIDERVALUES_GCP;\n/**\n * The constant map of values for FaasInvokedProviderValues.\n * @deprecated Use the FAASINVOKEDPROVIDERVALUES_XXXXX constants rather than the FaasInvokedProviderValues.XXXXX for bundle minification.\n */\nexports.FaasInvokedProviderValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD,\n TMP_FAASINVOKEDPROVIDERVALUES_AWS,\n TMP_FAASINVOKEDPROVIDERVALUES_AZURE,\n TMP_FAASINVOKEDPROVIDERVALUES_GCP,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for NetTransportValues enum definition\n *\n * Transport protocol used. See note below.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_NETTRANSPORTVALUES_IP_TCP = 'ip_tcp';\nconst TMP_NETTRANSPORTVALUES_IP_UDP = 'ip_udp';\nconst TMP_NETTRANSPORTVALUES_IP = 'ip';\nconst TMP_NETTRANSPORTVALUES_UNIX = 'unix';\nconst TMP_NETTRANSPORTVALUES_PIPE = 'pipe';\nconst TMP_NETTRANSPORTVALUES_INPROC = 'inproc';\nconst TMP_NETTRANSPORTVALUES_OTHER = 'other';\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use NET_TRANSPORT_VALUE_IP_TCP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETTRANSPORTVALUES_IP_TCP = TMP_NETTRANSPORTVALUES_IP_TCP;\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use NET_TRANSPORT_VALUE_IP_UDP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETTRANSPORTVALUES_IP_UDP = TMP_NETTRANSPORTVALUES_IP_UDP;\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Removed in v1.21.0.\n */\nexports.NETTRANSPORTVALUES_IP = TMP_NETTRANSPORTVALUES_IP;\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Removed in v1.21.0.\n */\nexports.NETTRANSPORTVALUES_UNIX = TMP_NETTRANSPORTVALUES_UNIX;\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use NET_TRANSPORT_VALUE_PIPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETTRANSPORTVALUES_PIPE = TMP_NETTRANSPORTVALUES_PIPE;\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use NET_TRANSPORT_VALUE_INPROC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETTRANSPORTVALUES_INPROC = TMP_NETTRANSPORTVALUES_INPROC;\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use NET_TRANSPORT_VALUE_OTHER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETTRANSPORTVALUES_OTHER = TMP_NETTRANSPORTVALUES_OTHER;\n/**\n * The constant map of values for NetTransportValues.\n * @deprecated Use the NETTRANSPORTVALUES_XXXXX constants rather than the NetTransportValues.XXXXX for bundle minification.\n */\nexports.NetTransportValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_NETTRANSPORTVALUES_IP_TCP,\n TMP_NETTRANSPORTVALUES_IP_UDP,\n TMP_NETTRANSPORTVALUES_IP,\n TMP_NETTRANSPORTVALUES_UNIX,\n TMP_NETTRANSPORTVALUES_PIPE,\n TMP_NETTRANSPORTVALUES_INPROC,\n TMP_NETTRANSPORTVALUES_OTHER,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for NetHostConnectionTypeValues enum definition\n *\n * The internet connection type currently being used by the host.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_NETHOSTCONNECTIONTYPEVALUES_WIFI = 'wifi';\nconst TMP_NETHOSTCONNECTIONTYPEVALUES_WIRED = 'wired';\nconst TMP_NETHOSTCONNECTIONTYPEVALUES_CELL = 'cell';\nconst TMP_NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE = 'unavailable';\nconst TMP_NETHOSTCONNECTIONTYPEVALUES_UNKNOWN = 'unknown';\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use NETWORK_CONNECTION_TYPE_VALUE_WIFI in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONTYPEVALUES_WIFI = TMP_NETHOSTCONNECTIONTYPEVALUES_WIFI;\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use NETWORK_CONNECTION_TYPE_VALUE_WIRED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONTYPEVALUES_WIRED = TMP_NETHOSTCONNECTIONTYPEVALUES_WIRED;\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use NETWORK_CONNECTION_TYPE_VALUE_CELL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONTYPEVALUES_CELL = TMP_NETHOSTCONNECTIONTYPEVALUES_CELL;\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use NETWORK_CONNECTION_TYPE_VALUE_UNAVAILABLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE = TMP_NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE;\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use NETWORK_CONNECTION_TYPE_VALUE_UNKNOWN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONTYPEVALUES_UNKNOWN = TMP_NETHOSTCONNECTIONTYPEVALUES_UNKNOWN;\n/**\n * The constant map of values for NetHostConnectionTypeValues.\n * @deprecated Use the NETHOSTCONNECTIONTYPEVALUES_XXXXX constants rather than the NetHostConnectionTypeValues.XXXXX for bundle minification.\n */\nexports.NetHostConnectionTypeValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_NETHOSTCONNECTIONTYPEVALUES_WIFI,\n TMP_NETHOSTCONNECTIONTYPEVALUES_WIRED,\n TMP_NETHOSTCONNECTIONTYPEVALUES_CELL,\n TMP_NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE,\n TMP_NETHOSTCONNECTIONTYPEVALUES_UNKNOWN,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for NetHostConnectionSubtypeValues enum definition\n *\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GPRS = 'gprs';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EDGE = 'edge';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_UMTS = 'umts';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA = 'cdma';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0 = 'evdo_0';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A = 'evdo_a';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT = 'cdma2000_1xrtt';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA = 'hsdpa';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA = 'hsupa';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPA = 'hspa';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IDEN = 'iden';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B = 'evdo_b';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE = 'lte';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD = 'ehrpd';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP = 'hspap';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GSM = 'gsm';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA = 'td_scdma';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN = 'iwlan';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NR = 'nr';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA = 'nrnsa';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA = 'lte_ca';\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_GPRS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_GPRS = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GPRS;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_EDGE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_EDGE = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EDGE;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_UMTS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_UMTS = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_UMTS;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_CDMA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_EVDO_0 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0 = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_EVDO_A in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_CDMA2000_1XRTT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_HSDPA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_HSUPA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_HSPA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_HSPA = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPA;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_IDEN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_IDEN = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IDEN;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_EVDO_B in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_LTE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_LTE = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_EHRPD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_HSPAP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_GSM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_GSM = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GSM;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_TD_SCDMA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_IWLAN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_NR in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_NR = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NR;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_NRNSA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_LTE_CA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA;\n/**\n * The constant map of values for NetHostConnectionSubtypeValues.\n * @deprecated Use the NETHOSTCONNECTIONSUBTYPEVALUES_XXXXX constants rather than the NetHostConnectionSubtypeValues.XXXXX for bundle minification.\n */\nexports.NetHostConnectionSubtypeValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GPRS,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EDGE,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_UMTS,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IDEN,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GSM,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NR,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for HttpFlavorValues enum definition\n *\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_HTTPFLAVORVALUES_HTTP_1_0 = '1.0';\nconst TMP_HTTPFLAVORVALUES_HTTP_1_1 = '1.1';\nconst TMP_HTTPFLAVORVALUES_HTTP_2_0 = '2.0';\nconst TMP_HTTPFLAVORVALUES_SPDY = 'SPDY';\nconst TMP_HTTPFLAVORVALUES_QUIC = 'QUIC';\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use HTTP_FLAVOR_VALUE_HTTP_1_0 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.HTTPFLAVORVALUES_HTTP_1_0 = TMP_HTTPFLAVORVALUES_HTTP_1_0;\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use HTTP_FLAVOR_VALUE_HTTP_1_1 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.HTTPFLAVORVALUES_HTTP_1_1 = TMP_HTTPFLAVORVALUES_HTTP_1_1;\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use HTTP_FLAVOR_VALUE_HTTP_2_0 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.HTTPFLAVORVALUES_HTTP_2_0 = TMP_HTTPFLAVORVALUES_HTTP_2_0;\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use HTTP_FLAVOR_VALUE_SPDY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.HTTPFLAVORVALUES_SPDY = TMP_HTTPFLAVORVALUES_SPDY;\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use HTTP_FLAVOR_VALUE_QUIC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.HTTPFLAVORVALUES_QUIC = TMP_HTTPFLAVORVALUES_QUIC;\n/**\n * The constant map of values for HttpFlavorValues.\n * @deprecated Use the HTTPFLAVORVALUES_XXXXX constants rather than the HttpFlavorValues.XXXXX for bundle minification.\n */\nexports.HttpFlavorValues = {\n HTTP_1_0: TMP_HTTPFLAVORVALUES_HTTP_1_0,\n HTTP_1_1: TMP_HTTPFLAVORVALUES_HTTP_1_1,\n HTTP_2_0: TMP_HTTPFLAVORVALUES_HTTP_2_0,\n SPDY: TMP_HTTPFLAVORVALUES_SPDY,\n QUIC: TMP_HTTPFLAVORVALUES_QUIC,\n};\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for MessagingDestinationKindValues enum definition\n *\n * The kind of message destination.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_MESSAGINGDESTINATIONKINDVALUES_QUEUE = 'queue';\nconst TMP_MESSAGINGDESTINATIONKINDVALUES_TOPIC = 'topic';\n/**\n * The kind of message destination.\n *\n * @deprecated Removed in semconv v1.20.0.\n */\nexports.MESSAGINGDESTINATIONKINDVALUES_QUEUE = TMP_MESSAGINGDESTINATIONKINDVALUES_QUEUE;\n/**\n * The kind of message destination.\n *\n * @deprecated Removed in semconv v1.20.0.\n */\nexports.MESSAGINGDESTINATIONKINDVALUES_TOPIC = TMP_MESSAGINGDESTINATIONKINDVALUES_TOPIC;\n/**\n * The constant map of values for MessagingDestinationKindValues.\n * @deprecated Use the MESSAGINGDESTINATIONKINDVALUES_XXXXX constants rather than the MessagingDestinationKindValues.XXXXX for bundle minification.\n */\nexports.MessagingDestinationKindValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_MESSAGINGDESTINATIONKINDVALUES_QUEUE,\n TMP_MESSAGINGDESTINATIONKINDVALUES_TOPIC,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for MessagingOperationValues enum definition\n *\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_MESSAGINGOPERATIONVALUES_RECEIVE = 'receive';\nconst TMP_MESSAGINGOPERATIONVALUES_PROCESS = 'process';\n/**\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n *\n * @deprecated Use MESSAGING_OPERATION_TYPE_VALUE_RECEIVE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.MESSAGINGOPERATIONVALUES_RECEIVE = TMP_MESSAGINGOPERATIONVALUES_RECEIVE;\n/**\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n *\n * @deprecated Use MESSAGING_OPERATION_TYPE_VALUE_PROCESS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.MESSAGINGOPERATIONVALUES_PROCESS = TMP_MESSAGINGOPERATIONVALUES_PROCESS;\n/**\n * The constant map of values for MessagingOperationValues.\n * @deprecated Use the MESSAGINGOPERATIONVALUES_XXXXX constants rather than the MessagingOperationValues.XXXXX for bundle minification.\n */\nexports.MessagingOperationValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_MESSAGINGOPERATIONVALUES_RECEIVE,\n TMP_MESSAGINGOPERATIONVALUES_PROCESS,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for RpcGrpcStatusCodeValues enum definition\n *\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_RPCGRPCSTATUSCODEVALUES_OK = 0;\nconst TMP_RPCGRPCSTATUSCODEVALUES_CANCELLED = 1;\nconst TMP_RPCGRPCSTATUSCODEVALUES_UNKNOWN = 2;\nconst TMP_RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT = 3;\nconst TMP_RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED = 4;\nconst TMP_RPCGRPCSTATUSCODEVALUES_NOT_FOUND = 5;\nconst TMP_RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS = 6;\nconst TMP_RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED = 7;\nconst TMP_RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED = 8;\nconst TMP_RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION = 9;\nconst TMP_RPCGRPCSTATUSCODEVALUES_ABORTED = 10;\nconst TMP_RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE = 11;\nconst TMP_RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED = 12;\nconst TMP_RPCGRPCSTATUSCODEVALUES_INTERNAL = 13;\nconst TMP_RPCGRPCSTATUSCODEVALUES_UNAVAILABLE = 14;\nconst TMP_RPCGRPCSTATUSCODEVALUES_DATA_LOSS = 15;\nconst TMP_RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED = 16;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_OK in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_OK = TMP_RPCGRPCSTATUSCODEVALUES_OK;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_CANCELLED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_CANCELLED = TMP_RPCGRPCSTATUSCODEVALUES_CANCELLED;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_UNKNOWN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_UNKNOWN = TMP_RPCGRPCSTATUSCODEVALUES_UNKNOWN;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_INVALID_ARGUMENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT = TMP_RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_DEADLINE_EXCEEDED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED = TMP_RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_NOT_FOUND in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_NOT_FOUND = TMP_RPCGRPCSTATUSCODEVALUES_NOT_FOUND;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_ALREADY_EXISTS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS = TMP_RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_PERMISSION_DENIED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED = TMP_RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_RESOURCE_EXHAUSTED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED = TMP_RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_FAILED_PRECONDITION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION = TMP_RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_ABORTED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_ABORTED = TMP_RPCGRPCSTATUSCODEVALUES_ABORTED;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_OUT_OF_RANGE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE = TMP_RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_UNIMPLEMENTED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED = TMP_RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_INTERNAL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_INTERNAL = TMP_RPCGRPCSTATUSCODEVALUES_INTERNAL;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_UNAVAILABLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_UNAVAILABLE = TMP_RPCGRPCSTATUSCODEVALUES_UNAVAILABLE;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_DATA_LOSS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_DATA_LOSS = TMP_RPCGRPCSTATUSCODEVALUES_DATA_LOSS;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_UNAUTHENTICATED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED = TMP_RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED;\n/**\n * The constant map of values for RpcGrpcStatusCodeValues.\n * @deprecated Use the RPCGRPCSTATUSCODEVALUES_XXXXX constants rather than the RpcGrpcStatusCodeValues.XXXXX for bundle minification.\n */\nexports.RpcGrpcStatusCodeValues = {\n OK: TMP_RPCGRPCSTATUSCODEVALUES_OK,\n CANCELLED: TMP_RPCGRPCSTATUSCODEVALUES_CANCELLED,\n UNKNOWN: TMP_RPCGRPCSTATUSCODEVALUES_UNKNOWN,\n INVALID_ARGUMENT: TMP_RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT,\n DEADLINE_EXCEEDED: TMP_RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED,\n NOT_FOUND: TMP_RPCGRPCSTATUSCODEVALUES_NOT_FOUND,\n ALREADY_EXISTS: TMP_RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS,\n PERMISSION_DENIED: TMP_RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED,\n RESOURCE_EXHAUSTED: TMP_RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED,\n FAILED_PRECONDITION: TMP_RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION,\n ABORTED: TMP_RPCGRPCSTATUSCODEVALUES_ABORTED,\n OUT_OF_RANGE: TMP_RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE,\n UNIMPLEMENTED: TMP_RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED,\n INTERNAL: TMP_RPCGRPCSTATUSCODEVALUES_INTERNAL,\n UNAVAILABLE: TMP_RPCGRPCSTATUSCODEVALUES_UNAVAILABLE,\n DATA_LOSS: TMP_RPCGRPCSTATUSCODEVALUES_DATA_LOSS,\n UNAUTHENTICATED: TMP_RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED,\n};\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for MessageTypeValues enum definition\n *\n * Whether this is a received or sent message.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_MESSAGETYPEVALUES_SENT = 'SENT';\nconst TMP_MESSAGETYPEVALUES_RECEIVED = 'RECEIVED';\n/**\n * Whether this is a received or sent message.\n *\n * @deprecated Use MESSAGE_TYPE_VALUE_SENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.MESSAGETYPEVALUES_SENT = TMP_MESSAGETYPEVALUES_SENT;\n/**\n * Whether this is a received or sent message.\n *\n * @deprecated Use MESSAGE_TYPE_VALUE_RECEIVED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.MESSAGETYPEVALUES_RECEIVED = TMP_MESSAGETYPEVALUES_RECEIVED;\n/**\n * The constant map of values for MessageTypeValues.\n * @deprecated Use the MESSAGETYPEVALUES_XXXXX constants rather than the MessageTypeValues.XXXXX for bundle minification.\n */\nexports.MessageTypeValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_MESSAGETYPEVALUES_SENT,\n TMP_MESSAGETYPEVALUES_RECEIVED,\n]);\n//# sourceMappingURL=SemanticAttributes.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* eslint-disable no-restricted-syntax --\n * These re-exports are only of constants, only one-level deep at this point,\n * and should not cause problems for tree-shakers.\n */\n__exportStar(require(\"./SemanticAttributes\"), exports);\n//# sourceMappingURL=index.js.map", @@ -182,7 +183,6 @@ "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.diagLogLevelFromString = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst logLevelMap = {\n ALL: api_1.DiagLogLevel.ALL,\n VERBOSE: api_1.DiagLogLevel.VERBOSE,\n DEBUG: api_1.DiagLogLevel.DEBUG,\n INFO: api_1.DiagLogLevel.INFO,\n WARN: api_1.DiagLogLevel.WARN,\n ERROR: api_1.DiagLogLevel.ERROR,\n NONE: api_1.DiagLogLevel.NONE,\n};\n/**\n * Convert a string to a {@link DiagLogLevel}, defaults to {@link DiagLogLevel} if the log level does not exist or undefined if the input is undefined.\n * @param value\n */\nfunction diagLogLevelFromString(value) {\n if (value == null) {\n // don't fall back to default - no value set has different semantics for ús than an incorrect value (do not set vs. fall back to default)\n return undefined;\n }\n const resolvedLogLevel = logLevelMap[value.toUpperCase()];\n if (resolvedLogLevel == null) {\n api_1.diag.warn(`Unknown log level \"${value}\", expected one of ${Object.keys(logLevelMap)}, using default`);\n return api_1.DiagLogLevel.INFO;\n }\n return resolvedLogLevel;\n}\nexports.diagLogLevelFromString = diagLogLevelFromString;\n//# sourceMappingURL=configuration.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._export = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst suppress_tracing_1 = require(\"../trace/suppress-tracing\");\n/**\n * @internal\n * Shared functionality used by Exporters while exporting data, including suppression of Traces.\n */\nfunction _export(exporter, arg) {\n return new Promise(resolve => {\n // prevent downstream exporter calls from generating spans\n api_1.context.with((0, suppress_tracing_1.suppressTracing)(api_1.context.active()), () => {\n exporter.export(arg, resolve);\n });\n });\n}\nexports._export = _export;\n//# sourceMappingURL=exporter.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.internal = exports.diagLogLevelFromString = exports.BindOnceFuture = exports.urlMatches = exports.isUrlIgnored = exports.callWithTimeout = exports.TimeoutError = exports.merge = exports.TraceState = exports.unsuppressTracing = exports.suppressTracing = exports.isTracingSuppressed = exports.setRPCMetadata = exports.getRPCMetadata = exports.deleteRPCMetadata = exports.RPCType = exports.parseTraceParent = exports.W3CTraceContextPropagator = exports.TRACE_STATE_HEADER = exports.TRACE_PARENT_HEADER = exports.CompositePropagator = exports.otperformance = exports.getStringListFromEnv = exports.getNumberFromEnv = exports.getBooleanFromEnv = exports.getStringFromEnv = exports._globalThis = exports.SDK_INFO = exports.parseKeyPairsIntoRecord = exports.ExportResultCode = exports.unrefTimer = exports.timeInputToHrTime = exports.millisToHrTime = exports.isTimeInputHrTime = exports.isTimeInput = exports.hrTimeToTimeStamp = exports.hrTimeToNanoseconds = exports.hrTimeToMilliseconds = exports.hrTimeToMicroseconds = exports.hrTimeDuration = exports.hrTime = exports.getTimeOrigin = exports.addHrTimes = exports.loggingErrorHandler = exports.setGlobalErrorHandler = exports.globalErrorHandler = exports.sanitizeAttributes = exports.isAttributeValue = exports.AnchoredClock = exports.W3CBaggagePropagator = void 0;\nvar W3CBaggagePropagator_1 = require(\"./baggage/propagation/W3CBaggagePropagator\");\nObject.defineProperty(exports, \"W3CBaggagePropagator\", { enumerable: true, get: function () { return W3CBaggagePropagator_1.W3CBaggagePropagator; } });\nvar anchored_clock_1 = require(\"./common/anchored-clock\");\nObject.defineProperty(exports, \"AnchoredClock\", { enumerable: true, get: function () { return anchored_clock_1.AnchoredClock; } });\nvar attributes_1 = require(\"./common/attributes\");\nObject.defineProperty(exports, \"isAttributeValue\", { enumerable: true, get: function () { return attributes_1.isAttributeValue; } });\nObject.defineProperty(exports, \"sanitizeAttributes\", { enumerable: true, get: function () { return attributes_1.sanitizeAttributes; } });\nvar global_error_handler_1 = require(\"./common/global-error-handler\");\nObject.defineProperty(exports, \"globalErrorHandler\", { enumerable: true, get: function () { return global_error_handler_1.globalErrorHandler; } });\nObject.defineProperty(exports, \"setGlobalErrorHandler\", { enumerable: true, get: function () { return global_error_handler_1.setGlobalErrorHandler; } });\nvar logging_error_handler_1 = require(\"./common/logging-error-handler\");\nObject.defineProperty(exports, \"loggingErrorHandler\", { enumerable: true, get: function () { return logging_error_handler_1.loggingErrorHandler; } });\nvar time_1 = require(\"./common/time\");\nObject.defineProperty(exports, \"addHrTimes\", { enumerable: true, get: function () { return time_1.addHrTimes; } });\nObject.defineProperty(exports, \"getTimeOrigin\", { enumerable: true, get: function () { return time_1.getTimeOrigin; } });\nObject.defineProperty(exports, \"hrTime\", { enumerable: true, get: function () { return time_1.hrTime; } });\nObject.defineProperty(exports, \"hrTimeDuration\", { enumerable: true, get: function () { return time_1.hrTimeDuration; } });\nObject.defineProperty(exports, \"hrTimeToMicroseconds\", { enumerable: true, get: function () { return time_1.hrTimeToMicroseconds; } });\nObject.defineProperty(exports, \"hrTimeToMilliseconds\", { enumerable: true, get: function () { return time_1.hrTimeToMilliseconds; } });\nObject.defineProperty(exports, \"hrTimeToNanoseconds\", { enumerable: true, get: function () { return time_1.hrTimeToNanoseconds; } });\nObject.defineProperty(exports, \"hrTimeToTimeStamp\", { enumerable: true, get: function () { return time_1.hrTimeToTimeStamp; } });\nObject.defineProperty(exports, \"isTimeInput\", { enumerable: true, get: function () { return time_1.isTimeInput; } });\nObject.defineProperty(exports, \"isTimeInputHrTime\", { enumerable: true, get: function () { return time_1.isTimeInputHrTime; } });\nObject.defineProperty(exports, \"millisToHrTime\", { enumerable: true, get: function () { return time_1.millisToHrTime; } });\nObject.defineProperty(exports, \"timeInputToHrTime\", { enumerable: true, get: function () { return time_1.timeInputToHrTime; } });\nvar timer_util_1 = require(\"./common/timer-util\");\nObject.defineProperty(exports, \"unrefTimer\", { enumerable: true, get: function () { return timer_util_1.unrefTimer; } });\nvar ExportResult_1 = require(\"./ExportResult\");\nObject.defineProperty(exports, \"ExportResultCode\", { enumerable: true, get: function () { return ExportResult_1.ExportResultCode; } });\nvar utils_1 = require(\"./baggage/utils\");\nObject.defineProperty(exports, \"parseKeyPairsIntoRecord\", { enumerable: true, get: function () { return utils_1.parseKeyPairsIntoRecord; } });\nvar platform_1 = require(\"./platform\");\nObject.defineProperty(exports, \"SDK_INFO\", { enumerable: true, get: function () { return platform_1.SDK_INFO; } });\nObject.defineProperty(exports, \"_globalThis\", { enumerable: true, get: function () { return platform_1._globalThis; } });\nObject.defineProperty(exports, \"getStringFromEnv\", { enumerable: true, get: function () { return platform_1.getStringFromEnv; } });\nObject.defineProperty(exports, \"getBooleanFromEnv\", { enumerable: true, get: function () { return platform_1.getBooleanFromEnv; } });\nObject.defineProperty(exports, \"getNumberFromEnv\", { enumerable: true, get: function () { return platform_1.getNumberFromEnv; } });\nObject.defineProperty(exports, \"getStringListFromEnv\", { enumerable: true, get: function () { return platform_1.getStringListFromEnv; } });\nObject.defineProperty(exports, \"otperformance\", { enumerable: true, get: function () { return platform_1.otperformance; } });\nvar composite_1 = require(\"./propagation/composite\");\nObject.defineProperty(exports, \"CompositePropagator\", { enumerable: true, get: function () { return composite_1.CompositePropagator; } });\nvar W3CTraceContextPropagator_1 = require(\"./trace/W3CTraceContextPropagator\");\nObject.defineProperty(exports, \"TRACE_PARENT_HEADER\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.TRACE_PARENT_HEADER; } });\nObject.defineProperty(exports, \"TRACE_STATE_HEADER\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.TRACE_STATE_HEADER; } });\nObject.defineProperty(exports, \"W3CTraceContextPropagator\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.W3CTraceContextPropagator; } });\nObject.defineProperty(exports, \"parseTraceParent\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.parseTraceParent; } });\nvar rpc_metadata_1 = require(\"./trace/rpc-metadata\");\nObject.defineProperty(exports, \"RPCType\", { enumerable: true, get: function () { return rpc_metadata_1.RPCType; } });\nObject.defineProperty(exports, \"deleteRPCMetadata\", { enumerable: true, get: function () { return rpc_metadata_1.deleteRPCMetadata; } });\nObject.defineProperty(exports, \"getRPCMetadata\", { enumerable: true, get: function () { return rpc_metadata_1.getRPCMetadata; } });\nObject.defineProperty(exports, \"setRPCMetadata\", { enumerable: true, get: function () { return rpc_metadata_1.setRPCMetadata; } });\nvar suppress_tracing_1 = require(\"./trace/suppress-tracing\");\nObject.defineProperty(exports, \"isTracingSuppressed\", { enumerable: true, get: function () { return suppress_tracing_1.isTracingSuppressed; } });\nObject.defineProperty(exports, \"suppressTracing\", { enumerable: true, get: function () { return suppress_tracing_1.suppressTracing; } });\nObject.defineProperty(exports, \"unsuppressTracing\", { enumerable: true, get: function () { return suppress_tracing_1.unsuppressTracing; } });\nvar TraceState_1 = require(\"./trace/TraceState\");\nObject.defineProperty(exports, \"TraceState\", { enumerable: true, get: function () { return TraceState_1.TraceState; } });\nvar merge_1 = require(\"./utils/merge\");\nObject.defineProperty(exports, \"merge\", { enumerable: true, get: function () { return merge_1.merge; } });\nvar timeout_1 = require(\"./utils/timeout\");\nObject.defineProperty(exports, \"TimeoutError\", { enumerable: true, get: function () { return timeout_1.TimeoutError; } });\nObject.defineProperty(exports, \"callWithTimeout\", { enumerable: true, get: function () { return timeout_1.callWithTimeout; } });\nvar url_1 = require(\"./utils/url\");\nObject.defineProperty(exports, \"isUrlIgnored\", { enumerable: true, get: function () { return url_1.isUrlIgnored; } });\nObject.defineProperty(exports, \"urlMatches\", { enumerable: true, get: function () { return url_1.urlMatches; } });\nvar callback_1 = require(\"./utils/callback\");\nObject.defineProperty(exports, \"BindOnceFuture\", { enumerable: true, get: function () { return callback_1.BindOnceFuture; } });\nvar configuration_1 = require(\"./utils/configuration\");\nObject.defineProperty(exports, \"diagLogLevelFromString\", { enumerable: true, get: function () { return configuration_1.diagLogLevelFromString; } });\nconst exporter_1 = require(\"./internal/exporter\");\nexports.internal = {\n _export: exporter_1._export,\n};\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.VERSION = '0.213.0';\n//# sourceMappingURL=version.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SeverityNumber = void 0;\nvar SeverityNumber;\n(function (SeverityNumber) {\n SeverityNumber[SeverityNumber[\"UNSPECIFIED\"] = 0] = \"UNSPECIFIED\";\n SeverityNumber[SeverityNumber[\"TRACE\"] = 1] = \"TRACE\";\n SeverityNumber[SeverityNumber[\"TRACE2\"] = 2] = \"TRACE2\";\n SeverityNumber[SeverityNumber[\"TRACE3\"] = 3] = \"TRACE3\";\n SeverityNumber[SeverityNumber[\"TRACE4\"] = 4] = \"TRACE4\";\n SeverityNumber[SeverityNumber[\"DEBUG\"] = 5] = \"DEBUG\";\n SeverityNumber[SeverityNumber[\"DEBUG2\"] = 6] = \"DEBUG2\";\n SeverityNumber[SeverityNumber[\"DEBUG3\"] = 7] = \"DEBUG3\";\n SeverityNumber[SeverityNumber[\"DEBUG4\"] = 8] = \"DEBUG4\";\n SeverityNumber[SeverityNumber[\"INFO\"] = 9] = \"INFO\";\n SeverityNumber[SeverityNumber[\"INFO2\"] = 10] = \"INFO2\";\n SeverityNumber[SeverityNumber[\"INFO3\"] = 11] = \"INFO3\";\n SeverityNumber[SeverityNumber[\"INFO4\"] = 12] = \"INFO4\";\n SeverityNumber[SeverityNumber[\"WARN\"] = 13] = \"WARN\";\n SeverityNumber[SeverityNumber[\"WARN2\"] = 14] = \"WARN2\";\n SeverityNumber[SeverityNumber[\"WARN3\"] = 15] = \"WARN3\";\n SeverityNumber[SeverityNumber[\"WARN4\"] = 16] = \"WARN4\";\n SeverityNumber[SeverityNumber[\"ERROR\"] = 17] = \"ERROR\";\n SeverityNumber[SeverityNumber[\"ERROR2\"] = 18] = \"ERROR2\";\n SeverityNumber[SeverityNumber[\"ERROR3\"] = 19] = \"ERROR3\";\n SeverityNumber[SeverityNumber[\"ERROR4\"] = 20] = \"ERROR4\";\n SeverityNumber[SeverityNumber[\"FATAL\"] = 21] = \"FATAL\";\n SeverityNumber[SeverityNumber[\"FATAL2\"] = 22] = \"FATAL2\";\n SeverityNumber[SeverityNumber[\"FATAL3\"] = 23] = \"FATAL3\";\n SeverityNumber[SeverityNumber[\"FATAL4\"] = 24] = \"FATAL4\";\n})(SeverityNumber = exports.SeverityNumber || (exports.SeverityNumber = {}));\n//# sourceMappingURL=LogRecord.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_LOGGER = exports.NoopLogger = void 0;\nclass NoopLogger {\n emit(_logRecord) { }\n}\nexports.NoopLogger = NoopLogger;\nexports.NOOP_LOGGER = new NoopLogger();\n//# sourceMappingURL=NoopLogger.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.API_BACKWARDS_COMPATIBILITY_VERSION = exports.makeGetter = exports._global = exports.GLOBAL_LOGS_API_KEY = void 0;\nexports.GLOBAL_LOGS_API_KEY = Symbol.for('io.opentelemetry.js.api.logs');\nexports._global = globalThis;\n/**\n * Make a function which accepts a version integer and returns the instance of an API if the version\n * is compatible, or a fallback version (usually NOOP) if it is not.\n *\n * @param requiredVersion Backwards compatibility version which is required to return the instance\n * @param instance Instance which should be returned if the required version is compatible\n * @param fallback Fallback instance, usually NOOP, which will be returned if the required version is not compatible\n */\nfunction makeGetter(requiredVersion, instance, fallback) {\n return (version) => version === requiredVersion ? instance : fallback;\n}\nexports.makeGetter = makeGetter;\n/**\n * A number which should be incremented each time a backwards incompatible\n * change is made to the API. This number is used when an API package\n * attempts to access the global API to ensure it is getting a compatible\n * version. If the global API is not compatible with the API package\n * attempting to get it, a NOOP API implementation will be returned.\n */\nexports.API_BACKWARDS_COMPATIBILITY_VERSION = 1;\n//# sourceMappingURL=global-utils.js.map", @@ -208,7 +208,7 @@ "// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.\n//\n// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.\n\nconst importHooks = [] // TODO should this be a Set?\nconst setters = new WeakMap()\nconst getters = new WeakMap()\nconst specifiers = new Map()\nconst toHook = []\n\nconst proxyHandler = {\n set (target, name, value) {\n const set = setters.get(target)\n const setter = set && set[name]\n if (typeof setter === 'function') {\n return setter(value)\n }\n // If a module doesn't export the property being assigned (e.g. no default\n // export), there is no setter to call. Don't crash userland code.\n return true\n },\n\n get (target, name) {\n if (name === Symbol.toStringTag) {\n return 'Module'\n }\n\n const getter = getters.get(target)[name]\n\n if (typeof getter === 'function') {\n return getter()\n }\n },\n\n defineProperty (target, property, descriptor) {\n if ((!('value' in descriptor))) {\n throw new Error('Getters/setters are not supported for exports property descriptors.')\n }\n\n const set = setters.get(target)\n const setter = set && set[property]\n if (typeof setter === 'function') {\n return setter(descriptor.value)\n }\n return true\n }\n}\n\nfunction register (name, namespace, set, get, specifier) {\n specifiers.set(name, specifier)\n setters.set(namespace, set)\n getters.set(namespace, get)\n const proxy = new Proxy(namespace, proxyHandler)\n importHooks.forEach(hook => hook(name, proxy, specifier))\n toHook.push([name, proxy, specifier])\n}\n\nexports.register = register\nexports.importHooks = importHooks\nexports.specifiers = specifiers\nexports.toHook = toHook\n", "// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.\n//\n// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.\n\nconst path = require('path')\nconst moduleDetailsFromPath = require('module-details-from-path')\nconst { fileURLToPath } = require('url')\nconst { MessageChannel } = require('worker_threads')\n\nlet { isBuiltin } = require('module')\nif (!isBuiltin) {\n isBuiltin = () => true\n}\n\nconst {\n importHooks,\n specifiers,\n toHook\n} = require('./lib/register')\n\nfunction addHook (hook) {\n importHooks.push(hook)\n toHook.forEach(([name, namespace, specifier]) => hook(name, namespace, specifier))\n}\n\nfunction removeHook (hook) {\n const index = importHooks.indexOf(hook)\n if (index > -1) {\n importHooks.splice(index, 1)\n }\n}\n\nfunction callHookFn (hookFn, namespace, name, baseDir) {\n const newDefault = hookFn(namespace, name, baseDir)\n if (newDefault && newDefault !== namespace) {\n // Only ESM modules that actually export `default` can have it reassigned.\n // Some hooks return a value unconditionally; avoid crashing when the module\n // has no default export (see issue #188).\n if ('default' in namespace) {\n namespace.default = newDefault\n }\n }\n}\n\nlet sendModulesToLoader\n\n/**\n * EXPERIMENTAL\n * This feature is experimental and may change in minor versions.\n * **NOTE** This feature is incompatible with the {internals: true} Hook option.\n *\n * Creates a message channel with a port that can be used to add hooks to the\n * list of exclusively included modules.\n *\n * This can be used to only wrap modules that are Hook'ed, however modules need\n * to be hooked before they are imported.\n *\n * ```ts\n * import { register } from 'module'\n * import { Hook, createAddHookMessageChannel } from 'import-in-the-middle'\n *\n * const { registerOptions, waitForAllMessagesAcknowledged } = createAddHookMessageChannel()\n *\n * register('import-in-the-middle/hook.mjs', import.meta.url, registerOptions)\n *\n * Hook(['fs'], (exported, name, baseDir) => {\n * // Instrument the fs module\n * })\n *\n * // Ensure that the loader has acknowledged all the modules\n * // before we allow execution to continue\n * await waitForAllMessagesAcknowledged()\n * ```\n */\nfunction createAddHookMessageChannel () {\n const { port1, port2 } = new MessageChannel()\n let pendingAckCount = 0\n let resolveFn\n\n sendModulesToLoader = (modules) => {\n pendingAckCount++\n port1.postMessage(modules)\n }\n\n port1.on('message', () => {\n pendingAckCount--\n\n if (resolveFn && pendingAckCount <= 0) {\n resolveFn()\n }\n }).unref()\n\n function waitForAllMessagesAcknowledged () {\n // This timer is to prevent the process from exiting with code 13:\n // 13: Unsettled Top-Level Await.\n const timer = setInterval(() => { }, 1000)\n const promise = new Promise((resolve) => {\n resolveFn = resolve\n }).then(() => { clearInterval(timer) })\n\n if (pendingAckCount === 0) {\n resolveFn()\n }\n\n return promise\n }\n\n const addHookMessagePort = port2\n const registerOptions = { data: { addHookMessagePort, include: [] }, transferList: [addHookMessagePort] }\n\n return { registerOptions, addHookMessagePort, waitForAllMessagesAcknowledged }\n}\n\nfunction Hook (modules, options, hookFn) {\n if ((this instanceof Hook) === false) return new Hook(modules, options, hookFn)\n if (typeof modules === 'function') {\n hookFn = modules\n modules = null\n options = null\n } else if (typeof options === 'function') {\n hookFn = options\n options = null\n }\n const internals = options ? options.internals === true : false\n\n if (sendModulesToLoader && Array.isArray(modules)) {\n sendModulesToLoader(modules)\n }\n\n this._iitmHook = (name, namespace, specifier) => {\n const loadUrl = name\n const isNodeUrl = loadUrl.startsWith('node:')\n let filePath, baseDir\n\n if (isNodeUrl) {\n // Normalize builtin module name to *not* have 'node:' prefix, unless\n // required, as it is for 'node:test' and some others. `module.isBuiltin`\n // is available in all Node.js versions that have node:-only modules.\n const unprefixed = name.slice(5)\n if (isBuiltin(unprefixed)) {\n name = unprefixed\n }\n } else if (loadUrl.startsWith('file://')) {\n const stackTraceLimit = Error.stackTraceLimit\n Error.stackTraceLimit = 0\n try {\n filePath = fileURLToPath(name)\n name = filePath\n } catch (e) {}\n Error.stackTraceLimit = stackTraceLimit\n\n if (filePath) {\n const details = moduleDetailsFromPath(filePath)\n if (details) {\n name = details.name\n baseDir = details.basedir\n }\n }\n }\n\n if (modules) {\n for (const matchArg of modules) {\n if (filePath && matchArg === filePath) {\n // abspath match\n callHookFn(hookFn, namespace, filePath, undefined)\n } else if (matchArg === name) {\n if (!baseDir) {\n // built-in module (or unexpected non file:// name?)\n callHookFn(hookFn, namespace, name, baseDir)\n } else if (baseDir.endsWith(specifiers.get(loadUrl))) {\n // An import of the top-level module (e.g. `import 'ioredis'`).\n // Note: Slight behaviour difference from RITM. RITM uses\n // `require.resolve(name)` to see if filename is the module\n // main file, which will catch `require('ioredis/built/index.js')`.\n // The check here will not catch `import 'ioredis/built/index.js'`.\n callHookFn(hookFn, namespace, name, baseDir)\n } else if (internals) {\n const internalPath = name + path.sep + path.relative(baseDir, filePath)\n callHookFn(hookFn, namespace, internalPath, baseDir)\n }\n } else if (matchArg === specifier) {\n callHookFn(hookFn, namespace, specifier, baseDir)\n }\n }\n } else {\n callHookFn(hookFn, namespace, name, baseDir)\n }\n }\n\n addHook(this._iitmHook)\n}\n\nHook.prototype.unhook = function () {\n removeHook(this._iitmHook)\n}\n\nmodule.exports = Hook\nmodule.exports.Hook = Hook\nmodule.exports.addHook = addHook\nmodule.exports.removeHook = removeHook\nmodule.exports.createAddHookMessageChannel = createAddHookMessageChannel\n", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isWrapped = exports.safeExecuteInTheMiddleAsync = exports.safeExecuteInTheMiddle = void 0;\n/**\n * function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nfunction safeExecuteInTheMiddle(execute, onFinish, preventThrowingError) {\n let error;\n let result;\n try {\n result = execute();\n }\n catch (e) {\n error = e;\n }\n finally {\n onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return result;\n }\n}\nexports.safeExecuteInTheMiddle = safeExecuteInTheMiddle;\n/**\n * Async function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nasync function safeExecuteInTheMiddleAsync(execute, onFinish, preventThrowingError) {\n let error;\n let result;\n try {\n result = await execute();\n }\n catch (e) {\n error = e;\n }\n finally {\n await onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return result;\n }\n}\nexports.safeExecuteInTheMiddleAsync = safeExecuteInTheMiddleAsync;\n/**\n * Checks if certain function has been already wrapped\n * @param func\n */\nfunction isWrapped(func) {\n return (typeof func === 'function' &&\n typeof func.__original === 'function' &&\n typeof func.__unwrap === 'function' &&\n func.__wrapped === true);\n}\nexports.isWrapped = isWrapped;\n//# sourceMappingURL=utils.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationBase = void 0;\nconst path = require(\"path\");\nconst util_1 = require(\"util\");\nconst semver_1 = require(\"../../semver\");\nconst shimmer_1 = require(\"../../shimmer\");\nconst instrumentation_1 = require(\"../../instrumentation\");\nconst RequireInTheMiddleSingleton_1 = require(\"./RequireInTheMiddleSingleton\");\nconst import_in_the_middle_1 = require(\"import-in-the-middle\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst require_in_the_middle_1 = require(\"require-in-the-middle\");\nconst fs_1 = require(\"fs\");\nconst utils_1 = require(\"../../utils\");\n/**\n * Base abstract class for instrumenting node plugins\n */\nclass InstrumentationBase extends instrumentation_1.InstrumentationAbstract {\n _modules;\n _hooks = [];\n _requireInTheMiddleSingleton = RequireInTheMiddleSingleton_1.RequireInTheMiddleSingleton.getInstance();\n _enabled = false;\n constructor(instrumentationName, instrumentationVersion, config) {\n super(instrumentationName, instrumentationVersion, config);\n let modules = this.init();\n if (modules && !Array.isArray(modules)) {\n modules = [modules];\n }\n this._modules = modules || [];\n if (this._config.enabled) {\n this.enable();\n }\n }\n _wrap = (moduleExports, name, wrapper) => {\n if ((0, utils_1.isWrapped)(moduleExports[name])) {\n this._unwrap(moduleExports, name);\n }\n if (!util_1.types.isProxy(moduleExports)) {\n return (0, shimmer_1.wrap)(moduleExports, name, wrapper);\n }\n else {\n const wrapped = (0, shimmer_1.wrap)(Object.assign({}, moduleExports), name, wrapper);\n Object.defineProperty(moduleExports, name, {\n value: wrapped,\n });\n return wrapped;\n }\n };\n _unwrap = (moduleExports, name) => {\n if (!util_1.types.isProxy(moduleExports)) {\n return (0, shimmer_1.unwrap)(moduleExports, name);\n }\n else {\n return Object.defineProperty(moduleExports, name, {\n value: moduleExports[name],\n });\n }\n };\n _massWrap = (moduleExportsArray, names, wrapper) => {\n if (!moduleExportsArray) {\n api_1.diag.error('must provide one or more modules to patch');\n return;\n }\n else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n if (!(names && Array.isArray(names))) {\n api_1.diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._wrap(moduleExports, name, wrapper);\n });\n });\n };\n _massUnwrap = (moduleExportsArray, names) => {\n if (!moduleExportsArray) {\n api_1.diag.error('must provide one or more modules to patch');\n return;\n }\n else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n if (!(names && Array.isArray(names))) {\n api_1.diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._unwrap(moduleExports, name);\n });\n });\n };\n _warnOnPreloadedModules() {\n this._modules.forEach((module) => {\n const { name } = module;\n try {\n const resolvedModule = require.resolve(name);\n if (require.cache[resolvedModule]) {\n // Module is already cached, which means the instrumentation hook might not work\n this._diag.warn(`Module ${name} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${name}`);\n }\n }\n catch {\n // Module isn't available, we can simply skip\n }\n });\n }\n _extractPackageVersion(baseDir) {\n try {\n const json = (0, fs_1.readFileSync)(path.join(baseDir, 'package.json'), {\n encoding: 'utf8',\n });\n const version = JSON.parse(json).version;\n return typeof version === 'string' ? version : undefined;\n }\n catch {\n api_1.diag.warn('Failed extracting version', baseDir);\n }\n return undefined;\n }\n _onRequire(module, exports, name, baseDir) {\n if (!baseDir) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for nodejs core module on require hook', {\n module: module.name,\n });\n return module.patch(exports);\n }\n }\n return exports;\n }\n const version = this._extractPackageVersion(baseDir);\n module.moduleVersion = version;\n if (module.name === name) {\n // main module\n if (isSupported(module.supportedVersions, version, module.includePrerelease)) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for module on require hook', {\n module: module.name,\n version: module.moduleVersion,\n baseDir,\n });\n return module.patch(exports, module.moduleVersion);\n }\n }\n }\n return exports;\n }\n // internal file\n const files = module.files ?? [];\n const normalizedName = path.normalize(name);\n const supportedFileInstrumentations = files.filter(f => f.name === normalizedName &&\n isSupported(f.supportedVersions, version, module.includePrerelease));\n return supportedFileInstrumentations.reduce((patchedExports, file) => {\n file.moduleExports = patchedExports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for nodejs module file on require hook', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n baseDir,\n });\n // patch signature is not typed, so we cast it assuming it's correct\n return file.patch(patchedExports, module.moduleVersion);\n }\n return patchedExports;\n }, exports);\n }\n enable() {\n if (this._enabled) {\n return;\n }\n this._enabled = true;\n // already hooked, just call patch again\n if (this._hooks.length > 0) {\n for (const module of this._modules) {\n if (typeof module.patch === 'function' && module.moduleExports) {\n this._diag.debug('Applying instrumentation patch for nodejs module on instrumentation enabled', {\n module: module.name,\n version: module.moduleVersion,\n });\n module.patch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug('Applying instrumentation patch for nodejs module file on instrumentation enabled', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n });\n file.patch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n return;\n }\n this._warnOnPreloadedModules();\n for (const module of this._modules) {\n const hookFn = (exports, name, baseDir) => {\n if (!baseDir && path.isAbsolute(name)) {\n // Change IITM `name` and `baseDir` values to match what RITM returns.\n // See \"Comparing to RITM\" on https://github.com/nodejs/import-in-the-middle/pull/241\n // for an example of the differences.\n const parsedPath = path.parse(name);\n name = parsedPath.name;\n baseDir = parsedPath.dir;\n }\n return this._onRequire(module, exports, name, baseDir);\n };\n const onRequire = (exports, name, baseDir) => {\n return this._onRequire(module, exports, name, baseDir);\n };\n // `RequireInTheMiddleSingleton` does not support absolute paths.\n // For an absolute paths, we must create a separate instance of the\n // require-in-the-middle `Hook`.\n const hook = path.isAbsolute(module.name)\n ? new require_in_the_middle_1.Hook([module.name], { internals: true }, onRequire)\n : this._requireInTheMiddleSingleton.register(module.name, onRequire);\n this._hooks.push(hook);\n const esmHook = new import_in_the_middle_1.Hook([module.name], { internals: true }, hookFn);\n this._hooks.push(esmHook);\n }\n }\n disable() {\n if (!this._enabled) {\n return;\n }\n this._enabled = false;\n for (const module of this._modules) {\n if (typeof module.unpatch === 'function' && module.moduleExports) {\n this._diag.debug('Removing instrumentation patch for nodejs module on instrumentation disabled', {\n module: module.name,\n version: module.moduleVersion,\n });\n module.unpatch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug('Removing instrumentation patch for nodejs module file on instrumentation disabled', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n });\n file.unpatch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n }\n isEnabled() {\n return this._enabled;\n }\n}\nexports.InstrumentationBase = InstrumentationBase;\nfunction isSupported(supportedVersions, version, includePrerelease) {\n if (typeof version === 'undefined') {\n // If we don't have the version, accept the wildcard case only\n return supportedVersions.includes('*');\n }\n return supportedVersions.some(supportedVersion => {\n return (0, semver_1.satisfies)(version, supportedVersion, { includePrerelease });\n });\n}\n//# sourceMappingURL=instrumentation.js.map", + "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationBase = void 0;\nconst path = require(\"path\");\nconst util_1 = require(\"util\");\nconst semver_1 = require(\"../../semver\");\nconst shimmer_1 = require(\"../../shimmer\");\nconst instrumentation_1 = require(\"../../instrumentation\");\nconst RequireInTheMiddleSingleton_1 = require(\"./RequireInTheMiddleSingleton\");\nconst import_in_the_middle_1 = require(\"import-in-the-middle\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst require_in_the_middle_1 = require(\"require-in-the-middle\");\nconst fs_1 = require(\"fs\");\nconst utils_1 = require(\"../../utils\");\n/**\n * Base abstract class for instrumenting node plugins\n */\nclass InstrumentationBase extends instrumentation_1.InstrumentationAbstract {\n _modules;\n _hooks = [];\n _requireInTheMiddleSingleton = RequireInTheMiddleSingleton_1.RequireInTheMiddleSingleton.getInstance();\n _enabled = false;\n constructor(instrumentationName, instrumentationVersion, config) {\n super(instrumentationName, instrumentationVersion, config);\n let modules = this.init();\n if (modules && !Array.isArray(modules)) {\n modules = [modules];\n }\n this._modules = modules || [];\n if (this._config.enabled) {\n this.enable();\n }\n }\n _wrap = (moduleExports, name, wrapper) => {\n if ((0, utils_1.isWrapped)(moduleExports[name])) {\n this._unwrap(moduleExports, name);\n }\n if (!util_1.types.isProxy(moduleExports)) {\n return (0, shimmer_1.wrap)(moduleExports, name, wrapper);\n }\n else {\n const wrapped = (0, shimmer_1.wrap)(Object.assign({}, moduleExports), name, wrapper);\n Object.defineProperty(moduleExports, name, {\n value: wrapped,\n });\n return wrapped;\n }\n };\n _unwrap = (moduleExports, name) => {\n if (!util_1.types.isProxy(moduleExports)) {\n return (0, shimmer_1.unwrap)(moduleExports, name);\n }\n else {\n return Object.defineProperty(moduleExports, name, {\n value: moduleExports[name],\n });\n }\n };\n _massWrap = (moduleExportsArray, names, wrapper) => {\n if (!moduleExportsArray) {\n api_1.diag.error('must provide one or more modules to patch');\n return;\n }\n else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n if (!(names && Array.isArray(names))) {\n api_1.diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._wrap(moduleExports, name, wrapper);\n });\n });\n };\n _massUnwrap = (moduleExportsArray, names) => {\n if (!moduleExportsArray) {\n api_1.diag.error('must provide one or more modules to patch');\n return;\n }\n else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n if (!(names && Array.isArray(names))) {\n api_1.diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._unwrap(moduleExports, name);\n });\n });\n };\n _warnOnPreloadedModules() {\n // Access require via globalThis to prevent webpack from analyzing it as a dependency expression\n const nodeRequire = globalThis.require;\n if (!nodeRequire?.resolve || !nodeRequire?.cache)\n return;\n this._modules.forEach((module) => {\n const { name } = module;\n try {\n const resolvedModule = nodeRequire.resolve(name);\n if (nodeRequire.cache[resolvedModule]?.loaded) {\n // Module is already cached, which means the instrumentation hook might not work\n this._diag.warn(`Module ${name} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${name}`);\n }\n }\n catch {\n // Module isn't available, we can simply skip\n }\n });\n }\n _extractPackageVersion(baseDir) {\n try {\n const json = (0, fs_1.readFileSync)(path.join(baseDir, 'package.json'), {\n encoding: 'utf8',\n });\n const version = JSON.parse(json).version;\n return typeof version === 'string' ? version : undefined;\n }\n catch {\n api_1.diag.warn('Failed extracting version', baseDir);\n }\n return undefined;\n }\n _onRequire(module, exports, name, baseDir) {\n if (!baseDir) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for nodejs core module on require hook', {\n module: module.name,\n });\n return module.patch(exports);\n }\n }\n return exports;\n }\n const version = this._extractPackageVersion(baseDir);\n module.moduleVersion = version;\n if (module.name === name) {\n // main module\n if (isSupported(module.supportedVersions, version, module.includePrerelease)) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for module on require hook', {\n module: module.name,\n version: module.moduleVersion,\n baseDir,\n });\n return module.patch(exports, module.moduleVersion);\n }\n }\n }\n return exports;\n }\n // internal file\n const files = module.files ?? [];\n const normalizedName = path.normalize(name);\n const supportedFileInstrumentations = files.filter(f => f.name === normalizedName &&\n isSupported(f.supportedVersions, version, module.includePrerelease));\n return supportedFileInstrumentations.reduce((patchedExports, file) => {\n file.moduleExports = patchedExports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for nodejs module file on require hook', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n baseDir,\n });\n // patch signature is not typed, so we cast it assuming it's correct\n return file.patch(patchedExports, module.moduleVersion);\n }\n return patchedExports;\n }, exports);\n }\n enable() {\n if (this._enabled) {\n return;\n }\n this._enabled = true;\n // already hooked, just call patch again\n if (this._hooks.length > 0) {\n for (const module of this._modules) {\n if (typeof module.patch === 'function' && module.moduleExports) {\n this._diag.debug('Applying instrumentation patch for nodejs module on instrumentation enabled', {\n module: module.name,\n version: module.moduleVersion,\n });\n module.patch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug('Applying instrumentation patch for nodejs module file on instrumentation enabled', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n });\n file.patch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n return;\n }\n this._warnOnPreloadedModules();\n for (const module of this._modules) {\n const hookFn = (exports, name, baseDir) => {\n if (!baseDir && path.isAbsolute(name)) {\n // Change IITM `name` and `baseDir` values to match what RITM returns.\n // See \"Comparing to RITM\" on https://github.com/nodejs/import-in-the-middle/pull/241\n // for an example of the differences.\n const parsedPath = path.parse(name);\n name = parsedPath.name;\n baseDir = parsedPath.dir;\n }\n return this._onRequire(module, exports, name, baseDir);\n };\n const onRequire = (exports, name, baseDir) => {\n return this._onRequire(module, exports, name, baseDir);\n };\n // `RequireInTheMiddleSingleton` does not support absolute paths.\n // For an absolute paths, we must create a separate instance of the\n // require-in-the-middle `Hook`.\n const hook = path.isAbsolute(module.name)\n ? new require_in_the_middle_1.Hook([module.name], { internals: true }, onRequire)\n : this._requireInTheMiddleSingleton.register(module.name, onRequire);\n this._hooks.push(hook);\n const esmHook = new import_in_the_middle_1.Hook([module.name], { internals: true }, hookFn);\n this._hooks.push(esmHook);\n }\n }\n disable() {\n if (!this._enabled) {\n return;\n }\n this._enabled = false;\n for (const module of this._modules) {\n if (typeof module.unpatch === 'function' && module.moduleExports) {\n this._diag.debug('Removing instrumentation patch for nodejs module on instrumentation disabled', {\n module: module.name,\n version: module.moduleVersion,\n });\n module.unpatch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug('Removing instrumentation patch for nodejs module file on instrumentation disabled', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n });\n file.unpatch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n }\n isEnabled() {\n return this._enabled;\n }\n}\nexports.InstrumentationBase = InstrumentationBase;\nfunction isSupported(supportedVersions, version, includePrerelease) {\n if (typeof version === 'undefined') {\n // If we don't have the version, accept the wildcard case only\n return supportedVersions.includes('*');\n }\n return supportedVersions.some(supportedVersion => {\n return (0, semver_1.satisfies)(version, supportedVersion, { includePrerelease });\n });\n}\n//# sourceMappingURL=instrumentation.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = void 0;\nvar path_1 = require(\"path\");\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return path_1.normalize; } });\n//# sourceMappingURL=normalize.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = exports.InstrumentationBase = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return instrumentation_1.InstrumentationBase; } });\nvar normalize_1 = require(\"./normalize\");\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return normalize_1.normalize; } });\n//# sourceMappingURL=index.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = exports.InstrumentationBase = void 0;\nvar node_1 = require(\"./node\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return node_1.InstrumentationBase; } });\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return node_1.normalize; } });\n//# sourceMappingURL=index.js.map", @@ -216,51 +216,6 @@ "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationNodeModuleFile = void 0;\nconst index_1 = require(\"./platform/index\");\nclass InstrumentationNodeModuleFile {\n name;\n supportedVersions;\n patch;\n unpatch;\n constructor(name, supportedVersions, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n patch, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n unpatch) {\n this.name = (0, index_1.normalize)(name);\n this.supportedVersions = supportedVersions;\n this.patch = patch;\n this.unpatch = unpatch;\n }\n}\nexports.InstrumentationNodeModuleFile = InstrumentationNodeModuleFile;\n//# sourceMappingURL=instrumentationNodeModuleFile.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semconvStabilityFromStr = exports.SemconvStability = void 0;\nvar SemconvStability;\n(function (SemconvStability) {\n /** Emit only stable semantic conventions. */\n SemconvStability[SemconvStability[\"STABLE\"] = 1] = \"STABLE\";\n /** Emit only old semantic conventions. */\n SemconvStability[SemconvStability[\"OLD\"] = 2] = \"OLD\";\n /** Emit both stable and old semantic conventions. */\n SemconvStability[SemconvStability[\"DUPLICATE\"] = 3] = \"DUPLICATE\";\n})(SemconvStability = exports.SemconvStability || (exports.SemconvStability = {}));\n/**\n * Determine the appropriate semconv stability for the given namespace.\n *\n * This will parse the given string of comma-separated values (often\n * `process.env.OTEL_SEMCONV_STABILITY_OPT_IN`) looking for the `${namespace}`\n * or `${namespace}/dup` tokens. This is a pattern defined by a number of\n * non-normative semconv documents.\n *\n * For example:\n * - namespace 'http': https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\n * - namespace 'database': https://opentelemetry.io/docs/specs/semconv/non-normative/database-migration/\n * - namespace 'k8s': https://opentelemetry.io/docs/specs/semconv/non-normative/k8s-migration/\n *\n * Usage:\n *\n * import {SemconvStability, semconvStabilityFromStr} from '@opentelemetry/instrumentation';\n *\n * export class FooInstrumentation extends InstrumentationBase {\n * private _semconvStability: SemconvStability;\n * constructor(config: FooInstrumentationConfig = {}) {\n * super('@opentelemetry/instrumentation-foo', VERSION, config);\n *\n * // When supporting the OTEL_SEMCONV_STABILITY_OPT_IN envvar\n * this._semconvStability = semconvStabilityFromStr(\n * 'http',\n * process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n * );\n *\n * // or when supporting a `semconvStabilityOptIn` config option (e.g. for\n * // the web where there are no envvars).\n * this._semconvStability = semconvStabilityFromStr(\n * 'http',\n * config?.semconvStabilityOptIn\n * );\n * }\n * }\n *\n * // Then, to apply semconv, use the following or similar:\n * if (this._semconvStability & SemconvStability.OLD) {\n * // ...\n * }\n * if (this._semconvStability & SemconvStability.STABLE) {\n * // ...\n * }\n *\n */\nfunction semconvStabilityFromStr(namespace, str) {\n let semconvStability = SemconvStability.OLD;\n // The same parsing of `str` as `getStringListFromEnv` from the core pkg.\n const entries = str\n ?.split(',')\n .map(v => v.trim())\n .filter(s => s !== '');\n for (const entry of entries ?? []) {\n if (entry.toLowerCase() === namespace + '/dup') {\n // DUPLICATE takes highest precedence.\n semconvStability = SemconvStability.DUPLICATE;\n break;\n }\n else if (entry.toLowerCase() === namespace) {\n semconvStability = SemconvStability.STABLE;\n }\n }\n return semconvStability;\n}\nexports.semconvStabilityFromStr = semconvStabilityFromStr;\n//# sourceMappingURL=semconvStability.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semconvStabilityFromStr = exports.SemconvStability = exports.safeExecuteInTheMiddleAsync = exports.safeExecuteInTheMiddle = exports.isWrapped = exports.InstrumentationNodeModuleFile = exports.InstrumentationNodeModuleDefinition = exports.InstrumentationBase = exports.registerInstrumentations = void 0;\nvar autoLoader_1 = require(\"./autoLoader\");\nObject.defineProperty(exports, \"registerInstrumentations\", { enumerable: true, get: function () { return autoLoader_1.registerInstrumentations; } });\nvar index_1 = require(\"./platform/index\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return index_1.InstrumentationBase; } });\nvar instrumentationNodeModuleDefinition_1 = require(\"./instrumentationNodeModuleDefinition\");\nObject.defineProperty(exports, \"InstrumentationNodeModuleDefinition\", { enumerable: true, get: function () { return instrumentationNodeModuleDefinition_1.InstrumentationNodeModuleDefinition; } });\nvar instrumentationNodeModuleFile_1 = require(\"./instrumentationNodeModuleFile\");\nObject.defineProperty(exports, \"InstrumentationNodeModuleFile\", { enumerable: true, get: function () { return instrumentationNodeModuleFile_1.InstrumentationNodeModuleFile; } });\nvar utils_1 = require(\"./utils\");\nObject.defineProperty(exports, \"isWrapped\", { enumerable: true, get: function () { return utils_1.isWrapped; } });\nObject.defineProperty(exports, \"safeExecuteInTheMiddle\", { enumerable: true, get: function () { return utils_1.safeExecuteInTheMiddle; } });\nObject.defineProperty(exports, \"safeExecuteInTheMiddleAsync\", { enumerable: true, get: function () { return utils_1.safeExecuteInTheMiddleAsync; } });\nvar semconvStability_1 = require(\"./semconvStability\");\nObject.defineProperty(exports, \"SemconvStability\", { enumerable: true, get: function () { return semconvStability_1.SemconvStability; } });\nObject.defineProperty(exports, \"semconvStabilityFromStr\", { enumerable: true, get: function () { return semconvStability_1.semconvStabilityFromStr; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HTTP_FLAVOR_VALUE_HTTP_1_1 = exports.NET_TRANSPORT_VALUE_IP_UDP = exports.NET_TRANSPORT_VALUE_IP_TCP = exports.ATTR_NET_TRANSPORT = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_NET_PEER_IP = exports.ATTR_NET_HOST_PORT = exports.ATTR_NET_HOST_NAME = exports.ATTR_NET_HOST_IP = exports.ATTR_HTTP_USER_AGENT = exports.ATTR_HTTP_URL = exports.ATTR_HTTP_TARGET = exports.ATTR_HTTP_STATUS_CODE = exports.ATTR_HTTP_SERVER_NAME = exports.ATTR_HTTP_SCHEME = exports.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED = exports.ATTR_HTTP_RESPONSE_CONTENT_LENGTH = exports.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED = exports.ATTR_HTTP_REQUEST_CONTENT_LENGTH = exports.ATTR_HTTP_METHOD = exports.ATTR_HTTP_HOST = exports.ATTR_HTTP_FLAVOR = exports.ATTR_HTTP_CLIENT_IP = exports.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST = exports.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT = exports.ATTR_USER_AGENT_SYNTHETIC_TYPE = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Specifies the category of synthetic traffic, such as tests or bots.\n *\n * @note This attribute **MAY** be derived from the contents of the `user_agent.original` attribute. Components that populate the attribute are responsible for determining what they consider to be synthetic bot or test traffic. This attribute can either be set for self-identification purposes, or on telemetry detected to be generated as a result of a synthetic request. This attribute is useful for distinguishing between genuine client traffic and synthetic traffic generated by bots or tests.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_USER_AGENT_SYNTHETIC_TYPE = 'user_agent.synthetic.type';\n/**\n * Enum value \"bot\" for attribute {@link ATTR_USER_AGENT_SYNTHETIC_TYPE}.\n */\nexports.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT = 'bot';\n/**\n * Enum value \"test\" for attribute {@link ATTR_USER_AGENT_SYNTHETIC_TYPE}.\n */\nexports.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST = 'test';\n/**\n * Deprecated, use `client.address` instead.\n *\n * @example \"83.164.160.102\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `client.address`.\n */\nexports.ATTR_HTTP_CLIENT_IP = 'http.client_ip';\n/**\n * Deprecated, use `network.protocol.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `network.protocol.name`.\n */\nexports.ATTR_HTTP_FLAVOR = 'http.flavor';\n/**\n * Deprecated, use one of `server.address`, `client.address` or `http.request.header.host` instead, depending on the usage.\n *\n * @example www.example.org\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by one of `server.address`, `client.address` or `http.request.header.host`, depending on the usage.\n */\nexports.ATTR_HTTP_HOST = 'http.host';\n/**\n * Deprecated, use `http.request.method` instead.\n *\n * @example GET\n * @example POST\n * @example HEAD\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.method`.\n */\nexports.ATTR_HTTP_METHOD = 'http.method';\n/**\n * Deprecated, use `http.request.header.` instead.\n *\n * @example 3495\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.header.`.\n */\nexports.ATTR_HTTP_REQUEST_CONTENT_LENGTH = 'http.request_content_length';\n/**\n * Deprecated, use `http.request.body.size` instead.\n *\n * @example 5493\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.body.size`.\n */\nexports.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED = 'http.request_content_length_uncompressed';\n/**\n * Deprecated, use `http.response.header.` instead.\n *\n * @example 3495\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.response.header.`.\n */\nexports.ATTR_HTTP_RESPONSE_CONTENT_LENGTH = 'http.response_content_length';\n/**\n * Deprecated, use `http.response.body.size` instead.\n *\n * @example 5493\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replace by `http.response.body.size`.\n */\nexports.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED = 'http.response_content_length_uncompressed';\n/**\n * Deprecated, use `url.scheme` instead.\n *\n * @example http\n * @example https\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `url.scheme` instead.\n */\nexports.ATTR_HTTP_SCHEME = 'http.scheme';\n/**\n * Deprecated, use `server.address` instead.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address`.\n */\nexports.ATTR_HTTP_SERVER_NAME = 'http.server_name';\n/**\n * Deprecated, use `http.response.status_code` instead.\n *\n * @example 200\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.response.status_code`.\n */\nexports.ATTR_HTTP_STATUS_CODE = 'http.status_code';\n/**\n * Deprecated, use `url.path` and `url.query` instead.\n *\n * @example /search?q=OpenTelemetry#SemConv\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Split to `url.path` and `url.query.\n */\nexports.ATTR_HTTP_TARGET = 'http.target';\n/**\n * Deprecated, use `url.full` instead.\n *\n * @example https://www.foo.bar/search?q=OpenTelemetry#SemConv\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `url.full`.\n */\nexports.ATTR_HTTP_URL = 'http.url';\n/**\n * Deprecated, use `user_agent.original` instead.\n *\n * @example CERN-LineMode/2.15 libwww/2.17b3\n * @example Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `user_agent.original`.\n */\nexports.ATTR_HTTP_USER_AGENT = 'http.user_agent';\n/**\n * Deprecated, use `network.local.address`.\n *\n * @example \"192.168.0.1\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `network.local.address`.\n */\nexports.ATTR_NET_HOST_IP = 'net.host.ip';\n/**\n * Deprecated, use `server.address`.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address`.\n */\nexports.ATTR_NET_HOST_NAME = 'net.host.name';\n/**\n * Deprecated, use `server.port`.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port`.\n */\nexports.ATTR_NET_HOST_PORT = 'net.host.port';\n/**\n * Deprecated, use `network.peer.address`.\n *\n * @example \"127.0.0.1\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `network.peer.address`.\n */\nexports.ATTR_NET_PEER_IP = 'net.peer.ip';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Deprecated, use `network.transport`.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `network.transport`.\n */\nexports.ATTR_NET_TRANSPORT = 'net.transport';\n/**\n * Enum value \"ip_tcp\" for attribute {@link ATTR_NET_TRANSPORT}.\n */\nexports.NET_TRANSPORT_VALUE_IP_TCP = 'ip_tcp';\n/**\n * Enum value \"ip_udp\" for attribute {@link ATTR_NET_TRANSPORT}.\n */\nexports.NET_TRANSPORT_VALUE_IP_UDP = 'ip_udp';\n/**\n * Enum value \"1.1\" for attribute {@link ATTR_HTTP_FLAVOR}.\n */\nexports.HTTP_FLAVOR_VALUE_HTTP_1_1 = '1.1';\n//# sourceMappingURL=semconv.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = void 0;\n/**\n * https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/http.md\n */\nvar AttributeNames;\n(function (AttributeNames) {\n AttributeNames[\"HTTP_ERROR_NAME\"] = \"http.error_name\";\n AttributeNames[\"HTTP_ERROR_MESSAGE\"] = \"http.error_message\";\n AttributeNames[\"HTTP_STATUS_TEXT\"] = \"http.status_text\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_QUERY_STRINGS_TO_REDACT = exports.STR_REDACTED = exports.SYNTHETIC_BOT_NAMES = exports.SYNTHETIC_TEST_NAMES = void 0;\n/**\n * Names of possible synthetic test sources.\n */\nexports.SYNTHETIC_TEST_NAMES = ['alwayson'];\n/**\n * Names of possible synthetic bot sources.\n */\nexports.SYNTHETIC_BOT_NAMES = ['googlebot', 'bingbot'];\n/**\n * REDACTED string used to replace sensitive information in URLs.\n */\nexports.STR_REDACTED = 'REDACTED';\n/**\n * List of URL query keys that are considered sensitive and whose value should be redacted.\n */\nexports.DEFAULT_QUERY_STRINGS_TO_REDACT = [\n 'sig',\n 'Signature',\n 'AWSAccessKeyId',\n 'X-Goog-Signature',\n];\n//# sourceMappingURL=internal-types.js.map", - "'use strict';\n\nvar util = require('util');\n\n/**\n * An error thrown by the parser on unexpected input.\n *\n * @constructor\n * @param {string} message The error message.\n * @param {string} input The unexpected input.\n * @public\n */\nfunction ParseError(message, input) {\n Error.captureStackTrace(this, ParseError);\n\n this.name = this.constructor.name;\n this.message = message;\n this.input = input;\n}\n\nutil.inherits(ParseError, Error);\n\nmodule.exports = ParseError;\n", - "'use strict';\n\n/**\n * Check if a character is a delimiter as defined in section 3.2.6 of RFC 7230.\n *\n *\n * @param {number} code The code of the character to check.\n * @returns {boolean} `true` if the character is a delimiter, else `false`.\n * @public\n */\nfunction isDelimiter(code) {\n return code === 0x22 // '\"'\n || code === 0x28 // '('\n || code === 0x29 // ')'\n || code === 0x2C // ','\n || code === 0x2F // '/'\n || code >= 0x3A && code <= 0x40 // ':', ';', '<', '=', '>', '?' '@'\n || code >= 0x5B && code <= 0x5D // '[', '\\', ']'\n || code === 0x7B // '{'\n || code === 0x7D; // '}'\n}\n\n/**\n * Check if a character is allowed in a token as defined in section 3.2.6\n * of RFC 7230.\n *\n * @param {number} code The code of the character to check.\n * @returns {boolean} `true` if the character is allowed, else `false`.\n * @public\n */\nfunction isTokenChar(code) {\n return code === 0x21 // '!'\n || code >= 0x23 && code <= 0x27 // '#', '$', '%', '&', '''\n || code === 0x2A // '*'\n || code === 0x2B // '+'\n || code === 0x2D // '-'\n || code === 0x2E // '.'\n || code >= 0x30 && code <= 0x39 // 0-9\n || code >= 0x41 && code <= 0x5A // A-Z\n || code >= 0x5E && code <= 0x7A // '^', '_', '`', a-z\n || code === 0x7C // '|'\n || code === 0x7E; // '~'\n}\n\n/**\n * Check if a character is a printable ASCII character.\n *\n * @param {number} code The code of the character to check.\n * @returns {boolean} `true` if `code` is in the %x20-7E range, else `false`.\n * @public\n */\nfunction isPrint(code) {\n return code >= 0x20 && code <= 0x7E;\n}\n\n/**\n * Check if a character is an extended ASCII character.\n *\n * @param {number} code The code of the character to check.\n * @returns {boolean} `true` if `code` is in the %x80-FF range, else `false`.\n * @public\n */\nfunction isExtended(code) {\n return code >= 0x80 && code <= 0xFF;\n}\n\nmodule.exports = {\n isDelimiter: isDelimiter,\n isTokenChar: isTokenChar,\n isExtended: isExtended,\n isPrint: isPrint\n};\n", - "'use strict';\n\nvar util = require('util');\n\nvar ParseError = require('./lib/error');\nvar ascii = require('./lib/ascii');\n\nvar isDelimiter = ascii.isDelimiter;\nvar isTokenChar = ascii.isTokenChar;\nvar isExtended = ascii.isExtended;\nvar isPrint = ascii.isPrint;\n\n/**\n * Unescape a string.\n *\n * @param {string} str The string to unescape.\n * @returns {string} A new unescaped string.\n * @private\n */\nfunction decode(str) {\n return str.replace(/\\\\(.)/g, '$1');\n}\n\n/**\n * Build an error message when an unexpected character is found.\n *\n * @param {string} header The header field value.\n * @param {number} position The position of the unexpected character.\n * @returns {string} The error message.\n * @private\n */\nfunction unexpectedCharacterMessage(header, position) {\n return util.format(\n \"Unexpected character '%s' at index %d\",\n header.charAt(position),\n position\n );\n}\n\n/**\n * Parse the `Forwarded` header field value into an array of objects.\n *\n * @param {string} header The header field value.\n * @returns {Object[]}\n * @public\n */\nfunction parse(header) {\n var mustUnescape = false;\n var isEscaping = false;\n var inQuotes = false;\n var forwarded = {};\n var output = [];\n var start = -1;\n var end = -1;\n var parameter;\n var code;\n\n for (var i = 0; i < header.length; i++) {\n code = header.charCodeAt(i);\n\n if (parameter === undefined) {\n if (\n i !== 0 &&\n start === -1 &&\n (code === 0x20/*' '*/ || code === 0x09/*'\\t'*/)\n ) {\n continue;\n }\n\n if (isTokenChar(code)) {\n if (start === -1) start = i;\n } else if (code === 0x3D/*'='*/ && start !== -1) {\n parameter = header.slice(start, i).toLowerCase();\n start = -1;\n } else {\n throw new ParseError(unexpectedCharacterMessage(header, i), header);\n }\n } else {\n if (isEscaping && (code === 0x09 || isPrint(code) || isExtended(code))) {\n isEscaping = false;\n } else if (isTokenChar(code)) {\n if (end !== -1) {\n throw new ParseError(unexpectedCharacterMessage(header, i), header);\n }\n\n if (start === -1) start = i;\n } else if (isDelimiter(code) || isExtended(code)) {\n if (inQuotes) {\n if (code === 0x22/*'\"'*/) {\n inQuotes = false;\n end = i;\n } else if (code === 0x5C/*'\\'*/) {\n if (start === -1) start = i;\n isEscaping = mustUnescape = true;\n } else if (start === -1) {\n start = i;\n }\n } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3D) {\n inQuotes = true;\n } else if (\n (code === 0x2C/*','*/|| code === 0x3B/*';'*/) &&\n (start !== -1 || end !== -1)\n ) {\n if (start !== -1) {\n if (end === -1) end = i;\n forwarded[parameter] = mustUnescape\n ? decode(header.slice(start, end))\n : header.slice(start, end);\n } else {\n forwarded[parameter] = '';\n }\n\n if (code === 0x2C) {\n output.push(forwarded);\n forwarded = {};\n }\n\n parameter = undefined;\n start = end = -1;\n } else {\n throw new ParseError(unexpectedCharacterMessage(header, i), header);\n }\n } else if (code === 0x20 || code === 0x09) {\n if (end !== -1) continue;\n\n if (inQuotes) {\n if (start === -1) start = i;\n } else if (start !== -1) {\n end = i;\n } else {\n throw new ParseError(unexpectedCharacterMessage(header, i), header);\n }\n } else {\n throw new ParseError(unexpectedCharacterMessage(header, i), header);\n }\n }\n }\n\n if (\n parameter === undefined ||\n inQuotes ||\n (start === -1 && end === -1) ||\n code === 0x20 ||\n code === 0x09\n ) {\n throw new ParseError('Unexpected end of input', header);\n }\n\n if (start !== -1) {\n if (end === -1) end = i;\n forwarded[parameter] = mustUnescape\n ? decode(header.slice(start, end))\n : header.slice(start, end);\n } else {\n forwarded[parameter] = '';\n }\n\n output.push(forwarded);\n return output;\n}\n\nmodule.exports = parse;\n", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.headerCapture = exports.getIncomingStableRequestMetricAttributesOnResponse = exports.getIncomingRequestMetricAttributesOnResponse = exports.getIncomingRequestAttributesOnResponse = exports.getIncomingRequestMetricAttributes = exports.getIncomingRequestAttributes = exports.getRemoteClientAddress = exports.getOutgoingStableRequestMetricAttributesOnResponse = exports.getOutgoingRequestMetricAttributesOnResponse = exports.getOutgoingRequestAttributesOnResponse = exports.setAttributesFromHttpKind = exports.getOutgoingRequestMetricAttributes = exports.getOutgoingRequestAttributes = exports.extractHostnameAndPort = exports.isValidOptionsType = exports.getRequestInfo = exports.isCompressed = exports.setResponseContentLengthAttribute = exports.setRequestContentLengthAttribute = exports.setSpanWithError = exports.satisfiesPattern = exports.parseResponseStatus = exports.getAbsoluteUrl = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst url = require(\"url\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst internal_types_1 = require(\"./internal-types\");\nconst internal_types_2 = require(\"./internal-types\");\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst forwardedParse = require(\"forwarded-parse\");\n/**\n * Get an absolute url\n */\nconst getAbsoluteUrl = (requestUrl, headers, fallbackProtocol = 'http:', redactedQueryParams = Array.from(internal_types_2.DEFAULT_QUERY_STRINGS_TO_REDACT)) => {\n const reqUrlObject = requestUrl || {};\n const protocol = reqUrlObject.protocol || fallbackProtocol;\n const port = (reqUrlObject.port || '').toString();\n let path = reqUrlObject.path || '/';\n let host = reqUrlObject.host || reqUrlObject.hostname || headers.host || 'localhost';\n // if there is no port in host and there is a port\n // it should be displayed if it's not 80 and 443 (default ports)\n if (host.indexOf(':') === -1 &&\n port &&\n port !== '80' &&\n port !== '443') {\n host += `:${port}`;\n }\n // Redact sensitive query parameters\n if (path.includes('?')) {\n try {\n const parsedUrl = new URL(path, 'http://localhost');\n const sensitiveParamsToRedact = redactedQueryParams || [];\n for (const sensitiveParam of sensitiveParamsToRedact) {\n if (parsedUrl.searchParams.get(sensitiveParam)) {\n parsedUrl.searchParams.set(sensitiveParam, internal_types_2.STR_REDACTED);\n }\n }\n path = `${parsedUrl.pathname}${parsedUrl.search}`;\n }\n catch {\n // Ignore error, as the path was not a valid URL.\n }\n }\n const authPart = reqUrlObject.auth ? `${internal_types_2.STR_REDACTED}:${internal_types_2.STR_REDACTED}@` : '';\n return `${protocol}//${authPart}${host}${path}`;\n};\nexports.getAbsoluteUrl = getAbsoluteUrl;\n/**\n * Parse status code from HTTP response. [More details](https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/data-http.md#status)\n */\nconst parseResponseStatus = (kind, statusCode) => {\n const upperBound = kind === api_1.SpanKind.CLIENT ? 400 : 500;\n // 1xx, 2xx, 3xx are OK on client and server\n // 4xx is OK on server\n if (statusCode && statusCode >= 100 && statusCode < upperBound) {\n return api_1.SpanStatusCode.UNSET;\n }\n // All other codes are error\n return api_1.SpanStatusCode.ERROR;\n};\nexports.parseResponseStatus = parseResponseStatus;\n/**\n * Check whether the given obj match pattern\n * @param constant e.g URL of request\n * @param pattern Match pattern\n */\nconst satisfiesPattern = (constant, pattern) => {\n if (typeof pattern === 'string') {\n return pattern === constant;\n }\n else if (pattern instanceof RegExp) {\n return pattern.test(constant);\n }\n else if (typeof pattern === 'function') {\n return pattern(constant);\n }\n else {\n throw new TypeError('Pattern is in unsupported datatype');\n }\n};\nexports.satisfiesPattern = satisfiesPattern;\n/**\n * Sets the span with the error passed in params\n * @param {Span} span the span that need to be set\n * @param {Error} error error that will be set to span\n * @param {SemconvStability} semconvStability determines which semconv version to use\n */\nconst setSpanWithError = (span, error, semconvStability) => {\n const message = error.message;\n if (semconvStability & instrumentation_1.SemconvStability.OLD) {\n span.setAttribute(AttributeNames_1.AttributeNames.HTTP_ERROR_NAME, error.name);\n span.setAttribute(AttributeNames_1.AttributeNames.HTTP_ERROR_MESSAGE, message);\n }\n if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n span.setAttribute(semantic_conventions_1.ATTR_ERROR_TYPE, error.name);\n }\n span.setStatus({ code: api_1.SpanStatusCode.ERROR, message });\n span.recordException(error);\n};\nexports.setSpanWithError = setSpanWithError;\n/**\n * Adds attributes for request content-length and content-encoding HTTP headers\n * @param { IncomingMessage } Request object whose headers will be analyzed\n * @param { Attributes } Attributes object to be modified\n */\nconst setRequestContentLengthAttribute = (request, attributes) => {\n const length = getContentLength(request.headers);\n if (length === null)\n return;\n if ((0, exports.isCompressed)(request.headers)) {\n attributes[semconv_1.ATTR_HTTP_REQUEST_CONTENT_LENGTH] = length;\n }\n else {\n attributes[semconv_1.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED] = length;\n }\n};\nexports.setRequestContentLengthAttribute = setRequestContentLengthAttribute;\n/**\n * Adds attributes for response content-length and content-encoding HTTP headers\n * @param { IncomingMessage } Response object whose headers will be analyzed\n * @param { Attributes } Attributes object to be modified\n *\n * @deprecated this is for an older version of semconv. It is retained for compatibility using OTEL_SEMCONV_STABILITY_OPT_IN\n */\nconst setResponseContentLengthAttribute = (response, attributes) => {\n const length = getContentLength(response.headers);\n if (length === null)\n return;\n if ((0, exports.isCompressed)(response.headers)) {\n attributes[semconv_1.ATTR_HTTP_RESPONSE_CONTENT_LENGTH] = length;\n }\n else {\n attributes[semconv_1.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED] = length;\n }\n};\nexports.setResponseContentLengthAttribute = setResponseContentLengthAttribute;\nfunction getContentLength(headers) {\n const contentLengthHeader = headers['content-length'];\n if (contentLengthHeader === undefined)\n return null;\n const contentLength = parseInt(contentLengthHeader, 10);\n if (isNaN(contentLength))\n return null;\n return contentLength;\n}\nconst isCompressed = (headers) => {\n const encoding = headers['content-encoding'];\n return !!encoding && encoding !== 'identity';\n};\nexports.isCompressed = isCompressed;\n/**\n * Mimics Node.js conversion of URL strings to RequestOptions expected by\n * `http.request` and `https.request` APIs.\n *\n * See https://github.com/nodejs/node/blob/2505e217bba05fc581b572c685c5cf280a16c5a3/lib/internal/url.js#L1415-L1437\n *\n * @param stringUrl\n * @throws TypeError if the URL is not valid.\n */\nfunction stringUrlToHttpOptions(stringUrl) {\n // This is heavily inspired by Node.js handling of the same situation, trying\n // to follow it as closely as possible while keeping in mind that we only\n // deal with string URLs, not URL objects.\n const { hostname, pathname, port, username, password, search, protocol, hash, href, origin, host, } = new URL(stringUrl);\n const options = {\n protocol: protocol,\n hostname: hostname && hostname[0] === '[' ? hostname.slice(1, -1) : hostname,\n hash: hash,\n search: search,\n pathname: pathname,\n path: `${pathname || ''}${search || ''}`,\n href: href,\n origin: origin,\n host: host,\n };\n if (port !== '') {\n options.port = Number(port);\n }\n if (username || password) {\n options.auth = `${decodeURIComponent(username)}:${decodeURIComponent(password)}`;\n }\n return options;\n}\n/**\n * Makes sure options is an url object\n * return an object with default value and parsed options\n * @param logger component logger\n * @param options original options for the request\n * @param [extraOptions] additional options for the request\n */\nconst getRequestInfo = (logger, options, extraOptions) => {\n let pathname;\n let origin;\n let optionsParsed;\n let invalidUrl = false;\n if (typeof options === 'string') {\n try {\n const convertedOptions = stringUrlToHttpOptions(options);\n optionsParsed = convertedOptions;\n pathname = convertedOptions.pathname || '/';\n }\n catch (e) {\n invalidUrl = true;\n logger.verbose('Unable to parse URL provided to HTTP request, using fallback to determine path. Original error:', e);\n // for backward compatibility with how url.parse() behaved.\n optionsParsed = {\n path: options,\n };\n pathname = optionsParsed.path || '/';\n }\n origin = `${optionsParsed.protocol || 'http:'}//${optionsParsed.host}`;\n if (extraOptions !== undefined) {\n Object.assign(optionsParsed, extraOptions);\n }\n }\n else if (options instanceof url.URL) {\n optionsParsed = {\n protocol: options.protocol,\n hostname: typeof options.hostname === 'string' && options.hostname.startsWith('[')\n ? options.hostname.slice(1, -1)\n : options.hostname,\n path: `${options.pathname || ''}${options.search || ''}`,\n };\n if (options.port !== '') {\n optionsParsed.port = Number(options.port);\n }\n if (options.username || options.password) {\n optionsParsed.auth = `${options.username}:${options.password}`;\n }\n pathname = options.pathname;\n origin = options.origin;\n if (extraOptions !== undefined) {\n Object.assign(optionsParsed, extraOptions);\n }\n }\n else {\n optionsParsed = Object.assign({ protocol: options.host ? 'http:' : undefined }, options);\n const hostname = optionsParsed.host ||\n (optionsParsed.port != null\n ? `${optionsParsed.hostname}${optionsParsed.port}`\n : optionsParsed.hostname);\n origin = `${optionsParsed.protocol || 'http:'}//${hostname}`;\n pathname = options.pathname;\n if (!pathname && optionsParsed.path) {\n try {\n const parsedUrl = new URL(optionsParsed.path, origin);\n pathname = parsedUrl.pathname || '/';\n }\n catch {\n pathname = '/';\n }\n }\n }\n // some packages return method in lowercase..\n // ensure upperCase for consistency\n const method = optionsParsed.method\n ? optionsParsed.method.toUpperCase()\n : 'GET';\n return { origin, pathname, method, optionsParsed, invalidUrl };\n};\nexports.getRequestInfo = getRequestInfo;\n/**\n * Makes sure options is of type string or object\n * @param options for the request\n */\nconst isValidOptionsType = (options) => {\n if (!options) {\n return false;\n }\n const type = typeof options;\n return type === 'string' || (type === 'object' && !Array.isArray(options));\n};\nexports.isValidOptionsType = isValidOptionsType;\nconst extractHostnameAndPort = (requestOptions) => {\n if (requestOptions.hostname && requestOptions.port) {\n return { hostname: requestOptions.hostname, port: requestOptions.port };\n }\n const matches = requestOptions.host?.match(/^([^:/ ]+)(:\\d{1,5})?/) || null;\n const hostname = requestOptions.hostname || (matches === null ? 'localhost' : matches[1]);\n let port = requestOptions.port;\n if (!port) {\n if (matches && matches[2]) {\n // remove the leading \":\". The extracted port would be something like \":8080\"\n port = matches[2].substring(1);\n }\n else {\n port = requestOptions.protocol === 'https:' ? '443' : '80';\n }\n }\n return { hostname, port };\n};\nexports.extractHostnameAndPort = extractHostnameAndPort;\n/**\n * Returns outgoing request attributes scoped to the options passed to the request\n * @param {ParsedRequestOptions} requestOptions the same options used to make the request\n * @param {{ component: string, hostname: string, hookAttributes?: Attributes }} options used to pass data needed to create attributes\n * @param {SemconvStability} semconvStability determines which semconv version to use\n */\nconst getOutgoingRequestAttributes = (requestOptions, options, semconvStability, enableSyntheticSourceDetection) => {\n const hostname = options.hostname;\n const port = options.port;\n const method = requestOptions.method ?? 'GET';\n const normalizedMethod = normalizeMethod(method);\n const headers = (requestOptions.headers || {});\n const userAgent = headers['user-agent'];\n const urlFull = (0, exports.getAbsoluteUrl)(requestOptions, headers, `${options.component}:`, options.redactedQueryParams);\n const oldAttributes = {\n [semconv_1.ATTR_HTTP_URL]: urlFull,\n [semconv_1.ATTR_HTTP_METHOD]: method,\n [semconv_1.ATTR_HTTP_TARGET]: requestOptions.path || '/',\n [semconv_1.ATTR_NET_PEER_NAME]: hostname,\n [semconv_1.ATTR_HTTP_HOST]: headers.host ?? `${hostname}:${port}`,\n };\n const newAttributes = {\n // Required attributes\n [semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD]: normalizedMethod,\n [semantic_conventions_1.ATTR_SERVER_ADDRESS]: hostname,\n [semantic_conventions_1.ATTR_SERVER_PORT]: Number(port),\n [semantic_conventions_1.ATTR_URL_FULL]: urlFull,\n [semantic_conventions_1.ATTR_USER_AGENT_ORIGINAL]: userAgent,\n // leaving out protocol version, it is not yet negotiated\n // leaving out protocol name, it is only required when protocol version is set\n // retries and redirects not supported\n // Opt-in attributes left off for now\n };\n // conditionally required if request method required case normalization\n if (method !== normalizedMethod) {\n newAttributes[semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD_ORIGINAL] = method;\n }\n if (enableSyntheticSourceDetection && userAgent) {\n newAttributes[semconv_1.ATTR_USER_AGENT_SYNTHETIC_TYPE] = getSyntheticType(userAgent);\n }\n if (userAgent !== undefined) {\n oldAttributes[semconv_1.ATTR_HTTP_USER_AGENT] = userAgent;\n }\n switch (semconvStability) {\n case instrumentation_1.SemconvStability.STABLE:\n return Object.assign(newAttributes, options.hookAttributes);\n case instrumentation_1.SemconvStability.OLD:\n return Object.assign(oldAttributes, options.hookAttributes);\n }\n return Object.assign(oldAttributes, newAttributes, options.hookAttributes);\n};\nexports.getOutgoingRequestAttributes = getOutgoingRequestAttributes;\n/**\n * Returns outgoing request Metric attributes scoped to the request data\n * @param {Attributes} spanAttributes the span attributes\n */\nconst getOutgoingRequestMetricAttributes = (spanAttributes) => {\n const metricAttributes = {};\n metricAttributes[semconv_1.ATTR_HTTP_METHOD] = spanAttributes[semconv_1.ATTR_HTTP_METHOD];\n metricAttributes[semconv_1.ATTR_NET_PEER_NAME] = spanAttributes[semconv_1.ATTR_NET_PEER_NAME];\n //TODO: http.url attribute, it should substitute any parameters to avoid high cardinality.\n return metricAttributes;\n};\nexports.getOutgoingRequestMetricAttributes = getOutgoingRequestMetricAttributes;\n/**\n * Returns attributes related to the kind of HTTP protocol used\n * @param {string} [kind] Kind of HTTP protocol used: \"1.0\", \"1.1\", \"2\", \"SPDY\" or \"QUIC\".\n */\nconst setAttributesFromHttpKind = (kind, attributes) => {\n if (kind) {\n attributes[semconv_1.ATTR_HTTP_FLAVOR] = kind;\n if (kind.toUpperCase() !== 'QUIC') {\n attributes[semconv_1.ATTR_NET_TRANSPORT] = semconv_1.NET_TRANSPORT_VALUE_IP_TCP;\n }\n else {\n attributes[semconv_1.ATTR_NET_TRANSPORT] = semconv_1.NET_TRANSPORT_VALUE_IP_UDP;\n }\n }\n};\nexports.setAttributesFromHttpKind = setAttributesFromHttpKind;\n/**\n * Returns the type of synthetic source based on the user agent\n * @param {OutgoingHttpHeader} userAgent the user agent string\n */\nconst getSyntheticType = (userAgent) => {\n const userAgentString = String(userAgent).toLowerCase();\n for (const name of internal_types_1.SYNTHETIC_TEST_NAMES) {\n if (userAgentString.includes(name)) {\n return semconv_1.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;\n }\n }\n for (const name of internal_types_1.SYNTHETIC_BOT_NAMES) {\n if (userAgentString.includes(name)) {\n return semconv_1.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT;\n }\n }\n return;\n};\n/**\n * Returns outgoing request attributes scoped to the response data\n * @param {IncomingMessage} response the response object\n * @param {SemconvStability} semconvStability determines which semconv version to use\n */\nconst getOutgoingRequestAttributesOnResponse = (response, semconvStability) => {\n const { statusCode, statusMessage, httpVersion, socket } = response;\n const oldAttributes = {};\n const stableAttributes = {};\n if (statusCode != null) {\n stableAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE] = statusCode;\n }\n if (socket) {\n const { remoteAddress, remotePort } = socket;\n oldAttributes[semconv_1.ATTR_NET_PEER_IP] = remoteAddress;\n oldAttributes[semconv_1.ATTR_NET_PEER_PORT] = remotePort;\n // Recommended\n stableAttributes[semantic_conventions_1.ATTR_NETWORK_PEER_ADDRESS] = remoteAddress;\n stableAttributes[semantic_conventions_1.ATTR_NETWORK_PEER_PORT] = remotePort;\n stableAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION] = response.httpVersion;\n }\n (0, exports.setResponseContentLengthAttribute)(response, oldAttributes);\n if (statusCode) {\n oldAttributes[semconv_1.ATTR_HTTP_STATUS_CODE] = statusCode;\n oldAttributes[AttributeNames_1.AttributeNames.HTTP_STATUS_TEXT] = (statusMessage || '').toUpperCase();\n }\n (0, exports.setAttributesFromHttpKind)(httpVersion, oldAttributes);\n switch (semconvStability) {\n case instrumentation_1.SemconvStability.STABLE:\n return stableAttributes;\n case instrumentation_1.SemconvStability.OLD:\n return oldAttributes;\n }\n return Object.assign(oldAttributes, stableAttributes);\n};\nexports.getOutgoingRequestAttributesOnResponse = getOutgoingRequestAttributesOnResponse;\n/**\n * Returns outgoing request Metric attributes scoped to the response data\n * @param {Attributes} spanAttributes the span attributes\n */\nconst getOutgoingRequestMetricAttributesOnResponse = (spanAttributes) => {\n const metricAttributes = {};\n metricAttributes[semconv_1.ATTR_NET_PEER_PORT] = spanAttributes[semconv_1.ATTR_NET_PEER_PORT];\n metricAttributes[semconv_1.ATTR_HTTP_STATUS_CODE] =\n spanAttributes[semconv_1.ATTR_HTTP_STATUS_CODE];\n metricAttributes[semconv_1.ATTR_HTTP_FLAVOR] = spanAttributes[semconv_1.ATTR_HTTP_FLAVOR];\n return metricAttributes;\n};\nexports.getOutgoingRequestMetricAttributesOnResponse = getOutgoingRequestMetricAttributesOnResponse;\nconst getOutgoingStableRequestMetricAttributesOnResponse = (spanAttributes) => {\n const metricAttributes = {};\n if (spanAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION]) {\n metricAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION] =\n spanAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION];\n }\n if (spanAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE]) {\n metricAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE] =\n spanAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE];\n }\n return metricAttributes;\n};\nexports.getOutgoingStableRequestMetricAttributesOnResponse = getOutgoingStableRequestMetricAttributesOnResponse;\nfunction parseHostHeader(hostHeader, proto) {\n const parts = hostHeader.split(':');\n // no semicolon implies ipv4 dotted syntax or host name without port\n // x.x.x.x\n // example.com\n if (parts.length === 1) {\n if (proto === 'http') {\n return { host: parts[0], port: '80' };\n }\n if (proto === 'https') {\n return { host: parts[0], port: '443' };\n }\n return { host: parts[0] };\n }\n // single semicolon implies ipv4 dotted syntax or host name with port\n // x.x.x.x:yyyy\n // example.com:yyyy\n if (parts.length === 2) {\n return {\n host: parts[0],\n port: parts[1],\n };\n }\n // more than 2 parts implies ipv6 syntax with multiple colons\n // [x:x:x:x:x:x:x:x]\n // [x:x:x:x:x:x:x:x]:yyyy\n if (parts[0].startsWith('[')) {\n if (parts[parts.length - 1].endsWith(']')) {\n if (proto === 'http') {\n return { host: hostHeader, port: '80' };\n }\n if (proto === 'https') {\n return { host: hostHeader, port: '443' };\n }\n }\n else if (parts[parts.length - 2].endsWith(']')) {\n return {\n host: parts.slice(0, -1).join(':'),\n port: parts[parts.length - 1],\n };\n }\n }\n // if nothing above matches just return the host header\n return { host: hostHeader };\n}\n/**\n * Get server.address and port according to http semconv 1.27\n * https://github.com/open-telemetry/semantic-conventions/blob/bf0a2c1134f206f034408b201dbec37960ed60ec/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes\n */\nfunction getServerAddress(request, component) {\n const forwardedHeader = request.headers['forwarded'];\n if (forwardedHeader) {\n for (const entry of parseForwardedHeader(forwardedHeader)) {\n if (entry.host) {\n return parseHostHeader(entry.host, entry.proto);\n }\n }\n }\n const xForwardedHost = request.headers['x-forwarded-host'];\n if (typeof xForwardedHost === 'string') {\n if (typeof request.headers['x-forwarded-proto'] === 'string') {\n return parseHostHeader(xForwardedHost, request.headers['x-forwarded-proto']);\n }\n if (Array.isArray(request.headers['x-forwarded-proto'])) {\n return parseHostHeader(xForwardedHost, request.headers['x-forwarded-proto'][0]);\n }\n return parseHostHeader(xForwardedHost);\n }\n else if (Array.isArray(xForwardedHost) &&\n typeof xForwardedHost[0] === 'string' &&\n xForwardedHost[0].length > 0) {\n if (typeof request.headers['x-forwarded-proto'] === 'string') {\n return parseHostHeader(xForwardedHost[0], request.headers['x-forwarded-proto']);\n }\n if (Array.isArray(request.headers['x-forwarded-proto'])) {\n return parseHostHeader(xForwardedHost[0], request.headers['x-forwarded-proto'][0]);\n }\n return parseHostHeader(xForwardedHost[0]);\n }\n const host = request.headers['host'];\n if (typeof host === 'string' && host.length > 0) {\n return parseHostHeader(host, component);\n }\n return null;\n}\n/**\n * Get server.address and port according to http semconv 1.27\n * https://github.com/open-telemetry/semantic-conventions/blob/bf0a2c1134f206f034408b201dbec37960ed60ec/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes\n */\nfunction getRemoteClientAddress(request) {\n const forwardedHeader = request.headers['forwarded'];\n if (forwardedHeader) {\n for (const entry of parseForwardedHeader(forwardedHeader)) {\n if (entry.for) {\n return removePortFromAddress(entry.for);\n }\n }\n }\n const xForwardedFor = request.headers['x-forwarded-for'];\n if (xForwardedFor) {\n let xForwardedForVal;\n if (typeof xForwardedFor === 'string') {\n xForwardedForVal = xForwardedFor;\n }\n else if (Array.isArray(xForwardedFor)) {\n xForwardedForVal = xForwardedFor[0];\n }\n if (typeof xForwardedForVal === 'string') {\n xForwardedForVal = xForwardedForVal.split(',')[0].trim();\n return removePortFromAddress(xForwardedForVal);\n }\n }\n const remote = request.socket.remoteAddress;\n if (remote) {\n return remote;\n }\n return null;\n}\nexports.getRemoteClientAddress = getRemoteClientAddress;\nfunction removePortFromAddress(input) {\n // This function can be replaced with SocketAddress.parse() once the minimum\n // supported Node.js version allows it.\n try {\n const { hostname: address } = new URL(`http://${input}`);\n if (address.startsWith('[') && address.endsWith(']')) {\n return address.slice(1, -1);\n }\n return address;\n }\n catch {\n return input;\n }\n}\nfunction getInfoFromIncomingMessage(component, request, logger) {\n try {\n if (request.headers.host) {\n return new URL(request.url ?? '/', `${component}://${request.headers.host}`);\n }\n else {\n const unsafeParsedUrl = new URL(request.url ?? '/', \n // using localhost as a workaround to still use the URL constructor for parsing\n `${component}://localhost`);\n // since we use localhost as a workaround, ensure we hide the rest of the properties to avoid\n // our workaround leaking though.\n return {\n pathname: unsafeParsedUrl.pathname,\n search: unsafeParsedUrl.search,\n toString: function () {\n // we cannot use the result of unsafeParsedUrl.toString as it's potentially wrong.\n return unsafeParsedUrl.pathname + unsafeParsedUrl.search;\n },\n };\n }\n }\n catch (e) {\n // something is wrong, use undefined - this *should* never happen, logging\n // for troubleshooting in case it does happen.\n logger.verbose('Unable to get URL from request', e);\n return {};\n }\n}\n/**\n * Returns incoming request attributes scoped to the request data\n * @param {IncomingMessage} request the request object\n * @param {{ component: string, serverName?: string, hookAttributes?: Attributes }} options used to pass data needed to create attributes\n * @param {SemconvStability} semconvStability determines which semconv version to use\n */\nconst getIncomingRequestAttributes = (request, options, logger) => {\n const { component, enableSyntheticSourceDetection, hookAttributes, semconvStability, serverName, } = options;\n const { headers, httpVersion, method } = request;\n const { host, 'user-agent': userAgent, 'x-forwarded-for': ips } = headers;\n const parsedUrl = getInfoFromIncomingMessage(component, request, logger);\n let newAttributes;\n let oldAttributes;\n if (semconvStability !== instrumentation_1.SemconvStability.OLD) {\n // Stable attributes are used.\n const normalizedMethod = normalizeMethod(method);\n const serverAddress = getServerAddress(request, component);\n const remoteClientAddress = getRemoteClientAddress(request);\n newAttributes = {\n [semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD]: normalizedMethod,\n [semantic_conventions_1.ATTR_URL_SCHEME]: component,\n [semantic_conventions_1.ATTR_SERVER_ADDRESS]: serverAddress?.host,\n [semantic_conventions_1.ATTR_NETWORK_PEER_ADDRESS]: request.socket.remoteAddress,\n [semantic_conventions_1.ATTR_NETWORK_PEER_PORT]: request.socket.remotePort,\n [semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION]: request.httpVersion,\n [semantic_conventions_1.ATTR_USER_AGENT_ORIGINAL]: userAgent,\n };\n if (parsedUrl.pathname != null) {\n newAttributes[semantic_conventions_1.ATTR_URL_PATH] = parsedUrl.pathname;\n }\n if (parsedUrl.search) {\n // Remove leading '?' from URL search (https://developer.mozilla.org/en-US/docs/Web/API/URL/search).\n newAttributes[semantic_conventions_1.ATTR_URL_QUERY] = parsedUrl.search.slice(1);\n }\n if (remoteClientAddress != null) {\n newAttributes[semantic_conventions_1.ATTR_CLIENT_ADDRESS] = remoteClientAddress;\n }\n if (serverAddress?.port != null) {\n newAttributes[semantic_conventions_1.ATTR_SERVER_PORT] = Number(serverAddress.port);\n }\n // Conditionally required if request method required case normalization.\n if (method !== normalizedMethod) {\n newAttributes[semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD_ORIGINAL] = method;\n }\n if (enableSyntheticSourceDetection && userAgent) {\n newAttributes[semconv_1.ATTR_USER_AGENT_SYNTHETIC_TYPE] =\n getSyntheticType(userAgent);\n }\n }\n if (semconvStability !== instrumentation_1.SemconvStability.STABLE) {\n // Old attributes are used.\n const hostname = host?.replace(/^(.*)(:[0-9]{1,5})/, '$1') || 'localhost';\n oldAttributes = {\n [semconv_1.ATTR_HTTP_URL]: parsedUrl.toString(),\n [semconv_1.ATTR_HTTP_HOST]: host,\n [semconv_1.ATTR_NET_HOST_NAME]: hostname,\n [semconv_1.ATTR_HTTP_METHOD]: method,\n [semconv_1.ATTR_HTTP_SCHEME]: component,\n };\n if (typeof ips === 'string') {\n oldAttributes[semconv_1.ATTR_HTTP_CLIENT_IP] = ips.split(',')[0];\n }\n if (typeof serverName === 'string') {\n oldAttributes[semconv_1.ATTR_HTTP_SERVER_NAME] = serverName;\n }\n if (parsedUrl.pathname) {\n oldAttributes[semconv_1.ATTR_HTTP_TARGET] =\n parsedUrl.pathname + parsedUrl.search || '/';\n }\n if (userAgent !== undefined) {\n oldAttributes[semconv_1.ATTR_HTTP_USER_AGENT] = userAgent;\n }\n (0, exports.setRequestContentLengthAttribute)(request, oldAttributes);\n (0, exports.setAttributesFromHttpKind)(httpVersion, oldAttributes);\n }\n switch (semconvStability) {\n case instrumentation_1.SemconvStability.STABLE:\n return Object.assign(newAttributes, hookAttributes);\n case instrumentation_1.SemconvStability.OLD:\n return Object.assign(oldAttributes, hookAttributes);\n default:\n return Object.assign(oldAttributes, newAttributes, hookAttributes);\n }\n};\nexports.getIncomingRequestAttributes = getIncomingRequestAttributes;\n/**\n * Returns incoming request Metric attributes scoped to the request data\n * @param {Attributes} spanAttributes the span attributes\n * @param {{ component: string }} options used to pass data needed to create attributes\n */\nconst getIncomingRequestMetricAttributes = (spanAttributes) => {\n const metricAttributes = {};\n metricAttributes[semconv_1.ATTR_HTTP_SCHEME] = spanAttributes[semconv_1.ATTR_HTTP_SCHEME];\n metricAttributes[semconv_1.ATTR_HTTP_METHOD] = spanAttributes[semconv_1.ATTR_HTTP_METHOD];\n metricAttributes[semconv_1.ATTR_NET_HOST_NAME] = spanAttributes[semconv_1.ATTR_NET_HOST_NAME];\n metricAttributes[semconv_1.ATTR_HTTP_FLAVOR] = spanAttributes[semconv_1.ATTR_HTTP_FLAVOR];\n //TODO: http.target attribute, it should substitute any parameters to avoid high cardinality.\n return metricAttributes;\n};\nexports.getIncomingRequestMetricAttributes = getIncomingRequestMetricAttributes;\n/**\n * Returns incoming request attributes scoped to the response data\n * @param {(ServerResponse & { socket: Socket; })} response the response object\n */\nconst getIncomingRequestAttributesOnResponse = (request, response, semconvStability) => {\n // take socket from the request,\n // since it may be detached from the response object in keep-alive mode\n const { socket } = request;\n const { statusCode, statusMessage } = response;\n const newAttributes = {\n [semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE]: statusCode,\n };\n const rpcMetadata = (0, core_1.getRPCMetadata)(api_1.context.active());\n const oldAttributes = {};\n if (socket) {\n const { localAddress, localPort, remoteAddress, remotePort } = socket;\n oldAttributes[semconv_1.ATTR_NET_HOST_IP] = localAddress;\n oldAttributes[semconv_1.ATTR_NET_HOST_PORT] = localPort;\n oldAttributes[semconv_1.ATTR_NET_PEER_IP] = remoteAddress;\n oldAttributes[semconv_1.ATTR_NET_PEER_PORT] = remotePort;\n }\n oldAttributes[semconv_1.ATTR_HTTP_STATUS_CODE] = statusCode;\n oldAttributes[AttributeNames_1.AttributeNames.HTTP_STATUS_TEXT] = (statusMessage || '').toUpperCase();\n if (rpcMetadata?.type === core_1.RPCType.HTTP && rpcMetadata.route !== undefined) {\n oldAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE] = rpcMetadata.route;\n newAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE] = rpcMetadata.route;\n }\n switch (semconvStability) {\n case instrumentation_1.SemconvStability.STABLE:\n return newAttributes;\n case instrumentation_1.SemconvStability.OLD:\n return oldAttributes;\n }\n return Object.assign(oldAttributes, newAttributes);\n};\nexports.getIncomingRequestAttributesOnResponse = getIncomingRequestAttributesOnResponse;\n/**\n * Returns incoming request Metric attributes scoped to the request data\n * @param {Attributes} spanAttributes the span attributes\n */\nconst getIncomingRequestMetricAttributesOnResponse = (spanAttributes) => {\n const metricAttributes = {};\n metricAttributes[semconv_1.ATTR_HTTP_STATUS_CODE] =\n spanAttributes[semconv_1.ATTR_HTTP_STATUS_CODE];\n metricAttributes[semconv_1.ATTR_NET_HOST_PORT] = spanAttributes[semconv_1.ATTR_NET_HOST_PORT];\n if (spanAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE] !== undefined) {\n metricAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE] = spanAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE];\n }\n return metricAttributes;\n};\nexports.getIncomingRequestMetricAttributesOnResponse = getIncomingRequestMetricAttributesOnResponse;\n/**\n * Returns incoming stable request Metric attributes scoped to the request data\n * @param {Attributes} spanAttributes the span attributes\n */\nconst getIncomingStableRequestMetricAttributesOnResponse = (spanAttributes) => {\n const metricAttributes = {};\n if (spanAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE] !== undefined) {\n metricAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE] = spanAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE];\n }\n // required if and only if one was sent, same as span requirement\n if (spanAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE]) {\n metricAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE] =\n spanAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE];\n }\n return metricAttributes;\n};\nexports.getIncomingStableRequestMetricAttributesOnResponse = getIncomingStableRequestMetricAttributesOnResponse;\nfunction headerCapture(type, headers, semconvStability) {\n const normalizedHeaders = new Map();\n for (let i = 0, len = headers.length; i < len; i++) {\n const capturedHeader = headers[i].toLowerCase();\n if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n normalizedHeaders.set(capturedHeader, capturedHeader);\n }\n else {\n // In old semconv, the header name converted hypen to underscore, e.g.:\n // `http.request.header.content_length`.\n normalizedHeaders.set(capturedHeader, capturedHeader.replaceAll('-', '_'));\n }\n }\n return (getHeader) => {\n const attributes = {};\n for (const capturedHeader of normalizedHeaders.keys()) {\n const value = getHeader(capturedHeader);\n if (value === undefined) {\n continue;\n }\n const normalizedHeader = normalizedHeaders.get(capturedHeader);\n const key = `http.${type}.header.${normalizedHeader}`;\n if (typeof value === 'string') {\n attributes[key] = [value];\n }\n else if (Array.isArray(value)) {\n attributes[key] = value;\n }\n else {\n attributes[key] = [value];\n }\n }\n return attributes;\n };\n}\nexports.headerCapture = headerCapture;\nconst KNOWN_METHODS = new Set([\n // methods from https://www.rfc-editor.org/rfc/rfc9110.html#name-methods\n 'GET',\n 'HEAD',\n 'POST',\n 'PUT',\n 'DELETE',\n 'CONNECT',\n 'OPTIONS',\n 'TRACE',\n // PATCH from https://www.rfc-editor.org/rfc/rfc5789.html\n 'PATCH',\n // QUERY from https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/\n 'QUERY',\n]);\nfunction normalizeMethod(method) {\n if (method == null) {\n return 'GET';\n }\n const upper = method.toUpperCase();\n if (KNOWN_METHODS.has(upper)) {\n return upper;\n }\n return '_OTHER';\n}\nfunction parseForwardedHeader(header) {\n try {\n return forwardedParse(header);\n }\n catch {\n return [];\n }\n}\n//# sourceMappingURL=utils.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpInstrumentation = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst url = require(\"url\");\nconst version_1 = require(\"./version\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst events_1 = require(\"events\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst utils_1 = require(\"./utils\");\n/**\n * `node:http` and `node:https` instrumentation for OpenTelemetry\n */\nclass HttpInstrumentation extends instrumentation_1.InstrumentationBase {\n /** keep track on spans not ended */\n _spanNotEnded = new WeakSet();\n _headerCapture;\n _httpPatched = false;\n _httpsPatched = false;\n _semconvStability = instrumentation_1.SemconvStability.OLD;\n constructor(config = {}) {\n super('@opentelemetry/instrumentation-http', version_1.VERSION, config);\n this._semconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n this._headerCapture = this._createHeaderCapture(this._semconvStability);\n }\n _updateMetricInstruments() {\n this._oldHttpServerDurationHistogram = this.meter.createHistogram('http.server.duration', {\n description: 'Measures the duration of inbound HTTP requests.',\n unit: 'ms',\n valueType: api_1.ValueType.DOUBLE,\n });\n this._oldHttpClientDurationHistogram = this.meter.createHistogram('http.client.duration', {\n description: 'Measures the duration of outbound HTTP requests.',\n unit: 'ms',\n valueType: api_1.ValueType.DOUBLE,\n });\n this._stableHttpServerDurationHistogram = this.meter.createHistogram(semantic_conventions_1.METRIC_HTTP_SERVER_REQUEST_DURATION, {\n description: 'Duration of HTTP server requests.',\n unit: 's',\n valueType: api_1.ValueType.DOUBLE,\n advice: {\n explicitBucketBoundaries: [\n 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5,\n 7.5, 10,\n ],\n },\n });\n this._stableHttpClientDurationHistogram = this.meter.createHistogram(semantic_conventions_1.METRIC_HTTP_CLIENT_REQUEST_DURATION, {\n description: 'Duration of HTTP client requests.',\n unit: 's',\n valueType: api_1.ValueType.DOUBLE,\n advice: {\n explicitBucketBoundaries: [\n 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5,\n 7.5, 10,\n ],\n },\n });\n }\n _recordServerDuration(durationMs, oldAttributes, stableAttributes) {\n if (this._semconvStability & instrumentation_1.SemconvStability.OLD) {\n // old histogram is counted in MS\n this._oldHttpServerDurationHistogram.record(durationMs, oldAttributes);\n }\n if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n // stable histogram is counted in S\n this._stableHttpServerDurationHistogram.record(durationMs / 1000, stableAttributes);\n }\n }\n _recordClientDuration(durationMs, oldAttributes, stableAttributes) {\n if (this._semconvStability & instrumentation_1.SemconvStability.OLD) {\n // old histogram is counted in MS\n this._oldHttpClientDurationHistogram.record(durationMs, oldAttributes);\n }\n if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n // stable histogram is counted in S\n this._stableHttpClientDurationHistogram.record(durationMs / 1000, stableAttributes);\n }\n }\n setConfig(config = {}) {\n super.setConfig(config);\n this._headerCapture = this._createHeaderCapture(this._semconvStability);\n }\n init() {\n return [this._getHttpsInstrumentation(), this._getHttpInstrumentation()];\n }\n _getHttpInstrumentation() {\n return new instrumentation_1.InstrumentationNodeModuleDefinition('http', ['*'], (moduleExports) => {\n // Guard against double-instrumentation, if loaded by both `require`\n // and `import`.\n if (this._httpPatched) {\n return moduleExports;\n }\n this._httpPatched = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isESM = moduleExports[Symbol.toStringTag] === 'Module';\n if (!this.getConfig().disableOutgoingRequestInstrumentation) {\n const patchedRequest = this._wrap(moduleExports, 'request', this._getPatchOutgoingRequestFunction('http'));\n const patchedGet = this._wrap(moduleExports, 'get', this._getPatchOutgoingGetFunction(patchedRequest));\n if (isESM) {\n // To handle `import http from 'http'`, which returns the default\n // export, we need to set `module.default.*`.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n moduleExports.default.request = patchedRequest;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n moduleExports.default.get = patchedGet;\n }\n }\n if (!this.getConfig().disableIncomingRequestInstrumentation) {\n this._wrap(moduleExports.Server.prototype, 'emit', this._getPatchIncomingRequestFunction('http'));\n }\n return moduleExports;\n }, (moduleExports) => {\n this._httpPatched = false;\n if (moduleExports === undefined)\n return;\n if (!this.getConfig().disableOutgoingRequestInstrumentation) {\n this._unwrap(moduleExports, 'request');\n this._unwrap(moduleExports, 'get');\n }\n if (!this.getConfig().disableIncomingRequestInstrumentation) {\n this._unwrap(moduleExports.Server.prototype, 'emit');\n }\n });\n }\n _getHttpsInstrumentation() {\n return new instrumentation_1.InstrumentationNodeModuleDefinition('https', ['*'], (moduleExports) => {\n // Guard against double-instrumentation, if loaded by both `require`\n // and `import`.\n if (this._httpsPatched) {\n return moduleExports;\n }\n this._httpsPatched = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isESM = moduleExports[Symbol.toStringTag] === 'Module';\n if (!this.getConfig().disableOutgoingRequestInstrumentation) {\n const patchedRequest = this._wrap(moduleExports, 'request', this._getPatchHttpsOutgoingRequestFunction('https'));\n const patchedGet = this._wrap(moduleExports, 'get', this._getPatchHttpsOutgoingGetFunction(patchedRequest));\n if (isESM) {\n // To handle `import https from 'https'`, which returns the default\n // export, we need to set `module.default.*`.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n moduleExports.default.request = patchedRequest;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n moduleExports.default.get = patchedGet;\n }\n }\n if (!this.getConfig().disableIncomingRequestInstrumentation) {\n this._wrap(moduleExports.Server.prototype, 'emit', this._getPatchIncomingRequestFunction('https'));\n }\n return moduleExports;\n }, (moduleExports) => {\n this._httpsPatched = false;\n if (moduleExports === undefined)\n return;\n if (!this.getConfig().disableOutgoingRequestInstrumentation) {\n this._unwrap(moduleExports, 'request');\n this._unwrap(moduleExports, 'get');\n }\n if (!this.getConfig().disableIncomingRequestInstrumentation) {\n this._unwrap(moduleExports.Server.prototype, 'emit');\n }\n });\n }\n /**\n * Creates spans for incoming requests, restoring spans' context if applied.\n */\n _getPatchIncomingRequestFunction(component) {\n return (original) => {\n return this._incomingRequestFunction(component, original);\n };\n }\n /**\n * Creates spans for outgoing requests, sending spans' context for distributed\n * tracing.\n */\n _getPatchOutgoingRequestFunction(component) {\n return (original) => {\n return this._outgoingRequestFunction(component, original);\n };\n }\n _getPatchOutgoingGetFunction(clientRequest) {\n return (_original) => {\n // Re-implement http.get. This needs to be done (instead of using\n // getPatchOutgoingRequestFunction to patch it) because we need to\n // set the trace context header before the returned http.ClientRequest is\n // ended. The Node.js docs state that the only differences between\n // request and get are that (1) get defaults to the HTTP GET method and\n // (2) the returned request object is ended immediately. The former is\n // already true (at least in supported Node versions up to v10), so we\n // simply follow the latter. Ref:\n // https://nodejs.org/dist/latest/docs/api/http.html#http_http_get_options_callback\n // https://github.com/googleapis/cloud-trace-nodejs/blob/master/src/instrumentations/instrumentation-http.ts#L198\n return function outgoingGetRequest(options, ...args) {\n const req = clientRequest(options, ...args);\n req.end();\n return req;\n };\n };\n }\n /** Patches HTTPS outgoing requests */\n _getPatchHttpsOutgoingRequestFunction(component) {\n return (original) => {\n const instrumentation = this;\n return function httpsOutgoingRequest(\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n options, ...args) {\n // Makes sure options will have default HTTPS parameters\n if (component === 'https' &&\n typeof options === 'object' &&\n options?.constructor?.name !== 'URL') {\n options = Object.assign({}, options);\n instrumentation._setDefaultOptions(options);\n }\n return instrumentation._getPatchOutgoingRequestFunction(component)(original)(options, ...args);\n };\n };\n }\n _setDefaultOptions(options) {\n options.protocol = options.protocol || 'https:';\n options.port = options.port || 443;\n }\n /** Patches HTTPS outgoing get requests */\n _getPatchHttpsOutgoingGetFunction(clientRequest) {\n return (original) => {\n const instrumentation = this;\n return function httpsOutgoingRequest(\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n options, ...args) {\n return instrumentation._getPatchOutgoingGetFunction(clientRequest)(original)(options, ...args);\n };\n };\n }\n /**\n * Attach event listeners to a client request to end span and add span attributes.\n *\n * @param request The original request object.\n * @param span representing the current operation\n * @param startTime representing the start time of the request to calculate duration in Metric\n * @param oldMetricAttributes metric attributes for old semantic conventions\n * @param stableMetricAttributes metric attributes for new semantic conventions\n */\n _traceClientRequest(request, span, startTime, oldMetricAttributes, stableMetricAttributes) {\n if (this.getConfig().requestHook) {\n this._callRequestHook(span, request);\n }\n /**\n * Determines if the request has errored or the response has ended/errored.\n */\n let responseFinished = false;\n /*\n * User 'response' event listeners can be added before our listener,\n * force our listener to be the first, so response emitter is bound\n * before any user listeners are added to it.\n */\n request.prependListener('response', (response) => {\n this._diag.debug('outgoingRequest on response()');\n if (request.listenerCount('response') <= 1) {\n response.resume();\n }\n const responseAttributes = (0, utils_1.getOutgoingRequestAttributesOnResponse)(response, this._semconvStability);\n span.setAttributes(responseAttributes);\n oldMetricAttributes = Object.assign(oldMetricAttributes, (0, utils_1.getOutgoingRequestMetricAttributesOnResponse)(responseAttributes));\n stableMetricAttributes = Object.assign(stableMetricAttributes, (0, utils_1.getOutgoingStableRequestMetricAttributesOnResponse)(responseAttributes));\n if (this.getConfig().responseHook) {\n this._callResponseHook(span, response);\n }\n span.setAttributes(this._headerCapture.client.captureRequestHeaders(header => request.getHeader(header)));\n span.setAttributes(this._headerCapture.client.captureResponseHeaders(header => response.headers[header]));\n api_1.context.bind(api_1.context.active(), response);\n const endHandler = () => {\n this._diag.debug('outgoingRequest on end()');\n if (responseFinished) {\n return;\n }\n responseFinished = true;\n let status;\n if (response.aborted && !response.complete) {\n status = { code: api_1.SpanStatusCode.ERROR };\n }\n else {\n // behaves same for new and old semconv\n status = {\n code: (0, utils_1.parseResponseStatus)(api_1.SpanKind.CLIENT, response.statusCode),\n };\n }\n span.setStatus(status);\n if (this.getConfig().applyCustomAttributesOnSpan) {\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => this.getConfig().applyCustomAttributesOnSpan(span, request, response), () => { }, true);\n }\n this._closeHttpSpan(span, api_1.SpanKind.CLIENT, startTime, oldMetricAttributes, stableMetricAttributes);\n };\n response.on('end', endHandler);\n response.on(events_1.errorMonitor, (error) => {\n this._diag.debug('outgoingRequest on error()', error);\n if (responseFinished) {\n return;\n }\n responseFinished = true;\n this._onOutgoingRequestError(span, oldMetricAttributes, stableMetricAttributes, startTime, error);\n });\n });\n request.on('close', () => {\n this._diag.debug('outgoingRequest on request close()');\n if (request.aborted || responseFinished) {\n return;\n }\n responseFinished = true;\n this._closeHttpSpan(span, api_1.SpanKind.CLIENT, startTime, oldMetricAttributes, stableMetricAttributes);\n });\n request.on(events_1.errorMonitor, (error) => {\n this._diag.debug('outgoingRequest on request error()', error);\n if (responseFinished) {\n return;\n }\n responseFinished = true;\n this._onOutgoingRequestError(span, oldMetricAttributes, stableMetricAttributes, startTime, error);\n });\n this._diag.debug('http.ClientRequest return request');\n return request;\n }\n _incomingRequestFunction(component, original) {\n const instrumentation = this;\n return function incomingRequest(event, ...args) {\n // Only traces request events\n if (event !== 'request') {\n return original.apply(this, [event, ...args]);\n }\n const request = args[0];\n const response = args[1];\n const method = request.method || 'GET';\n instrumentation._diag.debug(`${component} instrumentation incomingRequest`);\n if ((0, instrumentation_1.safeExecuteInTheMiddle)(() => instrumentation.getConfig().ignoreIncomingRequestHook?.(request), (e) => {\n if (e != null) {\n instrumentation._diag.error('caught ignoreIncomingRequestHook error: ', e);\n }\n }, true)) {\n return api_1.context.with((0, core_1.suppressTracing)(api_1.context.active()), () => {\n api_1.context.bind(api_1.context.active(), request);\n api_1.context.bind(api_1.context.active(), response);\n return original.apply(this, [event, ...args]);\n });\n }\n const headers = request.headers;\n const spanAttributes = (0, utils_1.getIncomingRequestAttributes)(request, {\n component: component,\n serverName: instrumentation.getConfig().serverName,\n hookAttributes: instrumentation._callStartSpanHook(request, instrumentation.getConfig().startIncomingSpanHook),\n semconvStability: instrumentation._semconvStability,\n enableSyntheticSourceDetection: instrumentation.getConfig().enableSyntheticSourceDetection || false,\n }, instrumentation._diag);\n Object.assign(spanAttributes, instrumentation._headerCapture.server.captureRequestHeaders(header => request.headers[header]));\n const spanOptions = {\n kind: api_1.SpanKind.SERVER,\n attributes: spanAttributes,\n };\n const startTime = (0, core_1.hrTime)();\n const oldMetricAttributes = (0, utils_1.getIncomingRequestMetricAttributes)(spanAttributes);\n // request method and url.scheme are both required span attributes\n const stableMetricAttributes = {\n [semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD]: spanAttributes[semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD],\n [semantic_conventions_1.ATTR_URL_SCHEME]: spanAttributes[semantic_conventions_1.ATTR_URL_SCHEME],\n };\n // recommended if and only if one was sent, same as span recommendation\n if (spanAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION]) {\n stableMetricAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION] =\n spanAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION];\n }\n const ctx = api_1.propagation.extract(api_1.ROOT_CONTEXT, headers);\n const span = instrumentation._startHttpSpan(method, spanOptions, ctx);\n const rpcMetadata = {\n type: core_1.RPCType.HTTP,\n span,\n };\n return api_1.context.with((0, core_1.setRPCMetadata)(api_1.trace.setSpan(ctx, span), rpcMetadata), () => {\n api_1.context.bind(api_1.context.active(), request);\n api_1.context.bind(api_1.context.active(), response);\n if (instrumentation.getConfig().requestHook) {\n instrumentation._callRequestHook(span, request);\n }\n if (instrumentation.getConfig().responseHook) {\n instrumentation._callResponseHook(span, response);\n }\n // After 'error', no further events other than 'close' should be emitted.\n let hasError = false;\n response.on('close', () => {\n if (hasError) {\n return;\n }\n instrumentation._onServerResponseFinish(request, response, span, oldMetricAttributes, stableMetricAttributes, startTime);\n });\n response.on(events_1.errorMonitor, (err) => {\n hasError = true;\n instrumentation._onServerResponseError(span, oldMetricAttributes, stableMetricAttributes, startTime, err);\n });\n return (0, instrumentation_1.safeExecuteInTheMiddle)(() => original.apply(this, [event, ...args]), error => {\n if (error) {\n instrumentation._onServerResponseError(span, oldMetricAttributes, stableMetricAttributes, startTime, error);\n throw error;\n }\n });\n });\n };\n }\n _outgoingRequestFunction(component, original) {\n const instrumentation = this;\n return function outgoingRequest(options, ...args) {\n if (!(0, utils_1.isValidOptionsType)(options)) {\n return original.apply(this, [options, ...args]);\n }\n const extraOptions = typeof args[0] === 'object' &&\n (typeof options === 'string' || options instanceof url.URL)\n ? args.shift()\n : undefined;\n const { method, invalidUrl, optionsParsed } = (0, utils_1.getRequestInfo)(instrumentation._diag, options, extraOptions);\n if ((0, instrumentation_1.safeExecuteInTheMiddle)(() => instrumentation\n .getConfig()\n .ignoreOutgoingRequestHook?.(optionsParsed), (e) => {\n if (e != null) {\n instrumentation._diag.error('caught ignoreOutgoingRequestHook error: ', e);\n }\n }, true)) {\n return original.apply(this, [optionsParsed, ...args]);\n }\n const { hostname, port } = (0, utils_1.extractHostnameAndPort)(optionsParsed);\n const attributes = (0, utils_1.getOutgoingRequestAttributes)(optionsParsed, {\n component,\n port,\n hostname,\n hookAttributes: instrumentation._callStartSpanHook(optionsParsed, instrumentation.getConfig().startOutgoingSpanHook),\n redactedQueryParams: instrumentation.getConfig().redactedQueryParams, // Added config for adding custom query strings\n }, instrumentation._semconvStability, instrumentation.getConfig().enableSyntheticSourceDetection || false);\n const startTime = (0, core_1.hrTime)();\n const oldMetricAttributes = (0, utils_1.getOutgoingRequestMetricAttributes)(attributes);\n // request method, server address, and server port are both required span attributes\n const stableMetricAttributes = {\n [semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD]: attributes[semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD],\n [semantic_conventions_1.ATTR_SERVER_ADDRESS]: attributes[semantic_conventions_1.ATTR_SERVER_ADDRESS],\n [semantic_conventions_1.ATTR_SERVER_PORT]: attributes[semantic_conventions_1.ATTR_SERVER_PORT],\n };\n // required if and only if one was sent, same as span requirement\n if (attributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE]) {\n stableMetricAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE] =\n attributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE];\n }\n // recommended if and only if one was sent, same as span recommendation\n if (attributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION]) {\n stableMetricAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION] =\n attributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION];\n }\n const spanOptions = {\n kind: api_1.SpanKind.CLIENT,\n attributes,\n };\n const span = instrumentation._startHttpSpan(method, spanOptions);\n const parentContext = api_1.context.active();\n const requestContext = api_1.trace.setSpan(parentContext, span);\n if (!optionsParsed.headers) {\n optionsParsed.headers = {};\n }\n else {\n // Make a copy of the headers object to avoid mutating an object the\n // caller might have a reference to.\n optionsParsed.headers = Object.assign({}, optionsParsed.headers);\n }\n api_1.propagation.inject(requestContext, optionsParsed.headers);\n return api_1.context.with(requestContext, () => {\n /*\n * The response callback is registered before ClientRequest is bound,\n * thus it is needed to bind it before the function call.\n */\n const cb = args[args.length - 1];\n if (typeof cb === 'function') {\n args[args.length - 1] = api_1.context.bind(parentContext, cb);\n }\n const request = (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n if (invalidUrl) {\n // we know that the url is invalid, there's no point in injecting context as it will fail validation.\n // Passing in what the user provided will give the user an error that matches what they'd see without\n // the instrumentation.\n return original.apply(this, [options, ...args]);\n }\n else {\n return original.apply(this, [optionsParsed, ...args]);\n }\n }, error => {\n if (error) {\n instrumentation._onOutgoingRequestError(span, oldMetricAttributes, stableMetricAttributes, startTime, error);\n throw error;\n }\n });\n instrumentation._diag.debug(`${component} instrumentation outgoingRequest`);\n api_1.context.bind(parentContext, request);\n return instrumentation._traceClientRequest(request, span, startTime, oldMetricAttributes, stableMetricAttributes);\n });\n };\n }\n _onServerResponseFinish(request, response, span, oldMetricAttributes, stableMetricAttributes, startTime) {\n const attributes = (0, utils_1.getIncomingRequestAttributesOnResponse)(request, response, this._semconvStability);\n oldMetricAttributes = Object.assign(oldMetricAttributes, (0, utils_1.getIncomingRequestMetricAttributesOnResponse)(attributes));\n stableMetricAttributes = Object.assign(stableMetricAttributes, (0, utils_1.getIncomingStableRequestMetricAttributesOnResponse)(attributes));\n span.setAttributes(this._headerCapture.server.captureResponseHeaders(header => response.getHeader(header)));\n span.setAttributes(attributes).setStatus({\n code: (0, utils_1.parseResponseStatus)(api_1.SpanKind.SERVER, response.statusCode),\n });\n const route = attributes[semantic_conventions_1.ATTR_HTTP_ROUTE];\n if (route) {\n span.updateName(`${request.method || 'GET'} ${route}`);\n }\n if (this.getConfig().applyCustomAttributesOnSpan) {\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => this.getConfig().applyCustomAttributesOnSpan(span, request, response), () => { }, true);\n }\n this._closeHttpSpan(span, api_1.SpanKind.SERVER, startTime, oldMetricAttributes, stableMetricAttributes);\n }\n _onOutgoingRequestError(span, oldMetricAttributes, stableMetricAttributes, startTime, error) {\n (0, utils_1.setSpanWithError)(span, error, this._semconvStability);\n stableMetricAttributes[semantic_conventions_1.ATTR_ERROR_TYPE] = error.name;\n this._closeHttpSpan(span, api_1.SpanKind.CLIENT, startTime, oldMetricAttributes, stableMetricAttributes);\n }\n _onServerResponseError(span, oldMetricAttributes, stableMetricAttributes, startTime, error) {\n (0, utils_1.setSpanWithError)(span, error, this._semconvStability);\n stableMetricAttributes[semantic_conventions_1.ATTR_ERROR_TYPE] = error.name;\n this._closeHttpSpan(span, api_1.SpanKind.SERVER, startTime, oldMetricAttributes, stableMetricAttributes);\n }\n _startHttpSpan(name, options, ctx = api_1.context.active()) {\n /*\n * If a parent is required but not present, we use a `NoopSpan` to still\n * propagate context without recording it.\n */\n const requireParent = options.kind === api_1.SpanKind.CLIENT\n ? this.getConfig().requireParentforOutgoingSpans\n : this.getConfig().requireParentforIncomingSpans;\n let span;\n const currentSpan = api_1.trace.getSpan(ctx);\n if (requireParent === true &&\n (!currentSpan || !api_1.trace.isSpanContextValid(currentSpan.spanContext()))) {\n span = api_1.trace.wrapSpanContext(api_1.INVALID_SPAN_CONTEXT);\n }\n else if (requireParent === true && currentSpan?.spanContext().isRemote) {\n span = currentSpan;\n }\n else {\n span = this.tracer.startSpan(name, options, ctx);\n }\n this._spanNotEnded.add(span);\n return span;\n }\n _closeHttpSpan(span, spanKind, startTime, oldMetricAttributes, stableMetricAttributes) {\n if (!this._spanNotEnded.has(span)) {\n return;\n }\n span.end();\n this._spanNotEnded.delete(span);\n // Record metrics\n const duration = (0, core_1.hrTimeToMilliseconds)((0, core_1.hrTimeDuration)(startTime, (0, core_1.hrTime)()));\n if (spanKind === api_1.SpanKind.SERVER) {\n this._recordServerDuration(duration, oldMetricAttributes, stableMetricAttributes);\n }\n else if (spanKind === api_1.SpanKind.CLIENT) {\n this._recordClientDuration(duration, oldMetricAttributes, stableMetricAttributes);\n }\n }\n _callResponseHook(span, response) {\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => this.getConfig().responseHook(span, response), () => { }, true);\n }\n _callRequestHook(span, request) {\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => this.getConfig().requestHook(span, request), () => { }, true);\n }\n _callStartSpanHook(request, hookFunc) {\n if (typeof hookFunc === 'function') {\n return (0, instrumentation_1.safeExecuteInTheMiddle)(() => hookFunc(request), () => { }, true);\n }\n }\n _createHeaderCapture(semconvStability) {\n const config = this.getConfig();\n return {\n client: {\n captureRequestHeaders: (0, utils_1.headerCapture)('request', config.headersToSpanAttributes?.client?.requestHeaders ?? [], semconvStability),\n captureResponseHeaders: (0, utils_1.headerCapture)('response', config.headersToSpanAttributes?.client?.responseHeaders ?? [], semconvStability),\n },\n server: {\n captureRequestHeaders: (0, utils_1.headerCapture)('request', config.headersToSpanAttributes?.server?.requestHeaders ?? [], semconvStability),\n captureResponseHeaders: (0, utils_1.headerCapture)('response', config.headersToSpanAttributes?.server?.responseHeaders ?? [], semconvStability),\n },\n };\n }\n}\nexports.HttpInstrumentation = HttpInstrumentation;\n//# sourceMappingURL=http.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpInstrumentation = void 0;\nvar http_1 = require(\"./http\");\nObject.defineProperty(exports, \"HttpInstrumentation\", { enumerable: true, get: function () { return http_1.HttpInstrumentation; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTracingSuppressed = exports.unsuppressTracing = exports.suppressTracing = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst SUPPRESS_TRACING_KEY = (0, api_1.createContextKey)('OpenTelemetry SDK Context Key SUPPRESS_TRACING');\nfunction suppressTracing(context) {\n return context.setValue(SUPPRESS_TRACING_KEY, true);\n}\nexports.suppressTracing = suppressTracing;\nfunction unsuppressTracing(context) {\n return context.deleteValue(SUPPRESS_TRACING_KEY);\n}\nexports.unsuppressTracing = unsuppressTracing;\nfunction isTracingSuppressed(context) {\n return context.getValue(SUPPRESS_TRACING_KEY) === true;\n}\nexports.isTracingSuppressed = isTracingSuppressed;\n//# sourceMappingURL=suppress-tracing.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BAGGAGE_MAX_TOTAL_LENGTH = exports.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS = exports.BAGGAGE_MAX_NAME_VALUE_PAIRS = exports.BAGGAGE_HEADER = exports.BAGGAGE_ITEMS_SEPARATOR = exports.BAGGAGE_PROPERTIES_SEPARATOR = exports.BAGGAGE_KEY_PAIR_SEPARATOR = void 0;\nexports.BAGGAGE_KEY_PAIR_SEPARATOR = '=';\nexports.BAGGAGE_PROPERTIES_SEPARATOR = ';';\nexports.BAGGAGE_ITEMS_SEPARATOR = ',';\n// Name of the http header used to propagate the baggage\nexports.BAGGAGE_HEADER = 'baggage';\n// Maximum number of name-value pairs allowed by w3c spec\nexports.BAGGAGE_MAX_NAME_VALUE_PAIRS = 180;\n// Maximum number of bytes per a single name-value pair allowed by w3c spec\nexports.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS = 4096;\n// Maximum total length of all name-value pairs allowed by w3c spec\nexports.BAGGAGE_MAX_TOTAL_LENGTH = 8192;\n//# sourceMappingURL=constants.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseKeyPairsIntoRecord = exports.parsePairKeyValue = exports.getKeyPairs = exports.serializeKeyPairs = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst constants_1 = require(\"./constants\");\nfunction serializeKeyPairs(keyPairs) {\n return keyPairs.reduce((hValue, current) => {\n const value = `${hValue}${hValue !== '' ? constants_1.BAGGAGE_ITEMS_SEPARATOR : ''}${current}`;\n return value.length > constants_1.BAGGAGE_MAX_TOTAL_LENGTH ? hValue : value;\n }, '');\n}\nexports.serializeKeyPairs = serializeKeyPairs;\nfunction getKeyPairs(baggage) {\n return baggage.getAllEntries().map(([key, value]) => {\n let entry = `${encodeURIComponent(key)}=${encodeURIComponent(value.value)}`;\n // include opaque metadata if provided\n // NOTE: we intentionally don't URI-encode the metadata - that responsibility falls on the metadata implementation\n if (value.metadata !== undefined) {\n entry += constants_1.BAGGAGE_PROPERTIES_SEPARATOR + value.metadata.toString();\n }\n return entry;\n });\n}\nexports.getKeyPairs = getKeyPairs;\nfunction parsePairKeyValue(entry) {\n if (!entry)\n return;\n const metadataSeparatorIndex = entry.indexOf(constants_1.BAGGAGE_PROPERTIES_SEPARATOR);\n const keyPairPart = metadataSeparatorIndex === -1\n ? entry\n : entry.substring(0, metadataSeparatorIndex);\n const separatorIndex = keyPairPart.indexOf(constants_1.BAGGAGE_KEY_PAIR_SEPARATOR);\n if (separatorIndex <= 0)\n return;\n const rawKey = keyPairPart.substring(0, separatorIndex).trim();\n const rawValue = keyPairPart.substring(separatorIndex + 1).trim();\n if (!rawKey || !rawValue)\n return;\n let key;\n let value;\n try {\n key = decodeURIComponent(rawKey);\n value = decodeURIComponent(rawValue);\n }\n catch {\n return;\n }\n let metadata;\n if (metadataSeparatorIndex !== -1 &&\n metadataSeparatorIndex < entry.length - 1) {\n const metadataString = entry.substring(metadataSeparatorIndex + 1);\n metadata = (0, api_1.baggageEntryMetadataFromString)(metadataString);\n }\n return { key, value, metadata };\n}\nexports.parsePairKeyValue = parsePairKeyValue;\n/**\n * Parse a string serialized in the baggage HTTP Format (without metadata):\n * https://github.com/w3c/baggage/blob/master/baggage/HTTP_HEADER_FORMAT.md\n */\nfunction parseKeyPairsIntoRecord(value) {\n const result = {};\n if (typeof value === 'string' && value.length > 0) {\n value.split(constants_1.BAGGAGE_ITEMS_SEPARATOR).forEach(entry => {\n const keyPair = parsePairKeyValue(entry);\n if (keyPair !== undefined && keyPair.value.length > 0) {\n result[keyPair.key] = keyPair.value;\n }\n });\n }\n return result;\n}\nexports.parseKeyPairsIntoRecord = parseKeyPairsIntoRecord;\n//# sourceMappingURL=utils.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.W3CBaggagePropagator = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst suppress_tracing_1 = require(\"../../trace/suppress-tracing\");\nconst constants_1 = require(\"../constants\");\nconst utils_1 = require(\"../utils\");\n/**\n * Propagates {@link Baggage} through Context format propagation.\n *\n * Based on the Baggage specification:\n * https://w3c.github.io/baggage/\n */\nclass W3CBaggagePropagator {\n inject(context, carrier, setter) {\n const baggage = api_1.propagation.getBaggage(context);\n if (!baggage || (0, suppress_tracing_1.isTracingSuppressed)(context))\n return;\n const keyPairs = (0, utils_1.getKeyPairs)(baggage)\n .filter((pair) => {\n return pair.length <= constants_1.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS;\n })\n .slice(0, constants_1.BAGGAGE_MAX_NAME_VALUE_PAIRS);\n const headerValue = (0, utils_1.serializeKeyPairs)(keyPairs);\n if (headerValue.length > 0) {\n setter.set(carrier, constants_1.BAGGAGE_HEADER, headerValue);\n }\n }\n extract(context, carrier, getter) {\n const headerValue = getter.get(carrier, constants_1.BAGGAGE_HEADER);\n const baggageString = Array.isArray(headerValue)\n ? headerValue.join(constants_1.BAGGAGE_ITEMS_SEPARATOR)\n : headerValue;\n if (!baggageString)\n return context;\n const baggage = {};\n if (baggageString.length === 0) {\n return context;\n }\n const pairs = baggageString.split(constants_1.BAGGAGE_ITEMS_SEPARATOR);\n pairs.forEach(entry => {\n const keyPair = (0, utils_1.parsePairKeyValue)(entry);\n if (keyPair) {\n const baggageEntry = { value: keyPair.value };\n if (keyPair.metadata) {\n baggageEntry.metadata = keyPair.metadata;\n }\n baggage[keyPair.key] = baggageEntry;\n }\n });\n if (Object.entries(baggage).length === 0) {\n return context;\n }\n return api_1.propagation.setBaggage(context, api_1.propagation.createBaggage(baggage));\n }\n fields() {\n return [constants_1.BAGGAGE_HEADER];\n }\n}\nexports.W3CBaggagePropagator = W3CBaggagePropagator;\n//# sourceMappingURL=W3CBaggagePropagator.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnchoredClock = void 0;\n/**\n * A utility for returning wall times anchored to a given point in time. Wall time measurements will\n * not be taken from the system, but instead are computed by adding a monotonic clock time\n * to the anchor point.\n *\n * This is needed because the system time can change and result in unexpected situations like\n * spans ending before they are started. Creating an anchored clock for each local root span\n * ensures that span timings and durations are accurate while preventing span times from drifting\n * too far from the system clock.\n *\n * Only creating an anchored clock once per local trace ensures span times are correct relative\n * to each other. For example, a child span will never have a start time before its parent even\n * if the system clock is corrected during the local trace.\n *\n * Heavily inspired by the OTel Java anchored clock\n * https://github.com/open-telemetry/opentelemetry-java/blob/main/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/AnchoredClock.java\n */\nclass AnchoredClock {\n _monotonicClock;\n _epochMillis;\n _performanceMillis;\n /**\n * Create a new AnchoredClock anchored to the current time returned by systemClock.\n *\n * @param systemClock should be a clock that returns the number of milliseconds since January 1 1970 such as Date\n * @param monotonicClock should be a clock that counts milliseconds monotonically such as window.performance or perf_hooks.performance\n */\n constructor(systemClock, monotonicClock) {\n this._monotonicClock = monotonicClock;\n this._epochMillis = systemClock.now();\n this._performanceMillis = monotonicClock.now();\n }\n /**\n * Returns the current time by adding the number of milliseconds since the\n * AnchoredClock was created to the creation epoch time\n */\n now() {\n const delta = this._monotonicClock.now() - this._performanceMillis;\n return this._epochMillis + delta;\n }\n}\nexports.AnchoredClock = AnchoredClock;\n//# sourceMappingURL=anchored-clock.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAttributeValue = exports.isAttributeKey = exports.sanitizeAttributes = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nfunction sanitizeAttributes(attributes) {\n const out = {};\n if (typeof attributes !== 'object' || attributes == null) {\n return out;\n }\n for (const key in attributes) {\n if (!Object.prototype.hasOwnProperty.call(attributes, key)) {\n continue;\n }\n if (!isAttributeKey(key)) {\n api_1.diag.warn(`Invalid attribute key: ${key}`);\n continue;\n }\n const val = attributes[key];\n if (!isAttributeValue(val)) {\n api_1.diag.warn(`Invalid attribute value set for key: ${key}`);\n continue;\n }\n if (Array.isArray(val)) {\n out[key] = val.slice();\n }\n else {\n out[key] = val;\n }\n }\n return out;\n}\nexports.sanitizeAttributes = sanitizeAttributes;\nfunction isAttributeKey(key) {\n return typeof key === 'string' && key !== '';\n}\nexports.isAttributeKey = isAttributeKey;\nfunction isAttributeValue(val) {\n if (val == null) {\n return true;\n }\n if (Array.isArray(val)) {\n return isHomogeneousAttributeValueArray(val);\n }\n return isValidPrimitiveAttributeValueType(typeof val);\n}\nexports.isAttributeValue = isAttributeValue;\nfunction isHomogeneousAttributeValueArray(arr) {\n let type;\n for (const element of arr) {\n // null/undefined elements are allowed\n if (element == null)\n continue;\n const elementType = typeof element;\n if (elementType === type) {\n continue;\n }\n if (!type) {\n if (isValidPrimitiveAttributeValueType(elementType)) {\n type = elementType;\n continue;\n }\n // encountered an invalid primitive\n return false;\n }\n return false;\n }\n return true;\n}\nfunction isValidPrimitiveAttributeValueType(valType) {\n switch (valType) {\n case 'number':\n case 'boolean':\n case 'string':\n return true;\n }\n return false;\n}\n//# sourceMappingURL=attributes.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loggingErrorHandler = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\n/**\n * Returns a function that logs an error using the provided logger, or a\n * console logger if one was not provided.\n */\nfunction loggingErrorHandler() {\n return (ex) => {\n api_1.diag.error(stringifyException(ex));\n };\n}\nexports.loggingErrorHandler = loggingErrorHandler;\n/**\n * Converts an exception into a string representation\n * @param {Exception} ex\n */\nfunction stringifyException(ex) {\n if (typeof ex === 'string') {\n return ex;\n }\n else {\n return JSON.stringify(flattenException(ex));\n }\n}\n/**\n * Flattens an exception into key-value pairs by traversing the prototype chain\n * and coercing values to strings. Duplicate properties will not be overwritten;\n * the first insert wins.\n */\nfunction flattenException(ex) {\n const result = {};\n let current = ex;\n while (current !== null) {\n Object.getOwnPropertyNames(current).forEach(propertyName => {\n if (result[propertyName])\n return;\n const value = current[propertyName];\n if (value) {\n result[propertyName] = String(value);\n }\n });\n current = Object.getPrototypeOf(current);\n }\n return result;\n}\n//# sourceMappingURL=logging-error-handler.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.globalErrorHandler = exports.setGlobalErrorHandler = void 0;\nconst logging_error_handler_1 = require(\"./logging-error-handler\");\n/** The global error handler delegate */\nlet delegateHandler = (0, logging_error_handler_1.loggingErrorHandler)();\n/**\n * Set the global error handler\n * @param {ErrorHandler} handler\n */\nfunction setGlobalErrorHandler(handler) {\n delegateHandler = handler;\n}\nexports.setGlobalErrorHandler = setGlobalErrorHandler;\n/**\n * Return the global error handler\n * @param {Exception} ex\n */\nfunction globalErrorHandler(ex) {\n try {\n delegateHandler(ex);\n }\n catch { } // eslint-disable-line no-empty\n}\nexports.globalErrorHandler = globalErrorHandler;\n//# sourceMappingURL=global-error-handler.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getStringListFromEnv = exports.getBooleanFromEnv = exports.getStringFromEnv = exports.getNumberFromEnv = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst util_1 = require(\"util\");\n/**\n * Retrieves a number from an environment variable.\n * - Returns `undefined` if the environment variable is empty, unset, contains only whitespace, or is not a number.\n * - Returns a number in all other cases.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {number | undefined} - The number value or `undefined`.\n */\nfunction getNumberFromEnv(key) {\n const raw = process.env[key];\n if (raw == null || raw.trim() === '') {\n return undefined;\n }\n const value = Number(raw);\n if (isNaN(value)) {\n api_1.diag.warn(`Unknown value ${(0, util_1.inspect)(raw)} for ${key}, expected a number, using defaults`);\n return undefined;\n }\n return value;\n}\nexports.getNumberFromEnv = getNumberFromEnv;\n/**\n * Retrieves a string from an environment variable.\n * - Returns `undefined` if the environment variable is empty, unset, or contains only whitespace.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {string | undefined} - The string value or `undefined`.\n */\nfunction getStringFromEnv(key) {\n const raw = process.env[key];\n if (raw == null || raw.trim() === '') {\n return undefined;\n }\n return raw;\n}\nexports.getStringFromEnv = getStringFromEnv;\n/**\n * Retrieves a boolean value from an environment variable.\n * - Trims leading and trailing whitespace and ignores casing.\n * - Returns `false` if the environment variable is empty, unset, or contains only whitespace.\n * - Returns `false` for strings that cannot be mapped to a boolean.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {boolean} - The boolean value or `false` if the environment variable is unset empty, unset, or contains only whitespace.\n */\nfunction getBooleanFromEnv(key) {\n const raw = process.env[key]?.trim().toLowerCase();\n if (raw == null || raw === '') {\n // NOTE: falling back to `false` instead of `undefined` as required by the specification.\n // If you have a use-case that requires `undefined`, consider using `getStringFromEnv()` and applying the necessary\n // normalizations in the consuming code.\n return false;\n }\n if (raw === 'true') {\n return true;\n }\n else if (raw === 'false') {\n return false;\n }\n else {\n api_1.diag.warn(`Unknown value ${(0, util_1.inspect)(raw)} for ${key}, expected 'true' or 'false', falling back to 'false' (default)`);\n return false;\n }\n}\nexports.getBooleanFromEnv = getBooleanFromEnv;\n/**\n * Retrieves a list of strings from an environment variable.\n * - Uses ',' as the delimiter.\n * - Trims leading and trailing whitespace from each entry.\n * - Excludes empty entries.\n * - Returns `undefined` if the environment variable is empty or contains only whitespace.\n * - Returns an empty array if all entries are empty or whitespace.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {string[] | undefined} - The list of strings or `undefined`.\n */\nfunction getStringListFromEnv(key) {\n return getStringFromEnv(key)\n ?.split(',')\n .map(v => v.trim())\n .filter(s => s !== '');\n}\nexports.getStringListFromEnv = getStringListFromEnv;\n//# sourceMappingURL=environment.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._globalThis = void 0;\n/**\n * @deprecated Use globalThis directly instead.\n */\nexports._globalThis = globalThis;\n//# sourceMappingURL=globalThis.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.VERSION = '2.6.1';\n//# sourceMappingURL=version.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ATTR_PROCESS_RUNTIME_NAME = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * The name of the runtime of this process.\n *\n * @example OpenJDK Runtime Environment\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_PROCESS_RUNTIME_NAME = 'process.runtime.name';\n//# sourceMappingURL=semconv.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SDK_INFO = void 0;\nconst version_1 = require(\"../../version\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"../../semconv\");\n/** Constants describing the SDK in use */\nexports.SDK_INFO = {\n [semantic_conventions_1.ATTR_TELEMETRY_SDK_NAME]: 'opentelemetry',\n [semconv_1.ATTR_PROCESS_RUNTIME_NAME]: 'node',\n [semantic_conventions_1.ATTR_TELEMETRY_SDK_LANGUAGE]: semantic_conventions_1.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,\n [semantic_conventions_1.ATTR_TELEMETRY_SDK_VERSION]: version_1.VERSION,\n};\n//# sourceMappingURL=sdk-info.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.otperformance = exports.SDK_INFO = exports._globalThis = exports.getStringListFromEnv = exports.getNumberFromEnv = exports.getBooleanFromEnv = exports.getStringFromEnv = void 0;\nvar environment_1 = require(\"./environment\");\nObject.defineProperty(exports, \"getStringFromEnv\", { enumerable: true, get: function () { return environment_1.getStringFromEnv; } });\nObject.defineProperty(exports, \"getBooleanFromEnv\", { enumerable: true, get: function () { return environment_1.getBooleanFromEnv; } });\nObject.defineProperty(exports, \"getNumberFromEnv\", { enumerable: true, get: function () { return environment_1.getNumberFromEnv; } });\nObject.defineProperty(exports, \"getStringListFromEnv\", { enumerable: true, get: function () { return environment_1.getStringListFromEnv; } });\nvar globalThis_1 = require(\"../../common/globalThis\");\nObject.defineProperty(exports, \"_globalThis\", { enumerable: true, get: function () { return globalThis_1._globalThis; } });\nvar sdk_info_1 = require(\"./sdk-info\");\nObject.defineProperty(exports, \"SDK_INFO\", { enumerable: true, get: function () { return sdk_info_1.SDK_INFO; } });\n/**\n * @deprecated Use performance directly.\n */\nexports.otperformance = performance;\n//# sourceMappingURL=index.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getStringListFromEnv = exports.getNumberFromEnv = exports.getStringFromEnv = exports.getBooleanFromEnv = exports.otperformance = exports._globalThis = exports.SDK_INFO = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nvar node_1 = require(\"./node\");\nObject.defineProperty(exports, \"SDK_INFO\", { enumerable: true, get: function () { return node_1.SDK_INFO; } });\nObject.defineProperty(exports, \"_globalThis\", { enumerable: true, get: function () { return node_1._globalThis; } });\nObject.defineProperty(exports, \"otperformance\", { enumerable: true, get: function () { return node_1.otperformance; } });\nObject.defineProperty(exports, \"getBooleanFromEnv\", { enumerable: true, get: function () { return node_1.getBooleanFromEnv; } });\nObject.defineProperty(exports, \"getStringFromEnv\", { enumerable: true, get: function () { return node_1.getStringFromEnv; } });\nObject.defineProperty(exports, \"getNumberFromEnv\", { enumerable: true, get: function () { return node_1.getNumberFromEnv; } });\nObject.defineProperty(exports, \"getStringListFromEnv\", { enumerable: true, get: function () { return node_1.getStringListFromEnv; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.addHrTimes = exports.isTimeInput = exports.isTimeInputHrTime = exports.hrTimeToMicroseconds = exports.hrTimeToMilliseconds = exports.hrTimeToNanoseconds = exports.hrTimeToTimeStamp = exports.hrTimeDuration = exports.timeInputToHrTime = exports.hrTime = exports.getTimeOrigin = exports.millisToHrTime = void 0;\nconst platform_1 = require(\"../platform\");\nconst NANOSECOND_DIGITS = 9;\nconst NANOSECOND_DIGITS_IN_MILLIS = 6;\nconst MILLISECONDS_TO_NANOSECONDS = Math.pow(10, NANOSECOND_DIGITS_IN_MILLIS);\nconst SECOND_TO_NANOSECONDS = Math.pow(10, NANOSECOND_DIGITS);\n/**\n * Converts a number of milliseconds from epoch to HrTime([seconds, remainder in nanoseconds]).\n * @param epochMillis\n */\nfunction millisToHrTime(epochMillis) {\n const epochSeconds = epochMillis / 1000;\n // Decimals only.\n const seconds = Math.trunc(epochSeconds);\n // Round sub-nanosecond accuracy to nanosecond.\n const nanos = Math.round((epochMillis % 1000) * MILLISECONDS_TO_NANOSECONDS);\n return [seconds, nanos];\n}\nexports.millisToHrTime = millisToHrTime;\n/**\n * @deprecated Use `performance.timeOrigin` directly.\n */\nfunction getTimeOrigin() {\n return platform_1.otperformance.timeOrigin;\n}\nexports.getTimeOrigin = getTimeOrigin;\n/**\n * Returns an hrtime calculated via performance component.\n * @param performanceNow\n */\nfunction hrTime(performanceNow) {\n const timeOrigin = millisToHrTime(platform_1.otperformance.timeOrigin);\n const now = millisToHrTime(typeof performanceNow === 'number' ? performanceNow : platform_1.otperformance.now());\n return addHrTimes(timeOrigin, now);\n}\nexports.hrTime = hrTime;\n/**\n *\n * Converts a TimeInput to an HrTime, defaults to _hrtime().\n * @param time\n */\nfunction timeInputToHrTime(time) {\n // process.hrtime\n if (isTimeInputHrTime(time)) {\n return time;\n }\n else if (typeof time === 'number') {\n // Must be a performance.now() if it's smaller than process start time.\n if (time < platform_1.otperformance.timeOrigin) {\n return hrTime(time);\n }\n else {\n // epoch milliseconds or performance.timeOrigin\n return millisToHrTime(time);\n }\n }\n else if (time instanceof Date) {\n return millisToHrTime(time.getTime());\n }\n else {\n throw TypeError('Invalid input type');\n }\n}\nexports.timeInputToHrTime = timeInputToHrTime;\n/**\n * Returns a duration of two hrTime.\n * @param startTime\n * @param endTime\n */\nfunction hrTimeDuration(startTime, endTime) {\n let seconds = endTime[0] - startTime[0];\n let nanos = endTime[1] - startTime[1];\n // overflow\n if (nanos < 0) {\n seconds -= 1;\n // negate\n nanos += SECOND_TO_NANOSECONDS;\n }\n return [seconds, nanos];\n}\nexports.hrTimeDuration = hrTimeDuration;\n/**\n * Convert hrTime to timestamp, for example \"2019-05-14T17:00:00.000123456Z\"\n * @param time\n */\nfunction hrTimeToTimeStamp(time) {\n const precision = NANOSECOND_DIGITS;\n const tmp = `${'0'.repeat(precision)}${time[1]}Z`;\n const nanoString = tmp.substring(tmp.length - precision - 1);\n const date = new Date(time[0] * 1000).toISOString();\n return date.replace('000Z', nanoString);\n}\nexports.hrTimeToTimeStamp = hrTimeToTimeStamp;\n/**\n * Convert hrTime to nanoseconds.\n * @param time\n */\nfunction hrTimeToNanoseconds(time) {\n return time[0] * SECOND_TO_NANOSECONDS + time[1];\n}\nexports.hrTimeToNanoseconds = hrTimeToNanoseconds;\n/**\n * Convert hrTime to milliseconds.\n * @param time\n */\nfunction hrTimeToMilliseconds(time) {\n return time[0] * 1e3 + time[1] / 1e6;\n}\nexports.hrTimeToMilliseconds = hrTimeToMilliseconds;\n/**\n * Convert hrTime to microseconds.\n * @param time\n */\nfunction hrTimeToMicroseconds(time) {\n return time[0] * 1e6 + time[1] / 1e3;\n}\nexports.hrTimeToMicroseconds = hrTimeToMicroseconds;\n/**\n * check if time is HrTime\n * @param value\n */\nfunction isTimeInputHrTime(value) {\n return (Array.isArray(value) &&\n value.length === 2 &&\n typeof value[0] === 'number' &&\n typeof value[1] === 'number');\n}\nexports.isTimeInputHrTime = isTimeInputHrTime;\n/**\n * check if input value is a correct types.TimeInput\n * @param value\n */\nfunction isTimeInput(value) {\n return (isTimeInputHrTime(value) ||\n typeof value === 'number' ||\n value instanceof Date);\n}\nexports.isTimeInput = isTimeInput;\n/**\n * Given 2 HrTime formatted times, return their sum as an HrTime.\n */\nfunction addHrTimes(time1, time2) {\n const out = [time1[0] + time2[0], time1[1] + time2[1]];\n // Nanoseconds\n if (out[1] >= SECOND_TO_NANOSECONDS) {\n out[1] -= SECOND_TO_NANOSECONDS;\n out[0] += 1;\n }\n return out;\n}\nexports.addHrTimes = addHrTimes;\n//# sourceMappingURL=time.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unrefTimer = void 0;\n/**\n * @deprecated please copy this code to your implementation instead, this function will be removed in the next major version of this package.\n * @param timer\n */\nfunction unrefTimer(timer) {\n if (typeof timer !== 'number') {\n timer.unref();\n }\n}\nexports.unrefTimer = unrefTimer;\n//# sourceMappingURL=timer-util.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExportResultCode = void 0;\nvar ExportResultCode;\n(function (ExportResultCode) {\n ExportResultCode[ExportResultCode[\"SUCCESS\"] = 0] = \"SUCCESS\";\n ExportResultCode[ExportResultCode[\"FAILED\"] = 1] = \"FAILED\";\n})(ExportResultCode = exports.ExportResultCode || (exports.ExportResultCode = {}));\n//# sourceMappingURL=ExportResult.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompositePropagator = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\n/** Combines multiple propagators into a single propagator. */\nclass CompositePropagator {\n _propagators;\n _fields;\n /**\n * Construct a composite propagator from a list of propagators.\n *\n * @param [config] Configuration object for composite propagator\n */\n constructor(config = {}) {\n this._propagators = config.propagators ?? [];\n this._fields = Array.from(new Set(this._propagators\n // older propagators may not have fields function, null check to be sure\n .map(p => (typeof p.fields === 'function' ? p.fields() : []))\n .reduce((x, y) => x.concat(y), [])));\n }\n /**\n * Run each of the configured propagators with the given context and carrier.\n * Propagators are run in the order they are configured, so if multiple\n * propagators write the same carrier key, the propagator later in the list\n * will \"win\".\n *\n * @param context Context to inject\n * @param carrier Carrier into which context will be injected\n */\n inject(context, carrier, setter) {\n for (const propagator of this._propagators) {\n try {\n propagator.inject(context, carrier, setter);\n }\n catch (err) {\n api_1.diag.warn(`Failed to inject with ${propagator.constructor.name}. Err: ${err.message}`);\n }\n }\n }\n /**\n * Run each of the configured propagators with the given context and carrier.\n * Propagators are run in the order they are configured, so if multiple\n * propagators write the same context key, the propagator later in the list\n * will \"win\".\n *\n * @param context Context to add values to\n * @param carrier Carrier from which to extract context\n */\n extract(context, carrier, getter) {\n return this._propagators.reduce((ctx, propagator) => {\n try {\n return propagator.extract(ctx, carrier, getter);\n }\n catch (err) {\n api_1.diag.warn(`Failed to extract with ${propagator.constructor.name}. Err: ${err.message}`);\n }\n return ctx;\n }, context);\n }\n fields() {\n // return a new array so our fields cannot be modified\n return this._fields.slice();\n }\n}\nexports.CompositePropagator = CompositePropagator;\n//# sourceMappingURL=composite.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateValue = exports.validateKey = void 0;\nconst VALID_KEY_CHAR_RANGE = '[_0-9a-z-*/]';\nconst VALID_KEY = `[a-z]${VALID_KEY_CHAR_RANGE}{0,255}`;\nconst VALID_VENDOR_KEY = `[a-z0-9]${VALID_KEY_CHAR_RANGE}{0,240}@[a-z]${VALID_KEY_CHAR_RANGE}{0,13}`;\nconst VALID_KEY_REGEX = new RegExp(`^(?:${VALID_KEY}|${VALID_VENDOR_KEY})$`);\nconst VALID_VALUE_BASE_REGEX = /^[ -~]{0,255}[!-~]$/;\nconst INVALID_VALUE_COMMA_EQUAL_REGEX = /,|=/;\n/**\n * Key is opaque string up to 256 characters printable. It MUST begin with a\n * lowercase letter, and can only contain lowercase letters a-z, digits 0-9,\n * underscores _, dashes -, asterisks *, and forward slashes /.\n * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the\n * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key.\n * see https://www.w3.org/TR/trace-context/#key\n */\nfunction validateKey(key) {\n return VALID_KEY_REGEX.test(key);\n}\nexports.validateKey = validateKey;\n/**\n * Value is opaque string up to 256 characters printable ASCII RFC0020\n * characters (i.e., the range 0x20 to 0x7E) except comma , and =.\n */\nfunction validateValue(value) {\n return (VALID_VALUE_BASE_REGEX.test(value) &&\n !INVALID_VALUE_COMMA_EQUAL_REGEX.test(value));\n}\nexports.validateValue = validateValue;\n//# sourceMappingURL=validators.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TraceState = void 0;\nconst validators_1 = require(\"../internal/validators\");\nconst MAX_TRACE_STATE_ITEMS = 32;\nconst MAX_TRACE_STATE_LEN = 512;\nconst LIST_MEMBERS_SEPARATOR = ',';\nconst LIST_MEMBER_KEY_VALUE_SPLITTER = '=';\n/**\n * TraceState must be a class and not a simple object type because of the spec\n * requirement (https://www.w3.org/TR/trace-context/#tracestate-field).\n *\n * Here is the list of allowed mutations:\n * - New key-value pair should be added into the beginning of the list\n * - The value of any key can be updated. Modified keys MUST be moved to the\n * beginning of the list.\n */\nclass TraceState {\n _internalState = new Map();\n constructor(rawTraceState) {\n if (rawTraceState)\n this._parse(rawTraceState);\n }\n set(key, value) {\n // TODO: Benchmark the different approaches(map vs list) and\n // use the faster one.\n const traceState = this._clone();\n if (traceState._internalState.has(key)) {\n traceState._internalState.delete(key);\n }\n traceState._internalState.set(key, value);\n return traceState;\n }\n unset(key) {\n const traceState = this._clone();\n traceState._internalState.delete(key);\n return traceState;\n }\n get(key) {\n return this._internalState.get(key);\n }\n serialize() {\n return this._keys()\n .reduce((agg, key) => {\n agg.push(key + LIST_MEMBER_KEY_VALUE_SPLITTER + this.get(key));\n return agg;\n }, [])\n .join(LIST_MEMBERS_SEPARATOR);\n }\n _parse(rawTraceState) {\n if (rawTraceState.length > MAX_TRACE_STATE_LEN)\n return;\n this._internalState = rawTraceState\n .split(LIST_MEMBERS_SEPARATOR)\n .reverse() // Store in reverse so new keys (.set(...)) will be placed at the beginning\n .reduce((agg, part) => {\n const listMember = part.trim(); // Optional Whitespace (OWS) handling\n const i = listMember.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER);\n if (i !== -1) {\n const key = listMember.slice(0, i);\n const value = listMember.slice(i + 1, part.length);\n if ((0, validators_1.validateKey)(key) && (0, validators_1.validateValue)(value)) {\n agg.set(key, value);\n }\n else {\n // TODO: Consider to add warning log\n }\n }\n return agg;\n }, new Map());\n // Because of the reverse() requirement, trunc must be done after map is created\n if (this._internalState.size > MAX_TRACE_STATE_ITEMS) {\n this._internalState = new Map(Array.from(this._internalState.entries())\n .reverse() // Use reverse same as original tracestate parse chain\n .slice(0, MAX_TRACE_STATE_ITEMS));\n }\n }\n _keys() {\n return Array.from(this._internalState.keys()).reverse();\n }\n _clone() {\n const traceState = new TraceState();\n traceState._internalState = new Map(this._internalState);\n return traceState;\n }\n}\nexports.TraceState = TraceState;\n//# sourceMappingURL=TraceState.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.W3CTraceContextPropagator = exports.parseTraceParent = exports.TRACE_STATE_HEADER = exports.TRACE_PARENT_HEADER = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst suppress_tracing_1 = require(\"./suppress-tracing\");\nconst TraceState_1 = require(\"./TraceState\");\nexports.TRACE_PARENT_HEADER = 'traceparent';\nexports.TRACE_STATE_HEADER = 'tracestate';\nconst VERSION = '00';\nconst VERSION_PART = '(?!ff)[\\\\da-f]{2}';\nconst TRACE_ID_PART = '(?![0]{32})[\\\\da-f]{32}';\nconst PARENT_ID_PART = '(?![0]{16})[\\\\da-f]{16}';\nconst FLAGS_PART = '[\\\\da-f]{2}';\nconst TRACE_PARENT_REGEX = new RegExp(`^\\\\s?(${VERSION_PART})-(${TRACE_ID_PART})-(${PARENT_ID_PART})-(${FLAGS_PART})(-.*)?\\\\s?$`);\n/**\n * Parses information from the [traceparent] span tag and converts it into {@link SpanContext}\n * @param traceParent - A meta property that comes from server.\n * It should be dynamically generated server side to have the server's request trace Id,\n * a parent span Id that was set on the server's request span,\n * and the trace flags to indicate the server's sampling decision\n * (01 = sampled, 00 = not sampled).\n * for example: '{version}-{traceId}-{spanId}-{sampleDecision}'\n * For more information see {@link https://www.w3.org/TR/trace-context/}\n */\nfunction parseTraceParent(traceParent) {\n const match = TRACE_PARENT_REGEX.exec(traceParent);\n if (!match)\n return null;\n // According to the specification the implementation should be compatible\n // with future versions. If there are more parts, we only reject it if it's using version 00\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\n if (match[1] === '00' && match[5])\n return null;\n return {\n traceId: match[2],\n spanId: match[3],\n traceFlags: parseInt(match[4], 16),\n };\n}\nexports.parseTraceParent = parseTraceParent;\n/**\n * Propagates {@link SpanContext} through Trace Context format propagation.\n *\n * Based on the Trace Context specification:\n * https://www.w3.org/TR/trace-context/\n */\nclass W3CTraceContextPropagator {\n inject(context, carrier, setter) {\n const spanContext = api_1.trace.getSpanContext(context);\n if (!spanContext ||\n (0, suppress_tracing_1.isTracingSuppressed)(context) ||\n !(0, api_1.isSpanContextValid)(spanContext))\n return;\n const traceParent = `${VERSION}-${spanContext.traceId}-${spanContext.spanId}-0${Number(spanContext.traceFlags || api_1.TraceFlags.NONE).toString(16)}`;\n setter.set(carrier, exports.TRACE_PARENT_HEADER, traceParent);\n if (spanContext.traceState) {\n setter.set(carrier, exports.TRACE_STATE_HEADER, spanContext.traceState.serialize());\n }\n }\n extract(context, carrier, getter) {\n const traceParentHeader = getter.get(carrier, exports.TRACE_PARENT_HEADER);\n if (!traceParentHeader)\n return context;\n const traceParent = Array.isArray(traceParentHeader)\n ? traceParentHeader[0]\n : traceParentHeader;\n if (typeof traceParent !== 'string')\n return context;\n const spanContext = parseTraceParent(traceParent);\n if (!spanContext)\n return context;\n spanContext.isRemote = true;\n const traceStateHeader = getter.get(carrier, exports.TRACE_STATE_HEADER);\n if (traceStateHeader) {\n // If more than one `tracestate` header is found, we merge them into a\n // single header.\n const state = Array.isArray(traceStateHeader)\n ? traceStateHeader.join(',')\n : traceStateHeader;\n spanContext.traceState = new TraceState_1.TraceState(typeof state === 'string' ? state : undefined);\n }\n return api_1.trace.setSpanContext(context, spanContext);\n }\n fields() {\n return [exports.TRACE_PARENT_HEADER, exports.TRACE_STATE_HEADER];\n }\n}\nexports.W3CTraceContextPropagator = W3CTraceContextPropagator;\n//# sourceMappingURL=W3CTraceContextPropagator.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRPCMetadata = exports.deleteRPCMetadata = exports.setRPCMetadata = exports.RPCType = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst RPC_METADATA_KEY = (0, api_1.createContextKey)('OpenTelemetry SDK Context Key RPC_METADATA');\nvar RPCType;\n(function (RPCType) {\n RPCType[\"HTTP\"] = \"http\";\n})(RPCType = exports.RPCType || (exports.RPCType = {}));\nfunction setRPCMetadata(context, meta) {\n return context.setValue(RPC_METADATA_KEY, meta);\n}\nexports.setRPCMetadata = setRPCMetadata;\nfunction deleteRPCMetadata(context) {\n return context.deleteValue(RPC_METADATA_KEY);\n}\nexports.deleteRPCMetadata = deleteRPCMetadata;\nfunction getRPCMetadata(context) {\n return context.getValue(RPC_METADATA_KEY);\n}\nexports.getRPCMetadata = getRPCMetadata;\n//# sourceMappingURL=rpc-metadata.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isPlainObject = void 0;\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * based on lodash in order to support esm builds without esModuleInterop.\n * lodash is using MIT License.\n **/\nconst objectTag = '[object Object]';\nconst nullTag = '[object Null]';\nconst undefinedTag = '[object Undefined]';\nconst funcProto = Function.prototype;\nconst funcToString = funcProto.toString;\nconst objectCtorString = funcToString.call(Object);\nconst getPrototypeOf = Object.getPrototypeOf;\nconst objectProto = Object.prototype;\nconst hasOwnProperty = objectProto.hasOwnProperty;\nconst symToStringTag = Symbol ? Symbol.toStringTag : undefined;\nconst nativeObjectToString = objectProto.toString;\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) !== objectTag) {\n return false;\n }\n const proto = getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n const Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor &&\n funcToString.call(Ctor) === objectCtorString);\n}\nexports.isPlainObject = isPlainObject;\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value)\n ? getRawTag(value)\n : objectToString(value);\n}\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n const isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];\n let unmasked = false;\n try {\n value[symToStringTag] = undefined;\n unmasked = true;\n }\n catch {\n // silence\n }\n const result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n }\n else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n//# sourceMappingURL=lodash.merge.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.merge = void 0;\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst lodash_merge_1 = require(\"./lodash.merge\");\nconst MAX_LEVEL = 20;\n/**\n * Merges objects together\n * @param args - objects / values to be merged\n */\nfunction merge(...args) {\n let result = args.shift();\n const objects = new WeakMap();\n while (args.length > 0) {\n result = mergeTwoObjects(result, args.shift(), 0, objects);\n }\n return result;\n}\nexports.merge = merge;\nfunction takeValue(value) {\n if (isArray(value)) {\n return value.slice();\n }\n return value;\n}\n/**\n * Merges two objects\n * @param one - first object\n * @param two - second object\n * @param level - current deep level\n * @param objects - objects holder that has been already referenced - to prevent\n * cyclic dependency\n */\nfunction mergeTwoObjects(one, two, level = 0, objects) {\n let result;\n if (level > MAX_LEVEL) {\n return undefined;\n }\n level++;\n if (isPrimitive(one) || isPrimitive(two) || isFunction(two)) {\n result = takeValue(two);\n }\n else if (isArray(one)) {\n result = one.slice();\n if (isArray(two)) {\n for (let i = 0, j = two.length; i < j; i++) {\n result.push(takeValue(two[i]));\n }\n }\n else if (isObject(two)) {\n const keys = Object.keys(two);\n for (let i = 0, j = keys.length; i < j; i++) {\n const key = keys[i];\n result[key] = takeValue(two[key]);\n }\n }\n }\n else if (isObject(one)) {\n if (isObject(two)) {\n if (!shouldMerge(one, two)) {\n return two;\n }\n result = Object.assign({}, one);\n const keys = Object.keys(two);\n for (let i = 0, j = keys.length; i < j; i++) {\n const key = keys[i];\n const twoValue = two[key];\n if (isPrimitive(twoValue)) {\n if (typeof twoValue === 'undefined') {\n delete result[key];\n }\n else {\n // result[key] = takeValue(twoValue);\n result[key] = twoValue;\n }\n }\n else {\n const obj1 = result[key];\n const obj2 = twoValue;\n if (wasObjectReferenced(one, key, objects) ||\n wasObjectReferenced(two, key, objects)) {\n delete result[key];\n }\n else {\n if (isObject(obj1) && isObject(obj2)) {\n const arr1 = objects.get(obj1) || [];\n const arr2 = objects.get(obj2) || [];\n arr1.push({ obj: one, key });\n arr2.push({ obj: two, key });\n objects.set(obj1, arr1);\n objects.set(obj2, arr2);\n }\n result[key] = mergeTwoObjects(result[key], twoValue, level, objects);\n }\n }\n }\n }\n else {\n result = two;\n }\n }\n return result;\n}\n/**\n * Function to check if object has been already reference\n * @param obj\n * @param key\n * @param objects\n */\nfunction wasObjectReferenced(obj, key, objects) {\n const arr = objects.get(obj[key]) || [];\n for (let i = 0, j = arr.length; i < j; i++) {\n const info = arr[i];\n if (info.key === key && info.obj === obj) {\n return true;\n }\n }\n return false;\n}\nfunction isArray(value) {\n return Array.isArray(value);\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nfunction isObject(value) {\n return (!isPrimitive(value) &&\n !isArray(value) &&\n !isFunction(value) &&\n typeof value === 'object');\n}\nfunction isPrimitive(value) {\n return (typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n typeof value === 'undefined' ||\n value instanceof Date ||\n value instanceof RegExp ||\n value === null);\n}\nfunction shouldMerge(one, two) {\n if (!(0, lodash_merge_1.isPlainObject)(one) || !(0, lodash_merge_1.isPlainObject)(two)) {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=merge.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callWithTimeout = exports.TimeoutError = void 0;\n/**\n * Error that is thrown on timeouts.\n */\nclass TimeoutError extends Error {\n constructor(message) {\n super(message);\n // manually adjust prototype to retain `instanceof` functionality when targeting ES5, see:\n // https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, TimeoutError.prototype);\n }\n}\nexports.TimeoutError = TimeoutError;\n/**\n * Adds a timeout to a promise and rejects if the specified timeout has elapsed. Also rejects if the specified promise\n * rejects, and resolves if the specified promise resolves.\n *\n *

NOTE: this operation will continue even after it throws a {@link TimeoutError}.\n *\n * @param promise promise to use with timeout.\n * @param timeout the timeout in milliseconds until the returned promise is rejected.\n */\nfunction callWithTimeout(promise, timeout) {\n let timeoutHandle;\n const timeoutPromise = new Promise(function timeoutFunction(_resolve, reject) {\n timeoutHandle = setTimeout(function timeoutHandler() {\n reject(new TimeoutError('Operation timed out.'));\n }, timeout);\n });\n return Promise.race([promise, timeoutPromise]).then(result => {\n clearTimeout(timeoutHandle);\n return result;\n }, reason => {\n clearTimeout(timeoutHandle);\n throw reason;\n });\n}\nexports.callWithTimeout = callWithTimeout;\n//# sourceMappingURL=timeout.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUrlIgnored = exports.urlMatches = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nfunction urlMatches(url, urlToMatch) {\n if (typeof urlToMatch === 'string') {\n return url === urlToMatch;\n }\n else {\n return !!url.match(urlToMatch);\n }\n}\nexports.urlMatches = urlMatches;\n/**\n * Check if {@param url} should be ignored when comparing against {@param ignoredUrls}\n * @param url\n * @param ignoredUrls\n */\nfunction isUrlIgnored(url, ignoredUrls) {\n if (!ignoredUrls) {\n return false;\n }\n for (const ignoreUrl of ignoredUrls) {\n if (urlMatches(url, ignoreUrl)) {\n return true;\n }\n }\n return false;\n}\nexports.isUrlIgnored = isUrlIgnored;\n//# sourceMappingURL=url.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Deferred = void 0;\nclass Deferred {\n _promise;\n _resolve;\n _reject;\n constructor() {\n this._promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n get promise() {\n return this._promise;\n }\n resolve(val) {\n this._resolve(val);\n }\n reject(err) {\n this._reject(err);\n }\n}\nexports.Deferred = Deferred;\n//# sourceMappingURL=promise.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BindOnceFuture = void 0;\nconst promise_1 = require(\"./promise\");\n/**\n * Bind the callback and only invoke the callback once regardless how many times `BindOnceFuture.call` is invoked.\n */\nclass BindOnceFuture {\n _isCalled = false;\n _deferred = new promise_1.Deferred();\n _callback;\n _that;\n constructor(callback, that) {\n this._callback = callback;\n this._that = that;\n }\n get isCalled() {\n return this._isCalled;\n }\n get promise() {\n return this._deferred.promise;\n }\n call(...args) {\n if (!this._isCalled) {\n this._isCalled = true;\n try {\n Promise.resolve(this._callback.call(this._that, ...args)).then(val => this._deferred.resolve(val), err => this._deferred.reject(err));\n }\n catch (err) {\n this._deferred.reject(err);\n }\n }\n return this._deferred.promise;\n }\n}\nexports.BindOnceFuture = BindOnceFuture;\n//# sourceMappingURL=callback.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.diagLogLevelFromString = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst logLevelMap = {\n ALL: api_1.DiagLogLevel.ALL,\n VERBOSE: api_1.DiagLogLevel.VERBOSE,\n DEBUG: api_1.DiagLogLevel.DEBUG,\n INFO: api_1.DiagLogLevel.INFO,\n WARN: api_1.DiagLogLevel.WARN,\n ERROR: api_1.DiagLogLevel.ERROR,\n NONE: api_1.DiagLogLevel.NONE,\n};\n/**\n * Convert a string to a {@link DiagLogLevel}, defaults to {@link DiagLogLevel} if the log level does not exist or undefined if the input is undefined.\n * @param value\n */\nfunction diagLogLevelFromString(value) {\n if (value == null) {\n // don't fall back to default - no value set has different semantics for ús than an incorrect value (do not set vs. fall back to default)\n return undefined;\n }\n const resolvedLogLevel = logLevelMap[value.toUpperCase()];\n if (resolvedLogLevel == null) {\n api_1.diag.warn(`Unknown log level \"${value}\", expected one of ${Object.keys(logLevelMap)}, using default`);\n return api_1.DiagLogLevel.INFO;\n }\n return resolvedLogLevel;\n}\nexports.diagLogLevelFromString = diagLogLevelFromString;\n//# sourceMappingURL=configuration.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._export = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst suppress_tracing_1 = require(\"../trace/suppress-tracing\");\n/**\n * @internal\n * Shared functionality used by Exporters while exporting data, including suppression of Traces.\n */\nfunction _export(exporter, arg) {\n return new Promise(resolve => {\n // prevent downstream exporter calls from generating spans\n api_1.context.with((0, suppress_tracing_1.suppressTracing)(api_1.context.active()), () => {\n exporter.export(arg, resolve);\n });\n });\n}\nexports._export = _export;\n//# sourceMappingURL=exporter.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.internal = exports.diagLogLevelFromString = exports.BindOnceFuture = exports.urlMatches = exports.isUrlIgnored = exports.callWithTimeout = exports.TimeoutError = exports.merge = exports.TraceState = exports.unsuppressTracing = exports.suppressTracing = exports.isTracingSuppressed = exports.setRPCMetadata = exports.getRPCMetadata = exports.deleteRPCMetadata = exports.RPCType = exports.parseTraceParent = exports.W3CTraceContextPropagator = exports.TRACE_STATE_HEADER = exports.TRACE_PARENT_HEADER = exports.CompositePropagator = exports.otperformance = exports.getStringListFromEnv = exports.getNumberFromEnv = exports.getBooleanFromEnv = exports.getStringFromEnv = exports._globalThis = exports.SDK_INFO = exports.parseKeyPairsIntoRecord = exports.ExportResultCode = exports.unrefTimer = exports.timeInputToHrTime = exports.millisToHrTime = exports.isTimeInputHrTime = exports.isTimeInput = exports.hrTimeToTimeStamp = exports.hrTimeToNanoseconds = exports.hrTimeToMilliseconds = exports.hrTimeToMicroseconds = exports.hrTimeDuration = exports.hrTime = exports.getTimeOrigin = exports.addHrTimes = exports.loggingErrorHandler = exports.setGlobalErrorHandler = exports.globalErrorHandler = exports.sanitizeAttributes = exports.isAttributeValue = exports.AnchoredClock = exports.W3CBaggagePropagator = void 0;\nvar W3CBaggagePropagator_1 = require(\"./baggage/propagation/W3CBaggagePropagator\");\nObject.defineProperty(exports, \"W3CBaggagePropagator\", { enumerable: true, get: function () { return W3CBaggagePropagator_1.W3CBaggagePropagator; } });\nvar anchored_clock_1 = require(\"./common/anchored-clock\");\nObject.defineProperty(exports, \"AnchoredClock\", { enumerable: true, get: function () { return anchored_clock_1.AnchoredClock; } });\nvar attributes_1 = require(\"./common/attributes\");\nObject.defineProperty(exports, \"isAttributeValue\", { enumerable: true, get: function () { return attributes_1.isAttributeValue; } });\nObject.defineProperty(exports, \"sanitizeAttributes\", { enumerable: true, get: function () { return attributes_1.sanitizeAttributes; } });\nvar global_error_handler_1 = require(\"./common/global-error-handler\");\nObject.defineProperty(exports, \"globalErrorHandler\", { enumerable: true, get: function () { return global_error_handler_1.globalErrorHandler; } });\nObject.defineProperty(exports, \"setGlobalErrorHandler\", { enumerable: true, get: function () { return global_error_handler_1.setGlobalErrorHandler; } });\nvar logging_error_handler_1 = require(\"./common/logging-error-handler\");\nObject.defineProperty(exports, \"loggingErrorHandler\", { enumerable: true, get: function () { return logging_error_handler_1.loggingErrorHandler; } });\nvar time_1 = require(\"./common/time\");\nObject.defineProperty(exports, \"addHrTimes\", { enumerable: true, get: function () { return time_1.addHrTimes; } });\nObject.defineProperty(exports, \"getTimeOrigin\", { enumerable: true, get: function () { return time_1.getTimeOrigin; } });\nObject.defineProperty(exports, \"hrTime\", { enumerable: true, get: function () { return time_1.hrTime; } });\nObject.defineProperty(exports, \"hrTimeDuration\", { enumerable: true, get: function () { return time_1.hrTimeDuration; } });\nObject.defineProperty(exports, \"hrTimeToMicroseconds\", { enumerable: true, get: function () { return time_1.hrTimeToMicroseconds; } });\nObject.defineProperty(exports, \"hrTimeToMilliseconds\", { enumerable: true, get: function () { return time_1.hrTimeToMilliseconds; } });\nObject.defineProperty(exports, \"hrTimeToNanoseconds\", { enumerable: true, get: function () { return time_1.hrTimeToNanoseconds; } });\nObject.defineProperty(exports, \"hrTimeToTimeStamp\", { enumerable: true, get: function () { return time_1.hrTimeToTimeStamp; } });\nObject.defineProperty(exports, \"isTimeInput\", { enumerable: true, get: function () { return time_1.isTimeInput; } });\nObject.defineProperty(exports, \"isTimeInputHrTime\", { enumerable: true, get: function () { return time_1.isTimeInputHrTime; } });\nObject.defineProperty(exports, \"millisToHrTime\", { enumerable: true, get: function () { return time_1.millisToHrTime; } });\nObject.defineProperty(exports, \"timeInputToHrTime\", { enumerable: true, get: function () { return time_1.timeInputToHrTime; } });\nvar timer_util_1 = require(\"./common/timer-util\");\nObject.defineProperty(exports, \"unrefTimer\", { enumerable: true, get: function () { return timer_util_1.unrefTimer; } });\nvar ExportResult_1 = require(\"./ExportResult\");\nObject.defineProperty(exports, \"ExportResultCode\", { enumerable: true, get: function () { return ExportResult_1.ExportResultCode; } });\nvar utils_1 = require(\"./baggage/utils\");\nObject.defineProperty(exports, \"parseKeyPairsIntoRecord\", { enumerable: true, get: function () { return utils_1.parseKeyPairsIntoRecord; } });\nvar platform_1 = require(\"./platform\");\nObject.defineProperty(exports, \"SDK_INFO\", { enumerable: true, get: function () { return platform_1.SDK_INFO; } });\nObject.defineProperty(exports, \"_globalThis\", { enumerable: true, get: function () { return platform_1._globalThis; } });\nObject.defineProperty(exports, \"getStringFromEnv\", { enumerable: true, get: function () { return platform_1.getStringFromEnv; } });\nObject.defineProperty(exports, \"getBooleanFromEnv\", { enumerable: true, get: function () { return platform_1.getBooleanFromEnv; } });\nObject.defineProperty(exports, \"getNumberFromEnv\", { enumerable: true, get: function () { return platform_1.getNumberFromEnv; } });\nObject.defineProperty(exports, \"getStringListFromEnv\", { enumerable: true, get: function () { return platform_1.getStringListFromEnv; } });\nObject.defineProperty(exports, \"otperformance\", { enumerable: true, get: function () { return platform_1.otperformance; } });\nvar composite_1 = require(\"./propagation/composite\");\nObject.defineProperty(exports, \"CompositePropagator\", { enumerable: true, get: function () { return composite_1.CompositePropagator; } });\nvar W3CTraceContextPropagator_1 = require(\"./trace/W3CTraceContextPropagator\");\nObject.defineProperty(exports, \"TRACE_PARENT_HEADER\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.TRACE_PARENT_HEADER; } });\nObject.defineProperty(exports, \"TRACE_STATE_HEADER\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.TRACE_STATE_HEADER; } });\nObject.defineProperty(exports, \"W3CTraceContextPropagator\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.W3CTraceContextPropagator; } });\nObject.defineProperty(exports, \"parseTraceParent\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.parseTraceParent; } });\nvar rpc_metadata_1 = require(\"./trace/rpc-metadata\");\nObject.defineProperty(exports, \"RPCType\", { enumerable: true, get: function () { return rpc_metadata_1.RPCType; } });\nObject.defineProperty(exports, \"deleteRPCMetadata\", { enumerable: true, get: function () { return rpc_metadata_1.deleteRPCMetadata; } });\nObject.defineProperty(exports, \"getRPCMetadata\", { enumerable: true, get: function () { return rpc_metadata_1.getRPCMetadata; } });\nObject.defineProperty(exports, \"setRPCMetadata\", { enumerable: true, get: function () { return rpc_metadata_1.setRPCMetadata; } });\nvar suppress_tracing_1 = require(\"./trace/suppress-tracing\");\nObject.defineProperty(exports, \"isTracingSuppressed\", { enumerable: true, get: function () { return suppress_tracing_1.isTracingSuppressed; } });\nObject.defineProperty(exports, \"suppressTracing\", { enumerable: true, get: function () { return suppress_tracing_1.suppressTracing; } });\nObject.defineProperty(exports, \"unsuppressTracing\", { enumerable: true, get: function () { return suppress_tracing_1.unsuppressTracing; } });\nvar TraceState_1 = require(\"./trace/TraceState\");\nObject.defineProperty(exports, \"TraceState\", { enumerable: true, get: function () { return TraceState_1.TraceState; } });\nvar merge_1 = require(\"./utils/merge\");\nObject.defineProperty(exports, \"merge\", { enumerable: true, get: function () { return merge_1.merge; } });\nvar timeout_1 = require(\"./utils/timeout\");\nObject.defineProperty(exports, \"TimeoutError\", { enumerable: true, get: function () { return timeout_1.TimeoutError; } });\nObject.defineProperty(exports, \"callWithTimeout\", { enumerable: true, get: function () { return timeout_1.callWithTimeout; } });\nvar url_1 = require(\"./utils/url\");\nObject.defineProperty(exports, \"isUrlIgnored\", { enumerable: true, get: function () { return url_1.isUrlIgnored; } });\nObject.defineProperty(exports, \"urlMatches\", { enumerable: true, get: function () { return url_1.urlMatches; } });\nvar callback_1 = require(\"./utils/callback\");\nObject.defineProperty(exports, \"BindOnceFuture\", { enumerable: true, get: function () { return callback_1.BindOnceFuture; } });\nvar configuration_1 = require(\"./utils/configuration\");\nObject.defineProperty(exports, \"diagLogLevelFromString\", { enumerable: true, get: function () { return configuration_1.diagLogLevelFromString; } });\nconst exporter_1 = require(\"./internal/exporter\");\nexports.internal = {\n _export: exporter_1._export,\n};\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractAsyncHooksContextManager = void 0;\nconst events_1 = require(\"events\");\nconst ADD_LISTENER_METHODS = [\n 'addListener',\n 'on',\n 'once',\n 'prependListener',\n 'prependOnceListener',\n];\nclass AbstractAsyncHooksContextManager {\n /**\n * Binds a the certain context or the active one to the target function and then returns the target\n * @param context A context (span) to be bind to target\n * @param target a function or event emitter. When target or one of its callbacks is called,\n * the provided context will be used as the active context for the duration of the call.\n */\n bind(context, target) {\n if (target instanceof events_1.EventEmitter) {\n return this._bindEventEmitter(context, target);\n }\n if (typeof target === 'function') {\n return this._bindFunction(context, target);\n }\n return target;\n }\n _bindFunction(context, target) {\n const manager = this;\n const contextWrapper = function (...args) {\n return manager.with(context, () => target.apply(this, args));\n };\n Object.defineProperty(contextWrapper, 'length', {\n enumerable: false,\n configurable: true,\n writable: false,\n value: target.length,\n });\n /**\n * It isn't possible to tell Typescript that contextWrapper is the same as T\n * so we forced to cast as any here.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return contextWrapper;\n }\n /**\n * By default, EventEmitter call their callback with their context, which we do\n * not want, instead we will bind a specific context to all callbacks that\n * go through it.\n * @param context the context we want to bind\n * @param ee EventEmitter an instance of EventEmitter to patch\n */\n _bindEventEmitter(context, ee) {\n const map = this._getPatchMap(ee);\n if (map !== undefined)\n return ee;\n this._createPatchMap(ee);\n // patch methods that add a listener to propagate context\n ADD_LISTENER_METHODS.forEach(methodName => {\n if (ee[methodName] === undefined)\n return;\n ee[methodName] = this._patchAddListener(ee, ee[methodName], context);\n });\n // patch methods that remove a listener\n if (typeof ee.removeListener === 'function') {\n ee.removeListener = this._patchRemoveListener(ee, ee.removeListener);\n }\n if (typeof ee.off === 'function') {\n ee.off = this._patchRemoveListener(ee, ee.off);\n }\n // patch method that remove all listeners\n if (typeof ee.removeAllListeners === 'function') {\n ee.removeAllListeners = this._patchRemoveAllListeners(ee, ee.removeAllListeners);\n }\n return ee;\n }\n /**\n * Patch methods that remove a given listener so that we match the \"patched\"\n * version of that listener (the one that propagate context).\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n */\n _patchRemoveListener(ee, original) {\n const contextManager = this;\n return function (event, listener) {\n const events = contextManager._getPatchMap(ee)?.[event];\n if (events === undefined) {\n return original.call(this, event, listener);\n }\n const patchedListener = events.get(listener);\n return original.call(this, event, patchedListener || listener);\n };\n }\n /**\n * Patch methods that remove all listeners so we remove our\n * internal references for a given event.\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n */\n _patchRemoveAllListeners(ee, original) {\n const contextManager = this;\n return function (event) {\n const map = contextManager._getPatchMap(ee);\n if (map !== undefined) {\n if (arguments.length === 0) {\n contextManager._createPatchMap(ee);\n }\n else if (map[event] !== undefined) {\n delete map[event];\n }\n }\n return original.apply(this, arguments);\n };\n }\n /**\n * Patch methods on an event emitter instance that can add listeners so we\n * can force them to propagate a given context.\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n * @param [context] context to propagate when calling listeners\n */\n _patchAddListener(ee, original, context) {\n const contextManager = this;\n return function (event, listener) {\n /**\n * This check is required to prevent double-wrapping the listener.\n * The implementation for ee.once wraps the listener and calls ee.on.\n * Without this check, we would wrap that wrapped listener.\n * This causes an issue because ee.removeListener depends on the onceWrapper\n * to properly remove the listener. If we wrap their wrapper, we break\n * that detection.\n */\n if (contextManager._wrapped) {\n return original.call(this, event, listener);\n }\n let map = contextManager._getPatchMap(ee);\n if (map === undefined) {\n map = contextManager._createPatchMap(ee);\n }\n let listeners = map[event];\n if (listeners === undefined) {\n listeners = new WeakMap();\n map[event] = listeners;\n }\n const patchedListener = contextManager.bind(context, listener);\n // store a weak reference of the user listener to ours\n listeners.set(listener, patchedListener);\n /**\n * See comment at the start of this function for the explanation of this property.\n */\n contextManager._wrapped = true;\n try {\n return original.call(this, event, patchedListener);\n }\n finally {\n contextManager._wrapped = false;\n }\n };\n }\n _createPatchMap(ee) {\n const map = Object.create(null);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ee[this._kOtListeners] = map;\n return map;\n }\n _getPatchMap(ee) {\n return ee[this._kOtListeners];\n }\n _kOtListeners = Symbol('OtListeners');\n _wrapped = false;\n}\nexports.AbstractAsyncHooksContextManager = AbstractAsyncHooksContextManager;\n//# sourceMappingURL=AbstractAsyncHooksContextManager.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncHooksContextManager = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst asyncHooks = require(\"async_hooks\");\nconst AbstractAsyncHooksContextManager_1 = require(\"./AbstractAsyncHooksContextManager\");\n/**\n * @deprecated Use AsyncLocalStorageContextManager instead.\n */\nclass AsyncHooksContextManager extends AbstractAsyncHooksContextManager_1.AbstractAsyncHooksContextManager {\n _asyncHook;\n _contexts = new Map();\n _stack = [];\n constructor() {\n super();\n this._asyncHook = asyncHooks.createHook({\n init: this._init.bind(this),\n before: this._before.bind(this),\n after: this._after.bind(this),\n destroy: this._destroy.bind(this),\n promiseResolve: this._destroy.bind(this),\n });\n }\n active() {\n return this._stack[this._stack.length - 1] ?? api_1.ROOT_CONTEXT;\n }\n with(context, fn, thisArg, ...args) {\n this._enterContext(context);\n try {\n return fn.call(thisArg, ...args);\n }\n finally {\n this._exitContext();\n }\n }\n enable() {\n this._asyncHook.enable();\n return this;\n }\n disable() {\n this._asyncHook.disable();\n this._contexts.clear();\n this._stack = [];\n return this;\n }\n /**\n * Init hook will be called when userland create a async context, setting the\n * context as the current one if it exist.\n * @param uid id of the async context\n * @param type the resource type\n */\n _init(uid, type) {\n // ignore TIMERWRAP as they combine timers with same timeout which can lead to\n // false context propagation. TIMERWRAP has been removed in node 11\n // every timer has it's own `Timeout` resource anyway which is used to propagate\n // context.\n if (type === 'TIMERWRAP')\n return;\n const context = this._stack[this._stack.length - 1];\n if (context !== undefined) {\n this._contexts.set(uid, context);\n }\n }\n /**\n * Destroy hook will be called when a given context is no longer used so we can\n * remove its attached context.\n * @param uid uid of the async context\n */\n _destroy(uid) {\n this._contexts.delete(uid);\n }\n /**\n * Before hook is called just before executing a async context.\n * @param uid uid of the async context\n */\n _before(uid) {\n const context = this._contexts.get(uid);\n if (context !== undefined) {\n this._enterContext(context);\n }\n }\n /**\n * After hook is called just after completing the execution of a async context.\n */\n _after() {\n this._exitContext();\n }\n /**\n * Set the given context as active\n */\n _enterContext(context) {\n this._stack.push(context);\n }\n /**\n * Remove the context at the root of the stack\n */\n _exitContext() {\n this._stack.pop();\n }\n}\nexports.AsyncHooksContextManager = AsyncHooksContextManager;\n//# sourceMappingURL=AsyncHooksContextManager.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncLocalStorageContextManager = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst async_hooks_1 = require(\"async_hooks\");\nconst AbstractAsyncHooksContextManager_1 = require(\"./AbstractAsyncHooksContextManager\");\nclass AsyncLocalStorageContextManager extends AbstractAsyncHooksContextManager_1.AbstractAsyncHooksContextManager {\n _asyncLocalStorage;\n constructor() {\n super();\n this._asyncLocalStorage = new async_hooks_1.AsyncLocalStorage();\n }\n active() {\n return this._asyncLocalStorage.getStore() ?? api_1.ROOT_CONTEXT;\n }\n with(context, fn, thisArg, ...args) {\n const cb = thisArg == null ? fn : fn.bind(thisArg);\n return this._asyncLocalStorage.run(context, cb, ...args);\n }\n enable() {\n return this;\n }\n disable() {\n this._asyncLocalStorage.disable();\n return this;\n }\n}\nexports.AsyncLocalStorageContextManager = AsyncLocalStorageContextManager;\n//# sourceMappingURL=AsyncLocalStorageContextManager.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncLocalStorageContextManager = exports.AsyncHooksContextManager = void 0;\nvar AsyncHooksContextManager_1 = require(\"./AsyncHooksContextManager\");\nObject.defineProperty(exports, \"AsyncHooksContextManager\", { enumerable: true, get: function () { return AsyncHooksContextManager_1.AsyncHooksContextManager; } });\nvar AsyncLocalStorageContextManager_1 = require(\"./AsyncLocalStorageContextManager\");\nObject.defineProperty(exports, \"AsyncLocalStorageContextManager\", { enumerable: true, get: function () { return AsyncLocalStorageContextManager_1.AsyncLocalStorageContextManager; } });\n//# sourceMappingURL=index.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._clearDefaultServiceNameCache = exports.defaultServiceName = void 0;\nlet serviceName;\n/**\n * Returns the default service name for OpenTelemetry resources.\n * In Node.js environments, returns \"unknown_service:\".\n * In browser/edge environments, returns \"unknown_service\".\n */\nfunction defaultServiceName() {\n if (serviceName === undefined) {\n try {\n const argv0 = globalThis.process.argv0;\n serviceName = argv0 ? `unknown_service:${argv0}` : 'unknown_service';\n }\n catch {\n serviceName = 'unknown_service';\n }\n }\n return serviceName;\n}\nexports.defaultServiceName = defaultServiceName;\n/** @internal For testing purposes only */\nfunction _clearDefaultServiceNameCache() {\n serviceName = undefined;\n}\nexports._clearDefaultServiceNameCache = _clearDefaultServiceNameCache;\n//# sourceMappingURL=default-service-name.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isPromiseLike = void 0;\nconst isPromiseLike = (val) => {\n return (val !== null &&\n typeof val === 'object' &&\n typeof val.then === 'function');\n};\nexports.isPromiseLike = isPromiseLike;\n//# sourceMappingURL=utils.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultResource = exports.emptyResource = exports.resourceFromDetectedResource = exports.resourceFromAttributes = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst default_service_name_1 = require(\"./default-service-name\");\nconst utils_1 = require(\"./utils\");\nclass ResourceImpl {\n _rawAttributes;\n _asyncAttributesPending = false;\n _schemaUrl;\n _memoizedAttributes;\n static FromAttributeList(attributes, options) {\n const res = new ResourceImpl({}, options);\n res._rawAttributes = guardedRawAttributes(attributes);\n res._asyncAttributesPending =\n attributes.filter(([_, val]) => (0, utils_1.isPromiseLike)(val)).length > 0;\n return res;\n }\n constructor(\n /**\n * A dictionary of attributes with string keys and values that provide\n * information about the entity as numbers, strings or booleans\n * TODO: Consider to add check/validation on attributes.\n */\n resource, options) {\n const attributes = resource.attributes ?? {};\n this._rawAttributes = Object.entries(attributes).map(([k, v]) => {\n if ((0, utils_1.isPromiseLike)(v)) {\n // side-effect\n this._asyncAttributesPending = true;\n }\n return [k, v];\n });\n this._rawAttributes = guardedRawAttributes(this._rawAttributes);\n this._schemaUrl = validateSchemaUrl(options?.schemaUrl);\n }\n get asyncAttributesPending() {\n return this._asyncAttributesPending;\n }\n async waitForAsyncAttributes() {\n if (!this.asyncAttributesPending) {\n return;\n }\n for (let i = 0; i < this._rawAttributes.length; i++) {\n const [k, v] = this._rawAttributes[i];\n this._rawAttributes[i] = [k, (0, utils_1.isPromiseLike)(v) ? await v : v];\n }\n this._asyncAttributesPending = false;\n }\n get attributes() {\n if (this.asyncAttributesPending) {\n api_1.diag.error('Accessing resource attributes before async attributes settled');\n }\n if (this._memoizedAttributes) {\n return this._memoizedAttributes;\n }\n const attrs = {};\n for (const [k, v] of this._rawAttributes) {\n if ((0, utils_1.isPromiseLike)(v)) {\n api_1.diag.debug(`Unsettled resource attribute ${k} skipped`);\n continue;\n }\n if (v != null) {\n attrs[k] ??= v;\n }\n }\n // only memoize output if all attributes are settled\n if (!this._asyncAttributesPending) {\n this._memoizedAttributes = attrs;\n }\n return attrs;\n }\n getRawAttributes() {\n return this._rawAttributes;\n }\n get schemaUrl() {\n return this._schemaUrl;\n }\n merge(resource) {\n if (resource == null)\n return this;\n // Order is important\n // Spec states incoming attributes override existing attributes\n const mergedSchemaUrl = mergeSchemaUrl(this, resource);\n const mergedOptions = mergedSchemaUrl\n ? { schemaUrl: mergedSchemaUrl }\n : undefined;\n return ResourceImpl.FromAttributeList([...resource.getRawAttributes(), ...this.getRawAttributes()], mergedOptions);\n }\n}\nfunction resourceFromAttributes(attributes, options) {\n return ResourceImpl.FromAttributeList(Object.entries(attributes), options);\n}\nexports.resourceFromAttributes = resourceFromAttributes;\nfunction resourceFromDetectedResource(detectedResource, options) {\n return new ResourceImpl(detectedResource, options);\n}\nexports.resourceFromDetectedResource = resourceFromDetectedResource;\nfunction emptyResource() {\n return resourceFromAttributes({});\n}\nexports.emptyResource = emptyResource;\nfunction defaultResource() {\n return resourceFromAttributes({\n [semantic_conventions_1.ATTR_SERVICE_NAME]: (0, default_service_name_1.defaultServiceName)(),\n [semantic_conventions_1.ATTR_TELEMETRY_SDK_LANGUAGE]: core_1.SDK_INFO[semantic_conventions_1.ATTR_TELEMETRY_SDK_LANGUAGE],\n [semantic_conventions_1.ATTR_TELEMETRY_SDK_NAME]: core_1.SDK_INFO[semantic_conventions_1.ATTR_TELEMETRY_SDK_NAME],\n [semantic_conventions_1.ATTR_TELEMETRY_SDK_VERSION]: core_1.SDK_INFO[semantic_conventions_1.ATTR_TELEMETRY_SDK_VERSION],\n });\n}\nexports.defaultResource = defaultResource;\nfunction guardedRawAttributes(attributes) {\n return attributes.map(([k, v]) => {\n if ((0, utils_1.isPromiseLike)(v)) {\n return [\n k,\n v.catch(err => {\n api_1.diag.debug('promise rejection for resource attribute: %s - %s', k, err);\n return undefined;\n }),\n ];\n }\n return [k, v];\n });\n}\nfunction validateSchemaUrl(schemaUrl) {\n if (typeof schemaUrl === 'string' || schemaUrl === undefined) {\n return schemaUrl;\n }\n api_1.diag.warn('Schema URL must be string or undefined, got %s. Schema URL will be ignored.', schemaUrl);\n return undefined;\n}\nfunction mergeSchemaUrl(old, updating) {\n const oldSchemaUrl = old?.schemaUrl;\n const updatingSchemaUrl = updating?.schemaUrl;\n const isOldEmpty = oldSchemaUrl === undefined || oldSchemaUrl === '';\n const isUpdatingEmpty = updatingSchemaUrl === undefined || updatingSchemaUrl === '';\n if (isOldEmpty) {\n return updatingSchemaUrl;\n }\n if (isUpdatingEmpty) {\n return oldSchemaUrl;\n }\n if (oldSchemaUrl === updatingSchemaUrl) {\n return oldSchemaUrl;\n }\n api_1.diag.warn('Schema URL merge conflict: old resource has \"%s\", updating resource has \"%s\". Resulting resource will have undefined Schema URL.', oldSchemaUrl, updatingSchemaUrl);\n return undefined;\n}\n//# sourceMappingURL=ResourceImpl.js.map", @@ -309,177 +264,6 @@ "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimpleSpanProcessor = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\n/**\n * An implementation of the {@link SpanProcessor} that converts the {@link Span}\n * to {@link ReadableSpan} and passes it to the configured exporter.\n *\n * Only spans that are sampled are converted.\n *\n * NOTE: This {@link SpanProcessor} exports every ended span individually instead of batching spans together, which causes significant performance overhead with most exporters. For production use, please consider using the {@link BatchSpanProcessor} instead.\n */\nclass SimpleSpanProcessor {\n _exporter;\n _shutdownOnce;\n _pendingExports;\n constructor(exporter) {\n this._exporter = exporter;\n this._shutdownOnce = new core_1.BindOnceFuture(this._shutdown, this);\n this._pendingExports = new Set();\n }\n async forceFlush() {\n await Promise.all(Array.from(this._pendingExports));\n if (this._exporter.forceFlush) {\n await this._exporter.forceFlush();\n }\n }\n onStart(_span, _parentContext) { }\n onEnd(span) {\n if (this._shutdownOnce.isCalled) {\n return;\n }\n if ((span.spanContext().traceFlags & api_1.TraceFlags.SAMPLED) === 0) {\n return;\n }\n const pendingExport = this._doExport(span).catch(err => (0, core_1.globalErrorHandler)(err));\n // Enqueue this export to the pending list so it can be flushed by the user.\n this._pendingExports.add(pendingExport);\n void pendingExport.finally(() => this._pendingExports.delete(pendingExport));\n }\n async _doExport(span) {\n if (span.resource.asyncAttributesPending) {\n // Ensure resource is fully resolved before exporting.\n await span.resource.waitForAsyncAttributes?.();\n }\n const result = await core_1.internal._export(this._exporter, [span]);\n if (result.code !== core_1.ExportResultCode.SUCCESS) {\n throw (result.error ??\n new Error(`SimpleSpanProcessor: span export failed (status ${result})`));\n }\n }\n shutdown() {\n return this._shutdownOnce.call();\n }\n _shutdown() {\n return this._exporter.shutdown();\n }\n}\nexports.SimpleSpanProcessor = SimpleSpanProcessor;\n//# sourceMappingURL=SimpleSpanProcessor.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NoopSpanProcessor = void 0;\n/** No-op implementation of SpanProcessor */\nclass NoopSpanProcessor {\n onStart(_span, _context) { }\n onEnd(_span) { }\n shutdown() {\n return Promise.resolve();\n }\n forceFlush() {\n return Promise.resolve();\n }\n}\nexports.NoopSpanProcessor = NoopSpanProcessor;\n//# sourceMappingURL=NoopSpanProcessor.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SamplingDecision = exports.TraceIdRatioBasedSampler = exports.ParentBasedSampler = exports.AlwaysOnSampler = exports.AlwaysOffSampler = exports.NoopSpanProcessor = exports.SimpleSpanProcessor = exports.InMemorySpanExporter = exports.ConsoleSpanExporter = exports.RandomIdGenerator = exports.BatchSpanProcessor = exports.BasicTracerProvider = void 0;\nvar BasicTracerProvider_1 = require(\"./BasicTracerProvider\");\nObject.defineProperty(exports, \"BasicTracerProvider\", { enumerable: true, get: function () { return BasicTracerProvider_1.BasicTracerProvider; } });\nvar platform_1 = require(\"./platform\");\nObject.defineProperty(exports, \"BatchSpanProcessor\", { enumerable: true, get: function () { return platform_1.BatchSpanProcessor; } });\nObject.defineProperty(exports, \"RandomIdGenerator\", { enumerable: true, get: function () { return platform_1.RandomIdGenerator; } });\nvar ConsoleSpanExporter_1 = require(\"./export/ConsoleSpanExporter\");\nObject.defineProperty(exports, \"ConsoleSpanExporter\", { enumerable: true, get: function () { return ConsoleSpanExporter_1.ConsoleSpanExporter; } });\nvar InMemorySpanExporter_1 = require(\"./export/InMemorySpanExporter\");\nObject.defineProperty(exports, \"InMemorySpanExporter\", { enumerable: true, get: function () { return InMemorySpanExporter_1.InMemorySpanExporter; } });\nvar SimpleSpanProcessor_1 = require(\"./export/SimpleSpanProcessor\");\nObject.defineProperty(exports, \"SimpleSpanProcessor\", { enumerable: true, get: function () { return SimpleSpanProcessor_1.SimpleSpanProcessor; } });\nvar NoopSpanProcessor_1 = require(\"./export/NoopSpanProcessor\");\nObject.defineProperty(exports, \"NoopSpanProcessor\", { enumerable: true, get: function () { return NoopSpanProcessor_1.NoopSpanProcessor; } });\nvar AlwaysOffSampler_1 = require(\"./sampler/AlwaysOffSampler\");\nObject.defineProperty(exports, \"AlwaysOffSampler\", { enumerable: true, get: function () { return AlwaysOffSampler_1.AlwaysOffSampler; } });\nvar AlwaysOnSampler_1 = require(\"./sampler/AlwaysOnSampler\");\nObject.defineProperty(exports, \"AlwaysOnSampler\", { enumerable: true, get: function () { return AlwaysOnSampler_1.AlwaysOnSampler; } });\nvar ParentBasedSampler_1 = require(\"./sampler/ParentBasedSampler\");\nObject.defineProperty(exports, \"ParentBasedSampler\", { enumerable: true, get: function () { return ParentBasedSampler_1.ParentBasedSampler; } });\nvar TraceIdRatioBasedSampler_1 = require(\"./sampler/TraceIdRatioBasedSampler\");\nObject.defineProperty(exports, \"TraceIdRatioBasedSampler\", { enumerable: true, get: function () { return TraceIdRatioBasedSampler_1.TraceIdRatioBasedSampler; } });\nvar Sampler_1 = require(\"./Sampler\");\nObject.defineProperty(exports, \"SamplingDecision\", { enumerable: true, get: function () { return Sampler_1.SamplingDecision; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.23.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-undici';\n//# sourceMappingURL=version.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UndiciInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst diagch = require(\"diagnostics_channel\");\nconst url_1 = require(\"url\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\n// A combination of https://github.com/elastic/apm-agent-nodejs and\n// https://github.com/gadget-inc/opentelemetry-instrumentations/blob/main/packages/opentelemetry-instrumentation-undici/src/index.ts\nclass UndiciInstrumentation extends instrumentation_1.InstrumentationBase {\n _recordFromReq = new WeakMap();\n constructor(config = {}) {\n super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n }\n // No need to instrument files/modules\n init() {\n return undefined;\n }\n disable() {\n super.disable();\n this._channelSubs.forEach(sub => sub.unsubscribe());\n this._channelSubs.length = 0;\n }\n enable() {\n // \"enabled\" handling is currently a bit messy with InstrumentationBase.\n // If constructed with `{enabled: false}`, this `.enable()` is still called,\n // and `this.getConfig().enabled !== this.isEnabled()`, creating confusion.\n //\n // For now, this class will setup for instrumenting if `.enable()` is\n // called, but use `this.getConfig().enabled` to determine if\n // instrumentation should be generated. This covers the more likely common\n // case of config being given a construction time, rather than later via\n // `instance.enable()`, `.disable()`, or `.setConfig()` calls.\n super.enable();\n // This method is called by the super-class constructor before ours is\n // called. So we need to ensure the property is initalized.\n this._channelSubs = this._channelSubs || [];\n // Avoid to duplicate subscriptions\n if (this._channelSubs.length > 0) {\n return;\n }\n this.subscribeToChannel('undici:request:create', this.onRequestCreated.bind(this));\n this.subscribeToChannel('undici:client:sendHeaders', this.onRequestHeaders.bind(this));\n this.subscribeToChannel('undici:request:headers', this.onResponseHeaders.bind(this));\n this.subscribeToChannel('undici:request:trailers', this.onDone.bind(this));\n this.subscribeToChannel('undici:request:error', this.onError.bind(this));\n }\n _updateMetricInstruments() {\n this._httpClientDurationHistogram = this.meter.createHistogram(semantic_conventions_1.METRIC_HTTP_CLIENT_REQUEST_DURATION, {\n description: 'Measures the duration of outbound HTTP requests.',\n unit: 's',\n valueType: api_1.ValueType.DOUBLE,\n advice: {\n explicitBucketBoundaries: [\n 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5,\n 7.5, 10,\n ],\n },\n });\n }\n subscribeToChannel(diagnosticChannel, onMessage) {\n // `diagnostics_channel` had a ref counting bug until v18.19.0.\n // https://github.com/nodejs/node/pull/47520\n const [major, minor] = process.version\n .replace('v', '')\n .split('.')\n .map(n => Number(n));\n const useNewSubscribe = major > 18 || (major === 18 && minor >= 19);\n let unsubscribe;\n if (useNewSubscribe) {\n diagch.subscribe?.(diagnosticChannel, onMessage);\n unsubscribe = () => diagch.unsubscribe?.(diagnosticChannel, onMessage);\n }\n else {\n const channel = diagch.channel(diagnosticChannel);\n channel.subscribe(onMessage);\n unsubscribe = () => channel.unsubscribe(onMessage);\n }\n this._channelSubs.push({\n name: diagnosticChannel,\n unsubscribe,\n });\n }\n parseRequestHeaders(request) {\n const result = new Map();\n if (Array.isArray(request.headers)) {\n // headers are an array [k1, v2, k2, v2] (undici v6+)\n // values could be string or a string[] for multiple values\n for (let i = 0; i < request.headers.length; i += 2) {\n const key = request.headers[i];\n const value = request.headers[i + 1];\n // Key should always be a string, but the types don't know that, and let's be safe\n if (typeof key === 'string') {\n result.set(key.toLowerCase(), value);\n }\n }\n }\n else if (typeof request.headers === 'string') {\n // headers are a raw string (undici v5)\n // headers could be repeated in several lines for multiple values\n const headers = request.headers.split('\\r\\n');\n for (const line of headers) {\n if (!line) {\n continue;\n }\n const colonIndex = line.indexOf(':');\n if (colonIndex === -1) {\n // Invalid header? Probably this can't happen, but again let's be safe.\n continue;\n }\n const key = line.substring(0, colonIndex).toLowerCase();\n const value = line.substring(colonIndex + 1).trim();\n const allValues = result.get(key);\n if (allValues && Array.isArray(allValues)) {\n allValues.push(value);\n }\n else if (allValues) {\n result.set(key, [allValues, value]);\n }\n else {\n result.set(key, value);\n }\n }\n }\n return result;\n }\n // This is the 1st message we receive for each request (fired after request creation). Here we will\n // create the span and populate some atttributes, then link the span to the request for further\n // span processing\n onRequestCreated({ request }) {\n // Ignore if:\n // - instrumentation is disabled\n // - ignored by config\n // - method is 'CONNECT'\n const config = this.getConfig();\n const enabled = config.enabled !== false;\n const shouldIgnoreReq = (0, instrumentation_1.safeExecuteInTheMiddle)(() => !enabled ||\n request.method === 'CONNECT' ||\n config.ignoreRequestHook?.(request), e => e && this._diag.error('caught ignoreRequestHook error: ', e), true);\n if (shouldIgnoreReq) {\n return;\n }\n const startTime = (0, core_1.hrTime)();\n let requestUrl;\n try {\n requestUrl = new url_1.URL(request.path, request.origin);\n }\n catch (err) {\n this._diag.warn('could not determine url.full:', err);\n // Skip instrumenting this request.\n return;\n }\n const urlScheme = requestUrl.protocol.replace(':', '');\n const requestMethod = this.getRequestMethod(request.method);\n const attributes = {\n [semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD]: requestMethod,\n [semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]: request.method,\n [semantic_conventions_1.ATTR_URL_FULL]: requestUrl.toString(),\n [semantic_conventions_1.ATTR_URL_PATH]: requestUrl.pathname,\n [semantic_conventions_1.ATTR_URL_QUERY]: requestUrl.search,\n [semantic_conventions_1.ATTR_URL_SCHEME]: urlScheme,\n };\n const schemePorts = { https: '443', http: '80' };\n const serverAddress = requestUrl.hostname;\n const serverPort = requestUrl.port || schemePorts[urlScheme];\n attributes[semantic_conventions_1.ATTR_SERVER_ADDRESS] = serverAddress;\n if (serverPort && !isNaN(Number(serverPort))) {\n attributes[semantic_conventions_1.ATTR_SERVER_PORT] = Number(serverPort);\n }\n // Get user agent from headers\n const headersMap = this.parseRequestHeaders(request);\n const userAgentValues = headersMap.get('user-agent');\n if (userAgentValues) {\n // NOTE: having multiple user agents is not expected so\n // we're going to take last one like `curl` does\n // ref: https://curl.se/docs/manpage.html#-A\n const userAgent = Array.isArray(userAgentValues)\n ? userAgentValues[userAgentValues.length - 1]\n : userAgentValues;\n attributes[semantic_conventions_1.ATTR_USER_AGENT_ORIGINAL] = userAgent;\n }\n // Get attributes from the hook if present\n const hookAttributes = (0, instrumentation_1.safeExecuteInTheMiddle)(() => config.startSpanHook?.(request), e => e && this._diag.error('caught startSpanHook error: ', e), true);\n if (hookAttributes) {\n Object.entries(hookAttributes).forEach(([key, val]) => {\n attributes[key] = val;\n });\n }\n // Check if parent span is required via config and:\n // - if a parent is required but not present, we use a `NoopSpan` to still\n // propagate context without recording it.\n // - create a span otherwise\n const activeCtx = api_1.context.active();\n const currentSpan = api_1.trace.getSpan(activeCtx);\n let span;\n if (config.requireParentforSpans &&\n (!currentSpan || !api_1.trace.isSpanContextValid(currentSpan.spanContext()))) {\n span = api_1.trace.wrapSpanContext(api_1.INVALID_SPAN_CONTEXT);\n }\n else {\n span = this.tracer.startSpan(requestMethod === '_OTHER' ? 'HTTP' : requestMethod, {\n kind: api_1.SpanKind.CLIENT,\n attributes: attributes,\n }, activeCtx);\n }\n // Execute the request hook if defined\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => config.requestHook?.(span, request), e => e && this._diag.error('caught requestHook error: ', e), true);\n // Context propagation goes last so no hook can tamper\n // the propagation headers\n const requestContext = api_1.trace.setSpan(api_1.context.active(), span);\n const addedHeaders = {};\n api_1.propagation.inject(requestContext, addedHeaders);\n const headerEntries = Object.entries(addedHeaders);\n for (let i = 0; i < headerEntries.length; i++) {\n const [k, v] = headerEntries[i];\n if (typeof request.addHeader === 'function') {\n request.addHeader(k, v);\n }\n else if (typeof request.headers === 'string') {\n request.headers += `${k}: ${v}\\r\\n`;\n }\n else if (Array.isArray(request.headers)) {\n // undici@6.11.0 accidentally, briefly removed `request.addHeader()`.\n request.headers.push(k, v);\n }\n }\n this._recordFromReq.set(request, { span, attributes, startTime });\n }\n // This is the 2nd message we receive for each request. It is fired when connection with\n // the remote is established and about to send the first byte. Here we do have info about the\n // remote address and port so we can populate some `network.*` attributes into the span\n onRequestHeaders({ request, socket }) {\n const record = this._recordFromReq.get(request);\n if (!record) {\n return;\n }\n const config = this.getConfig();\n const { span } = record;\n const { remoteAddress, remotePort } = socket;\n const spanAttributes = {\n [semantic_conventions_1.ATTR_NETWORK_PEER_ADDRESS]: remoteAddress,\n [semantic_conventions_1.ATTR_NETWORK_PEER_PORT]: remotePort,\n };\n // After hooks have been processed (which may modify request headers)\n // we can collect the headers based on the configuration\n if (config.headersToSpanAttributes?.requestHeaders) {\n const headersToAttribs = new Set(config.headersToSpanAttributes.requestHeaders.map(n => n.toLowerCase()));\n const headersMap = this.parseRequestHeaders(request);\n for (const [name, value] of headersMap.entries()) {\n if (headersToAttribs.has(name)) {\n const attrValue = Array.isArray(value) ? value : [value];\n spanAttributes[`http.request.header.${name}`] = attrValue;\n }\n }\n }\n span.setAttributes(spanAttributes);\n }\n // This is the 3rd message we get for each request and it's fired when the server\n // headers are received, body may not be accessible yet.\n // From the response headers we can set the status and content length\n onResponseHeaders({ request, response, }) {\n const record = this._recordFromReq.get(request);\n if (!record) {\n return;\n }\n const { span, attributes } = record;\n const spanAttributes = {\n [semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE]: response.statusCode,\n };\n const config = this.getConfig();\n // Execute the response hook if defined\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => config.responseHook?.(span, { request, response }), e => e && this._diag.error('caught responseHook error: ', e), true);\n if (config.headersToSpanAttributes?.responseHeaders) {\n const headersToAttribs = new Set();\n config.headersToSpanAttributes?.responseHeaders.forEach(name => headersToAttribs.add(name.toLowerCase()));\n for (let idx = 0; idx < response.headers.length; idx = idx + 2) {\n const name = response.headers[idx].toString().toLowerCase();\n const value = response.headers[idx + 1];\n if (headersToAttribs.has(name)) {\n const attrName = `http.response.header.${name}`;\n if (!Object.hasOwn(spanAttributes, attrName)) {\n spanAttributes[attrName] = [value.toString()];\n }\n else {\n spanAttributes[attrName].push(value.toString());\n }\n }\n }\n }\n span.setAttributes(spanAttributes);\n span.setStatus({\n code: response.statusCode >= 400\n ? api_1.SpanStatusCode.ERROR\n : api_1.SpanStatusCode.UNSET,\n });\n record.attributes = Object.assign(attributes, spanAttributes);\n }\n // This is the last event we receive if the request went without any errors\n onDone({ request }) {\n const record = this._recordFromReq.get(request);\n if (!record) {\n return;\n }\n const { span, attributes, startTime } = record;\n // End the span\n span.end();\n this._recordFromReq.delete(request);\n // Record metrics\n this.recordRequestDuration(attributes, startTime);\n }\n // This is the event we get when something is wrong in the request like\n // - invalid options when calling `fetch` global API or any undici method for request\n // - connectivity errors such as unreachable host\n // - requests aborted through an `AbortController.signal`\n // NOTE: server errors are considered valid responses and it's the lib consumer\n // who should deal with that.\n onError({ request, error }) {\n const record = this._recordFromReq.get(request);\n if (!record) {\n return;\n }\n const { span, attributes, startTime } = record;\n // NOTE: in `undici@6.3.0` when request aborted the error type changes from\n // a custom error (`RequestAbortedError`) to a built-in `DOMException` carrying\n // some differences:\n // - `code` is from DOMEXception (ABORT_ERR: 20)\n // - `message` changes\n // - stacktrace is smaller and contains node internal frames\n span.recordException(error);\n span.setStatus({\n code: api_1.SpanStatusCode.ERROR,\n message: error.message,\n });\n span.end();\n this._recordFromReq.delete(request);\n // Record metrics (with the error)\n attributes[semantic_conventions_1.ATTR_ERROR_TYPE] = error.message;\n this.recordRequestDuration(attributes, startTime);\n }\n recordRequestDuration(attributes, startTime) {\n // Time to record metrics\n const metricsAttributes = {};\n // Get the attribs already in span attributes\n const keysToCopy = [\n semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE,\n semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD,\n semantic_conventions_1.ATTR_SERVER_ADDRESS,\n semantic_conventions_1.ATTR_SERVER_PORT,\n semantic_conventions_1.ATTR_URL_SCHEME,\n semantic_conventions_1.ATTR_ERROR_TYPE,\n ];\n keysToCopy.forEach(key => {\n if (key in attributes) {\n metricsAttributes[key] = attributes[key];\n }\n });\n // Take the duration and record it\n const durationSeconds = (0, core_1.hrTimeToMilliseconds)((0, core_1.hrTimeDuration)(startTime, (0, core_1.hrTime)())) / 1000;\n this._httpClientDurationHistogram.record(durationSeconds, metricsAttributes);\n }\n getRequestMethod(original) {\n const knownMethods = {\n CONNECT: true,\n OPTIONS: true,\n HEAD: true,\n GET: true,\n POST: true,\n PUT: true,\n PATCH: true,\n DELETE: true,\n TRACE: true,\n // QUERY from https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/\n QUERY: true,\n };\n if (original.toUpperCase() in knownMethods) {\n return original.toUpperCase();\n }\n return '_OTHER';\n }\n}\nexports.UndiciInstrumentation = UndiciInstrumentation;\n//# sourceMappingURL=undici.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UndiciInstrumentation = void 0;\nvar undici_1 = require(\"./undici\");\nObject.defineProperty(exports, \"UndiciInstrumentation\", { enumerable: true, get: function () { return undici_1.UndiciInstrumentation; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressLayerType = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar ExpressLayerType;\n(function (ExpressLayerType) {\n ExpressLayerType[\"ROUTER\"] = \"router\";\n ExpressLayerType[\"MIDDLEWARE\"] = \"middleware\";\n ExpressLayerType[\"REQUEST_HANDLER\"] = \"request_handler\";\n})(ExpressLayerType = exports.ExpressLayerType || (exports.ExpressLayerType = {}));\n//# sourceMappingURL=ExpressLayerType.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar AttributeNames;\n(function (AttributeNames) {\n AttributeNames[\"EXPRESS_TYPE\"] = \"express.type\";\n AttributeNames[\"EXPRESS_NAME\"] = \"express.name\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._LAYERS_STORE_PROPERTY = exports.kLayerPatched = void 0;\n/**\n * This symbol is used to mark express layer as being already instrumented\n * since its possible to use a given layer multiple times (ex: middlewares)\n */\nexports.kLayerPatched = Symbol('express-layer-patched');\n/**\n * This const define where on the `request` object the Instrumentation will mount the\n * current stack of express layer.\n *\n * It is necessary because express doesn't store the different layers\n * (ie: middleware, router etc) that it called to get to the current layer.\n * Given that, the only way to know the route of a given layer is to\n * store the path of where each previous layer has been mounted.\n *\n * ex: bodyParser > auth middleware > /users router > get /:id\n * in this case the stack would be: [\"/users\", \"/:id\"]\n *\n * ex2: bodyParser > /api router > /v1 router > /users router > get /:id\n * stack: [\"/api\", \"/v1\", \"/users\", \":id\"]\n *\n */\nexports._LAYERS_STORE_PROPERTY = '__ot_middlewares';\n//# sourceMappingURL=internal-types.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getActualMatchedRoute = exports.getConstructedRoute = exports.getLayerPath = exports.asErrorAndMessage = exports.isLayerIgnored = exports.getLayerMetadata = exports.getRouterPath = exports.storeLayerPath = void 0;\nconst ExpressLayerType_1 = require(\"./enums/ExpressLayerType\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst internal_types_1 = require(\"./internal-types\");\n/**\n * Store layers path in the request to be able to construct route later\n * @param request The request where\n * @param [value] the value to push into the array\n */\nconst storeLayerPath = (request, value) => {\n if (Array.isArray(request[internal_types_1._LAYERS_STORE_PROPERTY]) === false) {\n Object.defineProperty(request, internal_types_1._LAYERS_STORE_PROPERTY, {\n enumerable: false,\n value: [],\n });\n }\n if (value === undefined)\n return { isLayerPathStored: false };\n request[internal_types_1._LAYERS_STORE_PROPERTY].push(value);\n return { isLayerPathStored: true };\n};\nexports.storeLayerPath = storeLayerPath;\n/**\n * Recursively search the router path from layer stack\n * @param path The path to reconstruct\n * @param layer The layer to reconstruct from\n * @returns The reconstructed path\n */\nconst getRouterPath = (path, layer) => {\n const stackLayer = layer.handle?.stack?.[0];\n if (stackLayer?.route?.path) {\n return `${path}${stackLayer.route.path}`;\n }\n if (stackLayer?.handle?.stack) {\n return (0, exports.getRouterPath)(path, stackLayer);\n }\n return path;\n};\nexports.getRouterPath = getRouterPath;\n/**\n * Parse express layer context to retrieve a name and attributes.\n * @param route The route of the layer\n * @param layer Express layer\n * @param [layerPath] if present, the path on which the layer has been mounted\n */\nconst getLayerMetadata = (route, layer, layerPath) => {\n if (layer.name === 'router') {\n const maybeRouterPath = (0, exports.getRouterPath)('', layer);\n const extractedRouterPath = maybeRouterPath\n ? maybeRouterPath\n : layerPath || route || '/';\n return {\n attributes: {\n [AttributeNames_1.AttributeNames.EXPRESS_NAME]: extractedRouterPath,\n [AttributeNames_1.AttributeNames.EXPRESS_TYPE]: ExpressLayerType_1.ExpressLayerType.ROUTER,\n },\n name: `router - ${extractedRouterPath}`,\n };\n }\n else if (layer.name === 'bound dispatch' || layer.name === 'handle') {\n return {\n attributes: {\n [AttributeNames_1.AttributeNames.EXPRESS_NAME]: (route || layerPath) ?? 'request handler',\n [AttributeNames_1.AttributeNames.EXPRESS_TYPE]: ExpressLayerType_1.ExpressLayerType.REQUEST_HANDLER,\n },\n name: `request handler${layer.path ? ` - ${route || layerPath}` : ''}`,\n };\n }\n else {\n return {\n attributes: {\n [AttributeNames_1.AttributeNames.EXPRESS_NAME]: layer.name,\n [AttributeNames_1.AttributeNames.EXPRESS_TYPE]: ExpressLayerType_1.ExpressLayerType.MIDDLEWARE,\n },\n name: `middleware - ${layer.name}`,\n };\n }\n};\nexports.getLayerMetadata = getLayerMetadata;\n/**\n * Check whether the given obj match pattern\n * @param constant e.g URL of request\n * @param obj obj to inspect\n * @param pattern Match pattern\n */\nconst satisfiesPattern = (constant, pattern) => {\n if (typeof pattern === 'string') {\n return pattern === constant;\n }\n else if (pattern instanceof RegExp) {\n return pattern.test(constant);\n }\n else if (typeof pattern === 'function') {\n return pattern(constant);\n }\n else {\n throw new TypeError('Pattern is in unsupported datatype');\n }\n};\n/**\n * Check whether the given request is ignored by configuration\n * It will not re-throw exceptions from `list` provided by the client\n * @param constant e.g URL of request\n * @param [list] List of ignore patterns\n * @param [onException] callback for doing something when an exception has\n * occurred\n */\nconst isLayerIgnored = (name, type, config) => {\n if (Array.isArray(config?.ignoreLayersType) &&\n config?.ignoreLayersType?.includes(type)) {\n return true;\n }\n if (Array.isArray(config?.ignoreLayers) === false)\n return false;\n try {\n for (const pattern of config.ignoreLayers) {\n if (satisfiesPattern(name, pattern)) {\n return true;\n }\n }\n }\n catch (e) {\n /* catch block*/\n }\n return false;\n};\nexports.isLayerIgnored = isLayerIgnored;\n/**\n * Converts a user-provided error value into an error and error message pair\n *\n * @param error - User-provided error value\n * @returns Both an Error or string representation of the value and an error message\n */\nconst asErrorAndMessage = (error) => error instanceof Error\n ? [error, error.message]\n : [String(error), String(error)];\nexports.asErrorAndMessage = asErrorAndMessage;\n/**\n * Extracts the layer path from the route arguments\n *\n * @param args - Arguments of the route\n * @returns The layer path\n */\nconst getLayerPath = (args) => {\n const firstArg = args[0];\n if (Array.isArray(firstArg)) {\n return firstArg.map(arg => extractLayerPathSegment(arg) || '').join(',');\n }\n return extractLayerPathSegment(firstArg);\n};\nexports.getLayerPath = getLayerPath;\nconst extractLayerPathSegment = (arg) => {\n if (typeof arg === 'string') {\n return arg;\n }\n if (arg instanceof RegExp || typeof arg === 'number') {\n return arg.toString();\n }\n return;\n};\nfunction getConstructedRoute(req) {\n const layersStore = Array.isArray(req[internal_types_1._LAYERS_STORE_PROPERTY])\n ? req[internal_types_1._LAYERS_STORE_PROPERTY]\n : [];\n const meaningfulPaths = layersStore.filter(path => path !== '/' && path !== '/*');\n if (meaningfulPaths.length === 1 && meaningfulPaths[0] === '*') {\n return '*';\n }\n // Join parts and remove duplicate slashes\n return meaningfulPaths.join('').replace(/\\/{2,}/g, '/');\n}\nexports.getConstructedRoute = getConstructedRoute;\n/**\n * Extracts the actual matched route from Express request for OpenTelemetry instrumentation.\n * Returns the route that should be used as the http.route attribute.\n *\n * @param req - The Express request object with layers store\n * @param layersStoreProperty - The property name where layer paths are stored\n * @returns The matched route string or undefined if no valid route is found\n */\nfunction getActualMatchedRoute(req) {\n const layersStore = Array.isArray(req[internal_types_1._LAYERS_STORE_PROPERTY])\n ? req[internal_types_1._LAYERS_STORE_PROPERTY]\n : [];\n // If no layers are stored, no route can be determined\n if (layersStore.length === 0) {\n return undefined;\n }\n // Handle root path case - if all paths are root, only return root if originalUrl is also root\n // The layer store also includes root paths in case a non-existing url was requested\n if (layersStore.every(path => path === '/')) {\n return req.originalUrl === '/' ? '/' : undefined;\n }\n const constructedRoute = getConstructedRoute(req);\n if (constructedRoute === '*') {\n return constructedRoute;\n }\n // For RegExp routes or route arrays, return the constructed route\n // This handles the case where the route is defined using RegExp or an array\n if (constructedRoute.includes('/') &&\n (constructedRoute.includes(',') ||\n constructedRoute.includes('\\\\') ||\n constructedRoute.includes('*') ||\n constructedRoute.includes('['))) {\n return constructedRoute;\n }\n // Ensure route starts with '/' if it doesn't already\n const normalizedRoute = constructedRoute.startsWith('/')\n ? constructedRoute\n : `/${constructedRoute}`;\n // Validate that this appears to be a matched route\n // A route is considered matched if:\n // 1. We have a constructed route\n // 2. The original URL matches or starts with our route pattern\n const isValidRoute = normalizedRoute.length > 0 &&\n (req.originalUrl === normalizedRoute ||\n req.originalUrl.startsWith(normalizedRoute) ||\n isRoutePattern(normalizedRoute));\n return isValidRoute ? normalizedRoute : undefined;\n}\nexports.getActualMatchedRoute = getActualMatchedRoute;\n/**\n * Checks if a route contains parameter patterns (e.g., :id, :userId)\n * which are valid even if they don't exactly match the original URL\n */\nfunction isRoutePattern(route) {\n return route.includes(':') || route.includes('*');\n}\n//# sourceMappingURL=utils.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.61.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-express';\n//# sourceMappingURL=version.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressInstrumentation = void 0;\nconst core_1 = require(\"@opentelemetry/core\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst ExpressLayerType_1 = require(\"./enums/ExpressLayerType\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst utils_1 = require(\"./utils\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst internal_types_1 = require(\"./internal-types\");\n/** Express instrumentation for OpenTelemetry */\nclass ExpressInstrumentation extends instrumentation_1.InstrumentationBase {\n constructor(config = {}) {\n super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n }\n init() {\n return [\n new instrumentation_1.InstrumentationNodeModuleDefinition('express', ['>=4.0.0 <6'], moduleExports => {\n const isExpressWithRouterPrototype = typeof moduleExports?.Router?.prototype?.route === 'function';\n const routerProto = isExpressWithRouterPrototype\n ? moduleExports.Router.prototype // Express v5\n : moduleExports.Router; // Express v4\n // patch express.Router.route\n if ((0, instrumentation_1.isWrapped)(routerProto.route)) {\n this._unwrap(routerProto, 'route');\n }\n this._wrap(routerProto, 'route', this._getRoutePatch());\n // patch express.Router.use\n if ((0, instrumentation_1.isWrapped)(routerProto.use)) {\n this._unwrap(routerProto, 'use');\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._wrap(routerProto, 'use', this._getRouterUsePatch());\n // patch express.Application.use\n if ((0, instrumentation_1.isWrapped)(moduleExports.application.use)) {\n this._unwrap(moduleExports.application, 'use');\n }\n this._wrap(moduleExports.application, 'use', \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._getAppUsePatch(isExpressWithRouterPrototype));\n return moduleExports;\n }, moduleExports => {\n if (moduleExports === undefined)\n return;\n const isExpressWithRouterPrototype = typeof moduleExports?.Router?.prototype?.route === 'function';\n const routerProto = isExpressWithRouterPrototype\n ? moduleExports.Router.prototype\n : moduleExports.Router;\n this._unwrap(routerProto, 'route');\n this._unwrap(routerProto, 'use');\n this._unwrap(moduleExports.application, 'use');\n }),\n ];\n }\n /**\n * Get the patch for Router.route function\n */\n _getRoutePatch() {\n const instrumentation = this;\n return function (original) {\n return function route_trace(...args) {\n const route = original.apply(this, args);\n const layer = this.stack[this.stack.length - 1];\n instrumentation._applyPatch(layer, (0, utils_1.getLayerPath)(args));\n return route;\n };\n };\n }\n /**\n * Get the patch for Router.use function\n */\n _getRouterUsePatch() {\n const instrumentation = this;\n return function (original) {\n return function use(...args) {\n const route = original.apply(this, args);\n const layer = this.stack[this.stack.length - 1];\n instrumentation._applyPatch(layer, (0, utils_1.getLayerPath)(args));\n return route;\n };\n };\n }\n /**\n * Get the patch for Application.use function\n */\n _getAppUsePatch(isExpressWithRouterPrototype) {\n const instrumentation = this;\n return function (original) {\n return function use(...args) {\n // If we access app.router in express 4.x we trigger an assertion error.\n // This property existed in v3, was removed in v4 and then re-added in v5.\n const router = isExpressWithRouterPrototype\n ? this.router\n : this._router;\n const route = original.apply(this, args);\n if (router) {\n const layer = router.stack[router.stack.length - 1];\n instrumentation._applyPatch(layer, (0, utils_1.getLayerPath)(args));\n }\n return route;\n };\n };\n }\n /** Patch each express layer to create span and propagate context */\n _applyPatch(layer, layerPath) {\n const instrumentation = this;\n // avoid patching multiple times the same layer\n if (layer[internal_types_1.kLayerPatched] === true)\n return;\n layer[internal_types_1.kLayerPatched] = true;\n this._wrap(layer, 'handle', original => {\n // TODO: instrument error handlers\n if (original.length === 4)\n return original;\n const patched = function (req, res) {\n const { isLayerPathStored } = (0, utils_1.storeLayerPath)(req, layerPath);\n const constructedRoute = (0, utils_1.getConstructedRoute)(req);\n const actualMatchedRoute = (0, utils_1.getActualMatchedRoute)(req);\n const attributes = {\n [semantic_conventions_1.ATTR_HTTP_ROUTE]: actualMatchedRoute,\n };\n const metadata = (0, utils_1.getLayerMetadata)(constructedRoute, layer, layerPath);\n const type = metadata.attributes[AttributeNames_1.AttributeNames.EXPRESS_TYPE];\n const rpcMetadata = (0, core_1.getRPCMetadata)(api_1.context.active());\n if (rpcMetadata?.type === core_1.RPCType.HTTP) {\n rpcMetadata.route = actualMatchedRoute;\n }\n // verify against the config if the layer should be ignored\n if ((0, utils_1.isLayerIgnored)(metadata.name, type, instrumentation.getConfig())) {\n if (type === ExpressLayerType_1.ExpressLayerType.MIDDLEWARE) {\n req[internal_types_1._LAYERS_STORE_PROPERTY].pop();\n }\n return original.apply(this, arguments);\n }\n if (api_1.trace.getSpan(api_1.context.active()) === undefined) {\n return original.apply(this, arguments);\n }\n const spanName = instrumentation._getSpanName({\n request: req,\n layerType: type,\n route: constructedRoute,\n }, metadata.name);\n const span = instrumentation.tracer.startSpan(spanName, {\n attributes: Object.assign(attributes, metadata.attributes),\n });\n const parentContext = api_1.context.active();\n let currentContext = api_1.trace.setSpan(parentContext, span);\n const { requestHook } = instrumentation.getConfig();\n if (requestHook) {\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => requestHook(span, {\n request: req,\n layerType: type,\n route: constructedRoute,\n }), e => {\n if (e) {\n api_1.diag.error('express instrumentation: request hook failed', e);\n }\n }, true);\n }\n let spanHasEnded = false;\n // TODO: Fix router spans (getRouterPath does not work properly) to\n // have useful names before removing this branch\n if (metadata.attributes[AttributeNames_1.AttributeNames.EXPRESS_TYPE] ===\n ExpressLayerType_1.ExpressLayerType.ROUTER) {\n span.end();\n spanHasEnded = true;\n currentContext = parentContext;\n }\n // listener for response.on('finish')\n const onResponseFinish = () => {\n if (spanHasEnded === false) {\n spanHasEnded = true;\n span.end();\n }\n };\n // verify we have a callback\n const args = Array.from(arguments);\n const callbackIdx = args.findIndex(arg => typeof arg === 'function');\n if (callbackIdx >= 0) {\n arguments[callbackIdx] = function () {\n // express considers anything but an empty value, \"route\" or \"router\"\n // passed to its callback to be an error\n const maybeError = arguments[0];\n const isError = ![undefined, null, 'route', 'router'].includes(maybeError);\n if (!spanHasEnded && isError) {\n const [error, message] = (0, utils_1.asErrorAndMessage)(maybeError);\n span.recordException(error);\n span.setStatus({\n code: api_1.SpanStatusCode.ERROR,\n message,\n });\n }\n if (spanHasEnded === false) {\n spanHasEnded = true;\n req.res?.removeListener('finish', onResponseFinish);\n span.end();\n }\n if (!(req.route && isError) && isLayerPathStored) {\n req[internal_types_1._LAYERS_STORE_PROPERTY].pop();\n }\n const callback = args[callbackIdx];\n return api_1.context.bind(parentContext, callback).apply(this, arguments);\n };\n }\n try {\n return api_1.context.bind(currentContext, original).apply(this, arguments);\n }\n catch (anyError) {\n const [error, message] = (0, utils_1.asErrorAndMessage)(anyError);\n span.recordException(error);\n span.setStatus({\n code: api_1.SpanStatusCode.ERROR,\n message,\n });\n throw anyError;\n }\n finally {\n /**\n * At this point if the callback wasn't called, that means either the\n * layer is asynchronous (so it will call the callback later on) or that\n * the layer directly ends the http response, so we'll hook into the \"finish\"\n * event to handle the later case.\n */\n if (!spanHasEnded) {\n res.once('finish', onResponseFinish);\n }\n }\n };\n // `handle` isn't just a regular function in some cases. It also contains\n // some properties holding metadata and state so we need to proxy them\n // through through patched function\n // ref: https://github.com/open-telemetry/opentelemetry-js-contrib/issues/1950\n // Also some apps/libs do their own patching before OTEL and have these properties\n // in the proptotype. So we use a `for...in` loop to get own properties and also\n // any enumerable prop in the prototype chain\n // ref: https://github.com/open-telemetry/opentelemetry-js-contrib/issues/2271\n for (const key in original) {\n Object.defineProperty(patched, key, {\n get() {\n return original[key];\n },\n set(value) {\n original[key] = value;\n },\n });\n }\n return patched;\n });\n }\n _getSpanName(info, defaultName) {\n const { spanNameHook } = this.getConfig();\n if (!(spanNameHook instanceof Function)) {\n return defaultName;\n }\n try {\n return spanNameHook(info, defaultName) ?? defaultName;\n }\n catch (err) {\n api_1.diag.error('express instrumentation: error calling span name rewrite hook', err);\n return defaultName;\n }\n }\n}\nexports.ExpressInstrumentation = ExpressInstrumentation;\n//# sourceMappingURL=instrumentation.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = exports.ExpressLayerType = exports.ExpressInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"ExpressInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.ExpressInstrumentation; } });\nvar ExpressLayerType_1 = require(\"./enums/ExpressLayerType\");\nObject.defineProperty(exports, \"ExpressLayerType\", { enumerable: true, get: function () { return ExpressLayerType_1.ExpressLayerType; } });\nvar AttributeNames_1 = require(\"./enums/AttributeNames\");\nObject.defineProperty(exports, \"AttributeNames\", { enumerable: true, get: function () { return AttributeNames_1.AttributeNames; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SeverityNumber = void 0;\nvar SeverityNumber;\n(function (SeverityNumber) {\n SeverityNumber[SeverityNumber[\"UNSPECIFIED\"] = 0] = \"UNSPECIFIED\";\n SeverityNumber[SeverityNumber[\"TRACE\"] = 1] = \"TRACE\";\n SeverityNumber[SeverityNumber[\"TRACE2\"] = 2] = \"TRACE2\";\n SeverityNumber[SeverityNumber[\"TRACE3\"] = 3] = \"TRACE3\";\n SeverityNumber[SeverityNumber[\"TRACE4\"] = 4] = \"TRACE4\";\n SeverityNumber[SeverityNumber[\"DEBUG\"] = 5] = \"DEBUG\";\n SeverityNumber[SeverityNumber[\"DEBUG2\"] = 6] = \"DEBUG2\";\n SeverityNumber[SeverityNumber[\"DEBUG3\"] = 7] = \"DEBUG3\";\n SeverityNumber[SeverityNumber[\"DEBUG4\"] = 8] = \"DEBUG4\";\n SeverityNumber[SeverityNumber[\"INFO\"] = 9] = \"INFO\";\n SeverityNumber[SeverityNumber[\"INFO2\"] = 10] = \"INFO2\";\n SeverityNumber[SeverityNumber[\"INFO3\"] = 11] = \"INFO3\";\n SeverityNumber[SeverityNumber[\"INFO4\"] = 12] = \"INFO4\";\n SeverityNumber[SeverityNumber[\"WARN\"] = 13] = \"WARN\";\n SeverityNumber[SeverityNumber[\"WARN2\"] = 14] = \"WARN2\";\n SeverityNumber[SeverityNumber[\"WARN3\"] = 15] = \"WARN3\";\n SeverityNumber[SeverityNumber[\"WARN4\"] = 16] = \"WARN4\";\n SeverityNumber[SeverityNumber[\"ERROR\"] = 17] = \"ERROR\";\n SeverityNumber[SeverityNumber[\"ERROR2\"] = 18] = \"ERROR2\";\n SeverityNumber[SeverityNumber[\"ERROR3\"] = 19] = \"ERROR3\";\n SeverityNumber[SeverityNumber[\"ERROR4\"] = 20] = \"ERROR4\";\n SeverityNumber[SeverityNumber[\"FATAL\"] = 21] = \"FATAL\";\n SeverityNumber[SeverityNumber[\"FATAL2\"] = 22] = \"FATAL2\";\n SeverityNumber[SeverityNumber[\"FATAL3\"] = 23] = \"FATAL3\";\n SeverityNumber[SeverityNumber[\"FATAL4\"] = 24] = \"FATAL4\";\n})(SeverityNumber = exports.SeverityNumber || (exports.SeverityNumber = {}));\n//# sourceMappingURL=LogRecord.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_LOGGER = exports.NoopLogger = void 0;\nclass NoopLogger {\n emit(_logRecord) { }\n}\nexports.NoopLogger = NoopLogger;\nexports.NOOP_LOGGER = new NoopLogger();\n//# sourceMappingURL=NoopLogger.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.API_BACKWARDS_COMPATIBILITY_VERSION = exports.makeGetter = exports._global = exports.GLOBAL_LOGS_API_KEY = void 0;\nexports.GLOBAL_LOGS_API_KEY = Symbol.for('io.opentelemetry.js.api.logs');\nexports._global = globalThis;\n/**\n * Make a function which accepts a version integer and returns the instance of an API if the version\n * is compatible, or a fallback version (usually NOOP) if it is not.\n *\n * @param requiredVersion Backwards compatibility version which is required to return the instance\n * @param instance Instance which should be returned if the required version is compatible\n * @param fallback Fallback instance, usually NOOP, which will be returned if the required version is not compatible\n */\nfunction makeGetter(requiredVersion, instance, fallback) {\n return (version) => version === requiredVersion ? instance : fallback;\n}\nexports.makeGetter = makeGetter;\n/**\n * A number which should be incremented each time a backwards incompatible\n * change is made to the API. This number is used when an API package\n * attempts to access the global API to ensure it is getting a compatible\n * version. If the global API is not compatible with the API package\n * attempting to get it, a NOOP API implementation will be returned.\n */\nexports.API_BACKWARDS_COMPATIBILITY_VERSION = 1;\n//# sourceMappingURL=global-utils.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_LOGGER_PROVIDER = exports.NoopLoggerProvider = void 0;\nconst NoopLogger_1 = require(\"./NoopLogger\");\nclass NoopLoggerProvider {\n getLogger(_name, _version, _options) {\n return new NoopLogger_1.NoopLogger();\n }\n}\nexports.NoopLoggerProvider = NoopLoggerProvider;\nexports.NOOP_LOGGER_PROVIDER = new NoopLoggerProvider();\n//# sourceMappingURL=NoopLoggerProvider.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProxyLogger = void 0;\nconst NoopLogger_1 = require(\"./NoopLogger\");\nclass ProxyLogger {\n constructor(provider, name, version, options) {\n this._provider = provider;\n this.name = name;\n this.version = version;\n this.options = options;\n }\n /**\n * Emit a log record. This method should only be used by log appenders.\n *\n * @param logRecord\n */\n emit(logRecord) {\n this._getLogger().emit(logRecord);\n }\n /**\n * Try to get a logger from the proxy logger provider.\n * If the proxy logger provider has no delegate, return a noop logger.\n */\n _getLogger() {\n if (this._delegate) {\n return this._delegate;\n }\n const logger = this._provider._getDelegateLogger(this.name, this.version, this.options);\n if (!logger) {\n return NoopLogger_1.NOOP_LOGGER;\n }\n this._delegate = logger;\n return this._delegate;\n }\n}\nexports.ProxyLogger = ProxyLogger;\n//# sourceMappingURL=ProxyLogger.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProxyLoggerProvider = void 0;\nconst NoopLoggerProvider_1 = require(\"./NoopLoggerProvider\");\nconst ProxyLogger_1 = require(\"./ProxyLogger\");\nclass ProxyLoggerProvider {\n getLogger(name, version, options) {\n var _a;\n return ((_a = this._getDelegateLogger(name, version, options)) !== null && _a !== void 0 ? _a : new ProxyLogger_1.ProxyLogger(this, name, version, options));\n }\n /**\n * Get the delegate logger provider.\n * Used by tests only.\n * @internal\n */\n _getDelegate() {\n var _a;\n return (_a = this._delegate) !== null && _a !== void 0 ? _a : NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER;\n }\n /**\n * Set the delegate logger provider\n * @internal\n */\n _setDelegate(delegate) {\n this._delegate = delegate;\n }\n /**\n * @internal\n */\n _getDelegateLogger(name, version, options) {\n var _a;\n return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getLogger(name, version, options);\n }\n}\nexports.ProxyLoggerProvider = ProxyLoggerProvider;\n//# sourceMappingURL=ProxyLoggerProvider.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogsAPI = void 0;\nconst global_utils_1 = require(\"../internal/global-utils\");\nconst NoopLoggerProvider_1 = require(\"../NoopLoggerProvider\");\nconst ProxyLoggerProvider_1 = require(\"../ProxyLoggerProvider\");\nclass LogsAPI {\n constructor() {\n this._proxyLoggerProvider = new ProxyLoggerProvider_1.ProxyLoggerProvider();\n }\n static getInstance() {\n if (!this._instance) {\n this._instance = new LogsAPI();\n }\n return this._instance;\n }\n setGlobalLoggerProvider(provider) {\n if (global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]) {\n return this.getLoggerProvider();\n }\n global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY] = (0, global_utils_1.makeGetter)(global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION, provider, NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER);\n this._proxyLoggerProvider._setDelegate(provider);\n return provider;\n }\n /**\n * Returns the global logger provider.\n *\n * @returns LoggerProvider\n */\n getLoggerProvider() {\n var _a, _b;\n return ((_b = (_a = global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]) === null || _a === void 0 ? void 0 : _a.call(global_utils_1._global, global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION)) !== null && _b !== void 0 ? _b : this._proxyLoggerProvider);\n }\n /**\n * Returns a logger from the global logger provider.\n *\n * @returns Logger\n */\n getLogger(name, version, options) {\n return this.getLoggerProvider().getLogger(name, version, options);\n }\n /** Remove the global logger provider */\n disable() {\n delete global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY];\n this._proxyLoggerProvider = new ProxyLoggerProvider_1.ProxyLoggerProvider();\n }\n}\nexports.LogsAPI = LogsAPI;\n//# sourceMappingURL=logs.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logs = exports.NoopLogger = exports.NOOP_LOGGER = exports.SeverityNumber = void 0;\nvar LogRecord_1 = require(\"./types/LogRecord\");\nObject.defineProperty(exports, \"SeverityNumber\", { enumerable: true, get: function () { return LogRecord_1.SeverityNumber; } });\nvar NoopLogger_1 = require(\"./NoopLogger\");\nObject.defineProperty(exports, \"NOOP_LOGGER\", { enumerable: true, get: function () { return NoopLogger_1.NOOP_LOGGER; } });\nObject.defineProperty(exports, \"NoopLogger\", { enumerable: true, get: function () { return NoopLogger_1.NoopLogger; } });\nconst logs_1 = require(\"./api/logs\");\nexports.logs = logs_1.LogsAPI.getInstance();\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.disableInstrumentations = exports.enableInstrumentations = void 0;\n/**\n * Enable instrumentations\n * @param instrumentations\n * @param tracerProvider\n * @param meterProvider\n */\nfunction enableInstrumentations(instrumentations, tracerProvider, meterProvider, loggerProvider) {\n for (let i = 0, j = instrumentations.length; i < j; i++) {\n const instrumentation = instrumentations[i];\n if (tracerProvider) {\n instrumentation.setTracerProvider(tracerProvider);\n }\n if (meterProvider) {\n instrumentation.setMeterProvider(meterProvider);\n }\n if (loggerProvider && instrumentation.setLoggerProvider) {\n instrumentation.setLoggerProvider(loggerProvider);\n }\n // instrumentations have been already enabled during creation\n // so enable only if user prevented that by setting enabled to false\n // this is to prevent double enabling but when calling register all\n // instrumentations should be now enabled\n if (!instrumentation.getConfig().enabled) {\n instrumentation.enable();\n }\n }\n}\nexports.enableInstrumentations = enableInstrumentations;\n/**\n * Disable instrumentations\n * @param instrumentations\n */\nfunction disableInstrumentations(instrumentations) {\n instrumentations.forEach(instrumentation => instrumentation.disable());\n}\nexports.disableInstrumentations = disableInstrumentations;\n//# sourceMappingURL=autoLoaderUtils.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.registerInstrumentations = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst api_logs_1 = require(\"@opentelemetry/api-logs\");\nconst autoLoaderUtils_1 = require(\"./autoLoaderUtils\");\n/**\n * It will register instrumentations and plugins\n * @param options\n * @return returns function to unload instrumentation and plugins that were\n * registered\n */\nfunction registerInstrumentations(options) {\n const tracerProvider = options.tracerProvider || api_1.trace.getTracerProvider();\n const meterProvider = options.meterProvider || api_1.metrics.getMeterProvider();\n const loggerProvider = options.loggerProvider || api_logs_1.logs.getLoggerProvider();\n const instrumentations = options.instrumentations?.flat() ?? [];\n (0, autoLoaderUtils_1.enableInstrumentations)(instrumentations, tracerProvider, meterProvider, loggerProvider);\n return () => {\n (0, autoLoaderUtils_1.disableInstrumentations)(instrumentations);\n };\n}\nexports.registerInstrumentations = registerInstrumentations;\n//# sourceMappingURL=autoLoader.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.satisfies = void 0;\n// This is a custom semantic versioning implementation compatible with the\n// `satisfies(version, range, options?)` function from the `semver` npm package;\n// with the exception that the `loose` option is not supported.\n//\n// The motivation for the custom semver implementation is that\n// `semver` package has some initialization delay (lots of RegExp init and compile)\n// and this leads to coldstart overhead for the OTEL Lambda Node.js layer.\n// Hence, we have implemented lightweight version of it internally with required functionalities.\nconst api_1 = require(\"@opentelemetry/api\");\nconst VERSION_REGEXP = /^(?:v)?(?(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*))(?:-(?(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nconst RANGE_REGEXP = /^(?<|>|=|==|<=|>=|~|\\^|~>)?\\s*(?:v)?(?(?x|X|\\*|0|[1-9]\\d*)(?:\\.(?x|X|\\*|0|[1-9]\\d*))?(?:\\.(?x|X|\\*|0|[1-9]\\d*))?)(?:-(?(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nconst operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n '!=': [-1, 1],\n};\n/**\n * Checks given version whether it satisfies given range expression.\n * @param version the [version](https://github.com/npm/node-semver#versions) to be checked\n * @param range the [range](https://github.com/npm/node-semver#ranges) expression for version check\n * @param options options to configure semver satisfy check\n */\nfunction satisfies(version, range, options) {\n // Strict semver format check\n if (!_validateVersion(version)) {\n api_1.diag.error(`Invalid version: ${version}`);\n return false;\n }\n // If range is empty, satisfy check succeeds regardless what version is\n if (!range) {\n return true;\n }\n // Cleanup range\n range = range.replace(/([<>=~^]+)\\s+/g, '$1');\n // Parse version\n const parsedVersion = _parseVersion(version);\n if (!parsedVersion) {\n return false;\n }\n const allParsedRanges = [];\n // Check given version whether it satisfies given range expression\n const checkResult = _doSatisfies(parsedVersion, range, allParsedRanges, options);\n // If check result is OK,\n // do another final check for pre-release, if pre-release check is included by option\n if (checkResult && !options?.includePrerelease) {\n return _doPreleaseCheck(parsedVersion, allParsedRanges);\n }\n return checkResult;\n}\nexports.satisfies = satisfies;\nfunction _validateVersion(version) {\n return typeof version === 'string' && VERSION_REGEXP.test(version);\n}\nfunction _doSatisfies(parsedVersion, range, allParsedRanges, options) {\n if (range.includes('||')) {\n // A version matches a range if and only if\n // every comparator in at least one of the ||-separated comparator sets is satisfied by the version\n const ranges = range.trim().split('||');\n for (const r of ranges) {\n if (_checkRange(parsedVersion, r, allParsedRanges, options)) {\n return true;\n }\n }\n return false;\n }\n else if (range.includes(' - ')) {\n // Hyphen ranges: https://github.com/npm/node-semver#hyphen-ranges-xyz---abc\n range = replaceHyphen(range, options);\n }\n else if (range.includes(' ')) {\n // Multiple separated ranges and all needs to be satisfied for success\n const ranges = range\n .trim()\n .replace(/\\s{2,}/g, ' ')\n .split(' ');\n for (const r of ranges) {\n if (!_checkRange(parsedVersion, r, allParsedRanges, options)) {\n return false;\n }\n }\n return true;\n }\n // Check given parsed version with given range\n return _checkRange(parsedVersion, range, allParsedRanges, options);\n}\nfunction _checkRange(parsedVersion, range, allParsedRanges, options) {\n range = _normalizeRange(range, options);\n if (range.includes(' ')) {\n // If there are multiple ranges separated, satisfy each of them\n return _doSatisfies(parsedVersion, range, allParsedRanges, options);\n }\n else {\n // Validate and parse range\n const parsedRange = _parseRange(range);\n allParsedRanges.push(parsedRange);\n // Check parsed version by parsed range\n return _satisfies(parsedVersion, parsedRange);\n }\n}\nfunction _satisfies(parsedVersion, parsedRange) {\n // If range is invalid, satisfy check fails (no error throw)\n if (parsedRange.invalid) {\n return false;\n }\n // If range is empty or wildcard, satisfy check succeeds regardless what version is\n if (!parsedRange.version || _isWildcard(parsedRange.version)) {\n return true;\n }\n // Compare version segment first\n let comparisonResult = _compareVersionSegments(parsedVersion.versionSegments || [], parsedRange.versionSegments || []);\n // If versions segments are equal, compare by pre-release segments\n if (comparisonResult === 0) {\n const versionPrereleaseSegments = parsedVersion.prereleaseSegments || [];\n const rangePrereleaseSegments = parsedRange.prereleaseSegments || [];\n if (!versionPrereleaseSegments.length && !rangePrereleaseSegments.length) {\n comparisonResult = 0;\n }\n else if (!versionPrereleaseSegments.length &&\n rangePrereleaseSegments.length) {\n comparisonResult = 1;\n }\n else if (versionPrereleaseSegments.length &&\n !rangePrereleaseSegments.length) {\n comparisonResult = -1;\n }\n else {\n comparisonResult = _compareVersionSegments(versionPrereleaseSegments, rangePrereleaseSegments);\n }\n }\n // Resolve check result according to comparison operator\n return operatorResMap[parsedRange.op]?.includes(comparisonResult);\n}\nfunction _doPreleaseCheck(parsedVersion, allParsedRanges) {\n if (parsedVersion.prerelease) {\n return allParsedRanges.some(r => r.prerelease && r.version === parsedVersion.version);\n }\n return true;\n}\nfunction _normalizeRange(range, options) {\n range = range.trim();\n range = replaceCaret(range, options);\n range = replaceTilde(range);\n range = replaceXRange(range, options);\n range = range.trim();\n return range;\n}\nfunction isX(id) {\n return !id || id.toLowerCase() === 'x' || id === '*';\n}\nfunction _parseVersion(versionString) {\n const match = versionString.match(VERSION_REGEXP);\n if (!match) {\n api_1.diag.error(`Invalid version: ${versionString}`);\n return undefined;\n }\n const version = match.groups.version;\n const prerelease = match.groups.prerelease;\n const build = match.groups.build;\n const versionSegments = version.split('.');\n const prereleaseSegments = prerelease?.split('.');\n return {\n op: undefined,\n version,\n versionSegments,\n versionSegmentCount: versionSegments.length,\n prerelease,\n prereleaseSegments,\n prereleaseSegmentCount: prereleaseSegments ? prereleaseSegments.length : 0,\n build,\n };\n}\nfunction _parseRange(rangeString) {\n if (!rangeString) {\n return {};\n }\n const match = rangeString.match(RANGE_REGEXP);\n if (!match) {\n api_1.diag.error(`Invalid range: ${rangeString}`);\n return {\n invalid: true,\n };\n }\n let op = match.groups.op;\n const version = match.groups.version;\n const prerelease = match.groups.prerelease;\n const build = match.groups.build;\n const versionSegments = version.split('.');\n const prereleaseSegments = prerelease?.split('.');\n if (op === '==') {\n op = '=';\n }\n return {\n op: op || '=',\n version,\n versionSegments,\n versionSegmentCount: versionSegments.length,\n prerelease,\n prereleaseSegments,\n prereleaseSegmentCount: prereleaseSegments ? prereleaseSegments.length : 0,\n build,\n };\n}\nfunction _isWildcard(s) {\n return s === '*' || s === 'x' || s === 'X';\n}\nfunction _parseVersionString(v) {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n}\nfunction _normalizeVersionType(a, b) {\n if (typeof a === typeof b) {\n if (typeof a === 'number') {\n return [a, b];\n }\n else if (typeof a === 'string') {\n return [a, b];\n }\n else {\n throw new Error('Version segments can only be strings or numbers');\n }\n }\n else {\n return [String(a), String(b)];\n }\n}\nfunction _compareVersionStrings(v1, v2) {\n if (_isWildcard(v1) || _isWildcard(v2)) {\n return 0;\n }\n const [parsedV1, parsedV2] = _normalizeVersionType(_parseVersionString(v1), _parseVersionString(v2));\n if (parsedV1 > parsedV2) {\n return 1;\n }\n else if (parsedV1 < parsedV2) {\n return -1;\n }\n return 0;\n}\nfunction _compareVersionSegments(v1, v2) {\n for (let i = 0; i < Math.max(v1.length, v2.length); i++) {\n const res = _compareVersionStrings(v1[i] || '0', v2[i] || '0');\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n}\n////////////////////////////////////////////////////////////////////////////////\n// The rest of this file is adapted from portions of https://github.com/npm/node-semver/tree/868d4bb\n// License:\n/*\n * The ISC License\n *\n * Copyright (c) Isaac Z. Schlueter and Contributors\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\n * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]';\nconst NUMERICIDENTIFIER = '0|[1-9]\\\\d*';\nconst NONNUMERICIDENTIFIER = `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`;\nconst GTLT = '((?:<|>)?=?)';\nconst PRERELEASEIDENTIFIER = `(?:${NUMERICIDENTIFIER}|${NONNUMERICIDENTIFIER})`;\nconst PRERELEASE = `(?:-(${PRERELEASEIDENTIFIER}(?:\\\\.${PRERELEASEIDENTIFIER})*))`;\nconst BUILDIDENTIFIER = `${LETTERDASHNUMBER}+`;\nconst BUILD = `(?:\\\\+(${BUILDIDENTIFIER}(?:\\\\.${BUILDIDENTIFIER})*))`;\nconst XRANGEIDENTIFIER = `${NUMERICIDENTIFIER}|x|X|\\\\*`;\nconst XRANGEPLAIN = `[v=\\\\s]*(${XRANGEIDENTIFIER})` +\n `(?:\\\\.(${XRANGEIDENTIFIER})` +\n `(?:\\\\.(${XRANGEIDENTIFIER})` +\n `(?:${PRERELEASE})?${BUILD}?` +\n `)?)?`;\nconst XRANGE = `^${GTLT}\\\\s*${XRANGEPLAIN}$`;\nconst XRANGE_REGEXP = new RegExp(XRANGE);\nconst HYPHENRANGE = `^\\\\s*(${XRANGEPLAIN})` + `\\\\s+-\\\\s+` + `(${XRANGEPLAIN})` + `\\\\s*$`;\nconst HYPHENRANGE_REGEXP = new RegExp(HYPHENRANGE);\nconst LONETILDE = '(?:~>?)';\nconst TILDE = `^${LONETILDE}${XRANGEPLAIN}$`;\nconst TILDE_REGEXP = new RegExp(TILDE);\nconst LONECARET = '(?:\\\\^)';\nconst CARET = `^${LONECARET}${XRANGEPLAIN}$`;\nconst CARET_REGEXP = new RegExp(CARET);\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L285\n//\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nfunction replaceTilde(comp) {\n const r = TILDE_REGEXP;\n return comp.replace(r, (_, M, m, p, pr) => {\n let ret;\n if (isX(M)) {\n ret = '';\n }\n else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n }\n else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n }\n else if (pr) {\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n }\n else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;\n }\n return ret;\n });\n}\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L329\n//\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nfunction replaceCaret(comp, options) {\n const r = CARET_REGEXP;\n const z = options?.includePrerelease ? '-0' : '';\n return comp.replace(r, (_, M, m, p, pr) => {\n let ret;\n if (isX(M)) {\n ret = '';\n }\n else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n }\n else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n }\n else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n }\n }\n else if (pr) {\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`;\n }\n else {\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n }\n }\n else {\n ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`;\n }\n }\n else {\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`;\n }\n else {\n ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`;\n }\n }\n else {\n ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;\n }\n }\n return ret;\n });\n}\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L390\nfunction replaceXRange(comp, options) {\n const r = XRANGE_REGEXP;\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n const xM = isX(M);\n const xm = xM || isX(m);\n const xp = xm || isX(p);\n const anyX = xp;\n if (gtlt === '=' && anyX) {\n gtlt = '';\n }\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options?.includePrerelease ? '-0' : '';\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0';\n }\n else {\n // nothing is forbidden\n ret = '*';\n }\n }\n else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0;\n }\n p = 0;\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>=';\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n }\n else {\n m = +m + 1;\n p = 0;\n }\n }\n else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<';\n if (xm) {\n M = +M + 1;\n }\n else {\n m = +m + 1;\n }\n }\n if (gtlt === '<') {\n pr = '-0';\n }\n ret = `${gtlt + M}.${m}.${p}${pr}`;\n }\n else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n }\n else if (xp) {\n ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`;\n }\n return ret;\n });\n}\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L488\n//\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nfunction replaceHyphen(comp, options) {\n const r = HYPHENRANGE_REGEXP;\n return comp.replace(r, (_, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = '';\n }\n else if (isX(fm)) {\n from = `>=${fM}.0.0${options?.includePrerelease ? '-0' : ''}`;\n }\n else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${options?.includePrerelease ? '-0' : ''}`;\n }\n else if (fpr) {\n from = `>=${from}`;\n }\n else {\n from = `>=${from}${options?.includePrerelease ? '-0' : ''}`;\n }\n if (isX(tM)) {\n to = '';\n }\n else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`;\n }\n else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`;\n }\n else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`;\n }\n else if (options?.includePrerelease) {\n to = `<${tM}.${tm}.${+tp + 1}-0`;\n }\n else {\n to = `<=${to}`;\n }\n return `${from} ${to}`.trim();\n });\n}\n//# sourceMappingURL=semver.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.massUnwrap = exports.unwrap = exports.massWrap = exports.wrap = void 0;\n// Default to complaining loudly when things don't go according to plan.\n// eslint-disable-next-line no-console\nlet logger = console.error.bind(console);\n// Sets a property on an object, preserving its enumerability.\n// This function assumes that the property is already writable.\nfunction defineProperty(obj, name, value) {\n const enumerable = !!obj[name] &&\n Object.prototype.propertyIsEnumerable.call(obj, name);\n Object.defineProperty(obj, name, {\n configurable: true,\n enumerable,\n writable: true,\n value,\n });\n}\nconst wrap = (nodule, name, wrapper) => {\n if (!nodule || !nodule[name]) {\n logger('no original function ' + String(name) + ' to wrap');\n return;\n }\n if (!wrapper) {\n logger('no wrapper function');\n logger(new Error().stack);\n return;\n }\n const original = nodule[name];\n if (typeof original !== 'function' || typeof wrapper !== 'function') {\n logger('original object and wrapper must be functions');\n return;\n }\n const wrapped = wrapper(original, name);\n defineProperty(wrapped, '__original', original);\n defineProperty(wrapped, '__unwrap', () => {\n if (nodule[name] === wrapped) {\n defineProperty(nodule, name, original);\n }\n });\n defineProperty(wrapped, '__wrapped', true);\n defineProperty(nodule, name, wrapped);\n return wrapped;\n};\nexports.wrap = wrap;\nconst massWrap = (nodules, names, wrapper) => {\n if (!nodules) {\n logger('must provide one or more modules to patch');\n logger(new Error().stack);\n return;\n }\n else if (!Array.isArray(nodules)) {\n nodules = [nodules];\n }\n if (!(names && Array.isArray(names))) {\n logger('must provide one or more functions to wrap on modules');\n return;\n }\n nodules.forEach(nodule => {\n names.forEach(name => {\n (0, exports.wrap)(nodule, name, wrapper);\n });\n });\n};\nexports.massWrap = massWrap;\nconst unwrap = (nodule, name) => {\n if (!nodule || !nodule[name]) {\n logger('no function to unwrap.');\n logger(new Error().stack);\n return;\n }\n const wrapped = nodule[name];\n if (!wrapped.__unwrap) {\n logger('no original to unwrap to -- has ' +\n String(name) +\n ' already been unwrapped?');\n }\n else {\n wrapped.__unwrap();\n return;\n }\n};\nexports.unwrap = unwrap;\nconst massUnwrap = (nodules, names) => {\n if (!nodules) {\n logger('must provide one or more modules to patch');\n logger(new Error().stack);\n return;\n }\n else if (!Array.isArray(nodules)) {\n nodules = [nodules];\n }\n if (!(names && Array.isArray(names))) {\n logger('must provide one or more functions to unwrap on modules');\n return;\n }\n nodules.forEach(nodule => {\n names.forEach(name => {\n (0, exports.unwrap)(nodule, name);\n });\n });\n};\nexports.massUnwrap = massUnwrap;\nfunction shimmer(options) {\n if (options && options.logger) {\n if (typeof options.logger !== 'function') {\n logger(\"new logger isn't a function, not replacing\");\n }\n else {\n logger = options.logger;\n }\n }\n}\nexports.default = shimmer;\nshimmer.wrap = exports.wrap;\nshimmer.massWrap = exports.massWrap;\nshimmer.unwrap = exports.unwrap;\nshimmer.massUnwrap = exports.massUnwrap;\n//# sourceMappingURL=shimmer.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationAbstract = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst api_logs_1 = require(\"@opentelemetry/api-logs\");\nconst shimmer = require(\"./shimmer\");\n/**\n * Base abstract internal class for instrumenting node and web plugins\n */\nclass InstrumentationAbstract {\n _config = {};\n _tracer;\n _meter;\n _logger;\n _diag;\n instrumentationName;\n instrumentationVersion;\n constructor(instrumentationName, instrumentationVersion, config) {\n this.instrumentationName = instrumentationName;\n this.instrumentationVersion = instrumentationVersion;\n this.setConfig(config);\n this._diag = api_1.diag.createComponentLogger({\n namespace: instrumentationName,\n });\n this._tracer = api_1.trace.getTracer(instrumentationName, instrumentationVersion);\n this._meter = api_1.metrics.getMeter(instrumentationName, instrumentationVersion);\n this._logger = api_logs_1.logs.getLogger(instrumentationName, instrumentationVersion);\n this._updateMetricInstruments();\n }\n /* Api to wrap instrumented method */\n _wrap = shimmer.wrap;\n /* Api to unwrap instrumented methods */\n _unwrap = shimmer.unwrap;\n /* Api to mass wrap instrumented method */\n _massWrap = shimmer.massWrap;\n /* Api to mass unwrap instrumented methods */\n _massUnwrap = shimmer.massUnwrap;\n /* Returns meter */\n get meter() {\n return this._meter;\n }\n /**\n * Sets MeterProvider to this plugin\n * @param meterProvider\n */\n setMeterProvider(meterProvider) {\n this._meter = meterProvider.getMeter(this.instrumentationName, this.instrumentationVersion);\n this._updateMetricInstruments();\n }\n /* Returns logger */\n get logger() {\n return this._logger;\n }\n /**\n * Sets LoggerProvider to this plugin\n * @param loggerProvider\n */\n setLoggerProvider(loggerProvider) {\n this._logger = loggerProvider.getLogger(this.instrumentationName, this.instrumentationVersion);\n }\n /**\n * @experimental\n *\n * Get module definitions defined by {@link init}.\n * This can be used for experimental compile-time instrumentation.\n *\n * @returns an array of {@link InstrumentationModuleDefinition}\n */\n getModuleDefinitions() {\n const initResult = this.init() ?? [];\n if (!Array.isArray(initResult)) {\n return [initResult];\n }\n return initResult;\n }\n /**\n * Sets the new metric instruments with the current Meter.\n */\n _updateMetricInstruments() {\n return;\n }\n /* Returns InstrumentationConfig */\n getConfig() {\n return this._config;\n }\n /**\n * Sets InstrumentationConfig to this plugin\n * @param config\n */\n setConfig(config) {\n // copy config first level properties to ensure they are immutable.\n // nested properties are not copied, thus are mutable from the outside.\n this._config = {\n enabled: true,\n ...config,\n };\n }\n /**\n * Sets TraceProvider to this plugin\n * @param tracerProvider\n */\n setTracerProvider(tracerProvider) {\n this._tracer = tracerProvider.getTracer(this.instrumentationName, this.instrumentationVersion);\n }\n /* Returns tracer */\n get tracer() {\n return this._tracer;\n }\n /**\n * Execute span customization hook, if configured, and log any errors.\n * Any semantics of the trigger and info are defined by the specific instrumentation.\n * @param hookHandler The optional hook handler which the user has configured via instrumentation config\n * @param triggerName The name of the trigger for executing the hook for logging purposes\n * @param span The span to which the hook should be applied\n * @param info The info object to be passed to the hook, with useful data the hook may use\n */\n _runSpanCustomizationHook(hookHandler, triggerName, span, info) {\n if (!hookHandler) {\n return;\n }\n try {\n hookHandler(span, info);\n }\n catch (e) {\n this._diag.error(`Error running span customization hook due to exception in handler`, { triggerName }, e);\n }\n }\n}\nexports.InstrumentationAbstract = InstrumentationAbstract;\n//# sourceMappingURL=instrumentation.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModuleNameTrie = exports.ModuleNameSeparator = void 0;\nexports.ModuleNameSeparator = '/';\n/**\n * Node in a `ModuleNameTrie`\n */\nclass ModuleNameTrieNode {\n hooks = [];\n children = new Map();\n}\n/**\n * Trie containing nodes that represent a part of a module name (i.e. the parts separated by forward slash)\n */\nclass ModuleNameTrie {\n _trie = new ModuleNameTrieNode();\n _counter = 0;\n /**\n * Insert a module hook into the trie\n *\n * @param {Hooked} hook Hook\n */\n insert(hook) {\n let trieNode = this._trie;\n for (const moduleNamePart of hook.moduleName.split(exports.ModuleNameSeparator)) {\n let nextNode = trieNode.children.get(moduleNamePart);\n if (!nextNode) {\n nextNode = new ModuleNameTrieNode();\n trieNode.children.set(moduleNamePart, nextNode);\n }\n trieNode = nextNode;\n }\n trieNode.hooks.push({ hook, insertedId: this._counter++ });\n }\n /**\n * Search for matching hooks in the trie\n *\n * @param {string} moduleName Module name\n * @param {boolean} maintainInsertionOrder Whether to return the results in insertion order\n * @param {boolean} fullOnly Whether to return only full matches\n * @returns {Hooked[]} Matching hooks\n */\n search(moduleName, { maintainInsertionOrder, fullOnly } = {}) {\n let trieNode = this._trie;\n const results = [];\n let foundFull = true;\n for (const moduleNamePart of moduleName.split(exports.ModuleNameSeparator)) {\n const nextNode = trieNode.children.get(moduleNamePart);\n if (!nextNode) {\n foundFull = false;\n break;\n }\n if (!fullOnly) {\n results.push(...nextNode.hooks);\n }\n trieNode = nextNode;\n }\n if (fullOnly && foundFull) {\n results.push(...trieNode.hooks);\n }\n if (results.length === 0) {\n return [];\n }\n if (results.length === 1) {\n return [results[0].hook];\n }\n if (maintainInsertionOrder) {\n results.sort((a, b) => a.insertedId - b.insertedId);\n }\n return results.map(({ hook }) => hook);\n }\n}\nexports.ModuleNameTrie = ModuleNameTrie;\n//# sourceMappingURL=ModuleNameTrie.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequireInTheMiddleSingleton = void 0;\nconst require_in_the_middle_1 = require(\"require-in-the-middle\");\nconst path = require(\"path\");\nconst ModuleNameTrie_1 = require(\"./ModuleNameTrie\");\n/**\n * Whether Mocha is running in this process\n * Inspired by https://github.com/AndreasPizsa/detect-mocha\n *\n * @type {boolean}\n */\nconst isMocha = [\n 'afterEach',\n 'after',\n 'beforeEach',\n 'before',\n 'describe',\n 'it',\n].every(fn => {\n // @ts-expect-error TS7053: Element implicitly has an 'any' type\n return typeof global[fn] === 'function';\n});\n/**\n * Singleton class for `require-in-the-middle`\n * Allows instrumentation plugins to patch modules with only a single `require` patch\n * WARNING: Because this class will create its own `require-in-the-middle` (RITM) instance,\n * we should minimize the number of new instances of this class.\n * Multiple instances of `@opentelemetry/instrumentation` (e.g. multiple versions) in a single process\n * will result in multiple instances of RITM, which will have an impact\n * on the performance of instrumentation hooks being applied.\n */\nclass RequireInTheMiddleSingleton {\n _moduleNameTrie = new ModuleNameTrie_1.ModuleNameTrie();\n static _instance;\n constructor() {\n this._initialize();\n }\n _initialize() {\n new require_in_the_middle_1.Hook(\n // Intercept all `require` calls; we will filter the matching ones below\n null, { internals: true }, (exports, name, basedir) => {\n // For internal files on Windows, `name` will use backslash as the path separator\n const normalizedModuleName = normalizePathSeparators(name);\n const matches = this._moduleNameTrie.search(normalizedModuleName, {\n maintainInsertionOrder: true,\n // For core modules (e.g. `fs`), do not match on sub-paths (e.g. `fs/promises').\n // This matches the behavior of `require-in-the-middle`.\n // `basedir` is always `undefined` for core modules.\n fullOnly: basedir === undefined,\n });\n for (const { onRequire } of matches) {\n exports = onRequire(exports, name, basedir);\n }\n return exports;\n });\n }\n /**\n * Register a hook with `require-in-the-middle`\n *\n * @param {string} moduleName Module name\n * @param {OnRequireFn} onRequire Hook function\n * @returns {Hooked} Registered hook\n */\n register(moduleName, onRequire) {\n const hooked = { moduleName, onRequire };\n this._moduleNameTrie.insert(hooked);\n return hooked;\n }\n /**\n * Get the `RequireInTheMiddleSingleton` singleton\n *\n * @returns {RequireInTheMiddleSingleton} Singleton of `RequireInTheMiddleSingleton`\n */\n static getInstance() {\n // Mocha runs all test suites in the same process\n // This prevents test suites from sharing a singleton\n if (isMocha)\n return new RequireInTheMiddleSingleton();\n return (this._instance =\n this._instance ?? new RequireInTheMiddleSingleton());\n }\n}\nexports.RequireInTheMiddleSingleton = RequireInTheMiddleSingleton;\n/**\n * Normalize the path separators to forward slash in a module name or path\n *\n * @param {string} moduleNameOrPath Module name or path\n * @returns {string} Normalized module name or path\n */\nfunction normalizePathSeparators(moduleNameOrPath) {\n return path.sep !== ModuleNameTrie_1.ModuleNameSeparator\n ? moduleNameOrPath.split(path.sep).join(ModuleNameTrie_1.ModuleNameSeparator)\n : moduleNameOrPath;\n}\n//# sourceMappingURL=RequireInTheMiddleSingleton.js.map", - "// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.\n//\n// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.\n\nconst importHooks = [] // TODO should this be a Set?\nconst setters = new WeakMap()\nconst getters = new WeakMap()\nconst specifiers = new Map()\nconst toHook = []\n\nconst proxyHandler = {\n set (target, name, value) {\n const set = setters.get(target)\n const setter = set && set[name]\n if (typeof setter === 'function') {\n return setter(value)\n }\n // If a module doesn't export the property being assigned (e.g. no default\n // export), there is no setter to call. Don't crash userland code.\n return true\n },\n\n get (target, name) {\n if (name === Symbol.toStringTag) {\n return 'Module'\n }\n\n const getter = getters.get(target)[name]\n\n if (typeof getter === 'function') {\n return getter()\n }\n },\n\n defineProperty (target, property, descriptor) {\n if ((!('value' in descriptor))) {\n throw new Error('Getters/setters are not supported for exports property descriptors.')\n }\n\n const set = setters.get(target)\n const setter = set && set[property]\n if (typeof setter === 'function') {\n return setter(descriptor.value)\n }\n return true\n }\n}\n\nfunction register (name, namespace, set, get, specifier) {\n specifiers.set(name, specifier)\n setters.set(namespace, set)\n getters.set(namespace, get)\n const proxy = new Proxy(namespace, proxyHandler)\n importHooks.forEach(hook => hook(name, proxy, specifier))\n toHook.push([name, proxy, specifier])\n}\n\nexports.register = register\nexports.importHooks = importHooks\nexports.specifiers = specifiers\nexports.toHook = toHook\n", - "// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.\n//\n// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.\n\nconst path = require('path')\nconst moduleDetailsFromPath = require('module-details-from-path')\nconst { fileURLToPath } = require('url')\nconst { MessageChannel } = require('worker_threads')\n\nlet { isBuiltin } = require('module')\nif (!isBuiltin) {\n isBuiltin = () => true\n}\n\nconst {\n importHooks,\n specifiers,\n toHook\n} = require('./lib/register')\n\nfunction addHook (hook) {\n importHooks.push(hook)\n toHook.forEach(([name, namespace, specifier]) => hook(name, namespace, specifier))\n}\n\nfunction removeHook (hook) {\n const index = importHooks.indexOf(hook)\n if (index > -1) {\n importHooks.splice(index, 1)\n }\n}\n\nfunction callHookFn (hookFn, namespace, name, baseDir) {\n const newDefault = hookFn(namespace, name, baseDir)\n if (newDefault && newDefault !== namespace) {\n // Only ESM modules that actually export `default` can have it reassigned.\n // Some hooks return a value unconditionally; avoid crashing when the module\n // has no default export (see issue #188).\n if ('default' in namespace) {\n namespace.default = newDefault\n }\n }\n}\n\nlet sendModulesToLoader\n\n/**\n * EXPERIMENTAL\n * This feature is experimental and may change in minor versions.\n * **NOTE** This feature is incompatible with the {internals: true} Hook option.\n *\n * Creates a message channel with a port that can be used to add hooks to the\n * list of exclusively included modules.\n *\n * This can be used to only wrap modules that are Hook'ed, however modules need\n * to be hooked before they are imported.\n *\n * ```ts\n * import { register } from 'module'\n * import { Hook, createAddHookMessageChannel } from 'import-in-the-middle'\n *\n * const { registerOptions, waitForAllMessagesAcknowledged } = createAddHookMessageChannel()\n *\n * register('import-in-the-middle/hook.mjs', import.meta.url, registerOptions)\n *\n * Hook(['fs'], (exported, name, baseDir) => {\n * // Instrument the fs module\n * })\n *\n * // Ensure that the loader has acknowledged all the modules\n * // before we allow execution to continue\n * await waitForAllMessagesAcknowledged()\n * ```\n */\nfunction createAddHookMessageChannel () {\n const { port1, port2 } = new MessageChannel()\n let pendingAckCount = 0\n let resolveFn\n\n sendModulesToLoader = (modules) => {\n pendingAckCount++\n port1.postMessage(modules)\n }\n\n port1.on('message', () => {\n pendingAckCount--\n\n if (resolveFn && pendingAckCount <= 0) {\n resolveFn()\n }\n }).unref()\n\n function waitForAllMessagesAcknowledged () {\n // This timer is to prevent the process from exiting with code 13:\n // 13: Unsettled Top-Level Await.\n const timer = setInterval(() => { }, 1000)\n const promise = new Promise((resolve) => {\n resolveFn = resolve\n }).then(() => { clearInterval(timer) })\n\n if (pendingAckCount === 0) {\n resolveFn()\n }\n\n return promise\n }\n\n const addHookMessagePort = port2\n const registerOptions = { data: { addHookMessagePort, include: [] }, transferList: [addHookMessagePort] }\n\n return { registerOptions, addHookMessagePort, waitForAllMessagesAcknowledged }\n}\n\nfunction Hook (modules, options, hookFn) {\n if ((this instanceof Hook) === false) return new Hook(modules, options, hookFn)\n if (typeof modules === 'function') {\n hookFn = modules\n modules = null\n options = null\n } else if (typeof options === 'function') {\n hookFn = options\n options = null\n }\n const internals = options ? options.internals === true : false\n\n if (sendModulesToLoader && Array.isArray(modules)) {\n sendModulesToLoader(modules)\n }\n\n this._iitmHook = (name, namespace, specifier) => {\n const loadUrl = name\n const isNodeUrl = loadUrl.startsWith('node:')\n let filePath, baseDir\n\n if (isNodeUrl) {\n // Normalize builtin module name to *not* have 'node:' prefix, unless\n // required, as it is for 'node:test' and some others. `module.isBuiltin`\n // is available in all Node.js versions that have node:-only modules.\n const unprefixed = name.slice(5)\n if (isBuiltin(unprefixed)) {\n name = unprefixed\n }\n } else if (loadUrl.startsWith('file://')) {\n const stackTraceLimit = Error.stackTraceLimit\n Error.stackTraceLimit = 0\n try {\n filePath = fileURLToPath(name)\n name = filePath\n } catch (e) {}\n Error.stackTraceLimit = stackTraceLimit\n\n if (filePath) {\n const details = moduleDetailsFromPath(filePath)\n if (details) {\n name = details.name\n baseDir = details.basedir\n }\n }\n }\n\n if (modules) {\n for (const matchArg of modules) {\n if (filePath && matchArg === filePath) {\n // abspath match\n callHookFn(hookFn, namespace, filePath, undefined)\n } else if (matchArg === name) {\n if (!baseDir) {\n // built-in module (or unexpected non file:// name?)\n callHookFn(hookFn, namespace, name, baseDir)\n } else if (baseDir.endsWith(specifiers.get(loadUrl))) {\n // An import of the top-level module (e.g. `import 'ioredis'`).\n // Note: Slight behaviour difference from RITM. RITM uses\n // `require.resolve(name)` to see if filename is the module\n // main file, which will catch `require('ioredis/built/index.js')`.\n // The check here will not catch `import 'ioredis/built/index.js'`.\n callHookFn(hookFn, namespace, name, baseDir)\n } else if (internals) {\n const internalPath = name + path.sep + path.relative(baseDir, filePath)\n callHookFn(hookFn, namespace, internalPath, baseDir)\n }\n } else if (matchArg === specifier) {\n callHookFn(hookFn, namespace, specifier, baseDir)\n }\n }\n } else {\n callHookFn(hookFn, namespace, name, baseDir)\n }\n }\n\n addHook(this._iitmHook)\n}\n\nHook.prototype.unhook = function () {\n removeHook(this._iitmHook)\n}\n\nmodule.exports = Hook\nmodule.exports.Hook = Hook\nmodule.exports.addHook = addHook\nmodule.exports.removeHook = removeHook\nmodule.exports.createAddHookMessageChannel = createAddHookMessageChannel\n", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isWrapped = exports.safeExecuteInTheMiddleAsync = exports.safeExecuteInTheMiddle = void 0;\n/**\n * function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nfunction safeExecuteInTheMiddle(execute, onFinish, preventThrowingError) {\n let error;\n let result;\n try {\n result = execute();\n }\n catch (e) {\n error = e;\n }\n finally {\n onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return result;\n }\n}\nexports.safeExecuteInTheMiddle = safeExecuteInTheMiddle;\n/**\n * Async function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nasync function safeExecuteInTheMiddleAsync(execute, onFinish, preventThrowingError) {\n let error;\n let result;\n try {\n result = await execute();\n }\n catch (e) {\n error = e;\n }\n finally {\n await onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return result;\n }\n}\nexports.safeExecuteInTheMiddleAsync = safeExecuteInTheMiddleAsync;\n/**\n * Checks if certain function has been already wrapped\n * @param func\n */\nfunction isWrapped(func) {\n return (typeof func === 'function' &&\n typeof func.__original === 'function' &&\n typeof func.__unwrap === 'function' &&\n func.__wrapped === true);\n}\nexports.isWrapped = isWrapped;\n//# sourceMappingURL=utils.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationBase = void 0;\nconst path = require(\"path\");\nconst util_1 = require(\"util\");\nconst semver_1 = require(\"../../semver\");\nconst shimmer_1 = require(\"../../shimmer\");\nconst instrumentation_1 = require(\"../../instrumentation\");\nconst RequireInTheMiddleSingleton_1 = require(\"./RequireInTheMiddleSingleton\");\nconst import_in_the_middle_1 = require(\"import-in-the-middle\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst require_in_the_middle_1 = require(\"require-in-the-middle\");\nconst fs_1 = require(\"fs\");\nconst utils_1 = require(\"../../utils\");\n/**\n * Base abstract class for instrumenting node plugins\n */\nclass InstrumentationBase extends instrumentation_1.InstrumentationAbstract {\n _modules;\n _hooks = [];\n _requireInTheMiddleSingleton = RequireInTheMiddleSingleton_1.RequireInTheMiddleSingleton.getInstance();\n _enabled = false;\n constructor(instrumentationName, instrumentationVersion, config) {\n super(instrumentationName, instrumentationVersion, config);\n let modules = this.init();\n if (modules && !Array.isArray(modules)) {\n modules = [modules];\n }\n this._modules = modules || [];\n if (this._config.enabled) {\n this.enable();\n }\n }\n _wrap = (moduleExports, name, wrapper) => {\n if ((0, utils_1.isWrapped)(moduleExports[name])) {\n this._unwrap(moduleExports, name);\n }\n if (!util_1.types.isProxy(moduleExports)) {\n return (0, shimmer_1.wrap)(moduleExports, name, wrapper);\n }\n else {\n const wrapped = (0, shimmer_1.wrap)(Object.assign({}, moduleExports), name, wrapper);\n Object.defineProperty(moduleExports, name, {\n value: wrapped,\n });\n return wrapped;\n }\n };\n _unwrap = (moduleExports, name) => {\n if (!util_1.types.isProxy(moduleExports)) {\n return (0, shimmer_1.unwrap)(moduleExports, name);\n }\n else {\n return Object.defineProperty(moduleExports, name, {\n value: moduleExports[name],\n });\n }\n };\n _massWrap = (moduleExportsArray, names, wrapper) => {\n if (!moduleExportsArray) {\n api_1.diag.error('must provide one or more modules to patch');\n return;\n }\n else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n if (!(names && Array.isArray(names))) {\n api_1.diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._wrap(moduleExports, name, wrapper);\n });\n });\n };\n _massUnwrap = (moduleExportsArray, names) => {\n if (!moduleExportsArray) {\n api_1.diag.error('must provide one or more modules to patch');\n return;\n }\n else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n if (!(names && Array.isArray(names))) {\n api_1.diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._unwrap(moduleExports, name);\n });\n });\n };\n _warnOnPreloadedModules() {\n this._modules.forEach((module) => {\n const { name } = module;\n try {\n const resolvedModule = require.resolve(name);\n if (require.cache[resolvedModule]) {\n // Module is already cached, which means the instrumentation hook might not work\n this._diag.warn(`Module ${name} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${name}`);\n }\n }\n catch {\n // Module isn't available, we can simply skip\n }\n });\n }\n _extractPackageVersion(baseDir) {\n try {\n const json = (0, fs_1.readFileSync)(path.join(baseDir, 'package.json'), {\n encoding: 'utf8',\n });\n const version = JSON.parse(json).version;\n return typeof version === 'string' ? version : undefined;\n }\n catch {\n api_1.diag.warn('Failed extracting version', baseDir);\n }\n return undefined;\n }\n _onRequire(module, exports, name, baseDir) {\n if (!baseDir) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for nodejs core module on require hook', {\n module: module.name,\n });\n return module.patch(exports);\n }\n }\n return exports;\n }\n const version = this._extractPackageVersion(baseDir);\n module.moduleVersion = version;\n if (module.name === name) {\n // main module\n if (isSupported(module.supportedVersions, version, module.includePrerelease)) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for module on require hook', {\n module: module.name,\n version: module.moduleVersion,\n baseDir,\n });\n return module.patch(exports, module.moduleVersion);\n }\n }\n }\n return exports;\n }\n // internal file\n const files = module.files ?? [];\n const normalizedName = path.normalize(name);\n const supportedFileInstrumentations = files.filter(f => f.name === normalizedName &&\n isSupported(f.supportedVersions, version, module.includePrerelease));\n return supportedFileInstrumentations.reduce((patchedExports, file) => {\n file.moduleExports = patchedExports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for nodejs module file on require hook', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n baseDir,\n });\n // patch signature is not typed, so we cast it assuming it's correct\n return file.patch(patchedExports, module.moduleVersion);\n }\n return patchedExports;\n }, exports);\n }\n enable() {\n if (this._enabled) {\n return;\n }\n this._enabled = true;\n // already hooked, just call patch again\n if (this._hooks.length > 0) {\n for (const module of this._modules) {\n if (typeof module.patch === 'function' && module.moduleExports) {\n this._diag.debug('Applying instrumentation patch for nodejs module on instrumentation enabled', {\n module: module.name,\n version: module.moduleVersion,\n });\n module.patch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug('Applying instrumentation patch for nodejs module file on instrumentation enabled', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n });\n file.patch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n return;\n }\n this._warnOnPreloadedModules();\n for (const module of this._modules) {\n const hookFn = (exports, name, baseDir) => {\n if (!baseDir && path.isAbsolute(name)) {\n // Change IITM `name` and `baseDir` values to match what RITM returns.\n // See \"Comparing to RITM\" on https://github.com/nodejs/import-in-the-middle/pull/241\n // for an example of the differences.\n const parsedPath = path.parse(name);\n name = parsedPath.name;\n baseDir = parsedPath.dir;\n }\n return this._onRequire(module, exports, name, baseDir);\n };\n const onRequire = (exports, name, baseDir) => {\n return this._onRequire(module, exports, name, baseDir);\n };\n // `RequireInTheMiddleSingleton` does not support absolute paths.\n // For an absolute paths, we must create a separate instance of the\n // require-in-the-middle `Hook`.\n const hook = path.isAbsolute(module.name)\n ? new require_in_the_middle_1.Hook([module.name], { internals: true }, onRequire)\n : this._requireInTheMiddleSingleton.register(module.name, onRequire);\n this._hooks.push(hook);\n const esmHook = new import_in_the_middle_1.Hook([module.name], { internals: true }, hookFn);\n this._hooks.push(esmHook);\n }\n }\n disable() {\n if (!this._enabled) {\n return;\n }\n this._enabled = false;\n for (const module of this._modules) {\n if (typeof module.unpatch === 'function' && module.moduleExports) {\n this._diag.debug('Removing instrumentation patch for nodejs module on instrumentation disabled', {\n module: module.name,\n version: module.moduleVersion,\n });\n module.unpatch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug('Removing instrumentation patch for nodejs module file on instrumentation disabled', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n });\n file.unpatch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n }\n isEnabled() {\n return this._enabled;\n }\n}\nexports.InstrumentationBase = InstrumentationBase;\nfunction isSupported(supportedVersions, version, includePrerelease) {\n if (typeof version === 'undefined') {\n // If we don't have the version, accept the wildcard case only\n return supportedVersions.includes('*');\n }\n return supportedVersions.some(supportedVersion => {\n return (0, semver_1.satisfies)(version, supportedVersion, { includePrerelease });\n });\n}\n//# sourceMappingURL=instrumentation.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = void 0;\nvar path_1 = require(\"path\");\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return path_1.normalize; } });\n//# sourceMappingURL=normalize.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = exports.InstrumentationBase = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return instrumentation_1.InstrumentationBase; } });\nvar normalize_1 = require(\"./normalize\");\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return normalize_1.normalize; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = exports.InstrumentationBase = void 0;\nvar node_1 = require(\"./node\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return node_1.InstrumentationBase; } });\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return node_1.normalize; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationNodeModuleDefinition = void 0;\nclass InstrumentationNodeModuleDefinition {\n files;\n name;\n supportedVersions;\n patch;\n unpatch;\n constructor(name, supportedVersions, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n patch, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n unpatch, files) {\n this.files = files || [];\n this.name = name;\n this.supportedVersions = supportedVersions;\n this.patch = patch;\n this.unpatch = unpatch;\n }\n}\nexports.InstrumentationNodeModuleDefinition = InstrumentationNodeModuleDefinition;\n//# sourceMappingURL=instrumentationNodeModuleDefinition.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationNodeModuleFile = void 0;\nconst index_1 = require(\"./platform/index\");\nclass InstrumentationNodeModuleFile {\n name;\n supportedVersions;\n patch;\n unpatch;\n constructor(name, supportedVersions, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n patch, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n unpatch) {\n this.name = (0, index_1.normalize)(name);\n this.supportedVersions = supportedVersions;\n this.patch = patch;\n this.unpatch = unpatch;\n }\n}\nexports.InstrumentationNodeModuleFile = InstrumentationNodeModuleFile;\n//# sourceMappingURL=instrumentationNodeModuleFile.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semconvStabilityFromStr = exports.SemconvStability = void 0;\nvar SemconvStability;\n(function (SemconvStability) {\n /** Emit only stable semantic conventions. */\n SemconvStability[SemconvStability[\"STABLE\"] = 1] = \"STABLE\";\n /** Emit only old semantic conventions. */\n SemconvStability[SemconvStability[\"OLD\"] = 2] = \"OLD\";\n /** Emit both stable and old semantic conventions. */\n SemconvStability[SemconvStability[\"DUPLICATE\"] = 3] = \"DUPLICATE\";\n})(SemconvStability = exports.SemconvStability || (exports.SemconvStability = {}));\n/**\n * Determine the appropriate semconv stability for the given namespace.\n *\n * This will parse the given string of comma-separated values (often\n * `process.env.OTEL_SEMCONV_STABILITY_OPT_IN`) looking for the `${namespace}`\n * or `${namespace}/dup` tokens. This is a pattern defined by a number of\n * non-normative semconv documents.\n *\n * For example:\n * - namespace 'http': https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\n * - namespace 'database': https://opentelemetry.io/docs/specs/semconv/non-normative/database-migration/\n * - namespace 'k8s': https://opentelemetry.io/docs/specs/semconv/non-normative/k8s-migration/\n *\n * Usage:\n *\n * import {SemconvStability, semconvStabilityFromStr} from '@opentelemetry/instrumentation';\n *\n * export class FooInstrumentation extends InstrumentationBase {\n * private _semconvStability: SemconvStability;\n * constructor(config: FooInstrumentationConfig = {}) {\n * super('@opentelemetry/instrumentation-foo', VERSION, config);\n *\n * // When supporting the OTEL_SEMCONV_STABILITY_OPT_IN envvar\n * this._semconvStability = semconvStabilityFromStr(\n * 'http',\n * process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n * );\n *\n * // or when supporting a `semconvStabilityOptIn` config option (e.g. for\n * // the web where there are no envvars).\n * this._semconvStability = semconvStabilityFromStr(\n * 'http',\n * config?.semconvStabilityOptIn\n * );\n * }\n * }\n *\n * // Then, to apply semconv, use the following or similar:\n * if (this._semconvStability & SemconvStability.OLD) {\n * // ...\n * }\n * if (this._semconvStability & SemconvStability.STABLE) {\n * // ...\n * }\n *\n */\nfunction semconvStabilityFromStr(namespace, str) {\n let semconvStability = SemconvStability.OLD;\n // The same parsing of `str` as `getStringListFromEnv` from the core pkg.\n const entries = str\n ?.split(',')\n .map(v => v.trim())\n .filter(s => s !== '');\n for (const entry of entries ?? []) {\n if (entry.toLowerCase() === namespace + '/dup') {\n // DUPLICATE takes highest precedence.\n semconvStability = SemconvStability.DUPLICATE;\n break;\n }\n else if (entry.toLowerCase() === namespace) {\n semconvStability = SemconvStability.STABLE;\n }\n }\n return semconvStability;\n}\nexports.semconvStabilityFromStr = semconvStabilityFromStr;\n//# sourceMappingURL=semconvStability.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semconvStabilityFromStr = exports.SemconvStability = exports.safeExecuteInTheMiddleAsync = exports.safeExecuteInTheMiddle = exports.isWrapped = exports.InstrumentationNodeModuleFile = exports.InstrumentationNodeModuleDefinition = exports.InstrumentationBase = exports.registerInstrumentations = void 0;\nvar autoLoader_1 = require(\"./autoLoader\");\nObject.defineProperty(exports, \"registerInstrumentations\", { enumerable: true, get: function () { return autoLoader_1.registerInstrumentations; } });\nvar index_1 = require(\"./platform/index\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return index_1.InstrumentationBase; } });\nvar instrumentationNodeModuleDefinition_1 = require(\"./instrumentationNodeModuleDefinition\");\nObject.defineProperty(exports, \"InstrumentationNodeModuleDefinition\", { enumerable: true, get: function () { return instrumentationNodeModuleDefinition_1.InstrumentationNodeModuleDefinition; } });\nvar instrumentationNodeModuleFile_1 = require(\"./instrumentationNodeModuleFile\");\nObject.defineProperty(exports, \"InstrumentationNodeModuleFile\", { enumerable: true, get: function () { return instrumentationNodeModuleFile_1.InstrumentationNodeModuleFile; } });\nvar utils_1 = require(\"./utils\");\nObject.defineProperty(exports, \"isWrapped\", { enumerable: true, get: function () { return utils_1.isWrapped; } });\nObject.defineProperty(exports, \"safeExecuteInTheMiddle\", { enumerable: true, get: function () { return utils_1.safeExecuteInTheMiddle; } });\nObject.defineProperty(exports, \"safeExecuteInTheMiddleAsync\", { enumerable: true, get: function () { return utils_1.safeExecuteInTheMiddleAsync; } });\nvar semconvStability_1 = require(\"./semconvStability\");\nObject.defineProperty(exports, \"SemconvStability\", { enumerable: true, get: function () { return semconvStability_1.SemconvStability; } });\nObject.defineProperty(exports, \"semconvStabilityFromStr\", { enumerable: true, get: function () { return semconvStability_1.semconvStabilityFromStr; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.range = exports.balanced = void 0;\nconst balanced = (a, b, str) => {\n const ma = a instanceof RegExp ? maybeMatch(a, str) : a;\n const mb = b instanceof RegExp ? maybeMatch(b, str) : b;\n const r = ma !== null && mb != null && (0, exports.range)(ma, mb, str);\n return (r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + ma.length, r[1]),\n post: str.slice(r[1] + mb.length),\n });\n};\nexports.balanced = balanced;\nconst maybeMatch = (reg, str) => {\n const m = str.match(reg);\n return m ? m[0] : null;\n};\nconst range = (a, b, str) => {\n let begs, beg, left, right = undefined, result;\n let ai = str.indexOf(a);\n let bi = str.indexOf(b, ai + 1);\n let i = ai;\n if (ai >= 0 && bi > 0) {\n if (a === b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n while (i >= 0 && !result) {\n if (i === ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n }\n else if (begs.length === 1) {\n const r = begs.pop();\n if (r !== undefined)\n result = [r, bi];\n }\n else {\n beg = begs.pop();\n if (beg !== undefined && beg < left) {\n left = beg;\n right = bi;\n }\n bi = str.indexOf(b, i + 1);\n }\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n if (begs.length && right !== undefined) {\n result = [left, right];\n }\n }\n return result;\n};\nexports.range = range;\n//# sourceMappingURL=index.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EXPANSION_MAX = void 0;\nexports.expand = expand;\nconst balanced_match_1 = require(\"balanced-match\");\nconst escSlash = '\\0SLASH' + Math.random() + '\\0';\nconst escOpen = '\\0OPEN' + Math.random() + '\\0';\nconst escClose = '\\0CLOSE' + Math.random() + '\\0';\nconst escComma = '\\0COMMA' + Math.random() + '\\0';\nconst escPeriod = '\\0PERIOD' + Math.random() + '\\0';\nconst escSlashPattern = new RegExp(escSlash, 'g');\nconst escOpenPattern = new RegExp(escOpen, 'g');\nconst escClosePattern = new RegExp(escClose, 'g');\nconst escCommaPattern = new RegExp(escComma, 'g');\nconst escPeriodPattern = new RegExp(escPeriod, 'g');\nconst slashPattern = /\\\\\\\\/g;\nconst openPattern = /\\\\{/g;\nconst closePattern = /\\\\}/g;\nconst commaPattern = /\\\\,/g;\nconst periodPattern = /\\\\\\./g;\nexports.EXPANSION_MAX = 100_000;\nfunction numeric(str) {\n return !isNaN(str) ? parseInt(str, 10) : str.charCodeAt(0);\n}\nfunction escapeBraces(str) {\n return str\n .replace(slashPattern, escSlash)\n .replace(openPattern, escOpen)\n .replace(closePattern, escClose)\n .replace(commaPattern, escComma)\n .replace(periodPattern, escPeriod);\n}\nfunction unescapeBraces(str) {\n return str\n .replace(escSlashPattern, '\\\\')\n .replace(escOpenPattern, '{')\n .replace(escClosePattern, '}')\n .replace(escCommaPattern, ',')\n .replace(escPeriodPattern, '.');\n}\n/**\n * Basically just str.split(\",\"), but handling cases\n * where we have nested braced sections, which should be\n * treated as individual members, like {a,{b,c},d}\n */\nfunction parseCommaParts(str) {\n if (!str) {\n return [''];\n }\n const parts = [];\n const m = (0, balanced_match_1.balanced)('{', '}', str);\n if (!m) {\n return str.split(',');\n }\n const { pre, body, post } = m;\n const p = pre.split(',');\n p[p.length - 1] += '{' + body + '}';\n const postParts = parseCommaParts(post);\n if (post.length) {\n ;\n p[p.length - 1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n parts.push.apply(parts, p);\n return parts;\n}\nfunction expand(str, options = {}) {\n if (!str) {\n return [];\n }\n const { max = exports.EXPANSION_MAX } = options;\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.slice(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.slice(2);\n }\n return expand_(escapeBraces(str), max, true).map(unescapeBraces);\n}\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\nfunction expand_(str, max, isTop) {\n /** @type {string[]} */\n const expansions = [];\n const m = (0, balanced_match_1.balanced)('{', '}', str);\n if (!m)\n return [str];\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n const pre = m.pre;\n const post = m.post.length ? expand_(m.post, max, false) : [''];\n if (/\\$$/.test(m.pre)) {\n for (let k = 0; k < post.length && k < max; k++) {\n const expansion = pre + '{' + m.body + '}' + post[k];\n expansions.push(expansion);\n }\n }\n else {\n const isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n const isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n const isSequence = isNumericSequence || isAlphaSequence;\n const isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,(?!,).*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand_(str, max, true);\n }\n return [str];\n }\n let n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n }\n else {\n n = parseCommaParts(m.body);\n if (n.length === 1 && n[0] !== undefined) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand_(n[0], max, false).map(embrace);\n //XXX is this necessary? Can't seem to hit it in tests.\n /* c8 ignore start */\n if (n.length === 1) {\n return post.map(p => m.pre + n[0] + p);\n }\n /* c8 ignore stop */\n }\n }\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n let N;\n if (isSequence && n[0] !== undefined && n[1] !== undefined) {\n const x = numeric(n[0]);\n const y = numeric(n[1]);\n const width = Math.max(n[0].length, n[1].length);\n let incr = n.length === 3 && n[2] !== undefined ?\n Math.max(Math.abs(numeric(n[2])), 1)\n : 1;\n let test = lte;\n const reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n const pad = n.some(isPadded);\n N = [];\n for (let i = x; test(i, y); i += incr) {\n let c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\') {\n c = '';\n }\n }\n else {\n c = String(i);\n if (pad) {\n const need = width - c.length;\n if (need > 0) {\n const z = new Array(need + 1).join('0');\n if (i < 0) {\n c = '-' + z + c.slice(1);\n }\n else {\n c = z + c;\n }\n }\n }\n }\n N.push(c);\n }\n }\n else {\n N = [];\n for (let j = 0; j < n.length; j++) {\n N.push.apply(N, expand_(n[j], max, false));\n }\n }\n for (let j = 0; j < N.length; j++) {\n for (let k = 0; k < post.length && expansions.length < max; k++) {\n const expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion) {\n expansions.push(expansion);\n }\n }\n }\n }\n return expansions;\n}\n//# sourceMappingURL=index.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertValidPattern = void 0;\nconst MAX_PATTERN_LENGTH = 1024 * 64;\nconst assertValidPattern = (pattern) => {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern');\n }\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long');\n }\n};\nexports.assertValidPattern = assertValidPattern;\n//# sourceMappingURL=assert-valid-pattern.js.map", - "\"use strict\";\n// translate the various posix character classes into unicode properties\n// this works across all unicode locales\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseClass = void 0;\n// { : [, /u flag required, negated]\nconst posixClasses = {\n '[:alnum:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}', true],\n '[:alpha:]': ['\\\\p{L}\\\\p{Nl}', true],\n '[:ascii:]': ['\\\\x' + '00-\\\\x' + '7f', false],\n '[:blank:]': ['\\\\p{Zs}\\\\t', true],\n '[:cntrl:]': ['\\\\p{Cc}', true],\n '[:digit:]': ['\\\\p{Nd}', true],\n '[:graph:]': ['\\\\p{Z}\\\\p{C}', true, true],\n '[:lower:]': ['\\\\p{Ll}', true],\n '[:print:]': ['\\\\p{C}', true],\n '[:punct:]': ['\\\\p{P}', true],\n '[:space:]': ['\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f', true],\n '[:upper:]': ['\\\\p{Lu}', true],\n '[:word:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}', true],\n '[:xdigit:]': ['A-Fa-f0-9', false],\n};\n// only need to escape a few things inside of brace expressions\n// escapes: [ \\ ] -\nconst braceEscape = (s) => s.replace(/[[\\]\\\\-]/g, '\\\\$&');\n// escape all regexp magic characters\nconst regexpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// everything has already been escaped, we just have to join\nconst rangesToString = (ranges) => ranges.join('');\n// takes a glob string at a posix brace expression, and returns\n// an equivalent regular expression source, and boolean indicating\n// whether the /u flag needs to be applied, and the number of chars\n// consumed to parse the character class.\n// This also removes out of order ranges, and returns ($.) if the\n// entire class just no good.\nconst parseClass = (glob, position) => {\n const pos = position;\n /* c8 ignore start */\n if (glob.charAt(pos) !== '[') {\n throw new Error('not in a brace expression');\n }\n /* c8 ignore stop */\n const ranges = [];\n const negs = [];\n let i = pos + 1;\n let sawStart = false;\n let uflag = false;\n let escaping = false;\n let negate = false;\n let endPos = pos;\n let rangeStart = '';\n WHILE: while (i < glob.length) {\n const c = glob.charAt(i);\n if ((c === '!' || c === '^') && i === pos + 1) {\n negate = true;\n i++;\n continue;\n }\n if (c === ']' && sawStart && !escaping) {\n endPos = i + 1;\n break;\n }\n sawStart = true;\n if (c === '\\\\') {\n if (!escaping) {\n escaping = true;\n i++;\n continue;\n }\n // escaped \\ char, fall through and treat like normal char\n }\n if (c === '[' && !escaping) {\n // either a posix class, a collation equivalent, or just a [\n for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n if (glob.startsWith(cls, i)) {\n // invalid, [a-[] is fine, but not [a-[:alpha]]\n if (rangeStart) {\n return ['$.', false, glob.length - pos, true];\n }\n i += cls.length;\n if (neg)\n negs.push(unip);\n else\n ranges.push(unip);\n uflag = uflag || u;\n continue WHILE;\n }\n }\n }\n // now it's just a normal character, effectively\n escaping = false;\n if (rangeStart) {\n // throw this range away if it's not valid, but others\n // can still match.\n if (c > rangeStart) {\n ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c));\n }\n else if (c === rangeStart) {\n ranges.push(braceEscape(c));\n }\n rangeStart = '';\n i++;\n continue;\n }\n // now might be the start of a range.\n // can be either c-d or c-] or c] or c] at this point\n if (glob.startsWith('-]', i + 1)) {\n ranges.push(braceEscape(c + '-'));\n i += 2;\n continue;\n }\n if (glob.startsWith('-', i + 1)) {\n rangeStart = c;\n i += 2;\n continue;\n }\n // not the start of a range, just a single character\n ranges.push(braceEscape(c));\n i++;\n }\n if (endPos < i) {\n // didn't see the end of the class, not a valid class,\n // but might still be valid as a literal match.\n return ['', false, 0, false];\n }\n // if we got no ranges and no negates, then we have a range that\n // cannot possibly match anything, and that poisons the whole glob\n if (!ranges.length && !negs.length) {\n return ['$.', false, glob.length - pos, true];\n }\n // if we got one positive range, and it's a single character, then that's\n // not actually a magic pattern, it's just that one literal character.\n // we should not treat that as \"magic\", we should just return the literal\n // character. [_] is a perfectly valid way to escape glob magic chars.\n if (negs.length === 0 &&\n ranges.length === 1 &&\n /^\\\\?.$/.test(ranges[0]) &&\n !negate) {\n const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];\n return [regexpEscape(r), false, endPos - pos, false];\n }\n const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']';\n const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']';\n const comb = ranges.length && negs.length ? '(' + sranges + '|' + snegs + ')'\n : ranges.length ? sranges\n : snegs;\n return [comb, uflag, endPos - pos, true];\n};\nexports.parseClass = parseClass;\n//# sourceMappingURL=brace-expressions.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unescape = void 0;\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link MinimatchOptions.windowsPathsNoEscape} option is used, then\n * square-bracket escapes are removed, but not backslash escapes.\n *\n * For example, it will turn the string `'[*]'` into `*`, but it will not\n * turn `'\\\\*'` into `'*'`, because `\\` is a path separator in\n * `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both square-bracket escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n *\n * When `magicalBraces` is not set, escapes of braces (`{` and `}`) will not be\n * unescaped.\n */\nconst unescape = (s, { windowsPathsNoEscape = false, magicalBraces = true, } = {}) => {\n if (magicalBraces) {\n return windowsPathsNoEscape ?\n s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n : s\n .replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2')\n .replace(/\\\\([^\\/])/g, '$1');\n }\n return windowsPathsNoEscape ?\n s.replace(/\\[([^\\/\\\\{}])\\]/g, '$1')\n : s\n .replace(/((?!\\\\).|^)\\[([^\\/\\\\{}])\\]/g, '$1$2')\n .replace(/\\\\([^\\/{}])/g, '$1');\n};\nexports.unescape = unescape;\n//# sourceMappingURL=unescape.js.map", - "\"use strict\";\n// parse a single path portion\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AST = void 0;\nconst brace_expressions_js_1 = require(\"./brace-expressions.js\");\nconst unescape_js_1 = require(\"./unescape.js\");\nconst types = new Set(['!', '?', '+', '*', '@']);\nconst isExtglobType = (c) => types.has(c);\nconst isExtglobAST = (c) => isExtglobType(c.type);\n// Map of which extglob types can adopt the children of a nested extglob\n//\n// anything but ! can adopt a matching type:\n// +(a|+(b|c)|d) => +(a|b|c|d)\n// *(a|*(b|c)|d) => *(a|b|c|d)\n// @(a|@(b|c)|d) => @(a|b|c|d)\n// ?(a|?(b|c)|d) => ?(a|b|c|d)\n//\n// * can adopt anything, because 0 or repetition is allowed\n// *(a|?(b|c)|d) => *(a|b|c|d)\n// *(a|+(b|c)|d) => *(a|b|c|d)\n// *(a|@(b|c)|d) => *(a|b|c|d)\n//\n// + can adopt @, because 1 or repetition is allowed\n// +(a|@(b|c)|d) => +(a|b|c|d)\n//\n// + and @ CANNOT adopt *, because 0 would be allowed\n// +(a|*(b|c)|d) => would match \"\", on *(b|c)\n// @(a|*(b|c)|d) => would match \"\", on *(b|c)\n//\n// + and @ CANNOT adopt ?, because 0 would be allowed\n// +(a|?(b|c)|d) => would match \"\", on ?(b|c)\n// @(a|?(b|c)|d) => would match \"\", on ?(b|c)\n//\n// ? can adopt @, because 0 or 1 is allowed\n// ?(a|@(b|c)|d) => ?(a|b|c|d)\n//\n// ? and @ CANNOT adopt * or +, because >1 would be allowed\n// ?(a|*(b|c)|d) => would match bbb on *(b|c)\n// @(a|*(b|c)|d) => would match bbb on *(b|c)\n// ?(a|+(b|c)|d) => would match bbb on +(b|c)\n// @(a|+(b|c)|d) => would match bbb on +(b|c)\n//\n// ! CANNOT adopt ! (nothing else can either)\n// !(a|!(b|c)|d) => !(a|b|c|d) would fail to match on b (not not b|c)\n//\n// ! can adopt @\n// !(a|@(b|c)|d) => !(a|b|c|d)\n//\n// ! CANNOT adopt *\n// !(a|*(b|c)|d) => !(a|b|c|d) would match on bbb, not allowed\n//\n// ! CANNOT adopt +\n// !(a|+(b|c)|d) => !(a|b|c|d) would match on bbb, not allowed\n//\n// ! CANNOT adopt ?\n// x!(a|?(b|c)|d) => x!(a|b|c|d) would fail to match \"x\"\nconst adoptionMap = new Map([\n ['!', ['@']],\n ['?', ['?', '@']],\n ['@', ['@']],\n ['*', ['*', '+', '?', '@']],\n ['+', ['+', '@']],\n]);\n// nested extglobs that can be adopted in, but with the addition of\n// a blank '' element.\nconst adoptionWithSpaceMap = new Map([\n ['!', ['?']],\n ['@', ['?']],\n ['+', ['?', '*']],\n]);\n// union of the previous two maps\nconst adoptionAnyMap = new Map([\n ['!', ['?', '@']],\n ['?', ['?', '@']],\n ['@', ['?', '@']],\n ['*', ['*', '+', '?', '@']],\n ['+', ['+', '@', '?', '*']],\n]);\n// Extglobs that can take over their parent if they are the only child\n// the key is parent, value maps child to resulting extglob parent type\n// '@' is omitted because it's a special case. An `@` extglob with a single\n// member can always be usurped by that subpattern.\nconst usurpMap = new Map([\n ['!', new Map([['!', '@']])],\n [\n '?',\n new Map([\n ['*', '*'],\n ['+', '*'],\n ]),\n ],\n [\n '@',\n new Map([\n ['!', '!'],\n ['?', '?'],\n ['@', '@'],\n ['*', '*'],\n ['+', '+'],\n ]),\n ],\n [\n '+',\n new Map([\n ['?', '*'],\n ['*', '*'],\n ]),\n ],\n]);\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))';\nconst startNoDot = '(?!\\\\.)';\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.']);\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.']);\nconst reSpecials = new Set('().*{}+?[]^$\\\\!');\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// any single thing other than /\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?';\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\nlet ID = 0;\nclass AST {\n type;\n #root;\n #hasMagic;\n #uflag = false;\n #parts = [];\n #parent;\n #parentIndex;\n #negs;\n #filledNegs = false;\n #options;\n #toString;\n // set to true if it's an extglob with no children\n // (which really means one child of '')\n #emptyExt = false;\n id = ++ID;\n get depth() {\n return (this.#parent?.depth ?? -1) + 1;\n }\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return {\n '@@type': 'AST',\n id: this.id,\n type: this.type,\n root: this.#root.id,\n parent: this.#parent?.id,\n depth: this.depth,\n partsLength: this.#parts.length,\n parts: this.#parts,\n };\n }\n constructor(type, parent, options = {}) {\n this.type = type;\n // extglobs are inherently magical\n if (type)\n this.#hasMagic = true;\n this.#parent = parent;\n this.#root = this.#parent ? this.#parent.#root : this;\n this.#options = this.#root === this ? options : this.#root.#options;\n this.#negs = this.#root === this ? [] : this.#root.#negs;\n if (type === '!' && !this.#root.#filledNegs)\n this.#negs.push(this);\n this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0;\n }\n get hasMagic() {\n /* c8 ignore start */\n if (this.#hasMagic !== undefined)\n return this.#hasMagic;\n /* c8 ignore stop */\n for (const p of this.#parts) {\n if (typeof p === 'string')\n continue;\n if (p.type || p.hasMagic)\n return (this.#hasMagic = true);\n }\n // note: will be undefined until we generate the regexp src and find out\n return this.#hasMagic;\n }\n // reconstructs the pattern\n toString() {\n if (this.#toString !== undefined)\n return this.#toString;\n if (!this.type) {\n return (this.#toString = this.#parts.map(p => String(p)).join(''));\n }\n else {\n return (this.#toString =\n this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')');\n }\n }\n #fillNegs() {\n /* c8 ignore start */\n if (this !== this.#root)\n throw new Error('should only call on root');\n if (this.#filledNegs)\n return this;\n /* c8 ignore stop */\n // call toString() once to fill this out\n this.toString();\n this.#filledNegs = true;\n let n;\n while ((n = this.#negs.pop())) {\n if (n.type !== '!')\n continue;\n // walk up the tree, appending everthing that comes AFTER parentIndex\n let p = n;\n let pp = p.#parent;\n while (pp) {\n for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) {\n for (const part of n.#parts) {\n /* c8 ignore start */\n if (typeof part === 'string') {\n throw new Error('string part in extglob AST??');\n }\n /* c8 ignore stop */\n part.copyIn(pp.#parts[i]);\n }\n }\n p = pp;\n pp = p.#parent;\n }\n }\n return this;\n }\n push(...parts) {\n for (const p of parts) {\n if (p === '')\n continue;\n /* c8 ignore start */\n if (typeof p !== 'string' &&\n !(p instanceof _a && p.#parent === this)) {\n throw new Error('invalid part: ' + p);\n }\n /* c8 ignore stop */\n this.#parts.push(p);\n }\n }\n toJSON() {\n const ret = this.type === null ?\n this.#parts\n .slice()\n .map(p => (typeof p === 'string' ? p : p.toJSON()))\n : [this.type, ...this.#parts.map(p => p.toJSON())];\n if (this.isStart() && !this.type)\n ret.unshift([]);\n if (this.isEnd() &&\n (this === this.#root ||\n (this.#root.#filledNegs && this.#parent?.type === '!'))) {\n ret.push({});\n }\n return ret;\n }\n isStart() {\n if (this.#root === this)\n return true;\n // if (this.type) return !!this.#parent?.isStart()\n if (!this.#parent?.isStart())\n return false;\n if (this.#parentIndex === 0)\n return true;\n // if everything AHEAD of this is a negation, then it's still the \"start\"\n const p = this.#parent;\n for (let i = 0; i < this.#parentIndex; i++) {\n const pp = p.#parts[i];\n if (!(pp instanceof _a && pp.type === '!')) {\n return false;\n }\n }\n return true;\n }\n isEnd() {\n if (this.#root === this)\n return true;\n if (this.#parent?.type === '!')\n return true;\n if (!this.#parent?.isEnd())\n return false;\n if (!this.type)\n return this.#parent?.isEnd();\n // if not root, it'll always have a parent\n /* c8 ignore start */\n const pl = this.#parent ? this.#parent.#parts.length : 0;\n /* c8 ignore stop */\n return this.#parentIndex === pl - 1;\n }\n copyIn(part) {\n if (typeof part === 'string')\n this.push(part);\n else\n this.push(part.clone(this));\n }\n clone(parent) {\n const c = new _a(this.type, parent);\n for (const p of this.#parts) {\n c.copyIn(p);\n }\n return c;\n }\n static #parseAST(str, ast, pos, opt, extDepth) {\n const maxDepth = opt.maxExtglobRecursion ?? 2;\n let escaping = false;\n let inBrace = false;\n let braceStart = -1;\n let braceNeg = false;\n if (ast.type === null) {\n // outside of a extglob, append until we find a start\n let i = pos;\n let acc = '';\n while (i < str.length) {\n const c = str.charAt(i++);\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping;\n acc += c;\n continue;\n }\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true;\n }\n }\n else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false;\n }\n acc += c;\n continue;\n }\n else if (c === '[') {\n inBrace = true;\n braceStart = i;\n braceNeg = false;\n acc += c;\n continue;\n }\n // we don't have to check for adoption here, because that's\n // done at the other recursion point.\n const doRecurse = !opt.noext &&\n isExtglobType(c) &&\n str.charAt(i) === '(' &&\n extDepth <= maxDepth;\n if (doRecurse) {\n ast.push(acc);\n acc = '';\n const ext = new _a(c, ast);\n i = _a.#parseAST(str, ext, i, opt, extDepth + 1);\n ast.push(ext);\n continue;\n }\n acc += c;\n }\n ast.push(acc);\n return i;\n }\n // some kind of extglob, pos is at the (\n // find the next | or )\n let i = pos + 1;\n let part = new _a(null, ast);\n const parts = [];\n let acc = '';\n while (i < str.length) {\n const c = str.charAt(i++);\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping;\n acc += c;\n continue;\n }\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true;\n }\n }\n else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false;\n }\n acc += c;\n continue;\n }\n else if (c === '[') {\n inBrace = true;\n braceStart = i;\n braceNeg = false;\n acc += c;\n continue;\n }\n const doRecurse = !opt.noext &&\n isExtglobType(c) &&\n str.charAt(i) === '(' &&\n /* c8 ignore start - the maxDepth is sufficient here */\n (extDepth <= maxDepth || (ast && ast.#canAdoptType(c)));\n /* c8 ignore stop */\n if (doRecurse) {\n const depthAdd = ast && ast.#canAdoptType(c) ? 0 : 1;\n part.push(acc);\n acc = '';\n const ext = new _a(c, part);\n part.push(ext);\n i = _a.#parseAST(str, ext, i, opt, extDepth + depthAdd);\n continue;\n }\n if (c === '|') {\n part.push(acc);\n acc = '';\n parts.push(part);\n part = new _a(null, ast);\n continue;\n }\n if (c === ')') {\n if (acc === '' && ast.#parts.length === 0) {\n ast.#emptyExt = true;\n }\n part.push(acc);\n acc = '';\n ast.push(...parts, part);\n return i;\n }\n acc += c;\n }\n // unfinished extglob\n // if we got here, it was a malformed extglob! not an extglob, but\n // maybe something else in there.\n ast.type = null;\n ast.#hasMagic = undefined;\n ast.#parts = [str.substring(pos - 1)];\n return i;\n }\n #canAdoptWithSpace(child) {\n return this.#canAdopt(child, adoptionWithSpaceMap);\n }\n #canAdopt(child, map = adoptionMap) {\n if (!child ||\n typeof child !== 'object' ||\n child.type !== null ||\n child.#parts.length !== 1 ||\n this.type === null) {\n return false;\n }\n const gc = child.#parts[0];\n if (!gc || typeof gc !== 'object' || gc.type === null) {\n return false;\n }\n return this.#canAdoptType(gc.type, map);\n }\n #canAdoptType(c, map = adoptionAnyMap) {\n return !!map.get(this.type)?.includes(c);\n }\n #adoptWithSpace(child, index) {\n const gc = child.#parts[0];\n const blank = new _a(null, gc, this.options);\n blank.#parts.push('');\n gc.push(blank);\n this.#adopt(child, index);\n }\n #adopt(child, index) {\n const gc = child.#parts[0];\n this.#parts.splice(index, 1, ...gc.#parts);\n for (const p of gc.#parts) {\n if (typeof p === 'object')\n p.#parent = this;\n }\n this.#toString = undefined;\n }\n #canUsurpType(c) {\n const m = usurpMap.get(this.type);\n return !!(m?.has(c));\n }\n #canUsurp(child) {\n if (!child ||\n typeof child !== 'object' ||\n child.type !== null ||\n child.#parts.length !== 1 ||\n this.type === null ||\n this.#parts.length !== 1) {\n return false;\n }\n const gc = child.#parts[0];\n if (!gc || typeof gc !== 'object' || gc.type === null) {\n return false;\n }\n return this.#canUsurpType(gc.type);\n }\n #usurp(child) {\n const m = usurpMap.get(this.type);\n const gc = child.#parts[0];\n const nt = m?.get(gc.type);\n /* c8 ignore start - impossible */\n if (!nt)\n return false;\n /* c8 ignore stop */\n this.#parts = gc.#parts;\n for (const p of this.#parts) {\n if (typeof p === 'object') {\n p.#parent = this;\n }\n }\n this.type = nt;\n this.#toString = undefined;\n this.#emptyExt = false;\n }\n static fromGlob(pattern, options = {}) {\n const ast = new _a(null, undefined, options);\n _a.#parseAST(pattern, ast, 0, options, 0);\n return ast;\n }\n // returns the regular expression if there's magic, or the unescaped\n // string if not.\n toMMPattern() {\n // should only be called on root\n /* c8 ignore start */\n if (this !== this.#root)\n return this.#root.toMMPattern();\n /* c8 ignore stop */\n const glob = this.toString();\n const [re, body, hasMagic, uflag] = this.toRegExpSource();\n // if we're in nocase mode, and not nocaseMagicOnly, then we do\n // still need a regular expression if we have to case-insensitively\n // match capital/lowercase characters.\n const anyMagic = hasMagic ||\n this.#hasMagic ||\n (this.#options.nocase &&\n !this.#options.nocaseMagicOnly &&\n glob.toUpperCase() !== glob.toLowerCase());\n if (!anyMagic) {\n return body;\n }\n const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '');\n return Object.assign(new RegExp(`^${re}$`, flags), {\n _src: re,\n _glob: glob,\n });\n }\n get options() {\n return this.#options;\n }\n // returns the string match, the regexp source, whether there's magic\n // in the regexp (so a regular expression is required) and whether or\n // not the uflag is needed for the regular expression (for posix classes)\n // TODO: instead of injecting the start/end at this point, just return\n // the BODY of the regexp, along with the start/end portions suitable\n // for binding the start/end in either a joined full-path makeRe context\n // (where we bind to (^|/), or a standalone matchPart context (where\n // we bind to ^, and not /). Otherwise slashes get duped!\n //\n // In part-matching mode, the start is:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n // - if dots allowed or not possible: ^\n // - if dots possible and not allowed: ^(?!\\.)\n // end is:\n // - if not isEnd(): nothing\n // - else: $\n //\n // In full-path matching mode, we put the slash at the START of the\n // pattern, so start is:\n // - if first pattern: same as part-matching mode\n // - if not isStart(): nothing\n // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n // - if dots allowed or not possible: /\n // - if dots possible and not allowed: /(?!\\.)\n // end is:\n // - if last pattern, same as part-matching mode\n // - else nothing\n //\n // Always put the (?:$|/) on negated tails, though, because that has to be\n // there to bind the end of the negated pattern portion, and it's easier to\n // just stick it in now rather than try to inject it later in the middle of\n // the pattern.\n //\n // We can just always return the same end, and leave it up to the caller\n // to know whether it's going to be used joined or in parts.\n // And, if the start is adjusted slightly, can do the same there:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n // - if dots allowed or not possible: (?:/|^)\n // - if dots possible and not allowed: (?:/|^)(?!\\.)\n //\n // But it's better to have a simpler binding without a conditional, for\n // performance, so probably better to return both start options.\n //\n // Then the caller just ignores the end if it's not the first pattern,\n // and the start always gets applied.\n //\n // But that's always going to be $ if it's the ending pattern, or nothing,\n // so the caller can just attach $ at the end of the pattern when building.\n //\n // So the todo is:\n // - better detect what kind of start is needed\n // - return both flavors of starting pattern\n // - attach $ at the end of the pattern when creating the actual RegExp\n //\n // Ah, but wait, no, that all only applies to the root when the first pattern\n // is not an extglob. If the first pattern IS an extglob, then we need all\n // that dot prevention biz to live in the extglob portions, because eg\n // +(*|.x*) can match .xy but not .yx.\n //\n // So, return the two flavors if it's #root and the first child is not an\n // AST, otherwise leave it to the child AST to handle it, and there,\n // use the (?:^|/) style of start binding.\n //\n // Even simplified further:\n // - Since the start for a join is eg /(?!\\.) and the start for a part\n // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n // or start or whatever) and prepend ^ or / at the Regexp construction.\n toRegExpSource(allowDot) {\n const dot = allowDot ?? !!this.#options.dot;\n if (this.#root === this) {\n this.#flatten();\n this.#fillNegs();\n }\n if (!isExtglobAST(this)) {\n const noEmpty = this.isStart() &&\n this.isEnd() &&\n !this.#parts.some(s => typeof s !== 'string');\n const src = this.#parts\n .map(p => {\n const [re, _, hasMagic, uflag] = typeof p === 'string' ?\n _a.#parseGlob(p, this.#hasMagic, noEmpty)\n : p.toRegExpSource(allowDot);\n this.#hasMagic = this.#hasMagic || hasMagic;\n this.#uflag = this.#uflag || uflag;\n return re;\n })\n .join('');\n let start = '';\n if (this.isStart()) {\n if (typeof this.#parts[0] === 'string') {\n // this is the string that will match the start of the pattern,\n // so we need to protect against dots and such.\n // '.' and '..' cannot match unless the pattern is that exactly,\n // even if it starts with . or dot:true is set.\n const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]);\n if (!dotTravAllowed) {\n const aps = addPatternStart;\n // check if we have a possibility of matching . or ..,\n // and prevent that.\n const needNoTrav = \n // dots are allowed, and the pattern starts with [ or .\n (dot && aps.has(src.charAt(0))) ||\n // the pattern starts with \\., and then [ or .\n (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n // the pattern starts with \\.\\., and then [ or .\n (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)));\n // no need to prevent dots if it can't match a dot, or if a\n // sub-pattern will be preventing it anyway.\n const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));\n start =\n needNoTrav ? startNoTraversal\n : needNoDot ? startNoDot\n : '';\n }\n }\n }\n // append the \"end of path portion\" pattern to negation tails\n let end = '';\n if (this.isEnd() &&\n this.#root.#filledNegs &&\n this.#parent?.type === '!') {\n end = '(?:$|\\\\/)';\n }\n const final = start + src + end;\n return [\n final,\n (0, unescape_js_1.unescape)(src),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ];\n }\n // We need to calculate the body *twice* if it's a repeat pattern\n // at the start, once in nodot mode, then again in dot mode, so a\n // pattern like *(?) can match 'x.y'\n const repeated = this.type === '*' || this.type === '+';\n // some kind of extglob\n const start = this.type === '!' ? '(?:(?!(?:' : '(?:';\n let body = this.#partsToRegExp(dot);\n if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n // invalid extglob, has to at least be *something* present, if it's\n // the entire path portion.\n const s = this.toString();\n const me = this;\n me.#parts = [s];\n me.type = null;\n me.#hasMagic = undefined;\n return [s, (0, unescape_js_1.unescape)(this.toString()), false, false];\n }\n let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ?\n ''\n : this.#partsToRegExp(true);\n if (bodyDotAllowed === body) {\n bodyDotAllowed = '';\n }\n if (bodyDotAllowed) {\n body = `(?:${body})(?:${bodyDotAllowed})*?`;\n }\n // an empty !() is exactly equivalent to a starNoEmpty\n let final = '';\n if (this.type === '!' && this.#emptyExt) {\n final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty;\n }\n else {\n const close = this.type === '!' ?\n // !() must match something,but !(x) can match ''\n '))' +\n (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n star +\n ')'\n : this.type === '@' ? ')'\n : this.type === '?' ? ')?'\n : this.type === '+' && bodyDotAllowed ? ')'\n : this.type === '*' && bodyDotAllowed ? `)?`\n : `)${this.type}`;\n final = start + body + close;\n }\n return [\n final,\n (0, unescape_js_1.unescape)(body),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ];\n }\n #flatten() {\n if (!isExtglobAST(this)) {\n for (const p of this.#parts) {\n if (typeof p === 'object') {\n p.#flatten();\n }\n }\n }\n else {\n // do up to 10 passes to flatten as much as possible\n let iterations = 0;\n let done = false;\n do {\n done = true;\n for (let i = 0; i < this.#parts.length; i++) {\n const c = this.#parts[i];\n if (typeof c === 'object') {\n c.#flatten();\n if (this.#canAdopt(c)) {\n done = false;\n this.#adopt(c, i);\n }\n else if (this.#canAdoptWithSpace(c)) {\n done = false;\n this.#adoptWithSpace(c, i);\n }\n else if (this.#canUsurp(c)) {\n done = false;\n this.#usurp(c);\n }\n }\n }\n } while (!done && ++iterations < 10);\n }\n this.#toString = undefined;\n }\n #partsToRegExp(dot) {\n return this.#parts\n .map(p => {\n // extglob ASTs should only contain parent ASTs\n /* c8 ignore start */\n if (typeof p === 'string') {\n throw new Error('string type in extglob ast??');\n }\n /* c8 ignore stop */\n // can ignore hasMagic, because extglobs are already always magic\n const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot);\n this.#uflag = this.#uflag || uflag;\n return re;\n })\n .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n .join('|');\n }\n static #parseGlob(glob, hasMagic, noEmpty = false) {\n let escaping = false;\n let re = '';\n let uflag = false;\n // multiple stars that aren't globstars coalesce into one *\n let inStar = false;\n for (let i = 0; i < glob.length; i++) {\n const c = glob.charAt(i);\n if (escaping) {\n escaping = false;\n re += (reSpecials.has(c) ? '\\\\' : '') + c;\n continue;\n }\n if (c === '*') {\n if (inStar)\n continue;\n inStar = true;\n re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star;\n hasMagic = true;\n continue;\n }\n else {\n inStar = false;\n }\n if (c === '\\\\') {\n if (i === glob.length - 1) {\n re += '\\\\\\\\';\n }\n else {\n escaping = true;\n }\n continue;\n }\n if (c === '[') {\n const [src, needUflag, consumed, magic] = (0, brace_expressions_js_1.parseClass)(glob, i);\n if (consumed) {\n re += src;\n uflag = uflag || needUflag;\n i += consumed - 1;\n hasMagic = hasMagic || magic;\n continue;\n }\n }\n if (c === '?') {\n re += qmark;\n hasMagic = true;\n continue;\n }\n re += regExpEscape(c);\n }\n return [re, (0, unescape_js_1.unescape)(glob), !!hasMagic, uflag];\n }\n}\nexports.AST = AST;\n_a = AST;\n//# sourceMappingURL=ast.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escape = void 0;\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link MinimatchOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character. In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n *\n * If the {@link MinimatchOptions.magicalBraces} option is used,\n * then braces (`{` and `}`) will be escaped.\n */\nconst escape = (s, { windowsPathsNoEscape = false, magicalBraces = false, } = {}) => {\n // don't need to escape +@! because we escape the parens\n // that make those magic, and escaping ! as [!] isn't valid,\n // because [!]] is a valid glob class meaning not ']'.\n if (magicalBraces) {\n return windowsPathsNoEscape ?\n s.replace(/[?*()[\\]{}]/g, '[$&]')\n : s.replace(/[?*()[\\]\\\\{}]/g, '\\\\$&');\n }\n return windowsPathsNoEscape ?\n s.replace(/[?*()[\\]]/g, '[$&]')\n : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&');\n};\nexports.escape = escape;\n//# sourceMappingURL=escape.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unescape = exports.escape = exports.AST = exports.Minimatch = exports.match = exports.makeRe = exports.braceExpand = exports.defaults = exports.filter = exports.GLOBSTAR = exports.sep = exports.minimatch = void 0;\nconst brace_expansion_1 = require(\"brace-expansion\");\nconst assert_valid_pattern_js_1 = require(\"./assert-valid-pattern.js\");\nconst ast_js_1 = require(\"./ast.js\");\nconst escape_js_1 = require(\"./escape.js\");\nconst unescape_js_1 = require(\"./unescape.js\");\nconst minimatch = (p, pattern, options = {}) => {\n (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false;\n }\n return new Minimatch(pattern, options).match(p);\n};\nexports.minimatch = minimatch;\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/;\nconst starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext);\nconst starDotExtTestDot = (ext) => (f) => f.endsWith(ext);\nconst starDotExtTestNocase = (ext) => {\n ext = ext.toLowerCase();\n return (f) => !f.startsWith('.') && f.toLowerCase().endsWith(ext);\n};\nconst starDotExtTestNocaseDot = (ext) => {\n ext = ext.toLowerCase();\n return (f) => f.toLowerCase().endsWith(ext);\n};\nconst starDotStarRE = /^\\*+\\.\\*+$/;\nconst starDotStarTest = (f) => !f.startsWith('.') && f.includes('.');\nconst starDotStarTestDot = (f) => f !== '.' && f !== '..' && f.includes('.');\nconst dotStarRE = /^\\.\\*+$/;\nconst dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.');\nconst starRE = /^\\*+$/;\nconst starTest = (f) => f.length !== 0 && !f.startsWith('.');\nconst starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..';\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/;\nconst qmarksTestNocase = ([$0, ext = '']) => {\n const noext = qmarksTestNoExt([$0]);\n if (!ext)\n return noext;\n ext = ext.toLowerCase();\n return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestNocaseDot = ([$0, ext = '']) => {\n const noext = qmarksTestNoExtDot([$0]);\n if (!ext)\n return noext;\n ext = ext.toLowerCase();\n return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestDot = ([$0, ext = '']) => {\n const noext = qmarksTestNoExtDot([$0]);\n return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTest = ([$0, ext = '']) => {\n const noext = qmarksTestNoExt([$0]);\n return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTestNoExt = ([$0]) => {\n const len = $0.length;\n return (f) => f.length === len && !f.startsWith('.');\n};\nconst qmarksTestNoExtDot = ([$0]) => {\n const len = $0.length;\n return (f) => f.length === len && f !== '.' && f !== '..';\n};\n/* c8 ignore start */\nconst defaultPlatform = (typeof process === 'object' && process ?\n (typeof process.env === 'object' &&\n process.env &&\n process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n process.platform\n : 'posix');\nconst path = {\n win32: { sep: '\\\\' },\n posix: { sep: '/' },\n};\n/* c8 ignore stop */\nexports.sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep;\nexports.minimatch.sep = exports.sep;\nexports.GLOBSTAR = Symbol('globstar **');\nexports.minimatch.GLOBSTAR = exports.GLOBSTAR;\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?';\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?';\nconst filter = (pattern, options = {}) => (p) => (0, exports.minimatch)(p, pattern, options);\nexports.filter = filter;\nexports.minimatch.filter = exports.filter;\nconst ext = (a, b = {}) => Object.assign({}, a, b);\nconst defaults = (def) => {\n if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n return exports.minimatch;\n }\n const orig = exports.minimatch;\n const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options));\n return Object.assign(m, {\n Minimatch: class Minimatch extends orig.Minimatch {\n constructor(pattern, options = {}) {\n super(pattern, ext(def, options));\n }\n static defaults(options) {\n return orig.defaults(ext(def, options)).Minimatch;\n }\n },\n AST: class AST extends orig.AST {\n /* c8 ignore start */\n constructor(type, parent, options = {}) {\n super(type, parent, ext(def, options));\n }\n /* c8 ignore stop */\n static fromGlob(pattern, options = {}) {\n return orig.AST.fromGlob(pattern, ext(def, options));\n }\n },\n unescape: (s, options = {}) => orig.unescape(s, ext(def, options)),\n escape: (s, options = {}) => orig.escape(s, ext(def, options)),\n filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)),\n defaults: (options) => orig.defaults(ext(def, options)),\n makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)),\n braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)),\n match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)),\n sep: orig.sep,\n GLOBSTAR: exports.GLOBSTAR,\n });\n};\nexports.defaults = defaults;\nexports.minimatch.defaults = exports.defaults;\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nconst braceExpand = (pattern, options = {}) => {\n (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n // Thanks to Yeting Li for\n // improving this regexp to avoid a ReDOS vulnerability.\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n // shortcut. no need to expand.\n return [pattern];\n }\n return (0, brace_expansion_1.expand)(pattern, { max: options.braceExpandMax });\n};\nexports.braceExpand = braceExpand;\nexports.minimatch.braceExpand = exports.braceExpand;\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nconst makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();\nexports.makeRe = makeRe;\nexports.minimatch.makeRe = exports.makeRe;\nconst match = (list, pattern, options = {}) => {\n const mm = new Minimatch(pattern, options);\n list = list.filter(f => mm.match(f));\n if (mm.options.nonull && !list.length) {\n list.push(pattern);\n }\n return list;\n};\nexports.match = match;\nexports.minimatch.match = exports.match;\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/;\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\nclass Minimatch {\n options;\n set;\n pattern;\n windowsPathsNoEscape;\n nonegate;\n negate;\n comment;\n empty;\n preserveMultipleSlashes;\n partial;\n globSet;\n globParts;\n nocase;\n isWindows;\n platform;\n windowsNoMagicRoot;\n maxGlobstarRecursion;\n regexp;\n constructor(pattern, options = {}) {\n (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n options = options || {};\n this.options = options;\n this.maxGlobstarRecursion = options.maxGlobstarRecursion ?? 200;\n this.pattern = pattern;\n this.platform = options.platform || defaultPlatform;\n this.isWindows = this.platform === 'win32';\n // avoid the annoying deprecation flag lol\n const awe = ('allowWindow' + 'sEscape');\n this.windowsPathsNoEscape =\n !!options.windowsPathsNoEscape || options[awe] === false;\n if (this.windowsPathsNoEscape) {\n this.pattern = this.pattern.replace(/\\\\/g, '/');\n }\n this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;\n this.regexp = null;\n this.negate = false;\n this.nonegate = !!options.nonegate;\n this.comment = false;\n this.empty = false;\n this.partial = !!options.partial;\n this.nocase = !!this.options.nocase;\n this.windowsNoMagicRoot =\n options.windowsNoMagicRoot !== undefined ?\n options.windowsNoMagicRoot\n : !!(this.isWindows && this.nocase);\n this.globSet = [];\n this.globParts = [];\n this.set = [];\n // make the set of regexps etc.\n this.make();\n }\n hasMagic() {\n if (this.options.magicalBraces && this.set.length > 1) {\n return true;\n }\n for (const pattern of this.set) {\n for (const part of pattern) {\n if (typeof part !== 'string')\n return true;\n }\n }\n return false;\n }\n debug(..._) { }\n make() {\n const pattern = this.pattern;\n const options = this.options;\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true;\n return;\n }\n if (!pattern) {\n this.empty = true;\n return;\n }\n // step 1: figure out negation, etc.\n this.parseNegate();\n // step 2: expand braces\n this.globSet = [...new Set(this.braceExpand())];\n if (options.debug) {\n this.debug = (...args) => console.error(...args);\n }\n this.debug(this.pattern, this.globSet);\n // step 3: now we have a set, so turn each one into a series of\n // path-portion matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n //\n // First, we preprocess to make the glob pattern sets a bit simpler\n // and deduped. There are some perf-killing patterns that can cause\n // problems with a glob walk, but we can simplify them down a bit.\n const rawGlobParts = this.globSet.map(s => this.slashSplit(s));\n this.globParts = this.preprocess(rawGlobParts);\n this.debug(this.pattern, this.globParts);\n // glob --> regexps\n let set = this.globParts.map((s, _, __) => {\n if (this.isWindows && this.windowsNoMagicRoot) {\n // check if it's a drive or unc path.\n const isUNC = s[0] === '' &&\n s[1] === '' &&\n (s[2] === '?' || !globMagic.test(s[2])) &&\n !globMagic.test(s[3]);\n const isDrive = /^[a-z]:/i.test(s[0]);\n if (isUNC) {\n return [\n ...s.slice(0, 4),\n ...s.slice(4).map(ss => this.parse(ss)),\n ];\n }\n else if (isDrive) {\n return [s[0], ...s.slice(1).map(ss => this.parse(ss))];\n }\n }\n return s.map(ss => this.parse(ss));\n });\n this.debug(this.pattern, set);\n // filter out everything that didn't compile properly.\n this.set = set.filter(s => s.indexOf(false) === -1);\n // do not treat the ? in UNC paths as magic\n if (this.isWindows) {\n for (let i = 0; i < this.set.length; i++) {\n const p = this.set[i];\n if (p[0] === '' &&\n p[1] === '' &&\n this.globParts[i][2] === '?' &&\n typeof p[3] === 'string' &&\n /^[a-z]:$/i.test(p[3])) {\n p[2] = '?';\n }\n }\n }\n this.debug(this.pattern, this.set);\n }\n // various transforms to equivalent pattern sets that are\n // faster to process in a filesystem walk. The goal is to\n // eliminate what we can, and push all ** patterns as far\n // to the right as possible, even if it increases the number\n // of patterns that we have to process.\n preprocess(globParts) {\n // if we're not in globstar mode, then turn ** into *\n if (this.options.noglobstar) {\n for (let i = 0; i < globParts.length; i++) {\n for (let j = 0; j < globParts[i].length; j++) {\n if (globParts[i][j] === '**') {\n globParts[i][j] = '*';\n }\n }\n }\n }\n const { optimizationLevel = 1 } = this.options;\n if (optimizationLevel >= 2) {\n // aggressive optimization for the purpose of fs walking\n globParts = this.firstPhasePreProcess(globParts);\n globParts = this.secondPhasePreProcess(globParts);\n }\n else if (optimizationLevel >= 1) {\n // just basic optimizations to remove some .. parts\n globParts = this.levelOneOptimize(globParts);\n }\n else {\n // just collapse multiple ** portions into one\n globParts = this.adjascentGlobstarOptimize(globParts);\n }\n return globParts;\n }\n // just get rid of adjascent ** portions\n adjascentGlobstarOptimize(globParts) {\n return globParts.map(parts => {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let i = gs;\n while (parts[i + 1] === '**') {\n i++;\n }\n if (i !== gs) {\n parts.splice(gs, i - gs);\n }\n }\n return parts;\n });\n }\n // get rid of adjascent ** and resolve .. portions\n levelOneOptimize(globParts) {\n return globParts.map(parts => {\n parts = parts.reduce((set, part) => {\n const prev = set[set.length - 1];\n if (part === '**' && prev === '**') {\n return set;\n }\n if (part === '..') {\n if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n set.pop();\n return set;\n }\n }\n set.push(part);\n return set;\n }, []);\n return parts.length === 0 ? [''] : parts;\n });\n }\n levelTwoFileOptimize(parts) {\n if (!Array.isArray(parts)) {\n parts = this.slashSplit(parts);\n }\n let didSomething = false;\n do {\n didSomething = false;\n //

// -> 
/\n            if (!this.preserveMultipleSlashes) {\n                for (let i = 1; i < parts.length - 1; i++) {\n                    const p = parts[i];\n                    // don't squeeze out UNC patterns\n                    if (i === 1 && p === '' && parts[0] === '')\n                        continue;\n                    if (p === '.' || p === '') {\n                        didSomething = true;\n                        parts.splice(i, 1);\n                        i--;\n                    }\n                }\n                if (parts[0] === '.' &&\n                    parts.length === 2 &&\n                    (parts[1] === '.' || parts[1] === '')) {\n                    didSomething = true;\n                    parts.pop();\n                }\n            }\n            // 
/

/../ ->

/\n            let dd = 0;\n            while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                const p = parts[dd - 1];\n                if (p && p !== '.' && p !== '..' && p !== '**') {\n                    didSomething = true;\n                    parts.splice(dd - 1, 2);\n                    dd -= 2;\n                }\n            }\n        } while (didSomething);\n        return parts.length === 0 ? [''] : parts;\n    }\n    // First phase: single-pattern processing\n    // 
 is 1 or more portions\n    //  is 1 or more portions\n    // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n    // 
/

/../ ->

/\n    // **/**/ -> **/\n    //\n    // **/*/ -> */**/ <== not valid because ** doesn't follow\n    // this WOULD be allowed if ** did follow symlinks, or * didn't\n    firstPhasePreProcess(globParts) {\n        let didSomething = false;\n        do {\n            didSomething = false;\n            // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss = gs;\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n                        gss++;\n                    }\n                    // eg, if gs is 2 and gss is 4, that means we have 3 **\n                    // parts, and can remove 2 of them.\n                    if (gss > gs) {\n                        parts.splice(gs + 1, gss - gs);\n                    }\n                    let next = parts[gs + 1];\n                    const p = parts[gs + 2];\n                    const p2 = parts[gs + 3];\n                    if (next !== '..')\n                        continue;\n                    if (!p ||\n                        p === '.' ||\n                        p === '..' ||\n                        !p2 ||\n                        p2 === '.' ||\n                        p2 === '..') {\n                        continue;\n                    }\n                    didSomething = true;\n                    // edit parts in place, and push the new one\n                    parts.splice(gs, 1);\n                    const other = parts.slice(0);\n                    other[gs] = '**';\n                    globParts.push(other);\n                    gs--;\n                }\n                // 
// -> 
/\n                if (!this.preserveMultipleSlashes) {\n                    for (let i = 1; i < parts.length - 1; i++) {\n                        const p = parts[i];\n                        // don't squeeze out UNC patterns\n                        if (i === 1 && p === '' && parts[0] === '')\n                            continue;\n                        if (p === '.' || p === '') {\n                            didSomething = true;\n                            parts.splice(i, 1);\n                            i--;\n                        }\n                    }\n                    if (parts[0] === '.' &&\n                        parts.length === 2 &&\n                        (parts[1] === '.' || parts[1] === '')) {\n                        didSomething = true;\n                        parts.pop();\n                    }\n                }\n                // 
/

/../ ->

/\n                let dd = 0;\n                while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                    const p = parts[dd - 1];\n                    if (p && p !== '.' && p !== '..' && p !== '**') {\n                        didSomething = true;\n                        const needDot = dd === 1 && parts[dd + 1] === '**';\n                        const splin = needDot ? ['.'] : [];\n                        parts.splice(dd - 1, 2, ...splin);\n                        if (parts.length === 0)\n                            parts.push('');\n                        dd -= 2;\n                    }\n                }\n            }\n        } while (didSomething);\n        return globParts;\n    }\n    // second phase: multi-pattern dedupes\n    // {
/*/,
/

/} ->

/*/\n    // {
/,
/} -> 
/\n    // {
/**/,
/} -> 
/**/\n    //\n    // {
/**/,
/**/

/} ->

/**/\n    // ^-- not valid because ** doens't follow symlinks\n    secondPhasePreProcess(globParts) {\n        for (let i = 0; i < globParts.length - 1; i++) {\n            for (let j = i + 1; j < globParts.length; j++) {\n                const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);\n                if (matched) {\n                    globParts[i] = [];\n                    globParts[j] = matched;\n                    break;\n                }\n            }\n        }\n        return globParts.filter(gs => gs.length);\n    }\n    partsMatch(a, b, emptyGSMatch = false) {\n        let ai = 0;\n        let bi = 0;\n        let result = [];\n        let which = '';\n        while (ai < a.length && bi < b.length) {\n            if (a[ai] === b[bi]) {\n                result.push(which === 'b' ? b[bi] : a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n                result.push(a[ai]);\n                ai++;\n            }\n            else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n                result.push(b[bi]);\n                bi++;\n            }\n            else if (a[ai] === '*' &&\n                b[bi] &&\n                (this.options.dot || !b[bi].startsWith('.')) &&\n                b[bi] !== '**') {\n                if (which === 'b')\n                    return false;\n                which = 'a';\n                result.push(a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (b[bi] === '*' &&\n                a[ai] &&\n                (this.options.dot || !a[ai].startsWith('.')) &&\n                a[ai] !== '**') {\n                if (which === 'a')\n                    return false;\n                which = 'b';\n                result.push(b[bi]);\n                ai++;\n                bi++;\n            }\n            else {\n                return false;\n            }\n        }\n        // if we fall out of the loop, it means they two are identical\n        // as long as their lengths match\n        return a.length === b.length && result;\n    }\n    parseNegate() {\n        if (this.nonegate)\n            return;\n        const pattern = this.pattern;\n        let negate = false;\n        let negateOffset = 0;\n        for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n            negate = !negate;\n            negateOffset++;\n        }\n        if (negateOffset)\n            this.pattern = pattern.slice(negateOffset);\n        this.negate = negate;\n    }\n    // set partial to true to test if, for example,\n    // \"/a/b\" matches the start of \"/*/b/*/d\"\n    // Partial means, if you run out of file before you run\n    // out of pattern, then that's fine, as long as all\n    // the parts match.\n    matchOne(file, pattern, partial = false) {\n        let fileStartIndex = 0;\n        let patternStartIndex = 0;\n        // UNC paths like //?/X:/... can match X:/... and vice versa\n        // Drive letters in absolute drive or unc paths are always compared\n        // case-insensitively.\n        if (this.isWindows) {\n            const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0]);\n            const fileUNC = !fileDrive &&\n                file[0] === '' &&\n                file[1] === '' &&\n                file[2] === '?' &&\n                /^[a-z]:$/i.test(file[3]);\n            const patternDrive = typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0]);\n            const patternUNC = !patternDrive &&\n                pattern[0] === '' &&\n                pattern[1] === '' &&\n                pattern[2] === '?' &&\n                typeof pattern[3] === 'string' &&\n                /^[a-z]:$/i.test(pattern[3]);\n            const fdi = fileUNC ? 3\n                : fileDrive ? 0\n                    : undefined;\n            const pdi = patternUNC ? 3\n                : patternDrive ? 0\n                    : undefined;\n            if (typeof fdi === 'number' && typeof pdi === 'number') {\n                const [fd, pd] = [\n                    file[fdi],\n                    pattern[pdi],\n                ];\n                // start matching at the drive letter index of each\n                if (fd.toLowerCase() === pd.toLowerCase()) {\n                    pattern[pdi] = fd;\n                    patternStartIndex = pdi;\n                    fileStartIndex = fdi;\n                }\n            }\n        }\n        // resolve and reduce . and .. portions in the file as well.\n        // don't need to do the second phase, because it's only one string[]\n        const { optimizationLevel = 1 } = this.options;\n        if (optimizationLevel >= 2) {\n            file = this.levelTwoFileOptimize(file);\n        }\n        if (pattern.includes(exports.GLOBSTAR)) {\n            return this.#matchGlobstar(file, pattern, partial, fileStartIndex, patternStartIndex);\n        }\n        return this.#matchOne(file, pattern, partial, fileStartIndex, patternStartIndex);\n    }\n    #matchGlobstar(file, pattern, partial, fileIndex, patternIndex) {\n        // split the pattern into head, tail, and middle of ** delimited parts\n        const firstgs = pattern.indexOf(exports.GLOBSTAR, patternIndex);\n        const lastgs = pattern.lastIndexOf(exports.GLOBSTAR);\n        // split the pattern up into globstar-delimited sections\n        // the tail has to be at the end, and the others just have\n        // to be found in order from the head.\n        const [head, body, tail] = partial ? [\n            pattern.slice(patternIndex, firstgs),\n            pattern.slice(firstgs + 1),\n            [],\n        ] : [\n            pattern.slice(patternIndex, firstgs),\n            pattern.slice(firstgs + 1, lastgs),\n            pattern.slice(lastgs + 1),\n        ];\n        // check the head, from the current file/pattern index.\n        if (head.length) {\n            const fileHead = file.slice(fileIndex, fileIndex + head.length);\n            if (!this.#matchOne(fileHead, head, partial, 0, 0)) {\n                return false;\n            }\n            fileIndex += head.length;\n            patternIndex += head.length;\n        }\n        // now we know the head matches!\n        // if the last portion is not empty, it MUST match the end\n        // check the tail\n        let fileTailMatch = 0;\n        if (tail.length) {\n            // if head + tail > file, then we cannot possibly match\n            if (tail.length + fileIndex > file.length)\n                return false;\n            // try to match the tail\n            let tailStart = file.length - tail.length;\n            if (this.#matchOne(file, tail, partial, tailStart, 0)) {\n                fileTailMatch = tail.length;\n            }\n            else {\n                // affordance for stuff like a/**/* matching a/b/\n                // if the last file portion is '', and there's more to the pattern\n                // then try without the '' bit.\n                if (file[file.length - 1] !== '' ||\n                    fileIndex + tail.length === file.length) {\n                    return false;\n                }\n                tailStart--;\n                if (!this.#matchOne(file, tail, partial, tailStart, 0)) {\n                    return false;\n                }\n                fileTailMatch = tail.length + 1;\n            }\n        }\n        // now we know the tail matches!\n        // the middle is zero or more portions wrapped in **, possibly\n        // containing more ** sections.\n        // so a/**/b/**/c/**/d has become **/b/**/c/**\n        // if it's empty, it means a/**/b, just verify we have no bad dots\n        // if there's no tail, so it ends on /**, then we must have *something*\n        // after the head, or it's not a matc\n        if (!body.length) {\n            let sawSome = !!fileTailMatch;\n            for (let i = fileIndex; i < file.length - fileTailMatch; i++) {\n                const f = String(file[i]);\n                sawSome = true;\n                if (f === '.' ||\n                    f === '..' ||\n                    (!this.options.dot && f.startsWith('.'))) {\n                    return false;\n                }\n            }\n            // in partial mode, we just need to get past all file parts\n            return partial || sawSome;\n        }\n        // now we know that there's one or more body sections, which can\n        // be matched anywhere from the 0 index (because the head was pruned)\n        // through to the length-fileTailMatch index.\n        // split the body up into sections, and note the minimum index it can\n        // be found at (start with the length of all previous segments)\n        // [section, before, after]\n        const bodySegments = [[[], 0]];\n        let currentBody = bodySegments[0];\n        let nonGsParts = 0;\n        const nonGsPartsSums = [0];\n        for (const b of body) {\n            if (b === exports.GLOBSTAR) {\n                nonGsPartsSums.push(nonGsParts);\n                currentBody = [[], 0];\n                bodySegments.push(currentBody);\n            }\n            else {\n                currentBody[0].push(b);\n                nonGsParts++;\n            }\n        }\n        let i = bodySegments.length - 1;\n        const fileLength = file.length - fileTailMatch;\n        for (const b of bodySegments) {\n            b[1] = fileLength - (nonGsPartsSums[i--] + b[0].length);\n        }\n        return !!this.#matchGlobStarBodySections(file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);\n    }\n    // return false for \"nope, not matching\"\n    // return null for \"not matching, cannot keep trying\"\n    #matchGlobStarBodySections(file, \n    // pattern section, last possible position for it\n    bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {\n        // take the first body segment, and walk from fileIndex to its \"after\"\n        // value at the end\n        // If it doesn't match at that position, we increment, until we hit\n        // that final possible position, and give up.\n        // If it does match, then advance and try to rest.\n        // If any of them fail we keep walking forward.\n        // this is still a bit recursively painful, but it's more constrained\n        // than previous implementations, because we never test something that\n        // can't possibly be a valid matching condition.\n        const bs = bodySegments[bodyIndex];\n        if (!bs) {\n            // just make sure that there's no bad dots\n            for (let i = fileIndex; i < file.length; i++) {\n                sawTail = true;\n                const f = file[i];\n                if (f === '.' ||\n                    f === '..' ||\n                    (!this.options.dot && f.startsWith('.'))) {\n                    return false;\n                }\n            }\n            return sawTail;\n        }\n        // have a non-globstar body section to test\n        const [body, after] = bs;\n        while (fileIndex <= after) {\n            const m = this.#matchOne(file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);\n            // if limit exceeded, no match. intentional false negative,\n            // acceptable break in correctness for security.\n            if (m && globStarDepth < this.maxGlobstarRecursion) {\n                // match! see if the rest match. if so, we're done!\n                const sub = this.#matchGlobStarBodySections(file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);\n                if (sub !== false) {\n                    return sub;\n                }\n            }\n            const f = file[fileIndex];\n            if (f === '.' ||\n                f === '..' ||\n                (!this.options.dot && f.startsWith('.'))) {\n                return false;\n            }\n            fileIndex++;\n        }\n        // walked off. no point continuing\n        return partial || null;\n    }\n    #matchOne(file, pattern, partial, fileIndex, patternIndex) {\n        let fi;\n        let pi;\n        let pl;\n        let fl;\n        for (fi = fileIndex,\n            pi = patternIndex,\n            fl = file.length,\n            pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {\n            this.debug('matchOne loop');\n            let p = pattern[pi];\n            let f = file[fi];\n            this.debug(pattern, p, f);\n            // should be impossible.\n            // some invalid regexp stuff in the set.\n            /* c8 ignore start */\n            if (p === false || p === exports.GLOBSTAR) {\n                return false;\n            }\n            /* c8 ignore stop */\n            // something other than **\n            // non-magic patterns just have to match exactly\n            // patterns with magic have been turned into regexps.\n            let hit;\n            if (typeof p === 'string') {\n                hit = f === p;\n                this.debug('string match', p, f, hit);\n            }\n            else {\n                hit = p.test(f);\n                this.debug('pattern match', p, f, hit);\n            }\n            if (!hit)\n                return false;\n        }\n        // Note: ending in / means that we'll get a final \"\"\n        // at the end of the pattern.  This can only match a\n        // corresponding \"\" at the end of the file.\n        // If the file ends in /, then it can only match a\n        // a pattern that ends in /, unless the pattern just\n        // doesn't have any more for it. But, a/b/ should *not*\n        // match \"a/b/*\", even though \"\" matches against the\n        // [^/]*? pattern, except in partial mode, where it might\n        // simply not be reached yet.\n        // However, a/b/ should still satisfy a/*\n        // now either we fell off the end of the pattern, or we're done.\n        if (fi === fl && pi === pl) {\n            // ran out of pattern and filename at the same time.\n            // an exact hit!\n            return true;\n        }\n        else if (fi === fl) {\n            // ran out of file, but still had pattern left.\n            // this is ok if we're doing the match as part of\n            // a glob fs traversal.\n            return partial;\n        }\n        else if (pi === pl) {\n            // ran out of pattern, still have file left.\n            // this is only acceptable if we're on the very last\n            // empty segment of a file with a trailing slash.\n            // a/* should match a/b/\n            return fi === fl - 1 && file[fi] === '';\n            /* c8 ignore start */\n        }\n        else {\n            // should be unreachable.\n            throw new Error('wtf?');\n        }\n        /* c8 ignore stop */\n    }\n    braceExpand() {\n        return (0, exports.braceExpand)(this.pattern, this.options);\n    }\n    parse(pattern) {\n        (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n        const options = this.options;\n        // shortcuts\n        if (pattern === '**')\n            return exports.GLOBSTAR;\n        if (pattern === '')\n            return '';\n        // far and away, the most common glob pattern parts are\n        // *, *.*, and *.  Add a fast check method for those.\n        let m;\n        let fastTest = null;\n        if ((m = pattern.match(starRE))) {\n            fastTest = options.dot ? starTestDot : starTest;\n        }\n        else if ((m = pattern.match(starDotExtRE))) {\n            fastTest = (options.nocase ?\n                options.dot ?\n                    starDotExtTestNocaseDot\n                    : starDotExtTestNocase\n                : options.dot ? starDotExtTestDot\n                    : starDotExtTest)(m[1]);\n        }\n        else if ((m = pattern.match(qmarksRE))) {\n            fastTest = (options.nocase ?\n                options.dot ?\n                    qmarksTestNocaseDot\n                    : qmarksTestNocase\n                : options.dot ? qmarksTestDot\n                    : qmarksTest)(m);\n        }\n        else if ((m = pattern.match(starDotStarRE))) {\n            fastTest = options.dot ? starDotStarTestDot : starDotStarTest;\n        }\n        else if ((m = pattern.match(dotStarRE))) {\n            fastTest = dotStarTest;\n        }\n        const re = ast_js_1.AST.fromGlob(pattern, this.options).toMMPattern();\n        if (fastTest && typeof re === 'object') {\n            // Avoids overriding in frozen environments\n            Reflect.defineProperty(re, 'test', { value: fastTest });\n        }\n        return re;\n    }\n    makeRe() {\n        if (this.regexp || this.regexp === false)\n            return this.regexp;\n        // at this point, this.set is a 2d array of partial\n        // pattern strings, or \"**\".\n        //\n        // It's better to use .match().  This function shouldn't\n        // be used, really, but it's pretty convenient sometimes,\n        // when you just want to work with a regex.\n        const set = this.set;\n        if (!set.length) {\n            this.regexp = false;\n            return this.regexp;\n        }\n        const options = this.options;\n        const twoStar = options.noglobstar ? star\n            : options.dot ? twoStarDot\n                : twoStarNoDot;\n        const flags = new Set(options.nocase ? ['i'] : []);\n        // regexpify non-globstar patterns\n        // if ** is only item, then we just do one twoStar\n        // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n        // if ** is last, append (\\/twoStar|) to previous\n        // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n        // then filter out GLOBSTAR symbols\n        let re = set\n            .map(pattern => {\n            const pp = pattern.map(p => {\n                if (p instanceof RegExp) {\n                    for (const f of p.flags.split(''))\n                        flags.add(f);\n                }\n                return (typeof p === 'string' ? regExpEscape(p)\n                    : p === exports.GLOBSTAR ? exports.GLOBSTAR\n                        : p._src);\n            });\n            pp.forEach((p, i) => {\n                const next = pp[i + 1];\n                const prev = pp[i - 1];\n                if (p !== exports.GLOBSTAR || prev === exports.GLOBSTAR) {\n                    return;\n                }\n                if (prev === undefined) {\n                    if (next !== undefined && next !== exports.GLOBSTAR) {\n                        pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next;\n                    }\n                    else {\n                        pp[i] = twoStar;\n                    }\n                }\n                else if (next === undefined) {\n                    pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + ')?';\n                }\n                else if (next !== exports.GLOBSTAR) {\n                    pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next;\n                    pp[i + 1] = exports.GLOBSTAR;\n                }\n            });\n            const filtered = pp.filter(p => p !== exports.GLOBSTAR);\n            // For partial matches, we need to make the pattern match\n            // any prefix of the full path. We do this by generating\n            // alternative patterns that match progressively longer prefixes.\n            if (this.partial && filtered.length >= 1) {\n                const prefixes = [];\n                for (let i = 1; i <= filtered.length; i++) {\n                    prefixes.push(filtered.slice(0, i).join('/'));\n                }\n                return '(?:' + prefixes.join('|') + ')';\n            }\n            return filtered.join('/');\n        })\n            .join('|');\n        // need to wrap in parens if we had more than one thing with |,\n        // otherwise only the first will be anchored to ^ and the last to $\n        const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', ''];\n        // must match entire pattern\n        // ending in a * or ** will make it less strict.\n        re = '^' + open + re + close + '$';\n        // In partial mode, '/' should always match as it's a valid prefix for any pattern\n        if (this.partial) {\n            re = '^(?:\\\\/|' + open + re.slice(1, -1) + close + ')$';\n        }\n        // can match anything, as long as it's not this.\n        if (this.negate)\n            re = '^(?!' + re + ').+$';\n        try {\n            this.regexp = new RegExp(re, [...flags].join(''));\n            /* c8 ignore start */\n        }\n        catch (ex) {\n            // should be impossible\n            this.regexp = false;\n        }\n        /* c8 ignore stop */\n        return this.regexp;\n    }\n    slashSplit(p) {\n        // if p starts with // on windows, we preserve that\n        // so that UNC paths aren't broken.  Otherwise, any number of\n        // / characters are coalesced into one, unless\n        // preserveMultipleSlashes is set to true.\n        if (this.preserveMultipleSlashes) {\n            return p.split('/');\n        }\n        else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n            // add an extra '' for the one we lose\n            return ['', ...p.split(/\\/+/)];\n        }\n        else {\n            return p.split(/\\/+/);\n        }\n    }\n    match(f, partial = this.partial) {\n        this.debug('match', f, this.pattern);\n        // short-circuit in the case of busted things.\n        // comments, etc.\n        if (this.comment) {\n            return false;\n        }\n        if (this.empty) {\n            return f === '';\n        }\n        if (f === '/' && partial) {\n            return true;\n        }\n        const options = this.options;\n        // windows: need to use /, not \\\n        if (this.isWindows) {\n            f = f.split('\\\\').join('/');\n        }\n        // treat the test path as a set of pathparts.\n        const ff = this.slashSplit(f);\n        this.debug(this.pattern, 'split', ff);\n        // just ONE of the pattern sets in this.set needs to match\n        // in order for it to be valid.  If negating, then just one\n        // match means that we have failed.\n        // Either way, return on the first hit.\n        const set = this.set;\n        this.debug(this.pattern, 'set', set);\n        // Find the basename of the path by looking for the last non-empty segment\n        let filename = ff[ff.length - 1];\n        if (!filename) {\n            for (let i = ff.length - 2; !filename && i >= 0; i--) {\n                filename = ff[i];\n            }\n        }\n        for (let i = 0; i < set.length; i++) {\n            const pattern = set[i];\n            let file = ff;\n            if (options.matchBase && pattern.length === 1) {\n                file = [filename];\n            }\n            const hit = this.matchOne(file, pattern, partial);\n            if (hit) {\n                if (options.flipNegate) {\n                    return true;\n                }\n                return !this.negate;\n            }\n        }\n        // didn't get any hits.  this is success if it's a negative\n        // pattern, failure otherwise.\n        if (options.flipNegate) {\n            return false;\n        }\n        return this.negate;\n    }\n    static defaults(def) {\n        return exports.minimatch.defaults(def).Minimatch;\n    }\n}\nexports.Minimatch = Minimatch;\n/* c8 ignore start */\nvar ast_js_2 = require(\"./ast.js\");\nObject.defineProperty(exports, \"AST\", { enumerable: true, get: function () { return ast_js_2.AST; } });\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nvar unescape_js_2 = require(\"./unescape.js\");\nObject.defineProperty(exports, \"unescape\", { enumerable: true, get: function () { return unescape_js_2.unescape; } });\n/* c8 ignore stop */\nexports.minimatch.AST = ast_js_1.AST;\nexports.minimatch.Minimatch = Minimatch;\nexports.minimatch.escape = escape_js_1.escape;\nexports.minimatch.unescape = unescape_js_1.unescape;\n//# sourceMappingURL=index.js.map",
-    "'use strict'\nconst dc = require('node:diagnostics_channel')\nconst { context, trace, SpanStatusCode, propagation, diag } = require('@opentelemetry/api')\nconst { getRPCMetadata, RPCType } = require('@opentelemetry/core')\nconst {\n  ATTR_HTTP_ROUTE,\n  ATTR_HTTP_RESPONSE_STATUS_CODE,\n  ATTR_HTTP_REQUEST_METHOD,\n  ATTR_URL_PATH\n} = require('@opentelemetry/semantic-conventions')\nconst { InstrumentationBase } = require('@opentelemetry/instrumentation')\n\nconst {\n  version: PACKAGE_VERSION,\n  name: PACKAGE_NAME\n} = require('./package.json')\n\n// Constants\nconst SUPPORTED_VERSIONS = '>=4.0.0 <6'\nconst FASTIFY_HOOKS = [\n  'onRequest',\n  'preParsing',\n  'preValidation',\n  'preHandler',\n  'preSerialization',\n  'onSend',\n  'onResponse',\n  'onError'\n]\nconst ATTRIBUTE_NAMES = {\n  HOOK_NAME: 'hook.name',\n  FASTIFY_TYPE: 'fastify.type',\n  HOOK_CALLBACK_NAME: 'hook.callback.name',\n  ROOT: 'fastify.root'\n}\nconst HOOK_TYPES = {\n  ROUTE: 'route-hook',\n  INSTANCE: 'hook',\n  HANDLER: 'request-handler'\n}\nconst ANONYMOUS_FUNCTION_NAME = 'anonymous'\n\n// Symbols\nconst kInstrumentation = Symbol('fastify otel instance')\nconst kRequestSpan = Symbol('fastify otel request spans')\nconst kRequestContext = Symbol('fastify otel request context')\nconst kAddHookOriginal = Symbol('fastify otel addhook original')\nconst kSetNotFoundOriginal = Symbol('fastify otel setnotfound original')\nconst kIgnorePaths = Symbol('fastify otel ignore path')\nconst kRecordExceptions = Symbol('fastify otel record exceptions')\n\nclass FastifyOtelInstrumentation extends InstrumentationBase {\n  logger = null\n  _requestHook = null\n  _lifecycleHook = null\n\n  constructor (config) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config)\n    this.logger = diag.createComponentLogger({ namespace: PACKAGE_NAME })\n    this[kIgnorePaths] = null\n    this[kRecordExceptions] = true\n\n    if (config?.recordExceptions != null) {\n      if (typeof config.recordExceptions !== 'boolean') {\n        throw new TypeError('recordExceptions must be a boolean')\n      }\n\n      this[kRecordExceptions] = config.recordExceptions\n    }\n    if (typeof config?.requestHook === 'function') {\n      this._requestHook = config.requestHook\n    }\n    if (typeof config?.lifecycleHook === 'function') {\n      this._lifecycleHook = config.lifecycleHook\n    }\n\n    if (config?.ignorePaths != null || process.env.OTEL_FASTIFY_IGNORE_PATHS != null) {\n      const ignorePaths = config?.ignorePaths ?? process.env.OTEL_FASTIFY_IGNORE_PATHS\n\n      if ((typeof ignorePaths !== 'string' || ignorePaths.length === 0) && typeof ignorePaths !== 'function') {\n        throw new TypeError(\n          'ignorePaths must be a string or a function'\n        )\n      }\n\n      let globMatcher = null\n\n      this[kIgnorePaths] = (routeOptions) => {\n        if (typeof ignorePaths === 'function') {\n          return ignorePaths(routeOptions)\n        } else {\n          // Using minimatch to match the path until path.matchesGlob is out of experimental\n          // path.matchesGlob uses minimatch internally\n          if (globMatcher == null) {\n            globMatcher = require('minimatch').minimatch\n          }\n\n          return globMatcher(routeOptions.url, ignorePaths)\n        }\n      }\n    }\n  }\n\n  enable () {\n    if (this._handleInitialization === undefined && this.getConfig().registerOnInitialization) {\n      this._handleInitialization = (message) => {\n        // Cannot use `fastify.register(plugin)` because it is lazily executed and\n        // thus requires user code to await fastify instance first.\n        this.plugin()(message.fastify, undefined, () => {})\n\n        // Add an empty plugin to keep `app.hasPlugin('@fastify/otel')` invariant\n        const emptyPlugin = (_, __, done) => {\n          done()\n        }\n        emptyPlugin[Symbol.for('skip-override')] = true\n        emptyPlugin[Symbol.for('fastify.display-name')] = '@fastify/otel'\n        message.fastify.register(emptyPlugin)\n      }\n      dc.subscribe('fastify.initialization', this._handleInitialization)\n    }\n    return super.enable()\n  }\n\n  disable () {\n    if (this._handleInitialization) {\n      dc.unsubscribe('fastify.initialization', this._handleInitialization)\n      this._handleInitialization = undefined\n    }\n    return super.disable()\n  }\n\n  // We do not do patching in this instrumentation\n  init () {\n    return []\n  }\n\n  plugin () {\n    const instrumentation = this\n\n    FastifyInstrumentationPlugin[Symbol.for('skip-override')] = true\n    FastifyInstrumentationPlugin[Symbol.for('fastify.display-name')] = '@fastify/otel'\n    FastifyInstrumentationPlugin[Symbol.for('plugin-meta')] = {\n      fastify: SUPPORTED_VERSIONS,\n      name: '@fastify/otel',\n    }\n\n    return FastifyInstrumentationPlugin\n\n    function FastifyInstrumentationPlugin (instance, opts, done) {\n      instance.decorate(kInstrumentation, instrumentation)\n      // addHook and notfoundHandler are essentially inherited from the prototype\n      // what is important is to bound it to the right instance\n      instance.decorate(kAddHookOriginal, instance.addHook)\n      instance.decorate(kSetNotFoundOriginal, instance.setNotFoundHandler)\n      instance.decorateRequest('opentelemetry', function openetelemetry () {\n        const ctx = this[kRequestContext]\n        const span = this[kRequestSpan]\n\n        return {\n          enabled: this.routeOptions.config?.otel !== false,\n          span,\n          tracer: instrumentation.tracer,\n          context: ctx,\n          inject: (carrier, setter) => {\n            return propagation.inject(ctx, carrier, setter)\n          },\n          extract: (carrier, getter) => {\n            return propagation.extract(ctx, carrier, getter)\n          }\n        }\n      })\n      instance.decorateRequest(kRequestSpan, null)\n      instance.decorateRequest(kRequestContext, null)\n\n      instance.addHook('onRoute', function otelWireRoute (routeOptions) {\n        if (instrumentation[kIgnorePaths]?.(routeOptions) === true) {\n          instrumentation.logger.debug(\n            `Ignoring route instrumentation ${routeOptions.method} ${routeOptions.url} because it matches the ignore path`\n          )\n          return\n        }\n\n        if (routeOptions.config?.otel === false) {\n          instrumentation.logger.debug(\n            `Ignoring route instrumentation ${routeOptions.method} ${routeOptions.url} because it is disabled`\n          )\n\n          return\n        }\n\n        for (const hook of FASTIFY_HOOKS) {\n          if (routeOptions[hook] != null) {\n            const handlerLike = routeOptions[hook]\n\n            if (typeof handlerLike === 'function') {\n              routeOptions[hook] = handlerWrapper(handlerLike, hook, {\n                [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - route -> ${hook}`,\n                [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.ROUTE,\n                [ATTR_HTTP_ROUTE]: routeOptions.url,\n                [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n                  handlerLike.name?.length > 0\n                    ? handlerLike.name\n                    : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n              })\n            } else if (Array.isArray(handlerLike)) {\n              const wrappedHandlers = []\n\n              for (const handler of handlerLike) {\n                wrappedHandlers.push(\n                  handlerWrapper(handler, hook, {\n                    [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - route -> ${hook}`,\n                    [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.ROUTE,\n                    [ATTR_HTTP_ROUTE]: routeOptions.url,\n                    [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n                      handler.name?.length > 0\n                        ? handler.name\n                        : ANONYMOUS_FUNCTION_NAME\n                  })\n                )\n              }\n\n              routeOptions[hook] = wrappedHandlers\n            }\n          }\n        }\n\n        // We always want to add the onSend hook to the route to be executed last\n        if (routeOptions.onSend != null) {\n          routeOptions.onSend = Array.isArray(routeOptions.onSend)\n            ? [...routeOptions.onSend, finalizeResponseSpanHook]\n            : [routeOptions.onSend, finalizeResponseSpanHook]\n        } else {\n          routeOptions.onSend = finalizeResponseSpanHook\n        }\n\n        // We always want to add the onError hook to the route to be executed last\n        if (routeOptions.onError != null) {\n          routeOptions.onError = Array.isArray(routeOptions.onError)\n            ? [...routeOptions.onError, recordErrorInSpanHook]\n            : [routeOptions.onError, recordErrorInSpanHook]\n        } else {\n          routeOptions.onError = recordErrorInSpanHook\n        }\n\n        routeOptions.handler = handlerWrapper(routeOptions.handler, 'handler', {\n          [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - route-handler`,\n          [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.HANDLER,\n          [ATTR_HTTP_ROUTE]: routeOptions.url,\n          [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n            routeOptions.handler.name.length > 0\n              ? routeOptions.handler.name\n              : ANONYMOUS_FUNCTION_NAME\n        })\n      })\n\n      instance.addHook('onRequest', function startRequestSpanHook (request, _reply, hookDone) {\n        if (\n          this[kInstrumentation].isEnabled() === false ||\n          request.routeOptions.config?.otel === false\n        ) {\n          return hookDone()\n        }\n\n        if (this[kInstrumentation][kIgnorePaths]?.({\n          url: request.url,\n          method: request.method,\n        }) === true) {\n          this[kInstrumentation].logger.debug(\n            `Ignoring request ${request.method} ${request.url} because it matches the ignore path`\n          )\n          return hookDone()\n        }\n\n        let ctx = context.active()\n\n        if (trace.getSpan(ctx) == null) {\n          ctx = propagation.extract(ctx, request.headers)\n        }\n\n        const rpcMetadata = getRPCMetadata(ctx)\n\n        if (\n          request.routeOptions.url != null &&\n          rpcMetadata?.type === RPCType.HTTP\n        ) {\n          rpcMetadata.route = request.routeOptions.url\n        }\n\n        const attributes = {\n          [ATTRIBUTE_NAMES.ROOT]: '@fastify/otel',\n          [ATTR_HTTP_REQUEST_METHOD]: request.method,\n          [ATTR_URL_PATH]: request.url\n        }\n\n        if (request.routeOptions.url != null) {\n          attributes[ATTR_HTTP_ROUTE] = request.routeOptions.url\n        }\n\n        /** @type {import('@opentelemetry/api').Span} */\n        const span = this[kInstrumentation].tracer.startSpan('request', {\n          attributes\n        }, ctx)\n\n        try {\n          this[kInstrumentation]._requestHook?.(span, request)\n        } catch (err) {\n          this[kInstrumentation].logger.error({ err }, 'requestHook threw')\n        }\n\n        request[kRequestContext] = trace.setSpan(ctx, span)\n        request[kRequestSpan] = span\n\n        context.with(request[kRequestContext], () => {\n          hookDone()\n        })\n      })\n\n      // onResponse is the last hook to be executed, only added for 404 handlers\n      instance.addHook('onResponse', function finalizeNotFoundSpanHook (request, reply, hookDone) {\n        const span = request[kRequestSpan]\n\n        if (span != null) {\n          span.setStatus({\n            code: SpanStatusCode.OK,\n            message: 'OK'\n          })\n          span.setAttributes({\n            [ATTR_HTTP_RESPONSE_STATUS_CODE]: 404\n          })\n          span.end()\n        }\n\n        request[kRequestSpan] = null\n\n        hookDone()\n      })\n\n      instance.addHook = addHookPatched\n      instance.setNotFoundHandler = setNotFoundHandlerPatched\n\n      done()\n\n      function finalizeResponseSpanHook (request, reply, payload, hookDone) {\n        /** @type {import('@opentelemetry/api').Span} */\n        const span = request[kRequestSpan]\n\n        if (span != null) {\n          if (reply.statusCode < 500) {\n            span.setStatus({\n              code: SpanStatusCode.OK,\n              message: 'OK'\n            })\n          }\n\n          span.setAttributes({\n            [ATTR_HTTP_RESPONSE_STATUS_CODE]: reply.statusCode\n          })\n          span.end()\n        }\n\n        request[kRequestSpan] = null\n\n        hookDone(null, payload)\n      }\n\n      function recordErrorInSpanHook (request, reply, error, hookDone) {\n        /** @type {Span} */\n        const span = request[kRequestSpan]\n\n        if (span != null) {\n          span.setStatus({\n            code: SpanStatusCode.ERROR,\n            message: error.message\n          })\n          if (instrumentation[kRecordExceptions] !== false) {\n            span.recordException(error)\n          }\n        }\n\n        hookDone()\n      }\n\n      function addHookPatched (name, hook) {\n        const addHookOriginal = this[kAddHookOriginal]\n\n        if (FASTIFY_HOOKS.includes(name)) {\n          return addHookOriginal.call(\n            this,\n            name,\n            handlerWrapper(hook, name, {\n              [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - ${name}`,\n              [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n              [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n                hook.name?.length > 0\n                  ? hook.name\n                  : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n            })\n          )\n        } else {\n          return addHookOriginal.call(this, name, hook)\n        }\n      }\n\n      function setNotFoundHandlerPatched (hooks, handler) {\n        const setNotFoundHandlerOriginal = this[kSetNotFoundOriginal]\n        if (typeof hooks === 'function') {\n          handler = handlerWrapper(hooks, 'notFoundHandler', {\n            [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler`,\n            [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n            [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n              hooks.name?.length > 0\n                ? hooks.name\n                : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n          })\n          setNotFoundHandlerOriginal.call(this, handler)\n        } else {\n          if (hooks.preValidation != null) {\n            hooks.preValidation = handlerWrapper(hooks.preValidation, 'notFoundHandler - preValidation', {\n              [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler - preValidation`,\n              [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n              [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n                hooks.preValidation.name?.length > 0\n                  ? hooks.preValidation.name\n                  : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n            })\n          }\n\n          if (hooks.preHandler != null) {\n            hooks.preHandler = handlerWrapper(hooks.preHandler, 'notFoundHandler - preHandler', {\n              [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler - preHandler`,\n              [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n              [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n                hooks.preHandler.name?.length > 0\n                  ? hooks.preHandler.name\n                  : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n            })\n          }\n\n          handler = handlerWrapper(handler, 'notFoundHandler', {\n            [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler`,\n            [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n            [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n              handler.name?.length > 0\n                ? handler.name\n                : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n          })\n          setNotFoundHandlerOriginal.call(this, hooks, handler)\n        }\n      }\n\n      function handlerWrapper (handler, hookName, spanAttributes = {}) {\n        return function handlerWrapped (...args) {\n          /** @type {FastifyOtelInstrumentation} */\n          const instrumentation = this[kInstrumentation]\n          const [request] = args\n\n          if (instrumentation.isEnabled() === false || request.routeOptions.config?.otel === false) {\n            instrumentation.logger.debug(\n              `Ignoring route instrumentation ${request.routeOptions.method} ${request.routeOptions.url} because it is disabled`\n            )\n            return handler.call(this, ...args)\n          }\n\n          if (instrumentation[kIgnorePaths]?.({\n            url: request.url,\n            method: request.method,\n          }) === true) {\n            instrumentation.logger.debug(\n              `Ignoring route instrumentation ${request.routeOptions.method} ${request.routeOptions.url} because it matches the ignore path`\n            )\n            return handler.call(this, ...args)\n          }\n\n          /* c8 ignore next */\n          const ctx = request[kRequestContext] ?? context.active()\n          const handlerName = handler.name?.length > 0\n            ? handler.name\n            : this.pluginName /* c8 ignore next */ ?? ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n\n          const span = instrumentation.tracer.startSpan(\n            `${hookName} - ${handlerName}`,\n            {\n              attributes: spanAttributes\n            },\n            ctx\n          )\n\n          if (instrumentation._lifecycleHook != null) {\n            try {\n              instrumentation._lifecycleHook(span, {\n                hookName,\n                request,\n                handler: handlerName\n              })\n            } catch (err) {\n              instrumentation.logger.error({ err }, 'Execution of lifecycleHook failed')\n            }\n          }\n\n          return context.with(\n            trace.setSpan(ctx, span),\n            function () {\n              try {\n                const res = handler.call(this, ...args)\n\n                if (typeof res?.then === 'function') {\n                  return res.then(\n                    result => {\n                      span.end()\n                      return result\n                    },\n                    error => {\n                      span.setStatus({\n                        code: SpanStatusCode.ERROR,\n                        message: error.message\n                      })\n                      if (instrumentation[kRecordExceptions] !== false) {\n                        span.recordException(error)\n                      }\n                      span.end()\n                      return Promise.reject(error)\n                    }\n                  )\n                }\n\n                span.end()\n                return res\n              } catch (error) {\n                span.setStatus({\n                  code: SpanStatusCode.ERROR,\n                  message: error.message\n                })\n                if (instrumentation[kRecordExceptions] !== false) {\n                  span.recordException(error)\n                }\n                span.end()\n                throw error\n              }\n            },\n            this\n          )\n        }\n      }\n    }\n  }\n}\n\nmodule.exports = FastifyOtelInstrumentation\nmodule.exports.FastifyOtelInstrumentation = FastifyOtelInstrumentation\n",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SpanNames = exports.TokenKind = exports.AllowedOperationTypes = void 0;\nvar AllowedOperationTypes;\n(function (AllowedOperationTypes) {\n    AllowedOperationTypes[\"QUERY\"] = \"query\";\n    AllowedOperationTypes[\"MUTATION\"] = \"mutation\";\n    AllowedOperationTypes[\"SUBSCRIPTION\"] = \"subscription\";\n})(AllowedOperationTypes = exports.AllowedOperationTypes || (exports.AllowedOperationTypes = {}));\nvar TokenKind;\n(function (TokenKind) {\n    TokenKind[\"SOF\"] = \"\";\n    TokenKind[\"EOF\"] = \"\";\n    TokenKind[\"BANG\"] = \"!\";\n    TokenKind[\"DOLLAR\"] = \"$\";\n    TokenKind[\"AMP\"] = \"&\";\n    TokenKind[\"PAREN_L\"] = \"(\";\n    TokenKind[\"PAREN_R\"] = \")\";\n    TokenKind[\"SPREAD\"] = \"...\";\n    TokenKind[\"COLON\"] = \":\";\n    TokenKind[\"EQUALS\"] = \"=\";\n    TokenKind[\"AT\"] = \"@\";\n    TokenKind[\"BRACKET_L\"] = \"[\";\n    TokenKind[\"BRACKET_R\"] = \"]\";\n    TokenKind[\"BRACE_L\"] = \"{\";\n    TokenKind[\"PIPE\"] = \"|\";\n    TokenKind[\"BRACE_R\"] = \"}\";\n    TokenKind[\"NAME\"] = \"Name\";\n    TokenKind[\"INT\"] = \"Int\";\n    TokenKind[\"FLOAT\"] = \"Float\";\n    TokenKind[\"STRING\"] = \"String\";\n    TokenKind[\"BLOCK_STRING\"] = \"BlockString\";\n    TokenKind[\"COMMENT\"] = \"Comment\";\n})(TokenKind = exports.TokenKind || (exports.TokenKind = {}));\nvar SpanNames;\n(function (SpanNames) {\n    SpanNames[\"EXECUTE\"] = \"graphql.execute\";\n    SpanNames[\"PARSE\"] = \"graphql.parse\";\n    SpanNames[\"RESOLVE\"] = \"graphql.resolve\";\n    SpanNames[\"VALIDATE\"] = \"graphql.validate\";\n    SpanNames[\"SCHEMA_VALIDATE\"] = \"graphql.validateSchema\";\n    SpanNames[\"SCHEMA_PARSE\"] = \"graphql.parseSchema\";\n})(SpanNames = exports.SpanNames || (exports.SpanNames = {}));\n//# sourceMappingURL=enum.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar AttributeNames;\n(function (AttributeNames) {\n    AttributeNames[\"SOURCE\"] = \"graphql.source\";\n    AttributeNames[\"FIELD_NAME\"] = \"graphql.field.name\";\n    AttributeNames[\"FIELD_PATH\"] = \"graphql.field.path\";\n    AttributeNames[\"FIELD_TYPE\"] = \"graphql.field.type\";\n    AttributeNames[\"PARENT_NAME\"] = \"graphql.parent.name\";\n    AttributeNames[\"OPERATION_TYPE\"] = \"graphql.operation.type\";\n    AttributeNames[\"OPERATION_NAME\"] = \"graphql.operation.name\";\n    AttributeNames[\"VARIABLES\"] = \"graphql.variables.\";\n    AttributeNames[\"ERROR_VALIDATION_NAME\"] = \"graphql.validation.error\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OTEL_GRAPHQL_DATA_SYMBOL = exports.OTEL_PATCHED_SYMBOL = void 0;\nexports.OTEL_PATCHED_SYMBOL = Symbol.for('opentelemetry.patched');\nexports.OTEL_GRAPHQL_DATA_SYMBOL = Symbol.for('opentelemetry.graphql_data');\n//# sourceMappingURL=symbols.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OPERATION_NOT_SUPPORTED = void 0;\nconst symbols_1 = require(\"./symbols\");\nexports.OPERATION_NOT_SUPPORTED = 'Operation$operationName$not' + ' supported';\n//# sourceMappingURL=internal-types.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapFieldResolver = exports.wrapFields = exports.getSourceFromLocation = exports.getOperation = exports.endSpan = exports.addSpanSource = exports.addInputVariableAttributes = exports.isPromise = void 0;\nconst api = require(\"@opentelemetry/api\");\nconst enum_1 = require(\"./enum\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst symbols_1 = require(\"./symbols\");\nconst OPERATION_VALUES = Object.values(enum_1.AllowedOperationTypes);\n// https://github.com/graphql/graphql-js/blob/main/src/jsutils/isPromise.ts\nconst isPromise = (value) => {\n    return typeof value?.then === 'function';\n};\nexports.isPromise = isPromise;\n// https://github.com/graphql/graphql-js/blob/main/src/jsutils/isObjectLike.ts\nconst isObjectLike = (value) => {\n    return typeof value == 'object' && value !== null;\n};\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction addInputVariableAttribute(span, key, variable) {\n    if (Array.isArray(variable)) {\n        variable.forEach((value, idx) => {\n            addInputVariableAttribute(span, `${key}.${idx}`, value);\n        });\n    }\n    else if (variable instanceof Object) {\n        Object.entries(variable).forEach(([nestedKey, value]) => {\n            addInputVariableAttribute(span, `${key}.${nestedKey}`, value);\n        });\n    }\n    else {\n        span.setAttribute(`${AttributeNames_1.AttributeNames.VARIABLES}${String(key)}`, variable);\n    }\n}\nfunction addInputVariableAttributes(span, variableValues) {\n    Object.entries(variableValues).forEach(([key, value]) => {\n        addInputVariableAttribute(span, key, value);\n    });\n}\nexports.addInputVariableAttributes = addInputVariableAttributes;\nfunction addSpanSource(span, loc, allowValues, start, end) {\n    const source = getSourceFromLocation(loc, allowValues, start, end);\n    span.setAttribute(AttributeNames_1.AttributeNames.SOURCE, source);\n}\nexports.addSpanSource = addSpanSource;\nfunction createFieldIfNotExists(tracer, getConfig, contextValue, info, path) {\n    let field = getField(contextValue, path);\n    if (field) {\n        return { field, spanAdded: false };\n    }\n    const config = getConfig();\n    const parentSpan = config.flatResolveSpans\n        ? getRootSpan(contextValue)\n        : getParentFieldSpan(contextValue, path);\n    field = {\n        span: createResolverSpan(tracer, getConfig, contextValue, info, path, parentSpan),\n    };\n    addField(contextValue, path, field);\n    return { field, spanAdded: true };\n}\nfunction createResolverSpan(tracer, getConfig, contextValue, info, path, parentSpan) {\n    const attributes = {\n        [AttributeNames_1.AttributeNames.FIELD_NAME]: info.fieldName,\n        [AttributeNames_1.AttributeNames.FIELD_PATH]: path.join('.'),\n        [AttributeNames_1.AttributeNames.FIELD_TYPE]: info.returnType.toString(),\n        [AttributeNames_1.AttributeNames.PARENT_NAME]: info.parentType.name,\n    };\n    const span = tracer.startSpan(`${enum_1.SpanNames.RESOLVE} ${attributes[AttributeNames_1.AttributeNames.FIELD_PATH]}`, {\n        attributes,\n    }, parentSpan ? api.trace.setSpan(api.context.active(), parentSpan) : undefined);\n    const document = contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL].source;\n    const fieldNode = info.fieldNodes.find(fieldNode => fieldNode.kind === 'Field');\n    if (fieldNode) {\n        addSpanSource(span, document.loc, getConfig().allowValues, fieldNode.loc?.start, fieldNode.loc?.end);\n    }\n    return span;\n}\nfunction endSpan(span, error) {\n    if (error) {\n        span.recordException(error);\n    }\n    span.end();\n}\nexports.endSpan = endSpan;\nfunction getOperation(document, operationName) {\n    if (!document || !Array.isArray(document.definitions)) {\n        return undefined;\n    }\n    if (operationName) {\n        return document.definitions\n            .filter(definition => OPERATION_VALUES.indexOf(definition?.operation) !== -1)\n            .find(definition => operationName === definition?.name?.value);\n    }\n    else {\n        return document.definitions.find(definition => OPERATION_VALUES.indexOf(definition?.operation) !== -1);\n    }\n}\nexports.getOperation = getOperation;\nfunction addField(contextValue, path, field) {\n    return (contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL].fields[path.join('.')] =\n        field);\n}\nfunction getField(contextValue, path) {\n    return contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL].fields[path.join('.')];\n}\nfunction getParentFieldSpan(contextValue, path) {\n    for (let i = path.length - 1; i > 0; i--) {\n        const field = getField(contextValue, path.slice(0, i));\n        if (field) {\n            return field.span;\n        }\n    }\n    return getRootSpan(contextValue);\n}\nfunction getRootSpan(contextValue) {\n    return contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL].span;\n}\nfunction pathToArray(mergeItems, path) {\n    const flattened = [];\n    let curr = path;\n    while (curr) {\n        let key = curr.key;\n        if (mergeItems && typeof key === 'number') {\n            key = '*';\n        }\n        flattened.push(String(key));\n        curr = curr.prev;\n    }\n    return flattened.reverse();\n}\nfunction repeatBreak(i) {\n    return repeatChar('\\n', i);\n}\nfunction repeatSpace(i) {\n    return repeatChar(' ', i);\n}\nfunction repeatChar(char, to) {\n    let text = '';\n    for (let i = 0; i < to; i++) {\n        text += char;\n    }\n    return text;\n}\nconst KindsToBeRemoved = [\n    enum_1.TokenKind.FLOAT,\n    enum_1.TokenKind.STRING,\n    enum_1.TokenKind.INT,\n    enum_1.TokenKind.BLOCK_STRING,\n];\nfunction getSourceFromLocation(loc, allowValues = false, inputStart, inputEnd) {\n    let source = '';\n    if (loc?.startToken) {\n        const start = typeof inputStart === 'number' ? inputStart : loc.start;\n        const end = typeof inputEnd === 'number' ? inputEnd : loc.end;\n        let next = loc.startToken.next;\n        let previousLine = 1;\n        while (next) {\n            if (next.start < start) {\n                next = next.next;\n                previousLine = next?.line;\n                continue;\n            }\n            if (next.end > end) {\n                next = next.next;\n                previousLine = next?.line;\n                continue;\n            }\n            let value = next.value || next.kind;\n            let space = '';\n            if (!allowValues && KindsToBeRemoved.indexOf(next.kind) >= 0) {\n                // value = repeatChar('*', value.length);\n                value = '*';\n            }\n            if (next.kind === enum_1.TokenKind.STRING) {\n                value = `\"${value}\"`;\n            }\n            if (next.kind === enum_1.TokenKind.EOF) {\n                value = '';\n            }\n            if (next.line > previousLine) {\n                source += repeatBreak(next.line - previousLine);\n                previousLine = next.line;\n                space = repeatSpace(next.column - 1);\n            }\n            else {\n                if (next.line === next.prev?.line) {\n                    space = repeatSpace(next.start - (next.prev?.end || 0));\n                }\n            }\n            source += space + value;\n            if (next) {\n                next = next.next;\n            }\n        }\n    }\n    return source;\n}\nexports.getSourceFromLocation = getSourceFromLocation;\nfunction wrapFields(type, tracer, getConfig) {\n    if (!type || type[symbols_1.OTEL_PATCHED_SYMBOL]) {\n        return;\n    }\n    const fields = type.getFields();\n    type[symbols_1.OTEL_PATCHED_SYMBOL] = true;\n    Object.keys(fields).forEach(key => {\n        const field = fields[key];\n        if (!field) {\n            return;\n        }\n        if (field.resolve) {\n            field.resolve = wrapFieldResolver(tracer, getConfig, field.resolve);\n        }\n        if (field.type) {\n            const unwrappedTypes = unwrapType(field.type);\n            for (const unwrappedType of unwrappedTypes) {\n                wrapFields(unwrappedType, tracer, getConfig);\n            }\n        }\n    });\n}\nexports.wrapFields = wrapFields;\nfunction unwrapType(type) {\n    // unwrap wrapping types (non-nullable and list types)\n    if ('ofType' in type) {\n        return unwrapType(type.ofType);\n    }\n    // unwrap union types\n    if (isGraphQLUnionType(type)) {\n        return type.getTypes();\n    }\n    // return object types\n    if (isGraphQLObjectType(type)) {\n        return [type];\n    }\n    return [];\n}\nfunction isGraphQLUnionType(type) {\n    return 'getTypes' in type && typeof type.getTypes === 'function';\n}\nfunction isGraphQLObjectType(type) {\n    return 'getFields' in type && typeof type.getFields === 'function';\n}\nconst handleResolveSpanError = (resolveSpan, err, shouldEndSpan) => {\n    if (!shouldEndSpan) {\n        return;\n    }\n    resolveSpan.recordException(err);\n    resolveSpan.setStatus({\n        code: api.SpanStatusCode.ERROR,\n        message: err.message,\n    });\n    resolveSpan.end();\n};\nconst handleResolveSpanSuccess = (resolveSpan, shouldEndSpan) => {\n    if (!shouldEndSpan) {\n        return;\n    }\n    resolveSpan.end();\n};\nfunction wrapFieldResolver(tracer, getConfig, fieldResolver, isDefaultResolver = false) {\n    if (wrappedFieldResolver[symbols_1.OTEL_PATCHED_SYMBOL] ||\n        typeof fieldResolver !== 'function') {\n        return fieldResolver;\n    }\n    function wrappedFieldResolver(source, args, contextValue, info) {\n        if (!fieldResolver) {\n            return undefined;\n        }\n        const config = getConfig();\n        // follows what graphql is doing to decide if this is a trivial resolver\n        // for which we don't need to create a resolve span\n        if (config.ignoreTrivialResolveSpans &&\n            isDefaultResolver &&\n            (isObjectLike(source) || typeof source === 'function')) {\n            const property = source[info.fieldName];\n            // a function execution is not trivial and should be recorder.\n            // property which is not a function is just a value and we don't want a \"resolve\" span for it\n            if (typeof property !== 'function') {\n                return fieldResolver.call(this, source, args, contextValue, info);\n            }\n        }\n        if (!contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL]) {\n            return fieldResolver.call(this, source, args, contextValue, info);\n        }\n        const path = pathToArray(config.mergeItems, info && info.path);\n        const depth = path.filter((item) => typeof item === 'string').length;\n        let span;\n        let shouldEndSpan = false;\n        if (config.depth >= 0 && config.depth < depth) {\n            span = getParentFieldSpan(contextValue, path);\n        }\n        else {\n            const { field, spanAdded } = createFieldIfNotExists(tracer, getConfig, contextValue, info, path);\n            span = field.span;\n            shouldEndSpan = spanAdded;\n        }\n        return api.context.with(api.trace.setSpan(api.context.active(), span), () => {\n            try {\n                const res = fieldResolver.call(this, source, args, contextValue, info);\n                if ((0, exports.isPromise)(res)) {\n                    return res.then((r) => {\n                        handleResolveSpanSuccess(span, shouldEndSpan);\n                        return r;\n                    }, (err) => {\n                        handleResolveSpanError(span, err, shouldEndSpan);\n                        throw err;\n                    });\n                }\n                else {\n                    handleResolveSpanSuccess(span, shouldEndSpan);\n                    return res;\n                }\n            }\n            catch (err) {\n                handleResolveSpanError(span, err, shouldEndSpan);\n                throw err;\n            }\n        });\n    }\n    wrappedFieldResolver[symbols_1.OTEL_PATCHED_SYMBOL] = true;\n    return wrappedFieldResolver;\n}\nexports.wrapFieldResolver = wrapFieldResolver;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.61.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-graphql';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GraphQLInstrumentation = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst enum_1 = require(\"./enum\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst symbols_1 = require(\"./symbols\");\nconst internal_types_1 = require(\"./internal-types\");\nconst utils_1 = require(\"./utils\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst DEFAULT_CONFIG = {\n    mergeItems: false,\n    depth: -1,\n    allowValues: false,\n    ignoreResolveSpans: false,\n};\nconst supportedVersions = ['>=14.0.0 <17'];\nclass GraphQLInstrumentation extends instrumentation_1.InstrumentationBase {\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, { ...DEFAULT_CONFIG, ...config });\n    }\n    setConfig(config = {}) {\n        super.setConfig({ ...DEFAULT_CONFIG, ...config });\n    }\n    init() {\n        const module = new instrumentation_1.InstrumentationNodeModuleDefinition('graphql', supportedVersions);\n        module.files.push(this._addPatchingExecute());\n        module.files.push(this._addPatchingParser());\n        module.files.push(this._addPatchingValidate());\n        return module;\n    }\n    _addPatchingExecute() {\n        return new instrumentation_1.InstrumentationNodeModuleFile('graphql/execution/execute.js', supportedVersions, \n        // cannot make it work with appropriate type as execute function has 2\n        //types and/cannot import function but only types\n        (moduleExports) => {\n            if ((0, instrumentation_1.isWrapped)(moduleExports.execute)) {\n                this._unwrap(moduleExports, 'execute');\n            }\n            this._wrap(moduleExports, 'execute', this._patchExecute(moduleExports.defaultFieldResolver));\n            return moduleExports;\n        }, moduleExports => {\n            if (moduleExports) {\n                this._unwrap(moduleExports, 'execute');\n            }\n        });\n    }\n    _addPatchingParser() {\n        return new instrumentation_1.InstrumentationNodeModuleFile('graphql/language/parser.js', supportedVersions, (moduleExports) => {\n            if ((0, instrumentation_1.isWrapped)(moduleExports.parse)) {\n                this._unwrap(moduleExports, 'parse');\n            }\n            this._wrap(moduleExports, 'parse', this._patchParse());\n            return moduleExports;\n        }, (moduleExports) => {\n            if (moduleExports) {\n                this._unwrap(moduleExports, 'parse');\n            }\n        });\n    }\n    _addPatchingValidate() {\n        return new instrumentation_1.InstrumentationNodeModuleFile('graphql/validation/validate.js', supportedVersions, moduleExports => {\n            if ((0, instrumentation_1.isWrapped)(moduleExports.validate)) {\n                this._unwrap(moduleExports, 'validate');\n            }\n            this._wrap(moduleExports, 'validate', this._patchValidate());\n            return moduleExports;\n        }, moduleExports => {\n            if (moduleExports) {\n                this._unwrap(moduleExports, 'validate');\n            }\n        });\n    }\n    _patchExecute(defaultFieldResolved) {\n        const instrumentation = this;\n        return function execute(original) {\n            return function patchExecute() {\n                let processedArgs;\n                // case when apollo server is used for example\n                if (arguments.length >= 2) {\n                    const args = arguments;\n                    processedArgs = instrumentation._wrapExecuteArgs(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], defaultFieldResolved);\n                }\n                else {\n                    const args = arguments[0];\n                    processedArgs = instrumentation._wrapExecuteArgs(args.schema, args.document, args.rootValue, args.contextValue, args.variableValues, args.operationName, args.fieldResolver, args.typeResolver, defaultFieldResolved);\n                }\n                const operation = (0, utils_1.getOperation)(processedArgs.document, processedArgs.operationName);\n                const span = instrumentation._createExecuteSpan(operation, processedArgs);\n                processedArgs.contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL] = {\n                    source: processedArgs.document\n                        ? processedArgs.document ||\n                            processedArgs.document[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL]\n                        : undefined,\n                    span,\n                    fields: {},\n                };\n                return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n                    return (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                        return original.apply(this, [\n                            processedArgs,\n                        ]);\n                    }, (err, result) => {\n                        instrumentation._handleExecutionResult(span, err, result);\n                    });\n                });\n            };\n        };\n    }\n    _handleExecutionResult(span, err, result) {\n        const config = this.getConfig();\n        if (result === undefined || err) {\n            (0, utils_1.endSpan)(span, err);\n            return;\n        }\n        if ((0, utils_1.isPromise)(result)) {\n            result.then(resultData => {\n                if (typeof config.responseHook !== 'function') {\n                    (0, utils_1.endSpan)(span);\n                    return;\n                }\n                this._executeResponseHook(span, resultData);\n            }, error => {\n                (0, utils_1.endSpan)(span, error);\n            });\n        }\n        else {\n            if (typeof config.responseHook !== 'function') {\n                (0, utils_1.endSpan)(span);\n                return;\n            }\n            this._executeResponseHook(span, result);\n        }\n    }\n    _executeResponseHook(span, result) {\n        const { responseHook } = this.getConfig();\n        if (!responseHook) {\n            return;\n        }\n        (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n            responseHook(span, result);\n        }, err => {\n            if (err) {\n                this._diag.error('Error running response hook', err);\n            }\n            (0, utils_1.endSpan)(span, undefined);\n        }, true);\n    }\n    _patchParse() {\n        const instrumentation = this;\n        return function parse(original) {\n            return function patchParse(source, options) {\n                return instrumentation._parse(this, original, source, options);\n            };\n        };\n    }\n    _patchValidate() {\n        const instrumentation = this;\n        return function validate(original) {\n            return function patchValidate(schema, documentAST, rules, options, typeInfo) {\n                return instrumentation._validate(this, original, schema, documentAST, rules, typeInfo, options);\n            };\n        };\n    }\n    _parse(obj, original, source, options) {\n        const config = this.getConfig();\n        const span = this.tracer.startSpan(enum_1.SpanNames.PARSE);\n        return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n            return (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                return original.call(obj, source, options);\n            }, (err, result) => {\n                if (result) {\n                    const operation = (0, utils_1.getOperation)(result);\n                    if (!operation) {\n                        span.updateName(enum_1.SpanNames.SCHEMA_PARSE);\n                    }\n                    else if (result.loc) {\n                        (0, utils_1.addSpanSource)(span, result.loc, config.allowValues);\n                    }\n                }\n                (0, utils_1.endSpan)(span, err);\n            });\n        });\n    }\n    _validate(obj, original, schema, documentAST, rules, typeInfo, options) {\n        const span = this.tracer.startSpan(enum_1.SpanNames.VALIDATE, {});\n        return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n            return (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                return original.call(obj, schema, documentAST, rules, options, typeInfo);\n            }, (err, errors) => {\n                if (!documentAST.loc) {\n                    span.updateName(enum_1.SpanNames.SCHEMA_VALIDATE);\n                }\n                if (errors && errors.length) {\n                    span.recordException({\n                        name: AttributeNames_1.AttributeNames.ERROR_VALIDATION_NAME,\n                        message: JSON.stringify(errors),\n                    });\n                }\n                (0, utils_1.endSpan)(span, err);\n            });\n        });\n    }\n    _createExecuteSpan(operation, processedArgs) {\n        const config = this.getConfig();\n        const span = this.tracer.startSpan(enum_1.SpanNames.EXECUTE, {});\n        if (operation) {\n            const { operation: operationType, name: nameNode } = operation;\n            span.setAttribute(AttributeNames_1.AttributeNames.OPERATION_TYPE, operationType);\n            const operationName = nameNode?.value;\n            // https://opentelemetry.io/docs/reference/specification/trace/semantic_conventions/instrumentation/graphql/\n            // > The span name MUST be of the format   provided that graphql.operation.type and graphql.operation.name are available.\n            // > If graphql.operation.name is not available, the span SHOULD be named .\n            if (operationName) {\n                span.setAttribute(AttributeNames_1.AttributeNames.OPERATION_NAME, operationName);\n                span.updateName(`${operationType} ${operationName}`);\n            }\n            else {\n                span.updateName(operationType);\n            }\n        }\n        else {\n            let operationName = ' ';\n            if (processedArgs.operationName) {\n                operationName = ` \"${processedArgs.operationName}\" `;\n            }\n            operationName = internal_types_1.OPERATION_NOT_SUPPORTED.replace('$operationName$', operationName);\n            span.setAttribute(AttributeNames_1.AttributeNames.OPERATION_NAME, operationName);\n        }\n        if (processedArgs.document?.loc) {\n            (0, utils_1.addSpanSource)(span, processedArgs.document.loc, config.allowValues);\n        }\n        if (processedArgs.variableValues && config.allowValues) {\n            (0, utils_1.addInputVariableAttributes)(span, processedArgs.variableValues);\n        }\n        return span;\n    }\n    _wrapExecuteArgs(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver, defaultFieldResolved) {\n        if (!contextValue) {\n            contextValue = {};\n        }\n        if (contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL] ||\n            this.getConfig().ignoreResolveSpans) {\n            return {\n                schema,\n                document,\n                rootValue,\n                contextValue,\n                variableValues,\n                operationName,\n                fieldResolver,\n                typeResolver,\n            };\n        }\n        const isUsingDefaultResolver = fieldResolver == null;\n        // follows graphql implementation here:\n        // https://github.com/graphql/graphql-js/blob/0b7daed9811731362c71900e12e5ea0d1ecc7f1f/src/execution/execute.ts#L494\n        const fieldResolverForExecute = fieldResolver ?? defaultFieldResolved;\n        fieldResolver = (0, utils_1.wrapFieldResolver)(this.tracer, () => this.getConfig(), fieldResolverForExecute, isUsingDefaultResolver);\n        if (schema) {\n            (0, utils_1.wrapFields)(schema.getQueryType(), this.tracer, () => this.getConfig());\n            (0, utils_1.wrapFields)(schema.getMutationType(), this.tracer, () => this.getConfig());\n        }\n        return {\n            schema,\n            document,\n            rootValue,\n            contextValue,\n            variableValues,\n            operationName,\n            fieldResolver,\n            typeResolver,\n        };\n    }\n}\nexports.GraphQLInstrumentation = GraphQLInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GraphQLInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"GraphQLInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.GraphQLInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors, Aspecto\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EVENT_LISTENERS_SET = void 0;\nexports.EVENT_LISTENERS_SET = Symbol('opentelemetry.instrumentation.kafkajs.eventListenersSet');\n//# sourceMappingURL=internal-types.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bufferTextMapGetter = void 0;\n/*\nsame as open telemetry's `defaultTextMapGetter`,\nbut also handle case where header is buffer,\nadding toString() to make sure string is returned\n*/\nexports.bufferTextMapGetter = {\n    get(carrier, key) {\n        if (!carrier) {\n            return undefined;\n        }\n        const keys = Object.keys(carrier);\n        for (const carrierKey of keys) {\n            if (carrierKey === key || carrierKey.toLowerCase() === key) {\n                return carrier[carrierKey]?.toString();\n            }\n        }\n        return undefined;\n    },\n    keys(carrier) {\n        return carrier ? Object.keys(carrier) : [];\n    },\n};\n//# sourceMappingURL=propagator.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.METRIC_MESSAGING_PROCESS_DURATION = exports.METRIC_MESSAGING_CLIENT_SENT_MESSAGES = exports.METRIC_MESSAGING_CLIENT_OPERATION_DURATION = exports.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES = exports.MESSAGING_SYSTEM_VALUE_KAFKA = exports.MESSAGING_OPERATION_TYPE_VALUE_SEND = exports.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE = exports.MESSAGING_OPERATION_TYPE_VALUE_PROCESS = exports.ATTR_MESSAGING_SYSTEM = exports.ATTR_MESSAGING_OPERATION_TYPE = exports.ATTR_MESSAGING_OPERATION_NAME = exports.ATTR_MESSAGING_KAFKA_OFFSET = exports.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE = exports.ATTR_MESSAGING_KAFKA_MESSAGE_KEY = exports.ATTR_MESSAGING_DESTINATION_PARTITION_ID = exports.ATTR_MESSAGING_DESTINATION_NAME = exports.ATTR_MESSAGING_BATCH_MESSAGE_COUNT = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * The number of messages sent, received, or processed in the scope of the batching operation.\n *\n * @example 0\n * @example 1\n * @example 2\n *\n * @note Instrumentations **SHOULD NOT** set `messaging.batch.message_count` on spans that operate with a single message. When a messaging client library supports both batch and single-message API for the same operation, instrumentations **SHOULD** use `messaging.batch.message_count` for batching APIs and **SHOULD NOT** use it for single-message APIs.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_BATCH_MESSAGE_COUNT = 'messaging.batch.message_count';\n/**\n * The message destination name\n *\n * @example MyQueue\n * @example MyTopic\n *\n * @note Destination name **SHOULD** uniquely identify a specific queue, topic or other entity within the broker. If\n * the broker doesn't have such notion, the destination name **SHOULD** uniquely identify the broker.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_DESTINATION_NAME = 'messaging.destination.name';\n/**\n * The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`.\n *\n * @example \"1\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_DESTINATION_PARTITION_ID = 'messaging.destination.partition.id';\n/**\n * Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from `messaging.message.id` in that they're not unique. If the key is `null`, the attribute **MUST NOT** be set.\n *\n * @example \"myKey\"\n *\n * @note If the key type is not string, it's string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don't include its value.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_KAFKA_MESSAGE_KEY = 'messaging.kafka.message.key';\n/**\n * A boolean that is true if the message is a tombstone.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE = 'messaging.kafka.message.tombstone';\n/**\n * The offset of a record in the corresponding Kafka partition.\n *\n * @example 42\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_KAFKA_OFFSET = 'messaging.kafka.offset';\n/**\n * The system-specific name of the messaging operation.\n *\n * @example ack\n * @example nack\n * @example send\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_OPERATION_NAME = 'messaging.operation.name';\n/**\n * A string identifying the type of the messaging operation.\n *\n * @note If a custom value is used, it **MUST** be of low cardinality.\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_OPERATION_TYPE = 'messaging.operation.type';\n/**\n * The messaging system as identified by the client instrumentation.\n *\n * @note The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_SYSTEM = 'messaging.system';\n/**\n * Enum value \"process\" for attribute {@link ATTR_MESSAGING_OPERATION_TYPE}.\n */\nexports.MESSAGING_OPERATION_TYPE_VALUE_PROCESS = 'process';\n/**\n * Enum value \"receive\" for attribute {@link ATTR_MESSAGING_OPERATION_TYPE}.\n */\nexports.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE = 'receive';\n/**\n * Enum value \"send\" for attribute {@link ATTR_MESSAGING_OPERATION_TYPE}.\n */\nexports.MESSAGING_OPERATION_TYPE_VALUE_SEND = 'send';\n/**\n * Enum value \"kafka\" for attribute {@link ATTR_MESSAGING_SYSTEM}.\n */\nexports.MESSAGING_SYSTEM_VALUE_KAFKA = 'kafka';\n/**\n * Number of messages that were delivered to the application.\n *\n * @note Records the number of messages pulled from the broker or number of messages dispatched to the application in push-based scenarios.\n * The metric **SHOULD** be reported once per message delivery. For example, if receiving and processing operations are both instrumented for a single message delivery, this counter is incremented when the message is received and not reported when it is processed.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES = 'messaging.client.consumed.messages';\n/**\n * Duration of messaging operation initiated by a producer or consumer client.\n *\n * @note This metric **SHOULD NOT** be used to report processing duration - processing duration is reported in `messaging.process.duration` metric.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.METRIC_MESSAGING_CLIENT_OPERATION_DURATION = 'messaging.client.operation.duration';\n/**\n * Number of messages producer attempted to send to the broker.\n *\n * @note This metric **MUST NOT** count messages that were created but haven't yet been sent.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.METRIC_MESSAGING_CLIENT_SENT_MESSAGES = 'messaging.client.sent.messages';\n/**\n * Duration of processing operation.\n *\n * @note This metric **MUST** be reported for operations with `messaging.operation.type` that matches `process`.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.METRIC_MESSAGING_PROCESS_DURATION = 'messaging.process.duration';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.22.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-kafkajs';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors, Aspecto\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KafkaJsInstrumentation = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst internal_types_1 = require(\"./internal-types\");\nconst propagator_1 = require(\"./propagator\");\nconst semconv_1 = require(\"./semconv\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nfunction prepareCounter(meter, value, attributes) {\n    return (errorType) => {\n        meter.add(value, {\n            ...attributes,\n            ...(errorType ? { [semantic_conventions_1.ATTR_ERROR_TYPE]: errorType } : {}),\n        });\n    };\n}\nfunction prepareDurationHistogram(meter, value, attributes) {\n    return (errorType) => {\n        meter.record((Date.now() - value) / 1000, {\n            ...attributes,\n            ...(errorType ? { [semantic_conventions_1.ATTR_ERROR_TYPE]: errorType } : {}),\n        });\n    };\n}\nconst HISTOGRAM_BUCKET_BOUNDARIES = [\n    0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10,\n];\nclass KafkaJsInstrumentation extends instrumentation_1.InstrumentationBase {\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n    }\n    _updateMetricInstruments() {\n        this._clientDuration = this.meter.createHistogram(semconv_1.METRIC_MESSAGING_CLIENT_OPERATION_DURATION, { advice: { explicitBucketBoundaries: HISTOGRAM_BUCKET_BOUNDARIES } });\n        this._sentMessages = this.meter.createCounter(semconv_1.METRIC_MESSAGING_CLIENT_SENT_MESSAGES);\n        this._consumedMessages = this.meter.createCounter(semconv_1.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES);\n        this._processDuration = this.meter.createHistogram(semconv_1.METRIC_MESSAGING_PROCESS_DURATION, { advice: { explicitBucketBoundaries: HISTOGRAM_BUCKET_BOUNDARIES } });\n    }\n    init() {\n        const unpatch = (moduleExports) => {\n            if ((0, instrumentation_1.isWrapped)(moduleExports?.Kafka?.prototype.producer)) {\n                this._unwrap(moduleExports.Kafka.prototype, 'producer');\n            }\n            if ((0, instrumentation_1.isWrapped)(moduleExports?.Kafka?.prototype.consumer)) {\n                this._unwrap(moduleExports.Kafka.prototype, 'consumer');\n            }\n        };\n        const module = new instrumentation_1.InstrumentationNodeModuleDefinition('kafkajs', ['>=0.3.0 <3'], (moduleExports) => {\n            unpatch(moduleExports);\n            this._wrap(moduleExports?.Kafka?.prototype, 'producer', this._getProducerPatch());\n            this._wrap(moduleExports?.Kafka?.prototype, 'consumer', this._getConsumerPatch());\n            return moduleExports;\n        }, unpatch);\n        return module;\n    }\n    _getConsumerPatch() {\n        const instrumentation = this;\n        return (original) => {\n            return function consumer(...args) {\n                const newConsumer = original.apply(this, args);\n                if ((0, instrumentation_1.isWrapped)(newConsumer.run)) {\n                    instrumentation._unwrap(newConsumer, 'run');\n                }\n                instrumentation._wrap(newConsumer, 'run', instrumentation._getConsumerRunPatch());\n                instrumentation._setKafkaEventListeners(newConsumer);\n                return newConsumer;\n            };\n        };\n    }\n    _setKafkaEventListeners(kafkaObj) {\n        if (kafkaObj[internal_types_1.EVENT_LISTENERS_SET])\n            return;\n        // The REQUEST Consumer event was added in kafkajs@1.5.0.\n        if (kafkaObj.events?.REQUEST) {\n            kafkaObj.on(kafkaObj.events.REQUEST, this._recordClientDurationMetric.bind(this));\n        }\n        kafkaObj[internal_types_1.EVENT_LISTENERS_SET] = true;\n    }\n    _recordClientDurationMetric(event) {\n        const [address, port] = event.payload.broker.split(':');\n        this._clientDuration.record(event.payload.duration / 1000, {\n            [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n            [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: `${event.payload.apiName}`,\n            [semantic_conventions_1.ATTR_SERVER_ADDRESS]: address,\n            [semantic_conventions_1.ATTR_SERVER_PORT]: Number.parseInt(port, 10),\n        });\n    }\n    _getProducerPatch() {\n        const instrumentation = this;\n        return (original) => {\n            return function consumer(...args) {\n                const newProducer = original.apply(this, args);\n                if ((0, instrumentation_1.isWrapped)(newProducer.sendBatch)) {\n                    instrumentation._unwrap(newProducer, 'sendBatch');\n                }\n                instrumentation._wrap(newProducer, 'sendBatch', instrumentation._getSendBatchPatch());\n                if ((0, instrumentation_1.isWrapped)(newProducer.send)) {\n                    instrumentation._unwrap(newProducer, 'send');\n                }\n                instrumentation._wrap(newProducer, 'send', instrumentation._getSendPatch());\n                if ((0, instrumentation_1.isWrapped)(newProducer.transaction)) {\n                    instrumentation._unwrap(newProducer, 'transaction');\n                }\n                instrumentation._wrap(newProducer, 'transaction', instrumentation._getProducerTransactionPatch());\n                instrumentation._setKafkaEventListeners(newProducer);\n                return newProducer;\n            };\n        };\n    }\n    _getConsumerRunPatch() {\n        const instrumentation = this;\n        return (original) => {\n            return function run(...args) {\n                const config = args[0];\n                if (config?.eachMessage) {\n                    if ((0, instrumentation_1.isWrapped)(config.eachMessage)) {\n                        instrumentation._unwrap(config, 'eachMessage');\n                    }\n                    instrumentation._wrap(config, 'eachMessage', instrumentation._getConsumerEachMessagePatch());\n                }\n                if (config?.eachBatch) {\n                    if ((0, instrumentation_1.isWrapped)(config.eachBatch)) {\n                        instrumentation._unwrap(config, 'eachBatch');\n                    }\n                    instrumentation._wrap(config, 'eachBatch', instrumentation._getConsumerEachBatchPatch());\n                }\n                return original.call(this, config);\n            };\n        };\n    }\n    _getConsumerEachMessagePatch() {\n        const instrumentation = this;\n        return (original) => {\n            return function eachMessage(...args) {\n                const payload = args[0];\n                const propagatedContext = api_1.propagation.extract(api_1.ROOT_CONTEXT, payload.message.headers, propagator_1.bufferTextMapGetter);\n                const span = instrumentation._startConsumerSpan({\n                    topic: payload.topic,\n                    message: payload.message,\n                    operationType: semconv_1.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,\n                    ctx: propagatedContext,\n                    attributes: {\n                        [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.partition),\n                    },\n                });\n                const pendingMetrics = [\n                    prepareDurationHistogram(instrumentation._processDuration, Date.now(), {\n                        [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                        [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: 'process',\n                        [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: payload.topic,\n                        [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.partition),\n                    }),\n                    prepareCounter(instrumentation._consumedMessages, 1, {\n                        [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                        [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: 'process',\n                        [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: payload.topic,\n                        [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.partition),\n                    }),\n                ];\n                const eachMessagePromise = api_1.context.with(api_1.trace.setSpan(propagatedContext, span), () => {\n                    return original.apply(this, args);\n                });\n                return instrumentation._endSpansOnPromise([span], pendingMetrics, eachMessagePromise);\n            };\n        };\n    }\n    _getConsumerEachBatchPatch() {\n        return (original) => {\n            const instrumentation = this;\n            return function eachBatch(...args) {\n                const payload = args[0];\n                // https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/messaging.md#topic-with-multiple-consumers\n                const receivingSpan = instrumentation._startConsumerSpan({\n                    topic: payload.batch.topic,\n                    message: undefined,\n                    operationType: semconv_1.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE,\n                    ctx: api_1.ROOT_CONTEXT,\n                    attributes: {\n                        [semconv_1.ATTR_MESSAGING_BATCH_MESSAGE_COUNT]: payload.batch.messages.length,\n                        [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.batch.partition),\n                    },\n                });\n                return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), receivingSpan), () => {\n                    const startTime = Date.now();\n                    const spans = [];\n                    const pendingMetrics = [\n                        prepareCounter(instrumentation._consumedMessages, payload.batch.messages.length, {\n                            [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                            [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: 'process',\n                            [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: payload.batch.topic,\n                            [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.batch.partition),\n                        }),\n                    ];\n                    payload.batch.messages.forEach(message => {\n                        const propagatedContext = api_1.propagation.extract(api_1.ROOT_CONTEXT, message.headers, propagator_1.bufferTextMapGetter);\n                        const spanContext = api_1.trace\n                            .getSpan(propagatedContext)\n                            ?.spanContext();\n                        let origSpanLink;\n                        if (spanContext) {\n                            origSpanLink = {\n                                context: spanContext,\n                            };\n                        }\n                        spans.push(instrumentation._startConsumerSpan({\n                            topic: payload.batch.topic,\n                            message,\n                            operationType: semconv_1.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,\n                            link: origSpanLink,\n                            attributes: {\n                                [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.batch.partition),\n                            },\n                        }));\n                        pendingMetrics.push(prepareDurationHistogram(instrumentation._processDuration, startTime, {\n                            [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                            [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: 'process',\n                            [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: payload.batch.topic,\n                            [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.batch.partition),\n                        }));\n                    });\n                    const batchMessagePromise = original.apply(this, args);\n                    spans.unshift(receivingSpan);\n                    return instrumentation._endSpansOnPromise(spans, pendingMetrics, batchMessagePromise);\n                });\n            };\n        };\n    }\n    _getProducerTransactionPatch() {\n        const instrumentation = this;\n        return (original) => {\n            return function transaction(...args) {\n                const transactionSpan = instrumentation.tracer.startSpan('transaction');\n                const transactionPromise = original.apply(this, args);\n                transactionPromise\n                    .then((transaction) => {\n                    const originalSend = transaction.send;\n                    transaction.send = function send(...args) {\n                        return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), transactionSpan), () => {\n                            const patched = instrumentation._getSendPatch()(originalSend);\n                            return patched.apply(this, args).catch(err => {\n                                transactionSpan.setStatus({\n                                    code: api_1.SpanStatusCode.ERROR,\n                                    message: err?.message,\n                                });\n                                transactionSpan.recordException(err);\n                                throw err;\n                            });\n                        });\n                    };\n                    const originalSendBatch = transaction.sendBatch;\n                    transaction.sendBatch = function sendBatch(...args) {\n                        return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), transactionSpan), () => {\n                            const patched = instrumentation._getSendBatchPatch()(originalSendBatch);\n                            return patched.apply(this, args).catch(err => {\n                                transactionSpan.setStatus({\n                                    code: api_1.SpanStatusCode.ERROR,\n                                    message: err?.message,\n                                });\n                                transactionSpan.recordException(err);\n                                throw err;\n                            });\n                        });\n                    };\n                    const originalCommit = transaction.commit;\n                    transaction.commit = function commit(...args) {\n                        const originCommitPromise = originalCommit\n                            .apply(this, args)\n                            .then(() => {\n                            transactionSpan.setStatus({ code: api_1.SpanStatusCode.OK });\n                        });\n                        return instrumentation._endSpansOnPromise([transactionSpan], [], originCommitPromise);\n                    };\n                    const originalAbort = transaction.abort;\n                    transaction.abort = function abort(...args) {\n                        const originAbortPromise = originalAbort.apply(this, args);\n                        return instrumentation._endSpansOnPromise([transactionSpan], [], originAbortPromise);\n                    };\n                })\n                    .catch(err => {\n                    transactionSpan.setStatus({\n                        code: api_1.SpanStatusCode.ERROR,\n                        message: err?.message,\n                    });\n                    transactionSpan.recordException(err);\n                    transactionSpan.end();\n                });\n                return transactionPromise;\n            };\n        };\n    }\n    _getSendBatchPatch() {\n        const instrumentation = this;\n        return (original) => {\n            return function sendBatch(...args) {\n                const batch = args[0];\n                const messages = batch.topicMessages || [];\n                const spans = [];\n                const pendingMetrics = [];\n                messages.forEach(topicMessage => {\n                    topicMessage.messages.forEach(message => {\n                        spans.push(instrumentation._startProducerSpan(topicMessage.topic, message));\n                        pendingMetrics.push(prepareCounter(instrumentation._sentMessages, 1, {\n                            [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                            [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: 'send',\n                            [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: topicMessage.topic,\n                            ...(message.partition !== undefined\n                                ? {\n                                    [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(message.partition),\n                                }\n                                : {}),\n                        }));\n                    });\n                });\n                const origSendResult = original.apply(this, args);\n                return instrumentation._endSpansOnPromise(spans, pendingMetrics, origSendResult);\n            };\n        };\n    }\n    _getSendPatch() {\n        const instrumentation = this;\n        return (original) => {\n            return function send(...args) {\n                const record = args[0];\n                const spans = record.messages.map(message => {\n                    return instrumentation._startProducerSpan(record.topic, message);\n                });\n                const pendingMetrics = record.messages.map(m => prepareCounter(instrumentation._sentMessages, 1, {\n                    [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                    [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: 'send',\n                    [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: record.topic,\n                    ...(m.partition !== undefined\n                        ? {\n                            [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(m.partition),\n                        }\n                        : {}),\n                }));\n                const origSendResult = original.apply(this, args);\n                return instrumentation._endSpansOnPromise(spans, pendingMetrics, origSendResult);\n            };\n        };\n    }\n    _endSpansOnPromise(spans, pendingMetrics, sendPromise) {\n        return Promise.resolve(sendPromise)\n            .then(result => {\n            pendingMetrics.forEach(m => m());\n            return result;\n        })\n            .catch(reason => {\n            let errorMessage;\n            let errorType = semantic_conventions_1.ERROR_TYPE_VALUE_OTHER;\n            if (typeof reason === 'string' || reason === undefined) {\n                errorMessage = reason;\n            }\n            else if (typeof reason === 'object' &&\n                Object.prototype.hasOwnProperty.call(reason, 'message')) {\n                errorMessage = reason.message;\n                errorType = reason.constructor.name;\n            }\n            pendingMetrics.forEach(m => m(errorType));\n            spans.forEach(span => {\n                span.setAttribute(semantic_conventions_1.ATTR_ERROR_TYPE, errorType);\n                span.setStatus({\n                    code: api_1.SpanStatusCode.ERROR,\n                    message: errorMessage,\n                });\n            });\n            throw reason;\n        })\n            .finally(() => {\n            spans.forEach(span => span.end());\n        });\n    }\n    _startConsumerSpan({ topic, message, operationType, ctx, link, attributes, }) {\n        const operationName = operationType === semconv_1.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE\n            ? 'poll' // for batch processing spans\n            : operationType; // for individual message processing spans\n        const span = this.tracer.startSpan(`${operationName} ${topic}`, {\n            kind: operationType === semconv_1.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE\n                ? api_1.SpanKind.CLIENT\n                : api_1.SpanKind.CONSUMER,\n            attributes: {\n                ...attributes,\n                [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: topic,\n                [semconv_1.ATTR_MESSAGING_OPERATION_TYPE]: operationType,\n                [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: operationName,\n                [semconv_1.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]: message?.key\n                    ? String(message.key)\n                    : undefined,\n                [semconv_1.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]: message?.key && message.value === null ? true : undefined,\n                [semconv_1.ATTR_MESSAGING_KAFKA_OFFSET]: message?.offset,\n            },\n            links: link ? [link] : [],\n        }, ctx);\n        const { consumerHook } = this.getConfig();\n        if (consumerHook && message) {\n            (0, instrumentation_1.safeExecuteInTheMiddle)(() => consumerHook(span, { topic, message }), e => {\n                if (e)\n                    this._diag.error('consumerHook error', e);\n            }, true);\n        }\n        return span;\n    }\n    _startProducerSpan(topic, message) {\n        const span = this.tracer.startSpan(`send ${topic}`, {\n            kind: api_1.SpanKind.PRODUCER,\n            attributes: {\n                [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: topic,\n                [semconv_1.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]: message.key\n                    ? String(message.key)\n                    : undefined,\n                [semconv_1.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]: message.key && message.value === null ? true : undefined,\n                [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: message.partition !== undefined\n                    ? String(message.partition)\n                    : undefined,\n                [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: 'send',\n                [semconv_1.ATTR_MESSAGING_OPERATION_TYPE]: semconv_1.MESSAGING_OPERATION_TYPE_VALUE_SEND,\n            },\n        });\n        message.headers = message.headers ?? {};\n        api_1.propagation.inject(api_1.trace.setSpan(api_1.context.active(), span), message.headers);\n        const { producerHook } = this.getConfig();\n        if (producerHook) {\n            (0, instrumentation_1.safeExecuteInTheMiddle)(() => producerHook(span, { topic, message }), e => {\n                if (e)\n                    this._diag.error('producerHook error', e);\n            }, true);\n        }\n        return span;\n    }\n}\nexports.KafkaJsInstrumentation = KafkaJsInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors, Aspecto\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KafkaJsInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"KafkaJsInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.KafkaJsInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.57.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-lru-memoizer';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LruMemoizerInstrumentation = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nclass LruMemoizerInstrumentation extends instrumentation_1.InstrumentationBase {\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n    }\n    init() {\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition('lru-memoizer', ['>=1.3 <3'], moduleExports => {\n                // moduleExports is a function which receives an options object,\n                // and returns a \"memoizer\" function upon invocation.\n                // We want to patch this \"memoizer's\" internal function\n                const asyncMemoizer = function () {\n                    // This following function is invoked every time the user wants to get a (possible) memoized value\n                    // We replace it with another function in which we bind the current context to the last argument (callback)\n                    const origMemoizer = moduleExports.apply(this, arguments);\n                    return function () {\n                        const modifiedArguments = [...arguments];\n                        // last argument is the callback\n                        const origCallback = modifiedArguments.pop();\n                        const callbackWithContext = typeof origCallback === 'function'\n                            ? api_1.context.bind(api_1.context.active(), origCallback)\n                            : origCallback;\n                        modifiedArguments.push(callbackWithContext);\n                        return origMemoizer.apply(this, modifiedArguments);\n                    };\n                };\n                // sync function preserves context, but we still need to export it\n                // as the lru-memoizer package does\n                asyncMemoizer.sync = moduleExports.sync;\n                return asyncMemoizer;\n            }, undefined // no need to disable as this instrumentation does not create any spans\n            ),\n        ];\n    }\n}\nexports.LruMemoizerInstrumentation = LruMemoizerInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LruMemoizerInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"LruMemoizerInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.LruMemoizerInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.METRIC_DB_CLIENT_CONNECTIONS_USAGE = exports.DB_SYSTEM_VALUE_MONGODB = exports.DB_SYSTEM_NAME_VALUE_MONGODB = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_OPERATION = exports.ATTR_DB_NAME = exports.ATTR_DB_MONGODB_COLLECTION = exports.ATTR_DB_CONNECTION_STRING = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexports.ATTR_DB_CONNECTION_STRING = 'db.connection_string';\n/**\n * Deprecated, use `db.collection.name` instead.\n *\n * @example \"mytable\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.collection.name`.\n */\nexports.ATTR_DB_MONGODB_COLLECTION = 'db.mongodb.collection';\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexports.ATTR_DB_NAME = 'db.name';\n/**\n * Deprecated, use `db.operation.name` instead.\n *\n * @example findAndModify\n * @example HMSET\n * @example SELECT\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.operation.name`.\n */\nexports.ATTR_DB_OPERATION = 'db.operation';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"mongodb\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [MongoDB](https://www.mongodb.com/)\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_NAME_VALUE_MONGODB = 'mongodb';\n/**\n * Enum value \"mongodb\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * MongoDB\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_VALUE_MONGODB = 'mongodb';\n/**\n * Deprecated, use `db.client.connection.count` instead.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.client.connection.count`.\n */\nexports.METRIC_DB_CLIENT_CONNECTIONS_USAGE = 'db.client.connections.usage';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MongodbCommandType = void 0;\nvar MongodbCommandType;\n(function (MongodbCommandType) {\n    MongodbCommandType[\"CREATE_INDEXES\"] = \"createIndexes\";\n    MongodbCommandType[\"FIND_AND_MODIFY\"] = \"findAndModify\";\n    MongodbCommandType[\"IS_MASTER\"] = \"isMaster\";\n    MongodbCommandType[\"COUNT\"] = \"count\";\n    MongodbCommandType[\"AGGREGATE\"] = \"aggregate\";\n    MongodbCommandType[\"UNKNOWN\"] = \"unknown\";\n})(MongodbCommandType = exports.MongodbCommandType || (exports.MongodbCommandType = {}));\n//# sourceMappingURL=internal-types.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.66.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-mongodb';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MongoDBInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst internal_types_1 = require(\"./internal-types\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst DEFAULT_CONFIG = {\n    requireParentSpan: true,\n};\n/** mongodb instrumentation plugin for OpenTelemetry */\nclass MongoDBInstrumentation extends instrumentation_1.InstrumentationBase {\n    _netSemconvStability;\n    _dbSemconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, { ...DEFAULT_CONFIG, ...config });\n        this._setSemconvStabilityFromEnv();\n    }\n    // Used for testing.\n    _setSemconvStabilityFromEnv() {\n        this._netSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n        this._dbSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    setConfig(config = {}) {\n        super.setConfig({ ...DEFAULT_CONFIG, ...config });\n    }\n    _updateMetricInstruments() {\n        this._connectionsUsage = this.meter.createUpDownCounter(semconv_1.METRIC_DB_CLIENT_CONNECTIONS_USAGE, {\n            description: 'The number of connections that are currently in state described by the state attribute.',\n            unit: '{connection}',\n        });\n    }\n    /**\n     * Convenience function for updating the `db.client.connections.usage` metric.\n     * The name \"count\" comes from the eventual replacement for this metric per\n     * https://opentelemetry.io/docs/specs/semconv/non-normative/db-migration/#database-client-connection-count\n     */\n    _connCountAdd(n, poolName, state) {\n        this._connectionsUsage?.add(n, { 'pool.name': poolName, state });\n    }\n    init() {\n        const { v3PatchConnection: v3PatchConnection, v3UnpatchConnection: v3UnpatchConnection, } = this._getV3ConnectionPatches();\n        const { v4PatchConnect, v4UnpatchConnect } = this._getV4ConnectPatches();\n        const { v4PatchConnectionCallback, v4PatchConnectionPromise, v4UnpatchConnection, } = this._getV4ConnectionPatches();\n        const { v4PatchConnectionPool, v4UnpatchConnectionPool } = this._getV4ConnectionPoolPatches();\n        const { v4PatchSessions, v4UnpatchSessions } = this._getV4SessionsPatches();\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition('mongodb', ['>=3.3.0 <4'], undefined, undefined, [\n                new instrumentation_1.InstrumentationNodeModuleFile('mongodb/lib/core/wireprotocol/index.js', ['>=3.3.0 <4'], v3PatchConnection, v3UnpatchConnection),\n            ]),\n            new instrumentation_1.InstrumentationNodeModuleDefinition('mongodb', ['>=4.0.0 <8'], undefined, undefined, [\n                new instrumentation_1.InstrumentationNodeModuleFile('mongodb/lib/cmap/connection.js', ['>=4.0.0 <6.4'], v4PatchConnectionCallback, v4UnpatchConnection),\n                new instrumentation_1.InstrumentationNodeModuleFile('mongodb/lib/cmap/connection.js', ['>=6.4.0 <8'], v4PatchConnectionPromise, v4UnpatchConnection),\n                new instrumentation_1.InstrumentationNodeModuleFile('mongodb/lib/cmap/connection_pool.js', ['>=4.0.0 <6.4'], v4PatchConnectionPool, v4UnpatchConnectionPool),\n                new instrumentation_1.InstrumentationNodeModuleFile('mongodb/lib/cmap/connect.js', ['>=4.0.0 <8'], v4PatchConnect, v4UnpatchConnect),\n                new instrumentation_1.InstrumentationNodeModuleFile('mongodb/lib/sessions.js', ['>=4.0.0 <8'], v4PatchSessions, v4UnpatchSessions),\n            ]),\n        ];\n    }\n    _getV3ConnectionPatches() {\n        return {\n            v3PatchConnection: (moduleExports) => {\n                // patch insert operation\n                if ((0, instrumentation_1.isWrapped)(moduleExports.insert)) {\n                    this._unwrap(moduleExports, 'insert');\n                }\n                this._wrap(moduleExports, 'insert', this._getV3PatchOperation('insert'));\n                // patch remove operation\n                if ((0, instrumentation_1.isWrapped)(moduleExports.remove)) {\n                    this._unwrap(moduleExports, 'remove');\n                }\n                this._wrap(moduleExports, 'remove', this._getV3PatchOperation('remove'));\n                // patch update operation\n                if ((0, instrumentation_1.isWrapped)(moduleExports.update)) {\n                    this._unwrap(moduleExports, 'update');\n                }\n                this._wrap(moduleExports, 'update', this._getV3PatchOperation('update'));\n                // patch other command\n                if ((0, instrumentation_1.isWrapped)(moduleExports.command)) {\n                    this._unwrap(moduleExports, 'command');\n                }\n                this._wrap(moduleExports, 'command', this._getV3PatchCommand());\n                // patch query\n                if ((0, instrumentation_1.isWrapped)(moduleExports.query)) {\n                    this._unwrap(moduleExports, 'query');\n                }\n                this._wrap(moduleExports, 'query', this._getV3PatchFind());\n                // patch get more operation on cursor\n                if ((0, instrumentation_1.isWrapped)(moduleExports.getMore)) {\n                    this._unwrap(moduleExports, 'getMore');\n                }\n                this._wrap(moduleExports, 'getMore', this._getV3PatchCursor());\n                return moduleExports;\n            },\n            v3UnpatchConnection: (moduleExports) => {\n                if (moduleExports === undefined)\n                    return;\n                this._unwrap(moduleExports, 'insert');\n                this._unwrap(moduleExports, 'remove');\n                this._unwrap(moduleExports, 'update');\n                this._unwrap(moduleExports, 'command');\n                this._unwrap(moduleExports, 'query');\n                this._unwrap(moduleExports, 'getMore');\n            },\n        };\n    }\n    _getV4SessionsPatches() {\n        return {\n            v4PatchSessions: (moduleExports) => {\n                if ((0, instrumentation_1.isWrapped)(moduleExports.acquire)) {\n                    this._unwrap(moduleExports, 'acquire');\n                }\n                this._wrap(moduleExports.ServerSessionPool.prototype, 'acquire', this._getV4AcquireCommand());\n                if ((0, instrumentation_1.isWrapped)(moduleExports.release)) {\n                    this._unwrap(moduleExports, 'release');\n                }\n                this._wrap(moduleExports.ServerSessionPool.prototype, 'release', this._getV4ReleaseCommand());\n                return moduleExports;\n            },\n            v4UnpatchSessions: (moduleExports) => {\n                if (moduleExports === undefined)\n                    return;\n                if ((0, instrumentation_1.isWrapped)(moduleExports.acquire)) {\n                    this._unwrap(moduleExports, 'acquire');\n                }\n                if ((0, instrumentation_1.isWrapped)(moduleExports.release)) {\n                    this._unwrap(moduleExports, 'release');\n                }\n            },\n        };\n    }\n    _getV4AcquireCommand() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchAcquire() {\n                const nSessionsBeforeAcquire = this.sessions.length;\n                const session = original.call(this);\n                const nSessionsAfterAcquire = this.sessions.length;\n                if (nSessionsBeforeAcquire === nSessionsAfterAcquire) {\n                    //no session in the pool. a new session was created and used\n                    instrumentation._connCountAdd(1, instrumentation._poolName, 'used');\n                }\n                else if (nSessionsBeforeAcquire - 1 === nSessionsAfterAcquire) {\n                    //a session was already in the pool. remove it from the pool and use it.\n                    instrumentation._connCountAdd(-1, instrumentation._poolName, 'idle');\n                    instrumentation._connCountAdd(1, instrumentation._poolName, 'used');\n                }\n                return session;\n            };\n        };\n    }\n    _getV4ReleaseCommand() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchRelease(session) {\n                const cmdPromise = original.call(this, session);\n                instrumentation._connCountAdd(-1, instrumentation._poolName, 'used');\n                instrumentation._connCountAdd(1, instrumentation._poolName, 'idle');\n                return cmdPromise;\n            };\n        };\n    }\n    _getV4ConnectionPoolPatches() {\n        return {\n            v4PatchConnectionPool: (moduleExports) => {\n                const poolPrototype = moduleExports.ConnectionPool.prototype;\n                if ((0, instrumentation_1.isWrapped)(poolPrototype.checkOut)) {\n                    this._unwrap(poolPrototype, 'checkOut');\n                }\n                this._wrap(poolPrototype, 'checkOut', this._getV4ConnectionPoolCheckOut());\n                return moduleExports;\n            },\n            v4UnpatchConnectionPool: (moduleExports) => {\n                if (moduleExports === undefined)\n                    return;\n                this._unwrap(moduleExports.ConnectionPool.prototype, 'checkOut');\n            },\n        };\n    }\n    _getV4ConnectPatches() {\n        return {\n            v4PatchConnect: (moduleExports) => {\n                if ((0, instrumentation_1.isWrapped)(moduleExports.connect)) {\n                    this._unwrap(moduleExports, 'connect');\n                }\n                this._wrap(moduleExports, 'connect', this._getV4ConnectCommand());\n                return moduleExports;\n            },\n            v4UnpatchConnect: (moduleExports) => {\n                if (moduleExports === undefined)\n                    return;\n                this._unwrap(moduleExports, 'connect');\n            },\n        };\n    }\n    // This patch will become unnecessary once\n    // https://jira.mongodb.org/browse/NODE-5639 is done.\n    _getV4ConnectionPoolCheckOut() {\n        return (original) => {\n            return function patchedCheckout(callback) {\n                const patchedCallback = api_1.context.bind(api_1.context.active(), callback);\n                return original.call(this, patchedCallback);\n            };\n        };\n    }\n    _getV4ConnectCommand() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchedConnect(options, callback) {\n                // from v6.4 `connect` method only accepts an options param and returns a promise\n                // with the connection\n                if (original.length === 1) {\n                    const result = original.call(this, options);\n                    if (result && typeof result.then === 'function') {\n                        result.then(() => instrumentation.setPoolName(options), \n                        // this handler is set to pass the lint rules\n                        () => undefined);\n                    }\n                    return result;\n                }\n                // Earlier versions expects a callback param and return void\n                const patchedCallback = function (err, conn) {\n                    if (err || !conn) {\n                        callback(err, conn);\n                        return;\n                    }\n                    instrumentation.setPoolName(options);\n                    callback(err, conn);\n                };\n                return original.call(this, options, patchedCallback);\n            };\n        };\n    }\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    _getV4ConnectionPatches() {\n        return {\n            v4PatchConnectionCallback: (moduleExports) => {\n                // patch insert operation\n                if ((0, instrumentation_1.isWrapped)(moduleExports.Connection.prototype.command)) {\n                    this._unwrap(moduleExports.Connection.prototype, 'command');\n                }\n                this._wrap(moduleExports.Connection.prototype, 'command', this._getV4PatchCommandCallback());\n                return moduleExports;\n            },\n            v4PatchConnectionPromise: (moduleExports) => {\n                // patch insert operation\n                if ((0, instrumentation_1.isWrapped)(moduleExports.Connection.prototype.command)) {\n                    this._unwrap(moduleExports.Connection.prototype, 'command');\n                }\n                this._wrap(moduleExports.Connection.prototype, 'command', this._getV4PatchCommandPromise());\n                return moduleExports;\n            },\n            v4UnpatchConnection: (moduleExports) => {\n                if (moduleExports === undefined)\n                    return;\n                this._unwrap(moduleExports.Connection.prototype, 'command');\n            },\n        };\n    }\n    /** Creates spans for common operations */\n    _getV3PatchOperation(operationName) {\n        const instrumentation = this;\n        return (original) => {\n            return function patchedServerCommand(server, ns, ops, options, callback) {\n                const currentSpan = api_1.trace.getSpan(api_1.context.active());\n                const skipInstrumentation = instrumentation._checkSkipInstrumentation(currentSpan);\n                const resultHandler = typeof options === 'function' ? options : callback;\n                if (skipInstrumentation ||\n                    typeof resultHandler !== 'function' ||\n                    typeof ops !== 'object') {\n                    if (typeof options === 'function') {\n                        return original.call(this, server, ns, ops, options);\n                    }\n                    else {\n                        return original.call(this, server, ns, ops, options, callback);\n                    }\n                }\n                const attributes = instrumentation._getV3SpanAttributes(ns, server, \n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                ops[0], operationName);\n                const spanName = instrumentation._spanNameFromAttrs(attributes);\n                const span = instrumentation.tracer.startSpan(spanName, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes,\n                });\n                const patchedCallback = instrumentation._patchEnd(span, resultHandler);\n                // handle when options is the callback to send the correct number of args\n                if (typeof options === 'function') {\n                    return original.call(this, server, ns, ops, patchedCallback);\n                }\n                else {\n                    return original.call(this, server, ns, ops, options, patchedCallback);\n                }\n            };\n        };\n    }\n    /** Creates spans for command operation */\n    _getV3PatchCommand() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchedServerCommand(server, ns, cmd, options, callback) {\n                const currentSpan = api_1.trace.getSpan(api_1.context.active());\n                const skipInstrumentation = instrumentation._checkSkipInstrumentation(currentSpan);\n                const resultHandler = typeof options === 'function' ? options : callback;\n                if (skipInstrumentation ||\n                    typeof resultHandler !== 'function' ||\n                    typeof cmd !== 'object') {\n                    if (typeof options === 'function') {\n                        return original.call(this, server, ns, cmd, options);\n                    }\n                    else {\n                        return original.call(this, server, ns, cmd, options, callback);\n                    }\n                }\n                const commandType = MongoDBInstrumentation._getCommandType(cmd);\n                const operationName = commandType === internal_types_1.MongodbCommandType.UNKNOWN ? undefined : commandType;\n                const attributes = instrumentation._getV3SpanAttributes(ns, server, cmd, operationName);\n                const spanName = instrumentation._spanNameFromAttrs(attributes);\n                const span = instrumentation.tracer.startSpan(spanName, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes,\n                });\n                const patchedCallback = instrumentation._patchEnd(span, resultHandler);\n                // handle when options is the callback to send the correct number of args\n                if (typeof options === 'function') {\n                    return original.call(this, server, ns, cmd, patchedCallback);\n                }\n                else {\n                    return original.call(this, server, ns, cmd, options, patchedCallback);\n                }\n            };\n        };\n    }\n    /** Creates spans for command operation */\n    _getV4PatchCommandCallback() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchedV4ServerCommand(ns, cmd, options, callback) {\n                const currentSpan = api_1.trace.getSpan(api_1.context.active());\n                const skipInstrumentation = instrumentation._checkSkipInstrumentation(currentSpan);\n                const resultHandler = callback;\n                const commandType = Object.keys(cmd)[0];\n                if (typeof cmd !== 'object' || cmd.ismaster || cmd.hello) {\n                    return original.call(this, ns, cmd, options, callback);\n                }\n                let span = undefined;\n                if (!skipInstrumentation) {\n                    const attributes = instrumentation._getV4SpanAttributes(this, ns, cmd, commandType);\n                    const spanName = instrumentation._spanNameFromAttrs(attributes);\n                    span = instrumentation.tracer.startSpan(spanName, {\n                        kind: api_1.SpanKind.CLIENT,\n                        attributes,\n                    });\n                }\n                const patchedCallback = instrumentation._patchEnd(span, resultHandler, this.id, commandType);\n                return original.call(this, ns, cmd, options, patchedCallback);\n            };\n        };\n    }\n    _getV4PatchCommandPromise() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchedV4ServerCommand(...args) {\n                const [ns, cmd] = args;\n                const currentSpan = api_1.trace.getSpan(api_1.context.active());\n                const skipInstrumentation = instrumentation._checkSkipInstrumentation(currentSpan);\n                const commandType = Object.keys(cmd)[0];\n                const resultHandler = () => undefined;\n                if (typeof cmd !== 'object' || cmd.ismaster || cmd.hello) {\n                    return original.apply(this, args);\n                }\n                let span = undefined;\n                if (!skipInstrumentation) {\n                    const attributes = instrumentation._getV4SpanAttributes(this, ns, cmd, commandType);\n                    const spanName = instrumentation._spanNameFromAttrs(attributes);\n                    span = instrumentation.tracer.startSpan(spanName, {\n                        kind: api_1.SpanKind.CLIENT,\n                        attributes,\n                    });\n                }\n                const patchedCallback = instrumentation._patchEnd(span, resultHandler, this.id, commandType);\n                const result = original.apply(this, args);\n                result.then((res) => patchedCallback(null, res), (err) => patchedCallback(err));\n                return result;\n            };\n        };\n    }\n    /** Creates spans for find operation */\n    _getV3PatchFind() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchedServerCommand(server, ns, cmd, cursorState, options, callback) {\n                const currentSpan = api_1.trace.getSpan(api_1.context.active());\n                const skipInstrumentation = instrumentation._checkSkipInstrumentation(currentSpan);\n                const resultHandler = typeof options === 'function' ? options : callback;\n                if (skipInstrumentation ||\n                    typeof resultHandler !== 'function' ||\n                    typeof cmd !== 'object') {\n                    if (typeof options === 'function') {\n                        return original.call(this, server, ns, cmd, cursorState, options);\n                    }\n                    else {\n                        return original.call(this, server, ns, cmd, cursorState, options, callback);\n                    }\n                }\n                const attributes = instrumentation._getV3SpanAttributes(ns, server, cmd, 'find');\n                const spanName = instrumentation._spanNameFromAttrs(attributes);\n                const span = instrumentation.tracer.startSpan(spanName, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes,\n                });\n                const patchedCallback = instrumentation._patchEnd(span, resultHandler);\n                // handle when options is the callback to send the correct number of args\n                if (typeof options === 'function') {\n                    return original.call(this, server, ns, cmd, cursorState, patchedCallback);\n                }\n                else {\n                    return original.call(this, server, ns, cmd, cursorState, options, patchedCallback);\n                }\n            };\n        };\n    }\n    /** Creates spans for find operation */\n    _getV3PatchCursor() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchedServerCommand(server, ns, cursorState, batchSize, options, callback) {\n                const currentSpan = api_1.trace.getSpan(api_1.context.active());\n                const skipInstrumentation = instrumentation._checkSkipInstrumentation(currentSpan);\n                const resultHandler = typeof options === 'function' ? options : callback;\n                if (skipInstrumentation || typeof resultHandler !== 'function') {\n                    if (typeof options === 'function') {\n                        return original.call(this, server, ns, cursorState, batchSize, options);\n                    }\n                    else {\n                        return original.call(this, server, ns, cursorState, batchSize, options, callback);\n                    }\n                }\n                const attributes = instrumentation._getV3SpanAttributes(ns, server, cursorState.cmd, 'getMore');\n                const spanName = instrumentation._spanNameFromAttrs(attributes);\n                const span = instrumentation.tracer.startSpan(spanName, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes,\n                });\n                const patchedCallback = instrumentation._patchEnd(span, resultHandler);\n                // handle when options is the callback to send the correct number of args\n                if (typeof options === 'function') {\n                    return original.call(this, server, ns, cursorState, batchSize, patchedCallback);\n                }\n                else {\n                    return original.call(this, server, ns, cursorState, batchSize, options, patchedCallback);\n                }\n            };\n        };\n    }\n    /**\n     * Get the mongodb command type from the object.\n     * @param command Internal mongodb command object\n     */\n    static _getCommandType(command) {\n        if (command.createIndexes !== undefined) {\n            return internal_types_1.MongodbCommandType.CREATE_INDEXES;\n        }\n        else if (command.findandmodify !== undefined) {\n            return internal_types_1.MongodbCommandType.FIND_AND_MODIFY;\n        }\n        else if (command.ismaster !== undefined) {\n            return internal_types_1.MongodbCommandType.IS_MASTER;\n        }\n        else if (command.count !== undefined) {\n            return internal_types_1.MongodbCommandType.COUNT;\n        }\n        else if (command.aggregate !== undefined) {\n            return internal_types_1.MongodbCommandType.AGGREGATE;\n        }\n        else {\n            return internal_types_1.MongodbCommandType.UNKNOWN;\n        }\n    }\n    /**\n     * Determine a span's attributes by fetching related metadata from the context\n     * @param connectionCtx mongodb internal connection context\n     * @param ns mongodb namespace\n     * @param command mongodb internal representation of a command\n     */\n    _getV4SpanAttributes(connectionCtx, ns, command, operation) {\n        let host, port;\n        if (connectionCtx) {\n            const hostParts = typeof connectionCtx.address === 'string'\n                ? connectionCtx.address.split(':')\n                : '';\n            if (hostParts.length === 2) {\n                host = hostParts[0];\n                port = hostParts[1];\n            }\n        }\n        // capture parameters within the query as well if enhancedDatabaseReporting is enabled.\n        let commandObj;\n        if (command?.documents && command.documents[0]) {\n            commandObj = command.documents[0];\n        }\n        else if (command?.cursors) {\n            commandObj = command.cursors;\n        }\n        else {\n            commandObj = command;\n        }\n        return this._getSpanAttributes(ns.db, ns.collection, host, port, commandObj, operation);\n    }\n    /**\n     * Determine a span's attributes by fetching related metadata from the context\n     * @param ns mongodb namespace\n     * @param topology mongodb internal representation of the network topology\n     * @param command mongodb internal representation of a command\n     */\n    _getV3SpanAttributes(ns, topology, command, operation) {\n        // Extract host/port info.\n        let host;\n        let port;\n        if (topology && topology.s) {\n            host = topology.s.options?.host ?? topology.s.host;\n            port = (topology.s.options?.port ?? topology.s.port)?.toString();\n            if (host == null || port == null) {\n                const address = topology.description?.address;\n                if (address) {\n                    const addressSegments = address.split(':');\n                    host = addressSegments[0];\n                    port = addressSegments[1];\n                }\n            }\n        }\n        // The namespace is a combination of the database name and the name of the\n        // collection or index, like so: [database-name].[collection-or-index-name].\n        // It could be a string or an instance of MongoDBNamespace, as such we\n        // always coerce to a string to extract db and collection.\n        const [dbName, dbCollection] = ns.toString().split('.');\n        // capture parameters within the query as well if enhancedDatabaseReporting is enabled.\n        const commandObj = command?.query ?? command?.q ?? command;\n        return this._getSpanAttributes(dbName, dbCollection, host, port, commandObj, operation);\n    }\n    _getSpanAttributes(dbName, dbCollection, host, port, commandObj, operation) {\n        const attributes = {};\n        if (this._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n            attributes[semconv_1.ATTR_DB_SYSTEM] = semconv_1.DB_SYSTEM_VALUE_MONGODB;\n            attributes[semconv_1.ATTR_DB_NAME] = dbName;\n            attributes[semconv_1.ATTR_DB_MONGODB_COLLECTION] = dbCollection;\n            attributes[semconv_1.ATTR_DB_OPERATION] = operation;\n            attributes[semconv_1.ATTR_DB_CONNECTION_STRING] =\n                `mongodb://${host}:${port}/${dbName}`;\n        }\n        if (this._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n            attributes[semantic_conventions_1.ATTR_DB_SYSTEM_NAME] = semconv_1.DB_SYSTEM_NAME_VALUE_MONGODB;\n            attributes[semantic_conventions_1.ATTR_DB_NAMESPACE] = dbName;\n            attributes[semantic_conventions_1.ATTR_DB_OPERATION_NAME] = operation;\n            attributes[semantic_conventions_1.ATTR_DB_COLLECTION_NAME] = dbCollection;\n        }\n        if (host && port) {\n            if (this._netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                attributes[semconv_1.ATTR_NET_PEER_NAME] = host;\n            }\n            if (this._netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                attributes[semantic_conventions_1.ATTR_SERVER_ADDRESS] = host;\n            }\n            const portNumber = parseInt(port, 10);\n            if (!isNaN(portNumber)) {\n                if (this._netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_NET_PEER_PORT] = portNumber;\n                }\n                if (this._netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    attributes[semantic_conventions_1.ATTR_SERVER_PORT] = portNumber;\n                }\n            }\n        }\n        if (commandObj) {\n            const { dbStatementSerializer: configDbStatementSerializer } = this.getConfig();\n            const dbStatementSerializer = typeof configDbStatementSerializer === 'function'\n                ? configDbStatementSerializer\n                : this._defaultDbStatementSerializer.bind(this);\n            (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                const query = dbStatementSerializer(commandObj);\n                if (this._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_DB_STATEMENT] = query;\n                }\n                if (this._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = query;\n                }\n            }, err => {\n                if (err) {\n                    this._diag.error('Error running dbStatementSerializer hook', err);\n                }\n            }, true);\n        }\n        return attributes;\n    }\n    _spanNameFromAttrs(attributes) {\n        let spanName;\n        if (this._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n            // https://opentelemetry.io/docs/specs/semconv/database/database-spans/#name\n            spanName =\n                [\n                    attributes[semantic_conventions_1.ATTR_DB_OPERATION_NAME],\n                    attributes[semantic_conventions_1.ATTR_DB_COLLECTION_NAME],\n                ]\n                    .filter(attr => attr)\n                    .join(' ') || semconv_1.DB_SYSTEM_NAME_VALUE_MONGODB;\n        }\n        else {\n            spanName = `mongodb.${attributes[semconv_1.ATTR_DB_OPERATION] || 'command'}`;\n        }\n        return spanName;\n    }\n    _getDefaultDbStatementReplacer() {\n        const seen = new WeakSet();\n        return (_key, value) => {\n            // undefined, boolean, number, bigint, string, symbol, function || null\n            if (typeof value !== 'object' || !value)\n                return '?';\n            // objects (including arrays)\n            if (seen.has(value))\n                return '[Circular]';\n            seen.add(value);\n            return value;\n        };\n    }\n    _defaultDbStatementSerializer(commandObj) {\n        const { enhancedDatabaseReporting } = this.getConfig();\n        if (enhancedDatabaseReporting) {\n            return JSON.stringify(commandObj);\n        }\n        return JSON.stringify(commandObj, this._getDefaultDbStatementReplacer());\n    }\n    /**\n     * Triggers the response hook in case it is defined.\n     * @param span The span to add the results to.\n     * @param result The command result\n     */\n    _handleExecutionResult(span, result) {\n        const { responseHook } = this.getConfig();\n        if (typeof responseHook === 'function') {\n            (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                responseHook(span, { data: result });\n            }, err => {\n                if (err) {\n                    this._diag.error('Error running response hook', err);\n                }\n            }, true);\n        }\n    }\n    /**\n     * Ends a created span.\n     * @param span The created span to end.\n     * @param resultHandler A callback function.\n     * @param connectionId: The connection ID of the Command response.\n     */\n    _patchEnd(span, resultHandler, connectionId, commandType) {\n        // mongodb is using \"tick\" when calling a callback, this way the context\n        // in final callback (resultHandler) is lost\n        const activeContext = api_1.context.active();\n        const instrumentation = this;\n        let spanEnded = false;\n        return function patchedEnd(...args) {\n            if (!spanEnded) {\n                spanEnded = true;\n                const error = args[0];\n                if (span) {\n                    if (error instanceof Error) {\n                        span.setStatus({\n                            code: api_1.SpanStatusCode.ERROR,\n                            message: error.message,\n                        });\n                    }\n                    else {\n                        const result = args[1];\n                        instrumentation._handleExecutionResult(span, result);\n                    }\n                    span.end();\n                }\n                if (commandType === 'endSessions') {\n                    instrumentation._connCountAdd(-1, instrumentation._poolName, 'idle');\n                }\n            }\n            return api_1.context.with(activeContext, () => {\n                return resultHandler.apply(this, args);\n            });\n        };\n    }\n    setPoolName(options) {\n        const host = options.hostAddress?.host;\n        const port = options.hostAddress?.port;\n        const database = options.dbName;\n        const poolName = `mongodb://${host}:${port}/${database}`;\n        this._poolName = poolName;\n    }\n    _checkSkipInstrumentation(currentSpan) {\n        const requireParentSpan = this.getConfig().requireParentSpan;\n        const hasNoParentSpan = currentSpan === undefined;\n        return requireParentSpan === true && hasNoParentSpan;\n    }\n}\nexports.MongoDBInstrumentation = MongoDBInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MongodbCommandType = void 0;\nvar MongodbCommandType;\n(function (MongodbCommandType) {\n    MongodbCommandType[\"CREATE_INDEXES\"] = \"createIndexes\";\n    MongodbCommandType[\"FIND_AND_MODIFY\"] = \"findAndModify\";\n    MongodbCommandType[\"IS_MASTER\"] = \"isMaster\";\n    MongodbCommandType[\"COUNT\"] = \"count\";\n    MongodbCommandType[\"UNKNOWN\"] = \"unknown\";\n})(MongodbCommandType = exports.MongodbCommandType || (exports.MongodbCommandType = {}));\n//# sourceMappingURL=types.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MongodbCommandType = exports.MongoDBInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"MongoDBInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.MongoDBInstrumentation; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"MongodbCommandType\", { enumerable: true, get: function () { return types_1.MongodbCommandType; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DB_SYSTEM_NAME_VALUE_MONGODB = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_USER = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_OPERATION = exports.ATTR_DB_NAME = exports.ATTR_DB_MONGODB_COLLECTION = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `db.collection.name` instead.\n *\n * @example \"mytable\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.collection.name`.\n */\nexports.ATTR_DB_MONGODB_COLLECTION = 'db.mongodb.collection';\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexports.ATTR_DB_NAME = 'db.name';\n/**\n * Deprecated, use `db.operation.name` instead.\n *\n * @example findAndModify\n * @example HMSET\n * @example SELECT\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.operation.name`.\n */\nexports.ATTR_DB_OPERATION = 'db.operation';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexports.ATTR_DB_USER = 'db.user';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"mongodb\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [MongoDB](https://www.mongodb.com/)\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_NAME_VALUE_MONGODB = 'mongodb';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.handleCallbackResponse = exports.handlePromiseResponse = exports.getAttributesFromCollection = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semconv_1 = require(\"./semconv\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nfunction getAttributesFromCollection(collection, dbSemconvStability, netSemconvStability) {\n    const attrs = {};\n    if (dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n        attrs[semconv_1.ATTR_DB_MONGODB_COLLECTION] = collection.name;\n        attrs[semconv_1.ATTR_DB_NAME] = collection.conn.name;\n        attrs[semconv_1.ATTR_DB_USER] = collection.conn.user;\n    }\n    if (dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n        attrs[semantic_conventions_1.ATTR_DB_COLLECTION_NAME] = collection.name;\n        attrs[semantic_conventions_1.ATTR_DB_NAMESPACE] = collection.conn.name;\n        // db.user has no stable replacement\n    }\n    if (netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n        attrs[semconv_1.ATTR_NET_PEER_NAME] = collection.conn.host;\n        attrs[semconv_1.ATTR_NET_PEER_PORT] = collection.conn.port;\n    }\n    if (netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n        attrs[semantic_conventions_1.ATTR_SERVER_ADDRESS] = collection.conn.host;\n        attrs[semantic_conventions_1.ATTR_SERVER_PORT] = collection.conn.port;\n    }\n    return attrs;\n}\nexports.getAttributesFromCollection = getAttributesFromCollection;\nfunction setErrorStatus(span, error = {}) {\n    span.recordException(error);\n    span.setStatus({\n        code: api_1.SpanStatusCode.ERROR,\n        message: `${error.message} ${error.code ? `\\nMongoose Error Code: ${error.code}` : ''}`,\n    });\n}\nfunction applyResponseHook(span, response, responseHook, moduleVersion = undefined) {\n    if (!responseHook) {\n        return;\n    }\n    (0, instrumentation_1.safeExecuteInTheMiddle)(() => responseHook(span, { moduleVersion, response }), e => {\n        if (e) {\n            api_1.diag.error('mongoose instrumentation: responseHook error', e);\n        }\n    }, true);\n}\nfunction handlePromiseResponse(execResponse, span, responseHook, moduleVersion = undefined) {\n    if (!(execResponse instanceof Promise)) {\n        applyResponseHook(span, execResponse, responseHook, moduleVersion);\n        span.end();\n        return execResponse;\n    }\n    return execResponse\n        .then(response => {\n        applyResponseHook(span, response, responseHook, moduleVersion);\n        return response;\n    })\n        .catch(err => {\n        setErrorStatus(span, err);\n        throw err;\n    })\n        .finally(() => span.end());\n}\nexports.handlePromiseResponse = handlePromiseResponse;\nfunction handleCallbackResponse(callback, exec, originalThis, span, args, responseHook, moduleVersion = undefined) {\n    let callbackArgumentIndex = 0;\n    if (args.length === 2) {\n        callbackArgumentIndex = 1;\n    }\n    else if (args.length === 3) {\n        callbackArgumentIndex = 2;\n    }\n    args[callbackArgumentIndex] = (err, response) => {\n        if (err) {\n            setErrorStatus(span, err);\n        }\n        else {\n            applyResponseHook(span, response, responseHook, moduleVersion);\n        }\n        span.end();\n        return callback(err, response);\n    };\n    return exec.apply(originalThis, args);\n}\nexports.handleCallbackResponse = handleCallbackResponse;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.59.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-mongoose';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MongooseInstrumentation = exports._ALREADY_INSTRUMENTED = exports._STORED_PARENT_SPAN = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst utils_1 = require(\"./utils\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst semconv_1 = require(\"./semconv\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst contextCaptureFunctionsCommon = [\n    'deleteOne',\n    'deleteMany',\n    'find',\n    'findOne',\n    'estimatedDocumentCount',\n    'countDocuments',\n    'distinct',\n    'where',\n    '$where',\n    'findOneAndUpdate',\n    'findOneAndDelete',\n    'findOneAndReplace',\n];\nconst contextCaptureFunctions6 = [\n    'remove',\n    'count',\n    'findOneAndRemove',\n    ...contextCaptureFunctionsCommon,\n];\nconst contextCaptureFunctions7 = [\n    'count',\n    'findOneAndRemove',\n    ...contextCaptureFunctionsCommon,\n];\nconst contextCaptureFunctions8 = [...contextCaptureFunctionsCommon];\nfunction getContextCaptureFunctions(moduleVersion) {\n    /* istanbul ignore next */\n    if (!moduleVersion) {\n        return contextCaptureFunctionsCommon;\n    }\n    else if (moduleVersion.startsWith('6.') || moduleVersion.startsWith('5.')) {\n        return contextCaptureFunctions6;\n    }\n    else if (moduleVersion.startsWith('7.')) {\n        return contextCaptureFunctions7;\n    }\n    else {\n        return contextCaptureFunctions8;\n    }\n}\nfunction instrumentRemove(moduleVersion) {\n    return ((moduleVersion &&\n        (moduleVersion.startsWith('5.') || moduleVersion.startsWith('6.'))) ||\n        false);\n}\n/**\n * 8.21.0 changed Document.updateOne/deleteOne so that the Query is not fully built when Query.exec() is called.\n * @param moduleVersion\n */\nfunction needsDocumentMethodPatch(moduleVersion) {\n    if (!moduleVersion || !moduleVersion.startsWith('8.')) {\n        return false;\n    }\n    const minor = parseInt(moduleVersion.split('.')[1], 10);\n    return minor >= 21;\n}\n// when mongoose functions are called, we store the original call context\n// and then set it as the parent for the spans created by Query/Aggregate exec()\n// calls. this bypass the unlinked spans issue on thenables await operations.\nexports._STORED_PARENT_SPAN = Symbol('stored-parent-span');\n// Prevents double-instrumentation when doc.updateOne/deleteOne (Mongoose 8.21.0+)\n// creates a span and returns a Query that also calls exec()\nexports._ALREADY_INSTRUMENTED = Symbol('already-instrumented');\nclass MongooseInstrumentation extends instrumentation_1.InstrumentationBase {\n    _netSemconvStability;\n    _dbSemconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._setSemconvStabilityFromEnv();\n    }\n    // Used for testing.\n    _setSemconvStabilityFromEnv() {\n        this._netSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n        this._dbSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    init() {\n        const module = new instrumentation_1.InstrumentationNodeModuleDefinition('mongoose', ['>=5.9.7 <10'], this.patch.bind(this), this.unpatch.bind(this));\n        return module;\n    }\n    patch(module, moduleVersion) {\n        const moduleExports = module[Symbol.toStringTag] === 'Module'\n            ? module.default // ESM\n            : module; // CommonJS\n        this._wrap(moduleExports.Model.prototype, 'save', this.patchOnModelMethods('save', moduleVersion));\n        // mongoose applies this code on module require:\n        // Model.prototype.$save = Model.prototype.save;\n        // which captures the save function before it is patched.\n        // so we need to apply the same logic after instrumenting the save function.\n        moduleExports.Model.prototype.$save = moduleExports.Model.prototype.save;\n        if (instrumentRemove(moduleVersion)) {\n            this._wrap(moduleExports.Model.prototype, 'remove', this.patchOnModelMethods('remove', moduleVersion));\n        }\n        // Mongoose 8.21.0+ changed Document.updateOne()/deleteOne() so that the Query is not fully built when Query.exec() is called.\n        //\n        // See https://github.com/Automattic/mongoose/blob/7dbda12dca1bd7adb9e270d7de8ac5229606ce72/lib/document.js#L861.\n        // - `this` is a Query object\n        // - the update happens in a pre-hook that gets called when Query.exec() is already running.\n        // - when we instrument Query.exec(), we don't have access to the options yet as they get set during Query.exec() only.\n        //\n        // Unfortunately, after Query.exec() is finished, the options are left modified by the library, so just delaying\n        // attaching the attributes after the span is done is not an option. Therefore, we patch Model methods\n        // and grab the data directly where the user provides it.\n        //\n        // ref: https://github.com/Automattic/mongoose/pull/15908 (introduced this behavior)\n        if (needsDocumentMethodPatch(moduleVersion)) {\n            this._wrap(moduleExports.Model.prototype, 'updateOne', this._patchDocumentUpdateMethods('updateOne', moduleVersion));\n            this._wrap(moduleExports.Model.prototype, 'deleteOne', this._patchDocumentUpdateMethods('deleteOne', moduleVersion));\n        }\n        this._wrap(moduleExports.Query.prototype, 'exec', this.patchQueryExec(moduleVersion));\n        this._wrap(moduleExports.Aggregate.prototype, 'exec', this.patchAggregateExec(moduleVersion));\n        const contextCaptureFunctions = getContextCaptureFunctions(moduleVersion);\n        contextCaptureFunctions.forEach((funcName) => {\n            this._wrap(moduleExports.Query.prototype, funcName, this.patchAndCaptureSpanContext(funcName));\n        });\n        this._wrap(moduleExports.Model, 'aggregate', this.patchModelAggregate());\n        this._wrap(moduleExports.Model, 'insertMany', this.patchModelStatic('insertMany', moduleVersion));\n        this._wrap(moduleExports.Model, 'bulkWrite', this.patchModelStatic('bulkWrite', moduleVersion));\n        return moduleExports;\n    }\n    unpatch(module, moduleVersion) {\n        const moduleExports = module[Symbol.toStringTag] === 'Module'\n            ? module.default // ESM\n            : module; // CommonJS\n        const contextCaptureFunctions = getContextCaptureFunctions(moduleVersion);\n        this._unwrap(moduleExports.Model.prototype, 'save');\n        // revert the patch for $save which we applied by aliasing it to patched `save`\n        moduleExports.Model.prototype.$save = moduleExports.Model.prototype.save;\n        if (instrumentRemove(moduleVersion)) {\n            this._unwrap(moduleExports.Model.prototype, 'remove');\n        }\n        if (needsDocumentMethodPatch(moduleVersion)) {\n            this._unwrap(moduleExports.Model.prototype, 'updateOne');\n            this._unwrap(moduleExports.Model.prototype, 'deleteOne');\n        }\n        this._unwrap(moduleExports.Query.prototype, 'exec');\n        this._unwrap(moduleExports.Aggregate.prototype, 'exec');\n        contextCaptureFunctions.forEach((funcName) => {\n            this._unwrap(moduleExports.Query.prototype, funcName);\n        });\n        this._unwrap(moduleExports.Model, 'aggregate');\n        this._unwrap(moduleExports.Model, 'insertMany');\n        this._unwrap(moduleExports.Model, 'bulkWrite');\n    }\n    patchAggregateExec(moduleVersion) {\n        const self = this;\n        return (originalAggregate) => {\n            return function exec(callback) {\n                if (self.getConfig().requireParentSpan &&\n                    api_1.trace.getSpan(api_1.context.active()) === undefined) {\n                    return originalAggregate.apply(this, arguments);\n                }\n                const parentSpan = this[exports._STORED_PARENT_SPAN];\n                const attributes = {};\n                const { dbStatementSerializer } = self.getConfig();\n                if (dbStatementSerializer) {\n                    const statement = dbStatementSerializer('aggregate', {\n                        options: this.options,\n                        aggregatePipeline: this._pipeline,\n                    });\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                        attributes[semconv_1.ATTR_DB_STATEMENT] = statement;\n                    }\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                        attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = statement;\n                    }\n                }\n                const span = self._startSpan(this._model.collection, this._model?.modelName, 'aggregate', attributes, parentSpan);\n                return self._handleResponse(span, originalAggregate, this, arguments, callback, moduleVersion);\n            };\n        };\n    }\n    patchQueryExec(moduleVersion) {\n        const self = this;\n        return (originalExec) => {\n            return function exec(callback) {\n                // Skip if already instrumented by document instance method patch\n                if (this[exports._ALREADY_INSTRUMENTED]) {\n                    return originalExec.apply(this, arguments);\n                }\n                if (self.getConfig().requireParentSpan &&\n                    api_1.trace.getSpan(api_1.context.active()) === undefined) {\n                    return originalExec.apply(this, arguments);\n                }\n                const parentSpan = this[exports._STORED_PARENT_SPAN];\n                const attributes = {};\n                const { dbStatementSerializer } = self.getConfig();\n                if (dbStatementSerializer) {\n                    const statement = dbStatementSerializer(this.op, {\n                        // Use public API methods (getFilter/getOptions) for better compatibility\n                        condition: this.getFilter?.() ?? this._conditions,\n                        updates: this._update,\n                        options: this.getOptions?.() ?? this.options,\n                        fields: this._fields,\n                    });\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                        attributes[semconv_1.ATTR_DB_STATEMENT] = statement;\n                    }\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                        attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = statement;\n                    }\n                }\n                const span = self._startSpan(this.mongooseCollection, this.model.modelName, this.op, attributes, parentSpan);\n                return self._handleResponse(span, originalExec, this, arguments, callback, moduleVersion);\n            };\n        };\n    }\n    patchOnModelMethods(op, moduleVersion) {\n        const self = this;\n        return (originalOnModelFunction) => {\n            return function method(options, callback) {\n                if (self.getConfig().requireParentSpan &&\n                    api_1.trace.getSpan(api_1.context.active()) === undefined) {\n                    return originalOnModelFunction.apply(this, arguments);\n                }\n                const serializePayload = { document: this };\n                if (options && !(options instanceof Function)) {\n                    serializePayload.options = options;\n                }\n                const attributes = {};\n                const { dbStatementSerializer } = self.getConfig();\n                if (dbStatementSerializer) {\n                    const statement = dbStatementSerializer(op, serializePayload);\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                        attributes[semconv_1.ATTR_DB_STATEMENT] = statement;\n                    }\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                        attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = statement;\n                    }\n                }\n                const span = self._startSpan(this.constructor.collection, this.constructor.modelName, op, attributes);\n                if (options instanceof Function) {\n                    callback = options;\n                    options = undefined;\n                }\n                return self._handleResponse(span, originalOnModelFunction, this, arguments, callback, moduleVersion);\n            };\n        };\n    }\n    // Patch document instance methods (doc.updateOne/deleteOne) for Mongoose 8.21.0+.\n    _patchDocumentUpdateMethods(op, moduleVersion) {\n        const self = this;\n        return (originalMethod) => {\n            return function method(update, options, callback) {\n                if (self.getConfig().requireParentSpan &&\n                    api_1.trace.getSpan(api_1.context.active()) === undefined) {\n                    return originalMethod.apply(this, arguments);\n                }\n                // determine actual callback since different argument patterns are allowed\n                let actualCallback = callback;\n                let actualUpdate = update;\n                let actualOptions = options;\n                if (typeof update === 'function') {\n                    actualCallback = update;\n                    actualUpdate = undefined;\n                    actualOptions = undefined;\n                }\n                else if (typeof options === 'function') {\n                    actualCallback = options;\n                    actualOptions = undefined;\n                }\n                const attributes = {};\n                const dbStatementSerializer = self.getConfig().dbStatementSerializer;\n                if (dbStatementSerializer) {\n                    const statement = dbStatementSerializer(op, {\n                        // Document instance methods automatically use the document's _id as filter\n                        condition: { _id: this._id },\n                        updates: actualUpdate,\n                        options: actualOptions,\n                    });\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                        attributes[semconv_1.ATTR_DB_STATEMENT] = statement;\n                    }\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                        attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = statement;\n                    }\n                }\n                const span = self._startSpan(this.constructor.collection, this.constructor.modelName, op, attributes);\n                const result = self._handleResponse(span, originalMethod, this, arguments, actualCallback, moduleVersion);\n                // Mark returned Query to prevent double-instrumentation when exec() is eventually called\n                if (result && typeof result === 'object') {\n                    result[exports._ALREADY_INSTRUMENTED] = true;\n                }\n                return result;\n            };\n        };\n    }\n    patchModelStatic(op, moduleVersion) {\n        const self = this;\n        return (original) => {\n            return function patchedStatic(docsOrOps, options, callback) {\n                if (self.getConfig().requireParentSpan &&\n                    api_1.trace.getSpan(api_1.context.active()) === undefined) {\n                    return original.apply(this, arguments);\n                }\n                if (typeof options === 'function') {\n                    callback = options;\n                    options = undefined;\n                }\n                const serializePayload = {};\n                switch (op) {\n                    case 'insertMany':\n                        serializePayload.documents = docsOrOps;\n                        break;\n                    case 'bulkWrite':\n                        serializePayload.operations = docsOrOps;\n                        break;\n                    default:\n                        serializePayload.document = docsOrOps;\n                        break;\n                }\n                if (options !== undefined) {\n                    serializePayload.options = options;\n                }\n                const attributes = {};\n                const { dbStatementSerializer } = self.getConfig();\n                if (dbStatementSerializer) {\n                    const statement = dbStatementSerializer(op, serializePayload);\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                        attributes[semconv_1.ATTR_DB_STATEMENT] = statement;\n                    }\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                        attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = statement;\n                    }\n                }\n                const span = self._startSpan(this.collection, this.modelName, op, attributes);\n                return self._handleResponse(span, original, this, arguments, callback, moduleVersion);\n            };\n        };\n    }\n    // we want to capture the otel span on the object which is calling exec.\n    // in the special case of aggregate, we need have no function to path\n    // on the Aggregate object to capture the context on, so we patch\n    // the aggregate of Model, and set the context on the Aggregate object\n    patchModelAggregate() {\n        const self = this;\n        return (original) => {\n            return function captureSpanContext() {\n                const currentSpan = api_1.trace.getSpan(api_1.context.active());\n                const aggregate = self._callOriginalFunction(() => original.apply(this, arguments));\n                if (aggregate)\n                    aggregate[exports._STORED_PARENT_SPAN] = currentSpan;\n                return aggregate;\n            };\n        };\n    }\n    patchAndCaptureSpanContext(funcName) {\n        const self = this;\n        return (original) => {\n            return function captureSpanContext() {\n                this[exports._STORED_PARENT_SPAN] = api_1.trace.getSpan(api_1.context.active());\n                return self._callOriginalFunction(() => original.apply(this, arguments));\n            };\n        };\n    }\n    _startSpan(collection, modelName, operation, attributes, parentSpan) {\n        const finalAttributes = {\n            ...attributes,\n            ...(0, utils_1.getAttributesFromCollection)(collection, this._dbSemconvStability, this._netSemconvStability),\n        };\n        if (this._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n            finalAttributes[semconv_1.ATTR_DB_OPERATION] = operation;\n            finalAttributes[semconv_1.ATTR_DB_SYSTEM] = 'mongoose'; // keep for backwards compatibility\n        }\n        if (this._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n            finalAttributes[semantic_conventions_1.ATTR_DB_OPERATION_NAME] = operation;\n            finalAttributes[semantic_conventions_1.ATTR_DB_SYSTEM_NAME] = semconv_1.DB_SYSTEM_NAME_VALUE_MONGODB; // actual db system name\n        }\n        const spanName = this._dbSemconvStability & instrumentation_1.SemconvStability.STABLE\n            ? `${operation} ${collection.name}`\n            : `mongoose.${modelName}.${operation}`;\n        return this.tracer.startSpan(spanName, {\n            kind: api_1.SpanKind.CLIENT,\n            attributes: finalAttributes,\n        }, parentSpan ? api_1.trace.setSpan(api_1.context.active(), parentSpan) : undefined);\n    }\n    _handleResponse(span, exec, originalThis, args, callback, moduleVersion = undefined) {\n        const self = this;\n        if (callback instanceof Function) {\n            return self._callOriginalFunction(() => (0, utils_1.handleCallbackResponse)(callback, exec, originalThis, span, args, self.getConfig().responseHook, moduleVersion));\n        }\n        else {\n            const response = self._callOriginalFunction(() => exec.apply(originalThis, args));\n            return (0, utils_1.handlePromiseResponse)(response, span, self.getConfig().responseHook, moduleVersion);\n        }\n    }\n    _callOriginalFunction(originalFunction) {\n        if (this.getConfig().suppressInternalInstrumentation) {\n            return api_1.context.with((0, core_1.suppressTracing)(api_1.context.active()), originalFunction);\n        }\n        else {\n            return originalFunction();\n        }\n    }\n}\nexports.MongooseInstrumentation = MongooseInstrumentation;\n//# sourceMappingURL=mongoose.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MongooseInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar mongoose_1 = require(\"./mongoose\");\nObject.defineProperty(exports, \"MongooseInstrumentation\", { enumerable: true, get: function () { return mongoose_1.MongooseInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.METRIC_DB_CLIENT_CONNECTIONS_USAGE = exports.DB_SYSTEM_VALUE_MYSQL = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_USER = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_NAME = exports.ATTR_DB_CONNECTION_STRING = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexports.ATTR_DB_CONNECTION_STRING = 'db.connection_string';\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexports.ATTR_DB_NAME = 'db.name';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexports.ATTR_DB_USER = 'db.user';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"mysql\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * MySQL\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_VALUE_MYSQL = 'mysql';\n/**\n * Deprecated, use `db.client.connection.count` instead.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.client.connection.count`.\n */\nexports.METRIC_DB_CLIENT_CONNECTIONS_USAGE = 'db.client.connections.usage';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Mysql specific attributes not covered by semantic conventions\nvar AttributeNames;\n(function (AttributeNames) {\n    AttributeNames[\"MYSQL_VALUES\"] = \"db.mysql.values\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getPoolNameOld = exports.arrayStringifyHelper = exports.getSpanName = exports.getDbValues = exports.getDbQueryText = exports.getJDBCString = exports.getConfig = void 0;\nfunction getConfig(config) {\n    const { host, port, database, user } = (config && config.connectionConfig) || config || {};\n    return { host, port, database, user };\n}\nexports.getConfig = getConfig;\nfunction getJDBCString(host, port, database) {\n    let jdbcString = `jdbc:mysql://${host || 'localhost'}`;\n    if (typeof port === 'number') {\n        jdbcString += `:${port}`;\n    }\n    if (typeof database === 'string') {\n        jdbcString += `/${database}`;\n    }\n    return jdbcString;\n}\nexports.getJDBCString = getJDBCString;\n/**\n * @returns the database query being executed.\n */\nfunction getDbQueryText(query) {\n    if (typeof query === 'string') {\n        return query;\n    }\n    else {\n        return query.sql;\n    }\n}\nexports.getDbQueryText = getDbQueryText;\nfunction getDbValues(query, values) {\n    if (typeof query === 'string') {\n        return arrayStringifyHelper(values);\n    }\n    else {\n        // According to https://github.com/mysqljs/mysql#performing-queries\n        // The values argument will override the values in the option object.\n        return arrayStringifyHelper(values || query.values);\n    }\n}\nexports.getDbValues = getDbValues;\n/**\n * The span name SHOULD be set to a low cardinality value\n * representing the statement executed on the database.\n *\n * TODO: revisit span name based on https://github.com/open-telemetry/semantic-conventions/blob/v1.33.0/docs/database/database-spans.md#name\n *\n * @returns SQL statement without variable arguments or SQL verb\n */\nfunction getSpanName(query) {\n    const rawQuery = typeof query === 'object' ? query.sql : query;\n    // Extract the SQL verb\n    const firstSpace = rawQuery?.indexOf(' ');\n    if (typeof firstSpace === 'number' && firstSpace !== -1) {\n        return rawQuery?.substring(0, firstSpace);\n    }\n    return rawQuery;\n}\nexports.getSpanName = getSpanName;\nfunction arrayStringifyHelper(arr) {\n    if (arr)\n        return `[${arr.toString()}]`;\n    return '';\n}\nexports.arrayStringifyHelper = arrayStringifyHelper;\nfunction getPoolNameOld(pool) {\n    const c = pool.config.connectionConfig;\n    let poolName = '';\n    poolName += c.host ? `host: '${c.host}', ` : '';\n    poolName += c.port ? `port: ${c.port}, ` : '';\n    poolName += c.database ? `database: '${c.database}', ` : '';\n    poolName += c.user ? `user: '${c.user}'` : '';\n    if (!c.user) {\n        poolName = poolName.substring(0, poolName.length - 2); //omit last comma\n    }\n    return poolName.trim();\n}\nexports.getPoolNameOld = getPoolNameOld;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.59.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-mysql';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MySQLInstrumentation = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst AttributeNames_1 = require(\"./AttributeNames\");\nconst utils_1 = require(\"./utils\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nclass MySQLInstrumentation extends instrumentation_1.InstrumentationBase {\n    _netSemconvStability;\n    _dbSemconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._setSemconvStabilityFromEnv();\n    }\n    // Used for testing.\n    _setSemconvStabilityFromEnv() {\n        this._netSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n        this._dbSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    _updateMetricInstruments() {\n        this._connectionsUsageOld = this.meter.createUpDownCounter(semconv_1.METRIC_DB_CLIENT_CONNECTIONS_USAGE, {\n            description: 'The number of connections that are currently in state described by the state attribute.',\n            unit: '{connection}',\n        });\n    }\n    /**\n     * Convenience function for updating the `db.client.connections.usage` metric.\n     * The name \"count\" comes from the eventually replacement for this metric per\n     * https://opentelemetry.io/docs/specs/semconv/non-normative/db-migration/#database-client-connection-count\n     */\n    _connCountAdd(n, poolNameOld, state) {\n        this._connectionsUsageOld?.add(n, { state, name: poolNameOld });\n    }\n    init() {\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition('mysql', ['>=2.0.0 <3'], (moduleExports) => {\n                if ((0, instrumentation_1.isWrapped)(moduleExports.createConnection)) {\n                    this._unwrap(moduleExports, 'createConnection');\n                }\n                this._wrap(moduleExports, 'createConnection', this._patchCreateConnection());\n                if ((0, instrumentation_1.isWrapped)(moduleExports.createPool)) {\n                    this._unwrap(moduleExports, 'createPool');\n                }\n                this._wrap(moduleExports, 'createPool', this._patchCreatePool());\n                if ((0, instrumentation_1.isWrapped)(moduleExports.createPoolCluster)) {\n                    this._unwrap(moduleExports, 'createPoolCluster');\n                }\n                this._wrap(moduleExports, 'createPoolCluster', this._patchCreatePoolCluster());\n                return moduleExports;\n            }, (moduleExports) => {\n                if (moduleExports === undefined)\n                    return;\n                this._unwrap(moduleExports, 'createConnection');\n                this._unwrap(moduleExports, 'createPool');\n                this._unwrap(moduleExports, 'createPoolCluster');\n            }),\n        ];\n    }\n    // global export function\n    _patchCreateConnection() {\n        return (originalCreateConnection) => {\n            const thisPlugin = this;\n            return function createConnection(_connectionUri) {\n                const originalResult = originalCreateConnection(...arguments);\n                // This is unwrapped on next call after unpatch\n                thisPlugin._wrap(originalResult, 'query', thisPlugin._patchQuery(originalResult));\n                return originalResult;\n            };\n        };\n    }\n    // global export function\n    _patchCreatePool() {\n        return (originalCreatePool) => {\n            const thisPlugin = this;\n            return function createPool(_config) {\n                const pool = originalCreatePool(...arguments);\n                thisPlugin._wrap(pool, 'query', thisPlugin._patchQuery(pool));\n                thisPlugin._wrap(pool, 'getConnection', thisPlugin._patchGetConnection(pool));\n                thisPlugin._wrap(pool, 'end', thisPlugin._patchPoolEnd(pool));\n                thisPlugin._setPoolCallbacks(pool, '');\n                return pool;\n            };\n        };\n    }\n    _patchPoolEnd(pool) {\n        return (originalPoolEnd) => {\n            const thisPlugin = this;\n            return function end(callback) {\n                const nAll = pool._allConnections.length;\n                const nFree = pool._freeConnections.length;\n                const nUsed = nAll - nFree;\n                const poolNameOld = (0, utils_1.getPoolNameOld)(pool);\n                thisPlugin._connCountAdd(-nUsed, poolNameOld, 'used');\n                thisPlugin._connCountAdd(-nFree, poolNameOld, 'idle');\n                originalPoolEnd.apply(pool, arguments);\n            };\n        };\n    }\n    // global export function\n    _patchCreatePoolCluster() {\n        return (originalCreatePoolCluster) => {\n            const thisPlugin = this;\n            return function createPool(_config) {\n                const cluster = originalCreatePoolCluster(...arguments);\n                // This is unwrapped on next call after unpatch\n                thisPlugin._wrap(cluster, 'getConnection', thisPlugin._patchGetConnection(cluster));\n                thisPlugin._wrap(cluster, 'add', thisPlugin._patchAdd(cluster));\n                return cluster;\n            };\n        };\n    }\n    _patchAdd(cluster) {\n        return (originalAdd) => {\n            const thisPlugin = this;\n            return function add(id, config) {\n                // Unwrap if unpatch has been called\n                if (!thisPlugin['_enabled']) {\n                    thisPlugin._unwrap(cluster, 'add');\n                    return originalAdd.apply(cluster, arguments);\n                }\n                originalAdd.apply(cluster, arguments);\n                const nodes = cluster['_nodes'];\n                if (nodes) {\n                    const nodeId = typeof id === 'object'\n                        ? 'CLUSTER::' + cluster._lastId\n                        : String(id);\n                    const pool = nodes[nodeId].pool;\n                    thisPlugin._setPoolCallbacks(pool, id);\n                }\n            };\n        };\n    }\n    // method on cluster or pool\n    _patchGetConnection(pool) {\n        return (originalGetConnection) => {\n            const thisPlugin = this;\n            return function getConnection(arg1, arg2, arg3) {\n                // Unwrap if unpatch has been called\n                if (!thisPlugin['_enabled']) {\n                    thisPlugin._unwrap(pool, 'getConnection');\n                    return originalGetConnection.apply(pool, arguments);\n                }\n                if (arguments.length === 1 && typeof arg1 === 'function') {\n                    const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg1);\n                    return originalGetConnection.call(pool, patchFn);\n                }\n                if (arguments.length === 2 && typeof arg2 === 'function') {\n                    const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg2);\n                    return originalGetConnection.call(pool, arg1, patchFn);\n                }\n                if (arguments.length === 3 && typeof arg3 === 'function') {\n                    const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg3);\n                    return originalGetConnection.call(pool, arg1, arg2, patchFn);\n                }\n                return originalGetConnection.apply(pool, arguments);\n            };\n        };\n    }\n    _getConnectionCallbackPatchFn(cb) {\n        const thisPlugin = this;\n        const activeContext = api_1.context.active();\n        return function (err, connection) {\n            if (connection) {\n                // this is the callback passed into a query\n                // no need to unwrap\n                if (!(0, instrumentation_1.isWrapped)(connection.query)) {\n                    thisPlugin._wrap(connection, 'query', thisPlugin._patchQuery(connection));\n                }\n            }\n            if (typeof cb === 'function') {\n                api_1.context.with(activeContext, cb, this, err, connection);\n            }\n        };\n    }\n    _patchQuery(connection) {\n        return (originalQuery) => {\n            const thisPlugin = this;\n            return function query(query, _valuesOrCallback, _callback) {\n                if (!thisPlugin['_enabled']) {\n                    thisPlugin._unwrap(connection, 'query');\n                    return originalQuery.apply(connection, arguments);\n                }\n                const attributes = {};\n                const { host, port, database, user } = (0, utils_1.getConfig)(connection.config);\n                const portNumber = parseInt(port, 10);\n                const dbQueryText = (0, utils_1.getDbQueryText)(query);\n                if (thisPlugin._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_DB_SYSTEM] = semconv_1.DB_SYSTEM_VALUE_MYSQL;\n                    attributes[semconv_1.ATTR_DB_CONNECTION_STRING] = (0, utils_1.getJDBCString)(host, port, database);\n                    attributes[semconv_1.ATTR_DB_NAME] = database;\n                    attributes[semconv_1.ATTR_DB_USER] = user;\n                    attributes[semconv_1.ATTR_DB_STATEMENT] = dbQueryText;\n                }\n                if (thisPlugin._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    attributes[semantic_conventions_1.ATTR_DB_SYSTEM_NAME] = semantic_conventions_1.DB_SYSTEM_NAME_VALUE_MYSQL;\n                    attributes[semantic_conventions_1.ATTR_DB_NAMESPACE] = database;\n                    attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = dbQueryText;\n                }\n                if (thisPlugin._netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_NET_PEER_NAME] = host;\n                    if (!isNaN(portNumber)) {\n                        attributes[semconv_1.ATTR_NET_PEER_PORT] = portNumber;\n                    }\n                }\n                if (thisPlugin._netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    attributes[semantic_conventions_1.ATTR_SERVER_ADDRESS] = host;\n                    if (!isNaN(portNumber)) {\n                        attributes[semantic_conventions_1.ATTR_SERVER_PORT] = portNumber;\n                    }\n                }\n                const span = thisPlugin.tracer.startSpan((0, utils_1.getSpanName)(query), {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes,\n                });\n                if (thisPlugin.getConfig().enhancedDatabaseReporting) {\n                    let values;\n                    if (Array.isArray(_valuesOrCallback)) {\n                        values = _valuesOrCallback;\n                    }\n                    else if (arguments[2]) {\n                        values = [_valuesOrCallback];\n                    }\n                    span.setAttribute(AttributeNames_1.AttributeNames.MYSQL_VALUES, (0, utils_1.getDbValues)(query, values));\n                }\n                const cbIndex = Array.from(arguments).findIndex(arg => typeof arg === 'function');\n                const parentContext = api_1.context.active();\n                if (cbIndex === -1) {\n                    const streamableQuery = api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n                        return originalQuery.apply(connection, arguments);\n                    });\n                    api_1.context.bind(parentContext, streamableQuery);\n                    return streamableQuery\n                        .on('error', err => span.setStatus({\n                        code: api_1.SpanStatusCode.ERROR,\n                        message: err.message,\n                    }))\n                        .on('end', () => {\n                        span.end();\n                    });\n                }\n                else {\n                    thisPlugin._wrap(arguments, cbIndex, thisPlugin._patchCallbackQuery(span, parentContext));\n                    return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n                        return originalQuery.apply(connection, arguments);\n                    });\n                }\n            };\n        };\n    }\n    _patchCallbackQuery(span, parentContext) {\n        return (originalCallback) => {\n            return function (err, results, fields) {\n                if (err) {\n                    span.setStatus({\n                        code: api_1.SpanStatusCode.ERROR,\n                        message: err.message,\n                    });\n                }\n                span.end();\n                return api_1.context.with(parentContext, () => originalCallback(...arguments));\n            };\n        };\n    }\n    _setPoolCallbacks(pool, id) {\n        const poolNameOld = id || (0, utils_1.getPoolNameOld)(pool);\n        pool.on('connection', _connection => {\n            this._connCountAdd(1, poolNameOld, 'idle');\n        });\n        pool.on('acquire', _connection => {\n            this._connCountAdd(-1, poolNameOld, 'idle');\n            this._connCountAdd(1, poolNameOld, 'used');\n        });\n        pool.on('release', _connection => {\n            this._connCountAdd(1, poolNameOld, 'idle');\n            this._connCountAdd(-1, poolNameOld, 'used');\n        });\n    }\n}\nexports.MySQLInstrumentation = MySQLInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MySQLInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"MySQLInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.MySQLInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DB_SYSTEM_VALUE_MYSQL = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_USER = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_NAME = exports.ATTR_DB_CONNECTION_STRING = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexports.ATTR_DB_CONNECTION_STRING = 'db.connection_string';\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexports.ATTR_DB_NAME = 'db.name';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexports.ATTR_DB_USER = 'db.user';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"mysql\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * MySQL\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_VALUE_MYSQL = 'mysql';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.addSqlCommenterComment = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\n// NOTE: This function currently is returning false-positives\n// in cases where comment characters appear in string literals\n// (\"SELECT '-- not a comment';\" would return true, although has no comment)\nfunction hasValidSqlComment(query) {\n    const indexOpeningDashDashComment = query.indexOf('--');\n    if (indexOpeningDashDashComment >= 0) {\n        return true;\n    }\n    const indexOpeningSlashComment = query.indexOf('/*');\n    if (indexOpeningSlashComment < 0) {\n        return false;\n    }\n    const indexClosingSlashComment = query.indexOf('*/');\n    return indexOpeningDashDashComment < indexClosingSlashComment;\n}\n// sqlcommenter specification (https://google.github.io/sqlcommenter/spec/#value-serialization)\n// expects us to URL encode based on the RFC 3986 spec (https://en.wikipedia.org/wiki/Percent-encoding),\n// but encodeURIComponent does not handle some characters correctly (! ' ( ) *),\n// which means we need special handling for this\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent\nfunction fixedEncodeURIComponent(str) {\n    return encodeURIComponent(str).replace(/[!'()*]/g, c => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n}\nfunction addSqlCommenterComment(span, query) {\n    if (typeof query !== 'string' || query.length === 0) {\n        return query;\n    }\n    // As per sqlcommenter spec we shall not add a comment if there already is a comment\n    // in the query\n    if (hasValidSqlComment(query)) {\n        return query;\n    }\n    const propagator = new core_1.W3CTraceContextPropagator();\n    const headers = {};\n    propagator.inject(api_1.trace.setSpan(api_1.ROOT_CONTEXT, span), headers, api_1.defaultTextMapSetter);\n    // sqlcommenter spec requires keys in the comment to be sorted lexicographically\n    const sortedKeys = Object.keys(headers).sort();\n    if (sortedKeys.length === 0) {\n        return query;\n    }\n    const commentString = sortedKeys\n        .map(key => {\n        const encodedValue = fixedEncodeURIComponent(headers[key]);\n        return `${key}='${encodedValue}'`;\n    })\n        .join(',');\n    return `${query} /*${commentString}*/`;\n}\nexports.addSqlCommenterComment = addSqlCommenterComment;\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getConnectionPrototypeToInstrument = exports.once = exports.getSpanName = exports.getQueryText = exports.getConnectionAttributes = void 0;\nconst semconv_1 = require(\"./semconv\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\n/**\n * Get an Attributes map from a mysql connection config object\n *\n * @param config ConnectionConfig\n */\nfunction getConnectionAttributes(config, dbSemconvStability, netSemconvStability) {\n    const { host, port, database, user } = getConfig(config);\n    const attrs = {};\n    if (dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n        attrs[semconv_1.ATTR_DB_CONNECTION_STRING] = getJDBCString(host, port, database);\n        attrs[semconv_1.ATTR_DB_NAME] = database;\n        attrs[semconv_1.ATTR_DB_USER] = user;\n    }\n    if (dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n        attrs[semantic_conventions_1.ATTR_DB_NAMESPACE] = database;\n    }\n    const portNumber = parseInt(port, 10);\n    if (netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n        attrs[semconv_1.ATTR_NET_PEER_NAME] = host;\n        if (!isNaN(portNumber)) {\n            attrs[semconv_1.ATTR_NET_PEER_PORT] = portNumber;\n        }\n    }\n    if (netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n        attrs[semantic_conventions_1.ATTR_SERVER_ADDRESS] = host;\n        if (!isNaN(portNumber)) {\n            attrs[semantic_conventions_1.ATTR_SERVER_PORT] = portNumber;\n        }\n    }\n    return attrs;\n}\nexports.getConnectionAttributes = getConnectionAttributes;\nfunction getConfig(config) {\n    const { host, port, database, user } = (config && config.connectionConfig) || config || {};\n    return { host, port, database, user };\n}\nfunction getJDBCString(host, port, database) {\n    let jdbcString = `jdbc:mysql://${host || 'localhost'}`;\n    if (typeof port === 'number') {\n        jdbcString += `:${port}`;\n    }\n    if (typeof database === 'string') {\n        jdbcString += `/${database}`;\n    }\n    return jdbcString;\n}\n/**\n * Conjures up the value for the db.query.text attribute by formatting a SQL query.\n */\nfunction getQueryText(query, format, values, maskStatement = false, maskStatementHook = defaultMaskingHook) {\n    const [querySql, queryValues] = typeof query === 'string'\n        ? [query, values]\n        : [query.sql, hasValues(query) ? values || query.values : values];\n    try {\n        if (maskStatement) {\n            return maskStatementHook(querySql);\n        }\n        else if (format && queryValues) {\n            return format(querySql, queryValues);\n        }\n        else {\n            return querySql;\n        }\n    }\n    catch (e) {\n        return 'Could not determine the query due to an error in masking or formatting';\n    }\n}\nexports.getQueryText = getQueryText;\n/**\n * Replaces numeric values and quoted strings in the query with placeholders ('?').\n *\n * - `\\b\\d+\\b`: Matches whole numbers (integers) and replaces them with '?'.\n * - `([\"'])(?:(?=(\\\\?))\\2.)*?\\1`:\n *   - Matches quoted strings (both single `'` and double `\"` quotes).\n *   - Uses a lookahead `(?=(\\\\?))` to detect an optional backslash without consuming it immediately.\n *   - Captures the optional backslash `\\2` and ensures escaped quotes inside the string are handled correctly.\n *   - Ensures that only complete quoted strings are replaced with '?'.\n *\n * This prevents accidental replacement of escaped quotes within strings and ensures that the\n * query structure remains intact while masking sensitive data.\n */\nfunction defaultMaskingHook(query) {\n    return query\n        .replace(/\\b\\d+\\b/g, '?')\n        .replace(/([\"'])(?:(?=(\\\\?))\\2.)*?\\1/g, '?');\n}\nfunction hasValues(obj) {\n    return 'values' in obj;\n}\n/**\n * The span name SHOULD be set to a low cardinality value\n * representing the statement executed on the database.\n *\n * @returns SQL statement without variable arguments or SQL verb\n */\nfunction getSpanName(query) {\n    const rawQuery = typeof query === 'object' ? query.sql : query;\n    // Extract the SQL verb\n    const firstSpace = rawQuery?.indexOf(' ');\n    if (typeof firstSpace === 'number' && firstSpace !== -1) {\n        return rawQuery?.substring(0, firstSpace);\n    }\n    return rawQuery;\n}\nexports.getSpanName = getSpanName;\nconst once = (fn) => {\n    let called = false;\n    return (...args) => {\n        if (called)\n            return;\n        called = true;\n        return fn(...args);\n    };\n};\nexports.once = once;\nfunction getConnectionPrototypeToInstrument(connection) {\n    const connectionPrototype = connection.prototype;\n    const basePrototype = Object.getPrototypeOf(connectionPrototype);\n    // mysql2@3.11.5 included a refactoring, where most code was moved out of the `Connection` class and into a shared base\n    // so we need to instrument that instead, see https://github.com/sidorares/node-mysql2/pull/3081\n    // This checks if the functions we're instrumenting are there on the base - we cannot use the presence of a base\n    // prototype since EventEmitter is the base for mysql2@<=3.11.4\n    if (typeof basePrototype?.query === 'function' &&\n        typeof basePrototype?.execute === 'function') {\n        return basePrototype;\n    }\n    // otherwise instrument the connection directly.\n    return connectionPrototype;\n}\nexports.getConnectionPrototypeToInstrument = getConnectionPrototypeToInstrument;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.59.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-mysql2';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MySQL2Instrumentation = void 0;\nconst api = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semconv_1 = require(\"./semconv\");\nconst sql_common_1 = require(\"@opentelemetry/sql-common\");\nconst utils_1 = require(\"./utils\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst supportedVersions = ['>=1.4.2 <4'];\nclass MySQL2Instrumentation extends instrumentation_1.InstrumentationBase {\n    _netSemconvStability;\n    _dbSemconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._setSemconvStabilityFromEnv();\n    }\n    // Used for testing.\n    _setSemconvStabilityFromEnv() {\n        this._netSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n        this._dbSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    init() {\n        let format;\n        function setFormatFunction(moduleExports) {\n            if (!format && moduleExports.format) {\n                format = moduleExports.format;\n            }\n        }\n        const patch = (ConnectionPrototype) => {\n            if ((0, instrumentation_1.isWrapped)(ConnectionPrototype.query)) {\n                this._unwrap(ConnectionPrototype, 'query');\n            }\n            this._wrap(ConnectionPrototype, 'query', this._patchQuery(format, false));\n            if ((0, instrumentation_1.isWrapped)(ConnectionPrototype.execute)) {\n                this._unwrap(ConnectionPrototype, 'execute');\n            }\n            this._wrap(ConnectionPrototype, 'execute', this._patchQuery(format, true));\n        };\n        const unpatch = (ConnectionPrototype) => {\n            this._unwrap(ConnectionPrototype, 'query');\n            this._unwrap(ConnectionPrototype, 'execute');\n        };\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition('mysql2', supportedVersions, (moduleExports) => {\n                setFormatFunction(moduleExports);\n                return moduleExports;\n            }, () => { }, [\n                new instrumentation_1.InstrumentationNodeModuleFile('mysql2/promise.js', supportedVersions, (moduleExports) => {\n                    setFormatFunction(moduleExports);\n                    return moduleExports;\n                }, () => { }),\n                new instrumentation_1.InstrumentationNodeModuleFile('mysql2/lib/connection.js', supportedVersions, (moduleExports) => {\n                    const ConnectionPrototype = (0, utils_1.getConnectionPrototypeToInstrument)(moduleExports);\n                    patch(ConnectionPrototype);\n                    return moduleExports;\n                }, (moduleExports) => {\n                    if (moduleExports === undefined)\n                        return;\n                    const ConnectionPrototype = (0, utils_1.getConnectionPrototypeToInstrument)(moduleExports);\n                    unpatch(ConnectionPrototype);\n                }),\n            ]),\n        ];\n    }\n    _patchQuery(format, isPrepared) {\n        return (originalQuery) => {\n            const thisPlugin = this;\n            return function query(query, _valuesOrCallback, _callback) {\n                let values;\n                if (Array.isArray(_valuesOrCallback)) {\n                    values = _valuesOrCallback;\n                }\n                else if (arguments[2]) {\n                    values = [_valuesOrCallback];\n                }\n                const { maskStatement, maskStatementHook, responseHook } = thisPlugin.getConfig();\n                const attributes = (0, utils_1.getConnectionAttributes)(this.config, thisPlugin._dbSemconvStability, thisPlugin._netSemconvStability);\n                const dbQueryText = (0, utils_1.getQueryText)(query, format, values, maskStatement, maskStatementHook);\n                if (thisPlugin._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_DB_SYSTEM] = semconv_1.DB_SYSTEM_VALUE_MYSQL;\n                    attributes[semconv_1.ATTR_DB_STATEMENT] = dbQueryText;\n                }\n                if (thisPlugin._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    attributes[semantic_conventions_1.ATTR_DB_SYSTEM_NAME] = semantic_conventions_1.DB_SYSTEM_NAME_VALUE_MYSQL;\n                    attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = dbQueryText;\n                }\n                const span = thisPlugin.tracer.startSpan((0, utils_1.getSpanName)(query), {\n                    kind: api.SpanKind.CLIENT,\n                    attributes,\n                });\n                if (!isPrepared &&\n                    thisPlugin.getConfig().addSqlCommenterCommentToQueries) {\n                    arguments[0] = query =\n                        typeof query === 'string'\n                            ? (0, sql_common_1.addSqlCommenterComment)(span, query)\n                            : Object.assign(query, {\n                                sql: (0, sql_common_1.addSqlCommenterComment)(span, query.sql),\n                            });\n                }\n                const endSpan = (0, utils_1.once)((err, results) => {\n                    if (err) {\n                        span.setStatus({\n                            code: api.SpanStatusCode.ERROR,\n                            message: err.message,\n                        });\n                    }\n                    else {\n                        if (typeof responseHook === 'function') {\n                            (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                                responseHook(span, {\n                                    queryResults: results,\n                                });\n                            }, err => {\n                                if (err) {\n                                    thisPlugin._diag.warn('Failed executing responseHook', err);\n                                }\n                            }, true);\n                        }\n                    }\n                    span.end();\n                });\n                if (arguments.length === 1) {\n                    if (typeof query.onResult === 'function') {\n                        thisPlugin._wrap(query, 'onResult', thisPlugin._patchCallbackQuery(endSpan));\n                    }\n                    const streamableQuery = originalQuery.apply(this, arguments);\n                    // `end` in mysql behaves similarly to `result` in mysql2.\n                    streamableQuery\n                        .once('error', err => {\n                        endSpan(err);\n                    })\n                        .once('result', results => {\n                        endSpan(undefined, results);\n                    });\n                    return streamableQuery;\n                }\n                if (typeof arguments[1] === 'function') {\n                    thisPlugin._wrap(arguments, 1, thisPlugin._patchCallbackQuery(endSpan));\n                }\n                else if (typeof arguments[2] === 'function') {\n                    thisPlugin._wrap(arguments, 2, thisPlugin._patchCallbackQuery(endSpan));\n                }\n                return originalQuery.apply(this, arguments);\n            };\n        };\n    }\n    _patchCallbackQuery(endSpan) {\n        return (originalCallback) => {\n            return function (err, results, fields) {\n                endSpan(err, results);\n                return originalCallback(...arguments);\n            };\n        };\n    }\n}\nexports.MySQL2Instrumentation = MySQL2Instrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MySQL2Instrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"MySQL2Instrumentation\", { enumerable: true, get: function () { return instrumentation_1.MySQL2Instrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DB_SYSTEM_VALUE_REDIS = exports.DB_SYSTEM_NAME_VALUE_REDIS = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_CONNECTION_STRING = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexports.ATTR_DB_CONNECTION_STRING = 'db.connection_string';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [Redis](https://redis.io/)\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_NAME_VALUE_REDIS = 'redis';\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * Redis\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_VALUE_REDIS = 'redis';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.endSpan = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst endSpan = (span, err) => {\n    if (err) {\n        span.recordException(err);\n        span.setStatus({\n            code: api_1.SpanStatusCode.ERROR,\n            message: err.message,\n        });\n    }\n    span.end();\n};\nexports.endSpan = endSpan;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultDbStatementSerializer = void 0;\n/**\n * List of regexes and the number of arguments that should be serialized for matching commands.\n * For example, HSET should serialize which key and field it's operating on, but not its value.\n * Setting the subset to -1 will serialize all arguments.\n * Commands without a match will have their first argument serialized.\n *\n * Refer to https://redis.io/commands/ for the full list.\n */\nconst serializationSubsets = [\n    {\n        regex: /^ECHO/i,\n        args: 0,\n    },\n    {\n        regex: /^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,\n        args: 1,\n    },\n    {\n        regex: /^(HSET|HMSET|LSET|LINSERT)/i,\n        args: 2,\n    },\n    {\n        regex: /^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,\n        args: -1,\n    },\n];\n/**\n * Given the redis command name and arguments, return a combination of the\n * command name + the allowed arguments according to `serializationSubsets`.\n * @param cmdName The redis command name\n * @param cmdArgs The redis command arguments\n * @returns a combination of the command name + args according to `serializationSubsets`.\n */\nconst defaultDbStatementSerializer = (cmdName, cmdArgs) => {\n    if (Array.isArray(cmdArgs) && cmdArgs.length) {\n        const nArgsToSerialize = serializationSubsets.find(({ regex }) => {\n            return regex.test(cmdName);\n        })?.args ?? 0;\n        const argsToSerialize = nArgsToSerialize >= 0 ? cmdArgs.slice(0, nArgsToSerialize) : cmdArgs;\n        if (cmdArgs.length > argsToSerialize.length) {\n            argsToSerialize.push(`[${cmdArgs.length - nArgsToSerialize} other arguments]`);\n        }\n        return `${cmdName} ${argsToSerialize.join(' ')}`;\n    }\n    return cmdName;\n};\nexports.defaultDbStatementSerializer = defaultDbStatementSerializer;\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.61.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-ioredis';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IORedisInstrumentation = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst instrumentation_2 = require(\"@opentelemetry/instrumentation\");\nconst utils_1 = require(\"./utils\");\nconst redis_common_1 = require(\"@opentelemetry/redis-common\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst DEFAULT_CONFIG = {\n    requireParentSpan: true,\n};\nclass IORedisInstrumentation extends instrumentation_1.InstrumentationBase {\n    _netSemconvStability;\n    _dbSemconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, { ...DEFAULT_CONFIG, ...config });\n        this._setSemconvStabilityFromEnv();\n    }\n    // Used for testing.\n    _setSemconvStabilityFromEnv() {\n        this._netSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n        this._dbSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    setConfig(config = {}) {\n        super.setConfig({ ...DEFAULT_CONFIG, ...config });\n    }\n    init() {\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition('ioredis', ['>=2.0.0 <6'], (module, moduleVersion) => {\n                const moduleExports = module[Symbol.toStringTag] === 'Module'\n                    ? module.default // ESM\n                    : module; // CommonJS\n                if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.sendCommand)) {\n                    this._unwrap(moduleExports.prototype, 'sendCommand');\n                }\n                this._wrap(moduleExports.prototype, 'sendCommand', this._patchSendCommand(moduleVersion));\n                if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.connect)) {\n                    this._unwrap(moduleExports.prototype, 'connect');\n                }\n                this._wrap(moduleExports.prototype, 'connect', this._patchConnection());\n                return module;\n            }, module => {\n                if (module === undefined)\n                    return;\n                const moduleExports = module[Symbol.toStringTag] === 'Module'\n                    ? module.default // ESM\n                    : module; // CommonJS\n                this._unwrap(moduleExports.prototype, 'sendCommand');\n                this._unwrap(moduleExports.prototype, 'connect');\n            }),\n        ];\n    }\n    /**\n     * Patch send command internal to trace requests\n     */\n    _patchSendCommand(moduleVersion) {\n        return (original) => {\n            return this._traceSendCommand(original, moduleVersion);\n        };\n    }\n    _patchConnection() {\n        return (original) => {\n            return this._traceConnection(original);\n        };\n    }\n    _traceSendCommand(original, moduleVersion) {\n        const instrumentation = this;\n        return function (cmd) {\n            if (arguments.length < 1 || typeof cmd !== 'object') {\n                return original.apply(this, arguments);\n            }\n            const config = instrumentation.getConfig();\n            const dbStatementSerializer = config.dbStatementSerializer || redis_common_1.defaultDbStatementSerializer;\n            const hasNoParentSpan = api_1.trace.getSpan(api_1.context.active()) === undefined;\n            if (config.requireParentSpan === true && hasNoParentSpan) {\n                return original.apply(this, arguments);\n            }\n            const attributes = {};\n            const { host, port } = this.options;\n            const dbQueryText = dbStatementSerializer(cmd.name, cmd.args);\n            if (instrumentation._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                attributes[semconv_1.ATTR_DB_SYSTEM] = semconv_1.DB_SYSTEM_VALUE_REDIS;\n                attributes[semconv_1.ATTR_DB_STATEMENT] = dbQueryText;\n                attributes[semconv_1.ATTR_DB_CONNECTION_STRING] = `redis://${host}:${port}`;\n            }\n            if (instrumentation._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                attributes[semantic_conventions_1.ATTR_DB_SYSTEM_NAME] = semconv_1.DB_SYSTEM_NAME_VALUE_REDIS;\n                attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = dbQueryText;\n            }\n            if (instrumentation._netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                attributes[semconv_1.ATTR_NET_PEER_NAME] = host;\n                attributes[semconv_1.ATTR_NET_PEER_PORT] = port;\n            }\n            if (instrumentation._netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                attributes[semantic_conventions_1.ATTR_SERVER_ADDRESS] = host;\n                attributes[semantic_conventions_1.ATTR_SERVER_PORT] = port;\n            }\n            const span = instrumentation.tracer.startSpan(cmd.name, {\n                kind: api_1.SpanKind.CLIENT,\n                attributes,\n            });\n            const { requestHook } = config;\n            if (requestHook) {\n                (0, instrumentation_2.safeExecuteInTheMiddle)(() => requestHook(span, {\n                    moduleVersion,\n                    cmdName: cmd.name,\n                    cmdArgs: cmd.args,\n                }), e => {\n                    if (e) {\n                        api_1.diag.error('ioredis instrumentation: request hook failed', e);\n                    }\n                }, true);\n            }\n            try {\n                const result = original.apply(this, arguments);\n                const origResolve = cmd.resolve;\n                /* eslint-disable @typescript-eslint/no-explicit-any */\n                cmd.resolve = function (result) {\n                    (0, instrumentation_2.safeExecuteInTheMiddle)(() => config.responseHook?.(span, cmd.name, cmd.args, result), e => {\n                        if (e) {\n                            api_1.diag.error('ioredis instrumentation: response hook failed', e);\n                        }\n                    }, true);\n                    (0, utils_1.endSpan)(span, null);\n                    origResolve(result);\n                };\n                const origReject = cmd.reject;\n                cmd.reject = function (err) {\n                    (0, utils_1.endSpan)(span, err);\n                    origReject(err);\n                };\n                return result;\n            }\n            catch (error) {\n                (0, utils_1.endSpan)(span, error);\n                throw error;\n            }\n        };\n    }\n    _traceConnection(original) {\n        const instrumentation = this;\n        return function () {\n            const hasNoParentSpan = api_1.trace.getSpan(api_1.context.active()) === undefined;\n            if (instrumentation.getConfig().requireParentSpan === true &&\n                hasNoParentSpan) {\n                return original.apply(this, arguments);\n            }\n            const attributes = {};\n            const { host, port } = this.options;\n            if (instrumentation._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                attributes[semconv_1.ATTR_DB_SYSTEM] = semconv_1.DB_SYSTEM_VALUE_REDIS;\n                attributes[semconv_1.ATTR_DB_STATEMENT] = 'connect';\n                attributes[semconv_1.ATTR_DB_CONNECTION_STRING] = `redis://${host}:${port}`;\n            }\n            if (instrumentation._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                attributes[semantic_conventions_1.ATTR_DB_SYSTEM_NAME] = semconv_1.DB_SYSTEM_NAME_VALUE_REDIS;\n                attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = 'connect';\n            }\n            if (instrumentation._netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                attributes[semconv_1.ATTR_NET_PEER_NAME] = host;\n                attributes[semconv_1.ATTR_NET_PEER_PORT] = port;\n            }\n            if (instrumentation._netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                attributes[semantic_conventions_1.ATTR_SERVER_ADDRESS] = host;\n                attributes[semantic_conventions_1.ATTR_SERVER_PORT] = port;\n            }\n            const span = instrumentation.tracer.startSpan('connect', {\n                kind: api_1.SpanKind.CLIENT,\n                attributes,\n            });\n            try {\n                const client = original.apply(this, arguments);\n                (0, utils_1.endSpan)(span, null);\n                return client;\n            }\n            catch (error) {\n                (0, utils_1.endSpan)(span, error);\n                throw error;\n            }\n        };\n    }\n}\nexports.IORedisInstrumentation = IORedisInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IORedisInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"IORedisInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.IORedisInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.61.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-redis';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTracedCreateStreamTrace = exports.getTracedCreateClient = exports.endSpan = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst endSpan = (span, err) => {\n    if (err) {\n        span.setStatus({\n            code: api_1.SpanStatusCode.ERROR,\n            message: err.message,\n        });\n    }\n    span.end();\n};\nexports.endSpan = endSpan;\nconst getTracedCreateClient = (original) => {\n    return function createClientTrace() {\n        const client = original.apply(this, arguments);\n        return api_1.context.bind(api_1.context.active(), client);\n    };\n};\nexports.getTracedCreateClient = getTracedCreateClient;\nconst getTracedCreateStreamTrace = (original) => {\n    return function create_stream_trace() {\n        if (!Object.prototype.hasOwnProperty.call(this, 'stream')) {\n            Object.defineProperty(this, 'stream', {\n                get() {\n                    return this._patched_redis_stream;\n                },\n                set(val) {\n                    api_1.context.bind(api_1.context.active(), val);\n                    this._patched_redis_stream = val;\n                },\n            });\n        }\n        return original.apply(this, arguments);\n    };\n};\nexports.getTracedCreateStreamTrace = getTracedCreateStreamTrace;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DB_SYSTEM_VALUE_REDIS = exports.DB_SYSTEM_NAME_VALUE_REDIS = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_CONNECTION_STRING = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexports.ATTR_DB_CONNECTION_STRING = 'db.connection_string';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [Redis](https://redis.io/)\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_NAME_VALUE_REDIS = 'redis';\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * Redis\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_VALUE_REDIS = 'redis';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RedisInstrumentationV2_V3 = void 0;\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst utils_1 = require(\"./utils\");\n/** @knipignore */\nconst version_1 = require(\"../version\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"../semconv\");\nconst redis_common_1 = require(\"@opentelemetry/redis-common\");\nclass RedisInstrumentationV2_V3 extends instrumentation_1.InstrumentationBase {\n    static COMPONENT = 'redis';\n    _semconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._semconvStability = config.semconvStability\n            ? config.semconvStability\n            : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    setConfig(config = {}) {\n        super.setConfig(config);\n        this._semconvStability = config.semconvStability\n            ? config.semconvStability\n            : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    init() {\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition('redis', ['>=2.6.0 <4'], moduleExports => {\n                if ((0, instrumentation_1.isWrapped)(moduleExports.RedisClient.prototype['internal_send_command'])) {\n                    this._unwrap(moduleExports.RedisClient.prototype, 'internal_send_command');\n                }\n                this._wrap(moduleExports.RedisClient.prototype, 'internal_send_command', this._getPatchInternalSendCommand());\n                if ((0, instrumentation_1.isWrapped)(moduleExports.RedisClient.prototype['create_stream'])) {\n                    this._unwrap(moduleExports.RedisClient.prototype, 'create_stream');\n                }\n                this._wrap(moduleExports.RedisClient.prototype, 'create_stream', this._getPatchCreateStream());\n                if ((0, instrumentation_1.isWrapped)(moduleExports.createClient)) {\n                    this._unwrap(moduleExports, 'createClient');\n                }\n                this._wrap(moduleExports, 'createClient', this._getPatchCreateClient());\n                return moduleExports;\n            }, moduleExports => {\n                if (moduleExports === undefined)\n                    return;\n                this._unwrap(moduleExports.RedisClient.prototype, 'internal_send_command');\n                this._unwrap(moduleExports.RedisClient.prototype, 'create_stream');\n                this._unwrap(moduleExports, 'createClient');\n            }),\n        ];\n    }\n    /**\n     * Patch internal_send_command(...) to trace requests\n     */\n    _getPatchInternalSendCommand() {\n        const instrumentation = this;\n        return function internal_send_command(original) {\n            return function internal_send_command_trace(cmd) {\n                // Versions of redis (2.4+) use a single options object\n                // instead of named arguments\n                if (arguments.length !== 1 || typeof cmd !== 'object') {\n                    // We don't know how to trace this call, so don't start/stop a span\n                    return original.apply(this, arguments);\n                }\n                const config = instrumentation.getConfig();\n                const hasNoParentSpan = api_1.trace.getSpan(api_1.context.active()) === undefined;\n                if (config.requireParentSpan === true && hasNoParentSpan) {\n                    return original.apply(this, arguments);\n                }\n                const dbStatementSerializer = config?.dbStatementSerializer || redis_common_1.defaultDbStatementSerializer;\n                const attributes = {};\n                if (instrumentation._semconvStability & instrumentation_1.SemconvStability.OLD) {\n                    Object.assign(attributes, {\n                        [semconv_1.ATTR_DB_SYSTEM]: semconv_1.DB_SYSTEM_VALUE_REDIS,\n                        [semconv_1.ATTR_DB_STATEMENT]: dbStatementSerializer(cmd.command, cmd.args),\n                    });\n                }\n                if (instrumentation._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    Object.assign(attributes, {\n                        [semantic_conventions_1.ATTR_DB_SYSTEM_NAME]: semconv_1.DB_SYSTEM_NAME_VALUE_REDIS,\n                        [semantic_conventions_1.ATTR_DB_OPERATION_NAME]: cmd.command,\n                        [semantic_conventions_1.ATTR_DB_QUERY_TEXT]: dbStatementSerializer(cmd.command, cmd.args),\n                    });\n                }\n                const span = instrumentation.tracer.startSpan(`${RedisInstrumentationV2_V3.COMPONENT}-${cmd.command}`, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes,\n                });\n                // Set attributes for not explicitly typed RedisPluginClientTypes\n                if (this.connection_options) {\n                    const connectionAttributes = {};\n                    if (instrumentation._semconvStability & instrumentation_1.SemconvStability.OLD) {\n                        Object.assign(connectionAttributes, {\n                            [semconv_1.ATTR_NET_PEER_NAME]: this.connection_options.host,\n                            [semconv_1.ATTR_NET_PEER_PORT]: this.connection_options.port,\n                        });\n                    }\n                    if (instrumentation._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n                        Object.assign(connectionAttributes, {\n                            [semantic_conventions_1.ATTR_SERVER_ADDRESS]: this.connection_options.host,\n                            [semantic_conventions_1.ATTR_SERVER_PORT]: this.connection_options.port,\n                        });\n                    }\n                    span.setAttributes(connectionAttributes);\n                }\n                if (this.address &&\n                    instrumentation._semconvStability & instrumentation_1.SemconvStability.OLD) {\n                    span.setAttribute(semconv_1.ATTR_DB_CONNECTION_STRING, `redis://${this.address}`);\n                }\n                const originalCallback = arguments[0].callback;\n                if (originalCallback) {\n                    const originalContext = api_1.context.active();\n                    arguments[0].callback = function callback(err, reply) {\n                        if (config?.responseHook) {\n                            const responseHook = config.responseHook;\n                            (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                                responseHook(span, cmd.command, cmd.args, reply);\n                            }, err => {\n                                if (err) {\n                                    instrumentation._diag.error('Error executing responseHook', err);\n                                }\n                            }, true);\n                        }\n                        (0, utils_1.endSpan)(span, err);\n                        return api_1.context.with(originalContext, originalCallback, this, ...arguments);\n                    };\n                }\n                try {\n                    // Span will be ended in callback\n                    return original.apply(this, arguments);\n                }\n                catch (rethrow) {\n                    (0, utils_1.endSpan)(span, rethrow);\n                    throw rethrow; // rethrow after ending span\n                }\n            };\n        };\n    }\n    _getPatchCreateClient() {\n        return function createClient(original) {\n            return (0, utils_1.getTracedCreateClient)(original);\n        };\n    }\n    _getPatchCreateStream() {\n        return function createReadStream(original) {\n            return (0, utils_1.getTracedCreateStreamTrace)(original);\n        };\n    }\n}\nexports.RedisInstrumentationV2_V3 = RedisInstrumentationV2_V3;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getClientAttributes = void 0;\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"../semconv\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nfunction getClientAttributes(diag, options, semconvStability) {\n    const attributes = {};\n    if (semconvStability & instrumentation_1.SemconvStability.OLD) {\n        Object.assign(attributes, {\n            [semconv_1.ATTR_DB_SYSTEM]: semconv_1.DB_SYSTEM_VALUE_REDIS,\n            [semconv_1.ATTR_NET_PEER_NAME]: options?.socket?.host,\n            [semconv_1.ATTR_NET_PEER_PORT]: options?.socket?.port,\n            [semconv_1.ATTR_DB_CONNECTION_STRING]: removeCredentialsFromDBConnectionStringAttribute(diag, options?.url),\n        });\n    }\n    if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n        Object.assign(attributes, {\n            [semantic_conventions_1.ATTR_DB_SYSTEM_NAME]: semconv_1.DB_SYSTEM_NAME_VALUE_REDIS,\n            [semantic_conventions_1.ATTR_SERVER_ADDRESS]: options?.socket?.host,\n            [semantic_conventions_1.ATTR_SERVER_PORT]: options?.socket?.port,\n        });\n    }\n    return attributes;\n}\nexports.getClientAttributes = getClientAttributes;\n/**\n * removeCredentialsFromDBConnectionStringAttribute removes basic auth from url and user_pwd from query string\n *\n * Examples:\n *   redis://user:pass@localhost:6379/mydb => redis://localhost:6379/mydb\n *   redis://localhost:6379?db=mydb&user_pwd=pass => redis://localhost:6379?db=mydb\n */\nfunction removeCredentialsFromDBConnectionStringAttribute(diag, url) {\n    if (typeof url !== 'string' || !url) {\n        return;\n    }\n    try {\n        const u = new URL(url);\n        u.searchParams.delete('user_pwd');\n        u.username = '';\n        u.password = '';\n        return u.href;\n    }\n    catch (err) {\n        diag.error('failed to sanitize redis connection url', err);\n    }\n    return;\n}\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RedisInstrumentationV4_V5 = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst utils_1 = require(\"./utils\");\nconst redis_common_1 = require(\"@opentelemetry/redis-common\");\n/** @knipignore */\nconst version_1 = require(\"../version\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"../semconv\");\nconst OTEL_OPEN_SPANS = Symbol('opentelemetry.instrumentation.redis.open_spans');\nconst MULTI_COMMAND_OPTIONS = Symbol('opentelemetry.instrumentation.redis.multi_command_options');\nclass RedisInstrumentationV4_V5 extends instrumentation_1.InstrumentationBase {\n    static COMPONENT = 'redis';\n    _semconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._semconvStability = config.semconvStability\n            ? config.semconvStability\n            : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    setConfig(config = {}) {\n        super.setConfig(config);\n        this._semconvStability = config.semconvStability\n            ? config.semconvStability\n            : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    init() {\n        // @node-redis/client is a new package introduced and consumed by 'redis 4.0.x'\n        // on redis@4.1.0 it was changed to @redis/client.\n        // we will instrument both packages\n        return [\n            this._getInstrumentationNodeModuleDefinition('@redis/client'),\n            this._getInstrumentationNodeModuleDefinition('@node-redis/client'),\n        ];\n    }\n    _getInstrumentationNodeModuleDefinition(basePackageName) {\n        const commanderModuleFile = new instrumentation_1.InstrumentationNodeModuleFile(`${basePackageName}/dist/lib/commander.js`, ['^1.0.0'], (moduleExports, moduleVersion) => {\n            const transformCommandArguments = moduleExports.transformCommandArguments;\n            if (!transformCommandArguments) {\n                this._diag.error('internal instrumentation error, missing transformCommandArguments function');\n                return moduleExports;\n            }\n            // function name and signature changed in redis 4.1.0 from 'extendWithCommands' to 'attachCommands'\n            // the matching internal package names starts with 1.0.x (for redis 4.0.x)\n            const functionToPatch = moduleVersion?.startsWith('1.0.')\n                ? 'extendWithCommands'\n                : 'attachCommands';\n            // this is the function that extend a redis client with a list of commands.\n            // the function patches the commandExecutor to record a span\n            if ((0, instrumentation_1.isWrapped)(moduleExports?.[functionToPatch])) {\n                this._unwrap(moduleExports, functionToPatch);\n            }\n            this._wrap(moduleExports, functionToPatch, this._getPatchExtendWithCommands(transformCommandArguments));\n            return moduleExports;\n        }, (moduleExports) => {\n            if ((0, instrumentation_1.isWrapped)(moduleExports?.extendWithCommands)) {\n                this._unwrap(moduleExports, 'extendWithCommands');\n            }\n            if ((0, instrumentation_1.isWrapped)(moduleExports?.attachCommands)) {\n                this._unwrap(moduleExports, 'attachCommands');\n            }\n        });\n        const multiCommanderModule = new instrumentation_1.InstrumentationNodeModuleFile(`${basePackageName}/dist/lib/client/multi-command.js`, ['^1.0.0', '^5.0.0'], (moduleExports) => {\n            const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n            if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.exec)) {\n                this._unwrap(redisClientMultiCommandPrototype, 'exec');\n            }\n            this._wrap(redisClientMultiCommandPrototype, 'exec', this._getPatchMultiCommandsExec(false));\n            if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.execAsPipeline)) {\n                this._unwrap(redisClientMultiCommandPrototype, 'execAsPipeline');\n            }\n            this._wrap(redisClientMultiCommandPrototype, 'execAsPipeline', this._getPatchMultiCommandsExec(true));\n            if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.addCommand)) {\n                this._unwrap(redisClientMultiCommandPrototype, 'addCommand');\n            }\n            this._wrap(redisClientMultiCommandPrototype, 'addCommand', this._getPatchMultiCommandsAddCommand());\n            return moduleExports;\n        }, (moduleExports) => {\n            const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n            if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.exec)) {\n                this._unwrap(redisClientMultiCommandPrototype, 'exec');\n            }\n            if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.addCommand)) {\n                this._unwrap(redisClientMultiCommandPrototype, 'addCommand');\n            }\n        });\n        const clientIndexModule = new instrumentation_1.InstrumentationNodeModuleFile(`${basePackageName}/dist/lib/client/index.js`, ['^1.0.0', '^5.0.0'], (moduleExports) => {\n            const redisClientPrototype = moduleExports?.default?.prototype;\n            // In some @redis/client versions 'multi' is a method. In later\n            // versions, as of https://github.com/redis/node-redis/pull/2324,\n            // 'MULTI' is a method and 'multi' is a property defined in the\n            // constructor that points to 'MULTI', and therefore it will not\n            // be defined on the prototype.\n            if (redisClientPrototype?.multi) {\n                if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.multi)) {\n                    this._unwrap(redisClientPrototype, 'multi');\n                }\n                this._wrap(redisClientPrototype, 'multi', this._getPatchRedisClientMulti());\n            }\n            if (redisClientPrototype?.MULTI) {\n                if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.MULTI)) {\n                    this._unwrap(redisClientPrototype, 'MULTI');\n                }\n                this._wrap(redisClientPrototype, 'MULTI', this._getPatchRedisClientMulti());\n            }\n            if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.sendCommand)) {\n                this._unwrap(redisClientPrototype, 'sendCommand');\n            }\n            this._wrap(redisClientPrototype, 'sendCommand', this._getPatchRedisClientSendCommand());\n            this._wrap(redisClientPrototype, 'connect', this._getPatchedClientConnect());\n            return moduleExports;\n        }, (moduleExports) => {\n            const redisClientPrototype = moduleExports?.default?.prototype;\n            if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.multi)) {\n                this._unwrap(redisClientPrototype, 'multi');\n            }\n            if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.MULTI)) {\n                this._unwrap(redisClientPrototype, 'MULTI');\n            }\n            if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.sendCommand)) {\n                this._unwrap(redisClientPrototype, 'sendCommand');\n            }\n        });\n        return new instrumentation_1.InstrumentationNodeModuleDefinition(basePackageName, ['^1.0.0', '^5.0.0'], (moduleExports) => {\n            return moduleExports;\n        }, () => { }, [commanderModuleFile, multiCommanderModule, clientIndexModule]);\n    }\n    // serves both for redis 4.0.x where function name is extendWithCommands\n    // and redis ^4.1.0 where function name is attachCommands\n    _getPatchExtendWithCommands(transformCommandArguments) {\n        const plugin = this;\n        return function extendWithCommandsPatchWrapper(original) {\n            return function extendWithCommandsPatch(config) {\n                if (config?.BaseClass?.name !== 'RedisClient') {\n                    return original.apply(this, arguments);\n                }\n                const origExecutor = config.executor;\n                config.executor = function (command, args) {\n                    const redisCommandArguments = transformCommandArguments(command, args).args;\n                    return plugin._traceClientCommand(origExecutor, this, arguments, redisCommandArguments);\n                };\n                return original.apply(this, arguments);\n            };\n        };\n    }\n    _getPatchMultiCommandsExec(isPipeline) {\n        const plugin = this;\n        return function execPatchWrapper(original) {\n            return function execPatch() {\n                const execRes = original.apply(this, arguments);\n                if (typeof execRes?.then !== 'function') {\n                    plugin._diag.error('non-promise result when patching exec/execAsPipeline');\n                    return execRes;\n                }\n                return execRes\n                    .then((redisRes) => {\n                    const openSpans = this[OTEL_OPEN_SPANS];\n                    plugin._endSpansWithRedisReplies(openSpans, redisRes, isPipeline);\n                    return redisRes;\n                })\n                    .catch((err) => {\n                    const openSpans = this[OTEL_OPEN_SPANS];\n                    if (!openSpans) {\n                        plugin._diag.error('cannot find open spans to end for multi/pipeline');\n                    }\n                    else {\n                        const replies = err.constructor.name === 'MultiErrorReply'\n                            ? err.replies\n                            : new Array(openSpans.length).fill(err);\n                        plugin._endSpansWithRedisReplies(openSpans, replies, isPipeline);\n                    }\n                    return Promise.reject(err);\n                });\n            };\n        };\n    }\n    _getPatchMultiCommandsAddCommand() {\n        const plugin = this;\n        return function addCommandWrapper(original) {\n            return function addCommandPatch(args) {\n                return plugin._traceClientCommand(original, this, arguments, args);\n            };\n        };\n    }\n    _getPatchRedisClientMulti() {\n        return function multiPatchWrapper(original) {\n            return function multiPatch() {\n                const multiRes = original.apply(this, arguments);\n                multiRes[MULTI_COMMAND_OPTIONS] = this.options;\n                return multiRes;\n            };\n        };\n    }\n    _getPatchRedisClientSendCommand() {\n        const plugin = this;\n        return function sendCommandWrapper(original) {\n            return function sendCommandPatch(args) {\n                return plugin._traceClientCommand(original, this, arguments, args);\n            };\n        };\n    }\n    _getPatchedClientConnect() {\n        const plugin = this;\n        return function connectWrapper(original) {\n            return function patchedConnect() {\n                const options = this.options;\n                const attributes = (0, utils_1.getClientAttributes)(plugin._diag, options, plugin._semconvStability);\n                const span = plugin.tracer.startSpan(`${RedisInstrumentationV4_V5.COMPONENT}-connect`, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes,\n                });\n                const res = api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n                    return original.apply(this);\n                });\n                return res\n                    .then((result) => {\n                    span.end();\n                    return result;\n                })\n                    .catch((error) => {\n                    span.recordException(error);\n                    span.setStatus({\n                        code: api_1.SpanStatusCode.ERROR,\n                        message: error.message,\n                    });\n                    span.end();\n                    return Promise.reject(error);\n                });\n            };\n        };\n    }\n    _traceClientCommand(origFunction, origThis, origArguments, redisCommandArguments) {\n        const hasNoParentSpan = api_1.trace.getSpan(api_1.context.active()) === undefined;\n        if (hasNoParentSpan && this.getConfig().requireParentSpan) {\n            return origFunction.apply(origThis, origArguments);\n        }\n        const clientOptions = origThis.options || origThis[MULTI_COMMAND_OPTIONS];\n        const commandName = redisCommandArguments[0]; // types also allows it to be a Buffer, but in practice it only string\n        const commandArgs = redisCommandArguments.slice(1);\n        const dbStatementSerializer = this.getConfig().dbStatementSerializer || redis_common_1.defaultDbStatementSerializer;\n        const attributes = (0, utils_1.getClientAttributes)(this._diag, clientOptions, this._semconvStability);\n        if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n            attributes[semantic_conventions_1.ATTR_DB_OPERATION_NAME] = commandName;\n        }\n        try {\n            const dbStatement = dbStatementSerializer(commandName, commandArgs);\n            if (dbStatement != null) {\n                if (this._semconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_DB_STATEMENT] = dbStatement;\n                }\n                if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = dbStatement;\n                }\n            }\n        }\n        catch (e) {\n            this._diag.error('dbStatementSerializer throw an exception', e, {\n                commandName,\n            });\n        }\n        const span = this.tracer.startSpan(`${RedisInstrumentationV4_V5.COMPONENT}-${commandName}`, {\n            kind: api_1.SpanKind.CLIENT,\n            attributes,\n        });\n        const res = api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n            return origFunction.apply(origThis, origArguments);\n        });\n        if (typeof res?.then === 'function') {\n            res.then((redisRes) => {\n                this._endSpanWithResponse(span, commandName, commandArgs, redisRes, undefined);\n            }, (err) => {\n                this._endSpanWithResponse(span, commandName, commandArgs, null, err);\n            });\n        }\n        else {\n            const redisClientMultiCommand = res;\n            redisClientMultiCommand[OTEL_OPEN_SPANS] =\n                redisClientMultiCommand[OTEL_OPEN_SPANS] || [];\n            redisClientMultiCommand[OTEL_OPEN_SPANS].push({\n                span,\n                commandName,\n                commandArgs,\n            });\n        }\n        return res;\n    }\n    _endSpansWithRedisReplies(openSpans, replies, isPipeline = false) {\n        if (!openSpans) {\n            return this._diag.error('cannot find open spans to end for redis multi/pipeline');\n        }\n        if (replies.length !== openSpans.length) {\n            return this._diag.error('number of multi command spans does not match response from redis');\n        }\n        // Determine a single operation name for the batch of commands.\n        // If all commands are identical, include the command name (e.g., \"MULTI SET\").\n        // Otherwise, use a generic \"MULTI\" or \"PIPELINE\" label for the span.\n        const allCommands = openSpans.map(s => s.commandName);\n        const allSameCommand = allCommands.every(cmd => cmd === allCommands[0]);\n        const operationName = allSameCommand\n            ? (isPipeline ? 'PIPELINE ' : 'MULTI ') + allCommands[0]\n            : isPipeline\n                ? 'PIPELINE'\n                : 'MULTI';\n        for (let i = 0; i < openSpans.length; i++) {\n            const { span, commandArgs } = openSpans[i];\n            const currCommandRes = replies[i];\n            const [res, err] = currCommandRes instanceof Error\n                ? [null, currCommandRes]\n                : [currCommandRes, undefined];\n            if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n                span.setAttribute(semantic_conventions_1.ATTR_DB_OPERATION_NAME, operationName);\n            }\n            this._endSpanWithResponse(span, allCommands[i], commandArgs, res, err);\n        }\n    }\n    _endSpanWithResponse(span, commandName, commandArgs, response, error) {\n        const { responseHook } = this.getConfig();\n        if (!error && responseHook) {\n            try {\n                responseHook(span, commandName, commandArgs, response);\n            }\n            catch (err) {\n                this._diag.error('responseHook throw an exception', err);\n            }\n        }\n        if (error) {\n            span.recordException(error);\n            span.setStatus({ code: api_1.SpanStatusCode.ERROR, message: error?.message });\n        }\n        span.end();\n    }\n}\nexports.RedisInstrumentationV4_V5 = RedisInstrumentationV4_V5;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RedisInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst instrumentation_2 = require(\"./v2-v3/instrumentation\");\nconst instrumentation_3 = require(\"./v4-v5/instrumentation\");\nconst DEFAULT_CONFIG = {\n    requireParentSpan: false,\n};\n// Wrapper RedisInstrumentation that address all supported versions\nclass RedisInstrumentation extends instrumentation_1.InstrumentationBase {\n    instrumentationV2_V3;\n    instrumentationV4_V5;\n    // this is used to bypass a flaw in the base class constructor, which is calling\n    // member functions before the constructor has a chance to fully initialize the member variables.\n    initialized = false;\n    constructor(config = {}) {\n        const resolvedConfig = { ...DEFAULT_CONFIG, ...config };\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, resolvedConfig);\n        this.instrumentationV2_V3 = new instrumentation_2.RedisInstrumentationV2_V3(this.getConfig());\n        this.instrumentationV4_V5 = new instrumentation_3.RedisInstrumentationV4_V5(this.getConfig());\n        this.initialized = true;\n    }\n    setConfig(config = {}) {\n        const newConfig = { ...DEFAULT_CONFIG, ...config };\n        super.setConfig(newConfig);\n        if (!this.initialized) {\n            return;\n        }\n        this.instrumentationV2_V3.setConfig(newConfig);\n        this.instrumentationV4_V5.setConfig(newConfig);\n    }\n    init() { }\n    // Return underlying modules, as consumers (like https://github.com/DrewCorlin/opentelemetry-node-bundler-plugins) may\n    // expect them to be populated without knowing that this module wraps 2 instrumentations\n    getModuleDefinitions() {\n        return [\n            ...this.instrumentationV2_V3.getModuleDefinitions(),\n            ...this.instrumentationV4_V5.getModuleDefinitions(),\n        ];\n    }\n    setTracerProvider(tracerProvider) {\n        super.setTracerProvider(tracerProvider);\n        if (!this.initialized) {\n            return;\n        }\n        this.instrumentationV2_V3.setTracerProvider(tracerProvider);\n        this.instrumentationV4_V5.setTracerProvider(tracerProvider);\n    }\n    enable() {\n        super.enable();\n        if (!this.initialized) {\n            return;\n        }\n        this.instrumentationV2_V3.enable();\n        this.instrumentationV4_V5.enable();\n    }\n    disable() {\n        super.disable();\n        if (!this.initialized) {\n            return;\n        }\n        this.instrumentationV2_V3.disable();\n        this.instrumentationV4_V5.disable();\n    }\n}\nexports.RedisInstrumentation = RedisInstrumentation;\n//# sourceMappingURL=redis.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RedisInstrumentation = void 0;\nvar redis_1 = require(\"./redis\");\nObject.defineProperty(exports, \"RedisInstrumentation\", { enumerable: true, get: function () { return redis_1.RedisInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EVENT_LISTENERS_SET = void 0;\nexports.EVENT_LISTENERS_SET = Symbol('opentelemetry.instrumentation.pg.eventListenersSet');\n//# sourceMappingURL=internal-types.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Postgresql specific attributes not covered by semantic conventions\nvar AttributeNames;\n(function (AttributeNames) {\n    AttributeNames[\"PG_VALUES\"] = \"db.postgresql.values\";\n    AttributeNames[\"PG_PLAN\"] = \"db.postgresql.plan\";\n    AttributeNames[\"IDLE_TIMEOUT_MILLIS\"] = \"db.postgresql.idle.timeout.millis\";\n    AttributeNames[\"MAX_CLIENT\"] = \"db.postgresql.max.client\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS = exports.METRIC_DB_CLIENT_CONNECTION_COUNT = exports.DB_SYSTEM_VALUE_POSTGRESQL = exports.DB_CLIENT_CONNECTION_STATE_VALUE_USED = exports.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_USER = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_NAME = exports.ATTR_DB_CONNECTION_STRING = exports.ATTR_DB_CLIENT_CONNECTION_STATE = exports.ATTR_DB_CLIENT_CONNECTION_POOL_NAME = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * The name of the connection pool; unique within the instrumented application. In case the connection pool implementation doesn't provide a name, instrumentation **SHOULD** use a combination of parameters that would make the name unique, for example, combining attributes `server.address`, `server.port`, and `db.namespace`, formatted as `server.address:server.port/db.namespace`. Instrumentations that generate connection pool name following different patterns **SHOULD** document it.\n *\n * @example myDataSource\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_DB_CLIENT_CONNECTION_POOL_NAME = 'db.client.connection.pool.name';\n/**\n * The state of a connection in the pool\n *\n * @example idle\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_DB_CLIENT_CONNECTION_STATE = 'db.client.connection.state';\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexports.ATTR_DB_CONNECTION_STRING = 'db.connection_string';\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexports.ATTR_DB_NAME = 'db.name';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexports.ATTR_DB_USER = 'db.user';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"idle\" for attribute {@link ATTR_DB_CLIENT_CONNECTION_STATE}.\n */\nexports.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE = 'idle';\n/**\n * Enum value \"used\" for attribute {@link ATTR_DB_CLIENT_CONNECTION_STATE}.\n */\nexports.DB_CLIENT_CONNECTION_STATE_VALUE_USED = 'used';\n/**\n * Enum value \"postgresql\" for attribute {@link ATTR_DB_SYSTEM}.\n */\nexports.DB_SYSTEM_VALUE_POSTGRESQL = 'postgresql';\n/**\n * The number of connections that are currently in state described by the `state` attribute\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.METRIC_DB_CLIENT_CONNECTION_COUNT = 'db.client.connection.count';\n/**\n * The number of current pending requests for an open connection\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS = 'db.client.connection.pending_requests';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SpanNames = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Contains span names produced by instrumentation\nvar SpanNames;\n(function (SpanNames) {\n    SpanNames[\"QUERY_PREFIX\"] = \"pg.query\";\n    SpanNames[\"CONNECT\"] = \"pg.connect\";\n    SpanNames[\"POOL_CONNECT\"] = \"pg-pool.connect\";\n})(SpanNames = exports.SpanNames || (exports.SpanNames = {}));\n//# sourceMappingURL=SpanNames.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sanitizedErrorMessage = exports.isObjectWithTextString = exports.getErrorMessage = exports.patchClientConnectCallback = exports.patchCallbackPGPool = exports.updateCounter = exports.getPoolName = exports.patchCallback = exports.handleExecutionResult = exports.handleConfigQuery = exports.shouldSkipInstrumentation = exports.getSemanticAttributesFromPoolConnection = exports.getSemanticAttributesFromConnection = exports.getConnectionString = exports.parseAndMaskConnectionString = exports.parseNormalizedOperationName = exports.getQuerySpanName = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst SpanNames_1 = require(\"./enums/SpanNames\");\n/**\n * Helper function to get a low cardinality span name from whatever info we have\n * about the query.\n *\n * This is tricky, because we don't have most of the information (table name,\n * operation name, etc) the spec recommends using to build a low-cardinality\n * value w/o parsing. So, we use db.name and assume that, if the query's a named\n * prepared statement, those `name` values will be low cardinality. If we don't\n * have a named prepared statement, we try to parse an operation (despite the\n * spec's warnings).\n *\n * @params dbName The name of the db against which this query is being issued,\n *   which could be missing if no db name was given at the time that the\n *   connection was established.\n * @params queryConfig Information we have about the query being issued, typed\n *   to reflect only the validation we've actually done on the args to\n *   `client.query()`. This will be undefined if `client.query()` was called\n *   with invalid arguments.\n */\nfunction getQuerySpanName(dbName, queryConfig) {\n    // NB: when the query config is invalid, we omit the dbName too, so that\n    // someone (or some tool) reading the span name doesn't misinterpret the\n    // dbName as being a prepared statement or sql commit name.\n    if (!queryConfig)\n        return SpanNames_1.SpanNames.QUERY_PREFIX;\n    // Either the name of a prepared statement; or an attempted parse\n    // of the SQL command, normalized to uppercase; or unknown.\n    const command = typeof queryConfig.name === 'string' && queryConfig.name\n        ? queryConfig.name\n        : parseNormalizedOperationName(queryConfig.text);\n    return `${SpanNames_1.SpanNames.QUERY_PREFIX}:${command}${dbName ? ` ${dbName}` : ''}`;\n}\nexports.getQuerySpanName = getQuerySpanName;\nfunction parseNormalizedOperationName(queryText) {\n    // Trim the query text to handle leading/trailing whitespace\n    const trimmedQuery = queryText.trim();\n    const indexOfFirstSpace = trimmedQuery.indexOf(' ');\n    let sqlCommand = indexOfFirstSpace === -1\n        ? trimmedQuery\n        : trimmedQuery.slice(0, indexOfFirstSpace);\n    sqlCommand = sqlCommand.toUpperCase();\n    // Handle query text being \"COMMIT;\", which has an extra semicolon before the space.\n    return sqlCommand.endsWith(';') ? sqlCommand.slice(0, -1) : sqlCommand;\n}\nexports.parseNormalizedOperationName = parseNormalizedOperationName;\nfunction parseAndMaskConnectionString(connectionString) {\n    try {\n        // Parse the connection string\n        const url = new URL(connectionString);\n        // Remove all auth information (username and password)\n        url.username = '';\n        url.password = '';\n        return url.toString();\n    }\n    catch (e) {\n        // If parsing fails, return a generic connection string\n        return 'postgresql://localhost:5432/';\n    }\n}\nexports.parseAndMaskConnectionString = parseAndMaskConnectionString;\nfunction getConnectionString(params) {\n    if ('connectionString' in params && params.connectionString) {\n        return parseAndMaskConnectionString(params.connectionString);\n    }\n    const host = params.host || 'localhost';\n    const port = params.port || 5432;\n    const database = params.database || '';\n    return `postgresql://${host}:${port}/${database}`;\n}\nexports.getConnectionString = getConnectionString;\nfunction getPort(port) {\n    // Port may be NaN as parseInt() is used on the value, passing null will result in NaN being parsed.\n    // https://github.com/brianc/node-postgres/blob/2a8efbee09a284be12748ed3962bc9b816965e36/packages/pg/lib/connection-parameters.js#L66\n    if (Number.isInteger(port)) {\n        return port;\n    }\n    // Unable to find the default used in pg code, so falling back to 'undefined'.\n    return undefined;\n}\nfunction getSemanticAttributesFromConnection(params, semconvStability) {\n    let attributes = {};\n    if (semconvStability & instrumentation_1.SemconvStability.OLD) {\n        attributes = {\n            ...attributes,\n            [semconv_1.ATTR_DB_SYSTEM]: semconv_1.DB_SYSTEM_VALUE_POSTGRESQL,\n            [semconv_1.ATTR_DB_NAME]: params.database,\n            [semconv_1.ATTR_DB_CONNECTION_STRING]: getConnectionString(params),\n            [semconv_1.ATTR_DB_USER]: params.user,\n            [semconv_1.ATTR_NET_PEER_NAME]: params.host,\n            [semconv_1.ATTR_NET_PEER_PORT]: getPort(params.port),\n        };\n    }\n    if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n        attributes = {\n            ...attributes,\n            [semantic_conventions_1.ATTR_DB_SYSTEM_NAME]: semantic_conventions_1.DB_SYSTEM_NAME_VALUE_POSTGRESQL,\n            [semantic_conventions_1.ATTR_DB_NAMESPACE]: params.namespace,\n            [semantic_conventions_1.ATTR_SERVER_ADDRESS]: params.host,\n            [semantic_conventions_1.ATTR_SERVER_PORT]: getPort(params.port),\n        };\n    }\n    return attributes;\n}\nexports.getSemanticAttributesFromConnection = getSemanticAttributesFromConnection;\nfunction getSemanticAttributesFromPoolConnection(params, semconvStability) {\n    let url;\n    try {\n        url = params.connectionString\n            ? new URL(params.connectionString)\n            : undefined;\n    }\n    catch (e) {\n        url = undefined;\n    }\n    let attributes = {\n        [AttributeNames_1.AttributeNames.IDLE_TIMEOUT_MILLIS]: params.idleTimeoutMillis,\n        [AttributeNames_1.AttributeNames.MAX_CLIENT]: params.maxClient,\n    };\n    if (semconvStability & instrumentation_1.SemconvStability.OLD) {\n        attributes = {\n            ...attributes,\n            [semconv_1.ATTR_DB_SYSTEM]: semconv_1.DB_SYSTEM_VALUE_POSTGRESQL,\n            [semconv_1.ATTR_DB_NAME]: url?.pathname.slice(1) ?? params.database,\n            [semconv_1.ATTR_DB_CONNECTION_STRING]: getConnectionString(params),\n            [semconv_1.ATTR_NET_PEER_NAME]: url?.hostname ?? params.host,\n            [semconv_1.ATTR_NET_PEER_PORT]: Number(url?.port) || getPort(params.port),\n            [semconv_1.ATTR_DB_USER]: url?.username ?? params.user,\n        };\n    }\n    if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n        attributes = {\n            ...attributes,\n            [semantic_conventions_1.ATTR_DB_SYSTEM_NAME]: semantic_conventions_1.DB_SYSTEM_NAME_VALUE_POSTGRESQL,\n            [semantic_conventions_1.ATTR_DB_NAMESPACE]: params.namespace,\n            [semantic_conventions_1.ATTR_SERVER_ADDRESS]: url?.hostname ?? params.host,\n            [semantic_conventions_1.ATTR_SERVER_PORT]: Number(url?.port) || getPort(params.port),\n        };\n    }\n    return attributes;\n}\nexports.getSemanticAttributesFromPoolConnection = getSemanticAttributesFromPoolConnection;\nfunction shouldSkipInstrumentation(instrumentationConfig) {\n    return (instrumentationConfig.requireParentSpan === true &&\n        api_1.trace.getSpan(api_1.context.active()) === undefined);\n}\nexports.shouldSkipInstrumentation = shouldSkipInstrumentation;\n// Create a span from our normalized queryConfig object,\n// or return a basic span if no queryConfig was given/could be created.\nfunction handleConfigQuery(tracer, instrumentationConfig, semconvStability, queryConfig) {\n    // Create child span.\n    const { connectionParameters } = this;\n    const dbName = connectionParameters.database;\n    const spanName = getQuerySpanName(dbName, queryConfig);\n    const span = tracer.startSpan(spanName, {\n        kind: api_1.SpanKind.CLIENT,\n        attributes: getSemanticAttributesFromConnection(connectionParameters, semconvStability),\n    });\n    if (!queryConfig) {\n        return span;\n    }\n    // Set attributes\n    if (queryConfig.text) {\n        if (semconvStability & instrumentation_1.SemconvStability.OLD) {\n            span.setAttribute(semconv_1.ATTR_DB_STATEMENT, queryConfig.text);\n        }\n        if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n            span.setAttribute(semantic_conventions_1.ATTR_DB_QUERY_TEXT, queryConfig.text);\n        }\n    }\n    if (instrumentationConfig.enhancedDatabaseReporting &&\n        Array.isArray(queryConfig.values)) {\n        try {\n            const convertedValues = queryConfig.values.map(value => {\n                if (value == null) {\n                    return 'null';\n                }\n                else if (value instanceof Buffer) {\n                    return value.toString();\n                }\n                else if (typeof value === 'object') {\n                    if (typeof value.toPostgres === 'function') {\n                        return value.toPostgres();\n                    }\n                    return JSON.stringify(value);\n                }\n                else {\n                    //string, number\n                    return value.toString();\n                }\n            });\n            span.setAttribute(AttributeNames_1.AttributeNames.PG_VALUES, convertedValues);\n        }\n        catch (e) {\n            api_1.diag.error('failed to stringify ', queryConfig.values, e);\n        }\n    }\n    // Set plan name attribute, if present\n    if (typeof queryConfig.name === 'string') {\n        span.setAttribute(AttributeNames_1.AttributeNames.PG_PLAN, queryConfig.name);\n    }\n    return span;\n}\nexports.handleConfigQuery = handleConfigQuery;\nfunction handleExecutionResult(config, span, pgResult) {\n    if (typeof config.responseHook === 'function') {\n        (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n            config.responseHook(span, {\n                data: pgResult,\n            });\n        }, err => {\n            if (err) {\n                api_1.diag.error('Error running response hook', err);\n            }\n        }, true);\n    }\n}\nexports.handleExecutionResult = handleExecutionResult;\nfunction patchCallback(instrumentationConfig, span, cb, attributes, recordDuration) {\n    return function patchedCallback(err, res) {\n        if (err) {\n            if (Object.prototype.hasOwnProperty.call(err, 'code')) {\n                attributes[semantic_conventions_1.ATTR_ERROR_TYPE] = err['code'];\n            }\n            if (err instanceof Error) {\n                span.recordException(sanitizedErrorMessage(err));\n            }\n            span.setStatus({\n                code: api_1.SpanStatusCode.ERROR,\n                message: err.message,\n            });\n        }\n        else {\n            handleExecutionResult(instrumentationConfig, span, res);\n        }\n        recordDuration();\n        span.end();\n        cb.call(this, err, res);\n    };\n}\nexports.patchCallback = patchCallback;\nfunction getPoolName(pool) {\n    let poolName = '';\n    poolName += (pool?.host ? `${pool.host}` : 'unknown_host') + ':';\n    poolName += (pool?.port ? `${pool.port}` : 'unknown_port') + '/';\n    poolName += pool?.database ? `${pool.database}` : 'unknown_database';\n    return poolName.trim();\n}\nexports.getPoolName = getPoolName;\nfunction updateCounter(poolName, pool, connectionCount, connectionPendingRequests, latestCounter) {\n    const all = pool.totalCount;\n    const pending = pool.waitingCount;\n    const idle = pool.idleCount;\n    const used = all - idle;\n    connectionCount.add(used - latestCounter.used, {\n        [semconv_1.ATTR_DB_CLIENT_CONNECTION_STATE]: semconv_1.DB_CLIENT_CONNECTION_STATE_VALUE_USED,\n        [semconv_1.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]: poolName,\n    });\n    connectionCount.add(idle - latestCounter.idle, {\n        [semconv_1.ATTR_DB_CLIENT_CONNECTION_STATE]: semconv_1.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,\n        [semconv_1.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]: poolName,\n    });\n    connectionPendingRequests.add(pending - latestCounter.pending, {\n        [semconv_1.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]: poolName,\n    });\n    return { used: used, idle: idle, pending: pending };\n}\nexports.updateCounter = updateCounter;\nfunction patchCallbackPGPool(span, cb) {\n    return function patchedCallback(err, res, done) {\n        if (err) {\n            if (err instanceof Error) {\n                span.recordException(sanitizedErrorMessage(err));\n            }\n            span.setStatus({\n                code: api_1.SpanStatusCode.ERROR,\n                message: err.message,\n            });\n        }\n        span.end();\n        cb.call(this, err, res, done);\n    };\n}\nexports.patchCallbackPGPool = patchCallbackPGPool;\nfunction patchClientConnectCallback(span, cb) {\n    return function patchedClientConnectCallback(err) {\n        if (err) {\n            if (err instanceof Error) {\n                span.recordException(sanitizedErrorMessage(err));\n            }\n            span.setStatus({\n                code: api_1.SpanStatusCode.ERROR,\n                message: err.message,\n            });\n        }\n        span.end();\n        cb.apply(this, arguments);\n    };\n}\nexports.patchClientConnectCallback = patchClientConnectCallback;\n/**\n * Attempt to get a message string from a thrown value, while being quite\n * defensive, to recognize the fact that, in JS, any kind of value (even\n * primitives) can be thrown.\n */\nfunction getErrorMessage(e) {\n    return typeof e === 'object' && e !== null && 'message' in e\n        ? String(e.message)\n        : undefined;\n}\nexports.getErrorMessage = getErrorMessage;\nfunction isObjectWithTextString(it) {\n    return (typeof it === 'object' &&\n        typeof it?.text === 'string');\n}\nexports.isObjectWithTextString = isObjectWithTextString;\n/**\n * Generates a sanitized message for the error.\n * Only includes the error type and PostgreSQL error code, omitting any sensitive details.\n */\nfunction sanitizedErrorMessage(error) {\n    const name = error?.name ?? 'PostgreSQLError';\n    const code = error?.code ?? 'UNKNOWN';\n    return `PostgreSQL error of type '${name}' occurred (code: ${code})`;\n}\nexports.sanitizedErrorMessage = sanitizedErrorMessage;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.65.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-pg';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PgInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst internal_types_1 = require(\"./internal-types\");\nconst utils = require(\"./utils\");\nconst sql_common_1 = require(\"@opentelemetry/sql-common\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst SpanNames_1 = require(\"./enums/SpanNames\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nfunction extractModuleExports(module) {\n    return module[Symbol.toStringTag] === 'Module'\n        ? module.default // ESM\n        : module; // CommonJS\n}\nclass PgInstrumentation extends instrumentation_1.InstrumentationBase {\n    // Pool events connect, acquire, release and remove can be called\n    // multiple times without changing the values of total, idle and waiting\n    // connections. The _connectionsCounter is used to keep track of latest\n    // values and only update the metrics _connectionsCount and _connectionPendingRequests\n    // when the value change.\n    _connectionsCounter = {\n        used: 0,\n        idle: 0,\n        pending: 0,\n    };\n    _semconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._semconvStability = (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    _updateMetricInstruments() {\n        this._operationDuration = this.meter.createHistogram(semantic_conventions_1.METRIC_DB_CLIENT_OPERATION_DURATION, {\n            description: 'Duration of database client operations.',\n            unit: 's',\n            valueType: api_1.ValueType.DOUBLE,\n            advice: {\n                explicitBucketBoundaries: [\n                    0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1, 5, 10,\n                ],\n            },\n        });\n        this._connectionsCounter = {\n            idle: 0,\n            pending: 0,\n            used: 0,\n        };\n        this._connectionsCount = this.meter.createUpDownCounter(semconv_1.METRIC_DB_CLIENT_CONNECTION_COUNT, {\n            description: 'The number of connections that are currently in state described by the state attribute.',\n            unit: '{connection}',\n        });\n        this._connectionPendingRequests = this.meter.createUpDownCounter(semconv_1.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS, {\n            description: 'The number of current pending requests for an open connection.',\n            unit: '{connection}',\n        });\n    }\n    init() {\n        const SUPPORTED_PG_VERSIONS = ['>=8.0.3 <9'];\n        const SUPPORTED_PG_POOL_VERSIONS = ['>=2.0.0 <4'];\n        const modulePgNativeClient = new instrumentation_1.InstrumentationNodeModuleFile('pg/lib/native/client.js', SUPPORTED_PG_VERSIONS, this._patchPgClient.bind(this), this._unpatchPgClient.bind(this));\n        const modulePgClient = new instrumentation_1.InstrumentationNodeModuleFile('pg/lib/client.js', SUPPORTED_PG_VERSIONS, this._patchPgClient.bind(this), this._unpatchPgClient.bind(this));\n        const modulePG = new instrumentation_1.InstrumentationNodeModuleDefinition('pg', SUPPORTED_PG_VERSIONS, (module) => {\n            const moduleExports = extractModuleExports(module);\n            this._patchPgClient(moduleExports.Client);\n            return module;\n        }, (module) => {\n            const moduleExports = extractModuleExports(module);\n            this._unpatchPgClient(moduleExports.Client);\n            return module;\n        }, [modulePgClient, modulePgNativeClient]);\n        const modulePGPool = new instrumentation_1.InstrumentationNodeModuleDefinition('pg-pool', SUPPORTED_PG_POOL_VERSIONS, (module) => {\n            const moduleExports = extractModuleExports(module);\n            if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.connect)) {\n                this._unwrap(moduleExports.prototype, 'connect');\n            }\n            this._wrap(moduleExports.prototype, 'connect', this._getPoolConnectPatch());\n            return moduleExports;\n        }, (module) => {\n            const moduleExports = extractModuleExports(module);\n            if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.connect)) {\n                this._unwrap(moduleExports.prototype, 'connect');\n            }\n        });\n        return [modulePG, modulePGPool];\n    }\n    _patchPgClient(module) {\n        if (!module) {\n            return;\n        }\n        const moduleExports = extractModuleExports(module);\n        if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.query)) {\n            this._unwrap(moduleExports.prototype, 'query');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.connect)) {\n            this._unwrap(moduleExports.prototype, 'connect');\n        }\n        this._wrap(moduleExports.prototype, 'query', this._getClientQueryPatch());\n        this._wrap(moduleExports.prototype, 'connect', this._getClientConnectPatch());\n        return module;\n    }\n    _unpatchPgClient(module) {\n        const moduleExports = extractModuleExports(module);\n        if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.query)) {\n            this._unwrap(moduleExports.prototype, 'query');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.connect)) {\n            this._unwrap(moduleExports.prototype, 'connect');\n        }\n        return module;\n    }\n    _getClientConnectPatch() {\n        const plugin = this;\n        return (original) => {\n            return function connect(callback) {\n                const config = plugin.getConfig();\n                if (utils.shouldSkipInstrumentation(config) ||\n                    config.ignoreConnectSpans) {\n                    return original.call(this, callback);\n                }\n                const span = plugin.tracer.startSpan(SpanNames_1.SpanNames.CONNECT, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes: utils.getSemanticAttributesFromConnection(this, plugin._semconvStability),\n                });\n                if (callback) {\n                    const parentSpan = api_1.trace.getSpan(api_1.context.active());\n                    callback = utils.patchClientConnectCallback(span, callback);\n                    if (parentSpan) {\n                        callback = api_1.context.bind(api_1.context.active(), callback);\n                    }\n                }\n                const connectResult = api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n                    return original.call(this, callback);\n                });\n                return handleConnectResult(span, connectResult);\n            };\n        };\n    }\n    recordOperationDuration(attributes, startTime) {\n        const metricsAttributes = {};\n        const keysToCopy = [\n            semantic_conventions_1.ATTR_DB_NAMESPACE,\n            semantic_conventions_1.ATTR_ERROR_TYPE,\n            semantic_conventions_1.ATTR_SERVER_PORT,\n            semantic_conventions_1.ATTR_SERVER_ADDRESS,\n            semantic_conventions_1.ATTR_DB_OPERATION_NAME,\n        ];\n        if (this._semconvStability & instrumentation_1.SemconvStability.OLD) {\n            keysToCopy.push(semconv_1.ATTR_DB_SYSTEM);\n        }\n        if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n            keysToCopy.push(semantic_conventions_1.ATTR_DB_SYSTEM_NAME);\n        }\n        keysToCopy.forEach(key => {\n            if (key in attributes) {\n                metricsAttributes[key] = attributes[key];\n            }\n        });\n        const durationSeconds = (0, core_1.hrTimeToMilliseconds)((0, core_1.hrTimeDuration)(startTime, (0, core_1.hrTime)())) / 1000;\n        this._operationDuration.record(durationSeconds, metricsAttributes);\n    }\n    _getClientQueryPatch() {\n        const plugin = this;\n        return (original) => {\n            this._diag.debug('Patching pg.Client.prototype.query');\n            return function query(...args) {\n                if (utils.shouldSkipInstrumentation(plugin.getConfig())) {\n                    return original.apply(this, args);\n                }\n                const startTime = (0, core_1.hrTime)();\n                // client.query(text, cb?), client.query(text, values, cb?), and\n                // client.query(configObj, cb?) are all valid signatures. We construct\n                // a queryConfig obj from all (valid) signatures to build the span in a\n                // unified way. We verify that we at least have query text, and code\n                // defensively when dealing with `queryConfig` after that (to handle all\n                // the other invalid cases, like a non-array for values being provided).\n                // The type casts here reflect only what we've actually validated.\n                const arg0 = args[0];\n                const firstArgIsString = typeof arg0 === 'string';\n                const firstArgIsQueryObjectWithText = utils.isObjectWithTextString(arg0);\n                // TODO: remove the `as ...` casts below when the TS version is upgraded.\n                // Newer TS versions will use the result of firstArgIsQueryObjectWithText\n                // to properly narrow arg0, but TS 4.3.5 does not.\n                const queryConfig = firstArgIsString\n                    ? {\n                        text: arg0,\n                        values: Array.isArray(args[1]) ? args[1] : undefined,\n                    }\n                    : firstArgIsQueryObjectWithText\n                        ? {\n                            ...arg0,\n                            name: arg0.name,\n                            text: arg0.text,\n                            values: arg0.values ??\n                                (Array.isArray(args[1]) ? args[1] : undefined),\n                        }\n                        : undefined;\n                const attributes = {\n                    [semconv_1.ATTR_DB_SYSTEM]: semconv_1.DB_SYSTEM_VALUE_POSTGRESQL,\n                    [semantic_conventions_1.ATTR_DB_NAMESPACE]: this.database,\n                    [semantic_conventions_1.ATTR_SERVER_PORT]: this.connectionParameters.port,\n                    [semantic_conventions_1.ATTR_SERVER_ADDRESS]: this.connectionParameters.host,\n                };\n                if (queryConfig?.text) {\n                    attributes[semantic_conventions_1.ATTR_DB_OPERATION_NAME] =\n                        utils.parseNormalizedOperationName(queryConfig?.text);\n                }\n                const recordDuration = () => {\n                    plugin.recordOperationDuration(attributes, startTime);\n                };\n                const instrumentationConfig = plugin.getConfig();\n                const span = utils.handleConfigQuery.call(this, plugin.tracer, instrumentationConfig, plugin._semconvStability, queryConfig);\n                // Modify query text w/ a tracing comment before invoking original for\n                // tracing, but only if args[0] has one of our expected shapes.\n                if (instrumentationConfig.addSqlCommenterCommentToQueries) {\n                    if (firstArgIsString) {\n                        args[0] = (0, sql_common_1.addSqlCommenterComment)(span, arg0);\n                    }\n                    else if (firstArgIsQueryObjectWithText && !('name' in arg0)) {\n                        // In the case of a query object, we need to ensure there's no name field\n                        // as this indicates a prepared query, where the comment would remain the same\n                        // for every invocation and contain an outdated trace context.\n                        args[0] = {\n                            ...arg0,\n                            text: (0, sql_common_1.addSqlCommenterComment)(span, arg0.text),\n                        };\n                    }\n                }\n                // Bind callback (if any) to parent span (if any)\n                if (args.length > 0) {\n                    const parentSpan = api_1.trace.getSpan(api_1.context.active());\n                    if (typeof args[args.length - 1] === 'function') {\n                        // Patch ParameterQuery callback\n                        args[args.length - 1] = utils.patchCallback(instrumentationConfig, span, args[args.length - 1], // nb: not type safe.\n                        attributes, recordDuration);\n                        // If a parent span exists, bind the callback\n                        if (parentSpan) {\n                            args[args.length - 1] = api_1.context.bind(api_1.context.active(), args[args.length - 1]);\n                        }\n                    }\n                    else if (typeof queryConfig?.callback === 'function') {\n                        // Patch ConfigQuery callback\n                        let callback = utils.patchCallback(plugin.getConfig(), span, queryConfig.callback, // nb: not type safe.\n                        attributes, recordDuration);\n                        // If a parent span existed, bind the callback\n                        if (parentSpan) {\n                            callback = api_1.context.bind(api_1.context.active(), callback);\n                        }\n                        args[0].callback = callback;\n                    }\n                }\n                const { requestHook } = instrumentationConfig;\n                if (typeof requestHook === 'function' && queryConfig) {\n                    (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                        // pick keys to expose explicitly, so we're not leaking pg package\n                        // internals that are subject to change\n                        const { database, host, port, user } = this.connectionParameters;\n                        const connection = { database, host, port, user };\n                        requestHook(span, {\n                            connection,\n                            query: {\n                                text: queryConfig.text,\n                                // nb: if `client.query` is called with illegal arguments\n                                // (e.g., if `queryConfig.values` is passed explicitly, but a\n                                // non-array is given), then the type casts will be wrong. But\n                                // we leave it up to the queryHook to handle that, and we\n                                // catch and swallow any errors it throws. The other options\n                                // are all worse. E.g., we could leave `queryConfig.values`\n                                // and `queryConfig.name` as `unknown`, but then the hook body\n                                // would be forced to validate (or cast) them before using\n                                // them, which seems incredibly cumbersome given that these\n                                // casts will be correct 99.9% of the time -- and pg.query\n                                // will immediately throw during development in the other .1%\n                                // of cases. Alternatively, we could simply skip calling the\n                                // hook when `values` or `name` don't have the expected type,\n                                // but that would add unnecessary validation overhead to every\n                                // hook invocation and possibly be even more confusing/unexpected.\n                                values: queryConfig.values,\n                                name: queryConfig.name,\n                            },\n                        });\n                    }, err => {\n                        if (err) {\n                            plugin._diag.error('Error running query hook', err);\n                        }\n                    }, true);\n                }\n                let result;\n                try {\n                    result = original.apply(this, args);\n                }\n                catch (e) {\n                    if (e instanceof Error) {\n                        span.recordException(utils.sanitizedErrorMessage(e));\n                    }\n                    span.setStatus({\n                        code: api_1.SpanStatusCode.ERROR,\n                        message: utils.getErrorMessage(e),\n                    });\n                    span.end();\n                    throw e;\n                }\n                // Bind promise to parent span and end the span\n                if (result instanceof Promise) {\n                    return result\n                        .then((result) => {\n                        // Return a pass-along promise which ends the span and then goes to user's orig resolvers\n                        return new Promise(resolve => {\n                            utils.handleExecutionResult(plugin.getConfig(), span, result);\n                            recordDuration();\n                            span.end();\n                            resolve(result);\n                        });\n                    })\n                        .catch((error) => {\n                        return new Promise((_, reject) => {\n                            if (error instanceof Error) {\n                                span.recordException(utils.sanitizedErrorMessage(error));\n                            }\n                            span.setStatus({\n                                code: api_1.SpanStatusCode.ERROR,\n                                message: error.message,\n                            });\n                            recordDuration();\n                            span.end();\n                            reject(error);\n                        });\n                    });\n                }\n                // else returns void\n                return result; // void\n            };\n        };\n    }\n    _setPoolConnectEventListeners(pgPool) {\n        if (pgPool[internal_types_1.EVENT_LISTENERS_SET])\n            return;\n        const poolName = utils.getPoolName(pgPool.options);\n        pgPool.on('connect', () => {\n            this._connectionsCounter = utils.updateCounter(poolName, pgPool, this._connectionsCount, this._connectionPendingRequests, this._connectionsCounter);\n        });\n        pgPool.on('acquire', () => {\n            this._connectionsCounter = utils.updateCounter(poolName, pgPool, this._connectionsCount, this._connectionPendingRequests, this._connectionsCounter);\n        });\n        pgPool.on('remove', () => {\n            this._connectionsCounter = utils.updateCounter(poolName, pgPool, this._connectionsCount, this._connectionPendingRequests, this._connectionsCounter);\n        });\n        pgPool.on('release', () => {\n            this._connectionsCounter = utils.updateCounter(poolName, pgPool, this._connectionsCount, this._connectionPendingRequests, this._connectionsCounter);\n        });\n        pgPool[internal_types_1.EVENT_LISTENERS_SET] = true;\n    }\n    _getPoolConnectPatch() {\n        const plugin = this;\n        return (originalConnect) => {\n            return function connect(callback) {\n                const config = plugin.getConfig();\n                if (utils.shouldSkipInstrumentation(config)) {\n                    return originalConnect.call(this, callback);\n                }\n                // Still set up event listeners for metrics even when skipping spans\n                plugin._setPoolConnectEventListeners(this);\n                if (config.ignoreConnectSpans) {\n                    return originalConnect.call(this, callback);\n                }\n                // setup span\n                const span = plugin.tracer.startSpan(SpanNames_1.SpanNames.POOL_CONNECT, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes: utils.getSemanticAttributesFromPoolConnection(this.options, plugin._semconvStability),\n                });\n                if (callback) {\n                    const parentSpan = api_1.trace.getSpan(api_1.context.active());\n                    callback = utils.patchCallbackPGPool(span, callback);\n                    // If a parent span exists, bind the callback\n                    if (parentSpan) {\n                        callback = api_1.context.bind(api_1.context.active(), callback);\n                    }\n                }\n                const connectResult = api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n                    return originalConnect.call(this, callback);\n                });\n                return handleConnectResult(span, connectResult);\n            };\n        };\n    }\n}\nexports.PgInstrumentation = PgInstrumentation;\nfunction handleConnectResult(span, connectResult) {\n    if (!(connectResult instanceof Promise)) {\n        return connectResult;\n    }\n    const connectResultPromise = connectResult;\n    return api_1.context.bind(api_1.context.active(), connectResultPromise\n        .then(result => {\n        span.end();\n        return result;\n    })\n        .catch((error) => {\n        if (error instanceof Error) {\n            span.recordException(utils.sanitizedErrorMessage(error));\n        }\n        span.setStatus({\n            code: api_1.SpanStatusCode.ERROR,\n            message: utils.getErrorMessage(error),\n        });\n        span.end();\n        return Promise.reject(error);\n    }));\n}\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = exports.PgInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"PgInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.PgInstrumentation; } });\nvar AttributeNames_1 = require(\"./enums/AttributeNames\");\nObject.defineProperty(exports, \"AttributeNames\", { enumerable: true, get: function () { return AttributeNames_1.AttributeNames; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SeverityNumber = void 0;\nvar SeverityNumber;\n(function (SeverityNumber) {\n    SeverityNumber[SeverityNumber[\"UNSPECIFIED\"] = 0] = \"UNSPECIFIED\";\n    SeverityNumber[SeverityNumber[\"TRACE\"] = 1] = \"TRACE\";\n    SeverityNumber[SeverityNumber[\"TRACE2\"] = 2] = \"TRACE2\";\n    SeverityNumber[SeverityNumber[\"TRACE3\"] = 3] = \"TRACE3\";\n    SeverityNumber[SeverityNumber[\"TRACE4\"] = 4] = \"TRACE4\";\n    SeverityNumber[SeverityNumber[\"DEBUG\"] = 5] = \"DEBUG\";\n    SeverityNumber[SeverityNumber[\"DEBUG2\"] = 6] = \"DEBUG2\";\n    SeverityNumber[SeverityNumber[\"DEBUG3\"] = 7] = \"DEBUG3\";\n    SeverityNumber[SeverityNumber[\"DEBUG4\"] = 8] = \"DEBUG4\";\n    SeverityNumber[SeverityNumber[\"INFO\"] = 9] = \"INFO\";\n    SeverityNumber[SeverityNumber[\"INFO2\"] = 10] = \"INFO2\";\n    SeverityNumber[SeverityNumber[\"INFO3\"] = 11] = \"INFO3\";\n    SeverityNumber[SeverityNumber[\"INFO4\"] = 12] = \"INFO4\";\n    SeverityNumber[SeverityNumber[\"WARN\"] = 13] = \"WARN\";\n    SeverityNumber[SeverityNumber[\"WARN2\"] = 14] = \"WARN2\";\n    SeverityNumber[SeverityNumber[\"WARN3\"] = 15] = \"WARN3\";\n    SeverityNumber[SeverityNumber[\"WARN4\"] = 16] = \"WARN4\";\n    SeverityNumber[SeverityNumber[\"ERROR\"] = 17] = \"ERROR\";\n    SeverityNumber[SeverityNumber[\"ERROR2\"] = 18] = \"ERROR2\";\n    SeverityNumber[SeverityNumber[\"ERROR3\"] = 19] = \"ERROR3\";\n    SeverityNumber[SeverityNumber[\"ERROR4\"] = 20] = \"ERROR4\";\n    SeverityNumber[SeverityNumber[\"FATAL\"] = 21] = \"FATAL\";\n    SeverityNumber[SeverityNumber[\"FATAL2\"] = 22] = \"FATAL2\";\n    SeverityNumber[SeverityNumber[\"FATAL3\"] = 23] = \"FATAL3\";\n    SeverityNumber[SeverityNumber[\"FATAL4\"] = 24] = \"FATAL4\";\n})(SeverityNumber = exports.SeverityNumber || (exports.SeverityNumber = {}));\n//# sourceMappingURL=LogRecord.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_LOGGER = exports.NoopLogger = void 0;\nclass NoopLogger {\n    emit(_logRecord) { }\n}\nexports.NoopLogger = NoopLogger;\nexports.NOOP_LOGGER = new NoopLogger();\n//# sourceMappingURL=NoopLogger.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_LOGGER_PROVIDER = exports.NoopLoggerProvider = void 0;\nconst NoopLogger_1 = require(\"./NoopLogger\");\nclass NoopLoggerProvider {\n    getLogger(_name, _version, _options) {\n        return new NoopLogger_1.NoopLogger();\n    }\n}\nexports.NoopLoggerProvider = NoopLoggerProvider;\nexports.NOOP_LOGGER_PROVIDER = new NoopLoggerProvider();\n//# sourceMappingURL=NoopLoggerProvider.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProxyLogger = void 0;\nconst NoopLogger_1 = require(\"./NoopLogger\");\nclass ProxyLogger {\n    constructor(_provider, name, version, options) {\n        this._provider = _provider;\n        this.name = name;\n        this.version = version;\n        this.options = options;\n    }\n    /**\n     * Emit a log record. This method should only be used by log appenders.\n     *\n     * @param logRecord\n     */\n    emit(logRecord) {\n        this._getLogger().emit(logRecord);\n    }\n    /**\n     * Try to get a logger from the proxy logger provider.\n     * If the proxy logger provider has no delegate, return a noop logger.\n     */\n    _getLogger() {\n        if (this._delegate) {\n            return this._delegate;\n        }\n        const logger = this._provider._getDelegateLogger(this.name, this.version, this.options);\n        if (!logger) {\n            return NoopLogger_1.NOOP_LOGGER;\n        }\n        this._delegate = logger;\n        return this._delegate;\n    }\n}\nexports.ProxyLogger = ProxyLogger;\n//# sourceMappingURL=ProxyLogger.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProxyLoggerProvider = void 0;\nconst NoopLoggerProvider_1 = require(\"./NoopLoggerProvider\");\nconst ProxyLogger_1 = require(\"./ProxyLogger\");\nclass ProxyLoggerProvider {\n    getLogger(name, version, options) {\n        var _a;\n        return ((_a = this._getDelegateLogger(name, version, options)) !== null && _a !== void 0 ? _a : new ProxyLogger_1.ProxyLogger(this, name, version, options));\n    }\n    /**\n     * Get the delegate logger provider.\n     * Used by tests only.\n     * @internal\n     */\n    _getDelegate() {\n        var _a;\n        return (_a = this._delegate) !== null && _a !== void 0 ? _a : NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER;\n    }\n    /**\n     * Set the delegate logger provider\n     * @internal\n     */\n    _setDelegate(delegate) {\n        this._delegate = delegate;\n    }\n    /**\n     * @internal\n     */\n    _getDelegateLogger(name, version, options) {\n        var _a;\n        return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getLogger(name, version, options);\n    }\n}\nexports.ProxyLoggerProvider = ProxyLoggerProvider;\n//# sourceMappingURL=ProxyLoggerProvider.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._globalThis = void 0;\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line n/no-unsupported-features/es-builtins\nexports._globalThis = typeof globalThis === 'object' ? globalThis : global;\n//# sourceMappingURL=globalThis.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._globalThis = void 0;\nvar globalThis_1 = require(\"./globalThis\");\nObject.defineProperty(exports, \"_globalThis\", { enumerable: true, get: function () { return globalThis_1._globalThis; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._globalThis = void 0;\nvar node_1 = require(\"./node\");\nObject.defineProperty(exports, \"_globalThis\", { enumerable: true, get: function () { return node_1._globalThis; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.API_BACKWARDS_COMPATIBILITY_VERSION = exports.makeGetter = exports._global = exports.GLOBAL_LOGS_API_KEY = void 0;\nconst platform_1 = require(\"../platform\");\nexports.GLOBAL_LOGS_API_KEY = Symbol.for('io.opentelemetry.js.api.logs');\nexports._global = platform_1._globalThis;\n/**\n * Make a function which accepts a version integer and returns the instance of an API if the version\n * is compatible, or a fallback version (usually NOOP) if it is not.\n *\n * @param requiredVersion Backwards compatibility version which is required to return the instance\n * @param instance Instance which should be returned if the required version is compatible\n * @param fallback Fallback instance, usually NOOP, which will be returned if the required version is not compatible\n */\nfunction makeGetter(requiredVersion, instance, fallback) {\n    return (version) => version === requiredVersion ? instance : fallback;\n}\nexports.makeGetter = makeGetter;\n/**\n * A number which should be incremented each time a backwards incompatible\n * change is made to the API. This number is used when an API package\n * attempts to access the global API to ensure it is getting a compatible\n * version. If the global API is not compatible with the API package\n * attempting to get it, a NOOP API implementation will be returned.\n */\nexports.API_BACKWARDS_COMPATIBILITY_VERSION = 1;\n//# sourceMappingURL=global-utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogsAPI = void 0;\nconst global_utils_1 = require(\"../internal/global-utils\");\nconst NoopLoggerProvider_1 = require(\"../NoopLoggerProvider\");\nconst ProxyLoggerProvider_1 = require(\"../ProxyLoggerProvider\");\nclass LogsAPI {\n    constructor() {\n        this._proxyLoggerProvider = new ProxyLoggerProvider_1.ProxyLoggerProvider();\n    }\n    static getInstance() {\n        if (!this._instance) {\n            this._instance = new LogsAPI();\n        }\n        return this._instance;\n    }\n    setGlobalLoggerProvider(provider) {\n        if (global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]) {\n            return this.getLoggerProvider();\n        }\n        global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY] = (0, global_utils_1.makeGetter)(global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION, provider, NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER);\n        this._proxyLoggerProvider._setDelegate(provider);\n        return provider;\n    }\n    /**\n     * Returns the global logger provider.\n     *\n     * @returns LoggerProvider\n     */\n    getLoggerProvider() {\n        var _a, _b;\n        return ((_b = (_a = global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]) === null || _a === void 0 ? void 0 : _a.call(global_utils_1._global, global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION)) !== null && _b !== void 0 ? _b : this._proxyLoggerProvider);\n    }\n    /**\n     * Returns a logger from the global logger provider.\n     *\n     * @returns Logger\n     */\n    getLogger(name, version, options) {\n        return this.getLoggerProvider().getLogger(name, version, options);\n    }\n    /** Remove the global logger provider */\n    disable() {\n        delete global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY];\n        this._proxyLoggerProvider = new ProxyLoggerProvider_1.ProxyLoggerProvider();\n    }\n}\nexports.LogsAPI = LogsAPI;\n//# sourceMappingURL=logs.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logs = exports.ProxyLoggerProvider = exports.ProxyLogger = exports.NoopLoggerProvider = exports.NOOP_LOGGER_PROVIDER = exports.NoopLogger = exports.NOOP_LOGGER = exports.SeverityNumber = void 0;\nvar LogRecord_1 = require(\"./types/LogRecord\");\nObject.defineProperty(exports, \"SeverityNumber\", { enumerable: true, get: function () { return LogRecord_1.SeverityNumber; } });\nvar NoopLogger_1 = require(\"./NoopLogger\");\nObject.defineProperty(exports, \"NOOP_LOGGER\", { enumerable: true, get: function () { return NoopLogger_1.NOOP_LOGGER; } });\nObject.defineProperty(exports, \"NoopLogger\", { enumerable: true, get: function () { return NoopLogger_1.NoopLogger; } });\nvar NoopLoggerProvider_1 = require(\"./NoopLoggerProvider\");\nObject.defineProperty(exports, \"NOOP_LOGGER_PROVIDER\", { enumerable: true, get: function () { return NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER; } });\nObject.defineProperty(exports, \"NoopLoggerProvider\", { enumerable: true, get: function () { return NoopLoggerProvider_1.NoopLoggerProvider; } });\nvar ProxyLogger_1 = require(\"./ProxyLogger\");\nObject.defineProperty(exports, \"ProxyLogger\", { enumerable: true, get: function () { return ProxyLogger_1.ProxyLogger; } });\nvar ProxyLoggerProvider_1 = require(\"./ProxyLoggerProvider\");\nObject.defineProperty(exports, \"ProxyLoggerProvider\", { enumerable: true, get: function () { return ProxyLoggerProvider_1.ProxyLoggerProvider; } });\nconst logs_1 = require(\"./api/logs\");\nexports.logs = logs_1.LogsAPI.getInstance();\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.disableInstrumentations = exports.enableInstrumentations = void 0;\n/**\n * Enable instrumentations\n * @param instrumentations\n * @param tracerProvider\n * @param meterProvider\n */\nfunction enableInstrumentations(instrumentations, tracerProvider, meterProvider, loggerProvider) {\n    for (let i = 0, j = instrumentations.length; i < j; i++) {\n        const instrumentation = instrumentations[i];\n        if (tracerProvider) {\n            instrumentation.setTracerProvider(tracerProvider);\n        }\n        if (meterProvider) {\n            instrumentation.setMeterProvider(meterProvider);\n        }\n        if (loggerProvider && instrumentation.setLoggerProvider) {\n            instrumentation.setLoggerProvider(loggerProvider);\n        }\n        // instrumentations have been already enabled during creation\n        // so enable only if user prevented that by setting enabled to false\n        // this is to prevent double enabling but when calling register all\n        // instrumentations should be now enabled\n        if (!instrumentation.getConfig().enabled) {\n            instrumentation.enable();\n        }\n    }\n}\nexports.enableInstrumentations = enableInstrumentations;\n/**\n * Disable instrumentations\n * @param instrumentations\n */\nfunction disableInstrumentations(instrumentations) {\n    instrumentations.forEach(instrumentation => instrumentation.disable());\n}\nexports.disableInstrumentations = disableInstrumentations;\n//# sourceMappingURL=autoLoaderUtils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.registerInstrumentations = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst api_logs_1 = require(\"@opentelemetry/api-logs\");\nconst autoLoaderUtils_1 = require(\"./autoLoaderUtils\");\n/**\n * It will register instrumentations and plugins\n * @param options\n * @return returns function to unload instrumentation and plugins that were\n *   registered\n */\nfunction registerInstrumentations(options) {\n    const tracerProvider = options.tracerProvider || api_1.trace.getTracerProvider();\n    const meterProvider = options.meterProvider || api_1.metrics.getMeterProvider();\n    const loggerProvider = options.loggerProvider || api_logs_1.logs.getLoggerProvider();\n    const instrumentations = options.instrumentations?.flat() ?? [];\n    (0, autoLoaderUtils_1.enableInstrumentations)(instrumentations, tracerProvider, meterProvider, loggerProvider);\n    return () => {\n        (0, autoLoaderUtils_1.disableInstrumentations)(instrumentations);\n    };\n}\nexports.registerInstrumentations = registerInstrumentations;\n//# sourceMappingURL=autoLoader.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.satisfies = void 0;\n// This is a custom semantic versioning implementation compatible with the\n// `satisfies(version, range, options?)` function from the `semver` npm package;\n// with the exception that the `loose` option is not supported.\n//\n// The motivation for the custom semver implementation is that\n// `semver` package has some initialization delay (lots of RegExp init and compile)\n// and this leads to coldstart overhead for the OTEL Lambda Node.js layer.\n// Hence, we have implemented lightweight version of it internally with required functionalities.\nconst api_1 = require(\"@opentelemetry/api\");\nconst VERSION_REGEXP = /^(?:v)?(?(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*))(?:-(?(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nconst RANGE_REGEXP = /^(?<|>|=|==|<=|>=|~|\\^|~>)?\\s*(?:v)?(?(?x|X|\\*|0|[1-9]\\d*)(?:\\.(?x|X|\\*|0|[1-9]\\d*))?(?:\\.(?x|X|\\*|0|[1-9]\\d*))?)(?:-(?(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nconst operatorResMap = {\n    '>': [1],\n    '>=': [0, 1],\n    '=': [0],\n    '<=': [-1, 0],\n    '<': [-1],\n    '!=': [-1, 1],\n};\n/**\n * Checks given version whether it satisfies given range expression.\n * @param version the [version](https://github.com/npm/node-semver#versions) to be checked\n * @param range   the [range](https://github.com/npm/node-semver#ranges) expression for version check\n * @param options options to configure semver satisfy check\n */\nfunction satisfies(version, range, options) {\n    // Strict semver format check\n    if (!_validateVersion(version)) {\n        api_1.diag.error(`Invalid version: ${version}`);\n        return false;\n    }\n    // If range is empty, satisfy check succeeds regardless what version is\n    if (!range) {\n        return true;\n    }\n    // Cleanup range\n    range = range.replace(/([<>=~^]+)\\s+/g, '$1');\n    // Parse version\n    const parsedVersion = _parseVersion(version);\n    if (!parsedVersion) {\n        return false;\n    }\n    const allParsedRanges = [];\n    // Check given version whether it satisfies given range expression\n    const checkResult = _doSatisfies(parsedVersion, range, allParsedRanges, options);\n    // If check result is OK,\n    // do another final check for pre-release, if pre-release check is included by option\n    if (checkResult && !options?.includePrerelease) {\n        return _doPreleaseCheck(parsedVersion, allParsedRanges);\n    }\n    return checkResult;\n}\nexports.satisfies = satisfies;\nfunction _validateVersion(version) {\n    return typeof version === 'string' && VERSION_REGEXP.test(version);\n}\nfunction _doSatisfies(parsedVersion, range, allParsedRanges, options) {\n    if (range.includes('||')) {\n        // A version matches a range if and only if\n        // every comparator in at least one of the ||-separated comparator sets is satisfied by the version\n        const ranges = range.trim().split('||');\n        for (const r of ranges) {\n            if (_checkRange(parsedVersion, r, allParsedRanges, options)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    else if (range.includes(' - ')) {\n        // Hyphen ranges: https://github.com/npm/node-semver#hyphen-ranges-xyz---abc\n        range = replaceHyphen(range, options);\n    }\n    else if (range.includes(' ')) {\n        // Multiple separated ranges and all needs to be satisfied for success\n        const ranges = range\n            .trim()\n            .replace(/\\s{2,}/g, ' ')\n            .split(' ');\n        for (const r of ranges) {\n            if (!_checkRange(parsedVersion, r, allParsedRanges, options)) {\n                return false;\n            }\n        }\n        return true;\n    }\n    // Check given parsed version with given range\n    return _checkRange(parsedVersion, range, allParsedRanges, options);\n}\nfunction _checkRange(parsedVersion, range, allParsedRanges, options) {\n    range = _normalizeRange(range, options);\n    if (range.includes(' ')) {\n        // If there are multiple ranges separated, satisfy each of them\n        return _doSatisfies(parsedVersion, range, allParsedRanges, options);\n    }\n    else {\n        // Validate and parse range\n        const parsedRange = _parseRange(range);\n        allParsedRanges.push(parsedRange);\n        // Check parsed version by parsed range\n        return _satisfies(parsedVersion, parsedRange);\n    }\n}\nfunction _satisfies(parsedVersion, parsedRange) {\n    // If range is invalid, satisfy check fails (no error throw)\n    if (parsedRange.invalid) {\n        return false;\n    }\n    // If range is empty or wildcard, satisfy check succeeds regardless what version is\n    if (!parsedRange.version || _isWildcard(parsedRange.version)) {\n        return true;\n    }\n    // Compare version segment first\n    let comparisonResult = _compareVersionSegments(parsedVersion.versionSegments || [], parsedRange.versionSegments || []);\n    // If versions segments are equal, compare by pre-release segments\n    if (comparisonResult === 0) {\n        const versionPrereleaseSegments = parsedVersion.prereleaseSegments || [];\n        const rangePrereleaseSegments = parsedRange.prereleaseSegments || [];\n        if (!versionPrereleaseSegments.length && !rangePrereleaseSegments.length) {\n            comparisonResult = 0;\n        }\n        else if (!versionPrereleaseSegments.length &&\n            rangePrereleaseSegments.length) {\n            comparisonResult = 1;\n        }\n        else if (versionPrereleaseSegments.length &&\n            !rangePrereleaseSegments.length) {\n            comparisonResult = -1;\n        }\n        else {\n            comparisonResult = _compareVersionSegments(versionPrereleaseSegments, rangePrereleaseSegments);\n        }\n    }\n    // Resolve check result according to comparison operator\n    return operatorResMap[parsedRange.op]?.includes(comparisonResult);\n}\nfunction _doPreleaseCheck(parsedVersion, allParsedRanges) {\n    if (parsedVersion.prerelease) {\n        return allParsedRanges.some(r => r.prerelease && r.version === parsedVersion.version);\n    }\n    return true;\n}\nfunction _normalizeRange(range, options) {\n    range = range.trim();\n    range = replaceCaret(range, options);\n    range = replaceTilde(range);\n    range = replaceXRange(range, options);\n    range = range.trim();\n    return range;\n}\nfunction isX(id) {\n    return !id || id.toLowerCase() === 'x' || id === '*';\n}\nfunction _parseVersion(versionString) {\n    const match = versionString.match(VERSION_REGEXP);\n    if (!match) {\n        api_1.diag.error(`Invalid version: ${versionString}`);\n        return undefined;\n    }\n    const version = match.groups.version;\n    const prerelease = match.groups.prerelease;\n    const build = match.groups.build;\n    const versionSegments = version.split('.');\n    const prereleaseSegments = prerelease?.split('.');\n    return {\n        op: undefined,\n        version,\n        versionSegments,\n        versionSegmentCount: versionSegments.length,\n        prerelease,\n        prereleaseSegments,\n        prereleaseSegmentCount: prereleaseSegments ? prereleaseSegments.length : 0,\n        build,\n    };\n}\nfunction _parseRange(rangeString) {\n    if (!rangeString) {\n        return {};\n    }\n    const match = rangeString.match(RANGE_REGEXP);\n    if (!match) {\n        api_1.diag.error(`Invalid range: ${rangeString}`);\n        return {\n            invalid: true,\n        };\n    }\n    let op = match.groups.op;\n    const version = match.groups.version;\n    const prerelease = match.groups.prerelease;\n    const build = match.groups.build;\n    const versionSegments = version.split('.');\n    const prereleaseSegments = prerelease?.split('.');\n    if (op === '==') {\n        op = '=';\n    }\n    return {\n        op: op || '=',\n        version,\n        versionSegments,\n        versionSegmentCount: versionSegments.length,\n        prerelease,\n        prereleaseSegments,\n        prereleaseSegmentCount: prereleaseSegments ? prereleaseSegments.length : 0,\n        build,\n    };\n}\nfunction _isWildcard(s) {\n    return s === '*' || s === 'x' || s === 'X';\n}\nfunction _parseVersionString(v) {\n    const n = parseInt(v, 10);\n    return isNaN(n) ? v : n;\n}\nfunction _normalizeVersionType(a, b) {\n    if (typeof a === typeof b) {\n        if (typeof a === 'number') {\n            return [a, b];\n        }\n        else if (typeof a === 'string') {\n            return [a, b];\n        }\n        else {\n            throw new Error('Version segments can only be strings or numbers');\n        }\n    }\n    else {\n        return [String(a), String(b)];\n    }\n}\nfunction _compareVersionStrings(v1, v2) {\n    if (_isWildcard(v1) || _isWildcard(v2)) {\n        return 0;\n    }\n    const [parsedV1, parsedV2] = _normalizeVersionType(_parseVersionString(v1), _parseVersionString(v2));\n    if (parsedV1 > parsedV2) {\n        return 1;\n    }\n    else if (parsedV1 < parsedV2) {\n        return -1;\n    }\n    return 0;\n}\nfunction _compareVersionSegments(v1, v2) {\n    for (let i = 0; i < Math.max(v1.length, v2.length); i++) {\n        const res = _compareVersionStrings(v1[i] || '0', v2[i] || '0');\n        if (res !== 0) {\n            return res;\n        }\n    }\n    return 0;\n}\n////////////////////////////////////////////////////////////////////////////////\n// The rest of this file is adapted from portions of https://github.com/npm/node-semver/tree/868d4bb\n// License:\n/*\n * The ISC License\n *\n * Copyright (c) Isaac Z. Schlueter and Contributors\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\n * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]';\nconst NUMERICIDENTIFIER = '0|[1-9]\\\\d*';\nconst NONNUMERICIDENTIFIER = `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`;\nconst GTLT = '((?:<|>)?=?)';\nconst PRERELEASEIDENTIFIER = `(?:${NUMERICIDENTIFIER}|${NONNUMERICIDENTIFIER})`;\nconst PRERELEASE = `(?:-(${PRERELEASEIDENTIFIER}(?:\\\\.${PRERELEASEIDENTIFIER})*))`;\nconst BUILDIDENTIFIER = `${LETTERDASHNUMBER}+`;\nconst BUILD = `(?:\\\\+(${BUILDIDENTIFIER}(?:\\\\.${BUILDIDENTIFIER})*))`;\nconst XRANGEIDENTIFIER = `${NUMERICIDENTIFIER}|x|X|\\\\*`;\nconst XRANGEPLAIN = `[v=\\\\s]*(${XRANGEIDENTIFIER})` +\n    `(?:\\\\.(${XRANGEIDENTIFIER})` +\n    `(?:\\\\.(${XRANGEIDENTIFIER})` +\n    `(?:${PRERELEASE})?${BUILD}?` +\n    `)?)?`;\nconst XRANGE = `^${GTLT}\\\\s*${XRANGEPLAIN}$`;\nconst XRANGE_REGEXP = new RegExp(XRANGE);\nconst HYPHENRANGE = `^\\\\s*(${XRANGEPLAIN})` + `\\\\s+-\\\\s+` + `(${XRANGEPLAIN})` + `\\\\s*$`;\nconst HYPHENRANGE_REGEXP = new RegExp(HYPHENRANGE);\nconst LONETILDE = '(?:~>?)';\nconst TILDE = `^${LONETILDE}${XRANGEPLAIN}$`;\nconst TILDE_REGEXP = new RegExp(TILDE);\nconst LONECARET = '(?:\\\\^)';\nconst CARET = `^${LONECARET}${XRANGEPLAIN}$`;\nconst CARET_REGEXP = new RegExp(CARET);\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L285\n//\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nfunction replaceTilde(comp) {\n    const r = TILDE_REGEXP;\n    return comp.replace(r, (_, M, m, p, pr) => {\n        let ret;\n        if (isX(M)) {\n            ret = '';\n        }\n        else if (isX(m)) {\n            ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n        }\n        else if (isX(p)) {\n            // ~1.2 == >=1.2.0 <1.3.0-0\n            ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n        }\n        else if (pr) {\n            ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n        }\n        else {\n            // ~1.2.3 == >=1.2.3 <1.3.0-0\n            ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;\n        }\n        return ret;\n    });\n}\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L329\n//\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nfunction replaceCaret(comp, options) {\n    const r = CARET_REGEXP;\n    const z = options?.includePrerelease ? '-0' : '';\n    return comp.replace(r, (_, M, m, p, pr) => {\n        let ret;\n        if (isX(M)) {\n            ret = '';\n        }\n        else if (isX(m)) {\n            ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n        }\n        else if (isX(p)) {\n            if (M === '0') {\n                ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n            }\n            else {\n                ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n            }\n        }\n        else if (pr) {\n            if (M === '0') {\n                if (m === '0') {\n                    ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`;\n                }\n                else {\n                    ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n                }\n            }\n            else {\n                ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`;\n            }\n        }\n        else {\n            if (M === '0') {\n                if (m === '0') {\n                    ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`;\n                }\n                else {\n                    ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`;\n                }\n            }\n            else {\n                ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;\n            }\n        }\n        return ret;\n    });\n}\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L390\nfunction replaceXRange(comp, options) {\n    const r = XRANGE_REGEXP;\n    return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n        const xM = isX(M);\n        const xm = xM || isX(m);\n        const xp = xm || isX(p);\n        const anyX = xp;\n        if (gtlt === '=' && anyX) {\n            gtlt = '';\n        }\n        // if we're including prereleases in the match, then we need\n        // to fix this to -0, the lowest possible prerelease value\n        pr = options?.includePrerelease ? '-0' : '';\n        if (xM) {\n            if (gtlt === '>' || gtlt === '<') {\n                // nothing is allowed\n                ret = '<0.0.0-0';\n            }\n            else {\n                // nothing is forbidden\n                ret = '*';\n            }\n        }\n        else if (gtlt && anyX) {\n            // we know patch is an x, because we have any x at all.\n            // replace X with 0\n            if (xm) {\n                m = 0;\n            }\n            p = 0;\n            if (gtlt === '>') {\n                // >1 => >=2.0.0\n                // >1.2 => >=1.3.0\n                gtlt = '>=';\n                if (xm) {\n                    M = +M + 1;\n                    m = 0;\n                    p = 0;\n                }\n                else {\n                    m = +m + 1;\n                    p = 0;\n                }\n            }\n            else if (gtlt === '<=') {\n                // <=0.7.x is actually <0.8.0, since any 0.7.x should\n                // pass.  Similarly, <=7.x is actually <8.0.0, etc.\n                gtlt = '<';\n                if (xm) {\n                    M = +M + 1;\n                }\n                else {\n                    m = +m + 1;\n                }\n            }\n            if (gtlt === '<') {\n                pr = '-0';\n            }\n            ret = `${gtlt + M}.${m}.${p}${pr}`;\n        }\n        else if (xm) {\n            ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n        }\n        else if (xp) {\n            ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`;\n        }\n        return ret;\n    });\n}\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L488\n//\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nfunction replaceHyphen(comp, options) {\n    const r = HYPHENRANGE_REGEXP;\n    return comp.replace(r, (_, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr) => {\n        if (isX(fM)) {\n            from = '';\n        }\n        else if (isX(fm)) {\n            from = `>=${fM}.0.0${options?.includePrerelease ? '-0' : ''}`;\n        }\n        else if (isX(fp)) {\n            from = `>=${fM}.${fm}.0${options?.includePrerelease ? '-0' : ''}`;\n        }\n        else if (fpr) {\n            from = `>=${from}`;\n        }\n        else {\n            from = `>=${from}${options?.includePrerelease ? '-0' : ''}`;\n        }\n        if (isX(tM)) {\n            to = '';\n        }\n        else if (isX(tm)) {\n            to = `<${+tM + 1}.0.0-0`;\n        }\n        else if (isX(tp)) {\n            to = `<${tM}.${+tm + 1}.0-0`;\n        }\n        else if (tpr) {\n            to = `<=${tM}.${tm}.${tp}-${tpr}`;\n        }\n        else if (options?.includePrerelease) {\n            to = `<${tM}.${tm}.${+tp + 1}-0`;\n        }\n        else {\n            to = `<=${to}`;\n        }\n        return `${from} ${to}`.trim();\n    });\n}\n//# sourceMappingURL=semver.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.massUnwrap = exports.unwrap = exports.massWrap = exports.wrap = void 0;\n// Default to complaining loudly when things don't go according to plan.\n// eslint-disable-next-line no-console\nlet logger = console.error.bind(console);\n// Sets a property on an object, preserving its enumerability.\n// This function assumes that the property is already writable.\nfunction defineProperty(obj, name, value) {\n    const enumerable = !!obj[name] &&\n        Object.prototype.propertyIsEnumerable.call(obj, name);\n    Object.defineProperty(obj, name, {\n        configurable: true,\n        enumerable,\n        writable: true,\n        value,\n    });\n}\nconst wrap = (nodule, name, wrapper) => {\n    if (!nodule || !nodule[name]) {\n        logger('no original function ' + String(name) + ' to wrap');\n        return;\n    }\n    if (!wrapper) {\n        logger('no wrapper function');\n        logger(new Error().stack);\n        return;\n    }\n    const original = nodule[name];\n    if (typeof original !== 'function' || typeof wrapper !== 'function') {\n        logger('original object and wrapper must be functions');\n        return;\n    }\n    const wrapped = wrapper(original, name);\n    defineProperty(wrapped, '__original', original);\n    defineProperty(wrapped, '__unwrap', () => {\n        if (nodule[name] === wrapped) {\n            defineProperty(nodule, name, original);\n        }\n    });\n    defineProperty(wrapped, '__wrapped', true);\n    defineProperty(nodule, name, wrapped);\n    return wrapped;\n};\nexports.wrap = wrap;\nconst massWrap = (nodules, names, wrapper) => {\n    if (!nodules) {\n        logger('must provide one or more modules to patch');\n        logger(new Error().stack);\n        return;\n    }\n    else if (!Array.isArray(nodules)) {\n        nodules = [nodules];\n    }\n    if (!(names && Array.isArray(names))) {\n        logger('must provide one or more functions to wrap on modules');\n        return;\n    }\n    nodules.forEach(nodule => {\n        names.forEach(name => {\n            (0, exports.wrap)(nodule, name, wrapper);\n        });\n    });\n};\nexports.massWrap = massWrap;\nconst unwrap = (nodule, name) => {\n    if (!nodule || !nodule[name]) {\n        logger('no function to unwrap.');\n        logger(new Error().stack);\n        return;\n    }\n    const wrapped = nodule[name];\n    if (!wrapped.__unwrap) {\n        logger('no original to unwrap to -- has ' +\n            String(name) +\n            ' already been unwrapped?');\n    }\n    else {\n        wrapped.__unwrap();\n        return;\n    }\n};\nexports.unwrap = unwrap;\nconst massUnwrap = (nodules, names) => {\n    if (!nodules) {\n        logger('must provide one or more modules to patch');\n        logger(new Error().stack);\n        return;\n    }\n    else if (!Array.isArray(nodules)) {\n        nodules = [nodules];\n    }\n    if (!(names && Array.isArray(names))) {\n        logger('must provide one or more functions to unwrap on modules');\n        return;\n    }\n    nodules.forEach(nodule => {\n        names.forEach(name => {\n            (0, exports.unwrap)(nodule, name);\n        });\n    });\n};\nexports.massUnwrap = massUnwrap;\nfunction shimmer(options) {\n    if (options && options.logger) {\n        if (typeof options.logger !== 'function') {\n            logger(\"new logger isn't a function, not replacing\");\n        }\n        else {\n            logger = options.logger;\n        }\n    }\n}\nexports.default = shimmer;\nshimmer.wrap = exports.wrap;\nshimmer.massWrap = exports.massWrap;\nshimmer.unwrap = exports.unwrap;\nshimmer.massUnwrap = exports.massUnwrap;\n//# sourceMappingURL=shimmer.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationAbstract = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst api_logs_1 = require(\"@opentelemetry/api-logs\");\nconst shimmer = require(\"./shimmer\");\n/**\n * Base abstract internal class for instrumenting node and web plugins\n */\nclass InstrumentationAbstract {\n    instrumentationName;\n    instrumentationVersion;\n    _config = {};\n    _tracer;\n    _meter;\n    _logger;\n    _diag;\n    constructor(instrumentationName, instrumentationVersion, config) {\n        this.instrumentationName = instrumentationName;\n        this.instrumentationVersion = instrumentationVersion;\n        this.setConfig(config);\n        this._diag = api_1.diag.createComponentLogger({\n            namespace: instrumentationName,\n        });\n        this._tracer = api_1.trace.getTracer(instrumentationName, instrumentationVersion);\n        this._meter = api_1.metrics.getMeter(instrumentationName, instrumentationVersion);\n        this._logger = api_logs_1.logs.getLogger(instrumentationName, instrumentationVersion);\n        this._updateMetricInstruments();\n    }\n    /* Api to wrap instrumented method */\n    _wrap = shimmer.wrap;\n    /* Api to unwrap instrumented methods */\n    _unwrap = shimmer.unwrap;\n    /* Api to mass wrap instrumented method */\n    _massWrap = shimmer.massWrap;\n    /* Api to mass unwrap instrumented methods */\n    _massUnwrap = shimmer.massUnwrap;\n    /* Returns meter */\n    get meter() {\n        return this._meter;\n    }\n    /**\n     * Sets MeterProvider to this plugin\n     * @param meterProvider\n     */\n    setMeterProvider(meterProvider) {\n        this._meter = meterProvider.getMeter(this.instrumentationName, this.instrumentationVersion);\n        this._updateMetricInstruments();\n    }\n    /* Returns logger */\n    get logger() {\n        return this._logger;\n    }\n    /**\n     * Sets LoggerProvider to this plugin\n     * @param loggerProvider\n     */\n    setLoggerProvider(loggerProvider) {\n        this._logger = loggerProvider.getLogger(this.instrumentationName, this.instrumentationVersion);\n    }\n    /**\n     * @experimental\n     *\n     * Get module definitions defined by {@link init}.\n     * This can be used for experimental compile-time instrumentation.\n     *\n     * @returns an array of {@link InstrumentationModuleDefinition}\n     */\n    getModuleDefinitions() {\n        const initResult = this.init() ?? [];\n        if (!Array.isArray(initResult)) {\n            return [initResult];\n        }\n        return initResult;\n    }\n    /**\n     * Sets the new metric instruments with the current Meter.\n     */\n    _updateMetricInstruments() {\n        return;\n    }\n    /* Returns InstrumentationConfig */\n    getConfig() {\n        return this._config;\n    }\n    /**\n     * Sets InstrumentationConfig to this plugin\n     * @param config\n     */\n    setConfig(config) {\n        // copy config first level properties to ensure they are immutable.\n        // nested properties are not copied, thus are mutable from the outside.\n        this._config = {\n            enabled: true,\n            ...config,\n        };\n    }\n    /**\n     * Sets TraceProvider to this plugin\n     * @param tracerProvider\n     */\n    setTracerProvider(tracerProvider) {\n        this._tracer = tracerProvider.getTracer(this.instrumentationName, this.instrumentationVersion);\n    }\n    /* Returns tracer */\n    get tracer() {\n        return this._tracer;\n    }\n    /**\n     * Execute span customization hook, if configured, and log any errors.\n     * Any semantics of the trigger and info are defined by the specific instrumentation.\n     * @param hookHandler The optional hook handler which the user has configured via instrumentation config\n     * @param triggerName The name of the trigger for executing the hook for logging purposes\n     * @param span The span to which the hook should be applied\n     * @param info The info object to be passed to the hook, with useful data the hook may use\n     */\n    _runSpanCustomizationHook(hookHandler, triggerName, span, info) {\n        if (!hookHandler) {\n            return;\n        }\n        try {\n            hookHandler(span, info);\n        }\n        catch (e) {\n            this._diag.error(`Error running span customization hook due to exception in handler`, { triggerName }, e);\n        }\n    }\n}\nexports.InstrumentationAbstract = InstrumentationAbstract;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModuleNameTrie = exports.ModuleNameSeparator = void 0;\nexports.ModuleNameSeparator = '/';\n/**\n * Node in a `ModuleNameTrie`\n */\nclass ModuleNameTrieNode {\n    hooks = [];\n    children = new Map();\n}\n/**\n * Trie containing nodes that represent a part of a module name (i.e. the parts separated by forward slash)\n */\nclass ModuleNameTrie {\n    _trie = new ModuleNameTrieNode();\n    _counter = 0;\n    /**\n     * Insert a module hook into the trie\n     *\n     * @param {Hooked} hook Hook\n     */\n    insert(hook) {\n        let trieNode = this._trie;\n        for (const moduleNamePart of hook.moduleName.split(exports.ModuleNameSeparator)) {\n            let nextNode = trieNode.children.get(moduleNamePart);\n            if (!nextNode) {\n                nextNode = new ModuleNameTrieNode();\n                trieNode.children.set(moduleNamePart, nextNode);\n            }\n            trieNode = nextNode;\n        }\n        trieNode.hooks.push({ hook, insertedId: this._counter++ });\n    }\n    /**\n     * Search for matching hooks in the trie\n     *\n     * @param {string} moduleName Module name\n     * @param {boolean} maintainInsertionOrder Whether to return the results in insertion order\n     * @param {boolean} fullOnly Whether to return only full matches\n     * @returns {Hooked[]} Matching hooks\n     */\n    search(moduleName, { maintainInsertionOrder, fullOnly } = {}) {\n        let trieNode = this._trie;\n        const results = [];\n        let foundFull = true;\n        for (const moduleNamePart of moduleName.split(exports.ModuleNameSeparator)) {\n            const nextNode = trieNode.children.get(moduleNamePart);\n            if (!nextNode) {\n                foundFull = false;\n                break;\n            }\n            if (!fullOnly) {\n                results.push(...nextNode.hooks);\n            }\n            trieNode = nextNode;\n        }\n        if (fullOnly && foundFull) {\n            results.push(...trieNode.hooks);\n        }\n        if (results.length === 0) {\n            return [];\n        }\n        if (results.length === 1) {\n            return [results[0].hook];\n        }\n        if (maintainInsertionOrder) {\n            results.sort((a, b) => a.insertedId - b.insertedId);\n        }\n        return results.map(({ hook }) => hook);\n    }\n}\nexports.ModuleNameTrie = ModuleNameTrie;\n//# sourceMappingURL=ModuleNameTrie.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequireInTheMiddleSingleton = void 0;\nconst require_in_the_middle_1 = require(\"require-in-the-middle\");\nconst path = require(\"path\");\nconst ModuleNameTrie_1 = require(\"./ModuleNameTrie\");\n/**\n * Whether Mocha is running in this process\n * Inspired by https://github.com/AndreasPizsa/detect-mocha\n *\n * @type {boolean}\n */\nconst isMocha = [\n    'afterEach',\n    'after',\n    'beforeEach',\n    'before',\n    'describe',\n    'it',\n].every(fn => {\n    // @ts-expect-error TS7053: Element implicitly has an 'any' type\n    return typeof global[fn] === 'function';\n});\n/**\n * Singleton class for `require-in-the-middle`\n * Allows instrumentation plugins to patch modules with only a single `require` patch\n * WARNING: Because this class will create its own `require-in-the-middle` (RITM) instance,\n * we should minimize the number of new instances of this class.\n * Multiple instances of `@opentelemetry/instrumentation` (e.g. multiple versions) in a single process\n * will result in multiple instances of RITM, which will have an impact\n * on the performance of instrumentation hooks being applied.\n */\nclass RequireInTheMiddleSingleton {\n    _moduleNameTrie = new ModuleNameTrie_1.ModuleNameTrie();\n    static _instance;\n    constructor() {\n        this._initialize();\n    }\n    _initialize() {\n        new require_in_the_middle_1.Hook(\n        // Intercept all `require` calls; we will filter the matching ones below\n        null, { internals: true }, (exports, name, basedir) => {\n            // For internal files on Windows, `name` will use backslash as the path separator\n            const normalizedModuleName = normalizePathSeparators(name);\n            const matches = this._moduleNameTrie.search(normalizedModuleName, {\n                maintainInsertionOrder: true,\n                // For core modules (e.g. `fs`), do not match on sub-paths (e.g. `fs/promises').\n                // This matches the behavior of `require-in-the-middle`.\n                // `basedir` is always `undefined` for core modules.\n                fullOnly: basedir === undefined,\n            });\n            for (const { onRequire } of matches) {\n                exports = onRequire(exports, name, basedir);\n            }\n            return exports;\n        });\n    }\n    /**\n     * Register a hook with `require-in-the-middle`\n     *\n     * @param {string} moduleName Module name\n     * @param {OnRequireFn} onRequire Hook function\n     * @returns {Hooked} Registered hook\n     */\n    register(moduleName, onRequire) {\n        const hooked = { moduleName, onRequire };\n        this._moduleNameTrie.insert(hooked);\n        return hooked;\n    }\n    /**\n     * Get the `RequireInTheMiddleSingleton` singleton\n     *\n     * @returns {RequireInTheMiddleSingleton} Singleton of `RequireInTheMiddleSingleton`\n     */\n    static getInstance() {\n        // Mocha runs all test suites in the same process\n        // This prevents test suites from sharing a singleton\n        if (isMocha)\n            return new RequireInTheMiddleSingleton();\n        return (this._instance =\n            this._instance ?? new RequireInTheMiddleSingleton());\n    }\n}\nexports.RequireInTheMiddleSingleton = RequireInTheMiddleSingleton;\n/**\n * Normalize the path separators to forward slash in a module name or path\n *\n * @param {string} moduleNameOrPath Module name or path\n * @returns {string} Normalized module name or path\n */\nfunction normalizePathSeparators(moduleNameOrPath) {\n    return path.sep !== ModuleNameTrie_1.ModuleNameSeparator\n        ? moduleNameOrPath.split(path.sep).join(ModuleNameTrie_1.ModuleNameSeparator)\n        : moduleNameOrPath;\n}\n//# sourceMappingURL=RequireInTheMiddleSingleton.js.map",
-    "// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.\n//\n// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.\n\nconst importHooks = [] // TODO should this be a Set?\nconst setters = new WeakMap()\nconst getters = new WeakMap()\nconst specifiers = new Map()\nconst toHook = []\n\nconst proxyHandler = {\n  set (target, name, value) {\n    const set = setters.get(target)\n    const setter = set && set[name]\n    if (typeof setter === 'function') {\n      return setter(value)\n    }\n    // If a module doesn't export the property being assigned (e.g. no default\n    // export), there is no setter to call. Don't crash userland code.\n    return true\n  },\n\n  get (target, name) {\n    if (name === Symbol.toStringTag) {\n      return 'Module'\n    }\n\n    const getter = getters.get(target)[name]\n\n    if (typeof getter === 'function') {\n      return getter()\n    }\n  },\n\n  defineProperty (target, property, descriptor) {\n    if ((!('value' in descriptor))) {\n      throw new Error('Getters/setters are not supported for exports property descriptors.')\n    }\n\n    const set = setters.get(target)\n    const setter = set && set[property]\n    if (typeof setter === 'function') {\n      return setter(descriptor.value)\n    }\n    return true\n  }\n}\n\nfunction register (name, namespace, set, get, specifier) {\n  specifiers.set(name, specifier)\n  setters.set(namespace, set)\n  getters.set(namespace, get)\n  const proxy = new Proxy(namespace, proxyHandler)\n  importHooks.forEach(hook => hook(name, proxy, specifier))\n  toHook.push([name, proxy, specifier])\n}\n\nexports.register = register\nexports.importHooks = importHooks\nexports.specifiers = specifiers\nexports.toHook = toHook\n",
-    "// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.\n//\n// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.\n\nconst path = require('path')\nconst moduleDetailsFromPath = require('module-details-from-path')\nconst { fileURLToPath } = require('url')\nconst { MessageChannel } = require('worker_threads')\n\nlet { isBuiltin } = require('module')\nif (!isBuiltin) {\n  isBuiltin = () => true\n}\n\nconst {\n  importHooks,\n  specifiers,\n  toHook\n} = require('./lib/register')\n\nfunction addHook (hook) {\n  importHooks.push(hook)\n  toHook.forEach(([name, namespace, specifier]) => hook(name, namespace, specifier))\n}\n\nfunction removeHook (hook) {\n  const index = importHooks.indexOf(hook)\n  if (index > -1) {\n    importHooks.splice(index, 1)\n  }\n}\n\nfunction callHookFn (hookFn, namespace, name, baseDir) {\n  const newDefault = hookFn(namespace, name, baseDir)\n  if (newDefault && newDefault !== namespace) {\n    // Only ESM modules that actually export `default` can have it reassigned.\n    // Some hooks return a value unconditionally; avoid crashing when the module\n    // has no default export (see issue #188).\n    if ('default' in namespace) {\n      namespace.default = newDefault\n    }\n  }\n}\n\nlet sendModulesToLoader\n\n/**\n * EXPERIMENTAL\n * This feature is experimental and may change in minor versions.\n * **NOTE** This feature is incompatible with the {internals: true} Hook option.\n *\n * Creates a message channel with a port that can be used to add hooks to the\n * list of exclusively included modules.\n *\n * This can be used to only wrap modules that are Hook'ed, however modules need\n * to be hooked before they are imported.\n *\n * ```ts\n * import { register } from 'module'\n * import { Hook, createAddHookMessageChannel } from 'import-in-the-middle'\n *\n * const { registerOptions, waitForAllMessagesAcknowledged } = createAddHookMessageChannel()\n *\n * register('import-in-the-middle/hook.mjs', import.meta.url, registerOptions)\n *\n * Hook(['fs'], (exported, name, baseDir) => {\n *   // Instrument the fs module\n * })\n *\n * // Ensure that the loader has acknowledged all the modules\n * // before we allow execution to continue\n * await waitForAllMessagesAcknowledged()\n * ```\n */\nfunction createAddHookMessageChannel () {\n  const { port1, port2 } = new MessageChannel()\n  let pendingAckCount = 0\n  let resolveFn\n\n  sendModulesToLoader = (modules) => {\n    pendingAckCount++\n    port1.postMessage(modules)\n  }\n\n  port1.on('message', () => {\n    pendingAckCount--\n\n    if (resolveFn && pendingAckCount <= 0) {\n      resolveFn()\n    }\n  }).unref()\n\n  function waitForAllMessagesAcknowledged () {\n    // This timer is to prevent the process from exiting with code 13:\n    // 13: Unsettled Top-Level Await.\n    const timer = setInterval(() => { }, 1000)\n    const promise = new Promise((resolve) => {\n      resolveFn = resolve\n    }).then(() => { clearInterval(timer) })\n\n    if (pendingAckCount === 0) {\n      resolveFn()\n    }\n\n    return promise\n  }\n\n  const addHookMessagePort = port2\n  const registerOptions = { data: { addHookMessagePort, include: [] }, transferList: [addHookMessagePort] }\n\n  return { registerOptions, addHookMessagePort, waitForAllMessagesAcknowledged }\n}\n\nfunction Hook (modules, options, hookFn) {\n  if ((this instanceof Hook) === false) return new Hook(modules, options, hookFn)\n  if (typeof modules === 'function') {\n    hookFn = modules\n    modules = null\n    options = null\n  } else if (typeof options === 'function') {\n    hookFn = options\n    options = null\n  }\n  const internals = options ? options.internals === true : false\n\n  if (sendModulesToLoader && Array.isArray(modules)) {\n    sendModulesToLoader(modules)\n  }\n\n  this._iitmHook = (name, namespace, specifier) => {\n    const loadUrl = name\n    const isNodeUrl = loadUrl.startsWith('node:')\n    let filePath, baseDir\n\n    if (isNodeUrl) {\n      // Normalize builtin module name to *not* have 'node:' prefix, unless\n      // required, as it is for 'node:test' and some others.  `module.isBuiltin`\n      // is available in all Node.js versions that have node:-only modules.\n      const unprefixed = name.slice(5)\n      if (isBuiltin(unprefixed)) {\n        name = unprefixed\n      }\n    } else if (loadUrl.startsWith('file://')) {\n      const stackTraceLimit = Error.stackTraceLimit\n      Error.stackTraceLimit = 0\n      try {\n        filePath = fileURLToPath(name)\n        name = filePath\n      } catch (e) {}\n      Error.stackTraceLimit = stackTraceLimit\n\n      if (filePath) {\n        const details = moduleDetailsFromPath(filePath)\n        if (details) {\n          name = details.name\n          baseDir = details.basedir\n        }\n      }\n    }\n\n    if (modules) {\n      for (const matchArg of modules) {\n        if (filePath && matchArg === filePath) {\n          // abspath match\n          callHookFn(hookFn, namespace, filePath, undefined)\n        } else if (matchArg === name) {\n          if (!baseDir) {\n            // built-in module (or unexpected non file:// name?)\n            callHookFn(hookFn, namespace, name, baseDir)\n          } else if (baseDir.endsWith(specifiers.get(loadUrl))) {\n            // An import of the top-level module (e.g. `import 'ioredis'`).\n            // Note: Slight behaviour difference from RITM. RITM uses\n            // `require.resolve(name)` to see if filename is the module\n            // main file, which will catch `require('ioredis/built/index.js')`.\n            // The check here will not catch `import 'ioredis/built/index.js'`.\n            callHookFn(hookFn, namespace, name, baseDir)\n          } else if (internals) {\n            const internalPath = name + path.sep + path.relative(baseDir, filePath)\n            callHookFn(hookFn, namespace, internalPath, baseDir)\n          }\n        } else if (matchArg === specifier) {\n          callHookFn(hookFn, namespace, specifier, baseDir)\n        }\n      }\n    } else {\n      callHookFn(hookFn, namespace, name, baseDir)\n    }\n  }\n\n  addHook(this._iitmHook)\n}\n\nHook.prototype.unhook = function () {\n  removeHook(this._iitmHook)\n}\n\nmodule.exports = Hook\nmodule.exports.Hook = Hook\nmodule.exports.addHook = addHook\nmodule.exports.removeHook = removeHook\nmodule.exports.createAddHookMessageChannel = createAddHookMessageChannel\n",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isWrapped = exports.safeExecuteInTheMiddleAsync = exports.safeExecuteInTheMiddle = void 0;\n/**\n * function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nfunction safeExecuteInTheMiddle(execute, onFinish, preventThrowingError) {\n    let error;\n    let result;\n    try {\n        result = execute();\n    }\n    catch (e) {\n        error = e;\n    }\n    finally {\n        onFinish(error, result);\n        if (error && !preventThrowingError) {\n            // eslint-disable-next-line no-unsafe-finally\n            throw error;\n        }\n        // eslint-disable-next-line no-unsafe-finally\n        return result;\n    }\n}\nexports.safeExecuteInTheMiddle = safeExecuteInTheMiddle;\n/**\n * Async function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nasync function safeExecuteInTheMiddleAsync(execute, onFinish, preventThrowingError) {\n    let error;\n    let result;\n    try {\n        result = await execute();\n    }\n    catch (e) {\n        error = e;\n    }\n    finally {\n        onFinish(error, result);\n        if (error && !preventThrowingError) {\n            // eslint-disable-next-line no-unsafe-finally\n            throw error;\n        }\n        // eslint-disable-next-line no-unsafe-finally\n        return result;\n    }\n}\nexports.safeExecuteInTheMiddleAsync = safeExecuteInTheMiddleAsync;\n/**\n * Checks if certain function has been already wrapped\n * @param func\n */\nfunction isWrapped(func) {\n    return (typeof func === 'function' &&\n        typeof func.__original === 'function' &&\n        typeof func.__unwrap === 'function' &&\n        func.__wrapped === true);\n}\nexports.isWrapped = isWrapped;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationBase = void 0;\nconst path = require(\"path\");\nconst util_1 = require(\"util\");\nconst semver_1 = require(\"../../semver\");\nconst shimmer_1 = require(\"../../shimmer\");\nconst instrumentation_1 = require(\"../../instrumentation\");\nconst RequireInTheMiddleSingleton_1 = require(\"./RequireInTheMiddleSingleton\");\nconst import_in_the_middle_1 = require(\"import-in-the-middle\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst require_in_the_middle_1 = require(\"require-in-the-middle\");\nconst fs_1 = require(\"fs\");\nconst utils_1 = require(\"../../utils\");\n/**\n * Base abstract class for instrumenting node plugins\n */\nclass InstrumentationBase extends instrumentation_1.InstrumentationAbstract {\n    _modules;\n    _hooks = [];\n    _requireInTheMiddleSingleton = RequireInTheMiddleSingleton_1.RequireInTheMiddleSingleton.getInstance();\n    _enabled = false;\n    constructor(instrumentationName, instrumentationVersion, config) {\n        super(instrumentationName, instrumentationVersion, config);\n        let modules = this.init();\n        if (modules && !Array.isArray(modules)) {\n            modules = [modules];\n        }\n        this._modules = modules || [];\n        if (this._config.enabled) {\n            this.enable();\n        }\n    }\n    _wrap = (moduleExports, name, wrapper) => {\n        if ((0, utils_1.isWrapped)(moduleExports[name])) {\n            this._unwrap(moduleExports, name);\n        }\n        if (!util_1.types.isProxy(moduleExports)) {\n            return (0, shimmer_1.wrap)(moduleExports, name, wrapper);\n        }\n        else {\n            const wrapped = (0, shimmer_1.wrap)(Object.assign({}, moduleExports), name, wrapper);\n            Object.defineProperty(moduleExports, name, {\n                value: wrapped,\n            });\n            return wrapped;\n        }\n    };\n    _unwrap = (moduleExports, name) => {\n        if (!util_1.types.isProxy(moduleExports)) {\n            return (0, shimmer_1.unwrap)(moduleExports, name);\n        }\n        else {\n            return Object.defineProperty(moduleExports, name, {\n                value: moduleExports[name],\n            });\n        }\n    };\n    _massWrap = (moduleExportsArray, names, wrapper) => {\n        if (!moduleExportsArray) {\n            api_1.diag.error('must provide one or more modules to patch');\n            return;\n        }\n        else if (!Array.isArray(moduleExportsArray)) {\n            moduleExportsArray = [moduleExportsArray];\n        }\n        if (!(names && Array.isArray(names))) {\n            api_1.diag.error('must provide one or more functions to wrap on modules');\n            return;\n        }\n        moduleExportsArray.forEach(moduleExports => {\n            names.forEach(name => {\n                this._wrap(moduleExports, name, wrapper);\n            });\n        });\n    };\n    _massUnwrap = (moduleExportsArray, names) => {\n        if (!moduleExportsArray) {\n            api_1.diag.error('must provide one or more modules to patch');\n            return;\n        }\n        else if (!Array.isArray(moduleExportsArray)) {\n            moduleExportsArray = [moduleExportsArray];\n        }\n        if (!(names && Array.isArray(names))) {\n            api_1.diag.error('must provide one or more functions to wrap on modules');\n            return;\n        }\n        moduleExportsArray.forEach(moduleExports => {\n            names.forEach(name => {\n                this._unwrap(moduleExports, name);\n            });\n        });\n    };\n    _warnOnPreloadedModules() {\n        this._modules.forEach((module) => {\n            const { name } = module;\n            try {\n                const resolvedModule = require.resolve(name);\n                if (require.cache[resolvedModule]) {\n                    // Module is already cached, which means the instrumentation hook might not work\n                    this._diag.warn(`Module ${name} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${name}`);\n                }\n            }\n            catch {\n                // Module isn't available, we can simply skip\n            }\n        });\n    }\n    _extractPackageVersion(baseDir) {\n        try {\n            const json = (0, fs_1.readFileSync)(path.join(baseDir, 'package.json'), {\n                encoding: 'utf8',\n            });\n            const version = JSON.parse(json).version;\n            return typeof version === 'string' ? version : undefined;\n        }\n        catch {\n            api_1.diag.warn('Failed extracting version', baseDir);\n        }\n        return undefined;\n    }\n    _onRequire(module, exports, name, baseDir) {\n        if (!baseDir) {\n            if (typeof module.patch === 'function') {\n                module.moduleExports = exports;\n                if (this._enabled) {\n                    this._diag.debug('Applying instrumentation patch for nodejs core module on require hook', {\n                        module: module.name,\n                    });\n                    return module.patch(exports);\n                }\n            }\n            return exports;\n        }\n        const version = this._extractPackageVersion(baseDir);\n        module.moduleVersion = version;\n        if (module.name === name) {\n            // main module\n            if (isSupported(module.supportedVersions, version, module.includePrerelease)) {\n                if (typeof module.patch === 'function') {\n                    module.moduleExports = exports;\n                    if (this._enabled) {\n                        this._diag.debug('Applying instrumentation patch for module on require hook', {\n                            module: module.name,\n                            version: module.moduleVersion,\n                            baseDir,\n                        });\n                        return module.patch(exports, module.moduleVersion);\n                    }\n                }\n            }\n            return exports;\n        }\n        // internal file\n        const files = module.files ?? [];\n        const normalizedName = path.normalize(name);\n        const supportedFileInstrumentations = files\n            .filter(f => f.name === normalizedName)\n            .filter(f => isSupported(f.supportedVersions, version, module.includePrerelease));\n        return supportedFileInstrumentations.reduce((patchedExports, file) => {\n            file.moduleExports = patchedExports;\n            if (this._enabled) {\n                this._diag.debug('Applying instrumentation patch for nodejs module file on require hook', {\n                    module: module.name,\n                    version: module.moduleVersion,\n                    fileName: file.name,\n                    baseDir,\n                });\n                // patch signature is not typed, so we cast it assuming it's correct\n                return file.patch(patchedExports, module.moduleVersion);\n            }\n            return patchedExports;\n        }, exports);\n    }\n    enable() {\n        if (this._enabled) {\n            return;\n        }\n        this._enabled = true;\n        // already hooked, just call patch again\n        if (this._hooks.length > 0) {\n            for (const module of this._modules) {\n                if (typeof module.patch === 'function' && module.moduleExports) {\n                    this._diag.debug('Applying instrumentation patch for nodejs module on instrumentation enabled', {\n                        module: module.name,\n                        version: module.moduleVersion,\n                    });\n                    module.patch(module.moduleExports, module.moduleVersion);\n                }\n                for (const file of module.files) {\n                    if (file.moduleExports) {\n                        this._diag.debug('Applying instrumentation patch for nodejs module file on instrumentation enabled', {\n                            module: module.name,\n                            version: module.moduleVersion,\n                            fileName: file.name,\n                        });\n                        file.patch(file.moduleExports, module.moduleVersion);\n                    }\n                }\n            }\n            return;\n        }\n        this._warnOnPreloadedModules();\n        for (const module of this._modules) {\n            const hookFn = (exports, name, baseDir) => {\n                if (!baseDir && path.isAbsolute(name)) {\n                    const parsedPath = path.parse(name);\n                    name = parsedPath.name;\n                    baseDir = parsedPath.dir;\n                }\n                return this._onRequire(module, exports, name, baseDir);\n            };\n            const onRequire = (exports, name, baseDir) => {\n                return this._onRequire(module, exports, name, baseDir);\n            };\n            // `RequireInTheMiddleSingleton` does not support absolute paths.\n            // For an absolute paths, we must create a separate instance of the\n            // require-in-the-middle `Hook`.\n            const hook = path.isAbsolute(module.name)\n                ? new require_in_the_middle_1.Hook([module.name], { internals: true }, onRequire)\n                : this._requireInTheMiddleSingleton.register(module.name, onRequire);\n            this._hooks.push(hook);\n            const esmHook = new import_in_the_middle_1.Hook([module.name], { internals: false }, hookFn);\n            this._hooks.push(esmHook);\n        }\n    }\n    disable() {\n        if (!this._enabled) {\n            return;\n        }\n        this._enabled = false;\n        for (const module of this._modules) {\n            if (typeof module.unpatch === 'function' && module.moduleExports) {\n                this._diag.debug('Removing instrumentation patch for nodejs module on instrumentation disabled', {\n                    module: module.name,\n                    version: module.moduleVersion,\n                });\n                module.unpatch(module.moduleExports, module.moduleVersion);\n            }\n            for (const file of module.files) {\n                if (file.moduleExports) {\n                    this._diag.debug('Removing instrumentation patch for nodejs module file on instrumentation disabled', {\n                        module: module.name,\n                        version: module.moduleVersion,\n                        fileName: file.name,\n                    });\n                    file.unpatch(file.moduleExports, module.moduleVersion);\n                }\n            }\n        }\n    }\n    isEnabled() {\n        return this._enabled;\n    }\n}\nexports.InstrumentationBase = InstrumentationBase;\nfunction isSupported(supportedVersions, version, includePrerelease) {\n    if (typeof version === 'undefined') {\n        // If we don't have the version, accept the wildcard case only\n        return supportedVersions.includes('*');\n    }\n    return supportedVersions.some(supportedVersion => {\n        return (0, semver_1.satisfies)(version, supportedVersion, { includePrerelease });\n    });\n}\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = void 0;\nvar path_1 = require(\"path\");\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return path_1.normalize; } });\n//# sourceMappingURL=normalize.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = exports.InstrumentationBase = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return instrumentation_1.InstrumentationBase; } });\nvar normalize_1 = require(\"./normalize\");\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return normalize_1.normalize; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = exports.InstrumentationBase = void 0;\nvar node_1 = require(\"./node\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return node_1.InstrumentationBase; } });\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return node_1.normalize; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationNodeModuleDefinition = void 0;\nclass InstrumentationNodeModuleDefinition {\n    name;\n    supportedVersions;\n    patch;\n    unpatch;\n    files;\n    constructor(name, supportedVersions, \n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    patch, \n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    unpatch, files) {\n        this.name = name;\n        this.supportedVersions = supportedVersions;\n        this.patch = patch;\n        this.unpatch = unpatch;\n        this.files = files || [];\n    }\n}\nexports.InstrumentationNodeModuleDefinition = InstrumentationNodeModuleDefinition;\n//# sourceMappingURL=instrumentationNodeModuleDefinition.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationNodeModuleFile = void 0;\nconst index_1 = require(\"./platform/index\");\nclass InstrumentationNodeModuleFile {\n    supportedVersions;\n    patch;\n    unpatch;\n    name;\n    constructor(name, supportedVersions, \n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    patch, \n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    unpatch) {\n        this.supportedVersions = supportedVersions;\n        this.patch = patch;\n        this.unpatch = unpatch;\n        this.name = (0, index_1.normalize)(name);\n    }\n}\nexports.InstrumentationNodeModuleFile = InstrumentationNodeModuleFile;\n//# sourceMappingURL=instrumentationNodeModuleFile.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semconvStabilityFromStr = exports.SemconvStability = void 0;\nvar SemconvStability;\n(function (SemconvStability) {\n    /** Emit only stable semantic conventions. */\n    SemconvStability[SemconvStability[\"STABLE\"] = 1] = \"STABLE\";\n    /** Emit only old semantic conventions. */\n    SemconvStability[SemconvStability[\"OLD\"] = 2] = \"OLD\";\n    /** Emit both stable and old semantic conventions. */\n    SemconvStability[SemconvStability[\"DUPLICATE\"] = 3] = \"DUPLICATE\";\n})(SemconvStability = exports.SemconvStability || (exports.SemconvStability = {}));\n/**\n * Determine the appropriate semconv stability for the given namespace.\n *\n * This will parse the given string of comma-separated values (often\n * `process.env.OTEL_SEMCONV_STABILITY_OPT_IN`) looking for the `${namespace}`\n * or `${namespace}/dup` tokens. This is a pattern defined by a number of\n * non-normative semconv documents.\n *\n * For example:\n * - namespace 'http': https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\n * - namespace 'database': https://opentelemetry.io/docs/specs/semconv/non-normative/database-migration/\n * - namespace 'k8s': https://opentelemetry.io/docs/specs/semconv/non-normative/k8s-migration/\n *\n * Usage:\n *\n *  import {SemconvStability, semconvStabilityFromStr} from '@opentelemetry/instrumentation';\n *\n *  export class FooInstrumentation extends InstrumentationBase {\n *    private _semconvStability: SemconvStability;\n *    constructor(config: FooInstrumentationConfig = {}) {\n *      super('@opentelemetry/instrumentation-foo', VERSION, config);\n *\n *      // When supporting the OTEL_SEMCONV_STABILITY_OPT_IN envvar\n *      this._semconvStability = semconvStabilityFromStr(\n *        'http',\n *        process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n *      );\n *\n *      // or when supporting a `semconvStabilityOptIn` config option (e.g. for\n *      // the web where there are no envvars).\n *      this._semconvStability = semconvStabilityFromStr(\n *        'http',\n *        config?.semconvStabilityOptIn\n *      );\n *    }\n *  }\n *\n *  // Then, to apply semconv, use the following or similar:\n *  if (this._semconvStability & SemconvStability.OLD) {\n *    // ...\n *  }\n *  if (this._semconvStability & SemconvStability.STABLE) {\n *    // ...\n *  }\n *\n */\nfunction semconvStabilityFromStr(namespace, str) {\n    let semconvStability = SemconvStability.OLD;\n    // The same parsing of `str` as `getStringListFromEnv` from the core pkg.\n    const entries = str\n        ?.split(',')\n        .map(v => v.trim())\n        .filter(s => s !== '');\n    for (const entry of entries ?? []) {\n        if (entry.toLowerCase() === namespace + '/dup') {\n            // DUPLICATE takes highest precedence.\n            semconvStability = SemconvStability.DUPLICATE;\n            break;\n        }\n        else if (entry.toLowerCase() === namespace) {\n            semconvStability = SemconvStability.STABLE;\n        }\n    }\n    return semconvStability;\n}\nexports.semconvStabilityFromStr = semconvStabilityFromStr;\n//# sourceMappingURL=semconvStability.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semconvStabilityFromStr = exports.SemconvStability = exports.safeExecuteInTheMiddleAsync = exports.safeExecuteInTheMiddle = exports.isWrapped = exports.InstrumentationNodeModuleFile = exports.InstrumentationNodeModuleDefinition = exports.InstrumentationBase = exports.registerInstrumentations = void 0;\nvar autoLoader_1 = require(\"./autoLoader\");\nObject.defineProperty(exports, \"registerInstrumentations\", { enumerable: true, get: function () { return autoLoader_1.registerInstrumentations; } });\nvar index_1 = require(\"./platform/index\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return index_1.InstrumentationBase; } });\nvar instrumentationNodeModuleDefinition_1 = require(\"./instrumentationNodeModuleDefinition\");\nObject.defineProperty(exports, \"InstrumentationNodeModuleDefinition\", { enumerable: true, get: function () { return instrumentationNodeModuleDefinition_1.InstrumentationNodeModuleDefinition; } });\nvar instrumentationNodeModuleFile_1 = require(\"./instrumentationNodeModuleFile\");\nObject.defineProperty(exports, \"InstrumentationNodeModuleFile\", { enumerable: true, get: function () { return instrumentationNodeModuleFile_1.InstrumentationNodeModuleFile; } });\nvar utils_1 = require(\"./utils\");\nObject.defineProperty(exports, \"isWrapped\", { enumerable: true, get: function () { return utils_1.isWrapped; } });\nObject.defineProperty(exports, \"safeExecuteInTheMiddle\", { enumerable: true, get: function () { return utils_1.safeExecuteInTheMiddle; } });\nObject.defineProperty(exports, \"safeExecuteInTheMiddleAsync\", { enumerable: true, get: function () { return utils_1.safeExecuteInTheMiddleAsync; } });\nvar semconvStability_1 = require(\"./semconvStability\");\nObject.defineProperty(exports, \"SemconvStability\", { enumerable: true, get: function () { return semconvStability_1.SemconvStability; } });\nObject.defineProperty(exports, \"semconvStabilityFromStr\", { enumerable: true, get: function () { return semconvStability_1.semconvStabilityFromStr; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.59.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-hapi';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HapiLifecycleMethodNames = exports.HapiLayerType = exports.handlerPatched = exports.HapiComponentName = void 0;\nexports.HapiComponentName = '@hapi/hapi';\n/**\n * This symbol is used to mark a Hapi route handler or server extension handler as\n * already patched, since its possible to use these handlers multiple times\n * i.e. when allowing multiple versions of one plugin, or when registering a plugin\n * multiple times on different servers.\n */\nexports.handlerPatched = Symbol('hapi-handler-patched');\nexports.HapiLayerType = {\n    ROUTER: 'router',\n    PLUGIN: 'plugin',\n    EXT: 'server.ext',\n};\nexports.HapiLifecycleMethodNames = new Set([\n    'onPreAuth',\n    'onCredentials',\n    'onPostAuth',\n    'onPreHandler',\n    'onPostHandler',\n    'onPreResponse',\n    'onRequest',\n]);\n//# sourceMappingURL=internal-types.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ATTR_HTTP_METHOD = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `http.request.method` instead.\n *\n * @example GET\n * @example POST\n * @example HEAD\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.method`.\n */\nexports.ATTR_HTTP_METHOD = 'http.method';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar AttributeNames;\n(function (AttributeNames) {\n    AttributeNames[\"HAPI_TYPE\"] = \"hapi.type\";\n    AttributeNames[\"PLUGIN_NAME\"] = \"hapi.plugin.name\";\n    AttributeNames[\"EXT_TYPE\"] = \"server.ext.type\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getPluginFromInput = exports.getExtMetadata = exports.getRouteMetadata = exports.isPatchableExtMethod = exports.isDirectExtInput = exports.isLifecycleExtEventObj = exports.isLifecycleExtType = exports.getPluginName = void 0;\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst internal_types_1 = require(\"./internal-types\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nfunction getPluginName(plugin) {\n    if (plugin.name) {\n        return plugin.name;\n    }\n    else {\n        return plugin.pkg.name;\n    }\n}\nexports.getPluginName = getPluginName;\nconst isLifecycleExtType = (variableToCheck) => {\n    return (typeof variableToCheck === 'string' &&\n        internal_types_1.HapiLifecycleMethodNames.has(variableToCheck));\n};\nexports.isLifecycleExtType = isLifecycleExtType;\nconst isLifecycleExtEventObj = (variableToCheck) => {\n    const event = variableToCheck?.type;\n    return event !== undefined && (0, exports.isLifecycleExtType)(event);\n};\nexports.isLifecycleExtEventObj = isLifecycleExtEventObj;\nconst isDirectExtInput = (variableToCheck) => {\n    return (Array.isArray(variableToCheck) &&\n        variableToCheck.length <= 3 &&\n        (0, exports.isLifecycleExtType)(variableToCheck[0]) &&\n        typeof variableToCheck[1] === 'function');\n};\nexports.isDirectExtInput = isDirectExtInput;\nconst isPatchableExtMethod = (variableToCheck) => {\n    return !Array.isArray(variableToCheck);\n};\nexports.isPatchableExtMethod = isPatchableExtMethod;\nconst getRouteMetadata = (route, semconvStability, pluginName) => {\n    const attributes = {\n        [semantic_conventions_1.ATTR_HTTP_ROUTE]: route.path,\n    };\n    if (semconvStability & instrumentation_1.SemconvStability.OLD) {\n        attributes[semconv_1.ATTR_HTTP_METHOD] = route.method;\n    }\n    if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n        // Note: This currently does *not* normalize the method name to uppercase\n        // and conditionally include `http.request.method.original` as described\n        // at https://opentelemetry.io/docs/specs/semconv/http/http-spans/\n        // These attributes are for a *hapi* span, and not the parent HTTP span,\n        // so the HTTP span guidance doesn't strictly apply.\n        attributes[semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD] = route.method;\n    }\n    let name;\n    if (pluginName) {\n        attributes[AttributeNames_1.AttributeNames.HAPI_TYPE] = internal_types_1.HapiLayerType.PLUGIN;\n        attributes[AttributeNames_1.AttributeNames.PLUGIN_NAME] = pluginName;\n        name = `${pluginName}: route - ${route.path}`;\n    }\n    else {\n        attributes[AttributeNames_1.AttributeNames.HAPI_TYPE] = internal_types_1.HapiLayerType.ROUTER;\n        name = `route - ${route.path}`;\n    }\n    return { attributes, name };\n};\nexports.getRouteMetadata = getRouteMetadata;\nconst getExtMetadata = (extPoint, pluginName) => {\n    if (pluginName) {\n        return {\n            attributes: {\n                [AttributeNames_1.AttributeNames.EXT_TYPE]: extPoint,\n                [AttributeNames_1.AttributeNames.HAPI_TYPE]: internal_types_1.HapiLayerType.EXT,\n                [AttributeNames_1.AttributeNames.PLUGIN_NAME]: pluginName,\n            },\n            name: `${pluginName}: ext - ${extPoint}`,\n        };\n    }\n    return {\n        attributes: {\n            [AttributeNames_1.AttributeNames.EXT_TYPE]: extPoint,\n            [AttributeNames_1.AttributeNames.HAPI_TYPE]: internal_types_1.HapiLayerType.EXT,\n        },\n        name: `ext - ${extPoint}`,\n    };\n};\nexports.getExtMetadata = getExtMetadata;\nconst getPluginFromInput = (pluginObj) => {\n    if ('plugin' in pluginObj) {\n        if ('plugin' in pluginObj.plugin) {\n            return pluginObj.plugin.plugin;\n        }\n        return pluginObj.plugin;\n    }\n    return pluginObj;\n};\nexports.getPluginFromInput = getPluginFromInput;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HapiInstrumentation = void 0;\nconst api = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst internal_types_1 = require(\"./internal-types\");\nconst utils_1 = require(\"./utils\");\n/** Hapi instrumentation for OpenTelemetry */\nclass HapiInstrumentation extends instrumentation_1.InstrumentationBase {\n    _semconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._semconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    init() {\n        return new instrumentation_1.InstrumentationNodeModuleDefinition(internal_types_1.HapiComponentName, ['>=17.0.0 <22'], (module) => {\n            const moduleExports = module[Symbol.toStringTag] === 'Module' ? module.default : module;\n            if (!(0, instrumentation_1.isWrapped)(moduleExports.server)) {\n                this._wrap(moduleExports, 'server', this._getServerPatch.bind(this));\n            }\n            if (!(0, instrumentation_1.isWrapped)(moduleExports.Server)) {\n                this._wrap(moduleExports, 'Server', this._getServerPatch.bind(this));\n            }\n            return moduleExports;\n        }, (module) => {\n            const moduleExports = module[Symbol.toStringTag] === 'Module' ? module.default : module;\n            this._massUnwrap([moduleExports], ['server', 'Server']);\n        });\n    }\n    /**\n     * Patches the Hapi.server and Hapi.Server functions in order to instrument\n     * the server.route, server.ext, and server.register functions via calls to the\n     * @function _getServerRoutePatch, @function _getServerExtPatch, and\n     * @function _getServerRegisterPatch functions\n     * @param original - the original Hapi Server creation function\n     */\n    _getServerPatch(original) {\n        const instrumentation = this;\n        const self = this;\n        return function server(opts) {\n            const newServer = original.apply(this, [opts]);\n            self._wrap(newServer, 'route', originalRouter => {\n                return instrumentation._getServerRoutePatch.bind(instrumentation)(originalRouter);\n            });\n            // Casting as any is necessary here due to multiple overloads on the Hapi.ext\n            // function, which requires supporting a variety of different parameters\n            // as extension inputs\n            self._wrap(newServer, 'ext', originalExtHandler => {\n                return instrumentation._getServerExtPatch.bind(instrumentation)(\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                originalExtHandler);\n            });\n            // Casting as any is necessary here due to multiple overloads on the Hapi.Server.register\n            // function, which requires supporting a variety of different types of Plugin inputs\n            self._wrap(newServer, 'register', \n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            instrumentation._getServerRegisterPatch.bind(instrumentation));\n            return newServer;\n        };\n    }\n    /**\n     * Patches the plugin register function used by the Hapi Server. This function\n     * goes through each plugin that is being registered and adds instrumentation\n     * via a call to the @function _wrapRegisterHandler function.\n     * @param {RegisterFunction} original - the original register function which\n     * registers each plugin on the server\n     */\n    _getServerRegisterPatch(original) {\n        const instrumentation = this;\n        return function register(pluginInput, options) {\n            if (Array.isArray(pluginInput)) {\n                for (const pluginObj of pluginInput) {\n                    const plugin = (0, utils_1.getPluginFromInput)(pluginObj);\n                    instrumentation._wrapRegisterHandler(plugin);\n                }\n            }\n            else {\n                const plugin = (0, utils_1.getPluginFromInput)(pluginInput);\n                instrumentation._wrapRegisterHandler(plugin);\n            }\n            return original.apply(this, [pluginInput, options]);\n        };\n    }\n    /**\n     * Patches the Server.ext function which adds extension methods to the specified\n     * point along the request lifecycle. This function accepts the full range of\n     * accepted input into the standard Hapi `server.ext` function. For each extension,\n     * it adds instrumentation to the handler via a call to the @function _wrapExtMethods\n     * function.\n     * @param original - the original ext function which adds the extension method to the server\n     * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n     * for adding this server extension. Else, signifies that the extension was added directly\n     */\n    _getServerExtPatch(original, pluginName) {\n        const instrumentation = this;\n        return function ext(...args) {\n            if (Array.isArray(args[0])) {\n                const eventsList = args[0];\n                for (let i = 0; i < eventsList.length; i++) {\n                    const eventObj = eventsList[i];\n                    if ((0, utils_1.isLifecycleExtType)(eventObj.type)) {\n                        const lifecycleEventObj = eventObj;\n                        const handler = instrumentation._wrapExtMethods(lifecycleEventObj.method, eventObj.type, pluginName);\n                        lifecycleEventObj.method = handler;\n                        eventsList[i] = lifecycleEventObj;\n                    }\n                }\n                return original.apply(this, args);\n            }\n            else if ((0, utils_1.isDirectExtInput)(args)) {\n                const extInput = args;\n                const method = extInput[1];\n                const handler = instrumentation._wrapExtMethods(method, extInput[0], pluginName);\n                return original.apply(this, [extInput[0], handler, extInput[2]]);\n            }\n            else if ((0, utils_1.isLifecycleExtEventObj)(args[0])) {\n                const lifecycleEventObj = args[0];\n                const handler = instrumentation._wrapExtMethods(lifecycleEventObj.method, lifecycleEventObj.type, pluginName);\n                lifecycleEventObj.method = handler;\n                return original.call(this, lifecycleEventObj);\n            }\n            return original.apply(this, args);\n        };\n    }\n    /**\n     * Patches the Server.route function. This function accepts either one or an array\n     * of Hapi.ServerRoute objects and adds instrumentation on each route via a call to\n     * the @function _wrapRouteHandler function.\n     * @param {HapiServerRouteInputMethod} original - the original route function which adds\n     * the route to the server\n     * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n     * for adding this server route. Else, signifies that the route was added directly\n     */\n    _getServerRoutePatch(original, pluginName) {\n        const instrumentation = this;\n        return function route(route) {\n            if (Array.isArray(route)) {\n                for (let i = 0; i < route.length; i++) {\n                    const newRoute = instrumentation._wrapRouteHandler.call(instrumentation, route[i], pluginName);\n                    route[i] = newRoute;\n                }\n            }\n            else {\n                route = instrumentation._wrapRouteHandler.call(instrumentation, route, pluginName);\n            }\n            return original.apply(this, [route]);\n        };\n    }\n    /**\n     * Wraps newly registered plugins to add instrumentation to the plugin's clone of\n     * the original server. Specifically, wraps the server.route and server.ext functions\n     * via calls to @function _getServerRoutePatch and @function _getServerExtPatch\n     * @param {Hapi.Plugin} plugin - the new plugin which is being instrumented\n     */\n    _wrapRegisterHandler(plugin) {\n        const instrumentation = this;\n        const pluginName = (0, utils_1.getPluginName)(plugin);\n        const oldRegister = plugin.register;\n        const self = this;\n        const newRegisterHandler = function (server, options) {\n            self._wrap(server, 'route', original => {\n                return instrumentation._getServerRoutePatch.bind(instrumentation)(original, pluginName);\n            });\n            // Casting as any is necessary here due to multiple overloads on the Hapi.ext\n            // function, which requires supporting a variety of different parameters\n            // as extension inputs\n            self._wrap(server, 'ext', originalExtHandler => {\n                return instrumentation._getServerExtPatch.bind(instrumentation)(\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                originalExtHandler, pluginName);\n            });\n            return oldRegister.call(this, server, options);\n        };\n        plugin.register = newRegisterHandler;\n    }\n    /**\n     * Wraps request extension methods to add instrumentation to each new extension handler.\n     * Patches each individual extension in order to create the\n     * span and propagate context. It does not create spans when there is no parent span.\n     * @param {PatchableExtMethod | PatchableExtMethod[]} method - the request extension\n     * handler which is being instrumented\n     * @param {Hapi.ServerRequestExtType} extPoint - the point in the Hapi request lifecycle\n     * which this extension targets\n     * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n     * for adding this server route. Else, signifies that the route was added directly\n     */\n    _wrapExtMethods(method, extPoint, pluginName) {\n        const instrumentation = this;\n        if (method instanceof Array) {\n            for (let i = 0; i < method.length; i++) {\n                method[i] = instrumentation._wrapExtMethods(method[i], extPoint);\n            }\n            return method;\n        }\n        else if ((0, utils_1.isPatchableExtMethod)(method)) {\n            if (method[internal_types_1.handlerPatched] === true)\n                return method;\n            method[internal_types_1.handlerPatched] = true;\n            const newHandler = async function (...params) {\n                if (api.trace.getSpan(api.context.active()) === undefined) {\n                    return await method.apply(this, params);\n                }\n                const metadata = (0, utils_1.getExtMetadata)(extPoint, pluginName);\n                const span = instrumentation.tracer.startSpan(metadata.name, {\n                    attributes: metadata.attributes,\n                });\n                try {\n                    return await api.context.with(api.trace.setSpan(api.context.active(), span), method, undefined, ...params);\n                }\n                catch (err) {\n                    span.recordException(err);\n                    span.setStatus({\n                        code: api.SpanStatusCode.ERROR,\n                        message: err.message,\n                    });\n                    throw err;\n                }\n                finally {\n                    span.end();\n                }\n            };\n            return newHandler;\n        }\n        return method;\n    }\n    /**\n     * Patches each individual route handler method in order to create the\n     * span and propagate context. It does not create spans when there is no parent span.\n     * @param {PatchableServerRoute} route - the route handler which is being instrumented\n     * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n     * for adding this server route. Else, signifies that the route was added directly\n     */\n    _wrapRouteHandler(route, pluginName) {\n        const instrumentation = this;\n        if (route[internal_types_1.handlerPatched] === true)\n            return route;\n        route[internal_types_1.handlerPatched] = true;\n        const wrapHandler = oldHandler => {\n            return async function (...params) {\n                if (api.trace.getSpan(api.context.active()) === undefined) {\n                    return await oldHandler.call(this, ...params);\n                }\n                const rpcMetadata = (0, core_1.getRPCMetadata)(api.context.active());\n                if (rpcMetadata?.type === core_1.RPCType.HTTP) {\n                    rpcMetadata.route = route.path;\n                }\n                const metadata = (0, utils_1.getRouteMetadata)(route, instrumentation._semconvStability, pluginName);\n                const span = instrumentation.tracer.startSpan(metadata.name, {\n                    attributes: metadata.attributes,\n                });\n                try {\n                    return await api.context.with(api.trace.setSpan(api.context.active(), span), () => oldHandler.call(this, ...params));\n                }\n                catch (err) {\n                    span.recordException(err);\n                    span.setStatus({\n                        code: api.SpanStatusCode.ERROR,\n                        message: err.message,\n                    });\n                    throw err;\n                }\n                finally {\n                    span.end();\n                }\n            };\n        };\n        if (typeof route.handler === 'function') {\n            route.handler = wrapHandler(route.handler);\n        }\n        else if (typeof route.options === 'function') {\n            const oldOptions = route.options;\n            route.options = function (server) {\n                const options = oldOptions(server);\n                if (typeof options.handler === 'function') {\n                    options.handler = wrapHandler(options.handler);\n                }\n                return options;\n            };\n        }\n        else if (typeof route.options?.handler === 'function') {\n            route.options.handler = wrapHandler(route.options.handler);\n        }\n        return route;\n    }\n}\nexports.HapiInstrumentation = HapiInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = exports.HapiInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"HapiInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.HapiInstrumentation; } });\nvar AttributeNames_1 = require(\"./enums/AttributeNames\");\nObject.defineProperty(exports, \"AttributeNames\", { enumerable: true, get: function () { return AttributeNames_1.AttributeNames; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KoaLayerType = void 0;\nvar KoaLayerType;\n(function (KoaLayerType) {\n    KoaLayerType[\"ROUTER\"] = \"router\";\n    KoaLayerType[\"MIDDLEWARE\"] = \"middleware\";\n})(KoaLayerType = exports.KoaLayerType || (exports.KoaLayerType = {}));\n//# sourceMappingURL=types.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.61.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-koa';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar AttributeNames;\n(function (AttributeNames) {\n    AttributeNames[\"KOA_TYPE\"] = \"koa.type\";\n    AttributeNames[\"KOA_NAME\"] = \"koa.name\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isLayerIgnored = exports.getMiddlewareMetadata = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst types_1 = require(\"./types\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst getMiddlewareMetadata = (context, layer, isRouter, layerPath) => {\n    if (isRouter) {\n        return {\n            attributes: {\n                [AttributeNames_1.AttributeNames.KOA_NAME]: layerPath?.toString(),\n                [AttributeNames_1.AttributeNames.KOA_TYPE]: types_1.KoaLayerType.ROUTER,\n                [semantic_conventions_1.ATTR_HTTP_ROUTE]: layerPath?.toString(),\n            },\n            name: context._matchedRouteName || `router - ${layerPath}`,\n        };\n    }\n    else {\n        return {\n            attributes: {\n                [AttributeNames_1.AttributeNames.KOA_NAME]: layer.name ?? 'middleware',\n                [AttributeNames_1.AttributeNames.KOA_TYPE]: types_1.KoaLayerType.MIDDLEWARE,\n            },\n            name: `middleware - ${layer.name}`,\n        };\n    }\n};\nexports.getMiddlewareMetadata = getMiddlewareMetadata;\n/**\n * Check whether the given request is ignored by configuration\n * @param [list] List of ignore patterns\n * @param [onException] callback for doing something when an exception has\n *     occurred\n */\nconst isLayerIgnored = (type, config) => {\n    return !!(Array.isArray(config?.ignoreLayersType) &&\n        config?.ignoreLayersType?.includes(type));\n};\nexports.isLayerIgnored = isLayerIgnored;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.kLayerPatched = void 0;\n/**\n * This symbol is used to mark a Koa layer as being already instrumented\n * since its possible to use a given layer multiple times (ex: middlewares)\n */\nexports.kLayerPatched = Symbol('koa-layer-patched');\n//# sourceMappingURL=internal-types.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KoaInstrumentation = void 0;\nconst api = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst types_1 = require(\"./types\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst utils_1 = require(\"./utils\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst internal_types_1 = require(\"./internal-types\");\n/** Koa instrumentation for OpenTelemetry */\nclass KoaInstrumentation extends instrumentation_1.InstrumentationBase {\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n    }\n    init() {\n        return new instrumentation_1.InstrumentationNodeModuleDefinition('koa', ['>=2.0.0 <4'], (module) => {\n            const moduleExports = module[Symbol.toStringTag] === 'Module'\n                ? module.default // ESM\n                : module; // CommonJS\n            if (moduleExports == null) {\n                return moduleExports;\n            }\n            if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.use)) {\n                this._unwrap(moduleExports.prototype, 'use');\n            }\n            this._wrap(moduleExports.prototype, 'use', this._getKoaUsePatch.bind(this));\n            return module;\n        }, (module) => {\n            const moduleExports = module[Symbol.toStringTag] === 'Module'\n                ? module.default // ESM\n                : module; // CommonJS\n            if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.use)) {\n                this._unwrap(moduleExports.prototype, 'use');\n            }\n        });\n    }\n    /**\n     * Patches the Koa.use function in order to instrument each original\n     * middleware layer which is introduced\n     * @param {KoaMiddleware} middleware - the original middleware function\n     */\n    _getKoaUsePatch(original) {\n        const plugin = this;\n        return function use(middlewareFunction) {\n            let patchedFunction;\n            if (middlewareFunction.router) {\n                patchedFunction = plugin._patchRouterDispatch(middlewareFunction);\n            }\n            else {\n                patchedFunction = plugin._patchLayer(middlewareFunction, false);\n            }\n            return original.apply(this, [patchedFunction]);\n        };\n    }\n    /**\n     * Patches the dispatch function used by @koa/router. This function\n     * goes through each routed middleware and adds instrumentation via a call\n     * to the @function _patchLayer function.\n     * @param {KoaMiddleware} dispatchLayer - the original dispatch function which dispatches\n     * routed middleware\n     */\n    _patchRouterDispatch(dispatchLayer) {\n        api.diag.debug('Patching @koa/router dispatch');\n        const router = dispatchLayer.router;\n        const routesStack = router?.stack ?? [];\n        for (const pathLayer of routesStack) {\n            const path = pathLayer.path;\n            // Type cast needed: router.stack comes from @types/koa@2.x but we use @types/koa@3.x\n            // See internal-types.ts for full explanation\n            const pathStack = pathLayer.stack;\n            for (let j = 0; j < pathStack.length; j++) {\n                const routedMiddleware = pathStack[j];\n                pathStack[j] = this._patchLayer(routedMiddleware, true, path);\n            }\n        }\n        return dispatchLayer;\n    }\n    /**\n     * Patches each individual @param middlewareLayer function in order to create the\n     * span and propagate context. It does not create spans when there is no parent span.\n     * @param {KoaMiddleware} middlewareLayer - the original middleware function.\n     * @param {boolean} isRouter - tracks whether the original middleware function\n     * was dispatched by the router originally\n     * @param {string?} layerPath - if present, provides additional data from the\n     * router about the routed path which the middleware is attached to\n     */\n    _patchLayer(middlewareLayer, isRouter, layerPath) {\n        const layerType = isRouter ? types_1.KoaLayerType.ROUTER : types_1.KoaLayerType.MIDDLEWARE;\n        // Skip patching layer if its ignored in the config\n        if (middlewareLayer[internal_types_1.kLayerPatched] === true ||\n            (0, utils_1.isLayerIgnored)(layerType, this.getConfig()))\n            return middlewareLayer;\n        if (middlewareLayer.constructor.name === 'GeneratorFunction' ||\n            middlewareLayer.constructor.name === 'AsyncGeneratorFunction') {\n            api.diag.debug('ignoring generator-based Koa middleware layer');\n            return middlewareLayer;\n        }\n        middlewareLayer[internal_types_1.kLayerPatched] = true;\n        api.diag.debug('patching Koa middleware layer');\n        return async (context, next) => {\n            const parent = api.trace.getSpan(api.context.active());\n            if (parent === undefined) {\n                return middlewareLayer(context, next);\n            }\n            const metadata = (0, utils_1.getMiddlewareMetadata)(context, middlewareLayer, isRouter, layerPath);\n            const span = this.tracer.startSpan(metadata.name, {\n                attributes: metadata.attributes,\n            });\n            const rpcMetadata = (0, core_1.getRPCMetadata)(api.context.active());\n            if (rpcMetadata?.type === core_1.RPCType.HTTP && context._matchedRoute) {\n                rpcMetadata.route = context._matchedRoute.toString();\n            }\n            const { requestHook } = this.getConfig();\n            if (requestHook) {\n                (0, instrumentation_1.safeExecuteInTheMiddle)(() => requestHook(span, {\n                    context,\n                    middlewareLayer,\n                    layerType,\n                }), e => {\n                    if (e) {\n                        api.diag.error('koa instrumentation: request hook failed', e);\n                    }\n                }, true);\n            }\n            const newContext = api.trace.setSpan(api.context.active(), span);\n            return api.context.with(newContext, async () => {\n                try {\n                    return await middlewareLayer(context, next);\n                }\n                catch (err) {\n                    span.recordException(err);\n                    throw err;\n                }\n                finally {\n                    span.end();\n                }\n            });\n        };\n    }\n}\nexports.KoaInstrumentation = KoaInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KoaLayerType = exports.AttributeNames = exports.KoaInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"KoaInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.KoaInstrumentation; } });\nvar AttributeNames_1 = require(\"./enums/AttributeNames\");\nObject.defineProperty(exports, \"AttributeNames\", { enumerable: true, get: function () { return AttributeNames_1.AttributeNames; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"KoaLayerType\", { enumerable: true, get: function () { return types_1.KoaLayerType; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectNames = exports.ConnectTypes = exports.AttributeNames = void 0;\nvar AttributeNames;\n(function (AttributeNames) {\n    AttributeNames[\"CONNECT_TYPE\"] = \"connect.type\";\n    AttributeNames[\"CONNECT_NAME\"] = \"connect.name\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\nvar ConnectTypes;\n(function (ConnectTypes) {\n    ConnectTypes[\"MIDDLEWARE\"] = \"middleware\";\n    ConnectTypes[\"REQUEST_HANDLER\"] = \"request_handler\";\n})(ConnectTypes = exports.ConnectTypes || (exports.ConnectTypes = {}));\nvar ConnectNames;\n(function (ConnectNames) {\n    ConnectNames[\"MIDDLEWARE\"] = \"middleware\";\n    ConnectNames[\"REQUEST_HANDLER\"] = \"request handler\";\n})(ConnectNames = exports.ConnectNames || (exports.ConnectNames = {}));\n//# sourceMappingURL=AttributeNames.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.56.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-connect';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._LAYERS_STORE_PROPERTY = void 0;\nexports._LAYERS_STORE_PROPERTY = Symbol('opentelemetry.instrumentation-connect.request-route-stack');\n//# sourceMappingURL=internal-types.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateRoute = exports.replaceCurrentStackRoute = exports.addNewStackLayer = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst internal_types_1 = require(\"./internal-types\");\nconst addNewStackLayer = (request) => {\n    if (Array.isArray(request[internal_types_1._LAYERS_STORE_PROPERTY]) === false) {\n        Object.defineProperty(request, internal_types_1._LAYERS_STORE_PROPERTY, {\n            enumerable: false,\n            value: [],\n        });\n    }\n    request[internal_types_1._LAYERS_STORE_PROPERTY].push('/');\n    const stackLength = request[internal_types_1._LAYERS_STORE_PROPERTY].length;\n    return () => {\n        if (stackLength === request[internal_types_1._LAYERS_STORE_PROPERTY].length) {\n            request[internal_types_1._LAYERS_STORE_PROPERTY].pop();\n        }\n        else {\n            api_1.diag.warn('Connect: Trying to pop the stack multiple time');\n        }\n    };\n};\nexports.addNewStackLayer = addNewStackLayer;\nconst replaceCurrentStackRoute = (request, newRoute) => {\n    if (newRoute) {\n        request[internal_types_1._LAYERS_STORE_PROPERTY].splice(-1, 1, newRoute);\n    }\n};\nexports.replaceCurrentStackRoute = replaceCurrentStackRoute;\n// generate route from existing stack on request object.\n// splash between stack layer will be deduped\n// [\"/first/\", \"/second\", \"/third/\"] => /first/second/third/\nconst generateRoute = (request) => {\n    return request[internal_types_1._LAYERS_STORE_PROPERTY].reduce((acc, sub) => acc.replace(/\\/+$/, '') + sub);\n};\nexports.generateRoute = generateRoute;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectInstrumentation = exports.ANONYMOUS_NAME = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst utils_1 = require(\"./utils\");\nexports.ANONYMOUS_NAME = 'anonymous';\n/** Connect instrumentation for OpenTelemetry */\nclass ConnectInstrumentation extends instrumentation_1.InstrumentationBase {\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n    }\n    init() {\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition('connect', ['>=3.0.0 <4'], moduleExports => {\n                return this._patchConstructor(moduleExports);\n            }),\n        ];\n    }\n    _patchApp(patchedApp) {\n        if (!(0, instrumentation_1.isWrapped)(patchedApp.use)) {\n            this._wrap(patchedApp, 'use', this._patchUse.bind(this));\n        }\n        if (!(0, instrumentation_1.isWrapped)(patchedApp.handle)) {\n            this._wrap(patchedApp, 'handle', this._patchHandle.bind(this));\n        }\n    }\n    _patchConstructor(original) {\n        const instrumentation = this;\n        return function (...args) {\n            const app = original.apply(this, args);\n            instrumentation._patchApp(app);\n            return app;\n        };\n    }\n    _patchNext(next, finishSpan) {\n        return function nextFunction(err) {\n            const result = next.apply(this, [err]);\n            finishSpan();\n            return result;\n        };\n    }\n    _startSpan(routeName, middleWare) {\n        let connectType;\n        let connectName;\n        let connectTypeName;\n        if (routeName) {\n            connectType = AttributeNames_1.ConnectTypes.REQUEST_HANDLER;\n            connectTypeName = AttributeNames_1.ConnectNames.REQUEST_HANDLER;\n            connectName = routeName;\n        }\n        else {\n            connectType = AttributeNames_1.ConnectTypes.MIDDLEWARE;\n            connectTypeName = AttributeNames_1.ConnectNames.MIDDLEWARE;\n            connectName = middleWare.name || exports.ANONYMOUS_NAME;\n        }\n        const spanName = `${connectTypeName} - ${connectName}`;\n        const options = {\n            attributes: {\n                [semantic_conventions_1.ATTR_HTTP_ROUTE]: routeName.length > 0 ? routeName : '/',\n                [AttributeNames_1.AttributeNames.CONNECT_TYPE]: connectType,\n                [AttributeNames_1.AttributeNames.CONNECT_NAME]: connectName,\n            },\n        };\n        return this.tracer.startSpan(spanName, options);\n    }\n    _patchMiddleware(routeName, middleWare) {\n        const instrumentation = this;\n        const isErrorMiddleware = middleWare.length === 4;\n        function patchedMiddleware() {\n            if (!instrumentation.isEnabled()) {\n                return middleWare.apply(this, arguments);\n            }\n            const [reqArgIdx, resArgIdx, nextArgIdx] = isErrorMiddleware\n                ? [1, 2, 3]\n                : [0, 1, 2];\n            const req = arguments[reqArgIdx];\n            const res = arguments[resArgIdx];\n            const next = arguments[nextArgIdx];\n            (0, utils_1.replaceCurrentStackRoute)(req, routeName);\n            const rpcMetadata = (0, core_1.getRPCMetadata)(api_1.context.active());\n            if (routeName && rpcMetadata?.type === core_1.RPCType.HTTP) {\n                rpcMetadata.route = (0, utils_1.generateRoute)(req);\n            }\n            let spanName = '';\n            if (routeName) {\n                spanName = `request handler - ${routeName}`;\n            }\n            else {\n                spanName = `middleware - ${middleWare.name || exports.ANONYMOUS_NAME}`;\n            }\n            const span = instrumentation._startSpan(routeName, middleWare);\n            instrumentation._diag.debug('start span', spanName);\n            let spanFinished = false;\n            function finishSpan() {\n                if (!spanFinished) {\n                    spanFinished = true;\n                    instrumentation._diag.debug(`finishing span ${span.name}`);\n                    span.end();\n                }\n                else {\n                    instrumentation._diag.debug(`span ${span.name} - already finished`);\n                }\n                res.removeListener('close', finishSpan);\n            }\n            res.addListener('close', finishSpan);\n            arguments[nextArgIdx] = instrumentation._patchNext(next, finishSpan);\n            return middleWare.apply(this, arguments);\n        }\n        Object.defineProperty(patchedMiddleware, 'length', {\n            value: middleWare.length,\n            writable: false,\n            configurable: true,\n        });\n        return patchedMiddleware;\n    }\n    _patchUse(original) {\n        const instrumentation = this;\n        return function (...args) {\n            const middleWare = args[args.length - 1];\n            const routeName = (args[args.length - 2] || '');\n            args[args.length - 1] = instrumentation._patchMiddleware(routeName, middleWare);\n            return original.apply(this, args);\n        };\n    }\n    _patchHandle(original) {\n        const instrumentation = this;\n        return function () {\n            const [reqIdx, outIdx] = [0, 2];\n            const req = arguments[reqIdx];\n            const out = arguments[outIdx];\n            const completeStack = (0, utils_1.addNewStackLayer)(req);\n            if (typeof out === 'function') {\n                arguments[outIdx] = instrumentation._patchOut(out, completeStack);\n            }\n            return original.apply(this, arguments);\n        };\n    }\n    _patchOut(out, completeStack) {\n        return function nextFunction(...args) {\n            completeStack();\n            return Reflect.apply(out, this, args);\n        };\n    }\n}\nexports.ConnectInstrumentation = ConnectInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectTypes = exports.ConnectNames = exports.AttributeNames = exports.ANONYMOUS_NAME = exports.ConnectInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"ConnectInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.ConnectInstrumentation; } });\nObject.defineProperty(exports, \"ANONYMOUS_NAME\", { enumerable: true, get: function () { return instrumentation_1.ANONYMOUS_NAME; } });\nvar AttributeNames_1 = require(\"./enums/AttributeNames\");\nObject.defineProperty(exports, \"AttributeNames\", { enumerable: true, get: function () { return AttributeNames_1.AttributeNames; } });\nObject.defineProperty(exports, \"ConnectNames\", { enumerable: true, get: function () { return AttributeNames_1.ConnectNames; } });\nObject.defineProperty(exports, \"ConnectTypes\", { enumerable: true, get: function () { return AttributeNames_1.ConnectTypes; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DB_SYSTEM_VALUE_MSSQL = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_USER = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_SQL_TABLE = exports.ATTR_DB_NAME = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexports.ATTR_DB_NAME = 'db.name';\n/**\n * Deprecated, use `db.collection.name` instead.\n *\n * @example \"mytable\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.collection.name`, but only if not extracting the value from `db.query.text`.\n */\nexports.ATTR_DB_SQL_TABLE = 'db.sql.table';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexports.ATTR_DB_USER = 'db.user';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"mssql\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * Microsoft SQL Server\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_VALUE_MSSQL = 'mssql';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.once = exports.getSpanName = void 0;\n/**\n * The span name SHOULD be set to a low cardinality value\n * representing the statement executed on the database.\n *\n * @returns Operation executed on Tedious Connection. Does not map to SQL statement in any way.\n */\nfunction getSpanName(operation, db, sql, bulkLoadTable) {\n    if (operation === 'execBulkLoad' && bulkLoadTable && db) {\n        return `${operation} ${bulkLoadTable} ${db}`;\n    }\n    if (operation === 'callProcedure') {\n        // `sql` refers to procedure name with `callProcedure`\n        if (db) {\n            return `${operation} ${sql} ${db}`;\n        }\n        return `${operation} ${sql}`;\n    }\n    // do not use `sql` in general case because of high-cardinality\n    if (db) {\n        return `${operation} ${db}`;\n    }\n    return `${operation}`;\n}\nexports.getSpanName = getSpanName;\nconst once = (fn) => {\n    let called = false;\n    return (...args) => {\n        if (called)\n            return;\n        called = true;\n        return fn(...args);\n    };\n};\nexports.once = once;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.32.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-tedious';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TediousInstrumentation = exports.INJECTED_CTX = void 0;\nconst api = require(\"@opentelemetry/api\");\nconst events_1 = require(\"events\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst utils_1 = require(\"./utils\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst CURRENT_DATABASE = Symbol('opentelemetry.instrumentation-tedious.current-database');\nexports.INJECTED_CTX = Symbol('opentelemetry.instrumentation-tedious.context-info-injected');\nconst PATCHED_METHODS = [\n    'callProcedure',\n    'execSql',\n    'execSqlBatch',\n    'execBulkLoad',\n    'prepare',\n    'execute',\n];\nfunction setDatabase(databaseName) {\n    Object.defineProperty(this, CURRENT_DATABASE, {\n        value: databaseName,\n        writable: true,\n    });\n}\nclass TediousInstrumentation extends instrumentation_1.InstrumentationBase {\n    static COMPONENT = 'tedious';\n    _netSemconvStability;\n    _dbSemconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._setSemconvStabilityFromEnv();\n    }\n    // Used for testing.\n    _setSemconvStabilityFromEnv() {\n        this._netSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n        this._dbSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    init() {\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition(TediousInstrumentation.COMPONENT, ['>=1.11.0 <20'], (moduleExports) => {\n                const ConnectionPrototype = moduleExports.Connection.prototype;\n                for (const method of PATCHED_METHODS) {\n                    if ((0, instrumentation_1.isWrapped)(ConnectionPrototype[method])) {\n                        this._unwrap(ConnectionPrototype, method);\n                    }\n                    this._wrap(ConnectionPrototype, method, this._patchQuery(method, moduleExports));\n                }\n                if ((0, instrumentation_1.isWrapped)(ConnectionPrototype.connect)) {\n                    this._unwrap(ConnectionPrototype, 'connect');\n                }\n                this._wrap(ConnectionPrototype, 'connect', this._patchConnect);\n                return moduleExports;\n            }, (moduleExports) => {\n                if (moduleExports === undefined)\n                    return;\n                const ConnectionPrototype = moduleExports.Connection.prototype;\n                for (const method of PATCHED_METHODS) {\n                    this._unwrap(ConnectionPrototype, method);\n                }\n                this._unwrap(ConnectionPrototype, 'connect');\n            }),\n        ];\n    }\n    _patchConnect(original) {\n        return function patchedConnect() {\n            setDatabase.call(this, this.config?.options?.database);\n            // remove the listener first in case it's already added\n            this.removeListener('databaseChange', setDatabase);\n            this.on('databaseChange', setDatabase);\n            this.once('end', () => {\n                this.removeListener('databaseChange', setDatabase);\n            });\n            return original.apply(this, arguments);\n        };\n    }\n    _buildTraceparent(span) {\n        const sc = span.spanContext();\n        return `00-${sc.traceId}-${sc.spanId}-0${Number(sc.traceFlags || api.TraceFlags.NONE).toString(16)}`;\n    }\n    /**\n     * Fire a one-off `SET CONTEXT_INFO @opentelemetry_traceparent` on the same\n     * connection. Marks the request with INJECTED_CTX so our patch skips it.\n     */\n    _injectContextInfo(connection, tediousModule, traceparent) {\n        return new Promise(resolve => {\n            try {\n                const sql = 'set context_info @opentelemetry_traceparent';\n                const req = new tediousModule.Request(sql, (_err) => {\n                    resolve();\n                });\n                Object.defineProperty(req, exports.INJECTED_CTX, { value: true });\n                const buf = Buffer.from(traceparent, 'utf8');\n                req.addParameter('opentelemetry_traceparent', tediousModule.TYPES.VarBinary, buf, { length: buf.length });\n                connection.execSql(req);\n            }\n            catch {\n                resolve();\n            }\n        });\n    }\n    _shouldInjectFor(operation) {\n        return (operation === 'execSql' ||\n            operation === 'execSqlBatch' ||\n            operation === 'callProcedure' ||\n            operation === 'execute');\n    }\n    _patchQuery(operation, tediousModule) {\n        return (originalMethod) => {\n            const thisPlugin = this;\n            function patchedMethod(request) {\n                // Skip our own injected request\n                if (request?.[exports.INJECTED_CTX]) {\n                    return originalMethod.apply(this, arguments);\n                }\n                if (!(request instanceof events_1.EventEmitter)) {\n                    thisPlugin._diag.warn(`Unexpected invocation of patched ${operation} method. Span not recorded`);\n                    return originalMethod.apply(this, arguments);\n                }\n                let procCount = 0;\n                let statementCount = 0;\n                const incrementStatementCount = () => statementCount++;\n                const incrementProcCount = () => procCount++;\n                const databaseName = this[CURRENT_DATABASE];\n                const sql = (request => {\n                    // Required for <11.0.9\n                    if (request.sqlTextOrProcedure === 'sp_prepare' &&\n                        request.parametersByName?.stmt?.value) {\n                        return request.parametersByName.stmt.value;\n                    }\n                    return request.sqlTextOrProcedure;\n                })(request);\n                const attributes = {};\n                if (thisPlugin._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_DB_SYSTEM] = semconv_1.DB_SYSTEM_VALUE_MSSQL;\n                    attributes[semconv_1.ATTR_DB_NAME] = databaseName;\n                    // >=4 uses `authentication` object; older versions just userName and password pair\n                    attributes[semconv_1.ATTR_DB_USER] =\n                        this.config?.userName ??\n                            this.config?.authentication?.options?.userName;\n                    attributes[semconv_1.ATTR_DB_STATEMENT] = sql;\n                    attributes[semconv_1.ATTR_DB_SQL_TABLE] = request.table;\n                }\n                if (thisPlugin._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    // The OTel spec for \"db.namespace\" discusses handling for connection\n                    // to MSSQL \"named instances\". This isn't currently supported.\n                    //    https://opentelemetry.io/docs/specs/semconv/database/sql-server/#:~:text=%5B1%5D%20db%2Enamespace\n                    attributes[semantic_conventions_1.ATTR_DB_NAMESPACE] = databaseName;\n                    attributes[semantic_conventions_1.ATTR_DB_SYSTEM_NAME] =\n                        semantic_conventions_1.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER;\n                    attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = sql;\n                    attributes[semantic_conventions_1.ATTR_DB_COLLECTION_NAME] = request.table;\n                    // See https://opentelemetry.io/docs/specs/semconv/database/sql-server/#spans\n                    // TODO(3290): can `db.response.status_code` be added?\n                    // TODO(3290): is `operation` correct for `db.operation.name`\n                    // TODO(3290): can `db.query.summary` reliably be calculated?\n                    // TODO(3290): `db.stored_procedure.name`\n                }\n                if (thisPlugin._netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_NET_PEER_NAME] = this.config?.server;\n                    attributes[semconv_1.ATTR_NET_PEER_PORT] = this.config?.options?.port;\n                }\n                if (thisPlugin._netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    attributes[semantic_conventions_1.ATTR_SERVER_ADDRESS] = this.config?.server;\n                    attributes[semantic_conventions_1.ATTR_SERVER_PORT] = this.config?.options?.port;\n                }\n                const span = thisPlugin.tracer.startSpan((0, utils_1.getSpanName)(operation, databaseName, sql, request.table), {\n                    kind: api.SpanKind.CLIENT,\n                    attributes,\n                });\n                const endSpan = (0, utils_1.once)((err) => {\n                    request.removeListener('done', incrementStatementCount);\n                    request.removeListener('doneInProc', incrementStatementCount);\n                    request.removeListener('doneProc', incrementProcCount);\n                    request.removeListener('error', endSpan);\n                    this.removeListener('end', endSpan);\n                    span.setAttribute('tedious.procedure_count', procCount);\n                    span.setAttribute('tedious.statement_count', statementCount);\n                    if (err) {\n                        span.setStatus({\n                            code: api.SpanStatusCode.ERROR,\n                            message: err.message,\n                        });\n                        // TODO(3290): set `error.type` attribute?\n                    }\n                    span.end();\n                });\n                request.on('done', incrementStatementCount);\n                request.on('doneInProc', incrementStatementCount);\n                request.on('doneProc', incrementProcCount);\n                request.once('error', endSpan);\n                this.on('end', endSpan);\n                if (typeof request.callback === 'function') {\n                    thisPlugin._wrap(request, 'callback', thisPlugin._patchCallbackQuery(endSpan));\n                }\n                else {\n                    thisPlugin._diag.error('Expected request.callback to be a function');\n                }\n                const runUserRequest = () => {\n                    return api.context.with(api.trace.setSpan(api.context.active(), span), originalMethod, this, ...arguments);\n                };\n                const cfg = thisPlugin.getConfig();\n                const shouldInject = cfg.enableTraceContextPropagation &&\n                    thisPlugin._shouldInjectFor(operation);\n                if (!shouldInject)\n                    return runUserRequest();\n                const traceparent = thisPlugin._buildTraceparent(span);\n                void thisPlugin\n                    ._injectContextInfo(this, tediousModule, traceparent)\n                    .finally(runUserRequest);\n            }\n            Object.defineProperty(patchedMethod, 'length', {\n                value: originalMethod.length,\n                writable: false,\n            });\n            return patchedMethod;\n        };\n    }\n    _patchCallbackQuery(endSpan) {\n        return (originalCallback) => {\n            return function (err, rowCount, rows) {\n                endSpan(err);\n                return originalCallback.apply(this, arguments);\n            };\n        };\n    }\n}\nexports.TediousInstrumentation = TediousInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TediousInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"TediousInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.TediousInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.56.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-generic-pool';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GenericPoolInstrumentation = void 0;\nconst api = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst MODULE_NAME = 'generic-pool';\nclass GenericPoolInstrumentation extends instrumentation_1.InstrumentationBase {\n    // only used for v2 - v2.3)\n    _isDisabled = false;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n    }\n    init() {\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition(MODULE_NAME, ['>=3.0.0 <4'], moduleExports => {\n                const Pool = moduleExports.Pool;\n                if ((0, instrumentation_1.isWrapped)(Pool.prototype.acquire)) {\n                    this._unwrap(Pool.prototype, 'acquire');\n                }\n                this._wrap(Pool.prototype, 'acquire', this._acquirePatcher.bind(this));\n                return moduleExports;\n            }, moduleExports => {\n                const Pool = moduleExports.Pool;\n                this._unwrap(Pool.prototype, 'acquire');\n                return moduleExports;\n            }),\n            new instrumentation_1.InstrumentationNodeModuleDefinition(MODULE_NAME, ['>=2.4.0 <3'], moduleExports => {\n                const Pool = moduleExports.Pool;\n                if ((0, instrumentation_1.isWrapped)(Pool.prototype.acquire)) {\n                    this._unwrap(Pool.prototype, 'acquire');\n                }\n                this._wrap(Pool.prototype, 'acquire', this._acquireWithCallbacksPatcher.bind(this));\n                return moduleExports;\n            }, moduleExports => {\n                const Pool = moduleExports.Pool;\n                this._unwrap(Pool.prototype, 'acquire');\n                return moduleExports;\n            }),\n            new instrumentation_1.InstrumentationNodeModuleDefinition(MODULE_NAME, ['>=2.0.0 <2.4'], moduleExports => {\n                this._isDisabled = false;\n                if ((0, instrumentation_1.isWrapped)(moduleExports.Pool)) {\n                    this._unwrap(moduleExports, 'Pool');\n                }\n                this._wrap(moduleExports, 'Pool', this._poolWrapper.bind(this));\n                return moduleExports;\n            }, moduleExports => {\n                // since the object is created on the fly every time, we need to use\n                // a boolean switch here to disable the instrumentation\n                this._isDisabled = true;\n                return moduleExports;\n            }),\n        ];\n    }\n    _acquirePatcher(original) {\n        const instrumentation = this;\n        return function wrapped_acquire(...args) {\n            const parent = api.context.active();\n            const span = instrumentation.tracer.startSpan('generic-pool.acquire', {}, parent);\n            return api.context.with(api.trace.setSpan(parent, span), () => {\n                return original.call(this, ...args).then(value => {\n                    span.end();\n                    return value;\n                }, err => {\n                    span.recordException(err);\n                    span.end();\n                    throw err;\n                });\n            });\n        };\n    }\n    _poolWrapper(original) {\n        const instrumentation = this;\n        return function wrapped_pool() {\n            const pool = original.apply(this, arguments);\n            instrumentation._wrap(pool, 'acquire', instrumentation._acquireWithCallbacksPatcher.bind(instrumentation));\n            return pool;\n        };\n    }\n    _acquireWithCallbacksPatcher(original) {\n        const instrumentation = this;\n        return function wrapped_acquire(cb, priority) {\n            // only used for v2 - v2.3\n            if (instrumentation._isDisabled) {\n                return original.call(this, cb, priority);\n            }\n            const parent = api.context.active();\n            const span = instrumentation.tracer.startSpan('generic-pool.acquire', {}, parent);\n            return api.context.with(api.trace.setSpan(parent, span), () => {\n                original.call(this, (err, client) => {\n                    span.end();\n                    // Not checking whether cb is a function because\n                    // the original code doesn't do that either.\n                    if (cb) {\n                        return cb(err, client);\n                    }\n                }, priority);\n            });\n        };\n    }\n}\nexports.GenericPoolInstrumentation = GenericPoolInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GenericPoolInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"GenericPoolInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.GenericPoolInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_MESSAGING_SYSTEM = exports.ATTR_MESSAGING_OPERATION = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `messaging.operation.type` instead.\n *\n * @example publish\n * @example create\n * @example process\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `messaging.operation.type`.\n */\nexports.ATTR_MESSAGING_OPERATION = 'messaging.operation';\n/**\n * The messaging system as identified by the client instrumentation.\n *\n * @note The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_SYSTEM = 'messaging.system';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ATTR_MESSAGING_CONVERSATION_ID = exports.OLD_ATTR_MESSAGING_MESSAGE_ID = exports.MESSAGING_DESTINATION_KIND_VALUE_TOPIC = exports.ATTR_MESSAGING_URL = exports.ATTR_MESSAGING_PROTOCOL_VERSION = exports.ATTR_MESSAGING_PROTOCOL = exports.MESSAGING_OPERATION_VALUE_PROCESS = exports.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY = exports.ATTR_MESSAGING_DESTINATION_KIND = exports.ATTR_MESSAGING_DESTINATION = void 0;\n/*\n * This file contains constants for values that where replaced/removed from\n * Semantic Conventions long enough ago that they do not have `ATTR_*`\n * constants in the `@opentelemetry/semantic-conventions` package. Eventually\n * it is expected that this instrumention will be updated to emit telemetry\n * using modern Semantic Conventions, dropping the need for the constants in\n * this file.\n */\n/**\n * The message destination name. This might be equal to the span name but is required nevertheless.\n *\n * @deprecated Use ATTR_MESSAGING_DESTINATION_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.ATTR_MESSAGING_DESTINATION = 'messaging.destination';\n/**\n * The kind of message destination.\n *\n * @deprecated Removed in semconv v1.20.0.\n */\nexports.ATTR_MESSAGING_DESTINATION_KIND = 'messaging.destination_kind';\n/**\n * RabbitMQ message routing key.\n *\n * @deprecated Use ATTR_MESSAGING_RABBITMQ_DESTINATION_ROUTING_KEY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY = 'messaging.rabbitmq.routing_key';\n/**\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n *\n * @deprecated Use MESSAGING_OPERATION_TYPE_VALUE_PROCESS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.MESSAGING_OPERATION_VALUE_PROCESS = 'process';\n/**\n * The name of the transport protocol.\n *\n * @deprecated Use ATTR_NETWORK_PROTOCOL_NAME.\n */\nexports.ATTR_MESSAGING_PROTOCOL = 'messaging.protocol';\n/**\n * The version of the transport protocol.\n *\n * @deprecated Use ATTR_NETWORK_PROTOCOL_VERSION.\n */\nexports.ATTR_MESSAGING_PROTOCOL_VERSION = 'messaging.protocol_version';\n/**\n * Connection string.\n *\n * @deprecated Removed in semconv v1.17.0.\n */\nexports.ATTR_MESSAGING_URL = 'messaging.url';\n/**\n * The kind of message destination.\n *\n * @deprecated Removed in semconv v1.20.0.\n */\nexports.MESSAGING_DESTINATION_KIND_VALUE_TOPIC = 'topic';\n/**\n * A value used by the messaging system as an identifier for the message, represented as a string.\n *\n * @deprecated Use ATTR_MESSAGING_MESSAGE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n *\n * Note: changing to `ATTR_MESSAGING_MESSAGE_ID` means a change in value from `messaging.message_id` to `messaging.message.id`.\n */\nexports.OLD_ATTR_MESSAGING_MESSAGE_ID = 'messaging.message_id';\n/**\n * The [conversation ID](#conversations) identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID".\n *\n * @deprecated Use ATTR_MESSAGING_MESSAGE_CONVERSATION_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.ATTR_MESSAGING_CONVERSATION_ID = 'messaging.conversation_id';\n//# sourceMappingURL=semconv-obsolete.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_CONFIG = exports.EndOperation = void 0;\nvar EndOperation;\n(function (EndOperation) {\n    EndOperation[\"AutoAck\"] = \"auto ack\";\n    EndOperation[\"Ack\"] = \"ack\";\n    EndOperation[\"AckAll\"] = \"ackAll\";\n    EndOperation[\"Reject\"] = \"reject\";\n    EndOperation[\"Nack\"] = \"nack\";\n    EndOperation[\"NackAll\"] = \"nackAll\";\n    EndOperation[\"ChannelClosed\"] = \"channel closed\";\n    EndOperation[\"ChannelError\"] = \"channel error\";\n    EndOperation[\"InstrumentationTimeout\"] = \"instrumentation timeout\";\n})(EndOperation = exports.EndOperation || (exports.EndOperation = {}));\nexports.DEFAULT_CONFIG = {\n    consumeTimeoutMs: 1000 * 60,\n    useLinksForConsume: false,\n};\n//# sourceMappingURL=types.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isConfirmChannelTracing = exports.unmarkConfirmChannelTracing = exports.markConfirmChannelTracing = exports.getConnectionAttributesFromUrl = exports.getConnectionAttributesFromServer = exports.normalizeExchange = exports.CONNECTION_ATTRIBUTES = exports.CHANNEL_CONSUME_TIMEOUT_TIMER = exports.CHANNEL_SPANS_NOT_ENDED = exports.MESSAGE_STORED_SPAN = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst semconv_obsolete_1 = require(\"../src/semconv-obsolete\");\nexports.MESSAGE_STORED_SPAN = Symbol('opentelemetry.amqplib.message.stored-span');\nexports.CHANNEL_SPANS_NOT_ENDED = Symbol('opentelemetry.amqplib.channel.spans-not-ended');\nexports.CHANNEL_CONSUME_TIMEOUT_TIMER = Symbol('opentelemetry.amqplib.channel.consumer-timeout-timer');\nexports.CONNECTION_ATTRIBUTES = Symbol('opentelemetry.amqplib.connection.attributes');\nconst IS_CONFIRM_CHANNEL_CONTEXT_KEY = (0, api_1.createContextKey)('opentelemetry.amqplib.channel.is-confirm-channel');\nconst normalizeExchange = (exchangeName) => exchangeName !== '' ? exchangeName : '';\nexports.normalizeExchange = normalizeExchange;\nconst censorPassword = (url) => {\n    return url.replace(/:[^:@/]*@/, ':***@');\n};\nconst getPort = (portFromUrl, resolvedProtocol) => {\n    // we are using the resolved protocol which is upper case\n    // this code mimic the behavior of the amqplib which is used to set connection params\n    return portFromUrl || (resolvedProtocol === 'AMQP' ? 5672 : 5671);\n};\nconst getProtocol = (protocolFromUrl) => {\n    const resolvedProtocol = protocolFromUrl || 'amqp';\n    // the substring removed the ':' part of the protocol ('amqp:' -> 'amqp')\n    const noEndingColon = resolvedProtocol.endsWith(':')\n        ? resolvedProtocol.substring(0, resolvedProtocol.length - 1)\n        : resolvedProtocol;\n    // upper cases to match spec\n    return noEndingColon.toUpperCase();\n};\nconst getHostname = (hostnameFromUrl) => {\n    // if user supplies empty hostname, it gets forwarded to 'net' package which default it to localhost.\n    // https://nodejs.org/docs/latest-v12.x/api/net.html#net_socket_connect_options_connectlistener\n    return hostnameFromUrl || 'localhost';\n};\nconst extractConnectionAttributeOrLog = (url, attributeKey, attributeValue, nameForLog) => {\n    if (attributeValue) {\n        return { [attributeKey]: attributeValue };\n    }\n    else {\n        api_1.diag.error(`amqplib instrumentation: could not extract connection attribute ${nameForLog} from user supplied url`, {\n            url,\n        });\n        return {};\n    }\n};\nconst getConnectionAttributesFromServer = (conn) => {\n    const product = conn.serverProperties.product?.toLowerCase?.();\n    if (product) {\n        return {\n            [semconv_1.ATTR_MESSAGING_SYSTEM]: product,\n        };\n    }\n    else {\n        return {};\n    }\n};\nexports.getConnectionAttributesFromServer = getConnectionAttributesFromServer;\nconst getConnectionAttributesFromUrl = (url, netSemconvStability) => {\n    const attributes = {\n        [semconv_obsolete_1.ATTR_MESSAGING_PROTOCOL_VERSION]: '0.9.1', // this is the only protocol supported by the instrumented library\n    };\n    url = url || 'amqp://localhost';\n    if (typeof url === 'object') {\n        const connectOptions = url;\n        const protocol = getProtocol(connectOptions?.protocol);\n        Object.assign(attributes, {\n            ...extractConnectionAttributeOrLog(url, semconv_obsolete_1.ATTR_MESSAGING_PROTOCOL, protocol, 'protocol'),\n        });\n        const hostname = getHostname(connectOptions?.hostname);\n        if (netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n            Object.assign(attributes, {\n                ...extractConnectionAttributeOrLog(url, semconv_1.ATTR_NET_PEER_NAME, hostname, 'hostname'),\n            });\n        }\n        if (netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n            Object.assign(attributes, {\n                ...extractConnectionAttributeOrLog(url, semantic_conventions_1.ATTR_SERVER_ADDRESS, hostname, 'hostname'),\n            });\n        }\n        const port = getPort(connectOptions.port, protocol);\n        if (netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n            Object.assign(attributes, extractConnectionAttributeOrLog(url, semconv_1.ATTR_NET_PEER_PORT, port, 'port'));\n        }\n        if (netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n            Object.assign(attributes, extractConnectionAttributeOrLog(url, semantic_conventions_1.ATTR_SERVER_PORT, port, 'port'));\n        }\n    }\n    else {\n        const censoredUrl = censorPassword(url);\n        attributes[semconv_obsolete_1.ATTR_MESSAGING_URL] = censoredUrl;\n        try {\n            const urlParts = new URL(censoredUrl);\n            const protocol = getProtocol(urlParts.protocol);\n            Object.assign(attributes, {\n                ...extractConnectionAttributeOrLog(censoredUrl, semconv_obsolete_1.ATTR_MESSAGING_PROTOCOL, protocol, 'protocol'),\n            });\n            const hostname = getHostname(urlParts.hostname);\n            if (netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                Object.assign(attributes, {\n                    ...extractConnectionAttributeOrLog(censoredUrl, semconv_1.ATTR_NET_PEER_NAME, hostname, 'hostname'),\n                });\n            }\n            if (netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                Object.assign(attributes, {\n                    ...extractConnectionAttributeOrLog(censoredUrl, semantic_conventions_1.ATTR_SERVER_ADDRESS, hostname, 'hostname'),\n                });\n            }\n            const port = getPort(urlParts.port ? parseInt(urlParts.port) : undefined, protocol);\n            if (netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                Object.assign(attributes, extractConnectionAttributeOrLog(censoredUrl, semconv_1.ATTR_NET_PEER_PORT, port, 'port'));\n            }\n            if (netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                Object.assign(attributes, extractConnectionAttributeOrLog(censoredUrl, semantic_conventions_1.ATTR_SERVER_PORT, port, 'port'));\n            }\n        }\n        catch (err) {\n            api_1.diag.error('amqplib instrumentation: error while extracting connection details from connection url', {\n                censoredUrl,\n                err,\n            });\n        }\n    }\n    return attributes;\n};\nexports.getConnectionAttributesFromUrl = getConnectionAttributesFromUrl;\nconst markConfirmChannelTracing = (context) => {\n    return context.setValue(IS_CONFIRM_CHANNEL_CONTEXT_KEY, true);\n};\nexports.markConfirmChannelTracing = markConfirmChannelTracing;\nconst unmarkConfirmChannelTracing = (context) => {\n    return context.deleteValue(IS_CONFIRM_CHANNEL_CONTEXT_KEY);\n};\nexports.unmarkConfirmChannelTracing = unmarkConfirmChannelTracing;\nconst isConfirmChannelTracing = (context) => {\n    return context.getValue(IS_CONFIRM_CHANNEL_CONTEXT_KEY) === true;\n};\nexports.isConfirmChannelTracing = isConfirmChannelTracing;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.60.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-amqplib';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AmqplibInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semconv_1 = require(\"./semconv\");\nconst semconv_obsolete_1 = require(\"../src/semconv-obsolete\");\nconst types_1 = require(\"./types\");\nconst utils_1 = require(\"./utils\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst supportedVersions = ['>=0.5.5 <1'];\nclass AmqplibInstrumentation extends instrumentation_1.InstrumentationBase {\n    _netSemconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, { ...types_1.DEFAULT_CONFIG, ...config });\n        this._setSemconvStabilityFromEnv();\n    }\n    // Used for testing.\n    _setSemconvStabilityFromEnv() {\n        this._netSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    setConfig(config = {}) {\n        super.setConfig({ ...types_1.DEFAULT_CONFIG, ...config });\n    }\n    init() {\n        const channelModelModuleFile = new instrumentation_1.InstrumentationNodeModuleFile('amqplib/lib/channel_model.js', supportedVersions, this.patchChannelModel.bind(this), this.unpatchChannelModel.bind(this));\n        const callbackModelModuleFile = new instrumentation_1.InstrumentationNodeModuleFile('amqplib/lib/callback_model.js', supportedVersions, this.patchChannelModel.bind(this), this.unpatchChannelModel.bind(this));\n        const connectModuleFile = new instrumentation_1.InstrumentationNodeModuleFile('amqplib/lib/connect.js', supportedVersions, this.patchConnect.bind(this), this.unpatchConnect.bind(this));\n        const module = new instrumentation_1.InstrumentationNodeModuleDefinition('amqplib', supportedVersions, undefined, undefined, [channelModelModuleFile, connectModuleFile, callbackModelModuleFile]);\n        return module;\n    }\n    patchConnect(moduleExports) {\n        moduleExports = this.unpatchConnect(moduleExports);\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.connect)) {\n            this._wrap(moduleExports, 'connect', this.getConnectPatch.bind(this));\n        }\n        return moduleExports;\n    }\n    unpatchConnect(moduleExports) {\n        if ((0, instrumentation_1.isWrapped)(moduleExports.connect)) {\n            this._unwrap(moduleExports, 'connect');\n        }\n        return moduleExports;\n    }\n    patchChannelModel(moduleExports, moduleVersion) {\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.publish)) {\n            this._wrap(moduleExports.Channel.prototype, 'publish', this.getPublishPatch.bind(this, moduleVersion));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.consume)) {\n            this._wrap(moduleExports.Channel.prototype, 'consume', this.getConsumePatch.bind(this, moduleVersion));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.ack)) {\n            this._wrap(moduleExports.Channel.prototype, 'ack', this.getAckPatch.bind(this, false, types_1.EndOperation.Ack));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.nack)) {\n            this._wrap(moduleExports.Channel.prototype, 'nack', this.getAckPatch.bind(this, true, types_1.EndOperation.Nack));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.reject)) {\n            this._wrap(moduleExports.Channel.prototype, 'reject', this.getAckPatch.bind(this, true, types_1.EndOperation.Reject));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.ackAll)) {\n            this._wrap(moduleExports.Channel.prototype, 'ackAll', this.getAckAllPatch.bind(this, false, types_1.EndOperation.AckAll));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.nackAll)) {\n            this._wrap(moduleExports.Channel.prototype, 'nackAll', this.getAckAllPatch.bind(this, true, types_1.EndOperation.NackAll));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.emit)) {\n            this._wrap(moduleExports.Channel.prototype, 'emit', this.getChannelEmitPatch.bind(this));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.ConfirmChannel.prototype.publish)) {\n            this._wrap(moduleExports.ConfirmChannel.prototype, 'publish', this.getConfirmedPublishPatch.bind(this, moduleVersion));\n        }\n        return moduleExports;\n    }\n    unpatchChannelModel(moduleExports) {\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.publish)) {\n            this._unwrap(moduleExports.Channel.prototype, 'publish');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.consume)) {\n            this._unwrap(moduleExports.Channel.prototype, 'consume');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.ack)) {\n            this._unwrap(moduleExports.Channel.prototype, 'ack');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.nack)) {\n            this._unwrap(moduleExports.Channel.prototype, 'nack');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.reject)) {\n            this._unwrap(moduleExports.Channel.prototype, 'reject');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.ackAll)) {\n            this._unwrap(moduleExports.Channel.prototype, 'ackAll');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.nackAll)) {\n            this._unwrap(moduleExports.Channel.prototype, 'nackAll');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.emit)) {\n            this._unwrap(moduleExports.Channel.prototype, 'emit');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.ConfirmChannel.prototype.publish)) {\n            this._unwrap(moduleExports.ConfirmChannel.prototype, 'publish');\n        }\n        return moduleExports;\n    }\n    getConnectPatch(original) {\n        const self = this;\n        return function patchedConnect(url, socketOptions, openCallback) {\n            return original.call(this, url, socketOptions, function (err, conn) {\n                if (err == null) {\n                    const urlAttributes = (0, utils_1.getConnectionAttributesFromUrl)(url, self._netSemconvStability);\n                    const serverAttributes = (0, utils_1.getConnectionAttributesFromServer)(conn);\n                    conn[utils_1.CONNECTION_ATTRIBUTES] = {\n                        ...urlAttributes,\n                        ...serverAttributes,\n                    };\n                }\n                openCallback.apply(this, arguments);\n            });\n        };\n    }\n    getChannelEmitPatch(original) {\n        const self = this;\n        return function emit(eventName) {\n            if (eventName === 'close') {\n                self.endAllSpansOnChannel(this, true, types_1.EndOperation.ChannelClosed, undefined);\n                const activeTimer = this[utils_1.CHANNEL_CONSUME_TIMEOUT_TIMER];\n                if (activeTimer) {\n                    clearInterval(activeTimer);\n                }\n                this[utils_1.CHANNEL_CONSUME_TIMEOUT_TIMER] = undefined;\n            }\n            else if (eventName === 'error') {\n                self.endAllSpansOnChannel(this, true, types_1.EndOperation.ChannelError, undefined);\n            }\n            return original.apply(this, arguments);\n        };\n    }\n    getAckAllPatch(isRejected, endOperation, original) {\n        const self = this;\n        return function ackAll(requeueOrEmpty) {\n            self.endAllSpansOnChannel(this, isRejected, endOperation, requeueOrEmpty);\n            return original.apply(this, arguments);\n        };\n    }\n    getAckPatch(isRejected, endOperation, original) {\n        const self = this;\n        return function ack(message, allUpToOrRequeue, requeue) {\n            const channel = this;\n            // we use this patch in reject function as well, but it has different signature\n            const requeueResolved = endOperation === types_1.EndOperation.Reject ? allUpToOrRequeue : requeue;\n            const spansNotEnded = channel[utils_1.CHANNEL_SPANS_NOT_ENDED] ?? [];\n            const msgIndex = spansNotEnded.findIndex(msgDetails => msgDetails.msg === message);\n            if (msgIndex < 0) {\n                // should not happen in happy flow\n                // but possible if user is calling the api function ack twice with same message\n                self.endConsumerSpan(message, isRejected, endOperation, requeueResolved);\n            }\n            else if (endOperation !== types_1.EndOperation.Reject && allUpToOrRequeue) {\n                for (let i = 0; i <= msgIndex; i++) {\n                    self.endConsumerSpan(spansNotEnded[i].msg, isRejected, endOperation, requeueResolved);\n                }\n                spansNotEnded.splice(0, msgIndex + 1);\n            }\n            else {\n                self.endConsumerSpan(message, isRejected, endOperation, requeueResolved);\n                spansNotEnded.splice(msgIndex, 1);\n            }\n            return original.apply(this, arguments);\n        };\n    }\n    getConsumePatch(moduleVersion, original) {\n        const self = this;\n        return function consume(queue, onMessage, options) {\n            const channel = this;\n            if (!Object.prototype.hasOwnProperty.call(channel, utils_1.CHANNEL_SPANS_NOT_ENDED)) {\n                const { consumeTimeoutMs } = self.getConfig();\n                if (consumeTimeoutMs) {\n                    const timer = setInterval(() => {\n                        self.checkConsumeTimeoutOnChannel(channel);\n                    }, consumeTimeoutMs);\n                    timer.unref();\n                    channel[utils_1.CHANNEL_CONSUME_TIMEOUT_TIMER] = timer;\n                }\n                channel[utils_1.CHANNEL_SPANS_NOT_ENDED] = [];\n            }\n            const patchedOnMessage = function (msg) {\n                // msg is expected to be null for signaling consumer cancel notification\n                // https://www.rabbitmq.com/consumer-cancel.html\n                // in this case, we do not start a span, as this is not a real message.\n                if (!msg) {\n                    return onMessage.call(this, msg);\n                }\n                const headers = msg.properties.headers ?? {};\n                let parentContext = api_1.propagation.extract(api_1.ROOT_CONTEXT, headers);\n                const exchange = msg.fields?.exchange;\n                let links;\n                if (self._config.useLinksForConsume) {\n                    const parentSpanContext = parentContext\n                        ? api_1.trace.getSpan(parentContext)?.spanContext()\n                        : undefined;\n                    parentContext = undefined;\n                    if (parentSpanContext) {\n                        links = [\n                            {\n                                context: parentSpanContext,\n                            },\n                        ];\n                    }\n                }\n                const span = self.tracer.startSpan(`${queue} process`, {\n                    kind: api_1.SpanKind.CONSUMER,\n                    attributes: {\n                        ...channel?.connection?.[utils_1.CONNECTION_ATTRIBUTES],\n                        [semconv_obsolete_1.ATTR_MESSAGING_DESTINATION]: exchange,\n                        [semconv_obsolete_1.ATTR_MESSAGING_DESTINATION_KIND]: semconv_obsolete_1.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,\n                        [semconv_obsolete_1.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]: msg.fields?.routingKey,\n                        [semconv_1.ATTR_MESSAGING_OPERATION]: semconv_obsolete_1.MESSAGING_OPERATION_VALUE_PROCESS,\n                        [semconv_obsolete_1.OLD_ATTR_MESSAGING_MESSAGE_ID]: msg?.properties.messageId,\n                        [semconv_obsolete_1.ATTR_MESSAGING_CONVERSATION_ID]: msg?.properties.correlationId,\n                    },\n                    links,\n                }, parentContext);\n                const { consumeHook } = self.getConfig();\n                if (consumeHook) {\n                    (0, instrumentation_1.safeExecuteInTheMiddle)(() => consumeHook(span, { moduleVersion, msg }), e => {\n                        if (e) {\n                            api_1.diag.error('amqplib instrumentation: consumerHook error', e);\n                        }\n                    }, true);\n                }\n                if (!options?.noAck) {\n                    // store the message on the channel so we can close the span on ackAll etc\n                    channel[utils_1.CHANNEL_SPANS_NOT_ENDED].push({\n                        msg,\n                        timeOfConsume: (0, core_1.hrTime)(),\n                    });\n                    // store the span on the message, so we can end it when user call 'ack' on it\n                    msg[utils_1.MESSAGE_STORED_SPAN] = span;\n                }\n                const setContext = parentContext\n                    ? parentContext\n                    : api_1.ROOT_CONTEXT;\n                api_1.context.with(api_1.trace.setSpan(setContext, span), () => {\n                    onMessage.call(this, msg);\n                });\n                if (options?.noAck) {\n                    self.callConsumeEndHook(span, msg, false, types_1.EndOperation.AutoAck);\n                    span.end();\n                }\n            };\n            arguments[1] = patchedOnMessage;\n            return original.apply(this, arguments);\n        };\n    }\n    getConfirmedPublishPatch(moduleVersion, original) {\n        const self = this;\n        return function confirmedPublish(exchange, routingKey, content, options, callback) {\n            const channel = this;\n            const { span, modifiedOptions } = self.createPublishSpan(self, exchange, routingKey, channel, options);\n            const { publishHook } = self.getConfig();\n            if (publishHook) {\n                (0, instrumentation_1.safeExecuteInTheMiddle)(() => publishHook(span, {\n                    moduleVersion,\n                    exchange,\n                    routingKey,\n                    content,\n                    options: modifiedOptions,\n                    isConfirmChannel: true,\n                }), e => {\n                    if (e) {\n                        api_1.diag.error('amqplib instrumentation: publishHook error', e);\n                    }\n                }, true);\n            }\n            const patchedOnConfirm = function (err, ok) {\n                try {\n                    callback?.call(this, err, ok);\n                }\n                finally {\n                    const { publishConfirmHook } = self.getConfig();\n                    if (publishConfirmHook) {\n                        (0, instrumentation_1.safeExecuteInTheMiddle)(() => publishConfirmHook(span, {\n                            moduleVersion,\n                            exchange,\n                            routingKey,\n                            content,\n                            options,\n                            isConfirmChannel: true,\n                            confirmError: err,\n                        }), e => {\n                            if (e) {\n                                api_1.diag.error('amqplib instrumentation: publishConfirmHook error', e);\n                            }\n                        }, true);\n                    }\n                    if (err) {\n                        span.setStatus({\n                            code: api_1.SpanStatusCode.ERROR,\n                            message: \"message confirmation has been nack'ed\",\n                        });\n                    }\n                    span.end();\n                }\n            };\n            // calling confirm channel publish function is storing the message in queue and registering the callback for broker confirm.\n            // span ends in the patched callback.\n            const markedContext = (0, utils_1.markConfirmChannelTracing)(api_1.context.active());\n            const argumentsCopy = [...arguments];\n            argumentsCopy[3] = modifiedOptions;\n            argumentsCopy[4] = api_1.context.bind((0, utils_1.unmarkConfirmChannelTracing)(api_1.trace.setSpan(markedContext, span)), patchedOnConfirm);\n            return api_1.context.with(markedContext, original.bind(this, ...argumentsCopy));\n        };\n    }\n    getPublishPatch(moduleVersion, original) {\n        const self = this;\n        return function publish(exchange, routingKey, content, options) {\n            if ((0, utils_1.isConfirmChannelTracing)(api_1.context.active())) {\n                // work already done\n                return original.apply(this, arguments);\n            }\n            else {\n                const channel = this;\n                const { span, modifiedOptions } = self.createPublishSpan(self, exchange, routingKey, channel, options);\n                const { publishHook } = self.getConfig();\n                if (publishHook) {\n                    (0, instrumentation_1.safeExecuteInTheMiddle)(() => publishHook(span, {\n                        moduleVersion,\n                        exchange,\n                        routingKey,\n                        content,\n                        options: modifiedOptions,\n                        isConfirmChannel: false,\n                    }), e => {\n                        if (e) {\n                            api_1.diag.error('amqplib instrumentation: publishHook error', e);\n                        }\n                    }, true);\n                }\n                // calling normal channel publish function is only storing the message in queue.\n                // it does not send it and waits for an ack, so the span duration is expected to be very short.\n                const argumentsCopy = [...arguments];\n                argumentsCopy[3] = modifiedOptions;\n                const originalRes = original.apply(this, argumentsCopy);\n                span.end();\n                return originalRes;\n            }\n        };\n    }\n    createPublishSpan(self, exchange, routingKey, channel, options) {\n        const normalizedExchange = (0, utils_1.normalizeExchange)(exchange);\n        const span = self.tracer.startSpan(`publish ${normalizedExchange}`, {\n            kind: api_1.SpanKind.PRODUCER,\n            attributes: {\n                ...channel.connection[utils_1.CONNECTION_ATTRIBUTES],\n                [semconv_obsolete_1.ATTR_MESSAGING_DESTINATION]: exchange,\n                [semconv_obsolete_1.ATTR_MESSAGING_DESTINATION_KIND]: semconv_obsolete_1.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,\n                [semconv_obsolete_1.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]: routingKey,\n                [semconv_obsolete_1.OLD_ATTR_MESSAGING_MESSAGE_ID]: options?.messageId,\n                [semconv_obsolete_1.ATTR_MESSAGING_CONVERSATION_ID]: options?.correlationId,\n            },\n        });\n        const modifiedOptions = options ?? {};\n        modifiedOptions.headers = modifiedOptions.headers ?? {};\n        api_1.propagation.inject(api_1.trace.setSpan(api_1.context.active(), span), modifiedOptions.headers);\n        return { span, modifiedOptions };\n    }\n    endConsumerSpan(message, isRejected, operation, requeue) {\n        const storedSpan = message[utils_1.MESSAGE_STORED_SPAN];\n        if (!storedSpan)\n            return;\n        if (isRejected !== false) {\n            storedSpan.setStatus({\n                code: api_1.SpanStatusCode.ERROR,\n                message: operation !== types_1.EndOperation.ChannelClosed &&\n                    operation !== types_1.EndOperation.ChannelError\n                    ? `${operation} called on message${requeue === true\n                        ? ' with requeue'\n                        : requeue === false\n                            ? ' without requeue'\n                            : ''}`\n                    : operation,\n            });\n        }\n        this.callConsumeEndHook(storedSpan, message, isRejected, operation);\n        storedSpan.end();\n        message[utils_1.MESSAGE_STORED_SPAN] = undefined;\n    }\n    endAllSpansOnChannel(channel, isRejected, operation, requeue) {\n        const spansNotEnded = channel[utils_1.CHANNEL_SPANS_NOT_ENDED] ?? [];\n        spansNotEnded.forEach(msgDetails => {\n            this.endConsumerSpan(msgDetails.msg, isRejected, operation, requeue);\n        });\n        channel[utils_1.CHANNEL_SPANS_NOT_ENDED] = [];\n    }\n    callConsumeEndHook(span, msg, rejected, endOperation) {\n        const { consumeEndHook } = this.getConfig();\n        if (!consumeEndHook)\n            return;\n        (0, instrumentation_1.safeExecuteInTheMiddle)(() => consumeEndHook(span, { msg, rejected, endOperation }), e => {\n            if (e) {\n                api_1.diag.error('amqplib instrumentation: consumerEndHook error', e);\n            }\n        }, true);\n    }\n    checkConsumeTimeoutOnChannel(channel) {\n        const currentTime = (0, core_1.hrTime)();\n        const spansNotEnded = channel[utils_1.CHANNEL_SPANS_NOT_ENDED] ?? [];\n        let i;\n        const { consumeTimeoutMs } = this.getConfig();\n        for (i = 0; i < spansNotEnded.length; i++) {\n            const currMessage = spansNotEnded[i];\n            const timeFromConsume = (0, core_1.hrTimeDuration)(currMessage.timeOfConsume, currentTime);\n            if ((0, core_1.hrTimeToMilliseconds)(timeFromConsume) < consumeTimeoutMs) {\n                break;\n            }\n            this.endConsumerSpan(currMessage.msg, null, types_1.EndOperation.InstrumentationTimeout, true);\n        }\n        spansNotEnded.splice(0, i);\n    }\n}\nexports.AmqplibInstrumentation = AmqplibInstrumentation;\n//# sourceMappingURL=amqplib.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EndOperation = exports.DEFAULT_CONFIG = exports.AmqplibInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar amqplib_1 = require(\"./amqplib\");\nObject.defineProperty(exports, \"AmqplibInstrumentation\", { enumerable: true, get: function () { return amqplib_1.AmqplibInstrumentation; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"DEFAULT_CONFIG\", { enumerable: true, get: function () { return types_1.DEFAULT_CONFIG; } });\nObject.defineProperty(exports, \"EndOperation\", { enumerable: true, get: function () { return types_1.EndOperation; } });\n//# sourceMappingURL=index.js.map",
     "import * as os from 'os';\nimport { toCommandValue } from './utils.js';\n/**\n * Issues a command to the GitHub Actions runner\n *\n * @param command - The command name to issue\n * @param properties - Additional properties for the command (key-value pairs)\n * @param message - The message to include with the command\n * @remarks\n * This function outputs a specially formatted string to stdout that the Actions\n * runner interprets as a command. These commands can control workflow behavior,\n * set outputs, create annotations, mask values, and more.\n *\n * Command Format:\n *   ::name key=value,key=value::message\n *\n * @example\n * ```typescript\n * // Issue a warning annotation\n * issueCommand('warning', {}, 'This is a warning message');\n * // Output: ::warning::This is a warning message\n *\n * // Set an environment variable\n * issueCommand('set-env', { name: 'MY_VAR' }, 'some value');\n * // Output: ::set-env name=MY_VAR::some value\n *\n * // Add a secret mask\n * issueCommand('add-mask', {}, 'secretValue123');\n * // Output: ::add-mask::secretValue123\n * ```\n *\n * @internal\n * This is an internal utility function that powers the public API functions\n * such as setSecret, warning, error, and exportVariable.\n */\nexport function issueCommand(command, properties, message) {\n    const cmd = new Command(command, properties, message);\n    process.stdout.write(cmd.toString() + os.EOL);\n}\nexport function issue(name, message = '') {\n    issueCommand(name, {}, message);\n}\nconst CMD_STRING = '::';\nclass Command {\n    constructor(command, properties, message) {\n        if (!command) {\n            command = 'missing.command';\n        }\n        this.command = command;\n        this.properties = properties;\n        this.message = message;\n    }\n    toString() {\n        let cmdStr = CMD_STRING + this.command;\n        if (this.properties && Object.keys(this.properties).length > 0) {\n            cmdStr += ' ';\n            let first = true;\n            for (const key in this.properties) {\n                if (this.properties.hasOwnProperty(key)) {\n                    const val = this.properties[key];\n                    if (val) {\n                        if (first) {\n                            first = false;\n                        }\n                        else {\n                            cmdStr += ',';\n                        }\n                        cmdStr += `${key}=${escapeProperty(val)}`;\n                    }\n                }\n            }\n        }\n        cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n        return cmdStr;\n    }\n}\nfunction escapeData(s) {\n    return toCommandValue(s)\n        .replace(/%/g, '%25')\n        .replace(/\\r/g, '%0D')\n        .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n    return toCommandValue(s)\n        .replace(/%/g, '%25')\n        .replace(/\\r/g, '%0D')\n        .replace(/\\n/g, '%0A')\n        .replace(/:/g, '%3A')\n        .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map",
     "// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nexport function toCommandValue(input) {\n    if (input === null || input === undefined) {\n        return '';\n    }\n    else if (typeof input === 'string' || input instanceof String) {\n        return input;\n    }\n    return JSON.stringify(input);\n}\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nexport function toCommandProperties(annotationProperties) {\n    if (!Object.keys(annotationProperties).length) {\n        return {};\n    }\n    return {\n        title: annotationProperties.title,\n        file: annotationProperties.file,\n        line: annotationProperties.startLine,\n        endLine: annotationProperties.endLine,\n        col: annotationProperties.startColumn,\n        endColumn: annotationProperties.endColumn\n    };\n}\n//# sourceMappingURL=utils.js.map",
     "// For internal use, subject to change.\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as crypto from 'crypto';\nimport * as fs from 'fs';\nimport * as os from 'os';\nimport { toCommandValue } from './utils.js';\nexport function issueFileCommand(command, message) {\n    const filePath = process.env[`GITHUB_${command}`];\n    if (!filePath) {\n        throw new Error(`Unable to find environment variable for file command ${command}`);\n    }\n    if (!fs.existsSync(filePath)) {\n        throw new Error(`Missing file at path: ${filePath}`);\n    }\n    fs.appendFileSync(filePath, `${toCommandValue(message)}${os.EOL}`, {\n        encoding: 'utf8'\n    });\n}\nexport function prepareKeyValueMessage(key, value) {\n    const delimiter = `ghadelimiter_${crypto.randomUUID()}`;\n    const convertedValue = toCommandValue(value);\n    // These should realistically never happen, but just in case someone finds a\n    // way to exploit uuid generation let's not allow keys or values that contain\n    // the delimiter.\n    if (key.includes(delimiter)) {\n        throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n    }\n    if (convertedValue.includes(delimiter)) {\n        throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n    }\n    return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\n//# sourceMappingURL=file-command.js.map",
@@ -493,238 +277,347 @@
     "var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nimport { ok } from 'assert';\nimport * as path from 'path';\nimport * as ioUtil from './io-util.js';\n/**\n * Copies a file or folder.\n * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js\n *\n * @param     source    source path\n * @param     dest      destination path\n * @param     options   optional. See CopyOptions.\n */\nexport function cp(source_1, dest_1) {\n    return __awaiter(this, arguments, void 0, function* (source, dest, options = {}) {\n        const { force, recursive, copySourceDirectory } = readCopyOptions(options);\n        const destStat = (yield ioUtil.exists(dest)) ? yield ioUtil.stat(dest) : null;\n        // Dest is an existing file, but not forcing\n        if (destStat && destStat.isFile() && !force) {\n            return;\n        }\n        // If dest is an existing directory, should copy inside.\n        const newDest = destStat && destStat.isDirectory() && copySourceDirectory\n            ? path.join(dest, path.basename(source))\n            : dest;\n        if (!(yield ioUtil.exists(source))) {\n            throw new Error(`no such file or directory: ${source}`);\n        }\n        const sourceStat = yield ioUtil.stat(source);\n        if (sourceStat.isDirectory()) {\n            if (!recursive) {\n                throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);\n            }\n            else {\n                yield cpDirRecursive(source, newDest, 0, force);\n            }\n        }\n        else {\n            if (path.relative(source, newDest) === '') {\n                // a file cannot be copied to itself\n                throw new Error(`'${newDest}' and '${source}' are the same file`);\n            }\n            yield copyFile(source, newDest, force);\n        }\n    });\n}\n/**\n * Moves a path.\n *\n * @param     source    source path\n * @param     dest      destination path\n * @param     options   optional. See MoveOptions.\n */\nexport function mv(source_1, dest_1) {\n    return __awaiter(this, arguments, void 0, function* (source, dest, options = {}) {\n        if (yield ioUtil.exists(dest)) {\n            let destExists = true;\n            if (yield ioUtil.isDirectory(dest)) {\n                // If dest is directory copy src into dest\n                dest = path.join(dest, path.basename(source));\n                destExists = yield ioUtil.exists(dest);\n            }\n            if (destExists) {\n                if (options.force == null || options.force) {\n                    yield rmRF(dest);\n                }\n                else {\n                    throw new Error('Destination already exists');\n                }\n            }\n        }\n        yield mkdirP(path.dirname(dest));\n        yield ioUtil.rename(source, dest);\n    });\n}\n/**\n * Remove a path recursively with force\n *\n * @param inputPath path to remove\n */\nexport function rmRF(inputPath) {\n    return __awaiter(this, void 0, void 0, function* () {\n        if (ioUtil.IS_WINDOWS) {\n            // Check for invalid characters\n            // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file\n            if (/[*\"<>|]/.test(inputPath)) {\n                throw new Error('File path must not contain `*`, `\"`, `<`, `>` or `|` on Windows');\n            }\n        }\n        try {\n            // note if path does not exist, error is silent\n            yield ioUtil.rm(inputPath, {\n                force: true,\n                maxRetries: 3,\n                recursive: true,\n                retryDelay: 300\n            });\n        }\n        catch (err) {\n            throw new Error(`File was unable to be removed ${err}`);\n        }\n    });\n}\n/**\n * Make a directory.  Creates the full path with folders in between\n * Will throw if it fails\n *\n * @param   fsPath        path to create\n * @returns Promise\n */\nexport function mkdirP(fsPath) {\n    return __awaiter(this, void 0, void 0, function* () {\n        ok(fsPath, 'a path argument must be provided');\n        yield ioUtil.mkdir(fsPath, { recursive: true });\n    });\n}\n/**\n * Returns path of a tool had the tool actually been invoked.  Resolves via paths.\n * If you check and the tool does not exist, it will throw.\n *\n * @param     tool              name of the tool\n * @param     check             whether to check if tool exists\n * @returns   Promise   path to tool\n */\nexport function which(tool, check) {\n    return __awaiter(this, void 0, void 0, function* () {\n        if (!tool) {\n            throw new Error(\"parameter 'tool' is required\");\n        }\n        // recursive when check=true\n        if (check) {\n            const result = yield which(tool, false);\n            if (!result) {\n                if (ioUtil.IS_WINDOWS) {\n                    throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);\n                }\n                else {\n                    throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);\n                }\n            }\n            return result;\n        }\n        const matches = yield findInPath(tool);\n        if (matches && matches.length > 0) {\n            return matches[0];\n        }\n        return '';\n    });\n}\n/**\n * Returns a list of all occurrences of the given tool on the system path.\n *\n * @returns   Promise  the paths of the tool\n */\nexport function findInPath(tool) {\n    return __awaiter(this, void 0, void 0, function* () {\n        if (!tool) {\n            throw new Error(\"parameter 'tool' is required\");\n        }\n        // build the list of extensions to try\n        const extensions = [];\n        if (ioUtil.IS_WINDOWS && process.env['PATHEXT']) {\n            for (const extension of process.env['PATHEXT'].split(path.delimiter)) {\n                if (extension) {\n                    extensions.push(extension);\n                }\n            }\n        }\n        // if it's rooted, return it if exists. otherwise return empty.\n        if (ioUtil.isRooted(tool)) {\n            const filePath = yield ioUtil.tryGetExecutablePath(tool, extensions);\n            if (filePath) {\n                return [filePath];\n            }\n            return [];\n        }\n        // if any path separators, return empty\n        if (tool.includes(path.sep)) {\n            return [];\n        }\n        // build the list of directories\n        //\n        // Note, technically \"where\" checks the current directory on Windows. From a toolkit perspective,\n        // it feels like we should not do this. Checking the current directory seems like more of a use\n        // case of a shell, and the which() function exposed by the toolkit should strive for consistency\n        // across platforms.\n        const directories = [];\n        if (process.env.PATH) {\n            for (const p of process.env.PATH.split(path.delimiter)) {\n                if (p) {\n                    directories.push(p);\n                }\n            }\n        }\n        // find all matches\n        const matches = [];\n        for (const directory of directories) {\n            const filePath = yield ioUtil.tryGetExecutablePath(path.join(directory, tool), extensions);\n            if (filePath) {\n                matches.push(filePath);\n            }\n        }\n        return matches;\n    });\n}\nfunction readCopyOptions(options) {\n    const force = options.force == null ? true : options.force;\n    const recursive = Boolean(options.recursive);\n    const copySourceDirectory = options.copySourceDirectory == null\n        ? true\n        : Boolean(options.copySourceDirectory);\n    return { force, recursive, copySourceDirectory };\n}\nfunction cpDirRecursive(sourceDir, destDir, currentDepth, force) {\n    return __awaiter(this, void 0, void 0, function* () {\n        // Ensure there is not a run away recursive copy\n        if (currentDepth >= 255)\n            return;\n        currentDepth++;\n        yield mkdirP(destDir);\n        const files = yield ioUtil.readdir(sourceDir);\n        for (const fileName of files) {\n            const srcFile = `${sourceDir}/${fileName}`;\n            const destFile = `${destDir}/${fileName}`;\n            const srcFileStat = yield ioUtil.lstat(srcFile);\n            if (srcFileStat.isDirectory()) {\n                // Recurse\n                yield cpDirRecursive(srcFile, destFile, currentDepth, force);\n            }\n            else {\n                yield copyFile(srcFile, destFile, force);\n            }\n        }\n        // Change the mode for the newly created directory\n        yield ioUtil.chmod(destDir, (yield ioUtil.stat(sourceDir)).mode);\n    });\n}\n// Buffered file copy\nfunction copyFile(srcFile, destFile, force) {\n    return __awaiter(this, void 0, void 0, function* () {\n        if ((yield ioUtil.lstat(srcFile)).isSymbolicLink()) {\n            // unlink/re-link it\n            try {\n                yield ioUtil.lstat(destFile);\n                yield ioUtil.unlink(destFile);\n            }\n            catch (e) {\n                // Try to override file permission\n                if (e.code === 'EPERM') {\n                    yield ioUtil.chmod(destFile, '0666');\n                    yield ioUtil.unlink(destFile);\n                }\n                // other errors = it doesn't exist, no work to do\n            }\n            // Copy over symlink\n            const symlinkFull = yield ioUtil.readlink(srcFile);\n            yield ioUtil.symlink(symlinkFull, destFile, ioUtil.IS_WINDOWS ? 'junction' : null);\n        }\n        else if (!(yield ioUtil.exists(destFile)) || force) {\n            yield ioUtil.copyFile(srcFile, destFile);\n        }\n    });\n}\n//# sourceMappingURL=io.js.map",
     "var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nimport * as fs from 'fs';\nimport * as path from 'path';\nexport const { chmod, copyFile, lstat, mkdir, open, readdir, rename, rm, rmdir, stat, symlink, unlink } = fs.promises;\n// export const {open} = 'fs'\nexport const IS_WINDOWS = process.platform === 'win32';\n/**\n * Custom implementation of readlink to ensure Windows junctions\n * maintain trailing backslash for backward compatibility with Node.js < 24\n *\n * In Node.js 20, Windows junctions (directory symlinks) always returned paths\n * with trailing backslashes. Node.js 24 removed this behavior, which breaks\n * code that relied on this format for path operations.\n *\n * This implementation restores the Node 20 behavior by adding a trailing\n * backslash to all junction results on Windows.\n */\nexport function readlink(fsPath) {\n    return __awaiter(this, void 0, void 0, function* () {\n        const result = yield fs.promises.readlink(fsPath);\n        // On Windows, restore Node 20 behavior: add trailing backslash to all results\n        // since junctions on Windows are always directory links\n        if (IS_WINDOWS && !result.endsWith('\\\\')) {\n            return `${result}\\\\`;\n        }\n        return result;\n    });\n}\n// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691\nexport const UV_FS_O_EXLOCK = 0x10000000;\nexport const READONLY = fs.constants.O_RDONLY;\nexport function exists(fsPath) {\n    return __awaiter(this, void 0, void 0, function* () {\n        try {\n            yield stat(fsPath);\n        }\n        catch (err) {\n            if (err.code === 'ENOENT') {\n                return false;\n            }\n            throw err;\n        }\n        return true;\n    });\n}\nexport function isDirectory(fsPath_1) {\n    return __awaiter(this, arguments, void 0, function* (fsPath, useStat = false) {\n        const stats = useStat ? yield stat(fsPath) : yield lstat(fsPath);\n        return stats.isDirectory();\n    });\n}\n/**\n * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:\n * \\, \\hello, \\\\hello\\share, C:, and C:\\hello (and corresponding alternate separator cases).\n */\nexport function isRooted(p) {\n    p = normalizeSeparators(p);\n    if (!p) {\n        throw new Error('isRooted() parameter \"p\" cannot be empty');\n    }\n    if (IS_WINDOWS) {\n        return (p.startsWith('\\\\') || /^[A-Z]:/i.test(p) // e.g. \\ or \\hello or \\\\hello\n        ); // e.g. C: or C:\\hello\n    }\n    return p.startsWith('/');\n}\n/**\n * Best effort attempt to determine whether a file exists and is executable.\n * @param filePath    file path to check\n * @param extensions  additional file extensions to try\n * @return if file exists and is executable, returns the file path. otherwise empty string.\n */\nexport function tryGetExecutablePath(filePath, extensions) {\n    return __awaiter(this, void 0, void 0, function* () {\n        let stats = undefined;\n        try {\n            // test file exists\n            stats = yield stat(filePath);\n        }\n        catch (err) {\n            if (err.code !== 'ENOENT') {\n                // eslint-disable-next-line no-console\n                console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n            }\n        }\n        if (stats && stats.isFile()) {\n            if (IS_WINDOWS) {\n                // on Windows, test for valid extension\n                const upperExt = path.extname(filePath).toUpperCase();\n                if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) {\n                    return filePath;\n                }\n            }\n            else {\n                if (isUnixExecutable(stats)) {\n                    return filePath;\n                }\n            }\n        }\n        // try each extension\n        const originalFilePath = filePath;\n        for (const extension of extensions) {\n            filePath = originalFilePath + extension;\n            stats = undefined;\n            try {\n                stats = yield stat(filePath);\n            }\n            catch (err) {\n                if (err.code !== 'ENOENT') {\n                    // eslint-disable-next-line no-console\n                    console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n                }\n            }\n            if (stats && stats.isFile()) {\n                if (IS_WINDOWS) {\n                    // preserve the case of the actual file (since an extension was appended)\n                    try {\n                        const directory = path.dirname(filePath);\n                        const upperName = path.basename(filePath).toUpperCase();\n                        for (const actualName of yield readdir(directory)) {\n                            if (upperName === actualName.toUpperCase()) {\n                                filePath = path.join(directory, actualName);\n                                break;\n                            }\n                        }\n                    }\n                    catch (err) {\n                        // eslint-disable-next-line no-console\n                        console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);\n                    }\n                    return filePath;\n                }\n                else {\n                    if (isUnixExecutable(stats)) {\n                        return filePath;\n                    }\n                }\n            }\n        }\n        return '';\n    });\n}\nfunction normalizeSeparators(p) {\n    p = p || '';\n    if (IS_WINDOWS) {\n        // convert slashes on Windows\n        p = p.replace(/\\//g, '\\\\');\n        // remove redundant slashes\n        return p.replace(/\\\\\\\\+/g, '\\\\');\n    }\n    // remove redundant slashes\n    return p.replace(/\\/\\/+/g, '/');\n}\n// on Mac/Linux, test the execute bit\n//     R   W  X  R  W X R W X\n//   256 128 64 32 16 8 4 2 1\nfunction isUnixExecutable(stats) {\n    return ((stats.mode & 1) > 0 ||\n        ((stats.mode & 8) > 0 &&\n            process.getgid !== undefined &&\n            stats.gid === process.getgid()) ||\n        ((stats.mode & 64) > 0 &&\n            process.getuid !== undefined &&\n            stats.uid === process.getuid()));\n}\n// Get the path of cmd.exe in windows\nexport function getCmdPath() {\n    var _a;\n    return (_a = process.env['COMSPEC']) !== null && _a !== void 0 ? _a : `cmd.exe`;\n}\n//# sourceMappingURL=io-util.js.map",
     "var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nimport { StringDecoder } from 'string_decoder';\nimport * as tr from './toolrunner.js';\n/**\n * Exec a command.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param     commandLine        command to execute (can include additional args). Must be correctly escaped.\n * @param     args               optional arguments for tool. Escaping is handled by the lib.\n * @param     options            optional exec options.  See ExecOptions\n * @returns   Promise    exit code\n */\nexport function exec(commandLine, args, options) {\n    return __awaiter(this, void 0, void 0, function* () {\n        const commandArgs = tr.argStringToArray(commandLine);\n        if (commandArgs.length === 0) {\n            throw new Error(`Parameter 'commandLine' cannot be null or empty.`);\n        }\n        // Path to tool to execute should be first arg\n        const toolPath = commandArgs[0];\n        args = commandArgs.slice(1).concat(args || []);\n        const runner = new tr.ToolRunner(toolPath, args, options);\n        return runner.exec();\n    });\n}\n/**\n * Exec a command and get the output.\n * Output will be streamed to the live console.\n * Returns promise with the exit code and collected stdout and stderr\n *\n * @param     commandLine           command to execute (can include additional args). Must be correctly escaped.\n * @param     args                  optional arguments for tool. Escaping is handled by the lib.\n * @param     options               optional exec options.  See ExecOptions\n * @returns   Promise   exit code, stdout, and stderr\n */\nexport function getExecOutput(commandLine, args, options) {\n    return __awaiter(this, void 0, void 0, function* () {\n        var _a, _b;\n        let stdout = '';\n        let stderr = '';\n        //Using string decoder covers the case where a mult-byte character is split\n        const stdoutDecoder = new StringDecoder('utf8');\n        const stderrDecoder = new StringDecoder('utf8');\n        const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout;\n        const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr;\n        const stdErrListener = (data) => {\n            stderr += stderrDecoder.write(data);\n            if (originalStdErrListener) {\n                originalStdErrListener(data);\n            }\n        };\n        const stdOutListener = (data) => {\n            stdout += stdoutDecoder.write(data);\n            if (originalStdoutListener) {\n                originalStdoutListener(data);\n            }\n        };\n        const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), { stdout: stdOutListener, stderr: stdErrListener });\n        const exitCode = yield exec(commandLine, args, Object.assign(Object.assign({}, options), { listeners }));\n        //flush any remaining characters\n        stdout += stdoutDecoder.end();\n        stderr += stderrDecoder.end();\n        return {\n            exitCode,\n            stdout,\n            stderr\n        };\n    });\n}\n//# sourceMappingURL=exec.js.map",
-    "import * as core from '@actions/core'\nimport { readdirSync, statSync } from 'node:fs'\nimport path from 'node:path'\nimport buildOptions, {\n  buildOptionsFromInputs,\n  type ElideFormatActionOptions\n} from './options'\nimport { runFormatter, type FormatterName } from './command'\nimport {\n  initTelemetry,\n  reportError,\n  flushTelemetry,\n  withSpan,\n  recordMetric,\n  logEvent\n} from './telemetry'\n\nexport enum ActionOutputName {\n  RESULT = 'result',\n  FILES_CHECKED = 'files-checked'\n}\n\nexport function findFiles(\n  dir: string,\n  ext: string,\n  excludePatterns: string[] = []\n): string[] {\n  const results: string[] = []\n  function walk(current: string): void {\n    for (const entry of readdirSync(current, { withFileTypes: true })) {\n      const full = path.join(current, entry.name)\n      if (entry.isDirectory()) {\n        if (!excludePatterns.some(p => matchesExcludePattern(full, p))) {\n          walk(full)\n        }\n      } else if (entry.name.endsWith(ext)) {\n        results.push(full)\n      }\n    }\n  }\n  walk(dir)\n  return results\n}\n\nfunction getExtensions(\n  formatter: FormatterName,\n  options: ElideFormatActionOptions\n): string[] {\n  if (formatter === 'javaformat') return ['.java']\n  return options.include_kts ? ['.kt', '.kts'] : ['.kt']\n}\n\nexport function resolveFiles(\n  options: ElideFormatActionOptions,\n  formatter: FormatterName\n): string[] {\n  const exts = getExtensions(formatter, options)\n\n  if (options.files.length > 0) {\n    return options.files.flatMap(f => {\n      const resolved = path.isAbsolute(f)\n        ? f\n        : path.join(options.working_directory, f)\n      try {\n        if (statSync(resolved).isDirectory()) {\n          return exts.flatMap(ext => findFiles(resolved, ext, options.exclude))\n        }\n      } catch {\n        // not a directory or path doesn't exist — treat as a file path\n      }\n      return [resolved]\n    })\n  }\n\n  return exts.flatMap(ext =>\n    findFiles(options.working_directory, ext, options.exclude)\n  )\n}\n\n/**\n * Returns true if the normalized file path matches the exclusion pattern.\n *\n * Plain patterns (no * or ?) match as path segments — \"generated\" excludes any\n * file under a directory named \"generated\". Glob patterns use * (within a\n * segment) and ** (across segments).\n */\nexport function matchesExcludePattern(\n  filePath: string,\n  pattern: string\n): boolean {\n  const normalized = filePath.replace(/\\\\/g, '/')\n  const normPattern = pattern.replace(/\\\\/g, '/')\n\n  if (!normPattern.includes('*') && !normPattern.includes('?')) {\n    return (\n      normalized === normPattern ||\n      normalized.startsWith(normPattern + '/') ||\n      normalized.includes('/' + normPattern + '/') ||\n      normalized.endsWith('/' + normPattern)\n    )\n  }\n\n  const regexStr =\n    '^' +\n    normPattern\n      .replace(/[.+^${}()|[\\]\\\\]/g, '\\\\$&')\n      .replace(/\\*\\*/g, ' ')\n      .replace(/\\*/g, '[^/]*')\n      .replace(/\\?/g, '[^/]')\n      .replace(/ /g, '.*') +\n    '$'\n\n  return new RegExp(regexStr).test(normalized)\n}\n\nexport function applyExclusions(files: string[], patterns: string[]): string[] {\n  if (patterns.length === 0) return files\n  return files.filter(f => !patterns.some(p => matchesExcludePattern(f, p)))\n}\n\nasync function writeSummary(\n  formatters: FormatterName[],\n  results: Record,\n  filesChecked: number,\n  success: boolean,\n  elapsedMs: number\n): Promise {\n  try {\n    const elapsed =\n      elapsedMs < 1000\n        ? `${Math.round(elapsedMs)}ms`\n        : `${(elapsedMs / 1000).toFixed(1)}s`\n\n    const rows: { data: string; header: boolean }[][] = formatters.map(f => [\n      { data: f, header: false },\n      { data: results[f] === 0 ? 'passed' : 'failed', header: false }\n    ])\n\n    await core.summary\n      .addHeading(success ? 'Format Check Passed' : 'Format Check Failed', 2)\n      .addTable([\n        [\n          { data: 'Formatter', header: true },\n          { data: 'Result', header: true }\n        ],\n        ...rows,\n        [\n          { data: 'Files checked', header: true },\n          { data: String(filesChecked), header: false }\n        ],\n        [\n          { data: 'Time', header: true },\n          { data: elapsed, header: false }\n        ]\n      ])\n      .write()\n  } catch {\n    // ignore — summary is not available outside GHA\n  }\n}\n\nexport async function run(\n  options?: Partial\n): Promise {\n  const startTime = Date.now()\n\n  try {\n    const effectiveOptions = await core.group('Resolving options', async () => {\n      const opts = options ? buildOptions(options) : buildOptionsFromInputs()\n      core.info(\n        `formatter=${opts.formatter} mode=${opts.mode} working_directory=${opts.working_directory}`\n      )\n      return opts\n    })\n\n    initTelemetry(effectiveOptions.telemetry, effectiveOptions)\n    logEvent('format.start', {\n      formatter: effectiveOptions.formatter,\n      mode: effectiveOptions.mode\n    })\n\n    await withSpan('format', 'format', async () => {\n      const formatters: FormatterName[] =\n        effectiveOptions.formatter === 'all'\n          ? ['javaformat', 'ktfmt']\n          : [effectiveOptions.formatter]\n\n      const results: Partial> = {}\n      let totalFiles = 0\n\n      for (const formatter of formatters) {\n        const resolved = resolveFiles(effectiveOptions, formatter)\n        const files = applyExclusions(resolved, effectiveOptions.exclude)\n        totalFiles += files.length\n\n        if (files.length === 0) {\n          const ext = formatter === 'javaformat' ? '.java' : '.kt'\n          core.info(`No ${ext} files found, skipping ${formatter}`)\n          results[formatter] = 0\n          continue\n        }\n\n        const extraArgs =\n          formatter === 'javaformat'\n            ? effectiveOptions.gjf_args\n            : effectiveOptions.ktfmt_args\n\n        const exitCode: number = await core.group(\n          `Running ${formatter}`,\n          async () =>\n            withSpan(`format.${formatter}`, 'format', () =>\n              runFormatter(\n                formatter,\n                effectiveOptions.mode,\n                files,\n                extraArgs,\n                effectiveOptions.working_directory\n              )\n            )\n        )\n\n        results[formatter] = exitCode\n\n        if (exitCode !== 0) {\n          core.error(`${formatter} check failed (exit code ${exitCode})`, {\n            title: 'Format Check Failed'\n          })\n        } else {\n          core.info(`${formatter} check passed`)\n        }\n      }\n\n      const success = Object.values(results).every(code => code === 0)\n      const elapsed = Date.now() - startTime\n\n      core.setOutput(ActionOutputName.RESULT, success ? 'success' : 'failure')\n      core.setOutput(ActionOutputName.FILES_CHECKED, String(totalFiles))\n\n      recordMetric('format.duration_ms', elapsed, 'millisecond', {\n        formatter: effectiveOptions.formatter,\n        mode: effectiveOptions.mode\n      })\n\n      logEvent('format.exit', {\n        status: success ? 'success' : 'failure',\n        formatter: effectiveOptions.formatter,\n        mode: effectiveOptions.mode\n      })\n\n      await writeSummary(\n        formatters,\n        results as Record,\n        totalFiles,\n        success,\n        elapsed\n      )\n\n      if (!success) {\n        const failed = Object.entries(results)\n          .filter(([, code]) => code !== 0)\n          .map(([f]) => `elide ${f}`)\n          .join(', ')\n        const message = `Format check failed. Run locally to fix: ${failed}`\n\n        if (effectiveOptions.fail_on_error) {\n          core.setFailed(message)\n        } else {\n          core.warning(message, { title: 'Format Check Failed' })\n        }\n      }\n    })\n  } catch (error) {\n    if (error instanceof Error) {\n      reportError(error)\n      core.error(error.message, { title: 'Action Failed' })\n      core.setFailed(error.message)\n    }\n  } finally {\n    await flushTelemetry()\n  }\n}\n",
-    "import * as core from '@actions/core'\n\nexport enum OptionName {\n  FORMATTER = 'formatter',\n  MODE = 'mode',\n  FILES = 'files',\n  EXCLUDE = 'exclude',\n  WORKING_DIRECTORY = 'working-directory',\n  GJF_ARGS = 'gjf-args',\n  KTFMT_ARGS = 'ktfmt-args',\n  INCLUDE_KTS = 'include-kts',\n  FAIL_ON_ERROR = 'fail-on-error',\n  TELEMETRY = 'telemetry'\n}\n\nexport type FormatterChoice = 'javaformat' | 'ktfmt' | 'all'\nexport type FormatMode = 'check' | 'write'\n\nexport interface ElideFormatActionOptions {\n  formatter: FormatterChoice\n  mode: FormatMode\n  // Empty array means no explicit files — scan by extension.\n  files: string[]\n  // Paths or glob patterns to exclude from formatting.\n  exclude: string[]\n  working_directory: string\n  gjf_args: string[]\n  ktfmt_args: string[]\n  include_kts: boolean\n  fail_on_error: boolean\n  telemetry: boolean\n}\n\nexport const defaults: ElideFormatActionOptions = {\n  formatter: 'all',\n  mode: 'check',\n  files: [],\n  exclude: [],\n  working_directory: process.env.GITHUB_WORKSPACE ?? process.cwd(),\n  gjf_args: [],\n  ktfmt_args: [],\n  include_kts: false,\n  fail_on_error: true,\n  telemetry: true\n}\n\nexport function normalizeFormatter(value: string): FormatterChoice {\n  switch (value.trim().toLowerCase()) {\n    case 'google-java-format':\n    case 'javaformat':\n    case 'gjf':\n      return 'javaformat'\n    case 'ktfmt':\n      return 'ktfmt'\n    default:\n      return 'all'\n  }\n}\n\nexport function normalizeMode(value: string): FormatMode {\n  switch (value.trim().toLowerCase()) {\n    case 'write':\n    case 'format':\n      return 'write'\n    default:\n      return 'check'\n  }\n}\n\nexport function parseArgs(value: string): string[] {\n  return value.trim().split(/\\s+/).filter(Boolean)\n}\n\nexport function parseFiles(value: string): string[] {\n  return value\n    .trim()\n    .split(/[\\s\\n]+/)\n    .filter(Boolean)\n}\n\nexport default function buildOptions(\n  opts?: Partial\n): ElideFormatActionOptions {\n  return { ...defaults, ...opts }\n}\n\nfunction booleanInput(name: string, defaultValue: boolean): boolean {\n  try {\n    return core.getBooleanInput(name)\n  } catch {\n    return defaultValue\n  }\n}\n\nfunction stringInput(name: string, defaultValue?: string): string | undefined {\n  const value = core.getInput(name)\n  return value || defaultValue || undefined\n}\n\nexport function buildOptionsFromInputs(): ElideFormatActionOptions {\n  return buildOptions({\n    formatter: normalizeFormatter(\n      stringInput(OptionName.FORMATTER, 'all') as string\n    ),\n    mode: normalizeMode(stringInput(OptionName.MODE, 'check') as string),\n    files: parseFiles(stringInput(OptionName.FILES, '') ?? ''),\n    exclude: parseFiles(stringInput(OptionName.EXCLUDE, '') ?? ''),\n    working_directory: stringInput(\n      OptionName.WORKING_DIRECTORY,\n      defaults.working_directory\n    ) as string,\n    gjf_args: parseArgs(stringInput(OptionName.GJF_ARGS, '') ?? ''),\n    ktfmt_args: parseArgs(stringInput(OptionName.KTFMT_ARGS, '') ?? ''),\n    include_kts: booleanInput(OptionName.INCLUDE_KTS, false),\n    fail_on_error: booleanInput(OptionName.FAIL_ON_ERROR, true),\n    telemetry: booleanInput(OptionName.TELEMETRY, true)\n  })\n}\n",
-    "import * as core from '@actions/core'\nimport * as exec from '@actions/exec'\nimport { writeFileSync, unlinkSync } from 'node:fs'\nimport os from 'node:os'\nimport path from 'node:path'\nimport type { FormatMode } from './options'\n\nexport type FormatterName = 'javaformat' | 'ktfmt'\n\nconst CHECK_FLAGS: Record = {\n  javaformat: ['--dry-run', '--set-exit-if-changed'],\n  ktfmt: ['--dry-run', '--set-exit-if-changed']\n}\n\nexport function buildFormatterArgs(\n  formatter: FormatterName,\n  mode: FormatMode,\n  files: string[],\n  extraArgs: string[]\n): string[] {\n  return [\n    formatter,\n    '--',\n    ...(mode === 'check' ? CHECK_FLAGS[formatter] : []),\n    ...extraArgs,\n    ...files\n  ]\n}\n\nexport async function runFormatter(\n  formatter: FormatterName,\n  mode: FormatMode,\n  files: string[],\n  extraArgs: string[],\n  cwd: string\n): Promise {\n  const tempDir = process.env.RUNNER_TEMP ?? os.tmpdir()\n  const argfilePath = path.join(tempDir, `format-${formatter}.txt`)\n\n  let execArgs: string[]\n  if (formatter === 'ktfmt') {\n    // ktfmt requires the argfile to be the only argument after `--`, so flags go in the file\n    const checkFlags = mode === 'check' ? CHECK_FLAGS.ktfmt : []\n    writeFileSync(\n      argfilePath,\n      [...checkFlags, ...extraArgs, ...files].join('\\n'),\n      'utf-8'\n    )\n    execArgs = [formatter, '--', `@${argfilePath}`]\n  } else {\n    writeFileSync(argfilePath, files.join('\\n'), 'utf-8')\n    execArgs = buildFormatterArgs(\n      formatter,\n      mode,\n      [`@${argfilePath}`],\n      extraArgs\n    )\n  }\n\n  core.debug(`Running: elide ${formatter} on ${files.length} files`)\n  try {\n    return await exec.exec('elide', execArgs, { cwd, ignoreReturnCode: true })\n  } finally {\n    try {\n      unlinkSync(argfilePath)\n    } catch {}\n  }\n}\n",
-    "import { diag } from '@opentelemetry/api';\nimport { HttpInstrumentation } from '@opentelemetry/instrumentation-http';\nimport { defineIntegration, getClient, hasSpansEnabled, stripDataUrlContent, SEMANTIC_ATTRIBUTE_URL_FULL } from '@sentry/core';\nimport { NODE_VERSION, generateInstrumentOnce, SentryHttpInstrumentation, httpServerIntegration, httpServerSpansIntegration, getRequestUrl, addOriginToSpan } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Http';\n\nconst INSTRUMENTATION_NAME = '@opentelemetry_sentry-patched/instrumentation-http';\n\n// The `http.client.request.created` diagnostics channel, needed for trace propagation,\n// was added in Node 22.12.0 (backported from 23.2.0). Earlier 22.x versions don't have it.\nconst FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL =\n  (NODE_VERSION.major === 22 && NODE_VERSION.minor >= 12) ||\n  (NODE_VERSION.major === 23 && NODE_VERSION.minor >= 2) ||\n  NODE_VERSION.major >= 24;\n\nconst instrumentSentryHttp = generateInstrumentOnce(\n  `${INTEGRATION_NAME}.sentry`,\n  options => {\n    return new SentryHttpInstrumentation(options);\n  },\n);\n\nconst instrumentOtelHttp = generateInstrumentOnce(INTEGRATION_NAME, config => {\n  const instrumentation = new HttpInstrumentation({\n    ...config,\n    // This is hard-coded and can never be overridden by the user\n    disableIncomingRequestInstrumentation: true,\n  });\n\n  // We want to update the logger namespace so we can better identify what is happening here\n  try {\n    instrumentation['_diag'] = diag.createComponentLogger({\n      namespace: INSTRUMENTATION_NAME,\n    });\n    // @ts-expect-error We are writing a read-only property here...\n    instrumentation.instrumentationName = INSTRUMENTATION_NAME;\n  } catch {\n    // ignore errors here...\n  }\n\n  // The OTel HttpInstrumentation (>=0.213.0) has a guard (`_httpPatched`/`_httpsPatched`)\n  // that prevents patching `http`/`https` when loaded by both CJS `require()` and ESM `import`.\n  // In environments like AWS Lambda, the runtime loads `http` via CJS first (for the Runtime API),\n  // and then the user's ESM handler imports `node:http`. The guard blocks ESM patching after CJS,\n  // which breaks HTTP spans for ESM handlers. We disable this guard to allow both to be patched.\n  // TODO(andrei): Remove once https://github.com/open-telemetry/opentelemetry-js/issues/6489 is fixed.\n  try {\n    const noopDescriptor = { get: () => false, set: () => {} };\n    Object.defineProperty(instrumentation, '_httpPatched', noopDescriptor);\n    Object.defineProperty(instrumentation, '_httpsPatched', noopDescriptor);\n  } catch {\n    // ignore errors here...\n  }\n\n  return instrumentation;\n});\n\n/** Exported only for tests. */\nfunction _shouldUseOtelHttpInstrumentation(\n  options,\n  clientOptions = {},\n) {\n  // If `spans` is passed in, it takes precedence\n  // Else, we by default emit spans, unless `skipOpenTelemetrySetup` is set to `true` or spans are not enabled\n  if (typeof options.spans === 'boolean') {\n    return options.spans;\n  }\n\n  if (clientOptions.skipOpenTelemetrySetup) {\n    return false;\n  }\n\n  // IMPORTANT: We only disable span instrumentation when spans are not enabled _and_ we are on a Node version\n  // that fully supports the necessary diagnostics channels for trace propagation\n  if (!hasSpansEnabled(clientOptions) && FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL) {\n    return false;\n  }\n\n  return true;\n}\n\n/**\n * The http integration instruments Node's internal http and https modules.\n * It creates breadcrumbs and spans for outgoing HTTP requests which will be attached to the currently active span.\n */\nconst httpIntegration = defineIntegration((options = {}) => {\n  const spans = options.spans ?? true;\n  const disableIncomingRequestSpans = options.disableIncomingRequestSpans;\n\n  const serverOptions = {\n    sessions: options.trackIncomingRequestsAsSessions,\n    sessionFlushingDelayMS: options.sessionFlushingDelayMS,\n    ignoreRequestBody: options.ignoreIncomingRequestBody,\n    maxRequestBodySize: options.maxIncomingRequestBodySize,\n  } ;\n\n  const serverSpansOptions = {\n    ignoreIncomingRequests: options.ignoreIncomingRequests,\n    ignoreStaticAssets: options.ignoreStaticAssets,\n    ignoreStatusCodes: options.dropSpansForIncomingRequestStatusCodes,\n    instrumentation: options.instrumentation,\n    onSpanCreated: options.incomingRequestSpanHook,\n  } ;\n\n  const server = httpServerIntegration(serverOptions);\n  const serverSpans = httpServerSpansIntegration(serverSpansOptions);\n\n  const enableServerSpans = spans && !disableIncomingRequestSpans;\n\n  return {\n    name: INTEGRATION_NAME,\n    setup(client) {\n      const clientOptions = client.getOptions();\n\n      if (enableServerSpans && hasSpansEnabled(clientOptions)) {\n        serverSpans.setup(client);\n      }\n    },\n    setupOnce() {\n      const clientOptions = (getClient()?.getOptions() || {}) ;\n      const useOtelHttpInstrumentation = _shouldUseOtelHttpInstrumentation(options, clientOptions);\n\n      server.setupOnce();\n\n      const sentryHttpInstrumentationOptions = {\n        breadcrumbs: options.breadcrumbs,\n        propagateTraceInOutgoingRequests:\n          typeof options.tracePropagation === 'boolean'\n            ? options.tracePropagation\n            : FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL || !useOtelHttpInstrumentation,\n        createSpansForOutgoingRequests: FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL,\n        spans: options.spans,\n        ignoreOutgoingRequests: options.ignoreOutgoingRequests,\n        outgoingRequestHook: (span, request) => {\n          // Sanitize data URLs to prevent long base64 strings in span attributes\n          const url = getRequestUrl(request);\n          if (url.startsWith('data:')) {\n            const sanitizedUrl = stripDataUrlContent(url);\n            span.setAttribute('http.url', sanitizedUrl);\n            span.setAttribute(SEMANTIC_ATTRIBUTE_URL_FULL, sanitizedUrl);\n            span.updateName(`${request.method || 'GET'} ${sanitizedUrl}`);\n          }\n\n          options.instrumentation?.requestHook?.(span, request);\n        },\n        outgoingResponseHook: options.instrumentation?.responseHook,\n        outgoingRequestApplyCustomAttributes: options.instrumentation?.applyCustomAttributesOnSpan,\n      } ;\n\n      // This is Sentry-specific instrumentation for outgoing request breadcrumbs & trace propagation\n      instrumentSentryHttp(sentryHttpInstrumentationOptions);\n\n      // This is the \"regular\" OTEL instrumentation that emits outgoing request spans\n      if (useOtelHttpInstrumentation) {\n        const instrumentationConfig = getConfigWithDefaults(options);\n        instrumentOtelHttp(instrumentationConfig);\n      }\n    },\n    processEvent(event) {\n      // Note: We always run this, even if spans are disabled\n      // The reason being that e.g. the remix integration disables span creation here but still wants to use the ignore status codes option\n      return serverSpans.processEvent(event);\n    },\n  };\n});\n\nfunction getConfigWithDefaults(options = {}) {\n  const instrumentationConfig = {\n    // This is handled by the SentryHttpInstrumentation on Node 22+\n    disableOutgoingRequestInstrumentation: FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL,\n\n    ignoreOutgoingRequestHook: request => {\n      const url = getRequestUrl(request);\n\n      if (!url) {\n        return false;\n      }\n\n      const _ignoreOutgoingRequests = options.ignoreOutgoingRequests;\n      if (_ignoreOutgoingRequests?.(url, request)) {\n        return true;\n      }\n\n      return false;\n    },\n\n    requireParentforOutgoingSpans: false,\n    requestHook: (span, req) => {\n      addOriginToSpan(span, 'auto.http.otel.http');\n\n      // Sanitize data URLs to prevent long base64 strings in span attributes\n      const url = getRequestUrl(req );\n      if (url.startsWith('data:')) {\n        const sanitizedUrl = stripDataUrlContent(url);\n        span.setAttribute('http.url', sanitizedUrl);\n        span.setAttribute(SEMANTIC_ATTRIBUTE_URL_FULL, sanitizedUrl);\n        span.updateName(`${(req ).method || 'GET'} ${sanitizedUrl}`);\n      }\n\n      options.instrumentation?.requestHook?.(span, req);\n    },\n    responseHook: (span, res) => {\n      options.instrumentation?.responseHook?.(span, res);\n    },\n    applyCustomAttributesOnSpan: (\n      span,\n      request,\n      response,\n    ) => {\n      options.instrumentation?.applyCustomAttributesOnSpan?.(span, request, response);\n    },\n  } ;\n\n  return instrumentationConfig;\n}\n\nexport { _shouldUseOtelHttpInstrumentation, httpIntegration, instrumentOtelHttp, instrumentSentryHttp };\n//# sourceMappingURL=http.js.map\n",
-    "/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n",
-    "// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n  switch (objectToString.call(wat)) {\n    case '[object Error]':\n    case '[object Exception]':\n    case '[object DOMException]':\n    case '[object WebAssembly.Exception]':\n      return true;\n    default:\n      return isInstanceOf(wat, Error);\n  }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat, className) {\n  return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n  return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n  return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n  return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n  return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given string is parameterized\n * {@link isParameterizedString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isParameterizedString(wat) {\n  return (\n    typeof wat === 'object' &&\n    wat !== null &&\n    '__sentry_template_string__' in wat &&\n    '__sentry_template_values__' in wat\n  );\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n  return wat === null || isParameterizedString(wat) || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal, or a class instance.\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n  return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n  return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n  return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n  return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n  return Boolean(wat?.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n  return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\n// TODO: fix in v11, convert any to unknown\n// export function isInstanceOf(wat: unknown, base: { new (...args: any[]): T }): wat is T {\nfunction isInstanceOf(wat, base) {\n  try {\n    return wat instanceof base;\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Checks whether given value's type is a Vue ViewModel or a VNode.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isVueViewModel(wat) {\n  // Not using Object.prototype.toString because in Vue 3 it would read the instance's Symbol(Symbol.toStringTag) property.\n  // We also need to check for __v_isVNode because Vue 3 component render instances have an internal __v_isVNode property.\n  return !!(\n    typeof wat === 'object' &&\n    wat !== null &&\n    ((wat ).__isVue || (wat )._isVue || (wat ).__v_isVNode)\n  );\n}\n\n/**\n * Checks whether the given parameter is a Standard Web API Request instance.\n *\n * Returns false if Request is not available in the current runtime.\n */\nfunction isRequest(request) {\n  return typeof Request !== 'undefined' && isInstanceOf(request, Request);\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isParameterizedString, isPlainObject, isPrimitive, isRegExp, isRequest, isString, isSyntheticEvent, isThenable, isVueViewModel };\n//# sourceMappingURL=is.js.map\n",
-    "/** Internal global with common properties and Sentry extensions  */\n\n/** Get's the global object for the current JavaScript runtime */\nconst GLOBAL_OBJ = globalThis ;\n\nexport { GLOBAL_OBJ };\n//# sourceMappingURL=worldwide.js.map\n",
-    "import { isString } from './is.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(\n  elem,\n  options = {},\n) {\n  if (!elem) {\n    return '';\n  }\n\n  // try/catch both:\n  // - accessing event.target (see getsentry/raven-js#838, #768)\n  // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n  // - can throw an exception in some circumstances.\n  try {\n    let currentElem = elem ;\n    const MAX_TRAVERSE_HEIGHT = 5;\n    const out = [];\n    let height = 0;\n    let len = 0;\n    const separator = ' > ';\n    const sepLength = separator.length;\n    let nextStr;\n    const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n    const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n    while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n      nextStr = _htmlElementAsString(currentElem, keyAttrs);\n      // bail out if\n      // - nextStr is the 'html' element\n      // - the length of the string that would be created exceeds maxStringLength\n      //   (ignore this limit if we are on the first iteration)\n      if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n        break;\n      }\n\n      out.push(nextStr);\n\n      len += nextStr.length;\n      currentElem = currentElem.parentNode;\n    }\n\n    return out.reverse().join(separator);\n  } catch {\n    return '';\n  }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n  const elem = el\n\n;\n\n  const out = [];\n\n  if (!elem?.tagName) {\n    return '';\n  }\n\n  // @ts-expect-error WINDOW has HTMLElement\n  if (WINDOW.HTMLElement) {\n    // If using the component name annotation plugin, this value may be available on the DOM node\n    if (elem instanceof HTMLElement && elem.dataset) {\n      if (elem.dataset['sentryComponent']) {\n        return elem.dataset['sentryComponent'];\n      }\n      if (elem.dataset['sentryElement']) {\n        return elem.dataset['sentryElement'];\n      }\n    }\n  }\n\n  out.push(elem.tagName.toLowerCase());\n\n  // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n  const keyAttrPairs = keyAttrs?.length\n    ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n    : null;\n\n  if (keyAttrPairs?.length) {\n    keyAttrPairs.forEach(keyAttrPair => {\n      out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n    });\n  } else {\n    if (elem.id) {\n      out.push(`#${elem.id}`);\n    }\n\n    const className = elem.className;\n    if (className && isString(className)) {\n      const classes = className.split(/\\s+/);\n      for (const c of classes) {\n        out.push(`.${c}`);\n      }\n    }\n  }\n  for (const k of ['aria-label', 'type', 'name', 'title', 'alt']) {\n    const attr = elem.getAttribute(k);\n    if (attr) {\n      out.push(`[${k}=\"${attr}\"]`);\n    }\n  }\n\n  return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n  try {\n    return WINDOW.document.location.href;\n  } catch {\n    return '';\n  }\n}\n\n/**\n * Given a DOM element, traverses up the tree until it finds the first ancestor node\n * that has the `data-sentry-component` or `data-sentry-element` attribute with `data-sentry-component` taking\n * precedence. This attribute is added at build-time by projects that have the component name annotation plugin installed.\n *\n * @returns a string representation of the component for the provided DOM element, or `null` if not found\n */\nfunction getComponentName(elem) {\n  // @ts-expect-error WINDOW has HTMLElement\n  if (!WINDOW.HTMLElement) {\n    return null;\n  }\n\n  let currentElem = elem ;\n  const MAX_TRAVERSE_HEIGHT = 5;\n  for (let i = 0; i < MAX_TRAVERSE_HEIGHT; i++) {\n    if (!currentElem) {\n      return null;\n    }\n\n    if (currentElem instanceof HTMLElement) {\n      if (currentElem.dataset['sentryComponent']) {\n        return currentElem.dataset['sentryComponent'];\n      }\n      if (currentElem.dataset['sentryElement']) {\n        return currentElem.dataset['sentryElement'];\n      }\n    }\n\n    currentElem = currentElem.parentNode;\n  }\n\n  return null;\n}\n\nexport { getComponentName, getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n",
-    "// This is a magic string replaced by rollup\n\nconst SDK_VERSION = \"10.46.0\" ;\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n",
-    "import { SDK_VERSION } from './utils/version.js';\nimport { GLOBAL_OBJ } from './utils/worldwide.js';\n\n/**\n * An object that contains globally accessible properties and maintains a scope stack.\n * @hidden\n */\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n  // This ensures a Sentry carrier exists\n  getSentryCarrier(GLOBAL_OBJ);\n  return GLOBAL_OBJ;\n}\n\n/** Will either get the existing sentry carrier, or create a new one. */\nfunction getSentryCarrier(carrier) {\n  const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n\n  // For now: First SDK that sets the .version property wins\n  __SENTRY__.version = __SENTRY__.version || SDK_VERSION;\n\n  // Intentionally populating and returning the version of \"this\" SDK instance\n  // rather than what's set in .version so that \"this\" SDK always gets its carrier\n  return (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__[]` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(\n  name,\n  creator,\n  obj = GLOBAL_OBJ,\n) {\n  const __SENTRY__ = (obj.__SENTRY__ = obj.__SENTRY__ || {});\n  const carrier = (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n  // Note: We do not want to set `carrier.version` here, as this may be called before any `init` is called, e.g. for the default scopes\n  return carrier[name] || (carrier[name] = creator());\n}\n\nexport { getGlobalSingleton, getMainCarrier, getSentryCarrier };\n//# sourceMappingURL=carrier.js.map\n",
-    "import { getGlobalSingleton } from '../carrier.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst CONSOLE_LEVELS = [\n  'debug',\n  'info',\n  'warn',\n  'error',\n  'log',\n  'assert',\n  'trace',\n] ;\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\n/** This may be mutated by the console instrumentation. */\nconst originalConsoleMethods\n\n = {};\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n  if (!('console' in GLOBAL_OBJ)) {\n    return callback();\n  }\n\n  const console = GLOBAL_OBJ.console;\n  const wrappedFuncs = {};\n\n  const wrappedLevels = Object.keys(originalConsoleMethods) ;\n\n  // Restore all wrapped console methods\n  wrappedLevels.forEach(level => {\n    const originalConsoleMethod = originalConsoleMethods[level];\n    wrappedFuncs[level] = console[level] ;\n    console[level] = originalConsoleMethod ;\n  });\n\n  try {\n    return callback();\n  } finally {\n    // Revert restoration to wrapped state\n    wrappedLevels.forEach(level => {\n      console[level] = wrappedFuncs[level] ;\n    });\n  }\n}\n\nfunction enable() {\n  _getLoggerSettings().enabled = true;\n}\n\nfunction disable() {\n  _getLoggerSettings().enabled = false;\n}\n\nfunction isEnabled() {\n  return _getLoggerSettings().enabled;\n}\n\nfunction log(...args) {\n  _maybeLog('log', ...args);\n}\n\nfunction warn(...args) {\n  _maybeLog('warn', ...args);\n}\n\nfunction error(...args) {\n  _maybeLog('error', ...args);\n}\n\nfunction _maybeLog(level, ...args) {\n  if (!DEBUG_BUILD) {\n    return;\n  }\n\n  if (isEnabled()) {\n    consoleSandbox(() => {\n      GLOBAL_OBJ.console[level](`${PREFIX}[${level}]:`, ...args);\n    });\n  }\n}\n\nfunction _getLoggerSettings() {\n  if (!DEBUG_BUILD) {\n    return { enabled: false };\n  }\n\n  return getGlobalSingleton('loggerSettings', () => ({ enabled: false }));\n}\n\n/**\n * This is a logger singleton which either logs things or no-ops if logging is not enabled.\n */\nconst debug = {\n  /** Enable logging. */\n  enable,\n  /** Disable logging. */\n  disable,\n  /** Check if logging is enabled. */\n  isEnabled,\n  /** Log a message. */\n  log,\n  /** Log a warning. */\n  warn,\n  /** Log an error. */\n  error,\n} ;\n\nexport { CONSOLE_LEVELS, consoleSandbox, debug, originalConsoleMethods };\n//# sourceMappingURL=debug-logger.js.map\n",
-    "import { DEBUG_BUILD } from '../debug-build.js';\nimport { htmlTreeAsString } from './browser.js';\nimport { debug } from './debug-logger.js';\nimport { isError, isEvent, isInstanceOf, isPrimitive, isElement } from './is.js';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * If the method on the passed object is not a function, the wrapper will not be applied.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n  if (!(name in source)) {\n    return;\n  }\n\n  // explicitly casting to unknown because we don't know the type of the method initially at all\n  const original = source[name] ;\n\n  if (typeof original !== 'function') {\n    return;\n  }\n\n  const wrapped = replacementFactory(original) ;\n\n  // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n  // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n  if (typeof wrapped === 'function') {\n    markFunctionWrapped(wrapped, original);\n  }\n\n  try {\n    source[name] = wrapped;\n  } catch {\n    DEBUG_BUILD && debug.log(`Failed to replace method \"${name}\" in object`, source);\n  }\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n  try {\n    Object.defineProperty(obj, name, {\n      // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n      value,\n      writable: true,\n      configurable: true,\n    });\n  } catch {\n    DEBUG_BUILD && debug.log(`Failed to add non-enumerable property \"${name}\" to object`, obj);\n  }\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n  try {\n    const proto = original.prototype || {};\n    wrapped.prototype = original.prototype = proto;\n    addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n  } catch {} // eslint-disable-line no-empty\n}\n\n/**\n * This extracts the original function if available.  See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction getOriginalFunction(func) {\n  return func.__sentry_original__;\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argument itself, when value is neither an Event nor\n *  an Error.\n */\nfunction convertToPlainObject(value)\n\n {\n  if (isError(value)) {\n    return {\n      message: value.message,\n      name: value.name,\n      stack: value.stack,\n      ...getOwnProperties(value),\n    };\n  } else if (isEvent(value)) {\n    const newObj\n\n = {\n      type: value.type,\n      target: serializeEventTarget(value.target),\n      currentTarget: serializeEventTarget(value.currentTarget),\n      ...getOwnProperties(value),\n    };\n\n    if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n      newObj.detail = value.detail;\n    }\n\n    return newObj;\n  } else {\n    return value;\n  }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n  try {\n    return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n  } catch {\n    return '';\n  }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n  if (typeof obj === 'object' && obj !== null) {\n    return Object.fromEntries(Object.entries(obj));\n  }\n  return {};\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception) {\n  const keys = Object.keys(convertToPlainObject(exception));\n  keys.sort();\n\n  return !keys[0] ? '[object has no keys]' : keys.join(', ');\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n *\n * @deprecated This function is no longer used by the SDK and will be removed in a future major version.\n */\nfunction dropUndefinedKeys(inputValue) {\n  // This map keeps track of what already visited nodes map to.\n  // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n  // references as the input object.\n  const memoizationMap = new Map();\n\n  // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n  return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n  // Early return for primitive values\n  if (inputValue === null || typeof inputValue !== 'object') {\n    return inputValue;\n  }\n\n  // Check memo map first for all object types\n  const memoVal = memoizationMap.get(inputValue);\n  if (memoVal !== undefined) {\n    return memoVal ;\n  }\n\n  // handle arrays\n  if (Array.isArray(inputValue)) {\n    const returnValue = [];\n    // Store mapping to handle circular references\n    memoizationMap.set(inputValue, returnValue);\n\n    inputValue.forEach(value => {\n      returnValue.push(_dropUndefinedKeys(value, memoizationMap));\n    });\n\n    return returnValue ;\n  }\n\n  if (isPojo(inputValue)) {\n    const returnValue = {};\n    // Store mapping to handle circular references\n    memoizationMap.set(inputValue, returnValue);\n\n    const keys = Object.keys(inputValue);\n\n    keys.forEach(key => {\n      const val = inputValue[key];\n      if (val !== undefined) {\n        returnValue[key] = _dropUndefinedKeys(val, memoizationMap);\n      }\n    });\n\n    return returnValue ;\n  }\n\n  // For other object types, return as is\n  return inputValue;\n}\n\nfunction isPojo(input) {\n  // Plain objects have Object as constructor or no constructor\n  const constructor = (input ).constructor;\n  return constructor === Object || constructor === undefined;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n  let objectified;\n  switch (true) {\n    // this will catch both undefined and null\n    case wat == undefined:\n      objectified = new String(wat);\n      break;\n\n    // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n    // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n    // an object in order to wrap it.\n    case typeof wat === 'symbol' || typeof wat === 'bigint':\n      objectified = Object(wat);\n      break;\n\n    // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n    case isPrimitive(wat):\n      // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n      objectified = new (wat ).constructor(wat);\n      break;\n\n    // by process of elimination, at this point we know that `wat` must already be an object\n    default:\n      objectified = wat;\n      break;\n  }\n  return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify };\n//# sourceMappingURL=object.js.map\n",
-    "import { addNonEnumerableProperty } from '../utils/object.js';\nimport { GLOBAL_OBJ } from '../utils/worldwide.js';\n\nconst SCOPE_ON_START_SPAN_FIELD = '_sentryScope';\nconst ISOLATION_SCOPE_ON_START_SPAN_FIELD = '_sentryIsolationScope';\n\n/** Wrap a scope with a WeakRef if available, falling back to a direct scope. */\nfunction wrapScopeWithWeakRef(scope) {\n  try {\n    // @ts-expect-error - WeakRef is not available in all environments\n    const WeakRefClass = GLOBAL_OBJ.WeakRef;\n    if (typeof WeakRefClass === 'function') {\n      return new WeakRefClass(scope);\n    }\n  } catch {\n    // WeakRef not available or failed to create\n    // We'll fall back to a direct scope\n  }\n\n  return scope;\n}\n\n/** Try to unwrap a scope from a potential WeakRef wrapper. */\nfunction unwrapScopeFromWeakRef(scopeRef) {\n  if (!scopeRef) {\n    return undefined;\n  }\n\n  if (typeof scopeRef === 'object' && 'deref' in scopeRef && typeof scopeRef.deref === 'function') {\n    try {\n      return scopeRef.deref();\n    } catch {\n      return undefined;\n    }\n  }\n\n  // Fallback to a direct scope\n  return scopeRef ;\n}\n\n/** Store the scope & isolation scope for a span, which can the be used when it is finished. */\nfunction setCapturedScopesOnSpan(span, scope, isolationScope) {\n  if (span) {\n    addNonEnumerableProperty(span, ISOLATION_SCOPE_ON_START_SPAN_FIELD, wrapScopeWithWeakRef(isolationScope));\n    // We don't wrap the scope with a WeakRef here because webkit aggressively garbage collects\n    // and scopes are not held in memory for long periods of time.\n    addNonEnumerableProperty(span, SCOPE_ON_START_SPAN_FIELD, scope);\n  }\n}\n\n/**\n * Grabs the scope and isolation scope off a span that were active when the span was started.\n * If WeakRef was used and scopes have been garbage collected, returns undefined for those scopes.\n */\nfunction getCapturedScopesOnSpan(span) {\n  const spanWithScopes = span ;\n\n  return {\n    scope: spanWithScopes[SCOPE_ON_START_SPAN_FIELD],\n    isolationScope: unwrapScopeFromWeakRef(spanWithScopes[ISOLATION_SCOPE_ON_START_SPAN_FIELD]),\n  };\n}\n\nexport { getCapturedScopesOnSpan, setCapturedScopesOnSpan };\n//# sourceMappingURL=utils.js.map\n",
-    "const SPAN_STATUS_UNSET = 0;\nconst SPAN_STATUS_OK = 1;\nconst SPAN_STATUS_ERROR = 2;\n\n/**\n * Converts a HTTP status code into a sentry status with a message.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or internal_error.\n */\n// https://develop.sentry.dev/sdk/event-payloads/span/\nfunction getSpanStatusFromHttpCode(httpStatus) {\n  if (httpStatus < 400 && httpStatus >= 100) {\n    return { code: SPAN_STATUS_OK };\n  }\n\n  if (httpStatus >= 400 && httpStatus < 500) {\n    switch (httpStatus) {\n      case 401:\n        return { code: SPAN_STATUS_ERROR, message: 'unauthenticated' };\n      case 403:\n        return { code: SPAN_STATUS_ERROR, message: 'permission_denied' };\n      case 404:\n        return { code: SPAN_STATUS_ERROR, message: 'not_found' };\n      case 409:\n        return { code: SPAN_STATUS_ERROR, message: 'already_exists' };\n      case 413:\n        return { code: SPAN_STATUS_ERROR, message: 'failed_precondition' };\n      case 429:\n        return { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' };\n      case 499:\n        return { code: SPAN_STATUS_ERROR, message: 'cancelled' };\n      default:\n        return { code: SPAN_STATUS_ERROR, message: 'invalid_argument' };\n    }\n  }\n\n  if (httpStatus >= 500 && httpStatus < 600) {\n    switch (httpStatus) {\n      case 501:\n        return { code: SPAN_STATUS_ERROR, message: 'unimplemented' };\n      case 503:\n        return { code: SPAN_STATUS_ERROR, message: 'unavailable' };\n      case 504:\n        return { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' };\n      default:\n        return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n    }\n  }\n\n  return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n}\n\n/**\n * Sets the Http status attributes on the current span based on the http code.\n * Additionally, the span's status is updated, depending on the http code.\n */\nfunction setHttpStatus(span, httpStatus) {\n  span.setAttribute('http.response.status_code', httpStatus);\n\n  const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n  if (spanStatus.message !== 'unknown_error') {\n    span.setStatus(spanStatus);\n  }\n}\n\nexport { SPAN_STATUS_ERROR, SPAN_STATUS_OK, SPAN_STATUS_UNSET, getSpanStatusFromHttpCode, setHttpStatus };\n//# sourceMappingURL=spanstatus.js.map\n",
-    "import { GLOBAL_OBJ } from './worldwide.js';\n\n// undefined = not yet resolved, null = no runner found, function = runner found\nlet RESOLVED_RUNNER;\n\n/**\n * Simple wrapper that allows SDKs to *secretly* set context wrapper to generate safe random IDs in cache components contexts\n */\nfunction withRandomSafeContext(cb) {\n  // Skips future symbol lookups if we've already resolved (or attempted to resolve) the runner once\n  if (RESOLVED_RUNNER !== undefined) {\n    return RESOLVED_RUNNER ? RESOLVED_RUNNER(cb) : cb();\n  }\n\n  const sym = Symbol.for('__SENTRY_SAFE_RANDOM_ID_WRAPPER__');\n  const globalWithSymbol = GLOBAL_OBJ;\n\n  if (sym in globalWithSymbol && typeof globalWithSymbol[sym] === 'function') {\n    RESOLVED_RUNNER = globalWithSymbol[sym];\n    return RESOLVED_RUNNER(cb);\n  }\n\n  RESOLVED_RUNNER = null;\n  return cb();\n}\n\n/**\n * Identical to Math.random() but wrapped in withRandomSafeContext\n * to ensure safe random number generation in certain contexts (e.g., Next.js Cache Components).\n */\nfunction safeMathRandom() {\n  return withRandomSafeContext(() => Math.random());\n}\n\n/**\n * Identical to Date.now() but wrapped in withRandomSafeContext\n * to ensure safe time value generation in certain contexts (e.g., Next.js Cache Components).\n */\nfunction safeDateNow() {\n  return withRandomSafeContext(() => Date.now());\n}\n\nexport { safeDateNow, safeMathRandom, withRandomSafeContext };\n//# sourceMappingURL=randomSafeContext.js.map\n",
-    "const STACKTRACE_FRAME_LIMIT = 50;\nconst UNKNOWN_FUNCTION = '?';\n// Used to sanitize webpack (error: *) wrapped stack errors\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n  const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n  return (stack, skipFirstLines = 0, framesToPop = 0) => {\n    const frames = [];\n    const lines = stack.split('\\n');\n\n    for (let i = skipFirstLines; i < lines.length; i++) {\n      let line = lines[i] ;\n      // Truncate lines over 1kb because many of the regular expressions use\n      // backtracking which results in run time that increases exponentially\n      // with input size. Huge strings can result in hangs/Denial of Service:\n      // https://github.com/getsentry/sentry-javascript/issues/2286\n      if (line.length > 1024) {\n        line = line.slice(0, 1024);\n      }\n\n      // https://github.com/getsentry/sentry-javascript/issues/5459\n      // Remove webpack (error: *) wrappers\n      const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;\n\n      // https://github.com/getsentry/sentry-javascript/issues/7813\n      // Skip Error: lines\n      if (cleanedLine.match(/\\S*Error: /)) {\n        continue;\n      }\n\n      for (const parser of sortedParsers) {\n        const frame = parser(cleanedLine);\n\n        if (frame) {\n          frames.push(frame);\n          break;\n        }\n      }\n\n      if (frames.length >= STACKTRACE_FRAME_LIMIT + framesToPop) {\n        break;\n      }\n    }\n\n    return stripSentryFramesAndReverse(frames.slice(framesToPop));\n  };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n  if (Array.isArray(stackParser)) {\n    return createStackParser(...stackParser);\n  }\n  return stackParser;\n}\n\n/**\n * Removes Sentry frames from the top and bottom of the stack if present and enforces a limit of max number of frames.\n * Assumes stack input is ordered from top to bottom and returns the reverse representation so call site of the\n * function that caused the crash is the last frame in the array.\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n  if (!stack.length) {\n    return [];\n  }\n\n  const localStack = Array.from(stack);\n\n  // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n  if (/sentryWrapped/.test(getLastStackFrame(localStack).function || '')) {\n    localStack.pop();\n  }\n\n  // Reversing in the middle of the procedure allows us to just pop the values off the stack\n  localStack.reverse();\n\n  // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n  if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n    localStack.pop();\n\n    // When using synthetic events, we will have a 2 levels deep stack, as `new Error('Sentry syntheticException')`\n    // is produced within the scope itself, making it:\n    //\n    //   Sentry.captureException()\n    //   scope.captureException()\n    //\n    // instead of just the top `Sentry` call itself.\n    // This forces us to possibly strip an additional frame in the exact same was as above.\n    if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n      localStack.pop();\n    }\n  }\n\n  return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map(frame => ({\n    ...frame,\n    filename: frame.filename || getLastStackFrame(localStack).filename,\n    function: frame.function || UNKNOWN_FUNCTION,\n  }));\n}\n\nfunction getLastStackFrame(arr) {\n  return arr[arr.length - 1] || {};\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n  try {\n    if (!fn || typeof fn !== 'function') {\n      return defaultFunctionName;\n    }\n    return fn.name || defaultFunctionName;\n  } catch {\n    // Just accessing custom props in some Selenium environments\n    // can cause a \"Permission denied\" exception (see raven-js#495).\n    return defaultFunctionName;\n  }\n}\n\n/**\n * Get's stack frames from an event without needing to check for undefined properties.\n */\nfunction getFramesFromEvent(event) {\n  const exception = event.exception;\n\n  if (exception) {\n    const frames = [];\n    try {\n      // @ts-expect-error Object could be undefined\n      exception.values.forEach(value => {\n        // @ts-expect-error Value could be undefined\n        if (value.stacktrace.frames) {\n          // @ts-expect-error Value could be undefined\n          frames.push(...value.stacktrace.frames);\n        }\n      });\n      return frames;\n    } catch {\n      return undefined;\n    }\n  }\n  return undefined;\n}\n\n/**\n * Get the internal name of an internal Vue value, to represent it in a stacktrace.\n *\n * @param value The value to get the internal name of.\n */\nfunction getVueInternalName(value) {\n  // Check if it's a VNode (has __v_isVNode) or a component instance (has _isVue/__isVue)\n  const isVNode = '__v_isVNode' in value && value.__v_isVNode;\n\n  return isVNode ? '[VueVNode]' : '[VueViewModel]';\n}\n\n/**\n * Normalizes stack line paths by removing file:// prefix and leading slashes for Windows paths\n */\nfunction normalizeStackTracePath(path) {\n  let filename = path?.startsWith('file://') ? path.slice(7) : path;\n  // If it's a Windows path, trim the leading slash so that `/C:/foo` becomes `C:/foo`\n  if (filename?.match(/\\/[A-Z]:/)) {\n    filename = filename.slice(1);\n  }\n  return filename;\n}\n\nexport { UNKNOWN_FUNCTION, createStackParser, getFramesFromEvent, getFunctionName, getVueInternalName, normalizeStackTracePath, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n",
-    "import { isString, isRegExp, isVueViewModel } from './is.js';\nimport { getVueInternalName } from './stacktrace.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n  if (typeof str !== 'string' || max === 0) {\n    return str;\n  }\n  return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n  let newLine = line;\n  const lineLength = newLine.length;\n  if (lineLength <= 150) {\n    return newLine;\n  }\n  if (colno > lineLength) {\n    // eslint-disable-next-line no-param-reassign\n    colno = lineLength;\n  }\n\n  let start = Math.max(colno - 60, 0);\n  if (start < 5) {\n    start = 0;\n  }\n\n  let end = Math.min(start + 140, lineLength);\n  if (end > lineLength - 5) {\n    end = lineLength;\n  }\n  if (end === lineLength) {\n    start = Math.max(end - 140, 0);\n  }\n\n  newLine = newLine.slice(start, end);\n  if (start > 0) {\n    newLine = `'{snip} ${newLine}`;\n  }\n  if (end < lineLength) {\n    newLine += ' {snip}';\n  }\n\n  return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\nfunction safeJoin(input, delimiter) {\n  if (!Array.isArray(input)) {\n    return '';\n  }\n\n  const output = [];\n  // eslint-disable-next-line typescript/prefer-for-of\n  for (let i = 0; i < input.length; i++) {\n    const value = input[i];\n    try {\n      // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n      // console warnings. This happens when a Vue template is rendered with\n      // an undeclared variable, which we try to stringify, ultimately causing\n      // Vue to issue another warning which repeats indefinitely.\n      // see: https://github.com/getsentry/sentry-javascript/pull/8981\n      if (isVueViewModel(value)) {\n        output.push(getVueInternalName(value));\n      } else {\n        output.push(String(value));\n      }\n    } catch {\n      output.push('[value cannot be serialized]');\n    }\n  }\n\n  return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nfunction isMatchingPattern(\n  value,\n  pattern,\n  requireExactStringMatch = false,\n) {\n  if (!isString(value)) {\n    return false;\n  }\n\n  if (isRegExp(pattern)) {\n    return pattern.test(value);\n  }\n  if (isString(pattern)) {\n    return requireExactStringMatch ? value === pattern : value.includes(pattern);\n  }\n\n  return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nfunction stringMatchesSomePattern(\n  testString,\n  patterns = [],\n  requireExactStringMatch = false,\n) {\n  return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n\nexport { isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, truncate };\n//# sourceMappingURL=string.js.map\n",
-    "import { addNonEnumerableProperty } from './object.js';\nimport { withRandomSafeContext, safeMathRandom } from './randomSafeContext.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nfunction getCrypto() {\n  const gbl = GLOBAL_OBJ ;\n  return gbl.crypto || gbl.msCrypto;\n}\n\nlet emptyUuid;\n\nfunction getRandomByte() {\n  return safeMathRandom() * 16;\n}\n\n/**\n * UUID4 generator\n * @param crypto Object that provides the crypto API.\n * @returns string Generated UUID4.\n */\nfunction uuid4(crypto = getCrypto()) {\n  try {\n    if (crypto?.randomUUID) {\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      return withRandomSafeContext(() => crypto.randomUUID()).replace(/-/g, '');\n    }\n  } catch {\n    // some runtimes can crash invoking crypto\n    // https://github.com/getsentry/sentry-javascript/issues/8935\n  }\n\n  if (!emptyUuid) {\n    // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n    // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n    emptyUuid = ([1e7] ) + 1e3 + 4e3 + 8e3 + 1e11;\n  }\n\n  return emptyUuid.replace(/[018]/g, c =>\n    // eslint-disable-next-line no-bitwise\n    ((c ) ^ ((getRandomByte() & 15) >> ((c ) / 4))).toString(16),\n  );\n}\n\nfunction getFirstException(event) {\n  return event.exception?.values?.[0];\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n  const { message, event_id: eventId } = event;\n  if (message) {\n    return message;\n  }\n\n  const firstException = getFirstException(event);\n  if (firstException) {\n    if (firstException.type && firstException.value) {\n      return `${firstException.type}: ${firstException.value}`;\n    }\n    return firstException.type || firstException.value || eventId || '';\n  }\n  return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n  const exception = (event.exception = event.exception || {});\n  const values = (exception.values = exception.values || []);\n  const firstException = (values[0] = values[0] || {});\n  if (!firstException.value) {\n    firstException.value = value || '';\n  }\n  if (!firstException.type) {\n    firstException.type = type || 'Error';\n  }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n  const firstException = getFirstException(event);\n  if (!firstException) {\n    return;\n  }\n\n  const defaultMechanism = { type: 'generic', handled: true };\n  const currentMechanism = firstException.mechanism;\n  firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n  if (newMechanism && 'data' in newMechanism) {\n    const mergedData = { ...currentMechanism?.data, ...newMechanism.data };\n    firstException.mechanism.data = mergedData;\n  }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n  /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\nfunction _parseInt(input) {\n  return parseInt(input || '', 10);\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n  const match = input.match(SEMVER_REGEXP) || [];\n  const major = _parseInt(match[1]);\n  const minor = _parseInt(match[2]);\n  const patch = _parseInt(match[3]);\n  return {\n    buildmetadata: match[5],\n    major: isNaN(major) ? undefined : major,\n    minor: isNaN(minor) ? undefined : minor,\n    patch: isNaN(patch) ? undefined : patch,\n    prerelease: match[4],\n  };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n  // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n  if (frame.lineno === undefined) {\n    return;\n  }\n\n  const maxLines = lines.length;\n  const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n\n  frame.pre_context = lines\n    .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n    .map((line) => snipLine(line, 0));\n\n  // We guard here to ensure this is not larger than the existing number of lines\n  const lineIndex = Math.min(maxLines - 1, sourceLine);\n\n  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n  frame.context_line = snipLine(lines[lineIndex], frame.colno || 0);\n\n  frame.post_context = lines\n    .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n    .map((line) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n  if (isAlreadyCaptured(exception)) {\n    return true;\n  }\n\n  try {\n    // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n    // `ExtraErrorData` integration\n    addNonEnumerableProperty(exception , '__sentry_captured__', true);\n  } catch {\n    // `exception` is a primitive, so we can't mark it seen\n  }\n\n  return false;\n}\n\n/**\n * Checks whether we've already captured the given exception (note: not an identical exception - the very object).\n * It is considered already captured if it has the `__sentry_captured__` property set to `true`.\n *\n * @internal Only considered for internal usage\n */\nfunction isAlreadyCaptured(exception) {\n  try {\n    return (exception ).__sentry_captured__;\n  } catch {} // eslint-disable-line no-empty\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, checkOrSetAlreadyCaught, getEventDescription, isAlreadyCaptured, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n",
-    "import { safeDateNow, withRandomSafeContext } from './randomSafeContext.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst ONE_SECOND_IN_MS = 1000;\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nfunction dateTimestampInSeconds() {\n  return safeDateNow() / ONE_SECOND_IN_MS;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction createUnixTimestampInSecondsFunc() {\n  const { performance } = GLOBAL_OBJ ;\n  // Some browser and environments don't have a performance or timeOrigin, so we fallback to\n  // using Date.now() to compute the starting time.\n  if (!performance?.now || !performance.timeOrigin) {\n    return dateTimestampInSeconds;\n  }\n\n  const timeOrigin = performance.timeOrigin;\n\n  // performance.now() is a monotonic clock, which means it starts at 0 when the process begins. To get the current\n  // wall clock time (actual UNIX timestamp), we need to add the starting time origin and the current time elapsed.\n  //\n  // TODO: This does not account for the case where the monotonic clock that powers performance.now() drifts from the\n  // wall clock time, which causes the returned timestamp to be inaccurate. We should investigate how to detect and\n  // correct for this.\n  // See: https://github.com/getsentry/sentry-javascript/issues/2590\n  // See: https://github.com/mdn/content/issues/4713\n  // See: https://dev.to/noamr/when-a-millisecond-is-not-a-millisecond-3h6\n  return () => {\n    return (timeOrigin + withRandomSafeContext(() => performance.now())) / ONE_SECOND_IN_MS;\n  };\n}\n\nlet _cachedTimestampInSeconds;\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nfunction timestampInSeconds() {\n  // We store this in a closure so that we don't have to create a new function every time this is called.\n  const func = _cachedTimestampInSeconds ?? (_cachedTimestampInSeconds = createUnixTimestampInSecondsFunc());\n  return func();\n}\n\n/**\n * Cached result of getBrowserTimeOrigin.\n */\nlet cachedTimeOrigin = null;\n\n/**\n * Gets the time origin and the mode used to determine it.\n *\n * Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n * performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n * data as reliable if they are within a reasonable threshold of the current time.\n *\n * TODO: move to `@sentry/browser-utils` package.\n */\nfunction getBrowserTimeOrigin() {\n  const { performance } = GLOBAL_OBJ ;\n  if (!performance?.now) {\n    return undefined;\n  }\n\n  const threshold = 300000; // 5 minutes in milliseconds\n  const performanceNow = withRandomSafeContext(() => performance.now());\n  const dateNow = safeDateNow();\n\n  const timeOrigin = performance.timeOrigin;\n  if (typeof timeOrigin === 'number') {\n    const timeOriginDelta = Math.abs(timeOrigin + performanceNow - dateNow);\n    if (timeOriginDelta < threshold) {\n      return timeOrigin;\n    }\n  }\n\n  // TODO: Remove all code related to `performance.timing.navigationStart` once we drop support for Safari 14.\n  // `performance.timeSince` is available in Safari 15.\n  // see: https://caniuse.com/mdn-api_performance_timeorigin\n\n  // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n  // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n  // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n  // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n  // Date API.\n  // eslint-disable-next-line deprecation/deprecation\n  const navigationStart = performance.timing?.navigationStart;\n  if (typeof navigationStart === 'number') {\n    const navigationStartDelta = Math.abs(navigationStart + performanceNow - dateNow);\n    if (navigationStartDelta < threshold) {\n      return navigationStart;\n    }\n  }\n\n  // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to subtracting\n  // `performance.now()` from `Date.now()`.\n  return dateNow - performanceNow;\n}\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nfunction browserPerformanceTimeOrigin() {\n  if (cachedTimeOrigin === null) {\n    cachedTimeOrigin = getBrowserTimeOrigin();\n  }\n\n  return cachedTimeOrigin;\n}\n\nexport { browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds };\n//# sourceMappingURL=time.js.map\n",
-    "import { uuid4 } from './utils/misc.js';\nimport { timestampInSeconds } from './utils/time.js';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n  // Both timestamp and started are in seconds since the UNIX epoch.\n  const startingTime = timestampInSeconds();\n\n  const session = {\n    sid: uuid4(),\n    init: true,\n    timestamp: startingTime,\n    started: startingTime,\n    duration: 0,\n    status: 'ok',\n    errors: 0,\n    ignoreDuration: false,\n    toJSON: () => sessionToJSON(session),\n  };\n\n  if (context) {\n    updateSession(session, context);\n  }\n\n  return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see Client.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nfunction updateSession(session, context = {}) {\n  if (context.user) {\n    if (!session.ipAddress && context.user.ip_address) {\n      session.ipAddress = context.user.ip_address;\n    }\n\n    if (!session.did && !context.did) {\n      session.did = context.user.id || context.user.email || context.user.username;\n    }\n  }\n\n  session.timestamp = context.timestamp || timestampInSeconds();\n\n  if (context.abnormal_mechanism) {\n    session.abnormal_mechanism = context.abnormal_mechanism;\n  }\n\n  if (context.ignoreDuration) {\n    session.ignoreDuration = context.ignoreDuration;\n  }\n  if (context.sid) {\n    // Good enough uuid validation. — Kamil\n    session.sid = context.sid.length === 32 ? context.sid : uuid4();\n  }\n  if (context.init !== undefined) {\n    session.init = context.init;\n  }\n  if (!session.did && context.did) {\n    session.did = `${context.did}`;\n  }\n  if (typeof context.started === 'number') {\n    session.started = context.started;\n  }\n  if (session.ignoreDuration) {\n    session.duration = undefined;\n  } else if (typeof context.duration === 'number') {\n    session.duration = context.duration;\n  } else {\n    const duration = session.timestamp - session.started;\n    session.duration = duration >= 0 ? duration : 0;\n  }\n  if (context.release) {\n    session.release = context.release;\n  }\n  if (context.environment) {\n    session.environment = context.environment;\n  }\n  if (!session.ipAddress && context.ipAddress) {\n    session.ipAddress = context.ipAddress;\n  }\n  if (!session.userAgent && context.userAgent) {\n    session.userAgent = context.userAgent;\n  }\n  if (typeof context.errors === 'number') {\n    session.errors = context.errors;\n  }\n  if (context.status) {\n    session.status = context.status;\n  }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n *               this function will keep the previously set status, unless it was `'ok'` in which case\n *               it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n  let context = {};\n  if (status) {\n    context = { status };\n  } else if (session.status === 'ok') {\n    context = { status: 'exited' };\n  }\n\n  updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n  return {\n    sid: `${session.sid}`,\n    init: session.init,\n    // Make sure that sec is converted to ms for date constructor\n    started: new Date(session.started * 1000).toISOString(),\n    timestamp: new Date(session.timestamp * 1000).toISOString(),\n    status: session.status,\n    errors: session.errors,\n    did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n    duration: session.duration,\n    abnormal_mechanism: session.abnormal_mechanism,\n    attrs: {\n      release: session.release,\n      environment: session.environment,\n      ip_address: session.ipAddress,\n      user_agent: session.userAgent,\n    },\n  };\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n",
-    "/**\n * Shallow merge two objects.\n * Does not mutate the passed in objects.\n * Undefined/empty values in the merge object will overwrite existing values.\n *\n * By default, this merges 2 levels deep.\n */\nfunction merge(initialObj, mergeObj, levels = 2) {\n  // If the merge value is not an object, or we have no merge levels left,\n  // we just set the value to the merge value\n  if (!mergeObj || typeof mergeObj !== 'object' || levels <= 0) {\n    return mergeObj;\n  }\n\n  // If the merge object is an empty object, and the initial object is not undefined, we return the initial object\n  if (initialObj && Object.keys(mergeObj).length === 0) {\n    return initialObj;\n  }\n\n  // Clone object\n  const output = { ...initialObj };\n\n  // Merge values into output, resursively\n  for (const key in mergeObj) {\n    if (Object.prototype.hasOwnProperty.call(mergeObj, key)) {\n      output[key] = merge(output[key], mergeObj[key], levels - 1);\n    }\n  }\n\n  return output;\n}\n\nexport { merge };\n//# sourceMappingURL=merge.js.map\n",
-    "import { uuid4 } from './misc.js';\n\n/**\n * Generate a random, valid trace ID.\n */\nfunction generateTraceId() {\n  return uuid4();\n}\n\n/**\n * Generate a random, valid span ID.\n */\nfunction generateSpanId() {\n  return uuid4().substring(16);\n}\n\nexport { generateSpanId, generateTraceId };\n//# sourceMappingURL=propagationContext.js.map\n",
-    "import { addNonEnumerableProperty } from './object.js';\n\nconst SCOPE_SPAN_FIELD = '_sentrySpan';\n\n/**\n * Set the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _setSpanForScope(scope, span) {\n  if (span) {\n    addNonEnumerableProperty(scope , SCOPE_SPAN_FIELD, span);\n  } else {\n    // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n    delete (scope )[SCOPE_SPAN_FIELD];\n  }\n}\n\n/**\n * Get the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _getSpanForScope(scope) {\n  return scope[SCOPE_SPAN_FIELD];\n}\n\nexport { _getSpanForScope, _setSpanForScope };\n//# sourceMappingURL=spanOnScope.js.map\n",
-    "import { DEBUG_BUILD } from './debug-build.js';\nimport { updateSession } from './session.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isPlainObject } from './utils/is.js';\nimport { merge } from './utils/merge.js';\nimport { uuid4 } from './utils/misc.js';\nimport { generateTraceId } from './utils/propagationContext.js';\nimport { safeMathRandom } from './utils/randomSafeContext.js';\nimport { _setSpanForScope, _getSpanForScope } from './utils/spanOnScope.js';\nimport { truncate } from './utils/string.js';\nimport { dateTimestampInSeconds } from './utils/time.js';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * A context to be used for capturing an event.\n * This can either be a Scope, or a partial ScopeContext,\n * or a callback that receives the current scope and returns a new scope to use.\n */\n\n/**\n * Holds additional event information.\n */\nclass Scope {\n  /** Flag if notifying is happening. */\n\n  /** Callback for client to receive scope changes. */\n\n  /** Callback list that will be called during event processing. */\n\n  /** Array of breadcrumbs. */\n\n  /** User */\n\n  /** Tags */\n\n  /** Attributes */\n\n  /** Extra */\n\n  /** Contexts */\n\n  /** Attachments */\n\n  /** Propagation Context for distributed tracing */\n\n  /**\n   * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n   * sent to Sentry\n   */\n\n  /** Fingerprint */\n\n  /** Severity */\n\n  /**\n   * Transaction Name\n   *\n   * IMPORTANT: The transaction name on the scope has nothing to do with root spans/transaction objects.\n   * It's purpose is to assign a transaction to the scope that's added to non-transaction events.\n   */\n\n  /** Session */\n\n  /** The client on this scope */\n\n  /** Contains the last event id of a captured event.  */\n\n  /** Conversation ID */\n\n  // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n   constructor() {\n    this._notifyingListeners = false;\n    this._scopeListeners = [];\n    this._eventProcessors = [];\n    this._breadcrumbs = [];\n    this._attachments = [];\n    this._user = {};\n    this._tags = {};\n    this._attributes = {};\n    this._extra = {};\n    this._contexts = {};\n    this._sdkProcessingMetadata = {};\n    this._propagationContext = {\n      traceId: generateTraceId(),\n      sampleRand: safeMathRandom(),\n    };\n  }\n\n  /**\n   * Clone all data from this scope into a new scope.\n   */\n   clone() {\n    const newScope = new Scope();\n    newScope._breadcrumbs = [...this._breadcrumbs];\n    newScope._tags = { ...this._tags };\n    newScope._attributes = { ...this._attributes };\n    newScope._extra = { ...this._extra };\n    newScope._contexts = { ...this._contexts };\n    if (this._contexts.flags) {\n      // We need to copy the `values` array so insertions on a cloned scope\n      // won't affect the original array.\n      newScope._contexts.flags = {\n        values: [...this._contexts.flags.values],\n      };\n    }\n\n    newScope._user = this._user;\n    newScope._level = this._level;\n    newScope._session = this._session;\n    newScope._transactionName = this._transactionName;\n    newScope._fingerprint = this._fingerprint;\n    newScope._eventProcessors = [...this._eventProcessors];\n    newScope._attachments = [...this._attachments];\n    newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n    newScope._propagationContext = { ...this._propagationContext };\n    newScope._client = this._client;\n    newScope._lastEventId = this._lastEventId;\n    newScope._conversationId = this._conversationId;\n\n    _setSpanForScope(newScope, _getSpanForScope(this));\n\n    return newScope;\n  }\n\n  /**\n   * Update the client assigned to this scope.\n   * Note that not every scope will have a client assigned - isolation scopes & the global scope will generally not have a client,\n   * as well as manually created scopes.\n   */\n   setClient(client) {\n    this._client = client;\n  }\n\n  /**\n   * Set the ID of the last captured error event.\n   * This is generally only captured on the isolation scope.\n   */\n   setLastEventId(lastEventId) {\n    this._lastEventId = lastEventId;\n  }\n\n  /**\n   * Get the client assigned to this scope.\n   */\n   getClient() {\n    return this._client ;\n  }\n\n  /**\n   * Get the ID of the last captured error event.\n   * This is generally only available on the isolation scope.\n   */\n   lastEventId() {\n    return this._lastEventId;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   addScopeListener(callback) {\n    this._scopeListeners.push(callback);\n  }\n\n  /**\n   * Add an event processor that will be called before an event is sent.\n   */\n   addEventProcessor(callback) {\n    this._eventProcessors.push(callback);\n    return this;\n  }\n\n  /**\n   * Set the user for this scope.\n   * Set to `null` to unset the user.\n   */\n   setUser(user) {\n    // If null is passed we want to unset everything, but still define keys,\n    // so that later down in the pipeline any existing values are cleared.\n    this._user = user || {\n      email: undefined,\n      id: undefined,\n      ip_address: undefined,\n      username: undefined,\n    };\n\n    if (this._session) {\n      updateSession(this._session, { user });\n    }\n\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Get the user from this scope.\n   */\n   getUser() {\n    return this._user;\n  }\n\n  /**\n   * Set the conversation ID for this scope.\n   * Set to `null` to unset the conversation ID.\n   */\n   setConversationId(conversationId) {\n    this._conversationId = conversationId || undefined;\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Set an object that will be merged into existing tags on the scope,\n   * and will be sent as tags data with the event.\n   */\n   setTags(tags) {\n    this._tags = {\n      ...this._tags,\n      ...tags,\n    };\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Set a single tag that will be sent as tags data with the event.\n   */\n   setTag(key, value) {\n    return this.setTags({ [key]: value });\n  }\n\n  /**\n   * Sets attributes onto the scope.\n   *\n   * These attributes are currently applied to logs and metrics.\n   * In the future, they will also be applied to spans.\n   *\n   * Important: For now, only strings, numbers and boolean attributes are supported, despite types allowing for\n   * more complex attribute types. We'll add this support in the future but already specify the wider type to\n   * avoid a breaking change in the future.\n   *\n   * @param newAttributes - The attributes to set on the scope. You can either pass in key-value pairs, or\n   * an object with a `value` and an optional `unit` (if applicable to your attribute).\n   *\n   * @example\n   * ```typescript\n   * scope.setAttributes({\n   *   is_admin: true,\n   *   payment_selection: 'credit_card',\n   *   render_duration: { value: 'render_duration', unit: 'ms' },\n   * });\n   * ```\n   */\n   setAttributes(newAttributes) {\n    this._attributes = {\n      ...this._attributes,\n      ...newAttributes,\n    };\n\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Sets an attribute onto the scope.\n   *\n   * These attributes are currently applied to logs and metrics.\n   * In the future, they will also be applied to spans.\n   *\n   * Important: For now, only strings, numbers and boolean attributes are supported, despite types allowing for\n   * more complex attribute types. We'll add this support in the future but already specify the wider type to\n   * avoid a breaking change in the future.\n   *\n   * @param key - The attribute key.\n   * @param value - the attribute value. You can either pass in a raw value, or an attribute\n   * object with a `value` and an optional `unit` (if applicable to your attribute).\n   *\n   * @example\n   * ```typescript\n   * scope.setAttribute('is_admin', true);\n   * scope.setAttribute('render_duration', { value: 'render_duration', unit: 'ms' });\n   * ```\n   */\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n   setAttribute(\n    key,\n    value,\n  ) {\n    return this.setAttributes({ [key]: value });\n  }\n\n  /**\n   * Removes the attribute with the given key from the scope.\n   *\n   * @param key - The attribute key.\n   *\n   * @example\n   * ```typescript\n   * scope.removeAttribute('is_admin');\n   * ```\n   */\n   removeAttribute(key) {\n    if (key in this._attributes) {\n      // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n      delete this._attributes[key];\n      this._notifyScopeListeners();\n    }\n    return this;\n  }\n\n  /**\n   * Set an object that will be merged into existing extra on the scope,\n   * and will be sent as extra data with the event.\n   */\n   setExtras(extras) {\n    this._extra = {\n      ...this._extra,\n      ...extras,\n    };\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Set a single key:value extra entry that will be sent as extra data with the event.\n   */\n   setExtra(key, extra) {\n    this._extra = { ...this._extra, [key]: extra };\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Sets the fingerprint on the scope to send with the events.\n   * @param {string[]} fingerprint Fingerprint to group events in Sentry.\n   */\n   setFingerprint(fingerprint) {\n    this._fingerprint = fingerprint;\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Sets the level on the scope for future events.\n   */\n   setLevel(level) {\n    this._level = level;\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Sets the transaction name on the scope so that the name of e.g. taken server route or\n   * the page location is attached to future events.\n   *\n   * IMPORTANT: Calling this function does NOT change the name of the currently active\n   * root span. If you want to change the name of the active root span, use\n   * `Sentry.updateSpanName(rootSpan, 'new name')` instead.\n   *\n   * By default, the SDK updates the scope's transaction name automatically on sensible\n   * occasions, such as a page navigation or when handling a new request on the server.\n   */\n   setTransactionName(name) {\n    this._transactionName = name;\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Sets context data with the given name.\n   * Data passed as context will be normalized. You can also pass `null` to unset the context.\n   * Note that context data will not be merged - calling `setContext` will overwrite an existing context with the same key.\n   */\n   setContext(key, context) {\n    if (context === null) {\n      // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n      delete this._contexts[key];\n    } else {\n      this._contexts[key] = context;\n    }\n\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Set the session for the scope.\n   */\n   setSession(session) {\n    if (!session) {\n      delete this._session;\n    } else {\n      this._session = session;\n    }\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Get the session from the scope.\n   */\n   getSession() {\n    return this._session;\n  }\n\n  /**\n   * Updates the scope with provided data. Can work in three variations:\n   * - plain object containing updatable attributes\n   * - Scope instance that'll extract the attributes from\n   * - callback function that'll receive the current scope as an argument and allow for modifications\n   */\n   update(captureContext) {\n    if (!captureContext) {\n      return this;\n    }\n\n    const scopeToMerge = typeof captureContext === 'function' ? captureContext(this) : captureContext;\n\n    const scopeInstance =\n      scopeToMerge instanceof Scope\n        ? scopeToMerge.getScopeData()\n        : isPlainObject(scopeToMerge)\n          ? (captureContext )\n          : undefined;\n\n    const {\n      tags,\n      attributes,\n      extra,\n      user,\n      contexts,\n      level,\n      fingerprint = [],\n      propagationContext,\n      conversationId,\n    } = scopeInstance || {};\n\n    this._tags = { ...this._tags, ...tags };\n    this._attributes = { ...this._attributes, ...attributes };\n    this._extra = { ...this._extra, ...extra };\n    this._contexts = { ...this._contexts, ...contexts };\n\n    if (user && Object.keys(user).length) {\n      this._user = user;\n    }\n\n    if (level) {\n      this._level = level;\n    }\n\n    if (fingerprint.length) {\n      this._fingerprint = fingerprint;\n    }\n\n    if (propagationContext) {\n      this._propagationContext = propagationContext;\n    }\n\n    if (conversationId) {\n      this._conversationId = conversationId;\n    }\n\n    return this;\n  }\n\n  /**\n   * Clears the current scope and resets its properties.\n   * Note: The client will not be cleared.\n   */\n   clear() {\n    // client is not cleared here on purpose!\n    this._breadcrumbs = [];\n    this._tags = {};\n    this._attributes = {};\n    this._extra = {};\n    this._user = {};\n    this._contexts = {};\n    this._level = undefined;\n    this._transactionName = undefined;\n    this._fingerprint = undefined;\n    this._session = undefined;\n    this._conversationId = undefined;\n    _setSpanForScope(this, undefined);\n    this._attachments = [];\n    this.setPropagationContext({\n      traceId: generateTraceId(),\n      sampleRand: safeMathRandom(),\n    });\n\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Adds a breadcrumb to the scope.\n   * By default, the last 100 breadcrumbs are kept.\n   */\n   addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n    const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n    // No data has been changed, so don't notify scope listeners\n    if (maxCrumbs <= 0) {\n      return this;\n    }\n\n    const mergedBreadcrumb = {\n      timestamp: dateTimestampInSeconds(),\n      ...breadcrumb,\n      // Breadcrumb messages can theoretically be infinitely large and they're held in memory so we truncate them not to leak (too much) memory\n      message: breadcrumb.message ? truncate(breadcrumb.message, 2048) : breadcrumb.message,\n    };\n\n    this._breadcrumbs.push(mergedBreadcrumb);\n    if (this._breadcrumbs.length > maxCrumbs) {\n      this._breadcrumbs = this._breadcrumbs.slice(-maxCrumbs);\n      this._client?.recordDroppedEvent('buffer_overflow', 'log_item');\n    }\n\n    this._notifyScopeListeners();\n\n    return this;\n  }\n\n  /**\n   * Get the last breadcrumb of the scope.\n   */\n   getLastBreadcrumb() {\n    return this._breadcrumbs[this._breadcrumbs.length - 1];\n  }\n\n  /**\n   * Clear all breadcrumbs from the scope.\n   */\n   clearBreadcrumbs() {\n    this._breadcrumbs = [];\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Add an attachment to the scope.\n   */\n   addAttachment(attachment) {\n    this._attachments.push(attachment);\n    return this;\n  }\n\n  /**\n   * Clear all attachments from the scope.\n   */\n   clearAttachments() {\n    this._attachments = [];\n    return this;\n  }\n\n  /**\n   * Get the data of this scope, which should be applied to an event during processing.\n   */\n   getScopeData() {\n    return {\n      breadcrumbs: this._breadcrumbs,\n      attachments: this._attachments,\n      contexts: this._contexts,\n      tags: this._tags,\n      attributes: this._attributes,\n      extra: this._extra,\n      user: this._user,\n      level: this._level,\n      fingerprint: this._fingerprint || [],\n      eventProcessors: this._eventProcessors,\n      propagationContext: this._propagationContext,\n      sdkProcessingMetadata: this._sdkProcessingMetadata,\n      transactionName: this._transactionName,\n      span: _getSpanForScope(this),\n      conversationId: this._conversationId,\n    };\n  }\n\n  /**\n   * Add data which will be accessible during event processing but won't get sent to Sentry.\n   */\n   setSDKProcessingMetadata(newData) {\n    this._sdkProcessingMetadata = merge(this._sdkProcessingMetadata, newData, 2);\n    return this;\n  }\n\n  /**\n   * Add propagation context to the scope, used for distributed tracing\n   */\n   setPropagationContext(context) {\n    this._propagationContext = context;\n    return this;\n  }\n\n  /**\n   * Get propagation context from the scope, used for distributed tracing\n   */\n   getPropagationContext() {\n    return this._propagationContext;\n  }\n\n  /**\n   * Capture an exception for this scope.\n   *\n   * @returns {string} The id of the captured Sentry event.\n   */\n   captureException(exception, hint) {\n    const eventId = hint?.event_id || uuid4();\n\n    if (!this._client) {\n      DEBUG_BUILD && debug.warn('No client configured on scope - will not capture exception!');\n      return eventId;\n    }\n\n    const syntheticException = new Error('Sentry syntheticException');\n\n    this._client.captureException(\n      exception,\n      {\n        originalException: exception,\n        syntheticException,\n        ...hint,\n        event_id: eventId,\n      },\n      this,\n    );\n\n    return eventId;\n  }\n\n  /**\n   * Capture a message for this scope.\n   *\n   * @returns {string} The id of the captured message.\n   */\n   captureMessage(message, level, hint) {\n    const eventId = hint?.event_id || uuid4();\n\n    if (!this._client) {\n      DEBUG_BUILD && debug.warn('No client configured on scope - will not capture message!');\n      return eventId;\n    }\n\n    const syntheticException = hint?.syntheticException ?? new Error(message);\n\n    this._client.captureMessage(\n      message,\n      level,\n      {\n        originalException: message,\n        syntheticException,\n        ...hint,\n        event_id: eventId,\n      },\n      this,\n    );\n\n    return eventId;\n  }\n\n  /**\n   * Capture a Sentry event for this scope.\n   *\n   * @returns {string} The id of the captured event.\n   */\n   captureEvent(event, hint) {\n    const eventId = event.event_id || hint?.event_id || uuid4();\n\n    if (!this._client) {\n      DEBUG_BUILD && debug.warn('No client configured on scope - will not capture event!');\n      return eventId;\n    }\n\n    this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n\n    return eventId;\n  }\n\n  /**\n   * This will be called on every set call.\n   */\n   _notifyScopeListeners() {\n    // We need this check for this._notifyingListeners to be able to work on scope during updates\n    // If this check is not here we'll produce endless recursion when something is done with the scope\n    // during the callback.\n    if (!this._notifyingListeners) {\n      this._notifyingListeners = true;\n      this._scopeListeners.forEach(callback => {\n        callback(this);\n      });\n      this._notifyingListeners = false;\n    }\n  }\n}\n\nexport { Scope };\n//# sourceMappingURL=scope.js.map\n",
-    "import { getGlobalSingleton } from './carrier.js';\nimport { Scope } from './scope.js';\n\n/** Get the default current scope. */\nfunction getDefaultCurrentScope() {\n  return getGlobalSingleton('defaultCurrentScope', () => new Scope());\n}\n\n/** Get the default isolation scope. */\nfunction getDefaultIsolationScope() {\n  return getGlobalSingleton('defaultIsolationScope', () => new Scope());\n}\n\nexport { getDefaultCurrentScope, getDefaultIsolationScope };\n//# sourceMappingURL=defaultScopes.js.map\n",
-    "const isActualPromise = (p) =>\n  p instanceof Promise && !(p )[kChainedCopy];\n\nconst kChainedCopy = Symbol('chained PromiseLike');\n\n/**\n * Copy the properties from a decorated promiselike object onto its chained\n * actual promise.\n */\nconst chainAndCopyPromiseLike = (\n  original,\n  onSuccess,\n  onError,\n) => {\n  const chained = original.then(\n    value => {\n      onSuccess(value);\n      return value;\n    },\n    err => {\n      onError(err);\n      throw err;\n    },\n  ) ;\n\n  // if we're just dealing with \"normal\" Promise objects, return the chain\n  return isActualPromise(chained) && isActualPromise(original) ? chained : copyProps(original, chained);\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst copyProps = (original, chained) => {\n  let mutated = false;\n  //oxlint-disable-next-line guard-for-in\n  for (const key in original) {\n    if (key in chained) continue;\n    mutated = true;\n    const value = original[key];\n    if (typeof value === 'function') {\n      Object.defineProperty(chained, key, {\n        value: (...args) => value.apply(original, args),\n        enumerable: true,\n        configurable: true,\n        writable: true,\n      });\n    } else {\n      (chained )[key] = value;\n    }\n  }\n\n  if (mutated) Object.assign(chained, { [kChainedCopy]: true });\n  return chained;\n};\n\nexport { chainAndCopyPromiseLike };\n//# sourceMappingURL=chain-and-copy-promiselike.js.map\n",
-    "import { getDefaultCurrentScope, getDefaultIsolationScope } from '../defaultScopes.js';\nimport { Scope } from '../scope.js';\nimport { chainAndCopyPromiseLike } from '../utils/chain-and-copy-promiselike.js';\nimport { isThenable } from '../utils/is.js';\nimport { getMainCarrier, getSentryCarrier } from '../carrier.js';\n\n/**\n * This is an object that holds a stack of scopes.\n */\nclass AsyncContextStack {\n\n   constructor(scope, isolationScope) {\n    let assignedScope;\n    if (!scope) {\n      assignedScope = new Scope();\n    } else {\n      assignedScope = scope;\n    }\n\n    let assignedIsolationScope;\n    if (!isolationScope) {\n      assignedIsolationScope = new Scope();\n    } else {\n      assignedIsolationScope = isolationScope;\n    }\n\n    // scope stack for domains or the process\n    this._stack = [{ scope: assignedScope }];\n    this._isolationScope = assignedIsolationScope;\n  }\n\n  /**\n   * Fork a scope for the stack.\n   */\n   withScope(callback) {\n    const scope = this._pushScope();\n\n    let maybePromiseResult;\n    try {\n      maybePromiseResult = callback(scope);\n    } catch (e) {\n      this._popScope();\n      throw e;\n    }\n\n    if (isThenable(maybePromiseResult)) {\n      return chainAndCopyPromiseLike(\n        maybePromiseResult ,\n        () => this._popScope(),\n        () => this._popScope(),\n      ) ;\n    }\n\n    this._popScope();\n    return maybePromiseResult;\n  }\n\n  /**\n   * Get the client of the stack.\n   */\n   getClient() {\n    return this.getStackTop().client ;\n  }\n\n  /**\n   * Returns the scope of the top stack.\n   */\n   getScope() {\n    return this.getStackTop().scope;\n  }\n\n  /**\n   * Get the isolation scope for the stack.\n   */\n   getIsolationScope() {\n    return this._isolationScope;\n  }\n\n  /**\n   * Returns the topmost scope layer in the order domain > local > process.\n   */\n   getStackTop() {\n    return this._stack[this._stack.length - 1] ;\n  }\n\n  /**\n   * Push a scope to the stack.\n   */\n   _pushScope() {\n    // We want to clone the content of prev scope\n    const scope = this.getScope().clone();\n    this._stack.push({\n      client: this.getClient(),\n      scope,\n    });\n    return scope;\n  }\n\n  /**\n   * Pop a scope from the stack.\n   */\n   _popScope() {\n    if (this._stack.length <= 1) return false;\n    return !!this._stack.pop();\n  }\n}\n\n/**\n * Get the global async context stack.\n * This will be removed during the v8 cycle and is only here to make migration easier.\n */\nfunction getAsyncContextStack() {\n  const registry = getMainCarrier();\n  const sentry = getSentryCarrier(registry);\n\n  return (sentry.stack = sentry.stack || new AsyncContextStack(getDefaultCurrentScope(), getDefaultIsolationScope()));\n}\n\nfunction withScope(callback) {\n  return getAsyncContextStack().withScope(callback);\n}\n\nfunction withSetScope(scope, callback) {\n  const stack = getAsyncContextStack();\n  return stack.withScope(() => {\n    stack.getStackTop().scope = scope;\n    return callback(scope);\n  });\n}\n\nfunction withIsolationScope(callback) {\n  return getAsyncContextStack().withScope(() => {\n    return callback(getAsyncContextStack().getIsolationScope());\n  });\n}\n\n/**\n * Get the stack-based async context strategy.\n */\nfunction getStackAsyncContextStrategy() {\n  return {\n    withIsolationScope,\n    withScope,\n    withSetScope,\n    withSetIsolationScope: (_isolationScope, callback) => {\n      return withIsolationScope(callback);\n    },\n    getCurrentScope: () => getAsyncContextStack().getScope(),\n    getIsolationScope: () => getAsyncContextStack().getIsolationScope(),\n  };\n}\n\nexport { AsyncContextStack, getStackAsyncContextStrategy };\n//# sourceMappingURL=stackStrategy.js.map\n",
-    "import { getMainCarrier, getSentryCarrier } from '../carrier.js';\nimport { getStackAsyncContextStrategy } from './stackStrategy.js';\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nfunction setAsyncContextStrategy(strategy) {\n  // Get main carrier (global for every environment)\n  const registry = getMainCarrier();\n  const sentry = getSentryCarrier(registry);\n  sentry.acs = strategy;\n}\n\n/**\n * Get the current async context strategy.\n * If none has been setup, the default will be used.\n */\nfunction getAsyncContextStrategy(carrier) {\n  const sentry = getSentryCarrier(carrier);\n\n  if (sentry.acs) {\n    return sentry.acs;\n  }\n\n  // Otherwise, use the default one (stack)\n  return getStackAsyncContextStrategy();\n}\n\nexport { getAsyncContextStrategy, setAsyncContextStrategy };\n//# sourceMappingURL=index.js.map\n",
-    "import { getAsyncContextStrategy } from './asyncContext/index.js';\nimport { getMainCarrier, getGlobalSingleton } from './carrier.js';\nimport { Scope } from './scope.js';\nimport { generateSpanId } from './utils/propagationContext.js';\n\n/**\n * Get the currently active scope.\n */\nfunction getCurrentScope() {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  return acs.getCurrentScope();\n}\n\n/**\n * Get the currently active isolation scope.\n * The isolation scope is active for the current execution context.\n */\nfunction getIsolationScope() {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  return acs.getIsolationScope();\n}\n\n/**\n * Get the global scope.\n * This scope is applied to _all_ events.\n */\nfunction getGlobalScope() {\n  return getGlobalSingleton('globalScope', () => new Scope());\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n */\n\n/**\n * Either creates a new active scope, or sets the given scope as active scope in the given callback.\n */\nfunction withScope(\n  ...rest\n) {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n\n  // If a scope is defined, we want to make this the active scope instead of the default one\n  if (rest.length === 2) {\n    const [scope, callback] = rest;\n\n    if (!scope) {\n      return acs.withScope(callback);\n    }\n\n    return acs.withSetScope(scope, callback);\n  }\n\n  return acs.withScope(rest[0]);\n}\n\n/**\n * Attempts to fork the current isolation scope and the current scope based on the current async context strategy. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n */\n\n/**\n * Either creates a new active isolation scope, or sets the given isolation scope as active scope in the given callback.\n */\nfunction withIsolationScope(\n  ...rest\n\n) {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n\n  // If a scope is defined, we want to make this the active scope instead of the default one\n  if (rest.length === 2) {\n    const [isolationScope, callback] = rest;\n\n    if (!isolationScope) {\n      return acs.withIsolationScope(callback);\n    }\n\n    return acs.withSetIsolationScope(isolationScope, callback);\n  }\n\n  return acs.withIsolationScope(rest[0]);\n}\n\n/**\n * Get the currently active client.\n */\nfunction getClient() {\n  return getCurrentScope().getClient();\n}\n\n/**\n * Get a trace context for the given scope.\n */\nfunction getTraceContextFromScope(scope) {\n  const propagationContext = scope.getPropagationContext();\n\n  const { traceId, parentSpanId, propagationSpanId } = propagationContext;\n\n  const traceContext = {\n    trace_id: traceId,\n    span_id: propagationSpanId || generateSpanId(),\n  };\n\n  if (parentSpanId) {\n    traceContext.parent_span_id = parentSpanId;\n  }\n\n  return traceContext;\n}\n\nexport { getClient, getCurrentScope, getGlobalScope, getIsolationScope, getTraceContextFromScope, withIsolationScope, withScope };\n//# sourceMappingURL=currentScopes.js.map\n",
-    "/**\n * Use this attribute to represent the source of a span.\n * Should be one of: custom, url, route, view, component, task, unknown\n *\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = 'sentry.source';\n\n/**\n * Attributes that holds the sample rate that was locally applied to a span.\n * If this attribute is not defined, it means that the span inherited a sampling decision.\n *\n * NOTE: Is only defined on root spans.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = 'sentry.sample_rate';\n\n/**\n * Attribute holding the sample rate of the previous trace.\n * This is used to sample consistently across subsequent traces in the browser SDK.\n *\n * Note: Only defined on root spans, if opted into consistent sampling\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE = 'sentry.previous_trace_sample_rate';\n\n/**\n * Use this attribute to represent the operation of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_OP = 'sentry.op';\n\n/**\n * Use this attribute to represent the origin of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = 'sentry.origin';\n\n/** The reason why an idle span finished. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON = 'sentry.idle_span_finish_reason';\n\n/** The unit of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT = 'sentry.measurement_unit';\n\n/** The value of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE = 'sentry.measurement_value';\n\n/**\n * A custom span name set by users guaranteed to be taken over any automatically\n * inferred name. This attribute is removed before the span is sent.\n *\n * @internal only meant for internal SDK usage\n * @hidden\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME = 'sentry.custom_span_name';\n\n/**\n * The id of the profile that this span occurred in.\n */\nconst SEMANTIC_ATTRIBUTE_PROFILE_ID = 'sentry.profile_id';\n\nconst SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME = 'sentry.exclusive_time';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_HIT = 'cache.hit';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_KEY = 'cache.key';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE = 'cache.item_size';\n\n/** TODO: Remove these once we update to latest semantic conventions */\nconst SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD = 'http.request.method';\nconst SEMANTIC_ATTRIBUTE_URL_FULL = 'url.full';\n\n/**\n * A span link attribute to mark the link as a special span link.\n *\n * Known values:\n * - `previous_trace`: The span links to the frontend root span of the previous trace.\n * - `next_trace`: The span links to the frontend root span of the next trace. (Not set by the SDK)\n *\n * Other values may be set as appropriate.\n * @see https://develop.sentry.dev/sdk/telemetry/traces/span-links/#link-types\n */\nconst SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE = 'sentry.link.type';\n\n/**\n * =============================================================================\n * GEN AI ATTRIBUTES\n * Based on OpenTelemetry Semantic Conventions for Generative AI\n * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/\n * =============================================================================\n */\n\n/**\n * The conversation ID for linking messages across API calls.\n * For OpenAI Assistants API: thread_id\n * For LangGraph: configurable.thread_id\n */\nconst GEN_AI_CONVERSATION_ID_ATTRIBUTE = 'gen_ai.conversation.id';\n\nexport { GEN_AI_CONVERSATION_ID_ATTRIBUTE, SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_URL_FULL, SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE };\n//# sourceMappingURL=semanticAttributes.js.map\n",
-    "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isString } from './is.js';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nconst MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/**\n * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the \"sentry-\" prefixed values\n * from it.\n *\n * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.\n * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.\n */\nfunction baggageHeaderToDynamicSamplingContext(\n  // Very liberal definition of what any incoming header might look like\n  baggageHeader,\n) {\n  const baggageObject = parseBaggageHeader(baggageHeader);\n\n  if (!baggageObject) {\n    return undefined;\n  }\n\n  // Read all \"sentry-\" prefixed values out of the baggage object and put it onto a dynamic sampling context object.\n  const dynamicSamplingContext = Object.entries(baggageObject).reduce((acc, [key, value]) => {\n    if (key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n      const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n      acc[nonPrefixedKey] = value;\n    }\n    return acc;\n  }, {});\n\n  // Only return a dynamic sampling context object if there are keys in it.\n  // A keyless object means there were no sentry values on the header, which means that there is no DSC.\n  if (Object.keys(dynamicSamplingContext).length > 0) {\n    return dynamicSamplingContext ;\n  } else {\n    return undefined;\n  }\n}\n\n/**\n * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with \"sentry-\".\n *\n * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility\n * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is\n * `undefined` the function will return `undefined`.\n * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`\n * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.\n */\nfunction dynamicSamplingContextToSentryBaggageHeader(\n  // this also takes undefined for convenience and bundle size in other places\n  dynamicSamplingContext,\n) {\n  if (!dynamicSamplingContext) {\n    return undefined;\n  }\n\n  // Prefix all DSC keys with \"sentry-\" and put them into a new object\n  const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce(\n    (acc, [dscKey, dscValue]) => {\n      if (dscValue) {\n        acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n      }\n      return acc;\n    },\n    {},\n  );\n\n  return objectToBaggageHeader(sentryPrefixedDSC);\n}\n\n/**\n * Take a baggage header and parse it into an object.\n */\nfunction parseBaggageHeader(\n  baggageHeader,\n) {\n  if (!baggageHeader || (!isString(baggageHeader) && !Array.isArray(baggageHeader))) {\n    return undefined;\n  }\n\n  if (Array.isArray(baggageHeader)) {\n    // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it\n    return baggageHeader.reduce((acc, curr) => {\n      const currBaggageObject = baggageHeaderToObject(curr);\n      Object.entries(currBaggageObject).forEach(([key, value]) => {\n        acc[key] = value;\n      });\n      return acc;\n    }, {});\n  }\n\n  return baggageHeaderToObject(baggageHeader);\n}\n\n/**\n * Will parse a baggage header, which is a simple key-value map, into a flat object.\n *\n * @param baggageHeader The baggage header to parse.\n * @returns a flat object containing all the key-value pairs from `baggageHeader`.\n */\nfunction baggageHeaderToObject(baggageHeader) {\n  return baggageHeader\n    .split(',')\n    .map(baggageEntry => {\n      const eqIdx = baggageEntry.indexOf('=');\n      if (eqIdx === -1) {\n        // Likely an invalid entry\n        return [];\n      }\n      const key = baggageEntry.slice(0, eqIdx);\n      const value = baggageEntry.slice(eqIdx + 1);\n      return [key, value].map(keyOrValue => {\n        try {\n          return decodeURIComponent(keyOrValue.trim());\n        } catch {\n          // We ignore errors here, e.g. if the value cannot be URL decoded.\n          // This will then be skipped in the next step\n          return;\n        }\n      });\n    })\n    .reduce((acc, [key, value]) => {\n      if (key && value) {\n        acc[key] = value;\n      }\n      return acc;\n    }, {});\n}\n\n/**\n * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.\n *\n * @param object The object to turn into a baggage header.\n * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header\n * is not spec compliant.\n */\nfunction objectToBaggageHeader(object) {\n  if (Object.keys(object).length === 0) {\n    // An empty baggage header is not spec compliant: We return undefined.\n    return undefined;\n  }\n\n  return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n    const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n    const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n    if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n      DEBUG_BUILD &&\n        debug.warn(\n          `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,\n        );\n      return baggageHeader;\n    } else {\n      return newBaggageHeader;\n    }\n  }, '');\n}\n\nexport { MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, objectToBaggageHeader, parseBaggageHeader };\n//# sourceMappingURL=baggage.js.map\n",
-    "import { chainAndCopyPromiseLike } from './chain-and-copy-promiselike.js';\nimport { isThenable } from './is.js';\n\n/* eslint-disable */\n// Vendor \"Awaited\" in to be TS 3.8 compatible\n\n/**\n * Wrap a callback function with error handling.\n * If an error is thrown, it will be passed to the `onError` callback and re-thrown.\n *\n * If the return value of the function is a promise, it will be handled with `maybeHandlePromiseRejection`.\n *\n * If an `onFinally` callback is provided, this will be called when the callback has finished\n * - so if it returns a promise, once the promise resolved/rejected,\n * else once the callback has finished executing.\n * The `onFinally` callback will _always_ be called, no matter if an error was thrown or not.\n */\nfunction handleCallbackErrors\n\n(\n  fn,\n  onError,\n  onFinally = () => {},\n  onSuccess = () => {},\n) {\n  let maybePromiseResult;\n  try {\n    maybePromiseResult = fn();\n  } catch (e) {\n    onError(e);\n    onFinally();\n    throw e;\n  }\n\n  return maybeHandlePromiseRejection(maybePromiseResult, onError, onFinally, onSuccess);\n}\n\n/**\n * Maybe handle a promise rejection.\n * This expects to be given a value that _may_ be a promise, or any other value.\n * If it is a promise, and it rejects, it will call the `onError` callback.\n *\n * For thenable objects with extra methods (like jQuery's jqXHR),\n * this function preserves those methods by wrapping the original thenable in a Proxy\n * that intercepts .then() calls to apply error handling while forwarding all other\n * properties to the original object.\n * This allows code like `startSpan(() => $.ajax(...)).abort()` to work correctly.\n */\nfunction maybeHandlePromiseRejection(\n  value,\n  onError,\n  onFinally,\n  onSuccess,\n) {\n  if (isThenable(value)) {\n    return chainAndCopyPromiseLike(\n      value ,\n      result => {\n        onFinally();\n        onSuccess(result );\n      },\n      err => {\n        onError(err);\n        onFinally();\n      },\n    ) ;\n  }\n  // Non-thenable value - call callbacks immediately and return as-is\n  onFinally();\n  onSuccess(value);\n  return value;\n}\n\nexport { handleCallbackErrors };\n//# sourceMappingURL=handleCallbackErrors.js.map\n",
-    "import { getClient } from '../currentScopes.js';\n\n// Treeshakable guard to remove all code related to tracing\n\n/**\n * Determines if span recording is currently enabled.\n *\n * Spans are recorded when at least one of `tracesSampleRate` and `tracesSampler`\n * is defined in the SDK config. This function does not make any assumption about\n * sampling decisions, it only checks if the SDK is configured to record spans.\n *\n * Important: This function only determines if span recording is enabled. Trace\n * continuation and propagation is separately controlled and not covered by this function.\n * If this function returns `false`, traces can still be propagated (which is what\n * we refer to by \"Tracing without Performance\")\n * @see https://develop.sentry.dev/sdk/telemetry/traces/tracing-without-performance/\n *\n * @param maybeOptions An SDK options object to be passed to this function.\n * If this option is not provided, the function will use the current client's options.\n */\nfunction hasSpansEnabled(\n  maybeOptions,\n) {\n  if (typeof __SENTRY_TRACING__ === 'boolean' && !__SENTRY_TRACING__) {\n    return false;\n  }\n\n  const options = maybeOptions || getClient()?.getOptions();\n  return (\n    !!options &&\n    // Note: This check is `!= null`, meaning \"nullish\". `0` is not \"nullish\", `undefined` and `null` are. (This comment was brought to you by 15 minutes of questioning life)\n    (options.tracesSampleRate != null || !!options.tracesSampler)\n  );\n}\n\nexport { hasSpansEnabled };\n//# sourceMappingURL=hasSpansEnabled.js.map\n",
-    "/**\n * Parse a sample rate from a given value.\n * This will either return a boolean or number sample rate, if the sample rate is valid (between 0 and 1).\n * If a string is passed, we try to convert it to a number.\n *\n * Any invalid sample rate will return `undefined`.\n */\nfunction parseSampleRate(sampleRate) {\n  if (typeof sampleRate === 'boolean') {\n    return Number(sampleRate);\n  }\n\n  const rate = typeof sampleRate === 'string' ? parseFloat(sampleRate) : sampleRate;\n  if (typeof rate !== 'number' || isNaN(rate) || rate < 0 || rate > 1) {\n    return undefined;\n  }\n\n  return rate;\n}\n\nexport { parseSampleRate };\n//# sourceMappingURL=parseSampleRate.js.map\n",
-    "import { DEBUG_BUILD } from '../debug-build.js';\nimport { consoleSandbox, debug } from './debug-logger.js';\n\n/** Regular expression used to extract org ID from a DSN host. */\nconst ORG_ID_REGEX = /^o(\\d+)\\./;\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)((?:\\[[:.%\\w]+\\]|[\\w.-]+))(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n  return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nfunction dsnToString(dsn, withPassword = false) {\n  const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n  return (\n    `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n    `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n  );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents or undefined if @param str is not a valid DSN string\n */\nfunction dsnFromString(str) {\n  const match = DSN_REGEX.exec(str);\n\n  if (!match) {\n    // This should be logged to the console\n    consoleSandbox(() => {\n      // eslint-disable-next-line no-console\n      console.error(`Invalid Sentry Dsn: ${str}`);\n    });\n    return undefined;\n  }\n\n  const [protocol, publicKey, pass = '', host = '', port = '', lastPath = ''] = match.slice(1);\n  let path = '';\n  let projectId = lastPath;\n\n  const split = projectId.split('/');\n  if (split.length > 1) {\n    path = split.slice(0, -1).join('/');\n    projectId = split.pop() ;\n  }\n\n  if (projectId) {\n    const projectMatch = projectId.match(/^\\d+/);\n    if (projectMatch) {\n      projectId = projectMatch[0];\n    }\n  }\n\n  return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol , publicKey });\n}\n\nfunction dsnFromComponents(components) {\n  return {\n    protocol: components.protocol,\n    publicKey: components.publicKey || '',\n    pass: components.pass || '',\n    host: components.host,\n    port: components.port || '',\n    path: components.path || '',\n    projectId: components.projectId,\n  };\n}\n\nfunction validateDsn(dsn) {\n  if (!DEBUG_BUILD) {\n    return true;\n  }\n\n  const { port, projectId, protocol } = dsn;\n\n  const requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n  const hasMissingRequiredComponent = requiredComponents.find(component => {\n    if (!dsn[component]) {\n      debug.error(`Invalid Sentry Dsn: ${component} missing`);\n      return true;\n    }\n    return false;\n  });\n\n  if (hasMissingRequiredComponent) {\n    return false;\n  }\n\n  if (!projectId.match(/^\\d+$/)) {\n    debug.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n    return false;\n  }\n\n  if (!isValidProtocol(protocol)) {\n    debug.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n    return false;\n  }\n\n  if (port && isNaN(parseInt(port, 10))) {\n    debug.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n    return false;\n  }\n\n  return true;\n}\n\n/**\n * Extract the org ID from a DSN host.\n *\n * @param host The host from a DSN\n * @returns The org ID if found, undefined otherwise\n */\nfunction extractOrgIdFromDsnHost(host) {\n  const match = host.match(ORG_ID_REGEX);\n\n  return match?.[1];\n}\n\n/**\n *  Returns the organization ID of the client.\n *\n *  The organization ID is extracted from the DSN. If the client options include a `orgId`, this will always take precedence.\n */\nfunction extractOrgIdFromClient(client) {\n  const options = client.getOptions();\n\n  const { host } = client.getDsn() || {};\n\n  let org_id;\n\n  if (options.orgId) {\n    org_id = String(options.orgId);\n  } else if (host) {\n    org_id = extractOrgIdFromDsnHost(host);\n  }\n\n  return org_id;\n}\n\n/**\n * Creates a valid Sentry Dsn object, identifying a Sentry instance and project.\n * @returns a valid DsnComponents object or `undefined` if @param from is an invalid DSN source\n */\nfunction makeDsn(from) {\n  const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n  if (!components || !validateDsn(components)) {\n    return undefined;\n  }\n  return components;\n}\n\nexport { dsnFromString, dsnToString, extractOrgIdFromClient, extractOrgIdFromDsnHost, makeDsn };\n//# sourceMappingURL=dsn.js.map\n",
-    "import { debug } from './debug-logger.js';\nimport { baggageHeaderToDynamicSamplingContext } from './baggage.js';\nimport { extractOrgIdFromClient } from './dsn.js';\nimport { parseSampleRate } from './parseSampleRate.js';\nimport { generateTraceId, generateSpanId } from './propagationContext.js';\nimport { safeMathRandom } from './randomSafeContext.js';\n\n// oxlint-disable-next-line sdk/no-regexp-constructor -- RegExp is used for readability here\nconst TRACEPARENT_REGEXP = new RegExp(\n  '^[ \\\\t]*' + // whitespace\n    '([0-9a-f]{32})?' + // trace_id\n    '-?([0-9a-f]{16})?' + // span_id\n    '-?([01])?' + // sampled\n    '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * This is terrible naming but the function has nothing to do with the W3C traceparent header.\n * It can only parse the `sentry-trace` header and extract the \"trace parent\" data.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nfunction extractTraceparentData(traceparent) {\n  if (!traceparent) {\n    return undefined;\n  }\n\n  const matches = traceparent.match(TRACEPARENT_REGEXP);\n  if (!matches) {\n    return undefined;\n  }\n\n  let parentSampled;\n  if (matches[3] === '1') {\n    parentSampled = true;\n  } else if (matches[3] === '0') {\n    parentSampled = false;\n  }\n\n  return {\n    traceId: matches[1],\n    parentSampled,\n    parentSpanId: matches[2],\n  };\n}\n\n/**\n * Create a propagation context from incoming headers or\n * creates a minimal new one if the headers are undefined.\n */\nfunction propagationContextFromHeaders(\n  sentryTrace,\n  baggage,\n) {\n  const traceparentData = extractTraceparentData(sentryTrace);\n  const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n  if (!traceparentData?.traceId) {\n    return {\n      traceId: generateTraceId(),\n      sampleRand: safeMathRandom(),\n    };\n  }\n\n  const sampleRand = getSampleRandFromTraceparentAndDsc(traceparentData, dynamicSamplingContext);\n\n  // The sample_rand on the DSC needs to be generated based on traceparent + baggage.\n  if (dynamicSamplingContext) {\n    dynamicSamplingContext.sample_rand = sampleRand.toString();\n  }\n\n  const { traceId, parentSpanId, parentSampled } = traceparentData;\n\n  return {\n    traceId,\n    parentSpanId,\n    sampled: parentSampled,\n    dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n    sampleRand,\n  };\n}\n\n/**\n * Create sentry-trace header from span context values.\n */\nfunction generateSentryTraceHeader(\n  traceId = generateTraceId(),\n  spanId = generateSpanId(),\n  sampled,\n) {\n  let sampledString = '';\n  if (sampled !== undefined) {\n    sampledString = sampled ? '-1' : '-0';\n  }\n  return `${traceId}-${spanId}${sampledString}`;\n}\n\n/**\n * Creates a W3C traceparent header from the given trace and span ids.\n */\nfunction generateTraceparentHeader(\n  traceId = generateTraceId(),\n  spanId = generateSpanId(),\n  sampled,\n) {\n  return `00-${traceId}-${spanId}-${sampled ? '01' : '00'}`;\n}\n\n/**\n * Given any combination of an incoming trace, generate a sample rand based on its defined semantics.\n *\n * Read more: https://develop.sentry.dev/sdk/telemetry/traces/#propagated-random-value\n */\nfunction getSampleRandFromTraceparentAndDsc(\n  traceparentData,\n  dsc,\n) {\n  // When there is an incoming sample rand use it.\n  const parsedSampleRand = parseSampleRate(dsc?.sample_rand);\n  if (parsedSampleRand !== undefined) {\n    return parsedSampleRand;\n  }\n\n  // Otherwise, if there is an incoming sampling decision + sample rate, generate a sample rand that would lead to the same sampling decision.\n  const parsedSampleRate = parseSampleRate(dsc?.sample_rate);\n  if (parsedSampleRate && traceparentData?.parentSampled !== undefined) {\n    return traceparentData.parentSampled\n      ? // Returns a sample rand with positive sampling decision [0, sampleRate)\n        safeMathRandom() * parsedSampleRate\n      : // Returns a sample rand with negative sampling decision [sampleRate, 1)\n        parsedSampleRate + safeMathRandom() * (1 - parsedSampleRate);\n  } else {\n    // If nothing applies, return a random sample rand.\n    return safeMathRandom();\n  }\n}\n\n/**\n * Determines whether a new trace should be continued based on the provided baggage org ID and the client's `strictTraceContinuation` option.\n * If the trace should not be continued, a new trace will be started.\n *\n * The result is dependent on the `strictTraceContinuation` option in the client.\n * See https://develop.sentry.dev/sdk/telemetry/traces/#stricttracecontinuation\n */\nfunction shouldContinueTrace(client, baggageOrgId) {\n  const clientOrgId = extractOrgIdFromClient(client);\n\n  // Case: baggage orgID and Client orgID don't match - always start new trace\n  if (baggageOrgId && clientOrgId && baggageOrgId !== clientOrgId) {\n    debug.log(\n      `Won't continue trace because org IDs don't match (incoming baggage: ${baggageOrgId}, SDK options: ${clientOrgId})`,\n    );\n    return false;\n  }\n\n  const strictTraceContinuation = client.getOptions().strictTraceContinuation || false; // default for `strictTraceContinuation` is `false`\n\n  if (strictTraceContinuation) {\n    // With strict continuation enabled, don't continue trace if:\n    // - Baggage has orgID, but Client doesn't have one\n    // - Client has orgID, but baggage doesn't have one\n    if ((baggageOrgId && !clientOrgId) || (!baggageOrgId && clientOrgId)) {\n      debug.log(\n        `Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${baggageOrgId}, Sentry client: ${clientOrgId})`,\n      );\n      return false;\n    }\n  }\n\n  return true;\n}\n\nexport { TRACEPARENT_REGEXP, extractTraceparentData, generateSentryTraceHeader, generateTraceparentHeader, propagationContextFromHeaders, shouldContinueTrace };\n//# sourceMappingURL=tracing.js.map\n",
-    "import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getCurrentScope } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { SPAN_STATUS_UNSET, SPAN_STATUS_OK } from '../tracing/spanstatus.js';\nimport { getCapturedScopesOnSpan } from '../tracing/utils.js';\nimport { addNonEnumerableProperty } from './object.js';\nimport { generateSpanId } from './propagationContext.js';\nimport { timestampInSeconds } from './time.js';\nimport { generateSentryTraceHeader, generateTraceparentHeader } from './tracing.js';\nimport { consoleSandbox } from './debug-logger.js';\nimport { _getSpanForScope } from './spanOnScope.js';\n\n// These are aligned with OpenTelemetry trace flags\nconst TRACE_FLAG_NONE = 0x0;\nconst TRACE_FLAG_SAMPLED = 0x1;\n\nlet hasShownSpanDropWarning = false;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n * By default, this will only include trace_id, span_id & parent_span_id.\n * If `includeAllData` is true, it will also include data, op, status & origin.\n */\nfunction spanToTransactionTraceContext(span) {\n  const { spanId: span_id, traceId: trace_id } = span.spanContext();\n  const { data, op, parent_span_id, status, origin, links } = spanToJSON(span);\n\n  return {\n    parent_span_id,\n    span_id,\n    trace_id,\n    data,\n    op,\n    status,\n    origin,\n    links,\n  };\n}\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in a non-transaction event.\n */\nfunction spanToTraceContext(span) {\n  const { spanId, traceId: trace_id, isRemote } = span.spanContext();\n\n  // If the span is remote, we use a random/virtual span as span_id to the trace context,\n  // and the remote span as parent_span_id\n  const parent_span_id = isRemote ? spanId : spanToJSON(span).parent_span_id;\n  const scope = getCapturedScopesOnSpan(span).scope;\n\n  const span_id = isRemote ? scope?.getPropagationContext().propagationSpanId || generateSpanId() : spanId;\n\n  return {\n    parent_span_id,\n    span_id,\n    trace_id,\n  };\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nfunction spanToTraceHeader(span) {\n  const { traceId, spanId } = span.spanContext();\n  const sampled = spanIsSampled(span);\n  return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n * Convert a Span to a W3C traceparent header.\n */\nfunction spanToTraceparentHeader(span) {\n  const { traceId, spanId } = span.spanContext();\n  const sampled = spanIsSampled(span);\n  return generateTraceparentHeader(traceId, spanId, sampled);\n}\n\n/**\n *  Converts the span links array to a flattened version to be sent within an envelope.\n *\n *  If the links array is empty, it returns `undefined` so the empty value can be dropped before it's sent.\n */\nfunction convertSpanLinksForEnvelope(links) {\n  if (links && links.length > 0) {\n    return links.map(({ context: { spanId, traceId, traceFlags, ...restContext }, attributes }) => ({\n      span_id: spanId,\n      trace_id: traceId,\n      sampled: traceFlags === TRACE_FLAG_SAMPLED,\n      attributes,\n      ...restContext,\n    }));\n  } else {\n    return undefined;\n  }\n}\n\n/**\n * Convert a span time input into a timestamp in seconds.\n */\nfunction spanTimeInputToSeconds(input) {\n  if (typeof input === 'number') {\n    return ensureTimestampInSeconds(input);\n  }\n\n  if (Array.isArray(input)) {\n    // See {@link HrTime} for the array-based time format\n    return input[0] + input[1] / 1e9;\n  }\n\n  if (input instanceof Date) {\n    return ensureTimestampInSeconds(input.getTime());\n  }\n\n  return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp) {\n  const isMs = timestamp > 9999999999;\n  return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n */\n// Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n// This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n// And `spanToJSON` needs the Span class from `span.ts` to check here.\nfunction spanToJSON(span) {\n  if (spanIsSentrySpan(span)) {\n    return span.getSpanJSON();\n  }\n\n  const { spanId: span_id, traceId: trace_id } = span.spanContext();\n\n  // Handle a span from @opentelemetry/sdk-base-trace's `Span` class\n  if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n    const { attributes, startTime, name, endTime, status, links } = span;\n\n    // In preparation for the next major of OpenTelemetry, we want to support\n    // looking up the parent span id according to the new API\n    // In OTel v1, the parent span id is accessed as `parentSpanId`\n    // In OTel v2, the parent span id is accessed as `spanId` on the `parentSpanContext`\n    const parentSpanId =\n      'parentSpanId' in span\n        ? span.parentSpanId\n        : 'parentSpanContext' in span\n          ? (span.parentSpanContext )?.spanId\n          : undefined;\n\n    return {\n      span_id,\n      trace_id,\n      data: attributes,\n      description: name,\n      parent_span_id: parentSpanId,\n      start_timestamp: spanTimeInputToSeconds(startTime),\n      // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n      timestamp: spanTimeInputToSeconds(endTime) || undefined,\n      status: getStatusMessage(status),\n      op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n      origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] ,\n      links: convertSpanLinksForEnvelope(links),\n    };\n  }\n\n  // Finally, at least we have `spanContext()`....\n  // This should not actually happen in reality, but we need to handle it for type safety.\n  return {\n    span_id,\n    trace_id,\n    start_timestamp: 0,\n    data: {},\n  };\n}\n\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span) {\n  const castSpan = span ;\n  return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\n\n/** Exported only for tests. */\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSentrySpan(span) {\n  return typeof (span ).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nfunction spanIsSampled(span) {\n  // We align our trace flags with the ones OpenTelemetry use\n  // So we also check for sampled the same way they do.\n  const { traceFlags } = span.spanContext();\n  return traceFlags === TRACE_FLAG_SAMPLED;\n}\n\n/** Get the status message to use for a JSON representation of a span. */\nfunction getStatusMessage(status) {\n  if (!status || status.code === SPAN_STATUS_UNSET) {\n    return undefined;\n  }\n\n  if (status.code === SPAN_STATUS_OK) {\n    return 'ok';\n  }\n\n  return status.message || 'internal_error';\n}\n\nconst CHILD_SPANS_FIELD = '_sentryChildSpans';\nconst ROOT_SPAN_FIELD = '_sentryRootSpan';\n\n/**\n * Adds an opaque child span reference to a span.\n */\nfunction addChildSpanToSpan(span, childSpan) {\n  // We store the root span reference on the child span\n  // We need this for `getRootSpan()` to work\n  const rootSpan = span[ROOT_SPAN_FIELD] || span;\n  addNonEnumerableProperty(childSpan , ROOT_SPAN_FIELD, rootSpan);\n\n  // We store a list of child spans on the parent span\n  // We need this for `getSpanDescendants()` to work\n  if (span[CHILD_SPANS_FIELD]) {\n    span[CHILD_SPANS_FIELD].add(childSpan);\n  } else {\n    addNonEnumerableProperty(span, CHILD_SPANS_FIELD, new Set([childSpan]));\n  }\n}\n\n/** This is only used internally by Idle Spans. */\nfunction removeChildSpanFromSpan(span, childSpan) {\n  if (span[CHILD_SPANS_FIELD]) {\n    span[CHILD_SPANS_FIELD].delete(childSpan);\n  }\n}\n\n/**\n * Returns an array of the given span and all of its descendants.\n */\nfunction getSpanDescendants(span) {\n  const resultSet = new Set();\n\n  function addSpanChildren(span) {\n    // This exit condition is required to not infinitely loop in case of a circular dependency.\n    if (resultSet.has(span)) {\n      return;\n      // We want to ignore unsampled spans (e.g. non recording spans)\n    } else if (spanIsSampled(span)) {\n      resultSet.add(span);\n      const childSpans = span[CHILD_SPANS_FIELD] ? Array.from(span[CHILD_SPANS_FIELD]) : [];\n      for (const childSpan of childSpans) {\n        addSpanChildren(childSpan);\n      }\n    }\n  }\n\n  addSpanChildren(span);\n\n  return Array.from(resultSet);\n}\n\n/**\n * Returns the root span of a given span.\n */\nfunction getRootSpan(span) {\n  return span[ROOT_SPAN_FIELD] || span;\n}\n\n/**\n * Returns the currently active span.\n */\nfunction getActiveSpan() {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (acs.getActiveSpan) {\n    return acs.getActiveSpan();\n  }\n\n  return _getSpanForScope(getCurrentScope());\n}\n\n/**\n * Logs a warning once if `beforeSendSpan` is used to drop spans.\n */\nfunction showSpanDropWarning() {\n  if (!hasShownSpanDropWarning) {\n    consoleSandbox(() => {\n      // eslint-disable-next-line no-console\n      console.warn(\n        '[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.',\n      );\n    });\n    hasShownSpanDropWarning = true;\n  }\n}\n\n/**\n * Updates the name of the given span and ensures that the span name is not\n * overwritten by the Sentry SDK.\n *\n * Use this function instead of `span.updateName()` if you want to make sure that\n * your name is kept. For some spans, for example root `http.server` spans the\n * Sentry SDK would otherwise overwrite the span name with a high-quality name\n * it infers when the span ends.\n *\n * Use this function in server code or when your span is started on the server\n * and on the client (browser). If you only update a span name on the client,\n * you can also use `span.updateName()` the SDK does not overwrite the name.\n *\n * @param span - The span to update the name of.\n * @param name - The name to set on the span.\n */\nfunction updateSpanName(span, name) {\n  span.updateName(name);\n  span.setAttributes({\n    [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'custom',\n    [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: name,\n  });\n}\n\nexport { TRACE_FLAG_NONE, TRACE_FLAG_SAMPLED, addChildSpanToSpan, convertSpanLinksForEnvelope, getActiveSpan, getRootSpan, getSpanDescendants, getStatusMessage, removeChildSpanFromSpan, showSpanDropWarning, spanIsSampled, spanTimeInputToSeconds, spanToJSON, spanToTraceContext, spanToTraceHeader, spanToTraceparentHeader, spanToTransactionTraceContext, updateSpanName };\n//# sourceMappingURL=spanUtils.js.map\n",
-    "const DEFAULT_ENVIRONMENT = 'production';\nconst DEV_ENVIRONMENT = 'development';\n\nexport { DEFAULT_ENVIRONMENT, DEV_ENVIRONMENT };\n//# sourceMappingURL=constants.js.map\n",
-    "import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getClient } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader } from '../utils/baggage.js';\nimport { extractOrgIdFromClient } from '../utils/dsn.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { addNonEnumerableProperty } from '../utils/object.js';\nimport { getRootSpan, spanToJSON, spanIsSampled } from '../utils/spanUtils.js';\nimport { getCapturedScopesOnSpan } from './utils.js';\n\n/**\n * If you change this value, also update the terser plugin config to\n * avoid minification of the object property!\n */\nconst FROZEN_DSC_FIELD = '_frozenDsc';\n\n/**\n * Freeze the given DSC on the given span.\n */\nfunction freezeDscOnSpan(span, dsc) {\n  const spanWithMaybeDsc = span ;\n  addNonEnumerableProperty(spanWithMaybeDsc, FROZEN_DSC_FIELD, dsc);\n}\n\n/**\n * Creates a dynamic sampling context from a client.\n *\n * Dispatches the `createDsc` lifecycle hook as a side effect.\n */\nfunction getDynamicSamplingContextFromClient(trace_id, client) {\n  const options = client.getOptions();\n\n  const { publicKey: public_key } = client.getDsn() || {};\n\n  // Instead of conditionally adding non-undefined values, we add them and then remove them if needed\n  // otherwise, the order of baggage entries changes, which \"breaks\" a bunch of tests etc.\n  const dsc = {\n    environment: options.environment || DEFAULT_ENVIRONMENT,\n    release: options.release,\n    public_key,\n    trace_id,\n    org_id: extractOrgIdFromClient(client),\n  };\n\n  client.emit('createDsc', dsc);\n\n  return dsc;\n}\n\n/**\n * Get the dynamic sampling context for the currently active scopes.\n */\nfunction getDynamicSamplingContextFromScope(client, scope) {\n  const propagationContext = scope.getPropagationContext();\n  return propagationContext.dsc || getDynamicSamplingContextFromClient(propagationContext.traceId, client);\n}\n\n/**\n * Creates a dynamic sampling context from a span (and client and scope)\n *\n * @param span the span from which a few values like the root span name and sample rate are extracted.\n *\n * @returns a dynamic sampling context\n */\nfunction getDynamicSamplingContextFromSpan(span) {\n  const client = getClient();\n  if (!client) {\n    return {};\n  }\n\n  const rootSpan = getRootSpan(span);\n  const rootSpanJson = spanToJSON(rootSpan);\n  const rootSpanAttributes = rootSpanJson.data;\n  const traceState = rootSpan.spanContext().traceState;\n\n  // The span sample rate that was locally applied to the root span should also always be applied to the DSC, even if the DSC is frozen.\n  // This is so that the downstream traces/services can use parentSampleRate in their `tracesSampler` to make consistent sampling decisions across the entire trace.\n  const rootSpanSampleRate =\n    traceState?.get('sentry.sample_rate') ??\n    rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] ??\n    rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE];\n\n  function applyLocalSampleRateToDsc(dsc) {\n    if (typeof rootSpanSampleRate === 'number' || typeof rootSpanSampleRate === 'string') {\n      dsc.sample_rate = `${rootSpanSampleRate}`;\n    }\n    return dsc;\n  }\n\n  // For core implementation, we freeze the DSC onto the span as a non-enumerable property\n  const frozenDsc = (rootSpan )[FROZEN_DSC_FIELD];\n  if (frozenDsc) {\n    return applyLocalSampleRateToDsc(frozenDsc);\n  }\n\n  // For OpenTelemetry, we freeze the DSC on the trace state\n  const traceStateDsc = traceState?.get('sentry.dsc');\n\n  // If the span has a DSC, we want it to take precedence\n  const dscOnTraceState = traceStateDsc && baggageHeaderToDynamicSamplingContext(traceStateDsc);\n\n  if (dscOnTraceState) {\n    return applyLocalSampleRateToDsc(dscOnTraceState);\n  }\n\n  // Else, we generate it from the span\n  const dsc = getDynamicSamplingContextFromClient(span.spanContext().traceId, client);\n\n  // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n  const source = rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n  // after JSON conversion, txn.name becomes jsonSpan.description\n  const name = rootSpanJson.description;\n  if (source !== 'url' && name) {\n    dsc.transaction = name;\n  }\n\n  // How can we even land here with hasSpansEnabled() returning false?\n  // Otel creates a Non-recording span in Tracing Without Performance mode when handling incoming requests\n  // So we end up with an active span that is not sampled (neither positively nor negatively)\n  if (hasSpansEnabled()) {\n    dsc.sampled = String(spanIsSampled(rootSpan));\n    dsc.sample_rand =\n      // In OTEL we store the sample rand on the trace state because we cannot access scopes for NonRecordingSpans\n      // The Sentry OTEL SpanSampler takes care of writing the sample rand on the root span\n      traceState?.get('sentry.sample_rand') ??\n      // On all other platforms we can actually get the scopes from a root span (we use this as a fallback)\n      getCapturedScopesOnSpan(rootSpan).scope?.getPropagationContext().sampleRand.toString();\n  }\n\n  applyLocalSampleRateToDsc(dsc);\n\n  client.emit('createDsc', dsc, rootSpan);\n\n  return dsc;\n}\n\n/**\n * Convert a Span to a baggage header.\n */\nfunction spanToBaggageHeader(span) {\n  const dsc = getDynamicSamplingContextFromSpan(span);\n  return dynamicSamplingContextToSentryBaggageHeader(dsc);\n}\n\nexport { freezeDscOnSpan, getDynamicSamplingContextFromClient, getDynamicSamplingContextFromScope, getDynamicSamplingContextFromSpan, spanToBaggageHeader };\n//# sourceMappingURL=dynamicSamplingContext.js.map\n",
-    "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { spanToJSON, getRootSpan, spanIsSampled } from '../utils/spanUtils.js';\n\n/**\n * Print a log message for a started span.\n */\nfunction logSpanStart(span) {\n  if (!DEBUG_BUILD) return;\n\n  const { description = '< unknown name >', op = '< unknown op >', parent_span_id: parentSpanId } = spanToJSON(span);\n  const { spanId } = span.spanContext();\n\n  const sampled = spanIsSampled(span);\n  const rootSpan = getRootSpan(span);\n  const isRootSpan = rootSpan === span;\n\n  const header = `[Tracing] Starting ${sampled ? 'sampled' : 'unsampled'} ${isRootSpan ? 'root ' : ''}span`;\n\n  const infoParts = [`op: ${op}`, `name: ${description}`, `ID: ${spanId}`];\n\n  if (parentSpanId) {\n    infoParts.push(`parent ID: ${parentSpanId}`);\n  }\n\n  if (!isRootSpan) {\n    const { op, description } = spanToJSON(rootSpan);\n    infoParts.push(`root ID: ${rootSpan.spanContext().spanId}`);\n    if (op) {\n      infoParts.push(`root op: ${op}`);\n    }\n    if (description) {\n      infoParts.push(`root description: ${description}`);\n    }\n  }\n\n  debug.log(`${header}\n  ${infoParts.join('\\n  ')}`);\n}\n\n/**\n * Print a log message for an ended span.\n */\nfunction logSpanEnd(span) {\n  if (!DEBUG_BUILD) return;\n\n  const { description = '< unknown name >', op = '< unknown op >' } = spanToJSON(span);\n  const { spanId } = span.spanContext();\n  const rootSpan = getRootSpan(span);\n  const isRootSpan = rootSpan === span;\n\n  const msg = `[Tracing] Finishing \"${op}\" ${isRootSpan ? 'root ' : ''}span \"${description}\" with ID ${spanId}`;\n  debug.log(msg);\n}\n\nexport { logSpanEnd, logSpanStart };\n//# sourceMappingURL=logSpans.js.map\n",
-    "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { parseSampleRate } from '../utils/parseSampleRate.js';\n\n/**\n * Makes a sampling decision for the given options.\n *\n * Called every time a root span is created. Only root spans which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n */\nfunction sampleSpan(\n  options,\n  samplingContext,\n  sampleRand,\n) {\n  // nothing to do if span recording is not enabled\n  if (!hasSpansEnabled(options)) {\n    return [false];\n  }\n\n  let localSampleRateWasApplied = undefined;\n\n  // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should\n  // work; prefer the hook if so\n  let sampleRate;\n  if (typeof options.tracesSampler === 'function') {\n    sampleRate = options.tracesSampler({\n      ...samplingContext,\n      inheritOrSampleWith: fallbackSampleRate => {\n        // If we have an incoming parent sample rate, we'll just use that one.\n        // The sampling decision will be inherited because of the sample_rand that was generated when the trace reached the incoming boundaries of the SDK.\n        if (typeof samplingContext.parentSampleRate === 'number') {\n          return samplingContext.parentSampleRate;\n        }\n\n        // Fallback if parent sample rate is not on the incoming trace (e.g. if there is no baggage)\n        // This is to provide backwards compatibility if there are incoming traces from older SDKs that don't send a parent sample rate or a sample rand. In these cases we just want to force either a sampling decision on the downstream traces via the sample rate.\n        if (typeof samplingContext.parentSampled === 'boolean') {\n          return Number(samplingContext.parentSampled);\n        }\n\n        return fallbackSampleRate;\n      },\n    });\n    localSampleRateWasApplied = true;\n  } else if (samplingContext.parentSampled !== undefined) {\n    sampleRate = samplingContext.parentSampled;\n  } else if (typeof options.tracesSampleRate !== 'undefined') {\n    sampleRate = options.tracesSampleRate;\n    localSampleRateWasApplied = true;\n  }\n\n  // Since this is coming from the user (or from a function provided by the user), who knows what we might get.\n  // (The only valid values are booleans or numbers between 0 and 1.)\n  const parsedSampleRate = parseSampleRate(sampleRate);\n\n  if (parsedSampleRate === undefined) {\n    DEBUG_BUILD &&\n      debug.warn(\n        `[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n          sampleRate,\n        )} of type ${JSON.stringify(typeof sampleRate)}.`,\n      );\n    return [false];\n  }\n\n  // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n  if (!parsedSampleRate) {\n    DEBUG_BUILD &&\n      debug.log(\n        `[Tracing] Discarding transaction because ${\n          typeof options.tracesSampler === 'function'\n            ? 'tracesSampler returned 0 or false'\n            : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n        }`,\n      );\n    return [false, parsedSampleRate, localSampleRateWasApplied];\n  }\n\n  // We always compare the sample rand for the current execution context against the chosen sample rate.\n  // Read more: https://develop.sentry.dev/sdk/telemetry/traces/#propagated-random-value\n  const shouldSample = sampleRand < parsedSampleRate;\n\n  // if we're not going to keep it, we're done\n  if (!shouldSample) {\n    DEBUG_BUILD &&\n      debug.log(\n        `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n          sampleRate,\n        )})`,\n      );\n  }\n\n  return [shouldSample, parsedSampleRate, localSampleRateWasApplied];\n}\n\nexport { sampleSpan };\n//# sourceMappingURL=sampling.js.map\n",
-    "import { generateTraceId, generateSpanId } from '../utils/propagationContext.js';\nimport { TRACE_FLAG_NONE } from '../utils/spanUtils.js';\n\n/**\n * A Sentry Span that is non-recording, meaning it will not be sent to Sentry.\n */\nclass SentryNonRecordingSpan  {\n\n   constructor(spanContext = {}) {\n    this._traceId = spanContext.traceId || generateTraceId();\n    this._spanId = spanContext.spanId || generateSpanId();\n  }\n\n  /** @inheritdoc */\n   spanContext() {\n    return {\n      spanId: this._spanId,\n      traceId: this._traceId,\n      traceFlags: TRACE_FLAG_NONE,\n    };\n  }\n\n  /** @inheritdoc */\n   end(_timestamp) {}\n\n  /** @inheritdoc */\n   setAttribute(_key, _value) {\n    return this;\n  }\n\n  /** @inheritdoc */\n   setAttributes(_values) {\n    return this;\n  }\n\n  /** @inheritdoc */\n   setStatus(_status) {\n    return this;\n  }\n\n  /** @inheritdoc */\n   updateName(_name) {\n    return this;\n  }\n\n  /** @inheritdoc */\n   isRecording() {\n    return false;\n  }\n\n  /** @inheritdoc */\n   addEvent(\n    _name,\n    _attributesOrStartTime,\n    _startTime,\n  ) {\n    return this;\n  }\n\n  /** @inheritDoc */\n   addLink(_link) {\n    return this;\n  }\n\n  /** @inheritDoc */\n   addLinks(_links) {\n    return this;\n  }\n\n  /**\n   * This should generally not be used,\n   * but we need it for being compliant with the OTEL Span interface.\n   *\n   * @hidden\n   * @internal\n   */\n   recordException(_exception, _time) {\n    // noop\n  }\n}\n\nexport { SentryNonRecordingSpan };\n//# sourceMappingURL=sentryNonRecordingSpan.js.map\n",
-    "import { isVueViewModel, isSyntheticEvent } from './is.js';\nimport { convertToPlainObject } from './object.js';\nimport { getVueInternalName, getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normalized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction normalize(input, depth = 100, maxProperties = +Infinity) {\n  try {\n    // since we're at the outermost level, we don't provide a key\n    return visit('', input, depth, maxProperties);\n  } catch (err) {\n    return { ERROR: `**non-serializable** (${err})` };\n  }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  object,\n  // Default Node.js REPL depth\n  depth = 3,\n  // 100kB, as 200kB is max payload size, so half sounds reasonable\n  maxSize = 100 * 1024,\n) {\n  const normalized = normalize(object, depth);\n\n  if (jsonSize(normalized) > maxSize) {\n    return normalizeToSize(object, depth - 1, maxSize);\n  }\n\n  return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n  key,\n  value,\n  depth = +Infinity,\n  maxProperties = +Infinity,\n  memo = memoBuilder(),\n) {\n  const [memoize, unmemoize] = memo;\n\n  // Get the simple cases out of the way first\n  if (\n    value == null || // this matches null and undefined -> eqeq not eqeqeq\n    ['boolean', 'string'].includes(typeof value) ||\n    (typeof value === 'number' && Number.isFinite(value))\n  ) {\n    return value ;\n  }\n\n  const stringified = stringifyValue(key, value);\n\n  // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n  // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n  if (!stringified.startsWith('[object ')) {\n    return stringified;\n  }\n\n  // From here on, we can assert that `value` is either an object or an array.\n\n  // Do not normalize objects that we know have already been normalized. As a general rule, the\n  // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n  // have already been normalized.\n  if ((value )['__sentry_skip_normalization__']) {\n    return value ;\n  }\n\n  // We can set `__sentry_override_normalization_depth__` on an object to ensure that from there\n  // We keep a certain amount of depth.\n  // This should be used sparingly, e.g. we use it for the redux integration to ensure we get a certain amount of state.\n  const remainingDepth =\n    typeof (value )['__sentry_override_normalization_depth__'] === 'number'\n      ? ((value )['__sentry_override_normalization_depth__'] )\n      : depth;\n\n  // We're also done if we've reached the max depth\n  if (remainingDepth === 0) {\n    // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n    return stringified.replace('object ', '');\n  }\n\n  // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n  if (memoize(value)) {\n    return '[Circular ~]';\n  }\n\n  // If the value has a `toJSON` method, we call it to extract more information\n  const valueWithToJSON = value ;\n  if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n    try {\n      const jsonValue = valueWithToJSON.toJSON();\n      // We need to normalize the return value of `.toJSON()` in case it has circular references\n      return visit('', jsonValue, remainingDepth - 1, maxProperties, memo);\n    } catch {\n      // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n    }\n  }\n\n  // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n  // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n  // property/entry, and keep track of the number of items we add to it.\n  const normalized = (Array.isArray(value) ? [] : {}) ;\n  let numAdded = 0;\n\n  // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n  // properties are non-enumerable and otherwise would get missed.\n  const visitable = convertToPlainObject(value );\n\n  for (const visitKey in visitable) {\n    // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n    if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n      continue;\n    }\n\n    if (numAdded >= maxProperties) {\n      normalized[visitKey] = '[MaxProperties ~]';\n      break;\n    }\n\n    // Recursively visit all the child nodes\n    const visitValue = visitable[visitKey];\n    normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n\n    numAdded++;\n  }\n\n  // Once we've visited all the branches, remove the parent from memo storage\n  unmemoize(value);\n\n  // Return accumulated values\n  return normalized;\n}\n\n/* eslint-disable complexity */\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n  key,\n  // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n  // our internal use, it'll do\n  value,\n) {\n  try {\n    if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n      return '[Domain]';\n    }\n\n    if (key === 'domainEmitter') {\n      return '[DomainEmitter]';\n    }\n\n    // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n    // which won't throw if they are not present.\n\n    if (typeof global !== 'undefined' && value === global) {\n      return '[Global]';\n    }\n\n    // eslint-disable-next-line no-restricted-globals\n    if (typeof window !== 'undefined' && value === window) {\n      return '[Window]';\n    }\n\n    // eslint-disable-next-line no-restricted-globals\n    if (typeof document !== 'undefined' && value === document) {\n      return '[Document]';\n    }\n\n    if (isVueViewModel(value)) {\n      return getVueInternalName(value);\n    }\n\n    // React's SyntheticEvent thingy\n    if (isSyntheticEvent(value)) {\n      return '[SyntheticEvent]';\n    }\n\n    if (typeof value === 'number' && !Number.isFinite(value)) {\n      return `[${value}]`;\n    }\n\n    if (typeof value === 'function') {\n      return `[Function: ${getFunctionName(value)}]`;\n    }\n\n    if (typeof value === 'symbol') {\n      return `[${String(value)}]`;\n    }\n\n    // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n    if (typeof value === 'bigint') {\n      return `[BigInt: ${String(value)}]`;\n    }\n\n    // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n    // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n    // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n    // we can make sure that only plain objects come out that way.\n    const objName = getConstructorName(value);\n\n    // Handle HTML Elements\n    if (/^HTML(\\w*)Element$/.test(objName)) {\n      return `[HTMLElement: ${objName}]`;\n    }\n\n    return `[object ${objName}]`;\n  } catch (err) {\n    return `**non-serializable** (${err})`;\n  }\n}\n/* eslint-enable complexity */\n\nfunction getConstructorName(value) {\n  const prototype = Object.getPrototypeOf(value);\n\n  return prototype?.constructor ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n  // eslint-disable-next-line no-bitwise\n  return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value) {\n  return utf8Length(JSON.stringify(value));\n}\n\n/**\n * Normalizes URLs in exceptions and stacktraces to a base path so Sentry can fingerprint\n * across platforms and working directory.\n *\n * @param url The URL to be normalized.\n * @param basePath The application base path.\n * @returns The normalized URL.\n */\nfunction normalizeUrlToBase(url, basePath) {\n  const escapedBase = basePath\n    // Backslash to forward\n    .replace(/\\\\/g, '/')\n    // Escape RegExp special characters\n    .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n  let newUrl = url;\n  try {\n    newUrl = decodeURI(url);\n  } catch {\n    // Sometime this breaks\n  }\n  return (\n    newUrl\n      .replace(/\\\\/g, '/')\n      .replace(/webpack:\\/?/g, '') // Remove intermediate base path\n      // oxlint-disable-next-line sdk/no-regexp-constructor\n      .replace(new RegExp(`(file://)?/*${escapedBase}/*`, 'ig'), 'app:///')\n  );\n}\n\n/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n  const inner = new WeakSet();\n  function memoize(obj) {\n    if (inner.has(obj)) {\n      return true;\n    }\n    inner.add(obj);\n    return false;\n  }\n\n  function unmemoize(obj) {\n    inner.delete(obj);\n  }\n  return [memoize, unmemoize];\n}\n\nexport { normalize, normalizeToSize, normalizeUrlToBase };\n//# sourceMappingURL=normalize.js.map\n",
-    "import { getSentryCarrier } from '../carrier.js';\nimport { dsnToString } from './dsn.js';\nimport { normalize } from './normalize.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction createEnvelope(headers, items = []) {\n  return [headers, items] ;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction addItemToEnvelope(envelope, newItem) {\n  const [headers, items] = envelope;\n  return [headers, [...items, newItem]] ;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n *\n * If the callback returns true, the rest of the items will be skipped.\n */\nfunction forEachEnvelopeItem(\n  envelope,\n  callback,\n) {\n  const envelopeItems = envelope[1];\n\n  for (const envelopeItem of envelopeItems) {\n    const envelopeItemType = envelopeItem[0].type;\n    const result = callback(envelopeItem, envelopeItemType);\n\n    if (result) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\n/**\n * Returns true if the envelope contains any of the given envelope item types\n */\nfunction envelopeContainsItemType(envelope, types) {\n  return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\n\n/**\n * Encode a string to UTF8 array.\n */\nfunction encodeUTF8(input) {\n  const carrier = getSentryCarrier(GLOBAL_OBJ);\n  return carrier.encodePolyfill ? carrier.encodePolyfill(input) : new TextEncoder().encode(input);\n}\n\n/**\n * Decode a UTF8 array to string.\n */\nfunction decodeUTF8(input) {\n  const carrier = getSentryCarrier(GLOBAL_OBJ);\n  return carrier.decodePolyfill ? carrier.decodePolyfill(input) : new TextDecoder().decode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nfunction serializeEnvelope(envelope) {\n  const [envHeaders, items] = envelope;\n  // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n  let parts = JSON.stringify(envHeaders);\n\n  function append(next) {\n    if (typeof parts === 'string') {\n      parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts), next];\n    } else {\n      parts.push(typeof next === 'string' ? encodeUTF8(next) : next);\n    }\n  }\n\n  for (const item of items) {\n    const [itemHeaders, payload] = item;\n\n    append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n    if (typeof payload === 'string' || payload instanceof Uint8Array) {\n      append(payload);\n    } else {\n      let stringifiedPayload;\n      try {\n        stringifiedPayload = JSON.stringify(payload);\n      } catch {\n        // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.stringify()` still\n        // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n        // performance impact but in this case a performance hit is better than throwing.\n        stringifiedPayload = JSON.stringify(normalize(payload));\n      }\n      append(stringifiedPayload);\n    }\n  }\n\n  return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n  const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n  const merged = new Uint8Array(totalLength);\n  let offset = 0;\n  for (const buffer of buffers) {\n    merged.set(buffer, offset);\n    offset += buffer.length;\n  }\n\n  return merged;\n}\n\n/**\n * Parses an envelope\n */\nfunction parseEnvelope(env) {\n  let buffer = typeof env === 'string' ? encodeUTF8(env) : env;\n\n  function readBinary(length) {\n    const bin = buffer.subarray(0, length);\n    // Replace the buffer with the remaining data excluding trailing newline\n    buffer = buffer.subarray(length + 1);\n    return bin;\n  }\n\n  function readJson() {\n    let i = buffer.indexOf(0xa);\n    // If we couldn't find a newline, we must have found the end of the buffer\n    if (i < 0) {\n      i = buffer.length;\n    }\n\n    return JSON.parse(decodeUTF8(readBinary(i))) ;\n  }\n\n  const envelopeHeader = readJson();\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  const items = [];\n\n  while (buffer.length) {\n    const itemHeader = readJson();\n    const binaryLength = typeof itemHeader.length === 'number' ? itemHeader.length : undefined;\n\n    items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n  }\n\n  return [envelopeHeader, items];\n}\n\n/**\n * Creates envelope item for a single span\n */\nfunction createSpanEnvelopeItem(spanJson) {\n  const spanHeaders = {\n    type: 'span',\n  };\n\n  return [spanHeaders, spanJson];\n}\n\n/**\n * Creates attachment envelope items\n */\nfunction createAttachmentEnvelopeItem(attachment) {\n  const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data) : attachment.data;\n\n  return [\n    {\n      type: 'attachment',\n      length: buffer.length,\n      filename: attachment.filename,\n      content_type: attachment.contentType,\n      attachment_type: attachment.attachmentType,\n    },\n    buffer,\n  ];\n}\n\n// Map of envelope item types to data categories where the category differs from the type.\n// Types that map to themselves (session, attachment, transaction, profile, feedback, span, metric) fall through.\nconst DATA_CATEGORY_OVERRIDES = {\n  sessions: 'session',\n  event: 'error',\n  client_report: 'internal',\n  user_report: 'default',\n  profile_chunk: 'profile',\n  replay_event: 'replay',\n  replay_recording: 'replay',\n  check_in: 'monitor',\n  raw_security: 'security',\n  log: 'log_item',\n  trace_metric: 'metric',\n};\n\nfunction _isOverriddenType(type) {\n  return type in DATA_CATEGORY_OVERRIDES;\n}\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nfunction envelopeItemTypeToDataCategory(type) {\n  return _isOverriddenType(type) ? DATA_CATEGORY_OVERRIDES[type] : type;\n}\n\n/** Extracts the minimal SDK info from the metadata or an events */\nfunction getSdkMetadataForEnvelopeHeader(metadataOrEvent) {\n  if (!metadataOrEvent?.sdk) {\n    return;\n  }\n  const { name, version } = metadataOrEvent.sdk;\n  return { name, version };\n}\n\n/**\n * Creates event envelope headers, based on event, sdk info and tunnel\n * Note: This function was extracted from the core package to make it available in Replay\n */\nfunction createEventEnvelopeHeaders(\n  event,\n  sdkInfo,\n  tunnel,\n  dsn,\n) {\n  const dynamicSamplingContext = event.sdkProcessingMetadata?.dynamicSamplingContext;\n  return {\n    event_id: event.event_id ,\n    sent_at: new Date().toISOString(),\n    ...(sdkInfo && { sdk: sdkInfo }),\n    ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n    ...(dynamicSamplingContext && {\n      trace: dynamicSamplingContext,\n    }),\n  };\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, createEventEnvelopeHeaders, createSpanEnvelopeItem, envelopeContainsItemType, envelopeItemTypeToDataCategory, forEachEnvelopeItem, getSdkMetadataForEnvelopeHeader, parseEnvelope, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n",
-    "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isMatchingPattern } from './string.js';\n\nfunction logIgnoredSpan(droppedSpan) {\n  debug.log(`Ignoring span ${droppedSpan.op} - ${droppedSpan.description} because it matches \\`ignoreSpans\\`.`);\n}\n\n/**\n * Check if a span should be ignored based on the ignoreSpans configuration.\n */\nfunction shouldIgnoreSpan(\n  span,\n  ignoreSpans,\n) {\n  if (!ignoreSpans?.length || !span.description) {\n    return false;\n  }\n\n  for (const pattern of ignoreSpans) {\n    if (isStringOrRegExp(pattern)) {\n      if (isMatchingPattern(span.description, pattern)) {\n        DEBUG_BUILD && logIgnoredSpan(span);\n        return true;\n      }\n      continue;\n    }\n\n    if (!pattern.name && !pattern.op) {\n      continue;\n    }\n\n    const nameMatches = pattern.name ? isMatchingPattern(span.description, pattern.name) : true;\n    const opMatches = pattern.op ? span.op && isMatchingPattern(span.op, pattern.op) : true;\n\n    // This check here is only correct because we can guarantee that we ran `isMatchingPattern`\n    // for at least one of `nameMatches` and `opMatches`. So in contrary to how this looks,\n    // not both op and name actually have to match. This is the most efficient way to check\n    // for all combinations of name and op patterns.\n    if (nameMatches && opMatches) {\n      DEBUG_BUILD && logIgnoredSpan(span);\n      return true;\n    }\n  }\n\n  return false;\n}\n\n/**\n * Takes a list of spans, and a span that was dropped, and re-parents the child spans of the dropped span to the parent of the dropped span, if possible.\n * This mutates the spans array in place!\n */\nfunction reparentChildSpans(spans, dropSpan) {\n  const droppedSpanParentId = dropSpan.parent_span_id;\n  const droppedSpanId = dropSpan.span_id;\n\n  // This should generally not happen, as we do not apply this on root spans\n  // but to be safe, we just bail in this case\n  if (!droppedSpanParentId) {\n    return;\n  }\n\n  for (const span of spans) {\n    if (span.parent_span_id === droppedSpanId) {\n      span.parent_span_id = droppedSpanParentId;\n    }\n  }\n}\n\nfunction isStringOrRegExp(value) {\n  return typeof value === 'string' || value instanceof RegExp;\n}\n\nexport { reparentChildSpans, shouldIgnoreSpan };\n//# sourceMappingURL=should-ignore-span.js.map\n",
-    "import { getDynamicSamplingContextFromSpan } from './tracing/dynamicSamplingContext.js';\nimport { dsnToString } from './utils/dsn.js';\nimport { getSdkMetadataForEnvelopeHeader, createEventEnvelopeHeaders, createEnvelope, createSpanEnvelopeItem } from './utils/envelope.js';\nimport { shouldIgnoreSpan } from './utils/should-ignore-span.js';\nimport { spanToJSON, showSpanDropWarning } from './utils/spanUtils.js';\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n *\n * @internal, exported only for testing\n **/\nfunction _enhanceEventWithSdkInfo(event, newSdkInfo) {\n  if (!newSdkInfo) {\n    return event;\n  }\n\n  const eventSdkInfo = event.sdk || {};\n\n  event.sdk = {\n    ...eventSdkInfo,\n    name: eventSdkInfo.name || newSdkInfo.name,\n    version: eventSdkInfo.version || newSdkInfo.version,\n    integrations: [...(event.sdk?.integrations || []), ...(newSdkInfo.integrations || [])],\n    packages: [...(event.sdk?.packages || []), ...(newSdkInfo.packages || [])],\n    settings:\n      event.sdk?.settings || newSdkInfo.settings\n        ? {\n            ...event.sdk?.settings,\n            ...newSdkInfo.settings,\n          }\n        : undefined,\n  };\n\n  return event;\n}\n\n/** Creates an envelope from a Session */\nfunction createSessionEnvelope(\n  session,\n  dsn,\n  metadata,\n  tunnel,\n) {\n  const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n  const envelopeHeaders = {\n    sent_at: new Date().toISOString(),\n    ...(sdkInfo && { sdk: sdkInfo }),\n    ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n  };\n\n  const envelopeItem =\n    'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session.toJSON()];\n\n  return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nfunction createEventEnvelope(\n  event,\n  dsn,\n  metadata,\n  tunnel,\n) {\n  const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n\n  /*\n    Note: Due to TS, event.type may be `replay_event`, theoretically.\n    In practice, we never call `createEventEnvelope` with `replay_event` type,\n    and we'd have to adjust a looot of types to make this work properly.\n    We want to avoid casting this around, as that could lead to bugs (e.g. when we add another type)\n    So the safe choice is to really guard against the replay_event type here.\n  */\n  const eventType = event.type && event.type !== 'replay_event' ? event.type : 'event';\n\n  _enhanceEventWithSdkInfo(event, metadata?.sdk);\n\n  const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n  // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n  // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n  // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n  // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n  delete event.sdkProcessingMetadata;\n\n  const eventItem = [{ type: eventType }, event];\n  return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\n/**\n * Create envelope from Span item.\n *\n * Takes an optional client and runs spans through `beforeSendSpan` if available.\n */\nfunction createSpanEnvelope(spans, client) {\n  function dscHasRequiredProps(dsc) {\n    return !!dsc.trace_id && !!dsc.public_key;\n  }\n\n  // For the moment we'll obtain the DSC from the first span in the array\n  // This might need to be changed if we permit sending multiple spans from\n  // different segments in one envelope\n  const dsc = getDynamicSamplingContextFromSpan(spans[0]);\n\n  const dsn = client?.getDsn();\n  const tunnel = client?.getOptions().tunnel;\n\n  const headers = {\n    sent_at: new Date().toISOString(),\n    ...(dscHasRequiredProps(dsc) && { trace: dsc }),\n    ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n  };\n\n  const { beforeSendSpan, ignoreSpans } = client?.getOptions() || {};\n\n  const filteredSpans = ignoreSpans?.length\n    ? spans.filter(span => !shouldIgnoreSpan(spanToJSON(span), ignoreSpans))\n    : spans;\n  const droppedSpans = spans.length - filteredSpans.length;\n\n  if (droppedSpans) {\n    client?.recordDroppedEvent('before_send', 'span', droppedSpans);\n  }\n\n  const convertToSpanJSON = beforeSendSpan\n    ? (span) => {\n        const spanJson = spanToJSON(span);\n        const processedSpan = beforeSendSpan(spanJson);\n\n        if (!processedSpan) {\n          showSpanDropWarning();\n          return spanJson;\n        }\n\n        return processedSpan;\n      }\n    : spanToJSON;\n\n  const items = [];\n  for (const span of filteredSpans) {\n    const spanJson = convertToSpanJSON(span);\n    if (spanJson) {\n      items.push(createSpanEnvelopeItem(spanJson));\n    }\n  }\n\n  return createEnvelope(headers, items);\n}\n\nexport { _enhanceEventWithSdkInfo, createEventEnvelope, createSessionEnvelope, createSpanEnvelope };\n//# sourceMappingURL=envelope.js.map\n",
-    "import { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE } from '../semanticAttributes.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getRootSpan, getActiveSpan } from '../utils/spanUtils.js';\n\n/**\n * Adds a measurement to the active transaction on the current global scope. You can optionally pass in a different span\n * as the 4th parameter.\n */\nfunction setMeasurement(name, value, unit, activeSpan = getActiveSpan()) {\n  const rootSpan = activeSpan && getRootSpan(activeSpan);\n\n  if (rootSpan) {\n    DEBUG_BUILD && debug.log(`[Measurement] Setting measurement on root span: ${name} = ${value} ${unit}`);\n    rootSpan.addEvent(name, {\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: value,\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: unit ,\n    });\n  }\n}\n\n/**\n * Convert timed events to measurements.\n */\nfunction timedEventsToMeasurements(events) {\n  if (!events || events.length === 0) {\n    return undefined;\n  }\n\n  const measurements = {};\n  events.forEach(event => {\n    const attributes = event.attributes || {};\n    const unit = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT] ;\n    const value = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE] ;\n\n    if (typeof unit === 'string' && typeof value === 'number') {\n      measurements[event.name] = { value, unit };\n    }\n  });\n\n  return measurements;\n}\n\nexport { setMeasurement, timedEventsToMeasurements };\n//# sourceMappingURL=measurement.js.map\n",
-    "import { getClient, getCurrentScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { createSpanEnvelope } from '../envelope.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME } from '../semanticAttributes.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { generateTraceId, generateSpanId } from '../utils/propagationContext.js';\nimport { TRACE_FLAG_SAMPLED, TRACE_FLAG_NONE, spanTimeInputToSeconds, convertSpanLinksForEnvelope, getRootSpan, getStatusMessage, spanToJSON, getSpanDescendants, spanToTransactionTraceContext } from '../utils/spanUtils.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getDynamicSamplingContextFromSpan } from './dynamicSamplingContext.js';\nimport { logSpanEnd } from './logSpans.js';\nimport { timedEventsToMeasurements } from './measurement.js';\nimport { getCapturedScopesOnSpan } from './utils.js';\n\nconst MAX_SPAN_COUNT = 1000;\n\n/**\n * Span contains all data about a span\n */\nclass SentrySpan  {\n\n  /** Epoch timestamp in seconds when the span started. */\n\n  /** Epoch timestamp in seconds when the span ended. */\n\n  /** Internal keeper of the status */\n\n  /** The timed events added to this span. */\n\n  /** if true, treat span as a standalone span (not part of a transaction) */\n\n  /**\n   * You should never call the constructor manually, always use `Sentry.startSpan()`\n   * or other span methods.\n   * @internal\n   * @hideconstructor\n   * @hidden\n   */\n   constructor(spanContext = {}) {\n    this._traceId = spanContext.traceId || generateTraceId();\n    this._spanId = spanContext.spanId || generateSpanId();\n    this._startTime = spanContext.startTimestamp || timestampInSeconds();\n    this._links = spanContext.links;\n\n    this._attributes = {};\n    this.setAttributes({\n      [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'manual',\n      [SEMANTIC_ATTRIBUTE_SENTRY_OP]: spanContext.op,\n      ...spanContext.attributes,\n    });\n\n    this._name = spanContext.name;\n\n    if (spanContext.parentSpanId) {\n      this._parentSpanId = spanContext.parentSpanId;\n    }\n    // We want to include booleans as well here\n    if ('sampled' in spanContext) {\n      this._sampled = spanContext.sampled;\n    }\n    if (spanContext.endTimestamp) {\n      this._endTime = spanContext.endTimestamp;\n    }\n\n    this._events = [];\n\n    this._isStandaloneSpan = spanContext.isStandalone;\n\n    // If the span is already ended, ensure we finalize the span immediately\n    if (this._endTime) {\n      this._onSpanEnded();\n    }\n  }\n\n  /** @inheritDoc */\n   addLink(link) {\n    if (this._links) {\n      this._links.push(link);\n    } else {\n      this._links = [link];\n    }\n    return this;\n  }\n\n  /** @inheritDoc */\n   addLinks(links) {\n    if (this._links) {\n      this._links.push(...links);\n    } else {\n      this._links = links;\n    }\n    return this;\n  }\n\n  /**\n   * This should generally not be used,\n   * but it is needed for being compliant with the OTEL Span interface.\n   *\n   * @hidden\n   * @internal\n   */\n   recordException(_exception, _time) {\n    // noop\n  }\n\n  /** @inheritdoc */\n   spanContext() {\n    const { _spanId: spanId, _traceId: traceId, _sampled: sampled } = this;\n    return {\n      spanId,\n      traceId,\n      traceFlags: sampled ? TRACE_FLAG_SAMPLED : TRACE_FLAG_NONE,\n    };\n  }\n\n  /** @inheritdoc */\n   setAttribute(key, value) {\n    if (value === undefined) {\n      // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n      delete this._attributes[key];\n    } else {\n      this._attributes[key] = value;\n    }\n\n    return this;\n  }\n\n  /** @inheritdoc */\n   setAttributes(attributes) {\n    Object.keys(attributes).forEach(key => this.setAttribute(key, attributes[key]));\n    return this;\n  }\n\n  /**\n   * This should generally not be used,\n   * but we need it for browser tracing where we want to adjust the start time afterwards.\n   * USE THIS WITH CAUTION!\n   *\n   * @hidden\n   * @internal\n   */\n   updateStartTime(timeInput) {\n    this._startTime = spanTimeInputToSeconds(timeInput);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setStatus(value) {\n    this._status = value;\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   updateName(name) {\n    this._name = name;\n    this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, 'custom');\n    return this;\n  }\n\n  /** @inheritdoc */\n   end(endTimestamp) {\n    // If already ended, skip\n    if (this._endTime) {\n      return;\n    }\n\n    this._endTime = spanTimeInputToSeconds(endTimestamp);\n    logSpanEnd(this);\n\n    this._onSpanEnded();\n  }\n\n  /**\n   * Get JSON representation of this span.\n   *\n   * @hidden\n   * @internal This method is purely for internal purposes and should not be used outside\n   * of SDK code. If you need to get a JSON representation of a span,\n   * use `spanToJSON(span)` instead.\n   */\n   getSpanJSON() {\n    return {\n      data: this._attributes,\n      description: this._name,\n      op: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n      parent_span_id: this._parentSpanId,\n      span_id: this._spanId,\n      start_timestamp: this._startTime,\n      status: getStatusMessage(this._status),\n      timestamp: this._endTime,\n      trace_id: this._traceId,\n      origin: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] ,\n      profile_id: this._attributes[SEMANTIC_ATTRIBUTE_PROFILE_ID] ,\n      exclusive_time: this._attributes[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME] ,\n      measurements: timedEventsToMeasurements(this._events),\n      is_segment: (this._isStandaloneSpan && getRootSpan(this) === this) || undefined,\n      segment_id: this._isStandaloneSpan ? getRootSpan(this).spanContext().spanId : undefined,\n      links: convertSpanLinksForEnvelope(this._links),\n    };\n  }\n\n  /** @inheritdoc */\n   isRecording() {\n    return !this._endTime && !!this._sampled;\n  }\n\n  /**\n   * @inheritdoc\n   */\n   addEvent(\n    name,\n    attributesOrStartTime,\n    startTime,\n  ) {\n    DEBUG_BUILD && debug.log('[Tracing] Adding an event to span:', name);\n\n    const time = isSpanTimeInput(attributesOrStartTime) ? attributesOrStartTime : startTime || timestampInSeconds();\n    const attributes = isSpanTimeInput(attributesOrStartTime) ? {} : attributesOrStartTime || {};\n\n    const event = {\n      name,\n      time: spanTimeInputToSeconds(time),\n      attributes,\n    };\n\n    this._events.push(event);\n\n    return this;\n  }\n\n  /**\n   * This method should generally not be used,\n   * but for now we need a way to publicly check if the `_isStandaloneSpan` flag is set.\n   * USE THIS WITH CAUTION!\n   * @internal\n   * @hidden\n   * @experimental\n   */\n   isStandaloneSpan() {\n    return !!this._isStandaloneSpan;\n  }\n\n  /** Emit `spanEnd` when the span is ended. */\n   _onSpanEnded() {\n    const client = getClient();\n    if (client) {\n      client.emit('spanEnd', this);\n    }\n\n    // A segment span is basically the root span of a local span tree.\n    // So for now, this is either what we previously refer to as the root span,\n    // or a standalone span.\n    const isSegmentSpan = this._isStandaloneSpan || this === getRootSpan(this);\n\n    if (!isSegmentSpan) {\n      return;\n    }\n\n    // if this is a standalone span, we send it immediately\n    if (this._isStandaloneSpan) {\n      if (this._sampled) {\n        sendSpanEnvelope(createSpanEnvelope([this], client));\n      } else {\n        DEBUG_BUILD &&\n          debug.log('[Tracing] Discarding standalone span because its trace was not chosen to be sampled.');\n        if (client) {\n          client.recordDroppedEvent('sample_rate', 'span');\n        }\n      }\n      return;\n    }\n\n    const transactionEvent = this._convertSpanToTransaction();\n    if (transactionEvent) {\n      const scope = getCapturedScopesOnSpan(this).scope || getCurrentScope();\n      scope.captureEvent(transactionEvent);\n    }\n  }\n\n  /**\n   * Finish the transaction & prepare the event to send to Sentry.\n   */\n   _convertSpanToTransaction() {\n    // We can only convert finished spans\n    if (!isFullFinishedSpan(spanToJSON(this))) {\n      return undefined;\n    }\n\n    if (!this._name) {\n      DEBUG_BUILD && debug.warn('Transaction has no name, falling back to ``.');\n      this._name = '';\n    }\n\n    const { scope: capturedSpanScope, isolationScope: capturedSpanIsolationScope } = getCapturedScopesOnSpan(this);\n\n    const normalizedRequest = capturedSpanScope?.getScopeData().sdkProcessingMetadata?.normalizedRequest;\n\n    if (this._sampled !== true) {\n      return undefined;\n    }\n\n    // The transaction span itself as well as any potential standalone spans should be filtered out\n    const finishedSpans = getSpanDescendants(this).filter(span => span !== this && !isStandaloneSpan(span));\n\n    const spans = finishedSpans.map(span => spanToJSON(span)).filter(isFullFinishedSpan);\n\n    const source = this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n    // remove internal root span attributes we don't need to send.\n    /* eslint-disable @typescript-eslint/no-dynamic-delete */\n    delete this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n    spans.forEach(span => {\n      delete span.data[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n    });\n    // eslint-enabled-next-line @typescript-eslint/no-dynamic-delete\n\n    const transaction = {\n      contexts: {\n        trace: spanToTransactionTraceContext(this),\n      },\n      spans:\n        // spans.sort() mutates the array, but `spans` is already a copy so we can safely do this here\n        // we do not use spans anymore after this point\n        spans.length > MAX_SPAN_COUNT\n          ? spans.sort((a, b) => a.start_timestamp - b.start_timestamp).slice(0, MAX_SPAN_COUNT)\n          : spans,\n      start_timestamp: this._startTime,\n      timestamp: this._endTime,\n      transaction: this._name,\n      type: 'transaction',\n      sdkProcessingMetadata: {\n        capturedSpanScope,\n        capturedSpanIsolationScope,\n        dynamicSamplingContext: getDynamicSamplingContextFromSpan(this),\n      },\n      request: normalizedRequest,\n      ...(source && {\n        transaction_info: {\n          source,\n        },\n      }),\n    };\n\n    const measurements = timedEventsToMeasurements(this._events);\n    const hasMeasurements = measurements && Object.keys(measurements).length;\n\n    if (hasMeasurements) {\n      DEBUG_BUILD &&\n        debug.log(\n          '[Measurements] Adding measurements to transaction event',\n          JSON.stringify(measurements, undefined, 2),\n        );\n      transaction.measurements = measurements;\n    }\n\n    return transaction;\n  }\n}\n\nfunction isSpanTimeInput(value) {\n  return (value && typeof value === 'number') || value instanceof Date || Array.isArray(value);\n}\n\n// We want to filter out any incomplete SpanJSON objects\nfunction isFullFinishedSpan(input) {\n  return !!input.start_timestamp && !!input.timestamp && !!input.span_id && !!input.trace_id;\n}\n\n/** `SentrySpan`s can be sent as a standalone span rather than belonging to a transaction */\nfunction isStandaloneSpan(span) {\n  return span instanceof SentrySpan && span.isStandaloneSpan();\n}\n\n/**\n * Sends a `SpanEnvelope`.\n *\n * Note: If the envelope's spans are dropped, e.g. via `beforeSendSpan`,\n * the envelope will not be sent either.\n */\nfunction sendSpanEnvelope(envelope) {\n  const client = getClient();\n  if (!client) {\n    return;\n  }\n\n  const spanItems = envelope[1];\n  if (!spanItems || spanItems.length === 0) {\n    client.recordDroppedEvent('before_send', 'span');\n    return;\n  }\n\n  // sendEnvelope should not throw\n  // eslint-disable-next-line @typescript-eslint/no-floating-promises\n  client.sendEnvelope(envelope);\n}\n\nexport { SentrySpan };\n//# sourceMappingURL=sentrySpan.js.map\n",
-    "import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getClient, withScope, getCurrentScope, getIsolationScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { baggageHeaderToDynamicSamplingContext } from '../utils/baggage.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { handleCallbackErrors } from '../utils/handleCallbackErrors.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { parseSampleRate } from '../utils/parseSampleRate.js';\nimport { generateTraceId } from '../utils/propagationContext.js';\nimport { safeMathRandom } from '../utils/randomSafeContext.js';\nimport { _getSpanForScope, _setSpanForScope } from '../utils/spanOnScope.js';\nimport { spanTimeInputToSeconds, getRootSpan, addChildSpanToSpan, spanIsSampled, spanToJSON } from '../utils/spanUtils.js';\nimport { shouldContinueTrace, propagationContextFromHeaders } from '../utils/tracing.js';\nimport { getDynamicSamplingContextFromSpan, freezeDscOnSpan } from './dynamicSamplingContext.js';\nimport { logSpanStart } from './logSpans.js';\nimport { sampleSpan } from './sampling.js';\nimport { SentryNonRecordingSpan } from './sentryNonRecordingSpan.js';\nimport { SentrySpan } from './sentrySpan.js';\nimport { SPAN_STATUS_ERROR } from './spanstatus.js';\nimport { setCapturedScopesOnSpan } from './utils.js';\n\n/* eslint-disable max-lines */\n\n\nconst SUPPRESS_TRACING_KEY = '__SENTRY_SUPPRESS_TRACING__';\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * If you want to create a span that is not set as active, use {@link startInactiveSpan}.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startSpan(options, callback) {\n  const acs = getAcs();\n  if (acs.startSpan) {\n    return acs.startSpan(options, callback);\n  }\n\n  const spanArguments = parseSentrySpanArguments(options);\n  const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n\n  // We still need to fork a potentially passed scope, as we set the active span on it\n  // and we need to ensure that it is cleaned up properly once the span ends.\n  const customForkedScope = customScope?.clone();\n\n  return withScope(customForkedScope, () => {\n    // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n    const wrapper = getActiveSpanWrapper(customParentSpan);\n\n    return wrapper(() => {\n      const scope = getCurrentScope();\n      const parentSpan = getParentSpan(scope, customParentSpan);\n\n      const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n      const activeSpan = shouldSkipSpan\n        ? new SentryNonRecordingSpan()\n        : createChildOrRootSpan({\n            parentSpan,\n            spanArguments,\n            forceTransaction,\n            scope,\n          });\n\n      _setSpanForScope(scope, activeSpan);\n\n      return handleCallbackErrors(\n        () => callback(activeSpan),\n        () => {\n          // Only update the span status if it hasn't been changed yet, and the span is not yet finished\n          const { status } = spanToJSON(activeSpan);\n          if (activeSpan.isRecording() && (!status || status === 'ok')) {\n            activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n          }\n        },\n        () => {\n          activeSpan.end();\n        },\n      );\n    });\n  });\n}\n\n/**\n * Similar to `Sentry.startSpan`. Wraps a function with a transaction/span, but does not finish the span\n * after the function is done automatically. Use `span.end()` to end the span.\n *\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startSpanManual(options, callback) {\n  const acs = getAcs();\n  if (acs.startSpanManual) {\n    return acs.startSpanManual(options, callback);\n  }\n\n  const spanArguments = parseSentrySpanArguments(options);\n  const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n\n  const customForkedScope = customScope?.clone();\n\n  return withScope(customForkedScope, () => {\n    // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n    const wrapper = getActiveSpanWrapper(customParentSpan);\n\n    return wrapper(() => {\n      const scope = getCurrentScope();\n      const parentSpan = getParentSpan(scope, customParentSpan);\n\n      const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n      const activeSpan = shouldSkipSpan\n        ? new SentryNonRecordingSpan()\n        : createChildOrRootSpan({\n            parentSpan,\n            spanArguments,\n            forceTransaction,\n            scope,\n          });\n\n      _setSpanForScope(scope, activeSpan);\n\n      return handleCallbackErrors(\n        // We pass the `finish` function to the callback, so the user can finish the span manually\n        // this is mainly here for historic purposes because previously, we instructed users to call\n        // `finish` instead of `span.end()` to also clean up the scope. Nowadays, calling `span.end()`\n        // or `finish` has the same effect and we simply leave it here to avoid breaking user code.\n        () => callback(activeSpan, () => activeSpan.end()),\n        () => {\n          // Only update the span status if it hasn't been changed yet, and the span is not yet finished\n          const { status } = spanToJSON(activeSpan);\n          if (activeSpan.isRecording() && (!status || status === 'ok')) {\n            activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n          }\n        },\n      );\n    });\n  });\n}\n\n/**\n * Creates a span. This span is not set as active, so will not get automatic instrumentation spans\n * as children or be able to be accessed via `Sentry.getActiveSpan()`.\n *\n * If you want to create a span that is set as active, use {@link startSpan}.\n *\n * This function will always return a span,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startInactiveSpan(options) {\n  const acs = getAcs();\n  if (acs.startInactiveSpan) {\n    return acs.startInactiveSpan(options);\n  }\n\n  const spanArguments = parseSentrySpanArguments(options);\n  const { forceTransaction, parentSpan: customParentSpan } = options;\n\n  // If `options.scope` is defined, we use this as as a wrapper,\n  // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n  const wrapper = options.scope\n    ? (callback) => withScope(options.scope, callback)\n    : customParentSpan !== undefined\n      ? (callback) => withActiveSpan(customParentSpan, callback)\n      : (callback) => callback();\n\n  return wrapper(() => {\n    const scope = getCurrentScope();\n    const parentSpan = getParentSpan(scope, customParentSpan);\n\n    const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n\n    if (shouldSkipSpan) {\n      return new SentryNonRecordingSpan();\n    }\n\n    return createChildOrRootSpan({\n      parentSpan,\n      spanArguments,\n      forceTransaction,\n      scope,\n    });\n  });\n}\n\n/**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers, or in the browser from ``\n * and `` HTML tags.\n *\n * Spans started with `startSpan`, `startSpanManual` and `startInactiveSpan`, within the callback will automatically\n * be attached to the incoming trace.\n */\nconst continueTrace = (\n  options\n\n,\n  callback,\n) => {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (acs.continueTrace) {\n    return acs.continueTrace(options, callback);\n  }\n\n  const { sentryTrace, baggage } = options;\n\n  const client = getClient();\n  const incomingDsc = baggageHeaderToDynamicSamplingContext(baggage);\n  if (client && !shouldContinueTrace(client, incomingDsc?.org_id)) {\n    return startNewTrace(callback);\n  }\n\n  return withScope(scope => {\n    const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n    scope.setPropagationContext(propagationContext);\n    _setSpanForScope(scope, undefined);\n    return callback();\n  });\n};\n\n/**\n * Forks the current scope and sets the provided span as active span in the context of the provided callback. Can be\n * passed `null` to start an entirely new span tree.\n *\n * @param span Spans started in the context of the provided callback will be children of this span. If `null` is passed,\n * spans started within the callback will not be attached to a parent span.\n * @param callback Execution context in which the provided span will be active. Is passed the newly forked scope.\n * @returns the value returned from the provided callback function.\n */\nfunction withActiveSpan(span, callback) {\n  const acs = getAcs();\n  if (acs.withActiveSpan) {\n    return acs.withActiveSpan(span, callback);\n  }\n\n  return withScope(scope => {\n    _setSpanForScope(scope, span || undefined);\n    return callback(scope);\n  });\n}\n\n/** Suppress tracing in the given callback, ensuring no spans are generated inside of it. */\nfunction suppressTracing(callback) {\n  const acs = getAcs();\n\n  if (acs.suppressTracing) {\n    return acs.suppressTracing(callback);\n  }\n\n  return withScope(scope => {\n    // Note: We do not wait for the callback to finish before we reset the metadata\n    // the reason for this is that otherwise, in the browser this can lead to very weird behavior\n    // as there is only a single top scope, if the callback takes longer to finish,\n    // other, unrelated spans may also be suppressed, which we do not want\n    // so instead, we only suppress tracing synchronoysly in the browser\n    scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: true });\n    const res = callback();\n    scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: undefined });\n    return res;\n  });\n}\n\n/**\n * Starts a new trace for the duration of the provided callback. Spans started within the\n * callback will be part of the new trace instead of a potentially previously started trace.\n *\n * Important: Only use this function if you want to override the default trace lifetime and\n * propagation mechanism of the SDK for the duration and scope of the provided callback.\n * The newly created trace will also be the root of a new distributed trace, for example if\n * you make http requests within the callback.\n * This function might be useful if the operation you want to instrument should not be part\n * of a potentially ongoing trace.\n *\n * Default behavior:\n * - Server-side: A new trace is started for each incoming request.\n * - Browser: A new trace is started for each page our route. Navigating to a new route\n *            or page will automatically create a new trace.\n */\nfunction startNewTrace(callback) {\n  return withScope(scope => {\n    scope.setPropagationContext({\n      traceId: generateTraceId(),\n      sampleRand: safeMathRandom(),\n    });\n    DEBUG_BUILD && debug.log(`Starting a new trace with id ${scope.getPropagationContext().traceId}`);\n    return withActiveSpan(null, callback);\n  });\n}\n\nfunction createChildOrRootSpan({\n  parentSpan,\n  spanArguments,\n  forceTransaction,\n  scope,\n}\n\n) {\n  if (!hasSpansEnabled()) {\n    const span = new SentryNonRecordingSpan();\n\n    // If this is a root span, we ensure to freeze a DSC\n    // So we can have at least partial data here\n    if (forceTransaction || !parentSpan) {\n      const dsc = {\n        sampled: 'false',\n        sample_rate: '0',\n        transaction: spanArguments.name,\n        ...getDynamicSamplingContextFromSpan(span),\n      } ;\n      freezeDscOnSpan(span, dsc);\n    }\n\n    return span;\n  }\n\n  const isolationScope = getIsolationScope();\n\n  let span;\n  if (parentSpan && !forceTransaction) {\n    span = _startChildSpan(parentSpan, scope, spanArguments);\n    addChildSpanToSpan(parentSpan, span);\n  } else if (parentSpan) {\n    // If we forced a transaction but have a parent span, make sure to continue from the parent span, not the scope\n    const dsc = getDynamicSamplingContextFromSpan(parentSpan);\n    const { traceId, spanId: parentSpanId } = parentSpan.spanContext();\n    const parentSampled = spanIsSampled(parentSpan);\n\n    span = _startRootSpan(\n      {\n        traceId,\n        parentSpanId,\n        ...spanArguments,\n      },\n      scope,\n      parentSampled,\n    );\n\n    freezeDscOnSpan(span, dsc);\n  } else {\n    const {\n      traceId,\n      dsc,\n      parentSpanId,\n      sampled: parentSampled,\n    } = {\n      ...isolationScope.getPropagationContext(),\n      ...scope.getPropagationContext(),\n    };\n\n    span = _startRootSpan(\n      {\n        traceId,\n        parentSpanId,\n        ...spanArguments,\n      },\n      scope,\n      parentSampled,\n    );\n\n    if (dsc) {\n      freezeDscOnSpan(span, dsc);\n    }\n  }\n\n  logSpanStart(span);\n\n  setCapturedScopesOnSpan(span, scope, isolationScope);\n\n  return span;\n}\n\n/**\n * This converts StartSpanOptions to SentrySpanArguments.\n * For the most part (for now) we accept the same options,\n * but some of them need to be transformed.\n */\nfunction parseSentrySpanArguments(options) {\n  const exp = options.experimental || {};\n  const initialCtx = {\n    isStandalone: exp.standalone,\n    ...options,\n  };\n\n  if (options.startTime) {\n    const ctx = { ...initialCtx };\n    ctx.startTimestamp = spanTimeInputToSeconds(options.startTime);\n    delete ctx.startTime;\n    return ctx;\n  }\n\n  return initialCtx;\n}\n\nfunction getAcs() {\n  const carrier = getMainCarrier();\n  return getAsyncContextStrategy(carrier);\n}\n\nfunction _startRootSpan(spanArguments, scope, parentSampled) {\n  const client = getClient();\n  const options = client?.getOptions() || {};\n\n  const { name = '' } = spanArguments;\n\n  const mutableSpanSamplingData = { spanAttributes: { ...spanArguments.attributes }, spanName: name, parentSampled };\n\n  // we don't care about the decision for the moment; this is just a placeholder\n  client?.emit('beforeSampling', mutableSpanSamplingData, { decision: false });\n\n  // If hook consumers override the parentSampled flag, we will use that value instead of the actual one\n  const finalParentSampled = mutableSpanSamplingData.parentSampled ?? parentSampled;\n  const finalAttributes = mutableSpanSamplingData.spanAttributes;\n\n  const currentPropagationContext = scope.getPropagationContext();\n  const [sampled, sampleRate, localSampleRateWasApplied] = scope.getScopeData().sdkProcessingMetadata[\n    SUPPRESS_TRACING_KEY\n  ]\n    ? [false]\n    : sampleSpan(\n        options,\n        {\n          name,\n          parentSampled: finalParentSampled,\n          attributes: finalAttributes,\n          parentSampleRate: parseSampleRate(currentPropagationContext.dsc?.sample_rate),\n        },\n        currentPropagationContext.sampleRand,\n      );\n\n  const rootSpan = new SentrySpan({\n    ...spanArguments,\n    attributes: {\n      [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'custom',\n      [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]:\n        sampleRate !== undefined && localSampleRateWasApplied ? sampleRate : undefined,\n      ...finalAttributes,\n    },\n    sampled,\n  });\n\n  if (!sampled && client) {\n    DEBUG_BUILD && debug.log('[Tracing] Discarding root span because its trace was not chosen to be sampled.');\n    client.recordDroppedEvent('sample_rate', 'transaction');\n  }\n\n  if (client) {\n    client.emit('spanStart', rootSpan);\n  }\n\n  return rootSpan;\n}\n\n/**\n * Creates a new `Span` while setting the current `Span.id` as `parentSpanId`.\n * This inherits the sampling decision from the parent span.\n */\nfunction _startChildSpan(parentSpan, scope, spanArguments) {\n  const { spanId, traceId } = parentSpan.spanContext();\n  const sampled = scope.getScopeData().sdkProcessingMetadata[SUPPRESS_TRACING_KEY] ? false : spanIsSampled(parentSpan);\n\n  const childSpan = sampled\n    ? new SentrySpan({\n        ...spanArguments,\n        parentSpanId: spanId,\n        traceId,\n        sampled,\n      })\n    : new SentryNonRecordingSpan({ traceId });\n\n  addChildSpanToSpan(parentSpan, childSpan);\n\n  const client = getClient();\n  if (client) {\n    client.emit('spanStart', childSpan);\n    // If it has an endTimestamp, it's already ended\n    if (spanArguments.endTimestamp) {\n      client.emit('spanEnd', childSpan);\n    }\n  }\n\n  return childSpan;\n}\n\nfunction getParentSpan(scope, customParentSpan) {\n  // always use the passed in span directly\n  if (customParentSpan) {\n    return customParentSpan ;\n  }\n\n  // This is different from `undefined` as it means the user explicitly wants no parent span\n  if (customParentSpan === null) {\n    return undefined;\n  }\n\n  const span = _getSpanForScope(scope) ;\n\n  if (!span) {\n    return undefined;\n  }\n\n  const client = getClient();\n  const options = client ? client.getOptions() : {};\n  if (options.parentSpanIsAlwaysRootSpan) {\n    return getRootSpan(span) ;\n  }\n\n  return span;\n}\n\nfunction getActiveSpanWrapper(parentSpan) {\n  return parentSpan !== undefined\n    ? (callback) => {\n        return withActiveSpan(parentSpan, callback);\n      }\n    : (callback) => callback();\n}\n\nexport { continueTrace, startInactiveSpan, startNewTrace, startSpan, startSpanManual, suppressTracing, withActiveSpan };\n//# sourceMappingURL=trace.js.map\n",
-    "import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/** SyncPromise internal states */\nconst STATE_PENDING = 0;\nconst STATE_RESOLVED = 1;\nconst STATE_REJECTED = 2;\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n  return new SyncPromise(resolve => {\n    resolve(value);\n  });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n  return new SyncPromise((_, reject) => {\n    reject(reason);\n  });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n\n   constructor(executor) {\n    this._state = STATE_PENDING;\n    this._handlers = [];\n\n    this._runExecutor(executor);\n  }\n\n  /** @inheritdoc */\n   then(\n    onfulfilled,\n    onrejected,\n  ) {\n    return new SyncPromise((resolve, reject) => {\n      this._handlers.push([\n        false,\n        result => {\n          if (!onfulfilled) {\n            // TODO: ¯\\_(ツ)_/¯\n            // TODO: FIXME\n            resolve(result );\n          } else {\n            try {\n              resolve(onfulfilled(result));\n            } catch (e) {\n              reject(e);\n            }\n          }\n        },\n        reason => {\n          if (!onrejected) {\n            reject(reason);\n          } else {\n            try {\n              resolve(onrejected(reason));\n            } catch (e) {\n              reject(e);\n            }\n          }\n        },\n      ]);\n      this._executeHandlers();\n    });\n  }\n\n  /** @inheritdoc */\n   catch(\n    onrejected,\n  ) {\n    return this.then(val => val, onrejected);\n  }\n\n  /** @inheritdoc */\n   finally(onfinally) {\n    return new SyncPromise((resolve, reject) => {\n      let val;\n      let isRejected;\n\n      return this.then(\n        value => {\n          isRejected = false;\n          val = value;\n          if (onfinally) {\n            onfinally();\n          }\n        },\n        reason => {\n          isRejected = true;\n          val = reason;\n          if (onfinally) {\n            onfinally();\n          }\n        },\n      ).then(() => {\n        if (isRejected) {\n          reject(val);\n          return;\n        }\n\n        resolve(val );\n      });\n    });\n  }\n\n  /** Excute the resolve/reject handlers. */\n   _executeHandlers() {\n    if (this._state === STATE_PENDING) {\n      return;\n    }\n\n    const cachedHandlers = this._handlers.slice();\n    this._handlers = [];\n\n    cachedHandlers.forEach(handler => {\n      if (handler[0]) {\n        return;\n      }\n\n      if (this._state === STATE_RESOLVED) {\n        handler[1](this._value );\n      }\n\n      if (this._state === STATE_REJECTED) {\n        handler[2](this._value);\n      }\n\n      handler[0] = true;\n    });\n  }\n\n  /** Run the executor for the SyncPromise. */\n   _runExecutor(executor) {\n    const setResult = (state, value) => {\n      if (this._state !== STATE_PENDING) {\n        return;\n      }\n\n      if (isThenable(value)) {\n        void (value ).then(resolve, reject);\n        return;\n      }\n\n      this._state = state;\n      this._value = value;\n\n      this._executeHandlers();\n    };\n\n    const resolve = (value) => {\n      setResult(STATE_RESOLVED, value);\n    };\n\n    const reject = (reason) => {\n      setResult(STATE_REJECTED, reason);\n    };\n\n    try {\n      executor(resolve, reject);\n    } catch (e) {\n      reject(e);\n    }\n  }\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n",
-    "import { DEBUG_BUILD } from './debug-build.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isThenable } from './utils/is.js';\nimport { resolvedSyncPromise, rejectedSyncPromise } from './utils/syncpromise.js';\n\n/**\n * Process an array of event processors, returning the processed event (or `null` if the event was dropped).\n */\nfunction notifyEventProcessors(\n  processors,\n  event,\n  hint,\n  index = 0,\n) {\n  try {\n    const result = _notifyEventProcessors(event, hint, processors, index);\n    return isThenable(result) ? result : resolvedSyncPromise(result);\n  } catch (error) {\n    return rejectedSyncPromise(error);\n  }\n}\n\nfunction _notifyEventProcessors(\n  event,\n  hint,\n  processors,\n  index,\n) {\n  const processor = processors[index];\n\n  if (!event || !processor) {\n    return event;\n  }\n\n  const result = processor({ ...event }, hint);\n\n  DEBUG_BUILD && result === null && debug.log(`Event processor \"${processor.id || '?'}\" dropped event`);\n\n  if (isThenable(result)) {\n    return result.then(final => _notifyEventProcessors(final, hint, processors, index + 1));\n  }\n\n  return _notifyEventProcessors(result, hint, processors, index + 1);\n}\n\nexport { notifyEventProcessors };\n//# sourceMappingURL=eventProcessors.js.map\n",
-    "import { normalizeStackTracePath } from './stacktrace.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nlet parsedStackResults;\nlet lastSentryKeysCount;\nlet lastNativeKeysCount;\nlet cachedFilenameDebugIds;\n\n/**\n * Returns a map of filenames to debug identifiers.\n * Supports both proprietary _sentryDebugIds and native _debugIds (e.g., from Vercel) formats.\n */\nfunction getFilenameToDebugIdMap(stackParser) {\n  const sentryDebugIdMap = GLOBAL_OBJ._sentryDebugIds;\n  const nativeDebugIdMap = GLOBAL_OBJ._debugIds;\n\n  if (!sentryDebugIdMap && !nativeDebugIdMap) {\n    return {};\n  }\n\n  const sentryDebugIdKeys = sentryDebugIdMap ? Object.keys(sentryDebugIdMap) : [];\n  const nativeDebugIdKeys = nativeDebugIdMap ? Object.keys(nativeDebugIdMap) : [];\n\n  // If the count of registered globals hasn't changed since the last call, we\n  // can just return the cached result.\n  if (\n    cachedFilenameDebugIds &&\n    sentryDebugIdKeys.length === lastSentryKeysCount &&\n    nativeDebugIdKeys.length === lastNativeKeysCount\n  ) {\n    return cachedFilenameDebugIds;\n  }\n\n  lastSentryKeysCount = sentryDebugIdKeys.length;\n  lastNativeKeysCount = nativeDebugIdKeys.length;\n\n  // Build a map of filename -> debug_id from both sources\n  cachedFilenameDebugIds = {};\n\n  if (!parsedStackResults) {\n    parsedStackResults = {};\n  }\n\n  const processDebugIds = (debugIdKeys, debugIdMap) => {\n    for (const key of debugIdKeys) {\n      const debugId = debugIdMap[key];\n      const result = parsedStackResults?.[key];\n\n      if (result && cachedFilenameDebugIds && debugId) {\n        // Use cached filename but update with current debug ID\n        cachedFilenameDebugIds[result[0]] = debugId;\n        // Update cached result with new debug ID\n        if (parsedStackResults) {\n          parsedStackResults[key] = [result[0], debugId];\n        }\n      } else if (debugId) {\n        const parsedStack = stackParser(key);\n\n        for (let i = parsedStack.length - 1; i >= 0; i--) {\n          const stackFrame = parsedStack[i];\n          const filename = stackFrame?.filename;\n\n          if (filename && cachedFilenameDebugIds && parsedStackResults) {\n            cachedFilenameDebugIds[filename] = debugId;\n            parsedStackResults[key] = [filename, debugId];\n            break;\n          }\n        }\n      }\n    }\n  };\n\n  if (sentryDebugIdMap) {\n    processDebugIds(sentryDebugIdKeys, sentryDebugIdMap);\n  }\n\n  // Native _debugIds will override _sentryDebugIds if same file\n  if (nativeDebugIdMap) {\n    processDebugIds(nativeDebugIdKeys, nativeDebugIdMap);\n  }\n\n  return cachedFilenameDebugIds;\n}\n\n/**\n * Returns a list of debug images for the given resources.\n */\nfunction getDebugImagesForResources(\n  stackParser,\n  resource_paths,\n) {\n  const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n\n  if (!filenameDebugIdMap) {\n    return [];\n  }\n\n  const images = [];\n  for (const path of resource_paths) {\n    const normalizedPath = normalizeStackTracePath(path);\n    if (normalizedPath && filenameDebugIdMap[normalizedPath]) {\n      images.push({\n        type: 'sourcemap',\n        code_file: path,\n        debug_id: filenameDebugIdMap[normalizedPath],\n      });\n    }\n  }\n\n  return images;\n}\n\nexport { getDebugImagesForResources, getFilenameToDebugIdMap };\n//# sourceMappingURL=debug-ids.js.map\n",
-    "import { getGlobalScope } from '../currentScopes.js';\nimport { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext.js';\nimport { merge } from './merge.js';\nimport { spanToTraceContext, getRootSpan, spanToJSON } from './spanUtils.js';\n\n/**\n * Applies data from the scope to the event and runs all event processors on it.\n */\nfunction applyScopeDataToEvent(event, data) {\n  const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n\n  // Apply general data\n  applyDataToEvent(event, data);\n\n  // We want to set the trace context for normal events only if there isn't already\n  // a trace context on the event. There is a product feature in place where we link\n  // errors with transaction and it relies on that.\n  if (span) {\n    applySpanToEvent(event, span);\n  }\n\n  applyFingerprintToEvent(event, fingerprint);\n  applyBreadcrumbsToEvent(event, breadcrumbs);\n  applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\n\n/** Merge data of two scopes together. */\nfunction mergeScopeData(data, mergeData) {\n  const {\n    extra,\n    tags,\n    attributes,\n    user,\n    contexts,\n    level,\n    sdkProcessingMetadata,\n    breadcrumbs,\n    fingerprint,\n    eventProcessors,\n    attachments,\n    propagationContext,\n    transactionName,\n    span,\n  } = mergeData;\n\n  mergeAndOverwriteScopeData(data, 'extra', extra);\n  mergeAndOverwriteScopeData(data, 'tags', tags);\n  mergeAndOverwriteScopeData(data, 'attributes', attributes);\n  mergeAndOverwriteScopeData(data, 'user', user);\n  mergeAndOverwriteScopeData(data, 'contexts', contexts);\n\n  data.sdkProcessingMetadata = merge(data.sdkProcessingMetadata, sdkProcessingMetadata, 2);\n\n  if (level) {\n    data.level = level;\n  }\n\n  if (transactionName) {\n    data.transactionName = transactionName;\n  }\n\n  if (span) {\n    data.span = span;\n  }\n\n  if (breadcrumbs.length) {\n    data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n  }\n\n  if (fingerprint.length) {\n    data.fingerprint = [...data.fingerprint, ...fingerprint];\n  }\n\n  if (eventProcessors.length) {\n    data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n  }\n\n  if (attachments.length) {\n    data.attachments = [...data.attachments, ...attachments];\n  }\n\n  data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\n\n/**\n * Merges certain scope data. Undefined values will overwrite any existing values.\n * Exported only for tests.\n */\nfunction mergeAndOverwriteScopeData\n\n(data, prop, mergeVal) {\n  data[prop] = merge(data[prop], mergeVal, 1);\n}\n\n/**\n * Get the scope data for the current scope after merging with the\n * global scope and isolation scope.\n *\n * @param currentScope - The current scope.\n * @returns The scope data.\n */\nfunction getCombinedScopeData(isolationScope, currentScope) {\n  const scopeData = getGlobalScope().getScopeData();\n  isolationScope && mergeScopeData(scopeData, isolationScope.getScopeData());\n  currentScope && mergeScopeData(scopeData, currentScope.getScopeData());\n  return scopeData;\n}\n\nfunction applyDataToEvent(event, data) {\n  const { extra, tags, user, contexts, level, transactionName } = data;\n\n  if (Object.keys(extra).length) {\n    event.extra = { ...extra, ...event.extra };\n  }\n\n  if (Object.keys(tags).length) {\n    event.tags = { ...tags, ...event.tags };\n  }\n\n  if (Object.keys(user).length) {\n    event.user = { ...user, ...event.user };\n  }\n\n  if (Object.keys(contexts).length) {\n    event.contexts = { ...contexts, ...event.contexts };\n  }\n\n  if (level) {\n    event.level = level;\n  }\n\n  // transaction events get their `transaction` from the root span name\n  if (transactionName && event.type !== 'transaction') {\n    event.transaction = transactionName;\n  }\n}\n\nfunction applyBreadcrumbsToEvent(event, breadcrumbs) {\n  const mergedBreadcrumbs = [...(event.breadcrumbs || []), ...breadcrumbs];\n  event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : undefined;\n}\n\nfunction applySdkMetadataToEvent(event, sdkProcessingMetadata) {\n  event.sdkProcessingMetadata = {\n    ...event.sdkProcessingMetadata,\n    ...sdkProcessingMetadata,\n  };\n}\n\nfunction applySpanToEvent(event, span) {\n  event.contexts = {\n    trace: spanToTraceContext(span),\n    ...event.contexts,\n  };\n\n  event.sdkProcessingMetadata = {\n    dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n    ...event.sdkProcessingMetadata,\n  };\n\n  const rootSpan = getRootSpan(span);\n  const transactionName = spanToJSON(rootSpan).description;\n  if (transactionName && !event.transaction && event.type === 'transaction') {\n    event.transaction = transactionName;\n  }\n}\n\n/**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\nfunction applyFingerprintToEvent(event, fingerprint) {\n  // Make sure it's an array first and we actually have something in place\n  event.fingerprint = event.fingerprint\n    ? Array.isArray(event.fingerprint)\n      ? event.fingerprint\n      : [event.fingerprint]\n    : [];\n\n  // If we have something on the scope, then merge it with event\n  if (fingerprint) {\n    event.fingerprint = event.fingerprint.concat(fingerprint);\n  }\n\n  // If we have no data at all, remove empty array default\n  if (!event.fingerprint.length) {\n    delete event.fingerprint;\n  }\n}\n\nexport { applyScopeDataToEvent, getCombinedScopeData, mergeAndOverwriteScopeData, mergeScopeData };\n//# sourceMappingURL=scopeData.js.map\n",
-    "import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { notifyEventProcessors } from '../eventProcessors.js';\nimport { Scope } from '../scope.js';\nimport { getFilenameToDebugIdMap } from './debug-ids.js';\nimport { uuid4, addExceptionMechanism } from './misc.js';\nimport { normalize } from './normalize.js';\nimport { getCombinedScopeData, applyScopeDataToEvent } from './scopeData.js';\nimport { truncate } from './string.js';\nimport { resolvedSyncPromise } from './syncpromise.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * This type makes sure that we get either a CaptureContext, OR an EventHint.\n * It does not allow mixing them, which could lead to unexpected outcomes, e.g. this is disallowed:\n * { user: { id: '123' }, mechanism: { handled: false } }\n */\n\n/**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n * @hidden\n */\nfunction prepareEvent(\n  options,\n  event,\n  hint,\n  scope,\n  client,\n  isolationScope,\n) {\n  const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = options;\n  const prepared = {\n    ...event,\n    event_id: event.event_id || hint.event_id || uuid4(),\n    timestamp: event.timestamp || dateTimestampInSeconds(),\n  };\n  const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n  applyClientOptions(prepared, options);\n  applyIntegrationsMetadata(prepared, integrations);\n\n  if (client) {\n    client.emit('applyFrameMetadata', event);\n  }\n\n  // Only put debug IDs onto frames for error events.\n  if (event.type === undefined) {\n    applyDebugIds(prepared, options.stackParser);\n  }\n\n  // If we have scope given to us, use it as the base for further modifications.\n  // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n  const finalScope = getFinalScope(scope, hint.captureContext);\n\n  if (hint.mechanism) {\n    addExceptionMechanism(prepared, hint.mechanism);\n  }\n\n  const clientEventProcessors = client ? client.getEventProcessors() : [];\n\n  // This should be the last thing called, since we want that\n  // {@link Scope.addEventProcessor} gets the finished prepared event.\n  // Merge scope data together\n  const data = getCombinedScopeData(isolationScope, finalScope);\n\n  const attachments = [...(hint.attachments || []), ...data.attachments];\n  if (attachments.length) {\n    hint.attachments = attachments;\n  }\n\n  applyScopeDataToEvent(prepared, data);\n\n  const eventProcessors = [\n    ...clientEventProcessors,\n    // Run scope event processors _after_ all other processors\n    ...data.eventProcessors,\n  ];\n\n  // Skip event processors for internal exceptions to prevent recursion\n  // oxlint-disable-next-line typescript/prefer-optional-chain\n  const isInternalException = hint.data && (hint.data ).__sentry__ === true;\n  const result = isInternalException\n    ? resolvedSyncPromise(prepared)\n    : notifyEventProcessors(eventProcessors, prepared, hint);\n\n  return result.then(evt => {\n    if (evt) {\n      // We apply the debug_meta field only after all event processors have ran, so that if any event processors modified\n      // file names (e.g.the RewriteFrames integration) the filename -> debug ID relationship isn't destroyed.\n      // This should not cause any PII issues, since we're only moving data that is already on the event and not adding\n      // any new data\n      applyDebugMeta(evt);\n    }\n\n    if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n      return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n    }\n    return evt;\n  });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n *\n * Only exported for tests.\n *\n * @param event event instance to be enhanced\n */\nfunction applyClientOptions(event, options) {\n  const { environment, release, dist, maxValueLength } = options;\n\n  // empty strings do not make sense for environment, release, and dist\n  // so we handle them the same as if they were not provided\n  event.environment = event.environment || environment || DEFAULT_ENVIRONMENT;\n\n  if (!event.release && release) {\n    event.release = release;\n  }\n\n  if (!event.dist && dist) {\n    event.dist = dist;\n  }\n\n  const request = event.request;\n  if (request?.url && maxValueLength) {\n    request.url = truncate(request.url, maxValueLength);\n  }\n\n  if (maxValueLength) {\n    event.exception?.values?.forEach(exception => {\n      if (exception.value) {\n        // Truncates error messages\n        exception.value = truncate(exception.value, maxValueLength);\n      }\n    });\n  }\n}\n\n/**\n * Puts debug IDs into the stack frames of an error event.\n */\nfunction applyDebugIds(event, stackParser) {\n  // Build a map of filename -> debug_id\n  const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n\n  event.exception?.values?.forEach(exception => {\n    exception.stacktrace?.frames?.forEach(frame => {\n      if (frame.filename) {\n        frame.debug_id = filenameDebugIdMap[frame.filename];\n      }\n    });\n  });\n}\n\n/**\n * Moves debug IDs from the stack frames of an error event into the debug_meta field.\n */\nfunction applyDebugMeta(event) {\n  // Extract debug IDs and filenames from the stack frames on the event.\n  const filenameDebugIdMap = {};\n  event.exception?.values?.forEach(exception => {\n    exception.stacktrace?.frames?.forEach(frame => {\n      if (frame.debug_id) {\n        if (frame.abs_path) {\n          filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n        } else if (frame.filename) {\n          filenameDebugIdMap[frame.filename] = frame.debug_id;\n        }\n        delete frame.debug_id;\n      }\n    });\n  });\n\n  if (Object.keys(filenameDebugIdMap).length === 0) {\n    return;\n  }\n\n  // Fill debug_meta information\n  event.debug_meta = event.debug_meta || {};\n  event.debug_meta.images = event.debug_meta.images || [];\n  const images = event.debug_meta.images;\n  Object.entries(filenameDebugIdMap).forEach(([filename, debug_id]) => {\n    images.push({\n      type: 'sourcemap',\n      code_file: filename,\n      debug_id,\n    });\n  });\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event, integrationNames) {\n  if (integrationNames.length > 0) {\n    event.sdk = event.sdk || {};\n    event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n  }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event, depth, maxBreadth) {\n  if (!event) {\n    return null;\n  }\n\n  const normalized = {\n    ...event,\n    ...(event.breadcrumbs && {\n      breadcrumbs: event.breadcrumbs.map(b => ({\n        ...b,\n        ...(b.data && {\n          data: normalize(b.data, depth, maxBreadth),\n        }),\n      })),\n    }),\n    ...(event.user && {\n      user: normalize(event.user, depth, maxBreadth),\n    }),\n    ...(event.contexts && {\n      contexts: normalize(event.contexts, depth, maxBreadth),\n    }),\n    ...(event.extra && {\n      extra: normalize(event.extra, depth, maxBreadth),\n    }),\n  };\n\n  // event.contexts.trace stores information about a Transaction. Similarly,\n  // event.spans[] stores information about child Spans. Given that a\n  // Transaction is conceptually a Span, normalization should apply to both\n  // Transactions and Spans consistently.\n  // For now the decision is to skip normalization of Transactions and Spans,\n  // so this block overwrites the normalized event to add back the original\n  // Transaction information prior to normalization.\n  if (event.contexts?.trace && normalized.contexts) {\n    normalized.contexts.trace = event.contexts.trace;\n\n    // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n    if (event.contexts.trace.data) {\n      normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n    }\n  }\n\n  // event.spans[].data may contain circular/dangerous data so we need to normalize it\n  if (event.spans) {\n    normalized.spans = event.spans.map(span => {\n      return {\n        ...span,\n        ...(span.data && {\n          data: normalize(span.data, depth, maxBreadth),\n        }),\n      };\n    });\n  }\n\n  // event.contexts.flags (FeatureFlagContext) stores context for our feature\n  // flag integrations. It has a greater nesting depth than our other typed\n  // Contexts, so we re-normalize with a fixed depth of 3 here. We do not want\n  // to skip this in case of conflicting, user-provided context.\n  if (event.contexts?.flags && normalized.contexts) {\n    normalized.contexts.flags = normalize(event.contexts.flags, 3, maxBreadth);\n  }\n\n  return normalized;\n}\n\nfunction getFinalScope(scope, captureContext) {\n  if (!captureContext) {\n    return scope;\n  }\n\n  const finalScope = scope ? scope.clone() : new Scope();\n  finalScope.update(captureContext);\n  return finalScope;\n}\n\n/**\n * Parse either an `EventHint` directly, or convert a `CaptureContext` to an `EventHint`.\n * This is used to allow to update method signatures that used to accept a `CaptureContext` but should now accept an `EventHint`.\n */\nfunction parseEventHintOrCaptureContext(\n  hint,\n) {\n  if (!hint) {\n    return undefined;\n  }\n\n  // If you pass a Scope or `() => Scope` as CaptureContext, we just return this as captureContext\n  if (hintIsScopeOrFunction(hint)) {\n    return { captureContext: hint };\n  }\n\n  if (hintIsScopeContext(hint)) {\n    return {\n      captureContext: hint,\n    };\n  }\n\n  return hint;\n}\n\nfunction hintIsScopeOrFunction(hint) {\n  return hint instanceof Scope || typeof hint === 'function';\n}\n\nconst captureContextKeys = [\n  'user',\n  'level',\n  'extra',\n  'contexts',\n  'tags',\n  'fingerprint',\n  'propagationContext',\n] ;\n\nfunction hintIsScopeContext(hint) {\n  return Object.keys(hint).some(key => captureContextKeys.includes(key ));\n}\n\nexport { applyClientOptions, applyDebugIds, applyDebugMeta, parseEventHintOrCaptureContext, prepareEvent };\n//# sourceMappingURL=prepareEvent.js.map\n",
-    "import { getIsolationScope, getCurrentScope, getClient, withIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\nimport { startNewTrace } from './tracing/trace.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isThenable } from './utils/is.js';\nimport { uuid4 } from './utils/misc.js';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent.js';\nimport { getCombinedScopeData } from './utils/scopeData.js';\nimport { timestampInSeconds } from './utils/time.js';\nimport { GLOBAL_OBJ } from './utils/worldwide.js';\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nfunction captureException(exception, hint) {\n  return getCurrentScope().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param captureContext Define the level of the message or pass in additional data to attach to the message.\n * @returns the id of the captured message.\n */\nfunction captureMessage(message, captureContext) {\n  // This is necessary to provide explicit scopes upgrade, without changing the original\n  // arity of the `captureMessage(message, level)` method.\n  const level = typeof captureContext === 'string' ? captureContext : undefined;\n  const hint = typeof captureContext !== 'string' ? { captureContext } : undefined;\n  return getCurrentScope().captureMessage(message, level, hint);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\nfunction captureEvent(event, hint) {\n  return getCurrentScope().captureEvent(event, hint);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\nfunction setContext(name, context) {\n  getIsolationScope().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n  getIsolationScope().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n  getIsolationScope().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n  getIsolationScope().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n  getIsolationScope().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n  getIsolationScope().setUser(user);\n}\n\n/**\n * Sets the conversation ID for the current isolation scope.\n *\n * @param conversationId The conversation ID to set. Pass `null` or `undefined` to unset the conversation ID.\n */\nfunction setConversationId(conversationId) {\n  getIsolationScope().setConversationId(conversationId);\n}\n\n/**\n * The last error event id of the isolation scope.\n *\n * Warning: This function really returns the last recorded error event id on the current\n * isolation scope. If you call this function after handling a certain error and another error\n * is captured in between, the last one is returned instead of the one you might expect.\n * Also, ids of events that were never sent to Sentry (for example because\n * they were dropped in `beforeSend`) could be returned.\n *\n * @returns The last event id of the isolation scope.\n */\nfunction lastEventId() {\n  return getIsolationScope().lastEventId();\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction captureCheckIn(checkIn, upsertMonitorConfig) {\n  const scope = getCurrentScope();\n  const client = getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn('Cannot capture check-in. No client defined.');\n  } else if (!client.captureCheckIn) {\n    DEBUG_BUILD && debug.warn('Cannot capture check-in. Client does not support sending check-ins.');\n  } else {\n    return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n  }\n\n  return uuid4();\n}\n\n/**\n * Wraps a callback with a cron monitor check in. The check in will be sent to Sentry when the callback finishes.\n *\n * @param monitorSlug The distinct slug of the monitor.\n * @param callback Callback to be monitored\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction withMonitor(\n  monitorSlug,\n  callback,\n  upsertMonitorConfig,\n) {\n  function runCallback() {\n    const checkInId = captureCheckIn({ monitorSlug, status: 'in_progress' }, upsertMonitorConfig);\n    const now = timestampInSeconds();\n\n    function finishCheckIn(status) {\n      captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n    }\n    // Default behavior without isolateTrace\n    let maybePromiseResult;\n    try {\n      maybePromiseResult = callback();\n    } catch (e) {\n      finishCheckIn('error');\n      throw e;\n    }\n\n    if (isThenable(maybePromiseResult)) {\n      return maybePromiseResult.then(\n        r => {\n          finishCheckIn('ok');\n          return r;\n        },\n        e => {\n          finishCheckIn('error');\n          throw e;\n        },\n      ) ;\n    }\n    finishCheckIn('ok');\n\n    return maybePromiseResult;\n  }\n\n  return withIsolationScope(() => (upsertMonitorConfig?.isolateTrace ? startNewTrace(runCallback) : runCallback()));\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function flush(timeout) {\n  const client = getClient();\n  if (client) {\n    return client.flush(timeout);\n  }\n  DEBUG_BUILD && debug.warn('Cannot flush events. No client defined.');\n  return Promise.resolve(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function close(timeout) {\n  const client = getClient();\n  if (client) {\n    return client.close(timeout);\n  }\n  DEBUG_BUILD && debug.warn('Cannot flush events and disable SDK. No client defined.');\n  return Promise.resolve(false);\n}\n\n/**\n * Returns true if Sentry has been properly initialized.\n */\nfunction isInitialized() {\n  return !!getClient();\n}\n\n/** If the SDK is initialized & enabled. */\nfunction isEnabled() {\n  const client = getClient();\n  return client?.getOptions().enabled !== false && !!client?.getTransport();\n}\n\n/**\n * Add an event processor.\n * This will be added to the current isolation scope, ensuring any event that is processed in the current execution\n * context will have the processor applied.\n */\nfunction addEventProcessor(callback) {\n  getIsolationScope().addEventProcessor(callback);\n}\n\n/**\n * Start a session on the current isolation scope.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns the new active session\n */\nfunction startSession(context) {\n  const isolationScope = getIsolationScope();\n\n  const { user } = getCombinedScopeData(isolationScope, getCurrentScope());\n\n  // Will fetch userAgent if called from browser sdk\n  const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n  const session = makeSession({\n    user,\n    ...(userAgent && { userAgent }),\n    ...context,\n  });\n\n  // End existing session if there's one\n  const currentSession = isolationScope.getSession();\n  if (currentSession?.status === 'ok') {\n    updateSession(currentSession, { status: 'exited' });\n  }\n\n  endSession();\n\n  // Afterwards we set the new session on the scope\n  isolationScope.setSession(session);\n\n  return session;\n}\n\n/**\n * End the session on the current isolation scope.\n */\nfunction endSession() {\n  const isolationScope = getIsolationScope();\n  const currentScope = getCurrentScope();\n\n  const session = currentScope.getSession() || isolationScope.getSession();\n  if (session) {\n    closeSession(session);\n  }\n  _sendSessionUpdate();\n\n  // the session is over; take it off of the scope\n  isolationScope.setSession();\n}\n\n/**\n * Sends the current Session on the scope\n */\nfunction _sendSessionUpdate() {\n  const isolationScope = getIsolationScope();\n  const client = getClient();\n  const session = isolationScope.getSession();\n  if (session && client) {\n    client.captureSession(session);\n  }\n}\n\n/**\n * Sends the current session on the scope to Sentry\n *\n * @param end If set the session will be marked as exited and removed from the scope.\n *            Defaults to `false`.\n */\nfunction captureSession(end = false) {\n  // both send the update and pull the session from the scope\n  if (end) {\n    endSession();\n    return;\n  }\n\n  // only send the update\n  _sendSessionUpdate();\n}\n\nexport { addEventProcessor, captureCheckIn, captureEvent, captureException, captureMessage, captureSession, close, endSession, flush, isEnabled, isInitialized, lastEventId, setContext, setConversationId, setExtra, setExtras, setTag, setTags, setUser, startSession, withMonitor };\n//# sourceMappingURL=exports.js.map\n",
-    "import { dsnToString } from './utils/dsn.js';\nimport { createEnvelope } from './utils/envelope.js';\n\n/**\n * Create envelope from check in item.\n */\nfunction createCheckInEnvelope(\n  checkIn,\n  dynamicSamplingContext,\n  metadata,\n  tunnel,\n  dsn,\n) {\n  const headers = {\n    sent_at: new Date().toISOString(),\n  };\n\n  if (metadata?.sdk) {\n    headers.sdk = {\n      name: metadata.sdk.name,\n      version: metadata.sdk.version,\n    };\n  }\n\n  if (!!tunnel && !!dsn) {\n    headers.dsn = dsnToString(dsn);\n  }\n\n  if (dynamicSamplingContext) {\n    headers.trace = dynamicSamplingContext ;\n  }\n\n  const item = createCheckInEnvelopeItem(checkIn);\n  return createEnvelope(headers, [item]);\n}\n\nfunction createCheckInEnvelopeItem(checkIn) {\n  const checkInHeaders = {\n    type: 'check_in',\n  };\n  return [checkInHeaders, checkIn];\n}\n\nexport { createCheckInEnvelope };\n//# sourceMappingURL=checkin.js.map\n",
-    "import { makeDsn, dsnToString } from './utils/dsn.js';\n\nconst SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\n  const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n  const port = dsn.port ? `:${dsn.port}` : '';\n  return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn) {\n  return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn, sdkInfo) {\n  const params = {\n    sentry_version: SENTRY_API_VERSION,\n  };\n\n  if (dsn.publicKey) {\n    // We send only the minimum set of required information. See\n    // https://github.com/getsentry/sentry-javascript/issues/2572.\n    params.sentry_key = dsn.publicKey;\n  }\n\n  if (sdkInfo) {\n    params.sentry_client = `${sdkInfo.name}/${sdkInfo.version}`;\n  }\n\n  return new URLSearchParams(params).toString();\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nfunction getEnvelopeEndpointWithUrlEncodedAuth(dsn, tunnel, sdkInfo) {\n  return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nfunction getReportDialogEndpoint(dsnLike, dialogOptions) {\n  const dsn = makeDsn(dsnLike);\n  if (!dsn) {\n    return '';\n  }\n\n  const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n  let encodedOptions = `dsn=${dsnToString(dsn)}`;\n  for (const key in dialogOptions) {\n    if (key === 'dsn') {\n      continue;\n    }\n\n    if (key === 'onClose') {\n      continue;\n    }\n\n    if (key === 'user') {\n      const user = dialogOptions.user;\n      if (!user) {\n        continue;\n      }\n      if (user.name) {\n        encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n      }\n      if (user.email) {\n        encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n      }\n    } else {\n      encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;\n    }\n  }\n\n  return `${endpoint}?${encodedOptions}`;\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n",
-    "import { getClient } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { debug } from './utils/debug-logger.js';\n\nconst installedIntegrations = [];\n\n/** Map of integrations assigned to a client */\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preserve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations) {\n  const integrationsByName = {};\n\n  integrations.forEach((currentInstance) => {\n    const { name } = currentInstance;\n\n    const existingInstance = integrationsByName[name];\n\n    // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n    // default instance to overwrite an existing user instance\n    if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n      return;\n    }\n\n    integrationsByName[name] = currentInstance;\n  });\n\n  return Object.values(integrationsByName);\n}\n\n/** Gets integrations to install */\nfunction getIntegrationsToSetup(\n  options,\n) {\n  const defaultIntegrations = options.defaultIntegrations || [];\n  const userIntegrations = options.integrations;\n\n  // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n  defaultIntegrations.forEach((integration) => {\n    integration.isDefaultInstance = true;\n  });\n\n  let integrations;\n\n  if (Array.isArray(userIntegrations)) {\n    integrations = [...defaultIntegrations, ...userIntegrations];\n  } else if (typeof userIntegrations === 'function') {\n    const resolvedUserIntegrations = userIntegrations(defaultIntegrations);\n    integrations = Array.isArray(resolvedUserIntegrations) ? resolvedUserIntegrations : [resolvedUserIntegrations];\n  } else {\n    integrations = defaultIntegrations;\n  }\n\n  return filterDuplicates(integrations);\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nfunction setupIntegrations(client, integrations) {\n  const integrationIndex = {};\n\n  integrations.forEach((integration) => {\n    // guard against empty provided integrations\n    if (integration) {\n      setupIntegration(client, integration, integrationIndex);\n    }\n  });\n\n  return integrationIndex;\n}\n\n/**\n * Execute the `afterAllSetup` hooks of the given integrations.\n */\nfunction afterSetupIntegrations(client, integrations) {\n  for (const integration of integrations) {\n    // guard against empty provided integrations\n    if (integration?.afterAllSetup) {\n      integration.afterAllSetup(client);\n    }\n  }\n}\n\n/** Setup a single integration.  */\nfunction setupIntegration(client, integration, integrationIndex) {\n  if (integrationIndex[integration.name]) {\n    DEBUG_BUILD && debug.log(`Integration skipped because it was already installed: ${integration.name}`);\n    return;\n  }\n  integrationIndex[integration.name] = integration;\n\n  // `setupOnce` is only called the first time\n  if (!installedIntegrations.includes(integration.name) && typeof integration.setupOnce === 'function') {\n    integration.setupOnce();\n    installedIntegrations.push(integration.name);\n  }\n\n  // `setup` is run for each client\n  if (integration.setup && typeof integration.setup === 'function') {\n    integration.setup(client);\n  }\n\n  if (typeof integration.preprocessEvent === 'function') {\n    const callback = integration.preprocessEvent.bind(integration) ;\n    client.on('preprocessEvent', (event, hint) => callback(event, hint, client));\n  }\n\n  if (typeof integration.processEvent === 'function') {\n    const callback = integration.processEvent.bind(integration) ;\n\n    const processor = Object.assign((event, hint) => callback(event, hint, client), {\n      id: integration.name,\n    });\n\n    client.addEventProcessor(processor);\n  }\n\n  DEBUG_BUILD && debug.log(`Integration installed: ${integration.name}`);\n}\n\n/** Add an integration to the current scope's client. */\nfunction addIntegration(integration) {\n  const client = getClient();\n\n  if (!client) {\n    DEBUG_BUILD && debug.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n    return;\n  }\n\n  client.addIntegration(integration);\n}\n\n/**\n * Define an integration function that can be used to create an integration instance.\n * Note that this by design hides the implementation details of the integration, as they are considered internal.\n */\nfunction defineIntegration(fn) {\n  return fn;\n}\n\nexport { addIntegration, afterSetupIntegrations, defineIntegration, getIntegrationsToSetup, installedIntegrations, setupIntegration, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n",
-    "/**\n * Type-guard: The attribute object has the shape the official attribute object (value, type, unit).\n * https://develop.sentry.dev/sdk/telemetry/scopes/#setting-attributes\n */\nfunction isAttributeObject(maybeObj) {\n  return (\n    typeof maybeObj === 'object' &&\n    maybeObj != null &&\n    !Array.isArray(maybeObj) &&\n    Object.keys(maybeObj).includes('value')\n  );\n}\n\n/**\n * Converts an attribute value to a typed attribute value.\n *\n * For now, we intentionally only support primitive values and attribute objects with primitive values.\n * If @param useFallback is true, we stringify non-primitive values to a string attribute value. Otherwise\n * we return `undefined` for unsupported values.\n *\n * @param value - The value of the passed attribute.\n * @param useFallback - If true, unsupported values will be stringified to a string attribute value.\n *                      Defaults to false. In this case, `undefined` is returned for unsupported values.\n * @returns The typed attribute.\n */\nfunction attributeValueToTypedAttributeValue(\n  rawValue,\n  useFallback,\n) {\n  const { value, unit } = isAttributeObject(rawValue) ? rawValue : { value: rawValue, unit: undefined };\n  const attributeValue = getTypedAttributeValue(value);\n  const checkedUnit = unit && typeof unit === 'string' ? { unit } : {};\n  if (attributeValue) {\n    return { ...attributeValue, ...checkedUnit };\n  }\n\n  if (!useFallback || (useFallback === 'skip-undefined' && value === undefined)) {\n    return;\n  }\n\n  // Fallback: stringify the value\n  // TODO(v11): be smarter here and use String constructor if stringify fails\n  // (this is a breaking change for already existing attribute values)\n  let stringValue = '';\n  try {\n    stringValue = JSON.stringify(value) ?? '';\n  } catch {\n    // Do nothing\n  }\n  return {\n    value: stringValue,\n    type: 'string',\n    ...checkedUnit,\n  };\n}\n\n/**\n * Serializes raw attributes to typed attributes as expected in our envelopes.\n *\n * @param attributes The raw attributes to serialize.\n * @param fallback   If true, unsupported values will be stringified to a string attribute value.\n *                   Defaults to false. In this case, `undefined` is returned for unsupported values.\n *\n * @returns The serialized attributes.\n */\nfunction serializeAttributes(\n  attributes,\n  fallback = false,\n) {\n  const serializedAttributes = {};\n  for (const [key, value] of Object.entries(attributes ?? {})) {\n    const typedValue = attributeValueToTypedAttributeValue(value, fallback);\n    if (typedValue) {\n      serializedAttributes[key] = typedValue;\n    }\n  }\n  return serializedAttributes;\n}\n\n/**\n * NOTE: We intentionally do not return anything for non-primitive values:\n *  - array support will come in the future but if we stringify arrays now,\n *    sending arrays (unstringified) later will be a subtle breaking change.\n *  - Objects are not supported yet and product support is still TBD.\n *  - We still keep the type signature for TypedAttributeValue wider to avoid a\n *    breaking change once we add support for non-primitive values.\n *  - Once we go back to supporting arrays and stringifying all other values,\n *    we already implemented the serialization logic here:\n *    https://github.com/getsentry/sentry-javascript/pull/18165\n */\nfunction getTypedAttributeValue(value) {\n  const primitiveType =\n    typeof value === 'string'\n      ? 'string'\n      : typeof value === 'boolean'\n        ? 'boolean'\n        : typeof value === 'number' && !Number.isNaN(value)\n          ? Number.isInteger(value)\n            ? 'integer'\n            : 'double'\n          : null;\n  if (primitiveType) {\n    // @ts-expect-error - TS complains because {@link TypedAttributeValue} is strictly typed to\n    // avoid setting the wrong `type` on the attribute value.\n    // In this case, getPrimitiveType already does the check but TS doesn't know that.\n    // The \"clean\" alternative is to return an object per `typeof value` case\n    // but that would require more bundle size\n    // Therefore, we ignore it.\n    return { value, type: primitiveType };\n  }\n}\n\nexport { attributeValueToTypedAttributeValue, isAttributeObject, serializeAttributes };\n//# sourceMappingURL=attributes.js.map\n",
-    "const SEQUENCE_ATTR_KEY = 'sentry.timestamp.sequence';\n\nlet _sequenceNumber = 0;\nlet _previousTimestampMs;\n\n/**\n * Returns the `sentry.timestamp.sequence` attribute entry for a serialized telemetry item.\n *\n * The sequence number starts at 0 and increments by 1 for each item captured.\n * It resets to 0 when the current item's integer millisecond timestamp differs\n * from the previous item's integer millisecond timestamp.\n *\n * @param timestampInSeconds - The timestamp of the telemetry item in seconds.\n */\nfunction getSequenceAttribute(timestampInSeconds)\n\n {\n  const nowMs = Math.floor(timestampInSeconds * 1000);\n\n  if (_previousTimestampMs !== undefined && nowMs !== _previousTimestampMs) {\n    _sequenceNumber = 0;\n  }\n\n  const value = _sequenceNumber;\n  _sequenceNumber++;\n  _previousTimestampMs = nowMs;\n\n  return {\n    key: SEQUENCE_ATTR_KEY,\n    value: { value, type: 'integer' },\n  };\n}\n\nexport { getSequenceAttribute };\n//# sourceMappingURL=timestampSequence.js.map\n",
-    "import { withScope, getTraceContextFromScope } from '../currentScopes.js';\nimport { getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromScope } from '../tracing/dynamicSamplingContext.js';\nimport { getActiveSpan, spanToTraceContext } from './spanUtils.js';\n\n/** Extract trace information from scope */\nfunction _getTraceInfoFromScope(\n  client,\n  scope,\n) {\n  if (!scope) {\n    return [undefined, undefined];\n  }\n\n  return withScope(scope, () => {\n    const span = getActiveSpan();\n    const traceContext = span ? spanToTraceContext(span) : getTraceContextFromScope(scope);\n    const dynamicSamplingContext = span\n      ? getDynamicSamplingContextFromSpan(span)\n      : getDynamicSamplingContextFromScope(client, scope);\n    return [dynamicSamplingContext, traceContext];\n  });\n}\n\nexport { _getTraceInfoFromScope };\n//# sourceMappingURL=trace-info.js.map\n",
-    "import { dsnToString } from '../utils/dsn.js';\nimport { createEnvelope } from '../utils/envelope.js';\n\n/**\n * Creates a log container envelope item for a list of logs.\n *\n * @param items - The logs to include in the envelope.\n * @returns The created log container envelope item.\n */\nfunction createLogContainerEnvelopeItem(items) {\n  return [\n    {\n      type: 'log',\n      item_count: items.length,\n      content_type: 'application/vnd.sentry.items.log+json',\n    },\n    {\n      items,\n    },\n  ];\n}\n\n/**\n * Creates an envelope for a list of logs.\n *\n * Logs from multiple traces can be included in the same envelope.\n *\n * @param logs - The logs to include in the envelope.\n * @param metadata - The metadata to include in the envelope.\n * @param tunnel - The tunnel to include in the envelope.\n * @param dsn - The DSN to include in the envelope.\n * @returns The created envelope.\n */\nfunction createLogEnvelope(\n  logs,\n  metadata,\n  tunnel,\n  dsn,\n) {\n  const headers = {};\n\n  if (metadata?.sdk) {\n    headers.sdk = {\n      name: metadata.sdk.name,\n      version: metadata.sdk.version,\n    };\n  }\n\n  if (!!tunnel && !!dsn) {\n    headers.dsn = dsnToString(dsn);\n  }\n\n  return createEnvelope(headers, [createLogContainerEnvelopeItem(logs)]);\n}\n\nexport { createLogContainerEnvelopeItem, createLogEnvelope };\n//# sourceMappingURL=envelope.js.map\n",
-    "import { serializeAttributes } from '../attributes.js';\nimport { getGlobalSingleton } from '../carrier.js';\nimport { getClient, getIsolationScope, getCurrentScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { debug, consoleSandbox } from '../utils/debug-logger.js';\nimport { isParameterizedString } from '../utils/is.js';\nimport { getCombinedScopeData } from '../utils/scopeData.js';\nimport { _getSpanForScope } from '../utils/spanOnScope.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getSequenceAttribute } from '../utils/timestampSequence.js';\nimport { _getTraceInfoFromScope } from '../utils/trace-info.js';\nimport { SEVERITY_TEXT_TO_SEVERITY_NUMBER } from './constants.js';\nimport { createLogEnvelope } from './envelope.js';\n\nconst MAX_LOG_BUFFER_SIZE = 100;\n\n/**\n * Sets a log attribute if the value exists and the attribute key is not already present.\n *\n * @param logAttributes - The log attributes object to modify.\n * @param key - The attribute key to set.\n * @param value - The value to set (only sets if truthy and key not present).\n * @param setEvenIfPresent - Whether to set the attribute if it is present. Defaults to true.\n */\nfunction setLogAttribute(\n  logAttributes,\n  key,\n  value,\n  setEvenIfPresent = true,\n) {\n  if (value && (!logAttributes[key] || setEvenIfPresent)) {\n    logAttributes[key] = value;\n  }\n}\n\n/**\n * Captures a serialized log event and adds it to the log buffer for the given client.\n *\n * @param client - A client. Uses the current client if not provided.\n * @param serializedLog - The serialized log event to capture.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nfunction _INTERNAL_captureSerializedLog(client, serializedLog) {\n  const bufferMap = _getBufferMap();\n  const logBuffer = _INTERNAL_getLogBuffer(client);\n\n  if (logBuffer === undefined) {\n    bufferMap.set(client, [serializedLog]);\n  } else {\n    if (logBuffer.length >= MAX_LOG_BUFFER_SIZE) {\n      _INTERNAL_flushLogsBuffer(client, logBuffer);\n      bufferMap.set(client, [serializedLog]);\n    } else {\n      bufferMap.set(client, [...logBuffer, serializedLog]);\n    }\n  }\n}\n\n/**\n * Captures a log event and sends it to Sentry.\n *\n * @param log - The log event to capture.\n * @param scope - A scope. Uses the current scope if not provided.\n * @param client - A client. Uses the current client if not provided.\n * @param captureSerializedLog - A function to capture the serialized log.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nfunction _INTERNAL_captureLog(\n  beforeLog,\n  currentScope = getCurrentScope(),\n  captureSerializedLog = _INTERNAL_captureSerializedLog,\n) {\n  const client = currentScope?.getClient() ?? getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn('No client available to capture log.');\n    return;\n  }\n\n  const { release, environment, enableLogs = false, beforeSendLog } = client.getOptions();\n  if (!enableLogs) {\n    DEBUG_BUILD && debug.warn('logging option not enabled, log will not be captured.');\n    return;\n  }\n\n  const [, traceContext] = _getTraceInfoFromScope(client, currentScope);\n\n  const processedLogAttributes = {\n    ...beforeLog.attributes,\n  };\n\n  const {\n    user: { id, email, username },\n    attributes: scopeAttributes = {},\n  } = getCombinedScopeData(getIsolationScope(), currentScope);\n\n  setLogAttribute(processedLogAttributes, 'user.id', id, false);\n  setLogAttribute(processedLogAttributes, 'user.email', email, false);\n  setLogAttribute(processedLogAttributes, 'user.name', username, false);\n\n  setLogAttribute(processedLogAttributes, 'sentry.release', release);\n  setLogAttribute(processedLogAttributes, 'sentry.environment', environment);\n\n  const { name, version } = client.getSdkMetadata()?.sdk ?? {};\n  setLogAttribute(processedLogAttributes, 'sentry.sdk.name', name);\n  setLogAttribute(processedLogAttributes, 'sentry.sdk.version', version);\n\n  const replay = client.getIntegrationByName\n\n('Replay');\n\n  const replayId = replay?.getReplayId(true);\n  setLogAttribute(processedLogAttributes, 'sentry.replay_id', replayId);\n\n  if (replayId && replay?.getRecordingMode() === 'buffer') {\n    // We send this so we can identify cases where the replayId is attached but the replay itself might not have been sent to Sentry\n    setLogAttribute(processedLogAttributes, 'sentry._internal.replay_is_buffering', true);\n  }\n\n  const beforeLogMessage = beforeLog.message;\n  if (isParameterizedString(beforeLogMessage)) {\n    const { __sentry_template_string__, __sentry_template_values__ = [] } = beforeLogMessage;\n    if (__sentry_template_values__?.length) {\n      processedLogAttributes['sentry.message.template'] = __sentry_template_string__;\n    }\n    __sentry_template_values__.forEach((param, index) => {\n      processedLogAttributes[`sentry.message.parameter.${index}`] = param;\n    });\n  }\n\n  const span = _getSpanForScope(currentScope);\n  // Add the parent span ID to the log attributes for trace context\n  setLogAttribute(processedLogAttributes, 'sentry.trace.parent_span_id', span?.spanContext().spanId);\n\n  const processedLog = { ...beforeLog, attributes: processedLogAttributes };\n\n  client.emit('beforeCaptureLog', processedLog);\n\n  // We need to wrap this in `consoleSandbox` to avoid recursive calls to `beforeSendLog`\n  const log = beforeSendLog ? consoleSandbox(() => beforeSendLog(processedLog)) : processedLog;\n  if (!log) {\n    client.recordDroppedEvent('before_send', 'log_item', 1);\n    DEBUG_BUILD && debug.warn('beforeSendLog returned null, log will not be captured.');\n    return;\n  }\n\n  const { level, message, attributes: logAttributes = {}, severityNumber } = log;\n\n  const timestamp = timestampInSeconds();\n  const sequenceAttr = getSequenceAttribute(timestamp);\n\n  const serializedLog = {\n    timestamp,\n    level,\n    body: message,\n    trace_id: traceContext?.trace_id,\n    severity_number: severityNumber ?? SEVERITY_TEXT_TO_SEVERITY_NUMBER[level],\n    attributes: {\n      ...serializeAttributes(scopeAttributes),\n      ...serializeAttributes(logAttributes, true),\n      [sequenceAttr.key]: sequenceAttr.value,\n    },\n  };\n\n  captureSerializedLog(client, serializedLog);\n\n  client.emit('afterCaptureLog', log);\n}\n\n/**\n * Flushes the logs buffer to Sentry.\n *\n * @param client - A client.\n * @param maybeLogBuffer - A log buffer. Uses the log buffer for the given client if not provided.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nfunction _INTERNAL_flushLogsBuffer(client, maybeLogBuffer) {\n  const logBuffer = maybeLogBuffer ?? _INTERNAL_getLogBuffer(client) ?? [];\n  if (logBuffer.length === 0) {\n    return;\n  }\n\n  const clientOptions = client.getOptions();\n  const envelope = createLogEnvelope(logBuffer, clientOptions._metadata, clientOptions.tunnel, client.getDsn());\n\n  // Clear the log buffer after envelopes have been constructed.\n  _getBufferMap().set(client, []);\n\n  client.emit('flushLogs');\n\n  // sendEnvelope should not throw\n  // eslint-disable-next-line @typescript-eslint/no-floating-promises\n  client.sendEnvelope(envelope);\n}\n\n/**\n * Returns the log buffer for a given client.\n *\n * Exported for testing purposes.\n *\n * @param client - The client to get the log buffer for.\n * @returns The log buffer for the given client.\n */\nfunction _INTERNAL_getLogBuffer(client) {\n  return _getBufferMap().get(client);\n}\n\nfunction _getBufferMap() {\n  // The reference to the Client <> LogBuffer map is stored on the carrier to ensure it's always the same\n  return getGlobalSingleton('clientToLogBufferMap', () => new WeakMap());\n}\n\nexport { _INTERNAL_captureLog, _INTERNAL_captureSerializedLog, _INTERNAL_flushLogsBuffer, _INTERNAL_getLogBuffer };\n//# sourceMappingURL=internal.js.map\n",
-    "import { dsnToString } from '../utils/dsn.js';\nimport { createEnvelope } from '../utils/envelope.js';\n\n/**\n * Creates a metric container envelope item for a list of metrics.\n *\n * @param items - The metrics to include in the envelope.\n * @returns The created metric container envelope item.\n */\nfunction createMetricContainerEnvelopeItem(items) {\n  return [\n    {\n      type: 'trace_metric',\n      item_count: items.length,\n      content_type: 'application/vnd.sentry.items.trace-metric+json',\n    } ,\n    {\n      items,\n    },\n  ];\n}\n\n/**\n * Creates an envelope for a list of metrics.\n *\n * Metrics from multiple traces can be included in the same envelope.\n *\n * @param metrics - The metrics to include in the envelope.\n * @param metadata - The metadata to include in the envelope.\n * @param tunnel - The tunnel to include in the envelope.\n * @param dsn - The DSN to include in the envelope.\n * @returns The created envelope.\n */\nfunction createMetricEnvelope(\n  metrics,\n  metadata,\n  tunnel,\n  dsn,\n) {\n  const headers = {};\n\n  if (metadata?.sdk) {\n    headers.sdk = {\n      name: metadata.sdk.name,\n      version: metadata.sdk.version,\n    };\n  }\n\n  if (!!tunnel && !!dsn) {\n    headers.dsn = dsnToString(dsn);\n  }\n\n  return createEnvelope(headers, [createMetricContainerEnvelopeItem(metrics)]);\n}\n\nexport { createMetricContainerEnvelopeItem, createMetricEnvelope };\n//# sourceMappingURL=envelope.js.map\n",
-    "import { serializeAttributes } from '../attributes.js';\nimport { getGlobalSingleton } from '../carrier.js';\nimport { getCurrentScope, getClient, getIsolationScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getCombinedScopeData } from '../utils/scopeData.js';\nimport { _getSpanForScope } from '../utils/spanOnScope.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getSequenceAttribute } from '../utils/timestampSequence.js';\nimport { _getTraceInfoFromScope } from '../utils/trace-info.js';\nimport { createMetricEnvelope } from './envelope.js';\n\nconst MAX_METRIC_BUFFER_SIZE = 1000;\n\n/**\n * Sets a metric attribute if the value exists and the attribute key is not already present.\n *\n * @param metricAttributes - The metric attributes object to modify.\n * @param key - The attribute key to set.\n * @param value - The value to set (only sets if truthy and key not present).\n * @param setEvenIfPresent - Whether to set the attribute if it is present. Defaults to true.\n */\nfunction setMetricAttribute(\n  metricAttributes,\n  key,\n  value,\n  setEvenIfPresent = true,\n) {\n  if (value && (setEvenIfPresent || !(key in metricAttributes))) {\n    metricAttributes[key] = value;\n  }\n}\n\n/**\n * Captures a serialized metric event and adds it to the metric buffer for the given client.\n *\n * @param client - A client. Uses the current client if not provided.\n * @param serializedMetric - The serialized metric event to capture.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nfunction _INTERNAL_captureSerializedMetric(client, serializedMetric) {\n  const bufferMap = _getBufferMap();\n  const metricBuffer = _INTERNAL_getMetricBuffer(client);\n\n  if (metricBuffer === undefined) {\n    bufferMap.set(client, [serializedMetric]);\n  } else {\n    if (metricBuffer.length >= MAX_METRIC_BUFFER_SIZE) {\n      _INTERNAL_flushMetricsBuffer(client, metricBuffer);\n      bufferMap.set(client, [serializedMetric]);\n    } else {\n      bufferMap.set(client, [...metricBuffer, serializedMetric]);\n    }\n  }\n}\n\n/**\n * Options for capturing a metric internally.\n */\n\n/**\n * Enriches metric with all contextual attributes (user, SDK metadata, replay, etc.)\n */\nfunction _enrichMetricAttributes(beforeMetric, client, user) {\n  const { release, environment } = client.getOptions();\n\n  const processedMetricAttributes = {\n    ...beforeMetric.attributes,\n  };\n\n  // Add user attributes\n  setMetricAttribute(processedMetricAttributes, 'user.id', user.id, false);\n  setMetricAttribute(processedMetricAttributes, 'user.email', user.email, false);\n  setMetricAttribute(processedMetricAttributes, 'user.name', user.username, false);\n\n  // Add Sentry metadata\n  setMetricAttribute(processedMetricAttributes, 'sentry.release', release);\n  setMetricAttribute(processedMetricAttributes, 'sentry.environment', environment);\n\n  // Add SDK metadata\n  const { name, version } = client.getSdkMetadata()?.sdk ?? {};\n  setMetricAttribute(processedMetricAttributes, 'sentry.sdk.name', name);\n  setMetricAttribute(processedMetricAttributes, 'sentry.sdk.version', version);\n\n  // Add replay metadata\n  const replay = client.getIntegrationByName\n\n('Replay');\n\n  const replayId = replay?.getReplayId(true);\n  setMetricAttribute(processedMetricAttributes, 'sentry.replay_id', replayId);\n\n  if (replayId && replay?.getRecordingMode() === 'buffer') {\n    setMetricAttribute(processedMetricAttributes, 'sentry._internal.replay_is_buffering', true);\n  }\n\n  return {\n    ...beforeMetric,\n    attributes: processedMetricAttributes,\n  };\n}\n\n/**\n * Creates a serialized metric ready to be sent to Sentry.\n */\nfunction _buildSerializedMetric(\n  metric,\n  client,\n  currentScope,\n  scopeAttributes,\n) {\n  // Get trace context\n  const [, traceContext] = _getTraceInfoFromScope(client, currentScope);\n  const span = _getSpanForScope(currentScope);\n  const traceId = span ? span.spanContext().traceId : traceContext?.trace_id;\n  const spanId = span ? span.spanContext().spanId : undefined;\n\n  const timestamp = timestampInSeconds();\n  const sequenceAttr = getSequenceAttribute(timestamp);\n\n  return {\n    timestamp,\n    trace_id: traceId ?? '',\n    span_id: spanId,\n    name: metric.name,\n    type: metric.type,\n    unit: metric.unit,\n    value: metric.value,\n    attributes: {\n      ...serializeAttributes(scopeAttributes),\n      ...serializeAttributes(metric.attributes, 'skip-undefined'),\n      [sequenceAttr.key]: sequenceAttr.value,\n    },\n  };\n}\n\n/**\n * Captures a metric event and sends it to Sentry.\n *\n * @param metric - The metric event to capture.\n * @param options - Options for capturing the metric.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nfunction _INTERNAL_captureMetric(beforeMetric, options) {\n  const currentScope = options?.scope ?? getCurrentScope();\n  const captureSerializedMetric = options?.captureSerializedMetric ?? _INTERNAL_captureSerializedMetric;\n  const client = currentScope?.getClient() ?? getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn('No client available to capture metric.');\n    return;\n  }\n\n  const { _experiments, enableMetrics, beforeSendMetric } = client.getOptions();\n\n  // todo(v11): Remove the experimental flag\n  // eslint-disable-next-line deprecation/deprecation\n  const metricsEnabled = enableMetrics ?? _experiments?.enableMetrics ?? true;\n\n  if (!metricsEnabled) {\n    DEBUG_BUILD && debug.warn('metrics option not enabled, metric will not be captured.');\n    return;\n  }\n\n  // Enrich metric with contextual attributes\n  const { user, attributes: scopeAttributes } = getCombinedScopeData(getIsolationScope(), currentScope);\n  const enrichedMetric = _enrichMetricAttributes(beforeMetric, client, user);\n\n  client.emit('processMetric', enrichedMetric);\n\n  // todo(v11): Remove the experimental `beforeSendMetric`\n  // eslint-disable-next-line deprecation/deprecation\n  const beforeSendCallback = beforeSendMetric || _experiments?.beforeSendMetric;\n  const processedMetric = beforeSendCallback ? beforeSendCallback(enrichedMetric) : enrichedMetric;\n\n  if (!processedMetric) {\n    DEBUG_BUILD && debug.log('`beforeSendMetric` returned `null`, will not send metric.');\n    return;\n  }\n\n  const serializedMetric = _buildSerializedMetric(processedMetric, client, currentScope, scopeAttributes);\n\n  DEBUG_BUILD && debug.log('[Metric]', serializedMetric);\n\n  captureSerializedMetric(client, serializedMetric);\n\n  client.emit('afterCaptureMetric', processedMetric);\n}\n\n/**\n * Flushes the metrics buffer to Sentry.\n *\n * @param client - A client.\n * @param maybeMetricBuffer - A metric buffer. Uses the metric buffer for the given client if not provided.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nfunction _INTERNAL_flushMetricsBuffer(client, maybeMetricBuffer) {\n  const metricBuffer = maybeMetricBuffer ?? _INTERNAL_getMetricBuffer(client) ?? [];\n  if (metricBuffer.length === 0) {\n    return;\n  }\n\n  const clientOptions = client.getOptions();\n  const envelope = createMetricEnvelope(metricBuffer, clientOptions._metadata, clientOptions.tunnel, client.getDsn());\n\n  // Clear the metric buffer after envelopes have been constructed.\n  _getBufferMap().set(client, []);\n\n  client.emit('flushMetrics');\n\n  // sendEnvelope should not throw\n  // eslint-disable-next-line @typescript-eslint/no-floating-promises\n  client.sendEnvelope(envelope);\n}\n\n/**\n * Returns the metric buffer for a given client.\n *\n * Exported for testing purposes.\n *\n * @param client - The client to get the metric buffer for.\n * @returns The metric buffer for the given client.\n */\nfunction _INTERNAL_getMetricBuffer(client) {\n  return _getBufferMap().get(client);\n}\n\nfunction _getBufferMap() {\n  // The reference to the Client <> MetricBuffer map is stored on the carrier to ensure it's always the same\n  return getGlobalSingleton('clientToMetricBufferMap', () => new WeakMap());\n}\n\nexport { _INTERNAL_captureMetric, _INTERNAL_captureSerializedMetric, _INTERNAL_flushMetricsBuffer, _INTERNAL_getMetricBuffer };\n//# sourceMappingURL=internal.js.map\n",
-    "/**\n * Calls `unref` on a timer, if the method is available on @param timer.\n *\n * `unref()` is used to allow processes to exit immediately, even if the timer\n * is still running and hasn't resolved yet.\n *\n * Use this in places where code can run on browser or server, since browsers\n * do not support `unref`.\n */\nfunction safeUnref(timer) {\n  if (typeof timer === 'object' && typeof timer.unref === 'function') {\n    timer.unref();\n  }\n  return timer;\n}\n\nexport { safeUnref };\n//# sourceMappingURL=timer.js.map\n",
-    "import { resolvedSyncPromise, rejectedSyncPromise } from './syncpromise.js';\nimport { safeUnref } from './timer.js';\n\nconst SENTRY_BUFFER_FULL_ERROR = Symbol.for('SentryBufferFullError');\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nfunction makePromiseBuffer(limit = 100) {\n  const buffer = new Set();\n\n  function isReady() {\n    return buffer.size < limit;\n  }\n\n  /**\n   * Remove a promise from the queue.\n   *\n   * @param task Can be any PromiseLike\n   * @returns Removed promise.\n   */\n  function remove(task) {\n    buffer.delete(task);\n  }\n\n  /**\n   * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n   *\n   * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n   *        PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n   *        functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n   *        requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n   *        limit check.\n   * @returns The original promise.\n   */\n  function add(taskProducer) {\n    if (!isReady()) {\n      return rejectedSyncPromise(SENTRY_BUFFER_FULL_ERROR);\n    }\n\n    // start the task and add its promise to the queue\n    const task = taskProducer();\n    buffer.add(task);\n    void task.then(\n      () => remove(task),\n      () => remove(task),\n    );\n    return task;\n  }\n\n  /**\n   * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n   *\n   * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n   * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n   * `true`.\n   * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n   * `false` otherwise\n   */\n  function drain(timeout) {\n    if (!buffer.size) {\n      return resolvedSyncPromise(true);\n    }\n\n    // We want to resolve even if one of the promises rejects\n    const drainPromise = Promise.allSettled(Array.from(buffer)).then(() => true);\n\n    if (!timeout) {\n      return drainPromise;\n    }\n\n    const promises = [\n      drainPromise,\n      new Promise(resolve => safeUnref(setTimeout(() => resolve(false), timeout))),\n    ];\n\n    return Promise.race(promises);\n  }\n\n  return {\n    get $() {\n      return Array.from(buffer);\n    },\n    add,\n    drain,\n  };\n}\n\nexport { SENTRY_BUFFER_FULL_ERROR, makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n",
-    "import { safeDateNow } from './randomSafeContext.js';\n\n// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\n\nconst DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nfunction parseRetryAfterHeader(header, now = safeDateNow()) {\n  const headerDelay = parseInt(`${header}`, 10);\n  if (!isNaN(headerDelay)) {\n    return headerDelay * 1000;\n  }\n\n  const headerDate = Date.parse(`${header}`);\n  if (!isNaN(headerDate)) {\n    return headerDate - now;\n  }\n\n  return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that the given category is disabled until for rate limiting.\n * In case no category-specific limit is set but a general rate limit across all categories is active,\n * that time is returned.\n *\n * @return the time in ms that the category is disabled until or 0 if there's no active rate limit.\n */\nfunction disabledUntil(limits, dataCategory) {\n  return limits[dataCategory] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nfunction isRateLimited(limits, dataCategory, now = safeDateNow()) {\n  return disabledUntil(limits, dataCategory) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n *\n * @return the updated RateLimits object.\n */\nfunction updateRateLimits(\n  limits,\n  { statusCode, headers },\n  now = safeDateNow(),\n) {\n  const updatedRateLimits = {\n    ...limits,\n  };\n\n  // \"The name is case-insensitive.\"\n  // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n  const rateLimitHeader = headers?.['x-sentry-rate-limits'];\n  const retryAfterHeader = headers?.['retry-after'];\n\n  if (rateLimitHeader) {\n    /**\n     * rate limit headers are of the form\n     *     
,
,..\n * where each
is of the form\n * : : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n * Semicolon-separated list of metric namespace identifiers. Defines which namespace(s) will be affected.\n * Only present if rate limit applies to the metric_bucket data category.\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories, , , namespaces] = limit.split(':', 5) ;\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n if (category === 'metric_bucket') {\n // namespaces will be present when category === 'metric_bucket'\n if (!namespaces || namespaces.split(';').includes('custom')) {\n updatedRateLimits[category] = now + delay;\n }\n } else {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n", - "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { forEachEnvelopeItem, envelopeItemTypeToDataCategory, createEnvelope, serializeEnvelope, envelopeContainsItemType } from '../utils/envelope.js';\nimport { makePromiseBuffer, SENTRY_BUFFER_FULL_ERROR } from '../utils/promisebuffer.js';\nimport { isRateLimited, updateRateLimits } from '../utils/ratelimit.js';\n\nconst DEFAULT_TRANSPORT_BUFFER_SIZE = 64;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nfunction createTransport(\n options,\n makeRequest,\n buffer = makePromiseBuffer(\n options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE,\n ),\n) {\n let rateLimits = {};\n const flush = (timeout) => buffer.drain(timeout);\n\n function send(envelope) {\n const filteredEnvelopeItems = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n const dataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, dataCategory)) {\n options.recordDroppedEvent('ratelimit_backoff', dataCategory);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return Promise.resolve({});\n }\n\n const filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems );\n\n // Creates client report for each item in an envelope\n const recordEnvelopeLoss = (reason) => {\n // Don't record outcomes for client reports - we don't want to create a feedback loop if client reports themselves fail to send\n if (envelopeContainsItemType(filteredEnvelope, ['client_report'])) {\n DEBUG_BUILD && debug.warn(`Dropping client report. Will not send outcomes (reason: ${reason}).`);\n return;\n }\n forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n });\n };\n\n const requestTask = () =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope) }).then(\n response => {\n // Handle 413 Content Too Large\n // Loss of envelope content is expected so we record a send_error client report\n // https://develop.sentry.dev/sdk/expected-features/#dealing-with-network-failures\n if (response.statusCode === 413) {\n DEBUG_BUILD &&\n debug.error(\n 'Sentry responded with status code 413. Envelope was discarded due to exceeding size limits.',\n );\n recordEnvelopeLoss('send_error');\n return response;\n }\n\n // We don't want to throw on NOK responses, but we want to at least log them\n if (\n DEBUG_BUILD &&\n response.statusCode !== undefined &&\n (response.statusCode < 200 || response.statusCode >= 300)\n ) {\n debug.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n return response;\n },\n error => {\n recordEnvelopeLoss('network_error');\n DEBUG_BUILD && debug.error('Encountered error running transport request:', error);\n throw error;\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error === SENTRY_BUFFER_FULL_ERROR) {\n DEBUG_BUILD && debug.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return Promise.resolve({});\n } else {\n throw error;\n }\n },\n );\n }\n\n return {\n send,\n flush,\n };\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n", - "import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nfunction createClientReportEnvelope(\n discarded_events,\n dsn,\n timestamp,\n) {\n const clientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n", - "/**\n * Get a list of possible event messages from a Sentry event.\n */\nfunction getPossibleEventMessages(event) {\n const possibleMessages = [];\n\n if (event.message) {\n possibleMessages.push(event.message);\n }\n\n try {\n // @ts-expect-error Try catching to save bundle size\n const lastException = event.exception.values[event.exception.values.length - 1];\n if (lastException?.value) {\n possibleMessages.push(lastException.value);\n if (lastException.type) {\n possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n }\n }\n } catch {\n // ignore errors here\n }\n\n return possibleMessages;\n}\n\nexport { getPossibleEventMessages };\n//# sourceMappingURL=eventUtils.js.map\n", - "import { SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_PROFILE_ID } from '../semanticAttributes.js';\n\n/**\n * Converts a transaction event to a span JSON object.\n */\nfunction convertTransactionEventToSpanJson(event) {\n const { trace_id, parent_span_id, span_id, status, origin, data, op } = event.contexts?.trace ?? {};\n\n return {\n data: data ?? {},\n description: event.transaction,\n op,\n parent_span_id,\n span_id: span_id ?? '',\n start_timestamp: event.start_timestamp ?? 0,\n status,\n timestamp: event.timestamp,\n trace_id: trace_id ?? '',\n origin,\n profile_id: data?.[SEMANTIC_ATTRIBUTE_PROFILE_ID] ,\n exclusive_time: data?.[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME] ,\n measurements: event.measurements,\n is_segment: true,\n };\n}\n\n/**\n * Converts a span JSON object to a transaction event.\n */\nfunction convertSpanJsonToTransactionEvent(span) {\n return {\n type: 'transaction',\n timestamp: span.timestamp,\n start_timestamp: span.start_timestamp,\n transaction: span.description,\n contexts: {\n trace: {\n trace_id: span.trace_id,\n span_id: span.span_id,\n parent_span_id: span.parent_span_id,\n op: span.op,\n status: span.status,\n origin: span.origin,\n data: {\n ...span.data,\n ...(span.profile_id && { [SEMANTIC_ATTRIBUTE_PROFILE_ID]: span.profile_id }),\n ...(span.exclusive_time && { [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: span.exclusive_time }),\n },\n },\n },\n measurements: span.measurements,\n };\n}\n\nexport { convertSpanJsonToTransactionEvent, convertTransactionEventToSpanJson };\n//# sourceMappingURL=transactionEvent.js.map\n", - "import { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { DEFAULT_ENVIRONMENT } from './constants.js';\nimport { getTraceContextFromScope, getCurrentScope, getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegration, afterSetupIntegrations, setupIntegrations } from './integration.js';\nimport { _INTERNAL_flushLogsBuffer } from './logs/internal.js';\nimport { _INTERNAL_flushMetricsBuffer } from './metrics/internal.js';\nimport { updateSession } from './session.js';\nimport { getDynamicSamplingContextFromScope } from './tracing/dynamicSamplingContext.js';\nimport { DEFAULT_TRANSPORT_BUFFER_SIZE } from './transports/base.js';\nimport { createClientReportEnvelope } from './utils/clientreport.js';\nimport { debug } from './utils/debug-logger.js';\nimport { makeDsn, dsnToString } from './utils/dsn.js';\nimport { addItemToEnvelope, createAttachmentEnvelopeItem } from './utils/envelope.js';\nimport { getPossibleEventMessages } from './utils/eventUtils.js';\nimport { isParameterizedString, isPrimitive, isThenable, isPlainObject } from './utils/is.js';\nimport { merge } from './utils/merge.js';\nimport { uuid4, checkOrSetAlreadyCaught } from './utils/misc.js';\nimport { parseSampleRate } from './utils/parseSampleRate.js';\nimport { prepareEvent } from './utils/prepareEvent.js';\nimport { makePromiseBuffer, SENTRY_BUFFER_FULL_ERROR } from './utils/promisebuffer.js';\nimport { safeMathRandom } from './utils/randomSafeContext.js';\nimport { shouldIgnoreSpan, reparentChildSpans } from './utils/should-ignore-span.js';\nimport { showSpanDropWarning } from './utils/spanUtils.js';\nimport { rejectedSyncPromise } from './utils/syncpromise.js';\nimport { safeUnref } from './utils/timer.js';\nimport { convertTransactionEventToSpanJson, convertSpanJsonToTransactionEvent } from './utils/transactionEvent.js';\n\n/* eslint-disable max-lines */\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\nconst MISSING_RELEASE_FOR_SESSION_ERROR = 'Discarded session because of missing or non-string release';\n\nconst INTERNAL_ERROR_SYMBOL = Symbol.for('SentryInternalError');\nconst DO_NOT_SEND_EVENT_SYMBOL = Symbol.for('SentryDoNotSendEventError');\n\n// Default interval for flushing logs and metrics (5 seconds)\nconst DEFAULT_FLUSH_INTERVAL = 5000;\n\nfunction _makeInternalError(message) {\n return {\n message,\n [INTERNAL_ERROR_SYMBOL]: true,\n };\n}\n\nfunction _makeDoNotSendEventError(message) {\n return {\n message,\n [DO_NOT_SEND_EVENT_SYMBOL]: true,\n };\n}\n\nfunction _isInternalError(error) {\n return !!error && typeof error === 'object' && INTERNAL_ERROR_SYMBOL in error;\n}\n\nfunction _isDoNotSendEventError(error) {\n return !!error && typeof error === 'object' && DO_NOT_SEND_EVENT_SYMBOL in error;\n}\n\n/**\n * Sets up weight-based flushing for logs or metrics.\n * This helper function encapsulates the common pattern of:\n * 1. Tracking accumulated weight of items\n * 2. Flushing when weight exceeds threshold (800KB)\n * 3. Flushing after timeout period from the first item\n *\n * Uses closure variables to track weight and timeout state.\n */\nfunction setupWeightBasedFlushing\n\n(\n client,\n afterCaptureHook,\n flushHook,\n estimateSizeFn,\n flushFn,\n) {\n // Track weight and timeout in closure variables\n let weight = 0;\n let flushTimeout;\n let isTimerActive = false;\n\n // @ts-expect-error - TypeScript can't narrow generic hook types to match specific overloads, but we know this is type-safe\n client.on(flushHook, () => {\n weight = 0;\n clearTimeout(flushTimeout);\n isTimerActive = false;\n });\n\n // @ts-expect-error - TypeScript can't narrow generic hook types to match specific overloads, but we know this is type-safe\n client.on(afterCaptureHook, (item) => {\n weight += estimateSizeFn(item);\n\n // We flush the buffer if it exceeds 0.8 MB\n // The weight is a rough estimate, so we flush way before the payload gets too big.\n if (weight >= 800000) {\n flushFn(client);\n } else if (!isTimerActive) {\n // Only start timer if one isn't already running.\n // This prevents flushing being delayed by items that arrive close to the timeout limit\n // and thus resetting the flushing timeout and delaying items being flushed.\n isTimerActive = true;\n // Use safeUnref so the timer doesn't prevent the process from exiting\n flushTimeout = safeUnref(\n setTimeout(() => {\n flushFn(client);\n // Note: isTimerActive is reset by the flushHook handler above, not here,\n // to avoid race conditions when new items arrive during the flush.\n }, DEFAULT_FLUSH_INTERVAL),\n );\n }\n });\n\n client.on('flush', () => {\n flushFn(client);\n });\n}\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link Client._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends Client {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nclass Client {\n /** Options passed to the SDK. */\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n\n /** Array of set up integrations. */\n\n /** Number of calls being processed */\n\n /** Holds flushable */\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {\n this._options = options;\n this._integrations = {};\n this._numProcessing = 0;\n this._outcomes = {};\n this._hooks = {};\n this._eventProcessors = [];\n this._promiseBuffer = makePromiseBuffer(options.transportOptions?.bufferSize ?? DEFAULT_TRANSPORT_BUFFER_SIZE);\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n } else {\n DEBUG_BUILD && debug.warn('No DSN provided, client will not send events.');\n }\n\n if (this._dsn) {\n const url = getEnvelopeEndpointWithUrlEncodedAuth(\n this._dsn,\n options.tunnel,\n options._metadata ? options._metadata.sdk : undefined,\n );\n this._transport = options.transport({\n tunnel: this._options.tunnel,\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n }\n\n // Backfill enableLogs option from _experiments.enableLogs\n // TODO(v11): Remove or change default value\n // eslint-disable-next-line deprecation/deprecation\n this._options.enableLogs = this._options.enableLogs ?? this._options._experiments?.enableLogs;\n\n // Setup log flushing with weight and timeout tracking\n if (this._options.enableLogs) {\n setupWeightBasedFlushing(this, 'afterCaptureLog', 'flushLogs', estimateLogSizeInBytes, _INTERNAL_flushLogsBuffer);\n }\n\n // todo(v11): Remove the experimental flag\n // eslint-disable-next-line deprecation/deprecation\n const enableMetrics = this._options.enableMetrics ?? this._options._experiments?.enableMetrics ?? true;\n\n // Setup metric flushing with weight and timeout tracking\n if (enableMetrics) {\n setupWeightBasedFlushing(\n this,\n 'afterCaptureMetric',\n 'flushMetrics',\n estimateMetricSizeInBytes,\n _INTERNAL_flushMetricsBuffer,\n );\n }\n }\n\n /**\n * Captures an exception event and sends it to Sentry.\n *\n * Unlike `captureException` exported from every SDK, this method requires that you pass it the current scope.\n */\n captureException(exception, hint, scope) {\n const eventId = uuid4();\n\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n\n const hintWithEventId = {\n event_id: eventId,\n ...hint,\n };\n\n this._process(\n () =>\n this.eventFromException(exception, hintWithEventId)\n .then(event => this._captureEvent(event, hintWithEventId, scope))\n .then(res => res),\n 'error',\n );\n\n return hintWithEventId.event_id;\n }\n\n /**\n * Captures a message event and sends it to Sentry.\n *\n * Unlike `captureMessage` exported from every SDK, this method requires that you pass it the current scope.\n */\n captureMessage(\n message,\n level,\n hint,\n currentScope,\n ) {\n const hintWithEventId = {\n event_id: uuid4(),\n ...hint,\n };\n\n const eventMessage = isParameterizedString(message) ? message : String(message);\n const isMessage = isPrimitive(message);\n const promisedEvent = isMessage\n ? this.eventFromMessage(eventMessage, level, hintWithEventId)\n : this.eventFromException(message, hintWithEventId);\n\n this._process(\n () => promisedEvent.then(event => this._captureEvent(event, hintWithEventId, currentScope)),\n isMessage ? 'unknown' : 'error',\n );\n\n return hintWithEventId.event_id;\n }\n\n /**\n * Captures a manually created event and sends it to Sentry.\n *\n * Unlike `captureEvent` exported from every SDK, this method requires that you pass it the current scope.\n */\n captureEvent(event, hint, currentScope) {\n const eventId = uuid4();\n\n // ensure we haven't captured this very object before\n if (hint?.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n\n const hintWithEventId = {\n event_id: eventId,\n ...hint,\n };\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanScope = sdkProcessingMetadata.capturedSpanScope;\n const capturedSpanIsolationScope = sdkProcessingMetadata.capturedSpanIsolationScope;\n const dataCategory = getDataCategoryByType(event.type);\n\n this._process(\n () => this._captureEvent(event, hintWithEventId, capturedSpanScope || currentScope, capturedSpanIsolationScope),\n dataCategory,\n );\n\n return hintWithEventId.event_id;\n }\n\n /**\n * Captures a session.\n */\n captureSession(session) {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n\n /**\n * Create a cron monitor check in and send it to Sentry. This method is not available on all clients.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n * @param scope An optional scope containing event metadata.\n * @returns A string representing the id of the check in.\n */\n\n /**\n * Get the current Dsn.\n */\n getDsn() {\n return this._dsn;\n }\n\n /**\n * Get the current options.\n */\n getOptions() {\n return this._options;\n }\n\n /**\n * Get the SDK metadata.\n * @see SdkMetadata\n */\n getSdkMetadata() {\n return this._options._metadata;\n }\n\n /**\n * Returns the transport that is used by the client.\n * Please note that the transport gets lazy initialized so it will only be there once the first event has been sent.\n */\n getTransport() {\n return this._transport;\n }\n\n /**\n * Wait for all events to be sent or the timeout to expire, whichever comes first.\n *\n * @param timeout Maximum time in ms the client should wait for events to be flushed. Omitting this parameter will\n * cause the client to wait until all events are sent before resolving the promise.\n * @returns A promise that will resolve with `true` if all events are sent before the timeout, or `false` if there are\n * still events in the queue when the timeout is reached.\n */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async flush(timeout) {\n const transport = this._transport;\n if (!transport) {\n return true;\n }\n\n this.emit('flush');\n\n const clientFinished = await this._isClientDoneProcessing(timeout);\n const transportFlushed = await transport.flush(timeout);\n\n return clientFinished && transportFlushed;\n }\n\n /**\n * Flush the event queue and set the client to `enabled = false`. See {@link Client.flush}.\n *\n * @param {number} timeout Maximum time in ms the client should wait before shutting down. Omitting this parameter will cause\n * the client to wait until all events are sent before disabling itself.\n * @returns {Promise} A promise which resolves to `true` if the flush completes successfully before the timeout, or `false` if\n * it doesn't.\n */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async close(timeout) {\n _INTERNAL_flushLogsBuffer(this);\n const result = await this.flush(timeout);\n this.getOptions().enabled = false;\n this.emit('close');\n return result;\n }\n\n /**\n * Get all installed event processors.\n */\n getEventProcessors() {\n return this._eventProcessors;\n }\n\n /**\n * Adds an event processor that applies to any event processed by this client.\n */\n addEventProcessor(eventProcessor) {\n this._eventProcessors.push(eventProcessor);\n }\n\n /**\n * Initialize this client.\n * Call this after the client was set on a scope.\n */\n init() {\n if (\n this._isEnabled() ||\n // Force integrations to be setup even if no DSN was set when we have\n // Spotlight enabled. This is particularly important for browser as we\n // don't support the `spotlight` option there and rely on the users\n // adding the `spotlightBrowserIntegration()` to their integrations which\n // wouldn't get initialized with the check below when there's no DSN set.\n this._options.integrations.some(({ name }) => name.startsWith('Spotlight'))\n ) {\n this._setupIntegrations();\n }\n }\n\n /**\n * Gets an installed integration by its name.\n *\n * @returns {Integration|undefined} The installed integration or `undefined` if no integration with that `name` was installed.\n */\n getIntegrationByName(integrationName) {\n return this._integrations[integrationName] ;\n }\n\n /**\n * Add an integration to the client.\n * This can be used to e.g. lazy load integrations.\n * In most cases, this should not be necessary,\n * and you're better off just passing the integrations via `integrations: []` at initialization time.\n * However, if you find the need to conditionally load & add an integration, you can use `addIntegration` to do so.\n */\n addIntegration(integration) {\n const isAlreadyInstalled = this._integrations[integration.name];\n\n // This hook takes care of only installing if not already installed\n setupIntegration(this, integration, this._integrations);\n // Here we need to check manually to make sure to not run this multiple times\n if (!isAlreadyInstalled) {\n afterSetupIntegrations(this, [integration]);\n }\n }\n\n /**\n * Send a fully prepared event to Sentry.\n */\n sendEvent(event, hint = {}) {\n this.emit('beforeSendEvent', event, hint);\n\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(env, createAttachmentEnvelopeItem(attachment));\n }\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(env).then(sendResponse => this.emit('afterSendEvent', event, sendResponse));\n }\n\n /**\n * Send a session or session aggregrates to Sentry.\n */\n sendSession(session) {\n // Backfill release and environment on session\n const { release: clientReleaseOption, environment: clientEnvironmentOption = DEFAULT_ENVIRONMENT } = this._options;\n if ('aggregates' in session) {\n const sessionAttrs = session.attrs || {};\n if (!sessionAttrs.release && !clientReleaseOption) {\n DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n return;\n }\n sessionAttrs.release = sessionAttrs.release || clientReleaseOption;\n sessionAttrs.environment = sessionAttrs.environment || clientEnvironmentOption;\n session.attrs = sessionAttrs;\n } else {\n if (!session.release && !clientReleaseOption) {\n DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n return;\n }\n session.release = session.release || clientReleaseOption;\n session.environment = session.environment || clientEnvironmentOption;\n }\n\n this.emit('beforeSendSession', session);\n\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(env);\n }\n\n /**\n * Record on the client that an event got dropped (ie, an event that will not be sent to Sentry).\n */\n recordDroppedEvent(reason, category, count = 1) {\n if (this._options.sendClientReports) {\n // We want to track each category (error, transaction, session, replay_event) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n DEBUG_BUILD && debug.log(`Recording outcome: \"${key}\"${count > 1 ? ` (${count} times)` : ''}`);\n this._outcomes[key] = (this._outcomes[key] || 0) + count;\n }\n }\n\n /* eslint-disable @typescript-eslint/unified-signatures */\n /**\n * Register a callback for whenever a span is started.\n * Receives the span as argument.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n\n /**\n * Register a hook on this client.\n */\n on(hook, callback) {\n const hookCallbacks = (this._hooks[hook] = this._hooks[hook] || new Set());\n\n // Wrap the callback in a function so that registering the same callback instance multiple\n // times results in the callback being called multiple times.\n // @ts-expect-error - The `callback` type is correct and must be a function due to the\n // individual, specific overloads of this function.\n // eslint-disable-next-line @typescript-eslint/ban-types\n const uniqueCallback = (...args) => callback(...args);\n\n hookCallbacks.add(uniqueCallback);\n\n // This function returns a callback execution handler that, when invoked,\n // deregisters a callback. This is crucial for managing instances where callbacks\n // need to be unregistered to prevent self-referencing in callback closures,\n // ensuring proper garbage collection.\n return () => {\n hookCallbacks.delete(uniqueCallback);\n };\n }\n\n /** Fire a hook whenever a span starts. */\n\n /**\n * Emit a hook that was previously registered via `on()`.\n */\n emit(hook, ...rest) {\n const callbacks = this._hooks[hook];\n if (callbacks) {\n callbacks.forEach(callback => callback(...rest));\n }\n }\n\n /**\n * Send an envelope to Sentry.\n */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async sendEnvelope(envelope) {\n this.emit('beforeEnvelope', envelope);\n\n if (this._isEnabled() && this._transport) {\n try {\n return await this._transport.send(envelope);\n } catch (reason) {\n DEBUG_BUILD && debug.error('Error while sending envelope:', reason);\n return {};\n }\n }\n\n DEBUG_BUILD && debug.error('Transport disabled');\n return {};\n }\n\n /**\n * Disposes of the client and releases all resources.\n *\n * Subclasses should override this method to clean up their own resources.\n * After calling dispose(), the client should not be used anymore.\n */\n dispose() {\n // Base class has no cleanup logic - subclasses implement their own\n }\n\n /* eslint-enable @typescript-eslint/unified-signatures */\n\n /** Setup integrations for this client. */\n _setupIntegrations() {\n const { integrations } = this._options;\n this._integrations = setupIntegrations(this, integrations);\n afterSetupIntegrations(this, integrations);\n }\n\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n // initially, set `crashed` based on the event level and update from exceptions if there are any later on\n let crashed = event.level === 'fatal';\n let errored = false;\n const exceptions = event.exception?.values;\n\n if (exceptions) {\n errored = true;\n // reset crashed to false if there are exceptions, to ensure `mechanism.handled` is respected.\n crashed = false;\n\n for (const ex of exceptions) {\n if (ex.mechanism?.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n async _isClientDoneProcessing(timeout) {\n let ticked = 0;\n\n while (!timeout || ticked < timeout) {\n await new Promise(resolve => setTimeout(resolve, 1));\n\n if (!this._numProcessing) {\n return true;\n }\n ticked++;\n }\n\n return false;\n }\n\n /** Determines whether this SDK is enabled and a transport is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._transport !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A new event with more information.\n */\n _prepareEvent(\n event,\n hint,\n currentScope,\n isolationScope,\n ) {\n const options = this.getOptions();\n const integrations = Object.keys(this._integrations);\n if (!hint.integrations && integrations?.length) {\n hint.integrations = integrations;\n }\n\n this.emit('preprocessEvent', event, hint);\n\n if (!event.type) {\n isolationScope.setLastEventId(event.event_id || hint.event_id);\n }\n\n return prepareEvent(options, event, hint, currentScope, this, isolationScope).then(evt => {\n if (evt === null) {\n return evt;\n }\n\n this.emit('postprocessEvent', evt, hint);\n\n evt.contexts = {\n trace: { ...evt.contexts?.trace, ...getTraceContextFromScope(currentScope) },\n ...evt.contexts,\n };\n\n const dynamicSamplingContext = getDynamicSamplingContextFromScope(this, currentScope);\n\n evt.sdkProcessingMetadata = {\n dynamicSamplingContext,\n ...evt.sdkProcessingMetadata,\n };\n\n return evt;\n });\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(\n event,\n hint = {},\n currentScope = getCurrentScope(),\n isolationScope = getIsolationScope(),\n ) {\n if (DEBUG_BUILD && isErrorEvent(event)) {\n debug.log(`Captured error event \\`${getPossibleEventMessages(event)[0] || ''}\\``);\n }\n\n return this._processEvent(event, hint, currentScope, isolationScope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if (DEBUG_BUILD) {\n if (_isDoNotSendEventError(reason)) {\n debug.log(reason.message);\n } else if (_isInternalError(reason)) {\n debug.warn(reason.message);\n } else {\n debug.warn(reason);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n _processEvent(\n event,\n hint,\n currentScope,\n isolationScope,\n ) {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || 'error';\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n const parsedSampleRate = typeof sampleRate === 'undefined' ? undefined : parseSampleRate(sampleRate);\n if (isError && typeof parsedSampleRate === 'number' && safeMathRandom() > parsedSampleRate) {\n this.recordDroppedEvent('sample_rate', 'error');\n return rejectedSyncPromise(\n _makeDoNotSendEventError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n ),\n );\n }\n\n const dataCategory = getDataCategoryByType(event.type);\n\n return this._prepareEvent(event, hint, currentScope, isolationScope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', dataCategory);\n throw _makeDoNotSendEventError('An event processor returned `null`, will not send event.');\n }\n\n const isInternalException = (hint.data )?.__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n\n const result = processBeforeSend(this, options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', dataCategory);\n if (isTransaction) {\n const spans = event.spans || [];\n // the transaction itself counts as one span, plus all the child spans that are added\n const spanCount = 1 + spans.length;\n this.recordDroppedEvent('before_send', 'span', spanCount);\n }\n throw _makeDoNotSendEventError(`${beforeSendLabel} returned \\`null\\`, will not send event.`);\n }\n\n const session = currentScope.getSession() || isolationScope.getSession();\n if (isError && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n if (isTransaction) {\n const spanCountBefore = processedEvent.sdkProcessingMetadata?.spanCountBeforeProcessing || 0;\n const spanCountAfter = processedEvent.spans ? processedEvent.spans.length : 0;\n\n const droppedSpanCount = spanCountBefore - spanCountAfter;\n if (droppedSpanCount > 0) {\n this.recordDroppedEvent('before_send', 'span', droppedSpanCount);\n }\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (_isDoNotSendEventError(reason) || _isInternalError(reason)) {\n throw reason;\n }\n\n this.captureException(reason, {\n mechanism: {\n handled: false,\n type: 'internal',\n },\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw _makeInternalError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n _process(taskProducer, dataCategory) {\n this._numProcessing++;\n\n void this._promiseBuffer.add(taskProducer).then(\n value => {\n this._numProcessing--;\n return value;\n },\n reason => {\n this._numProcessing--;\n\n if (reason === SENTRY_BUFFER_FULL_ERROR) {\n this.recordDroppedEvent('queue_overflow', dataCategory);\n }\n\n return reason;\n },\n );\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.entries(outcomes).map(([key, quantity]) => {\n const [reason, category] = key.split(':') ;\n return {\n reason,\n category,\n quantity,\n };\n });\n }\n\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n DEBUG_BUILD && debug.log('Flushing outcomes...');\n\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n DEBUG_BUILD && debug.log('No outcomes to send');\n return;\n }\n\n // This is really the only place where we want to check for a DSN and only send outcomes then\n if (!this._dsn) {\n DEBUG_BUILD && debug.log('No dsn provided, will not send outcomes');\n return;\n }\n\n DEBUG_BUILD && debug.log('Sending outcomes:', outcomes);\n\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n }\n\n /**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n */\n\n}\n\nfunction getDataCategoryByType(type) {\n return type === 'replay_event' ? 'replay' : type || 'error';\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult,\n beforeSendLabel,\n) {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw _makeInternalError(invalidValueError);\n }\n return event;\n },\n e => {\n throw _makeInternalError(`${beforeSendLabel} rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw _makeInternalError(invalidValueError);\n }\n return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n client,\n options,\n event,\n hint,\n) {\n const { beforeSend, beforeSendTransaction, beforeSendSpan, ignoreSpans } = options;\n let processedEvent = event;\n\n if (isErrorEvent(processedEvent) && beforeSend) {\n return beforeSend(processedEvent, hint);\n }\n\n if (isTransactionEvent(processedEvent)) {\n // Avoid processing if we don't have to\n if (beforeSendSpan || ignoreSpans) {\n // 1. Process root span\n const rootSpanJson = convertTransactionEventToSpanJson(processedEvent);\n\n // 1.1 If the root span should be ignored, drop the whole transaction\n if (ignoreSpans?.length && shouldIgnoreSpan(rootSpanJson, ignoreSpans)) {\n // dropping the whole transaction!\n return null;\n }\n\n // 1.2 If a `beforeSendSpan` callback is defined, process the root span\n if (beforeSendSpan) {\n const processedRootSpanJson = beforeSendSpan(rootSpanJson);\n if (!processedRootSpanJson) {\n showSpanDropWarning();\n } else {\n // update event with processed root span values\n processedEvent = merge(event, convertSpanJsonToTransactionEvent(processedRootSpanJson));\n }\n }\n\n // 2. Process child spans\n if (processedEvent.spans) {\n const processedSpans = [];\n\n const initialSpans = processedEvent.spans;\n\n for (const span of initialSpans) {\n // 2.a If the child span should be ignored, reparent it to the root span\n if (ignoreSpans?.length && shouldIgnoreSpan(span, ignoreSpans)) {\n reparentChildSpans(initialSpans, span);\n continue;\n }\n\n // 2.b If a `beforeSendSpan` callback is defined, process the child span\n if (beforeSendSpan) {\n const processedSpan = beforeSendSpan(span);\n if (!processedSpan) {\n showSpanDropWarning();\n processedSpans.push(span);\n } else {\n processedSpans.push(processedSpan);\n }\n } else {\n processedSpans.push(span);\n }\n }\n\n const droppedSpans = processedEvent.spans.length - processedSpans.length;\n if (droppedSpans) {\n client.recordDroppedEvent('before_send', 'span', droppedSpans);\n }\n\n processedEvent.spans = processedSpans;\n }\n }\n\n if (beforeSendTransaction) {\n if (processedEvent.spans) {\n // We store the # of spans before processing in SDK metadata,\n // so we can compare it afterwards to determine how many spans were dropped\n const spanCountBefore = processedEvent.spans.length;\n processedEvent.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n spanCountBeforeProcessing: spanCountBefore,\n };\n }\n return beforeSendTransaction(processedEvent , hint);\n }\n }\n\n return processedEvent;\n}\n\nfunction isErrorEvent(event) {\n return event.type === undefined;\n}\n\nfunction isTransactionEvent(event) {\n return event.type === 'transaction';\n}\n\n/**\n * Estimate the size of a metric in bytes.\n *\n * @param metric - The metric to estimate the size of.\n * @returns The estimated size of the metric in bytes.\n */\nfunction estimateMetricSizeInBytes(metric) {\n let weight = 0;\n\n // Estimate byte size of 2 bytes per character. This is a rough estimate JS strings are stored as UTF-16.\n if (metric.name) {\n weight += metric.name.length * 2;\n }\n\n // Add weight for number\n weight += 8;\n\n return weight + estimateAttributesSizeInBytes(metric.attributes);\n}\n\n/**\n * Estimate the size of a log in bytes.\n *\n * @param log - The log to estimate the size of.\n * @returns The estimated size of the log in bytes.\n */\nfunction estimateLogSizeInBytes(log) {\n let weight = 0;\n\n // Estimate byte size of 2 bytes per character. This is a rough estimate JS strings are stored as UTF-16.\n if (log.message) {\n weight += log.message.length * 2;\n }\n\n return weight + estimateAttributesSizeInBytes(log.attributes);\n}\n\n/**\n * Estimate the size of attributes in bytes.\n *\n * @param attributes - The attributes object to estimate the size of.\n * @returns The estimated size of the attributes in bytes.\n */\nfunction estimateAttributesSizeInBytes(attributes) {\n if (!attributes) {\n return 0;\n }\n\n let weight = 0;\n\n Object.values(attributes).forEach(value => {\n if (Array.isArray(value)) {\n weight += value.length * estimatePrimitiveSizeInBytes(value[0]);\n } else if (isPrimitive(value)) {\n weight += estimatePrimitiveSizeInBytes(value);\n } else {\n // For objects values, we estimate the size of the object as 100 bytes\n weight += 100;\n }\n });\n\n return weight;\n}\n\nfunction estimatePrimitiveSizeInBytes(value) {\n if (typeof value === 'string') {\n return value.length * 2;\n } else if (typeof value === 'number') {\n return 8;\n } else if (typeof value === 'boolean') {\n return 4;\n }\n\n return 0;\n}\n\nexport { Client };\n//# sourceMappingURL=client.js.map\n", - "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getFunctionName } from '../utils/stacktrace.js';\n\n// We keep the handlers globally\nconst handlers = {};\nconst instrumented = {};\n\n/** Add a handler function. */\nfunction addHandler(type, handler) {\n handlers[type] = handlers[type] || [];\n handlers[type].push(handler);\n}\n\n/**\n * Reset all instrumentation handlers.\n * This can be used by tests to ensure we have a clean slate of instrumentation handlers.\n */\nfunction resetInstrumentationHandlers() {\n Object.keys(handlers).forEach(key => {\n handlers[key ] = undefined;\n });\n}\n\n/** Maybe run an instrumentation function, unless it was already called. */\nfunction maybeInstrument(type, instrumentFn) {\n if (!instrumented[type]) {\n instrumented[type] = true;\n try {\n instrumentFn();\n } catch (e) {\n DEBUG_BUILD && debug.error(`Error while instrumenting ${type}`, e);\n }\n }\n}\n\n/** Trigger handlers for a given instrumentation type. */\nfunction triggerHandlers(type, data) {\n const typeHandlers = type && handlers[type];\n if (!typeHandlers) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n debug.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\nexport { addHandler, maybeInstrument, resetInstrumentationHandlers, triggerHandlers };\n//# sourceMappingURL=handlers.js.map\n", - "import { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnErrorHandler = null;\n\n/**\n * Add an instrumentation handler for when an error is captured by the global error handler.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addGlobalErrorInstrumentationHandler(handler) {\n const type = 'error';\n addHandler(type, handler);\n maybeInstrument(type, instrumentError);\n}\n\nfunction instrumentError() {\n _oldOnErrorHandler = GLOBAL_OBJ.onerror;\n\n // Note: The reason we are doing window.onerror instead of window.addEventListener('error')\n // is that we are using this handler in the Loader Script, to handle buffered errors consistently\n GLOBAL_OBJ.onerror = function (\n msg,\n url,\n line,\n column,\n error,\n ) {\n const handlerData = {\n column,\n error,\n line,\n msg,\n url,\n };\n triggerHandlers('error', handlerData);\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n\n GLOBAL_OBJ.onerror.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalErrorInstrumentationHandler };\n//# sourceMappingURL=globalError.js.map\n", - "import { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnUnhandledRejectionHandler = null;\n\n/**\n * Add an instrumentation handler for when an unhandled promise rejection is captured.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addGlobalUnhandledRejectionInstrumentationHandler(\n handler,\n) {\n const type = 'unhandledrejection';\n addHandler(type, handler);\n maybeInstrument(type, instrumentUnhandledRejection);\n}\n\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = GLOBAL_OBJ.onunhandledrejection;\n\n // Note: The reason we are doing window.onunhandledrejection instead of window.addEventListener('unhandledrejection')\n // is that we are using this handler in the Loader Script, to handle buffered rejections consistently\n GLOBAL_OBJ.onunhandledrejection = function (e) {\n const handlerData = e;\n triggerHandlers('unhandledrejection', handlerData);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n\n GLOBAL_OBJ.onunhandledrejection.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalUnhandledRejectionInstrumentationHandler };\n//# sourceMappingURL=globalUnhandledRejection.js.map\n", - "import { DEBUG_BUILD } from '../debug-build.js';\nimport { addGlobalErrorInstrumentationHandler } from '../instrument/globalError.js';\nimport { addGlobalUnhandledRejectionInstrumentationHandler } from '../instrument/globalUnhandledRejection.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getActiveSpan, getRootSpan } from '../utils/spanUtils.js';\nimport { SPAN_STATUS_ERROR } from './spanstatus.js';\n\nlet errorsInstrumented = false;\n\n/**\n * Ensure that global errors automatically set the active span status.\n */\nfunction registerSpanErrorInstrumentation() {\n if (errorsInstrumented) {\n return;\n }\n\n /**\n * If an error or unhandled promise occurs, we mark the active root span as failed\n */\n function errorCallback() {\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n if (rootSpan) {\n const message = 'internal_error';\n DEBUG_BUILD && debug.log(`[Tracing] Root span: ${message} -> Global error occurred`);\n rootSpan.setStatus({ code: SPAN_STATUS_ERROR, message });\n }\n }\n\n // The function name will be lost when bundling but we need to be able to identify this listener later to maintain the\n // node.js default exit behaviour\n errorCallback.tag = 'sentry_tracingErrorCallback';\n\n errorsInstrumented = true;\n addGlobalErrorInstrumentationHandler(errorCallback);\n addGlobalUnhandledRejectionInstrumentationHandler(errorCallback);\n}\n\nexport { registerSpanErrorInstrumentation };\n//# sourceMappingURL=errors.js.map\n", - "/**\n * Takes the SDK metadata and adds the user-agent header to the transport options.\n * This ensures that the SDK sends the user-agent header with SDK name and version to\n * all requests made by the transport.\n *\n * @see https://develop.sentry.dev/sdk/overview/#user-agent\n */\nfunction addUserAgentToTransportHeaders(options) {\n const sdkMetadata = options._metadata?.sdk;\n const sdkUserAgent =\n sdkMetadata?.name && sdkMetadata?.version ? `${sdkMetadata?.name}/${sdkMetadata?.version}` : undefined;\n\n options.transportOptions = {\n ...options.transportOptions,\n headers: {\n ...(sdkUserAgent && { 'user-agent': sdkUserAgent }),\n ...options.transportOptions?.headers,\n },\n };\n}\n\nexport { addUserAgentToTransportHeaders };\n//# sourceMappingURL=userAgent.js.map\n", - "import { isParameterizedString, isError, isPlainObject, isErrorEvent } from './is.js';\nimport { addExceptionMechanism, addExceptionTypeValue } from './misc.js';\nimport { normalizeToSize } from './normalize.js';\nimport { extractExceptionKeysForMessage } from './object.js';\n\n/**\n * Extracts stack frames from the error.stack string\n */\nfunction parseStackFrames(stackParser, error) {\n return stackParser(error.stack || '', 1);\n}\n\nfunction hasSentryFetchUrlHost(error) {\n return isError(error) && '__sentry_fetch_url_host__' in error && typeof error.__sentry_fetch_url_host__ === 'string';\n}\n\n/**\n * Enhances the error message with the hostname for better Sentry error reporting.\n * This allows third-party packages to still match on the original error message,\n * while Sentry gets the enhanced version with context.\n *\n * Only used internally\n * @hidden\n */\nfunction _enhanceErrorWithSentryInfo(error) {\n // If the error has a __sentry_fetch_url_host__ property (added by fetch instrumentation),\n // enhance the error message with the hostname.\n if (hasSentryFetchUrlHost(error)) {\n return `${error.message} (${error.__sentry_fetch_url_host__})`;\n }\n\n return error.message;\n}\n\n/**\n * Extracts stack frames from the error and builds a Sentry Exception\n */\nfunction exceptionFromError(stackParser, error) {\n const exception = {\n type: error.name || error.constructor.name,\n value: _enhanceErrorWithSentryInfo(error),\n };\n\n const frames = parseStackFrames(stackParser, error);\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n return exception;\n}\n\n/** If a plain object has a property that is an `Error`, return this error. */\nfunction getErrorPropertyFromObject(obj) {\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n const value = obj[prop];\n if (value instanceof Error) {\n return value;\n }\n }\n }\n\n return undefined;\n}\n\nfunction getMessageForObject(exception) {\n if ('name' in exception && typeof exception.name === 'string') {\n let message = `'${exception.name}' captured as exception`;\n\n if ('message' in exception && typeof exception.message === 'string') {\n message += ` with message '${exception.message}'`;\n }\n\n return message;\n } else if ('message' in exception && typeof exception.message === 'string') {\n return exception.message;\n }\n\n const keys = extractExceptionKeysForMessage(exception);\n\n // Some ErrorEvent instances do not have an `error` property, which is why they are not handled before\n // We still want to try to get a decent message for these cases\n if (isErrorEvent(exception)) {\n return `Event \\`ErrorEvent\\` captured as exception with message \\`${exception.message}\\``;\n }\n\n const className = getObjectClassName(exception);\n\n return `${\n className && className !== 'Object' ? `'${className}'` : 'Object'\n } captured as exception with keys: ${keys}`;\n}\n\nfunction getObjectClassName(obj) {\n try {\n const prototype = Object.getPrototypeOf(obj);\n return prototype ? prototype.constructor.name : undefined;\n } catch {\n // ignore errors here\n }\n}\n\nfunction getException(\n client,\n mechanism,\n exception,\n hint,\n) {\n if (isError(exception)) {\n return [exception, undefined];\n }\n\n // Mutate this!\n mechanism.synthetic = true;\n\n if (isPlainObject(exception)) {\n const normalizeDepth = client?.getOptions().normalizeDepth;\n const extras = { ['__serialized__']: normalizeToSize(exception, normalizeDepth) };\n\n const errorFromProp = getErrorPropertyFromObject(exception);\n if (errorFromProp) {\n return [errorFromProp, extras];\n }\n\n const message = getMessageForObject(exception);\n const ex = hint?.syntheticException || new Error(message);\n ex.message = message;\n\n return [ex, extras];\n }\n\n // This handles when someone does: `throw \"something awesome\";`\n // We use synthesized Error here so we can extract a (rough) stack trace.\n const ex = hint?.syntheticException || new Error(exception );\n ex.message = `${exception}`;\n\n return [ex, undefined];\n}\n\n/**\n * Builds and Event from a Exception\n * @hidden\n */\nfunction eventFromUnknownInput(\n client,\n stackParser,\n exception,\n hint,\n) {\n const providedMechanism = hint?.data && (hint.data ).mechanism;\n const mechanism = providedMechanism || {\n handled: true,\n type: 'generic',\n };\n\n const [ex, extras] = getException(client, mechanism, exception, hint);\n\n const event = {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n\n if (extras) {\n event.extra = extras;\n }\n\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, mechanism);\n\n return {\n ...event,\n event_id: hint?.event_id,\n };\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n level = 'info',\n hint,\n attachStacktrace,\n) {\n const event = {\n event_id: hint?.event_id,\n level,\n };\n\n if (attachStacktrace && hint?.syntheticException) {\n const frames = parseStackFrames(stackParser, hint.syntheticException);\n if (frames.length) {\n event.exception = {\n values: [\n {\n value: message,\n stacktrace: { frames },\n },\n ],\n };\n addExceptionMechanism(event, { synthetic: true });\n }\n }\n\n if (isParameterizedString(message)) {\n const { __sentry_template_string__, __sentry_template_values__ } = message;\n\n event.logentry = {\n message: __sentry_template_string__,\n params: __sentry_template_values__,\n };\n return event;\n }\n\n event.message = message;\n return event;\n}\n\nexport { _enhanceErrorWithSentryInfo, eventFromMessage, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n", - "import { createCheckInEnvelope } from './checkin.js';\nimport { Client } from './client.js';\nimport { getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { registerSpanErrorInstrumentation } from './tracing/errors.js';\nimport { debug } from './utils/debug-logger.js';\nimport { uuid4 } from './utils/misc.js';\nimport { DEFAULT_TRANSPORT_BUFFER_SIZE } from './transports/base.js';\nimport { addUserAgentToTransportHeaders } from './transports/userAgent.js';\nimport { eventFromUnknownInput, eventFromMessage } from './utils/eventbuilder.js';\nimport { makePromiseBuffer } from './utils/promisebuffer.js';\nimport { resolvedSyncPromise } from './utils/syncpromise.js';\nimport { _getTraceInfoFromScope } from './utils/trace-info.js';\n\n/**\n * The Sentry Server Runtime Client SDK.\n */\nclass ServerRuntimeClient\n\n extends Client {\n /**\n * Creates a new Edge SDK instance.\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n // Server clients always support tracing\n registerSpanErrorInstrumentation();\n\n addUserAgentToTransportHeaders(options);\n\n super(options);\n\n this._setUpMetricsProcessing();\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n const event = eventFromUnknownInput(this, this._options.stackParser, exception, hint);\n event.level = 'error';\n\n return resolvedSyncPromise(event);\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n level = 'info',\n hint,\n ) {\n return resolvedSyncPromise(\n eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace),\n );\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint, scope) {\n setCurrentRequestSessionErroredOrCrashed(hint);\n return super.captureException(exception, hint, scope);\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, scope) {\n // If the event is of type Exception, then a request session should be captured\n const isException = !event.type && event.exception?.values && event.exception.values.length > 0;\n if (isException) {\n setCurrentRequestSessionErroredOrCrashed(hint);\n }\n\n return super.captureEvent(event, hint, scope);\n }\n\n /**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\n captureCheckIn(checkIn, monitorConfig, scope) {\n const id = 'checkInId' in checkIn && checkIn.checkInId ? checkIn.checkInId : uuid4();\n if (!this._isEnabled()) {\n DEBUG_BUILD && debug.warn('SDK not enabled, will not capture check-in.');\n return id;\n }\n\n const options = this.getOptions();\n const { release, environment, tunnel } = options;\n\n const serializedCheckIn = {\n check_in_id: id,\n monitor_slug: checkIn.monitorSlug,\n status: checkIn.status,\n release,\n environment,\n };\n\n if ('duration' in checkIn) {\n serializedCheckIn.duration = checkIn.duration;\n }\n\n if (monitorConfig) {\n serializedCheckIn.monitor_config = {\n schedule: monitorConfig.schedule,\n checkin_margin: monitorConfig.checkinMargin,\n max_runtime: monitorConfig.maxRuntime,\n timezone: monitorConfig.timezone,\n failure_issue_threshold: monitorConfig.failureIssueThreshold,\n recovery_threshold: monitorConfig.recoveryThreshold,\n };\n }\n\n const [dynamicSamplingContext, traceContext] = _getTraceInfoFromScope(this, scope);\n if (traceContext) {\n serializedCheckIn.contexts = {\n trace: traceContext,\n };\n }\n\n const envelope = createCheckInEnvelope(\n serializedCheckIn,\n dynamicSamplingContext,\n this.getSdkMetadata(),\n tunnel,\n this.getDsn(),\n );\n\n DEBUG_BUILD && debug.log('Sending checkin:', checkIn.monitorSlug, checkIn.status);\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n\n return id;\n }\n\n /**\n * Disposes of the client and releases all resources.\n *\n * This method clears all internal state to allow the client to be garbage collected.\n * It clears hooks, event processors, integrations, transport, and other internal references.\n *\n * Call this method after flushing to allow the client to be garbage collected.\n * After calling dispose(), the client should not be used anymore.\n *\n * Subclasses should override this method to clean up their own resources and call `super.dispose()`.\n */\n dispose() {\n DEBUG_BUILD && debug.log('Disposing client...');\n\n for (const hookName of Object.keys(this._hooks)) {\n this._hooks[hookName]?.clear();\n }\n\n this._hooks = {};\n this._eventProcessors.length = 0;\n this._integrations = {};\n this._outcomes = {};\n (this )._transport = undefined;\n this._promiseBuffer = makePromiseBuffer(DEFAULT_TRANSPORT_BUFFER_SIZE);\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(\n event,\n hint,\n currentScope,\n isolationScope,\n ) {\n if (this._options.platform) {\n event.platform = event.platform || this._options.platform;\n }\n\n if (this._options.runtime) {\n event.contexts = {\n ...event.contexts,\n runtime: event.contexts?.runtime || this._options.runtime,\n };\n }\n\n if (this._options.serverName) {\n event.server_name = event.server_name || this._options.serverName;\n }\n\n return super._prepareEvent(event, hint, currentScope, isolationScope);\n }\n\n /**\n * Process a server-side metric before it is captured.\n */\n _setUpMetricsProcessing() {\n this.on('processMetric', metric => {\n if (this._options.serverName) {\n metric.attributes = {\n 'server.address': this._options.serverName,\n ...metric.attributes,\n };\n }\n });\n }\n}\n\nfunction setCurrentRequestSessionErroredOrCrashed(eventHint) {\n const requestSession = getIsolationScope().getScopeData().sdkProcessingMetadata.requestSession;\n if (requestSession) {\n // We mutate instead of doing `setSdkProcessingMetadata` because the http integration stores away a particular\n // isolationScope. If that isolation scope is forked, setting the processing metadata here will not mutate the\n // original isolation scope that the http integration stored away.\n const isHandledException = eventHint?.mechanism?.handled ?? true;\n // A request session can go from \"errored\" -> \"crashed\" but not \"crashed\" -> \"errored\".\n // Crashed (unhandled exception) is worse than errored (handled exception).\n if (isHandledException && requestSession.status !== 'crashed') {\n requestSession.status = 'errored';\n } else if (!isHandledException) {\n requestSession.status = 'crashed';\n }\n }\n}\n\nexport { ServerRuntimeClient };\n//# sourceMappingURL=server-runtime-client.js.map\n", - "import { DEBUG_BUILD } from '../../debug-build.js';\nimport { debug } from '../debug-logger.js';\n\n/**\n * Registry tracking which AI provider modules should skip instrumentation wrapping.\n *\n * This prevents duplicate spans when a higher-level integration (like LangChain)\n * already instruments AI providers at a higher abstraction level.\n */\nconst SKIPPED_AI_PROVIDERS = new Set();\n\n/**\n * Mark AI provider modules to skip instrumentation wrapping.\n *\n * This prevents duplicate spans when a higher-level integration (like LangChain)\n * already instruments AI providers at a higher abstraction level.\n *\n * @internal\n * @param modules - Array of npm module names to skip (e.g., '@anthropic-ai/sdk', 'openai')\n *\n * @example\n * ```typescript\n * // In LangChain integration\n * _INTERNAL_skipAiProviderWrapping(['@anthropic-ai/sdk', 'openai', '@google/generative-ai']);\n * ```\n */\nfunction _INTERNAL_skipAiProviderWrapping(modules) {\n modules.forEach(module => {\n SKIPPED_AI_PROVIDERS.add(module);\n DEBUG_BUILD && debug.log(`AI provider \"${module}\" wrapping will be skipped`);\n });\n}\n\n/**\n * Check if an AI provider module should skip instrumentation wrapping.\n *\n * @internal\n * @param module - The npm module name (e.g., '@anthropic-ai/sdk', 'openai')\n * @returns true if wrapping should be skipped\n *\n * @example\n * ```typescript\n * // In AI provider instrumentation\n * if (_INTERNAL_shouldSkipAiProviderWrapping('@anthropic-ai/sdk')) {\n * return Reflect.construct(Original, args); // Don't instrument\n * }\n * ```\n */\nfunction _INTERNAL_shouldSkipAiProviderWrapping(module) {\n return SKIPPED_AI_PROVIDERS.has(module);\n}\n\n/**\n * Clear all AI provider skip registrations.\n *\n * This is automatically called at the start of Sentry.init() to ensure a clean state\n * between different client initializations.\n *\n * @internal\n */\nfunction _INTERNAL_clearAiProviderSkips() {\n SKIPPED_AI_PROVIDERS.clear();\n DEBUG_BUILD && debug.log('Cleared AI provider skip registrations');\n}\n\nexport { _INTERNAL_clearAiProviderSkips, _INTERNAL_shouldSkipAiProviderWrapping, _INTERNAL_skipAiProviderWrapping };\n//# sourceMappingURL=providerSkip.js.map\n", - "const FALSY_ENV_VALUES = new Set(['false', 'f', 'n', 'no', 'off', '0']);\nconst TRUTHY_ENV_VALUES = new Set(['true', 't', 'y', 'yes', 'on', '1']);\n\n/**\n * A helper function which casts an ENV variable value to `true` or `false` using the constants defined above.\n * In strict mode, it may return `null` if the value doesn't match any of the predefined values.\n *\n * @param value The value of the env variable\n * @param options -- Only has `strict` key for now, which requires a strict match for `true` in TRUTHY_ENV_VALUES\n * @returns true/false if the lowercase value matches the predefined values above. If not, null in strict mode,\n * and Boolean(value) in loose mode.\n */\nfunction envToBool(value, options) {\n const normalized = String(value).toLowerCase();\n\n if (FALSY_ENV_VALUES.has(normalized)) {\n return false;\n }\n\n if (TRUTHY_ENV_VALUES.has(normalized)) {\n return true;\n }\n\n return options?.strict ? null : Boolean(value);\n}\n\nexport { FALSY_ENV_VALUES, TRUTHY_ENV_VALUES, envToBool };\n//# sourceMappingURL=envToBool.js.map\n", - "import { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_URL_FULL, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes.js';\n\n// Curious about `thismessage:/`? See: https://www.rfc-editor.org/rfc/rfc2557.html\n// > When the methods above do not yield an absolute URI, a base URL\n// > of \"thismessage:/\" MUST be employed. This base URL has been\n// > defined for the sole purpose of resolving relative references\n// > within a multipart/related structure when no other base URI is\n// > specified.\n//\n// We need to provide a base URL to `parseStringToURLObject` because the fetch API gives us a\n// relative URL sometimes.\n//\n// This is the only case where we need to provide a base URL to `parseStringToURLObject`\n// because the relative URL is not valid on its own.\nconst DEFAULT_BASE_URL = 'thismessage:/';\n\n/**\n * Checks if the URL object is relative\n *\n * @param url - The URL object to check\n * @returns True if the URL object is relative, false otherwise\n */\nfunction isURLObjectRelative(url) {\n return 'isRelative' in url;\n}\n\n/**\n * Parses string to a URL object\n *\n * @param url - The URL to parse\n * @returns The parsed URL object or undefined if the URL is invalid\n */\nfunction parseStringToURLObject(url, urlBase) {\n const isRelative = url.indexOf('://') <= 0 && url.indexOf('//') !== 0;\n const base = urlBase ?? (isRelative ? DEFAULT_BASE_URL : undefined);\n try {\n // Use `canParse` to short-circuit the URL constructor if it's not a valid URL\n // This is faster than trying to construct the URL and catching the error\n // Node 20+, Chrome 120+, Firefox 115+, Safari 17+\n if ('canParse' in URL && !(URL ).canParse(url, base)) {\n return undefined;\n }\n\n const fullUrlObject = new URL(url, base);\n if (isRelative) {\n // Because we used a fake base URL, we need to return a relative URL object.\n // We cannot return anything about the origin, host, etc. because it will refer to the fake base URL.\n return {\n isRelative,\n pathname: fullUrlObject.pathname,\n search: fullUrlObject.search,\n hash: fullUrlObject.hash,\n };\n }\n return fullUrlObject;\n } catch {\n // empty body\n }\n\n return undefined;\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span name\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nfunction getSanitizedUrlStringFromUrlObject(url) {\n if (isURLObjectRelative(url)) {\n return url.pathname;\n }\n\n const newUrl = new URL(url);\n newUrl.search = '';\n newUrl.hash = '';\n if (['80', '443'].includes(newUrl.port)) {\n newUrl.port = '';\n }\n if (newUrl.password) {\n newUrl.password = '%filtered%';\n }\n if (newUrl.username) {\n newUrl.username = '%filtered%';\n }\n\n return newUrl.toString();\n}\n\nfunction getHttpSpanNameFromUrlObject(\n urlObject,\n kind,\n request,\n routeName,\n) {\n const method = request?.method?.toUpperCase() ?? 'GET';\n const route = routeName\n ? routeName\n : urlObject\n ? kind === 'client'\n ? getSanitizedUrlStringFromUrlObject(urlObject)\n : urlObject.pathname\n : '/';\n\n return `${method} ${route}`;\n}\n\n/**\n * Takes a parsed URL object and returns a set of attributes for the span\n * that represents the HTTP request for that url. This is used for both server\n * and client http spans.\n *\n * Follows https://opentelemetry.io/docs/specs/semconv/http/.\n *\n * @param urlObject - see {@link parseStringToURLObject}\n * @param kind - The type of HTTP operation (server or client)\n * @param spanOrigin - The origin of the span\n * @param request - The request object, see {@link PartialRequest}\n * @param routeName - The name of the route, must be low cardinality\n * @returns The span name and attributes for the HTTP operation\n */\nfunction getHttpSpanDetailsFromUrlObject(\n urlObject,\n kind,\n spanOrigin,\n request,\n routeName,\n) {\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin,\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n };\n\n if (routeName) {\n // This is based on https://opentelemetry.io/docs/specs/semconv/http/http-spans/#name\n attributes[kind === 'server' ? 'http.route' : 'url.template'] = routeName;\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = 'route';\n }\n\n if (request?.method) {\n attributes[SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD] = request.method.toUpperCase();\n }\n\n if (urlObject) {\n if (urlObject.search) {\n attributes['url.query'] = urlObject.search;\n }\n if (urlObject.hash) {\n attributes['url.fragment'] = urlObject.hash;\n }\n if (urlObject.pathname) {\n attributes['url.path'] = urlObject.pathname;\n if (urlObject.pathname === '/') {\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = 'route';\n }\n }\n\n if (!isURLObjectRelative(urlObject)) {\n attributes[SEMANTIC_ATTRIBUTE_URL_FULL] = urlObject.href;\n if (urlObject.port) {\n attributes['url.port'] = urlObject.port;\n }\n if (urlObject.protocol) {\n attributes['url.scheme'] = urlObject.protocol;\n }\n if (urlObject.hostname) {\n attributes[kind === 'server' ? 'server.address' : 'url.domain'] = urlObject.hostname;\n }\n }\n }\n\n return [getHttpSpanNameFromUrlObject(urlObject, kind, request, routeName), attributes];\n}\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url) {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n search: query,\n hash: fragment,\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nfunction stripUrlQueryAndFragment(urlPath) {\n return (urlPath.split(/[?#]/, 1) )[0];\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span name\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nfunction getSanitizedUrlString(url) {\n const { protocol, host, path } = url;\n\n const filteredHost =\n host\n // Always filter out authority\n ?.replace(/^.*@/, '[filtered]:[filtered]@')\n // Don't show standard :80 (http) and :443 (https) ports to reduce the noise\n // TODO: Use new URL global if it exists\n .replace(/(:80)$/, '')\n .replace(/(:443)$/, '') || '';\n\n return `${protocol ? `${protocol}://` : ''}${filteredHost}${path}`;\n}\n\n/**\n * Strips the content from a data URL, returning a placeholder with the MIME type.\n *\n * Data URLs can be very long (e.g. base64 encoded scripts for Web Workers),\n * with little valuable information, often leading to envelopes getting dropped due\n * to size limit violations. Therefore, we strip data URLs and replace them with a\n * placeholder.\n *\n * @param url - The URL to process\n * @param includeDataPrefix - If true, includes the first 10 characters of the data stream\n * for debugging (e.g., to identify magic bytes like WASM's AGFzbQ).\n * Defaults to true.\n * @returns For data URLs, returns a short format like `data:text/javascript;base64,SGVsbG8gV2... [truncated]`.\n * For non-data URLs, returns the original URL unchanged.\n */\nfunction stripDataUrlContent(url, includeDataPrefix = true) {\n if (url.startsWith('data:')) {\n // Match the MIME type (everything after 'data:' until the first ';' or ',')\n const match = url.match(/^data:([^;,]+)/);\n const mimeType = match ? match[1] : 'text/plain';\n const isBase64 = url.includes(';base64,');\n\n // Find where the actual data starts (after the comma)\n const dataStart = url.indexOf(',');\n let dataPrefix = '';\n if (includeDataPrefix && dataStart !== -1) {\n const data = url.slice(dataStart + 1);\n // Include first 10 chars of data to help identify content (e.g., magic bytes)\n dataPrefix = data.length > 10 ? `${data.slice(0, 10)}... [truncated]` : data;\n }\n\n return `data:${mimeType}${isBase64 ? ',base64' : ''}${dataPrefix ? `,${dataPrefix}` : ''}`;\n }\n return url;\n}\n\nexport { getHttpSpanDetailsFromUrlObject, getSanitizedUrlString, getSanitizedUrlStringFromUrlObject, isURLObjectRelative, parseStringToURLObject, parseUrl, stripDataUrlContent, stripUrlQueryAndFragment };\n//# sourceMappingURL=url.js.map\n", - "import { SDK_VERSION } from './version.js';\n\n/**\n * A builder for the SDK metadata in the options for the SDK initialization.\n *\n * Note: This function is identical to `buildMetadata` in Remix and NextJS and SvelteKit.\n * We don't extract it for bundle size reasons.\n * @see https://github.com/getsentry/sentry-javascript/pull/7404\n * @see https://github.com/getsentry/sentry-javascript/pull/4196\n *\n * If you make changes to this function consider updating the others as well.\n *\n * @param options SDK options object that gets mutated\n * @param names list of package names\n */\nfunction applySdkMetadata(options, name, names = [name], source = 'npm') {\n const sdk = ((options._metadata = options._metadata || {}).sdk = options._metadata.sdk || {});\n\n if (!sdk.name) {\n sdk.name = `sentry.javascript.${name}`;\n sdk.packages = names.map(name => ({\n name: `${source}:@sentry/${name}`,\n version: SDK_VERSION,\n }));\n sdk.version = SDK_VERSION;\n }\n}\n\nexport { applySdkMetadata };\n//# sourceMappingURL=sdkMetadata.js.map\n", - "import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getClient, getCurrentScope } from '../currentScopes.js';\nimport { isEnabled } from '../exports.js';\nimport { debug } from './debug-logger.js';\nimport { getActiveSpan, spanToTraceHeader, spanToTraceparentHeader } from './spanUtils.js';\nimport { getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromScope } from '../tracing/dynamicSamplingContext.js';\nimport { dynamicSamplingContextToSentryBaggageHeader } from './baggage.js';\nimport { TRACEPARENT_REGEXP, generateSentryTraceHeader, generateTraceparentHeader } from './tracing.js';\n\n/**\n * Extracts trace propagation data from the current span or from the client's scope (via transaction or propagation\n * context) and serializes it to `sentry-trace` and `baggage` values. These values can be used to propagate\n * a trace via our tracing Http headers or Html `` tags.\n *\n * This function also applies some validation to the generated sentry-trace and baggage values to ensure that\n * only valid strings are returned.\n *\n * If (@param options.propagateTraceparent) is `true`, the function will also generate a `traceparent` value,\n * following the W3C traceparent header format.\n *\n * @returns an object with the tracing data values. The object keys are the name of the tracing key to be used as header\n * or meta tag name.\n */\nfunction getTraceData(\n options = {},\n) {\n const client = options.client || getClient();\n if (!isEnabled() || !client) {\n return {};\n }\n\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getTraceData) {\n return acs.getTraceData(options);\n }\n\n const scope = options.scope || getCurrentScope();\n const span = options.span || getActiveSpan();\n const sentryTrace = span ? spanToTraceHeader(span) : scopeToTraceHeader(scope);\n const dsc = span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromScope(client, scope);\n const baggage = dynamicSamplingContextToSentryBaggageHeader(dsc);\n\n const isValidSentryTraceHeader = TRACEPARENT_REGEXP.test(sentryTrace);\n if (!isValidSentryTraceHeader) {\n debug.warn('Invalid sentry-trace data. Cannot generate trace data');\n return {};\n }\n\n const traceData = {\n 'sentry-trace': sentryTrace,\n baggage,\n };\n\n if (options.propagateTraceparent) {\n traceData.traceparent = span ? spanToTraceparentHeader(span) : scopeToTraceparentHeader(scope);\n }\n\n return traceData;\n}\n\n/**\n * Get a sentry-trace header value for the given scope.\n */\nfunction scopeToTraceHeader(scope) {\n const { traceId, sampled, propagationSpanId } = scope.getPropagationContext();\n return generateSentryTraceHeader(traceId, propagationSpanId, sampled);\n}\n\nfunction scopeToTraceparentHeader(scope) {\n const { traceId, sampled, propagationSpanId } = scope.getPropagationContext();\n return generateTraceparentHeader(traceId, propagationSpanId, sampled);\n}\n\nexport { getTraceData };\n//# sourceMappingURL=traceData.js.map\n", - "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { stringMatchesSomePattern } from './string.js';\n\nconst NOT_PROPAGATED_MESSAGE =\n '[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:';\n\n/**\n * Check if a given URL should be propagated to or not.\n * If no url is defined, or no trace propagation targets are defined, this will always return `true`.\n * You can also optionally provide a decision map, to cache decisions and avoid repeated regex lookups.\n */\nfunction shouldPropagateTraceForUrl(\n url,\n tracePropagationTargets,\n decisionMap,\n) {\n if (typeof url !== 'string' || !tracePropagationTargets) {\n return true;\n }\n\n const cachedDecision = decisionMap?.get(url);\n if (cachedDecision !== undefined) {\n DEBUG_BUILD && !cachedDecision && debug.log(NOT_PROPAGATED_MESSAGE, url);\n return cachedDecision;\n }\n\n const decision = stringMatchesSomePattern(url, tracePropagationTargets);\n decisionMap?.set(url, decision);\n\n DEBUG_BUILD && !decision && debug.log(NOT_PROPAGATED_MESSAGE, url);\n return decision;\n}\n\nexport { shouldPropagateTraceForUrl };\n//# sourceMappingURL=tracePropagationTargets.js.map\n", - "/**\n * Heavily simplified debounce function based on lodash.debounce.\n *\n * This function takes a callback function (@param fun) and delays its invocation\n * by @param wait milliseconds. Optionally, a maxWait can be specified in @param options,\n * which ensures that the callback is invoked at least once after the specified max. wait time.\n *\n * @param func the function whose invocation is to be debounced\n * @param wait the minimum time until the function is invoked after it was called once\n * @param options the options object, which can contain the `maxWait` property\n *\n * @returns the debounced version of the function, which needs to be called at least once to start the\n * debouncing process. Subsequent calls will reset the debouncing timer and, in case @paramfunc\n * was already invoked in the meantime, return @param func's return value.\n * The debounced function has two additional properties:\n * - `flush`: Invokes the debounced function immediately and returns its return value\n * - `cancel`: Cancels the debouncing process and resets the debouncing timer\n */\nfunction debounce(func, wait, options) {\n let callbackReturnValue;\n\n let timerId;\n let maxTimerId;\n\n const maxWait = options?.maxWait ? Math.max(options.maxWait, wait) : 0;\n const setTimeoutImpl = options?.setTimeoutImpl || setTimeout;\n\n function invokeFunc() {\n cancelTimers();\n callbackReturnValue = func();\n return callbackReturnValue;\n }\n\n function cancelTimers() {\n timerId !== undefined && clearTimeout(timerId);\n maxTimerId !== undefined && clearTimeout(maxTimerId);\n timerId = maxTimerId = undefined;\n }\n\n function flush() {\n if (timerId !== undefined || maxTimerId !== undefined) {\n return invokeFunc();\n }\n return callbackReturnValue;\n }\n\n function debounced() {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeoutImpl(invokeFunc, wait);\n\n if (maxWait && maxTimerId === undefined) {\n maxTimerId = setTimeoutImpl(invokeFunc, maxWait);\n }\n\n return callbackReturnValue;\n }\n\n debounced.cancel = cancelTimers;\n debounced.flush = flush;\n return debounced;\n}\n\nexport { debounce };\n//# sourceMappingURL=debounce.js.map\n", - "/**\n * Transforms a `Headers` object that implements the `Web Fetch API` (https://developer.mozilla.org/en-US/docs/Web/API/Headers) into a simple key-value dict.\n * The header keys will be lower case: e.g. A \"Content-Type\" header will be stored as \"content-type\".\n */\nfunction winterCGHeadersToDict(winterCGHeaders) {\n const headers = {};\n try {\n winterCGHeaders.forEach((value, key) => {\n if (typeof value === 'string') {\n // We check that value is a string even though it might be redundant to make sure prototype pollution is not possible.\n headers[key] = value;\n }\n });\n } catch {\n // just return the empty headers\n }\n\n return headers;\n}\n\n/**\n * Convert common request headers to a simple dictionary.\n */\nfunction headersToDict(reqHeaders) {\n const headers = Object.create(null);\n\n try {\n Object.entries(reqHeaders).forEach(([key, value]) => {\n if (typeof value === 'string') {\n headers[key] = value;\n }\n });\n } catch {\n // just return the empty headers\n }\n\n return headers;\n}\n\n/**\n * Converts a `Request` object that implements the `Web Fetch API` (https://developer.mozilla.org/en-US/docs/Web/API/Headers) into the format that the `RequestData` integration understands.\n */\nfunction winterCGRequestToRequestData(req) {\n const headers = winterCGHeadersToDict(req.headers);\n\n return {\n method: req.method,\n url: req.url,\n query_string: extractQueryParamsFromUrl(req.url),\n headers,\n // TODO: Can we extract body data from the request?\n };\n}\n\n/**\n * Convert a HTTP request object to RequestEventData to be passed as normalizedRequest.\n * Instead of allowing `PolymorphicRequest` to be passed,\n * we want to be more specific and generally require a http.IncomingMessage-like object.\n */\nfunction httpRequestToRequestData(request\n\n) {\n const headers = request.headers || {};\n\n // Check for x-forwarded-host first, then fall back to host header\n const forwardedHost = typeof headers['x-forwarded-host'] === 'string' ? headers['x-forwarded-host'] : undefined;\n const host = forwardedHost || (typeof headers.host === 'string' ? headers.host : undefined);\n\n // Check for x-forwarded-proto first, then fall back to existing protocol detection\n const forwardedProto = typeof headers['x-forwarded-proto'] === 'string' ? headers['x-forwarded-proto'] : undefined;\n const protocol = forwardedProto || request.protocol || (request.socket?.encrypted ? 'https' : 'http');\n\n const url = request.url || '';\n\n const absoluteUrl = getAbsoluteUrl({\n url,\n host,\n protocol,\n });\n\n // This is non-standard, but may be sometimes set\n // It may be overwritten later by our own body handling\n const data = (request ).body || undefined;\n\n // This is non-standard, but may be set on e.g. Next.js or Express requests\n const cookies = (request ).cookies;\n\n return {\n url: absoluteUrl,\n method: request.method,\n query_string: extractQueryParamsFromUrl(url),\n headers: headersToDict(headers),\n cookies,\n data,\n };\n}\n\nfunction getAbsoluteUrl({\n url,\n protocol,\n host,\n}\n\n) {\n if (url?.startsWith('http')) {\n return url;\n }\n\n if (url && host) {\n return `${protocol}://${host}${url}`;\n }\n\n return undefined;\n}\n\nconst SENSITIVE_HEADER_SNIPPETS = [\n 'auth',\n 'token',\n 'secret',\n 'session', // for the user_session cookie\n 'password',\n 'passwd',\n 'pwd',\n 'key',\n 'jwt',\n 'bearer',\n 'sso',\n 'saml',\n 'csrf',\n 'xsrf',\n 'credentials',\n // Always treat cookie headers as sensitive in case individual key-value cookie pairs cannot properly be extracted\n 'set-cookie',\n 'cookie',\n];\n\nconst PII_HEADER_SNIPPETS = ['x-forwarded-', '-user'];\n\n/**\n * Converts incoming HTTP request or response headers to OpenTelemetry span attributes following semantic conventions.\n * Header names are converted to the format: http..header.\n * where is the header name in lowercase with dashes converted to underscores.\n *\n * @param lifecycle - The lifecycle of the headers, either 'request' or 'response'\n *\n * @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/#http-request-header\n * @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/#http-response-header\n *\n * @see https://getsentry.github.io/sentry-conventions/attributes/http/#http-request-header-key\n * @see https://getsentry.github.io/sentry-conventions/attributes/http/#http-response-header-key\n */\nfunction httpHeadersToSpanAttributes(\n headers,\n sendDefaultPii = false,\n lifecycle = 'request',\n) {\n const spanAttributes = {};\n\n try {\n Object.entries(headers).forEach(([key, value]) => {\n if (value == null) {\n return;\n }\n\n const lowerCasedHeaderKey = key.toLowerCase();\n const isCookieHeader = lowerCasedHeaderKey === 'cookie' || lowerCasedHeaderKey === 'set-cookie';\n\n if (isCookieHeader && typeof value === 'string' && value !== '') {\n // Set-Cookie: single cookie with attributes (\"name=value; HttpOnly; Secure\")\n // Cookie: multiple cookies separated by \"; \" (\"cookie1=value1; cookie2=value2\")\n const isSetCookie = lowerCasedHeaderKey === 'set-cookie';\n const semicolonIndex = value.indexOf(';');\n const cookieString = isSetCookie && semicolonIndex !== -1 ? value.substring(0, semicolonIndex) : value;\n const cookies = isSetCookie ? [cookieString] : cookieString.split('; ');\n\n for (const cookie of cookies) {\n // Split only at the first '=' to preserve '=' characters in cookie values\n const equalSignIndex = cookie.indexOf('=');\n const cookieKey = equalSignIndex !== -1 ? cookie.substring(0, equalSignIndex) : cookie;\n const cookieValue = equalSignIndex !== -1 ? cookie.substring(equalSignIndex + 1) : '';\n\n const lowerCasedCookieKey = cookieKey.toLowerCase();\n\n addSpanAttribute(\n spanAttributes,\n lowerCasedHeaderKey,\n lowerCasedCookieKey,\n cookieValue,\n sendDefaultPii,\n lifecycle,\n );\n }\n } else {\n addSpanAttribute(spanAttributes, lowerCasedHeaderKey, '', value, sendDefaultPii, lifecycle);\n }\n });\n } catch {\n // Return empty object if there's an error\n }\n\n return spanAttributes;\n}\n\nfunction normalizeAttributeKey(key) {\n return key.replace(/-/g, '_');\n}\n\nfunction addSpanAttribute(\n spanAttributes,\n headerKey,\n cookieKey,\n value,\n sendPii,\n lifecycle,\n) {\n const headerValue = handleHttpHeader(cookieKey || headerKey, value, sendPii);\n if (headerValue == null) {\n return;\n }\n\n const normalizedKey = `http.${lifecycle}.header.${normalizeAttributeKey(headerKey)}${cookieKey ? `.${normalizeAttributeKey(cookieKey)}` : ''}`;\n spanAttributes[normalizedKey] = headerValue;\n}\n\nfunction handleHttpHeader(\n lowerCasedKey,\n value,\n sendPii,\n) {\n const isSensitive = sendPii\n ? SENSITIVE_HEADER_SNIPPETS.some(snippet => lowerCasedKey.includes(snippet))\n : [...PII_HEADER_SNIPPETS, ...SENSITIVE_HEADER_SNIPPETS].some(snippet => lowerCasedKey.includes(snippet));\n\n if (isSensitive) {\n return '[Filtered]';\n } else if (Array.isArray(value)) {\n return value.map(v => (v != null ? String(v) : v)).join(';');\n } else if (typeof value === 'string') {\n return value;\n }\n\n return undefined;\n}\n\n/** Extract the query params from an URL. */\nfunction extractQueryParamsFromUrl(url) {\n // url is path and query string\n if (!url) {\n return;\n }\n\n try {\n // The `URL` constructor can't handle internal URLs of the form `/some/path/here`, so stick a dummy protocol and\n // hostname as the base. Since the point here is just to grab the query string, it doesn't matter what we use.\n const queryParams = new URL(url, 'http://s.io').search.slice(1);\n return queryParams.length ? queryParams : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport { extractQueryParamsFromUrl, headersToDict, httpHeadersToSpanAttributes, httpRequestToRequestData, winterCGHeadersToDict, winterCGRequestToRequestData };\n//# sourceMappingURL=request.js.map\n", - "import { getClient, getIsolationScope } from './currentScopes.js';\nimport { consoleSandbox } from './utils/debug-logger.js';\nimport { dateTimestampInSeconds } from './utils/time.js';\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n */\nfunction addBreadcrumb(breadcrumb, hint) {\n const client = getClient();\n const isolationScope = getIsolationScope();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } = client.getOptions();\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint))\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n isolationScope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n}\n\nexport { addBreadcrumb };\n//# sourceMappingURL=breadcrumbs.js.map\n", - "import { getClient } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\nimport { getOriginalFunction } from '../utils/object.js';\n\nlet originalFunctionToString;\n\nconst INTEGRATION_NAME = 'FunctionToString';\n\nconst SETUP_CLIENTS = new WeakMap();\n\nconst _functionToStringIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // intrinsics (like Function.prototype) might be immutable in some environments\n // e.g. Node with --frozen-intrinsics, XS (an embedded JavaScript engine) or SES (a JavaScript proposal)\n try {\n Function.prototype.toString = function ( ...args) {\n const originalFunction = getOriginalFunction(this);\n const context =\n SETUP_CLIENTS.has(getClient() ) && originalFunction !== undefined ? originalFunction : this;\n return originalFunctionToString.apply(context, args);\n };\n } catch {\n // ignore errors here, just don't patch this\n }\n },\n setup(client) {\n SETUP_CLIENTS.set(client, true);\n },\n };\n}) ;\n\n/**\n * Patch toString calls to return proper name for wrapped functions.\n *\n * ```js\n * Sentry.init({\n * integrations: [\n * functionToStringIntegration(),\n * ],\n * });\n * ```\n */\nconst functionToStringIntegration = defineIntegration(_functionToStringIntegration);\n\nexport { functionToStringIntegration };\n//# sourceMappingURL=functiontostring.js.map\n", - "import { DEBUG_BUILD } from '../debug-build.js';\nimport { defineIntegration } from '../integration.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getPossibleEventMessages } from '../utils/eventUtils.js';\nimport { getEventDescription } from '../utils/misc.js';\nimport { stringMatchesSomePattern } from '../utils/string.js';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [\n /^Script error\\.?$/,\n /^Javascript error: Script error\\.? on line 0$/,\n /^ResizeObserver loop completed with undelivered notifications.$/, // The browser logs this when a ResizeObserver handler takes a bit longer. Usually this is not an actual issue though. It indicates slowness.\n /^Cannot redefine property: googletag$/, // This is thrown when google tag manager is used in combination with an ad blocker\n /^Can't find variable: gmo$/, // Error from Google Search App https://issuetracker.google.com/issues/396043331\n /^undefined is not an object \\(evaluating 'a\\.[A-Z]'\\)$/, // Random error that happens but not actionable or noticeable to end-users.\n /can't redefine non-configurable property \"solana\"/, // Probably a browser extension or custom browser (Brave) throwing this error\n /vv\\(\\)\\.getRestrictions is not a function/, // Error thrown by GTM, seemingly not affecting end-users\n /Can't find variable: _AutofillCallbackHandler/, // Unactionable error in instagram webview https://developers.facebook.com/community/threads/320013549791141/\n /Object Not Found Matching Id:\\d+, MethodName:simulateEvent/, // unactionable error from CEFSharp, a .NET library that embeds chromium in .NET apps\n /^Java exception was raised during method invocation$/, // error from Facebook Mobile browser (https://github.com/getsentry/sentry-javascript/issues/15065)\n];\n\n/** Options for the EventFilters integration */\n\nconst INTEGRATION_NAME = 'EventFilters';\n\n/**\n * An integration that filters out events (errors and transactions) based on:\n *\n * - (Errors) A curated list of known low-value or irrelevant errors (see {@link DEFAULT_IGNORE_ERRORS})\n * - (Errors) A list of error messages or urls/filenames passed in via\n * - Top level Sentry.init options (`ignoreErrors`, `denyUrls`, `allowUrls`)\n * - The same options passed to the integration directly via @param options\n * - (Transactions/Spans) A list of root span (transaction) names passed in via\n * - Top level Sentry.init option (`ignoreTransactions`)\n * - The same option passed to the integration directly via @param options\n *\n * Events filtered by this integration will not be sent to Sentry.\n */\nconst eventFiltersIntegration = defineIntegration((options = {}) => {\n let mergedOptions;\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n const clientOptions = client.getOptions();\n mergedOptions = _mergeOptions(options, clientOptions);\n },\n processEvent(event, _hint, client) {\n if (!mergedOptions) {\n const clientOptions = client.getOptions();\n mergedOptions = _mergeOptions(options, clientOptions);\n }\n return _shouldDropEvent(event, mergedOptions) ? null : event;\n },\n };\n});\n\n/**\n * An integration that filters out events (errors and transactions) based on:\n *\n * - (Errors) A curated list of known low-value or irrelevant errors (see {@link DEFAULT_IGNORE_ERRORS})\n * - (Errors) A list of error messages or urls/filenames passed in via\n * - Top level Sentry.init options (`ignoreErrors`, `denyUrls`, `allowUrls`)\n * - The same options passed to the integration directly via @param options\n * - (Transactions/Spans) A list of root span (transaction) names passed in via\n * - Top level Sentry.init option (`ignoreTransactions`)\n * - The same option passed to the integration directly via @param options\n *\n * Events filtered by this integration will not be sent to Sentry.\n *\n * @deprecated this integration was renamed and will be removed in a future major version.\n * Use `eventFiltersIntegration` instead.\n */\nconst inboundFiltersIntegration = defineIntegration(((options = {}) => {\n return {\n ...eventFiltersIntegration(options),\n name: 'InboundFilters',\n };\n}) );\n\nfunction _mergeOptions(\n internalOptions = {},\n clientOptions = {},\n) {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...(internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS),\n ],\n ignoreTransactions: [...(internalOptions.ignoreTransactions || []), ...(clientOptions.ignoreTransactions || [])],\n };\n}\n\nfunction _shouldDropEvent(event, options) {\n if (!event.type) {\n // Filter errors\n if (_isIgnoredError(event, options.ignoreErrors)) {\n DEBUG_BUILD &&\n debug.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isUselessError(event)) {\n DEBUG_BUILD &&\n debug.warn(\n `Event dropped due to not having an error message, error type or stacktrace.\\nEvent: ${getEventDescription(\n event,\n )}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n DEBUG_BUILD &&\n debug.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n DEBUG_BUILD &&\n debug.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n } else if (event.type === 'transaction') {\n // Filter transactions\n\n if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n DEBUG_BUILD &&\n debug.warn(\n `Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n }\n return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n if (!ignoreErrors?.length) {\n return false;\n }\n\n return getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isIgnoredTransaction(event, ignoreTransactions) {\n if (!ignoreTransactions?.length) {\n return false;\n }\n\n const name = event.transaction;\n return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n if (!denyUrls?.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n if (!allowUrls?.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event) {\n try {\n // If there are linked exceptions or exception aggregates we only want to match against the top frame of the \"root\" (the main exception)\n // The root always comes last in linked exceptions\n const rootException = [...(event.exception?.values ?? [])]\n .reverse()\n .find(value => value.mechanism?.parent_id === undefined && value.stacktrace?.frames?.length);\n const frames = rootException?.stacktrace?.frames;\n return frames ? _getLastValidUrl(frames) : null;\n } catch {\n DEBUG_BUILD && debug.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n\nfunction _isUselessError(event) {\n // We only want to consider events for dropping that actually have recorded exception values.\n if (!event.exception?.values?.length) {\n return false;\n }\n\n return (\n // No top-level message\n !event.message &&\n // There are no exception values that have a stacktrace, a non-generic-Error type or value\n !event.exception.values.some(value => value.stacktrace || (value.type && value.type !== 'Error') || value.value)\n );\n}\n\nexport { eventFiltersIntegration, inboundFiltersIntegration };\n//# sourceMappingURL=eventFilters.js.map\n", - "import { isInstanceOf } from './is.js';\n\n/**\n * Creates exceptions inside `event.exception.values` for errors that are nested on properties based on the `key` parameter.\n */\nfunction applyAggregateErrorsToEvent(\n exceptionFromErrorImplementation,\n parser,\n key,\n limit,\n event,\n hint,\n) {\n if (!event.exception?.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return;\n }\n\n // Generally speaking the last item in `event.exception.values` is the exception originating from the original Error\n const originalException =\n event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : undefined;\n\n // We only create exception grouping if there is an exception in the event.\n if (originalException) {\n event.exception.values = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n hint.originalException ,\n key,\n event.exception.values,\n originalException,\n 0,\n );\n }\n}\n\nfunction aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error,\n key,\n prevExceptions,\n exception,\n exceptionId,\n) {\n if (prevExceptions.length >= limit + 1) {\n return prevExceptions;\n }\n\n let newExceptions = [...prevExceptions];\n\n // Recursively call this function in order to walk down a chain of errors\n if (isInstanceOf(error[key], Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId, error);\n const newException = exceptionFromErrorImplementation(parser, error[key] );\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error[key] ,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n\n // This will create exception grouping for AggregateErrors\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError\n if (isExceptionGroup(error)) {\n error.errors.forEach((childError, i) => {\n if (isInstanceOf(childError, Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId, error);\n const newException = exceptionFromErrorImplementation(parser, childError );\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n childError ,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n });\n }\n\n return newExceptions;\n}\n\nfunction isExceptionGroup(error) {\n return Array.isArray(error.errors);\n}\n\nfunction applyExceptionGroupFieldsForParentException(\n exception,\n exceptionId,\n error,\n) {\n exception.mechanism = {\n handled: true,\n type: 'auto.core.linked_errors',\n ...(isExceptionGroup(error) && { is_exception_group: true }),\n ...exception.mechanism,\n exception_id: exceptionId,\n };\n}\n\nfunction applyExceptionGroupFieldsForChildException(\n exception,\n source,\n exceptionId,\n parentId,\n) {\n exception.mechanism = {\n handled: true,\n ...exception.mechanism,\n type: 'chained',\n source,\n exception_id: exceptionId,\n parent_id: parentId,\n };\n}\n\nexport { applyAggregateErrorsToEvent };\n//# sourceMappingURL=aggregate-errors.js.map\n", - "import { defineIntegration } from '../integration.js';\nimport { applyAggregateErrorsToEvent } from '../utils/aggregate-errors.js';\nimport { exceptionFromError } from '../utils/eventbuilder.js';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\nconst INTEGRATION_NAME = 'LinkedErrors';\n\nconst _linkedErrorsIntegration = ((options = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n const key = options.key || DEFAULT_KEY;\n\n return {\n name: INTEGRATION_NAME,\n preprocessEvent(event, hint, client) {\n const options = client.getOptions();\n\n applyAggregateErrorsToEvent(exceptionFromError, options.stackParser, key, limit, event, hint);\n },\n };\n}) ;\n\nconst linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n\nexport { linkedErrorsIntegration };\n//# sourceMappingURL=linkederrors.js.map\n", - "/**\n * This code was originally copied from the 'cookie` module at v0.5.0 and was simplified for our use case.\n * https://github.com/jshttp/cookie/blob/a0c84147aab6266bdb3996cf4062e93907c0b0fc/index.js\n * It had the following license:\n *\n * (The MIT License)\n *\n * Copyright (c) 2012-2014 Roman Shtylman \n * Copyright (c) 2015 Douglas Christopher Wilson \n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n/**\n * Parses a cookie string\n */\nfunction parseCookie(str) {\n const obj = {};\n let index = 0;\n\n while (index < str.length) {\n const eqIdx = str.indexOf('=', index);\n\n // no more cookie pairs\n if (eqIdx === -1) {\n break;\n }\n\n let endIdx = str.indexOf(';', index);\n\n if (endIdx === -1) {\n endIdx = str.length;\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(';', eqIdx - 1) + 1;\n continue;\n }\n\n const key = str.slice(index, eqIdx).trim();\n\n // only assign once\n if (undefined === obj[key]) {\n let val = str.slice(eqIdx + 1, endIdx).trim();\n\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1);\n }\n\n try {\n obj[key] = val.indexOf('%') !== -1 ? decodeURIComponent(val) : val;\n } catch {\n obj[key] = val;\n }\n }\n\n index = endIdx + 1;\n }\n\n return obj;\n}\n\nexport { parseCookie };\n//# sourceMappingURL=cookie.js.map\n", - "// Vendored / modified from @sergiodxa/remix-utils\n\n// https://github.com/sergiodxa/remix-utils/blob/02af80e12829a53696bfa8f3c2363975cf59f55e/src/server/get-client-ip-address.ts\n// MIT License\n\n// Copyright (c) 2021 Sergio Xalambrí\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\n// The headers to check, in priority order\nconst ipHeaderNames = [\n 'X-Client-IP',\n 'X-Forwarded-For',\n 'Fly-Client-IP',\n 'CF-Connecting-IP',\n 'Fastly-Client-Ip',\n 'True-Client-Ip',\n 'X-Real-IP',\n 'X-Cluster-Client-IP',\n 'X-Forwarded',\n 'Forwarded-For',\n 'Forwarded',\n 'X-Vercel-Forwarded-For',\n];\n\n/**\n * Get the IP address of the client sending a request.\n *\n * It receives a Request headers object and use it to get the\n * IP address from one of the following headers in order.\n *\n * If the IP address is valid, it will be returned. Otherwise, null will be\n * returned.\n *\n * If the header values contains more than one IP address, the first valid one\n * will be returned.\n */\nfunction getClientIPAddress(headers) {\n // Build a map of lowercase header names to their values for case-insensitive lookup\n // This is needed because headers from different sources may have different casings\n const lowerCaseHeaders = {};\n\n for (const key of Object.keys(headers)) {\n lowerCaseHeaders[key.toLowerCase()] = headers[key];\n }\n\n // This will end up being Array because of the various possible values a header\n // can take\n const headerValues = ipHeaderNames.map((headerName) => {\n const rawValue = lowerCaseHeaders[headerName.toLowerCase()];\n const value = Array.isArray(rawValue) ? rawValue.join(';') : rawValue;\n\n if (headerName === 'Forwarded') {\n return parseForwardedHeader(value);\n }\n\n return value?.split(',').map((v) => v.trim());\n });\n\n // Flatten the array and filter out any falsy entries\n const flattenedHeaderValues = headerValues.reduce((acc, val) => {\n if (!val) {\n return acc;\n }\n\n return acc.concat(val);\n }, []);\n\n // Find the first value which is a valid IP address, if any\n const ipAddress = flattenedHeaderValues.find(ip => ip !== null && isIP(ip));\n\n return ipAddress || null;\n}\n\nfunction parseForwardedHeader(value) {\n if (!value) {\n return null;\n }\n\n for (const part of value.split(';')) {\n if (part.startsWith('for=')) {\n return part.slice(4);\n }\n }\n\n return null;\n}\n\n//\n/**\n * Custom method instead of importing this from `net` package, as this only exists in node\n * Accepts:\n * 127.0.0.1\n * 192.168.1.1\n * 192.168.1.255\n * 255.255.255.255\n * 10.1.1.1\n * 0.0.0.0\n * 2b01:cb19:8350:ed00:d0dd:fa5b:de31:8be5\n *\n * Rejects:\n * 1.1.1.01\n * 30.168.1.255.1\n * 127.1\n * 192.168.1.256\n * -1.2.3.4\n * 1.1.1.1.\n * 3...3\n * 192.168.1.099\n */\nfunction isIP(str) {\n const regex =\n /(?:^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$)|(?:^(?:(?:[a-fA-F\\d]{1,4}:){7}(?:[a-fA-F\\d]{1,4}|:)|(?:[a-fA-F\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-fA-F\\d]{1,4}|:)|(?:[a-fA-F\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,2}|:)|(?:[a-fA-F\\d]{1,4}:){4}(?:(?::[a-fA-F\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,3}|:)|(?:[a-fA-F\\d]{1,4}:){3}(?:(?::[a-fA-F\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,4}|:)|(?:[a-fA-F\\d]{1,4}:){2}(?:(?::[a-fA-F\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,5}|:)|(?:[a-fA-F\\d]{1,4}:){1}(?:(?::[a-fA-F\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/;\n return regex.test(str);\n}\n\nexport { getClientIPAddress, ipHeaderNames };\n//# sourceMappingURL=getIpAddress.js.map\n", - "import { defineIntegration } from '../integration.js';\nimport { parseCookie } from '../utils/cookie.js';\nimport { getClientIPAddress, ipHeaderNames } from '../vendor/getIpAddress.js';\n\n// TODO(v11): Change defaults based on `sendDefaultPii`\nconst DEFAULT_INCLUDE = {\n cookies: true,\n data: true,\n headers: true,\n query_string: true,\n url: true,\n};\n\nconst INTEGRATION_NAME = 'RequestData';\n\nconst _requestDataIntegration = ((options = {}) => {\n const include = {\n ...DEFAULT_INCLUDE,\n ...options.include,\n };\n\n return {\n name: INTEGRATION_NAME,\n processEvent(event, _hint, client) {\n const { sdkProcessingMetadata = {} } = event;\n const { normalizedRequest, ipAddress } = sdkProcessingMetadata;\n\n const includeWithDefaultPiiApplied = {\n ...include,\n ip: include.ip ?? client.getOptions().sendDefaultPii,\n };\n\n if (normalizedRequest) {\n addNormalizedRequestDataToEvent(event, normalizedRequest, { ipAddress }, includeWithDefaultPiiApplied);\n }\n\n return event;\n },\n };\n}) ;\n\n/**\n * Add data about a request to an event. Primarily for use in Node-based SDKs, but included in `@sentry/core`\n * so it can be used in cross-platform SDKs like `@sentry/nextjs`.\n */\nconst requestDataIntegration = defineIntegration(_requestDataIntegration);\n\n/**\n * Add already normalized request data to an event.\n * This mutates the passed in event.\n */\nfunction addNormalizedRequestDataToEvent(\n event,\n req,\n // Data that should not go into `event.request` but is somehow related to requests\n additionalData,\n include,\n) {\n event.request = {\n ...event.request,\n ...extractNormalizedRequestData(req, include),\n };\n\n if (include.ip) {\n const ip = (req.headers && getClientIPAddress(req.headers)) || additionalData.ipAddress;\n if (ip) {\n event.user = {\n ...event.user,\n ip_address: ip,\n };\n }\n }\n}\n\nfunction extractNormalizedRequestData(\n normalizedRequest,\n include,\n) {\n const requestData = {};\n const headers = { ...normalizedRequest.headers };\n\n if (include.headers) {\n requestData.headers = headers;\n\n // Remove the Cookie header in case cookie data should not be included in the event\n if (!include.cookies) {\n delete (headers ).cookie;\n }\n\n // Remove IP headers in case IP data should not be included in the event\n if (!include.ip) {\n ipHeaderNames.forEach(ipHeaderName => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete (headers )[ipHeaderName];\n });\n }\n }\n\n requestData.method = normalizedRequest.method;\n\n if (include.url) {\n requestData.url = normalizedRequest.url;\n }\n\n if (include.cookies) {\n const cookies = normalizedRequest.cookies || (headers?.cookie ? parseCookie(headers.cookie) : undefined);\n requestData.cookies = cookies || {};\n }\n\n if (include.query_string) {\n requestData.query_string = normalizedRequest.query_string;\n }\n\n if (include.data) {\n requestData.data = normalizedRequest.data;\n }\n\n return requestData;\n}\n\nexport { requestDataIntegration };\n//# sourceMappingURL=requestdata.js.map\n", - "import { CONSOLE_LEVELS, originalConsoleMethods } from '../utils/debug-logger.js';\nimport { fill } from '../utils/object.js';\nimport { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\n/**\n * Add an instrumentation handler for when a console.xxx method is called.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addConsoleInstrumentationHandler(handler) {\n const type = 'console';\n addHandler(type, handler);\n maybeInstrument(type, instrumentConsole);\n}\n\nfunction instrumentConsole() {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in GLOBAL_OBJ.console)) {\n return;\n }\n\n fill(GLOBAL_OBJ.console, level, function (originalConsoleMethod) {\n originalConsoleMethods[level] = originalConsoleMethod;\n\n return function (...args) {\n const handlerData = { args, level };\n triggerHandlers('console', handlerData);\n\n const log = originalConsoleMethods[level];\n log?.apply(GLOBAL_OBJ.console, args);\n };\n });\n });\n}\n\nexport { addConsoleInstrumentationHandler };\n//# sourceMappingURL=console.js.map\n", - "/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nfunction severityLevelFromString(level) {\n return (\n level === 'warn' ? 'warning' : ['fatal', 'error', 'warning', 'log', 'info', 'debug'].includes(level) ? level : 'log'\n ) ;\n}\n\nexport { severityLevelFromString };\n//# sourceMappingURL=severity.js.map\n", - "// Slightly modified (no IE8 support, ES6) and transcribed to TypeScript\n// https://github.com/calvinmetcalf/rollup-plugin-node-builtins/blob/63ab8aacd013767445ca299e468d9a60a95328d7/src/es6/path.js\n//\n// Copyright Joyent, Inc.and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n/** JSDoc */\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n let up = 0;\n for (let i = parts.length - 1; i >= 0; i--) {\n const last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nconst splitPathRe = /^(\\S+:\\\\|\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^/\\\\]+?|)(\\.[^./\\\\]*|))(?:[/\\\\]*)$/;\n/** JSDoc */\nfunction splitPath(filename) {\n // Truncate files names greater than 1024 characters to avoid regex dos\n // https://github.com/getsentry/sentry-javascript/pull/8737#discussion_r1285719172\n const truncated = filename.length > 1024 ? `${filename.slice(-1024)}` : filename;\n const parts = splitPathRe.exec(truncated);\n return parts ? parts.slice(1) : [];\n}\n\n// path.resolve([from ...], to)\n// posix version\n/** JSDoc */\nfunction resolve(...args) {\n let resolvedPath = '';\n let resolvedAbsolute = false;\n\n for (let i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n const path = i >= 0 ? args[i] : '/';\n\n // Skip empty entries\n if (!path) {\n continue;\n }\n\n resolvedPath = `${path}/${resolvedPath}`;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(\n resolvedPath.split('/').filter(p => !!p),\n !resolvedAbsolute,\n ).join('/');\n\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}\n\n/** JSDoc */\nfunction trim(arr) {\n let start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') {\n break;\n }\n }\n\n let end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') {\n break;\n }\n }\n\n if (start > end) {\n return [];\n }\n return arr.slice(start, end - start + 1);\n}\n\n// path.relative(from, to)\n// posix version\n/** JSDoc */\nfunction relative(from, to) {\n /* eslint-disable no-param-reassign */\n from = resolve(from).slice(1);\n to = resolve(to).slice(1);\n /* eslint-enable no-param-reassign */\n\n const fromParts = trim(from.split('/'));\n const toParts = trim(to.split('/'));\n\n const length = Math.min(fromParts.length, toParts.length);\n let samePartsLength = length;\n for (let i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n let outputParts = [];\n for (let i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n}\n\n// path.normalize(path)\n// posix version\n/** JSDoc */\nfunction normalizePath(path) {\n const isPathAbsolute = isAbsolute(path);\n const trailingSlash = path.slice(-1) === '/';\n\n // Normalize the path\n let normalizedPath = normalizeArray(\n path.split('/').filter(p => !!p),\n !isPathAbsolute,\n ).join('/');\n\n if (!normalizedPath && !isPathAbsolute) {\n normalizedPath = '.';\n }\n if (normalizedPath && trailingSlash) {\n normalizedPath += '/';\n }\n\n return (isPathAbsolute ? '/' : '') + normalizedPath;\n}\n\n// posix version\n/** JSDoc */\nfunction isAbsolute(path) {\n return path.charAt(0) === '/';\n}\n\n// posix version\n/** JSDoc */\nfunction join(...args) {\n return normalizePath(args.join('/'));\n}\n\n/** JSDoc */\nfunction dirname(path) {\n const result = splitPath(path);\n const root = result[0] || '';\n let dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.slice(0, dir.length - 1);\n }\n\n return root + dir;\n}\n\n/** JSDoc */\nfunction basename(path, ext) {\n let f = splitPath(path)[2] || '';\n if (ext && f.slice(ext.length * -1) === ext) {\n f = f.slice(0, f.length - ext.length);\n }\n return f;\n}\n\nexport { basename, dirname, isAbsolute, join, normalizePath, relative, resolve };\n//# sourceMappingURL=path.js.map\n", - "import { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getActiveSpan } from '../utils/spanUtils.js';\nimport { SPAN_STATUS_ERROR } from '../tracing/spanstatus.js';\nimport { startSpanManual } from '../tracing/trace.js';\n\n// Portable instrumentation for https://github.com/porsager/postgres\n// This can be used in any environment (Node.js, Cloudflare Workers, etc.)\n// without depending on OpenTelemetry module hooking.\n\n\nconst SQL_OPERATION_REGEX = /^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i;\n\nconst CONNECTION_CONTEXT_SYMBOL = Symbol('sentryPostgresConnectionContext');\n\n// Use the same Symbol.for() markers as the Node.js OTel instrumentation\n// so that both approaches recognize each other and prevent double-wrapping.\nconst INSTRUMENTED_MARKER = Symbol.for('sentry.instrumented.postgresjs');\n// Marker to track if a query was created from an instrumented sql instance.\n// This prevents double-spanning when both the wrapper and the Node.js Query.prototype\n// fallback patch are active simultaneously.\nconst QUERY_FROM_INSTRUMENTED_SQL = Symbol.for('sentry.query.from.instrumented.sql');\n\n/**\n * Instruments a postgres.js `sql` instance with Sentry tracing.\n *\n * This is a portable instrumentation function that works in any environment\n * (Node.js, Cloudflare Workers, etc.) without depending on OpenTelemetry.\n *\n * @example\n * ```javascript\n * import postgres from 'postgres';\n * import * as Sentry from '@sentry/cloudflare'; // or '@sentry/deno'\n *\n * const sql = Sentry.instrumentPostgresJsSql(\n * postgres({ host: 'localhost', database: 'mydb' })\n * );\n *\n * // All queries now create Sentry spans\n * await sql`SELECT * FROM users WHERE id = ${userId}`;\n * ```\n */\nfunction instrumentPostgresJsSql(sql, options) {\n if (!sql || typeof sql !== 'function') {\n DEBUG_BUILD && debug.warn('instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance');\n return sql;\n }\n\n return _instrumentSqlInstance(sql, { requireParentSpan: true, ...options }) ;\n}\n\n/**\n * Instruments a sql instance by wrapping its query execution methods.\n */\nfunction _instrumentSqlInstance(\n sql,\n options,\n parentConnectionContext,\n) {\n // Check if already instrumented to prevent double-wrapping\n // Using Symbol.for() ensures the marker survives proxying\n if ((sql )[INSTRUMENTED_MARKER]) {\n return sql;\n }\n\n // Wrap the sql function to intercept query creation\n const proxiedSql = new Proxy(sql , {\n apply(target, thisArg, argumentsList) {\n const query = Reflect.apply(target, thisArg, argumentsList);\n\n if (query && typeof query === 'object' && 'handle' in query) {\n _wrapSingleQueryHandle(query , proxiedSql, options);\n }\n\n return query;\n },\n get(target, prop) {\n const original = (target )[prop];\n\n if (typeof prop !== 'string' || typeof original !== 'function') {\n return original;\n }\n\n // Wrap methods that return PendingQuery objects (unsafe, file)\n if (prop === 'unsafe' || prop === 'file') {\n return _wrapQueryMethod(original , target, proxiedSql, options);\n }\n\n // Wrap begin and reserve (not savepoint to avoid duplicate spans)\n if (prop === 'begin' || prop === 'reserve') {\n return _wrapCallbackMethod(original , target, proxiedSql, options);\n }\n\n return original;\n },\n });\n\n // Use provided parent context if available, otherwise extract from sql.options\n if (parentConnectionContext) {\n (proxiedSql )[CONNECTION_CONTEXT_SYMBOL] = parentConnectionContext;\n } else {\n _attachConnectionContext(sql, proxiedSql );\n }\n\n // Mark both the original and proxy as instrumented to prevent double-wrapping\n (sql )[INSTRUMENTED_MARKER] = true;\n (proxiedSql )[INSTRUMENTED_MARKER] = true;\n\n return proxiedSql;\n}\n\n/**\n * Wraps query-returning methods (unsafe, file) to ensure their queries are instrumented.\n */\nfunction _wrapQueryMethod(\n original,\n target,\n proxiedSql,\n options,\n) {\n return function ( ...args) {\n const query = Reflect.apply(original, target, args);\n\n if (query && typeof query === 'object' && 'handle' in query) {\n _wrapSingleQueryHandle(query , proxiedSql, options);\n }\n\n return query;\n };\n}\n\n/**\n * Wraps callback-based methods (begin, reserve) to recursively instrument Sql instances.\n * Note: These methods can also be used as tagged templates, which we pass through unchanged.\n *\n * Savepoint is not wrapped to avoid complex nested transaction instrumentation issues.\n * Queries within savepoint callbacks are still instrumented through the parent transaction's Sql instance.\n */\nfunction _wrapCallbackMethod(\n original,\n target,\n parentSqlInstance,\n options,\n) {\n return function ( ...args) {\n // Extract parent context to propagate to child instances\n const parentContext = (parentSqlInstance )[CONNECTION_CONTEXT_SYMBOL]\n\n;\n\n // Check if this is a callback-based call by verifying the last argument is a function\n const isCallbackBased = typeof args[args.length - 1] === 'function';\n\n if (!isCallbackBased) {\n // Not a callback-based call - could be tagged template or promise-based\n const result = Reflect.apply(original, target, args);\n // If result is a Promise (e.g., reserve() without callback), instrument the resolved Sql instance\n if (result && typeof (result ).then === 'function') {\n return (result ).then((sqlInstance) => {\n return _instrumentSqlInstance(sqlInstance, options, parentContext);\n });\n }\n return result;\n }\n\n // Callback-based call: wrap the callback to instrument the Sql instance\n const callback = (args.length === 1 ? args[0] : args[1]) ;\n const wrappedCallback = function (sqlInstance) {\n const instrumentedSql = _instrumentSqlInstance(sqlInstance, options, parentContext);\n return callback(instrumentedSql);\n };\n\n const newArgs = args.length === 1 ? [wrappedCallback] : [args[0], wrappedCallback];\n return Reflect.apply(original, target, newArgs);\n };\n}\n\n/**\n * Wraps a single query's handle method to create spans.\n */\nfunction _wrapSingleQueryHandle(\n query,\n sqlInstance,\n options,\n) {\n // Prevent double wrapping - check if the handle itself is already wrapped\n if ((query.handle )?.__sentryWrapped) {\n return;\n }\n\n // Mark this query as coming from an instrumented sql instance.\n // This prevents the Node.js Query.prototype fallback patch from double-spanning.\n (query )[QUERY_FROM_INSTRUMENTED_SQL] = true;\n\n const originalHandle = query.handle ;\n\n // IMPORTANT: We must replace the handle function directly, not use a Proxy,\n // because Query.then() internally calls this.handle(), which would bypass a Proxy wrapper.\n const wrappedHandle = async function ( ...args) {\n if (!_shouldCreateSpans(options)) {\n return originalHandle.apply(this, args);\n }\n\n const fullQuery = _reconstructQuery(query.strings);\n const sanitizedSqlQuery = _sanitizeSqlQuery(fullQuery);\n\n return startSpanManual(\n {\n name: sanitizedSqlQuery || 'postgresjs.query',\n op: 'db',\n },\n (span) => {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.postgresjs');\n\n span.setAttributes({\n 'db.system.name': 'postgres',\n 'db.query.text': sanitizedSqlQuery,\n });\n\n const connectionContext = sqlInstance\n ? ((sqlInstance )[CONNECTION_CONTEXT_SYMBOL]\n\n)\n : undefined;\n\n _setConnectionAttributes(span, connectionContext);\n\n if (options.requestHook) {\n try {\n options.requestHook(span, sanitizedSqlQuery, connectionContext);\n } catch (e) {\n span.setAttribute('sentry.hook.error', 'requestHook failed');\n DEBUG_BUILD && debug.error('Error in requestHook for PostgresJs instrumentation:', e);\n }\n }\n\n const queryWithCallbacks = this\n\n;\n\n queryWithCallbacks.resolve = new Proxy(queryWithCallbacks.resolve , {\n apply: (resolveTarget, resolveThisArg, resolveArgs) => {\n try {\n _setOperationName(span, sanitizedSqlQuery, resolveArgs?.[0]?.command);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error('Error ending span in resolve callback:', e);\n }\n\n return Reflect.apply(resolveTarget, resolveThisArg, resolveArgs);\n },\n });\n\n queryWithCallbacks.reject = new Proxy(queryWithCallbacks.reject , {\n apply: (rejectTarget, rejectThisArg, rejectArgs) => {\n try {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: rejectArgs?.[0]?.message || 'unknown_error',\n });\n\n span.setAttribute('db.response.status_code', rejectArgs?.[0]?.code || 'unknown');\n span.setAttribute('error.type', rejectArgs?.[0]?.name || 'unknown');\n\n _setOperationName(span, sanitizedSqlQuery);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error('Error ending span in reject callback:', e);\n }\n return Reflect.apply(rejectTarget, rejectThisArg, rejectArgs);\n },\n });\n\n // Handle synchronous errors that might occur before promise is created\n try {\n return originalHandle.apply(this, args);\n } catch (e) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: e instanceof Error ? e.message : 'unknown_error',\n });\n span.end();\n throw e;\n }\n },\n );\n };\n\n (wrappedHandle ).__sentryWrapped = true;\n query.handle = wrappedHandle;\n}\n\n/**\n * Determines whether a span should be created based on the current context.\n * If `requireParentSpan` is set to true in the options, a span will\n * only be created if there is a parent span available.\n */\nfunction _shouldCreateSpans(options) {\n const hasParentSpan = getActiveSpan() !== undefined;\n return hasParentSpan || !options.requireParentSpan;\n}\n\n/**\n * Reconstructs the full SQL query from template strings with PostgreSQL placeholders.\n *\n * For sql`SELECT * FROM users WHERE id = ${123} AND name = ${'foo'}`:\n * strings = [\"SELECT * FROM users WHERE id = \", \" AND name = \", \"\"]\n * returns: \"SELECT * FROM users WHERE id = $1 AND name = $2\"\n *\n * @internal Exported for testing only\n */\nfunction _reconstructQuery(strings) {\n if (!strings?.length) {\n return undefined;\n }\n if (strings.length === 1) {\n return strings[0] || undefined;\n }\n // Join template parts with PostgreSQL placeholders ($1, $2, etc.)\n return strings.reduce((acc, str, i) => (i === 0 ? str : `${acc}$${i}${str}`), '');\n}\n\n/**\n * Sanitize SQL query as per the OTEL semantic conventions\n * https://opentelemetry.io/docs/specs/semconv/database/database-spans/#sanitization-of-dbquerytext\n *\n * PostgreSQL $n placeholders are preserved per OTEL spec - they're parameterized queries,\n * not sensitive literals. Only actual values (strings, numbers, booleans) are sanitized.\n *\n * @internal Exported for testing only\n */\nfunction _sanitizeSqlQuery(sqlQuery) {\n if (!sqlQuery) {\n return 'Unknown SQL Query';\n }\n\n return (\n sqlQuery\n // Remove comments first (they may contain newlines and extra spaces)\n .replace(/--.*$/gm, '') // Single line comments (multiline mode)\n .replace(/\\/\\*[\\s\\S]*?\\*\\//g, '') // Multi-line comments\n .replace(/;\\s*$/, '') // Remove trailing semicolons\n // Collapse whitespace to a single space (after removing comments)\n .replace(/\\s+/g, ' ')\n .trim() // Remove extra spaces and trim\n // Sanitize hex/binary literals before string literals\n .replace(/\\bX'[0-9A-Fa-f]*'/gi, '?') // Hex string literals\n .replace(/\\bB'[01]*'/gi, '?') // Binary string literals\n // Sanitize string literals (handles escaped quotes)\n .replace(/'(?:[^']|'')*'/g, '?')\n // Sanitize hex numbers\n .replace(/\\b0x[0-9A-Fa-f]+/gi, '?')\n // Sanitize boolean literals\n .replace(/\\b(?:TRUE|FALSE)\\b/gi, '?')\n // Sanitize numeric literals (preserve $n placeholders via negative lookbehind)\n .replace(/-?\\b\\d+\\.?\\d*[eE][+-]?\\d+\\b/g, '?') // Scientific notation\n .replace(/-?\\b\\d+\\.\\d+\\b/g, '?') // Decimals\n .replace(/-?\\.\\d+\\b/g, '?') // Decimals starting with dot\n .replace(/(? {\n const levels = new Set(options.levels || CONSOLE_LEVELS);\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n addConsoleInstrumentationHandler(({ args, level }) => {\n if (getClient() !== client || !levels.has(level)) {\n return;\n }\n\n addConsoleBreadcrumb(level, args);\n });\n },\n };\n});\n\n/**\n * Capture a console breadcrumb.\n *\n * Exported just for tests.\n */\nfunction addConsoleBreadcrumb(level, args) {\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: args,\n logger: 'console',\n },\n level: severityLevelFromString(level),\n message: formatConsoleArgs(args),\n };\n\n if (level === 'assert') {\n if (args[0] === false) {\n const assertionArgs = args.slice(1);\n breadcrumb.message =\n assertionArgs.length > 0 ? `Assertion failed: ${formatConsoleArgs(assertionArgs)}` : 'Assertion failed';\n breadcrumb.data.arguments = assertionArgs;\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n addBreadcrumb(breadcrumb, {\n input: args,\n level,\n });\n}\n\nfunction formatConsoleArgs(values) {\n return 'util' in GLOBAL_OBJ && typeof (GLOBAL_OBJ ).util.format === 'function'\n ? (GLOBAL_OBJ ).util.format(...values)\n : safeJoin(values, ' ');\n}\n\nexport { addConsoleBreadcrumb, consoleIntegration };\n//# sourceMappingURL=console.js.map\n", - "import { getCurrentScope, getIsolationScope } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\nimport { GEN_AI_CONVERSATION_ID_ATTRIBUTE } from '../semanticAttributes.js';\n\nconst INTEGRATION_NAME = 'ConversationId';\n\nconst _conversationIdIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n client.on('spanStart', (span) => {\n const scopeData = getCurrentScope().getScopeData();\n const isolationScopeData = getIsolationScope().getScopeData();\n\n const conversationId = scopeData.conversationId || isolationScopeData.conversationId;\n\n if (conversationId) {\n span.setAttribute(GEN_AI_CONVERSATION_ID_ATTRIBUTE, conversationId);\n }\n });\n },\n };\n}) ;\n\n/**\n * Automatically applies conversation ID from scope to spans.\n *\n * This integration reads the conversation ID from the current or isolation scope\n * and applies it to spans when they start. This ensures the conversation ID is\n * available for all AI-related operations.\n */\nconst conversationIdIntegration = defineIntegration(_conversationIdIntegration);\n\nexport { conversationIdIntegration };\n//# sourceMappingURL=conversationId.js.map\n", - "import { _INTERNAL_captureMetric } from './internal.js';\n\n/**\n * Options for capturing a metric.\n */\n\n/**\n * Capture a metric with the given type, name, and value.\n *\n * @param type - The type of the metric.\n * @param name - The name of the metric.\n * @param value - The value of the metric.\n * @param options - Options for capturing the metric.\n */\nfunction captureMetric(type, name, value, options) {\n _INTERNAL_captureMetric(\n { type, name, value, unit: options?.unit, attributes: options?.attributes },\n { scope: options?.scope },\n );\n}\n\n/**\n * @summary Increment a counter metric.\n *\n * @param name - The name of the counter metric.\n * @param value - The value to increment by (defaults to 1).\n * @param options - Options for capturing the metric.\n *\n * @example\n *\n * ```\n * Sentry.metrics.count('api.requests', 1, {\n * attributes: {\n * endpoint: '/api/users',\n * method: 'GET',\n * status: 200\n * }\n * });\n * ```\n *\n * @example With custom value\n *\n * ```\n * Sentry.metrics.count('items.processed', 5, {\n * attributes: {\n * processor: 'batch-processor',\n * queue: 'high-priority'\n * }\n * });\n * ```\n */\nfunction count(name, value = 1, options) {\n captureMetric('counter', name, value, options);\n}\n\n/**\n * @summary Set a gauge metric to a specific value.\n *\n * @param name - The name of the gauge metric.\n * @param value - The current value of the gauge.\n * @param options - Options for capturing the metric.\n *\n * @example\n *\n * ```\n * Sentry.metrics.gauge('memory.usage', 1024, {\n * unit: 'megabyte',\n * attributes: {\n * process: 'web-server',\n * region: 'us-east-1'\n * }\n * });\n * ```\n *\n * @example Without unit\n *\n * ```\n * Sentry.metrics.gauge('active.connections', 42, {\n * attributes: {\n * server: 'api-1',\n * protocol: 'websocket'\n * }\n * });\n * ```\n */\nfunction gauge(name, value, options) {\n captureMetric('gauge', name, value, options);\n}\n\n/**\n * @summary Record a value in a distribution metric.\n *\n * @param name - The name of the distribution metric.\n * @param value - The value to record in the distribution.\n * @param options - Options for capturing the metric.\n *\n * @example\n *\n * ```\n * Sentry.metrics.distribution('task.duration', 500, {\n * unit: 'millisecond',\n * attributes: {\n * task: 'data-processing',\n * priority: 'high'\n * }\n * });\n * ```\n *\n * @example Without unit\n *\n * ```\n * Sentry.metrics.distribution('batch.size', 100, {\n * attributes: {\n * processor: 'batch-1',\n * type: 'async'\n * }\n * });\n * ```\n */\nfunction distribution(name, value, options) {\n captureMetric('distribution', name, value, options);\n}\n\nexport { count, distribution, gauge };\n//# sourceMappingURL=public-api.js.map\n", - "/**\n * OpenAI Integration Telemetry Attributes\n * Based on OpenTelemetry Semantic Conventions for Generative AI\n * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/\n */\n\n// =============================================================================\n// OPENTELEMETRY SEMANTIC CONVENTIONS FOR GENAI\n// =============================================================================\n\n/**\n * The input messages sent to the model\n */\nconst GEN_AI_PROMPT_ATTRIBUTE = 'gen_ai.prompt';\n\n/**\n * The Generative AI system being used\n * For OpenAI, this should always be \"openai\"\n */\nconst GEN_AI_SYSTEM_ATTRIBUTE = 'gen_ai.system';\n\n/**\n * The name of the model as requested\n * Examples: \"gpt-4\", \"gpt-3.5-turbo\"\n */\nconst GEN_AI_REQUEST_MODEL_ATTRIBUTE = 'gen_ai.request.model';\n\n/**\n * Whether streaming was enabled for the request\n */\nconst GEN_AI_REQUEST_STREAM_ATTRIBUTE = 'gen_ai.request.stream';\n\n/**\n * The temperature setting for the model request\n */\nconst GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE = 'gen_ai.request.temperature';\n\n/**\n * The maximum number of tokens requested\n */\nconst GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE = 'gen_ai.request.max_tokens';\n\n/**\n * The frequency penalty setting for the model request\n */\nconst GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE = 'gen_ai.request.frequency_penalty';\n\n/**\n * The presence penalty setting for the model request\n */\nconst GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE = 'gen_ai.request.presence_penalty';\n\n/**\n * The top_p (nucleus sampling) setting for the model request\n */\nconst GEN_AI_REQUEST_TOP_P_ATTRIBUTE = 'gen_ai.request.top_p';\n\n/**\n * The top_k setting for the model request\n */\nconst GEN_AI_REQUEST_TOP_K_ATTRIBUTE = 'gen_ai.request.top_k';\n\n/**\n * The encoding format for the model request\n */\nconst GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE = 'gen_ai.request.encoding_format';\n\n/**\n * The dimensions for the model request\n */\nconst GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE = 'gen_ai.request.dimensions';\n\n/**\n * Array of reasons why the model stopped generating tokens\n */\nconst GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE = 'gen_ai.response.finish_reasons';\n\n/**\n * The name of the model that generated the response\n */\nconst GEN_AI_RESPONSE_MODEL_ATTRIBUTE = 'gen_ai.response.model';\n\n/**\n * The unique identifier for the response\n */\nconst GEN_AI_RESPONSE_ID_ATTRIBUTE = 'gen_ai.response.id';\n\n/**\n * The reason why the model stopped generating tokens\n */\nconst GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE = 'gen_ai.response.stop_reason';\n\n/**\n * The number of tokens used in the prompt\n */\nconst GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE = 'gen_ai.usage.input_tokens';\n\n/**\n * The number of tokens used in the response\n */\nconst GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE = 'gen_ai.usage.output_tokens';\n\n/**\n * The total number of tokens used (input + output)\n */\nconst GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE = 'gen_ai.usage.total_tokens';\n\n/**\n * The operation name\n */\nconst GEN_AI_OPERATION_NAME_ATTRIBUTE = 'gen_ai.operation.name';\n\n/**\n * Original length of messages array, used to indicate truncations had occured\n */\nconst GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE = 'sentry.sdk_meta.gen_ai.input.messages.original_length';\n\n/**\n * The prompt messages\n * Only recorded when recordInputs is enabled\n */\nconst GEN_AI_INPUT_MESSAGES_ATTRIBUTE = 'gen_ai.input.messages';\n\n/**\n * The model's response messages including text and tool calls\n * Only recorded when recordOutputs is enabled\n * Format: stringified array of message objects with role, parts, and finish_reason\n * @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-output-messages\n */\nconst GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE = 'gen_ai.output.messages';\n\n/**\n * The system instructions extracted from system messages\n * Only recorded when recordInputs is enabled\n * According to OpenTelemetry spec: https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-system-instructions\n */\nconst GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE = 'gen_ai.system_instructions';\n\n/**\n * The response text\n * Only recorded when recordOutputs is enabled\n */\nconst GEN_AI_RESPONSE_TEXT_ATTRIBUTE = 'gen_ai.response.text';\n\n/**\n * The available tools from incoming request\n * Only recorded when recordInputs is enabled\n */\nconst GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE = 'gen_ai.request.available_tools';\n\n/**\n * Whether the response is a streaming response\n */\nconst GEN_AI_RESPONSE_STREAMING_ATTRIBUTE = 'gen_ai.response.streaming';\n\n/**\n * The tool calls from the response\n * Only recorded when recordOutputs is enabled\n */\nconst GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE = 'gen_ai.response.tool_calls';\n\n/**\n * The agent name\n */\nconst GEN_AI_AGENT_NAME_ATTRIBUTE = 'gen_ai.agent.name';\n\n/**\n * The pipeline name\n */\nconst GEN_AI_PIPELINE_NAME_ATTRIBUTE = 'gen_ai.pipeline.name';\n\n/**\n * The conversation ID for linking messages across API calls\n * For OpenAI Assistants API: thread_id\n * For LangGraph: configurable.thread_id\n */\nconst GEN_AI_CONVERSATION_ID_ATTRIBUTE = 'gen_ai.conversation.id';\n\n/**\n * The number of cache creation input tokens used\n */\nconst GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE = 'gen_ai.usage.cache_creation_input_tokens';\n\n/**\n * The number of cache read input tokens used\n */\nconst GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE = 'gen_ai.usage.cache_read_input_tokens';\n\n/**\n * The number of cache write input tokens used\n */\nconst GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE = 'gen_ai.usage.input_tokens.cache_write';\n\n/**\n * The number of cached input tokens that were used\n */\nconst GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE = 'gen_ai.usage.input_tokens.cached';\n\n/**\n * The span operation name for invoking an agent\n */\nconst GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE = 'gen_ai.invoke_agent';\n\n/**\n * The span operation name for generating text\n */\nconst GEN_AI_GENERATE_TEXT_DO_GENERATE_OPERATION_ATTRIBUTE = 'gen_ai.generate_text';\n\n/**\n * The span operation name for streaming text\n */\nconst GEN_AI_STREAM_TEXT_DO_STREAM_OPERATION_ATTRIBUTE = 'gen_ai.stream_text';\n\n/**\n * The span operation name for generating object\n */\nconst GEN_AI_GENERATE_OBJECT_DO_GENERATE_OPERATION_ATTRIBUTE = 'gen_ai.generate_object';\n\n/**\n * The span operation name for streaming object\n */\nconst GEN_AI_STREAM_OBJECT_DO_STREAM_OPERATION_ATTRIBUTE = 'gen_ai.stream_object';\n\n/**\n * The embeddings input\n * Only recorded when recordInputs is enabled\n */\nconst GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE = 'gen_ai.embeddings.input';\n\n/**\n * The span operation name for embedding\n */\nconst GEN_AI_EMBED_DO_EMBED_OPERATION_ATTRIBUTE = 'gen_ai.embeddings';\n\n/**\n * The span operation name for embedding many\n */\nconst GEN_AI_EMBED_MANY_DO_EMBED_OPERATION_ATTRIBUTE = 'gen_ai.embeddings';\n\n/**\n * The span operation name for reranking\n */\nconst GEN_AI_RERANK_DO_RERANK_OPERATION_ATTRIBUTE = 'gen_ai.rerank';\n\n/**\n * The span operation name for executing a tool\n */\nconst GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE = 'gen_ai.execute_tool';\n\n/**\n * The tool name for tool call spans\n */\nconst GEN_AI_TOOL_NAME_ATTRIBUTE = 'gen_ai.tool.name';\n\n/**\n * The tool call ID\n */\nconst GEN_AI_TOOL_CALL_ID_ATTRIBUTE = 'gen_ai.tool.call.id';\n\n/**\n * The tool type (e.g., 'function')\n */\nconst GEN_AI_TOOL_TYPE_ATTRIBUTE = 'gen_ai.tool.type';\n\n/**\n * The tool input/arguments\n */\nconst GEN_AI_TOOL_INPUT_ATTRIBUTE = 'gen_ai.tool.input';\n\n/**\n * The tool output/result\n */\nconst GEN_AI_TOOL_OUTPUT_ATTRIBUTE = 'gen_ai.tool.output';\n\n/**\n * The description of the tool being used\n * @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-tool-description\n */\nconst GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE = 'gen_ai.tool.description';\n\n// =============================================================================\n// OPENAI-SPECIFIC ATTRIBUTES\n// =============================================================================\n\n/**\n * The response ID from OpenAI\n */\nconst OPENAI_RESPONSE_ID_ATTRIBUTE = 'openai.response.id';\n\n/**\n * The response model from OpenAI\n */\nconst OPENAI_RESPONSE_MODEL_ATTRIBUTE = 'openai.response.model';\n\n/**\n * The response timestamp from OpenAI (ISO string)\n */\nconst OPENAI_RESPONSE_TIMESTAMP_ATTRIBUTE = 'openai.response.timestamp';\n\n/**\n * The number of completion tokens used\n */\nconst OPENAI_USAGE_COMPLETION_TOKENS_ATTRIBUTE = 'openai.usage.completion_tokens';\n\n/**\n * The number of prompt tokens used\n */\nconst OPENAI_USAGE_PROMPT_TOKENS_ATTRIBUTE = 'openai.usage.prompt_tokens';\n\n// =============================================================================\n// OPENAI OPERATIONS\n// =============================================================================\n\n/**\n * OpenAI API operations following OpenTelemetry semantic conventions\n * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/#llm-request-spans\n */\nconst OPENAI_OPERATIONS = {\n CHAT: 'chat',\n EMBEDDINGS: 'embeddings',\n} ;\n\n// =============================================================================\n// ANTHROPIC AI OPERATIONS\n// =============================================================================\n\n/**\n * The response timestamp from Anthropic AI (ISO string)\n */\nconst ANTHROPIC_AI_RESPONSE_TIMESTAMP_ATTRIBUTE = 'anthropic.response.timestamp';\n\nexport { ANTHROPIC_AI_RESPONSE_TIMESTAMP_ATTRIBUTE, GEN_AI_AGENT_NAME_ATTRIBUTE, GEN_AI_CONVERSATION_ID_ATTRIBUTE, GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_EMBED_DO_EMBED_OPERATION_ATTRIBUTE, GEN_AI_EMBED_MANY_DO_EMBED_OPERATION_ATTRIBUTE, GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE, GEN_AI_GENERATE_OBJECT_DO_GENERATE_OPERATION_ATTRIBUTE, GEN_AI_GENERATE_TEXT_DO_GENERATE_OPERATION_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE, GEN_AI_PIPELINE_NAME_ATTRIBUTE, GEN_AI_PROMPT_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE, GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_K_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_RERANK_DO_RERANK_OPERATION_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE, GEN_AI_RESPONSE_STREAMING_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_STREAM_OBJECT_DO_STREAM_OPERATION_ATTRIBUTE, GEN_AI_STREAM_TEXT_DO_STREAM_OPERATION_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_TOOL_CALL_ID_ATTRIBUTE, GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_TOOL_OUTPUT_ATTRIBUTE, GEN_AI_TOOL_TYPE_ATTRIBUTE, GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, OPENAI_OPERATIONS, OPENAI_RESPONSE_ID_ATTRIBUTE, OPENAI_RESPONSE_MODEL_ATTRIBUTE, OPENAI_RESPONSE_TIMESTAMP_ATTRIBUTE, OPENAI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, OPENAI_USAGE_PROMPT_TOKENS_ATTRIBUTE };\n//# sourceMappingURL=gen-ai-attributes.js.map\n", - "// Global map to track tool call IDs to their corresponding span contexts.\n// This allows us to capture tool errors and link them to the correct span\n// without keeping full Span objects (and their potentially large attributes) alive.\nconst toolCallSpanContextMap = new Map();\n\n// Operation sets for efficient mapping to OpenTelemetry semantic convention values\nconst INVOKE_AGENT_OPS = new Set(['ai.generateText', 'ai.streamText', 'ai.generateObject', 'ai.streamObject']);\n\nconst GENERATE_CONTENT_OPS = new Set([\n 'ai.generateText.doGenerate',\n 'ai.streamText.doStream',\n 'ai.generateObject.doGenerate',\n 'ai.streamObject.doStream',\n]);\n\nconst EMBEDDINGS_OPS = new Set(['ai.embed.doEmbed', 'ai.embedMany.doEmbed']);\n\nconst RERANK_OPS = new Set(['ai.rerank.doRerank']);\n\nconst DO_SPAN_NAME_PREFIX = {\n 'ai.embed.doEmbed': 'embeddings',\n 'ai.embedMany.doEmbed': 'embeddings',\n 'ai.rerank.doRerank': 'rerank',\n};\n\nexport { DO_SPAN_NAME_PREFIX, EMBEDDINGS_OPS, GENERATE_CONTENT_OPS, INVOKE_AGENT_OPS, RERANK_OPS, toolCallSpanContextMap };\n//# sourceMappingURL=constants.js.map\n", - "/**\n * Inline media content source, with a potentially very large base64\n * blob or data: uri.\n */\n\n/**\n * Check if a content part is an OpenAI/Anthropic media source\n */\nfunction isContentMedia(part) {\n if (!part || typeof part !== 'object') return false;\n\n return (\n isContentMediaSource(part) ||\n hasInlineData(part) ||\n hasImageUrl(part) ||\n hasInputAudio(part) ||\n hasFileData(part) ||\n hasMediaTypeData(part) ||\n hasVercelFileData(part) ||\n hasVercelImageData(part) ||\n hasBlobOrBase64Type(part) ||\n hasB64Json(part) ||\n hasImageGenerationResult(part) ||\n hasDataUri(part)\n );\n}\n\nfunction hasImageUrl(part) {\n if (!('image_url' in part)) return false;\n if (typeof part.image_url === 'string') return part.image_url.startsWith('data:');\n return hasNestedImageUrl(part);\n}\n\nfunction hasNestedImageUrl(part) {\n return (\n 'image_url' in part &&\n !!part.image_url &&\n typeof part.image_url === 'object' &&\n 'url' in part.image_url &&\n typeof part.image_url.url === 'string' &&\n part.image_url.url.startsWith('data:')\n );\n}\n\nfunction isContentMediaSource(part) {\n return 'type' in part && typeof part.type === 'string' && 'source' in part && isContentMedia(part.source);\n}\n\nfunction hasInlineData(part) {\n return (\n 'inlineData' in part &&\n !!part.inlineData &&\n typeof part.inlineData === 'object' &&\n 'data' in part.inlineData &&\n typeof part.inlineData.data === 'string'\n );\n}\n\nfunction hasInputAudio(part) {\n return (\n 'type' in part &&\n part.type === 'input_audio' &&\n 'input_audio' in part &&\n !!part.input_audio &&\n typeof part.input_audio === 'object' &&\n 'data' in part.input_audio &&\n typeof part.input_audio.data === 'string'\n );\n}\n\nfunction hasFileData(part) {\n return (\n 'type' in part &&\n part.type === 'file' &&\n 'file' in part &&\n !!part.file &&\n typeof part.file === 'object' &&\n 'file_data' in part.file &&\n typeof part.file.file_data === 'string'\n );\n}\n\nfunction hasMediaTypeData(part) {\n return 'media_type' in part && typeof part.media_type === 'string' && 'data' in part;\n}\n\n/**\n * Check for Vercel AI SDK file format: { type: \"file\", mediaType: \"...\", data: \"...\" }\n * Only matches base64/binary data, not HTTP/HTTPS URLs (which should be preserved).\n */\nfunction hasVercelFileData(part) {\n return (\n 'type' in part &&\n part.type === 'file' &&\n 'mediaType' in part &&\n typeof part.mediaType === 'string' &&\n 'data' in part &&\n typeof part.data === 'string' &&\n // Only strip base64/binary data, not HTTP/HTTPS URLs which should be preserved as references\n !part.data.startsWith('http://') &&\n !part.data.startsWith('https://')\n );\n}\n\n/**\n * Check for Vercel AI SDK image format: { type: \"image\", image: \"base64...\", mimeType?: \"...\" }\n * Only matches base64/data URIs, not HTTP/HTTPS URLs (which should be preserved).\n * Note: mimeType is optional in Vercel AI SDK image parts.\n */\nfunction hasVercelImageData(part) {\n return (\n 'type' in part &&\n part.type === 'image' &&\n 'image' in part &&\n typeof part.image === 'string' &&\n // Only strip base64/data URIs, not HTTP/HTTPS URLs which should be preserved as references\n !part.image.startsWith('http://') &&\n !part.image.startsWith('https://')\n );\n}\n\nfunction hasBlobOrBase64Type(part) {\n return 'type' in part && (part.type === 'blob' || part.type === 'base64');\n}\n\nfunction hasB64Json(part) {\n return 'b64_json' in part;\n}\n\nfunction hasImageGenerationResult(part) {\n return 'type' in part && 'result' in part && part.type === 'image_generation';\n}\n\nfunction hasDataUri(part) {\n return 'uri' in part && typeof part.uri === 'string' && part.uri.startsWith('data:');\n}\n\nconst REMOVED_STRING = '[Blob substitute]';\n\nconst MEDIA_FIELDS = ['image_url', 'data', 'content', 'b64_json', 'result', 'uri', 'image'] ;\n\n/**\n * Replace inline binary data in a single media content part with a placeholder.\n */\nfunction stripInlineMediaFromSingleMessage(part) {\n const strip = { ...part };\n if (isContentMedia(strip.source)) {\n strip.source = stripInlineMediaFromSingleMessage(strip.source);\n }\n if (hasInlineData(part)) {\n strip.inlineData = { ...part.inlineData, data: REMOVED_STRING };\n }\n if (hasNestedImageUrl(part)) {\n strip.image_url = { ...part.image_url, url: REMOVED_STRING };\n }\n if (hasInputAudio(part)) {\n strip.input_audio = { ...part.input_audio, data: REMOVED_STRING };\n }\n if (hasFileData(part)) {\n strip.file = { ...part.file, file_data: REMOVED_STRING };\n }\n for (const field of MEDIA_FIELDS) {\n if (typeof strip[field] === 'string') strip[field] = REMOVED_STRING;\n }\n return strip;\n}\n\nexport { isContentMedia, stripInlineMediaFromSingleMessage };\n//# sourceMappingURL=mediaStripping.js.map\n", - "import { isContentMedia, stripInlineMediaFromSingleMessage } from './mediaStripping.js';\n\n/**\n * Default maximum size in bytes for GenAI messages.\n * Messages exceeding this limit will be truncated.\n */\nconst DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT = 20000;\n\n/**\n * Message format used by OpenAI and Anthropic APIs.\n */\n\n/**\n * Calculate the UTF-8 byte length of a string.\n */\nconst utf8Bytes = (text) => {\n return new TextEncoder().encode(text).length;\n};\n\n/**\n * Calculate the UTF-8 byte length of a value's JSON representation.\n */\nconst jsonBytes = (value) => {\n return utf8Bytes(JSON.stringify(value));\n};\n\n/**\n * Truncate a string to fit within maxBytes (inclusive) when encoded as UTF-8.\n * Uses binary search for efficiency with multi-byte characters.\n *\n * @param text - The string to truncate\n * @param maxBytes - Maximum byte length (inclusive, UTF-8 encoded)\n * @returns Truncated string whose UTF-8 byte length is at most maxBytes\n */\nfunction truncateTextByBytes(text, maxBytes) {\n if (utf8Bytes(text) <= maxBytes) {\n return text;\n }\n\n let low = 0;\n let high = text.length;\n let bestFit = '';\n\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n const candidate = text.slice(0, mid);\n const byteSize = utf8Bytes(candidate);\n\n if (byteSize <= maxBytes) {\n bestFit = candidate;\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n\n return bestFit;\n}\n\n/**\n * Extract text content from a message item.\n * Handles plain strings and objects with a text property.\n *\n * @returns The text content\n */\nfunction getItemText(item) {\n if (typeof item === 'string') {\n return item;\n }\n if ('text' in item && typeof item.text === 'string') {\n return item.text;\n }\n return '';\n}\n\n/**\n * Create a new item with updated text content while preserving the original structure.\n *\n * @param item - Original item (string or object)\n * @param text - New text content\n * @returns New item with updated text\n */\nfunction withItemText(item, text) {\n if (typeof item === 'string') {\n return text;\n }\n return { ...item, text };\n}\n\n/**\n * Check if a message has the OpenAI/Anthropic content format.\n */\nfunction isContentMessage(message) {\n return (\n message !== null &&\n typeof message === 'object' &&\n 'content' in message &&\n typeof (message ).content === 'string'\n );\n}\n\n/**\n * Check if a message has the OpenAI/Anthropic content array format.\n */\nfunction isContentArrayMessage(message) {\n return message !== null && typeof message === 'object' && 'content' in message && Array.isArray(message.content);\n}\n\n/**\n * Check if a message has the Google GenAI parts format.\n */\nfunction isPartsMessage(message) {\n return (\n message !== null &&\n typeof message === 'object' &&\n 'parts' in message &&\n Array.isArray((message ).parts) &&\n (message ).parts.length > 0\n );\n}\n\n/**\n * Truncate a message with `content: string` format (OpenAI/Anthropic).\n *\n * @param message - Message with content property\n * @param maxBytes - Maximum byte limit\n * @returns Array with truncated message, or empty array if it doesn't fit\n */\nfunction truncateContentMessage(message, maxBytes) {\n // Calculate overhead (message structure without content)\n const emptyMessage = { ...message, content: '' };\n const overhead = jsonBytes(emptyMessage);\n const availableForContent = maxBytes - overhead;\n\n if (availableForContent <= 0) {\n return [];\n }\n\n const truncatedContent = truncateTextByBytes(message.content, availableForContent);\n return [{ ...message, content: truncatedContent }];\n}\n\n/**\n * Extracts the array items and their key from an array-based message.\n * Returns `null` key if neither `parts` nor `content` is a valid array.\n */\nfunction getArrayItems(message)\n\n {\n if ('parts' in message && Array.isArray(message.parts)) {\n return { key: 'parts', items: message.parts };\n }\n if ('content' in message && Array.isArray(message.content)) {\n return { key: 'content', items: message.content };\n }\n return { key: null, items: [] };\n}\n\n/**\n * Truncate a message with an array-based format.\n * Handles both `parts: [...]` (Google GenAI) and `content: [...]` (OpenAI/Anthropic multimodal).\n * Keeps as many complete items as possible, only truncating the first item if needed.\n *\n * @param message - Message with parts or content array\n * @param maxBytes - Maximum byte limit\n * @returns Array with truncated message, or empty array if it doesn't fit\n */\nfunction truncateArrayMessage(message, maxBytes) {\n const { key, items } = getArrayItems(message);\n\n if (key === null || items.length === 0) {\n return [];\n }\n\n // Calculate overhead by creating empty text items\n const emptyItems = items.map(item => withItemText(item, ''));\n const overhead = jsonBytes({ ...message, [key]: emptyItems });\n let remainingBytes = maxBytes - overhead;\n\n if (remainingBytes <= 0) {\n return [];\n }\n\n // Include items until we run out of space\n const includedItems = [];\n\n for (const item of items) {\n const text = getItemText(item);\n const textSize = utf8Bytes(text);\n\n if (textSize <= remainingBytes) {\n // Item fits: include it as-is\n includedItems.push(item);\n remainingBytes -= textSize;\n } else if (includedItems.length === 0) {\n // First item doesn't fit: truncate it\n const truncated = truncateTextByBytes(text, remainingBytes);\n if (truncated) {\n includedItems.push(withItemText(item, truncated));\n }\n break;\n } else {\n // Subsequent item doesn't fit: stop here\n break;\n }\n }\n\n /* c8 ignore start\n * for type safety only, algorithm guarantees SOME text included */\n if (includedItems.length <= 0) {\n return [];\n } else {\n /* c8 ignore stop */\n return [{ ...message, [key]: includedItems }];\n }\n}\n\n/**\n * Truncate a single message to fit within maxBytes.\n *\n * Supports three message formats:\n * - OpenAI/Anthropic: `{ ..., content: string }`\n * - Vercel AI/OpenAI multimodal: `{ ..., content: Array<{type, text?, ...}> }`\n * - Google GenAI: `{ ..., parts: Array }`\n *\n * @param message - The message to truncate\n * @param maxBytes - Maximum byte limit for the message\n * @returns Array containing the truncated message, or empty array if truncation fails\n */\nfunction truncateSingleMessage(message, maxBytes) {\n if (!message) return [];\n\n // Handle plain strings (e.g., embeddings input)\n if (typeof message === 'string') {\n const truncated = truncateTextByBytes(message, maxBytes);\n return truncated ? [truncated] : [];\n }\n\n if (typeof message !== 'object') {\n return [];\n }\n\n if (isContentMessage(message)) {\n return truncateContentMessage(message, maxBytes);\n }\n\n if (isContentArrayMessage(message) || isPartsMessage(message)) {\n return truncateArrayMessage(message, maxBytes);\n }\n\n // Unknown message format: cannot truncate safely\n return [];\n}\n\n/**\n * Strip the inline media from message arrays.\n *\n * This returns a stripped message. We do NOT want to mutate the data in place,\n * because of course we still want the actual API/client to handle the media.\n */\nfunction stripInlineMediaFromMessages(messages) {\n const stripped = messages.map(message => {\n let newMessage = undefined;\n if (!!message && typeof message === 'object') {\n if (isContentArrayMessage(message)) {\n newMessage = {\n ...message,\n content: stripInlineMediaFromMessages(message.content),\n };\n } else if ('content' in message && isContentMedia(message.content)) {\n newMessage = {\n ...message,\n content: stripInlineMediaFromSingleMessage(message.content),\n };\n }\n if (isPartsMessage(message)) {\n newMessage = {\n // might have to strip content AND parts\n ...(newMessage ?? message),\n parts: stripInlineMediaFromMessages(message.parts),\n };\n }\n if (isContentMedia(newMessage)) {\n newMessage = stripInlineMediaFromSingleMessage(newMessage);\n } else if (isContentMedia(message)) {\n newMessage = stripInlineMediaFromSingleMessage(message);\n }\n }\n return newMessage ?? message;\n });\n return stripped;\n}\n\n/**\n * Truncate an array of messages to fit within a byte limit.\n *\n * Strategy:\n * - Always keeps only the last (newest) message\n * - Strips inline media from the message\n * - Truncates the message content if it exceeds the byte limit\n *\n * @param messages - Array of messages to truncate\n * @param maxBytes - Maximum total byte limit for the message\n * @returns Array containing only the last message (possibly truncated)\n *\n * @example\n * ```ts\n * const messages = [msg1, msg2, msg3, msg4]; // newest is msg4\n * const truncated = truncateMessagesByBytes(messages, 10000);\n * // Returns [msg4] (truncated if needed)\n * ```\n */\nfunction truncateMessagesByBytes(messages, maxBytes) {\n // Early return for empty or invalid input\n if (!Array.isArray(messages) || messages.length === 0) {\n return messages;\n }\n\n // The result is always a single-element array that callers wrap with\n // JSON.stringify([message]), so subtract the 2-byte array wrapper (\"[\" and \"]\")\n // to ensure the final serialized value stays under the limit.\n const effectiveMaxBytes = maxBytes - 2;\n\n // Always keep only the last message\n const lastMessage = messages[messages.length - 1];\n\n // Strip inline media from the single message\n const stripped = stripInlineMediaFromMessages([lastMessage]);\n const strippedMessage = stripped[0];\n\n // Check if it fits\n const messageBytes = jsonBytes(strippedMessage);\n if (messageBytes <= effectiveMaxBytes) {\n return stripped;\n }\n\n // Truncate the single message if needed\n return truncateSingleMessage(strippedMessage, effectiveMaxBytes);\n}\n\n/**\n * Truncate GenAI messages using the default byte limit.\n *\n * Convenience wrapper around `truncateMessagesByBytes` with the default limit.\n *\n * @param messages - Array of messages to truncate\n * @returns Truncated array of messages\n */\nfunction truncateGenAiMessages(messages) {\n return truncateMessagesByBytes(messages, DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT);\n}\n\n/**\n * Truncate GenAI string input using the default byte limit.\n *\n * @param input - The string to truncate\n * @returns Truncated string\n */\nfunction truncateGenAiStringInput(input) {\n return truncateTextByBytes(input, DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT);\n}\n\nexport { DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT, truncateGenAiMessages, truncateGenAiStringInput };\n//# sourceMappingURL=messageTruncation.js.map\n", - "import { captureException } from '../../exports.js';\nimport { getClient } from '../../currentScopes.js';\nimport { isThenable } from '../../utils/is.js';\nimport { GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE } from './gen-ai-attributes.js';\nimport { truncateGenAiStringInput, truncateGenAiMessages } from './messageTruncation.js';\n\n/**\n * Shared utils for AI integrations (OpenAI, Anthropic, Verce.AI, etc.)\n */\n\n/**\n * Resolves AI recording options by falling back to the client's `sendDefaultPii` setting.\n * Precedence: explicit option > sendDefaultPii > false\n */\nfunction resolveAIRecordingOptions(options) {\n const sendDefaultPii = Boolean(getClient()?.getOptions().sendDefaultPii);\n return {\n ...options,\n recordInputs: options?.recordInputs ?? sendDefaultPii,\n recordOutputs: options?.recordOutputs ?? sendDefaultPii,\n } ;\n}\n\n/**\n * Maps AI method paths to OpenTelemetry semantic convention operation names\n * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/#llm-request-spans\n */\nfunction getFinalOperationName(methodPath) {\n if (methodPath.includes('messages')) {\n return 'chat';\n }\n if (methodPath.includes('completions')) {\n return 'text_completion';\n }\n // Google GenAI: models.generateContent* -> generate_content (actually generates AI responses)\n if (methodPath.includes('generateContent')) {\n return 'generate_content';\n }\n // Anthropic: models.get/retrieve -> models (metadata retrieval only)\n if (methodPath.includes('models')) {\n return 'models';\n }\n if (methodPath.includes('chat')) {\n return 'chat';\n }\n return methodPath.split('.').pop() || 'unknown';\n}\n\n/**\n * Get the span operation for AI methods\n * Following Sentry's convention: \"gen_ai.{operation_name}\"\n */\nfunction getSpanOperation(methodPath) {\n return `gen_ai.${getFinalOperationName(methodPath)}`;\n}\n\n/**\n * Build method path from current traversal\n */\nfunction buildMethodPath(currentPath, prop) {\n return currentPath ? `${currentPath}.${prop}` : prop;\n}\n\n/**\n * Set token usage attributes\n * @param span - The span to add attributes to\n * @param promptTokens - The number of prompt tokens\n * @param completionTokens - The number of completion tokens\n * @param cachedInputTokens - The number of cached input tokens\n * @param cachedOutputTokens - The number of cached output tokens\n */\nfunction setTokenUsageAttributes(\n span,\n promptTokens,\n completionTokens,\n cachedInputTokens,\n cachedOutputTokens,\n) {\n if (promptTokens !== undefined) {\n span.setAttributes({\n [GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE]: promptTokens,\n });\n }\n if (completionTokens !== undefined) {\n span.setAttributes({\n [GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: completionTokens,\n });\n }\n if (\n promptTokens !== undefined ||\n completionTokens !== undefined ||\n cachedInputTokens !== undefined ||\n cachedOutputTokens !== undefined\n ) {\n /**\n * Total input tokens in a request is the summation of `input_tokens`,\n * `cache_creation_input_tokens`, and `cache_read_input_tokens`.\n */\n const totalTokens =\n (promptTokens ?? 0) + (completionTokens ?? 0) + (cachedInputTokens ?? 0) + (cachedOutputTokens ?? 0);\n\n span.setAttributes({\n [GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: totalTokens,\n });\n }\n}\n\n/**\n * Get the truncated JSON string for a string or array of strings.\n *\n * @param value - The string or array of strings to truncate\n * @returns The truncated JSON string\n */\nfunction getTruncatedJsonString(value) {\n if (typeof value === 'string') {\n // Some values are already JSON strings, so we don't need to duplicate the JSON parsing\n return truncateGenAiStringInput(value);\n }\n if (Array.isArray(value)) {\n // truncateGenAiMessages returns an array of strings, so we need to stringify it\n const truncatedMessages = truncateGenAiMessages(value);\n return JSON.stringify(truncatedMessages);\n }\n // value is an object, so we need to stringify it\n return JSON.stringify(value);\n}\n\n/**\n * Extract system instructions from messages array.\n * Finds the first system message and formats it according to OpenTelemetry semantic conventions.\n *\n * @param messages - Array of messages to extract system instructions from\n * @returns systemInstructions (JSON string) and filteredMessages (without system message)\n */\nfunction extractSystemInstructions(messages)\n\n {\n if (!Array.isArray(messages)) {\n return { systemInstructions: undefined, filteredMessages: messages };\n }\n\n const systemMessageIndex = messages.findIndex(\n msg => msg && typeof msg === 'object' && 'role' in msg && (msg ).role === 'system',\n );\n\n if (systemMessageIndex === -1) {\n return { systemInstructions: undefined, filteredMessages: messages };\n }\n\n const systemMessage = messages[systemMessageIndex] ;\n const systemContent =\n typeof systemMessage.content === 'string'\n ? systemMessage.content\n : systemMessage.content !== undefined\n ? JSON.stringify(systemMessage.content)\n : undefined;\n\n if (!systemContent) {\n return { systemInstructions: undefined, filteredMessages: messages };\n }\n\n const systemInstructions = JSON.stringify([{ type: 'text', content: systemContent }]);\n const filteredMessages = [...messages.slice(0, systemMessageIndex), ...messages.slice(systemMessageIndex + 1)];\n\n return { systemInstructions, filteredMessages };\n}\n\n/**\n * Creates a wrapped version of .withResponse() that replaces the data field\n * with the instrumented result while preserving metadata (response, request_id).\n */\nasync function createWithResponseWrapper(\n originalWithResponse,\n instrumentedPromise,\n mechanismType,\n) {\n // Attach catch handler to originalWithResponse immediately to prevent unhandled rejection\n // If instrumentedPromise rejects first, we still need this handled\n const safeOriginalWithResponse = originalWithResponse.catch(error => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: mechanismType,\n },\n });\n throw error;\n });\n\n const instrumentedResult = await instrumentedPromise;\n const originalWrapper = await safeOriginalWithResponse;\n\n // Combine instrumented result with original metadata\n if (originalWrapper && typeof originalWrapper === 'object' && 'data' in originalWrapper) {\n return {\n ...originalWrapper,\n data: instrumentedResult,\n };\n }\n return instrumentedResult;\n}\n\n/**\n * Wraps a promise-like object to preserve additional methods (like .withResponse())\n * that AI SDK clients (OpenAI, Anthropic) attach to their APIPromise return values.\n *\n * Standard Promise methods (.then, .catch, .finally) are routed to the instrumented\n * promise to preserve Sentry's span instrumentation, while custom SDK methods are\n * forwarded to the original promise to maintain the SDK's API surface.\n */\nfunction wrapPromiseWithMethods(\n originalPromiseLike,\n instrumentedPromise,\n mechanismType,\n) {\n // If the original result is not thenable, return the instrumented promise\n if (!isThenable(originalPromiseLike)) {\n return instrumentedPromise;\n }\n\n // Create a proxy that forwards Promise methods to instrumentedPromise\n // and preserves additional methods from the original result\n return new Proxy(originalPromiseLike, {\n get(target, prop) {\n // For standard Promise methods (.then, .catch, .finally, Symbol.toStringTag),\n // use instrumentedPromise to preserve Sentry instrumentation.\n // For custom methods (like .withResponse()), use the original target.\n const useInstrumentedPromise = prop in Promise.prototype || prop === Symbol.toStringTag;\n const source = useInstrumentedPromise ? instrumentedPromise : target;\n\n const value = Reflect.get(source, prop) ;\n\n // Special handling for .withResponse() to preserve instrumentation\n // .withResponse() returns { data: T, response: Response, request_id: string }\n if (prop === 'withResponse' && typeof value === 'function') {\n return function wrappedWithResponse() {\n const originalWithResponse = (value ).call(target);\n return createWithResponseWrapper(originalWithResponse, instrumentedPromise, mechanismType);\n };\n }\n\n return typeof value === 'function' ? value.bind(source) : value;\n },\n }) ;\n}\n\nexport { buildMethodPath, extractSystemInstructions, getFinalOperationName, getSpanOperation, getTruncatedJsonString, resolveAIRecordingOptions, setTokenUsageAttributes, wrapPromiseWithMethods };\n//# sourceMappingURL=utils.js.map\n", - "/* eslint-disable max-lines */\n/**\n * AI SDK Telemetry Attributes\n * Based on https://ai-sdk.dev/docs/ai-sdk-core/telemetry#collected-data\n */\n\n// =============================================================================\n// COMMON ATTRIBUTES\n// =============================================================================\n\n/**\n * Common attribute for operation name across all functions and spans\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#collected-data\n */\nconst OPERATION_NAME_ATTRIBUTE = 'operation.name';\n\n/**\n * Common attribute for AI operation ID across all functions and spans\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#collected-data\n */\nconst AI_OPERATION_ID_ATTRIBUTE = 'ai.operationId';\n\n// =============================================================================\n// SHARED ATTRIBUTES\n// =============================================================================\n\n/**\n * `generateText` function - `ai.generateText` span\n * `streamText` function - `ai.streamText` span\n *\n * The prompt that was used when calling the function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamtext-function\n */\nconst AI_PROMPT_ATTRIBUTE = 'ai.prompt';\n\n/**\n * `generateObject` function - `ai.generateObject` span\n * `streamObject` function - `ai.streamObject` span\n *\n * The JSON schema version of the schema that was passed into the function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generateobject-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamobject-function\n */\nconst AI_SCHEMA_ATTRIBUTE = 'ai.schema';\n\n/**\n * `generateObject` function - `ai.generateObject` span\n * `streamObject` function - `ai.streamObject` span\n *\n * The object that was generated (stringified JSON)\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generateobject-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamobject-function\n */\nconst AI_RESPONSE_OBJECT_ATTRIBUTE = 'ai.response.object';\n\n/**\n * `embed` function - `ai.embed.doEmbed` span\n * `embedMany` function - `ai.embedMany` span\n *\n * The values that were passed into the function (array)\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#embed-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#embedmany-function\n */\nconst AI_VALUES_ATTRIBUTE = 'ai.values';\n\n// =============================================================================\n// GENERATETEXT FUNCTION - UNIQUE ATTRIBUTES\n// =============================================================================\n\n/**\n * `generateText` function - `ai.generateText` span\n *\n * The text that was generated\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nconst AI_RESPONSE_TEXT_ATTRIBUTE = 'ai.response.text';\n\n/**\n * `generateText` function - `ai.generateText` span\n *\n * The tool calls that were made as part of the generation (stringified JSON)\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nconst AI_RESPONSE_TOOL_CALLS_ATTRIBUTE = 'ai.response.toolCalls';\n\n/**\n * `generateText` function - `ai.generateText` span\n *\n * The reason why the generation finished\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nconst AI_RESPONSE_FINISH_REASON_ATTRIBUTE = 'ai.response.finishReason';\n\n/**\n * `generateText` function - `ai.generateText.doGenerate` span\n *\n * The messages that were passed into the provider\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nconst AI_PROMPT_MESSAGES_ATTRIBUTE = 'ai.prompt.messages';\n\n/**\n * `generateText` function - `ai.generateText.doGenerate` span\n *\n * Array of stringified tool definitions\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nconst AI_PROMPT_TOOLS_ATTRIBUTE = 'ai.prompt.tools';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The id of the model\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nconst AI_MODEL_ID_ATTRIBUTE = 'ai.model.id';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * Provider specific metadata returned with the generation response\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nconst AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE = 'ai.response.providerMetadata';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The number of cached input tokens that were used\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nconst AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE = 'ai.usage.cachedInputTokens';\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The functionId that was set through `telemetry.functionId`\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nconst AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE = 'ai.telemetry.functionId';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The number of completion tokens that were used\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nconst AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE = 'ai.usage.completionTokens';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The number of prompt tokens that were used\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nconst AI_USAGE_PROMPT_TOKENS_ATTRIBUTE = 'ai.usage.promptTokens';\n\n// =============================================================================\n// BASIC EMBEDDING SPAN INFORMATION\n// =============================================================================\n\n/**\n * Basic embedding span information\n * Embedding spans\n *\n * The number of tokens that were used\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-embedding-span-information\n */\nconst AI_USAGE_TOKENS_ATTRIBUTE = 'ai.usage.tokens';\n\n// =============================================================================\n// TOOL CALL SPANS\n// =============================================================================\n\n/**\n * Tool call spans\n * `ai.toolCall` span\n *\n * The name of the tool\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n */\nconst AI_TOOL_CALL_NAME_ATTRIBUTE = 'ai.toolCall.name';\n\n/**\n * Tool call spans\n * `ai.toolCall` span\n *\n * The id of the tool call\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n */\nconst AI_TOOL_CALL_ID_ATTRIBUTE = 'ai.toolCall.id';\n\n/**\n * Tool call spans\n * `ai.toolCall` span\n *\n * The parameters of the tool call\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n */\nconst AI_TOOL_CALL_ARGS_ATTRIBUTE = 'ai.toolCall.args';\n\n/**\n * Tool call spans\n * `ai.toolCall` span\n *\n * The result of the tool call\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n */\nconst AI_TOOL_CALL_RESULT_ATTRIBUTE = 'ai.toolCall.result';\n\n// =============================================================================\n// PROVIDER METADATA\n// =============================================================================\n\n/**\n * OpenAI Provider Metadata\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/openai\n * @see https://github.com/vercel/ai/blob/65e042afde6aad4da9d7a62526ece839eb34f9a5/packages/openai/src/openai-chat-language-model.ts#L397-L416\n * @see https://github.com/vercel/ai/blob/65e042afde6aad4da9d7a62526ece839eb34f9a5/packages/openai/src/responses/openai-responses-language-model.ts#L377C7-L384\n */\n\nexport { AI_MODEL_ID_ATTRIBUTE, AI_OPERATION_ID_ATTRIBUTE, AI_PROMPT_ATTRIBUTE, AI_PROMPT_MESSAGES_ATTRIBUTE, AI_PROMPT_TOOLS_ATTRIBUTE, AI_RESPONSE_FINISH_REASON_ATTRIBUTE, AI_RESPONSE_OBJECT_ATTRIBUTE, AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE, AI_RESPONSE_TEXT_ATTRIBUTE, AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, AI_SCHEMA_ATTRIBUTE, AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE, AI_TOOL_CALL_ARGS_ATTRIBUTE, AI_TOOL_CALL_ID_ATTRIBUTE, AI_TOOL_CALL_NAME_ATTRIBUTE, AI_TOOL_CALL_RESULT_ATTRIBUTE, AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE, AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, AI_USAGE_PROMPT_TOKENS_ATTRIBUTE, AI_USAGE_TOKENS_ATTRIBUTE, AI_VALUES_ATTRIBUTE, OPERATION_NAME_ATTRIBUTE };\n//# sourceMappingURL=vercel-ai-attributes.js.map\n", - "import { GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE, GEN_AI_RERANK_DO_RERANK_OPERATION_ATTRIBUTE, GEN_AI_EMBED_MANY_DO_EMBED_OPERATION_ATTRIBUTE, GEN_AI_EMBED_DO_EMBED_OPERATION_ATTRIBUTE, GEN_AI_STREAM_OBJECT_DO_STREAM_OPERATION_ATTRIBUTE, GEN_AI_GENERATE_OBJECT_DO_GENERATE_OPERATION_ATTRIBUTE, GEN_AI_STREAM_TEXT_DO_STREAM_OPERATION_ATTRIBUTE, GEN_AI_GENERATE_TEXT_DO_GENERATE_OPERATION_ATTRIBUTE, GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { extractSystemInstructions, getTruncatedJsonString } from '../ai/utils.js';\nimport { toolCallSpanContextMap } from './constants.js';\nimport { AI_PROMPT_ATTRIBUTE, AI_PROMPT_MESSAGES_ATTRIBUTE } from './vercel-ai-attributes.js';\n\n/**\n * Accumulates token data from a span to its parent in the token accumulator map.\n * This function extracts token usage from the current span and adds it to the\n * accumulated totals for its parent span.\n */\nfunction accumulateTokensForParent(span, tokenAccumulator) {\n const parentSpanId = span.parent_span_id;\n if (!parentSpanId) {\n return;\n }\n\n const inputTokens = span.data[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE];\n const outputTokens = span.data[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE];\n\n if (typeof inputTokens === 'number' || typeof outputTokens === 'number') {\n const existing = tokenAccumulator.get(parentSpanId) || { inputTokens: 0, outputTokens: 0 };\n\n if (typeof inputTokens === 'number') {\n existing.inputTokens += inputTokens;\n }\n if (typeof outputTokens === 'number') {\n existing.outputTokens += outputTokens;\n }\n\n tokenAccumulator.set(parentSpanId, existing);\n }\n}\n\n/**\n * Applies accumulated token data to the `gen_ai.invoke_agent` span.\n * Only immediate children of the `gen_ai.invoke_agent` span are considered,\n * since aggregation will automatically occur for each parent span.\n */\nfunction applyAccumulatedTokens(\n spanOrTrace,\n tokenAccumulator,\n) {\n const accumulated = tokenAccumulator.get(spanOrTrace.span_id);\n if (!accumulated || !spanOrTrace.data) {\n return;\n }\n\n if (accumulated.inputTokens > 0) {\n spanOrTrace.data[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] = accumulated.inputTokens;\n }\n if (accumulated.outputTokens > 0) {\n spanOrTrace.data[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] = accumulated.outputTokens;\n }\n if (accumulated.inputTokens > 0 || accumulated.outputTokens > 0) {\n spanOrTrace.data['gen_ai.usage.total_tokens'] = accumulated.inputTokens + accumulated.outputTokens;\n }\n}\n\n/**\n * Builds a map of tool name -> description from all spans with available_tools.\n * This avoids O(n²) iteration and repeated JSON parsing.\n */\nfunction buildToolDescriptionMap(spans) {\n const toolDescriptions = new Map();\n\n for (const span of spans) {\n const availableTools = span.data[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE];\n if (typeof availableTools !== 'string') {\n continue;\n }\n try {\n const tools = JSON.parse(availableTools) ;\n for (const tool of tools) {\n if (tool.name && tool.description && !toolDescriptions.has(tool.name)) {\n toolDescriptions.set(tool.name, tool.description);\n }\n }\n } catch {\n // ignore parse errors\n }\n }\n\n return toolDescriptions;\n}\n\n/**\n * Applies tool descriptions and accumulated tokens to spans in a single pass.\n *\n * - For `gen_ai.execute_tool` spans: looks up tool description from\n * `gen_ai.request.available_tools` on sibling spans\n * - For `gen_ai.invoke_agent` spans: applies accumulated token data from children\n */\nfunction applyToolDescriptionsAndTokens(spans, tokenAccumulator) {\n // Build lookup map once to avoid O(n²) iteration and repeated JSON parsing\n const toolDescriptions = buildToolDescriptionMap(spans);\n\n for (const span of spans) {\n if (span.op === 'gen_ai.execute_tool') {\n const toolName = span.data[GEN_AI_TOOL_NAME_ATTRIBUTE];\n if (typeof toolName === 'string') {\n const description = toolDescriptions.get(toolName);\n if (description) {\n span.data[GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE] = description;\n }\n }\n }\n\n if (span.op === 'gen_ai.invoke_agent') {\n applyAccumulatedTokens(span, tokenAccumulator);\n }\n }\n}\n\n/**\n * Get the span context associated with a tool call ID.\n */\nfunction _INTERNAL_getSpanContextForToolCallId(toolCallId) {\n return toolCallSpanContextMap.get(toolCallId);\n}\n\n/**\n * Clean up the span mapping for a tool call ID\n */\nfunction _INTERNAL_cleanupToolCallSpanContext(toolCallId) {\n toolCallSpanContextMap.delete(toolCallId);\n}\n\n/**\n * Convert an array of tool strings to a JSON string\n */\nfunction convertAvailableToolsToJsonString(tools) {\n const toolObjects = tools.map(tool => {\n if (typeof tool === 'string') {\n try {\n return JSON.parse(tool);\n } catch {\n return tool;\n }\n }\n return tool;\n });\n return JSON.stringify(toolObjects);\n}\n\n/**\n * Filter out invalid entries in messages array\n * @param input - The input array to filter\n * @returns The filtered array\n */\nfunction filterMessagesArray(input) {\n return input.filter(\n (m) =>\n !!m && typeof m === 'object' && 'role' in m && 'content' in m,\n );\n}\n\n/**\n * Normalize the user input (stringified object with prompt, system, messages) to messages array\n */\nfunction convertUserInputToMessagesFormat(userInput) {\n try {\n const p = JSON.parse(userInput);\n if (!!p && typeof p === 'object') {\n let { messages } = p;\n const { prompt, system } = p;\n const result = [];\n\n // prepend top-level system instruction if present\n if (typeof system === 'string') {\n result.push({ role: 'system', content: system });\n }\n\n // stringified messages array\n if (typeof messages === 'string') {\n try {\n messages = JSON.parse(messages);\n } catch {\n // ignore parse errors\n }\n }\n\n // messages array format: { messages: [...] }\n if (Array.isArray(messages)) {\n result.push(...filterMessagesArray(messages));\n return result;\n }\n\n // prompt array format: { prompt: [...] }\n if (Array.isArray(prompt)) {\n result.push(...filterMessagesArray(prompt));\n return result;\n }\n\n // prompt string format: { prompt: \"...\" }\n if (typeof prompt === 'string') {\n result.push({ role: 'user', content: prompt });\n }\n\n if (result.length > 0) {\n return result;\n }\n }\n // eslint-disable-next-line no-empty\n } catch {}\n return [];\n}\n\n/**\n * Generate a request.messages JSON array from the prompt field in the\n * invoke_agent op\n */\nfunction requestMessagesFromPrompt(span, attributes) {\n if (\n typeof attributes[AI_PROMPT_ATTRIBUTE] === 'string' &&\n !attributes[GEN_AI_INPUT_MESSAGES_ATTRIBUTE] &&\n !attributes[AI_PROMPT_MESSAGES_ATTRIBUTE]\n ) {\n // No messages array is present, so we need to convert the prompt to the proper messages format\n // This is the case for ai.generateText spans\n // The ai.prompt attribute is a stringified object with prompt, system, messages attributes\n // The format of these is described in the vercel docs, for instance: https://ai-sdk.dev/docs/reference/ai-sdk-core/stream-object#parameters\n const userInput = attributes[AI_PROMPT_ATTRIBUTE];\n const messages = convertUserInputToMessagesFormat(userInput);\n if (messages.length) {\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n const truncatedMessages = getTruncatedJsonString(filteredMessages);\n\n span.setAttributes({\n [AI_PROMPT_ATTRIBUTE]: truncatedMessages,\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: truncatedMessages,\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n });\n }\n } else if (typeof attributes[AI_PROMPT_MESSAGES_ATTRIBUTE] === 'string') {\n // In this case we already get a properly formatted messages array, this is the preferred way to get the messages\n // This is the case for ai.generateText.doGenerate spans\n try {\n const messages = JSON.parse(attributes[AI_PROMPT_MESSAGES_ATTRIBUTE]);\n if (Array.isArray(messages)) {\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n const truncatedMessages = getTruncatedJsonString(filteredMessages);\n\n span.setAttributes({\n [AI_PROMPT_MESSAGES_ATTRIBUTE]: truncatedMessages,\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: truncatedMessages,\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n });\n }\n // eslint-disable-next-line no-empty\n } catch {}\n }\n}\n\n/**\n * Maps a Vercel AI span name to the corresponding Sentry op.\n */\nfunction getSpanOpFromName(name) {\n switch (name) {\n case 'ai.generateText':\n case 'ai.streamText':\n case 'ai.generateObject':\n case 'ai.streamObject':\n return GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE;\n case 'ai.generateText.doGenerate':\n return GEN_AI_GENERATE_TEXT_DO_GENERATE_OPERATION_ATTRIBUTE;\n case 'ai.streamText.doStream':\n return GEN_AI_STREAM_TEXT_DO_STREAM_OPERATION_ATTRIBUTE;\n case 'ai.generateObject.doGenerate':\n return GEN_AI_GENERATE_OBJECT_DO_GENERATE_OPERATION_ATTRIBUTE;\n case 'ai.streamObject.doStream':\n return GEN_AI_STREAM_OBJECT_DO_STREAM_OPERATION_ATTRIBUTE;\n case 'ai.embed.doEmbed':\n return GEN_AI_EMBED_DO_EMBED_OPERATION_ATTRIBUTE;\n case 'ai.embedMany.doEmbed':\n return GEN_AI_EMBED_MANY_DO_EMBED_OPERATION_ATTRIBUTE;\n case 'ai.rerank.doRerank':\n return GEN_AI_RERANK_DO_RERANK_OPERATION_ATTRIBUTE;\n case 'ai.toolCall':\n return GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE;\n default:\n if (name.startsWith('ai.stream')) {\n return 'ai.run';\n }\n return undefined;\n }\n}\n\nexport { _INTERNAL_cleanupToolCallSpanContext, _INTERNAL_getSpanContextForToolCallId, accumulateTokensForParent, applyAccumulatedTokens, applyToolDescriptionsAndTokens, convertAvailableToolsToJsonString, convertUserInputToMessagesFormat, getSpanOpFromName, requestMessagesFromPrompt };\n//# sourceMappingURL=utils.js.map\n", - "import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP } from '../../semanticAttributes.js';\nimport { spanToJSON } from '../../utils/spanUtils.js';\nimport { GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_TOOL_CALL_ID_ATTRIBUTE, GEN_AI_TOOL_TYPE_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE, GEN_AI_TOOL_OUTPUT_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { toolCallSpanContextMap, INVOKE_AGENT_OPS, GENERATE_CONTENT_OPS, DO_SPAN_NAME_PREFIX, EMBEDDINGS_OPS, RERANK_OPS } from './constants.js';\nimport { accumulateTokensForParent, applyToolDescriptionsAndTokens, applyAccumulatedTokens, requestMessagesFromPrompt, getSpanOpFromName, convertAvailableToolsToJsonString } from './utils.js';\nimport { AI_TOOL_CALL_NAME_ATTRIBUTE, AI_TOOL_CALL_ID_ATTRIBUTE, AI_OPERATION_ID_ATTRIBUTE, AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE, AI_MODEL_ID_ATTRIBUTE, AI_PROMPT_TOOLS_ATTRIBUTE, OPERATION_NAME_ATTRIBUTE, AI_VALUES_ATTRIBUTE, AI_RESPONSE_TEXT_ATTRIBUTE, AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, AI_RESPONSE_FINISH_REASON_ATTRIBUTE, AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE, AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, AI_USAGE_PROMPT_TOKENS_ATTRIBUTE, AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE, AI_USAGE_TOKENS_ATTRIBUTE, AI_PROMPT_MESSAGES_ATTRIBUTE, AI_RESPONSE_OBJECT_ATTRIBUTE, AI_TOOL_CALL_ARGS_ATTRIBUTE, AI_TOOL_CALL_RESULT_ATTRIBUTE, AI_SCHEMA_ATTRIBUTE } from './vercel-ai-attributes.js';\n\n/**\n * Maps Vercel AI SDK operation names to OpenTelemetry semantic convention values\n * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/#llm-request-spans\n */\nfunction mapVercelAiOperationName(operationName) {\n // Top-level pipeline operations map to invoke_agent\n if (INVOKE_AGENT_OPS.has(operationName)) {\n return 'invoke_agent';\n }\n // .do* operations are the actual LLM calls\n if (GENERATE_CONTENT_OPS.has(operationName)) {\n return 'generate_content';\n }\n if (EMBEDDINGS_OPS.has(operationName)) {\n return 'embeddings';\n }\n if (RERANK_OPS.has(operationName)) {\n return 'rerank';\n }\n if (operationName === 'ai.toolCall') {\n return 'execute_tool';\n }\n // Return the original value for unknown operations\n return operationName;\n}\n\n/**\n * Post-process spans emitted by the Vercel AI SDK.\n * This is supposed to be used in `client.on('spanStart', ...)\n */\nfunction onVercelAiSpanStart(span) {\n const { data: attributes, description: name } = spanToJSON(span);\n\n if (!name) {\n return;\n }\n\n // Tool call spans\n // https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n if (attributes[AI_TOOL_CALL_NAME_ATTRIBUTE] && attributes[AI_TOOL_CALL_ID_ATTRIBUTE] && name === 'ai.toolCall') {\n processToolCallSpan(span, attributes);\n return;\n }\n\n // V6+ Check if this is a Vercel AI span by checking if the operation ID attribute is present.\n // V5+ Check if this is a Vercel AI span by name pattern.\n if (!attributes[AI_OPERATION_ID_ATTRIBUTE] && !name.startsWith('ai.')) {\n return;\n }\n\n processGenerateSpan(span, name, attributes);\n}\n\nfunction vercelAiEventProcessor(event) {\n if (event.type === 'transaction' && event.spans) {\n // Map to accumulate token data by parent span ID\n const tokenAccumulator = new Map();\n\n // First pass: process all spans and accumulate token data\n for (const span of event.spans) {\n processEndedVercelAiSpan(span);\n\n // Accumulate token data for parent spans\n accumulateTokensForParent(span, tokenAccumulator);\n }\n\n // Second pass: apply tool descriptions and accumulated tokens\n applyToolDescriptionsAndTokens(event.spans, tokenAccumulator);\n\n // Also apply to root when it is the invoke_agent pipeline\n const trace = event.contexts?.trace;\n if (trace?.op === 'gen_ai.invoke_agent') {\n applyAccumulatedTokens(trace, tokenAccumulator);\n }\n }\n\n return event;\n}\n\n/**\n * Tool call structure from Vercel AI SDK\n * Note: V5/V6 use 'input' for arguments, V4 and earlier use 'args'\n */\n\n/**\n * Normalize finish reason to match OpenTelemetry semantic conventions.\n * Valid values: \"stop\", \"length\", \"content_filter\", \"tool_call\", \"error\"\n *\n * Vercel AI SDK uses \"tool-calls\" (plural, with hyphen) which we map to \"tool_call\".\n */\nfunction normalizeFinishReason(finishReason) {\n if (typeof finishReason !== 'string') {\n return 'stop';\n }\n\n // Map Vercel AI SDK finish reasons to OpenTelemetry semantic convention values\n switch (finishReason) {\n case 'tool-calls':\n return 'tool_call';\n case 'stop':\n case 'length':\n case 'content_filter':\n case 'error':\n return finishReason;\n default:\n // For unknown values, return as-is (schema allows arbitrary strings)\n return finishReason;\n }\n}\n\n/**\n * Build gen_ai.output.messages from ai.response.text and/or ai.response.toolCalls\n *\n * Format follows OpenTelemetry semantic conventions:\n * [{\"role\": \"assistant\", \"parts\": [...], \"finish_reason\": \"stop\"}]\n *\n * Parts can be:\n * - {\"type\": \"text\", \"content\": \"...\"}\n * - {\"type\": \"tool_call\", \"id\": \"...\", \"name\": \"...\", \"arguments\": \"...\"}\n */\nfunction buildOutputMessages(attributes) {\n const responseText = attributes[AI_RESPONSE_TEXT_ATTRIBUTE];\n const responseToolCalls = attributes[AI_RESPONSE_TOOL_CALLS_ATTRIBUTE];\n const finishReason = attributes[AI_RESPONSE_FINISH_REASON_ATTRIBUTE];\n\n // Skip if neither text nor tool calls are present\n if (responseText == null && responseToolCalls == null) {\n return;\n }\n\n const parts = [];\n\n // Add text part if present\n if (typeof responseText === 'string' && responseText.length > 0) {\n parts.push({\n type: 'text',\n content: responseText,\n });\n }\n\n // Add tool call parts if present\n if (responseToolCalls != null) {\n try {\n // Tool calls can be a string (JSON) or already parsed array\n const toolCalls =\n typeof responseToolCalls === 'string' ? JSON.parse(responseToolCalls) : responseToolCalls;\n\n if (Array.isArray(toolCalls)) {\n for (const toolCall of toolCalls) {\n // V5/V6 use 'input', V4 and earlier use 'args'\n const args = toolCall.input ?? toolCall.args;\n parts.push({\n type: 'tool_call',\n id: toolCall.toolCallId,\n name: toolCall.toolName,\n // Handle undefined args: JSON.stringify(undefined) returns undefined, not a string,\n // which would cause the property to be omitted from the final JSON output\n arguments: typeof args === 'string' ? args : JSON.stringify(args ?? {}),\n });\n }\n // Only delete tool calls attribute if we successfully processed them\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete attributes[AI_RESPONSE_TOOL_CALLS_ATTRIBUTE];\n }\n } catch {\n // Ignore parsing errors - tool calls attribute is preserved\n }\n }\n\n // Only set output messages and delete text attribute if we have parts\n if (parts.length > 0) {\n const outputMessage = {\n role: 'assistant',\n parts,\n finish_reason: normalizeFinishReason(finishReason),\n };\n\n attributes[GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE] = JSON.stringify([outputMessage]);\n\n // Remove the text attribute since it's now captured in gen_ai.output.messages\n // Note: tool calls attribute is deleted above only if successfully parsed\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete attributes[AI_RESPONSE_TEXT_ATTRIBUTE];\n }\n}\n\n/**\n * Post-process spans emitted by the Vercel AI SDK.\n */\nfunction processEndedVercelAiSpan(span) {\n const { data: attributes, origin } = span;\n\n if (origin !== 'auto.vercelai.otel') {\n return;\n }\n\n // The Vercel AI SDK sets span status to raw error message strings.\n // Any such value should be normalized to a SpanStatusType value. We pick internal_error as it is the most generic.\n if (span.status && span.status !== 'ok') {\n span.status = 'internal_error';\n }\n\n renameAttributeKey(attributes, AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, AI_USAGE_PROMPT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE);\n\n // Parent spans (ai.streamText, ai.streamObject, etc.) use inputTokens/outputTokens instead of promptTokens/completionTokens\n renameAttributeKey(attributes, 'ai.usage.inputTokens', GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, 'ai.usage.outputTokens', GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE);\n\n // Embedding spans use ai.usage.tokens instead of promptTokens/completionTokens\n renameAttributeKey(attributes, AI_USAGE_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n\n // AI SDK uses avgOutputTokensPerSecond, map to our expected attribute name\n renameAttributeKey(attributes, 'ai.response.avgOutputTokensPerSecond', 'ai.response.avgCompletionTokensPerSecond');\n\n // Input tokens is the sum of prompt tokens and cached input tokens\n if (\n typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] === 'number' &&\n typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE] === 'number'\n ) {\n attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] =\n attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] + attributes[GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE];\n }\n\n // Compute total tokens from input + output (embeddings may only have input tokens)\n if (typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] === 'number') {\n const outputTokens =\n typeof attributes[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] === 'number'\n ? attributes[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]\n : 0;\n attributes[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE] = outputTokens + attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE];\n }\n\n // Convert the available tools array to a JSON string\n if (attributes[AI_PROMPT_TOOLS_ATTRIBUTE] && Array.isArray(attributes[AI_PROMPT_TOOLS_ATTRIBUTE])) {\n attributes[AI_PROMPT_TOOLS_ATTRIBUTE] = convertAvailableToolsToJsonString(\n attributes[AI_PROMPT_TOOLS_ATTRIBUTE] ,\n );\n }\n\n // Rename AI SDK attributes to standardized gen_ai attributes\n // Map operation.name to OpenTelemetry semantic convention values\n if (attributes[OPERATION_NAME_ATTRIBUTE]) {\n const operationName = mapVercelAiOperationName(attributes[OPERATION_NAME_ATTRIBUTE] );\n attributes[GEN_AI_OPERATION_NAME_ATTRIBUTE] = operationName;\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete attributes[OPERATION_NAME_ATTRIBUTE];\n }\n renameAttributeKey(attributes, AI_PROMPT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE);\n\n // Build gen_ai.output.messages from response text and/or tool calls\n // Note: buildOutputMessages also removes the source attributes when output is successfully generated\n buildOutputMessages(attributes);\n\n renameAttributeKey(attributes, AI_RESPONSE_OBJECT_ATTRIBUTE, 'gen_ai.response.object');\n renameAttributeKey(attributes, AI_PROMPT_TOOLS_ATTRIBUTE, 'gen_ai.request.available_tools');\n\n renameAttributeKey(attributes, AI_TOOL_CALL_ARGS_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE);\n renameAttributeKey(attributes, AI_TOOL_CALL_RESULT_ATTRIBUTE, GEN_AI_TOOL_OUTPUT_ATTRIBUTE);\n\n renameAttributeKey(attributes, AI_SCHEMA_ATTRIBUTE, 'gen_ai.request.schema');\n renameAttributeKey(attributes, AI_MODEL_ID_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE);\n\n // Map embedding input: ai.values → gen_ai.embeddings.input\n // Vercel AI SDK JSON-stringifies each value individually, so we parse each element back.\n // Single embed gets unwrapped to a plain value; batch embedMany stays as a JSON array.\n if (Array.isArray(attributes[AI_VALUES_ATTRIBUTE])) {\n const parsed = (attributes[AI_VALUES_ATTRIBUTE] ).map(v => {\n try {\n return JSON.parse(v);\n } catch {\n return v;\n }\n });\n attributes[GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE] = parsed.length === 1 ? parsed[0] : JSON.stringify(parsed);\n }\n\n addProviderMetadataToAttributes(attributes);\n\n // Change attributes namespaced with `ai.X` to `vercel.ai.X`\n for (const key of Object.keys(attributes)) {\n if (key.startsWith('ai.')) {\n renameAttributeKey(attributes, key, `vercel.${key}`);\n }\n }\n}\n\n/**\n * Renames an attribute key in the provided attributes object if the old key exists.\n * This function safely handles null and undefined values.\n */\nfunction renameAttributeKey(attributes, oldKey, newKey) {\n if (attributes[oldKey] != null) {\n attributes[newKey] = attributes[oldKey];\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete attributes[oldKey];\n }\n}\n\nfunction processToolCallSpan(span, attributes) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.vercelai.otel');\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.execute_tool');\n span.setAttribute(GEN_AI_OPERATION_NAME_ATTRIBUTE, 'execute_tool');\n renameAttributeKey(attributes, AI_TOOL_CALL_NAME_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE);\n renameAttributeKey(attributes, AI_TOOL_CALL_ID_ATTRIBUTE, GEN_AI_TOOL_CALL_ID_ATTRIBUTE);\n\n // Store the span context in our global map using the tool call ID.\n // This allows us to capture tool errors and link them to the correct span\n // without retaining the full Span object in memory.\n const toolCallId = attributes[GEN_AI_TOOL_CALL_ID_ATTRIBUTE];\n\n if (typeof toolCallId === 'string') {\n toolCallSpanContextMap.set(toolCallId, span.spanContext());\n }\n\n // https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-tool-type\n if (!attributes[GEN_AI_TOOL_TYPE_ATTRIBUTE]) {\n span.setAttribute(GEN_AI_TOOL_TYPE_ATTRIBUTE, 'function');\n }\n const toolName = attributes[GEN_AI_TOOL_NAME_ATTRIBUTE];\n if (toolName) {\n span.updateName(`execute_tool ${toolName}`);\n }\n}\n\nfunction processGenerateSpan(span, name, attributes) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.vercelai.otel');\n\n const nameWthoutAi = name.replace('ai.', '');\n span.setAttribute('ai.pipeline.name', nameWthoutAi);\n span.updateName(nameWthoutAi);\n\n const functionId = attributes[AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE];\n if (functionId && typeof functionId === 'string') {\n span.setAttribute('gen_ai.function_id', functionId);\n }\n\n requestMessagesFromPrompt(span, attributes);\n\n if (attributes[AI_MODEL_ID_ATTRIBUTE] && !attributes[GEN_AI_RESPONSE_MODEL_ATTRIBUTE]) {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, attributes[AI_MODEL_ID_ATTRIBUTE]);\n }\n span.setAttribute('ai.streaming', name.includes('stream'));\n\n // Set the op based on the span name\n const op = getSpanOpFromName(name);\n if (op) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, op);\n }\n\n // For invoke_agent pipeline spans, use 'invoke_agent' as the description\n // to be consistent with other AI integrations (e.g. LangGraph)\n if (INVOKE_AGENT_OPS.has(name)) {\n if (functionId && typeof functionId === 'string') {\n span.updateName(`invoke_agent ${functionId}`);\n } else {\n span.updateName('invoke_agent');\n }\n return;\n }\n\n const modelId = attributes[AI_MODEL_ID_ATTRIBUTE];\n if (modelId) {\n const doSpanPrefix = GENERATE_CONTENT_OPS.has(name) ? 'generate_content' : DO_SPAN_NAME_PREFIX[name];\n if (doSpanPrefix) {\n span.updateName(`${doSpanPrefix} ${modelId}`);\n }\n }\n}\n\n/**\n * Add event processors to the given client to process Vercel AI spans.\n */\nfunction addVercelAiProcessors(client) {\n client.on('spanStart', onVercelAiSpanStart);\n // Note: We cannot do this on `spanEnd`, because the span cannot be mutated anymore at this point\n client.addEventProcessor(Object.assign(vercelAiEventProcessor, { id: 'VercelAiEventProcessor' }));\n}\n\nfunction addProviderMetadataToAttributes(attributes) {\n const providerMetadata = attributes[AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE] ;\n if (providerMetadata) {\n try {\n const providerMetadataObject = JSON.parse(providerMetadata) ;\n\n // Handle OpenAI metadata (v5 uses 'openai', v6 Azure Responses API uses 'azure')\n const openaiMetadata =\n providerMetadataObject.openai ?? providerMetadataObject.azure;\n if (openaiMetadata) {\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE,\n openaiMetadata.cachedPromptTokens,\n );\n setAttributeIfDefined(attributes, 'gen_ai.usage.output_tokens.reasoning', openaiMetadata.reasoningTokens);\n setAttributeIfDefined(\n attributes,\n 'gen_ai.usage.output_tokens.prediction_accepted',\n openaiMetadata.acceptedPredictionTokens,\n );\n setAttributeIfDefined(\n attributes,\n 'gen_ai.usage.output_tokens.prediction_rejected',\n openaiMetadata.rejectedPredictionTokens,\n );\n if (!attributes['gen_ai.conversation.id']) {\n setAttributeIfDefined(attributes, 'gen_ai.conversation.id', openaiMetadata.responseId);\n }\n }\n\n if (providerMetadataObject.anthropic) {\n const cachedInputTokens =\n providerMetadataObject.anthropic.usage?.cache_read_input_tokens ??\n providerMetadataObject.anthropic.cacheReadInputTokens;\n setAttributeIfDefined(attributes, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE, cachedInputTokens);\n\n const cacheWriteInputTokens =\n providerMetadataObject.anthropic.usage?.cache_creation_input_tokens ??\n providerMetadataObject.anthropic.cacheCreationInputTokens;\n setAttributeIfDefined(attributes, GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE, cacheWriteInputTokens);\n }\n\n if (providerMetadataObject.bedrock?.usage) {\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE,\n providerMetadataObject.bedrock.usage.cacheReadInputTokens,\n );\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE,\n providerMetadataObject.bedrock.usage.cacheWriteInputTokens,\n );\n }\n\n if (providerMetadataObject.deepseek) {\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE,\n providerMetadataObject.deepseek.promptCacheHitTokens,\n );\n setAttributeIfDefined(\n attributes,\n 'gen_ai.usage.input_tokens.cache_miss',\n providerMetadataObject.deepseek.promptCacheMissTokens,\n );\n }\n } catch {\n // Ignore\n }\n }\n}\n\n/**\n * Sets an attribute only if the value is not null or undefined.\n */\nfunction setAttributeIfDefined(attributes, key, value) {\n if (value != null) {\n attributes[key] = value;\n }\n}\n\nexport { addVercelAiProcessors };\n//# sourceMappingURL=index.js.map\n", - "const OPENAI_INTEGRATION_NAME = 'OpenAI';\n\n// https://platform.openai.com/docs/quickstart?api-mode=responses\n// https://platform.openai.com/docs/quickstart?api-mode=chat\n// https://platform.openai.com/docs/api-reference/conversations\nconst INSTRUMENTED_METHODS = [\n 'responses.create',\n 'chat.completions.create',\n 'embeddings.create',\n // Conversations API - for conversation state management\n // https://platform.openai.com/docs/guides/conversation-state\n 'conversations.create',\n] ;\nconst RESPONSES_TOOL_CALL_EVENT_TYPES = [\n 'response.output_item.added',\n 'response.function_call_arguments.delta',\n 'response.function_call_arguments.done',\n 'response.output_item.done',\n] ;\nconst RESPONSE_EVENT_TYPES = [\n 'response.created',\n 'response.in_progress',\n 'response.failed',\n 'response.completed',\n 'response.incomplete',\n 'response.queued',\n 'response.output_text.delta',\n ...RESPONSES_TOOL_CALL_EVENT_TYPES,\n] ;\n\nexport { INSTRUMENTED_METHODS, OPENAI_INTEGRATION_NAME, RESPONSES_TOOL_CALL_EVENT_TYPES, RESPONSE_EVENT_TYPES };\n//# sourceMappingURL=constants.js.map\n", - "import { OPENAI_OPERATIONS, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE, GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE, GEN_AI_CONVERSATION_ID_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, OPENAI_RESPONSE_ID_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, OPENAI_RESPONSE_MODEL_ATTRIBUTE, OPENAI_RESPONSE_TIMESTAMP_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, OPENAI_USAGE_PROMPT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, OPENAI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { INSTRUMENTED_METHODS } from './constants.js';\n\n/**\n * Maps OpenAI method paths to OpenTelemetry semantic convention operation names\n * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/#llm-request-spans\n */\nfunction getOperationName(methodPath) {\n if (methodPath.includes('chat.completions')) {\n return OPENAI_OPERATIONS.CHAT;\n }\n if (methodPath.includes('responses')) {\n return OPENAI_OPERATIONS.CHAT;\n }\n if (methodPath.includes('embeddings')) {\n return OPENAI_OPERATIONS.EMBEDDINGS;\n }\n if (methodPath.includes('conversations')) {\n return OPENAI_OPERATIONS.CHAT;\n }\n return methodPath.split('.').pop() || 'unknown';\n}\n\n/**\n * Get the span operation for OpenAI methods\n * Following Sentry's convention: \"gen_ai.{operation_name}\"\n */\nfunction getSpanOperation(methodPath) {\n return `gen_ai.${getOperationName(methodPath)}`;\n}\n\n/**\n * Check if a method path should be instrumented\n */\nfunction shouldInstrument(methodPath) {\n return INSTRUMENTED_METHODS.includes(methodPath );\n}\n\n/**\n * Check if response is a Chat Completion object\n */\nfunction isChatCompletionResponse(response) {\n return (\n response !== null &&\n typeof response === 'object' &&\n 'object' in response &&\n (response ).object === 'chat.completion'\n );\n}\n\n/**\n * Check if response is a Responses API object\n */\nfunction isResponsesApiResponse(response) {\n return (\n response !== null &&\n typeof response === 'object' &&\n 'object' in response &&\n (response ).object === 'response'\n );\n}\n\n/**\n * Check if response is an Embeddings API object\n */\nfunction isEmbeddingsResponse(response) {\n if (response === null || typeof response !== 'object' || !('object' in response)) {\n return false;\n }\n const responseObject = response ;\n return (\n responseObject.object === 'list' &&\n typeof responseObject.model === 'string' &&\n responseObject.model.toLowerCase().includes('embedding')\n );\n}\n\n/**\n * Check if response is a Conversations API object\n * @see https://platform.openai.com/docs/api-reference/conversations\n */\nfunction isConversationResponse(response) {\n return (\n response !== null &&\n typeof response === 'object' &&\n 'object' in response &&\n (response ).object === 'conversation'\n );\n}\n\n/**\n * Check if streaming event is from the Responses API\n */\nfunction isResponsesApiStreamEvent(event) {\n return (\n event !== null &&\n typeof event === 'object' &&\n 'type' in event &&\n typeof (event ).type === 'string' &&\n ((event ).type ).startsWith('response.')\n );\n}\n\n/**\n * Check if streaming event is a chat completion chunk\n */\nfunction isChatCompletionChunk(event) {\n return (\n event !== null &&\n typeof event === 'object' &&\n 'object' in event &&\n (event ).object === 'chat.completion.chunk'\n );\n}\n\n/**\n * Add attributes for Chat Completion responses\n */\nfunction addChatCompletionAttributes(\n span,\n response,\n recordOutputs,\n) {\n setCommonResponseAttributes(span, response.id, response.model, response.created);\n if (response.usage) {\n setTokenUsageAttributes(\n span,\n response.usage.prompt_tokens,\n response.usage.completion_tokens,\n response.usage.total_tokens,\n );\n }\n if (Array.isArray(response.choices)) {\n const finishReasons = response.choices\n .map(choice => choice.finish_reason)\n .filter((reason) => reason !== null);\n if (finishReasons.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]: JSON.stringify(finishReasons),\n });\n }\n\n // Extract tool calls from all choices (only if recordOutputs is true)\n if (recordOutputs) {\n const toolCalls = response.choices\n .map(choice => choice.message?.tool_calls)\n .filter(calls => Array.isArray(calls) && calls.length > 0)\n .flat();\n\n if (toolCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(toolCalls),\n });\n }\n }\n }\n}\n\n/**\n * Add attributes for Responses API responses\n */\nfunction addResponsesApiAttributes(span, response, recordOutputs) {\n setCommonResponseAttributes(span, response.id, response.model, response.created_at);\n if (response.status) {\n span.setAttributes({\n [GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]: JSON.stringify([response.status]),\n });\n }\n if (response.usage) {\n setTokenUsageAttributes(\n span,\n response.usage.input_tokens,\n response.usage.output_tokens,\n response.usage.total_tokens,\n );\n }\n\n // Extract function calls from output (only if recordOutputs is true)\n if (recordOutputs) {\n const responseWithOutput = response ;\n if (Array.isArray(responseWithOutput.output) && responseWithOutput.output.length > 0) {\n // Filter for function_call type objects in the output array\n const functionCalls = responseWithOutput.output.filter(\n (item) =>\n // oxlint-disable-next-line typescript/prefer-optional-chain\n typeof item === 'object' && item !== null && (item ).type === 'function_call',\n );\n\n if (functionCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(functionCalls),\n });\n }\n }\n }\n}\n\n/**\n * Add attributes for Embeddings API responses\n */\nfunction addEmbeddingsAttributes(span, response) {\n span.setAttributes({\n [OPENAI_RESPONSE_MODEL_ATTRIBUTE]: response.model,\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: response.model,\n });\n\n if (response.usage) {\n setTokenUsageAttributes(span, response.usage.prompt_tokens, undefined, response.usage.total_tokens);\n }\n}\n\n/**\n * Add attributes for Conversations API responses\n * @see https://platform.openai.com/docs/api-reference/conversations\n */\nfunction addConversationAttributes(span, response) {\n const { id, created_at } = response;\n\n span.setAttributes({\n [OPENAI_RESPONSE_ID_ATTRIBUTE]: id,\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: id,\n // The conversation id is used to link messages across API calls\n [GEN_AI_CONVERSATION_ID_ATTRIBUTE]: id,\n });\n\n if (created_at) {\n span.setAttributes({\n [OPENAI_RESPONSE_TIMESTAMP_ATTRIBUTE]: new Date(created_at * 1000).toISOString(),\n });\n }\n}\n\n/**\n * Set token usage attributes\n * @param span - The span to add attributes to\n * @param promptTokens - The number of prompt tokens\n * @param completionTokens - The number of completion tokens\n * @param totalTokens - The number of total tokens\n */\nfunction setTokenUsageAttributes(\n span,\n promptTokens,\n completionTokens,\n totalTokens,\n) {\n if (promptTokens !== undefined) {\n span.setAttributes({\n [OPENAI_USAGE_PROMPT_TOKENS_ATTRIBUTE]: promptTokens,\n [GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE]: promptTokens,\n });\n }\n if (completionTokens !== undefined) {\n span.setAttributes({\n [OPENAI_USAGE_COMPLETION_TOKENS_ATTRIBUTE]: completionTokens,\n [GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: completionTokens,\n });\n }\n if (totalTokens !== undefined) {\n span.setAttributes({\n [GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: totalTokens,\n });\n }\n}\n\n/**\n * Set common response attributes\n * @param span - The span to add attributes to\n * @param id - The response id\n * @param model - The response model\n * @param timestamp - The response timestamp\n */\nfunction setCommonResponseAttributes(span, id, model, timestamp) {\n span.setAttributes({\n [OPENAI_RESPONSE_ID_ATTRIBUTE]: id,\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: id,\n });\n span.setAttributes({\n [OPENAI_RESPONSE_MODEL_ATTRIBUTE]: model,\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: model,\n });\n span.setAttributes({\n [OPENAI_RESPONSE_TIMESTAMP_ATTRIBUTE]: new Date(timestamp * 1000).toISOString(),\n });\n}\n\n/**\n * Extract conversation ID from request parameters\n * Supports both Conversations API and previous_response_id chaining\n * @see https://platform.openai.com/docs/guides/conversation-state\n */\nfunction extractConversationId(params) {\n // Conversations API: conversation parameter (e.g., \"conv_...\")\n if ('conversation' in params && typeof params.conversation === 'string') {\n return params.conversation;\n }\n // Responses chaining: previous_response_id links to parent response\n if ('previous_response_id' in params && typeof params.previous_response_id === 'string') {\n return params.previous_response_id;\n }\n return undefined;\n}\n\n/**\n * Extract request parameters including model settings and conversation context\n */\nfunction extractRequestParameters(params) {\n const attributes = {\n [GEN_AI_REQUEST_MODEL_ATTRIBUTE]: params.model ?? 'unknown',\n };\n\n if ('temperature' in params) attributes[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = params.temperature;\n if ('top_p' in params) attributes[GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = params.top_p;\n if ('frequency_penalty' in params) attributes[GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = params.frequency_penalty;\n if ('presence_penalty' in params) attributes[GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE] = params.presence_penalty;\n if ('stream' in params) attributes[GEN_AI_REQUEST_STREAM_ATTRIBUTE] = params.stream;\n if ('encoding_format' in params) attributes[GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE] = params.encoding_format;\n if ('dimensions' in params) attributes[GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE] = params.dimensions;\n\n // Capture conversation ID for linking messages across API calls\n const conversationId = extractConversationId(params);\n if (conversationId) {\n attributes[GEN_AI_CONVERSATION_ID_ATTRIBUTE] = conversationId;\n }\n\n return attributes;\n}\n\nexport { addChatCompletionAttributes, addConversationAttributes, addEmbeddingsAttributes, addResponsesApiAttributes, extractRequestParameters, getOperationName, getSpanOperation, isChatCompletionChunk, isChatCompletionResponse, isConversationResponse, isEmbeddingsResponse, isResponsesApiResponse, isResponsesApiStreamEvent, setCommonResponseAttributes, setTokenUsageAttributes, shouldInstrument };\n//# sourceMappingURL=utils.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { GEN_AI_RESPONSE_STREAMING_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { RESPONSE_EVENT_TYPES } from './constants.js';\nimport { isChatCompletionChunk, isResponsesApiStreamEvent, setCommonResponseAttributes, setTokenUsageAttributes } from './utils.js';\n\n/**\n * State object used to accumulate information from a stream of OpenAI events/chunks.\n */\n\n/**\n * Processes tool calls from a chat completion chunk delta.\n * Follows the pattern: accumulate by index, then convert to array at the end.\n *\n * @param toolCalls - Array of tool calls from the delta.\n * @param state - The current streaming state to update.\n *\n * @see https://platform.openai.com/docs/guides/function-calling#streaming\n */\nfunction processChatCompletionToolCalls(toolCalls, state) {\n for (const toolCall of toolCalls) {\n const index = toolCall.index;\n if (index === undefined || !toolCall.function) continue;\n\n // Initialize tool call if this is the first chunk for this index\n if (!(index in state.chatCompletionToolCalls)) {\n state.chatCompletionToolCalls[index] = {\n ...toolCall,\n function: {\n name: toolCall.function.name,\n arguments: toolCall.function.arguments || '',\n },\n };\n } else {\n // Accumulate function arguments from subsequent chunks\n const existingToolCall = state.chatCompletionToolCalls[index];\n if (toolCall.function.arguments && existingToolCall?.function) {\n existingToolCall.function.arguments += toolCall.function.arguments;\n }\n }\n }\n}\n\n/**\n * Processes a single OpenAI ChatCompletionChunk event, updating the streaming state.\n *\n * @param chunk - The ChatCompletionChunk event to process.\n * @param state - The current streaming state to update.\n * @param recordOutputs - Whether to record output text fragments.\n */\nfunction processChatCompletionChunk(chunk, state, recordOutputs) {\n state.responseId = chunk.id ?? state.responseId;\n state.responseModel = chunk.model ?? state.responseModel;\n state.responseTimestamp = chunk.created ?? state.responseTimestamp;\n\n if (chunk.usage) {\n // For stream responses, the input tokens remain constant across all events in the stream.\n // Output tokens, however, are only finalized in the last event.\n // Since we can't guarantee that the last event will include usage data or even be a typed event,\n // we update the output token values on every event that includes them.\n // This ensures that output token usage is always set, even if the final event lacks it.\n state.promptTokens = chunk.usage.prompt_tokens;\n state.completionTokens = chunk.usage.completion_tokens;\n state.totalTokens = chunk.usage.total_tokens;\n }\n\n for (const choice of chunk.choices ?? []) {\n if (recordOutputs) {\n if (choice.delta?.content) {\n state.responseTexts.push(choice.delta.content);\n }\n\n // Handle tool calls from delta\n if (choice.delta?.tool_calls) {\n processChatCompletionToolCalls(choice.delta.tool_calls, state);\n }\n }\n if (choice.finish_reason) {\n state.finishReasons.push(choice.finish_reason);\n }\n }\n}\n\n/**\n * Processes a single OpenAI Responses API streaming event, updating the streaming state and span.\n *\n * @param streamEvent - The event to process (may be an error or unknown object).\n * @param state - The current streaming state to update.\n * @param recordOutputs - Whether to record output text fragments.\n * @param span - The span to update with error status if needed.\n */\nfunction processResponsesApiEvent(\n streamEvent,\n state,\n recordOutputs,\n span,\n) {\n if (!(streamEvent && typeof streamEvent === 'object')) {\n state.eventTypes.push('unknown:non-object');\n return;\n }\n if (streamEvent instanceof Error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(streamEvent, {\n mechanism: {\n handled: false,\n type: 'auto.ai.openai.stream-response',\n },\n });\n return;\n }\n\n if (!('type' in streamEvent)) return;\n const event = streamEvent ;\n\n if (!RESPONSE_EVENT_TYPES.includes(event.type)) {\n state.eventTypes.push(event.type);\n return;\n }\n\n // Handle output text delta\n if (recordOutputs) {\n // Handle tool call events for Responses API\n if (event.type === 'response.output_item.done' && 'item' in event) {\n state.responsesApiToolCalls.push(event.item);\n }\n\n if (event.type === 'response.output_text.delta' && 'delta' in event && event.delta) {\n state.responseTexts.push(event.delta);\n return;\n }\n }\n\n if ('response' in event) {\n const { response } = event ;\n state.responseId = response.id ?? state.responseId;\n state.responseModel = response.model ?? state.responseModel;\n state.responseTimestamp = response.created_at ?? state.responseTimestamp;\n\n if (response.usage) {\n // For stream responses, the input tokens remain constant across all events in the stream.\n // Output tokens, however, are only finalized in the last event.\n // Since we can't guarantee that the last event will include usage data or even be a typed event,\n // we update the output token values on every event that includes them.\n // This ensures that output token usage is always set, even if the final event lacks it.\n state.promptTokens = response.usage.input_tokens;\n state.completionTokens = response.usage.output_tokens;\n state.totalTokens = response.usage.total_tokens;\n }\n\n if (response.status) {\n state.finishReasons.push(response.status);\n }\n\n if (recordOutputs && response.output_text) {\n state.responseTexts.push(response.output_text);\n }\n }\n}\n\n/**\n * Instruments a stream of OpenAI events, updating the provided span with relevant attributes and\n * optionally recording output text. This function yields each event from the input stream as it is processed.\n *\n * @template T - The type of events in the stream.\n * @param stream - The async iterable stream of events to instrument.\n * @param span - The span to add attributes to and to finish at the end of the stream.\n * @param recordOutputs - Whether to record output text fragments in the span.\n * @returns An async generator yielding each event from the input stream.\n */\nasync function* instrumentStream(\n stream,\n span,\n recordOutputs,\n) {\n const state = {\n eventTypes: [],\n responseTexts: [],\n finishReasons: [],\n responseId: '',\n responseModel: '',\n responseTimestamp: 0,\n promptTokens: undefined,\n completionTokens: undefined,\n totalTokens: undefined,\n chatCompletionToolCalls: {},\n responsesApiToolCalls: [],\n };\n\n try {\n for await (const event of stream) {\n if (isChatCompletionChunk(event)) {\n processChatCompletionChunk(event , state, recordOutputs);\n } else if (isResponsesApiStreamEvent(event)) {\n processResponsesApiEvent(event , state, recordOutputs, span);\n }\n yield event;\n }\n } finally {\n setCommonResponseAttributes(span, state.responseId, state.responseModel, state.responseTimestamp);\n setTokenUsageAttributes(span, state.promptTokens, state.completionTokens, state.totalTokens);\n\n span.setAttributes({\n [GEN_AI_RESPONSE_STREAMING_ATTRIBUTE]: true,\n });\n\n if (state.finishReasons.length) {\n span.setAttributes({\n [GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]: JSON.stringify(state.finishReasons),\n });\n }\n\n if (recordOutputs && state.responseTexts.length) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: state.responseTexts.join(''),\n });\n }\n\n // Set tool calls attribute if any were accumulated\n const chatCompletionToolCallsArray = Object.values(state.chatCompletionToolCalls);\n const allToolCalls = [...chatCompletionToolCallsArray, ...state.responsesApiToolCalls];\n\n if (allToolCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(allToolCalls),\n });\n }\n\n span.end();\n }\n}\n\nexport { instrumentStream };\n//# sourceMappingURL=streaming.js.map\n", - "import { DEBUG_BUILD } from '../../debug-build.js';\nimport { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { debug } from '../../utils/debug-logger.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpanManual, startSpan } from '../trace.js';\nimport { GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, OPENAI_OPERATIONS, GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions, wrapPromiseWithMethods, extractSystemInstructions, getTruncatedJsonString, buildMethodPath } from '../ai/utils.js';\nimport { instrumentStream } from './streaming.js';\nimport { shouldInstrument, getOperationName, getSpanOperation, extractRequestParameters, isChatCompletionResponse, addChatCompletionAttributes, isResponsesApiResponse, addResponsesApiAttributes, isEmbeddingsResponse, addEmbeddingsAttributes, isConversationResponse, addConversationAttributes } from './utils.js';\n\n/**\n * Extract available tools from request parameters\n */\nfunction extractAvailableTools(params) {\n const tools = Array.isArray(params.tools) ? params.tools : [];\n const hasWebSearchOptions = params.web_search_options && typeof params.web_search_options === 'object';\n const webSearchOptions = hasWebSearchOptions\n ? [{ type: 'web_search_options', ...(params.web_search_options ) }]\n : [];\n\n const availableTools = [...tools, ...webSearchOptions];\n if (availableTools.length === 0) {\n return undefined;\n }\n\n try {\n return JSON.stringify(availableTools);\n } catch (error) {\n DEBUG_BUILD && debug.error('Failed to serialize OpenAI tools:', error);\n return undefined;\n }\n}\n\n/**\n * Extract request attributes from method arguments\n */\nfunction extractRequestAttributes(args, methodPath) {\n const attributes = {\n [GEN_AI_SYSTEM_ATTRIBUTE]: 'openai',\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: getOperationName(methodPath),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.openai',\n };\n\n if (args.length > 0 && typeof args[0] === 'object' && args[0] !== null) {\n const params = args[0] ;\n\n const availableTools = extractAvailableTools(params);\n if (availableTools) {\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = availableTools;\n }\n\n Object.assign(attributes, extractRequestParameters(params));\n } else {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = 'unknown';\n }\n\n return attributes;\n}\n\n/**\n * Add response attributes to spans\n * This supports Chat Completion, Responses API, Embeddings, and Conversations API responses\n */\nfunction addResponseAttributes(span, result, recordOutputs) {\n if (!result || typeof result !== 'object') return;\n\n const response = result ;\n\n if (isChatCompletionResponse(response)) {\n addChatCompletionAttributes(span, response, recordOutputs);\n if (recordOutputs && response.choices?.length) {\n const responseTexts = response.choices.map(choice => choice.message?.content || '');\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: JSON.stringify(responseTexts) });\n }\n } else if (isResponsesApiResponse(response)) {\n addResponsesApiAttributes(span, response, recordOutputs);\n if (recordOutputs && response.output_text) {\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: response.output_text });\n }\n } else if (isEmbeddingsResponse(response)) {\n addEmbeddingsAttributes(span, response);\n } else if (isConversationResponse(response)) {\n addConversationAttributes(span, response);\n }\n}\n\n// Extract and record AI request inputs, if present. This is intentionally separate from response attributes.\nfunction addRequestAttributes(span, params, operationName) {\n // Store embeddings input on a separate attribute and do not truncate it\n if (operationName === OPENAI_OPERATIONS.EMBEDDINGS && 'input' in params) {\n const input = params.input;\n\n // No input provided\n if (input == null) {\n return;\n }\n\n // Empty input string\n if (typeof input === 'string' && input.length === 0) {\n return;\n }\n\n // Empty array input\n if (Array.isArray(input) && input.length === 0) {\n return;\n }\n\n // Store strings as-is, arrays/objects as JSON\n span.setAttribute(GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, typeof input === 'string' ? input : JSON.stringify(input));\n return;\n }\n\n const src = 'input' in params ? params.input : 'messages' in params ? params.messages : undefined;\n\n if (!src) {\n return;\n }\n\n if (Array.isArray(src) && src.length === 0) {\n return;\n }\n\n const { systemInstructions, filteredMessages } = extractSystemInstructions(src);\n\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const truncatedInput = getTruncatedJsonString(filteredMessages);\n span.setAttribute(GEN_AI_INPUT_MESSAGES_ATTRIBUTE, truncatedInput);\n\n if (Array.isArray(filteredMessages)) {\n span.setAttribute(GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, filteredMessages.length);\n } else {\n span.setAttribute(GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, 1);\n }\n}\n\n/**\n * Instrument a method with Sentry spans\n * Following Sentry AI Agents Manual Instrumentation conventions\n * @see https://docs.sentry.io/platforms/javascript/guides/node/tracing/instrumentation/ai-agents-module/#manual-instrumentation\n */\nfunction instrumentMethod(\n originalMethod,\n methodPath,\n context,\n options,\n) {\n return function instrumentedMethod(...args) {\n const requestAttributes = extractRequestAttributes(args, methodPath);\n const model = (requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ) || 'unknown';\n const operationName = getOperationName(methodPath);\n\n const params = args[0] ;\n const isStreamRequested = params && typeof params === 'object' && params.stream === true;\n\n const spanConfig = {\n name: `${operationName} ${model}`,\n op: getSpanOperation(methodPath),\n attributes: requestAttributes ,\n };\n\n if (isStreamRequested) {\n let originalResult;\n\n const instrumentedPromise = startSpanManual(spanConfig, (span) => {\n originalResult = originalMethod.apply(context, args);\n\n if (options.recordInputs && params) {\n addRequestAttributes(span, params, operationName);\n }\n\n // Return async processing\n return (async () => {\n try {\n const result = await originalResult;\n return instrumentStream(\n result ,\n span,\n options.recordOutputs ?? false,\n ) ;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.openai.stream',\n data: { function: methodPath },\n },\n });\n span.end();\n throw error;\n }\n })();\n });\n\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, 'auto.ai.openai');\n }\n\n // Non-streaming\n let originalResult;\n\n const instrumentedPromise = startSpan(spanConfig, (span) => {\n // Call synchronously to capture the promise\n originalResult = originalMethod.apply(context, args);\n\n if (options.recordInputs && params) {\n addRequestAttributes(span, params, operationName);\n }\n\n return originalResult.then(\n result => {\n addResponseAttributes(span, result, options.recordOutputs);\n return result;\n },\n error => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.openai',\n data: { function: methodPath },\n },\n });\n throw error;\n },\n );\n });\n\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, 'auto.ai.openai');\n };\n}\n\n/**\n * Create a deep proxy for OpenAI client instrumentation\n */\nfunction createDeepProxy(target, currentPath = '', options) {\n return new Proxy(target, {\n get(obj, prop) {\n const value = (obj )[prop];\n const methodPath = buildMethodPath(currentPath, String(prop));\n\n if (typeof value === 'function' && shouldInstrument(methodPath)) {\n return instrumentMethod(value , methodPath, obj, options);\n }\n\n if (typeof value === 'function') {\n // Bind non-instrumented functions to preserve the original `this` context,\n // which is required for accessing private class fields (e.g. #baseURL) in OpenAI SDK v5.\n return value.bind(obj);\n }\n\n if (value && typeof value === 'object') {\n return createDeepProxy(value, methodPath, options);\n }\n\n return value;\n },\n }) ;\n}\n\n/**\n * Instrument an OpenAI client with Sentry tracing\n * Can be used across Node.js, Cloudflare Workers, and Vercel Edge\n */\nfunction instrumentOpenAiClient(client, options) {\n return createDeepProxy(client, '', resolveAIRecordingOptions(options));\n}\n\nexport { instrumentOpenAiClient };\n//# sourceMappingURL=index.js.map\n", - "const ANTHROPIC_AI_INTEGRATION_NAME = 'Anthropic_AI';\n\n// https://docs.anthropic.com/en/api/messages\n// https://docs.anthropic.com/en/api/models-list\nconst ANTHROPIC_AI_INSTRUMENTED_METHODS = [\n 'messages.create',\n 'messages.stream',\n 'messages.countTokens',\n 'models.get',\n 'completions.create',\n 'models.retrieve',\n 'beta.messages.create',\n] ;\n\nexport { ANTHROPIC_AI_INSTRUMENTED_METHODS, ANTHROPIC_AI_INTEGRATION_NAME };\n//# sourceMappingURL=constants.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { extractSystemInstructions, getTruncatedJsonString } from '../ai/utils.js';\nimport { ANTHROPIC_AI_INSTRUMENTED_METHODS } from './constants.js';\n\n/**\n * Check if a method path should be instrumented\n */\nfunction shouldInstrument(methodPath) {\n return ANTHROPIC_AI_INSTRUMENTED_METHODS.includes(methodPath );\n}\n\n/**\n * Set the messages and messages original length attributes.\n * Extracts system instructions before truncation.\n */\nfunction setMessagesAttribute(span, messages) {\n if (Array.isArray(messages) && messages.length === 0) {\n return;\n }\n\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n\n if (systemInstructions) {\n span.setAttributes({\n [GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE]: systemInstructions,\n });\n }\n\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 1;\n span.setAttributes({\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: getTruncatedJsonString(filteredMessages),\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n });\n}\n\nconst ANTHROPIC_ERROR_TYPE_TO_SPAN_STATUS = {\n invalid_request_error: 'invalid_argument',\n authentication_error: 'unauthenticated',\n permission_error: 'permission_denied',\n not_found_error: 'not_found',\n request_too_large: 'failed_precondition',\n rate_limit_error: 'resource_exhausted',\n api_error: 'internal_error',\n overloaded_error: 'unavailable',\n};\n\n/**\n * Map an Anthropic API error type to a SpanStatusType value.\n * @see https://docs.anthropic.com/en/api/errors#error-shapes\n */\nfunction mapAnthropicErrorToStatusMessage(errorType) {\n if (!errorType) {\n return 'internal_error';\n }\n return ANTHROPIC_ERROR_TYPE_TO_SPAN_STATUS[errorType] || 'internal_error';\n}\n\n/**\n * Capture error information from the response\n * @see https://docs.anthropic.com/en/api/errors#error-shapes\n */\nfunction handleResponseError(span, response) {\n if (response.error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: mapAnthropicErrorToStatusMessage(response.error.type) });\n\n captureException(response.error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.anthropic.anthropic_error',\n },\n });\n }\n}\n\n/**\n * Include the system prompt in the messages list, if available\n */\nfunction messagesFromParams(params) {\n const { system, messages, input } = params;\n\n const systemMessages = typeof system === 'string' ? [{ role: 'system', content: params.system }] : [];\n\n const inputParamMessages = Array.isArray(input) ? input : input != null ? [input] : undefined;\n\n const messagesParamMessages = Array.isArray(messages) ? messages : messages != null ? [messages] : [];\n\n const userMessages = inputParamMessages ?? messagesParamMessages;\n\n return [...systemMessages, ...userMessages];\n}\n\nexport { handleResponseError, mapAnthropicErrorToStatusMessage, messagesFromParams, setMessagesAttribute, shouldInstrument };\n//# sourceMappingURL=utils.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { GEN_AI_RESPONSE_STREAMING_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { setTokenUsageAttributes } from '../ai/utils.js';\nimport { mapAnthropicErrorToStatusMessage } from './utils.js';\n\n/**\n * State object used to accumulate information from a stream of Anthropic AI events.\n */\n\n/**\n * Checks if an event is an error event\n * @param event - The event to process\n * @param state - The state of the streaming process\n * @param recordOutputs - Whether to record outputs\n * @param span - The span to update\n * @returns Whether an error occurred\n */\n\nfunction isErrorEvent(event, span) {\n if ('type' in event && typeof event.type === 'string') {\n // If the event is an error, set the span status and capture the error\n // These error events are not rejected by the API by default, but are sent as metadata of the response\n if (event.type === 'error') {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: mapAnthropicErrorToStatusMessage(event.error?.type) });\n captureException(event.error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.anthropic.anthropic_error',\n },\n });\n return true;\n }\n }\n return false;\n}\n\n/**\n * Processes the message metadata of an event\n * @param event - The event to process\n * @param state - The state of the streaming process\n */\n\nfunction handleMessageMetadata(event, state) {\n // The token counts shown in the usage field of the message_delta event are cumulative.\n // @see https://docs.anthropic.com/en/docs/build-with-claude/streaming#event-types\n if (event.type === 'message_delta' && event.usage) {\n if ('output_tokens' in event.usage && typeof event.usage.output_tokens === 'number') {\n state.completionTokens = event.usage.output_tokens;\n }\n }\n\n if (event.message) {\n const message = event.message;\n\n if (message.id) state.responseId = message.id;\n if (message.model) state.responseModel = message.model;\n if (message.stop_reason) state.finishReasons.push(message.stop_reason);\n\n if (message.usage) {\n if (typeof message.usage.input_tokens === 'number') state.promptTokens = message.usage.input_tokens;\n if (typeof message.usage.cache_creation_input_tokens === 'number')\n state.cacheCreationInputTokens = message.usage.cache_creation_input_tokens;\n if (typeof message.usage.cache_read_input_tokens === 'number')\n state.cacheReadInputTokens = message.usage.cache_read_input_tokens;\n }\n }\n}\n\n/**\n * Handle start of a content block (e.g., tool_use)\n */\nfunction handleContentBlockStart(event, state) {\n if (event.type !== 'content_block_start' || typeof event.index !== 'number' || !event.content_block) return;\n if (event.content_block.type === 'tool_use' || event.content_block.type === 'server_tool_use') {\n state.activeToolBlocks[event.index] = {\n id: event.content_block.id,\n name: event.content_block.name,\n inputJsonParts: [],\n };\n }\n}\n\n/**\n * Handle deltas of a content block, including input_json_delta for tool_use\n */\nfunction handleContentBlockDelta(\n event,\n state,\n recordOutputs,\n) {\n if (event.type !== 'content_block_delta' || !event.delta) return;\n\n // Accumulate tool_use input JSON deltas only when we have an index and an active tool block\n if (\n typeof event.index === 'number' &&\n 'partial_json' in event.delta &&\n typeof event.delta.partial_json === 'string'\n ) {\n const active = state.activeToolBlocks[event.index];\n if (active) {\n active.inputJsonParts.push(event.delta.partial_json);\n }\n }\n\n // Accumulate streamed response text regardless of index\n if (recordOutputs && typeof event.delta.text === 'string') {\n state.responseTexts.push(event.delta.text);\n }\n}\n\n/**\n * Handle stop of a content block; finalize tool_use entries\n */\nfunction handleContentBlockStop(event, state) {\n if (event.type !== 'content_block_stop' || typeof event.index !== 'number') return;\n\n const active = state.activeToolBlocks[event.index];\n if (!active) return;\n\n const raw = active.inputJsonParts.join('');\n let parsedInput;\n\n try {\n parsedInput = raw ? JSON.parse(raw) : {};\n } catch {\n parsedInput = { __unparsed: raw };\n }\n\n state.toolCalls.push({\n type: 'tool_use',\n id: active.id,\n name: active.name,\n input: parsedInput,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete state.activeToolBlocks[event.index];\n}\n\n/**\n * Processes an event\n * @param event - The event to process\n * @param state - The state of the streaming process\n * @param recordOutputs - Whether to record outputs\n * @param span - The span to update\n */\nfunction processEvent(\n event,\n state,\n recordOutputs,\n span,\n) {\n if (!(event && typeof event === 'object')) {\n return;\n }\n\n const isError = isErrorEvent(event, span);\n if (isError) return;\n\n handleMessageMetadata(event, state);\n\n // Tool call events are sent via 3 separate events:\n // - content_block_start (start of the tool call)\n // - content_block_delta (delta aka input of the tool call)\n // - content_block_stop (end of the tool call)\n // We need to handle them all to capture the full tool call.\n handleContentBlockStart(event, state);\n handleContentBlockDelta(event, state, recordOutputs);\n handleContentBlockStop(event, state);\n}\n\n/**\n * Finalizes span attributes when stream processing completes\n */\nfunction finalizeStreamSpan(state, span, recordOutputs) {\n if (!span.isRecording()) {\n return;\n }\n\n // Set common response attributes if available\n if (state.responseId) {\n span.setAttributes({\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: state.responseId,\n });\n }\n if (state.responseModel) {\n span.setAttributes({\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: state.responseModel,\n });\n }\n\n setTokenUsageAttributes(\n span,\n state.promptTokens,\n state.completionTokens,\n state.cacheCreationInputTokens,\n state.cacheReadInputTokens,\n );\n\n span.setAttributes({\n [GEN_AI_RESPONSE_STREAMING_ATTRIBUTE]: true,\n });\n\n if (state.finishReasons.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]: JSON.stringify(state.finishReasons),\n });\n }\n\n if (recordOutputs && state.responseTexts.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: state.responseTexts.join(''),\n });\n }\n\n // Set tool calls if any were captured\n if (recordOutputs && state.toolCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(state.toolCalls),\n });\n }\n\n span.end();\n}\n\n/**\n * Instruments an async iterable stream of Anthropic events, updates the span with\n * streaming attributes and (optionally) the aggregated output text, and yields\n * each event from the input stream unchanged.\n */\nasync function* instrumentAsyncIterableStream(\n stream,\n span,\n recordOutputs,\n) {\n const state = {\n responseTexts: [],\n finishReasons: [],\n responseId: '',\n responseModel: '',\n promptTokens: undefined,\n completionTokens: undefined,\n cacheCreationInputTokens: undefined,\n cacheReadInputTokens: undefined,\n toolCalls: [],\n activeToolBlocks: {},\n };\n\n try {\n for await (const event of stream) {\n processEvent(event, state, recordOutputs, span);\n yield event;\n }\n } finally {\n // Set common response attributes if available\n if (state.responseId) {\n span.setAttributes({\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: state.responseId,\n });\n }\n if (state.responseModel) {\n span.setAttributes({\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: state.responseModel,\n });\n }\n\n setTokenUsageAttributes(\n span,\n state.promptTokens,\n state.completionTokens,\n state.cacheCreationInputTokens,\n state.cacheReadInputTokens,\n );\n\n span.setAttributes({\n [GEN_AI_RESPONSE_STREAMING_ATTRIBUTE]: true,\n });\n\n if (state.finishReasons.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]: JSON.stringify(state.finishReasons),\n });\n }\n\n if (recordOutputs && state.responseTexts.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: state.responseTexts.join(''),\n });\n }\n\n // Set tool calls if any were captured\n if (recordOutputs && state.toolCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(state.toolCalls),\n });\n }\n\n span.end();\n }\n}\n\n/**\n * Instruments a MessageStream by registering event handlers and preserving the original stream API.\n */\nfunction instrumentMessageStream(\n stream,\n span,\n recordOutputs,\n) {\n const state = {\n responseTexts: [],\n finishReasons: [],\n responseId: '',\n responseModel: '',\n promptTokens: undefined,\n completionTokens: undefined,\n cacheCreationInputTokens: undefined,\n cacheReadInputTokens: undefined,\n toolCalls: [],\n activeToolBlocks: {},\n };\n\n stream.on('streamEvent', (event) => {\n processEvent(event , state, recordOutputs, span);\n });\n\n // The event fired when a message is done being streamed by the API. Corresponds to the message_stop SSE event.\n // @see https://github.com/anthropics/anthropic-sdk-typescript/blob/d3be31f5a4e6ebb4c0a2f65dbb8f381ae73a9166/helpers.md?plain=1#L42-L44\n stream.on('message', () => {\n finalizeStreamSpan(state, span, recordOutputs);\n });\n\n stream.on('error', (error) => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.anthropic.stream_error',\n },\n });\n\n if (span.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n span.end();\n }\n });\n\n return stream;\n}\n\nexport { instrumentAsyncIterableStream, instrumentMessageStream };\n//# sourceMappingURL=streaming.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpan, startSpanManual } from '../trace.js';\nimport { GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_REQUEST_TOP_K_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_PROMPT_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, ANTHROPIC_AI_RESPONSE_TIMESTAMP_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions, getFinalOperationName, getSpanOperation, wrapPromiseWithMethods, setTokenUsageAttributes, buildMethodPath } from '../ai/utils.js';\nimport { instrumentAsyncIterableStream, instrumentMessageStream } from './streaming.js';\nimport { shouldInstrument, messagesFromParams, setMessagesAttribute, handleResponseError } from './utils.js';\n\n/**\n * Extract request attributes from method arguments\n */\nfunction extractRequestAttributes(args, methodPath) {\n const attributes = {\n [GEN_AI_SYSTEM_ATTRIBUTE]: 'anthropic',\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: getFinalOperationName(methodPath),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.anthropic',\n };\n\n if (args.length > 0 && typeof args[0] === 'object' && args[0] !== null) {\n const params = args[0] ;\n if (params.tools && Array.isArray(params.tools)) {\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = JSON.stringify(params.tools);\n }\n\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = params.model ?? 'unknown';\n if ('temperature' in params) attributes[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = params.temperature;\n if ('top_p' in params) attributes[GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = params.top_p;\n if ('stream' in params) attributes[GEN_AI_REQUEST_STREAM_ATTRIBUTE] = params.stream;\n if ('top_k' in params) attributes[GEN_AI_REQUEST_TOP_K_ATTRIBUTE] = params.top_k;\n if ('frequency_penalty' in params)\n attributes[GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = params.frequency_penalty;\n if ('max_tokens' in params) attributes[GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE] = params.max_tokens;\n } else {\n if (methodPath === 'models.retrieve' || methodPath === 'models.get') {\n // models.retrieve(model-id) and models.get(model-id)\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = args[0];\n } else {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = 'unknown';\n }\n }\n\n return attributes;\n}\n\n/**\n * Add private request attributes to spans.\n * This is only recorded if recordInputs is true.\n */\nfunction addPrivateRequestAttributes(span, params) {\n const messages = messagesFromParams(params);\n setMessagesAttribute(span, messages);\n\n if ('prompt' in params) {\n span.setAttributes({ [GEN_AI_PROMPT_ATTRIBUTE]: JSON.stringify(params.prompt) });\n }\n}\n\n/**\n * Add content attributes when recordOutputs is enabled\n */\nfunction addContentAttributes(span, response) {\n // Messages.create\n if ('content' in response) {\n if (Array.isArray(response.content)) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: response.content\n .map((item) => item.text)\n .filter(text => !!text)\n .join(''),\n });\n\n const toolCalls = [];\n\n for (const item of response.content) {\n if (item.type === 'tool_use' || item.type === 'server_tool_use') {\n toolCalls.push(item);\n }\n }\n if (toolCalls.length > 0) {\n span.setAttributes({ [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(toolCalls) });\n }\n }\n }\n // Completions.create\n if ('completion' in response) {\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: response.completion });\n }\n // Models.countTokens\n if ('input_tokens' in response) {\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: JSON.stringify(response.input_tokens) });\n }\n}\n\n/**\n * Add basic metadata attributes from the response\n */\nfunction addMetadataAttributes(span, response) {\n if ('id' in response && 'model' in response) {\n span.setAttributes({\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: response.id,\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: response.model,\n });\n\n if ('created' in response && typeof response.created === 'number') {\n span.setAttributes({\n [ANTHROPIC_AI_RESPONSE_TIMESTAMP_ATTRIBUTE]: new Date(response.created * 1000).toISOString(),\n });\n }\n if ('created_at' in response && typeof response.created_at === 'number') {\n span.setAttributes({\n [ANTHROPIC_AI_RESPONSE_TIMESTAMP_ATTRIBUTE]: new Date(response.created_at * 1000).toISOString(),\n });\n }\n\n if ('usage' in response && response.usage) {\n setTokenUsageAttributes(\n span,\n response.usage.input_tokens,\n response.usage.output_tokens,\n response.usage.cache_creation_input_tokens,\n response.usage.cache_read_input_tokens,\n );\n }\n }\n}\n\n/**\n * Add response attributes to spans\n */\nfunction addResponseAttributes(span, response, recordOutputs) {\n if (!response || typeof response !== 'object') return;\n\n // capture error, do not add attributes if error (they shouldn't exist)\n if ('type' in response && response.type === 'error') {\n handleResponseError(span, response);\n return;\n }\n\n // Private response attributes that are only recorded if recordOutputs is true.\n if (recordOutputs) {\n addContentAttributes(span, response);\n }\n\n // Add basic metadata attributes\n addMetadataAttributes(span, response);\n}\n\n/**\n * Handle common error catching and reporting for streaming requests\n */\nfunction handleStreamingError(error, span, methodPath) {\n captureException(error, {\n mechanism: { handled: false, type: 'auto.ai.anthropic', data: { function: methodPath } },\n });\n\n if (span.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n span.end();\n }\n throw error;\n}\n\n/**\n * Handle streaming cases with common logic\n */\nfunction handleStreamingRequest(\n originalMethod,\n target,\n context,\n args,\n requestAttributes,\n operationName,\n methodPath,\n params,\n options,\n isStreamRequested,\n isStreamingMethod,\n) {\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ?? 'unknown';\n const spanConfig = {\n name: `${operationName} ${model}`,\n op: getSpanOperation(methodPath),\n attributes: requestAttributes ,\n };\n\n // messages.stream() always returns a sync MessageStream, even with stream: true param\n if (isStreamRequested && !isStreamingMethod) {\n let originalResult;\n\n const instrumentedPromise = startSpanManual(spanConfig, (span) => {\n originalResult = originalMethod.apply(context, args) ;\n\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params);\n }\n\n return (async () => {\n try {\n const result = await originalResult;\n return instrumentAsyncIterableStream(\n result ,\n span,\n options.recordOutputs ?? false,\n ) ;\n } catch (error) {\n return handleStreamingError(error, span, methodPath);\n }\n })();\n });\n\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, 'auto.ai.anthropic');\n } else {\n return startSpanManual(spanConfig, span => {\n try {\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params);\n }\n const messageStream = target.apply(context, args);\n return instrumentMessageStream(messageStream, span, options.recordOutputs ?? false);\n } catch (error) {\n return handleStreamingError(error, span, methodPath);\n }\n });\n }\n}\n\n/**\n * Instrument a method with Sentry spans\n * Following Sentry AI Agents Manual Instrumentation conventions\n * @see https://docs.sentry.io/platforms/javascript/guides/node/tracing/instrumentation/ai-agents-module/#manual-instrumentation\n */\nfunction instrumentMethod(\n originalMethod,\n methodPath,\n context,\n options,\n) {\n return new Proxy(originalMethod, {\n apply(target, thisArg, args) {\n const requestAttributes = extractRequestAttributes(args, methodPath);\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ?? 'unknown';\n const operationName = getFinalOperationName(methodPath);\n\n const params = typeof args[0] === 'object' ? (args[0] ) : undefined;\n const isStreamRequested = Boolean(params?.stream);\n const isStreamingMethod = methodPath === 'messages.stream';\n\n if (isStreamRequested || isStreamingMethod) {\n return handleStreamingRequest(\n originalMethod,\n target,\n context,\n args,\n requestAttributes,\n operationName,\n methodPath,\n params,\n options,\n isStreamRequested,\n isStreamingMethod,\n );\n }\n\n let originalResult;\n\n const instrumentedPromise = startSpan(\n {\n name: `${operationName} ${model}`,\n op: getSpanOperation(methodPath),\n attributes: requestAttributes ,\n },\n span => {\n originalResult = target.apply(context, args) ;\n\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params);\n }\n\n return originalResult.then(\n result => {\n addResponseAttributes(span, result , options.recordOutputs);\n return result;\n },\n error => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.anthropic',\n data: {\n function: methodPath,\n },\n },\n });\n throw error;\n },\n );\n },\n );\n\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, 'auto.ai.anthropic');\n },\n }) ;\n}\n\n/**\n * Create a deep proxy for Anthropic AI client instrumentation\n */\nfunction createDeepProxy(target, currentPath = '', options) {\n return new Proxy(target, {\n get(obj, prop) {\n const value = (obj )[prop];\n const methodPath = buildMethodPath(currentPath, String(prop));\n\n if (typeof value === 'function' && shouldInstrument(methodPath)) {\n return instrumentMethod(value , methodPath, obj, options);\n }\n\n if (typeof value === 'function') {\n // Bind non-instrumented functions to preserve the original `this` context,\n return value.bind(obj);\n }\n\n if (value && typeof value === 'object') {\n return createDeepProxy(value, methodPath, options);\n }\n\n return value;\n },\n }) ;\n}\n\n/**\n * Instrument an Anthropic AI client with Sentry tracing\n * Can be used across Node.js, Cloudflare Workers, and Vercel Edge\n *\n * @template T - The type of the client that extends object\n * @param client - The Anthropic AI client to instrument\n * @param options - Optional configuration for recording inputs and outputs\n * @returns The instrumented client with the same type as the input\n */\nfunction instrumentAnthropicAiClient(anthropicAiClient, options) {\n return createDeepProxy(anthropicAiClient, '', resolveAIRecordingOptions(options));\n}\n\nexport { instrumentAnthropicAiClient };\n//# sourceMappingURL=index.js.map\n", - "const GOOGLE_GENAI_INTEGRATION_NAME = 'Google_GenAI';\n\n// https://ai.google.dev/api/rest/v1/models/generateContent\n// https://ai.google.dev/api/rest/v1/chats/sendMessage\n// https://googleapis.github.io/js-genai/release_docs/classes/models.Models.html#generatecontentstream\n// https://googleapis.github.io/js-genai/release_docs/classes/chats.Chat.html#sendmessagestream\nconst GOOGLE_GENAI_INSTRUMENTED_METHODS = [\n 'models.generateContent',\n 'models.generateContentStream',\n 'chats.create',\n 'sendMessage',\n 'sendMessageStream',\n] ;\n\n// Constants for internal use\nconst GOOGLE_GENAI_SYSTEM_NAME = 'google_genai';\nconst CHATS_CREATE_METHOD = 'chats.create';\nconst CHAT_PATH = 'chat';\n\nexport { CHATS_CREATE_METHOD, CHAT_PATH, GOOGLE_GENAI_INSTRUMENTED_METHODS, GOOGLE_GENAI_INTEGRATION_NAME, GOOGLE_GENAI_SYSTEM_NAME };\n//# sourceMappingURL=constants.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { GEN_AI_RESPONSE_STREAMING_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\n\n/**\n * State object used to accumulate information from a stream of Google GenAI events.\n */\n\n/**\n * Checks if a response chunk contains an error\n * @param chunk - The response chunk to check\n * @param span - The span to update if error is found\n * @returns Whether an error occurred\n */\nfunction isErrorChunk(chunk, span) {\n const feedback = chunk?.promptFeedback;\n if (feedback?.blockReason) {\n const message = feedback.blockReasonMessage ?? feedback.blockReason;\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(`Content blocked: ${message}`, {\n mechanism: { handled: false, type: 'auto.ai.google_genai' },\n });\n return true;\n }\n return false;\n}\n\n/**\n * Processes response metadata from a chunk\n * @param chunk - The response chunk to process\n * @param state - The state of the streaming process\n */\nfunction handleResponseMetadata(chunk, state) {\n if (typeof chunk.responseId === 'string') state.responseId = chunk.responseId;\n if (typeof chunk.modelVersion === 'string') state.responseModel = chunk.modelVersion;\n\n const usage = chunk.usageMetadata;\n if (usage) {\n if (typeof usage.promptTokenCount === 'number') state.promptTokens = usage.promptTokenCount;\n if (typeof usage.candidatesTokenCount === 'number') state.completionTokens = usage.candidatesTokenCount;\n if (typeof usage.totalTokenCount === 'number') state.totalTokens = usage.totalTokenCount;\n }\n}\n\n/**\n * Processes candidate content from a response chunk\n * @param chunk - The response chunk to process\n * @param state - The state of the streaming process\n * @param recordOutputs - Whether to record outputs\n */\nfunction handleCandidateContent(chunk, state, recordOutputs) {\n if (Array.isArray(chunk.functionCalls)) {\n state.toolCalls.push(...chunk.functionCalls);\n }\n\n for (const candidate of chunk.candidates ?? []) {\n if (candidate?.finishReason && !state.finishReasons.includes(candidate.finishReason)) {\n state.finishReasons.push(candidate.finishReason);\n }\n\n for (const part of candidate?.content?.parts ?? []) {\n if (recordOutputs && part.text) state.responseTexts.push(part.text);\n if (part.functionCall) {\n state.toolCalls.push({\n type: 'function',\n id: part.functionCall.id,\n name: part.functionCall.name,\n arguments: part.functionCall.args,\n });\n }\n }\n }\n}\n\n/**\n * Processes a single chunk from the Google GenAI stream\n * @param chunk - The chunk to process\n * @param state - The state of the streaming process\n * @param recordOutputs - Whether to record outputs\n * @param span - The span to update\n */\nfunction processChunk(chunk, state, recordOutputs, span) {\n if (!chunk || isErrorChunk(chunk, span)) return;\n handleResponseMetadata(chunk, state);\n handleCandidateContent(chunk, state, recordOutputs);\n}\n\n/**\n * Instruments an async iterable stream of Google GenAI response chunks, updates the span with\n * streaming attributes and (optionally) the aggregated output text, and yields\n * each chunk from the input stream unchanged.\n */\nasync function* instrumentStream(\n stream,\n span,\n recordOutputs,\n) {\n const state = {\n responseTexts: [],\n finishReasons: [],\n toolCalls: [],\n };\n\n try {\n for await (const chunk of stream) {\n processChunk(chunk, state, recordOutputs, span);\n yield chunk;\n }\n } finally {\n const attrs = {\n [GEN_AI_RESPONSE_STREAMING_ATTRIBUTE]: true,\n };\n\n if (state.responseId) attrs[GEN_AI_RESPONSE_ID_ATTRIBUTE] = state.responseId;\n if (state.responseModel) attrs[GEN_AI_RESPONSE_MODEL_ATTRIBUTE] = state.responseModel;\n if (state.promptTokens !== undefined) attrs[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] = state.promptTokens;\n if (state.completionTokens !== undefined) attrs[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] = state.completionTokens;\n if (state.totalTokens !== undefined) attrs[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE] = state.totalTokens;\n\n if (state.finishReasons.length) {\n attrs[GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE] = JSON.stringify(state.finishReasons);\n }\n if (recordOutputs && state.responseTexts.length) {\n attrs[GEN_AI_RESPONSE_TEXT_ATTRIBUTE] = state.responseTexts.join('');\n }\n if (recordOutputs && state.toolCalls.length) {\n attrs[GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE] = JSON.stringify(state.toolCalls);\n }\n\n span.setAttributes(attrs);\n span.end();\n }\n}\n\nexport { instrumentStream };\n//# sourceMappingURL=streaming.js.map\n", - "import { GOOGLE_GENAI_INSTRUMENTED_METHODS } from './constants.js';\n\n/**\n * Check if a method path should be instrumented\n */\nfunction shouldInstrument(methodPath) {\n // Check for exact matches first (like 'models.generateContent')\n if (GOOGLE_GENAI_INSTRUMENTED_METHODS.includes(methodPath )) {\n return true;\n }\n\n // Check for method name matches (like 'sendMessage' from chat instances)\n const methodName = methodPath.split('.').pop();\n return GOOGLE_GENAI_INSTRUMENTED_METHODS.includes(methodName );\n}\n\n/**\n * Check if a method is a streaming method\n */\nfunction isStreamingMethod(methodPath) {\n return methodPath.includes('Stream');\n}\n\n// Copied from https://googleapis.github.io/js-genai/release_docs/index.html\n\n/**\n *\n */\nfunction contentUnionToMessages(content, role = 'user') {\n if (typeof content === 'string') {\n return [{ role, content }];\n }\n if (Array.isArray(content)) {\n return content.flatMap(content => contentUnionToMessages(content, role));\n }\n if (typeof content !== 'object' || !content) return [];\n if ('role' in content && typeof content.role === 'string') {\n return [content ];\n }\n if ('parts' in content) {\n return [{ ...content, role } ];\n }\n return [{ role, content }];\n}\n\nexport { contentUnionToMessages, isStreamingMethod, shouldInstrument };\n//# sourceMappingURL=utils.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpanManual, startSpan } from '../trace.js';\nimport { handleCallbackErrors } from '../../utils/handleCallbackErrors.js';\nimport { GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_TOP_K_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { truncateGenAiMessages } from '../ai/messageTruncation.js';\nimport { resolveAIRecordingOptions, buildMethodPath, getFinalOperationName, getSpanOperation, extractSystemInstructions } from '../ai/utils.js';\nimport { CHATS_CREATE_METHOD, CHAT_PATH, GOOGLE_GENAI_SYSTEM_NAME } from './constants.js';\nimport { instrumentStream } from './streaming.js';\nimport { shouldInstrument, isStreamingMethod, contentUnionToMessages } from './utils.js';\n\n/**\n * Extract model from parameters or chat context object\n * For chat instances, the model is available on the chat object as 'model' (older versions) or 'modelVersion' (newer versions)\n */\nfunction extractModel(params, context) {\n if ('model' in params && typeof params.model === 'string') {\n return params.model;\n }\n\n // Try to get model from chat context object (chat instance has model property)\n if (context && typeof context === 'object') {\n const contextObj = context ;\n\n // Check for 'model' property (older versions, and streaming)\n if ('model' in contextObj && typeof contextObj.model === 'string') {\n return contextObj.model;\n }\n\n // Check for 'modelVersion' property (newer versions)\n if ('modelVersion' in contextObj && typeof contextObj.modelVersion === 'string') {\n return contextObj.modelVersion;\n }\n }\n\n return 'unknown';\n}\n\n/**\n * Extract generation config parameters\n */\nfunction extractConfigAttributes(config) {\n const attributes = {};\n\n if ('temperature' in config && typeof config.temperature === 'number') {\n attributes[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = config.temperature;\n }\n if ('topP' in config && typeof config.topP === 'number') {\n attributes[GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = config.topP;\n }\n if ('topK' in config && typeof config.topK === 'number') {\n attributes[GEN_AI_REQUEST_TOP_K_ATTRIBUTE] = config.topK;\n }\n if ('maxOutputTokens' in config && typeof config.maxOutputTokens === 'number') {\n attributes[GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE] = config.maxOutputTokens;\n }\n if ('frequencyPenalty' in config && typeof config.frequencyPenalty === 'number') {\n attributes[GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = config.frequencyPenalty;\n }\n if ('presencePenalty' in config && typeof config.presencePenalty === 'number') {\n attributes[GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE] = config.presencePenalty;\n }\n\n return attributes;\n}\n\n/**\n * Extract request attributes from method arguments\n * Builds the base attributes for span creation including system info, model, and config\n */\nfunction extractRequestAttributes(\n methodPath,\n params,\n context,\n) {\n const attributes = {\n [GEN_AI_SYSTEM_ATTRIBUTE]: GOOGLE_GENAI_SYSTEM_NAME,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: getFinalOperationName(methodPath),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',\n };\n\n if (params) {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = extractModel(params, context);\n\n // Extract generation config parameters\n if ('config' in params && typeof params.config === 'object' && params.config) {\n const config = params.config ;\n Object.assign(attributes, extractConfigAttributes(config));\n\n // Extract available tools from config\n if ('tools' in config && Array.isArray(config.tools)) {\n const functionDeclarations = config.tools.flatMap(\n (tool) => tool.functionDeclarations,\n );\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = JSON.stringify(functionDeclarations);\n }\n }\n } else {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = extractModel({}, context);\n }\n\n return attributes;\n}\n\n/**\n * Add private request attributes to spans.\n * This is only recorded if recordInputs is true.\n * Handles different parameter formats for different Google GenAI methods.\n */\nfunction addPrivateRequestAttributes(span, params) {\n const messages = [];\n\n // config.systemInstruction: ContentUnion\n if (\n 'config' in params &&\n params.config &&\n typeof params.config === 'object' &&\n 'systemInstruction' in params.config &&\n params.config.systemInstruction\n ) {\n messages.push(...contentUnionToMessages(params.config.systemInstruction , 'system'));\n }\n\n // For chats.create: history contains the conversation history\n if ('history' in params) {\n messages.push(...contentUnionToMessages(params.history , 'user'));\n }\n\n // For models.generateContent: ContentListUnion\n if ('contents' in params) {\n messages.push(...contentUnionToMessages(params.contents , 'user'));\n }\n\n // For chat.sendMessage: message can be PartListUnion\n if ('message' in params) {\n messages.push(...contentUnionToMessages(params.message , 'user'));\n }\n\n if (Array.isArray(messages) && messages.length) {\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n span.setAttributes({\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: JSON.stringify(truncateGenAiMessages(filteredMessages )),\n });\n }\n}\n\n/**\n * Add response attributes from the Google GenAI response\n * @see https://github.com/googleapis/js-genai/blob/v1.19.0/src/types.ts#L2313\n */\nfunction addResponseAttributes(span, response, recordOutputs) {\n if (!response || typeof response !== 'object') return;\n\n if (response.modelVersion) {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, response.modelVersion);\n }\n\n // Add usage metadata if present\n if (response.usageMetadata && typeof response.usageMetadata === 'object') {\n const usage = response.usageMetadata;\n if (typeof usage.promptTokenCount === 'number') {\n span.setAttributes({\n [GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE]: usage.promptTokenCount,\n });\n }\n if (typeof usage.candidatesTokenCount === 'number') {\n span.setAttributes({\n [GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: usage.candidatesTokenCount,\n });\n }\n if (typeof usage.totalTokenCount === 'number') {\n span.setAttributes({\n [GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: usage.totalTokenCount,\n });\n }\n }\n\n // Add response text if recordOutputs is enabled\n if (recordOutputs && Array.isArray(response.candidates) && response.candidates.length > 0) {\n const responseTexts = response.candidates\n .map((candidate) => {\n if (candidate.content?.parts && Array.isArray(candidate.content.parts)) {\n return candidate.content.parts\n .map((part) => (typeof part.text === 'string' ? part.text : ''))\n .filter((text) => text.length > 0)\n .join('');\n }\n return '';\n })\n .filter((text) => text.length > 0);\n\n if (responseTexts.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: responseTexts.join(''),\n });\n }\n }\n\n // Add tool calls if recordOutputs is enabled\n if (recordOutputs && response.functionCalls) {\n const functionCalls = response.functionCalls;\n if (Array.isArray(functionCalls) && functionCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(functionCalls),\n });\n }\n }\n}\n\n/**\n * Instrument any async or synchronous genai method with Sentry spans\n * Handles operations like models.generateContent and chat.sendMessage and chats.create\n * @see https://docs.sentry.io/platforms/javascript/guides/node/tracing/instrumentation/ai-agents-module/#manual-instrumentation\n */\nfunction instrumentMethod(\n originalMethod,\n methodPath,\n context,\n options,\n) {\n const isSyncCreate = methodPath === CHATS_CREATE_METHOD;\n\n return new Proxy(originalMethod, {\n apply(target, _, args) {\n const params = args[0] ;\n const requestAttributes = extractRequestAttributes(methodPath, params, context);\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ?? 'unknown';\n const operationName = getFinalOperationName(methodPath);\n\n // Check if this is a streaming method\n if (isStreamingMethod(methodPath)) {\n // Use startSpanManual for streaming methods to control span lifecycle\n return startSpanManual(\n {\n name: `${operationName} ${model}`,\n op: getSpanOperation(methodPath),\n attributes: requestAttributes,\n },\n async (span) => {\n try {\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params);\n }\n const stream = await target.apply(context, args);\n return instrumentStream(stream, span, Boolean(options.recordOutputs)) ;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.google_genai',\n data: { function: methodPath },\n },\n });\n span.end();\n throw error;\n }\n },\n );\n }\n // Single span for both sync and async operations\n return startSpan(\n {\n name: isSyncCreate ? `${operationName} ${model} create` : `${operationName} ${model}`,\n op: getSpanOperation(methodPath),\n attributes: requestAttributes,\n },\n (span) => {\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params);\n }\n\n return handleCallbackErrors(\n () => target.apply(context, args),\n error => {\n captureException(error, {\n mechanism: { handled: false, type: 'auto.ai.google_genai', data: { function: methodPath } },\n });\n },\n () => {},\n result => {\n // Only add response attributes for content-producing methods, not for chats.create\n if (!isSyncCreate) {\n addResponseAttributes(span, result, options.recordOutputs);\n }\n },\n );\n },\n );\n },\n }) ;\n}\n\n/**\n * Create a deep proxy for Google GenAI client instrumentation\n * Recursively instruments methods and handles special cases like chats.create\n */\nfunction createDeepProxy(target, currentPath = '', options) {\n return new Proxy(target, {\n get: (t, prop, receiver) => {\n const value = Reflect.get(t, prop, receiver);\n const methodPath = buildMethodPath(currentPath, String(prop));\n\n if (typeof value === 'function' && shouldInstrument(methodPath)) {\n // Special case: chats.create is synchronous but needs both instrumentation AND result proxying\n if (methodPath === CHATS_CREATE_METHOD) {\n const instrumentedMethod = instrumentMethod(value , methodPath, t, options);\n return function instrumentedAndProxiedCreate(...args) {\n const result = instrumentedMethod(...args);\n // If the result is an object (like a chat instance), proxy it too\n if (result && typeof result === 'object') {\n return createDeepProxy(result, CHAT_PATH, options);\n }\n return result;\n };\n }\n\n return instrumentMethod(value , methodPath, t, options);\n }\n\n if (typeof value === 'function') {\n // Bind non-instrumented functions to preserve the original `this` context\n return value.bind(t);\n }\n\n if (value && typeof value === 'object') {\n return createDeepProxy(value, methodPath, options);\n }\n\n return value;\n },\n });\n}\n\n/**\n * Instrument a Google GenAI client with Sentry tracing\n * Can be used across Node.js, Cloudflare Workers, and Vercel Edge\n *\n * @template T - The type of the client that extends client object\n * @param client - The Google GenAI client to instrument\n * @param options - Optional configuration for recording inputs and outputs\n * @returns The instrumented client with the same type as the input\n *\n * @example\n * ```typescript\n * import { GoogleGenAI } from '@google/genai';\n * import { instrumentGoogleGenAIClient } from '@sentry/core';\n *\n * const genAI = new GoogleGenAI({ apiKey: process.env.GOOGLE_GENAI_API_KEY });\n * const instrumentedClient = instrumentGoogleGenAIClient(genAI);\n *\n * // Now both chats.create and sendMessage will be instrumented\n * const chat = instrumentedClient.chats.create({ model: 'gemini-1.5-pro' });\n * const response = await chat.sendMessage({ message: 'Hello' });\n * ```\n */\nfunction instrumentGoogleGenAIClient(client, options) {\n return createDeepProxy(client, '', resolveAIRecordingOptions(options));\n}\n\nexport { extractModel, instrumentGoogleGenAIClient };\n//# sourceMappingURL=index.js.map\n", - "const LANGCHAIN_INTEGRATION_NAME = 'LangChain';\nconst LANGCHAIN_ORIGIN = 'auto.ai.langchain';\n\nconst ROLE_MAP = {\n human: 'user',\n ai: 'assistant',\n assistant: 'assistant',\n system: 'system',\n function: 'function',\n tool: 'tool',\n};\n\nexport { LANGCHAIN_INTEGRATION_NAME, LANGCHAIN_ORIGIN, ROLE_MAP };\n//# sourceMappingURL=constants.js.map\n", - "import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { isContentMedia, stripInlineMediaFromSingleMessage } from '../ai/mediaStripping.js';\nimport { truncateGenAiMessages } from '../ai/messageTruncation.js';\nimport { extractSystemInstructions } from '../ai/utils.js';\nimport { LANGCHAIN_ORIGIN, ROLE_MAP } from './constants.js';\n\n/**\n * Assigns an attribute only when the value is neither `undefined` nor `null`.\n *\n * We keep this tiny helper because call sites are repetitive and easy to miswrite.\n * It also preserves falsy-but-valid values like `0` and `\"\"`.\n */\nconst setIfDefined = (target, key, value) => {\n if (value != null) target[key] = value ;\n};\n\n/**\n * Like `setIfDefined`, but converts the value with `Number()` and skips only when the\n * result is `NaN`. This ensures numeric 0 makes it through (unlike truthy checks).\n */\nconst setNumberIfDefined = (target, key, value) => {\n const n = Number(value);\n if (!Number.isNaN(n)) target[key] = n;\n};\n\n/**\n * Converts a value to a string. Avoids double-quoted JSON strings where a plain\n * string is desired, but still handles objects/arrays safely.\n */\nfunction asString(v) {\n if (typeof v === 'string') return v;\n try {\n return JSON.stringify(v);\n } catch {\n return String(v);\n }\n}\n\n/**\n * Converts message content to a string, stripping inline media (base64 images, audio, etc.)\n * from multimodal content before stringification so downstream media stripping can't miss it.\n *\n * @example\n * // String content passes through unchanged:\n * normalizeContent(\"Hello\") // => \"Hello\"\n *\n * // Multimodal array content — media is replaced with \"[Blob substitute]\" before JSON.stringify:\n * normalizeContent([\n * { type: \"text\", text: \"What color?\" },\n * { type: \"image_url\", image_url: { url: \"data:image/png;base64,iVBOR...\" } }\n * ])\n * // => '[{\"type\":\"text\",\"text\":\"What color?\"},{\"type\":\"image_url\",\"image_url\":{\"url\":\"[Blob substitute]\"}}]'\n *\n * // Without this, asString() would JSON.stringify the raw array and the base64 blob\n * // would end up in span attributes, since downstream stripping only works on objects.\n */\nfunction normalizeContent(v) {\n if (Array.isArray(v)) {\n try {\n const stripped = v.map(part =>\n part && typeof part === 'object' && isContentMedia(part) ? stripInlineMediaFromSingleMessage(part) : part,\n );\n return JSON.stringify(stripped);\n } catch {\n return String(v);\n }\n }\n return asString(v);\n}\n\n/**\n * Normalizes a single role token to our canonical set.\n *\n * @param role Incoming role value (free-form, any casing)\n * @returns Canonical role: 'user' | 'assistant' | 'system' | 'function' | 'tool' | \n */\nfunction normalizeMessageRole(role) {\n const normalized = role.toLowerCase();\n return ROLE_MAP[normalized] ?? normalized;\n}\n\n/**\n * Infers a role from a LangChain message constructor name.\n *\n * Checks for substrings like \"System\", \"Human\", \"AI\", etc.\n */\nfunction normalizeRoleNameFromCtor(name) {\n if (name.includes('System')) return 'system';\n if (name.includes('Human')) return 'user';\n if (name.includes('AI') || name.includes('Assistant')) return 'assistant';\n if (name.includes('Function')) return 'function';\n if (name.includes('Tool')) return 'tool';\n return 'user';\n}\n\n/**\n * Returns invocation params from a LangChain `tags` object.\n *\n * LangChain often passes runtime parameters (model, temperature, etc.) via the\n * `tags.invocation_params` bag. If `tags` is an array (LangChain sometimes uses\n * string tags), we return `undefined`.\n *\n * @param tags LangChain tags (string[] or record)\n * @returns The `invocation_params` object, if present\n */\nfunction getInvocationParams(tags) {\n if (!tags || Array.isArray(tags)) return undefined;\n return tags.invocation_params ;\n}\n\n/**\n * Normalizes a heterogeneous set of LangChain messages to `{ role, content }`.\n *\n * Why so many branches? LangChain messages can arrive in several shapes:\n * - Message classes with `_getType()` (most reliable)\n * - Classes with meaningful constructor names (e.g. `SystemMessage`)\n * - Plain objects with `type`, or `{ role, content }`\n * - Serialized format with `{ lc: 1, id: [...], kwargs: { content } }`\n * We preserve the prioritization to minimize behavioral drift.\n *\n * @param messages Mixed LangChain messages\n * @returns Array of normalized `{ role, content }`\n */\nfunction normalizeLangChainMessages(messages) {\n return messages.map(message => {\n // 1) Prefer _getType() when present\n const maybeGetType = (message )._getType;\n if (typeof maybeGetType === 'function') {\n const messageType = maybeGetType.call(message);\n return {\n role: normalizeMessageRole(messageType),\n content: normalizeContent(message.content),\n };\n }\n\n // 2) Serialized LangChain format (lc: 1) - check before constructor name\n // This is more reliable than constructor.name which can be lost during serialization\n if (message.lc === 1 && message.kwargs) {\n const id = message.id;\n const messageType = Array.isArray(id) && id.length > 0 ? id[id.length - 1] : '';\n const role = typeof messageType === 'string' ? normalizeRoleNameFromCtor(messageType) : 'user';\n\n return {\n role: normalizeMessageRole(role),\n content: normalizeContent(message.kwargs?.content),\n };\n }\n\n // 3) Then objects with `type`\n if (message.type) {\n const role = String(message.type).toLowerCase();\n return {\n role: normalizeMessageRole(role),\n content: normalizeContent(message.content),\n };\n }\n\n // 4) Then objects with `{ role, content }` - check before constructor name\n // Plain objects have constructor.name=\"Object\" which would incorrectly default to \"user\"\n if (message.role) {\n return {\n role: normalizeMessageRole(String(message.role)),\n content: normalizeContent(message.content),\n };\n }\n\n // 5) Then try constructor name (SystemMessage / HumanMessage / ...)\n // Only use this if we haven't matched a more specific case\n const ctor = (message ).constructor?.name;\n if (ctor && ctor !== 'Object') {\n return {\n role: normalizeMessageRole(normalizeRoleNameFromCtor(ctor)),\n content: normalizeContent(message.content),\n };\n }\n\n // 6) Fallback: treat as user text\n return {\n role: 'user',\n content: normalizeContent(message.content),\n };\n });\n}\n\n/**\n * Extracts request attributes common to both LLM and ChatModel invocations.\n *\n * Source precedence:\n * 1) `invocationParams` (highest)\n * 2) `langSmithMetadata`\n *\n * Numeric values are set even when 0 (e.g. `temperature: 0`), but skipped if `NaN`.\n */\nfunction extractCommonRequestAttributes(\n serialized,\n invocationParams,\n langSmithMetadata,\n) {\n const attrs = {};\n\n // Get kwargs if available (from constructor type)\n const kwargs = 'kwargs' in serialized ? serialized.kwargs : undefined;\n\n const temperature = invocationParams?.temperature ?? langSmithMetadata?.ls_temperature ?? kwargs?.temperature;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, temperature);\n\n const maxTokens = invocationParams?.max_tokens ?? langSmithMetadata?.ls_max_tokens ?? kwargs?.max_tokens;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, maxTokens);\n\n const topP = invocationParams?.top_p ?? kwargs?.top_p;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, topP);\n\n const frequencyPenalty = invocationParams?.frequency_penalty;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, frequencyPenalty);\n\n const presencePenalty = invocationParams?.presence_penalty;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, presencePenalty);\n\n // LangChain uses `stream`. We only set the attribute if the key actually exists\n // (some callbacks report `false` even on streamed requests, this stems from LangChain's callback handler).\n if (invocationParams && 'stream' in invocationParams) {\n setIfDefined(attrs, GEN_AI_REQUEST_STREAM_ATTRIBUTE, Boolean(invocationParams.stream));\n }\n\n return attrs;\n}\n\n/**\n * Small helper to assemble boilerplate attributes shared by both request extractors.\n * Always uses 'chat' as the operation type for all LLM and chat model operations.\n */\nfunction baseRequestAttributes(\n system,\n modelName,\n serialized,\n invocationParams,\n langSmithMetadata,\n) {\n return {\n [GEN_AI_SYSTEM_ATTRIBUTE]: asString(system ?? 'langchain'),\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'chat',\n [GEN_AI_REQUEST_MODEL_ATTRIBUTE]: asString(modelName),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGCHAIN_ORIGIN,\n ...extractCommonRequestAttributes(serialized, invocationParams, langSmithMetadata),\n };\n}\n\n/**\n * Extracts attributes for plain LLM invocations (string prompts).\n *\n * - Operation is tagged as `chat` following OpenTelemetry semantic conventions.\n * LangChain LLM operations are treated as chat operations.\n * - When `recordInputs` is true, string prompts are wrapped into `{role:\"user\"}`\n * messages to align with the chat schema used elsewhere.\n */\nfunction extractLLMRequestAttributes(\n llm,\n prompts,\n recordInputs,\n invocationParams,\n langSmithMetadata,\n) {\n const system = langSmithMetadata?.ls_provider;\n const modelName = invocationParams?.model ?? langSmithMetadata?.ls_model_name ?? 'unknown';\n\n const attrs = baseRequestAttributes(system, modelName, llm, invocationParams, langSmithMetadata);\n\n if (recordInputs && Array.isArray(prompts) && prompts.length > 0) {\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, prompts.length);\n const messages = prompts.map(p => ({ role: 'user', content: p }));\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, asString(messages));\n }\n\n return attrs;\n}\n\n/**\n * Extracts attributes for ChatModel invocations (array-of-arrays of messages).\n *\n * - Operation is tagged as `chat` following OpenTelemetry semantic conventions.\n * LangChain chat model operations are chat operations.\n * - We flatten LangChain's `LangChainMessage[][]` and normalize shapes into a\n * consistent `{ role, content }` array when `recordInputs` is true.\n * - Provider system value falls back to `serialized.id?.[2]`.\n */\nfunction extractChatModelRequestAttributes(\n llm,\n langChainMessages,\n recordInputs,\n invocationParams,\n langSmithMetadata,\n) {\n const system = langSmithMetadata?.ls_provider ?? llm.id?.[2];\n const modelName = invocationParams?.model ?? langSmithMetadata?.ls_model_name ?? 'unknown';\n\n const attrs = baseRequestAttributes(system, modelName, llm, invocationParams, langSmithMetadata);\n\n if (recordInputs && Array.isArray(langChainMessages) && langChainMessages.length > 0) {\n const normalized = normalizeLangChainMessages(langChainMessages.flat());\n\n const { systemInstructions, filteredMessages } = extractSystemInstructions(normalized);\n\n if (systemInstructions) {\n setIfDefined(attrs, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, filteredLength);\n\n const truncated = truncateGenAiMessages(filteredMessages );\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, asString(truncated));\n }\n\n return attrs;\n}\n\n/**\n * Scans generations for Anthropic-style `tool_use` items and records them.\n *\n * LangChain represents some provider messages (e.g., Anthropic) with a `message.content`\n * array that may include objects `{ type: 'tool_use', ... }`. We collect and attach\n * them as a JSON array on `gen_ai.response.tool_calls` for downstream consumers.\n */\nfunction addToolCallsAttributes(generations, attrs) {\n const toolCalls = [];\n const flatGenerations = generations.flat();\n\n for (const gen of flatGenerations) {\n const content = gen.message?.content;\n if (Array.isArray(content)) {\n for (const item of content) {\n const t = item ;\n if (t.type === 'tool_use') toolCalls.push(t);\n }\n }\n }\n\n if (toolCalls.length > 0) {\n setIfDefined(attrs, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, asString(toolCalls));\n }\n}\n\n/**\n * Adds token usage attributes, supporting both OpenAI (`tokenUsage`) and Anthropic (`usage`) formats.\n * - Preserve zero values (0 tokens) by avoiding truthy checks.\n * - Compute a total for Anthropic when not explicitly provided.\n * - Include cache token metrics when present.\n */\nfunction addTokenUsageAttributes(\n llmOutput,\n attrs,\n) {\n if (!llmOutput) return;\n\n const tokenUsage = llmOutput.tokenUsage\n\n;\n const anthropicUsage = llmOutput.usage\n\n;\n\n if (tokenUsage) {\n setNumberIfDefined(attrs, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, tokenUsage.promptTokens);\n setNumberIfDefined(attrs, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, tokenUsage.completionTokens);\n setNumberIfDefined(attrs, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, tokenUsage.totalTokens);\n } else if (anthropicUsage) {\n setNumberIfDefined(attrs, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, anthropicUsage.input_tokens);\n setNumberIfDefined(attrs, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, anthropicUsage.output_tokens);\n\n // Compute total when not provided by the provider.\n const input = Number(anthropicUsage.input_tokens);\n const output = Number(anthropicUsage.output_tokens);\n const total = (Number.isNaN(input) ? 0 : input) + (Number.isNaN(output) ? 0 : output);\n if (total > 0) setNumberIfDefined(attrs, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, total);\n\n // Extra Anthropic cache metrics (present only when caching is enabled)\n if (anthropicUsage.cache_creation_input_tokens !== undefined)\n setNumberIfDefined(\n attrs,\n GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE,\n anthropicUsage.cache_creation_input_tokens,\n );\n if (anthropicUsage.cache_read_input_tokens !== undefined)\n setNumberIfDefined(attrs, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE, anthropicUsage.cache_read_input_tokens);\n }\n}\n\n/**\n * Extracts response-related attributes based on a `LangChainLLMResult`.\n *\n * - Records finish reasons when present on generations (e.g., OpenAI)\n * - When `recordOutputs` is true, captures textual response content and any\n * tool calls.\n * - Also propagates model name (`model_name` or `model`), response `id`, and\n * `stop_reason` (for providers that use it).\n */\nfunction extractLlmResponseAttributes(\n llmResult,\n recordOutputs,\n) {\n if (!llmResult) return;\n\n const attrs = {};\n\n if (Array.isArray(llmResult.generations)) {\n const finishReasons = llmResult.generations\n .flat()\n .map(g => {\n // v1 uses generationInfo.finish_reason\n if (g.generationInfo?.finish_reason) {\n return g.generationInfo.finish_reason;\n }\n // v0.3+ uses generation_info.finish_reason\n if (g.generation_info?.finish_reason) {\n return g.generation_info.finish_reason;\n }\n return null;\n })\n .filter((r) => typeof r === 'string');\n\n if (finishReasons.length > 0) {\n setIfDefined(attrs, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, asString(finishReasons));\n }\n\n // Tool calls metadata (names, IDs) are not PII, so capture them regardless of recordOutputs\n addToolCallsAttributes(llmResult.generations , attrs);\n\n if (recordOutputs) {\n const texts = llmResult.generations\n .flat()\n .map(gen => gen.text ?? gen.message?.content)\n .filter(t => typeof t === 'string');\n\n if (texts.length > 0) {\n setIfDefined(attrs, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, asString(texts));\n }\n }\n }\n\n addTokenUsageAttributes(llmResult.llmOutput, attrs);\n\n const llmOutput = llmResult.llmOutput;\n\n // Extract from v1 generations structure if available\n const firstGeneration = llmResult.generations?.[0]?.[0];\n const v1Message = firstGeneration?.message;\n\n // Provider model identifier: `model_name` (OpenAI-style) or `model` (others)\n // v1 stores this in message.response_metadata.model_name\n const modelName = llmOutput?.model_name ?? llmOutput?.model ?? v1Message?.response_metadata?.model_name;\n if (modelName) setIfDefined(attrs, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, modelName);\n\n // Response ID: v1 stores this in message.id\n const responseId = llmOutput?.id ?? v1Message?.id;\n if (responseId) {\n setIfDefined(attrs, GEN_AI_RESPONSE_ID_ATTRIBUTE, responseId);\n }\n\n // Stop reason: v1 stores this in message.response_metadata.finish_reason\n const stopReason = llmOutput?.stop_reason ?? v1Message?.response_metadata?.finish_reason;\n if (stopReason) {\n setIfDefined(attrs, GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE, asString(stopReason));\n }\n\n return attrs;\n}\n\nexport { extractChatModelRequestAttributes, extractLLMRequestAttributes, extractLlmResponseAttributes, getInvocationParams, normalizeLangChainMessages };\n//# sourceMappingURL=utils.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpanManual } from '../trace.js';\nimport { GEN_AI_TOOL_OUTPUT_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions } from '../ai/utils.js';\nimport { LANGCHAIN_ORIGIN } from './constants.js';\nimport { extractLlmResponseAttributes, getInvocationParams, extractChatModelRequestAttributes, extractLLMRequestAttributes } from './utils.js';\n\n/**\n * Creates a Sentry callback handler for LangChain\n * Returns a plain object that LangChain will call via duck-typing\n *\n * This is a stateful handler that tracks spans across multiple LangChain executions.\n */\nfunction createLangChainCallbackHandler(options = {}) {\n const { recordInputs, recordOutputs } = resolveAIRecordingOptions(options);\n\n // Internal state - single instance tracks all spans\n const spanMap = new Map();\n\n /**\n * Exit a span and clean up\n */\n const exitSpan = (runId) => {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.end();\n spanMap.delete(runId);\n }\n };\n\n /**\n * Handler for LLM Start\n * This handler will be called by LangChain's callback handler when an LLM event is detected.\n */\n const handler = {\n // Required LangChain BaseCallbackHandler properties\n lc_serializable: false,\n lc_namespace: ['langchain_core', 'callbacks', 'sentry'],\n lc_secrets: undefined,\n lc_attributes: undefined,\n lc_aliases: undefined,\n lc_serializable_keys: undefined,\n lc_id: ['langchain_core', 'callbacks', 'sentry'],\n lc_kwargs: {},\n name: 'SentryCallbackHandler',\n\n // BaseCallbackHandlerInput boolean flags\n ignoreLLM: false,\n ignoreChain: false,\n ignoreAgent: false,\n ignoreRetriever: false,\n ignoreCustomEvent: false,\n raiseError: false,\n awaitHandlers: true,\n\n handleLLMStart(\n llm,\n prompts,\n runId,\n _parentRunId,\n _extraParams,\n tags,\n metadata,\n _runName,\n ) {\n const invocationParams = getInvocationParams(tags);\n const attributes = extractLLMRequestAttributes(\n llm ,\n prompts,\n recordInputs,\n invocationParams,\n metadata,\n );\n const modelName = attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE];\n const operationName = attributes[GEN_AI_OPERATION_NAME_ATTRIBUTE];\n\n startSpanManual(\n {\n name: `${operationName} ${modelName}`,\n op: 'gen_ai.chat',\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.chat',\n },\n },\n span => {\n spanMap.set(runId, span);\n return span;\n },\n );\n },\n\n // Chat Model Start Handler\n handleChatModelStart(\n llm,\n messages,\n runId,\n _parentRunId,\n _extraParams,\n tags,\n metadata,\n _runName,\n ) {\n const invocationParams = getInvocationParams(tags);\n const attributes = extractChatModelRequestAttributes(\n llm ,\n messages ,\n recordInputs,\n invocationParams,\n metadata,\n );\n const modelName = attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE];\n const operationName = attributes[GEN_AI_OPERATION_NAME_ATTRIBUTE];\n\n startSpanManual(\n {\n name: `${operationName} ${modelName}`,\n op: 'gen_ai.chat',\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.chat',\n },\n },\n span => {\n spanMap.set(runId, span);\n return span;\n },\n );\n },\n\n // LLM End Handler - note: handleLLMEnd with capital LLM (used by both LLMs and chat models!)\n handleLLMEnd(\n output,\n runId,\n _parentRunId,\n _tags,\n _extraParams,\n ) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n const attributes = extractLlmResponseAttributes(output , recordOutputs);\n if (attributes) {\n span.setAttributes(attributes);\n }\n exitSpan(runId);\n }\n },\n\n // LLM Error Handler - note: handleLLMError with capital LLM\n handleLLMError(error, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n exitSpan(runId);\n }\n\n captureException(error, {\n mechanism: {\n handled: false,\n type: `${LANGCHAIN_ORIGIN}.llm_error_handler`,\n },\n });\n },\n\n // Chain Start Handler\n handleChainStart(\n chain,\n inputs,\n runId,\n _parentRunId,\n _tags,\n _metadata,\n _runType,\n runName,\n ) {\n const chainName = runName || chain.name || 'unknown_chain';\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.langchain',\n 'langchain.chain.name': chainName,\n };\n\n // Add inputs if recordInputs is enabled\n if (recordInputs) {\n attributes['langchain.chain.inputs'] = JSON.stringify(inputs);\n }\n\n startSpanManual(\n {\n name: `chain ${chainName}`,\n op: 'gen_ai.invoke_agent',\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.invoke_agent',\n },\n },\n span => {\n spanMap.set(runId, span);\n return span;\n },\n );\n },\n\n // Chain End Handler\n handleChainEnd(outputs, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n // Add outputs if recordOutputs is enabled\n if (recordOutputs) {\n span.setAttributes({\n 'langchain.chain.outputs': JSON.stringify(outputs),\n });\n }\n exitSpan(runId);\n }\n },\n\n // Chain Error Handler\n handleChainError(error, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n exitSpan(runId);\n }\n\n captureException(error, {\n mechanism: {\n handled: false,\n type: `${LANGCHAIN_ORIGIN}.chain_error_handler`,\n },\n });\n },\n\n // Tool Start Handler\n handleToolStart(tool, input, runId, _parentRunId) {\n const toolName = tool.name || 'unknown_tool';\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGCHAIN_ORIGIN,\n [GEN_AI_TOOL_NAME_ATTRIBUTE]: toolName,\n };\n\n // Add input if recordInputs is enabled\n if (recordInputs) {\n attributes[GEN_AI_TOOL_INPUT_ATTRIBUTE] = input;\n }\n\n startSpanManual(\n {\n name: `execute_tool ${toolName}`,\n op: 'gen_ai.execute_tool',\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.execute_tool',\n },\n },\n span => {\n spanMap.set(runId, span);\n return span;\n },\n );\n },\n\n // Tool End Handler\n handleToolEnd(output, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n // Add output if recordOutputs is enabled\n if (recordOutputs) {\n span.setAttributes({\n [GEN_AI_TOOL_OUTPUT_ATTRIBUTE]: JSON.stringify(output),\n });\n }\n exitSpan(runId);\n }\n },\n\n // Tool Error Handler\n handleToolError(error, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n exitSpan(runId);\n }\n\n captureException(error, {\n mechanism: {\n handled: false,\n type: `${LANGCHAIN_ORIGIN}.tool_error_handler`,\n },\n });\n },\n\n // LangChain BaseCallbackHandler required methods\n copy() {\n return handler;\n },\n\n toJSON() {\n return {\n lc: 1,\n type: 'not_implemented',\n id: handler.lc_id,\n };\n },\n\n toJSONNotImplemented() {\n return {\n lc: 1,\n type: 'not_implemented',\n id: handler.lc_id,\n };\n },\n };\n\n return handler;\n}\n\nexport { createLangChainCallbackHandler };\n//# sourceMappingURL=index.js.map\n", - "const LANGGRAPH_INTEGRATION_NAME = 'LangGraph';\nconst LANGGRAPH_ORIGIN = 'auto.ai.langgraph';\n\nexport { LANGGRAPH_INTEGRATION_NAME, LANGGRAPH_ORIGIN };\n//# sourceMappingURL=constants.js.map\n", - "import { GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { normalizeLangChainMessages } from '../langchain/utils.js';\n\n/**\n * Extract tool calls from messages\n */\nfunction extractToolCalls(messages) {\n if (!messages || messages.length === 0) {\n return null;\n }\n\n const toolCalls = [];\n\n for (const message of messages) {\n if (message && typeof message === 'object') {\n const msgToolCalls = message.tool_calls;\n if (msgToolCalls && Array.isArray(msgToolCalls)) {\n toolCalls.push(...msgToolCalls);\n }\n }\n }\n\n return toolCalls.length > 0 ? toolCalls : null;\n}\n\n/**\n * Extract token usage from a message's usage_metadata or response_metadata\n * Returns token counts without setting span attributes\n */\nfunction extractTokenUsageFromMessage(message)\n\n {\n const msg = message ;\n let inputTokens = 0;\n let outputTokens = 0;\n let totalTokens = 0;\n\n // Extract from usage_metadata (newer format)\n if (msg.usage_metadata && typeof msg.usage_metadata === 'object') {\n const usage = msg.usage_metadata ;\n if (typeof usage.input_tokens === 'number') {\n inputTokens = usage.input_tokens;\n }\n if (typeof usage.output_tokens === 'number') {\n outputTokens = usage.output_tokens;\n }\n if (typeof usage.total_tokens === 'number') {\n totalTokens = usage.total_tokens;\n }\n return { inputTokens, outputTokens, totalTokens };\n }\n\n // Fallback: Extract from response_metadata.tokenUsage\n if (msg.response_metadata && typeof msg.response_metadata === 'object') {\n const metadata = msg.response_metadata ;\n if (metadata.tokenUsage && typeof metadata.tokenUsage === 'object') {\n const tokenUsage = metadata.tokenUsage ;\n if (typeof tokenUsage.promptTokens === 'number') {\n inputTokens = tokenUsage.promptTokens;\n }\n if (typeof tokenUsage.completionTokens === 'number') {\n outputTokens = tokenUsage.completionTokens;\n }\n if (typeof tokenUsage.totalTokens === 'number') {\n totalTokens = tokenUsage.totalTokens;\n }\n }\n }\n\n return { inputTokens, outputTokens, totalTokens };\n}\n\n/**\n * Extract model and finish reason from a message's response_metadata\n */\nfunction extractModelMetadata(span, message) {\n const msg = message ;\n\n if (msg.response_metadata && typeof msg.response_metadata === 'object') {\n const metadata = msg.response_metadata ;\n\n if (metadata.model_name && typeof metadata.model_name === 'string') {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, metadata.model_name);\n }\n\n if (metadata.finish_reason && typeof metadata.finish_reason === 'string') {\n span.setAttribute(GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, [metadata.finish_reason]);\n }\n }\n}\n\n/**\n * Extract tools from compiled graph structure\n *\n * Tools are stored in: compiledGraph.builder.nodes.tools.runnable.tools\n */\nfunction extractToolsFromCompiledGraph(compiledGraph) {\n if (!compiledGraph.builder?.nodes?.tools?.runnable?.tools) {\n return null;\n }\n\n const tools = compiledGraph.builder?.nodes?.tools?.runnable?.tools;\n\n if (!tools || !Array.isArray(tools) || tools.length === 0) {\n return null;\n }\n\n // Extract name, description, and schema from each tool's lc_kwargs\n return tools.map((tool) => ({\n name: tool.lc_kwargs?.name,\n description: tool.lc_kwargs?.description,\n schema: tool.lc_kwargs?.schema,\n }));\n}\n\n/**\n * Set response attributes on the span\n */\nfunction setResponseAttributes(span, inputMessages, result) {\n // Extract messages from result\n const resultObj = result ;\n const outputMessages = resultObj?.messages;\n\n if (!outputMessages || !Array.isArray(outputMessages)) {\n return;\n }\n\n // Get new messages (delta between input and output)\n const inputCount = inputMessages?.length ?? 0;\n const newMessages = outputMessages.length > inputCount ? outputMessages.slice(inputCount) : [];\n\n if (newMessages.length === 0) {\n return;\n }\n\n // Extract and set tool calls from new messages BEFORE normalization\n // (normalization strips tool_calls, so we need to extract them first)\n const toolCalls = extractToolCalls(newMessages );\n if (toolCalls) {\n span.setAttribute(GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, JSON.stringify(toolCalls));\n }\n\n // Normalize the new messages\n const normalizedNewMessages = normalizeLangChainMessages(newMessages);\n span.setAttribute(GEN_AI_RESPONSE_TEXT_ATTRIBUTE, JSON.stringify(normalizedNewMessages));\n\n // Accumulate token usage across all messages\n let totalInputTokens = 0;\n let totalOutputTokens = 0;\n let totalTokens = 0;\n\n // Extract metadata from messages\n for (const message of newMessages) {\n // Accumulate token usage\n const tokens = extractTokenUsageFromMessage(message);\n totalInputTokens += tokens.inputTokens;\n totalOutputTokens += tokens.outputTokens;\n totalTokens += tokens.totalTokens;\n\n // Extract model metadata (last message's metadata wins for model/finish_reason)\n extractModelMetadata(span, message);\n }\n\n // Set accumulated token usage on span\n if (totalInputTokens > 0) {\n span.setAttribute(GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, totalInputTokens);\n }\n if (totalOutputTokens > 0) {\n span.setAttribute(GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, totalOutputTokens);\n }\n if (totalTokens > 0) {\n span.setAttribute(GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, totalTokens);\n }\n}\n\nexport { extractModelMetadata, extractTokenUsageFromMessage, extractToolCalls, extractToolsFromCompiledGraph, setResponseAttributes };\n//# sourceMappingURL=utils.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpan } from '../trace.js';\nimport { GEN_AI_AGENT_NAME_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_PIPELINE_NAME_ATTRIBUTE, GEN_AI_CONVERSATION_ID_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { truncateGenAiMessages } from '../ai/messageTruncation.js';\nimport { resolveAIRecordingOptions, extractSystemInstructions } from '../ai/utils.js';\nimport { normalizeLangChainMessages } from '../langchain/utils.js';\nimport { LANGGRAPH_ORIGIN } from './constants.js';\nimport { extractToolsFromCompiledGraph, setResponseAttributes } from './utils.js';\n\n/**\n * Instruments StateGraph's compile method to create spans for agent creation and invocation\n *\n * Wraps the compile() method to:\n * - Create a `gen_ai.create_agent` span when compile() is called\n * - Automatically wrap the invoke() method on the returned compiled graph with a `gen_ai.invoke_agent` span\n *\n */\nfunction instrumentStateGraphCompile(\n originalCompile,\n options,\n) {\n return new Proxy(originalCompile, {\n apply(target, thisArg, args) {\n return startSpan(\n {\n op: 'gen_ai.create_agent',\n name: 'create_agent',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGGRAPH_ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.create_agent',\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'create_agent',\n },\n },\n span => {\n try {\n const compiledGraph = Reflect.apply(target, thisArg, args);\n const compileOptions = args.length > 0 ? (args[0] ) : {};\n\n // Extract graph name\n if (compileOptions?.name && typeof compileOptions.name === 'string') {\n span.setAttribute(GEN_AI_AGENT_NAME_ATTRIBUTE, compileOptions.name);\n span.updateName(`create_agent ${compileOptions.name}`);\n }\n\n // Instrument agent invoke method on the compiled graph\n const originalInvoke = compiledGraph.invoke;\n if (originalInvoke && typeof originalInvoke === 'function') {\n compiledGraph.invoke = instrumentCompiledGraphInvoke(\n originalInvoke.bind(compiledGraph) ,\n compiledGraph,\n compileOptions,\n options,\n ) ;\n }\n\n return compiledGraph;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.langgraph.error',\n },\n });\n throw error;\n }\n },\n );\n },\n }) ;\n}\n\n/**\n * Instruments CompiledGraph's invoke method to create spans for agent invocation\n *\n * Creates a `gen_ai.invoke_agent` span when invoke() is called\n */\nfunction instrumentCompiledGraphInvoke(\n originalInvoke,\n graphInstance,\n compileOptions,\n options,\n) {\n return new Proxy(originalInvoke, {\n apply(target, thisArg, args) {\n return startSpan(\n {\n op: 'gen_ai.invoke_agent',\n name: 'invoke_agent',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGGRAPH_ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'invoke_agent',\n },\n },\n async span => {\n try {\n const graphName = compileOptions?.name;\n\n if (graphName && typeof graphName === 'string') {\n span.setAttribute(GEN_AI_PIPELINE_NAME_ATTRIBUTE, graphName);\n span.setAttribute(GEN_AI_AGENT_NAME_ATTRIBUTE, graphName);\n span.updateName(`invoke_agent ${graphName}`);\n }\n\n // Extract thread_id from the config (second argument)\n // LangGraph uses config.configurable.thread_id for conversation/session linking\n const config = args.length > 1 ? (args[1] ) : undefined;\n const configurable = config?.configurable ;\n const threadId = configurable?.thread_id;\n if (threadId && typeof threadId === 'string') {\n span.setAttribute(GEN_AI_CONVERSATION_ID_ATTRIBUTE, threadId);\n }\n\n // Extract available tools from the graph instance\n const tools = extractToolsFromCompiledGraph(graphInstance);\n if (tools) {\n span.setAttribute(GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, JSON.stringify(tools));\n }\n\n // Parse input messages\n const recordInputs = options.recordInputs;\n const recordOutputs = options.recordOutputs;\n const inputMessages =\n args.length > 0 ? ((args[0] )?.messages ?? []) : [];\n\n if (inputMessages && recordInputs) {\n const normalizedMessages = normalizeLangChainMessages(inputMessages);\n const { systemInstructions, filteredMessages } = extractSystemInstructions(normalizedMessages);\n\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const truncatedMessages = truncateGenAiMessages(filteredMessages );\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n span.setAttributes({\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: JSON.stringify(truncatedMessages),\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n });\n }\n\n // Call original invoke\n const result = await Reflect.apply(target, thisArg, args);\n\n // Set response attributes\n if (recordOutputs) {\n setResponseAttributes(span, inputMessages ?? null, result);\n }\n\n return result;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.langgraph.error',\n },\n });\n throw error;\n }\n },\n );\n },\n }) ;\n}\n\n/**\n * Directly instruments a StateGraph instance to add tracing spans\n *\n * This function can be used to manually instrument LangGraph StateGraph instances\n * in environments where automatic instrumentation is not available or desired.\n *\n * @param stateGraph - The StateGraph instance to instrument\n * @param options - Optional configuration for recording inputs/outputs\n *\n * @example\n * ```typescript\n * import { instrumentLangGraph } from '@sentry/cloudflare';\n * import { StateGraph } from '@langchain/langgraph';\n *\n * const graph = new StateGraph(MessagesAnnotation)\n * .addNode('agent', mockLlm)\n * .addEdge(START, 'agent')\n * .addEdge('agent', END);\n *\n * instrumentLangGraph(graph, { recordInputs: true, recordOutputs: true });\n * const compiled = graph.compile({ name: 'my_agent' });\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction instrumentLangGraph(\n stateGraph,\n options,\n) {\n stateGraph.compile = instrumentStateGraphCompile(stateGraph.compile, resolveAIRecordingOptions(options));\n\n return stateGraph;\n}\n\nexport { instrumentLangGraph, instrumentStateGraphCompile };\n//# sourceMappingURL=index.js.map\n", - "/**\n * Determine a breadcrumb's log level (only `warning` or `error`) based on an HTTP status code.\n */\nfunction getBreadcrumbLogLevelFromHttpStatusCode(statusCode) {\n // NOTE: undefined defaults to 'info' in Sentry\n if (statusCode === undefined) {\n return undefined;\n } else if (statusCode >= 400 && statusCode < 500) {\n return 'warning';\n } else if (statusCode >= 500) {\n return 'error';\n } else {\n return undefined;\n }\n}\n\nexport { getBreadcrumbLogLevelFromHttpStatusCode };\n//# sourceMappingURL=breadcrumb-log-level.js.map\n", - "/**\n * Replaces constructor functions in module exports, handling read-only properties,\n * and both default and named exports by wrapping them with the constructor.\n *\n * @param exports The module exports object to modify\n * @param exportName The name of the export to replace (e.g., 'GoogleGenAI', 'Anthropic', 'OpenAI')\n * @param wrappedConstructor The wrapped constructor function to replace the original with\n * @returns void\n */\nfunction replaceExports(\n exports$1,\n exportName,\n wrappedConstructor,\n) {\n const original = exports$1[exportName];\n\n if (typeof original !== 'function') {\n return;\n }\n\n // Replace the named export - handle read-only properties\n try {\n exports$1[exportName] = wrappedConstructor;\n } catch {\n // If direct assignment fails, override the property descriptor\n Object.defineProperty(exports$1, exportName, {\n value: wrappedConstructor,\n writable: true,\n configurable: true,\n enumerable: true,\n });\n }\n\n // Replace the default export if it points to the original constructor\n if (exports$1.default === original) {\n try {\n exports$1.default = wrappedConstructor;\n } catch {\n Object.defineProperty(exports$1, 'default', {\n value: wrappedConstructor,\n writable: true,\n configurable: true,\n enumerable: true,\n });\n }\n }\n}\n\nexport { replaceExports };\n//# sourceMappingURL=exports.js.map\n", - "import { normalizeStackTracePath, UNKNOWN_FUNCTION } from './stacktrace.js';\n\n/**\n * Does this filename look like it's part of the app code?\n */\nfunction filenameIsInApp(filename, isNative = false) {\n const isInternal =\n isNative ||\n (filename &&\n // It's not internal if it's an absolute linux path\n !filename.startsWith('/') &&\n // It's not internal if it's an absolute windows path\n !filename.match(/^[A-Z]:/) &&\n // It's not internal if the path is starting with a dot\n !filename.startsWith('.') &&\n // It's not internal if the frame has a protocol. In node, this is usually the case if the file got pre-processed with a bundler like webpack\n !filename.match(/^[a-zA-Z]([a-zA-Z0-9.\\-+])*:\\/\\//)); // Schema from: https://stackoverflow.com/a/3641782\n\n // in_app is all that's not an internal Node function or a module within node_modules\n // note that isNative appears to return true even for node core libraries\n // see https://github.com/getsentry/raven-node/issues/176\n\n return !isInternal && filename !== undefined && !filename.includes('node_modules/');\n}\n\n/** Node Stack line parser */\nfunction node(getModule) {\n const FILENAME_MATCH = /^\\s*[-]{4,}$/;\n const FULL_MATCH = /at (?:async )?(?:(.+?)\\s+\\()?(?:(.+):(\\d+):(\\d+)?|([^)]+))\\)?/;\n const DATA_URI_MATCH = /at (?:async )?(.+?) \\(data:(.*?),/;\n\n return (line) => {\n const dataUriMatch = line.match(DATA_URI_MATCH);\n if (dataUriMatch) {\n return {\n filename: ``,\n function: dataUriMatch[1],\n };\n }\n\n const lineMatch = line.match(FULL_MATCH);\n\n if (lineMatch) {\n let object;\n let method;\n let functionName;\n let typeName;\n let methodName;\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n\n let methodStart = functionName.lastIndexOf('.');\n if (functionName[methodStart - 1] === '.') {\n methodStart--;\n }\n\n if (methodStart > 0) {\n object = functionName.slice(0, methodStart);\n method = functionName.slice(methodStart + 1);\n const objectEnd = object.indexOf('.Module');\n if (objectEnd > 0) {\n functionName = functionName.slice(objectEnd + 1);\n object = object.slice(0, objectEnd);\n }\n }\n typeName = undefined;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '') {\n methodName = undefined;\n functionName = undefined;\n }\n\n if (functionName === undefined) {\n methodName = methodName || UNKNOWN_FUNCTION;\n functionName = typeName ? `${typeName}.${methodName}` : methodName;\n }\n\n let filename = normalizeStackTracePath(lineMatch[2]);\n const isNative = lineMatch[5] === 'native';\n\n if (!filename && lineMatch[5] && !isNative) {\n filename = lineMatch[5];\n }\n\n const maybeDecodedFilename = filename ? _safeDecodeURI(filename) : undefined;\n return {\n filename: maybeDecodedFilename ?? filename,\n module: maybeDecodedFilename && getModule?.(maybeDecodedFilename),\n function: functionName,\n lineno: _parseIntOrUndefined(lineMatch[3]),\n colno: _parseIntOrUndefined(lineMatch[4]),\n in_app: filenameIsInApp(filename || '', isNative),\n };\n }\n\n if (line.match(FILENAME_MATCH)) {\n return {\n filename: line,\n };\n }\n\n return undefined;\n };\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/core so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nfunction nodeStackLineParser(getModule) {\n return [90, node(getModule)];\n}\n\nfunction _parseIntOrUndefined(input) {\n return parseInt(input || '', 10) || undefined;\n}\n\nfunction _safeDecodeURI(filename) {\n try {\n return decodeURI(filename);\n } catch {\n return undefined;\n }\n}\n\nexport { filenameIsInApp, node, nodeStackLineParser };\n//# sourceMappingURL=node-stack-trace.js.map\n", - "/** A simple Least Recently Used map */\nclass LRUMap {\n\n constructor( _maxSize) {this._maxSize = _maxSize;\n this._cache = new Map();\n }\n\n /** Get the current size of the cache */\n get size() {\n return this._cache.size;\n }\n\n /** Get an entry or undefined if it was not in the cache. Re-inserts to update the recently used order */\n get(key) {\n const value = this._cache.get(key);\n if (value === undefined) {\n return undefined;\n }\n // Remove and re-insert to update the order\n this._cache.delete(key);\n this._cache.set(key, value);\n return value;\n }\n\n /** Insert an entry and evict an older entry if we've reached maxSize */\n set(key, value) {\n if (this._cache.size >= this._maxSize) {\n // keys() returns an iterator in insertion order so keys().next() gives us the oldest key\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const nextKey = this._cache.keys().next().value;\n this._cache.delete(nextKey);\n }\n this._cache.set(key, value);\n }\n\n /** Remove an entry and return the entry if it was in the cache */\n remove(key) {\n const value = this._cache.get(key);\n if (value) {\n this._cache.delete(key);\n }\n return value;\n }\n\n /** Clear all entries */\n clear() {\n this._cache.clear();\n }\n\n /** Get all the keys */\n keys() {\n return Array.from(this._cache.keys());\n }\n\n /** Get all the values */\n values() {\n const values = [];\n this._cache.forEach(value => values.push(value));\n return values;\n }\n}\n\nexport { LRUMap };\n//# sourceMappingURL=lru.js.map\n", - "import { errorMonitor } from 'node:events';\nimport { SpanKind, context, trace } from '@opentelemetry/api';\nimport { RPCType, setRPCMetadata, isTracingSuppressed, getRPCMetadata } from '@opentelemetry/core';\nimport { SEMATTRS_NET_HOST_IP, SEMATTRS_NET_HOST_PORT, SEMATTRS_NET_PEER_IP, SEMATTRS_HTTP_STATUS_CODE, ATTR_HTTP_ROUTE, ATTR_HTTP_RESPONSE_STATUS_CODE } from '@opentelemetry/semantic-conventions';\nimport { debug, parseStringToURLObject, stripUrlQueryAndFragment, httpHeadersToSpanAttributes, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, getSpanStatusFromHttpCode, SPAN_STATUS_ERROR, getIsolationScope } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { addStartSpanCallback } from './httpServerIntegration.js';\n\nconst INTEGRATION_NAME = 'Http.ServerSpans';\n\n// Tree-shakable guard to remove all code related to tracing\n\nconst _httpServerSpansIntegration = ((options = {}) => {\n const ignoreStaticAssets = options.ignoreStaticAssets ?? true;\n const ignoreIncomingRequests = options.ignoreIncomingRequests;\n const ignoreStatusCodes = options.ignoreStatusCodes ?? [\n [401, 404],\n // 300 and 304 are possibly valid status codes we do not want to filter\n [301, 303],\n [305, 399],\n ];\n\n const { onSpanCreated } = options;\n // eslint-disable-next-line deprecation/deprecation\n const { requestHook, responseHook, applyCustomAttributesOnSpan } = options.instrumentation ?? {};\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n // If no tracing, we can just skip everything here\n if (typeof __SENTRY_TRACING__ !== 'undefined' && !__SENTRY_TRACING__) {\n return;\n }\n\n client.on('httpServerRequest', (_request, _response, normalizedRequest) => {\n // Type-casting this here because we do not want to put the node types into core\n const request = _request ;\n const response = _response ;\n\n const startSpan = (next) => {\n if (\n shouldIgnoreSpansForIncomingRequest(request, {\n ignoreStaticAssets,\n ignoreIncomingRequests,\n })\n ) {\n DEBUG_BUILD && debug.log(INTEGRATION_NAME, 'Skipping span creation for incoming request', request.url);\n return next();\n }\n\n const fullUrl = normalizedRequest.url || request.url || '/';\n const urlObj = parseStringToURLObject(fullUrl);\n\n const headers = request.headers;\n const userAgent = headers['user-agent'];\n const ips = headers['x-forwarded-for'];\n const httpVersion = request.httpVersion;\n const host = headers.host;\n const hostname = host?.replace(/^(.*)(:[0-9]{1,5})/, '$1') || 'localhost';\n\n const tracer = client.tracer;\n const scheme = fullUrl.startsWith('https') ? 'https' : 'http';\n\n const method = normalizedRequest.method || request.method?.toUpperCase() || 'GET';\n const httpTargetWithoutQueryFragment = urlObj ? urlObj.pathname : stripUrlQueryAndFragment(fullUrl);\n const bestEffortTransactionName = `${method} ${httpTargetWithoutQueryFragment}`;\n\n // We use the plain tracer.startSpan here so we can pass the span kind\n const span = tracer.startSpan(bestEffortTransactionName, {\n kind: SpanKind.SERVER,\n attributes: {\n // Sentry specific attributes\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'http.server',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.http',\n 'sentry.http.prefetch': isKnownPrefetchRequest(request) || undefined,\n // Old Semantic Conventions attributes - added for compatibility with what `@opentelemetry/instrumentation-http` output before\n 'http.url': fullUrl,\n 'http.method': normalizedRequest.method,\n 'http.target': urlObj ? `${urlObj.pathname}${urlObj.search}` : httpTargetWithoutQueryFragment,\n 'http.host': host,\n 'net.host.name': hostname,\n 'http.client_ip': typeof ips === 'string' ? ips.split(',')[0] : undefined,\n 'http.user_agent': userAgent,\n 'http.scheme': scheme,\n 'http.flavor': httpVersion,\n 'net.transport': httpVersion?.toUpperCase() === 'QUIC' ? 'ip_udp' : 'ip_tcp',\n ...getRequestContentLengthAttribute(request),\n ...httpHeadersToSpanAttributes(\n normalizedRequest.headers || {},\n client.getOptions().sendDefaultPii ?? false,\n ),\n },\n });\n\n // TODO v11: Remove the following three hooks, only onSpanCreated should remain\n requestHook?.(span, request);\n responseHook?.(span, response);\n applyCustomAttributesOnSpan?.(span, request, response);\n onSpanCreated?.(span, request, response);\n\n const rpcMetadata = {\n type: RPCType.HTTP,\n span,\n };\n\n return context.with(setRPCMetadata(trace.setSpan(context.active(), span), rpcMetadata), () => {\n context.bind(context.active(), request);\n context.bind(context.active(), response);\n\n // Ensure we only end the span once\n // E.g. error can be emitted before close is emitted\n let isEnded = false;\n function endSpan(status) {\n if (isEnded) {\n return;\n }\n\n isEnded = true;\n\n const newAttributes = getIncomingRequestAttributesOnResponse(request, response);\n span.setAttributes(newAttributes);\n span.setStatus(status);\n span.end();\n\n // Update the transaction name if the route has changed\n const route = newAttributes['http.route'];\n if (route) {\n getIsolationScope().setTransactionName(`${request.method?.toUpperCase() || 'GET'} ${route}`);\n }\n }\n\n response.on('close', () => {\n endSpan(getSpanStatusFromHttpCode(response.statusCode));\n });\n response.on(errorMonitor, () => {\n const httpStatus = getSpanStatusFromHttpCode(response.statusCode);\n // Ensure we def. have an error status here\n endSpan(httpStatus.code === SPAN_STATUS_ERROR ? httpStatus : { code: SPAN_STATUS_ERROR });\n });\n\n return next();\n });\n };\n\n addStartSpanCallback(request, startSpan);\n });\n },\n processEvent(event) {\n // Drop transaction if it has a status code that should be ignored\n if (event.type === 'transaction') {\n const statusCode = event.contexts?.trace?.data?.['http.response.status_code'];\n if (typeof statusCode === 'number') {\n const shouldDrop = shouldFilterStatusCode(statusCode, ignoreStatusCodes);\n if (shouldDrop) {\n DEBUG_BUILD && debug.log('Dropping transaction due to status code', statusCode);\n return null;\n }\n }\n }\n\n return event;\n },\n afterAllSetup(client) {\n if (!DEBUG_BUILD) {\n return;\n }\n\n if (client.getIntegrationByName('Http')) {\n debug.warn(\n 'It seems that you have manually added `httpServerSpansIntergation` while `httpIntegration` is also present. Make sure to remove `httpIntegration` when adding `httpServerSpansIntegration`.',\n );\n }\n\n if (!client.getIntegrationByName('Http.Server')) {\n debug.error(\n 'It seems that you have manually added `httpServerSpansIntergation` without adding `httpServerIntegration`. This is a requiement for spans to be created - please add the `httpServerIntegration` integration.',\n );\n }\n },\n };\n}) ;\n\n/**\n * This integration emits spans for incoming requests handled via the node `http` module.\n * It requires the `httpServerIntegration` to be present.\n */\nconst httpServerSpansIntegration = _httpServerSpansIntegration\n\n;\n\nfunction isKnownPrefetchRequest(req) {\n // Currently only handles Next.js prefetch requests but may check other frameworks in the future.\n return req.headers['next-router-prefetch'] === '1';\n}\n\n/**\n * Check if a request is for a common static asset that should be ignored by default.\n *\n * Only exported for tests.\n */\nfunction isStaticAssetRequest(urlPath) {\n const path = stripUrlQueryAndFragment(urlPath);\n // Common static file extensions\n if (path.match(/\\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/)) {\n return true;\n }\n\n // Common metadata files\n if (path.match(/^\\/(robots\\.txt|sitemap\\.xml|manifest\\.json|browserconfig\\.xml)$/)) {\n return true;\n }\n\n return false;\n}\n\nfunction shouldIgnoreSpansForIncomingRequest(\n request,\n {\n ignoreStaticAssets,\n ignoreIncomingRequests,\n }\n\n,\n) {\n if (isTracingSuppressed(context.active())) {\n return true;\n }\n\n // request.url is the only property that holds any information about the url\n // it only consists of the URL path and query string (if any)\n const urlPath = request.url;\n\n const method = request.method?.toUpperCase();\n // We do not capture OPTIONS/HEAD requests as spans\n if (method === 'OPTIONS' || method === 'HEAD' || !urlPath) {\n return true;\n }\n\n // Default static asset filtering\n if (ignoreStaticAssets && method === 'GET' && isStaticAssetRequest(urlPath)) {\n return true;\n }\n\n if (ignoreIncomingRequests?.(urlPath, request)) {\n return true;\n }\n\n return false;\n}\n\nfunction getRequestContentLengthAttribute(request) {\n const length = getContentLength(request.headers);\n if (length == null) {\n return {};\n }\n\n if (isCompressed(request.headers)) {\n return {\n ['http.request_content_length']: length,\n };\n } else {\n return {\n ['http.request_content_length_uncompressed']: length,\n };\n }\n}\n\nfunction getContentLength(headers) {\n const contentLengthHeader = headers['content-length'];\n if (contentLengthHeader === undefined) return null;\n\n const contentLength = parseInt(contentLengthHeader, 10);\n if (isNaN(contentLength)) return null;\n\n return contentLength;\n}\n\nfunction isCompressed(headers) {\n const encoding = headers['content-encoding'];\n\n return !!encoding && encoding !== 'identity';\n}\n\nfunction getIncomingRequestAttributesOnResponse(request, response) {\n // take socket from the request,\n // since it may be detached from the response object in keep-alive mode\n const { socket } = request;\n const { statusCode, statusMessage } = response;\n\n const newAttributes = {\n [ATTR_HTTP_RESPONSE_STATUS_CODE]: statusCode,\n // eslint-disable-next-line deprecation/deprecation\n [SEMATTRS_HTTP_STATUS_CODE]: statusCode,\n 'http.status_text': statusMessage?.toUpperCase(),\n };\n\n const rpcMetadata = getRPCMetadata(context.active());\n if (socket) {\n const { localAddress, localPort, remoteAddress, remotePort } = socket;\n // eslint-disable-next-line deprecation/deprecation\n newAttributes[SEMATTRS_NET_HOST_IP] = localAddress;\n // eslint-disable-next-line deprecation/deprecation\n newAttributes[SEMATTRS_NET_HOST_PORT] = localPort;\n // eslint-disable-next-line deprecation/deprecation\n newAttributes[SEMATTRS_NET_PEER_IP] = remoteAddress;\n newAttributes['net.peer.port'] = remotePort;\n }\n // eslint-disable-next-line deprecation/deprecation\n newAttributes[SEMATTRS_HTTP_STATUS_CODE] = statusCode;\n newAttributes['http.status_text'] = (statusMessage || '').toUpperCase();\n\n if (rpcMetadata?.type === RPCType.HTTP && rpcMetadata.route !== undefined) {\n const routeName = rpcMetadata.route;\n newAttributes[ATTR_HTTP_ROUTE] = routeName;\n }\n\n return newAttributes;\n}\n\n/**\n * If the given status code should be filtered for the given list of status codes/ranges.\n */\nfunction shouldFilterStatusCode(statusCode, dropForStatusCodes) {\n return dropForStatusCodes.some(code => {\n if (typeof code === 'number') {\n return code === statusCode;\n }\n\n const [min, max] = code;\n return statusCode >= min && statusCode <= max;\n });\n}\n\nexport { httpServerSpansIntegration, isStaticAssetRequest };\n//# sourceMappingURL=httpServerSpansIntegration.js.map\n", - "/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n", - "import { subscribe } from 'node:diagnostics_channel';\nimport { createContextKey, context, propagation } from '@opentelemetry/api';\nimport { debug, addNonEnumerableProperty, getClient, getIsolationScope, httpRequestToRequestData, stripUrlQueryAndFragment, withIsolationScope, generateSpanId, _INTERNAL_safeMathRandom, generateTraceId, getCurrentScope } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { patchRequestToCaptureBody } from '../../utils/captureRequestBody.js';\n\nconst HTTP_SERVER_INSTRUMENTED_KEY = createContextKey('sentry_http_server_instrumented');\nconst INTEGRATION_NAME = 'Http.Server';\n\nconst clientToRequestSessionAggregatesMap = new Map\n\n();\n\n// We keep track of emit functions we wrapped, to avoid double wrapping\n// We do this instead of putting a non-enumerable property on the function, because\n// sometimes the property seems to be migrated to forks of the emit function, which we do not want to happen\n// This was the case in the nestjs-distributed-tracing E2E test\nconst wrappedEmitFns = new WeakSet();\n\n/**\n * Add a callback to the request object that will be called when the request is started.\n * The callback will receive the next function to continue processing the request.\n */\nfunction addStartSpanCallback(request, callback) {\n addNonEnumerableProperty(request, '_startSpanCallback', new WeakRef(callback));\n}\n\nconst _httpServerIntegration = ((options = {}) => {\n const _options = {\n sessions: options.sessions ?? true,\n sessionFlushingDelayMS: options.sessionFlushingDelayMS ?? 60000,\n maxRequestBodySize: options.maxRequestBodySize ?? 'medium',\n ignoreRequestBody: options.ignoreRequestBody,\n };\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n const onHttpServerRequestStart = ((_data) => {\n const data = _data ;\n\n instrumentServer(data.server, _options);\n }) ;\n\n subscribe('http.server.request.start', onHttpServerRequestStart);\n },\n afterAllSetup(client) {\n if (DEBUG_BUILD && client.getIntegrationByName('Http')) {\n debug.warn(\n 'It seems that you have manually added `httpServerIntegration` while `httpIntegration` is also present. Make sure to remove `httpServerIntegration` when adding `httpIntegration`.',\n );\n }\n },\n };\n}) ;\n\n/**\n * This integration handles request isolation, trace continuation and other core Sentry functionality around incoming http requests\n * handled via the node `http` module.\n *\n * This version uses OpenTelemetry for context propagation and span management.\n *\n * @see {@link ../../light/integrations/httpServerIntegration.ts} for the lightweight version without OpenTelemetry\n */\nconst httpServerIntegration = _httpServerIntegration\n\n;\n\n/**\n * Instrument a server to capture incoming requests.\n *\n */\nfunction instrumentServer(\n server,\n {\n ignoreRequestBody,\n maxRequestBodySize,\n sessions,\n sessionFlushingDelayMS,\n }\n\n,\n) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const originalEmit = server.emit;\n\n if (wrappedEmitFns.has(originalEmit)) {\n return;\n }\n\n const newEmit = new Proxy(originalEmit, {\n apply(target, thisArg, args) {\n // Only traces request events\n if (args[0] !== 'request') {\n return target.apply(thisArg, args);\n }\n\n const client = getClient();\n\n // Make sure we do not double execute our wrapper code, for edge cases...\n // Without this check, if we double-wrap emit, for whatever reason, you'd get two http.server spans (one the children of the other)\n if (context.active().getValue(HTTP_SERVER_INSTRUMENTED_KEY) || !client) {\n return target.apply(thisArg, args);\n }\n\n DEBUG_BUILD && debug.log(INTEGRATION_NAME, 'Handling incoming request');\n\n const isolationScope = getIsolationScope().clone();\n const request = args[1] ;\n const response = args[2] ;\n\n const normalizedRequest = httpRequestToRequestData(request);\n\n // request.ip is non-standard but some frameworks set this\n const ipAddress = (request ).ip || request.socket?.remoteAddress;\n\n const url = request.url || '/';\n if (maxRequestBodySize !== 'none' && !ignoreRequestBody?.(url, request)) {\n patchRequestToCaptureBody(request, isolationScope, maxRequestBodySize, INTEGRATION_NAME);\n }\n\n // Update the isolation scope, isolate this request\n isolationScope.setSDKProcessingMetadata({ normalizedRequest, ipAddress });\n\n // attempt to update the scope's `transactionName` based on the request URL\n // Ideally, framework instrumentations coming after the HttpInstrumentation\n // update the transactionName once we get a parameterized route.\n const httpMethod = (request.method || 'GET').toUpperCase();\n const httpTargetWithoutQueryFragment = stripUrlQueryAndFragment(url);\n\n const bestEffortTransactionName = `${httpMethod} ${httpTargetWithoutQueryFragment}`;\n\n isolationScope.setTransactionName(bestEffortTransactionName);\n\n if (sessions && client) {\n recordRequestSession(client, {\n requestIsolationScope: isolationScope,\n response,\n sessionFlushingDelayMS: sessionFlushingDelayMS ?? 60000,\n });\n }\n\n return withIsolationScope(isolationScope, () => {\n const newPropagationContext = {\n traceId: generateTraceId(),\n sampleRand: _INTERNAL_safeMathRandom(),\n propagationSpanId: generateSpanId(),\n };\n // - Set a fresh propagation context so each request gets a unique traceId.\n // When there are incoming trace headers, propagation.extract() below sets a remote\n // span on the OTel context which takes precedence in getTraceContextForScope().\n // - We can write directly to the current scope here because it is forked implicitly via\n // `context.with` in `withIsolationScope` (See `SentryContextManager`).\n // - explicitly making a deep copy to avoid mutation of original PC on the other scope\n getCurrentScope().setPropagationContext({ ...newPropagationContext });\n isolationScope.setPropagationContext({ ...newPropagationContext });\n\n const ctx = propagation\n .extract(context.active(), normalizedRequest.headers)\n .setValue(HTTP_SERVER_INSTRUMENTED_KEY, true);\n\n return context.with(ctx, () => {\n // This is used (optionally) by the httpServerSpansIntegration to attach _startSpanCallback to the request object\n client.emit('httpServerRequest', request, response, normalizedRequest);\n\n const callback = (request )._startSpanCallback?.deref();\n if (callback) {\n return callback(() => target.apply(thisArg, args));\n }\n return target.apply(thisArg, args);\n });\n });\n },\n });\n\n wrappedEmitFns.add(newEmit);\n server.emit = newEmit;\n}\n\n/**\n * Starts a session and tracks it in the context of a given isolation scope.\n * When the passed response is finished, the session is put into a task and is\n * aggregated with other sessions that may happen in a certain time window\n * (sessionFlushingDelayMs).\n *\n * The sessions are always aggregated by the client that is on the current scope\n * at the time of ending the response (if there is one).\n */\n// Exported for unit tests\nfunction recordRequestSession(\n client,\n {\n requestIsolationScope,\n response,\n sessionFlushingDelayMS,\n }\n\n,\n) {\n requestIsolationScope.setSDKProcessingMetadata({\n requestSession: { status: 'ok' },\n });\n response.once('close', () => {\n const requestSession = requestIsolationScope.getScopeData().sdkProcessingMetadata.requestSession;\n\n if (client && requestSession) {\n DEBUG_BUILD && debug.log(`Recorded request session with status: ${requestSession.status}`);\n\n const roundedDate = new Date();\n roundedDate.setSeconds(0, 0);\n const dateBucketKey = roundedDate.toISOString();\n\n const existingClientAggregate = clientToRequestSessionAggregatesMap.get(client);\n const bucket = existingClientAggregate?.[dateBucketKey] || { exited: 0, crashed: 0, errored: 0 };\n bucket[({ ok: 'exited', crashed: 'crashed', errored: 'errored' } )[requestSession.status]]++;\n\n if (existingClientAggregate) {\n existingClientAggregate[dateBucketKey] = bucket;\n } else {\n DEBUG_BUILD && debug.log('Opened new request session aggregate.');\n const newClientAggregate = { [dateBucketKey]: bucket };\n clientToRequestSessionAggregatesMap.set(client, newClientAggregate);\n\n const flushPendingClientAggregates = () => {\n clearTimeout(timeout);\n unregisterClientFlushHook();\n clientToRequestSessionAggregatesMap.delete(client);\n\n const aggregatePayload = Object.entries(newClientAggregate).map(\n ([timestamp, value]) => ({\n started: timestamp,\n exited: value.exited,\n errored: value.errored,\n crashed: value.crashed,\n }),\n );\n client.sendSession({ aggregates: aggregatePayload });\n };\n\n const unregisterClientFlushHook = client.on('flush', () => {\n DEBUG_BUILD && debug.log('Sending request session aggregate due to client flush');\n flushPendingClientAggregates();\n });\n const timeout = setTimeout(() => {\n DEBUG_BUILD && debug.log('Sending request session aggregate due to flushing schedule');\n flushPendingClientAggregates();\n }, sessionFlushingDelayMS).unref();\n }\n }\n });\n}\n\nexport { addStartSpanCallback, httpServerIntegration, recordRequestSession };\n//# sourceMappingURL=httpServerIntegration.js.map\n", - "const INSTRUMENTATION_NAME = '@sentry/instrumentation-http';\n\n/** We only want to capture request bodies up to 1mb. */\nconst MAX_BODY_BYTE_LENGTH = 1024 * 1024;\n\nexport { INSTRUMENTATION_NAME, MAX_BODY_BYTE_LENGTH };\n//# sourceMappingURL=constants.js.map\n", - "import { debug } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { MAX_BODY_BYTE_LENGTH } from '../integrations/http/constants.js';\n\n/**\n * This method patches the request object to capture the body.\n * Instead of actually consuming the streamed body ourselves, which has potential side effects,\n * we monkey patch `req.on('data')` to intercept the body chunks.\n * This way, we only read the body if the user also consumes the body, ensuring we do not change any behavior in unexpected ways.\n */\nfunction patchRequestToCaptureBody(\n req,\n isolationScope,\n maxIncomingRequestBodySize,\n integrationName,\n) {\n let bodyByteLength = 0;\n const chunks = [];\n\n DEBUG_BUILD && debug.log(integrationName, 'Patching request.on');\n\n /**\n * We need to keep track of the original callbacks, in order to be able to remove listeners again.\n * Since `off` depends on having the exact same function reference passed in, we need to be able to map\n * original listeners to our wrapped ones.\n */\n const callbackMap = new WeakMap();\n\n const maxBodySize =\n maxIncomingRequestBodySize === 'small'\n ? 1000\n : maxIncomingRequestBodySize === 'medium'\n ? 10000\n : MAX_BODY_BYTE_LENGTH;\n\n try {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n req.on = new Proxy(req.on, {\n apply: (target, thisArg, args) => {\n const [event, listener, ...restArgs] = args;\n\n if (event === 'data') {\n DEBUG_BUILD &&\n debug.log(integrationName, `Handling request.on(\"data\") with maximum body size of ${maxBodySize}b`);\n\n const callback = new Proxy(listener, {\n apply: (target, thisArg, args) => {\n try {\n const chunk = args[0] ;\n const bufferifiedChunk = Buffer.from(chunk);\n\n if (bodyByteLength < maxBodySize) {\n chunks.push(bufferifiedChunk);\n bodyByteLength += bufferifiedChunk.byteLength;\n } else if (DEBUG_BUILD) {\n debug.log(\n integrationName,\n `Dropping request body chunk because maximum body length of ${maxBodySize}b is exceeded.`,\n );\n }\n } catch (_err) {\n DEBUG_BUILD && debug.error(integrationName, 'Encountered error while storing body chunk.');\n }\n\n return Reflect.apply(target, thisArg, args);\n },\n });\n\n callbackMap.set(listener, callback);\n\n return Reflect.apply(target, thisArg, [event, callback, ...restArgs]);\n }\n\n return Reflect.apply(target, thisArg, args);\n },\n });\n\n // Ensure we also remove callbacks correctly\n // eslint-disable-next-line @typescript-eslint/unbound-method\n req.off = new Proxy(req.off, {\n apply: (target, thisArg, args) => {\n const [, listener] = args;\n\n const callback = callbackMap.get(listener);\n if (callback) {\n callbackMap.delete(listener);\n\n const modifiedArgs = args.slice();\n modifiedArgs[1] = callback;\n return Reflect.apply(target, thisArg, modifiedArgs);\n }\n\n return Reflect.apply(target, thisArg, args);\n },\n });\n\n req.on('end', () => {\n try {\n const body = Buffer.concat(chunks).toString('utf-8');\n if (body) {\n // Using Buffer.byteLength here, because the body may contain characters that are not 1 byte long\n const bodyByteLength = Buffer.byteLength(body, 'utf-8');\n const truncatedBody =\n bodyByteLength > maxBodySize\n ? `${Buffer.from(body)\n .subarray(0, maxBodySize - 3)\n .toString('utf-8')}...`\n : body;\n\n isolationScope.setSDKProcessingMetadata({ normalizedRequest: { data: truncatedBody } });\n }\n } catch (error) {\n if (DEBUG_BUILD) {\n debug.error(integrationName, 'Error building captured request body', error);\n }\n }\n });\n } catch (error) {\n if (DEBUG_BUILD) {\n debug.error(integrationName, 'Error patching request to capture body', error);\n }\n }\n}\n\nexport { patchRequestToCaptureBody };\n//# sourceMappingURL=captureRequestBody.js.map\n", - "import { subscribe, unsubscribe } from 'node:diagnostics_channel';\nimport { errorMonitor } from 'node:events';\nimport { context, trace, SpanStatusCode } from '@opentelemetry/api';\nimport { isTracingSuppressed } from '@opentelemetry/core';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { ATTR_URL_FULL, ATTR_USER_AGENT_ORIGINAL, ATTR_NETWORK_PEER_ADDRESS, ATTR_NETWORK_PEER_PORT, SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH, SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED, ATTR_NETWORK_TRANSPORT, ATTR_NETWORK_PROTOCOL_VERSION, ATTR_HTTP_RESPONSE_STATUS_CODE } from '@opentelemetry/semantic-conventions';\nimport { SDK_VERSION, LRUMap, startInactiveSpan, debug, getSpanStatusFromHttpCode, getHttpSpanDetailsFromUrlObject, parseStringToURLObject, SEMANTIC_ATTRIBUTE_SENTRY_OP } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { INSTRUMENTATION_NAME } from './constants.js';\nimport { addRequestBreadcrumb, addTracePropagationHeadersToOutgoingRequest, getRequestOptions, getClientRequestUrl } from '../../utils/outgoingHttpRequest.js';\n\n/**\n * This custom HTTP instrumentation handles outgoing HTTP requests.\n *\n * It provides:\n * - Breadcrumbs for all outgoing requests\n * - Trace propagation headers (when enabled)\n * - Span creation for outgoing requests (when createSpansForOutgoingRequests is enabled)\n *\n * Span creation requires Node 22+ and uses diagnostic channels to avoid monkey-patching.\n * By default, this is only enabled in the node SDK, not in node-core or other runtime SDKs.\n *\n * Important note: Contrary to other OTEL instrumentation, this one cannot be unwrapped.\n *\n * This is heavily inspired & adapted from:\n * https://github.com/open-telemetry/opentelemetry-js/blob/f8ab5592ddea5cba0a3b33bf8d74f27872c0367f/experimental/packages/opentelemetry-instrumentation-http/src/http.ts\n */\nclass SentryHttpInstrumentation extends InstrumentationBase {\n\n constructor(config = {}) {\n super(INSTRUMENTATION_NAME, SDK_VERSION, config);\n\n this._propagationDecisionMap = new LRUMap(100);\n this._ignoreOutgoingRequestsMap = new WeakMap();\n }\n\n /** @inheritdoc */\n init() {\n // We register handlers when either http or https is instrumented\n // but we only want to register them once, whichever is loaded first\n let hasRegisteredHandlers = false;\n\n const onHttpClientResponseFinish = ((_data) => {\n const data = _data ;\n this._onOutgoingRequestFinish(data.request, data.response);\n }) ;\n\n const onHttpClientRequestError = ((_data) => {\n const data = _data ;\n this._onOutgoingRequestFinish(data.request, undefined);\n }) ;\n\n const onHttpClientRequestCreated = ((_data) => {\n const data = _data ;\n this._onOutgoingRequestCreated(data.request);\n }) ;\n\n const wrap = (moduleExports) => {\n if (hasRegisteredHandlers) {\n return moduleExports;\n }\n\n hasRegisteredHandlers = true;\n\n subscribe('http.client.response.finish', onHttpClientResponseFinish);\n\n // When an error happens, we still want to have a breadcrumb\n // In this case, `http.client.response.finish` is not triggered\n subscribe('http.client.request.error', onHttpClientRequestError);\n\n // NOTE: This channel only exists since Node 22.12+\n // Before that, outgoing requests are not patched\n // and trace headers are not propagated, sadly.\n if (this.getConfig().propagateTraceInOutgoingRequests || this.getConfig().createSpansForOutgoingRequests) {\n subscribe('http.client.request.created', onHttpClientRequestCreated);\n }\n return moduleExports;\n };\n\n const unwrap = () => {\n unsubscribe('http.client.response.finish', onHttpClientResponseFinish);\n unsubscribe('http.client.request.error', onHttpClientRequestError);\n unsubscribe('http.client.request.created', onHttpClientRequestCreated);\n };\n\n /**\n * You may be wondering why we register these diagnostics-channel listeners\n * in such a convoluted way (as InstrumentationNodeModuleDefinition...)˝,\n * instead of simply subscribing to the events once in here.\n * The reason for this is timing semantics: These functions are called once the http or https module is loaded.\n * If we'd subscribe before that, there seem to be conflicts with the OTEL native instrumentation in some scenarios,\n * especially the \"import-on-top\" pattern of setting up ESM applications.\n */\n return [\n new InstrumentationNodeModuleDefinition('http', ['*'], wrap, unwrap),\n new InstrumentationNodeModuleDefinition('https', ['*'], wrap, unwrap),\n ];\n }\n\n /**\n * Start a span for an outgoing request.\n * The span wraps the callback of the request, and ends when the response is finished.\n */\n _startSpanForOutgoingRequest(request) {\n // We monkey-patch `req.once('response'), which is used to trigger the callback of the request\n // eslint-disable-next-line @typescript-eslint/unbound-method, deprecation/deprecation\n const originalOnce = request.once;\n\n const [name, attributes] = _getOutgoingRequestSpanData(request);\n\n const span = startInactiveSpan({\n name,\n attributes,\n onlyIfParent: true,\n });\n\n this.getConfig().outgoingRequestHook?.(span, request);\n\n const newOnce = new Proxy(originalOnce, {\n apply(target, thisArg, args) {\n const [event] = args;\n if (event !== 'response') {\n return target.apply(thisArg, args);\n }\n\n const parentContext = context.active();\n const requestContext = trace.setSpan(parentContext, span);\n\n return context.with(requestContext, () => {\n return target.apply(thisArg, args);\n });\n },\n });\n\n // eslint-disable-next-line deprecation/deprecation\n request.once = newOnce;\n\n /**\n * Determines if the request has errored or the response has ended/errored.\n */\n let responseFinished = false;\n\n const endSpan = (status) => {\n if (responseFinished) {\n return;\n }\n responseFinished = true;\n\n span.setStatus(status);\n span.end();\n };\n\n request.prependListener('response', response => {\n if (request.listenerCount('response') <= 1) {\n response.resume();\n }\n\n context.bind(context.active(), response);\n\n const additionalAttributes = _getOutgoingRequestEndedSpanData(response);\n span.setAttributes(additionalAttributes);\n\n this.getConfig().outgoingResponseHook?.(span, response);\n this.getConfig().outgoingRequestApplyCustomAttributes?.(span, request, response);\n\n const endHandler = (forceError = false) => {\n this._diag.debug('outgoingRequest on end()');\n\n const status =\n // eslint-disable-next-line deprecation/deprecation\n forceError || typeof response.statusCode !== 'number' || (response.aborted && !response.complete)\n ? { code: SpanStatusCode.ERROR }\n : getSpanStatusFromHttpCode(response.statusCode);\n\n endSpan(status);\n };\n\n response.on('end', () => {\n endHandler();\n });\n response.on(errorMonitor, error => {\n this._diag.debug('outgoingRequest on response error()', error);\n endHandler(true);\n });\n });\n\n // Fallback if proper response end handling above fails\n request.on('close', () => {\n endSpan({ code: SpanStatusCode.UNSET });\n });\n request.on(errorMonitor, error => {\n this._diag.debug('outgoingRequest on request error()', error);\n endSpan({ code: SpanStatusCode.ERROR });\n });\n\n return span;\n }\n\n /**\n * This is triggered when an outgoing request finishes.\n * It has access to the final request and response objects.\n */\n _onOutgoingRequestFinish(request, response) {\n DEBUG_BUILD && debug.log(INSTRUMENTATION_NAME, 'Handling finished outgoing request');\n\n const _breadcrumbs = this.getConfig().breadcrumbs;\n const breadCrumbsEnabled = typeof _breadcrumbs === 'undefined' ? true : _breadcrumbs;\n\n // Note: We cannot rely on the map being set by `_onOutgoingRequestCreated`, because that is not run in Node <22\n const shouldIgnore = this._ignoreOutgoingRequestsMap.get(request) ?? this._shouldIgnoreOutgoingRequest(request);\n this._ignoreOutgoingRequestsMap.set(request, shouldIgnore);\n\n if (breadCrumbsEnabled && !shouldIgnore) {\n addRequestBreadcrumb(request, response);\n }\n }\n\n /**\n * This is triggered when an outgoing request is created.\n * It creates a span (if enabled) and propagates trace headers within the span's context,\n * so downstream services link to the outgoing HTTP span rather than its parent.\n */\n _onOutgoingRequestCreated(request) {\n DEBUG_BUILD && debug.log(INSTRUMENTATION_NAME, 'Handling outgoing request created');\n\n const shouldIgnore = this._ignoreOutgoingRequestsMap.get(request) ?? this._shouldIgnoreOutgoingRequest(request);\n this._ignoreOutgoingRequestsMap.set(request, shouldIgnore);\n\n if (shouldIgnore) {\n return;\n }\n\n const shouldCreateSpan = this.getConfig().createSpansForOutgoingRequests && (this.getConfig().spans ?? true);\n const shouldPropagate = this.getConfig().propagateTraceInOutgoingRequests;\n\n if (shouldCreateSpan) {\n const span = this._startSpanForOutgoingRequest(request);\n\n // Propagate headers within the span's context so the sentry-trace header\n // contains the outgoing span's ID, not the parent span's ID.\n // Only do this if the span is recording (has a parent) - otherwise the non-recording\n // span would produce all-zero trace IDs instead of using the scope's propagation context.\n if (shouldPropagate && span.isRecording()) {\n const requestContext = trace.setSpan(context.active(), span);\n context.with(requestContext, () => {\n addTracePropagationHeadersToOutgoingRequest(request, this._propagationDecisionMap);\n });\n } else if (shouldPropagate) {\n addTracePropagationHeadersToOutgoingRequest(request, this._propagationDecisionMap);\n }\n } else if (shouldPropagate) {\n addTracePropagationHeadersToOutgoingRequest(request, this._propagationDecisionMap);\n }\n }\n\n /**\n * Check if the given outgoing request should be ignored.\n */\n _shouldIgnoreOutgoingRequest(request) {\n if (isTracingSuppressed(context.active())) {\n return true;\n }\n\n const ignoreOutgoingRequests = this.getConfig().ignoreOutgoingRequests;\n\n if (!ignoreOutgoingRequests) {\n return false;\n }\n\n const options = getRequestOptions(request);\n const url = getClientRequestUrl(request);\n return ignoreOutgoingRequests(url, options);\n }\n}\n\nfunction _getOutgoingRequestSpanData(request) {\n const url = getClientRequestUrl(request);\n\n const [name, attributes] = getHttpSpanDetailsFromUrlObject(\n parseStringToURLObject(url),\n 'client',\n 'auto.http.otel.http',\n request,\n );\n\n const userAgent = request.getHeader('user-agent');\n\n return [\n name,\n {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'http.client',\n 'otel.kind': 'CLIENT',\n [ATTR_USER_AGENT_ORIGINAL]: userAgent,\n [ATTR_URL_FULL]: url,\n 'http.url': url,\n 'http.method': request.method,\n 'http.target': request.path || '/',\n 'net.peer.name': request.host,\n 'http.host': request.getHeader('host'),\n ...attributes,\n },\n ];\n}\n\nfunction _getOutgoingRequestEndedSpanData(response) {\n const { statusCode, statusMessage, httpVersion, socket } = response;\n\n const transport = httpVersion.toUpperCase() !== 'QUIC' ? 'ip_tcp' : 'ip_udp';\n\n const additionalAttributes = {\n [ATTR_HTTP_RESPONSE_STATUS_CODE]: statusCode,\n [ATTR_NETWORK_PROTOCOL_VERSION]: httpVersion,\n 'http.flavor': httpVersion,\n [ATTR_NETWORK_TRANSPORT]: transport,\n 'net.transport': transport,\n ['http.status_text']: statusMessage?.toUpperCase(),\n 'http.status_code': statusCode,\n ...getResponseContentLengthAttributes(response),\n };\n\n if (socket) {\n const { remoteAddress, remotePort } = socket;\n\n additionalAttributes[ATTR_NETWORK_PEER_ADDRESS] = remoteAddress;\n additionalAttributes[ATTR_NETWORK_PEER_PORT] = remotePort;\n additionalAttributes['net.peer.ip'] = remoteAddress;\n additionalAttributes['net.peer.port'] = remotePort;\n }\n\n return additionalAttributes;\n}\n\nfunction getResponseContentLengthAttributes(response) {\n const length = getContentLength(response.headers);\n if (length == null) {\n return {};\n }\n\n if (isCompressed(response.headers)) {\n // eslint-disable-next-line deprecation/deprecation\n return { [SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH]: length };\n } else {\n // eslint-disable-next-line deprecation/deprecation\n return { [SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED]: length };\n }\n}\n\nfunction getContentLength(headers) {\n const contentLengthHeader = headers['content-length'];\n if (typeof contentLengthHeader === 'number') {\n return contentLengthHeader;\n }\n if (typeof contentLengthHeader !== 'string') {\n return undefined;\n }\n\n const contentLength = parseInt(contentLengthHeader, 10);\n if (isNaN(contentLength)) {\n return undefined;\n }\n\n return contentLength;\n}\n\nfunction isCompressed(headers) {\n const encoding = headers['content-encoding'];\n\n return !!encoding && encoding !== 'identity';\n}\n\nexport { SentryHttpInstrumentation };\n//# sourceMappingURL=SentryHttpInstrumentation.js.map\n", - "import { parseBaggageHeader, objectToBaggageHeader } from '@sentry/core';\n\n/**\n * Merge two baggage headers into one.\n * - Sentry-specific entries (keys starting with \"sentry-\") from the new baggage take precedence\n * - Non-Sentry entries from existing baggage take precedence\n * The order of the existing baggage will be preserved, and new entries will be added to the end.\n *\n * This matches the behavior of OTEL's propagation.inject() which uses baggage.setEntry()\n * to overwrite existing entries with the same key.\n */\nfunction mergeBaggageHeaders(\n existing,\n baggage,\n) {\n if (!existing) {\n return baggage;\n }\n\n const existingBaggageEntries = parseBaggageHeader(existing);\n const newBaggageEntries = parseBaggageHeader(baggage);\n\n if (!newBaggageEntries) {\n return existing;\n }\n\n // Start with existing entries, but Sentry entries from new baggage will overwrite\n const mergedBaggageEntries = { ...existingBaggageEntries };\n Object.entries(newBaggageEntries).forEach(([key, value]) => {\n // Sentry-specific keys always take precedence from new baggage\n // Non-Sentry keys only added if not already present\n if (key.startsWith('sentry-') || !mergedBaggageEntries[key]) {\n mergedBaggageEntries[key] = value;\n }\n });\n\n return objectToBaggageHeader(mergedBaggageEntries);\n}\n\nexport { mergeBaggageHeaders };\n//# sourceMappingURL=baggage.js.map\n", - "import { getBreadcrumbLogLevelFromHttpStatusCode, addBreadcrumb, getClient, shouldPropagateTraceForUrl, getTraceData, debug, isError, parseUrl, getSanitizedUrlString } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { mergeBaggageHeaders } from './baggage.js';\n\nconst LOG_PREFIX = '@sentry/instrumentation-http';\n\n/** Add a breadcrumb for outgoing requests. */\nfunction addRequestBreadcrumb(request, response) {\n const data = getBreadcrumbData(request);\n\n const statusCode = response?.statusCode;\n const level = getBreadcrumbLogLevelFromHttpStatusCode(statusCode);\n\n addBreadcrumb(\n {\n category: 'http',\n data: {\n status_code: statusCode,\n ...data,\n },\n type: 'http',\n level,\n },\n {\n event: 'response',\n request,\n response,\n },\n );\n}\n\n/**\n * Add trace propagation headers to an outgoing request.\n * This must be called _before_ the request is sent!\n */\n// eslint-disable-next-line complexity\nfunction addTracePropagationHeadersToOutgoingRequest(\n request,\n propagationDecisionMap,\n) {\n const url = getClientRequestUrl(request);\n\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() || {};\n const headersToAdd = shouldPropagateTraceForUrl(url, tracePropagationTargets, propagationDecisionMap)\n ? getTraceData({ propagateTraceparent })\n : undefined;\n\n if (!headersToAdd) {\n return;\n }\n\n const { 'sentry-trace': sentryTrace, baggage, traceparent } = headersToAdd;\n\n if (sentryTrace && !request.getHeader('sentry-trace')) {\n try {\n request.setHeader('sentry-trace', sentryTrace);\n DEBUG_BUILD && debug.log(LOG_PREFIX, 'Added sentry-trace header to outgoing request');\n } catch (error) {\n DEBUG_BUILD &&\n debug.error(\n LOG_PREFIX,\n 'Failed to add sentry-trace header to outgoing request:',\n isError(error) ? error.message : 'Unknown error',\n );\n }\n }\n\n if (traceparent && !request.getHeader('traceparent')) {\n try {\n request.setHeader('traceparent', traceparent);\n DEBUG_BUILD && debug.log(LOG_PREFIX, 'Added traceparent header to outgoing request');\n } catch (error) {\n DEBUG_BUILD &&\n debug.error(\n LOG_PREFIX,\n 'Failed to add traceparent header to outgoing request:',\n isError(error) ? error.message : 'Unknown error',\n );\n }\n }\n\n if (baggage) {\n const newBaggage = mergeBaggageHeaders(request.getHeader('baggage'), baggage);\n if (newBaggage) {\n try {\n request.setHeader('baggage', newBaggage);\n DEBUG_BUILD && debug.log(LOG_PREFIX, 'Added baggage header to outgoing request');\n } catch (error) {\n DEBUG_BUILD &&\n debug.error(\n LOG_PREFIX,\n 'Failed to add baggage header to outgoing request:',\n isError(error) ? error.message : 'Unknown error',\n );\n }\n }\n }\n}\n\nfunction getBreadcrumbData(request) {\n try {\n // `request.host` does not contain the port, but the host header does\n const host = request.getHeader('host') || request.host;\n const url = new URL(request.path, `${request.protocol}//${host}`);\n const parsedUrl = parseUrl(url.toString());\n\n const data = {\n url: getSanitizedUrlString(parsedUrl),\n 'http.method': request.method || 'GET',\n };\n\n if (parsedUrl.search) {\n data['http.query'] = parsedUrl.search;\n }\n if (parsedUrl.hash) {\n data['http.fragment'] = parsedUrl.hash;\n }\n\n return data;\n } catch {\n return {};\n }\n}\n\n/** Convert an outgoing request to request options. */\nfunction getRequestOptions(request) {\n return {\n method: request.method,\n protocol: request.protocol,\n host: request.host,\n hostname: request.host,\n path: request.path,\n headers: request.getHeaders(),\n };\n}\n\n/**\n *\n */\nfunction getClientRequestUrl(request) {\n const hostname = request.getHeader('host') || request.host;\n const protocol = request.protocol;\n const path = request.path;\n\n return `${protocol}//${hostname}${path}`;\n}\n\nexport { addRequestBreadcrumb, addTracePropagationHeadersToOutgoingRequest, getClientRequestUrl, getRequestOptions };\n//# sourceMappingURL=outgoingHttpRequest.js.map\n", - "import { context } from '@opentelemetry/api';\nimport { isTracingSuppressed } from '@opentelemetry/core';\nimport { InstrumentationBase } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, LRUMap } from '@sentry/core';\nimport * as diagch from 'diagnostics_channel';\nimport { NODE_MAJOR, NODE_MINOR } from '../../nodeVersion.js';\nimport { addTracePropagationHeadersToFetchRequest, addFetchRequestBreadcrumb, getAbsoluteUrl } from '../../utils/outgoingFetchRequest.js';\n\n/**\n * This custom node-fetch instrumentation is used to instrument outgoing fetch requests.\n * It does not emit any spans.\n *\n * The reason this is isolated from the OpenTelemetry instrumentation is that users may overwrite this,\n * which would lead to Sentry not working as expected.\n *\n * This is heavily inspired & adapted from:\n * https://github.com/open-telemetry/opentelemetry-js-contrib/blob/28e209a9da36bc4e1f8c2b0db7360170ed46cb80/plugins/node/instrumentation-undici/src/undici.ts\n */\nclass SentryNodeFetchInstrumentation extends InstrumentationBase {\n // Keep ref to avoid https://github.com/nodejs/node/issues/42170 bug and for\n // unsubscribing.\n\n constructor(config = {}) {\n super('@sentry/instrumentation-node-fetch', SDK_VERSION, config);\n this._channelSubs = [];\n this._propagationDecisionMap = new LRUMap(100);\n this._ignoreOutgoingRequestsMap = new WeakMap();\n }\n\n /** No need to instrument files/modules. */\n init() {\n return undefined;\n }\n\n /** Disable the instrumentation. */\n disable() {\n super.disable();\n this._channelSubs.forEach(sub => sub.unsubscribe());\n this._channelSubs = [];\n }\n\n /** Enable the instrumentation. */\n enable() {\n // \"enabled\" handling is currently a bit messy with InstrumentationBase.\n // If constructed with `{enabled: false}`, this `.enable()` is still called,\n // and `this.getConfig().enabled !== this.isEnabled()`, creating confusion.\n //\n // For now, this class will setup for instrumenting if `.enable()` is\n // called, but use `this.getConfig().enabled` to determine if\n // instrumentation should be generated. This covers the more likely common\n // case of config being given a construction time, rather than later via\n // `instance.enable()`, `.disable()`, or `.setConfig()` calls.\n super.enable();\n\n // This method is called by the super-class constructor before ours is\n // called. So we need to ensure the property is initalized.\n this._channelSubs = this._channelSubs || [];\n\n // Avoid to duplicate subscriptions\n if (this._channelSubs.length > 0) {\n return;\n }\n\n this._subscribeToChannel('undici:request:create', this._onRequestCreated.bind(this));\n this._subscribeToChannel('undici:request:headers', this._onResponseHeaders.bind(this));\n }\n\n /**\n * This method is called when a request is created.\n * You can still mutate the request here before it is sent.\n */\n _onRequestCreated({ request }) {\n const config = this.getConfig();\n const enabled = config.enabled !== false;\n\n if (!enabled) {\n return;\n }\n\n const shouldIgnore = this._shouldIgnoreOutgoingRequest(request);\n // We store this decisision for later so we do not need to re-evaluate it\n // Additionally, the active context is not correct in _onResponseHeaders, so we need to make sure it is evaluated here\n this._ignoreOutgoingRequestsMap.set(request, shouldIgnore);\n\n if (shouldIgnore) {\n return;\n }\n\n if (config.tracePropagation !== false) {\n addTracePropagationHeadersToFetchRequest(request, this._propagationDecisionMap);\n }\n }\n\n /**\n * This method is called when a response is received.\n */\n _onResponseHeaders({ request, response }) {\n const config = this.getConfig();\n const enabled = config.enabled !== false;\n\n if (!enabled) {\n return;\n }\n\n const _breadcrumbs = config.breadcrumbs;\n const breadCrumbsEnabled = typeof _breadcrumbs === 'undefined' ? true : _breadcrumbs;\n\n const shouldIgnore = this._ignoreOutgoingRequestsMap.get(request);\n\n if (breadCrumbsEnabled && !shouldIgnore) {\n addFetchRequestBreadcrumb(request, response);\n }\n }\n\n /** Subscribe to a diagnostics channel. */\n _subscribeToChannel(\n diagnosticChannel,\n onMessage,\n ) {\n // `diagnostics_channel` had a ref counting bug until v18.19.0.\n // https://github.com/nodejs/node/pull/47520\n const useNewSubscribe = NODE_MAJOR > 18 || (NODE_MAJOR === 18 && NODE_MINOR >= 19);\n\n let unsubscribe;\n if (useNewSubscribe) {\n diagch.subscribe?.(diagnosticChannel, onMessage);\n unsubscribe = () => diagch.unsubscribe?.(diagnosticChannel, onMessage);\n } else {\n const channel = diagch.channel(diagnosticChannel);\n channel.subscribe(onMessage);\n unsubscribe = () => channel.unsubscribe(onMessage);\n }\n\n this._channelSubs.push({\n name: diagnosticChannel,\n unsubscribe,\n });\n }\n\n /**\n * Check if the given outgoing request should be ignored.\n */\n _shouldIgnoreOutgoingRequest(request) {\n if (isTracingSuppressed(context.active())) {\n return true;\n }\n\n // Add trace propagation headers\n const url = getAbsoluteUrl(request.origin, request.path);\n const ignoreOutgoingRequests = this.getConfig().ignoreOutgoingRequests;\n\n if (typeof ignoreOutgoingRequests !== 'function' || !url) {\n return false;\n }\n\n return ignoreOutgoingRequests(url);\n }\n}\n\nexport { SentryNodeFetchInstrumentation };\n//# sourceMappingURL=SentryNodeFetchInstrumentation.js.map\n", - "import { parseSemver } from '@sentry/core';\n\nconst NODE_VERSION = parseSemver(process.versions.node) ;\nconst NODE_MAJOR = NODE_VERSION.major;\nconst NODE_MINOR = NODE_VERSION.minor;\n\nexport { NODE_MAJOR, NODE_MINOR, NODE_VERSION };\n//# sourceMappingURL=nodeVersion.js.map\n", - "import { getClient, shouldPropagateTraceForUrl, getTraceData, getBreadcrumbLogLevelFromHttpStatusCode, addBreadcrumb, parseUrl, getSanitizedUrlString } from '@sentry/core';\nimport { mergeBaggageHeaders } from './baggage.js';\n\nconst SENTRY_TRACE_HEADER = 'sentry-trace';\nconst SENTRY_BAGGAGE_HEADER = 'baggage';\n\n// For baggage, we make sure to merge this into a possibly existing header\nconst BAGGAGE_HEADER_REGEX = /baggage: (.*)\\r\\n/;\n\n/**\n * Add trace propagation headers to an outgoing fetch/undici request.\n *\n * Checks if the request URL matches trace propagation targets,\n * then injects sentry-trace, traceparent, and baggage headers.\n */\n// eslint-disable-next-line complexity\nfunction addTracePropagationHeadersToFetchRequest(\n request,\n propagationDecisionMap,\n) {\n const url = getAbsoluteUrl(request.origin, request.path);\n\n // Manually add the trace headers, if it applies\n // Note: We do not use `propagation.inject()` here, because our propagator relies on an active span\n // Which we do not have in this case\n // The propagator _may_ overwrite this, but this should be fine as it is the same data\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() || {};\n const addedHeaders = shouldPropagateTraceForUrl(url, tracePropagationTargets, propagationDecisionMap)\n ? getTraceData({ propagateTraceparent })\n : undefined;\n\n if (!addedHeaders) {\n return;\n }\n\n const { 'sentry-trace': sentryTrace, baggage, traceparent } = addedHeaders;\n\n // We do not want to overwrite existing headers here\n // If the core UndiciInstrumentation is registered, it will already have set the headers\n // We do not want to add any then\n if (Array.isArray(request.headers)) {\n const requestHeaders = request.headers;\n\n // We do not want to overwrite existing header here, if it was already set\n if (sentryTrace && !requestHeaders.includes(SENTRY_TRACE_HEADER)) {\n requestHeaders.push(SENTRY_TRACE_HEADER, sentryTrace);\n }\n\n if (traceparent && !requestHeaders.includes('traceparent')) {\n requestHeaders.push('traceparent', traceparent);\n }\n\n // For baggage, we make sure to merge this into a possibly existing header\n const existingBaggagePos = requestHeaders.findIndex(header => header === SENTRY_BAGGAGE_HEADER);\n if (baggage && existingBaggagePos === -1) {\n requestHeaders.push(SENTRY_BAGGAGE_HEADER, baggage);\n } else if (baggage) {\n const existingBaggage = requestHeaders[existingBaggagePos + 1];\n const merged = mergeBaggageHeaders(existingBaggage, baggage);\n if (merged) {\n requestHeaders[existingBaggagePos + 1] = merged;\n }\n }\n } else {\n const requestHeaders = request.headers;\n // We do not want to overwrite existing header here, if it was already set\n if (sentryTrace && !requestHeaders.includes(`${SENTRY_TRACE_HEADER}:`)) {\n request.headers += `${SENTRY_TRACE_HEADER}: ${sentryTrace}\\r\\n`;\n }\n\n if (traceparent && !requestHeaders.includes('traceparent:')) {\n request.headers += `traceparent: ${traceparent}\\r\\n`;\n }\n\n const existingBaggage = request.headers.match(BAGGAGE_HEADER_REGEX)?.[1];\n if (baggage && !existingBaggage) {\n request.headers += `${SENTRY_BAGGAGE_HEADER}: ${baggage}\\r\\n`;\n } else if (baggage) {\n const merged = mergeBaggageHeaders(existingBaggage, baggage);\n if (merged) {\n request.headers = request.headers.replace(BAGGAGE_HEADER_REGEX, `baggage: ${merged}\\r\\n`);\n }\n }\n }\n}\n\n/** Add a breadcrumb for an outgoing fetch/undici request. */\nfunction addFetchRequestBreadcrumb(request, response) {\n const data = getBreadcrumbData(request);\n\n const statusCode = response.statusCode;\n const level = getBreadcrumbLogLevelFromHttpStatusCode(statusCode);\n\n addBreadcrumb(\n {\n category: 'http',\n data: {\n status_code: statusCode,\n ...data,\n },\n type: 'http',\n level,\n },\n {\n event: 'response',\n request,\n response,\n },\n );\n}\n\nfunction getBreadcrumbData(request) {\n try {\n const url = getAbsoluteUrl(request.origin, request.path);\n const parsedUrl = parseUrl(url);\n\n const data = {\n url: getSanitizedUrlString(parsedUrl),\n 'http.method': request.method || 'GET',\n };\n\n if (parsedUrl.search) {\n data['http.query'] = parsedUrl.search;\n }\n if (parsedUrl.hash) {\n data['http.fragment'] = parsedUrl.hash;\n }\n\n return data;\n } catch {\n return {};\n }\n}\n\n/** Get the absolute URL from an origin and path. */\nfunction getAbsoluteUrl(origin, path = '/') {\n try {\n const url = new URL(path, origin);\n return url.toString();\n } catch {\n // fallback: Construct it on our own\n const url = `${origin}`;\n\n if (url.endsWith('/') && path.startsWith('/')) {\n return `${url}${path.slice(1)}`;\n }\n\n if (!url.endsWith('/') && !path.startsWith('/')) {\n return `${url}/${path}`;\n }\n\n return `${url}${path}`;\n }\n}\n\nexport { addFetchRequestBreadcrumb, addTracePropagationHeadersToFetchRequest, getAbsoluteUrl };\n//# sourceMappingURL=outgoingFetchRequest.js.map\n", - "import { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks';\nimport { wrapContextManagerClass } from '@sentry/opentelemetry';\n\n/**\n * This is a custom ContextManager for OpenTelemetry, which extends the default AsyncLocalStorageContextManager.\n * It ensures that we create a new hub per context, so that the OTEL Context & the Sentry Scopes are always in sync.\n *\n * Note that we currently only support AsyncHooks with this,\n * but since this should work for Node 14+ anyhow that should be good enough.\n */\nconst SentryContextManager = wrapContextManagerClass(AsyncLocalStorageContextManager);\n\nexport { SentryContextManager };\n//# sourceMappingURL=contextManager.js.map\n", - "import { ATTR_URL_FULL, SEMATTRS_HTTP_URL, ATTR_HTTP_REQUEST_METHOD, SEMATTRS_HTTP_METHOD, ATTR_DB_SYSTEM_NAME, SEMATTRS_DB_SYSTEM, SEMATTRS_RPC_SERVICE, SEMATTRS_MESSAGING_SYSTEM, SEMATTRS_FAAS_TRIGGER, SEMATTRS_DB_STATEMENT, SEMATTRS_HTTP_TARGET, ATTR_HTTP_ROUTE, ATTR_HTTP_RESPONSE_STATUS_CODE, SEMATTRS_HTTP_STATUS_CODE, SEMATTRS_RPC_GRPC_STATUS_CODE } from '@opentelemetry/semantic-conventions';\nimport { parseUrl, getSanitizedUrlString, SDK_VERSION, addNonEnumerableProperty, isSentryRequestUrl, getClient, baggageHeaderToDynamicSamplingContext, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, stripUrlQueryAndFragment, spanToJSON, hasSpansEnabled, dynamicSamplingContextToSentryBaggageHeader, LRUMap, debug, shouldPropagateTraceForUrl, parseBaggageHeader, SENTRY_BAGGAGE_KEY_PREFIX, generateSentryTraceHeader, generateTraceparentHeader, getDynamicSamplingContextFromSpan, getCurrentScope, getDynamicSamplingContextFromScope, getIsolationScope, propagationContextFromHeaders, shouldContinueTrace, spanToTraceContext, getTraceContextFromScope, getRootSpan, handleCallbackErrors, getCapturedScopesOnSpan, setAsyncContextStrategy, getDefaultIsolationScope, getDefaultCurrentScope, SPAN_STATUS_OK, SPAN_STATUS_ERROR, getSpanStatusFromHttpCode, _INTERNAL_safeDateNow, debounce, timedEventsToMeasurements, captureEvent, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, convertSpanLinksForEnvelope, getStatusMessage, spanTimeInputToSeconds, addChildSpanToSpan, setCapturedScopesOnSpan, logSpanStart, logSpanEnd, parseSampleRate, _INTERNAL_safeMathRandom, sampleSpan } from '@sentry/core';\nexport { getClient, getDynamicSamplingContextFromSpan, shouldPropagateTraceForUrl } from '@sentry/core';\nimport * as api from '@opentelemetry/api';\nimport { trace, SpanKind, createContextKey, TraceFlags, propagation, INVALID_TRACEID, context, SpanStatusCode, ROOT_CONTEXT, isSpanContextValid } from '@opentelemetry/api';\nimport { TraceState, W3CBaggagePropagator, isTracingSuppressed, suppressTracing as suppressTracing$1 } from '@opentelemetry/core';\nimport { SamplingDecision } from '@opentelemetry/sdk-trace-base';\n\n/** If this attribute is true, it means that the parent is a remote span. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE = 'sentry.parentIsRemote';\n\n// These are not standardized yet, but used by the graphql instrumentation\nconst SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION = 'sentry.graphql.operation';\n\n/**\n * Get the parent span id from a span.\n * In OTel v1, the parent span id is accessed as `parentSpanId`\n * In OTel v2, the parent span id is accessed as `spanId` on the `parentSpanContext`\n */\nfunction getParentSpanId(span) {\n if ('parentSpanId' in span) {\n return span.parentSpanId ;\n } else if ('parentSpanContext' in span) {\n return (span.parentSpanContext )?.spanId;\n }\n\n return undefined;\n}\n\n/**\n * Check if a given span has attributes.\n * This is necessary because the base `Span` type does not have attributes,\n * so in places where we are passed a generic span, we need to check if we want to access them.\n */\nfunction spanHasAttributes(\n span,\n) {\n const castSpan = span ;\n return !!castSpan.attributes && typeof castSpan.attributes === 'object';\n}\n\n/**\n * Check if a given span has a kind.\n * This is necessary because the base `Span` type does not have a kind,\n * so in places where we are passed a generic span, we need to check if we want to access it.\n */\nfunction spanHasKind(span) {\n const castSpan = span ;\n return typeof castSpan.kind === 'number';\n}\n\n/**\n * Check if a given span has a status.\n * This is necessary because the base `Span` type does not have a status,\n * so in places where we are passed a generic span, we need to check if we want to access it.\n */\nfunction spanHasStatus(\n span,\n) {\n const castSpan = span ;\n return !!castSpan.status;\n}\n\n/**\n * Check if a given span has a name.\n * This is necessary because the base `Span` type does not have a name,\n * so in places where we are passed a generic span, we need to check if we want to access it.\n */\nfunction spanHasName(span) {\n const castSpan = span ;\n return !!castSpan.name;\n}\n\n/**\n * Check if a given span has a kind.\n * This is necessary because the base `Span` type does not have a kind,\n * so in places where we are passed a generic span, we need to check if we want to access it.\n */\nfunction spanHasParentId(\n span,\n) {\n const castSpan = span ;\n return !!getParentSpanId(castSpan);\n}\n\n/**\n * Check if a given span has events.\n * This is necessary because the base `Span` type does not have events,\n * so in places where we are passed a generic span, we need to check if we want to access it.\n */\nfunction spanHasEvents(\n span,\n) {\n const castSpan = span ;\n return Array.isArray(castSpan.events);\n}\n\n/**\n * Get sanitizied request data from an OTEL span.\n */\nfunction getRequestSpanData(span) {\n // The base `Span` type has no `attributes`, so we need to guard here against that\n if (!spanHasAttributes(span)) {\n return {};\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const maybeUrlAttribute = (span.attributes[ATTR_URL_FULL] || span.attributes[SEMATTRS_HTTP_URL])\n\n;\n\n const data = {\n url: maybeUrlAttribute,\n // eslint-disable-next-line deprecation/deprecation\n 'http.method': (span.attributes[ATTR_HTTP_REQUEST_METHOD] || span.attributes[SEMATTRS_HTTP_METHOD])\n\n,\n };\n\n // Default to GET if URL is set but method is not\n if (!data['http.method'] && data.url) {\n data['http.method'] = 'GET';\n }\n\n try {\n if (typeof maybeUrlAttribute === 'string') {\n const url = parseUrl(maybeUrlAttribute);\n\n data.url = getSanitizedUrlString(url);\n\n if (url.search) {\n data['http.query'] = url.search;\n }\n if (url.hash) {\n data['http.fragment'] = url.hash;\n }\n }\n } catch {\n // ignore\n }\n\n return data;\n}\n\n// Typescript complains if we do not use `...args: any[]` for the mixin, with:\n// A mixin class must have a constructor with a single rest parameter of type 'any[]'.ts(2545)\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Wrap an Client class with things we need for OpenTelemetry support.\n * Make sure that the Client class passed in is non-abstract!\n *\n * Usage:\n * const OpenTelemetryClient = getWrappedClientClass(NodeClient);\n * const client = new OpenTelemetryClient(options);\n */\nfunction wrapClientClass\n\n(ClientClass) {\n // @ts-expect-error We just assume that this is non-abstract, if you pass in an abstract class this would make it non-abstract\n class OpenTelemetryClient extends ClientClass {\n\n constructor(...args) {\n super(...args);\n }\n\n /** Get the OTEL tracer. */\n get tracer() {\n if (this._tracer) {\n return this._tracer;\n }\n\n const name = '@sentry/opentelemetry';\n const version = SDK_VERSION;\n const tracer = trace.getTracer(name, version);\n this._tracer = tracer;\n\n return tracer;\n }\n\n /**\n * @inheritDoc\n */\n async flush(timeout) {\n const provider = this.traceProvider;\n await provider?.forceFlush();\n return super.flush(timeout);\n }\n }\n\n return OpenTelemetryClient ;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/**\n * Get the span kind from a span.\n * For whatever reason, this is not public API on the generic \"Span\" type,\n * so we need to check if we actually have a `SDKTraceBaseSpan` where we can fetch this from.\n * Otherwise, we fall back to `SpanKind.INTERNAL`.\n */\nfunction getSpanKind(span) {\n if (spanHasKind(span)) {\n return span.kind;\n }\n\n return SpanKind.INTERNAL;\n}\n\nconst SENTRY_TRACE_HEADER = 'sentry-trace';\nconst SENTRY_BAGGAGE_HEADER = 'baggage';\n\nconst SENTRY_TRACE_STATE_DSC = 'sentry.dsc';\nconst SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING = 'sentry.sampled_not_recording';\nconst SENTRY_TRACE_STATE_URL = 'sentry.url';\nconst SENTRY_TRACE_STATE_SAMPLE_RAND = 'sentry.sample_rand';\nconst SENTRY_TRACE_STATE_SAMPLE_RATE = 'sentry.sample_rate';\n\nconst SENTRY_SCOPES_CONTEXT_KEY = createContextKey('sentry_scopes');\n\nconst SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY = createContextKey('sentry_fork_isolation_scope');\n\nconst SENTRY_FORK_SET_SCOPE_CONTEXT_KEY = createContextKey('sentry_fork_set_scope');\n\nconst SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY = createContextKey('sentry_fork_set_isolation_scope');\n\nconst SCOPE_CONTEXT_FIELD = '_scopeContext';\n\n/**\n * Try to get the current scopes from the given OTEL context.\n * This requires a Context Manager that was wrapped with getWrappedContextManager.\n */\nfunction getScopesFromContext(context) {\n return context.getValue(SENTRY_SCOPES_CONTEXT_KEY) ;\n}\n\n/**\n * Set the current scopes on an OTEL context.\n * This will return a forked context with the Propagation Context set.\n */\nfunction setScopesOnContext(context, scopes) {\n return context.setValue(SENTRY_SCOPES_CONTEXT_KEY, scopes);\n}\n\n/**\n * Set the context on the scope so we can later look it up.\n * We need this to get the context from the scope in the `trace` functions.\n */\nfunction setContextOnScope(scope, context) {\n addNonEnumerableProperty(scope, SCOPE_CONTEXT_FIELD, context);\n}\n\n/**\n * Get the context related to a scope.\n */\nfunction getContextFromScope(scope) {\n return (scope )[SCOPE_CONTEXT_FIELD];\n}\n\n/**\n *\n * @param otelSpan Checks whether a given OTEL Span is an http request to sentry.\n * @returns boolean\n */\nfunction isSentryRequestSpan(span) {\n if (!spanHasAttributes(span)) {\n return false;\n }\n\n const { attributes } = span;\n\n // `ATTR_URL_FULL` is the new attribute, but we still support the old one, `ATTR_HTTP_URL`, for now.\n // eslint-disable-next-line deprecation/deprecation\n const httpUrl = attributes[SEMATTRS_HTTP_URL] || attributes[ATTR_URL_FULL];\n\n if (!httpUrl) {\n return false;\n }\n\n return isSentryRequestUrl(httpUrl.toString(), getClient());\n}\n\n/**\n * OpenTelemetry only knows about SAMPLED or NONE decision,\n * but for us it is important to differentiate between unset and unsampled.\n *\n * Both of these are identified as `traceFlags === TracegFlags.NONE`,\n * but we additionally look at a special trace state to differentiate between them.\n */\nfunction getSamplingDecision(spanContext) {\n const { traceFlags, traceState } = spanContext;\n\n const sampledNotRecording = traceState ? traceState.get(SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING) === '1' : false;\n\n // If trace flag is `SAMPLED`, we interpret this as sampled\n // If it is `NONE`, it could mean either it was sampled to be not recorder, or that it was not sampled at all\n // For us this is an important difference, sow e look at the SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING\n // to identify which it is\n if (traceFlags === TraceFlags.SAMPLED) {\n return true;\n }\n\n if (sampledNotRecording) {\n return false;\n }\n\n // Fall back to DSC as a last resort, that may also contain `sampled`...\n const dscString = traceState ? traceState.get(SENTRY_TRACE_STATE_DSC) : undefined;\n const dsc = dscString ? baggageHeaderToDynamicSamplingContext(dscString) : undefined;\n\n if (dsc?.sampled === 'true') {\n return true;\n }\n if (dsc?.sampled === 'false') {\n return false;\n }\n\n return undefined;\n}\n\n/**\n * Infer the op & description for a set of name, attributes and kind of a span.\n */\nfunction inferSpanData(spanName, attributes, kind) {\n // if http.method exists, this is an http request span\n // eslint-disable-next-line deprecation/deprecation\n const httpMethod = attributes[ATTR_HTTP_REQUEST_METHOD] || attributes[SEMATTRS_HTTP_METHOD];\n if (httpMethod) {\n return descriptionForHttpMethod({ attributes, name: spanName, kind }, httpMethod);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const dbSystem = attributes[ATTR_DB_SYSTEM_NAME] || attributes[SEMATTRS_DB_SYSTEM];\n const opIsCache =\n typeof attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] === 'string' &&\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP].startsWith('cache.');\n\n // If db.type exists then this is a database call span\n // If the Redis DB is used as a cache, the span description should not be changed\n if (dbSystem && !opIsCache) {\n return descriptionForDbSystem({ attributes, name: spanName });\n }\n\n const customSourceOrRoute = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === 'custom' ? 'custom' : 'route';\n\n // If rpc.service exists then this is a rpc call span.\n // eslint-disable-next-line deprecation/deprecation\n const rpcService = attributes[SEMATTRS_RPC_SERVICE];\n if (rpcService) {\n return {\n ...getUserUpdatedNameAndSource(spanName, attributes, 'route'),\n op: 'rpc',\n };\n }\n\n // If messaging.system exists then this is a messaging system span.\n // eslint-disable-next-line deprecation/deprecation\n const messagingSystem = attributes[SEMATTRS_MESSAGING_SYSTEM];\n if (messagingSystem) {\n return {\n ...getUserUpdatedNameAndSource(spanName, attributes, customSourceOrRoute),\n op: 'message',\n };\n }\n\n // If faas.trigger exists then this is a function as a service span.\n // eslint-disable-next-line deprecation/deprecation\n const faasTrigger = attributes[SEMATTRS_FAAS_TRIGGER];\n if (faasTrigger) {\n return {\n ...getUserUpdatedNameAndSource(spanName, attributes, customSourceOrRoute),\n op: faasTrigger.toString(),\n };\n }\n\n return { op: undefined, description: spanName, source: 'custom' };\n}\n\n/**\n * Extract better op/description from an otel span.\n *\n * Does not overwrite the span name if the source is already set to custom to ensure\n * that user-updated span names are preserved. In this case, we only adjust the op but\n * leave span description and source unchanged.\n *\n * Based on https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/7422ce2a06337f68a59b552b8c5a2ac125d6bae5/exporter/sentryexporter/sentry_exporter.go#L306\n */\nfunction parseSpanDescription(span) {\n const attributes = spanHasAttributes(span) ? span.attributes : {};\n const name = spanHasName(span) ? span.name : '';\n const kind = getSpanKind(span);\n\n return inferSpanData(name, attributes, kind);\n}\n\nfunction descriptionForDbSystem({ attributes, name }) {\n // if we already have a custom name, we don't overwrite it but only set the op\n const userDefinedName = attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n if (typeof userDefinedName === 'string') {\n return {\n op: 'db',\n description: userDefinedName,\n source: (attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] ) || 'custom',\n };\n }\n\n // if we already have the source set to custom, we don't overwrite the span description but only set the op\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === 'custom') {\n return { op: 'db', description: name, source: 'custom' };\n }\n\n // Use DB statement (Ex \"SELECT * FROM table\") if possible as description.\n // eslint-disable-next-line deprecation/deprecation\n const statement = attributes[SEMATTRS_DB_STATEMENT];\n\n const description = statement ? statement.toString() : name;\n\n return { op: 'db', description, source: 'task' };\n}\n\n/** Only exported for tests. */\nfunction descriptionForHttpMethod(\n { name, kind, attributes },\n httpMethod,\n) {\n const opParts = ['http'];\n\n switch (kind) {\n case SpanKind.CLIENT:\n opParts.push('client');\n break;\n case SpanKind.SERVER:\n opParts.push('server');\n break;\n }\n\n // Spans for HTTP requests we have determined to be prefetch requests will have a `.prefetch` postfix in the op\n if (attributes['sentry.http.prefetch']) {\n opParts.push('prefetch');\n }\n\n const { urlPath, url, query, fragment, hasRoute } = getSanitizedUrl(attributes, kind);\n\n if (!urlPath) {\n return { ...getUserUpdatedNameAndSource(name, attributes), op: opParts.join('.') };\n }\n\n const graphqlOperationsAttribute = attributes[SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION];\n\n // Ex. GET /api/users\n const baseDescription = `${httpMethod} ${urlPath}`;\n\n // When the http span has a graphql operation, append it to the description\n // We add these in the graphqlIntegration\n const inferredDescription = graphqlOperationsAttribute\n ? `${baseDescription} (${getGraphqlOperationNamesFromAttribute(graphqlOperationsAttribute)})`\n : baseDescription;\n\n // If `httpPath` is a root path, then we can categorize the transaction source as route.\n const inferredSource = hasRoute || urlPath === '/' ? 'route' : 'url';\n\n const data = {};\n\n if (url) {\n data.url = url;\n }\n if (query) {\n data['http.query'] = query;\n }\n if (fragment) {\n data['http.fragment'] = fragment;\n }\n\n // If the span kind is neither client nor server, we use the original name\n // this infers that somebody manually started this span, in which case we don't want to overwrite the name\n const isClientOrServerKind = kind === SpanKind.CLIENT || kind === SpanKind.SERVER;\n\n // If the span is an auto-span (=it comes from one of our instrumentations),\n // we always want to infer the name\n // this is necessary because some of the auto-instrumentation we use uses kind=INTERNAL\n const origin = attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] || 'manual';\n const isManualSpan = !`${origin}`.startsWith('auto');\n\n // If users (or in very rare occasions we) set the source to custom, we don't overwrite the name\n const alreadyHasCustomSource = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === 'custom';\n const customSpanName = attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n\n const useInferredDescription =\n !alreadyHasCustomSource && customSpanName == null && (isClientOrServerKind || !isManualSpan);\n\n const { description, source } = useInferredDescription\n ? { description: inferredDescription, source: inferredSource }\n : getUserUpdatedNameAndSource(name, attributes);\n\n return {\n op: opParts.join('.'),\n description,\n source,\n data,\n };\n}\n\nfunction getGraphqlOperationNamesFromAttribute(attr) {\n if (Array.isArray(attr)) {\n // oxlint-disable-next-line typescript/require-array-sort-compare\n const sorted = attr.slice().sort();\n\n // Up to 5 items, we just add all of them\n if (sorted.length <= 5) {\n return sorted.join(', ');\n } else {\n // Else, we add the first 5 and the diff of other operations\n return `${sorted.slice(0, 5).join(', ')}, +${sorted.length - 5}`;\n }\n }\n\n return `${attr}`;\n}\n\n/** Exported for tests only */\nfunction getSanitizedUrl(\n attributes,\n kind,\n)\n\n {\n // This is the relative path of the URL, e.g. /sub\n // eslint-disable-next-line deprecation/deprecation\n const httpTarget = attributes[SEMATTRS_HTTP_TARGET];\n // This is the full URL, including host & query params etc., e.g. https://example.com/sub?foo=bar\n // eslint-disable-next-line deprecation/deprecation\n const httpUrl = attributes[SEMATTRS_HTTP_URL] || attributes[ATTR_URL_FULL];\n // This is the normalized route name - may not always be available!\n const httpRoute = attributes[ATTR_HTTP_ROUTE];\n\n const parsedUrl = typeof httpUrl === 'string' ? parseUrl(httpUrl) : undefined;\n const url = parsedUrl ? getSanitizedUrlString(parsedUrl) : undefined;\n const query = parsedUrl?.search || undefined;\n const fragment = parsedUrl?.hash || undefined;\n\n if (typeof httpRoute === 'string') {\n return { urlPath: httpRoute, url, query, fragment, hasRoute: true };\n }\n\n if (kind === SpanKind.SERVER && typeof httpTarget === 'string') {\n return { urlPath: stripUrlQueryAndFragment(httpTarget), url, query, fragment, hasRoute: false };\n }\n\n if (parsedUrl) {\n return { urlPath: url, url, query, fragment, hasRoute: false };\n }\n\n // fall back to target even for client spans, if no URL is present\n if (typeof httpTarget === 'string') {\n return { urlPath: stripUrlQueryAndFragment(httpTarget), url, query, fragment, hasRoute: false };\n }\n\n return { urlPath: undefined, url, query, fragment, hasRoute: false };\n}\n\n/**\n * Because Otel instrumentation sometimes mutates span names via `span.updateName`, the only way\n * to ensure that a user-set span name is preserved is to store it as a tmp attribute on the span.\n * We delete this attribute once we're done with it when preparing the event envelope.\n *\n * This temp attribute always takes precedence over the original name.\n *\n * We also need to take care of setting the correct source. Users can always update the source\n * after updating the name, so we need to respect that.\n *\n * @internal exported only for testing\n */\nfunction getUserUpdatedNameAndSource(\n originalName,\n attributes,\n fallbackSource = 'custom',\n)\n\n {\n const source = (attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] ) || fallbackSource;\n const description = attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n\n if (description && typeof description === 'string') {\n return {\n description,\n source,\n };\n }\n\n return { description: originalName, source };\n}\n\n/**\n * Setup a DSC handler on the passed client,\n * ensuring that the transaction name is inferred from the span correctly.\n */\nfunction enhanceDscWithOpenTelemetryRootSpanName(client) {\n client.on('createDsc', (dsc, rootSpan) => {\n if (!rootSpan) {\n return;\n }\n\n // We want to overwrite the transaction on the DSC that is created by default in core\n // The reason for this is that we want to infer the span name, not use the initial one\n // Otherwise, we'll get names like \"GET\" instead of e.g. \"GET /foo\"\n // `parseSpanDescription` takes the attributes of the span into account for the name\n // This mutates the passed-in DSC\n\n const jsonSpan = spanToJSON(rootSpan);\n const attributes = jsonSpan.data;\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n const { description } = spanHasName(rootSpan) ? parseSpanDescription(rootSpan) : { description: undefined };\n if (source !== 'url' && description) {\n dsc.transaction = description;\n }\n\n // Also ensure sampling decision is correctly inferred\n // In core, we use `spanIsSampled`, which just looks at the trace flags\n // but in OTEL, we use a slightly more complex logic to be able to differntiate between unsampled and deferred sampling\n if (hasSpansEnabled()) {\n const sampled = getSamplingDecision(rootSpan.spanContext());\n dsc.sampled = sampled == undefined ? undefined : String(sampled);\n }\n });\n}\n\n/**\n * Returns the currently active span.\n */\nfunction getActiveSpan() {\n return trace.getActiveSpan();\n}\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\n/**\n * Generate a TraceState for the given data.\n */\nfunction makeTraceState({\n dsc,\n sampled,\n}\n\n) {\n // We store the DSC as OTEL trace state on the span context\n const dscString = dsc ? dynamicSamplingContextToSentryBaggageHeader(dsc) : undefined;\n\n const traceStateBase = new TraceState();\n\n const traceStateWithDsc = dscString ? traceStateBase.set(SENTRY_TRACE_STATE_DSC, dscString) : traceStateBase;\n\n // We also specifically want to store if this is sampled to be not recording,\n // or unsampled (=could be either sampled or not)\n return sampled === false ? traceStateWithDsc.set(SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING, '1') : traceStateWithDsc;\n}\n\nconst setupElements = new Set();\n\n/** Get all the OpenTelemetry elements that have been set up. */\nfunction openTelemetrySetupCheck() {\n return Array.from(setupElements);\n}\n\n/** Mark an OpenTelemetry element as setup. */\nfunction setIsSetup(element) {\n setupElements.add(element);\n}\n\n/**\n * Injects and extracts `sentry-trace` and `baggage` headers from carriers.\n */\nclass SentryPropagator extends W3CBaggagePropagator {\n /** A map of URLs that have already been checked for if they match tracePropagationTargets. */\n\n constructor() {\n super();\n setIsSetup('SentryPropagator');\n\n // We're caching results so we don't have to recompute regexp every time we create a request.\n this._urlMatchesTargetsMap = new LRUMap(100);\n }\n\n /**\n * @inheritDoc\n */\n inject(context, carrier, setter) {\n if (isTracingSuppressed(context)) {\n DEBUG_BUILD && debug.log('[Tracing] Not injecting trace data for url because tracing is suppressed.');\n return;\n }\n\n const activeSpan = trace.getSpan(context);\n const url = activeSpan && getCurrentURL(activeSpan);\n\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() || {};\n if (!shouldPropagateTraceForUrl(url, tracePropagationTargets, this._urlMatchesTargetsMap)) {\n DEBUG_BUILD &&\n debug.log('[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:', url);\n return;\n }\n\n const existingBaggageHeader = getExistingBaggage(carrier);\n let baggage = propagation.getBaggage(context) || propagation.createBaggage({});\n\n const { dynamicSamplingContext, traceId, spanId, sampled } = getInjectionData(context);\n\n if (existingBaggageHeader) {\n const baggageEntries = parseBaggageHeader(existingBaggageHeader);\n\n if (baggageEntries) {\n Object.entries(baggageEntries).forEach(([key, value]) => {\n baggage = baggage.setEntry(key, { value });\n });\n }\n }\n\n if (dynamicSamplingContext) {\n baggage = Object.entries(dynamicSamplingContext).reduce((b, [dscKey, dscValue]) => {\n if (dscValue) {\n return b.setEntry(`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`, { value: dscValue });\n }\n return b;\n }, baggage);\n }\n\n // We also want to avoid setting the default OTEL trace ID, if we get that for whatever reason\n if (traceId && traceId !== INVALID_TRACEID) {\n setter.set(carrier, SENTRY_TRACE_HEADER, generateSentryTraceHeader(traceId, spanId, sampled));\n\n if (propagateTraceparent) {\n setter.set(carrier, 'traceparent', generateTraceparentHeader(traceId, spanId, sampled));\n }\n }\n\n super.inject(propagation.setBaggage(context, baggage), carrier, setter);\n }\n\n /**\n * @inheritDoc\n */\n extract(context, carrier, getter) {\n const maybeSentryTraceHeader = getter.get(carrier, SENTRY_TRACE_HEADER);\n const baggage = getter.get(carrier, SENTRY_BAGGAGE_HEADER);\n\n const sentryTrace = maybeSentryTraceHeader\n ? Array.isArray(maybeSentryTraceHeader)\n ? maybeSentryTraceHeader[0]\n : maybeSentryTraceHeader\n : undefined;\n\n // Add remote parent span context\n // If there is no incoming trace, this will return the context as-is\n return ensureScopesOnContext(getContextWithRemoteActiveSpan(context, { sentryTrace, baggage }));\n }\n\n /**\n * @inheritDoc\n */\n fields() {\n return [SENTRY_TRACE_HEADER, SENTRY_BAGGAGE_HEADER, 'traceparent'];\n }\n}\n\n/**\n * Get propagation injection data for the given context.\n * The additional options can be passed to override the scope and client that is otherwise derived from the context.\n */\nfunction getInjectionData(\n context,\n options = {},\n)\n\n {\n const span = trace.getSpan(context);\n\n // If we have a remote span, the spanId should be considered as the parentSpanId, not spanId itself\n // Instead, we use a virtual (generated) spanId for propagation\n if (span?.spanContext().isRemote) {\n const spanContext = span.spanContext();\n const dynamicSamplingContext = getDynamicSamplingContextFromSpan(span);\n\n return {\n dynamicSamplingContext,\n traceId: spanContext.traceId,\n spanId: undefined,\n sampled: getSamplingDecision(spanContext), // TODO: Do we need to change something here?\n };\n }\n\n // If we have a local span, we just use this\n if (span) {\n const spanContext = span.spanContext();\n const dynamicSamplingContext = getDynamicSamplingContextFromSpan(span);\n\n return {\n dynamicSamplingContext,\n traceId: spanContext.traceId,\n spanId: spanContext.spanId,\n sampled: getSamplingDecision(spanContext), // TODO: Do we need to change something here?\n };\n }\n\n // Else we try to use the propagation context from the scope\n // The only scenario where this should happen is when we neither have a span, nor an incoming trace\n const scope = options.scope || getScopesFromContext(context)?.scope || getCurrentScope();\n const client = options.client || getClient();\n\n const propagationContext = scope.getPropagationContext();\n const dynamicSamplingContext = client ? getDynamicSamplingContextFromScope(client, scope) : undefined;\n return {\n dynamicSamplingContext,\n traceId: propagationContext.traceId,\n spanId: propagationContext.propagationSpanId,\n sampled: propagationContext.sampled,\n };\n}\n\nfunction getContextWithRemoteActiveSpan(\n ctx,\n { sentryTrace, baggage },\n) {\n const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n\n const { traceId, parentSpanId, sampled, dsc } = propagationContext;\n\n const client = getClient();\n const incomingDsc = baggageHeaderToDynamicSamplingContext(baggage);\n\n // We only want to set the virtual span if we are continuing a concrete trace\n // Otherwise, we ignore the incoming trace here, e.g. if we have no trace headers\n if (!parentSpanId || (client && !shouldContinueTrace(client, incomingDsc?.org_id))) {\n return ctx;\n }\n\n const spanContext = generateRemoteSpanContext({\n traceId,\n spanId: parentSpanId,\n sampled,\n dsc,\n });\n\n return trace.setSpanContext(ctx, spanContext);\n}\n\n/**\n * Takes trace strings and propagates them as a remote active span.\n * This should be used in addition to `continueTrace` in OTEL-powered environments.\n */\nfunction continueTraceAsRemoteSpan(\n ctx,\n options,\n callback,\n) {\n const ctxWithSpanContext = ensureScopesOnContext(getContextWithRemoteActiveSpan(ctx, options));\n\n return context.with(ctxWithSpanContext, callback);\n}\n\nfunction ensureScopesOnContext(ctx) {\n // If there are no scopes yet on the context, ensure we have them\n const scopes = getScopesFromContext(ctx);\n const newScopes = {\n // If we have no scope here, this is most likely either the root context or a context manually derived from it\n // In this case, we want to fork the current scope, to ensure we do not pollute the root scope\n scope: scopes ? scopes.scope : getCurrentScope().clone(),\n isolationScope: scopes ? scopes.isolationScope : getIsolationScope(),\n };\n\n return setScopesOnContext(ctx, newScopes);\n}\n\n/** Try to get the existing baggage header so we can merge this in. */\nfunction getExistingBaggage(carrier) {\n try {\n const baggage = (carrier )[SENTRY_BAGGAGE_HEADER];\n return Array.isArray(baggage) ? baggage.join(',') : baggage;\n } catch {\n return undefined;\n }\n}\n\n/**\n * It is pretty tricky to get access to the outgoing request URL of a request in the propagator.\n * As we only have access to the context of the span to be sent and the carrier (=headers),\n * but the span may be unsampled and thus have no attributes.\n *\n * So we use the following logic:\n * 1. If we have an active span, we check if it has a URL attribute.\n * 2. Else, if the active span has no URL attribute (e.g. it is unsampled), we check a special trace state (which we set in our sampler).\n */\nfunction getCurrentURL(span) {\n const spanData = spanToJSON(span).data;\n // `ATTR_URL_FULL` is the new attribute, but we still support the old one, `SEMATTRS_HTTP_URL`, for now.\n // eslint-disable-next-line deprecation/deprecation\n const urlAttribute = spanData[SEMATTRS_HTTP_URL] || spanData[ATTR_URL_FULL];\n if (typeof urlAttribute === 'string') {\n return urlAttribute;\n }\n\n // Also look at the traceState, which we may set in the sampler even for unsampled spans\n const urlTraceState = span.spanContext().traceState?.get(SENTRY_TRACE_STATE_URL);\n if (urlTraceState) {\n return urlTraceState;\n }\n\n return undefined;\n}\n\nfunction generateRemoteSpanContext({\n spanId,\n traceId,\n sampled,\n dsc,\n}\n\n) {\n // We store the DSC as OTEL trace state on the span context\n const traceState = makeTraceState({\n dsc,\n sampled,\n });\n\n const spanContext = {\n traceId,\n spanId,\n isRemote: true,\n traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE,\n traceState,\n };\n\n return spanContext;\n}\n\n/**\n * Internal helper for starting spans and manual spans. See {@link startSpan} and {@link startSpanManual} for the public APIs.\n * @param options - The span context options\n * @param callback - The callback to execute with the span\n * @param autoEnd - Whether to automatically end the span after the callback completes\n */\nfunction _startSpan(options, callback, autoEnd) {\n const tracer = getTracer();\n\n const { name, parentSpan: customParentSpan } = options;\n\n // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n const wrapper = getActiveSpanWrapper(customParentSpan);\n\n return wrapper(() => {\n const activeCtx = getContext(options.scope, options.forceTransaction);\n const shouldSkipSpan = options.onlyIfParent && !trace.getSpan(activeCtx);\n const ctx = shouldSkipSpan ? suppressTracing$1(activeCtx) : activeCtx;\n\n const spanOptions = getSpanOptions(options);\n\n // If spans are not enabled, ensure we suppress tracing for the span creation\n // but preserve the original context for the callback execution\n // This ensures that we don't create spans when tracing is disabled which\n // would otherwise be a problem for users that don't enable tracing but use\n // custom OpenTelemetry setups.\n if (!hasSpansEnabled()) {\n const suppressedCtx = isTracingSuppressed(ctx) ? ctx : suppressTracing$1(ctx);\n\n return context.with(suppressedCtx, () => {\n return tracer.startActiveSpan(name, spanOptions, suppressedCtx, span => {\n // Restore the original unsuppressed context for the callback execution\n // so that custom OpenTelemetry spans maintain the correct context.\n // We use activeCtx (not ctx) because ctx may be suppressed when onlyIfParent is true\n // and no parent span exists. Using activeCtx ensures custom OTel spans are never\n // inadvertently suppressed.\n return context.with(activeCtx, () => {\n return handleCallbackErrors(\n () => callback(span),\n () => {\n // Only set the span status to ERROR when there wasn't any status set before, in order to avoid stomping useful span statuses\n if (spanToJSON(span).status === undefined) {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n },\n autoEnd ? () => span.end() : undefined,\n );\n });\n });\n });\n }\n\n return tracer.startActiveSpan(name, spanOptions, ctx, span => {\n return handleCallbackErrors(\n () => callback(span),\n () => {\n // Only set the span status to ERROR when there wasn't any status set before, in order to avoid stomping useful span statuses\n if (spanToJSON(span).status === undefined) {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n },\n autoEnd ? () => span.end() : undefined,\n );\n });\n });\n}\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * If you want to create a span that is not set as active, use {@link startInactiveSpan}.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startSpan(options, callback) {\n return _startSpan(options, callback, true);\n}\n\n/**\n * Similar to `Sentry.startSpan`. Wraps a function with a span, but does not finish the span\n * after the function is done automatically. You'll have to call `span.end()` or the `finish` function passed to the callback manually.\n *\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startSpanManual(\n options,\n callback,\n) {\n return _startSpan(options, span => callback(span, () => span.end()), false);\n}\n\n/**\n * Creates a span. This span is not set as active, so will not get automatic instrumentation spans\n * as children or be able to be accessed via `Sentry.getActiveSpan()`.\n *\n * If you want to create a span that is set as active, use {@link startSpan}.\n *\n * This function will always return a span,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startInactiveSpan(options) {\n const tracer = getTracer();\n\n const { name, parentSpan: customParentSpan } = options;\n\n // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n const wrapper = getActiveSpanWrapper(customParentSpan);\n\n return wrapper(() => {\n const activeCtx = getContext(options.scope, options.forceTransaction);\n const shouldSkipSpan = options.onlyIfParent && !trace.getSpan(activeCtx);\n let ctx = shouldSkipSpan ? suppressTracing$1(activeCtx) : activeCtx;\n\n const spanOptions = getSpanOptions(options);\n\n if (!hasSpansEnabled()) {\n ctx = isTracingSuppressed(ctx) ? ctx : suppressTracing$1(ctx);\n }\n\n return tracer.startSpan(name, spanOptions, ctx);\n });\n}\n\n/**\n * Forks the current scope and sets the provided span as active span in the context of the provided callback. Can be\n * passed `null` to start an entirely new span tree.\n *\n * @param span Spans started in the context of the provided callback will be children of this span. If `null` is passed,\n * spans started within the callback will be root spans.\n * @param callback Execution context in which the provided span will be active. Is passed the newly forked scope.\n * @returns the value returned from the provided callback function.\n */\nfunction withActiveSpan(span, callback) {\n const newContextWithActiveSpan = span ? trace.setSpan(context.active(), span) : trace.deleteSpan(context.active());\n return context.with(newContextWithActiveSpan, () => callback(getCurrentScope()));\n}\n\nfunction getTracer() {\n const client = getClient();\n return client?.tracer || trace.getTracer('@sentry/opentelemetry', SDK_VERSION);\n}\n\nfunction getSpanOptions(options) {\n const { startTime, attributes, kind, op, links } = options;\n\n // OTEL expects timestamps in ms, not seconds\n const fixedStartTime = typeof startTime === 'number' ? ensureTimestampInMilliseconds(startTime) : startTime;\n\n return {\n attributes: op\n ? {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n ...attributes,\n }\n : attributes,\n kind,\n links,\n startTime: fixedStartTime,\n };\n}\n\nfunction ensureTimestampInMilliseconds(timestamp) {\n const isMs = timestamp < 9999999999;\n return isMs ? timestamp * 1000 : timestamp;\n}\n\nfunction getContext(scope, forceTransaction) {\n const ctx = getContextForScope(scope);\n const parentSpan = trace.getSpan(ctx);\n\n // In the case that we have no parent span, we start a new trace\n // Note that if we continue a trace, we'll always have a remote parent span here anyhow\n if (!parentSpan) {\n return ctx;\n }\n\n // If we don't want to force a transaction, and we have a parent span, all good, we just return as-is!\n if (!forceTransaction) {\n return ctx;\n }\n\n // Else, if we do have a parent span but want to force a transaction, we have to simulate a \"root\" context\n\n // Else, we need to do two things:\n // 1. Unset the parent span from the context, so we'll create a new root span\n // 2. Ensure the propagation context is correct, so we'll continue from the parent span\n const ctxWithoutSpan = trace.deleteSpan(ctx);\n\n const { spanId, traceId } = parentSpan.spanContext();\n const sampled = getSamplingDecision(parentSpan.spanContext());\n\n // In this case, when we are forcing a transaction, we want to treat this like continuing an incoming trace\n // so we set the traceState according to the root span\n const rootSpan = getRootSpan(parentSpan);\n const dsc = getDynamicSamplingContextFromSpan(rootSpan);\n\n const traceState = makeTraceState({\n dsc,\n sampled,\n });\n\n const spanOptions = {\n traceId,\n spanId,\n isRemote: true,\n traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE,\n traceState,\n };\n\n const ctxWithSpanContext = trace.setSpanContext(ctxWithoutSpan, spanOptions);\n\n return ctxWithSpanContext;\n}\n\nfunction getContextForScope(scope) {\n if (scope) {\n const ctx = getContextFromScope(scope);\n if (ctx) {\n return ctx;\n }\n }\n\n return context.active();\n}\n\n/**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers, or in the browser from ``\n * and `` HTML tags.\n *\n * Spans started with `startSpan`, `startSpanManual` and `startInactiveSpan`, within the callback will automatically\n * be attached to the incoming trace.\n *\n * This is a custom version of `continueTrace` that is used in OTEL-powered environments.\n * It propagates the trace as a remote span, in addition to setting it on the propagation context.\n */\nfunction continueTrace(options, callback) {\n return continueTraceAsRemoteSpan(context.active(), options, callback);\n}\n\n/**\n * Get the trace context for a given scope.\n * We have a custom implementation here because we need an OTEL-specific way to get the span from a scope.\n */\nfunction getTraceContextForScope(\n client,\n scope,\n) {\n const ctx = getContextFromScope(scope);\n const span = ctx && trace.getSpan(ctx);\n\n const traceContext = span ? spanToTraceContext(span) : getTraceContextFromScope(scope);\n\n const dynamicSamplingContext = span\n ? getDynamicSamplingContextFromSpan(span)\n : getDynamicSamplingContextFromScope(client, scope);\n return [dynamicSamplingContext, traceContext];\n}\n\nfunction getActiveSpanWrapper(parentSpan) {\n return parentSpan !== undefined\n ? (callback) => {\n return withActiveSpan(parentSpan, callback);\n }\n : (callback) => callback();\n}\n\n/** Suppress tracing in the given callback, ensuring no spans are generated inside of it. */\nfunction suppressTracing(callback) {\n const ctx = suppressTracing$1(context.active());\n return context.with(ctx, callback);\n}\n\n/** Ensure the `trace` context is set on all events. */\nfunction setupEventContextTrace(client) {\n client.on('preprocessEvent', event => {\n const span = getActiveSpan();\n // For transaction events, this is handled separately\n // Because the active span may not be the span that is actually the transaction event\n if (!span || event.type === 'transaction') {\n return;\n }\n\n // If event has already set `trace` context, use that one.\n event.contexts = {\n trace: spanToTraceContext(span),\n ...event.contexts,\n };\n\n const rootSpan = getRootSpan(span);\n\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(rootSpan),\n ...event.sdkProcessingMetadata,\n };\n\n return event;\n });\n}\n\n/**\n * Otel-specific implementation of `getTraceData`.\n * @see `@sentry/core` version of `getTraceData` for more information\n */\nfunction getTraceData({\n span,\n scope,\n client,\n propagateTraceparent,\n} = {}) {\n let ctx = (scope && getContextFromScope(scope)) ?? api.context.active();\n\n if (span) {\n const { scope } = getCapturedScopesOnSpan(span);\n // fall back to current context if for whatever reason we can't find the one of the span\n ctx = (scope && getContextFromScope(scope)) || api.trace.setSpan(api.context.active(), span);\n }\n\n const { traceId, spanId, sampled, dynamicSamplingContext } = getInjectionData(ctx, { scope, client });\n\n const traceData = {\n 'sentry-trace': generateSentryTraceHeader(traceId, spanId, sampled),\n baggage: dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext),\n };\n\n if (propagateTraceparent) {\n traceData.traceparent = generateTraceparentHeader(traceId, spanId, sampled);\n }\n\n return traceData;\n}\n\n/**\n * Sets the async context strategy to use follow the OTEL context under the hood.\n * We handle forking a hub inside of our custom OTEL Context Manager (./otelContextManager.ts)\n */\nfunction setOpenTelemetryContextAsyncContextStrategy() {\n function getScopes() {\n const ctx = api.context.active();\n const scopes = getScopesFromContext(ctx);\n\n if (scopes) {\n return scopes;\n }\n\n // fallback behavior:\n // if, for whatever reason, we can't find scopes on the context here, we have to fix this somehow\n return {\n scope: getDefaultCurrentScope(),\n isolationScope: getDefaultIsolationScope(),\n };\n }\n\n function withScope(callback) {\n const ctx = api.context.active();\n\n // We depend on the otelContextManager to handle the context/hub\n // We set the `SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY` context value, which is picked up by\n // the OTEL context manager, which uses the presence of this key to determine if it should\n // fork the isolation scope, or not\n // as by default, we don't want to fork this, unless triggered explicitly by `withScope`\n return api.context.with(ctx, () => {\n return callback(getCurrentScope());\n });\n }\n\n function withSetScope(scope, callback) {\n const ctx = getContextFromScope(scope) || api.context.active();\n\n // We depend on the otelContextManager to handle the context/hub\n // We set the `SENTRY_FORK_SET_SCOPE_CONTEXT_KEY` context value, which is picked up by\n // the OTEL context manager, which picks up this scope as the current scope\n return api.context.with(ctx.setValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY, scope), () => {\n return callback(scope);\n });\n }\n\n function withIsolationScope(callback) {\n const ctx = api.context.active();\n\n // We depend on the otelContextManager to handle the context/hub\n // We set the `SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY` context value, which is picked up by\n // the OTEL context manager, which uses the presence of this key to determine if it should\n // fork the isolation scope, or not\n return api.context.with(ctx.setValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY, true), () => {\n return callback(getIsolationScope());\n });\n }\n\n function withSetIsolationScope(isolationScope, callback) {\n const ctx = api.context.active();\n\n // We depend on the otelContextManager to handle the context/hub\n // We set the `SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY` context value, which is picked up by\n // the OTEL context manager, which uses the presence of this key to determine if it should\n // fork the isolation scope, or not\n return api.context.with(ctx.setValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY, isolationScope), () => {\n return callback(getIsolationScope());\n });\n }\n\n function getCurrentScope() {\n return getScopes().scope;\n }\n\n function getIsolationScope() {\n return getScopes().isolationScope;\n }\n\n setAsyncContextStrategy({\n withScope,\n withSetScope,\n withSetIsolationScope,\n withIsolationScope,\n getCurrentScope,\n getIsolationScope,\n startSpan,\n startSpanManual,\n startInactiveSpan,\n getActiveSpan,\n suppressTracing,\n getTraceData,\n continueTrace,\n // The types here don't fully align, because our own `Span` type is narrower\n // than the OTEL one - but this is OK for here, as we now we'll only have OTEL spans passed around\n withActiveSpan: withActiveSpan ,\n });\n}\n\n/**\n * Wrap an OpenTelemetry ContextManager in a way that ensures the context is kept in sync with the Sentry Scope.\n *\n * Usage:\n * import { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks';\n * const SentryContextManager = wrapContextManagerClass(AsyncLocalStorageContextManager);\n * const contextManager = new SentryContextManager();\n */\nfunction wrapContextManagerClass(\n ContextManagerClass,\n) {\n /**\n * This is a custom ContextManager for OpenTelemetry, which extends the default AsyncLocalStorageContextManager.\n * It ensures that we create new scopes per context, so that the OTEL Context & the Sentry Scope are always in sync.\n *\n * Note that we currently only support AsyncHooks with this,\n * but since this should work for Node 14+ anyhow that should be good enough.\n */\n\n // @ts-expect-error TS does not like this, but we know this is fine\n class SentryContextManager extends ContextManagerClass {\n constructor(...args) {\n super(...args);\n setIsSetup('SentryContextManager');\n }\n /**\n * Overwrite with() of the original AsyncLocalStorageContextManager\n * to ensure we also create new scopes per context.\n */\n with(\n context,\n fn,\n thisArg,\n ...args\n ) {\n const currentScopes = getScopesFromContext(context);\n const currentScope = currentScopes?.scope || getCurrentScope();\n const currentIsolationScope = currentScopes?.isolationScope || getIsolationScope();\n\n const shouldForkIsolationScope = context.getValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY) === true;\n const scope = context.getValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY) ;\n const isolationScope = context.getValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY) ;\n\n const newCurrentScope = scope || currentScope.clone();\n const newIsolationScope =\n isolationScope || (shouldForkIsolationScope ? currentIsolationScope.clone() : currentIsolationScope);\n const scopes = { scope: newCurrentScope, isolationScope: newIsolationScope };\n\n const ctx1 = setScopesOnContext(context, scopes);\n\n // Remove the unneeded values again\n const ctx2 = ctx1\n .deleteValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY)\n .deleteValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY)\n .deleteValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY);\n\n setContextOnScope(newCurrentScope, ctx2);\n\n return super.with(ctx2, fn, thisArg, ...args);\n }\n\n /**\n * Gets underlying AsyncLocalStorage and symbol to allow lookup of scope.\n */\n getAsyncLocalStorageLookup() {\n return {\n // @ts-expect-error This is on the base class, but not part of the interface\n asyncLocalStorage: this._asyncLocalStorage,\n contextSymbol: SENTRY_SCOPES_CONTEXT_KEY,\n };\n }\n }\n\n return SentryContextManager ;\n}\n\n/**\n * This function runs through a list of OTEL Spans, and wraps them in an `SpanNode`\n * where each node holds a reference to their parent node.\n */\nfunction groupSpansWithParents(spans) {\n const nodeMap = new Map();\n\n for (const span of spans) {\n createOrUpdateSpanNodeAndRefs(nodeMap, span);\n }\n\n return Array.from(nodeMap, function ([_id, spanNode]) {\n return spanNode;\n });\n}\n\n/**\n * This returns the _local_ parent ID - `parentId` on the span may point to a remote span.\n */\nfunction getLocalParentId(span) {\n const parentIsRemote = span.attributes[SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE] === true;\n // If the parentId is the trace parent ID, we pretend it's undefined\n // As this means the parent exists somewhere else\n return !parentIsRemote ? getParentSpanId(span) : undefined;\n}\n\nfunction createOrUpdateSpanNodeAndRefs(nodeMap, span) {\n const id = span.spanContext().spanId;\n const parentId = getLocalParentId(span);\n\n if (!parentId) {\n createOrUpdateNode(nodeMap, { id, span, children: [] });\n return;\n }\n\n // Else make sure to create parent node as well\n // Note that the parent may not know it's parent _yet_, this may be updated in a later pass\n const parentNode = createOrGetParentNode(nodeMap, parentId);\n const node = createOrUpdateNode(nodeMap, { id, span, parentNode, children: [] });\n parentNode.children.push(node);\n}\n\nfunction createOrGetParentNode(nodeMap, id) {\n const existing = nodeMap.get(id);\n\n if (existing) {\n return existing;\n }\n\n return createOrUpdateNode(nodeMap, { id, children: [] });\n}\n\nfunction createOrUpdateNode(nodeMap, spanNode) {\n const existing = nodeMap.get(spanNode.id);\n\n // If span is already set, nothing to do here\n if (existing?.span) {\n return existing;\n }\n\n // If it exists but span is not set yet, we update it\n if (existing && !existing.span) {\n existing.span = spanNode.span;\n existing.parentNode = spanNode.parentNode;\n return existing;\n }\n\n // Else, we create a new one...\n nodeMap.set(spanNode.id, spanNode);\n return spanNode;\n}\n\n// canonicalCodesGrpcMap maps some GRPC codes to Sentry's span statuses. See description in grpc documentation.\nconst canonicalGrpcErrorCodesMap = {\n '1': 'cancelled',\n '2': 'unknown_error',\n '3': 'invalid_argument',\n '4': 'deadline_exceeded',\n '5': 'not_found',\n '6': 'already_exists',\n '7': 'permission_denied',\n '8': 'resource_exhausted',\n '9': 'failed_precondition',\n '10': 'aborted',\n '11': 'out_of_range',\n '12': 'unimplemented',\n '13': 'internal_error',\n '14': 'unavailable',\n '15': 'data_loss',\n '16': 'unauthenticated',\n} ;\n\nconst isStatusErrorMessageValid = (message) => {\n return Object.values(canonicalGrpcErrorCodesMap).includes(message );\n};\n\n/**\n * Get a Sentry span status from an otel span.\n */\nfunction mapStatus(span) {\n const attributes = spanHasAttributes(span) ? span.attributes : {};\n const status = spanHasStatus(span) ? span.status : undefined;\n\n if (status) {\n // Since span status OK is not set by default, we give it priority: https://opentelemetry.io/docs/concepts/signals/traces/#span-status\n if (status.code === SpanStatusCode.OK) {\n return { code: SPAN_STATUS_OK };\n // If the span is already marked as erroneous we return that exact status\n } else if (status.code === SpanStatusCode.ERROR) {\n if (typeof status.message === 'undefined') {\n const inferredStatus = inferStatusFromAttributes(attributes);\n if (inferredStatus) {\n return inferredStatus;\n }\n }\n\n if (status.message && isStatusErrorMessageValid(status.message)) {\n return { code: SPAN_STATUS_ERROR, message: status.message };\n } else {\n return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n }\n }\n }\n\n // If the span status is UNSET, we try to infer it from HTTP or GRPC status codes.\n const inferredStatus = inferStatusFromAttributes(attributes);\n\n if (inferredStatus) {\n return inferredStatus;\n }\n\n // We default to setting the spans status to ok.\n if (status?.code === SpanStatusCode.UNSET) {\n return { code: SPAN_STATUS_OK };\n } else {\n return { code: SPAN_STATUS_ERROR, message: 'unknown_error' };\n }\n}\n\nfunction inferStatusFromAttributes(attributes) {\n // If the span status is UNSET, we try to infer it from HTTP or GRPC status codes.\n\n // eslint-disable-next-line deprecation/deprecation\n const httpCodeAttribute = attributes[ATTR_HTTP_RESPONSE_STATUS_CODE] || attributes[SEMATTRS_HTTP_STATUS_CODE];\n // eslint-disable-next-line deprecation/deprecation\n const grpcCodeAttribute = attributes[SEMATTRS_RPC_GRPC_STATUS_CODE];\n\n const numberHttpCode =\n typeof httpCodeAttribute === 'number'\n ? httpCodeAttribute\n : typeof httpCodeAttribute === 'string'\n ? parseInt(httpCodeAttribute)\n : undefined;\n\n if (typeof numberHttpCode === 'number') {\n return getSpanStatusFromHttpCode(numberHttpCode);\n }\n\n if (typeof grpcCodeAttribute === 'string') {\n return { code: SPAN_STATUS_ERROR, message: canonicalGrpcErrorCodesMap[grpcCodeAttribute] || 'unknown_error' };\n }\n\n return undefined;\n}\n\nconst MAX_SPAN_COUNT = 1000;\nconst DEFAULT_TIMEOUT = 300; // 5 min\n\n/**\n * A Sentry-specific exporter that converts OpenTelemetry Spans to Sentry Spans & Transactions.\n */\nclass SentrySpanExporter {\n /*\n * A quick explanation on the buckets: We do bucketing of finished spans for efficiency. This span exporter is\n * accumulating spans until a root span is encountered and then it flushes all the spans that are descendants of that\n * root span. Because it is totally in the realm of possibilities that root spans are never finished, and we don't\n * want to accumulate spans indefinitely in memory, we need to periodically evacuate spans. Naively we could simply\n * store the spans in an array and each time a new span comes in we could iterate through the entire array and\n * evacuate all spans that have an end-timestamp that is older than our limit. This could get quite expensive because\n * we would have to iterate a potentially large number of spans every time we evacuate. We want to avoid these large\n * bursts of computation.\n *\n * Instead we go for a bucketing approach and put spans into buckets, based on what second\n * (modulo the time limit) the span was put into the exporter. With buckets, when we decide to evacuate, we can\n * iterate through the bucket entries instead, which have an upper bound of items, making the evacuation much more\n * efficient. Cleaning up also becomes much more efficient since it simply involves de-referencing a bucket within the\n * bucket array, and letting garbage collection take care of the rest.\n */\n\n // Essentially a a set of span ids that are already sent. The values are expiration\n // times in this cache so we don't hold onto them indefinitely.\n\n /* Internally, we use a debounced flush to give some wiggle room to the span processor to accumulate more spans. */\n\n constructor(options\n\n) {\n this._finishedSpanBucketSize = options?.timeout || DEFAULT_TIMEOUT;\n this._finishedSpanBuckets = new Array(this._finishedSpanBucketSize).fill(undefined);\n this._lastCleanupTimestampInS = Math.floor(_INTERNAL_safeDateNow() / 1000);\n this._spansToBucketEntry = new WeakMap();\n this._sentSpans = new Map();\n this._debouncedFlush = debounce(this.flush.bind(this), 1, { maxWait: 100 });\n }\n\n /**\n * Export a single span.\n * This is called by the span processor whenever a span is ended.\n */\n export(span) {\n const currentTimestampInS = Math.floor(_INTERNAL_safeDateNow() / 1000);\n\n if (this._lastCleanupTimestampInS !== currentTimestampInS) {\n let droppedSpanCount = 0;\n this._finishedSpanBuckets.forEach((bucket, i) => {\n if (bucket && bucket.timestampInS <= currentTimestampInS - this._finishedSpanBucketSize) {\n droppedSpanCount += bucket.spans.size;\n this._finishedSpanBuckets[i] = undefined;\n }\n });\n if (droppedSpanCount > 0) {\n DEBUG_BUILD &&\n debug.log(\n `SpanExporter dropped ${droppedSpanCount} spans because they were pending for more than ${this._finishedSpanBucketSize} seconds.`,\n );\n }\n this._lastCleanupTimestampInS = currentTimestampInS;\n }\n\n const currentBucketIndex = currentTimestampInS % this._finishedSpanBucketSize;\n const currentBucket = this._finishedSpanBuckets[currentBucketIndex] || {\n timestampInS: currentTimestampInS,\n spans: new Set(),\n };\n this._finishedSpanBuckets[currentBucketIndex] = currentBucket;\n currentBucket.spans.add(span);\n this._spansToBucketEntry.set(span, currentBucket);\n\n // If the span doesn't have a local parent ID (it's a root span), we're gonna flush all the ended spans\n const localParentId = getLocalParentId(span);\n if (!localParentId || this._sentSpans.has(localParentId)) {\n this._debouncedFlush();\n }\n }\n\n /**\n * Try to flush any pending spans immediately.\n * This is called internally by the exporter (via _debouncedFlush),\n * but can also be triggered externally if we force-flush.\n */\n flush() {\n const finishedSpans = this._finishedSpanBuckets.flatMap(bucket => (bucket ? Array.from(bucket.spans) : []));\n\n this._flushSentSpanCache();\n const sentSpans = this._maybeSend(finishedSpans);\n\n const sentSpanCount = sentSpans.size;\n const remainingOpenSpanCount = finishedSpans.length - sentSpanCount;\n DEBUG_BUILD &&\n debug.log(\n `SpanExporter exported ${sentSpanCount} spans, ${remainingOpenSpanCount} spans are waiting for their parent spans to finish`,\n );\n\n const expirationDate = _INTERNAL_safeDateNow() + DEFAULT_TIMEOUT * 1000;\n\n for (const span of sentSpans) {\n this._sentSpans.set(span.spanContext().spanId, expirationDate);\n const bucketEntry = this._spansToBucketEntry.get(span);\n if (bucketEntry) {\n bucketEntry.spans.delete(span);\n }\n }\n // Cancel a pending debounced flush, if there is one\n // This can be relevant if we directly flush, circumventing the debounce\n // in that case, we want to cancel any pending debounced flush\n this._debouncedFlush.cancel();\n }\n\n /**\n * Clear the exporter.\n * This is called when the span processor is shut down.\n */\n clear() {\n this._finishedSpanBuckets = this._finishedSpanBuckets.fill(undefined);\n this._sentSpans.clear();\n this._debouncedFlush.cancel();\n }\n\n /**\n * Send the given spans, but only if they are part of a finished transaction.\n *\n * Returns the sent spans.\n * Spans remain unsent when their parent span is not yet finished.\n * This will happen regularly, as child spans are generally finished before their parents.\n * But it _could_ also happen because, for whatever reason, a parent span was lost.\n * In this case, we'll eventually need to clean this up.\n */\n _maybeSend(spans) {\n const grouped = groupSpansWithParents(spans);\n const sentSpans = new Set();\n\n const rootNodes = this._getCompletedRootNodes(grouped);\n\n for (const root of rootNodes) {\n const span = root.span;\n sentSpans.add(span);\n const transactionEvent = createTransactionForOtelSpan(span);\n\n // Add an attribute to the transaction event to indicate that this transaction is an orphaned transaction\n if (root.parentNode && this._sentSpans.has(root.parentNode.id)) {\n const traceData = transactionEvent.contexts?.trace?.data;\n if (traceData) {\n traceData['sentry.parent_span_already_sent'] = true;\n }\n }\n\n // We'll recursively add all the child spans to this array\n const spans = transactionEvent.spans || [];\n\n for (const child of root.children) {\n createAndFinishSpanForOtelSpan(child, spans, sentSpans);\n }\n\n // spans.sort() mutates the array, but we do not use this anymore after this point\n // so we can safely mutate it here\n transactionEvent.spans =\n spans.length > MAX_SPAN_COUNT\n ? spans.sort((a, b) => a.start_timestamp - b.start_timestamp).slice(0, MAX_SPAN_COUNT)\n : spans;\n\n const measurements = timedEventsToMeasurements(span.events);\n if (measurements) {\n transactionEvent.measurements = measurements;\n }\n\n captureEvent(transactionEvent);\n }\n\n return sentSpans;\n }\n\n /** Remove \"expired\" span id entries from the _sentSpans cache. */\n _flushSentSpanCache() {\n const currentTimestamp = _INTERNAL_safeDateNow();\n // Note, it is safe to delete items from the map as we go: https://stackoverflow.com/a/35943995/90297\n for (const [spanId, expirationTime] of this._sentSpans.entries()) {\n if (expirationTime <= currentTimestamp) {\n this._sentSpans.delete(spanId);\n }\n }\n }\n\n /** Check if a node is a completed root node or a node whose parent has already been sent */\n _nodeIsCompletedRootNodeOrHasSentParent(node) {\n return !!node.span && (!node.parentNode || this._sentSpans.has(node.parentNode.id));\n }\n\n /** Get all completed root nodes from a list of nodes */\n _getCompletedRootNodes(nodes) {\n // TODO: We should be able to remove the explicit `node is SpanNodeCompleted` type guard\n // once we stop supporting TS < 5.5\n return nodes.filter((node) => this._nodeIsCompletedRootNodeOrHasSentParent(node));\n }\n}\n\nfunction parseSpan(span) {\n const attributes = span.attributes;\n\n const origin = attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] ;\n const op = attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] ;\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] ;\n\n return { origin, op, source };\n}\n\n/** Exported only for tests. */\nfunction createTransactionForOtelSpan(span) {\n const { op, description, data, origin = 'manual', source } = getSpanData(span);\n const capturedSpanScopes = getCapturedScopesOnSpan(span );\n\n const sampleRate = span.attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] ;\n\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: source,\n [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: sampleRate,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: origin,\n ...data,\n ...removeSentryAttributes(span.attributes),\n };\n\n const { links } = span;\n const { traceId: trace_id, spanId: span_id } = span.spanContext();\n\n // If parentSpanIdFromTraceState is defined at all, we want it to take precedence\n // In that case, an empty string should be interpreted as \"no parent span id\",\n // even if `span.parentSpanId` is set\n // this is the case when we are starting a new trace, where we have a virtual span based on the propagationContext\n // We only want to continue the traceId in this case, but ignore the parent span\n const parent_span_id = getParentSpanId(span);\n\n const status = mapStatus(span);\n\n const traceContext = {\n parent_span_id,\n span_id,\n trace_id,\n data: attributes,\n origin,\n op,\n status: getStatusMessage(status), // As per protocol, span status is allowed to be undefined\n links: convertSpanLinksForEnvelope(links),\n };\n\n const statusCode = attributes[ATTR_HTTP_RESPONSE_STATUS_CODE];\n const responseContext = typeof statusCode === 'number' ? { response: { status_code: statusCode } } : undefined;\n\n const transactionEvent = {\n contexts: {\n trace: traceContext,\n otel: {\n resource: span.resource.attributes,\n },\n ...responseContext,\n },\n spans: [],\n start_timestamp: spanTimeInputToSeconds(span.startTime),\n timestamp: spanTimeInputToSeconds(span.endTime),\n transaction: description,\n type: 'transaction',\n sdkProcessingMetadata: {\n capturedSpanScope: capturedSpanScopes.scope,\n capturedSpanIsolationScope: capturedSpanScopes.isolationScope,\n sampleRate,\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span ),\n },\n ...(source && {\n transaction_info: {\n source,\n },\n }),\n };\n\n return transactionEvent;\n}\n\nfunction createAndFinishSpanForOtelSpan(node, spans, sentSpans) {\n const span = node.span;\n\n if (span) {\n sentSpans.add(span);\n }\n\n const shouldDrop = !span;\n\n // If this span should be dropped, we still want to create spans for the children of this\n if (shouldDrop) {\n node.children.forEach(child => {\n createAndFinishSpanForOtelSpan(child, spans, sentSpans);\n });\n return;\n }\n\n const span_id = span.spanContext().spanId;\n const trace_id = span.spanContext().traceId;\n const parentSpanId = getParentSpanId(span);\n\n const { attributes, startTime, endTime, links } = span;\n\n const { op, description, data, origin = 'manual' } = getSpanData(span);\n const allData = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: origin,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n ...removeSentryAttributes(attributes),\n ...data,\n };\n\n const status = mapStatus(span);\n\n const spanJSON = {\n span_id,\n trace_id,\n data: allData,\n description,\n parent_span_id: parentSpanId,\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || undefined,\n status: getStatusMessage(status), // As per protocol, span status is allowed to be undefined\n op,\n origin,\n measurements: timedEventsToMeasurements(span.events),\n links: convertSpanLinksForEnvelope(links),\n };\n\n spans.push(spanJSON);\n\n node.children.forEach(child => {\n createAndFinishSpanForOtelSpan(child, spans, sentSpans);\n });\n}\n\nfunction getSpanData(span)\n\n {\n const { op: definedOp, source: definedSource, origin } = parseSpan(span);\n const { op: inferredOp, description, source: inferredSource, data: inferredData } = parseSpanDescription(span);\n\n const op = definedOp || inferredOp;\n const source = definedSource || inferredSource;\n\n const data = { ...inferredData, ...getData(span) };\n\n return {\n op,\n description,\n source,\n origin,\n data,\n };\n}\n\n/**\n * Remove custom `sentry.` attributes we do not need to send.\n * These are more carrier attributes we use inside of the SDK, we do not need to send them to the API.\n */\nfunction removeSentryAttributes(data) {\n const cleanedData = { ...data };\n\n /* eslint-disable @typescript-eslint/no-dynamic-delete */\n delete cleanedData[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE];\n delete cleanedData[SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE];\n delete cleanedData[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n /* eslint-enable @typescript-eslint/no-dynamic-delete */\n\n return cleanedData;\n}\n\nfunction getData(span) {\n const attributes = span.attributes;\n const data = {};\n\n if (span.kind !== SpanKind.INTERNAL) {\n data['otel.kind'] = SpanKind[span.kind];\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const maybeHttpStatusCodeAttribute = attributes[SEMATTRS_HTTP_STATUS_CODE];\n if (maybeHttpStatusCodeAttribute) {\n data[ATTR_HTTP_RESPONSE_STATUS_CODE] = maybeHttpStatusCodeAttribute ;\n }\n\n const requestData = getRequestSpanData(span);\n\n if (requestData.url) {\n data.url = requestData.url;\n }\n\n if (requestData['http.query']) {\n data['http.query'] = requestData['http.query'].slice(1);\n }\n if (requestData['http.fragment']) {\n data['http.fragment'] = requestData['http.fragment'].slice(1);\n }\n\n return data;\n}\n\nfunction onSpanStart(span, parentContext) {\n // This is a reliable way to get the parent span - because this is exactly how the parent is identified in the OTEL SDK\n const parentSpan = trace.getSpan(parentContext);\n\n let scopes = getScopesFromContext(parentContext);\n\n // We need access to the parent span in order to be able to move up the span tree for breadcrumbs\n if (parentSpan && !parentSpan.spanContext().isRemote) {\n addChildSpanToSpan(parentSpan, span);\n }\n\n // We need this in the span exporter\n if (parentSpan?.spanContext().isRemote) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE, true);\n }\n\n // The root context does not have scopes stored, so we check for this specifically\n // As fallback we attach the global scopes\n if (parentContext === ROOT_CONTEXT) {\n scopes = {\n scope: getDefaultCurrentScope(),\n isolationScope: getDefaultIsolationScope(),\n };\n }\n\n // We need the scope at time of span creation in order to apply it to the event when the span is finished\n if (scopes) {\n setCapturedScopesOnSpan(span, scopes.scope, scopes.isolationScope);\n }\n\n logSpanStart(span);\n\n const client = getClient();\n client?.emit('spanStart', span);\n}\n\nfunction onSpanEnd(span) {\n logSpanEnd(span);\n\n const client = getClient();\n client?.emit('spanEnd', span);\n}\n\n/**\n * Converts OpenTelemetry Spans to Sentry Spans and sends them to Sentry via\n * the Sentry SDK.\n */\nclass SentrySpanProcessor {\n\n constructor(options) {\n setIsSetup('SentrySpanProcessor');\n this._exporter = new SentrySpanExporter(options);\n }\n\n /**\n * @inheritDoc\n */\n async forceFlush() {\n this._exporter.flush();\n }\n\n /**\n * @inheritDoc\n */\n async shutdown() {\n this._exporter.clear();\n }\n\n /**\n * @inheritDoc\n */\n onStart(span, parentContext) {\n onSpanStart(span, parentContext);\n }\n\n /** @inheritDoc */\n onEnd(span) {\n onSpanEnd(span);\n\n this._exporter.export(span);\n }\n}\n\n/**\n * A custom OTEL sampler that uses Sentry sampling rates to make its decision\n */\nclass SentrySampler {\n\n constructor(client) {\n this._client = client;\n setIsSetup('SentrySampler');\n }\n\n /** @inheritDoc */\n shouldSample(\n context,\n traceId,\n spanName,\n spanKind,\n spanAttributes,\n _links,\n ) {\n const options = this._client.getOptions();\n\n const parentSpan = getValidSpan(context);\n const parentContext = parentSpan?.spanContext();\n\n if (!hasSpansEnabled(options)) {\n return wrapSamplingDecision({ decision: undefined, context, spanAttributes });\n }\n\n // `ATTR_HTTP_REQUEST_METHOD` is the new attribute, but we still support the old one, `SEMATTRS_HTTP_METHOD`, for now.\n // eslint-disable-next-line deprecation/deprecation\n const maybeSpanHttpMethod = spanAttributes[SEMATTRS_HTTP_METHOD] || spanAttributes[ATTR_HTTP_REQUEST_METHOD];\n\n // If we have a http.client span that has no local parent, we never want to sample it\n // but we want to leave downstream sampling decisions up to the server\n if (spanKind === SpanKind.CLIENT && maybeSpanHttpMethod && (!parentSpan || parentContext?.isRemote)) {\n return wrapSamplingDecision({ decision: undefined, context, spanAttributes });\n }\n\n const parentSampled = parentSpan ? getParentSampled(parentSpan, traceId, spanName) : undefined;\n const isRootSpan = !parentSpan || parentContext?.isRemote;\n\n // We only sample based on parameters (like tracesSampleRate or tracesSampler) for root spans (which is done in sampleSpan).\n // Non-root-spans simply inherit the sampling decision from their parent.\n if (!isRootSpan) {\n return wrapSamplingDecision({\n decision: parentSampled ? SamplingDecision.RECORD_AND_SAMPLED : SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n });\n }\n\n // We want to pass the inferred name & attributes to the sampler method\n const {\n description: inferredSpanName,\n data: inferredAttributes,\n op,\n } = inferSpanData(spanName, spanAttributes, spanKind);\n\n const mergedAttributes = {\n ...inferredAttributes,\n ...spanAttributes,\n };\n\n if (op) {\n mergedAttributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] = op;\n }\n\n const mutableSamplingDecision = { decision: true };\n this._client.emit(\n 'beforeSampling',\n {\n spanAttributes: mergedAttributes,\n spanName: inferredSpanName,\n parentSampled: parentSampled,\n parentContext: parentContext,\n },\n mutableSamplingDecision,\n );\n if (!mutableSamplingDecision.decision) {\n return wrapSamplingDecision({ decision: undefined, context, spanAttributes });\n }\n\n const { isolationScope } = getScopesFromContext(context) ?? {};\n\n const dscString = parentContext?.traceState ? parentContext.traceState.get(SENTRY_TRACE_STATE_DSC) : undefined;\n const dsc = dscString ? baggageHeaderToDynamicSamplingContext(dscString) : undefined;\n\n const sampleRand = parseSampleRate(dsc?.sample_rand) ?? _INTERNAL_safeMathRandom();\n\n const [sampled, sampleRate, localSampleRateWasApplied] = sampleSpan(\n options,\n {\n name: inferredSpanName,\n attributes: mergedAttributes,\n normalizedRequest: isolationScope?.getScopeData().sdkProcessingMetadata.normalizedRequest,\n parentSampled,\n parentSampleRate: parseSampleRate(dsc?.sample_rate),\n },\n sampleRand,\n );\n\n const method = `${maybeSpanHttpMethod}`.toUpperCase();\n if (method === 'OPTIONS' || method === 'HEAD') {\n DEBUG_BUILD && debug.log(`[Tracing] Not sampling span because HTTP method is '${method}' for ${spanName}`);\n\n return wrapSamplingDecision({\n decision: SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n sampleRand,\n downstreamTraceSampleRate: 0, // we don't want to sample anything in the downstream trace either\n });\n }\n\n if (\n !sampled &&\n // We check for `parentSampled === undefined` because we only want to record client reports for spans that are trace roots (ie. when there was incoming trace)\n parentSampled === undefined\n ) {\n DEBUG_BUILD && debug.log('[Tracing] Discarding root span because its trace was not chosen to be sampled.');\n this._client.recordDroppedEvent('sample_rate', 'transaction');\n }\n\n return {\n ...wrapSamplingDecision({\n decision: sampled ? SamplingDecision.RECORD_AND_SAMPLED : SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n sampleRand,\n downstreamTraceSampleRate: localSampleRateWasApplied ? sampleRate : undefined,\n }),\n attributes: {\n // We set the sample rate on the span when a local sample rate was applied to better understand how traces were sampled in Sentry\n [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: localSampleRateWasApplied ? sampleRate : undefined,\n },\n };\n }\n\n /** Returns the sampler name or short description with the configuration. */\n toString() {\n return 'SentrySampler';\n }\n}\n\nfunction getParentSampled(parentSpan, traceId, spanName) {\n const parentContext = parentSpan.spanContext();\n\n // Only inherit sample rate if `traceId` is the same\n // Note for testing: `isSpanContextValid()` checks the format of the traceId/spanId, so we need to pass valid ones\n if (isSpanContextValid(parentContext) && parentContext.traceId === traceId) {\n if (parentContext.isRemote) {\n const parentSampled = getSamplingDecision(parentSpan.spanContext());\n DEBUG_BUILD &&\n debug.log(`[Tracing] Inheriting remote parent's sampled decision for ${spanName}: ${parentSampled}`);\n return parentSampled;\n }\n\n const parentSampled = getSamplingDecision(parentContext);\n DEBUG_BUILD && debug.log(`[Tracing] Inheriting parent's sampled decision for ${spanName}: ${parentSampled}`);\n return parentSampled;\n }\n\n return undefined;\n}\n\n/**\n * Wrap a sampling decision with data that Sentry needs to work properly with it.\n * If you pass `decision: undefined`, it will be treated as `NOT_RECORDING`, but in contrast to passing `NOT_RECORDING`\n * it will not propagate this decision to downstream Sentry SDKs.\n */\nfunction wrapSamplingDecision({\n decision,\n context,\n spanAttributes,\n sampleRand,\n downstreamTraceSampleRate,\n}\n\n) {\n let traceState = getBaseTraceState(context, spanAttributes);\n\n // We will override the propagated sample rate downstream when\n // - the tracesSampleRate is applied\n // - the tracesSampler is invoked\n // Since unsampled OTEL spans (NonRecordingSpans) cannot hold attributes we need to store this on the (trace)context.\n if (downstreamTraceSampleRate !== undefined) {\n traceState = traceState.set(SENTRY_TRACE_STATE_SAMPLE_RATE, `${downstreamTraceSampleRate}`);\n }\n\n if (sampleRand !== undefined) {\n traceState = traceState.set(SENTRY_TRACE_STATE_SAMPLE_RAND, `${sampleRand}`);\n }\n\n // If the decision is undefined, we treat it as NOT_RECORDING, but we don't propagate this decision to downstream SDKs\n // Which is done by not setting `SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING` traceState\n if (decision == undefined) {\n return { decision: SamplingDecision.NOT_RECORD, traceState };\n }\n\n if (decision === SamplingDecision.NOT_RECORD) {\n return { decision, traceState: traceState.set(SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING, '1') };\n }\n\n return { decision, traceState };\n}\n\nfunction getBaseTraceState(context, spanAttributes) {\n const parentSpan = trace.getSpan(context);\n const parentContext = parentSpan?.spanContext();\n\n let traceState = parentContext?.traceState || new TraceState();\n\n // We always keep the URL on the trace state, so we can access it in the propagator\n // `ATTR_URL_FULL` is the new attribute, but we still support the old one, `ATTR_HTTP_URL`, for now.\n // eslint-disable-next-line deprecation/deprecation\n const url = spanAttributes[SEMATTRS_HTTP_URL] || spanAttributes[ATTR_URL_FULL];\n if (url && typeof url === 'string') {\n traceState = traceState.set(SENTRY_TRACE_STATE_URL, url);\n }\n\n return traceState;\n}\n\n/**\n * If the active span is invalid, we want to ignore it as parent.\n * This aligns with how otel tracers and default samplers handle these cases.\n */\nfunction getValidSpan(context) {\n const span = trace.getSpan(context);\n return span && isSpanContextValid(span.spanContext()) ? span : undefined;\n}\n\nexport { SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, SentryPropagator, SentrySampler, SentrySpanProcessor, continueTrace, enhanceDscWithOpenTelemetryRootSpanName, getActiveSpan, getRequestSpanData, getScopesFromContext, getSpanKind, getTraceContextForScope, isSentryRequestSpan, openTelemetrySetupCheck, setOpenTelemetryContextAsyncContextStrategy, setupEventContextTrace, spanHasAttributes, spanHasEvents, spanHasKind, spanHasName, spanHasParentId, spanHasStatus, startInactiveSpan, startSpan, startSpanManual, suppressTracing, withActiveSpan, wrapClientClass, wrapContextManagerClass, wrapSamplingDecision };\n//# sourceMappingURL=index.js.map\n", - "import { diag, DiagLogLevel } from '@opentelemetry/api';\nimport { debug } from '@sentry/core';\n\n/**\n * Setup the OTEL logger to use our own debug logger.\n */\nfunction setupOpenTelemetryLogger() {\n // Disable diag, to ensure this works even if called multiple times\n diag.disable();\n diag.setLogger(\n {\n error: debug.error,\n warn: debug.warn,\n info: debug.log,\n debug: debug.log,\n verbose: debug.log,\n },\n DiagLogLevel.DEBUG,\n );\n}\n\nexport { setupOpenTelemetryLogger };\n//# sourceMappingURL=logger.js.map\n", - "import { registerInstrumentations } from '@opentelemetry/instrumentation';\n\n/** Exported only for tests. */\nconst INSTRUMENTED = {};\n\n/**\n * Instrument an OpenTelemetry instrumentation once.\n * This will skip running instrumentation again if it was already instrumented.\n */\nfunction generateInstrumentOnce(\n name,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n creatorOrClass,\n optionsCallback,\n) {\n if (optionsCallback) {\n return _generateInstrumentOnceWithOptions(\n name,\n creatorOrClass ,\n optionsCallback,\n );\n }\n\n return _generateInstrumentOnce(name, creatorOrClass );\n}\n\n// The plain version without handling of options\n// Should not be used with custom options that are mutated in the creator!\nfunction _generateInstrumentOnce(\n name,\n creator,\n) {\n return Object.assign(\n (options) => {\n const instrumented = INSTRUMENTED[name] ;\n if (instrumented) {\n // If options are provided, ensure we update them\n if (options) {\n instrumented.setConfig(options);\n }\n return instrumented;\n }\n\n const instrumentation = creator(options);\n INSTRUMENTED[name] = instrumentation;\n\n registerInstrumentations({\n instrumentations: [instrumentation],\n });\n\n return instrumentation;\n },\n { id: name },\n );\n}\n\n// This version handles options properly\nfunction _generateInstrumentOnceWithOptions\n\n(\n name,\n instrumentationClass,\n optionsCallback,\n) {\n return Object.assign(\n (_options) => {\n const options = optionsCallback(_options);\n\n const instrumented = INSTRUMENTED[name] ;\n if (instrumented) {\n // Ensure we update options\n instrumented.setConfig(options);\n return instrumented;\n }\n\n const instrumentation = new instrumentationClass(options) ;\n INSTRUMENTED[name] = instrumentation;\n\n registerInstrumentations({\n instrumentations: [instrumentation],\n });\n\n return instrumentation;\n },\n { id: name },\n );\n}\n\n/**\n * Ensure a given callback is called when the instrumentation is actually wrapping something.\n * This can be used to ensure some logic is only called when the instrumentation is actually active.\n *\n * This function returns a function that can be invoked with a callback.\n * This callback will either be invoked immediately\n * (e.g. if the instrumentation was already wrapped, or if _wrap could not be patched),\n * or once the instrumentation is actually wrapping something.\n *\n * Make sure to call this function right after adding the instrumentation, otherwise it may be too late!\n * The returned callback can be used any time, and also multiple times.\n */\nfunction instrumentWhenWrapped(instrumentation) {\n let isWrapped = false;\n let callbacks = [];\n\n if (!hasWrap(instrumentation)) {\n isWrapped = true;\n } else {\n const originalWrap = instrumentation['_wrap'];\n\n instrumentation['_wrap'] = (...args) => {\n isWrapped = true;\n callbacks.forEach(callback => callback());\n callbacks = [];\n return originalWrap(...args);\n };\n }\n\n const registerCallback = (callback) => {\n if (isWrapped) {\n callback();\n } else {\n callbacks.push(callback);\n }\n };\n\n return registerCallback;\n}\n\nfunction hasWrap(\n instrumentation,\n) {\n return typeof (instrumentation )['_wrap'] === 'function';\n}\n\nexport { INSTRUMENTED, generateInstrumentOnce, instrumentWhenWrapped };\n//# sourceMappingURL=instrument.js.map\n", - "import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport { defineIntegration, addBreadcrumb, captureException } from '@sentry/core';\n\nconst INTEGRATION_NAME = 'ChildProcess';\n\n/**\n * Capture breadcrumbs and events for child processes and worker threads.\n */\nconst childProcessIntegration = defineIntegration((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setup() {\n diagnosticsChannel.channel('child_process').subscribe((event) => {\n if (event && typeof event === 'object' && 'process' in event) {\n captureChildProcessEvents(event.process , options);\n }\n });\n\n diagnosticsChannel.channel('worker_threads').subscribe((event) => {\n if (event && typeof event === 'object' && 'worker' in event) {\n captureWorkerThreadEvents(event.worker , options);\n }\n });\n },\n };\n});\n\nfunction captureChildProcessEvents(child, options) {\n let hasExited = false;\n let data;\n\n child\n .on('spawn', () => {\n // This is Sentry getting macOS OS context\n if (child.spawnfile === '/usr/bin/sw_vers') {\n hasExited = true;\n return;\n }\n\n data = { spawnfile: child.spawnfile };\n if (options.includeChildProcessArgs) {\n data.spawnargs = child.spawnargs;\n }\n })\n .on('exit', code => {\n if (!hasExited) {\n hasExited = true;\n\n // Only log for non-zero exit codes\n if (code !== null && code !== 0) {\n addBreadcrumb({\n category: 'child_process',\n message: `Child process exited with code '${code}'`,\n level: code === 0 ? 'info' : 'warning',\n data,\n });\n }\n }\n })\n .on('error', error => {\n if (!hasExited) {\n hasExited = true;\n\n addBreadcrumb({\n category: 'child_process',\n message: `Child process errored with '${error.message}'`,\n level: 'error',\n data,\n });\n }\n });\n}\n\nfunction captureWorkerThreadEvents(worker, options) {\n let threadId;\n\n worker\n .on('online', () => {\n threadId = worker.threadId;\n })\n .on('error', error => {\n if (options.captureWorkerErrors !== false) {\n captureException(error, {\n mechanism: { type: 'auto.child_process.worker_thread', handled: false, data: { threadId: String(threadId) } },\n });\n } else {\n addBreadcrumb({\n category: 'worker_thread',\n message: `Worker thread errored with '${error.message}'`,\n level: 'error',\n data: { threadId },\n });\n }\n });\n}\n\nexport { childProcessIntegration };\n//# sourceMappingURL=childProcess.js.map\n", - "import { execFile } from 'node:child_process';\nimport { readFile, readdir } from 'node:fs';\nimport * as os from 'node:os';\nimport { join } from 'node:path';\nimport { promisify } from 'node:util';\nimport { defineIntegration } from '@sentry/core';\n\n/* eslint-disable max-lines */\n\n\nconst readFileAsync = promisify(readFile);\nconst readDirAsync = promisify(readdir);\n\n// Process enhanced with methods from Node 18, 20, 22 as @types/node\n// is on `14.18.0` to match minimum version requirements of the SDK\n\nconst INTEGRATION_NAME = 'Context';\n\nconst _nodeContextIntegration = ((options = {}) => {\n let cachedContext;\n\n const _options = {\n app: true,\n os: true,\n device: true,\n culture: true,\n cloudResource: true,\n ...options,\n };\n\n /** Add contexts to the event. Caches the context so we only look it up once. */\n async function addContext(event) {\n if (cachedContext === undefined) {\n cachedContext = _getContexts();\n }\n\n const updatedContext = _updateContext(await cachedContext);\n\n // TODO(v11): conditional with `sendDefaultPii` here?\n event.contexts = {\n ...event.contexts,\n app: { ...updatedContext.app, ...event.contexts?.app },\n os: { ...updatedContext.os, ...event.contexts?.os },\n device: { ...updatedContext.device, ...event.contexts?.device },\n culture: { ...updatedContext.culture, ...event.contexts?.culture },\n cloud_resource: { ...updatedContext.cloud_resource, ...event.contexts?.cloud_resource },\n };\n\n return event;\n }\n\n /** Get the contexts from node. */\n async function _getContexts() {\n const contexts = {};\n\n if (_options.os) {\n contexts.os = await getOsContext();\n }\n\n if (_options.app) {\n contexts.app = getAppContext();\n }\n\n if (_options.device) {\n contexts.device = getDeviceContext(_options.device);\n }\n\n if (_options.culture) {\n const culture = getCultureContext();\n\n if (culture) {\n contexts.culture = culture;\n }\n }\n\n if (_options.cloudResource) {\n contexts.cloud_resource = getCloudResourceContext();\n }\n\n return contexts;\n }\n\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n return addContext(event);\n },\n };\n}) ;\n\n/**\n * Capture context about the environment and the device that the client is running on, to events.\n */\nconst nodeContextIntegration = defineIntegration(_nodeContextIntegration);\n\n/**\n * Updates the context with dynamic values that can change\n */\nfunction _updateContext(contexts) {\n // Only update properties if they exist\n\n if (contexts.app?.app_memory) {\n contexts.app.app_memory = process.memoryUsage().rss;\n }\n\n if (contexts.app?.free_memory && typeof (process ).availableMemory === 'function') {\n const freeMemory = (process ).availableMemory?.();\n if (freeMemory != null) {\n contexts.app.free_memory = freeMemory;\n }\n }\n\n if (contexts.device?.free_memory) {\n contexts.device.free_memory = os.freemem();\n }\n\n return contexts;\n}\n\n/**\n * Returns the operating system context.\n *\n * Based on the current platform, this uses a different strategy to provide the\n * most accurate OS information. Since this might involve spawning subprocesses\n * or accessing the file system, this should only be executed lazily and cached.\n *\n * - On macOS (Darwin), this will execute the `sw_vers` utility. The context\n * has a `name`, `version`, `build` and `kernel_version` set.\n * - On Linux, this will try to load a distribution release from `/etc` and set\n * the `name`, `version` and `kernel_version` fields.\n * - On all other platforms, only a `name` and `version` will be returned. Note\n * that `version` might actually be the kernel version.\n */\nasync function getOsContext() {\n const platformId = os.platform();\n switch (platformId) {\n case 'darwin':\n return getDarwinInfo();\n case 'linux':\n return getLinuxInfo();\n default:\n return {\n name: PLATFORM_NAMES[platformId] || platformId,\n version: os.release(),\n };\n }\n}\n\nfunction getCultureContext() {\n try {\n if (typeof process.versions.icu !== 'string') {\n // Node was built without ICU support\n return;\n }\n\n // Check that node was built with full Intl support. Its possible it was built without support for non-English\n // locales which will make resolvedOptions inaccurate\n //\n // https://nodejs.org/api/intl.html#detecting-internationalization-support\n const january = new Date(9e8);\n const spanish = new Intl.DateTimeFormat('es', { month: 'long' });\n if (spanish.format(january) === 'enero') {\n const options = Intl.DateTimeFormat().resolvedOptions();\n\n return {\n locale: options.locale,\n timezone: options.timeZone,\n };\n }\n } catch {\n //\n }\n\n return;\n}\n\n/**\n * Get app context information from process\n */\nfunction getAppContext() {\n const app_memory = process.memoryUsage().rss;\n // oxlint-disable-next-line sdk/no-unsafe-random-apis\n const app_start_time = new Date(Date.now() - process.uptime() * 1000).toISOString();\n // https://nodejs.org/api/process.html#processavailablememory\n const appContext = { app_start_time, app_memory };\n\n if (typeof (process ).availableMemory === 'function') {\n const freeMemory = (process ).availableMemory?.();\n if (freeMemory != null) {\n appContext.free_memory = freeMemory;\n }\n }\n\n return appContext;\n}\n\n/**\n * Gets device information from os\n */\nfunction getDeviceContext(deviceOpt) {\n const device = {};\n\n // Sometimes os.uptime() throws due to lacking permissions: https://github.com/getsentry/sentry-javascript/issues/8202\n let uptime;\n try {\n uptime = os.uptime();\n } catch {\n // noop\n }\n\n // os.uptime or its return value seem to be undefined in certain environments (e.g. Azure functions).\n // Hence, we only set boot time, if we get a valid uptime value.\n // @see https://github.com/getsentry/sentry-javascript/issues/5856\n if (typeof uptime === 'number') {\n // oxlint-disable-next-line sdk/no-unsafe-random-apis\n device.boot_time = new Date(Date.now() - uptime * 1000).toISOString();\n }\n\n device.arch = os.arch();\n\n if (deviceOpt === true || deviceOpt.memory) {\n device.memory_size = os.totalmem();\n device.free_memory = os.freemem();\n }\n\n if (deviceOpt === true || deviceOpt.cpu) {\n const cpuInfo = os.cpus() ;\n const firstCpu = cpuInfo?.[0];\n if (firstCpu) {\n device.processor_count = cpuInfo.length;\n device.cpu_description = firstCpu.model;\n device.processor_frequency = firstCpu.speed;\n }\n }\n\n return device;\n}\n\n/** Mapping of Node's platform names to actual OS names. */\nconst PLATFORM_NAMES = {\n aix: 'IBM AIX',\n freebsd: 'FreeBSD',\n openbsd: 'OpenBSD',\n sunos: 'SunOS',\n win32: 'Windows',\n ohos: 'OpenHarmony',\n android: 'Android',\n};\n\n/** Linux version file to check for a distribution. */\n\n/** Mapping of linux release files located in /etc to distributions. */\nconst LINUX_DISTROS = [\n { name: 'fedora-release', distros: ['Fedora'] },\n { name: 'redhat-release', distros: ['Red Hat Linux', 'Centos'] },\n { name: 'redhat_version', distros: ['Red Hat Linux'] },\n { name: 'SuSE-release', distros: ['SUSE Linux'] },\n { name: 'lsb-release', distros: ['Ubuntu Linux', 'Arch Linux'] },\n { name: 'debian_version', distros: ['Debian'] },\n { name: 'debian_release', distros: ['Debian'] },\n { name: 'arch-release', distros: ['Arch Linux'] },\n { name: 'gentoo-release', distros: ['Gentoo Linux'] },\n { name: 'novell-release', distros: ['SUSE Linux'] },\n { name: 'alpine-release', distros: ['Alpine Linux'] },\n];\n\n/** Functions to extract the OS version from Linux release files. */\nconst LINUX_VERSIONS\n\n = {\n alpine: content => content,\n arch: content => matchFirst(/distrib_release=(.*)/, content),\n centos: content => matchFirst(/release ([^ ]+)/, content),\n debian: content => content,\n fedora: content => matchFirst(/release (..)/, content),\n mint: content => matchFirst(/distrib_release=(.*)/, content),\n red: content => matchFirst(/release ([^ ]+)/, content),\n suse: content => matchFirst(/VERSION = (.*)\\n/, content),\n ubuntu: content => matchFirst(/distrib_release=(.*)/, content),\n};\n\n/**\n * Executes a regular expression with one capture group.\n *\n * @param regex A regular expression to execute.\n * @param text Content to execute the RegEx on.\n * @returns The captured string if matched; otherwise undefined.\n */\nfunction matchFirst(regex, text) {\n const match = regex.exec(text);\n return match ? match[1] : undefined;\n}\n\n/** Loads the macOS operating system context. */\nasync function getDarwinInfo() {\n // Default values that will be used in case no operating system information\n // can be loaded. The default version is computed via heuristics from the\n // kernel version, but the build ID is missing.\n const darwinInfo = {\n kernel_version: os.release(),\n name: 'Mac OS X',\n version: `10.${Number(os.release().split('.')[0]) - 4}`,\n };\n\n try {\n // We try to load the actual macOS version by executing the `sw_vers` tool.\n // This tool should be available on every standard macOS installation. In\n // case this fails, we stick with the values computed above.\n\n const output = await new Promise((resolve, reject) => {\n execFile('/usr/bin/sw_vers', (error, stdout) => {\n if (error) {\n reject(error);\n return;\n }\n resolve(stdout);\n });\n });\n\n darwinInfo.name = matchFirst(/^ProductName:\\s+(.*)$/m, output);\n darwinInfo.version = matchFirst(/^ProductVersion:\\s+(.*)$/m, output);\n darwinInfo.build = matchFirst(/^BuildVersion:\\s+(.*)$/m, output);\n } catch {\n // ignore\n }\n\n return darwinInfo;\n}\n\n/** Returns a distribution identifier to look up version callbacks. */\nfunction getLinuxDistroId(name) {\n return (name.split(' ') )[0].toLowerCase();\n}\n\n/** Loads the Linux operating system context. */\nasync function getLinuxInfo() {\n // By default, we cannot assume anything about the distribution or Linux\n // version. `os.release()` returns the kernel version and we assume a generic\n // \"Linux\" name, which will be replaced down below.\n const linuxInfo = {\n kernel_version: os.release(),\n name: 'Linux',\n };\n\n try {\n // We start guessing the distribution by listing files in the /etc\n // directory. This is were most Linux distributions (except Knoppix) store\n // release files with certain distribution-dependent meta data. We search\n // for exactly one known file defined in `LINUX_DISTROS` and exit if none\n // are found. In case there are more than one file, we just stick with the\n // first one.\n const etcFiles = await readDirAsync('/etc');\n const distroFile = LINUX_DISTROS.find(file => etcFiles.includes(file.name));\n if (!distroFile) {\n return linuxInfo;\n }\n\n // Once that file is known, load its contents. To make searching in those\n // files easier, we lowercase the file contents. Since these files are\n // usually quite small, this should not allocate too much memory and we only\n // hold on to it for a very short amount of time.\n const distroPath = join('/etc', distroFile.name);\n const contents = (await readFileAsync(distroPath, { encoding: 'utf-8' })).toLowerCase();\n\n // Some Linux distributions store their release information in the same file\n // (e.g. RHEL and Centos). In those cases, we scan the file for an\n // identifier, that basically consists of the first word of the linux\n // distribution name (e.g. \"red\" for Red Hat). In case there is no match, we\n // just assume the first distribution in our list.\n const { distros } = distroFile;\n linuxInfo.name = distros.find(d => contents.indexOf(getLinuxDistroId(d)) >= 0) || distros[0];\n\n // Based on the found distribution, we can now compute the actual version\n // number. This is different for every distribution, so several strategies\n // are computed in `LINUX_VERSIONS`.\n const id = getLinuxDistroId(linuxInfo.name);\n linuxInfo.version = LINUX_VERSIONS[id]?.(contents);\n } catch {\n // ignore\n }\n\n return linuxInfo;\n}\n\n/**\n * Grabs some information about hosting provider based on best effort.\n */\nfunction getCloudResourceContext() {\n if (process.env.VERCEL) {\n // https://vercel.com/docs/concepts/projects/environment-variables/system-environment-variables#system-environment-variables\n return {\n 'cloud.provider': 'vercel',\n 'cloud.region': process.env.VERCEL_REGION,\n };\n } else if (process.env.AWS_REGION) {\n // https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html\n return {\n 'cloud.provider': 'aws',\n 'cloud.region': process.env.AWS_REGION,\n 'cloud.platform': process.env.AWS_EXECUTION_ENV,\n };\n } else if (process.env.GCP_PROJECT) {\n // https://cloud.google.com/composer/docs/how-to/managing/environment-variables#reserved_variables\n return {\n 'cloud.provider': 'gcp',\n };\n } else if (process.env.ALIYUN_REGION_ID) {\n // TODO: find where I found these environment variables - at least gc.github.com returns something\n return {\n 'cloud.provider': 'alibaba_cloud',\n 'cloud.region': process.env.ALIYUN_REGION_ID,\n };\n } else if (process.env.WEBSITE_SITE_NAME && process.env.REGION_NAME) {\n // https://learn.microsoft.com/en-us/azure/app-service/reference-app-settings?tabs=kudu%2Cdotnet#app-environment\n return {\n 'cloud.provider': 'azure',\n 'cloud.region': process.env.REGION_NAME,\n };\n } else if (process.env.IBM_CLOUD_REGION) {\n // TODO: find where I found these environment variables - at least gc.github.com returns something\n return {\n 'cloud.provider': 'ibm_cloud',\n 'cloud.region': process.env.IBM_CLOUD_REGION,\n };\n } else if (process.env.TENCENTCLOUD_REGION) {\n // https://www.tencentcloud.com/document/product/583/32748\n return {\n 'cloud.provider': 'tencent_cloud',\n 'cloud.region': process.env.TENCENTCLOUD_REGION,\n 'cloud.account.id': process.env.TENCENTCLOUD_APPID,\n 'cloud.availability_zone': process.env.TENCENTCLOUD_ZONE,\n };\n } else if (process.env.NETLIFY) {\n // https://docs.netlify.com/configure-builds/environment-variables/#read-only-variables\n return {\n 'cloud.provider': 'netlify',\n };\n } else if (process.env.FLY_REGION) {\n // https://fly.io/docs/reference/runtime-environment/\n return {\n 'cloud.provider': 'fly.io',\n 'cloud.region': process.env.FLY_REGION,\n };\n } else if (process.env.DYNO) {\n // https://devcenter.heroku.com/articles/dynos#local-environment-variables\n return {\n 'cloud.provider': 'heroku',\n };\n } else {\n return undefined;\n }\n}\n\nexport { getAppContext, getDeviceContext, nodeContextIntegration, readDirAsync, readFileAsync };\n//# sourceMappingURL=context.js.map\n", - "import { createReadStream } from 'node:fs';\nimport { createInterface } from 'node:readline';\nimport { LRUMap, defineIntegration, debug, snipLine } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst LRU_FILE_CONTENTS_CACHE = new LRUMap(10);\nconst LRU_FILE_CONTENTS_FS_READ_FAILED = new LRUMap(20);\nconst DEFAULT_LINES_OF_CONTEXT = 7;\nconst INTEGRATION_NAME = 'ContextLines';\n// Determines the upper bound of lineno/colno that we will attempt to read. Large colno values are likely to be\n// minified code while large lineno values are likely to be bundled code.\n// Exported for testing purposes.\nconst MAX_CONTEXTLINES_COLNO = 1000;\nconst MAX_CONTEXTLINES_LINENO = 10000;\n\n/**\n * Get or init map value\n */\nfunction emplace(map, key, contents) {\n const value = map.get(key);\n\n if (value === undefined) {\n map.set(key, contents);\n return contents;\n }\n\n return value;\n}\n\n/**\n * Determines if context lines should be skipped for a file.\n * - .min.(mjs|cjs|js) files are and not useful since they dont point to the original source\n * - node: prefixed modules are part of the runtime and cannot be resolved to a file\n * - data: skip json, wasm and inline js https://nodejs.org/api/esm.html#data-imports\n */\nfunction shouldSkipContextLinesForFile(path) {\n // Test the most common prefix and extension first. These are the ones we\n // are most likely to see in user applications and are the ones we can break out of first.\n if (path.startsWith('node:')) return true;\n if (path.endsWith('.min.js')) return true;\n if (path.endsWith('.min.cjs')) return true;\n if (path.endsWith('.min.mjs')) return true;\n if (path.startsWith('data:')) return true;\n return false;\n}\n\n/**\n * Determines if we should skip contextlines based off the max lineno and colno values.\n */\nfunction shouldSkipContextLinesForFrame(frame) {\n if (frame.lineno !== undefined && frame.lineno > MAX_CONTEXTLINES_LINENO) return true;\n if (frame.colno !== undefined && frame.colno > MAX_CONTEXTLINES_COLNO) return true;\n return false;\n}\n/**\n * Checks if we have all the contents that we need in the cache.\n */\nfunction rangeExistsInContentCache(file, range) {\n const contents = LRU_FILE_CONTENTS_CACHE.get(file);\n if (contents === undefined) return false;\n\n for (let i = range[0]; i <= range[1]; i++) {\n if (contents[i] === undefined) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Creates contiguous ranges of lines to read from a file. In the case where context lines overlap,\n * the ranges are merged to create a single range.\n */\nfunction makeLineReaderRanges(lines, linecontext) {\n if (!lines.length) {\n return [];\n }\n\n let i = 0;\n const line = lines[0];\n\n if (typeof line !== 'number') {\n return [];\n }\n\n let current = makeContextRange(line, linecontext);\n const out = [];\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (i === lines.length - 1) {\n out.push(current);\n break;\n }\n\n // If the next line falls into the current range, extend the current range to lineno + linecontext.\n const next = lines[i + 1];\n if (typeof next !== 'number') {\n break;\n }\n if (next <= current[1]) {\n current[1] = next + linecontext;\n } else {\n out.push(current);\n current = makeContextRange(next, linecontext);\n }\n\n i++;\n }\n\n return out;\n}\n\n/**\n * Extracts lines from a file and stores them in a cache.\n */\nfunction getContextLinesFromFile(path, ranges, output) {\n return new Promise((resolve, _reject) => {\n // It is important *not* to have any async code between createInterface and the 'line' event listener\n // as it will cause the 'line' event to\n // be emitted before the listener is attached.\n const stream = createReadStream(path);\n const lineReaded = createInterface({\n input: stream,\n });\n\n // We need to explicitly destroy the stream to prevent memory leaks,\n // removing the listeners on the readline interface is not enough.\n // See: https://github.com/nodejs/node/issues/9002 and https://github.com/getsentry/sentry-javascript/issues/14892\n function destroyStreamAndResolve() {\n stream.destroy();\n resolve();\n }\n\n // Init at zero and increment at the start of the loop because lines are 1 indexed.\n let lineNumber = 0;\n let currentRangeIndex = 0;\n const range = ranges[currentRangeIndex];\n if (range === undefined) {\n // We should never reach this point, but if we do, we should resolve the promise to prevent it from hanging.\n destroyStreamAndResolve();\n return;\n }\n let rangeStart = range[0];\n let rangeEnd = range[1];\n\n // We use this inside Promise.all, so we need to resolve the promise even if there is an error\n // to prevent Promise.all from short circuiting the rest.\n function onStreamError(e) {\n // Mark file path as failed to read and prevent multiple read attempts.\n LRU_FILE_CONTENTS_FS_READ_FAILED.set(path, 1);\n DEBUG_BUILD && debug.error(`Failed to read file: ${path}. Error: ${e}`);\n lineReaded.close();\n lineReaded.removeAllListeners();\n destroyStreamAndResolve();\n }\n\n // We need to handle the error event to prevent the process from crashing in < Node 16\n // https://github.com/nodejs/node/pull/31603\n stream.on('error', onStreamError);\n lineReaded.on('error', onStreamError);\n lineReaded.on('close', destroyStreamAndResolve);\n\n lineReaded.on('line', line => {\n lineNumber++;\n if (lineNumber < rangeStart) return;\n\n // !Warning: This mutates the cache by storing the snipped line into the cache.\n output[lineNumber] = snipLine(line, 0);\n\n if (lineNumber >= rangeEnd) {\n if (currentRangeIndex === ranges.length - 1) {\n // We need to close the file stream and remove listeners, else the reader will continue to run our listener;\n lineReaded.close();\n lineReaded.removeAllListeners();\n return;\n }\n currentRangeIndex++;\n const range = ranges[currentRangeIndex];\n if (range === undefined) {\n // This should never happen as it means we have a bug in the context.\n lineReaded.close();\n lineReaded.removeAllListeners();\n return;\n }\n rangeStart = range[0];\n rangeEnd = range[1];\n }\n });\n });\n}\n\n/**\n * Adds surrounding (context) lines of the line that an exception occurred on to the event.\n * This is done by reading the file line by line and extracting the lines. The extracted lines are stored in\n * a cache to prevent multiple reads of the same file. Failures to read a file are similarly cached to prevent multiple\n * failing reads from happening.\n */\n/* eslint-disable complexity */\nasync function addSourceContext(event, contextLines) {\n // keep a lookup map of which files we've already enqueued to read,\n // so we don't enqueue the same file multiple times which would cause multiple i/o reads\n const filesToLines = {};\n\n if (contextLines > 0 && event.exception?.values) {\n for (const exception of event.exception.values) {\n if (!exception.stacktrace?.frames?.length) {\n continue;\n }\n\n // Maps preserve insertion order, so we iterate in reverse, starting at the\n // outermost frame and closer to where the exception has occurred (poor mans priority)\n for (let i = exception.stacktrace.frames.length - 1; i >= 0; i--) {\n const frame = exception.stacktrace.frames[i];\n const filename = frame?.filename;\n\n if (\n !frame ||\n typeof filename !== 'string' ||\n typeof frame.lineno !== 'number' ||\n shouldSkipContextLinesForFile(filename) ||\n shouldSkipContextLinesForFrame(frame)\n ) {\n continue;\n }\n\n const filesToLinesOutput = filesToLines[filename];\n if (!filesToLinesOutput) filesToLines[filename] = [];\n // @ts-expect-error this is defined above\n filesToLines[filename].push(frame.lineno);\n }\n }\n }\n\n const files = Object.keys(filesToLines);\n if (files.length == 0) {\n return event;\n }\n\n const readlinePromises = [];\n for (const file of files) {\n // If we failed to read this before, dont try reading it again.\n if (LRU_FILE_CONTENTS_FS_READ_FAILED.get(file)) {\n continue;\n }\n\n const filesToLineRanges = filesToLines[file];\n if (!filesToLineRanges) {\n continue;\n }\n\n // Sort ranges so that they are sorted by line increasing order and match how the file is read.\n filesToLineRanges.sort((a, b) => a - b);\n // Check if the contents are already in the cache and if we can avoid reading the file again.\n const ranges = makeLineReaderRanges(filesToLineRanges, contextLines);\n if (ranges.every(r => rangeExistsInContentCache(file, r))) {\n continue;\n }\n\n const cache = emplace(LRU_FILE_CONTENTS_CACHE, file, {});\n readlinePromises.push(getContextLinesFromFile(file, ranges, cache));\n }\n\n // The promise rejections are caught in order to prevent them from short circuiting Promise.all\n await Promise.all(readlinePromises).catch(() => {\n DEBUG_BUILD && debug.log('Failed to read one or more source files and resolve context lines');\n });\n\n // Perform the same loop as above, but this time we can assume all files are in the cache\n // and attempt to add source context to frames.\n if (contextLines > 0 && event.exception?.values) {\n for (const exception of event.exception.values) {\n if (exception.stacktrace?.frames && exception.stacktrace.frames.length > 0) {\n addSourceContextToFrames(exception.stacktrace.frames, contextLines, LRU_FILE_CONTENTS_CACHE);\n }\n }\n }\n\n return event;\n}\n/* eslint-enable complexity */\n\n/** Adds context lines to frames */\nfunction addSourceContextToFrames(\n frames,\n contextLines,\n cache,\n) {\n for (const frame of frames) {\n // Only add context if we have a filename and it hasn't already been added\n if (frame.filename && frame.context_line === undefined && typeof frame.lineno === 'number') {\n const contents = cache.get(frame.filename);\n if (contents === undefined) {\n continue;\n }\n\n addContextToFrame(frame.lineno, frame, contextLines, contents);\n }\n }\n}\n\n/**\n * Clears the context lines from a frame, used to reset a frame to its original state\n * if we fail to resolve all context lines for it.\n */\nfunction clearLineContext(frame) {\n delete frame.pre_context;\n delete frame.context_line;\n delete frame.post_context;\n}\n\n/**\n * Resolves context lines before and after the given line number and appends them to the frame;\n */\nfunction addContextToFrame(\n lineno,\n frame,\n contextLines,\n contents,\n) {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping.\n // We already check for lineno before calling this, but since StackFrame lineno ism optional, we check it again.\n if (frame.lineno === undefined || contents === undefined) {\n DEBUG_BUILD && debug.error('Cannot resolve context for frame with no lineno or file contents');\n return;\n }\n\n frame.pre_context = [];\n for (let i = makeRangeStart(lineno, contextLines); i < lineno; i++) {\n // We always expect the start context as line numbers cannot be negative. If we dont find a line, then\n // something went wrong somewhere. Clear the context and return without adding any linecontext.\n const line = contents[i];\n if (line === undefined) {\n clearLineContext(frame);\n DEBUG_BUILD && debug.error(`Could not find line ${i} in file ${frame.filename}`);\n return;\n }\n\n frame.pre_context.push(line);\n }\n\n // We should always have the context line. If we dont, something went wrong, so we clear the context and return\n // without adding any linecontext.\n if (contents[lineno] === undefined) {\n clearLineContext(frame);\n DEBUG_BUILD && debug.error(`Could not find line ${lineno} in file ${frame.filename}`);\n return;\n }\n\n frame.context_line = contents[lineno];\n\n const end = makeRangeEnd(lineno, contextLines);\n frame.post_context = [];\n for (let i = lineno + 1; i <= end; i++) {\n // Since we dont track when the file ends, we cant clear the context if we dont find a line as it could\n // just be that we reached the end of the file.\n const line = contents[i];\n if (line === undefined) {\n break;\n }\n frame.post_context.push(line);\n }\n}\n\n// Helper functions for generating line context ranges. They take a line number and the number of lines of context to\n// include before and after the line and generate an inclusive range of indices.\n\n// Compute inclusive end context range\nfunction makeRangeStart(line, linecontext) {\n return Math.max(1, line - linecontext);\n}\n// Compute inclusive start context range\nfunction makeRangeEnd(line, linecontext) {\n return line + linecontext;\n}\n// Determine start and end indices for context range (inclusive);\nfunction makeContextRange(line, linecontext) {\n return [makeRangeStart(line, linecontext), makeRangeEnd(line, linecontext)];\n}\n\n/** Exported only for tests, as a type-safe variant. */\nconst _contextLinesIntegration = ((options = {}) => {\n const contextLines = options.frameContextLines !== undefined ? options.frameContextLines : DEFAULT_LINES_OF_CONTEXT;\n\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n return addSourceContext(event, contextLines);\n },\n };\n}) ;\n\n/**\n * Capture the lines before and after the frame's context.\n */\nconst contextLinesIntegration = defineIntegration(_contextLinesIntegration);\n\nexport { MAX_CONTEXTLINES_COLNO, MAX_CONTEXTLINES_LINENO, _contextLinesIntegration, addContextToFrame, contextLinesIntegration };\n//# sourceMappingURL=contextlines.js.map\n", - "import { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '../../otel/instrument.js';\nimport { httpServerIntegration } from './httpServerIntegration.js';\nimport { httpServerSpansIntegration } from './httpServerSpansIntegration.js';\nimport { SentryHttpInstrumentation } from './SentryHttpInstrumentation.js';\n\nconst INTEGRATION_NAME = 'Http';\n\nconst instrumentSentryHttp = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n options => {\n return new SentryHttpInstrumentation(options);\n },\n);\n\n/**\n * The http integration instruments Node's internal http and https modules.\n * It creates breadcrumbs for outgoing HTTP requests which will be attached to the currently active span.\n */\nconst httpIntegration = defineIntegration((options = {}) => {\n const serverOptions = {\n sessions: options.trackIncomingRequestsAsSessions,\n sessionFlushingDelayMS: options.sessionFlushingDelayMS,\n ignoreRequestBody: options.ignoreIncomingRequestBody,\n maxRequestBodySize: options.maxIncomingRequestBodySize,\n };\n\n const serverSpansOptions = {\n ignoreIncomingRequests: options.ignoreIncomingRequests,\n ignoreStaticAssets: options.ignoreStaticAssets,\n ignoreStatusCodes: options.dropSpansForIncomingRequestStatusCodes,\n };\n\n const httpInstrumentationOptions = {\n breadcrumbs: options.breadcrumbs,\n propagateTraceInOutgoingRequests: options.tracePropagation ?? true,\n ignoreOutgoingRequests: options.ignoreOutgoingRequests,\n };\n\n const server = httpServerIntegration(serverOptions);\n const serverSpans = httpServerSpansIntegration(serverSpansOptions);\n\n // In node-core, for now we disable incoming requests spans by default\n // we may revisit this in a future release\n const spans = options.spans ?? false;\n const disableIncomingRequestSpans = options.disableIncomingRequestSpans ?? false;\n const enabledServerSpans = spans && !disableIncomingRequestSpans;\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n if (enabledServerSpans) {\n serverSpans.setup(client);\n }\n },\n setupOnce() {\n server.setupOnce();\n\n instrumentSentryHttp(httpInstrumentationOptions);\n },\n\n processEvent(event) {\n // Note: We always run this, even if spans are disabled\n // The reason being that e.g. the remix integration disables span creation here but still wants to use the ignore status codes option\n return serverSpans.processEvent(event);\n },\n };\n});\n\nexport { httpIntegration, instrumentSentryHttp };\n//# sourceMappingURL=index.js.map\n", - "import { Worker } from 'node:worker_threads';\nimport { defineIntegration, debug } from '@sentry/core';\nimport { isDebuggerEnabled } from '../../utils/debug.js';\nimport { LOCAL_VARIABLES_KEY, functionNamesMatch } from './common.js';\n\n// This string is a placeholder that gets overwritten with the worker code.\nconst base64WorkerScript = 'LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQ2LjAgKGU1ZmRjOWQpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=';\n\nfunction log(...args) {\n debug.log('[LocalVariables]', ...args);\n}\n\n/**\n * Adds local variables to exception frames\n */\nconst localVariablesAsyncIntegration = defineIntegration(((\n integrationOptions = {},\n) => {\n function addLocalVariablesToException(exception, localVariables) {\n // Filter out frames where the function name is `new Promise` since these are in the error.stack frames\n // but do not appear in the debugger call frames\n const frames = (exception.stacktrace?.frames || []).filter(frame => frame.function !== 'new Promise');\n\n for (let i = 0; i < frames.length; i++) {\n // Sentry frames are in reverse order\n const frameIndex = frames.length - i - 1;\n\n const frameLocalVariables = localVariables[i];\n const frame = frames[frameIndex];\n\n if (!frame || !frameLocalVariables) {\n // Drop out if we run out of frames to match up\n break;\n }\n\n if (\n // We need to have vars to add\n frameLocalVariables.vars === undefined ||\n // Only skip out-of-app frames if includeOutOfAppFrames is not true\n (frame.in_app === false && integrationOptions.includeOutOfAppFrames !== true) ||\n // The function names need to match\n !functionNamesMatch(frame.function, frameLocalVariables.function)\n ) {\n continue;\n }\n\n frame.vars = frameLocalVariables.vars;\n }\n }\n\n function addLocalVariablesToEvent(event, hint) {\n if (\n hint.originalException &&\n typeof hint.originalException === 'object' &&\n LOCAL_VARIABLES_KEY in hint.originalException &&\n Array.isArray(hint.originalException[LOCAL_VARIABLES_KEY])\n ) {\n for (const exception of event.exception?.values || []) {\n addLocalVariablesToException(exception, hint.originalException[LOCAL_VARIABLES_KEY]);\n }\n\n hint.originalException[LOCAL_VARIABLES_KEY] = undefined;\n }\n\n return event;\n }\n\n async function startInspector() {\n // We load inspector dynamically because on some platforms Node is built without inspector support\n const inspector = await import('node:inspector');\n if (!inspector.url()) {\n inspector.open(0);\n }\n }\n\n function startWorker(options) {\n const worker = new Worker(new URL(`data:application/javascript;base64,${base64WorkerScript}`), {\n workerData: options,\n // We don't want any Node args to be passed to the worker\n execArgv: [],\n env: { ...process.env, NODE_OPTIONS: undefined },\n });\n\n process.on('exit', () => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n worker.terminate();\n });\n\n worker.once('error', (err) => {\n log('Worker error', err);\n });\n\n worker.once('exit', (code) => {\n log('Worker exit', code);\n });\n\n // Ensure this thread can't block app exit\n worker.unref();\n }\n\n return {\n name: 'LocalVariablesAsync',\n async setup(client) {\n const clientOptions = client.getOptions();\n\n if (!clientOptions.includeLocalVariables) {\n return;\n }\n\n if (await isDebuggerEnabled()) {\n debug.warn('Local variables capture has been disabled because the debugger was already enabled');\n return;\n }\n\n const options = {\n ...integrationOptions,\n debug: debug.isEnabled(),\n };\n\n startInspector().then(\n () => {\n try {\n startWorker(options);\n } catch (e) {\n debug.error('Failed to start worker', e);\n }\n },\n e => {\n debug.error('Failed to start inspector', e);\n },\n );\n },\n processEvent(event, hint) {\n return addLocalVariablesToEvent(event, hint);\n },\n };\n}) );\n\nexport { base64WorkerScript, localVariablesAsyncIntegration };\n//# sourceMappingURL=local-variables-async.js.map\n", - "let cachedDebuggerEnabled;\n\n/**\n * Was the debugger enabled when this function was first called?\n */\nasync function isDebuggerEnabled() {\n if (cachedDebuggerEnabled === undefined) {\n try {\n // Node can be built without inspector support\n const inspector = await import('node:inspector');\n cachedDebuggerEnabled = !!inspector.url();\n } catch {\n cachedDebuggerEnabled = false;\n }\n }\n\n return cachedDebuggerEnabled;\n}\n\nexport { isDebuggerEnabled };\n//# sourceMappingURL=debug.js.map\n", - "/**\n * The key used to store the local variables on the error object.\n */\nconst LOCAL_VARIABLES_KEY = '__SENTRY_ERROR_LOCAL_VARIABLES__';\n\n/**\n * Creates a rate limiter that will call the disable callback when the rate limit is reached and the enable callback\n * when a timeout has occurred.\n * @param maxPerSecond Maximum number of calls per second\n * @param enable Callback to enable capture\n * @param disable Callback to disable capture\n * @returns A function to call to increment the rate limiter count\n */\nfunction createRateLimiter(\n maxPerSecond,\n enable,\n disable,\n) {\n let count = 0;\n let retrySeconds = 5;\n let disabledTimeout = 0;\n\n setInterval(() => {\n if (disabledTimeout === 0) {\n if (count > maxPerSecond) {\n retrySeconds *= 2;\n disable(retrySeconds);\n\n // Cap at one day\n if (retrySeconds > 86400) {\n retrySeconds = 86400;\n }\n disabledTimeout = retrySeconds;\n }\n } else {\n disabledTimeout -= 1;\n\n if (disabledTimeout === 0) {\n enable();\n }\n }\n\n count = 0;\n }, 1000).unref();\n\n return () => {\n count += 1;\n };\n}\n\n// Add types for the exception event data\n\n/** Could this be an anonymous function? */\nfunction isAnonymous(name) {\n return name !== undefined && (name.length === 0 || name === '?' || name === '');\n}\n\n/** Do the function names appear to match? */\nfunction functionNamesMatch(a, b) {\n return a === b || `Object.${a}` === b || a === `Object.${b}` || (isAnonymous(a) && isAnonymous(b));\n}\n\nexport { LOCAL_VARIABLES_KEY, createRateLimiter, functionNamesMatch, isAnonymous };\n//# sourceMappingURL=common.js.map\n", - "import { defineIntegration, LRUMap, getClient, debug } from '@sentry/core';\nimport { NODE_MAJOR } from '../../nodeVersion.js';\nimport { isDebuggerEnabled } from '../../utils/debug.js';\nimport { createRateLimiter, functionNamesMatch } from './common.js';\n\n/** Creates a unique hash from stack frames */\nfunction hashFrames(frames) {\n if (frames === undefined) {\n return;\n }\n\n // Only hash the 10 most recent frames (ie. the last 10)\n return frames.slice(-10).reduce((acc, frame) => `${acc},${frame.function},${frame.lineno},${frame.colno}`, '');\n}\n\n/**\n * We use the stack parser to create a unique hash from the exception stack trace\n * This is used to lookup vars when the exception passes through the event processor\n */\nfunction hashFromStack(stackParser, stack) {\n if (stack === undefined) {\n return undefined;\n }\n\n return hashFrames(stackParser(stack, 1));\n}\n\n/** Creates a container for callbacks to be called sequentially */\nfunction createCallbackList(complete) {\n // A collection of callbacks to be executed last to first\n let callbacks = [];\n\n let completedCalled = false;\n function checkedComplete(result) {\n callbacks = [];\n if (completedCalled) {\n return;\n }\n completedCalled = true;\n complete(result);\n }\n\n // complete should be called last\n callbacks.push(checkedComplete);\n\n function add(fn) {\n callbacks.push(fn);\n }\n\n function next(result) {\n const popped = callbacks.pop() || checkedComplete;\n\n try {\n popped(result);\n } catch {\n // If there is an error, we still want to call the complete callback\n checkedComplete(result);\n }\n }\n\n return { add, next };\n}\n\n/**\n * Promise API is available as `Experimental` and in Node 19 only.\n *\n * Callback-based API is `Stable` since v14 and `Experimental` since v8.\n * Because of that, we are creating our own `AsyncSession` class.\n *\n * https://nodejs.org/docs/latest-v19.x/api/inspector.html#promises-api\n * https://nodejs.org/docs/latest-v14.x/api/inspector.html\n */\nclass AsyncSession {\n /** Throws if inspector API is not available */\n constructor( _session) {this._session = _session;\n //\n }\n\n static async create(orDefault) {\n if (orDefault) {\n return orDefault;\n }\n\n const inspector = await import('node:inspector');\n return new AsyncSession(new inspector.Session());\n }\n\n /** @inheritdoc */\n configureAndConnect(onPause, captureAll) {\n this._session.connect();\n\n this._session.on('Debugger.paused', event => {\n onPause(event, () => {\n // After the pause work is complete, resume execution or the exception context memory is leaked\n this._session.post('Debugger.resume');\n });\n });\n\n this._session.post('Debugger.enable');\n this._session.post('Debugger.setPauseOnExceptions', { state: captureAll ? 'all' : 'uncaught' });\n }\n\n setPauseOnExceptions(captureAll) {\n this._session.post('Debugger.setPauseOnExceptions', { state: captureAll ? 'all' : 'uncaught' });\n }\n\n /** @inheritdoc */\n getLocalVariables(objectId, complete) {\n this._getProperties(objectId, props => {\n const { add, next } = createCallbackList(complete);\n\n for (const prop of props) {\n if (prop.value?.objectId && prop.value.className === 'Array') {\n const id = prop.value.objectId;\n add(vars => this._unrollArray(id, prop.name, vars, next));\n } else if (prop.value?.objectId && prop.value.className === 'Object') {\n const id = prop.value.objectId;\n add(vars => this._unrollObject(id, prop.name, vars, next));\n } else if (prop.value) {\n add(vars => this._unrollOther(prop, vars, next));\n }\n }\n\n next({});\n });\n }\n\n /**\n * Gets all the PropertyDescriptors of an object\n */\n _getProperties(objectId, next) {\n this._session.post(\n 'Runtime.getProperties',\n {\n objectId,\n ownProperties: true,\n },\n (err, params) => {\n if (err) {\n next([]);\n } else {\n next(params.result);\n }\n },\n );\n }\n\n /**\n * Unrolls an array property\n */\n _unrollArray(objectId, name, vars, next) {\n this._getProperties(objectId, props => {\n vars[name] = props\n .filter(v => v.name !== 'length' && !isNaN(parseInt(v.name, 10)))\n .sort((a, b) => parseInt(a.name, 10) - parseInt(b.name, 10))\n .map(v => v.value?.value);\n\n next(vars);\n });\n }\n\n /**\n * Unrolls an object property\n */\n _unrollObject(objectId, name, vars, next) {\n this._getProperties(objectId, props => {\n vars[name] = props\n .map(v => [v.name, v.value?.value])\n .reduce((obj, [key, val]) => {\n obj[key] = val;\n return obj;\n }, {} );\n\n next(vars);\n });\n }\n\n /**\n * Unrolls other properties\n */\n _unrollOther(prop, vars, next) {\n if (prop.value) {\n if ('value' in prop.value) {\n if (prop.value.value === undefined || prop.value.value === null) {\n vars[prop.name] = `<${prop.value.value}>`;\n } else {\n vars[prop.name] = prop.value.value;\n }\n } else if ('description' in prop.value && prop.value.type !== 'function') {\n vars[prop.name] = `<${prop.value.description}>`;\n } else if (prop.value.type === 'undefined') {\n vars[prop.name] = '';\n }\n }\n\n next(vars);\n }\n}\n\nconst INTEGRATION_NAME = 'LocalVariables';\n\n/**\n * Adds local variables to exception frames\n */\nconst _localVariablesSyncIntegration = ((\n options = {},\n sessionOverride,\n) => {\n const cachedFrames = new LRUMap(20);\n let rateLimiter;\n let shouldProcessEvent = false;\n\n function addLocalVariablesToException(exception) {\n const hash = hashFrames(exception.stacktrace?.frames);\n\n if (hash === undefined) {\n return;\n }\n\n // Check if we have local variables for an exception that matches the hash\n // remove is identical to get but also removes the entry from the cache\n const cachedFrame = cachedFrames.remove(hash);\n\n if (cachedFrame === undefined) {\n return;\n }\n\n // Filter out frames where the function name is `new Promise` since these are in the error.stack frames\n // but do not appear in the debugger call frames\n const frames = (exception.stacktrace?.frames || []).filter(frame => frame.function !== 'new Promise');\n\n for (let i = 0; i < frames.length; i++) {\n // Sentry frames are in reverse order\n const frameIndex = frames.length - i - 1;\n\n const cachedFrameVariable = cachedFrame[i];\n const frameVariable = frames[frameIndex];\n\n // Drop out if we run out of frames to match up\n if (!frameVariable || !cachedFrameVariable) {\n break;\n }\n\n if (\n // We need to have vars to add\n cachedFrameVariable.vars === undefined ||\n // Only skip out-of-app frames if includeOutOfAppFrames is not true\n (frameVariable.in_app === false && options.includeOutOfAppFrames !== true) ||\n // The function names need to match\n !functionNamesMatch(frameVariable.function, cachedFrameVariable.function)\n ) {\n continue;\n }\n\n frameVariable.vars = cachedFrameVariable.vars;\n }\n }\n\n function addLocalVariablesToEvent(event) {\n for (const exception of event.exception?.values || []) {\n addLocalVariablesToException(exception);\n }\n\n return event;\n }\n\n let setupPromise;\n\n async function setup() {\n const client = getClient();\n const clientOptions = client?.getOptions();\n\n if (!clientOptions?.includeLocalVariables) {\n return;\n }\n\n // Only setup this integration if the Node version is >= v18\n // https://github.com/getsentry/sentry-javascript/issues/7697\n const unsupportedNodeVersion = NODE_MAJOR < 18;\n\n if (unsupportedNodeVersion) {\n debug.log('The `LocalVariables` integration is only supported on Node >= v18.');\n return;\n }\n\n if (await isDebuggerEnabled()) {\n debug.warn('Local variables capture has been disabled because the debugger was already enabled');\n return;\n }\n\n try {\n const session = await AsyncSession.create(sessionOverride);\n\n const handlePaused = (\n stackParser,\n { params: { reason, data, callFrames } },\n complete,\n ) => {\n if (reason !== 'exception' && reason !== 'promiseRejection') {\n complete();\n return;\n }\n\n rateLimiter?.();\n\n // data.description contains the original error.stack\n const exceptionHash = hashFromStack(stackParser, data.description);\n\n if (exceptionHash == undefined) {\n complete();\n return;\n }\n\n const { add, next } = createCallbackList(frames => {\n cachedFrames.set(exceptionHash, frames);\n complete();\n });\n\n // Because we're queuing up and making all these calls synchronously, we can potentially overflow the stack\n // For this reason we only attempt to get local variables for the first 5 frames\n for (let i = 0; i < Math.min(callFrames.length, 5); i++) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { scopeChain, functionName, this: obj } = callFrames[i];\n\n const localScope = scopeChain.find(scope => scope.type === 'local');\n\n // obj.className is undefined in ESM modules\n const fn = obj.className === 'global' || !obj.className ? functionName : `${obj.className}.${functionName}`;\n\n if (localScope?.object.objectId === undefined) {\n add(frames => {\n frames[i] = { function: fn };\n next(frames);\n });\n } else {\n const id = localScope.object.objectId;\n add(frames =>\n session.getLocalVariables(id, vars => {\n frames[i] = { function: fn, vars };\n next(frames);\n }),\n );\n }\n }\n\n next([]);\n };\n\n const captureAll = options.captureAllExceptions !== false;\n\n session.configureAndConnect(\n (ev, complete) =>\n handlePaused(clientOptions.stackParser, ev , complete),\n captureAll,\n );\n\n if (captureAll) {\n const max = options.maxExceptionsPerSecond || 50;\n\n rateLimiter = createRateLimiter(\n max,\n () => {\n debug.log('Local variables rate-limit lifted.');\n session.setPauseOnExceptions(true);\n },\n seconds => {\n debug.log(\n `Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${seconds} seconds.`,\n );\n session.setPauseOnExceptions(false);\n },\n );\n }\n\n shouldProcessEvent = true;\n } catch (error) {\n debug.log('The `LocalVariables` integration failed to start.', error);\n }\n }\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n setupPromise = setup();\n },\n async processEvent(event) {\n await setupPromise;\n\n if (shouldProcessEvent) {\n return addLocalVariablesToEvent(event);\n }\n\n return event;\n },\n // These are entirely for testing\n _getCachedFramesCount() {\n return cachedFrames.size;\n },\n _getFirstCachedFrame() {\n return cachedFrames.values()[0];\n },\n };\n}) ;\n\n/**\n * Adds local variables to exception frames.\n */\nconst localVariablesSyncIntegration = defineIntegration(_localVariablesSyncIntegration);\n\nexport { createCallbackList, hashFrames, hashFromStack, localVariablesSyncIntegration };\n//# sourceMappingURL=local-variables-sync.js.map\n", + "import * as core from '@actions/core'\nimport { readdirSync, statSync } from 'node:fs'\nimport path from 'node:path'\nimport Syntax from 'syntax'\nimport buildOptions, {\n buildOptionsFromInputs,\n type ElideFormatActionOptions,\n type OutputMode\n} from './options'\nimport { runFormatter, WRITE_FLAGS, type FormatterName } from './command'\nimport {\n initTelemetry,\n reportError,\n flushTelemetry,\n withSpan,\n recordMetric,\n logEvent\n} from './telemetry'\n\nexport enum ActionOutputName {\n RESULT = 'result',\n FILES_CHECKED = 'files-checked',\n FILES_FAILED = 'files-failed'\n}\n\nexport function findFiles(\n dir: string,\n ext: string,\n excludePatterns: string[] = []\n): string[] {\n const results: string[] = []\n function walk(current: string): void {\n for (const entry of readdirSync(current, { withFileTypes: true })) {\n const full = path.join(current, entry.name)\n if (entry.isDirectory()) {\n if (!excludePatterns.some(p => matchesExcludePattern(full, p))) {\n walk(full)\n }\n } else if (entry.name.endsWith(ext)) {\n results.push(full)\n }\n }\n }\n walk(dir)\n return results\n}\n\nfunction getExtensions(\n formatter: FormatterName,\n options: ElideFormatActionOptions\n): string[] {\n if (formatter === 'javaformat') return ['.java']\n return options.include_kts ? ['.kt', '.kts'] : ['.kt']\n}\n\nexport function resolveFiles(\n options: ElideFormatActionOptions,\n formatter: FormatterName\n): string[] {\n const exts = getExtensions(formatter, options)\n\n if (options.files.length > 0) {\n return options.files.flatMap(f => {\n const resolved = path.isAbsolute(f)\n ? f\n : path.join(options.working_directory, f)\n try {\n if (statSync(resolved).isDirectory()) {\n return exts.flatMap(ext => findFiles(resolved, ext, options.exclude))\n }\n } catch {\n // not a directory or path doesn't exist — treat as a file path\n }\n return [resolved]\n })\n }\n\n return exts.flatMap(ext =>\n findFiles(options.working_directory, ext, options.exclude)\n )\n}\n\n/**\n * Returns true if the normalized file path matches the exclusion pattern.\n *\n * Plain patterns (no * or ?) match as path segments — \"generated\" excludes any\n * file under a directory named \"generated\". Glob patterns use * (within a\n * segment) and ** (across segments).\n */\nexport function matchesExcludePattern(\n filePath: string,\n pattern: string\n): boolean {\n const normalized = filePath.replace(/\\\\/g, '/')\n const normPattern = pattern.replace(/\\\\/g, '/')\n\n if (!normPattern.includes('*') && !normPattern.includes('?')) {\n return (\n normalized === normPattern ||\n normalized.startsWith(normPattern + '/') ||\n normalized.includes('/' + normPattern + '/') ||\n normalized.endsWith('/' + normPattern)\n )\n }\n\n const regexStr =\n '^' +\n normPattern\n .replace(/[.+^${}()|[\\]\\\\]/g, '\\\\$&')\n .replace(/\\*\\*/g, ' ')\n .replace(/\\*/g, '[^/]*')\n .replace(/\\?/g, '[^/]')\n .replace(/ /g, '.*') +\n '$'\n\n return new RegExp(regexStr).test(normalized)\n}\n\nexport function applyExclusions(files: string[], patterns: string[]): string[] {\n if (patterns.length === 0) return files\n return files.filter(f => !patterns.some(p => matchesExcludePattern(f, p)))\n}\n\nexport function buildElideFlags(opts: ElideFormatActionOptions): string[] {\n switch (opts.output_mode) {\n case 'file':\n return ['--list-files']\n case 'diff':\n if (opts.mode !== 'check') return ['--list-files']\n return opts.output_mode_diffs != null\n ? [`--list-diffs=${opts.output_mode_diffs}`]\n : ['--list-diffs']\n case 'command':\n return ['--list-files']\n default:\n return []\n }\n}\n\n// Parses file paths from --list-files stdout. The last non-empty line is the\n// formatter summary; everything before it is file paths.\nexport function parseListedFiles(stdout: string): string[] {\n const lines = stdout\n .split('\\n')\n .map(l => l.trim())\n .filter(Boolean)\n if (lines.length <= 1) return []\n return lines.slice(0, -1)\n}\n\n// Parses diff content from --list-diffs stdout, stripping the trailing summary line.\nexport function parseDiffOutput(stdout: string): string {\n const lines = stdout.split('\\n')\n let lastNonEmpty = lines.length - 1\n while (lastNonEmpty >= 0 && !lines[lastNonEmpty].trim()) lastNonEmpty--\n return lines.slice(0, lastNonEmpty).join('\\n').trimEnd()\n}\n\n// Returns true if stdout looks like unified diff output (---/+++/@@ markers).\n// Used to distinguish diff output from file-listing output when elide falls back\n// (e.g. --list-diffs=N limit exceeded, or write mode falls back to --list-files).\nexport function isDiffOutput(stdout: string): boolean {\n const lines = stdout.split('\\n').filter(l => l.trim())\n return !!(\n lines[0]?.startsWith('---') ||\n lines[1]?.startsWith('+++') ||\n lines[2]?.startsWith('@@')\n )\n}\n\nfunction shellQuote(p: string): string {\n return `'${p.replace(/'/g, \"'\\\\''\")}'`\n}\n\nconst MARKUP_COLORS: Record = {\n comment: '\\x1b[2m',\n keyword: '\\x1b[34m',\n literal: '\\x1b[33m'\n}\n\nfunction applyMarkup(text: string, markup: Record): string {\n const ranges: { start: number; end: number; color: string }[] = []\n for (const [type, spans] of Object.entries(markup)) {\n const color = MARKUP_COLORS[type]\n if (!color || !Array.isArray(spans)) continue\n for (const span of spans) {\n const [start, end] = span as [number, number]\n ranges.push({ start, end, color })\n }\n }\n ranges.sort((a, b) => a.start - b.start)\n let result = ''\n let pos = 0\n for (const { start, end, color } of ranges) {\n result += text.slice(pos, start)\n result += color + text.slice(start, end) + '\\x1b[0m'\n pos = end\n }\n return result + text.slice(pos)\n}\n\nfunction addDiffLineColors(text: string): string {\n return text\n .split('\\n')\n .map(line => {\n if (line.startsWith('---') || line.startsWith('+++')) return line\n if (line.startsWith('@@')) return `\\x1b[36m${line}\\x1b[0m`\n if (line.startsWith('+')) return `\\x1b[32m${line}\\x1b[0m`\n if (line.startsWith('-')) return `\\x1b[31m${line}\\x1b[0m`\n return line\n })\n .join('\\n')\n}\n\nexport function formatDiff(\n _formatter: FormatterName,\n diffText: string\n): string {\n try {\n const syn = new Syntax({ language: 'diff', cssPrefix: '' })\n syn.richtext(diffText)\n return addDiffLineColors(applyMarkup(diffText, syn.markup()))\n } catch {\n return addDiffLineColors(diffText)\n }\n}\n\nexport function printOutputModeResult(\n outputMode: OutputMode,\n formatter: FormatterName,\n stdout: string,\n customCommand: string | null,\n extraArgs: string[] = []\n): void {\n if (outputMode === 'none' || !stdout) return\n\n switch (outputMode) {\n case 'file': {\n const files = parseListedFiles(stdout)\n if (files.length > 0) {\n core.info(`Files affected by ${formatter}:`)\n for (const f of files) core.info(f)\n }\n break\n }\n case 'diff': {\n if (isDiffOutput(stdout)) {\n const diff = parseDiffOutput(stdout)\n if (diff) {\n core.info(`Diffs for ${formatter}:`)\n core.info(formatDiff(formatter, diff))\n }\n } else {\n // elide fell back to file listing (write mode, or --list-diffs=N limit exceeded)\n const files = parseListedFiles(stdout)\n if (files.length > 0) {\n core.info(`Files affected by ${formatter}:`)\n for (const f of files) core.info(f)\n }\n }\n break\n }\n case 'command': {\n if (customCommand) {\n core.info(customCommand)\n } else {\n const files = parseListedFiles(stdout)\n if (files.length > 0) {\n const writeFlags = WRITE_FLAGS[formatter]\n const args = [\n '--',\n ...writeFlags,\n ...extraArgs.map(shellQuote),\n ...files.map(shellQuote)\n ]\n core.info(\n `Run the following command to fix formatting:\\nelide ${formatter} ${args.join(' ')}`\n )\n }\n }\n break\n }\n }\n}\n\nasync function writeSummary(\n formatters: FormatterName[],\n results: Record,\n filesChecked: number,\n success: boolean,\n elapsedMs: number\n): Promise {\n try {\n const elapsed =\n elapsedMs < 1000\n ? `${Math.round(elapsedMs)}ms`\n : `${(elapsedMs / 1000).toFixed(1)}s`\n\n const rows: { data: string; header: boolean }[][] = formatters.map(f => [\n { data: f, header: false },\n { data: results[f] === 0 ? 'passed' : 'failed', header: false }\n ])\n\n await core.summary\n .addHeading(success ? 'Format Check Passed' : 'Format Check Failed', 2)\n .addTable([\n [\n { data: 'Formatter', header: true },\n { data: 'Result', header: true }\n ],\n ...rows,\n [\n { data: 'Files checked', header: true },\n { data: String(filesChecked), header: false }\n ],\n [\n { data: 'Time', header: true },\n { data: elapsed, header: false }\n ]\n ])\n .write()\n } catch {\n // ignore — summary is not available outside GHA\n }\n}\n\nexport async function run(\n options?: Partial\n): Promise {\n const startTime = Date.now()\n\n try {\n const effectiveOptions = await core.group('Resolving options', async () => {\n const opts = options ? buildOptions(options) : buildOptionsFromInputs()\n core.info(\n `formatter=${opts.formatter} mode=${opts.mode} working_directory=${opts.working_directory}`\n )\n return opts\n })\n\n initTelemetry(effectiveOptions.telemetry, effectiveOptions)\n logEvent('format.start', {\n formatter: effectiveOptions.formatter,\n mode: effectiveOptions.mode\n })\n\n await withSpan('format', 'format', async () => {\n const formatters: FormatterName[] =\n effectiveOptions.formatter === 'all'\n ? ['javaformat', 'ktfmt']\n : [effectiveOptions.formatter]\n\n const results: Partial> = {}\n let totalFiles = 0\n const elideFlags = buildElideFlags(effectiveOptions)\n const failedFiles: string[] = []\n\n for (const formatter of formatters) {\n const resolved = resolveFiles(effectiveOptions, formatter)\n const files = applyExclusions(resolved, effectiveOptions.exclude)\n totalFiles += files.length\n\n if (files.length === 0) {\n const ext = formatter === 'javaformat' ? '.java' : '.kt'\n core.info(`No ${ext} files found, skipping ${formatter}`)\n results[formatter] = 0\n continue\n }\n\n const extraArgs =\n formatter === 'javaformat'\n ? effectiveOptions.gjf_args\n : effectiveOptions.ktfmt_args\n\n const { exitCode, stdout } = await core.group(\n `Running ${formatter}`,\n async () =>\n withSpan(`format.${formatter}`, 'format', () =>\n runFormatter(\n formatter,\n effectiveOptions.mode,\n files,\n extraArgs,\n effectiveOptions.working_directory,\n elideFlags\n )\n )\n )\n\n results[formatter] = exitCode\n printOutputModeResult(\n effectiveOptions.output_mode,\n formatter,\n stdout,\n effectiveOptions.output_mode_command,\n extraArgs\n )\n if (effectiveOptions.output_mode === 'file') {\n failedFiles.push(...parseListedFiles(stdout))\n }\n\n if (exitCode !== 0) {\n core.error(`${formatter} check failed (exit code ${exitCode})`, {\n title: 'Format Check Failed'\n })\n } else {\n core.info(`${formatter} check passed`)\n }\n }\n\n const success = Object.values(results).every(code => code === 0)\n const elapsed = Date.now() - startTime\n\n core.setOutput(ActionOutputName.RESULT, success ? 'success' : 'failure')\n core.setOutput(ActionOutputName.FILES_CHECKED, String(totalFiles))\n if (effectiveOptions.output_mode === 'file') {\n core.setOutput(ActionOutputName.FILES_FAILED, failedFiles.join('\\n'))\n }\n\n recordMetric('format.duration_ms', elapsed, 'millisecond', {\n formatter: effectiveOptions.formatter,\n mode: effectiveOptions.mode\n })\n\n logEvent('format.exit', {\n status: success ? 'success' : 'failure',\n formatter: effectiveOptions.formatter,\n mode: effectiveOptions.mode\n })\n\n await writeSummary(\n formatters,\n results as Record,\n totalFiles,\n success,\n elapsed\n )\n\n if (!success) {\n const failed = Object.entries(results)\n .filter(([, code]) => code !== 0)\n .map(([f]) => `elide ${f}`)\n .join(', ')\n const message = `Format check failed. Run locally to fix: ${failed}`\n\n if (effectiveOptions.fail_on_error) {\n core.setFailed(message)\n } else {\n core.warning(message, { title: 'Format Check Failed' })\n }\n }\n })\n } catch (error) {\n if (error instanceof Error) {\n reportError(error)\n core.error(error.message, { title: 'Action Failed' })\n core.setFailed(error.message)\n }\n } finally {\n await flushTelemetry()\n }\n}\n", + "import * as core from '@actions/core'\n\nexport enum OptionName {\n FORMATTER = 'formatter',\n MODE = 'mode',\n FILES = 'files',\n EXCLUDE = 'exclude',\n WORKING_DIRECTORY = 'working-directory',\n GJF_ARGS = 'gjf-args',\n KTFMT_ARGS = 'ktfmt-args',\n INCLUDE_KTS = 'include-kts',\n FAIL_ON_ERROR = 'fail-on-error',\n TELEMETRY = 'telemetry',\n OUTPUT_MODE = 'output-mode',\n OUTPUT_MODE_DIFFS = 'output-mode-diffs',\n OUTPUT_MODE_COMMAND = 'output-mode-command'\n}\n\nexport type FormatterChoice = 'javaformat' | 'ktfmt' | 'all'\nexport type FormatMode = 'check' | 'write'\nexport type OutputMode = 'none' | 'file' | 'diff' | 'command'\n\nexport interface ElideFormatActionOptions {\n formatter: FormatterChoice\n mode: FormatMode\n // Empty array means no explicit files — scan by extension.\n files: string[]\n // Paths or glob patterns to exclude from formatting.\n exclude: string[]\n working_directory: string\n gjf_args: string[]\n ktfmt_args: string[]\n include_kts: boolean\n fail_on_error: boolean\n telemetry: boolean\n output_mode: OutputMode\n output_mode_diffs: number | null\n output_mode_command: string | null\n}\n\nexport const defaults: ElideFormatActionOptions = {\n formatter: 'all',\n mode: 'check',\n files: [],\n exclude: [],\n working_directory: process.env.GITHUB_WORKSPACE ?? process.cwd(),\n gjf_args: [],\n ktfmt_args: [],\n include_kts: false,\n fail_on_error: true,\n telemetry: true,\n output_mode: 'none',\n output_mode_diffs: null,\n output_mode_command: null\n}\n\nexport function normalizeFormatter(value: string): FormatterChoice {\n switch (value.trim().toLowerCase()) {\n case 'google-java-format':\n case 'javaformat':\n case 'gjf':\n return 'javaformat'\n case 'ktfmt':\n return 'ktfmt'\n default:\n return 'all'\n }\n}\n\nexport function normalizeMode(value: string): FormatMode {\n switch (value.trim().toLowerCase()) {\n case 'write':\n case 'format':\n return 'write'\n default:\n return 'check'\n }\n}\n\nexport function normalizeOutputMode(value: string): OutputMode {\n switch (value.trim().toLowerCase()) {\n case 'file':\n return 'file'\n case 'diff':\n return 'diff'\n case 'command':\n return 'command'\n default:\n return 'none'\n }\n}\n\nexport function parseArgs(value: string): string[] {\n return value.trim().split(/\\s+/).filter(Boolean)\n}\n\nexport function parseFiles(value: string): string[] {\n return value\n .trim()\n .split(/[\\s\\n]+/)\n .filter(Boolean)\n}\n\nexport default function buildOptions(\n opts?: Partial\n): ElideFormatActionOptions {\n return { ...defaults, ...opts }\n}\n\nfunction booleanInput(name: string, defaultValue: boolean): boolean {\n try {\n return core.getBooleanInput(name)\n } catch {\n return defaultValue\n }\n}\n\nfunction stringInput(name: string, defaultValue?: string): string | undefined {\n const value = core.getInput(name)\n return value || defaultValue || undefined\n}\n\nfunction integerInput(name: string): number | null {\n const value = core.getInput(name).trim()\n if (!value) return null\n if (!/^\\d+$/.test(value) || parseInt(value, 10) <= 0) {\n throw new Error(\n `invalid value for '${name}': must be a positive integer, got '${value}'`\n )\n }\n return parseInt(value, 10)\n}\n\nexport function buildOptionsFromInputs(): ElideFormatActionOptions {\n return buildOptions({\n formatter: normalizeFormatter(\n stringInput(OptionName.FORMATTER, 'all') as string\n ),\n mode: normalizeMode(stringInput(OptionName.MODE, 'check') as string),\n files: parseFiles(stringInput(OptionName.FILES, '') ?? ''),\n exclude: parseFiles(stringInput(OptionName.EXCLUDE, '') ?? ''),\n working_directory: stringInput(\n OptionName.WORKING_DIRECTORY,\n defaults.working_directory\n ) as string,\n gjf_args: parseArgs(stringInput(OptionName.GJF_ARGS, '') ?? ''),\n ktfmt_args: parseArgs(stringInput(OptionName.KTFMT_ARGS, '') ?? ''),\n include_kts: booleanInput(OptionName.INCLUDE_KTS, false),\n fail_on_error: booleanInput(OptionName.FAIL_ON_ERROR, true),\n telemetry: booleanInput(OptionName.TELEMETRY, true),\n output_mode: normalizeOutputMode(\n stringInput(OptionName.OUTPUT_MODE, 'none') as string\n ),\n output_mode_diffs: integerInput(OptionName.OUTPUT_MODE_DIFFS),\n output_mode_command: stringInput(OptionName.OUTPUT_MODE_COMMAND) ?? null\n })\n}\n", + "import * as core from '@actions/core'\nimport * as exec from '@actions/exec'\nimport { writeFileSync, unlinkSync } from 'node:fs'\nimport os from 'node:os'\nimport path from 'node:path'\nimport type { FormatMode } from './options'\n\nexport type FormatterName = 'javaformat' | 'ktfmt'\n\nconst CHECK_FLAGS: Record = {\n javaformat: ['--dry-run', '--set-exit-if-changed'],\n ktfmt: ['--dry-run', '--set-exit-if-changed']\n}\n\nexport const WRITE_FLAGS: Record = {\n javaformat: ['-r'],\n ktfmt: []\n}\n\nexport function buildFormatterArgs(\n formatter: FormatterName,\n mode: FormatMode,\n files: string[],\n extraArgs: string[],\n elideFlags: string[] = []\n): string[] {\n return [\n formatter,\n ...elideFlags,\n '--',\n ...(mode === 'check' ? CHECK_FLAGS[formatter] : WRITE_FLAGS[formatter]),\n ...extraArgs,\n ...files\n ]\n}\n\nexport async function runFormatter(\n formatter: FormatterName,\n mode: FormatMode,\n files: string[],\n extraArgs: string[],\n cwd: string,\n elideFlags: string[] = []\n): Promise<{ exitCode: number; stdout: string }> {\n const tempDir = process.env.RUNNER_TEMP ?? os.tmpdir()\n const argfilePath = path.join(tempDir, `format-${formatter}.txt`)\n\n writeFileSync(argfilePath, files.join('\\n'), 'utf-8')\n const execArgs = buildFormatterArgs(\n formatter,\n mode,\n [`@${argfilePath}`],\n extraArgs,\n elideFlags\n )\n\n let capturedStdout = ''\n const listeners =\n elideFlags.length > 0\n ? {\n stdout: (data: Buffer) => {\n capturedStdout += data.toString()\n }\n }\n : undefined\n\n core.debug(`Running: elide ${formatter} on ${files.length} files`)\n try {\n const exitCode = await exec.exec('elide', execArgs, {\n cwd,\n ignoreReturnCode: true,\n listeners\n })\n return { exitCode, stdout: capturedStdout }\n } finally {\n try {\n unlinkSync(argfilePath)\n } catch {}\n }\n}\n", + "const DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n", + "const SDK_VERSION = \"10.63.0\" ;\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n", + "const GLOBAL_OBJ = globalThis;\n\nexport { GLOBAL_OBJ };\n//# sourceMappingURL=worldwide.js.map\n", + "import { SDK_VERSION } from './utils/version.js';\nimport { GLOBAL_OBJ } from './utils/worldwide.js';\n\nfunction getMainCarrier() {\n getSentryCarrier(GLOBAL_OBJ);\n return GLOBAL_OBJ;\n}\nfunction getSentryCarrier(carrier) {\n const __SENTRY__ = carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n __SENTRY__.version = __SENTRY__.version || SDK_VERSION;\n return __SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {};\n}\nfunction getGlobalSingleton(name, creator, obj = GLOBAL_OBJ) {\n const __SENTRY__ = obj.__SENTRY__ = obj.__SENTRY__ || {};\n const carrier = __SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {};\n return carrier[name] || (carrier[name] = creator());\n}\n\nexport { getGlobalSingleton, getMainCarrier, getSentryCarrier };\n//# sourceMappingURL=carrier.js.map\n", + "import { getGlobalSingleton } from '../carrier.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst CONSOLE_LEVELS = [\n \"debug\",\n \"info\",\n \"warn\",\n \"error\",\n \"log\",\n \"assert\",\n \"trace\"\n];\nconst PREFIX = \"Sentry Logger \";\nconst originalConsoleMethods = {};\nfunction consoleSandbox(callback) {\n if (!(\"console\" in GLOBAL_OBJ)) {\n return callback();\n }\n const console = GLOBAL_OBJ.console;\n const wrappedFuncs = {};\n const wrappedLevels = Object.keys(originalConsoleMethods);\n wrappedLevels.forEach((level) => {\n const originalConsoleMethod = originalConsoleMethods[level];\n wrappedFuncs[level] = console[level];\n console[level] = originalConsoleMethod;\n });\n try {\n return callback();\n } finally {\n wrappedLevels.forEach((level) => {\n console[level] = wrappedFuncs[level];\n });\n }\n}\nfunction enable() {\n _getLoggerSettings().enabled = true;\n}\nfunction disable() {\n _getLoggerSettings().enabled = false;\n}\nfunction isEnabled() {\n return _getLoggerSettings().enabled;\n}\nfunction log(...args) {\n _maybeLog(\"log\", ...args);\n}\nfunction warn(...args) {\n _maybeLog(\"warn\", ...args);\n}\nfunction error(...args) {\n _maybeLog(\"error\", ...args);\n}\nfunction _maybeLog(level, ...args) {\n if (!DEBUG_BUILD) {\n return;\n }\n if (isEnabled()) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[level](`${PREFIX}[${level}]:`, ...args);\n });\n }\n}\nfunction _getLoggerSettings() {\n if (!DEBUG_BUILD) {\n return { enabled: false };\n }\n return getGlobalSingleton(\"loggerSettings\", () => ({ enabled: false }));\n}\nconst debug = {\n /** Enable logging. */\n enable,\n /** Disable logging. */\n disable,\n /** Check if logging is enabled. */\n isEnabled,\n /** Log a message. */\n log,\n /** Log a warning. */\n warn,\n /** Log an error. */\n error\n};\n\nexport { CONSOLE_LEVELS, consoleSandbox, debug, originalConsoleMethods };\n//# sourceMappingURL=debug-logger.js.map\n", + "const objectToString = Object.prototype.toString;\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case \"[object Error]\":\n case \"[object Exception]\":\n case \"[object DOMException]\":\n case \"[object WebAssembly.Exception]\":\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\nfunction isBuiltin(wat, className) {\n return objectToString.call(wat) === `[object ${className}]`;\n}\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, \"ErrorEvent\");\n}\nfunction isDOMError(wat) {\n return isBuiltin(wat, \"DOMError\");\n}\nfunction isDOMException(wat) {\n return isBuiltin(wat, \"DOMException\");\n}\nfunction isString(wat) {\n return isBuiltin(wat, \"String\");\n}\nfunction isParameterizedString(wat) {\n return typeof wat === \"object\" && wat !== null && \"__sentry_template_string__\" in wat && \"__sentry_template_values__\" in wat;\n}\nfunction isPrimitive(wat) {\n return wat === null || isParameterizedString(wat) || typeof wat !== \"object\" && typeof wat !== \"function\";\n}\nfunction isPlainObject(wat) {\n return isBuiltin(wat, \"Object\");\n}\nfunction isEvent(wat) {\n return typeof Event !== \"undefined\" && isInstanceOf(wat, Event);\n}\nfunction isElement(wat) {\n return typeof Element !== \"undefined\" && isInstanceOf(wat, Element);\n}\nfunction isRegExp(wat) {\n return isBuiltin(wat, \"RegExp\");\n}\nfunction isThenable(wat) {\n return Boolean(wat?.then && typeof wat.then === \"function\");\n}\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && \"nativeEvent\" in wat && \"preventDefault\" in wat && \"stopPropagation\" in wat;\n}\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch {\n return false;\n }\n}\nfunction isVueViewModel(wat) {\n return !!(typeof wat === \"object\" && wat !== null && (wat.__isVue || wat._isVue || wat.__v_isVNode));\n}\nfunction isRequest(request) {\n return typeof Request !== \"undefined\" && isInstanceOf(request, Request);\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isParameterizedString, isPlainObject, isPrimitive, isRegExp, isRequest, isString, isSyntheticEvent, isThenable, isVueViewModel };\n//# sourceMappingURL=is.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isError, isEvent, isPrimitive } from './is.js';\n\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n const original = source[name];\n if (typeof original !== \"function\") {\n return;\n }\n const wrapped = replacementFactory(original);\n if (typeof wrapped === \"function\") {\n markFunctionWrapped(wrapped, original);\n }\n try {\n source[name] = wrapped;\n } catch {\n DEBUG_BUILD && debug.log(`Failed to replace method \"${name}\" in object`, source);\n }\n}\nfunction addNonEnumerableProperty(obj, name, value) {\n try {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value,\n writable: true,\n configurable: true\n });\n } catch {\n DEBUG_BUILD && debug.log(`Failed to add non-enumerable property \"${String(name)}\" to object`, obj);\n }\n}\nfunction markFunctionWrapped(wrapped, original) {\n try {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, \"__sentry_original__\", original);\n } catch {\n }\n}\nfunction wrapMethod(obj, field, wrapped, enumerable = true) {\n const original = obj[field];\n if (typeof original !== \"function\") {\n throw new Error(`Cannot wrap method: ${field} is not a function`);\n }\n if (getOriginalFunction(original)) {\n throw new Error(`Attempting to wrap method ${field} multiple times`);\n }\n markFunctionWrapped(wrapped, original);\n Object.defineProperty(obj, field, {\n writable: true,\n configurable: true,\n enumerable,\n value: wrapped\n });\n}\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\nfunction convertToPlainObject(value) {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value)\n };\n }\n if (isEvent(value)) {\n const { type, target, currentTarget, detail } = value;\n return {\n type,\n target,\n currentTarget,\n ...detail ? { detail } : {},\n ...getOwnProperties(value)\n };\n }\n return value;\n}\nfunction getOwnProperties(obj) {\n if (typeof obj === \"object\" && obj !== null) {\n return Object.fromEntries(Object.entries(obj));\n }\n return {};\n}\nfunction extractExceptionKeysForMessage(exception) {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n return !keys[0] ? \"[object has no keys]\" : keys.join(\", \");\n}\nfunction dropUndefinedKeys(inputValue) {\n const memoizationMap = /* @__PURE__ */ new Map();\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (inputValue === null || typeof inputValue !== \"object\") {\n return inputValue;\n }\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== void 0) {\n return memoVal;\n }\n if (Array.isArray(inputValue)) {\n const returnValue = [];\n memoizationMap.set(inputValue, returnValue);\n inputValue.forEach((value) => {\n returnValue.push(_dropUndefinedKeys(value, memoizationMap));\n });\n return returnValue;\n }\n if (isPojo(inputValue)) {\n const returnValue = {};\n memoizationMap.set(inputValue, returnValue);\n const keys = Object.keys(inputValue);\n keys.forEach((key) => {\n const val = inputValue[key];\n if (val !== void 0) {\n returnValue[key] = _dropUndefinedKeys(val, memoizationMap);\n }\n });\n return returnValue;\n }\n return inputValue;\n}\nfunction isPojo(input) {\n const constructor = input.constructor;\n return constructor === Object || constructor === void 0;\n}\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n // this will catch both undefined and null\n case wat == void 0:\n objectified = new String(wat);\n break;\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case (typeof wat === \"symbol\" || typeof wat === \"bigint\"):\n objectified = Object(wat);\n break;\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n objectified = new wat.constructor(wat);\n break;\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, wrapMethod };\n//# sourceMappingURL=object.js.map\n", + "import { GLOBAL_OBJ } from './worldwide.js';\n\nfunction makeWeakRef(value) {\n try {\n const WeakRefImpl = GLOBAL_OBJ.WeakRef;\n if (typeof WeakRefImpl === \"function\") {\n return new WeakRefImpl(value);\n }\n } catch {\n }\n return value;\n}\nfunction derefWeakRef(ref) {\n if (!ref) {\n return void 0;\n }\n if (typeof ref === \"object\" && \"deref\" in ref && typeof ref.deref === \"function\") {\n try {\n return ref.deref();\n } catch {\n return void 0;\n }\n }\n return ref;\n}\n\nexport { derefWeakRef, makeWeakRef };\n//# sourceMappingURL=weakRef.js.map\n", + "import { addNonEnumerableProperty } from '../utils/object.js';\nimport { derefWeakRef, makeWeakRef } from '../utils/weakRef.js';\n\nconst SCOPE_ON_START_SPAN_FIELD = \"_sentryScope\";\nconst ISOLATION_SCOPE_ON_START_SPAN_FIELD = \"_sentryIsolationScope\";\nconst OTEL_SOURCE_INFERENCE_SPAN_FIELD = /* @__PURE__ */ Symbol.for(\"sentry.otelSourceInference\");\nfunction setCapturedScopesOnSpan(span, scope, isolationScope) {\n if (span) {\n addNonEnumerableProperty(span, ISOLATION_SCOPE_ON_START_SPAN_FIELD, makeWeakRef(isolationScope));\n addNonEnumerableProperty(span, SCOPE_ON_START_SPAN_FIELD, scope);\n }\n}\nfunction getCapturedScopesOnSpan(span) {\n const spanWithScopes = span;\n return {\n scope: spanWithScopes[SCOPE_ON_START_SPAN_FIELD],\n isolationScope: derefWeakRef(spanWithScopes[ISOLATION_SCOPE_ON_START_SPAN_FIELD])\n };\n}\nfunction markSpanForOtelSourceInference(span) {\n addNonEnumerableProperty(span, OTEL_SOURCE_INFERENCE_SPAN_FIELD, true);\n}\nfunction spanShouldInferOtelSource(span) {\n return span[OTEL_SOURCE_INFERENCE_SPAN_FIELD] === true;\n}\n\nexport { getCapturedScopesOnSpan, markSpanForOtelSourceInference, setCapturedScopesOnSpan, spanShouldInferOtelSource };\n//# sourceMappingURL=utils.js.map\n", + "const SPAN_STATUS_UNSET = 0;\nconst SPAN_STATUS_OK = 1;\nconst SPAN_STATUS_ERROR = 2;\nfunction getSpanStatusFromHttpCode(httpStatus) {\n if (httpStatus < 400 && httpStatus >= 100) {\n return { code: SPAN_STATUS_OK };\n }\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return { code: SPAN_STATUS_ERROR, message: \"unauthenticated\" };\n case 403:\n return { code: SPAN_STATUS_ERROR, message: \"permission_denied\" };\n case 404:\n return { code: SPAN_STATUS_ERROR, message: \"not_found\" };\n case 409:\n return { code: SPAN_STATUS_ERROR, message: \"already_exists\" };\n case 413:\n return { code: SPAN_STATUS_ERROR, message: \"failed_precondition\" };\n case 429:\n return { code: SPAN_STATUS_ERROR, message: \"resource_exhausted\" };\n case 499:\n return { code: SPAN_STATUS_ERROR, message: \"cancelled\" };\n default:\n return { code: SPAN_STATUS_ERROR, message: \"invalid_argument\" };\n }\n }\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return { code: SPAN_STATUS_ERROR, message: \"unimplemented\" };\n case 503:\n return { code: SPAN_STATUS_ERROR, message: \"unavailable\" };\n case 504:\n return { code: SPAN_STATUS_ERROR, message: \"deadline_exceeded\" };\n default:\n return { code: SPAN_STATUS_ERROR, message: \"internal_error\" };\n }\n }\n return { code: SPAN_STATUS_ERROR, message: \"internal_error\" };\n}\nfunction setHttpStatus(span, httpStatus) {\n span.setAttribute(\"http.response.status_code\", httpStatus);\n const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n if (spanStatus.message !== \"unknown_error\") {\n span.setStatus(spanStatus);\n }\n}\n\nexport { SPAN_STATUS_ERROR, SPAN_STATUS_OK, SPAN_STATUS_UNSET, getSpanStatusFromHttpCode, setHttpStatus };\n//# sourceMappingURL=spanstatus.js.map\n", + "import { GLOBAL_OBJ } from './worldwide.js';\n\nlet RESOLVED_RUNNER;\nfunction withRandomSafeContext(cb) {\n if (RESOLVED_RUNNER !== void 0) {\n return RESOLVED_RUNNER ? RESOLVED_RUNNER(cb) : cb();\n }\n const sym = /* @__PURE__ */ Symbol.for(\"__SENTRY_SAFE_RANDOM_ID_WRAPPER__\");\n const globalWithSymbol = GLOBAL_OBJ;\n if (sym in globalWithSymbol && typeof globalWithSymbol[sym] === \"function\") {\n RESOLVED_RUNNER = globalWithSymbol[sym];\n return RESOLVED_RUNNER(cb);\n }\n RESOLVED_RUNNER = null;\n return cb();\n}\nfunction safeMathRandom() {\n return withRandomSafeContext(() => Math.random());\n}\nfunction safeDateNow() {\n return withRandomSafeContext(() => Date.now());\n}\n\nexport { safeDateNow, safeMathRandom, withRandomSafeContext };\n//# sourceMappingURL=randomSafeContext.js.map\n", + "import { addNonEnumerableProperty } from './object.js';\n\nconst SENTRY_SKIP_NORMALIZATION = /* @__PURE__ */ Symbol.for(\"sentry.skipNormalization\");\nconst SENTRY_OVERRIDE_NORMALIZATION_DEPTH = /* @__PURE__ */ Symbol.for(\"sentry.overrideNormalizationDepth\");\nfunction setSkipNormalizationHint(obj) {\n addNonEnumerableProperty(obj, SENTRY_SKIP_NORMALIZATION, true);\n}\nfunction setNormalizationDepthOverrideHint(obj, depth) {\n addNonEnumerableProperty(obj, SENTRY_OVERRIDE_NORMALIZATION_DEPTH, depth);\n}\nfunction hasSkipNormalizationHint(value) {\n return Boolean(value[SENTRY_SKIP_NORMALIZATION]);\n}\nfunction getNormalizationDepthOverrideHint(value) {\n const v = value[SENTRY_OVERRIDE_NORMALIZATION_DEPTH];\n return typeof v === \"number\" ? v : void 0;\n}\n\nexport { getNormalizationDepthOverrideHint, hasSkipNormalizationHint, setNormalizationDepthOverrideHint, setSkipNormalizationHint };\n//# sourceMappingURL=normalizationHints.js.map\n", + "const STACKTRACE_FRAME_LIMIT = 50;\nconst UNKNOWN_FUNCTION = \"?\";\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\nfunction createStackParser(...parsers) {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map((p) => p[1]);\n return (stack, skipFirstLines = 0, framesToPop = 0) => {\n const frames = [];\n const lines = stack.split(\"\\n\");\n for (let i = skipFirstLines; i < lines.length; i++) {\n let line = lines[i];\n if (line.length > 1024) {\n line = line.slice(0, 1024);\n }\n const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, \"$1\") : line;\n if (cleanedLine.includes(\"Error: \")) {\n continue;\n }\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n if (frames.length >= STACKTRACE_FRAME_LIMIT + framesToPop) {\n break;\n }\n }\n return stripSentryFramesAndReverse(frames.slice(framesToPop));\n };\n}\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n const localStack = Array.from(stack);\n if (/sentryWrapped/.test(getLastStackFrame(localStack).function || \"\")) {\n localStack.pop();\n }\n localStack.reverse();\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || \"\")) {\n localStack.pop();\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || \"\")) {\n localStack.pop();\n }\n }\n return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map((frame) => ({\n ...frame,\n filename: frame.filename || getLastStackFrame(localStack).filename,\n function: frame.function || UNKNOWN_FUNCTION\n }));\n}\nfunction getLastStackFrame(arr) {\n return arr[arr.length - 1] || {};\n}\nconst defaultFunctionName = \"\";\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== \"function\") {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch {\n return defaultFunctionName;\n }\n}\nfunction getFramesFromEvent(event) {\n const exception = event.exception;\n if (exception) {\n const frames = [];\n try {\n exception.values.forEach((value) => {\n if (value.stacktrace.frames) {\n frames.push(...value.stacktrace.frames);\n }\n });\n return frames;\n } catch {\n return void 0;\n }\n }\n return void 0;\n}\nfunction normalizeStackTracePath(path) {\n let filename = path?.startsWith(\"file://\") ? path.slice(7) : path;\n if (filename?.match(/\\/[A-Z]:/)) {\n filename = filename.slice(1);\n }\n return filename;\n}\n\nexport { UNKNOWN_FUNCTION, createStackParser, getFramesFromEvent, getFunctionName, normalizeStackTracePath, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n", + "import { hasSkipNormalizationHint, getNormalizationDepthOverrideHint } from './normalizationHints.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\nlet stringifier;\nfunction setNormalizeStringifier(newStringifier) {\n stringifier = newStringifier;\n}\nfunction normalize(input, depth = 100, maxProperties = Infinity) {\n try {\n return visit(\"\", input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\nfunction normalizeToSize(object, depth = 3, maxSize = 100 * 1024) {\n const normalized = normalize(object, depth);\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n return normalized;\n}\nfunction visit(key, value, depth = Infinity, maxProperties = Infinity, memo = memoBuilder()) {\n const [memoize, unmemoize] = memo;\n if (value == null || // this matches null and undefined -> eqeq not eqeqeq\n [\"boolean\", \"string\"].includes(typeof value) || typeof value === \"number\" && Number.isFinite(value)) {\n return value;\n }\n const stringified = stringifyValue(key, value);\n if (!stringified.startsWith(\"[object \")) {\n return stringified;\n }\n if (hasSkipNormalizationHint(value)) {\n return value;\n }\n const overrideDepth = getNormalizationDepthOverrideHint(value);\n const remainingDepth = overrideDepth !== void 0 ? overrideDepth : depth;\n if (remainingDepth === 0) {\n return stringified.replace(\"object \", \"\");\n }\n if (memoize(value)) {\n return \"[Circular ~]\";\n }\n const valueWithToJSON = value;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === \"function\") {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n return visit(\"\", jsonValue, remainingDepth - 1, maxProperties, memo);\n } catch {\n }\n }\n const normalized = Array.isArray(value) ? [] : {};\n let numAdded = 0;\n const visitable = convertToPlainObject(value);\n for (const visitKey in visitable) {\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n if (numAdded >= maxProperties) {\n normalized[visitKey] = \"[MaxProperties ~]\";\n break;\n }\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n numAdded++;\n }\n unmemoize(value);\n return normalized;\n}\nfunction stringifyValue(key, value) {\n try {\n if (stringifier) {\n const stringified = stringifier(value);\n if (stringified) {\n return stringified;\n }\n }\n if (typeof global !== \"undefined\" && value === global) {\n return \"[Global]\";\n }\n if (typeof value === \"number\" && !Number.isFinite(value)) {\n return `[${value}]`;\n }\n if (typeof value === \"function\") {\n return `[Function: ${getFunctionName(value)}]`;\n }\n if (typeof value === \"symbol\") {\n return `[${String(value)}]`;\n }\n if (typeof value === \"bigint\") {\n return `[BigInt: ${String(value)}]`;\n }\n const objName = getConstructorName(value);\n return `[object ${objName}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\nfunction getConstructorName(value) {\n const prototype = Object.getPrototypeOf(value);\n return prototype?.constructor ? prototype.constructor.name : \"null prototype\";\n}\nfunction utf8Length(value) {\n return ~-encodeURI(value).split(/%..|./).length;\n}\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\nfunction normalizeUrlToBase(url, basePath) {\n const escapedBase = basePath.replace(/\\\\/g, \"/\").replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\");\n let newUrl = url;\n try {\n newUrl = decodeURI(url);\n } catch {\n }\n return newUrl.replace(/\\\\/g, \"/\").replace(/webpack:\\/?/g, \"\").replace(new RegExp(`(file://)?/*${escapedBase}/*`, \"ig\"), \"app:///\");\n}\nfunction memoBuilder() {\n const inner = /* @__PURE__ */ new WeakSet();\n function memoize(obj) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n function unmemoize(obj) {\n inner.delete(obj);\n }\n return [memoize, unmemoize];\n}\n\nexport { normalize, normalizeToSize, normalizeUrlToBase, setNormalizeStringifier, stringifyValue };\n//# sourceMappingURL=normalize.js.map\n", + "import { isString, isRegExp, isPrimitive } from './is.js';\nimport { stringifyValue } from './normalize.js';\n\nfunction truncate(str, max = 0) {\n if (typeof str !== \"string\" || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\nfunction snipLine(line, colno) {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n colno = lineLength;\n }\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += \" {snip}\";\n }\n return newLine;\n}\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return \"\";\n }\n const output = [];\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n if (isPrimitive(value)) {\n output.push(String(value));\n } else if (value instanceof Error) {\n output.push(value.message ? `${value.name}: ${value.message}` : value.name);\n } else {\n output.push(stringifyValue(void 0, value));\n }\n }\n return output.join(delimiter);\n}\nfunction isMatchingPattern(value, pattern, requireExactStringMatch = false) {\n if (!isString(value)) {\n return false;\n }\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n if (typeof pattern === \"function\") {\n return pattern(value);\n }\n return false;\n}\nfunction stringMatchesSomePattern(testString, patterns = [], requireExactStringMatch = false) {\n for (const pattern of patterns) {\n if (isMatchingPattern(testString, pattern, requireExactStringMatch)) {\n return true;\n }\n }\n return false;\n}\n\nexport { isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, truncate };\n//# sourceMappingURL=string.js.map\n", + "import { addNonEnumerableProperty } from './object.js';\nimport { withRandomSafeContext, safeMathRandom } from './randomSafeContext.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nfunction getCrypto() {\n const gbl = GLOBAL_OBJ;\n return gbl.crypto || gbl.msCrypto;\n}\nlet emptyUuid;\nfunction getRandomByte() {\n return safeMathRandom() * 16;\n}\nfunction uuid4(crypto = getCrypto()) {\n try {\n if (crypto?.randomUUID) {\n return withRandomSafeContext(() => crypto.randomUUID()).replace(/-/g, \"\");\n }\n } catch {\n }\n if (!emptyUuid) {\n emptyUuid = \"10000000100040008000\" + 1e11;\n }\n return emptyUuid.replace(\n /[018]/g,\n (c) => (\n // eslint-disable-next-line no-bitwise\n (c ^ (getRandomByte() & 15) >> c / 4).toString(16)\n )\n );\n}\nfunction getFirstException(event) {\n return event.exception?.values?.[0];\n}\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || \"\";\n }\n return eventId || \"\";\n}\nfunction addExceptionTypeValue(event, value, type) {\n const exception = event.exception = event.exception || {};\n const values = exception.values = exception.values || [];\n const firstException = values[0] = values[0] || {};\n if (!firstException.value) {\n firstException.value = value || \"\";\n }\n if (!firstException.type) {\n firstException.type = type || \"Error\";\n }\n}\nfunction addExceptionMechanism(event, newMechanism) {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n const defaultMechanism = { type: \"generic\", handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n if (newMechanism && \"data\" in newMechanism) {\n const mergedData = { ...currentMechanism?.data, ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\nconst SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nfunction _parseInt(input) {\n return parseInt(input || \"\", 10);\n}\nfunction parseSemver(input) {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = _parseInt(match[1]);\n const minor = _parseInt(match[2]);\n const patch = _parseInt(match[3]);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? void 0 : major,\n minor: isNaN(minor) ? void 0 : minor,\n patch: isNaN(patch) ? void 0 : patch,\n prerelease: match[4]\n };\n}\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n if (frame.lineno === void 0) {\n return;\n }\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n frame.pre_context = lines.slice(Math.max(0, sourceLine - linesOfContext), sourceLine).map((line) => snipLine(line, 0));\n const lineIndex = Math.min(maxLines - 1, sourceLine);\n frame.context_line = snipLine(lines[lineIndex], frame.colno || 0);\n frame.post_context = lines.slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext).map((line) => snipLine(line, 0));\n}\nfunction checkOrSetAlreadyCaught(exception) {\n if (isAlreadyCaptured(exception)) {\n return true;\n }\n try {\n addNonEnumerableProperty(exception, \"__sentry_captured__\", true);\n } catch {\n }\n return false;\n}\nfunction isAlreadyCaptured(exception) {\n try {\n return exception.__sentry_captured__;\n } catch {\n }\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, checkOrSetAlreadyCaught, getEventDescription, isAlreadyCaptured, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n", + "import { safeDateNow, withRandomSafeContext } from './randomSafeContext.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst ONE_SECOND_IN_MS = 1e3;\nfunction dateTimestampInSeconds() {\n return safeDateNow() / ONE_SECOND_IN_MS;\n}\nfunction createUnixTimestampInSecondsFunc() {\n const { performance } = GLOBAL_OBJ;\n if (!performance?.now || !performance.timeOrigin) {\n return dateTimestampInSeconds;\n }\n const timeOrigin = performance.timeOrigin;\n return () => {\n return (timeOrigin + withRandomSafeContext(() => performance.now())) / ONE_SECOND_IN_MS;\n };\n}\nlet _cachedTimestampInSeconds;\nfunction timestampInSeconds() {\n const func = _cachedTimestampInSeconds ?? (_cachedTimestampInSeconds = createUnixTimestampInSecondsFunc());\n return func();\n}\nlet cachedTimeOrigin = null;\nfunction getBrowserTimeOrigin() {\n const { performance } = GLOBAL_OBJ;\n if (!performance?.now) {\n return void 0;\n }\n const threshold = 3e5;\n const performanceNow = withRandomSafeContext(() => performance.now());\n const dateNow = safeDateNow();\n const timeOrigin = performance.timeOrigin;\n if (typeof timeOrigin === \"number\") {\n const timeOriginDelta = Math.abs(timeOrigin + performanceNow - dateNow);\n if (timeOriginDelta < threshold) {\n return timeOrigin;\n }\n }\n const navigationStart = performance.timing?.navigationStart;\n if (typeof navigationStart === \"number\") {\n const navigationStartDelta = Math.abs(navigationStart + performanceNow - dateNow);\n if (navigationStartDelta < threshold) {\n return navigationStart;\n }\n }\n return dateNow - performanceNow;\n}\nfunction browserPerformanceTimeOrigin() {\n if (cachedTimeOrigin === null) {\n cachedTimeOrigin = getBrowserTimeOrigin();\n }\n return cachedTimeOrigin;\n}\n\nexport { browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds };\n//# sourceMappingURL=time.js.map\n", + "import { uuid4 } from './utils/misc.js';\nimport { timestampInSeconds } from './utils/time.js';\n\nfunction makeSession(context) {\n const startingTime = timestampInSeconds();\n const session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: \"ok\",\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session)\n };\n if (context) {\n updateSession(session, context);\n }\n return session;\n}\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n session.timestamp = context.timestamp || timestampInSeconds();\n if (context.abnormal_mechanism) {\n session.abnormal_mechanism = context.abnormal_mechanism;\n }\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== void 0) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === \"number\") {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = void 0;\n } else if (typeof context.duration === \"number\") {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === \"number\") {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === \"ok\") {\n context = { status: \"exited\" };\n }\n updateSession(session, context);\n}\nfunction sessionToJSON(session) {\n return {\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1e3).toISOString(),\n timestamp: new Date(session.timestamp * 1e3).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === \"number\" || typeof session.did === \"string\" ? `${session.did}` : void 0,\n duration: session.duration,\n abnormal_mechanism: session.abnormal_mechanism,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent\n }\n };\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n", + "function merge(initialObj, mergeObj, levels = 2) {\n if (!mergeObj || typeof mergeObj !== \"object\" || levels <= 0) {\n return mergeObj;\n }\n if (initialObj && Object.keys(mergeObj).length === 0) {\n return initialObj;\n }\n const output = { ...initialObj };\n for (const key in mergeObj) {\n if (Object.prototype.hasOwnProperty.call(mergeObj, key)) {\n output[key] = merge(output[key], mergeObj[key], levels - 1);\n }\n }\n return output;\n}\n\nexport { merge };\n//# sourceMappingURL=merge.js.map\n", + "import { uuid4 } from './misc.js';\n\nfunction generateTraceId() {\n return uuid4();\n}\nfunction generateSpanId() {\n return uuid4().substring(16);\n}\n\nexport { generateSpanId, generateTraceId };\n//# sourceMappingURL=propagationContext.js.map\n", + "import { addNonEnumerableProperty } from './object.js';\nimport { makeWeakRef, derefWeakRef } from './weakRef.js';\n\nconst SCOPE_SPAN_FIELD = \"_sentrySpan\";\nfunction _setSpanForScope(scope, span) {\n if (span) {\n addNonEnumerableProperty(scope, SCOPE_SPAN_FIELD, makeWeakRef(span));\n } else {\n delete scope[SCOPE_SPAN_FIELD];\n }\n}\nfunction _getSpanForScope(scope) {\n return derefWeakRef(scope[SCOPE_SPAN_FIELD]);\n}\n\nexport { _getSpanForScope, _setSpanForScope };\n//# sourceMappingURL=spanOnScope.js.map\n", + "import { DEBUG_BUILD } from './debug-build.js';\nimport { updateSession } from './session.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isPlainObject } from './utils/is.js';\nimport { merge } from './utils/merge.js';\nimport { uuid4 } from './utils/misc.js';\nimport { generateTraceId } from './utils/propagationContext.js';\nimport { safeMathRandom } from './utils/randomSafeContext.js';\nimport { _setSpanForScope, _getSpanForScope } from './utils/spanOnScope.js';\nimport { truncate } from './utils/string.js';\nimport { dateTimestampInSeconds } from './utils/time.js';\n\nconst DEFAULT_MAX_BREADCRUMBS = 100;\nclass Scope {\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._attributes = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n this._propagationContext = {\n traceId: generateTraceId(),\n sampleRand: safeMathRandom()\n };\n }\n /**\n * Clone all data from this scope into a new scope.\n */\n clone() {\n const newScope = new Scope();\n newScope._breadcrumbs = [...this._breadcrumbs];\n newScope._tags = { ...this._tags };\n newScope._attributes = { ...this._attributes };\n newScope._extra = { ...this._extra };\n newScope._contexts = { ...this._contexts };\n if (this._contexts.flags) {\n newScope._contexts.flags = {\n values: [...this._contexts.flags.values]\n };\n }\n newScope._user = this._user;\n newScope._level = this._level;\n newScope._session = this._session;\n newScope._transactionName = this._transactionName;\n newScope._fingerprint = this._fingerprint;\n newScope._eventProcessors = [...this._eventProcessors];\n newScope._attachments = [...this._attachments];\n newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n newScope._propagationContext = { ...this._propagationContext };\n newScope._client = this._client;\n newScope._lastEventId = this._lastEventId;\n newScope._conversationId = this._conversationId;\n _setSpanForScope(newScope, _getSpanForScope(this));\n return newScope;\n }\n /**\n * Update the client assigned to this scope.\n * Note that not every scope will have a client assigned - isolation scopes & the global scope will generally not have a client,\n * as well as manually created scopes.\n */\n setClient(client) {\n this._client = client;\n }\n /**\n * Set the ID of the last captured error event.\n * This is generally only captured on the isolation scope.\n */\n setLastEventId(lastEventId) {\n this._lastEventId = lastEventId;\n }\n /**\n * Get the client assigned to this scope.\n */\n getClient() {\n return this._client;\n }\n /**\n * Get the ID of the last captured error event.\n * This is generally only available on the isolation scope.\n */\n lastEventId() {\n return this._lastEventId;\n }\n /**\n * @inheritDoc\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n /**\n * Add an event processor that will be called before an event is sent.\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n /**\n * Set the user for this scope.\n * Set to `null` to unset the user.\n */\n setUser(user) {\n this._user = user || {\n email: void 0,\n id: void 0,\n ip_address: void 0,\n username: void 0\n };\n if (this._session) {\n updateSession(this._session, { user });\n }\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Get the user from this scope.\n */\n getUser() {\n return this._user;\n }\n /**\n * Set the conversation ID for this scope.\n * Set to `null` to unset the conversation ID.\n */\n setConversationId(conversationId) {\n this._conversationId = conversationId || void 0;\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Set an object that will be merged into existing tags on the scope,\n * and will be sent as tags data with the event.\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags\n };\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Set a single tag that will be sent as tags data with the event.\n */\n setTag(key, value) {\n return this.setTags({ [key]: value });\n }\n /**\n * Sets attributes onto the scope.\n *\n * These attributes are applied to logs, metrics and streamed spans.\n *\n * Supported attribute value types are `string`, `number`, `boolean`, `string[]`, `number[]` and `boolean[]`.\n *\n * @param newAttributes - The attributes to set on the scope, as key-value pairs.\n *\n * @example\n * ```typescript\n * scope.setAttributes({\n * is_admin: true,\n * payment_selection: 'credit_card',\n * render_duration: 150,\n * });\n * ```\n */\n setAttributes(newAttributes) {\n this._attributes = {\n ...this._attributes,\n ...newAttributes\n };\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Sets an attribute onto the scope.\n *\n * These attributes are applied to logs, metrics and streamed spans.\n *\n * Supported attribute value types are `string`, `number`, `boolean`, `string[]`, `number[]` and `boolean[]`.\n *\n * @param key - The attribute key.\n * @param value - The attribute value.\n *\n * @example\n * ```typescript\n * scope.setAttribute('is_admin', true);\n * scope.setAttribute('render_duration', 150);\n * ```\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setAttribute(key, value) {\n return this.setAttributes({ [key]: value });\n }\n /**\n * Removes the attribute with the given key from the scope.\n *\n * @param key - The attribute key.\n *\n * @example\n * ```typescript\n * scope.removeAttribute('is_admin');\n * ```\n */\n removeAttribute(key) {\n if (key in this._attributes) {\n delete this._attributes[key];\n this._notifyScopeListeners();\n }\n return this;\n }\n /**\n * Set an object that will be merged into existing extra on the scope,\n * and will be sent as extra data with the event.\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras\n };\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Set a single key:value extra entry that will be sent as extra data with the event.\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Sets the fingerprint on the scope to send with the events.\n * @param {string[]} fingerprint Fingerprint to group events in Sentry.\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Sets the level on the scope for future events.\n */\n setLevel(level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Sets the transaction name on the scope so that the name of e.g. taken server route or\n * the page location is attached to future events.\n *\n * IMPORTANT: Calling this function does NOT change the name of the currently active\n * root span. If you want to change the name of the active root span, use\n * `Sentry.updateSpanName(rootSpan, 'new name')` instead.\n *\n * By default, the SDK updates the scope's transaction name automatically on sensible\n * occasions, such as a page navigation or when handling a new request on the server.\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Sets context data with the given name.\n * Data passed as context will be normalized. You can also pass `null` to unset the context.\n * Note that context data will not be merged - calling `setContext` will overwrite an existing context with the same key.\n */\n setContext(key, context) {\n if (context === null) {\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Set the session for the scope.\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Get the session from the scope.\n */\n getSession() {\n return this._session;\n }\n /**\n * Updates the scope with provided data. Can work in three variations:\n * - plain object containing updatable attributes\n * - Scope instance that'll extract the attributes from\n * - callback function that'll receive the current scope as an argument and allow for modifications\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n const scopeToMerge = typeof captureContext === \"function\" ? captureContext(this) : captureContext;\n const scopeInstance = scopeToMerge instanceof Scope ? scopeToMerge.getScopeData() : isPlainObject(scopeToMerge) ? captureContext : void 0;\n const {\n tags,\n attributes,\n extra,\n user,\n contexts,\n level,\n fingerprint = [],\n propagationContext,\n conversationId\n } = scopeInstance || {};\n this._tags = { ...this._tags, ...tags };\n this._attributes = { ...this._attributes, ...attributes };\n this._extra = { ...this._extra, ...extra };\n this._contexts = { ...this._contexts, ...contexts };\n if (user && Object.keys(user).length) {\n this._user = user;\n }\n if (level) {\n this._level = level;\n }\n if (fingerprint.length) {\n this._fingerprint = fingerprint;\n }\n if (propagationContext) {\n this._propagationContext = propagationContext;\n }\n if (conversationId) {\n this._conversationId = conversationId;\n }\n return this;\n }\n /**\n * Clears the current scope and resets its properties.\n * Note: The client will not be cleared.\n */\n clear() {\n this._breadcrumbs = [];\n this._tags = {};\n this._attributes = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = void 0;\n this._transactionName = void 0;\n this._fingerprint = void 0;\n this._session = void 0;\n this._conversationId = void 0;\n _setSpanForScope(this, void 0);\n this._attachments = [];\n this.setPropagationContext({\n traceId: generateTraceId(),\n sampleRand: safeMathRandom()\n });\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Adds a breadcrumb to the scope.\n * By default, the last 100 breadcrumbs are kept.\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n const maxCrumbs = typeof maxBreadcrumbs === \"number\" ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n if (maxCrumbs <= 0) {\n return this;\n }\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n // Breadcrumb messages can theoretically be infinitely large and they're held in memory so we truncate them not to leak (too much) memory\n message: breadcrumb.message ? truncate(breadcrumb.message, 2048) : breadcrumb.message\n };\n this._breadcrumbs.push(mergedBreadcrumb);\n if (this._breadcrumbs.length > maxCrumbs) {\n this._breadcrumbs = this._breadcrumbs.slice(-maxCrumbs);\n this._client?.recordDroppedEvent(\"buffer_overflow\", \"log_item\");\n }\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Get the last breadcrumb of the scope.\n */\n getLastBreadcrumb() {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n /**\n * Clear all breadcrumbs from the scope.\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Add an attachment to the scope.\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n /**\n * Clear all attachments from the scope.\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n /**\n * Get the data of this scope, which should be applied to an event during processing.\n */\n getScopeData() {\n return {\n breadcrumbs: this._breadcrumbs,\n attachments: this._attachments,\n contexts: this._contexts,\n tags: this._tags,\n attributes: this._attributes,\n extra: this._extra,\n user: this._user,\n level: this._level,\n fingerprint: this._fingerprint || [],\n eventProcessors: this._eventProcessors,\n propagationContext: this._propagationContext,\n sdkProcessingMetadata: this._sdkProcessingMetadata,\n transactionName: this._transactionName,\n span: _getSpanForScope(this),\n conversationId: this._conversationId\n };\n }\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry.\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = merge(this._sdkProcessingMetadata, newData, 2);\n return this;\n }\n /**\n * Add propagation context to the scope, used for distributed tracing\n */\n setPropagationContext(context) {\n this._propagationContext = context;\n return this;\n }\n /**\n * Get propagation context from the scope, used for distributed tracing\n */\n getPropagationContext() {\n return this._propagationContext;\n }\n /**\n * Capture an exception for this scope.\n *\n * @returns {string} The id of the captured Sentry event.\n */\n captureException(exception, hint) {\n const eventId = hint?.event_id || uuid4();\n if (!this._client) {\n DEBUG_BUILD && debug.warn(\"No client configured on scope - will not capture exception!\");\n return eventId;\n }\n const syntheticException = new Error(\"Sentry syntheticException\");\n this._client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId\n },\n this\n );\n return eventId;\n }\n /**\n * Capture a message for this scope.\n *\n * @returns {string} The id of the captured message.\n */\n captureMessage(message, level, hint) {\n const eventId = hint?.event_id || uuid4();\n if (!this._client) {\n DEBUG_BUILD && debug.warn(\"No client configured on scope - will not capture message!\");\n return eventId;\n }\n const syntheticException = hint?.syntheticException ?? new Error(message);\n this._client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId\n },\n this\n );\n return eventId;\n }\n /**\n * Capture a Sentry event for this scope.\n *\n * @returns {string} The id of the captured event.\n */\n captureEvent(event, hint) {\n const eventId = event.event_id || hint?.event_id || uuid4();\n if (!this._client) {\n DEBUG_BUILD && debug.warn(\"No client configured on scope - will not capture event!\");\n return eventId;\n }\n this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n return eventId;\n }\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach((callback) => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n}\n\nexport { Scope };\n//# sourceMappingURL=scope.js.map\n", + "import { getGlobalSingleton } from './carrier.js';\nimport { Scope } from './scope.js';\n\nfunction getDefaultCurrentScope() {\n return getGlobalSingleton(\"defaultCurrentScope\", () => new Scope());\n}\nfunction getDefaultIsolationScope() {\n return getGlobalSingleton(\"defaultIsolationScope\", () => new Scope());\n}\n\nexport { getDefaultCurrentScope, getDefaultIsolationScope };\n//# sourceMappingURL=defaultScopes.js.map\n", + "const isActualPromise = (p) => p instanceof Promise && !p[kChainedCopy];\nconst kChainedCopy = /* @__PURE__ */ Symbol(\"chained PromiseLike\");\nconst chainAndCopyPromiseLike = (original, onSuccess, onError) => {\n const chained = original.then(\n (value) => {\n onSuccess(value);\n return value;\n },\n (err) => {\n onError(err);\n throw err;\n }\n );\n return isActualPromise(chained) && isActualPromise(original) ? chained : copyProps(original, chained);\n};\nconst copyProps = (original, chained) => {\n if (!chained) return original;\n let mutated = false;\n for (const key in original) {\n if (key in chained) continue;\n mutated = true;\n const value = original[key];\n if (typeof value === \"function\") {\n Object.defineProperty(chained, key, {\n value: (...args) => value.apply(original, args),\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n chained[key] = value;\n }\n }\n if (mutated) Object.assign(chained, { [kChainedCopy]: true });\n return chained;\n};\n\nexport { chainAndCopyPromiseLike };\n//# sourceMappingURL=chain-and-copy-promiselike.js.map\n", + "import { getDefaultCurrentScope, getDefaultIsolationScope } from '../defaultScopes.js';\nimport { Scope } from '../scope.js';\nimport { chainAndCopyPromiseLike } from '../utils/chain-and-copy-promiselike.js';\nimport { isThenable } from '../utils/is.js';\nimport { getMainCarrier, getSentryCarrier } from '../carrier.js';\n\nclass AsyncContextStack {\n constructor(scope, isolationScope) {\n let assignedScope;\n if (!scope) {\n assignedScope = new Scope();\n } else {\n assignedScope = scope;\n }\n let assignedIsolationScope;\n if (!isolationScope) {\n assignedIsolationScope = new Scope();\n } else {\n assignedIsolationScope = isolationScope;\n }\n this._stack = [{ scope: assignedScope }];\n this._isolationScope = assignedIsolationScope;\n }\n /**\n * Fork a scope for the stack.\n */\n withScope(callback) {\n const scope = this._pushScope();\n let maybePromiseResult;\n try {\n maybePromiseResult = callback(scope);\n } catch (e) {\n this._popScope();\n throw e;\n }\n if (isThenable(maybePromiseResult)) {\n return chainAndCopyPromiseLike(\n maybePromiseResult,\n () => this._popScope(),\n () => this._popScope()\n );\n }\n this._popScope();\n return maybePromiseResult;\n }\n /**\n * Get the client of the stack.\n */\n getClient() {\n return this.getStackTop().client;\n }\n /**\n * Returns the scope of the top stack.\n */\n getScope() {\n return this.getStackTop().scope;\n }\n /**\n * Get the isolation scope for the stack.\n */\n getIsolationScope() {\n return this._isolationScope;\n }\n /**\n * Returns the topmost scope layer in the order domain > local > process.\n */\n getStackTop() {\n return this._stack[this._stack.length - 1];\n }\n /**\n * Push a scope to the stack.\n */\n _pushScope() {\n const scope = this.getScope().clone();\n this._stack.push({\n client: this.getClient(),\n scope\n });\n return scope;\n }\n /**\n * Pop a scope from the stack.\n */\n _popScope() {\n if (this._stack.length <= 1) return false;\n return !!this._stack.pop();\n }\n}\nfunction getAsyncContextStack() {\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n return sentry.stack = sentry.stack || new AsyncContextStack(getDefaultCurrentScope(), getDefaultIsolationScope());\n}\nfunction withScope(callback) {\n return getAsyncContextStack().withScope(callback);\n}\nfunction withSetScope(scope, callback) {\n const stack = getAsyncContextStack();\n return stack.withScope(() => {\n stack.getStackTop().scope = scope;\n return callback(scope);\n });\n}\nfunction withIsolationScope(callback) {\n return getAsyncContextStack().withScope(() => {\n return callback(getAsyncContextStack().getIsolationScope());\n });\n}\nfunction getStackAsyncContextStrategy() {\n return {\n withIsolationScope,\n withScope,\n withSetScope,\n withSetIsolationScope: (_isolationScope, callback) => {\n return withIsolationScope(callback);\n },\n getCurrentScope: () => getAsyncContextStack().getScope(),\n getIsolationScope: () => getAsyncContextStack().getIsolationScope()\n };\n}\n\nexport { AsyncContextStack, getStackAsyncContextStrategy };\n//# sourceMappingURL=stackStrategy.js.map\n", + "import { getSentryCarrier, getMainCarrier } from '../carrier.js';\nimport { getStackAsyncContextStrategy } from './stackStrategy.js';\n\nfunction setAsyncContextStrategy(strategy) {\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n sentry.acs = strategy;\n}\nfunction getAsyncContextStrategy(carrier) {\n const sentry = getSentryCarrier(carrier);\n if (sentry.acs) {\n return sentry.acs;\n }\n return getStackAsyncContextStrategy();\n}\n\nexport { getAsyncContextStrategy, setAsyncContextStrategy };\n//# sourceMappingURL=index.js.map\n", + "import { getAsyncContextStrategy } from './asyncContext/index.js';\nimport { getMainCarrier, getGlobalSingleton } from './carrier.js';\nimport { Scope } from './scope.js';\nimport { generateSpanId } from './utils/propagationContext.js';\n\nlet _externalPropagationContextProvider;\nfunction registerExternalPropagationContext(fn) {\n _externalPropagationContextProvider = fn;\n}\nfunction getExternalPropagationContext() {\n return _externalPropagationContextProvider?.();\n}\nfunction hasExternalPropagationContext() {\n return _externalPropagationContextProvider !== void 0;\n}\nfunction getCurrentScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getCurrentScope();\n}\nfunction getIsolationScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getIsolationScope();\n}\nfunction getGlobalScope() {\n return getGlobalSingleton(\"globalScope\", () => new Scope());\n}\nfunction withScope(...rest) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (rest.length === 2) {\n const [scope, callback] = rest;\n if (!scope) {\n return acs.withScope(callback);\n }\n return acs.withSetScope(scope, callback);\n }\n return acs.withScope(rest[0]);\n}\nfunction withIsolationScope(...rest) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (rest.length === 2) {\n const [isolationScope, callback] = rest;\n if (!isolationScope) {\n return acs.withIsolationScope(callback);\n }\n return acs.withSetIsolationScope(isolationScope, callback);\n }\n return acs.withIsolationScope(rest[0]);\n}\nfunction getClient() {\n return getCurrentScope().getClient();\n}\nfunction getTraceContextFromScope(scope) {\n const externalContext = getExternalPropagationContext();\n if (externalContext) {\n return { trace_id: externalContext.traceId, span_id: externalContext.spanId };\n }\n const propagationContext = scope.getPropagationContext();\n const { traceId, parentSpanId, propagationSpanId } = propagationContext;\n const traceContext = {\n trace_id: traceId,\n span_id: propagationSpanId || generateSpanId()\n };\n if (parentSpanId) {\n traceContext.parent_span_id = parentSpanId;\n }\n return traceContext;\n}\n\nexport { getClient, getCurrentScope, getExternalPropagationContext, getGlobalScope, getIsolationScope, getTraceContextFromScope, hasExternalPropagationContext, registerExternalPropagationContext, withIsolationScope, withScope };\n//# sourceMappingURL=currentScopes.js.map\n", + "const SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = \"sentry.source\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = \"sentry.sample_rate\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE = \"sentry.previous_trace_sample_rate\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_OP = \"sentry.op\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = \"sentry.origin\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE = \"sentry.status.message\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON = \"sentry.idle_span_finish_reason\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT = \"sentry.measurement_unit\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE = \"sentry.measurement_value\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_RELEASE = \"sentry.release\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT = \"sentry.environment\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_NAME = \"sentry.segment.name\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_ID = \"sentry.segment.id\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SDK_NAME = \"sentry.sdk.name\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SDK_VERSION = \"sentry.sdk.version\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS = \"sentry.sdk.integrations\";\nconst SEMANTIC_ATTRIBUTE_USER_ID = \"user.id\";\nconst SEMANTIC_ATTRIBUTE_USER_EMAIL = \"user.email\";\nconst SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS = \"user.ip_address\";\nconst SEMANTIC_ATTRIBUTE_USER_USERNAME = \"user.name\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME = \"sentry.custom_span_name\";\nconst SEMANTIC_ATTRIBUTE_PROFILE_ID = \"sentry.profile_id\";\nconst SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME = \"sentry.exclusive_time\";\nconst SEMANTIC_ATTRIBUTE_CACHE_HIT = \"cache.hit\";\nconst SEMANTIC_ATTRIBUTE_CACHE_KEY = \"cache.key\";\nconst SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE = \"cache.item_size\";\nconst SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD = \"http.request.method\";\nconst SEMANTIC_ATTRIBUTE_URL_FULL = \"url.full\";\nconst SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE = \"sentry.link.type\";\nconst GEN_AI_CONVERSATION_ID_ATTRIBUTE = \"gen_ai.conversation.id\";\n\nexport { GEN_AI_CONVERSATION_ID_ATTRIBUTE, SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_RELEASE, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS, SEMANTIC_ATTRIBUTE_SENTRY_SDK_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SDK_VERSION, SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_ID, SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE, SEMANTIC_ATTRIBUTE_URL_FULL, SEMANTIC_ATTRIBUTE_USER_EMAIL, SEMANTIC_ATTRIBUTE_USER_ID, SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS, SEMANTIC_ATTRIBUTE_USER_USERNAME, SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE };\n//# sourceMappingURL=semanticAttributes.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isString } from './is.js';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX = \"sentry-\";\nconst SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\nconst MAX_BAGGAGE_STRING_LENGTH = 8192;\nfunction baggageHeaderToDynamicSamplingContext(baggageHeader) {\n const baggageObject = parseBaggageHeader(baggageHeader);\n if (!baggageObject) {\n return void 0;\n }\n const dynamicSamplingContext = Object.entries(baggageObject).reduce((acc, [key, value]) => {\n if (key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n acc[nonPrefixedKey] = value;\n }\n return acc;\n }, {});\n if (Object.keys(dynamicSamplingContext).length > 0) {\n return dynamicSamplingContext;\n } else {\n return void 0;\n }\n}\nfunction dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext) {\n if (!dynamicSamplingContext) {\n return void 0;\n }\n const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce(\n (acc, [dscKey, dscValue]) => {\n if (dscValue) {\n acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n }\n return acc;\n },\n {}\n );\n return objectToBaggageHeader(sentryPrefixedDSC);\n}\nfunction parseBaggageHeader(baggageHeader) {\n if (!baggageHeader || !isString(baggageHeader) && !Array.isArray(baggageHeader)) {\n return void 0;\n }\n if (Array.isArray(baggageHeader)) {\n return baggageHeader.reduce((acc, curr) => {\n const currBaggageObject = baggageHeaderToObject(curr);\n Object.entries(currBaggageObject).forEach(([key, value]) => {\n acc[key] = value;\n });\n return acc;\n }, {});\n }\n return baggageHeaderToObject(baggageHeader);\n}\nfunction baggageHeaderToObject(baggageHeader) {\n return baggageHeader.split(\",\").map((baggageEntry) => {\n const eqIdx = baggageEntry.indexOf(\"=\");\n if (eqIdx === -1) {\n return [];\n }\n const key = baggageEntry.slice(0, eqIdx);\n const value = baggageEntry.slice(eqIdx + 1);\n return [key, value].map((keyOrValue) => {\n try {\n return decodeURIComponent(keyOrValue.trim());\n } catch {\n return;\n }\n });\n }).reduce((acc, [key, value]) => {\n if (key && value) {\n acc[key] = value;\n }\n return acc;\n }, {});\n}\nfunction objectToBaggageHeader(object) {\n if (Object.keys(object).length === 0) {\n return void 0;\n }\n return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n DEBUG_BUILD && debug.warn(\n `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`\n );\n return baggageHeader;\n } else {\n return newBaggageHeader;\n }\n }, \"\");\n}\nfunction mergeBaggageHeaders(existing, incoming) {\n if (!existing) {\n return incoming;\n }\n const existingEntries = parseBaggageHeader(existing);\n const incomingEntries = parseBaggageHeader(incoming);\n if (!incomingEntries) {\n return existing;\n }\n const merged = {};\n let hasNewSentryEntries = false;\n const newSentryEntries = {};\n const newNonSentryEntries = {};\n for (const [key, value] of Object.entries(incomingEntries)) {\n if (key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n newSentryEntries[key] = value;\n hasNewSentryEntries = true;\n } else {\n newNonSentryEntries[key] = value;\n }\n }\n if (existingEntries) {\n for (const [key, value] of Object.entries(existingEntries)) {\n if (!hasNewSentryEntries || !key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n merged[key] = value;\n }\n }\n }\n if (hasNewSentryEntries) {\n Object.assign(merged, newSentryEntries);\n }\n for (const [key, value] of Object.entries(newNonSentryEntries)) {\n merged[key] ?? (merged[key] = value);\n }\n return objectToBaggageHeader(merged);\n}\n\nexport { MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, mergeBaggageHeaders, objectToBaggageHeader, parseBaggageHeader };\n//# sourceMappingURL=baggage.js.map\n", + "import { chainAndCopyPromiseLike } from './chain-and-copy-promiselike.js';\nimport { isThenable } from './is.js';\n\nfunction handleCallbackErrors(fn, onError, onFinally = () => {\n}, onSuccess = () => {\n}) {\n let maybePromiseResult;\n try {\n maybePromiseResult = fn();\n } catch (e) {\n onError(e);\n onFinally();\n throw e;\n }\n return maybeHandlePromiseRejection(maybePromiseResult, onError, onFinally, onSuccess);\n}\nfunction maybeHandlePromiseRejection(value, onError, onFinally, onSuccess) {\n if (isThenable(value)) {\n return chainAndCopyPromiseLike(\n value,\n (result) => {\n onFinally();\n onSuccess(result);\n },\n (err) => {\n onError(err);\n onFinally();\n }\n );\n }\n onFinally();\n onSuccess(value);\n return value;\n}\n\nexport { handleCallbackErrors };\n//# sourceMappingURL=handleCallbackErrors.js.map\n", + "import { getClient } from '../currentScopes.js';\n\nfunction hasSpansEnabled(maybeOptions) {\n if (typeof __SENTRY_TRACING__ === \"boolean\" && !__SENTRY_TRACING__) {\n return false;\n }\n const options = maybeOptions || getClient()?.getOptions();\n return !!options && // Note: This check is `!= null`, meaning \"nullish\". `0` is not \"nullish\", `undefined` and `null` are. (This comment was brought to you by 15 minutes of questioning life)\n (options.tracesSampleRate != null || !!options.tracesSampler);\n}\n\nexport { hasSpansEnabled };\n//# sourceMappingURL=hasSpansEnabled.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isMatchingPattern } from './string.js';\n\nfunction logIgnoredSpan(droppedSpan) {\n debug.log(`Ignoring span ${droppedSpan.op} - ${droppedSpan.description} because it matches \\`ignoreSpans\\`.`);\n}\nfunction shouldIgnoreSpan(span, ignoreSpans) {\n if (!ignoreSpans?.length) {\n return false;\n }\n for (const pattern of ignoreSpans) {\n if (isStringOrRegExp(pattern)) {\n if (span.description && isMatchingPattern(span.description, pattern)) {\n DEBUG_BUILD && logIgnoredSpan(span);\n return true;\n }\n continue;\n }\n const hasAttributes = !!pattern.attributes && Object.keys(pattern.attributes).length > 0;\n if (!pattern.name && !pattern.op && !hasAttributes) {\n continue;\n }\n const nameMatches = pattern.name ? span.description && isMatchingPattern(span.description, pattern.name) : true;\n const opMatches = pattern.op ? span.op && isMatchingPattern(span.op, pattern.op) : true;\n const attrsMatch = pattern.attributes ? Object.entries(pattern.attributes).every(\n ([key, valuePattern]) => _matchesAttributeValue(span.attributes?.[key], valuePattern)\n ) : true;\n if (nameMatches && opMatches && attrsMatch) {\n DEBUG_BUILD && logIgnoredSpan(span);\n return true;\n }\n }\n return false;\n}\nfunction _matchesAttributeValue(actual, pat) {\n if (typeof actual === \"string\" && (typeof pat === \"string\" || pat instanceof RegExp)) {\n return isMatchingPattern(actual, pat);\n }\n if (Array.isArray(actual) && Array.isArray(pat)) {\n return actual.length === pat.length && actual.every((v, i) => v === pat[i]);\n }\n return actual === pat;\n}\nfunction reparentChildSpans(spans, dropSpan) {\n const droppedSpanParentId = dropSpan.parent_span_id;\n const droppedSpanId = dropSpan.span_id;\n if (!droppedSpanParentId) {\n return;\n }\n for (const span of spans) {\n if (span.parent_span_id === droppedSpanId) {\n span.parent_span_id = droppedSpanParentId;\n }\n }\n}\nfunction isStringOrRegExp(value) {\n return typeof value === \"string\" || value instanceof RegExp;\n}\n\nexport { reparentChildSpans, shouldIgnoreSpan };\n//# sourceMappingURL=should-ignore-span.js.map\n", + "function hasSpanStreamingEnabled(client) {\n return client.getOptions().traceLifecycle === \"stream\";\n}\n\nexport { hasSpanStreamingEnabled };\n//# sourceMappingURL=hasSpanStreamingEnabled.js.map\n", + "function parseSampleRate(sampleRate) {\n if (typeof sampleRate === \"boolean\") {\n return Number(sampleRate);\n }\n const rate = typeof sampleRate === \"string\" ? parseFloat(sampleRate) : sampleRate;\n if (typeof rate !== \"number\" || isNaN(rate) || rate < 0 || rate > 1) {\n return void 0;\n }\n return rate;\n}\n\nexport { parseSampleRate };\n//# sourceMappingURL=parseSampleRate.js.map\n", + "import { isPrimitive } from './utils/is.js';\n\nfunction isAttributeObject(maybeObj) {\n return typeof maybeObj === \"object\" && maybeObj != null && !Array.isArray(maybeObj) && Object.keys(maybeObj).includes(\"value\");\n}\nfunction attributeValueToTypedAttributeValue(rawValue, useFallback) {\n const { value, unit } = isAttributeObject(rawValue) ? rawValue : { value: rawValue, unit: void 0 };\n const attributeValue = getTypedAttributeValue(value);\n const checkedUnit = unit && typeof unit === \"string\" ? { unit } : {};\n if (attributeValue) {\n return { ...attributeValue, ...checkedUnit };\n }\n if (!useFallback || useFallback === \"skip-undefined\" && value === void 0) {\n return;\n }\n let stringValue = \"\";\n try {\n stringValue = JSON.stringify(value) ?? \"\";\n } catch {\n }\n return {\n value: stringValue,\n type: \"string\",\n ...checkedUnit\n };\n}\nfunction serializeAttributes(attributes, fallback = false) {\n const serializedAttributes = {};\n for (const [key, value] of Object.entries(attributes ?? {})) {\n const typedValue = attributeValueToTypedAttributeValue(value, fallback);\n if (typedValue) {\n serializedAttributes[key] = typedValue;\n }\n }\n return serializedAttributes;\n}\nfunction estimateTypedAttributesSizeInBytes(attributes) {\n if (!attributes) {\n return 0;\n }\n let weight = 0;\n for (const [key, attr] of Object.entries(attributes)) {\n weight += key.length * 2;\n weight += attr.type.length * 2;\n weight += (attr.unit?.length ?? 0) * 2;\n const val = attr.value;\n if (Array.isArray(val)) {\n weight += estimatePrimitiveSizeInBytes(val[0]) * val.length;\n } else if (isPrimitive(val)) {\n weight += estimatePrimitiveSizeInBytes(val);\n } else {\n weight += 100;\n }\n }\n return weight;\n}\nfunction estimatePrimitiveSizeInBytes(value) {\n if (typeof value === \"string\") {\n return value.length * 2;\n } else if (typeof value === \"boolean\") {\n return 4;\n } else if (typeof value === \"number\") {\n return 8;\n }\n return 0;\n}\nfunction getTypedAttributeValue(value) {\n if (Array.isArray(value)) {\n return { value, type: \"array\" };\n }\n const primitiveType = typeof value === \"string\" ? \"string\" : typeof value === \"boolean\" ? \"boolean\" : typeof value === \"number\" && !Number.isNaN(value) ? Number.isInteger(value) ? \"integer\" : \"double\" : null;\n if (primitiveType) {\n return { value, type: primitiveType };\n }\n}\n\nexport { attributeValueToTypedAttributeValue, estimateTypedAttributesSizeInBytes, isAttributeObject, serializeAttributes };\n//# sourceMappingURL=attributes.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { consoleSandbox, debug } from './debug-logger.js';\n\nconst ORG_ID_REGEX = /^o(\\d+)\\./;\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)((?:\\[[:.%\\w]+\\]|[\\w.-]+))(?::(\\d+))?\\/(.+)/;\nfunction isValidProtocol(protocol) {\n return protocol === \"http\" || protocol === \"https\";\n}\nfunction dsnToString(dsn, withPassword = false) {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : \"\"}@${host}${port ? `:${port}` : \"\"}/${path ? `${path}/` : path}${projectId}`;\n}\nfunction dsnFromString(str) {\n const match = DSN_REGEX.exec(str);\n if (!match) {\n consoleSandbox(() => {\n console.error(`Invalid Sentry Dsn: ${str}`);\n });\n return void 0;\n }\n const [protocol, publicKey, pass = \"\", host = \"\", port = \"\", lastPath = \"\"] = match.slice(1);\n let path = \"\";\n let projectId = lastPath;\n const split = projectId.split(\"/\");\n if (split.length > 1) {\n path = split.slice(0, -1).join(\"/\");\n projectId = split.pop();\n }\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n return dsnFromComponents({ host, pass, path, projectId, port, protocol, publicKey });\n}\nfunction dsnFromComponents(components) {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || \"\",\n pass: components.pass || \"\",\n host: components.host,\n port: components.port || \"\",\n path: components.path || \"\",\n projectId: components.projectId\n };\n}\nfunction validateDsn(dsn) {\n if (!DEBUG_BUILD) {\n return true;\n }\n const { port, projectId, protocol } = dsn;\n const requiredComponents = [\"protocol\", \"publicKey\", \"host\", \"projectId\"];\n const hasMissingRequiredComponent = requiredComponents.find((component) => {\n if (!dsn[component]) {\n debug.error(`Invalid Sentry Dsn: ${component} missing`);\n return true;\n }\n return false;\n });\n if (hasMissingRequiredComponent) {\n return false;\n }\n if (!projectId.match(/^\\d+$/)) {\n debug.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n return false;\n }\n if (!isValidProtocol(protocol)) {\n debug.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n return false;\n }\n if (port && isNaN(parseInt(port, 10))) {\n debug.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n return false;\n }\n return true;\n}\nfunction extractOrgIdFromDsnHost(host) {\n const match = host.match(ORG_ID_REGEX);\n return match?.[1];\n}\nfunction extractOrgIdFromClient(client) {\n const options = client.getOptions();\n const { host } = client.getDsn() || {};\n let org_id;\n if (options.orgId) {\n org_id = String(options.orgId);\n } else if (host) {\n org_id = extractOrgIdFromDsnHost(host);\n }\n return org_id;\n}\nfunction makeDsn(from) {\n const components = typeof from === \"string\" ? dsnFromString(from) : dsnFromComponents(from);\n if (!components || !validateDsn(components)) {\n return void 0;\n }\n return components;\n}\n\nexport { dsnFromString, dsnToString, extractOrgIdFromClient, extractOrgIdFromDsnHost, makeDsn };\n//# sourceMappingURL=dsn.js.map\n", + "import { debug } from './debug-logger.js';\nimport { baggageHeaderToDynamicSamplingContext } from './baggage.js';\nimport { extractOrgIdFromClient } from './dsn.js';\nimport { parseSampleRate } from './parseSampleRate.js';\nimport { generateTraceId, generateSpanId } from './propagationContext.js';\nimport { safeMathRandom } from './randomSafeContext.js';\n\nconst TRACEPARENT_REGEXP = new RegExp(\n \"^[ \\\\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\\\t]*$\"\n // whitespace\n);\nfunction extractTraceparentData(traceparent) {\n if (!traceparent) {\n return void 0;\n }\n const matches = traceparent.match(TRACEPARENT_REGEXP);\n if (!matches) {\n return void 0;\n }\n let parentSampled;\n if (matches[3] === \"1\") {\n parentSampled = true;\n } else if (matches[3] === \"0\") {\n parentSampled = false;\n }\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2]\n };\n}\nfunction propagationContextFromHeaders(sentryTrace, baggage) {\n const traceparentData = extractTraceparentData(sentryTrace);\n const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n if (!traceparentData?.traceId) {\n return {\n traceId: generateTraceId(),\n sampleRand: safeMathRandom()\n };\n }\n const sampleRand = getSampleRandFromTraceparentAndDsc(traceparentData, dynamicSamplingContext);\n if (dynamicSamplingContext) {\n dynamicSamplingContext.sample_rand = sampleRand.toString();\n }\n const { traceId, parentSpanId, parentSampled } = traceparentData;\n return {\n traceId,\n parentSpanId,\n sampled: parentSampled,\n dsc: dynamicSamplingContext || {},\n // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n sampleRand\n };\n}\nfunction generateSentryTraceHeader(traceId = generateTraceId(), spanId = generateSpanId(), sampled) {\n let sampledString = \"\";\n if (sampled !== void 0) {\n sampledString = sampled ? \"-1\" : \"-0\";\n }\n return `${traceId}-${spanId}${sampledString}`;\n}\nfunction generateTraceparentHeader(traceId = generateTraceId(), spanId = generateSpanId(), sampled) {\n return `00-${traceId}-${spanId}-${sampled ? \"01\" : \"00\"}`;\n}\nfunction getSampleRandFromTraceparentAndDsc(traceparentData, dsc) {\n const parsedSampleRand = parseSampleRate(dsc?.sample_rand);\n if (parsedSampleRand !== void 0) {\n return parsedSampleRand;\n }\n const parsedSampleRate = parseSampleRate(dsc?.sample_rate);\n if (parsedSampleRate && traceparentData?.parentSampled !== void 0) {\n return traceparentData.parentSampled ? (\n // Returns a sample rand with positive sampling decision [0, sampleRate)\n safeMathRandom() * parsedSampleRate\n ) : (\n // Returns a sample rand with negative sampling decision [sampleRate, 1)\n parsedSampleRate + safeMathRandom() * (1 - parsedSampleRate)\n );\n } else {\n return safeMathRandom();\n }\n}\nfunction shouldContinueTrace(client, baggageOrgId) {\n const clientOrgId = extractOrgIdFromClient(client);\n if (baggageOrgId && clientOrgId && baggageOrgId !== clientOrgId) {\n debug.log(\n `Won't continue trace because org IDs don't match (incoming baggage: ${baggageOrgId}, SDK options: ${clientOrgId})`\n );\n return false;\n }\n const strictTraceContinuation = client.getOptions().strictTraceContinuation || false;\n if (strictTraceContinuation) {\n if (baggageOrgId && !clientOrgId || !baggageOrgId && clientOrgId) {\n debug.log(\n `Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${baggageOrgId}, Sentry client: ${clientOrgId})`\n );\n return false;\n }\n }\n return true;\n}\n\nexport { TRACEPARENT_REGEXP, extractTraceparentData, generateSentryTraceHeader, generateTraceparentHeader, propagationContextFromHeaders, shouldContinueTrace };\n//# sourceMappingURL=tracing.js.map\n", + "import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { serializeAttributes } from '../attributes.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getCurrentScope } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE } from '../semanticAttributes.js';\nimport { SPAN_STATUS_UNSET, SPAN_STATUS_OK } from '../tracing/spanstatus.js';\nimport { getCapturedScopesOnSpan } from '../tracing/utils.js';\nimport { addNonEnumerableProperty } from './object.js';\nimport { generateSpanId } from './propagationContext.js';\nimport { timestampInSeconds } from './time.js';\nimport { generateSentryTraceHeader, generateTraceparentHeader } from './tracing.js';\nimport { consoleSandbox } from './debug-logger.js';\nimport { _getSpanForScope } from './spanOnScope.js';\n\nconst TRACE_FLAG_NONE = 0;\nconst TRACE_FLAG_SAMPLED = 1;\nlet hasShownSpanDropWarning = false;\nfunction spanToTransactionTraceContext(span) {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { data, op, parent_span_id, status, origin, links } = spanToJSON(span);\n return {\n parent_span_id,\n span_id,\n trace_id,\n data,\n op,\n status,\n origin,\n links\n };\n}\nfunction spanToTraceContext(span) {\n const { spanId, traceId: trace_id, isRemote } = span.spanContext();\n const parent_span_id = isRemote ? spanId : spanToJSON(span).parent_span_id;\n const scope = getCapturedScopesOnSpan(span).scope;\n const span_id = isRemote ? scope?.getPropagationContext().propagationSpanId || generateSpanId() : spanId;\n return {\n parent_span_id,\n span_id,\n trace_id\n };\n}\nfunction spanToTraceHeader(span) {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateSentryTraceHeader(traceId, spanId, sampled);\n}\nfunction spanToTraceparentHeader(span) {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateTraceparentHeader(traceId, spanId, sampled);\n}\nfunction convertSpanLinksForEnvelope(links) {\n if (links && links.length > 0) {\n return links.map(({ context: { spanId, traceId, traceFlags, ...restContext }, attributes }) => ({\n span_id: spanId,\n trace_id: traceId,\n sampled: traceFlags === TRACE_FLAG_SAMPLED,\n attributes,\n ...restContext\n }));\n } else {\n return void 0;\n }\n}\nfunction getStreamedSpanLinks(links) {\n if (links?.length) {\n return links.map(({ context: { spanId, traceId, traceFlags }, attributes }) => ({\n span_id: spanId,\n trace_id: traceId,\n sampled: traceFlags === TRACE_FLAG_SAMPLED,\n attributes\n }));\n } else {\n return void 0;\n }\n}\nfunction spanTimeInputToSeconds(input) {\n if (typeof input === \"number\") {\n return ensureTimestampInSeconds(input);\n }\n if (Array.isArray(input)) {\n return input[0] + input[1] / 1e9;\n }\n if (input instanceof Date) {\n return ensureTimestampInSeconds(input.getTime());\n }\n return timestampInSeconds();\n}\nfunction ensureTimestampInSeconds(timestamp) {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1e3 : timestamp;\n}\nfunction spanToJSON(span) {\n if (spanIsSentrySpan(span)) {\n return span.getSpanJSON();\n }\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n const { attributes, startTime, name, endTime, status, links } = span;\n return {\n span_id,\n trace_id,\n data: attributes,\n description: name,\n parent_span_id: getOtelParentSpanId(span),\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || void 0,\n status: getStatusMessage(status),\n op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN],\n links: convertSpanLinksForEnvelope(links)\n };\n }\n return {\n span_id,\n trace_id,\n start_timestamp: 0,\n data: {}\n };\n}\nfunction spanToStreamedSpanJSON(span) {\n if (spanIsSentrySpan(span)) {\n return span.getStreamedSpanJSON();\n }\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n const { attributes, startTime, name, endTime, status, links } = span;\n return {\n name,\n span_id,\n trace_id,\n parent_span_id: getOtelParentSpanId(span),\n start_timestamp: spanTimeInputToSeconds(startTime),\n end_timestamp: spanTimeInputToSeconds(endTime),\n is_segment: span === INTERNAL_getSegmentSpan(span),\n status: getSimpleStatus(status),\n attributes: addStatusMessageAttribute(attributes, status),\n links: getStreamedSpanLinks(links)\n };\n }\n return {\n span_id,\n trace_id,\n start_timestamp: 0,\n name: \"\",\n end_timestamp: 0,\n status: \"ok\",\n is_segment: span === INTERNAL_getSegmentSpan(span)\n };\n}\nfunction getOtelParentSpanId(span) {\n return \"parentSpanId\" in span ? span.parentSpanId : \"parentSpanContext\" in span ? span.parentSpanContext?.spanId : void 0;\n}\nfunction streamedSpanJsonToSerializedSpan(spanJson) {\n return {\n ...spanJson,\n attributes: serializeAttributes(spanJson.attributes),\n links: spanJson.links?.map((link) => ({\n ...link,\n attributes: serializeAttributes(link.attributes)\n }))\n };\n}\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span) {\n const castSpan = span;\n return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\nfunction spanIsSentrySpan(span) {\n return typeof span.getSpanJSON === \"function\";\n}\nfunction spanIsSampled(span) {\n const { traceFlags } = span.spanContext();\n return traceFlags === TRACE_FLAG_SAMPLED;\n}\nfunction getStatusMessage(status) {\n if (!status || status.code === SPAN_STATUS_UNSET) {\n return void 0;\n }\n if (status.code === SPAN_STATUS_OK) {\n return \"ok\";\n }\n return status.message || \"internal_error\";\n}\nfunction getSimpleStatus(status) {\n return !status || status.code === SPAN_STATUS_OK || status.code === SPAN_STATUS_UNSET || status.message === \"cancelled\" ? \"ok\" : \"error\";\n}\nfunction addStatusMessageAttribute(attributes, status) {\n const statusMessage = getSimpleStatus(status) === \"error\" ? status?.message : void 0;\n return {\n ...statusMessage && { [SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE]: statusMessage },\n ...attributes\n };\n}\nconst CHILD_SPANS_FIELD = \"_sentryChildSpans\";\nconst ROOT_SPAN_FIELD = \"_sentryRootSpan\";\nfunction addChildSpanToSpan(span, childSpan) {\n const rootSpan = span[ROOT_SPAN_FIELD] || span;\n addNonEnumerableProperty(childSpan, ROOT_SPAN_FIELD, rootSpan);\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].add(childSpan);\n } else {\n addNonEnumerableProperty(span, CHILD_SPANS_FIELD, /* @__PURE__ */ new Set([childSpan]));\n }\n}\nfunction removeChildSpanFromSpan(span, childSpan) {\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].delete(childSpan);\n }\n}\nfunction getSpanDescendants(span) {\n const resultSet = /* @__PURE__ */ new Set();\n function addSpanChildren(span2) {\n if (resultSet.has(span2)) {\n return;\n } else if (spanIsSampled(span2)) {\n resultSet.add(span2);\n const childSpans = span2[CHILD_SPANS_FIELD] ? Array.from(span2[CHILD_SPANS_FIELD]) : [];\n for (const childSpan of childSpans) {\n addSpanChildren(childSpan);\n }\n }\n }\n addSpanChildren(span);\n return Array.from(resultSet);\n}\nconst getRootSpan = INTERNAL_getSegmentSpan;\nfunction INTERNAL_getSegmentSpan(span) {\n return span[ROOT_SPAN_FIELD] || span;\n}\nfunction getActiveSpan() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getActiveSpan) {\n return acs.getActiveSpan();\n }\n return _getSpanForScope(getCurrentScope());\n}\nfunction showSpanDropWarning() {\n if (!hasShownSpanDropWarning) {\n consoleSandbox(() => {\n console.warn(\n \"[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.\"\n );\n });\n hasShownSpanDropWarning = true;\n }\n}\nfunction updateSpanName(span, name) {\n span.updateName(name);\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: \"custom\",\n [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: name\n });\n}\n\nexport { INTERNAL_getSegmentSpan, TRACE_FLAG_NONE, TRACE_FLAG_SAMPLED, addChildSpanToSpan, addStatusMessageAttribute, convertSpanLinksForEnvelope, getActiveSpan, getRootSpan, getSimpleStatus, getSpanDescendants, getStatusMessage, getStreamedSpanLinks, removeChildSpanFromSpan, showSpanDropWarning, spanIsSampled, spanTimeInputToSeconds, spanToJSON, spanToStreamedSpanJSON, spanToTraceContext, spanToTraceHeader, spanToTraceparentHeader, spanToTransactionTraceContext, streamedSpanJsonToSerializedSpan, updateSpanName };\n//# sourceMappingURL=spanUtils.js.map\n", + "const DEFAULT_ENVIRONMENT = \"production\";\nconst DEV_ENVIRONMENT = \"development\";\n\nexport { DEFAULT_ENVIRONMENT, DEV_ENVIRONMENT };\n//# sourceMappingURL=constants.js.map\n", + "import { addNonEnumerableProperty } from '../utils/object.js';\nimport { generateTraceId, generateSpanId } from '../utils/propagationContext.js';\nimport { TRACE_FLAG_NONE } from '../utils/spanUtils.js';\n\nconst NON_RECORDING_SPAN_FIELD = /* @__PURE__ */ Symbol.for(\"sentry.nonRecordingSpan\");\nclass SentryNonRecordingSpan {\n constructor(spanContext = {}) {\n this._traceId = spanContext.traceId || generateTraceId();\n this._spanId = spanContext.spanId || generateSpanId();\n this.dropReason = spanContext.dropReason;\n addNonEnumerableProperty(this, NON_RECORDING_SPAN_FIELD, true);\n }\n /** @inheritdoc */\n spanContext() {\n return {\n spanId: this._spanId,\n traceId: this._traceId,\n traceFlags: TRACE_FLAG_NONE\n };\n }\n /** @inheritdoc */\n end(_timestamp) {\n }\n /** @inheritdoc */\n setAttribute(_key, _value) {\n return this;\n }\n /** @inheritdoc */\n setAttributes(_values) {\n return this;\n }\n /** @inheritdoc */\n setStatus(_status) {\n return this;\n }\n /** @inheritdoc */\n updateName(_name) {\n return this;\n }\n /** @inheritdoc */\n isRecording() {\n return false;\n }\n /** @inheritdoc */\n addEvent(_name, _attributesOrStartTime, _startTime) {\n return this;\n }\n /** @inheritDoc */\n addLink(_link) {\n return this;\n }\n /** @inheritDoc */\n addLinks(_links) {\n return this;\n }\n /**\n * This should generally not be used,\n * but we need it for being compliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n recordException(_exception, _time) {\n }\n}\nfunction spanIsNonRecordingSpan(span) {\n return !!span && span[NON_RECORDING_SPAN_FIELD] === true;\n}\n\nexport { SentryNonRecordingSpan, spanIsNonRecordingSpan };\n//# sourceMappingURL=sentryNonRecordingSpan.js.map\n", + "import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getClient } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader } from '../utils/baggage.js';\nimport { extractOrgIdFromClient } from '../utils/dsn.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { addNonEnumerableProperty } from '../utils/object.js';\nimport { getRootSpan, spanToJSON, spanIsSampled } from '../utils/spanUtils.js';\nimport { spanIsNonRecordingSpan } from './sentryNonRecordingSpan.js';\nimport { getCapturedScopesOnSpan } from './utils.js';\n\nconst FROZEN_DSC_FIELD = \"_frozenDsc\";\nfunction freezeDscOnSpan(span, dsc) {\n const spanWithMaybeDsc = span;\n addNonEnumerableProperty(spanWithMaybeDsc, FROZEN_DSC_FIELD, dsc);\n}\nfunction getDynamicSamplingContextFromClient(trace_id, client) {\n const options = client.getOptions();\n const { publicKey: public_key } = client.getDsn() || {};\n const dsc = {\n environment: options.environment || DEFAULT_ENVIRONMENT,\n release: options.release,\n public_key,\n trace_id,\n org_id: extractOrgIdFromClient(client)\n };\n client.emit(\"createDsc\", dsc);\n return dsc;\n}\nfunction getDynamicSamplingContextFromScope(client, scope) {\n const propagationContext = scope.getPropagationContext();\n return propagationContext.dsc || getDynamicSamplingContextFromClient(propagationContext.traceId, client);\n}\nfunction getDynamicSamplingContextFromSpan(span) {\n const client = getClient();\n if (!client) {\n return {};\n }\n const rootSpan = getRootSpan(span);\n const rootSpanJson = spanToJSON(rootSpan);\n const rootSpanAttributes = rootSpanJson.data;\n const traceState = rootSpan.spanContext().traceState;\n const rootSpanSampleRate = traceState?.get(\"sentry.sample_rate\") ?? rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] ?? rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE];\n function applyLocalSampleRateToDsc(dsc2) {\n if (typeof rootSpanSampleRate === \"number\" || typeof rootSpanSampleRate === \"string\") {\n dsc2.sample_rate = `${rootSpanSampleRate}`;\n }\n return dsc2;\n }\n const frozenDsc = rootSpan[FROZEN_DSC_FIELD];\n if (frozenDsc) {\n return applyLocalSampleRateToDsc(frozenDsc);\n }\n if (spanIsNonRecordingSpan(rootSpan) && !hasSpansEnabled(client.getOptions())) {\n const capturedScope = getCapturedScopesOnSpan(rootSpan).scope;\n if (capturedScope) {\n return applyLocalSampleRateToDsc({ ...getDynamicSamplingContextFromScope(client, capturedScope) });\n }\n }\n const traceStateDsc = traceState?.get(\"sentry.dsc\");\n const dscOnTraceState = traceStateDsc && baggageHeaderToDynamicSamplingContext(traceStateDsc);\n if (dscOnTraceState) {\n return applyLocalSampleRateToDsc(dscOnTraceState);\n }\n const dsc = getDynamicSamplingContextFromClient(span.spanContext().traceId, client);\n const source = rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] ?? rootSpanAttributes[\"sentry.span.source\"];\n const name = rootSpanJson.description;\n if (source !== \"url\" && name) {\n dsc.transaction = name;\n }\n if (hasSpansEnabled()) {\n dsc.sampled = String(spanIsSampled(rootSpan));\n dsc.sample_rand = // In OTEL we store the sample rand on the trace state because we cannot access scopes for NonRecordingSpans\n // The Sentry OTEL SpanSampler takes care of writing the sample rand on the root span\n traceState?.get(\"sentry.sample_rand\") ?? // On all other platforms we can actually get the scopes from a root span (we use this as a fallback)\n getCapturedScopesOnSpan(rootSpan).scope?.getPropagationContext().sampleRand.toString();\n }\n applyLocalSampleRateToDsc(dsc);\n client.emit(\"createDsc\", dsc, rootSpan);\n return dsc;\n}\nfunction spanToBaggageHeader(span) {\n const dsc = getDynamicSamplingContextFromSpan(span);\n return dynamicSamplingContextToSentryBaggageHeader(dsc);\n}\n\nexport { freezeDscOnSpan, getDynamicSamplingContextFromClient, getDynamicSamplingContextFromScope, getDynamicSamplingContextFromSpan, spanToBaggageHeader };\n//# sourceMappingURL=dynamicSamplingContext.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { spanToJSON, getRootSpan, spanIsSampled } from '../utils/spanUtils.js';\n\nfunction logSpanStart(span) {\n if (!DEBUG_BUILD) return;\n const { description = \"< unknown name >\", op = \"< unknown op >\", parent_span_id: parentSpanId } = spanToJSON(span);\n const { spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n const rootSpan = getRootSpan(span);\n const isRootSpan = rootSpan === span;\n const header = `[Tracing] Starting ${sampled ? \"sampled\" : \"unsampled\"} ${isRootSpan ? \"root \" : \"\"}span`;\n const infoParts = [`op: ${op}`, `name: ${description}`, `ID: ${spanId}`];\n if (parentSpanId) {\n infoParts.push(`parent ID: ${parentSpanId}`);\n }\n if (!isRootSpan) {\n const { op: op2, description: description2 } = spanToJSON(rootSpan);\n infoParts.push(`root ID: ${rootSpan.spanContext().spanId}`);\n if (op2) {\n infoParts.push(`root op: ${op2}`);\n }\n if (description2) {\n infoParts.push(`root description: ${description2}`);\n }\n }\n debug.log(`${header}\n ${infoParts.join(\"\\n \")}`);\n}\nfunction logSpanEnd(span) {\n if (!DEBUG_BUILD) return;\n const { description = \"< unknown name >\", op = \"< unknown op >\" } = spanToJSON(span);\n const { spanId } = span.spanContext();\n const rootSpan = getRootSpan(span);\n const isRootSpan = rootSpan === span;\n const msg = `[Tracing] Finishing \"${op}\" ${isRootSpan ? \"root \" : \"\"}span \"${description}\" with ID ${spanId}`;\n debug.log(msg);\n}\n\nexport { logSpanEnd, logSpanStart };\n//# sourceMappingURL=logSpans.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { parseSampleRate } from '../utils/parseSampleRate.js';\n\nfunction sampleSpan(options, samplingContext, sampleRand) {\n if (!hasSpansEnabled(options)) {\n return [false];\n }\n let localSampleRateWasApplied = void 0;\n let sampleRate;\n if (typeof options.tracesSampler === \"function\") {\n sampleRate = options.tracesSampler({\n ...samplingContext,\n inheritOrSampleWith: (fallbackSampleRate) => {\n if (typeof samplingContext.parentSampleRate === \"number\") {\n return samplingContext.parentSampleRate;\n }\n if (typeof samplingContext.parentSampled === \"boolean\") {\n return Number(samplingContext.parentSampled);\n }\n return fallbackSampleRate;\n }\n });\n localSampleRateWasApplied = true;\n } else if (samplingContext.parentSampled !== void 0) {\n sampleRate = samplingContext.parentSampled;\n } else if (typeof options.tracesSampleRate !== \"undefined\") {\n sampleRate = options.tracesSampleRate;\n localSampleRateWasApplied = true;\n }\n const parsedSampleRate = parseSampleRate(sampleRate);\n if (parsedSampleRate === void 0) {\n DEBUG_BUILD && debug.warn(\n `[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n sampleRate\n )} of type ${JSON.stringify(typeof sampleRate)}.`\n );\n return [false];\n }\n if (!parsedSampleRate) {\n DEBUG_BUILD && debug.log(\n `[Tracing] Discarding transaction because ${typeof options.tracesSampler === \"function\" ? \"tracesSampler returned 0 or false\" : \"a negative sampling decision was inherited or tracesSampleRate is set to 0\"}`\n );\n return [false, parsedSampleRate, localSampleRateWasApplied];\n }\n const shouldSample = sampleRand < parsedSampleRate;\n if (!shouldSample) {\n DEBUG_BUILD && debug.log(\n `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n sampleRate\n )})`\n );\n }\n return [shouldSample, parsedSampleRate, localSampleRateWasApplied];\n}\n\nexport { sampleSpan };\n//# sourceMappingURL=sampling.js.map\n", + "import { addNonEnumerableProperty } from '../../utils/object.js';\n\nfunction withStreamedSpan(callback) {\n addNonEnumerableProperty(callback, \"_streamed\", true);\n return callback;\n}\nfunction isStreamedBeforeSendSpanCallback(callback) {\n return !!callback && typeof callback === \"function\" && \"_streamed\" in callback && !!callback._streamed;\n}\n\nexport { isStreamedBeforeSendSpanCallback, withStreamedSpan };\n//# sourceMappingURL=beforeSendSpan.js.map\n", + "import { getSentryCarrier } from '../carrier.js';\nimport { dsnToString } from './dsn.js';\nimport { normalize } from './normalize.js';\nimport { safeDateNow } from './randomSafeContext.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nfunction createEnvelope(headers, items = []) {\n return [headers, items];\n}\nfunction addItemToEnvelope(envelope, newItem) {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]];\n}\nfunction forEachEnvelopeItem(envelope, callback) {\n const envelopeItems = envelope[1];\n for (const envelopeItem of envelopeItems) {\n const envelopeItemType = envelopeItem[0].type;\n const result = callback(envelopeItem, envelopeItemType);\n if (result) {\n return true;\n }\n }\n return false;\n}\nfunction envelopeContainsItemType(envelope, types) {\n return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\nfunction encodeUTF8(input) {\n const carrier = getSentryCarrier(GLOBAL_OBJ);\n return carrier.encodePolyfill ? carrier.encodePolyfill(input) : new TextEncoder().encode(input);\n}\nfunction decodeUTF8(input) {\n const carrier = getSentryCarrier(GLOBAL_OBJ);\n return carrier.decodePolyfill ? carrier.decodePolyfill(input) : new TextDecoder().decode(input);\n}\nfunction serializeEnvelope(envelope) {\n const [envHeaders, items] = envelope;\n let parts = JSON.stringify(envHeaders);\n function append(next) {\n if (typeof parts === \"string\") {\n parts = typeof next === \"string\" ? parts + next : [encodeUTF8(parts), next];\n } else {\n parts.push(typeof next === \"string\" ? encodeUTF8(next) : next);\n }\n }\n for (const item of items) {\n const [itemHeaders, payload] = item;\n append(`\n${JSON.stringify(itemHeaders)}\n`);\n if (typeof payload === \"string\" || payload instanceof Uint8Array) {\n append(payload);\n } else {\n let stringifiedPayload;\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch {\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n append(stringifiedPayload);\n }\n }\n return typeof parts === \"string\" ? parts : concatBuffers(parts);\n}\nfunction concatBuffers(buffers) {\n const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n const merged = new Uint8Array(totalLength);\n let offset = 0;\n for (const buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n return merged;\n}\nfunction parseEnvelope(env) {\n let buffer = typeof env === \"string\" ? encodeUTF8(env) : env;\n function readBinary(length) {\n const bin = buffer.subarray(0, length);\n buffer = buffer.subarray(length + 1);\n return bin;\n }\n function readJson() {\n let i = buffer.indexOf(10);\n if (i < 0) {\n i = buffer.length;\n }\n return JSON.parse(decodeUTF8(readBinary(i)));\n }\n const envelopeHeader = readJson();\n const items = [];\n while (buffer.length) {\n const itemHeader = readJson();\n const binaryLength = typeof itemHeader.length === \"number\" ? itemHeader.length : void 0;\n items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n }\n return [envelopeHeader, items];\n}\nfunction createSpanEnvelopeItem(spanJson) {\n const spanHeaders = {\n type: \"span\"\n };\n return [spanHeaders, spanJson];\n}\nfunction createAttachmentEnvelopeItem(attachment) {\n const buffer = typeof attachment.data === \"string\" ? encodeUTF8(attachment.data) : attachment.data;\n return [\n {\n type: \"attachment\",\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType\n },\n buffer\n ];\n}\nconst DATA_CATEGORY_OVERRIDES = {\n sessions: \"session\",\n event: \"error\",\n client_report: \"internal\",\n user_report: \"default\",\n profile_chunk: \"profile\",\n replay_event: \"replay\",\n replay_recording: \"replay\",\n check_in: \"monitor\",\n raw_security: \"security\",\n log: \"log_item\",\n trace_metric: \"metric\"\n};\nfunction _isOverriddenType(type) {\n return type in DATA_CATEGORY_OVERRIDES;\n}\nfunction envelopeItemTypeToDataCategory(type) {\n return _isOverriddenType(type) ? DATA_CATEGORY_OVERRIDES[type] : type;\n}\nfunction getSdkMetadataForEnvelopeHeader(metadataOrEvent) {\n if (!metadataOrEvent?.sdk) {\n return;\n }\n const { name, version } = metadataOrEvent.sdk;\n return { name, version };\n}\nfunction createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn) {\n const dynamicSamplingContext = event.sdkProcessingMetadata?.dynamicSamplingContext;\n return {\n event_id: event.event_id,\n sent_at: new Date(safeDateNow()).toISOString(),\n ...sdkInfo && { sdk: sdkInfo },\n ...!!tunnel && dsn && { dsn: dsnToString(dsn) },\n ...dynamicSamplingContext && {\n trace: dynamicSamplingContext\n }\n };\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, createEventEnvelopeHeaders, createSpanEnvelopeItem, envelopeContainsItemType, envelopeItemTypeToDataCategory, forEachEnvelopeItem, getSdkMetadataForEnvelopeHeader, parseEnvelope, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n", + "import { getDynamicSamplingContextFromSpan } from './tracing/dynamicSamplingContext.js';\nimport { isStreamedBeforeSendSpanCallback } from './tracing/spans/beforeSendSpan.js';\nimport { dsnToString } from './utils/dsn.js';\nimport { getSdkMetadataForEnvelopeHeader, createEventEnvelopeHeaders, createEnvelope, createSpanEnvelopeItem } from './utils/envelope.js';\nimport { safeDateNow } from './utils/randomSafeContext.js';\nimport { shouldIgnoreSpan } from './utils/should-ignore-span.js';\nimport { spanToJSON, showSpanDropWarning } from './utils/spanUtils.js';\n\nfunction _enhanceEventWithSdkInfo(event, newSdkInfo) {\n if (!newSdkInfo) {\n return event;\n }\n const eventSdkInfo = event.sdk || {};\n event.sdk = {\n ...eventSdkInfo,\n name: eventSdkInfo.name || newSdkInfo.name,\n version: eventSdkInfo.version || newSdkInfo.version,\n integrations: [...event.sdk?.integrations || [], ...newSdkInfo.integrations || []],\n packages: [...event.sdk?.packages || [], ...newSdkInfo.packages || []],\n settings: event.sdk?.settings || newSdkInfo.settings ? {\n ...event.sdk?.settings,\n ...newSdkInfo.settings\n } : void 0\n };\n return event;\n}\nfunction createSessionEnvelope(session, dsn, metadata, tunnel) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const envelopeHeaders = {\n sent_at: new Date(safeDateNow()).toISOString(),\n ...sdkInfo && { sdk: sdkInfo },\n ...!!tunnel && dsn && { dsn: dsnToString(dsn) }\n };\n const envelopeItem = \"aggregates\" in session ? [{ type: \"sessions\" }, session] : [{ type: \"session\" }, session.toJSON()];\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\nfunction createEventEnvelope(event, dsn, metadata, tunnel) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const eventType = event.type && event.type !== \"replay_event\" ? event.type : \"event\";\n _enhanceEventWithSdkInfo(event, metadata?.sdk);\n const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n delete event.sdkProcessingMetadata;\n const eventItem = [{ type: eventType }, event];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\nfunction createSpanEnvelope(spans, client) {\n function dscHasRequiredProps(dsc2) {\n return !!dsc2.trace_id && !!dsc2.public_key;\n }\n const dsc = getDynamicSamplingContextFromSpan(spans[0]);\n const dsn = client?.getDsn();\n const tunnel = client?.getOptions().tunnel;\n const headers = {\n sent_at: new Date(safeDateNow()).toISOString(),\n ...dscHasRequiredProps(dsc) && { trace: dsc },\n ...!!tunnel && dsn && { dsn: dsnToString(dsn) }\n };\n const { beforeSendSpan, ignoreSpans } = client?.getOptions() || {};\n const filteredSpans = ignoreSpans?.length ? spans.filter((span) => {\n const json = spanToJSON(span);\n return !shouldIgnoreSpan({ description: json.description, op: json.op, attributes: json.data }, ignoreSpans);\n }) : spans;\n const droppedSpans = spans.length - filteredSpans.length;\n if (droppedSpans) {\n client?.recordDroppedEvent(\"before_send\", \"span\", droppedSpans);\n }\n const convertToSpanJSON = beforeSendSpan ? (span) => {\n const spanJson = spanToJSON(span);\n const processedSpan = !isStreamedBeforeSendSpanCallback(beforeSendSpan) ? beforeSendSpan(spanJson) : spanJson;\n if (!processedSpan) {\n showSpanDropWarning();\n return spanJson;\n }\n return processedSpan;\n } : spanToJSON;\n const items = [];\n for (const span of filteredSpans) {\n const spanJson = convertToSpanJSON(span);\n if (spanJson) {\n items.push(createSpanEnvelopeItem(spanJson));\n }\n }\n return createEnvelope(headers, items);\n}\n\nexport { _enhanceEventWithSdkInfo, createEventEnvelope, createSessionEnvelope, createSpanEnvelope };\n//# sourceMappingURL=envelope.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE } from '../semanticAttributes.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getRootSpan, getActiveSpan } from '../utils/spanUtils.js';\n\nfunction setMeasurement(name, value, unit, activeSpan = getActiveSpan()) {\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n if (rootSpan) {\n DEBUG_BUILD && debug.log(`[Measurement] Setting measurement on root span: ${name} = ${value} ${unit}`);\n rootSpan.addEvent(name, {\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: value,\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: unit\n });\n }\n}\nfunction timedEventsToMeasurements(events) {\n if (!events || events.length === 0) {\n return void 0;\n }\n const measurements = {};\n events.forEach((event) => {\n const attributes = event.attributes || {};\n const unit = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT];\n const value = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE];\n if (typeof unit === \"string\" && typeof value === \"number\") {\n measurements[event.name] = { value, unit };\n }\n });\n return measurements;\n}\n\nexport { setMeasurement, timedEventsToMeasurements };\n//# sourceMappingURL=measurement.js.map\n", + "import { getClient, getCurrentScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { createSpanEnvelope } from '../envelope.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME } from '../semanticAttributes.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { generateTraceId, generateSpanId } from '../utils/propagationContext.js';\nimport { TRACE_FLAG_SAMPLED, TRACE_FLAG_NONE, spanTimeInputToSeconds, convertSpanLinksForEnvelope, getRootSpan, getStatusMessage, getStreamedSpanLinks, addStatusMessageAttribute, getSimpleStatus, spanToJSON, getSpanDescendants, spanToTransactionTraceContext } from '../utils/spanUtils.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getDynamicSamplingContextFromSpan } from './dynamicSamplingContext.js';\nimport { logSpanEnd } from './logSpans.js';\nimport { timedEventsToMeasurements } from './measurement.js';\nimport { hasSpanStreamingEnabled } from './spans/hasSpanStreamingEnabled.js';\nimport { spanShouldInferOtelSource, getCapturedScopesOnSpan } from './utils.js';\n\nconst MAX_SPAN_COUNT = 1e3;\nclass SentrySpan {\n /**\n * You should never call the constructor manually, always use `Sentry.startSpan()`\n * or other span methods.\n * @internal\n * @hideconstructor\n * @hidden\n */\n constructor(spanContext = {}) {\n this._traceId = spanContext.traceId || generateTraceId();\n this._spanId = spanContext.spanId || generateSpanId();\n this._startTime = spanContext.startTimestamp || timestampInSeconds();\n this._links = spanContext.links;\n this._attributes = {};\n this.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"manual\",\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: spanContext.op,\n ...spanContext.attributes\n });\n this._name = spanContext.name;\n if (spanContext.parentSpanId) {\n this._parentSpanId = spanContext.parentSpanId;\n }\n if (\"sampled\" in spanContext) {\n this._sampled = spanContext.sampled;\n }\n if (spanContext.endTimestamp) {\n this._endTime = spanContext.endTimestamp;\n }\n this._events = [];\n this._isStandaloneSpan = spanContext.isStandalone;\n if (this._endTime) {\n this._onSpanEnded();\n }\n }\n /** @inheritDoc */\n addLink(link) {\n if (this._links) {\n this._links.push(link);\n } else {\n this._links = [link];\n }\n return this;\n }\n /** @inheritDoc */\n addLinks(links) {\n if (this._links) {\n this._links.push(...links);\n } else {\n this._links = links;\n }\n return this;\n }\n /**\n * This should generally not be used,\n * but it is needed for being compliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n recordException(_exception, _time) {\n }\n /** @inheritdoc */\n spanContext() {\n const { _spanId: spanId, _traceId: traceId, _sampled: sampled } = this;\n return {\n spanId,\n traceId,\n traceFlags: sampled ? TRACE_FLAG_SAMPLED : TRACE_FLAG_NONE\n };\n }\n /** @inheritdoc */\n setAttribute(key, value) {\n if (value === void 0) {\n delete this._attributes[key];\n } else {\n this._attributes[key] = value;\n }\n return this;\n }\n /** @inheritdoc */\n setAttributes(attributes) {\n Object.keys(attributes).forEach((key) => this.setAttribute(key, attributes[key]));\n return this;\n }\n /**\n * This should generally not be used,\n * but we need it for browser tracing where we want to adjust the start time afterwards.\n * USE THIS WITH CAUTION!\n *\n * @hidden\n * @internal\n */\n updateStartTime(timeInput) {\n this._startTime = spanTimeInputToSeconds(timeInput);\n }\n /**\n * @inheritDoc\n */\n setStatus(value) {\n this._status = value;\n return this;\n }\n /**\n * @inheritDoc\n */\n updateName(name) {\n this._name = name;\n if (!spanShouldInferOtelSource(this)) {\n this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, \"custom\");\n }\n return this;\n }\n /** @inheritdoc */\n end(endTimestamp) {\n if (this._endTime) {\n return;\n }\n this._endTime = spanTimeInputToSeconds(endTimestamp);\n logSpanEnd(this);\n this._onSpanEnded();\n }\n /**\n * Get JSON representation of this span.\n *\n * @hidden\n * @internal This method is purely for internal purposes and should not be used outside\n * of SDK code. If you need to get a JSON representation of a span,\n * use `spanToJSON(span)` instead.\n */\n getSpanJSON() {\n return {\n data: this._attributes,\n description: this._name,\n op: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n parent_span_id: this._parentSpanId,\n span_id: this._spanId,\n start_timestamp: this._startTime,\n status: getStatusMessage(this._status),\n timestamp: this._endTime,\n trace_id: this._traceId,\n origin: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN],\n profile_id: this._attributes[SEMANTIC_ATTRIBUTE_PROFILE_ID],\n exclusive_time: this._attributes[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME],\n measurements: timedEventsToMeasurements(this._events),\n is_segment: this._isStandaloneSpan && getRootSpan(this) === this || void 0,\n segment_id: this._isStandaloneSpan ? getRootSpan(this).spanContext().spanId : void 0,\n links: convertSpanLinksForEnvelope(this._links)\n };\n }\n /**\n * Get {@link StreamedSpanJSON} representation of this span.\n *\n * @hidden\n * @internal This method is purely for internal purposes and should not be used outside\n * of SDK code. If you need to get a JSON representation of a span,\n * use `spanToStreamedSpanJSON(span)` instead.\n */\n getStreamedSpanJSON() {\n return {\n name: this._name ?? \"\",\n span_id: this._spanId,\n trace_id: this._traceId,\n parent_span_id: this._parentSpanId,\n start_timestamp: this._startTime,\n // just in case _endTime is not set, we use the start time (i.e. duration 0)\n end_timestamp: this._endTime ?? this._startTime,\n is_segment: this._isStandaloneSpan || this === getRootSpan(this),\n status: getSimpleStatus(this._status),\n attributes: addStatusMessageAttribute(this._attributes, this._status),\n links: getStreamedSpanLinks(this._links)\n };\n }\n /** @inheritdoc */\n isRecording() {\n return !this._endTime && !!this._sampled;\n }\n /**\n * @inheritdoc\n */\n addEvent(name, attributesOrStartTime, startTime) {\n DEBUG_BUILD && debug.log(\"[Tracing] Adding an event to span:\", name);\n const time = isSpanTimeInput(attributesOrStartTime) ? attributesOrStartTime : startTime || timestampInSeconds();\n const attributes = isSpanTimeInput(attributesOrStartTime) ? {} : attributesOrStartTime || {};\n const event = {\n name,\n time: spanTimeInputToSeconds(time),\n attributes\n };\n this._events.push(event);\n return this;\n }\n /**\n * This method should generally not be used,\n * but for now we need a way to publicly check if the `_isStandaloneSpan` flag is set.\n * USE THIS WITH CAUTION!\n * @internal\n * @hidden\n * @experimental\n */\n isStandaloneSpan() {\n return !!this._isStandaloneSpan;\n }\n /** Emit `spanEnd` when the span is ended. */\n _onSpanEnded() {\n const client = getClient();\n if (client) {\n client.emit(\"spanEnd\", this);\n if (!this._isStandaloneSpan) {\n client.emit(\"afterSpanEnd\", this);\n }\n }\n const isSegmentSpan = this._isStandaloneSpan || this === getRootSpan(this);\n if (!isSegmentSpan) {\n return;\n }\n if (this._isStandaloneSpan) {\n if (this._sampled) {\n sendSpanEnvelope(createSpanEnvelope([this], client));\n } else {\n DEBUG_BUILD && debug.log(\"[Tracing] Discarding standalone span because its trace was not chosen to be sampled.\");\n if (client) {\n client.recordDroppedEvent(\"sample_rate\", \"span\");\n }\n }\n return;\n } else if (client && hasSpanStreamingEnabled(client)) {\n client.emit(\"afterSegmentSpanEnd\", this);\n return;\n }\n const transactionEvent = this._convertSpanToTransaction();\n if (transactionEvent) {\n const scope = getCapturedScopesOnSpan(this).scope || getCurrentScope();\n scope.captureEvent(transactionEvent);\n }\n }\n /**\n * Finish the transaction & prepare the event to send to Sentry.\n */\n _convertSpanToTransaction() {\n if (!isFullFinishedSpan(spanToJSON(this))) {\n return void 0;\n }\n if (!this._name) {\n DEBUG_BUILD && debug.warn(\"Transaction has no name, falling back to ``.\");\n this._name = \"\";\n }\n const { scope: capturedSpanScope, isolationScope: capturedSpanIsolationScope } = getCapturedScopesOnSpan(this);\n const normalizedRequest = capturedSpanScope?.getScopeData().sdkProcessingMetadata?.normalizedRequest;\n if (this._sampled !== true) {\n return void 0;\n }\n const finishedSpans = getSpanDescendants(this).filter((span) => span !== this && !isStandaloneSpan(span));\n const spans = finishedSpans.map((span) => spanToJSON(span)).filter(isFullFinishedSpan);\n const source = this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n delete this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n let hasGenAiSpans = false;\n spans.forEach((span) => {\n delete span.data[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n if (span.op?.startsWith(\"gen_ai.\")) {\n hasGenAiSpans = true;\n }\n });\n const transaction = {\n contexts: {\n trace: spanToTransactionTraceContext(this)\n },\n spans: (\n // spans.sort() mutates the array, but `spans` is already a copy so we can safely do this here\n // we do not use spans anymore after this point\n spans.length > MAX_SPAN_COUNT ? spans.sort((a, b) => a.start_timestamp - b.start_timestamp).slice(0, MAX_SPAN_COUNT) : spans\n ),\n start_timestamp: this._startTime,\n timestamp: this._endTime,\n transaction: this._name,\n type: \"transaction\",\n sdkProcessingMetadata: {\n capturedSpanScope,\n capturedSpanIsolationScope,\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(this),\n hasGenAiSpans\n },\n request: normalizedRequest,\n ...source && {\n transaction_info: {\n source\n }\n }\n };\n const measurements = timedEventsToMeasurements(this._events);\n const hasMeasurements = measurements && Object.keys(measurements).length;\n if (hasMeasurements) {\n DEBUG_BUILD && debug.log(\n \"[Measurements] Adding measurements to transaction event\",\n JSON.stringify(measurements, void 0, 2)\n );\n transaction.measurements = measurements;\n }\n return transaction;\n }\n}\nfunction isSpanTimeInput(value) {\n return value && typeof value === \"number\" || value instanceof Date || Array.isArray(value);\n}\nfunction isFullFinishedSpan(input) {\n return !!input.start_timestamp && !!input.timestamp && !!input.span_id && !!input.trace_id;\n}\nfunction isStandaloneSpan(span) {\n return span instanceof SentrySpan && span.isStandaloneSpan();\n}\nfunction sendSpanEnvelope(envelope) {\n const client = getClient();\n if (!client) {\n return;\n }\n const spanItems = envelope[1];\n if (!spanItems || spanItems.length === 0) {\n client.recordDroppedEvent(\"before_send\", \"span\");\n return;\n }\n client.sendEnvelope(envelope);\n}\n\nexport { SentrySpan };\n//# sourceMappingURL=sentrySpan.js.map\n", + "import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getClient, withScope, getCurrentScope, getIsolationScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { baggageHeaderToDynamicSamplingContext } from '../utils/baggage.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { handleCallbackErrors } from '../utils/handleCallbackErrors.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { shouldIgnoreSpan } from '../utils/should-ignore-span.js';\nimport { hasSpanStreamingEnabled } from './spans/hasSpanStreamingEnabled.js';\nimport { parseSampleRate } from '../utils/parseSampleRate.js';\nimport { generateTraceId } from '../utils/propagationContext.js';\nimport { safeMathRandom } from '../utils/randomSafeContext.js';\nimport { _getSpanForScope, _setSpanForScope } from '../utils/spanOnScope.js';\nimport { spanTimeInputToSeconds, getRootSpan, addChildSpanToSpan, spanIsSampled, spanToJSON } from '../utils/spanUtils.js';\nimport { shouldContinueTrace, propagationContextFromHeaders } from '../utils/tracing.js';\nimport { getDynamicSamplingContextFromSpan, freezeDscOnSpan } from './dynamicSamplingContext.js';\nimport { logSpanStart } from './logSpans.js';\nimport { sampleSpan } from './sampling.js';\nimport { SentryNonRecordingSpan, spanIsNonRecordingSpan } from './sentryNonRecordingSpan.js';\nimport { SentrySpan } from './sentrySpan.js';\nimport { SPAN_STATUS_ERROR } from './spanstatus.js';\nimport { setCapturedScopesOnSpan } from './utils.js';\n\nconst SUPPRESS_TRACING_KEY = \"__SENTRY_SUPPRESS_TRACING__\";\nfunction startSpan(options, callback) {\n const acs = getAcs();\n if (acs.startSpan) {\n return acs.startSpan(options, callback);\n }\n const spanArguments = parseSentrySpanArguments(options);\n const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n const customForkedScope = customScope?.clone();\n return withScope(customForkedScope, () => {\n const wrapper = getActiveSpanWrapper(customParentSpan);\n return wrapper(() => {\n const scope = getCurrentScope();\n const parentSpan = getParentSpan(scope, customParentSpan);\n const client = getClient();\n const missingRequiredParent = options.onlyIfParent && !parentSpan;\n const activeSpan = missingRequiredParent ? startMissingRequiredParentSpan(scope, client) : createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope\n });\n if (!_isIgnoredSpan(activeSpan) || !parentSpan) {\n _setSpanForScope(scope, activeSpan);\n }\n return handleCallbackErrors(\n () => callback(activeSpan),\n () => {\n const { status } = spanToJSON(activeSpan);\n if (activeSpan.isRecording() && (!status || status === \"ok\")) {\n activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n }\n },\n () => {\n activeSpan.end();\n }\n );\n });\n });\n}\nfunction startSpanManual(options, callback) {\n const acs = getAcs();\n if (acs.startSpanManual) {\n return acs.startSpanManual(options, callback);\n }\n const spanArguments = parseSentrySpanArguments(options);\n const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n const customForkedScope = customScope?.clone();\n return withScope(customForkedScope, () => {\n const wrapper = getActiveSpanWrapper(customParentSpan);\n return wrapper(() => {\n const scope = getCurrentScope();\n const parentSpan = getParentSpan(scope, customParentSpan);\n const missingRequiredParent = options.onlyIfParent && !parentSpan;\n const activeSpan = missingRequiredParent ? startMissingRequiredParentSpan(scope, getClient()) : createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope\n });\n if (!_isIgnoredSpan(activeSpan) || !parentSpan) {\n _setSpanForScope(scope, activeSpan);\n }\n return handleCallbackErrors(\n // We pass the `finish` function to the callback, so the user can finish the span manually\n // this is mainly here for historic purposes because previously, we instructed users to call\n // `finish` instead of `span.end()` to also clean up the scope. Nowadays, calling `span.end()`\n // or `finish` has the same effect and we simply leave it here to avoid breaking user code.\n () => callback(activeSpan, () => activeSpan.end()),\n () => {\n const { status } = spanToJSON(activeSpan);\n if (activeSpan.isRecording() && (!status || status === \"ok\")) {\n activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n }\n }\n );\n });\n });\n}\nfunction startInactiveSpan(options) {\n const acs = getAcs();\n if (acs.startInactiveSpan) {\n return acs.startInactiveSpan(options);\n }\n const spanArguments = parseSentrySpanArguments(options);\n const { forceTransaction, parentSpan: customParentSpan } = options;\n const wrapper = options.scope ? (callback) => withScope(options.scope, callback) : customParentSpan !== void 0 ? (callback) => withActiveSpan(customParentSpan, callback) : (callback) => callback();\n return wrapper(() => {\n const scope = getCurrentScope();\n const parentSpan = getParentSpan(scope, customParentSpan);\n const client = getClient();\n const missingRequiredParent = options.onlyIfParent && !parentSpan;\n if (missingRequiredParent) {\n return startMissingRequiredParentSpan(scope, client);\n }\n return createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope\n });\n });\n}\nconst continueTrace = (options, callback) => {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.continueTrace) {\n return acs.continueTrace(options, callback);\n }\n const { sentryTrace, baggage } = options;\n const client = getClient();\n const incomingDsc = baggageHeaderToDynamicSamplingContext(baggage);\n if (client && !shouldContinueTrace(client, incomingDsc?.org_id)) {\n return startNewTrace(callback);\n }\n return withScope((scope) => {\n const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n scope.setPropagationContext(propagationContext);\n _setSpanForScope(scope, void 0);\n return callback();\n });\n};\nfunction withActiveSpan(span, callback) {\n const acs = getAcs();\n if (acs.withActiveSpan) {\n return acs.withActiveSpan(span, callback);\n }\n return withScope((scope) => {\n _setSpanForScope(scope, span || void 0);\n return callback(scope);\n });\n}\nfunction suppressTracing(callback) {\n const acs = getAcs();\n if (acs.suppressTracing) {\n return acs.suppressTracing(callback);\n }\n return withScope((scope) => {\n scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: true });\n const res = callback();\n scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: void 0 });\n return res;\n });\n}\nfunction isTracingSuppressed(scope = getCurrentScope()) {\n const acs = getAcs();\n if (acs.isTracingSuppressed) {\n return acs.isTracingSuppressed(scope);\n }\n return scope.getScopeData().sdkProcessingMetadata[SUPPRESS_TRACING_KEY] === true;\n}\nfunction startNewTrace(callback) {\n const acs = getAcs();\n if (acs.startNewTrace) {\n return acs.startNewTrace(callback);\n }\n return withScope((scope) => {\n scope.setPropagationContext({\n traceId: generateTraceId(),\n sampleRand: safeMathRandom()\n });\n DEBUG_BUILD && debug.log(`Starting a new trace with id ${scope.getPropagationContext().traceId}`);\n return withActiveSpan(null, callback);\n });\n}\nfunction startMissingRequiredParentSpan(scope, client) {\n client?.recordDroppedEvent(\"no_parent_span\", \"span\");\n const span = new SentryNonRecordingSpan({ traceId: scope.getPropagationContext().traceId });\n setCapturedScopesOnSpan(span, scope, getIsolationScope());\n return span;\n}\nfunction createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope\n}) {\n const isolationScope = getIsolationScope();\n if (!hasSpansEnabled()) {\n const scopePropagationContext = { ...isolationScope.getPropagationContext(), ...scope.getPropagationContext() };\n const traceId = parentSpan ? parentSpan.spanContext().traceId : scopePropagationContext.traceId;\n const span2 = new SentryNonRecordingSpan({ traceId });\n if (parentSpan && !forceTransaction) {\n addChildSpanToSpan(parentSpan, span2);\n }\n setCapturedScopesOnSpan(span2, scope, isolationScope);\n return span2;\n }\n const client = getClient();\n if (_shouldIgnoreStreamedSpan(client, spanArguments)) {\n if (!isTracingSuppressed(scope)) {\n client?.recordDroppedEvent(\"ignored\", \"span\");\n }\n const ignoredSpan = new SentryNonRecordingSpan({\n dropReason: \"ignored\",\n traceId: parentSpan?.spanContext().traceId ?? scope.getPropagationContext().traceId\n });\n setCapturedScopesOnSpan(ignoredSpan, scope, isolationScope);\n return ignoredSpan;\n }\n let span;\n if (parentSpan && !forceTransaction) {\n span = _startChildSpan(parentSpan, scope, spanArguments, isolationScope);\n addChildSpanToSpan(parentSpan, span);\n } else if (parentSpan) {\n const dsc = getDynamicSamplingContextFromSpan(parentSpan);\n const { traceId, spanId: parentSpanId } = parentSpan.spanContext();\n const parentSampled = spanIsSampled(parentSpan);\n span = _startRootSpan(\n {\n traceId,\n parentSpanId,\n ...spanArguments\n },\n scope,\n isolationScope,\n parentSampled\n );\n freezeDscOnSpan(span, dsc);\n } else {\n const {\n traceId,\n dsc,\n parentSpanId,\n sampled: parentSampled\n } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext()\n };\n span = _startRootSpan(\n {\n traceId,\n parentSpanId,\n ...spanArguments\n },\n scope,\n isolationScope,\n parentSampled\n );\n if (dsc) {\n freezeDscOnSpan(span, dsc);\n }\n }\n logSpanStart(span);\n return span;\n}\nfunction parseSentrySpanArguments(options) {\n const exp = options.experimental || {};\n const initialCtx = {\n isStandalone: exp.standalone,\n ...options\n };\n if (options.startTime) {\n const ctx = { ...initialCtx };\n ctx.startTimestamp = spanTimeInputToSeconds(options.startTime);\n delete ctx.startTime;\n return ctx;\n }\n return initialCtx;\n}\nfunction getAcs() {\n const carrier = getMainCarrier();\n return getAsyncContextStrategy(carrier);\n}\nfunction _startRootSpan(spanArguments, scope, isolationScope, parentSampled) {\n const client = getClient();\n const options = client?.getOptions() || {};\n const { name = \"\" } = spanArguments;\n const mutableSpanSamplingData = { spanAttributes: { ...spanArguments.attributes }, spanName: name, parentSampled };\n client?.emit(\"beforeSampling\", mutableSpanSamplingData, { decision: false });\n const finalParentSampled = mutableSpanSamplingData.parentSampled ?? parentSampled;\n const finalAttributes = mutableSpanSamplingData.spanAttributes;\n const currentPropagationContext = scope.getPropagationContext();\n const _isTracingSuppressed = isTracingSuppressed(scope);\n const [sampled, sampleRate, localSampleRateWasApplied] = _isTracingSuppressed ? [false] : sampleSpan(\n options,\n {\n name,\n parentSampled: finalParentSampled,\n attributes: finalAttributes,\n normalizedRequest: isolationScope.getScopeData().sdkProcessingMetadata.normalizedRequest,\n parentSampleRate: parseSampleRate(currentPropagationContext.dsc?.sample_rate)\n },\n currentPropagationContext.sampleRand\n );\n const rootSpan = new SentrySpan({\n ...spanArguments,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: \"custom\",\n [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: sampleRate !== void 0 && localSampleRateWasApplied ? sampleRate : void 0,\n ...finalAttributes\n },\n sampled\n });\n if (!sampled && client && !_isTracingSuppressed) {\n DEBUG_BUILD && debug.log(\"[Tracing] Discarding root span because its trace was not chosen to be sampled.\");\n client.recordDroppedEvent(\"sample_rate\", hasSpanStreamingEnabled(client) ? \"span\" : \"transaction\");\n }\n setCapturedScopesOnSpan(rootSpan, scope, isolationScope);\n if (client) {\n client.emit(\"spanStart\", rootSpan);\n }\n return rootSpan;\n}\nfunction _startChildSpan(parentSpan, scope, spanArguments, isolationScope) {\n const { spanId, traceId } = parentSpan.spanContext();\n const _isTracingSuppressed = isTracingSuppressed(scope);\n const sampled = _isTracingSuppressed ? false : spanIsSampled(parentSpan);\n const childSpan = sampled ? new SentrySpan({\n ...spanArguments,\n parentSpanId: spanId,\n traceId,\n sampled\n }) : new SentryNonRecordingSpan({ traceId });\n addChildSpanToSpan(parentSpan, childSpan);\n setCapturedScopesOnSpan(childSpan, scope, isolationScope);\n const client = getClient();\n if (!client) {\n return childSpan;\n }\n if (hasSpanStreamingEnabled(client) && spanIsNonRecordingSpan(childSpan)) {\n if (spanIsNonRecordingSpan(parentSpan) && parentSpan.dropReason) {\n childSpan.dropReason = parentSpan.dropReason;\n client.recordDroppedEvent(parentSpan.dropReason, \"span\");\n } else if (!_isTracingSuppressed) {\n childSpan.dropReason = \"sample_rate\";\n client.recordDroppedEvent(\"sample_rate\", \"span\");\n }\n }\n client.emit(\"spanStart\", childSpan);\n if (spanArguments.endTimestamp) {\n client.emit(\"spanEnd\", childSpan);\n client.emit(\"afterSpanEnd\", childSpan);\n }\n return childSpan;\n}\nfunction getParentSpan(scope, customParentSpan) {\n if (customParentSpan) {\n return customParentSpan;\n }\n if (customParentSpan === null) {\n return void 0;\n }\n const span = _getSpanForScope(scope);\n if (!span) {\n return void 0;\n }\n const client = getClient();\n const options = client ? client.getOptions() : {};\n if (options.parentSpanIsAlwaysRootSpan) {\n return getRootSpan(span);\n }\n return span;\n}\nfunction getActiveSpanWrapper(parentSpan) {\n return parentSpan !== void 0 ? (callback) => {\n return withActiveSpan(parentSpan, callback);\n } : (callback) => callback();\n}\nfunction _shouldIgnoreStreamedSpan(client, spanArguments) {\n const ignoreSpans = client?.getOptions().ignoreSpans;\n if (!client || !hasSpanStreamingEnabled(client) || !ignoreSpans?.length) {\n return false;\n }\n return shouldIgnoreSpan(\n {\n description: spanArguments.name || \"\",\n op: spanArguments.attributes?.[SEMANTIC_ATTRIBUTE_SENTRY_OP] || spanArguments.op,\n attributes: spanArguments.attributes\n },\n ignoreSpans\n );\n}\nfunction _isIgnoredSpan(span) {\n return spanIsNonRecordingSpan(span) && span.dropReason === \"ignored\";\n}\n\nexport { SUPPRESS_TRACING_KEY, continueTrace, isTracingSuppressed, startInactiveSpan, startNewTrace, startSpan, startSpanManual, suppressTracing, withActiveSpan };\n//# sourceMappingURL=trace.js.map\n", + "import { getCurrentScope, withScope } from '../currentScopes.js';\n\nconst ADD_LISTENER_METHODS = [\n \"addListener\",\n \"on\",\n \"once\",\n \"prependListener\",\n \"prependOnceListener\",\n \"addEventListener\"\n];\nconst REMOVE_LISTENER_METHODS = [\"removeListener\", \"off\", \"removeEventListener\"];\nconst SCOPE_BOUND_LISTENERS = /* @__PURE__ */ Symbol(\"SentryScopeBoundListeners\");\nlet registeringWrapper;\nfunction isReentrantWrapperRegistration(listener) {\n return registeringWrapper !== void 0 && (listener === registeringWrapper || listener.listener === registeringWrapper);\n}\nfunction bindScopeToEmitter(emitter, scope = getCurrentScope()) {\n const ee = emitter;\n if (getPatchMap(ee)) {\n return emitter;\n }\n createPatchMap(ee);\n for (const methodName of ADD_LISTENER_METHODS) {\n if (typeof ee[methodName] !== \"function\") {\n continue;\n }\n ee[methodName] = patchAddListener(ee, ee[methodName], scope);\n }\n for (const methodName of REMOVE_LISTENER_METHODS) {\n if (typeof ee[methodName] !== \"function\") {\n continue;\n }\n ee[methodName] = patchRemoveListener(ee, ee[methodName]);\n }\n if (typeof ee.removeAllListeners === \"function\") {\n ee.removeAllListeners = patchRemoveAllListeners(ee, ee.removeAllListeners);\n }\n return emitter;\n}\nfunction bindListenerToScope(listener, scope) {\n return function(...args) {\n return withScope(scope, () => listener.apply(this, args));\n };\n}\nfunction isBoundListener(listener) {\n return typeof listener === \"function\";\n}\nfunction patchAddListener(ee, original, scope) {\n return function(...args) {\n const event = args[0];\n const listener = args[1];\n const rest = args.slice(2);\n if (!isBoundListener(listener) || isReentrantWrapperRegistration(listener)) {\n return original.apply(this, args);\n }\n const map = getPatchMap(ee) || createPatchMap(ee);\n let listeners = map.get(event);\n if (!listeners) {\n listeners = /* @__PURE__ */ new WeakMap();\n map.set(event, listeners);\n }\n let boundListener = listeners.get(listener);\n if (!boundListener) {\n boundListener = bindListenerToScope(listener, scope);\n listeners.set(listener, boundListener);\n }\n const previous = registeringWrapper;\n registeringWrapper = boundListener;\n try {\n return original.call(this, event, boundListener, ...rest);\n } finally {\n registeringWrapper = previous;\n }\n };\n}\nfunction patchRemoveListener(ee, original) {\n return function(...args) {\n const event = args[0];\n const listener = args[1];\n const rest = args.slice(2);\n const boundListener = isBoundListener(listener) ? getPatchMap(ee)?.get(event)?.get(listener) : void 0;\n if (!boundListener) {\n return original.apply(this, args);\n }\n return original.call(this, event, boundListener, ...rest);\n };\n}\nfunction patchRemoveAllListeners(ee, original) {\n return function(...args) {\n const map = getPatchMap(ee);\n if (map) {\n if (args.length === 0) {\n createPatchMap(ee);\n } else {\n const event = args[0];\n map.delete(event);\n }\n }\n return original.apply(this, args);\n };\n}\nfunction createPatchMap(ee) {\n const map = /* @__PURE__ */ new Map();\n ee[SCOPE_BOUND_LISTENERS] = map;\n return map;\n}\nfunction getPatchMap(ee) {\n return ee[SCOPE_BOUND_LISTENERS];\n}\n\nexport { bindScopeToEmitter };\n//# sourceMappingURL=bindScopeToEmitter.js.map\n", + "import { getGlobalScope } from '../currentScopes.js';\nimport { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext.js';\nimport { merge } from './merge.js';\nimport { spanToTraceContext, getRootSpan, spanToJSON } from './spanUtils.js';\n\nfunction applyScopeDataToEvent(event, data) {\n const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n applyDataToEvent(event, data);\n if (span) {\n applySpanToEvent(event, span);\n }\n applyFingerprintToEvent(event, fingerprint);\n applyBreadcrumbsToEvent(event, breadcrumbs);\n applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\nfunction mergeScopeData(data, mergeData) {\n const {\n extra,\n tags,\n attributes,\n user,\n contexts,\n level,\n sdkProcessingMetadata,\n breadcrumbs,\n fingerprint,\n eventProcessors,\n attachments,\n propagationContext,\n transactionName,\n span\n } = mergeData;\n mergeAndOverwriteScopeData(data, \"extra\", extra);\n mergeAndOverwriteScopeData(data, \"tags\", tags);\n mergeAndOverwriteScopeData(data, \"attributes\", attributes);\n mergeAndOverwriteScopeData(data, \"user\", user);\n mergeAndOverwriteScopeData(data, \"contexts\", contexts);\n data.sdkProcessingMetadata = merge(data.sdkProcessingMetadata, sdkProcessingMetadata, 2);\n if (level) {\n data.level = level;\n }\n if (transactionName) {\n data.transactionName = transactionName;\n }\n if (span) {\n data.span = span;\n }\n if (breadcrumbs.length) {\n data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n }\n if (fingerprint.length) {\n data.fingerprint = [...data.fingerprint, ...fingerprint];\n }\n if (eventProcessors.length) {\n data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n }\n if (attachments.length) {\n data.attachments = [...data.attachments, ...attachments];\n }\n data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\nfunction mergeAndOverwriteScopeData(data, prop, mergeVal) {\n data[prop] = merge(data[prop], mergeVal, 1);\n}\nfunction getCombinedScopeData(isolationScope, currentScope) {\n const scopeData = getGlobalScope().getScopeData();\n isolationScope && mergeScopeData(scopeData, isolationScope.getScopeData());\n currentScope && mergeScopeData(scopeData, currentScope.getScopeData());\n return scopeData;\n}\nfunction applyDataToEvent(event, data) {\n const { extra, tags, user, contexts, level, transactionName } = data;\n if (Object.keys(extra).length) {\n event.extra = { ...extra, ...event.extra };\n }\n if (Object.keys(tags).length) {\n event.tags = { ...tags, ...event.tags };\n }\n if (Object.keys(user).length) {\n event.user = { ...user, ...event.user };\n }\n if (Object.keys(contexts).length) {\n event.contexts = { ...contexts, ...event.contexts };\n }\n if (level) {\n event.level = level;\n }\n if (transactionName && event.type !== \"transaction\") {\n event.transaction = transactionName;\n }\n}\nfunction applyBreadcrumbsToEvent(event, breadcrumbs) {\n const mergedBreadcrumbs = [...event.breadcrumbs || [], ...breadcrumbs];\n event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : void 0;\n}\nfunction applySdkMetadataToEvent(event, sdkProcessingMetadata) {\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n ...sdkProcessingMetadata\n };\n}\nfunction applySpanToEvent(event, span) {\n event.contexts = {\n trace: spanToTraceContext(span),\n ...event.contexts\n };\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n ...event.sdkProcessingMetadata\n };\n const rootSpan = getRootSpan(span);\n const transactionName = spanToJSON(rootSpan).description;\n if (transactionName && !event.transaction && event.type === \"transaction\") {\n event.transaction = transactionName;\n }\n}\nfunction applyFingerprintToEvent(event, fingerprint) {\n event.fingerprint = event.fingerprint ? Array.isArray(event.fingerprint) ? event.fingerprint : [event.fingerprint] : [];\n if (fingerprint) {\n event.fingerprint = event.fingerprint.concat(fingerprint);\n }\n if (!event.fingerprint.length) {\n delete event.fingerprint;\n }\n}\n\nexport { applyScopeDataToEvent, getCombinedScopeData, mergeAndOverwriteScopeData, mergeScopeData };\n//# sourceMappingURL=scopeData.js.map\n", + "function scopeContextsToSpanAttributes(contexts) {\n const attrs = {};\n const { response, profile, cloud_resource, culture, state } = contexts;\n if (response) {\n if (response.status_code != null) {\n attrs[\"http.response.status_code\"] = response.status_code;\n }\n if (response.body_size != null) {\n attrs[\"http.response.body.size\"] = response.body_size;\n }\n }\n if (profile) {\n if (profile.profile_id) {\n attrs[\"sentry.profile_id\"] = profile.profile_id;\n }\n if (profile.profiler_id) {\n attrs[\"sentry.profiler_id\"] = profile.profiler_id;\n }\n }\n if (cloud_resource) {\n for (const [key, value] of Object.entries(cloud_resource)) {\n if (value != null) {\n attrs[key] = value;\n }\n }\n }\n if (culture) {\n if (culture.locale) {\n attrs[\"culture.locale\"] = culture.locale;\n }\n if (culture.timezone) {\n attrs[\"culture.timezone\"] = culture.timezone;\n }\n }\n if (state?.state && typeof state.state.type === \"string\") {\n attrs[\"state.type\"] = state.state.type;\n }\n const angular = contexts[\"angular\"];\n if (angular) {\n const version = angular[\"version\"];\n if (typeof version === \"string\" || typeof version === \"number\") {\n attrs[\"angular.version\"] = version;\n }\n }\n const react = contexts[\"react\"];\n if (react) {\n const version = react[\"version\"];\n if (typeof version === \"string\" || typeof version === \"number\") {\n attrs[\"react.version\"] = version;\n }\n }\n return attrs;\n}\n\nexport { scopeContextsToSpanAttributes };\n//# sourceMappingURL=scopeContextAttributes.js.map\n", + "import { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_USER_USERNAME, SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS, SEMANTIC_ATTRIBUTE_USER_EMAIL, SEMANTIC_ATTRIBUTE_USER_ID, SEMANTIC_ATTRIBUTE_SENTRY_SDK_VERSION, SEMANTIC_ATTRIBUTE_SENTRY_SDK_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_ID, SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_NAME, SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT, SEMANTIC_ATTRIBUTE_SENTRY_RELEASE, SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS } from '../../semanticAttributes.js';\nimport { getCombinedScopeData } from '../../utils/scopeData.js';\nimport { spanToStreamedSpanJSON, INTERNAL_getSegmentSpan, streamedSpanJsonToSerializedSpan, showSpanDropWarning } from '../../utils/spanUtils.js';\nimport { getCapturedScopesOnSpan } from '../utils.js';\nimport { isStreamedBeforeSendSpanCallback } from './beforeSendSpan.js';\nimport { scopeContextsToSpanAttributes } from './scopeContextAttributes.js';\nimport { DEFAULT_ENVIRONMENT } from '../../constants.js';\n\nfunction captureSpan(span, client) {\n const spanJSON = spanToStreamedSpanJSON(span);\n const segmentSpan = INTERNAL_getSegmentSpan(span);\n const serializedSegmentSpan = spanToStreamedSpanJSON(segmentSpan);\n const { isolationScope: spanIsolationScope, scope: spanScope } = getCapturedScopesOnSpan(span);\n const finalScopeData = getCombinedScopeData(spanIsolationScope, spanScope);\n applyCommonSpanAttributes(spanJSON, serializedSegmentSpan, client, finalScopeData);\n const spanKind = span.kind;\n client.emit(\"preprocessSpan\", spanJSON, { spanKind });\n if (spanJSON.is_segment) {\n applyScopeToSegmentSpan(spanJSON, finalScopeData);\n applySdkMetadataToSegmentSpan(spanJSON, client);\n client.emit(\"processSegmentSpan\", spanJSON);\n }\n client.emit(\"processSpan\", spanJSON);\n const { beforeSendSpan } = client.getOptions();\n const processedSpan = beforeSendSpan && isStreamedBeforeSendSpanCallback(beforeSendSpan) ? applyBeforeSendSpanCallback(spanJSON, beforeSendSpan) : spanJSON;\n const spanNameSource = processedSpan.attributes?.[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n if (spanNameSource) {\n safeSetSpanJSONAttributes(processedSpan, {\n // Purposefully not using a constant defined here like in other attributes:\n // This will be the name for SEMANTIC_ATTRIBUTE_SENTRY_SOURCE in v11\n \"sentry.span.source\": spanNameSource\n });\n }\n return {\n ...streamedSpanJsonToSerializedSpan(processedSpan),\n _segmentSpan: segmentSpan\n };\n}\nfunction applyScopeToSegmentSpan(segmentSpanJSON, scopeData) {\n const contextAttributes = scopeContextsToSpanAttributes(scopeData.contexts);\n safeSetSpanJSONAttributes(segmentSpanJSON, contextAttributes);\n}\nfunction safeSetSpanJSONAttributes(spanJSON, newAttributes) {\n const originalAttributes = spanJSON.attributes ?? (spanJSON.attributes = {});\n Object.entries(newAttributes).forEach(([key, value]) => {\n if (value != null && !(key in originalAttributes)) {\n originalAttributes[key] = value;\n }\n });\n}\nfunction applySdkMetadataToSegmentSpan(segmentSpanJSON, client) {\n const integrationNames = client.getIntegrationNames();\n if (!integrationNames.length) return;\n safeSetSpanJSONAttributes(segmentSpanJSON, {\n [SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS]: integrationNames\n });\n}\nfunction applyCommonSpanAttributes(spanJSON, serializedSegmentSpan, client, scopeData) {\n const sdk = client.getSdkMetadata();\n const { release, environment } = client.getOptions();\n safeSetSpanJSONAttributes(spanJSON, {\n [SEMANTIC_ATTRIBUTE_SENTRY_RELEASE]: release,\n [SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT]: environment || DEFAULT_ENVIRONMENT,\n [SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_NAME]: serializedSegmentSpan.name,\n [SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_ID]: serializedSegmentSpan.span_id,\n [SEMANTIC_ATTRIBUTE_SENTRY_SDK_NAME]: sdk?.sdk?.name,\n [SEMANTIC_ATTRIBUTE_SENTRY_SDK_VERSION]: sdk?.sdk?.version,\n [SEMANTIC_ATTRIBUTE_USER_ID]: scopeData.user?.id,\n [SEMANTIC_ATTRIBUTE_USER_EMAIL]: scopeData.user?.email,\n [SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS]: scopeData.user?.ip_address,\n [SEMANTIC_ATTRIBUTE_USER_USERNAME]: scopeData.user?.username,\n ...scopeData.attributes\n });\n}\nfunction applyBeforeSendSpanCallback(span, beforeSendSpan) {\n const modifedSpan = beforeSendSpan(span);\n if (!modifedSpan) {\n showSpanDropWarning();\n return span;\n }\n return modifedSpan;\n}\n\nexport { applyBeforeSendSpanCallback, captureSpan, safeSetSpanJSONAttributes };\n//# sourceMappingURL=captureSpan.js.map\n", + "import { isThenable } from './is.js';\n\nconst STATE_PENDING = 0;\nconst STATE_RESOLVED = 1;\nconst STATE_REJECTED = 2;\nfunction resolvedSyncPromise(value) {\n return new SyncPromise((resolve) => {\n resolve(value);\n });\n}\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\nclass SyncPromise {\n constructor(executor) {\n this._state = STATE_PENDING;\n this._handlers = [];\n this._runExecutor(executor);\n }\n /** @inheritdoc */\n then(onfulfilled, onrejected) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n (result) => {\n if (!onfulfilled) {\n resolve(result);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n (reason) => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n }\n ]);\n this._executeHandlers();\n });\n }\n /** @inheritdoc */\n catch(onrejected) {\n return this.then((val) => val, onrejected);\n }\n /** @inheritdoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n return this.then(\n (value) => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n (reason) => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n }\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n resolve(val);\n });\n });\n }\n /** Excute the resolve/reject handlers. */\n _executeHandlers() {\n if (this._state === STATE_PENDING) {\n return;\n }\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n cachedHandlers.forEach((handler) => {\n if (handler[0]) {\n return;\n }\n if (this._state === STATE_RESOLVED) {\n handler[1](this._value);\n }\n if (this._state === STATE_REJECTED) {\n handler[2](this._value);\n }\n handler[0] = true;\n });\n }\n /** Run the executor for the SyncPromise. */\n _runExecutor(executor) {\n const setResult = (state, value) => {\n if (this._state !== STATE_PENDING) {\n return;\n }\n if (isThenable(value)) {\n void value.then(resolve, reject);\n return;\n }\n this._state = state;\n this._value = value;\n this._executeHandlers();\n };\n const resolve = (value) => {\n setResult(STATE_RESOLVED, value);\n };\n const reject = (reason) => {\n setResult(STATE_REJECTED, reason);\n };\n try {\n executor(resolve, reject);\n } catch (e) {\n reject(e);\n }\n }\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n", + "import { DEBUG_BUILD } from './debug-build.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isThenable } from './utils/is.js';\nimport { resolvedSyncPromise, rejectedSyncPromise } from './utils/syncpromise.js';\n\nfunction notifyEventProcessors(processors, event, hint, index = 0) {\n try {\n const result = _notifyEventProcessors(event, hint, processors, index);\n return isThenable(result) ? result : resolvedSyncPromise(result);\n } catch (error) {\n return rejectedSyncPromise(error);\n }\n}\nfunction _notifyEventProcessors(event, hint, processors, index) {\n const processor = processors[index];\n if (!event || !processor) {\n return event;\n }\n const result = processor({ ...event }, hint);\n DEBUG_BUILD && result === null && debug.log(`Event processor \"${processor.id || \"?\"}\" dropped event`);\n if (isThenable(result)) {\n return result.then((final) => _notifyEventProcessors(final, hint, processors, index + 1));\n }\n return _notifyEventProcessors(result, hint, processors, index + 1);\n}\n\nexport { notifyEventProcessors };\n//# sourceMappingURL=eventProcessors.js.map\n", + "import { normalizeStackTracePath } from './stacktrace.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nlet parsedStackResults;\nlet lastSentryKeysCount;\nlet lastNativeKeysCount;\nlet cachedFilenameDebugIds;\nfunction getFilenameToDebugIdMap(stackParser) {\n const sentryDebugIdMap = GLOBAL_OBJ._sentryDebugIds;\n const nativeDebugIdMap = GLOBAL_OBJ._debugIds;\n if (!sentryDebugIdMap && !nativeDebugIdMap) {\n return {};\n }\n const sentryDebugIdKeys = sentryDebugIdMap ? Object.keys(sentryDebugIdMap) : [];\n const nativeDebugIdKeys = nativeDebugIdMap ? Object.keys(nativeDebugIdMap) : [];\n if (cachedFilenameDebugIds && sentryDebugIdKeys.length === lastSentryKeysCount && nativeDebugIdKeys.length === lastNativeKeysCount) {\n return cachedFilenameDebugIds;\n }\n lastSentryKeysCount = sentryDebugIdKeys.length;\n lastNativeKeysCount = nativeDebugIdKeys.length;\n cachedFilenameDebugIds = {};\n if (!parsedStackResults) {\n parsedStackResults = {};\n }\n const processDebugIds = (debugIdKeys, debugIdMap) => {\n for (const key of debugIdKeys) {\n const debugId = debugIdMap[key];\n const result = parsedStackResults?.[key];\n if (result && cachedFilenameDebugIds && debugId) {\n cachedFilenameDebugIds[result[0]] = debugId;\n if (parsedStackResults) {\n parsedStackResults[key] = [result[0], debugId];\n }\n } else if (debugId) {\n const parsedStack = stackParser(key);\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n const stackFrame = parsedStack[i];\n const filename = stackFrame?.filename;\n if (filename && cachedFilenameDebugIds && parsedStackResults) {\n cachedFilenameDebugIds[filename] = debugId;\n parsedStackResults[key] = [filename, debugId];\n break;\n }\n }\n }\n }\n };\n if (sentryDebugIdMap) {\n processDebugIds(sentryDebugIdKeys, sentryDebugIdMap);\n }\n if (nativeDebugIdMap) {\n processDebugIds(nativeDebugIdKeys, nativeDebugIdMap);\n }\n return cachedFilenameDebugIds;\n}\nfunction getDebugImagesForResources(stackParser, resource_paths) {\n const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n if (!filenameDebugIdMap) {\n return [];\n }\n const images = [];\n for (const path of resource_paths) {\n const normalizedPath = normalizeStackTracePath(path);\n if (normalizedPath && filenameDebugIdMap[normalizedPath]) {\n images.push({\n type: \"sourcemap\",\n code_file: path,\n debug_id: filenameDebugIdMap[normalizedPath]\n });\n }\n }\n return images;\n}\n\nexport { getDebugImagesForResources, getFilenameToDebugIdMap };\n//# sourceMappingURL=debug-ids.js.map\n", + "import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { notifyEventProcessors } from '../eventProcessors.js';\nimport { Scope } from '../scope.js';\nimport { getFilenameToDebugIdMap } from './debug-ids.js';\nimport { uuid4, addExceptionMechanism } from './misc.js';\nimport { normalize } from './normalize.js';\nimport { getCombinedScopeData, applyScopeDataToEvent } from './scopeData.js';\nimport { truncate } from './string.js';\nimport { resolvedSyncPromise } from './syncpromise.js';\nimport { dateTimestampInSeconds } from './time.js';\n\nfunction prepareEvent(options, event, hint, scope, client, isolationScope) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1e3 } = options;\n const prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds()\n };\n const integrations = hint.integrations || options.integrations.map((i) => i.name);\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(prepared, integrations);\n if (client) {\n client.emit(\"applyFrameMetadata\", event);\n }\n if (event.type === void 0) {\n applyDebugIds(prepared, options.stackParser);\n }\n const finalScope = getFinalScope(scope, hint.captureContext);\n if (hint.mechanism) {\n addExceptionMechanism(prepared, hint.mechanism);\n }\n const clientEventProcessors = client ? client.getEventProcessors() : [];\n const data = getCombinedScopeData(isolationScope, finalScope);\n const attachments = [...hint.attachments || [], ...data.attachments];\n if (attachments.length) {\n hint.attachments = attachments;\n }\n applyScopeDataToEvent(prepared, data);\n const eventProcessors = [\n ...clientEventProcessors,\n // Run scope event processors _after_ all other processors\n ...data.eventProcessors\n ];\n const isInternalException = hint.data && hint.data.__sentry__ === true;\n const result = isInternalException ? resolvedSyncPromise(prepared) : notifyEventProcessors(eventProcessors, prepared, hint);\n return result.then((evt) => {\n if (evt) {\n applyDebugMeta(evt);\n }\n if (typeof normalizeDepth === \"number\" && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\nfunction applyClientOptions(event, options) {\n const { environment, release, dist, maxValueLength } = options;\n event.environment = event.environment || environment || DEFAULT_ENVIRONMENT;\n if (!event.release && release) {\n event.release = release;\n }\n if (!event.dist && dist) {\n event.dist = dist;\n }\n const request = event.request;\n if (request?.url && maxValueLength) {\n request.url = truncate(request.url, maxValueLength);\n }\n if (maxValueLength) {\n event.exception?.values?.forEach((exception) => {\n if (exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n });\n }\n}\nfunction applyDebugIds(event, stackParser) {\n const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n event.exception?.values?.forEach((exception) => {\n exception.stacktrace?.frames?.forEach((frame) => {\n if (frame.filename) {\n frame.debug_id = filenameDebugIdMap[frame.filename];\n }\n });\n });\n}\nfunction applyDebugMeta(event) {\n const filenameDebugIdMap = {};\n event.exception?.values?.forEach((exception) => {\n exception.stacktrace?.frames?.forEach((frame) => {\n if (frame.debug_id) {\n if (frame.abs_path) {\n filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n } else if (frame.filename) {\n filenameDebugIdMap[frame.filename] = frame.debug_id;\n }\n delete frame.debug_id;\n }\n });\n });\n if (Object.keys(filenameDebugIdMap).length === 0) {\n return;\n }\n event.debug_meta = event.debug_meta || {};\n event.debug_meta.images = event.debug_meta.images || [];\n const images = event.debug_meta.images;\n Object.entries(filenameDebugIdMap).forEach(([filename, debug_id]) => {\n images.push({\n type: \"sourcemap\",\n code_file: filename,\n debug_id\n });\n });\n}\nfunction applyIntegrationsMetadata(event, integrationNames) {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...event.sdk.integrations || [], ...integrationNames];\n }\n}\nfunction normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n const normalized = {\n ...event,\n ...event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map((b) => ({\n ...b,\n ...b.data && {\n data: normalize(b.data, depth, maxBreadth)\n }\n }))\n },\n ...event.user && {\n user: normalize(event.user, depth, maxBreadth)\n },\n ...event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth)\n },\n ...event.extra && {\n extra: normalize(event.extra, depth, maxBreadth)\n }\n };\n if (event.contexts?.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n if (event.spans) {\n normalized.spans = event.spans.map((span) => {\n return {\n ...span,\n ...span.data && {\n data: normalize(span.data, depth, maxBreadth)\n }\n };\n });\n }\n if (event.contexts?.flags && normalized.contexts) {\n normalized.contexts.flags = normalize(event.contexts.flags, 3, maxBreadth);\n }\n return normalized;\n}\nfunction getFinalScope(scope, captureContext) {\n if (!captureContext) {\n return scope;\n }\n const finalScope = scope ? scope.clone() : new Scope();\n finalScope.update(captureContext);\n return finalScope;\n}\nfunction parseEventHintOrCaptureContext(hint) {\n if (!hint) {\n return void 0;\n }\n if (hintIsScopeOrFunction(hint)) {\n return { captureContext: hint };\n }\n if (hintIsScopeContext(hint)) {\n return {\n captureContext: hint\n };\n }\n return hint;\n}\nfunction hintIsScopeOrFunction(hint) {\n return hint instanceof Scope || typeof hint === \"function\";\n}\nconst captureContextKeys = [\n \"user\",\n \"level\",\n \"extra\",\n \"contexts\",\n \"tags\",\n \"fingerprint\",\n \"propagationContext\"\n];\nfunction hintIsScopeContext(hint) {\n return Object.keys(hint).some((key) => captureContextKeys.includes(key));\n}\n\nexport { applyClientOptions, applyDebugIds, applyDebugMeta, parseEventHintOrCaptureContext, prepareEvent };\n//# sourceMappingURL=prepareEvent.js.map\n", + "import { getIsolationScope, getCurrentScope, getClient, withIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\nimport { startNewTrace } from './tracing/trace.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isThenable } from './utils/is.js';\nimport { uuid4 } from './utils/misc.js';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent.js';\nimport { getCombinedScopeData } from './utils/scopeData.js';\nimport { timestampInSeconds } from './utils/time.js';\nimport { GLOBAL_OBJ } from './utils/worldwide.js';\n\nfunction captureException(exception, hint) {\n return getCurrentScope().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\nfunction captureMessage(message, captureContext) {\n const level = typeof captureContext === \"string\" ? captureContext : void 0;\n const hint = typeof captureContext !== \"string\" ? { captureContext } : void 0;\n return getCurrentScope().captureMessage(message, level, hint);\n}\nfunction captureEvent(event, hint) {\n return getCurrentScope().captureEvent(event, hint);\n}\nfunction setContext(name, context) {\n getIsolationScope().setContext(name, context);\n}\nfunction setExtras(extras) {\n getIsolationScope().setExtras(extras);\n}\nfunction setExtra(key, extra) {\n getIsolationScope().setExtra(key, extra);\n}\nfunction setTags(tags) {\n getIsolationScope().setTags(tags);\n}\nfunction setTag(key, value) {\n getIsolationScope().setTag(key, value);\n}\nfunction setAttributes(attributes) {\n getIsolationScope().setAttributes(attributes);\n}\nfunction setAttribute(key, value) {\n getIsolationScope().setAttribute(key, value);\n}\nfunction setUser(user) {\n getIsolationScope().setUser(user);\n}\nfunction setConversationId(conversationId) {\n getIsolationScope().setConversationId(conversationId);\n}\nfunction lastEventId() {\n return getIsolationScope().lastEventId();\n}\nfunction captureCheckIn(checkIn, upsertMonitorConfig) {\n const scope = getCurrentScope();\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && debug.warn(\"Cannot capture check-in. No client defined.\");\n } else if (!client.captureCheckIn) {\n DEBUG_BUILD && debug.warn(\"Cannot capture check-in. Client does not support sending check-ins.\");\n } else {\n return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n }\n return uuid4();\n}\nfunction withMonitor(monitorSlug, callback, upsertMonitorConfig) {\n function runCallback() {\n const checkInId = captureCheckIn({ monitorSlug, status: \"in_progress\" }, upsertMonitorConfig);\n const now = timestampInSeconds();\n function finishCheckIn(status) {\n captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n }\n let maybePromiseResult;\n try {\n maybePromiseResult = callback();\n } catch (e) {\n finishCheckIn(\"error\");\n throw e;\n }\n if (isThenable(maybePromiseResult)) {\n return maybePromiseResult.then(\n (r) => {\n finishCheckIn(\"ok\");\n return r;\n },\n (e) => {\n finishCheckIn(\"error\");\n throw e;\n }\n );\n }\n finishCheckIn(\"ok\");\n return maybePromiseResult;\n }\n return withIsolationScope(() => upsertMonitorConfig?.isolateTrace ? startNewTrace(runCallback) : runCallback());\n}\nasync function flush(timeout) {\n const client = getClient();\n if (client) {\n return client.flush(timeout);\n }\n DEBUG_BUILD && debug.warn(\"Cannot flush events. No client defined.\");\n return Promise.resolve(false);\n}\nasync function close(timeout) {\n const client = getClient();\n if (client) {\n return client.close(timeout);\n }\n DEBUG_BUILD && debug.warn(\"Cannot flush events and disable SDK. No client defined.\");\n return Promise.resolve(false);\n}\nfunction isInitialized() {\n return !!getClient();\n}\nfunction isEnabled() {\n const client = getClient();\n return client?.getOptions().enabled !== false && !!client?.getTransport();\n}\nfunction addEventProcessor(callback) {\n getIsolationScope().addEventProcessor(callback);\n}\nfunction startSession(context) {\n const isolationScope = getIsolationScope();\n const { user } = getCombinedScopeData(isolationScope, getCurrentScope());\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n const session = makeSession({\n user,\n ...userAgent && { userAgent },\n ...context\n });\n const currentSession = isolationScope.getSession();\n if (currentSession?.status === \"ok\") {\n updateSession(currentSession, { status: \"exited\" });\n }\n endSession();\n isolationScope.setSession(session);\n return session;\n}\nfunction endSession() {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session) {\n closeSession(session);\n }\n _sendSessionUpdate();\n isolationScope.setSession();\n}\nfunction _sendSessionUpdate() {\n const isolationScope = getIsolationScope();\n const client = getClient();\n const session = isolationScope.getSession();\n if (session && client) {\n client.captureSession(session);\n }\n}\nfunction captureSession(end = false) {\n if (end) {\n endSession();\n return;\n }\n _sendSessionUpdate();\n}\n\nexport { addEventProcessor, captureCheckIn, captureEvent, captureException, captureMessage, captureSession, close, endSession, flush, isEnabled, isInitialized, lastEventId, setAttribute, setAttributes, setContext, setConversationId, setExtra, setExtras, setTag, setTags, setUser, startSession, withMonitor };\n//# sourceMappingURL=exports.js.map\n", + "function safeUnref(timer) {\n if (typeof timer === \"object\" && typeof timer.unref === \"function\") {\n timer.unref();\n }\n return timer;\n}\n\nexport { safeUnref };\n//# sourceMappingURL=timer.js.map\n", + "import { getMainCarrier } from '../carrier.js';\nimport { _setSpanForScope } from '../utils/spanOnScope.js';\nimport { safeUnref } from '../utils/timer.js';\nimport { getAsyncContextStrategy } from './index.js';\n\nfunction waitForTracingChannelBinding(callback, retries = 1) {\n const binding = getAsyncContextStrategy(getMainCarrier()).getTracingChannelBinding?.();\n if (binding) {\n callback();\n return;\n }\n if (!retries) {\n return;\n }\n safeUnref(\n setTimeout(() => {\n waitForTracingChannelBinding(callback, retries - 1);\n }, 1)\n );\n}\nfunction _INTERNAL_createTracingChannelBinding(asyncLocalStorage, getScopes) {\n return {\n asyncLocalStorage,\n getStoreWithActiveSpan: (span) => {\n const { scope, isolationScope } = getScopes();\n const activeScope = scope.clone();\n _setSpanForScope(activeScope, span);\n return { scope: activeScope, isolationScope };\n }\n };\n}\n\nexport { _INTERNAL_createTracingChannelBinding, waitForTracingChannelBinding };\n//# sourceMappingURL=tracing-channel-binding.js.map\n", + "import { resolvedSyncPromise, rejectedSyncPromise } from './syncpromise.js';\nimport { safeUnref } from './timer.js';\n\nconst SENTRY_BUFFER_FULL_ERROR = /* @__PURE__ */ Symbol.for(\"SentryBufferFullError\");\nfunction makePromiseBuffer(limit = 100) {\n const buffer = /* @__PURE__ */ new Set();\n function isReady() {\n return buffer.size < limit;\n }\n function remove(task) {\n buffer.delete(task);\n }\n function add(taskProducer) {\n if (!isReady()) {\n return rejectedSyncPromise(SENTRY_BUFFER_FULL_ERROR);\n }\n const task = taskProducer();\n buffer.add(task);\n void task.then(\n () => remove(task),\n () => remove(task)\n );\n return task;\n }\n function drain(timeout) {\n if (!buffer.size) {\n return resolvedSyncPromise(true);\n }\n const drainPromise = Promise.allSettled(Array.from(buffer)).then(() => true);\n if (!timeout) {\n return drainPromise;\n }\n const promises = [\n drainPromise,\n new Promise((resolve) => safeUnref(setTimeout(() => resolve(false), timeout)))\n ];\n return Promise.race(promises);\n }\n return {\n get $() {\n return Array.from(buffer);\n },\n add,\n drain\n };\n}\n\nexport { SENTRY_BUFFER_FULL_ERROR, makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n", + "import { safeDateNow } from './randomSafeContext.js';\n\nconst DEFAULT_RETRY_AFTER = 60 * 1e3;\nfunction parseRetryAfterHeader(header, now = safeDateNow()) {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1e3;\n }\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n return DEFAULT_RETRY_AFTER;\n}\nfunction disabledUntil(limits, dataCategory) {\n return limits[dataCategory] || limits.all || 0;\n}\nfunction isRateLimited(limits, dataCategory, now = safeDateNow()) {\n return disabledUntil(limits, dataCategory) > now;\n}\nfunction updateRateLimits(limits, { statusCode, headers }, now = safeDateNow()) {\n const updatedRateLimits = {\n ...limits\n };\n const rateLimitHeader = headers?.[\"x-sentry-rate-limits\"];\n const retryAfterHeader = headers?.[\"retry-after\"];\n if (rateLimitHeader) {\n for (const limit of rateLimitHeader.trim().split(\",\")) {\n const [retryAfter, categories, , , namespaces] = limit.split(\":\", 5);\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1e3;\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(\";\")) {\n if (category === \"metric_bucket\") {\n if (!namespaces || namespaces.split(\";\").includes(\"custom\")) {\n updatedRateLimits[category] = now + delay;\n }\n } else {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1e3;\n }\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { forEachEnvelopeItem, envelopeItemTypeToDataCategory, createEnvelope, serializeEnvelope, envelopeContainsItemType } from '../utils/envelope.js';\nimport { makePromiseBuffer, SENTRY_BUFFER_FULL_ERROR } from '../utils/promisebuffer.js';\nimport { isRateLimited, updateRateLimits } from '../utils/ratelimit.js';\n\nconst DEFAULT_TRANSPORT_BUFFER_SIZE = 64;\nfunction createTransport(options, makeRequest, buffer = makePromiseBuffer(\n options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE\n)) {\n let rateLimits = {};\n const flush = (timeout) => buffer.drain(timeout);\n function send(envelope) {\n const filteredEnvelopeItems = [];\n forEachEnvelopeItem(envelope, (item, type) => {\n const dataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, dataCategory)) {\n options.recordDroppedEvent(\"ratelimit_backoff\", dataCategory);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n if (filteredEnvelopeItems.length === 0) {\n return Promise.resolve({});\n }\n const filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems);\n const recordEnvelopeLoss = (reason) => {\n if (envelopeContainsItemType(filteredEnvelope, [\"client_report\"])) {\n DEBUG_BUILD && debug.warn(`Dropping client report. Will not send outcomes (reason: ${reason}).`);\n return;\n }\n forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n });\n };\n const requestTask = () => makeRequest({ body: serializeEnvelope(filteredEnvelope) }).then(\n (response) => {\n if (response.statusCode === 413) {\n DEBUG_BUILD && debug.error(\n \"Sentry responded with status code 413. Envelope was discarded due to exceeding size limits.\"\n );\n recordEnvelopeLoss(\"send_error\");\n return response;\n }\n if (DEBUG_BUILD && response.statusCode !== void 0 && (response.statusCode < 200 || response.statusCode >= 300)) {\n debug.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n rateLimits = updateRateLimits(rateLimits, response);\n return response;\n },\n (error) => {\n recordEnvelopeLoss(\"network_error\");\n DEBUG_BUILD && debug.error(\"Encountered error running transport request:\", error);\n throw error;\n }\n );\n return buffer.add(requestTask).then(\n (result) => result,\n (error) => {\n if (error === SENTRY_BUFFER_FULL_ERROR) {\n DEBUG_BUILD && debug.error(\"Skipped sending event because buffer is full.\");\n recordEnvelopeLoss(\"queue_overflow\");\n return Promise.resolve({});\n } else {\n throw error;\n }\n }\n );\n }\n return {\n send,\n flush\n };\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n", + "import { getClient } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { debug } from './utils/debug-logger.js';\n\nconst installedIntegrations = [];\nfunction filterDuplicates(integrations) {\n const integrationsByName = {};\n integrations.forEach((currentInstance) => {\n const { name } = currentInstance;\n const existingInstance = integrationsByName[name];\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n integrationsByName[name] = currentInstance;\n });\n return Object.values(integrationsByName);\n}\nfunction getIntegrationsToSetup(options) {\n const defaultIntegrations = options.defaultIntegrations || [];\n const userIntegrations = options.integrations;\n defaultIntegrations.forEach((integration) => {\n integration.isDefaultInstance = true;\n });\n let integrations;\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === \"function\") {\n const resolvedUserIntegrations = userIntegrations(defaultIntegrations);\n integrations = Array.isArray(resolvedUserIntegrations) ? resolvedUserIntegrations : [resolvedUserIntegrations];\n } else {\n integrations = defaultIntegrations;\n }\n return filterDuplicates(integrations);\n}\nfunction setupIntegrations(client, integrations) {\n const integrationIndex = {};\n integrations.forEach((integration) => {\n if (integration?.beforeSetup) {\n integration.beforeSetup(client);\n }\n });\n integrations.forEach((integration) => {\n if (integration) {\n setupIntegration(client, integration, integrationIndex);\n }\n });\n return integrationIndex;\n}\nfunction afterSetupIntegrations(client, integrations) {\n for (const integration of integrations) {\n if (integration?.afterAllSetup) {\n integration.afterAllSetup(client);\n }\n }\n}\nfunction setupIntegration(client, integration, integrationIndex) {\n if (integrationIndex[integration.name]) {\n DEBUG_BUILD && debug.log(`Integration skipped because it was already installed: ${integration.name}`);\n return;\n }\n integrationIndex[integration.name] = integration;\n if (!installedIntegrations.includes(integration.name) && typeof integration.setupOnce === \"function\") {\n integration.setupOnce();\n installedIntegrations.push(integration.name);\n }\n if (integration.setup && typeof integration.setup === \"function\") {\n integration.setup(client);\n }\n if (typeof integration.preprocessEvent === \"function\") {\n const callback = integration.preprocessEvent.bind(integration);\n client.on(\"preprocessEvent\", (event, hint) => callback(event, hint, client));\n }\n if (typeof integration.processEvent === \"function\") {\n const callback = integration.processEvent.bind(integration);\n const processor = Object.assign((event, hint) => callback(event, hint, client), {\n id: integration.name\n });\n client.addEventProcessor(processor);\n }\n [\"processSpan\", \"processSegmentSpan\"].forEach((hook) => {\n const callback = integration[hook];\n if (typeof callback === \"function\") {\n client.on(hook, (span) => callback.call(integration, span, client));\n }\n });\n DEBUG_BUILD && debug.log(`Integration installed: ${integration.name}`);\n}\nfunction addIntegration(integration) {\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && debug.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n return;\n }\n client.addIntegration(integration);\n}\nfunction defineIntegration(fn) {\n return fn;\n}\nfunction extendIntegration(integration, extendedIntegration) {\n const wrappedIntegration = {\n ...integration,\n ...extendedIntegration\n };\n for (const key in extendedIntegration) {\n const baseValue = integration[key];\n const extendedValue = extendedIntegration[key];\n if (typeof baseValue === \"function\" && typeof extendedValue === \"function\") {\n const wrappedFunction = new Proxy(baseValue, {\n apply: (target, thisArg, args) => {\n Reflect.apply(target, thisArg, args);\n return Reflect.apply(extendedValue, thisArg, args);\n }\n });\n wrappedIntegration[key] = wrappedFunction;\n }\n }\n return wrappedIntegration;\n}\n\nexport { addIntegration, afterSetupIntegrations, defineIntegration, extendIntegration, getIntegrationsToSetup, installedIntegrations, setupIntegration, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n", + "import { DEBUG_BUILD } from '../../debug-build.js';\nimport { debug } from '../debug-logger.js';\n\nconst SKIPPED_AI_PROVIDERS = /* @__PURE__ */ new Set();\nfunction _INTERNAL_skipAiProviderWrapping(modules) {\n modules.forEach((module) => {\n SKIPPED_AI_PROVIDERS.add(module);\n DEBUG_BUILD && debug.log(`AI provider \"${module}\" wrapping will be skipped`);\n });\n}\nfunction _INTERNAL_shouldSkipAiProviderWrapping(module) {\n return SKIPPED_AI_PROVIDERS.has(module);\n}\nfunction _INTERNAL_clearAiProviderSkips() {\n SKIPPED_AI_PROVIDERS.clear();\n DEBUG_BUILD && debug.log(\"Cleared AI provider skip registrations\");\n}\n\nexport { _INTERNAL_clearAiProviderSkips, _INTERNAL_shouldSkipAiProviderWrapping, _INTERNAL_skipAiProviderWrapping };\n//# sourceMappingURL=providerSkip.js.map\n", + "const FALSY_ENV_VALUES = /* @__PURE__ */ new Set([\"false\", \"f\", \"n\", \"no\", \"off\", \"0\"]);\nconst TRUTHY_ENV_VALUES = /* @__PURE__ */ new Set([\"true\", \"t\", \"y\", \"yes\", \"on\", \"1\"]);\nfunction envToBool(value, options) {\n const normalized = String(value).toLowerCase();\n if (FALSY_ENV_VALUES.has(normalized)) {\n return false;\n }\n if (TRUTHY_ENV_VALUES.has(normalized)) {\n return true;\n }\n return options?.strict ? null : Boolean(value);\n}\n\nexport { FALSY_ENV_VALUES, TRUTHY_ENV_VALUES, envToBool };\n//# sourceMappingURL=envToBool.js.map\n", + "import { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_URL_FULL, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes.js';\n\nconst DEFAULT_BASE_URL = \"thismessage:/\";\nfunction isURLObjectRelative(url) {\n return \"isRelative\" in url;\n}\nfunction parseStringToURLObject(url, urlBase) {\n const isRelative = url.indexOf(\"://\") <= 0 && url.indexOf(\"//\") !== 0;\n const base = urlBase ?? (isRelative ? DEFAULT_BASE_URL : void 0);\n try {\n if (\"canParse\" in URL && !URL.canParse(url, base)) {\n return void 0;\n }\n const fullUrlObject = new URL(url, base);\n if (isRelative) {\n return {\n isRelative,\n pathname: fullUrlObject.pathname,\n search: fullUrlObject.search,\n hash: fullUrlObject.hash\n };\n }\n return fullUrlObject;\n } catch {\n }\n return void 0;\n}\nfunction getSanitizedUrlStringFromUrlObject(url) {\n if (isURLObjectRelative(url)) {\n return url.pathname;\n }\n const newUrl = new URL(url);\n newUrl.search = \"\";\n newUrl.hash = \"\";\n if ([\"80\", \"443\"].includes(newUrl.port)) {\n newUrl.port = \"\";\n }\n if (newUrl.password) {\n newUrl.password = \"%filtered%\";\n }\n if (newUrl.username) {\n newUrl.username = \"%filtered%\";\n }\n return newUrl.toString();\n}\nfunction getHttpSpanNameFromUrlObject(urlObject, kind, request, routeName) {\n const method = request?.method?.toUpperCase() ?? \"GET\";\n const route = routeName ? routeName : urlObject ? kind === \"client\" ? getSanitizedUrlStringFromUrlObject(urlObject) : urlObject.pathname : \"/\";\n return `${method} ${route}`;\n}\nfunction getHttpSpanDetailsFromUrlObject(urlObject, kind, spanOrigin, request, routeName) {\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin,\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: \"url\"\n };\n if (routeName) {\n attributes[kind === \"server\" ? \"http.route\" : \"url.template\"] = routeName;\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = \"route\";\n }\n if (request?.method) {\n attributes[SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD] = request.method.toUpperCase();\n }\n if (urlObject) {\n if (urlObject.search) {\n attributes[\"url.query\"] = urlObject.search;\n }\n if (urlObject.hash) {\n attributes[\"url.fragment\"] = urlObject.hash;\n }\n if (urlObject.pathname) {\n attributes[\"url.path\"] = urlObject.pathname;\n if (urlObject.pathname === \"/\") {\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = \"route\";\n }\n }\n if (!isURLObjectRelative(urlObject)) {\n attributes[SEMANTIC_ATTRIBUTE_URL_FULL] = urlObject.href;\n if (urlObject.port) {\n attributes[\"url.port\"] = urlObject.port;\n }\n if (urlObject.protocol) {\n attributes[\"url.scheme\"] = urlObject.protocol;\n }\n if (urlObject.hostname) {\n attributes[kind === \"server\" ? \"server.address\" : \"url.domain\"] = urlObject.hostname;\n }\n }\n }\n return [getHttpSpanNameFromUrlObject(urlObject, kind, request, routeName), attributes];\n}\nfunction parseUrl(url) {\n if (!url) {\n return {};\n }\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) {\n return {};\n }\n const query = match[6] || \"\";\n const fragment = match[8] || \"\";\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n search: query,\n hash: fragment,\n relative: match[5] + query + fragment\n // everything minus origin\n };\n}\nfunction stripUrlQueryAndFragment(urlPath) {\n return urlPath.split(/[?#]/, 1)[0];\n}\nfunction getSanitizedUrlString(url) {\n const { protocol, host, path } = url;\n const filteredHost = host?.replace(/^.*@/, \"[filtered]:[filtered]@\").replace(/(:80)$/, \"\").replace(/(:443)$/, \"\") || \"\";\n return `${protocol ? `${protocol}://` : \"\"}${filteredHost}${path}`;\n}\nfunction stripDataUrlContent(url, includeDataPrefix = true) {\n if (url.startsWith(\"data:\")) {\n const match = url.match(/^data:([^;,]+)/);\n const mimeType = match ? match[1] : \"text/plain\";\n const isBase64 = url.includes(\";base64,\");\n const dataStart = url.indexOf(\",\");\n let dataPrefix = \"\";\n if (includeDataPrefix && dataStart !== -1) {\n const data = url.slice(dataStart + 1);\n dataPrefix = data.length > 10 ? `${data.slice(0, 10)}... [truncated]` : data;\n }\n return `data:${mimeType}${isBase64 ? \",base64\" : \"\"}${dataPrefix ? `,${dataPrefix}` : \"\"}`;\n }\n return url;\n}\n\nexport { getHttpSpanDetailsFromUrlObject, getSanitizedUrlString, getSanitizedUrlStringFromUrlObject, isURLObjectRelative, parseStringToURLObject, parseUrl, stripDataUrlContent, stripUrlQueryAndFragment };\n//# sourceMappingURL=url.js.map\n", + "import { SDK_VERSION } from './version.js';\n\nfunction applySdkMetadata(options, name, names = [name], source = \"npm\") {\n const sdk = (options._metadata = options._metadata || {}).sdk = options._metadata.sdk || {};\n if (!sdk.name) {\n sdk.name = `sentry.javascript.${name}`;\n sdk.packages = names.map((name2) => ({\n name: `${source}:@sentry/${name2}`,\n version: SDK_VERSION\n }));\n sdk.version = SDK_VERSION;\n }\n}\n\nexport { applySdkMetadata };\n//# sourceMappingURL=sdkMetadata.js.map\n", + "import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getClient, getCurrentScope, hasExternalPropagationContext } from '../currentScopes.js';\nimport { isEnabled } from '../exports.js';\nimport { debug } from './debug-logger.js';\nimport { getActiveSpan, spanToTraceHeader, spanToTraceparentHeader } from './spanUtils.js';\nimport { hasSpansEnabled } from './hasSpansEnabled.js';\nimport { spanIsNonRecordingSpan } from '../tracing/sentryNonRecordingSpan.js';\nimport { getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromScope } from '../tracing/dynamicSamplingContext.js';\nimport { dynamicSamplingContextToSentryBaggageHeader } from './baggage.js';\nimport { TRACEPARENT_REGEXP, generateSentryTraceHeader, generateTraceparentHeader } from './tracing.js';\n\nfunction getTraceData(options = {}) {\n const client = options.client || getClient();\n if (!isEnabled() || !client) {\n return {};\n }\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getTraceData) {\n return acs.getTraceData(options);\n }\n const scope = options.scope || getCurrentScope();\n const span = options.span || getActiveSpan();\n const isTwpPlaceholder = spanIsNonRecordingSpan(span) && !hasSpansEnabled(client.getOptions());\n if (!span && hasExternalPropagationContext()) {\n return {};\n }\n const sentryTrace = span && !isTwpPlaceholder ? spanToTraceHeader(span) : scopeToTraceHeader(scope);\n const dsc = span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromScope(client, scope);\n const baggage = dynamicSamplingContextToSentryBaggageHeader(dsc);\n const isValidSentryTraceHeader = TRACEPARENT_REGEXP.test(sentryTrace);\n if (!isValidSentryTraceHeader) {\n debug.warn(\"Invalid sentry-trace data. Cannot generate trace data\");\n return {};\n }\n const traceData = {\n \"sentry-trace\": sentryTrace,\n baggage\n };\n if (options.propagateTraceparent) {\n traceData.traceparent = span && !isTwpPlaceholder ? spanToTraceparentHeader(span) : scopeToTraceparentHeader(scope);\n }\n return traceData;\n}\nfunction scopeToTraceHeader(scope) {\n const { traceId, sampled, propagationSpanId } = scope.getPropagationContext();\n return generateSentryTraceHeader(traceId, propagationSpanId, sampled);\n}\nfunction scopeToTraceparentHeader(scope) {\n const { traceId, sampled, propagationSpanId } = scope.getPropagationContext();\n return generateTraceparentHeader(traceId, propagationSpanId, sampled);\n}\n\nexport { getTraceData };\n//# sourceMappingURL=traceData.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { stringMatchesSomePattern } from './string.js';\n\nconst NOT_PROPAGATED_MESSAGE = \"[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:\";\nfunction shouldPropagateTraceForUrl(url, tracePropagationTargets, decisionMap) {\n if (typeof url !== \"string\" || !tracePropagationTargets) {\n return true;\n }\n const cachedDecision = decisionMap?.get(url);\n if (cachedDecision !== void 0) {\n DEBUG_BUILD && !cachedDecision && debug.log(NOT_PROPAGATED_MESSAGE, url);\n return cachedDecision;\n }\n const decision = stringMatchesSomePattern(url, tracePropagationTargets);\n decisionMap?.set(url, decision);\n DEBUG_BUILD && !decision && debug.log(NOT_PROPAGATED_MESSAGE, url);\n return decision;\n}\n\nexport { shouldPropagateTraceForUrl };\n//# sourceMappingURL=tracePropagationTargets.js.map\n", + "function debounce(func, wait, options) {\n let callbackReturnValue;\n let timerId;\n let maxTimerId;\n const maxWait = options?.maxWait ? Math.max(options.maxWait, wait) : 0;\n const setTimeoutImpl = options?.setTimeoutImpl || setTimeout;\n function invokeFunc() {\n cancelTimers();\n callbackReturnValue = func();\n return callbackReturnValue;\n }\n function cancelTimers() {\n timerId !== void 0 && clearTimeout(timerId);\n maxTimerId !== void 0 && clearTimeout(maxTimerId);\n timerId = maxTimerId = void 0;\n }\n function flush() {\n if (timerId !== void 0 || maxTimerId !== void 0) {\n return invokeFunc();\n }\n return callbackReturnValue;\n }\n function debounced() {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeoutImpl(invokeFunc, wait);\n if (maxWait && maxTimerId === void 0) {\n maxTimerId = setTimeoutImpl(invokeFunc, maxWait);\n }\n return callbackReturnValue;\n }\n debounced.cancel = cancelTimers;\n debounced.flush = flush;\n return debounced;\n}\n\nexport { debounce };\n//# sourceMappingURL=debounce.js.map\n", + "const FILTERED_VALUE = \"[Filtered]\";\nconst PII_HEADER_SNIPPETS = [\"forwarded\", \"-ip\", \"remote-\", \"via\", \"-user\"];\nconst SENSITIVE_KEY_SNIPPETS = [\n \"auth\",\n \"token\",\n \"secret\",\n \"session\",\n // for the user_session cookie\n \"password\",\n \"passwd\",\n \"pwd\",\n \"key\",\n \"jwt\",\n \"bearer\",\n \"sso\",\n \"saml\",\n \"csrf\",\n \"xsrf\",\n \"credentials\",\n \"sid\",\n \"identity\",\n // Always treat cookie headers as sensitive in case individual key-value cookie pairs cannot properly be extracted\n \"set-cookie\",\n \"cookie\"\n];\nconst SENSITIVE_COOKIE_NAME_SNIPPETS = [\n // Express / Connect default session cookie\n \".sid\",\n // Opaque session ids (PHPSESSID, ASPSESSIONID*, BIGipServer*, *sessid*, …)\n \"sessid\",\n // Laravel etc. \"remember me\" tokens\n \"remember\",\n // OIDC / OAuth auxiliary (`oauth*` covered by header snippet `auth`)\n \"oidc\",\n \"pkce\",\n \"nonce\",\n // RFC 6265bis high-security cookie name prefixes\n \"__secure-\",\n \"__host-\",\n // Load balancer / CDN sticky-session cookies (opaque routing tokens)\n \"awsalb\",\n \"awselb\",\n \"akamai\",\n // BaaS / IdP session cookies (names often omit \"session\")\n \"__stripe\",\n \"cognito\",\n \"firebase\",\n \"supabase\",\n \"sb-\",\n // Step-up / MFA cookies\n \"mfa\",\n \"2fa\"\n];\n\nexport { FILTERED_VALUE, PII_HEADER_SNIPPETS, SENSITIVE_COOKIE_NAME_SNIPPETS, SENSITIVE_KEY_SNIPPETS };\n//# sourceMappingURL=filtering-snippets.js.map\n", + "import { PII_HEADER_SNIPPETS } from './filtering-snippets.js';\n\nfunction defaultPiiToCollectionOptions(sendDefaultPii) {\n return sendDefaultPii === true ? {\n userInfo: true,\n cookies: true,\n httpHeaders: { request: true, response: true },\n httpBodies: [\"incomingRequest\", \"outgoingRequest\", \"incomingResponse\", \"outgoingResponse\"],\n queryParams: true,\n genAI: { inputs: true, outputs: true },\n stackFrameVariables: true,\n frameContextLines: 7\n // default should be 5, but ContextLines integration uses 7\n } : {\n userInfo: false,\n cookies: { deny: PII_HEADER_SNIPPETS },\n httpHeaders: { request: { deny: PII_HEADER_SNIPPETS }, response: { deny: PII_HEADER_SNIPPETS } },\n httpBodies: [],\n queryParams: { deny: PII_HEADER_SNIPPETS },\n genAI: { inputs: false, outputs: false },\n stackFrameVariables: true,\n frameContextLines: 7\n // default should be 5, but ContextLines integration uses 7\n };\n}\n\nexport { defaultPiiToCollectionOptions };\n//# sourceMappingURL=defaultPiiToCollectionOptions.js.map\n", + "import { SENSITIVE_KEY_SNIPPETS, FILTERED_VALUE } from './filtering-snippets.js';\n\nfunction isSensitiveKey(lower, denySnippets) {\n return denySnippets.some((snippet) => lower.includes(snippet));\n}\nfunction filterKeyValueData(data, behavior, additionalDenyTerms) {\n if (behavior === false) {\n return {};\n }\n const denySnippets = additionalDenyTerms != null ? [...SENSITIVE_KEY_SNIPPETS, ...additionalDenyTerms] : SENSITIVE_KEY_SNIPPETS;\n const result = {};\n if (behavior === true) {\n for (const key of Object.keys(data)) {\n result[key] = isSensitiveKey(key.toLowerCase(), denySnippets) ? FILTERED_VALUE : data[key];\n }\n return result;\n }\n if (\"deny\" in behavior) {\n const lowerTerms2 = behavior.deny.map((t) => t.toLowerCase());\n for (const key of Object.keys(data)) {\n const lower = key.toLowerCase();\n const isDenied = isSensitiveKey(lower, denySnippets) || lowerTerms2.some((term) => lower.includes(term));\n result[key] = isDenied ? FILTERED_VALUE : data[key];\n }\n return result;\n }\n const lowerTerms = behavior.allow.map((t) => t.toLowerCase());\n for (const key of Object.keys(data)) {\n const lower = key.toLowerCase();\n if (isSensitiveKey(lower, denySnippets)) {\n result[key] = FILTERED_VALUE;\n } else {\n const isAllowed = lowerTerms.some((term) => lower.includes(term));\n result[key] = isAllowed ? data[key] : FILTERED_VALUE;\n }\n }\n return result;\n}\n\nexport { filterKeyValueData };\n//# sourceMappingURL=filterKeyValueData.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { defaultPiiToCollectionOptions } from './data-collection/defaultPiiToCollectionOptions.js';\nimport { SENSITIVE_COOKIE_NAME_SNIPPETS, FILTERED_VALUE } from './data-collection/filtering-snippets.js';\nimport { filterKeyValueData } from './data-collection/filterKeyValueData.js';\nimport { safeUnref } from './timer.js';\n\nconst MAX_BODY_BYTE_LENGTH = 1024 * 1024;\nconst TEXT_CONTENT_TYPES = [\n \"text/\",\n \"application/json\",\n \"application/x-www-form-urlencoded\",\n \"application/xml\",\n \"application/graphql\"\n];\nfunction getMaxBodyByteLength(maxRequestBodySize) {\n if (maxRequestBodySize === \"small\") return 1e3;\n if (maxRequestBodySize === \"medium\") return 1e4;\n return MAX_BODY_BYTE_LENGTH;\n}\nfunction winterCGHeadersToDict(winterCGHeaders) {\n const headers = {};\n try {\n winterCGHeaders.forEach((value, key) => {\n if (typeof value === \"string\") {\n headers[key] = value;\n }\n });\n } catch {\n }\n return headers;\n}\nfunction headersToDict(reqHeaders) {\n const headers = /* @__PURE__ */ Object.create(null);\n try {\n Object.entries(reqHeaders).forEach(([key, value]) => {\n if (typeof value === \"string\") {\n headers[key] = value;\n } else if (typeof value === \"number\") {\n headers[key] = String(value);\n }\n });\n } catch {\n }\n return headers;\n}\nfunction winterCGRequestToRequestData(req) {\n const headers = winterCGHeadersToDict(req.headers);\n return {\n method: req.method,\n url: req.url,\n query_string: extractQueryParamsFromUrl(req.url),\n headers\n // TODO: Can we extract body data from the request?\n };\n}\nfunction isTextualContentType(contentType) {\n if (!contentType) {\n return false;\n }\n const lowerContentType = contentType.toLowerCase();\n return TEXT_CONTENT_TYPES.some((type) => lowerContentType.includes(type));\n}\nasync function captureBodyFromWinterCGRequest(request, isolationScope, maxRequestBodySize) {\n try {\n const contentType = request.headers.get(\"content-type\");\n if (!isTextualContentType(contentType)) {\n DEBUG_BUILD && debug.log(\"Skipping body capture for non-textual content type:\", contentType);\n return;\n }\n if (!request.body) {\n return;\n }\n const contentLength = request.headers.get(\"content-length\");\n const maxBodySize = getMaxBodyByteLength(maxRequestBodySize);\n if (contentLength) {\n const length = parseInt(contentLength, 10);\n if (!isNaN(length) && length > MAX_BODY_BYTE_LENGTH) {\n DEBUG_BUILD && debug.log(\"Skipping body capture: body too large\", length);\n return;\n }\n }\n const clonedRequest = request.clone();\n const bodyPromise = clonedRequest.text();\n const timeoutPromise = new Promise((resolve) => {\n safeUnref(setTimeout(() => resolve(null), 2e3));\n });\n const body = await Promise.race([bodyPromise, timeoutPromise]);\n if (body === null) {\n DEBUG_BUILD && debug.log(\"Timeout reading request body\");\n return;\n }\n if (!body) {\n return;\n }\n const encoder = new TextEncoder();\n const bytes = encoder.encode(body);\n const bodyByteLength = bytes.length;\n let truncatedBody;\n if (bodyByteLength > maxBodySize) {\n const decoder = new TextDecoder();\n truncatedBody = `${decoder.decode(bytes.slice(0, maxBodySize - 3))}...`;\n } else {\n truncatedBody = body;\n }\n isolationScope.setSDKProcessingMetadata({ normalizedRequest: { data: truncatedBody } });\n DEBUG_BUILD && debug.log(\"Captured request body:\", bodyByteLength, \"bytes\");\n } catch (error) {\n DEBUG_BUILD && debug.error(\"Error capturing request body:\", error);\n }\n}\nfunction httpRequestToRequestData(request) {\n const headers = request.headers || {};\n const forwardedHost = typeof headers[\"x-forwarded-host\"] === \"string\" ? headers[\"x-forwarded-host\"] : void 0;\n const host = forwardedHost || (typeof headers.host === \"string\" ? headers.host : void 0);\n const forwardedProto = typeof headers[\"x-forwarded-proto\"] === \"string\" ? headers[\"x-forwarded-proto\"] : void 0;\n const protocol = forwardedProto || request.protocol || (request.socket?.encrypted ? \"https\" : \"http\");\n const url = request.url || \"\";\n const absoluteUrl = getAbsoluteUrl({\n url,\n host,\n protocol\n });\n const data = request.body || void 0;\n const cookies = request.cookies;\n return {\n url: absoluteUrl,\n method: request.method,\n query_string: extractQueryParamsFromUrl(url),\n headers: headersToDict(headers),\n cookies,\n data\n };\n}\nfunction getAbsoluteUrl({\n url,\n protocol,\n host\n}) {\n if (url?.startsWith(\"http\")) {\n return url;\n }\n if (url && host) {\n return `${protocol}://${host}${url}`;\n }\n return void 0;\n}\nfunction httpHeadersToSpanAttributes(headers, dataCollection = false, lifecycle = \"request\") {\n const resolvedDataCollection = typeof dataCollection === \"boolean\" ? defaultPiiToCollectionOptions(dataCollection) : dataCollection;\n const headerBehavior = lifecycle === \"request\" ? resolvedDataCollection.httpHeaders.request : resolvedDataCollection.httpHeaders.response;\n const cookieBehavior = resolvedDataCollection.cookies;\n const prefix = `http.${lifecycle}.header.`;\n const spanAttributes = {};\n try {\n const regularHeaders = {};\n for (const [key, value] of Object.entries(headers)) {\n if (value == null) {\n continue;\n }\n const lowerKey = key.toLowerCase();\n const isCookieHeader = lowerKey === \"cookie\" || lowerKey === \"set-cookie\";\n if (isCookieHeader) {\n if (cookieBehavior === false) {\n continue;\n }\n if (typeof value === \"string\" && value !== \"\") {\n const parsed = parseCookieHeader(value, lowerKey === \"set-cookie\");\n const filtered = filterKeyValueData(parsed, cookieBehavior, SENSITIVE_COOKIE_NAME_SNIPPETS);\n for (const [cookieKey, cookieValue] of Object.entries(filtered)) {\n spanAttributes[`${prefix}${normalizeAttributeKey(lowerKey)}.${normalizeAttributeKey(cookieKey)}`] = cookieValue;\n }\n } else {\n spanAttributes[`${prefix}${normalizeAttributeKey(lowerKey)}`] = FILTERED_VALUE;\n }\n } else {\n if (headerBehavior === false) {\n continue;\n }\n if (Array.isArray(value)) {\n regularHeaders[lowerKey] = value.map((v) => v != null ? String(v) : v).join(\";\");\n } else if (typeof value === \"string\") {\n regularHeaders[lowerKey] = value;\n }\n }\n }\n if (headerBehavior !== false) {\n const filtered = filterKeyValueData(regularHeaders, headerBehavior);\n for (const [headerKey, headerValue] of Object.entries(filtered)) {\n spanAttributes[`${prefix}${normalizeAttributeKey(headerKey)}`] = headerValue;\n }\n }\n } catch {\n }\n return spanAttributes;\n}\nfunction normalizeAttributeKey(key) {\n return key.replace(/-/g, \"_\");\n}\nfunction parseCookieHeader(value, isSetCookie) {\n const semicolonIndex = value.indexOf(\";\");\n const cookieString = isSetCookie && semicolonIndex !== -1 ? value.substring(0, semicolonIndex) : value;\n const cookies = isSetCookie ? [cookieString] : cookieString.split(\"; \");\n const result = {};\n for (const cookie of cookies) {\n const equalSignIndex = cookie.indexOf(\"=\");\n const cookieKey = (equalSignIndex !== -1 ? cookie.substring(0, equalSignIndex) : cookie).toLowerCase();\n const cookieValue = equalSignIndex !== -1 ? cookie.substring(equalSignIndex + 1) : \"\";\n result[cookieKey] = cookieValue;\n }\n return result;\n}\nfunction extractQueryParamsFromUrl(url) {\n if (!url) {\n return;\n }\n try {\n const queryParams = new URL(url, \"http://s.io\").search.slice(1);\n return queryParams.length ? queryParams : void 0;\n } catch {\n return void 0;\n }\n}\n\nexport { MAX_BODY_BYTE_LENGTH, captureBodyFromWinterCGRequest, extractQueryParamsFromUrl, getMaxBodyByteLength, headersToDict, httpHeadersToSpanAttributes, httpRequestToRequestData, winterCGHeadersToDict, winterCGRequestToRequestData };\n//# sourceMappingURL=request.js.map\n", + "const SPAN_KIND = {\n INTERNAL: 0,\n SERVER: 1,\n CLIENT: 2,\n PRODUCER: 3,\n CONSUMER: 4\n};\nconst SPAN_KIND_NAME = {\n [SPAN_KIND.INTERNAL]: \"INTERNAL\",\n [SPAN_KIND.SERVER]: \"SERVER\",\n [SPAN_KIND.CLIENT]: \"CLIENT\",\n [SPAN_KIND.PRODUCER]: \"PRODUCER\",\n [SPAN_KIND.CONSUMER]: \"CONSUMER\"\n};\nfunction spanKindToName(kind) {\n return SPAN_KIND_NAME[kind];\n}\n\nexport { SPAN_KIND, spanKindToName };\n//# sourceMappingURL=spanKind.js.map\n", + "import { getClient, getIsolationScope } from './currentScopes.js';\nimport { consoleSandbox } from './utils/debug-logger.js';\nimport { dateTimestampInSeconds } from './utils/time.js';\n\nconst DEFAULT_BREADCRUMBS = 100;\nfunction addBreadcrumb(breadcrumb, hint) {\n const client = getClient();\n const isolationScope = getIsolationScope();\n if (!client) return;\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } = client.getOptions();\n if (maxBreadcrumbs <= 0) return;\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb ? consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) : mergedBreadcrumb;\n if (finalBreadcrumb === null) return;\n if (client.emit) {\n client.emit(\"beforeAddBreadcrumb\", finalBreadcrumb, hint);\n }\n isolationScope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n}\n\nexport { addBreadcrumb };\n//# sourceMappingURL=breadcrumbs.js.map\n", + "import { getClient } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\nimport { getOriginalFunction } from '../utils/object.js';\n\nlet originalFunctionToString;\nconst INTEGRATION_NAME = \"FunctionToString\";\nconst SETUP_CLIENTS = /* @__PURE__ */ new WeakMap();\nconst _functionToStringIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n originalFunctionToString = Function.prototype.toString;\n try {\n Function.prototype.toString = function(...args) {\n const originalFunction = getOriginalFunction(this);\n const context = SETUP_CLIENTS.has(getClient()) && originalFunction !== void 0 ? originalFunction : this;\n return originalFunctionToString.apply(context, args);\n };\n } catch {\n }\n },\n setup(client) {\n SETUP_CLIENTS.set(client, true);\n }\n };\n});\nconst functionToStringIntegration = defineIntegration(_functionToStringIntegration);\n\nexport { functionToStringIntegration };\n//# sourceMappingURL=functiontostring.js.map\n", + "function getPossibleEventMessages(event) {\n const possibleMessages = [];\n if (event.message) {\n possibleMessages.push(event.message);\n }\n try {\n const lastException = event.exception.values[event.exception.values.length - 1];\n if (lastException?.value) {\n possibleMessages.push(lastException.value);\n if (lastException.type) {\n possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n }\n }\n } catch {\n }\n return possibleMessages;\n}\n\nexport { getPossibleEventMessages };\n//# sourceMappingURL=eventUtils.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { defineIntegration } from '../integration.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getPossibleEventMessages } from '../utils/eventUtils.js';\nimport { getEventDescription } from '../utils/misc.js';\nimport { stringMatchesSomePattern } from '../utils/string.js';\n\nconst DEFAULT_IGNORE_ERRORS = [\n /^Script error\\.?$/,\n /^Javascript error: Script error\\.? on line 0$/,\n /^ResizeObserver loop completed with undelivered notifications.$/,\n // The browser logs this when a ResizeObserver handler takes a bit longer. Usually this is not an actual issue though. It indicates slowness.\n /^Cannot redefine property: googletag$/,\n // This is thrown when google tag manager is used in combination with an ad blocker\n /^Can't find variable: gmo$/,\n // Error from Google Search App https://issuetracker.google.com/issues/396043331\n /^undefined is not an object \\(evaluating 'a\\.[A-Z]'\\)$/,\n // Random error that happens but not actionable or noticeable to end-users.\n /can't redefine non-configurable property \"solana\"/,\n // Probably a browser extension or custom browser (Brave) throwing this error\n /vv\\(\\)\\.getRestrictions is not a function/,\n // Error thrown by GTM, seemingly not affecting end-users\n /Can't find variable: _AutofillCallbackHandler/,\n // Unactionable error in instagram webview https://developers.facebook.com/community/threads/320013549791141/\n /Object Not Found Matching Id:\\d+, MethodName:simulateEvent/,\n // unactionable error from CEFSharp, a .NET library that embeds chromium in .NET apps\n /^Java exception was raised during method invocation$/\n // error from Facebook Mobile browser (https://github.com/getsentry/sentry-javascript/issues/15065)\n];\nconst INTEGRATION_NAME = \"EventFilters\";\nconst eventFiltersIntegration = defineIntegration((options = {}) => {\n let mergedOptions;\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n const clientOptions = client.getOptions();\n mergedOptions = _mergeOptions(options, clientOptions);\n },\n processEvent(event, _hint, client) {\n if (!mergedOptions) {\n const clientOptions = client.getOptions();\n mergedOptions = _mergeOptions(options, clientOptions);\n }\n return _shouldDropEvent(event, mergedOptions) ? null : event;\n }\n };\n});\nconst inboundFiltersIntegration = defineIntegration(((options = {}) => {\n return {\n ...eventFiltersIntegration(options),\n name: \"InboundFilters\"\n };\n}));\nfunction _mergeOptions(internalOptions = {}, clientOptions = {}) {\n return {\n allowUrls: [...internalOptions.allowUrls || [], ...clientOptions.allowUrls || []],\n denyUrls: [...internalOptions.denyUrls || [], ...clientOptions.denyUrls || []],\n ignoreErrors: [\n ...internalOptions.ignoreErrors || [],\n ...clientOptions.ignoreErrors || [],\n ...internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS\n ],\n ignoreTransactions: [...internalOptions.ignoreTransactions || [], ...clientOptions.ignoreTransactions || []]\n };\n}\nfunction _shouldDropEvent(event, options) {\n if (!event.type) {\n if (_isIgnoredError(event, options.ignoreErrors)) {\n DEBUG_BUILD && debug.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\nEvent: ${getEventDescription(event)}`\n );\n return true;\n }\n if (_isUselessError(event)) {\n DEBUG_BUILD && debug.warn(\n `Event dropped due to not having an error message, error type or stacktrace.\nEvent: ${getEventDescription(\n event\n )}`\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n DEBUG_BUILD && debug.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\nEvent: ${getEventDescription(\n event\n )}.\nUrl: ${_getEventFilterUrl(event)}`\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n DEBUG_BUILD && debug.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\nEvent: ${getEventDescription(\n event\n )}.\nUrl: ${_getEventFilterUrl(event)}`\n );\n return true;\n }\n } else if (event.type === \"transaction\") {\n if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n DEBUG_BUILD && debug.warn(\n `Event dropped due to being matched by \\`ignoreTransactions\\` option.\nEvent: ${getEventDescription(event)}`\n );\n return true;\n }\n }\n return false;\n}\nfunction _isIgnoredError(event, ignoreErrors) {\n if (!ignoreErrors?.length) {\n return false;\n }\n return getPossibleEventMessages(event).some((message) => stringMatchesSomePattern(message, ignoreErrors));\n}\nfunction _isIgnoredTransaction(event, ignoreTransactions) {\n if (!ignoreTransactions?.length) {\n return false;\n }\n const name = event.transaction;\n return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\nfunction _isDeniedUrl(event, denyUrls) {\n if (!denyUrls?.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\nfunction _isAllowedUrl(event, allowUrls) {\n if (!allowUrls?.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n if (frame && frame.filename !== \"\" && frame.filename !== \"[native code]\") {\n return frame.filename || null;\n }\n }\n return null;\n}\nfunction _getEventFilterUrl(event) {\n try {\n const rootException = [...event.exception?.values ?? []].reverse().find((value) => value.mechanism?.parent_id === void 0 && value.stacktrace?.frames?.length);\n const frames = rootException?.stacktrace?.frames;\n return frames ? _getLastValidUrl(frames) : null;\n } catch {\n DEBUG_BUILD && debug.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\nfunction _isUselessError(event) {\n if (!event.exception?.values?.length) {\n return false;\n }\n return (\n // No top-level message\n !event.message && // There are no exception values that have a stacktrace, a non-generic-Error type or value\n !event.exception.values.some((value) => value.stacktrace || value.type && value.type !== \"Error\" || value.value)\n );\n}\n\nexport { eventFiltersIntegration, inboundFiltersIntegration };\n//# sourceMappingURL=eventFilters.js.map\n", + "import { isInstanceOf } from './is.js';\n\nfunction applyAggregateErrorsToEvent(exceptionFromErrorImplementation, parser, key, limit, event, hint) {\n if (!event.exception?.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return;\n }\n const originalException = event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : void 0;\n if (originalException) {\n event.exception.values = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n hint.originalException,\n key,\n event.exception.values,\n originalException,\n 0\n );\n }\n}\nfunction aggregateExceptionsFromError(exceptionFromErrorImplementation, parser, limit, error, key, prevExceptions, exception, exceptionId) {\n if (prevExceptions.length >= limit + 1) {\n return prevExceptions;\n }\n let newExceptions = [...prevExceptions];\n if (isInstanceOf(error[key], Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId, error);\n const newException = exceptionFromErrorImplementation(parser, error[key]);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error[key],\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId\n );\n }\n if (isExceptionGroup(error)) {\n error.errors.forEach((childError, i) => {\n if (isInstanceOf(childError, Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId, error);\n const newException = exceptionFromErrorImplementation(parser, childError);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n childError,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId\n );\n }\n });\n }\n return newExceptions;\n}\nfunction isExceptionGroup(error) {\n return Array.isArray(error.errors);\n}\nfunction applyExceptionGroupFieldsForParentException(exception, exceptionId, error) {\n exception.mechanism = {\n handled: true,\n type: \"auto.core.linked_errors\",\n ...isExceptionGroup(error) && { is_exception_group: true },\n ...exception.mechanism,\n exception_id: exceptionId\n };\n}\nfunction applyExceptionGroupFieldsForChildException(exception, source, exceptionId, parentId) {\n exception.mechanism = {\n handled: true,\n ...exception.mechanism,\n type: \"chained\",\n source,\n exception_id: exceptionId,\n parent_id: parentId\n };\n}\n\nexport { applyAggregateErrorsToEvent };\n//# sourceMappingURL=aggregate-errors.js.map\n", + "import { isParameterizedString, isError, isPlainObject, isErrorEvent } from './is.js';\nimport { addExceptionMechanism, addExceptionTypeValue } from './misc.js';\nimport { normalizeToSize } from './normalize.js';\nimport { extractExceptionKeysForMessage } from './object.js';\n\nfunction parseStackFrames(stackParser, error) {\n return stackParser(error.stack || \"\", 1);\n}\nfunction hasSentryFetchUrlHost(error) {\n return isError(error) && \"__sentry_fetch_url_host__\" in error && typeof error.__sentry_fetch_url_host__ === \"string\";\n}\nfunction _enhanceErrorWithSentryInfo(error) {\n if (hasSentryFetchUrlHost(error)) {\n return `${error.message} (${error.__sentry_fetch_url_host__})`;\n }\n return error.message;\n}\nfunction exceptionFromError(stackParser, error) {\n const exception = {\n type: error.name || error.constructor.name,\n value: _enhanceErrorWithSentryInfo(error)\n };\n const frames = parseStackFrames(stackParser, error);\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n return exception;\n}\nfunction getErrorPropertyFromObject(obj) {\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n const value = obj[prop];\n if (value instanceof Error) {\n return value;\n }\n }\n }\n return void 0;\n}\nfunction getMessageForObject(exception) {\n if (\"name\" in exception && typeof exception.name === \"string\") {\n let message = `'${exception.name}' captured as exception`;\n if (\"message\" in exception && typeof exception.message === \"string\") {\n message += ` with message '${exception.message}'`;\n }\n return message;\n } else if (\"message\" in exception && typeof exception.message === \"string\") {\n return exception.message;\n }\n const keys = extractExceptionKeysForMessage(exception);\n if (isErrorEvent(exception)) {\n return `Event \\`ErrorEvent\\` captured as exception with message \\`${exception.message}\\``;\n }\n const className = getObjectClassName(exception);\n return `${className && className !== \"Object\" ? `'${className}'` : \"Object\"} captured as exception with keys: ${keys}`;\n}\nfunction getObjectClassName(obj) {\n try {\n const prototype = Object.getPrototypeOf(obj);\n return prototype ? prototype.constructor.name : void 0;\n } catch {\n }\n}\nfunction getException(client, mechanism, exception, hint) {\n if (isError(exception)) {\n return [exception, void 0];\n }\n mechanism.synthetic = true;\n if (isPlainObject(exception)) {\n const normalizeDepth = client?.getOptions().normalizeDepth;\n const extras = { [\"__serialized__\"]: normalizeToSize(exception, normalizeDepth) };\n const errorFromProp = getErrorPropertyFromObject(exception);\n if (errorFromProp) {\n return [errorFromProp, extras];\n }\n const message = getMessageForObject(exception);\n const ex2 = hint?.syntheticException || new Error(message);\n ex2.message = message;\n return [ex2, extras];\n }\n const ex = hint?.syntheticException || new Error(exception);\n ex.message = `${exception}`;\n return [ex, void 0];\n}\nfunction eventFromUnknownInput(client, stackParser, exception, hint) {\n const providedMechanism = hint?.data && hint.data.mechanism;\n const mechanism = providedMechanism || {\n handled: true,\n type: \"generic\"\n };\n const [ex, extras] = getException(client, mechanism, exception, hint);\n const event = {\n exception: {\n values: [exceptionFromError(stackParser, ex)]\n }\n };\n if (extras) {\n event.extra = extras;\n }\n addExceptionTypeValue(event, void 0, void 0);\n addExceptionMechanism(event, mechanism);\n return {\n ...event,\n event_id: hint?.event_id\n };\n}\nfunction eventFromMessage(stackParser, message, level = \"info\", hint, attachStacktrace) {\n const event = {\n event_id: hint?.event_id,\n level\n };\n if (attachStacktrace && hint?.syntheticException) {\n const frames = parseStackFrames(stackParser, hint.syntheticException);\n if (frames.length) {\n event.exception = {\n values: [\n {\n value: message,\n stacktrace: { frames }\n }\n ]\n };\n addExceptionMechanism(event, { synthetic: true });\n }\n }\n if (isParameterizedString(message)) {\n const { __sentry_template_string__, __sentry_template_values__ } = message;\n event.logentry = {\n message: __sentry_template_string__,\n params: __sentry_template_values__\n };\n return event;\n }\n event.message = message;\n return event;\n}\n\nexport { _enhanceErrorWithSentryInfo, eventFromMessage, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n", + "import { defineIntegration } from '../integration.js';\nimport { applyAggregateErrorsToEvent } from '../utils/aggregate-errors.js';\nimport { exceptionFromError } from '../utils/eventbuilder.js';\n\nconst DEFAULT_KEY = \"cause\";\nconst DEFAULT_LIMIT = 5;\nconst INTEGRATION_NAME = \"LinkedErrors\";\nconst _linkedErrorsIntegration = ((options = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n const key = options.key || DEFAULT_KEY;\n return {\n name: INTEGRATION_NAME,\n preprocessEvent(event, hint, client) {\n const options2 = client.getOptions();\n applyAggregateErrorsToEvent(exceptionFromError, options2.stackParser, key, limit, event, hint);\n }\n };\n});\nconst linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n\nexport { linkedErrorsIntegration };\n//# sourceMappingURL=linkederrors.js.map\n", + "function parseCookie(str) {\n const obj = {};\n let index = 0;\n while (index < str.length) {\n const eqIdx = str.indexOf(\"=\", index);\n if (eqIdx === -1) {\n break;\n }\n let endIdx = str.indexOf(\";\", index);\n if (endIdx === -1) {\n endIdx = str.length;\n } else if (endIdx < eqIdx) {\n index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n continue;\n }\n const key = str.slice(index, eqIdx).trim();\n if (void 0 === obj[key]) {\n let val = str.slice(eqIdx + 1, endIdx).trim();\n if (val.charCodeAt(0) === 34) {\n val = val.slice(1, -1);\n }\n try {\n obj[key] = val.indexOf(\"%\") !== -1 ? decodeURIComponent(val) : val;\n } catch {\n obj[key] = val;\n }\n }\n index = endIdx + 1;\n }\n return obj;\n}\n\nexport { parseCookie };\n//# sourceMappingURL=cookie.js.map\n", + "const ipHeaderNames = [\n \"X-Client-IP\",\n \"X-Forwarded-For\",\n \"Fly-Client-IP\",\n \"CF-Connecting-IP\",\n \"Fastly-Client-Ip\",\n \"True-Client-Ip\",\n \"X-Real-IP\",\n \"X-Cluster-Client-IP\",\n \"X-Forwarded\",\n \"Forwarded-For\",\n \"Forwarded\",\n \"X-Vercel-Forwarded-For\"\n];\nfunction getClientIPAddress(headers) {\n const lowerCaseHeaders = {};\n for (const key of Object.keys(headers)) {\n lowerCaseHeaders[key.toLowerCase()] = headers[key];\n }\n const headerValues = ipHeaderNames.map((headerName) => {\n const rawValue = lowerCaseHeaders[headerName.toLowerCase()];\n const value = Array.isArray(rawValue) ? rawValue.join(\";\") : rawValue;\n if (headerName === \"Forwarded\") {\n return parseForwardedHeader(value);\n }\n return value?.split(\",\").map((v) => v.trim());\n });\n const flattenedHeaderValues = headerValues.reduce((acc, val) => {\n if (!val) {\n return acc;\n }\n return acc.concat(val);\n }, []);\n const ipAddress = flattenedHeaderValues.find((ip) => ip !== null && isIP(ip));\n return ipAddress || null;\n}\nfunction parseForwardedHeader(value) {\n if (!value) {\n return null;\n }\n for (const part of value.split(\";\")) {\n if (part.startsWith(\"for=\")) {\n return part.slice(4);\n }\n }\n return null;\n}\nfunction isIP(str) {\n const regex = /(?:^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$)|(?:^(?:(?:[a-fA-F\\d]{1,4}:){7}(?:[a-fA-F\\d]{1,4}|:)|(?:[a-fA-F\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-fA-F\\d]{1,4}|:)|(?:[a-fA-F\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,2}|:)|(?:[a-fA-F\\d]{1,4}:){4}(?:(?::[a-fA-F\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,3}|:)|(?:[a-fA-F\\d]{1,4}:){3}(?:(?::[a-fA-F\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,4}|:)|(?:[a-fA-F\\d]{1,4}:){2}(?:(?::[a-fA-F\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,5}|:)|(?:[a-fA-F\\d]{1,4}:){1}(?:(?::[a-fA-F\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/;\n return regex.test(str);\n}\n\nexport { getClientIPAddress, ipHeaderNames };\n//# sourceMappingURL=getIpAddress.js.map\n", + "import { getIsolationScope } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\nimport { SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS } from '../semanticAttributes.js';\nimport { parseCookie } from '../utils/cookie.js';\nimport { httpHeadersToSpanAttributes } from '../utils/request.js';\nimport { getClientIPAddress, ipHeaderNames } from '../vendor/getIpAddress.js';\nimport { safeSetSpanJSONAttributes } from '../tracing/spans/captureSpan.js';\n\nconst INTEGRATION_NAME = \"RequestData\";\nconst _requestDataIntegration = ((options = {}) => {\n function resolveIncludeAndDataCollection(client) {\n const dc = client.getDataCollectionOptions();\n const dataCollection = {\n ...dc,\n ...options.include?.cookies === true && dc.cookies === false && { cookies: true },\n ...options.include?.headers === true && dc.httpHeaders.request === false && {\n httpHeaders: { ...dc.httpHeaders, request: true }\n }\n };\n return {\n dataCollection,\n include: {\n cookies: dataCollection.cookies !== false,\n // Always attach body data that's already on the scope — dataCollection.httpBodies gates write-time, not read-time\n data: true,\n headers: dataCollection.httpHeaders.request !== false,\n ip: dataCollection.userInfo,\n query_string: dataCollection.queryParams !== false,\n // No dataCollection equivalent — URL is always included\n url: true,\n ...options.include\n }\n };\n }\n return {\n name: INTEGRATION_NAME,\n processEvent(event, _hint, client) {\n const { sdkProcessingMetadata = {} } = event;\n const { normalizedRequest, ipAddress } = sdkProcessingMetadata;\n const { include } = resolveIncludeAndDataCollection(client);\n if (normalizedRequest) {\n addNormalizedRequestDataToEvent(event, normalizedRequest, { ipAddress }, include);\n }\n return event;\n },\n processSegmentSpan(span, client) {\n const { sdkProcessingMetadata = {} } = getIsolationScope().getScopeData();\n const { normalizedRequest, ipAddress } = sdkProcessingMetadata;\n if (!normalizedRequest) {\n return;\n }\n const { include, dataCollection } = resolveIncludeAndDataCollection(client);\n addNormalizedRequestDataToSpan(span, normalizedRequest, ipAddress, include, dataCollection);\n }\n };\n});\nconst requestDataIntegration = defineIntegration(_requestDataIntegration);\nfunction addNormalizedRequestDataToEvent(event, req, additionalData, include) {\n event.request = {\n ...event.request,\n ...extractNormalizedRequestData(req, include)\n };\n if (include.ip) {\n const ip = req.headers && getClientIPAddress(req.headers) || additionalData.ipAddress;\n if (ip) {\n event.user = {\n ...event.user,\n ip_address: ip\n };\n }\n }\n}\nfunction addNormalizedRequestDataToSpan(span, normalizedRequest, ipAddress, include, dataCollection) {\n const requestData = extractNormalizedRequestData(normalizedRequest, include);\n const attributes = {};\n if (requestData.url) {\n attributes[\"url.full\"] = requestData.url;\n }\n if (requestData.method) {\n attributes[\"http.request.method\"] = requestData.method;\n }\n if (requestData.query_string) {\n attributes[\"url.query\"] = normalizeQueryString(requestData.query_string);\n }\n safeSetSpanJSONAttributes(span, attributes);\n if (requestData.cookies && Object.keys(requestData.cookies).length > 0) {\n const cookieString = Object.entries(requestData.cookies).map(([name, value]) => `${name}=${value}`).join(\"; \");\n const cookieAttributes = httpHeadersToSpanAttributes({ cookie: cookieString }, dataCollection, \"request\");\n safeSetSpanJSONAttributes(span, cookieAttributes);\n }\n if (requestData.headers) {\n const headerAttributes = httpHeadersToSpanAttributes(requestData.headers, dataCollection, \"request\");\n safeSetSpanJSONAttributes(span, headerAttributes);\n }\n if (requestData.data != null) {\n const serialized = typeof requestData.data === \"string\" ? requestData.data : JSON.stringify(requestData.data);\n if (serialized) {\n safeSetSpanJSONAttributes(span, { \"http.request.body.data\": serialized });\n }\n }\n if (include.ip) {\n const ip = normalizedRequest.headers && getClientIPAddress(normalizedRequest.headers) || ipAddress || void 0;\n if (ip) {\n safeSetSpanJSONAttributes(span, { [SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS]: ip });\n }\n }\n}\nfunction extractNormalizedRequestData(normalizedRequest, include) {\n const requestData = {};\n const headers = { ...normalizedRequest.headers };\n if (include.headers) {\n requestData.headers = headers;\n if (!include.cookies) {\n delete headers.cookie;\n }\n if (!include.ip) {\n const ipHeaderNamesLower = new Set(ipHeaderNames.map((name) => name.toLowerCase()));\n for (const key of Object.keys(headers)) {\n if (ipHeaderNamesLower.has(key.toLowerCase())) {\n delete headers[key];\n }\n }\n }\n }\n requestData.method = normalizedRequest.method;\n if (include.url) {\n requestData.url = normalizedRequest.url;\n }\n if (include.cookies) {\n const cookies = normalizedRequest.cookies || (headers?.cookie ? parseCookie(headers.cookie) : void 0);\n requestData.cookies = cookies || {};\n }\n if (include.query_string) {\n requestData.query_string = normalizedRequest.query_string;\n }\n if (include.data) {\n requestData.data = normalizedRequest.data;\n }\n return requestData;\n}\nfunction normalizeQueryString(queryString) {\n if (typeof queryString === \"string\") {\n return queryString || void 0;\n }\n const pairs = Array.isArray(queryString) ? queryString : Object.entries(queryString);\n const result = pairs.map(([key, value]) => `${key}=${value}`).join(\"&\");\n return result || void 0;\n}\n\nexport { requestDataIntegration };\n//# sourceMappingURL=requestdata.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getFunctionName } from '../utils/stacktrace.js';\n\nconst handlers = {};\nconst instrumented = {};\nfunction addHandler(type, handler) {\n handlers[type] = handlers[type] || [];\n handlers[type].push(handler);\n return () => {\n const typeHandlers = handlers[type];\n if (typeHandlers) {\n const index = typeHandlers.indexOf(handler);\n if (index !== -1) {\n typeHandlers.splice(index, 1);\n }\n }\n };\n}\nfunction resetInstrumentationHandlers() {\n Object.keys(handlers).forEach((key) => {\n handlers[key] = void 0;\n });\n}\nfunction maybeInstrument(type, instrumentFn) {\n if (!instrumented[type]) {\n instrumented[type] = true;\n try {\n instrumentFn();\n } catch (e) {\n DEBUG_BUILD && debug.error(`Error while instrumenting ${type}`, e);\n }\n }\n}\nfunction triggerHandlers(type, data) {\n const typeHandlers = type && handlers[type];\n if (!typeHandlers) {\n return;\n }\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD && debug.error(\n `Error while triggering instrumentation handler.\nType: ${type}\nName: ${getFunctionName(handler)}\nError:`,\n e\n );\n }\n }\n}\n\nexport { addHandler, maybeInstrument, resetInstrumentationHandlers, triggerHandlers };\n//# sourceMappingURL=handlers.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { CONSOLE_LEVELS, originalConsoleMethods, debug } from '../utils/debug-logger.js';\nimport { fill } from '../utils/object.js';\nimport { stringMatchesSomePattern } from '../utils/string.js';\nimport { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nconst _filter = /* @__PURE__ */ new Set([]);\nfunction addConsoleInstrumentationHandler(handler) {\n const type = \"console\";\n const removeHandler = addHandler(type, handler);\n maybeInstrument(type, instrumentConsole);\n return removeHandler;\n}\nfunction addConsoleInstrumentationFilter(filter) {\n for (const f of filter) {\n _filter.add(f);\n }\n return () => {\n for (const f of filter) {\n _filter.delete(f);\n }\n };\n}\nfunction instrumentConsole() {\n if (!(\"console\" in GLOBAL_OBJ)) {\n return;\n }\n CONSOLE_LEVELS.forEach(function(level) {\n if (!(level in GLOBAL_OBJ.console)) {\n return;\n }\n fill(GLOBAL_OBJ.console, level, function(originalConsoleMethod) {\n originalConsoleMethods[level] = originalConsoleMethod;\n return function(...args) {\n const firstArg = args[0];\n const log = originalConsoleMethods[level];\n const isFiltered = _filter.size && typeof firstArg === \"string\" && stringMatchesSomePattern(firstArg, _filter);\n if (!isFiltered) {\n triggerHandlers(\"console\", { args, level });\n }\n if (!isFiltered || DEBUG_BUILD && debug.isEnabled()) {\n log?.apply(GLOBAL_OBJ.console, args);\n }\n };\n });\n });\n}\n\nexport { addConsoleInstrumentationFilter, addConsoleInstrumentationHandler };\n//# sourceMappingURL=console.js.map\n", + "function severityLevelFromString(level) {\n return level === \"warn\" ? \"warning\" : [\"fatal\", \"error\", \"warning\", \"log\", \"info\", \"debug\"].includes(level) ? level : \"log\";\n}\n\nexport { severityLevelFromString };\n//# sourceMappingURL=severity.js.map\n", + "function normalizeArray(parts, allowAboveRoot) {\n let up = 0;\n for (let i = parts.length - 1; i >= 0; i--) {\n const last = parts[i];\n if (last === \".\") {\n parts.splice(i, 1);\n } else if (last === \"..\") {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift(\"..\");\n }\n }\n return parts;\n}\nconst splitPathRe = /^(\\S+:\\\\|\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^/\\\\]+?|)(\\.[^./\\\\]*|))(?:[/\\\\]*)$/;\nfunction splitPath(filename) {\n const truncated = filename.length > 1024 ? `${filename.slice(-1024)}` : filename;\n const parts = splitPathRe.exec(truncated);\n return parts ? parts.slice(1) : [];\n}\nfunction resolve(...args) {\n let resolvedPath = \"\";\n let resolvedAbsolute = false;\n for (let i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n const path = i >= 0 ? args[i] : \"/\";\n if (!path) {\n continue;\n }\n resolvedPath = `${path}/${resolvedPath}`;\n resolvedAbsolute = path.charAt(0) === \"/\";\n }\n resolvedPath = normalizeArray(\n resolvedPath.split(\"/\").filter((p) => !!p),\n !resolvedAbsolute\n ).join(\"/\");\n return (resolvedAbsolute ? \"/\" : \"\") + resolvedPath || \".\";\n}\nfunction trim(arr) {\n let start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== \"\") {\n break;\n }\n }\n let end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== \"\") {\n break;\n }\n }\n if (start > end) {\n return [];\n }\n return arr.slice(start, end - start + 1);\n}\nfunction relative(from, to) {\n from = resolve(from).slice(1);\n to = resolve(to).slice(1);\n const fromParts = trim(from.split(\"/\"));\n const toParts = trim(to.split(\"/\"));\n const length = Math.min(fromParts.length, toParts.length);\n let samePartsLength = length;\n for (let i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n let outputParts = [];\n for (let i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push(\"..\");\n }\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join(\"/\");\n}\nfunction normalizePath(path) {\n const isPathAbsolute = isAbsolute(path);\n const trailingSlash = path.slice(-1) === \"/\";\n let normalizedPath = normalizeArray(\n path.split(\"/\").filter((p) => !!p),\n !isPathAbsolute\n ).join(\"/\");\n if (!normalizedPath && !isPathAbsolute) {\n normalizedPath = \".\";\n }\n if (normalizedPath && trailingSlash) {\n normalizedPath += \"/\";\n }\n return (isPathAbsolute ? \"/\" : \"\") + normalizedPath;\n}\nfunction isAbsolute(path) {\n return path.charAt(0) === \"/\";\n}\nfunction join(...args) {\n return normalizePath(args.join(\"/\"));\n}\nfunction dirname(path) {\n const result = splitPath(path);\n const root = result[0] || \"\";\n let dir = result[1];\n if (!root && !dir) {\n return \".\";\n }\n if (dir) {\n dir = dir.slice(0, dir.length - 1);\n }\n return root + dir;\n}\nfunction basename(path, ext) {\n let f = splitPath(path)[2] || \"\";\n if (ext && f.slice(ext.length * -1) === ext) {\n f = f.slice(0, f.length - ext.length);\n }\n return f;\n}\n\nexport { basename, dirname, isAbsolute, join, normalizePath, relative, resolve };\n//# sourceMappingURL=path.js.map\n", + "import { addBreadcrumb } from '../breadcrumbs.js';\nimport { getClient } from '../currentScopes.js';\nimport { addConsoleInstrumentationHandler, addConsoleInstrumentationFilter } from '../instrument/console.js';\nimport { defineIntegration } from '../integration.js';\nimport { CONSOLE_LEVELS } from '../utils/debug-logger.js';\nimport { severityLevelFromString } from '../utils/severity.js';\nimport { safeJoin } from '../utils/string.js';\nimport { GLOBAL_OBJ } from '../utils/worldwide.js';\n\nconst INTEGRATION_NAME = \"Console\";\nconst consoleIntegration = defineIntegration((options = {}) => {\n const levels = new Set(options.levels || CONSOLE_LEVELS);\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n const unsubscribe = addConsoleInstrumentationHandler(({ args, level }) => {\n if (getClient() !== client || !levels.has(level)) {\n return;\n }\n addConsoleBreadcrumb(level, args);\n });\n client.registerCleanup(unsubscribe);\n if (options.filter) {\n const unsubscribe2 = addConsoleInstrumentationFilter(options.filter);\n client.registerCleanup(unsubscribe2);\n }\n }\n };\n});\nfunction addConsoleBreadcrumb(level, args) {\n const breadcrumb = {\n category: \"console\",\n data: {\n arguments: args,\n logger: \"console\"\n },\n level: severityLevelFromString(level),\n message: formatConsoleArgs(args)\n };\n if (level === \"assert\") {\n if (args[0] === false) {\n const assertionArgs = args.slice(1);\n breadcrumb.message = assertionArgs.length > 0 ? `Assertion failed: ${formatConsoleArgs(assertionArgs)}` : \"Assertion failed\";\n breadcrumb.data.arguments = assertionArgs;\n } else {\n return;\n }\n }\n addBreadcrumb(breadcrumb, {\n input: args,\n level\n });\n}\nfunction formatConsoleArgs(values) {\n return \"util\" in GLOBAL_OBJ && typeof GLOBAL_OBJ.util.format === \"function\" ? GLOBAL_OBJ.util.format(...values) : safeJoin(values, \" \");\n}\n\nexport { addConsoleBreadcrumb, consoleIntegration };\n//# sourceMappingURL=console.js.map\n", + "import { getCurrentScope, getIsolationScope } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\nimport { GEN_AI_CONVERSATION_ID_ATTRIBUTE } from '../semanticAttributes.js';\nimport { spanToJSON } from '../utils/spanUtils.js';\n\nconst INTEGRATION_NAME = \"ConversationId\";\nconst _conversationIdIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n client.on(\"spanStart\", (span) => {\n const scopeData = getCurrentScope().getScopeData();\n const isolationScopeData = getIsolationScope().getScopeData();\n const conversationId = scopeData.conversationId || isolationScopeData.conversationId;\n if (conversationId) {\n const { op, data: attributes, description: name } = spanToJSON(span);\n if (!op?.startsWith(\"gen_ai.\") && !attributes[\"ai.operationId\"] && !name?.startsWith(\"ai.\")) {\n return;\n }\n span.setAttribute(GEN_AI_CONVERSATION_ID_ATTRIBUTE, conversationId);\n }\n });\n }\n };\n});\nconst conversationIdIntegration = defineIntegration(_conversationIdIntegration);\n\nexport { conversationIdIntegration };\n//# sourceMappingURL=conversationId.js.map\n", + "const SEQUENCE_ATTR_KEY = \"sentry.timestamp.sequence\";\nlet _sequenceNumber = 0;\nlet _previousTimestampMs;\nfunction getSequenceAttribute(timestampInSeconds) {\n const nowMs = Math.floor(timestampInSeconds * 1e3);\n if (_previousTimestampMs !== void 0 && nowMs !== _previousTimestampMs) {\n _sequenceNumber = 0;\n }\n const value = _sequenceNumber;\n _sequenceNumber++;\n _previousTimestampMs = nowMs;\n return {\n key: SEQUENCE_ATTR_KEY,\n value: { value, type: \"integer\" }\n };\n}\n\nexport { getSequenceAttribute };\n//# sourceMappingURL=timestampSequence.js.map\n", + "import { withScope, getTraceContextFromScope } from '../currentScopes.js';\nimport { getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromScope } from '../tracing/dynamicSamplingContext.js';\nimport { getActiveSpan, spanToTraceContext } from './spanUtils.js';\n\nfunction _getTraceInfoFromScope(client, scope) {\n if (!scope) {\n return [void 0, void 0];\n }\n return withScope(scope, () => {\n const span = getActiveSpan();\n const traceContext = span ? spanToTraceContext(span) : getTraceContextFromScope(scope);\n const dynamicSamplingContext = span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromScope(client, scope);\n return [dynamicSamplingContext, traceContext];\n });\n}\n\nexport { _getTraceInfoFromScope };\n//# sourceMappingURL=trace-info.js.map\n", + "function isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== \"undefined\" && !!__SENTRY_BROWSER_BUNDLE__;\n}\nfunction getSDKSource() {\n /*! __SENTRY_SDK_SOURCE__ */\n return \"npm\";\n}\n\nexport { getSDKSource, isBrowserBundle };\n//# sourceMappingURL=env.js.map\n", + "import { isBrowserBundle } from './env.js';\n\nfunction isNodeEnv() {\n return !isBrowserBundle() && Object.prototype.toString.call(typeof process !== \"undefined\" ? process : 0) === \"[object process]\";\n}\nfunction dynamicRequire(mod, request) {\n return mod.require(request);\n}\nfunction loadModule(moduleName, existingModule = module) {\n let mod;\n try {\n mod = dynamicRequire(existingModule, moduleName);\n } catch {\n }\n if (!mod) {\n try {\n const { cwd } = dynamicRequire(existingModule, \"process\");\n mod = dynamicRequire(existingModule, `${cwd()}/node_modules/${moduleName}`);\n } catch {\n }\n }\n return mod;\n}\n\nexport { isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n", + "import { isNodeEnv } from './node.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nfunction isBrowser() {\n return typeof window !== \"undefined\" && (!isNodeEnv() || isElectronNodeRenderer());\n}\nfunction isElectronNodeRenderer() {\n const process = GLOBAL_OBJ.process;\n return process?.type === \"renderer\";\n}\n\nexport { isBrowser };\n//# sourceMappingURL=isBrowser.js.map\n", + "import { dsnToString } from '../utils/dsn.js';\nimport { createEnvelope } from '../utils/envelope.js';\nimport { isBrowser } from '../utils/isBrowser.js';\n\nfunction createLogContainerEnvelopeItem(items, inferUserData) {\n const inferSetting = inferUserData ? \"auto\" : \"never\";\n return [\n {\n type: \"log\",\n item_count: items.length,\n content_type: \"application/vnd.sentry.items.log+json\"\n },\n {\n version: 2,\n ...isBrowser() && {\n ingest_settings: { infer_ip: inferSetting, infer_user_agent: inferSetting }\n },\n items\n }\n ];\n}\nfunction createLogEnvelope(logs, metadata, tunnel, dsn, inferUserData) {\n const headers = {};\n if (metadata?.sdk) {\n headers.sdk = {\n name: metadata.sdk.name,\n version: metadata.sdk.version\n };\n }\n if (!!tunnel && !!dsn) {\n headers.dsn = dsnToString(dsn);\n }\n return createEnvelope(headers, [createLogContainerEnvelopeItem(logs, inferUserData)]);\n}\n\nexport { createLogContainerEnvelopeItem, createLogEnvelope };\n//# sourceMappingURL=envelope.js.map\n", + "import { serializeAttributes } from '../attributes.js';\nimport { getGlobalSingleton } from '../carrier.js';\nimport { getClient, getIsolationScope, getCurrentScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { debug, consoleSandbox } from '../utils/debug-logger.js';\nimport { isParameterizedString } from '../utils/is.js';\nimport { getCombinedScopeData } from '../utils/scopeData.js';\nimport { _getSpanForScope } from '../utils/spanOnScope.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getSequenceAttribute } from '../utils/timestampSequence.js';\nimport { _getTraceInfoFromScope } from '../utils/trace-info.js';\nimport { SEVERITY_TEXT_TO_SEVERITY_NUMBER } from './constants.js';\nimport { createLogEnvelope } from './envelope.js';\n\nconst MAX_LOG_BUFFER_SIZE = 100;\nfunction setLogAttribute(logAttributes, key, value, setEvenIfPresent = true) {\n if (value && (!logAttributes[key] || setEvenIfPresent)) {\n logAttributes[key] = value;\n }\n}\nfunction _INTERNAL_captureSerializedLog(client, serializedLog) {\n const bufferMap = _getBufferMap();\n const logBuffer = _INTERNAL_getLogBuffer(client);\n if (logBuffer === void 0) {\n bufferMap.set(client, [serializedLog]);\n } else {\n if (logBuffer.length >= MAX_LOG_BUFFER_SIZE) {\n _INTERNAL_flushLogsBuffer(client, logBuffer);\n bufferMap.set(client, [serializedLog]);\n } else {\n bufferMap.set(client, [...logBuffer, serializedLog]);\n }\n }\n}\nfunction _INTERNAL_captureLog(beforeLog, currentScope = getCurrentScope(), captureSerializedLog = _INTERNAL_captureSerializedLog) {\n const client = currentScope?.getClient() ?? getClient();\n if (!client) {\n DEBUG_BUILD && debug.warn(\"No client available to capture log.\");\n return;\n }\n const { release, environment, enableLogs = false, beforeSendLog } = client.getOptions();\n if (!enableLogs) {\n DEBUG_BUILD && debug.warn(\"logging option not enabled, log will not be captured.\");\n return;\n }\n const [, traceContext] = _getTraceInfoFromScope(client, currentScope);\n const processedLogAttributes = {\n ...beforeLog.attributes\n };\n const {\n user: { id, email, username },\n attributes: scopeAttributes = {}\n } = getCombinedScopeData(getIsolationScope(), currentScope);\n setLogAttribute(processedLogAttributes, \"user.id\", id, false);\n setLogAttribute(processedLogAttributes, \"user.email\", email, false);\n setLogAttribute(processedLogAttributes, \"user.name\", username, false);\n setLogAttribute(processedLogAttributes, \"sentry.release\", release);\n setLogAttribute(processedLogAttributes, \"sentry.environment\", environment);\n const { name, version } = client.getSdkMetadata()?.sdk ?? {};\n setLogAttribute(processedLogAttributes, \"sentry.sdk.name\", name);\n setLogAttribute(processedLogAttributes, \"sentry.sdk.version\", version);\n const replay = client.getIntegrationByName(\"Replay\");\n const replayId = replay?.getReplayId(true);\n setLogAttribute(processedLogAttributes, \"sentry.replay_id\", replayId);\n if (replayId && replay?.getRecordingMode() === \"buffer\") {\n setLogAttribute(processedLogAttributes, \"sentry._internal.replay_is_buffering\", true);\n }\n const beforeLogMessage = beforeLog.message;\n if (isParameterizedString(beforeLogMessage)) {\n const { __sentry_template_string__, __sentry_template_values__ = [] } = beforeLogMessage;\n if (__sentry_template_values__?.length) {\n processedLogAttributes[\"sentry.message.template\"] = __sentry_template_string__;\n }\n __sentry_template_values__.forEach((param, index) => {\n processedLogAttributes[`sentry.message.parameter.${index}`] = param;\n });\n }\n const span = _getSpanForScope(currentScope);\n setLogAttribute(processedLogAttributes, \"sentry.trace.parent_span_id\", span?.spanContext().spanId);\n const processedLog = { ...beforeLog, attributes: processedLogAttributes };\n client.emit(\"beforeCaptureLog\", processedLog);\n const log = beforeSendLog ? consoleSandbox(() => beforeSendLog(processedLog)) : processedLog;\n if (!log) {\n client.recordDroppedEvent(\"before_send\", \"log_item\", 1);\n DEBUG_BUILD && debug.warn(\"beforeSendLog returned null, log will not be captured.\");\n return;\n }\n const { level, message, attributes: logAttributes = {}, severityNumber } = log;\n const timestamp = timestampInSeconds();\n const sequenceAttr = getSequenceAttribute(timestamp);\n const serializedLog = {\n timestamp,\n level,\n body: _removeLoneSurrogates(String(message)),\n trace_id: traceContext?.trace_id,\n severity_number: severityNumber ?? SEVERITY_TEXT_TO_SEVERITY_NUMBER[level],\n attributes: sanitizeLogAttributes({\n ...serializeAttributes(scopeAttributes),\n ...serializeAttributes(logAttributes, true),\n [sequenceAttr.key]: sequenceAttr.value\n })\n };\n captureSerializedLog(client, serializedLog);\n client.emit(\"afterCaptureLog\", log);\n}\nfunction _INTERNAL_flushLogsBuffer(client, maybeLogBuffer) {\n const logBuffer = maybeLogBuffer ?? _INTERNAL_getLogBuffer(client) ?? [];\n if (logBuffer.length === 0) {\n return;\n }\n const clientOptions = client.getOptions();\n const envelope = createLogEnvelope(\n logBuffer,\n clientOptions._metadata,\n clientOptions.tunnel,\n client.getDsn(),\n client.getDataCollectionOptions().userInfo\n );\n _getBufferMap().set(client, []);\n client.emit(\"flushLogs\");\n client.sendEnvelope(envelope);\n}\nfunction _INTERNAL_getLogBuffer(client) {\n return _getBufferMap().get(client);\n}\nfunction _getBufferMap() {\n return getGlobalSingleton(\"clientToLogBufferMap\", () => /* @__PURE__ */ new WeakMap());\n}\nfunction sanitizeLogAttributes(attributes) {\n const sanitized = {};\n for (const [key, attr] of Object.entries(attributes)) {\n const sanitizedKey = _removeLoneSurrogates(key);\n if (attr.type === \"string\") {\n sanitized[sanitizedKey] = { ...attr, value: _removeLoneSurrogates(attr.value) };\n } else {\n sanitized[sanitizedKey] = attr;\n }\n }\n return sanitized;\n}\nfunction _removeLoneSurrogates(str) {\n const strObj = Object(str);\n const isWellFormed = strObj[\"isWellFormed\"];\n const toWellFormed = strObj[\"toWellFormed\"];\n if (typeof isWellFormed === \"function\" && typeof toWellFormed === \"function\") {\n return isWellFormed.call(str) ? str : toWellFormed.call(str);\n }\n return str;\n}\n\nexport { _INTERNAL_captureLog, _INTERNAL_captureSerializedLog, _INTERNAL_flushLogsBuffer, _INTERNAL_getLogBuffer, _removeLoneSurrogates };\n//# sourceMappingURL=internal.js.map\n", + "import { dsnToString } from '../utils/dsn.js';\nimport { createEnvelope } from '../utils/envelope.js';\nimport { isBrowser } from '../utils/isBrowser.js';\n\nfunction createMetricContainerEnvelopeItem(items, inferUserData) {\n const inferSetting = inferUserData ? \"auto\" : \"never\";\n return [\n {\n type: \"trace_metric\",\n item_count: items.length,\n content_type: \"application/vnd.sentry.items.trace-metric+json\"\n },\n {\n version: 2,\n ...isBrowser() && {\n ingest_settings: { infer_ip: inferSetting, infer_user_agent: inferSetting }\n },\n items\n }\n ];\n}\nfunction createMetricEnvelope(metrics, metadata, tunnel, dsn, inferUserData) {\n const headers = {};\n if (metadata?.sdk) {\n headers.sdk = {\n name: metadata.sdk.name,\n version: metadata.sdk.version\n };\n }\n if (!!tunnel && !!dsn) {\n headers.dsn = dsnToString(dsn);\n }\n return createEnvelope(headers, [createMetricContainerEnvelopeItem(metrics, inferUserData)]);\n}\n\nexport { createMetricContainerEnvelopeItem, createMetricEnvelope };\n//# sourceMappingURL=envelope.js.map\n", + "import { serializeAttributes } from '../attributes.js';\nimport { getGlobalSingleton } from '../carrier.js';\nimport { getCurrentScope, getClient, getIsolationScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getCombinedScopeData } from '../utils/scopeData.js';\nimport { _getSpanForScope } from '../utils/spanOnScope.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getSequenceAttribute } from '../utils/timestampSequence.js';\nimport { _getTraceInfoFromScope } from '../utils/trace-info.js';\nimport { createMetricEnvelope } from './envelope.js';\n\nconst MAX_METRIC_BUFFER_SIZE = 1e3;\nfunction setMetricAttribute(metricAttributes, key, value, setEvenIfPresent = true) {\n if (value && (setEvenIfPresent || !(key in metricAttributes))) {\n metricAttributes[key] = value;\n }\n}\nfunction _INTERNAL_captureSerializedMetric(client, serializedMetric) {\n const bufferMap = _getBufferMap();\n const metricBuffer = _INTERNAL_getMetricBuffer(client);\n if (metricBuffer === void 0) {\n bufferMap.set(client, [serializedMetric]);\n } else {\n if (metricBuffer.length >= MAX_METRIC_BUFFER_SIZE) {\n _INTERNAL_flushMetricsBuffer(client, metricBuffer);\n bufferMap.set(client, [serializedMetric]);\n } else {\n bufferMap.set(client, [...metricBuffer, serializedMetric]);\n }\n }\n}\nfunction _enrichMetricAttributes(beforeMetric, client, user) {\n const { release, environment } = client.getOptions();\n const processedMetricAttributes = {\n ...beforeMetric.attributes\n };\n setMetricAttribute(processedMetricAttributes, \"user.id\", user.id, false);\n setMetricAttribute(processedMetricAttributes, \"user.email\", user.email, false);\n setMetricAttribute(processedMetricAttributes, \"user.name\", user.username, false);\n setMetricAttribute(processedMetricAttributes, \"sentry.release\", release);\n setMetricAttribute(processedMetricAttributes, \"sentry.environment\", environment);\n const { name, version } = client.getSdkMetadata()?.sdk ?? {};\n setMetricAttribute(processedMetricAttributes, \"sentry.sdk.name\", name);\n setMetricAttribute(processedMetricAttributes, \"sentry.sdk.version\", version);\n const replay = client.getIntegrationByName(\"Replay\");\n const replayId = replay?.getReplayId(true);\n setMetricAttribute(processedMetricAttributes, \"sentry.replay_id\", replayId);\n if (replayId && replay?.getRecordingMode() === \"buffer\") {\n setMetricAttribute(processedMetricAttributes, \"sentry._internal.replay_is_buffering\", true);\n }\n return {\n ...beforeMetric,\n attributes: processedMetricAttributes\n };\n}\nfunction _buildSerializedMetric(metric, client, currentScope, scopeAttributes) {\n const [, traceContext] = _getTraceInfoFromScope(client, currentScope);\n const span = _getSpanForScope(currentScope);\n const traceId = span ? span.spanContext().traceId : traceContext?.trace_id;\n const spanId = span ? span.spanContext().spanId : void 0;\n const timestamp = timestampInSeconds();\n const sequenceAttr = getSequenceAttribute(timestamp);\n return {\n timestamp,\n trace_id: traceId ?? \"\",\n span_id: spanId,\n name: metric.name,\n type: metric.type,\n unit: metric.unit,\n value: metric.value,\n attributes: {\n ...serializeAttributes(scopeAttributes),\n ...serializeAttributes(metric.attributes, \"skip-undefined\"),\n [sequenceAttr.key]: sequenceAttr.value\n }\n };\n}\nfunction _INTERNAL_captureMetric(beforeMetric, options) {\n const currentScope = options?.scope ?? getCurrentScope();\n const captureSerializedMetric = options?.captureSerializedMetric ?? _INTERNAL_captureSerializedMetric;\n const client = currentScope?.getClient() ?? getClient();\n if (!client) {\n DEBUG_BUILD && debug.warn(\"No client available to capture metric.\");\n return;\n }\n const { _experiments, enableMetrics, beforeSendMetric } = client.getOptions();\n const metricsEnabled = enableMetrics ?? _experiments?.enableMetrics ?? true;\n if (!metricsEnabled) {\n DEBUG_BUILD && debug.warn(\"metrics option not enabled, metric will not be captured.\");\n return;\n }\n const { user, attributes: scopeAttributes } = getCombinedScopeData(getIsolationScope(), currentScope);\n const enrichedMetric = _enrichMetricAttributes(beforeMetric, client, user);\n client.emit(\"processMetric\", enrichedMetric);\n const beforeSendCallback = beforeSendMetric || _experiments?.beforeSendMetric;\n const processedMetric = beforeSendCallback ? beforeSendCallback(enrichedMetric) : enrichedMetric;\n if (!processedMetric) {\n DEBUG_BUILD && debug.log(\"`beforeSendMetric` returned `null`, will not send metric.\");\n return;\n }\n const serializedMetric = _buildSerializedMetric(processedMetric, client, currentScope, scopeAttributes);\n DEBUG_BUILD && debug.log(\"[Metric]\", serializedMetric);\n captureSerializedMetric(client, serializedMetric);\n client.emit(\"afterCaptureMetric\", processedMetric);\n}\nfunction _INTERNAL_flushMetricsBuffer(client, maybeMetricBuffer) {\n const metricBuffer = maybeMetricBuffer ?? _INTERNAL_getMetricBuffer(client) ?? [];\n if (metricBuffer.length === 0) {\n return;\n }\n const clientOptions = client.getOptions();\n const envelope = createMetricEnvelope(\n metricBuffer,\n clientOptions._metadata,\n clientOptions.tunnel,\n client.getDsn(),\n client.getDataCollectionOptions().userInfo\n );\n _getBufferMap().set(client, []);\n client.emit(\"flushMetrics\");\n client.sendEnvelope(envelope);\n}\nfunction _INTERNAL_getMetricBuffer(client) {\n return _getBufferMap().get(client);\n}\nfunction _getBufferMap() {\n return getGlobalSingleton(\"clientToMetricBufferMap\", () => /* @__PURE__ */ new WeakMap());\n}\n\nexport { _INTERNAL_captureMetric, _INTERNAL_captureSerializedMetric, _INTERNAL_flushMetricsBuffer, _INTERNAL_getMetricBuffer };\n//# sourceMappingURL=internal.js.map\n", + "import { _INTERNAL_captureMetric } from './internal.js';\n\nfunction captureMetric(type, name, value, options) {\n _INTERNAL_captureMetric(\n { type, name, value, unit: options?.unit, attributes: options?.attributes },\n { scope: options?.scope }\n );\n}\nfunction count(name, value = 1, options) {\n captureMetric(\"counter\", name, value, options);\n}\nfunction gauge(name, value, options) {\n captureMetric(\"gauge\", name, value, options);\n}\nfunction distribution(name, value, options) {\n captureMetric(\"distribution\", name, value, options);\n}\n\nexport { count, distribution, gauge };\n//# sourceMappingURL=public-api.js.map\n", + "const GEN_AI_PROMPT_ATTRIBUTE = \"gen_ai.prompt\";\nconst GEN_AI_SYSTEM_ATTRIBUTE = \"gen_ai.system\";\nconst GEN_AI_REQUEST_MODEL_ATTRIBUTE = \"gen_ai.request.model\";\nconst GEN_AI_REQUEST_STREAM_ATTRIBUTE = \"gen_ai.request.stream\";\nconst GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE = \"gen_ai.request.temperature\";\nconst GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE = \"gen_ai.request.max_tokens\";\nconst GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE = \"gen_ai.request.frequency_penalty\";\nconst GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE = \"gen_ai.request.presence_penalty\";\nconst GEN_AI_REQUEST_TOP_P_ATTRIBUTE = \"gen_ai.request.top_p\";\nconst GEN_AI_REQUEST_TOP_K_ATTRIBUTE = \"gen_ai.request.top_k\";\nconst GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE = \"gen_ai.request.encoding_format\";\nconst GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE = \"gen_ai.request.dimensions\";\nconst GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE = \"gen_ai.response.finish_reasons\";\nconst GEN_AI_RESPONSE_MODEL_ATTRIBUTE = \"gen_ai.response.model\";\nconst GEN_AI_RESPONSE_ID_ATTRIBUTE = \"gen_ai.response.id\";\nconst GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE = \"gen_ai.response.stop_reason\";\nconst GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE = \"gen_ai.usage.input_tokens\";\nconst GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE = \"gen_ai.usage.output_tokens\";\nconst GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE = \"gen_ai.usage.total_tokens\";\nconst GEN_AI_OPERATION_NAME_ATTRIBUTE = \"gen_ai.operation.name\";\nconst GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE = \"sentry.sdk_meta.gen_ai.input.messages.original_length\";\nconst GEN_AI_INPUT_MESSAGES_ATTRIBUTE = \"gen_ai.input.messages\";\nconst GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE = \"gen_ai.output.messages\";\nconst GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE = \"gen_ai.system_instructions\";\nconst GEN_AI_RESPONSE_TEXT_ATTRIBUTE = \"gen_ai.response.text\";\nconst GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE = \"gen_ai.request.available_tools\";\nconst GEN_AI_RESPONSE_STREAMING_ATTRIBUTE = \"gen_ai.response.streaming\";\nconst GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE = \"gen_ai.response.tool_calls\";\nconst GEN_AI_AGENT_NAME_ATTRIBUTE = \"gen_ai.agent.name\";\nconst GEN_AI_PIPELINE_NAME_ATTRIBUTE = \"gen_ai.pipeline.name\";\nconst GEN_AI_CONVERSATION_ID_ATTRIBUTE = \"gen_ai.conversation.id\";\nconst GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE = \"gen_ai.usage.cache_creation_input_tokens\";\nconst GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE = \"gen_ai.usage.cache_read_input_tokens\";\nconst GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE = \"gen_ai.usage.input_tokens.cache_write\";\nconst GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE = \"gen_ai.usage.input_tokens.cached\";\nconst GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE = \"gen_ai.invoke_agent\";\nconst GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE = \"gen_ai.embeddings.input\";\nconst GEN_AI_EMBEDDINGS_OPERATION_ATTRIBUTE = \"gen_ai.embeddings\";\nconst GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE = \"gen_ai.execute_tool\";\nconst GEN_AI_TOOL_NAME_ATTRIBUTE = \"gen_ai.tool.name\";\nconst GEN_AI_TOOL_CALL_ID_ATTRIBUTE = \"gen_ai.tool.call.id\";\nconst GEN_AI_TOOL_TYPE_ATTRIBUTE = \"gen_ai.tool.type\";\nconst GEN_AI_TOOL_INPUT_ATTRIBUTE = \"gen_ai.tool.input\";\nconst GEN_AI_TOOL_OUTPUT_ATTRIBUTE = \"gen_ai.tool.output\";\nconst GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE = \"gen_ai.tool.description\";\n\nexport { GEN_AI_AGENT_NAME_ATTRIBUTE, GEN_AI_CONVERSATION_ID_ATTRIBUTE, GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_EMBEDDINGS_OPERATION_ATTRIBUTE, GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE, GEN_AI_PIPELINE_NAME_ATTRIBUTE, GEN_AI_PROMPT_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE, GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_K_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE, GEN_AI_RESPONSE_STREAMING_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_TOOL_CALL_ID_ATTRIBUTE, GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_TOOL_OUTPUT_ATTRIBUTE, GEN_AI_TOOL_TYPE_ATTRIBUTE, GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE };\n//# sourceMappingURL=gen-ai-attributes.js.map\n", + "function isContentMedia(part) {\n if (!part || typeof part !== \"object\") return false;\n return isContentMediaSource(part) || hasInlineData(part) || hasImageUrl(part) || hasInputAudio(part) || hasFileData(part) || hasMediaTypeData(part) || hasVercelFileData(part) || hasVercelImageData(part) || hasBlobOrBase64Type(part) || hasB64Json(part) || hasImageGenerationResult(part) || hasDataUri(part);\n}\nfunction hasImageUrl(part) {\n if (!(\"image_url\" in part)) return false;\n if (typeof part.image_url === \"string\") return part.image_url.startsWith(\"data:\");\n return hasNestedImageUrl(part);\n}\nfunction hasNestedImageUrl(part) {\n return \"image_url\" in part && !!part.image_url && typeof part.image_url === \"object\" && \"url\" in part.image_url && typeof part.image_url.url === \"string\" && part.image_url.url.startsWith(\"data:\");\n}\nfunction isContentMediaSource(part) {\n return \"type\" in part && typeof part.type === \"string\" && \"source\" in part && isContentMedia(part.source);\n}\nfunction hasInlineData(part) {\n return \"inlineData\" in part && !!part.inlineData && typeof part.inlineData === \"object\" && \"data\" in part.inlineData && typeof part.inlineData.data === \"string\";\n}\nfunction hasInputAudio(part) {\n return \"type\" in part && part.type === \"input_audio\" && \"input_audio\" in part && !!part.input_audio && typeof part.input_audio === \"object\" && \"data\" in part.input_audio && typeof part.input_audio.data === \"string\";\n}\nfunction hasFileData(part) {\n return \"type\" in part && part.type === \"file\" && \"file\" in part && !!part.file && typeof part.file === \"object\" && \"file_data\" in part.file && typeof part.file.file_data === \"string\";\n}\nfunction hasMediaTypeData(part) {\n return \"media_type\" in part && typeof part.media_type === \"string\" && \"data\" in part;\n}\nfunction hasVercelFileData(part) {\n return \"type\" in part && part.type === \"file\" && \"mediaType\" in part && typeof part.mediaType === \"string\" && \"data\" in part && typeof part.data === \"string\" && // Only strip base64/binary data, not HTTP/HTTPS URLs which should be preserved as references\n !part.data.startsWith(\"http://\") && !part.data.startsWith(\"https://\");\n}\nfunction hasVercelImageData(part) {\n return \"type\" in part && part.type === \"image\" && \"image\" in part && typeof part.image === \"string\" && // Only strip base64/data URIs, not HTTP/HTTPS URLs which should be preserved as references\n !part.image.startsWith(\"http://\") && !part.image.startsWith(\"https://\");\n}\nfunction hasBlobOrBase64Type(part) {\n return \"type\" in part && (part.type === \"blob\" || part.type === \"base64\");\n}\nfunction hasB64Json(part) {\n return \"b64_json\" in part;\n}\nfunction hasImageGenerationResult(part) {\n return \"type\" in part && \"result\" in part && part.type === \"image_generation\";\n}\nfunction hasDataUri(part) {\n return \"uri\" in part && typeof part.uri === \"string\" && part.uri.startsWith(\"data:\");\n}\nconst REMOVED_STRING = \"[Blob substitute]\";\nconst MEDIA_FIELDS = [\"image_url\", \"data\", \"content\", \"b64_json\", \"result\", \"uri\", \"image\"];\nfunction stripInlineMediaFromSingleMessage(part) {\n const strip = { ...part };\n if (isContentMedia(strip.source)) {\n strip.source = stripInlineMediaFromSingleMessage(strip.source);\n }\n if (hasInlineData(part)) {\n strip.inlineData = { ...part.inlineData, data: REMOVED_STRING };\n }\n if (hasNestedImageUrl(part)) {\n strip.image_url = { ...part.image_url, url: REMOVED_STRING };\n }\n if (hasInputAudio(part)) {\n strip.input_audio = { ...part.input_audio, data: REMOVED_STRING };\n }\n if (hasFileData(part)) {\n strip.file = { ...part.file, file_data: REMOVED_STRING };\n }\n for (const field of MEDIA_FIELDS) {\n if (typeof strip[field] === \"string\") strip[field] = REMOVED_STRING;\n }\n return strip;\n}\n\nexport { isContentMedia, stripInlineMediaFromSingleMessage };\n//# sourceMappingURL=mediaStripping.js.map\n", + "import { isContentMedia, stripInlineMediaFromSingleMessage } from './mediaStripping.js';\n\nconst DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT = 2e4;\nconst utf8Bytes = (text) => {\n return new TextEncoder().encode(text).length;\n};\nconst jsonBytes = (value) => {\n return utf8Bytes(JSON.stringify(value));\n};\nfunction truncateTextByBytes(text, maxBytes) {\n if (utf8Bytes(text) <= maxBytes) {\n return text;\n }\n let low = 0;\n let high = text.length;\n let bestFit = \"\";\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n const candidate = text.slice(0, mid);\n const byteSize = utf8Bytes(candidate);\n if (byteSize <= maxBytes) {\n bestFit = candidate;\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n return bestFit;\n}\nfunction getItemText(item) {\n if (typeof item === \"string\") {\n return item;\n }\n if (\"text\" in item && typeof item.text === \"string\") {\n return item.text;\n }\n return \"\";\n}\nfunction withItemText(item, text) {\n if (typeof item === \"string\") {\n return text;\n }\n return { ...item, text };\n}\nfunction isContentMessage(message) {\n return message !== null && typeof message === \"object\" && \"content\" in message && typeof message.content === \"string\";\n}\nfunction isContentArrayMessage(message) {\n return message !== null && typeof message === \"object\" && \"content\" in message && Array.isArray(message.content);\n}\nfunction isPartsMessage(message) {\n return message !== null && typeof message === \"object\" && \"parts\" in message && Array.isArray(message.parts) && message.parts.length > 0;\n}\nfunction truncateContentMessage(message, maxBytes) {\n const emptyMessage = { ...message, content: \"\" };\n const overhead = jsonBytes(emptyMessage);\n const availableForContent = maxBytes - overhead;\n if (availableForContent <= 0) {\n return [];\n }\n const truncatedContent = truncateTextByBytes(message.content, availableForContent);\n return [{ ...message, content: truncatedContent }];\n}\nfunction getArrayItems(message) {\n if (\"parts\" in message && Array.isArray(message.parts)) {\n return { key: \"parts\", items: message.parts };\n }\n if (\"content\" in message && Array.isArray(message.content)) {\n return { key: \"content\", items: message.content };\n }\n return { key: null, items: [] };\n}\nfunction truncateArrayMessage(message, maxBytes) {\n const { key, items } = getArrayItems(message);\n if (key === null || items.length === 0) {\n return [];\n }\n const emptyItems = items.map((item) => withItemText(item, \"\"));\n const overhead = jsonBytes({ ...message, [key]: emptyItems });\n let remainingBytes = maxBytes - overhead;\n if (remainingBytes <= 0) {\n return [];\n }\n const includedItems = [];\n for (const item of items) {\n const text = getItemText(item);\n const textSize = utf8Bytes(text);\n if (textSize <= remainingBytes) {\n includedItems.push(item);\n remainingBytes -= textSize;\n } else if (includedItems.length === 0) {\n const truncated = truncateTextByBytes(text, remainingBytes);\n if (truncated) {\n includedItems.push(withItemText(item, truncated));\n }\n break;\n } else {\n break;\n }\n }\n if (includedItems.length <= 0) {\n return [];\n } else {\n return [{ ...message, [key]: includedItems }];\n }\n}\nfunction truncateSingleMessage(message, maxBytes) {\n if (!message) return [];\n if (typeof message === \"string\") {\n const truncated = truncateTextByBytes(message, maxBytes);\n return truncated ? [truncated] : [];\n }\n if (typeof message !== \"object\") {\n return [];\n }\n if (isContentMessage(message)) {\n return truncateContentMessage(message, maxBytes);\n }\n if (isContentArrayMessage(message) || isPartsMessage(message)) {\n return truncateArrayMessage(message, maxBytes);\n }\n return [];\n}\nfunction stripInlineMediaFromMessages(messages) {\n const stripped = messages.map((message) => {\n let newMessage = void 0;\n if (!!message && typeof message === \"object\") {\n if (isContentArrayMessage(message)) {\n newMessage = {\n ...message,\n content: stripInlineMediaFromMessages(message.content)\n };\n } else if (\"content\" in message && isContentMedia(message.content)) {\n newMessage = {\n ...message,\n content: stripInlineMediaFromSingleMessage(message.content)\n };\n }\n if (isPartsMessage(message)) {\n newMessage = {\n // might have to strip content AND parts\n ...newMessage ?? message,\n parts: stripInlineMediaFromMessages(message.parts)\n };\n }\n if (isContentMedia(newMessage)) {\n newMessage = stripInlineMediaFromSingleMessage(newMessage);\n } else if (isContentMedia(message)) {\n newMessage = stripInlineMediaFromSingleMessage(message);\n }\n }\n return newMessage ?? message;\n });\n return stripped;\n}\nfunction truncateMessagesByBytes(messages, maxBytes) {\n if (!Array.isArray(messages) || messages.length === 0) {\n return messages;\n }\n const effectiveMaxBytes = maxBytes - 2;\n const lastMessage = messages[messages.length - 1];\n const stripped = stripInlineMediaFromMessages([lastMessage]);\n const strippedMessage = stripped[0];\n const messageBytes = jsonBytes(strippedMessage);\n if (messageBytes <= effectiveMaxBytes) {\n return stripped;\n }\n return truncateSingleMessage(strippedMessage, effectiveMaxBytes);\n}\nfunction truncateGenAiMessages(messages) {\n return truncateMessagesByBytes(messages, DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT);\n}\nfunction truncateGenAiStringInput(input) {\n return truncateTextByBytes(input, DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT);\n}\n\nexport { DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT, truncateGenAiMessages, truncateGenAiStringInput };\n//# sourceMappingURL=messageTruncation.js.map\n", + "import { captureException } from '../../exports.js';\nimport { getClient } from '../../currentScopes.js';\nimport { hasSpanStreamingEnabled } from '../spans/hasSpanStreamingEnabled.js';\nimport { isThenable } from '../../utils/is.js';\nimport { GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_RESPONSE_STREAMING_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE } from './gen-ai-attributes.js';\nimport { truncateGenAiStringInput, truncateGenAiMessages } from './messageTruncation.js';\n\nfunction resolveAIRecordingOptions(options) {\n const genAI = getClient()?.getDataCollectionOptions().genAI;\n return {\n ...options,\n recordInputs: options?.recordInputs ?? genAI?.inputs ?? false,\n recordOutputs: options?.recordOutputs ?? genAI?.outputs ?? false\n };\n}\nfunction shouldEnableTruncation(enableTruncation) {\n if (enableTruncation !== void 0) {\n return enableTruncation;\n }\n const client = getClient();\n if (!client) {\n return true;\n }\n return !hasSpanStreamingEnabled(client) && client.getOptions().streamGenAiSpans === false;\n}\nfunction buildMethodPath(currentPath, prop) {\n return currentPath ? `${currentPath}.${prop}` : prop;\n}\nfunction setTokenUsageAttributes(span, promptTokens, completionTokens, cachedInputTokens, cachedOutputTokens) {\n if (promptTokens !== void 0) {\n span.setAttributes({\n [GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE]: promptTokens\n });\n }\n if (completionTokens !== void 0) {\n span.setAttributes({\n [GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: completionTokens\n });\n }\n if (promptTokens !== void 0 || completionTokens !== void 0 || cachedInputTokens !== void 0 || cachedOutputTokens !== void 0) {\n const totalTokens = (promptTokens ?? 0) + (completionTokens ?? 0) + (cachedInputTokens ?? 0) + (cachedOutputTokens ?? 0);\n span.setAttributes({\n [GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: totalTokens\n });\n }\n}\nfunction endStreamSpan(span, state, recordOutputs) {\n if (!span.isRecording()) {\n return;\n }\n const attrs = {\n [GEN_AI_RESPONSE_STREAMING_ATTRIBUTE]: true\n };\n if (state.responseId) attrs[GEN_AI_RESPONSE_ID_ATTRIBUTE] = state.responseId;\n if (state.responseModel) attrs[GEN_AI_RESPONSE_MODEL_ATTRIBUTE] = state.responseModel;\n if (state.promptTokens !== void 0) attrs[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] = state.promptTokens;\n if (state.completionTokens !== void 0) attrs[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] = state.completionTokens;\n if (state.totalTokens !== void 0) {\n attrs[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE] = state.totalTokens;\n } else if (state.promptTokens !== void 0 || state.completionTokens !== void 0 || state.cacheCreationInputTokens !== void 0 || state.cacheReadInputTokens !== void 0) {\n attrs[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE] = (state.promptTokens ?? 0) + (state.completionTokens ?? 0) + (state.cacheCreationInputTokens ?? 0) + (state.cacheReadInputTokens ?? 0);\n }\n if (state.finishReasons.length) {\n attrs[GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE] = JSON.stringify(state.finishReasons);\n }\n if (recordOutputs && state.responseTexts.length) {\n attrs[GEN_AI_RESPONSE_TEXT_ATTRIBUTE] = state.responseTexts.join(\"\");\n }\n if (recordOutputs && state.toolCalls.length) {\n attrs[GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE] = JSON.stringify(state.toolCalls);\n }\n span.setAttributes(attrs);\n span.end();\n}\nfunction getJsonString(value) {\n if (typeof value === \"string\") {\n return value;\n }\n return JSON.stringify(value);\n}\nfunction getTruncatedJsonString(value) {\n if (typeof value === \"string\") {\n return truncateGenAiStringInput(value);\n }\n if (Array.isArray(value)) {\n const truncatedMessages = truncateGenAiMessages(value);\n return JSON.stringify(truncatedMessages);\n }\n return JSON.stringify(value);\n}\nfunction extractSystemInstructions(messages) {\n if (!Array.isArray(messages)) {\n return { systemInstructions: void 0, filteredMessages: messages };\n }\n const systemMessageIndex = messages.findIndex(\n (msg) => msg && typeof msg === \"object\" && \"role\" in msg && msg.role === \"system\"\n );\n if (systemMessageIndex === -1) {\n return { systemInstructions: void 0, filteredMessages: messages };\n }\n const systemMessage = messages[systemMessageIndex];\n const systemContent = typeof systemMessage.content === \"string\" ? systemMessage.content : systemMessage.content !== void 0 ? JSON.stringify(systemMessage.content) : void 0;\n if (!systemContent) {\n return { systemInstructions: void 0, filteredMessages: messages };\n }\n const systemInstructions = JSON.stringify([{ type: \"text\", content: systemContent }]);\n const filteredMessages = [...messages.slice(0, systemMessageIndex), ...messages.slice(systemMessageIndex + 1)];\n return { systemInstructions, filteredMessages };\n}\nasync function createWithResponseWrapper(originalWithResponse, instrumentedPromise, mechanismType) {\n const safeOriginalWithResponse = originalWithResponse.catch((error) => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: mechanismType\n }\n });\n throw error;\n });\n const instrumentedResult = await instrumentedPromise;\n const originalWrapper = await safeOriginalWithResponse;\n if (originalWrapper && typeof originalWrapper === \"object\" && \"data\" in originalWrapper) {\n return {\n ...originalWrapper,\n data: instrumentedResult\n };\n }\n return instrumentedResult;\n}\nfunction wrapPromiseWithMethods(originalPromiseLike, instrumentedPromise, mechanismType) {\n if (!isThenable(originalPromiseLike)) {\n return instrumentedPromise;\n }\n return new Proxy(originalPromiseLike, {\n get(target, prop) {\n const useInstrumentedPromise = prop in Promise.prototype || prop === Symbol.toStringTag;\n const source = useInstrumentedPromise ? instrumentedPromise : target;\n const value = Reflect.get(source, prop);\n if (prop === \"withResponse\" && typeof value === \"function\") {\n return function wrappedWithResponse() {\n const originalWithResponse = value.call(target);\n return createWithResponseWrapper(originalWithResponse, instrumentedPromise, mechanismType);\n };\n }\n return typeof value === \"function\" ? value.bind(source) : value;\n }\n });\n}\n\nexport { buildMethodPath, endStreamSpan, extractSystemInstructions, getJsonString, getTruncatedJsonString, resolveAIRecordingOptions, setTokenUsageAttributes, shouldEnableTruncation, wrapPromiseWithMethods };\n//# sourceMappingURL=utils.js.map\n", + "const toolCallSpanContextMap = /* @__PURE__ */ new Map();\nconst toolDescriptionMap = /* @__PURE__ */ new Map();\nconst SPAN_TO_OPERATION_NAME = /* @__PURE__ */ new Map([\n [\"ai.generateText\", \"invoke_agent\"],\n [\"ai.streamText\", \"invoke_agent\"],\n [\"ai.generateObject\", \"invoke_agent\"],\n [\"ai.streamObject\", \"invoke_agent\"],\n [\"ai.generateText.doGenerate\", \"generate_content\"],\n [\"ai.streamText.doStream\", \"generate_content\"],\n [\"ai.generateObject.doGenerate\", \"generate_content\"],\n [\"ai.streamObject.doStream\", \"generate_content\"],\n [\"ai.embed.doEmbed\", \"embeddings\"],\n [\"ai.embedMany.doEmbed\", \"embeddings\"],\n [\"ai.rerank.doRerank\", \"rerank\"],\n [\"ai.toolCall\", \"execute_tool\"]\n]);\n\nexport { SPAN_TO_OPERATION_NAME, toolCallSpanContextMap, toolDescriptionMap };\n//# sourceMappingURL=constants.js.map\n", + "const OPERATION_NAME_ATTRIBUTE = \"operation.name\";\nconst AI_OPERATION_ID_ATTRIBUTE = \"ai.operationId\";\nconst AI_PROMPT_ATTRIBUTE = \"ai.prompt\";\nconst AI_SCHEMA_ATTRIBUTE = \"ai.schema\";\nconst AI_RESPONSE_OBJECT_ATTRIBUTE = \"ai.response.object\";\nconst AI_VALUES_ATTRIBUTE = \"ai.values\";\nconst AI_RESPONSE_TEXT_ATTRIBUTE = \"ai.response.text\";\nconst AI_RESPONSE_TOOL_CALLS_ATTRIBUTE = \"ai.response.toolCalls\";\nconst AI_RESPONSE_FINISH_REASON_ATTRIBUTE = \"ai.response.finishReason\";\nconst AI_PROMPT_MESSAGES_ATTRIBUTE = \"ai.prompt.messages\";\nconst AI_PROMPT_TOOLS_ATTRIBUTE = \"ai.prompt.tools\";\nconst AI_MODEL_ID_ATTRIBUTE = \"ai.model.id\";\nconst AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE = \"ai.response.providerMetadata\";\nconst AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE = \"ai.usage.cachedInputTokens\";\nconst AI_USAGE_INPUT_TOKEN_DETAILS_ATTRIBUTE_PREFIX = \"ai.usage.inputTokenDetails.\";\nconst AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE = \"ai.telemetry.functionId\";\nconst AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE = \"ai.usage.completionTokens\";\nconst AI_USAGE_PROMPT_TOKENS_ATTRIBUTE = \"ai.usage.promptTokens\";\nconst AI_USAGE_TOKENS_ATTRIBUTE = \"ai.usage.tokens\";\nconst AI_TOOL_CALL_NAME_ATTRIBUTE = \"ai.toolCall.name\";\nconst AI_TOOL_CALL_ID_ATTRIBUTE = \"ai.toolCall.id\";\nconst AI_TOOL_CALL_ARGS_ATTRIBUTE = \"ai.toolCall.args\";\nconst AI_TOOL_CALL_RESULT_ATTRIBUTE = \"ai.toolCall.result\";\n\nexport { AI_MODEL_ID_ATTRIBUTE, AI_OPERATION_ID_ATTRIBUTE, AI_PROMPT_ATTRIBUTE, AI_PROMPT_MESSAGES_ATTRIBUTE, AI_PROMPT_TOOLS_ATTRIBUTE, AI_RESPONSE_FINISH_REASON_ATTRIBUTE, AI_RESPONSE_OBJECT_ATTRIBUTE, AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE, AI_RESPONSE_TEXT_ATTRIBUTE, AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, AI_SCHEMA_ATTRIBUTE, AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE, AI_TOOL_CALL_ARGS_ATTRIBUTE, AI_TOOL_CALL_ID_ATTRIBUTE, AI_TOOL_CALL_NAME_ATTRIBUTE, AI_TOOL_CALL_RESULT_ATTRIBUTE, AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE, AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, AI_USAGE_INPUT_TOKEN_DETAILS_ATTRIBUTE_PREFIX, AI_USAGE_PROMPT_TOKENS_ATTRIBUTE, AI_USAGE_TOKENS_ATTRIBUTE, AI_VALUES_ATTRIBUTE, OPERATION_NAME_ATTRIBUTE };\n//# sourceMappingURL=vercel-ai-attributes.js.map\n", + "import { GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { extractSystemInstructions, getTruncatedJsonString, getJsonString } from '../ai/utils.js';\nimport { toolCallSpanContextMap } from './constants.js';\nimport { AI_PROMPT_ATTRIBUTE, AI_PROMPT_MESSAGES_ATTRIBUTE } from './vercel-ai-attributes.js';\n\nfunction accumulateTokensForParent(span, tokenAccumulator) {\n const parentSpanId = span.parent_span_id;\n if (!parentSpanId) {\n return;\n }\n const inputTokens = span.data[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE];\n const outputTokens = span.data[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE];\n if (typeof inputTokens === \"number\" || typeof outputTokens === \"number\") {\n const existing = tokenAccumulator.get(parentSpanId) || { inputTokens: 0, outputTokens: 0 };\n if (typeof inputTokens === \"number\") {\n existing.inputTokens += inputTokens;\n }\n if (typeof outputTokens === \"number\") {\n existing.outputTokens += outputTokens;\n }\n tokenAccumulator.set(parentSpanId, existing);\n }\n}\nfunction applyAccumulatedTokens(spanOrTrace, tokenAccumulator) {\n const accumulated = tokenAccumulator.get(spanOrTrace.span_id);\n if (!accumulated || !spanOrTrace.data) {\n return;\n }\n if (accumulated.inputTokens > 0) {\n spanOrTrace.data[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] = accumulated.inputTokens;\n }\n if (accumulated.outputTokens > 0) {\n spanOrTrace.data[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] = accumulated.outputTokens;\n }\n if (accumulated.inputTokens > 0 || accumulated.outputTokens > 0) {\n spanOrTrace.data[\"gen_ai.usage.total_tokens\"] = accumulated.inputTokens + accumulated.outputTokens;\n }\n}\nfunction buildToolDescriptionMap(spans) {\n const toolDescriptions = /* @__PURE__ */ new Map();\n for (const span of spans) {\n const availableTools = span.data[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE];\n if (typeof availableTools !== \"string\") {\n continue;\n }\n try {\n const tools = JSON.parse(availableTools);\n for (const tool of tools) {\n if (tool.name && tool.description && !toolDescriptions.has(tool.name)) {\n toolDescriptions.set(tool.name, tool.description);\n }\n }\n } catch {\n }\n }\n return toolDescriptions;\n}\nfunction applyToolDescriptionsAndTokens(spans, tokenAccumulator) {\n const toolDescriptions = buildToolDescriptionMap(spans);\n for (const span of spans) {\n if (span.op === \"gen_ai.execute_tool\") {\n const toolName = span.data[GEN_AI_TOOL_NAME_ATTRIBUTE];\n if (typeof toolName === \"string\") {\n const description = toolDescriptions.get(toolName);\n if (description) {\n span.data[GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE] = description;\n }\n }\n }\n if (span.op === \"gen_ai.invoke_agent\") {\n applyAccumulatedTokens(span, tokenAccumulator);\n }\n }\n}\nfunction _INTERNAL_getSpanContextForToolCallId(toolCallId) {\n return toolCallSpanContextMap.get(toolCallId);\n}\nfunction _INTERNAL_cleanupToolCallSpanContext(toolCallId) {\n toolCallSpanContextMap.delete(toolCallId);\n}\nfunction convertAvailableToolsToJsonString(tools) {\n const toolObjects = tools.map((tool) => {\n if (typeof tool === \"string\") {\n try {\n return JSON.parse(tool);\n } catch {\n return tool;\n }\n }\n return tool;\n });\n return JSON.stringify(toolObjects);\n}\nfunction filterMessagesArray(input) {\n return input.filter(\n (m) => !!m && typeof m === \"object\" && \"role\" in m && \"content\" in m\n );\n}\nfunction convertUserInputToMessagesFormat(userInput) {\n try {\n const p = JSON.parse(userInput);\n if (!!p && typeof p === \"object\") {\n let { messages } = p;\n const { prompt, system } = p;\n const result = [];\n if (typeof system === \"string\") {\n result.push({ role: \"system\", content: system });\n }\n if (typeof messages === \"string\") {\n try {\n messages = JSON.parse(messages);\n } catch {\n }\n }\n if (Array.isArray(messages)) {\n result.push(...filterMessagesArray(messages));\n return result;\n }\n if (Array.isArray(prompt)) {\n result.push(...filterMessagesArray(prompt));\n return result;\n }\n if (typeof prompt === \"string\") {\n result.push({ role: \"user\", content: prompt });\n }\n if (result.length > 0) {\n return result;\n }\n }\n } catch {\n }\n return [];\n}\nfunction requestMessagesFromPrompt(span, attributes, enableTruncation) {\n if (typeof attributes[AI_PROMPT_ATTRIBUTE] === \"string\" && !attributes[GEN_AI_INPUT_MESSAGES_ATTRIBUTE] && !attributes[AI_PROMPT_MESSAGES_ATTRIBUTE]) {\n const userInput = attributes[AI_PROMPT_ATTRIBUTE];\n const messages = convertUserInputToMessagesFormat(userInput);\n if (messages.length) {\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n const messagesJson = enableTruncation ? getTruncatedJsonString(filteredMessages) : getJsonString(filteredMessages);\n span.setAttributes({\n [AI_PROMPT_ATTRIBUTE]: messagesJson,\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: messagesJson,\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength\n });\n }\n } else if (typeof attributes[AI_PROMPT_MESSAGES_ATTRIBUTE] === \"string\") {\n const originalMessagesJson = attributes[AI_PROMPT_MESSAGES_ATTRIBUTE];\n try {\n const messages = JSON.parse(originalMessagesJson);\n if (Array.isArray(messages)) {\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n const messagesJson = !enableTruncation && filteredMessages === messages ? originalMessagesJson : enableTruncation ? getTruncatedJsonString(filteredMessages) : getJsonString(filteredMessages);\n span.setAttributes({\n [AI_PROMPT_MESSAGES_ATTRIBUTE]: messagesJson,\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: messagesJson,\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength\n });\n }\n } catch {\n }\n }\n}\n\nexport { _INTERNAL_cleanupToolCallSpanContext, _INTERNAL_getSpanContextForToolCallId, accumulateTokensForParent, applyAccumulatedTokens, applyToolDescriptionsAndTokens, convertAvailableToolsToJsonString, convertUserInputToMessagesFormat, requestMessagesFromPrompt };\n//# sourceMappingURL=utils.js.map\n", + "import { getClient } from '../../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP } from '../../semanticAttributes.js';\nimport { shouldEnableTruncation } from '../ai/utils.js';\nimport { spanToJSON } from '../../utils/spanUtils.js';\nimport { GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE, GEN_AI_CONVERSATION_ID_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_TOOL_CALL_ID_ATTRIBUTE, GEN_AI_TOOL_TYPE_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE, GEN_AI_TOOL_OUTPUT_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { toolDescriptionMap, toolCallSpanContextMap, SPAN_TO_OPERATION_NAME } from './constants.js';\nimport { hasSpanStreamingEnabled } from '../spans/hasSpanStreamingEnabled.js';\nimport { accumulateTokensForParent, applyToolDescriptionsAndTokens, applyAccumulatedTokens, requestMessagesFromPrompt, convertAvailableToolsToJsonString } from './utils.js';\nimport { AI_TOOL_CALL_NAME_ATTRIBUTE, AI_TOOL_CALL_ID_ATTRIBUTE, AI_OPERATION_ID_ATTRIBUTE, AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE, AI_MODEL_ID_ATTRIBUTE, AI_PROMPT_TOOLS_ATTRIBUTE, AI_USAGE_INPUT_TOKEN_DETAILS_ATTRIBUTE_PREFIX, OPERATION_NAME_ATTRIBUTE, AI_VALUES_ATTRIBUTE, AI_RESPONSE_TEXT_ATTRIBUTE, AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, AI_RESPONSE_FINISH_REASON_ATTRIBUTE, AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE, AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, AI_USAGE_PROMPT_TOKENS_ATTRIBUTE, AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE, AI_USAGE_TOKENS_ATTRIBUTE, AI_PROMPT_MESSAGES_ATTRIBUTE, AI_RESPONSE_OBJECT_ATTRIBUTE, AI_TOOL_CALL_ARGS_ATTRIBUTE, AI_TOOL_CALL_RESULT_ATTRIBUTE, AI_SCHEMA_ATTRIBUTE } from './vercel-ai-attributes.js';\n\nfunction onVercelAiSpanStart(span) {\n const { data: attributes, description: name } = spanToJSON(span);\n if (!name) {\n return;\n }\n if (attributes[AI_TOOL_CALL_NAME_ATTRIBUTE] && attributes[AI_TOOL_CALL_ID_ATTRIBUTE] && name === \"ai.toolCall\") {\n processToolCallSpan(span, attributes);\n return;\n }\n if (!attributes[AI_OPERATION_ID_ATTRIBUTE] && !name.startsWith(\"ai.\")) {\n return;\n }\n const client = getClient();\n const integration = client?.getIntegrationByName(\"VercelAI\");\n const enableTruncation = shouldEnableTruncation(integration?.options?.enableTruncation);\n processGenerateSpan(span, name, attributes, enableTruncation);\n}\nfunction vercelAiEventProcessor(event) {\n if (event.type === \"transaction\" && event.spans) {\n const tokenAccumulator = /* @__PURE__ */ new Map();\n for (const span of event.spans) {\n processEndedVercelAiSpan(span);\n accumulateTokensForParent(span, tokenAccumulator);\n }\n applyToolDescriptionsAndTokens(event.spans, tokenAccumulator);\n const trace = event.contexts?.trace;\n if (trace?.op === \"gen_ai.invoke_agent\") {\n applyAccumulatedTokens(trace, tokenAccumulator);\n }\n }\n return event;\n}\nfunction normalizeFinishReason(finishReason) {\n if (typeof finishReason !== \"string\") {\n return \"stop\";\n }\n switch (finishReason) {\n case \"tool-calls\":\n return \"tool_call\";\n case \"stop\":\n case \"length\":\n case \"content_filter\":\n case \"error\":\n return finishReason;\n default:\n return finishReason;\n }\n}\nfunction buildOutputMessages(attributes) {\n const responseText = attributes[AI_RESPONSE_TEXT_ATTRIBUTE];\n const responseToolCalls = attributes[AI_RESPONSE_TOOL_CALLS_ATTRIBUTE];\n const finishReason = attributes[AI_RESPONSE_FINISH_REASON_ATTRIBUTE];\n if (responseText == null && responseToolCalls == null) {\n return;\n }\n const parts = [];\n if (typeof responseText === \"string\" && responseText.length > 0) {\n parts.push({\n type: \"text\",\n content: responseText\n });\n }\n if (responseToolCalls != null) {\n try {\n const toolCalls = typeof responseToolCalls === \"string\" ? JSON.parse(responseToolCalls) : responseToolCalls;\n if (Array.isArray(toolCalls)) {\n for (const toolCall of toolCalls) {\n const args = toolCall.input ?? toolCall.args;\n parts.push({\n type: \"tool_call\",\n id: toolCall.toolCallId,\n name: toolCall.toolName,\n // Handle undefined args: JSON.stringify(undefined) returns undefined, not a string,\n // which would cause the property to be omitted from the final JSON output\n arguments: typeof args === \"string\" ? args : JSON.stringify(args ?? {})\n });\n }\n delete attributes[AI_RESPONSE_TOOL_CALLS_ATTRIBUTE];\n }\n } catch {\n }\n }\n if (parts.length > 0) {\n const outputMessage = {\n role: \"assistant\",\n parts,\n finish_reason: normalizeFinishReason(finishReason)\n };\n attributes[GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE] = JSON.stringify([outputMessage]);\n delete attributes[AI_RESPONSE_TEXT_ATTRIBUTE];\n }\n}\nfunction processVercelAiSpanAttributes(attributes) {\n renameAttributeKey(attributes, AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, AI_USAGE_PROMPT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE);\n renameAttributeKey(attributes, \"ai.usage.inputTokens\", GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, \"ai.usage.outputTokens\", GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, AI_USAGE_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, \"ai.response.avgOutputTokensPerSecond\", \"ai.response.avgCompletionTokensPerSecond\");\n const inputTokensAreCacheInclusive = Object.keys(attributes).some(\n (key) => key.startsWith(AI_USAGE_INPUT_TOKEN_DETAILS_ATTRIBUTE_PREFIX)\n );\n if (!inputTokensAreCacheInclusive && typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] === \"number\" && typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE] === \"number\") {\n attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] = attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] + attributes[GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE];\n }\n if (typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] === \"number\") {\n const outputTokens = typeof attributes[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] === \"number\" ? attributes[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] : 0;\n attributes[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE] = outputTokens + attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE];\n }\n if (attributes[AI_PROMPT_TOOLS_ATTRIBUTE] && Array.isArray(attributes[AI_PROMPT_TOOLS_ATTRIBUTE])) {\n attributes[AI_PROMPT_TOOLS_ATTRIBUTE] = convertAvailableToolsToJsonString(\n attributes[AI_PROMPT_TOOLS_ATTRIBUTE]\n );\n }\n if (attributes[OPERATION_NAME_ATTRIBUTE]) {\n const rawOperationName = attributes[AI_OPERATION_ID_ATTRIBUTE] ? attributes[AI_OPERATION_ID_ATTRIBUTE] : attributes[OPERATION_NAME_ATTRIBUTE];\n const operationName = SPAN_TO_OPERATION_NAME.get(rawOperationName) ?? rawOperationName;\n attributes[GEN_AI_OPERATION_NAME_ATTRIBUTE] = operationName;\n delete attributes[OPERATION_NAME_ATTRIBUTE];\n }\n renameAttributeKey(attributes, AI_PROMPT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE);\n buildOutputMessages(attributes);\n renameAttributeKey(attributes, AI_RESPONSE_OBJECT_ATTRIBUTE, \"gen_ai.response.object\");\n renameAttributeKey(attributes, AI_PROMPT_TOOLS_ATTRIBUTE, \"gen_ai.request.available_tools\");\n renameAttributeKey(attributes, AI_TOOL_CALL_ARGS_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE);\n renameAttributeKey(attributes, AI_TOOL_CALL_RESULT_ATTRIBUTE, GEN_AI_TOOL_OUTPUT_ATTRIBUTE);\n renameAttributeKey(attributes, AI_SCHEMA_ATTRIBUTE, \"gen_ai.request.schema\");\n renameAttributeKey(attributes, AI_MODEL_ID_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE);\n if (Array.isArray(attributes[AI_VALUES_ATTRIBUTE])) {\n const parsed = attributes[AI_VALUES_ATTRIBUTE].map((v) => {\n try {\n return JSON.parse(v);\n } catch {\n return v;\n }\n });\n attributes[GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE] = parsed.length === 1 ? parsed[0] : JSON.stringify(parsed);\n }\n addProviderMetadataToAttributes(attributes);\n for (const key of Object.keys(attributes)) {\n if (Array.isArray(attributes[key])) {\n attributes[key] = JSON.stringify(attributes[key]);\n }\n if (key.startsWith(\"ai.\")) {\n renameAttributeKey(attributes, key, `vercel.${key}`);\n }\n }\n}\nfunction processEndedVercelAiSpan(span) {\n const { data: attributes, origin } = span;\n if (origin !== \"auto.vercelai.otel\") {\n return;\n }\n if (span.status && span.status !== \"ok\") {\n span.status = \"internal_error\";\n }\n processVercelAiSpanAttributes(attributes);\n}\nfunction processVercelAiStreamedSpan(span) {\n const attributes = span.attributes;\n if (attributes?.[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] !== \"auto.vercelai.otel\") {\n return;\n }\n processVercelAiSpanAttributes(attributes);\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] === \"gen_ai.execute_tool\" && span.parent_span_id) {\n const descriptions = toolDescriptionMap.get(span.parent_span_id);\n if (descriptions) {\n const toolName = attributes[GEN_AI_TOOL_NAME_ATTRIBUTE];\n if (typeof toolName === \"string\") {\n const desc = descriptions.get(toolName);\n if (desc) {\n attributes[GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE] = desc;\n }\n }\n }\n }\n toolDescriptionMap.delete(span.span_id);\n}\nfunction renameAttributeKey(attributes, oldKey, newKey) {\n if (attributes[oldKey] != null) {\n attributes[newKey] = attributes[oldKey];\n delete attributes[oldKey];\n }\n}\nfunction processToolCallSpan(span, attributes) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, \"auto.vercelai.otel\");\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, \"gen_ai.execute_tool\");\n span.setAttribute(GEN_AI_OPERATION_NAME_ATTRIBUTE, \"execute_tool\");\n renameAttributeKey(attributes, AI_TOOL_CALL_NAME_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE);\n renameAttributeKey(attributes, AI_TOOL_CALL_ID_ATTRIBUTE, GEN_AI_TOOL_CALL_ID_ATTRIBUTE);\n const toolCallId = attributes[GEN_AI_TOOL_CALL_ID_ATTRIBUTE];\n if (typeof toolCallId === \"string\") {\n toolCallSpanContextMap.set(toolCallId, span.spanContext());\n }\n if (!attributes[GEN_AI_TOOL_TYPE_ATTRIBUTE]) {\n span.setAttribute(GEN_AI_TOOL_TYPE_ATTRIBUTE, \"function\");\n }\n const toolName = attributes[GEN_AI_TOOL_NAME_ATTRIBUTE];\n if (toolName) {\n span.updateName(`execute_tool ${toolName}`);\n }\n}\nfunction processGenerateSpan(span, name, attributes, enableTruncation) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, \"auto.vercelai.otel\");\n const nameWthoutAi = name.replace(\"ai.\", \"\");\n span.setAttribute(\"ai.pipeline.name\", nameWthoutAi);\n span.updateName(nameWthoutAi);\n const functionId = attributes[AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE];\n if (functionId && typeof functionId === \"string\") {\n span.setAttribute(\"gen_ai.function_id\", functionId);\n }\n requestMessagesFromPrompt(span, attributes, enableTruncation);\n if (attributes[AI_MODEL_ID_ATTRIBUTE] && !attributes[GEN_AI_RESPONSE_MODEL_ATTRIBUTE]) {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, attributes[AI_MODEL_ID_ATTRIBUTE]);\n }\n span.setAttribute(\"ai.streaming\", name.includes(\"stream\"));\n const operationName = SPAN_TO_OPERATION_NAME.get(name);\n if (operationName) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, `gen_ai.${operationName}`);\n } else if (name.startsWith(\"ai.stream\")) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, \"ai.run\");\n }\n if (operationName === \"invoke_agent\") {\n if (functionId && typeof functionId === \"string\") {\n span.updateName(`invoke_agent ${functionId}`);\n } else {\n span.updateName(\"invoke_agent\");\n }\n return;\n }\n const modelId = attributes[AI_MODEL_ID_ATTRIBUTE];\n if (modelId && operationName) {\n span.updateName(`${operationName} ${modelId}`);\n }\n const client = getClient();\n if (client && hasSpanStreamingEnabled(client) && attributes[AI_PROMPT_TOOLS_ATTRIBUTE] && Array.isArray(attributes[AI_PROMPT_TOOLS_ATTRIBUTE])) {\n const descriptions = /* @__PURE__ */ new Map();\n for (const toolStr of attributes[AI_PROMPT_TOOLS_ATTRIBUTE]) {\n try {\n const parsed = typeof toolStr === \"string\" ? JSON.parse(toolStr) : toolStr;\n if (parsed?.name && parsed?.description) {\n descriptions.set(parsed.name, parsed.description);\n }\n } catch {\n }\n }\n if (descriptions.size > 0) {\n const parentSpanId = spanToJSON(span).parent_span_id;\n if (parentSpanId) {\n toolDescriptionMap.set(parentSpanId, descriptions);\n }\n }\n }\n}\nfunction addVercelAiProcessors(client) {\n client.on(\"spanStart\", onVercelAiSpanStart);\n client.addEventProcessor(Object.assign(vercelAiEventProcessor, { id: \"VercelAiEventProcessor\" }));\n client.on(\"processSpan\", (span) => {\n processVercelAiStreamedSpan(span);\n });\n}\nfunction getProviderMetadataAttributes(providerMetadata) {\n const attributes = {};\n if (!providerMetadata || typeof providerMetadata !== \"object\") {\n return attributes;\n }\n const metadata = providerMetadata;\n const openaiMetadata = metadata.openai ?? metadata.azure;\n if (openaiMetadata) {\n setAttributeIfDefined(attributes, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE, openaiMetadata.cachedPromptTokens);\n setAttributeIfDefined(attributes, \"gen_ai.usage.output_tokens.reasoning\", openaiMetadata.reasoningTokens);\n setAttributeIfDefined(\n attributes,\n \"gen_ai.usage.output_tokens.prediction_accepted\",\n openaiMetadata.acceptedPredictionTokens\n );\n setAttributeIfDefined(\n attributes,\n \"gen_ai.usage.output_tokens.prediction_rejected\",\n openaiMetadata.rejectedPredictionTokens\n );\n setAttributeIfDefined(attributes, GEN_AI_CONVERSATION_ID_ATTRIBUTE, openaiMetadata.responseId);\n }\n if (metadata.anthropic) {\n const cachedInputTokens = metadata.anthropic.usage?.cache_read_input_tokens ?? metadata.anthropic.cacheReadInputTokens;\n setAttributeIfDefined(attributes, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE, cachedInputTokens);\n const cacheWriteInputTokens = metadata.anthropic.usage?.cache_creation_input_tokens ?? metadata.anthropic.cacheCreationInputTokens;\n setAttributeIfDefined(attributes, GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE, cacheWriteInputTokens);\n }\n if (metadata.bedrock?.usage) {\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE,\n metadata.bedrock.usage.cacheReadInputTokens\n );\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE,\n metadata.bedrock.usage.cacheWriteInputTokens\n );\n }\n if (metadata.deepseek) {\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE,\n metadata.deepseek.promptCacheHitTokens\n );\n setAttributeIfDefined(attributes, \"gen_ai.usage.input_tokens.cache_miss\", metadata.deepseek.promptCacheMissTokens);\n }\n return attributes;\n}\nfunction addProviderMetadataToAttributes(attributes) {\n const providerMetadata = attributes[AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE];\n if (!providerMetadata) {\n return;\n }\n try {\n const derived = getProviderMetadataAttributes(JSON.parse(providerMetadata));\n for (const [key, value] of Object.entries(derived)) {\n if (key === GEN_AI_CONVERSATION_ID_ATTRIBUTE && attributes[key]) {\n continue;\n }\n attributes[key] = value;\n }\n } catch {\n }\n}\nfunction setAttributeIfDefined(attributes, key, value) {\n if (value != null) {\n attributes[key] = value;\n }\n}\n\nexport { addVercelAiProcessors, getProviderMetadataAttributes, processVercelAiSpanAttributes };\n//# sourceMappingURL=index.js.map\n", + "const OPENAI_INTEGRATION_NAME = \"OpenAI\";\nconst OPENAI_METHOD_REGISTRY = {\n \"responses.create\": { operation: \"chat\" },\n \"chat.completions.create\": { operation: \"chat\" },\n \"embeddings.create\": { operation: \"embeddings\" },\n // Conversations API - for conversation state management\n // https://platform.openai.com/docs/guides/conversation-state\n \"conversations.create\": { operation: \"chat\" }\n};\nconst RESPONSES_TOOL_CALL_EVENT_TYPES = [\n \"response.output_item.added\",\n \"response.function_call_arguments.delta\",\n \"response.function_call_arguments.done\",\n \"response.output_item.done\"\n];\nconst RESPONSE_EVENT_TYPES = [\n \"response.created\",\n \"response.in_progress\",\n \"response.failed\",\n \"response.completed\",\n \"response.incomplete\",\n \"response.queued\",\n \"response.output_text.delta\",\n ...RESPONSES_TOOL_CALL_EVENT_TYPES\n];\n\nexport { OPENAI_INTEGRATION_NAME, OPENAI_METHOD_REGISTRY, RESPONSES_TOOL_CALL_EVENT_TYPES, RESPONSE_EVENT_TYPES };\n//# sourceMappingURL=constants.js.map\n", + "import { GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE, GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE, GEN_AI_CONVERSATION_ID_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\n\nfunction isResponsesApiStreamEvent(event) {\n return event !== null && typeof event === \"object\" && \"type\" in event && typeof event.type === \"string\" && event.type.startsWith(\"response.\");\n}\nfunction isChatCompletionChunk(event) {\n return event !== null && typeof event === \"object\" && \"object\" in event && event.object === \"chat.completion.chunk\";\n}\nfunction addResponseAttributes(span, result, recordOutputs) {\n if (!result || typeof result !== \"object\") return;\n const response = result;\n const attrs = {};\n if (typeof response.id === \"string\") {\n attrs[GEN_AI_RESPONSE_ID_ATTRIBUTE] = response.id;\n }\n if (typeof response.model === \"string\") {\n attrs[GEN_AI_RESPONSE_MODEL_ATTRIBUTE] = response.model;\n }\n if (response.object === \"conversation\" && typeof response.id === \"string\") {\n attrs[GEN_AI_CONVERSATION_ID_ATTRIBUTE] = response.id;\n }\n if (response.usage && typeof response.usage === \"object\") {\n const usage = response.usage;\n const inputTokens = usage.prompt_tokens ?? usage.input_tokens;\n if (typeof inputTokens === \"number\") {\n attrs[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] = inputTokens;\n }\n const outputTokens = usage.completion_tokens ?? usage.output_tokens;\n if (typeof outputTokens === \"number\") {\n attrs[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] = outputTokens;\n }\n if (typeof usage.total_tokens === \"number\") {\n attrs[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE] = usage.total_tokens;\n }\n }\n if (Array.isArray(response.choices)) {\n const choices = response.choices;\n const finishReasons = choices.map((choice) => choice.finish_reason).filter((reason) => typeof reason === \"string\");\n if (finishReasons.length > 0) {\n attrs[GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE] = JSON.stringify(finishReasons);\n }\n if (recordOutputs) {\n const responseTexts = choices.map((choice) => {\n const message = choice.message;\n return message?.content || \"\";\n });\n attrs[GEN_AI_RESPONSE_TEXT_ATTRIBUTE] = JSON.stringify(responseTexts);\n const toolCalls = choices.map((choice) => {\n const message = choice.message;\n return message?.tool_calls;\n }).filter((calls) => Array.isArray(calls) && calls.length > 0).flat();\n if (toolCalls.length > 0) {\n attrs[GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE] = JSON.stringify(toolCalls);\n }\n }\n }\n if (typeof response.status === \"string\") {\n if (!attrs[GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]) {\n attrs[GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE] = JSON.stringify([response.status]);\n }\n }\n if (recordOutputs) {\n if (typeof response.output_text === \"string\" && !attrs[GEN_AI_RESPONSE_TEXT_ATTRIBUTE]) {\n attrs[GEN_AI_RESPONSE_TEXT_ATTRIBUTE] = response.output_text;\n }\n if (Array.isArray(response.output) && response.output.length > 0 && !attrs[GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]) {\n const functionCalls = response.output.filter(\n (item) => item?.type === \"function_call\"\n );\n if (functionCalls.length > 0) {\n attrs[GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE] = JSON.stringify(functionCalls);\n }\n }\n }\n span.setAttributes(attrs);\n}\nfunction extractConversationId(params) {\n if (\"conversation\" in params && typeof params.conversation === \"string\") {\n return params.conversation;\n }\n if (\"previous_response_id\" in params && typeof params.previous_response_id === \"string\") {\n return params.previous_response_id;\n }\n return void 0;\n}\nfunction extractRequestParameters(params) {\n const attributes = {\n [GEN_AI_REQUEST_MODEL_ATTRIBUTE]: params.model ?? \"unknown\"\n };\n if (\"temperature\" in params) attributes[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = params.temperature;\n if (\"top_p\" in params) attributes[GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = params.top_p;\n if (\"frequency_penalty\" in params) attributes[GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = params.frequency_penalty;\n if (\"presence_penalty\" in params) attributes[GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE] = params.presence_penalty;\n if (\"stream\" in params) attributes[GEN_AI_REQUEST_STREAM_ATTRIBUTE] = params.stream;\n if (\"encoding_format\" in params) attributes[GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE] = params.encoding_format;\n if (\"dimensions\" in params) attributes[GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE] = params.dimensions;\n const conversationId = extractConversationId(params);\n if (conversationId) {\n attributes[GEN_AI_CONVERSATION_ID_ATTRIBUTE] = conversationId;\n }\n return attributes;\n}\n\nexport { addResponseAttributes, extractRequestParameters, isChatCompletionChunk, isResponsesApiStreamEvent };\n//# sourceMappingURL=utils.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { endStreamSpan } from '../ai/utils.js';\nimport { RESPONSE_EVENT_TYPES } from './constants.js';\nimport { isChatCompletionChunk, isResponsesApiStreamEvent } from './utils.js';\n\nfunction processChatCompletionToolCalls(toolCalls, state) {\n for (const toolCall of toolCalls) {\n const index = toolCall.index;\n if (index === void 0 || !toolCall.function) continue;\n if (!(index in state.chatCompletionToolCalls)) {\n state.chatCompletionToolCalls[index] = {\n ...toolCall,\n function: {\n name: toolCall.function.name,\n arguments: toolCall.function.arguments || \"\"\n }\n };\n } else {\n const existingToolCall = state.chatCompletionToolCalls[index];\n if (toolCall.function.arguments && existingToolCall?.function) {\n existingToolCall.function.arguments += toolCall.function.arguments;\n }\n }\n }\n}\nfunction processChatCompletionChunk(chunk, state, recordOutputs) {\n state.responseId = chunk.id ?? state.responseId;\n state.responseModel = chunk.model ?? state.responseModel;\n if (chunk.usage) {\n state.promptTokens = chunk.usage.prompt_tokens;\n state.completionTokens = chunk.usage.completion_tokens;\n state.totalTokens = chunk.usage.total_tokens;\n }\n for (const choice of chunk.choices ?? []) {\n if (recordOutputs) {\n if (choice.delta?.content) {\n state.responseTexts.push(choice.delta.content);\n }\n if (choice.delta?.tool_calls) {\n processChatCompletionToolCalls(choice.delta.tool_calls, state);\n }\n }\n if (choice.finish_reason) {\n state.finishReasons.push(choice.finish_reason);\n }\n }\n}\nfunction processResponsesApiEvent(streamEvent, state, recordOutputs, span) {\n if (!(streamEvent && typeof streamEvent === \"object\")) {\n state.eventTypes.push(\"unknown:non-object\");\n return;\n }\n if (streamEvent instanceof Error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n captureException(streamEvent, {\n mechanism: {\n handled: false,\n type: \"auto.ai.openai.stream-response\"\n }\n });\n return;\n }\n if (!(\"type\" in streamEvent)) return;\n const event = streamEvent;\n if (!RESPONSE_EVENT_TYPES.includes(event.type)) {\n state.eventTypes.push(event.type);\n return;\n }\n if (recordOutputs) {\n if (event.type === \"response.output_item.done\" && \"item\" in event) {\n state.responsesApiToolCalls.push(event.item);\n }\n if (event.type === \"response.output_text.delta\" && \"delta\" in event && event.delta) {\n state.responseTexts.push(event.delta);\n return;\n }\n }\n if (\"response\" in event) {\n const { response } = event;\n state.responseId = response.id ?? state.responseId;\n state.responseModel = response.model ?? state.responseModel;\n if (response.usage) {\n state.promptTokens = response.usage.input_tokens;\n state.completionTokens = response.usage.output_tokens;\n state.totalTokens = response.usage.total_tokens;\n }\n if (response.status) {\n state.finishReasons.push(response.status);\n }\n if (recordOutputs && response.output_text) {\n state.responseTexts.push(response.output_text);\n }\n }\n}\nasync function* instrumentStream(stream, span, recordOutputs) {\n const state = {\n eventTypes: [],\n responseTexts: [],\n finishReasons: [],\n responseId: \"\",\n responseModel: \"\",\n promptTokens: void 0,\n completionTokens: void 0,\n totalTokens: void 0,\n chatCompletionToolCalls: {},\n responsesApiToolCalls: []\n };\n try {\n for await (const event of stream) {\n if (isChatCompletionChunk(event)) {\n processChatCompletionChunk(event, state, recordOutputs);\n } else if (isResponsesApiStreamEvent(event)) {\n processResponsesApiEvent(event, state, recordOutputs, span);\n }\n yield event;\n }\n } finally {\n const allToolCalls = [...Object.values(state.chatCompletionToolCalls), ...state.responsesApiToolCalls];\n endStreamSpan(span, { ...state, toolCalls: allToolCalls }, recordOutputs);\n }\n}\n\nexport { instrumentStream };\n//# sourceMappingURL=streaming.js.map\n", + "import { DEBUG_BUILD } from '../../debug-build.js';\nimport { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { debug } from '../../utils/debug-logger.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpanManual, startSpan } from '../trace.js';\nimport { GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions, shouldEnableTruncation, wrapPromiseWithMethods, buildMethodPath, extractSystemInstructions, getTruncatedJsonString, getJsonString } from '../ai/utils.js';\nimport { OPENAI_METHOD_REGISTRY } from './constants.js';\nimport { instrumentStream } from './streaming.js';\nimport { addResponseAttributes, extractRequestParameters } from './utils.js';\n\nfunction extractAvailableTools(params) {\n const tools = Array.isArray(params.tools) ? params.tools : [];\n const hasWebSearchOptions = params.web_search_options && typeof params.web_search_options === \"object\";\n const webSearchOptions = hasWebSearchOptions ? [{ type: \"web_search_options\", ...params.web_search_options }] : [];\n const availableTools = [...tools, ...webSearchOptions];\n if (availableTools.length === 0) {\n return void 0;\n }\n try {\n return JSON.stringify(availableTools);\n } catch (error) {\n DEBUG_BUILD && debug.error(\"Failed to serialize OpenAI tools:\", error);\n return void 0;\n }\n}\nfunction extractRequestAttributes(args, operationName) {\n const attributes = {\n [GEN_AI_SYSTEM_ATTRIBUTE]: \"openai\",\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: operationName,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.ai.openai\"\n };\n if (args.length > 0 && typeof args[0] === \"object\" && args[0] !== null) {\n const params = args[0];\n const availableTools = extractAvailableTools(params);\n if (availableTools) {\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = availableTools;\n }\n Object.assign(attributes, extractRequestParameters(params));\n } else {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = \"unknown\";\n }\n return attributes;\n}\nfunction addRequestAttributes(span, params, operationName, enableTruncation) {\n if (operationName === \"embeddings\" && \"input\" in params) {\n const input = params.input;\n if (input == null) {\n return;\n }\n if (typeof input === \"string\" && input.length === 0) {\n return;\n }\n if (Array.isArray(input) && input.length === 0) {\n return;\n }\n span.setAttribute(GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, typeof input === \"string\" ? input : JSON.stringify(input));\n return;\n }\n const src = \"input\" in params ? params.input : \"messages\" in params ? params.messages : void 0;\n if (!src) {\n return;\n }\n if (Array.isArray(src) && src.length === 0) {\n return;\n }\n const { systemInstructions, filteredMessages } = extractSystemInstructions(src);\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n span.setAttribute(\n GEN_AI_INPUT_MESSAGES_ATTRIBUTE,\n enableTruncation ? getTruncatedJsonString(filteredMessages) : getJsonString(filteredMessages)\n );\n if (Array.isArray(filteredMessages)) {\n span.setAttribute(GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, filteredMessages.length);\n } else {\n span.setAttribute(GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, 1);\n }\n}\nfunction instrumentMethod(originalMethod, methodPath, instrumentedMethod, context, options) {\n return function instrumentedCall(...args) {\n const operationName = instrumentedMethod.operation || \"unknown\";\n const requestAttributes = extractRequestAttributes(args, operationName);\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] || \"unknown\";\n const params = args[0];\n const isStreamRequested = params && typeof params === \"object\" && params.stream === true;\n const spanConfig = {\n name: `${operationName} ${model}`,\n op: `gen_ai.${operationName}`,\n attributes: requestAttributes\n };\n if (isStreamRequested) {\n let originalResult2;\n const instrumentedPromise2 = startSpanManual(spanConfig, (span) => {\n originalResult2 = originalMethod.apply(context, args);\n if (options.recordInputs && params) {\n addRequestAttributes(span, params, operationName, shouldEnableTruncation(options.enableTruncation));\n }\n return (async () => {\n try {\n const result = await originalResult2;\n return instrumentStream(\n result,\n span,\n options.recordOutputs ?? false\n );\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.openai.stream\",\n data: { function: methodPath }\n }\n });\n span.end();\n throw error;\n }\n })();\n });\n return wrapPromiseWithMethods(originalResult2, instrumentedPromise2, \"auto.ai.openai\");\n }\n let originalResult;\n const instrumentedPromise = startSpan(spanConfig, (span) => {\n originalResult = originalMethod.apply(context, args);\n if (options.recordInputs && params) {\n addRequestAttributes(span, params, operationName, shouldEnableTruncation(options.enableTruncation));\n }\n return originalResult.then(\n (result) => {\n addResponseAttributes(span, result, options.recordOutputs);\n return result;\n },\n (error) => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.openai\",\n data: { function: methodPath }\n }\n });\n throw error;\n }\n );\n });\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, \"auto.ai.openai\");\n };\n}\nfunction createDeepProxy(target, currentPath = \"\", options) {\n return new Proxy(target, {\n get(obj, prop) {\n const value = obj[prop];\n const methodPath = buildMethodPath(currentPath, String(prop));\n const instrumentedMethod = OPENAI_METHOD_REGISTRY[methodPath];\n if (typeof value === \"function\" && instrumentedMethod) {\n return instrumentMethod(\n value,\n methodPath,\n instrumentedMethod,\n obj,\n options\n );\n }\n if (typeof value === \"function\") {\n return value.bind(obj);\n }\n if (value && typeof value === \"object\") {\n return createDeepProxy(value, methodPath, options);\n }\n return value;\n }\n });\n}\nfunction instrumentOpenAiClient(client, options) {\n return createDeepProxy(client, \"\", resolveAIRecordingOptions(options));\n}\n\nexport { instrumentOpenAiClient };\n//# sourceMappingURL=index.js.map\n", + "const ANTHROPIC_AI_INTEGRATION_NAME = \"Anthropic_AI\";\nconst ANTHROPIC_METHOD_REGISTRY = {\n \"messages.create\": { operation: \"chat\" },\n \"messages.stream\": { operation: \"chat\", streaming: true },\n \"messages.countTokens\": { operation: \"chat\" },\n \"models.get\": { operation: \"models\" },\n \"completions.create\": { operation: \"chat\" },\n \"models.retrieve\": { operation: \"models\" },\n \"beta.messages.create\": { operation: \"chat\" }\n};\n\nexport { ANTHROPIC_AI_INTEGRATION_NAME, ANTHROPIC_METHOD_REGISTRY };\n//# sourceMappingURL=constants.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { extractSystemInstructions, getTruncatedJsonString, getJsonString } from '../ai/utils.js';\n\nfunction setMessagesAttribute(span, messages, enableTruncation) {\n if (Array.isArray(messages) && messages.length === 0) {\n return;\n }\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n if (systemInstructions) {\n span.setAttributes({\n [GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE]: systemInstructions\n });\n }\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 1;\n span.setAttributes({\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: enableTruncation ? getTruncatedJsonString(filteredMessages) : getJsonString(filteredMessages),\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength\n });\n}\nconst ANTHROPIC_ERROR_TYPE_TO_SPAN_STATUS = {\n invalid_request_error: \"invalid_argument\",\n authentication_error: \"unauthenticated\",\n permission_error: \"permission_denied\",\n not_found_error: \"not_found\",\n request_too_large: \"failed_precondition\",\n rate_limit_error: \"resource_exhausted\",\n api_error: \"internal_error\",\n overloaded_error: \"unavailable\"\n};\nfunction mapAnthropicErrorToStatusMessage(errorType) {\n if (!errorType) {\n return \"internal_error\";\n }\n return ANTHROPIC_ERROR_TYPE_TO_SPAN_STATUS[errorType] || \"internal_error\";\n}\nfunction handleResponseError(span, response) {\n if (response.error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: mapAnthropicErrorToStatusMessage(response.error.type) });\n captureException(response.error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.anthropic.anthropic_error\"\n }\n });\n }\n}\nfunction messagesFromParams(params) {\n const { system, messages, input } = params;\n const systemMessages = typeof system === \"string\" ? [{ role: \"system\", content: params.system }] : [];\n const inputParamMessages = Array.isArray(input) ? input : input != null ? [input] : void 0;\n const messagesParamMessages = Array.isArray(messages) ? messages : messages != null ? [messages] : [];\n const userMessages = inputParamMessages ?? messagesParamMessages;\n return [...systemMessages, ...userMessages];\n}\n\nexport { handleResponseError, mapAnthropicErrorToStatusMessage, messagesFromParams, setMessagesAttribute };\n//# sourceMappingURL=utils.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { endStreamSpan } from '../ai/utils.js';\nimport { mapAnthropicErrorToStatusMessage } from './utils.js';\n\nfunction isErrorEvent(event, span) {\n if (\"type\" in event && typeof event.type === \"string\") {\n if (event.type === \"error\") {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: mapAnthropicErrorToStatusMessage(event.error?.type) });\n captureException(event.error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.anthropic.anthropic_error\"\n }\n });\n return true;\n }\n }\n return false;\n}\nfunction handleMessageMetadata(event, state) {\n if (event.type === \"message_delta\" && event.usage) {\n if (\"output_tokens\" in event.usage && typeof event.usage.output_tokens === \"number\") {\n state.completionTokens = event.usage.output_tokens;\n }\n }\n if (event.message) {\n const message = event.message;\n if (message.id) state.responseId = message.id;\n if (message.model) state.responseModel = message.model;\n if (message.stop_reason) state.finishReasons.push(message.stop_reason);\n if (message.usage) {\n if (typeof message.usage.input_tokens === \"number\") state.promptTokens = message.usage.input_tokens;\n if (typeof message.usage.cache_creation_input_tokens === \"number\")\n state.cacheCreationInputTokens = message.usage.cache_creation_input_tokens;\n if (typeof message.usage.cache_read_input_tokens === \"number\")\n state.cacheReadInputTokens = message.usage.cache_read_input_tokens;\n }\n }\n}\nfunction handleContentBlockStart(event, state) {\n if (event.type !== \"content_block_start\" || typeof event.index !== \"number\" || !event.content_block) return;\n if (event.content_block.type === \"tool_use\" || event.content_block.type === \"server_tool_use\") {\n state.activeToolBlocks[event.index] = {\n id: event.content_block.id,\n name: event.content_block.name,\n inputJsonParts: []\n };\n }\n}\nfunction handleContentBlockDelta(event, state, recordOutputs) {\n if (event.type !== \"content_block_delta\" || !event.delta) return;\n if (typeof event.index === \"number\" && \"partial_json\" in event.delta && typeof event.delta.partial_json === \"string\") {\n const active = state.activeToolBlocks[event.index];\n if (active) {\n active.inputJsonParts.push(event.delta.partial_json);\n }\n }\n if (recordOutputs && typeof event.delta.text === \"string\") {\n state.responseTexts.push(event.delta.text);\n }\n}\nfunction handleContentBlockStop(event, state) {\n if (event.type !== \"content_block_stop\" || typeof event.index !== \"number\") return;\n const active = state.activeToolBlocks[event.index];\n if (!active) return;\n const raw = active.inputJsonParts.join(\"\");\n let parsedInput;\n try {\n parsedInput = raw ? JSON.parse(raw) : {};\n } catch {\n parsedInput = { __unparsed: raw };\n }\n state.toolCalls.push({\n type: \"tool_use\",\n id: active.id,\n name: active.name,\n input: parsedInput\n });\n delete state.activeToolBlocks[event.index];\n}\nfunction processEvent(event, state, recordOutputs, span) {\n if (!(event && typeof event === \"object\")) {\n return;\n }\n const isError = isErrorEvent(event, span);\n if (isError) return;\n handleMessageMetadata(event, state);\n handleContentBlockStart(event, state);\n handleContentBlockDelta(event, state, recordOutputs);\n handleContentBlockStop(event, state);\n}\nasync function* instrumentAsyncIterableStream(stream, span, recordOutputs) {\n const state = {\n responseTexts: [],\n finishReasons: [],\n responseId: \"\",\n responseModel: \"\",\n promptTokens: void 0,\n completionTokens: void 0,\n cacheCreationInputTokens: void 0,\n cacheReadInputTokens: void 0,\n toolCalls: [],\n activeToolBlocks: {}\n };\n try {\n for await (const event of stream) {\n processEvent(event, state, recordOutputs, span);\n yield event;\n }\n } finally {\n endStreamSpan(span, state, recordOutputs);\n }\n}\nfunction instrumentMessageStream(stream, span, recordOutputs) {\n const state = {\n responseTexts: [],\n finishReasons: [],\n responseId: \"\",\n responseModel: \"\",\n promptTokens: void 0,\n completionTokens: void 0,\n cacheCreationInputTokens: void 0,\n cacheReadInputTokens: void 0,\n toolCalls: [],\n activeToolBlocks: {}\n };\n stream.on(\"streamEvent\", (event) => {\n processEvent(event, state, recordOutputs, span);\n });\n stream.on(\"message\", () => {\n endStreamSpan(span, state, recordOutputs);\n });\n stream.on(\"error\", (error) => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.anthropic.stream_error\"\n }\n });\n if (span.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n span.end();\n }\n });\n return stream;\n}\n\nexport { instrumentAsyncIterableStream, instrumentMessageStream };\n//# sourceMappingURL=streaming.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpan, startSpanManual } from '../trace.js';\nimport { GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_REQUEST_TOP_K_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_PROMPT_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions, shouldEnableTruncation, wrapPromiseWithMethods, buildMethodPath, setTokenUsageAttributes } from '../ai/utils.js';\nimport { ANTHROPIC_METHOD_REGISTRY } from './constants.js';\nimport { instrumentAsyncIterableStream, instrumentMessageStream } from './streaming.js';\nimport { messagesFromParams, setMessagesAttribute, handleResponseError } from './utils.js';\n\nfunction extractRequestAttributes(args, methodPath, operationName) {\n const attributes = {\n [GEN_AI_SYSTEM_ATTRIBUTE]: \"anthropic\",\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: operationName,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.ai.anthropic\"\n };\n if (args.length > 0 && typeof args[0] === \"object\" && args[0] !== null) {\n const params = args[0];\n if (params.tools && Array.isArray(params.tools)) {\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = JSON.stringify(params.tools);\n }\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = params.model ?? \"unknown\";\n if (\"temperature\" in params) attributes[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = params.temperature;\n if (\"top_p\" in params) attributes[GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = params.top_p;\n if (\"stream\" in params) attributes[GEN_AI_REQUEST_STREAM_ATTRIBUTE] = params.stream;\n if (\"top_k\" in params) attributes[GEN_AI_REQUEST_TOP_K_ATTRIBUTE] = params.top_k;\n if (\"frequency_penalty\" in params)\n attributes[GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = params.frequency_penalty;\n if (\"max_tokens\" in params) attributes[GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE] = params.max_tokens;\n } else {\n if (methodPath === \"models.retrieve\" || methodPath === \"models.get\") {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = args[0];\n } else {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = \"unknown\";\n }\n }\n return attributes;\n}\nfunction addPrivateRequestAttributes(span, params, enableTruncation) {\n const messages = messagesFromParams(params);\n setMessagesAttribute(span, messages, enableTruncation);\n if (\"prompt\" in params) {\n span.setAttributes({ [GEN_AI_PROMPT_ATTRIBUTE]: JSON.stringify(params.prompt) });\n }\n}\nfunction addContentAttributes(span, response) {\n if (\"content\" in response) {\n if (Array.isArray(response.content)) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: response.content.map((item) => item.text).filter((text) => !!text).join(\"\")\n });\n const toolCalls = [];\n for (const item of response.content) {\n if (item.type === \"tool_use\" || item.type === \"server_tool_use\") {\n toolCalls.push(item);\n }\n }\n if (toolCalls.length > 0) {\n span.setAttributes({ [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(toolCalls) });\n }\n }\n }\n if (\"completion\" in response) {\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: response.completion });\n }\n if (\"input_tokens\" in response) {\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: JSON.stringify(response.input_tokens) });\n }\n}\nfunction addMetadataAttributes(span, response) {\n if (\"id\" in response && \"model\" in response) {\n span.setAttributes({\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: response.id,\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: response.model\n });\n if (\"usage\" in response && response.usage) {\n setTokenUsageAttributes(\n span,\n response.usage.input_tokens,\n response.usage.output_tokens,\n response.usage.cache_creation_input_tokens,\n response.usage.cache_read_input_tokens\n );\n }\n }\n}\nfunction addResponseAttributes(span, response, recordOutputs) {\n if (!response || typeof response !== \"object\") return;\n if (\"type\" in response && response.type === \"error\") {\n handleResponseError(span, response);\n return;\n }\n if (recordOutputs) {\n addContentAttributes(span, response);\n }\n addMetadataAttributes(span, response);\n}\nfunction handleStreamingError(error, span, methodPath) {\n captureException(error, {\n mechanism: { handled: false, type: \"auto.ai.anthropic\", data: { function: methodPath } }\n });\n if (span.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n span.end();\n }\n throw error;\n}\nfunction handleStreamingRequest(originalMethod, target, context, args, requestAttributes, operationName, methodPath, params, options, isStreamRequested, isStreamingMethod) {\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ?? \"unknown\";\n const spanConfig = {\n name: `${operationName} ${model}`,\n op: `gen_ai.${operationName}`,\n attributes: requestAttributes\n };\n if (isStreamRequested && !isStreamingMethod) {\n let originalResult;\n const instrumentedPromise = startSpanManual(spanConfig, (span) => {\n originalResult = originalMethod.apply(context, args);\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params, shouldEnableTruncation(options.enableTruncation));\n }\n return (async () => {\n try {\n const result = await originalResult;\n return instrumentAsyncIterableStream(\n result,\n span,\n options.recordOutputs ?? false\n );\n } catch (error) {\n return handleStreamingError(error, span, methodPath);\n }\n })();\n });\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, \"auto.ai.anthropic\");\n } else {\n return startSpanManual(spanConfig, (span) => {\n try {\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params, shouldEnableTruncation(options.enableTruncation));\n }\n const messageStream = target.apply(context, args);\n return instrumentMessageStream(messageStream, span, options.recordOutputs ?? false);\n } catch (error) {\n return handleStreamingError(error, span, methodPath);\n }\n });\n }\n}\nfunction instrumentMethod(originalMethod, methodPath, instrumentedMethod, context, options) {\n return new Proxy(originalMethod, {\n apply(target, thisArg, args) {\n const operationName = instrumentedMethod.operation || \"unknown\";\n const requestAttributes = extractRequestAttributes(args, methodPath, operationName);\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ?? \"unknown\";\n const params = typeof args[0] === \"object\" ? args[0] : void 0;\n const isStreamRequested = Boolean(params?.stream);\n const isStreamingMethod = instrumentedMethod.streaming === true;\n if (isStreamRequested || isStreamingMethod) {\n return handleStreamingRequest(\n originalMethod,\n target,\n context,\n args,\n requestAttributes,\n operationName,\n methodPath,\n params,\n options,\n isStreamRequested,\n isStreamingMethod\n );\n }\n let originalResult;\n const instrumentedPromise = startSpan(\n {\n name: `${operationName} ${model}`,\n op: `gen_ai.${operationName}`,\n attributes: requestAttributes\n },\n (span) => {\n originalResult = target.apply(context, args);\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params, shouldEnableTruncation(options.enableTruncation));\n }\n return originalResult.then(\n (result) => {\n addResponseAttributes(span, result, options.recordOutputs);\n return result;\n },\n (error) => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.anthropic\",\n data: {\n function: methodPath\n }\n }\n });\n throw error;\n }\n );\n }\n );\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, \"auto.ai.anthropic\");\n }\n });\n}\nfunction createDeepProxy(target, currentPath = \"\", options) {\n return new Proxy(target, {\n get(obj, prop) {\n const value = obj[prop];\n const methodPath = buildMethodPath(currentPath, String(prop));\n const instrumentedMethod = ANTHROPIC_METHOD_REGISTRY[methodPath];\n if (typeof value === \"function\" && instrumentedMethod) {\n return instrumentMethod(\n value,\n methodPath,\n instrumentedMethod,\n obj,\n options\n );\n }\n if (typeof value === \"function\") {\n return value.bind(obj);\n }\n if (value && typeof value === \"object\") {\n return createDeepProxy(value, methodPath, options);\n }\n return value;\n }\n });\n}\nfunction instrumentAnthropicAiClient(anthropicAiClient, options) {\n return createDeepProxy(anthropicAiClient, \"\", resolveAIRecordingOptions(options));\n}\n\nexport { instrumentAnthropicAiClient };\n//# sourceMappingURL=index.js.map\n", + "const GOOGLE_GENAI_INTEGRATION_NAME = \"Google_GenAI\";\nconst GOOGLE_GENAI_METHOD_REGISTRY = {\n \"models.generateContent\": { operation: \"generate_content\" },\n \"models.generateContentStream\": { operation: \"generate_content\", streaming: true },\n \"models.embedContent\": { operation: \"embeddings\" },\n \"chats.create\": { proxyResultPath: \"chat\" },\n \"chat.sendMessage\": { operation: \"chat\" },\n \"chat.sendMessageStream\": { operation: \"chat\", streaming: true }\n};\nconst GOOGLE_GENAI_SYSTEM_NAME = \"google_genai\";\n\nexport { GOOGLE_GENAI_INTEGRATION_NAME, GOOGLE_GENAI_METHOD_REGISTRY, GOOGLE_GENAI_SYSTEM_NAME };\n//# sourceMappingURL=constants.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { endStreamSpan } from '../ai/utils.js';\n\nfunction isErrorChunk(chunk, span) {\n const feedback = chunk?.promptFeedback;\n if (feedback?.blockReason) {\n const message = feedback.blockReasonMessage ?? feedback.blockReason;\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n captureException(`Content blocked: ${message}`, {\n mechanism: { handled: false, type: \"auto.ai.google_genai\" }\n });\n return true;\n }\n return false;\n}\nfunction handleResponseMetadata(chunk, state) {\n if (typeof chunk.responseId === \"string\") state.responseId = chunk.responseId;\n if (typeof chunk.modelVersion === \"string\") state.responseModel = chunk.modelVersion;\n const usage = chunk.usageMetadata;\n if (usage) {\n if (typeof usage.promptTokenCount === \"number\") state.promptTokens = usage.promptTokenCount;\n if (typeof usage.candidatesTokenCount === \"number\") state.completionTokens = usage.candidatesTokenCount;\n if (typeof usage.totalTokenCount === \"number\") state.totalTokens = usage.totalTokenCount;\n }\n}\nfunction handleCandidateContent(chunk, state, recordOutputs) {\n if (Array.isArray(chunk.functionCalls)) {\n state.toolCalls.push(...chunk.functionCalls);\n }\n for (const candidate of chunk.candidates ?? []) {\n if (candidate?.finishReason && !state.finishReasons.includes(candidate.finishReason)) {\n state.finishReasons.push(candidate.finishReason);\n }\n for (const part of candidate?.content?.parts ?? []) {\n if (recordOutputs && part.text) state.responseTexts.push(part.text);\n if (part.functionCall) {\n state.toolCalls.push({\n type: \"function\",\n id: part.functionCall.id,\n name: part.functionCall.name,\n arguments: part.functionCall.args\n });\n }\n }\n }\n}\nfunction processChunk(chunk, state, recordOutputs, span) {\n if (!chunk || isErrorChunk(chunk, span)) return;\n handleResponseMetadata(chunk, state);\n handleCandidateContent(chunk, state, recordOutputs);\n}\nasync function* instrumentStream(stream, span, recordOutputs) {\n const state = {\n responseTexts: [],\n finishReasons: [],\n toolCalls: []\n };\n try {\n for await (const chunk of stream) {\n processChunk(chunk, state, recordOutputs, span);\n yield chunk;\n }\n } finally {\n endStreamSpan(span, state, recordOutputs);\n }\n}\n\nexport { instrumentStream };\n//# sourceMappingURL=streaming.js.map\n", + "function contentUnionToMessages(content, role = \"user\") {\n if (typeof content === \"string\") {\n return [{ role, content }];\n }\n if (Array.isArray(content)) {\n return content.flatMap((content2) => contentUnionToMessages(content2, role));\n }\n if (typeof content !== \"object\" || !content) return [];\n if (\"role\" in content && typeof content.role === \"string\") {\n return [content];\n }\n if (\"parts\" in content) {\n return [{ ...content, role }];\n }\n return [{ role, content }];\n}\n\nexport { contentUnionToMessages };\n//# sourceMappingURL=utils.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpanManual, startSpan } from '../trace.js';\nimport { handleCallbackErrors } from '../../utils/handleCallbackErrors.js';\nimport { GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_TOP_K_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions, shouldEnableTruncation, buildMethodPath, extractSystemInstructions, getTruncatedJsonString, getJsonString } from '../ai/utils.js';\nimport { GOOGLE_GENAI_METHOD_REGISTRY, GOOGLE_GENAI_SYSTEM_NAME } from './constants.js';\nimport { instrumentStream } from './streaming.js';\nimport { contentUnionToMessages } from './utils.js';\n\nfunction extractModel(params, context) {\n if (\"model\" in params && typeof params.model === \"string\") {\n return params.model;\n }\n if (context && typeof context === \"object\") {\n const contextObj = context;\n if (\"model\" in contextObj && typeof contextObj.model === \"string\") {\n return contextObj.model;\n }\n if (\"modelVersion\" in contextObj && typeof contextObj.modelVersion === \"string\") {\n return contextObj.modelVersion;\n }\n }\n return \"unknown\";\n}\nfunction extractConfigAttributes(config) {\n const attributes = {};\n if (\"temperature\" in config && typeof config.temperature === \"number\") {\n attributes[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = config.temperature;\n }\n if (\"topP\" in config && typeof config.topP === \"number\") {\n attributes[GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = config.topP;\n }\n if (\"topK\" in config && typeof config.topK === \"number\") {\n attributes[GEN_AI_REQUEST_TOP_K_ATTRIBUTE] = config.topK;\n }\n if (\"maxOutputTokens\" in config && typeof config.maxOutputTokens === \"number\") {\n attributes[GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE] = config.maxOutputTokens;\n }\n if (\"frequencyPenalty\" in config && typeof config.frequencyPenalty === \"number\") {\n attributes[GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = config.frequencyPenalty;\n }\n if (\"presencePenalty\" in config && typeof config.presencePenalty === \"number\") {\n attributes[GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE] = config.presencePenalty;\n }\n return attributes;\n}\nfunction extractRequestAttributes(operationName, params, context) {\n const attributes = {\n [GEN_AI_SYSTEM_ATTRIBUTE]: GOOGLE_GENAI_SYSTEM_NAME,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: operationName,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.ai.google_genai\"\n };\n if (params) {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = extractModel(params, context);\n if (\"config\" in params && typeof params.config === \"object\" && params.config) {\n const config = params.config;\n Object.assign(attributes, extractConfigAttributes(config));\n if (\"tools\" in config && Array.isArray(config.tools)) {\n const functionDeclarations = config.tools.flatMap(\n (tool) => tool.functionDeclarations\n );\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = JSON.stringify(functionDeclarations);\n }\n }\n } else {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = extractModel({}, context);\n }\n return attributes;\n}\nfunction addPrivateRequestAttributes(span, params, isEmbeddings, enableTruncation) {\n if (isEmbeddings) {\n const contents = params.contents;\n if (contents != null) {\n span.setAttribute(\n GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE,\n typeof contents === \"string\" ? contents : JSON.stringify(contents)\n );\n }\n return;\n }\n const messages = [];\n if (\"config\" in params && params.config && typeof params.config === \"object\" && \"systemInstruction\" in params.config && params.config.systemInstruction) {\n messages.push(...contentUnionToMessages(params.config.systemInstruction, \"system\"));\n }\n if (\"history\" in params) {\n messages.push(...contentUnionToMessages(params.history, \"user\"));\n }\n if (\"contents\" in params) {\n messages.push(...contentUnionToMessages(params.contents, \"user\"));\n }\n if (\"message\" in params) {\n messages.push(...contentUnionToMessages(params.message, \"user\"));\n }\n if (Array.isArray(messages) && messages.length) {\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n span.setAttributes({\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: enableTruncation ? getTruncatedJsonString(filteredMessages) : getJsonString(filteredMessages)\n });\n }\n}\nfunction addResponseAttributes(span, response, recordOutputs) {\n if (!response || typeof response !== \"object\") return;\n if (response.modelVersion) {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, response.modelVersion);\n }\n if (response.usageMetadata && typeof response.usageMetadata === \"object\") {\n const usage = response.usageMetadata;\n if (typeof usage.promptTokenCount === \"number\") {\n span.setAttributes({\n [GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE]: usage.promptTokenCount\n });\n }\n if (typeof usage.candidatesTokenCount === \"number\") {\n span.setAttributes({\n [GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: usage.candidatesTokenCount\n });\n }\n if (typeof usage.totalTokenCount === \"number\") {\n span.setAttributes({\n [GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: usage.totalTokenCount\n });\n }\n }\n if (recordOutputs && Array.isArray(response.candidates) && response.candidates.length > 0) {\n const responseTexts = response.candidates.map((candidate) => {\n if (candidate.content?.parts && Array.isArray(candidate.content.parts)) {\n return candidate.content.parts.map((part) => typeof part.text === \"string\" ? part.text : \"\").filter((text) => text.length > 0).join(\"\");\n }\n return \"\";\n }).filter((text) => text.length > 0);\n if (responseTexts.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: responseTexts.join(\"\")\n });\n }\n }\n if (recordOutputs && response.functionCalls) {\n const functionCalls = response.functionCalls;\n if (Array.isArray(functionCalls) && functionCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(functionCalls)\n });\n }\n }\n}\nfunction instrumentMethod(originalMethod, methodPath, instrumentedMethod, context, options) {\n const isEmbeddings = instrumentedMethod.operation === \"embeddings\";\n return new Proxy(originalMethod, {\n apply(target, _, args) {\n const operationName = instrumentedMethod.operation || \"unknown\";\n const params = args[0];\n const requestAttributes = extractRequestAttributes(operationName, params, context);\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ?? \"unknown\";\n if (instrumentedMethod.streaming) {\n return startSpanManual(\n {\n name: `${operationName} ${model}`,\n op: `gen_ai.${operationName}`,\n attributes: requestAttributes\n },\n async (span) => {\n try {\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(\n span,\n params,\n isEmbeddings,\n shouldEnableTruncation(options.enableTruncation)\n );\n }\n const stream = await target.apply(context, args);\n return instrumentStream(stream, span, Boolean(options.recordOutputs));\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.google_genai\",\n data: { function: methodPath }\n }\n });\n span.end();\n throw error;\n }\n }\n );\n }\n return startSpan(\n {\n name: `${operationName} ${model}`,\n op: `gen_ai.${operationName}`,\n attributes: requestAttributes\n },\n (span) => {\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params, isEmbeddings, shouldEnableTruncation(options.enableTruncation));\n }\n return handleCallbackErrors(\n () => target.apply(context, args),\n (error) => {\n captureException(error, {\n mechanism: { handled: false, type: \"auto.ai.google_genai\", data: { function: methodPath } }\n });\n },\n () => {\n },\n (result) => {\n if (!isEmbeddings) {\n addResponseAttributes(span, result, options.recordOutputs);\n }\n }\n );\n }\n );\n }\n });\n}\nfunction createDeepProxy(target, currentPath = \"\", options) {\n return new Proxy(target, {\n get: (t, prop, receiver) => {\n const value = Reflect.get(t, prop, receiver);\n const methodPath = buildMethodPath(currentPath, String(prop));\n const instrumentedMethod = GOOGLE_GENAI_METHOD_REGISTRY[methodPath];\n if (typeof value === \"function\" && instrumentedMethod) {\n const wrappedMethod = instrumentedMethod.operation ? instrumentMethod(value, methodPath, instrumentedMethod, t, options) : value.bind(t);\n if (!instrumentedMethod.proxyResultPath) {\n return wrappedMethod;\n }\n return function(...args) {\n const result = wrappedMethod(...args);\n if (result && typeof result === \"object\") {\n return createDeepProxy(result, instrumentedMethod.proxyResultPath, options);\n }\n return result;\n };\n }\n if (typeof value === \"function\") {\n return value.bind(t);\n }\n if (value && typeof value === \"object\") {\n return createDeepProxy(value, methodPath, options);\n }\n return value;\n }\n });\n}\nfunction instrumentGoogleGenAIClient(client, options) {\n return createDeepProxy(client, \"\", resolveAIRecordingOptions(options));\n}\n\nexport { extractModel, instrumentGoogleGenAIClient };\n//# sourceMappingURL=index.js.map\n", + "const LANGCHAIN_INTEGRATION_NAME = \"LangChain\";\nconst LANGCHAIN_ORIGIN = \"auto.ai.langchain\";\nconst ROLE_MAP = {\n human: \"user\",\n ai: \"assistant\",\n assistant: \"assistant\",\n system: \"system\",\n function: \"function\",\n tool: \"tool\"\n};\n\nexport { LANGCHAIN_INTEGRATION_NAME, LANGCHAIN_ORIGIN, ROLE_MAP };\n//# sourceMappingURL=constants.js.map\n", + "import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, GEN_AI_AGENT_NAME_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { isContentMedia, stripInlineMediaFromSingleMessage } from '../ai/mediaStripping.js';\nimport { extractSystemInstructions, getTruncatedJsonString, getJsonString } from '../ai/utils.js';\nimport { LANGCHAIN_ORIGIN, ROLE_MAP } from './constants.js';\n\nconst setIfDefined = (target, key, value) => {\n if (value != null) target[key] = value;\n};\nconst setNumberIfDefined = (target, key, value) => {\n const n = Number(value);\n if (!Number.isNaN(n)) target[key] = n;\n};\nfunction asString(v) {\n if (typeof v === \"string\") return v;\n try {\n return JSON.stringify(v);\n } catch {\n return String(v);\n }\n}\nfunction normalizeContent(v) {\n if (Array.isArray(v)) {\n try {\n const stripped = v.map(\n (part) => part && typeof part === \"object\" && isContentMedia(part) ? stripInlineMediaFromSingleMessage(part) : part\n );\n return JSON.stringify(stripped);\n } catch {\n return String(v);\n }\n }\n return asString(v);\n}\nfunction normalizeMessageRole(role) {\n const normalized = role.toLowerCase();\n return ROLE_MAP[normalized] ?? normalized;\n}\nfunction normalizeRoleNameFromCtor(name) {\n if (name.includes(\"System\")) return \"system\";\n if (name.includes(\"Human\")) return \"user\";\n if (name.includes(\"AI\") || name.includes(\"Assistant\")) return \"assistant\";\n if (name.includes(\"Function\")) return \"function\";\n if (name.includes(\"Tool\")) return \"tool\";\n return \"user\";\n}\nfunction getInvocationParams(tags) {\n if (!tags || Array.isArray(tags)) return void 0;\n return tags.invocation_params;\n}\nfunction normalizeLangChainMessages(messages) {\n return messages.map((message) => {\n const maybeGetType = message._getType;\n if (typeof maybeGetType === \"function\") {\n const messageType = maybeGetType.call(message);\n return {\n role: normalizeMessageRole(messageType),\n content: normalizeContent(message.content)\n };\n }\n if (message.lc === 1 && message.kwargs) {\n const id = message.id;\n const messageType = Array.isArray(id) && id.length > 0 ? id[id.length - 1] : \"\";\n const role = typeof messageType === \"string\" ? normalizeRoleNameFromCtor(messageType) : \"user\";\n return {\n role: normalizeMessageRole(role),\n content: normalizeContent(message.kwargs?.content)\n };\n }\n if (message.type) {\n const role = String(message.type).toLowerCase();\n return {\n role: normalizeMessageRole(role),\n content: normalizeContent(message.content)\n };\n }\n if (message.role) {\n return {\n role: normalizeMessageRole(String(message.role)),\n content: normalizeContent(message.content)\n };\n }\n const ctor = message.constructor?.name;\n if (ctor && ctor !== \"Object\") {\n return {\n role: normalizeMessageRole(normalizeRoleNameFromCtor(ctor)),\n content: normalizeContent(message.content)\n };\n }\n return {\n role: \"user\",\n content: normalizeContent(message.content)\n };\n });\n}\nfunction extractCommonRequestAttributes(serialized, invocationParams, langSmithMetadata) {\n const attrs = {};\n const kwargs = \"kwargs\" in serialized ? serialized.kwargs : void 0;\n const temperature = invocationParams?.temperature ?? langSmithMetadata?.ls_temperature ?? kwargs?.temperature;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, temperature);\n const maxTokens = invocationParams?.max_tokens ?? langSmithMetadata?.ls_max_tokens ?? kwargs?.max_tokens;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, maxTokens);\n const topP = invocationParams?.top_p ?? kwargs?.top_p;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, topP);\n const frequencyPenalty = invocationParams?.frequency_penalty;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, frequencyPenalty);\n const presencePenalty = invocationParams?.presence_penalty;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, presencePenalty);\n if (invocationParams && \"stream\" in invocationParams) {\n setIfDefined(attrs, GEN_AI_REQUEST_STREAM_ATTRIBUTE, Boolean(invocationParams.stream));\n }\n return attrs;\n}\nfunction baseRequestAttributes(system, modelName, serialized, invocationParams, langSmithMetadata) {\n return {\n [GEN_AI_SYSTEM_ATTRIBUTE]: asString(system ?? \"langchain\"),\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: \"chat\",\n [GEN_AI_REQUEST_MODEL_ATTRIBUTE]: asString(modelName),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGCHAIN_ORIGIN,\n ...extractCommonRequestAttributes(serialized, invocationParams, langSmithMetadata)\n };\n}\nfunction extractLLMRequestAttributes(llm, prompts, recordInputs, enableTruncation, invocationParams, langSmithMetadata) {\n const system = langSmithMetadata?.ls_provider;\n const modelName = invocationParams?.model ?? langSmithMetadata?.ls_model_name ?? \"unknown\";\n const attrs = baseRequestAttributes(system, modelName, llm, invocationParams, langSmithMetadata);\n if (recordInputs && Array.isArray(prompts) && prompts.length > 0) {\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, prompts.length);\n const messages = prompts.map((p) => ({ role: \"user\", content: p }));\n setIfDefined(\n attrs,\n GEN_AI_INPUT_MESSAGES_ATTRIBUTE,\n enableTruncation ? getTruncatedJsonString(messages) : getJsonString(messages)\n );\n }\n return attrs;\n}\nfunction extractChatModelRequestAttributes(llm, langChainMessages, recordInputs, enableTruncation, invocationParams, langSmithMetadata) {\n const system = langSmithMetadata?.ls_provider ?? llm.id?.[2];\n const modelName = invocationParams?.model ?? langSmithMetadata?.ls_model_name ?? \"unknown\";\n const attrs = baseRequestAttributes(system, modelName, llm, invocationParams, langSmithMetadata);\n if (recordInputs && Array.isArray(langChainMessages) && langChainMessages.length > 0) {\n const normalized = normalizeLangChainMessages(langChainMessages.flat());\n const { systemInstructions, filteredMessages } = extractSystemInstructions(normalized);\n if (systemInstructions) {\n setIfDefined(attrs, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, filteredLength);\n setIfDefined(\n attrs,\n GEN_AI_INPUT_MESSAGES_ATTRIBUTE,\n enableTruncation ? getTruncatedJsonString(filteredMessages) : getJsonString(filteredMessages)\n );\n }\n return attrs;\n}\nfunction addToolCallsAttributes(generations, attrs) {\n const toolCalls = [];\n const flatGenerations = generations.flat();\n for (const gen of flatGenerations) {\n const msg = gen.message;\n const msgToolCalls = msg?.tool_calls;\n if (Array.isArray(msgToolCalls) && msgToolCalls.length > 0) {\n toolCalls.push(...msgToolCalls);\n } else {\n const content = gen.message?.content;\n if (Array.isArray(content)) {\n for (const item of content) {\n const t = item;\n if (t.type === \"tool_use\") toolCalls.push(t);\n }\n }\n }\n }\n if (toolCalls.length > 0) {\n setIfDefined(attrs, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, asString(toolCalls));\n }\n}\nfunction addTokenUsageAttributes(llmOutput, attrs) {\n if (!llmOutput) return;\n const tokenUsage = llmOutput.tokenUsage;\n const anthropicUsage = llmOutput.usage;\n if (tokenUsage) {\n setNumberIfDefined(attrs, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, tokenUsage.promptTokens);\n setNumberIfDefined(attrs, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, tokenUsage.completionTokens);\n setNumberIfDefined(attrs, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, tokenUsage.totalTokens);\n } else if (anthropicUsage) {\n setNumberIfDefined(attrs, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, anthropicUsage.input_tokens);\n setNumberIfDefined(attrs, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, anthropicUsage.output_tokens);\n const input = Number(anthropicUsage.input_tokens);\n const output = Number(anthropicUsage.output_tokens);\n const total = (Number.isNaN(input) ? 0 : input) + (Number.isNaN(output) ? 0 : output);\n if (total > 0) setNumberIfDefined(attrs, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, total);\n if (anthropicUsage.cache_creation_input_tokens !== void 0)\n setNumberIfDefined(\n attrs,\n GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE,\n anthropicUsage.cache_creation_input_tokens\n );\n if (anthropicUsage.cache_read_input_tokens !== void 0)\n setNumberIfDefined(attrs, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE, anthropicUsage.cache_read_input_tokens);\n }\n}\nfunction extractLlmResponseAttributes(llmResult, recordOutputs) {\n if (!llmResult) return;\n const attrs = {};\n if (Array.isArray(llmResult.generations)) {\n const finishReasons = llmResult.generations.flat().map((g) => {\n if (g.generationInfo?.finish_reason) {\n return g.generationInfo.finish_reason;\n }\n if (g.generation_info?.finish_reason) {\n return g.generation_info.finish_reason;\n }\n return null;\n }).filter((r) => typeof r === \"string\");\n if (finishReasons.length > 0) {\n setIfDefined(attrs, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, asString(finishReasons));\n }\n addToolCallsAttributes(llmResult.generations, attrs);\n if (recordOutputs) {\n const texts = llmResult.generations.flat().map((gen) => gen.text ?? gen.message?.content).filter((t) => typeof t === \"string\");\n if (texts.length > 0) {\n setIfDefined(attrs, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, asString(texts));\n }\n }\n }\n addTokenUsageAttributes(llmResult.llmOutput, attrs);\n const llmOutput = llmResult.llmOutput;\n const firstGeneration = llmResult.generations?.[0]?.[0];\n const v1Message = firstGeneration?.message;\n const modelName = llmOutput?.model_name ?? llmOutput?.model ?? v1Message?.response_metadata?.model_name;\n if (modelName) setIfDefined(attrs, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, modelName);\n const responseId = llmOutput?.id ?? v1Message?.id;\n if (responseId) {\n setIfDefined(attrs, GEN_AI_RESPONSE_ID_ATTRIBUTE, responseId);\n }\n const stopReason = llmOutput?.stop_reason ?? v1Message?.response_metadata?.finish_reason;\n if (stopReason) {\n setIfDefined(attrs, GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE, asString(stopReason));\n }\n return attrs;\n}\nfunction getAgentNameFromMetadata(metadata) {\n const attrs = {};\n const agentName = metadata?.lc_agent_name;\n if (typeof agentName === \"string\") {\n attrs[GEN_AI_AGENT_NAME_ATTRIBUTE] = agentName;\n }\n return attrs;\n}\nfunction extractToolDefinitions(extraParams) {\n const tools = extraParams?.invocation_params?.tools ?? extraParams?.options?.tools;\n if (!Array.isArray(tools) || tools.length === 0) return void 0;\n const toolDefs = tools.map((tool) => {\n const fn = tool.function;\n return {\n type: \"function\",\n name: tool.name ?? fn?.name ?? \"\",\n description: tool.description ?? fn?.description\n };\n });\n return JSON.stringify(toolDefs);\n}\nfunction isCallbackManager(value) {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n const candidate = value;\n return typeof candidate.addHandler === \"function\" && typeof candidate.copy === \"function\";\n}\nfunction isSentryHandler(handler) {\n return typeof handler === \"object\" && handler?.name === \"SentryCallbackHandler\";\n}\nfunction containsSentryHandler(handlers) {\n return handlers.some(isSentryHandler);\n}\nfunction _INTERNAL_mergeLangChainCallbackHandler(existing, sentryHandler) {\n if (!existing) {\n return [sentryHandler];\n }\n if (isCallbackManager(existing)) {\n if (containsSentryHandler(existing.handlers ?? [])) {\n return existing;\n }\n const copied = existing.copy();\n copied.addHandler(sentryHandler, true);\n return copied;\n }\n const handlers = Array.isArray(existing) ? existing : [existing];\n if (containsSentryHandler(handlers)) {\n return existing;\n }\n return [...handlers, sentryHandler];\n}\n\nexport { _INTERNAL_mergeLangChainCallbackHandler, extractChatModelRequestAttributes, extractLLMRequestAttributes, extractLlmResponseAttributes, extractToolDefinitions, getAgentNameFromMetadata, getInvocationParams, normalizeLangChainMessages };\n//# sourceMappingURL=utils.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpanManual } from '../trace.js';\nimport { GEN_AI_TOOL_OUTPUT_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions, shouldEnableTruncation } from '../ai/utils.js';\nimport { LANGCHAIN_ORIGIN } from './constants.js';\nimport { getAgentNameFromMetadata, extractLlmResponseAttributes, getInvocationParams, extractChatModelRequestAttributes, extractToolDefinitions, extractLLMRequestAttributes } from './utils.js';\n\nfunction createLangChainCallbackHandler(options = {}) {\n const { recordInputs, recordOutputs } = resolveAIRecordingOptions(options);\n const enableTruncation = shouldEnableTruncation(options.enableTruncation);\n const spanMap = /* @__PURE__ */ new Map();\n const exitSpan = (runId) => {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.end();\n spanMap.delete(runId);\n }\n };\n const handler = {\n // Required LangChain BaseCallbackHandler properties\n lc_serializable: false,\n lc_namespace: [\"langchain_core\", \"callbacks\", \"sentry\"],\n lc_secrets: void 0,\n lc_attributes: void 0,\n lc_aliases: void 0,\n lc_serializable_keys: void 0,\n lc_id: [\"langchain_core\", \"callbacks\", \"sentry\"],\n lc_kwargs: {},\n name: \"SentryCallbackHandler\",\n // BaseCallbackHandlerInput boolean flags\n ignoreLLM: false,\n ignoreChain: false,\n ignoreAgent: false,\n ignoreRetriever: false,\n ignoreCustomEvent: false,\n raiseError: false,\n awaitHandlers: true,\n handleLLMStart(llm, prompts, runId, _parentRunId, _extraParams, tags, metadata, _runName) {\n const invocationParams = getInvocationParams(tags);\n const attributes = extractLLMRequestAttributes(\n llm,\n prompts,\n recordInputs,\n enableTruncation,\n invocationParams,\n metadata\n );\n const modelName = attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE];\n const operationName = attributes[GEN_AI_OPERATION_NAME_ATTRIBUTE];\n startSpanManual(\n {\n name: `${operationName} ${modelName}`,\n op: \"gen_ai.chat\",\n attributes: {\n ...getAgentNameFromMetadata(metadata),\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"gen_ai.chat\"\n }\n },\n (span) => {\n spanMap.set(runId, span);\n return span;\n }\n );\n },\n // Chat Model Start Handler\n handleChatModelStart(llm, messages, runId, _parentRunId, extraParams, tags, metadata, _runName) {\n const invocationParams = getInvocationParams(tags);\n const attributes = extractChatModelRequestAttributes(\n llm,\n messages,\n recordInputs,\n enableTruncation,\n invocationParams,\n metadata\n );\n const toolDefsJson = extractToolDefinitions(extraParams);\n if (toolDefsJson) {\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = toolDefsJson;\n }\n const modelName = attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE];\n const operationName = attributes[GEN_AI_OPERATION_NAME_ATTRIBUTE];\n startSpanManual(\n {\n name: `${operationName} ${modelName}`,\n op: \"gen_ai.chat\",\n attributes: {\n ...getAgentNameFromMetadata(metadata),\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"gen_ai.chat\"\n }\n },\n (span) => {\n spanMap.set(runId, span);\n return span;\n }\n );\n },\n // LLM End Handler - note: handleLLMEnd with capital LLM (used by both LLMs and chat models!)\n handleLLMEnd(output, runId, _parentRunId, _tags, _extraParams) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n const attributes = extractLlmResponseAttributes(output, recordOutputs);\n if (attributes) {\n span.setAttributes(attributes);\n }\n exitSpan(runId);\n }\n },\n // LLM Error Handler - note: handleLLMError with capital LLM\n handleLLMError(error, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n exitSpan(runId);\n }\n captureException(error, {\n mechanism: {\n handled: false,\n type: `${LANGCHAIN_ORIGIN}.llm_error_handler`\n }\n });\n },\n // Chain Start Handler\n handleChainStart(chain, inputs, runId, _parentRunId, _tags, metadata, _runType, runName) {\n if (metadata?.__sentry_langgraph__) {\n return;\n }\n const chainName = runName || chain.name || \"unknown_chain\";\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.ai.langchain\",\n \"langchain.chain.name\": chainName\n };\n if (recordInputs) {\n attributes[\"langchain.chain.inputs\"] = JSON.stringify(inputs);\n }\n startSpanManual(\n {\n name: `chain ${chainName}`,\n op: \"gen_ai.invoke_agent\",\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"gen_ai.invoke_agent\"\n }\n },\n (span) => {\n spanMap.set(runId, span);\n return span;\n }\n );\n },\n // Chain End Handler\n handleChainEnd(outputs, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n if (recordOutputs) {\n span.setAttributes({\n \"langchain.chain.outputs\": JSON.stringify(outputs)\n });\n }\n exitSpan(runId);\n }\n },\n // Chain Error Handler\n handleChainError(error, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n exitSpan(runId);\n }\n captureException(error, {\n mechanism: {\n handled: false,\n type: `${LANGCHAIN_ORIGIN}.chain_error_handler`\n }\n });\n },\n // Tool Start Handler\n handleToolStart(tool, input, runId, _parentRunId, _tags, metadata, runName) {\n if (metadata?.__sentry_langgraph__) {\n return;\n }\n const toolName = runName || tool.name || \"unknown_tool\";\n const attributes = {\n ...getAgentNameFromMetadata(metadata),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGCHAIN_ORIGIN,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: \"execute_tool\",\n [GEN_AI_TOOL_NAME_ATTRIBUTE]: toolName\n };\n if (recordInputs) {\n attributes[GEN_AI_TOOL_INPUT_ATTRIBUTE] = input;\n }\n startSpanManual(\n {\n name: `execute_tool ${toolName}`,\n op: \"gen_ai.execute_tool\",\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"gen_ai.execute_tool\"\n }\n },\n (span) => {\n spanMap.set(runId, span);\n return span;\n }\n );\n },\n // Tool End Handler\n handleToolEnd(output, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n if (recordOutputs) {\n const outputObj = output;\n const content = outputObj && typeof outputObj === \"object\" && \"content\" in outputObj ? outputObj.content : output;\n span.setAttributes({\n [GEN_AI_TOOL_OUTPUT_ATTRIBUTE]: typeof content === \"string\" ? content : JSON.stringify(content)\n });\n }\n exitSpan(runId);\n }\n },\n // Tool Error Handler\n handleToolError(error, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n exitSpan(runId);\n }\n captureException(error, {\n mechanism: {\n handled: false,\n type: `${LANGCHAIN_ORIGIN}.tool_error_handler`\n }\n });\n },\n // LangChain BaseCallbackHandler required methods\n copy() {\n return handler;\n },\n toJSON() {\n return {\n lc: 1,\n type: \"not_implemented\",\n id: handler.lc_id\n };\n },\n toJSONNotImplemented() {\n return {\n lc: 1,\n type: \"not_implemented\",\n id: handler.lc_id\n };\n }\n };\n return handler;\n}\n\nexport { createLangChainCallbackHandler };\n//# sourceMappingURL=index.js.map\n", + "const LANGGRAPH_INTEGRATION_NAME = \"LangGraph\";\nconst LANGGRAPH_ORIGIN = \"auto.ai.langgraph\";\n\nexport { LANGGRAPH_INTEGRATION_NAME, LANGGRAPH_ORIGIN };\n//# sourceMappingURL=constants.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpan } from '../trace.js';\nimport { GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE, GEN_AI_TOOL_OUTPUT_ATTRIBUTE, GEN_AI_TOOL_TYPE_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_AGENT_NAME_ATTRIBUTE, GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE, GEN_AI_TOOL_CALL_ID_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { normalizeLangChainMessages } from '../langchain/utils.js';\nimport { LANGGRAPH_ORIGIN } from './constants.js';\n\nfunction extractLLMFromParams(args) {\n const arg = args[0];\n if (typeof arg !== \"object\" || !arg || !(\"llm\" in arg) || !arg.llm || typeof arg.llm !== \"object\") {\n return null;\n }\n const llm = arg.llm;\n if (typeof llm.modelName !== \"string\" && typeof llm.model !== \"string\") {\n return null;\n }\n return llm;\n}\nfunction extractAgentNameFromParams(args) {\n const arg = args[0];\n if (typeof arg === \"object\" && !!arg && \"name\" in arg && typeof arg.name === \"string\") {\n return arg.name;\n }\n return null;\n}\nfunction wrapToolsWithSpans(tools, options, agentName) {\n const SENTRY_WRAPPED = \"__sentry_tool_wrapped__\";\n for (const tool of tools) {\n if (!tool || typeof tool !== \"object\") {\n continue;\n }\n const t = tool;\n const originalInvoke = t.invoke;\n if (typeof originalInvoke !== \"function\" || Object.prototype.hasOwnProperty.call(t, SENTRY_WRAPPED)) {\n continue;\n }\n const toolName = typeof t.name === \"string\" ? t.name : \"unknown_tool\";\n const toolDescription = typeof t.description === \"string\" ? t.description : void 0;\n const wrappedInvoke = new Proxy(originalInvoke, {\n apply(target, thisArg, args) {\n const spanAttributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGGRAPH_ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: \"execute_tool\",\n [GEN_AI_TOOL_NAME_ATTRIBUTE]: toolName,\n [GEN_AI_TOOL_TYPE_ATTRIBUTE]: \"function\"\n };\n const callConfig = args[1];\n const callAgentName = callConfig?.metadata?.lc_agent_name ?? agentName;\n if (typeof callAgentName === \"string\") {\n spanAttributes[GEN_AI_AGENT_NAME_ATTRIBUTE] = callAgentName;\n }\n if (toolDescription) {\n spanAttributes[GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE] = toolDescription;\n }\n const input = args[0];\n if (typeof input === \"object\" && !!input) {\n if (\"id\" in input && typeof input.id === \"string\") {\n spanAttributes[GEN_AI_TOOL_CALL_ID_ATTRIBUTE] = input.id;\n }\n if (options.recordInputs) {\n const toolArgs = \"args\" in input && typeof input.args === \"object\" ? input.args : input;\n try {\n spanAttributes[GEN_AI_TOOL_INPUT_ATTRIBUTE] = JSON.stringify(toolArgs);\n } catch {\n }\n }\n }\n return startSpan(\n {\n op: GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE,\n name: `execute_tool ${toolName}`,\n attributes: spanAttributes\n },\n async (span) => {\n try {\n const result = await Reflect.apply(target, thisArg, args);\n if (options.recordOutputs) {\n try {\n const resultObj = result;\n const content = resultObj && typeof resultObj === \"object\" && \"content\" in resultObj ? resultObj.content : result;\n span.setAttribute(\n GEN_AI_TOOL_OUTPUT_ATTRIBUTE,\n typeof content === \"string\" ? content : JSON.stringify(content)\n );\n } catch {\n }\n }\n return result;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.langgraph.error\"\n }\n });\n throw error;\n }\n }\n );\n }\n });\n t.invoke = wrappedInvoke;\n Object.defineProperty(t, SENTRY_WRAPPED, { value: true, enumerable: false });\n }\n return tools;\n}\nfunction extractToolCalls(messages) {\n if (!messages || messages.length === 0) {\n return null;\n }\n const toolCalls = [];\n for (const message of messages) {\n if (message && typeof message === \"object\") {\n const msgToolCalls = message.tool_calls;\n if (msgToolCalls && Array.isArray(msgToolCalls)) {\n toolCalls.push(...msgToolCalls);\n }\n }\n }\n return toolCalls.length > 0 ? toolCalls : null;\n}\nfunction extractTokenUsageFromMessage(message) {\n const msg = message;\n let inputTokens = 0;\n let outputTokens = 0;\n let totalTokens = 0;\n if (msg.usage_metadata && typeof msg.usage_metadata === \"object\") {\n const usage = msg.usage_metadata;\n if (typeof usage.input_tokens === \"number\") {\n inputTokens = usage.input_tokens;\n }\n if (typeof usage.output_tokens === \"number\") {\n outputTokens = usage.output_tokens;\n }\n if (typeof usage.total_tokens === \"number\") {\n totalTokens = usage.total_tokens;\n }\n return { inputTokens, outputTokens, totalTokens };\n }\n if (msg.response_metadata && typeof msg.response_metadata === \"object\") {\n const metadata = msg.response_metadata;\n if (metadata.tokenUsage && typeof metadata.tokenUsage === \"object\") {\n const tokenUsage = metadata.tokenUsage;\n if (typeof tokenUsage.promptTokens === \"number\") {\n inputTokens = tokenUsage.promptTokens;\n }\n if (typeof tokenUsage.completionTokens === \"number\") {\n outputTokens = tokenUsage.completionTokens;\n }\n if (typeof tokenUsage.totalTokens === \"number\") {\n totalTokens = tokenUsage.totalTokens;\n }\n }\n }\n return { inputTokens, outputTokens, totalTokens };\n}\nfunction extractModelMetadata(span, message) {\n const msg = message;\n if (msg.response_metadata && typeof msg.response_metadata === \"object\") {\n const metadata = msg.response_metadata;\n if (metadata.model_name && typeof metadata.model_name === \"string\") {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, metadata.model_name);\n }\n if (metadata.finish_reason && typeof metadata.finish_reason === \"string\") {\n span.setAttribute(GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, [metadata.finish_reason]);\n }\n }\n}\nfunction extractToolsFromCompiledGraph(compiledGraph) {\n if (!compiledGraph.builder?.nodes?.tools?.runnable?.tools) {\n return null;\n }\n const tools = compiledGraph.builder?.nodes?.tools?.runnable?.tools;\n if (!tools || !Array.isArray(tools) || tools.length === 0) {\n return null;\n }\n return tools.map((tool) => ({\n name: tool.lc_kwargs?.name,\n description: tool.lc_kwargs?.description,\n schema: tool.lc_kwargs?.schema\n }));\n}\nfunction setResponseAttributes(span, inputMessages, result) {\n const resultObj = result;\n const outputMessages = resultObj?.messages;\n if (!outputMessages || !Array.isArray(outputMessages)) {\n return;\n }\n const inputCount = inputMessages?.length ?? 0;\n const newMessages = outputMessages.length > inputCount ? outputMessages.slice(inputCount) : [];\n if (newMessages.length === 0) {\n return;\n }\n const toolCalls = extractToolCalls(newMessages);\n if (toolCalls) {\n span.setAttribute(GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, JSON.stringify(toolCalls));\n }\n const normalizedNewMessages = normalizeLangChainMessages(newMessages);\n span.setAttribute(GEN_AI_RESPONSE_TEXT_ATTRIBUTE, JSON.stringify(normalizedNewMessages));\n let totalInputTokens = 0;\n let totalOutputTokens = 0;\n let totalTokens = 0;\n for (const message of newMessages) {\n const tokens = extractTokenUsageFromMessage(message);\n totalInputTokens += tokens.inputTokens;\n totalOutputTokens += tokens.outputTokens;\n totalTokens += tokens.totalTokens;\n extractModelMetadata(span, message);\n }\n if (totalInputTokens > 0) {\n span.setAttribute(GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, totalInputTokens);\n }\n if (totalOutputTokens > 0) {\n span.setAttribute(GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, totalOutputTokens);\n }\n if (totalTokens > 0) {\n span.setAttribute(GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, totalTokens);\n }\n}\n\nexport { extractAgentNameFromParams, extractLLMFromParams, extractModelMetadata, extractTokenUsageFromMessage, extractToolCalls, extractToolsFromCompiledGraph, setResponseAttributes, wrapToolsWithSpans };\n//# sourceMappingURL=utils.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpan } from '../trace.js';\nimport { GEN_AI_PIPELINE_NAME_ATTRIBUTE, GEN_AI_AGENT_NAME_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_CONVERSATION_ID_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions, extractSystemInstructions, shouldEnableTruncation, getTruncatedJsonString, getJsonString } from '../ai/utils.js';\nimport { createLangChainCallbackHandler } from '../langchain/index.js';\nimport { _INTERNAL_mergeLangChainCallbackHandler, normalizeLangChainMessages } from '../langchain/utils.js';\nimport { LANGGRAPH_ORIGIN } from './constants.js';\nimport { extractLLMFromParams, extractAgentNameFromParams, wrapToolsWithSpans, extractToolsFromCompiledGraph, setResponseAttributes } from './utils.js';\n\nlet _insideCreateReactAgent = false;\nconst SENTRY_PATCHED = \"__sentry_patched__\";\nfunction instrumentStateGraphCompile(originalCompile, options) {\n if (Object.prototype.hasOwnProperty.call(originalCompile, SENTRY_PATCHED)) {\n return originalCompile;\n }\n const sentryHandler = createLangChainCallbackHandler(options);\n const wrapped = new Proxy(originalCompile, {\n apply(target, thisArg, args) {\n if (_insideCreateReactAgent) {\n return Reflect.apply(target, thisArg, args);\n }\n return startSpan(\n {\n op: \"gen_ai.create_agent\",\n name: \"create_agent\",\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGGRAPH_ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"gen_ai.create_agent\",\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: \"create_agent\"\n }\n },\n (span) => {\n try {\n const compiledGraph = Reflect.apply(target, thisArg, args);\n const compileOptions = args.length > 0 ? args[0] : {};\n if (compileOptions?.name && typeof compileOptions.name === \"string\") {\n span.setAttribute(GEN_AI_AGENT_NAME_ATTRIBUTE, compileOptions.name);\n span.updateName(`create_agent ${compileOptions.name}`);\n }\n const originalInvoke = compiledGraph.invoke;\n if (originalInvoke && typeof originalInvoke === \"function\") {\n compiledGraph.invoke = instrumentCompiledGraphInvoke(\n originalInvoke.bind(compiledGraph),\n compiledGraph,\n compileOptions,\n options,\n void 0,\n sentryHandler\n );\n }\n return compiledGraph;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.langgraph.error\"\n }\n });\n throw error;\n }\n }\n );\n }\n });\n Object.defineProperty(wrapped, SENTRY_PATCHED, { value: true, enumerable: false });\n return wrapped;\n}\nfunction instrumentCompiledGraphInvoke(originalInvoke, graphInstance, compileOptions, options, llm, sentryCallbackHandler) {\n return new Proxy(originalInvoke, {\n apply(target, thisArg, args) {\n const modelName = llm?.modelName ?? llm?.model;\n return startSpan(\n {\n op: \"gen_ai.invoke_agent\",\n name: \"invoke_agent\",\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGGRAPH_ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: \"invoke_agent\"\n }\n },\n async (span) => {\n try {\n const graphName = compileOptions?.name;\n if (graphName && typeof graphName === \"string\") {\n span.setAttribute(GEN_AI_PIPELINE_NAME_ATTRIBUTE, graphName);\n span.setAttribute(GEN_AI_AGENT_NAME_ATTRIBUTE, graphName);\n span.updateName(`invoke_agent ${graphName}`);\n }\n if (modelName) {\n span.setAttribute(GEN_AI_REQUEST_MODEL_ATTRIBUTE, modelName);\n }\n const config = args.length > 1 ? args[1] : void 0;\n const configurable = config?.configurable;\n const threadId = configurable?.thread_id;\n if (threadId && typeof threadId === \"string\") {\n span.setAttribute(GEN_AI_CONVERSATION_ID_ATTRIBUTE, threadId);\n }\n if (sentryCallbackHandler) {\n const invokeConfig = args[1] ?? {};\n args[1] = invokeConfig;\n const existingMetadata = invokeConfig.metadata ?? {};\n invokeConfig.metadata = {\n ...existingMetadata,\n __sentry_langgraph__: true,\n ...typeof graphName === \"string\" ? { lc_agent_name: graphName } : {}\n };\n invokeConfig.callbacks = _INTERNAL_mergeLangChainCallbackHandler(\n invokeConfig.callbacks,\n sentryCallbackHandler\n );\n }\n const tools = extractToolsFromCompiledGraph(graphInstance);\n if (tools) {\n span.setAttribute(GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, JSON.stringify(tools));\n }\n const recordInputs = options.recordInputs;\n const recordOutputs = options.recordOutputs;\n const inputMessages = args.length > 0 ? args[0]?.messages ?? [] : [];\n if (inputMessages && recordInputs) {\n const normalizedMessages = normalizeLangChainMessages(inputMessages);\n const { systemInstructions, filteredMessages } = extractSystemInstructions(normalizedMessages);\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n const enableTruncation = shouldEnableTruncation(options.enableTruncation);\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n span.setAttributes({\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: enableTruncation ? getTruncatedJsonString(filteredMessages) : getJsonString(filteredMessages),\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength\n });\n }\n const result = await Reflect.apply(target, thisArg, args);\n if (recordOutputs) {\n setResponseAttributes(span, inputMessages ?? null, result);\n }\n return result;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.langgraph.error\"\n }\n });\n throw error;\n }\n }\n );\n }\n });\n}\nfunction instrumentCreateReactAgent(originalCreateReactAgent, options) {\n if (Object.prototype.hasOwnProperty.call(originalCreateReactAgent, SENTRY_PATCHED)) {\n return originalCreateReactAgent;\n }\n const resolvedOptions = resolveAIRecordingOptions(options);\n const sentryHandler = createLangChainCallbackHandler(resolvedOptions);\n const wrapped = new Proxy(originalCreateReactAgent, {\n apply(target, thisArg, args) {\n const llm = extractLLMFromParams(args);\n const agentName = extractAgentNameFromParams(args);\n const params = args[0];\n if (params && Array.isArray(params.tools) && params.tools.length > 0) {\n wrapToolsWithSpans(params.tools, resolvedOptions, agentName ?? void 0);\n }\n _insideCreateReactAgent = true;\n let compiledGraph;\n try {\n compiledGraph = Reflect.apply(target, thisArg, args);\n } finally {\n _insideCreateReactAgent = false;\n }\n const originalInvoke = compiledGraph.invoke;\n if (originalInvoke && typeof originalInvoke === \"function\") {\n const compileOptions = {};\n if (agentName) {\n compileOptions.name = agentName;\n }\n compiledGraph.invoke = instrumentCompiledGraphInvoke(\n originalInvoke.bind(compiledGraph),\n compiledGraph,\n compileOptions,\n resolvedOptions,\n llm,\n sentryHandler\n );\n }\n return compiledGraph;\n }\n });\n Object.defineProperty(wrapped, SENTRY_PATCHED, { value: true, enumerable: false });\n return wrapped;\n}\nfunction instrumentLangGraph(stateGraph, options) {\n stateGraph.compile = instrumentStateGraphCompile(stateGraph.compile, resolveAIRecordingOptions(options));\n return stateGraph;\n}\n\nexport { instrumentCreateReactAgent, instrumentLangGraph, instrumentStateGraphCompile };\n//# sourceMappingURL=index.js.map\n", + "import { dsnToString } from '../../utils/dsn.js';\nimport { getSdkMetadataForEnvelopeHeader, createEnvelope } from '../../utils/envelope.js';\nimport { isBrowser } from '../../utils/isBrowser.js';\nimport { safeDateNow } from '../../utils/randomSafeContext.js';\n\nfunction createStreamedSpanEnvelope(serializedSpans, dsc, client) {\n const options = client.getOptions();\n const dsn = client.getDsn();\n const tunnel = options.tunnel;\n const sdk = getSdkMetadataForEnvelopeHeader(options._metadata);\n const headers = {\n sent_at: new Date(safeDateNow()).toISOString(),\n ...dscHasRequiredProps(dsc) && { trace: dsc },\n ...sdk && { sdk },\n ...!!tunnel && dsn && { dsn: dsnToString(dsn) }\n };\n const inferSetting = client.getDataCollectionOptions().userInfo ? \"auto\" : \"never\";\n const spanContainer = [\n { type: \"span\", item_count: serializedSpans.length, content_type: \"application/vnd.sentry.items.span.v2+json\" },\n {\n version: 2,\n ...isBrowser() && {\n ingest_settings: { infer_ip: inferSetting, infer_user_agent: inferSetting }\n },\n items: serializedSpans\n }\n ];\n return createEnvelope(headers, [spanContainer]);\n}\nfunction dscHasRequiredProps(dsc) {\n return !!dsc.trace_id && !!dsc.public_key;\n}\n\nexport { createStreamedSpanEnvelope };\n//# sourceMappingURL=envelope.js.map\n", + "import { estimateTypedAttributesSizeInBytes } from '../../attributes.js';\n\nfunction estimateSerializedSpanSizeInBytes(span) {\n let weight = 156;\n weight += span.name.length * 2;\n weight += estimateTypedAttributesSizeInBytes(span.attributes);\n if (span.links && span.links.length > 0) {\n const firstLink = span.links[0];\n const attributes = firstLink?.attributes;\n const linkWeight = 100 + (attributes ? estimateTypedAttributesSizeInBytes(attributes) : 0);\n weight += linkWeight * span.links.length;\n }\n return weight;\n}\n\nexport { estimateSerializedSpanSizeInBytes };\n//# sourceMappingURL=estimateSize.js.map\n", + "import { DEBUG_BUILD } from '../../debug-build.js';\nimport { debug } from '../../utils/debug-logger.js';\nimport { safeUnref } from '../../utils/timer.js';\nimport { getDynamicSamplingContextFromSpan } from '../dynamicSamplingContext.js';\nimport { createStreamedSpanEnvelope } from './envelope.js';\nimport { estimateSerializedSpanSizeInBytes } from './estimateSize.js';\n\nconst MAX_SPANS_PER_ENVELOPE = 1e3;\nconst MAX_TRACE_WEIGHT_IN_BYTES = 5e6;\nclass SpanBuffer {\n constructor(client, options) {\n this._traceBuckets = /* @__PURE__ */ new Map();\n this._client = client;\n const { maxSpanLimit, flushInterval, maxTraceWeightInBytes } = options ?? {};\n this._maxSpanLimit = maxSpanLimit && maxSpanLimit > 0 && maxSpanLimit <= MAX_SPANS_PER_ENVELOPE ? maxSpanLimit : MAX_SPANS_PER_ENVELOPE;\n this._flushInterval = flushInterval && flushInterval > 0 ? flushInterval : 5e3;\n this._maxTraceWeight = maxTraceWeightInBytes && maxTraceWeightInBytes > 0 ? maxTraceWeightInBytes : MAX_TRACE_WEIGHT_IN_BYTES;\n this._client.on(\"flush\", () => {\n this.drain();\n });\n this._client.on(\"close\", () => {\n this._traceBuckets.forEach((bucket) => {\n clearTimeout(bucket.timeout);\n });\n this._traceBuckets.clear();\n });\n }\n /**\n * Add a span to the buffer.\n */\n add(spanJSON) {\n const traceId = spanJSON.trace_id;\n let bucket = this._traceBuckets.get(traceId);\n if (!bucket) {\n bucket = {\n spans: /* @__PURE__ */ new Set(),\n size: 0,\n timeout: safeUnref(\n setTimeout(() => {\n this.flush(traceId);\n }, this._flushInterval)\n )\n };\n this._traceBuckets.set(traceId, bucket);\n }\n bucket.spans.add(spanJSON);\n bucket.size += estimateSerializedSpanSizeInBytes(spanJSON);\n if (bucket.spans.size >= this._maxSpanLimit || bucket.size >= this._maxTraceWeight) {\n this.flush(traceId);\n }\n }\n /**\n * Drain and flush all buffered traces.\n */\n drain() {\n if (!this._traceBuckets.size) {\n return;\n }\n DEBUG_BUILD && debug.log(`Flushing span tree map with ${this._traceBuckets.size} traces`);\n this._traceBuckets.forEach((_, traceId) => {\n this.flush(traceId);\n });\n }\n /**\n * Flush spans of a specific trace.\n * In contrast to {@link SpanBuffer.drain}, this method does not flush all traces, but only the one with the given traceId.\n */\n flush(traceId) {\n const bucket = this._traceBuckets.get(traceId);\n if (!bucket) {\n return;\n }\n if (!bucket.spans.size) {\n this._removeTrace(traceId);\n return;\n }\n const spans = Array.from(bucket.spans);\n const segmentSpan = spans[0]?._segmentSpan;\n if (!segmentSpan) {\n DEBUG_BUILD && debug.warn(\"No segment span reference found on span JSON, cannot compute DSC\");\n this._removeTrace(traceId);\n return;\n }\n const dsc = getDynamicSamplingContextFromSpan(segmentSpan);\n const cleanedSpans = spans.map((spanJSON) => {\n const { _segmentSpan, ...cleanSpanJSON } = spanJSON;\n return cleanSpanJSON;\n });\n const envelope = createStreamedSpanEnvelope(cleanedSpans, dsc, this._client);\n DEBUG_BUILD && debug.log(`Sending span envelope for trace ${traceId} with ${cleanedSpans.length} spans`);\n this._client.sendEnvelope(envelope).then(null, (reason) => {\n DEBUG_BUILD && debug.error(\"Error while sending streamed span envelope:\", reason);\n });\n this._removeTrace(traceId);\n }\n _removeTrace(traceId) {\n const bucket = this._traceBuckets.get(traceId);\n if (bucket) {\n clearTimeout(bucket.timeout);\n }\n this._traceBuckets.delete(traceId);\n }\n}\n\nexport { SpanBuffer };\n//# sourceMappingURL=spanBuffer.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { defineIntegration } from '../integration.js';\nimport { isStreamedBeforeSendSpanCallback } from '../tracing/spans/beforeSendSpan.js';\nimport { captureSpan } from '../tracing/spans/captureSpan.js';\nimport { hasSpanStreamingEnabled } from '../tracing/spans/hasSpanStreamingEnabled.js';\nimport { SpanBuffer } from '../tracing/spans/spanBuffer.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { spanIsSampled } from '../utils/spanUtils.js';\n\nconst spanStreamingIntegration = defineIntegration(() => {\n return {\n name: \"SpanStreaming\",\n setup(client) {\n const initialMessage = \"SpanStreaming integration requires\";\n const fallbackMsg = \"Falling back to static trace lifecycle.\";\n const clientOptions = client.getOptions();\n if (!hasSpanStreamingEnabled(client)) {\n clientOptions.traceLifecycle = \"static\";\n DEBUG_BUILD && debug.warn(`${initialMessage} \\`traceLifecycle\\` to be set to \"stream\"! ${fallbackMsg}`);\n return;\n }\n const beforeSendSpan = clientOptions.beforeSendSpan;\n if (beforeSendSpan && !isStreamedBeforeSendSpanCallback(beforeSendSpan)) {\n clientOptions.traceLifecycle = \"static\";\n DEBUG_BUILD && debug.warn(`${initialMessage} a beforeSendSpan callback using \\`withStreamedSpan\\`! ${fallbackMsg}`);\n return;\n }\n const buffer = new SpanBuffer(client);\n client.on(\"afterSpanEnd\", (span) => {\n if (!spanIsSampled(span)) {\n return;\n }\n buffer.add(captureSpan(span, client));\n });\n }\n };\n});\n\nexport { spanStreamingIntegration };\n//# sourceMappingURL=spanStreaming.js.map\n", + "function getBreadcrumbLogLevelFromHttpStatusCode(statusCode) {\n if (statusCode === void 0) {\n return void 0;\n } else if (statusCode >= 400 && statusCode < 500) {\n return \"warning\";\n } else if (statusCode >= 500) {\n return \"error\";\n } else {\n return void 0;\n }\n}\n\nexport { getBreadcrumbLogLevelFromHttpStatusCode };\n//# sourceMappingURL=breadcrumb-log-level.js.map\n", + "function replaceExports(exports, exportName, wrappedConstructor) {\n const original = exports[exportName];\n if (typeof original !== \"function\") {\n return;\n }\n try {\n exports[exportName] = wrappedConstructor;\n } catch {\n Object.defineProperty(exports, exportName, {\n value: wrappedConstructor,\n writable: true,\n configurable: true,\n enumerable: true\n });\n }\n if (exports.default === original) {\n try {\n exports.default = wrappedConstructor;\n } catch {\n Object.defineProperty(exports, \"default\", {\n value: wrappedConstructor,\n writable: true,\n configurable: true,\n enumerable: true\n });\n }\n }\n}\n\nexport { replaceExports };\n//# sourceMappingURL=exports.js.map\n", + "class LRUMap {\n constructor(_maxSize) {\n this._maxSize = _maxSize;\n this._cache = /* @__PURE__ */ new Map();\n }\n /** Get the current size of the cache */\n get size() {\n return this._cache.size;\n }\n /** Get an entry or undefined if it was not in the cache. Re-inserts to update the recently used order */\n get(key) {\n const value = this._cache.get(key);\n if (value === void 0) {\n return void 0;\n }\n this._cache.delete(key);\n this._cache.set(key, value);\n return value;\n }\n /** Insert an entry and evict an older entry if we've reached maxSize */\n set(key, value) {\n if (this._cache.size >= this._maxSize) {\n const nextKey = this._cache.keys().next().value;\n this._cache.delete(nextKey);\n }\n this._cache.set(key, value);\n }\n /** Remove an entry and return the entry if it was in the cache */\n remove(key) {\n const value = this._cache.get(key);\n if (value) {\n this._cache.delete(key);\n }\n return value;\n }\n /** Clear all entries */\n clear() {\n this._cache.clear();\n }\n /** Get all the keys */\n keys() {\n return Array.from(this._cache.keys());\n }\n /** Get all the values */\n values() {\n const values = [];\n this._cache.forEach((value) => values.push(value));\n return values;\n }\n}\n\nexport { LRUMap };\n//# sourceMappingURL=lru.js.map\n", + "import { dsnToString } from './utils/dsn.js';\nimport { createEnvelope } from './utils/envelope.js';\nimport { safeDateNow } from './utils/randomSafeContext.js';\n\nfunction createCheckInEnvelope(checkIn, dynamicSamplingContext, metadata, tunnel, dsn) {\n const headers = {\n sent_at: new Date(safeDateNow()).toISOString()\n };\n if (metadata?.sdk) {\n headers.sdk = {\n name: metadata.sdk.name,\n version: metadata.sdk.version\n };\n }\n if (!!tunnel && !!dsn) {\n headers.dsn = dsnToString(dsn);\n }\n if (dynamicSamplingContext) {\n headers.trace = dynamicSamplingContext;\n }\n const item = createCheckInEnvelopeItem(checkIn);\n return createEnvelope(headers, [item]);\n}\nfunction createCheckInEnvelopeItem(checkIn) {\n const checkInHeaders = {\n type: \"check_in\"\n };\n return [checkInHeaders, checkIn];\n}\n\nexport { createCheckInEnvelope };\n//# sourceMappingURL=checkin.js.map\n", + "import { makeDsn, dsnToString } from './utils/dsn.js';\n\nconst SENTRY_API_VERSION = \"7\";\nfunction getBaseApiEndpoint(dsn) {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : \"\";\n const port = dsn.port ? `:${dsn.port}` : \"\";\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : \"\"}/api/`;\n}\nfunction _getIngestEndpoint(dsn) {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\nfunction _encodedAuth(dsn, sdkInfo) {\n const params = {\n sentry_version: SENTRY_API_VERSION\n };\n if (dsn.publicKey) {\n params.sentry_key = dsn.publicKey;\n }\n if (sdkInfo) {\n params.sentry_client = `${sdkInfo.name}/${sdkInfo.version}`;\n }\n return new URLSearchParams(params).toString();\n}\nfunction getEnvelopeEndpointWithUrlEncodedAuth(dsn, tunnel, sdkInfo) {\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\nfunction getReportDialogEndpoint(dsnLike, dialogOptions) {\n const dsn = makeDsn(dsnLike);\n if (!dsn) {\n return \"\";\n }\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === \"dsn\") {\n continue;\n }\n if (key === \"onClose\") {\n continue;\n }\n if (key === \"user\") {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key])}`;\n }\n }\n return `${endpoint}?${encodedOptions}`;\n}\n\nexport { SENTRY_API_VERSION, getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n", + "import { streamedSpanJsonToSerializedSpan } from '../../utils/spanUtils.js';\n\nfunction spanJsonToSerializedStreamedSpan(span) {\n const streamedSpan = {\n trace_id: span.trace_id,\n span_id: span.span_id,\n parent_span_id: span.parent_span_id,\n name: span.description || \"\",\n start_timestamp: span.start_timestamp,\n end_timestamp: span.timestamp || span.start_timestamp,\n status: !span.status || span.status === \"ok\" || span.status === \"cancelled\" ? \"ok\" : \"error\",\n is_segment: false,\n attributes: { ...span.data },\n links: span.links\n };\n return streamedSpanJsonToSerializedSpan(streamedSpan);\n}\n\nexport { spanJsonToSerializedStreamedSpan };\n//# sourceMappingURL=spanJsonToStreamedSpan.js.map\n", + "import { isBrowser } from '../../utils/isBrowser.js';\nimport { hasSpanStreamingEnabled } from './hasSpanStreamingEnabled.js';\nimport { spanJsonToSerializedStreamedSpan } from './spanJsonToStreamedSpan.js';\n\nfunction extractGenAiSpansFromEvent(event, client) {\n if (event.type !== \"transaction\" || !event.spans?.length || !event.sdkProcessingMetadata?.hasGenAiSpans || client.getOptions().streamGenAiSpans === false || hasSpanStreamingEnabled(client)) {\n return void 0;\n }\n const genAiSpans = [];\n const remainingSpans = [];\n for (const span of event.spans) {\n if (span.op?.startsWith(\"gen_ai.\")) {\n genAiSpans.push(spanJsonToSerializedStreamedSpan(span));\n } else {\n remainingSpans.push(span);\n }\n }\n if (genAiSpans.length === 0) {\n return void 0;\n }\n event.spans = remainingSpans;\n const inferSetting = client.getDataCollectionOptions().userInfo ? \"auto\" : \"never\";\n return [\n { type: \"span\", item_count: genAiSpans.length, content_type: \"application/vnd.sentry.items.span.v2+json\" },\n {\n version: 2,\n ...isBrowser() && {\n ingest_settings: { infer_ip: inferSetting, infer_user_agent: inferSetting }\n },\n items: genAiSpans\n }\n ];\n}\n\nexport { extractGenAiSpansFromEvent };\n//# sourceMappingURL=extractGenAiSpans.js.map\n", + "import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\nfunction createClientReportEnvelope(discarded_events, dsn, timestamp) {\n const clientReportItem = [\n { type: \"client_report\" },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events\n }\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n", + "import { SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_PROFILE_ID } from '../semanticAttributes.js';\n\nfunction convertTransactionEventToSpanJson(event) {\n const { trace_id, parent_span_id, span_id, status, origin, data, op } = event.contexts?.trace ?? {};\n return {\n data: data ?? {},\n description: event.transaction,\n op,\n parent_span_id,\n span_id: span_id ?? \"\",\n start_timestamp: event.start_timestamp ?? 0,\n status,\n timestamp: event.timestamp,\n trace_id: trace_id ?? \"\",\n origin,\n profile_id: data?.[SEMANTIC_ATTRIBUTE_PROFILE_ID],\n exclusive_time: data?.[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME],\n measurements: event.measurements,\n is_segment: true\n };\n}\nfunction convertSpanJsonToTransactionEvent(span) {\n return {\n type: \"transaction\",\n timestamp: span.timestamp,\n start_timestamp: span.start_timestamp,\n transaction: span.description,\n contexts: {\n trace: {\n trace_id: span.trace_id,\n span_id: span.span_id,\n parent_span_id: span.parent_span_id,\n op: span.op,\n status: span.status,\n origin: span.origin,\n data: {\n ...span.data,\n ...span.profile_id && { [SEMANTIC_ATTRIBUTE_PROFILE_ID]: span.profile_id },\n ...span.exclusive_time && { [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: span.exclusive_time }\n }\n }\n },\n measurements: span.measurements\n };\n}\n\nexport { convertSpanJsonToTransactionEvent, convertTransactionEventToSpanJson };\n//# sourceMappingURL=transactionEvent.js.map\n", + "import { defaultPiiToCollectionOptions } from './defaultPiiToCollectionOptions.js';\n\nconst DEFAULTS = {\n userInfo: true,\n cookies: true,\n httpHeaders: { request: true, response: true },\n httpBodies: [\"incomingRequest\", \"outgoingRequest\", \"incomingResponse\", \"outgoingResponse\"],\n queryParams: true,\n genAI: { inputs: true, outputs: true },\n stackFrameVariables: true,\n frameContextLines: 5\n};\nfunction resolveDataCollectionOptions(options) {\n const base = options.dataCollection != null ? DEFAULTS : defaultPiiToCollectionOptions(options.sendDefaultPii);\n const dc = options.dataCollection ?? {};\n return {\n userInfo: dc.userInfo ?? base.userInfo,\n cookies: dc.cookies ?? base.cookies,\n httpHeaders: {\n request: dc.httpHeaders?.request ?? base.httpHeaders.request,\n response: dc.httpHeaders?.response ?? base.httpHeaders.response\n },\n httpBodies: dc.httpBodies ?? base.httpBodies,\n queryParams: dc.queryParams ?? base.queryParams,\n genAI: {\n inputs: dc.genAI?.inputs ?? base.genAI.inputs,\n outputs: dc.genAI?.outputs ?? base.genAI.outputs\n },\n stackFrameVariables: dc.stackFrameVariables ?? base.stackFrameVariables,\n frameContextLines: dc.frameContextLines ?? base.frameContextLines\n };\n}\n\nexport { resolveDataCollectionOptions };\n//# sourceMappingURL=resolveDataCollectionOptions.js.map\n", + "import { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { DEFAULT_ENVIRONMENT } from './constants.js';\nimport { getTraceContextFromScope, getCurrentScope, getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegration, afterSetupIntegrations, setupIntegrations } from './integration.js';\nimport { _INTERNAL_flushLogsBuffer } from './logs/internal.js';\nimport { _INTERNAL_flushMetricsBuffer } from './metrics/internal.js';\nimport { updateSession } from './session.js';\nimport { getDynamicSamplingContextFromScope } from './tracing/dynamicSamplingContext.js';\nimport { isStreamedBeforeSendSpanCallback } from './tracing/spans/beforeSendSpan.js';\nimport { extractGenAiSpansFromEvent } from './tracing/spans/extractGenAiSpans.js';\nimport { DEFAULT_TRANSPORT_BUFFER_SIZE } from './transports/base.js';\nimport { createClientReportEnvelope } from './utils/clientreport.js';\nimport { debug } from './utils/debug-logger.js';\nimport { makeDsn, dsnToString } from './utils/dsn.js';\nimport { addItemToEnvelope, createAttachmentEnvelopeItem } from './utils/envelope.js';\nimport { getPossibleEventMessages } from './utils/eventUtils.js';\nimport { isParameterizedString, isPrimitive, isThenable, isPlainObject } from './utils/is.js';\nimport { merge } from './utils/merge.js';\nimport { uuid4, checkOrSetAlreadyCaught } from './utils/misc.js';\nimport { parseSampleRate } from './utils/parseSampleRate.js';\nimport { prepareEvent } from './utils/prepareEvent.js';\nimport { makePromiseBuffer, SENTRY_BUFFER_FULL_ERROR } from './utils/promisebuffer.js';\nimport { safeMathRandom } from './utils/randomSafeContext.js';\nimport { shouldIgnoreSpan, reparentChildSpans } from './utils/should-ignore-span.js';\nimport { showSpanDropWarning } from './utils/spanUtils.js';\nimport { rejectedSyncPromise } from './utils/syncpromise.js';\nimport { safeUnref } from './utils/timer.js';\nimport { convertTransactionEventToSpanJson, convertSpanJsonToTransactionEvent } from './utils/transactionEvent.js';\nimport { resolveDataCollectionOptions } from './utils/data-collection/resolveDataCollectionOptions.js';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\nconst MISSING_RELEASE_FOR_SESSION_ERROR = \"Discarded session because of missing or non-string release\";\nconst INTERNAL_ERROR_SYMBOL = /* @__PURE__ */ Symbol.for(\"SentryInternalError\");\nconst DO_NOT_SEND_EVENT_SYMBOL = /* @__PURE__ */ Symbol.for(\"SentryDoNotSendEventError\");\nconst DEFAULT_FLUSH_INTERVAL = 5e3;\nfunction _makeInternalError(message) {\n return {\n message,\n [INTERNAL_ERROR_SYMBOL]: true\n };\n}\nfunction _makeDoNotSendEventError(message) {\n return {\n message,\n [DO_NOT_SEND_EVENT_SYMBOL]: true\n };\n}\nfunction _isInternalError(error) {\n return !!error && typeof error === \"object\" && INTERNAL_ERROR_SYMBOL in error;\n}\nfunction _isDoNotSendEventError(error) {\n return !!error && typeof error === \"object\" && DO_NOT_SEND_EVENT_SYMBOL in error;\n}\nfunction setupWeightBasedFlushing(client, afterCaptureHook, flushHook, estimateSizeFn, flushFn) {\n let weight = 0;\n let flushTimeout;\n let isTimerActive = false;\n client.on(flushHook, () => {\n weight = 0;\n clearTimeout(flushTimeout);\n isTimerActive = false;\n });\n client.on(afterCaptureHook, (item) => {\n weight += estimateSizeFn(item);\n if (weight >= 8e5) {\n flushFn(client);\n } else if (!isTimerActive) {\n const flushInterval = client.getOptions()._flushInterval ?? DEFAULT_FLUSH_INTERVAL;\n if (flushInterval > 0) {\n isTimerActive = true;\n flushTimeout = safeUnref(\n setTimeout(() => {\n flushFn(client);\n }, flushInterval)\n );\n }\n }\n });\n client.on(\"flush\", () => {\n flushFn(client);\n });\n}\nclass Client {\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {\n this._options = options;\n this._integrations = {};\n this._numProcessing = 0;\n this._outcomes = {};\n this._hooks = {};\n this._eventProcessors = [];\n this._promiseBuffer = makePromiseBuffer(options.transportOptions?.bufferSize ?? DEFAULT_TRANSPORT_BUFFER_SIZE);\n this._dataCollection = resolveDataCollectionOptions(options);\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n } else {\n DEBUG_BUILD && debug.warn(\"No DSN provided, client will not send events.\");\n }\n if (this._dsn) {\n const url = getEnvelopeEndpointWithUrlEncodedAuth(\n this._dsn,\n options.tunnel,\n options._metadata ? options._metadata.sdk : void 0\n );\n this._transport = options.transport({\n tunnel: this._options.tunnel,\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url\n });\n }\n this._options.enableLogs = this._options.enableLogs ?? this._options._experiments?.enableLogs;\n if (this._options.enableLogs) {\n setupWeightBasedFlushing(this, \"afterCaptureLog\", \"flushLogs\", estimateLogSizeInBytes, _INTERNAL_flushLogsBuffer);\n }\n const enableMetrics = this._options.enableMetrics ?? this._options._experiments?.enableMetrics ?? true;\n if (enableMetrics) {\n setupWeightBasedFlushing(\n this,\n \"afterCaptureMetric\",\n \"flushMetrics\",\n estimateMetricSizeInBytes,\n _INTERNAL_flushMetricsBuffer\n );\n }\n }\n /**\n * Captures an exception event and sends it to Sentry.\n *\n * Unlike `captureException` exported from every SDK, this method requires that you pass it the current scope.\n */\n captureException(exception, hint, scope) {\n const eventId = uuid4();\n if (checkOrSetAlreadyCaught(exception)) {\n DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n const hintWithEventId = {\n event_id: eventId,\n ...hint\n };\n this._process(\n () => this.eventFromException(exception, hintWithEventId).then((event) => this._captureEvent(event, hintWithEventId, scope)).then((res) => res),\n \"error\"\n );\n return hintWithEventId.event_id;\n }\n /**\n * Captures a message event and sends it to Sentry.\n *\n * Unlike `captureMessage` exported from every SDK, this method requires that you pass it the current scope.\n */\n captureMessage(message, level, hint, currentScope) {\n const hintWithEventId = {\n event_id: uuid4(),\n ...hint\n };\n const eventMessage = isParameterizedString(message) ? message : String(message);\n const isMessage = isPrimitive(message);\n const promisedEvent = isMessage ? this.eventFromMessage(eventMessage, level, hintWithEventId) : this.eventFromException(message, hintWithEventId);\n this._process(\n () => promisedEvent.then((event) => this._captureEvent(event, hintWithEventId, currentScope)),\n isMessage ? \"unknown\" : \"error\"\n );\n return hintWithEventId.event_id;\n }\n /**\n * Captures a manually created event and sends it to Sentry.\n *\n * Unlike `captureEvent` exported from every SDK, this method requires that you pass it the current scope.\n */\n captureEvent(event, hint, currentScope) {\n const eventId = uuid4();\n if (hint?.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n const hintWithEventId = {\n event_id: eventId,\n ...hint\n };\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanScope = sdkProcessingMetadata.capturedSpanScope;\n const capturedSpanIsolationScope = sdkProcessingMetadata.capturedSpanIsolationScope;\n const dataCategory = getDataCategoryByType(event.type);\n this._process(\n () => this._captureEvent(event, hintWithEventId, capturedSpanScope || currentScope, capturedSpanIsolationScope),\n dataCategory\n );\n return hintWithEventId.event_id;\n }\n /**\n * Captures a session.\n */\n captureSession(session) {\n this.sendSession(session);\n updateSession(session, { init: false });\n }\n /**\n * Get the current Dsn.\n */\n getDsn() {\n return this._dsn;\n }\n /**\n * Get the current options.\n */\n getOptions() {\n return this._options;\n }\n /**\n * Get the resolved data collection configuration.\n */\n getDataCollectionOptions() {\n return this._dataCollection;\n }\n /**\n * Get the SDK metadata.\n * @see SdkMetadata\n */\n getSdkMetadata() {\n return this._options._metadata;\n }\n /**\n * Returns the transport that is used by the client.\n * Please note that the transport gets lazy initialized so it will only be there once the first event has been sent.\n */\n getTransport() {\n return this._transport;\n }\n /**\n * Wait for all events to be sent or the timeout to expire, whichever comes first.\n *\n * @param timeout Maximum time in ms the client should wait for events to be flushed. Omitting this parameter will\n * cause the client to wait until all events are sent before resolving the promise.\n * @returns A promise that will resolve with `true` if all events are sent before the timeout, or `false` if there are\n * still events in the queue when the timeout is reached.\n */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async flush(timeout) {\n const transport = this._transport;\n this.emit(\"flush\");\n if (!transport) {\n return true;\n }\n const clientFinished = await this._isClientDoneProcessing(timeout);\n const transportFlushed = await transport.flush(timeout);\n return clientFinished && transportFlushed;\n }\n /**\n * Flush the event queue and set the client to `enabled = false`. See {@link Client.flush}.\n *\n * @param {number} timeout Maximum time in ms the client should wait before shutting down. Omitting this parameter will cause\n * the client to wait until all events are sent before disabling itself.\n * @returns {Promise} A promise which resolves to `true` if the flush completes successfully before the timeout, or `false` if\n * it doesn't.\n */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async close(timeout) {\n _INTERNAL_flushLogsBuffer(this);\n const result = await this.flush(timeout);\n this.getOptions().enabled = false;\n this.emit(\"close\");\n return result;\n }\n /**\n * Get all installed event processors.\n */\n getEventProcessors() {\n return this._eventProcessors;\n }\n /**\n * Adds an event processor that applies to any event processed by this client.\n */\n addEventProcessor(eventProcessor) {\n this._eventProcessors.push(eventProcessor);\n }\n /**\n * Initialize this client.\n * Call this after the client was set on a scope.\n */\n init() {\n if (this._isEnabled() || // Force integrations to be setup even if no DSN was set when we have\n // Spotlight enabled. This is particularly important for browser as we\n // don't support the `spotlight` option there and rely on the users\n // adding the `spotlightBrowserIntegration()` to their integrations which\n // wouldn't get initialized with the check below when there's no DSN set.\n this._options.integrations.some(({ name }) => name.startsWith(\"Spotlight\"))) {\n this._setupIntegrations();\n }\n }\n /**\n * Gets an installed integration by its name.\n *\n * @returns {Integration|undefined} The installed integration or `undefined` if no integration with that `name` was installed.\n */\n getIntegrationByName(integrationName) {\n return this._integrations[integrationName];\n }\n /**\n * Returns the names of all installed integrations.\n */\n getIntegrationNames() {\n return Object.keys(this._integrations);\n }\n /**\n * Add an integration to the client.\n * This can be used to e.g. lazy load integrations.\n * In most cases, this should not be necessary,\n * and you're better off just passing the integrations via `integrations: []` at initialization time.\n * However, if you find the need to conditionally load & add an integration, you can use `addIntegration` to do so.\n */\n addIntegration(integration) {\n const isAlreadyInstalled = this._integrations[integration.name];\n if (!isAlreadyInstalled && integration.beforeSetup) {\n integration.beforeSetup(this);\n }\n setupIntegration(this, integration, this._integrations);\n if (!isAlreadyInstalled) {\n afterSetupIntegrations(this, [integration]);\n }\n }\n /**\n * Send a fully prepared event to Sentry.\n */\n sendEvent(event, hint = {}) {\n this.emit(\"beforeSendEvent\", event, hint);\n const genAiSpanItem = extractGenAiSpansFromEvent(event, this);\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(env, createAttachmentEnvelopeItem(attachment));\n }\n if (genAiSpanItem) {\n env = addItemToEnvelope(env, genAiSpanItem);\n }\n this.sendEnvelope(env).then((sendResponse) => this.emit(\"afterSendEvent\", event, sendResponse));\n }\n /**\n * Send a session or session aggregrates to Sentry.\n */\n sendSession(session) {\n const { release: clientReleaseOption, environment: clientEnvironmentOption = DEFAULT_ENVIRONMENT } = this._options;\n if (\"aggregates\" in session) {\n const sessionAttrs = session.attrs || {};\n if (!sessionAttrs.release && !clientReleaseOption) {\n DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n return;\n }\n sessionAttrs.release = sessionAttrs.release || clientReleaseOption;\n sessionAttrs.environment = sessionAttrs.environment || clientEnvironmentOption;\n session.attrs = sessionAttrs;\n } else {\n if (!session.release && !clientReleaseOption) {\n DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n return;\n }\n session.release = session.release || clientReleaseOption;\n session.environment = session.environment || clientEnvironmentOption;\n }\n this.emit(\"beforeSendSession\", session);\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n this.sendEnvelope(env);\n }\n /**\n * Record on the client that an event got dropped (ie, an event that will not be sent to Sentry).\n */\n recordDroppedEvent(reason, category, count = 1) {\n if (this._options.sendClientReports) {\n const key = `${reason}:${category}`;\n DEBUG_BUILD && debug.log(`Recording outcome: \"${key}\"${count > 1 ? ` (${count} times)` : \"\"}`);\n this._outcomes[key] = (this._outcomes[key] || 0) + count;\n }\n }\n /**\n * Register a hook on this client.\n */\n on(hook, callback) {\n const hookCallbacks = this._hooks[hook] = this._hooks[hook] || /* @__PURE__ */ new Set();\n const uniqueCallback = (...args) => callback(...args);\n hookCallbacks.add(uniqueCallback);\n return () => {\n hookCallbacks.delete(uniqueCallback);\n };\n }\n /**\n * Emit a hook that was previously registered via `on()`.\n */\n emit(hook, ...rest) {\n const callbacks = this._hooks[hook];\n if (callbacks) {\n callbacks.forEach((callback) => callback(...rest));\n }\n }\n /**\n * Send an envelope to Sentry.\n */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async sendEnvelope(envelope) {\n this.emit(\"beforeEnvelope\", envelope);\n if (this._isEnabled() && this._transport) {\n try {\n return await this._transport.send(envelope);\n } catch (reason) {\n DEBUG_BUILD && debug.error(\"Error while sending envelope:\", reason);\n return {};\n }\n }\n DEBUG_BUILD && debug.error(\"Transport disabled\");\n return {};\n }\n /**\n * Register a cleanup function to be called when the client is disposed.\n * This is useful for integrations that need to clean up global state.\n *\n * NOTE: This is a no-op in the base `Client` class. Subclasses like `ServerRuntimeClient`\n * override this method to actually register and execute cleanup callbacks.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n registerCleanup(callback) {\n }\n /**\n * Disposes of the client and releases all resources.\n *\n * Subclasses should override this method to clean up their own resources, including invoking\n * any callbacks registered via {@link Client.registerCleanup}. The base implementation is a\n * no-op and does NOT execute registered cleanup callbacks.\n *\n * After calling dispose(), the client should not be used anymore.\n */\n dispose() {\n }\n /* eslint-enable @typescript-eslint/unified-signatures */\n /** Setup integrations for this client. */\n _setupIntegrations() {\n const { integrations } = this._options;\n this._integrations = setupIntegrations(this, integrations);\n afterSetupIntegrations(this, integrations);\n }\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n let crashed = event.level === \"fatal\";\n let errored = false;\n const exceptions = event.exception?.values;\n if (exceptions) {\n errored = true;\n crashed = false;\n for (const ex of exceptions) {\n if (ex.mechanism?.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n const sessionNonTerminal = session.status === \"ok\";\n const shouldUpdateAndSend = sessionNonTerminal && session.errors === 0 || sessionNonTerminal && crashed;\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...crashed && { status: \"crashed\" },\n errors: session.errors || Number(errored || crashed)\n });\n this.captureSession(session);\n }\n }\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n async _isClientDoneProcessing(timeout) {\n let ticked = 0;\n while (!timeout || ticked < timeout) {\n await new Promise((resolve) => setTimeout(resolve, 1));\n if (!this._numProcessing) {\n return true;\n }\n ticked++;\n }\n return false;\n }\n /** Determines whether this SDK is enabled and a transport is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._transport !== void 0;\n }\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A new event with more information.\n */\n _prepareEvent(event, hint, currentScope, isolationScope) {\n const options = this.getOptions();\n const integrations = this.getIntegrationNames();\n if (!hint.integrations && integrations.length) {\n hint.integrations = integrations;\n }\n this.emit(\"preprocessEvent\", event, hint);\n if (!event.type) {\n isolationScope.setLastEventId(event.event_id || hint.event_id);\n }\n return prepareEvent(options, event, hint, currentScope, this, isolationScope).then((evt) => {\n if (evt === null) {\n return evt;\n }\n this.emit(\"postprocessEvent\", evt, hint);\n evt.contexts = {\n trace: { ...evt.contexts?.trace, ...getTraceContextFromScope(currentScope) },\n ...evt.contexts\n };\n const dynamicSamplingContext = getDynamicSamplingContextFromScope(this, currentScope);\n evt.sdkProcessingMetadata = {\n dynamicSamplingContext,\n ...evt.sdkProcessingMetadata\n };\n return evt;\n });\n }\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(event, hint = {}, currentScope = getCurrentScope(), isolationScope = getIsolationScope()) {\n if (DEBUG_BUILD && isErrorEvent(event)) {\n debug.log(`Captured error event \\`${getPossibleEventMessages(event)[0] || \"\"}\\``);\n }\n return this._processEvent(event, hint, currentScope, isolationScope).then(\n (finalEvent) => {\n return finalEvent.event_id;\n },\n (reason) => {\n if (DEBUG_BUILD) {\n if (_isDoNotSendEventError(reason)) {\n debug.log(reason.message);\n } else if (_isInternalError(reason)) {\n debug.warn(reason.message);\n } else {\n debug.warn(reason);\n }\n }\n return void 0;\n }\n );\n }\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n _processEvent(event, hint, currentScope, isolationScope) {\n const options = this.getOptions();\n const { sampleRate } = options;\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || \"error\";\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n const parsedSampleRate = typeof sampleRate === \"undefined\" ? void 0 : parseSampleRate(sampleRate);\n if (isError && typeof parsedSampleRate === \"number\" && safeMathRandom() > parsedSampleRate) {\n this.recordDroppedEvent(\"sample_rate\", \"error\");\n return rejectedSyncPromise(\n _makeDoNotSendEventError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`\n )\n );\n }\n const dataCategory = getDataCategoryByType(event.type);\n return this._prepareEvent(event, hint, currentScope, isolationScope).then((prepared) => {\n if (prepared === null) {\n this.recordDroppedEvent(\"event_processor\", dataCategory);\n throw _makeDoNotSendEventError(\"An event processor returned `null`, will not send event.\");\n }\n const isInternalException = hint.data?.__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n const result = processBeforeSend(this, options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n }).then((processedEvent) => {\n if (processedEvent === null) {\n this.recordDroppedEvent(\"before_send\", dataCategory);\n if (isTransaction) {\n const spans = event.spans || [];\n const spanCount = 1 + spans.length;\n this.recordDroppedEvent(\"before_send\", \"span\", spanCount);\n }\n throw _makeDoNotSendEventError(`${beforeSendLabel} returned \\`null\\`, will not send event.`);\n }\n const session = currentScope.getSession() || isolationScope.getSession();\n if (isError && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n if (isTransaction) {\n const spanCountBefore = processedEvent.sdkProcessingMetadata?.spanCountBeforeProcessing || 0;\n const spanCountAfter = processedEvent.spans ? processedEvent.spans.length : 0;\n const droppedSpanCount = spanCountBefore - spanCountAfter;\n if (droppedSpanCount > 0) {\n this.recordDroppedEvent(\"before_send\", \"span\", droppedSpanCount);\n }\n }\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = \"custom\";\n processedEvent.transaction_info = {\n ...transactionInfo,\n source\n };\n }\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n }).then(null, (reason) => {\n if (_isDoNotSendEventError(reason) || _isInternalError(reason)) {\n throw reason;\n }\n this.captureException(reason, {\n mechanism: {\n handled: false,\n type: \"internal\"\n },\n data: {\n __sentry__: true\n },\n originalException: reason\n });\n throw _makeInternalError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${reason}`\n );\n });\n }\n /**\n * Occupies the client with processing and event\n */\n _process(taskProducer, dataCategory) {\n this._numProcessing++;\n void this._promiseBuffer.add(taskProducer).then(\n (value) => {\n this._numProcessing--;\n return value;\n },\n (reason) => {\n this._numProcessing--;\n if (reason === SENTRY_BUFFER_FULL_ERROR) {\n this.recordDroppedEvent(\"queue_overflow\", dataCategory);\n }\n return reason;\n }\n );\n }\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.entries(outcomes).map(([key, quantity]) => {\n const [reason, category] = key.split(\":\");\n return {\n reason,\n category,\n quantity\n };\n });\n }\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n DEBUG_BUILD && debug.log(\"Flushing outcomes...\");\n const outcomes = this._clearOutcomes();\n if (outcomes.length === 0) {\n DEBUG_BUILD && debug.log(\"No outcomes to send\");\n return;\n }\n if (!this._dsn) {\n DEBUG_BUILD && debug.log(\"No dsn provided, will not send outcomes\");\n return;\n }\n DEBUG_BUILD && debug.log(\"Sending outcomes:\", outcomes);\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n this.sendEnvelope(envelope);\n }\n}\nfunction getDataCategoryByType(type) {\n return type === \"replay_event\" ? \"replay\" : type || \"error\";\n}\nfunction _validateBeforeSendResult(beforeSendResult, beforeSendLabel) {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n (event) => {\n if (!isPlainObject(event) && event !== null) {\n throw _makeInternalError(invalidValueError);\n }\n return event;\n },\n (e) => {\n throw _makeInternalError(`${beforeSendLabel} rejected with ${e}`);\n }\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw _makeInternalError(invalidValueError);\n }\n return beforeSendResult;\n}\nfunction processBeforeSend(client, options, event, hint) {\n const { beforeSend, beforeSendTransaction, ignoreSpans } = options;\n const beforeSendSpan = !isStreamedBeforeSendSpanCallback(options.beforeSendSpan) && options.beforeSendSpan;\n let processedEvent = event;\n if (isErrorEvent(processedEvent) && beforeSend) {\n return beforeSend(processedEvent, hint);\n }\n if (isTransactionEvent(processedEvent)) {\n if (beforeSendSpan || ignoreSpans) {\n const rootSpanJson = convertTransactionEventToSpanJson(processedEvent);\n if (ignoreSpans?.length && shouldIgnoreSpan(\n { description: rootSpanJson.description, op: rootSpanJson.op, attributes: rootSpanJson.data },\n ignoreSpans\n )) {\n return null;\n }\n if (beforeSendSpan) {\n const processedRootSpanJson = beforeSendSpan(rootSpanJson);\n if (!processedRootSpanJson) {\n showSpanDropWarning();\n } else {\n processedEvent = merge(event, convertSpanJsonToTransactionEvent(processedRootSpanJson));\n }\n }\n if (processedEvent.spans) {\n const processedSpans = [];\n const initialSpans = processedEvent.spans;\n for (const span of initialSpans) {\n if (ignoreSpans?.length && shouldIgnoreSpan({ description: span.description, op: span.op, attributes: span.data }, ignoreSpans)) {\n reparentChildSpans(initialSpans, span);\n continue;\n }\n if (beforeSendSpan) {\n const processedSpan = beforeSendSpan(span);\n if (!processedSpan) {\n showSpanDropWarning();\n processedSpans.push(span);\n } else {\n processedSpans.push(processedSpan);\n }\n } else {\n processedSpans.push(span);\n }\n }\n const droppedSpans = processedEvent.spans.length - processedSpans.length;\n if (droppedSpans) {\n client.recordDroppedEvent(\"before_send\", \"span\", droppedSpans);\n }\n processedEvent.spans = processedSpans;\n }\n }\n if (beforeSendTransaction) {\n if (processedEvent.spans) {\n const spanCountBefore = processedEvent.spans.length;\n processedEvent.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n spanCountBeforeProcessing: spanCountBefore\n };\n }\n return beforeSendTransaction(processedEvent, hint);\n }\n }\n return processedEvent;\n}\nfunction isErrorEvent(event) {\n return event.type === void 0;\n}\nfunction isTransactionEvent(event) {\n return event.type === \"transaction\";\n}\nfunction estimateMetricSizeInBytes(metric) {\n let weight = 0;\n if (metric.name) {\n weight += metric.name.length * 2;\n }\n weight += 8;\n return weight + estimateAttributesSizeInBytes(metric.attributes);\n}\nfunction estimateLogSizeInBytes(log) {\n let weight = 0;\n if (log.message) {\n weight += log.message.length * 2;\n }\n return weight + estimateAttributesSizeInBytes(log.attributes);\n}\nfunction estimateAttributesSizeInBytes(attributes) {\n if (!attributes) {\n return 0;\n }\n let weight = 0;\n Object.values(attributes).forEach((value) => {\n if (Array.isArray(value)) {\n weight += value.length * estimatePrimitiveSizeInBytes(value[0]);\n } else if (isPrimitive(value)) {\n weight += estimatePrimitiveSizeInBytes(value);\n } else {\n weight += 100;\n }\n });\n return weight;\n}\nfunction estimatePrimitiveSizeInBytes(value) {\n if (typeof value === \"string\") {\n return value.length * 2;\n } else if (typeof value === \"number\") {\n return 8;\n } else if (typeof value === \"boolean\") {\n return 4;\n }\n return 0;\n}\n\nexport { Client };\n//# sourceMappingURL=client.js.map\n", + "function addUserAgentToTransportHeaders(options) {\n const sdkMetadata = options._metadata?.sdk;\n const sdkUserAgent = sdkMetadata?.name && sdkMetadata?.version ? `${sdkMetadata?.name}/${sdkMetadata?.version}` : void 0;\n options.transportOptions = {\n ...options.transportOptions,\n headers: {\n ...sdkUserAgent && { \"user-agent\": sdkUserAgent },\n ...options.transportOptions?.headers\n }\n };\n}\n\nexport { addUserAgentToTransportHeaders };\n//# sourceMappingURL=userAgent.js.map\n", + "import { createCheckInEnvelope } from './checkin.js';\nimport { Client } from './client.js';\nimport { getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { spanStreamingIntegration } from './integrations/spanStreaming.js';\nimport { DEFAULT_TRANSPORT_BUFFER_SIZE } from './transports/base.js';\nimport { addUserAgentToTransportHeaders } from './transports/userAgent.js';\nimport { debug } from './utils/debug-logger.js';\nimport { eventFromUnknownInput, eventFromMessage } from './utils/eventbuilder.js';\nimport { uuid4 } from './utils/misc.js';\nimport { makePromiseBuffer } from './utils/promisebuffer.js';\nimport { resolvedSyncPromise } from './utils/syncpromise.js';\nimport { _getTraceInfoFromScope } from './utils/trace-info.js';\n\nclass ServerRuntimeClient extends Client {\n /**\n * Creates a new Edge SDK instance.\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n addUserAgentToTransportHeaders(options);\n if (options.traceLifecycle === \"stream\" && !options.integrations.some((i) => i.name === \"SpanStreaming\")) {\n options.integrations.push(spanStreamingIntegration());\n }\n super(options);\n this._disposeCallbacks = [];\n this._setUpMetricsProcessing();\n }\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n const event = eventFromUnknownInput(this, this._options.stackParser, exception, hint);\n event.level = \"error\";\n return resolvedSyncPromise(event);\n }\n /**\n * @inheritDoc\n */\n eventFromMessage(message, level = \"info\", hint) {\n return resolvedSyncPromise(\n eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace)\n );\n }\n /**\n * @inheritDoc\n */\n captureException(exception, hint, scope) {\n setCurrentRequestSessionErroredOrCrashed(hint);\n return super.captureException(exception, hint, scope);\n }\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, scope) {\n const isException = !event.type && event.exception?.values && event.exception.values.length > 0;\n if (isException) {\n setCurrentRequestSessionErroredOrCrashed(hint);\n }\n return super.captureEvent(event, hint, scope);\n }\n /**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\n captureCheckIn(checkIn, monitorConfig, scope) {\n const id = \"checkInId\" in checkIn && checkIn.checkInId ? checkIn.checkInId : uuid4();\n if (!this._isEnabled()) {\n DEBUG_BUILD && debug.warn(\"SDK not enabled, will not capture check-in.\");\n return id;\n }\n const options = this.getOptions();\n const { release, environment, tunnel } = options;\n const serializedCheckIn = {\n check_in_id: id,\n monitor_slug: checkIn.monitorSlug,\n status: checkIn.status,\n release,\n environment\n };\n if (\"duration\" in checkIn) {\n serializedCheckIn.duration = checkIn.duration;\n }\n if (monitorConfig) {\n serializedCheckIn.monitor_config = {\n schedule: monitorConfig.schedule,\n checkin_margin: monitorConfig.checkinMargin,\n max_runtime: monitorConfig.maxRuntime,\n timezone: monitorConfig.timezone,\n failure_issue_threshold: monitorConfig.failureIssueThreshold,\n recovery_threshold: monitorConfig.recoveryThreshold\n };\n }\n const [dynamicSamplingContext, traceContext] = _getTraceInfoFromScope(this, scope);\n if (traceContext) {\n serializedCheckIn.contexts = {\n trace: traceContext\n };\n }\n const envelope = createCheckInEnvelope(\n serializedCheckIn,\n dynamicSamplingContext,\n this.getSdkMetadata(),\n tunnel,\n this.getDsn()\n );\n DEBUG_BUILD && debug.log(\"Sending checkin:\", checkIn.monitorSlug, checkIn.status);\n this.sendEnvelope(envelope);\n return id;\n }\n /**\n * @inheritDoc\n */\n registerCleanup(callback) {\n this._disposeCallbacks.push(callback);\n }\n /**\n * Disposes of the client and releases all resources.\n *\n * This method clears all internal state to allow the client to be garbage collected.\n * It clears hooks, event processors, integrations, transport, and other internal references.\n *\n * Call this method after flushing to allow the client to be garbage collected.\n * After calling dispose(), the client should not be used anymore.\n *\n * Subclasses should override this method to clean up their own resources and call `super.dispose()`.\n */\n dispose() {\n DEBUG_BUILD && debug.log(\"Disposing client...\");\n for (const callback of this._disposeCallbacks) {\n try {\n callback();\n } catch {\n }\n }\n this._disposeCallbacks.length = 0;\n for (const hookName of Object.keys(this._hooks)) {\n this._hooks[hookName]?.clear();\n }\n this._hooks = {};\n this._eventProcessors.length = 0;\n this._integrations = {};\n this._outcomes = {};\n this._transport = void 0;\n this._promiseBuffer = makePromiseBuffer(DEFAULT_TRANSPORT_BUFFER_SIZE);\n }\n /**\n * @inheritDoc\n */\n _prepareEvent(event, hint, currentScope, isolationScope) {\n if (this._options.platform) {\n event.platform = event.platform || this._options.platform;\n }\n if (this._options.runtime) {\n event.contexts = {\n ...event.contexts,\n runtime: event.contexts?.runtime || this._options.runtime\n };\n }\n if (this._options.serverName) {\n event.server_name = event.server_name || this._options.serverName;\n }\n return super._prepareEvent(event, hint, currentScope, isolationScope);\n }\n /**\n * Process a server-side metric before it is captured.\n */\n _setUpMetricsProcessing() {\n this.on(\"processMetric\", (metric) => {\n if (this._options.serverName) {\n metric.attributes = {\n \"server.address\": this._options.serverName,\n ...metric.attributes\n };\n }\n });\n }\n}\nfunction setCurrentRequestSessionErroredOrCrashed(eventHint) {\n const requestSession = getIsolationScope().getScopeData().sdkProcessingMetadata.requestSession;\n if (requestSession) {\n const isHandledException = eventHint?.mechanism?.handled ?? true;\n if (isHandledException && requestSession.status !== \"crashed\") {\n requestSession.status = \"errored\";\n } else if (!isHandledException) {\n requestSession.status = \"crashed\";\n }\n }\n}\n\nexport { ServerRuntimeClient };\n//# sourceMappingURL=server-runtime-client.js.map\n", + "import { normalizeStackTracePath, UNKNOWN_FUNCTION } from './stacktrace.js';\n\nfunction filenameIsInApp(filename, isNative = false) {\n const isInternal = isNative || filename && // It's not internal if it's an absolute linux path\n !filename.startsWith(\"/\") && // It's not internal if it's an absolute windows path\n !filename.match(/^[A-Z]:/) && // It's not internal if the path is starting with a dot\n !filename.startsWith(\".\") && // It's not internal if the frame has a protocol. In node, this is usually the case if the file got pre-processed with a bundler like webpack\n !filename.match(/^[a-zA-Z]([a-zA-Z0-9.\\-+])*:\\/\\//);\n return !isInternal && filename !== void 0 && !filename.includes(\"node_modules/\");\n}\nfunction node(getModule) {\n const FILENAME_MATCH = /^\\s*[-]{4,}$/;\n const FULL_MATCH = /at (?:async )?(?:(.+?)\\s+\\()?(?:(.+):(\\d+):(\\d+)?|([^)]+))\\)?/;\n const DATA_URI_MATCH = /at (?:async )?(.+?) \\(data:(.*?),/;\n return (line) => {\n const dataUriMatch = line.match(DATA_URI_MATCH);\n if (dataUriMatch) {\n return {\n filename: ``,\n function: dataUriMatch[1]\n };\n }\n const lineMatch = line.match(FULL_MATCH);\n if (lineMatch) {\n let object;\n let method;\n let functionName;\n let typeName;\n let methodName;\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n let methodStart = functionName.lastIndexOf(\".\");\n if (functionName[methodStart - 1] === \".\") {\n methodStart--;\n }\n if (methodStart > 0) {\n object = functionName.slice(0, methodStart);\n method = functionName.slice(methodStart + 1);\n const objectEnd = object.indexOf(\".Module\");\n if (objectEnd > 0) {\n functionName = functionName.slice(objectEnd + 1);\n object = object.slice(0, objectEnd);\n }\n }\n typeName = void 0;\n }\n if (method) {\n typeName = object;\n methodName = method;\n }\n if (method === \"\") {\n methodName = void 0;\n functionName = void 0;\n }\n if (functionName === void 0) {\n methodName = methodName || UNKNOWN_FUNCTION;\n functionName = typeName ? `${typeName}.${methodName}` : methodName;\n }\n let filename = normalizeStackTracePath(lineMatch[2]);\n const isNative = lineMatch[5] === \"native\";\n if (!filename && lineMatch[5] && !isNative) {\n filename = lineMatch[5];\n }\n const maybeDecodedFilename = filename ? _safeDecodeURI(filename) : void 0;\n return {\n filename: maybeDecodedFilename ?? filename,\n module: maybeDecodedFilename && getModule?.(maybeDecodedFilename),\n function: functionName,\n lineno: _parseIntOrUndefined(lineMatch[3]),\n colno: _parseIntOrUndefined(lineMatch[4]),\n in_app: filenameIsInApp(filename || \"\", isNative)\n };\n }\n if (line.match(FILENAME_MATCH)) {\n return {\n filename: line\n };\n }\n return void 0;\n };\n}\nfunction nodeStackLineParser(getModule) {\n return [90, node(getModule)];\n}\nfunction _parseIntOrUndefined(input) {\n return parseInt(input || \"\", 10) || void 0;\n}\nfunction _safeDecodeURI(filename) {\n try {\n return decodeURI(filename);\n } catch {\n return void 0;\n }\n}\n\nexport { filenameIsInApp, node, nodeStackLineParser };\n//# sourceMappingURL=node-stack-trace.js.map\n", + "const requestLayerStore = /* @__PURE__ */ new WeakMap();\nconst storeLayer = (req, layer) => {\n const store = requestLayerStore.get(req);\n if (!store) {\n requestLayerStore.set(req, [layer]);\n } else {\n store.push(layer);\n }\n};\nconst getStoredLayers = (req) => {\n let store = requestLayerStore.get(req);\n if (!store) {\n store = [];\n requestLayerStore.set(req, store);\n }\n return store;\n};\n\nexport { getStoredLayers, storeLayer };\n//# sourceMappingURL=request-layer-store.js.map\n", + "const ATTR_EXPRESS_NAME = \"express.name\";\nconst ATTR_HTTP_ROUTE = \"http.route\";\nconst ATTR_EXPRESS_TYPE = \"express.type\";\nconst ExpressLayerType_ROUTER = \"router\";\nconst ExpressLayerType_MIDDLEWARE = \"middleware\";\nconst ExpressLayerType_REQUEST_HANDLER = \"request_handler\";\n\nexport { ATTR_EXPRESS_NAME, ATTR_EXPRESS_TYPE, ATTR_HTTP_ROUTE, ExpressLayerType_MIDDLEWARE, ExpressLayerType_REQUEST_HANDLER, ExpressLayerType_ROUTER };\n//# sourceMappingURL=types.js.map\n", + "import { getStoredLayers } from './request-layer-store.js';\nimport { ExpressLayerType_ROUTER, ATTR_EXPRESS_TYPE, ATTR_EXPRESS_NAME, ExpressLayerType_REQUEST_HANDLER, ExpressLayerType_MIDDLEWARE } from './types.js';\nimport { stringMatchesSomePattern } from '../../utils/string.js';\n\nconst asErrorAndMessage = (error) => error instanceof Error ? [error, error.message] : [String(error), String(error)];\nfunction isRoutePattern(route) {\n return route.includes(\":\") || route.includes(\"*\");\n}\nconst getLayerMetadata = (route, layer, layerPath) => {\n if (layer.name === \"router\") {\n const maybeRouterPath = getRouterPath(\"\", layer);\n const extractedRouterPath = maybeRouterPath ? maybeRouterPath : layerPath || route || \"/\";\n return {\n attributes: {\n [ATTR_EXPRESS_NAME]: extractedRouterPath,\n [ATTR_EXPRESS_TYPE]: ExpressLayerType_ROUTER\n },\n name: `router - ${extractedRouterPath}`\n };\n } else if (layer.name === \"bound dispatch\" || layer.name === \"handle\") {\n return {\n attributes: {\n [ATTR_EXPRESS_NAME]: (route || layerPath) ?? \"request handler\",\n [ATTR_EXPRESS_TYPE]: ExpressLayerType_REQUEST_HANDLER\n },\n name: `request handler${layer.path ? ` - ${route || layerPath}` : \"\"}`\n };\n } else {\n return {\n attributes: {\n [ATTR_EXPRESS_NAME]: layer.name,\n [ATTR_EXPRESS_TYPE]: ExpressLayerType_MIDDLEWARE\n },\n name: `middleware - ${layer.name}`\n };\n }\n};\nconst getRouterPath = (path, layer) => {\n const stackLayer = Array.isArray(layer.handle?.stack) ? layer.handle?.stack?.[0] : void 0;\n if (stackLayer?.route?.path) {\n return `${path}${stackLayer.route.path}`;\n }\n if (stackLayer && Array.isArray(stackLayer?.handle?.stack)) {\n return getRouterPath(path, stackLayer);\n }\n return path;\n};\nconst isLayerIgnored = (name, type, config) => {\n if (Array.isArray(config?.ignoreLayersType) && config?.ignoreLayersType?.includes(type)) {\n return true;\n }\n if (!Array.isArray(config?.ignoreLayers)) {\n return false;\n }\n try {\n return stringMatchesSomePattern(name, config.ignoreLayers, true);\n } catch {\n }\n return false;\n};\nfunction getActualMatchedRoute(req, constructedRoute) {\n const layersStore = getStoredLayers(req);\n if (layersStore.length === 0) {\n return void 0;\n }\n if (layersStore.every((path) => path === \"/\")) {\n return req.originalUrl === \"/\" ? \"/\" : void 0;\n }\n if (constructedRoute === \"*\") {\n return constructedRoute;\n }\n if (constructedRoute.includes(\"/\") && (constructedRoute.includes(\",\") || constructedRoute.includes(\"\\\\\") || constructedRoute.includes(\"*\") || constructedRoute.includes(\"[\"))) {\n return constructedRoute;\n }\n const normalizedRoute = constructedRoute.startsWith(\"/\") ? constructedRoute : `/${constructedRoute}`;\n const isValidRoute = normalizedRoute.length > 0 && (req.originalUrl === normalizedRoute || req.originalUrl.startsWith(normalizedRoute) || isRoutePattern(normalizedRoute));\n return isValidRoute ? normalizedRoute : void 0;\n}\nfunction getConstructedRoute(req) {\n const layersStore = getStoredLayers(req);\n let constructedRoute = \"\";\n for (const path of layersStore) {\n if (path === \"/\" || path === \"/*\") {\n continue;\n }\n constructedRoute += !constructedRoute || constructedRoute.endsWith(\"/\") ? path : `/${path}`;\n }\n return constructedRoute.replace(/\\/{2,}/g, \"/\");\n}\nconst getLayerPath = (args) => {\n const firstArg = args[0];\n if (Array.isArray(firstArg)) {\n return firstArg.map((arg) => extractLayerPathSegment(arg) || \"\").join(\",\");\n }\n return extractLayerPathSegment(firstArg);\n};\nconst extractLayerPathSegment = (arg) => typeof arg === \"string\" ? arg : arg instanceof RegExp || typeof arg === \"number\" ? String(arg) : void 0;\nconst isExpressWithRouterPrototype = (express) => isExpressRouterPrototype(express?.Router?.prototype);\nconst isExpressRouterPrototype = (routerProto) => (typeof routerProto === \"object\" || typeof routerProto === \"function\") && !!routerProto && \"route\" in routerProto && typeof routerProto.route === \"function\";\nconst isExpressWithoutRouterPrototype = (express) => isExpressRouterPrototype(express.Router) && !isExpressWithRouterPrototype(express);\nfunction getStatusCodeFromResponse(error) {\n const statusCode = error.status || error.statusCode || error.status_code || error.output?.statusCode;\n return statusCode ? parseInt(statusCode, 10) : 500;\n}\nfunction defaultShouldHandleError(error) {\n const status = getStatusCodeFromResponse(error);\n return status >= 500;\n}\n\nexport { asErrorAndMessage, defaultShouldHandleError, getActualMatchedRoute, getConstructedRoute, getLayerMetadata, getLayerPath, getRouterPath, isExpressWithRouterPrototype, isExpressWithoutRouterPrototype, isLayerIgnored, isRoutePattern };\n//# sourceMappingURL=utils.js.map\n", + "import { getIsolationScope } from '../../currentScopes.js';\nimport { httpRequestToRequestData } from '../../utils/request.js';\n\nfunction setSDKProcessingMetadata(request) {\n const sdkProcMeta = getIsolationScope()?.getScopeData()?.sdkProcessingMetadata;\n if (!sdkProcMeta?.normalizedRequest) {\n const normalizedRequest = httpRequestToRequestData(request);\n getIsolationScope().setSDKProcessingMetadata({ normalizedRequest });\n }\n}\n\nexport { setSDKProcessingMetadata };\n//# sourceMappingURL=set-sdk-processing-metadata.js.map\n", + "import { DEBUG_BUILD } from '../../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { debug } from '../../utils/debug-logger.js';\nimport { getActiveSpan } from '../../utils/spanUtils.js';\nimport { SPAN_STATUS_ERROR } from '../../tracing/spanstatus.js';\nimport { getOriginalFunction, markFunctionWrapped } from '../../utils/object.js';\nimport { getIsolationScope } from '../../currentScopes.js';\nimport { startSpanManual, withActiveSpan } from '../../tracing/trace.js';\nimport { storeLayer, getStoredLayers } from './request-layer-store.js';\nimport { ATTR_EXPRESS_NAME, ATTR_EXPRESS_TYPE, ATTR_HTTP_ROUTE, ExpressLayerType_ROUTER } from './types.js';\nimport { getConstructedRoute, getActualMatchedRoute, getLayerMetadata, isLayerIgnored, asErrorAndMessage } from './utils.js';\nimport { getDefaultIsolationScope } from '../../defaultScopes.js';\nimport { setSDKProcessingMetadata } from './set-sdk-processing-metadata.js';\n\nfunction patchLayer(getOptions, maybeLayer, layerPath) {\n if (!maybeLayer?.handle) {\n return;\n }\n const layer = maybeLayer;\n const layerHandleOriginal = layer.handle;\n if (getOriginalFunction(layerHandleOriginal)) {\n return;\n }\n if (layerHandleOriginal.length === 4) {\n return;\n }\n function layerHandlePatched(req, res, ...otherArgs) {\n const options = getOptions();\n setSDKProcessingMetadata(req);\n const parentSpan = getActiveSpan();\n if (!parentSpan) {\n return layerHandleOriginal.apply(this, [req, res, ...otherArgs]);\n }\n if (layerPath) {\n storeLayer(req, layerPath);\n }\n const storedLayers = getStoredLayers(req);\n const isLayerPathStored = !!layerPath;\n const constructedRoute = getConstructedRoute(req);\n const actualMatchedRoute = getActualMatchedRoute(req, constructedRoute);\n options.onRouteResolved?.(actualMatchedRoute);\n const metadata = getLayerMetadata(constructedRoute, layer, layerPath);\n const name = metadata.attributes[ATTR_EXPRESS_NAME];\n const type = metadata.attributes[ATTR_EXPRESS_TYPE];\n const attributes = Object.assign(metadata.attributes, {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.express\",\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.express`\n });\n if (actualMatchedRoute) {\n attributes[ATTR_HTTP_ROUTE] = actualMatchedRoute;\n }\n if (isLayerIgnored(metadata.attributes[ATTR_EXPRESS_NAME], type, options)) {\n if (isLayerPathStored) {\n storedLayers.pop();\n }\n return layerHandleOriginal.apply(this, [req, res, ...otherArgs]);\n }\n const currentScope = getIsolationScope();\n if (currentScope !== getDefaultIsolationScope()) {\n if (type === \"request_handler\") {\n const method = req.method ? req.method.toUpperCase() : \"GET\";\n currentScope.setTransactionName(`${method} ${constructedRoute}`);\n }\n } else {\n DEBUG_BUILD && debug.warn(\"Isolation scope is still default isolation scope - skipping setting transactionName\");\n }\n return startSpanManual({ name, attributes }, (span) => {\n let spanHasEnded = false;\n if (metadata.attributes[ATTR_EXPRESS_TYPE] === ExpressLayerType_ROUTER) {\n span.end();\n spanHasEnded = true;\n }\n const onResponseFinish = () => {\n if (!spanHasEnded) {\n spanHasEnded = true;\n span.end();\n }\n };\n for (let i = 0; i < otherArgs.length; i++) {\n const callback = otherArgs[i];\n if (typeof callback !== \"function\") {\n continue;\n }\n otherArgs[i] = function(...args) {\n const maybeError = args[0];\n const isError = !!maybeError && maybeError !== \"route\" && maybeError !== \"router\";\n if (!spanHasEnded && isError) {\n const [_, message] = asErrorAndMessage(maybeError);\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message\n });\n }\n if (!spanHasEnded) {\n spanHasEnded = true;\n res.removeListener(\"finish\", onResponseFinish);\n span.end();\n }\n if (!(req.route && isError) && isLayerPathStored) {\n storedLayers.pop();\n }\n return withActiveSpan(parentSpan, () => callback.apply(this, args));\n };\n break;\n }\n try {\n return layerHandleOriginal.apply(this, [req, res, ...otherArgs]);\n } catch (anyError) {\n const [_, message] = asErrorAndMessage(anyError);\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message\n });\n throw anyError;\n } finally {\n if (!spanHasEnded) {\n res.once(\"finish\", onResponseFinish);\n }\n }\n });\n }\n for (const key in layerHandleOriginal) {\n if (key in layerHandlePatched) {\n continue;\n }\n Object.defineProperty(layerHandlePatched, key, {\n get() {\n return layerHandleOriginal[key];\n },\n set(value) {\n layerHandleOriginal[key] = value;\n }\n });\n }\n markFunctionWrapped(layerHandlePatched, layerHandleOriginal);\n Object.defineProperty(layer, \"handle\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: layerHandlePatched\n });\n}\n\nexport { patchLayer };\n//# sourceMappingURL=patch-layer.js.map\n", + "function getDefaultExport(moduleExport) {\n return !!moduleExport && typeof moduleExport === \"object\" && \"default\" in moduleExport && moduleExport.default || moduleExport;\n}\n\nexport { getDefaultExport };\n//# sourceMappingURL=get-default-export.js.map\n", + "import { debug } from '../../utils/debug-logger.js';\nimport { captureException } from '../../exports.js';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { defaultShouldHandleError, isExpressWithRouterPrototype, isExpressWithoutRouterPrototype, getLayerPath } from './utils.js';\nimport { wrapMethod } from '../../utils/object.js';\nimport { patchLayer } from './patch-layer.js';\nimport { setSDKProcessingMetadata } from './set-sdk-processing-metadata.js';\nimport { getDefaultExport } from '../../utils/get-default-export.js';\n\nfunction isLegacyOptions(options) {\n return !!options.express;\n}\nlet didLegacyDeprecationWarning = false;\nfunction deprecationWarning() {\n if (!didLegacyDeprecationWarning) {\n didLegacyDeprecationWarning = true;\n DEBUG_BUILD && debug.warn(\n \"[Express] `patchExpressModule(options)` is deprecated. Use `patchExpressModule(moduleExports, getOptions)` instead.\"\n );\n }\n}\nfunction patchExpressModule(optionsOrExports, maybeGetOptions) {\n let getOptions;\n let moduleExports;\n if (!maybeGetOptions && isLegacyOptions(optionsOrExports)) {\n const { express: express2, ...options } = optionsOrExports;\n moduleExports = express2;\n getOptions = () => options;\n deprecationWarning();\n } else if (typeof maybeGetOptions !== \"function\") {\n throw new TypeError(\"`patchExpressModule(moduleExports, getOptions)` requires a `getOptions` callback\");\n } else {\n getOptions = maybeGetOptions;\n moduleExports = optionsOrExports;\n }\n const express = getDefaultExport(moduleExports);\n const routerProto = isExpressWithRouterPrototype(express) ? express.Router.prototype : isExpressWithoutRouterPrototype(express) ? express.Router : void 0;\n if (!routerProto) {\n throw new TypeError(\"no valid Express route function to instrument\");\n }\n const originalRouteMethod = routerProto.route;\n try {\n wrapMethod(\n routerProto,\n \"route\",\n function routeTrace(...args) {\n const route = originalRouteMethod.apply(this, args);\n const layer = this.stack[this.stack.length - 1];\n patchLayer(getOptions, layer, getLayerPath(args));\n return route;\n }\n );\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Failed to patch express route method:\", e);\n }\n const originalRouterUse = routerProto.use;\n try {\n wrapMethod(\n routerProto,\n \"use\",\n function useTrace(...args) {\n const route = originalRouterUse.apply(this, args);\n const layer = this.stack[this.stack.length - 1];\n if (!layer) {\n return route;\n }\n patchLayer(getOptions, layer, getLayerPath(args));\n return route;\n }\n );\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Failed to patch express use method:\", e);\n }\n const { application } = express;\n const originalApplicationUse = application.use;\n try {\n wrapMethod(\n application,\n \"use\",\n function appUseTrace(...args) {\n const route = originalApplicationUse.apply(this, args);\n const router = isExpressWithRouterPrototype(express) ? this.router : this._router;\n if (router) {\n const layer = router.stack[router.stack.length - 1];\n if (layer) {\n patchLayer(getOptions, layer, getLayerPath(args));\n }\n }\n return route;\n }\n );\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Failed to patch express application.use method:\", e);\n }\n return express;\n}\nfunction expressErrorHandler(options) {\n return function sentryErrorMiddleware(error, request, res, next) {\n setSDKProcessingMetadata(request);\n const shouldHandleError = options?.shouldHandleError || defaultShouldHandleError;\n if (shouldHandleError(error)) {\n const eventId = captureException(error, {\n mechanism: { type: \"auto.middleware.express\", handled: false }\n });\n res.sentry = eventId;\n }\n next(error);\n };\n}\nfunction setupExpressErrorHandler(app, options) {\n app.use(expressRequestHandler());\n app.use(expressErrorHandler(options));\n}\nfunction expressRequestHandler() {\n return function sentryRequestMiddleware(request, _res, next) {\n setSDKProcessingMetadata(request);\n next();\n };\n}\n\nexport { expressErrorHandler, patchExpressModule, setupExpressErrorHandler };\n//# sourceMappingURL=index.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getActiveSpan } from '../utils/spanUtils.js';\nimport { SPAN_STATUS_ERROR } from '../tracing/spanstatus.js';\nimport { startSpanManual } from '../tracing/trace.js';\n\nconst SQL_OPERATION_REGEX = /^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i;\nconst CONNECTION_CONTEXT_SYMBOL = /* @__PURE__ */ Symbol(\"sentryPostgresConnectionContext\");\nconst INSTRUMENTED_MARKER = /* @__PURE__ */ Symbol.for(\"sentry.instrumented.postgresjs\");\nconst QUERY_FROM_INSTRUMENTED_SQL = /* @__PURE__ */ Symbol.for(\"sentry.query.from.instrumented.sql\");\nfunction instrumentPostgresJsSql(sql, options) {\n if (!sql || typeof sql !== \"function\") {\n DEBUG_BUILD && debug.warn(\"instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance\");\n return sql;\n }\n return _instrumentSqlInstance(sql, { requireParentSpan: true, ...options });\n}\nfunction _instrumentSqlInstance(sql, options, parentConnectionContext) {\n if (sql[INSTRUMENTED_MARKER]) {\n return sql;\n }\n const proxiedSql = new Proxy(sql, {\n apply(target, thisArg, argumentsList) {\n const query = Reflect.apply(target, thisArg, argumentsList);\n if (query && typeof query === \"object\" && \"handle\" in query) {\n _wrapSingleQueryHandle(query, proxiedSql, options);\n }\n return query;\n },\n get(target, prop) {\n const original = target[prop];\n if (typeof prop !== \"string\" || typeof original !== \"function\") {\n return original;\n }\n if (prop === \"unsafe\" || prop === \"file\") {\n return _wrapQueryMethod(original, target, proxiedSql, options);\n }\n if (prop === \"begin\" || prop === \"reserve\") {\n return _wrapCallbackMethod(original, target, proxiedSql, options);\n }\n return original;\n }\n });\n if (parentConnectionContext) {\n proxiedSql[CONNECTION_CONTEXT_SYMBOL] = parentConnectionContext;\n } else {\n _attachConnectionContext(sql, proxiedSql);\n }\n sql[INSTRUMENTED_MARKER] = true;\n proxiedSql[INSTRUMENTED_MARKER] = true;\n return proxiedSql;\n}\nfunction _wrapQueryMethod(original, target, proxiedSql, options) {\n return function(...args) {\n const query = Reflect.apply(original, target, args);\n if (query && typeof query === \"object\" && \"handle\" in query) {\n _wrapSingleQueryHandle(query, proxiedSql, options);\n }\n return query;\n };\n}\nfunction _wrapCallbackMethod(original, target, parentSqlInstance, options) {\n return function(...args) {\n const parentContext = parentSqlInstance[CONNECTION_CONTEXT_SYMBOL];\n const isCallbackBased = typeof args[args.length - 1] === \"function\";\n if (!isCallbackBased) {\n const result = Reflect.apply(original, target, args);\n if (result && typeof result.then === \"function\") {\n return result.then((sqlInstance) => {\n return _instrumentSqlInstance(sqlInstance, options, parentContext);\n });\n }\n return result;\n }\n const callback = args.length === 1 ? args[0] : args[1];\n const wrappedCallback = function(sqlInstance) {\n const instrumentedSql = _instrumentSqlInstance(sqlInstance, options, parentContext);\n return callback(instrumentedSql);\n };\n const newArgs = args.length === 1 ? [wrappedCallback] : [args[0], wrappedCallback];\n return Reflect.apply(original, target, newArgs);\n };\n}\nfunction _wrapSingleQueryHandle(query, sqlInstance, options) {\n if (query.handle?.__sentryWrapped) {\n return;\n }\n query[QUERY_FROM_INSTRUMENTED_SQL] = true;\n const originalHandle = query.handle;\n const wrappedHandle = async function(...args) {\n if (this.executed || !_shouldCreateSpans(options)) {\n return originalHandle.apply(this, args);\n }\n const fullQuery = _reconstructQuery(query.strings);\n const sanitizedSqlQuery = _sanitizeSqlQuery(fullQuery);\n return startSpanManual(\n {\n name: sanitizedSqlQuery || \"postgresjs.query\",\n op: \"db\"\n },\n (span) => {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, \"auto.db.postgresjs\");\n span.setAttributes({\n \"db.system.name\": \"postgres\",\n \"db.query.text\": sanitizedSqlQuery\n });\n const connectionContext = sqlInstance ? sqlInstance[CONNECTION_CONTEXT_SYMBOL] : void 0;\n _setConnectionAttributes(span, connectionContext);\n if (options.requestHook) {\n try {\n options.requestHook(span, sanitizedSqlQuery, connectionContext);\n } catch (e) {\n span.setAttribute(\"sentry.hook.error\", \"requestHook failed\");\n DEBUG_BUILD && debug.error(\"Error in requestHook for PostgresJs instrumentation:\", e);\n }\n }\n const queryWithCallbacks = this;\n queryWithCallbacks.resolve = new Proxy(queryWithCallbacks.resolve, {\n apply: (resolveTarget, resolveThisArg, resolveArgs) => {\n try {\n _setOperationName(span, sanitizedSqlQuery, resolveArgs?.[0]?.command);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Error ending span in resolve callback:\", e);\n }\n return Reflect.apply(resolveTarget, resolveThisArg, resolveArgs);\n }\n });\n queryWithCallbacks.reject = new Proxy(queryWithCallbacks.reject, {\n apply: (rejectTarget, rejectThisArg, rejectArgs) => {\n try {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: rejectArgs?.[0]?.message || \"unknown_error\"\n });\n span.setAttribute(\"db.response.status_code\", rejectArgs?.[0]?.code || \"unknown\");\n span.setAttribute(\"error.type\", rejectArgs?.[0]?.name || \"unknown\");\n _setOperationName(span, sanitizedSqlQuery);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Error ending span in reject callback:\", e);\n }\n return Reflect.apply(rejectTarget, rejectThisArg, rejectArgs);\n }\n });\n try {\n return originalHandle.apply(this, args);\n } catch (e) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: e instanceof Error ? e.message : \"unknown_error\"\n });\n span.end();\n throw e;\n }\n }\n );\n };\n wrappedHandle.__sentryWrapped = true;\n query.handle = wrappedHandle;\n}\nfunction _shouldCreateSpans(options) {\n const hasParentSpan = getActiveSpan() !== void 0;\n return hasParentSpan || !options.requireParentSpan;\n}\nfunction _reconstructQuery(strings) {\n if (!strings?.length) {\n return void 0;\n }\n if (strings.length === 1) {\n return strings[0] || void 0;\n }\n return strings.reduce((acc, str, i) => i === 0 ? str : `${acc}$${i}${str}`, \"\");\n}\nlet integerLiteralRE;\nfunction _sanitizeSqlQuery(sqlQuery) {\n if (!sqlQuery) {\n return \"Unknown SQL Query\";\n }\n if (!integerLiteralRE) {\n integerLiteralRE = new RegExp(\"(?= 0 ? encoding && encoding !== \"identity\" ? { \"http.response_content_length\": length } : { \"http.response_content_length_uncompressed\": length } : {};\n}\n\nexport { getOutgoingRequestSpanData, setIncomingResponseSpanData };\n//# sourceMappingURL=get-outgoing-span-data.js.map\n", + "import { getClient } from '../../currentScopes.js';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { debug } from '../../utils/debug-logger.js';\nimport { isError } from '../../utils/is.js';\nimport { getTraceData } from '../../utils/traceData.js';\nimport { shouldPropagateTraceForUrl } from '../../utils/tracePropagationTargets.js';\nimport { LOG_PREFIX } from './constants.js';\nimport { getRequestUrlFromClientRequest } from './get-request-url.js';\nimport { mergeBaggageHeaders } from '../../utils/baggage.js';\n\nfunction injectTracePropagationHeaders(request, propagationDecisionMap) {\n const url = getRequestUrlFromClientRequest(request);\n const clientOptions = getClient()?.getOptions();\n const { tracePropagationTargets, propagateTraceparent } = clientOptions ?? {};\n if (!shouldPropagateTraceForUrl(url, tracePropagationTargets, propagationDecisionMap)) {\n return;\n }\n const hasExistingSentryTraceHeader = !!request.getHeader(\"sentry-trace\");\n if (hasExistingSentryTraceHeader) {\n return;\n }\n const traceData = getTraceData({ propagateTraceparent });\n if (!traceData) return;\n const { \"sentry-trace\": sentryTrace, baggage, traceparent } = traceData;\n if (sentryTrace) {\n try {\n request.setHeader(\"sentry-trace\", sentryTrace);\n DEBUG_BUILD && debug.log(LOG_PREFIX, \"Added sentry-trace header\");\n } catch (e) {\n DEBUG_BUILD && debug.error(LOG_PREFIX, \"Failed to set sentry-trace header:\", isError(e) ? e.message : \"Unknown error\");\n }\n }\n if (traceparent && !request.getHeader(\"traceparent\")) {\n try {\n request.setHeader(\"traceparent\", traceparent);\n DEBUG_BUILD && debug.log(LOG_PREFIX, \"Added traceparent header\");\n } catch (e) {\n DEBUG_BUILD && debug.error(LOG_PREFIX, \"Failed to set traceparent header:\", isError(e) ? e.message : \"Unknown error\");\n }\n }\n if (baggage) {\n const merged = mergeBaggageHeaders(request.getHeader(\"baggage\"), baggage);\n if (merged) {\n try {\n request.setHeader(\"baggage\", merged);\n DEBUG_BUILD && debug.log(LOG_PREFIX, \"Added baggage header\");\n } catch (e) {\n DEBUG_BUILD && debug.error(LOG_PREFIX, \"Failed to set baggage header:\", isError(e) ? e.message : \"Unknown error\");\n }\n }\n }\n}\n\nexport { injectTracePropagationHeaders };\n//# sourceMappingURL=inject-trace-propagation-headers.js.map\n", + "import { DEBUG_BUILD } from '../../debug-build.js';\nimport { debug } from '../../utils/debug-logger.js';\n\nconst isOtelWrapped = (fn) => typeof fn.__unwrap === \"function\";\nconst warning = \"Double-wrapped http.client detected. Either disable spans in Sentry.httpIntegration, or disable the OpenTelemetry HTTP instrumentation. See: https://docs.sentry.io/platforms/javascript/guides/express/opentelemetry/custom-setup/#custom-http-instrumentation\";\nlet didDoubleWrapWarning = false;\nconst doubleWrapWarning = DEBUG_BUILD ? (http) => {\n if (!didDoubleWrapWarning) {\n if (isOtelWrapped(http.request) || isOtelWrapped(http.get)) {\n didDoubleWrapWarning = true;\n debug.warn(warning);\n }\n }\n} : () => {\n};\n\nexport { doubleWrapWarning, warning };\n//# sourceMappingURL=double-wrap-warning.js.map\n", + "import { addOutgoingRequestBreadcrumb } from './add-outgoing-request-breadcrumb.js';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { debug } from '../../utils/debug-logger.js';\nimport { getCurrentScope, getClient } from '../../currentScopes.js';\nimport { getSpanStatusFromHttpCode, SPAN_STATUS_ERROR, SPAN_STATUS_UNSET } from '../../tracing/spanstatus.js';\nimport { hasSpansEnabled } from '../../utils/hasSpansEnabled.js';\nimport { SUPPRESS_TRACING_KEY, startInactiveSpan, withActiveSpan } from '../../tracing/trace.js';\nimport { LRUMap } from '../../utils/lru.js';\nimport { getOutgoingRequestSpanData, setIncomingResponseSpanData } from './get-outgoing-span-data.js';\nimport { getRequestUrlFromClientRequest } from './get-request-url.js';\nimport { injectTracePropagationHeaders } from './inject-trace-propagation-headers.js';\nimport { HTTP_ON_CLIENT_REQUEST, LOG_PREFIX } from './constants.js';\nimport { doubleWrapWarning } from './double-wrap-warning.js';\n\nfunction getHttpClientSubscriptions(options) {\n const propagationDecisionMap = new LRUMap(100);\n const getConfig = () => getClient()?.getOptions();\n const onHttpClientRequestCreated = (data) => {\n if (getCurrentScope().getScopeData().sdkProcessingMetadata[SUPPRESS_TRACING_KEY] === true) {\n return;\n }\n const clientOptions = getConfig();\n const {\n errorMonitor = \"error\",\n spans: createSpans = clientOptions ? hasSpansEnabled(clientOptions) : true,\n propagateTrace = false,\n breadcrumbs = true,\n http,\n https,\n suppressOtelWarning = false\n } = options;\n const { request } = data;\n if (options.ignoreOutgoingRequests?.(getRequestUrlFromClientRequest(request), request)) {\n return;\n }\n let addedBreadcrumbs = false;\n function addBreadcrumbs(request2, response) {\n if (!addedBreadcrumbs) {\n addedBreadcrumbs = true;\n addOutgoingRequestBreadcrumb(request2, response);\n }\n }\n function breadcrumbsOnly(request2) {\n request2.on(errorMonitor, () => addBreadcrumbs(request2, void 0));\n request2.prependListener(\"response\", (response) => {\n if (request2.listenerCount(\"response\") <= 1) {\n response.resume();\n }\n response.on(\"end\", () => addBreadcrumbs(request2, response));\n response.on(errorMonitor, () => addBreadcrumbs(request2, response));\n });\n }\n if (!createSpans) {\n if (breadcrumbs) {\n breadcrumbsOnly(request);\n }\n if (propagateTrace) {\n injectTracePropagationHeaders(request, propagationDecisionMap);\n }\n return;\n }\n if (!suppressOtelWarning) {\n if (http) doubleWrapWarning(http);\n if (https) doubleWrapWarning(https);\n }\n const span = startInactiveSpan(getOutgoingRequestSpanData(request));\n options.outgoingRequestHook?.(span, request);\n if (propagateTrace) {\n if (span.isRecording()) {\n withActiveSpan(span, () => {\n injectTracePropagationHeaders(request, propagationDecisionMap);\n });\n } else {\n injectTracePropagationHeaders(request, propagationDecisionMap);\n }\n }\n let spanEnded = false;\n function endSpan(status) {\n if (!spanEnded) {\n spanEnded = true;\n span.setStatus(status);\n span.end();\n }\n }\n const requestOnClose = () => endSpan({ code: SPAN_STATUS_UNSET });\n request.on(\"close\", requestOnClose);\n request.on(errorMonitor, (error) => {\n DEBUG_BUILD && debug.log(LOG_PREFIX, \"outgoingRequest on request error()\", error);\n if (breadcrumbs) {\n addBreadcrumbs(request, void 0);\n }\n endSpan({ code: SPAN_STATUS_ERROR });\n });\n request.prependListener(\"response\", (response) => {\n request.removeListener(\"close\", requestOnClose);\n if (request.listenerCount(\"response\") <= 1) {\n response.resume();\n }\n setIncomingResponseSpanData(response, span);\n options.outgoingResponseHook?.(span, response);\n let finished = false;\n function finishWithResponse(error) {\n if (!finished) {\n finished = true;\n if (error) {\n DEBUG_BUILD && debug.log(LOG_PREFIX, \"outgoingRequest on response error()\", error);\n }\n if (breadcrumbs) {\n addBreadcrumbs(request, response);\n }\n const aborted = response.aborted && !response.complete;\n const status = error || typeof response.statusCode !== \"number\" || aborted ? { code: SPAN_STATUS_ERROR } : getSpanStatusFromHttpCode(response.statusCode);\n options.applyCustomAttributesOnSpan?.(span, request, response);\n endSpan(status);\n }\n }\n response.on(\"end\", () => finishWithResponse());\n response.on(errorMonitor, finishWithResponse);\n });\n };\n return {\n [HTTP_ON_CLIENT_REQUEST]: onHttpClientRequestCreated\n };\n}\n\nexport { getHttpClientSubscriptions };\n//# sourceMappingURL=client-subscriptions.js.map\n", + "import { getDefaultExport } from '../../utils/get-default-export.js';\nimport { HTTP_ON_CLIENT_REQUEST } from './constants.js';\nimport { getOriginalFunction, wrapMethod } from '../../utils/object.js';\nimport { getHttpClientSubscriptions } from './client-subscriptions.js';\n\nfunction patchHttpRequest(httpModule, options) {\n if (!getOriginalFunction(httpModule.request)) {\n const { [HTTP_ON_CLIENT_REQUEST]: onHttpClientRequestCreated } = getHttpClientSubscriptions({\n ...options,\n http: httpModule\n });\n const originalRequest = httpModule.request;\n wrapMethod(httpModule, \"request\", function patchedRequest(...args) {\n const request = originalRequest.apply(this, args);\n onHttpClientRequestCreated({ request }, HTTP_ON_CLIENT_REQUEST);\n return request;\n });\n }\n}\nfunction patchHttpGet(httpModule) {\n if (!getOriginalFunction(httpModule.get)) {\n wrapMethod(httpModule, \"get\", function patchedGet(input, options, cb) {\n const request = httpModule.request.call(this, input, options, cb);\n request.end();\n return request;\n });\n }\n}\nfunction patchModule(httpModuleExport, options = {}) {\n const httpDefault = getDefaultExport(httpModuleExport);\n const httpModule = httpModuleExport;\n if (httpDefault !== httpModuleExport) {\n patchModule(httpDefault, options);\n for (const method of [\"get\", \"request\"]) {\n const desc = Object.getOwnPropertyDescriptor(httpDefault, method);\n if (desc) {\n Object.defineProperty(httpModule, method, desc);\n }\n }\n return httpModule;\n }\n patchHttpRequest(httpModule, options);\n patchHttpGet(httpModule);\n return httpModuleExport;\n}\nconst patchHttpModuleClient = (httpModuleExport, options = {}) => patchModule(httpModuleExport, options);\n\nexport { patchHttpModuleClient };\n//# sourceMappingURL=client-patch.js.map\n", + "import { debug } from '../../utils/debug-logger.js';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { getMaxBodyByteLength } from '../../utils/request.js';\n\nfunction patchRequestToCaptureBody(req, isolationScope, maxIncomingRequestBodySize, integrationName) {\n let bodyByteLength = 0;\n const chunks = [];\n DEBUG_BUILD && debug.log(integrationName, \"Patching request.on\");\n const callbackMap = /* @__PURE__ */ new WeakMap();\n const maxBodySize = getMaxBodyByteLength(maxIncomingRequestBodySize);\n try {\n req.on = req.addListener = new Proxy(req.on, {\n apply: (target, thisArg, args) => {\n const [event, listener, ...restArgs] = args;\n if (event === \"data\") {\n DEBUG_BUILD && debug.log(integrationName, `Handling request.on(\"data\") with maximum body size of ${maxBodySize}b`);\n const callback = new Proxy(listener, {\n apply: (target2, thisArg2, args2) => {\n try {\n const chunk = args2[0];\n const bufferifiedChunk = Buffer.from(chunk);\n if (bodyByteLength < maxBodySize) {\n chunks.push(bufferifiedChunk);\n bodyByteLength += bufferifiedChunk.byteLength;\n } else if (DEBUG_BUILD) {\n debug.log(\n integrationName,\n `Dropping request body chunk because maximum body length of ${maxBodySize}b is exceeded.`\n );\n }\n } catch (_err) {\n DEBUG_BUILD && debug.error(integrationName, \"Encountered error while storing body chunk.\");\n }\n return Reflect.apply(target2, thisArg2, args2);\n }\n });\n callbackMap.set(listener, callback);\n return Reflect.apply(target, thisArg, [event, callback, ...restArgs]);\n }\n return Reflect.apply(target, thisArg, args);\n }\n });\n req.off = req.removeListener = new Proxy(req.off, {\n apply: (target, thisArg, args) => {\n const [, listener] = args;\n const callback = callbackMap.get(listener);\n if (callback) {\n callbackMap.delete(listener);\n const modifiedArgs = args.slice();\n modifiedArgs[1] = callback;\n return Reflect.apply(target, thisArg, modifiedArgs);\n }\n return Reflect.apply(target, thisArg, args);\n }\n });\n req.on(\"end\", () => {\n try {\n const body = Buffer.concat(chunks).toString(\"utf-8\");\n if (body) {\n const bodyByteLength2 = Buffer.byteLength(body, \"utf-8\");\n const truncatedBody = bodyByteLength2 > maxBodySize ? `${Buffer.from(body).subarray(0, maxBodySize - 3).toString(\"utf-8\")}...` : body;\n isolationScope.setSDKProcessingMetadata({ normalizedRequest: { data: truncatedBody } });\n }\n } catch (error) {\n if (DEBUG_BUILD) {\n debug.error(integrationName, \"Error building captured request body\", error);\n }\n }\n });\n } catch (error) {\n if (DEBUG_BUILD) {\n debug.error(integrationName, \"Error patching request to capture body\", error);\n }\n }\n}\n\nexport { patchRequestToCaptureBody };\n//# sourceMappingURL=patch-request-to-capture-body.js.map\n", + "import { debug } from '../../utils/debug-logger.js';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { safeDateNow } from '../../utils/randomSafeContext.js';\nimport { safeUnref } from '../../utils/timer.js';\n\nconst clientToRequestSessionAggregatesMap = /* @__PURE__ */ new WeakMap();\nfunction recordRequestSession(client, {\n requestIsolationScope,\n response,\n sessionFlushingDelayMS\n}) {\n requestIsolationScope.setSDKProcessingMetadata({\n requestSession: { status: \"ok\" }\n });\n response.once(\"close\", () => {\n const requestSession = requestIsolationScope.getScopeData().sdkProcessingMetadata.requestSession;\n if (client && requestSession) {\n DEBUG_BUILD && debug.log(`Recorded request session with status: ${requestSession.status}`);\n const roundedDate = new Date(safeDateNow());\n roundedDate.setSeconds(0, 0);\n const dateBucketKey = roundedDate.toISOString();\n const existingClientAggregate = clientToRequestSessionAggregatesMap.get(client);\n const bucket = existingClientAggregate?.[dateBucketKey] || { exited: 0, crashed: 0, errored: 0 };\n bucket[{ ok: \"exited\", crashed: \"crashed\", errored: \"errored\" }[requestSession.status]]++;\n if (existingClientAggregate) {\n existingClientAggregate[dateBucketKey] = bucket;\n } else {\n DEBUG_BUILD && debug.log(\"Opened new request session aggregate.\");\n const newClientAggregate = { [dateBucketKey]: bucket };\n clientToRequestSessionAggregatesMap.set(client, newClientAggregate);\n const flushPendingClientAggregates = () => {\n clearTimeout(timeout);\n unregisterClientFlushHook();\n clientToRequestSessionAggregatesMap.delete(client);\n const aggregatePayload = Object.entries(newClientAggregate).map(\n ([timestamp, value]) => ({\n started: timestamp,\n exited: value.exited,\n errored: value.errored,\n crashed: value.crashed\n })\n );\n client.sendSession({ aggregates: aggregatePayload });\n };\n const unregisterClientFlushHook = client.on(\"flush\", () => {\n DEBUG_BUILD && debug.log(\"Sending request session aggregate due to client flush\");\n flushPendingClientAggregates();\n });\n const timeout = setTimeout(() => {\n DEBUG_BUILD && debug.log(\"Sending request session aggregate due to flushing schedule\");\n flushPendingClientAggregates();\n }, sessionFlushingDelayMS);\n safeUnref(timeout);\n }\n }\n });\n}\n\nexport { recordRequestSession };\n//# sourceMappingURL=record-request-session.js.map\n", + "import { HTTP_ON_SERVER_REQUEST } from './constants.js';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { debug } from '../../utils/debug-logger.js';\nimport { getIsolationScope, getClient, withIsolationScope, getCurrentScope } from '../../currentScopes.js';\nimport { hasSpansEnabled } from '../../utils/hasSpansEnabled.js';\nimport { httpHeadersToSpanAttributes, headersToDict, httpRequestToRequestData } from '../../utils/request.js';\nimport { patchRequestToCaptureBody } from './patch-request-to-capture-body.js';\nimport { stripUrlQueryAndFragment, parseStringToURLObject } from '../../utils/url.js';\nimport { recordRequestSession } from './record-request-session.js';\nimport { generateSpanId, generateTraceId } from '../../utils/propagationContext.js';\nimport { startSpanManual, continueTrace } from '../../tracing/trace.js';\nimport { safeMathRandom } from '../../utils/randomSafeContext.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP } from '../../semanticAttributes.js';\nimport { getSpanStatusFromHttpCode, SPAN_STATUS_ERROR } from '../../tracing/spanstatus.js';\nimport { SPAN_KIND } from '../../spanKind.js';\n\nconst INTEGRATION_NAME = \"Http.Server\";\nconst SPANS_INTEGRATION_NAME = \"Http.SentryServerSpans\";\nconst lastSentryEmitMap = /* @__PURE__ */ new WeakMap();\nconst kRequestMark = /* @__PURE__ */ Symbol.for(\"sentry_http_server_instrumented\");\nfunction markRequest(request) {\n return !request[kRequestMark] && (request[kRequestMark] = true);\n}\nfunction instrumentServer(options, server) {\n const currentEmit = server.emit;\n const instrumentedEmit = lastSentryEmitMap.get(server);\n if (currentEmit === instrumentedEmit) {\n return;\n }\n const newEmit = new Proxy(currentEmit, {\n apply(target, thisArg, args) {\n const [event, ...data] = args;\n if (event !== \"request\") {\n return target.apply(thisArg, args);\n }\n const client = getClient();\n const [request, response] = data;\n if (!client || !markRequest(request)) {\n return target.apply(thisArg, args);\n }\n DEBUG_BUILD && debug.log(INTEGRATION_NAME, \"Handling incoming request\");\n const isolationScope = getIsolationScope().clone();\n isolationScope.setClient(client);\n const ipAddress = request.socket?.remoteAddress;\n const url = request.url || \"/\";\n const normalizedRequest = httpRequestToRequestData(request);\n const {\n maxRequestBodySize = \"medium\",\n ignoreRequestBody,\n sessions = true,\n sessionFlushingDelayMS = 6e4\n } = options;\n if (maxRequestBodySize !== \"none\" && !ignoreRequestBody?.(url, request)) {\n patchRequestToCaptureBody(request, isolationScope, maxRequestBodySize, INTEGRATION_NAME);\n }\n isolationScope.setSDKProcessingMetadata({ normalizedRequest, ipAddress });\n const httpMethod = (request.method || \"GET\").toUpperCase();\n const httpTargetWithoutQueryFragment = stripUrlQueryAndFragment(url);\n const bestEffortTransactionName = `${httpMethod} ${httpTargetWithoutQueryFragment}`;\n isolationScope.setTransactionName(bestEffortTransactionName);\n if (sessions) {\n recordRequestSession(client, {\n requestIsolationScope: isolationScope,\n response,\n sessionFlushingDelayMS: sessionFlushingDelayMS ?? 6e4\n });\n }\n return withIsolationScope(isolationScope, () => {\n const sentryTrace = normalizedRequest.headers?.[\"sentry-trace\"];\n const baggage = normalizedRequest.headers?.[\"baggage\"];\n const sentryTraceValue = Array.isArray(sentryTrace) ? sentryTrace[0] : sentryTrace;\n return continueTrace(\n {\n sentryTrace: sentryTraceValue,\n baggage: Array.isArray(baggage) ? baggage[0] : baggage\n },\n () => {\n const propagationContext = getCurrentScope().getPropagationContext();\n propagationContext.propagationSpanId = generateSpanId();\n if (!sentryTraceValue) {\n propagationContext.traceId = generateTraceId();\n propagationContext.sampleRand = safeMathRandom();\n }\n response.once(\"close\", () => {\n isolationScope.setContext(\"response\", {\n status_code: response.statusCode\n });\n });\n const wrap = options.wrapServerEmitRequest;\n let emitResult = false;\n if (wrap) {\n wrap(request, response, normalizedRequest, () => {\n emitResult = target.apply(thisArg, args);\n });\n } else {\n emitResult = target.apply(thisArg, args);\n }\n return emitResult;\n }\n );\n });\n }\n });\n lastSentryEmitMap.set(server, newEmit);\n server.emit = newEmit;\n}\nfunction getHttpServerSubscriptions(options) {\n const userWrap = options.wrapServerEmitRequest;\n const spanWrap = buildServerSpanWrap(options);\n const effectiveOptions = {\n ...options,\n wrapServerEmitRequest(request, response, normalizedRequest, next) {\n const clientOptions = getClient()?.getOptions();\n const createSpans = options.spans ?? (clientOptions ? hasSpansEnabled(clientOptions) : false);\n if (createSpans) {\n spanWrap(request, response, normalizedRequest, next);\n } else if (userWrap) {\n userWrap(request, response, normalizedRequest, next);\n } else {\n next();\n }\n }\n };\n const onHttpServerRequest = (data) => {\n const { server } = data;\n instrumentServer(effectiveOptions, server);\n };\n return { [HTTP_ON_SERVER_REQUEST]: onHttpServerRequest };\n}\nfunction buildServerSpanWrap(options) {\n const {\n wrapServerEmitRequest: userWrap,\n ignoreIncomingRequests,\n ignoreStaticAssets = true,\n onSpanCreated,\n errorMonitor = \"error\",\n onSpanEnd\n } = options;\n return (request, response, normalizedRequest, next) => {\n if (typeof __SENTRY_TRACING__ !== \"undefined\" && !__SENTRY_TRACING__) {\n return next();\n }\n return userWrap ? userWrap(request, response, normalizedRequest, createSpan) : createSpan();\n function createSpan() {\n const isolationScope = getIsolationScope();\n const client = isolationScope.getClient();\n if (!client) {\n return next();\n }\n if (shouldIgnoreSpansForIncomingRequest(request, {\n ignoreStaticAssets,\n ignoreIncomingRequests\n })) {\n DEBUG_BUILD && debug.log(SPANS_INTEGRATION_NAME, \"Skipping span creation for incoming request\", request.url);\n return next();\n }\n const fullUrl = normalizedRequest.url || request.url || \"/\";\n const urlObj = parseStringToURLObject(fullUrl);\n const httpTargetWithoutQueryFragment = urlObj ? urlObj.pathname : stripUrlQueryAndFragment(fullUrl);\n const method = (request.method || \"GET\").toUpperCase();\n const name = `${method} ${httpTargetWithoutQueryFragment}`;\n const headers = request.headers;\n const userAgent = headers[\"user-agent\"];\n const ips = headers[\"x-forwarded-for\"];\n const httpVersion = request.httpVersion;\n const host = headers.host;\n const hostname = host?.replace(/^(.*)(:[0-9]{1,5})/, \"$1\") || \"localhost\";\n const scheme = fullUrl.startsWith(\"https\") ? \"https\" : \"http\";\n const { socket } = request;\n const { localAddress, localPort, remoteAddress, remotePort } = socket ?? {};\n return startSpanManual(\n {\n name,\n // Pass SERVER so the OTel sampler infers op='http.server' rather than\n // 'http', which it does for the INTERNAL default.\n kind: SPAN_KIND.SERVER,\n attributes: {\n // Sentry-specific attributes\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"http.server\",\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.server\",\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: \"url\",\n // Set http.route to the URL path as a best-effort route name.\n // Framework integrations (Express, etc.) update this via onSpanEnd.\n \"http.route\": httpTargetWithoutQueryFragment,\n // OTel kind (explicit attribute so it appears in span data)\n \"otel.kind\": \"SERVER\",\n // Network attributes\n \"net.host.ip\": localAddress,\n \"net.host.port\": localPort,\n \"net.peer.ip\": remoteAddress,\n \"net.peer.port\": remotePort,\n \"sentry.http.prefetch\": isKnownPrefetchRequest(request) || void 0,\n // Old Semantic Conventions attributes for compatibility\n \"http.url\": fullUrl,\n \"http.method\": method,\n \"http.target\": urlObj ? `${urlObj.pathname}${urlObj.search}` : httpTargetWithoutQueryFragment,\n \"http.host\": host,\n \"net.host.name\": hostname,\n \"http.client_ip\": typeof ips === \"string\" ? ips.split(\",\")[0] : void 0,\n \"http.user_agent\": userAgent,\n \"http.scheme\": scheme,\n \"http.flavor\": httpVersion,\n \"net.transport\": httpVersion?.toUpperCase() === \"QUIC\" ? \"ip_udp\" : \"ip_tcp\",\n ...getRequestContentLengthAttribute(request),\n ...httpHeadersToSpanAttributes(normalizedRequest.headers || {}, client.getDataCollectionOptions())\n }\n },\n (span) => {\n onSpanCreated?.(span, request, response);\n let isEnded = false;\n function endSpan(status) {\n if (isEnded) {\n return;\n }\n isEnded = true;\n span.setAttributes({\n \"http.status_text\": response.statusMessage?.toUpperCase(),\n \"http.response.status_code\": response.statusCode,\n \"http.status_code\": response.statusCode,\n ...httpHeadersToSpanAttributes(\n headersToDict(response.headers),\n client?.getDataCollectionOptions() ?? false,\n \"response\"\n )\n });\n span.setStatus(status);\n onSpanEnd?.(span, request, response);\n span.end();\n }\n response.once(\"close\", () => {\n endSpan(getSpanStatusFromHttpCode(response.statusCode));\n });\n response.once(errorMonitor, () => {\n const httpStatus = getSpanStatusFromHttpCode(response.statusCode);\n endSpan(httpStatus.code === SPAN_STATUS_ERROR ? httpStatus : { code: SPAN_STATUS_ERROR });\n });\n next();\n }\n );\n }\n };\n}\nfunction shouldIgnoreSpansForIncomingRequest(request, {\n ignoreStaticAssets,\n ignoreIncomingRequests\n}) {\n const urlPath = request.url;\n const method = request.method?.toUpperCase();\n if (method === \"OPTIONS\" || method === \"HEAD\" || !urlPath) {\n return true;\n }\n if (ignoreStaticAssets && method === \"GET\" && isStaticAssetRequest(urlPath)) {\n return true;\n }\n if (ignoreIncomingRequests?.(urlPath, request)) {\n return true;\n }\n return false;\n}\nfunction isStaticAssetRequest(urlPath) {\n const path = stripUrlQueryAndFragment(urlPath);\n if (path.match(/\\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/)) {\n return true;\n }\n if (path.match(/^\\/(robots\\.txt|sitemap\\.xml|manifest\\.json|browserconfig\\.xml)$/)) {\n return true;\n }\n return false;\n}\nfunction isKnownPrefetchRequest(req) {\n return req.headers[\"next-router-prefetch\"] === \"1\";\n}\nfunction getRequestContentLengthAttribute(request) {\n const { headers } = request;\n const contentLengthHeader = headers[\"content-length\"];\n const length = contentLengthHeader ? parseInt(String(contentLengthHeader), 10) : -1;\n const encoding = headers[\"content-encoding\"];\n return length >= 0 ? encoding && encoding !== \"identity\" ? { \"http.request_content_length\": length } : { \"http.request_content_length_uncompressed\": length } : {};\n}\n\nexport { getHttpServerSubscriptions, instrumentServer, isStaticAssetRequest };\n//# sourceMappingURL=server-subscription.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { startSpan } from '../trace.js';\nimport { GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_EMBEDDINGS_OPERATION_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE, GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions } from '../ai/utils.js';\nimport { LANGCHAIN_ORIGIN } from './constants.js';\n\nfunction inferSystemFromInstance(instance) {\n const name = instance.constructor?.name ?? \"\";\n if (name.includes(\"OpenAI\")) return \"openai\";\n if (name.includes(\"Google\")) return \"google_genai\";\n if (name.includes(\"Mistral\")) return \"mistralai\";\n if (name.includes(\"Vertex\")) return \"google_vertexai\";\n if (name.includes(\"Bedrock\")) return \"aws_bedrock\";\n if (name.includes(\"Ollama\")) return \"ollama\";\n if (name.includes(\"Cloudflare\")) return \"cloudflare\";\n if (name.includes(\"Cohere\")) return \"cohere\";\n return \"langchain\";\n}\nfunction extractEmbeddingAttributes(instance) {\n const embeddingsInstance = instance ?? {};\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGCHAIN_ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: GEN_AI_EMBEDDINGS_OPERATION_ATTRIBUTE,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: \"embeddings\",\n [GEN_AI_REQUEST_MODEL_ATTRIBUTE]: embeddingsInstance.model ?? \"unknown\"\n };\n attributes[GEN_AI_SYSTEM_ATTRIBUTE] = inferSystemFromInstance(embeddingsInstance);\n if (\"dimensions\" in embeddingsInstance) {\n attributes[GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE] = embeddingsInstance.dimensions;\n }\n if (\"encodingFormat\" in embeddingsInstance) {\n attributes[GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE] = embeddingsInstance.encodingFormat;\n }\n return attributes;\n}\nfunction instrumentEmbeddingMethod(originalMethod, options = {}) {\n const { recordInputs } = resolveAIRecordingOptions(options);\n return new Proxy(originalMethod, {\n apply(target, thisArg, args) {\n const attributes = extractEmbeddingAttributes(thisArg);\n const modelName = attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] || \"unknown\";\n if (recordInputs) {\n const input = args[0];\n if (input != null) {\n attributes[GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE] = typeof input === \"string\" ? input : JSON.stringify(input);\n }\n }\n return startSpan(\n {\n name: `embeddings ${modelName}`,\n op: GEN_AI_EMBEDDINGS_OPERATION_ATTRIBUTE,\n attributes\n },\n () => {\n return Reflect.apply(target, thisArg, args).then(void 0, (error) => {\n captureException(error, {\n mechanism: { handled: false, type: \"auto.ai.langchain\" }\n });\n throw error;\n });\n }\n );\n }\n });\n}\nfunction instrumentLangChainEmbeddings(instance, options) {\n const embeddingsInstance = instance;\n if (typeof embeddingsInstance.embedQuery === \"function\") {\n embeddingsInstance.embedQuery = instrumentEmbeddingMethod(\n embeddingsInstance.embedQuery,\n options\n );\n }\n if (typeof embeddingsInstance.embedDocuments === \"function\") {\n embeddingsInstance.embedDocuments = instrumentEmbeddingMethod(\n embeddingsInstance.embedDocuments,\n options\n );\n }\n return instance;\n}\n\nexport { instrumentEmbeddingMethod, instrumentLangChainEmbeddings };\n//# sourceMappingURL=embeddings.js.map\n", + "import { errorMonitor } from 'node:events';\nimport { SpanKind, context, trace } from '@opentelemetry/api';\nimport { RPCType, setRPCMetadata, getRPCMetadata } from '@opentelemetry/core';\nimport { NET_HOST_IP, NET_HOST_PORT, NET_PEER_IP, HTTP_STATUS_CODE, HTTP_ROUTE, HTTP_RESPONSE_STATUS_CODE } from '@sentry/conventions/attributes';\nimport { debug, parseStringToURLObject, stripUrlQueryAndFragment, httpHeadersToSpanAttributes, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, getSpanStatusFromHttpCode, SPAN_STATUS_ERROR, isTracingSuppressed, getIsolationScope } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { addStartSpanCallback } from './httpServerIntegration.js';\n\nconst INTEGRATION_NAME = \"Http.ServerSpans\";\nconst _httpServerSpansIntegration = ((options = {}) => {\n const ignoreStaticAssets = options.ignoreStaticAssets ?? true;\n const ignoreIncomingRequests = options.ignoreIncomingRequests;\n const ignoreStatusCodes = options.ignoreStatusCodes ?? [\n [401, 404],\n // 300 and 304 are possibly valid status codes we do not want to filter\n [301, 303],\n [305, 399]\n ];\n const { onSpanCreated } = options;\n const { requestHook, responseHook, applyCustomAttributesOnSpan } = options.instrumentation ?? {};\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n if (typeof __SENTRY_TRACING__ !== \"undefined\" && !__SENTRY_TRACING__) {\n return;\n }\n client.on(\"httpServerRequest\", (_request, _response, normalizedRequest) => {\n const request = _request;\n const response = _response;\n const startSpan = (next) => {\n if (shouldIgnoreSpansForIncomingRequest(request, {\n ignoreStaticAssets,\n ignoreIncomingRequests\n })) {\n DEBUG_BUILD && debug.log(INTEGRATION_NAME, \"Skipping span creation for incoming request\", request.url);\n return next();\n }\n const fullUrl = normalizedRequest.url || request.url || \"/\";\n const urlObj = parseStringToURLObject(fullUrl);\n const headers = request.headers;\n const userAgent = headers[\"user-agent\"];\n const ips = headers[\"x-forwarded-for\"];\n const httpVersion = request.httpVersion;\n const host = headers.host;\n const hostname = host?.replace(/^(.*)(:[0-9]{1,5})/, \"$1\") || \"localhost\";\n const tracer = client.tracer;\n const scheme = fullUrl.startsWith(\"https\") ? \"https\" : \"http\";\n const method = normalizedRequest.method || request.method?.toUpperCase() || \"GET\";\n const httpTargetWithoutQueryFragment = urlObj ? urlObj.pathname : stripUrlQueryAndFragment(fullUrl);\n const bestEffortTransactionName = `${method} ${httpTargetWithoutQueryFragment}`;\n const span = tracer.startSpan(bestEffortTransactionName, {\n kind: SpanKind.SERVER,\n attributes: {\n // Sentry specific attributes\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"http.server\",\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.http\",\n \"sentry.http.prefetch\": isKnownPrefetchRequest(request) || void 0,\n // Old Semantic Conventions attributes - added for compatibility with what `@opentelemetry/instrumentation-http` output before\n \"http.url\": fullUrl,\n \"http.method\": normalizedRequest.method,\n \"http.target\": urlObj ? `${urlObj.pathname}${urlObj.search}` : httpTargetWithoutQueryFragment,\n \"http.host\": host,\n \"net.host.name\": hostname,\n \"http.client_ip\": typeof ips === \"string\" ? ips.split(\",\")[0] : void 0,\n \"http.user_agent\": userAgent,\n \"http.scheme\": scheme,\n \"http.flavor\": httpVersion,\n \"net.transport\": httpVersion?.toUpperCase() === \"QUIC\" ? \"ip_udp\" : \"ip_tcp\",\n ...getRequestContentLengthAttribute(request),\n ...httpHeadersToSpanAttributes(normalizedRequest.headers || {}, client.getDataCollectionOptions())\n }\n });\n requestHook?.(span, request);\n responseHook?.(span, response);\n applyCustomAttributesOnSpan?.(span, request, response);\n onSpanCreated?.(span, request, response);\n const rpcMetadata = {\n type: RPCType.HTTP,\n span\n };\n return context.with(setRPCMetadata(trace.setSpan(context.active(), span), rpcMetadata), () => {\n context.bind(context.active(), request);\n context.bind(context.active(), response);\n let isEnded = false;\n function endSpan(status) {\n if (isEnded) {\n return;\n }\n isEnded = true;\n const newAttributes = getIncomingRequestAttributesOnResponse(request, response);\n span.setAttributes(newAttributes);\n span.setStatus(status);\n span.end();\n const route = newAttributes[\"http.route\"];\n if (route) {\n getIsolationScope().setTransactionName(`${request.method?.toUpperCase() || \"GET\"} ${route}`);\n }\n }\n response.on(\"close\", () => {\n endSpan(getSpanStatusFromHttpCode(response.statusCode));\n });\n response.on(errorMonitor, () => {\n const httpStatus = getSpanStatusFromHttpCode(response.statusCode);\n endSpan(httpStatus.code === SPAN_STATUS_ERROR ? httpStatus : { code: SPAN_STATUS_ERROR });\n });\n return next();\n });\n };\n addStartSpanCallback(request, startSpan);\n });\n },\n processEvent(event) {\n if (event.type === \"transaction\") {\n const statusCode = event.contexts?.trace?.data?.[\"http.response.status_code\"];\n if (typeof statusCode === \"number\") {\n const shouldDrop = shouldFilterStatusCode(statusCode, ignoreStatusCodes);\n if (shouldDrop) {\n DEBUG_BUILD && debug.log(\"Dropping transaction due to status code\", statusCode);\n return null;\n }\n }\n }\n return event;\n },\n afterAllSetup(client) {\n if (!DEBUG_BUILD) {\n return;\n }\n if (client.getIntegrationByName(\"Http\")) {\n debug.warn(\n \"It seems that you have manually added `httpServerSpansIntegration` while `httpIntegration` is also present. Make sure to remove `httpIntegration` when adding `httpServerSpansIntegration`.\"\n );\n }\n if (!client.getIntegrationByName(\"Http.Server\")) {\n debug.error(\n \"It seems that you have manually added `httpServerSpansIntegration` without adding `httpServerIntegration`. This is a requiement for spans to be created - please add the `httpServerIntegration` integration.\"\n );\n }\n }\n };\n});\nconst httpServerSpansIntegration = _httpServerSpansIntegration;\nfunction isKnownPrefetchRequest(req) {\n return req.headers[\"next-router-prefetch\"] === \"1\";\n}\nfunction isStaticAssetRequest(urlPath) {\n const path = stripUrlQueryAndFragment(urlPath);\n if (path.match(/\\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/)) {\n return true;\n }\n if (path.match(/^\\/(robots\\.txt|sitemap\\.xml|manifest\\.json|browserconfig\\.xml)$/)) {\n return true;\n }\n return false;\n}\nfunction shouldIgnoreSpansForIncomingRequest(request, {\n ignoreStaticAssets,\n ignoreIncomingRequests\n}) {\n if (isTracingSuppressed()) {\n return true;\n }\n const urlPath = request.url;\n const method = request.method?.toUpperCase();\n if (method === \"OPTIONS\" || method === \"HEAD\" || !urlPath) {\n return true;\n }\n if (ignoreStaticAssets && method === \"GET\" && isStaticAssetRequest(urlPath)) {\n return true;\n }\n if (ignoreIncomingRequests?.(urlPath, request)) {\n return true;\n }\n return false;\n}\nfunction getRequestContentLengthAttribute(request) {\n const length = getContentLength(request.headers);\n if (length == null) {\n return {};\n }\n if (isCompressed(request.headers)) {\n return {\n [\"http.request_content_length\"]: length\n };\n } else {\n return {\n [\"http.request_content_length_uncompressed\"]: length\n };\n }\n}\nfunction getContentLength(headers) {\n const contentLengthHeader = headers[\"content-length\"];\n if (contentLengthHeader === void 0) return null;\n const contentLength = parseInt(contentLengthHeader, 10);\n if (isNaN(contentLength)) return null;\n return contentLength;\n}\nfunction isCompressed(headers) {\n const encoding = headers[\"content-encoding\"];\n return !!encoding && encoding !== \"identity\";\n}\nfunction getIncomingRequestAttributesOnResponse(request, response) {\n const { socket } = request;\n const { statusCode, statusMessage } = response;\n const newAttributes = {\n [HTTP_RESPONSE_STATUS_CODE]: statusCode,\n // eslint-disable-next-line typescript/no-deprecated\n [HTTP_STATUS_CODE]: statusCode,\n \"http.status_text\": statusMessage?.toUpperCase()\n };\n const rpcMetadata = getRPCMetadata(context.active());\n if (socket) {\n const { localAddress, localPort, remoteAddress, remotePort } = socket;\n newAttributes[NET_HOST_IP] = localAddress;\n newAttributes[NET_HOST_PORT] = localPort;\n newAttributes[NET_PEER_IP] = remoteAddress;\n newAttributes[\"net.peer.port\"] = remotePort;\n }\n newAttributes[HTTP_STATUS_CODE] = statusCode;\n newAttributes[\"http.status_text\"] = (statusMessage || \"\").toUpperCase();\n if (rpcMetadata?.type === RPCType.HTTP && rpcMetadata.route !== void 0) {\n const routeName = rpcMetadata.route;\n newAttributes[HTTP_ROUTE] = routeName;\n }\n return newAttributes;\n}\nfunction shouldFilterStatusCode(statusCode, dropForStatusCodes) {\n return dropForStatusCodes.some((code) => {\n if (typeof code === \"number\") {\n return code === statusCode;\n }\n const [min, max] = code;\n return statusCode >= min && statusCode <= max;\n });\n}\n\nexport { httpServerSpansIntegration, isStaticAssetRequest };\n//# sourceMappingURL=httpServerSpansIntegration.js.map\n", + "const Rs=\"ai.citations\",g=\"ai.completion_tokens.used\",Ss=\"ai.documents\",se=\"ai.finish_reason\",re=\"ai.frequency_penalty\",d=\"ai.function_call\",ne=\"ai.generation_id\",ae=\"ai.input_messages\",xs=\"ai.is_search_required\",Ns=\"ai.metadata\",oe=\"ai.model_id\",u=\"ai.model.provider\",le=\"ai.pipeline.name\",pe=\"ai.preamble\",ce=\"ai.presence_penalty\",m=\"ai.prompt_tokens.used\",Cs=\"ai.raw_prompting\",ws=\"ai.responses\",Ls=\"ai.response_format\",Ds=\"ai.search_queries\",Ms=\"ai.search_results\",be=\"ai.seed\",ge=\"ai.streaming\",Us=\"ai.tags\",de=\"ai.temperature\",ue=\"ai.texts\",ks=\"ai.tools\",Gs=\"ai.tool_calls\",me=\"ai.top_k\",he=\"ai.top_p\",ye=\"ai.total_cost\",fe=\"ai.total_tokens.used\",qs=\"ai.warnings\",Vs=\"angular.version\",ve=\"app.app_build\",_e=\"app.app_identifier\",Ee=\"app.app_name\",Te=\"app.app_start_time\",Ie=\"app.app_version\",Oe=\"app.build\",Pe=\"app.identifier\",Ys=\"app.in_foreground\",Ae=\"app.name\",Re=\"app_start_cold\",Se=\"app.start_time\",xe=\"app_start_type\",Ne=\"app_start_warm\",Ce=\"app.version\",we=\"app.vitals.frames.delay.value\",Le=\"app.vitals.frames.frozen.count\",De=\"app.vitals.frames.slow.count\",Me=\"app.vitals.frames.total.count\",Ue=\"app.vitals.start.cold.value\",Fs=\"app.vitals.start.prewarmed\",Hs=\"app.vitals.start.reason\",Ws=\"app.vitals.start.screen\",ke=\"app.vitals.start.type\",Ge=\"app.vitals.start.warm.value\",qe=\"app.vitals.ttfd.value\",Ve=\"app.vitals.ttid.value\",Bs=\"art.gc.blocking_count\",Ks=\"art.gc.blocking_time\",zs=\"art.gc.pre_oome_count\",js=\"art.gc.total_count\",Qs=\"art.gc.total_time\",Xs=\"art.gc.waiting_time\",Js=\"art.memory.free\",Zs=\"art.memory.free_until_gc\",$s=\"art.memory.free_until_oome\",er=\"art.memory.max\",ir=\"art.memory.total\",tr=\"aws.cloudwatch.logs.log_group\",sr=\"aws.cloudwatch.logs.log_stream\",rr=\"aws.cloudwatch.logs.url\",Ye=\"aws.lambda.aws_request_id\",nr=\"aws.lambda.execution_duration_in_millis\",Fe=\"aws.lambda.function_name\",He=\"aws.lambda.function_version\",We=\"aws.lambda.invoked_arn\",Be=\"aws.lambda.invoked_function_arn\",ar=\"aws.lambda.remaining_time_in_millis\",or=\"aws.log.group.names\",lr=\"aws.log.stream.names\",pr=\"blocked_main_thread\",Ke=\"browser.name\",ze=\"browser.performance.navigation.activation_start\",je=\"browser.performance.time_origin\",cr=\"browser.report.type\",br=\"browser.script.invoker\",gr=\"browser.script.invoker_type\",dr=\"browser.script.source_char_position\",Qe=\"browser.version\",ur=\"browser.web_vital.cls.report_event\",Xe=\"browser.web_vital.cls.source.\",Je=\"browser.web_vital.cls.value\",Ze=\"browser.web_vital.fcp.value\",$e=\"browser.web_vital.fp.value\",ei=\"browser.web_vital.inp.value\",ii=\"browser.web_vital.lcp.element\",ti=\"browser.web_vital.lcp.id\",si=\"browser.web_vital.lcp.load_time\",ri=\"browser.web_vital.lcp.render_time\",mr=\"browser.web_vital.lcp.report_event\",ni=\"browser.web_vital.lcp.size\",ai=\"browser.web_vital.lcp.url\",oi=\"browser.web_vital.lcp.value\",li=\"browser.web_vital.ttfb.request_time\",pi=\"browser.web_vital.ttfb.value\",hr=\"cache.hit\",yr=\"cache.item_size\",fr=\"cache.key\",vr=\"cache.operation\",_r=\"cache.ttl\",Er=\"cache.write\",Tr=\"channel\",h=\"client.address\",Ir=\"client.port\",Or=\"cloudflare.d1.duration\",y=\"cloudflare.d1.query_type\",Pr=\"cloudflare.d1.rows_read\",Ar=\"cloudflare.d1.rows_written\",Rr=\"cloudflare.r2.bucket\",Sr=\"cloudflare.r2.operation\",xr=\"cloudflare.r2.request.delimiter\",Nr=\"cloudflare.r2.request.key\",Cr=\"cloudflare.r2.request.part_number\",wr=\"cloudflare.r2.request.prefix\",Lr=\"cloudflare.workflow.attempt\",Dr=\"cloudflare.workflow.retries.backoff\",Mr=\"cloudflare.workflow.retries.delay\",Ur=\"cloudflare.workflow.retries.limit\",kr=\"cloudflare.workflow.timeout\",Gr=\"cloud.account.id\",qr=\"cloud.availability_zone\",Vr=\"cloud.platform\",Yr=\"cloud.provider\",Fr=\"cloud.region\",Hr=\"cloud.resource_id\",ci=\"cls\",bi=\"cls.source.\",gi=\"code.filepath\",di=\"code.file.path\",ui=\"code.function\",mi=\"code.function.name\",hi=\"code.lineno\",yi=\"code.line.number\",Wr=\"code.namespace\",f=\"connectionType\",fi=\"connection.rtt\",Br=\"culture.calendar\",Kr=\"culture.display_name\",zr=\"culture.is_24_hour_format\",jr=\"culture.locale\",Qr=\"culture.timezone\",Xr=\"db.collection.name\",Jr=\"db.driver.name\",vi=\"db.name\",_i=\"db.namespace\",v=\"db.operation\",Zr=\"db.operation.batch.size\",_=\"db.operation.name\",$r=\"db.query.parameter.\",en=\"db.query.summary\",Ei=\"db.query.text\",tn=\"db.redis.connection\",sn=\"db.redis.key\",rn=\"db.redis.parameters\",nn=\"db.sql.bindings\",Ti=\"db.statement\",an=\"db.stored_procedure.name\",Ii=\"db.system\",Oi=\"db.system.name\",on=\"db.user\",Pi=\"deviceMemory\",ln=\"device.archs\",pn=\"device.battery_level\",cn=\"device.battery_temperature\",bn=\"device.boot_time\",gn=\"device.brand\",dn=\"device.charging\",un=\"device.chipset\",mn=\"device.class\",E=\"device.connection_type\",hn=\"device.cpu_description\",yn=\"device.external_free_storage\",fn=\"device.external_storage_size\",vn=\"device.family\",_n=\"device.free_memory\",En=\"device.free_storage\",Tn=\"device.id\",In=\"device.locale\",On=\"device.low_memory\",Pn=\"device.low_power_mode\",An=\"device.manufacturer\",Ai=\"device.memory.estimated_capacity\",Rn=\"device.memory_size\",Sn=\"device.model\",xn=\"device.model_id\",Nn=\"device.name\",Cn=\"device.online\",wn=\"device.orientation\",Ri=\"device.processor_count\",Ln=\"device.processor_frequency\",Dn=\"device.screen_density\",Mn=\"device.screen_dpi\",Un=\"device.screen_height_pixels\",kn=\"device.screen_width_pixels\",Gn=\"device.simulator\",qn=\"device.storage_size\",Vn=\"device.thermal_state\",Yn=\"device.timezone\",Fn=\"device.usable_memory\",Si=\"effectiveConnectionType\",xi=\"environment\",Hn=\"error.type\",Wn=\"event.id\",Bn=\"event.name\",Kn=\"exception.escaped\",zn=\"exception.message\",jn=\"exception.stacktrace\",Qn=\"exception.type\",Xn=\"faas.coldstart\",Jn=\"faas.cron\",Zn=\"faas.duration_in_ms\",$n=\"faas.entry_point\",ea=\"faas.identity\",Ni=\"faas.invocation_id\",Ci=\"faas.name\",ia=\"faas.time\",ta=\"faas.trigger\",wi=\"faas.version\",Li=\"fcp\",sa=\"flag.evaluation.\",Di=\"fp\",Mi=\"frames.delay\",Ui=\"frames.frozen\",ra=\"frames_frozen_rate\",ki=\"frames.slow\",na=\"frames_slow_rate\",Gi=\"frames.total\",aa=\"fs_error\",oa=\"gcp.function.context.event_id\",la=\"gcp.function.context.event_type\",pa=\"gcp.function.context.id\",ca=\"gcp.function.context.resource\",ba=\"gcp.function.context.source\",ga=\"gcp.function.context.specversion\",da=\"gcp.function.context.time\",ua=\"gcp.function.context.timestamp\",ma=\"gcp.function.context.type\",ha=\"gcp.project.id\",ya=\"gen_ai.agent.name\",fa=\"gen_ai.context.utilization\",va=\"gen_ai.context.window_size\",_a=\"gen_ai.conversation.id\",Ea=\"gen_ai.cost.input_tokens\",Ta=\"gen_ai.cost.output_tokens\",qi=\"gen_ai.cost.total_tokens\",Ia=\"gen_ai.embeddings.input\",Oa=\"gen_ai.function_id\",Vi=\"gen_ai.input.messages\",Pa=\"gen_ai.operation.name\",Aa=\"gen_ai.operation.type\",Ra=\"gen_ai.output.messages\",Yi=\"gen_ai.pipeline.name\",Sa=\"gen_ai.prompt\",Fi=\"gen_ai.prompt.name\",T=\"gen_ai.provider.name\",xa=\"gen_ai.request.available_tools\",Hi=\"gen_ai.request.frequency_penalty\",Na=\"gen_ai.request.max_tokens\",Wi=\"gen_ai.request.messages\",Ca=\"gen_ai.request.model\",Bi=\"gen_ai.request.presence_penalty\",Ki=\"gen_ai.request.seed\",zi=\"gen_ai.request.temperature\",ji=\"gen_ai.request.top_k\",Qi=\"gen_ai.request.top_p\",Xi=\"gen_ai.response.finish_reasons\",Ji=\"gen_ai.response.id\",Zi=\"gen_ai.response.model\",$i=\"gen_ai.response.streaming\",wa=\"gen_ai.response.text\",et=\"gen_ai.response.time_to_first_chunk\",it=\"gen_ai.response.time_to_first_token\",La=\"gen_ai.response.tokens_per_second\",Da=\"gen_ai.response.tool_calls\",I=\"gen_ai.system\",tt=\"gen_ai.system_instructions\",Ma=\"gen_ai.system.message\",st=\"gen_ai.tool.call.arguments\",e=\"gen_ai.tool.call.result\",Ua=\"gen_ai.tool.definitions\",ka=\"gen_ai.tool.description\",rt=\"gen_ai.tool.input\",i=\"gen_ai.tool.message\",O=\"gen_ai.tool.name\",t=\"gen_ai.tool.output\",Ga=\"gen_ai.tool.type\",nt=\"gen_ai.usage.cache_creation.input_tokens\",at=\"gen_ai.usage.cache_read.input_tokens\",P=\"gen_ai.usage.completion_tokens\",A=\"gen_ai.usage.input_tokens\",ot=\"gen_ai.usage.input_tokens.cached\",lt=\"gen_ai.usage.input_tokens.cache_write\",R=\"gen_ai.usage.output_tokens\",pt=\"gen_ai.usage.output_tokens.reasoning\",S=\"gen_ai.usage.prompt_tokens\",ct=\"gen_ai.usage.reasoning.output_tokens\",bt=\"gen_ai.usage.total_tokens\",qa=\"graphql.document\",Va=\"graphql.operation.name\",Ya=\"graphql.operation.type\",gt=\"hardwareConcurrency\",dt=\"http.client_ip\",Fa=\"http.decoded_response_content_length\",x=\"http.flavor\",Ha=\"http.fragment\",s=\"http.host\",r=\"http.method\",Wa=\"http.query\",Ba=\"http.request.body.data\",Ka=\"http.request.connection_end\",za=\"http.request.connect_start\",ja=\"http.request.domain_lookup_end\",Qa=\"http.request.domain_lookup_start\",Xa=\"http.request.fetch_start\",Ja=\"http.request.header.\",n=\"http.request.method\",a=\"http.request_method\",Za=\"http.request.redirect_end\",$a=\"http.request.redirect_start\",eo=\"http.request.request_start\",io=\"http.request.resend_count\",to=\"http.request.response_end\",so=\"http.request.response_start\",ro=\"http.request.secure_connection_start\",no=\"http.request.time_to_first_byte\",ao=\"http.request.worker_start\",N=\"http.response.body.size\",C=\"http.response_content_length\",w=\"http.response.header.content-length\",oo=\"http.response.header.\",ut=\"http.response.size\",mt=\"http.response.status_code\",ht=\"http.response_transfer_size\",L=\"http.route\",yt=\"http.scheme\",o=\"http.server_name\",lo=\"http.server.request.time_in_queue\",ft=\"http.status_code\",po=\"http.target\",D=\"http.url\",vt=\"http.user_agent\",co=\"id\",_t=\"inp\",bo=\"jsonrpc.protocol.version\",Et=\"jsonrpc.request.id\",go=\"jvm.gc.action\",uo=\"jvm.gc.name\",mo=\"jvm.memory.pool.name\",ho=\"jvm.memory.type\",yo=\"jvm.thread.daemon\",fo=\"jvm.thread.state\",Tt=\"lcp\",It=\"lcp.element\",Ot=\"lcp.id\",Pt=\"lcp.loadTime\",At=\"lcp.renderTime\",Rt=\"lcp.size\",St=\"lcp.url\",vo=\"logger.name\",_o=\"mcp.cancelled.reason\",Eo=\"mcp.cancelled.request_id\",To=\"mcp.client.name\",Io=\"mcp.client.title\",Oo=\"mcp.client.version\",Po=\"mcp.lifecycle.phase\",Ao=\"mcp.logging.data_type\",Ro=\"mcp.logging.level\",So=\"mcp.logging.logger\",xo=\"mcp.logging.message\",No=\"mcp.method.name\",Co=\"mcp.progress.current\",wo=\"mcp.progress.message\",Lo=\"mcp.progress.percentage\",Do=\"mcp.progress.token\",Mo=\"mcp.progress.total\",xt=\"mcp.prompt.name\",Uo=\"mcp.prompt.result.description\",ko=\"mcp.prompt.result.message_content\",Go=\"mcp.prompt.result.message_count\",qo=\"mcp.prompt.result.message_role\",Vo=\"mcp.protocol.ready\",Yo=\"mcp.protocol.version\",Fo=\"mcp.request.argument.\",Ho=\"mcp.request.argument.name\",Wo=\"mcp.request.argument.uri\",Nt=\"mcp.request.id\",M=\"mcp.resource.protocol\",Bo=\"mcp.resource.uri\",Ko=\"mcp.server.name\",zo=\"mcp.server.title\",jo=\"mcp.server.version\",Qo=\"mcp.session.id\",U=\"mcp.tool.name\",l=\"mcp.tool.result.content\",Xo=\"mcp.tool.result.content_count\",Jo=\"mcp.tool.result.is_error\",k=\"mcp.transport\",Zo=\"mdc.\",$o=\"messaging.batch.message_count\",el=\"messaging.destination.connection\",il=\"messaging.destination.name\",tl=\"messaging.message.body.size\",sl=\"messaging.message.envelope.size\",rl=\"messaging.message.id\",nl=\"messaging.message.receive.latency\",al=\"messaging.message.retry.count\",ol=\"messaging.operation.name\",ll=\"messaging.operation.type\",pl=\"messaging.system\",p=\"method\",cl=\"middleware.name\",bl=\"navigation.type\",gl=\"nel.elapsed_time\",dl=\"nel.phase\",ul=\"nel.referrer\",ml=\"nel.sampling_function\",hl=\"nel.type\",Ct=\"network.connection.effective_type\",wt=\"network.connection.rtt\",G=\"network.connection.type\",q=\"network.local.address\",Lt=\"network.local.port\",V=\"network.peer.address\",yl=\"network.peer.port\",Y=\"network.protocol.name\",F=\"network.protocol.version\",H=\"network.transport\",fl=\"network.type\",W=\"net.host.ip\",c=\"net.host.name\",Dt=\"net.host.port\",B=\"net.peer.ip\",vl=\"net.peer.name\",_l=\"net.peer.port\",K=\"net.protocol.name\",z=\"net.protocol.version\",El=\"net.sock.family\",j=\"net.sock.host.addr\",Mt=\"net.sock.host.port\",Q=\"net.sock.peer.addr\",Tl=\"net.sock.peer.name\",Il=\"net.sock.peer.port\",X=\"net.transport\",Ut=\"os.build\",kt=\"os.build_id\",Ol=\"os.description\",Pl=\"os.kernel_version\",Al=\"os.name\",Rl=\"os.raw_description\",Sl=\"os.rooted\",xl=\"os.theme\",Nl=\"os.type\",Cl=\"os.version\",wl=\"otel.scope.name\",Ll=\"otel.scope.version\",Dl=\"otel.status_code\",Ml=\"otel.status_description\",Gt=\"params.\",qt=\"performance.activationStart\",Vt=\"performance.timeOrigin\",Ul=\"previous_route\",kl=\"process.command_args\",Gl=\"process.executable.name\",ql=\"process.pid\",Yt=\"process.runtime.description\",Vl=\"process.runtime.engine.name\",Yl=\"process.runtime.engine.version\",Ft=\"process.runtime.name\",Ht=\"process.runtime.version\",Fl=\"query.\",Hl=\"react.version\",Wt=\"release\",Wl=\"remix.action_form_data.\",Bt=\"replay_id\",Bl=\"resource.deployment.environment\",Kl=\"resource.deployment.environment.name\",zl=\"resource.render_blocking_status\",jl=\"route\",Ql=\"rpc.grpc.status_code\",Xl=\"rpc.method\",Jl=\"rpc.response.status_code\",Zl=\"rpc.service\",$l=\"runtime.build\",Kt=\"runtime.name\",zt=\"runtime.raw_description\",jt=\"runtime.version\",ep=\"score.\",ip=\"score.ratio.\",tp=\"score.total\",sp=\"score.weight.\",rp=\"sentry.action\",Qt=\"sentry.browser.name\",Xt=\"sentry.browser.version\",np=\"sentry.cancellation_reason\",ap=\"sentry.category\",op=\"sentry.client_sample_rate\",lp=\"sentry.description\",pp=\"sentry.dist\",cp=\"sentry.domain\",bp=\"sentry.dsc.environment\",gp=\"sentry.dsc.project_id\",dp=\"sentry.dsc.public_key\",up=\"sentry.dsc.release\",mp=\"sentry.dsc.sampled\",hp=\"sentry.dsc.sample_rate\",yp=\"sentry.dsc.trace_id\",fp=\"sentry.dsc.transaction\",Jt=\"sentry.environment\",vp=\"sentry.exclusive_time\",_p=\"sentry.graphql.operation\",Ep=\"sentry.group\",Tp=\"sentry.http.prefetch\",Ip=\"sentry.idle_span_finish_reason\",Op=\"sentry.is_remote\",Pp=\"sentry.kind\",Ap=\"sentry.main_thread\",Rp=\"sentry.message.parameter.\",Sp=\"sentry.message.template\",xp=\"sentry.mobile\",Np=\"sentry.module.\",Cp=\"sentry.nextjs.ssr.function.route\",wp=\"sentry.nextjs.ssr.function.type\",Lp=\"sentry.normalized_db_query\",Dp=\"sentry.normalized_db_query.hash\",Mp=\"sentry.normalized_description\",Up=\"sentry.observed_timestamp_nanos\",kp=\"sentry.op\",Gp=\"sentry.origin\",qp=\"sentry.platform\",Vp=\"sentry.profiler_id\",Yp=\"sentry.profile_id\",J=\"sentry.release\",Zt=\"sentry.replay_id\",Fp=\"sentry.replay_is_buffering\",Hp=\"sentry.report_event\",Wp=\"sentry.sdk.integrations\",Bp=\"sentry.sdk.name\",Kp=\"sentry.sdk.version\",$t=\"sentry.segment.id\",es=\"sentry.segment_id\",Z=\"sentry.segment.name\",zp=\"sentry.server_sample_rate\",jp=\"sentry.source\",Qp=\"sentry.span.source\",Xp=\"sentry.status_code\",Jp=\"sentry.status.message\",Zp=\"sentry.timestamp.sequence\",$p=\"sentry.trace.parent_span_id\",$=\"sentry.transaction\",is=\"sentry.user.email\",ts=\"sentry.user.geo.city\",ss=\"sentry.user.geo.country_code\",rs=\"sentry.user.geo.region\",ns=\"sentry.user.geo.subdivision\",as=\"sentry.user.id\",os=\"sentry.user.ip\",ls=\"sentry.user.username\",b=\"server.address\",ps=\"server.port\",ec=\"service.name\",cs=\"service.version\",ic=\"session.id\",tc=\"stall_percentage\",sc=\"stall_total_time\",rc=\"state.type\",nc=\"thread.id\",ac=\"thread.name\",oc=\"timber.tag\",bs=\"time_to_full_display\",gs=\"time_to_initial_display\",ee=\"transaction\",lc=\"trpc.procedure_path\",pc=\"trpc.procedure_type\",ds=\"ttfb\",us=\"ttfb.requestTime\",cc=\"type\",bc=\"ui.component_name\",gc=\"ui.contributes_to_ttfd\",dc=\"ui.contributes_to_ttid\",uc=\"ui.element.height\",mc=\"ui.element.id\",hc=\"ui.element.identifier\",yc=\"ui.element.load_time\",fc=\"ui.element.paint_type\",vc=\"ui.element.render_time\",_c=\"ui.element.type\",Ec=\"ui.element.url\",Tc=\"ui.element.width\",ie=\"url\",Ic=\"url.domain\",Oc=\"url.fragment\",te=\"url.full\",Pc=\"url.path\",ms=\"url.path.parameter.\",Ac=\"url.port\",Rc=\"url.query\",hs=\"url.scheme\",ys=\"url.template\",fs=\"user_agent.original\",vs=\"user.email\",Sc=\"user.full_name\",_s=\"user.geo.city\",Es=\"user.geo.country_code\",Ts=\"user.geo.region\",Is=\"user.geo.subdivision\",xc=\"user.hash\",Os=\"user.id\",Ps=\"user.ip_address\",As=\"user.name\",Nc=\"user.roles\",Cc=\"vercel.branch\",wc=\"vercel.build_id\",Lc=\"vercel.deployment_id\",Dc=\"vercel.destination\",Mc=\"vercel.edge_type\",Uc=\"vercel.entrypoint\",kc=\"vercel.execution_region\",Gc=\"vercel.id\",qc=\"vercel.ja3_digest\",Vc=\"vercel.ja4_digest\",Yc=\"vercel.log_type\",Fc=\"vercel.path\",Hc=\"vercel.project_id\",Wc=\"vercel.project_name\",Bc=\"vercel.proxy.cache_id\",Kc=\"vercel.proxy.client_ip\",zc=\"vercel.proxy.host\",jc=\"vercel.proxy.lambda_region\",Qc=\"vercel.proxy.method\",Xc=\"vercel.proxy.path\",Jc=\"vercel.proxy.path_type\",Zc=\"vercel.proxy.path_type_variant\",$c=\"vercel.proxy.referer\",eb=\"vercel.proxy.region\",ib=\"vercel.proxy.response_byte_size\",tb=\"vercel.proxy.scheme\",sb=\"vercel.proxy.status_code\",rb=\"vercel.proxy.timestamp\",nb=\"vercel.proxy.user_agent\",ab=\"vercel.proxy.vercel_cache\",ob=\"vercel.proxy.vercel_id\",lb=\"vercel.proxy.waf_action\",pb=\"vercel.proxy.waf_rule_id\",cb=\"vercel.request_id\",bb=\"vercel.source\",gb=\"vercel.status_code\",db={[Rs]:\"string[]\",[g]:\"integer\",[Ss]:\"string[]\",[se]:\"string\",[re]:\"double\",[d]:\"string\",[ne]:\"string\",[ae]:\"string\",[xs]:\"boolean\",[Ns]:\"string\",[oe]:\"string\",[u]:\"string\",[le]:\"string\",[pe]:\"string\",[ce]:\"double\",[m]:\"integer\",[Cs]:\"boolean\",[ws]:\"string[]\",[Ls]:\"string\",[Ds]:\"string[]\",[Ms]:\"string[]\",[be]:\"string\",[ge]:\"boolean\",[Us]:\"string\",[de]:\"double\",[ue]:\"string[]\",[ks]:\"string[]\",[Gs]:\"string[]\",[me]:\"integer\",[he]:\"double\",[ye]:\"double\",[fe]:\"integer\",[qs]:\"string[]\",[Vs]:\"string\",[ve]:\"string\",[_e]:\"string\",[Ee]:\"string\",[Te]:\"string\",[Ie]:\"string\",[Oe]:\"string\",[Pe]:\"string\",[Ys]:\"boolean\",[Ae]:\"string\",[Re]:\"double\",[Se]:\"string\",[xe]:\"string\",[Ne]:\"double\",[Ce]:\"string\",[we]:\"integer\",[Le]:\"integer\",[De]:\"integer\",[Me]:\"integer\",[Ue]:\"double\",[Fs]:\"boolean\",[Hs]:\"string\",[Ws]:\"string\",[ke]:\"string\",[Ge]:\"double\",[qe]:\"double\",[Ve]:\"double\",[Bs]:\"integer\",[Ks]:\"double\",[zs]:\"integer\",[js]:\"integer\",[Qs]:\"double\",[Xs]:\"double\",[Js]:\"integer\",[Zs]:\"integer\",[$s]:\"integer\",[er]:\"integer\",[ir]:\"integer\",[tr]:\"string\",[sr]:\"string\",[rr]:\"string\",[Ye]:\"string\",[nr]:\"double\",[Fe]:\"string\",[He]:\"string\",[We]:\"string\",[Be]:\"string\",[ar]:\"double\",[or]:\"string[]\",[lr]:\"string[]\",[pr]:\"boolean\",[Ke]:\"string\",[ze]:\"double\",[je]:\"double\",[cr]:\"string\",[br]:\"string\",[gr]:\"string\",[dr]:\"integer\",[Qe]:\"string\",[ur]:\"string\",[Xe]:\"string\",[Je]:\"double\",[Ze]:\"double\",[$e]:\"double\",[ei]:\"double\",[ii]:\"string\",[ti]:\"string\",[si]:\"integer\",[ri]:\"integer\",[mr]:\"string\",[ni]:\"integer\",[ai]:\"string\",[oi]:\"double\",[li]:\"double\",[pi]:\"double\",[hr]:\"boolean\",[yr]:\"integer\",[fr]:\"string[]\",[vr]:\"string\",[_r]:\"integer\",[Er]:\"boolean\",[Tr]:\"string\",[h]:\"string\",[Ir]:\"integer\",[Or]:\"integer\",[y]:\"string\",[Pr]:\"integer\",[Ar]:\"integer\",[Rr]:\"string\",[Sr]:\"string\",[xr]:\"string\",[Nr]:\"string\",[Cr]:\"integer\",[wr]:\"string\",[Lr]:\"integer\",[Dr]:\"string\",[Mr]:\"string\",[Ur]:\"integer\",[kr]:\"string\",[Gr]:\"string\",[qr]:\"string\",[Vr]:\"string\",[Yr]:\"string\",[Fr]:\"string\",[Hr]:\"string\",[ci]:\"double\",[bi]:\"string\",[gi]:\"string\",[di]:\"string\",[ui]:\"string\",[mi]:\"string\",[hi]:\"integer\",[yi]:\"integer\",[Wr]:\"string\",[f]:\"string\",[fi]:\"integer\",[Br]:\"string\",[Kr]:\"string\",[zr]:\"boolean\",[jr]:\"string\",[Qr]:\"string\",[Xr]:\"string\",[Jr]:\"string\",[vi]:\"string\",[_i]:\"string\",[v]:\"string\",[Zr]:\"integer\",[_]:\"string\",[$r]:\"string\",[en]:\"string\",[Ei]:\"string\",[tn]:\"string\",[sn]:\"string\",[rn]:\"string[]\",[nn]:\"string[]\",[Ti]:\"string\",[an]:\"string\",[Ii]:\"string\",[Oi]:\"string\",[on]:\"string\",[Pi]:\"string\",[ln]:\"string[]\",[pn]:\"double\",[cn]:\"double\",[bn]:\"string\",[gn]:\"string\",[dn]:\"boolean\",[un]:\"string\",[mn]:\"string\",[E]:\"string\",[hn]:\"string\",[yn]:\"integer\",[fn]:\"integer\",[vn]:\"string\",[_n]:\"integer\",[En]:\"integer\",[Tn]:\"string\",[In]:\"string\",[On]:\"boolean\",[Pn]:\"boolean\",[An]:\"string\",[Ai]:\"integer\",[Rn]:\"integer\",[Sn]:\"string\",[xn]:\"string\",[Nn]:\"string\",[Cn]:\"boolean\",[wn]:\"string\",[Ri]:\"integer\",[Ln]:\"double\",[Dn]:\"double\",[Mn]:\"integer\",[Un]:\"integer\",[kn]:\"integer\",[Gn]:\"boolean\",[qn]:\"integer\",[Vn]:\"string\",[Yn]:\"string\",[Fn]:\"integer\",[Si]:\"string\",[xi]:\"string\",[Hn]:\"string\",[Wn]:\"integer\",[Bn]:\"string\",[Kn]:\"boolean\",[zn]:\"string\",[jn]:\"string\",[Qn]:\"string\",[Xn]:\"boolean\",[Jn]:\"string\",[Zn]:\"integer\",[$n]:\"string\",[ea]:\"string\",[Ni]:\"string\",[Ci]:\"string\",[ia]:\"string\",[ta]:\"string\",[wi]:\"string\",[Li]:\"double\",[sa]:\"boolean\",[Di]:\"double\",[Mi]:\"integer\",[Ui]:\"integer\",[ra]:\"double\",[ki]:\"integer\",[na]:\"double\",[Gi]:\"integer\",[aa]:\"string\",[oa]:\"string\",[la]:\"string\",[pa]:\"string\",[ca]:\"string\",[ba]:\"string\",[ga]:\"string\",[da]:\"string\",[ua]:\"string\",[ma]:\"string\",[ha]:\"string\",[ya]:\"string\",[fa]:\"double\",[va]:\"integer\",[_a]:\"string\",[Ea]:\"double\",[Ta]:\"double\",[qi]:\"double\",[Ia]:\"string\",[Oa]:\"string\",[Vi]:\"string\",[Pa]:\"string\",[Aa]:\"string\",[Ra]:\"string\",[Yi]:\"string\",[Sa]:\"string\",[Fi]:\"string\",[T]:\"string\",[xa]:\"string\",[Hi]:\"double\",[Na]:\"integer\",[Wi]:\"string\",[Ca]:\"string\",[Bi]:\"double\",[Ki]:\"string\",[zi]:\"double\",[ji]:\"integer\",[Qi]:\"double\",[Xi]:\"string\",[Ji]:\"string\",[Zi]:\"string\",[$i]:\"boolean\",[wa]:\"string\",[et]:\"double\",[it]:\"double\",[La]:\"double\",[Da]:\"string\",[I]:\"string\",[tt]:\"string\",[Ma]:\"string\",[st]:\"string\",[e]:\"string\",[Ua]:\"string\",[ka]:\"string\",[rt]:\"string\",[i]:\"string\",[O]:\"string\",[t]:\"string\",[Ga]:\"string\",[nt]:\"integer\",[at]:\"integer\",[P]:\"integer\",[A]:\"integer\",[ot]:\"integer\",[lt]:\"integer\",[R]:\"integer\",[pt]:\"integer\",[S]:\"integer\",[ct]:\"integer\",[bt]:\"integer\",[qa]:\"string\",[Va]:\"string\",[Ya]:\"string\",[gt]:\"string\",[dt]:\"string\",[Fa]:\"integer\",[x]:\"string\",[Ha]:\"string\",[s]:\"string\",[r]:\"string\",[Wa]:\"string\",[Ba]:\"string\",[Ka]:\"double\",[za]:\"double\",[ja]:\"double\",[Qa]:\"double\",[Xa]:\"double\",[Ja]:\"string[]\",[n]:\"string\",[a]:\"string\",[Za]:\"double\",[$a]:\"double\",[eo]:\"double\",[io]:\"integer\",[to]:\"double\",[so]:\"double\",[ro]:\"double\",[no]:\"double\",[ao]:\"double\",[N]:\"integer\",[C]:\"integer\",[w]:\"string\",[oo]:\"string[]\",[ut]:\"integer\",[mt]:\"integer\",[ht]:\"integer\",[L]:\"string\",[yt]:\"string\",[o]:\"string\",[lo]:\"double\",[ft]:\"integer\",[po]:\"string\",[D]:\"string\",[vt]:\"string\",[co]:\"string\",[_t]:\"double\",[bo]:\"string\",[Et]:\"string\",[go]:\"string\",[uo]:\"string\",[mo]:\"string\",[ho]:\"string\",[yo]:\"boolean\",[fo]:\"string\",[Tt]:\"double\",[It]:\"string\",[Ot]:\"string\",[Pt]:\"integer\",[At]:\"integer\",[Rt]:\"integer\",[St]:\"string\",[vo]:\"string\",[_o]:\"string\",[Eo]:\"string\",[To]:\"string\",[Io]:\"string\",[Oo]:\"string\",[Po]:\"string\",[Ao]:\"string\",[Ro]:\"string\",[So]:\"string\",[xo]:\"string\",[No]:\"string\",[Co]:\"integer\",[wo]:\"string\",[Lo]:\"double\",[Do]:\"string\",[Mo]:\"integer\",[xt]:\"string\",[Uo]:\"string\",[ko]:\"string\",[Go]:\"integer\",[qo]:\"string\",[Vo]:\"integer\",[Yo]:\"string\",[Fo]:\"string\",[Ho]:\"string\",[Wo]:\"string\",[Nt]:\"string\",[M]:\"string\",[Bo]:\"string\",[Ko]:\"string\",[zo]:\"string\",[jo]:\"string\",[Qo]:\"string\",[U]:\"string\",[l]:\"string\",[Xo]:\"integer\",[Jo]:\"boolean\",[k]:\"string\",[Zo]:\"string\",[$o]:\"integer\",[el]:\"string\",[il]:\"string\",[tl]:\"integer\",[sl]:\"integer\",[rl]:\"string\",[nl]:\"integer\",[al]:\"integer\",[ol]:\"string\",[ll]:\"string\",[pl]:\"string\",[p]:\"string\",[cl]:\"string\",[bl]:\"string\",[gl]:\"integer\",[dl]:\"string\",[ul]:\"string\",[ml]:\"double\",[hl]:\"string\",[Ct]:\"string\",[wt]:\"integer\",[G]:\"string\",[q]:\"string\",[Lt]:\"integer\",[V]:\"string\",[yl]:\"integer\",[Y]:\"string\",[F]:\"string\",[H]:\"string\",[fl]:\"string\",[W]:\"string\",[c]:\"string\",[Dt]:\"integer\",[B]:\"string\",[vl]:\"string\",[_l]:\"integer\",[K]:\"string\",[z]:\"string\",[El]:\"string\",[j]:\"string\",[Mt]:\"integer\",[Q]:\"string\",[Tl]:\"string\",[Il]:\"integer\",[X]:\"string\",[Ut]:\"string\",[kt]:\"string\",[Ol]:\"string\",[Pl]:\"string\",[Al]:\"string\",[Rl]:\"string\",[Sl]:\"boolean\",[xl]:\"string\",[Nl]:\"string\",[Cl]:\"string\",[wl]:\"string\",[Ll]:\"string\",[Dl]:\"string\",[Ml]:\"string\",[Gt]:\"string\",[qt]:\"double\",[Vt]:\"double\",[Ul]:\"string\",[kl]:\"string[]\",[Gl]:\"string\",[ql]:\"integer\",[Yt]:\"string\",[Vl]:\"string\",[Yl]:\"string\",[Ft]:\"string\",[Ht]:\"string\",[Fl]:\"string\",[Hl]:\"string\",[Wt]:\"string\",[Wl]:\"string\",[Bt]:\"string\",[Bl]:\"string\",[Kl]:\"string\",[zl]:\"string\",[jl]:\"string\",[Ql]:\"integer\",[Xl]:\"string\",[Jl]:\"string\",[Zl]:\"string\",[$l]:\"string\",[Kt]:\"string\",[zt]:\"string\",[jt]:\"string\",[ep]:\"double\",[ip]:\"double\",[tp]:\"double\",[sp]:\"double\",[rp]:\"string\",[Qt]:\"string\",[Xt]:\"string\",[np]:\"string\",[ap]:\"string\",[op]:\"double\",[lp]:\"string\",[pp]:\"string\",[cp]:\"string\",[bp]:\"string\",[gp]:\"string\",[dp]:\"string\",[up]:\"string\",[mp]:\"boolean\",[hp]:\"string\",[yp]:\"string\",[fp]:\"string\",[Jt]:\"string\",[vp]:\"double\",[_p]:\"string\",[Ep]:\"string\",[Tp]:\"boolean\",[Ip]:\"string\",[Op]:\"boolean\",[Pp]:\"string\",[Ap]:\"boolean\",[Rp]:\"string\",[Sp]:\"string\",[xp]:\"boolean\",[Np]:\"string\",[Cp]:\"string\",[wp]:\"string\",[Lp]:\"string\",[Dp]:\"string\",[Mp]:\"string\",[Up]:\"string\",[kp]:\"string\",[Gp]:\"string\",[qp]:\"string\",[Vp]:\"string\",[Yp]:\"string\",[J]:\"string\",[Zt]:\"string\",[Fp]:\"boolean\",[Hp]:\"string\",[Wp]:\"string[]\",[Bp]:\"string\",[Kp]:\"string\",[$t]:\"string\",[es]:\"string\",[Z]:\"string\",[zp]:\"double\",[jp]:\"string\",[Qp]:\"string\",[Xp]:\"integer\",[Jp]:\"string\",[Zp]:\"integer\",[$p]:\"string\",[$]:\"string\",[is]:\"string\",[ts]:\"string\",[ss]:\"string\",[rs]:\"string\",[ns]:\"string\",[as]:\"string\",[os]:\"string\",[ls]:\"string\",[b]:\"string\",[ps]:\"integer\",[ec]:\"string\",[cs]:\"string\",[ic]:\"string\",[tc]:\"double\",[sc]:\"double\",[rc]:\"string\",[nc]:\"integer\",[ac]:\"string\",[oc]:\"string\",[bs]:\"double\",[gs]:\"double\",[ee]:\"string\",[lc]:\"string\",[pc]:\"string\",[ds]:\"double\",[us]:\"double\",[cc]:\"string\",[bc]:\"string\",[gc]:\"boolean\",[dc]:\"boolean\",[uc]:\"integer\",[mc]:\"string\",[hc]:\"string\",[yc]:\"double\",[fc]:\"string\",[vc]:\"double\",[_c]:\"string\",[Ec]:\"string\",[Tc]:\"integer\",[ie]:\"string\",[Ic]:\"string\",[Oc]:\"string\",[te]:\"string\",[Pc]:\"string\",[ms]:\"string\",[Ac]:\"integer\",[Rc]:\"string\",[hs]:\"string\",[ys]:\"string\",[fs]:\"string\",[vs]:\"string\",[Sc]:\"string\",[_s]:\"string\",[Es]:\"string\",[Ts]:\"string\",[Is]:\"string\",[xc]:\"string\",[Os]:\"string\",[Ps]:\"string\",[As]:\"string\",[Nc]:\"string[]\",[Cc]:\"string\",[wc]:\"string\",[Lc]:\"string\",[Dc]:\"string\",[Mc]:\"string\",[Uc]:\"string\",[kc]:\"string\",[Gc]:\"string\",[qc]:\"string\",[Vc]:\"string\",[Yc]:\"string\",[Fc]:\"string\",[Hc]:\"string\",[Wc]:\"string\",[Bc]:\"string\",[Kc]:\"string\",[zc]:\"string\",[jc]:\"string\",[Qc]:\"string\",[Xc]:\"string\",[Jc]:\"string\",[Zc]:\"string\",[$c]:\"string\",[eb]:\"string\",[ib]:\"integer\",[tb]:\"string\",[sb]:\"integer\",[rb]:\"integer\",[nb]:\"string[]\",[ab]:\"string\",[ob]:\"string\",[lb]:\"string\",[pb]:\"string\",[cb]:\"string\",[bb]:\"string\",[gb]:\"integer\"},ub={[Rs]:{brief:\"References or sources cited by the AI model in its response.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"Citation 1\",\"Citation 2\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[g]:{brief:\"The number of tokens used to respond to the message.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:10,deprecation:{replacement:\"gen_ai.usage.output_tokens\"},aliases:[R,P],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57,61]},{version:\"0.0.0\"}]},[Ss]:{brief:\"Documents or content chunks used as context for the AI model.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"document1.txt\",\"document2.pdf\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[se]:{brief:\"The reason why the model stopped generating.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"COMPLETE\",deprecation:{replacement:\"gen_ai.response.finish_reasons\"},aliases:[Xi],changelog:[{version:\"0.1.0\",prs:[55,57,61,108,127]}]},[re]:{brief:\"Used to reduce repetitiveness of generated tokens. The higher the value, the stronger a penalty is applied to previously present tokens, proportional to how many times they have already appeared in the prompt or prior generation.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.5,deprecation:{replacement:\"gen_ai.request.frequency_penalty\"},aliases:[Hi],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},[d]:{brief:\"For an AI model call, the function that was called. This is deprecated for OpenAI, and replaced by tool_calls\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"function_name\",deprecation:{replacement:\"gen_ai.tool.name\"},aliases:[O,U],changelog:[{version:\"0.1.0\",prs:[55,57,61,108]}]},[ne]:{brief:\"Unique identifier for the completion.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"gen_123abc\",deprecation:{replacement:\"gen_ai.response.id\"},aliases:[Ji],changelog:[{version:\"0.1.0\",prs:[55,57,61,108,127]}]},[ae]:{brief:\"The input messages sent to the model\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'[{\"role\": \"user\", \"message\": \"hello\"}]',deprecation:{replacement:\"gen_ai.input.messages\"},aliases:[Wi],changelog:[{version:\"0.1.0\",prs:[65,119]},{version:\"0.0.0\"}]},[xs]:{brief:\"Boolean indicating if the model needs to perform a search.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!1,deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[Ns]:{brief:\"Extra metadata passed to an AI pipeline step.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'{\"user_id\": 123, \"session_id\": \"abc123\"}',deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55,127]}]},[oe]:{brief:\"The vendor-specific ID of the model used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"gpt-4\",deprecation:{replacement:\"gen_ai.response.model\"},aliases:[Zi],changelog:[{version:\"0.1.0\",prs:[57,61,127]},{version:\"0.0.0\"}]},[u]:{brief:\"The provider of the model.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"openai\",deprecation:{replacement:\"gen_ai.provider.name\"},aliases:[T,I],changelog:[{version:\"0.4.0\",prs:[253]},{version:\"0.1.0\",prs:[57,61,108,127]}]},[le]:{brief:\"The name of the AI pipeline.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Autofix Pipeline\",deprecation:{replacement:\"gen_ai.pipeline.name\"},aliases:[Yi],changelog:[{version:\"0.1.0\",prs:[53,76,108,127]}]},[pe]:{brief:\"For an AI model call, the preamble parameter. Preambles are a part of the prompt used to adjust the model's overall behavior and conversation style.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"You are now a clown.\",deprecation:{replacement:\"gen_ai.system_instructions\"},aliases:[tt],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[ce]:{brief:\"Used to reduce repetitiveness of generated tokens. Similar to frequency_penalty, except that this penalty is applied equally to all tokens that have already appeared, regardless of their exact frequencies.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.5,deprecation:{replacement:\"gen_ai.request.presence_penalty\"},aliases:[Bi],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},[m]:{brief:\"The number of tokens used to process just the prompt.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:20,deprecation:{replacement:\"gen_ai.usage.input_tokens\"},aliases:[S,A],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57,61]},{version:\"0.0.0\"}]},[Cs]:{brief:\"When enabled, the user\\u2019s prompt will be sent to the model without any pre-processing.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[ws]:{brief:\"The response messages sent back by the AI model.\",type:\"string[]\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:[\"hello\",\"world\"],deprecation:{replacement:\"gen_ai.output.messages\"},changelog:[{version:\"0.1.0\",prs:[65,127]},{version:\"0.0.0\"}]},[Ls]:{brief:\"For an AI model call, the format of the response\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"json_object\",deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55,127]}]},[Ds]:{brief:\"Queries used to search for relevant context or documents.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"climate change effects\",\"renewable energy\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[Ms]:{brief:\"Results returned from search queries for context.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"search_result_1, search_result_2\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[be]:{brief:\"The seed, ideally models given the same seed and same other parameters will produce the exact same output.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",deprecation:{replacement:\"gen_ai.request.seed\"},aliases:[Ki],changelog:[{version:\"0.1.0\",prs:[55,57,61,108,127]}]},[ge]:{brief:\"Whether the request was streamed back.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,deprecation:{replacement:\"gen_ai.response.streaming\"},aliases:[$i],changelog:[{version:\"0.1.0\",prs:[76,108]},{version:\"0.0.0\"}]},[Us]:{brief:\"Tags that describe an AI pipeline step.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'{\"executed_function\": \"add_integers\"}',deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55,127]}]},[de]:{brief:\"For an AI model call, the temperature parameter. Temperature essentially means how random the output will be.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.1,deprecation:{replacement:\"gen_ai.request.temperature\"},aliases:[zi],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},[ue]:{brief:\"Raw text inputs provided to the model.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"Hello, how are you?\",\"What is the capital of France?\"],deprecation:{replacement:\"gen_ai.input.messages\"},aliases:[Vi],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[ks]:{brief:\"For an AI model call, the functions that are available\",type:\"string[]\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:[\"function_1\",\"function_2\"],deprecation:{replacement:\"gen_ai.tool.definitions\"},changelog:[{version:\"0.1.0\",prs:[55,65,127]}]},[Gs]:{brief:\"For an AI model call, the tool calls that were made.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"tool_call_1\",\"tool_call_2\"],deprecation:{replacement:\"gen_ai.output.messages\"},changelog:[{version:\"0.1.0\",prs:[55,65]}]},[me]:{brief:\"Limits the model to only consider the K most likely next tokens, where K is an integer (e.g., top_k=20 means only the 20 highest probability tokens are considered).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:35,deprecation:{replacement:\"gen_ai.request.top_k\"},aliases:[ji],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},[he]:{brief:\"Limits the model to only consider tokens whose cumulative probability mass adds up to p, where p is a float between 0 and 1 (e.g., top_p=0.7 means only tokens that sum up to 70% of the probability mass are considered).\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.7,deprecation:{replacement:\"gen_ai.request.top_p\"},aliases:[Qi],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},[ye]:{brief:\"The total cost for the tokens used.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:12.34,deprecation:{replacement:\"gen_ai.cost.total_tokens\"},aliases:[qi],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[53]}]},[fe]:{brief:\"The total number of tokens used to process the prompt.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:30,deprecation:{replacement:\"gen_ai.usage.total_tokens\"},aliases:[bt],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57,61,108]},{version:\"0.0.0\"}]},[qs]:{brief:\"Warning messages generated during model execution.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"Token limit exceeded\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[Vs]:{brief:\"The version of the Angular framework\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"17.1.0\",changelog:[{version:\"0.7.0\",prs:[367],description:\"Added angular.version attribute\"}]},[ve]:{brief:\"Internal build identifier, as it appears on the platform.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1\",deprecation:{replacement:\"app.build\",reason:\"Deprecated in favor of app.build\"},aliases:[Oe],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_build in favor of app.build\"}]},[_e]:{brief:\"Version-independent application identifier, often a dotted bundle ID.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"com.example.myapp\",deprecation:{replacement:\"app.identifier\",reason:\"Deprecated in favor of app.identifier\"},aliases:[Pe],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_identifier in favor of app.identifier\"}]},[Ee]:{brief:\"Human readable application name, as it appears on the platform.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"My App\",deprecation:{replacement:\"app.name\",reason:\"Deprecated in favor of app.name\"},aliases:[Ae],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_name in favor of app.name\"}]},[Te]:{brief:\"Formatted UTC timestamp when the user started the application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"2025-01-01T00:00:00.000Z\",deprecation:{replacement:\"app.start_time\",reason:\"Deprecated in favor of app.start_time\"},aliases:[Se],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_start_time in favor of app.start_time\"}]},[Ie]:{brief:\"Human readable application version, as it appears on the platform.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1.0.0\",deprecation:{replacement:\"app.version\",reason:\"Deprecated in favor of app.version\"},aliases:[Ce],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_version in favor of app.version\"}]},[Oe]:{brief:\"Internal build identifier, as it appears on the platform.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1\",aliases:[ve],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.build attribute\"}]},[Pe]:{brief:\"Version-independent application identifier, often a dotted bundle ID.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"com.example.myapp\",aliases:[_e],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.identifier attribute\"}]},[Ys]:{brief:\"Whether the application is currently in the foreground.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.in_foreground attribute\"}]},[Ae]:{brief:\"Human readable application name, as it appears on the platform.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"My App\",aliases:[Ee],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.name attribute\"}]},[Re]:{brief:\"The duration of a cold app start in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.start.cold.value\",reason:\"Replaced by app.vitals.start.cold.value to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[Ue],changelog:[{version:\"0.5.0\",prs:[323],description:\"Added and deprecated in favor of app.vitals.start.cold.value\"}]},[Se]:{brief:\"Formatted UTC timestamp when the user started the application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"2025-01-01T00:00:00.000Z\",aliases:[Te],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.start_time attribute\"}]},[xe]:{brief:\"Mobile app start variant. Either cold or warm.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"cold\",deprecation:{replacement:\"app.vitals.start.type\",reason:\"Replaced by app.vitals.start.type to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[ke],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.start.type\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ne]:{brief:\"The duration of a warm app start in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.start.warm.value\",reason:\"Replaced by app.vitals.start.warm.value to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[Ge],changelog:[{version:\"0.5.0\",prs:[323],description:\"Added and deprecated in favor of app.vitals.start.warm.value\"}]},[Ce]:{brief:\"Human readable application version, as it appears on the platform.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1.0.0\",aliases:[Ie],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.version attribute\"}]},[we]:{brief:\"The sum of all delayed frame durations in seconds during the lifetime of the span. For more information see [frames delay](https://develop.sentry.dev/sdk/performance/frames-delay/).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:5,aliases:[Mi],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.delay.value to replace frames.delay\"}]},[Le]:{brief:\"The number of frozen frames rendered during the lifetime of the span.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:3,aliases:[Ui],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.frozen.count to replace frames.frozen\"}]},[De]:{brief:\"The number of slow frames rendered during the lifetime of the span.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,aliases:[ki],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.slow.count to replace frames.slow\"}]},[Me]:{brief:\"The number of total frames rendered during the lifetime of the span.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:60,aliases:[Gi],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.total.count to replace frames.total\"}]},[Ue]:{brief:\"The duration of a cold app start in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[Re],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.start.cold.value attribute\"}]},[Fs]:{brief:\"Whether the app start was prewarmed.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.11.0\",prs:[379],description:\"Added app.vitals.start.prewarmed attribute\"}]},[Hs]:{brief:\"The reason that triggered the app start.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"push\",changelog:[{version:\"0.7.0\",prs:[353],description:\"Added app.vitals.start.reason attribute\"}]},[Ws]:{brief:\"The screen that is rendered when the app start is complete. This is the screen the user first sees and can interact with after launch. The absence of this attribute on the app start span indicates a background app start where no UI was rendered.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"MainActivity\",changelog:[{version:\"0.7.0\",prs:[353],description:\"Added app.vitals.start.screen attribute\"}]},[ke]:{brief:\"The type of app start, for example `cold` or `warm`\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"cold\",aliases:[xe],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.start.type attribute\"}]},[Ge]:{brief:\"The duration of a warm app start in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[Ne],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.start.warm.value attribute\"}]},[qe]:{brief:\"The duration of time to full display in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[bs],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.ttfd.value attribute\"}]},[Ve]:{brief:\"The duration of time to initial display in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[gs],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.ttid.value attribute\"}]},[Bs]:{brief:\"Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.blocking_count attribute\"}]},[Ks]:{brief:\"Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:11.873,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.blocking_time attribute\"}]},[zs]:{brief:\"Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:0,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.pre_oome_count attribute\"}]},[js]:{brief:\"Total number of garbage collections performed by the Android Runtime\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.total_count attribute\"}]},[Qs]:{brief:\"Total time spent in garbage collection by the Android Runtime, in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:11.807,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.total_time attribute\"}]},[Xs]:{brief:\"Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:8.054,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.waiting_time attribute\"}]},[Js]:{brief:\"Free memory available to the process as reported by the Android Runtime, in bytes\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:3181568,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.free attribute\"}]},[Zs]:{brief:\"Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:3181568,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.free_until_gc attribute\"}]},[$s]:{brief:\"Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:196083712,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.free_until_oome attribute\"}]},[er]:{brief:\"Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:201326592,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.max attribute\"}]},[ir]:{brief:\"Total memory currently allocated to the process by the Android Runtime, in bytes\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:7774208,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.total attribute\"}]},[tr]:{brief:\"The name of the CloudWatch Logs log group\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"/aws/lambda/my-function\",changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.cloudwatch.logs.log_group attribute\"}]},[sr]:{brief:\"The name of the CloudWatch Logs log stream\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"2024/01/01/[$LATEST]abcdef1234567890\",changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.cloudwatch.logs.log_stream attribute\"}]},[rr]:{brief:\"The URL to the CloudWatch Logs log group\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logsV2:log-groups/log-group/my-log-group\",changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.cloudwatch.logs.url attribute\"}]},[Ye]:{brief:\"The AWS request ID as received by the Lambda function runtime\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"8476a536-e9f4-11e8-9739-2dfe598c3fcd\",deprecation:{replacement:\"faas.invocation_id\",reason:\"This attribute is being deprecated in favor of faas.invocation_id\"},aliases:[Ni],changelog:[{version:\"0.11.1\",prs:[414,424],description:\"Deprecated aws.lambda.aws_request_id in favor of faas.invocation_id\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.aws_request_id attribute\"}]},[nr]:{brief:\"The execution duration of the Lambda function invocation in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.execution_duration_in_millis attribute\"}]},[Fe]:{brief:\"The name of the Lambda function\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"my-function\",deprecation:{replacement:\"faas.name\",reason:\"Use the OTel-aligned faas.name attribute instead\"},aliases:[Ci],changelog:[{version:\"0.11.1\",prs:[414],description:\"Deprecated aws.lambda.function_name in favor of faas.name\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.function_name attribute\"}]},[He]:{brief:\"The version of the Lambda function\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"$LATEST\",deprecation:{replacement:\"faas.version\",reason:\"Use the OTel-aligned faas.version attribute instead\"},aliases:[wi],changelog:[{version:\"0.11.1\",prs:[414,424],description:\"Deprecated aws.lambda.function_version in favor of faas.version\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.function_version attribute\"}]},[We]:{brief:\"The full ARN of the Lambda function that was invoked\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:lambda:us-east-1:123456789012:function:my-function\",aliases:[Be],changelog:[{version:\"0.11.1\",prs:[414]}]},[Be]:{brief:\"The full ARN of the Lambda function that was invoked\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"arn:aws:lambda:us-east-1:123456789012:function:my-function\",deprecation:{replacement:\"aws.lambda.invoked_arn\",reason:\"This attribute is being deprecated in favor of aws.lambda.invoked_arn\"},aliases:[We],changelog:[{version:\"0.11.1\",prs:[414],description:\"Deprecated aws.lambda.invoked_function_arn in favor of aws.lambda.invoked_arn\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.invoked_function_arn attribute\"}]},[ar]:{brief:\"The remaining time in milliseconds before the Lambda function times out\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:5e3,changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.remaining_time_in_millis attribute\"}]},[or]:{brief:\"The name(s) of the AWS log group(s) an application is writing to.\",type:\"string[]\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:[\"/aws/lambda/my-function\",\"opentelemetry-service\"],changelog:[{version:\"0.11.1\",prs:[414]}]},[lr]:{brief:\"The name(s) of the AWS log stream(s) an application is writing to.\",type:\"string[]\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:[\"logs/main/10838bed-421f-43ef-870a-f43feacbbb5b\"],changelog:[{version:\"0.11.1\",prs:[414]}]},[pr]:{brief:\"Whether the main thread was blocked by the span.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[Ke]:{brief:\"The name of the browser.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Chrome\",aliases:[Qt],changelog:[{version:\"0.1.0\",prs:[127,139]},{version:\"0.0.0\"}]},[ze]:{brief:\"The time between initiating a navigation to a page and the browser activating the page\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1.983,aliases:[qt],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added browser.performance.navigation.activation_start attribute\"}]},[je]:{brief:\"The browser's performance.timeOrigin timestamp representing the time when the pageload was initiated\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1776185678886e-3,aliases:[Vt],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added browser.performance.time_origin attribute attribute\"}]},[cr]:{brief:\"A browser report sent via reporting API..\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"network-error\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},[br]:{brief:\"How a script was called in the browser.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Window.requestAnimationFrame\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[gr]:{brief:\"Browser script entry point type.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"event-listener\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[dr]:{brief:\"A number representing the script character position of the script.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:678,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Qe]:{brief:\"The version of the browser.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"120.0.6099.130\",aliases:[Xt],changelog:[{version:\"0.1.0\",prs:[59,127,139]}]},[ur]:{brief:\"The event that caused the SDK to report CLS (pagehide or navigation)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"navigation\",changelog:[{version:\"0.5.0\",prs:[319],description:\"Added browser.web_vital.cls.report_event attribute\"}]},[Xe]:{brief:\"The HTML elements or components responsible for the layout shift. is a numeric index from 1 to N\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"body > div#app\",aliases:[bi],changelog:[{version:\"0.5.0\",prs:[234]}]},[Je]:{brief:\"The value of the recorded Cumulative Layout Shift (CLS) web vital\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.2361,aliases:[ci],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added browser.web_vital.cls.value attribute\"}]},[Ze]:{brief:\"The time it takes for the browser to render the first piece of meaningful content on the screen\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:547.6951,aliases:[Li],changelog:[{version:\"0.5.0\",prs:[235]}]},[$e]:{brief:\"The time in milliseconds it takes for the browser to render the first pixel on the screen\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:477.1926,aliases:[Di],changelog:[{version:\"0.5.0\",prs:[235]}]},[ei]:{brief:\"The value of the recorded Interaction to Next Paint (INP) web vital\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:200,aliases:[_t],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added browser.web_vital.inp.value attribute\"}]},[ii]:{brief:\"The HTML element selector or component name for which LCP was reported\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"body > div#app > div#container > div\",aliases:[It],changelog:[{version:\"0.5.0\",prs:[233]}]},[ti]:{brief:\"The id of the dom element responsible for the largest contentful paint\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"#gero\",aliases:[Ot],changelog:[{version:\"0.5.0\",prs:[233]}]},[si]:{brief:\"The time it took for the LCP element to be loaded\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1402,aliases:[Pt],changelog:[{version:\"0.5.0\",prs:[233]}]},[ri]:{brief:\"The time it took for the LCP element to be rendered\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1685,aliases:[At],changelog:[{version:\"0.5.0\",prs:[233]}]},[mr]:{brief:\"The event that caused the SDK to report LCP (pagehide or navigation)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"pagehide\",changelog:[{version:\"0.5.0\",prs:[319],description:\"Added browser.web_vital.lcp.report_event attribute\"}]},[ni]:{brief:\"The size of the largest contentful paint element\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1024,aliases:[Rt],changelog:[{version:\"0.5.0\",prs:[233]}]},[ai]:{brief:\"The url of the dom element responsible for the largest contentful paint\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com/static/img.png\",aliases:[St],changelog:[{version:\"0.5.0\",prs:[233]}]},[oi]:{brief:\"The value of the recorded Largest Contentful Paint (LCP) web vital\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2500,aliases:[Tt],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added browser.web_vital.lcp.value attribute\"}]},[li]:{brief:\"The time it takes for the server to process the initial request and send the first byte of a response to the user's browser\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1554.5814,aliases:[us],changelog:[{version:\"0.5.0\",prs:[235]}]},[pi]:{brief:\"The value of the recorded Time To First Byte (TTFB) web vital in Milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:194.3322,aliases:[ds],changelog:[{version:\"0.5.0\",prs:[235]}]},[hr]:{brief:\"If the cache was hit during this span.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[yr]:{brief:\"The size of the requested item in the cache. In bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:58,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[fr]:{brief:\"The key of the cache accessed.\",type:\"string[]\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:[\"my-cache-key\",\"my-other-cache-key\"],changelog:[{version:\"0.0.0\"}]},[vr]:{brief:\"The operation being performed on the cache.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"get\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[_r]:{brief:\"The ttl of the cache in seconds\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:120,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Er]:{brief:\"If the cache operation resulted in a write to the cache.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\"}]},[Tr]:{brief:\"The channel name that is being used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"mail\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[h]:{brief:\"Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",aliases:[dt],changelog:[{version:\"0.1.0\",prs:[106,127]},{version:\"0.0.0\"}]},[Ir]:{brief:\"Client port number.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:5432,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Or]:{brief:\"The duration of a Cloudflare D1 operation.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:543,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[y]:{brief:\"The type of query executed in a Cloudflare D1 operation\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"run\",deprecation:{replacement:\"db.operation.name\"},aliases:[_,v],changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.d1.query_type attribute\"}]},[Pr]:{brief:\"The number of rows read in a Cloudflare D1 operation.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:12,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Ar]:{brief:\"The number of rows written in a Cloudflare D1 operation.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:12,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Rr]:{brief:\"The name of the Cloudflare R2 bucket binding\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"MY_BUCKET\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.bucket attribute\"}]},[Sr]:{brief:\"The R2 API operation being performed\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"GetObject\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.operation attribute\"}]},[xr]:{brief:\"The delimiter used to group objects in an R2 list operation\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"/\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.delimiter attribute\"}]},[Nr]:{brief:\"The object key used in the R2 operation\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"my-file.txt\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.key attribute\"}]},[Cr]:{brief:\"The part number in a multipart upload operation\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.part_number attribute\"}]},[wr]:{brief:\"The prefix used to filter objects in an R2 list operation\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"images/\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.prefix attribute\"}]},[Lr]:{brief:\"The current attempt number for a Cloudflare Workflow step\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.attempt attribute\"}]},[Dr]:{brief:\"The backoff strategy for Cloudflare Workflow step retries\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"exponential\",changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.retries.backoff attribute\"}]},[Mr]:{brief:\"The delay between Cloudflare Workflow step retries\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"5 seconds\",changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.retries.delay attribute\"}]},[Ur]:{brief:\"The maximum number of retries for a Cloudflare Workflow step\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:3,changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.retries.limit attribute\"}]},[kr]:{brief:\"The timeout duration for a Cloudflare Workflow step\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1 minute\",changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.timeout attribute\"}]},[Gr]:{brief:\"The cloud account ID the resource is assigned to\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"123456789012\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.account.id attribute\"}]},[qr]:{brief:\"Cloud regions often have multiple, isolated locations known as zones to increase availability\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"us-east-1c\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.availability_zone attribute\"}]},[Vr]:{brief:\"The cloud platform in use\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"aws_lambda\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.platform attribute\"}]},[Yr]:{brief:\"Name of the cloud provider\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"aws\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.provider attribute\"}]},[Fr]:{brief:\"The geographical region the resource is running\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"us-east-1\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.region attribute\"}]},[Hr]:{brief:\"Cloud provider-specific native identifier of the monitored cloud resource\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function\",changelog:[{version:\"0.11.1\",prs:[414]}],additionalContext:[\"This can be an identifier for a resource in AWS, GCP, or Azure. There may be some overlap in values found here with other attributes. For instance, an AWS lambda ARN may be found here as well as in `aws.lambda.invoked_arn`. OTEL recommends setting them alongside each other.\"]},[ci]:{brief:\"The value of the recorded Cumulative Layout Shift (CLS) web vital\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.2361,deprecation:{replacement:\"browser.web_vital.cls.value\",reason:\"The CLS web vital is now recorded as a browser.web_vital.cls.value attribute.\"},aliases:[Je],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[bi]:{brief:\"The HTML elements or components responsible for the layout shift. is a numeric index from 1 to N\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"body > div#app\",deprecation:{replacement:\"browser.web_vital.cls.source.\",reason:\"The CLS source is now recorded as a browser.web_vital.cls.source. attribute.\"},aliases:[Xe],changelog:[{version:\"0.5.0\",prs:[234]}]},[gi]:{brief:\"The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"/app/myapplication/http/handler/server.py\",deprecation:{replacement:\"code.file.path\"},aliases:[di],changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[di]:{brief:\"The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"/app/myapplication/http/handler/server.py\",aliases:[gi],changelog:[{version:\"0.0.0\"}]},[ui]:{brief:\"The method or function name, or equivalent (usually rightmost part of the code unit's name).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"server_request\",aliases:[mi],changelog:[{version:\"0.1.0\",prs:[61,74]},{version:\"0.0.0\"}]},[mi]:{brief:\"The method or function fully-qualified name without arguments.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"server_request\",aliases:[ui],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[hi]:{brief:\"The line number in code.filepath best representing the operation. It SHOULD point within the code unit named in code.function\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:42,deprecation:{replacement:\"code.line.number\"},aliases:[yi],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61,108]},{version:\"0.0.0\"}]},[yi]:{brief:\"The line number in code.filepath best representing the operation. It SHOULD point within the code unit named in code.function\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:42,aliases:[hi],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Wr]:{brief:\"The 'namespace' within which code.function is defined. Usually the qualified class or module name, such that code.namespace + some separator + code.function form a unique identifier for the code unit.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"http.handler\",changelog:[{version:\"0.1.0\",prs:[61,74]},{version:\"0.0.0\"}]},[f]:{brief:\"Specifies the type of the current connection (e.g. wifi, ethernet, cellular , etc).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"wifi\",deprecation:{replacement:\"network.connection.type\",reason:\"Old namespace-less attribute, to be replaced with network.connection.type for span-first future\"},aliases:[G,E],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[fi]:{brief:\"Specifies the estimated effective round-trip time of the current connection, in milliseconds.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:100,deprecation:{replacement:\"network.connection.rtt\",reason:\"Old attribute name (no official namespace), to be replaced with network.connection.rtt for span-first future\"},aliases:[wt],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[Br]:{brief:\"The calendar system used by the culture.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"GregorianCalendar\",changelog:[{version:\"0.4.0\",prs:[243]}]},[Kr]:{brief:\"Human readable name of the culture.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"English (United States)\",changelog:[{version:\"0.4.0\",prs:[243]}]},[zr]:{brief:\"Whether the culture uses 24-hour time format.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.4.0\",prs:[243]}]},[jr]:{brief:\"The locale identifier following RFC 4646.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"en-US\",changelog:[{version:\"0.4.0\",prs:[243]}]},[Qr]:{brief:\"The timezone of the culture, as a geographic timezone identifier.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Europe/Vienna\",changelog:[{version:\"0.4.0\",prs:[243]}]},[Xr]:{brief:\"The name of a collection (table, container) within the database.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"users\",changelog:[{version:\"0.1.0\",prs:[106,127]},{version:\"0.0.0\"}]},[Jr]:{brief:\"The name of the driver used for the database connection.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"psycopg2\",changelog:[{version:\"0.5.0\",prs:[297],description:\"Added db.driver.name attribute\"}]},[vi]:{brief:\"The name of the database being accessed.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"customers\",deprecation:{replacement:\"db.namespace\"},aliases:[_i],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[_i]:{brief:\"The name of the database being accessed.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"customers\",aliases:[vi],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[v]:{brief:\"The name of the operation being executed.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"SELECT\",deprecation:{replacement:\"db.operation.name\"},aliases:[_,y],changelog:[{version:\"0.4.0\",prs:[199]},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[Zr]:{brief:\"The number of queries included in a batch operation. Operations are only considered batches when they contain two or more operations, and so db.operation.batch.size SHOULD never be 1.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:3,changelog:[{version:\"0.11.0\",prs:[407],description:\"Added db.operation.batch.size attribute\"}]},[_]:{brief:\"The name of the operation being executed.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"SELECT\",aliases:[v,y],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[$r]:{brief:\"A query parameter used in db.query.text, with being the parameter name, and the attribute value being a string representation of the parameter value.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",hasDynamicSuffix:!0,example:\"db.query.parameter.foo='123'\",changelog:[{version:\"0.1.0\",prs:[103,127]}]},[en]:{brief:\"A shortened representation of operation(s) in the full query. This attribute must be low-cardinality and should only contain the operation table names.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"SELECT users;\",changelog:[{version:\"0.4.0\",prs:[208]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ei]:{brief:\"The database parameterized query being executed. Any parameter values (filters, insertion values, etc) should be replaced with parameter placeholders. If applicable, use `db.query.parameter.` to add the parameter value.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"SELECT * FROM users WHERE id = $1\",aliases:[Ti],changelog:[{version:\"0.4.0\",prs:[208]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[tn]:{brief:\"The redis connection name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"my-redis-instance\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[sn]:{brief:\"The key the Redis command is operating on.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"user:2047:city\",changelog:[{version:\"0.6.0\",prs:[326],description:\"Added db.redis.key attribute\"}]},[rn]:{brief:\"The array of command parameters given to a redis command.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"test\",\"*\"],changelog:[{version:\"0.0.0\"}]},[nn]:{brief:\"The array of query bindings.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"1\",\"foo\"],deprecation:{replacement:\"db.query.parameter.\",reason:\"Instead of adding every binding in the db.sql.bindings attribute, add them as individual entires with db.query.parameter..\"},changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[Ti]:{brief:\"The database statement being executed.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"SELECT * FROM users\",deprecation:{replacement:\"db.query.text\"},aliases:[Ei],changelog:[{version:\"0.4.0\",prs:[199]},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[an]:{brief:\"The name of a stored procedure being called.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"GetUserById\",changelog:[{version:\"0.11.0\",prs:[398]}]},[Ii]:{brief:\"An identifier for the database management system (DBMS) product being used. See [OpenTelemetry docs](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/database/database-spans.md#notes-and-well-known-identifiers-for-dbsystem) for a list of well-known identifiers.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"postgresql\",deprecation:{replacement:\"db.system.name\"},aliases:[Oi],changelog:[{version:\"0.4.0\",prs:[199,224]},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[Oi]:{brief:\"An identifier for the database management system (DBMS) product being used. See [OpenTelemetry docs](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/database/database-spans.md#notes-and-well-known-identifiers-for-dbsystem) for a list of well-known identifiers.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"postgresql\",aliases:[Ii],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[on]:{brief:\"The database user.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"fancy_user\",changelog:[{version:\"0.0.0\"}]},[Pi]:{brief:\"The estimated total memory capacity of the device, only a rough estimation in gigabytes.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"8 GB\",deprecation:{replacement:\"device.memory.estimated_capacity\",reason:\"Old namespace-less attribute, to be replaced with device.memory.estimated_capacity for span-first future\"},aliases:[Ai],changelog:[{version:\"0.5.0\",prs:[281],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[ln]:{brief:\"The CPU architectures of the device.\",type:\"string[]\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:[\"arm64-v8a\",\"armeabi-v7a\",\"armeabi\"],changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.archs attribute\"}]},[pn]:{brief:\"The battery level of the device as a percentage (0-100).\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:100,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.battery_level attribute\"}]},[cn]:{brief:\"The battery temperature of the device in Celsius.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:25,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.battery_temperature attribute\"}]},[bn]:{brief:\"A formatted UTC timestamp when the system was booted.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"2018-02-08T12:52:12Z\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.boot_time attribute\"}]},[gn]:{brief:\"The brand of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Apple\",changelog:[{version:\"0.1.0\",prs:[116,127]}]},[dn]:{brief:\"Whether the device was charging or not.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!1,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.charging attribute\"}]},[un]:{brief:\"The chipset of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Qualcomm SM8550\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.chipset attribute\"}]},[mn]:{brief:\"The classification of the device. For example, `low`, `medium`, or `high`. Typically inferred by Relay - SDKs generally do not need to set this directly.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"medium\",changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.class attribute\"}]},[E]:{brief:\"The internet connection type currently being used by the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"wifi\",deprecation:{replacement:\"network.connection.type\",reason:\"This attribute is being deprecated in favor of network.connection.type\"},aliases:[G,f],changelog:[{version:\"0.5.0\",prs:[303],description:\"Added and deprecated device.connection_type in favor of network.connection.type\"}]},[hn]:{brief:\"A description of the CPU of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.cpu_description attribute\"}]},[yn]:{brief:\"External storage free size in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:67108864e3,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.external_free_storage attribute\"}]},[fn]:{brief:\"External storage total size in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:134217728e3,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.external_storage_size attribute\"}]},[vn]:{brief:\"The family of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"iPhone\",changelog:[{version:\"0.1.0\",prs:[116,127]}]},[_n]:{brief:\"Free system memory in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2147483648,changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.free_memory attribute\"}]},[En]:{brief:\"Free device storage in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:107374182400,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.free_storage attribute\"}]},[Tn]:{brief:\"Unique device identifier.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.id attribute\"}]},[In]:{brief:\"The locale of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"en-US\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.locale attribute\"}]},[On]:{brief:\"Whether the device was low on memory.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!1,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.low_memory attribute\"}]},[Pn]:{brief:\"Whether the device is in Low Power Mode.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.6.0\",prs:[314],description:\"Added device.low_power_mode attribute\"}]},[An]:{brief:\"The manufacturer of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Google\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.manufacturer attribute\"}]},[Ai]:{brief:\"The estimated total memory capacity of the device, only a rough estimation in gigabytes. Browsers report estimations in buckets of powers of 2, mostly capped at 8 GB\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:8,aliases:[Pi],changelog:[{version:\"0.5.0\",prs:[281],description:\"Added attribute device.memory.estimated_capacity to be used instead of deviceMemory\"}]},[Rn]:{brief:\"Total system memory available in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:17179869184,changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.memory_size attribute\"}]},[Sn]:{brief:\"The model of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"iPhone 15 Pro Max\",changelog:[{version:\"0.1.0\",prs:[116,127]}]},[xn]:{brief:\"An internal hardware revision to identify the device exactly.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"N861AP\",changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.model_id attribute\"}]},[Nn]:{brief:\"The name of the device. On mobile, this is the user-assigned device name. On servers and desktops, this is typically the hostname.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"localhost\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.name attribute\"}]},[Cn]:{brief:\"Whether the device was online or not.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.online attribute\"}]},[wn]:{brief:'The orientation of the device, either \"portrait\" or \"landscape\".',type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"portrait\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.orientation attribute\"}]},[Ri]:{brief:'Number of \"logical processors\".',type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:8,aliases:[gt],changelog:[{version:\"0.5.0\",prs:[300],description:\"Added and deprecated attribute device.processor_count in favor of device.cpu.logical_core_count\"}]},[Ln]:{brief:\"Processor frequency in MHz.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2400,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.processor_frequency attribute\"}]},[Dn]:{brief:\"The screen density of the device.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2.625,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_density attribute\"}]},[Mn]:{brief:\"The screen density in dots-per-inch (DPI) of the device.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:420,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_dpi attribute\"}]},[Un]:{brief:\"The height of the device screen in pixels.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2400,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_height_pixels attribute\"}]},[kn]:{brief:\"The width of the device screen in pixels.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1080,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_width_pixels attribute\"}]},[Gn]:{brief:\"Whether the device is a simulator or an actual device.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!1,changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.simulator attribute\"}]},[qn]:{brief:\"Total device storage in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:274877906944,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.storage_size attribute\"}]},[Vn]:{brief:\"The thermal state of the device. Based on Apple's `ProcessInfo.ThermalState` enum: `nominal`, `fair`, `serious`, or `critical`.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"nominal\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.thermal_state attribute\"}]},[Yn]:{brief:\"The timezone of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Europe/Vienna\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.timezone attribute\"}]},[Fn]:{brief:\"Memory usable for the app in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2147483648,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.usable_memory attribute\"}]},[Si]:{brief:\"Specifies the estimated effective type of the current connection (e.g. slow-2g, 2g, 3g, 4g).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"4g\",deprecation:{replacement:\"network.connection.effective_type\",reason:\"Old namespace-less attribute, to be replaced with network.connection.effective_type for span-first future\"},aliases:[Ct],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[xi]:{brief:\"The sentry environment.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.environment\"},aliases:[Jt],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[Hn]:{brief:\"Describes a class of error the operation ended with.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"timeout\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Wn]:{brief:\"The unique identifier for this event (log record)\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234567890,changelog:[{version:\"0.1.0\",prs:[101]}]},[Bn]:{brief:\"The name that uniquely identifies this event (log record)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Process Payload\",changelog:[{version:\"0.1.0\",prs:[101,127]}]},[Kn]:{brief:\"SHOULD be set to true if the exception event is recorded at a point where it is known that the exception is escaping the scope of the span.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[zn]:{brief:\"The error message.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"ENOENT: no such file or directory\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[jn]:{brief:\"A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:`Exception in thread \"main\" java.lang.RuntimeException: Test exception\n at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n at com.example.GenerateTrace.main(GenerateTrace.java:5)`,changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Qn]:{brief:\"The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"OSError\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Xn]:{brief:\"A boolean that is true if the serverless function is executed for the first time (aka cold-start).\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[Jn]:{brief:\"A string containing the schedule period as Cron Expression.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"0/5 * * * ? *\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Zn]:{brief:\"The duration a function took to run, in milliseconds.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:120,changelog:[{version:\"0.11.0\",prs:[403]}]},[$n]:{brief:\"The code that's run when the cloud provider invokes your function.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"my_main_function\",changelog:[{version:\"0.11.0\",prs:[403,415]}]},[ea]:{brief:\"The Service Account (GCP), IAM Execution Role (AWS), or Managed Identity (Azure) used by the serverless function when interacting with other cloud services\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"name@project.iam.gserviceaccount.com (GCP), arn:aws:iam::123456789012:role/role-name (AWS), 00000000-0000-0000-0000-000000000000 (Azure)\",changelog:[{version:\"0.11.0\",prs:[403]}]},[Ni]:{brief:\"The invocation ID of the current function invocation.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"af9d5aa4-a685-4c5f-a22b-444f80b3cc28\",aliases:[Ye],changelog:[{version:\"0.11.1\",prs:[414,424]}]},[Ci]:{brief:\"The name of the serverless function\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"my_function\",aliases:[Fe],changelog:[{version:\"0.11.0\",prs:[403,415]}]},[ia]:{brief:\"A string containing the function invocation time in the ISO 8601 format expressed in UTC.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"2020-01-23T13:47:06Z\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[ta]:{brief:\"Type of the trigger which caused this function invocation.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"timer\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[wi]:{brief:\"The version of the function that was invoked\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"$LATEST\",aliases:[He],changelog:[{version:\"0.11.1\",prs:[414,424]}]},[Li]:{brief:\"The time it takes for the browser to render the first piece of meaningful content on the screen\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:547.6951,deprecation:{replacement:\"browser.web_vital.fcp.value\",reason:\"This attribute is being deprecated in favor of browser.web_vital.fcp.value\"},aliases:[Ze],changelog:[{version:\"0.5.0\",prs:[235]}]},[sa]:{brief:\"An instance of a feature flag evaluation. The value of this attribute is the boolean representing the evaluation result. The suffix is the name of the feature flag.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"flag.evaluation.is_new_ui=true\",changelog:[{version:\"0.1.0\",prs:[103]}]},[Di]:{brief:\"The time it takes for the browser to render the first pixel on the screen\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:477.1926,deprecation:{replacement:\"browser.web_vital.fp.value\",reason:\"This attribute is being deprecated in favor of browser.web_vital.fp.value\"},aliases:[$e],changelog:[{version:\"0.5.0\",prs:[235]}]},[Mi]:{brief:\"The sum of all delayed frame durations in seconds during the lifetime of the span. For more information see [frames delay](https://develop.sentry.dev/sdk/performance/frames-delay/).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:5,deprecation:{replacement:\"app.vitals.frames.delay.value\",reason:\"Replaced by app.vitals.frames.delay.value to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[we],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.delay.value\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Ui]:{brief:\"The number of frozen frames rendered during the lifetime of the span.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:3,deprecation:{replacement:\"app.vitals.frames.frozen.count\",reason:\"Replaced by app.vitals.frames.frozen.count to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[Le],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.frozen.count\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[ra]:{brief:\"The rate of frozen frames, or `app_vitals.frames.frozen.count` divided by `app_vitals.frames.total.count`. This is computed by Relay.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[362],description:\"Added frames_frozen_rate attribute\"}]},[ki]:{brief:\"The number of slow frames rendered during the lifetime of the span.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,deprecation:{replacement:\"app.vitals.frames.slow.count\",reason:\"Replaced by app.vitals.frames.slow.count to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[De],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.slow.count\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[na]:{brief:\"The rate of slow frames, or `app_vitals.frames.slow.count` divided by `app_vitals.frames.total.count`. This is computed by Relay.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[362],description:\"Added frames_slow_rate attribute\"}]},[Gi]:{brief:\"The number of total frames rendered during the lifetime of the span.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:60,deprecation:{replacement:\"app.vitals.frames.total.count\",reason:\"Replaced by app.vitals.frames.total.count to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[Me],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.total.count\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[aa]:{brief:\"The error message of a file system error.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"ENOENT: no such file or directory\",deprecation:{replacement:\"error.type\",reason:\"This attribute is not part of the OpenTelemetry specification and error.type fits much better.\"},changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[oa]:{brief:\"The event ID from the legacy GCP Cloud Function context (1st gen)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.event_id attribute\"}]},[la]:{brief:\"The type of the GCP Cloud Function event\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"google.pubsub.topic.publish\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.event_type attribute\"}]},[pa]:{brief:\"The unique event ID from the GCP CloudEvents context (2nd gen Cloud Functions)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.id attribute\"}]},[ca]:{brief:\"The resource that triggered the GCP Cloud Function event\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"projects/my-project/topics/my-topic\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.resource attribute\"}]},[ba]:{brief:\"The source of the GCP Cloud Function event\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"//pubsub.googleapis.com/projects/my-project/topics/my-topic\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.source attribute\"}]},[ga]:{brief:\"The CloudEvents specification version of the GCP Cloud Function event\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1.0\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.specversion attribute\"}]},[da]:{brief:\"The timestamp of the GCP Cloud Function event\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"2024-01-01T00:00:00.000Z\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.time attribute\"}]},[ua]:{brief:\"The legacy timestamp of the GCP Cloud Function event\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"2024-01-01T00:00:00.000Z\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.timestamp attribute\"}]},[ma]:{brief:\"The type of the GCP Cloud Function event context\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"cloud_functions.context\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.type attribute\"}]},[ha]:{brief:\"The ID of the project in GCP that this resource is associated with\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"my-project-123\",changelog:[{version:\"0.11.0\",prs:[403]}]},[ya]:{brief:\"The name of the agent being used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"ResearchAssistant\",changelog:[{version:\"0.1.0\",prs:[62,127]}]},[fa]:{brief:\"The fraction of the model context window utilized by this generation.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.75,changelog:[{version:\"0.5.0\",prs:[315],description:\"Added gen_ai.context.utilization attribute\"}]},[va]:{brief:\"The maximum context window size supported by the model for this generation.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:128e3,changelog:[{version:\"0.5.0\",prs:[315],description:\"Added gen_ai.context.window_size attribute\"}]},[_a]:{brief:\"The unique identifier for a conversation (session, thread), used to store and correlate messages within this conversation.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"conv_5j66UpCpwteGg4YSxUnt7lPY\",changelog:[{version:\"0.4.0\",prs:[250]}]},[Ea]:{brief:\"The cost of tokens used to process the AI input (prompt) in USD (without cached input tokens).\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:123.45,changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.input_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.input_tokens.\",\"This is the cost of non-cached input tokens only. The cost of cached tokens is excluded from this value.\"]},[Ta]:{brief:\"The cost of tokens used for creating the AI output in USD (without reasoning tokens).\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:123.45,changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.output_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.output_tokens.\",\"This is the cost of non-reasoning output tokens only. The cost of reasoning tokens is excluded from this value.\"]},[qi]:{brief:\"The total cost for the tokens used.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:12.34,aliases:[ye],changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[126]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.total_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.total_tokens.\"]},[Ia]:{brief:\"The input to the embeddings model.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"What's the weather in Paris?\",changelog:[{version:\"0.3.1\",prs:[195]}]},[Oa]:{brief:\"Framework-specific tracing label for the execution of a function or other unit of execution in a generative AI system.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"my-awesome-function\",changelog:[{version:\"0.5.0\",prs:[308],description:\"Added gen_ai.function_id attribute\"}]},[Vi]:{brief:'The messages passed to the model. It has to be a stringified version of an array of objects. The `role` attribute of each object must be `\"user\"`, `\"assistant\"`, `\"tool\"`, or `\"system\"`. For messages of the role `\"tool\"`, the `content` can be a string or an arbitrary object with information about the tool call. For other messages the `content` can be either a string or a list of objects in the format `{type: \"text\", text:\"...\"}`.',type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:'[{\"role\": \"user\", \"parts\": [{\"type\": \"text\", \"content\": \"Weather in Paris?\"}]}, {\"role\": \"assistant\", \"parts\": [{\"type\": \"tool_call\", \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\", \"name\": \"get_weather\", \"arguments\": {\"location\": \"Paris\"}}]}, {\"role\": \"tool\", \"parts\": [{\"type\": \"tool_call_response\", \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\", \"result\": \"rainy, 57\\xB0F\"}]}]',aliases:[ue],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[221]}]},[Pa]:{brief:\"The name of the operation being performed. It has the following list of well-known values: 'chat', 'create_agent', 'embeddings', 'execute_tool', 'generate_content', 'invoke_agent', 'text_completion'. If one of them applies, then that value MUST be used. Otherwise a custom value MAY be used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"chat\",changelog:[{version:\"0.4.0\",prs:[225]},{version:\"0.1.0\",prs:[62,127]}]},[Aa]:{brief:\"The type of AI operation. Must be one of 'agent' (invoke_agent and create_agent spans), 'ai_client' (any LLM call), 'tool' (execute_tool spans), 'handoff' (handoff spans), 'other' (input and output processors, skill loading, guardrails etc.) . Added during ingestion based on span.op and gen_ai.operation.type. Used to filter and aggregate data in the UI\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"tool\",changelog:[{version:\"0.4.0\",prs:[257]},{version:\"0.1.0\",prs:[113,127]}]},[Ra]:{brief:\"The model's response messages. It has to be a stringified version of an array of message objects, which can include text responses and tool calls.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:'[{\"role\": \"assistant\", \"parts\": [{\"type\": \"text\", \"content\": \"The weather in Paris is currently rainy with a temperature of 57\\xB0F.\"}], \"finish_reason\": \"stop\"}]',changelog:[{version:\"0.4.0\",prs:[221]}]},[Yi]:{brief:\"Name of the AI pipeline or chain being executed.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Autofix Pipeline\",aliases:[le],changelog:[{version:\"0.1.0\",prs:[76,127]}]},[Sa]:{brief:\"The input messages sent to the model\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:'[{\"role\": \"user\", \"message\": \"hello\"}]',deprecation:{reason:\"Deprecated from OTEL, use gen_ai.input.messages with the new format instead.\"},changelog:[{version:\"0.1.0\",prs:[74,108,119]},{version:\"0.0.0\"}]},[Fi]:{brief:\"The name of the prompt that uniquely identifies it.\",type:\"string\",pii:{isPii:\"maybe\",reason:\"Prompt names may reveal user behavior patterns or sensitive operations\"},isInOtel:!0,visibility:\"public\",example:\"summarize_text\",aliases:[xt],changelog:[{version:\"0.12.0\",prs:[420],description:\"Added gen_ai.prompt.name attribute\"}]},[T]:{brief:\"The Generative AI provider as identified by the client or server instrumentation.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"openai\",aliases:[u,I],changelog:[{version:\"0.4.0\",prs:[253]}]},[xa]:{brief:\"The available tools for the model. It has to be a stringified version of an array of objects.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'[{\"name\": \"get_weather\", \"description\": \"Get the weather for a given location\"}, {\"name\": \"get_news\", \"description\": \"Get the news for a given topic\"}]',deprecation:{replacement:\"gen_ai.tool.definitions\"},changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,127]}]},[Hi]:{brief:\"Used to reduce repetitiveness of generated tokens. The higher the value, the stronger a penalty is applied to previously present tokens, proportional to how many times they have already appeared in the prompt or prior generation.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:.5,aliases:[re],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},[Na]:{brief:\"The maximum number of tokens to generate in the response.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:2048,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[62]}]},[Wi]:{brief:'The messages passed to the model. It has to be a stringified version of an array of objects. The `role` attribute of each object must be `\"user\"`, `\"assistant\"`, `\"tool\"`, or `\"system\"`. For messages of the role `\"tool\"`, the `content` can be a string or an arbitrary object with information about the tool call. For other messages the `content` can be either a string or a list of objects in the format `{type: \"text\", text:\"...\"}`.',type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'[{\"role\": \"system\", \"content\": \"Generate a random number.\"}, {\"role\": \"user\", \"content\": [{\"text\": \"Generate a random number between 0 and 10.\", \"type\": \"text\"}]}, {\"role\": \"tool\", \"content\": {\"toolCallId\": \"1\", \"toolName\": \"Weather\", \"output\": \"rainy\"}}]',deprecation:{replacement:\"gen_ai.input.messages\"},aliases:[ae],changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,74,108,119,122]}]},[Ca]:{brief:\"The model identifier being used for the request.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"gpt-4-turbo-preview\",changelog:[{version:\"0.1.0\",prs:[62,127]}]},[Bi]:{brief:\"Used to reduce repetitiveness of generated tokens. Similar to frequency_penalty, except that this penalty is applied equally to all tokens that have already appeared, regardless of their exact frequencies.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:.5,aliases:[ce],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},[Ki]:{brief:\"The seed, ideally models given the same seed and same other parameters will produce the exact same output.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"1234567890\",aliases:[be],changelog:[{version:\"0.1.0\",prs:[57,127]}]},[zi]:{brief:\"For an AI model call, the temperature parameter. Temperature essentially means how random the output will be.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:.1,aliases:[de],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},[ji]:{brief:\"Limits the model to only consider the K most likely next tokens, where K is an integer (e.g., top_k=20 means only the 20 highest probability tokens are considered).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:35,aliases:[me],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},[Qi]:{brief:\"Limits the model to only consider tokens whose cumulative probability mass adds up to p, where p is a float between 0 and 1 (e.g., top_p=0.7 means only tokens that sum up to 70% of the probability mass are considered).\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:.7,aliases:[he],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},[Xi]:{brief:\"The reason why the model stopped generating.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"COMPLETE\",aliases:[se],changelog:[{version:\"0.1.0\",prs:[57,127]}]},[Ji]:{brief:\"Unique identifier for the completion.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"gen_123abc\",aliases:[ne],changelog:[{version:\"0.1.0\",prs:[57,127]}]},[Zi]:{brief:\"The vendor-specific ID of the model used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"gpt-4\",aliases:[oe],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[$i]:{brief:\"Whether or not the AI model call's response was streamed back asynchronously\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,aliases:[ge],changelog:[{version:\"0.1.0\",prs:[76]}]},[wa]:{brief:\"The model's response text messages. It has to be a stringified version of an array of response text messages.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'[\"The weather in Paris is rainy and overcast, with temperatures around 57\\xB0F\", \"The weather in London is sunny and warm, with temperatures around 65\\xB0F\"]',deprecation:{replacement:\"gen_ai.output.messages\"},changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,74]}]},[et]:{brief:\"Time in seconds when the first response content chunk arrived in streaming responses.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:.6853435,aliases:[it],changelog:[{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.response.time_to_first_chunk attribute\"}]},[it]:{brief:\"Time in seconds when the first response content chunk arrived in streaming responses.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.6853435,deprecation:{replacement:\"gen_ai.response.time_to_first_chunk\"},aliases:[et],changelog:[{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.response.time_to_first_chunk\"},{version:\"0.4.0\",prs:[227]}]},[La]:{brief:\"The total output tokens per seconds throughput\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:12345.67,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[66]}]},[Da]:{brief:\"The tool calls in the model's response. It has to be a stringified version of an array of objects.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'[{\"name\": \"get_weather\", \"arguments\": {\"location\": \"Paris\"}}]',deprecation:{replacement:\"gen_ai.output.messages\"},changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,74]}]},[I]:{brief:\"The provider of the model.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"openai\",deprecation:{replacement:\"gen_ai.provider.name\"},aliases:[u,T],changelog:[{version:\"0.4.0\",prs:[253]},{version:\"0.1.0\",prs:[57,127]}]},[tt]:{brief:\"The system instructions passed to the model.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"You are a helpful assistant\",aliases:[pe],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[221]}]},[Ma]:{brief:\"The system instructions passed to the model.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"You are a helpful assistant\",deprecation:{replacement:\"gen_ai.system_instructions\"},changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[62]}]},[st]:{brief:\"The arguments of the tool call. It has to be a stringified version of the arguments to the tool.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:'{\"location\": \"Paris\"}',aliases:[rt],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.4.0\",prs:[221]}]},[e]:{brief:\"The result of the tool call. It has to be a stringified version of the result of the tool.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"rainy, 57\\xB0F\",aliases:[t,i,l],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.4.0\",prs:[221]}]},[Ua]:{brief:\"The list of source system tool definitions available to the GenAI agent or model.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:'[{\"type\": \"function\", \"name\": \"get_current_weather\", \"description\": \"Get the current weather in a given location\", \"parameters\": {\"type\": \"object\", \"properties\": {\"location\": {\"type\": \"string\", \"description\": \"The city and state, e.g. San Francisco, CA\"}, \"unit\": {\"type\": \"string\", \"enum\": [\"celsius\", \"fahrenheit\"]}}, \"required\": [\"location\", \"unit\"]}}]',changelog:[{version:\"0.4.0\",prs:[221]}]},[ka]:{brief:\"The description of the tool being used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Searches the web for current information about a topic\",changelog:[{version:\"0.1.0\",prs:[62,127]}]},[rt]:{brief:\"The input of the tool being used. It has to be a stringified version of the input to the tool.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'{\"location\": \"Paris\"}',deprecation:{replacement:\"gen_ai.tool.call.arguments\"},aliases:[st],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.1.0\",prs:[63,74]}]},[i]:{brief:\"The response from a tool or function call passed to the model.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"rainy, 57\\xB0F\",deprecation:{replacement:\"gen_ai.tool.call.result\"},aliases:[e,t,l],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.1.0\",prs:[62]}]},[O]:{brief:\"Name of the tool utilized by the agent.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Flights\",aliases:[d,U],changelog:[{version:\"0.1.0\",prs:[57,127]}]},[t]:{brief:\"The output of the tool being used. It has to be a stringified version of the output of the tool.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"rainy, 57\\xB0F\",deprecation:{replacement:\"gen_ai.tool.call.result\"},aliases:[e,i,l],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.1.0\",prs:[63,74]}]},[Ga]:{brief:\"The type of tool being used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"function\",deprecation:{reason:\"The gen_ai.tool.type attribute is deprecated and should no longer be set.\"},changelog:[{version:\"0.1.0\",prs:[62,127]}]},[nt]:{brief:\"The number of tokens written to the cache when processing the AI input (prompt).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:100,aliases:[lt],changelog:[{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.usage.cache_creation.input_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},[at]:{brief:\"The number of cached tokens used to process the AI input (prompt).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:50,aliases:[ot],changelog:[{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.usage.cache_read.input_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.input_tokens, not an independent count. Do not sum this with gen_ai.usage.input_tokens \\u2014 it is already included.\"]},[P]:{brief:\"The number of tokens used in the GenAI response (completion).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:10,deprecation:{replacement:\"gen_ai.usage.output_tokens\"},aliases:[g,R],changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},[A]:{brief:\"The number of tokens used to process the AI input (prompt) including cached input tokens.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:10,aliases:[m,S],changelog:[{version:\"0.11.0\",prs:[418],description:\"Update additional_context to reference gen_ai.usage.cache_read.input_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.5.0\",prs:[261]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This count includes cached input tokens. gen_ai.usage.cache_read.input_tokens is a subset of this value, not an independent count \\u2014 do not sum them together.\"]},[ot]:{brief:\"The number of cached tokens used to process the AI input (prompt).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:50,deprecation:{replacement:\"gen_ai.usage.cache_read.input_tokens\"},aliases:[at],changelog:[{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.usage.cache_read.input_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[62,112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.input_tokens, not an independent count. Do not sum this with gen_ai.usage.input_tokens \\u2014 it is already included.\"]},[lt]:{brief:\"The number of tokens written to the cache when processing the AI input (prompt).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:100,deprecation:{replacement:\"gen_ai.usage.cache_creation.input_tokens\"},aliases:[nt],changelog:[{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.usage.cache_creation.input_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[217,228]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},[R]:{brief:\"The number of tokens used for creating the AI output (including reasoning tokens).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:10,aliases:[g,P],changelog:[{version:\"0.11.0\",prs:[418],description:\"Update additional_context to reference gen_ai.usage.reasoning.output_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.5.0\",prs:[261]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This count includes reasoning tokens. gen_ai.usage.reasoning.output_tokens is a subset of this value, not an independent count \\u2014 do not sum them together.\"]},[pt]:{brief:\"The number of tokens used for reasoning to create the AI output.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:75,deprecation:{replacement:\"gen_ai.usage.reasoning.output_tokens\"},aliases:[ct],changelog:[{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.usage.reasoning.output_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[62,112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.output_tokens, not an independent count. Do not sum this with gen_ai.usage.output_tokens \\u2014 it is already included.\"]},[S]:{brief:\"The number of tokens used in the GenAI input (prompt).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:20,deprecation:{replacement:\"gen_ai.usage.input_tokens\"},aliases:[m,A],changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},[ct]:{brief:\"The number of tokens used for reasoning to create the AI output.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:75,aliases:[pt],changelog:[{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.usage.reasoning.output_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.output_tokens, not an independent count. Do not sum this with gen_ai.usage.output_tokens \\u2014 it is already included.\"]},[bt]:{brief:\"The total number of tokens used to process the prompt. (input tokens plus output todkens)\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:20,aliases:[fe],changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is the sum of gen_ai.usage.input_tokens and gen_ai.usage.output_tokens. Do not sum this with either of them \\u2014 they are already included.\"]},[qa]:{brief:\"The GraphQL document being executed.\",type:\"string\",pii:{isPii:\"true\",reason:\"The document may contain sensitive information in arguments or variables. Instrumentation should redact sensitive information when possible.\"},isInOtel:!0,visibility:\"public\",example:\"query findBookById { bookById(id: ?) { name } }\",changelog:[{version:\"0.7.0\",description:\"Adds the `graphql.document` attribute to track the GraphQL document being executed.\"}]},[Va]:{brief:\"The name of the operation being executed.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"findBookById\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ya]:{brief:\"The type of the operation being executed.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"query\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[gt]:{brief:\"The number of logical CPU cores available.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"14\",deprecation:{replacement:\"device.processor_count\",reason:\"Old namespace-less attribute, to be replaced with device.processor_count for span-first future\"},aliases:[Ri],changelog:[{version:\"0.5.0\",prs:[281,300],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[dt]:{brief:\"Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"client.address\"},aliases:[h],changelog:[{version:\"0.1.0\",prs:[61,106,127]},{version:\"0.0.0\"}]},[Fa]:{brief:\"The decoded body size of the response (in bytes).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:456,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[x]:{brief:\"The actual version of the protocol used for network communication.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"1.1\",deprecation:{replacement:\"network.protocol.version\"},aliases:[F,z],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[Ha]:{brief:\"The fragments present in the URI. Note that this contains the leading # character, while the `url.fragment` attribute does not.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"#details\",changelog:[{version:\"0.0.0\"}]},[s]:{brief:\"The domain name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\",reason:\"Deprecated, use one of `server.address` or `client.address`, depending on the usage\"},aliases:[b,h,o,c],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[r]:{brief:\"The HTTP method used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"GET\",deprecation:{replacement:\"http.request.method\"},aliases:[n,a,p],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[Wa]:{brief:\"The query string present in the URL. Note that this contains the leading ? character, while the `url.query` attribute does not.\",type:\"string\",pii:{isPii:\"true\",reason:\"Query string values can contain sensitive information. Clients should attempt to scrub parameters that might contain sensitive information.\"},isInOtel:!1,visibility:\"public\",example:\"?foo=bar&bar=baz\",changelog:[{version:\"0.0.0\"}]},[Ba]:{brief:\"HTTP request body data. Can be given as string or structural data of any format.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:'[{\"role\": \"user\", \"message\": \"hello\"}]',changelog:[{version:\"0.6.0\",prs:[336],description:\"Added http.request.body.data attribute\"}]},[Ka]:{brief:\"The UNIX timestamp representing the time immediately after the browser finishes establishing the connection to the server to retrieve the resource. The timestamp value includes the time interval to establish the transport connection, as well as other time intervals such as TLS handshake and SOCKS authentication.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:173282955515e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[za]:{brief:\"The UNIX timestamp representing the time immediately before the user agent starts establishing the connection to the server to retrieve the resource.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1732829555111e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[ja]:{brief:\"The UNIX timestamp representing the time immediately after the browser finishes the domain-name lookup for the resource.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1732829555201e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[Qa]:{brief:\"The UNIX timestamp representing the time immediately before the browser starts the domain name lookup for the resource.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1732829555322e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[Xa]:{brief:\"The UNIX timestamp representing the time immediately before the browser starts to fetch the resource.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1732829555389e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[Ja]:{brief:\"HTTP request headers, being the normalized HTTP Header name (lowercase), the value being the header values.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",hasDynamicSuffix:!0,example:\"http.request.header.custom-header=['foo', 'bar']\",changelog:[{version:\"0.4.0\",prs:[201,204]},{version:\"0.1.0\",prs:[103]}]},[n]:{brief:\"The HTTP method used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"GET\",aliases:[p,r,a],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[a]:{brief:\"The HTTP method used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"GET\",deprecation:{replacement:\"http.request.method\"},aliases:[p,r,n],changelog:[{version:\"0.6.0\",prs:[343],description:\"Added http.request_method attribute\"}]},[Za]:{brief:\"The UNIX timestamp representing the timestamp immediately after receiving the last byte of the response of the last redirect\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1732829558502e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[130,134]}]},[$a]:{brief:\"The UNIX timestamp representing the start time of the fetch which that initiates the redirect.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1732829555495e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[eo]:{brief:\"The UNIX timestamp representing the time immediately before the browser starts requesting the resource from the server, cache, or local resource. If the transport connection fails and the browser retires the request, the value returned will be the start of the retry request.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:173282955551e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[io]:{brief:\"The ordinal number of request resending attempt (for any reason, including redirects).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[to]:{brief:\"The UNIX timestamp representing the time immediately after the browser receives the last byte of the resource or immediately before the transport connection is closed, whichever comes first.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:173282955589e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[so]:{brief:\"The UNIX timestamp representing the time immediately before the browser starts requesting the resource from the server, cache, or local resource. If the transport connection fails and the browser retires the request, the value returned will be the start of the retry request.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:17328295557e-1,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[ro]:{brief:\"The UNIX timestamp representing the time immediately before the browser starts the handshake process to secure the current connection. If a secure connection is not used, the property returns zero.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:173282955573e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[no]:{brief:\"The time in seconds from the browser's timeorigin to when the first byte of the request's response was received. See https://web.dev/articles/ttfb#measure-resource-requests\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1.032,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[131]}]},[ao]:{brief:\"The UNIX timestamp representing the timestamp immediately before dispatching the FetchEvent if a Service Worker thread is already running, or immediately before starting the Service Worker thread if it is not already running.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:173282955368e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[130,134]}]},[N]:{brief:\"The encoded body size of the response (in bytes).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:123,aliases:[C,w],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[106]},{version:\"0.0.0\"}]},[C]:{brief:\"The encoded body size of the response (in bytes).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:123,deprecation:{replacement:\"http.response.body.size\"},aliases:[N,w],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61,106]},{version:\"0.0.0\"}]},[w]:{brief:\"The size of the message body sent to the recipient (in bytes)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"http.response.header.custom-header=['foo', 'bar']\",aliases:[C,N],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[oo]:{brief:\"HTTP response headers, being the normalized HTTP Header name (lowercase), the value being the header values.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",hasDynamicSuffix:!0,example:\"http.response.header.custom-header=['foo', 'bar']\",changelog:[{version:\"0.4.0\",prs:[201,204]},{version:\"0.1.0\",prs:[103]}]},[ut]:{brief:\"The transfer size of the response (in bytes).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:456,aliases:[ht],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[mt]:{brief:\"The status code of the HTTP response.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:404,aliases:[ft],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[ht]:{brief:\"The transfer size of the response (in bytes).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:456,deprecation:{replacement:\"http.response.size\"},aliases:[ut],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[L]:{brief:\"The matched route, that is, the path template in the format used by the respective server framework.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"/users/:id\",aliases:[ys],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[yt]:{brief:\"The URI scheme component identifying the used protocol.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"https\",deprecation:{replacement:\"url.scheme\"},aliases:[hs],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[o]:{brief:\"The server domain name\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\"},aliases:[b,c,s],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[lo]:{brief:\"The time in milliseconds the request spent in the server queue before processing began. Measured from the X-Request-Start header set by reverse proxies (e.g., Nginx, HAProxy, Heroku) to when the application started handling the request.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:50,changelog:[{version:\"0.5.0\",prs:[267]}]},[ft]:{brief:\"The status code of the HTTP response.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:404,deprecation:{replacement:\"http.response.status_code\"},aliases:[mt],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[po]:{brief:\"The pathname and query string of the URL.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"/test?foo=bar#buzz\",deprecation:{replacement:\"url.path\",reason:\"This attribute is being deprecated in favor of url.path and url.query\"},changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[D]:{brief:\"The URL of the resource that was fetched.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"https://example.com/test?foo=bar#buzz\",deprecation:{replacement:\"url.full\"},aliases:[te,ie],changelog:[{version:\"0.1.0\",prs:[61,108]},{version:\"0.0.0\"}]},[vt]:{brief:\"Value of the HTTP User-Agent header sent by the client.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1\",deprecation:{replacement:\"user_agent.original\"},aliases:[fs],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[co]:{brief:\"A unique identifier for the span.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"f47ac10b58cc4372a5670e02b2c3d479\",changelog:[{version:\"0.0.0\"}]},[_t]:{brief:\"The value of the recorded Interaction to Next Paint (INP) web vital\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:200,deprecation:{replacement:\"browser.web_vital.inp.value\",reason:\"The INP web vital is now recorded as a browser.web_vital.inp.value attribute.\"},aliases:[ei],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[bo]:{brief:\"The version of the JSON-RPC protocol used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"2.0\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Added jsonrpc.protocol.version attribute\"}]},[Et]:{brief:\"The JSON-RPC request identifier. Unique within the session.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"1\",aliases:[Nt],changelog:[{version:\"0.12.0\",prs:[420],description:\"Added jsonrpc.request.id attribute\"}]},[go]:{brief:\"Name of the garbage collector action.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"end of minor GC\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[uo]:{brief:\"Name of the garbage collector.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"G1 Young Generation\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[mo]:{brief:\"Name of the memory pool.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"G1 Old Gen\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[ho]:{brief:\"Name of the memory pool.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"G1 Old Gen\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[yo]:{brief:\"Whether the thread is daemon or not.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[fo]:{brief:\"State of the thread.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"blocked\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Tt]:{brief:\"The value of the recorded Largest Contentful Paint (LCP) web vital\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2500,deprecation:{replacement:\"browser.web_vital.lcp.value\",reason:\"The LCP web vital is now recorded as a browser.web_vital.lcp.value attribute.\"},aliases:[oi],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[It]:{brief:\"The dom element responsible for the largest contentful paint.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"img\",deprecation:{replacement:\"browser.web_vital.lcp.element\",reason:\"The LCP element is now recorded as a browser.web_vital.lcp.element attribute.\"},aliases:[ii],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ot]:{brief:\"The id of the dom element responsible for the largest contentful paint.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"#hero\",deprecation:{replacement:\"browser.web_vital.lcp.id\",reason:\"The LCP id is now recorded as a browser.web_vital.lcp.id attribute.\"},aliases:[ti],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Pt]:{brief:\"The time it took for the LCP element to be loaded\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1402,deprecation:{replacement:\"browser.web_vital.lcp.load_time\",reason:\"The LCP load time is now recorded as a browser.web_vital.lcp.load_time attribute.\"},aliases:[si],changelog:[{version:\"0.5.0\",prs:[233]}]},[At]:{brief:\"The time it took for the LCP element to be rendered\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1685,deprecation:{replacement:\"browser.web_vital.lcp.render_time\",reason:\"The LCP render time is now recorded as a browser.web_vital.lcp.render_time attribute.\"},aliases:[ri],changelog:[{version:\"0.5.0\",prs:[233]}]},[Rt]:{brief:\"The size of the largest contentful paint element.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234,deprecation:{replacement:\"browser.web_vital.lcp.size\",reason:\"The LCP size is now recorded as a browser.web_vital.lcp.size attribute.\"},aliases:[ni],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[St]:{brief:\"The url of the dom element responsible for the largest contentful paint.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com\",deprecation:{replacement:\"browser.web_vital.lcp.url\",reason:\"The LCP url is now recorded as a browser.web_vital.lcp.url attribute.\"},aliases:[ai],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[vo]:{brief:\"The name of the logger that generated this event.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"myLogger\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[_o]:{brief:\"Reason for the cancellation of an MCP operation.\",type:\"string\",pii:{isPii:\"maybe\",reason:\"Cancellation reasons may contain user-specific or sensitive information\"},isInOtel:!1,visibility:\"public\",example:\"User cancelled the request\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Eo]:{brief:\"Request ID of the cancelled MCP operation.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"123\",changelog:[{version:\"0.3.0\",prs:[171]}]},[To]:{brief:\"Name of the MCP client application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"claude-desktop\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Io]:{brief:\"Display title of the MCP client application.\",type:\"string\",pii:{isPii:\"maybe\",reason:\"Client titles may reveal user-specific application configurations or custom setups\"},isInOtel:!1,visibility:\"public\",example:\"Claude Desktop\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Oo]:{brief:\"Version of the MCP client application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1.0.0\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Po]:{brief:\"Lifecycle phase indicator for MCP operations.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"initialization_complete\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Ao]:{brief:\"Data type of the logged message content.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"string\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Ro]:{brief:\"Log level for MCP logging operations.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"info\",changelog:[{version:\"0.3.0\",prs:[171]}]},[So]:{brief:\"Logger name for MCP logging operations.\",type:\"string\",pii:{isPii:\"maybe\",reason:\"Logger names may be user-defined and could contain sensitive information\"},isInOtel:!1,visibility:\"public\",example:\"mcp_server\",changelog:[{version:\"0.3.0\",prs:[171]}]},[xo]:{brief:\"Log message content from MCP logging operations.\",type:\"string\",pii:{isPii:\"true\",reason:\"Log messages can contain user data\"},isInOtel:!1,visibility:\"public\",example:\"Tool execution completed successfully\",changelog:[{version:\"0.3.0\",prs:[171]}]},[No]:{brief:\"The name of the MCP request or notification method being called.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"tools/call\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},[Co]:{brief:\"Current progress value of an MCP operation.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:50,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},[wo]:{brief:\"Progress message describing the current state of an MCP operation.\",type:\"string\",pii:{isPii:\"maybe\",reason:\"Progress messages may contain user-specific or sensitive information\"},isInOtel:!1,visibility:\"public\",example:\"Processing 50 of 100 items\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Lo]:{brief:\"Calculated progress percentage of an MCP operation. Computed from current/total * 100.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:50,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},[Do]:{brief:\"Token for tracking progress of an MCP operation.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"progress-token-123\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Mo]:{brief:\"Total progress target value of an MCP operation.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:100,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},[xt]:{brief:\"Name of the MCP prompt template being used.\",type:\"string\",pii:{isPii:\"maybe\",reason:\"Prompt names may reveal user behavior patterns or sensitive operations\"},isInOtel:!1,visibility:\"public\",example:\"summarize\",deprecation:{replacement:\"gen_ai.prompt.name\",reason:\"OTel uses gen_ai.prompt.name for MCP prompt names\"},aliases:[Fi],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of gen_ai.prompt.name\"},{version:\"0.3.0\",prs:[171]}]},[Uo]:{brief:\"Description of the prompt result.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"A summary of the requested information\",changelog:[{version:\"0.3.0\",prs:[171]}]},[ko]:{brief:\"Content of the message in the prompt result. Used for single message results only.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"Please provide a summary of the document\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Go]:{brief:\"Number of messages in the prompt result.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},[qo]:{brief:\"Role of the message in the prompt result. Used for single message results only.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"user\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Vo]:{brief:\"Protocol readiness indicator for MCP session. Non-zero value indicates the protocol is ready.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},[Yo]:{brief:\"MCP protocol version used in the session.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"2024-11-05\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},[Fo]:{brief:\"MCP request argument with dynamic key suffix. The is replaced with the actual argument name. The value is a JSON-stringified representation of the argument value.\",type:\"string\",pii:{isPii:\"true\",reason:\"Arguments contain user input\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"mcp.request.argument.query='weather in Paris'\",changelog:[{version:\"0.3.0\",prs:[176]}]},[Ho]:{brief:\"Name argument from prompts/get MCP request.\",type:\"string\",pii:{isPii:\"true\",reason:\"Prompt names can contain user input\"},isInOtel:!1,visibility:\"public\",example:\"summarize\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Wo]:{brief:\"URI argument from resources/read MCP request.\",type:\"string\",pii:{isPii:\"true\",reason:\"URIs can contain user file paths\"},isInOtel:!1,visibility:\"public\",example:\"file:///path/to/resource\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Nt]:{brief:\"JSON-RPC request identifier for the MCP request. Unique within the MCP session.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1\",deprecation:{replacement:\"jsonrpc.request.id\",reason:\"OTel models MCP as JSON-RPC, uses jsonrpc.request.id\"},aliases:[Et],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of jsonrpc.request.id\"},{version:\"0.3.0\",prs:[171]}]},[M]:{brief:\"Protocol of the resource URI being accessed, extracted from the URI.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"file\",deprecation:{replacement:\"network.protocol.name\",reason:\"OTel uses the generic network.protocol.name attribute\"},aliases:[Y,K],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of network.protocol.name\"},{version:\"0.3.0\",prs:[171]}]},[Bo]:{brief:\"The resource URI being accessed in an MCP operation.\",type:\"string\",pii:{isPii:\"true\",reason:\"URIs can contain sensitive file paths\"},isInOtel:!0,visibility:\"public\",example:\"file:///path/to/file.txt\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},[Ko]:{brief:\"Name of the MCP server application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"sentry-mcp-server\",changelog:[{version:\"0.3.0\",prs:[171]}]},[zo]:{brief:\"Display title of the MCP server application.\",type:\"string\",pii:{isPii:\"maybe\",reason:\"Server titles may reveal user-specific application configurations or custom setups\"},isInOtel:!1,visibility:\"public\",example:\"Sentry MCP Server\",changelog:[{version:\"0.3.0\",prs:[171]}]},[jo]:{brief:\"Version of the MCP server application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"0.1.0\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Qo]:{brief:\"Identifier for the MCP session.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"550e8400-e29b-41d4-a716-446655440000\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},[U]:{brief:\"Name of the MCP tool being called.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"calculator\",deprecation:{replacement:\"gen_ai.tool.name\",reason:\"OTel uses gen_ai.tool.name for MCP tool names\"},aliases:[O,d],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of gen_ai.tool.name\"},{version:\"0.3.0\",prs:[171]}]},[l]:{brief:\"The content of the tool result.\",type:\"string\",pii:{isPii:\"true\",reason:\"Tool results can contain user data\"},isInOtel:!1,visibility:\"public\",example:'{\"output\": \"rainy\", \"toolCallId\": \"1\"}',deprecation:{replacement:\"gen_ai.tool.call.result\",reason:\"OTel uses gen_ai.tool.call.result for MCP tool results\"},aliases:[e,i,t],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of gen_ai.tool.call.result\"},{version:\"0.3.0\",prs:[171]},{version:\"0.2.0\",prs:[164]}]},[Xo]:{brief:\"Number of content items in the tool result.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},[Jo]:{brief:\"Whether a tool execution resulted in an error.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!1,deprecation:{replacement:\"error.type\",reason:\"OTel uses error.type set to 'tool_error' when isError is true. Cannot be automatically backfilled due to type mismatch (boolean vs string).\"},changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of error.type\"},{version:\"0.3.0\",prs:[171]}]},[k]:{brief:\"Transport method used for MCP communication.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"stdio\",deprecation:{replacement:\"network.transport\",reason:\"OTel uses the generic network.transport attribute\"},aliases:[H,X],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of network.transport\"},{version:\"0.3.0\",prs:[171]}]},[Zo]:{brief:\"Attributes from the Mapped Diagnostic Context (MDC) present at the moment the log record was created. The MDC is supported by all the most popular logging solutions in the Java ecosystem, and it's usually implemented as a thread-local map that stores context for e.g. a specific request.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"mdc.some_key='some_value'\",changelog:[{version:\"0.3.0\",prs:[176]}]},[$o]:{brief:\"The number of messages sent, received, or processed in the scope of the batching operation.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:10,changelog:[{version:\"0.6.0\",prs:[341],description:\"Added messaging.batch.message_count attribute\"}]},[el]:{brief:\"The message destination connection.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"BestTopic\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[il]:{brief:\"The message destination name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"BestTopic\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[tl]:{brief:\"The size of the message body in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:839,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[sl]:{brief:\"The size of the message body and metadata in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:1045,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[rl]:{brief:\"A value used by the messaging system as an identifier for the message, represented as a string.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"f47ac10b58cc4372a5670e02b2c3d479\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[nl]:{brief:\"The latency between when the message was published and received.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1732847252,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[al]:{brief:\"The amount of attempts to send the message.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[ol]:{brief:\"The name of the messaging operation being performed\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"send\",changelog:[{version:\"0.11.0\",prs:[392],description:\"Added messaging.operation.name attribute\"}]},[ll]:{brief:\"A string identifying the type of the messaging operation\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"create\",changelog:[{version:\"0.1.0\",prs:[51,127]}]},[pl]:{brief:\"The messaging system as identified by the client instrumentation.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"activemq\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[p]:{brief:\"The HTTP method used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"GET\",deprecation:{replacement:\"http.request.method\"},aliases:[n,a,r],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[cl]:{brief:\"The name of the middleware.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"AuthenticationMiddleware\",changelog:[{version:\"0.6.0\",prs:[336],description:\"Added middleware.name attribute\"}]},[bl]:{brief:\"The type of navigation done by a client-side router.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"router.push\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[gl]:{brief:\"The elapsed number of milliseconds between the start of the resource fetch and when it was completed or aborted by the user agent.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:100,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[68]}]},[dl]:{brief:'If request failed, the phase of its network error. If request succeeded, \"application\".',type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"application\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},[ul]:{brief:\"request's referrer, as determined by the referrer policy associated with its client.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com/foo?bar=baz\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},[ml]:{brief:\"The sampling function used to determine if the request should be sampled.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.5,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[68]}]},[hl]:{brief:'If request failed, the type of its network error. If request succeeded, \"ok\".',type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"dns.unreachable\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},[Ct]:{brief:\"Specifies the effective type of the current connection (e.g. slow-2g, 2g, 3g, 4g).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"4g\",aliases:[Si],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added attribute network.connection.effective_type to be used instead of effectiveConnectionType\"}]},[wt]:{brief:\"Specifies the estimated effective round-trip time of the current connection, in milliseconds.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:100,aliases:[fi],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added attribute network.connection.rtt to be used instead of connection.rtt\"}]},[G]:{brief:\"Specifies the type of the current connection (e.g. wifi, ethernet, cellular , etc).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"wifi\",aliases:[E,f],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added attribute network.connection.type to be used instead of connectionType\"}]},[q]:{brief:\"Local address of the network connection - IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"10.1.2.80\",aliases:[W,j],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Lt]:{brief:\"Local port number of the network connection.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:65400,aliases:[Mt],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[V]:{brief:\"Peer address of the network connection - IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"10.1.2.80\",aliases:[B,Q],changelog:[{version:\"0.1.0\",prs:[108,127]},{version:\"0.0.0\"}]},[yl]:{brief:\"Peer port number of the network connection.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:65400,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Y]:{brief:\"OSI application layer or non-OSI equivalent.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"http\",aliases:[K,M],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[F]:{brief:\"The actual version of the protocol used for network communication.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"1.1\",aliases:[x,z],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[H]:{brief:\"OSI transport layer or inter-process communication method.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"tcp\",aliases:[X,k],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[fl]:{brief:\"OSI network layer or non-OSI equivalent.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"ipv4\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[W]:{brief:\"Local address of the network connection - IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"192.168.0.1\",deprecation:{replacement:\"network.local.address\"},aliases:[q,j],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[c]:{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\"},aliases:[b,o,s],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[Dt]:{brief:\"Server port number.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:1337,deprecation:{replacement:\"server.port\"},aliases:[ps],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[B]:{brief:\"Peer address of the network connection - IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"192.168.0.1\",deprecation:{replacement:\"network.peer.address\"},aliases:[V,Q],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[vl]:{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\",reason:\"Deprecated, use server.address on client spans and client.address on server spans.\"},changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[_l]:{brief:\"Peer port number.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:1337,deprecation:{replacement:\"server.port\",reason:\"Deprecated, use server.port on client spans and client.port on server spans.\"},changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[K]:{brief:\"OSI application layer or non-OSI equivalent.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"http\",deprecation:{replacement:\"network.protocol.name\"},aliases:[Y,M],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[z]:{brief:\"The actual version of the protocol used for network communication.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"1.1\",deprecation:{replacement:\"network.protocol.version\"},aliases:[F,x],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[El]:{brief:\"OSI transport and network layer\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"inet\",deprecation:{replacement:\"network.transport\",reason:\"Deprecated, use network.transport and network.type.\"},changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[j]:{brief:\"Local address of the network connection mapping to Unix domain socket name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"/var/my.sock\",deprecation:{replacement:\"network.local.address\"},aliases:[q,W],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[Mt]:{brief:\"Local port number of the network connection.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:8080,deprecation:{replacement:\"network.local.port\"},aliases:[Lt],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[Q]:{brief:\"Peer address of the network connection - IP address\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"192.168.0.1\",deprecation:{replacement:\"network.peer.address\"},aliases:[V,B],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[Tl]:{brief:\"Peer address of the network connection - Unix domain socket name\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"/var/my.sock\",deprecation:{reason:\"Deprecated from OTEL, no replacement at this time\"},changelog:[{version:\"0.1.0\",prs:[61,119,127]},{version:\"0.0.0\"}]},[Il]:{brief:\"Peer port number of the network connection.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:8080,deprecation:{replacement:\"network.peer.port\"},changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[X]:{brief:\"OSI transport layer or inter-process communication method.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"tcp\",deprecation:{replacement:\"network.transport\"},aliases:[H,k],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[Ut]:{brief:\"The build ID of the operating system.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",deprecation:{replacement:\"os.build_id\"},aliases:[kt],changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.build attribute, deprecated in favor of os.build_id\"}]},[kt]:{brief:\"The build ID of the operating system.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"1234567890\",aliases:[Ut],changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.build as alias\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ol]:{brief:\"Human readable (not intended to be parsed) OS version information, like e.g. reported by ver or lsb_release -a commands.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Ubuntu 18.04.1 LTS\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Pl]:{brief:\"An independent kernel version string. Typically the entire output of the `uname` syscall.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"20.2.0\",changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.kernel_version attribute\"}]},[Al]:{brief:\"Human readable operating system name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Ubuntu\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Rl]:{brief:\"An unprocessed description string obtained by the operating system. For some well-known runtimes, Sentry will attempt to parse `name` and `version` from this string, if they are not explicitly given.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Ubuntu 22.04.4 LTS (Jammy Jellyfish)\",changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.raw_description attribute\"}]},[Sl]:{brief:\"Whether the operating system has been jailbroken or rooted.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.rooted attribute\"}]},[xl]:{brief:\"Whether the OS runs in dark mode or light mode.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"dark\",changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.theme attribute\"}]},[Nl]:{brief:\"The operating system type.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"linux\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Cl]:{brief:\"The version of the operating system.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"18.04.2\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[wl]:{brief:\"The name of the instrumentation scope - (InstrumentationScope.Name in OTLP).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"io.opentelemetry.contrib.mongodb\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ll]:{brief:\"The version of the instrumentation scope - (InstrumentationScope.Version in OTLP).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"2.4.5\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Dl]:{brief:\"Name of the code, either \\u201COK\\u201D or \\u201CERROR\\u201D. MUST NOT be set if the status code is UNSET.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"OK\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ml]:{brief:\"Description of the Status if it has a value, otherwise not set.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"resource not found\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Gt]:{brief:\"Decoded parameters extracted from a URL path. Usually added by client-side routing frameworks like vue-router.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"params.id='123'\",aliases:[ms],changelog:[{version:\"0.1.0\",prs:[103]}]},[qt]:{brief:\"The time between initiating a navigation to a page and the browser activating the page\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1.983,deprecation:{replacement:\"browser.performance.navigation.activation_start\",reason:\"The activationStart is now recorded as the browser.performance.navigation.activation_start attribute.\"},aliases:[ze],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added performance.activationStart attribute\"}]},[Vt]:{brief:\"The browser's performance.timeOrigin timestamp representing the time when the pageload was initiated\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1776185678886e-3,deprecation:{replacement:\"browser.performance.time_origin\",reason:\"The timeOrigin is now recorded as the browser.performance.time_origin attribute.\"},aliases:[je],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added performance.timeOrigin attribute\"}]},[Ul]:{brief:\"Also used by mobile SDKs to indicate the previous route in the application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"HomeScreen\",changelog:[{version:\"0.1.0\",prs:[74]},{version:\"0.0.0\"}]},[kl]:{brief:\"All the command arguments (including the command/executable itself) as received by the process.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:[\"cmd/otecol\",\"--config=config.yaml\"],changelog:[{version:\"0.6.0\",prs:[327],description:\"Added process.command_args attribute\"}]},[Gl]:{brief:\"The name of the executable that started the process.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"getsentry\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[ql]:{brief:\"The process ID of the running process.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:12345,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Yt]:{brief:\"An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment. Equivalent to `raw_description` in the Sentry runtime context.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Eclipse OpenJ9 VM openj9-0.21.0\",aliases:[zt],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Vl]:{brief:\"The name of the runtime engine.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"v8\",changelog:[{version:\"0.0.0\"}]},[Yl]:{brief:\"The version of the runtime engine.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"12.9.202.13-rusty\",changelog:[{version:\"0.0.0\"}]},[Ft]:{brief:\"The name of the runtime. Equivalent to `name` in the Sentry runtime context.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"node\",aliases:[Kt],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ht]:{brief:\"The version of the runtime of this process, as returned by the runtime without modification. Equivalent to `version` in the Sentry runtime context.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"18.04.2\",aliases:[jt],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Fl]:{brief:\"An item in a query string. Usually added by client-side routing frameworks like vue-router.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"query.id='123'\",deprecation:{replacement:\"url.query\",reason:\"Instead of sending items individually in query., they should be sent all together with url.query.\"},changelog:[{version:\"0.1.0\",prs:[103]}]},[Hl]:{brief:\"The version of the React framework\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"18.2.0\",changelog:[{version:\"0.7.0\",prs:[368],description:\"Added react.version attribute\"}]},[Wt]:{brief:\"The sentry release.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.release\"},aliases:[J],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[Wl]:{brief:\"Remix form data, being the form data key, the value being the form data value.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"http.response.header.text='test'\",changelog:[{version:\"0.1.0\",prs:[103]}]},[Bt]:{brief:\"The id of the sentry replay.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"123e4567e89b12d3a456426614174000\",deprecation:{replacement:\"sentry.replay_id\"},aliases:[Zt],changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[Bl]:{brief:\"The software deployment environment name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.environment\"},changelog:[{version:\"0.5.0\",prs:[266]}]},[Kl]:{brief:\"The software deployment environment name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.environment\"},changelog:[{version:\"0.3.1\",prs:[196]}]},[zl]:{brief:\"The render blocking status of the resource.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"non-blocking\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[jl]:{brief:\"The matched route, that is, the path template in the format used by the respective server framework. Also used by mobile SDKs to indicate the current route in the application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"App\\\\Controller::indexAction\",deprecation:{replacement:\"http.route\"},aliases:[L],changelog:[{version:\"0.1.0\",prs:[61,74]},{version:\"0.0.0\"}]},[Ql]:{brief:\"The numeric status code of the gRPC request.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Xl]:{brief:\"The fully-qualified logical name of the method from the RPC interface perspective.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"com.example.ExampleService/exampleMethod\",changelog:[{version:\"0.7.0\",prs:[351],description:\"Added rpc.method attribute\"}]},[Jl]:{brief:\"Status code of the RPC returned by the RPC server or generated by the client.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"DEADLINE_EXCEEDED\",changelog:[{version:\"0.7.0\",prs:[352],description:\"Added rpc.response.status_code attribute\"}]},[Zl]:{brief:\"The full (logical) name of the service being called, including its package name, if applicable.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"myService.BestService\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[$l]:{brief:\"The application build string, when it is separate from the version.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"stable\",deprecation:{reason:\"The runtime.* namespace is deprecated in favor of process.runtime.*. No direct OTel equivalent exists for this attribute.\"},changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.build attribute\"}]},[Kt]:{brief:\"The name of the runtime. For example node, CPython, or rustc.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"node\",deprecation:{replacement:\"process.runtime.name\",reason:\"Prefer OTel-aligned process.runtime.name\"},aliases:[Ft],changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.name attribute in favor of process.runtime.name\"}]},[zt]:{brief:\"Unprocessed description string as obtained from the runtime. Used to extract name and version for well-known runtimes.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Eclipse OpenJ9 VM openj9-0.21.0\",deprecation:{replacement:\"process.runtime.description\",reason:\"Prefer OTel-aligned process.runtime.description\"},aliases:[Yt],changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.raw_description attribute in favor of process.runtime.description\"}]},[jt]:{brief:\"The version of the runtime.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"18.04.2\",deprecation:{replacement:\"process.runtime.version\",reason:\"Prefer OTel-aligned process.runtime.version\"},aliases:[Ht],changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.version attribute in favor of process.runtime.version\"}]},[ep]:{brief:\"The weighted performance score for a web vital. This is defined as `score.weight.` * `score.ratio.`.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"score.cls=0.1723\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score. attribute\"}]},[ip]:{brief:\"The score for a web vital, normalized to a number between 0 and 1.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"score.ratio.inp=0.7748\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score.ratio. attribute\"}]},[tp]:{brief:\"The total performance score of a span. This is the sum of individual weighted web vital scores (see `score.`).\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score.total attribute\"}]},[sp]:{brief:\"The relative weight of a web vital in a span's performance score.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"score.weight.fcp=0.25\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score.weight. attribute\"}]},[rp]:{brief:\"Used as a generic attribute representing the action depending on the type of span. For instance, this is the database query operation for DB spans, and the request method for HTTP spans.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"SELECT\",changelog:[{version:\"0.4.0\",prs:[212]}]},[Qt]:{brief:\"The name of the browser.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Chrome\",deprecation:{replacement:\"browser.name\"},aliases:[Ke],changelog:[{version:\"0.1.0\",prs:[139]}]},[Xt]:{brief:\"The version of the browser.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"120.0.6099.130\",deprecation:{replacement:\"browser.version\"},aliases:[Qe],changelog:[{version:\"0.1.0\",prs:[139]}]},[np]:{brief:\"The reason why a span ended early.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"document.hidden\",changelog:[{version:\"0.0.0\"}]},[ap]:{brief:\"The high-level category of a span, derived from the span operation or span attributes. This categorizes spans by their general purpose (e.g., database, HTTP, UI). Known values include: 'ai', 'ai.pipeline', 'app', 'browser', 'cache', 'console', 'db', 'event', 'file', 'function.aws', 'function.azure', 'function.gcp', 'function.nextjs', 'function.remix', 'graphql', 'grpc', 'http', 'measure', 'middleware', 'navigation', 'pageload', 'queue', 'resource', 'rpc', 'serialize', 'subprocess', 'template', 'topic', 'ui', 'ui.angular', 'ui.ember', 'ui.react', 'ui.svelte', 'ui.vue', 'view', 'websocket'.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"db\",changelog:[{version:\"0.4.0\",prs:[218]}]},[op]:{brief:\"Rate at which a span was sampled in the SDK.\",type:\"double\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:.5,changelog:[{version:\"0.1.0\",prs:[102]}]},[lp]:{brief:\"The human-readable description of a span.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"index view query\",changelog:[{version:\"0.1.0\",prs:[135]}]},[pp]:{brief:\"The sentry dist.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"1.0\",changelog:[{version:\"0.0.0\"}]},[cp]:{brief:\"Used as a generic attribute representing the domain depending on the type of span. For instance, this is the collection/table name for database spans, and the server address for HTTP spans.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"example.com\",changelog:[{version:\"0.4.0\",prs:[212]}]},[bp]:{brief:\"The environment from the dynamic sampling context.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"internal\",example:\"prod\",changelog:[{version:\"0.3.0\",prs:[185]}]},[gp]:{brief:\"The ID of the project where the trace originated (i.e. the project of the SDK that started the trace). Propagated through the dynamic sampling context and set by Relay during ingestion.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"internal\",example:\"12345\",changelog:[{version:\"0.7.0\",prs:[358],description:\"Add sentry.dsc.project_id as an attribute\"}]},[dp]:{brief:\"The public key from the dynamic sampling context.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"internal\",example:\"c51734c603c4430eb57cb0a5728a479d\",changelog:[{version:\"0.3.0\",prs:[185]}]},[up]:{brief:\"The release identifier from the dynamic sampling context.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"internal\",example:\"frontend@e8211be71b214afab5b85de4b4c54be3714952bb\",changelog:[{version:\"0.3.0\",prs:[185]}]},[mp]:{brief:\"Whether the event was sampled according to the dynamic sampling context.\",type:\"boolean\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"internal\",example:!0,changelog:[{version:\"0.3.0\",prs:[185]}]},[hp]:{brief:\"The sample rate from the dynamic sampling context.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"internal\",example:\"1.0\",changelog:[{version:\"0.3.0\",prs:[185]}]},[yp]:{brief:\"The trace ID from the dynamic sampling context.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"internal\",example:\"047372980460430cbc78d9779df33a46\",changelog:[{version:\"0.3.0\",prs:[185]}]},[fp]:{brief:\"The transaction name from the dynamic sampling context.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"internal\",example:\"/issues/errors-outages/\",changelog:[{version:\"0.3.0\",prs:[185]}]},[Jt]:{brief:\"The sentry environment.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"production\",aliases:[xi],changelog:[{version:\"0.0.0\"}]},[vp]:{brief:\"The exclusive time duration of the span in milliseconds.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[160]},{version:\"0.0.0\"}]},[_p]:{brief:\"Indicates the type of graphql operation, emitted by the Javascript SDK.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"getUserById\",changelog:[{version:\"0.3.1\",prs:[190]}]},[Ep]:{brief:\"Stores the hash of `sentry.normalized_description`. This is primarily used for grouping spans in the product end.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.4.0\",prs:[212]}]},[Tp]:{brief:\"If an http request was a prefetch request.\",type:\"boolean\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[Ip]:{brief:\"The reason why an idle span ended early.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"idleTimeout\",changelog:[{version:\"0.0.0\"}]},[Op]:{brief:\"Indicates whether a span's parent is remote.\",type:\"boolean\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.3.1\",prs:[190]}]},[Pp]:{brief:\"Used to clarify the relationship between parents and children, or to distinguish between spans, e.g. a `server` and `client` span with the same name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"server\",changelog:[{version:\"0.3.1\",prs:[190]}]},[Ap]:{brief:\"Whether the span or event occurred on the main thread. Computed by Relay and should not be set by SDKs.\",type:\"boolean\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\"}]},[Rp]:{brief:\"A parameter used in the message template. can either be the number that represent the parameter's position in the template string (sentry.message.parameter.0, sentry.message.parameter.1, etc) or the parameter's name (sentry.message.parameter.item_id, sentry.message.parameter.user_id, etc)\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"sentry.message.parameter.0='123'\",changelog:[{version:\"0.1.0\",prs:[116]}]},[Sp]:{brief:\"The parameterized template string.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Hello, {name}!\",changelog:[{version:\"0.1.0\",prs:[116]}]},[xp]:{brief:\"Whether the application is using a mobile SDK. Computed by Relay and should not be set by SDKs.\",type:\"boolean\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\"}]},[Np]:{brief:\"A module that was loaded in the process. The key is the name of the module.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"sentry.module.brianium/paratest='v7.7.0'\",changelog:[{version:\"0.1.0\",prs:[103]}]},[Cp]:{brief:\"A parameterized route for a function in Next.js that contributes to Server-Side Rendering. Should be present on spans that track such functions when the file location of the function is known.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"/posts/[id]/layout\",changelog:[{version:\"0.1.0\",prs:[54,106]}]},[wp]:{brief:\"A descriptor for a for a function in Next.js that contributes to Server-Side Rendering. Should be present on spans that track such functions.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"generateMetadata\",changelog:[{version:\"0.1.0\",prs:[54,106]}]},[Lp]:{brief:\"The normalized version of `db.query.text`.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"SELECT .. FROM sentry_project WHERE (project_id = %s)\",changelog:[{version:\"0.3.1\",prs:[194]}]},[Dp]:{brief:\"The hash of `sentry.normalized_db_query`.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.4.0\",prs:[200]}]},[Mp]:{brief:\"Used as a generic attribute representing the normalized `sentry.description`. This refers to the legacy use case of `sentry.description` where it holds relevant data depending on the type of span (e.g. database query, resource url, http request description, etc).\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"SELECT .. FROM sentry_project WHERE (project_id = %s)\",changelog:[{version:\"0.4.0\",prs:[212]}]},[Up]:{brief:\"The timestamp at which an envelope was received by Relay, in nanoseconds.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"1544712660300000000\",changelog:[{version:\"0.3.0\",prs:[174]},{version:\"0.2.0\",prs:[137]}]},[kp]:{brief:\"The operation of a span.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"http.client\",changelog:[{version:\"0.0.0\"}]},[Gp]:{brief:\"The origin of the instrumentation (e.g. span, log, etc.)\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"auto.http.otel.fastify\",changelog:[{version:\"0.1.0\",prs:[68]},{version:\"0.0.0\"}]},[qp]:{brief:\"The sdk platform that generated the event.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"php\",changelog:[{version:\"0.0.0\"}]},[Vp]:{brief:\"The id of the currently running profiler (continuous profiling)\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"18779b64dd35d1a538e7ce2dd2d3fad3\",changelog:[{version:\"0.4.0\",prs:[242]}]},[Yp]:{brief:\"The ID of the Sentry profile the span is associated with. This is only meaningful for transaction-based profiling.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"123e4567e89b12d3a456426614174000\",changelog:[{version:\"0.6.0\",prs:[344],description:\"Added sentry.profile_id attribute\"}]},[J]:{brief:\"The sentry release.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"7.0.0\",aliases:[cs,Wt],changelog:[{version:\"0.0.0\"}]},[Zt]:{brief:\"The id of the sentry replay.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"123e4567e89b12d3a456426614174000\",aliases:[Bt],changelog:[{version:\"0.0.0\"}]},[Fp]:{brief:\"A sentinel attribute on log events indicating whether the current Session Replay is being buffered (onErrorSampleRate).\",type:\"boolean\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.3.0\",prs:[185]}]},[Hp]:{brief:\"(Deprecated) The event that caused the SDK to report CLS or LCP (pagehide or navigation)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"pagehide\",deprecation:{reason:\"The report event is now recorded as a browser.web_vital.lcp.report_event or browser.web_vital.cls.report_event attribute. No backfill required.\"},changelog:[{version:\"0.5.0\",prs:[320],description:\"Added sentry.report_event attribute\"}]},[Wp]:{brief:\"A list of names identifying enabled integrations. The list shouldhave all enabled integrations, including default integrations. Defaultintegrations are included because different SDK releases may contain differentdefault integrations.\",type:\"string[]\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:[\"InboundFilters\",\"FunctionToString\",\"BrowserApiErrors\",\"Breadcrumbs\"],changelog:[{version:\"0.0.0\",prs:[42]}]},[Bp]:{brief:\"The sentry sdk name.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"@sentry/react\",changelog:[{version:\"0.0.0\"}]},[Kp]:{brief:\"The sentry sdk version.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"7.0.0\",changelog:[{version:\"0.0.0\"}]},[$t]:{brief:\"The segment ID of a span\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"051581bf3cb55c13\",aliases:[es],changelog:[{version:\"0.1.0\",prs:[107,124]}]},[es]:{brief:\"The segment ID of a span\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"051581bf3cb55c13\",deprecation:{replacement:\"sentry.segment.id\"},aliases:[$t],changelog:[{version:\"0.1.0\",prs:[124]}]},[Z]:{brief:\"The segment name of a span\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"GET /user\",aliases:[$,ee],changelog:[{version:\"0.6.0\",prs:[345],description:\"Added sentry.transaction and transaction aliases\"},{version:\"0.1.0\",prs:[104]}]},[zp]:{brief:\"Rate at which a span was sampled in Relay.\",type:\"double\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:.5,changelog:[{version:\"0.1.0\",prs:[102]}]},[jp]:{brief:\"The source of a span, also referred to as transaction source. Known values are: `'custom'`, `'url'`, `'route'`, `'component'`, `'view'`, `'task'`. '`source`' describes a parametrized route, while `'url'` describes the full URL, potentially containing identifiers.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"route\",deprecation:{replacement:\"sentry.span.source\",reason:\"This attribute is being deprecated in favor of sentry.span.source\"},changelog:[{version:\"0.5.0\"}]},[Qp]:{brief:\"The source of a span, also referred to as transaction source. Known values are: `'custom'`, `'url'`, `'route'`, `'component'`, `'view'`, `'task'`. '`source`' describes a parametrized route, while `'url'` describes the full URL, potentially containing identifiers.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"route\",changelog:[{version:\"0.4.0\",prs:[214]},{version:\"0.0.0\"}]},[Xp]:{brief:\"The HTTP status code used in Sentry Insights. Typically set by Sentry during ingestion, rather than by clients.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:200,changelog:[{version:\"0.4.0\",prs:[223,228]}]},[Jp]:{brief:\"The from OTLP extracted status message.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"foobar\",changelog:[{version:\"0.3.1\",prs:[190]}]},[Zp]:{brief:\"A sequencing counter for deterministic ordering of logs or metrics when timestamps share the same integer millisecond. Starts at 0 on SDK initialization, increments by 1 for each captured item, and resets to 0 when the integer millisecond of the current item differs from the previous one.\",type:\"integer\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:0,changelog:[{version:\"0.5.0\",prs:[262]}]},[$p]:{brief:\"The span id of the span that was active when the log was collected. This should not be set if there was no active span.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"b0e6f15b45c36b12\",deprecation:{},changelog:[{version:\"0.5.0\",prs:[287],description:\"Deprecate `sentry.trace.parent_span_id`\"},{version:\"0.1.0\",prs:[116]}]},[$]:{brief:\"The sentry transaction (segment name).\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"GET /\",deprecation:{replacement:\"sentry.segment.name\",reason:\"This attribute is being deprecated in favor of sentry.segment.name\"},aliases:[Z,ee],changelog:[{version:\"0.6.0\",prs:[345],description:\"Deprecated sentry.transaction in favor of sentry.segment.name\"},{version:\"0.0.0\"}]},[is]:{brief:\"User email address.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.email\"},aliases:[vs],changelog:[{version:\"0.10.0\",prs:[406]}]},[ts]:{brief:\"Human readable city name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.city\"},aliases:[_s],changelog:[{version:\"0.10.0\",prs:[406]}]},[ss]:{brief:\"Two-letter country code (ISO 3166-1 alpha-2).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.country_code\"},aliases:[Es],changelog:[{version:\"0.10.0\",prs:[406]}]},[rs]:{brief:\"Human readable region name or code.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.region\"},aliases:[Ts],changelog:[{version:\"0.10.0\",prs:[406]}]},[ns]:{brief:\"Human readable subdivision name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.subdivision\"},aliases:[Is],changelog:[{version:\"0.10.0\",prs:[406]}]},[as]:{brief:\"Unique identifier of the user.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.id\"},aliases:[Os],changelog:[{version:\"0.10.0\",prs:[406]}]},[os]:{brief:\"The IP address of the user.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.ip_address\"},aliases:[Ps],changelog:[{version:\"0.10.0\",prs:[406]}]},[ls]:{brief:\"Short name or login/username of the user.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.name\"},aliases:[As],changelog:[{version:\"0.10.0\",prs:[406]}]},[b]:{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",aliases:[o,c,s],changelog:[{version:\"0.1.0\",prs:[108,127]},{version:\"0.0.0\"}]},[ps]:{brief:\"Server port number.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:1337,aliases:[Dt],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[ec]:{brief:\"Logical name of the service.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"omegastar\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[cs]:{brief:\"The version string of the service API or implementation. The format is not defined by these conventions.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"5.0.0\",aliases:[J],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[ic]:{brief:\"A unique id identifying the active session at the time of setting this attribute\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"00112233-4455-6677-8899-aabbccddeeff\",changelog:[{version:\"0.11.0\",prs:[412],description:\"Added session.id attribute\"}]},[tc]:{brief:\"The fraction of time the app was stalled. Only applies to React Native. This is computed by Relay.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[362],description:\"Added stall_percentage attribute\"}]},[sc]:{brief:\"The combined duration of all stalls in milliseconds. Only applies to React Native. This is computed by Relay.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[362],description:\"Added stall_total_time attribute\"}]},[rc]:{brief:\"The type of state management library\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"redux\",changelog:[{version:\"0.7.0\",prs:[365],description:\"Added state.type attribute\"}]},[nc]:{brief:\"Current \\u201Cmanaged\\u201D thread ID.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:56,changelog:[{version:\"0.0.0\"}]},[ac]:{brief:\"Current thread name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"main\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[oc]:{brief:\"The log tag provided by the timber logging framework.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"MyTag\",changelog:[{version:\"0.3.0\",prs:[183]}]},[bs]:{brief:\"The duration of time to full display in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.ttfd.value\",reason:\"Replaced by app.vitals.ttfd.value to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[qe],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added and deprecated in favor of app.vitals.ttfd.value\"}]},[gs]:{brief:\"The duration of time to initial display in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.ttid.value\",reason:\"Replaced by app.vitals.ttid.value to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[Ve],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added and deprecated in favor of app.vitals.ttid.value\"}]},[ee]:{brief:\"The sentry transaction (segment name).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"GET /\",deprecation:{replacement:\"sentry.segment.name\"},aliases:[Z,$],changelog:[{version:\"0.6.0\",prs:[345],description:\"Updated transaction deprecation replacement to sentry.segment.name\"},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[lc]:{brief:\"The path of the tRPC procedure being called\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"user.getById\",changelog:[{version:\"0.7.0\",prs:[370],description:\"Added trpc.procedure_path attribute\"}]},[pc]:{brief:\"The type of the tRPC procedure\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"query\",changelog:[{version:\"0.7.0\",prs:[370],description:\"Added trpc.procedure_type attribute\"}]},[ds]:{brief:\"The value of the recorded Time To First Byte (TTFB) web vital in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:194,deprecation:{replacement:\"browser.web_vital.ttfb.value\",reason:\"This attribute is being deprecated in favor of browser.web_vital.ttfb.value\"},aliases:[pi],changelog:[{version:\"0.5.0\",prs:[235]}]},[us]:{brief:\"The time it takes for the server to process the initial request and send the first byte of a response to the user's browser\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1554.5814,deprecation:{replacement:\"browser.web_vital.ttfb.request_time\",reason:\"This attribute is being deprecated in favor of browser.web_vital.ttfb.request_time\"},aliases:[li],changelog:[{version:\"0.5.0\",prs:[235]}]},[cc]:{brief:\"More granular type of the operation happening.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"fetch\",changelog:[{version:\"0.0.0\"}]},[bc]:{brief:\"The name of the associated component.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"HomeButton\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[gc]:{brief:\"Whether the span execution contributed to the TTFD (time to fully drawn) metric.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[dc]:{brief:\"Whether the span execution contributed to the TTID (time to initial display) metric.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[uc]:{brief:\"The height of the UI element (for Html in pixels)\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:256,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.height attribute\"}]},[mc]:{brief:\"The id of the UI element\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"btn-login\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.id attribute\"}]},[hc]:{brief:\"The identifier used to measure the UI element timing\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"heroImage\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.identifier attribute\"}]},[yc]:{brief:\"The loading time of a UI element (from time origin to finished loading)\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:998.2234,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.load_time attribute\"}]},[fc]:{brief:\"The type of element paint. Can either be 'image-paint' or 'text-paint'\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"image-paint\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.paint_type attribute\"}]},[vc]:{brief:\"The rendering time of the UI element (from time origin to finished rendering)\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1023.1124,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.render_time attribute\"}]},[_c]:{brief:\"type of the UI element\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"img\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.type attribute\"}]},[Ec]:{brief:\"The URL of the UI element (e.g. an img src)\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"https://assets.myapp.com/hero.png\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.url attribute\"}]},[Tc]:{brief:\"The width of the UI element (for HTML in pixels)\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:512,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.width attribute\"}]},[ie]:{brief:\"The URL of the resource that was fetched.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com/test?foo=bar#buzz\",deprecation:{replacement:\"url.full\"},aliases:[te,D],changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[Ic]:{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Oc]:{brief:\"The fragments present in the URI. Note that this does not contain the leading # character, while the `http.fragment` attribute does.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"details\",changelog:[{version:\"0.0.0\"}]},[te]:{brief:\"The URL of the resource that was fetched.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"https://example.com/test?foo=bar#buzz\",aliases:[D,ie],changelog:[{version:\"0.1.0\",prs:[108]},{version:\"0.0.0\"}]},[Pc]:{brief:\"The URI path component.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"/foo\",changelog:[{version:\"0.0.0\"}]},[ms]:{brief:\"Decoded parameters extracted from a URL path. Usually added by client-side routing frameworks like vue-router.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"url.path.parameter.id='123'\",aliases:[Gt],changelog:[{version:\"0.1.0\",prs:[103]}]},[Ac]:{brief:\"Server port number.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:1337,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Rc]:{brief:\"The query string present in the URL. Note that this does not contain the leading ? character, while the `http.query` attribute does.\",type:\"string\",pii:{isPii:\"true\",reason:\"Query string values can contain sensitive information. Clients should attempt to scrub parameters that might contain sensitive information.\"},isInOtel:!0,visibility:\"public\",example:\"foo=bar&bar=baz\",changelog:[{version:\"0.0.0\"}]},[hs]:{brief:\"The URI scheme component identifying the used protocol.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"https\",aliases:[yt],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[ys]:{brief:\"The low-cardinality template of an absolute path reference.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"/users/:id\",aliases:[L],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[fs]:{brief:\"Value of the HTTP User-Agent header sent by the client.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1\",aliases:[vt],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[vs]:{brief:\"User email address.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"test@example.com\",aliases:[is],changelog:[{version:\"0.0.0\"}]},[Sc]:{brief:\"User's full name.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"John Smith\",changelog:[{version:\"0.0.0\"}]},[_s]:{brief:\"Human readable city name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Toronto\",aliases:[ts],changelog:[{version:\"0.0.0\"}]},[Es]:{brief:\"Two-letter country code (ISO 3166-1 alpha-2).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"CA\",aliases:[ss],changelog:[{version:\"0.0.0\"}]},[Ts]:{brief:\"Human readable region name or code.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Canada\",aliases:[rs],changelog:[{version:\"0.0.0\"}]},[Is]:{brief:\"Human readable subdivision name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Ontario\",aliases:[ns],changelog:[{version:\"0.0.0\"}]},[xc]:{brief:\"Unique user hash to correlate information for a user in anonymized form.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"8ae4c2993e0f4f3b8b2d1b1f3b5e8f4d\",changelog:[{version:\"0.0.0\"}]},[Os]:{brief:\"Unique identifier of the user.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"S-1-5-21-202424912787-2692429404-2351956786-1000\",aliases:[as],changelog:[{version:\"0.0.0\"}]},[Ps]:{brief:\"The IP address of the user.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"192.168.1.1\",aliases:[os],changelog:[{version:\"0.1.0\",prs:[75]}]},[As]:{brief:\"Short name or login/username of the user.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"j.smith\",aliases:[ls],changelog:[{version:\"0.0.0\"}]},[Nc]:{brief:\"Array of user roles at the time of the event.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:[\"admin\",\"editor\"],changelog:[{version:\"0.0.0\"}]},[Cc]:{brief:\"Git branch name for Vercel project\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"main\",changelog:[{version:\"0.2.0\",prs:[163]}]},[wc]:{brief:\"Identifier for the Vercel build (only present on build logs)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"bld_cotnkcr76\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Lc]:{brief:\"Identifier for the Vercel deployment\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"dpl_233NRGRjVZX1caZrXWtz5g1TAksD\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Dc]:{brief:\"Origin of the external content in Vercel (only on external logs)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"https://vitals.vercel-insights.com/v1\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Mc]:{brief:\"Type of edge runtime in Vercel\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"edge-function\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Uc]:{brief:\"Entrypoint for the request in Vercel\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"api/index.js\",changelog:[{version:\"0.2.0\",prs:[163]}]},[kc]:{brief:\"Region where the request is executed\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"sfo1\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Gc]:{brief:\"Unique identifier for the log entry in Vercel\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1573817187330377061717300000\",changelog:[{version:\"0.2.0\",prs:[163]}]},[qc]:{brief:\"JA3 fingerprint digest of Vercel request\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"769,47-53-5-10-49161-49162-49171-49172-50-56-19-4,0-10-11,23-24-25,0\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Vc]:{brief:\"JA4 fingerprint digest\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"t13d1516h2_8daaf6152771_02713d6af862\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Yc]:{brief:\"Vercel log output type\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"stdout\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Fc]:{brief:\"Function or dynamic path of the request in Vercel.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"/dynamic/[route].json\",changelog:[{version:\"0.6.0\",prs:[349],description:\"Added vercel.path attribute\"}]},[Hc]:{brief:\"Identifier for the Vercel project\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"gdufoJxB6b9b1fEqr1jUtFkyavUU\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Wc]:{brief:\"Name of the Vercel project\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"my-app\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Bc]:{brief:\"Original request ID when request is served from cache\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"pdx1::v8g4b-1744143786684-93dafbc0f70d\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Kc]:{brief:\"Client IP address\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"120.75.16.101\",changelog:[{version:\"0.2.0\",prs:[163]}]},[zc]:{brief:\"Hostname of the request\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"test.vercel.app\",changelog:[{version:\"0.2.0\",prs:[163]}]},[jc]:{brief:\"Region where lambda function executed\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"sfo1\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Qc]:{brief:\"HTTP method of the request\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"GET\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Xc]:{brief:\"Request path with query parameters\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"/dynamic/some-value.json?route=some-value\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Jc]:{brief:\"How the request was served based on its path and project configuration\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"func\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Zc]:{brief:\"Variant of the path type\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"api\",changelog:[{version:\"0.2.0\",prs:[163]}]},[$c]:{brief:\"Referer of the request\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"*.vercel.app\",changelog:[{version:\"0.2.0\",prs:[163]}]},[eb]:{brief:\"Region where the request is processed\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"sfo1\",changelog:[{version:\"0.2.0\",prs:[163]}]},[ib]:{brief:\"Size of the response in bytes\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1024,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]},[tb]:{brief:\"Protocol of the request\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"https\",changelog:[{version:\"0.2.0\",prs:[163]}]},[sb]:{brief:\"HTTP status code of the proxy request\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:200,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]},[rb]:{brief:\"Unix timestamp when the proxy request was made\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1573817250172,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]},[nb]:{brief:\"User agent strings of the request\",type:\"string[]\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:[\"Mozilla/5.0...\"],changelog:[{version:\"0.2.0\",prs:[163]}]},[ab]:{brief:\"Cache status sent to the browser\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"REVALIDATED\",changelog:[{version:\"0.2.0\",prs:[163]}]},[ob]:{brief:\"Vercel-specific identifier\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"sfo1::abc123\",changelog:[{version:\"0.2.0\",prs:[163]}]},[lb]:{brief:\"Action taken by firewall rules\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"deny\",changelog:[{version:\"0.2.0\",prs:[163]}]},[pb]:{brief:\"ID of the firewall rule that matched\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"rule_gAHz8jtSB1Gy\",changelog:[{version:\"0.2.0\",prs:[163]}]},[cb]:{brief:\"Identifier of the Vercel request\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"643af4e3-975a-4cc7-9e7a-1eda11539d90\",changelog:[{version:\"0.2.0\",prs:[163]}]},[bb]:{brief:\"Origin of the Vercel log (build, edge, lambda, static, external, or firewall)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"build\",changelog:[{version:\"0.2.0\",prs:[163]}]},[gb]:{brief:\"HTTP status code of the request (-1 means no response returned and the lambda crashed)\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:200,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]}};export{Rs as AI_CITATIONS,g as AI_COMPLETION_TOKENS_USED,Ss as AI_DOCUMENTS,se as AI_FINISH_REASON,re as AI_FREQUENCY_PENALTY,d as AI_FUNCTION_CALL,ne as AI_GENERATION_ID,ae as AI_INPUT_MESSAGES,xs as AI_IS_SEARCH_REQUIRED,Ns as AI_METADATA,oe as AI_MODEL_ID,u as AI_MODEL_PROVIDER,le as AI_PIPELINE_NAME,pe as AI_PREAMBLE,ce as AI_PRESENCE_PENALTY,m as AI_PROMPT_TOKENS_USED,Cs as AI_RAW_PROMPTING,ws as AI_RESPONSES,Ls as AI_RESPONSE_FORMAT,Ds as AI_SEARCH_QUERIES,Ms as AI_SEARCH_RESULTS,be as AI_SEED,ge as AI_STREAMING,Us as AI_TAGS,de as AI_TEMPERATURE,ue as AI_TEXTS,ks as AI_TOOLS,Gs as AI_TOOL_CALLS,me as AI_TOP_K,he as AI_TOP_P,ye as AI_TOTAL_COST,fe as AI_TOTAL_TOKENS_USED,qs as AI_WARNINGS,Vs as ANGULAR_VERSION,ve as APP_APP_BUILD,_e as APP_APP_IDENTIFIER,Ee as APP_APP_NAME,Te as APP_APP_START_TIME,Ie as APP_APP_VERSION,Oe as APP_BUILD,Pe as APP_IDENTIFIER,Ys as APP_IN_FOREGROUND,Ae as APP_NAME,Re as APP_START_COLD,Se as APP_START_TIME,xe as APP_START_TYPE,Ne as APP_START_WARM,Ce as APP_VERSION,we as APP_VITALS_FRAMES_DELAY_VALUE,Le as APP_VITALS_FRAMES_FROZEN_COUNT,De as APP_VITALS_FRAMES_SLOW_COUNT,Me as APP_VITALS_FRAMES_TOTAL_COUNT,Ue as APP_VITALS_START_COLD_VALUE,Fs as APP_VITALS_START_PREWARMED,Hs as APP_VITALS_START_REASON,Ws as APP_VITALS_START_SCREEN,ke as APP_VITALS_START_TYPE,Ge as APP_VITALS_START_WARM_VALUE,qe as APP_VITALS_TTFD_VALUE,Ve as APP_VITALS_TTID_VALUE,Bs as ART_GC_BLOCKING_COUNT,Ks as ART_GC_BLOCKING_TIME,zs as ART_GC_PRE_OOME_COUNT,js as ART_GC_TOTAL_COUNT,Qs as ART_GC_TOTAL_TIME,Xs as ART_GC_WAITING_TIME,Js as ART_MEMORY_FREE,Zs as ART_MEMORY_FREE_UNTIL_GC,$s as ART_MEMORY_FREE_UNTIL_OOME,er as ART_MEMORY_MAX,ir as ART_MEMORY_TOTAL,ub as ATTRIBUTE_METADATA,db as ATTRIBUTE_TYPE,tr as AWS_CLOUDWATCH_LOGS_LOG_GROUP,sr as AWS_CLOUDWATCH_LOGS_LOG_STREAM,rr as AWS_CLOUDWATCH_LOGS_URL,Ye as AWS_LAMBDA_AWS_REQUEST_ID,nr as AWS_LAMBDA_EXECUTION_DURATION_IN_MILLIS,Fe as AWS_LAMBDA_FUNCTION_NAME,He as AWS_LAMBDA_FUNCTION_VERSION,We as AWS_LAMBDA_INVOKED_ARN,Be as AWS_LAMBDA_INVOKED_FUNCTION_ARN,ar as AWS_LAMBDA_REMAINING_TIME_IN_MILLIS,or as AWS_LOG_GROUP_NAMES,lr as AWS_LOG_STREAM_NAMES,pr as BLOCKED_MAIN_THREAD,Ke as BROWSER_NAME,ze as BROWSER_PERFORMANCE_NAVIGATION_ACTIVATION_START,je as BROWSER_PERFORMANCE_TIME_ORIGIN,cr as BROWSER_REPORT_TYPE,br as BROWSER_SCRIPT_INVOKER,gr as BROWSER_SCRIPT_INVOKER_TYPE,dr as BROWSER_SCRIPT_SOURCE_CHAR_POSITION,Qe as BROWSER_VERSION,ur as BROWSER_WEB_VITAL_CLS_REPORT_EVENT,Xe as BROWSER_WEB_VITAL_CLS_SOURCE_KEY,Je as BROWSER_WEB_VITAL_CLS_VALUE,Ze as BROWSER_WEB_VITAL_FCP_VALUE,$e as BROWSER_WEB_VITAL_FP_VALUE,ei as BROWSER_WEB_VITAL_INP_VALUE,ii as BROWSER_WEB_VITAL_LCP_ELEMENT,ti as BROWSER_WEB_VITAL_LCP_ID,si as BROWSER_WEB_VITAL_LCP_LOAD_TIME,ri as BROWSER_WEB_VITAL_LCP_RENDER_TIME,mr as BROWSER_WEB_VITAL_LCP_REPORT_EVENT,ni as BROWSER_WEB_VITAL_LCP_SIZE,ai as BROWSER_WEB_VITAL_LCP_URL,oi as BROWSER_WEB_VITAL_LCP_VALUE,li as BROWSER_WEB_VITAL_TTFB_REQUEST_TIME,pi as BROWSER_WEB_VITAL_TTFB_VALUE,hr as CACHE_HIT,yr as CACHE_ITEM_SIZE,fr as CACHE_KEY,vr as CACHE_OPERATION,_r as CACHE_TTL,Er as CACHE_WRITE,Tr as CHANNEL,h as CLIENT_ADDRESS,Ir as CLIENT_PORT,Or as CLOUDFLARE_D1_DURATION,y as CLOUDFLARE_D1_QUERY_TYPE,Pr as CLOUDFLARE_D1_ROWS_READ,Ar as CLOUDFLARE_D1_ROWS_WRITTEN,Rr as CLOUDFLARE_R2_BUCKET,Sr as CLOUDFLARE_R2_OPERATION,xr as CLOUDFLARE_R2_REQUEST_DELIMITER,Nr as CLOUDFLARE_R2_REQUEST_KEY,Cr as CLOUDFLARE_R2_REQUEST_PART_NUMBER,wr as CLOUDFLARE_R2_REQUEST_PREFIX,Lr as CLOUDFLARE_WORKFLOW_ATTEMPT,Dr as CLOUDFLARE_WORKFLOW_RETRIES_BACKOFF,Mr as CLOUDFLARE_WORKFLOW_RETRIES_DELAY,Ur as CLOUDFLARE_WORKFLOW_RETRIES_LIMIT,kr as CLOUDFLARE_WORKFLOW_TIMEOUT,Gr as CLOUD_ACCOUNT_ID,qr as CLOUD_AVAILABILITY_ZONE,Vr as CLOUD_PLATFORM,Yr as CLOUD_PROVIDER,Fr as CLOUD_REGION,Hr as CLOUD_RESOURCE_ID,ci as CLS,bi as CLS_SOURCE_KEY,gi as CODE_FILEPATH,di as CODE_FILE_PATH,ui as CODE_FUNCTION,mi as CODE_FUNCTION_NAME,hi as CODE_LINENO,yi as CODE_LINE_NUMBER,Wr as CODE_NAMESPACE,f as CONNECTIONTYPE,fi as CONNECTION_RTT,Br as CULTURE_CALENDAR,Kr as CULTURE_DISPLAY_NAME,zr as CULTURE_IS_24_HOUR_FORMAT,jr as CULTURE_LOCALE,Qr as CULTURE_TIMEZONE,Xr as DB_COLLECTION_NAME,Jr as DB_DRIVER_NAME,vi as DB_NAME,_i as DB_NAMESPACE,v as DB_OPERATION,Zr as DB_OPERATION_BATCH_SIZE,_ as DB_OPERATION_NAME,$r as DB_QUERY_PARAMETER_KEY,en as DB_QUERY_SUMMARY,Ei as DB_QUERY_TEXT,tn as DB_REDIS_CONNECTION,sn as DB_REDIS_KEY,rn as DB_REDIS_PARAMETERS,nn as DB_SQL_BINDINGS,Ti as DB_STATEMENT,an as DB_STORED_PROCEDURE_NAME,Ii as DB_SYSTEM,Oi as DB_SYSTEM_NAME,on as DB_USER,Pi as DEVICEMEMORY,ln as DEVICE_ARCHS,pn as DEVICE_BATTERY_LEVEL,cn as DEVICE_BATTERY_TEMPERATURE,bn as DEVICE_BOOT_TIME,gn as DEVICE_BRAND,dn as DEVICE_CHARGING,un as DEVICE_CHIPSET,mn as DEVICE_CLASS,E as DEVICE_CONNECTION_TYPE,hn as DEVICE_CPU_DESCRIPTION,yn as DEVICE_EXTERNAL_FREE_STORAGE,fn as DEVICE_EXTERNAL_STORAGE_SIZE,vn as DEVICE_FAMILY,_n as DEVICE_FREE_MEMORY,En as DEVICE_FREE_STORAGE,Tn as DEVICE_ID,In as DEVICE_LOCALE,On as DEVICE_LOW_MEMORY,Pn as DEVICE_LOW_POWER_MODE,An as DEVICE_MANUFACTURER,Ai as DEVICE_MEMORY_ESTIMATED_CAPACITY,Rn as DEVICE_MEMORY_SIZE,Sn as DEVICE_MODEL,xn as DEVICE_MODEL_ID,Nn as DEVICE_NAME,Cn as DEVICE_ONLINE,wn as DEVICE_ORIENTATION,Ri as DEVICE_PROCESSOR_COUNT,Ln as DEVICE_PROCESSOR_FREQUENCY,Dn as DEVICE_SCREEN_DENSITY,Mn as DEVICE_SCREEN_DPI,Un as DEVICE_SCREEN_HEIGHT_PIXELS,kn as DEVICE_SCREEN_WIDTH_PIXELS,Gn as DEVICE_SIMULATOR,qn as DEVICE_STORAGE_SIZE,Vn as DEVICE_THERMAL_STATE,Yn as DEVICE_TIMEZONE,Fn as DEVICE_USABLE_MEMORY,Si as EFFECTIVECONNECTIONTYPE,xi as ENVIRONMENT,Hn as ERROR_TYPE,Wn as EVENT_ID,Bn as EVENT_NAME,Kn as EXCEPTION_ESCAPED,zn as EXCEPTION_MESSAGE,jn as EXCEPTION_STACKTRACE,Qn as EXCEPTION_TYPE,Xn as FAAS_COLDSTART,Jn as FAAS_CRON,Zn as FAAS_DURATION_IN_MS,$n as FAAS_ENTRY_POINT,ea as FAAS_IDENTITY,Ni as FAAS_INVOCATION_ID,Ci as FAAS_NAME,ia as FAAS_TIME,ta as FAAS_TRIGGER,wi as FAAS_VERSION,Li as FCP,sa as FLAG_EVALUATION_KEY,Di as FP,Mi as FRAMES_DELAY,Ui as FRAMES_FROZEN,ra as FRAMES_FROZEN_RATE,ki as FRAMES_SLOW,na as FRAMES_SLOW_RATE,Gi as FRAMES_TOTAL,aa as FS_ERROR,oa as GCP_FUNCTION_CONTEXT_EVENT_ID,la as GCP_FUNCTION_CONTEXT_EVENT_TYPE,pa as GCP_FUNCTION_CONTEXT_ID,ca as GCP_FUNCTION_CONTEXT_RESOURCE,ba as GCP_FUNCTION_CONTEXT_SOURCE,ga as GCP_FUNCTION_CONTEXT_SPECVERSION,da as GCP_FUNCTION_CONTEXT_TIME,ua as GCP_FUNCTION_CONTEXT_TIMESTAMP,ma as GCP_FUNCTION_CONTEXT_TYPE,ha as GCP_PROJECT_ID,ya as GEN_AI_AGENT_NAME,fa as GEN_AI_CONTEXT_UTILIZATION,va as GEN_AI_CONTEXT_WINDOW_SIZE,_a as GEN_AI_CONVERSATION_ID,Ea as GEN_AI_COST_INPUT_TOKENS,Ta as GEN_AI_COST_OUTPUT_TOKENS,qi as GEN_AI_COST_TOTAL_TOKENS,Ia as GEN_AI_EMBEDDINGS_INPUT,Oa as GEN_AI_FUNCTION_ID,Vi as GEN_AI_INPUT_MESSAGES,Pa as GEN_AI_OPERATION_NAME,Aa as GEN_AI_OPERATION_TYPE,Ra as GEN_AI_OUTPUT_MESSAGES,Yi as GEN_AI_PIPELINE_NAME,Sa as GEN_AI_PROMPT,Fi as GEN_AI_PROMPT_NAME,T as GEN_AI_PROVIDER_NAME,xa as GEN_AI_REQUEST_AVAILABLE_TOOLS,Hi as GEN_AI_REQUEST_FREQUENCY_PENALTY,Na as GEN_AI_REQUEST_MAX_TOKENS,Wi as GEN_AI_REQUEST_MESSAGES,Ca as GEN_AI_REQUEST_MODEL,Bi as GEN_AI_REQUEST_PRESENCE_PENALTY,Ki as GEN_AI_REQUEST_SEED,zi as GEN_AI_REQUEST_TEMPERATURE,ji as GEN_AI_REQUEST_TOP_K,Qi as GEN_AI_REQUEST_TOP_P,Xi as GEN_AI_RESPONSE_FINISH_REASONS,Ji as GEN_AI_RESPONSE_ID,Zi as GEN_AI_RESPONSE_MODEL,$i as GEN_AI_RESPONSE_STREAMING,wa as GEN_AI_RESPONSE_TEXT,et as GEN_AI_RESPONSE_TIME_TO_FIRST_CHUNK,it as GEN_AI_RESPONSE_TIME_TO_FIRST_TOKEN,La as GEN_AI_RESPONSE_TOKENS_PER_SECOND,Da as GEN_AI_RESPONSE_TOOL_CALLS,I as GEN_AI_SYSTEM,tt as GEN_AI_SYSTEM_INSTRUCTIONS,Ma as GEN_AI_SYSTEM_MESSAGE,st as GEN_AI_TOOL_CALL_ARGUMENTS,e as GEN_AI_TOOL_CALL_RESULT,Ua as GEN_AI_TOOL_DEFINITIONS,ka as GEN_AI_TOOL_DESCRIPTION,rt as GEN_AI_TOOL_INPUT,i as GEN_AI_TOOL_MESSAGE,O as GEN_AI_TOOL_NAME,t as GEN_AI_TOOL_OUTPUT,Ga as GEN_AI_TOOL_TYPE,nt as GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS,at as GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS,P as GEN_AI_USAGE_COMPLETION_TOKENS,A as GEN_AI_USAGE_INPUT_TOKENS,ot as GEN_AI_USAGE_INPUT_TOKENS_CACHED,lt as GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE,R as GEN_AI_USAGE_OUTPUT_TOKENS,pt as GEN_AI_USAGE_OUTPUT_TOKENS_REASONING,S as GEN_AI_USAGE_PROMPT_TOKENS,ct as GEN_AI_USAGE_REASONING_OUTPUT_TOKENS,bt as GEN_AI_USAGE_TOTAL_TOKENS,qa as GRAPHQL_DOCUMENT,Va as GRAPHQL_OPERATION_NAME,Ya as GRAPHQL_OPERATION_TYPE,gt as HARDWARECONCURRENCY,dt as HTTP_CLIENT_IP,Fa as HTTP_DECODED_RESPONSE_CONTENT_LENGTH,x as HTTP_FLAVOR,Ha as HTTP_FRAGMENT,s as HTTP_HOST,r as HTTP_METHOD,Wa as HTTP_QUERY,Ba as HTTP_REQUEST_BODY_DATA,Ka as HTTP_REQUEST_CONNECTION_END,za as HTTP_REQUEST_CONNECT_START,ja as HTTP_REQUEST_DOMAIN_LOOKUP_END,Qa as HTTP_REQUEST_DOMAIN_LOOKUP_START,Xa as HTTP_REQUEST_FETCH_START,Ja as HTTP_REQUEST_HEADER_KEY,n as HTTP_REQUEST_METHOD,Za as HTTP_REQUEST_REDIRECT_END,$a as HTTP_REQUEST_REDIRECT_START,eo as HTTP_REQUEST_REQUEST_START,io as HTTP_REQUEST_RESEND_COUNT,to as HTTP_REQUEST_RESPONSE_END,so as HTTP_REQUEST_RESPONSE_START,ro as HTTP_REQUEST_SECURE_CONNECTION_START,no as HTTP_REQUEST_TIME_TO_FIRST_BYTE,ao as HTTP_REQUEST_WORKER_START,N as HTTP_RESPONSE_BODY_SIZE,C as HTTP_RESPONSE_CONTENT_LENGTH,w as HTTP_RESPONSE_HEADER_CONTENT_LENGTH,oo as HTTP_RESPONSE_HEADER_KEY,ut as HTTP_RESPONSE_SIZE,mt as HTTP_RESPONSE_STATUS_CODE,ht as HTTP_RESPONSE_TRANSFER_SIZE,L as HTTP_ROUTE,yt as HTTP_SCHEME,o as HTTP_SERVER_NAME,lo as HTTP_SERVER_REQUEST_TIME_IN_QUEUE,ft as HTTP_STATUS_CODE,po as HTTP_TARGET,D as HTTP_URL,vt as HTTP_USER_AGENT,co as ID,_t as INP,bo as JSONRPC_PROTOCOL_VERSION,Et as JSONRPC_REQUEST_ID,go as JVM_GC_ACTION,uo as JVM_GC_NAME,mo as JVM_MEMORY_POOL_NAME,ho as JVM_MEMORY_TYPE,yo as JVM_THREAD_DAEMON,fo as JVM_THREAD_STATE,Tt as LCP,It as LCP_ELEMENT,Ot as LCP_ID,Pt as LCP_LOADTIME,At as LCP_RENDERTIME,Rt as LCP_SIZE,St as LCP_URL,vo as LOGGER_NAME,_o as MCP_CANCELLED_REASON,Eo as MCP_CANCELLED_REQUEST_ID,To as MCP_CLIENT_NAME,Io as MCP_CLIENT_TITLE,Oo as MCP_CLIENT_VERSION,Po as MCP_LIFECYCLE_PHASE,Ao as MCP_LOGGING_DATA_TYPE,Ro as MCP_LOGGING_LEVEL,So as MCP_LOGGING_LOGGER,xo as MCP_LOGGING_MESSAGE,No as MCP_METHOD_NAME,Co as MCP_PROGRESS_CURRENT,wo as MCP_PROGRESS_MESSAGE,Lo as MCP_PROGRESS_PERCENTAGE,Do as MCP_PROGRESS_TOKEN,Mo as MCP_PROGRESS_TOTAL,xt as MCP_PROMPT_NAME,Uo as MCP_PROMPT_RESULT_DESCRIPTION,ko as MCP_PROMPT_RESULT_MESSAGE_CONTENT,Go as MCP_PROMPT_RESULT_MESSAGE_COUNT,qo as MCP_PROMPT_RESULT_MESSAGE_ROLE,Vo as MCP_PROTOCOL_READY,Yo as MCP_PROTOCOL_VERSION,Fo as MCP_REQUEST_ARGUMENT_KEY,Ho as MCP_REQUEST_ARGUMENT_NAME,Wo as MCP_REQUEST_ARGUMENT_URI,Nt as MCP_REQUEST_ID,M as MCP_RESOURCE_PROTOCOL,Bo as MCP_RESOURCE_URI,Ko as MCP_SERVER_NAME,zo as MCP_SERVER_TITLE,jo as MCP_SERVER_VERSION,Qo as MCP_SESSION_ID,U as MCP_TOOL_NAME,l as MCP_TOOL_RESULT_CONTENT,Xo as MCP_TOOL_RESULT_CONTENT_COUNT,Jo as MCP_TOOL_RESULT_IS_ERROR,k as MCP_TRANSPORT,Zo as MDC_KEY,$o as MESSAGING_BATCH_MESSAGE_COUNT,el as MESSAGING_DESTINATION_CONNECTION,il as MESSAGING_DESTINATION_NAME,tl as MESSAGING_MESSAGE_BODY_SIZE,sl as MESSAGING_MESSAGE_ENVELOPE_SIZE,rl as MESSAGING_MESSAGE_ID,nl as MESSAGING_MESSAGE_RECEIVE_LATENCY,al as MESSAGING_MESSAGE_RETRY_COUNT,ol as MESSAGING_OPERATION_NAME,ll as MESSAGING_OPERATION_TYPE,pl as MESSAGING_SYSTEM,p as METHOD,cl as MIDDLEWARE_NAME,bl as NAVIGATION_TYPE,gl as NEL_ELAPSED_TIME,dl as NEL_PHASE,ul as NEL_REFERRER,ml as NEL_SAMPLING_FUNCTION,hl as NEL_TYPE,Ct as NETWORK_CONNECTION_EFFECTIVE_TYPE,wt as NETWORK_CONNECTION_RTT,G as NETWORK_CONNECTION_TYPE,q as NETWORK_LOCAL_ADDRESS,Lt as NETWORK_LOCAL_PORT,V as NETWORK_PEER_ADDRESS,yl as NETWORK_PEER_PORT,Y as NETWORK_PROTOCOL_NAME,F as NETWORK_PROTOCOL_VERSION,H as NETWORK_TRANSPORT,fl as NETWORK_TYPE,W as NET_HOST_IP,c as NET_HOST_NAME,Dt as NET_HOST_PORT,B as NET_PEER_IP,vl as NET_PEER_NAME,_l as NET_PEER_PORT,K as NET_PROTOCOL_NAME,z as NET_PROTOCOL_VERSION,El as NET_SOCK_FAMILY,j as NET_SOCK_HOST_ADDR,Mt as NET_SOCK_HOST_PORT,Q as NET_SOCK_PEER_ADDR,Tl as NET_SOCK_PEER_NAME,Il as NET_SOCK_PEER_PORT,X as NET_TRANSPORT,Ut as OS_BUILD,kt as OS_BUILD_ID,Ol as OS_DESCRIPTION,Pl as OS_KERNEL_VERSION,Al as OS_NAME,Rl as OS_RAW_DESCRIPTION,Sl as OS_ROOTED,xl as OS_THEME,Nl as OS_TYPE,Cl as OS_VERSION,wl as OTEL_SCOPE_NAME,Ll as OTEL_SCOPE_VERSION,Dl as OTEL_STATUS_CODE,Ml as OTEL_STATUS_DESCRIPTION,Gt as PARAMS_KEY,qt as PERFORMANCE_ACTIVATIONSTART,Vt as PERFORMANCE_TIMEORIGIN,Ul as PREVIOUS_ROUTE,kl as PROCESS_COMMAND_ARGS,Gl as PROCESS_EXECUTABLE_NAME,ql as PROCESS_PID,Yt as PROCESS_RUNTIME_DESCRIPTION,Vl as PROCESS_RUNTIME_ENGINE_NAME,Yl as PROCESS_RUNTIME_ENGINE_VERSION,Ft as PROCESS_RUNTIME_NAME,Ht as PROCESS_RUNTIME_VERSION,Fl as QUERY_KEY,Hl as REACT_VERSION,Wt as RELEASE,Wl as REMIX_ACTION_FORM_DATA_KEY,Bt as REPLAY_ID,Bl as RESOURCE_DEPLOYMENT_ENVIRONMENT,Kl as RESOURCE_DEPLOYMENT_ENVIRONMENT_NAME,zl as RESOURCE_RENDER_BLOCKING_STATUS,jl as ROUTE,Ql as RPC_GRPC_STATUS_CODE,Xl as RPC_METHOD,Jl as RPC_RESPONSE_STATUS_CODE,Zl as RPC_SERVICE,$l as RUNTIME_BUILD,Kt as RUNTIME_NAME,zt as RUNTIME_RAW_DESCRIPTION,jt as RUNTIME_VERSION,ep as SCORE_KEY,ip as SCORE_RATIO_KEY,tp as SCORE_TOTAL,sp as SCORE_WEIGHT_KEY,rp as SENTRY_ACTION,Qt as SENTRY_BROWSER_NAME,Xt as SENTRY_BROWSER_VERSION,np as SENTRY_CANCELLATION_REASON,ap as SENTRY_CATEGORY,op as SENTRY_CLIENT_SAMPLE_RATE,lp as SENTRY_DESCRIPTION,pp as SENTRY_DIST,cp as SENTRY_DOMAIN,bp as SENTRY_DSC_ENVIRONMENT,gp as SENTRY_DSC_PROJECT_ID,dp as SENTRY_DSC_PUBLIC_KEY,up as SENTRY_DSC_RELEASE,mp as SENTRY_DSC_SAMPLED,hp as SENTRY_DSC_SAMPLE_RATE,yp as SENTRY_DSC_TRACE_ID,fp as SENTRY_DSC_TRANSACTION,Jt as SENTRY_ENVIRONMENT,vp as SENTRY_EXCLUSIVE_TIME,_p as SENTRY_GRAPHQL_OPERATION,Ep as SENTRY_GROUP,Tp as SENTRY_HTTP_PREFETCH,Ip as SENTRY_IDLE_SPAN_FINISH_REASON,Op as SENTRY_IS_REMOTE,Pp as SENTRY_KIND,Ap as SENTRY_MAIN_THREAD,Rp as SENTRY_MESSAGE_PARAMETER_KEY,Sp as SENTRY_MESSAGE_TEMPLATE,xp as SENTRY_MOBILE,Np as SENTRY_MODULE_KEY,Cp as SENTRY_NEXTJS_SSR_FUNCTION_ROUTE,wp as SENTRY_NEXTJS_SSR_FUNCTION_TYPE,Lp as SENTRY_NORMALIZED_DB_QUERY,Dp as SENTRY_NORMALIZED_DB_QUERY_HASH,Mp as SENTRY_NORMALIZED_DESCRIPTION,Up as SENTRY_OBSERVED_TIMESTAMP_NANOS,kp as SENTRY_OP,Gp as SENTRY_ORIGIN,qp as SENTRY_PLATFORM,Vp as SENTRY_PROFILER_ID,Yp as SENTRY_PROFILE_ID,J as SENTRY_RELEASE,Zt as SENTRY_REPLAY_ID,Fp as SENTRY_REPLAY_IS_BUFFERING,Hp as SENTRY_REPORT_EVENT,Wp as SENTRY_SDK_INTEGRATIONS,Bp as SENTRY_SDK_NAME,Kp as SENTRY_SDK_VERSION,$t as SENTRY_SEGMENT_ID,Z as SENTRY_SEGMENT_NAME,zp as SENTRY_SERVER_SAMPLE_RATE,jp as SENTRY_SOURCE,Qp as SENTRY_SPAN_SOURCE,Xp as SENTRY_STATUS_CODE,Jp as SENTRY_STATUS_MESSAGE,Zp as SENTRY_TIMESTAMP_SEQUENCE,$p as SENTRY_TRACE_PARENT_SPAN_ID,$ as SENTRY_TRANSACTION,is as SENTRY_USER_EMAIL,ts as SENTRY_USER_GEO_CITY,ss as SENTRY_USER_GEO_COUNTRY_CODE,rs as SENTRY_USER_GEO_REGION,ns as SENTRY_USER_GEO_SUBDIVISION,as as SENTRY_USER_ID,os as SENTRY_USER_IP,ls as SENTRY_USER_USERNAME,b as SERVER_ADDRESS,ps as SERVER_PORT,ec as SERVICE_NAME,cs as SERVICE_VERSION,ic as SESSION_ID,tc as STALL_PERCENTAGE,sc as STALL_TOTAL_TIME,rc as STATE_TYPE,nc as THREAD_ID,ac as THREAD_NAME,oc as TIMBER_TAG,bs as TIME_TO_FULL_DISPLAY,gs as TIME_TO_INITIAL_DISPLAY,ee as TRANSACTION,lc as TRPC_PROCEDURE_PATH,pc as TRPC_PROCEDURE_TYPE,ds as TTFB,us as TTFB_REQUESTTIME,cc as TYPE,bc as UI_COMPONENT_NAME,gc as UI_CONTRIBUTES_TO_TTFD,dc as UI_CONTRIBUTES_TO_TTID,uc as UI_ELEMENT_HEIGHT,mc as UI_ELEMENT_ID,hc as UI_ELEMENT_IDENTIFIER,yc as UI_ELEMENT_LOAD_TIME,fc as UI_ELEMENT_PAINT_TYPE,vc as UI_ELEMENT_RENDER_TIME,_c as UI_ELEMENT_TYPE,Ec as UI_ELEMENT_URL,Tc as UI_ELEMENT_WIDTH,ie as URL,Ic as URL_DOMAIN,Oc as URL_FRAGMENT,te as URL_FULL,Pc as URL_PATH,ms as URL_PATH_PARAMETER_KEY,Ac as URL_PORT,Rc as URL_QUERY,hs as URL_SCHEME,ys as URL_TEMPLATE,fs as USER_AGENT_ORIGINAL,vs as USER_EMAIL,Sc as USER_FULL_NAME,_s as USER_GEO_CITY,Es as USER_GEO_COUNTRY_CODE,Ts as USER_GEO_REGION,Is as USER_GEO_SUBDIVISION,xc as USER_HASH,Os as USER_ID,Ps as USER_IP_ADDRESS,As as USER_NAME,Nc as USER_ROLES,Cc as VERCEL_BRANCH,wc as VERCEL_BUILD_ID,Lc as VERCEL_DEPLOYMENT_ID,Dc as VERCEL_DESTINATION,Mc as VERCEL_EDGE_TYPE,Uc as VERCEL_ENTRYPOINT,kc as VERCEL_EXECUTION_REGION,Gc as VERCEL_ID,qc as VERCEL_JA3_DIGEST,Vc as VERCEL_JA4_DIGEST,Yc as VERCEL_LOG_TYPE,Fc as VERCEL_PATH,Hc as VERCEL_PROJECT_ID,Wc as VERCEL_PROJECT_NAME,Bc as VERCEL_PROXY_CACHE_ID,Kc as VERCEL_PROXY_CLIENT_IP,zc as VERCEL_PROXY_HOST,jc as VERCEL_PROXY_LAMBDA_REGION,Qc as VERCEL_PROXY_METHOD,Xc as VERCEL_PROXY_PATH,Jc as VERCEL_PROXY_PATH_TYPE,Zc as VERCEL_PROXY_PATH_TYPE_VARIANT,$c as VERCEL_PROXY_REFERER,eb as VERCEL_PROXY_REGION,ib as VERCEL_PROXY_RESPONSE_BYTE_SIZE,tb as VERCEL_PROXY_SCHEME,sb as VERCEL_PROXY_STATUS_CODE,rb as VERCEL_PROXY_TIMESTAMP,nb as VERCEL_PROXY_USER_AGENT,ab as VERCEL_PROXY_VERCEL_CACHE,ob as VERCEL_PROXY_VERCEL_ID,lb as VERCEL_PROXY_WAF_ACTION,pb as VERCEL_PROXY_WAF_RULE_ID,cb as VERCEL_REQUEST_ID,bb as VERCEL_SOURCE,gb as VERCEL_STATUS_CODE,a as _HTTP_REQUEST_METHOD,es as _SENTRY_SEGMENT_ID};\n//# sourceMappingURL=attributes.mjs.map\n", + "const DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n", + "import { subscribe } from 'node:diagnostics_channel';\nimport { createContextKey, context, propagation } from '@opentelemetry/api';\nimport { debug, getHttpServerSubscriptions, HTTP_ON_SERVER_REQUEST, getClient, addNonEnumerableProperty } from '@sentry/core';\nexport { recordRequestSession } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\n\nconst HTTP_SERVER_INSTRUMENTED_KEY = createContextKey(\"sentry_http_server_instrumented\");\nconst INTEGRATION_NAME = \"Http.Server\";\nfunction addStartSpanCallback(request, callback) {\n addNonEnumerableProperty(request, \"_startSpanCallback\", new WeakRef(callback));\n}\nconst _httpServerIntegration = ((options = {}) => {\n const _options = {\n sessions: options.sessions ?? true,\n sessionFlushingDelayMS: options.sessionFlushingDelayMS ?? 6e4,\n maxRequestBodySize: options.maxRequestBodySize ?? \"medium\",\n // Server spans are created by `httpServerSpansIntegration` via the\n // `httpServerRequest` client event + `_startSpanCallback`, not by the\n // core subscription helper. Explicitly opt out so the helper does not\n // double-create spans when the client has tracing enabled.\n spans: false,\n // Cast: core uses HttpIncomingMessage; node consumers pass\n // RequestOptions-typed callbacks.\n // The two are structurally compatible for the fields the callback reads\n // (url, method, headers).\n ignoreRequestBody: options.ignoreRequestBody,\n /**\n * Hook called by core's `instrumentServer` to wrap the upstream\n * `emit('request')` call.\n *\n * We use it to extract OTel context from request headers and re-enter\n * the OTel context before the framework sees the request, so subsequent\n * spans (eg from `httpServerSpansIntegration`) attach to the right trace.\n */\n wrapServerEmitRequest(request, response, normalizedRequest, next) {\n const client = getClient();\n if (!client) return next();\n if (context.active().getValue(HTTP_SERVER_INSTRUMENTED_KEY)) {\n return next();\n }\n const ctx = propagation.extract(context.active(), normalizedRequest.headers).setValue(HTTP_SERVER_INSTRUMENTED_KEY, true);\n context.with(ctx, () => {\n client.emit(\"httpServerRequest\", request, response, normalizedRequest);\n const callback = request._startSpanCallback?.deref();\n if (callback) {\n callback(() => {\n next();\n return true;\n });\n } else {\n next();\n }\n });\n }\n };\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n const { [HTTP_ON_SERVER_REQUEST]: onHttpServerRequestStart } = getHttpServerSubscriptions(_options);\n subscribe(HTTP_ON_SERVER_REQUEST, onHttpServerRequestStart);\n },\n afterAllSetup(client) {\n if (DEBUG_BUILD && client.getIntegrationByName(\"Http\")) {\n debug.warn(\n \"It seems that you have manually added `httpServerIntegration` while `httpIntegration` is also present. Make sure to remove `httpServerIntegration` when adding `httpIntegration`.\"\n );\n }\n }\n };\n});\nconst httpServerIntegration = _httpServerIntegration;\n\nexport { addStartSpanCallback, httpServerIntegration };\n//# sourceMappingURL=httpServerIntegration.js.map\n", + "import { subscribe } from 'node:diagnostics_channel';\nimport { context, trace } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, getHttpClientSubscriptions, HTTP_ON_CLIENT_REQUEST, isTracingSuppressed, getRequestOptions, patchHttpModuleClient } from '@sentry/core';\nimport { INSTRUMENTATION_NAME } from './constants.js';\nimport { NODE_VERSION } from '../../nodeVersion.js';\nimport { errorMonitor } from 'node:events';\nimport * as http from 'node:http';\nimport * as https from 'node:https';\n\nconst FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL = NODE_VERSION.major === 22 && NODE_VERSION.minor >= 12 || NODE_VERSION.major === 23 && NODE_VERSION.minor >= 2 || NODE_VERSION.major >= 24;\nclass SentryHttpInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(INSTRUMENTATION_NAME, SDK_VERSION, config);\n }\n /** @inheritdoc */\n init() {\n const { outgoingRequestApplyCustomAttributes: applyCustomAttributesOnSpan, ...options } = this.getConfig();\n const patchOptions = {\n propagateTrace: options.propagateTraceInOutgoingRequests,\n applyCustomAttributesOnSpan,\n ...options,\n spans: options.createSpansForOutgoingRequests && (options.spans ?? true),\n ignoreOutgoingRequests(url, request) {\n return isTracingSuppressed() || !!options.ignoreOutgoingRequests?.(url, getRequestOptions(request));\n },\n outgoingRequestHook(span, request) {\n options.outgoingRequestHook?.(span, request);\n const originalOnce = request.once;\n const newOnce = new Proxy(originalOnce, {\n apply(target, thisArg, args) {\n const [event] = args;\n if (event !== \"response\") {\n return target.apply(thisArg, args);\n }\n const parentContext = context.active();\n const requestContext = trace.setSpan(parentContext, span);\n return context.with(requestContext, () => {\n return target.apply(thisArg, args);\n });\n }\n });\n request.once = newOnce;\n },\n outgoingResponseHook(span, response) {\n options.outgoingResponseHook?.(span, response);\n context.bind(context.active(), response);\n },\n errorMonitor,\n // Pass these in to detect OTel double-wrapping if we're enabling spans\n http,\n https\n };\n const { [HTTP_ON_CLIENT_REQUEST]: onHttpClientRequestCreated } = FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL ? getHttpClientSubscriptions(patchOptions) : {};\n let hasRegisteredHandlers = false;\n const sub = onHttpClientRequestCreated ? (moduleExports) => {\n if (!hasRegisteredHandlers && onHttpClientRequestCreated) {\n hasRegisteredHandlers = true;\n subscribe(HTTP_ON_CLIENT_REQUEST, onHttpClientRequestCreated);\n }\n return moduleExports;\n } : void 0;\n const wrapHttp = sub ?? ((moduleExports) => patchHttpModuleClient(moduleExports, patchOptions));\n const wrapHttps = sub ?? ((moduleExports) => patchHttpModuleClient(moduleExports, patchOptions));\n return [\n new InstrumentationNodeModuleDefinition(\"http\", [\"*\"], wrapHttp),\n new InstrumentationNodeModuleDefinition(\"https\", [\"*\"], wrapHttps)\n ];\n }\n}\n\nexport { SentryHttpInstrumentation };\n//# sourceMappingURL=SentryHttpInstrumentation.js.map\n", + "const INSTRUMENTATION_NAME = \"@sentry/instrumentation-http\";\n\nexport { INSTRUMENTATION_NAME };\n//# sourceMappingURL=constants.js.map\n", + "import { parseSemver } from '@sentry/core';\n\nconst NODE_VERSION = parseSemver(process.versions.node);\nconst NODE_MAJOR = NODE_VERSION.major;\nconst NODE_MINOR = NODE_VERSION.minor;\n\nexport { NODE_MAJOR, NODE_MINOR, NODE_VERSION };\n//# sourceMappingURL=nodeVersion.js.map\n", + "import { InstrumentationBase } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, LRUMap, isTracingSuppressed } from '@sentry/core';\nimport * as diagch from 'diagnostics_channel';\nimport { NODE_MAJOR, NODE_MINOR } from '../../nodeVersion.js';\nimport { addTracePropagationHeadersToFetchRequest, addFetchRequestBreadcrumb, getAbsoluteUrl } from '../../utils/outgoingFetchRequest.js';\n\nclass SentryNodeFetchInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-node-fetch\", SDK_VERSION, config);\n this._channelSubs = [];\n this._propagationDecisionMap = new LRUMap(100);\n this._ignoreOutgoingRequestsMap = /* @__PURE__ */ new WeakMap();\n }\n /** No need to instrument files/modules. */\n init() {\n return void 0;\n }\n /** Disable the instrumentation. */\n disable() {\n super.disable();\n this._channelSubs.forEach((sub) => sub.unsubscribe());\n this._channelSubs = [];\n }\n /** Enable the instrumentation. */\n enable() {\n super.enable();\n this._channelSubs = this._channelSubs || [];\n if (this._channelSubs.length > 0) {\n return;\n }\n this._subscribeToChannel(\"undici:request:create\", this._onRequestCreated.bind(this));\n this._subscribeToChannel(\"undici:request:headers\", this._onResponseHeaders.bind(this));\n }\n /**\n * This method is called when a request is created.\n * You can still mutate the request here before it is sent.\n */\n _onRequestCreated({ request }) {\n const config = this.getConfig();\n const enabled = config.enabled !== false;\n if (!enabled) {\n return;\n }\n const shouldIgnore = this._shouldIgnoreOutgoingRequest(request);\n this._ignoreOutgoingRequestsMap.set(request, shouldIgnore);\n if (shouldIgnore) {\n return;\n }\n if (config.tracePropagation !== false) {\n addTracePropagationHeadersToFetchRequest(request, this._propagationDecisionMap);\n }\n }\n /**\n * This method is called when a response is received.\n */\n _onResponseHeaders({ request, response }) {\n const config = this.getConfig();\n const enabled = config.enabled !== false;\n if (!enabled) {\n return;\n }\n const _breadcrumbs = config.breadcrumbs;\n const breadCrumbsEnabled = typeof _breadcrumbs === \"undefined\" ? true : _breadcrumbs;\n const shouldIgnore = this._ignoreOutgoingRequestsMap.get(request);\n if (breadCrumbsEnabled && !shouldIgnore) {\n addFetchRequestBreadcrumb(request, response);\n }\n }\n /** Subscribe to a diagnostics channel. */\n _subscribeToChannel(diagnosticChannel, onMessage) {\n const useNewSubscribe = NODE_MAJOR > 18 || NODE_MAJOR === 18 && NODE_MINOR >= 19;\n let unsubscribe;\n if (useNewSubscribe) {\n diagch.subscribe?.(diagnosticChannel, onMessage);\n unsubscribe = () => diagch.unsubscribe?.(diagnosticChannel, onMessage);\n } else {\n const channel = diagch.channel(diagnosticChannel);\n channel.subscribe(onMessage);\n unsubscribe = () => channel.unsubscribe(onMessage);\n }\n this._channelSubs.push({\n name: diagnosticChannel,\n unsubscribe\n });\n }\n /**\n * Check if the given outgoing request should be ignored.\n */\n _shouldIgnoreOutgoingRequest(request) {\n if (isTracingSuppressed()) {\n return true;\n }\n const url = getAbsoluteUrl(request.origin, request.path);\n const ignoreOutgoingRequests = this.getConfig().ignoreOutgoingRequests;\n if (typeof ignoreOutgoingRequests !== \"function\" || !url) {\n return false;\n }\n return ignoreOutgoingRequests(url);\n }\n}\n\nexport { SentryNodeFetchInstrumentation };\n//# sourceMappingURL=SentryNodeFetchInstrumentation.js.map\n", + "import { getClient, shouldPropagateTraceForUrl, getTraceData, mergeBaggageHeaders, getBreadcrumbLogLevelFromHttpStatusCode, addBreadcrumb, debug, parseUrl, getSanitizedUrlString } from '@sentry/core';\n\nconst SENTRY_TRACE_HEADER = \"sentry-trace\";\nconst SENTRY_BAGGAGE_HEADER = \"baggage\";\nconst W3C_TRACEPARENT_HEADER = \"traceparent\";\nfunction addTracePropagationHeadersToFetchRequest(request, propagationDecisionMap) {\n const url = getAbsoluteUrl(request.origin, request.path);\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() || {};\n const addedHeaders = shouldPropagateTraceForUrl(url, tracePropagationTargets, propagationDecisionMap) ? getTraceData({ propagateTraceparent }) : void 0;\n if (!addedHeaders) {\n return;\n }\n const { \"sentry-trace\": sentryTrace, baggage, traceparent } = addedHeaders;\n const requestHeaders = Array.isArray(request.headers) ? normalizeUndiciHeaderPairs(request.headers) : stringToArrayHeaders(request.headers);\n _deduplicateArrayHeader(requestHeaders, SENTRY_TRACE_HEADER);\n _deduplicateArrayHeader(requestHeaders, SENTRY_BAGGAGE_HEADER);\n if (propagateTraceparent) {\n _deduplicateArrayHeader(requestHeaders, W3C_TRACEPARENT_HEADER);\n }\n const hasExistingSentryTraceHeader = _findExistingHeaderIndex(requestHeaders, SENTRY_TRACE_HEADER) !== -1;\n if (!hasExistingSentryTraceHeader) {\n if (sentryTrace) {\n requestHeaders.push(SENTRY_TRACE_HEADER, sentryTrace);\n }\n if (traceparent && _findExistingHeaderIndex(requestHeaders, \"traceparent\") === -1) {\n requestHeaders.push(\"traceparent\", traceparent);\n }\n const existingBaggageIndex = _findExistingHeaderIndex(requestHeaders, SENTRY_BAGGAGE_HEADER);\n if (baggage && existingBaggageIndex === -1) {\n requestHeaders.push(SENTRY_BAGGAGE_HEADER, baggage);\n } else if (baggage) {\n const existingBaggageValue = requestHeaders[existingBaggageIndex + 1];\n const merged = mergeBaggageHeaders(existingBaggageValue, baggage);\n if (merged) {\n requestHeaders[existingBaggageIndex + 1] = merged;\n }\n }\n }\n if (Array.isArray(request.headers)) {\n request.headers.splice(0, request.headers.length, ...requestHeaders);\n } else {\n request.headers = arrayToStringHeaders(requestHeaders);\n }\n}\nfunction normalizeUndiciHeaderPairs(headers) {\n const out = [];\n for (let i = 0; i < headers.length; i++) {\n const entry = headers[i];\n if (i % 2 === 0) {\n out.push(typeof entry === \"string\" ? entry : String(entry));\n } else {\n out.push(Array.isArray(entry) ? entry.join(\", \") : entry ?? \"\");\n }\n }\n return out;\n}\nfunction stringToArrayHeaders(requestHeaders) {\n const headersArray = requestHeaders.split(\"\\r\\n\");\n const headers = [];\n for (const header of headersArray) {\n try {\n const colonIndex = header.indexOf(\":\");\n if (colonIndex === -1) {\n continue;\n }\n const key = header.slice(0, colonIndex).trim();\n const value = header.slice(colonIndex + 1).trim();\n if (key) {\n headers.push(key, value);\n }\n } catch {\n debug.warn(`Failed to convert string request header to array header: ${header}`);\n }\n }\n return headers;\n}\nfunction arrayToStringHeaders(headers) {\n const headerPairs = [];\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i];\n const value = headers[i + 1];\n if (!key || value == null) {\n continue;\n }\n headerPairs.push(`${key}: ${value}`);\n }\n if (!headerPairs.length) {\n return \"\";\n }\n return headerPairs.join(\"\\r\\n\").concat(\"\\r\\n\");\n}\nfunction _deduplicateArrayHeader(headers, headerName) {\n let firstIndex = -1;\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i] !== headerName) {\n continue;\n }\n if (firstIndex === -1) {\n firstIndex = i;\n continue;\n }\n const firstHeaderValue = headers[firstIndex + 1];\n if (headerName === SENTRY_BAGGAGE_HEADER && firstHeaderValue) {\n const merged = mergeBaggageHeaders(headers[i + 1], firstHeaderValue);\n if (merged) {\n headers[firstIndex + 1] = merged;\n }\n }\n headers.splice(i, 2);\n i -= 2;\n }\n}\nfunction _findExistingHeaderIndex(headers, name) {\n return headers.findIndex((header, i) => i % 2 === 0 && header === name);\n}\nfunction addFetchRequestBreadcrumb(request, response) {\n const data = getBreadcrumbData(request);\n const statusCode = response.statusCode;\n const level = getBreadcrumbLogLevelFromHttpStatusCode(statusCode);\n addBreadcrumb(\n {\n category: \"http\",\n data: {\n status_code: statusCode,\n ...data\n },\n type: \"http\",\n level\n },\n {\n event: \"response\",\n request,\n response\n }\n );\n}\nfunction getBreadcrumbData(request) {\n try {\n const url = getAbsoluteUrl(request.origin, request.path);\n const parsedUrl = parseUrl(url);\n const data = {\n url: getSanitizedUrlString(parsedUrl),\n \"http.method\": request.method || \"GET\"\n };\n if (parsedUrl.search) {\n data[\"http.query\"] = parsedUrl.search;\n }\n if (parsedUrl.hash) {\n data[\"http.fragment\"] = parsedUrl.hash;\n }\n return data;\n } catch {\n return {};\n }\n}\nfunction getAbsoluteUrl(origin, path = \"/\") {\n try {\n const url = new URL(path, origin);\n return url.toString();\n } catch {\n const url = `${origin}`;\n if (url.endsWith(\"/\") && path.startsWith(\"/\")) {\n return `${url}${path.slice(1)}`;\n }\n if (!url.endsWith(\"/\") && !path.startsWith(\"/\")) {\n return `${url}/${path}`;\n }\n return `${url}${path}`;\n }\n}\n\nexport { addFetchRequestBreadcrumb, addTracePropagationHeadersToFetchRequest, getAbsoluteUrl };\n//# sourceMappingURL=outgoingFetchRequest.js.map\n", + "import * as api from '@opentelemetry/api';\nimport { trace, SpanKind, createContextKey, TraceFlags, propagation, INVALID_TRACEID, context, SpanStatusCode, ROOT_CONTEXT, isSpanContextValid } from '@opentelemetry/api';\nimport { parseUrl, getSanitizedUrlString, SDK_VERSION, derefWeakRef, addNonEnumerableProperty, makeWeakRef, isSentryRequestUrl, getClient, baggageHeaderToDynamicSamplingContext, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, stripUrlQueryAndFragment, spanToJSON, hasSpansEnabled, dynamicSamplingContextToSentryBaggageHeader, LRUMap, debug, shouldPropagateTraceForUrl, parseBaggageHeader, SENTRY_BAGGAGE_KEY_PREFIX, generateSentryTraceHeader, generateTraceparentHeader, getDynamicSamplingContextFromSpan, getCurrentScope, getDynamicSamplingContextFromScope, getIsolationScope, propagationContextFromHeaders, shouldContinueTrace, spanToTraceContext, getTraceContextFromScope, getRootSpan, handleCallbackErrors, generateTraceId, generateSpanId, _INTERNAL_safeMathRandom, SPAN_STATUS_OK, SPAN_STATUS_ERROR, getSpanStatusFromHttpCode, _INTERNAL_safeDateNow, debounce, timedEventsToMeasurements, captureEvent, getCapturedScopesOnSpan, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, convertSpanLinksForEnvelope, getStatusMessage, spanTimeInputToSeconds, hasSpanStreamingEnabled, addChildSpanToSpan, getDefaultIsolationScope, getDefaultCurrentScope, setCapturedScopesOnSpan, logSpanStart, logSpanEnd, SPAN_KIND, safeSetSpanJSONAttributes, spanKindToName, shouldIgnoreSpan, parseSampleRate, sampleSpan, setAsyncContextStrategy } from '@sentry/core';\nimport { URL_FULL, HTTP_URL, HTTP_REQUEST_METHOD, HTTP_METHOD, DB_SYSTEM_NAME, DB_SYSTEM, RPC_SERVICE, MESSAGING_SYSTEM, FAAS_TRIGGER, DB_STATEMENT, HTTP_TARGET, HTTP_ROUTE, HTTP_RESPONSE_STATUS_CODE, HTTP_STATUS_CODE, RPC_GRPC_STATUS_CODE, SERVICE_VERSION, SERVICE_NAME } from '@sentry/conventions/attributes';\nimport { SamplingDecision } from '@opentelemetry/sdk-trace-base';\nimport { W3CBaggagePropagator, isTracingSuppressed as isTracingSuppressed$1, suppressTracing as suppressTracing$1, SDK_INFO } from '@opentelemetry/core';\n\nconst SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE = \"sentry.parentIsRemote\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION = \"sentry.graphql.operation\";\n\nfunction getParentSpanId(span) {\n if (\"parentSpanId\" in span) {\n return span.parentSpanId;\n } else if (\"parentSpanContext\" in span) {\n return span.parentSpanContext?.spanId;\n }\n return void 0;\n}\n\nfunction spanHasAttributes(span) {\n const castSpan = span;\n return !!castSpan.attributes && typeof castSpan.attributes === \"object\";\n}\nfunction spanHasKind(span) {\n const castSpan = span;\n return typeof castSpan.kind === \"number\";\n}\nfunction spanHasStatus(span) {\n const castSpan = span;\n return !!castSpan.status;\n}\nfunction spanHasName(span) {\n const castSpan = span;\n return !!castSpan.name;\n}\nfunction spanHasParentId(span) {\n const castSpan = span;\n return !!getParentSpanId(castSpan);\n}\nfunction spanHasEvents(span) {\n const castSpan = span;\n return Array.isArray(castSpan.events);\n}\n\nfunction getRequestSpanData(span) {\n if (!spanHasAttributes(span)) {\n return {};\n }\n const maybeUrlAttribute = span.attributes[URL_FULL] || span.attributes[HTTP_URL];\n const data = {\n url: maybeUrlAttribute,\n // eslint-disable-next-line typescript/no-deprecated\n \"http.method\": span.attributes[HTTP_REQUEST_METHOD] || span.attributes[HTTP_METHOD]\n };\n if (!data[\"http.method\"] && data.url) {\n data[\"http.method\"] = \"GET\";\n }\n try {\n if (typeof maybeUrlAttribute === \"string\") {\n const url = parseUrl(maybeUrlAttribute);\n data.url = getSanitizedUrlString(url);\n if (url.search) {\n data[\"http.query\"] = url.search;\n }\n if (url.hash) {\n data[\"http.fragment\"] = url.hash;\n }\n }\n } catch {\n }\n return data;\n}\n\nfunction wrapClientClass(ClientClass) {\n class OpenTelemetryClient extends ClientClass {\n constructor(...args) {\n super(...args);\n }\n /** Get the OTEL tracer. */\n get tracer() {\n if (this._tracer) {\n return this._tracer;\n }\n const name = \"@sentry/opentelemetry\";\n const version = SDK_VERSION;\n const tracer = trace.getTracer(name, version);\n this._tracer = tracer;\n return tracer;\n }\n /**\n * @inheritDoc\n */\n async flush(timeout) {\n const provider = this.traceProvider;\n await provider?.forceFlush();\n return super.flush(timeout);\n }\n }\n return OpenTelemetryClient;\n}\n\nfunction getSpanKind(span) {\n if (spanHasKind(span)) {\n return span.kind;\n }\n return SpanKind.INTERNAL;\n}\n\nconst SENTRY_TRACE_HEADER = \"sentry-trace\";\nconst SENTRY_BAGGAGE_HEADER = \"baggage\";\nconst SENTRY_TRACE_STATE_DSC = \"sentry.dsc\";\nconst SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING = \"sentry.sampled_not_recording\";\nconst SENTRY_TRACE_STATE_URL = \"sentry.url\";\nconst SENTRY_TRACE_STATE_SAMPLE_RAND = \"sentry.sample_rand\";\nconst SENTRY_TRACE_STATE_SAMPLE_RATE = \"sentry.sample_rate\";\nconst SENTRY_TRACE_STATE_CHILD_IGNORED = \"sentry.ignored\";\nconst SENTRY_TRACE_STATE_SEGMENT_IGNORED = \"sentry.segment_ignored\";\nconst SENTRY_SCOPES_CONTEXT_KEY = createContextKey(\"sentry_scopes\");\nconst SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY = createContextKey(\"sentry_fork_isolation_scope\");\nconst SENTRY_FORK_SET_SCOPE_CONTEXT_KEY = createContextKey(\"sentry_fork_set_scope\");\nconst SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY = createContextKey(\"sentry_fork_set_isolation_scope\");\n\nconst SCOPE_CONTEXT_FIELD = \"_scopeContext\";\nfunction getScopesFromContext(context) {\n return context.getValue(SENTRY_SCOPES_CONTEXT_KEY);\n}\nfunction setScopesOnContext(context, scopes) {\n return context.setValue(SENTRY_SCOPES_CONTEXT_KEY, scopes);\n}\nfunction setContextOnScope(scope, context) {\n addNonEnumerableProperty(scope, SCOPE_CONTEXT_FIELD, makeWeakRef(context));\n}\nfunction getContextFromScope(scope) {\n return derefWeakRef(scope[SCOPE_CONTEXT_FIELD]);\n}\n\nfunction isSentryRequestSpan(span) {\n if (!spanHasAttributes(span)) {\n return false;\n }\n const { attributes } = span;\n const httpUrl = attributes[HTTP_URL] || attributes[URL_FULL];\n if (!httpUrl) {\n return false;\n }\n return isSentryRequestUrl(httpUrl.toString(), getClient());\n}\n\nfunction getSamplingDecision(spanContext) {\n const { traceFlags, traceState } = spanContext;\n const sampledNotRecording = traceState ? traceState.get(SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING) === \"1\" : false;\n if (traceFlags === TraceFlags.SAMPLED) {\n return true;\n }\n if (sampledNotRecording) {\n return false;\n }\n const dscString = traceState ? traceState.get(SENTRY_TRACE_STATE_DSC) : void 0;\n const dsc = dscString ? baggageHeaderToDynamicSamplingContext(dscString) : void 0;\n if (dsc?.sampled === \"true\") {\n return true;\n }\n if (dsc?.sampled === \"false\") {\n return false;\n }\n return void 0;\n}\n\nfunction inferSpanData(spanName, attributes, kind) {\n const httpMethod = attributes[HTTP_REQUEST_METHOD] || attributes[HTTP_METHOD];\n if (httpMethod) {\n return descriptionForHttpMethod({ attributes, name: spanName, kind }, httpMethod);\n }\n const dbSystem = attributes[DB_SYSTEM_NAME] || attributes[DB_SYSTEM];\n const opIsCache = typeof attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] === \"string\" && attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP].startsWith(\"cache.\");\n if (dbSystem && !opIsCache) {\n return descriptionForDbSystem({ attributes, name: spanName });\n }\n const customSourceOrRoute = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === \"custom\" ? \"custom\" : \"route\";\n const rpcService = attributes[RPC_SERVICE];\n if (rpcService) {\n return {\n ...getUserUpdatedNameAndSource(spanName, attributes, \"route\"),\n op: \"rpc\"\n };\n }\n const messagingSystem = attributes[MESSAGING_SYSTEM];\n if (messagingSystem) {\n return {\n ...getUserUpdatedNameAndSource(spanName, attributes, customSourceOrRoute),\n op: \"message\"\n };\n }\n const faasTrigger = attributes[FAAS_TRIGGER];\n if (faasTrigger) {\n return {\n ...getUserUpdatedNameAndSource(spanName, attributes, customSourceOrRoute),\n op: faasTrigger.toString()\n };\n }\n return { op: void 0, description: spanName, source: \"custom\" };\n}\nfunction parseSpanDescription(span) {\n const attributes = spanHasAttributes(span) ? span.attributes : {};\n const name = spanHasName(span) ? span.name : \"\";\n const kind = getSpanKind(span);\n return inferSpanData(name, attributes, kind);\n}\nfunction descriptionForDbSystem({ attributes, name }) {\n const userDefinedName = attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n if (typeof userDefinedName === \"string\") {\n return {\n op: \"db\",\n description: userDefinedName,\n source: attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] || \"custom\"\n };\n }\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === \"custom\") {\n return { op: \"db\", description: name, source: \"custom\" };\n }\n const statement = attributes[DB_STATEMENT];\n const description = statement ? statement.toString() : name;\n return { op: \"db\", description, source: \"task\" };\n}\nfunction descriptionForHttpMethod({ name, kind, attributes }, httpMethod) {\n const opParts = [\"http\"];\n switch (kind) {\n case SpanKind.CLIENT:\n opParts.push(\"client\");\n break;\n case SpanKind.SERVER:\n opParts.push(\"server\");\n break;\n }\n if (attributes[\"sentry.http.prefetch\"]) {\n opParts.push(\"prefetch\");\n }\n const { urlPath, url, query, fragment, hasRoute } = getSanitizedUrl(attributes, kind);\n if (!urlPath) {\n return { ...getUserUpdatedNameAndSource(name, attributes), op: opParts.join(\".\") };\n }\n const graphqlOperationsAttribute = attributes[SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION];\n const baseDescription = `${httpMethod} ${urlPath}`;\n const inferredDescription = graphqlOperationsAttribute ? `${baseDescription} (${getGraphqlOperationNamesFromAttribute(graphqlOperationsAttribute)})` : baseDescription;\n const inferredSource = hasRoute || urlPath === \"/\" ? \"route\" : \"url\";\n const data = {};\n if (url) {\n data.url = url;\n }\n if (query) {\n data[\"http.query\"] = query.slice(1);\n }\n if (fragment) {\n data[\"http.fragment\"] = fragment.slice(1);\n }\n const isClientOrServerKind = kind === SpanKind.CLIENT || kind === SpanKind.SERVER;\n const origin = attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] || \"manual\";\n const isManualSpan = !`${origin}`.startsWith(\"auto\");\n const alreadyHasCustomSource = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === \"custom\";\n const customSpanName = attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n const useInferredDescription = !alreadyHasCustomSource && customSpanName == null && (isClientOrServerKind || !isManualSpan);\n const { description, source } = useInferredDescription ? { description: inferredDescription, source: inferredSource } : getUserUpdatedNameAndSource(name, attributes);\n return {\n op: opParts.join(\".\"),\n description,\n source,\n data\n };\n}\nfunction getGraphqlOperationNamesFromAttribute(attr) {\n if (Array.isArray(attr)) {\n const sorted = attr.slice().sort();\n if (sorted.length <= 5) {\n return sorted.join(\", \");\n } else {\n return `${sorted.slice(0, 5).join(\", \")}, +${sorted.length - 5}`;\n }\n }\n return `${attr}`;\n}\nfunction getSanitizedUrl(attributes, kind) {\n const httpTarget = attributes[HTTP_TARGET];\n const httpUrl = attributes[HTTP_URL] || attributes[URL_FULL];\n const httpRoute = attributes[HTTP_ROUTE];\n const parsedUrl = typeof httpUrl === \"string\" ? parseUrl(httpUrl) : void 0;\n const url = parsedUrl ? getSanitizedUrlString(parsedUrl) : void 0;\n const query = parsedUrl?.search || void 0;\n const fragment = parsedUrl?.hash || void 0;\n if (typeof httpRoute === \"string\") {\n return { urlPath: httpRoute, url, query, fragment, hasRoute: true };\n }\n if (kind === SpanKind.SERVER && typeof httpTarget === \"string\") {\n return { urlPath: stripUrlQueryAndFragment(httpTarget), url, query, fragment, hasRoute: false };\n }\n if (parsedUrl) {\n return { urlPath: url, url, query, fragment, hasRoute: false };\n }\n if (typeof httpTarget === \"string\") {\n return { urlPath: stripUrlQueryAndFragment(httpTarget), url, query, fragment, hasRoute: false };\n }\n return { urlPath: void 0, url, query, fragment, hasRoute: false };\n}\nfunction getUserUpdatedNameAndSource(originalName, attributes, fallbackSource = \"custom\") {\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] || fallbackSource;\n const description = attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n if (description && typeof description === \"string\") {\n return {\n description,\n source\n };\n }\n return { description: originalName, source };\n}\n\nfunction enhanceDscWithOpenTelemetryRootSpanName(client) {\n client.on(\"createDsc\", (dsc, rootSpan) => {\n if (!rootSpan) {\n return;\n }\n const jsonSpan = spanToJSON(rootSpan);\n const attributes = jsonSpan.data;\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n const { description } = spanHasName(rootSpan) ? parseSpanDescription(rootSpan) : { description: void 0 };\n if (source !== \"url\" && description) {\n dsc.transaction = description;\n }\n if (hasSpansEnabled()) {\n const sampled = getSamplingDecision(rootSpan.spanContext());\n dsc.sampled = sampled == void 0 ? void 0 : String(sampled);\n }\n });\n}\n\nfunction getActiveSpan() {\n return trace.getActiveSpan();\n}\n\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nclass TraceState {\n constructor() {\n this._internalState = /* @__PURE__ */ new Map();\n }\n /** @inheritDoc */\n set(key, value) {\n const next = this._clone();\n if (next._internalState.has(key)) {\n next._internalState.delete(key);\n }\n next._internalState.set(key, value);\n return next;\n }\n /** @inheritDoc */\n unset(key) {\n const next = this._clone();\n next._internalState.delete(key);\n return next;\n }\n /** @inheritDoc */\n get(key) {\n return this._internalState.get(key);\n }\n /** @inheritDoc */\n serialize() {\n return Array.from(this._internalState.keys()).reverse().map((key) => `${key}=${this._internalState.get(key)}`).join(\",\");\n }\n _clone() {\n const next = new TraceState();\n next._internalState = new Map(this._internalState);\n return next;\n }\n}\n\nfunction makeTraceState({\n dsc,\n sampled\n}) {\n const dscString = dsc ? dynamicSamplingContextToSentryBaggageHeader(dsc) : void 0;\n const traceStateBase = new TraceState();\n const traceStateWithDsc = dscString ? traceStateBase.set(SENTRY_TRACE_STATE_DSC, dscString) : traceStateBase;\n return sampled === false ? traceStateWithDsc.set(SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING, \"1\") : traceStateWithDsc;\n}\n\nconst setupElements = /* @__PURE__ */ new Set();\nfunction openTelemetrySetupCheck() {\n return Array.from(setupElements);\n}\nfunction setIsSetup(element) {\n setupElements.add(element);\n}\n\nclass SentryPropagator extends W3CBaggagePropagator {\n constructor() {\n super();\n setIsSetup(\"SentryPropagator\");\n this._urlMatchesTargetsMap = new LRUMap(100);\n }\n /**\n * @inheritDoc\n */\n inject(context2, carrier, setter) {\n if (isTracingSuppressed$1(context2)) {\n DEBUG_BUILD && debug.log(\"[Tracing] Not injecting trace data for url because tracing is suppressed.\");\n return;\n }\n const activeSpan = trace.getSpan(context2);\n const url = activeSpan && getCurrentURL(activeSpan);\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() || {};\n if (!shouldPropagateTraceForUrl(url, tracePropagationTargets, this._urlMatchesTargetsMap)) {\n DEBUG_BUILD && debug.log(\"[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:\", url);\n return;\n }\n const existingBaggageHeader = getExistingBaggage(carrier);\n const existingSentryTraceHeader = getExistingSentryTrace(carrier);\n let baggage = propagation.getBaggage(context2) || propagation.createBaggage({});\n const { dynamicSamplingContext, traceId, spanId, sampled } = getInjectionData(context2);\n if (existingBaggageHeader) {\n const baggageEntries = parseBaggageHeader(existingBaggageHeader);\n if (baggageEntries) {\n Object.entries(baggageEntries).forEach(([key, value]) => {\n if (!existingSentryTraceHeader && key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n return;\n }\n baggage = baggage.setEntry(key, { value });\n });\n }\n }\n if (!existingSentryTraceHeader && dynamicSamplingContext) {\n baggage = Object.entries(dynamicSamplingContext).reduce((b, [dscKey, dscValue]) => {\n if (dscValue) {\n return b.setEntry(`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`, { value: dscValue });\n }\n return b;\n }, baggage);\n }\n if (!existingSentryTraceHeader && traceId && traceId !== INVALID_TRACEID) {\n setter.set(carrier, SENTRY_TRACE_HEADER, generateSentryTraceHeader(traceId, spanId, sampled));\n if (propagateTraceparent) {\n setter.set(carrier, \"traceparent\", generateTraceparentHeader(traceId, spanId, sampled));\n }\n }\n super.inject(propagation.setBaggage(context2, baggage), carrier, setter);\n }\n /**\n * @inheritDoc\n */\n extract(context2, carrier, getter) {\n const maybeSentryTraceHeader = getter.get(carrier, SENTRY_TRACE_HEADER);\n const baggage = getter.get(carrier, SENTRY_BAGGAGE_HEADER);\n const sentryTrace = maybeSentryTraceHeader ? Array.isArray(maybeSentryTraceHeader) ? maybeSentryTraceHeader[0] : maybeSentryTraceHeader : void 0;\n return ensureScopesOnContext(getContextWithRemoteActiveSpan(context2, { sentryTrace, baggage }));\n }\n /**\n * @inheritDoc\n */\n fields() {\n return [SENTRY_TRACE_HEADER, SENTRY_BAGGAGE_HEADER, \"traceparent\"];\n }\n}\nfunction getInjectionData(context2, options = {}) {\n const span = trace.getSpan(context2);\n if (span?.spanContext().isRemote) {\n const spanContext = span.spanContext();\n const dynamicSamplingContext2 = getDynamicSamplingContextFromSpan(span);\n return {\n dynamicSamplingContext: dynamicSamplingContext2,\n traceId: spanContext.traceId,\n spanId: void 0,\n sampled: getSamplingDecision(spanContext)\n // TODO: Do we need to change something here?\n };\n }\n if (span) {\n const spanContext = span.spanContext();\n const dynamicSamplingContext2 = getDynamicSamplingContextFromSpan(span);\n return {\n dynamicSamplingContext: dynamicSamplingContext2,\n traceId: spanContext.traceId,\n spanId: spanContext.spanId,\n sampled: getSamplingDecision(spanContext)\n // TODO: Do we need to change something here?\n };\n }\n const scope = options.scope || getScopesFromContext(context2)?.scope || getCurrentScope();\n const client = options.client || getClient();\n const propagationContext = scope.getPropagationContext();\n const dynamicSamplingContext = client ? getDynamicSamplingContextFromScope(client, scope) : void 0;\n return {\n dynamicSamplingContext,\n traceId: propagationContext.traceId,\n spanId: propagationContext.propagationSpanId,\n sampled: propagationContext.sampled\n };\n}\nfunction getContextWithRemoteActiveSpan(ctx, { sentryTrace, baggage }) {\n const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n const { traceId, parentSpanId, sampled, dsc } = propagationContext;\n const client = getClient();\n const incomingDsc = baggageHeaderToDynamicSamplingContext(baggage);\n if (!parentSpanId || client && !shouldContinueTrace(client, incomingDsc?.org_id)) {\n return ctx;\n }\n const spanContext = generateRemoteSpanContext({\n traceId,\n spanId: parentSpanId,\n sampled,\n dsc\n });\n return trace.setSpanContext(ctx, spanContext);\n}\nfunction continueTraceAsRemoteSpan(ctx, options, callback) {\n const ctxWithSpanContext = ensureScopesOnContext(getContextWithRemoteActiveSpan(ctx, options));\n return context.with(ctxWithSpanContext, callback);\n}\nfunction ensureScopesOnContext(ctx) {\n const scopes = getScopesFromContext(ctx);\n const newScopes = {\n // If we have no scope here, this is most likely either the root context or a context manually derived from it\n // In this case, we want to fork the current scope, to ensure we do not pollute the root scope\n scope: scopes ? scopes.scope : getCurrentScope().clone(),\n isolationScope: scopes ? scopes.isolationScope : getIsolationScope()\n };\n return setScopesOnContext(ctx, newScopes);\n}\nfunction getExistingBaggage(carrier) {\n try {\n const baggage = carrier[SENTRY_BAGGAGE_HEADER];\n return Array.isArray(baggage) ? baggage.join(\",\") : baggage;\n } catch {\n return void 0;\n }\n}\nfunction getExistingSentryTrace(carrier) {\n try {\n return carrier[SENTRY_TRACE_HEADER];\n } catch {\n return void 0;\n }\n}\nfunction getCurrentURL(span) {\n const spanData = spanToJSON(span).data;\n const urlAttribute = spanData[HTTP_URL] || spanData[URL_FULL];\n if (typeof urlAttribute === \"string\") {\n return urlAttribute;\n }\n const urlTraceState = span.spanContext().traceState?.get(SENTRY_TRACE_STATE_URL);\n if (urlTraceState) {\n return urlTraceState;\n }\n return void 0;\n}\nfunction generateRemoteSpanContext({\n spanId,\n traceId,\n sampled,\n dsc\n}) {\n const traceState = makeTraceState({\n dsc,\n sampled\n });\n const spanContext = {\n traceId,\n spanId,\n isRemote: true,\n traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE,\n traceState\n };\n return spanContext;\n}\n\nfunction _startSpan(options, callback, autoEnd) {\n const tracer = getTracer();\n const { name, parentSpan: customParentSpan } = options;\n const wrapper = getActiveSpanWrapper(customParentSpan);\n return wrapper(() => {\n const activeCtx = getContext(options.scope, options.forceTransaction);\n const missingRequiredParent = options.onlyIfParent && !trace.getSpan(activeCtx);\n const ctx = missingRequiredParent ? suppressTracing$1(activeCtx) : activeCtx;\n if (missingRequiredParent) {\n getClient()?.recordDroppedEvent(\"no_parent_span\", \"span\");\n }\n const spanOptions = getSpanOptions(options);\n if (!hasSpansEnabled()) {\n const suppressedCtx = isTracingSuppressed$1(ctx) ? ctx : suppressTracing$1(ctx);\n return context.with(suppressedCtx, () => {\n return tracer.startActiveSpan(name, spanOptions, suppressedCtx, (span) => {\n patchSpanEnd(span);\n return context.with(activeCtx, () => {\n return handleCallbackErrors(\n () => callback(span),\n () => {\n if (spanToJSON(span).status === void 0) {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n },\n autoEnd ? () => span.end() : void 0\n );\n });\n });\n });\n }\n return tracer.startActiveSpan(name, spanOptions, ctx, (span) => {\n patchSpanEnd(span);\n return handleCallbackErrors(\n () => callback(span),\n () => {\n if (spanToJSON(span).status === void 0) {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n },\n autoEnd ? () => span.end() : void 0\n );\n });\n });\n}\nfunction startSpan(options, callback) {\n return _startSpan(options, callback, true);\n}\nfunction startSpanManual(options, callback) {\n return _startSpan(options, (span) => callback(span, () => span.end()), false);\n}\nfunction startInactiveSpan(options) {\n const tracer = getTracer();\n const { name, parentSpan: customParentSpan } = options;\n const wrapper = getActiveSpanWrapper(customParentSpan);\n return wrapper(() => {\n const activeCtx = getContext(options.scope, options.forceTransaction);\n const missingRequiredParent = options.onlyIfParent && !trace.getSpan(activeCtx);\n let ctx = missingRequiredParent ? suppressTracing$1(activeCtx) : activeCtx;\n if (missingRequiredParent) {\n getClient()?.recordDroppedEvent(\"no_parent_span\", \"span\");\n }\n const spanOptions = getSpanOptions(options);\n if (!hasSpansEnabled()) {\n ctx = isTracingSuppressed$1(ctx) ? ctx : suppressTracing$1(ctx);\n }\n const span = tracer.startSpan(name, spanOptions, ctx);\n patchSpanEnd(span);\n return span;\n });\n}\nfunction withActiveSpan(span, callback) {\n const newContextWithActiveSpan = span ? trace.setSpan(context.active(), span) : trace.deleteSpan(context.active());\n return context.with(newContextWithActiveSpan, () => callback(getCurrentScope()));\n}\nfunction getTracer() {\n const client = getClient();\n return client?.tracer || trace.getTracer(\"@sentry/opentelemetry\", SDK_VERSION);\n}\nfunction getSpanOptions(options) {\n const { startTime, attributes, kind, op, links } = options;\n const fixedStartTime = typeof startTime === \"number\" ? ensureTimestampInMilliseconds(startTime) : startTime;\n return {\n attributes: op ? {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n ...attributes\n } : attributes,\n kind,\n links,\n startTime: fixedStartTime\n };\n}\nfunction ensureTimestampInMilliseconds(timestamp) {\n const isMs = timestamp < 9999999999;\n return isMs ? timestamp * 1e3 : timestamp;\n}\nfunction patchSpanEnd(span) {\n const originalEnd = span.end.bind(span);\n span.end = (endTime) => {\n return originalEnd(typeof endTime === \"number\" ? ensureTimestampInMilliseconds(endTime) : endTime);\n };\n}\nfunction getContext(scope, forceTransaction) {\n const ctx = getContextForScope(scope);\n const parentSpan = trace.getSpan(ctx);\n if (!parentSpan) {\n return ctx;\n }\n if (!forceTransaction) {\n return ctx;\n }\n const ctxWithoutSpan = trace.deleteSpan(ctx);\n const { spanId, traceId } = parentSpan.spanContext();\n const sampled = getSamplingDecision(parentSpan.spanContext());\n const rootSpan = getRootSpan(parentSpan);\n const dsc = getDynamicSamplingContextFromSpan(rootSpan);\n const traceState = makeTraceState({\n dsc,\n sampled\n });\n const spanOptions = {\n traceId,\n spanId,\n isRemote: true,\n traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE,\n traceState\n };\n const ctxWithSpanContext = trace.setSpanContext(ctxWithoutSpan, spanOptions);\n return ctxWithSpanContext;\n}\nfunction getContextForScope(scope) {\n if (scope) {\n const ctx = getContextFromScope(scope);\n if (ctx) {\n return ctx;\n }\n }\n return context.active();\n}\nfunction continueTrace(options, callback) {\n return continueTraceAsRemoteSpan(context.active(), options, callback);\n}\nfunction startNewTrace(callback) {\n const traceId = generateTraceId();\n const spanId = generateSpanId();\n const spanContext = {\n traceId,\n spanId,\n isRemote: true,\n traceFlags: TraceFlags.NONE\n };\n const ctxWithTrace = trace.setSpanContext(context.active(), spanContext);\n return context.with(ctxWithTrace, () => {\n getCurrentScope().setPropagationContext({\n traceId,\n sampleRand: _INTERNAL_safeMathRandom()\n });\n return callback();\n });\n}\nfunction getTraceContextForScope(client, scope) {\n const ctx = getContextFromScope(scope);\n const span = ctx && trace.getSpan(ctx);\n const traceContext = span ? spanToTraceContext(span) : getTraceContextFromScope(scope);\n const dynamicSamplingContext = span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromScope(client, scope);\n return [dynamicSamplingContext, traceContext];\n}\nfunction getActiveSpanWrapper(parentSpan) {\n return parentSpan !== void 0 ? (callback) => {\n return withActiveSpan(parentSpan, callback);\n } : (callback) => callback();\n}\n\nfunction suppressTracing(callback) {\n const ctx = suppressTracing$1(context.active());\n return context.with(ctx, callback);\n}\nfunction isTracingSuppressed(scope) {\n const ctx = scope ? getContextFromScope(scope) : context.active();\n return ctx ? isTracingSuppressed$1(ctx) : false;\n}\n\nfunction setupEventContextTrace(client) {\n client.on(\"preprocessEvent\", (event) => {\n const span = getActiveSpan();\n if (!span || event.type === \"transaction\") {\n return;\n }\n event.contexts = {\n trace: spanToTraceContext(span),\n ...event.contexts\n };\n const rootSpan = getRootSpan(span);\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(rootSpan),\n ...event.sdkProcessingMetadata\n };\n return event;\n });\n}\n\nfunction buildContextWithSentryScopes(context, activeContext) {\n const span = trace.getSpan(context);\n let effectiveContext;\n if (span?.spanContext().traceState?.get(SENTRY_TRACE_STATE_CHILD_IGNORED) === \"1\") {\n const contextWithoutSpan = trace.deleteSpan(context);\n const parentSpan = trace.getSpan(activeContext);\n effectiveContext = parentSpan ? trace.setSpan(contextWithoutSpan, parentSpan) : contextWithoutSpan;\n } else {\n effectiveContext = context;\n }\n const currentScopes = getScopesFromContext(effectiveContext);\n const currentScope = currentScopes?.scope || getCurrentScope();\n const currentIsolationScope = currentScopes?.isolationScope || getIsolationScope();\n const shouldForkIsolationScope = effectiveContext.getValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY) === true;\n const scope = effectiveContext.getValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY);\n const isolationScope = effectiveContext.getValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY);\n const newCurrentScope = scope || currentScope.clone();\n const newIsolationScope = isolationScope || (shouldForkIsolationScope ? currentIsolationScope.clone() : currentIsolationScope);\n const scopes = { scope: newCurrentScope, isolationScope: newIsolationScope };\n const ctx1 = setScopesOnContext(effectiveContext, scopes);\n const ctx2 = ctx1.deleteValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY).deleteValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY).deleteValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY);\n setContextOnScope(newCurrentScope, ctx2);\n return ctx2;\n}\n\nfunction wrapContextManagerClass(ContextManagerClass) {\n class SentryContextManager extends ContextManagerClass {\n constructor(...args) {\n super(...args);\n setIsSetup(\"SentryContextManager\");\n }\n /**\n * Overwrite with() of the original AsyncLocalStorageContextManager\n * to ensure we also create new scopes per context.\n */\n with(context, fn, thisArg, ...args) {\n const ctx2 = buildContextWithSentryScopes(context, this.active());\n return super.with(ctx2, fn, thisArg, ...args);\n }\n /**\n * Gets underlying AsyncLocalStorage and symbol to allow lookup of scope.\n */\n getAsyncLocalStorageLookup() {\n return {\n // @ts-expect-error This is on the base class, but not part of the interface\n asyncLocalStorage: this._asyncLocalStorage,\n contextSymbol: SENTRY_SCOPES_CONTEXT_KEY\n };\n }\n }\n return SentryContextManager;\n}\n\nfunction groupSpansWithParents(spans) {\n const nodeMap = /* @__PURE__ */ new Map();\n for (const span of spans) {\n createOrUpdateSpanNodeAndRefs(nodeMap, span);\n }\n return Array.from(nodeMap, function([_id, spanNode]) {\n return spanNode;\n });\n}\nfunction getLocalParentId(span) {\n const parentIsRemote = span.attributes[SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE] === true;\n return !parentIsRemote ? getParentSpanId(span) : void 0;\n}\nfunction createOrUpdateSpanNodeAndRefs(nodeMap, span) {\n const id = span.spanContext().spanId;\n const parentId = getLocalParentId(span);\n if (!parentId) {\n createOrUpdateNode(nodeMap, { id, span, children: [] });\n return;\n }\n const parentNode = createOrGetParentNode(nodeMap, parentId);\n const node = createOrUpdateNode(nodeMap, { id, span, parentNode, children: [] });\n parentNode.children.push(node);\n}\nfunction createOrGetParentNode(nodeMap, id) {\n const existing = nodeMap.get(id);\n if (existing) {\n return existing;\n }\n return createOrUpdateNode(nodeMap, { id, children: [] });\n}\nfunction createOrUpdateNode(nodeMap, spanNode) {\n const existing = nodeMap.get(spanNode.id);\n if (existing?.span) {\n return existing;\n }\n if (existing && !existing.span) {\n existing.span = spanNode.span;\n existing.parentNode = spanNode.parentNode;\n return existing;\n }\n nodeMap.set(spanNode.id, spanNode);\n return spanNode;\n}\n\nconst canonicalGrpcErrorCodesMap = {\n \"1\": \"cancelled\",\n \"2\": \"unknown_error\",\n \"3\": \"invalid_argument\",\n \"4\": \"deadline_exceeded\",\n \"5\": \"not_found\",\n \"6\": \"already_exists\",\n \"7\": \"permission_denied\",\n \"8\": \"resource_exhausted\",\n \"9\": \"failed_precondition\",\n \"10\": \"aborted\",\n \"11\": \"out_of_range\",\n \"12\": \"unimplemented\",\n \"13\": \"internal_error\",\n \"14\": \"unavailable\",\n \"15\": \"data_loss\",\n \"16\": \"unauthenticated\"\n};\nconst isStatusErrorMessageValid = (message) => {\n return Object.values(canonicalGrpcErrorCodesMap).includes(message);\n};\nfunction mapStatus(span) {\n const attributes = spanHasAttributes(span) ? span.attributes : {};\n const status = spanHasStatus(span) ? span.status : void 0;\n if (status) {\n if (status.code === SpanStatusCode.OK) {\n return { code: SPAN_STATUS_OK };\n } else if (status.code === SpanStatusCode.ERROR) {\n if (typeof status.message === \"undefined\") {\n const inferredStatus2 = inferStatusFromAttributes(attributes);\n if (inferredStatus2) {\n return inferredStatus2;\n }\n }\n if (status.message && isStatusErrorMessageValid(status.message)) {\n return { code: SPAN_STATUS_ERROR, message: status.message };\n } else {\n return { code: SPAN_STATUS_ERROR, message: \"internal_error\" };\n }\n }\n }\n const inferredStatus = inferStatusFromAttributes(attributes);\n if (inferredStatus) {\n return inferredStatus;\n }\n if (status?.code === SpanStatusCode.UNSET) {\n return { code: SPAN_STATUS_OK };\n } else {\n return { code: SPAN_STATUS_ERROR, message: \"unknown_error\" };\n }\n}\nfunction inferStatusFromAttributes(attributes) {\n const httpCodeAttribute = attributes[HTTP_RESPONSE_STATUS_CODE] || attributes[HTTP_STATUS_CODE];\n const grpcCodeAttribute = attributes[RPC_GRPC_STATUS_CODE];\n const numberHttpCode = typeof httpCodeAttribute === \"number\" ? httpCodeAttribute : typeof httpCodeAttribute === \"string\" ? parseInt(httpCodeAttribute) : void 0;\n if (typeof numberHttpCode === \"number\") {\n return getSpanStatusFromHttpCode(numberHttpCode);\n }\n if (typeof grpcCodeAttribute === \"string\") {\n return { code: SPAN_STATUS_ERROR, message: canonicalGrpcErrorCodesMap[grpcCodeAttribute] || \"unknown_error\" };\n }\n return void 0;\n}\n\nconst MAX_SPAN_COUNT = 1e3;\nconst DEFAULT_TIMEOUT = 300;\nconst SENT_SPANS_MAX_SIZE = 1e4;\nclass SentrySpanExporter {\n constructor(options) {\n this._finishedSpanBucketSize = options?.timeout || DEFAULT_TIMEOUT;\n this._finishedSpanBuckets = new Array(this._finishedSpanBucketSize).fill(void 0);\n this._lastCleanupTimestampInS = Math.floor(_INTERNAL_safeDateNow() / 1e3);\n this._spansToBucketEntry = /* @__PURE__ */ new WeakMap();\n this._sentSpans = new LRUMap(SENT_SPANS_MAX_SIZE);\n this._debouncedFlush = debounce(this.flush.bind(this), 1, { maxWait: 100 });\n }\n /**\n * Export a single span.\n * This is called by the span processor whenever a span is ended.\n */\n export(span) {\n const currentTimestampInS = Math.floor(_INTERNAL_safeDateNow() / 1e3);\n if (this._lastCleanupTimestampInS !== currentTimestampInS) {\n let droppedSpanCount = 0;\n this._finishedSpanBuckets.forEach((bucket, i) => {\n if (bucket && bucket.timestampInS <= currentTimestampInS - this._finishedSpanBucketSize) {\n droppedSpanCount += bucket.spans.size;\n this._finishedSpanBuckets[i] = void 0;\n }\n });\n if (droppedSpanCount > 0) {\n DEBUG_BUILD && debug.log(\n `SpanExporter dropped ${droppedSpanCount} spans because they were pending for more than ${this._finishedSpanBucketSize} seconds.`\n );\n }\n this._lastCleanupTimestampInS = currentTimestampInS;\n }\n const currentBucketIndex = currentTimestampInS % this._finishedSpanBucketSize;\n const currentBucket = this._finishedSpanBuckets[currentBucketIndex] || {\n timestampInS: currentTimestampInS,\n spans: /* @__PURE__ */ new Set()\n };\n this._finishedSpanBuckets[currentBucketIndex] = currentBucket;\n currentBucket.spans.add(span);\n this._spansToBucketEntry.set(span, currentBucket);\n const localParentId = getLocalParentId(span);\n if (!localParentId || this._sentSpans.get(localParentId)) {\n this._debouncedFlush();\n }\n }\n /**\n * Try to flush any pending spans immediately.\n * This is called internally by the exporter (via _debouncedFlush),\n * but can also be triggered externally if we force-flush.\n */\n flush() {\n const finishedSpans = this._finishedSpanBuckets.flatMap((bucket) => bucket ? Array.from(bucket.spans) : []);\n const sentSpans = this._maybeSend(finishedSpans);\n const sentSpanCount = sentSpans.size;\n const remainingOpenSpanCount = finishedSpans.length - sentSpanCount;\n DEBUG_BUILD && debug.log(\n `SpanExporter exported ${sentSpanCount} spans, ${remainingOpenSpanCount} spans are waiting for their parent spans to finish`\n );\n for (const span of sentSpans) {\n this._sentSpans.set(span.spanContext().spanId, 1);\n const bucketEntry = this._spansToBucketEntry.get(span);\n if (bucketEntry) {\n bucketEntry.spans.delete(span);\n }\n }\n this._debouncedFlush.cancel();\n }\n /**\n * Clear the exporter.\n * This is called when the span processor is shut down.\n */\n clear() {\n this._finishedSpanBuckets = this._finishedSpanBuckets.fill(void 0);\n this._sentSpans.clear();\n this._debouncedFlush.cancel();\n }\n /**\n * Send the given spans, but only if they are part of a finished transaction.\n *\n * Returns the sent spans.\n * Spans remain unsent when their parent span is not yet finished.\n * This will happen regularly, as child spans are generally finished before their parents.\n * But it _could_ also happen because, for whatever reason, a parent span was lost.\n * In this case, we'll eventually need to clean this up.\n */\n _maybeSend(spans) {\n const grouped = groupSpansWithParents(spans);\n const sentSpans = /* @__PURE__ */ new Set();\n const rootNodes = this._getCompletedRootNodes(grouped);\n for (const root of rootNodes) {\n const span = root.span;\n sentSpans.add(span);\n const transactionEvent = createTransactionForOtelSpan(span);\n if (root.parentNode && this._sentSpans.get(root.parentNode.id)) {\n const traceData = transactionEvent.contexts?.trace?.data;\n if (traceData) {\n traceData[\"sentry.parent_span_already_sent\"] = true;\n }\n }\n const spans2 = transactionEvent.spans || [];\n let hasGenAiSpans = false;\n for (const child of root.children) {\n if (createAndFinishSpanForOtelSpan(child, spans2, sentSpans)) {\n hasGenAiSpans = true;\n }\n }\n transactionEvent.spans = spans2.length > MAX_SPAN_COUNT ? spans2.sort((a, b) => a.start_timestamp - b.start_timestamp).slice(0, MAX_SPAN_COUNT) : spans2;\n if (hasGenAiSpans) {\n transactionEvent.sdkProcessingMetadata = {\n ...transactionEvent.sdkProcessingMetadata,\n hasGenAiSpans: true\n };\n }\n const measurements = timedEventsToMeasurements(span.events);\n if (measurements) {\n transactionEvent.measurements = measurements;\n }\n captureEvent(transactionEvent);\n }\n return sentSpans;\n }\n /** Check if a node is a completed root node or a node whose parent has already been sent */\n _nodeIsCompletedRootNodeOrHasSentParent(node) {\n return !!node.span && (!node.parentNode || !!this._sentSpans.get(node.parentNode.id));\n }\n /** Get all completed root nodes from a list of nodes */\n _getCompletedRootNodes(nodes) {\n return nodes.filter((node) => this._nodeIsCompletedRootNodeOrHasSentParent(node));\n }\n}\nfunction parseSpan(span) {\n const attributes = span.attributes;\n const origin = attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN];\n const op = attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP];\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n return { origin, op, source };\n}\nfunction createTransactionForOtelSpan(span) {\n const { op, description, data, origin = \"manual\", source } = getSpanData(span);\n const capturedSpanScopes = getCapturedScopesOnSpan(span);\n const sampleRate = span.attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE];\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: source,\n [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: sampleRate,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: origin,\n ...data,\n ...removeSentryAttributes(span.attributes)\n };\n const { links } = span;\n const { traceId: trace_id, spanId: span_id } = span.spanContext();\n const parent_span_id = getParentSpanId(span);\n const status = mapStatus(span);\n const traceContext = {\n parent_span_id,\n span_id,\n trace_id,\n data: attributes,\n origin,\n op,\n status: getStatusMessage(status),\n // As per protocol, span status is allowed to be undefined\n links: convertSpanLinksForEnvelope(links)\n };\n const statusCode = attributes[HTTP_RESPONSE_STATUS_CODE];\n const responseContext = typeof statusCode === \"number\" ? { response: { status_code: statusCode } } : void 0;\n const transactionEvent = {\n contexts: {\n trace: traceContext,\n otel: {\n resource: span.resource.attributes\n },\n ...responseContext\n },\n spans: [],\n start_timestamp: spanTimeInputToSeconds(span.startTime),\n timestamp: spanTimeInputToSeconds(span.endTime),\n transaction: description,\n type: \"transaction\",\n sdkProcessingMetadata: {\n capturedSpanScope: capturedSpanScopes.scope,\n capturedSpanIsolationScope: capturedSpanScopes.isolationScope,\n sampleRate,\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span)\n },\n ...source && {\n transaction_info: {\n source\n }\n }\n };\n return transactionEvent;\n}\nfunction createAndFinishSpanForOtelSpan(node, spans, sentSpans) {\n const span = node.span;\n if (span) {\n sentSpans.add(span);\n }\n const shouldDrop = !span;\n if (shouldDrop) {\n let hasGenAiSpans2 = false;\n node.children.forEach((child) => {\n if (createAndFinishSpanForOtelSpan(child, spans, sentSpans)) {\n hasGenAiSpans2 = true;\n }\n });\n return hasGenAiSpans2;\n }\n const span_id = span.spanContext().spanId;\n const trace_id = span.spanContext().traceId;\n const parentSpanId = getParentSpanId(span);\n const { attributes, startTime, endTime, links } = span;\n const { op, description, data, origin = \"manual\" } = getSpanData(span);\n const allData = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: origin,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n ...removeSentryAttributes(attributes),\n ...data\n };\n const status = mapStatus(span);\n const spanJSON = {\n span_id,\n trace_id,\n data: allData,\n description,\n parent_span_id: parentSpanId,\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || void 0,\n status: getStatusMessage(status),\n // As per protocol, span status is allowed to be undefined\n op,\n origin,\n measurements: timedEventsToMeasurements(span.events),\n links: convertSpanLinksForEnvelope(links)\n };\n spans.push(spanJSON);\n let hasGenAiSpans = !!op?.startsWith(\"gen_ai.\");\n node.children.forEach((child) => {\n if (createAndFinishSpanForOtelSpan(child, spans, sentSpans)) {\n hasGenAiSpans = true;\n }\n });\n return hasGenAiSpans;\n}\nfunction getSpanData(span) {\n const { op: definedOp, source: definedSource, origin } = parseSpan(span);\n const { op: inferredOp, description, source: inferredSource, data: inferredData } = parseSpanDescription(span);\n const op = definedOp || inferredOp;\n const source = definedSource || inferredSource;\n const data = { ...inferredData, ...getData(span) };\n return {\n op,\n description,\n source,\n origin,\n data\n };\n}\nfunction removeSentryAttributes(data) {\n const cleanedData = { ...data };\n delete cleanedData[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE];\n delete cleanedData[SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE];\n delete cleanedData[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n return cleanedData;\n}\nfunction getData(span) {\n const attributes = span.attributes;\n const data = {};\n if (span.kind !== SpanKind.INTERNAL) {\n data[\"otel.kind\"] = SpanKind[span.kind];\n }\n const maybeHttpStatusCodeAttribute = attributes[HTTP_STATUS_CODE];\n if (maybeHttpStatusCodeAttribute) {\n data[HTTP_RESPONSE_STATUS_CODE] = maybeHttpStatusCodeAttribute;\n }\n const requestData = getRequestSpanData(span);\n if (requestData.url) {\n data.url = requestData.url;\n }\n if (requestData[\"http.query\"]) {\n data[\"http.query\"] = requestData[\"http.query\"].slice(1);\n }\n if (requestData[\"http.fragment\"]) {\n data[\"http.fragment\"] = requestData[\"http.fragment\"].slice(1);\n }\n return data;\n}\n\nclass SentrySpanProcessor {\n constructor(options) {\n this._unsubscribePreprocessSpan = void 0;\n setIsSetup(\"SentrySpanProcessor\");\n this._exporter = new SentrySpanExporter(options);\n this._client = options?.client ?? getClient();\n if (this._client && hasSpanStreamingEnabled(this._client)) {\n this._unsubscribePreprocessSpan = this._client.on(\"preprocessSpan\", backfillStreamedSpanDataFromOtel);\n }\n }\n /**\n * @inheritDoc\n */\n async forceFlush() {\n this._exporter.flush();\n }\n /**\n * @inheritDoc\n */\n async shutdown() {\n this._unsubscribePreprocessSpan?.();\n this._exporter.clear();\n }\n /**\n * @inheritDoc\n */\n onStart(span, parentContext) {\n const parentSpan = trace.getSpan(parentContext);\n let scopes = getScopesFromContext(parentContext);\n if (parentSpan && !parentSpan.spanContext().isRemote) {\n addChildSpanToSpan(parentSpan, span);\n }\n if (parentSpan?.spanContext().isRemote) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE, true);\n }\n if (parentContext === ROOT_CONTEXT) {\n scopes = {\n scope: getDefaultCurrentScope(),\n isolationScope: getDefaultIsolationScope()\n };\n }\n if (scopes) {\n setCapturedScopesOnSpan(span, scopes.scope, scopes.isolationScope);\n }\n logSpanStart(span);\n this._client?.emit(\"spanStart\", span);\n }\n /** @inheritDoc */\n onEnd(span) {\n logSpanEnd(span);\n this._client?.emit(\"spanEnd\", span);\n if (this._client && hasSpanStreamingEnabled(this._client)) {\n this._client.emit(\"afterSpanEnd\", span);\n } else {\n this._exporter.export(span);\n }\n }\n}\nfunction backfillStreamedSpanDataFromOtel(spanJSON, hint) {\n const attributes = spanJSON.attributes;\n if (!attributes) {\n return;\n }\n const kind = hint?.spanKind ?? SPAN_KIND.INTERNAL;\n const { op, description, source, data } = inferSpanData(spanJSON.name, attributes, kind);\n spanJSON.name = description;\n safeSetSpanJSONAttributes(spanJSON, {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: source,\n ...data\n });\n if (kind !== SPAN_KIND.INTERNAL) {\n safeSetSpanJSONAttributes(spanJSON, {\n \"otel.kind\": spanKindToName(kind)\n });\n }\n}\n\nclass SentrySampler {\n constructor(client) {\n this._client = client;\n this._isSpanStreaming = hasSpanStreamingEnabled(client);\n setIsSetup(\"SentrySampler\");\n }\n /** @inheritDoc */\n shouldSample(context, traceId, spanName, spanKind, spanAttributes, _links) {\n const options = this._client.getOptions();\n const { ignoreSpans } = options;\n const parentSpan = getValidSpan(context);\n const parentContext = parentSpan?.spanContext();\n if (!hasSpansEnabled(options)) {\n return wrapSamplingDecision({ decision: void 0, context, spanAttributes });\n }\n const maybeSpanHttpMethod = spanAttributes[HTTP_METHOD] || spanAttributes[HTTP_REQUEST_METHOD];\n if (spanKind === SpanKind.CLIENT && maybeSpanHttpMethod && (!parentSpan || parentContext?.isRemote)) {\n if (!this._isSpanStreaming) {\n this._client.recordDroppedEvent(\"no_parent_span\", \"span\");\n return wrapSamplingDecision({ decision: void 0, context, spanAttributes });\n }\n }\n const parentSampled = parentSpan ? getParentSampled(parentSpan, traceId, spanName) : void 0;\n const isRootSpan = !parentSpan || parentContext?.isRemote;\n if (!isRootSpan) {\n if (this._isSpanStreaming) {\n if (parentSampled) {\n if (ignoreSpans?.length) {\n const { description: inferredChildName, op: childOp } = inferSpanData(spanName, spanAttributes, spanKind);\n if (shouldIgnoreSpan(\n {\n description: inferredChildName,\n op: spanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] ?? childOp,\n attributes: spanAttributes\n },\n ignoreSpans\n )) {\n this._client.recordDroppedEvent(\"ignored\", \"span\");\n return wrapSamplingDecision({\n decision: SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n ignoredChildSpan: true\n });\n }\n }\n }\n if (!parentSampled) {\n const parentSegmentIgnored = parentContext?.traceState?.get(SENTRY_TRACE_STATE_SEGMENT_IGNORED) === \"1\";\n this._client.recordDroppedEvent(parentSegmentIgnored ? \"ignored\" : \"sample_rate\", \"span\");\n }\n }\n return wrapSamplingDecision({\n decision: parentSampled ? SamplingDecision.RECORD_AND_SAMPLED : SamplingDecision.NOT_RECORD,\n context,\n spanAttributes\n });\n }\n const {\n description: inferredSpanName,\n data: inferredAttributes,\n op\n } = inferSpanData(spanName, spanAttributes, spanKind);\n const mergedAttributes = {\n ...inferredAttributes,\n ...spanAttributes\n };\n if (op) {\n mergedAttributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] = op;\n }\n if (this._isSpanStreaming && ignoreSpans?.length && shouldIgnoreSpan(\n {\n description: inferredSpanName,\n op: mergedAttributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] ?? op,\n attributes: mergedAttributes\n },\n ignoreSpans\n )) {\n this._client.recordDroppedEvent(\"ignored\", \"span\");\n return wrapSamplingDecision({\n decision: SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n ignoredSegmentSpan: true\n });\n }\n const mutableSamplingDecision = { decision: true };\n this._client.emit(\n \"beforeSampling\",\n {\n spanAttributes: mergedAttributes,\n spanName: inferredSpanName,\n parentSampled,\n parentContext\n },\n mutableSamplingDecision\n );\n if (!mutableSamplingDecision.decision) {\n return wrapSamplingDecision({ decision: void 0, context, spanAttributes });\n }\n const { isolationScope } = getScopesFromContext(context) ?? {};\n const dscString = parentContext?.traceState ? parentContext.traceState.get(SENTRY_TRACE_STATE_DSC) : void 0;\n const dsc = dscString ? baggageHeaderToDynamicSamplingContext(dscString) : void 0;\n const sampleRand = parseSampleRate(dsc?.sample_rand) ?? _INTERNAL_safeMathRandom();\n const [sampled, sampleRate, localSampleRateWasApplied] = sampleSpan(\n options,\n {\n name: inferredSpanName,\n attributes: mergedAttributes,\n normalizedRequest: isolationScope?.getScopeData().sdkProcessingMetadata.normalizedRequest,\n parentSampled,\n parentSampleRate: parseSampleRate(dsc?.sample_rate)\n },\n sampleRand\n );\n const method = `${maybeSpanHttpMethod}`.toUpperCase();\n if (method === \"OPTIONS\" || method === \"HEAD\") {\n DEBUG_BUILD && debug.log(`[Tracing] Not sampling span because HTTP method is '${method}' for ${spanName}`);\n return wrapSamplingDecision({\n decision: SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n sampleRand,\n downstreamTraceSampleRate: 0\n // we don't want to sample anything in the downstream trace either\n });\n }\n if (!sampled && // We check for `parentSampled === undefined` because we only want to record client reports for spans that are trace roots (ie. when there was incoming trace)\n parentSampled === void 0) {\n DEBUG_BUILD && debug.log(\"[Tracing] Discarding root span because its trace was not chosen to be sampled.\");\n this._client.recordDroppedEvent(\"sample_rate\", this._isSpanStreaming ? \"span\" : \"transaction\");\n }\n return {\n ...wrapSamplingDecision({\n decision: sampled ? SamplingDecision.RECORD_AND_SAMPLED : SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n sampleRand,\n downstreamTraceSampleRate: localSampleRateWasApplied ? sampleRate : void 0\n }),\n attributes: {\n // We set the sample rate on the span when a local sample rate was applied to better understand how traces were sampled in Sentry\n [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: localSampleRateWasApplied ? sampleRate : void 0\n }\n };\n }\n /** Returns the sampler name or short description with the configuration. */\n toString() {\n return \"SentrySampler\";\n }\n}\nfunction getParentSampled(parentSpan, traceId, spanName) {\n const parentContext = parentSpan.spanContext();\n if (isSpanContextValid(parentContext) && parentContext.traceId === traceId) {\n if (parentContext.isRemote) {\n const parentSampled2 = getSamplingDecision(parentSpan.spanContext());\n DEBUG_BUILD && debug.log(`[Tracing] Inheriting remote parent's sampled decision for ${spanName}: ${parentSampled2}`);\n return parentSampled2;\n }\n const parentSampled = getSamplingDecision(parentContext);\n DEBUG_BUILD && debug.log(`[Tracing] Inheriting parent's sampled decision for ${spanName}: ${parentSampled}`);\n return parentSampled;\n }\n return void 0;\n}\nfunction wrapSamplingDecision({\n decision,\n context,\n spanAttributes,\n sampleRand,\n downstreamTraceSampleRate,\n ignoredChildSpan,\n ignoredSegmentSpan\n}) {\n let traceState = getBaseTraceState(context, spanAttributes);\n if (downstreamTraceSampleRate !== void 0) {\n traceState = traceState.set(SENTRY_TRACE_STATE_SAMPLE_RATE, `${downstreamTraceSampleRate}`);\n }\n if (sampleRand !== void 0) {\n traceState = traceState.set(SENTRY_TRACE_STATE_SAMPLE_RAND, `${sampleRand}`);\n }\n if (ignoredChildSpan) {\n traceState = traceState.set(SENTRY_TRACE_STATE_CHILD_IGNORED, \"1\");\n }\n if (ignoredSegmentSpan) {\n traceState = traceState.set(SENTRY_TRACE_STATE_SEGMENT_IGNORED, \"1\");\n }\n if (decision == void 0) {\n return { decision: SamplingDecision.NOT_RECORD, traceState };\n }\n if (decision === SamplingDecision.NOT_RECORD) {\n return { decision, traceState: traceState.set(SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING, \"1\") };\n }\n return { decision, traceState };\n}\nfunction getBaseTraceState(context, spanAttributes) {\n const parentSpan = trace.getSpan(context);\n const parentContext = parentSpan?.spanContext();\n let traceState = parentContext?.traceState || new TraceState();\n const url = spanAttributes[HTTP_URL] || spanAttributes[URL_FULL];\n if (url && typeof url === \"string\") {\n traceState = traceState.set(SENTRY_TRACE_STATE_URL, url);\n }\n return traceState;\n}\nfunction getValidSpan(context) {\n const span = trace.getSpan(context);\n return span && isSpanContextValid(span.spanContext()) ? span : void 0;\n}\n\nconst ATTR_TELEMETRY_SDK_LANGUAGE = \"telemetry.sdk.language\";\nconst ATTR_TELEMETRY_SDK_NAME = \"telemetry.sdk.name\";\nconst ATTR_TELEMETRY_SDK_VERSION = \"telemetry.sdk.version\";\nconst SEMRESATTRS_SERVICE_NAMESPACE = \"service.namespace\";\nclass SentryResource {\n constructor(attributes) {\n this._attributes = attributes;\n }\n get attributes() {\n return this._attributes;\n }\n merge(other) {\n if (!other) {\n return this;\n }\n return new SentryResource({ ...this._attributes, ...other.attributes });\n }\n getRawAttributes() {\n return Object.entries(this._attributes);\n }\n}\nfunction parseOtelResourceAttributes(raw) {\n if (!raw) {\n return {};\n }\n const result = {};\n for (const pair of raw.split(\",\")) {\n const eq = pair.indexOf(\"=\");\n if (eq === -1) {\n continue;\n }\n const key = pair.substring(0, eq).trim();\n const value = pair.substring(eq + 1).trim();\n if (key) {\n try {\n result[key] = decodeURIComponent(value);\n } catch {\n result[key] = value;\n }\n }\n }\n return result;\n}\nfunction getSentryResource(serviceNameFallback) {\n const env = typeof process !== \"undefined\" ? process.env : {};\n const otelServiceName = env.OTEL_SERVICE_NAME;\n const otelResourceAttrs = parseOtelResourceAttributes(env.OTEL_RESOURCE_ATTRIBUTES);\n return new SentryResource({\n // Lowest priority: Sentry defaults\n // eslint-disable-next-line typescript/no-deprecated\n [SEMRESATTRS_SERVICE_NAMESPACE]: \"sentry\",\n [SERVICE_NAME]: serviceNameFallback,\n // OTEL_RESOURCE_ATTRIBUTES overrides defaults (including service.name and service.namespace)\n ...otelResourceAttrs,\n // OTEL_SERVICE_NAME explicitly overrides service.name\n ...otelServiceName ? { [SERVICE_NAME]: otelServiceName } : {},\n // Highest priority: Sentry SDK telemetry attrs (cannot be overridden by env vars)\n [SERVICE_VERSION]: SDK_VERSION,\n [ATTR_TELEMETRY_SDK_LANGUAGE]: SDK_INFO[ATTR_TELEMETRY_SDK_LANGUAGE],\n [ATTR_TELEMETRY_SDK_NAME]: SDK_INFO[ATTR_TELEMETRY_SDK_NAME],\n [ATTR_TELEMETRY_SDK_VERSION]: SDK_INFO[ATTR_TELEMETRY_SDK_VERSION]\n });\n}\n\nfunction getTraceData({\n span,\n scope,\n client,\n propagateTraceparent\n} = {}) {\n let ctx = (scope && getContextFromScope(scope)) ?? api.context.active();\n if (span) {\n const { scope: scope2 } = getCapturedScopesOnSpan(span);\n ctx = scope2 && getContextFromScope(scope2) || api.trace.setSpan(api.context.active(), span);\n }\n const { traceId, spanId, sampled, dynamicSamplingContext } = getInjectionData(ctx, { scope, client });\n const traceData = {\n \"sentry-trace\": generateSentryTraceHeader(traceId, spanId, sampled),\n baggage: dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext)\n };\n if (propagateTraceparent) {\n traceData.traceparent = generateTraceparentHeader(traceId, spanId, sampled);\n }\n return traceData;\n}\n\nfunction setOpenTelemetryContextAsyncContextStrategy(options) {\n function getScopes() {\n const ctx = api.context.active();\n const scopes = getScopesFromContext(ctx);\n if (scopes) {\n return scopes;\n }\n return {\n scope: getDefaultCurrentScope(),\n isolationScope: getDefaultIsolationScope()\n };\n }\n function withScope(callback) {\n const ctx = api.context.active();\n return api.context.with(ctx, () => {\n return callback(getCurrentScope());\n });\n }\n function withSetScope(scope, callback) {\n const ctx = getContextFromScope(scope) || api.context.active();\n return api.context.with(ctx.setValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY, scope), () => {\n return callback(scope);\n });\n }\n function withIsolationScope(callback) {\n const ctx = api.context.active();\n return api.context.with(ctx.setValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY, true), () => {\n return callback(getIsolationScope());\n });\n }\n function withSetIsolationScope(isolationScope, callback) {\n const ctx = api.context.active();\n return api.context.with(ctx.setValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY, isolationScope), () => {\n return callback(getIsolationScope());\n });\n }\n function getCurrentScope() {\n return getScopes().scope;\n }\n function getIsolationScope() {\n return getScopes().isolationScope;\n }\n setAsyncContextStrategy({\n withScope,\n withSetScope,\n withSetIsolationScope,\n withIsolationScope,\n getCurrentScope,\n getIsolationScope,\n startSpan,\n startSpanManual,\n startInactiveSpan,\n getActiveSpan,\n suppressTracing,\n isTracingSuppressed,\n getTraceData,\n continueTrace,\n startNewTrace,\n // The types here don't fully align, because our own `Span` type is narrower\n // than the OTEL one - but this is OK for here, as we now we'll only have OTEL spans passed around\n withActiveSpan,\n getTracingChannelBinding: options?.getTracingChannelBinding\n });\n}\n\nexport { startSpanManual as A, suppressTracing as B, withActiveSpan as C, wrapClientClass as D, wrapContextManagerClass as E, wrapSamplingDecision as F, SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION as S, SENTRY_SCOPES_CONTEXT_KEY as a, SentryPropagator as b, SentrySampler as c, SentrySpanProcessor as d, buildContextWithSentryScopes as e, continueTrace as f, enhanceDscWithOpenTelemetryRootSpanName as g, getActiveSpan as h, getRequestSpanData as i, getScopesFromContext as j, getSentryResource as k, getSpanKind as l, getTraceContextForScope as m, isSentryRequestSpan as n, openTelemetrySetupCheck as o, setOpenTelemetryContextAsyncContextStrategy as p, setupEventContextTrace as q, spanHasAttributes as r, setIsSetup as s, spanHasEvents as t, spanHasKind as u, spanHasName as v, spanHasParentId as w, spanHasStatus as x, startInactiveSpan as y, startSpan as z };\n//# sourceMappingURL=asyncContextStrategy-DfM95hx5.js.map\n", + "import { s as setIsSetup, e as buildContextWithSentryScopes, a as SENTRY_SCOPES_CONTEXT_KEY, p as setOpenTelemetryContextAsyncContextStrategy } from './asyncContextStrategy-DfM95hx5.js';\nexport { S as SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, b as SentryPropagator, c as SentrySampler, d as SentrySpanProcessor, f as continueTrace, g as enhanceDscWithOpenTelemetryRootSpanName, h as getActiveSpan, i as getRequestSpanData, j as getScopesFromContext, k as getSentryResource, l as getSpanKind, m as getTraceContextForScope, n as isSentryRequestSpan, o as openTelemetrySetupCheck, q as setupEventContextTrace, r as spanHasAttributes, t as spanHasEvents, u as spanHasKind, v as spanHasName, w as spanHasParentId, x as spanHasStatus, y as startInactiveSpan, z as startSpan, A as startSpanManual, B as suppressTracing, C as withActiveSpan, D as wrapClientClass, E as wrapContextManagerClass, F as wrapSamplingDecision } from './asyncContextStrategy-DfM95hx5.js';\nimport { getAsyncContextStrategy, getMainCarrier } from '@sentry/core';\nexport { getClient, getDynamicSamplingContextFromSpan, shouldPropagateTraceForUrl, withStreamedSpan } from '@sentry/core';\nimport * as api from '@opentelemetry/api';\nimport { ROOT_CONTEXT } from '@opentelemetry/api';\nimport { AsyncLocalStorage } from 'node:async_hooks';\nimport { EventEmitter } from 'node:events';\n\nconst ADD_LISTENER_METHODS = [\"addListener\", \"on\", \"once\", \"prependListener\", \"prependOnceListener\"];\nclass SentryAsyncLocalStorageContextManager {\n constructor() {\n this._kOtListeners = /* @__PURE__ */ Symbol(\"OtListeners\");\n this._wrapped = false;\n setIsSetup(\"SentryContextManager\");\n this._asyncLocalStorage = getAsyncContextStrategy(getMainCarrier()).getTracingChannelBinding?.()?.asyncLocalStorage ?? new AsyncLocalStorage();\n }\n active() {\n return this._asyncLocalStorage.getStore() ?? ROOT_CONTEXT;\n }\n with(context, fn, thisArg, ...args) {\n const ctx2 = buildContextWithSentryScopes(context, this.active());\n const cb = thisArg == null ? fn : fn.bind(thisArg);\n return this._asyncLocalStorage.run(ctx2, cb, ...args);\n }\n enable() {\n return this;\n }\n disable() {\n this._asyncLocalStorage.disable();\n return this;\n }\n bind(context, target) {\n if (target instanceof EventEmitter) {\n return this._bindEventEmitter(context, target);\n }\n if (typeof target === \"function\") {\n return this._bindFunction(context, target);\n }\n return target;\n }\n /**\n * Gets underlying AsyncLocalStorage and symbol to allow lookup of scope.\n * This is Sentry-specific.\n */\n getAsyncLocalStorageLookup() {\n return {\n asyncLocalStorage: this._asyncLocalStorage,\n contextSymbol: SENTRY_SCOPES_CONTEXT_KEY\n };\n }\n _bindFunction(context, target) {\n const managerWith = this.with.bind(this);\n const contextWrapper = function(...args) {\n return managerWith(context, () => target.apply(this, args));\n };\n Object.defineProperty(contextWrapper, \"length\", {\n enumerable: false,\n configurable: true,\n writable: false,\n value: target.length\n });\n return contextWrapper;\n }\n _bindEventEmitter(context, ee) {\n if (this._getPatchMap(ee) !== void 0) {\n return ee;\n }\n this._createPatchMap(ee);\n for (const methodName of ADD_LISTENER_METHODS) {\n if (ee[methodName] === void 0) continue;\n ee[methodName] = this._patchAddListener(\n ee,\n ee[methodName],\n context\n );\n }\n if (typeof ee.removeListener === \"function\") {\n ee.removeListener = this._patchRemoveListener(ee, ee.removeListener);\n }\n if (typeof ee.off === \"function\") {\n ee.off = this._patchRemoveListener(ee, ee.off);\n }\n if (typeof ee.removeAllListeners === \"function\") {\n ee.removeAllListeners = this._patchRemoveAllListeners(\n ee,\n // oxlint-disable-next-line @typescript-eslint/unbound-method\n ee.removeAllListeners\n );\n }\n return ee;\n }\n _patchRemoveListener(ee, original) {\n const contextManager = this;\n return function(event, listener) {\n const events = contextManager._getPatchMap(ee)?.[event];\n if (events === void 0) {\n return original.call(this, event, listener);\n }\n const patchedListener = events.get(listener);\n return original.call(this, event, patchedListener || listener);\n };\n }\n _patchRemoveAllListeners(ee, original) {\n const contextManager = this;\n return function(event) {\n const map = contextManager._getPatchMap(ee);\n if (map !== void 0) {\n if (arguments.length === 0) {\n contextManager._createPatchMap(ee);\n } else if (event !== void 0 && map[event] !== void 0) {\n delete map[event];\n }\n }\n return original.apply(this, arguments);\n };\n }\n _patchAddListener(ee, original, context) {\n const contextManager = this;\n return function(event, listener) {\n if (contextManager._wrapped) {\n return original.call(this, event, listener);\n }\n let map = contextManager._getPatchMap(ee);\n if (map === void 0) {\n map = contextManager._createPatchMap(ee);\n }\n let listeners = map[event];\n if (listeners === void 0) {\n listeners = /* @__PURE__ */ new WeakMap();\n map[event] = listeners;\n }\n const patchedListener = contextManager.bind(context, listener);\n listeners.set(listener, patchedListener);\n contextManager._wrapped = true;\n try {\n return original.call(this, event, patchedListener);\n } finally {\n contextManager._wrapped = false;\n }\n };\n }\n _createPatchMap(ee) {\n const map = /* @__PURE__ */ Object.create(null);\n ee[this._kOtListeners] = map;\n return map;\n }\n _getPatchMap(ee) {\n return ee[this._kOtListeners];\n }\n}\n\nfunction setNodeOpenTelemetryContextAsyncContextStrategy(options) {\n setOpenTelemetryContextAsyncContextStrategy({\n getTracingChannelBinding: !options?.skipOpenTelemetrySetup ? getDefaultAsyncLocalStorageFactory() : getCustomAsyncLocalStorageFactory()\n });\n}\nfunction getDefaultAsyncLocalStorageFactory() {\n const defaultAsyncLocalStorage = new AsyncLocalStorage();\n return () => {\n return {\n asyncLocalStorage: defaultAsyncLocalStorage,\n getStoreWithActiveSpan: (span) => api.trace.setSpan(api.context.active(), span)\n };\n };\n}\nfunction getCustomAsyncLocalStorageFactory() {\n return () => {\n try {\n const contextManager = api.context._getContextManager();\n const asyncLocalStorage = contextManager?.getAsyncLocalStorageLookup().asyncLocalStorage;\n return asyncLocalStorage ? {\n asyncLocalStorage,\n getStoreWithActiveSpan: (span) => api.trace.setSpan(api.context.active(), span)\n } : void 0;\n } catch {\n return void 0;\n }\n };\n}\n\nexport { SentryAsyncLocalStorageContextManager, setNodeOpenTelemetryContextAsyncContextStrategy as setOpenTelemetryContextAsyncContextStrategy };\n//# sourceMappingURL=index.js.map\n", + "import { SentryAsyncLocalStorageContextManager } from '@sentry/opentelemetry';\n\nconst SentryContextManager = SentryAsyncLocalStorageContextManager;\n\nexport { SentryContextManager };\n//# sourceMappingURL=contextManager.js.map\n", + "import { diag, DiagLogLevel } from '@opentelemetry/api';\nimport { debug } from '@sentry/core';\n\nfunction setupOpenTelemetryLogger() {\n diag.disable();\n diag.setLogger(\n {\n error: debug.error,\n warn: debug.warn,\n info: debug.log,\n debug: debug.log,\n verbose: debug.log\n },\n DiagLogLevel.DEBUG\n );\n}\n\nexport { setupOpenTelemetryLogger };\n//# sourceMappingURL=logger.js.map\n", + "import { registerInstrumentations } from '@opentelemetry/instrumentation';\n\nconst INSTRUMENTED = {};\nfunction generateInstrumentOnce(name, creatorOrClass, optionsCallback) {\n if (optionsCallback) {\n return _generateInstrumentOnceWithOptions(\n name,\n creatorOrClass,\n optionsCallback\n );\n }\n return _generateInstrumentOnce(name, creatorOrClass);\n}\nfunction _generateInstrumentOnce(name, creator) {\n return Object.assign(\n (options) => {\n const instrumented = INSTRUMENTED[name];\n if (instrumented) {\n if (options) {\n instrumented.setConfig(options);\n }\n return instrumented;\n }\n const instrumentation = creator(options);\n INSTRUMENTED[name] = instrumentation;\n registerInstrumentations({\n instrumentations: [instrumentation]\n });\n return instrumentation;\n },\n { id: name }\n );\n}\nfunction _generateInstrumentOnceWithOptions(name, instrumentationClass, optionsCallback) {\n return Object.assign(\n (_options) => {\n const options = optionsCallback(_options);\n const instrumented = INSTRUMENTED[name];\n if (instrumented) {\n instrumented.setConfig(options);\n return instrumented;\n }\n const instrumentation = new instrumentationClass(options);\n INSTRUMENTED[name] = instrumentation;\n registerInstrumentations({\n instrumentations: [instrumentation]\n });\n return instrumentation;\n },\n { id: name }\n );\n}\nfunction instrumentWhenWrapped(instrumentation) {\n let isWrapped = false;\n let callbacks = [];\n if (!hasWrap(instrumentation)) {\n isWrapped = true;\n } else {\n const originalWrap = instrumentation[\"_wrap\"];\n instrumentation[\"_wrap\"] = (...args) => {\n isWrapped = true;\n callbacks.forEach((callback) => callback());\n callbacks = [];\n return originalWrap(...args);\n };\n }\n const registerCallback = (callback) => {\n if (isWrapped) {\n callback();\n } else {\n callbacks.push(callback);\n }\n };\n return registerCallback;\n}\nfunction hasWrap(instrumentation) {\n return typeof instrumentation[\"_wrap\"] === \"function\";\n}\n\nexport { INSTRUMENTED, generateInstrumentOnce, instrumentWhenWrapped };\n//# sourceMappingURL=instrument.js.map\n", + "import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport { defineIntegration, addBreadcrumb, captureException } from '@sentry/core';\n\nconst INTEGRATION_NAME = \"ChildProcess\";\nconst childProcessIntegration = defineIntegration((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setup() {\n diagnosticsChannel.channel(\"child_process\").subscribe((event) => {\n if (event && typeof event === \"object\" && \"process\" in event) {\n captureChildProcessEvents(event.process, options);\n }\n });\n diagnosticsChannel.channel(\"worker_threads\").subscribe((event) => {\n if (event && typeof event === \"object\" && \"worker\" in event) {\n captureWorkerThreadEvents(event.worker, options);\n }\n });\n }\n };\n});\nfunction captureChildProcessEvents(child, options) {\n let hasExited = false;\n let data;\n child.on(\"spawn\", () => {\n if (child.spawnfile === \"/usr/bin/sw_vers\") {\n hasExited = true;\n return;\n }\n data = { spawnfile: child.spawnfile };\n if (options.includeChildProcessArgs) {\n data.spawnargs = child.spawnargs;\n }\n }).on(\"exit\", (code) => {\n if (!hasExited) {\n hasExited = true;\n if (code !== null && code !== 0) {\n addBreadcrumb({\n category: \"child_process\",\n message: `Child process exited with code '${code}'`,\n level: code === 0 ? \"info\" : \"warning\",\n data\n });\n }\n }\n }).on(\"error\", (error) => {\n if (!hasExited) {\n hasExited = true;\n addBreadcrumb({\n category: \"child_process\",\n message: `Child process errored with '${error.message}'`,\n level: \"error\",\n data\n });\n }\n });\n}\nfunction captureWorkerThreadEvents(worker, options) {\n let threadId;\n worker.on(\"online\", () => {\n threadId = worker.threadId;\n }).on(\"error\", (error) => {\n if (options.captureWorkerErrors !== false) {\n captureException(error, {\n mechanism: { type: \"auto.child_process.worker_thread\", handled: false, data: { threadId: String(threadId) } }\n });\n } else {\n addBreadcrumb({\n category: \"worker_thread\",\n message: `Worker thread errored with '${error.message}'`,\n level: \"error\",\n data: { threadId }\n });\n }\n });\n}\n\nexport { childProcessIntegration };\n//# sourceMappingURL=childProcess.js.map\n", + "import { execFile } from 'node:child_process';\nimport { readFile, readdir } from 'node:fs';\nimport * as os from 'node:os';\nimport { join } from 'node:path';\nimport { promisify } from 'node:util';\nimport { defineIntegration, safeSetSpanJSONAttributes } from '@sentry/core';\n\nconst readFileAsync = promisify(readFile);\nconst readDirAsync = promisify(readdir);\nconst INTEGRATION_NAME = \"Context\";\nconst _nodeContextIntegration = ((options = {}) => {\n const _options = {\n app: true,\n os: true,\n device: true,\n culture: true,\n cloudResource: true,\n ...options\n };\n const appContext = _options.app ? getAppContext() : void 0;\n const deviceContext = _options.device ? getDeviceContext(_options.device) : void 0;\n const cultureContext = _options.culture ? getCultureContext() : void 0;\n const cloudResourceContext = _options.cloudResource ? getCloudResourceContext() : void 0;\n const osContextPromise = _options.os ? getOsContext() : void 0;\n const cachedSpanAttributes = {\n \"process.runtime.engine.name\": \"v8\",\n \"process.runtime.engine.version\": process.versions.v8,\n ...contextsToSpanAttributes({\n app: appContext,\n device: deviceContext,\n culture: cultureContext,\n cloud_resource: cloudResourceContext\n })\n };\n if (osContextPromise) {\n osContextPromise.then((osCtx) => Object.assign(cachedSpanAttributes, contextsToSpanAttributes({ os: osCtx }))).catch(() => {\n });\n }\n const contextsPromise = (async () => {\n const contexts = {};\n if (osContextPromise) {\n contexts.os = await osContextPromise;\n }\n if (appContext) {\n contexts.app = appContext;\n }\n if (deviceContext) {\n contexts.device = deviceContext;\n }\n if (cultureContext) {\n contexts.culture = cultureContext;\n }\n if (cloudResourceContext) {\n contexts.cloud_resource = cloudResourceContext;\n }\n return contexts;\n })();\n async function addContext(event) {\n const updatedContext = _updateContext(await contextsPromise);\n event.contexts = {\n ...event.contexts,\n app: { ...updatedContext.app, ...event.contexts?.app },\n os: { ...updatedContext.os, ...event.contexts?.os },\n device: { ...updatedContext.device, ...event.contexts?.device },\n culture: { ...updatedContext.culture, ...event.contexts?.culture },\n cloud_resource: { ...updatedContext.cloud_resource, ...event.contexts?.cloud_resource }\n };\n return event;\n }\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n return addContext(event);\n },\n processSegmentSpan(span) {\n safeSetSpanJSONAttributes(span, cachedSpanAttributes);\n safeSetSpanJSONAttributes(span, getDynamicSpanAttributes(appContext, deviceContext));\n }\n };\n});\nconst nodeContextIntegration = defineIntegration(_nodeContextIntegration);\nfunction _updateContext(contexts) {\n if (contexts.app?.app_memory) {\n contexts.app.app_memory = process.memoryUsage().rss;\n }\n if (contexts.app?.free_memory && typeof process.availableMemory === \"function\") {\n const freeMemory = process.availableMemory?.();\n if (freeMemory != null) {\n contexts.app.free_memory = freeMemory;\n }\n }\n if (contexts.device?.free_memory) {\n contexts.device.free_memory = os.freemem();\n }\n return contexts;\n}\nfunction contextsToSpanAttributes(contexts) {\n const attrs = {};\n const { app, device, os: osCtx, culture, cloud_resource } = contexts;\n if (app) {\n if (app.app_start_time) {\n attrs[\"app.start_time\"] = app.app_start_time;\n }\n }\n if (device) {\n if (device.arch) {\n attrs[\"device.archs\"] = [device.arch];\n }\n if (device.boot_time) {\n attrs[\"device.boot_time\"] = device.boot_time;\n }\n if (device.memory_size != null) {\n attrs[\"device.memory_size\"] = device.memory_size;\n }\n if (device.processor_count != null) {\n attrs[\"device.processor_count\"] = device.processor_count;\n }\n if (device.cpu_description) {\n attrs[\"device.cpu_description\"] = device.cpu_description;\n }\n if (device.processor_frequency != null) {\n attrs[\"device.processor_frequency\"] = device.processor_frequency;\n }\n }\n if (osCtx) {\n if (osCtx.name) {\n attrs[\"os.name\"] = osCtx.name;\n }\n if (osCtx.version) {\n attrs[\"os.version\"] = osCtx.version;\n }\n if (osCtx.kernel_version) {\n attrs[\"os.kernel_version\"] = osCtx.kernel_version;\n }\n if (osCtx.build) {\n attrs[\"os.build\"] = osCtx.build;\n }\n }\n if (culture) {\n if (culture.locale) {\n attrs[\"culture.locale\"] = culture.locale;\n }\n if (culture.timezone) {\n attrs[\"culture.timezone\"] = culture.timezone;\n }\n }\n if (cloud_resource) {\n for (const [key, value] of Object.entries(cloud_resource)) {\n if (value != null) {\n attrs[key] = value;\n }\n }\n }\n return attrs;\n}\nfunction getDynamicSpanAttributes(appContext, deviceContext) {\n const attrs = {};\n if (appContext) {\n attrs[\"app.memory\"] = process.memoryUsage().rss;\n if (typeof process.availableMemory === \"function\") {\n const freeMemory = process.availableMemory?.();\n if (freeMemory != null) {\n attrs[\"app.free_memory\"] = freeMemory;\n }\n }\n }\n if (deviceContext?.free_memory != null) {\n attrs[\"device.free_memory\"] = os.freemem();\n }\n return attrs;\n}\nasync function getOsContext() {\n const platformId = os.platform();\n switch (platformId) {\n case \"darwin\":\n return getDarwinInfo();\n case \"linux\":\n return getLinuxInfo();\n default:\n return {\n name: PLATFORM_NAMES[platformId] || platformId,\n version: os.release()\n };\n }\n}\nfunction getCultureContext() {\n try {\n if (typeof process.versions.icu !== \"string\") {\n return;\n }\n const january = /* @__PURE__ */ new Date(9e8);\n const spanish = new Intl.DateTimeFormat(\"es\", { month: \"long\" });\n if (spanish.format(january) === \"enero\") {\n const options = Intl.DateTimeFormat().resolvedOptions();\n return {\n locale: options.locale,\n timezone: options.timeZone\n };\n }\n } catch {\n }\n return;\n}\nfunction getAppContext() {\n const app_memory = process.memoryUsage().rss;\n const app_start_time = new Date(Date.now() - process.uptime() * 1e3).toISOString();\n const appContext = { app_start_time, app_memory };\n if (typeof process.availableMemory === \"function\") {\n const freeMemory = process.availableMemory?.();\n if (freeMemory != null) {\n appContext.free_memory = freeMemory;\n }\n }\n return appContext;\n}\nfunction getDeviceContext(deviceOpt) {\n const device = {};\n let uptime;\n try {\n uptime = os.uptime();\n } catch {\n }\n if (typeof uptime === \"number\") {\n device.boot_time = new Date(Date.now() - uptime * 1e3).toISOString();\n }\n device.arch = os.arch();\n if (deviceOpt === true || deviceOpt.memory) {\n device.memory_size = os.totalmem();\n device.free_memory = os.freemem();\n }\n if (deviceOpt === true || deviceOpt.cpu) {\n const cpuInfo = os.cpus();\n const firstCpu = cpuInfo?.[0];\n if (firstCpu) {\n device.processor_count = cpuInfo.length;\n device.cpu_description = firstCpu.model;\n device.processor_frequency = firstCpu.speed;\n }\n }\n return device;\n}\nconst PLATFORM_NAMES = {\n aix: \"IBM AIX\",\n freebsd: \"FreeBSD\",\n openbsd: \"OpenBSD\",\n sunos: \"SunOS\",\n win32: \"Windows\",\n ohos: \"OpenHarmony\",\n android: \"Android\"\n};\nconst LINUX_DISTROS = [\n { name: \"fedora-release\", distros: [\"Fedora\"] },\n { name: \"redhat-release\", distros: [\"Red Hat Linux\", \"Centos\"] },\n { name: \"redhat_version\", distros: [\"Red Hat Linux\"] },\n { name: \"SuSE-release\", distros: [\"SUSE Linux\"] },\n { name: \"lsb-release\", distros: [\"Ubuntu Linux\", \"Arch Linux\"] },\n { name: \"debian_version\", distros: [\"Debian\"] },\n { name: \"debian_release\", distros: [\"Debian\"] },\n { name: \"arch-release\", distros: [\"Arch Linux\"] },\n { name: \"gentoo-release\", distros: [\"Gentoo Linux\"] },\n { name: \"novell-release\", distros: [\"SUSE Linux\"] },\n { name: \"alpine-release\", distros: [\"Alpine Linux\"] }\n];\nconst LINUX_VERSIONS = {\n alpine: (content) => content,\n arch: (content) => matchFirst(/distrib_release=(.*)/, content),\n centos: (content) => matchFirst(/release ([^ ]+)/, content),\n debian: (content) => content,\n fedora: (content) => matchFirst(/release (..)/, content),\n mint: (content) => matchFirst(/distrib_release=(.*)/, content),\n red: (content) => matchFirst(/release ([^ ]+)/, content),\n suse: (content) => matchFirst(/VERSION = (.*)\\n/, content),\n ubuntu: (content) => matchFirst(/distrib_release=(.*)/, content)\n};\nfunction matchFirst(regex, text) {\n const match = regex.exec(text);\n return match ? match[1] : void 0;\n}\nasync function getDarwinInfo() {\n const darwinInfo = {\n kernel_version: os.release(),\n name: \"Mac OS X\",\n version: `10.${Number(os.release().split(\".\")[0]) - 4}`\n };\n try {\n const output = await new Promise((resolve, reject) => {\n execFile(\"/usr/bin/sw_vers\", (error, stdout) => {\n if (error) {\n reject(error);\n return;\n }\n resolve(stdout);\n });\n });\n darwinInfo.name = matchFirst(/^ProductName:\\s+(.*)$/m, output);\n darwinInfo.version = matchFirst(/^ProductVersion:\\s+(.*)$/m, output);\n darwinInfo.build = matchFirst(/^BuildVersion:\\s+(.*)$/m, output);\n } catch {\n }\n return darwinInfo;\n}\nfunction getLinuxDistroId(name) {\n return name.split(\" \")[0].toLowerCase();\n}\nasync function getLinuxInfo() {\n const linuxInfo = {\n kernel_version: os.release(),\n name: \"Linux\"\n };\n try {\n const etcFiles = await readDirAsync(\"/etc\");\n const distroFile = LINUX_DISTROS.find((file) => etcFiles.includes(file.name));\n if (!distroFile) {\n return linuxInfo;\n }\n const distroPath = join(\"/etc\", distroFile.name);\n const contents = (await readFileAsync(distroPath, { encoding: \"utf-8\" })).toLowerCase();\n const { distros } = distroFile;\n linuxInfo.name = distros.find((d) => contents.indexOf(getLinuxDistroId(d)) >= 0) || distros[0];\n const id = getLinuxDistroId(linuxInfo.name);\n linuxInfo.version = LINUX_VERSIONS[id]?.(contents);\n } catch {\n }\n return linuxInfo;\n}\nfunction getCloudResourceContext() {\n if (process.env.VERCEL) {\n return {\n \"cloud.provider\": \"vercel\",\n \"cloud.region\": process.env.VERCEL_REGION\n };\n } else if (process.env.AWS_REGION) {\n return {\n \"cloud.provider\": \"aws\",\n \"cloud.region\": process.env.AWS_REGION,\n \"cloud.platform\": process.env.AWS_EXECUTION_ENV\n };\n } else if (process.env.GCP_PROJECT) {\n return {\n \"cloud.provider\": \"gcp\"\n };\n } else if (process.env.ALIYUN_REGION_ID) {\n return {\n \"cloud.provider\": \"alibaba_cloud\",\n \"cloud.region\": process.env.ALIYUN_REGION_ID\n };\n } else if (process.env.WEBSITE_SITE_NAME && process.env.REGION_NAME) {\n return {\n \"cloud.provider\": \"azure\",\n \"cloud.region\": process.env.REGION_NAME\n };\n } else if (process.env.IBM_CLOUD_REGION) {\n return {\n \"cloud.provider\": \"ibm_cloud\",\n \"cloud.region\": process.env.IBM_CLOUD_REGION\n };\n } else if (process.env.TENCENTCLOUD_REGION) {\n return {\n \"cloud.provider\": \"tencent_cloud\",\n \"cloud.region\": process.env.TENCENTCLOUD_REGION,\n \"cloud.account.id\": process.env.TENCENTCLOUD_APPID,\n \"cloud.availability_zone\": process.env.TENCENTCLOUD_ZONE\n };\n } else if (process.env.NETLIFY) {\n return {\n \"cloud.provider\": \"netlify\"\n };\n } else if (process.env.FLY_REGION) {\n return {\n \"cloud.provider\": \"fly.io\",\n \"cloud.region\": process.env.FLY_REGION\n };\n } else if (process.env.DYNO) {\n return {\n \"cloud.provider\": \"heroku\"\n };\n } else {\n return void 0;\n }\n}\n\nexport { contextsToSpanAttributes, getAppContext, getDeviceContext, getDynamicSpanAttributes, nodeContextIntegration, readDirAsync, readFileAsync };\n//# sourceMappingURL=context.js.map\n", + "import { createReadStream } from 'node:fs';\nimport { createInterface } from 'node:readline';\nimport { LRUMap, defineIntegration, debug, snipLine } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst LRU_FILE_CONTENTS_CACHE = new LRUMap(10);\nconst LRU_FILE_CONTENTS_FS_READ_FAILED = new LRUMap(20);\nconst DEFAULT_LINES_OF_CONTEXT = 7;\nconst INTEGRATION_NAME = \"ContextLines\";\nconst MAX_CONTEXTLINES_COLNO = 1e3;\nconst MAX_CONTEXTLINES_LINENO = 1e4;\nfunction emplace(map, key, contents) {\n const value = map.get(key);\n if (value === void 0) {\n map.set(key, contents);\n return contents;\n }\n return value;\n}\nfunction shouldSkipContextLinesForFile(path) {\n if (path.startsWith(\"node:\")) return true;\n if (path.endsWith(\".min.js\")) return true;\n if (path.endsWith(\".min.cjs\")) return true;\n if (path.endsWith(\".min.mjs\")) return true;\n if (path.startsWith(\"data:\")) return true;\n return false;\n}\nfunction shouldSkipContextLinesForFrame(frame) {\n if (frame.lineno !== void 0 && frame.lineno > MAX_CONTEXTLINES_LINENO) return true;\n if (frame.colno !== void 0 && frame.colno > MAX_CONTEXTLINES_COLNO) return true;\n return false;\n}\nfunction rangeExistsInContentCache(file, range) {\n const contents = LRU_FILE_CONTENTS_CACHE.get(file);\n if (contents === void 0) return false;\n for (let i = range[0]; i <= range[1]; i++) {\n if (contents[i] === void 0) {\n return false;\n }\n }\n return true;\n}\nfunction makeLineReaderRanges(lines, linecontext) {\n if (!lines.length) {\n return [];\n }\n let i = 0;\n const line = lines[0];\n if (typeof line !== \"number\") {\n return [];\n }\n let current = makeContextRange(line, linecontext);\n const out = [];\n while (true) {\n if (i === lines.length - 1) {\n out.push(current);\n break;\n }\n const next = lines[i + 1];\n if (typeof next !== \"number\") {\n break;\n }\n if (next <= current[1]) {\n current[1] = next + linecontext;\n } else {\n out.push(current);\n current = makeContextRange(next, linecontext);\n }\n i++;\n }\n return out;\n}\nfunction getContextLinesFromFile(path, ranges, output) {\n return new Promise((resolve, _reject) => {\n const stream = createReadStream(path);\n const lineReaded = createInterface({\n input: stream\n });\n function destroyStreamAndResolve() {\n stream.destroy();\n resolve();\n }\n let lineNumber = 0;\n let currentRangeIndex = 0;\n const range = ranges[currentRangeIndex];\n if (range === void 0) {\n destroyStreamAndResolve();\n return;\n }\n let rangeStart = range[0];\n let rangeEnd = range[1];\n function onStreamError(e) {\n LRU_FILE_CONTENTS_FS_READ_FAILED.set(path, 1);\n DEBUG_BUILD && debug.error(`Failed to read file: ${path}. Error: ${e}`);\n lineReaded.close();\n lineReaded.removeAllListeners();\n destroyStreamAndResolve();\n }\n stream.on(\"error\", onStreamError);\n lineReaded.on(\"error\", onStreamError);\n lineReaded.on(\"close\", destroyStreamAndResolve);\n lineReaded.on(\"line\", (line) => {\n lineNumber++;\n if (lineNumber < rangeStart) return;\n output[lineNumber] = snipLine(line, 0);\n if (lineNumber >= rangeEnd) {\n if (currentRangeIndex === ranges.length - 1) {\n lineReaded.close();\n lineReaded.removeAllListeners();\n return;\n }\n currentRangeIndex++;\n const range2 = ranges[currentRangeIndex];\n if (range2 === void 0) {\n lineReaded.close();\n lineReaded.removeAllListeners();\n return;\n }\n rangeStart = range2[0];\n rangeEnd = range2[1];\n }\n });\n });\n}\nasync function addSourceContext(event, contextLines) {\n const filesToLines = {};\n if (contextLines > 0 && event.exception?.values) {\n for (const exception of event.exception.values) {\n if (!exception.stacktrace?.frames?.length) {\n continue;\n }\n for (let i = exception.stacktrace.frames.length - 1; i >= 0; i--) {\n const frame = exception.stacktrace.frames[i];\n const filename = frame?.filename;\n if (!frame || typeof filename !== \"string\" || typeof frame.lineno !== \"number\" || shouldSkipContextLinesForFile(filename) || shouldSkipContextLinesForFrame(frame)) {\n continue;\n }\n const filesToLinesOutput = filesToLines[filename];\n if (!filesToLinesOutput) filesToLines[filename] = [];\n filesToLines[filename].push(frame.lineno);\n }\n }\n }\n const files = Object.keys(filesToLines);\n if (files.length == 0) {\n return event;\n }\n const readlinePromises = [];\n for (const file of files) {\n if (LRU_FILE_CONTENTS_FS_READ_FAILED.get(file)) {\n continue;\n }\n const filesToLineRanges = filesToLines[file];\n if (!filesToLineRanges) {\n continue;\n }\n filesToLineRanges.sort((a, b) => a - b);\n const ranges = makeLineReaderRanges(filesToLineRanges, contextLines);\n if (ranges.every((r) => rangeExistsInContentCache(file, r))) {\n continue;\n }\n const cache = emplace(LRU_FILE_CONTENTS_CACHE, file, {});\n readlinePromises.push(getContextLinesFromFile(file, ranges, cache));\n }\n await Promise.all(readlinePromises).catch(() => {\n DEBUG_BUILD && debug.log(\"Failed to read one or more source files and resolve context lines\");\n });\n if (contextLines > 0 && event.exception?.values) {\n for (const exception of event.exception.values) {\n if (exception.stacktrace?.frames && exception.stacktrace.frames.length > 0) {\n addSourceContextToFrames(exception.stacktrace.frames, contextLines, LRU_FILE_CONTENTS_CACHE);\n }\n }\n }\n return event;\n}\nfunction addSourceContextToFrames(frames, contextLines, cache) {\n for (const frame of frames) {\n if (frame.filename && frame.context_line === void 0 && typeof frame.lineno === \"number\") {\n const contents = cache.get(frame.filename);\n if (contents === void 0) {\n continue;\n }\n addContextToFrame(frame.lineno, frame, contextLines, contents);\n }\n }\n}\nfunction clearLineContext(frame) {\n delete frame.pre_context;\n delete frame.context_line;\n delete frame.post_context;\n}\nfunction addContextToFrame(lineno, frame, contextLines, contents) {\n if (frame.lineno === void 0 || contents === void 0) {\n DEBUG_BUILD && debug.error(\"Cannot resolve context for frame with no lineno or file contents\");\n return;\n }\n frame.pre_context = [];\n for (let i = makeRangeStart(lineno, contextLines); i < lineno; i++) {\n const line = contents[i];\n if (line === void 0) {\n clearLineContext(frame);\n DEBUG_BUILD && debug.error(`Could not find line ${i} in file ${frame.filename}`);\n return;\n }\n frame.pre_context.push(line);\n }\n if (contents[lineno] === void 0) {\n clearLineContext(frame);\n DEBUG_BUILD && debug.error(`Could not find line ${lineno} in file ${frame.filename}`);\n return;\n }\n frame.context_line = contents[lineno];\n const end = makeRangeEnd(lineno, contextLines);\n frame.post_context = [];\n for (let i = lineno + 1; i <= end; i++) {\n const line = contents[i];\n if (line === void 0) {\n break;\n }\n frame.post_context.push(line);\n }\n}\nfunction makeRangeStart(line, linecontext) {\n return Math.max(1, line - linecontext);\n}\nfunction makeRangeEnd(line, linecontext) {\n return line + linecontext;\n}\nfunction makeContextRange(line, linecontext) {\n return [makeRangeStart(line, linecontext), makeRangeEnd(line, linecontext)];\n}\nconst _contextLinesIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n processEvent(event, _hint, client) {\n const contextLines = options.frameContextLines ?? client?.getDataCollectionOptions().frameContextLines ?? DEFAULT_LINES_OF_CONTEXT;\n return addSourceContext(event, contextLines);\n }\n };\n});\nconst contextLinesIntegration = defineIntegration(_contextLinesIntegration);\n\nexport { MAX_CONTEXTLINES_COLNO, MAX_CONTEXTLINES_LINENO, _contextLinesIntegration, addContextToFrame, contextLinesIntegration };\n//# sourceMappingURL=contextlines.js.map\n", + "import { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '../../otel/instrument.js';\nimport { httpServerIntegration } from './httpServerIntegration.js';\nimport { httpServerSpansIntegration } from './httpServerSpansIntegration.js';\nimport { SentryHttpInstrumentation } from './SentryHttpInstrumentation.js';\n\nconst INTEGRATION_NAME = \"Http\";\nconst instrumentSentryHttp = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n (options) => {\n return new SentryHttpInstrumentation(options);\n }\n);\nconst httpIntegration = defineIntegration((options = {}) => {\n const serverOptions = {\n sessions: options.trackIncomingRequestsAsSessions,\n sessionFlushingDelayMS: options.sessionFlushingDelayMS,\n ignoreRequestBody: options.ignoreIncomingRequestBody,\n maxRequestBodySize: options.maxIncomingRequestBodySize\n };\n const serverSpansOptions = {\n ignoreIncomingRequests: options.ignoreIncomingRequests,\n ignoreStaticAssets: options.ignoreStaticAssets,\n ignoreStatusCodes: options.dropSpansForIncomingRequestStatusCodes\n };\n const httpInstrumentationOptions = {\n breadcrumbs: options.breadcrumbs,\n propagateTraceInOutgoingRequests: options.tracePropagation ?? true,\n ignoreOutgoingRequests: options.ignoreOutgoingRequests\n };\n const server = httpServerIntegration(serverOptions);\n const serverSpans = httpServerSpansIntegration(serverSpansOptions);\n const spans = options.spans ?? false;\n const disableIncomingRequestSpans = options.disableIncomingRequestSpans ?? false;\n const enabledServerSpans = spans && !disableIncomingRequestSpans;\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n if (enabledServerSpans) {\n serverSpans.setup(client);\n }\n },\n setupOnce() {\n server.setupOnce();\n instrumentSentryHttp(httpInstrumentationOptions);\n },\n processEvent(event) {\n return serverSpans.processEvent(event);\n }\n };\n});\n\nexport { httpIntegration, instrumentSentryHttp };\n//# sourceMappingURL=index.js.map\n", + "import { Worker } from 'node:worker_threads';\nimport { defineIntegration, debug } from '@sentry/core';\nimport { isDebuggerEnabled } from '../../utils/debug.js';\nimport { LOCAL_VARIABLES_KEY, functionNamesMatch } from './common.js';\n\nconst base64WorkerScript = \"LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjYzLjAgKDIzNjJlOWYpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=\";\nfunction log(...args) {\n debug.log(\"[LocalVariables]\", ...args);\n}\nconst localVariablesAsyncIntegration = defineIntegration(((integrationOptions = {}) => {\n function addLocalVariablesToException(exception, localVariables) {\n const frames = (exception.stacktrace?.frames || []).filter((frame) => frame.function !== \"new Promise\");\n for (let i = 0; i < frames.length; i++) {\n const frameIndex = frames.length - i - 1;\n const frameLocalVariables = localVariables[i];\n const frame = frames[frameIndex];\n if (!frame || !frameLocalVariables) {\n break;\n }\n if (\n // We need to have vars to add\n frameLocalVariables.vars === void 0 || // Only skip out-of-app frames if includeOutOfAppFrames is not true\n frame.in_app === false && integrationOptions.includeOutOfAppFrames !== true || // The function names need to match\n !functionNamesMatch(frame.function, frameLocalVariables.function)\n ) {\n continue;\n }\n frame.vars = frameLocalVariables.vars;\n }\n }\n function addLocalVariablesToEvent(event, hint) {\n if (hint.originalException && typeof hint.originalException === \"object\" && LOCAL_VARIABLES_KEY in hint.originalException && Array.isArray(hint.originalException[LOCAL_VARIABLES_KEY])) {\n for (const exception of event.exception?.values || []) {\n addLocalVariablesToException(exception, hint.originalException[LOCAL_VARIABLES_KEY]);\n }\n hint.originalException[LOCAL_VARIABLES_KEY] = void 0;\n }\n return event;\n }\n async function startInspector() {\n const inspector = await import('node:inspector');\n if (!inspector.url()) {\n inspector.open(0);\n }\n }\n function startWorker(options) {\n const worker = new Worker(new URL(`data:application/javascript;base64,${base64WorkerScript}`), {\n workerData: options,\n // We don't want any Node args to be passed to the worker\n execArgv: [],\n env: { ...process.env, NODE_OPTIONS: void 0 }\n });\n process.on(\"exit\", () => {\n worker.terminate();\n });\n worker.once(\"error\", (err) => {\n log(\"Worker error\", err);\n });\n worker.once(\"exit\", (code) => {\n log(\"Worker exit\", code);\n });\n worker.unref();\n }\n return {\n name: \"LocalVariablesAsync\",\n async setup(client) {\n const clientOptions = client.getOptions();\n if (!clientOptions.includeLocalVariables) {\n return;\n }\n if (await isDebuggerEnabled()) {\n debug.warn(\"Local variables capture has been disabled because the debugger was already enabled\");\n return;\n }\n const options = {\n ...integrationOptions,\n debug: debug.isEnabled()\n };\n startInspector().then(\n () => {\n try {\n startWorker(options);\n } catch (e) {\n debug.error(\"Failed to start worker\", e);\n }\n },\n (e) => {\n debug.error(\"Failed to start inspector\", e);\n }\n );\n },\n processEvent(event, hint) {\n return addLocalVariablesToEvent(event, hint);\n }\n };\n}));\n\nexport { base64WorkerScript, localVariablesAsyncIntegration };\n//# sourceMappingURL=local-variables-async.js.map\n", + "let cachedDebuggerEnabled;\nasync function isDebuggerEnabled() {\n if (cachedDebuggerEnabled === void 0) {\n try {\n const inspector = await import('node:inspector');\n cachedDebuggerEnabled = !!inspector.url();\n } catch {\n cachedDebuggerEnabled = false;\n }\n }\n return cachedDebuggerEnabled;\n}\n\nexport { isDebuggerEnabled };\n//# sourceMappingURL=debug.js.map\n", + "const LOCAL_VARIABLES_KEY = \"__SENTRY_ERROR_LOCAL_VARIABLES__\";\nfunction createRateLimiter(maxPerSecond, enable, disable) {\n let count = 0;\n let retrySeconds = 5;\n let disabledTimeout = 0;\n setInterval(() => {\n if (disabledTimeout === 0) {\n if (count > maxPerSecond) {\n retrySeconds *= 2;\n disable(retrySeconds);\n if (retrySeconds > 86400) {\n retrySeconds = 86400;\n }\n disabledTimeout = retrySeconds;\n }\n } else {\n disabledTimeout -= 1;\n if (disabledTimeout === 0) {\n enable();\n }\n }\n count = 0;\n }, 1e3).unref();\n return () => {\n count += 1;\n };\n}\nfunction isAnonymous(name) {\n return name !== void 0 && (name.length === 0 || name === \"?\" || name === \"\");\n}\nfunction functionNamesMatch(a, b) {\n return a === b || `Object.${a}` === b || a === `Object.${b}` || isAnonymous(a) && isAnonymous(b);\n}\n\nexport { LOCAL_VARIABLES_KEY, createRateLimiter, functionNamesMatch, isAnonymous };\n//# sourceMappingURL=common.js.map\n", + "import { defineIntegration, LRUMap, getClient, debug } from '@sentry/core';\nimport { NODE_MAJOR } from '../../nodeVersion.js';\nimport { isDebuggerEnabled } from '../../utils/debug.js';\nimport { createRateLimiter, functionNamesMatch } from './common.js';\n\nfunction hashFrames(frames) {\n if (frames === void 0) {\n return;\n }\n return frames.slice(-10).reduce((acc, frame) => `${acc},${frame.function},${frame.lineno},${frame.colno}`, \"\");\n}\nfunction hashFromStack(stackParser, stack) {\n if (stack === void 0) {\n return void 0;\n }\n return hashFrames(stackParser(stack, 1));\n}\nfunction createCallbackList(complete) {\n let callbacks = [];\n let completedCalled = false;\n function checkedComplete(result) {\n callbacks = [];\n if (completedCalled) {\n return;\n }\n completedCalled = true;\n complete(result);\n }\n callbacks.push(checkedComplete);\n function add(fn) {\n callbacks.push(fn);\n }\n function next(result) {\n const popped = callbacks.pop() || checkedComplete;\n try {\n popped(result);\n } catch {\n checkedComplete(result);\n }\n }\n return { add, next };\n}\nclass AsyncSession {\n /** Throws if inspector API is not available */\n constructor(_session) {\n this._session = _session;\n }\n static async create(orDefault) {\n if (orDefault) {\n return orDefault;\n }\n const inspector = await import('node:inspector');\n return new AsyncSession(new inspector.Session());\n }\n /** @inheritdoc */\n configureAndConnect(onPause, captureAll) {\n this._session.connect();\n this._session.on(\"Debugger.paused\", (event) => {\n onPause(event, () => {\n this._session.post(\"Debugger.resume\");\n });\n });\n this._session.post(\"Debugger.enable\");\n this._session.post(\"Debugger.setPauseOnExceptions\", { state: captureAll ? \"all\" : \"uncaught\" });\n }\n setPauseOnExceptions(captureAll) {\n this._session.post(\"Debugger.setPauseOnExceptions\", { state: captureAll ? \"all\" : \"uncaught\" });\n }\n /** @inheritdoc */\n getLocalVariables(objectId, complete) {\n this._getProperties(objectId, (props) => {\n const { add, next } = createCallbackList(complete);\n for (const prop of props) {\n if (prop.value?.objectId && prop.value.className === \"Array\") {\n const id = prop.value.objectId;\n add((vars) => this._unrollArray(id, prop.name, vars, next));\n } else if (prop.value?.objectId && prop.value.className === \"Object\") {\n const id = prop.value.objectId;\n add((vars) => this._unrollObject(id, prop.name, vars, next));\n } else if (prop.value) {\n add((vars) => this._unrollOther(prop, vars, next));\n }\n }\n next({});\n });\n }\n /**\n * Gets all the PropertyDescriptors of an object\n */\n _getProperties(objectId, next) {\n this._session.post(\n \"Runtime.getProperties\",\n {\n objectId,\n ownProperties: true\n },\n (err, params) => {\n if (err) {\n next([]);\n } else {\n next(params.result);\n }\n }\n );\n }\n /**\n * Unrolls an array property\n */\n _unrollArray(objectId, name, vars, next) {\n this._getProperties(objectId, (props) => {\n vars[name] = props.filter((v) => v.name !== \"length\" && !isNaN(parseInt(v.name, 10))).sort((a, b) => parseInt(a.name, 10) - parseInt(b.name, 10)).map((v) => v.value?.value);\n next(vars);\n });\n }\n /**\n * Unrolls an object property\n */\n _unrollObject(objectId, name, vars, next) {\n this._getProperties(objectId, (props) => {\n vars[name] = props.map((v) => [v.name, v.value?.value]).reduce((obj, [key, val]) => {\n obj[key] = val;\n return obj;\n }, {});\n next(vars);\n });\n }\n /**\n * Unrolls other properties\n */\n _unrollOther(prop, vars, next) {\n if (prop.value) {\n if (\"value\" in prop.value) {\n if (prop.value.value === void 0 || prop.value.value === null) {\n vars[prop.name] = `<${prop.value.value}>`;\n } else {\n vars[prop.name] = prop.value.value;\n }\n } else if (\"description\" in prop.value && prop.value.type !== \"function\") {\n vars[prop.name] = `<${prop.value.description}>`;\n } else if (prop.value.type === \"undefined\") {\n vars[prop.name] = \"\";\n }\n }\n next(vars);\n }\n}\nconst INTEGRATION_NAME = \"LocalVariables\";\nconst _localVariablesSyncIntegration = ((options = {}, sessionOverride) => {\n const cachedFrames = new LRUMap(20);\n let rateLimiter;\n let shouldProcessEvent = false;\n function addLocalVariablesToException(exception) {\n const hash = hashFrames(exception.stacktrace?.frames);\n if (hash === void 0) {\n return;\n }\n const cachedFrame = cachedFrames.remove(hash);\n if (cachedFrame === void 0) {\n return;\n }\n const frames = (exception.stacktrace?.frames || []).filter((frame) => frame.function !== \"new Promise\");\n for (let i = 0; i < frames.length; i++) {\n const frameIndex = frames.length - i - 1;\n const cachedFrameVariable = cachedFrame[i];\n const frameVariable = frames[frameIndex];\n if (!frameVariable || !cachedFrameVariable) {\n break;\n }\n if (\n // We need to have vars to add\n cachedFrameVariable.vars === void 0 || // Only skip out-of-app frames if includeOutOfAppFrames is not true\n frameVariable.in_app === false && options.includeOutOfAppFrames !== true || // The function names need to match\n !functionNamesMatch(frameVariable.function, cachedFrameVariable.function)\n ) {\n continue;\n }\n frameVariable.vars = cachedFrameVariable.vars;\n }\n }\n function addLocalVariablesToEvent(event) {\n for (const exception of event.exception?.values || []) {\n addLocalVariablesToException(exception);\n }\n return event;\n }\n let setupPromise;\n async function setup() {\n const client = getClient();\n const clientOptions = client?.getOptions();\n if (!clientOptions?.includeLocalVariables) {\n return;\n }\n const unsupportedNodeVersion = NODE_MAJOR < 18;\n if (unsupportedNodeVersion) {\n debug.log(\"The `LocalVariables` integration is only supported on Node >= v18.\");\n return;\n }\n if (await isDebuggerEnabled()) {\n debug.warn(\"Local variables capture has been disabled because the debugger was already enabled\");\n return;\n }\n try {\n const session = await AsyncSession.create(sessionOverride);\n const handlePaused = (stackParser, { params: { reason, data, callFrames } }, complete) => {\n if (reason !== \"exception\" && reason !== \"promiseRejection\") {\n complete();\n return;\n }\n rateLimiter?.();\n const exceptionHash = hashFromStack(stackParser, data.description);\n if (exceptionHash == void 0) {\n complete();\n return;\n }\n const { add, next } = createCallbackList((frames) => {\n cachedFrames.set(exceptionHash, frames);\n complete();\n });\n for (let i = 0; i < Math.min(callFrames.length, 5); i++) {\n const { scopeChain, functionName, this: obj } = callFrames[i];\n const localScope = scopeChain.find((scope) => scope.type === \"local\");\n const fn = obj.className === \"global\" || !obj.className ? functionName : `${obj.className}.${functionName}`;\n if (localScope?.object.objectId === void 0) {\n add((frames) => {\n frames[i] = { function: fn };\n next(frames);\n });\n } else {\n const id = localScope.object.objectId;\n add(\n (frames) => session.getLocalVariables(id, (vars) => {\n frames[i] = { function: fn, vars };\n next(frames);\n })\n );\n }\n }\n next([]);\n };\n const captureAll = options.captureAllExceptions !== false;\n session.configureAndConnect(\n (ev, complete) => handlePaused(clientOptions.stackParser, ev, complete),\n captureAll\n );\n if (captureAll) {\n const max = options.maxExceptionsPerSecond || 50;\n rateLimiter = createRateLimiter(\n max,\n () => {\n debug.log(\"Local variables rate-limit lifted.\");\n session.setPauseOnExceptions(true);\n },\n (seconds) => {\n debug.log(\n `Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${seconds} seconds.`\n );\n session.setPauseOnExceptions(false);\n }\n );\n }\n shouldProcessEvent = true;\n } catch (error) {\n debug.log(\"The `LocalVariables` integration failed to start.\", error);\n }\n }\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n setupPromise = setup();\n },\n async processEvent(event) {\n await setupPromise;\n if (shouldProcessEvent) {\n return addLocalVariablesToEvent(event);\n }\n return event;\n },\n // These are entirely for testing\n _getCachedFramesCount() {\n return cachedFrames.size;\n },\n _getFirstCachedFrame() {\n return cachedFrames.values()[0];\n }\n };\n});\nconst localVariablesSyncIntegration = defineIntegration(_localVariablesSyncIntegration);\n\nexport { createCallbackList, hashFrames, hashFromStack, localVariablesSyncIntegration };\n//# sourceMappingURL=local-variables-sync.js.map\n", "import { NODE_VERSION } from '../../nodeVersion.js';\nimport { localVariablesAsyncIntegration } from './local-variables-async.js';\nimport { localVariablesSyncIntegration } from './local-variables-sync.js';\n\nconst localVariablesIntegration = (options = {}) => {\n return NODE_VERSION.major < 19 ? localVariablesSyncIntegration(options) : localVariablesAsyncIntegration(options);\n};\n\nexport { localVariablesIntegration };\n//# sourceMappingURL=index.js.map\n", - "import { existsSync, readFileSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport { isCjs } from '../utils/detection.js';\n\nlet moduleCache;\n\nconst INTEGRATION_NAME = 'Modules';\n\n/**\n * `__SENTRY_SERVER_MODULES__` can be replaced at build time with the modules loaded by the server.\n * Right now, we leverage this in Next.js to circumvent the problem that we do not get access to these things at runtime.\n */\nconst SERVER_MODULES = typeof __SENTRY_SERVER_MODULES__ === 'undefined' ? {} : __SENTRY_SERVER_MODULES__;\n\nconst _modulesIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n event.modules = {\n ...event.modules,\n ..._getModules(),\n };\n\n return event;\n },\n getModules: _getModules,\n };\n}) ;\n\n/**\n * Add node modules / packages to the event.\n * For this, multiple sources are used:\n * - They can be injected at build time into the __SENTRY_SERVER_MODULES__ variable (e.g. in Next.js)\n * - They are extracted from the dependencies & devDependencies in the package.json file\n * - They are extracted from the require.cache (CJS only)\n */\nconst modulesIntegration = _modulesIntegration;\n\nfunction getRequireCachePaths() {\n try {\n return require.cache ? Object.keys(require.cache ) : [];\n } catch {\n return [];\n }\n}\n\n/** Extract information about package.json modules */\nfunction collectModules() {\n return {\n ...SERVER_MODULES,\n ...getModulesFromPackageJson(),\n ...(isCjs() ? collectRequireModules() : {}),\n };\n}\n\n/** Extract information about package.json modules from require.cache */\nfunction collectRequireModules() {\n const mainPaths = require.main?.paths || [];\n const paths = getRequireCachePaths();\n\n // We start with the modules from package.json (if possible)\n // These may be overwritten by more specific versions from the require.cache\n const infos = {};\n const seen = new Set();\n\n paths.forEach(path => {\n let dir = path;\n\n /** Traverse directories upward in the search of package.json file */\n const updir = () => {\n const orig = dir;\n dir = dirname(orig);\n\n if (!dir || orig === dir || seen.has(orig)) {\n return undefined;\n }\n if (mainPaths.indexOf(dir) < 0) {\n return updir();\n }\n\n const pkgfile = join(orig, 'package.json');\n seen.add(orig);\n\n if (!existsSync(pkgfile)) {\n return updir();\n }\n\n try {\n const info = JSON.parse(readFileSync(pkgfile, 'utf8'))\n\n;\n infos[info.name] = info.version;\n } catch {\n // no-empty\n }\n };\n\n updir();\n });\n\n return infos;\n}\n\n/** Fetches the list of modules and the versions loaded by the entry file for your node.js app. */\nfunction _getModules() {\n if (!moduleCache) {\n moduleCache = collectModules();\n }\n return moduleCache;\n}\n\nfunction getPackageJson() {\n try {\n const filePath = join(process.cwd(), 'package.json');\n const packageJson = JSON.parse(readFileSync(filePath, 'utf8')) ;\n\n return packageJson;\n } catch {\n return {};\n }\n}\n\nfunction getModulesFromPackageJson() {\n const packageJson = getPackageJson();\n\n return {\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n };\n}\n\nexport { modulesIntegration };\n//# sourceMappingURL=modules.js.map\n", - "import { consoleSandbox } from '@sentry/core';\nimport { NODE_MAJOR, NODE_MINOR } from '../nodeVersion.js';\n\n/** Detect CommonJS. */\nfunction isCjs() {\n try {\n // oxlint-disable-next-line typescript/prefer-optional-chain\n return typeof module !== 'undefined' && typeof module.exports !== 'undefined';\n } catch {\n return false;\n }\n}\n\nlet hasWarnedAboutNodeVersion;\n\n/**\n * Check if the current Node.js version supports module.register\n */\nfunction supportsEsmLoaderHooks() {\n if (isCjs()) {\n return false;\n }\n\n if (NODE_MAJOR >= 21 || (NODE_MAJOR === 20 && NODE_MINOR >= 6) || (NODE_MAJOR === 18 && NODE_MINOR >= 19)) {\n return true;\n }\n\n if (!hasWarnedAboutNodeVersion) {\n hasWarnedAboutNodeVersion = true;\n\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n `[Sentry] You are using Node.js v${process.versions.node} in ESM mode (\"import syntax\"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS (\"require() syntax\"), or upgrade your Node.js version.`,\n );\n });\n }\n\n return false;\n}\n\nexport { isCjs, supportsEsmLoaderHooks };\n//# sourceMappingURL=detection.js.map\n", - "import { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '../../otel/instrument.js';\nimport { SentryNodeFetchInstrumentation } from './SentryNodeFetchInstrumentation.js';\n\nconst INTEGRATION_NAME = 'NodeFetch';\n\nconst instrumentSentryNodeFetch = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n SentryNodeFetchInstrumentation,\n (options) => {\n return options;\n },\n);\n\nconst _nativeNodeFetchIntegration = ((options = {}) => {\n return {\n name: 'NodeFetch',\n setupOnce() {\n instrumentSentryNodeFetch(options);\n },\n };\n}) ;\n\nconst nativeNodeFetchIntegration = defineIntegration(_nativeNodeFetchIntegration);\n\nexport { nativeNodeFetchIntegration };\n//# sourceMappingURL=index.js.map\n", - "import { defineIntegration, getClient, captureException, debug } from '@sentry/core';\nimport { isMainThread } from 'worker_threads';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { logAndExitProcess } from '../utils/errorhandling.js';\n\nconst INTEGRATION_NAME = 'OnUncaughtException';\n\n/**\n * Add a global exception handler.\n */\nconst onUncaughtExceptionIntegration = defineIntegration((options = {}) => {\n const optionsWithDefaults = {\n exitEvenIfOtherHandlersAreRegistered: false,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n // errors in worker threads are already handled by the childProcessIntegration\n // also we don't want to exit the Node process on worker thread errors\n if (!isMainThread) {\n return;\n }\n\n global.process.on('uncaughtException', makeErrorHandler(client, optionsWithDefaults));\n },\n };\n});\n\n/** Exported only for tests */\nfunction makeErrorHandler(client, options) {\n const timeout = 2000;\n let caughtFirstError = false;\n let caughtSecondError = false;\n let calledFatalError = false;\n let firstError;\n\n const clientOptions = client.getOptions();\n\n return Object.assign(\n (error) => {\n let onFatalError = logAndExitProcess;\n\n if (options.onFatalError) {\n onFatalError = options.onFatalError;\n } else if (clientOptions.onFatalError) {\n onFatalError = clientOptions.onFatalError ;\n }\n\n // Attaching a listener to `uncaughtException` will prevent the node process from exiting. We generally do not\n // want to alter this behaviour so we check for other listeners that users may have attached themselves and adjust\n // exit behaviour of the SDK accordingly:\n // - If other listeners are attached, do not exit.\n // - If the only listener attached is ours, exit.\n const userProvidedListenersCount = (global.process.listeners('uncaughtException') ).filter(\n listener => {\n // There are 3 listeners we ignore:\n return (\n // as soon as we're using domains this listener is attached by node itself\n listener.name !== 'domainUncaughtExceptionClear' &&\n // the handler we register for tracing\n listener.tag !== 'sentry_tracingErrorCallback' &&\n // the handler we register in this integration\n (listener )._errorHandler !== true\n );\n },\n ).length;\n\n const processWouldExit = userProvidedListenersCount === 0;\n const shouldApplyFatalHandlingLogic = options.exitEvenIfOtherHandlersAreRegistered || processWouldExit;\n\n if (!caughtFirstError) {\n // this is the first uncaught error and the ultimate reason for shutting down\n // we want to do absolutely everything possible to ensure it gets captured\n // also we want to make sure we don't go recursion crazy if more errors happen after this one\n firstError = error;\n caughtFirstError = true;\n\n if (getClient() === client) {\n captureException(error, {\n originalException: error,\n captureContext: {\n level: 'fatal',\n },\n mechanism: {\n handled: false,\n type: 'auto.node.onuncaughtexception',\n },\n });\n }\n\n if (!calledFatalError && shouldApplyFatalHandlingLogic) {\n calledFatalError = true;\n onFatalError(error);\n }\n } else {\n if (shouldApplyFatalHandlingLogic) {\n if (calledFatalError) {\n // we hit an error *after* calling onFatalError - pretty boned at this point, just shut it down\n DEBUG_BUILD &&\n debug.warn(\n 'uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown',\n );\n logAndExitProcess(error);\n } else if (!caughtSecondError) {\n // two cases for how we can hit this branch:\n // - capturing of first error blew up and we just caught the exception from that\n // - quit trying to capture, proceed with shutdown\n // - a second independent error happened while waiting for first error to capture\n // - want to avoid causing premature shutdown before first error capture finishes\n // it's hard to immediately tell case 1 from case 2 without doing some fancy/questionable domain stuff\n // so let's instead just delay a bit before we proceed with our action here\n // in case 1, we just wait a bit unnecessarily but ultimately do the same thing\n // in case 2, the delay hopefully made us wait long enough for the capture to finish\n // two potential nonideal outcomes:\n // nonideal case 1: capturing fails fast, we sit around for a few seconds unnecessarily before proceeding correctly by calling onFatalError\n // nonideal case 2: case 2 happens, 1st error is captured but slowly, timeout completes before capture and we treat second error as the sendErr of (nonexistent) failure from trying to capture first error\n // note that after hitting this branch, we might catch more errors where (caughtSecondError && !calledFatalError)\n // we ignore them - they don't matter to us, we're just waiting for the second error timeout to finish\n caughtSecondError = true;\n setTimeout(() => {\n if (!calledFatalError) {\n // it was probably case 1, let's treat err as the sendErr and call onFatalError\n calledFatalError = true;\n onFatalError(firstError, error);\n }\n }, timeout); // capturing could take at least sendTimeout to fail, plus an arbitrary second for how long it takes to collect surrounding source etc\n }\n }\n }\n },\n { _errorHandler: true },\n );\n}\n\nexport { makeErrorHandler, onUncaughtExceptionIntegration };\n//# sourceMappingURL=onuncaughtexception.js.map\n", - "import { consoleSandbox, getClient, debug } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst DEFAULT_SHUTDOWN_TIMEOUT = 2000;\n\n/**\n * @hidden\n */\nfunction logAndExitProcess(error) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(error);\n });\n\n const client = getClient();\n\n if (client === undefined) {\n DEBUG_BUILD && debug.warn('No NodeClient was defined, we are exiting the process now.');\n global.process.exit(1);\n return;\n }\n\n const options = client.getOptions();\n const timeout =\n options?.shutdownTimeout && options.shutdownTimeout > 0 ? options.shutdownTimeout : DEFAULT_SHUTDOWN_TIMEOUT;\n client.close(timeout).then(\n (result) => {\n if (!result) {\n DEBUG_BUILD && debug.warn('We reached the timeout for emptying the request buffer, still exiting now!');\n }\n global.process.exit(1);\n },\n error => {\n DEBUG_BUILD && debug.error(error);\n },\n );\n}\n\nexport { logAndExitProcess };\n//# sourceMappingURL=errorhandling.js.map\n", - "import { defineIntegration, getClient, withActiveSpan, consoleSandbox, captureException, isMatchingPattern } from '@sentry/core';\nimport { logAndExitProcess } from '../utils/errorhandling.js';\n\nconst INTEGRATION_NAME = 'OnUnhandledRejection';\n\nconst DEFAULT_IGNORES = [\n {\n name: 'AI_NoOutputGeneratedError', // When stream aborts in Vercel AI SDK V5, Vercel flush() fails with an error\n },\n {\n name: 'AbortError', // When stream aborts in Vercel AI SDK V6\n },\n];\n\nconst _onUnhandledRejectionIntegration = ((options = {}) => {\n const opts = {\n mode: options.mode ?? 'warn',\n ignore: [...DEFAULT_IGNORES, ...(options.ignore ?? [])],\n };\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n global.process.on('unhandledRejection', makeUnhandledPromiseHandler(client, opts));\n },\n };\n}) ;\n\nconst onUnhandledRejectionIntegration = defineIntegration(_onUnhandledRejectionIntegration);\n\n/** Extract error info safely */\nfunction extractErrorInfo(reason) {\n // Check if reason is an object (including Error instances, not just plain objects)\n if (typeof reason !== 'object' || reason === null) {\n return { name: '', message: String(reason ?? '') };\n }\n\n const errorLike = reason ;\n const name = typeof errorLike.name === 'string' ? errorLike.name : '';\n const message = typeof errorLike.message === 'string' ? errorLike.message : String(reason);\n\n return { name, message };\n}\n\n/** Check if a matcher matches the reason */\nfunction isMatchingReason(matcher, errorInfo) {\n // name/message matcher\n const nameMatches = matcher.name === undefined || isMatchingPattern(errorInfo.name, matcher.name, true);\n\n const messageMatches = matcher.message === undefined || isMatchingPattern(errorInfo.message, matcher.message);\n\n return nameMatches && messageMatches;\n}\n\n/** Match helper */\nfunction matchesIgnore(list, reason) {\n const errorInfo = extractErrorInfo(reason);\n return list.some(matcher => isMatchingReason(matcher, errorInfo));\n}\n\n/** Core handler */\nfunction makeUnhandledPromiseHandler(\n client,\n options,\n) {\n return function sendUnhandledPromise(reason, promise) {\n // Only handle for the active client\n if (getClient() !== client) {\n return;\n }\n\n // Skip if configured to ignore\n if (matchesIgnore(options.ignore ?? [], reason)) {\n return;\n }\n\n const level = options.mode === 'strict' ? 'fatal' : 'error';\n\n // this can be set in places where we cannot reliably get access to the active span/error\n // when the error bubbles up to this handler, we can use this to set the active span\n const activeSpanForError =\n reason && typeof reason === 'object' ? (reason )._sentry_active_span : undefined;\n\n const activeSpanWrapper = activeSpanForError\n ? (fn) => withActiveSpan(activeSpanForError, fn)\n : (fn) => fn();\n\n activeSpanWrapper(() => {\n captureException(reason, {\n originalException: promise,\n captureContext: {\n extra: { unhandledPromiseRejection: true },\n level,\n },\n mechanism: {\n handled: false,\n type: 'auto.node.onunhandledrejection',\n },\n });\n });\n\n handleRejection(reason, options.mode);\n };\n}\n\n/**\n * Handler for `mode` option\n */\nfunction handleRejection(reason, mode) {\n // https://github.com/nodejs/node/blob/7cf6f9e964aa00772965391c23acda6d71972a9a/lib/internal/process/promises.js#L234-L240\n const rejectionWarning =\n 'This error originated either by ' +\n 'throwing inside of an async function without a catch block, ' +\n 'or by rejecting a promise which was not handled with .catch().' +\n ' The promise rejected with the reason:';\n\n /* eslint-disable no-console */\n if (mode === 'warn') {\n consoleSandbox(() => {\n console.warn(rejectionWarning);\n console.error(reason && typeof reason === 'object' && 'stack' in reason ? reason.stack : reason);\n });\n } else if (mode === 'strict') {\n consoleSandbox(() => {\n console.warn(rejectionWarning);\n });\n logAndExitProcess(reason);\n }\n /* eslint-enable no-console */\n}\n\nexport { makeUnhandledPromiseHandler, onUnhandledRejectionIntegration };\n//# sourceMappingURL=onunhandledrejection.js.map\n", - "import { defineIntegration, startSession, getIsolationScope, endSession } from '@sentry/core';\n\nconst INTEGRATION_NAME = 'ProcessSession';\n\n/**\n * Records a Session for the current process to track release health.\n */\nconst processSessionIntegration = defineIntegration(() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n startSession();\n\n // Emitted in the case of healthy sessions, error of `mechanism.handled: true` and unhandledrejections because\n // The 'beforeExit' event is not emitted for conditions causing explicit termination,\n // such as calling process.exit() or uncaught exceptions.\n // Ref: https://nodejs.org/api/process.html#process_event_beforeexit\n process.on('beforeExit', () => {\n const session = getIsolationScope().getSession();\n\n // Only call endSession, if the Session exists on Scope and SessionStatus is not a\n // Terminal Status i.e. Exited or Crashed because\n // \"When a session is moved away from ok it must not be updated anymore.\"\n // Ref: https://develop.sentry.dev/sdk/sessions/\n if (session?.status !== 'ok') {\n endSession();\n }\n });\n },\n };\n});\n\nexport { processSessionIntegration };\n//# sourceMappingURL=processSession.js.map\n", - "import * as http from 'node:http';\nimport { defineIntegration, debug, serializeEnvelope, suppressTracing } from '@sentry/core';\n\nconst INTEGRATION_NAME = 'Spotlight';\n\nconst _spotlightIntegration = ((options = {}) => {\n const _options = {\n sidecarUrl: options.sidecarUrl || 'http://localhost:8969/stream',\n };\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n try {\n if (process.env.NODE_ENV && process.env.NODE_ENV !== 'development') {\n debug.warn(\"[Spotlight] It seems you're not in dev mode. Do you really want to have Spotlight enabled?\");\n }\n } catch {\n // ignore\n }\n connectToSpotlight(client, _options);\n },\n };\n}) ;\n\n/**\n * Use this integration to send errors and transactions to Spotlight.\n *\n * Learn more about spotlight at https://spotlightjs.com\n *\n * Important: This integration only works with Node 18 or newer.\n */\nconst spotlightIntegration = defineIntegration(_spotlightIntegration);\n\nfunction connectToSpotlight(client, options) {\n const spotlightUrl = parseSidecarUrl(options.sidecarUrl);\n if (!spotlightUrl) {\n return;\n }\n\n let failedRequests = 0;\n\n client.on('beforeEnvelope', (envelope) => {\n if (failedRequests > 3) {\n debug.warn('[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests');\n return;\n }\n\n const serializedEnvelope = serializeEnvelope(envelope);\n suppressTracing(() => {\n const req = http.request(\n {\n method: 'POST',\n path: spotlightUrl.pathname,\n hostname: spotlightUrl.hostname,\n port: spotlightUrl.port,\n headers: {\n 'Content-Type': 'application/x-sentry-envelope',\n },\n },\n res => {\n if (res.statusCode && res.statusCode >= 200 && res.statusCode < 400) {\n // Reset failed requests counter on success\n failedRequests = 0;\n }\n res.on('data', () => {\n // Drain socket\n });\n\n res.on('end', () => {\n // Drain socket\n });\n res.setEncoding('utf8');\n },\n );\n\n req.on('error', () => {\n failedRequests++;\n debug.warn('[Spotlight] Failed to send envelope to Spotlight Sidecar');\n });\n req.write(serializedEnvelope);\n req.end();\n });\n });\n}\n\nfunction parseSidecarUrl(url) {\n try {\n return new URL(`${url}`);\n } catch {\n debug.warn(`[Spotlight] Invalid sidecar URL: ${url}`);\n return undefined;\n }\n}\n\nexport { INTEGRATION_NAME, spotlightIntegration };\n//# sourceMappingURL=spotlight.js.map\n", - "import * as util from 'node:util';\nimport { defineIntegration } from '@sentry/core';\n\nconst INTEGRATION_NAME = 'NodeSystemError';\n\nfunction isSystemError(error) {\n if (!(error instanceof Error)) {\n return false;\n }\n\n if (!('errno' in error) || typeof error.errno !== 'number') {\n return false;\n }\n\n // Appears this is the recommended way to check for Node.js SystemError\n // https://github.com/nodejs/node/issues/46869\n return util.getSystemErrorMap().has(error.errno);\n}\n\n/**\n * Captures context for Node.js SystemError errors.\n */\nconst systemErrorIntegration = defineIntegration((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n processEvent: (event, hint, client) => {\n if (!isSystemError(hint.originalException)) {\n return event;\n }\n\n const error = hint.originalException;\n\n const errorContext = {\n ...(error ),\n };\n\n if (!client.getOptions().sendDefaultPii && options.includePaths !== true) {\n delete errorContext.path;\n delete errorContext.dest;\n }\n\n event.contexts = {\n ...event.contexts,\n node_system_error: errorContext,\n };\n\n for (const exception of event.exception?.values || []) {\n if (exception.value) {\n if (error.path && exception.value.includes(error.path)) {\n exception.value = exception.value.replace(`'${error.path}'`, '').trim();\n }\n if (error.dest && exception.value.includes(error.dest)) {\n exception.value = exception.value.replace(`'${error.dest}'`, '').trim();\n }\n }\n }\n\n return event;\n },\n };\n});\n\nexport { systemErrorIntegration };\n//# sourceMappingURL=systemError.js.map\n", - "import * as http from 'node:http';\nimport * as https from 'node:https';\nimport { Readable } from 'node:stream';\nimport { createGzip } from 'node:zlib';\nimport { consoleSandbox, createTransport, suppressTracing } from '@sentry/core';\nimport { HttpsProxyAgent } from '../proxy/index.js';\n\n// Estimated maximum size for reasonable standalone event\nconst GZIP_THRESHOLD = 1024 * 32;\n\n/**\n * Gets a stream from a Uint8Array or string\n * Readable.from is ideal but was added in node.js v12.3.0 and v10.17.0\n */\nfunction streamFromBody(body) {\n return new Readable({\n read() {\n this.push(body);\n this.push(null);\n },\n });\n}\n\n/**\n * Creates a Transport that uses native the native 'http' and 'https' modules to send events to Sentry.\n */\nfunction makeNodeTransport(options) {\n let urlSegments;\n\n try {\n urlSegments = new URL(options.url);\n } catch (_e) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.',\n );\n });\n return createTransport(options, () => Promise.resolve({}));\n }\n\n const isHttps = urlSegments.protocol === 'https:';\n\n // Proxy prioritization: http => `options.proxy` | `process.env.http_proxy`\n // Proxy prioritization: https => `options.proxy` | `process.env.https_proxy` | `process.env.http_proxy`\n const proxy = applyNoProxyOption(\n urlSegments,\n options.proxy || (isHttps ? process.env.https_proxy : undefined) || process.env.http_proxy,\n );\n\n const nativeHttpModule = isHttps ? https : http;\n const keepAlive = options.keepAlive === undefined ? false : options.keepAlive;\n\n // TODO(v11): Evaluate if we can set keepAlive to true. This would involve testing for memory leaks in older node\n // versions(>= 8) as they had memory leaks when using it: #2555\n const agent = proxy\n ? (new HttpsProxyAgent(proxy) )\n : new nativeHttpModule.Agent({ keepAlive, maxSockets: 30, timeout: 2000 });\n\n const requestExecutor = createRequestExecutor(options, options.httpModule ?? nativeHttpModule, agent);\n return createTransport(options, requestExecutor);\n}\n\n/**\n * Honors the `no_proxy` env variable with the highest priority to allow for hosts exclusion.\n *\n * @param transportUrl The URL the transport intends to send events to.\n * @param proxy The client configured proxy.\n * @returns A proxy the transport should use.\n */\nfunction applyNoProxyOption(transportUrlSegments, proxy) {\n const { no_proxy } = process.env;\n\n const urlIsExemptFromProxy = no_proxy\n ?.split(',')\n .some(\n exemption => transportUrlSegments.host.endsWith(exemption) || transportUrlSegments.hostname.endsWith(exemption),\n );\n\n if (urlIsExemptFromProxy) {\n return undefined;\n } else {\n return proxy;\n }\n}\n\n/**\n * Creates a RequestExecutor to be used with `createTransport`.\n */\nfunction createRequestExecutor(\n options,\n httpModule,\n agent,\n) {\n const { hostname, pathname, port, protocol, search } = new URL(options.url);\n return function makeRequest(request) {\n return new Promise((resolve, reject) => {\n // This ensures we do not generate any spans in OpenTelemetry for the transport\n suppressTracing(() => {\n let body = streamFromBody(request.body);\n\n const headers = { ...options.headers };\n\n if (request.body.length > GZIP_THRESHOLD) {\n headers['content-encoding'] = 'gzip';\n body = body.pipe(createGzip());\n }\n\n const hostnameIsIPv6 = hostname.startsWith('[');\n\n const req = httpModule.request(\n {\n method: 'POST',\n agent,\n headers,\n // Remove \"[\" and \"]\" from IPv6 hostnames\n hostname: hostnameIsIPv6 ? hostname.slice(1, -1) : hostname,\n path: `${pathname}${search}`,\n port,\n protocol,\n ca: options.caCerts,\n },\n res => {\n res.on('data', () => {\n // Drain socket\n });\n\n res.on('end', () => {\n // Drain socket\n });\n\n res.setEncoding('utf8');\n\n // \"Key-value pairs of header names and values. Header names are lower-cased.\"\n // https://nodejs.org/api/http.html#http_message_headers\n const retryAfterHeader = res.headers['retry-after'] ?? null;\n const rateLimitsHeader = res.headers['x-sentry-rate-limits'] ?? null;\n\n resolve({\n statusCode: res.statusCode,\n headers: {\n 'retry-after': retryAfterHeader,\n 'x-sentry-rate-limits': Array.isArray(rateLimitsHeader)\n ? rateLimitsHeader[0] || null\n : rateLimitsHeader,\n },\n });\n },\n );\n\n req.on('error', reject);\n body.pipe(req);\n });\n });\n };\n}\n\nexport { makeNodeTransport };\n//# sourceMappingURL=http.js.map\n", - "import * as net from 'node:net';\nimport * as tls from 'node:tls';\nimport { debug } from '@sentry/core';\nimport { Agent } from './base.js';\nimport { parseProxyResponse } from './parse-proxy-response.js';\n\nfunction debugLog(...args) {\n debug.log('[https-proxy-agent]', ...args);\n}\n\n/**\n * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to\n * the specified \"HTTP(s) proxy server\" in order to proxy HTTPS requests.\n *\n * Outgoing HTTP requests are first tunneled through the proxy server using the\n * `CONNECT` HTTP request method to establish a connection to the proxy server,\n * and then the proxy server connects to the destination target and issues the\n * HTTP request from the proxy server.\n *\n * `https:` requests have their socket connection upgraded to TLS once\n * the connection to the proxy server has been established.\n */\nclass HttpsProxyAgent extends Agent {\n static __initStatic() {this.protocols = ['http', 'https']; }\n\n constructor(proxy, opts) {\n super(opts);\n this.options = {};\n this.proxy = typeof proxy === 'string' ? new URL(proxy) : proxy;\n this.proxyHeaders = opts?.headers ?? {};\n debugLog('Creating new HttpsProxyAgent instance: %o', this.proxy.href);\n\n // Trim off the brackets from IPv6 addresses\n const host = (this.proxy.hostname || this.proxy.host).replace(/^\\[|\\]$/g, '');\n const port = this.proxy.port ? parseInt(this.proxy.port, 10) : this.proxy.protocol === 'https:' ? 443 : 80;\n this.connectOpts = {\n // Attempt to negotiate http/1.1 for proxy servers that support http/2\n ALPNProtocols: ['http/1.1'],\n ...(opts ? omit(opts, 'headers') : null),\n host,\n port,\n };\n }\n\n /**\n * Called when the node-core HTTP client library is creating a\n * new HTTP request.\n */\n async connect(req, opts) {\n const { proxy } = this;\n\n if (!opts.host) {\n throw new TypeError('No \"host\" provided');\n }\n\n // Create a socket connection to the proxy server.\n let socket;\n if (proxy.protocol === 'https:') {\n debugLog('Creating `tls.Socket`: %o', this.connectOpts);\n const servername = this.connectOpts.servername || this.connectOpts.host;\n socket = tls.connect({\n ...this.connectOpts,\n servername: servername && net.isIP(servername) ? undefined : servername,\n });\n } else {\n debugLog('Creating `net.Socket`: %o', this.connectOpts);\n socket = net.connect(this.connectOpts);\n }\n\n const headers =\n typeof this.proxyHeaders === 'function' ? this.proxyHeaders() : { ...this.proxyHeaders };\n const host = net.isIPv6(opts.host) ? `[${opts.host}]` : opts.host;\n let payload = `CONNECT ${host}:${opts.port} HTTP/1.1\\r\\n`;\n\n // Inject the `Proxy-Authorization` header if necessary.\n if (proxy.username || proxy.password) {\n const auth = `${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`;\n headers['Proxy-Authorization'] = `Basic ${Buffer.from(auth).toString('base64')}`;\n }\n\n headers.Host = `${host}:${opts.port}`;\n\n if (!headers['Proxy-Connection']) {\n headers['Proxy-Connection'] = this.keepAlive ? 'Keep-Alive' : 'close';\n }\n for (const name of Object.keys(headers)) {\n payload += `${name}: ${headers[name]}\\r\\n`;\n }\n\n const proxyResponsePromise = parseProxyResponse(socket);\n\n socket.write(`${payload}\\r\\n`);\n\n const { connect, buffered } = await proxyResponsePromise;\n req.emit('proxyConnect', connect);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore Not EventEmitter in Node types\n this.emit('proxyConnect', connect, req);\n\n if (connect.statusCode === 200) {\n req.once('socket', resume);\n\n if (opts.secureEndpoint) {\n // The proxy is connecting to a TLS server, so upgrade\n // this socket connection to a TLS connection.\n debugLog('Upgrading socket connection to TLS');\n const servername = opts.servername || opts.host;\n return tls.connect({\n ...omit(opts, 'host', 'path', 'port'),\n socket,\n servername: net.isIP(servername) ? undefined : servername,\n });\n }\n\n return socket;\n }\n\n // Some other status code that's not 200... need to re-play the HTTP\n // header \"data\" events onto the socket once the HTTP machinery is\n // attached so that the node core `http` can parse and handle the\n // error status code.\n\n // Close the original socket, and a new \"fake\" socket is returned\n // instead, so that the proxy doesn't get the HTTP request\n // written to it (which may contain `Authorization` headers or other\n // sensitive data).\n //\n // See: https://hackerone.com/reports/541502\n socket.destroy();\n\n const fakeSocket = new net.Socket({ writable: false });\n fakeSocket.readable = true;\n\n // Need to wait for the \"socket\" event to re-play the \"data\" events.\n req.once('socket', (s) => {\n debugLog('Replaying proxy buffer for failed request');\n // Replay the \"buffered\" Buffer onto the fake `socket`, since at\n // this point the HTTP module machinery has been hooked up for\n // the user.\n s.push(buffered);\n s.push(null);\n });\n\n return fakeSocket;\n }\n} HttpsProxyAgent.__initStatic();\n\nfunction resume(socket) {\n socket.resume();\n}\n\nfunction omit(\n obj,\n ...keys\n)\n\n {\n const ret = {}\n\n;\n let key;\n for (key in obj) {\n if (!keys.includes(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n}\n\nexport { HttpsProxyAgent };\n//# sourceMappingURL=index.js.map\n", - "import * as http from 'node:http';\nimport 'node:https';\n\n/**\n * This code was originally forked from https://github.com/TooTallNate/proxy-agents/tree/b133295fd16f6475578b6b15bd9b4e33ecb0d0b7\n * With the following LICENSE:\n *\n * (The MIT License)\n *\n * Copyright (c) 2013 Nathan Rajlich *\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:*\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.*\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n\nconst INTERNAL = Symbol('AgentBaseInternalState');\n\nclass Agent extends http.Agent {\n\n // Set by `http.Agent` - missing from `@types/node`\n\n constructor(opts) {\n super(opts);\n this[INTERNAL] = {};\n }\n\n /**\n * Determine whether this is an `http` or `https` request.\n */\n isSecureEndpoint(options) {\n if (options) {\n // First check the `secureEndpoint` property explicitly, since this\n // means that a parent `Agent` is \"passing through\" to this instance.\n if (typeof (options ).secureEndpoint === 'boolean') {\n return options.secureEndpoint;\n }\n\n // If no explicit `secure` endpoint, check if `protocol` property is\n // set. This will usually be the case since using a full string URL\n // or `URL` instance should be the most common usage.\n if (typeof options.protocol === 'string') {\n return options.protocol === 'https:';\n }\n }\n\n // Finally, if no `protocol` property was set, then fall back to\n // checking the stack trace of the current call stack, and try to\n // detect the \"https\" module.\n const { stack } = new Error();\n if (typeof stack !== 'string') return false;\n return stack.split('\\n').some(l => l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1);\n }\n\n createSocket(req, options, cb) {\n const connectOpts = {\n ...options,\n secureEndpoint: this.isSecureEndpoint(options),\n };\n Promise.resolve()\n .then(() => this.connect(req, connectOpts))\n .then(socket => {\n if (socket instanceof http.Agent) {\n // @ts-expect-error `addRequest()` isn't defined in `@types/node`\n return socket.addRequest(req, connectOpts);\n }\n this[INTERNAL].currentSocket = socket;\n // @ts-expect-error `createSocket()` isn't defined in `@types/node`\n super.createSocket(req, options, cb);\n }, cb);\n }\n\n createConnection() {\n const socket = this[INTERNAL].currentSocket;\n this[INTERNAL].currentSocket = undefined;\n if (!socket) {\n throw new Error('No socket was returned in the `connect()` function');\n }\n return socket;\n }\n\n get defaultPort() {\n return this[INTERNAL].defaultPort ?? (this.protocol === 'https:' ? 443 : 80);\n }\n\n set defaultPort(v) {\n if (this[INTERNAL]) {\n this[INTERNAL].defaultPort = v;\n }\n }\n\n get protocol() {\n return this[INTERNAL].protocol ?? (this.isSecureEndpoint() ? 'https:' : 'http:');\n }\n\n set protocol(v) {\n if (this[INTERNAL]) {\n this[INTERNAL].protocol = v;\n }\n }\n}\n\nexport { Agent };\n//# sourceMappingURL=base.js.map\n", - "import { debug } from '@sentry/core';\n\nfunction debugLog(...args) {\n debug.log('[https-proxy-agent:parse-proxy-response]', ...args);\n}\n\nfunction parseProxyResponse(socket) {\n return new Promise((resolve, reject) => {\n // we need to buffer any HTTP traffic that happens with the proxy before we get\n // the CONNECT response, so that if the response is anything other than an \"200\"\n // response code, then we can re-play the \"data\" events on the socket once the\n // HTTP parser is hooked up...\n let buffersLength = 0;\n const buffers = [];\n\n function read() {\n const b = socket.read();\n if (b) ondata(b);\n else socket.once('readable', read);\n }\n\n function cleanup() {\n socket.removeListener('end', onend);\n socket.removeListener('error', onerror);\n socket.removeListener('readable', read);\n }\n\n function onend() {\n cleanup();\n debugLog('onend');\n reject(new Error('Proxy connection ended before receiving CONNECT response'));\n }\n\n function onerror(err) {\n cleanup();\n debugLog('onerror %o', err);\n reject(err);\n }\n\n function ondata(b) {\n buffers.push(b);\n buffersLength += b.length;\n\n const buffered = Buffer.concat(buffers, buffersLength);\n const endOfHeaders = buffered.indexOf('\\r\\n\\r\\n');\n\n if (endOfHeaders === -1) {\n // keep buffering\n debugLog('have not received end of HTTP headers yet...');\n read();\n return;\n }\n\n const headerParts = buffered.subarray(0, endOfHeaders).toString('ascii').split('\\r\\n');\n const firstLine = headerParts.shift();\n if (!firstLine) {\n socket.destroy();\n return reject(new Error('No header received from proxy CONNECT response'));\n }\n const firstLineParts = firstLine.split(' ');\n const statusCode = +(firstLineParts[1] || 0);\n const statusText = firstLineParts.slice(2).join(' ');\n const headers = {};\n for (const header of headerParts) {\n if (!header) continue;\n const firstColon = header.indexOf(':');\n if (firstColon === -1) {\n socket.destroy();\n return reject(new Error(`Invalid header from proxy CONNECT response: \"${header}\"`));\n }\n const key = header.slice(0, firstColon).toLowerCase();\n const value = header.slice(firstColon + 1).trimStart();\n const current = headers[key];\n if (typeof current === 'string') {\n headers[key] = [current, value];\n } else if (Array.isArray(current)) {\n current.push(value);\n } else {\n headers[key] = value;\n }\n }\n debugLog('got proxy server response: %o %o', firstLine, headers);\n cleanup();\n resolve({\n connect: {\n statusCode,\n statusText,\n headers,\n },\n buffered,\n });\n }\n\n socket.on('error', onerror);\n socket.on('end', onend);\n\n read();\n });\n}\n\nexport { parseProxyResponse };\n//# sourceMappingURL=parse-proxy-response.js.map\n", - "import { envToBool } from '@sentry/core';\n\n/**\n * Parse the spotlight option with proper precedence:\n * - `false` or explicit string from options: use as-is\n * - `true`: enable spotlight, but prefer a custom URL from the env var if set\n * - `undefined`: defer entirely to the env var (bool or URL)\n */\nfunction getSpotlightConfig(optionsSpotlight) {\n if (optionsSpotlight === false) {\n return false;\n }\n\n if (typeof optionsSpotlight === 'string') {\n return optionsSpotlight;\n }\n\n // optionsSpotlight is true or undefined\n const envBool = envToBool(process.env.SENTRY_SPOTLIGHT, { strict: true });\n const envUrl = envBool === null && process.env.SENTRY_SPOTLIGHT ? process.env.SENTRY_SPOTLIGHT : undefined;\n\n return optionsSpotlight === true\n ? (envUrl ?? true) // true: use env URL if present, otherwise true\n : (envBool ?? envUrl); // undefined: use env var (bool or URL)\n}\n\nexport { getSpotlightConfig };\n//# sourceMappingURL=spotlight.js.map\n", - "import { posix, sep } from 'node:path';\nimport { dirname } from '@sentry/core';\n\n/** normalizes Windows paths */\nfunction normalizeWindowsPath(path) {\n return path\n .replace(/^[A-Z]:/, '') // remove Windows-style prefix\n .replace(/\\\\/g, '/'); // replace all `\\` instances with `/`\n}\n\n/** Creates a function that gets the module name from a filename */\nfunction createGetModuleFromFilename(\n basePath = process.argv[1] ? dirname(process.argv[1]) : process.cwd(),\n isWindows = sep === '\\\\',\n) {\n const normalizedBase = isWindows ? normalizeWindowsPath(basePath) : basePath;\n\n return (filename) => {\n if (!filename) {\n return;\n }\n\n const normalizedFilename = isWindows ? normalizeWindowsPath(filename) : filename;\n\n // eslint-disable-next-line prefer-const\n let { dir, base: file, ext } = posix.parse(normalizedFilename);\n\n if (ext === '.js' || ext === '.mjs' || ext === '.cjs') {\n file = file.slice(0, ext.length * -1);\n }\n\n // The file name might be URI-encoded which we want to decode to\n // the original file name.\n const decodedFile = decodeURIComponent(file);\n\n if (!dir) {\n // No dirname whatsoever\n dir = '.';\n }\n\n const n = dir.lastIndexOf('/node_modules');\n if (n > -1) {\n return `${dir.slice(n + 14).replace(/\\//g, '.')}:${decodedFile}`;\n }\n\n // Let's see if it's a part of the main module\n // To be a part of main module, it has to share the same base\n if (dir.startsWith(normalizedBase)) {\n const moduleName = dir.slice(normalizedBase.length + 1).replace(/\\//g, '.');\n return moduleName ? `${moduleName}:${decodedFile}` : decodedFile;\n }\n\n return decodedFile;\n };\n}\n\nexport { createGetModuleFromFilename };\n//# sourceMappingURL=module.js.map\n", - "import { createStackParser, nodeStackLineParser, GLOBAL_OBJ } from '@sentry/core';\nimport { createGetModuleFromFilename } from '../utils/module.js';\n\n/**\n * Returns a release dynamically from environment variables.\n */\n// eslint-disable-next-line complexity\nfunction getSentryRelease(fallback) {\n // Always read first as Sentry takes this as precedence\n if (process.env.SENTRY_RELEASE) {\n return process.env.SENTRY_RELEASE;\n }\n\n // This supports the variable that sentry-webpack-plugin injects\n if (GLOBAL_OBJ.SENTRY_RELEASE?.id) {\n return GLOBAL_OBJ.SENTRY_RELEASE.id;\n }\n\n // This list is in approximate alpha order, separated into 3 categories:\n // 1. Git providers\n // 2. CI providers with specific environment variables (has the provider name in the variable name)\n // 3. CI providers with generic environment variables (checked for last to prevent possible false positives)\n\n const possibleReleaseNameOfGitProvider =\n // GitHub Actions - https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables#default-environment-variables\n process.env['GITHUB_SHA'] ||\n // GitLab CI - https://docs.gitlab.com/ee/ci/variables/predefined_variables.html\n process.env['CI_MERGE_REQUEST_SOURCE_BRANCH_SHA'] ||\n process.env['CI_BUILD_REF'] ||\n process.env['CI_COMMIT_SHA'] ||\n // Bitbucket - https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/\n process.env['BITBUCKET_COMMIT'];\n\n const possibleReleaseNameOfCiProvidersWithSpecificEnvVar =\n // AppVeyor - https://www.appveyor.com/docs/environment-variables/\n process.env['APPVEYOR_PULL_REQUEST_HEAD_COMMIT'] ||\n process.env['APPVEYOR_REPO_COMMIT'] ||\n // AWS CodeBuild - https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html\n process.env['CODEBUILD_RESOLVED_SOURCE_VERSION'] ||\n // AWS Amplify - https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html\n process.env['AWS_COMMIT_ID'] ||\n // Azure Pipelines - https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml\n process.env['BUILD_SOURCEVERSION'] ||\n // Bitrise - https://devcenter.bitrise.io/builds/available-environment-variables/\n process.env['GIT_CLONE_COMMIT_HASH'] ||\n // Buddy CI - https://buddy.works/docs/pipelines/environment-variables#default-environment-variables\n process.env['BUDDY_EXECUTION_REVISION'] ||\n // Builtkite - https://buildkite.com/docs/pipelines/environment-variables\n process.env['BUILDKITE_COMMIT'] ||\n // CircleCI - https://circleci.com/docs/variables/\n process.env['CIRCLE_SHA1'] ||\n // Cirrus CI - https://cirrus-ci.org/guide/writing-tasks/#environment-variables\n process.env['CIRRUS_CHANGE_IN_REPO'] ||\n // Codefresh - https://codefresh.io/docs/docs/codefresh-yaml/variables/\n process.env['CF_REVISION'] ||\n // Codemagic - https://docs.codemagic.io/yaml-basic-configuration/environment-variables/\n process.env['CM_COMMIT'] ||\n // Cloudflare Pages - https://developers.cloudflare.com/pages/platform/build-configuration/#environment-variables\n process.env['CF_PAGES_COMMIT_SHA'] ||\n // Drone - https://docs.drone.io/pipeline/environment/reference/\n process.env['DRONE_COMMIT_SHA'] ||\n // Flightcontrol - https://www.flightcontrol.dev/docs/guides/flightcontrol/environment-variables#built-in-environment-variables\n process.env['FC_GIT_COMMIT_SHA'] ||\n // Heroku #1 https://devcenter.heroku.com/articles/heroku-ci\n process.env['HEROKU_TEST_RUN_COMMIT_VERSION'] ||\n // Heroku #2 https://devcenter.heroku.com/articles/dyno-metadata#dyno-metadata\n process.env['HEROKU_BUILD_COMMIT'] ||\n // Heroku #3 (deprecated by Heroku, kept for backward compatibility)\n process.env['HEROKU_SLUG_COMMIT'] ||\n // Railway - https://docs.railway.app/reference/variables#git-variables\n process.env['RAILWAY_GIT_COMMIT_SHA'] ||\n // Render - https://render.com/docs/environment-variables\n process.env['RENDER_GIT_COMMIT'] ||\n // Semaphore CI - https://docs.semaphoreci.com/ci-cd-environment/environment-variables\n process.env['SEMAPHORE_GIT_SHA'] ||\n // TravisCI - https://docs.travis-ci.com/user/environment-variables/#default-environment-variables\n process.env['TRAVIS_PULL_REQUEST_SHA'] ||\n // Vercel - https://vercel.com/docs/v2/build-step#system-environment-variables\n process.env['VERCEL_GIT_COMMIT_SHA'] ||\n process.env['VERCEL_GITHUB_COMMIT_SHA'] ||\n process.env['VERCEL_GITLAB_COMMIT_SHA'] ||\n process.env['VERCEL_BITBUCKET_COMMIT_SHA'] ||\n // Zeit (now known as Vercel)\n process.env['ZEIT_GITHUB_COMMIT_SHA'] ||\n process.env['ZEIT_GITLAB_COMMIT_SHA'] ||\n process.env['ZEIT_BITBUCKET_COMMIT_SHA'];\n\n const possibleReleaseNameOfCiProvidersWithGenericEnvVar =\n // CloudBees CodeShip - https://docs.cloudbees.com/docs/cloudbees-codeship/latest/pro-builds-and-configuration/environment-variables\n process.env['CI_COMMIT_ID'] ||\n // Coolify - https://coolify.io/docs/knowledge-base/environment-variables\n process.env['SOURCE_COMMIT'] ||\n // Heroku #3 https://devcenter.heroku.com/changelog-items/630\n process.env['SOURCE_VERSION'] ||\n // Jenkins - https://plugins.jenkins.io/git/#environment-variables\n process.env['GIT_COMMIT'] ||\n // Netlify - https://docs.netlify.com/configure-builds/environment-variables/#build-metadata\n process.env['COMMIT_REF'] ||\n // TeamCity - https://www.jetbrains.com/help/teamcity/predefined-build-parameters.html\n process.env['BUILD_VCS_NUMBER'] ||\n // Woodpecker CI - https://woodpecker-ci.org/docs/usage/environment\n process.env['CI_COMMIT_SHA'];\n\n return (\n possibleReleaseNameOfGitProvider ||\n possibleReleaseNameOfCiProvidersWithSpecificEnvVar ||\n possibleReleaseNameOfCiProvidersWithGenericEnvVar ||\n fallback\n );\n}\n\n/** Node.js stack parser */\nconst defaultStackParser = createStackParser(nodeStackLineParser(createGetModuleFromFilename()));\n\nexport { defaultStackParser, getSentryRelease };\n//# sourceMappingURL=api.js.map\n", - "import * as os from 'node:os';\nimport { trace } from '@opentelemetry/api';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { ServerRuntimeClient, applySdkMetadata, debug, _INTERNAL_flushLogsBuffer, SDK_VERSION, _INTERNAL_clearAiProviderSkips } from '@sentry/core';\nimport { getTraceContextForScope } from '@sentry/opentelemetry';\nimport { threadId, isMainThread } from 'worker_threads';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst DEFAULT_CLIENT_REPORT_FLUSH_INTERVAL_MS = 60000; // 60s was chosen arbitrarily\n\n/** A client for using Sentry with Node & OpenTelemetry. */\nclass NodeClient extends ServerRuntimeClient {\n\n constructor(options) {\n const serverName =\n options.includeServerName === false\n ? undefined\n : options.serverName || global.process.env.SENTRY_NAME || os.hostname();\n\n const clientOptions = {\n ...options,\n platform: 'node',\n // Use provided runtime or default to 'node' with current process version\n runtime: options.runtime || { name: 'node', version: global.process.version },\n serverName,\n };\n\n if (options.openTelemetryInstrumentations) {\n registerInstrumentations({\n instrumentations: options.openTelemetryInstrumentations,\n });\n }\n\n applySdkMetadata(clientOptions, 'node');\n\n debug.log(`Initializing Sentry: process: ${process.pid}, thread: ${isMainThread ? 'main' : `worker-${threadId}`}.`);\n\n super(clientOptions);\n\n if (this.getOptions().enableLogs) {\n this._logOnExitFlushListener = () => {\n _INTERNAL_flushLogsBuffer(this);\n };\n\n if (serverName) {\n this.on('beforeCaptureLog', log => {\n log.attributes = {\n ...log.attributes,\n 'server.address': serverName,\n };\n });\n }\n\n process.on('beforeExit', this._logOnExitFlushListener);\n }\n }\n\n /** Get the OTEL tracer. */\n get tracer() {\n if (this._tracer) {\n return this._tracer;\n }\n\n const name = '@sentry/node';\n const version = SDK_VERSION;\n const tracer = trace.getTracer(name, version);\n this._tracer = tracer;\n\n return tracer;\n }\n\n /** @inheritDoc */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async flush(timeout) {\n await this.traceProvider?.forceFlush();\n\n if (this.getOptions().sendClientReports) {\n this._flushOutcomes();\n }\n\n return super.flush(timeout);\n }\n\n /** @inheritDoc */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async close(timeout) {\n if (this._clientReportInterval) {\n clearInterval(this._clientReportInterval);\n }\n\n if (this._clientReportOnExitFlushListener) {\n process.off('beforeExit', this._clientReportOnExitFlushListener);\n }\n\n if (this._logOnExitFlushListener) {\n process.off('beforeExit', this._logOnExitFlushListener);\n }\n\n const allEventsSent = await super.close(timeout);\n if (this.traceProvider) {\n await this.traceProvider.shutdown();\n }\n\n return allEventsSent;\n }\n\n /**\n * Will start tracking client reports for this client.\n *\n * NOTICE: This method will create an interval that is periodically called and attach a `process.on('beforeExit')`\n * hook. To clean up these resources, call `.close()` when you no longer intend to use the client. Not doing so will\n * result in a memory leak.\n */\n // The reason client reports need to be manually activated with this method instead of just enabling them in a\n // constructor, is that if users periodically and unboundedly create new clients, we will create more and more\n // intervals and beforeExit listeners, thus leaking memory. In these situations, users are required to call\n // `client.close()` in order to dispose of the acquired resources.\n // We assume that calling this method in Sentry.init() is a sensible default, because calling Sentry.init() over and\n // over again would also result in memory leaks.\n // Note: We have experimented with using `FinalizationRegisty` to clear the interval when the client is garbage\n // collected, but it did not work, because the cleanup function never got called.\n startClientReportTracking() {\n const clientOptions = this.getOptions();\n if (clientOptions.sendClientReports) {\n this._clientReportOnExitFlushListener = () => {\n this._flushOutcomes();\n };\n\n this._clientReportInterval = setInterval(() => {\n DEBUG_BUILD && debug.log('Flushing client reports based on interval.');\n this._flushOutcomes();\n }, clientOptions.clientReportFlushInterval ?? DEFAULT_CLIENT_REPORT_FLUSH_INTERVAL_MS)\n // Unref is critical for not preventing the process from exiting because the interval is active.\n .unref();\n\n process.on('beforeExit', this._clientReportOnExitFlushListener);\n }\n }\n\n /** @inheritDoc */\n _setupIntegrations() {\n // Clear AI provider skip registrations before setting up integrations\n // This ensures a clean state between different client initializations\n // (e.g., when LangChain skips OpenAI in one client, but a subsequent client uses OpenAI standalone)\n _INTERNAL_clearAiProviderSkips();\n super._setupIntegrations();\n }\n\n /** Custom implementation for OTEL, so we can handle scope-span linking. */\n _getTraceInfoFromScope(\n scope,\n ) {\n if (!scope) {\n return [undefined, undefined];\n }\n\n return getTraceContextForScope(this, scope);\n }\n}\n\nexport { NodeClient };\n//# sourceMappingURL=client.js.map\n", - "import { GLOBAL_OBJ, debug } from '@sentry/core';\nimport { createAddHookMessageChannel } from 'import-in-the-middle';\nimport * as moduleModule from 'module';\nimport { supportsEsmLoaderHooks } from '../utils/detection.js';\n\n/**\n * Initialize the ESM loader - This method is private and not part of the public\n * API.\n *\n * @ignore\n */\nfunction initializeEsmLoader() {\n if (!supportsEsmLoaderHooks()) {\n return;\n }\n\n if (!GLOBAL_OBJ._sentryEsmLoaderHookRegistered) {\n GLOBAL_OBJ._sentryEsmLoaderHookRegistered = true;\n\n try {\n const { addHookMessagePort } = createAddHookMessageChannel();\n // @ts-expect-error register is available in these versions\n moduleModule.register('import-in-the-middle/hook.mjs', import.meta.url, {\n data: { addHookMessagePort, include: [] },\n transferList: [addHookMessagePort],\n });\n } catch (error) {\n debug.warn(\"Failed to register 'import-in-the-middle' hook\", error);\n }\n }\n}\n\nexport { initializeEsmLoader };\n//# sourceMappingURL=esmLoader.js.map\n", - "import { debug, consoleSandbox, getCurrentScope, applySdkMetadata, envToBool, stackParserFromStackParserOptions, getIntegrationsToSetup, propagationContextFromHeaders, inboundFiltersIntegration, functionToStringIntegration, linkedErrorsIntegration, requestDataIntegration, conversationIdIntegration, consoleIntegration, hasSpansEnabled } from '@sentry/core';\nimport { setOpenTelemetryContextAsyncContextStrategy, enhanceDscWithOpenTelemetryRootSpanName, setupEventContextTrace, openTelemetrySetupCheck } from '@sentry/opentelemetry';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { childProcessIntegration } from '../integrations/childProcess.js';\nimport { nodeContextIntegration } from '../integrations/context.js';\nimport { contextLinesIntegration } from '../integrations/contextlines.js';\nimport { httpIntegration } from '../integrations/http/index.js';\nimport { localVariablesIntegration } from '../integrations/local-variables/index.js';\nimport { modulesIntegration } from '../integrations/modules.js';\nimport { nativeNodeFetchIntegration } from '../integrations/node-fetch/index.js';\nimport { onUncaughtExceptionIntegration } from '../integrations/onuncaughtexception.js';\nimport { onUnhandledRejectionIntegration } from '../integrations/onunhandledrejection.js';\nimport { processSessionIntegration } from '../integrations/processSession.js';\nimport { INTEGRATION_NAME, spotlightIntegration } from '../integrations/spotlight.js';\nimport { systemErrorIntegration } from '../integrations/systemError.js';\nimport { makeNodeTransport } from '../transports/http.js';\nimport { isCjs } from '../utils/detection.js';\nimport { getSpotlightConfig } from '../utils/spotlight.js';\nimport { defaultStackParser, getSentryRelease } from './api.js';\nimport { NodeClient } from './client.js';\nimport { initializeEsmLoader } from './esmLoader.js';\n\n/**\n * Get default integrations for the Node-Core SDK.\n */\nfunction getDefaultIntegrations() {\n return [\n // Common\n // TODO(v11): Replace with `eventFiltersIntegration` once we remove the deprecated `inboundFiltersIntegration`\n // eslint-disable-next-line deprecation/deprecation\n inboundFiltersIntegration(),\n functionToStringIntegration(),\n linkedErrorsIntegration(),\n requestDataIntegration(),\n systemErrorIntegration(),\n conversationIdIntegration(),\n // Native Wrappers\n consoleIntegration(),\n httpIntegration(),\n nativeNodeFetchIntegration(),\n // Global Handlers\n onUncaughtExceptionIntegration(),\n onUnhandledRejectionIntegration(),\n // Event Info\n contextLinesIntegration(),\n localVariablesIntegration(),\n nodeContextIntegration(),\n childProcessIntegration(),\n processSessionIntegration(),\n modulesIntegration(),\n ];\n}\n\n/**\n * Initialize Sentry for Node.\n */\nfunction init(options = {}) {\n return _init(options, getDefaultIntegrations);\n}\n\n/**\n * Initialize Sentry for Node, without any integrations added by default.\n */\nfunction initWithoutDefaultIntegrations(options = {}) {\n return _init(options, () => []);\n}\n\n/**\n * Initialize Sentry for Node, without performance instrumentation.\n */\nfunction _init(\n _options = {},\n getDefaultIntegrationsImpl,\n) {\n const options = getClientOptions(_options, getDefaultIntegrationsImpl);\n\n if (options.debug === true) {\n if (DEBUG_BUILD) {\n debug.enable();\n } else {\n // use `console.warn` rather than `debug.warn` since by non-debug bundles have all `debug.x` statements stripped\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n });\n }\n }\n\n if (options.registerEsmLoaderHooks !== false) {\n initializeEsmLoader();\n }\n\n setOpenTelemetryContextAsyncContextStrategy();\n\n const scope = getCurrentScope();\n scope.update(options.initialScope);\n\n if (options.spotlight && !options.integrations.some(({ name }) => name === INTEGRATION_NAME)) {\n options.integrations.push(\n spotlightIntegration({\n sidecarUrl: typeof options.spotlight === 'string' ? options.spotlight : undefined,\n }),\n );\n }\n\n applySdkMetadata(options, 'node-core');\n\n const client = new NodeClient(options);\n // The client is on the current scope, from where it generally is inherited\n getCurrentScope().setClient(client);\n\n client.init();\n\n debug.log(`SDK initialized from ${isCjs() ? 'CommonJS' : 'ESM'}`);\n\n client.startClientReportTracking();\n\n updateScopeFromEnvVariables();\n\n enhanceDscWithOpenTelemetryRootSpanName(client);\n setupEventContextTrace(client);\n\n // Ensure we flush events when vercel functions are ended\n // See: https://vercel.com/docs/functions/functions-api-reference#sigterm-signal\n if (process.env.VERCEL) {\n process.on('SIGTERM', async () => {\n // We have 500ms for processing here, so we try to make sure to have enough time to send the events\n await client.flush(200);\n });\n }\n\n return client;\n}\n\n/**\n * Validate that your OpenTelemetry setup is correct.\n */\nfunction validateOpenTelemetrySetup() {\n if (!DEBUG_BUILD) {\n return;\n }\n\n const setup = openTelemetrySetupCheck();\n\n const required = ['SentryContextManager', 'SentryPropagator'];\n\n if (hasSpansEnabled()) {\n required.push('SentrySpanProcessor');\n }\n\n for (const k of required) {\n if (!setup.includes(k)) {\n debug.error(\n `You have to set up the ${k}. Without this, the OpenTelemetry & Sentry integration will not work properly.`,\n );\n }\n }\n\n if (!setup.includes('SentrySampler')) {\n debug.warn(\n 'You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.',\n );\n }\n}\n\nfunction getClientOptions(\n options,\n getDefaultIntegrationsImpl,\n) {\n const release = getRelease(options.release);\n\n const spotlight = getSpotlightConfig(options.spotlight);\n\n const tracesSampleRate = getTracesSampleRate(options.tracesSampleRate);\n\n const mergedOptions = {\n ...options,\n dsn: options.dsn ?? process.env.SENTRY_DSN,\n environment: options.environment ?? process.env.SENTRY_ENVIRONMENT,\n sendClientReports: options.sendClientReports ?? true,\n transport: options.transport ?? makeNodeTransport,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n release,\n tracesSampleRate,\n spotlight,\n debug: envToBool(options.debug ?? process.env.SENTRY_DEBUG),\n };\n\n const integrations = options.integrations;\n const defaultIntegrations = options.defaultIntegrations ?? getDefaultIntegrationsImpl(mergedOptions);\n\n return {\n ...mergedOptions,\n integrations: getIntegrationsToSetup({\n defaultIntegrations,\n integrations,\n }),\n };\n}\n\nfunction getRelease(release) {\n if (release !== undefined) {\n return release;\n }\n\n const detectedRelease = getSentryRelease();\n if (detectedRelease !== undefined) {\n return detectedRelease;\n }\n\n return undefined;\n}\n\nfunction getTracesSampleRate(tracesSampleRate) {\n if (tracesSampleRate !== undefined) {\n return tracesSampleRate;\n }\n\n const sampleRateFromEnv = process.env.SENTRY_TRACES_SAMPLE_RATE;\n if (!sampleRateFromEnv) {\n return undefined;\n }\n\n const parsed = parseFloat(sampleRateFromEnv);\n return isFinite(parsed) ? parsed : undefined;\n}\n\n/**\n * Update scope and propagation context based on environmental variables.\n *\n * See https://github.com/getsentry/rfcs/blob/main/text/0071-continue-trace-over-process-boundaries.md\n * for more details.\n */\nfunction updateScopeFromEnvVariables() {\n if (envToBool(process.env.SENTRY_USE_ENVIRONMENT) !== false) {\n const sentryTraceEnv = process.env.SENTRY_TRACE;\n const baggageEnv = process.env.SENTRY_BAGGAGE;\n const propagationContext = propagationContextFromHeaders(sentryTraceEnv, baggageEnv);\n getCurrentScope().setPropagationContext(propagationContext);\n }\n}\n\nexport { getDefaultIntegrations, init, initWithoutDefaultIntegrations, validateOpenTelemetrySetup };\n//# sourceMappingURL=index.js.map\n", - "import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\n\n/** Adds an origin to an OTEL Span. */\nfunction addOriginToSpan(span, origin) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, origin);\n}\n\nexport { addOriginToSpan };\n//# sourceMappingURL=addOriginToSpan.js.map\n", - "/** Build a full URL from request options or a ClientRequest. */\nfunction getRequestUrl(requestOptions\n\n) {\n const protocol = requestOptions.protocol || '';\n const hostname = requestOptions.hostname || requestOptions.host || '';\n // Don't log standard :80 (http) and :443 (https) ports to reduce the noise\n // Also don't add port if the hostname already includes a port\n const port =\n !requestOptions.port || requestOptions.port === 80 || requestOptions.port === 443 || /^(.*):(\\d+)$/.test(hostname)\n ? ''\n : `:${requestOptions.port}`;\n const path = requestOptions.path ? requestOptions.path : '/';\n return `${protocol}//${hostname}${port}${path}`;\n}\n\nexport { getRequestUrl };\n//# sourceMappingURL=getRequestUrl.js.map\n", - "import { UndiciInstrumentation } from '@opentelemetry/instrumentation-undici';\nimport { defineIntegration, stripDataUrlContent, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_URL_FULL, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getClient, hasSpansEnabled } from '@sentry/core';\nimport { generateInstrumentOnce, SentryNodeFetchInstrumentation } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'NodeFetch';\n\nconst instrumentOtelNodeFetch = generateInstrumentOnce(\n INTEGRATION_NAME,\n UndiciInstrumentation,\n (options) => {\n return _getConfigWithDefaults(options);\n },\n);\n\nconst instrumentSentryNodeFetch = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n SentryNodeFetchInstrumentation,\n (options) => {\n return options;\n },\n);\n\nconst _nativeNodeFetchIntegration = ((options = {}) => {\n return {\n name: 'NodeFetch',\n setupOnce() {\n const instrumentSpans = _shouldInstrumentSpans(options, getClient()?.getOptions());\n\n // This is the \"regular\" OTEL instrumentation that emits spans\n if (instrumentSpans) {\n instrumentOtelNodeFetch(options);\n }\n\n // This is the Sentry-specific instrumentation that creates breadcrumbs & propagates traces\n // This must be registered after the OTEL one, to ensure that the core trace propagation logic takes presedence\n // Otherwise, the sentry-trace header may be set multiple times\n instrumentSentryNodeFetch(options);\n },\n };\n}) ;\n\nconst nativeNodeFetchIntegration = defineIntegration(_nativeNodeFetchIntegration);\n\n// Matching the behavior of the base instrumentation\nfunction getAbsoluteUrl(origin, path = '/') {\n const url = `${origin}`;\n\n if (url.endsWith('/') && path.startsWith('/')) {\n return `${url}${path.slice(1)}`;\n }\n\n if (!url.endsWith('/') && !path.startsWith('/')) {\n return `${url}/${path}`;\n }\n\n return `${url}${path}`;\n}\n\nfunction _shouldInstrumentSpans(options, clientOptions = {}) {\n // If `spans` is passed in, it takes precedence\n // Else, we by default emit spans, unless `skipOpenTelemetrySetup` is set to `true` or spans are not enabled\n return typeof options.spans === 'boolean'\n ? options.spans\n : !clientOptions.skipOpenTelemetrySetup && hasSpansEnabled(clientOptions);\n}\n\n/** Exported only for tests. */\nfunction _getConfigWithDefaults(options = {}) {\n const instrumentationConfig = {\n requireParentforSpans: false,\n ignoreRequestHook: request => {\n const url = getAbsoluteUrl(request.origin, request.path);\n const _ignoreOutgoingRequests = options.ignoreOutgoingRequests;\n const shouldIgnore = _ignoreOutgoingRequests && url && _ignoreOutgoingRequests(url);\n\n return !!shouldIgnore;\n },\n startSpanHook: request => {\n const url = getAbsoluteUrl(request.origin, request.path);\n\n // Sanitize data URLs to prevent long base64 strings in span attributes\n if (url.startsWith('data:')) {\n const sanitizedUrl = stripDataUrlContent(url);\n return {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.node_fetch',\n 'http.url': sanitizedUrl,\n [SEMANTIC_ATTRIBUTE_URL_FULL]: sanitizedUrl,\n [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: `${request.method || 'GET'} ${sanitizedUrl}`,\n };\n }\n\n return {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.node_fetch',\n };\n },\n requestHook: options.requestHook,\n responseHook: options.responseHook,\n headersToSpanAttributes: options.headersToSpanAttributes,\n } ;\n\n return instrumentationConfig;\n}\n\nexport { _getConfigWithDefaults, nativeNodeFetchIntegration };\n//# sourceMappingURL=node-fetch.js.map\n", - "import { ExpressInstrumentation } from '@opentelemetry/instrumentation-express';\nimport { defineIntegration, getIsolationScope, getDefaultIsolationScope, debug, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, httpRequestToRequestData, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan, ensureIsWrapped } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\n\nconst INTEGRATION_NAME = 'Express';\n\nfunction requestHook(span) {\n addOriginToSpan(span, 'auto.http.otel.express');\n\n const attributes = spanToJSON(span).data;\n // this is one of: middleware, request_handler, router\n const type = attributes['express.type'];\n\n if (type) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, `${type}.express`);\n }\n\n // Also update the name, we don't need to \"middleware - \" prefix\n const name = attributes['express.name'];\n if (typeof name === 'string') {\n span.updateName(name);\n }\n}\n\nfunction spanNameHook(info, defaultName) {\n if (getIsolationScope() === getDefaultIsolationScope()) {\n DEBUG_BUILD && debug.warn('Isolation scope is still default isolation scope - skipping setting transactionName');\n return defaultName;\n }\n if (info.layerType === 'request_handler') {\n // type cast b/c Otel unfortunately types info.request as any :(\n const req = info.request ;\n const method = req.method ? req.method.toUpperCase() : 'GET';\n getIsolationScope().setTransactionName(`${method} ${info.route}`);\n }\n return defaultName;\n}\n\nconst instrumentExpress = generateInstrumentOnce(\n INTEGRATION_NAME,\n () =>\n new ExpressInstrumentation({\n requestHook: span => requestHook(span),\n spanNameHook: (info, defaultName) => spanNameHook(info, defaultName),\n }),\n);\n\nconst _expressIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentExpress();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for [Express](https://expressjs.com/).\n *\n * If you also want to capture errors, you need to call `setupExpressErrorHandler(app)` after you set up your Express server.\n *\n * For more information, see the [express documentation](https://docs.sentry.io/platforms/javascript/guides/express/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.expressIntegration()],\n * })\n * ```\n */\nconst expressIntegration = defineIntegration(_expressIntegration);\n\n/**\n * An Express-compatible error handler.\n */\nfunction expressErrorHandler(options) {\n return function sentryErrorMiddleware(\n error,\n request,\n res,\n next,\n ) {\n const normalizedRequest = httpRequestToRequestData(request);\n // Ensure we use the express-enhanced request here, instead of the plain HTTP one\n // When an error happens, the `expressRequestHandler` middleware does not run, so we set it here too\n getIsolationScope().setSDKProcessingMetadata({ normalizedRequest });\n\n const shouldHandleError = options?.shouldHandleError || defaultShouldHandleError;\n\n if (shouldHandleError(error)) {\n const eventId = captureException(error, { mechanism: { type: 'auto.middleware.express', handled: false } });\n (res ).sentry = eventId;\n }\n\n next(error);\n };\n}\n\nfunction expressRequestHandler() {\n return function sentryRequestMiddleware(\n request,\n _res,\n next,\n ) {\n const normalizedRequest = httpRequestToRequestData(request);\n // Ensure we use the express-enhanced request here, instead of the plain HTTP one\n getIsolationScope().setSDKProcessingMetadata({ normalizedRequest });\n\n next();\n };\n}\n\n/**\n * Add an Express error handler to capture errors to Sentry.\n *\n * The error handler must be before any other middleware and after all controllers.\n *\n * @param app The Express instances\n * @param options {ExpressHandlerOptions} Configuration options for the handler\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const express = require(\"express\");\n *\n * const app = express();\n *\n * // Add your routes, etc.\n *\n * // Add this after all routes,\n * // but before any and other error-handling middlewares are defined\n * Sentry.setupExpressErrorHandler(app);\n *\n * app.listen(3000);\n * ```\n */\nfunction setupExpressErrorHandler(\n app,\n options,\n) {\n app.use(expressRequestHandler());\n app.use(expressErrorHandler(options));\n ensureIsWrapped(app.use, 'express');\n}\n\nfunction getStatusCodeFromResponse(error) {\n const statusCode = error.status || error.statusCode || error.status_code || error.output?.statusCode;\n return statusCode ? parseInt(statusCode , 10) : 500;\n}\n\n/** Returns true if response code is internal server error */\nfunction defaultShouldHandleError(error) {\n const status = getStatusCodeFromResponse(error);\n return status >= 500;\n}\n\nexport { expressErrorHandler, expressIntegration, instrumentExpress, setupExpressErrorHandler };\n//# sourceMappingURL=express.js.map\n", - "/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n", - "import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport { FastifyOtelInstrumentation } from '@fastify/otel';\nimport { debug, defineIntegration, getClient, getIsolationScope, captureException, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../../debug-build.js';\nimport { FastifyInstrumentationV3 } from './v3/instrumentation.js';\n\n/**\n * Options for the Fastify integration.\n *\n * `shouldHandleError` - Callback method deciding whether error should be captured and sent to Sentry\n * This is used on Fastify v5 where Sentry handles errors in the diagnostics channel.\n * Fastify v3 and v4 use `setupFastifyErrorHandler` instead.\n *\n * @example\n *\n * ```javascript\n * Sentry.init({\n * integrations: [\n * Sentry.fastifyIntegration({\n * shouldHandleError(_error, _request, reply) {\n * return reply.statusCode >= 500;\n * },\n * });\n * },\n * });\n * ```\n *\n */\n\nconst INTEGRATION_NAME = 'Fastify';\n\nconst instrumentFastifyV3 = generateInstrumentOnce(\n `${INTEGRATION_NAME}.v3`,\n () => new FastifyInstrumentationV3(),\n);\n\nfunction getFastifyIntegration() {\n const client = getClient();\n if (!client) {\n return undefined;\n } else {\n return client.getIntegrationByName(INTEGRATION_NAME);\n }\n}\n\nfunction handleFastifyError(\n\n error,\n request,\n reply,\n handlerOrigin,\n) {\n const shouldHandleError = getFastifyIntegration()?.getShouldHandleError() || defaultShouldHandleError;\n // Diagnostics channel runs before the onError hook, so we can use it to check if the handler was already registered\n if (handlerOrigin === 'diagnostics-channel') {\n this.diagnosticsChannelExists = true;\n }\n\n if (this.diagnosticsChannelExists && handlerOrigin === 'onError-hook') {\n DEBUG_BUILD &&\n debug.warn(\n 'Fastify error handler was already registered via diagnostics channel.',\n 'You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.',\n );\n\n // If the diagnostics channel already exists, we don't need to handle the error again\n return;\n }\n\n if (shouldHandleError(error, request, reply)) {\n captureException(error, { mechanism: { handled: false, type: 'auto.function.fastify' } });\n }\n}\n\nconst instrumentFastify = generateInstrumentOnce(`${INTEGRATION_NAME}.v5`, () => {\n const fastifyOtelInstrumentationInstance = new FastifyOtelInstrumentation();\n const plugin = fastifyOtelInstrumentationInstance.plugin();\n\n // This message handler works for Fastify versions 3, 4 and 5\n diagnosticsChannel.subscribe('fastify.initialization', message => {\n const fastifyInstance = (message ).fastify;\n\n fastifyInstance?.register(plugin).after(err => {\n if (err) {\n DEBUG_BUILD && debug.error('Failed to setup Fastify instrumentation', err);\n } else {\n instrumentClient();\n\n if (fastifyInstance) {\n instrumentOnRequest(fastifyInstance);\n }\n }\n });\n });\n\n // This diagnostics channel only works on Fastify version 5\n // For versions 3 and 4, we use `setupFastifyErrorHandler` instead\n diagnosticsChannel.subscribe('tracing:fastify.request.handler:error', message => {\n const { error, request, reply } = message\n\n;\n\n handleFastifyError.call(handleFastifyError, error, request, reply, 'diagnostics-channel');\n });\n\n // Returning this as Instrumentation to avoid leaking @fastify/otel types into the public API\n return fastifyOtelInstrumentationInstance ;\n});\n\nconst _fastifyIntegration = (({ shouldHandleError }) => {\n let _shouldHandleError;\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n _shouldHandleError = shouldHandleError || defaultShouldHandleError;\n\n instrumentFastifyV3();\n instrumentFastify();\n },\n getShouldHandleError() {\n return _shouldHandleError;\n },\n setShouldHandleError(fn) {\n _shouldHandleError = fn;\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for [Fastify](https://fastify.dev/).\n *\n * If you also want to capture errors, you need to call `setupFastifyErrorHandler(app)` after you set up your Fastify server.\n *\n * For more information, see the [fastify documentation](https://docs.sentry.io/platforms/javascript/guides/fastify/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.fastifyIntegration()],\n * })\n * ```\n */\nconst fastifyIntegration = defineIntegration((options = {}) =>\n _fastifyIntegration(options),\n);\n\n/**\n * Default function to determine if an error should be sent to Sentry\n *\n * 3xx and 4xx errors are not sent by default.\n */\nfunction defaultShouldHandleError(_error, _request, reply) {\n const statusCode = reply.statusCode;\n // 3xx and 4xx errors are not sent by default.\n return statusCode >= 500 || statusCode <= 299;\n}\n\n/**\n * Add an Fastify error handler to capture errors to Sentry.\n *\n * @param fastify The Fastify instance to which to add the error handler\n * @param options Configuration options for the handler\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const Fastify = require(\"fastify\");\n *\n * const app = Fastify();\n *\n * Sentry.setupFastifyErrorHandler(app);\n *\n * // Add your routes, etc.\n *\n * app.listen({ port: 3000 });\n * ```\n */\nfunction setupFastifyErrorHandler(fastify, options) {\n if (options?.shouldHandleError) {\n getFastifyIntegration()?.setShouldHandleError(options.shouldHandleError);\n }\n\n const plugin = Object.assign(\n function (fastify, _options, done) {\n fastify.addHook('onError', async (request, reply, error) => {\n handleFastifyError.call(handleFastifyError, error, request, reply, 'onError-hook');\n });\n done();\n },\n {\n [Symbol.for('skip-override')]: true,\n [Symbol.for('fastify.display-name')]: 'sentry-fastify-error-handler',\n },\n );\n\n fastify.register(plugin);\n}\n\nfunction addFastifySpanAttributes(span) {\n const spanJSON = spanToJSON(span);\n const spanName = spanJSON.description;\n const attributes = spanJSON.data;\n\n const type = attributes['fastify.type'];\n\n const isHook = type === 'hook';\n const isHandler = type === spanName?.startsWith('handler -');\n // In @fastify/otel `request-handler` is separated by dash, not underscore\n const isRequestHandler = spanName === 'request' || type === 'request-handler';\n\n // If this is already set, or we have no fastify span, no need to process again...\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || (!isHandler && !isRequestHandler && !isHook)) {\n return;\n }\n\n const opPrefix = isHook ? 'hook' : isHandler ? 'middleware' : isRequestHandler ? 'request_handler' : '';\n\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.fastify',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${opPrefix}.fastify`,\n });\n\n const attrName = attributes['fastify.name'] || attributes['plugin.name'] || attributes['hook.name'];\n if (typeof attrName === 'string') {\n // Try removing `fastify -> ` and `@fastify/otel -> ` prefixes\n // This is a bit of a hack, and not always working for all spans\n // But it's the best we can do without a proper API\n const updatedName = attrName.replace(/^fastify -> /, '').replace(/^@fastify\\/otel -> /, '');\n\n span.updateName(updatedName);\n }\n}\n\nfunction instrumentClient() {\n const client = getClient();\n if (client) {\n client.on('spanStart', (span) => {\n addFastifySpanAttributes(span);\n });\n }\n}\n\nfunction instrumentOnRequest(fastify) {\n fastify.addHook('onRequest', async (request, _reply) => {\n if (request.opentelemetry) {\n const { span } = request.opentelemetry();\n\n if (span) {\n addFastifySpanAttributes(span);\n }\n }\n\n const routeName = request.routeOptions?.url;\n const method = request.method || 'GET';\n\n getIsolationScope().setTransactionName(`${method} ${routeName}`);\n });\n}\n\nexport { fastifyIntegration, instrumentFastify, instrumentFastifyV3, setupFastifyErrorHandler };\n//# sourceMappingURL=index.js.map\n", - "import { context, trace, SpanStatusCode } from '@opentelemetry/api';\nimport { getRPCMetadata, RPCType } from '@opentelemetry/core';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\nimport { SEMATTRS_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport { getIsolationScope, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getClient } from '@sentry/core';\nimport { FastifyNames, AttributeNames, FastifyTypes } from './enums/AttributeNames.js';\nimport { startSpan, endSpan, safeExecuteInTheMiddleMaybePromise } from './utils.js';\n\n// Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/blob/407f61591ba69a39a6908264379d4d98a48dbec4/plugins/node/opentelemetry-instrumentation-fastify/src/instrumentation.ts\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-this-alias */\n/* eslint-disable jsdoc/require-jsdoc */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/** @knipignore */\n\nconst PACKAGE_VERSION = '0.1.0';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-fastify-v3';\nconst ANONYMOUS_NAME = 'anonymous';\n\n// The instrumentation creates a span for invocations of lifecycle hook handlers\n// that take `(request, reply, ...[, done])` arguments. Currently this is all\n// lifecycle hooks except `onRequestAbort`.\n// https://fastify.dev/docs/latest/Reference/Hooks\nconst hooksNamesToWrap = new Set([\n 'onTimeout',\n 'onRequest',\n 'preParsing',\n 'preValidation',\n 'preSerialization',\n 'preHandler',\n 'onSend',\n 'onResponse',\n 'onError',\n]);\n\n/**\n * Fastify instrumentation for OpenTelemetry\n */\nclass FastifyInstrumentationV3 extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, PACKAGE_VERSION, config);\n }\n\n init() {\n return [\n new InstrumentationNodeModuleDefinition('fastify', ['>=3.0.0 <4'], moduleExports => {\n return this._patchConstructor(moduleExports);\n }),\n ];\n }\n\n _hookOnRequest() {\n const instrumentation = this;\n\n return function onRequest(request, reply, done) {\n if (!instrumentation.isEnabled()) {\n return done();\n }\n instrumentation._wrap(reply, 'send', instrumentation._patchSend());\n\n const anyRequest = request ;\n\n const rpcMetadata = getRPCMetadata(context.active());\n const routeName = anyRequest.routeOptions\n ? anyRequest.routeOptions.url // since fastify@4.10.0\n : request.routerPath;\n if (routeName && rpcMetadata?.type === RPCType.HTTP) {\n rpcMetadata.route = routeName;\n }\n\n const method = request.method || 'GET';\n\n getIsolationScope().setTransactionName(`${method} ${routeName}`);\n done();\n };\n }\n\n _wrapHandler(\n pluginName,\n hookName,\n original,\n syncFunctionWithDone,\n ) {\n const instrumentation = this;\n this._diag.debug('Patching fastify route.handler function');\n\n return function ( ...args) {\n if (!instrumentation.isEnabled()) {\n return original.apply(this, args);\n }\n\n const name = original.name || pluginName || ANONYMOUS_NAME;\n const spanName = `${FastifyNames.MIDDLEWARE} - ${name}`;\n\n const reply = args[1] ;\n\n const span = startSpan(reply, instrumentation.tracer, spanName, {\n [AttributeNames.FASTIFY_TYPE]: FastifyTypes.MIDDLEWARE,\n [AttributeNames.PLUGIN_NAME]: pluginName,\n [AttributeNames.HOOK_NAME]: hookName,\n });\n\n const origDone = syncFunctionWithDone && (args[args.length - 1] );\n if (origDone) {\n args[args.length - 1] = function (...doneArgs) {\n endSpan(reply);\n origDone.apply(this, doneArgs);\n };\n }\n\n return context.with(trace.setSpan(context.active(), span), () => {\n return safeExecuteInTheMiddleMaybePromise(\n () => {\n return original.apply(this, args);\n },\n err => {\n if (err instanceof Error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: err.message,\n });\n span.recordException(err);\n }\n // async hooks should end the span as soon as the promise is resolved\n if (!syncFunctionWithDone) {\n endSpan(reply);\n }\n },\n );\n });\n };\n }\n\n _wrapAddHook() {\n const instrumentation = this;\n this._diag.debug('Patching fastify server.addHook function');\n\n // biome-ignore lint/complexity/useArrowFunction: \n return function (original) {\n return function wrappedAddHook( ...args) {\n const name = args[0] ;\n const handler = args[1] ;\n const pluginName = this.pluginName;\n if (!hooksNamesToWrap.has(name)) {\n return original.apply(this, args);\n }\n\n const syncFunctionWithDone =\n typeof args[args.length - 1] === 'function' && handler.constructor.name !== 'AsyncFunction';\n\n return original.apply(this, [\n name,\n instrumentation._wrapHandler(pluginName, name, handler, syncFunctionWithDone),\n ] );\n };\n };\n }\n\n _patchConstructor(moduleExports\n\n) {\n const instrumentation = this;\n\n function fastify( ...args) {\n const app = moduleExports.fastify.apply(this, args);\n app.addHook('onRequest', instrumentation._hookOnRequest());\n app.addHook('preHandler', instrumentation._hookPreHandler());\n\n instrumentClient();\n\n instrumentation._wrap(app, 'addHook', instrumentation._wrapAddHook());\n\n return app;\n }\n\n if (moduleExports.errorCodes !== undefined) {\n fastify.errorCodes = moduleExports.errorCodes;\n }\n fastify.fastify = fastify;\n fastify.default = fastify;\n return fastify;\n }\n\n _patchSend() {\n const instrumentation = this;\n this._diag.debug('Patching fastify reply.send function');\n\n return function patchSend(original) {\n return function send( ...args) {\n const maybeError = args[0];\n\n if (!instrumentation.isEnabled()) {\n return original.apply(this, args);\n }\n\n return safeExecuteInTheMiddle(\n () => {\n return original.apply(this, args);\n },\n err => {\n if (!err && maybeError instanceof Error) {\n // eslint-disable-next-line no-param-reassign\n err = maybeError;\n }\n endSpan(this, err);\n },\n );\n };\n };\n }\n\n _hookPreHandler() {\n const instrumentation = this;\n this._diag.debug('Patching fastify preHandler function');\n\n return function preHandler( request, reply, done) {\n if (!instrumentation.isEnabled()) {\n return done();\n }\n const anyRequest = request ;\n\n const handler = anyRequest.routeOptions?.handler || anyRequest.context?.handler;\n const handlerName = handler?.name.startsWith('bound ') ? handler.name.substring(6) : handler?.name;\n const spanName = `${FastifyNames.REQUEST_HANDLER} - ${handlerName || this.pluginName || ANONYMOUS_NAME}`;\n\n const spanAttributes = {\n [AttributeNames.PLUGIN_NAME]: this.pluginName,\n [AttributeNames.FASTIFY_TYPE]: FastifyTypes.REQUEST_HANDLER,\n // eslint-disable-next-line deprecation/deprecation\n [SEMATTRS_HTTP_ROUTE]: anyRequest.routeOptions\n ? anyRequest.routeOptions.url // since fastify@4.10.0\n : request.routerPath,\n };\n if (handlerName) {\n spanAttributes[AttributeNames.FASTIFY_NAME] = handlerName;\n }\n const span = startSpan(reply, instrumentation.tracer, spanName, spanAttributes);\n\n addFastifyV3SpanAttributes(span);\n\n const { requestHook } = instrumentation.getConfig();\n if (requestHook) {\n safeExecuteInTheMiddle(\n () => requestHook(span, { request }),\n e => {\n if (e) {\n instrumentation._diag.error('request hook failed', e);\n }\n },\n true,\n );\n }\n\n return context.with(trace.setSpan(context.active(), span), () => {\n done();\n });\n };\n }\n}\n\nfunction instrumentClient() {\n const client = getClient();\n if (client) {\n client.on('spanStart', (span) => {\n addFastifyV3SpanAttributes(span);\n });\n }\n}\n\nfunction addFastifyV3SpanAttributes(span) {\n const attributes = spanToJSON(span).data;\n\n // this is one of: middleware, request_handler\n const type = attributes['fastify.type'];\n\n // If this is already set, or we have no fastify span, no need to process again...\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n return;\n }\n\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.fastify',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.fastify`,\n });\n\n // Also update the name, we don't need to \"middleware - \" prefix\n const name = attributes['fastify.name'] || attributes['plugin.name'] || attributes['hook.name'];\n if (typeof name === 'string') {\n // Try removing `fastify -> ` and `@fastify/otel -> ` prefixes\n // This is a bit of a hack, and not always working for all spans\n // But it's the best we can do without a proper API\n const updatedName = name.replace(/^fastify -> /, '').replace(/^@fastify\\/otel -> /, '');\n\n span.updateName(updatedName);\n }\n}\n\nexport { FastifyInstrumentationV3 };\n//# sourceMappingURL=instrumentation.js.map\n", - "// Vendored from https://github.com/open-telemetry/opentelemetry-js-contrib/blob/407f61591ba69a39a6908264379d4d98a48dbec4/plugins/node/opentelemetry-instrumentation-fastify/src/enums/AttributeNames.ts\n//\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar AttributeNames; (function (AttributeNames) {\n const FASTIFY_NAME = 'fastify.name'; AttributeNames[\"FASTIFY_NAME\"] = FASTIFY_NAME;\n const FASTIFY_TYPE = 'fastify.type'; AttributeNames[\"FASTIFY_TYPE\"] = FASTIFY_TYPE;\n const HOOK_NAME = 'hook.name'; AttributeNames[\"HOOK_NAME\"] = HOOK_NAME;\n const PLUGIN_NAME = 'plugin.name'; AttributeNames[\"PLUGIN_NAME\"] = PLUGIN_NAME;\n})(AttributeNames || (AttributeNames = {}));\n\nvar FastifyTypes; (function (FastifyTypes) {\n const MIDDLEWARE = 'middleware'; FastifyTypes[\"MIDDLEWARE\"] = MIDDLEWARE;\n const REQUEST_HANDLER = 'request_handler'; FastifyTypes[\"REQUEST_HANDLER\"] = REQUEST_HANDLER;\n})(FastifyTypes || (FastifyTypes = {}));\n\nvar FastifyNames; (function (FastifyNames) {\n const MIDDLEWARE = 'middleware'; FastifyNames[\"MIDDLEWARE\"] = MIDDLEWARE;\n const REQUEST_HANDLER = 'request handler'; FastifyNames[\"REQUEST_HANDLER\"] = REQUEST_HANDLER;\n})(FastifyNames || (FastifyNames = {}));\n\nexport { AttributeNames, FastifyNames, FastifyTypes };\n//# sourceMappingURL=AttributeNames.js.map\n", - "import { SpanStatusCode } from '@opentelemetry/api';\nimport { spanRequestSymbol } from './constants.js';\n\n// Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/blob/407f61591ba69a39a6908264379d4d98a48dbec4/plugins/node/opentelemetry-instrumentation-fastify/src/utils.ts\n/* eslint-disable jsdoc/require-jsdoc */\n/* eslint-disable @typescript-eslint/no-dynamic-delete */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * Starts Span\n * @param reply - reply function\n * @param tracer - tracer\n * @param spanName - span name\n * @param spanAttributes - span attributes\n */\nfunction startSpan(\n reply,\n tracer,\n spanName,\n spanAttributes = {},\n) {\n const span = tracer.startSpan(spanName, { attributes: spanAttributes });\n\n const spans = reply[spanRequestSymbol] || [];\n spans.push(span);\n\n Object.defineProperty(reply, spanRequestSymbol, {\n enumerable: false,\n configurable: true,\n value: spans,\n });\n\n return span;\n}\n\n/**\n * Ends span\n * @param reply - reply function\n * @param err - error\n */\nfunction endSpan(reply, err) {\n const spans = reply[spanRequestSymbol] || [];\n // there is no active span, or it has already ended\n if (!spans.length) {\n return;\n }\n // biome-ignore lint/complexity/noForEach: \n spans.forEach((span) => {\n if (err) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: err.message,\n });\n span.recordException(err);\n }\n span.end();\n });\n delete reply[spanRequestSymbol];\n}\n\n// @TODO after approve add this to instrumentation package and replace usage\n// when it will be released\n\n/**\n * This function handles the missing case from instrumentation package when\n * execute can either return a promise or void. And using async is not an\n * option as it is producing unwanted side effects.\n * @param execute - function to be executed\n * @param onFinish - function called when function executed\n * @param preventThrowingError - prevent to throw error when execute\n * function fails\n */\n\nfunction safeExecuteInTheMiddleMaybePromise(\n execute,\n onFinish,\n preventThrowingError,\n) {\n let error;\n let result = undefined;\n try {\n result = execute();\n\n if (isPromise(result)) {\n result.then(\n res => onFinish(undefined, res),\n err => onFinish(err),\n );\n }\n } catch (e) {\n error = e;\n } finally {\n if (!isPromise(result)) {\n onFinish(error, result);\n if (error && true) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n }\n // eslint-disable-next-line no-unsafe-finally\n return result;\n }\n}\n\nfunction isPromise(val) {\n return (\n (typeof val === 'object' && val && typeof Object.getOwnPropertyDescriptor(val, 'then')?.value === 'function') ||\n false\n );\n}\n\nexport { endSpan, safeExecuteInTheMiddleMaybePromise, startSpan };\n//# sourceMappingURL=utils.js.map\n", - "// Vendored from https://github.com/open-telemetry/opentelemetry-js-contrib/blob/407f61591ba69a39a6908264379d4d98a48dbec4/plugins/node/opentelemetry-instrumentation-fastify/src/constants.ts\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst spanRequestSymbol = Symbol('opentelemetry.instrumentation.fastify.request_active_span');\n\nexport { spanRequestSymbol };\n//# sourceMappingURL=constants.js.map\n", - "import { SpanStatusCode } from '@opentelemetry/api';\nimport { GraphQLInstrumentation } from '@opentelemetry/instrumentation-graphql';\nimport { spanToJSON, getRootSpan, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION } from '@sentry/opentelemetry';\n\nconst INTEGRATION_NAME = 'Graphql';\n\nconst instrumentGraphql = generateInstrumentOnce(\n INTEGRATION_NAME,\n GraphQLInstrumentation,\n (_options) => {\n const options = getOptionsWithDefaults(_options);\n\n return {\n ...options,\n responseHook(span, result) {\n addOriginToSpan(span, 'auto.graphql.otel.graphql');\n\n // We want to ensure spans are marked as errored if there are errors in the result\n // We only do that if the span is not already marked with a status\n const resultWithMaybeError = result ;\n if (resultWithMaybeError.errors?.length && !spanToJSON(span).status) {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n\n const attributes = spanToJSON(span).data;\n\n // If operation.name is not set, we fall back to use operation.type only\n const operationType = attributes['graphql.operation.type'];\n const operationName = attributes['graphql.operation.name'];\n\n if (options.useOperationNameForRootSpan && operationType) {\n const rootSpan = getRootSpan(span);\n const rootSpanAttributes = spanToJSON(rootSpan).data;\n\n const existingOperations = rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION] || [];\n\n const newOperation = operationName ? `${operationType} ${operationName}` : `${operationType}`;\n\n // We keep track of each operation on the root span\n // This can either be a string, or an array of strings (if there are multiple operations)\n if (Array.isArray(existingOperations)) {\n (existingOperations ).push(newOperation);\n rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, existingOperations);\n } else if (typeof existingOperations === 'string') {\n rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, [existingOperations, newOperation]);\n } else {\n rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, newOperation);\n }\n\n if (!spanToJSON(rootSpan).data['original-description']) {\n rootSpan.setAttribute('original-description', spanToJSON(rootSpan).description);\n }\n // Important for e.g. @sentry/aws-serverless because this would otherwise overwrite the name again\n rootSpan.updateName(\n `${spanToJSON(rootSpan).data['original-description']} (${getGraphqlOperationNamesFromAttribute(\n existingOperations,\n )})`,\n );\n }\n },\n };\n },\n);\n\nconst _graphqlIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // We set defaults here, too, because otherwise we'd update the instrumentation config\n // to the config without defaults, as `generateInstrumentOnce` automatically calls `setConfig(options)`\n // when being called the second time\n instrumentGraphql(getOptionsWithDefaults(options));\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [graphql](https://www.npmjs.com/package/graphql) library.\n *\n * For more information, see the [`graphqlIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/graphql/).\n *\n * @param {GraphqlOptions} options Configuration options for the GraphQL integration.\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.graphqlIntegration()],\n * });\n */\nconst graphqlIntegration = defineIntegration(_graphqlIntegration);\n\nfunction getOptionsWithDefaults(options) {\n return {\n ignoreResolveSpans: true,\n ignoreTrivialResolveSpans: true,\n useOperationNameForRootSpan: true,\n ...options,\n };\n}\n\n// copy from packages/opentelemetry/utils\nfunction getGraphqlOperationNamesFromAttribute(attr) {\n if (Array.isArray(attr)) {\n // oxlint-disable-next-line typescript/require-array-sort-compare\n const sorted = attr.slice().sort();\n\n // Up to 5 items, we just add all of them\n if (sorted.length <= 5) {\n return sorted.join(', ');\n } else {\n // Else, we add the first 5 and the diff of other operations\n return `${sorted.slice(0, 5).join(', ')}, +${sorted.length - 5}`;\n }\n }\n\n return `${attr}`;\n}\n\nexport { graphqlIntegration, instrumentGraphql };\n//# sourceMappingURL=graphql.js.map\n", - "import { KafkaJsInstrumentation } from '@opentelemetry/instrumentation-kafkajs';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Kafka';\n\nconst instrumentKafka = generateInstrumentOnce(\n INTEGRATION_NAME,\n () =>\n new KafkaJsInstrumentation({\n consumerHook(span) {\n addOriginToSpan(span, 'auto.kafkajs.otel.consumer');\n },\n producerHook(span) {\n addOriginToSpan(span, 'auto.kafkajs.otel.producer');\n },\n }),\n);\n\nconst _kafkaIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentKafka();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [kafkajs](https://www.npmjs.com/package/kafkajs) library.\n *\n * For more information, see the [`kafkaIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/kafka/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.kafkaIntegration()],\n * });\n */\nconst kafkaIntegration = defineIntegration(_kafkaIntegration);\n\nexport { instrumentKafka, kafkaIntegration };\n//# sourceMappingURL=kafka.js.map\n", - "import { LruMemoizerInstrumentation } from '@opentelemetry/instrumentation-lru-memoizer';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'LruMemoizer';\n\nconst instrumentLruMemoizer = generateInstrumentOnce(INTEGRATION_NAME, () => new LruMemoizerInstrumentation());\n\nconst _lruMemoizerIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentLruMemoizer();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [lru-memoizer](https://www.npmjs.com/package/lru-memoizer) library.\n *\n * For more information, see the [`lruMemoizerIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/lrumemoizer/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.lruMemoizerIntegration()],\n * });\n */\nconst lruMemoizerIntegration = defineIntegration(_lruMemoizerIntegration);\n\nexport { instrumentLruMemoizer, lruMemoizerIntegration };\n//# sourceMappingURL=lrumemoizer.js.map\n", - "import { MongoDBInstrumentation } from '@opentelemetry/instrumentation-mongodb';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Mongo';\n\nconst instrumentMongo = generateInstrumentOnce(\n INTEGRATION_NAME,\n () =>\n new MongoDBInstrumentation({\n dbStatementSerializer: _defaultDbStatementSerializer,\n responseHook(span) {\n addOriginToSpan(span, 'auto.db.otel.mongo');\n },\n }),\n);\n\n/**\n * Replaces values in document with '?', hiding PII and helping grouping.\n */\nfunction _defaultDbStatementSerializer(commandObj) {\n const resultObj = _scrubStatement(commandObj);\n return JSON.stringify(resultObj);\n}\n\nfunction _scrubStatement(value) {\n if (Array.isArray(value)) {\n return value.map(element => _scrubStatement(element));\n }\n\n if (isCommandObj(value)) {\n const initial = {};\n return Object.entries(value)\n .map(([key, element]) => [key, _scrubStatement(element)])\n .reduce((prev, current) => {\n if (isCommandEntry(current)) {\n prev[current[0]] = current[1];\n }\n return prev;\n }, initial);\n }\n\n // A value like string or number, possible contains PII, scrub it\n return '?';\n}\n\nfunction isCommandObj(value) {\n return typeof value === 'object' && value !== null && !isBuffer(value);\n}\n\nfunction isBuffer(value) {\n let isBuffer = false;\n if (typeof Buffer !== 'undefined') {\n isBuffer = Buffer.isBuffer(value);\n }\n return isBuffer;\n}\n\nfunction isCommandEntry(value) {\n return Array.isArray(value);\n}\n\nconst _mongoIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMongo();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [mongodb](https://www.npmjs.com/package/mongodb) library.\n *\n * For more information, see the [`mongoIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mongo/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.mongoIntegration()],\n * });\n * ```\n */\nconst mongoIntegration = defineIntegration(_mongoIntegration);\n\nexport { _defaultDbStatementSerializer, instrumentMongo, mongoIntegration };\n//# sourceMappingURL=mongo.js.map\n", - "import { MongooseInstrumentation } from '@opentelemetry/instrumentation-mongoose';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Mongoose';\n\nconst instrumentMongoose = generateInstrumentOnce(\n INTEGRATION_NAME,\n () =>\n new MongooseInstrumentation({\n responseHook(span) {\n addOriginToSpan(span, 'auto.db.otel.mongoose');\n },\n }),\n);\n\nconst _mongooseIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMongoose();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [mongoose](https://www.npmjs.com/package/mongoose) library.\n *\n * For more information, see the [`mongooseIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mongoose/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.mongooseIntegration()],\n * });\n * ```\n */\nconst mongooseIntegration = defineIntegration(_mongooseIntegration);\n\nexport { instrumentMongoose, mongooseIntegration };\n//# sourceMappingURL=mongoose.js.map\n", - "import { MySQLInstrumentation } from '@opentelemetry/instrumentation-mysql';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Mysql';\n\nconst instrumentMysql = generateInstrumentOnce(INTEGRATION_NAME, () => new MySQLInstrumentation({}));\n\nconst _mysqlIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMysql();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [mysql](https://www.npmjs.com/package/mysql) library.\n *\n * For more information, see the [`mysqlIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mysql/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.mysqlIntegration()],\n * });\n * ```\n */\nconst mysqlIntegration = defineIntegration(_mysqlIntegration);\n\nexport { instrumentMysql, mysqlIntegration };\n//# sourceMappingURL=mysql.js.map\n", - "import { MySQL2Instrumentation } from '@opentelemetry/instrumentation-mysql2';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Mysql2';\n\nconst instrumentMysql2 = generateInstrumentOnce(\n INTEGRATION_NAME,\n () =>\n new MySQL2Instrumentation({\n responseHook(span) {\n addOriginToSpan(span, 'auto.db.otel.mysql2');\n },\n }),\n);\n\nconst _mysql2Integration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMysql2();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [mysql2](https://www.npmjs.com/package/mysql2) library.\n *\n * For more information, see the [`mysql2Integration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mysql2/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.mysqlIntegration()],\n * });\n * ```\n */\nconst mysql2Integration = defineIntegration(_mysql2Integration);\n\nexport { instrumentMysql2, mysql2Integration };\n//# sourceMappingURL=mysql2.js.map\n", - "import { IORedisInstrumentation } from '@opentelemetry/instrumentation-ioredis';\nimport { RedisInstrumentation } from '@opentelemetry/instrumentation-redis';\nimport { defineIntegration, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, spanToJSON, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_SENTRY_OP, truncate } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { getCacheKeySafely, getCacheOperation, shouldConsiderForCache, calculateCacheItemSize, isInCommands, GET_COMMANDS } from '../../utils/redisCache.js';\n\nconst INTEGRATION_NAME = 'Redis';\n\n/* Only exported for testing purposes */\nlet _redisOptions = {};\n\n/* Only exported for testing purposes */\nconst cacheResponseHook = (\n span,\n redisCommand,\n cmdArgs,\n response,\n) => {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.redis');\n\n const safeKey = getCacheKeySafely(redisCommand, cmdArgs);\n const cacheOperation = getCacheOperation(redisCommand);\n\n if (\n !safeKey ||\n !cacheOperation ||\n !_redisOptions.cachePrefixes ||\n !shouldConsiderForCache(redisCommand, safeKey, _redisOptions.cachePrefixes)\n ) {\n // not relevant for cache\n return;\n }\n\n // otel/ioredis seems to be using the old standard, as there was a change to those params: https://github.com/open-telemetry/opentelemetry-specification/issues/3199\n // We are using params based on the docs: https://opentelemetry.io/docs/specs/semconv/attributes-registry/network/\n const networkPeerAddress = spanToJSON(span).data['net.peer.name'];\n const networkPeerPort = spanToJSON(span).data['net.peer.port'];\n if (networkPeerPort && networkPeerAddress) {\n span.setAttributes({ 'network.peer.address': networkPeerAddress, 'network.peer.port': networkPeerPort });\n }\n\n const cacheItemSize = calculateCacheItemSize(response);\n\n if (cacheItemSize) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, cacheItemSize);\n }\n\n if (isInCommands(GET_COMMANDS, redisCommand) && cacheItemSize !== undefined) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_CACHE_HIT, cacheItemSize > 0);\n }\n\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: cacheOperation,\n [SEMANTIC_ATTRIBUTE_CACHE_KEY]: safeKey,\n });\n\n // todo: change to string[] once EAP supports it\n const spanDescription = safeKey.join(', ');\n\n span.updateName(\n _redisOptions.maxCacheKeyLength ? truncate(spanDescription, _redisOptions.maxCacheKeyLength) : spanDescription,\n );\n};\n\nconst instrumentIORedis = generateInstrumentOnce(`${INTEGRATION_NAME}.IORedis`, () => {\n return new IORedisInstrumentation({\n responseHook: cacheResponseHook,\n });\n});\n\nconst instrumentRedisModule = generateInstrumentOnce(`${INTEGRATION_NAME}.Redis`, () => {\n return new RedisInstrumentation({\n responseHook: cacheResponseHook,\n });\n});\n\n/** To be able to preload all Redis OTel instrumentations with just one ID (\"Redis\"), all the instrumentations are generated in this one function */\nconst instrumentRedis = Object.assign(\n () => {\n instrumentIORedis();\n instrumentRedisModule();\n\n // todo: implement them gradually\n // new LegacyRedisInstrumentation({}),\n },\n { id: INTEGRATION_NAME },\n);\n\nconst _redisIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n _redisOptions = options;\n instrumentRedis();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [redis](https://www.npmjs.com/package/redis) and\n * [ioredis](https://www.npmjs.com/package/ioredis) libraries.\n *\n * For more information, see the [`redisIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/redis/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.redisIntegration()],\n * });\n * ```\n */\nconst redisIntegration = defineIntegration(_redisIntegration);\n\nexport { _redisOptions, cacheResponseHook, instrumentRedis, redisIntegration };\n//# sourceMappingURL=redis.js.map\n", - "const SINGLE_ARG_COMMANDS = ['get', 'set', 'setex'];\n\nconst GET_COMMANDS = ['get', 'mget'];\nconst SET_COMMANDS = ['set', 'setex'];\n// todo: del, expire\n\n/** Checks if a given command is in the list of redis commands.\n * Useful because commands can come in lowercase or uppercase (depending on the library). */\nfunction isInCommands(redisCommands, command) {\n return redisCommands.includes(command.toLowerCase());\n}\n\n/** Determine cache operation based on redis statement */\nfunction getCacheOperation(\n command,\n) {\n if (isInCommands(GET_COMMANDS, command)) {\n return 'cache.get';\n } else if (isInCommands(SET_COMMANDS, command)) {\n return 'cache.put';\n } else {\n return undefined;\n }\n}\n\nfunction keyHasPrefix(key, prefixes) {\n return prefixes.some(prefix => key.startsWith(prefix));\n}\n\n/** Safely converts a redis key to a string (comma-separated if there are multiple keys) */\nfunction getCacheKeySafely(redisCommand, cmdArgs) {\n try {\n if (cmdArgs.length === 0) {\n return undefined;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const processArg = (arg) => {\n if (typeof arg === 'string' || typeof arg === 'number' || Buffer.isBuffer(arg)) {\n return [arg.toString()];\n } else if (Array.isArray(arg)) {\n return flatten(arg.map(arg => processArg(arg)));\n } else {\n return [''];\n }\n };\n\n const firstArg = cmdArgs[0];\n if (isInCommands(SINGLE_ARG_COMMANDS, redisCommand) && firstArg != null) {\n return processArg(firstArg);\n }\n\n return flatten(cmdArgs.map(arg => processArg(arg)));\n } catch {\n return undefined;\n }\n}\n\n/** Determines whether a redis operation should be considered as \"cache operation\" by checking if a key is prefixed.\n * We only support certain commands (such as 'set', 'get', 'mget'). */\nfunction shouldConsiderForCache(redisCommand, keys, prefixes) {\n if (!getCacheOperation(redisCommand)) {\n return false;\n }\n\n for (const key of keys) {\n if (keyHasPrefix(key, prefixes)) {\n return true;\n }\n }\n return false;\n}\n\n/** Calculates size based on the cache response value */\nfunction calculateCacheItemSize(response) {\n const getSize = (value) => {\n try {\n if (Buffer.isBuffer(value)) return value.byteLength;\n else if (typeof value === 'string') return value.length;\n else if (typeof value === 'number') return value.toString().length;\n else if (value === null || value === undefined) return 0;\n return JSON.stringify(value).length;\n } catch {\n return undefined;\n }\n };\n\n return Array.isArray(response)\n ? response.reduce((acc, curr) => {\n const size = getSize(curr);\n return typeof size === 'number' ? (acc !== undefined ? acc + size : size) : acc;\n }, 0)\n : getSize(response);\n}\n\nfunction flatten(input) {\n const result = [];\n\n const flattenHelper = (input) => {\n input.forEach((el) => {\n if (Array.isArray(el)) {\n flattenHelper(el);\n } else {\n result.push(el);\n }\n });\n };\n\n flattenHelper(input);\n return result;\n}\n\nexport { GET_COMMANDS, SET_COMMANDS, calculateCacheItemSize, getCacheKeySafely, getCacheOperation, isInCommands, shouldConsiderForCache };\n//# sourceMappingURL=redisCache.js.map\n", - "import { PgInstrumentation } from '@opentelemetry/instrumentation-pg';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Postgres';\n\nconst instrumentPostgres = generateInstrumentOnce(\n INTEGRATION_NAME,\n PgInstrumentation,\n (options) => ({\n requireParentSpan: true,\n requestHook(span) {\n addOriginToSpan(span, 'auto.db.otel.postgres');\n },\n ignoreConnectSpans: options?.ignoreConnectSpans ?? false,\n }),\n);\n\nconst _postgresIntegration = ((options) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentPostgres(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [pg](https://www.npmjs.com/package/pg) library.\n *\n * For more information, see the [`postgresIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/postgres/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.postgresIntegration()],\n * });\n * ```\n */\nconst postgresIntegration = defineIntegration(_postgresIntegration);\n\nexport { instrumentPostgres, postgresIntegration };\n//# sourceMappingURL=postgres.js.map\n", - "import { trace, context } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, InstrumentationNodeModuleFile, safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\nimport { ATTR_DB_OPERATION_NAME, ATTR_DB_QUERY_TEXT, ATTR_DB_SYSTEM_NAME, ATTR_DB_RESPONSE_STATUS_CODE, ATTR_ERROR_TYPE } from '@opentelemetry/semantic-conventions';\nimport { SDK_VERSION, debug, replaceExports, startSpanManual, SPAN_STATUS_ERROR, defineIntegration, instrumentPostgresJsSql } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\n\n// Instrumentation for https://github.com/porsager/postgres\n\n\nconst INTEGRATION_NAME = 'PostgresJs';\nconst SUPPORTED_VERSIONS = ['>=3.0.0 <4'];\nconst SQL_OPERATION_REGEX = /^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i;\n\n// Marker to track if a query was created from an instrumented sql instance\n// This prevents double-spanning when both wrapper and prototype patches are active\nconst QUERY_FROM_INSTRUMENTED_SQL = Symbol.for('sentry.query.from.instrumented.sql');\n\nconst instrumentPostgresJs = generateInstrumentOnce(\n INTEGRATION_NAME,\n (options) =>\n new PostgresJsInstrumentation({\n requireParentSpan: options?.requireParentSpan ?? true,\n requestHook: options?.requestHook,\n }),\n);\n\n/**\n * Instrumentation for the [postgres](https://www.npmjs.com/package/postgres) library.\n * This instrumentation captures postgresjs queries and their attributes.\n *\n * Uses internal Sentry patching patterns to support both CommonJS and ESM environments.\n */\nclass PostgresJsInstrumentation extends InstrumentationBase {\n constructor(config) {\n super('sentry-postgres-js', SDK_VERSION, config);\n }\n\n /**\n * Initializes the instrumentation by patching the postgres module.\n * Uses two complementary approaches:\n * 1. Main function wrapper: instruments sql instances created AFTER instrumentation is set up (CJS + ESM)\n * 2. Query.prototype patch: fallback for sql instances created BEFORE instrumentation (CJS only)\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n 'postgres',\n SUPPORTED_VERSIONS,\n exports$1 => {\n try {\n return this._patchPostgres(exports$1);\n } catch (e) {\n DEBUG_BUILD && debug.error('Failed to patch postgres module:', e);\n return exports$1;\n }\n },\n exports$1 => exports$1,\n );\n\n // Add fallback Query.prototype patching for pre-existing sql instances (CJS only)\n // This catches queries from sql instances created before Sentry was initialized\n ['src', 'cf/src', 'cjs/src'].forEach(path => {\n module.files.push(\n new InstrumentationNodeModuleFile(\n `postgres/${path}/query.js`,\n SUPPORTED_VERSIONS,\n this._patchQueryPrototype.bind(this),\n this._unpatchQueryPrototype.bind(this),\n ),\n );\n });\n\n return module;\n }\n\n /**\n * Patches the postgres module by wrapping the main export function.\n * This intercepts the creation of sql instances and instruments them.\n */\n _patchPostgres(exports$1) {\n // In CJS: exports is the function itself\n // In ESM: exports.default is the function\n const isFunction = typeof exports$1 === 'function';\n const Original = isFunction ? exports$1 : exports$1.default;\n\n if (typeof Original !== 'function') {\n DEBUG_BUILD && debug.warn('postgres module does not export a function. Skipping instrumentation.');\n return exports$1;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n\n const WrappedPostgres = function ( ...args) {\n const sql = Reflect.construct(Original , args);\n\n // Validate that construction succeeded and returned a valid function object\n if (!sql || typeof sql !== 'function') {\n DEBUG_BUILD && debug.warn('postgres() did not return a valid instance');\n return sql;\n }\n\n // Delegate to the portable instrumentation from @sentry/core\n const config = self.getConfig();\n return instrumentPostgresJsSql(sql, {\n requireParentSpan: config.requireParentSpan,\n requestHook: config.requestHook,\n });\n };\n\n Object.setPrototypeOf(WrappedPostgres, Original);\n Object.setPrototypeOf(WrappedPostgres.prototype, (Original ).prototype);\n\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (!['length', 'name', 'prototype'].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedPostgres, key, descriptor);\n }\n }\n }\n\n // For CJS: the exports object IS the function, so return the wrapped function\n // For ESM: replace the default export\n if (isFunction) {\n return WrappedPostgres ;\n } else {\n replaceExports(exports$1, 'default', WrappedPostgres);\n return exports$1;\n }\n }\n\n /**\n * Determines whether a span should be created based on the current context.\n * If `requireParentSpan` is set to true in the configuration, a span will\n * only be created if there is a parent span available.\n */\n _shouldCreateSpans() {\n const config = this.getConfig();\n const hasParentSpan = trace.getSpan(context.active()) !== undefined;\n return hasParentSpan || !config.requireParentSpan;\n }\n\n /**\n * Extracts DB operation name from SQL query and sets it on the span.\n */\n _setOperationName(span, sanitizedQuery, command) {\n if (command) {\n span.setAttribute(ATTR_DB_OPERATION_NAME, command);\n return;\n }\n // Fallback: extract operation from the SQL query\n const operationMatch = sanitizedQuery?.match(SQL_OPERATION_REGEX);\n if (operationMatch?.[1]) {\n span.setAttribute(ATTR_DB_OPERATION_NAME, operationMatch[1].toUpperCase());\n }\n }\n\n /**\n * Reconstructs the full SQL query from template strings with PostgreSQL placeholders.\n *\n * For sql`SELECT * FROM users WHERE id = ${123} AND name = ${'foo'}`:\n * strings = [\"SELECT * FROM users WHERE id = \", \" AND name = \", \"\"]\n * returns: \"SELECT * FROM users WHERE id = $1 AND name = $2\"\n */\n _reconstructQuery(strings) {\n if (!strings?.length) {\n return undefined;\n }\n if (strings.length === 1) {\n return strings[0] || undefined;\n }\n // Join template parts with PostgreSQL placeholders ($1, $2, etc.)\n return strings.reduce((acc, str, i) => (i === 0 ? str : `${acc}$${i}${str}`), '');\n }\n\n /**\n * Sanitize SQL query as per the OTEL semantic conventions\n * https://opentelemetry.io/docs/specs/semconv/database/database-spans/#sanitization-of-dbquerytext\n *\n * PostgreSQL $n placeholders are preserved per OTEL spec - they're parameterized queries,\n * not sensitive literals. Only actual values (strings, numbers, booleans) are sanitized.\n */\n _sanitizeSqlQuery(sqlQuery) {\n if (!sqlQuery) {\n return 'Unknown SQL Query';\n }\n\n return (\n sqlQuery\n // Remove comments first (they may contain newlines and extra spaces)\n .replace(/--.*$/gm, '') // Single line comments (multiline mode)\n .replace(/\\/\\*[\\s\\S]*?\\*\\//g, '') // Multi-line comments\n .replace(/;\\s*$/, '') // Remove trailing semicolons\n // Collapse whitespace to a single space (after removing comments)\n .replace(/\\s+/g, ' ')\n .trim() // Remove extra spaces and trim\n // Sanitize hex/binary literals before string literals\n .replace(/\\bX'[0-9A-Fa-f]*'/gi, '?') // Hex string literals\n .replace(/\\bB'[01]*'/gi, '?') // Binary string literals\n // Sanitize string literals (handles escaped quotes)\n .replace(/'(?:[^']|'')*'/g, '?')\n // Sanitize hex numbers\n .replace(/\\b0x[0-9A-Fa-f]+/gi, '?')\n // Sanitize boolean literals\n .replace(/\\b(?:TRUE|FALSE)\\b/gi, '?')\n // Sanitize numeric literals (preserve $n placeholders via negative lookbehind)\n .replace(/-?\\b\\d+\\.?\\d*[eE][+-]?\\d+\\b/g, '?') // Scientific notation\n .replace(/-?\\b\\d+\\.\\d+\\b/g, '?') // Decimals\n .replace(/-?\\.\\d+\\b/g, '?') // Decimals starting with dot\n .replace(/(? {\n addOriginToSpan(span, 'auto.db.postgresjs');\n\n span.setAttributes({\n [ATTR_DB_SYSTEM_NAME]: 'postgres',\n [ATTR_DB_QUERY_TEXT]: sanitizedSqlQuery,\n });\n\n // Note: No connection context available for pre-existing instances\n // because the sql instance wasn't created through our instrumented wrapper\n\n const config = self.getConfig();\n const { requestHook } = config;\n if (requestHook) {\n safeExecuteInTheMiddle(\n () => requestHook(span, sanitizedSqlQuery, undefined),\n e => {\n if (e) {\n span.setAttribute('sentry.hook.error', 'requestHook failed');\n DEBUG_BUILD && debug.error(`Error in requestHook for ${INTEGRATION_NAME} integration:`, e);\n }\n },\n true,\n );\n }\n\n // Wrap resolve to end span on success\n const originalResolve = this.resolve;\n this.resolve = new Proxy(originalResolve , {\n apply: (resolveTarget, resolveThisArg, resolveArgs) => {\n try {\n self._setOperationName(span, sanitizedSqlQuery, resolveArgs?.[0]?.command);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error('Error ending span in resolve callback:', e);\n }\n return Reflect.apply(resolveTarget, resolveThisArg, resolveArgs);\n },\n });\n\n // Wrap reject to end span on error\n const originalReject = this.reject;\n this.reject = new Proxy(originalReject , {\n apply: (rejectTarget, rejectThisArg, rejectArgs) => {\n try {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: rejectArgs?.[0]?.message || 'unknown_error',\n });\n span.setAttribute(ATTR_DB_RESPONSE_STATUS_CODE, rejectArgs?.[0]?.code || 'unknown');\n span.setAttribute(ATTR_ERROR_TYPE, rejectArgs?.[0]?.name || 'unknown');\n self._setOperationName(span, sanitizedSqlQuery);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error('Error ending span in reject callback:', e);\n }\n return Reflect.apply(rejectTarget, rejectThisArg, rejectArgs);\n },\n });\n\n try {\n return originalHandle.apply(this, args);\n } catch (e) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: e instanceof Error ? e.message : 'unknown_error',\n });\n span.end();\n throw e;\n }\n },\n );\n };\n\n // Store original for unpatch - must be set on the NEW patched function\n moduleExports.Query.prototype.handle.__sentry_original__ = originalHandle;\n\n return moduleExports;\n }\n\n /**\n * Restores the original Query.prototype.handle method.\n */\n _unpatchQueryPrototype(moduleExports\n\n) {\n if (moduleExports.Query.prototype.handle.__sentry_original__) {\n moduleExports.Query.prototype.handle = moduleExports.Query.prototype.handle.__sentry_original__;\n }\n return moduleExports;\n }\n}\n\nconst _postgresJsIntegration = ((options) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentPostgresJs(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [postgres](https://www.npmjs.com/package/postgres) library.\n *\n * For more information, see the [`postgresIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/postgres/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.postgresJsIntegration()],\n * });\n * ```\n */\n\nconst postgresJsIntegration = defineIntegration(_postgresJsIntegration);\n\nexport { PostgresJsInstrumentation, instrumentPostgresJs, postgresJsIntegration };\n//# sourceMappingURL=postgresjs.js.map\n", - "import { trace, TraceFlags, context, SpanKind } from '@opentelemetry/api';\nimport { PrismaInstrumentation } from '@prisma/instrumentation';\nimport { defineIntegration, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, consoleSandbox } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Prisma';\n\nfunction isPrismaV6TracingHelper(helper) {\n return !!helper && typeof helper === 'object' && 'dispatchEngineSpans' in helper;\n}\n\nfunction getPrismaTracingHelper() {\n const prismaInstrumentationObject = (globalThis ).PRISMA_INSTRUMENTATION;\n const prismaTracingHelper =\n prismaInstrumentationObject &&\n typeof prismaInstrumentationObject === 'object' &&\n 'helper' in prismaInstrumentationObject\n ? prismaInstrumentationObject.helper\n : undefined;\n\n return prismaTracingHelper;\n}\n\nclass SentryPrismaInteropInstrumentation extends PrismaInstrumentation {\n constructor(options) {\n super(options?.instrumentationConfig);\n }\n\n enable() {\n super.enable();\n\n // The PrismaIntegration (super class) defines a global variable `global[\"PRISMA_INSTRUMENTATION\"]` when `enable()` is called. This global variable holds a \"TracingHelper\" which Prisma uses internally to create tracing data. It's their way of not depending on OTEL with their main package. The sucky thing is, prisma broke the interface of the tracing helper with the v6 major update. This means that if you use Prisma 5 with the v6 instrumentation (or vice versa) Prisma just blows up, because tries to call methods on the helper that no longer exist.\n // Because we actually want to use the v6 instrumentation and not blow up in Prisma 5 user's faces, what we're doing here is backfilling the v5 method (`createEngineSpan`) with a noop so that no longer crashes when it attempts to call that function.\n const prismaTracingHelper = getPrismaTracingHelper();\n\n if (isPrismaV6TracingHelper(prismaTracingHelper)) {\n // Inspired & adjusted from https://github.com/prisma/prisma/tree/5.22.0/packages/instrumentation\n (prismaTracingHelper ).createEngineSpan = (\n engineSpanEvent,\n ) => {\n const tracer = trace.getTracer('prismaV5Compatibility') ;\n\n // Prisma v5 relies on being able to create spans with a specific span & trace ID\n // this is no longer possible in OTEL v2, there is no public API to do this anymore\n // So in order to kind of hack this possibility, we rely on the internal `_idGenerator` property\n // This is used to generate the random IDs, and we overwrite this temporarily to generate static IDs\n // This is flawed and may not work, e.g. if the code is bundled and the private property is renamed\n // in such cases, these spans will not be captured and some Prisma spans will be missing\n const initialIdGenerator = tracer._idGenerator;\n\n if (!initialIdGenerator) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!',\n );\n });\n\n return;\n }\n\n try {\n engineSpanEvent.spans.forEach(engineSpan => {\n const kind = engineSpanKindToOTELSpanKind(engineSpan.kind);\n\n const parentSpanId = engineSpan.parent_span_id;\n const spanId = engineSpan.span_id;\n const traceId = engineSpan.trace_id;\n\n const links = engineSpan.links?.map(link => {\n return {\n context: {\n traceId: link.trace_id,\n spanId: link.span_id,\n traceFlags: TraceFlags.SAMPLED,\n },\n };\n });\n\n const ctx = trace.setSpanContext(context.active(), {\n traceId,\n spanId: parentSpanId,\n traceFlags: TraceFlags.SAMPLED,\n });\n\n context.with(ctx, () => {\n const temporaryIdGenerator = {\n generateTraceId: () => {\n return traceId;\n },\n generateSpanId: () => {\n return spanId;\n },\n };\n\n tracer._idGenerator = temporaryIdGenerator;\n\n const span = tracer.startSpan(engineSpan.name, {\n kind,\n links,\n startTime: engineSpan.start_time,\n attributes: engineSpan.attributes,\n });\n\n span.end(engineSpan.end_time);\n\n tracer._idGenerator = initialIdGenerator;\n });\n });\n } finally {\n // Ensure we always restore this at the end, even if something errors\n tracer._idGenerator = initialIdGenerator;\n }\n };\n }\n }\n}\n\nfunction engineSpanKindToOTELSpanKind(engineSpanKind) {\n switch (engineSpanKind) {\n case 'client':\n return SpanKind.CLIENT;\n case 'internal':\n default: // Other span kinds aren't currently supported\n return SpanKind.INTERNAL;\n }\n}\n\nconst instrumentPrisma = generateInstrumentOnce(INTEGRATION_NAME, options => {\n return new SentryPrismaInteropInstrumentation(options);\n});\n\n/**\n * Adds Sentry tracing instrumentation for the [prisma](https://www.npmjs.com/package/prisma) library.\n * For more information, see the [`prismaIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/prisma/).\n *\n * NOTE: By default, this integration works with Prisma version 6.\n * To get performance instrumentation for other Prisma versions,\n * 1. Install the `@prisma/instrumentation` package with the desired version.\n * 1. Pass a `new PrismaInstrumentation()` instance as exported from `@prisma/instrumentation` to the `prismaInstrumentation` option of this integration:\n *\n * ```js\n * import { PrismaInstrumentation } from '@prisma/instrumentation'\n *\n * Sentry.init({\n * integrations: [\n * prismaIntegration({\n * // Override the default instrumentation that Sentry uses\n * prismaInstrumentation: new PrismaInstrumentation()\n * })\n * ]\n * })\n * ```\n *\n * The passed instrumentation instance will override the default instrumentation instance the integration would use, while the `prismaIntegration` will still ensure data compatibility for the various Prisma versions.\n * 1. Depending on your Prisma version (prior to version 6), add `previewFeatures = [\"tracing\"]` to the client generator block of your Prisma schema:\n *\n * ```\n * generator client {\n * provider = \"prisma-client-js\"\n * previewFeatures = [\"tracing\"]\n * }\n * ```\n */\nconst prismaIntegration = defineIntegration((options) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentPrisma(options);\n },\n setup(client) {\n // If no tracing helper exists, we skip any work here\n // this means that prisma is not being used\n if (!getPrismaTracingHelper()) {\n return;\n }\n\n client.on('spanStart', span => {\n const spanJSON = spanToJSON(span);\n if (spanJSON.description?.startsWith('prisma:')) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.prisma');\n }\n\n // Make sure we use the query text as the span name, for ex. SELECT * FROM \"User\" WHERE \"id\" = $1\n if (spanJSON.description === 'prisma:engine:db_query' && spanJSON.data['db.query.text']) {\n span.updateName(spanJSON.data['db.query.text'] );\n }\n\n // In Prisma v5.22+, the `db.system` attribute is automatically set\n // On older versions, this is missing, so we add it here\n if (spanJSON.description === 'prisma:engine:db_query' && !spanJSON.data['db.system']) {\n span.setAttribute('db.system', 'prisma');\n }\n });\n },\n };\n});\n\nexport { instrumentPrisma, prismaIntegration };\n//# sourceMappingURL=prisma.js.map\n", - "// src/PrismaInstrumentation.ts\nimport { trace as trace2 } from \"@opentelemetry/api\";\nimport {\n InstrumentationBase,\n InstrumentationNodeModuleDefinition\n} from \"@opentelemetry/instrumentation\";\n\n// ../instrumentation-contract/dist/index.mjs\nvar package_default = {\n name: \"@prisma/instrumentation-contract\",\n version: \"7.4.2\",\n description: \"Shared types and utilities for Prisma instrumentation\",\n main: \"dist/index.js\",\n module: \"dist/index.mjs\",\n types: \"dist/index.d.ts\",\n exports: {\n \".\": {\n require: {\n types: \"./dist/index.d.ts\",\n default: \"./dist/index.js\"\n },\n import: {\n types: \"./dist/index.d.mts\",\n default: \"./dist/index.mjs\"\n }\n }\n },\n license: \"Apache-2.0\",\n homepage: \"https://www.prisma.io\",\n repository: {\n type: \"git\",\n url: \"https://github.com/prisma/prisma.git\",\n directory: \"packages/instrumentation-contract\"\n },\n bugs: \"https://github.com/prisma/prisma/issues\",\n scripts: {\n dev: \"DEV=true tsx helpers/build.ts\",\n build: \"tsx helpers/build.ts\",\n prepublishOnly: \"pnpm run build\",\n test: \"vitest run\"\n },\n files: [\n \"dist\"\n ],\n sideEffects: false,\n devDependencies: {\n \"@opentelemetry/api\": \"1.9.0\"\n },\n peerDependencies: {\n \"@opentelemetry/api\": \"^1.8\"\n }\n};\nvar majorVersion = package_default.version.split(\".\")[0];\nvar GLOBAL_INSTRUMENTATION_KEY = \"PRISMA_INSTRUMENTATION\";\nvar GLOBAL_VERSIONED_INSTRUMENTATION_KEY = `V${majorVersion}_PRISMA_INSTRUMENTATION`;\nvar globalThisWithPrismaInstrumentation = globalThis;\nfunction getGlobalTracingHelper() {\n const versionedGlobal = globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY];\n if (versionedGlobal?.helper) {\n return versionedGlobal.helper;\n }\n const fallbackGlobal = globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY];\n return fallbackGlobal?.helper;\n}\nfunction setGlobalTracingHelper(helper) {\n const globalValue = { helper };\n globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY] = globalValue;\n globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY] = globalValue;\n}\nfunction clearGlobalTracingHelper() {\n delete globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY];\n delete globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY];\n}\n\n// src/ActiveTracingHelper.ts\nimport {\n context as _context,\n SpanKind,\n trace\n} from \"@opentelemetry/api\";\nvar showAllTraces = process.env.PRISMA_SHOW_ALL_TRACES === \"true\";\nvar nonSampledTraceParent = `00-10-10-00`;\nfunction engineSpanKindToOtelSpanKind(engineSpanKind) {\n switch (engineSpanKind) {\n case \"client\":\n return SpanKind.CLIENT;\n case \"internal\":\n default:\n return SpanKind.INTERNAL;\n }\n}\nvar ActiveTracingHelper = class {\n tracerProvider;\n ignoreSpanTypes;\n constructor({ tracerProvider, ignoreSpanTypes }) {\n this.tracerProvider = tracerProvider;\n this.ignoreSpanTypes = ignoreSpanTypes;\n }\n isEnabled() {\n return true;\n }\n getTraceParent(context) {\n const span = trace.getSpanContext(context ?? _context.active());\n if (span) {\n return `00-${span.traceId}-${span.spanId}-0${span.traceFlags}`;\n }\n return nonSampledTraceParent;\n }\n dispatchEngineSpans(spans) {\n const tracer = this.tracerProvider.getTracer(\"prisma\");\n const linkIds = /* @__PURE__ */ new Map();\n const roots = spans.filter((span) => span.parentId === null);\n for (const root of roots) {\n dispatchEngineSpan(tracer, root, spans, linkIds, this.ignoreSpanTypes);\n }\n }\n getActiveContext() {\n return _context.active();\n }\n runInChildSpan(options, callback) {\n if (typeof options === \"string\") {\n options = { name: options };\n }\n if (options.internal && !showAllTraces) {\n return callback();\n }\n const tracer = this.tracerProvider.getTracer(\"prisma\");\n const context = options.context ?? this.getActiveContext();\n const name = `prisma:client:${options.name}`;\n if (shouldIgnoreSpan(name, this.ignoreSpanTypes)) {\n return callback();\n }\n if (options.active === false) {\n const span = tracer.startSpan(name, options, context);\n return endSpan(span, callback(span, context));\n }\n return tracer.startActiveSpan(name, options, (span) => endSpan(span, callback(span, context)));\n }\n};\nfunction dispatchEngineSpan(tracer, engineSpan, allSpans, linkIds, ignoreSpanTypes) {\n if (shouldIgnoreSpan(engineSpan.name, ignoreSpanTypes)) return;\n const spanOptions = {\n attributes: engineSpan.attributes,\n kind: engineSpanKindToOtelSpanKind(engineSpan.kind),\n startTime: engineSpan.startTime\n };\n tracer.startActiveSpan(engineSpan.name, spanOptions, (span) => {\n linkIds.set(engineSpan.id, span.spanContext().spanId);\n if (engineSpan.links) {\n span.addLinks(\n engineSpan.links.flatMap((link) => {\n const linkedId = linkIds.get(link);\n if (!linkedId) {\n return [];\n }\n return {\n context: {\n spanId: linkedId,\n traceId: span.spanContext().traceId,\n traceFlags: span.spanContext().traceFlags\n }\n };\n })\n );\n }\n const children = allSpans.filter((s) => s.parentId === engineSpan.id);\n for (const child of children) {\n dispatchEngineSpan(tracer, child, allSpans, linkIds, ignoreSpanTypes);\n }\n span.end(engineSpan.endTime);\n });\n}\nfunction endSpan(span, result) {\n if (isPromiseLike(result)) {\n return result.then(\n (value) => {\n span.end();\n return value;\n },\n (reason) => {\n span.end();\n throw reason;\n }\n );\n }\n span.end();\n return result;\n}\nfunction isPromiseLike(value) {\n return value != null && typeof value[\"then\"] === \"function\";\n}\nfunction shouldIgnoreSpan(spanName, ignoreSpanTypes) {\n return ignoreSpanTypes.some(\n (pattern) => typeof pattern === \"string\" ? pattern === spanName : pattern.test(spanName)\n );\n}\n\n// package.json\nvar package_default2 = {\n name: \"@prisma/instrumentation\",\n version: \"7.4.2\",\n description: \"OpenTelemetry compliant instrumentation for Prisma Client\",\n main: \"dist/index.js\",\n module: \"dist/index.mjs\",\n types: \"dist/index.d.ts\",\n exports: {\n \".\": {\n require: {\n types: \"./dist/index.d.ts\",\n default: \"./dist/index.js\"\n },\n import: {\n types: \"./dist/index.d.ts\",\n default: \"./dist/index.mjs\"\n }\n }\n },\n license: \"Apache-2.0\",\n homepage: \"https://www.prisma.io\",\n repository: {\n type: \"git\",\n url: \"https://github.com/prisma/prisma.git\",\n directory: \"packages/instrumentation\"\n },\n bugs: \"https://github.com/prisma/prisma/issues\",\n devDependencies: {\n \"@opentelemetry/api\": \"1.9.0\",\n \"@prisma/instrumentation-contract\": \"workspace:*\",\n \"@types/node\": \"~20.19.24\",\n typescript: \"5.4.5\"\n },\n dependencies: {\n \"@opentelemetry/instrumentation\": \"^0.207.0\"\n },\n peerDependencies: {\n \"@opentelemetry/api\": \"^1.8\"\n },\n files: [\n \"dist\"\n ],\n keywords: [\n \"prisma\",\n \"instrumentation\",\n \"opentelemetry\",\n \"otel\"\n ],\n scripts: {\n dev: \"DEV=true tsx helpers/build.ts\",\n build: \"tsx helpers/build.ts\",\n prepublishOnly: \"pnpm run build\",\n test: \"vitest run\"\n },\n sideEffects: false\n};\n\n// src/constants.ts\nvar VERSION = package_default2.version;\nvar NAME = package_default2.name;\nvar MODULE_NAME = \"@prisma/client\";\n\n// src/PrismaInstrumentation.ts\nvar PrismaInstrumentation = class extends InstrumentationBase {\n tracerProvider;\n constructor(config = {}) {\n super(NAME, VERSION, config);\n }\n setTracerProvider(tracerProvider) {\n this.tracerProvider = tracerProvider;\n }\n init() {\n const module = new InstrumentationNodeModuleDefinition(MODULE_NAME, [VERSION]);\n return [module];\n }\n enable() {\n const config = this._config;\n setGlobalTracingHelper(\n new ActiveTracingHelper({\n tracerProvider: this.tracerProvider ?? trace2.getTracerProvider(),\n ignoreSpanTypes: config.ignoreSpanTypes ?? []\n })\n );\n }\n disable() {\n clearGlobalTracingHelper();\n }\n isEnabled() {\n return getGlobalTracingHelper() !== void 0;\n }\n};\n\n// src/index.ts\nimport { registerInstrumentations } from \"@opentelemetry/instrumentation\";\nexport {\n PrismaInstrumentation,\n registerInstrumentations\n};\n", - "import { HapiInstrumentation } from '@opentelemetry/instrumentation-hapi';\nimport { defineIntegration, SDK_VERSION, getClient, getIsolationScope, getDefaultIsolationScope, debug, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../../debug-build.js';\n\nconst INTEGRATION_NAME = 'Hapi';\n\nconst instrumentHapi = generateInstrumentOnce(INTEGRATION_NAME, () => new HapiInstrumentation());\n\nconst _hapiIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentHapi();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for [Hapi](https://hapi.dev/).\n *\n * If you also want to capture errors, you need to call `setupHapiErrorHandler(server)` after you set up your server.\n *\n * For more information, see the [hapi documentation](https://docs.sentry.io/platforms/javascript/guides/hapi/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.hapiIntegration()],\n * })\n * ```\n */\nconst hapiIntegration = defineIntegration(_hapiIntegration);\n\nfunction isErrorEvent(event) {\n return !!(event && typeof event === 'object' && 'error' in event && event.error);\n}\n\nfunction sendErrorToSentry(errorData) {\n captureException(errorData, {\n mechanism: {\n type: 'auto.function.hapi',\n handled: false,\n },\n });\n}\n\nconst hapiErrorPlugin = {\n name: 'SentryHapiErrorPlugin',\n version: SDK_VERSION,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register: async function (serverArg) {\n const server = serverArg ;\n\n server.events.on({ name: 'request', channels: ['error'] }, (request, event) => {\n if (getIsolationScope() !== getDefaultIsolationScope()) {\n const route = request.route;\n if (route.path) {\n getIsolationScope().setTransactionName(`${route.method.toUpperCase()} ${route.path}`);\n }\n } else {\n DEBUG_BUILD &&\n debug.warn('Isolation scope is still the default isolation scope - skipping setting transactionName');\n }\n\n if (isErrorEvent(event)) {\n sendErrorToSentry(event.error);\n }\n });\n },\n};\n\n/**\n * Add a Hapi plugin to capture errors to Sentry.\n *\n * @param server The Hapi server to attach the error handler to\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const Hapi = require('@hapi/hapi');\n *\n * const init = async () => {\n * const server = Hapi.server();\n *\n * // all your routes here\n *\n * await Sentry.setupHapiErrorHandler(server);\n *\n * await server.start();\n * };\n * ```\n */\nasync function setupHapiErrorHandler(server) {\n await server.register(hapiErrorPlugin);\n\n // Sadly, middleware spans do not go through `requestHook`, so we handle those here\n // We register this hook in this method, because if we register it in the integration `setup`,\n // it would always run even for users that are not even using hapi\n const client = getClient();\n if (client) {\n client.on('spanStart', span => {\n addHapiSpanAttributes(span);\n });\n }\n\n ensureIsWrapped(server.register, 'hapi');\n}\n\nfunction addHapiSpanAttributes(span) {\n const attributes = spanToJSON(span).data;\n\n // this is one of: router, plugin, server.ext\n const type = attributes['hapi.type'];\n\n // If this is already set, or we have no Hapi span, no need to process again...\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n return;\n }\n\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.hapi',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.hapi`,\n });\n}\n\nexport { hapiErrorPlugin, hapiIntegration, instrumentHapi, setupHapiErrorHandler };\n//# sourceMappingURL=index.js.map\n", - "import { ATTR_HTTP_ROUTE, ATTR_HTTP_REQUEST_METHOD } from '@opentelemetry/semantic-conventions';\nimport { defineIntegration, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getIsolationScope, getDefaultIsolationScope, debug, httpRequestToRequestData, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../../debug-build.js';\nimport { AttributeNames } from './constants.js';\nimport { HonoInstrumentation } from './instrumentation.js';\n\nconst INTEGRATION_NAME = 'Hono';\n\nfunction addHonoSpanAttributes(span) {\n const attributes = spanToJSON(span).data;\n const type = attributes[AttributeNames.HONO_TYPE];\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n return;\n }\n\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.hono',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.hono`,\n });\n\n const name = attributes[AttributeNames.HONO_NAME];\n if (typeof name === 'string') {\n span.updateName(name);\n }\n\n if (getIsolationScope() === getDefaultIsolationScope()) {\n DEBUG_BUILD && debug.warn('Isolation scope is default isolation scope - skipping setting transactionName');\n return;\n }\n\n const route = attributes[ATTR_HTTP_ROUTE];\n const method = attributes[ATTR_HTTP_REQUEST_METHOD];\n if (typeof route === 'string' && typeof method === 'string') {\n getIsolationScope().setTransactionName(`${method} ${route}`);\n }\n}\n\nconst instrumentHono = generateInstrumentOnce(\n INTEGRATION_NAME,\n () =>\n new HonoInstrumentation({\n responseHook: span => {\n addHonoSpanAttributes(span);\n },\n }),\n);\n\nconst _honoIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentHono();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for [Hono](https://hono.dev/).\n *\n * If you also want to capture errors, you need to call `setupHonoErrorHandler(app)` after you set up your Hono server.\n *\n * For more information, see the [hono documentation](https://docs.sentry.io/platforms/javascript/guides/hono/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.honoIntegration()],\n * })\n * ```\n */\nconst honoIntegration = defineIntegration(_honoIntegration);\n\nfunction honoRequestHandler() {\n return async function sentryRequestMiddleware(context, next) {\n const normalizedRequest = httpRequestToRequestData(context.req);\n getIsolationScope().setSDKProcessingMetadata({ normalizedRequest });\n await next();\n };\n}\n\nfunction defaultShouldHandleError(context) {\n const statusCode = context.res.status;\n return statusCode >= 500;\n}\n\nfunction honoErrorHandler(options) {\n return async function sentryErrorMiddleware(context, next) {\n await next();\n\n const shouldHandleError = options?.shouldHandleError || defaultShouldHandleError;\n if (shouldHandleError(context)) {\n (context.res ).sentry = captureException(context.error, {\n mechanism: {\n type: 'auto.middleware.hono',\n handled: false,\n },\n });\n }\n };\n}\n\n/**\n * Add a Hono error handler to capture errors to Sentry.\n *\n * @param app The Hono instances\n * @param options Configuration options for the handler\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const { Hono } = require(\"hono\");\n *\n * const app = new Hono();\n *\n * Sentry.setupHonoErrorHandler(app);\n *\n * // Add your routes, etc.\n * ```\n */\nfunction setupHonoErrorHandler(\n app,\n options,\n) {\n app.use(honoRequestHandler());\n app.use(honoErrorHandler(options));\n ensureIsWrapped(app.use, 'hono');\n}\n\nexport { honoIntegration, instrumentHono, setupHonoErrorHandler };\n//# sourceMappingURL=index.js.map\n", - "const AttributeNames = {\n HONO_TYPE: 'hono.type',\n HONO_NAME: 'hono.name',\n} ;\n\nconst HonoTypes = {\n MIDDLEWARE: 'middleware',\n REQUEST_HANDLER: 'request_handler',\n} ;\n\nexport { AttributeNames, HonoTypes };\n//# sourceMappingURL=constants.js.map\n", - "import { context, trace, SpanStatusCode } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { isThenable } from '@sentry/core';\nimport { AttributeNames, HonoTypes } from './constants.js';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-hono';\nconst PACKAGE_VERSION = '0.0.1';\n\n/**\n * Hono instrumentation for OpenTelemetry\n */\nclass HonoInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, PACKAGE_VERSION, config);\n }\n\n /**\n * Initialize the instrumentation.\n */\n init() {\n return [\n new InstrumentationNodeModuleDefinition('hono', ['>=4.0.0 <5'], moduleExports => this._patch(moduleExports)),\n ];\n }\n\n /**\n * Patches the module exports to instrument Hono.\n */\n _patch(moduleExports) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const instrumentation = this;\n\n class WrappedHono extends moduleExports.Hono {\n constructor(...args) {\n super(...args);\n\n instrumentation._wrap(this, 'get', instrumentation._patchHandler());\n instrumentation._wrap(this, 'post', instrumentation._patchHandler());\n instrumentation._wrap(this, 'put', instrumentation._patchHandler());\n instrumentation._wrap(this, 'delete', instrumentation._patchHandler());\n instrumentation._wrap(this, 'options', instrumentation._patchHandler());\n instrumentation._wrap(this, 'patch', instrumentation._patchHandler());\n instrumentation._wrap(this, 'all', instrumentation._patchHandler());\n instrumentation._wrap(this, 'on', instrumentation._patchOnHandler());\n instrumentation._wrap(this, 'use', instrumentation._patchMiddlewareHandler());\n }\n }\n\n try {\n moduleExports.Hono = WrappedHono;\n } catch {\n // This is a workaround for environments where direct assignment is not allowed.\n return { ...moduleExports, Hono: WrappedHono };\n }\n\n return moduleExports;\n }\n\n /**\n * Patches the route handler to instrument it.\n */\n _patchHandler() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const instrumentation = this;\n\n return function (original) {\n return function wrappedHandler( ...args) {\n if (typeof args[0] === 'string') {\n const path = args[0];\n if (args.length === 1) {\n return original.apply(this, [path]);\n }\n\n const handlers = args.slice(1);\n return original.apply(this, [\n path,\n ...handlers.map(handler => instrumentation._wrapHandler(handler )),\n ]);\n }\n\n return original.apply(\n this,\n args.map(handler => instrumentation._wrapHandler(handler )),\n );\n };\n };\n }\n\n /**\n * Patches the 'on' handler to instrument it.\n */\n _patchOnHandler() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const instrumentation = this;\n\n return function (original) {\n return function wrappedHandler( ...args) {\n const handlers = args.slice(2);\n return original.apply(this, [\n ...args.slice(0, 2),\n ...handlers.map(handler => instrumentation._wrapHandler(handler )),\n ]);\n };\n };\n }\n\n /**\n * Patches the middleware handler to instrument it.\n */\n _patchMiddlewareHandler() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const instrumentation = this;\n\n return function (original) {\n return function wrappedHandler( ...args) {\n if (typeof args[0] === 'string') {\n const path = args[0];\n if (args.length === 1) {\n return original.apply(this, [path]);\n }\n\n const handlers = args.slice(1);\n return original.apply(this, [\n path,\n ...handlers.map(handler => instrumentation._wrapHandler(handler )),\n ]);\n }\n\n return original.apply(\n this,\n args.map(handler => instrumentation._wrapHandler(handler )),\n );\n };\n };\n }\n\n /**\n * Wraps a handler or middleware handler to apply instrumentation.\n */\n _wrapHandler(handler) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const instrumentation = this;\n\n return function ( c, next) {\n if (!instrumentation.isEnabled()) {\n return handler.apply(this, [c, next]);\n }\n\n const path = c.req.path;\n const span = instrumentation.tracer.startSpan(path);\n\n return context.with(trace.setSpan(context.active(), span), () => {\n return instrumentation._safeExecute(\n () => {\n const result = handler.apply(this, [c, next]);\n if (isThenable(result)) {\n return result.then(result => {\n const type = instrumentation._determineHandlerType(result);\n span.setAttributes({\n [AttributeNames.HONO_TYPE]: type,\n [AttributeNames.HONO_NAME]: type === HonoTypes.REQUEST_HANDLER ? path : handler.name || 'anonymous',\n });\n instrumentation.getConfig().responseHook?.(span);\n return result;\n });\n } else {\n const type = instrumentation._determineHandlerType(result);\n span.setAttributes({\n [AttributeNames.HONO_TYPE]: type,\n [AttributeNames.HONO_NAME]: type === HonoTypes.REQUEST_HANDLER ? path : handler.name || 'anonymous',\n });\n instrumentation.getConfig().responseHook?.(span);\n return result;\n }\n },\n () => span.end(),\n error => {\n instrumentation._handleError(span, error);\n span.end();\n },\n );\n });\n };\n }\n\n /**\n * Safely executes a function and handles errors.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _safeExecute(execute, onSuccess, onFailure) {\n try {\n const result = execute();\n\n if (isThenable(result)) {\n result.then(\n () => onSuccess(),\n (error) => onFailure(error),\n );\n } else {\n onSuccess();\n }\n\n return result;\n } catch (error) {\n onFailure(error);\n throw error;\n }\n }\n\n /**\n * Determines the handler type based on the result.\n * @param result\n * @private\n */\n _determineHandlerType(result) {\n return result === undefined ? HonoTypes.MIDDLEWARE : HonoTypes.REQUEST_HANDLER;\n }\n\n /**\n * Handles errors by setting the span status and recording the exception.\n */\n _handleError(span, error) {\n if (error instanceof Error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error.message,\n });\n span.recordException(error);\n }\n }\n}\n\nexport { HonoInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", - "import { KoaInstrumentation } from '@opentelemetry/instrumentation-koa';\nimport { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport { spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, getIsolationScope, getDefaultIsolationScope, debug, defineIntegration, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan, ensureIsWrapped } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\n\nconst INTEGRATION_NAME = 'Koa';\n\nconst instrumentKoa = generateInstrumentOnce(\n INTEGRATION_NAME,\n KoaInstrumentation,\n (options = {}) => {\n return {\n ignoreLayersType: options.ignoreLayersType ,\n requestHook(span, info) {\n addOriginToSpan(span, 'auto.http.otel.koa');\n\n const attributes = spanToJSON(span).data;\n\n // this is one of: middleware, router\n const type = attributes['koa.type'];\n if (type) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, `${type}.koa`);\n }\n\n // Also update the name\n const name = attributes['koa.name'];\n if (typeof name === 'string') {\n // Somehow, name is sometimes `''` for middleware spans\n // See: https://github.com/open-telemetry/opentelemetry-js-contrib/issues/2220\n span.updateName(name || '< unknown >');\n }\n\n if (getIsolationScope() === getDefaultIsolationScope()) {\n DEBUG_BUILD && debug.warn('Isolation scope is default isolation scope - skipping setting transactionName');\n return;\n }\n const route = attributes[ATTR_HTTP_ROUTE];\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const method = info.context?.request?.method?.toUpperCase() || 'GET';\n if (route) {\n getIsolationScope().setTransactionName(`${method} ${route}`);\n }\n },\n } ;\n },\n);\n\nconst _koaIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentKoa(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for [Koa](https://koajs.com/).\n *\n * If you also want to capture errors, you need to call `setupKoaErrorHandler(app)` after you set up your Koa server.\n *\n * For more information, see the [koa documentation](https://docs.sentry.io/platforms/javascript/guides/koa/).\n *\n * @param {KoaOptions} options Configuration options for the Koa integration.\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.koaIntegration()],\n * })\n * ```\n *\n * @example\n * ```javascript\n * // To ignore middleware spans\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [\n * Sentry.koaIntegration({\n * ignoreLayersType: ['middleware']\n * })\n * ],\n * })\n * ```\n */\nconst koaIntegration = defineIntegration(_koaIntegration);\n\n/**\n * Add an Koa error handler to capture errors to Sentry.\n *\n * The error handler must be before any other middleware and after all controllers.\n *\n * @param app The Express instances\n * @param options {ExpressHandlerOptions} Configuration options for the handler\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const Koa = require(\"koa\");\n *\n * const app = new Koa();\n *\n * Sentry.setupKoaErrorHandler(app);\n *\n * // Add your routes, etc.\n *\n * app.listen(3000);\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst setupKoaErrorHandler = (app) => {\n app.use(async (ctx, next) => {\n try {\n await next();\n } catch (error) {\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.middleware.koa',\n },\n });\n throw error;\n }\n });\n\n ensureIsWrapped(app.use, 'koa');\n};\n\nexport { instrumentKoa, koaIntegration, setupKoaErrorHandler };\n//# sourceMappingURL=koa.js.map\n", - "import { ConnectInstrumentation } from '@opentelemetry/instrumentation-connect';\nimport { defineIntegration, getClient, captureException, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Connect';\n\nconst instrumentConnect = generateInstrumentOnce(INTEGRATION_NAME, () => new ConnectInstrumentation());\n\nconst _connectIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentConnect();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for [Connect](https://github.com/senchalabs/connect/).\n *\n * If you also want to capture errors, you need to call `setupConnectErrorHandler(app)` after you initialize your connect app.\n *\n * For more information, see the [connect documentation](https://docs.sentry.io/platforms/javascript/guides/connect/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.connectIntegration()],\n * })\n * ```\n */\nconst connectIntegration = defineIntegration(_connectIntegration);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction connectErrorMiddleware(err, req, res, next) {\n captureException(err, {\n mechanism: {\n handled: false,\n type: 'auto.middleware.connect',\n },\n });\n next(err);\n}\n\n/**\n * Add a Connect middleware to capture errors to Sentry.\n *\n * @param app The Connect app to attach the error handler to\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const connect = require(\"connect\");\n *\n * const app = connect();\n *\n * Sentry.setupConnectErrorHandler(app);\n *\n * // Add you connect routes here\n *\n * app.listen(3000);\n * ```\n */\nconst setupConnectErrorHandler = (app) => {\n app.use(connectErrorMiddleware);\n\n // Sadly, ConnectInstrumentation has no requestHook, so we need to add the attributes here\n // We register this hook in this method, because if we register it in the integration `setup`,\n // it would always run even for users that are not even using connect\n const client = getClient();\n if (client) {\n client.on('spanStart', span => {\n addConnectSpanAttributes(span);\n });\n }\n\n ensureIsWrapped(app.use, 'connect');\n};\n\nfunction addConnectSpanAttributes(span) {\n const attributes = spanToJSON(span).data;\n\n // this is one of: middleware, request_handler\n const type = attributes['connect.type'];\n\n // If this is already set, or we have no connect span, no need to process again...\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n return;\n }\n\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.connect',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.connect`,\n });\n\n // Also update the name, we don't need the \"middleware - \" prefix\n const name = attributes['connect.name'];\n if (typeof name === 'string') {\n span.updateName(name);\n }\n}\n\nexport { connectIntegration, instrumentConnect, setupConnectErrorHandler };\n//# sourceMappingURL=connect.js.map\n", - "import { TediousInstrumentation } from '@opentelemetry/instrumentation-tedious';\nimport { defineIntegration, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { generateInstrumentOnce, instrumentWhenWrapped } from '@sentry/node-core';\n\nconst TEDIUS_INSTRUMENTED_METHODS = new Set([\n 'callProcedure',\n 'execSql',\n 'execSqlBatch',\n 'execBulkLoad',\n 'prepare',\n 'execute',\n]);\n\nconst INTEGRATION_NAME = 'Tedious';\n\nconst instrumentTedious = generateInstrumentOnce(INTEGRATION_NAME, () => new TediousInstrumentation({}));\n\nconst _tediousIntegration = (() => {\n let instrumentationWrappedCallback;\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n const instrumentation = instrumentTedious();\n instrumentationWrappedCallback = instrumentWhenWrapped(instrumentation);\n },\n\n setup(client) {\n instrumentationWrappedCallback?.(() =>\n client.on('spanStart', span => {\n const { description, data } = spanToJSON(span);\n // Tedius integration always set a span name and `db.system` attribute to `mssql`.\n if (!description || data['db.system'] !== 'mssql') {\n return;\n }\n\n const operation = description.split(' ')[0] || '';\n if (TEDIUS_INSTRUMENTED_METHODS.has(operation)) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.tedious');\n }\n }),\n );\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [tedious](https://www.npmjs.com/package/tedious) library.\n *\n * For more information, see the [`tediousIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/tedious/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.tediousIntegration()],\n * });\n * ```\n */\nconst tediousIntegration = defineIntegration(_tediousIntegration);\n\nexport { instrumentTedious, tediousIntegration };\n//# sourceMappingURL=tedious.js.map\n", - "import { GenericPoolInstrumentation } from '@opentelemetry/instrumentation-generic-pool';\nimport { defineIntegration, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { generateInstrumentOnce, instrumentWhenWrapped } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'GenericPool';\n\nconst instrumentGenericPool = generateInstrumentOnce(INTEGRATION_NAME, () => new GenericPoolInstrumentation({}));\n\nconst _genericPoolIntegration = (() => {\n let instrumentationWrappedCallback;\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n const instrumentation = instrumentGenericPool();\n instrumentationWrappedCallback = instrumentWhenWrapped(instrumentation);\n },\n\n setup(client) {\n instrumentationWrappedCallback?.(() =>\n client.on('spanStart', span => {\n const spanJSON = spanToJSON(span);\n\n const spanDescription = spanJSON.description;\n\n // typo in emitted span for version <= 0.38.0 of @opentelemetry/instrumentation-generic-pool\n const isGenericPoolSpan =\n spanDescription === 'generic-pool.aquire' || spanDescription === 'generic-pool.acquire';\n\n if (isGenericPoolSpan) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.generic_pool');\n }\n }),\n );\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [generic-pool](https://www.npmjs.com/package/generic-pool) library.\n *\n * For more information, see the [`genericPoolIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/genericpool/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.genericPoolIntegration()],\n * });\n * ```\n */\nconst genericPoolIntegration = defineIntegration(_genericPoolIntegration);\n\nexport { genericPoolIntegration, instrumentGenericPool };\n//# sourceMappingURL=genericPool.js.map\n", - "import { AmqplibInstrumentation } from '@opentelemetry/instrumentation-amqplib';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Amqplib';\n\nconst config = {\n consumeEndHook: (span) => {\n addOriginToSpan(span, 'auto.amqplib.otel.consumer');\n },\n publishHook: (span) => {\n addOriginToSpan(span, 'auto.amqplib.otel.publisher');\n },\n};\n\nconst instrumentAmqplib = generateInstrumentOnce(INTEGRATION_NAME, () => new AmqplibInstrumentation(config));\n\nconst _amqplibIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentAmqplib();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [amqplib](https://www.npmjs.com/package/amqplib) library.\n *\n * For more information, see the [`amqplibIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/amqplib/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.amqplibIntegration()],\n * });\n * ```\n */\nconst amqplibIntegration = defineIntegration(_amqplibIntegration);\n\nexport { amqplibIntegration, instrumentAmqplib };\n//# sourceMappingURL=amqplib.js.map\n", - "const INTEGRATION_NAME = 'VercelAI';\n\nexport { INTEGRATION_NAME };\n//# sourceMappingURL=constants.js.map\n", - "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, getClient, handleCallbackErrors, addNonEnumerableProperty, getActiveSpan, _INTERNAL_getSpanContextForToolCallId, withScope, captureException, _INTERNAL_cleanupToolCallSpanContext } from '@sentry/core';\nimport { INTEGRATION_NAME } from './constants.js';\n\nconst SUPPORTED_VERSIONS = ['>=3.0.0 <7'];\n\n// List of patched methods\n// From: https://sdk.vercel.ai/docs/ai-sdk-core/telemetry#collected-data\nconst INSTRUMENTED_METHODS = [\n 'generateText',\n 'streamText',\n 'generateObject',\n 'streamObject',\n 'embed',\n 'embedMany',\n 'rerank',\n] ;\n\nfunction isToolError(obj) {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n\n const candidate = obj ;\n return (\n 'type' in candidate &&\n 'error' in candidate &&\n 'toolName' in candidate &&\n 'toolCallId' in candidate &&\n candidate.type === 'tool-error' &&\n candidate.error instanceof Error\n );\n}\n\n/**\n * Process tool call results: capture tool errors and clean up span context mappings.\n *\n * Error checking runs first (needs span context for linking), then cleanup removes all entries.\n * Tool errors are not rejected in Vercel AI V5 — they appear as metadata in the result content.\n */\nfunction processToolCallResults(result) {\n if (typeof result !== 'object' || result === null || !('content' in result)) {\n return;\n }\n\n const resultObj = result ;\n if (!Array.isArray(resultObj.content)) {\n return;\n }\n\n captureToolErrors(resultObj.content);\n cleanupToolCallSpanContexts(resultObj.content);\n}\n\nfunction captureToolErrors(content) {\n for (const item of content) {\n if (!isToolError(item)) {\n continue;\n }\n\n // Try to get the span context associated with this tool call ID\n const spanContext = _INTERNAL_getSpanContextForToolCallId(item.toolCallId);\n\n if (spanContext) {\n // We have the span context, so link the error using span and trace IDs\n withScope(scope => {\n scope.setContext('trace', {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n });\n\n scope.setTag('vercel.ai.tool.name', item.toolName);\n scope.setTag('vercel.ai.tool.callId', item.toolCallId);\n scope.setLevel('error');\n\n captureException(item.error, {\n mechanism: {\n type: 'auto.vercelai.otel',\n handled: false,\n },\n });\n });\n } else {\n // Fallback: capture without span linking\n withScope(scope => {\n scope.setTag('vercel.ai.tool.name', item.toolName);\n scope.setTag('vercel.ai.tool.callId', item.toolCallId);\n scope.setLevel('error');\n\n captureException(item.error, {\n mechanism: {\n type: 'auto.vercelai.otel',\n handled: false,\n },\n });\n });\n }\n }\n}\n\n/**\n * Remove span context entries for all completed tool calls in the content array.\n */\nfunction cleanupToolCallSpanContexts(content) {\n for (const item of content) {\n if (\n typeof item === 'object' &&\n item !== null &&\n 'toolCallId' in item &&\n typeof (item ).toolCallId === 'string'\n ) {\n _INTERNAL_cleanupToolCallSpanContext((item ).toolCallId );\n }\n }\n}\n\n/**\n * Determines whether to record inputs and outputs for Vercel AI telemetry based on the configuration hierarchy.\n *\n * The order of precedence is:\n * 1. The vercel ai integration options\n * 2. The experimental_telemetry options in the vercel ai method calls\n * 3. When telemetry is explicitly enabled (isEnabled: true), default to recording\n * 4. Otherwise, use the sendDefaultPii option from client options\n */\nfunction determineRecordingSettings(\n integrationRecordingOptions,\n methodTelemetryOptions,\n telemetryExplicitlyEnabled,\n defaultRecordingEnabled,\n) {\n const recordInputs =\n integrationRecordingOptions?.recordInputs !== undefined\n ? integrationRecordingOptions.recordInputs\n : methodTelemetryOptions.recordInputs !== undefined\n ? methodTelemetryOptions.recordInputs\n : telemetryExplicitlyEnabled === true\n ? true // When telemetry is explicitly enabled, default to recording inputs\n : defaultRecordingEnabled;\n\n const recordOutputs =\n integrationRecordingOptions?.recordOutputs !== undefined\n ? integrationRecordingOptions.recordOutputs\n : methodTelemetryOptions.recordOutputs !== undefined\n ? methodTelemetryOptions.recordOutputs\n : telemetryExplicitlyEnabled === true\n ? true // When telemetry is explicitly enabled, default to recording inputs\n : defaultRecordingEnabled;\n\n return { recordInputs, recordOutputs };\n}\n\n/**\n * This detects is added by the Sentry Vercel AI Integration to detect if the integration should\n * be enabled.\n *\n * It also patches the `ai` module to enable Vercel AI telemetry automatically for all methods.\n */\nclass SentryVercelAiInstrumentation extends InstrumentationBase {\n __init() {this._isPatched = false;}\n __init2() {this._callbacks = [];}\n\n constructor(config = {}) {\n super('@sentry/instrumentation-vercel-ai', SDK_VERSION, config);SentryVercelAiInstrumentation.prototype.__init.call(this);SentryVercelAiInstrumentation.prototype.__init2.call(this); }\n\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition('ai', SUPPORTED_VERSIONS, this._patch.bind(this));\n return module;\n }\n\n /**\n * Call the provided callback when the module is patched.\n * If it has already been patched, the callback will be called immediately.\n */\n callWhenPatched(callback) {\n if (this._isPatched) {\n callback();\n } else {\n this._callbacks.push(callback);\n }\n }\n\n /**\n * Patches module exports to enable Vercel AI telemetry.\n */\n _patch(moduleExports) {\n this._isPatched = true;\n\n this._callbacks.forEach(callback => callback());\n this._callbacks = [];\n\n const generatePatch = (originalMethod) => {\n return new Proxy(originalMethod, {\n apply: (target, thisArg, args) => {\n const existingExperimentalTelemetry = args[0].experimental_telemetry || {};\n const isEnabled = existingExperimentalTelemetry.isEnabled;\n\n const client = getClient();\n const integration = client?.getIntegrationByName(INTEGRATION_NAME);\n const integrationOptions = integration?.options;\n const shouldRecordInputsAndOutputs = integration ? Boolean(client?.getOptions().sendDefaultPii) : false;\n\n const { recordInputs, recordOutputs } = determineRecordingSettings(\n integrationOptions,\n existingExperimentalTelemetry,\n isEnabled,\n shouldRecordInputsAndOutputs,\n );\n\n args[0].experimental_telemetry = {\n ...existingExperimentalTelemetry,\n isEnabled: isEnabled !== undefined ? isEnabled : true,\n recordInputs,\n recordOutputs,\n };\n\n return handleCallbackErrors(\n () => Reflect.apply(target, thisArg, args),\n error => {\n // This error bubbles up to unhandledrejection handler (if not handled before),\n // where we do not know the active span anymore\n // So to circumvent this, we set the active span on the error object\n // which is picked up by the unhandledrejection handler\n if (error && typeof error === 'object') {\n addNonEnumerableProperty(error, '_sentry_active_span', getActiveSpan());\n }\n },\n () => {},\n result => {\n processToolCallResults(result);\n },\n );\n },\n });\n };\n\n // Is this an ESM module?\n // https://tc39.es/ecma262/#sec-module-namespace-objects\n if (Object.prototype.toString.call(moduleExports) === '[object Module]') {\n // In ESM we take the usual route and just replace the exports we want to instrument\n for (const method of INSTRUMENTED_METHODS) {\n // Skip methods that don't exist in this version of the AI SDK (e.g., rerank was added in v6)\n if (moduleExports[method] != null) {\n moduleExports[method] = generatePatch(moduleExports[method]);\n }\n }\n\n return moduleExports;\n } else {\n // In CJS we can't replace the exports in the original module because they\n // don't have setters, so we create a new object with the same properties\n const patchedModuleExports = INSTRUMENTED_METHODS.reduce((acc, curr) => {\n // Skip methods that don't exist in this version of the AI SDK (e.g., rerank was added in v6)\n if (moduleExports[curr] != null) {\n acc[curr] = generatePatch(moduleExports[curr]);\n }\n return acc;\n }, {} );\n\n return { ...moduleExports, ...patchedModuleExports };\n }\n }\n}\n\nexport { SentryVercelAiInstrumentation, cleanupToolCallSpanContexts, determineRecordingSettings, processToolCallResults };\n//# sourceMappingURL=instrumentation.js.map\n", - "import { defineIntegration, addVercelAiProcessors } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { INTEGRATION_NAME } from './constants.js';\nimport { SentryVercelAiInstrumentation } from './instrumentation.js';\n\nconst instrumentVercelAi = generateInstrumentOnce(INTEGRATION_NAME, () => new SentryVercelAiInstrumentation({}));\n\n/**\n * Determines if the integration should be forced based on environment and package availability.\n * Returns true if the 'ai' package is available.\n */\nfunction shouldForceIntegration(client) {\n const modules = client.getIntegrationByName('Modules');\n return !!modules?.getModules?.()?.ai;\n}\n\nconst _vercelAIIntegration = ((options = {}) => {\n let instrumentation;\n\n return {\n name: INTEGRATION_NAME,\n options,\n setupOnce() {\n instrumentation = instrumentVercelAi();\n },\n afterAllSetup(client) {\n // Auto-detect if we should force the integration when running with 'ai' package available\n // Note that this can only be detected if the 'Modules' integration is available, and running in CJS mode\n const shouldForce = options.force ?? shouldForceIntegration(client);\n\n if (shouldForce) {\n addVercelAiProcessors(client);\n } else {\n instrumentation?.callWhenPatched(() => addVercelAiProcessors(client));\n }\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [ai](https://www.npmjs.com/package/ai) library.\n * This integration is not enabled by default, you need to manually add it.\n *\n * For more information, see the [`ai` documentation](https://sdk.vercel.ai/docs/ai-sdk-core/telemetry).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.vercelAIIntegration()],\n * });\n * ```\n *\n * This integration adds tracing support to all `ai` function calls.\n * You need to opt-in to collecting spans for a specific call,\n * you can do so by setting `experimental_telemetry.isEnabled` to `true` in the first argument of the function call.\n *\n * ```javascript\n * const result = await generateText({\n * model: openai('gpt-4-turbo'),\n * experimental_telemetry: { isEnabled: true },\n * });\n * ```\n *\n * If you want to collect inputs and outputs for a specific call, you must specifically opt-in to each\n * function call by setting `experimental_telemetry.recordInputs` and `experimental_telemetry.recordOutputs`\n * to `true`.\n *\n * ```javascript\n * const result = await generateText({\n * model: openai('gpt-4-turbo'),\n * experimental_telemetry: { isEnabled: true, recordInputs: true, recordOutputs: true },\n * });\n */\nconst vercelAIIntegration = defineIntegration(_vercelAIIntegration);\n\nexport { instrumentVercelAi, vercelAIIntegration };\n//# sourceMappingURL=index.js.map\n", - "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, _INTERNAL_shouldSkipAiProviderWrapping, OPENAI_INTEGRATION_NAME, instrumentOpenAiClient } from '@sentry/core';\n\nconst supportedVersions = ['>=4.0.0 <7'];\n\n/**\n * Sentry OpenAI instrumentation using OpenTelemetry.\n */\nclass SentryOpenAiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super('@sentry/instrumentation-openai', SDK_VERSION, config);\n }\n\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition('openai', supportedVersions, this._patch.bind(this));\n return module;\n }\n\n /**\n * Core patch logic applying instrumentation to the OpenAI and AzureOpenAI client constructors.\n */\n _patch(exports$1) {\n let result = exports$1;\n result = this._patchClient(result, 'OpenAI');\n result = this._patchClient(result, 'AzureOpenAI');\n return result;\n }\n\n /**\n * Patch logic applying instrumentation to the specified client constructor.\n */\n _patchClient(exports$1, exportKey) {\n const Original = exports$1[exportKey];\n if (!Original) {\n return exports$1;\n }\n\n const config = this.getConfig();\n\n const WrappedOpenAI = function ( ...args) {\n // Check if wrapping should be skipped (e.g., when LangChain is handling instrumentation)\n if (_INTERNAL_shouldSkipAiProviderWrapping(OPENAI_INTEGRATION_NAME)) {\n return Reflect.construct(Original, args) ;\n }\n\n const instance = Reflect.construct(Original, args);\n\n return instrumentOpenAiClient(instance , config);\n } ;\n\n // Preserve static and prototype chains\n Object.setPrototypeOf(WrappedOpenAI, Original);\n Object.setPrototypeOf(WrappedOpenAI.prototype, Original.prototype);\n\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (!['length', 'name', 'prototype'].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedOpenAI, key, descriptor);\n }\n }\n }\n\n // Constructor replacement - handle read-only properties\n // The OpenAI property might have only a getter, so use defineProperty\n try {\n exports$1[exportKey] = WrappedOpenAI;\n } catch {\n // If direct assignment fails, override the property descriptor\n Object.defineProperty(exports$1, exportKey, {\n value: WrappedOpenAI,\n writable: true,\n configurable: true,\n enumerable: true,\n });\n }\n\n // Wrap the default export if it points to the original constructor\n // Constructor replacement - handle read-only properties\n // The OpenAI property might have only a getter, so use defineProperty\n if (exports$1.default === Original) {\n try {\n exports$1.default = WrappedOpenAI;\n } catch {\n // If direct assignment fails, override the property descriptor\n Object.defineProperty(exports$1, 'default', {\n value: WrappedOpenAI,\n writable: true,\n configurable: true,\n enumerable: true,\n });\n }\n }\n return exports$1;\n }\n}\n\nexport { SentryOpenAiInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", - "import { OPENAI_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryOpenAiInstrumentation } from './instrumentation.js';\n\nconst instrumentOpenAi = generateInstrumentOnce(\n OPENAI_INTEGRATION_NAME,\n options => new SentryOpenAiInstrumentation(options),\n);\n\nconst _openAiIntegration = ((options = {}) => {\n return {\n name: OPENAI_INTEGRATION_NAME,\n setupOnce() {\n instrumentOpenAi(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the OpenAI SDK.\n *\n * This integration is enabled by default.\n *\n * When configured, this integration automatically instruments OpenAI SDK client instances\n * to capture telemetry data following OpenTelemetry Semantic Conventions for Generative AI.\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n * integrations: [Sentry.openAIIntegration()],\n * });\n * ```\n *\n * ## Options\n *\n * - `recordInputs`: Whether to record prompt messages (default: respects `sendDefaultPii` client option)\n * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)\n *\n * ### Default Behavior\n *\n * By default, the integration will:\n * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options\n * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled\n *\n * @example\n * ```javascript\n * // Record inputs and outputs when sendDefaultPii is false\n * Sentry.init({\n * integrations: [\n * Sentry.openAIIntegration({\n * recordInputs: true,\n * recordOutputs: true\n * })\n * ],\n * });\n *\n * // Never record inputs/outputs regardless of sendDefaultPii\n * Sentry.init({\n * sendDefaultPii: true,\n * integrations: [\n * Sentry.openAIIntegration({\n * recordInputs: false,\n * recordOutputs: false\n * })\n * ],\n * });\n * ```\n *\n */\nconst openAIIntegration = defineIntegration(_openAiIntegration);\n\nexport { instrumentOpenAi, openAIIntegration };\n//# sourceMappingURL=index.js.map\n", - "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, _INTERNAL_shouldSkipAiProviderWrapping, ANTHROPIC_AI_INTEGRATION_NAME, instrumentAnthropicAiClient } from '@sentry/core';\n\nconst supportedVersions = ['>=0.19.2 <1.0.0'];\n\n/**\n * Sentry Anthropic AI instrumentation using OpenTelemetry.\n */\nclass SentryAnthropicAiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super('@sentry/instrumentation-anthropic-ai', SDK_VERSION, config);\n }\n\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n '@anthropic-ai/sdk',\n supportedVersions,\n this._patch.bind(this),\n );\n return module;\n }\n\n /**\n * Core patch logic applying instrumentation to the Anthropic AI client constructor.\n */\n _patch(exports$1) {\n const Original = exports$1.Anthropic;\n\n const config = this.getConfig();\n\n const WrappedAnthropic = function ( ...args) {\n // Check if wrapping should be skipped (e.g., when LangChain is handling instrumentation)\n if (_INTERNAL_shouldSkipAiProviderWrapping(ANTHROPIC_AI_INTEGRATION_NAME)) {\n return Reflect.construct(Original, args) ;\n }\n\n const instance = Reflect.construct(Original, args);\n\n return instrumentAnthropicAiClient(instance , config);\n } ;\n\n // Preserve static and prototype chains\n Object.setPrototypeOf(WrappedAnthropic, Original);\n Object.setPrototypeOf(WrappedAnthropic.prototype, Original.prototype);\n\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (!['length', 'name', 'prototype'].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedAnthropic, key, descriptor);\n }\n }\n }\n\n // Constructor replacement - handle read-only properties\n // The Anthropic property might have only a getter, so use defineProperty\n try {\n exports$1.Anthropic = WrappedAnthropic;\n } catch {\n // If direct assignment fails, override the property descriptor\n Object.defineProperty(exports$1, 'Anthropic', {\n value: WrappedAnthropic,\n writable: true,\n configurable: true,\n enumerable: true,\n });\n }\n\n // Wrap the default export if it points to the original constructor\n // Constructor replacement - handle read-only properties\n // The Anthropic property might have only a getter, so use defineProperty\n if (exports$1.default === Original) {\n try {\n exports$1.default = WrappedAnthropic;\n } catch {\n // If direct assignment fails, override the property descriptor\n Object.defineProperty(exports$1, 'default', {\n value: WrappedAnthropic,\n writable: true,\n configurable: true,\n enumerable: true,\n });\n }\n }\n return exports$1;\n }\n}\n\nexport { SentryAnthropicAiInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", - "import { ANTHROPIC_AI_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryAnthropicAiInstrumentation } from './instrumentation.js';\n\nconst instrumentAnthropicAi = generateInstrumentOnce(\n ANTHROPIC_AI_INTEGRATION_NAME,\n options => new SentryAnthropicAiInstrumentation(options),\n);\n\nconst _anthropicAIIntegration = ((options = {}) => {\n return {\n name: ANTHROPIC_AI_INTEGRATION_NAME,\n options,\n setupOnce() {\n instrumentAnthropicAi(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the Anthropic AI SDK.\n *\n * This integration is enabled by default.\n *\n * When configured, this integration automatically instruments Anthropic AI SDK client instances\n * to capture telemetry data following OpenTelemetry Semantic Conventions for Generative AI.\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n * integrations: [Sentry.anthropicAIIntegration()],\n * });\n * ```\n *\n * ## Options\n *\n * - `recordInputs`: Whether to record prompt messages (default: respects `sendDefaultPii` client option)\n * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)\n *\n * ### Default Behavior\n *\n * By default, the integration will:\n * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options\n * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled\n *\n * @example\n * ```javascript\n * // Record inputs and outputs when sendDefaultPii is false\n * Sentry.init({\n * integrations: [\n * Sentry.anthropicAIIntegration({\n * recordInputs: true,\n * recordOutputs: true\n * })\n * ],\n * });\n *\n * // Never record inputs/outputs regardless of sendDefaultPii\n * Sentry.init({\n * sendDefaultPii: true,\n * integrations: [\n * Sentry.anthropicAIIntegration({\n * recordInputs: false,\n * recordOutputs: false\n * })\n * ],\n * });\n * ```\n *\n */\nconst anthropicAIIntegration = defineIntegration(_anthropicAIIntegration);\n\nexport { anthropicAIIntegration, instrumentAnthropicAi };\n//# sourceMappingURL=index.js.map\n", - "import { InstrumentationBase, InstrumentationNodeModuleDefinition, InstrumentationNodeModuleFile } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, replaceExports, _INTERNAL_shouldSkipAiProviderWrapping, GOOGLE_GENAI_INTEGRATION_NAME, instrumentGoogleGenAIClient } from '@sentry/core';\n\nconst supportedVersions = ['>=0.10.0 <2'];\n\n/**\n * Represents the patched shape of the Google GenAI module export.\n */\n\n/**\n * Sentry Google GenAI instrumentation using OpenTelemetry.\n */\nclass SentryGoogleGenAiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super('@sentry/instrumentation-google-genai', SDK_VERSION, config);\n }\n\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n '@google/genai',\n supportedVersions,\n exports$1 => this._patch(exports$1),\n exports$1 => exports$1,\n // In CJS, @google/genai re-exports from (dist/node/index.cjs) file.\n // Patching only the root module sometimes misses the real implementation or\n // gets overwritten when that file is loaded. We add a file-level patch so that\n // _patch runs again on the concrete implementation\n [\n new InstrumentationNodeModuleFile(\n '@google/genai/dist/node/index.cjs',\n supportedVersions,\n exports$1 => this._patch(exports$1),\n exports$1 => exports$1,\n ),\n ],\n );\n return module;\n }\n\n /**\n * Core patch logic applying instrumentation to the Google GenAI client constructor.\n */\n _patch(exports$1) {\n const Original = exports$1.GoogleGenAI;\n const config = this.getConfig();\n\n if (typeof Original !== 'function') {\n return exports$1;\n }\n\n const WrappedGoogleGenAI = function ( ...args) {\n // Check if wrapping should be skipped (e.g., when LangChain is handling instrumentation)\n if (_INTERNAL_shouldSkipAiProviderWrapping(GOOGLE_GENAI_INTEGRATION_NAME)) {\n return Reflect.construct(Original, args) ;\n }\n\n const instance = Reflect.construct(Original, args);\n\n return instrumentGoogleGenAIClient(instance, config);\n };\n\n // Preserve static and prototype chains\n Object.setPrototypeOf(WrappedGoogleGenAI, Original);\n Object.setPrototypeOf(WrappedGoogleGenAI.prototype, Original.prototype);\n\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (!['length', 'name', 'prototype'].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedGoogleGenAI, key, descriptor);\n }\n }\n }\n\n // Replace google genai exports with the wrapped constructor\n replaceExports(exports$1, 'GoogleGenAI', WrappedGoogleGenAI);\n\n return exports$1;\n }\n}\n\nexport { SentryGoogleGenAiInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", - "import { GOOGLE_GENAI_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryGoogleGenAiInstrumentation } from './instrumentation.js';\n\nconst instrumentGoogleGenAI = generateInstrumentOnce(\n GOOGLE_GENAI_INTEGRATION_NAME,\n options => new SentryGoogleGenAiInstrumentation(options),\n);\n\nconst _googleGenAIIntegration = ((options = {}) => {\n return {\n name: GOOGLE_GENAI_INTEGRATION_NAME,\n setupOnce() {\n instrumentGoogleGenAI(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the Google Generative AI SDK.\n *\n * This integration is enabled by default.\n *\n * When configured, this integration automatically instruments Google GenAI SDK client instances\n * to capture telemetry data following OpenTelemetry Semantic Conventions for Generative AI.\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n * integrations: [Sentry.googleGenAiIntegration()],\n * });\n * ```\n *\n * ## Options\n *\n * - `recordInputs`: Whether to record prompt messages (default: respects `sendDefaultPii` client option)\n * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)\n *\n * ### Default Behavior\n *\n * By default, the integration will:\n * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options\n * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled\n *\n * @example\n * ```javascript\n * // Record inputs and outputs when sendDefaultPii is false\n * Sentry.init({\n * integrations: [\n * Sentry.googleGenAiIntegration({\n * recordInputs: true,\n * recordOutputs: true\n * })\n * ],\n * });\n *\n * // Never record inputs/outputs regardless of sendDefaultPii\n * Sentry.init({\n * sendDefaultPii: true,\n * integrations: [\n * Sentry.googleGenAiIntegration({\n * recordInputs: false,\n * recordOutputs: false\n * })\n * ],\n * });\n * ```\n *\n */\nconst googleGenAIIntegration = defineIntegration(_googleGenAIIntegration);\n\nexport { googleGenAIIntegration, instrumentGoogleGenAI };\n//# sourceMappingURL=index.js.map\n", - "import { InstrumentationBase, InstrumentationNodeModuleDefinition, InstrumentationNodeModuleFile } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, _INTERNAL_skipAiProviderWrapping, OPENAI_INTEGRATION_NAME, ANTHROPIC_AI_INTEGRATION_NAME, GOOGLE_GENAI_INTEGRATION_NAME, createLangChainCallbackHandler } from '@sentry/core';\n\nconst supportedVersions = ['>=0.1.0 <2.0.0'];\n\n/**\n * Augments a callback handler list with Sentry's handler if not already present\n */\nfunction augmentCallbackHandlers(handlers, sentryHandler) {\n // Handle null/undefined - return array with just our handler\n if (!handlers) {\n return [sentryHandler];\n }\n\n // If handlers is already an array\n if (Array.isArray(handlers)) {\n // Check if our handler is already in the list\n if (handlers.includes(sentryHandler)) {\n return handlers;\n }\n // Add our handler to the list\n return [...handlers, sentryHandler];\n }\n\n // If it's a single handler object, convert to array\n if (typeof handlers === 'object') {\n return [handlers, sentryHandler];\n }\n\n // Unknown type - return original\n return handlers;\n}\n\n/**\n * Wraps Runnable methods (invoke, stream, batch) to inject Sentry callbacks at request time\n * Uses a Proxy to intercept method calls and augment the options.callbacks\n */\nfunction wrapRunnableMethod(\n originalMethod,\n sentryHandler,\n _methodName,\n) {\n return new Proxy(originalMethod, {\n apply(target, thisArg, args) {\n // LangChain Runnable method signatures:\n // invoke(input, options?) - options contains callbacks\n // stream(input, options?) - options contains callbacks\n // batch(inputs, options?) - options contains callbacks\n\n // Options is typically the second argument\n const optionsIndex = 1;\n let options = args[optionsIndex] ;\n\n // If options don't exist or aren't an object, create them\n if (!options || typeof options !== 'object' || Array.isArray(options)) {\n options = {};\n args[optionsIndex] = options;\n }\n\n // Inject our callback handler into options.callbacks (request time callbacks)\n const existingCallbacks = options.callbacks;\n const augmentedCallbacks = augmentCallbackHandlers(existingCallbacks, sentryHandler);\n options.callbacks = augmentedCallbacks;\n\n // Call original method with augmented options\n return Reflect.apply(target, thisArg, args);\n },\n }) ;\n}\n\n/**\n * Sentry LangChain instrumentation using OpenTelemetry.\n */\nclass SentryLangChainInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super('@sentry/instrumentation-langchain', SDK_VERSION, config);\n }\n\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n * We patch the BaseChatModel class methods to inject callbacks\n *\n * We hook into provider packages (@langchain/anthropic, @langchain/openai, etc.)\n * because @langchain/core is often bundled and not loaded as a separate module\n */\n init() {\n const modules = [];\n\n // Hook into common LangChain provider packages\n const providerPackages = [\n '@langchain/anthropic',\n '@langchain/openai',\n '@langchain/google-genai',\n '@langchain/mistralai',\n '@langchain/google-vertexai',\n '@langchain/groq',\n ];\n\n for (const packageName of providerPackages) {\n // In CJS, LangChain packages re-export from dist/index.cjs files.\n // Patching only the root module sometimes misses the real implementation or\n // gets overwritten when that file is loaded. We add a file-level patch so that\n // _patch runs again on the concrete implementation\n modules.push(\n new InstrumentationNodeModuleDefinition(\n packageName,\n supportedVersions,\n this._patch.bind(this),\n exports$1 => exports$1,\n [\n new InstrumentationNodeModuleFile(\n `${packageName}/dist/index.cjs`,\n supportedVersions,\n this._patch.bind(this),\n exports$1 => exports$1,\n ),\n ],\n ),\n );\n }\n\n // Hook into main 'langchain' package to catch initChatModel (v1+)\n modules.push(\n new InstrumentationNodeModuleDefinition(\n 'langchain',\n supportedVersions,\n this._patch.bind(this),\n exports$1 => exports$1,\n [\n // To catch the CJS build that contains ConfigurableModel / initChatModel for v1\n new InstrumentationNodeModuleFile(\n 'langchain/dist/chat_models/universal.cjs',\n supportedVersions,\n this._patch.bind(this),\n exports$1 => exports$1,\n ),\n ],\n ),\n );\n\n return modules;\n }\n\n /**\n * Core patch logic - patches chat model methods to inject Sentry callbacks\n * This is called when a LangChain provider package is loaded\n */\n _patch(exports$1) {\n // Skip AI provider wrapping now that LangChain is actually being used\n // This prevents duplicate spans from Anthropic/OpenAI/GoogleGenAI standalone integrations\n _INTERNAL_skipAiProviderWrapping([\n OPENAI_INTEGRATION_NAME,\n ANTHROPIC_AI_INTEGRATION_NAME,\n GOOGLE_GENAI_INTEGRATION_NAME,\n ]);\n\n // Create a shared handler instance\n const sentryHandler = createLangChainCallbackHandler(this.getConfig());\n\n // Patch Runnable methods to inject callbacks at request time\n // This directly manipulates options.callbacks that LangChain uses\n this._patchRunnableMethods(exports$1, sentryHandler);\n\n return exports$1;\n }\n\n /**\n * Patches chat model methods (invoke, stream, batch) to inject Sentry callbacks\n * Finds a chat model class from the provider package exports and patches its prototype methods\n */\n _patchRunnableMethods(exports$1, sentryHandler) {\n // Known chat model class names for each provider\n const knownChatModelNames = [\n 'ChatAnthropic',\n 'ChatOpenAI',\n 'ChatGoogleGenerativeAI',\n 'ChatMistralAI',\n 'ChatVertexAI',\n 'ChatGroq',\n 'ConfigurableModel',\n ];\n\n const exportsToPatch = (exports$1.universal_exports ?? exports$1) ;\n\n const chatModelClass = Object.values(exportsToPatch).find(exp => {\n return typeof exp === 'function' && knownChatModelNames.includes(exp.name);\n }) ;\n\n if (!chatModelClass) {\n return;\n }\n\n // Patch directly on chatModelClass.prototype\n const targetProto = chatModelClass.prototype ;\n\n // Skip if already patched (both file-level and module-level hooks resolve to the same prototype)\n if (targetProto.__sentry_patched__) {\n return;\n }\n targetProto.__sentry_patched__ = true;\n\n // Patch the methods (invoke, stream, batch)\n // All chat model instances will inherit these patched methods\n const methodsToPatch = ['invoke', 'stream', 'batch'] ;\n\n for (const methodName of methodsToPatch) {\n const method = targetProto[methodName];\n if (typeof method === 'function') {\n targetProto[methodName] = wrapRunnableMethod(\n method ,\n sentryHandler);\n }\n }\n }\n}\n\nexport { SentryLangChainInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", - "import { LANGCHAIN_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryLangChainInstrumentation } from './instrumentation.js';\n\nconst instrumentLangChain = generateInstrumentOnce(\n LANGCHAIN_INTEGRATION_NAME,\n options => new SentryLangChainInstrumentation(options),\n);\n\nconst _langChainIntegration = ((options = {}) => {\n return {\n name: LANGCHAIN_INTEGRATION_NAME,\n setupOnce() {\n instrumentLangChain(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for LangChain.\n *\n * This integration is enabled by default.\n *\n * When configured, this integration automatically instruments LangChain runnable instances\n * to capture telemetry data by injecting Sentry callback handlers into all LangChain calls.\n *\n * **Important:** This integration automatically skips wrapping the OpenAI, Anthropic, and Google GenAI\n * providers to prevent duplicate spans when using LangChain with these AI providers.\n * LangChain handles the instrumentation for all underlying AI providers.\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n * import { ChatOpenAI } from '@langchain/openai';\n *\n * Sentry.init({\n * integrations: [Sentry.langChainIntegration()],\n * sendDefaultPii: true, // Enable to record inputs/outputs\n * });\n *\n * // LangChain calls are automatically instrumented\n * const model = new ChatOpenAI();\n * await model.invoke(\"What is the capital of France?\");\n * ```\n *\n * ## Manual Callback Handler\n *\n * You can also manually add the Sentry callback handler alongside other callbacks:\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n * import { ChatOpenAI } from '@langchain/openai';\n *\n * const sentryHandler = Sentry.createLangChainCallbackHandler({\n * recordInputs: true,\n * recordOutputs: true\n * });\n *\n * const model = new ChatOpenAI();\n * await model.invoke(\n * \"What is the capital of France?\",\n * { callbacks: [sentryHandler, myOtherCallback] }\n * );\n * ```\n *\n * ## Options\n *\n * - `recordInputs`: Whether to record input messages/prompts (default: respects `sendDefaultPii` client option)\n * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)\n *\n * ### Default Behavior\n *\n * By default, the integration will:\n * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options\n * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled\n *\n * @example\n * ```javascript\n * // Record inputs and outputs when sendDefaultPii is false\n * Sentry.init({\n * integrations: [\n * Sentry.langChainIntegration({\n * recordInputs: true,\n * recordOutputs: true\n * })\n * ],\n * });\n *\n * // Never record inputs/outputs regardless of sendDefaultPii\n * Sentry.init({\n * sendDefaultPii: true,\n * integrations: [\n * Sentry.langChainIntegration({\n * recordInputs: false,\n * recordOutputs: false\n * })\n * ],\n * });\n * ```\n *\n * ## Supported Events\n *\n * The integration captures the following LangChain lifecycle events:\n * - LLM/Chat Model: start, end, error\n * - Chain: start, end, error\n * - Tool: start, end, error\n *\n */\nconst langChainIntegration = defineIntegration(_langChainIntegration);\n\nexport { instrumentLangChain, langChainIntegration };\n//# sourceMappingURL=index.js.map\n", - "import { InstrumentationBase, InstrumentationNodeModuleDefinition, InstrumentationNodeModuleFile } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, instrumentLangGraph } from '@sentry/core';\n\nconst supportedVersions = ['>=0.0.0 <2.0.0'];\n\n/**\n * Sentry LangGraph instrumentation using OpenTelemetry.\n */\nclass SentryLangGraphInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super('@sentry/instrumentation-langgraph', SDK_VERSION, config);\n }\n\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n '@langchain/langgraph',\n supportedVersions,\n this._patch.bind(this),\n exports$1 => exports$1,\n [\n new InstrumentationNodeModuleFile(\n /**\n * In CJS, LangGraph packages re-export from dist/index.cjs files.\n * Patching only the root module sometimes misses the real implementation or\n * gets overwritten when that file is loaded. We add a file-level patch so that\n * _patch runs again on the concrete implementation\n */\n '@langchain/langgraph/dist/index.cjs',\n supportedVersions,\n this._patch.bind(this),\n exports$1 => exports$1,\n ),\n ],\n );\n return module;\n }\n\n /**\n * Core patch logic applying instrumentation to the LangGraph module.\n */\n _patch(exports$1) {\n // Patch StateGraph.compile to instrument both compile() and invoke()\n if (exports$1.StateGraph && typeof exports$1.StateGraph === 'function') {\n instrumentLangGraph(\n exports$1.StateGraph.prototype ,\n this.getConfig(),\n );\n }\n\n return exports$1;\n }\n}\n\nexport { SentryLangGraphInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", - "import { LANGGRAPH_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryLangGraphInstrumentation } from './instrumentation.js';\n\nconst instrumentLangGraph = generateInstrumentOnce(\n LANGGRAPH_INTEGRATION_NAME,\n options => new SentryLangGraphInstrumentation(options),\n);\n\nconst _langGraphIntegration = ((options = {}) => {\n return {\n name: LANGGRAPH_INTEGRATION_NAME,\n setupOnce() {\n instrumentLangGraph(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for LangGraph.\n *\n * This integration is enabled by default.\n *\n * When configured, this integration automatically instruments LangGraph StateGraph and compiled graph instances\n * to capture telemetry data following OpenTelemetry Semantic Conventions for Generative AI.\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n * integrations: [Sentry.langGraphIntegration()],\n * });\n * ```\n *\n * ## Options\n *\n * - `recordInputs`: Whether to record input messages (default: respects `sendDefaultPii` client option)\n * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)\n *\n * ### Default Behavior\n *\n * By default, the integration will:\n * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options\n * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled\n *\n * @example\n * ```javascript\n * // Record inputs and outputs when sendDefaultPii is false\n * Sentry.init({\n * integrations: [\n * Sentry.langGraphIntegration({\n * recordInputs: true,\n * recordOutputs: true\n * })\n * ],\n * });\n *\n * // Never record inputs/outputs regardless of sendDefaultPii\n * Sentry.init({\n * sendDefaultPii: true,\n * integrations: [\n * Sentry.langGraphIntegration({\n * recordInputs: false,\n * recordOutputs: false\n * })\n * ],\n * });\n * ```\n *\n * ## Captured Operations\n *\n * The integration captures the following LangGraph operations:\n * - **Agent Creation** (`StateGraph.compile()`) - Creates a `gen_ai.create_agent` span\n * - **Agent Invocation** (`CompiledGraph.invoke()`) - Creates a `gen_ai.invoke_agent` span\n *\n * ## Captured Data\n *\n * When `recordInputs` and `recordOutputs` are enabled, the integration captures:\n * - Input messages from the graph state\n * - Output messages and LLM responses\n * - Tool calls made during agent execution\n * - Agent and graph names\n * - Available tools configured in the graph\n *\n */\nconst langGraphIntegration = defineIntegration(_langGraphIntegration);\n\nexport { instrumentLangGraph, langGraphIntegration };\n//# sourceMappingURL=index.js.map\n", - "import { InstrumentationBase } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION } from '@sentry/core';\nimport { patchFirestore } from './patches/firestore.js';\nimport { patchFunctions } from './patches/functions.js';\n\nconst DefaultFirebaseInstrumentationConfig = {};\nconst firestoreSupportedVersions = ['>=3.0.0 <5']; // firebase 9+\nconst functionsSupportedVersions = ['>=6.0.0 <7']; // firebase-functions v2\n\n/**\n * Instrumentation for Firebase services, specifically Firestore.\n */\nclass FirebaseInstrumentation extends InstrumentationBase {\n constructor(config = DefaultFirebaseInstrumentationConfig) {\n super('@sentry/instrumentation-firebase', SDK_VERSION, config);\n }\n\n /**\n * sets config\n * @param config\n */\n setConfig(config = {}) {\n super.setConfig({ ...DefaultFirebaseInstrumentationConfig, ...config });\n }\n\n /**\n *\n * @protected\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n init() {\n const modules = [];\n\n modules.push(patchFirestore(this.tracer, firestoreSupportedVersions, this._wrap, this._unwrap, this.getConfig()));\n modules.push(patchFunctions(this.tracer, functionsSupportedVersions, this._wrap, this._unwrap, this.getConfig()));\n\n return modules;\n }\n}\n\nexport { FirebaseInstrumentation };\n//# sourceMappingURL=firebaseInstrumentation.js.map\n", - "import * as net from 'node:net';\nimport { SpanKind, context, trace, diag } from '@opentelemetry/api';\nimport { InstrumentationNodeModuleDefinition, InstrumentationNodeModuleFile, isWrapped, safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\nimport { ATTR_DB_OPERATION_NAME, ATTR_DB_NAMESPACE, ATTR_DB_COLLECTION_NAME, ATTR_DB_SYSTEM_NAME, ATTR_SERVER_ADDRESS, ATTR_SERVER_PORT } from '@opentelemetry/semantic-conventions';\n\n// Inline minimal types used from `shimmer` to avoid importing shimmer's types directly.\n// We only need the shape for `wrap` and `unwrap` used in this file.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n/**\n *\n * @param tracer - Opentelemetry Tracer\n * @param firestoreSupportedVersions - supported version of firebase/firestore\n * @param wrap - reference to native instrumentation wrap function\n * @param unwrap - reference to native instrumentation wrap function\n */\nfunction patchFirestore(\n tracer,\n firestoreSupportedVersions,\n wrap,\n unwrap,\n config,\n) {\n const defaultFirestoreSpanCreationHook = () => {};\n\n let firestoreSpanCreationHook = defaultFirestoreSpanCreationHook;\n const configFirestoreSpanCreationHook = config.firestoreSpanCreationHook;\n\n if (typeof configFirestoreSpanCreationHook === 'function') {\n firestoreSpanCreationHook = (span) => {\n safeExecuteInTheMiddle(\n () => configFirestoreSpanCreationHook(span),\n error => {\n if (!error) {\n return;\n }\n diag.error(error?.message);\n },\n true,\n );\n };\n }\n\n const moduleFirestoreCJS = new InstrumentationNodeModuleDefinition(\n '@firebase/firestore',\n firestoreSupportedVersions,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (moduleExports) => wrapMethods(moduleExports, wrap, unwrap, tracer, firestoreSpanCreationHook),\n );\n const files = [\n '@firebase/firestore/dist/lite/index.node.cjs.js',\n '@firebase/firestore/dist/lite/index.node.mjs.js',\n '@firebase/firestore/dist/lite/index.rn.esm2017.js',\n '@firebase/firestore/dist/lite/index.cjs.js',\n ];\n\n for (const file of files) {\n moduleFirestoreCJS.files.push(\n new InstrumentationNodeModuleFile(\n file,\n firestoreSupportedVersions,\n moduleExports => wrapMethods(moduleExports, wrap, unwrap, tracer, firestoreSpanCreationHook),\n moduleExports => unwrapMethods(moduleExports, unwrap),\n ),\n );\n }\n\n return moduleFirestoreCJS;\n}\n\nfunction wrapMethods(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n moduleExports,\n wrap,\n unwrap,\n tracer,\n firestoreSpanCreationHook,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n unwrapMethods(moduleExports, unwrap);\n\n wrap(moduleExports, 'addDoc', patchAddDoc(tracer, firestoreSpanCreationHook));\n wrap(moduleExports, 'getDocs', patchGetDocs(tracer, firestoreSpanCreationHook));\n wrap(moduleExports, 'setDoc', patchSetDoc(tracer, firestoreSpanCreationHook));\n wrap(moduleExports, 'deleteDoc', patchDeleteDoc(tracer, firestoreSpanCreationHook));\n\n return moduleExports;\n}\n\nfunction unwrapMethods(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n moduleExports,\n unwrap,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n for (const method of ['addDoc', 'getDocs', 'setDoc', 'deleteDoc']) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isWrapped(moduleExports[method])) {\n unwrap(moduleExports, method);\n }\n }\n return moduleExports;\n}\n\nfunction patchAddDoc(\n tracer,\n firestoreSpanCreationHook,\n)\n\n {\n return function addDoc(original) {\n return function (\n reference,\n data,\n ) {\n const span = startDBSpan(tracer, 'addDoc', reference);\n firestoreSpanCreationHook(span);\n return executeContextWithSpan(span, () => {\n return original(reference, data);\n });\n };\n };\n}\n\nfunction patchDeleteDoc(\n tracer,\n firestoreSpanCreationHook,\n)\n\n {\n return function deleteDoc(original) {\n return function (reference) {\n const span = startDBSpan(tracer, 'deleteDoc', reference.parent || reference);\n firestoreSpanCreationHook(span);\n return executeContextWithSpan(span, () => {\n return original(reference);\n });\n };\n };\n}\n\nfunction patchGetDocs(\n tracer,\n firestoreSpanCreationHook,\n)\n\n {\n return function getDocs(original) {\n return function (\n reference,\n ) {\n const span = startDBSpan(tracer, 'getDocs', reference);\n firestoreSpanCreationHook(span);\n return executeContextWithSpan(span, () => {\n return original(reference);\n });\n };\n };\n}\n\nfunction patchSetDoc(\n tracer,\n firestoreSpanCreationHook,\n)\n\n {\n return function setDoc(original) {\n return function (\n reference,\n data,\n options,\n ) {\n const span = startDBSpan(tracer, 'setDoc', reference.parent || reference);\n firestoreSpanCreationHook(span);\n\n return executeContextWithSpan(span, () => {\n return typeof options !== 'undefined' ? original(reference, data, options) : original(reference, data);\n });\n };\n };\n}\n\nfunction executeContextWithSpan(span, callback) {\n return context.with(trace.setSpan(context.active(), span), () => {\n return safeExecuteInTheMiddle(\n () => {\n return callback();\n },\n err => {\n if (err) {\n span.recordException(err);\n }\n span.end();\n },\n true,\n );\n });\n}\n\nfunction startDBSpan(\n tracer,\n spanName,\n reference,\n) {\n const span = tracer.startSpan(`${spanName} ${reference.path}`, { kind: SpanKind.CLIENT });\n addAttributes(span, reference);\n span.setAttribute(ATTR_DB_OPERATION_NAME, spanName);\n return span;\n}\n\n/**\n * Gets the server address and port attributes from the Firestore settings.\n * It's best effort to extract the address and port from the settings, especially for IPv6.\n * @param span - The span to set attributes on.\n * @param settings - The Firestore settings containing host information.\n */\nfunction getPortAndAddress(settings)\n\n {\n let address;\n let port;\n\n if (typeof settings.host === 'string') {\n if (settings.host.startsWith('[')) {\n // IPv6 addresses can be enclosed in square brackets, e.g., [2001:db8::1]:8080\n if (settings.host.endsWith(']')) {\n // IPv6 with square brackets without port\n address = settings.host.replace(/^\\[|\\]$/g, '');\n } else if (settings.host.includes(']:')) {\n // IPv6 with square brackets with port\n const lastColonIndex = settings.host.lastIndexOf(':');\n if (lastColonIndex !== -1) {\n address = settings.host.slice(1, lastColonIndex).replace(/^\\[|\\]$/g, '');\n port = settings.host.slice(lastColonIndex + 1);\n }\n }\n } else {\n // IPv4 or IPv6 without square brackets\n // If it's an IPv6 address without square brackets, we assume it does not have a port.\n if (net.isIPv6(settings.host)) {\n address = settings.host;\n }\n // If it's an IPv4 address, we can extract the port if it exists.\n else {\n const lastColonIndex = settings.host.lastIndexOf(':');\n if (lastColonIndex !== -1) {\n address = settings.host.slice(0, lastColonIndex);\n port = settings.host.slice(lastColonIndex + 1);\n } else {\n address = settings.host;\n }\n }\n }\n }\n return {\n address: address,\n port: port ? parseInt(port, 10) : undefined,\n };\n}\n\nfunction addAttributes(\n span,\n reference,\n) {\n const firestoreApp = reference.firestore.app;\n const firestoreOptions = firestoreApp.options;\n const json = reference.firestore.toJSON() || {};\n const settings = json.settings || {};\n\n const attributes = {\n [ATTR_DB_COLLECTION_NAME]: reference.path,\n [ATTR_DB_NAMESPACE]: firestoreApp.name,\n [ATTR_DB_SYSTEM_NAME]: 'firebase.firestore',\n 'firebase.firestore.type': reference.type,\n 'firebase.firestore.options.projectId': firestoreOptions.projectId,\n 'firebase.firestore.options.appId': firestoreOptions.appId,\n 'firebase.firestore.options.messagingSenderId': firestoreOptions.messagingSenderId,\n 'firebase.firestore.options.storageBucket': firestoreOptions.storageBucket,\n };\n\n const { address, port } = getPortAndAddress(settings);\n\n if (address) {\n attributes[ATTR_SERVER_ADDRESS] = address;\n }\n if (port) {\n attributes[ATTR_SERVER_PORT] = port;\n }\n\n span.setAttributes(attributes);\n}\n\nexport { getPortAndAddress, patchFirestore };\n//# sourceMappingURL=firestore.js.map\n", - "import { SpanKind, context, trace, diag } from '@opentelemetry/api';\nimport { InstrumentationNodeModuleDefinition, InstrumentationNodeModuleFile, isWrapped, safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\n\n/**\n * Patches Firebase Functions v2 to add OpenTelemetry instrumentation\n * @param tracer - Opentelemetry Tracer\n * @param functionsSupportedVersions - supported versions of firebase-functions\n * @param wrap - reference to native instrumentation wrap function\n * @param unwrap - reference to native instrumentation unwrap function\n * @param config - Firebase instrumentation config\n */\nfunction patchFunctions(\n tracer,\n functionsSupportedVersions,\n wrap,\n unwrap,\n config,\n) {\n let requestHook = () => {};\n let responseHook = () => {};\n const errorHook = config.functions?.errorHook;\n const configRequestHook = config.functions?.requestHook;\n const configResponseHook = config.functions?.responseHook;\n\n if (typeof configResponseHook === 'function') {\n responseHook = (span, err) => {\n safeExecuteInTheMiddle(\n () => configResponseHook(span, err),\n error => {\n if (!error) {\n return;\n }\n diag.error(error?.message);\n },\n true,\n );\n };\n }\n if (typeof configRequestHook === 'function') {\n requestHook = (span) => {\n safeExecuteInTheMiddle(\n () => configRequestHook(span),\n error => {\n if (!error) {\n return;\n }\n diag.error(error?.message);\n },\n true,\n );\n };\n }\n\n const moduleFunctionsCJS = new InstrumentationNodeModuleDefinition('firebase-functions', functionsSupportedVersions);\n const modulesToInstrument = [\n { name: 'firebase-functions/lib/v2/providers/https.js', triggerType: 'function' },\n { name: 'firebase-functions/lib/v2/providers/firestore.js', triggerType: 'firestore' },\n { name: 'firebase-functions/lib/v2/providers/scheduler.js', triggerType: 'scheduler' },\n { name: 'firebase-functions/lib/v2/storage.js', triggerType: 'storage' },\n ] ;\n\n modulesToInstrument.forEach(({ name, triggerType }) => {\n moduleFunctionsCJS.files.push(\n new InstrumentationNodeModuleFile(\n name,\n functionsSupportedVersions,\n moduleExports =>\n wrapCommonFunctions(\n moduleExports,\n wrap,\n unwrap,\n tracer,\n { requestHook, responseHook, errorHook },\n triggerType,\n ),\n moduleExports => unwrapCommonFunctions(moduleExports, unwrap),\n ),\n );\n });\n\n return moduleFunctionsCJS;\n}\n\n/**\n * Patches Cloud Functions for Firebase (v2) to add OpenTelemetry instrumentation\n *\n * @param tracer - Opentelemetry Tracer\n * @param functionsConfig - Firebase instrumentation config\n * @param triggerType - Type of trigger\n * @returns A function that patches the function\n */\nfunction patchV2Functions(\n tracer,\n functionsConfig,\n triggerType,\n) {\n return function v2FunctionsWrapper(original) {\n return function ( ...args) {\n const handler = typeof args[0] === 'function' ? args[0] : args[1];\n const documentOrOptions = typeof args[0] === 'function' ? undefined : args[0];\n\n if (!handler) {\n return original.call(this, ...args);\n }\n\n const wrappedHandler = async function ( ...handlerArgs) {\n const functionName = process.env.FUNCTION_TARGET || process.env.K_SERVICE || 'unknown';\n const span = tracer.startSpan(`firebase.function.${triggerType}`, {\n kind: SpanKind.SERVER,\n });\n\n const attributes = {\n 'faas.name': functionName,\n 'faas.trigger': triggerType,\n 'faas.provider': 'firebase',\n };\n\n if (process.env.GCLOUD_PROJECT) {\n attributes['cloud.project_id'] = process.env.GCLOUD_PROJECT;\n }\n\n if (process.env.EVENTARC_CLOUD_EVENT_SOURCE) {\n attributes['cloud.event_source'] = process.env.EVENTARC_CLOUD_EVENT_SOURCE;\n }\n\n span.setAttributes(attributes);\n functionsConfig?.requestHook?.(span);\n\n // Can be changed to safeExecuteInTheMiddleAsync once following is merged and released\n // https://github.com/open-telemetry/opentelemetry-js/pull/6032\n return context.with(trace.setSpan(context.active(), span), async () => {\n let error;\n let result;\n\n try {\n result = await handler.apply(this, handlerArgs);\n } catch (e) {\n error = e ;\n }\n\n functionsConfig?.responseHook?.(span, error);\n\n if (error) {\n span.recordException(error);\n }\n\n span.end();\n\n if (error) {\n await functionsConfig?.errorHook?.(span, error);\n throw error;\n }\n\n return result;\n });\n };\n\n if (documentOrOptions) {\n return original.call(this, documentOrOptions, wrappedHandler);\n } else {\n return original.call(this, wrappedHandler);\n }\n };\n };\n}\n\nfunction wrapCommonFunctions(\n moduleExports,\n wrap,\n unwrap,\n tracer,\n functionsConfig,\n triggerType,\n) {\n unwrapCommonFunctions(moduleExports, unwrap);\n\n switch (triggerType) {\n case 'function':\n wrap(moduleExports, 'onRequest', patchV2Functions(tracer, functionsConfig, 'http.request'));\n wrap(moduleExports, 'onCall', patchV2Functions(tracer, functionsConfig, 'http.call'));\n break;\n\n case 'firestore':\n wrap(moduleExports, 'onDocumentCreated', patchV2Functions(tracer, functionsConfig, 'firestore.document.created'));\n wrap(moduleExports, 'onDocumentUpdated', patchV2Functions(tracer, functionsConfig, 'firestore.document.updated'));\n wrap(moduleExports, 'onDocumentDeleted', patchV2Functions(tracer, functionsConfig, 'firestore.document.deleted'));\n wrap(moduleExports, 'onDocumentWritten', patchV2Functions(tracer, functionsConfig, 'firestore.document.written'));\n wrap(\n moduleExports,\n 'onDocumentCreatedWithAuthContext',\n patchV2Functions(tracer, functionsConfig, 'firestore.document.created'),\n );\n wrap(\n moduleExports,\n 'onDocumentUpdatedWithAuthContext',\n patchV2Functions(tracer, functionsConfig, 'firestore.document.updated'),\n );\n\n wrap(\n moduleExports,\n 'onDocumentDeletedWithAuthContext',\n patchV2Functions(tracer, functionsConfig, 'firestore.document.deleted'),\n );\n\n wrap(\n moduleExports,\n 'onDocumentWrittenWithAuthContext',\n patchV2Functions(tracer, functionsConfig, 'firestore.document.written'),\n );\n break;\n\n case 'scheduler':\n wrap(moduleExports, 'onSchedule', patchV2Functions(tracer, functionsConfig, 'scheduler.scheduled'));\n break;\n\n case 'storage':\n wrap(moduleExports, 'onObjectFinalized', patchV2Functions(tracer, functionsConfig, 'storage.object.finalized'));\n wrap(moduleExports, 'onObjectArchived', patchV2Functions(tracer, functionsConfig, 'storage.object.archived'));\n wrap(moduleExports, 'onObjectDeleted', patchV2Functions(tracer, functionsConfig, 'storage.object.deleted'));\n wrap(\n moduleExports,\n 'onObjectMetadataUpdated',\n patchV2Functions(tracer, functionsConfig, 'storage.object.metadataUpdated'),\n );\n break;\n }\n\n return moduleExports;\n}\n\nfunction unwrapCommonFunctions(\n moduleExports,\n unwrap,\n) {\n const methods = [\n 'onSchedule',\n 'onRequest',\n 'onCall',\n 'onObjectFinalized',\n 'onObjectArchived',\n 'onObjectDeleted',\n 'onObjectMetadataUpdated',\n 'onDocumentCreated',\n 'onDocumentUpdated',\n 'onDocumentDeleted',\n 'onDocumentWritten',\n 'onDocumentCreatedWithAuthContext',\n 'onDocumentUpdatedWithAuthContext',\n 'onDocumentDeletedWithAuthContext',\n 'onDocumentWrittenWithAuthContext',\n ];\n\n for (const method of methods) {\n if (isWrapped(moduleExports[method])) {\n unwrap(moduleExports, method);\n }\n }\n return moduleExports;\n}\n\nexport { patchFunctions, patchV2Functions };\n//# sourceMappingURL=functions.js.map\n", - "import { defineIntegration, captureException, flush, SEMANTIC_ATTRIBUTE_SENTRY_OP } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\nimport { FirebaseInstrumentation } from './otel/firebaseInstrumentation.js';\n\nconst INTEGRATION_NAME = 'Firebase';\n\nconst config = {\n firestoreSpanCreationHook: span => {\n addOriginToSpan(span, 'auto.firebase.otel.firestore');\n\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'db.query');\n },\n functions: {\n requestHook: span => {\n addOriginToSpan(span, 'auto.firebase.otel.functions');\n\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'http.request');\n },\n errorHook: async (_, error) => {\n if (error) {\n captureException(error, {\n mechanism: {\n type: 'auto.firebase.otel.functions',\n handled: false,\n },\n });\n await flush(2000);\n }\n },\n },\n};\n\nconst instrumentFirebase = generateInstrumentOnce(INTEGRATION_NAME, () => new FirebaseInstrumentation(config));\n\nconst _firebaseIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentFirebase();\n },\n };\n}) ;\n\nconst firebaseIntegration = defineIntegration(_firebaseIntegration);\n\nexport { firebaseIntegration, instrumentFirebase };\n//# sourceMappingURL=firebase.js.map\n", - "import { instrumentSentryHttp, instrumentOtelHttp } from '../http.js';\nimport { instrumentAmqplib, amqplibIntegration } from './amqplib.js';\nimport { instrumentAnthropicAi, anthropicAIIntegration } from './anthropic-ai/index.js';\nimport { instrumentConnect, connectIntegration } from './connect.js';\nimport { instrumentExpress, expressIntegration } from './express.js';\nimport { instrumentFastify, instrumentFastifyV3, fastifyIntegration } from './fastify/index.js';\nimport { instrumentFirebase, firebaseIntegration } from './firebase/firebase.js';\nimport { instrumentGenericPool, genericPoolIntegration } from './genericPool.js';\nimport { instrumentGoogleGenAI, googleGenAIIntegration } from './google-genai/index.js';\nimport { instrumentGraphql, graphqlIntegration } from './graphql.js';\nimport { instrumentHapi, hapiIntegration } from './hapi/index.js';\nimport { instrumentHono, honoIntegration } from './hono/index.js';\nimport { instrumentKafka, kafkaIntegration } from './kafka.js';\nimport { instrumentKoa, koaIntegration } from './koa.js';\nimport { instrumentLangChain, langChainIntegration } from './langchain/index.js';\nimport { instrumentLangGraph, langGraphIntegration } from './langgraph/index.js';\nimport { instrumentLruMemoizer, lruMemoizerIntegration } from './lrumemoizer.js';\nimport { instrumentMongo, mongoIntegration } from './mongo.js';\nimport { instrumentMongoose, mongooseIntegration } from './mongoose.js';\nimport { instrumentMysql, mysqlIntegration } from './mysql.js';\nimport { instrumentMysql2, mysql2Integration } from './mysql2.js';\nimport { instrumentOpenAi, openAIIntegration } from './openai/index.js';\nimport { instrumentPostgres, postgresIntegration } from './postgres.js';\nimport { instrumentPostgresJs, postgresJsIntegration } from './postgresjs.js';\nimport { prismaIntegration } from './prisma.js';\nimport { instrumentRedis, redisIntegration } from './redis.js';\nimport { instrumentTedious, tediousIntegration } from './tedious.js';\nimport { instrumentVercelAi, vercelAIIntegration } from './vercelai/index.js';\n\n/**\n * With OTEL, all performance integrations will be added, as OTEL only initializes them when the patched package is actually required.\n */\nfunction getAutoPerformanceIntegrations() {\n return [\n expressIntegration(),\n fastifyIntegration(),\n graphqlIntegration(),\n honoIntegration(),\n mongoIntegration(),\n mongooseIntegration(),\n mysqlIntegration(),\n mysql2Integration(),\n redisIntegration(),\n postgresIntegration(),\n prismaIntegration(),\n hapiIntegration(),\n koaIntegration(),\n connectIntegration(),\n tediousIntegration(),\n genericPoolIntegration(),\n kafkaIntegration(),\n amqplibIntegration(),\n lruMemoizerIntegration(),\n // AI providers\n // LangChain must come first to disable AI provider integrations before they instrument\n langChainIntegration(),\n langGraphIntegration(),\n vercelAIIntegration(),\n openAIIntegration(),\n anthropicAIIntegration(),\n googleGenAIIntegration(),\n postgresJsIntegration(),\n firebaseIntegration(),\n ];\n}\n\n/**\n * Get a list of methods to instrument OTEL, when preload instrumentation.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getOpenTelemetryInstrumentationToPreload() {\n return [\n instrumentSentryHttp,\n instrumentOtelHttp,\n instrumentExpress,\n instrumentConnect,\n instrumentFastify,\n instrumentFastifyV3,\n instrumentHapi,\n instrumentHono,\n instrumentKafka,\n instrumentKoa,\n instrumentLruMemoizer,\n instrumentMongo,\n instrumentMongoose,\n instrumentMysql,\n instrumentMysql2,\n instrumentPostgres,\n instrumentHapi,\n instrumentGraphql,\n instrumentRedis,\n instrumentTedious,\n instrumentGenericPool,\n instrumentAmqplib,\n instrumentLangChain,\n instrumentVercelAi,\n instrumentOpenAi,\n instrumentPostgresJs,\n instrumentFirebase,\n instrumentAnthropicAi,\n instrumentGoogleGenAI,\n instrumentLangGraph,\n ];\n}\n\nexport { getAutoPerformanceIntegrations, getOpenTelemetryInstrumentationToPreload };\n//# sourceMappingURL=index.js.map\n", - "import { trace, propagation, context } from '@opentelemetry/api';\nimport { defaultResource, resourceFromAttributes } from '@opentelemetry/resources';\nimport { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';\nimport { ATTR_SERVICE_VERSION, SEMRESATTRS_SERVICE_NAMESPACE, ATTR_SERVICE_NAME } from '@opentelemetry/semantic-conventions';\nimport { SDK_VERSION, debug } from '@sentry/core';\nimport { setupOpenTelemetryLogger, SentryContextManager, initializeEsmLoader } from '@sentry/node-core';\nimport { SentrySpanProcessor, SentrySampler, SentryPropagator } from '@sentry/opentelemetry';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { getOpenTelemetryInstrumentationToPreload } from '../integrations/tracing/index.js';\n\n// About 277h - this must fit into new Array(len)!\nconst MAX_MAX_SPAN_WAIT_DURATION = 1000000;\n\n/**\n * Initialize OpenTelemetry for Node.\n */\nfunction initOpenTelemetry(client, options = {}) {\n if (client.getOptions().debug) {\n setupOpenTelemetryLogger();\n }\n\n const [provider, asyncLocalStorageLookup] = setupOtel(client, options);\n client.traceProvider = provider;\n client.asyncLocalStorageLookup = asyncLocalStorageLookup;\n}\n\n/**\n * Preload OpenTelemetry for Node.\n * This can be used to preload instrumentation early, but set up Sentry later.\n * By preloading the OTEL instrumentation wrapping still happens early enough that everything works.\n */\nfunction preloadOpenTelemetry(options = {}) {\n const { debug: debug$1 } = options;\n\n if (debug$1) {\n debug.enable();\n }\n\n initializeEsmLoader();\n\n // These are all integrations that we need to pre-load to ensure they are set up before any other code runs\n getPreloadMethods(options.integrations).forEach(fn => {\n fn();\n\n if (debug$1) {\n debug.log(`[Sentry] Preloaded ${fn.id} instrumentation`);\n }\n });\n}\n\nfunction getPreloadMethods(integrationNames) {\n const instruments = getOpenTelemetryInstrumentationToPreload();\n\n if (!integrationNames) {\n return instruments;\n }\n\n // We match exact matches of instrumentation, but also match prefixes, e.g. \"Fastify.v5\" will match \"Fastify\"\n return instruments.filter(instrumentation => {\n const id = instrumentation.id;\n return integrationNames.some(integrationName => id === integrationName || id.startsWith(`${integrationName}.`));\n });\n}\n\n/** Just exported for tests. */\nfunction setupOtel(\n client,\n options = {},\n) {\n // Create and configure NodeTracerProvider\n const provider = new BasicTracerProvider({\n sampler: new SentrySampler(client),\n resource: defaultResource().merge(\n resourceFromAttributes({\n [ATTR_SERVICE_NAME]: 'node',\n // eslint-disable-next-line deprecation/deprecation\n [SEMRESATTRS_SERVICE_NAMESPACE]: 'sentry',\n [ATTR_SERVICE_VERSION]: SDK_VERSION,\n }),\n ),\n forceFlushTimeoutMillis: 500,\n spanProcessors: [\n new SentrySpanProcessor({\n timeout: _clampSpanProcessorTimeout(client.getOptions().maxSpanWaitDuration),\n }),\n ...(options.spanProcessors || []),\n ],\n });\n\n // Register as globals\n trace.setGlobalTracerProvider(provider);\n propagation.setGlobalPropagator(new SentryPropagator());\n\n const ctxManager = new SentryContextManager();\n context.setGlobalContextManager(ctxManager);\n\n return [provider, ctxManager.getAsyncLocalStorageLookup()];\n}\n\n/** Just exported for tests. */\nfunction _clampSpanProcessorTimeout(maxSpanWaitDuration) {\n if (maxSpanWaitDuration == null) {\n return undefined;\n }\n\n // We guard for a max. value here, because we create an array with this length\n // So if this value is too large, this would fail\n if (maxSpanWaitDuration > MAX_MAX_SPAN_WAIT_DURATION) {\n DEBUG_BUILD &&\n debug.warn(`\\`maxSpanWaitDuration\\` is too high, using the maximum value of ${MAX_MAX_SPAN_WAIT_DURATION}`);\n return MAX_MAX_SPAN_WAIT_DURATION;\n } else if (maxSpanWaitDuration <= 0 || Number.isNaN(maxSpanWaitDuration)) {\n DEBUG_BUILD && debug.warn('`maxSpanWaitDuration` must be a positive number, using default value instead.');\n return undefined;\n }\n\n return maxSpanWaitDuration;\n}\n\nexport { _clampSpanProcessorTimeout, initOpenTelemetry, preloadOpenTelemetry, setupOtel };\n//# sourceMappingURL=initOtel.js.map\n", - "import { applySdkMetadata, hasSpansEnabled } from '@sentry/core';\nimport { init as init$1, validateOpenTelemetrySetup, getDefaultIntegrations as getDefaultIntegrations$1 } from '@sentry/node-core';\nimport { httpIntegration } from '../integrations/http.js';\nimport { nativeNodeFetchIntegration } from '../integrations/node-fetch.js';\nimport { getAutoPerformanceIntegrations } from '../integrations/tracing/index.js';\nimport { initOpenTelemetry } from './initOtel.js';\n\n/**\n * Get default integrations, excluding performance.\n */\nfunction getDefaultIntegrationsWithoutPerformance() {\n const nodeCoreIntegrations = getDefaultIntegrations$1();\n\n // Filter out the node-core HTTP and NodeFetch integrations and replace them with Node SDK's composite versions\n return nodeCoreIntegrations\n .filter(integration => integration.name !== 'Http' && integration.name !== 'NodeFetch')\n .concat(httpIntegration(), nativeNodeFetchIntegration());\n}\n\n/** Get the default integrations for the Node SDK. */\nfunction getDefaultIntegrations(options) {\n return [\n ...getDefaultIntegrationsWithoutPerformance(),\n // We only add performance integrations if tracing is enabled\n // Note that this means that without tracing enabled, e.g. `expressIntegration()` will not be added\n // This means that generally request isolation will work (because that is done by httpIntegration)\n // But `transactionName` will not be set automatically\n ...(hasSpansEnabled(options) ? getAutoPerformanceIntegrations() : []),\n ];\n}\n\n/**\n * Initialize Sentry for Node.\n */\nfunction init(options = {}) {\n return _init(options, getDefaultIntegrations);\n}\n\n/**\n * Internal initialization function.\n */\nfunction _init(\n options = {},\n getDefaultIntegrationsImpl,\n) {\n applySdkMetadata(options, 'node');\n\n const client = init$1({\n ...options,\n // Only use Node SDK defaults if none provided\n defaultIntegrations: options.defaultIntegrations ?? getDefaultIntegrationsImpl(options),\n });\n\n // Add Node SDK specific OpenTelemetry setup\n if (client && !options.skipOpenTelemetrySetup) {\n initOpenTelemetry(client, {\n spanProcessors: options.openTelemetrySpanProcessors,\n });\n validateOpenTelemetrySetup();\n }\n\n return client;\n}\n\n/**\n * Initialize Sentry for Node, without any integrations added by default.\n */\nfunction initWithoutDefaultIntegrations(options = {}) {\n return _init(options, () => []);\n}\n\nexport { getDefaultIntegrations, getDefaultIntegrationsWithoutPerformance, init, initWithoutDefaultIntegrations };\n//# sourceMappingURL=index.js.map\n", + "import { readFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { GLOBAL_OBJ } from '@sentry/core';\nimport '../nodeVersion.js';\n\nlet moduleCache;\nconst INTEGRATION_NAME = \"Modules\";\nfunction getServerModules() {\n if (typeof __SENTRY_SERVER_MODULES__ !== \"undefined\") {\n return __SENTRY_SERVER_MODULES__;\n }\n return GLOBAL_OBJ.__SENTRY_SERVER_MODULES__ ?? {};\n}\nconst _modulesIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n event.modules = {\n ...event.modules,\n ..._getModules()\n };\n return event;\n },\n getModules: _getModules\n };\n});\nconst modulesIntegration = _modulesIntegration;\nfunction collectModules() {\n return {\n ...getServerModules(),\n ...getModulesFromPackageJson(),\n ...{}\n };\n}\nfunction _getModules() {\n if (!moduleCache) {\n moduleCache = collectModules();\n }\n return moduleCache;\n}\nfunction getPackageJson() {\n try {\n const filePath = join(process.cwd(), \"package.json\");\n const packageJson = JSON.parse(readFileSync(filePath, \"utf8\"));\n return packageJson;\n } catch {\n return {};\n }\n}\nfunction getModulesFromPackageJson() {\n const packageJson = getPackageJson();\n return {\n ...packageJson.dependencies,\n ...packageJson.devDependencies\n };\n}\n\nexport { modulesIntegration };\n//# sourceMappingURL=modules.js.map\n", + "import { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '../../otel/instrument.js';\nimport { SentryNodeFetchInstrumentation } from './SentryNodeFetchInstrumentation.js';\n\nconst INTEGRATION_NAME = \"NodeFetch\";\nconst instrumentSentryNodeFetch = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n SentryNodeFetchInstrumentation,\n (options) => {\n return options;\n }\n);\nconst _nativeNodeFetchIntegration = ((options = {}) => {\n return {\n name: \"NodeFetch\",\n setupOnce() {\n instrumentSentryNodeFetch(options);\n }\n };\n});\nconst nativeNodeFetchIntegration = defineIntegration(_nativeNodeFetchIntegration);\n\nexport { nativeNodeFetchIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { defineIntegration, getClient, captureException, debug } from '@sentry/core';\nimport { isMainThread } from 'worker_threads';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { logAndExitProcess } from '../utils/errorhandling.js';\n\nconst INTEGRATION_NAME = \"OnUncaughtException\";\nconst onUncaughtExceptionIntegration = defineIntegration((options = {}) => {\n const optionsWithDefaults = {\n exitEvenIfOtherHandlersAreRegistered: false,\n ...options\n };\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n if (!isMainThread) {\n return;\n }\n global.process.on(\"uncaughtException\", makeErrorHandler(client, optionsWithDefaults));\n }\n };\n});\nfunction makeErrorHandler(client, options) {\n const timeout = 2e3;\n let caughtFirstError = false;\n let caughtSecondError = false;\n let calledFatalError = false;\n let firstError;\n const clientOptions = client.getOptions();\n return Object.assign(\n (error) => {\n let onFatalError = logAndExitProcess;\n if (options.onFatalError) {\n onFatalError = options.onFatalError;\n } else if (clientOptions.onFatalError) {\n onFatalError = clientOptions.onFatalError;\n }\n const userProvidedListenersCount = global.process.listeners(\"uncaughtException\").filter((listener) => {\n return (\n // as soon as we're using domains this listener is attached by node itself\n listener.name !== \"domainUncaughtExceptionClear\" && // the handler we register in this integration\n listener._errorHandler !== true\n );\n }).length;\n const processWouldExit = userProvidedListenersCount === 0;\n const shouldApplyFatalHandlingLogic = options.exitEvenIfOtherHandlersAreRegistered || processWouldExit;\n if (!caughtFirstError) {\n firstError = error;\n caughtFirstError = true;\n if (getClient() === client) {\n captureException(error, {\n originalException: error,\n captureContext: {\n level: \"fatal\"\n },\n mechanism: {\n handled: false,\n type: \"auto.node.onuncaughtexception\"\n }\n });\n }\n if (!calledFatalError && shouldApplyFatalHandlingLogic) {\n calledFatalError = true;\n onFatalError(error);\n }\n } else {\n if (shouldApplyFatalHandlingLogic) {\n if (calledFatalError) {\n DEBUG_BUILD && debug.warn(\n \"uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown\"\n );\n logAndExitProcess(error);\n } else if (!caughtSecondError) {\n caughtSecondError = true;\n setTimeout(() => {\n if (!calledFatalError) {\n calledFatalError = true;\n onFatalError(firstError, error);\n }\n }, timeout);\n }\n }\n }\n },\n { _errorHandler: true }\n );\n}\n\nexport { makeErrorHandler, onUncaughtExceptionIntegration };\n//# sourceMappingURL=onuncaughtexception.js.map\n", + "import { consoleSandbox, getClient, debug } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst DEFAULT_SHUTDOWN_TIMEOUT = 2e3;\nfunction logAndExitProcess(error) {\n consoleSandbox(() => {\n console.error(error);\n });\n const client = getClient();\n if (client === void 0) {\n DEBUG_BUILD && debug.warn(\"No NodeClient was defined, we are exiting the process now.\");\n global.process.exit(1);\n return;\n }\n const options = client.getOptions();\n const timeout = options?.shutdownTimeout && options.shutdownTimeout > 0 ? options.shutdownTimeout : DEFAULT_SHUTDOWN_TIMEOUT;\n client.close(timeout).then(\n (result) => {\n if (!result) {\n DEBUG_BUILD && debug.warn(\"We reached the timeout for emptying the request buffer, still exiting now!\");\n }\n global.process.exit(1);\n },\n (error2) => {\n DEBUG_BUILD && debug.error(error2);\n }\n );\n}\n\nexport { logAndExitProcess };\n//# sourceMappingURL=errorhandling.js.map\n", + "import { defineIntegration, getClient, withActiveSpan, consoleSandbox, captureException, isMatchingPattern } from '@sentry/core';\nimport { logAndExitProcess } from '../utils/errorhandling.js';\n\nconst INTEGRATION_NAME = \"OnUnhandledRejection\";\nconst DEFAULT_IGNORES = [\n {\n name: \"AI_NoOutputGeneratedError\"\n // When stream aborts in Vercel AI SDK V5, Vercel flush() fails with an error\n },\n {\n name: \"AbortError\"\n // When stream aborts in Vercel AI SDK V6\n }\n];\nconst _onUnhandledRejectionIntegration = ((options = {}) => {\n const opts = {\n mode: options.mode ?? \"warn\",\n ignore: [...DEFAULT_IGNORES, ...options.ignore ?? []]\n };\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n global.process.on(\"unhandledRejection\", makeUnhandledPromiseHandler(client, opts));\n }\n };\n});\nconst onUnhandledRejectionIntegration = defineIntegration(_onUnhandledRejectionIntegration);\nfunction extractErrorInfo(reason) {\n if (typeof reason !== \"object\" || reason === null) {\n return { name: \"\", message: String(reason ?? \"\") };\n }\n const errorLike = reason;\n const name = typeof errorLike.name === \"string\" ? errorLike.name : \"\";\n const message = typeof errorLike.message === \"string\" ? errorLike.message : String(reason);\n return { name, message };\n}\nfunction isMatchingReason(matcher, errorInfo) {\n const nameMatches = matcher.name === void 0 || isMatchingPattern(errorInfo.name, matcher.name, true);\n const messageMatches = matcher.message === void 0 || isMatchingPattern(errorInfo.message, matcher.message);\n return nameMatches && messageMatches;\n}\nfunction matchesIgnore(list, reason) {\n const errorInfo = extractErrorInfo(reason);\n return list.some((matcher) => isMatchingReason(matcher, errorInfo));\n}\nfunction makeUnhandledPromiseHandler(client, options) {\n return function sendUnhandledPromise(reason, _promise) {\n if (getClient() !== client) {\n return;\n }\n if (matchesIgnore(options.ignore ?? [], reason)) {\n return;\n }\n const level = options.mode === \"strict\" ? \"fatal\" : \"error\";\n const activeSpanForError = reason && typeof reason === \"object\" ? reason._sentry_active_span : void 0;\n const activeSpanWrapper = activeSpanForError ? (fn) => withActiveSpan(activeSpanForError, fn) : (fn) => fn();\n activeSpanWrapper(() => {\n captureException(reason, {\n originalException: reason,\n captureContext: {\n extra: { unhandledPromiseRejection: true },\n level\n },\n mechanism: {\n handled: false,\n type: \"auto.node.onunhandledrejection\"\n }\n });\n });\n handleRejection(reason, options.mode);\n };\n}\nfunction handleRejection(reason, mode) {\n const rejectionWarning = \"This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:\";\n if (mode === \"warn\") {\n consoleSandbox(() => {\n console.warn(rejectionWarning);\n console.error(reason && typeof reason === \"object\" && \"stack\" in reason ? reason.stack : reason);\n });\n } else if (mode === \"strict\") {\n consoleSandbox(() => {\n console.warn(rejectionWarning);\n });\n logAndExitProcess(reason);\n }\n}\n\nexport { makeUnhandledPromiseHandler, onUnhandledRejectionIntegration };\n//# sourceMappingURL=onunhandledrejection.js.map\n", + "import { defineIntegration, startSession, getIsolationScope, endSession } from '@sentry/core';\n\nconst INTEGRATION_NAME = \"ProcessSession\";\nconst processSessionIntegration = defineIntegration(() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n startSession();\n process.on(\"beforeExit\", () => {\n const session = getIsolationScope().getSession();\n if (session?.status !== \"ok\") {\n endSession();\n }\n });\n }\n };\n});\n\nexport { processSessionIntegration };\n//# sourceMappingURL=processSession.js.map\n", + "import * as http from 'node:http';\nimport { defineIntegration, debug, serializeEnvelope, suppressTracing } from '@sentry/core';\n\nconst INTEGRATION_NAME = \"Spotlight\";\nconst _spotlightIntegration = ((options = {}) => {\n const _options = {\n sidecarUrl: options.sidecarUrl || \"http://localhost:8969/stream\"\n };\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n try {\n if (process.env.NODE_ENV && process.env.NODE_ENV !== \"development\") {\n debug.warn(\"[Spotlight] It seems you're not in dev mode. Do you really want to have Spotlight enabled?\");\n }\n } catch {\n }\n connectToSpotlight(client, _options);\n }\n };\n});\nconst spotlightIntegration = defineIntegration(_spotlightIntegration);\nfunction connectToSpotlight(client, options) {\n const spotlightUrl = parseSidecarUrl(options.sidecarUrl);\n if (!spotlightUrl) {\n return;\n }\n let failedRequests = 0;\n client.on(\"beforeEnvelope\", (envelope) => {\n if (failedRequests > 3) {\n debug.warn(\"[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests\");\n return;\n }\n const serializedEnvelope = serializeEnvelope(envelope);\n suppressTracing(() => {\n const req = http.request(\n {\n method: \"POST\",\n path: spotlightUrl.pathname,\n hostname: spotlightUrl.hostname,\n port: spotlightUrl.port,\n headers: {\n \"Content-Type\": \"application/x-sentry-envelope\"\n }\n },\n (res) => {\n if (res.statusCode && res.statusCode >= 200 && res.statusCode < 400) {\n failedRequests = 0;\n }\n res.on(\"data\", () => {\n });\n res.on(\"end\", () => {\n });\n res.setEncoding(\"utf8\");\n }\n );\n req.on(\"error\", () => {\n failedRequests++;\n debug.warn(\"[Spotlight] Failed to send envelope to Spotlight Sidecar\");\n });\n req.write(serializedEnvelope);\n req.end();\n });\n });\n}\nfunction parseSidecarUrl(url) {\n try {\n return new URL(`${url}`);\n } catch {\n debug.warn(`[Spotlight] Invalid sidecar URL: ${url}`);\n return void 0;\n }\n}\n\nexport { INTEGRATION_NAME, spotlightIntegration };\n//# sourceMappingURL=spotlight.js.map\n", + "import { defineIntegration, maybeInstrument, consoleIntegration as consoleIntegration$1, GLOBAL_OBJ, CONSOLE_LEVELS, originalConsoleMethods, markFunctionWrapped, fill, triggerHandlers } from '@sentry/core';\n\nconst consoleIntegration = defineIntegration((options = {}) => {\n return {\n name: \"Console\",\n setup(client) {\n if (process.env.LAMBDA_TASK_ROOT) {\n maybeInstrument(\"console\", instrumentConsoleLambda);\n }\n const core = consoleIntegration$1({\n ...options,\n filter: [\n ...options.filter || [],\n // Deprecation on Node 26 for module.require(), which is used by IITM\n \"[DEP0205] DeprecationWarning\"\n ]\n });\n core.setup?.(client);\n }\n };\n});\nfunction instrumentConsoleLambda() {\n const consoleObj = GLOBAL_OBJ?.console;\n if (!consoleObj) {\n return;\n }\n CONSOLE_LEVELS.forEach((level) => {\n if (level in consoleObj) {\n patchWithDefineProperty(consoleObj, level);\n }\n });\n}\nfunction patchWithDefineProperty(consoleObj, level) {\n const nativeMethod = consoleObj[level];\n originalConsoleMethods[level] = nativeMethod;\n let delegate = nativeMethod;\n let savedDelegate;\n let isExecuting = false;\n const wrapper = function(...args) {\n if (isExecuting) {\n nativeMethod.apply(consoleObj, args);\n return;\n }\n isExecuting = true;\n try {\n triggerHandlers(\"console\", { args, level });\n delegate.apply(consoleObj, args);\n } finally {\n isExecuting = false;\n }\n };\n markFunctionWrapped(wrapper, nativeMethod);\n const sandboxBypass = nativeMethod.bind(consoleObj);\n originalConsoleMethods[level] = sandboxBypass;\n try {\n let current = wrapper;\n Object.defineProperty(consoleObj, level, {\n configurable: true,\n enumerable: true,\n get() {\n return current;\n },\n set(newValue) {\n if (newValue === wrapper) {\n if (savedDelegate !== void 0) {\n delegate = savedDelegate;\n savedDelegate = void 0;\n }\n current = wrapper;\n } else if (newValue === sandboxBypass) {\n savedDelegate = delegate;\n current = sandboxBypass;\n } else if (typeof newValue === \"function\" && !newValue.__sentry_original__) {\n delegate = newValue;\n current = wrapper;\n } else {\n current = newValue;\n }\n }\n });\n } catch {\n fill(consoleObj, level, function(originalConsoleMethod) {\n originalConsoleMethods[level] = originalConsoleMethod;\n return function(...args) {\n triggerHandlers(\"console\", { args, level });\n originalConsoleMethods[level]?.apply(this, args);\n };\n });\n }\n}\n\nexport { consoleIntegration };\n//# sourceMappingURL=console.js.map\n", + "import * as util from 'node:util';\nimport { defineIntegration } from '@sentry/core';\n\nconst INTEGRATION_NAME = \"NodeSystemError\";\nfunction isSystemError(error) {\n if (!(error instanceof Error)) {\n return false;\n }\n if (!(\"errno\" in error) || typeof error.errno !== \"number\") {\n return false;\n }\n if (typeof util.getSystemErrorMap !== \"function\") {\n return false;\n }\n return util.getSystemErrorMap().has(error.errno);\n}\nconst systemErrorIntegration = defineIntegration((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n processEvent: (event, hint, client) => {\n if (!isSystemError(hint.originalException)) {\n return event;\n }\n const error = hint.originalException;\n const errorContext = {\n ...error\n };\n if (!client.getDataCollectionOptions().userInfo && options.includePaths !== true) {\n delete errorContext.path;\n delete errorContext.dest;\n }\n event.contexts = {\n ...event.contexts,\n node_system_error: errorContext\n };\n for (const exception of event.exception?.values || []) {\n if (exception.value) {\n if (error.path && exception.value.includes(error.path)) {\n exception.value = exception.value.replace(`'${error.path}'`, \"\").trim();\n }\n if (error.dest && exception.value.includes(error.dest)) {\n exception.value = exception.value.replace(`'${error.dest}'`, \"\").trim();\n }\n }\n }\n return event;\n }\n };\n});\n\nexport { systemErrorIntegration };\n//# sourceMappingURL=systemError.js.map\n", + "import * as http from 'node:http';\nimport * as https from 'node:https';\nimport { Readable } from 'node:stream';\nimport { createGzip } from 'node:zlib';\nimport { consoleSandbox, createTransport, suppressTracing } from '@sentry/core';\nimport { HttpsProxyAgent } from '../proxy/index.js';\n\nconst GZIP_THRESHOLD = 1024 * 32;\nfunction streamFromBody(body) {\n return new Readable({\n read() {\n this.push(body);\n this.push(null);\n }\n });\n}\nfunction makeNodeTransport(options) {\n let urlSegments;\n try {\n urlSegments = new URL(options.url);\n } catch (_e) {\n consoleSandbox(() => {\n console.warn(\n \"[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.\"\n );\n });\n return createTransport(options, () => Promise.resolve({}));\n }\n const isHttps = urlSegments.protocol === \"https:\";\n const proxy = applyNoProxyOption(\n urlSegments,\n options.proxy || (isHttps ? process.env.https_proxy : void 0) || process.env.http_proxy\n );\n const nativeHttpModule = isHttps ? https : http;\n const keepAlive = options.keepAlive === void 0 ? false : options.keepAlive;\n const agent = proxy ? new HttpsProxyAgent(proxy) : new nativeHttpModule.Agent({ keepAlive, maxSockets: 30, timeout: 2e3 });\n const requestExecutor = createRequestExecutor(options, options.httpModule ?? nativeHttpModule, agent);\n return createTransport(options, requestExecutor);\n}\nfunction applyNoProxyOption(transportUrlSegments, proxy) {\n const { no_proxy } = process.env;\n const urlIsExemptFromProxy = no_proxy?.split(\",\").some(\n (exemption) => transportUrlSegments.host.endsWith(exemption) || transportUrlSegments.hostname.endsWith(exemption)\n );\n if (urlIsExemptFromProxy) {\n return void 0;\n } else {\n return proxy;\n }\n}\nfunction createRequestExecutor(options, httpModule, agent) {\n const { hostname, pathname, port, protocol, search } = new URL(options.url);\n return function makeRequest(request) {\n return new Promise((resolve, reject) => {\n suppressTracing(() => {\n let body = streamFromBody(request.body);\n const headers = { ...options.headers };\n if (request.body.length > GZIP_THRESHOLD) {\n headers[\"content-encoding\"] = \"gzip\";\n body = body.pipe(createGzip());\n }\n const hostnameIsIPv6 = hostname.startsWith(\"[\");\n const req = httpModule.request(\n {\n method: \"POST\",\n agent,\n headers,\n // Remove \"[\" and \"]\" from IPv6 hostnames\n hostname: hostnameIsIPv6 ? hostname.slice(1, -1) : hostname,\n path: `${pathname}${search}`,\n port,\n protocol,\n ca: options.caCerts\n },\n (res) => {\n res.on(\"data\", () => {\n });\n res.on(\"end\", () => {\n });\n res.setEncoding(\"utf8\");\n const retryAfterHeader = res.headers[\"retry-after\"] ?? null;\n const rateLimitsHeader = res.headers[\"x-sentry-rate-limits\"] ?? null;\n resolve({\n statusCode: res.statusCode,\n headers: {\n \"retry-after\": retryAfterHeader,\n \"x-sentry-rate-limits\": Array.isArray(rateLimitsHeader) ? rateLimitsHeader[0] || null : rateLimitsHeader\n }\n });\n }\n );\n req.on(\"error\", reject);\n body.pipe(req);\n });\n });\n };\n}\n\nexport { makeNodeTransport };\n//# sourceMappingURL=http.js.map\n", + "import * as net from 'node:net';\nimport * as tls from 'node:tls';\nimport { debug } from '@sentry/core';\nimport { Agent } from './base.js';\nimport { parseProxyResponse } from './parse-proxy-response.js';\n\nfunction debugLog(...args) {\n debug.log(\"[https-proxy-agent]\", ...args);\n}\nclass HttpsProxyAgent extends Agent {\n constructor(proxy, opts) {\n super(opts);\n this.options = {};\n this.proxy = typeof proxy === \"string\" ? new URL(proxy) : proxy;\n this.proxyHeaders = opts?.headers ?? {};\n debugLog(\"Creating new HttpsProxyAgent instance: %o\", this.proxy.href);\n const host = (this.proxy.hostname || this.proxy.host).replace(/^\\[|\\]$/g, \"\");\n const port = this.proxy.port ? parseInt(this.proxy.port, 10) : this.proxy.protocol === \"https:\" ? 443 : 80;\n this.connectOpts = {\n // Attempt to negotiate http/1.1 for proxy servers that support http/2\n ALPNProtocols: [\"http/1.1\"],\n ...opts ? omit(opts, \"headers\") : null,\n host,\n port\n };\n }\n /**\n * Called when the node-core HTTP client library is creating a\n * new HTTP request.\n */\n async connect(req, opts) {\n const { proxy } = this;\n if (!opts.host) {\n throw new TypeError('No \"host\" provided');\n }\n let socket;\n if (proxy.protocol === \"https:\") {\n debugLog(\"Creating `tls.Socket`: %o\", this.connectOpts);\n const servername = this.connectOpts.servername || this.connectOpts.host;\n socket = tls.connect({\n ...this.connectOpts,\n servername: servername && net.isIP(servername) ? void 0 : servername\n });\n } else {\n debugLog(\"Creating `net.Socket`: %o\", this.connectOpts);\n socket = net.connect(this.connectOpts);\n }\n const headers = typeof this.proxyHeaders === \"function\" ? this.proxyHeaders() : { ...this.proxyHeaders };\n const host = net.isIPv6(opts.host) ? `[${opts.host}]` : opts.host;\n let payload = `CONNECT ${host}:${opts.port} HTTP/1.1\\r\n`;\n if (proxy.username || proxy.password) {\n const auth = `${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`;\n headers[\"Proxy-Authorization\"] = `Basic ${Buffer.from(auth).toString(\"base64\")}`;\n }\n headers.Host = `${host}:${opts.port}`;\n if (!headers[\"Proxy-Connection\"]) {\n headers[\"Proxy-Connection\"] = this.keepAlive ? \"Keep-Alive\" : \"close\";\n }\n for (const name of Object.keys(headers)) {\n payload += `${name}: ${headers[name]}\\r\n`;\n }\n const proxyResponsePromise = parseProxyResponse(socket);\n socket.write(`${payload}\\r\n`);\n const { connect, buffered } = await proxyResponsePromise;\n req.emit(\"proxyConnect\", connect);\n this.emit(\"proxyConnect\", connect, req);\n if (connect.statusCode === 200) {\n req.once(\"socket\", resume);\n if (opts.secureEndpoint) {\n debugLog(\"Upgrading socket connection to TLS\");\n const servername = opts.servername || opts.host;\n return tls.connect({\n ...omit(opts, \"host\", \"path\", \"port\"),\n socket,\n servername: net.isIP(servername) ? void 0 : servername\n });\n }\n return socket;\n }\n socket.destroy();\n const fakeSocket = new net.Socket({ writable: false });\n fakeSocket.readable = true;\n req.once(\"socket\", (s) => {\n debugLog(\"Replaying proxy buffer for failed request\");\n s.push(buffered);\n s.push(null);\n });\n return fakeSocket;\n }\n}\nHttpsProxyAgent.protocols = [\"http\", \"https\"];\nfunction resume(socket) {\n socket.resume();\n}\nfunction omit(obj, ...keys) {\n const ret = {};\n let key;\n for (key in obj) {\n if (!keys.includes(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n}\n\nexport { HttpsProxyAgent };\n//# sourceMappingURL=index.js.map\n", + "import * as http from 'node:http';\nimport 'node:https';\n\nvar _a;\nconst INTERNAL = /* @__PURE__ */ Symbol(\"AgentBaseInternalState\");\nclass Agent extends (_a = http.Agent, _a) {\n constructor(opts) {\n super(opts);\n this[INTERNAL] = {};\n }\n /**\n * Determine whether this is an `http` or `https` request.\n */\n isSecureEndpoint(options) {\n if (options) {\n if (typeof options.secureEndpoint === \"boolean\") {\n return options.secureEndpoint;\n }\n if (typeof options.protocol === \"string\") {\n return options.protocol === \"https:\";\n }\n }\n const { stack } = new Error();\n if (typeof stack !== \"string\") return false;\n return stack.split(\"\\n\").some((l) => l.indexOf(\"(https.js:\") !== -1 || l.indexOf(\"node:https:\") !== -1);\n }\n createSocket(req, options, cb) {\n const connectOpts = {\n ...options,\n secureEndpoint: this.isSecureEndpoint(options)\n };\n Promise.resolve().then(() => this.connect(req, connectOpts)).then((socket) => {\n if (socket instanceof http.Agent) {\n return socket.addRequest(req, connectOpts);\n }\n this[INTERNAL].currentSocket = socket;\n super.createSocket(req, options, cb);\n }, cb);\n }\n createConnection() {\n const socket = this[INTERNAL].currentSocket;\n this[INTERNAL].currentSocket = void 0;\n if (!socket) {\n throw new Error(\"No socket was returned in the `connect()` function\");\n }\n return socket;\n }\n get defaultPort() {\n return this[INTERNAL].defaultPort ?? (this.protocol === \"https:\" ? 443 : 80);\n }\n set defaultPort(v) {\n if (this[INTERNAL]) {\n this[INTERNAL].defaultPort = v;\n }\n }\n get protocol() {\n return this[INTERNAL].protocol ?? (this.isSecureEndpoint() ? \"https:\" : \"http:\");\n }\n set protocol(v) {\n if (this[INTERNAL]) {\n this[INTERNAL].protocol = v;\n }\n }\n}\n\nexport { Agent };\n//# sourceMappingURL=base.js.map\n", + "import { debug } from '@sentry/core';\n\nfunction debugLog(...args) {\n debug.log(\"[https-proxy-agent:parse-proxy-response]\", ...args);\n}\nfunction parseProxyResponse(socket) {\n return new Promise((resolve, reject) => {\n let buffersLength = 0;\n const buffers = [];\n function read() {\n const b = socket.read();\n if (b) ondata(b);\n else socket.once(\"readable\", read);\n }\n function cleanup() {\n socket.removeListener(\"end\", onend);\n socket.removeListener(\"error\", onerror);\n socket.removeListener(\"readable\", read);\n }\n function onend() {\n cleanup();\n debugLog(\"onend\");\n reject(new Error(\"Proxy connection ended before receiving CONNECT response\"));\n }\n function onerror(err) {\n cleanup();\n debugLog(\"onerror %o\", err);\n reject(err);\n }\n function ondata(b) {\n buffers.push(b);\n buffersLength += b.length;\n const buffered = Buffer.concat(buffers, buffersLength);\n const endOfHeaders = buffered.indexOf(\"\\r\\n\\r\\n\");\n if (endOfHeaders === -1) {\n debugLog(\"have not received end of HTTP headers yet...\");\n read();\n return;\n }\n const headerParts = buffered.subarray(0, endOfHeaders).toString(\"ascii\").split(\"\\r\\n\");\n const firstLine = headerParts.shift();\n if (!firstLine) {\n socket.destroy();\n return reject(new Error(\"No header received from proxy CONNECT response\"));\n }\n const firstLineParts = firstLine.split(\" \");\n const statusCode = +(firstLineParts[1] || 0);\n const statusText = firstLineParts.slice(2).join(\" \");\n const headers = {};\n for (const header of headerParts) {\n if (!header) continue;\n const firstColon = header.indexOf(\":\");\n if (firstColon === -1) {\n socket.destroy();\n return reject(new Error(`Invalid header from proxy CONNECT response: \"${header}\"`));\n }\n const key = header.slice(0, firstColon).toLowerCase();\n const value = header.slice(firstColon + 1).trimStart();\n const current = headers[key];\n if (typeof current === \"string\") {\n headers[key] = [current, value];\n } else if (Array.isArray(current)) {\n current.push(value);\n } else {\n headers[key] = value;\n }\n }\n debugLog(\"got proxy server response: %o %o\", firstLine, headers);\n cleanup();\n resolve({\n connect: {\n statusCode,\n statusText,\n headers\n },\n buffered\n });\n }\n socket.on(\"error\", onerror);\n socket.on(\"end\", onend);\n read();\n });\n}\n\nexport { parseProxyResponse };\n//# sourceMappingURL=parse-proxy-response.js.map\n", + "import { envToBool } from '@sentry/core';\n\nfunction getSpotlightConfig(optionsSpotlight) {\n if (optionsSpotlight === false) {\n return false;\n }\n if (typeof optionsSpotlight === \"string\") {\n return optionsSpotlight;\n }\n const envBool = envToBool(process.env.SENTRY_SPOTLIGHT, { strict: true });\n const envUrl = envBool === null && process.env.SENTRY_SPOTLIGHT ? process.env.SENTRY_SPOTLIGHT : void 0;\n return optionsSpotlight === true ? envUrl ?? true : envBool ?? envUrl;\n}\n\nexport { getSpotlightConfig };\n//# sourceMappingURL=spotlight.js.map\n", + "import { posix, sep } from 'node:path';\nimport { dirname } from '@sentry/core';\n\nfunction normalizeWindowsPath(path) {\n return path.replace(/^[A-Z]:/, \"\").replace(/\\\\/g, \"/\");\n}\nfunction createGetModuleFromFilename(basePath = process.argv[1] ? dirname(process.argv[1]) : process.cwd(), isWindows = sep === \"\\\\\") {\n const normalizedBase = isWindows ? normalizeWindowsPath(basePath) : basePath;\n return (filename) => {\n if (!filename) {\n return;\n }\n const normalizedFilename = isWindows ? normalizeWindowsPath(filename) : filename;\n let { dir, base: file, ext } = posix.parse(normalizedFilename);\n if (ext === \".js\" || ext === \".mjs\" || ext === \".cjs\") {\n file = file.slice(0, ext.length * -1);\n }\n const decodedFile = decodeURIComponent(file);\n if (!dir) {\n dir = \".\";\n }\n const n = dir.lastIndexOf(\"/node_modules\");\n if (n > -1) {\n return `${dir.slice(n + 14).replace(/\\//g, \".\")}:${decodedFile}`;\n }\n if (dir.startsWith(normalizedBase)) {\n const moduleName = dir.slice(normalizedBase.length + 1).replace(/\\//g, \".\");\n return moduleName ? `${moduleName}:${decodedFile}` : decodedFile;\n }\n return decodedFile;\n };\n}\n\nexport { createGetModuleFromFilename };\n//# sourceMappingURL=module.js.map\n", + "import { createStackParser, nodeStackLineParser, GLOBAL_OBJ } from '@sentry/core';\nimport { createGetModuleFromFilename } from '../utils/module.js';\n\nfunction getSentryRelease(fallback) {\n if (process.env.SENTRY_RELEASE) {\n return process.env.SENTRY_RELEASE;\n }\n if (GLOBAL_OBJ.SENTRY_RELEASE?.id) {\n return GLOBAL_OBJ.SENTRY_RELEASE.id;\n }\n const possibleReleaseNameOfGitProvider = (\n // GitHub Actions - https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables#default-environment-variables\n process.env[\"GITHUB_SHA\"] || // GitLab CI - https://docs.gitlab.com/ee/ci/variables/predefined_variables.html\n process.env[\"CI_MERGE_REQUEST_SOURCE_BRANCH_SHA\"] || process.env[\"CI_BUILD_REF\"] || process.env[\"CI_COMMIT_SHA\"] || // Bitbucket - https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/\n process.env[\"BITBUCKET_COMMIT\"]\n );\n const possibleReleaseNameOfCiProvidersWithSpecificEnvVar = (\n // AppVeyor - https://www.appveyor.com/docs/environment-variables/\n process.env[\"APPVEYOR_PULL_REQUEST_HEAD_COMMIT\"] || process.env[\"APPVEYOR_REPO_COMMIT\"] || // AWS CodeBuild - https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html\n process.env[\"CODEBUILD_RESOLVED_SOURCE_VERSION\"] || // AWS Amplify - https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html\n process.env[\"AWS_COMMIT_ID\"] || // Azure Pipelines - https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml\n process.env[\"BUILD_SOURCEVERSION\"] || // Bitrise - https://devcenter.bitrise.io/builds/available-environment-variables/\n process.env[\"GIT_CLONE_COMMIT_HASH\"] || // Buddy CI - https://buddy.works/docs/pipelines/environment-variables#default-environment-variables\n process.env[\"BUDDY_EXECUTION_REVISION\"] || // Builtkite - https://buildkite.com/docs/pipelines/environment-variables\n process.env[\"BUILDKITE_COMMIT\"] || // CircleCI - https://circleci.com/docs/variables/\n process.env[\"CIRCLE_SHA1\"] || // Cirrus CI - https://cirrus-ci.org/guide/writing-tasks/#environment-variables\n process.env[\"CIRRUS_CHANGE_IN_REPO\"] || // Codefresh - https://codefresh.io/docs/docs/codefresh-yaml/variables/\n process.env[\"CF_REVISION\"] || // Codemagic - https://docs.codemagic.io/yaml-basic-configuration/environment-variables/\n process.env[\"CM_COMMIT\"] || // Cloudflare Pages - https://developers.cloudflare.com/pages/platform/build-configuration/#environment-variables\n process.env[\"CF_PAGES_COMMIT_SHA\"] || // Drone - https://docs.drone.io/pipeline/environment/reference/\n process.env[\"DRONE_COMMIT_SHA\"] || // Flightcontrol - https://www.flightcontrol.dev/docs/guides/flightcontrol/environment-variables#built-in-environment-variables\n process.env[\"FC_GIT_COMMIT_SHA\"] || // Heroku #1 https://devcenter.heroku.com/articles/heroku-ci\n process.env[\"HEROKU_TEST_RUN_COMMIT_VERSION\"] || // Heroku #2 https://devcenter.heroku.com/articles/dyno-metadata#dyno-metadata\n process.env[\"HEROKU_BUILD_COMMIT\"] || // Heroku #3 (deprecated by Heroku, kept for backward compatibility)\n process.env[\"HEROKU_SLUG_COMMIT\"] || // Railway - https://docs.railway.app/reference/variables#git-variables\n process.env[\"RAILWAY_GIT_COMMIT_SHA\"] || // Render - https://render.com/docs/environment-variables\n process.env[\"RENDER_GIT_COMMIT\"] || // Semaphore CI - https://docs.semaphoreci.com/ci-cd-environment/environment-variables\n process.env[\"SEMAPHORE_GIT_SHA\"] || // TravisCI - https://docs.travis-ci.com/user/environment-variables/#default-environment-variables\n process.env[\"TRAVIS_PULL_REQUEST_SHA\"] || // Vercel - https://vercel.com/docs/v2/build-step#system-environment-variables\n process.env[\"VERCEL_GIT_COMMIT_SHA\"] || process.env[\"VERCEL_GITHUB_COMMIT_SHA\"] || process.env[\"VERCEL_GITLAB_COMMIT_SHA\"] || process.env[\"VERCEL_BITBUCKET_COMMIT_SHA\"] || // Zeit (now known as Vercel)\n process.env[\"ZEIT_GITHUB_COMMIT_SHA\"] || process.env[\"ZEIT_GITLAB_COMMIT_SHA\"] || process.env[\"ZEIT_BITBUCKET_COMMIT_SHA\"]\n );\n const possibleReleaseNameOfCiProvidersWithGenericEnvVar = (\n // CloudBees CodeShip - https://docs.cloudbees.com/docs/cloudbees-codeship/latest/pro-builds-and-configuration/environment-variables\n process.env[\"CI_COMMIT_ID\"] || // Coolify - https://coolify.io/docs/knowledge-base/environment-variables\n process.env[\"SOURCE_COMMIT\"] || // Heroku #3 https://devcenter.heroku.com/changelog-items/630\n process.env[\"SOURCE_VERSION\"] || // Jenkins - https://plugins.jenkins.io/git/#environment-variables\n process.env[\"GIT_COMMIT\"] || // Netlify - https://docs.netlify.com/configure-builds/environment-variables/#build-metadata\n process.env[\"COMMIT_REF\"] || // TeamCity - https://www.jetbrains.com/help/teamcity/predefined-build-parameters.html\n process.env[\"BUILD_VCS_NUMBER\"] || // Woodpecker CI - https://woodpecker-ci.org/docs/usage/environment\n process.env[\"CI_COMMIT_SHA\"]\n );\n return possibleReleaseNameOfGitProvider || possibleReleaseNameOfCiProvidersWithSpecificEnvVar || possibleReleaseNameOfCiProvidersWithGenericEnvVar || fallback;\n}\nconst defaultStackParser = createStackParser(nodeStackLineParser(createGetModuleFromFilename()));\n\nexport { defaultStackParser, getSentryRelease };\n//# sourceMappingURL=api.js.map\n", + "import * as os from 'node:os';\nimport { trace } from '@opentelemetry/api';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { ServerRuntimeClient, applySdkMetadata, debug, _INTERNAL_flushLogsBuffer, SDK_VERSION, _INTERNAL_clearAiProviderSkips } from '@sentry/core';\nimport { getTraceContextForScope } from '@sentry/opentelemetry';\nimport { threadId, isMainThread } from 'worker_threads';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst DEFAULT_CLIENT_REPORT_FLUSH_INTERVAL_MS = 6e4;\nclass NodeClient extends ServerRuntimeClient {\n constructor(options) {\n const serverName = options.includeServerName === false ? void 0 : options.serverName || global.process.env.SENTRY_NAME || os.hostname();\n const clientOptions = {\n ...options,\n platform: \"node\",\n // Use provided runtime or default to 'node' with current process version\n runtime: options.runtime || { name: \"node\", version: global.process.version },\n serverName\n };\n if (options.openTelemetryInstrumentations) {\n registerInstrumentations({\n instrumentations: options.openTelemetryInstrumentations\n });\n }\n applySdkMetadata(clientOptions, \"node\");\n debug.log(`Initializing Sentry: process: ${process.pid}, thread: ${isMainThread ? \"main\" : `worker-${threadId}`}.`);\n super(clientOptions);\n if (this.getOptions().enableLogs) {\n this._logOnExitFlushListener = () => {\n _INTERNAL_flushLogsBuffer(this);\n };\n if (serverName) {\n this.on(\"beforeCaptureLog\", (log) => {\n log.attributes = {\n ...log.attributes,\n \"server.address\": serverName\n };\n });\n }\n process.on(\"beforeExit\", this._logOnExitFlushListener);\n }\n }\n /** Get the OTEL tracer. */\n get tracer() {\n if (this._tracer) {\n return this._tracer;\n }\n const name = \"@sentry/node\";\n const version = SDK_VERSION;\n const tracer = trace.getTracer(name, version);\n this._tracer = tracer;\n return tracer;\n }\n /** @inheritDoc */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async flush(timeout) {\n await this.traceProvider?.forceFlush();\n if (this.getOptions().sendClientReports) {\n this._flushOutcomes();\n }\n return super.flush(timeout);\n }\n /** @inheritDoc */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async close(timeout) {\n if (this._clientReportInterval) {\n clearInterval(this._clientReportInterval);\n }\n if (this._clientReportOnExitFlushListener) {\n process.off(\"beforeExit\", this._clientReportOnExitFlushListener);\n }\n if (this._logOnExitFlushListener) {\n process.off(\"beforeExit\", this._logOnExitFlushListener);\n }\n const allEventsSent = await super.close(timeout);\n if (this.traceProvider) {\n await this.traceProvider.shutdown();\n }\n return allEventsSent;\n }\n /**\n * Will start tracking client reports for this client.\n *\n * NOTICE: This method will create an interval that is periodically called and attach a `process.on('beforeExit')`\n * hook. To clean up these resources, call `.close()` when you no longer intend to use the client. Not doing so will\n * result in a memory leak.\n */\n // The reason client reports need to be manually activated with this method instead of just enabling them in a\n // constructor, is that if users periodically and unboundedly create new clients, we will create more and more\n // intervals and beforeExit listeners, thus leaking memory. In these situations, users are required to call\n // `client.close()` in order to dispose of the acquired resources.\n // We assume that calling this method in Sentry.init() is a sensible default, because calling Sentry.init() over and\n // over again would also result in memory leaks.\n // Note: We have experimented with using `FinalizationRegisty` to clear the interval when the client is garbage\n // collected, but it did not work, because the cleanup function never got called.\n startClientReportTracking() {\n const clientOptions = this.getOptions();\n if (clientOptions.sendClientReports) {\n this._clientReportOnExitFlushListener = () => {\n this._flushOutcomes();\n };\n this._clientReportInterval = setInterval(() => {\n DEBUG_BUILD && debug.log(\"Flushing client reports based on interval.\");\n this._flushOutcomes();\n }, clientOptions.clientReportFlushInterval ?? DEFAULT_CLIENT_REPORT_FLUSH_INTERVAL_MS).unref();\n process.on(\"beforeExit\", this._clientReportOnExitFlushListener);\n }\n }\n /** @inheritDoc */\n _setupIntegrations() {\n _INTERNAL_clearAiProviderSkips();\n super._setupIntegrations();\n }\n /** Custom implementation for OTEL, so we can handle scope-span linking. */\n _getTraceInfoFromScope(scope) {\n if (!scope) {\n return [void 0, void 0];\n }\n return getTraceContextForScope(this, scope);\n }\n}\n\nexport { NodeClient };\n//# sourceMappingURL=client.js.map\n", + "import { GLOBAL_OBJ, debug } from '@sentry/core';\nimport { createAddHookMessageChannel } from 'import-in-the-middle';\nimport * as moduleModule from 'module';\nimport { supportsEsmLoaderHooks } from '../utils/detection.js';\n\nfunction initializeEsmLoader() {\n if (!supportsEsmLoaderHooks()) {\n return;\n }\n if (!GLOBAL_OBJ._sentryEsmLoaderHookRegistered) {\n GLOBAL_OBJ._sentryEsmLoaderHookRegistered = true;\n try {\n const { addHookMessagePort } = createAddHookMessageChannel();\n moduleModule.register(\"import-in-the-middle/hook.mjs\", import.meta.url, {\n data: { addHookMessagePort, include: [] },\n transferList: [addHookMessagePort]\n });\n } catch (error) {\n debug.warn(\"Failed to register 'import-in-the-middle' hook\", error);\n }\n }\n}\n\nexport { initializeEsmLoader };\n//# sourceMappingURL=esmLoader.js.map\n", + "import { consoleSandbox } from '@sentry/core';\nimport { NODE_MAJOR, NODE_MINOR } from '../nodeVersion.js';\n\nfunction isCjs() {\n return false;\n}\nlet hasWarnedAboutNodeVersion;\nfunction supportsEsmLoaderHooks() {\n if (NODE_MAJOR >= 21 || NODE_MAJOR === 20 && NODE_MINOR >= 6 || NODE_MAJOR === 18 && NODE_MINOR >= 19) {\n return true;\n }\n if (!hasWarnedAboutNodeVersion) {\n hasWarnedAboutNodeVersion = true;\n consoleSandbox(() => {\n console.warn(\n `[Sentry] You are using Node.js v${process.versions.node} in ESM mode (\"import syntax\"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS (\"require() syntax\"), or upgrade your Node.js version.`\n );\n });\n }\n return false;\n}\n\nexport { isCjs, supportsEsmLoaderHooks };\n//# sourceMappingURL=detection.js.map\n", + "import { debug, consoleSandbox, getCurrentScope, applySdkMetadata, envToBool, stackParserFromStackParserOptions, getIntegrationsToSetup, propagationContextFromHeaders, inboundFiltersIntegration, functionToStringIntegration, linkedErrorsIntegration, requestDataIntegration, conversationIdIntegration, hasSpansEnabled } from '@sentry/core';\nimport { setOpenTelemetryContextAsyncContextStrategy, enhanceDscWithOpenTelemetryRootSpanName, setupEventContextTrace, openTelemetrySetupCheck } from '@sentry/opentelemetry';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { childProcessIntegration } from '../integrations/childProcess.js';\nimport { nodeContextIntegration } from '../integrations/context.js';\nimport { contextLinesIntegration } from '../integrations/contextlines.js';\nimport { httpIntegration } from '../integrations/http/index.js';\nimport { localVariablesIntegration } from '../integrations/local-variables/index.js';\nimport { modulesIntegration } from '../integrations/modules.js';\nimport { nativeNodeFetchIntegration } from '../integrations/node-fetch/index.js';\nimport { onUncaughtExceptionIntegration } from '../integrations/onuncaughtexception.js';\nimport { onUnhandledRejectionIntegration } from '../integrations/onunhandledrejection.js';\nimport { processSessionIntegration } from '../integrations/processSession.js';\nimport { INTEGRATION_NAME, spotlightIntegration } from '../integrations/spotlight.js';\nimport { consoleIntegration } from '../integrations/console.js';\nimport { systemErrorIntegration } from '../integrations/systemError.js';\nimport { makeNodeTransport } from '../transports/http.js';\nimport '../nodeVersion.js';\nimport { getSpotlightConfig } from '../utils/spotlight.js';\nimport { defaultStackParser, getSentryRelease } from './api.js';\nimport { NodeClient } from './client.js';\nimport { initializeEsmLoader } from './esmLoader.js';\n\nfunction getDefaultIntegrations() {\n return [\n // Common\n // TODO(v11): Replace with `eventFiltersIntegration` once we remove the deprecated `inboundFiltersIntegration`\n // eslint-disable-next-line typescript/no-deprecated\n inboundFiltersIntegration(),\n functionToStringIntegration(),\n linkedErrorsIntegration(),\n requestDataIntegration(),\n systemErrorIntegration(),\n conversationIdIntegration(),\n // Native Wrappers\n consoleIntegration(),\n httpIntegration(),\n nativeNodeFetchIntegration(),\n // Global Handlers\n onUncaughtExceptionIntegration(),\n onUnhandledRejectionIntegration(),\n // Event Info\n contextLinesIntegration(),\n localVariablesIntegration(),\n nodeContextIntegration(),\n childProcessIntegration(),\n processSessionIntegration(),\n modulesIntegration()\n ];\n}\nfunction init(options = {}) {\n return _init(options, getDefaultIntegrations);\n}\nfunction initWithoutDefaultIntegrations(options = {}) {\n return _init(options, () => []);\n}\nfunction _init(_options = {}, getDefaultIntegrationsImpl) {\n const options = getClientOptions(_options, getDefaultIntegrationsImpl);\n if (options.debug === true) {\n if (DEBUG_BUILD) {\n debug.enable();\n } else {\n consoleSandbox(() => {\n console.warn(\"[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.\");\n });\n }\n }\n if (options.registerEsmLoaderHooks !== false) {\n initializeEsmLoader();\n }\n setOpenTelemetryContextAsyncContextStrategy(options);\n const scope = getCurrentScope();\n scope.update(options.initialScope);\n if (options.spotlight && !options.integrations.some(({ name }) => name === INTEGRATION_NAME)) {\n options.integrations.push(\n spotlightIntegration({\n sidecarUrl: typeof options.spotlight === \"string\" ? options.spotlight : void 0\n })\n );\n }\n applySdkMetadata(options, \"node-core\");\n const client = new NodeClient(options);\n getCurrentScope().setClient(client);\n client.init();\n debug.log(`SDK initialized from ${\"ESM\"}`);\n client.startClientReportTracking();\n updateScopeFromEnvVariables();\n enhanceDscWithOpenTelemetryRootSpanName(client);\n setupEventContextTrace(client);\n if (process.env.VERCEL) {\n process.on(\"SIGTERM\", async () => {\n await client.flush(200);\n });\n }\n return client;\n}\nfunction validateOpenTelemetrySetup() {\n if (!DEBUG_BUILD) {\n return;\n }\n const setup = openTelemetrySetupCheck();\n const required = [\"SentryContextManager\", \"SentryPropagator\"];\n if (hasSpansEnabled()) {\n required.push(\"SentrySpanProcessor\");\n }\n for (const k of required) {\n if (!setup.includes(k)) {\n debug.error(\n `You have to set up the ${k}. Without this, the OpenTelemetry & Sentry integration will not work properly.`\n );\n }\n }\n if (!setup.includes(\"SentrySampler\")) {\n debug.warn(\n \"You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.\"\n );\n }\n}\nfunction getClientOptions(options, getDefaultIntegrationsImpl) {\n const release = getRelease(options.release);\n const spotlight = getSpotlightConfig(options.spotlight);\n const tracesSampleRate = getTracesSampleRate(options.tracesSampleRate);\n const mergedOptions = {\n ...options,\n dsn: options.dsn ?? process.env.SENTRY_DSN,\n environment: options.environment ?? process.env.SENTRY_ENVIRONMENT,\n sendClientReports: options.sendClientReports ?? true,\n transport: options.transport ?? makeNodeTransport,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n release,\n tracesSampleRate,\n spotlight,\n debug: envToBool(options.debug ?? process.env.SENTRY_DEBUG)\n };\n const integrations = options.integrations;\n const defaultIntegrations = options.defaultIntegrations ?? getDefaultIntegrationsImpl(mergedOptions);\n const resolvedIntegrations = getIntegrationsToSetup({\n defaultIntegrations,\n integrations\n });\n return {\n ...mergedOptions,\n integrations: resolvedIntegrations\n };\n}\nfunction getRelease(release) {\n if (release !== void 0) {\n return release;\n }\n const detectedRelease = getSentryRelease();\n if (detectedRelease !== void 0) {\n return detectedRelease;\n }\n return void 0;\n}\nfunction getTracesSampleRate(tracesSampleRate) {\n if (tracesSampleRate !== void 0) {\n return tracesSampleRate;\n }\n const sampleRateFromEnv = process.env.SENTRY_TRACES_SAMPLE_RATE;\n if (!sampleRateFromEnv) {\n return void 0;\n }\n const parsed = parseFloat(sampleRateFromEnv);\n return isFinite(parsed) ? parsed : void 0;\n}\nfunction updateScopeFromEnvVariables() {\n if (envToBool(process.env.SENTRY_USE_ENVIRONMENT) !== false) {\n const sentryTraceEnv = process.env.SENTRY_TRACE;\n const baggageEnv = process.env.SENTRY_BAGGAGE;\n const propagationContext = propagationContextFromHeaders(sentryTraceEnv, baggageEnv);\n getCurrentScope().setPropagationContext(propagationContext);\n }\n}\n\nexport { getDefaultIntegrations, init, initWithoutDefaultIntegrations, validateOpenTelemetrySetup };\n//# sourceMappingURL=index.js.map\n", + "import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\n\nfunction addOriginToSpan(span, origin) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, origin);\n}\n\nexport { addOriginToSpan };\n//# sourceMappingURL=addOriginToSpan.js.map\n", + "import { defineIntegration, hasSpansEnabled, getRequestUrlFromClientRequest, stripDataUrlContent, SEMANTIC_ATTRIBUTE_URL_FULL } from '@sentry/core';\nimport { generateInstrumentOnce, SentryHttpInstrumentation, httpServerIntegration, httpServerSpansIntegration } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Http\";\nconst instrumentSentryHttp = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n (options) => {\n return new SentryHttpInstrumentation(options);\n }\n);\nconst httpIntegration = defineIntegration((options = {}) => {\n const spans = options.spans ?? true;\n const disableIncomingRequestSpans = options.disableIncomingRequestSpans;\n const enableServerSpans = spans && !disableIncomingRequestSpans;\n const serverOptions = {\n sessions: options.trackIncomingRequestsAsSessions,\n sessionFlushingDelayMS: options.sessionFlushingDelayMS,\n ignoreRequestBody: options.ignoreIncomingRequestBody,\n maxRequestBodySize: options.maxIncomingRequestBodySize\n };\n const serverSpansOptions = {\n ignoreIncomingRequests: options.ignoreIncomingRequests,\n ignoreStaticAssets: options.ignoreStaticAssets,\n ignoreStatusCodes: options.dropSpansForIncomingRequestStatusCodes,\n instrumentation: options.instrumentation,\n onSpanCreated: options.incomingRequestSpanHook\n };\n const server = httpServerIntegration(serverOptions);\n const serverSpans = httpServerSpansIntegration(serverSpansOptions);\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n const clientOptions = client.getOptions();\n if (enableServerSpans && hasSpansEnabled(clientOptions)) {\n serverSpans.setup(client);\n }\n },\n setupOnce() {\n server.setupOnce();\n const sentryHttpInstrumentationOptions = {\n breadcrumbs: options.breadcrumbs,\n spans,\n propagateTraceInOutgoingRequests: options.tracePropagation ?? true,\n createSpansForOutgoingRequests: spans,\n ignoreOutgoingRequests: options.ignoreOutgoingRequests,\n outgoingRequestHook: (span, request) => {\n const url = getRequestUrlFromClientRequest(request);\n if (url.startsWith(\"data:\")) {\n const sanitizedUrl = stripDataUrlContent(url);\n span.setAttribute(\"http.url\", sanitizedUrl);\n span.setAttribute(SEMANTIC_ATTRIBUTE_URL_FULL, sanitizedUrl);\n span.updateName(`${request.method || \"GET\"} ${sanitizedUrl}`);\n }\n options.instrumentation?.requestHook?.(span, request);\n },\n outgoingResponseHook: options.instrumentation?.responseHook,\n outgoingRequestApplyCustomAttributes: options.instrumentation?.applyCustomAttributesOnSpan\n };\n instrumentSentryHttp(sentryHttpInstrumentationOptions);\n },\n processEvent(event) {\n return serverSpans.processEvent(event);\n }\n };\n});\n\nexport { httpIntegration, instrumentSentryHttp };\n//# sourceMappingURL=http.js.map\n", + "import * as diagch from 'diagnostics_channel';\nimport { URL } from 'url';\nimport { LRUMap, debug, stripDataUrlContent, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, startInactiveSpan, SPAN_KIND, SPAN_STATUS_ERROR, getClient, shouldPropagateTraceForUrl, withActiveSpan, getTraceData, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { URL_QUERY, URL_PATH, URL_FULL, SERVER_ADDRESS, SERVER_PORT, USER_AGENT_ORIGINAL, HTTP_RESPONSE_STATUS_CODE, URL_SCHEME, HTTP_REQUEST_METHOD, NETWORK_PEER_PORT, NETWORK_PEER_ADDRESS } from '@sentry/conventions/attributes';\nimport { DEBUG_BUILD } from '../../debug-build.js';\n\nconst ATTR_HTTP_REQUEST_METHOD_ORIGINAL = \"http.request.method_original\";\nconst _channelSubs = [];\nconst spanFromReq = /* @__PURE__ */ new WeakMap();\nconst propagationDecisionMap = new LRUMap(100);\nfunction instrumentUndici(config = {}) {\n if (_channelSubs.length) {\n return;\n }\n subscribeToChannel(\"undici:request:create\", (message) => onRequestCreated(config, message));\n subscribeToChannel(\n \"undici:client:sendHeaders\",\n (message) => onRequestHeaders(config, message)\n );\n subscribeToChannel(\"undici:request:headers\", (message) => onResponseHeaders(config, message));\n subscribeToChannel(\"undici:request:trailers\", (message) => onDone(message));\n subscribeToChannel(\"undici:request:error\", (message) => onError(message));\n}\nfunction safeExecute(fn, onError2) {\n try {\n return fn();\n } catch (error) {\n onError2(error);\n return void 0;\n }\n}\nfunction subscribeToChannel(diagnosticChannel, onMessage) {\n const [major = 0, minor = 0] = process.version.replace(\"v\", \"\").split(\".\").map((n) => Number(n));\n const useNewSubscribe = major > 18 || major === 18 && minor >= 19;\n if (useNewSubscribe) {\n _channelSubs.push(diagch.subscribe?.(diagnosticChannel, onMessage));\n } else {\n _channelSubs.push(diagch.channel(diagnosticChannel).subscribe(onMessage));\n }\n}\nfunction parseRequestHeaders(request) {\n const result = /* @__PURE__ */ new Map();\n if (Array.isArray(request.headers)) {\n for (let i = 0; i < request.headers.length; i += 2) {\n const key = request.headers[i];\n const value = request.headers[i + 1];\n if (typeof key === \"string\" && value !== void 0) {\n result.set(key.toLowerCase(), value);\n }\n }\n } else if (typeof request.headers === \"string\") {\n const headers = request.headers.split(\"\\r\\n\");\n for (const line of headers) {\n if (!line) {\n continue;\n }\n const colonIndex = line.indexOf(\":\");\n if (colonIndex === -1) {\n continue;\n }\n const key = line.substring(0, colonIndex).toLowerCase();\n const value = line.substring(colonIndex + 1).trim();\n const allValues = result.get(key);\n if (allValues && Array.isArray(allValues)) {\n allValues.push(value);\n } else if (allValues) {\n result.set(key, [allValues, value]);\n } else {\n result.set(key, value);\n }\n }\n }\n return result;\n}\nfunction onRequestCreated(config, { request }) {\n const url = getAbsoluteUrl(request.origin, request.path);\n const shouldIgnoreReq = safeExecute(\n () => request.method === \"CONNECT\" || !!config.ignoreOutgoingRequests?.(url),\n (e) => e && DEBUG_BUILD && debug.error(\"caught ignoreOutgoingRequests error: \", e)\n );\n if (shouldIgnoreReq) {\n return;\n }\n let requestUrl;\n try {\n requestUrl = new URL(request.path, request.origin);\n } catch (err) {\n DEBUG_BUILD && debug.warn(\"could not determine url.full:\", err);\n return;\n }\n const urlScheme = requestUrl.protocol.replace(\":\", \"\");\n const requestMethod = getRequestMethod(request.method);\n const attributes = {\n [HTTP_REQUEST_METHOD]: requestMethod,\n [ATTR_HTTP_REQUEST_METHOD_ORIGINAL]: request.method,\n [URL_FULL]: requestUrl.toString(),\n [URL_PATH]: requestUrl.pathname,\n [URL_QUERY]: requestUrl.search,\n [URL_SCHEME]: urlScheme,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.node_fetch\"\n };\n if (url.startsWith(\"data:\")) {\n const sanitizedUrl = stripDataUrlContent(url);\n attributes[\"http.url\"] = sanitizedUrl;\n attributes[URL_FULL] = sanitizedUrl;\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME] = `${request.method || \"GET\"} ${sanitizedUrl}`;\n }\n const schemePorts = { https: \"443\", http: \"80\" };\n const serverAddress = requestUrl.hostname;\n const serverPort = requestUrl.port || schemePorts[urlScheme];\n attributes[SERVER_ADDRESS] = serverAddress;\n if (serverPort && !isNaN(Number(serverPort))) {\n attributes[SERVER_PORT] = Number(serverPort);\n }\n const headersMap = parseRequestHeaders(request);\n const userAgentValues = headersMap.get(\"user-agent\");\n if (userAgentValues) {\n const userAgent = Array.isArray(userAgentValues) ? userAgentValues[userAgentValues.length - 1] : userAgentValues;\n attributes[USER_AGENT_ORIGINAL] = userAgent;\n }\n const span = startInactiveSpan({\n name: requestMethod === \"_OTHER\" ? \"HTTP\" : requestMethod,\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n safeExecute(\n () => config.requestHook?.(span, request),\n (e) => e && DEBUG_BUILD && debug.error(\"caught requestHook error: \", e)\n );\n injectTracePropagationHeaders(span, request, requestUrl.toString());\n spanFromReq.set(request, span);\n}\nfunction onRequestHeaders(config, { request, socket }) {\n const span = spanFromReq.get(request);\n if (!span) {\n return;\n }\n const { remoteAddress, remotePort } = socket;\n const spanAttributes = {\n [NETWORK_PEER_ADDRESS]: remoteAddress,\n [NETWORK_PEER_PORT]: remotePort\n };\n if (config.headersToSpanAttributes?.requestHeaders) {\n const headersToAttribs = new Set(config.headersToSpanAttributes.requestHeaders.map((n) => n.toLowerCase()));\n const headersMap = parseRequestHeaders(request);\n for (const [name, value] of headersMap.entries()) {\n if (headersToAttribs.has(name)) {\n const attrValue = Array.isArray(value) ? value : [value];\n spanAttributes[`http.request.header.${name}`] = attrValue;\n }\n }\n }\n span.setAttributes(spanAttributes);\n}\nfunction onResponseHeaders(config, { request, response }) {\n const span = spanFromReq.get(request);\n if (!span) {\n return;\n }\n const spanAttributes = {\n [HTTP_RESPONSE_STATUS_CODE]: response.statusCode\n };\n safeExecute(\n () => config.responseHook?.(span, { request, response }),\n (e) => e && DEBUG_BUILD && debug.error(\"caught responseHook error: \", e)\n );\n if (config.headersToSpanAttributes?.responseHeaders) {\n const headersToAttribs = /* @__PURE__ */ new Set();\n config.headersToSpanAttributes?.responseHeaders.forEach((name) => headersToAttribs.add(name.toLowerCase()));\n for (let idx = 0; idx < response.headers.length; idx = idx + 2) {\n const nameBuf = response.headers[idx];\n const valueBuf = response.headers[idx + 1];\n if (nameBuf === void 0 || valueBuf === void 0) {\n continue;\n }\n const name = nameBuf.toString().toLowerCase();\n const value = valueBuf;\n if (headersToAttribs.has(name)) {\n const attrName = `http.response.header.${name}`;\n if (!Object.prototype.hasOwnProperty.call(spanAttributes, attrName)) {\n spanAttributes[attrName] = [value.toString()];\n } else {\n spanAttributes[attrName].push(value.toString());\n }\n }\n }\n }\n span.setAttributes(spanAttributes);\n if (response.statusCode >= 400) {\n span.setStatus({ code: SPAN_STATUS_ERROR });\n }\n}\nfunction onDone({ request }) {\n const span = spanFromReq.get(request);\n if (!span) {\n return;\n }\n span.end();\n spanFromReq.delete(request);\n}\nfunction onError({ request, error }) {\n const span = spanFromReq.get(request);\n if (!span) {\n return;\n }\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: error.message\n });\n span.end();\n spanFromReq.delete(request);\n}\nfunction injectTracePropagationHeaders(span, request, url) {\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() ?? {};\n if (!shouldPropagateTraceForUrl(url, tracePropagationTargets, propagationDecisionMap)) {\n return;\n }\n const addedHeaders = withActiveSpan(span, () => getTraceData({ propagateTraceparent }));\n for (const [k, v] of Object.entries(addedHeaders)) {\n if (!v) {\n continue;\n }\n if (typeof request.addHeader === \"function\") {\n request.addHeader(k, v);\n } else if (typeof request.headers === \"string\") {\n request.headers += `${k}: ${v}\\r\n`;\n } else if (Array.isArray(request.headers)) {\n request.headers.push(k, v);\n }\n }\n}\nfunction getRequestMethod(original) {\n const knownMethods = {\n CONNECT: true,\n OPTIONS: true,\n HEAD: true,\n GET: true,\n POST: true,\n PUT: true,\n PATCH: true,\n DELETE: true,\n TRACE: true,\n // QUERY from https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/\n QUERY: true\n };\n if (original.toUpperCase() in knownMethods) {\n return original.toUpperCase();\n }\n return \"_OTHER\";\n}\nfunction getAbsoluteUrl(origin, path = \"/\") {\n const url = `${origin}`;\n if (url.endsWith(\"/\") && path.startsWith(\"/\")) {\n return `${url}${path.slice(1)}`;\n }\n if (!url.endsWith(\"/\") && !path.startsWith(\"/\")) {\n return `${url}/${path}`;\n }\n return `${url}${path}`;\n}\n\nexport { instrumentUndici };\n//# sourceMappingURL=undici-instrumentation.js.map\n", + "const DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n", + "import { instrumentUndici } from './undici-instrumentation.js';\nimport { defineIntegration, getClient, hasSpansEnabled } from '@sentry/core';\nimport { generateInstrumentOnce, SentryNodeFetchInstrumentation } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"NodeFetch\";\nconst instrumentSentryNodeFetch = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n SentryNodeFetchInstrumentation,\n (options) => {\n return options;\n }\n);\nconst _nativeNodeFetchIntegration = ((options = {}) => {\n return {\n name: \"NodeFetch\",\n setupOnce() {\n const instrumentSpans = _shouldInstrumentSpans(options, getClient()?.getOptions());\n if (instrumentSpans) {\n instrumentUndici({\n ignoreOutgoingRequests: options.ignoreOutgoingRequests,\n requestHook: options.requestHook,\n responseHook: options.responseHook,\n headersToSpanAttributes: options.headersToSpanAttributes\n });\n }\n instrumentSentryNodeFetch(options);\n }\n };\n});\nconst nativeNodeFetchIntegration = defineIntegration(_nativeNodeFetchIntegration);\nfunction _shouldInstrumentSpans(options, clientOptions = {}) {\n return typeof options.spans === \"boolean\" ? options.spans : !clientOptions.skipOpenTelemetrySetup && hasSpansEnabled(clientOptions);\n}\n\nexport { nativeNodeFetchIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\nimport { SDK_VERSION, patchExpressModule, debug, defineIntegration, setupExpressErrorHandler as setupExpressErrorHandler$1 } from '@sentry/core';\nexport { expressErrorHandler } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { setHttpServerSpanRouteAttribute } from '../../utils/setHttpServerSpanRouteAttribute.js';\n\nconst INTEGRATION_NAME = \"Express\";\nconst SUPPORTED_VERSIONS = [\">=4.0.0 <6\"];\nfunction setupExpressErrorHandler(app, options) {\n setupExpressErrorHandler$1(app, options);\n ensureIsWrapped(app.use, \"express\");\n}\nconst instrumentExpress = generateInstrumentOnce(\n INTEGRATION_NAME,\n (options) => new ExpressInstrumentation(options)\n);\nclass ExpressInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"sentry-express\", SDK_VERSION, config);\n }\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n \"express\",\n SUPPORTED_VERSIONS,\n (express) => {\n try {\n patchExpressModule(express, () => ({\n ...this.getConfig(),\n onRouteResolved(route) {\n if (route) {\n setHttpServerSpanRouteAttribute(route);\n }\n }\n }));\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Failed to patch express module:\", e);\n }\n return express;\n },\n // we do not ever actually unpatch in our SDKs\n (express) => express\n );\n return module;\n }\n}\nconst _expressIntegration = ((options) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentExpress(options);\n }\n };\n});\nconst expressIntegration = defineIntegration(_expressIntegration);\n\nexport { ExpressInstrumentation, expressIntegration, instrumentExpress, setupExpressErrorHandler };\n//# sourceMappingURL=express.js.map\n", + "import { getActiveSpan, getRootSpan, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP } from '@sentry/core';\n\nfunction setHttpServerSpanRouteAttribute(route) {\n const activeSpan = getActiveSpan();\n if (!activeSpan) {\n return;\n }\n const rootSpan = getRootSpan(activeSpan);\n if (!rootSpan) {\n return;\n }\n if (spanToJSON(rootSpan).data[SEMANTIC_ATTRIBUTE_SENTRY_OP] !== \"http.server\") {\n return;\n }\n rootSpan.setAttribute(\"http.route\", route);\n}\n\nexport { setHttpServerSpanRouteAttribute };\n//# sourceMappingURL=setHttpServerSpanRouteAttribute.js.map\n", + "import { context, trace, SpanStatusCode } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\nimport { SEMATTRS_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport { SDK_VERSION, getIsolationScope, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getClient } from '@sentry/core';\nimport { setHttpServerSpanRouteAttribute } from '../../../../utils/setHttpServerSpanRouteAttribute.js';\nimport { FastifyNames, AttributeNames, FastifyTypes } from './enums/AttributeNames.js';\nimport { startSpan, endSpan, safeExecuteInTheMiddleMaybePromise } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-fastify-v3\";\nconst ANONYMOUS_NAME = \"anonymous\";\nconst hooksNamesToWrap = /* @__PURE__ */ new Set([\n \"onTimeout\",\n \"onRequest\",\n \"preParsing\",\n \"preValidation\",\n \"preSerialization\",\n \"preHandler\",\n \"onSend\",\n \"onResponse\",\n \"onError\"\n]);\nclass FastifyInstrumentationV3 extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\"fastify\", [\">=3.0.0 <3.21.0\"], (moduleExports) => {\n return this._patchConstructor(moduleExports);\n })\n ];\n }\n _hookOnRequest() {\n const instrumentation = this;\n return function onRequest(request, reply, done) {\n if (!instrumentation.isEnabled()) {\n return done();\n }\n instrumentation._wrap(reply, \"send\", instrumentation._patchSend());\n const anyRequest = request;\n const routeName = anyRequest.routeOptions ? anyRequest.routeOptions.url : request.routerPath;\n if (routeName) {\n setHttpServerSpanRouteAttribute(routeName);\n }\n const method = request.method || \"GET\";\n getIsolationScope().setTransactionName(`${method} ${routeName}`);\n done();\n };\n }\n _wrapHandler(pluginName, hookName, original, syncFunctionWithDone) {\n const instrumentation = this;\n this._diag.debug(\"Patching fastify route.handler function\");\n return function(...args) {\n if (!instrumentation.isEnabled()) {\n return original.apply(this, args);\n }\n const name = original.name || pluginName || ANONYMOUS_NAME;\n const spanName = `${FastifyNames.MIDDLEWARE} - ${name}`;\n const reply = args[1];\n const span = startSpan(reply, instrumentation.tracer, spanName, {\n [AttributeNames.FASTIFY_TYPE]: FastifyTypes.MIDDLEWARE,\n [AttributeNames.PLUGIN_NAME]: pluginName,\n [AttributeNames.HOOK_NAME]: hookName\n });\n const origDone = syncFunctionWithDone && args[args.length - 1];\n if (origDone) {\n args[args.length - 1] = function(...doneArgs) {\n endSpan(reply);\n origDone.apply(this, doneArgs);\n };\n }\n return context.with(trace.setSpan(context.active(), span), () => {\n return safeExecuteInTheMiddleMaybePromise(\n () => {\n return original.apply(this, args);\n },\n (err) => {\n if (err instanceof Error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: err.message\n });\n span.recordException(err);\n }\n if (!syncFunctionWithDone) {\n endSpan(reply);\n }\n }\n );\n });\n };\n }\n _wrapAddHook() {\n const instrumentation = this;\n this._diag.debug(\"Patching fastify server.addHook function\");\n return function(original) {\n return function wrappedAddHook(...args) {\n const name = args[0];\n const handler = args[1];\n const pluginName = this.pluginName;\n if (!hooksNamesToWrap.has(name)) {\n return original.apply(this, args);\n }\n const syncFunctionWithDone = typeof args[args.length - 1] === \"function\" && handler.constructor.name !== \"AsyncFunction\";\n return original.apply(this, [\n name,\n instrumentation._wrapHandler(pluginName, name, handler, syncFunctionWithDone)\n ]);\n };\n };\n }\n _patchConstructor(moduleExports) {\n const instrumentation = this;\n function fastify(...args) {\n const app = moduleExports.fastify.apply(this, args);\n app.addHook(\"onRequest\", instrumentation._hookOnRequest());\n app.addHook(\"preHandler\", instrumentation._hookPreHandler());\n instrumentClient();\n instrumentation._wrap(app, \"addHook\", instrumentation._wrapAddHook());\n return app;\n }\n if (moduleExports.errorCodes !== void 0) {\n fastify.errorCodes = moduleExports.errorCodes;\n }\n fastify.fastify = fastify;\n fastify.default = fastify;\n return fastify;\n }\n _patchSend() {\n const instrumentation = this;\n this._diag.debug(\"Patching fastify reply.send function\");\n return function patchSend(original) {\n return function send(...args) {\n const maybeError = args[0];\n if (!instrumentation.isEnabled()) {\n return original.apply(this, args);\n }\n return safeExecuteInTheMiddle(\n () => {\n return original.apply(this, args);\n },\n (err) => {\n if (!err && maybeError instanceof Error) {\n err = maybeError;\n }\n endSpan(this, err);\n }\n );\n };\n };\n }\n _hookPreHandler() {\n const instrumentation = this;\n this._diag.debug(\"Patching fastify preHandler function\");\n return function preHandler(request, reply, done) {\n if (!instrumentation.isEnabled()) {\n return done();\n }\n const anyRequest = request;\n const handler = anyRequest.routeOptions?.handler || anyRequest.context?.handler;\n const handlerName = handler?.name.startsWith(\"bound \") ? handler.name.substring(6) : handler?.name;\n const spanName = `${FastifyNames.REQUEST_HANDLER} - ${handlerName || this.pluginName || ANONYMOUS_NAME}`;\n const spanAttributes = {\n [AttributeNames.PLUGIN_NAME]: this.pluginName,\n [AttributeNames.FASTIFY_TYPE]: FastifyTypes.REQUEST_HANDLER,\n // eslint-disable-next-line typescript/no-deprecated\n [SEMATTRS_HTTP_ROUTE]: anyRequest.routeOptions ? anyRequest.routeOptions.url : request.routerPath\n };\n if (handlerName) {\n spanAttributes[AttributeNames.FASTIFY_NAME] = handlerName;\n }\n const span = startSpan(reply, instrumentation.tracer, spanName, spanAttributes);\n addFastifyV3SpanAttributes(span);\n const { requestHook } = instrumentation.getConfig();\n if (requestHook) {\n safeExecuteInTheMiddle(\n () => requestHook(span, { request }),\n (e) => {\n if (e) {\n instrumentation._diag.error(\"request hook failed\", e);\n }\n },\n true\n );\n }\n return context.with(trace.setSpan(context.active(), span), () => {\n done();\n });\n };\n }\n}\nfunction instrumentClient() {\n const client = getClient();\n if (client) {\n client.on(\"spanStart\", (span) => {\n addFastifyV3SpanAttributes(span);\n });\n }\n}\nfunction addFastifyV3SpanAttributes(span) {\n const attributes = spanToJSON(span).data;\n const type = attributes[\"fastify.type\"];\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n return;\n }\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.fastify\",\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.fastify`\n });\n const name = attributes[\"fastify.name\"] || attributes[\"plugin.name\"] || attributes[\"hook.name\"];\n if (typeof name === \"string\") {\n const updatedName = name.replace(/^fastify -> /, \"\").replace(/^@fastify\\/otel -> /, \"\");\n span.updateName(updatedName);\n }\n}\n\nexport { FastifyInstrumentationV3 };\n//# sourceMappingURL=instrumentation.js.map\n", + "var AttributeNames = /* @__PURE__ */ ((AttributeNames2) => {\n AttributeNames2[\"FASTIFY_NAME\"] = \"fastify.name\";\n AttributeNames2[\"FASTIFY_TYPE\"] = \"fastify.type\";\n AttributeNames2[\"HOOK_NAME\"] = \"hook.name\";\n AttributeNames2[\"PLUGIN_NAME\"] = \"plugin.name\";\n return AttributeNames2;\n})(AttributeNames || {});\nvar FastifyTypes = /* @__PURE__ */ ((FastifyTypes2) => {\n FastifyTypes2[\"MIDDLEWARE\"] = \"middleware\";\n FastifyTypes2[\"REQUEST_HANDLER\"] = \"request_handler\";\n return FastifyTypes2;\n})(FastifyTypes || {});\nvar FastifyNames = /* @__PURE__ */ ((FastifyNames2) => {\n FastifyNames2[\"MIDDLEWARE\"] = \"middleware\";\n FastifyNames2[\"REQUEST_HANDLER\"] = \"request handler\";\n return FastifyNames2;\n})(FastifyNames || {});\n\nexport { AttributeNames, FastifyNames, FastifyTypes };\n//# sourceMappingURL=AttributeNames.js.map\n", + "import { SpanStatusCode } from '@opentelemetry/api';\nimport { spanRequestSymbol } from './constants.js';\n\nfunction startSpan(reply, tracer, spanName, spanAttributes = {}) {\n const span = tracer.startSpan(spanName, { attributes: spanAttributes });\n const spans = reply[spanRequestSymbol] || [];\n spans.push(span);\n Object.defineProperty(reply, spanRequestSymbol, {\n enumerable: false,\n configurable: true,\n value: spans\n });\n return span;\n}\nfunction endSpan(reply, err) {\n const spans = reply[spanRequestSymbol] || [];\n if (!spans.length) {\n return;\n }\n spans.forEach((span) => {\n if (err) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: err.message\n });\n span.recordException(err);\n }\n span.end();\n });\n delete reply[spanRequestSymbol];\n}\nfunction safeExecuteInTheMiddleMaybePromise(execute, onFinish, preventThrowingError) {\n let error;\n let result = void 0;\n try {\n result = execute();\n if (isPromise(result)) {\n result.then(\n (res) => onFinish(void 0, res),\n (err) => onFinish(err)\n );\n }\n } catch (e) {\n error = e;\n } finally {\n if (!isPromise(result)) {\n onFinish(error, result);\n if (error && true) {\n throw error;\n }\n }\n return result;\n }\n}\nfunction isPromise(val) {\n return typeof val === \"object\" && val && typeof Object.getOwnPropertyDescriptor(val, \"then\")?.value === \"function\" || false;\n}\n\nexport { endSpan, safeExecuteInTheMiddleMaybePromise, startSpan };\n//# sourceMappingURL=utils.js.map\n", + "const spanRequestSymbol = /* @__PURE__ */ Symbol(\"opentelemetry.instrumentation.fastify.request_active_span\");\n\nexport { spanRequestSymbol };\n//# sourceMappingURL=constants.js.map\n", + "const DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n", + "import { getAsyncContextStrategy, getMainCarrier, debug, captureException, SPAN_STATUS_ERROR } from '@sentry/core';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { ERROR_TYPE } from '@sentry/conventions/attributes';\n\nconst NOOP = () => {\n};\nfunction bindTracingChannelToSpan(channel, getSpan, opts) {\n const handle = bindSpanToChannelStore(channel, getSpan);\n const beforeSpanEnd = opts?.beforeSpanEnd;\n const deferSpanEnd = opts?.deferSpanEnd;\n const getErrorHint = (e) => {\n if (typeof opts?.captureError === \"function\") {\n return opts.captureError(e);\n }\n return {\n mechanism: {\n type: \"auto.diagnostic_channels.bind_span\",\n handled: false\n }\n };\n };\n const annotateSpanError = (span, error) => {\n if (opts?.captureError) {\n captureException(error, getErrorHint(error));\n }\n const { message, attributes } = getErrorInfo(error);\n span.setStatus({ code: SPAN_STATUS_ERROR, message });\n span.setAttributes(attributes);\n };\n const makeDeferredEnd = (span, data) => {\n let ended = false;\n return (error) => {\n if (ended) {\n return;\n }\n ended = true;\n if (error !== void 0) {\n annotateSpanError(span, error);\n }\n endBoundSpan(data, beforeSpanEnd);\n };\n };\n const subscribers = {\n start: NOOP,\n asyncStart: NOOP,\n end(data) {\n if (\"error\" in data || \"result\" in data) {\n const span = data._sentrySpan;\n if (span && deferSpanEnd?.({ span, data, end: makeDeferredEnd(span, data) })) {\n return;\n }\n endBoundSpan(data, beforeSpanEnd);\n }\n },\n error(data) {\n const span = data._sentrySpan;\n if (!span) {\n return;\n }\n annotateSpanError(span, data.error);\n },\n asyncEnd(data) {\n const span = data._sentrySpan;\n if (span && deferSpanEnd?.({ span, data, end: makeDeferredEnd(span, data) })) {\n return;\n }\n endBoundSpan(data, beforeSpanEnd);\n }\n };\n handle.channel.subscribe(subscribers);\n return {\n channel: handle.channel,\n unbind: () => {\n handle.channel.unsubscribe(subscribers);\n handle.unbind();\n }\n };\n}\nfunction bindSpanToChannelStore(channel, getSpan) {\n const binding = getAsyncContextStrategy(getMainCarrier()).getTracingChannelBinding?.();\n if (!binding) {\n DEBUG_BUILD && debug.log(\"[TracingChannel] Could not access async context binding.\");\n return {\n channel,\n unbind: NOOP\n };\n }\n const asyncLocalStorage = binding.asyncLocalStorage;\n channel.start.bindStore(asyncLocalStorage, (data) => {\n data._sentryCallerStore = asyncLocalStorage.getStore();\n const span = getSpan(data);\n if (!span) {\n return data._sentryCallerStore;\n }\n data._sentrySpan = span;\n return binding.getStoreWithActiveSpan(span);\n });\n channel.asyncStart.bindStore(asyncLocalStorage, (data) => {\n return data._sentryCallerStore;\n });\n return {\n channel,\n unbind: () => {\n channel.start.unbindStore(asyncLocalStorage);\n channel.asyncStart.unbindStore(asyncLocalStorage);\n }\n };\n}\nfunction endBoundSpan(data, beforeSpanEnd) {\n const span = data._sentrySpan;\n if (!span) {\n return;\n }\n beforeSpanEnd?.(span, data);\n span.end();\n}\nfunction getErrorInfo(error) {\n const isObject = !!error && typeof error === \"object\";\n const raw = isObject ? \"message\" in error ? error.message : void 0 : error;\n const message = raw ? String(raw) : \"unknown_error\";\n const type = isObject && \"name\" in error ? String(error.name) : \"unknown\";\n return {\n message,\n attributes: {\n [ERROR_TYPE]: type\n }\n };\n}\n\nexport { bindTracingChannelToSpan };\n//# sourceMappingURL=tracing-channel.js.map\n", + "import { SERVER_PORT, SERVER_ADDRESS, DB_QUERY_TEXT, DB_SYSTEM_NAME, DB_OPERATION_BATCH_SIZE } from '@sentry/conventions/attributes';\nimport { debug, startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { bindTracingChannelToSpan } from '../tracing-channel.js';\n\nconst REDIS_DC_CHANNEL_COMMAND = \"node-redis:command\";\nconst REDIS_DC_CHANNEL_BATCH = \"node-redis:batch\";\nconst REDIS_DC_CHANNEL_CONNECT = \"node-redis:connect\";\nconst IOREDIS_DC_CHANNEL_COMMAND = \"ioredis:command\";\nconst IOREDIS_DC_CHANNEL_CONNECT = \"ioredis:connect\";\nconst ORIGIN = \"auto.db.redis.diagnostic_channel\";\nconst DB_SYSTEM_NAME_VALUE_REDIS = \"redis\";\nlet subscribed = false;\nlet currentResponseHook;\nlet activeUnbinds = [];\nfunction subscribeRedisDiagnosticChannels(tracingChannel, responseHook) {\n currentResponseHook = responseHook;\n if (subscribed) return;\n subscribed = true;\n try {\n activeUnbinds.push(\n setupCommandChannel(tracingChannel, REDIS_DC_CHANNEL_COMMAND, (data) => data.args.slice(1)),\n setupBatchChannel(\n tracingChannel,\n REDIS_DC_CHANNEL_BATCH,\n (data) => data.batchMode === \"PIPELINE\" ? \"PIPELINE\" : \"MULTI\"\n ),\n setupConnectChannel(tracingChannel, REDIS_DC_CHANNEL_CONNECT),\n // ioredis: args already exclude the command name; no slicing needed. And\n // ioredis has no separate batch channel — pipeline/MULTI metadata rides\n // on the per-command payload via `batchMode`/`batchSize`.\n setupCommandChannel(tracingChannel, IOREDIS_DC_CHANNEL_COMMAND, (data) => data.args),\n setupConnectChannel(tracingChannel, IOREDIS_DC_CHANNEL_CONNECT)\n );\n } catch {\n DEBUG_BUILD && debug.log(\"Redis node:diagnostics_channel subscription failed.\");\n }\n}\nfunction setupCommandChannel(tracingChannel, channelName, getCommandArgs) {\n return bindTracingChannelToSpan(\n tracingChannel(channelName),\n (data) => {\n const args = getCommandArgs(data);\n const statement = args.length ? `${data.command} ${args.join(\" \")}` : data.command;\n return startInactiveSpan({\n name: `redis-${data.command}`,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"db.redis\",\n [DB_SYSTEM_NAME]: DB_SYSTEM_NAME_VALUE_REDIS,\n [DB_QUERY_TEXT]: statement,\n ...data.serverAddress != null ? { [SERVER_ADDRESS]: data.serverAddress } : {},\n ...data.serverPort != null ? { [SERVER_PORT]: data.serverPort } : {}\n }\n });\n },\n {\n // Command failures are surfaced to (and usually handled by) the caller; only annotate the\n // span so we don't emit a duplicate error event for every failed command.\n captureError: false,\n beforeSpanEnd(span, data) {\n if (\"error\" in data) return;\n runResponseHook(span, data.command, getCommandArgs(data), data.result);\n }\n }\n ).unbind;\n}\nfunction setupBatchChannel(tracingChannel, channelName, getOperationName) {\n return bindTracingChannelToSpan(\n tracingChannel(channelName),\n (data) => {\n return startInactiveSpan({\n name: getOperationName(data),\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"db.redis\",\n [DB_SYSTEM_NAME]: DB_SYSTEM_NAME_VALUE_REDIS,\n // should only include batch size greater than 1,\n // or else it isn't properly considered a \"batch\"\n ...Number(data.batchSize) > 1 ? { [DB_OPERATION_BATCH_SIZE]: data.batchSize } : {},\n ...data.serverAddress != null ? { [SERVER_ADDRESS]: data.serverAddress } : {},\n ...data.serverPort != null ? { [SERVER_PORT]: data.serverPort } : {}\n }\n });\n },\n { captureError: false }\n ).unbind;\n}\nfunction setupConnectChannel(tracingChannel, channelName) {\n return bindTracingChannelToSpan(\n tracingChannel(channelName),\n (data) => {\n return startInactiveSpan({\n name: \"redis-connect\",\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"db.redis.connect\",\n [DB_SYSTEM_NAME]: DB_SYSTEM_NAME_VALUE_REDIS,\n ...data.serverAddress != null ? { [SERVER_ADDRESS]: data.serverAddress } : {},\n ...data.serverPort != null ? { [SERVER_PORT]: data.serverPort } : {}\n }\n });\n },\n { captureError: false }\n ).unbind;\n}\nfunction runResponseHook(span, command, args, result) {\n const hook = currentResponseHook;\n if (!hook) return;\n try {\n hook(span, command, args, result);\n } catch {\n }\n}\n\nexport { IOREDIS_DC_CHANNEL_COMMAND, IOREDIS_DC_CHANNEL_CONNECT, REDIS_DC_CHANNEL_BATCH, REDIS_DC_CHANNEL_COMMAND, REDIS_DC_CHANNEL_CONNECT, subscribeRedisDiagnosticChannels };\n//# sourceMappingURL=redis-dc-subscriber.js.map\n", + "const _=\"pageload\",E=\"navigation\",P=\"resource\",S=\"resource.script\",R=\"resource.link\",O=\"resource.img\",A=\"resource.css\",N=\"resource.other\",e=\"browser\",B=\"browser.paint\",I=\"ui\",W=\"ui.task\",i=\"ui.render\",r=\"ui.action\",T=\"ui.action.click\",t=\"ui.react\",c=\"ui.react.mount\",u=\"ui.react.render\",U=\"ui.react.update\",C=\"ui.vue\",n=\"ui.svelte\",o=\"ui.angular\",a=\"ui.ember\",V=\"ui.livewire\",s=\"db\",L=\"db.query\",p=\"cache\",l=\"http\",F=\"grpc\",G=\"function.gcp\",M=\"function.aws\",D=\"function.azure\",f=\"chat\",g=\"execute_tool\",h=\"handoff\",H=\"invoke_agent\",d=\"mark\",v=\"function\",b=\"app\",m=\"ui\",w=\"navigation\",k=\"file\",K=\"serialize\",x=\"http\",z=\"http\",X=\"http.client\",Z=\"http.server\",q=\"websocket\",Q=\"rpc\",j=\"grpc\",y=\"graphql\",J=\"subprocess\",Y=\"middleware\",$=\"view\",__=\"template\",E_=\"function\",P_=\"function.remix\",S_=\"function.nextjs\",R_=\"serialize\",O_=\"console\",A_=\"file\",N_=\"app\";export{B as BROWSER_BROWSER_PAINT_SPAN_OP,e as BROWSER_BROWSER_SPAN_OP,E as BROWSER_NAVIGATION_SPAN_OP,_ as BROWSER_PAGELOAD_SPAN_OP,A as BROWSER_RESOURCE_CSS_SPAN_OP,O as BROWSER_RESOURCE_IMG_SPAN_OP,R as BROWSER_RESOURCE_LINK_SPAN_OP,N as BROWSER_RESOURCE_OTHER_SPAN_OP,S as BROWSER_RESOURCE_SCRIPT_SPAN_OP,P as BROWSER_RESOURCE_SPAN_OP,T as BROWSER_UI_ACTION_CLICK_SPAN_OP,r as BROWSER_UI_ACTION_SPAN_OP,o as BROWSER_UI_ANGULAR_SPAN_OP,a as BROWSER_UI_EMBER_SPAN_OP,V as BROWSER_UI_LIVEWIRE_SPAN_OP,c as BROWSER_UI_REACT_MOUNT_SPAN_OP,u as BROWSER_UI_REACT_RENDER_SPAN_OP,t as BROWSER_UI_REACT_SPAN_OP,U as BROWSER_UI_REACT_UPDATE_SPAN_OP,i as BROWSER_UI_RENDER_SPAN_OP,I as BROWSER_UI_SPAN_OP,n as BROWSER_UI_SVELTE_SPAN_OP,W as BROWSER_UI_TASK_SPAN_OP,C as BROWSER_UI_VUE_SPAN_OP,p as DATABASE_CACHE_SPAN_OP,L as DATABASE_DB_QUERY_SPAN_OP,s as DATABASE_DB_SPAN_OP,M as FAAS_FUNCTION_AWS_SPAN_OP,D as FAAS_FUNCTION_AZURE_SPAN_OP,G as FAAS_FUNCTION_GCP_SPAN_OP,F as FAAS_GRPC_SPAN_OP,l as FAAS_HTTP_SPAN_OP,v as GENERAL_FUNCTION_SPAN_OP,d as GENERAL_MARK_SPAN_OP,f as GEN_AI_CHAT_SPAN_OP,g as GEN_AI_EXECUTE_TOOL_SPAN_OP,h as GEN_AI_HANDOFF_SPAN_OP,H as GEN_AI_INVOKE_AGENT_SPAN_OP,b as MOBILE_APP_SPAN_OP,k as MOBILE_FILE_SPAN_OP,x as MOBILE_HTTP_SPAN_OP,w as MOBILE_NAVIGATION_SPAN_OP,K as MOBILE_SERIALIZE_SPAN_OP,m as MOBILE_UI_SPAN_OP,N_ as WEB_SERVER_APP_SPAN_OP,O_ as WEB_SERVER_CONSOLE_SPAN_OP,A_ as WEB_SERVER_FILE_SPAN_OP,S_ as WEB_SERVER_FUNCTION_NEXTJS_SPAN_OP,P_ as WEB_SERVER_FUNCTION_REMIX_SPAN_OP,E_ as WEB_SERVER_FUNCTION_SPAN_OP,y as WEB_SERVER_GRAPHQL_SPAN_OP,j as WEB_SERVER_GRPC_SPAN_OP,X as WEB_SERVER_HTTP_CLIENT_SPAN_OP,Z as WEB_SERVER_HTTP_SERVER_SPAN_OP,z as WEB_SERVER_HTTP_SPAN_OP,Y as WEB_SERVER_MIDDLEWARE_SPAN_OP,Q as WEB_SERVER_RPC_SPAN_OP,R_ as WEB_SERVER_SERIALIZE_SPAN_OP,J as WEB_SERVER_SUBPROCESS_SPAN_OP,__ as WEB_SERVER_TEMPLATE_SPAN_OP,$ as WEB_SERVER_VIEW_SPAN_OP,q as WEB_SERVER_WEBSOCKET_SPAN_OP};\n//# sourceMappingURL=op.mjs.map\n", + "import { GEN_AI_EMBEDDINGS_INPUT, GEN_AI_OPERATION_NAME, GEN_AI_FUNCTION_ID, GEN_AI_RESPONSE_STREAMING, GEN_AI_REQUEST_AVAILABLE_TOOLS, GEN_AI_TOOL_INPUT, GEN_AI_TOOL_NAME, GEN_AI_TOOL_TYPE, GEN_AI_TOOL_OUTPUT, GEN_AI_USAGE_INPUT_TOKENS, GEN_AI_USAGE_OUTPUT_TOKENS, GEN_AI_USAGE_TOTAL_TOKENS, GEN_AI_RESPONSE_FINISH_REASONS, GEN_AI_RESPONSE_ID, GEN_AI_RESPONSE_MODEL, GEN_AI_OUTPUT_MESSAGES, GEN_AI_INPUT_MESSAGES, GEN_AI_REQUEST_MODEL, GEN_AI_SYSTEM } from '@sentry/conventions/attributes';\nimport { GEN_AI_INVOKE_AGENT_SPAN_OP, GEN_AI_EXECUTE_TOOL_SPAN_OP } from '@sentry/conventions/op';\nimport { startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getProviderMetadataAttributes, GEN_AI_CONVERSATION_ID_ATTRIBUTE, spanToJSON, SPAN_STATUS_ERROR, withScope, spanToTraceContext, captureException, getClient, shouldEnableTruncation, getTruncatedJsonString, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE } from '@sentry/core';\nimport { bindTracingChannelToSpan } from '../tracing-channel.js';\n\nconst AI_SDK_TELEMETRY_TRACING_CHANNEL = \"ai:telemetry\";\nconst ORIGIN = \"auto.vercelai.channel\";\nconst GEN_AI_TOOL_CALL_ID_ATTRIBUTE = \"gen_ai.tool.call.id\";\nconst GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE = \"gen_ai.tool.description\";\nconst GEN_AI_EMBEDDINGS_OPERATION = \"embeddings\";\nconst GEN_AI_RERANK_OPERATION = \"rerank\";\nconst GEN_AI_GENERATE_CONTENT_OPERATION = \"generate_content\";\nconst VERCEL_AI_OPERATION_ID_ATTRIBUTE = \"vercel.ai.operationId\";\nconst VERCEL_AI_MODEL_PROVIDER_ATTRIBUTE = \"vercel.ai.model.provider\";\nconst VERCEL_AI_SETTINGS_MAX_RETRIES_ATTRIBUTE = \"vercel.ai.settings.maxRetries\";\nconst operationIdByCallId = /* @__PURE__ */ new Map();\nconst toolDescriptionsByCallId = /* @__PURE__ */ new Map();\nconst ROOT_OPERATION_TYPES = /* @__PURE__ */ new Set([\"generateText\", \"streamText\", \"embed\", \"rerank\"]);\nfunction clearOperationId(data) {\n if (!ROOT_OPERATION_TYPES.has(data.type)) {\n return;\n }\n const callId = asString(data.event.callId);\n if (callId) {\n operationIdByCallId.delete(callId);\n toolDescriptionsByCallId.delete(callId);\n }\n}\nfunction recordToolDescriptions(callId, tools) {\n if (!callId || !Array.isArray(tools)) {\n return;\n }\n let descriptions = toolDescriptionsByCallId.get(callId);\n for (const tool of tools) {\n if (isRecord(tool) && typeof tool.name === \"string\" && typeof tool.description === \"string\") {\n descriptions = descriptions ?? /* @__PURE__ */ new Map();\n if (!descriptions.has(tool.name)) {\n descriptions.set(tool.name, tool.description);\n }\n }\n }\n if (descriptions) {\n toolDescriptionsByCallId.set(callId, descriptions);\n }\n}\nfunction resolveToolDescription(callId, toolName, tools) {\n const fromMap = callId ? toolDescriptionsByCallId.get(callId)?.get(toolName) : void 0;\n if (fromMap) {\n return fromMap;\n }\n if (Array.isArray(tools)) {\n const match = tools.find((tool) => isRecord(tool) && tool.name === toolName);\n return isRecord(match) ? asString(match.description) : void 0;\n }\n if (isRecord(tools)) {\n const tool = tools[toolName];\n return isRecord(tool) ? asString(tool.description) : void 0;\n }\n return void 0;\n}\nlet subscribed = false;\nfunction subscribeVercelAiTracingChannel(tracingChannel, options = {}) {\n if (subscribed) {\n return;\n }\n subscribed = true;\n bindTracingChannelToSpan(\n tracingChannel(AI_SDK_TELEMETRY_TRACING_CHANNEL),\n (data) => createSpanFromMessage(data, options),\n {\n // The helper ends the span; we enrich it from the settled result first (tokens, output messages,\n // finish reasons, response model/id, provider metadata) and drop the per-operation `callId` maps.\n beforeSpanEnd: (span, data) => {\n enrichSpanOnEnd(span, data, options);\n clearOperationId(data);\n }\n }\n );\n}\nfunction createSpanFromMessage(data, channelOptions) {\n const { type, event } = data;\n if (type === \"step\" || !event || typeof event !== \"object\") {\n return void 0;\n }\n const { recordInputs, enableTruncation } = getRecordingOptions(event, channelOptions);\n const provider = asString(event.provider);\n const modelId = asString(event.modelId);\n const callId = asString(event.callId);\n const maxRetries = asNumber(event.maxRetries);\n if (recordInputs) {\n recordToolDescriptions(callId, event.tools);\n }\n const baseAttributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n ...provider ? { [GEN_AI_SYSTEM]: provider, [VERCEL_AI_MODEL_PROVIDER_ATTRIBUTE]: provider } : {},\n ...modelId ? { [GEN_AI_REQUEST_MODEL]: modelId } : {},\n ...maxRetries !== void 0 ? { [VERCEL_AI_SETTINGS_MAX_RETRIES_ATTRIBUTE]: maxRetries } : {}\n };\n switch (type) {\n case \"generateText\":\n case \"streamText\":\n return buildInvokeAgentSpan(event, baseAttributes, recordInputs, enableTruncation, callId, type === \"streamText\");\n case \"languageModelCall\":\n return buildModelCallSpan(event, baseAttributes, recordInputs, enableTruncation, callId, modelId);\n case \"executeTool\":\n return buildToolSpan(event, recordInputs);\n case \"embed\":\n return startGenAiSpan(GEN_AI_EMBEDDINGS_OPERATION, modelId, {\n ...baseAttributes,\n ...recordInputs && event.value !== void 0 ? { [GEN_AI_EMBEDDINGS_INPUT]: safeStringify(event.value) } : {}\n });\n case \"rerank\":\n return startGenAiSpan(GEN_AI_RERANK_OPERATION, modelId, baseAttributes);\n default:\n return void 0;\n }\n}\nfunction startGenAiSpan(operation, suffix, attributes) {\n return startInactiveSpan({\n name: suffix ? `${operation} ${suffix}` : operation,\n op: `gen_ai.${operation}`,\n attributes: { [GEN_AI_OPERATION_NAME]: operation, ...attributes }\n });\n}\nfunction buildInvokeAgentSpan(event, baseAttributes, recordInputs, enableTruncation, callId, isStream) {\n const functionId = asString(event.functionId);\n const operationId = asString(event.operationId) ?? (isStream ? \"ai.streamText\" : \"ai.generateText\");\n if (callId) {\n operationIdByCallId.set(callId, { operationId, isStream });\n }\n return startGenAiSpan(GEN_AI_INVOKE_AGENT_SPAN_OP, functionId, {\n ...baseAttributes,\n [VERCEL_AI_OPERATION_ID_ATTRIBUTE]: operationId,\n [GEN_AI_RESPONSE_STREAMING]: isStream,\n ...functionId ? { [GEN_AI_FUNCTION_ID]: functionId } : {},\n ...recordInputs ? buildInputMessageAttributes(event, enableTruncation) : {}\n });\n}\nfunction buildModelCallSpan(event, baseAttributes, recordInputs, enableTruncation, callId, modelId) {\n const parent = callId ? operationIdByCallId.get(callId) : void 0;\n const operationId = parent ? `${parent.operationId}.${parent.isStream ? \"doStream\" : \"doGenerate\"}` : \"ai.generateText.doGenerate\";\n return startGenAiSpan(GEN_AI_GENERATE_CONTENT_OPERATION, modelId, {\n ...baseAttributes,\n [VERCEL_AI_OPERATION_ID_ATTRIBUTE]: operationId,\n ...recordInputs ? buildInputMessageAttributes(event, enableTruncation) : {},\n ...recordInputs && Array.isArray(event.tools) ? { [GEN_AI_REQUEST_AVAILABLE_TOOLS]: safeStringify(event.tools) } : {}\n });\n}\nfunction buildToolSpan(event, recordInputs) {\n const toolCall = isRecord(event.toolCall) ? event.toolCall : {};\n const toolName = asString(toolCall.toolName);\n const toolCallId = asString(event.toolCallId) ?? asString(toolCall.toolCallId);\n const toolInput = toolCall.input ?? toolCall.args;\n const description = recordInputs && toolName ? resolveToolDescription(asString(event.callId), toolName, event.tools) : void 0;\n return startGenAiSpan(GEN_AI_EXECUTE_TOOL_SPAN_OP, toolName, {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [GEN_AI_TOOL_TYPE]: \"function\",\n ...toolName ? { [GEN_AI_TOOL_NAME]: toolName } : {},\n ...toolCallId ? { [GEN_AI_TOOL_CALL_ID_ATTRIBUTE]: toolCallId } : {},\n ...description ? { [GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE]: description } : {},\n ...recordInputs && toolInput !== void 0 ? { [GEN_AI_TOOL_INPUT]: safeStringify(toolInput) } : {}\n });\n}\nfunction enrichSpanOnEnd(span, data, channelOptions) {\n const { type, result } = data;\n if (!isRecord(result)) {\n return;\n }\n const { recordOutputs } = getRecordingOptions(data.event, channelOptions);\n if (type === \"executeTool\") {\n if (recordOutputs) {\n span.setAttribute(GEN_AI_TOOL_OUTPUT, safeStringify(result.output ?? result));\n }\n const output = isRecord(result.output) ? result.output : void 0;\n if (output?.type === \"tool-error\") {\n captureToolError(span, data, output.error);\n }\n return;\n }\n const usage = isRecord(result.usage) ? result.usage : void 0;\n if (usage) {\n const inputTokens = tokenCount(usage.inputTokens) ?? tokenCount(usage.tokens);\n const outputTokens = tokenCount(usage.outputTokens);\n const totalTokens = tokenCount(usage.totalTokens) ?? sum(inputTokens, outputTokens);\n if (inputTokens !== void 0) {\n span.setAttribute(GEN_AI_USAGE_INPUT_TOKENS, inputTokens);\n }\n if (outputTokens !== void 0) {\n span.setAttribute(GEN_AI_USAGE_OUTPUT_TOKENS, outputTokens);\n }\n if (totalTokens !== void 0) {\n span.setAttribute(GEN_AI_USAGE_TOTAL_TOKENS, totalTokens);\n }\n }\n const finishReason = getFinishReason(result);\n if (finishReason && type === \"languageModelCall\") {\n span.setAttribute(GEN_AI_RESPONSE_FINISH_REASONS, safeStringify([finishReason]));\n }\n const response = isRecord(result.response) ? result.response : void 0;\n const responseId = asString(response?.id) ?? asString(result.responseId);\n if (responseId) {\n span.setAttribute(GEN_AI_RESPONSE_ID, responseId);\n }\n const responseModel = asString(response?.modelId) ?? asString(data.event.modelId);\n if (responseModel) {\n span.setAttribute(GEN_AI_RESPONSE_MODEL, responseModel);\n }\n const providerMetadata = result.providerMetadata;\n const providerAttributes = getProviderMetadataAttributes(providerMetadata);\n if (GEN_AI_CONVERSATION_ID_ATTRIBUTE in providerAttributes && spanToJSON(span).data[GEN_AI_CONVERSATION_ID_ATTRIBUTE]) {\n delete providerAttributes[GEN_AI_CONVERSATION_ID_ATTRIBUTE];\n }\n span.setAttributes(providerAttributes);\n if (recordOutputs) {\n const parts = type === \"languageModelCall\" && Array.isArray(result.content) ? partsFromContent(result.content) : partsFromTextAndToolCalls(result.text, result.toolCalls);\n const outputMessages = buildOutputMessages(parts, finishReason);\n if (outputMessages) {\n span.setAttribute(GEN_AI_OUTPUT_MESSAGES, outputMessages);\n }\n }\n}\nfunction normalizeFinishReason(finishReason) {\n return finishReason === \"tool-calls\" ? \"tool_call\" : finishReason ?? \"stop\";\n}\nfunction getFinishReason(result) {\n const finishReason = result.finishReason;\n if (typeof finishReason === \"string\") {\n return finishReason;\n }\n return isRecord(finishReason) ? asString(finishReason.unified) : void 0;\n}\nfunction tokenCount(value) {\n return asNumber(value) ?? (isRecord(value) ? asNumber(value.total) : void 0);\n}\nfunction buildOutputMessages(parts, finishReason) {\n if (!parts.length) {\n return void 0;\n }\n return safeStringify([{ role: \"assistant\", parts, finish_reason: normalizeFinishReason(finishReason) }]);\n}\nfunction toolCallPart(toolCall) {\n const args = toolCall.input ?? toolCall.args;\n return {\n type: \"tool_call\",\n id: asString(toolCall.toolCallId),\n name: asString(toolCall.toolName),\n arguments: typeof args === \"string\" ? args : safeStringify(args ?? {})\n };\n}\nfunction partsFromContent(content) {\n const parts = [];\n for (const item of content) {\n if (!isRecord(item)) {\n continue;\n }\n if (item.type === \"text\" && typeof item.text === \"string\") {\n parts.push({ type: \"text\", content: item.text });\n } else if (item.type === \"tool-call\") {\n parts.push(toolCallPart(item));\n }\n }\n return parts;\n}\nfunction partsFromTextAndToolCalls(text, toolCalls) {\n const parts = [];\n if (typeof text === \"string\" && text.length) {\n parts.push({ type: \"text\", content: text });\n }\n if (Array.isArray(toolCalls)) {\n for (const toolCall of toolCalls) {\n if (isRecord(toolCall)) {\n parts.push(toolCallPart(toolCall));\n }\n }\n }\n return parts;\n}\nfunction captureToolError(span, data, error) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: error instanceof Error ? error.message : \"tool_error\"\n });\n const toolCall = isRecord(data.event.toolCall) ? data.event.toolCall : {};\n const toolName = asString(toolCall.toolName);\n const toolCallId = asString(data.event.toolCallId) ?? asString(toolCall.toolCallId);\n withScope((scope) => {\n scope.setContext(\"trace\", spanToTraceContext(span));\n if (toolName) {\n scope.setTag(\"vercel.ai.tool.name\", toolName);\n }\n if (toolCallId) {\n scope.setTag(\"vercel.ai.tool.callId\", toolCallId);\n }\n scope.setLevel(\"error\");\n captureException(\n error instanceof Error ? error : new Error(typeof error === \"string\" ? error : \"Tool execution failed\"),\n {\n mechanism: { type: \"auto.vercelai.channel\", handled: false }\n }\n );\n });\n}\nfunction getRecordingOptions(event, channelOptions) {\n const genAI = getClient()?.getDataCollectionOptions().genAI;\n return {\n recordInputs: resolveRecording(channelOptions.recordInputs, event.recordInputs, genAI?.inputs),\n recordOutputs: resolveRecording(channelOptions.recordOutputs, event.recordOutputs, genAI?.outputs),\n enableTruncation: shouldEnableTruncation(channelOptions.enableTruncation)\n };\n}\nfunction resolveRecording(integrationOption, perCallOption, globalDefault) {\n if (typeof integrationOption === \"boolean\") {\n return integrationOption;\n }\n if (typeof perCallOption === \"boolean\") {\n return perCallOption;\n }\n return globalDefault === true;\n}\nfunction buildInputMessageAttributes(event, enableTruncation) {\n const attributes = {};\n const instructions = asString(event.instructions);\n if (instructions) {\n attributes[GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE] = safeStringify([{ type: \"text\", content: instructions }]);\n }\n const messages = event.messages ?? event.prompt;\n if (messages !== void 0) {\n attributes[GEN_AI_INPUT_MESSAGES] = enableTruncation ? getTruncatedJsonString(messages) : safeStringify(messages);\n attributes[GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE] = Array.isArray(messages) ? messages.length : 1;\n }\n return attributes;\n}\nfunction asString(value) {\n return typeof value === \"string\" ? value : void 0;\n}\nfunction asNumber(value) {\n return typeof value === \"number\" && !isNaN(value) ? value : void 0;\n}\nfunction sum(a, b) {\n return a === void 0 && b === void 0 ? void 0 : (a ?? 0) + (b ?? 0);\n}\nfunction isRecord(value) {\n return typeof value === \"object\" && value !== null;\n}\nfunction safeStringify(value) {\n if (typeof value === \"string\") {\n return value;\n }\n try {\n return JSON.stringify(value);\n } catch {\n return \"[unserializable]\";\n }\n}\n\nexport { clearOperationId, createSpanFromMessage, enrichSpanOnEnd, subscribeVercelAiTracingChannel };\n//# sourceMappingURL=vercel-ai-dc-subscriber.js.map\n", + "import { defineIntegration, waitForTracingChannelBinding } from '@sentry/core';\nimport { subscribeVercelAiTracingChannel } from './vercel-ai-dc-subscriber.js';\nimport * as diagnosticsChannel from 'node:diagnostics_channel';\n\nconst _vercelAiIntegration = ((options = {}) => {\n return {\n name: \"VercelAI\",\n setupOnce() {\n if (!diagnosticsChannel.tracingChannel) {\n return;\n }\n waitForTracingChannelBinding(() => {\n subscribeVercelAiTracingChannel(diagnosticsChannel.tracingChannel, options);\n });\n }\n };\n});\nconst vercelAiIntegration = defineIntegration(_vercelAiIntegration);\n\nexport { vercelAiIntegration };\n//# sourceMappingURL=index.js.map\n", + "import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport { HTTP_ROUTE, URL_PATH, HTTP_REQUEST_METHOD, HTTP_RESPONSE_STATUS_CODE } from '@sentry/conventions/attributes';\nimport { debug, getIsolationScope, getActiveSpan, getRootSpan, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, startInactiveSpan, withActiveSpan, startSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../../debug-build.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-fastify\";\nconst SUPPORTED_VERSIONS = \">=3.21.0 <6\";\nconst ORIGIN = \"auto.http.otel.fastify\";\nconst HOOK_OP = \"hook.fastify\";\nconst REQUEST_HANDLER_OP = \"request_handler.fastify\";\nconst FASTIFY_HOOKS = [\n \"onRequest\",\n \"preParsing\",\n \"preValidation\",\n \"preHandler\",\n \"preSerialization\",\n \"onSend\",\n \"onResponse\",\n \"onError\"\n];\nconst ATTRIBUTE_HOOK_NAME = \"hook.name\";\nconst ATTRIBUTE_FASTIFY_TYPE = \"fastify.type\";\nconst ATTRIBUTE_HOOK_CALLBACK_NAME = \"hook.callback.name\";\nconst ATTRIBUTE_FASTIFY_ROOT = \"fastify.root\";\nconst HOOK_TYPE_ROUTE = \"route-hook\";\nconst HOOK_TYPE_INSTANCE = \"hook\";\nconst HOOK_TYPE_HANDLER = \"request-handler\";\nconst ANONYMOUS_FUNCTION_NAME = \"anonymous\";\nconst kRequestSpan = /* @__PURE__ */ Symbol(\"sentry fastify request span\");\nconst kAddHookOriginal = /* @__PURE__ */ Symbol(\"sentry fastify addHook original\");\nconst kSetNotFoundOriginal = /* @__PURE__ */ Symbol(\"sentry fastify setNotFoundHandler original\");\nfunction getRequestRouteUrl(request) {\n return request.routeOptions?.url ?? request.routerPath;\n}\nfunction getRequestRouteConfig(request) {\n return request.routeOptions?.config ?? request.routeConfig;\n}\nfunction isFastifyRequest(arg) {\n return !!arg && typeof arg === \"object\" && !!arg.method && !!arg.url && (!!arg.routeOptions || \"routerPath\" in arg);\n}\nfunction fastifyOtelPlugin(instance, _opts, done) {\n instance.decorate(kAddHookOriginal, instance.addHook);\n instance.decorate(kSetNotFoundOriginal, instance.setNotFoundHandler);\n instance.decorateRequest(\"opentelemetry\", function opentelemetry() {\n return { span: this[kRequestSpan] };\n });\n instance.decorateRequest(kRequestSpan, null);\n instance.addHook(\"onRoute\", otelWireRoute);\n instance.addHook(\"onRequest\", startRequestSpanHook);\n instance.addHook(\"onResponse\", finalizeNotFoundSpanHook);\n instance.addHook = addHookPatched;\n instance.setNotFoundHandler = setNotFoundHandlerPatched;\n done();\n}\nconst pluginSymbols = fastifyOtelPlugin;\npluginSymbols[/* @__PURE__ */ Symbol.for(\"skip-override\")] = true;\npluginSymbols[/* @__PURE__ */ Symbol.for(\"fastify.display-name\")] = PACKAGE_NAME;\npluginSymbols[/* @__PURE__ */ Symbol.for(\"plugin-meta\")] = {\n fastify: SUPPORTED_VERSIONS,\n name: PACKAGE_NAME\n};\nfunction otelWireRoute(routeOptions) {\n if (routeOptions.config?.otel === false) {\n return;\n }\n for (const hook of FASTIFY_HOOKS) {\n const handlerLike = routeOptions[hook];\n if (typeof handlerLike === \"function\") {\n routeOptions[hook] = handlerWrapper(\n handlerLike,\n hook,\n routeHookAttributes(this.pluginName, hook, handlerLike, routeOptions.url)\n );\n } else if (Array.isArray(handlerLike)) {\n routeOptions[hook] = handlerLike.map(\n (handler) => handlerWrapper(handler, hook, routeHookAttributes(this.pluginName, hook, handler, routeOptions.url))\n );\n }\n }\n routeOptions.onSend = appendRouteHook(routeOptions.onSend, finalizeResponseSpanHook);\n routeOptions.onError = appendRouteHook(routeOptions.onError, recordErrorInSpanHook);\n routeOptions.handler = handlerWrapper(routeOptions.handler, \"handler\", {\n [ATTRIBUTE_HOOK_NAME]: `${this.pluginName} - route-handler`,\n [ATTRIBUTE_FASTIFY_TYPE]: HOOK_TYPE_HANDLER,\n [HTTP_ROUTE]: routeOptions.url,\n [ATTRIBUTE_HOOK_CALLBACK_NAME]: routeOptions.handler.name.length > 0 ? routeOptions.handler.name : ANONYMOUS_FUNCTION_NAME\n });\n}\nfunction routeHookAttributes(pluginName, hook, handler, url) {\n return {\n [ATTRIBUTE_HOOK_NAME]: `${pluginName} - route -> ${hook}`,\n [ATTRIBUTE_FASTIFY_TYPE]: HOOK_TYPE_ROUTE,\n [HTTP_ROUTE]: url,\n [ATTRIBUTE_HOOK_CALLBACK_NAME]: handler.name?.length > 0 ? handler.name : ANONYMOUS_FUNCTION_NAME\n };\n}\nfunction appendRouteHook(existing, hook) {\n if (existing == null) {\n return hook;\n }\n return Array.isArray(existing) ? [...existing, hook] : [existing, hook];\n}\nfunction startRequestSpanHook(request, _reply, hookDone) {\n if (getRequestRouteConfig(request)?.otel === false) {\n return hookDone();\n }\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [ATTRIBUTE_FASTIFY_ROOT]: PACKAGE_NAME,\n [HTTP_REQUEST_METHOD]: request.method,\n [URL_PATH]: request.url\n };\n const route = getRequestRouteUrl(request);\n if (route != null) {\n attributes[HTTP_ROUTE] = route;\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n if (rootSpan && spanToJSON(rootSpan).data[SEMANTIC_ATTRIBUTE_SENTRY_OP] === \"http.server\") {\n rootSpan.setAttribute(HTTP_ROUTE, route);\n }\n }\n const requestSpan = startInactiveSpan({ name: \"request\", op: REQUEST_HANDLER_OP, attributes });\n request[kRequestSpan] = requestSpan;\n withActiveSpan(requestSpan, () => {\n hookDone();\n });\n}\nfunction finalizeNotFoundSpanHook(request, reply, hookDone) {\n const span = request[kRequestSpan];\n if (span != null) {\n span.setAttributes({ [HTTP_RESPONSE_STATUS_CODE]: reply.statusCode });\n span.end();\n }\n request[kRequestSpan] = null;\n hookDone();\n}\nfunction finalizeResponseSpanHook(request, reply, payload, hookDone) {\n const span = request[kRequestSpan];\n if (span != null) {\n if (reply.statusCode >= 500) {\n span.setStatus({ code: SPAN_STATUS_ERROR });\n }\n span.setAttributes({ [HTTP_RESPONSE_STATUS_CODE]: reply.statusCode });\n span.end();\n }\n request[kRequestSpan] = null;\n hookDone(null, payload);\n}\nfunction recordErrorInSpanHook(request, _reply, error, hookDone) {\n const span = request[kRequestSpan];\n if (span != null) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: error.message });\n }\n hookDone();\n}\nfunction addHookPatched(name, hook) {\n const addHookOriginal = this[kAddHookOriginal];\n if (FASTIFY_HOOKS.includes(name)) {\n return addHookOriginal.call(\n this,\n name,\n handlerWrapper(hook, name, {\n [ATTRIBUTE_HOOK_NAME]: `${this.pluginName} - ${name}`,\n [ATTRIBUTE_FASTIFY_TYPE]: HOOK_TYPE_INSTANCE,\n [ATTRIBUTE_HOOK_CALLBACK_NAME]: hook.name?.length > 0 ? hook.name : ANONYMOUS_FUNCTION_NAME\n })\n );\n }\n return addHookOriginal.call(this, name, hook);\n}\nfunction setNotFoundHandlerPatched(hooks, handler) {\n const setNotFoundHandlerOriginal = this[kSetNotFoundOriginal];\n if (typeof hooks === \"function\") {\n setNotFoundHandlerOriginal.call(\n this,\n handlerWrapper(hooks, \"notFoundHandler\", {\n [ATTRIBUTE_HOOK_NAME]: `${this.pluginName} - not-found-handler`,\n [ATTRIBUTE_FASTIFY_TYPE]: HOOK_TYPE_INSTANCE,\n [ATTRIBUTE_HOOK_CALLBACK_NAME]: hooks.name?.length > 0 ? hooks.name : ANONYMOUS_FUNCTION_NAME\n })\n );\n return;\n }\n if (hooks.preValidation != null) {\n hooks.preValidation = handlerWrapper(hooks.preValidation, \"notFoundHandler - preValidation\", {\n [ATTRIBUTE_HOOK_NAME]: `${this.pluginName} - not-found-handler - preValidation`,\n [ATTRIBUTE_FASTIFY_TYPE]: HOOK_TYPE_INSTANCE,\n [ATTRIBUTE_HOOK_CALLBACK_NAME]: hooks.preValidation.name?.length > 0 ? hooks.preValidation.name : ANONYMOUS_FUNCTION_NAME\n });\n }\n if (hooks.preHandler != null) {\n hooks.preHandler = handlerWrapper(hooks.preHandler, \"notFoundHandler - preHandler\", {\n [ATTRIBUTE_HOOK_NAME]: `${this.pluginName} - not-found-handler - preHandler`,\n [ATTRIBUTE_FASTIFY_TYPE]: HOOK_TYPE_INSTANCE,\n [ATTRIBUTE_HOOK_CALLBACK_NAME]: hooks.preHandler.name?.length > 0 ? hooks.preHandler.name : ANONYMOUS_FUNCTION_NAME\n });\n }\n if (handler == null) {\n setNotFoundHandlerOriginal.call(this, hooks);\n return;\n }\n setNotFoundHandlerOriginal.call(\n this,\n hooks,\n handlerWrapper(handler, \"notFoundHandler\", {\n [ATTRIBUTE_HOOK_NAME]: `${this.pluginName} - not-found-handler`,\n [ATTRIBUTE_FASTIFY_TYPE]: HOOK_TYPE_INSTANCE,\n [ATTRIBUTE_HOOK_CALLBACK_NAME]: handler.name?.length > 0 ? handler.name : ANONYMOUS_FUNCTION_NAME\n })\n );\n}\nfunction getRequestFromArgs(args) {\n for (const arg of args) {\n if (isFastifyRequest(arg)) {\n return arg;\n }\n }\n return null;\n}\nfunction handlerWrapper(handler, hookName, spanAttributes = {}) {\n return function handlerWrapped(...args) {\n const request = getRequestFromArgs(args);\n if (request === null || getRequestRouteConfig(request)?.otel === false) {\n return handler.call(this, ...args);\n }\n const parentSpan = request[kRequestSpan] ?? void 0;\n const handlerName = handler.name?.length > 0 ? handler.name : this.pluginName ?? ANONYMOUS_FUNCTION_NAME;\n const hookType = spanAttributes[ATTRIBUTE_FASTIFY_TYPE];\n const op = hookType === HOOK_TYPE_INSTANCE ? HOOK_OP : hookType === HOOK_TYPE_HANDLER ? REQUEST_HANDLER_OP : void 0;\n const name = op ? stripFastifyPrefix(spanAttributes[ATTRIBUTE_HOOK_NAME]) : `${hookName} - ${handlerName}`;\n return startSpan(\n {\n name,\n op,\n attributes: {\n ...spanAttributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n },\n parentSpan\n },\n () => handler.call(this, ...args)\n );\n };\n}\nfunction stripFastifyPrefix(hookName = \"\") {\n return hookName.replace(/^fastify -> /, \"\").replace(/^@fastify\\/otel -> /, \"\").replace(/^@sentry\\/instrumentation-fastify -> /, \"\");\n}\nfunction instrumentOnRequest(fastify) {\n fastify.addHook(\"onRequest\", async (request, _reply) => {\n const routeName = getRequestRouteUrl(request);\n const method = request.method || \"GET\";\n getIsolationScope().setTransactionName(`${method} ${routeName}`);\n });\n}\nlet _isInstrumented = false;\nconst instrumentFastify = Object.assign(\n function instrumentFastify2() {\n if (_isInstrumented) {\n return;\n }\n _isInstrumented = true;\n diagnosticsChannel.subscribe(\"fastify.initialization\", (message) => {\n const fastifyInstance = message.fastify;\n fastifyInstance?.register(fastifyOtelPlugin).after((err) => {\n if (err) {\n DEBUG_BUILD && debug.error(\"Failed to setup Fastify instrumentation\", err);\n } else if (fastifyInstance) {\n instrumentOnRequest(fastifyInstance);\n }\n });\n });\n },\n { id: \"Fastify.v5\" }\n);\n\nexport { instrumentFastify };\n//# sourceMappingURL=instrumentation.js.map\n", + "const INTEGRATION_NAME = \"Fastify\";\nfunction defaultShouldHandleError(_error, _request, reply) {\n const statusCode = reply.statusCode;\n return statusCode >= 500 || statusCode <= 299;\n}\n\nexport { INTEGRATION_NAME, defaultShouldHandleError };\n//# sourceMappingURL=utils.js.map\n", + "import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport { DEBUG_BUILD } from '../../../debug-build.js';\nimport { debug, captureException, getClient } from '@sentry/core';\nimport { defaultShouldHandleError, INTEGRATION_NAME } from './utils.js';\n\nfunction getFastifyIntegration() {\n const client = getClient();\n return client?.getIntegrationByName(INTEGRATION_NAME);\n}\nfunction subscribeToFastifyErrorChannel() {\n diagnosticsChannel.subscribe(\"tracing:fastify.request.handler:error\", (message) => {\n const { error, request, reply } = message;\n handleFastifyError.call(handleFastifyError, error, request, reply, \"diagnostics-channel\");\n });\n}\nfunction handleFastifyError(error, request, reply, handlerOrigin) {\n const shouldHandleError = getFastifyIntegration()?.getShouldHandleError() || defaultShouldHandleError;\n if (handlerOrigin === \"diagnostics-channel\") {\n this.diagnosticsChannelExists = true;\n }\n if (this.diagnosticsChannelExists && handlerOrigin === \"onError-hook\") {\n DEBUG_BUILD && debug.warn(\n \"Fastify error handler was already registered via diagnostics channel.\",\n \"You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.\"\n );\n return;\n }\n if (shouldHandleError(error, request, reply)) {\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.function.fastify\"\n }\n });\n }\n}\n\nexport { handleFastifyError, subscribeToFastifyErrorChannel };\n//# sourceMappingURL=errors.js.map\n", + "import { defineIntegration } from '@sentry/core';\nimport { instrumentFastify as instrumentFastify$1 } from './instrumentation.js';\nimport { INTEGRATION_NAME, defaultShouldHandleError } from './utils.js';\nimport { subscribeToFastifyErrorChannel, handleFastifyError as handleFastifyError$1 } from './errors.js';\n\nconst _fastifyIntegration = (({ shouldHandleError }) => {\n let _shouldHandleError;\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n _shouldHandleError = shouldHandleError || defaultShouldHandleError;\n subscribeToFastifyErrorChannel();\n instrumentFastify$1();\n },\n getShouldHandleError() {\n return _shouldHandleError;\n },\n setShouldHandleError(shouldHandleError2) {\n _shouldHandleError = shouldHandleError2;\n }\n };\n});\nconst fastifyIntegration = defineIntegration(\n (options = {}) => _fastifyIntegration(options)\n);\nconst instrumentFastify = instrumentFastify$1;\nconst handleFastifyError = handleFastifyError$1;\n\nexport { fastifyIntegration, handleFastifyError, instrumentFastify };\n//# sourceMappingURL=index.js.map\n", + "import { defineIntegration, extendIntegration, getClient } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { FastifyInstrumentationV3 } from './v3/instrumentation.js';\nimport { fastifyIntegration as fastifyIntegration$1, handleFastifyError } from '@sentry/server-utils';\nexport { instrumentFastify } from '@sentry/server-utils';\n\nconst INTEGRATION_NAME = \"Fastify\";\nconst instrumentFastifyV3 = generateInstrumentOnce(\n `${INTEGRATION_NAME}.v3`,\n () => new FastifyInstrumentationV3()\n);\nfunction getFastifyIntegration() {\n const client = getClient();\n if (!client) {\n return void 0;\n } else {\n return client.getIntegrationByName(INTEGRATION_NAME);\n }\n}\nconst _fastifyIntegration = ((options) => {\n const parentIntegration = fastifyIntegration$1(options);\n return extendIntegration(parentIntegration, {\n setupOnce() {\n instrumentFastifyV3();\n }\n });\n});\nconst fastifyIntegration = defineIntegration(\n (options = {}) => _fastifyIntegration(options)\n);\nfunction setupFastifyErrorHandler(fastify, options) {\n if (options?.shouldHandleError) {\n getFastifyIntegration()?.setShouldHandleError(options.shouldHandleError);\n }\n const plugin = Object.assign(\n function(fastify2, _options, done) {\n fastify2.addHook(\"onError\", async (request, reply, error) => {\n handleFastifyError.call(handleFastifyError, error, request, reply, \"onError-hook\");\n });\n done();\n },\n {\n [/* @__PURE__ */ Symbol.for(\"skip-override\")]: true,\n [/* @__PURE__ */ Symbol.for(\"fastify.display-name\")]: \"sentry-fastify-error-handler\"\n }\n );\n fastify.register(plugin);\n}\n\nexport { fastifyIntegration, instrumentFastifyV3, setupFastifyErrorHandler };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped, safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile.js';\nimport { SpanNames } from './enum.js';\nimport { AttributeNames } from './enums/AttributeNames.js';\nimport { OTEL_GRAPHQL_DATA_SYMBOL } from './symbols.js';\nimport { OPERATION_NOT_SUPPORTED } from './internal-types.js';\nimport { getOperation, endSpan, isPromise, addSpanSource, wrapFieldResolver, wrapFields } from './utils.js';\nimport { SDK_VERSION, withActiveSpan, spanToJSON, SPAN_STATUS_ERROR, getRootSpan, startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION } from '@sentry/opentelemetry';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-graphql\";\nconst ORIGIN = \"auto.graphql.otel.graphql\";\nconst DEFAULT_CONFIG = {\n ignoreResolveSpans: false\n};\nconst supportedVersions = [\">=14.0.0 <17\"];\nclass GraphQLInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, { ...DEFAULT_CONFIG, ...config });\n }\n setConfig(config = {}) {\n super.setConfig({ ...DEFAULT_CONFIG, ...config });\n }\n init() {\n const module = new InstrumentationNodeModuleDefinition(\"graphql\", supportedVersions);\n module.files.push(this._addPatchingExecute());\n module.files.push(this._addPatchingParser());\n module.files.push(this._addPatchingValidate());\n return module;\n }\n _addPatchingExecute() {\n return new InstrumentationNodeModuleFile(\n \"graphql/execution/execute.js\",\n supportedVersions,\n // cannot make it work with appropriate type as execute function has 2\n //types and/cannot import function but only types\n (moduleExports) => {\n if (isWrapped(moduleExports.execute)) {\n this._unwrap(moduleExports, \"execute\");\n }\n this._wrap(moduleExports, \"execute\", this._patchExecute(moduleExports.defaultFieldResolver));\n return moduleExports;\n },\n (moduleExports) => {\n if (moduleExports) {\n this._unwrap(moduleExports, \"execute\");\n }\n }\n );\n }\n _addPatchingParser() {\n return new InstrumentationNodeModuleFile(\n \"graphql/language/parser.js\",\n supportedVersions,\n (moduleExports) => {\n if (isWrapped(moduleExports.parse)) {\n this._unwrap(moduleExports, \"parse\");\n }\n this._wrap(moduleExports, \"parse\", this._patchParse());\n return moduleExports;\n },\n (moduleExports) => {\n if (moduleExports) {\n this._unwrap(moduleExports, \"parse\");\n }\n }\n );\n }\n _addPatchingValidate() {\n return new InstrumentationNodeModuleFile(\n \"graphql/validation/validate.js\",\n supportedVersions,\n (moduleExports) => {\n if (isWrapped(moduleExports.validate)) {\n this._unwrap(moduleExports, \"validate\");\n }\n this._wrap(moduleExports, \"validate\", this._patchValidate());\n return moduleExports;\n },\n (moduleExports) => {\n if (moduleExports) {\n this._unwrap(moduleExports, \"validate\");\n }\n }\n );\n }\n _patchExecute(defaultFieldResolved) {\n const instrumentation = this;\n return function execute(original) {\n return function patchExecute() {\n let processedArgs;\n if (arguments.length >= 2) {\n const args = arguments;\n processedArgs = instrumentation._wrapExecuteArgs(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5],\n args[6],\n args[7],\n defaultFieldResolved\n );\n } else {\n const args = arguments[0];\n processedArgs = instrumentation._wrapExecuteArgs(\n args.schema,\n args.document,\n args.rootValue,\n args.contextValue,\n args.variableValues,\n args.operationName,\n args.fieldResolver,\n args.typeResolver,\n defaultFieldResolved\n );\n }\n const operation = getOperation(processedArgs.document, processedArgs.operationName);\n const span = instrumentation._createExecuteSpan(operation, processedArgs);\n processedArgs.contextValue[OTEL_GRAPHQL_DATA_SYMBOL] = {\n source: processedArgs.document ? processedArgs.document || processedArgs.document[OTEL_GRAPHQL_DATA_SYMBOL] : void 0,\n span,\n fields: {}\n };\n return withActiveSpan(span, () => {\n return safeExecuteInTheMiddle(\n () => {\n return original.apply(this, [processedArgs]);\n },\n (err, result) => {\n instrumentation._handleExecutionResult(span, err, result);\n }\n );\n });\n };\n };\n }\n _handleExecutionResult(span, err, result) {\n if (result === void 0 || err) {\n endSpan(span, err);\n return;\n }\n if (isPromise(result)) {\n result.then(\n (resultData) => {\n this._updateSpanFromResult(span, resultData);\n endSpan(span);\n },\n (error) => {\n endSpan(span, error);\n }\n );\n } else {\n this._updateSpanFromResult(span, result);\n endSpan(span);\n }\n }\n /**\n * Applies Sentry-specific span mutations based on the GraphQL execution result:\n * - Marks the execute span as errored if the result contains errors (and no status was set yet)\n * - Optionally renames the containing root span to include the GraphQL operation name(s)\n */\n _updateSpanFromResult(span, result) {\n if (result.errors?.length && !spanToJSON(span).status) {\n span.setStatus({ code: SPAN_STATUS_ERROR });\n }\n if (!this.getConfig().useOperationNameForRootSpan) {\n return;\n }\n const attributes = spanToJSON(span).data;\n const operationType = attributes[AttributeNames.OPERATION_TYPE];\n const operationName = attributes[AttributeNames.OPERATION_NAME];\n if (!operationType) {\n return;\n }\n const rootSpan = getRootSpan(span);\n const rootSpanAttributes = spanToJSON(rootSpan).data;\n const existingOperations = rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION] || [];\n const newOperation = operationName ? `${operationType} ${operationName}` : `${operationType}`;\n if (Array.isArray(existingOperations)) {\n existingOperations.push(newOperation);\n rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, existingOperations);\n } else if (typeof existingOperations === \"string\") {\n rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, [existingOperations, newOperation]);\n } else {\n rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, newOperation);\n }\n if (!spanToJSON(rootSpan).data[\"original-description\"]) {\n rootSpan.setAttribute(\"original-description\", spanToJSON(rootSpan).description);\n }\n rootSpan.updateName(\n `${spanToJSON(rootSpan).data[\"original-description\"]} (${getGraphqlOperationNamesFromAttribute(\n existingOperations\n )})`\n );\n }\n _patchParse() {\n const instrumentation = this;\n return function parse(original) {\n return function patchParse(source, options) {\n return instrumentation._parse(this, original, source, options);\n };\n };\n }\n _patchValidate() {\n const instrumentation = this;\n return function validate(original) {\n return function patchValidate(schema, documentAST, rules, options, typeInfo) {\n return instrumentation._validate(this, original, schema, documentAST, rules, typeInfo, options);\n };\n };\n }\n _parse(obj, original, source, options) {\n const span = startInactiveSpan({ name: SpanNames.PARSE });\n return withActiveSpan(span, () => {\n return safeExecuteInTheMiddle(\n () => {\n return original.call(obj, source, options);\n },\n (err, result) => {\n if (result) {\n const operation = getOperation(result);\n if (!operation) {\n span.updateName(SpanNames.SCHEMA_PARSE);\n } else if (result.loc) {\n addSpanSource(span, result.loc);\n }\n }\n endSpan(span, err);\n }\n );\n });\n }\n _validate(obj, original, schema, documentAST, rules, typeInfo, options) {\n const span = startInactiveSpan({ name: SpanNames.VALIDATE });\n return withActiveSpan(span, () => {\n return safeExecuteInTheMiddle(\n () => {\n return original.call(obj, schema, documentAST, rules, options, typeInfo);\n },\n (err, _errors) => {\n if (!documentAST.loc) {\n span.updateName(SpanNames.SCHEMA_VALIDATE);\n }\n endSpan(span, err);\n }\n );\n });\n }\n _createExecuteSpan(operation, processedArgs) {\n const span = startInactiveSpan({\n name: SpanNames.EXECUTE,\n attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN }\n });\n if (operation) {\n const { operation: operationType, name: nameNode } = operation;\n span.setAttribute(AttributeNames.OPERATION_TYPE, operationType);\n const operationName = nameNode?.value;\n if (operationName) {\n span.setAttribute(AttributeNames.OPERATION_NAME, operationName);\n span.updateName(`${operationType} ${operationName}`);\n } else {\n span.updateName(operationType);\n }\n } else {\n let operationName = \" \";\n if (processedArgs.operationName) {\n operationName = ` \"${processedArgs.operationName}\" `;\n }\n operationName = OPERATION_NOT_SUPPORTED.replace(\"$operationName$\", operationName);\n span.setAttribute(AttributeNames.OPERATION_NAME, operationName);\n }\n if (processedArgs.document?.loc) {\n addSpanSource(span, processedArgs.document.loc);\n }\n return span;\n }\n _wrapExecuteArgs(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver, defaultFieldResolved) {\n if (!contextValue) {\n contextValue = {};\n }\n if (contextValue[OTEL_GRAPHQL_DATA_SYMBOL] || this.getConfig().ignoreResolveSpans) {\n return {\n schema,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver\n };\n }\n const isUsingDefaultResolver = fieldResolver == null;\n const fieldResolverForExecute = fieldResolver ?? defaultFieldResolved;\n fieldResolver = wrapFieldResolver(() => this.getConfig(), fieldResolverForExecute, isUsingDefaultResolver);\n if (schema) {\n wrapFields(schema.getQueryType(), () => this.getConfig());\n wrapFields(schema.getMutationType(), () => this.getConfig());\n }\n return {\n schema,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver\n };\n }\n}\nfunction getGraphqlOperationNamesFromAttribute(attr) {\n if (Array.isArray(attr)) {\n const sorted = attr.slice().sort();\n if (sorted.length <= 5) {\n return sorted.join(\", \");\n } else {\n return `${sorted.slice(0, 5).join(\", \")}, +${sorted.length - 5}`;\n }\n }\n return `${attr}`;\n}\n\nexport { GraphQLInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { normalize } from 'path';\n\nclass InstrumentationNodeModuleFile {\n constructor(name, supportedVersions, patch, unpatch) {\n this.name = normalize(name);\n this.supportedVersions = supportedVersions;\n this.patch = patch;\n this.unpatch = unpatch;\n }\n}\n\nexport { InstrumentationNodeModuleFile };\n//# sourceMappingURL=InstrumentationNodeModuleFile.js.map\n", + "var AllowedOperationTypes = /* @__PURE__ */ ((AllowedOperationTypes2) => {\n AllowedOperationTypes2[\"QUERY\"] = \"query\";\n AllowedOperationTypes2[\"MUTATION\"] = \"mutation\";\n AllowedOperationTypes2[\"SUBSCRIPTION\"] = \"subscription\";\n return AllowedOperationTypes2;\n})(AllowedOperationTypes || {});\nvar TokenKind = /* @__PURE__ */ ((TokenKind2) => {\n TokenKind2[\"SOF\"] = \"\";\n TokenKind2[\"EOF\"] = \"\";\n TokenKind2[\"BANG\"] = \"!\";\n TokenKind2[\"DOLLAR\"] = \"$\";\n TokenKind2[\"AMP\"] = \"&\";\n TokenKind2[\"PAREN_L\"] = \"(\";\n TokenKind2[\"PAREN_R\"] = \")\";\n TokenKind2[\"SPREAD\"] = \"...\";\n TokenKind2[\"COLON\"] = \":\";\n TokenKind2[\"EQUALS\"] = \"=\";\n TokenKind2[\"AT\"] = \"@\";\n TokenKind2[\"BRACKET_L\"] = \"[\";\n TokenKind2[\"BRACKET_R\"] = \"]\";\n TokenKind2[\"BRACE_L\"] = \"{\";\n TokenKind2[\"PIPE\"] = \"|\";\n TokenKind2[\"BRACE_R\"] = \"}\";\n TokenKind2[\"NAME\"] = \"Name\";\n TokenKind2[\"INT\"] = \"Int\";\n TokenKind2[\"FLOAT\"] = \"Float\";\n TokenKind2[\"STRING\"] = \"String\";\n TokenKind2[\"BLOCK_STRING\"] = \"BlockString\";\n TokenKind2[\"COMMENT\"] = \"Comment\";\n return TokenKind2;\n})(TokenKind || {});\nvar SpanNames = /* @__PURE__ */ ((SpanNames2) => {\n SpanNames2[\"EXECUTE\"] = \"graphql.execute\";\n SpanNames2[\"PARSE\"] = \"graphql.parse\";\n SpanNames2[\"RESOLVE\"] = \"graphql.resolve\";\n SpanNames2[\"VALIDATE\"] = \"graphql.validate\";\n SpanNames2[\"SCHEMA_VALIDATE\"] = \"graphql.validateSchema\";\n SpanNames2[\"SCHEMA_PARSE\"] = \"graphql.parseSchema\";\n return SpanNames2;\n})(SpanNames || {});\n\nexport { AllowedOperationTypes, SpanNames, TokenKind };\n//# sourceMappingURL=enum.js.map\n", + "var AttributeNames = /* @__PURE__ */ ((AttributeNames2) => {\n AttributeNames2[\"SOURCE\"] = \"graphql.source\";\n AttributeNames2[\"FIELD_NAME\"] = \"graphql.field.name\";\n AttributeNames2[\"FIELD_PATH\"] = \"graphql.field.path\";\n AttributeNames2[\"FIELD_TYPE\"] = \"graphql.field.type\";\n AttributeNames2[\"PARENT_NAME\"] = \"graphql.parent.name\";\n AttributeNames2[\"OPERATION_TYPE\"] = \"graphql.operation.type\";\n AttributeNames2[\"OPERATION_NAME\"] = \"graphql.operation.name\";\n return AttributeNames2;\n})(AttributeNames || {});\n\nexport { AttributeNames };\n//# sourceMappingURL=AttributeNames.js.map\n", + "const OTEL_PATCHED_SYMBOL = /* @__PURE__ */ Symbol.for(\"opentelemetry.patched\");\nconst OTEL_GRAPHQL_DATA_SYMBOL = /* @__PURE__ */ Symbol.for(\"opentelemetry.graphql_data\");\n\nexport { OTEL_GRAPHQL_DATA_SYMBOL, OTEL_PATCHED_SYMBOL };\n//# sourceMappingURL=symbols.js.map\n", + "const OPERATION_NOT_SUPPORTED = \"Operation$operationName$not supported\";\n\nexport { OPERATION_NOT_SUPPORTED };\n//# sourceMappingURL=internal-types.js.map\n", + "import { SPAN_STATUS_ERROR, withActiveSpan, startInactiveSpan } from '@sentry/core';\nimport { AllowedOperationTypes, TokenKind, SpanNames } from './enum.js';\nimport { AttributeNames } from './enums/AttributeNames.js';\nimport { OTEL_PATCHED_SYMBOL, OTEL_GRAPHQL_DATA_SYMBOL } from './symbols.js';\n\nconst OPERATION_VALUES = Object.values(AllowedOperationTypes);\nconst isPromise = (value) => {\n return typeof value?.then === \"function\";\n};\nconst isObjectLike = (value) => {\n return typeof value == \"object\" && value !== null;\n};\nfunction addSpanSource(span, loc, start, end) {\n const source = getSourceFromLocation(loc, start, end);\n span.setAttribute(AttributeNames.SOURCE, source);\n}\nfunction createFieldIfNotExists(contextValue, info, path) {\n let field = getField(contextValue, path);\n if (field) {\n return { field, spanAdded: false };\n }\n const parentSpan = getParentFieldSpan(contextValue, path);\n field = {\n span: createResolverSpan(contextValue, info, path, parentSpan)\n };\n addField(contextValue, path, field);\n return { field, spanAdded: true };\n}\nfunction createResolverSpan(contextValue, info, path, parentSpan) {\n const attributes = {\n [AttributeNames.FIELD_NAME]: info.fieldName,\n [AttributeNames.FIELD_PATH]: path.join(\".\"),\n [AttributeNames.FIELD_TYPE]: info.returnType.toString(),\n [AttributeNames.PARENT_NAME]: info.parentType.name\n };\n const span = startInactiveSpan({\n name: `${SpanNames.RESOLVE} ${attributes[AttributeNames.FIELD_PATH]}`,\n attributes,\n parentSpan\n });\n const document = contextValue[OTEL_GRAPHQL_DATA_SYMBOL].source;\n const fieldNode = info.fieldNodes.find((fieldNode2) => fieldNode2.kind === \"Field\");\n if (fieldNode) {\n addSpanSource(span, document.loc, fieldNode.loc?.start, fieldNode.loc?.end);\n }\n return span;\n}\nfunction endSpan(span, error) {\n if (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: error.message });\n }\n span.end();\n}\nfunction getOperation(document, operationName) {\n if (!document || !Array.isArray(document.definitions)) {\n return void 0;\n }\n if (operationName) {\n return document.definitions.filter((definition) => OPERATION_VALUES.indexOf(definition?.operation) !== -1).find((definition) => operationName === definition?.name?.value);\n } else {\n return document.definitions.find((definition) => OPERATION_VALUES.indexOf(definition?.operation) !== -1);\n }\n}\nfunction addField(contextValue, path, field) {\n return contextValue[OTEL_GRAPHQL_DATA_SYMBOL].fields[path.join(\".\")] = field;\n}\nfunction getField(contextValue, path) {\n return contextValue[OTEL_GRAPHQL_DATA_SYMBOL].fields[path.join(\".\")];\n}\nfunction getParentFieldSpan(contextValue, path) {\n for (let i = path.length - 1; i > 0; i--) {\n const field = getField(contextValue, path.slice(0, i));\n if (field) {\n return field.span;\n }\n }\n return getRootSpan(contextValue);\n}\nfunction getRootSpan(contextValue) {\n return contextValue[OTEL_GRAPHQL_DATA_SYMBOL].span;\n}\nfunction pathToArray(path) {\n const flattened = [];\n let curr = path;\n while (curr) {\n flattened.push(String(curr.key));\n curr = curr.prev;\n }\n return flattened.reverse();\n}\nfunction repeatBreak(i) {\n return repeatChar(\"\\n\", i);\n}\nfunction repeatSpace(i) {\n return repeatChar(\" \", i);\n}\nfunction repeatChar(char, to) {\n let text = \"\";\n for (let i = 0; i < to; i++) {\n text += char;\n }\n return text;\n}\nconst KindsToBeRemoved = [TokenKind.FLOAT, TokenKind.STRING, TokenKind.INT, TokenKind.BLOCK_STRING];\nfunction getSourceFromLocation(loc, inputStart, inputEnd) {\n let source = \"\";\n if (loc?.startToken) {\n const start = typeof inputStart === \"number\" ? inputStart : loc.start;\n const end = typeof inputEnd === \"number\" ? inputEnd : loc.end;\n let next = loc.startToken.next;\n let previousLine = 1;\n while (next) {\n if (next.start < start) {\n next = next.next;\n previousLine = next?.line;\n continue;\n }\n if (next.end > end) {\n next = next.next;\n previousLine = next?.line;\n continue;\n }\n let value = next.value || next.kind;\n let space = \"\";\n if (KindsToBeRemoved.indexOf(next.kind) >= 0) {\n value = \"*\";\n }\n if (next.kind === TokenKind.STRING) {\n value = `\"${value}\"`;\n }\n if (next.kind === TokenKind.EOF) {\n value = \"\";\n }\n if (next.line > previousLine) {\n source += repeatBreak(next.line - previousLine);\n previousLine = next.line;\n space = repeatSpace(next.column - 1);\n } else {\n if (next.line === next.prev?.line) {\n space = repeatSpace(next.start - (next.prev?.end || 0));\n }\n }\n source += space + value;\n if (next) {\n next = next.next;\n }\n }\n }\n return source;\n}\nfunction wrapFields(type, getConfig) {\n if (!type || type[OTEL_PATCHED_SYMBOL]) {\n return;\n }\n const fields = type.getFields();\n type[OTEL_PATCHED_SYMBOL] = true;\n Object.keys(fields).forEach((key) => {\n const field = fields[key];\n if (!field) {\n return;\n }\n if (field.resolve) {\n field.resolve = wrapFieldResolver(getConfig, field.resolve);\n }\n if (field.type) {\n const unwrappedTypes = unwrapType(field.type);\n for (const unwrappedType of unwrappedTypes) {\n wrapFields(unwrappedType, getConfig);\n }\n }\n });\n}\nfunction unwrapType(type) {\n if (\"ofType\" in type) {\n return unwrapType(type.ofType);\n }\n if (isGraphQLUnionType(type)) {\n return type.getTypes();\n }\n if (isGraphQLObjectType(type)) {\n return [type];\n }\n return [];\n}\nfunction isGraphQLUnionType(type) {\n return \"getTypes\" in type && typeof type.getTypes === \"function\";\n}\nfunction isGraphQLObjectType(type) {\n return \"getFields\" in type && typeof type.getFields === \"function\";\n}\nconst handleResolveSpanError = (resolveSpan, err, shouldEndSpan) => {\n if (!shouldEndSpan) {\n return;\n }\n resolveSpan.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err.message\n });\n resolveSpan.end();\n};\nconst handleResolveSpanSuccess = (resolveSpan, shouldEndSpan) => {\n if (!shouldEndSpan) {\n return;\n }\n resolveSpan.end();\n};\nfunction wrapFieldResolver(getConfig, fieldResolver, isDefaultResolver = false) {\n if (wrappedFieldResolver[OTEL_PATCHED_SYMBOL] || typeof fieldResolver !== \"function\") {\n return fieldResolver;\n }\n function wrappedFieldResolver(source, args, contextValue, info) {\n if (!fieldResolver) {\n return void 0;\n }\n const config = getConfig();\n if (config.ignoreTrivialResolveSpans && isDefaultResolver && (isObjectLike(source) || typeof source === \"function\")) {\n const property = source[info.fieldName];\n if (typeof property !== \"function\") {\n return fieldResolver.call(this, source, args, contextValue, info);\n }\n }\n if (!contextValue[OTEL_GRAPHQL_DATA_SYMBOL]) {\n return fieldResolver.call(this, source, args, contextValue, info);\n }\n const path = pathToArray(info?.path);\n const { field, spanAdded } = createFieldIfNotExists(contextValue, info, path);\n const span = field.span;\n const shouldEndSpan = spanAdded;\n return withActiveSpan(span, () => {\n try {\n const res = fieldResolver.call(this, source, args, contextValue, info);\n if (isPromise(res)) {\n return res.then(\n (r) => {\n handleResolveSpanSuccess(span, shouldEndSpan);\n return r;\n },\n (err) => {\n handleResolveSpanError(span, err, shouldEndSpan);\n throw err;\n }\n );\n } else {\n handleResolveSpanSuccess(span, shouldEndSpan);\n return res;\n }\n } catch (err) {\n handleResolveSpanError(span, err, shouldEndSpan);\n throw err;\n }\n });\n }\n wrappedFieldResolver[OTEL_PATCHED_SYMBOL] = true;\n return wrappedFieldResolver;\n}\n\nexport { addSpanSource, endSpan, getOperation, getSourceFromLocation, isPromise, wrapFieldResolver, wrapFields };\n//# sourceMappingURL=utils.js.map\n", + "import { GraphQLInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Graphql\";\nconst instrumentGraphql = generateInstrumentOnce(\n INTEGRATION_NAME,\n GraphQLInstrumentation,\n (_options) => getOptionsWithDefaults(_options)\n);\nconst _graphqlIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentGraphql(getOptionsWithDefaults(options));\n }\n };\n});\nconst graphqlIntegration = defineIntegration(_graphqlIntegration);\nfunction getOptionsWithDefaults(options) {\n return {\n ignoreResolveSpans: true,\n ignoreTrivialResolveSpans: true,\n useOperationNameForRootSpan: true,\n ...options\n };\n}\n\nexport { graphqlIntegration, instrumentGraphql };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, continueTrace, withActiveSpan, startNewTrace, startInactiveSpan, SPAN_STATUS_ERROR, SPAN_STATUS_OK } from '@sentry/core';\nimport { ATTR_MESSAGING_DESTINATION_PARTITION_ID, ATTR_MESSAGING_BATCH_MESSAGE_COUNT, MESSAGING_OPERATION_TYPE_VALUE_PROCESS, MESSAGING_OPERATION_TYPE_VALUE_RECEIVE } from './semconv.js';\nimport { getHeaderAsString, startConsumerSpan, endSpansOnPromise, getLinksFromHeaders, startProducerSpan } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-kafkajs\";\nclass KafkaJsInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n const unpatch = (moduleExports) => {\n if (isWrapped(moduleExports?.Kafka?.prototype.producer)) {\n this._unwrap(moduleExports.Kafka.prototype, \"producer\");\n }\n if (isWrapped(moduleExports?.Kafka?.prototype.consumer)) {\n this._unwrap(moduleExports.Kafka.prototype, \"consumer\");\n }\n };\n const module = new InstrumentationNodeModuleDefinition(\n \"kafkajs\",\n [\">=0.3.0 <3\"],\n (moduleExports) => {\n unpatch(moduleExports);\n this._wrap(moduleExports?.Kafka?.prototype, \"producer\", this._getProducerPatch());\n this._wrap(moduleExports?.Kafka?.prototype, \"consumer\", this._getConsumerPatch());\n return moduleExports;\n },\n unpatch\n );\n return module;\n }\n _getConsumerPatch() {\n const instrumentation = this;\n return (original) => {\n return function consumer(...args) {\n const newConsumer = original.apply(this, args);\n if (isWrapped(newConsumer.run)) {\n instrumentation._unwrap(newConsumer, \"run\");\n }\n instrumentation._wrap(newConsumer, \"run\", instrumentation._getConsumerRunPatch());\n return newConsumer;\n };\n };\n }\n _getProducerPatch() {\n const instrumentation = this;\n return (original) => {\n return function consumer(...args) {\n const newProducer = original.apply(this, args);\n if (isWrapped(newProducer.sendBatch)) {\n instrumentation._unwrap(newProducer, \"sendBatch\");\n }\n instrumentation._wrap(newProducer, \"sendBatch\", instrumentation._getSendBatchPatch());\n if (isWrapped(newProducer.send)) {\n instrumentation._unwrap(newProducer, \"send\");\n }\n instrumentation._wrap(newProducer, \"send\", instrumentation._getSendPatch());\n if (isWrapped(newProducer.transaction)) {\n instrumentation._unwrap(newProducer, \"transaction\");\n }\n instrumentation._wrap(newProducer, \"transaction\", instrumentation._getProducerTransactionPatch());\n return newProducer;\n };\n };\n }\n _getConsumerRunPatch() {\n const instrumentation = this;\n return (original) => {\n return function run(...args) {\n const config = args[0];\n if (config?.eachMessage) {\n if (isWrapped(config.eachMessage)) {\n instrumentation._unwrap(config, \"eachMessage\");\n }\n instrumentation._wrap(config, \"eachMessage\", instrumentation._getConsumerEachMessagePatch());\n }\n if (config?.eachBatch) {\n if (isWrapped(config.eachBatch)) {\n instrumentation._unwrap(config, \"eachBatch\");\n }\n instrumentation._wrap(config, \"eachBatch\", instrumentation._getConsumerEachBatchPatch());\n }\n return original.call(this, config);\n };\n };\n }\n _getConsumerEachMessagePatch() {\n return (original) => {\n return function eachMessage(...args) {\n const payload = args[0];\n const sentryTrace = getHeaderAsString(payload.message.headers, \"sentry-trace\");\n const baggage = getHeaderAsString(payload.message.headers, \"baggage\");\n return continueTrace({ sentryTrace, baggage }, () => {\n const span = startConsumerSpan({\n topic: payload.topic,\n message: payload.message,\n operationType: MESSAGING_OPERATION_TYPE_VALUE_PROCESS,\n attributes: {\n [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.partition)\n }\n });\n const eachMessagePromise = withActiveSpan(span, () => {\n return original.apply(this, args);\n });\n return endSpansOnPromise([span], eachMessagePromise);\n });\n };\n };\n }\n _getConsumerEachBatchPatch() {\n return (original) => {\n return function eachBatch(...args) {\n const payload = args[0];\n const receivingSpan = startNewTrace(\n () => startConsumerSpan({\n topic: payload.batch.topic,\n message: void 0,\n operationType: MESSAGING_OPERATION_TYPE_VALUE_RECEIVE,\n attributes: {\n [ATTR_MESSAGING_BATCH_MESSAGE_COUNT]: payload.batch.messages.length,\n [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.batch.partition)\n }\n })\n );\n return withActiveSpan(receivingSpan, () => {\n const spans = [receivingSpan];\n payload.batch.messages.forEach((message) => {\n spans.push(\n startConsumerSpan({\n topic: payload.batch.topic,\n message,\n operationType: MESSAGING_OPERATION_TYPE_VALUE_PROCESS,\n links: getLinksFromHeaders(message.headers),\n attributes: {\n [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.batch.partition)\n }\n })\n );\n });\n const batchMessagePromise = original.apply(this, args);\n return endSpansOnPromise(spans, batchMessagePromise);\n });\n };\n };\n }\n _getProducerTransactionPatch() {\n const instrumentation = this;\n return (original) => {\n return function transaction(...args) {\n const transactionSpan = startInactiveSpan({ name: \"transaction\" });\n const transactionPromise = original.apply(this, args);\n transactionPromise.then((transaction2) => {\n const originalSend = transaction2.send;\n transaction2.send = function send(...args2) {\n return withActiveSpan(transactionSpan, () => {\n const patched = instrumentation._getSendPatch()(originalSend);\n return patched.apply(this, args2).catch((err) => {\n transactionSpan.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err?.message\n });\n throw err;\n });\n });\n };\n const originalSendBatch = transaction2.sendBatch;\n transaction2.sendBatch = function sendBatch(...args2) {\n return withActiveSpan(transactionSpan, () => {\n const patched = instrumentation._getSendBatchPatch()(originalSendBatch);\n return patched.apply(this, args2).catch((err) => {\n transactionSpan.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err?.message\n });\n throw err;\n });\n });\n };\n const originalCommit = transaction2.commit;\n transaction2.commit = function commit(...args2) {\n const originCommitPromise = originalCommit.apply(this, args2).then(() => {\n transactionSpan.setStatus({ code: SPAN_STATUS_OK });\n });\n return endSpansOnPromise([transactionSpan], originCommitPromise);\n };\n const originalAbort = transaction2.abort;\n transaction2.abort = function abort(...args2) {\n const originAbortPromise = originalAbort.apply(this, args2);\n return endSpansOnPromise([transactionSpan], originAbortPromise);\n };\n }).catch((err) => {\n transactionSpan.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err?.message\n });\n transactionSpan.end();\n });\n return transactionPromise;\n };\n };\n }\n _getSendBatchPatch() {\n return (original) => {\n return function sendBatch(...args) {\n const batch = args[0];\n const messages = batch.topicMessages || [];\n const spans = [];\n messages.forEach((topicMessage) => {\n topicMessage.messages.forEach((message) => {\n spans.push(startProducerSpan(topicMessage.topic, message));\n });\n });\n const origSendResult = original.apply(this, args);\n return endSpansOnPromise(spans, origSendResult);\n };\n };\n }\n _getSendPatch() {\n return (original) => {\n return function send(...args) {\n const record = args[0];\n const spans = record.messages.map((message) => {\n return startProducerSpan(record.topic, message);\n });\n const origSendResult = original.apply(this, args);\n return endSpansOnPromise(spans, origSendResult);\n };\n };\n }\n}\n\nexport { KafkaJsInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "const ATTR_MESSAGING_BATCH_MESSAGE_COUNT = \"messaging.batch.message_count\";\nconst ATTR_MESSAGING_DESTINATION_NAME = \"messaging.destination.name\";\nconst ATTR_MESSAGING_DESTINATION_PARTITION_ID = \"messaging.destination.partition.id\";\nconst ATTR_MESSAGING_KAFKA_MESSAGE_KEY = \"messaging.kafka.message.key\";\nconst ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE = \"messaging.kafka.message.tombstone\";\nconst ATTR_MESSAGING_KAFKA_OFFSET = \"messaging.kafka.offset\";\nconst ATTR_MESSAGING_OPERATION_NAME = \"messaging.operation.name\";\nconst ATTR_MESSAGING_OPERATION_TYPE = \"messaging.operation.type\";\nconst ATTR_MESSAGING_SYSTEM = \"messaging.system\";\nconst MESSAGING_OPERATION_TYPE_VALUE_PROCESS = \"process\";\nconst MESSAGING_OPERATION_TYPE_VALUE_RECEIVE = \"receive\";\nconst MESSAGING_OPERATION_TYPE_VALUE_SEND = \"send\";\nconst MESSAGING_SYSTEM_VALUE_KAFKA = \"kafka\";\nconst ATTR_ERROR_TYPE = \"error.type\";\nconst ERROR_TYPE_VALUE_OTHER = \"_OTHER\";\n\nexport { ATTR_ERROR_TYPE, ATTR_MESSAGING_BATCH_MESSAGE_COUNT, ATTR_MESSAGING_DESTINATION_NAME, ATTR_MESSAGING_DESTINATION_PARTITION_ID, ATTR_MESSAGING_KAFKA_MESSAGE_KEY, ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE, ATTR_MESSAGING_KAFKA_OFFSET, ATTR_MESSAGING_OPERATION_NAME, ATTR_MESSAGING_OPERATION_TYPE, ATTR_MESSAGING_SYSTEM, ERROR_TYPE_VALUE_OTHER, MESSAGING_OPERATION_TYPE_VALUE_PROCESS, MESSAGING_OPERATION_TYPE_VALUE_RECEIVE, MESSAGING_OPERATION_TYPE_VALUE_SEND, MESSAGING_SYSTEM_VALUE_KAFKA };\n//# sourceMappingURL=semconv.js.map\n", + "import { TraceFlags } from '@opentelemetry/api';\nimport { startInactiveSpan, SPAN_KIND, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR, propagationContextFromHeaders, getTraceData } from '@sentry/core';\nimport { MESSAGING_SYSTEM_VALUE_KAFKA, ATTR_MESSAGING_KAFKA_OFFSET, ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE, ATTR_MESSAGING_KAFKA_MESSAGE_KEY, ATTR_MESSAGING_OPERATION_NAME, ATTR_MESSAGING_OPERATION_TYPE, ATTR_MESSAGING_DESTINATION_NAME, ATTR_MESSAGING_SYSTEM, MESSAGING_OPERATION_TYPE_VALUE_RECEIVE, ATTR_ERROR_TYPE, ERROR_TYPE_VALUE_OTHER, MESSAGING_OPERATION_TYPE_VALUE_SEND, ATTR_MESSAGING_DESTINATION_PARTITION_ID } from './semconv.js';\n\nconst PRODUCER_ORIGIN = \"auto.kafkajs.otel.producer\";\nconst CONSUMER_ORIGIN = \"auto.kafkajs.otel.consumer\";\nfunction getHeaderAsString(headers, key) {\n const value = headers?.[key];\n if (value == null) {\n return void 0;\n }\n return Array.isArray(value) ? value[0]?.toString() : value.toString();\n}\nfunction getLinksFromHeaders(headers) {\n const sentryTrace = getHeaderAsString(headers, \"sentry-trace\");\n if (!sentryTrace) {\n return void 0;\n }\n const { traceId, parentSpanId, sampled } = propagationContextFromHeaders(\n sentryTrace,\n getHeaderAsString(headers, \"baggage\")\n );\n if (!parentSpanId) {\n return void 0;\n }\n return [\n {\n context: {\n traceId,\n spanId: parentSpanId,\n isRemote: true,\n traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE\n }\n }\n ];\n}\nfunction startConsumerSpan({ topic, message, operationType, links, attributes }) {\n const operationName = operationType === MESSAGING_OPERATION_TYPE_VALUE_RECEIVE ? \"poll\" : operationType;\n return startInactiveSpan({\n name: `${operationName} ${topic}`,\n kind: operationType === MESSAGING_OPERATION_TYPE_VALUE_RECEIVE ? SPAN_KIND.CLIENT : SPAN_KIND.CONSUMER,\n links,\n attributes: {\n ...attributes,\n [ATTR_MESSAGING_SYSTEM]: MESSAGING_SYSTEM_VALUE_KAFKA,\n [ATTR_MESSAGING_DESTINATION_NAME]: topic,\n [ATTR_MESSAGING_OPERATION_TYPE]: operationType,\n [ATTR_MESSAGING_OPERATION_NAME]: operationName,\n [ATTR_MESSAGING_KAFKA_MESSAGE_KEY]: message?.key ? String(message.key) : void 0,\n [ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]: message?.key && message.value === null ? true : void 0,\n [ATTR_MESSAGING_KAFKA_OFFSET]: message?.offset,\n // Mirror the upstream behavior of only tagging per-message processing spans (not the batch\n // receiving span, which carries no message) with the auto origin.\n ...message ? { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: CONSUMER_ORIGIN } : {}\n }\n });\n}\nfunction startProducerSpan(topic, message) {\n const span = startInactiveSpan({\n name: `send ${topic}`,\n kind: SPAN_KIND.PRODUCER,\n attributes: {\n [ATTR_MESSAGING_SYSTEM]: MESSAGING_SYSTEM_VALUE_KAFKA,\n [ATTR_MESSAGING_DESTINATION_NAME]: topic,\n [ATTR_MESSAGING_KAFKA_MESSAGE_KEY]: message.key ? String(message.key) : void 0,\n [ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]: message.key && message.value === null ? true : void 0,\n [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: message.partition !== void 0 ? String(message.partition) : void 0,\n [ATTR_MESSAGING_OPERATION_NAME]: \"send\",\n [ATTR_MESSAGING_OPERATION_TYPE]: MESSAGING_OPERATION_TYPE_VALUE_SEND,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: PRODUCER_ORIGIN\n }\n });\n message.headers = message.headers ?? {};\n const traceData = getTraceData({ span });\n if (traceData[\"sentry-trace\"]) {\n message.headers[\"sentry-trace\"] = traceData[\"sentry-trace\"];\n }\n if (traceData.baggage) {\n message.headers[\"baggage\"] = traceData.baggage;\n }\n return span;\n}\nfunction endSpansOnPromise(spans, sendPromise) {\n return Promise.resolve(sendPromise).catch((reason) => {\n let errorMessage;\n let errorType = ERROR_TYPE_VALUE_OTHER;\n if (typeof reason === \"string\" || reason === void 0) {\n errorMessage = reason;\n } else if (typeof reason === \"object\" && Object.prototype.hasOwnProperty.call(reason, \"message\")) {\n errorMessage = reason.message;\n errorType = reason.constructor.name;\n }\n spans.forEach((span) => {\n span.setAttribute(ATTR_ERROR_TYPE, errorType);\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: errorMessage\n });\n });\n throw reason;\n }).finally(() => {\n spans.forEach((span) => span.end());\n });\n}\n\nexport { endSpansOnPromise, getHeaderAsString, getLinksFromHeaders, startConsumerSpan, startProducerSpan };\n//# sourceMappingURL=utils.js.map\n", + "import { KafkaJsInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Kafka\";\nconst instrumentKafka = generateInstrumentOnce(INTEGRATION_NAME, () => new KafkaJsInstrumentation());\nconst _kafkaIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentKafka();\n }\n };\n});\nconst kafkaIntegration = defineIntegration(_kafkaIntegration);\n\nexport { instrumentKafka, kafkaIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, getCurrentScope, withScope } from '@sentry/core';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-lru-memoizer\";\nclass LruMemoizerInstrumentation extends InstrumentationBase {\n constructor() {\n super(PACKAGE_NAME, SDK_VERSION, {});\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n \"lru-memoizer\",\n [\">=1.3 <4\"],\n (moduleExports) => {\n const asyncMemoizer = function(...args) {\n const origMemoizer = moduleExports.apply(this, args);\n return function(...memoizerArgs) {\n const origCallback = memoizerArgs.pop();\n const scope = getCurrentScope();\n const callbackWithContext = typeof origCallback === \"function\" ? function(...callbackArgs) {\n return withScope(scope, () => origCallback.apply(this, callbackArgs));\n } : origCallback;\n return origMemoizer.apply(this, [...memoizerArgs, callbackWithContext]);\n };\n };\n return Object.assign(asyncMemoizer, { sync: moduleExports.sync });\n },\n void 0\n // no need to disable as this instrumentation does not create any spans\n )\n ];\n }\n}\n\nexport { LruMemoizerInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { LruMemoizerInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"LruMemoizer\";\nconst instrumentLruMemoizer = generateInstrumentOnce(INTEGRATION_NAME, () => new LruMemoizerInstrumentation());\nconst _lruMemoizerIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentLruMemoizer();\n }\n };\n});\nconst lruMemoizerIntegration = defineIntegration(_lruMemoizerIntegration);\n\nexport { instrumentLruMemoizer, lruMemoizerIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION } from '@sentry/core';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile.js';\nimport { getV3PatchOperation, getV3PatchCommand, getV3PatchFind, getV3PatchCursor, getV4ConnectionPoolCheckOut, getV4PatchCommandPromise, getV4PatchCommandCallback } from './patches.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-mongodb\";\nclass MongoDBInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n const { v3PatchConnection, v3UnpatchConnection } = this._getV3ConnectionPatches();\n const { v4PatchConnectionCallback, v4PatchConnectionPromise, v4UnpatchConnection } = this._getV4ConnectionPatches();\n const { v4PatchConnectionPool, v4UnpatchConnectionPool } = this._getV4ConnectionPoolPatches();\n return [\n new InstrumentationNodeModuleDefinition(\"mongodb\", [\">=3.3.0 <4\"], void 0, void 0, [\n new InstrumentationNodeModuleFile(\n \"mongodb/lib/core/wireprotocol/index.js\",\n [\">=3.3.0 <4\"],\n v3PatchConnection,\n v3UnpatchConnection\n )\n ]),\n new InstrumentationNodeModuleDefinition(\"mongodb\", [\">=4.0.0 <8\"], void 0, void 0, [\n new InstrumentationNodeModuleFile(\n \"mongodb/lib/cmap/connection.js\",\n [\">=4.0.0 <6.4\"],\n v4PatchConnectionCallback,\n v4UnpatchConnection\n ),\n new InstrumentationNodeModuleFile(\n \"mongodb/lib/cmap/connection.js\",\n [\">=6.4.0 <8\"],\n v4PatchConnectionPromise,\n v4UnpatchConnection\n ),\n new InstrumentationNodeModuleFile(\n \"mongodb/lib/cmap/connection_pool.js\",\n [\">=4.0.0 <6.4\"],\n v4PatchConnectionPool,\n v4UnpatchConnectionPool\n )\n ])\n ];\n }\n _getV3ConnectionPatches() {\n return {\n v3PatchConnection: (moduleExports) => {\n if (isWrapped(moduleExports.insert)) {\n this._unwrap(moduleExports, \"insert\");\n }\n this._wrap(moduleExports, \"insert\", getV3PatchOperation(\"insert\"));\n if (isWrapped(moduleExports.remove)) {\n this._unwrap(moduleExports, \"remove\");\n }\n this._wrap(moduleExports, \"remove\", getV3PatchOperation(\"remove\"));\n if (isWrapped(moduleExports.update)) {\n this._unwrap(moduleExports, \"update\");\n }\n this._wrap(moduleExports, \"update\", getV3PatchOperation(\"update\"));\n if (isWrapped(moduleExports.command)) {\n this._unwrap(moduleExports, \"command\");\n }\n this._wrap(moduleExports, \"command\", getV3PatchCommand());\n if (isWrapped(moduleExports.query)) {\n this._unwrap(moduleExports, \"query\");\n }\n this._wrap(moduleExports, \"query\", getV3PatchFind());\n if (isWrapped(moduleExports.getMore)) {\n this._unwrap(moduleExports, \"getMore\");\n }\n this._wrap(moduleExports, \"getMore\", getV3PatchCursor());\n return moduleExports;\n },\n v3UnpatchConnection: (moduleExports) => {\n if (moduleExports === void 0) return;\n this._unwrap(moduleExports, \"insert\");\n this._unwrap(moduleExports, \"remove\");\n this._unwrap(moduleExports, \"update\");\n this._unwrap(moduleExports, \"command\");\n this._unwrap(moduleExports, \"query\");\n this._unwrap(moduleExports, \"getMore\");\n }\n };\n }\n _getV4ConnectionPoolPatches() {\n return {\n v4PatchConnectionPool: (moduleExports) => {\n const poolPrototype = moduleExports.ConnectionPool.prototype;\n if (isWrapped(poolPrototype.checkOut)) {\n this._unwrap(poolPrototype, \"checkOut\");\n }\n this._wrap(poolPrototype, \"checkOut\", getV4ConnectionPoolCheckOut());\n return moduleExports;\n },\n v4UnpatchConnectionPool: (moduleExports) => {\n if (moduleExports === void 0) return;\n this._unwrap(moduleExports.ConnectionPool.prototype, \"checkOut\");\n }\n };\n }\n _getV4ConnectionPatches() {\n return {\n v4PatchConnectionCallback: (moduleExports) => {\n if (isWrapped(moduleExports.Connection.prototype.command)) {\n this._unwrap(moduleExports.Connection.prototype, \"command\");\n }\n this._wrap(moduleExports.Connection.prototype, \"command\", getV4PatchCommandCallback());\n return moduleExports;\n },\n v4PatchConnectionPromise: (moduleExports) => {\n if (isWrapped(moduleExports.Connection.prototype.command)) {\n this._unwrap(moduleExports.Connection.prototype, \"command\");\n }\n this._wrap(moduleExports.Connection.prototype, \"command\", getV4PatchCommandPromise());\n return moduleExports;\n },\n v4UnpatchConnection: (moduleExports) => {\n if (moduleExports === void 0) return;\n this._unwrap(moduleExports.Connection.prototype, \"command\");\n }\n };\n }\n}\n\nexport { MongoDBInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "var MongodbCommandType = /* @__PURE__ */ ((MongodbCommandType2) => {\n MongodbCommandType2[\"CREATE_INDEXES\"] = \"createIndexes\";\n MongodbCommandType2[\"FIND_AND_MODIFY\"] = \"findAndModify\";\n MongodbCommandType2[\"IS_MASTER\"] = \"isMaster\";\n MongodbCommandType2[\"COUNT\"] = \"count\";\n MongodbCommandType2[\"AGGREGATE\"] = \"aggregate\";\n MongodbCommandType2[\"UNKNOWN\"] = \"unknown\";\n return MongodbCommandType2;\n})(MongodbCommandType || {});\n\nexport { MongodbCommandType };\n//# sourceMappingURL=internal-types.js.map\n", + "const ATTR_DB_CONNECTION_STRING = \"db.connection_string\";\nconst ATTR_DB_MONGODB_COLLECTION = \"db.mongodb.collection\";\nconst ATTR_DB_NAME = \"db.name\";\nconst ATTR_DB_OPERATION = \"db.operation\";\nconst ATTR_DB_STATEMENT = \"db.statement\";\nconst ATTR_DB_SYSTEM = \"db.system\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\nconst DB_SYSTEM_VALUE_MONGODB = \"mongodb\";\n\nexport { ATTR_DB_CONNECTION_STRING, ATTR_DB_MONGODB_COLLECTION, ATTR_DB_NAME, ATTR_DB_OPERATION, ATTR_DB_STATEMENT, ATTR_DB_SYSTEM, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, DB_SYSTEM_VALUE_MONGODB };\n//# sourceMappingURL=semconv.js.map\n", + "import { getActiveSpan, startInactiveSpan, SPAN_KIND, SPAN_STATUS_ERROR, withActiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { ATTR_DB_OPERATION, DB_SYSTEM_VALUE_MONGODB, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, ATTR_DB_STATEMENT, ATTR_DB_CONNECTION_STRING, ATTR_DB_MONGODB_COLLECTION, ATTR_DB_NAME, ATTR_DB_SYSTEM } from './semconv.js';\nimport { MongodbCommandType } from './internal-types.js';\n\nconst ORIGIN = \"auto.db.otel.mongo\";\nfunction serializeDbStatement(commandObj) {\n return JSON.stringify(scrubStatement(commandObj));\n}\nfunction scrubStatement(value) {\n if (Array.isArray(value)) {\n return value.map((element) => scrubStatement(element));\n }\n if (isCommandObj(value)) {\n const initial = {};\n return Object.entries(value).map(([key, element]) => [key, scrubStatement(element)]).reduce((prev, current) => {\n if (isCommandEntry(current)) {\n prev[current[0]] = current[1];\n }\n return prev;\n }, initial);\n }\n return \"?\";\n}\nfunction isCommandObj(value) {\n return typeof value === \"object\" && value !== null && !isBuffer(value);\n}\nfunction isBuffer(value) {\n return typeof Buffer !== \"undefined\" && Buffer.isBuffer(value);\n}\nfunction isCommandEntry(value) {\n return Array.isArray(value);\n}\nfunction getCommandType(command) {\n if (command.createIndexes !== void 0) {\n return MongodbCommandType.CREATE_INDEXES;\n } else if (command.findandmodify !== void 0) {\n return MongodbCommandType.FIND_AND_MODIFY;\n } else if (command.ismaster !== void 0) {\n return MongodbCommandType.IS_MASTER;\n } else if (command.count !== void 0) {\n return MongodbCommandType.COUNT;\n } else if (command.aggregate !== void 0) {\n return MongodbCommandType.AGGREGATE;\n } else {\n return MongodbCommandType.UNKNOWN;\n }\n}\nfunction getV4SpanAttributes(connectionCtx, ns, command, operation) {\n let host, port;\n if (connectionCtx) {\n const hostParts = typeof connectionCtx.address === \"string\" ? connectionCtx.address.split(\":\") : \"\";\n if (hostParts.length === 2) {\n host = hostParts[0];\n port = hostParts[1];\n }\n }\n let commandObj;\n if (command?.documents && command.documents[0]) {\n commandObj = command.documents[0];\n } else if (command?.cursors) {\n commandObj = command.cursors;\n } else {\n commandObj = command;\n }\n return getSpanAttributes(ns.db, ns.collection, host, port, commandObj, operation);\n}\nfunction getV3SpanAttributes(ns, topology, command, operation) {\n let host;\n let port;\n if (topology?.s) {\n host = topology.s.options?.host ?? topology.s.host;\n port = (topology.s.options?.port ?? topology.s.port)?.toString();\n if (host == null || port == null) {\n const address = topology.description?.address;\n if (address) {\n const addressSegments = address.split(\":\");\n host = addressSegments[0];\n port = addressSegments[1];\n }\n }\n }\n const [dbName, dbCollection] = ns.toString().split(\".\");\n const commandObj = command?.query ?? command?.q ?? command;\n return getSpanAttributes(dbName, dbCollection, host, port, commandObj, operation);\n}\nfunction getSpanAttributes(dbName, dbCollection, host, port, commandObj, operation) {\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_MONGODB,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_NAME]: dbName,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_MONGODB_COLLECTION]: dbCollection,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_OPERATION]: operation,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_CONNECTION_STRING]: `mongodb://${host}:${port}/${dbName}`\n };\n if (host && port) {\n attributes[ATTR_NET_PEER_NAME] = host;\n const portNumber = parseInt(port, 10);\n if (!isNaN(portNumber)) {\n attributes[ATTR_NET_PEER_PORT] = portNumber;\n }\n }\n if (commandObj) {\n try {\n attributes[ATTR_DB_STATEMENT] = serializeDbStatement(commandObj);\n } catch {\n }\n }\n return attributes;\n}\nfunction startMongoSpan(attributes) {\n return startInactiveSpan({\n // eslint-disable-next-line typescript/no-deprecated\n name: `mongodb.${attributes[ATTR_DB_OPERATION] || \"command\"}`,\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n}\nfunction patchEnd(span, resultHandler) {\n const parentSpan = getActiveSpan();\n let spanEnded = false;\n return function patchedEnd(...args) {\n if (!spanEnded) {\n spanEnded = true;\n const error = args[0];\n if (span) {\n if (error instanceof Error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: error.message });\n }\n span.end();\n }\n }\n return withActiveSpan(parentSpan ?? null, () => resultHandler.apply(this, args));\n };\n}\nfunction shouldSkipInstrumentation() {\n return !getActiveSpan();\n}\n\nexport { getCommandType, getV3SpanAttributes, getV4SpanAttributes, patchEnd, shouldSkipInstrumentation, startMongoSpan };\n//# sourceMappingURL=utils.js.map\n", + "import { getActiveSpan, withActiveSpan } from '@sentry/core';\nimport { MongodbCommandType } from './internal-types.js';\nimport { shouldSkipInstrumentation, startMongoSpan, getV3SpanAttributes, patchEnd, getCommandType, getV4SpanAttributes } from './utils.js';\n\nfunction getV3PatchOperation(operationName) {\n return (original) => {\n return function patchedServerCommand(server, ns, ops, options, callback) {\n const resultHandler = typeof options === \"function\" ? options : callback;\n if (shouldSkipInstrumentation() || typeof resultHandler !== \"function\" || typeof ops !== \"object\") {\n if (typeof options === \"function\") {\n return original.call(this, server, ns, ops, options);\n } else {\n return original.call(this, server, ns, ops, options, callback);\n }\n }\n const span = startMongoSpan(getV3SpanAttributes(ns, server, ops[0], operationName));\n const patchedCallback = patchEnd(span, resultHandler);\n if (typeof options === \"function\") {\n return original.call(this, server, ns, ops, patchedCallback);\n } else {\n return original.call(this, server, ns, ops, options, patchedCallback);\n }\n };\n };\n}\nfunction getV3PatchCommand() {\n return (original) => {\n return function patchedServerCommand(server, ns, cmd, options, callback) {\n const resultHandler = typeof options === \"function\" ? options : callback;\n if (shouldSkipInstrumentation() || typeof resultHandler !== \"function\" || typeof cmd !== \"object\") {\n if (typeof options === \"function\") {\n return original.call(this, server, ns, cmd, options);\n } else {\n return original.call(this, server, ns, cmd, options, callback);\n }\n }\n const commandType = getCommandType(cmd);\n const operationName = commandType === MongodbCommandType.UNKNOWN ? void 0 : commandType;\n const span = startMongoSpan(getV3SpanAttributes(ns, server, cmd, operationName));\n const patchedCallback = patchEnd(span, resultHandler);\n if (typeof options === \"function\") {\n return original.call(this, server, ns, cmd, patchedCallback);\n } else {\n return original.call(this, server, ns, cmd, options, patchedCallback);\n }\n };\n };\n}\nfunction getV4PatchCommandCallback() {\n return (original) => {\n return function patchedV4ServerCommand(ns, cmd, options, callback) {\n const resultHandler = callback;\n const commandType = Object.keys(cmd)[0];\n if (typeof cmd !== \"object\" || cmd.ismaster || cmd.hello) {\n return original.call(this, ns, cmd, options, callback);\n }\n let span = void 0;\n if (!shouldSkipInstrumentation()) {\n span = startMongoSpan(getV4SpanAttributes(this, ns, cmd, commandType));\n }\n const patchedCallback = patchEnd(span, resultHandler);\n return original.call(this, ns, cmd, options, patchedCallback);\n };\n };\n}\nfunction getV4PatchCommandPromise() {\n return (original) => {\n return function patchedV4ServerCommand(...args) {\n const [ns, cmd] = args;\n const commandType = Object.keys(cmd)[0];\n const resultHandler = () => void 0;\n if (typeof cmd !== \"object\" || cmd.ismaster || cmd.hello) {\n return original.apply(this, args);\n }\n let span = void 0;\n if (!shouldSkipInstrumentation()) {\n span = startMongoSpan(getV4SpanAttributes(this, ns, cmd, commandType));\n }\n const patchedCallback = patchEnd(span, resultHandler);\n const result = original.apply(this, args);\n result.then(\n (res) => patchedCallback(null, res),\n (err) => patchedCallback(err)\n );\n return result;\n };\n };\n}\nfunction getV3PatchFind() {\n return (original) => {\n return function patchedServerCommand(server, ns, cmd, cursorState, options, callback) {\n const resultHandler = typeof options === \"function\" ? options : callback;\n if (shouldSkipInstrumentation() || typeof resultHandler !== \"function\" || typeof cmd !== \"object\") {\n if (typeof options === \"function\") {\n return original.call(this, server, ns, cmd, cursorState, options);\n } else {\n return original.call(this, server, ns, cmd, cursorState, options, callback);\n }\n }\n const span = startMongoSpan(getV3SpanAttributes(ns, server, cmd, \"find\"));\n const patchedCallback = patchEnd(span, resultHandler);\n if (typeof options === \"function\") {\n return original.call(this, server, ns, cmd, cursorState, patchedCallback);\n } else {\n return original.call(this, server, ns, cmd, cursorState, options, patchedCallback);\n }\n };\n };\n}\nfunction getV3PatchCursor() {\n return (original) => {\n return function patchedServerCommand(server, ns, cursorState, batchSize, options, callback) {\n const resultHandler = typeof options === \"function\" ? options : callback;\n if (shouldSkipInstrumentation() || typeof resultHandler !== \"function\") {\n if (typeof options === \"function\") {\n return original.call(this, server, ns, cursorState, batchSize, options);\n } else {\n return original.call(this, server, ns, cursorState, batchSize, options, callback);\n }\n }\n const span = startMongoSpan(getV3SpanAttributes(ns, server, cursorState.cmd, \"getMore\"));\n const patchedCallback = patchEnd(span, resultHandler);\n if (typeof options === \"function\") {\n return original.call(this, server, ns, cursorState, batchSize, patchedCallback);\n } else {\n return original.call(this, server, ns, cursorState, batchSize, options, patchedCallback);\n }\n };\n };\n}\nfunction getV4ConnectionPoolCheckOut() {\n return (original) => {\n return function patchedCheckout(callback) {\n const parentSpan = getActiveSpan();\n return original.call(this, function(...args) {\n return withActiveSpan(parentSpan ?? null, () => callback.apply(this, args));\n });\n };\n };\n}\n\nexport { getV3PatchCommand, getV3PatchCursor, getV3PatchFind, getV3PatchOperation, getV4ConnectionPoolCheckOut, getV4PatchCommandCallback, getV4PatchCommandPromise };\n//# sourceMappingURL=patches.js.map\n", + "import { MongoDBInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Mongo\";\nconst instrumentMongo = generateInstrumentOnce(INTEGRATION_NAME, () => new MongoDBInstrumentation());\nconst _mongoIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMongo();\n }\n };\n});\nconst mongoIntegration = defineIntegration(_mongoIntegration);\n\nexport { instrumentMongo, mongoIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, getActiveSpan, startInactiveSpan, SPAN_KIND, withActiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { ATTR_DB_SYSTEM, ATTR_DB_OPERATION } from './semconv.js';\nimport { getAttributesFromCollection, handleCallbackResponse, handlePromiseResponse } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-mongoose\";\nconst ORIGIN = \"auto.db.otel.mongoose\";\nconst contextCaptureFunctionsCommon = [\n \"deleteOne\",\n \"deleteMany\",\n \"find\",\n \"findOne\",\n \"estimatedDocumentCount\",\n \"countDocuments\",\n \"distinct\",\n \"where\",\n \"$where\",\n \"findOneAndUpdate\",\n \"findOneAndDelete\",\n \"findOneAndReplace\"\n];\nconst contextCaptureFunctions6 = [\"remove\", \"count\", \"findOneAndRemove\", ...contextCaptureFunctionsCommon];\nconst contextCaptureFunctions7 = [\"count\", \"findOneAndRemove\", ...contextCaptureFunctionsCommon];\nconst contextCaptureFunctions8 = [...contextCaptureFunctionsCommon];\nfunction getContextCaptureFunctions(moduleVersion) {\n if (!moduleVersion) {\n return contextCaptureFunctionsCommon;\n } else if (moduleVersion.startsWith(\"6.\") || moduleVersion.startsWith(\"5.\")) {\n return contextCaptureFunctions6;\n } else if (moduleVersion.startsWith(\"7.\")) {\n return contextCaptureFunctions7;\n } else {\n return contextCaptureFunctions8;\n }\n}\nfunction instrumentRemove(moduleVersion) {\n return moduleVersion && (moduleVersion.startsWith(\"5.\") || moduleVersion.startsWith(\"6.\")) || false;\n}\nfunction needsDocumentMethodPatch(moduleVersion) {\n if (!moduleVersion || !moduleVersion.startsWith(\"8.\")) {\n return false;\n }\n const minor = parseInt(moduleVersion.split(\".\")[1], 10);\n return minor >= 21;\n}\nconst _STORED_PARENT_SPAN = /* @__PURE__ */ Symbol(\"stored-parent-span\");\nconst _ALREADY_INSTRUMENTED = /* @__PURE__ */ Symbol(\"already-instrumented\");\nclass MongooseInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n \"mongoose\",\n [\">=5.9.7 <10\"],\n this.patch.bind(this),\n this.unpatch.bind(this)\n );\n return module;\n }\n patch(module, moduleVersion) {\n const moduleExports = module[Symbol.toStringTag] === \"Module\" && module.default ? module.default : module;\n this._wrap(moduleExports.Model.prototype, \"save\", this.patchOnModelMethods(\"save\"));\n moduleExports.Model.prototype.$save = moduleExports.Model.prototype.save;\n if (instrumentRemove(moduleVersion)) {\n this._wrap(moduleExports.Model.prototype, \"remove\", this.patchOnModelMethods(\"remove\"));\n }\n if (needsDocumentMethodPatch(moduleVersion)) {\n this._wrap(moduleExports.Model.prototype, \"updateOne\", this._patchDocumentUpdateMethods(\"updateOne\"));\n this._wrap(moduleExports.Model.prototype, \"deleteOne\", this._patchDocumentUpdateMethods(\"deleteOne\"));\n }\n this._wrap(moduleExports.Query.prototype, \"exec\", this.patchQueryExec());\n this._wrap(moduleExports.Aggregate.prototype, \"exec\", this.patchAggregateExec());\n const contextCaptureFunctions = getContextCaptureFunctions(moduleVersion);\n contextCaptureFunctions.forEach((funcName) => {\n this._wrap(moduleExports.Query.prototype, funcName, this.patchAndCaptureSpanContext(funcName));\n });\n this._wrap(moduleExports.Model, \"aggregate\", this.patchModelAggregate());\n this._wrap(moduleExports.Model, \"insertMany\", this.patchModelStatic(\"insertMany\"));\n this._wrap(moduleExports.Model, \"bulkWrite\", this.patchModelStatic(\"bulkWrite\"));\n return moduleExports;\n }\n unpatch(module, moduleVersion) {\n const moduleExports = module[Symbol.toStringTag] === \"Module\" && module.default ? module.default : module;\n const contextCaptureFunctions = getContextCaptureFunctions(moduleVersion);\n this._unwrap(moduleExports.Model.prototype, \"save\");\n moduleExports.Model.prototype.$save = moduleExports.Model.prototype.save;\n if (instrumentRemove(moduleVersion)) {\n this._unwrap(moduleExports.Model.prototype, \"remove\");\n }\n if (needsDocumentMethodPatch(moduleVersion)) {\n this._unwrap(moduleExports.Model.prototype, \"updateOne\");\n this._unwrap(moduleExports.Model.prototype, \"deleteOne\");\n }\n this._unwrap(moduleExports.Query.prototype, \"exec\");\n this._unwrap(moduleExports.Aggregate.prototype, \"exec\");\n contextCaptureFunctions.forEach((funcName) => {\n this._unwrap(moduleExports.Query.prototype, funcName);\n });\n this._unwrap(moduleExports.Model, \"aggregate\");\n this._unwrap(moduleExports.Model, \"insertMany\");\n this._unwrap(moduleExports.Model, \"bulkWrite\");\n }\n patchAggregateExec() {\n const self = this;\n return (originalAggregate) => {\n return function exec(callback) {\n const parentSpan = this[_STORED_PARENT_SPAN];\n const span = self._startSpan(this._model.collection, this._model?.modelName, \"aggregate\", parentSpan);\n return self._handleResponse(span, originalAggregate, this, arguments, callback);\n };\n };\n }\n patchQueryExec() {\n const self = this;\n return (originalExec) => {\n return function exec(callback) {\n if (this[_ALREADY_INSTRUMENTED]) {\n return originalExec.apply(this, arguments);\n }\n const parentSpan = this[_STORED_PARENT_SPAN];\n const span = self._startSpan(this.mongooseCollection, this.model.modelName, this.op, parentSpan);\n return self._handleResponse(span, originalExec, this, arguments, callback);\n };\n };\n }\n patchOnModelMethods(op) {\n const self = this;\n return (originalOnModelFunction) => {\n return function method(options, callback) {\n const span = self._startSpan(this.constructor.collection, this.constructor.modelName, op);\n if (options instanceof Function) {\n callback = options;\n }\n return self._handleResponse(span, originalOnModelFunction, this, arguments, callback);\n };\n };\n }\n // Patch document instance methods (doc.updateOne/deleteOne) for Mongoose 8.21.0+.\n _patchDocumentUpdateMethods(op) {\n const self = this;\n return (originalMethod) => {\n return function method(update, options, callback) {\n let actualCallback = callback;\n if (typeof update === \"function\") {\n actualCallback = update;\n } else if (typeof options === \"function\") {\n actualCallback = options;\n }\n const span = self._startSpan(this.constructor.collection, this.constructor.modelName, op);\n const result = self._handleResponse(span, originalMethod, this, arguments, actualCallback);\n if (result && typeof result === \"object\") {\n result[_ALREADY_INSTRUMENTED] = true;\n }\n return result;\n };\n };\n }\n patchModelStatic(op) {\n const self = this;\n return (original) => {\n return function patchedStatic(docsOrOps, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n }\n const span = self._startSpan(this.collection, this.modelName, op);\n return self._handleResponse(span, original, this, arguments, callback);\n };\n };\n }\n // we want to capture the otel span on the object which is calling exec.\n // in the special case of aggregate, we need have no function to path\n // on the Aggregate object to capture the context on, so we patch\n // the aggregate of Model, and set the context on the Aggregate object\n patchModelAggregate() {\n return (original) => {\n return function captureSpanContext() {\n const currentSpan = getActiveSpan();\n const aggregate = original.apply(this, arguments);\n if (aggregate) aggregate[_STORED_PARENT_SPAN] = currentSpan;\n return aggregate;\n };\n };\n }\n patchAndCaptureSpanContext(_funcName) {\n return (original) => {\n return function captureSpanContext() {\n this[_STORED_PARENT_SPAN] = getActiveSpan();\n return original.apply(this, arguments);\n };\n };\n }\n _startSpan(collection, modelName, operation, parentSpan) {\n const attributes = {\n ...getAttributesFromCollection(collection),\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_OPERATION]: operation,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_SYSTEM]: \"mongoose\",\n // keep for backwards compatibility\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n };\n return startInactiveSpan({\n name: `mongoose.${modelName}.${operation}`,\n kind: SPAN_KIND.CLIENT,\n attributes,\n parentSpan\n });\n }\n _handleResponse(span, exec, originalThis, args, callback) {\n return withActiveSpan(span, () => {\n if (callback instanceof Function) {\n return handleCallbackResponse(callback, exec, originalThis, span, args);\n } else {\n const response = exec.apply(originalThis, args);\n return handlePromiseResponse(response, span);\n }\n });\n }\n}\n\nexport { MongooseInstrumentation, _ALREADY_INSTRUMENTED, _STORED_PARENT_SPAN };\n//# sourceMappingURL=mongoose.js.map\n", + "const ATTR_DB_MONGODB_COLLECTION = \"db.mongodb.collection\";\nconst ATTR_DB_NAME = \"db.name\";\nconst ATTR_DB_OPERATION = \"db.operation\";\nconst ATTR_DB_SYSTEM = \"db.system\";\nconst ATTR_DB_USER = \"db.user\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\n\nexport { ATTR_DB_MONGODB_COLLECTION, ATTR_DB_NAME, ATTR_DB_OPERATION, ATTR_DB_SYSTEM, ATTR_DB_USER, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT };\n//# sourceMappingURL=semconv.js.map\n", + "import { SPAN_STATUS_ERROR } from '@sentry/core';\nimport { ATTR_NET_PEER_PORT, ATTR_NET_PEER_NAME, ATTR_DB_USER, ATTR_DB_NAME, ATTR_DB_MONGODB_COLLECTION } from './semconv.js';\n\nfunction getAttributesFromCollection(collection) {\n return {\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_MONGODB_COLLECTION]: collection.name,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_NAME]: collection.conn.name,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_USER]: collection.conn.user,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_NET_PEER_NAME]: collection.conn.host,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_NET_PEER_PORT]: collection.conn.port\n };\n}\nfunction setErrorStatus(span, error) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: `${error.message} ${error.code ? `\nMongoose Error Code: ${error.code}` : \"\"}`\n });\n}\nfunction handlePromiseResponse(execResponse, span) {\n if (!(execResponse instanceof Promise)) {\n span.end();\n return execResponse;\n }\n return execResponse.catch((err) => {\n setErrorStatus(span, err);\n throw err;\n }).finally(() => span.end());\n}\nfunction handleCallbackResponse(callback, exec, originalThis, span, args) {\n let callbackArgumentIndex = 0;\n if (args.length === 2) {\n callbackArgumentIndex = 1;\n } else if (args.length === 3) {\n callbackArgumentIndex = 2;\n }\n args[callbackArgumentIndex] = (err, response) => {\n if (err) {\n setErrorStatus(span, err);\n }\n span.end();\n return callback(err, response);\n };\n return exec.apply(originalThis, args);\n}\n\nexport { getAttributesFromCollection, handleCallbackResponse, handlePromiseResponse };\n//# sourceMappingURL=utils.js.map\n", + "import { MongooseInstrumentation } from './vendored/mongoose.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Mongoose\";\nconst instrumentMongoose = generateInstrumentOnce(INTEGRATION_NAME, () => new MongooseInstrumentation());\nconst _mongooseIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMongoose();\n }\n };\n});\nconst mongooseIntegration = defineIntegration(_mongooseIntegration);\n\nexport { instrumentMongoose, mongooseIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, getCurrentScope, withScope, startInactiveSpan, SPAN_KIND, withActiveSpan, bindScopeToEmitter, SPAN_STATUS_ERROR, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { ATTR_DB_STATEMENT, DB_SYSTEM_VALUE_MYSQL, ATTR_NET_PEER_NAME, ATTR_DB_USER, ATTR_DB_NAME, ATTR_DB_CONNECTION_STRING, ATTR_DB_SYSTEM, ATTR_NET_PEER_PORT } from './semconv.js';\nimport { getConfig, getDbQueryText, getSpanName, getJDBCString } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-mysql\";\nconst ORIGIN = \"auto.db.otel.mysql\";\nclass MySQLInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n \"mysql\",\n [\">=2.0.0 <3\"],\n (moduleExports) => {\n if (isWrapped(moduleExports.createConnection)) {\n this._unwrap(moduleExports, \"createConnection\");\n }\n this._wrap(moduleExports, \"createConnection\", this._patchCreateConnection());\n if (isWrapped(moduleExports.createPool)) {\n this._unwrap(moduleExports, \"createPool\");\n }\n this._wrap(moduleExports, \"createPool\", this._patchCreatePool());\n if (isWrapped(moduleExports.createPoolCluster)) {\n this._unwrap(moduleExports, \"createPoolCluster\");\n }\n this._wrap(moduleExports, \"createPoolCluster\", this._patchCreatePoolCluster());\n return moduleExports;\n },\n (moduleExports) => {\n if (moduleExports === void 0) return;\n this._unwrap(moduleExports, \"createConnection\");\n this._unwrap(moduleExports, \"createPool\");\n this._unwrap(moduleExports, \"createPoolCluster\");\n }\n )\n ];\n }\n // global export function\n _patchCreateConnection() {\n return (originalCreateConnection) => {\n const thisPlugin = this;\n return function createConnection(_connectionUri) {\n const originalResult = originalCreateConnection(...arguments);\n thisPlugin._wrap(originalResult, \"query\", thisPlugin._patchQuery(originalResult));\n return originalResult;\n };\n };\n }\n // global export function\n _patchCreatePool() {\n return (originalCreatePool) => {\n const thisPlugin = this;\n return function createPool(_config) {\n const pool = originalCreatePool(...arguments);\n thisPlugin._wrap(pool, \"query\", thisPlugin._patchQuery(pool));\n thisPlugin._wrap(pool, \"getConnection\", thisPlugin._patchGetConnection(pool));\n return pool;\n };\n };\n }\n // global export function\n _patchCreatePoolCluster() {\n return (originalCreatePoolCluster) => {\n const thisPlugin = this;\n return function createPool(_config) {\n const cluster = originalCreatePoolCluster(...arguments);\n thisPlugin._wrap(cluster, \"getConnection\", thisPlugin._patchGetConnection(cluster));\n return cluster;\n };\n };\n }\n // method on cluster or pool\n _patchGetConnection(pool) {\n return (originalGetConnection) => {\n const thisPlugin = this;\n return function getConnection(arg1, arg2, arg3) {\n if (!thisPlugin[\"_enabled\"]) {\n thisPlugin._unwrap(pool, \"getConnection\");\n return originalGetConnection.apply(pool, arguments);\n }\n if (arguments.length === 1 && typeof arg1 === \"function\") {\n const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg1);\n return originalGetConnection.call(pool, patchFn);\n }\n if (arguments.length === 2 && typeof arg2 === \"function\") {\n const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg2);\n return originalGetConnection.call(pool, arg1, patchFn);\n }\n if (arguments.length === 3 && typeof arg3 === \"function\") {\n const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg3);\n return originalGetConnection.call(pool, arg1, arg2, patchFn);\n }\n return originalGetConnection.apply(pool, arguments);\n };\n };\n }\n _getConnectionCallbackPatchFn(cb) {\n const thisPlugin = this;\n const scope = getCurrentScope();\n return function(err, connection) {\n if (connection) {\n if (!isWrapped(connection.query)) {\n thisPlugin._wrap(connection, \"query\", thisPlugin._patchQuery(connection));\n }\n }\n if (typeof cb === \"function\") {\n withScope(scope, () => cb.call(this, err, connection));\n }\n };\n }\n _patchQuery(connection) {\n return (originalQuery) => {\n const thisPlugin = this;\n return function query(query, _valuesOrCallback, _callback) {\n if (!thisPlugin[\"_enabled\"]) {\n thisPlugin._unwrap(connection, \"query\");\n return originalQuery.apply(connection, arguments);\n }\n const { host, port, database, user } = getConfig(connection.config);\n const portNumber = parseInt(String(port), 10);\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_MYSQL,\n [ATTR_DB_CONNECTION_STRING]: getJDBCString(host, port, database),\n [ATTR_DB_NAME]: database,\n [ATTR_DB_USER]: user,\n [ATTR_DB_STATEMENT]: getDbQueryText(query),\n [ATTR_NET_PEER_NAME]: host\n };\n if (!isNaN(portNumber)) {\n attributes[ATTR_NET_PEER_PORT] = portNumber;\n }\n const span = startInactiveSpan({\n name: getSpanName(query),\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n const cbIndex = Array.from(arguments).findIndex((arg) => typeof arg === \"function\");\n const scope = getCurrentScope();\n if (cbIndex === -1) {\n const streamableQuery = withActiveSpan(span, () => {\n return originalQuery.apply(connection, arguments);\n });\n bindScopeToEmitter(streamableQuery, scope);\n return streamableQuery.on(\"error\", (err) => {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err.message\n });\n }).on(\"end\", () => {\n span.end();\n });\n } else {\n thisPlugin._wrap(arguments, cbIndex, thisPlugin._patchCallbackQuery(span, scope));\n return withActiveSpan(span, () => {\n return originalQuery.apply(connection, arguments);\n });\n }\n };\n };\n }\n _patchCallbackQuery(span, scope) {\n return (originalCallback) => {\n return function(err, _results, _fields) {\n if (err) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err.message\n });\n }\n span.end();\n return withScope(scope, () => originalCallback(...arguments));\n };\n };\n }\n}\n\nexport { MySQLInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "const ATTR_DB_CONNECTION_STRING = \"db.connection_string\";\nconst ATTR_DB_NAME = \"db.name\";\nconst ATTR_DB_STATEMENT = \"db.statement\";\nconst ATTR_DB_SYSTEM = \"db.system\";\nconst ATTR_DB_USER = \"db.user\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\nconst DB_SYSTEM_VALUE_MYSQL = \"mysql\";\n\nexport { ATTR_DB_CONNECTION_STRING, ATTR_DB_NAME, ATTR_DB_STATEMENT, ATTR_DB_SYSTEM, ATTR_DB_USER, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, DB_SYSTEM_VALUE_MYSQL };\n//# sourceMappingURL=semconv.js.map\n", + "function getConfig(config) {\n const resolved = config?.connectionConfig || config || {};\n const { host, port, database, user } = resolved;\n return { host, port, database, user };\n}\nfunction getJDBCString(host, port, database) {\n let jdbcString = `jdbc:mysql://${host || \"localhost\"}`;\n if (typeof port === \"number\") {\n jdbcString += `:${port}`;\n }\n if (typeof database === \"string\") {\n jdbcString += `/${database}`;\n }\n return jdbcString;\n}\nfunction getDbQueryText(query) {\n if (typeof query === \"string\") {\n return query;\n } else {\n return query.sql;\n }\n}\nfunction getSpanName(query) {\n const rawQuery = typeof query === \"object\" ? query.sql : query;\n const firstSpace = rawQuery?.indexOf(\" \");\n if (typeof firstSpace === \"number\" && firstSpace !== -1) {\n return rawQuery?.substring(0, firstSpace);\n }\n return rawQuery;\n}\n\nexport { getConfig, getDbQueryText, getJDBCString, getSpanName };\n//# sourceMappingURL=utils.js.map\n", + "import { MySQLInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Mysql\";\nconst instrumentMysql = generateInstrumentOnce(INTEGRATION_NAME, () => new MySQLInstrumentation({}));\nconst _mysqlIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMysql();\n }\n };\n});\nconst mysqlIntegration = defineIntegration(_mysqlIntegration);\n\nexport { instrumentMysql, mysqlIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, startInactiveSpan, SPAN_KIND, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR } from '@sentry/core';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile.js';\nimport { ATTR_DB_STATEMENT, DB_SYSTEM_VALUE_MYSQL, ATTR_DB_SYSTEM } from './semconv.js';\nimport { getConnectionPrototypeToInstrument, getQueryText, getConnectionAttributes, getSpanName, once } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-mysql2\";\nconst ORIGIN = \"auto.db.otel.mysql2\";\nconst supportedVersions = [\">=1.4.2 <4\"];\nclass MySQL2Instrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n let format;\n function setFormatFunction(moduleExports) {\n if (!format && moduleExports.format) {\n format = moduleExports.format;\n }\n }\n const patch = (ConnectionPrototype) => {\n if (isWrapped(ConnectionPrototype.query)) {\n this._unwrap(ConnectionPrototype, \"query\");\n }\n this._wrap(ConnectionPrototype, \"query\", this._patchQuery(format));\n if (isWrapped(ConnectionPrototype.execute)) {\n this._unwrap(ConnectionPrototype, \"execute\");\n }\n this._wrap(ConnectionPrototype, \"execute\", this._patchQuery(format));\n };\n const unpatch = (ConnectionPrototype) => {\n this._unwrap(ConnectionPrototype, \"query\");\n this._unwrap(ConnectionPrototype, \"execute\");\n };\n return [\n new InstrumentationNodeModuleDefinition(\n \"mysql2\",\n supportedVersions,\n (moduleExports) => {\n setFormatFunction(moduleExports);\n return moduleExports;\n },\n () => {\n },\n [\n new InstrumentationNodeModuleFile(\n \"mysql2/promise.js\",\n supportedVersions,\n (moduleExports) => {\n setFormatFunction(moduleExports);\n return moduleExports;\n },\n () => {\n }\n ),\n new InstrumentationNodeModuleFile(\n \"mysql2/lib/connection.js\",\n supportedVersions,\n (moduleExports) => {\n const ConnectionPrototype = getConnectionPrototypeToInstrument(moduleExports);\n patch(ConnectionPrototype);\n return moduleExports;\n },\n (moduleExports) => {\n if (moduleExports === void 0) return;\n const ConnectionPrototype = getConnectionPrototypeToInstrument(moduleExports);\n unpatch(ConnectionPrototype);\n }\n )\n ]\n )\n ];\n }\n _patchQuery(format) {\n const thisPlugin = this;\n return (originalQuery) => {\n return function query(query, _valuesOrCallback, _callback) {\n let values;\n if (Array.isArray(_valuesOrCallback)) {\n values = _valuesOrCallback;\n } else if (arguments[2]) {\n values = [_valuesOrCallback];\n }\n const attributes = {\n ...getConnectionAttributes(this.config),\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_MYSQL,\n [ATTR_DB_STATEMENT]: getQueryText(query, format, values),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n };\n const span = startInactiveSpan({\n name: getSpanName(query),\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n const endSpan = once((err) => {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n });\n if (arguments.length === 1) {\n if (typeof query.onResult === \"function\") {\n thisPlugin._wrap(query, \"onResult\", thisPlugin._patchCallbackQuery(endSpan));\n }\n const streamableQuery = originalQuery.apply(this, arguments);\n streamableQuery.once(\"error\", (err) => {\n endSpan(err);\n }).once(\"result\", () => {\n endSpan();\n });\n return streamableQuery;\n }\n if (typeof arguments[1] === \"function\") {\n thisPlugin._wrap(arguments, 1, thisPlugin._patchCallbackQuery(endSpan));\n } else if (typeof arguments[2] === \"function\") {\n thisPlugin._wrap(arguments, 2, thisPlugin._patchCallbackQuery(endSpan));\n }\n return originalQuery.apply(this, arguments);\n };\n };\n }\n _patchCallbackQuery(endSpan) {\n return (originalCallback) => {\n return function(...args) {\n endSpan(args[0]);\n return originalCallback(...args);\n };\n };\n }\n}\n\nexport { MySQL2Instrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "const ATTR_DB_CONNECTION_STRING = \"db.connection_string\";\nconst ATTR_DB_NAME = \"db.name\";\nconst ATTR_DB_STATEMENT = \"db.statement\";\nconst ATTR_DB_SYSTEM = \"db.system\";\nconst ATTR_DB_USER = \"db.user\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\nconst DB_SYSTEM_VALUE_MYSQL = \"mysql\";\n\nexport { ATTR_DB_CONNECTION_STRING, ATTR_DB_NAME, ATTR_DB_STATEMENT, ATTR_DB_SYSTEM, ATTR_DB_USER, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, DB_SYSTEM_VALUE_MYSQL };\n//# sourceMappingURL=semconv.js.map\n", + "import { ATTR_NET_PEER_NAME, ATTR_DB_USER, ATTR_DB_NAME, ATTR_DB_CONNECTION_STRING, ATTR_NET_PEER_PORT } from './semconv.js';\n\nfunction getConnectionAttributes(config) {\n const { host, port, database, user } = getConfig(config);\n const attrs = {\n [ATTR_DB_CONNECTION_STRING]: getJDBCString(host, port, database),\n [ATTR_DB_NAME]: database,\n [ATTR_DB_USER]: user,\n [ATTR_NET_PEER_NAME]: host\n };\n const portNumber = parseInt(port, 10);\n if (!isNaN(portNumber)) {\n attrs[ATTR_NET_PEER_PORT] = portNumber;\n }\n return attrs;\n}\nfunction getConfig(config) {\n const { host, port, database, user } = config?.connectionConfig || config || {};\n return { host, port, database, user };\n}\nfunction getJDBCString(host, port, database) {\n let jdbcString = `jdbc:mysql://${host || \"localhost\"}`;\n if (typeof port === \"number\") {\n jdbcString += `:${port}`;\n }\n if (typeof database === \"string\") {\n jdbcString += `/${database}`;\n }\n return jdbcString;\n}\nfunction getQueryText(query, format, values) {\n const [querySql, queryValues] = typeof query === \"string\" ? [query, values] : [query.sql, hasValues(query) ? values || query.values : values];\n try {\n if (format && queryValues) {\n return format(querySql, queryValues);\n } else {\n return querySql;\n }\n } catch {\n return \"Could not determine the query due to an error in formatting\";\n }\n}\nfunction hasValues(obj) {\n return \"values\" in obj;\n}\nfunction getSpanName(query) {\n const rawQuery = typeof query === \"object\" ? query.sql : query;\n const firstSpace = rawQuery?.indexOf(\" \");\n if (typeof firstSpace === \"number\" && firstSpace !== -1) {\n return rawQuery?.substring(0, firstSpace);\n }\n return rawQuery;\n}\nconst once = (fn) => {\n let called = false;\n return (...args) => {\n if (called) return;\n called = true;\n return fn(...args);\n };\n};\nfunction getConnectionPrototypeToInstrument(connection) {\n const connectionPrototype = connection.prototype;\n const basePrototype = Object.getPrototypeOf(connectionPrototype);\n if (typeof basePrototype?.query === \"function\" && typeof basePrototype?.execute === \"function\") {\n return basePrototype;\n }\n return connectionPrototype;\n}\n\nexport { getConnectionAttributes, getConnectionPrototypeToInstrument, getQueryText, getSpanName, once };\n//# sourceMappingURL=utils.js.map\n", + "import { MySQL2Instrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Mysql2\";\nconst instrumentMysql2 = generateInstrumentOnce(INTEGRATION_NAME, () => new MySQL2Instrumentation());\nconst _mysql2Integration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMysql2();\n }\n };\n});\nconst mysql2Integration = defineIntegration(_mysql2Integration);\n\nexport { instrumentMysql2, mysql2Integration };\n//# sourceMappingURL=index.js.map\n", + "import { waitForTracingChannelBinding, defineIntegration, spanToJSON, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_SENTRY_OP, truncate } from '@sentry/core';\nimport * as dc from 'node:diagnostics_channel';\nimport { subscribeRedisDiagnosticChannels } from '@sentry/server-utils';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { getCacheKeySafely, getCacheOperation, shouldConsiderForCache, calculateCacheItemSize, isInCommands, GET_COMMANDS } from '../../../utils/redisCache.js';\nimport { IORedisInstrumentation } from './vendored/ioredis-instrumentation.js';\nimport { RedisInstrumentation } from './vendored/redis-instrumentation.js';\n\nconst INTEGRATION_NAME = \"Redis\";\nlet _redisOptions = {};\nconst cacheResponseHook = (span, redisCommand, cmdArgs, response) => {\n const safeKey = getCacheKeySafely(redisCommand, cmdArgs);\n const cacheOperation = getCacheOperation(redisCommand);\n if (!safeKey || !cacheOperation || !_redisOptions.cachePrefixes || !shouldConsiderForCache(redisCommand, safeKey, _redisOptions.cachePrefixes)) {\n return;\n }\n const spanData = spanToJSON(span).data;\n const networkPeerAddress = spanData[\"net.peer.name\"] ?? spanData[\"server.address\"];\n const networkPeerPort = spanData[\"net.peer.port\"] ?? spanData[\"server.port\"];\n if (networkPeerPort && networkPeerAddress) {\n span.setAttributes({ \"network.peer.address\": networkPeerAddress, \"network.peer.port\": networkPeerPort });\n }\n const cacheItemSize = calculateCacheItemSize(response);\n if (cacheItemSize) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, cacheItemSize);\n }\n if (isInCommands(GET_COMMANDS, redisCommand) && cacheItemSize !== void 0) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_CACHE_HIT, cacheItemSize > 0);\n }\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: cacheOperation,\n [SEMANTIC_ATTRIBUTE_CACHE_KEY]: safeKey\n });\n const spanDescription = safeKey.join(\", \");\n span.updateName(\n _redisOptions.maxCacheKeyLength ? truncate(spanDescription, _redisOptions.maxCacheKeyLength) : spanDescription\n );\n};\nconst instrumentIORedis = generateInstrumentOnce(`${INTEGRATION_NAME}.IORedis`, () => {\n return new IORedisInstrumentation({\n responseHook: cacheResponseHook\n });\n});\nconst instrumentRedisModule = generateInstrumentOnce(`${INTEGRATION_NAME}.Redis`, () => {\n return new RedisInstrumentation({\n responseHook: cacheResponseHook\n });\n});\nconst instrumentRedis = Object.assign(\n () => {\n instrumentIORedis();\n instrumentRedisModule();\n if (dc.tracingChannel) {\n waitForTracingChannelBinding(() => {\n subscribeRedisDiagnosticChannels(dc.tracingChannel, cacheResponseHook);\n });\n }\n },\n { id: INTEGRATION_NAME }\n);\nconst _redisIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n _redisOptions = options;\n instrumentRedis();\n }\n };\n});\nconst redisIntegration = defineIntegration(_redisIntegration);\n\nexport { _redisOptions, cacheResponseHook, instrumentRedis, redisIntegration };\n//# sourceMappingURL=index.js.map\n", + "const SINGLE_ARG_COMMANDS = [\"get\", \"set\", \"setex\"];\nconst GET_COMMANDS = [\"get\", \"mget\"];\nconst SET_COMMANDS = [\"set\", \"setex\"];\nfunction isInCommands(redisCommands, command) {\n return redisCommands.includes(command.toLowerCase());\n}\nfunction getCacheOperation(command) {\n if (isInCommands(GET_COMMANDS, command)) {\n return \"cache.get\";\n } else if (isInCommands(SET_COMMANDS, command)) {\n return \"cache.put\";\n } else {\n return void 0;\n }\n}\nfunction keyHasPrefix(key, prefixes) {\n return prefixes.some((prefix) => key.startsWith(prefix));\n}\nfunction getCacheKeySafely(redisCommand, cmdArgs) {\n try {\n if (cmdArgs.length === 0) {\n return void 0;\n }\n const processArg = (arg) => {\n if (typeof arg === \"string\" || typeof arg === \"number\" || Buffer.isBuffer(arg)) {\n return [arg.toString()];\n } else if (Array.isArray(arg)) {\n return flatten(arg.map((arg2) => processArg(arg2)));\n } else {\n return [\"\"];\n }\n };\n const firstArg = cmdArgs[0];\n if (isInCommands(SINGLE_ARG_COMMANDS, redisCommand) && firstArg != null) {\n return processArg(firstArg);\n }\n return flatten(cmdArgs.map((arg) => processArg(arg)));\n } catch {\n return void 0;\n }\n}\nfunction shouldConsiderForCache(redisCommand, keys, prefixes) {\n if (!getCacheOperation(redisCommand)) {\n return false;\n }\n for (const key of keys) {\n if (keyHasPrefix(key, prefixes)) {\n return true;\n }\n }\n return false;\n}\nfunction calculateCacheItemSize(response) {\n const getSize = (value) => {\n try {\n if (Buffer.isBuffer(value)) return value.byteLength;\n else if (typeof value === \"string\") return value.length;\n else if (typeof value === \"number\") return value.toString().length;\n else if (value === null || value === void 0) return 0;\n return JSON.stringify(value).length;\n } catch {\n return void 0;\n }\n };\n return Array.isArray(response) ? response.reduce((acc, curr) => {\n const size = getSize(curr);\n return typeof size === \"number\" ? acc !== void 0 ? acc + size : size : acc;\n }, 0) : getSize(response);\n}\nfunction flatten(input) {\n const result = [];\n const flattenHelper = (input2) => {\n input2.forEach((el) => {\n if (Array.isArray(el)) {\n flattenHelper(el);\n } else {\n result.push(el);\n }\n });\n };\n flattenHelper(input);\n return result;\n}\n\nexport { GET_COMMANDS, SET_COMMANDS, calculateCacheItemSize, getCacheKeySafely, getCacheOperation, isInCommands, shouldConsiderForCache };\n//# sourceMappingURL=redisCache.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, getActiveSpan, startInactiveSpan, SPAN_KIND, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR } from '@sentry/core';\nimport { defaultDbStatementSerializer } from './redis-common.js';\nimport { ATTR_DB_STATEMENT, DB_SYSTEM_VALUE_REDIS, ATTR_NET_PEER_PORT, ATTR_NET_PEER_NAME, ATTR_DB_CONNECTION_STRING, ATTR_DB_SYSTEM } from './semconv.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-ioredis\";\nconst ORIGIN = \"auto.db.otel.redis\";\nconst SUPPORTED_VERSIONS = [\">=2.0.0 <5.11.0\"];\nfunction endSpan(span, err) {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n}\nclass IORedisInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n \"ioredis\",\n SUPPORTED_VERSIONS,\n (module) => {\n const moduleExports = module[Symbol.toStringTag] === \"Module\" && module.default ? module.default : module;\n if (isWrapped(moduleExports.prototype.sendCommand)) {\n this._unwrap(moduleExports.prototype, \"sendCommand\");\n }\n this._wrap(moduleExports.prototype, \"sendCommand\", this._patchSendCommand());\n if (isWrapped(moduleExports.prototype.connect)) {\n this._unwrap(moduleExports.prototype, \"connect\");\n }\n this._wrap(moduleExports.prototype, \"connect\", this._patchConnection());\n return module;\n },\n (module) => {\n if (module === void 0) return;\n const moduleExports = module[Symbol.toStringTag] === \"Module\" && module.default ? module.default : module;\n this._unwrap(moduleExports.prototype, \"sendCommand\");\n this._unwrap(moduleExports.prototype, \"connect\");\n }\n )\n ];\n }\n _patchSendCommand() {\n const instrumentation = this;\n return (original) => {\n return function(...args) {\n const cmd = args[0];\n if (args.length < 1 || typeof cmd !== \"object\" || !getActiveSpan()) {\n return original.apply(this, args);\n }\n const { host, port } = this.options;\n const attributes = {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_DB_STATEMENT]: defaultDbStatementSerializer(cmd.name, cmd.args),\n [ATTR_DB_CONNECTION_STRING]: `redis://${host}:${port}`,\n [ATTR_NET_PEER_NAME]: host,\n [ATTR_NET_PEER_PORT]: port,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n };\n const span = startInactiveSpan({ name: cmd.name, kind: SPAN_KIND.CLIENT, attributes });\n try {\n const result = original.apply(this, args);\n const origResolve = cmd.resolve;\n cmd.resolve = function(response) {\n instrumentation._callResponseHook(span, cmd, response);\n endSpan(span, null);\n origResolve(response);\n };\n const origReject = cmd.reject;\n cmd.reject = function(err) {\n endSpan(span, err);\n origReject(err);\n };\n return result;\n } catch (error) {\n endSpan(span, error);\n throw error;\n }\n };\n };\n }\n _patchConnection() {\n return (original) => {\n return function(...args) {\n if (!getActiveSpan()) {\n return original.apply(this, args);\n }\n const { host, port } = this.options;\n const attributes = {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_DB_STATEMENT]: \"connect\",\n [ATTR_DB_CONNECTION_STRING]: `redis://${host}:${port}`,\n [ATTR_NET_PEER_NAME]: host,\n [ATTR_NET_PEER_PORT]: port,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n };\n const span = startInactiveSpan({ name: \"connect\", kind: SPAN_KIND.CLIENT, attributes });\n try {\n const result = original.apply(this, args);\n if (result instanceof Promise) {\n return result.then(\n (value) => {\n endSpan(span, null);\n return value;\n },\n (error) => {\n endSpan(span, error);\n return Promise.reject(error);\n }\n );\n }\n endSpan(span, null);\n return result;\n } catch (error) {\n endSpan(span, error);\n throw error;\n }\n };\n };\n }\n _callResponseHook(span, cmd, response) {\n const { responseHook } = this.getConfig();\n if (!responseHook) {\n return;\n }\n try {\n responseHook(span, cmd.name, cmd.args, response);\n } catch {\n }\n }\n}\n\nexport { IORedisInstrumentation };\n//# sourceMappingURL=ioredis-instrumentation.js.map\n", + "const serializationSubsets = [\n {\n regex: /^ECHO/i,\n args: 0\n },\n {\n regex: /^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,\n args: 1\n },\n {\n regex: /^(HSET|HMSET|LSET|LINSERT)/i,\n args: 2\n },\n {\n regex: /^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,\n args: -1\n }\n];\nconst defaultDbStatementSerializer = (cmdName, cmdArgs) => {\n if (Array.isArray(cmdArgs) && cmdArgs.length) {\n const nArgsToSerialize = serializationSubsets.find(({ regex }) => regex.test(cmdName))?.args ?? 0;\n const argsToSerialize = nArgsToSerialize >= 0 ? cmdArgs.slice(0, nArgsToSerialize) : cmdArgs.slice();\n if (cmdArgs.length > argsToSerialize.length) {\n argsToSerialize.push(`[${cmdArgs.length - nArgsToSerialize} other arguments]`);\n }\n return `${cmdName} ${argsToSerialize.join(\" \")}`;\n }\n return cmdName;\n};\n\nexport { defaultDbStatementSerializer };\n//# sourceMappingURL=redis-common.js.map\n", + "const ATTR_DB_CONNECTION_STRING = \"db.connection_string\";\nconst ATTR_DB_STATEMENT = \"db.statement\";\nconst ATTR_DB_SYSTEM = \"db.system\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\nconst DB_SYSTEM_VALUE_REDIS = \"redis\";\n\nexport { ATTR_DB_CONNECTION_STRING, ATTR_DB_STATEMENT, ATTR_DB_SYSTEM, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, DB_SYSTEM_VALUE_REDIS };\n//# sourceMappingURL=semconv.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, startInactiveSpan, SPAN_KIND, getActiveSpan, withActiveSpan, debug, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../../../debug-build.js';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile.js';\nimport { defaultDbStatementSerializer } from './redis-common.js';\nimport { ATTR_DB_STATEMENT, DB_SYSTEM_VALUE_REDIS, ATTR_DB_SYSTEM, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, ATTR_DB_CONNECTION_STRING } from './semconv.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-redis\";\nconst ORIGIN = \"auto.db.otel.redis\";\nconst OTEL_OPEN_SPANS = /* @__PURE__ */ Symbol(\"opentelemetry.instrumentation.redis.open_spans\");\nconst MULTI_COMMAND_OPTIONS = /* @__PURE__ */ Symbol(\"opentelemetry.instrumentation.redis.multi_command_options\");\nfunction endSpan(span, err) {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n}\nfunction runResponseHook(responseHook, span, commandName, commandArgs, response) {\n if (!responseHook) {\n return;\n }\n try {\n responseHook(span, commandName, commandArgs, response);\n } catch {\n }\n}\nfunction removeCredentialsFromDBConnectionStringAttribute(url) {\n if (typeof url !== \"string\" || !url) {\n return void 0;\n }\n try {\n const u = new URL(url);\n u.searchParams.delete(\"user_pwd\");\n u.username = \"\";\n u.password = \"\";\n return u.href;\n } catch (err) {\n DEBUG_BUILD && debug.error(\"failed to sanitize redis connection url\", err);\n }\n return void 0;\n}\nfunction getClientAttributes(options) {\n return {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_NET_PEER_NAME]: options?.socket?.host,\n [ATTR_NET_PEER_PORT]: options?.socket?.port,\n [ATTR_DB_CONNECTION_STRING]: removeCredentialsFromDBConnectionStringAttribute(options?.url),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n };\n}\nconst _RedisInstrumentationV2_V3 = class _RedisInstrumentationV2_V3 extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n \"redis\",\n [\">=2.6.0 <4\"],\n (moduleExports) => {\n if (isWrapped(moduleExports.RedisClient.prototype[\"internal_send_command\"])) {\n this._unwrap(moduleExports.RedisClient.prototype, \"internal_send_command\");\n }\n this._wrap(moduleExports.RedisClient.prototype, \"internal_send_command\", this._getPatchInternalSendCommand());\n return moduleExports;\n },\n (moduleExports) => {\n if (moduleExports === void 0) return;\n this._unwrap(moduleExports.RedisClient.prototype, \"internal_send_command\");\n }\n )\n ];\n }\n _getPatchInternalSendCommand() {\n const instrumentation = this;\n return function internal_send_command(original) {\n return function internal_send_command_trace(cmd) {\n if (arguments.length !== 1 || typeof cmd !== \"object\") {\n return original.apply(this, arguments);\n }\n const attributes = {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_DB_STATEMENT]: defaultDbStatementSerializer(cmd.command, cmd.args),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n };\n if (this.connection_options) {\n attributes[ATTR_NET_PEER_NAME] = this.connection_options.host;\n attributes[ATTR_NET_PEER_PORT] = this.connection_options.port;\n }\n if (this.address) {\n attributes[ATTR_DB_CONNECTION_STRING] = `redis://${this.address}`;\n }\n const span = startInactiveSpan({\n name: `${_RedisInstrumentationV2_V3.COMPONENT}-${cmd.command}`,\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n const originalCallback = arguments[0].callback;\n if (originalCallback) {\n const parentSpan = getActiveSpan();\n arguments[0].callback = function callback(err, reply) {\n runResponseHook(instrumentation.getConfig().responseHook, span, cmd.command, cmd.args, reply);\n endSpan(span, err);\n return withActiveSpan(parentSpan ?? null, () => originalCallback.apply(this, arguments));\n };\n }\n try {\n return original.apply(this, arguments);\n } catch (rethrow) {\n endSpan(span, rethrow);\n throw rethrow;\n }\n };\n };\n }\n};\n_RedisInstrumentationV2_V3.COMPONENT = \"redis\";\nlet RedisInstrumentationV2_V3 = _RedisInstrumentationV2_V3;\nconst _RedisInstrumentationV4_V5 = class _RedisInstrumentationV4_V5 extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return [\n this._getInstrumentationNodeModuleDefinition(\"@redis/client\"),\n this._getInstrumentationNodeModuleDefinition(\"@node-redis/client\")\n ];\n }\n _getInstrumentationNodeModuleDefinition(basePackageName) {\n const commanderModuleFile = new InstrumentationNodeModuleFile(\n `${basePackageName}/dist/lib/commander.js`,\n [\"^1.0.0\"],\n (moduleExports, moduleVersion) => {\n const transformCommandArguments = moduleExports.transformCommandArguments;\n if (!transformCommandArguments) {\n DEBUG_BUILD && debug.error(\"internal instrumentation error, missing transformCommandArguments function\");\n return moduleExports;\n }\n const functionToPatch = moduleVersion?.startsWith(\"1.0.\") ? \"extendWithCommands\" : \"attachCommands\";\n if (isWrapped(moduleExports?.[functionToPatch])) {\n this._unwrap(moduleExports, functionToPatch);\n }\n this._wrap(moduleExports, functionToPatch, this._getPatchExtendWithCommands(transformCommandArguments));\n return moduleExports;\n },\n (moduleExports) => {\n if (isWrapped(moduleExports?.extendWithCommands)) {\n this._unwrap(moduleExports, \"extendWithCommands\");\n }\n if (isWrapped(moduleExports?.attachCommands)) {\n this._unwrap(moduleExports, \"attachCommands\");\n }\n }\n );\n const multiCommanderModule = new InstrumentationNodeModuleFile(\n `${basePackageName}/dist/lib/client/multi-command.js`,\n [\"^1.0.0\", \">=5.0.0 <5.12.0\"],\n (moduleExports) => {\n const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n if (isWrapped(redisClientMultiCommandPrototype?.exec)) {\n this._unwrap(redisClientMultiCommandPrototype, \"exec\");\n }\n this._wrap(redisClientMultiCommandPrototype, \"exec\", this._getPatchMultiCommandsExec());\n if (isWrapped(redisClientMultiCommandPrototype?.execAsPipeline)) {\n this._unwrap(redisClientMultiCommandPrototype, \"execAsPipeline\");\n }\n this._wrap(redisClientMultiCommandPrototype, \"execAsPipeline\", this._getPatchMultiCommandsExec());\n if (isWrapped(redisClientMultiCommandPrototype?.addCommand)) {\n this._unwrap(redisClientMultiCommandPrototype, \"addCommand\");\n }\n this._wrap(redisClientMultiCommandPrototype, \"addCommand\", this._getPatchMultiCommandsAddCommand());\n return moduleExports;\n },\n (moduleExports) => {\n const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n if (isWrapped(redisClientMultiCommandPrototype?.exec)) {\n this._unwrap(redisClientMultiCommandPrototype, \"exec\");\n }\n if (isWrapped(redisClientMultiCommandPrototype?.execAsPipeline)) {\n this._unwrap(redisClientMultiCommandPrototype, \"execAsPipeline\");\n }\n if (isWrapped(redisClientMultiCommandPrototype?.addCommand)) {\n this._unwrap(redisClientMultiCommandPrototype, \"addCommand\");\n }\n }\n );\n const clientIndexModule = new InstrumentationNodeModuleFile(\n `${basePackageName}/dist/lib/client/index.js`,\n [\"^1.0.0\", \">=5.0.0 <5.12.0\"],\n (moduleExports) => {\n const redisClientPrototype = moduleExports?.default?.prototype;\n if (redisClientPrototype?.multi) {\n if (isWrapped(redisClientPrototype?.multi)) {\n this._unwrap(redisClientPrototype, \"multi\");\n }\n this._wrap(redisClientPrototype, \"multi\", this._getPatchRedisClientMulti());\n }\n if (redisClientPrototype?.MULTI) {\n if (isWrapped(redisClientPrototype?.MULTI)) {\n this._unwrap(redisClientPrototype, \"MULTI\");\n }\n this._wrap(redisClientPrototype, \"MULTI\", this._getPatchRedisClientMulti());\n }\n if (isWrapped(redisClientPrototype?.sendCommand)) {\n this._unwrap(redisClientPrototype, \"sendCommand\");\n }\n this._wrap(redisClientPrototype, \"sendCommand\", this._getPatchRedisClientSendCommand());\n if (isWrapped(redisClientPrototype?.connect)) {\n this._unwrap(redisClientPrototype, \"connect\");\n }\n this._wrap(redisClientPrototype, \"connect\", this._getPatchedClientConnect());\n return moduleExports;\n },\n (moduleExports) => {\n const redisClientPrototype = moduleExports?.default?.prototype;\n if (isWrapped(redisClientPrototype?.multi)) {\n this._unwrap(redisClientPrototype, \"multi\");\n }\n if (isWrapped(redisClientPrototype?.MULTI)) {\n this._unwrap(redisClientPrototype, \"MULTI\");\n }\n if (isWrapped(redisClientPrototype?.sendCommand)) {\n this._unwrap(redisClientPrototype, \"sendCommand\");\n }\n if (isWrapped(redisClientPrototype?.connect)) {\n this._unwrap(redisClientPrototype, \"connect\");\n }\n }\n );\n return new InstrumentationNodeModuleDefinition(\n basePackageName,\n [\"^1.0.0\", \">=5.0.0 <5.12.0\"],\n (moduleExports) => moduleExports,\n () => {\n },\n [commanderModuleFile, multiCommanderModule, clientIndexModule]\n );\n }\n _getPatchExtendWithCommands(transformCommandArguments) {\n const plugin = this;\n return function extendWithCommandsPatchWrapper(original) {\n return function extendWithCommandsPatch(config) {\n if (config?.BaseClass?.name !== \"RedisClient\") {\n return original.apply(this, arguments);\n }\n const origExecutor = config.executor;\n config.executor = function(command, args) {\n const redisCommandArguments = transformCommandArguments(command, args).args;\n return plugin._traceClientCommand(origExecutor, this, arguments, redisCommandArguments);\n };\n return original.apply(this, arguments);\n };\n };\n }\n _getPatchMultiCommandsExec() {\n const plugin = this;\n return function execPatchWrapper(original) {\n return function execPatch() {\n const execRes = original.apply(this, arguments);\n if (typeof execRes?.then !== \"function\") {\n DEBUG_BUILD && debug.error(\"non-promise result when patching exec/execAsPipeline\");\n return execRes;\n }\n return execRes.then((redisRes) => {\n const openSpans = this[OTEL_OPEN_SPANS];\n plugin._endSpansWithRedisReplies(openSpans, redisRes);\n return redisRes;\n }).catch((err) => {\n const openSpans = this[OTEL_OPEN_SPANS];\n if (!openSpans) {\n DEBUG_BUILD && debug.error(\"cannot find open spans to end for multi/pipeline\");\n } else {\n const replies = err.constructor.name === \"MultiErrorReply\" ? err.replies : new Array(openSpans.length).fill(err);\n plugin._endSpansWithRedisReplies(openSpans, replies);\n }\n return Promise.reject(err);\n });\n };\n };\n }\n _getPatchMultiCommandsAddCommand() {\n const plugin = this;\n return function addCommandWrapper(original) {\n return function addCommandPatch(args) {\n return plugin._traceClientCommand(original, this, arguments, args);\n };\n };\n }\n _getPatchRedisClientMulti() {\n return function multiPatchWrapper(original) {\n return function multiPatch() {\n const multiRes = original.apply(this, arguments);\n multiRes[MULTI_COMMAND_OPTIONS] = this.options;\n return multiRes;\n };\n };\n }\n _getPatchRedisClientSendCommand() {\n const plugin = this;\n return function sendCommandWrapper(original) {\n return function sendCommandPatch(args) {\n return plugin._traceClientCommand(original, this, arguments, args);\n };\n };\n }\n _getPatchedClientConnect() {\n return function connectWrapper(original) {\n return function patchedConnect() {\n const attributes = getClientAttributes(this.options);\n const span = startInactiveSpan({\n name: `${_RedisInstrumentationV4_V5.COMPONENT}-connect`,\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n const res = withActiveSpan(span, () => original.apply(this));\n return res.then(\n (result) => {\n span.end();\n return result;\n },\n (error) => {\n endSpan(span, error);\n return Promise.reject(error);\n }\n );\n };\n };\n }\n _traceClientCommand(origFunction, origThis, origArguments, redisCommandArguments) {\n const clientOptions = origThis.options || origThis[MULTI_COMMAND_OPTIONS];\n const commandName = redisCommandArguments[0];\n const commandArgs = redisCommandArguments.slice(1);\n const attributes = getClientAttributes(clientOptions);\n const dbStatement = defaultDbStatementSerializer(commandName, commandArgs);\n if (dbStatement != null) {\n attributes[ATTR_DB_STATEMENT] = dbStatement;\n }\n const span = startInactiveSpan({\n name: `${_RedisInstrumentationV4_V5.COMPONENT}-${commandName}`,\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n const res = withActiveSpan(span, () => origFunction.apply(origThis, origArguments));\n if (res instanceof Promise) {\n res.then(\n (redisRes) => {\n this._endSpanWithResponse(span, commandName, commandArgs, redisRes, void 0);\n },\n (err) => {\n this._endSpanWithResponse(span, commandName, commandArgs, null, err);\n }\n );\n } else {\n const redisClientMultiCommand = res;\n redisClientMultiCommand[OTEL_OPEN_SPANS] = redisClientMultiCommand[OTEL_OPEN_SPANS] || [];\n redisClientMultiCommand[OTEL_OPEN_SPANS].push({\n span,\n commandName,\n commandArgs\n });\n }\n return res;\n }\n _endSpansWithRedisReplies(openSpans, replies) {\n if (!openSpans) {\n DEBUG_BUILD && debug.error(\"cannot find open spans to end for redis multi/pipeline\");\n return;\n }\n if (replies.length !== openSpans.length) {\n DEBUG_BUILD && debug.error(\"number of multi command spans does not match response from redis\");\n return;\n }\n for (let i = 0; i < openSpans.length; i++) {\n const { span, commandName, commandArgs } = openSpans[i];\n const currCommandRes = replies[i];\n const [res, err] = currCommandRes instanceof Error ? [null, currCommandRes] : [currCommandRes, void 0];\n this._endSpanWithResponse(span, commandName, commandArgs, res, err);\n }\n }\n _endSpanWithResponse(span, commandName, commandArgs, response, error) {\n if (!error) {\n runResponseHook(this.getConfig().responseHook, span, commandName, commandArgs, response);\n }\n endSpan(span, error);\n }\n};\n_RedisInstrumentationV4_V5.COMPONENT = \"redis\";\nlet RedisInstrumentationV4_V5 = _RedisInstrumentationV4_V5;\nclass RedisInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n this.initialized = false;\n this.instrumentationV2_V3 = new RedisInstrumentationV2_V3(this.getConfig());\n this.instrumentationV4_V5 = new RedisInstrumentationV4_V5(this.getConfig());\n this.initialized = true;\n }\n setConfig(config = {}) {\n super.setConfig(config);\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.setConfig(config);\n this.instrumentationV4_V5.setConfig(config);\n }\n init() {\n }\n getModuleDefinitions() {\n return [...this.instrumentationV2_V3.getModuleDefinitions(), ...this.instrumentationV4_V5.getModuleDefinitions()];\n }\n setTracerProvider(tracerProvider) {\n super.setTracerProvider(tracerProvider);\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.setTracerProvider(tracerProvider);\n this.instrumentationV4_V5.setTracerProvider(tracerProvider);\n }\n enable() {\n super.enable();\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.enable();\n this.instrumentationV4_V5.enable();\n }\n disable() {\n super.disable();\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.disable();\n this.instrumentationV4_V5.disable();\n }\n}\n\nexport { RedisInstrumentation };\n//# sourceMappingURL=redis-instrumentation.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, startInactiveSpan, SPAN_KIND, getActiveSpan, withActiveSpan, SPAN_STATUS_ERROR } from '@sentry/core';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile.js';\nimport { SpanNames } from './enums/SpanNames.js';\nimport { shouldSkipInstrumentation, getSemanticAttributesFromConnection, patchClientConnectCallback, isObjectWithTextString, handleConfigQuery, patchCallback, getErrorMessage, getSemanticAttributesFromPoolConnection, patchCallbackPGPool } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-pg\";\nfunction extractModuleExports(module) {\n return module[Symbol.toStringTag] === \"Module\" ? module.default : module;\n}\nfunction bindCallbackToSpan(parentSpan, callback) {\n return function(...args) {\n return withActiveSpan(parentSpan, () => callback.apply(this, args));\n };\n}\nclass PgInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n const SUPPORTED_PG_VERSIONS = [\">=8.0.3 <9\"];\n const SUPPORTED_PG_POOL_VERSIONS = [\">=2.0.0 <4\"];\n const modulePgNativeClient = new InstrumentationNodeModuleFile(\n \"pg/lib/native/client.js\",\n SUPPORTED_PG_VERSIONS,\n this._patchPgClient.bind(this),\n this._unpatchPgClient.bind(this)\n );\n const modulePgClient = new InstrumentationNodeModuleFile(\n \"pg/lib/client.js\",\n SUPPORTED_PG_VERSIONS,\n this._patchPgClient.bind(this),\n this._unpatchPgClient.bind(this)\n );\n const modulePG = new InstrumentationNodeModuleDefinition(\n \"pg\",\n SUPPORTED_PG_VERSIONS,\n (module) => {\n const moduleExports = extractModuleExports(module);\n this._patchPgClient(moduleExports.Client);\n return module;\n },\n (module) => {\n const moduleExports = extractModuleExports(module);\n this._unpatchPgClient(moduleExports.Client);\n return module;\n },\n [modulePgClient, modulePgNativeClient]\n );\n const modulePGPool = new InstrumentationNodeModuleDefinition(\n \"pg-pool\",\n SUPPORTED_PG_POOL_VERSIONS,\n (module) => {\n const moduleExports = extractModuleExports(module);\n if (isWrapped(moduleExports.prototype.connect)) {\n this._unwrap(moduleExports.prototype, \"connect\");\n }\n this._wrap(moduleExports.prototype, \"connect\", this._getPoolConnectPatch());\n return moduleExports;\n },\n (module) => {\n const moduleExports = extractModuleExports(module);\n if (isWrapped(moduleExports.prototype.connect)) {\n this._unwrap(moduleExports.prototype, \"connect\");\n }\n }\n );\n return [modulePG, modulePGPool];\n }\n _patchPgClient(module) {\n if (!module) {\n return;\n }\n const moduleExports = extractModuleExports(module);\n if (isWrapped(moduleExports.prototype.query)) {\n this._unwrap(moduleExports.prototype, \"query\");\n }\n if (isWrapped(moduleExports.prototype.connect)) {\n this._unwrap(moduleExports.prototype, \"connect\");\n }\n this._wrap(moduleExports.prototype, \"query\", this._getClientQueryPatch());\n this._wrap(moduleExports.prototype, \"connect\", this._getClientConnectPatch());\n return module;\n }\n _unpatchPgClient(module) {\n const moduleExports = extractModuleExports(module);\n if (isWrapped(moduleExports.prototype.query)) {\n this._unwrap(moduleExports.prototype, \"query\");\n }\n if (isWrapped(moduleExports.prototype.connect)) {\n this._unwrap(moduleExports.prototype, \"connect\");\n }\n return module;\n }\n _getClientConnectPatch() {\n const plugin = this;\n return (original) => {\n return function connect(callback) {\n if (shouldSkipInstrumentation() || plugin.getConfig().ignoreConnectSpans) {\n return original.call(this, callback);\n }\n const span = startInactiveSpan({\n name: SpanNames.CONNECT,\n kind: SPAN_KIND.CLIENT,\n attributes: getSemanticAttributesFromConnection(this)\n });\n let cb = callback;\n if (cb) {\n const parentSpan = getActiveSpan();\n cb = patchClientConnectCallback(span, cb);\n if (parentSpan) {\n cb = bindCallbackToSpan(parentSpan, cb);\n }\n }\n const connectResult = withActiveSpan(span, () => {\n return original.call(this, cb);\n });\n return handleConnectResult(span, connectResult);\n };\n };\n }\n _getClientQueryPatch() {\n return (original) => {\n this._diag.debug(\"Patching pg.Client.prototype.query\");\n return function query(...args) {\n if (shouldSkipInstrumentation()) {\n return original.apply(this, args);\n }\n const arg0 = args[0];\n const firstArgIsString = typeof arg0 === \"string\";\n const firstArgIsQueryObjectWithText = isObjectWithTextString(arg0);\n const queryConfig = firstArgIsString ? {\n text: arg0,\n values: Array.isArray(args[1]) ? args[1] : void 0\n } : firstArgIsQueryObjectWithText ? {\n ...arg0,\n name: arg0.name,\n text: arg0.text,\n values: arg0.values ?? (Array.isArray(args[1]) ? args[1] : void 0)\n } : void 0;\n const span = handleConfigQuery.call(this, queryConfig);\n if (args.length > 0) {\n const parentSpan = getActiveSpan();\n if (typeof args[args.length - 1] === \"function\") {\n args[args.length - 1] = patchCallback(span, args[args.length - 1]);\n if (parentSpan) {\n args[args.length - 1] = bindCallbackToSpan(parentSpan, args[args.length - 1]);\n }\n } else if (typeof queryConfig?.callback === \"function\") {\n let callback = patchCallback(span, queryConfig.callback);\n if (parentSpan) {\n callback = bindCallbackToSpan(parentSpan, callback);\n }\n args[0].callback = callback;\n }\n }\n let result;\n try {\n result = original.apply(this, args);\n } catch (e) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: getErrorMessage(e) });\n span.end();\n throw e;\n }\n if (result instanceof Promise) {\n return result.then((result2) => {\n span.end();\n return result2;\n }).catch((error) => {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: getErrorMessage(error) });\n span.end();\n return Promise.reject(error);\n });\n }\n return result;\n };\n };\n }\n _getPoolConnectPatch() {\n const plugin = this;\n return (originalConnect) => {\n return function connect(callback) {\n if (shouldSkipInstrumentation() || plugin.getConfig().ignoreConnectSpans) {\n return originalConnect.call(this, callback);\n }\n const span = startInactiveSpan({\n name: SpanNames.POOL_CONNECT,\n kind: SPAN_KIND.CLIENT,\n attributes: getSemanticAttributesFromPoolConnection(this.options)\n });\n let cb = callback;\n if (cb) {\n const parentSpan = getActiveSpan();\n cb = patchCallbackPGPool(span, cb);\n if (parentSpan) {\n cb = bindCallbackToSpan(parentSpan, cb);\n }\n }\n const connectResult = withActiveSpan(span, () => {\n return originalConnect.call(this, cb);\n });\n return handleConnectResult(span, connectResult);\n };\n };\n }\n}\nfunction handleConnectResult(span, connectResult) {\n if (!(connectResult instanceof Promise)) {\n return connectResult;\n }\n const connectResultPromise = connectResult;\n return connectResultPromise.then((result) => {\n span.end();\n return result;\n }).catch((error) => {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: getErrorMessage(error) });\n span.end();\n return Promise.reject(error);\n });\n}\n\nexport { PgInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "var SpanNames = /* @__PURE__ */ ((SpanNames2) => {\n SpanNames2[\"QUERY_PREFIX\"] = \"pg.query\";\n SpanNames2[\"CONNECT\"] = \"pg.connect\";\n SpanNames2[\"POOL_CONNECT\"] = \"pg-pool.connect\";\n return SpanNames2;\n})(SpanNames || {});\n\nexport { SpanNames };\n//# sourceMappingURL=SpanNames.js.map\n", + "var AttributeNames = /* @__PURE__ */ ((AttributeNames2) => {\n AttributeNames2[\"PG_PLAN\"] = \"db.postgresql.plan\";\n AttributeNames2[\"IDLE_TIMEOUT_MILLIS\"] = \"db.postgresql.idle.timeout.millis\";\n AttributeNames2[\"MAX_CLIENT\"] = \"db.postgresql.max.client\";\n return AttributeNames2;\n})(AttributeNames || {});\n\nexport { AttributeNames };\n//# sourceMappingURL=AttributeNames.js.map\n", + "const ATTR_DB_CONNECTION_STRING = \"db.connection_string\";\nconst ATTR_DB_NAME = \"db.name\";\nconst ATTR_DB_STATEMENT = \"db.statement\";\nconst ATTR_DB_SYSTEM = \"db.system\";\nconst ATTR_DB_USER = \"db.user\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\nconst DB_SYSTEM_VALUE_POSTGRESQL = \"postgresql\";\n\nexport { ATTR_DB_CONNECTION_STRING, ATTR_DB_NAME, ATTR_DB_STATEMENT, ATTR_DB_SYSTEM, ATTR_DB_USER, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, DB_SYSTEM_VALUE_POSTGRESQL };\n//# sourceMappingURL=semconv.js.map\n", + "import { getActiveSpan, SPAN_STATUS_ERROR, startInactiveSpan, SPAN_KIND, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { AttributeNames } from './enums/AttributeNames.js';\nimport { SpanNames } from './enums/SpanNames.js';\nimport { DB_SYSTEM_VALUE_POSTGRESQL, ATTR_NET_PEER_PORT, ATTR_NET_PEER_NAME, ATTR_DB_USER, ATTR_DB_CONNECTION_STRING, ATTR_DB_NAME, ATTR_DB_SYSTEM, ATTR_DB_STATEMENT } from './semconv.js';\n\nconst ORIGIN = \"auto.db.otel.postgres\";\nfunction getQuerySpanName(dbName, queryConfig) {\n if (!queryConfig) return SpanNames.QUERY_PREFIX;\n const command = typeof queryConfig.name === \"string\" && queryConfig.name ? queryConfig.name : parseNormalizedOperationName(queryConfig.text);\n return `${SpanNames.QUERY_PREFIX}:${command}${dbName ? ` ${dbName}` : \"\"}`;\n}\nfunction parseNormalizedOperationName(queryText) {\n const trimmedQuery = queryText.trim();\n const indexOfFirstSpace = trimmedQuery.indexOf(\" \");\n let sqlCommand = indexOfFirstSpace === -1 ? trimmedQuery : trimmedQuery.slice(0, indexOfFirstSpace);\n sqlCommand = sqlCommand.toUpperCase();\n return sqlCommand.endsWith(\";\") ? sqlCommand.slice(0, -1) : sqlCommand;\n}\nfunction parseAndMaskConnectionString(connectionString) {\n try {\n const url = new URL(connectionString);\n url.username = \"\";\n url.password = \"\";\n return url.toString();\n } catch {\n return \"postgresql://localhost:5432/\";\n }\n}\nfunction getConnectionString(params) {\n if (\"connectionString\" in params && params.connectionString) {\n return parseAndMaskConnectionString(params.connectionString);\n }\n const host = params.host || \"localhost\";\n const port = params.port || 5432;\n const database = params.database || \"\";\n return `postgresql://${host}:${port}/${database}`;\n}\nfunction getPort(port) {\n if (Number.isInteger(port)) {\n return port;\n }\n return void 0;\n}\nfunction getSemanticAttributesFromConnection(params) {\n return {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_POSTGRESQL,\n [ATTR_DB_NAME]: params.database,\n [ATTR_DB_CONNECTION_STRING]: getConnectionString(params),\n [ATTR_DB_USER]: params.user,\n [ATTR_NET_PEER_NAME]: params.host,\n // required\n [ATTR_NET_PEER_PORT]: getPort(params.port)\n };\n}\nfunction getSemanticAttributesFromPoolConnection(params) {\n let url;\n try {\n url = params.connectionString ? new URL(params.connectionString) : void 0;\n } catch {\n url = void 0;\n }\n return {\n [AttributeNames.IDLE_TIMEOUT_MILLIS]: params.idleTimeoutMillis,\n [AttributeNames.MAX_CLIENT]: params.maxClient,\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_POSTGRESQL,\n [ATTR_DB_NAME]: url?.pathname.slice(1) ?? params.database,\n [ATTR_DB_CONNECTION_STRING]: getConnectionString(params),\n [ATTR_NET_PEER_NAME]: url?.hostname ?? params.host,\n [ATTR_NET_PEER_PORT]: Number(url?.port) || getPort(params.port),\n [ATTR_DB_USER]: url?.username ?? params.user\n };\n}\nfunction shouldSkipInstrumentation() {\n return getActiveSpan() === void 0;\n}\nfunction handleConfigQuery(queryConfig) {\n const { connectionParameters } = this;\n const dbName = connectionParameters.database;\n const spanName = getQuerySpanName(dbName, queryConfig);\n const span = startInactiveSpan({\n name: spanName,\n kind: SPAN_KIND.CLIENT,\n attributes: {\n ...getSemanticAttributesFromConnection(connectionParameters),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n }\n });\n if (!queryConfig) {\n return span;\n }\n if (queryConfig.text) {\n span.setAttribute(ATTR_DB_STATEMENT, queryConfig.text);\n }\n if (typeof queryConfig.name === \"string\") {\n span.setAttribute(AttributeNames.PG_PLAN, queryConfig.name);\n }\n return span;\n}\nfunction patchCallback(span, cb) {\n return function patchedCallback(err, res) {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n cb.call(this, err, res);\n };\n}\nfunction patchCallbackPGPool(span, cb) {\n return function patchedCallback(err, res, done) {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n cb.call(this, err, res, done);\n };\n}\nfunction patchClientConnectCallback(span, cb) {\n return function patchedClientConnectCallback(...args) {\n const err = args[0];\n if (err instanceof Error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n cb.apply(this, args);\n };\n}\nfunction getErrorMessage(e) {\n return typeof e === \"object\" && e !== null && \"message\" in e ? String(e.message) : void 0;\n}\nfunction isObjectWithTextString(it) {\n return typeof it === \"object\" && typeof it?.text === \"string\";\n}\n\nexport { ORIGIN, getConnectionString, getErrorMessage, getQuerySpanName, getSemanticAttributesFromConnection, getSemanticAttributesFromPoolConnection, handleConfigQuery, isObjectWithTextString, parseAndMaskConnectionString, parseNormalizedOperationName, patchCallback, patchCallbackPGPool, patchClientConnectCallback, shouldSkipInstrumentation };\n//# sourceMappingURL=utils.js.map\n", + "import { PgInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Postgres\";\nconst instrumentPostgres = generateInstrumentOnce(\n INTEGRATION_NAME,\n PgInstrumentation,\n (options) => ({\n ignoreConnectSpans: options?.ignoreConnectSpans ?? false\n })\n);\nconst _postgresIntegration = ((options) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentPostgres(options);\n }\n };\n});\nconst postgresIntegration = defineIntegration(_postgresIntegration);\n\nexport { instrumentPostgres, postgresIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { trace, context } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\nimport { InstrumentationNodeModuleFile } from './InstrumentationNodeModuleFile.js';\nimport { ATTR_DB_OPERATION_NAME, ATTR_DB_QUERY_TEXT, ATTR_DB_SYSTEM_NAME, ATTR_DB_RESPONSE_STATUS_CODE, ATTR_ERROR_TYPE } from '@opentelemetry/semantic-conventions';\nimport { SDK_VERSION, debug, replaceExports, startSpanManual, SPAN_STATUS_ERROR, defineIntegration, instrumentPostgresJsSql } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\n\nconst INTEGRATION_NAME = \"PostgresJs\";\nconst SUPPORTED_VERSIONS = [\">=3.0.0 <4\"];\nconst SQL_OPERATION_REGEX = /^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i;\nconst QUERY_FROM_INSTRUMENTED_SQL = /* @__PURE__ */ Symbol.for(\"sentry.query.from.instrumented.sql\");\nconst instrumentPostgresJs = generateInstrumentOnce(\n INTEGRATION_NAME,\n (options) => new PostgresJsInstrumentation({\n requireParentSpan: options?.requireParentSpan ?? true,\n requestHook: options?.requestHook\n })\n);\nclass PostgresJsInstrumentation extends InstrumentationBase {\n constructor(config) {\n super(\"sentry-postgres-js\", SDK_VERSION, config);\n }\n /**\n * Initializes the instrumentation by patching the postgres module.\n * Uses two complementary approaches:\n * 1. Main function wrapper: instruments sql instances created AFTER instrumentation is set up (CJS + ESM)\n * 2. Query.prototype patch: fallback for sql instances created BEFORE instrumentation (CJS only)\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n \"postgres\",\n SUPPORTED_VERSIONS,\n (exports) => {\n try {\n return this._patchPostgres(exports);\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Failed to patch postgres module:\", e);\n return exports;\n }\n },\n (exports) => exports\n );\n [\"src\", \"cf/src\", \"cjs/src\"].forEach((path) => {\n module.files.push(\n new InstrumentationNodeModuleFile(\n `postgres/${path}/query.js`,\n SUPPORTED_VERSIONS,\n this._patchQueryPrototype.bind(this),\n this._unpatchQueryPrototype.bind(this)\n )\n );\n });\n return module;\n }\n /**\n * Patches the postgres module by wrapping the main export function.\n * This intercepts the creation of sql instances and instruments them.\n */\n _patchPostgres(exports) {\n const isFunction = typeof exports === \"function\";\n const Original = isFunction ? exports : exports.default;\n if (typeof Original !== \"function\") {\n DEBUG_BUILD && debug.warn(\"postgres module does not export a function. Skipping instrumentation.\");\n return exports;\n }\n const self = this;\n const WrappedPostgres = function(...args) {\n const sql = Reflect.construct(Original, args);\n if (!sql || typeof sql !== \"function\") {\n DEBUG_BUILD && debug.warn(\"postgres() did not return a valid instance\");\n return sql;\n }\n const config = self.getConfig();\n return instrumentPostgresJsSql(sql, {\n requireParentSpan: config.requireParentSpan,\n requestHook: config.requestHook\n });\n };\n Object.setPrototypeOf(WrappedPostgres, Original);\n Object.setPrototypeOf(WrappedPostgres.prototype, Original.prototype);\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (![\"length\", \"name\", \"prototype\"].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedPostgres, key, descriptor);\n }\n }\n }\n if (isFunction) {\n return WrappedPostgres;\n } else {\n replaceExports(exports, \"default\", WrappedPostgres);\n return exports;\n }\n }\n /**\n * Determines whether a span should be created based on the current context.\n * If `requireParentSpan` is set to true in the configuration, a span will\n * only be created if there is a parent span available.\n */\n _shouldCreateSpans() {\n const config = this.getConfig();\n const hasParentSpan = trace.getSpan(context.active()) !== void 0;\n return hasParentSpan || !config.requireParentSpan;\n }\n /**\n * Extracts DB operation name from SQL query and sets it on the span.\n */\n _setOperationName(span, sanitizedQuery, command) {\n if (command) {\n span.setAttribute(ATTR_DB_OPERATION_NAME, command);\n return;\n }\n const operationMatch = sanitizedQuery?.match(SQL_OPERATION_REGEX);\n if (operationMatch?.[1]) {\n span.setAttribute(ATTR_DB_OPERATION_NAME, operationMatch[1].toUpperCase());\n }\n }\n /**\n * Reconstructs the full SQL query from template strings with PostgreSQL placeholders.\n *\n * For sql`SELECT * FROM users WHERE id = ${123} AND name = ${'foo'}`:\n * strings = [\"SELECT * FROM users WHERE id = \", \" AND name = \", \"\"]\n * returns: \"SELECT * FROM users WHERE id = $1 AND name = $2\"\n */\n _reconstructQuery(strings) {\n if (!strings?.length) {\n return void 0;\n }\n if (strings.length === 1) {\n return strings[0] || void 0;\n }\n return strings.reduce((acc, str, i) => i === 0 ? str : `${acc}$${i}${str}`, \"\");\n }\n /**\n * Sanitize SQL query as per the OTEL semantic conventions\n * https://opentelemetry.io/docs/specs/semconv/database/database-spans/#sanitization-of-dbquerytext\n *\n * PostgreSQL $n placeholders are preserved per OTEL spec - they're parameterized queries,\n * not sensitive literals. Only actual values (strings, numbers, booleans) are sanitized.\n */\n _sanitizeSqlQuery(sqlQuery) {\n if (!sqlQuery) {\n return \"Unknown SQL Query\";\n }\n return sqlQuery.replace(/--.*$/gm, \"\").replace(/\\/\\*[\\s\\S]*?\\*\\//g, \"\").replace(/;\\s*$/, \"\").replace(/\\s+/g, \" \").trim().replace(/\\bX'[0-9A-Fa-f]*'/gi, \"?\").replace(/\\bB'[01]*'/gi, \"?\").replace(/'(?:[^']|'')*'/g, \"?\").replace(/\\b0x[0-9A-Fa-f]+/gi, \"?\").replace(/\\b(?:TRUE|FALSE)\\b/gi, \"?\").replace(/-?\\b\\d+\\.?\\d*[eE][+-]?\\d+\\b/g, \"?\").replace(/-?\\b\\d+\\.\\d+\\b/g, \"?\").replace(/-?\\.\\d+\\b/g, \"?\").replace(/(? {\n addOriginToSpan(span, \"auto.db.postgresjs\");\n span.setAttributes({\n [ATTR_DB_SYSTEM_NAME]: \"postgres\",\n [ATTR_DB_QUERY_TEXT]: sanitizedSqlQuery\n });\n const config = self.getConfig();\n const { requestHook } = config;\n if (requestHook) {\n safeExecuteInTheMiddle(\n () => requestHook(span, sanitizedSqlQuery, void 0),\n (e) => {\n if (e) {\n span.setAttribute(\"sentry.hook.error\", \"requestHook failed\");\n DEBUG_BUILD && debug.error(`Error in requestHook for ${INTEGRATION_NAME} integration:`, e);\n }\n },\n true\n );\n }\n const originalResolve = this.resolve;\n this.resolve = new Proxy(originalResolve, {\n apply: (resolveTarget, resolveThisArg, resolveArgs) => {\n try {\n self._setOperationName(span, sanitizedSqlQuery, resolveArgs?.[0]?.command);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Error ending span in resolve callback:\", e);\n }\n return Reflect.apply(resolveTarget, resolveThisArg, resolveArgs);\n }\n });\n const originalReject = this.reject;\n this.reject = new Proxy(originalReject, {\n apply: (rejectTarget, rejectThisArg, rejectArgs) => {\n try {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: rejectArgs?.[0]?.message || \"unknown_error\"\n });\n span.setAttribute(ATTR_DB_RESPONSE_STATUS_CODE, rejectArgs?.[0]?.code || \"unknown\");\n span.setAttribute(ATTR_ERROR_TYPE, rejectArgs?.[0]?.name || \"unknown\");\n self._setOperationName(span, sanitizedSqlQuery);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Error ending span in reject callback:\", e);\n }\n return Reflect.apply(rejectTarget, rejectThisArg, rejectArgs);\n }\n });\n try {\n return originalHandle.apply(this, args);\n } catch (e) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: e instanceof Error ? e.message : \"unknown_error\"\n });\n span.end();\n throw e;\n }\n }\n );\n };\n moduleExports.Query.prototype.handle.__sentry_original__ = originalHandle;\n return moduleExports;\n }\n /**\n * Restores the original Query.prototype.handle method.\n */\n _unpatchQueryPrototype(moduleExports) {\n if (moduleExports.Query.prototype.handle.__sentry_original__) {\n moduleExports.Query.prototype.handle = moduleExports.Query.prototype.handle.__sentry_original__;\n }\n return moduleExports;\n }\n}\nconst _postgresJsIntegration = ((options) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentPostgresJs(options);\n }\n };\n});\nconst postgresJsIntegration = defineIntegration(_postgresJsIntegration);\n\nexport { PostgresJsInstrumentation, instrumentPostgresJs, postgresJsIntegration };\n//# sourceMappingURL=postgresjs.js.map\n", + "import { trace, SpanKind, TraceFlags, context } from '@opentelemetry/api';\nimport { defineIntegration, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, consoleSandbox } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { PrismaInstrumentation } from './vendored/instrumentation.js';\n\nconst INTEGRATION_NAME = \"Prisma\";\nfunction isPrismaV6TracingHelper(helper) {\n return !!helper && typeof helper === \"object\" && \"dispatchEngineSpans\" in helper;\n}\nfunction getPrismaTracingHelper() {\n const prismaInstrumentationObject = globalThis.PRISMA_INSTRUMENTATION;\n const prismaTracingHelper = prismaInstrumentationObject && typeof prismaInstrumentationObject === \"object\" && \"helper\" in prismaInstrumentationObject ? prismaInstrumentationObject.helper : void 0;\n return prismaTracingHelper;\n}\nclass SentryPrismaInteropInstrumentation extends PrismaInstrumentation {\n constructor(options) {\n super(options?.instrumentationConfig);\n }\n enable() {\n super.enable();\n const prismaTracingHelper = getPrismaTracingHelper();\n if (isPrismaV6TracingHelper(prismaTracingHelper)) {\n prismaTracingHelper.createEngineSpan = (engineSpanEvent) => {\n const tracer = trace.getTracer(\"prismaV5Compatibility\");\n const initialIdGenerator = tracer._idGenerator;\n if (!initialIdGenerator) {\n consoleSandbox(() => {\n console.warn(\n \"[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!\"\n );\n });\n return;\n }\n try {\n engineSpanEvent.spans.forEach((engineSpan) => {\n const kind = engineSpan.kind === \"client\" ? SpanKind.CLIENT : SpanKind.INTERNAL;\n const parentSpanId = engineSpan.parent_span_id;\n const spanId = engineSpan.span_id;\n const traceId = engineSpan.trace_id;\n const links = engineSpan.links?.map((link) => {\n return {\n context: {\n traceId: link.trace_id,\n spanId: link.span_id,\n traceFlags: TraceFlags.SAMPLED\n }\n };\n });\n const ctx = trace.setSpanContext(context.active(), {\n traceId,\n spanId: parentSpanId,\n traceFlags: TraceFlags.SAMPLED\n });\n context.with(ctx, () => {\n const temporaryIdGenerator = {\n generateTraceId: () => {\n return traceId;\n },\n generateSpanId: () => {\n return spanId;\n }\n };\n tracer._idGenerator = temporaryIdGenerator;\n const span = tracer.startSpan(engineSpan.name, {\n kind,\n links,\n startTime: engineSpan.start_time,\n attributes: engineSpan.attributes\n });\n span.end(engineSpan.end_time);\n tracer._idGenerator = initialIdGenerator;\n });\n });\n } finally {\n tracer._idGenerator = initialIdGenerator;\n }\n };\n }\n }\n}\nconst instrumentPrisma = generateInstrumentOnce(INTEGRATION_NAME, (options) => {\n return new SentryPrismaInteropInstrumentation(options);\n});\nconst prismaIntegration = defineIntegration((options) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentPrisma(options);\n },\n setup(client) {\n if (!getPrismaTracingHelper()) {\n return;\n }\n client.on(\"spanStart\", (span) => {\n const spanJSON = spanToJSON(span);\n if (spanJSON.description?.startsWith(\"prisma:\")) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, \"auto.db.otel.prisma\");\n }\n if ((spanJSON.description === \"prisma:engine:db_query\" || spanJSON.description === \"prisma:client:db_query\") && spanJSON.data[\"db.query.text\"]) {\n span.updateName(spanJSON.data[\"db.query.text\"]);\n }\n if (spanJSON.description === \"prisma:engine:db_query\" && !spanJSON.data[\"db.system\"]) {\n span.setAttribute(\"db.system\", \"prisma\");\n }\n });\n }\n };\n});\n\nexport { instrumentPrisma, prismaIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { ActiveTracingHelper } from './active-tracing-helper.js';\nimport { NAME, VERSION, MODULE_NAME, SUPPORTED_MODULE_VERSIONS } from './constants.js';\nimport { setGlobalTracingHelper, clearGlobalTracingHelper, getGlobalTracingHelper } from './global.js';\n\nclass PrismaInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(NAME, VERSION, config);\n }\n init() {\n const module = new InstrumentationNodeModuleDefinition(MODULE_NAME, SUPPORTED_MODULE_VERSIONS);\n return [module];\n }\n enable() {\n const config = this._config;\n setGlobalTracingHelper(\n new ActiveTracingHelper({\n ignoreSpanTypes: config.ignoreSpanTypes ?? []\n })\n );\n }\n disable() {\n clearGlobalTracingHelper();\n }\n isEnabled() {\n return getGlobalTracingHelper() !== void 0;\n }\n}\n\nexport { PrismaInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { getActiveSpan, startInactiveSpan, startSpanManual, SPAN_KIND, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\n\nconst showAllTraces = process.env.PRISMA_SHOW_ALL_TRACES === \"true\";\nconst nonSampledTraceParent = `00-10-10-00`;\nconst PRISMA_ORIGIN = \"auto.db.otel.prisma\";\nfunction buildSpanAttributes(name, attributes) {\n const merged = {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: PRISMA_ORIGIN\n };\n if (name === \"prisma:engine:db_query\" && merged[\"db.system\"] == null) {\n merged[\"db.system\"] = \"prisma\";\n }\n return merged;\n}\nfunction buildSpanName(name, attributes) {\n const queryText = attributes[\"db.query.text\"];\n if ((name === \"prisma:engine:db_query\" || name === \"prisma:client:db_query\") && typeof queryText === \"string\") {\n return queryText;\n }\n return name;\n}\nclass ActiveTracingHelper {\n constructor({ ignoreSpanTypes }) {\n this.ignoreSpanTypes = ignoreSpanTypes;\n }\n isEnabled() {\n return true;\n }\n getTraceParent(span) {\n const spanContext = (span ?? getActiveSpan())?.spanContext();\n if (spanContext) {\n return `00-${spanContext.traceId}-${spanContext.spanId}-0${spanContext.traceFlags}`;\n }\n return nonSampledTraceParent;\n }\n dispatchEngineSpans(spans) {\n const linkIds = /* @__PURE__ */ new Map();\n const roots = spans.filter((span) => span.parentId === null);\n for (const root of roots) {\n dispatchEngineSpan(root, spans, linkIds, this.ignoreSpanTypes);\n }\n }\n getActiveContext() {\n return getActiveSpan();\n }\n runInChildSpan(nameOrOptions, callback) {\n const options = typeof nameOrOptions === \"string\" ? { name: nameOrOptions } : nameOrOptions;\n if (options.internal && !showAllTraces) {\n return callback();\n }\n const name = `prisma:client:${options.name}`;\n if (shouldIgnoreSpan(name, this.ignoreSpanTypes)) {\n return callback();\n }\n const parentSpan = getActiveSpan();\n const attributes = buildSpanAttributes(name, options.attributes);\n const spanOptions = {\n name: buildSpanName(name, attributes),\n attributes,\n kind: options.kind,\n links: options.links,\n startTime: options.startTime,\n parentSpan\n };\n if (options.active === false) {\n const span = startInactiveSpan(spanOptions);\n return endSpan(span, () => callback(span, parentSpan));\n }\n return startSpanManual(spanOptions, (span) => endSpan(span, () => callback(span, parentSpan)));\n }\n}\nfunction dispatchEngineSpan(engineSpan, allSpans, linkIds, ignoreSpanTypes) {\n if (shouldIgnoreSpan(engineSpan.name, ignoreSpanTypes)) {\n return;\n }\n const attributes = buildSpanAttributes(engineSpan.name, engineSpan.attributes);\n startSpanManual(\n {\n name: buildSpanName(engineSpan.name, attributes),\n attributes,\n kind: engineSpan.kind === \"client\" ? SPAN_KIND.CLIENT : SPAN_KIND.INTERNAL,\n startTime: engineSpan.startTime\n },\n (span) => {\n linkIds.set(engineSpan.id, span.spanContext().spanId);\n if (engineSpan.links) {\n span.addLinks(\n engineSpan.links.flatMap((link) => {\n const linkedId = linkIds.get(link);\n if (!linkedId) {\n return [];\n }\n return {\n context: {\n spanId: linkedId,\n traceId: span.spanContext().traceId,\n traceFlags: span.spanContext().traceFlags\n }\n };\n })\n );\n }\n const children = allSpans.filter((s) => s.parentId === engineSpan.id);\n for (const child of children) {\n dispatchEngineSpan(child, allSpans, linkIds, ignoreSpanTypes);\n }\n span.end(engineSpan.endTime);\n }\n );\n}\nfunction endSpan(span, run) {\n let result;\n try {\n result = run();\n } catch (reason) {\n span.end();\n throw reason;\n }\n if (isPromiseLike(result)) {\n return result.then(\n (value) => {\n span.end();\n return value;\n },\n (reason) => {\n span.end();\n throw reason;\n }\n );\n }\n span.end();\n return result;\n}\nfunction isPromiseLike(value) {\n return value != null && typeof value[\"then\"] === \"function\";\n}\nfunction shouldIgnoreSpan(spanName, ignoreSpanTypes) {\n return ignoreSpanTypes.some((pattern) => typeof pattern === \"string\" ? pattern === spanName : pattern.test(spanName));\n}\n\nexport { ActiveTracingHelper };\n//# sourceMappingURL=active-tracing-helper.js.map\n", + "import { SDK_VERSION } from '@sentry/core';\n\nconst VERSION = SDK_VERSION;\nconst NAME = \"@sentry/instrumentation-prisma\";\nconst MODULE_NAME = \"@prisma/client\";\nconst SUPPORTED_MODULE_VERSIONS = [\">=5.0.0\"];\n\nexport { MODULE_NAME, NAME, SUPPORTED_MODULE_VERSIONS, VERSION };\n//# sourceMappingURL=constants.js.map\n", + "const majorVersion = \"7\";\nconst GLOBAL_INSTRUMENTATION_KEY = \"PRISMA_INSTRUMENTATION\";\nconst GLOBAL_VERSIONED_INSTRUMENTATION_KEY = `V${majorVersion}_PRISMA_INSTRUMENTATION`;\nconst globalThisWithPrismaInstrumentation = globalThis;\nfunction getGlobalTracingHelper() {\n const versionedGlobal = globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY];\n if (versionedGlobal?.helper) {\n return versionedGlobal.helper;\n }\n const fallbackGlobal = globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY];\n return fallbackGlobal?.helper;\n}\nfunction setGlobalTracingHelper(helper) {\n const globalValue = { helper };\n globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY] = globalValue;\n globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY] = globalValue;\n}\nfunction clearGlobalTracingHelper() {\n globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY] = void 0;\n globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY] = void 0;\n}\n\nexport { clearGlobalTracingHelper, getGlobalTracingHelper, setGlobalTracingHelper };\n//# sourceMappingURL=global.js.map\n", + "import * as api from '@opentelemetry/api';\nimport { setHttpServerSpanRouteAttribute } from '../../../../utils/setHttpServerSpanRouteAttribute.js';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, startSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { AttributeNames } from './enums/AttributeNames.js';\nimport { HapiComponentName, handlerPatched } from './internal-types.js';\nimport { getPluginFromInput, isLifecycleExtType, isDirectExtInput, isLifecycleExtEventObj, getPluginName, isPatchableExtMethod, getExtMetadata, getRouteMetadata } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-hapi\";\nclass HapiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return new InstrumentationNodeModuleDefinition(\n HapiComponentName,\n [\">=17.0.0 <22\"],\n (module) => {\n const moduleExports = module[Symbol.toStringTag] === \"Module\" ? module.default : module;\n if (!isWrapped(moduleExports.server)) {\n this._wrap(moduleExports, \"server\", this._getServerPatch.bind(this));\n }\n if (!isWrapped(moduleExports.Server)) {\n this._wrap(moduleExports, \"Server\", this._getServerPatch.bind(this));\n }\n return moduleExports;\n },\n (module) => {\n const moduleExports = module[Symbol.toStringTag] === \"Module\" ? module.default : module;\n this._massUnwrap([moduleExports], [\"server\", \"Server\"]);\n }\n );\n }\n /**\n * Patches the Hapi.server and Hapi.Server functions in order to instrument\n * the server.route, server.ext, and server.register functions via calls to the\n * @function _getServerRoutePatch, @function _getServerExtPatch, and\n * @function _getServerRegisterPatch functions\n * @param original - the original Hapi Server creation function\n */\n _getServerPatch(original) {\n const instrumentation = this;\n const self = this;\n return function server(opts) {\n const newServer = original.apply(this, [opts]);\n self._wrap(newServer, \"route\", (originalRouter) => {\n return instrumentation._getServerRoutePatch.bind(instrumentation)(originalRouter);\n });\n self._wrap(newServer, \"ext\", (originalExtHandler) => {\n return instrumentation._getServerExtPatch.bind(instrumentation)(originalExtHandler);\n });\n self._wrap(newServer, \"register\", instrumentation._getServerRegisterPatch.bind(instrumentation));\n return newServer;\n };\n }\n /**\n * Patches the plugin register function used by the Hapi Server. This function\n * goes through each plugin that is being registered and adds instrumentation\n * via a call to the @function _wrapRegisterHandler function.\n * @param {RegisterFunction} original - the original register function which\n * registers each plugin on the server\n */\n _getServerRegisterPatch(original) {\n const instrumentation = this;\n return function register(pluginInput, options) {\n if (Array.isArray(pluginInput)) {\n for (const pluginObj of pluginInput) {\n const plugin = getPluginFromInput(pluginObj);\n instrumentation._wrapRegisterHandler(plugin);\n }\n } else {\n const plugin = getPluginFromInput(pluginInput);\n instrumentation._wrapRegisterHandler(plugin);\n }\n return original.apply(this, [pluginInput, options]);\n };\n }\n /**\n * Patches the Server.ext function which adds extension methods to the specified\n * point along the request lifecycle. This function accepts the full range of\n * accepted input into the standard Hapi `server.ext` function. For each extension,\n * it adds instrumentation to the handler via a call to the @function _wrapExtMethods\n * function.\n * @param original - the original ext function which adds the extension method to the server\n * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n * for adding this server extension. Else, signifies that the extension was added directly\n */\n _getServerExtPatch(original, pluginName) {\n const instrumentation = this;\n return function ext(...args) {\n if (Array.isArray(args[0])) {\n const eventsList = args[0];\n for (let i = 0; i < eventsList.length; i++) {\n const eventObj = eventsList[i];\n if (isLifecycleExtType(eventObj.type)) {\n const lifecycleEventObj = eventObj;\n const handler = instrumentation._wrapExtMethods(lifecycleEventObj.method, eventObj.type, pluginName);\n lifecycleEventObj.method = handler;\n eventsList[i] = lifecycleEventObj;\n }\n }\n return original.apply(this, args);\n } else if (isDirectExtInput(args)) {\n const extInput = args;\n const method = extInput[1];\n const handler = instrumentation._wrapExtMethods(method, extInput[0], pluginName);\n return original.apply(this, [extInput[0], handler, extInput[2]]);\n } else if (isLifecycleExtEventObj(args[0])) {\n const lifecycleEventObj = args[0];\n const handler = instrumentation._wrapExtMethods(lifecycleEventObj.method, lifecycleEventObj.type, pluginName);\n lifecycleEventObj.method = handler;\n return original.call(this, lifecycleEventObj);\n }\n return original.apply(this, args);\n };\n }\n /**\n * Patches the Server.route function. This function accepts either one or an array\n * of Hapi.ServerRoute objects and adds instrumentation on each route via a call to\n * the @function _wrapRouteHandler function.\n * @param {HapiServerRouteInputMethod} original - the original route function which adds\n * the route to the server\n * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n * for adding this server route. Else, signifies that the route was added directly\n */\n _getServerRoutePatch(original, pluginName) {\n const instrumentation = this;\n return function route(route) {\n if (Array.isArray(route)) {\n for (let i = 0; i < route.length; i++) {\n const newRoute = instrumentation._wrapRouteHandler.call(instrumentation, route[i], pluginName);\n route[i] = newRoute;\n }\n } else {\n route = instrumentation._wrapRouteHandler.call(instrumentation, route, pluginName);\n }\n return original.apply(this, [route]);\n };\n }\n /**\n * Wraps newly registered plugins to add instrumentation to the plugin's clone of\n * the original server. Specifically, wraps the server.route and server.ext functions\n * via calls to @function _getServerRoutePatch and @function _getServerExtPatch\n * @param {Hapi.Plugin} plugin - the new plugin which is being instrumented\n */\n _wrapRegisterHandler(plugin) {\n const instrumentation = this;\n const pluginName = getPluginName(plugin);\n const oldRegister = plugin.register;\n const self = this;\n const newRegisterHandler = function(server, options) {\n self._wrap(server, \"route\", (original) => {\n return instrumentation._getServerRoutePatch.bind(instrumentation)(original, pluginName);\n });\n self._wrap(server, \"ext\", (originalExtHandler) => {\n return instrumentation._getServerExtPatch.bind(instrumentation)(originalExtHandler, pluginName);\n });\n return oldRegister.call(this, server, options);\n };\n plugin.register = newRegisterHandler;\n }\n /**\n * Wraps request extension methods to add instrumentation to each new extension handler.\n * Patches each individual extension in order to create the\n * span and propagate context. It does not create spans when there is no parent span.\n * @param {PatchableExtMethod | PatchableExtMethod[]} method - the request extension\n * handler which is being instrumented\n * @param {Hapi.ServerRequestExtType} extPoint - the point in the Hapi request lifecycle\n * which this extension targets\n * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n * for adding this server route. Else, signifies that the route was added directly\n */\n _wrapExtMethods(method, extPoint, pluginName) {\n const instrumentation = this;\n if (method instanceof Array) {\n for (let i = 0; i < method.length; i++) {\n method[i] = instrumentation._wrapExtMethods(method[i], extPoint);\n }\n return method;\n } else if (isPatchableExtMethod(method)) {\n if (method[handlerPatched] === true) return method;\n method[handlerPatched] = true;\n const newHandler = function(...params) {\n if (api.trace.getSpan(api.context.active()) === void 0) {\n return method.apply(this, params);\n }\n const metadata = getExtMetadata(extPoint, pluginName, method.name);\n return startSpan(\n {\n name: metadata.name,\n op: `${metadata.attributes[AttributeNames.HAPI_TYPE]}.hapi`,\n attributes: {\n ...metadata.attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.hapi\"\n }\n },\n () => method.apply(void 0, params)\n );\n };\n return newHandler;\n }\n return method;\n }\n /**\n * Patches each individual route handler method in order to create the\n * span and propagate context. It does not create spans when there is no parent span.\n * @param {PatchableServerRoute} route - the route handler which is being instrumented\n * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n * for adding this server route. Else, signifies that the route was added directly\n */\n _wrapRouteHandler(route, pluginName) {\n if (route[handlerPatched] === true) return route;\n route[handlerPatched] = true;\n const wrapHandler = (oldHandler) => {\n return function(...params) {\n if (api.trace.getSpan(api.context.active()) === void 0) {\n return oldHandler.call(this, ...params);\n }\n setHttpServerSpanRouteAttribute(route.path);\n const metadata = getRouteMetadata(route, pluginName);\n return startSpan(\n {\n name: metadata.name,\n op: `${metadata.attributes[AttributeNames.HAPI_TYPE]}.hapi`,\n attributes: {\n ...metadata.attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.hapi\"\n }\n },\n () => oldHandler.call(this, ...params)\n );\n };\n };\n if (typeof route.handler === \"function\") {\n route.handler = wrapHandler(route.handler);\n } else if (typeof route.options === \"function\") {\n const oldOptions = route.options;\n route.options = function(server) {\n const options = oldOptions(server);\n if (typeof options.handler === \"function\") {\n options.handler = wrapHandler(options.handler);\n }\n return options;\n };\n } else if (typeof route.options?.handler === \"function\") {\n route.options.handler = wrapHandler(route.options.handler);\n }\n return route;\n }\n}\n\nexport { HapiInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "var AttributeNames = /* @__PURE__ */ ((AttributeNames2) => {\n AttributeNames2[\"HAPI_TYPE\"] = \"hapi.type\";\n AttributeNames2[\"PLUGIN_NAME\"] = \"hapi.plugin.name\";\n AttributeNames2[\"EXT_TYPE\"] = \"server.ext.type\";\n return AttributeNames2;\n})(AttributeNames || {});\n\nexport { AttributeNames };\n//# sourceMappingURL=AttributeNames.js.map\n", + "const HapiComponentName = \"@hapi/hapi\";\nconst handlerPatched = /* @__PURE__ */ Symbol(\"hapi-handler-patched\");\nconst HapiLayerType = {\n ROUTER: \"router\",\n PLUGIN: \"plugin\",\n EXT: \"server.ext\"\n};\nconst HapiLifecycleMethodNames = /* @__PURE__ */ new Set([\n \"onPreAuth\",\n \"onCredentials\",\n \"onPostAuth\",\n \"onPreHandler\",\n \"onPostHandler\",\n \"onPreResponse\",\n \"onRequest\"\n]);\n\nexport { HapiComponentName, HapiLayerType, HapiLifecycleMethodNames, handlerPatched };\n//# sourceMappingURL=internal-types.js.map\n", + "import { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport { ATTR_HTTP_METHOD } from './semconv.js';\nimport { HapiLifecycleMethodNames, HapiLayerType } from './internal-types.js';\nimport { AttributeNames } from './enums/AttributeNames.js';\n\nfunction getPluginName(plugin) {\n if (plugin.name) {\n return plugin.name;\n } else {\n return plugin.pkg.name;\n }\n}\nconst isLifecycleExtType = (variableToCheck) => {\n return typeof variableToCheck === \"string\" && HapiLifecycleMethodNames.has(variableToCheck);\n};\nconst isLifecycleExtEventObj = (variableToCheck) => {\n const event = variableToCheck?.type;\n return event !== void 0 && isLifecycleExtType(event);\n};\nconst isDirectExtInput = (variableToCheck) => {\n return Array.isArray(variableToCheck) && variableToCheck.length <= 3 && isLifecycleExtType(variableToCheck[0]) && typeof variableToCheck[1] === \"function\";\n};\nconst isPatchableExtMethod = (variableToCheck) => {\n return !Array.isArray(variableToCheck);\n};\nconst getRouteMetadata = (route, pluginName) => {\n const attributes = {\n [ATTR_HTTP_ROUTE]: route.path,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_HTTP_METHOD]: route.method\n };\n let name;\n if (pluginName) {\n attributes[AttributeNames.HAPI_TYPE] = HapiLayerType.PLUGIN;\n attributes[AttributeNames.PLUGIN_NAME] = pluginName;\n name = `${pluginName}: route - ${route.path}`;\n } else {\n attributes[AttributeNames.HAPI_TYPE] = HapiLayerType.ROUTER;\n name = `route - ${route.path}`;\n }\n return { attributes, name };\n};\nconst getExtMetadata = (extPoint, pluginName, methodName) => {\n let baseName = `ext - ${extPoint}`;\n if (methodName && methodName !== \"method\") {\n baseName = `ext - ${extPoint} - ${methodName}`;\n }\n if (pluginName) {\n return {\n attributes: {\n [AttributeNames.EXT_TYPE]: extPoint,\n [AttributeNames.HAPI_TYPE]: HapiLayerType.EXT,\n [AttributeNames.PLUGIN_NAME]: pluginName\n },\n name: `${pluginName}: ${baseName}`\n };\n }\n return {\n attributes: {\n [AttributeNames.EXT_TYPE]: extPoint,\n [AttributeNames.HAPI_TYPE]: HapiLayerType.EXT\n },\n name: baseName\n };\n};\nconst getPluginFromInput = (pluginObj) => {\n if (\"plugin\" in pluginObj) {\n if (\"plugin\" in pluginObj.plugin) {\n return pluginObj.plugin.plugin;\n }\n return pluginObj.plugin;\n }\n return pluginObj;\n};\n\nexport { getExtMetadata, getPluginFromInput, getPluginName, getRouteMetadata, isDirectExtInput, isLifecycleExtEventObj, isLifecycleExtType, isPatchableExtMethod };\n//# sourceMappingURL=utils.js.map\n", + "const ATTR_HTTP_METHOD = \"http.method\";\n\nexport { ATTR_HTTP_METHOD };\n//# sourceMappingURL=semconv.js.map\n", + "import { HapiInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration, SDK_VERSION, getIsolationScope, getDefaultIsolationScope, debug, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../../debug-build.js';\n\nconst INTEGRATION_NAME = \"Hapi\";\nconst instrumentHapi = generateInstrumentOnce(INTEGRATION_NAME, () => new HapiInstrumentation());\nconst _hapiIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentHapi();\n }\n };\n});\nconst hapiIntegration = defineIntegration(_hapiIntegration);\nfunction isErrorEvent(event) {\n return !!(event && typeof event === \"object\" && \"error\" in event && event.error);\n}\nfunction sendErrorToSentry(errorData) {\n captureException(errorData, {\n mechanism: {\n type: \"auto.function.hapi\",\n handled: false\n }\n });\n}\nconst hapiErrorPlugin = {\n name: \"SentryHapiErrorPlugin\",\n version: SDK_VERSION,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register: async function(serverArg) {\n const server = serverArg;\n server.events.on({ name: \"request\", channels: [\"error\"] }, (request, event) => {\n if (getIsolationScope() !== getDefaultIsolationScope()) {\n const route = request.route;\n if (route.path) {\n getIsolationScope().setTransactionName(`${route.method.toUpperCase()} ${route.path}`);\n }\n } else {\n DEBUG_BUILD && debug.warn(\"Isolation scope is still the default isolation scope - skipping setting transactionName\");\n }\n if (isErrorEvent(event)) {\n sendErrorToSentry(event.error);\n }\n });\n }\n};\nasync function setupHapiErrorHandler(server) {\n await server.register(hapiErrorPlugin);\n ensureIsWrapped(server.register, \"hapi\");\n}\n\nexport { hapiErrorPlugin, hapiIntegration, instrumentHapi, setupHapiErrorHandler };\n//# sourceMappingURL=index.js.map\n", + "import { ATTR_HTTP_ROUTE, ATTR_HTTP_REQUEST_METHOD } from '@opentelemetry/semantic-conventions';\nimport { defineIntegration, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getIsolationScope, getDefaultIsolationScope, debug, httpRequestToRequestData, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../../debug-build.js';\nimport { AttributeNames } from './constants.js';\nimport { HonoInstrumentation } from './instrumentation.js';\n\nconst INTEGRATION_NAME = \"Hono\";\nfunction addHonoSpanAttributes(span) {\n const attributes = spanToJSON(span).data;\n const type = attributes[AttributeNames.HONO_TYPE];\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n return;\n }\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.hono\",\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.hono`\n });\n const name = attributes[AttributeNames.HONO_NAME];\n if (typeof name === \"string\") {\n span.updateName(name);\n }\n if (getIsolationScope() === getDefaultIsolationScope()) {\n DEBUG_BUILD && debug.warn(\"Isolation scope is default isolation scope - skipping setting transactionName\");\n return;\n }\n const route = attributes[ATTR_HTTP_ROUTE];\n const method = attributes[ATTR_HTTP_REQUEST_METHOD];\n if (typeof route === \"string\" && typeof method === \"string\") {\n getIsolationScope().setTransactionName(`${method} ${route}`);\n }\n}\nconst instrumentHono = generateInstrumentOnce(\n INTEGRATION_NAME,\n () => new HonoInstrumentation({\n responseHook: (span) => {\n addHonoSpanAttributes(span);\n }\n })\n);\nconst _honoIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentHono();\n }\n };\n});\nconst honoIntegration = defineIntegration(_honoIntegration);\nfunction honoRequestHandler() {\n return async function sentryRequestMiddleware(context, next) {\n const normalizedRequest = httpRequestToRequestData(context.req);\n getIsolationScope().setSDKProcessingMetadata({ normalizedRequest });\n await next();\n };\n}\nfunction defaultShouldHandleError(context) {\n const statusCode = context.res.status;\n return statusCode >= 500;\n}\nfunction honoErrorHandler(options) {\n return async function sentryErrorMiddleware(context, next) {\n await next();\n const shouldHandleError = options?.shouldHandleError || defaultShouldHandleError;\n if (shouldHandleError(context)) {\n context.res.sentry = captureException(context.error, {\n mechanism: {\n type: \"auto.middleware.hono\",\n handled: false\n }\n });\n }\n };\n}\nfunction setupHonoErrorHandler(app, options) {\n app.use(honoRequestHandler());\n app.use(honoErrorHandler(options));\n ensureIsWrapped(app.use, \"hono\");\n}\n\nexport { honoIntegration, instrumentHono, setupHonoErrorHandler };\n//# sourceMappingURL=index.js.map\n", + "const AttributeNames = {\n HONO_TYPE: \"hono.type\",\n HONO_NAME: \"hono.name\"\n};\nconst HonoTypes = {\n MIDDLEWARE: \"middleware\",\n REQUEST_HANDLER: \"request_handler\"\n};\n\nexport { AttributeNames, HonoTypes };\n//# sourceMappingURL=constants.js.map\n", + "import { context, trace, SpanStatusCode } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { isThenable } from '@sentry/core';\nimport { AttributeNames, HonoTypes } from './constants.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-hono\";\nconst PACKAGE_VERSION = \"0.0.1\";\nclass HonoInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, PACKAGE_VERSION, config);\n }\n /**\n * Initialize the instrumentation.\n */\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\"hono\", [\">=4.0.0 <5\"], (moduleExports) => this._patch(moduleExports))\n ];\n }\n /**\n * Patches the module exports to instrument Hono.\n */\n _patch(moduleExports) {\n const instrumentation = this;\n class WrappedHono extends moduleExports.Hono {\n constructor(...args) {\n super(...args);\n instrumentation._wrap(this, \"get\", instrumentation._patchHandler());\n instrumentation._wrap(this, \"post\", instrumentation._patchHandler());\n instrumentation._wrap(this, \"put\", instrumentation._patchHandler());\n instrumentation._wrap(this, \"delete\", instrumentation._patchHandler());\n instrumentation._wrap(this, \"options\", instrumentation._patchHandler());\n instrumentation._wrap(this, \"patch\", instrumentation._patchHandler());\n instrumentation._wrap(this, \"all\", instrumentation._patchHandler());\n instrumentation._wrap(this, \"on\", instrumentation._patchOnHandler());\n instrumentation._wrap(this, \"use\", instrumentation._patchMiddlewareHandler());\n }\n }\n try {\n moduleExports.Hono = WrappedHono;\n } catch {\n return { ...moduleExports, Hono: WrappedHono };\n }\n return moduleExports;\n }\n /**\n * Patches the route handler to instrument it.\n */\n _patchHandler() {\n const instrumentation = this;\n return function(original) {\n return function wrappedHandler(...args) {\n if (typeof args[0] === \"string\") {\n const path = args[0];\n if (args.length === 1) {\n return original.apply(this, [path]);\n }\n const handlers = args.slice(1);\n return original.apply(this, [\n path,\n ...handlers.map((handler) => instrumentation._wrapHandler(handler))\n ]);\n }\n return original.apply(\n this,\n args.map((handler) => instrumentation._wrapHandler(handler))\n );\n };\n };\n }\n /**\n * Patches the 'on' handler to instrument it.\n */\n _patchOnHandler() {\n const instrumentation = this;\n return function(original) {\n return function wrappedHandler(...args) {\n const handlers = args.slice(2);\n return original.apply(this, [\n ...args.slice(0, 2),\n ...handlers.map((handler) => instrumentation._wrapHandler(handler))\n ]);\n };\n };\n }\n /**\n * Patches the middleware handler to instrument it.\n */\n _patchMiddlewareHandler() {\n const instrumentation = this;\n return function(original) {\n return function wrappedHandler(...args) {\n if (typeof args[0] === \"string\") {\n const path = args[0];\n if (args.length === 1) {\n return original.apply(this, [path]);\n }\n const handlers = args.slice(1);\n return original.apply(this, [\n path,\n ...handlers.map((handler) => instrumentation._wrapHandler(handler))\n ]);\n }\n return original.apply(\n this,\n args.map((handler) => instrumentation._wrapHandler(handler))\n );\n };\n };\n }\n /**\n * Wraps a handler or middleware handler to apply instrumentation.\n */\n _wrapHandler(handler) {\n const instrumentation = this;\n return function(c, next) {\n if (!instrumentation.isEnabled()) {\n return handler.apply(this, [c, next]);\n }\n const path = c.req.path;\n const span = instrumentation.tracer.startSpan(path);\n return context.with(trace.setSpan(context.active(), span), () => {\n return instrumentation._safeExecute(\n () => {\n const result = handler.apply(this, [c, next]);\n if (isThenable(result)) {\n return result.then((result2) => {\n const type = instrumentation._determineHandlerType(result2);\n span.setAttributes({\n [AttributeNames.HONO_TYPE]: type,\n [AttributeNames.HONO_NAME]: type === HonoTypes.REQUEST_HANDLER ? path : handler.name || \"anonymous\"\n });\n instrumentation.getConfig().responseHook?.(span);\n return result2;\n });\n } else {\n const type = instrumentation._determineHandlerType(result);\n span.setAttributes({\n [AttributeNames.HONO_TYPE]: type,\n [AttributeNames.HONO_NAME]: type === HonoTypes.REQUEST_HANDLER ? path : handler.name || \"anonymous\"\n });\n instrumentation.getConfig().responseHook?.(span);\n return result;\n }\n },\n () => span.end(),\n (error) => {\n instrumentation._handleError(span, error);\n span.end();\n }\n );\n });\n };\n }\n /**\n * Safely executes a function and handles errors.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _safeExecute(execute, onSuccess, onFailure) {\n try {\n const result = execute();\n if (isThenable(result)) {\n result.then(\n () => onSuccess(),\n (error) => onFailure(error)\n );\n } else {\n onSuccess();\n }\n return result;\n } catch (error) {\n onFailure(error);\n throw error;\n }\n }\n /**\n * Determines the handler type based on the result.\n * @param result\n * @private\n */\n _determineHandlerType(result) {\n return result === void 0 ? HonoTypes.MIDDLEWARE : HonoTypes.REQUEST_HANDLER;\n }\n /**\n * Handles errors by setting the span status and recording the exception.\n */\n _handleError(span, error) {\n if (error instanceof Error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error.message\n });\n span.recordException(error);\n }\n }\n}\n\nexport { HonoInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import * as api from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { KoaLayerType } from './types.js';\nimport { SDK_VERSION, startSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getIsolationScope, getDefaultIsolationScope, debug } from '@sentry/core';\nimport { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport { isLayerIgnored, getMiddlewareMetadata } from './utils.js';\nimport { setHttpServerSpanRouteAttribute } from '../../../../utils/setHttpServerSpanRouteAttribute.js';\nimport { DEBUG_BUILD } from '../../../../debug-build.js';\nimport { AttributeNames } from './enums/AttributeNames.js';\nimport { kLayerPatched } from './internal-types.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-koa\";\nclass KoaInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return new InstrumentationNodeModuleDefinition(\n \"koa\",\n [\">=2.0.0 <4\"],\n (module) => {\n const moduleExports = module[Symbol.toStringTag] === \"Module\" ? module.default : module;\n if (moduleExports == null) {\n return moduleExports;\n }\n if (isWrapped(moduleExports.prototype.use)) {\n this._unwrap(moduleExports.prototype, \"use\");\n }\n this._wrap(moduleExports.prototype, \"use\", this._getKoaUsePatch.bind(this));\n return module;\n },\n (module) => {\n const moduleExports = module[Symbol.toStringTag] === \"Module\" ? module.default : module;\n if (moduleExports && isWrapped(moduleExports.prototype.use)) {\n this._unwrap(moduleExports.prototype, \"use\");\n }\n }\n );\n }\n /**\n * Patches the Koa.use function in order to instrument each original\n * middleware layer which is introduced\n * @param {KoaMiddleware} middleware - the original middleware function\n */\n _getKoaUsePatch(original) {\n const patchRouterDispatch = this._patchRouterDispatch.bind(this);\n const patchLayer = this._patchLayer.bind(this);\n return function use(middlewareFunction) {\n const patchedFunction = middlewareFunction.router ? patchRouterDispatch(middlewareFunction) : patchLayer(middlewareFunction, false);\n return original.apply(this, [patchedFunction]);\n };\n }\n /**\n * Patches the dispatch function used by @koa/router. This function\n * goes through each routed middleware and adds instrumentation via a call\n * to the @function _patchLayer function.\n * @param {KoaMiddleware} dispatchLayer - the original dispatch function which dispatches\n * routed middleware\n */\n _patchRouterDispatch(dispatchLayer) {\n const router = dispatchLayer.router;\n const routesStack = router?.stack ?? [];\n for (const pathLayer of routesStack) {\n const path = pathLayer.path;\n const pathStack = pathLayer.stack;\n for (let j = 0; j < pathStack.length; j++) {\n const routedMiddleware = pathStack[j];\n pathStack[j] = this._patchLayer(routedMiddleware, true, path);\n }\n }\n return dispatchLayer;\n }\n /**\n * Patches each individual @param middlewareLayer function in order to create the\n * span and propagate context. It does not create spans when there is no parent span.\n * @param {KoaMiddleware} middlewareLayer - the original middleware function.\n * @param {boolean} isRouter - tracks whether the original middleware function\n * was dispatched by the router originally\n * @param {string?} layerPath - if present, provides additional data from the\n * router about the routed path which the middleware is attached to\n */\n _patchLayer(middlewareLayer, isRouter, layerPath) {\n const layerType = isRouter ? KoaLayerType.ROUTER : KoaLayerType.MIDDLEWARE;\n if (middlewareLayer[kLayerPatched] === true || isLayerIgnored(layerType, this.getConfig())) return middlewareLayer;\n if (middlewareLayer.constructor.name === \"GeneratorFunction\" || middlewareLayer.constructor.name === \"AsyncGeneratorFunction\") {\n return middlewareLayer;\n }\n middlewareLayer[kLayerPatched] = true;\n return (context, next) => {\n const parent = api.trace.getSpan(api.context.active());\n if (parent === void 0) {\n return middlewareLayer(context, next);\n }\n const metadata = getMiddlewareMetadata(context, middlewareLayer, isRouter, layerPath);\n if (context._matchedRoute) {\n setHttpServerSpanRouteAttribute(context._matchedRoute.toString());\n }\n const koaName = metadata.attributes[AttributeNames.KOA_NAME];\n const name = typeof koaName === \"string\" ? koaName || \"< unknown >\" : metadata.name;\n return startSpan(\n {\n name,\n op: `${layerType}.koa`,\n attributes: {\n ...metadata.attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.koa\"\n }\n },\n () => {\n const route = metadata.attributes[ATTR_HTTP_ROUTE];\n if (getIsolationScope() === getDefaultIsolationScope()) {\n DEBUG_BUILD && debug.warn(\"Isolation scope is default isolation scope - skipping setting transactionName\");\n } else if (route) {\n const method = context.request?.method?.toUpperCase() || \"GET\";\n getIsolationScope().setTransactionName(`${method} ${route}`);\n }\n return middlewareLayer(context, next);\n }\n );\n };\n }\n}\n\nexport { KoaInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "var KoaLayerType = /* @__PURE__ */ ((KoaLayerType2) => {\n KoaLayerType2[\"ROUTER\"] = \"router\";\n KoaLayerType2[\"MIDDLEWARE\"] = \"middleware\";\n return KoaLayerType2;\n})(KoaLayerType || {});\n\nexport { KoaLayerType };\n//# sourceMappingURL=types.js.map\n", + "var AttributeNames = /* @__PURE__ */ ((AttributeNames2) => {\n AttributeNames2[\"KOA_TYPE\"] = \"koa.type\";\n AttributeNames2[\"KOA_NAME\"] = \"koa.name\";\n return AttributeNames2;\n})(AttributeNames || {});\n\nexport { AttributeNames };\n//# sourceMappingURL=AttributeNames.js.map\n", + "import { KoaLayerType } from './types.js';\nimport { AttributeNames } from './enums/AttributeNames.js';\nimport { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\n\nconst getMiddlewareMetadata = (context, layer, isRouter, layerPath) => {\n if (isRouter) {\n return {\n attributes: {\n [AttributeNames.KOA_NAME]: layerPath?.toString(),\n [AttributeNames.KOA_TYPE]: KoaLayerType.ROUTER,\n [ATTR_HTTP_ROUTE]: layerPath?.toString()\n },\n name: context._matchedRouteName || `router - ${layerPath}`\n };\n } else {\n return {\n attributes: {\n [AttributeNames.KOA_NAME]: layer.name ?? \"middleware\",\n [AttributeNames.KOA_TYPE]: KoaLayerType.MIDDLEWARE\n },\n name: `middleware - ${layer.name}`\n };\n }\n};\nconst isLayerIgnored = (type, config) => {\n return !!(Array.isArray(config?.ignoreLayersType) && config?.ignoreLayersType?.includes(type));\n};\n\nexport { getMiddlewareMetadata, isLayerIgnored };\n//# sourceMappingURL=utils.js.map\n", + "const kLayerPatched = /* @__PURE__ */ Symbol(\"koa-layer-patched\");\n\nexport { kLayerPatched };\n//# sourceMappingURL=internal-types.js.map\n", + "import { KoaInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Koa\";\nconst instrumentKoa = generateInstrumentOnce(\n INTEGRATION_NAME,\n KoaInstrumentation,\n (options = {}) => {\n return {\n ignoreLayersType: options.ignoreLayersType\n };\n }\n);\nconst _koaIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentKoa(options);\n }\n };\n});\nconst koaIntegration = defineIntegration(_koaIntegration);\nconst setupKoaErrorHandler = (app) => {\n app.use(async (ctx, next) => {\n try {\n await next();\n } catch (error) {\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.middleware.koa\"\n }\n });\n throw error;\n }\n });\n ensureIsWrapped(app.use, \"koa\");\n};\n\nexport { instrumentKoa, koaIntegration, setupKoaErrorHandler };\n//# sourceMappingURL=index.js.map\n", + "var AttributeNames = /* @__PURE__ */ ((AttributeNames2) => {\n AttributeNames2[\"CONNECT_TYPE\"] = \"connect.type\";\n AttributeNames2[\"CONNECT_NAME\"] = \"connect.name\";\n return AttributeNames2;\n})(AttributeNames || {});\nvar ConnectTypes = /* @__PURE__ */ ((ConnectTypes2) => {\n ConnectTypes2[\"MIDDLEWARE\"] = \"middleware\";\n ConnectTypes2[\"REQUEST_HANDLER\"] = \"request_handler\";\n return ConnectTypes2;\n})(ConnectTypes || {});\n\nexport { AttributeNames, ConnectTypes };\n//# sourceMappingURL=AttributeNames.js.map\n", + "import { ConnectTypes, AttributeNames } from './enums/AttributeNames.js';\nimport { SDK_VERSION, isError, SPAN_STATUS_ERROR, startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { setHttpServerSpanRouteAttribute } from '../../../../utils/setHttpServerSpanRouteAttribute.js';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport { addNewStackLayer, replaceCurrentStackRoute, generateRoute } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-connect\";\nconst ANONYMOUS_NAME = \"anonymous\";\nclass ConnectInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\"connect\", [\">=3.0.0 <4\"], (moduleExports) => {\n return this._patchConstructor(moduleExports);\n })\n ];\n }\n _patchApp(patchedApp) {\n if (!isWrapped(patchedApp.use)) {\n this._wrap(patchedApp, \"use\", this._patchUse.bind(this));\n }\n if (!isWrapped(patchedApp.handle)) {\n this._wrap(patchedApp, \"handle\", this._patchHandle.bind(this));\n }\n }\n _patchConstructor(original) {\n const patchApp = this._patchApp.bind(this);\n return function(...args) {\n const app = Reflect.apply(original, this, args);\n patchApp(app);\n return app;\n };\n }\n _patchNext(next, span, finishSpan) {\n return function nextFunction(err) {\n if (isError(err)) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n }\n const result = next.apply(this, [err]);\n finishSpan();\n return result;\n };\n }\n _startSpan(routeName, middleWare) {\n const connectType = routeName ? ConnectTypes.REQUEST_HANDLER : ConnectTypes.MIDDLEWARE;\n const connectName = routeName || middleWare.name || ANONYMOUS_NAME;\n return startInactiveSpan({\n name: connectName,\n op: `${connectType}.connect`,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.connect\",\n [ATTR_HTTP_ROUTE]: routeName.length > 0 ? routeName : \"/\",\n [AttributeNames.CONNECT_TYPE]: connectType,\n [AttributeNames.CONNECT_NAME]: connectName\n }\n });\n }\n _patchMiddleware(routeName, middleWare) {\n const isEnabled = this.isEnabled.bind(this);\n const startSpan = this._startSpan.bind(this);\n const patchNext = this._patchNext.bind(this);\n const isErrorMiddleware = middleWare.length === 4;\n function patchedMiddleware() {\n if (!isEnabled()) {\n return Reflect.apply(middleWare, this, arguments);\n }\n const [reqArgIdx, resArgIdx, nextArgIdx] = isErrorMiddleware ? [1, 2, 3] : [0, 1, 2];\n const req = arguments[reqArgIdx];\n const res = arguments[resArgIdx];\n const next = arguments[nextArgIdx];\n replaceCurrentStackRoute(req, routeName);\n if (routeName) {\n setHttpServerSpanRouteAttribute(generateRoute(req));\n }\n const span = startSpan(routeName, middleWare);\n let spanFinished = false;\n function finishSpan() {\n if (!spanFinished) {\n spanFinished = true;\n span.end();\n }\n res.removeListener(\"close\", finishSpan);\n }\n res.addListener(\"close\", finishSpan);\n arguments[nextArgIdx] = patchNext(next, span, finishSpan);\n try {\n return Reflect.apply(middleWare, this, arguments);\n } catch (e) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n finishSpan();\n throw e;\n }\n }\n Object.defineProperty(patchedMiddleware, \"length\", {\n value: middleWare.length,\n writable: false,\n configurable: true\n });\n return patchedMiddleware;\n }\n _patchUse(original) {\n const patchMiddleware = this._patchMiddleware.bind(this);\n return function(...args) {\n const middleWare = args[args.length - 1];\n const routeName = args[args.length - 2] || \"\";\n args[args.length - 1] = patchMiddleware(routeName, middleWare);\n return original.apply(this, args);\n };\n }\n _patchHandle(original) {\n const patchOut = this._patchOut.bind(this);\n return function() {\n const [reqIdx, outIdx] = [0, 2];\n const req = arguments[reqIdx];\n const out = arguments[outIdx];\n const completeStack = addNewStackLayer(req);\n if (typeof out === \"function\") {\n arguments[outIdx] = patchOut(out, completeStack);\n }\n return Reflect.apply(original, this, arguments);\n };\n }\n _patchOut(out, completeStack) {\n return function nextFunction(...args) {\n completeStack();\n return Reflect.apply(out, this, args);\n };\n }\n}\n\nexport { ConnectInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "const _LAYERS_STORE_PROPERTY = /* @__PURE__ */ Symbol(\n \"opentelemetry.instrumentation-connect.request-route-stack\"\n);\n\nexport { _LAYERS_STORE_PROPERTY };\n//# sourceMappingURL=internal-types.js.map\n", + "import { debug } from '@sentry/core';\nimport { _LAYERS_STORE_PROPERTY } from './internal-types.js';\nimport { DEBUG_BUILD } from '../../../../debug-build.js';\n\nconst addNewStackLayer = (request) => {\n if (Array.isArray(request[_LAYERS_STORE_PROPERTY]) === false) {\n Object.defineProperty(request, _LAYERS_STORE_PROPERTY, {\n enumerable: false,\n value: []\n });\n }\n request[_LAYERS_STORE_PROPERTY].push(\"/\");\n const stackLength = request[_LAYERS_STORE_PROPERTY].length;\n return () => {\n if (stackLength === request[_LAYERS_STORE_PROPERTY].length) {\n request[_LAYERS_STORE_PROPERTY].pop();\n } else {\n DEBUG_BUILD && debug.warn(\"Connect: Trying to pop the stack multiple time\");\n }\n };\n};\nconst replaceCurrentStackRoute = (request, newRoute) => {\n if (newRoute) {\n request[_LAYERS_STORE_PROPERTY].splice(-1, 1, newRoute);\n }\n};\nconst generateRoute = (request) => {\n return request[_LAYERS_STORE_PROPERTY].reduce((acc, sub) => acc.replace(/\\/+$/, \"\") + sub);\n};\n\nexport { addNewStackLayer, generateRoute, replaceCurrentStackRoute };\n//# sourceMappingURL=utils.js.map\n", + "import { ConnectInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Connect\";\nconst instrumentConnect = generateInstrumentOnce(INTEGRATION_NAME, () => new ConnectInstrumentation());\nconst _connectIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentConnect();\n }\n };\n});\nconst connectIntegration = defineIntegration(_connectIntegration);\nfunction connectErrorMiddleware(err, req, res, next) {\n captureException(err, {\n mechanism: {\n handled: false,\n type: \"auto.middleware.connect\"\n }\n });\n next(err);\n}\nconst setupConnectErrorHandler = (app) => {\n app.use(connectErrorMiddleware);\n ensureIsWrapped(app.use, \"connect\");\n};\n\nexport { connectIntegration, instrumentConnect, setupConnectErrorHandler };\n//# sourceMappingURL=index.js.map\n", + "import { EventEmitter } from 'events';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { ATTR_NET_PEER_PORT, ATTR_NET_PEER_NAME, ATTR_DB_SQL_TABLE, ATTR_DB_USER, DB_SYSTEM_VALUE_MSSQL, ATTR_DB_STATEMENT, ATTR_DB_NAME, ATTR_DB_SYSTEM } from './semconv.js';\nimport { getSpanName, once } from './utils.js';\nimport { SDK_VERSION, startInactiveSpan, SPAN_KIND, withActiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR } from '@sentry/core';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-tedious\";\nconst CURRENT_DATABASE = /* @__PURE__ */ Symbol(\"opentelemetry.instrumentation-tedious.current-database\");\nconst PATCHED_METHODS = [\"callProcedure\", \"execSql\", \"execSqlBatch\", \"execBulkLoad\", \"prepare\", \"execute\"];\nfunction setDatabase(databaseName) {\n Object.defineProperty(this, CURRENT_DATABASE, {\n value: databaseName,\n writable: true\n });\n}\nconst _TediousInstrumentation = class _TediousInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n _TediousInstrumentation.COMPONENT,\n [\">=1.11.0 <20\"],\n (moduleExports) => {\n const ConnectionPrototype = moduleExports.Connection.prototype;\n for (const method of PATCHED_METHODS) {\n if (isWrapped(ConnectionPrototype[method])) {\n this._unwrap(ConnectionPrototype, method);\n }\n this._wrap(ConnectionPrototype, method, this._patchQuery(method));\n }\n if (isWrapped(ConnectionPrototype.connect)) {\n this._unwrap(ConnectionPrototype, \"connect\");\n }\n this._wrap(ConnectionPrototype, \"connect\", this._patchConnect);\n return moduleExports;\n },\n (moduleExports) => {\n if (moduleExports === void 0) return;\n const ConnectionPrototype = moduleExports.Connection.prototype;\n for (const method of PATCHED_METHODS) {\n this._unwrap(ConnectionPrototype, method);\n }\n this._unwrap(ConnectionPrototype, \"connect\");\n }\n )\n ];\n }\n _patchConnect(original) {\n return function patchedConnect() {\n setDatabase.call(this, this.config?.options?.database);\n this.removeListener(\"databaseChange\", setDatabase);\n this.on(\"databaseChange\", setDatabase);\n this.once(\"end\", () => {\n this.removeListener(\"databaseChange\", setDatabase);\n });\n return original.apply(this, arguments);\n };\n }\n _patchQuery(operation) {\n return (originalMethod) => {\n const thisPlugin = this;\n function patchedMethod(request) {\n if (!(request instanceof EventEmitter)) {\n thisPlugin._diag.warn(`Unexpected invocation of patched ${operation} method. Span not recorded`);\n return originalMethod.apply(this, arguments);\n }\n let procCount = 0;\n let statementCount = 0;\n const incrementStatementCount = () => statementCount++;\n const incrementProcCount = () => procCount++;\n const databaseName = this[CURRENT_DATABASE];\n const sql = ((request2) => {\n if (request2.sqlTextOrProcedure === \"sp_prepare\" && request2.parametersByName?.stmt?.value) {\n return request2.parametersByName.stmt.value;\n }\n return request2.sqlTextOrProcedure;\n })(request);\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.db.otel.tedious\",\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_MSSQL,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_NAME]: databaseName,\n // >=4 uses `authentication` object; older versions just userName and password pair\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_USER]: this.config?.userName ?? this.config?.authentication?.options?.userName,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_STATEMENT]: sql,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_SQL_TABLE]: request.table,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_NET_PEER_NAME]: this.config?.server,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_NET_PEER_PORT]: this.config?.options?.port\n };\n const span = startInactiveSpan({\n name: getSpanName(operation, databaseName, sql, request.table),\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n const endSpan = once((err) => {\n request.removeListener(\"done\", incrementStatementCount);\n request.removeListener(\"doneInProc\", incrementStatementCount);\n request.removeListener(\"doneProc\", incrementProcCount);\n request.removeListener(\"error\", endSpan);\n this.removeListener(\"end\", endSpan);\n span.setAttribute(\"tedious.procedure_count\", procCount);\n span.setAttribute(\"tedious.statement_count\", statementCount);\n if (err) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err.message\n });\n }\n span.end();\n });\n request.on(\"done\", incrementStatementCount);\n request.on(\"doneInProc\", incrementStatementCount);\n request.on(\"doneProc\", incrementProcCount);\n request.once(\"error\", endSpan);\n this.on(\"end\", endSpan);\n if (typeof request.callback === \"function\") {\n thisPlugin._wrap(request, \"callback\", thisPlugin._patchCallbackQuery(endSpan));\n } else {\n thisPlugin._diag.error(\"Expected request.callback to be a function\");\n }\n return withActiveSpan(span, () => originalMethod.apply(this, arguments));\n }\n Object.defineProperty(patchedMethod, \"length\", {\n value: originalMethod.length,\n writable: false\n });\n return patchedMethod;\n };\n }\n _patchCallbackQuery(endSpan) {\n return (originalCallback) => {\n return function(err, _rowCount, _rows) {\n endSpan(err);\n return originalCallback.apply(this, arguments);\n };\n };\n }\n};\n_TediousInstrumentation.COMPONENT = \"tedious\";\nlet TediousInstrumentation = _TediousInstrumentation;\n\nexport { TediousInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "const ATTR_DB_NAME = \"db.name\";\nconst ATTR_DB_SQL_TABLE = \"db.sql.table\";\nconst ATTR_DB_STATEMENT = \"db.statement\";\nconst ATTR_DB_SYSTEM = \"db.system\";\nconst ATTR_DB_USER = \"db.user\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\nconst DB_SYSTEM_VALUE_MSSQL = \"mssql\";\n\nexport { ATTR_DB_NAME, ATTR_DB_SQL_TABLE, ATTR_DB_STATEMENT, ATTR_DB_SYSTEM, ATTR_DB_USER, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, DB_SYSTEM_VALUE_MSSQL };\n//# sourceMappingURL=semconv.js.map\n", + "function getSpanName(operation, db, sql, bulkLoadTable) {\n if (operation === \"execBulkLoad\" && bulkLoadTable && db) {\n return `${operation} ${bulkLoadTable} ${db}`;\n }\n if (operation === \"callProcedure\") {\n if (db) {\n return `${operation} ${sql} ${db}`;\n }\n return `${operation} ${sql}`;\n }\n if (db) {\n return `${operation} ${db}`;\n }\n return `${operation}`;\n}\nconst once = (fn) => {\n let called = false;\n return (...args) => {\n if (called) return;\n called = true;\n return fn(...args);\n };\n};\n\nexport { getSpanName, once };\n//# sourceMappingURL=utils.js.map\n", + "import { TediousInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Tedious\";\nconst instrumentTedious = generateInstrumentOnce(INTEGRATION_NAME, () => new TediousInstrumentation({}));\nconst _tediousIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentTedious();\n }\n };\n});\nconst tediousIntegration = defineIntegration(_tediousIntegration);\n\nexport { instrumentTedious, tediousIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, startSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, startSpanManual, SPAN_STATUS_ERROR } from '@sentry/core';\n\nconst MODULE_NAME = \"generic-pool\";\nconst PACKAGE_NAME = \"@sentry/instrumentation-generic-pool\";\nclass GenericPoolInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n // only used for v2 - v2.3)\n this._isDisabled = false;\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n MODULE_NAME,\n [\">=3.0.0 <4\"],\n (moduleExports) => {\n const Pool = moduleExports.Pool;\n if (isWrapped(Pool.prototype.acquire)) {\n this._unwrap(Pool.prototype, \"acquire\");\n }\n this._wrap(Pool.prototype, \"acquire\", this._acquirePatcher.bind(this));\n return moduleExports;\n },\n (moduleExports) => {\n const Pool = moduleExports.Pool;\n this._unwrap(Pool.prototype, \"acquire\");\n return moduleExports;\n }\n ),\n new InstrumentationNodeModuleDefinition(\n MODULE_NAME,\n [\">=2.4.0 <3\"],\n (moduleExports) => {\n const Pool = moduleExports.Pool;\n if (isWrapped(Pool.prototype.acquire)) {\n this._unwrap(Pool.prototype, \"acquire\");\n }\n this._wrap(Pool.prototype, \"acquire\", this._acquireWithCallbacksPatcher.bind(this));\n return moduleExports;\n },\n (moduleExports) => {\n const Pool = moduleExports.Pool;\n this._unwrap(Pool.prototype, \"acquire\");\n return moduleExports;\n }\n ),\n new InstrumentationNodeModuleDefinition(\n MODULE_NAME,\n [\">=2.0.0 <2.4\"],\n (moduleExports) => {\n this._isDisabled = false;\n if (isWrapped(moduleExports.Pool)) {\n this._unwrap(moduleExports, \"Pool\");\n }\n this._wrap(moduleExports, \"Pool\", this._poolWrapper.bind(this));\n return moduleExports;\n },\n (moduleExports) => {\n this._isDisabled = true;\n return moduleExports;\n }\n )\n ];\n }\n _acquirePatcher(original) {\n return function wrapped_acquire(...args) {\n return startSpan(\n {\n name: \"generic-pool.acquire\",\n attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.db.otel.generic_pool\" }\n },\n () => {\n return original.call(this, ...args);\n }\n );\n };\n }\n _poolWrapper(original) {\n const wrap = this._wrap.bind(this);\n const acquireWithCallbacksPatcher = this._acquireWithCallbacksPatcher.bind(this);\n return function wrapped_pool(...args) {\n const pool = original.apply(this, args);\n wrap(pool, \"acquire\", acquireWithCallbacksPatcher);\n return pool;\n };\n }\n _acquireWithCallbacksPatcher(original) {\n const isDisabled = () => this._isDisabled;\n return function wrapped_acquire(cb, priority) {\n if (isDisabled()) {\n return original.call(this, cb, priority);\n }\n return startSpanManual(\n {\n name: \"generic-pool.acquire\",\n attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.db.otel.generic_pool\" }\n },\n (span) => {\n original.call(\n this,\n (err, client) => {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n }\n span.end();\n if (cb) {\n cb(err, client);\n }\n },\n priority\n );\n }\n );\n };\n }\n}\n\nexport { GenericPoolInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { GenericPoolInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"GenericPool\";\nconst instrumentGenericPool = generateInstrumentOnce(INTEGRATION_NAME, () => new GenericPoolInstrumentation({}));\nconst _genericPoolIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentGenericPool();\n }\n };\n});\nconst genericPoolIntegration = defineIntegration(_genericPoolIntegration);\n\nexport { genericPoolIntegration, instrumentGenericPool };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION } from '@sentry/core';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile.js';\nimport { getConnectPatch, getPublishPatch, getConsumePatch, getAckPatch, getAckAllPatch, getChannelEmitPatch, getConfirmedPublishPatch } from './patches.js';\nimport { EndOperation } from './types.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-amqplib\";\nconst supportedVersions = [\">=0.5.5 <2\"];\nclass AmqplibInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n const channelModelModuleFile = new InstrumentationNodeModuleFile(\n \"amqplib/lib/channel_model.js\",\n supportedVersions,\n this.patchChannelModel.bind(this),\n this.unpatchChannelModel.bind(this)\n );\n const callbackModelModuleFile = new InstrumentationNodeModuleFile(\n \"amqplib/lib/callback_model.js\",\n supportedVersions,\n this.patchChannelModel.bind(this),\n this.unpatchChannelModel.bind(this)\n );\n const connectModuleFile = new InstrumentationNodeModuleFile(\n \"amqplib/lib/connect.js\",\n supportedVersions,\n this.patchConnect.bind(this),\n this.unpatchConnect.bind(this)\n );\n const module = new InstrumentationNodeModuleDefinition(\"amqplib\", supportedVersions, void 0, void 0, [\n channelModelModuleFile,\n connectModuleFile,\n callbackModelModuleFile\n ]);\n return module;\n }\n patchConnect(moduleExports) {\n const unpatchedExports = this.unpatchConnect(moduleExports);\n if (!isWrapped(unpatchedExports.connect)) {\n this._wrap(unpatchedExports, \"connect\", getConnectPatch);\n }\n return unpatchedExports;\n }\n unpatchConnect(moduleExports) {\n if (isWrapped(moduleExports.connect)) {\n this._unwrap(moduleExports, \"connect\");\n }\n return moduleExports;\n }\n patchChannelModel(moduleExports) {\n if (!isWrapped(moduleExports.Channel.prototype.publish)) {\n this._wrap(moduleExports.Channel.prototype, \"publish\", getPublishPatch);\n }\n if (!isWrapped(moduleExports.Channel.prototype.consume)) {\n this._wrap(moduleExports.Channel.prototype, \"consume\", getConsumePatch);\n }\n if (!isWrapped(moduleExports.Channel.prototype.ack)) {\n this._wrap(moduleExports.Channel.prototype, \"ack\", getAckPatch(false, EndOperation.Ack));\n }\n if (!isWrapped(moduleExports.Channel.prototype.nack)) {\n this._wrap(moduleExports.Channel.prototype, \"nack\", getAckPatch(true, EndOperation.Nack));\n }\n if (!isWrapped(moduleExports.Channel.prototype.reject)) {\n this._wrap(moduleExports.Channel.prototype, \"reject\", getAckPatch(true, EndOperation.Reject));\n }\n if (!isWrapped(moduleExports.Channel.prototype.ackAll)) {\n this._wrap(moduleExports.Channel.prototype, \"ackAll\", getAckAllPatch(false, EndOperation.AckAll));\n }\n if (!isWrapped(moduleExports.Channel.prototype.nackAll)) {\n this._wrap(moduleExports.Channel.prototype, \"nackAll\", getAckAllPatch(true, EndOperation.NackAll));\n }\n if (!isWrapped(moduleExports.Channel.prototype.emit)) {\n this._wrap(moduleExports.Channel.prototype, \"emit\", getChannelEmitPatch);\n }\n if (!isWrapped(moduleExports.ConfirmChannel.prototype.publish)) {\n this._wrap(moduleExports.ConfirmChannel.prototype, \"publish\", getConfirmedPublishPatch);\n }\n return moduleExports;\n }\n unpatchChannelModel(moduleExports) {\n if (isWrapped(moduleExports.Channel.prototype.publish)) {\n this._unwrap(moduleExports.Channel.prototype, \"publish\");\n }\n if (isWrapped(moduleExports.Channel.prototype.consume)) {\n this._unwrap(moduleExports.Channel.prototype, \"consume\");\n }\n if (isWrapped(moduleExports.Channel.prototype.ack)) {\n this._unwrap(moduleExports.Channel.prototype, \"ack\");\n }\n if (isWrapped(moduleExports.Channel.prototype.nack)) {\n this._unwrap(moduleExports.Channel.prototype, \"nack\");\n }\n if (isWrapped(moduleExports.Channel.prototype.reject)) {\n this._unwrap(moduleExports.Channel.prototype, \"reject\");\n }\n if (isWrapped(moduleExports.Channel.prototype.ackAll)) {\n this._unwrap(moduleExports.Channel.prototype, \"ackAll\");\n }\n if (isWrapped(moduleExports.Channel.prototype.nackAll)) {\n this._unwrap(moduleExports.Channel.prototype, \"nackAll\");\n }\n if (isWrapped(moduleExports.Channel.prototype.emit)) {\n this._unwrap(moduleExports.Channel.prototype, \"emit\");\n }\n if (isWrapped(moduleExports.ConfirmChannel.prototype.publish)) {\n this._unwrap(moduleExports.ConfirmChannel.prototype, \"publish\");\n }\n return moduleExports;\n }\n}\n\nexport { AmqplibInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "var EndOperation = /* @__PURE__ */ ((EndOperation2) => {\n EndOperation2[\"AutoAck\"] = \"auto ack\";\n EndOperation2[\"Ack\"] = \"ack\";\n EndOperation2[\"AckAll\"] = \"ackAll\";\n EndOperation2[\"Reject\"] = \"reject\";\n EndOperation2[\"Nack\"] = \"nack\";\n EndOperation2[\"NackAll\"] = \"nackAll\";\n EndOperation2[\"ChannelClosed\"] = \"channel closed\";\n EndOperation2[\"ChannelError\"] = \"channel error\";\n EndOperation2[\"InstrumentationTimeout\"] = \"instrumentation timeout\";\n return EndOperation2;\n})(EndOperation || {});\n\nexport { EndOperation };\n//# sourceMappingURL=types.js.map\n", + "import { SpanKind } from '@opentelemetry/api';\nimport { startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getTraceData } from '@sentry/core';\nimport { ATTR_MESSAGING_PROTOCOL, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, ATTR_MESSAGING_SYSTEM, MESSAGING_DESTINATION_KIND_VALUE_TOPIC, ATTR_MESSAGING_CONVERSATION_ID, OLD_ATTR_MESSAGING_MESSAGE_ID, ATTR_MESSAGING_RABBITMQ_ROUTING_KEY, ATTR_MESSAGING_DESTINATION_KIND, ATTR_MESSAGING_DESTINATION, ATTR_MESSAGING_PROTOCOL_VERSION, MESSAGING_OPERATION_VALUE_PROCESS, ATTR_MESSAGING_OPERATION, ATTR_MESSAGING_URL } from './semconv.js';\n\nconst PUBLISHER_ORIGIN = \"auto.amqplib.otel.publisher\";\nconst CONSUMER_ORIGIN = \"auto.amqplib.otel.consumer\";\nconst MESSAGE_STORED_SPAN = /* @__PURE__ */ Symbol(\"opentelemetry.amqplib.message.stored-span\");\nconst CHANNEL_SPANS_NOT_ENDED = /* @__PURE__ */ Symbol(\"opentelemetry.amqplib.channel.spans-not-ended\");\nconst CHANNEL_CONSUME_TIMEOUT_TIMER = /* @__PURE__ */ Symbol(\n \"opentelemetry.amqplib.channel.consumer-timeout-timer\"\n);\nconst CONNECTION_ATTRIBUTES = /* @__PURE__ */ Symbol(\"opentelemetry.amqplib.connection.attributes\");\nconst CHANNEL_IS_CONFIRM_PUBLISHING = /* @__PURE__ */ Symbol(\"sentry.amqplib.channel.is-confirm-publishing\");\nconst normalizeExchange = (exchangeName) => exchangeName !== \"\" ? exchangeName : \"\";\nconst censorPassword = (url) => {\n return url.replace(/:[^:@/]*@/, \":***@\");\n};\nconst getPort = (portFromUrl, resolvedProtocol) => {\n return portFromUrl || (resolvedProtocol === \"AMQP\" ? 5672 : 5671);\n};\nconst getProtocol = (protocolFromUrl) => {\n const resolvedProtocol = protocolFromUrl || \"amqp\";\n const noEndingColon = resolvedProtocol.endsWith(\":\") ? resolvedProtocol.substring(0, resolvedProtocol.length - 1) : resolvedProtocol;\n return noEndingColon.toUpperCase();\n};\nconst getHostname = (hostnameFromUrl) => {\n return hostnameFromUrl || \"localhost\";\n};\nconst getConnectionAttributesFromServer = (conn) => {\n const product = conn.serverProperties.product?.toLowerCase?.();\n if (product) {\n return {\n [ATTR_MESSAGING_SYSTEM]: product\n };\n } else {\n return {};\n }\n};\nconst getConnectionAttributesFromUrl = (url) => {\n const attributes = {\n [ATTR_MESSAGING_PROTOCOL_VERSION]: \"0.9.1\"\n // this is the only protocol supported by the instrumented library\n };\n const resolvedUrl = url || \"amqp://localhost\";\n if (typeof resolvedUrl === \"object\") {\n const connectOptions = resolvedUrl;\n const protocol = getProtocol(connectOptions?.protocol);\n attributes[ATTR_MESSAGING_PROTOCOL] = protocol;\n attributes[ATTR_NET_PEER_NAME] = getHostname(connectOptions?.hostname);\n attributes[ATTR_NET_PEER_PORT] = getPort(connectOptions.port, protocol);\n } else {\n const censoredUrl = censorPassword(resolvedUrl);\n attributes[ATTR_MESSAGING_URL] = censoredUrl;\n try {\n const urlParts = new URL(censoredUrl);\n const protocol = getProtocol(urlParts.protocol);\n attributes[ATTR_MESSAGING_PROTOCOL] = protocol;\n attributes[ATTR_NET_PEER_NAME] = getHostname(urlParts.hostname);\n attributes[ATTR_NET_PEER_PORT] = getPort(urlParts.port ? parseInt(urlParts.port) : void 0, protocol);\n } catch {\n }\n }\n return attributes;\n};\nfunction getHeaderAsString(headers, key) {\n const value = headers?.[key];\n if (value == null) {\n return void 0;\n }\n return Array.isArray(value) ? String(value[0]) : String(value);\n}\nfunction startPublishSpan(exchange, routingKey, channel, options) {\n const normalizedExchange = normalizeExchange(exchange);\n const span = startInactiveSpan({\n name: `publish ${normalizedExchange}`,\n kind: SpanKind.PRODUCER,\n attributes: {\n ...channel.connection[CONNECTION_ATTRIBUTES],\n [ATTR_MESSAGING_DESTINATION]: exchange,\n [ATTR_MESSAGING_DESTINATION_KIND]: MESSAGING_DESTINATION_KIND_VALUE_TOPIC,\n [ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]: routingKey,\n [OLD_ATTR_MESSAGING_MESSAGE_ID]: options?.messageId,\n [ATTR_MESSAGING_CONVERSATION_ID]: options?.correlationId,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: PUBLISHER_ORIGIN\n }\n });\n const modifiedOptions = options ?? {};\n modifiedOptions.headers = modifiedOptions.headers ?? {};\n const traceData = getTraceData({ span });\n if (traceData[\"sentry-trace\"]) {\n modifiedOptions.headers[\"sentry-trace\"] = traceData[\"sentry-trace\"];\n }\n if (traceData.baggage) {\n modifiedOptions.headers[\"baggage\"] = traceData.baggage;\n }\n return { span, modifiedOptions };\n}\nfunction startConsumeSpan(queue, msg, channel) {\n return startInactiveSpan({\n name: `${queue} process`,\n kind: SpanKind.CONSUMER,\n attributes: {\n ...channel?.connection?.[CONNECTION_ATTRIBUTES],\n [ATTR_MESSAGING_DESTINATION]: msg.fields?.exchange,\n [ATTR_MESSAGING_DESTINATION_KIND]: MESSAGING_DESTINATION_KIND_VALUE_TOPIC,\n [ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]: msg.fields?.routingKey,\n [ATTR_MESSAGING_OPERATION]: MESSAGING_OPERATION_VALUE_PROCESS,\n [OLD_ATTR_MESSAGING_MESSAGE_ID]: msg?.properties.messageId,\n [ATTR_MESSAGING_CONVERSATION_ID]: msg?.properties.correlationId,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: CONSUMER_ORIGIN\n }\n });\n}\n\nexport { CHANNEL_CONSUME_TIMEOUT_TIMER, CHANNEL_IS_CONFIRM_PUBLISHING, CHANNEL_SPANS_NOT_ENDED, CONNECTION_ATTRIBUTES, MESSAGE_STORED_SPAN, getConnectionAttributesFromServer, getConnectionAttributesFromUrl, getHeaderAsString, normalizeExchange, startConsumeSpan, startPublishSpan };\n//# sourceMappingURL=utils.js.map\n", + "const ATTR_MESSAGING_SYSTEM = \"messaging.system\";\nconst ATTR_MESSAGING_OPERATION = \"messaging.operation\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\nconst ATTR_MESSAGING_DESTINATION = \"messaging.destination\";\nconst ATTR_MESSAGING_DESTINATION_KIND = \"messaging.destination_kind\";\nconst ATTR_MESSAGING_RABBITMQ_ROUTING_KEY = \"messaging.rabbitmq.routing_key\";\nconst ATTR_MESSAGING_PROTOCOL = \"messaging.protocol\";\nconst ATTR_MESSAGING_PROTOCOL_VERSION = \"messaging.protocol_version\";\nconst ATTR_MESSAGING_URL = \"messaging.url\";\nconst OLD_ATTR_MESSAGING_MESSAGE_ID = \"messaging.message_id\";\nconst ATTR_MESSAGING_CONVERSATION_ID = \"messaging.conversation_id\";\nconst MESSAGING_DESTINATION_KIND_VALUE_TOPIC = \"topic\";\nconst MESSAGING_OPERATION_VALUE_PROCESS = \"process\";\n\nexport { ATTR_MESSAGING_CONVERSATION_ID, ATTR_MESSAGING_DESTINATION, ATTR_MESSAGING_DESTINATION_KIND, ATTR_MESSAGING_OPERATION, ATTR_MESSAGING_PROTOCOL, ATTR_MESSAGING_PROTOCOL_VERSION, ATTR_MESSAGING_RABBITMQ_ROUTING_KEY, ATTR_MESSAGING_SYSTEM, ATTR_MESSAGING_URL, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, MESSAGING_DESTINATION_KIND_VALUE_TOPIC, MESSAGING_OPERATION_VALUE_PROCESS, OLD_ATTR_MESSAGING_MESSAGE_ID };\n//# sourceMappingURL=semconv.js.map\n", + "import { timestampInSeconds, continueTrace, withActiveSpan, SPAN_STATUS_ERROR } from '@sentry/core';\nimport { EndOperation } from './types.js';\nimport { getConnectionAttributesFromUrl, getConnectionAttributesFromServer, CONNECTION_ATTRIBUTES, CHANNEL_IS_CONFIRM_PUBLISHING, startPublishSpan, CHANNEL_SPANS_NOT_ENDED, CHANNEL_CONSUME_TIMEOUT_TIMER, getHeaderAsString, startConsumeSpan, MESSAGE_STORED_SPAN } from './utils.js';\n\nconst CONSUME_TIMEOUT_MS = 1e3 * 60;\nfunction endConsumerSpan(message, isRejected, operation, requeue) {\n const storedSpan = message[MESSAGE_STORED_SPAN];\n if (!storedSpan) {\n return;\n }\n if (isRejected !== false) {\n storedSpan.setStatus({\n code: SPAN_STATUS_ERROR,\n message: operation !== EndOperation.ChannelClosed && operation !== EndOperation.ChannelError ? `${operation} called on message${requeue === true ? \" with requeue\" : requeue === false ? \" without requeue\" : \"\"}` : operation\n });\n }\n storedSpan.end();\n message[MESSAGE_STORED_SPAN] = void 0;\n}\nfunction endAllSpansOnChannel(channel, isRejected, operation, requeue) {\n const spansNotEnded = channel[CHANNEL_SPANS_NOT_ENDED] ?? [];\n spansNotEnded.forEach((msgDetails) => {\n endConsumerSpan(msgDetails.msg, isRejected, operation, requeue);\n });\n channel[CHANNEL_SPANS_NOT_ENDED] = [];\n}\nfunction checkConsumeTimeoutOnChannel(channel) {\n const currentTime = timestampInSeconds();\n const spansNotEnded = channel[CHANNEL_SPANS_NOT_ENDED] ?? [];\n let i;\n for (i = 0; i < spansNotEnded.length; i++) {\n const currMessage = spansNotEnded[i];\n const timeFromConsumeMs = (currentTime - currMessage.timeOfConsume) * 1e3;\n if (timeFromConsumeMs < CONSUME_TIMEOUT_MS) {\n break;\n }\n endConsumerSpan(currMessage.msg, null, EndOperation.InstrumentationTimeout, true);\n }\n spansNotEnded.splice(0, i);\n}\nfunction getConnectPatch(original) {\n return function patchedConnect(url, socketOptions, openCallback) {\n return original.call(this, url, socketOptions, function(err, conn) {\n if (err == null) {\n const urlAttributes = getConnectionAttributesFromUrl(url);\n const serverAttributes = getConnectionAttributesFromServer(conn);\n conn[CONNECTION_ATTRIBUTES] = {\n ...urlAttributes,\n ...serverAttributes\n };\n }\n openCallback.apply(this, arguments);\n });\n };\n}\nfunction getChannelEmitPatch(original) {\n return function emit(eventName) {\n if (eventName === \"close\") {\n endAllSpansOnChannel(this, true, EndOperation.ChannelClosed, void 0);\n const activeTimer = this[CHANNEL_CONSUME_TIMEOUT_TIMER];\n if (activeTimer) {\n clearInterval(activeTimer);\n }\n this[CHANNEL_CONSUME_TIMEOUT_TIMER] = void 0;\n } else if (eventName === \"error\") {\n endAllSpansOnChannel(this, true, EndOperation.ChannelError, void 0);\n }\n return original.apply(this, arguments);\n };\n}\nfunction getAckAllPatch(isRejected, endOperation) {\n return (original) => function ackAll(requeueOrEmpty) {\n endAllSpansOnChannel(this, isRejected, endOperation, requeueOrEmpty);\n return original.apply(this, arguments);\n };\n}\nfunction getAckPatch(isRejected, endOperation) {\n return (original) => function ack(message, allUpToOrRequeue, requeue) {\n const channel = this;\n const requeueResolved = endOperation === EndOperation.Reject ? allUpToOrRequeue : requeue;\n const spansNotEnded = channel[CHANNEL_SPANS_NOT_ENDED] ?? [];\n const msgIndex = spansNotEnded.findIndex((msgDetails) => msgDetails.msg === message);\n if (msgIndex < 0) {\n endConsumerSpan(message, isRejected, endOperation, requeueResolved);\n } else if (endOperation !== EndOperation.Reject && allUpToOrRequeue) {\n for (let i = 0; i <= msgIndex; i++) {\n endConsumerSpan(spansNotEnded[i].msg, isRejected, endOperation, requeueResolved);\n }\n spansNotEnded.splice(0, msgIndex + 1);\n } else {\n endConsumerSpan(message, isRejected, endOperation, requeueResolved);\n spansNotEnded.splice(msgIndex, 1);\n }\n return original.apply(this, arguments);\n };\n}\nfunction getConsumePatch(original) {\n return function consume(queue, onMessage, options) {\n const channel = this;\n if (!Object.prototype.hasOwnProperty.call(channel, CHANNEL_SPANS_NOT_ENDED)) {\n const timer = setInterval(() => {\n checkConsumeTimeoutOnChannel(channel);\n }, CONSUME_TIMEOUT_MS);\n timer.unref();\n channel[CHANNEL_CONSUME_TIMEOUT_TIMER] = timer;\n channel[CHANNEL_SPANS_NOT_ENDED] = [];\n }\n const patchedOnMessage = function(msg) {\n if (!msg) {\n return onMessage.call(this, msg);\n }\n const headers = msg.properties.headers ?? {};\n const sentryTrace = getHeaderAsString(headers, \"sentry-trace\");\n const baggage = getHeaderAsString(headers, \"baggage\");\n continueTrace({ sentryTrace, baggage }, () => {\n const span = startConsumeSpan(queue, msg, channel);\n if (!options?.noAck) {\n channel[CHANNEL_SPANS_NOT_ENDED].push({ msg, timeOfConsume: timestampInSeconds() });\n msg[MESSAGE_STORED_SPAN] = span;\n }\n withActiveSpan(span, () => {\n onMessage.call(this, msg);\n });\n if (options?.noAck) {\n span.end();\n }\n });\n };\n const callArgs = Array.prototype.slice.call(arguments);\n callArgs[1] = patchedOnMessage;\n return original.apply(this, callArgs);\n };\n}\nfunction getConfirmedPublishPatch(original) {\n return function confirmedPublish(exchange, routingKey, content, options, callback) {\n const channel = this;\n const { span, modifiedOptions } = startPublishSpan(exchange, routingKey, channel, options);\n const patchedOnConfirm = function(err, ok) {\n try {\n withActiveSpan(span, () => {\n callback?.call(this, err, ok);\n });\n } finally {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"message confirmation has been nack'ed\" });\n }\n span.end();\n }\n };\n const argumentsCopy = [...arguments];\n argumentsCopy[3] = modifiedOptions;\n argumentsCopy[4] = patchedOnConfirm;\n channel[CHANNEL_IS_CONFIRM_PUBLISHING] = true;\n try {\n return original.apply(this, argumentsCopy);\n } finally {\n channel[CHANNEL_IS_CONFIRM_PUBLISHING] = false;\n }\n };\n}\nfunction getPublishPatch(original) {\n return function publish(exchange, routingKey, content, options) {\n if (this[CHANNEL_IS_CONFIRM_PUBLISHING]) {\n return original.apply(this, arguments);\n }\n const channel = this;\n const { span, modifiedOptions } = startPublishSpan(exchange, routingKey, channel, options);\n const argumentsCopy = [...arguments];\n argumentsCopy[3] = modifiedOptions;\n const originalRes = original.apply(this, argumentsCopy);\n span.end();\n return originalRes;\n };\n}\n\nexport { getAckAllPatch, getAckPatch, getChannelEmitPatch, getConfirmedPublishPatch, getConnectPatch, getConsumePatch, getPublishPatch };\n//# sourceMappingURL=patches.js.map\n", + "import { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { AmqplibInstrumentation } from './vendored/instrumentation.js';\n\nconst INTEGRATION_NAME = \"Amqplib\";\nconst instrumentAmqplib = generateInstrumentOnce(INTEGRATION_NAME, () => new AmqplibInstrumentation());\nconst _amqplibIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentAmqplib();\n }\n };\n});\nconst amqplibIntegration = defineIntegration(_amqplibIntegration);\n\nexport { amqplibIntegration, instrumentAmqplib };\n//# sourceMappingURL=index.js.map\n", + "const INTEGRATION_NAME = \"VercelAI\";\n\nexport { INTEGRATION_NAME };\n//# sourceMappingURL=constants.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, getClient, handleCallbackErrors, addNonEnumerableProperty, getActiveSpan, _INTERNAL_getSpanContextForToolCallId, withScope, captureException, _INTERNAL_cleanupToolCallSpanContext } from '@sentry/core';\nimport { INTEGRATION_NAME } from './constants.js';\n\nconst SUPPORTED_VERSIONS = [\">=3.0.0 <7\"];\nconst INSTRUMENTED_METHODS = [\n \"generateText\",\n \"streamText\",\n \"generateObject\",\n \"streamObject\",\n \"embed\",\n \"embedMany\",\n \"rerank\"\n];\nfunction isToolError(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return false;\n }\n const candidate = obj;\n return \"type\" in candidate && \"error\" in candidate && \"toolName\" in candidate && \"toolCallId\" in candidate && candidate.type === \"tool-error\" && candidate.error instanceof Error;\n}\nfunction processToolCallResults(result) {\n if (typeof result !== \"object\" || result === null || !(\"content\" in result)) {\n return;\n }\n const resultObj = result;\n if (!Array.isArray(resultObj.content)) {\n return;\n }\n captureToolErrors(resultObj.content);\n cleanupToolCallSpanContexts(resultObj.content);\n}\nfunction captureToolErrors(content) {\n for (const item of content) {\n if (!isToolError(item)) {\n continue;\n }\n const spanContext = _INTERNAL_getSpanContextForToolCallId(item.toolCallId);\n if (spanContext) {\n withScope((scope) => {\n scope.setContext(\"trace\", {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId\n });\n scope.setTag(\"vercel.ai.tool.name\", item.toolName);\n scope.setTag(\"vercel.ai.tool.callId\", item.toolCallId);\n scope.setLevel(\"error\");\n captureException(item.error, {\n mechanism: {\n type: \"auto.vercelai.otel\",\n handled: false\n }\n });\n });\n } else {\n withScope((scope) => {\n scope.setTag(\"vercel.ai.tool.name\", item.toolName);\n scope.setTag(\"vercel.ai.tool.callId\", item.toolCallId);\n scope.setLevel(\"error\");\n captureException(item.error, {\n mechanism: {\n type: \"auto.vercelai.otel\",\n handled: false\n }\n });\n });\n }\n }\n}\nfunction cleanupToolCallSpanContexts(content) {\n for (const item of content) {\n if (typeof item === \"object\" && item !== null && \"toolCallId\" in item && typeof item.toolCallId === \"string\") {\n _INTERNAL_cleanupToolCallSpanContext(item.toolCallId);\n }\n }\n}\nfunction determineRecordingSettings(integrationRecordingOptions, methodTelemetryOptions, telemetryExplicitlyEnabled, defaultInputsEnabled, defaultOutputsEnabled) {\n const recordInputs = integrationRecordingOptions?.recordInputs !== void 0 ? integrationRecordingOptions.recordInputs : methodTelemetryOptions.recordInputs !== void 0 ? methodTelemetryOptions.recordInputs : telemetryExplicitlyEnabled === true ? true : defaultInputsEnabled;\n const recordOutputs = integrationRecordingOptions?.recordOutputs !== void 0 ? integrationRecordingOptions.recordOutputs : methodTelemetryOptions.recordOutputs !== void 0 ? methodTelemetryOptions.recordOutputs : telemetryExplicitlyEnabled === true ? true : defaultOutputsEnabled;\n return { recordInputs, recordOutputs };\n}\nclass SentryVercelAiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-vercel-ai\", SDK_VERSION, config);\n this._isPatched = false;\n this._callbacks = [];\n }\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\"ai\", SUPPORTED_VERSIONS, this._patch.bind(this));\n return module;\n }\n /**\n * Call the provided callback when the module is patched.\n * If it has already been patched, the callback will be called immediately.\n */\n callWhenPatched(callback) {\n if (this._isPatched) {\n callback();\n } else {\n this._callbacks.push(callback);\n }\n }\n /**\n * Patches module exports to enable Vercel AI telemetry.\n */\n _patch(moduleExports) {\n this._isPatched = true;\n this._callbacks.forEach((callback) => callback());\n this._callbacks = [];\n const generatePatch = (originalMethod) => {\n return new Proxy(originalMethod, {\n apply: (target, thisArg, args) => {\n const existingExperimentalTelemetry = args[0].experimental_telemetry || {};\n const isEnabled = existingExperimentalTelemetry.isEnabled;\n const client = getClient();\n const integration = client?.getIntegrationByName(INTEGRATION_NAME);\n const integrationOptions = integration?.options;\n const genAI = integration ? client?.getDataCollectionOptions().genAI : void 0;\n const { recordInputs, recordOutputs } = determineRecordingSettings(\n integrationOptions,\n existingExperimentalTelemetry,\n isEnabled,\n Boolean(genAI?.inputs),\n Boolean(genAI?.outputs)\n );\n args[0].experimental_telemetry = {\n ...existingExperimentalTelemetry,\n isEnabled: isEnabled !== void 0 ? isEnabled : true,\n recordInputs,\n recordOutputs\n };\n return handleCallbackErrors(\n () => Reflect.apply(target, thisArg, args),\n (error) => {\n if (error && typeof error === \"object\") {\n addNonEnumerableProperty(error, \"_sentry_active_span\", getActiveSpan());\n }\n },\n () => {\n },\n (result) => {\n processToolCallResults(result);\n }\n );\n }\n });\n };\n if (Object.prototype.toString.call(moduleExports) === \"[object Module]\") {\n for (const method of INSTRUMENTED_METHODS) {\n if (moduleExports[method] != null) {\n moduleExports[method] = generatePatch(moduleExports[method]);\n }\n }\n return moduleExports;\n } else {\n const patchedModuleExports = INSTRUMENTED_METHODS.reduce((acc, curr) => {\n if (moduleExports[curr] != null) {\n acc[curr] = generatePatch(moduleExports[curr]);\n }\n return acc;\n }, {});\n return { ...moduleExports, ...patchedModuleExports };\n }\n }\n}\n\nexport { SentryVercelAiInstrumentation, cleanupToolCallSpanContexts, determineRecordingSettings, processToolCallResults };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { defineIntegration, extendIntegration, addVercelAiProcessors } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { vercelAiIntegration } from '@sentry/server-utils';\nimport { INTEGRATION_NAME } from './constants.js';\nimport { SentryVercelAiInstrumentation } from './instrumentation.js';\n\nconst instrumentVercelAi = generateInstrumentOnce(INTEGRATION_NAME, () => new SentryVercelAiInstrumentation({}));\nfunction shouldForceIntegration(client) {\n const modules = client.getIntegrationByName(\"Modules\");\n return !!modules?.getModules?.()?.ai;\n}\nconst _vercelAIIntegration = ((options = {}) => {\n let instrumentation;\n const parentIntegration = vercelAiIntegration(options);\n return extendIntegration(parentIntegration, {\n options,\n setupOnce() {\n instrumentation = instrumentVercelAi();\n },\n afterAllSetup(client) {\n const shouldForce = options.force ?? shouldForceIntegration(client);\n if (shouldForce) {\n addVercelAiProcessors(client);\n } else {\n instrumentation?.callWhenPatched(() => addVercelAiProcessors(client));\n }\n }\n });\n});\nconst vercelAIIntegration = defineIntegration(_vercelAIIntegration);\n\nexport { instrumentVercelAi, vercelAIIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, _INTERNAL_shouldSkipAiProviderWrapping, OPENAI_INTEGRATION_NAME, instrumentOpenAiClient } from '@sentry/core';\n\nconst supportedVersions = [\">=4.0.0 <7\"];\nclass SentryOpenAiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-openai\", SDK_VERSION, config);\n }\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\"openai\", supportedVersions, this._patch.bind(this));\n return module;\n }\n /**\n * Core patch logic applying instrumentation to the OpenAI and AzureOpenAI client constructors.\n */\n _patch(exports) {\n let result = exports;\n result = this._patchClient(result, \"OpenAI\");\n result = this._patchClient(result, \"AzureOpenAI\");\n return result;\n }\n /**\n * Patch logic applying instrumentation to the specified client constructor.\n */\n _patchClient(exports, exportKey) {\n const Original = exports[exportKey];\n if (!Original) {\n return exports;\n }\n const config = this.getConfig();\n const WrappedOpenAI = function(...args) {\n if (_INTERNAL_shouldSkipAiProviderWrapping(OPENAI_INTEGRATION_NAME)) {\n return Reflect.construct(Original, args);\n }\n const instance = Reflect.construct(Original, args);\n return instrumentOpenAiClient(instance, config);\n };\n Object.setPrototypeOf(WrappedOpenAI, Original);\n Object.setPrototypeOf(WrappedOpenAI.prototype, Original.prototype);\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (![\"length\", \"name\", \"prototype\"].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedOpenAI, key, descriptor);\n }\n }\n }\n try {\n exports[exportKey] = WrappedOpenAI;\n } catch {\n Object.defineProperty(exports, exportKey, {\n value: WrappedOpenAI,\n writable: true,\n configurable: true,\n enumerable: true\n });\n }\n if (exports.default === Original) {\n try {\n exports.default = WrappedOpenAI;\n } catch {\n Object.defineProperty(exports, \"default\", {\n value: WrappedOpenAI,\n writable: true,\n configurable: true,\n enumerable: true\n });\n }\n }\n return exports;\n }\n}\n\nexport { SentryOpenAiInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { OPENAI_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryOpenAiInstrumentation } from './instrumentation.js';\n\nconst instrumentOpenAi = generateInstrumentOnce(\n OPENAI_INTEGRATION_NAME,\n (options) => new SentryOpenAiInstrumentation(options)\n);\nconst _openAiIntegration = ((options = {}) => {\n return {\n name: OPENAI_INTEGRATION_NAME,\n setupOnce() {\n instrumentOpenAi(options);\n }\n };\n});\nconst openAIIntegration = defineIntegration(_openAiIntegration);\n\nexport { instrumentOpenAi, openAIIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, _INTERNAL_shouldSkipAiProviderWrapping, ANTHROPIC_AI_INTEGRATION_NAME, instrumentAnthropicAiClient } from '@sentry/core';\n\nconst supportedVersions = [\">=0.19.2 <1.0.0\"];\nclass SentryAnthropicAiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-anthropic-ai\", SDK_VERSION, config);\n }\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n \"@anthropic-ai/sdk\",\n supportedVersions,\n this._patch.bind(this)\n );\n return module;\n }\n /**\n * Core patch logic applying instrumentation to the Anthropic AI client constructor.\n */\n _patch(exports) {\n const Original = exports.Anthropic;\n const config = this.getConfig();\n const WrappedAnthropic = function(...args) {\n if (_INTERNAL_shouldSkipAiProviderWrapping(ANTHROPIC_AI_INTEGRATION_NAME)) {\n return Reflect.construct(Original, args);\n }\n const instance = Reflect.construct(Original, args);\n return instrumentAnthropicAiClient(instance, config);\n };\n Object.setPrototypeOf(WrappedAnthropic, Original);\n Object.setPrototypeOf(WrappedAnthropic.prototype, Original.prototype);\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (![\"length\", \"name\", \"prototype\"].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedAnthropic, key, descriptor);\n }\n }\n }\n try {\n exports.Anthropic = WrappedAnthropic;\n } catch {\n Object.defineProperty(exports, \"Anthropic\", {\n value: WrappedAnthropic,\n writable: true,\n configurable: true,\n enumerable: true\n });\n }\n if (exports.default === Original) {\n try {\n exports.default = WrappedAnthropic;\n } catch {\n Object.defineProperty(exports, \"default\", {\n value: WrappedAnthropic,\n writable: true,\n configurable: true,\n enumerable: true\n });\n }\n }\n return exports;\n }\n}\n\nexport { SentryAnthropicAiInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { ANTHROPIC_AI_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryAnthropicAiInstrumentation } from './instrumentation.js';\n\nconst instrumentAnthropicAi = generateInstrumentOnce(\n ANTHROPIC_AI_INTEGRATION_NAME,\n (options) => new SentryAnthropicAiInstrumentation(options)\n);\nconst _anthropicAIIntegration = ((options = {}) => {\n return {\n name: ANTHROPIC_AI_INTEGRATION_NAME,\n options,\n setupOnce() {\n instrumentAnthropicAi(options);\n }\n };\n});\nconst anthropicAIIntegration = defineIntegration(_anthropicAIIntegration);\n\nexport { anthropicAIIntegration, instrumentAnthropicAi };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { InstrumentationNodeModuleFile } from '../InstrumentationNodeModuleFile.js';\nimport { SDK_VERSION, replaceExports, _INTERNAL_shouldSkipAiProviderWrapping, GOOGLE_GENAI_INTEGRATION_NAME, instrumentGoogleGenAIClient } from '@sentry/core';\n\nconst supportedVersions = [\">=0.10.0 <2\"];\nclass SentryGoogleGenAiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-google-genai\", SDK_VERSION, config);\n }\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n \"@google/genai\",\n supportedVersions,\n (exports) => this._patch(exports),\n (exports) => exports,\n // In CJS, @google/genai re-exports from (dist/node/index.cjs) file.\n // Patching only the root module sometimes misses the real implementation or\n // gets overwritten when that file is loaded. We add a file-level patch so that\n // _patch runs again on the concrete implementation\n [\n new InstrumentationNodeModuleFile(\n \"@google/genai/dist/node/index.cjs\",\n supportedVersions,\n (exports) => this._patch(exports),\n (exports) => exports\n )\n ]\n );\n return module;\n }\n /**\n * Core patch logic applying instrumentation to the Google GenAI client constructor.\n */\n _patch(exports) {\n const Original = exports.GoogleGenAI;\n const config = this.getConfig();\n if (typeof Original !== \"function\") {\n return exports;\n }\n const WrappedGoogleGenAI = function(...args) {\n if (_INTERNAL_shouldSkipAiProviderWrapping(GOOGLE_GENAI_INTEGRATION_NAME)) {\n return Reflect.construct(Original, args);\n }\n const instance = Reflect.construct(Original, args);\n return instrumentGoogleGenAIClient(instance, config);\n };\n Object.setPrototypeOf(WrappedGoogleGenAI, Original);\n Object.setPrototypeOf(WrappedGoogleGenAI.prototype, Original.prototype);\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (![\"length\", \"name\", \"prototype\"].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedGoogleGenAI, key, descriptor);\n }\n }\n }\n replaceExports(exports, \"GoogleGenAI\", WrappedGoogleGenAI);\n return exports;\n }\n}\n\nexport { SentryGoogleGenAiInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { GOOGLE_GENAI_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryGoogleGenAiInstrumentation } from './instrumentation.js';\n\nconst instrumentGoogleGenAI = generateInstrumentOnce(\n GOOGLE_GENAI_INTEGRATION_NAME,\n (options) => new SentryGoogleGenAiInstrumentation(options)\n);\nconst _googleGenAIIntegration = ((options = {}) => {\n return {\n name: GOOGLE_GENAI_INTEGRATION_NAME,\n setupOnce() {\n instrumentGoogleGenAI(options);\n }\n };\n});\nconst googleGenAIIntegration = defineIntegration(_googleGenAIIntegration);\n\nexport { googleGenAIIntegration, instrumentGoogleGenAI };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { InstrumentationNodeModuleFile } from '../InstrumentationNodeModuleFile.js';\nimport { SDK_VERSION, _INTERNAL_skipAiProviderWrapping, OPENAI_INTEGRATION_NAME, ANTHROPIC_AI_INTEGRATION_NAME, GOOGLE_GENAI_INTEGRATION_NAME, createLangChainCallbackHandler, instrumentLangChainEmbeddings, _INTERNAL_mergeLangChainCallbackHandler } from '@sentry/core';\n\nconst supportedVersions = [\">=0.1.0 <2.0.0\"];\nfunction wrapRunnableMethod(originalMethod, sentryHandler, _methodName) {\n return new Proxy(originalMethod, {\n apply(target, thisArg, args) {\n const optionsIndex = 1;\n let options = args[optionsIndex];\n if (!options || typeof options !== \"object\" || Array.isArray(options)) {\n options = {};\n args[optionsIndex] = options;\n }\n options.callbacks = _INTERNAL_mergeLangChainCallbackHandler(options.callbacks, sentryHandler);\n return Reflect.apply(target, thisArg, args);\n }\n });\n}\nclass SentryLangChainInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-langchain\", SDK_VERSION, config);\n }\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n * We patch the BaseChatModel class methods to inject callbacks\n *\n * We hook into provider packages (@langchain/anthropic, @langchain/openai, etc.)\n * because @langchain/core is often bundled and not loaded as a separate module\n */\n init() {\n const modules = [];\n const providerPackages = [\n \"@langchain/anthropic\",\n \"@langchain/openai\",\n \"@langchain/google-genai\",\n \"@langchain/mistralai\",\n \"@langchain/google-vertexai\",\n \"@langchain/groq\"\n ];\n for (const packageName of providerPackages) {\n modules.push(\n new InstrumentationNodeModuleDefinition(\n packageName,\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports,\n [\n new InstrumentationNodeModuleFile(\n `${packageName}/dist/index.cjs`,\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports\n )\n ]\n )\n );\n }\n modules.push(\n new InstrumentationNodeModuleDefinition(\n \"langchain\",\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports,\n [\n // To catch the CJS build that contains ConfigurableModel / initChatModel for v1\n new InstrumentationNodeModuleFile(\n \"langchain/dist/chat_models/universal.cjs\",\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports\n )\n ]\n )\n );\n return modules;\n }\n /**\n * Core patch logic - patches chat model and embedding methods\n * This is called when a LangChain provider package is loaded\n */\n _patch(exports) {\n _INTERNAL_skipAiProviderWrapping([\n OPENAI_INTEGRATION_NAME,\n ANTHROPIC_AI_INTEGRATION_NAME,\n GOOGLE_GENAI_INTEGRATION_NAME\n ]);\n const config = this.getConfig();\n const sentryHandler = createLangChainCallbackHandler(config);\n this._patchRunnableMethods(exports, sentryHandler);\n this._patchEmbeddingsMethods(exports, config);\n return exports;\n }\n /**\n * Patches chat model methods (invoke, stream, batch) to inject Sentry callbacks\n * Finds a chat model class from the provider package exports and patches its prototype methods\n */\n _patchRunnableMethods(exports, sentryHandler) {\n const knownChatModelNames = [\n \"ChatAnthropic\",\n \"ChatOpenAI\",\n \"ChatGoogleGenerativeAI\",\n \"ChatMistralAI\",\n \"ChatVertexAI\",\n \"ChatGroq\",\n \"ConfigurableModel\"\n ];\n const exportsToPatch = exports.universal_exports ?? exports;\n const chatModelClass = Object.values(exportsToPatch).find((exp) => {\n return typeof exp === \"function\" && knownChatModelNames.includes(exp.name);\n });\n if (!chatModelClass) {\n return;\n }\n const targetProto = chatModelClass.prototype;\n if (targetProto.__sentry_patched__) {\n return;\n }\n targetProto.__sentry_patched__ = true;\n const methodsToPatch = [\"invoke\", \"stream\", \"batch\"];\n for (const methodName of methodsToPatch) {\n const method = targetProto[methodName];\n if (typeof method === \"function\") {\n targetProto[methodName] = wrapRunnableMethod(\n method,\n sentryHandler);\n }\n }\n }\n /**\n * Patches embedding class methods (embedQuery, embedDocuments) to create Sentry spans.\n *\n * Unlike chat models which use LangChain's callback system, the Embeddings base class\n * has no callback support. We wrap the methods directly on the prototype.\n *\n * Instruments any exported class whose prototype has both embedQuery and embedDocuments as functions.\n */\n _patchEmbeddingsMethods(exports, options) {\n const exportsToPatch = exports.universal_exports ?? exports;\n for (const exp of Object.values(exportsToPatch)) {\n if (typeof exp !== \"function\" || !exp.prototype) {\n continue;\n }\n const proto = exp.prototype;\n if (typeof proto.embedQuery !== \"function\" || typeof proto.embedDocuments !== \"function\") {\n continue;\n }\n if (proto.__sentry_patched__) {\n continue;\n }\n proto.__sentry_patched__ = true;\n instrumentLangChainEmbeddings(proto, options);\n }\n }\n}\n\nexport { SentryLangChainInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { LANGCHAIN_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryLangChainInstrumentation } from './instrumentation.js';\n\nconst instrumentLangChain = generateInstrumentOnce(\n LANGCHAIN_INTEGRATION_NAME,\n (options) => new SentryLangChainInstrumentation(options)\n);\nconst _langChainIntegration = ((options = {}) => {\n return {\n name: LANGCHAIN_INTEGRATION_NAME,\n setupOnce() {\n instrumentLangChain(options);\n }\n };\n});\nconst langChainIntegration = defineIntegration(_langChainIntegration);\n\nexport { instrumentLangChain, langChainIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { InstrumentationNodeModuleFile } from '../InstrumentationNodeModuleFile.js';\nimport { SDK_VERSION, getClient, instrumentLangGraph, instrumentCreateReactAgent } from '@sentry/core';\n\nconst supportedVersions = [\">=0.0.0 <2.0.0\"];\nclass SentryLangGraphInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-langgraph\", SDK_VERSION, config);\n }\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n \"@langchain/langgraph\",\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports,\n [\n new InstrumentationNodeModuleFile(\n /**\n * In CJS, LangGraph packages re-export from dist/index.cjs files.\n * Patching only the root module sometimes misses the real implementation or\n * gets overwritten when that file is loaded. We add a file-level patch so that\n * _patch runs again on the concrete implementation\n */\n \"@langchain/langgraph/dist/index.cjs\",\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports\n ),\n new InstrumentationNodeModuleFile(\n /**\n * In CJS, the prebuilt submodule re-exports from dist/prebuilt/index.cjs.\n * We add a file-level patch under the main module so that CJS require()\n * of @langchain/langgraph/prebuilt gets patched.\n */\n \"@langchain/langgraph/dist/prebuilt/index.cjs\",\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports\n )\n ]\n ),\n new InstrumentationNodeModuleDefinition(\n \"@langchain/langgraph/prebuilt\",\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports,\n [\n new InstrumentationNodeModuleFile(\n /**\n * In CJS, the prebuilt submodule re-exports from dist/prebuilt/index.cjs.\n * We add file-level patches so _patch runs on the concrete implementation.\n */\n \"@langchain/langgraph/dist/prebuilt/index.cjs\",\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports\n )\n ]\n )\n ];\n }\n /**\n * Core patch logic applying instrumentation to the LangGraph module.\n */\n _patch(exports) {\n const client = getClient();\n const genAI = client?.getDataCollectionOptions().genAI;\n const options = {\n ...this.getConfig(),\n recordInputs: this.getConfig().recordInputs ?? genAI?.inputs ?? false,\n recordOutputs: this.getConfig().recordOutputs ?? genAI?.outputs ?? false\n };\n if (exports.StateGraph && typeof exports.StateGraph === \"function\") {\n instrumentLangGraph(exports.StateGraph.prototype, options);\n }\n if (exports.createReactAgent && typeof exports.createReactAgent === \"function\") {\n const originalCreateReactAgent = exports.createReactAgent;\n Object.defineProperty(exports, \"createReactAgent\", {\n value: instrumentCreateReactAgent(originalCreateReactAgent, options),\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n return exports;\n }\n}\n\nexport { SentryLangGraphInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { LANGGRAPH_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryLangGraphInstrumentation } from './instrumentation.js';\n\nconst instrumentLangGraph = generateInstrumentOnce(\n LANGGRAPH_INTEGRATION_NAME,\n (options) => new SentryLangGraphInstrumentation(options)\n);\nconst _langGraphIntegration = ((options = {}) => {\n return {\n name: LANGGRAPH_INTEGRATION_NAME,\n setupOnce() {\n instrumentLangGraph(options);\n }\n };\n});\nconst langGraphIntegration = defineIntegration(_langGraphIntegration);\n\nexport { instrumentLangGraph, langGraphIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION } from '@sentry/core';\nimport { patchFirestore } from './patches/firestore.js';\nimport { patchFunctions } from './patches/functions.js';\n\nconst firestoreSupportedVersions = [\">=3.0.0 <5\"];\nconst functionsSupportedVersions = [\">=6.0.0 <7\"];\nclass FirebaseInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-firebase\", SDK_VERSION, config);\n }\n /**\n *\n * @protected\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n init() {\n const modules = [];\n modules.push(patchFirestore(firestoreSupportedVersions, this._wrap, this._unwrap));\n modules.push(patchFunctions(functionsSupportedVersions, this._wrap, this._unwrap));\n return modules;\n }\n}\n\nexport { FirebaseInstrumentation };\n//# sourceMappingURL=firebaseInstrumentation.js.map\n", + "import * as net from 'node:net';\nimport { InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { InstrumentationNodeModuleFile } from '../../../InstrumentationNodeModuleFile.js';\nimport { ATTR_DB_OPERATION_NAME, ATTR_DB_NAMESPACE, ATTR_DB_COLLECTION_NAME, ATTR_DB_SYSTEM_NAME, ATTR_SERVER_ADDRESS, ATTR_SERVER_PORT } from '@opentelemetry/semantic-conventions';\nimport { startSpan, SPAN_KIND, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\n\nfunction patchFirestore(firestoreSupportedVersions, wrap, unwrap) {\n const moduleFirestoreCJS = new InstrumentationNodeModuleDefinition(\n \"@firebase/firestore\",\n firestoreSupportedVersions,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (moduleExports) => wrapMethods(moduleExports, wrap, unwrap)\n );\n const files = [\n \"@firebase/firestore/dist/lite/index.node.cjs.js\",\n \"@firebase/firestore/dist/lite/index.node.mjs.js\",\n \"@firebase/firestore/dist/lite/index.rn.esm2017.js\",\n \"@firebase/firestore/dist/lite/index.cjs.js\"\n ];\n for (const file of files) {\n moduleFirestoreCJS.files.push(\n new InstrumentationNodeModuleFile(\n file,\n firestoreSupportedVersions,\n (moduleExports) => wrapMethods(moduleExports, wrap, unwrap),\n (moduleExports) => unwrapMethods(moduleExports, unwrap)\n )\n );\n }\n return moduleFirestoreCJS;\n}\nfunction wrapMethods(moduleExports, wrap, unwrap) {\n unwrapMethods(moduleExports, unwrap);\n wrap(moduleExports, \"addDoc\", patchAddDoc());\n wrap(moduleExports, \"getDocs\", patchGetDocs());\n wrap(moduleExports, \"setDoc\", patchSetDoc());\n wrap(moduleExports, \"deleteDoc\", patchDeleteDoc());\n return moduleExports;\n}\nfunction unwrapMethods(moduleExports, unwrap) {\n for (const method of [\"addDoc\", \"getDocs\", \"setDoc\", \"deleteDoc\"]) {\n if (isWrapped(moduleExports[method])) {\n unwrap(moduleExports, method);\n }\n }\n return moduleExports;\n}\nfunction patchAddDoc() {\n return function addDoc(original) {\n return function(reference, data) {\n return startFirestoreSpan(\"addDoc\", reference, () => original(reference, data));\n };\n };\n}\nfunction patchDeleteDoc() {\n return function deleteDoc(original) {\n return function(reference) {\n return startFirestoreSpan(\"deleteDoc\", reference.parent || reference, () => original(reference));\n };\n };\n}\nfunction patchGetDocs() {\n return function getDocs(original) {\n return function(reference) {\n return startFirestoreSpan(\"getDocs\", reference, () => original(reference));\n };\n };\n}\nfunction patchSetDoc() {\n return function setDoc(original) {\n return function(reference, data, options) {\n return startFirestoreSpan(\"setDoc\", reference.parent || reference, () => {\n return typeof options !== \"undefined\" ? original(reference, data, options) : original(reference, data);\n });\n };\n };\n}\nfunction startFirestoreSpan(spanName, reference, callback) {\n return startSpan(\n {\n name: `${spanName} ${reference.path}`,\n op: \"db.query\",\n kind: SPAN_KIND.CLIENT,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.firebase.otel.firestore\",\n [ATTR_DB_OPERATION_NAME]: spanName,\n ...buildAttributes(reference)\n }\n },\n callback\n );\n}\nfunction getPortAndAddress(settings) {\n let address;\n let port;\n if (typeof settings.host === \"string\") {\n if (settings.host.startsWith(\"[\")) {\n if (settings.host.endsWith(\"]\")) {\n address = settings.host.replace(/^\\[|\\]$/g, \"\");\n } else if (settings.host.includes(\"]:\")) {\n const lastColonIndex = settings.host.lastIndexOf(\":\");\n if (lastColonIndex !== -1) {\n address = settings.host.slice(1, lastColonIndex).replace(/^\\[|\\]$/g, \"\");\n port = settings.host.slice(lastColonIndex + 1);\n }\n }\n } else {\n if (net.isIPv6(settings.host)) {\n address = settings.host;\n } else {\n const lastColonIndex = settings.host.lastIndexOf(\":\");\n if (lastColonIndex !== -1) {\n address = settings.host.slice(0, lastColonIndex);\n port = settings.host.slice(lastColonIndex + 1);\n } else {\n address = settings.host;\n }\n }\n }\n }\n return {\n address,\n port: port ? parseInt(port, 10) : void 0\n };\n}\nfunction buildAttributes(reference) {\n const firestoreApp = reference.firestore.app;\n const firestoreOptions = firestoreApp.options;\n const json = reference.firestore.toJSON() || {};\n const settings = json.settings || {};\n const attributes = {\n [ATTR_DB_COLLECTION_NAME]: reference.path,\n [ATTR_DB_NAMESPACE]: firestoreApp.name,\n [ATTR_DB_SYSTEM_NAME]: \"firebase.firestore\",\n \"firebase.firestore.type\": reference.type,\n \"firebase.firestore.options.projectId\": firestoreOptions.projectId,\n \"firebase.firestore.options.appId\": firestoreOptions.appId,\n \"firebase.firestore.options.messagingSenderId\": firestoreOptions.messagingSenderId,\n \"firebase.firestore.options.storageBucket\": firestoreOptions.storageBucket\n };\n const { address, port } = getPortAndAddress(settings);\n if (address) {\n attributes[ATTR_SERVER_ADDRESS] = address;\n }\n if (port) {\n attributes[ATTR_SERVER_PORT] = port;\n }\n return attributes;\n}\n\nexport { getPortAndAddress, patchFirestore };\n//# sourceMappingURL=firestore.js.map\n", + "import { InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { InstrumentationNodeModuleFile } from '../../../InstrumentationNodeModuleFile.js';\nimport { startSpanManual, SPAN_KIND, SPAN_STATUS_ERROR, captureException, flush, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\n\nfunction patchFunctions(functionsSupportedVersions, wrap, unwrap) {\n const moduleFunctionsCJS = new InstrumentationNodeModuleDefinition(\"firebase-functions\", functionsSupportedVersions);\n const modulesToInstrument = [\n { name: \"firebase-functions/lib/v2/providers/https.js\", triggerType: \"function\" },\n { name: \"firebase-functions/lib/v2/providers/firestore.js\", triggerType: \"firestore\" },\n { name: \"firebase-functions/lib/v2/providers/scheduler.js\", triggerType: \"scheduler\" },\n { name: \"firebase-functions/lib/v2/storage.js\", triggerType: \"storage\" }\n ];\n modulesToInstrument.forEach(({ name, triggerType }) => {\n moduleFunctionsCJS.files.push(\n new InstrumentationNodeModuleFile(\n name,\n functionsSupportedVersions,\n (moduleExports) => wrapCommonFunctions(moduleExports, wrap, unwrap, triggerType),\n (moduleExports) => unwrapCommonFunctions(moduleExports, unwrap)\n )\n );\n });\n return moduleFunctionsCJS;\n}\nfunction patchV2Functions(triggerType) {\n return function v2FunctionsWrapper(original) {\n return function(...args) {\n const handler = typeof args[0] === \"function\" ? args[0] : args[1];\n const documentOrOptions = typeof args[0] === \"function\" ? void 0 : args[0];\n if (!handler) {\n return original.call(this, ...args);\n }\n const wrappedHandler = async function(...handlerArgs) {\n const functionName = process.env.FUNCTION_TARGET || process.env.K_SERVICE || \"unknown\";\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.firebase.otel.functions\",\n \"faas.name\": functionName,\n \"faas.trigger\": triggerType,\n \"faas.provider\": \"firebase\"\n };\n if (process.env.GCLOUD_PROJECT) {\n attributes[\"cloud.project_id\"] = process.env.GCLOUD_PROJECT;\n }\n if (process.env.EVENTARC_CLOUD_EVENT_SOURCE) {\n attributes[\"cloud.event_source\"] = process.env.EVENTARC_CLOUD_EVENT_SOURCE;\n }\n return startSpanManual(\n {\n name: `firebase.function.${triggerType}`,\n op: \"http.request\",\n kind: SPAN_KIND.SERVER,\n attributes\n },\n async (span) => {\n try {\n const result = await handler.apply(this, handlerArgs);\n span.end();\n return result;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR });\n captureException(error, {\n mechanism: {\n type: \"auto.firebase.otel.functions\",\n handled: false\n }\n });\n span.end();\n await flush(2e3);\n throw error;\n }\n }\n );\n };\n if (documentOrOptions) {\n return original.call(this, documentOrOptions, wrappedHandler);\n } else {\n return original.call(this, wrappedHandler);\n }\n };\n };\n}\nfunction wrapCommonFunctions(moduleExports, wrap, unwrap, triggerType) {\n unwrapCommonFunctions(moduleExports, unwrap);\n switch (triggerType) {\n case \"function\":\n wrap(moduleExports, \"onRequest\", patchV2Functions(\"http.request\"));\n wrap(moduleExports, \"onCall\", patchV2Functions(\"http.call\"));\n break;\n case \"firestore\":\n wrap(moduleExports, \"onDocumentCreated\", patchV2Functions(\"firestore.document.created\"));\n wrap(moduleExports, \"onDocumentUpdated\", patchV2Functions(\"firestore.document.updated\"));\n wrap(moduleExports, \"onDocumentDeleted\", patchV2Functions(\"firestore.document.deleted\"));\n wrap(moduleExports, \"onDocumentWritten\", patchV2Functions(\"firestore.document.written\"));\n wrap(moduleExports, \"onDocumentCreatedWithAuthContext\", patchV2Functions(\"firestore.document.created\"));\n wrap(moduleExports, \"onDocumentUpdatedWithAuthContext\", patchV2Functions(\"firestore.document.updated\"));\n wrap(moduleExports, \"onDocumentDeletedWithAuthContext\", patchV2Functions(\"firestore.document.deleted\"));\n wrap(moduleExports, \"onDocumentWrittenWithAuthContext\", patchV2Functions(\"firestore.document.written\"));\n break;\n case \"scheduler\":\n wrap(moduleExports, \"onSchedule\", patchV2Functions(\"scheduler.scheduled\"));\n break;\n case \"storage\":\n wrap(moduleExports, \"onObjectFinalized\", patchV2Functions(\"storage.object.finalized\"));\n wrap(moduleExports, \"onObjectArchived\", patchV2Functions(\"storage.object.archived\"));\n wrap(moduleExports, \"onObjectDeleted\", patchV2Functions(\"storage.object.deleted\"));\n wrap(moduleExports, \"onObjectMetadataUpdated\", patchV2Functions(\"storage.object.metadataUpdated\"));\n break;\n }\n return moduleExports;\n}\nfunction unwrapCommonFunctions(moduleExports, unwrap) {\n const methods = [\n \"onSchedule\",\n \"onRequest\",\n \"onCall\",\n \"onObjectFinalized\",\n \"onObjectArchived\",\n \"onObjectDeleted\",\n \"onObjectMetadataUpdated\",\n \"onDocumentCreated\",\n \"onDocumentUpdated\",\n \"onDocumentDeleted\",\n \"onDocumentWritten\",\n \"onDocumentCreatedWithAuthContext\",\n \"onDocumentUpdatedWithAuthContext\",\n \"onDocumentDeletedWithAuthContext\",\n \"onDocumentWrittenWithAuthContext\"\n ];\n for (const method of methods) {\n if (isWrapped(moduleExports[method])) {\n unwrap(moduleExports, method);\n }\n }\n return moduleExports;\n}\n\nexport { patchFunctions, patchV2Functions };\n//# sourceMappingURL=functions.js.map\n", + "import { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { FirebaseInstrumentation } from './otel/firebaseInstrumentation.js';\n\nconst INTEGRATION_NAME = \"Firebase\";\nconst instrumentFirebase = generateInstrumentOnce(INTEGRATION_NAME, () => new FirebaseInstrumentation());\nconst _firebaseIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentFirebase();\n }\n };\n});\nconst firebaseIntegration = defineIntegration(_firebaseIntegration);\n\nexport { firebaseIntegration, instrumentFirebase };\n//# sourceMappingURL=firebase.js.map\n", + "import { instrumentSentryHttp } from '../http.js';\nimport { instrumentAmqplib, amqplibIntegration } from './amqplib/index.js';\nimport { instrumentAnthropicAi, anthropicAIIntegration } from './anthropic-ai/index.js';\nimport { instrumentConnect, connectIntegration } from './connect/index.js';\nimport { instrumentExpress, expressIntegration } from './express.js';\nimport { instrumentFastifyV3, fastifyIntegration } from './fastify/index.js';\nimport { instrumentFirebase, firebaseIntegration } from './firebase/firebase.js';\nimport { instrumentGenericPool, genericPoolIntegration } from './genericPool/index.js';\nimport { instrumentGoogleGenAI, googleGenAIIntegration } from './google-genai/index.js';\nimport { instrumentGraphql, graphqlIntegration } from './graphql/index.js';\nimport { instrumentHapi, hapiIntegration } from './hapi/index.js';\nimport { instrumentHono, honoIntegration } from './hono/index.js';\nimport { instrumentKafka, kafkaIntegration } from './kafka/index.js';\nimport { instrumentKoa, koaIntegration } from './koa/index.js';\nimport { instrumentLangChain, langChainIntegration } from './langchain/index.js';\nimport { instrumentLangGraph, langGraphIntegration } from './langgraph/index.js';\nimport { instrumentLruMemoizer, lruMemoizerIntegration } from './lrumemoizer/index.js';\nimport { instrumentMongo, mongoIntegration } from './mongo/index.js';\nimport { instrumentMongoose, mongooseIntegration } from './mongoose/index.js';\nimport { instrumentMysql, mysqlIntegration } from './mysql/index.js';\nimport { instrumentMysql2, mysql2Integration } from './mysql2/index.js';\nimport { instrumentOpenAi, openAIIntegration } from './openai/index.js';\nimport { instrumentPostgres, postgresIntegration } from './postgres/index.js';\nimport { instrumentPostgresJs, postgresJsIntegration } from './postgresjs.js';\nimport { prismaIntegration } from './prisma/index.js';\nimport { instrumentRedis, redisIntegration } from './redis/index.js';\nimport { instrumentTedious, tediousIntegration } from './tedious/index.js';\nimport { instrumentVercelAi, vercelAIIntegration } from './vercelai/index.js';\n\nfunction getAutoPerformanceIntegrations() {\n return [\n expressIntegration(),\n fastifyIntegration(),\n graphqlIntegration(),\n // eslint-disable-next-line typescript/no-deprecated\n honoIntegration(),\n mongoIntegration(),\n mongooseIntegration(),\n mysqlIntegration(),\n mysql2Integration(),\n redisIntegration(),\n postgresIntegration(),\n prismaIntegration(),\n hapiIntegration(),\n koaIntegration(),\n connectIntegration(),\n tediousIntegration(),\n genericPoolIntegration(),\n kafkaIntegration(),\n amqplibIntegration(),\n lruMemoizerIntegration(),\n // AI providers\n // LangChain must come first to disable AI provider integrations before they instrument\n langChainIntegration(),\n langGraphIntegration(),\n vercelAIIntegration(),\n openAIIntegration(),\n anthropicAIIntegration(),\n googleGenAIIntegration(),\n postgresJsIntegration(),\n firebaseIntegration()\n ];\n}\nfunction getOpenTelemetryInstrumentationToPreload() {\n return [\n instrumentSentryHttp,\n instrumentExpress,\n instrumentConnect,\n instrumentFastifyV3,\n instrumentHapi,\n instrumentHono,\n instrumentKafka,\n instrumentKoa,\n instrumentLruMemoizer,\n instrumentMongo,\n instrumentMongoose,\n instrumentMysql,\n instrumentMysql2,\n instrumentPostgres,\n instrumentHapi,\n instrumentGraphql,\n instrumentRedis,\n instrumentTedious,\n instrumentGenericPool,\n instrumentAmqplib,\n instrumentLangChain,\n instrumentVercelAi,\n instrumentOpenAi,\n instrumentPostgresJs,\n instrumentFirebase,\n instrumentAnthropicAi,\n instrumentGoogleGenAI,\n instrumentLangGraph\n ];\n}\n\nexport { getAutoPerformanceIntegrations, getOpenTelemetryInstrumentationToPreload };\n//# sourceMappingURL=index.js.map\n", + "let loader;\nlet cached;\nfunction setDiagnosticsChannelInjectionLoader(load) {\n loader = load;\n}\nfunction isDiagnosticsChannelInjectionEnabled() {\n return !!loader;\n}\nfunction resolveDiagnosticsChannelInjection() {\n if (!loader) {\n return void 0;\n }\n return cached ?? (cached = loader());\n}\n\nexport { isDiagnosticsChannelInjectionEnabled, resolveDiagnosticsChannelInjection, setDiagnosticsChannelInjectionLoader };\n//# sourceMappingURL=diagnosticsChannelInjection.js.map\n", + "import { trace, propagation, context } from '@opentelemetry/api';\nimport { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';\nimport { debug } from '@sentry/core';\nimport { setupOpenTelemetryLogger, SentryContextManager, initializeEsmLoader } from '@sentry/node-core';\nimport { SentrySpanProcessor, SentrySampler, getSentryResource, SentryPropagator } from '@sentry/opentelemetry';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { getOpenTelemetryInstrumentationToPreload } from '../integrations/tracing/index.js';\n\nconst MAX_MAX_SPAN_WAIT_DURATION = 1e6;\nfunction initOpenTelemetry(client, options = {}) {\n if (client.getOptions().debug) {\n setupOpenTelemetryLogger();\n }\n const [provider, asyncLocalStorageLookup] = setupOtel(client, options);\n client.traceProvider = provider;\n client.asyncLocalStorageLookup = asyncLocalStorageLookup;\n}\nfunction preloadOpenTelemetry(options = {}) {\n const { debug: debug$1 } = options;\n if (debug$1) {\n debug.enable();\n }\n initializeEsmLoader();\n getPreloadMethods(options.integrations).forEach((fn) => {\n fn();\n if (debug$1) {\n debug.log(`[Sentry] Preloaded ${fn.id} instrumentation`);\n }\n });\n}\nfunction getPreloadMethods(integrationNames) {\n const instruments = getOpenTelemetryInstrumentationToPreload();\n if (!integrationNames) {\n return instruments;\n }\n return instruments.filter((instrumentation) => {\n const id = instrumentation.id;\n return integrationNames.some((integrationName) => id === integrationName || id.startsWith(`${integrationName}.`));\n });\n}\nfunction setupOtel(client, options = {}) {\n const provider = new BasicTracerProvider({\n sampler: new SentrySampler(client),\n resource: getSentryResource(\"node\"),\n forceFlushTimeoutMillis: 500,\n spanProcessors: [\n new SentrySpanProcessor({\n timeout: _clampSpanProcessorTimeout(client.getOptions().maxSpanWaitDuration),\n client\n }),\n ...options.spanProcessors || []\n ]\n });\n trace.setGlobalTracerProvider(provider);\n propagation.setGlobalPropagator(new SentryPropagator());\n const ctxManager = new SentryContextManager();\n context.setGlobalContextManager(ctxManager);\n return [provider, ctxManager.getAsyncLocalStorageLookup()];\n}\nfunction _clampSpanProcessorTimeout(maxSpanWaitDuration) {\n if (maxSpanWaitDuration == null) {\n return void 0;\n }\n if (maxSpanWaitDuration > MAX_MAX_SPAN_WAIT_DURATION) {\n DEBUG_BUILD && debug.warn(`\\`maxSpanWaitDuration\\` is too high, using the maximum value of ${MAX_MAX_SPAN_WAIT_DURATION}`);\n return MAX_MAX_SPAN_WAIT_DURATION;\n } else if (maxSpanWaitDuration <= 0 || Number.isNaN(maxSpanWaitDuration)) {\n DEBUG_BUILD && debug.warn(\"`maxSpanWaitDuration` must be a positive number, using default value instead.\");\n return void 0;\n }\n return maxSpanWaitDuration;\n}\n\nexport { _clampSpanProcessorTimeout, initOpenTelemetry, preloadOpenTelemetry, setupOtel };\n//# sourceMappingURL=initOtel.js.map\n", + "import { applySdkMetadata, hasSpansEnabled } from '@sentry/core';\nimport { init as init$1, validateOpenTelemetrySetup, getDefaultIntegrations as getDefaultIntegrations$1 } from '@sentry/node-core';\nimport { httpIntegration } from '../integrations/http.js';\nimport { nativeNodeFetchIntegration } from '../integrations/node-fetch/index.js';\nimport { getAutoPerformanceIntegrations } from '../integrations/tracing/index.js';\nimport { isDiagnosticsChannelInjectionEnabled, resolveDiagnosticsChannelInjection } from './diagnosticsChannelInjection.js';\nimport { initOpenTelemetry } from './initOtel.js';\n\nfunction getDefaultIntegrationsWithoutPerformance() {\n const nodeCoreIntegrations = getDefaultIntegrations$1();\n return nodeCoreIntegrations.filter((integration) => integration.name !== \"Http\" && integration.name !== \"NodeFetch\").concat(httpIntegration(), nativeNodeFetchIntegration());\n}\nfunction getDefaultIntegrations(options) {\n const integrations = [\n ...getDefaultIntegrationsWithoutPerformance(),\n // We only add performance integrations if tracing is enabled\n // Note that this means that without tracing enabled, e.g. `expressIntegration()` will not be added\n // This means that generally request isolation will work (because that is done by httpIntegration)\n // But `transactionName` will not be set automatically\n ...hasSpansEnabled(options) ? getAutoPerformanceIntegrations() : []\n ];\n if (isDiagnosticsChannelInjectionEnabled() && hasSpansEnabled(options)) {\n const diagnosticsChannelInjection = resolveDiagnosticsChannelInjection();\n if (diagnosticsChannelInjection) {\n const replaced = new Set(diagnosticsChannelInjection.replacedOtelIntegrationNames);\n return [...integrations.filter((i) => !replaced.has(i.name)), ...diagnosticsChannelInjection.integrations];\n }\n }\n return integrations;\n}\nfunction init(options = {}) {\n return _init(options, getDefaultIntegrations);\n}\nfunction _init(options = {}, getDefaultIntegrationsImpl) {\n applySdkMetadata(options, \"node\");\n const diagnosticsChannelInjection = isDiagnosticsChannelInjectionEnabled() && hasSpansEnabled(options) ? resolveDiagnosticsChannelInjection() : void 0;\n if (diagnosticsChannelInjection) {\n diagnosticsChannelInjection.register();\n }\n const client = init$1({\n ...options,\n // Only use Node SDK defaults if none provided\n defaultIntegrations: options.defaultIntegrations ?? getDefaultIntegrationsImpl(options)\n });\n if (client && !options.skipOpenTelemetrySetup) {\n initOpenTelemetry(client, {\n spanProcessors: options.openTelemetrySpanProcessors\n });\n validateOpenTelemetrySetup();\n }\n if (diagnosticsChannelInjection) {\n diagnosticsChannelInjection.detect();\n }\n return client;\n}\nfunction initWithoutDefaultIntegrations(options = {}) {\n return _init(options, () => []);\n}\n\nexport { getDefaultIntegrations, getDefaultIntegrationsWithoutPerformance, init, initWithoutDefaultIntegrations };\n//# sourceMappingURL=index.js.map\n", "import * as Sentry from '@sentry/node'\nimport type { Event } from '@sentry/node'\nimport type { ElideFormatActionOptions } from './options'\n\n// Public DSN — not a secret. Only allows sending events, not reading them.\nconst SENTRY_DSN =\n 'https://b5a33745f4bf36a0f1e66dbcfceaa898@o4510814125228032.ingest.us.sentry.io/4511124523974656'\n\nconst ACTION_VERSION = '1.0.0'\n\nlet telemetryEnabled = false\n\n// Environment variable patterns that could contain secrets.\nconst SENSITIVE_PATTERNS = [\n /token/i,\n /secret/i,\n /password/i,\n /key/i,\n /credential/i,\n /auth/i,\n /^GITHUB_/i,\n /^AWS_/i,\n /^AZURE_/i,\n /^GCP_/i,\n /^NPM_/i,\n /^NODE_AUTH/i\n]\n\n/**\n * Scrub a string of any values that look like they came from sensitive env vars.\n * Replaces any known env var value found in the string with [REDACTED].\n */\nfunction scrubEnvVars(input: string): string {\n let result = input\n for (const [key, value] of Object.entries(process.env)) {\n if (!value || value.length < 8) continue\n if (SENSITIVE_PATTERNS.some(p => p.test(key))) {\n result = result.replaceAll(value, '[REDACTED]')\n }\n }\n return result\n}\n\n/**\n * Scrub an entire Sentry event of sensitive data.\n */\nfunction scrubEvent(event: Event): Event {\n delete event.server_name\n delete event.extra\n delete event.user\n delete event.request\n event.contexts = {}\n event.breadcrumbs = []\n\n if (event.exception?.values) {\n for (const ex of event.exception.values) {\n if (ex.value) {\n ex.value = scrubEnvVars(ex.value)\n }\n }\n }\n\n if (event.message) {\n event.message = scrubEnvVars(event.message)\n }\n\n return event\n}\n\n/**\n * Initialize Sentry telemetry with aggressive scrubbing.\n * Enables error reporting, tracing, and metrics.\n * No environment data, no PII, no secrets — only the error/span and action config tags.\n */\nexport function initTelemetry(\n enabled: boolean,\n options: ElideFormatActionOptions\n): void {\n telemetryEnabled = enabled\n if (!enabled) return\n\n Sentry.init({\n dsn: SENTRY_DSN,\n defaultIntegrations: false,\n environment: 'production',\n release: `format@${ACTION_VERSION}`,\n tracesSampleRate: 1.0,\n beforeSend(event) {\n return scrubEvent(event)\n },\n beforeSendTransaction(event) {\n return scrubEvent(event)\n }\n })\n\n Sentry.setTags({\n formatter: options.formatter,\n mode: options.mode,\n action_version: ACTION_VERSION\n })\n}\n\n/**\n * Report an error to Sentry with optional additional tags.\n */\nexport function reportError(\n err: Error,\n context?: Record\n): void {\n if (!telemetryEnabled) return\n\n Sentry.withScope(scope => {\n if (context) {\n for (const [k, v] of Object.entries(context)) {\n scope.setTag(k, v)\n }\n }\n Sentry.captureException(err)\n })\n}\n\n/**\n * Run an async function inside a Sentry tracing span.\n * If telemetry is disabled, runs the function directly.\n */\nexport async function withSpan(\n name: string,\n op: string,\n fn: () => Promise\n): Promise {\n if (!telemetryEnabled) return fn()\n\n return Sentry.startSpan(\n { name, op, attributes: { 'sentry.origin': 'manual' } },\n async () => fn()\n )\n}\n\n/**\n * Record a metric gauge value (e.g., install duration).\n */\nexport function recordMetric(\n name: string,\n value: number,\n unit: string,\n tags?: Record\n): void {\n if (!telemetryEnabled) return\n Sentry.metrics.gauge(name, value, { unit, tags })\n}\n\n/**\n * Log an informational event to Sentry.\n */\nexport function logEvent(message: string, data?: Record): void {\n if (!telemetryEnabled) return\n Sentry.captureMessage(message, {\n level: 'info',\n tags: data\n })\n}\n\n/**\n * Flush pending Sentry events. Call before process exit.\n */\nexport async function flushTelemetry(): Promise {\n if (!telemetryEnabled) return\n await Sentry.flush(2000)\n}\n", "/**\n * The entrypoint for the action.\n */\nimport { run } from './main'\n\nrun()\n" ], - "mappings": "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AAW,GAAO,WAAW,sBAC7B,aAAc,IAAM,CACtB,EACA,CACE,IAAK,UACL,UAAW,GAAO,WAAW,QAC7B,aAAc,IAAM,EACtB,EACA,CACE,IAAK,aACL,UAAW,GAAO,WAAW,QAC7B,aAAc,IAAM,EACtB,EACA,CACE,IAAK,WACL,UAAW,GAAO,WAAW,QAC7B,aAAc,IAAM,EACtB,CACF,CAAC,EAED,GAAO,QAAU,CACf,gBACF,wBCvEA,SAAS,GAAY,CAAC,EAAO,CAC3B,GAAI,CAAC,EACH,MAAO,UAOT,OAAQ,EAAM,KAAK,EAAE,YAAY,OAC1B,wBACA,oBACA,oBACA,YACA,WACA,kBACH,MAAO,YACJ,UACA,YACA,eACA,SACH,MAAO,aACJ,kBACA,iBACA,iBACA,gBACA,eACA,iBACA,sBACA,SACA,SACH,MAAO,iBACJ,kBACA,iBACA,iBACA,gBACA,eACA,iBACA,sBACA,SACA,SACH,MAAO,iBACJ,kBACA,iBACA,iBACA,gBACA,eACA,iBACA,sBACA,SACA,SACH,MAAO,iBACJ,yBACA,eACA,iBACA,iBACA,gBACA,eACA,iBACA,kBACH,MAAO,iBACJ,aACA,eACA,kBACA,kBACA,uBACA,eACA,iBACA,mBACA,mBACA,iBACA,gBACA,eACA,iBACA,kBACH,MAAO,iBACJ,sBACA,eACA,eACA,YACA,aACA,iBACA,iBACA,gBACA,eACA,iBACA,sBACA,eACH,MAAO,iBACJ,kBACA,uBACA,aACA,iBACA,mBACA,iBACA,gBACA,eACA,iBACA,sBACA,SACH,MAAO,iBACJ,kBACA,mBACA,UACH,MAAO,mBACJ,kBACA,kBACA,iBACA,iBACA,gBACA,SACA,SACH,MAAO,kBACJ,kBACA,iBACA,YACH,MAAO,kBACJ,kBACA,iBACA,YACH,MAAO,kBACJ,kBACA,kBACA,iBACA,gBACA,kBACA,KACH,MAAO,kBACJ,cACH,MAAO,kBACJ,cACA,UACA,WACA,aACA,SACH,MAAO,aACJ,cACA,SACH,MAAO,aACJ,kBACA,UACA,gBACA,cACH,MAAO,gBACJ,kBACA,iBACA,gBACA,cACA,cACH,MAAO,kBACJ,aACA,mBACA,WACH,MAAO,mBACJ,aACA,mBACA,WACH,MAAO,mBACJ,qBACA,YACA,aACA,YACA,kBACA,aACA,iBACA,iBACA,gBACA,eACA,iBACA,sBACA,SACA,aACA,eACA,mBACA,WACH,MAAO,mBACJ,aACA,mBACA,WACH,MAAO,mBACJ,aACA,kBACA,iBACA,iBACA,gBACA,eACA,iBACA,sBACA,SACA,aACA,mBACA,WACH,MAAO,mBACJ,aACA,mBACA,WACH,MAAO,mBACJ,aACA,mBACA,WACH,MAAO,mBACJ,aACA,mBACA,WACH,MAAO,mBACJ,aACA,mBACA,WACH,MAAO,mBACJ,qBACA,kBACH,MAAO,qBACJ,cACA,eACA,sBACA,aACA,cACA,iBACA,UACA,gBACA,QACH,MAAO,UACJ,UACH,MAAO,cACJ,WACA,iBACA,cACA,aACA,WACH,MAAO,WACJ,0BACA,aACA,WACH,MAAO,aACJ,kBACA,cACH,MAAO,kBACJ,iBACA,YACA,eACA,gBACA,gBACA,WACA,kBACA,SACH,MAAO,gBACJ,cACA,oBACA,aACA,iBACA,aACA,qBACA,qBACA,cACA,eACA,cACH,MAAO,aACJ,kBACA,iBACA,kBACA,sBACA,kBACA,cACH,MAAO,kBACJ,kBACA,WACH,MAAO,eACJ,gBACA,sBACA,YACA,cACA,kBACA,aACA,WACH,MAAO,eACJ,iBACH,MAAO,yBACA,MAAO,WAIpB,GAAO,QAAU,CACf,eACF,wBC/RA,IACE,UACA,UACA,WACA,YACA,kCAEM,yBACA,sBACA,uBAAoB,wBACpB,2BACA,uCACA,0BAGF,IAA4B,CAChC,WAAY,GACZ,SAAU,GACV,aAAc,EAChB,EASA,SAAS,GAAc,CAAC,EAAI,EAAM,EAAM,EAAc,CAGpD,GAAI,EAAG,MAAY,UACjB,MAAM,IAAI,aAAa,gBAAiB,mBAAmB,EAI7D,EAAG,IAAU,UAGb,EAAG,IAAW,KAGd,EAAG,IAAU,KAOb,IAAM,EAHS,EAAK,OAAO,EAGL,UAAU,EAI1B,EAAQ,CAAC,EAIX,EAAe,EAAO,KAAK,EAG3B,EAAe,IA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GAM9B,uCAAsC,GAMtC,0BAAyB,GAMzB,iCAAgC,GAMhC,sCAAqC,GAMrC,iDAAgD,GAMhD,4DAA2D,GAM3D,gCAA+B,GAM/B,kCAAiC,GAMjC,2CAA0C,GAQ1C,wCAAuC,GAMvC,2CAA0C,GAM1C,sCAAqC,GAMrC,sCAAqC,GAMrC,sCAAqC,GAMrC,uBAAsB,GAQtB,wBAAuB,GAQvB,uBAAsB,GAMtB,iCAAgC,GAMhC,gCAA+B,GAM/B,mCAAkC,GAMlC,mCAAkC,GAMlC,sCAAqC,GAMrC,yBAAwB,GAQxB,uBAAsB,GAMtB,oCAAmC,GAMnC,sCAAqC,GAKrC,uBACO,EAAG,GAAQ,gBAAgB,CACtC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACJ,CAAC,EAQD,IAAM,GAA+B,YAC/B,GAA2B,QAC3B,GAA2B,QAC3B,GAA4B,SAC5B,GAAyB,MACzB,GAAgC,aAChC,GAA8B,WAC9B,GAA0B,OAC1B,GAAgC,aAChC,GAA4B,SAC5B,GAA8B,WAC9B,GAA2B,QAC3B,GAA4B,SAC5B,GAA4B,SAC5B,GAA8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", - "debugId": "3D27DE305139BF5364756E2164756E21", + "mappings": "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AAW,GAAO,WAAW,sBAC7B,aAAc,IAAM,CACtB,EACA,CACE,IAAK,UACL,UAAW,GAAO,WAAW,QAC7B,aAAc,IAAM,EACtB,EACA,CACE,IAAK,aACL,UAAW,GAAO,WAAW,QAC7B,aAAc,IAAM,EACtB,EACA,CACE,IAAK,WACL,UAAW,GAAO,WAAW,QAC7B,aAAc,IAAM,EACtB,CACF,CAAC,EAED,GAAO,QAAU,CACf,gBACF,wBCvEA,SAAS,GAAY,CAAC,EAAO,CAC3B,GAAI,CAAC,EACH,MAAO,UAOT,OAAQ,EAAM,KAAK,EAAE,YAAY,OAC1B,wBACA,oBACA,oBACA,YACA,WACA,kBACH,MAAO,YACJ,UACA,YACA,eACA,SACH,MAAO,aACJ,kBACA,iBACA,iBACA,gBACA,eACA,iBACA,sBACA,SACA,SACH,MAAO,iBACJ,kBACA,iBACA,iBACA,gBACA,eACA,iBACA,sBACA,SACA,SACH,MAAO,iBACJ,kBACA,iBACA,iBACA,gBACA,eACA,iBACA,sBACA,SACA,SACH,MAAO,iBACJ,yBACA,eACA,iBACA,iBACA,gBACA,eACA,iBACA,kBACH,MAAO,iBACJ,aACA,eACA,kBACA,kBACA,uBACA,eACA,iBACA,mBACA,mBACA,iBACA,gBACA,eACA,iBACA,kBACH,MAAO,iBACJ,sBACA,eACA,eACA,YACA,aACA,iBACA,iBACA,gBACA,eACA,iBACA,sBACA,eACH,MAAO,iBACJ,kBACA,uBACA,aACA,iBACA,mBACA,iBACA,gBACA,eACA,iBACA,sBACA,SACH,MAAO,iBACJ,kBACA,mBACA,UACH,MAAO,mBACJ,kBACA,kBACA,iBACA,iBACA,gBACA,SACA,SACH,MAAO,kBACJ,kBACA,iBACA,YACH,MAAO,kBACJ,kBACA,iBACA,YACH,MAAO,kBACJ,kBACA,kBACA,iBACA,gBACA,kBACA,KACH,MAAO,kBACJ,cACH,MAAO,kBACJ,cACA,UACA,WACA,aACA,SACH,MAAO,aACJ,cACA,SACH,MAAO,aACJ,kBACA,UACA,gBACA,cACH,MAAO,gBACJ,kBACA,iBACA,gBACA,cACA,cACH,MAAO,kBACJ,aACA,mBACA,WACH,MAAO,mBACJ,aACA,mBACA,WACH,MAAO,mBACJ,qBACA,YACA,aACA,YACA,kBACA,aACA,iBACA,iBACA,gBACA,eACA,iBACA,sBACA,SACA,aACA,eACA,mBACA,WACH,MAAO,mBACJ,aACA,mBACA,WACH,MAAO,mBACJ,aACA,kBACA,iBACA,iBACA,gBACA,eACA,iBACA,sBACA,SACA,aACA,mBACA,WACH,MAAO,mBACJ,aACA,mBACA,WACH,MAAO,mBACJ,aACA,mBACA,WACH,MAAO,mBACJ,aACA,mBACA,WACH,MAAO,mBACJ,aACA,mBACA,WACH,MAAO,mBACJ,qBACA,kBACH,MAAO,qBACJ,cACA,eACA,sBACA,aACA,cACA,iBACA,UACA,gBACA,QACH,MAAO,UACJ,UACH,MAAO,cACJ,WACA,iBACA,cACA,aACA,WACH,MAAO,WACJ,0BACA,aACA,WACH,MAAO,aACJ,kBACA,cACH,MAAO,kBACJ,iBACA,YACA,eACA,gBACA,gBACA,WACA,kBACA,SACH,MAAO,gBACJ,cACA,oBACA,aACA,iBACA,aACA,qBACA,qBACA,cACA,eACA,cACH,MAAO,aACJ,kBACA,iBACA,kBACA,sBACA,kBACA,cACH,MAAO,kBACJ,kBACA,WACH,MAAO,eACJ,gBACA,sBACA,YACA,cACA,kBACA,aACA,WACH,MAAO,eACJ,iBACH,MAAO,yBACA,MAAO,WAIpB,GAAO,QAAU,CACf,eACF,wBC/RA,IACE,UACA,UACA,WACA,YACA,kCAEM,yBACA,sBACA,uBAAoB,wBACpB,2BACA,uCACA,0BAGF,IAA4B,CAChC,WAAY,GACZ,SAAU,GACV,aAAc,EAChB,EASA,SAAS,GAAc,CAAC,EAAI,EAAM,EAAM,EAAc,CAGpD,GAAI,EAAG,MAAY,UACjB,MAAM,IAAI,aAAa,gBAAiB,mBAAmB,EAI7D,EAAG,IAAU,UAGb,EAAG,IAAW,KAGd,EAAG,IAAU,KAOb,IAAM,EAHS,EAAK,OAAO,EAGL,UAAU,EAI1B,EAAQ,CAAC,EAIX,EAAe,EAAO,KAAK,EAG3B,EAAe,IA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,SAEA,UACA,OACA,WACF,EAKE,QAAS,kBAET,SAAU,kzBASZ,EAEM,EAAsB,CAC1B,EACA,EACA,EACA,EAAK,qBACL,EACA,CACF,EAEM,GAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,cAAe,wBACf,IAAK,GACP,CACF,EACA,SAAU,EACV,SAAU,EAAoB,OAAO,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,EAAoB,OAAO,CAAE,MAAO,CAAC,EAC/C,UAAW,CACb,CACF,CAAC,EACD,UAAW,CACb,EAEM,GAAuB,CAC3B,MAAO,IAAM,EAAmB,eAAiB,EACjD,YAAa,GACb,IAAK,QACL,WAAY,GACZ,SAAU,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAxNmB,qBAyNnB,SAAU,EACV,UAAW,CACb,EACA,CACE,MAAO,EACP,YAAa,GACb,SAAU,CAAE,EAAK,QAAQ,EAAY,CAAE,UAAW,gBAAiB,CAAC,CAAE,EACtE,UAAW,CACb,EAGA,CACE,UAAW,EACX,MAAO,GACT,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,EACA,EAAK,qBACL,EACA,EACA,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,OACA,EACA,EAAK,qBACL,EACA,EACA,CACF,CACF,CACF,CACF,EACA,EACA,EACA,EAAK,qBACL,CACF,CACF,EAEA,MAAO,CACL,KAAM,IACN,QAAS,CAAE,GAAI,EACf,SAAU,EAGV,kBAAmB,GACnB,QAAS,KACT,SAAU,CAAC,EAAE,OACX,GACA,GACA,EACA,CACE,EACA,CACE,MAAO,EAAK,SAAW,KACvB,SAAU,CACZ,EACA,CACE,UAAW,QACX,cAAe,0BACf,IAAK,WACL,SAAU,CACR,CAAE,cAAe,oBAAqB,EACtC,EAAK,UACP,CACF,CACF,CAAC,EACH,QAAS,CACP,aAAc,EACd,QAAS,EACT,SAAU,CACZ,CACF,EAGF,EAAO,QAAU,GAEf,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAQ,EAAO,EAAQ,CAUzC,SAAS,CAAM,CAAC,EAAM,CACpB,IAAM,EAAoB,CACxB,OACA,OACA,OACA,UACA,WACA,SACA,UACA,OACA,QACA,MACA,OACA,OACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,QACF,EACM,EAAqB,CACzB,SACA,UACA,YACA,SACA,WACA,YACA,WACA,QACA,SACA,WACA,SACA,UACA,MACA,SACA,SACF,EACM,EAAmB,CACvB,UACA,QACA,OACA,MACF,EACM,EAAkB,CACtB,WACA,KACA,OACA,QACA,OACA,QACA,QACA,QACA,WACA,KACA,OACA,QACA,WACA,SACA,UACA,QACA,MACA,UACA,OACA,KACA,WACA,KACA,YACA,WACA,KACA,OACA,YACA,MACA,WACA,MACA,WACA,SACA,UACA,YACA,SACA,WACA,SACA,MACA,SACA,SACA,SACA,SACA,aACA,SACA,SACA,SACA,OACA,QACA,MACA,SACA,YACA,SACA,QACA,UACA,OACA,WACA,OACF,EACM,EAAsB,CAC1B,MACA,QACA,MACA,YACA,QACA,QACA,KACA,aACA,SACA,OACA,MACA,SACA,QACA,OACA,OACA,OACA,MACA,SACA,MACA,UACA,KACA,KACA,UACA,UACA,SACA,SACA,MACA,YACA,UACA,MACA,OACA,QACA,OACA,OACF,EAEM,EAAW,CACf,QAAS,EAAgB,OAAO,CAAmB,EACnD,SAAU,EACV,QAAS,CACX,EACM,EAAa,EAAK,QAAQ,EAAK,WAAY,CAAE,MAAO,oBAAqB,CAAC,EAC1E,EAAU,CACd,UAAW,SACX,SAAU,CACR,CAAE,MAAO,eAAiB,EAC1B,CAAE,MAAO,iEAAqE,EAC9E,CAAE,MAAO,qFAA2F,CACtG,EACA,UAAW,CACb,EACM,EAAkB,CACtB,UAAW,SACX,MAAO,KACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAK,CAAE,CAC9B,EACM,EAAwB,EAAK,QAAQ,EAAiB,CAAE,QAAS,IAAK,CAAC,EACvE,EAAQ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CAA8C,GAM9C,qCAAoC,GAMpC,sCAAqC,GAMrC,iCAAgC,GAMhC,wCAAuC,GAMvC,+BAA8B,GAM9B,uCAAsC,GAMtC,+CAA8C,GAM9C,wDAAuD,GAMvD,6BAA4B,GAM5B,kCAAiC,GAMjC,uCAAsC,GAMtC,uCAAsC,GAMtC,+BAA8B,GAM9B,uCAAsC,GAMtC,0BAAyB,GAMzB,iCAAgC,GAMhC,sCAAqC,GAMrC,iDAAgD,GAMhD,4DAA2D,GAM3D,gCAA+B,GAM/B,kCAAiC,GAMjC,2CAA0C,GAQ1C,wCAAuC,GAMvC,2CAA0C,GAM1C,sCAAqC,GAMrC,sCAAqC,GAMrC,sCAAqC,GAMrC,uBAAsB,GAQtB,wBAAuB,GAQvB,uBAAsB,GAMtB,iCAAgC,GAMhC,gCAA+B,GAM/B,mCAAkC,GAMlC,mCAAkC,GAMlC,sCAAqC,GAMrC,yBAAwB,GAQxB,uBAAsB,GAMtB,oCAAmC,GAMnC,sCAAqC,GAKrC,uBACO,EAAG,GAAQ,gBAAgB,CACtC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACJ,CAAC,EAQD,IA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", + "debugId": "D4328BADF68CA84F64756E2164756E21", "names": [] } \ No newline at end of file diff --git a/dist/post.js b/dist/post.js index 37e1658..3c3fb31 100644 --- a/dist/post.js +++ b/dist/post.js @@ -1,40 +1,39 @@ -import{createRequire as nr}from"node:module";var xr=Object.create;var{getPrototypeOf:gr,defineProperty:ZY,getOwnPropertyNames:dr}=Object;var cr=Object.prototype.hasOwnProperty;function mr(Z){return this[Z]}var ur,lr,R=(Z,J,Q)=>{var $=Z!=null&&typeof Z==="object";if($){var Y=J?ur??=new WeakMap:lr??=new WeakMap,X=Y.get(Z);if(X)return X}Q=Z!=null?xr(gr(Z)):{};let W=J||!Z||!Z.__esModule?ZY(Q,"default",{value:Z,enumerable:!0}):Q;for(let K of dr(Z))if(!cr.call(W,K))ZY(W,K,{get:mr.bind(Z,K),enumerable:!0});if($)Y.set(Z,W);return W};var w=(Z,J)=>()=>(J||Z((J={exports:{}}).exports,J),J.exports);var pr=(Z)=>Z;function ir(Z,J){this[Z]=pr.bind(null,J)}var or=(Z,J)=>{for(var Q in J)ZY(Z,Q,{get:J[Q],enumerable:!0,configurable:!0,set:ir.bind(J,Q)})};var A=nr(import.meta.url);var JY=w((PV)=>{Object.defineProperty(PV,"__esModule",{value:!0});PV.VERSION=void 0;PV.VERSION="1.9.1"});var NV=w((AV)=>{Object.defineProperty(AV,"__esModule",{value:!0});AV.isCompatible=AV._makeCompatibilityCheck=void 0;var ar=JY(),MV=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function RV(Z){let J=new Set([Z]),Q=new Set,$=Z.match(MV);if(!$)return()=>!1;let Y={major:+$[1],minor:+$[2],patch:+$[3],prerelease:$[4]};if(Y.prerelease!=null)return function(z){return z===Z};function X(K){return Q.add(K),!1}function W(K){return J.add(K),!0}return function(z){if(J.has(z))return!0;if(Q.has(z))return!1;let G=z.match(MV);if(!G)return X(z);let H={major:+G[1],minor:+G[2],patch:+G[3],prerelease:G[4]};if(H.prerelease!=null)return X(z);if(Y.major!==H.major)return X(z);if(Y.major===0){if(Y.minor===H.minor&&Y.patch<=H.patch)return W(z);return X(z)}if(Y.minor<=H.minor)return W(z);return X(z)}}AV._makeCompatibilityCheck=RV;AV.isCompatible=RV(ar.VERSION)});var F7=w((TV)=>{Object.defineProperty(TV,"__esModule",{value:!0});TV.unregisterGlobal=TV.getGlobal=TV.registerGlobal=void 0;var U1=JY(),rr=NV(),tr=U1.VERSION.split(".")[0],i8=Symbol.for(`opentelemetry.js.api.${tr}`),o8=typeof globalThis==="object"?globalThis:typeof self==="object"?self:typeof window==="object"?window:typeof global==="object"?global:{};function er(Z,J,Q,$=!1){var Y;let X=o8[i8]=(Y=o8[i8])!==null&&Y!==void 0?Y:{version:U1.VERSION};if(!$&&X[Z]){let W=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${Z}`);return Q.error(W.stack||W.message),!1}if(X.version!==U1.VERSION){let W=Error(`@opentelemetry/api: Registration of version v${X.version} for ${Z} does not match previously registered API v${U1.VERSION}`);return Q.error(W.stack||W.message),!1}return X[Z]=J,Q.debug(`@opentelemetry/api: Registered a global for ${Z} v${U1.VERSION}.`),!0}TV.registerGlobal=er;function Zt(Z){var J,Q;let $=(J=o8[i8])===null||J===void 0?void 0:J.version;if(!$||!(0,rr.isCompatible)($))return;return(Q=o8[i8])===null||Q===void 0?void 0:Q[Z]}TV.getGlobal=Zt;function Jt(Z,J){J.debug(`@opentelemetry/api: Unregistering a global for ${Z} v${U1.VERSION}.`);let Q=o8[i8];if(Q)delete Q[Z]}TV.unregisterGlobal=Jt});var SV=w((yV)=>{Object.defineProperty(yV,"__esModule",{value:!0});yV.DiagComponentLogger=void 0;var Yt=F7();class EV{constructor(Z){this._namespace=Z.namespace||"DiagComponentLogger"}debug(...Z){return n8("debug",this._namespace,Z)}error(...Z){return n8("error",this._namespace,Z)}info(...Z){return n8("info",this._namespace,Z)}warn(...Z){return n8("warn",this._namespace,Z)}verbose(...Z){return n8("verbose",this._namespace,Z)}}yV.DiagComponentLogger=EV;function n8(Z,J,Q){let $=(0,Yt.getGlobal)("diag");if(!$)return;return $[Z](J,...Q)}});var NJ=w((_V)=>{Object.defineProperty(_V,"__esModule",{value:!0});_V.DiagLogLevel=void 0;var Xt;(function(Z){Z[Z.NONE=0]="NONE",Z[Z.ERROR=30]="ERROR",Z[Z.WARN=50]="WARN",Z[Z.INFO=60]="INFO",Z[Z.DEBUG=70]="DEBUG",Z[Z.VERBOSE=80]="VERBOSE",Z[Z.ALL=9999]="ALL"})(Xt=_V.DiagLogLevel||(_V.DiagLogLevel={}))});var xV=w((vV)=>{Object.defineProperty(vV,"__esModule",{value:!0});vV.createLogLevelDiagLogger=void 0;var m9=NJ();function Wt(Z,J){if(Zm9.DiagLogLevel.ALL)Z=m9.DiagLogLevel.ALL;J=J||{};function Q($,Y){let X=J[$];if(typeof X==="function"&&Z>=Y)return X.bind(J);return function(){}}return{error:Q("error",m9.DiagLogLevel.ERROR),warn:Q("warn",m9.DiagLogLevel.WARN),info:Q("info",m9.DiagLogLevel.INFO),debug:Q("debug",m9.DiagLogLevel.DEBUG),verbose:Q("verbose",m9.DiagLogLevel.VERBOSE)}}vV.createLogLevelDiagLogger=Wt});var w7=w((dV)=>{Object.defineProperty(dV,"__esModule",{value:!0});dV.DiagAPI=void 0;var Kt=SV(),zt=xV(),gV=NJ(),TJ=F7(),Gt="diag";class $Y{static instance(){if(!this._instance)this._instance=new $Y;return this._instance}constructor(){function Z($){return function(...Y){let X=(0,TJ.getGlobal)("diag");if(!X)return;return X[$](...Y)}}let J=this,Q=($,Y={logLevel:gV.DiagLogLevel.INFO})=>{var X,W,K;if($===J){let H=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return J.error((X=H.stack)!==null&&X!==void 0?X:H.message),!1}if(typeof Y==="number")Y={logLevel:Y};let z=(0,TJ.getGlobal)("diag"),G=(0,zt.createLogLevelDiagLogger)((W=Y.logLevel)!==null&&W!==void 0?W:gV.DiagLogLevel.INFO,$);if(z&&!Y.suppressOverrideMessage){let H=(K=Error().stack)!==null&&K!==void 0?K:"";z.warn(`Current logger will be overwritten from ${H}`),G.warn(`Current logger will overwrite one already registered from ${H}`)}return(0,TJ.registerGlobal)("diag",G,J,!0)};J.setLogger=Q,J.disable=()=>{(0,TJ.unregisterGlobal)(Gt,J)},J.createComponentLogger=($)=>{return new Kt.DiagComponentLogger($)},J.verbose=Z("verbose"),J.debug=Z("debug"),J.info=Z("info"),J.warn=Z("warn"),J.error=Z("error")}}dV.DiagAPI=$Y});var lV=w((mV)=>{Object.defineProperty(mV,"__esModule",{value:!0});mV.BaggageImpl=void 0;class j1{constructor(Z){this._entries=Z?new Map(Z):new Map}getEntry(Z){let J=this._entries.get(Z);if(!J)return;return Object.assign({},J)}getAllEntries(){return Array.from(this._entries.entries())}setEntry(Z,J){let Q=new j1(this._entries);return Q._entries.set(Z,J),Q}removeEntry(Z){let J=new j1(this._entries);return J._entries.delete(Z),J}removeEntries(...Z){let J=new j1(this._entries);for(let Q of Z)J._entries.delete(Q);return J}clear(){return new j1}}mV.BaggageImpl=j1});var oV=w((pV)=>{Object.defineProperty(pV,"__esModule",{value:!0});pV.baggageEntryMetadataSymbol=void 0;pV.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")});var YY=w((nV)=>{Object.defineProperty(nV,"__esModule",{value:!0});nV.baggageEntryMetadataFromString=nV.createBaggage=void 0;var Bt=w7(),Ht=lV(),Vt=oV(),Ft=Bt.DiagAPI.instance();function wt(Z={}){return new Ht.BaggageImpl(new Map(Object.entries(Z)))}nV.createBaggage=wt;function Dt(Z){if(typeof Z!=="string")Ft.error(`Cannot create baggage metadata from unknown type: ${typeof Z}`),Z="";return{__TYPE__:Vt.baggageEntryMetadataSymbol,toString(){return Z}}}nV.baggageEntryMetadataFromString=Dt});var a8=w((sV)=>{Object.defineProperty(sV,"__esModule",{value:!0});sV.ROOT_CONTEXT=sV.createContextKey=void 0;function jt(Z){return Symbol.for(Z)}sV.createContextKey=jt;class fJ{constructor(Z){let J=this;J._currentContext=Z?new Map(Z):new Map,J.getValue=(Q)=>J._currentContext.get(Q),J.setValue=(Q,$)=>{let Y=new fJ(J._currentContext);return Y._currentContext.set(Q,$),Y},J.deleteValue=(Q)=>{let $=new fJ(J._currentContext);return $._currentContext.delete(Q),$}}}sV.ROOT_CONTEXT=new fJ});var JF=w((eV)=>{Object.defineProperty(eV,"__esModule",{value:!0});eV.DiagConsoleLogger=eV._originalConsoleMethods=void 0;var XY=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];eV._originalConsoleMethods={};if(typeof console<"u"){let Z=["error","warn","info","debug","trace","log"];for(let J of Z)if(typeof console[J]==="function")eV._originalConsoleMethods[J]=console[J]}class tV{constructor(){function Z(J){return function(...Q){let $=eV._originalConsoleMethods[J];if(typeof $!=="function")$=eV._originalConsoleMethods.log;if(typeof $!=="function"&&console){if($=console[J],typeof $!=="function")$=console.log}if(typeof $==="function")return $.apply(console,Q)}}for(let J=0;J{Object.defineProperty(QF,"__esModule",{value:!0});QF.createNoopMeter=QF.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=QF.NOOP_OBSERVABLE_GAUGE_METRIC=QF.NOOP_OBSERVABLE_COUNTER_METRIC=QF.NOOP_UP_DOWN_COUNTER_METRIC=QF.NOOP_HISTOGRAM_METRIC=QF.NOOP_GAUGE_METRIC=QF.NOOP_COUNTER_METRIC=QF.NOOP_METER=QF.NoopObservableUpDownCounterMetric=QF.NoopObservableGaugeMetric=QF.NoopObservableCounterMetric=QF.NoopObservableMetric=QF.NoopHistogramMetric=QF.NoopGaugeMetric=QF.NoopUpDownCounterMetric=QF.NoopCounterMetric=QF.NoopMetric=QF.NoopMeter=void 0;class WY{constructor(){}createGauge(Z,J){return QF.NOOP_GAUGE_METRIC}createHistogram(Z,J){return QF.NOOP_HISTOGRAM_METRIC}createCounter(Z,J){return QF.NOOP_COUNTER_METRIC}createUpDownCounter(Z,J){return QF.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(Z,J){return QF.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(Z,J){return QF.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(Z,J){return QF.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(Z,J){}removeBatchObservableCallback(Z){}}QF.NoopMeter=WY;class q1{}QF.NoopMetric=q1;class KY extends q1{add(Z,J){}}QF.NoopCounterMetric=KY;class zY extends q1{add(Z,J){}}QF.NoopUpDownCounterMetric=zY;class GY extends q1{record(Z,J){}}QF.NoopGaugeMetric=GY;class BY extends q1{record(Z,J){}}QF.NoopHistogramMetric=BY;class s8{addCallback(Z){}removeCallback(Z){}}QF.NoopObservableMetric=s8;class HY extends s8{}QF.NoopObservableCounterMetric=HY;class VY extends s8{}QF.NoopObservableGaugeMetric=VY;class FY extends s8{}QF.NoopObservableUpDownCounterMetric=FY;QF.NOOP_METER=new WY;QF.NOOP_COUNTER_METRIC=new KY;QF.NOOP_GAUGE_METRIC=new GY;QF.NOOP_HISTOGRAM_METRIC=new BY;QF.NOOP_UP_DOWN_COUNTER_METRIC=new zY;QF.NOOP_OBSERVABLE_COUNTER_METRIC=new HY;QF.NOOP_OBSERVABLE_GAUGE_METRIC=new VY;QF.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new FY;function Lt(){return QF.NOOP_METER}QF.createNoopMeter=Lt});var FF=w((VF)=>{Object.defineProperty(VF,"__esModule",{value:!0});VF.ValueType=void 0;var ft;(function(Z){Z[Z.INT=0]="INT",Z[Z.DOUBLE=1]="DOUBLE"})(ft=VF.ValueType||(VF.ValueType={}))});var UY=w((wF)=>{Object.defineProperty(wF,"__esModule",{value:!0});wF.defaultTextMapSetter=wF.defaultTextMapGetter=void 0;wF.defaultTextMapGetter={get(Z,J){if(Z==null)return;return Z[J]},keys(Z){if(Z==null)return[];return Object.keys(Z)}};wF.defaultTextMapSetter={set(Z,J,Q){if(Z==null)return;Z[J]=Q}}});var LF=w((jF)=>{Object.defineProperty(jF,"__esModule",{value:!0});jF.NoopContextManager=void 0;var yt=a8();class UF{active(){return yt.ROOT_CONTEXT}with(Z,J,Q,...$){return J.call(Q,...$)}bind(Z,J){return J}enable(){return this}disable(){return this}}jF.NoopContextManager=UF});var r8=w((CF)=>{Object.defineProperty(CF,"__esModule",{value:!0});CF.ContextAPI=void 0;var ht=LF(),jY=F7(),OF=w7(),qY="context",St=new ht.NoopContextManager;class LY{constructor(){}static getInstance(){if(!this._instance)this._instance=new LY;return this._instance}setGlobalContextManager(Z){return(0,jY.registerGlobal)(qY,Z,OF.DiagAPI.instance())}active(){return this._getContextManager().active()}with(Z,J,Q,...$){return this._getContextManager().with(Z,J,Q,...$)}bind(Z,J){return this._getContextManager().bind(Z,J)}_getContextManager(){return(0,jY.getGlobal)(qY)||St}disable(){this._getContextManager().disable(),(0,jY.unregisterGlobal)(qY,OF.DiagAPI.instance())}}CF.ContextAPI=LY});var CY=w((kF)=>{Object.defineProperty(kF,"__esModule",{value:!0});kF.TraceFlags=void 0;var _t;(function(Z){Z[Z.NONE=0]="NONE",Z[Z.SAMPLED=1]="SAMPLED"})(_t=kF.TraceFlags||(kF.TraceFlags={}))});var yJ=w((MF)=>{Object.defineProperty(MF,"__esModule",{value:!0});MF.INVALID_SPAN_CONTEXT=MF.INVALID_TRACEID=MF.INVALID_SPANID=void 0;var vt=CY();MF.INVALID_SPANID="0000000000000000";MF.INVALID_TRACEID="00000000000000000000000000000000";MF.INVALID_SPAN_CONTEXT={traceId:MF.INVALID_TRACEID,spanId:MF.INVALID_SPANID,traceFlags:vt.TraceFlags.NONE}});var hJ=w((TF)=>{Object.defineProperty(TF,"__esModule",{value:!0});TF.NonRecordingSpan=void 0;var bt=yJ();class NF{constructor(Z=bt.INVALID_SPAN_CONTEXT){this._spanContext=Z}spanContext(){return this._spanContext}setAttribute(Z,J){return this}setAttributes(Z){return this}addEvent(Z,J){return this}addLink(Z){return this}addLinks(Z){return this}setStatus(Z){return this}updateName(Z){return this}end(Z){}isRecording(){return!1}recordException(Z,J){}}TF.NonRecordingSpan=NF});var MY=w((yF)=>{Object.defineProperty(yF,"__esModule",{value:!0});yF.getSpanContext=yF.setSpanContext=yF.deleteSpan=yF.setSpan=yF.getActiveSpan=yF.getSpan=void 0;var xt=a8(),gt=hJ(),dt=r8(),PY=(0,xt.createContextKey)("OpenTelemetry Context Key SPAN");function kY(Z){return Z.getValue(PY)||void 0}yF.getSpan=kY;function ct(){return kY(dt.ContextAPI.getInstance().active())}yF.getActiveSpan=ct;function EF(Z,J){return Z.setValue(PY,J)}yF.setSpan=EF;function mt(Z){return Z.deleteValue(PY)}yF.deleteSpan=mt;function ut(Z,J){return EF(Z,new gt.NonRecordingSpan(J))}yF.setSpanContext=ut;function lt(Z){var J;return(J=kY(Z))===null||J===void 0?void 0:J.spanContext()}yF.getSpanContext=lt});var _J=w((xF)=>{Object.defineProperty(xF,"__esModule",{value:!0});xF.wrapSpanContext=xF.isSpanContextValid=xF.isValidSpanId=xF.isValidTraceId=void 0;var SF=yJ(),st=hJ(),SJ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1]);function _F(Z,J){if(typeof Z!=="string"||Z.length!==J)return!1;let Q=0;for(let $=0;${Object.defineProperty(mF,"__esModule",{value:!0});mF.NoopTracer=void 0;var Qe=r8(),dF=MY(),RY=hJ(),$e=_J(),AY=Qe.ContextAPI.getInstance();class cF{startSpan(Z,J,Q=AY.active()){if(Boolean(J===null||J===void 0?void 0:J.root))return new RY.NonRecordingSpan;let Y=Q&&(0,dF.getSpanContext)(Q);if(Ye(Y)&&(0,$e.isSpanContextValid)(Y))return new RY.NonRecordingSpan(Y);else return new RY.NonRecordingSpan}startActiveSpan(Z,J,Q,$){let Y,X,W;if(arguments.length<2)return;else if(arguments.length===2)W=J;else if(arguments.length===3)Y=J,W=Q;else Y=J,X=Q,W=$;let K=X!==null&&X!==void 0?X:AY.active(),z=this.startSpan(Z,Y,K),G=(0,dF.setSpan)(K,z);return AY.with(G,W,void 0,z)}}mF.NoopTracer=cF;function Ye(Z){return Z!==null&&typeof Z==="object"&&"spanId"in Z&&typeof Z.spanId==="string"&&"traceId"in Z&&typeof Z.traceId==="string"&&"traceFlags"in Z&&typeof Z.traceFlags==="number"}});var NY=w((pF)=>{Object.defineProperty(pF,"__esModule",{value:!0});pF.ProxyTracer=void 0;var Xe=IY(),We=new Xe.NoopTracer;class lF{constructor(Z,J,Q,$){this._provider=Z,this.name=J,this.version=Q,this.options=$}startSpan(Z,J,Q){return this._getTracer().startSpan(Z,J,Q)}startActiveSpan(Z,J,Q,$){let Y=this._getTracer();return Reflect.apply(Y.startActiveSpan,Y,arguments)}_getTracer(){if(this._delegate)return this._delegate;let Z=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!Z)return We;return this._delegate=Z,this._delegate}}pF.ProxyTracer=lF});var sF=w((nF)=>{Object.defineProperty(nF,"__esModule",{value:!0});nF.NoopTracerProvider=void 0;var Ke=IY();class oF{getTracer(Z,J,Q){return new Ke.NoopTracer}}nF.NoopTracerProvider=oF});var TY=w((tF)=>{Object.defineProperty(tF,"__esModule",{value:!0});tF.ProxyTracerProvider=void 0;var ze=NY(),Ge=sF(),Be=new Ge.NoopTracerProvider;class rF{getTracer(Z,J,Q){var $;return($=this.getDelegateTracer(Z,J,Q))!==null&&$!==void 0?$:new ze.ProxyTracer(this,Z,J,Q)}getDelegate(){var Z;return(Z=this._delegate)!==null&&Z!==void 0?Z:Be}setDelegate(Z){this._delegate=Z}getDelegateTracer(Z,J,Q){var $;return($=this._delegate)===null||$===void 0?void 0:$.getTracer(Z,J,Q)}}tF.ProxyTracerProvider=rF});var Jw=w((Zw)=>{Object.defineProperty(Zw,"__esModule",{value:!0});Zw.SamplingDecision=void 0;var He;(function(Z){Z[Z.NOT_RECORD=0]="NOT_RECORD",Z[Z.RECORD=1]="RECORD",Z[Z.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(He=Zw.SamplingDecision||(Zw.SamplingDecision={}))});var $w=w((Qw)=>{Object.defineProperty(Qw,"__esModule",{value:!0});Qw.SpanKind=void 0;var Ve;(function(Z){Z[Z.INTERNAL=0]="INTERNAL",Z[Z.SERVER=1]="SERVER",Z[Z.CLIENT=2]="CLIENT",Z[Z.PRODUCER=3]="PRODUCER",Z[Z.CONSUMER=4]="CONSUMER"})(Ve=Qw.SpanKind||(Qw.SpanKind={}))});var Xw=w((Yw)=>{Object.defineProperty(Yw,"__esModule",{value:!0});Yw.SpanStatusCode=void 0;var Fe;(function(Z){Z[Z.UNSET=0]="UNSET",Z[Z.OK=1]="OK",Z[Z.ERROR=2]="ERROR"})(Fe=Yw.SpanStatusCode||(Yw.SpanStatusCode={}))});var zw=w((Ww)=>{Object.defineProperty(Ww,"__esModule",{value:!0});Ww.validateValue=Ww.validateKey=void 0;var hY="[_0-9a-z-*/]",we=`[a-z]${hY}{0,255}`,De=`[a-z0-9]${hY}{0,240}@[a-z]${hY}{0,13}`,Ue=new RegExp(`^(?:${we}|${De})$`),je=/^[ -~]{0,255}[!-~]$/,qe=/,|=/;function Le(Z){return Ue.test(Z)}Ww.validateKey=Le;function Oe(Z){return je.test(Z)&&!qe.test(Z)}Ww.validateValue=Oe});var Dw=w((Fw)=>{Object.defineProperty(Fw,"__esModule",{value:!0});Fw.TraceStateImpl=void 0;var Gw=zw(),Bw=32,Pe=512,Hw=",",Vw="=";class SY{constructor(Z){if(this._internalState=new Map,Z)this._parse(Z)}set(Z,J){let Q=this._clone();if(Q._internalState.has(Z))Q._internalState.delete(Z);return Q._internalState.set(Z,J),Q}unset(Z){let J=this._clone();return J._internalState.delete(Z),J}get(Z){return this._internalState.get(Z)}serialize(){return Array.from(this._internalState.keys()).reduceRight((Z,J)=>{return Z.push(J+Vw+this.get(J)),Z},[]).join(Hw)}_parse(Z){if(Z.length>Pe)return;if(this._internalState=Z.split(Hw).reduceRight((J,Q)=>{let $=Q.trim(),Y=$.indexOf(Vw);if(Y!==-1){let X=$.slice(0,Y),W=$.slice(Y+1,Q.length);if((0,Gw.validateKey)(X)&&(0,Gw.validateValue)(W))J.set(X,W)}return J},new Map),this._internalState.size>Bw)this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,Bw))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let Z=new SY;return Z._internalState=new Map(this._internalState),Z}}Fw.TraceStateImpl=SY});var qw=w((Uw)=>{Object.defineProperty(Uw,"__esModule",{value:!0});Uw.createTraceState=void 0;var ke=Dw();function Me(Z){return new ke.TraceStateImpl(Z)}Uw.createTraceState=Me});var Cw=w((Lw)=>{Object.defineProperty(Lw,"__esModule",{value:!0});Lw.context=void 0;var Re=r8();Lw.context=Re.ContextAPI.getInstance()});var Mw=w((Pw)=>{Object.defineProperty(Pw,"__esModule",{value:!0});Pw.diag=void 0;var Ae=w7();Pw.diag=Ae.DiagAPI.instance()});var Iw=w((Rw)=>{Object.defineProperty(Rw,"__esModule",{value:!0});Rw.NOOP_METER_PROVIDER=Rw.NoopMeterProvider=void 0;var Ie=wY();class _Y{getMeter(Z,J,Q){return Ie.NOOP_METER}}Rw.NoopMeterProvider=_Y;Rw.NOOP_METER_PROVIDER=new _Y});var Ew=w((Tw)=>{Object.defineProperty(Tw,"__esModule",{value:!0});Tw.MetricsAPI=void 0;var Te=Iw(),vY=F7(),Nw=w7(),bY="metrics";class xY{constructor(){}static getInstance(){if(!this._instance)this._instance=new xY;return this._instance}setGlobalMeterProvider(Z){return(0,vY.registerGlobal)(bY,Z,Nw.DiagAPI.instance())}getMeterProvider(){return(0,vY.getGlobal)(bY)||Te.NOOP_METER_PROVIDER}getMeter(Z,J,Q){return this.getMeterProvider().getMeter(Z,J,Q)}disable(){(0,vY.unregisterGlobal)(bY,Nw.DiagAPI.instance())}}Tw.MetricsAPI=xY});var Sw=w((yw)=>{Object.defineProperty(yw,"__esModule",{value:!0});yw.metrics=void 0;var fe=Ew();yw.metrics=fe.MetricsAPI.getInstance()});var xw=w((vw)=>{Object.defineProperty(vw,"__esModule",{value:!0});vw.NoopTextMapPropagator=void 0;class _w{inject(Z,J){}extract(Z,J){return Z}fields(){return[]}}vw.NoopTextMapPropagator=_w});var mw=w((dw)=>{Object.defineProperty(dw,"__esModule",{value:!0});dw.deleteBaggage=dw.setBaggage=dw.getActiveBaggage=dw.getBaggage=void 0;var Ee=r8(),ye=a8(),gY=(0,ye.createContextKey)("OpenTelemetry Baggage Key");function gw(Z){return Z.getValue(gY)||void 0}dw.getBaggage=gw;function he(){return gw(Ee.ContextAPI.getInstance().active())}dw.getActiveBaggage=he;function Se(Z,J){return Z.setValue(gY,J)}dw.setBaggage=Se;function _e(Z){return Z.deleteValue(gY)}dw.deleteBaggage=_e});var ow=w((pw)=>{Object.defineProperty(pw,"__esModule",{value:!0});pw.PropagationAPI=void 0;var dY=F7(),ge=xw(),uw=UY(),vJ=mw(),de=YY(),lw=w7(),cY="propagation",ce=new ge.NoopTextMapPropagator;class mY{constructor(){this.createBaggage=de.createBaggage,this.getBaggage=vJ.getBaggage,this.getActiveBaggage=vJ.getActiveBaggage,this.setBaggage=vJ.setBaggage,this.deleteBaggage=vJ.deleteBaggage}static getInstance(){if(!this._instance)this._instance=new mY;return this._instance}setGlobalPropagator(Z){return(0,dY.registerGlobal)(cY,Z,lw.DiagAPI.instance())}inject(Z,J,Q=uw.defaultTextMapSetter){return this._getGlobalPropagator().inject(Z,J,Q)}extract(Z,J,Q=uw.defaultTextMapGetter){return this._getGlobalPropagator().extract(Z,J,Q)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,dY.unregisterGlobal)(cY,lw.DiagAPI.instance())}_getGlobalPropagator(){return(0,dY.getGlobal)(cY)||ce}}pw.PropagationAPI=mY});var sw=w((nw)=>{Object.defineProperty(nw,"__esModule",{value:!0});nw.propagation=void 0;var me=ow();nw.propagation=me.PropagationAPI.getInstance()});var QD=w((ZD)=>{Object.defineProperty(ZD,"__esModule",{value:!0});ZD.TraceAPI=void 0;var uY=F7(),rw=TY(),tw=_J(),L1=MY(),ew=w7(),lY="trace";class pY{constructor(){this._proxyTracerProvider=new rw.ProxyTracerProvider,this.wrapSpanContext=tw.wrapSpanContext,this.isSpanContextValid=tw.isSpanContextValid,this.deleteSpan=L1.deleteSpan,this.getSpan=L1.getSpan,this.getActiveSpan=L1.getActiveSpan,this.getSpanContext=L1.getSpanContext,this.setSpan=L1.setSpan,this.setSpanContext=L1.setSpanContext}static getInstance(){if(!this._instance)this._instance=new pY;return this._instance}setGlobalTracerProvider(Z){let J=(0,uY.registerGlobal)(lY,this._proxyTracerProvider,ew.DiagAPI.instance());if(J)this._proxyTracerProvider.setDelegate(Z);return J}getTracerProvider(){return(0,uY.getGlobal)(lY)||this._proxyTracerProvider}getTracer(Z,J){return this.getTracerProvider().getTracer(Z,J)}disable(){(0,uY.unregisterGlobal)(lY,ew.DiagAPI.instance()),this._proxyTracerProvider=new rw.ProxyTracerProvider}}ZD.TraceAPI=pY});var XD=w(($D)=>{Object.defineProperty($D,"__esModule",{value:!0});$D.trace=void 0;var ue=QD();$D.trace=ue.TraceAPI.getInstance()});var C=w((J0)=>{Object.defineProperty(J0,"__esModule",{value:!0});J0.trace=J0.propagation=J0.metrics=J0.diag=J0.context=J0.INVALID_SPAN_CONTEXT=J0.INVALID_TRACEID=J0.INVALID_SPANID=J0.isValidSpanId=J0.isValidTraceId=J0.isSpanContextValid=J0.createTraceState=J0.TraceFlags=J0.SpanStatusCode=J0.SpanKind=J0.SamplingDecision=J0.ProxyTracerProvider=J0.ProxyTracer=J0.defaultTextMapSetter=J0.defaultTextMapGetter=J0.ValueType=J0.createNoopMeter=J0.DiagLogLevel=J0.DiagConsoleLogger=J0.ROOT_CONTEXT=J0.createContextKey=J0.baggageEntryMetadataFromString=void 0;var le=YY();Object.defineProperty(J0,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return le.baggageEntryMetadataFromString}});var WD=a8();Object.defineProperty(J0,"createContextKey",{enumerable:!0,get:function(){return WD.createContextKey}});Object.defineProperty(J0,"ROOT_CONTEXT",{enumerable:!0,get:function(){return WD.ROOT_CONTEXT}});var pe=JF();Object.defineProperty(J0,"DiagConsoleLogger",{enumerable:!0,get:function(){return pe.DiagConsoleLogger}});var ie=NJ();Object.defineProperty(J0,"DiagLogLevel",{enumerable:!0,get:function(){return ie.DiagLogLevel}});var oe=wY();Object.defineProperty(J0,"createNoopMeter",{enumerable:!0,get:function(){return oe.createNoopMeter}});var ne=FF();Object.defineProperty(J0,"ValueType",{enumerable:!0,get:function(){return ne.ValueType}});var KD=UY();Object.defineProperty(J0,"defaultTextMapGetter",{enumerable:!0,get:function(){return KD.defaultTextMapGetter}});Object.defineProperty(J0,"defaultTextMapSetter",{enumerable:!0,get:function(){return KD.defaultTextMapSetter}});var ae=NY();Object.defineProperty(J0,"ProxyTracer",{enumerable:!0,get:function(){return ae.ProxyTracer}});var se=TY();Object.defineProperty(J0,"ProxyTracerProvider",{enumerable:!0,get:function(){return se.ProxyTracerProvider}});var re=Jw();Object.defineProperty(J0,"SamplingDecision",{enumerable:!0,get:function(){return re.SamplingDecision}});var te=$w();Object.defineProperty(J0,"SpanKind",{enumerable:!0,get:function(){return te.SpanKind}});var ee=Xw();Object.defineProperty(J0,"SpanStatusCode",{enumerable:!0,get:function(){return ee.SpanStatusCode}});var Z00=CY();Object.defineProperty(J0,"TraceFlags",{enumerable:!0,get:function(){return Z00.TraceFlags}});var J00=qw();Object.defineProperty(J0,"createTraceState",{enumerable:!0,get:function(){return J00.createTraceState}});var iY=_J();Object.defineProperty(J0,"isSpanContextValid",{enumerable:!0,get:function(){return iY.isSpanContextValid}});Object.defineProperty(J0,"isValidTraceId",{enumerable:!0,get:function(){return iY.isValidTraceId}});Object.defineProperty(J0,"isValidSpanId",{enumerable:!0,get:function(){return iY.isValidSpanId}});var oY=yJ();Object.defineProperty(J0,"INVALID_SPANID",{enumerable:!0,get:function(){return oY.INVALID_SPANID}});Object.defineProperty(J0,"INVALID_TRACEID",{enumerable:!0,get:function(){return oY.INVALID_TRACEID}});Object.defineProperty(J0,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return oY.INVALID_SPAN_CONTEXT}});var zD=Cw();Object.defineProperty(J0,"context",{enumerable:!0,get:function(){return zD.context}});var GD=Mw();Object.defineProperty(J0,"diag",{enumerable:!0,get:function(){return GD.diag}});var BD=Sw();Object.defineProperty(J0,"metrics",{enumerable:!0,get:function(){return BD.metrics}});var HD=sw();Object.defineProperty(J0,"propagation",{enumerable:!0,get:function(){return HD.propagation}});var VD=XD();Object.defineProperty(J0,"trace",{enumerable:!0,get:function(){return VD.trace}});J0.default={context:zD.context,diag:GD.diag,metrics:BD.metrics,propagation:HD.propagation,trace:VD.trace}});var t8=w((FD)=>{Object.defineProperty(FD,"__esModule",{value:!0});FD.isTracingSuppressed=FD.unsuppressTracing=FD.suppressTracing=void 0;var Y00=C(),nY=(0,Y00.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function X00(Z){return Z.setValue(nY,!0)}FD.suppressTracing=X00;function W00(Z){return Z.deleteValue(nY)}FD.unsuppressTracing=W00;function K00(Z){return Z.getValue(nY)===!0}FD.isTracingSuppressed=K00});var aY=w((DD)=>{Object.defineProperty(DD,"__esModule",{value:!0});DD.BAGGAGE_MAX_TOTAL_LENGTH=DD.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=DD.BAGGAGE_MAX_NAME_VALUE_PAIRS=DD.BAGGAGE_HEADER=DD.BAGGAGE_ITEMS_SEPARATOR=DD.BAGGAGE_PROPERTIES_SEPARATOR=DD.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;DD.BAGGAGE_KEY_PAIR_SEPARATOR="=";DD.BAGGAGE_PROPERTIES_SEPARATOR=";";DD.BAGGAGE_ITEMS_SEPARATOR=",";DD.BAGGAGE_HEADER="baggage";DD.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;DD.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;DD.BAGGAGE_MAX_TOTAL_LENGTH=8192});var sY=w((qD)=>{Object.defineProperty(qD,"__esModule",{value:!0});qD.parseKeyPairsIntoRecord=qD.parsePairKeyValue=qD.getKeyPairs=qD.serializeKeyPairs=void 0;var U00=C(),O1=aY();function j00(Z){return Z.reduce((J,Q)=>{let $=`${J}${J!==""?O1.BAGGAGE_ITEMS_SEPARATOR:""}${Q}`;return $.length>O1.BAGGAGE_MAX_TOTAL_LENGTH?J:$},"")}qD.serializeKeyPairs=j00;function q00(Z){return Z.getAllEntries().map(([J,Q])=>{let $=`${encodeURIComponent(J)}=${encodeURIComponent(Q.value)}`;if(Q.metadata!==void 0)$+=O1.BAGGAGE_PROPERTIES_SEPARATOR+Q.metadata.toString();return $})}qD.getKeyPairs=q00;function jD(Z){if(!Z)return;let J=Z.indexOf(O1.BAGGAGE_PROPERTIES_SEPARATOR),Q=J===-1?Z:Z.substring(0,J),$=Q.indexOf(O1.BAGGAGE_KEY_PAIR_SEPARATOR);if($<=0)return;let Y=Q.substring(0,$).trim(),X=Q.substring($+1).trim();if(!Y||!X)return;let W,K;try{W=decodeURIComponent(Y),K=decodeURIComponent(X)}catch{return}let z;if(J!==-1&&J0)Z.split(O1.BAGGAGE_ITEMS_SEPARATOR).forEach((Q)=>{let $=jD(Q);if($!==void 0&&$.value.length>0)J[$.key]=$.value});return J}qD.parseKeyPairsIntoRecord=L00});var kD=w((CD)=>{Object.defineProperty(CD,"__esModule",{value:!0});CD.W3CBaggagePropagator=void 0;var rY=C(),k00=t8(),D7=aY(),tY=sY();class OD{inject(Z,J,Q){let $=rY.propagation.getBaggage(Z);if(!$||(0,k00.isTracingSuppressed)(Z))return;let Y=(0,tY.getKeyPairs)($).filter((W)=>{return W.length<=D7.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS}).slice(0,D7.BAGGAGE_MAX_NAME_VALUE_PAIRS),X=(0,tY.serializeKeyPairs)(Y);if(X.length>0)Q.set(J,D7.BAGGAGE_HEADER,X)}extract(Z,J,Q){let $=Q.get(J,D7.BAGGAGE_HEADER),Y=Array.isArray($)?$.join(D7.BAGGAGE_ITEMS_SEPARATOR):$;if(!Y)return Z;let X={};if(Y.length===0)return Z;if(Y.split(D7.BAGGAGE_ITEMS_SEPARATOR).forEach((K)=>{let z=(0,tY.parsePairKeyValue)(K);if(z){let G={value:z.value};if(z.metadata)G.metadata=z.metadata;X[z.key]=G}}),Object.entries(X).length===0)return Z;return rY.propagation.setBaggage(Z,rY.propagation.createBaggage(X))}fields(){return[D7.BAGGAGE_HEADER]}}CD.W3CBaggagePropagator=OD});var ID=w((RD)=>{Object.defineProperty(RD,"__esModule",{value:!0});RD.AnchoredClock=void 0;class MD{_monotonicClock;_epochMillis;_performanceMillis;constructor(Z,J){this._monotonicClock=J,this._epochMillis=Z.now(),this._performanceMillis=J.now()}now(){let Z=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+Z}}RD.AnchoredClock=MD});var SD=w((yD)=>{Object.defineProperty(yD,"__esModule",{value:!0});yD.isAttributeValue=yD.isAttributeKey=yD.sanitizeAttributes=void 0;var ND=C();function M00(Z){let J={};if(typeof Z!=="object"||Z==null)return J;for(let Q in Z){if(!Object.prototype.hasOwnProperty.call(Z,Q))continue;if(!TD(Q)){ND.diag.warn(`Invalid attribute key: ${Q}`);continue}let $=Z[Q];if(!fD($)){ND.diag.warn(`Invalid attribute value set for key: ${Q}`);continue}if(Array.isArray($))J[Q]=$.slice();else J[Q]=$}return J}yD.sanitizeAttributes=M00;function TD(Z){return typeof Z==="string"&&Z!==""}yD.isAttributeKey=TD;function fD(Z){if(Z==null)return!0;if(Array.isArray(Z))return R00(Z);return ED(typeof Z)}yD.isAttributeValue=fD;function R00(Z){let J;for(let Q of Z){if(Q==null)continue;let $=typeof Q;if($===J)continue;if(!J){if(ED($)){J=$;continue}return!1}return!1}return!0}function ED(Z){switch(Z){case"number":case"boolean":case"string":return!0}return!1}});var eY=w((_D)=>{Object.defineProperty(_D,"__esModule",{value:!0});_D.loggingErrorHandler=void 0;var N00=C();function T00(){return(Z)=>{N00.diag.error(f00(Z))}}_D.loggingErrorHandler=T00;function f00(Z){if(typeof Z==="string")return Z;else return JSON.stringify(E00(Z))}function E00(Z){let J={},Q=Z;while(Q!==null)Object.getOwnPropertyNames(Q).forEach(($)=>{if(J[$])return;let Y=Q[$];if(Y)J[$]=String(Y)}),Q=Object.getPrototypeOf(Q);return J}});var dD=w((xD)=>{Object.defineProperty(xD,"__esModule",{value:!0});xD.globalErrorHandler=xD.setGlobalErrorHandler=void 0;var y00=eY(),bD=(0,y00.loggingErrorHandler)();function h00(Z){bD=Z}xD.setGlobalErrorHandler=h00;function S00(Z){try{bD(Z)}catch{}}xD.globalErrorHandler=S00});var iD=w((lD)=>{Object.defineProperty(lD,"__esModule",{value:!0});lD.getStringListFromEnv=lD.getBooleanFromEnv=lD.getStringFromEnv=lD.getNumberFromEnv=void 0;var cD=C(),mD=A("util");function v00(Z){let J=process.env[Z];if(J==null||J.trim()==="")return;let Q=Number(J);if(isNaN(Q)){cD.diag.warn(`Unknown value ${(0,mD.inspect)(J)} for ${Z}, expected a number, using defaults`);return}return Q}lD.getNumberFromEnv=v00;function uD(Z){let J=process.env[Z];if(J==null||J.trim()==="")return;return J}lD.getStringFromEnv=uD;function b00(Z){let J=process.env[Z]?.trim().toLowerCase();if(J==null||J==="")return!1;if(J==="true")return!0;else if(J==="false")return!1;else return cD.diag.warn(`Unknown value ${(0,mD.inspect)(J)} for ${Z}, expected 'true' or 'false', falling back to 'false' (default)`),!1}lD.getBooleanFromEnv=b00;function x00(Z){return uD(Z)?.split(",").map((J)=>J.trim()).filter((J)=>J!=="")}lD.getStringListFromEnv=x00});var aD=w((oD)=>{Object.defineProperty(oD,"__esModule",{value:!0});oD._globalThis=void 0;oD._globalThis=globalThis});var tD=w((sD)=>{Object.defineProperty(sD,"__esModule",{value:!0});sD.VERSION=void 0;sD.VERSION="2.6.0"});var ZX=w((eD)=>{Object.defineProperty(eD,"__esModule",{value:!0});eD.createConstMap=void 0;function m00(Z){let J={},Q=Z.length;for(let $=0;${Object.defineProperty(lO,"__esModule",{value:!0});lO.SEMATTRS_NET_HOST_CARRIER_ICC=lO.SEMATTRS_NET_HOST_CARRIER_MNC=lO.SEMATTRS_NET_HOST_CARRIER_MCC=lO.SEMATTRS_NET_HOST_CARRIER_NAME=lO.SEMATTRS_NET_HOST_CONNECTION_SUBTYPE=lO.SEMATTRS_NET_HOST_CONNECTION_TYPE=lO.SEMATTRS_NET_HOST_NAME=lO.SEMATTRS_NET_HOST_PORT=lO.SEMATTRS_NET_HOST_IP=lO.SEMATTRS_NET_PEER_NAME=lO.SEMATTRS_NET_PEER_PORT=lO.SEMATTRS_NET_PEER_IP=lO.SEMATTRS_NET_TRANSPORT=lO.SEMATTRS_FAAS_INVOKED_REGION=lO.SEMATTRS_FAAS_INVOKED_PROVIDER=lO.SEMATTRS_FAAS_INVOKED_NAME=lO.SEMATTRS_FAAS_COLDSTART=lO.SEMATTRS_FAAS_CRON=lO.SEMATTRS_FAAS_TIME=lO.SEMATTRS_FAAS_DOCUMENT_NAME=lO.SEMATTRS_FAAS_DOCUMENT_TIME=lO.SEMATTRS_FAAS_DOCUMENT_OPERATION=lO.SEMATTRS_FAAS_DOCUMENT_COLLECTION=lO.SEMATTRS_FAAS_EXECUTION=lO.SEMATTRS_FAAS_TRIGGER=lO.SEMATTRS_EXCEPTION_ESCAPED=lO.SEMATTRS_EXCEPTION_STACKTRACE=lO.SEMATTRS_EXCEPTION_MESSAGE=lO.SEMATTRS_EXCEPTION_TYPE=lO.SEMATTRS_DB_SQL_TABLE=lO.SEMATTRS_DB_MONGODB_COLLECTION=lO.SEMATTRS_DB_REDIS_DATABASE_INDEX=lO.SEMATTRS_DB_HBASE_NAMESPACE=lO.SEMATTRS_DB_CASSANDRA_COORDINATOR_DC=lO.SEMATTRS_DB_CASSANDRA_COORDINATOR_ID=lO.SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT=lO.SEMATTRS_DB_CASSANDRA_IDEMPOTENCE=lO.SEMATTRS_DB_CASSANDRA_TABLE=lO.SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL=lO.SEMATTRS_DB_CASSANDRA_PAGE_SIZE=lO.SEMATTRS_DB_CASSANDRA_KEYSPACE=lO.SEMATTRS_DB_MSSQL_INSTANCE_NAME=lO.SEMATTRS_DB_OPERATION=lO.SEMATTRS_DB_STATEMENT=lO.SEMATTRS_DB_NAME=lO.SEMATTRS_DB_JDBC_DRIVER_CLASSNAME=lO.SEMATTRS_DB_USER=lO.SEMATTRS_DB_CONNECTION_STRING=lO.SEMATTRS_DB_SYSTEM=lO.SEMATTRS_AWS_LAMBDA_INVOKED_ARN=void 0;lO.SEMATTRS_MESSAGING_DESTINATION_KIND=lO.SEMATTRS_MESSAGING_DESTINATION=lO.SEMATTRS_MESSAGING_SYSTEM=lO.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES=lO.SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS=lO.SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT=lO.SEMATTRS_AWS_DYNAMODB_COUNT=lO.SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS=lO.SEMATTRS_AWS_DYNAMODB_SEGMENT=lO.SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD=lO.SEMATTRS_AWS_DYNAMODB_TABLE_COUNT=lO.SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE=lO.SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES=lO.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES=lO.SEMATTRS_AWS_DYNAMODB_SELECT=lO.SEMATTRS_AWS_DYNAMODB_INDEX_NAME=lO.SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET=lO.SEMATTRS_AWS_DYNAMODB_LIMIT=lO.SEMATTRS_AWS_DYNAMODB_PROJECTION=lO.SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ=lO.SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY=lO.SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY=lO.SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS=lO.SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY=lO.SEMATTRS_AWS_DYNAMODB_TABLE_NAMES=lO.SEMATTRS_HTTP_CLIENT_IP=lO.SEMATTRS_HTTP_ROUTE=lO.SEMATTRS_HTTP_SERVER_NAME=lO.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=lO.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH=lO.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=lO.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH=lO.SEMATTRS_HTTP_USER_AGENT=lO.SEMATTRS_HTTP_FLAVOR=lO.SEMATTRS_HTTP_STATUS_CODE=lO.SEMATTRS_HTTP_SCHEME=lO.SEMATTRS_HTTP_HOST=lO.SEMATTRS_HTTP_TARGET=lO.SEMATTRS_HTTP_URL=lO.SEMATTRS_HTTP_METHOD=lO.SEMATTRS_CODE_LINENO=lO.SEMATTRS_CODE_FILEPATH=lO.SEMATTRS_CODE_NAMESPACE=lO.SEMATTRS_CODE_FUNCTION=lO.SEMATTRS_THREAD_NAME=lO.SEMATTRS_THREAD_ID=lO.SEMATTRS_ENDUSER_SCOPE=lO.SEMATTRS_ENDUSER_ROLE=lO.SEMATTRS_ENDUSER_ID=lO.SEMATTRS_PEER_SERVICE=void 0;lO.DBSYSTEMVALUES_FILEMAKER=lO.DBSYSTEMVALUES_DERBY=lO.DBSYSTEMVALUES_FIREBIRD=lO.DBSYSTEMVALUES_ADABAS=lO.DBSYSTEMVALUES_CACHE=lO.DBSYSTEMVALUES_EDB=lO.DBSYSTEMVALUES_FIRSTSQL=lO.DBSYSTEMVALUES_INGRES=lO.DBSYSTEMVALUES_HANADB=lO.DBSYSTEMVALUES_MAXDB=lO.DBSYSTEMVALUES_PROGRESS=lO.DBSYSTEMVALUES_HSQLDB=lO.DBSYSTEMVALUES_CLOUDSCAPE=lO.DBSYSTEMVALUES_HIVE=lO.DBSYSTEMVALUES_REDSHIFT=lO.DBSYSTEMVALUES_POSTGRESQL=lO.DBSYSTEMVALUES_DB2=lO.DBSYSTEMVALUES_ORACLE=lO.DBSYSTEMVALUES_MYSQL=lO.DBSYSTEMVALUES_MSSQL=lO.DBSYSTEMVALUES_OTHER_SQL=lO.SemanticAttributes=lO.SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE=lO.SEMATTRS_MESSAGE_COMPRESSED_SIZE=lO.SEMATTRS_MESSAGE_ID=lO.SEMATTRS_MESSAGE_TYPE=lO.SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE=lO.SEMATTRS_RPC_JSONRPC_ERROR_CODE=lO.SEMATTRS_RPC_JSONRPC_REQUEST_ID=lO.SEMATTRS_RPC_JSONRPC_VERSION=lO.SEMATTRS_RPC_GRPC_STATUS_CODE=lO.SEMATTRS_RPC_METHOD=lO.SEMATTRS_RPC_SERVICE=lO.SEMATTRS_RPC_SYSTEM=lO.SEMATTRS_MESSAGING_KAFKA_TOMBSTONE=lO.SEMATTRS_MESSAGING_KAFKA_PARTITION=lO.SEMATTRS_MESSAGING_KAFKA_CLIENT_ID=lO.SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP=lO.SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY=lO.SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY=lO.SEMATTRS_MESSAGING_CONSUMER_ID=lO.SEMATTRS_MESSAGING_OPERATION=lO.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES=lO.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES=lO.SEMATTRS_MESSAGING_CONVERSATION_ID=lO.SEMATTRS_MESSAGING_MESSAGE_ID=lO.SEMATTRS_MESSAGING_URL=lO.SEMATTRS_MESSAGING_PROTOCOL_VERSION=lO.SEMATTRS_MESSAGING_PROTOCOL=lO.SEMATTRS_MESSAGING_TEMP_DESTINATION=void 0;lO.FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD=lO.FaasDocumentOperationValues=lO.FAASDOCUMENTOPERATIONVALUES_DELETE=lO.FAASDOCUMENTOPERATIONVALUES_EDIT=lO.FAASDOCUMENTOPERATIONVALUES_INSERT=lO.FaasTriggerValues=lO.FAASTRIGGERVALUES_OTHER=lO.FAASTRIGGERVALUES_TIMER=lO.FAASTRIGGERVALUES_PUBSUB=lO.FAASTRIGGERVALUES_HTTP=lO.FAASTRIGGERVALUES_DATASOURCE=lO.DbCassandraConsistencyLevelValues=lO.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL=lO.DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL=lO.DBCASSANDRACONSISTENCYLEVELVALUES_ANY=lO.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE=lO.DBCASSANDRACONSISTENCYLEVELVALUES_THREE=lO.DBCASSANDRACONSISTENCYLEVELVALUES_TWO=lO.DBCASSANDRACONSISTENCYLEVELVALUES_ONE=lO.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM=lO.DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM=lO.DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM=lO.DBCASSANDRACONSISTENCYLEVELVALUES_ALL=lO.DbSystemValues=lO.DBSYSTEMVALUES_COCKROACHDB=lO.DBSYSTEMVALUES_MEMCACHED=lO.DBSYSTEMVALUES_ELASTICSEARCH=lO.DBSYSTEMVALUES_GEODE=lO.DBSYSTEMVALUES_NEO4J=lO.DBSYSTEMVALUES_DYNAMODB=lO.DBSYSTEMVALUES_COSMOSDB=lO.DBSYSTEMVALUES_COUCHDB=lO.DBSYSTEMVALUES_COUCHBASE=lO.DBSYSTEMVALUES_REDIS=lO.DBSYSTEMVALUES_MONGODB=lO.DBSYSTEMVALUES_HBASE=lO.DBSYSTEMVALUES_CASSANDRA=lO.DBSYSTEMVALUES_COLDFUSION=lO.DBSYSTEMVALUES_H2=lO.DBSYSTEMVALUES_VERTICA=lO.DBSYSTEMVALUES_TERADATA=lO.DBSYSTEMVALUES_SYBASE=lO.DBSYSTEMVALUES_SQLITE=lO.DBSYSTEMVALUES_POINTBASE=lO.DBSYSTEMVALUES_PERVASIVE=lO.DBSYSTEMVALUES_NETEZZA=lO.DBSYSTEMVALUES_MARIADB=lO.DBSYSTEMVALUES_INTERBASE=lO.DBSYSTEMVALUES_INSTANTDB=lO.DBSYSTEMVALUES_INFORMIX=void 0;lO.MESSAGINGOPERATIONVALUES_RECEIVE=lO.MessagingDestinationKindValues=lO.MESSAGINGDESTINATIONKINDVALUES_TOPIC=lO.MESSAGINGDESTINATIONKINDVALUES_QUEUE=lO.HttpFlavorValues=lO.HTTPFLAVORVALUES_QUIC=lO.HTTPFLAVORVALUES_SPDY=lO.HTTPFLAVORVALUES_HTTP_2_0=lO.HTTPFLAVORVALUES_HTTP_1_1=lO.HTTPFLAVORVALUES_HTTP_1_0=lO.NetHostConnectionSubtypeValues=lO.NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA=lO.NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA=lO.NETHOSTCONNECTIONSUBTYPEVALUES_NR=lO.NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN=lO.NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA=lO.NETHOSTCONNECTIONSUBTYPEVALUES_GSM=lO.NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP=lO.NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD=lO.NETHOSTCONNECTIONSUBTYPEVALUES_LTE=lO.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B=lO.NETHOSTCONNECTIONSUBTYPEVALUES_IDEN=lO.NETHOSTCONNECTIONSUBTYPEVALUES_HSPA=lO.NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA=lO.NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA=lO.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT=lO.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A=lO.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0=lO.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA=lO.NETHOSTCONNECTIONSUBTYPEVALUES_UMTS=lO.NETHOSTCONNECTIONSUBTYPEVALUES_EDGE=lO.NETHOSTCONNECTIONSUBTYPEVALUES_GPRS=lO.NetHostConnectionTypeValues=lO.NETHOSTCONNECTIONTYPEVALUES_UNKNOWN=lO.NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE=lO.NETHOSTCONNECTIONTYPEVALUES_CELL=lO.NETHOSTCONNECTIONTYPEVALUES_WIRED=lO.NETHOSTCONNECTIONTYPEVALUES_WIFI=lO.NetTransportValues=lO.NETTRANSPORTVALUES_OTHER=lO.NETTRANSPORTVALUES_INPROC=lO.NETTRANSPORTVALUES_PIPE=lO.NETTRANSPORTVALUES_UNIX=lO.NETTRANSPORTVALUES_IP=lO.NETTRANSPORTVALUES_IP_UDP=lO.NETTRANSPORTVALUES_IP_TCP=lO.FaasInvokedProviderValues=lO.FAASINVOKEDPROVIDERVALUES_GCP=lO.FAASINVOKEDPROVIDERVALUES_AZURE=lO.FAASINVOKEDPROVIDERVALUES_AWS=void 0;lO.MessageTypeValues=lO.MESSAGETYPEVALUES_RECEIVED=lO.MESSAGETYPEVALUES_SENT=lO.RpcGrpcStatusCodeValues=lO.RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED=lO.RPCGRPCSTATUSCODEVALUES_DATA_LOSS=lO.RPCGRPCSTATUSCODEVALUES_UNAVAILABLE=lO.RPCGRPCSTATUSCODEVALUES_INTERNAL=lO.RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED=lO.RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE=lO.RPCGRPCSTATUSCODEVALUES_ABORTED=lO.RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION=lO.RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED=lO.RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED=lO.RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS=lO.RPCGRPCSTATUSCODEVALUES_NOT_FOUND=lO.RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED=lO.RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT=lO.RPCGRPCSTATUSCODEVALUES_UNKNOWN=lO.RPCGRPCSTATUSCODEVALUES_CANCELLED=lO.RPCGRPCSTATUSCODEVALUES_OK=lO.MessagingOperationValues=lO.MESSAGINGOPERATIONVALUES_PROCESS=void 0;var c6=ZX(),JU="aws.lambda.invoked_arn",QU="db.system",$U="db.connection_string",YU="db.user",XU="db.jdbc.driver_classname",WU="db.name",KU="db.statement",zU="db.operation",GU="db.mssql.instance_name",BU="db.cassandra.keyspace",HU="db.cassandra.page_size",VU="db.cassandra.consistency_level",FU="db.cassandra.table",wU="db.cassandra.idempotence",DU="db.cassandra.speculative_execution_count",UU="db.cassandra.coordinator.id",jU="db.cassandra.coordinator.dc",qU="db.hbase.namespace",LU="db.redis.database_index",OU="db.mongodb.collection",CU="db.sql.table",PU="exception.type",kU="exception.message",MU="exception.stacktrace",RU="exception.escaped",AU="faas.trigger",IU="faas.execution",NU="faas.document.collection",TU="faas.document.operation",fU="faas.document.time",EU="faas.document.name",yU="faas.time",hU="faas.cron",SU="faas.coldstart",_U="faas.invoked_name",vU="faas.invoked_provider",bU="faas.invoked_region",xU="net.transport",gU="net.peer.ip",dU="net.peer.port",cU="net.peer.name",mU="net.host.ip",uU="net.host.port",lU="net.host.name",pU="net.host.connection.type",iU="net.host.connection.subtype",oU="net.host.carrier.name",nU="net.host.carrier.mcc",aU="net.host.carrier.mnc",sU="net.host.carrier.icc",rU="peer.service",tU="enduser.id",eU="enduser.role",Zj="enduser.scope",Jj="thread.id",Qj="thread.name",$j="code.function",Yj="code.namespace",Xj="code.filepath",Wj="code.lineno",Kj="http.method",zj="http.url",Gj="http.target",Bj="http.host",Hj="http.scheme",Vj="http.status_code",Fj="http.flavor",wj="http.user_agent",Dj="http.request_content_length",Uj="http.request_content_length_uncompressed",jj="http.response_content_length",qj="http.response_content_length_uncompressed",Lj="http.server_name",Oj="http.route",Cj="http.client_ip",Pj="aws.dynamodb.table_names",kj="aws.dynamodb.consumed_capacity",Mj="aws.dynamodb.item_collection_metrics",Rj="aws.dynamodb.provisioned_read_capacity",Aj="aws.dynamodb.provisioned_write_capacity",Ij="aws.dynamodb.consistent_read",Nj="aws.dynamodb.projection",Tj="aws.dynamodb.limit",fj="aws.dynamodb.attributes_to_get",Ej="aws.dynamodb.index_name",yj="aws.dynamodb.select",hj="aws.dynamodb.global_secondary_indexes",Sj="aws.dynamodb.local_secondary_indexes",_j="aws.dynamodb.exclusive_start_table",vj="aws.dynamodb.table_count",bj="aws.dynamodb.scan_forward",xj="aws.dynamodb.segment",gj="aws.dynamodb.total_segments",dj="aws.dynamodb.count",cj="aws.dynamodb.scanned_count",mj="aws.dynamodb.attribute_definitions",uj="aws.dynamodb.global_secondary_index_updates",lj="messaging.system",pj="messaging.destination",ij="messaging.destination_kind",oj="messaging.temp_destination",nj="messaging.protocol",aj="messaging.protocol_version",sj="messaging.url",rj="messaging.message_id",tj="messaging.conversation_id",ej="messaging.message_payload_size_bytes",Zq="messaging.message_payload_compressed_size_bytes",Jq="messaging.operation",Qq="messaging.consumer_id",$q="messaging.rabbitmq.routing_key",Yq="messaging.kafka.message_key",Xq="messaging.kafka.consumer_group",Wq="messaging.kafka.client_id",Kq="messaging.kafka.partition",zq="messaging.kafka.tombstone",Gq="rpc.system",Bq="rpc.service",Hq="rpc.method",Vq="rpc.grpc.status_code",Fq="rpc.jsonrpc.version",wq="rpc.jsonrpc.request_id",Dq="rpc.jsonrpc.error_code",Uq="rpc.jsonrpc.error_message",jq="message.type",qq="message.id",Lq="message.compressed_size",Oq="message.uncompressed_size";lO.SEMATTRS_AWS_LAMBDA_INVOKED_ARN=JU;lO.SEMATTRS_DB_SYSTEM=QU;lO.SEMATTRS_DB_CONNECTION_STRING=$U;lO.SEMATTRS_DB_USER=YU;lO.SEMATTRS_DB_JDBC_DRIVER_CLASSNAME=XU;lO.SEMATTRS_DB_NAME=WU;lO.SEMATTRS_DB_STATEMENT=KU;lO.SEMATTRS_DB_OPERATION=zU;lO.SEMATTRS_DB_MSSQL_INSTANCE_NAME=GU;lO.SEMATTRS_DB_CASSANDRA_KEYSPACE=BU;lO.SEMATTRS_DB_CASSANDRA_PAGE_SIZE=HU;lO.SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL=VU;lO.SEMATTRS_DB_CASSANDRA_TABLE=FU;lO.SEMATTRS_DB_CASSANDRA_IDEMPOTENCE=wU;lO.SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT=DU;lO.SEMATTRS_DB_CASSANDRA_COORDINATOR_ID=UU;lO.SEMATTRS_DB_CASSANDRA_COORDINATOR_DC=jU;lO.SEMATTRS_DB_HBASE_NAMESPACE=qU;lO.SEMATTRS_DB_REDIS_DATABASE_INDEX=LU;lO.SEMATTRS_DB_MONGODB_COLLECTION=OU;lO.SEMATTRS_DB_SQL_TABLE=CU;lO.SEMATTRS_EXCEPTION_TYPE=PU;lO.SEMATTRS_EXCEPTION_MESSAGE=kU;lO.SEMATTRS_EXCEPTION_STACKTRACE=MU;lO.SEMATTRS_EXCEPTION_ESCAPED=RU;lO.SEMATTRS_FAAS_TRIGGER=AU;lO.SEMATTRS_FAAS_EXECUTION=IU;lO.SEMATTRS_FAAS_DOCUMENT_COLLECTION=NU;lO.SEMATTRS_FAAS_DOCUMENT_OPERATION=TU;lO.SEMATTRS_FAAS_DOCUMENT_TIME=fU;lO.SEMATTRS_FAAS_DOCUMENT_NAME=EU;lO.SEMATTRS_FAAS_TIME=yU;lO.SEMATTRS_FAAS_CRON=hU;lO.SEMATTRS_FAAS_COLDSTART=SU;lO.SEMATTRS_FAAS_INVOKED_NAME=_U;lO.SEMATTRS_FAAS_INVOKED_PROVIDER=vU;lO.SEMATTRS_FAAS_INVOKED_REGION=bU;lO.SEMATTRS_NET_TRANSPORT=xU;lO.SEMATTRS_NET_PEER_IP=gU;lO.SEMATTRS_NET_PEER_PORT=dU;lO.SEMATTRS_NET_PEER_NAME=cU;lO.SEMATTRS_NET_HOST_IP=mU;lO.SEMATTRS_NET_HOST_PORT=uU;lO.SEMATTRS_NET_HOST_NAME=lU;lO.SEMATTRS_NET_HOST_CONNECTION_TYPE=pU;lO.SEMATTRS_NET_HOST_CONNECTION_SUBTYPE=iU;lO.SEMATTRS_NET_HOST_CARRIER_NAME=oU;lO.SEMATTRS_NET_HOST_CARRIER_MCC=nU;lO.SEMATTRS_NET_HOST_CARRIER_MNC=aU;lO.SEMATTRS_NET_HOST_CARRIER_ICC=sU;lO.SEMATTRS_PEER_SERVICE=rU;lO.SEMATTRS_ENDUSER_ID=tU;lO.SEMATTRS_ENDUSER_ROLE=eU;lO.SEMATTRS_ENDUSER_SCOPE=Zj;lO.SEMATTRS_THREAD_ID=Jj;lO.SEMATTRS_THREAD_NAME=Qj;lO.SEMATTRS_CODE_FUNCTION=$j;lO.SEMATTRS_CODE_NAMESPACE=Yj;lO.SEMATTRS_CODE_FILEPATH=Xj;lO.SEMATTRS_CODE_LINENO=Wj;lO.SEMATTRS_HTTP_METHOD=Kj;lO.SEMATTRS_HTTP_URL=zj;lO.SEMATTRS_HTTP_TARGET=Gj;lO.SEMATTRS_HTTP_HOST=Bj;lO.SEMATTRS_HTTP_SCHEME=Hj;lO.SEMATTRS_HTTP_STATUS_CODE=Vj;lO.SEMATTRS_HTTP_FLAVOR=Fj;lO.SEMATTRS_HTTP_USER_AGENT=wj;lO.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH=Dj;lO.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=Uj;lO.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH=jj;lO.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=qj;lO.SEMATTRS_HTTP_SERVER_NAME=Lj;lO.SEMATTRS_HTTP_ROUTE=Oj;lO.SEMATTRS_HTTP_CLIENT_IP=Cj;lO.SEMATTRS_AWS_DYNAMODB_TABLE_NAMES=Pj;lO.SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY=kj;lO.SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS=Mj;lO.SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY=Rj;lO.SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY=Aj;lO.SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ=Ij;lO.SEMATTRS_AWS_DYNAMODB_PROJECTION=Nj;lO.SEMATTRS_AWS_DYNAMODB_LIMIT=Tj;lO.SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET=fj;lO.SEMATTRS_AWS_DYNAMODB_INDEX_NAME=Ej;lO.SEMATTRS_AWS_DYNAMODB_SELECT=yj;lO.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES=hj;lO.SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES=Sj;lO.SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE=_j;lO.SEMATTRS_AWS_DYNAMODB_TABLE_COUNT=vj;lO.SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD=bj;lO.SEMATTRS_AWS_DYNAMODB_SEGMENT=xj;lO.SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS=gj;lO.SEMATTRS_AWS_DYNAMODB_COUNT=dj;lO.SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT=cj;lO.SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS=mj;lO.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES=uj;lO.SEMATTRS_MESSAGING_SYSTEM=lj;lO.SEMATTRS_MESSAGING_DESTINATION=pj;lO.SEMATTRS_MESSAGING_DESTINATION_KIND=ij;lO.SEMATTRS_MESSAGING_TEMP_DESTINATION=oj;lO.SEMATTRS_MESSAGING_PROTOCOL=nj;lO.SEMATTRS_MESSAGING_PROTOCOL_VERSION=aj;lO.SEMATTRS_MESSAGING_URL=sj;lO.SEMATTRS_MESSAGING_MESSAGE_ID=rj;lO.SEMATTRS_MESSAGING_CONVERSATION_ID=tj;lO.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES=ej;lO.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES=Zq;lO.SEMATTRS_MESSAGING_OPERATION=Jq;lO.SEMATTRS_MESSAGING_CONSUMER_ID=Qq;lO.SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY=$q;lO.SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY=Yq;lO.SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP=Xq;lO.SEMATTRS_MESSAGING_KAFKA_CLIENT_ID=Wq;lO.SEMATTRS_MESSAGING_KAFKA_PARTITION=Kq;lO.SEMATTRS_MESSAGING_KAFKA_TOMBSTONE=zq;lO.SEMATTRS_RPC_SYSTEM=Gq;lO.SEMATTRS_RPC_SERVICE=Bq;lO.SEMATTRS_RPC_METHOD=Hq;lO.SEMATTRS_RPC_GRPC_STATUS_CODE=Vq;lO.SEMATTRS_RPC_JSONRPC_VERSION=Fq;lO.SEMATTRS_RPC_JSONRPC_REQUEST_ID=wq;lO.SEMATTRS_RPC_JSONRPC_ERROR_CODE=Dq;lO.SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE=Uq;lO.SEMATTRS_MESSAGE_TYPE=jq;lO.SEMATTRS_MESSAGE_ID=qq;lO.SEMATTRS_MESSAGE_COMPRESSED_SIZE=Lq;lO.SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE=Oq;lO.SemanticAttributes=(0,c6.createConstMap)([JU,QU,$U,YU,XU,WU,KU,zU,GU,BU,HU,VU,FU,wU,DU,UU,jU,qU,LU,OU,CU,PU,kU,MU,RU,AU,IU,NU,TU,fU,EU,yU,hU,SU,_U,vU,bU,xU,gU,dU,cU,mU,uU,lU,pU,iU,oU,nU,aU,sU,rU,tU,eU,Zj,Jj,Qj,$j,Yj,Xj,Wj,Kj,zj,Gj,Bj,Hj,Vj,Fj,wj,Dj,Uj,jj,qj,Lj,Oj,Cj,Pj,kj,Mj,Rj,Aj,Ij,Nj,Tj,fj,Ej,yj,hj,Sj,_j,vj,bj,xj,gj,dj,cj,mj,uj,lj,pj,ij,oj,nj,aj,sj,rj,tj,ej,Zq,Jq,Qq,$q,Yq,Xq,Wq,Kq,zq,Gq,Bq,Hq,Vq,Fq,wq,Dq,Uq,jq,qq,Lq,Oq]);var Cq="other_sql",Pq="mssql",kq="mysql",Mq="oracle",Rq="db2",Aq="postgresql",Iq="redshift",Nq="hive",Tq="cloudscape",fq="hsqldb",Eq="progress",yq="maxdb",hq="hanadb",Sq="ingres",_q="firstsql",vq="edb",bq="cache",xq="adabas",gq="firebird",dq="derby",cq="filemaker",mq="informix",uq="instantdb",lq="interbase",pq="mariadb",iq="netezza",oq="pervasive",nq="pointbase",aq="sqlite",sq="sybase",rq="teradata",tq="vertica",eq="h2",ZL="coldfusion",JL="cassandra",QL="hbase",$L="mongodb",YL="redis",XL="couchbase",WL="couchdb",KL="cosmosdb",zL="dynamodb",GL="neo4j",BL="geode",HL="elasticsearch",VL="memcached",FL="cockroachdb";lO.DBSYSTEMVALUES_OTHER_SQL=Cq;lO.DBSYSTEMVALUES_MSSQL=Pq;lO.DBSYSTEMVALUES_MYSQL=kq;lO.DBSYSTEMVALUES_ORACLE=Mq;lO.DBSYSTEMVALUES_DB2=Rq;lO.DBSYSTEMVALUES_POSTGRESQL=Aq;lO.DBSYSTEMVALUES_REDSHIFT=Iq;lO.DBSYSTEMVALUES_HIVE=Nq;lO.DBSYSTEMVALUES_CLOUDSCAPE=Tq;lO.DBSYSTEMVALUES_HSQLDB=fq;lO.DBSYSTEMVALUES_PROGRESS=Eq;lO.DBSYSTEMVALUES_MAXDB=yq;lO.DBSYSTEMVALUES_HANADB=hq;lO.DBSYSTEMVALUES_INGRES=Sq;lO.DBSYSTEMVALUES_FIRSTSQL=_q;lO.DBSYSTEMVALUES_EDB=vq;lO.DBSYSTEMVALUES_CACHE=bq;lO.DBSYSTEMVALUES_ADABAS=xq;lO.DBSYSTEMVALUES_FIREBIRD=gq;lO.DBSYSTEMVALUES_DERBY=dq;lO.DBSYSTEMVALUES_FILEMAKER=cq;lO.DBSYSTEMVALUES_INFORMIX=mq;lO.DBSYSTEMVALUES_INSTANTDB=uq;lO.DBSYSTEMVALUES_INTERBASE=lq;lO.DBSYSTEMVALUES_MARIADB=pq;lO.DBSYSTEMVALUES_NETEZZA=iq;lO.DBSYSTEMVALUES_PERVASIVE=oq;lO.DBSYSTEMVALUES_POINTBASE=nq;lO.DBSYSTEMVALUES_SQLITE=aq;lO.DBSYSTEMVALUES_SYBASE=sq;lO.DBSYSTEMVALUES_TERADATA=rq;lO.DBSYSTEMVALUES_VERTICA=tq;lO.DBSYSTEMVALUES_H2=eq;lO.DBSYSTEMVALUES_COLDFUSION=ZL;lO.DBSYSTEMVALUES_CASSANDRA=JL;lO.DBSYSTEMVALUES_HBASE=QL;lO.DBSYSTEMVALUES_MONGODB=$L;lO.DBSYSTEMVALUES_REDIS=YL;lO.DBSYSTEMVALUES_COUCHBASE=XL;lO.DBSYSTEMVALUES_COUCHDB=WL;lO.DBSYSTEMVALUES_COSMOSDB=KL;lO.DBSYSTEMVALUES_DYNAMODB=zL;lO.DBSYSTEMVALUES_NEO4J=GL;lO.DBSYSTEMVALUES_GEODE=BL;lO.DBSYSTEMVALUES_ELASTICSEARCH=HL;lO.DBSYSTEMVALUES_MEMCACHED=VL;lO.DBSYSTEMVALUES_COCKROACHDB=FL;lO.DbSystemValues=(0,c6.createConstMap)([Cq,Pq,kq,Mq,Rq,Aq,Iq,Nq,Tq,fq,Eq,yq,hq,Sq,_q,vq,bq,xq,gq,dq,cq,mq,uq,lq,pq,iq,oq,nq,aq,sq,rq,tq,eq,ZL,JL,QL,$L,YL,XL,WL,KL,zL,GL,BL,HL,VL,FL]);var wL="all",DL="each_quorum",UL="quorum",jL="local_quorum",qL="one",LL="two",OL="three",CL="local_one",PL="any",kL="serial",ML="local_serial";lO.DBCASSANDRACONSISTENCYLEVELVALUES_ALL=wL;lO.DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM=DL;lO.DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM=UL;lO.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM=jL;lO.DBCASSANDRACONSISTENCYLEVELVALUES_ONE=qL;lO.DBCASSANDRACONSISTENCYLEVELVALUES_TWO=LL;lO.DBCASSANDRACONSISTENCYLEVELVALUES_THREE=OL;lO.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE=CL;lO.DBCASSANDRACONSISTENCYLEVELVALUES_ANY=PL;lO.DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL=kL;lO.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL=ML;lO.DbCassandraConsistencyLevelValues=(0,c6.createConstMap)([wL,DL,UL,jL,qL,LL,OL,CL,PL,kL,ML]);var RL="datasource",AL="http",IL="pubsub",NL="timer",TL="other";lO.FAASTRIGGERVALUES_DATASOURCE=RL;lO.FAASTRIGGERVALUES_HTTP=AL;lO.FAASTRIGGERVALUES_PUBSUB=IL;lO.FAASTRIGGERVALUES_TIMER=NL;lO.FAASTRIGGERVALUES_OTHER=TL;lO.FaasTriggerValues=(0,c6.createConstMap)([RL,AL,IL,NL,TL]);var fL="insert",EL="edit",yL="delete";lO.FAASDOCUMENTOPERATIONVALUES_INSERT=fL;lO.FAASDOCUMENTOPERATIONVALUES_EDIT=EL;lO.FAASDOCUMENTOPERATIONVALUES_DELETE=yL;lO.FaasDocumentOperationValues=(0,c6.createConstMap)([fL,EL,yL]);var hL="alibaba_cloud",SL="aws",_L="azure",vL="gcp";lO.FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD=hL;lO.FAASINVOKEDPROVIDERVALUES_AWS=SL;lO.FAASINVOKEDPROVIDERVALUES_AZURE=_L;lO.FAASINVOKEDPROVIDERVALUES_GCP=vL;lO.FaasInvokedProviderValues=(0,c6.createConstMap)([hL,SL,_L,vL]);var bL="ip_tcp",xL="ip_udp",gL="ip",dL="unix",cL="pipe",mL="inproc",uL="other";lO.NETTRANSPORTVALUES_IP_TCP=bL;lO.NETTRANSPORTVALUES_IP_UDP=xL;lO.NETTRANSPORTVALUES_IP=gL;lO.NETTRANSPORTVALUES_UNIX=dL;lO.NETTRANSPORTVALUES_PIPE=cL;lO.NETTRANSPORTVALUES_INPROC=mL;lO.NETTRANSPORTVALUES_OTHER=uL;lO.NetTransportValues=(0,c6.createConstMap)([bL,xL,gL,dL,cL,mL,uL]);var lL="wifi",pL="wired",iL="cell",oL="unavailable",nL="unknown";lO.NETHOSTCONNECTIONTYPEVALUES_WIFI=lL;lO.NETHOSTCONNECTIONTYPEVALUES_WIRED=pL;lO.NETHOSTCONNECTIONTYPEVALUES_CELL=iL;lO.NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE=oL;lO.NETHOSTCONNECTIONTYPEVALUES_UNKNOWN=nL;lO.NetHostConnectionTypeValues=(0,c6.createConstMap)([lL,pL,iL,oL,nL]);var aL="gprs",sL="edge",rL="umts",tL="cdma",eL="evdo_0",ZO="evdo_a",JO="cdma2000_1xrtt",QO="hsdpa",$O="hsupa",YO="hspa",XO="iden",WO="evdo_b",KO="lte",zO="ehrpd",GO="hspap",BO="gsm",HO="td_scdma",VO="iwlan",FO="nr",wO="nrnsa",DO="lte_ca";lO.NETHOSTCONNECTIONSUBTYPEVALUES_GPRS=aL;lO.NETHOSTCONNECTIONSUBTYPEVALUES_EDGE=sL;lO.NETHOSTCONNECTIONSUBTYPEVALUES_UMTS=rL;lO.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA=tL;lO.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0=eL;lO.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A=ZO;lO.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT=JO;lO.NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA=QO;lO.NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA=$O;lO.NETHOSTCONNECTIONSUBTYPEVALUES_HSPA=YO;lO.NETHOSTCONNECTIONSUBTYPEVALUES_IDEN=XO;lO.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B=WO;lO.NETHOSTCONNECTIONSUBTYPEVALUES_LTE=KO;lO.NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD=zO;lO.NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP=GO;lO.NETHOSTCONNECTIONSUBTYPEVALUES_GSM=BO;lO.NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA=HO;lO.NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN=VO;lO.NETHOSTCONNECTIONSUBTYPEVALUES_NR=FO;lO.NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA=wO;lO.NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA=DO;lO.NetHostConnectionSubtypeValues=(0,c6.createConstMap)([aL,sL,rL,tL,eL,ZO,JO,QO,$O,YO,XO,WO,KO,zO,GO,BO,HO,VO,FO,wO,DO]);var UO="1.0",jO="1.1",qO="2.0",LO="SPDY",OO="QUIC";lO.HTTPFLAVORVALUES_HTTP_1_0=UO;lO.HTTPFLAVORVALUES_HTTP_1_1=jO;lO.HTTPFLAVORVALUES_HTTP_2_0=qO;lO.HTTPFLAVORVALUES_SPDY=LO;lO.HTTPFLAVORVALUES_QUIC=OO;lO.HttpFlavorValues={HTTP_1_0:UO,HTTP_1_1:jO,HTTP_2_0:qO,SPDY:LO,QUIC:OO};var CO="queue",PO="topic";lO.MESSAGINGDESTINATIONKINDVALUES_QUEUE=CO;lO.MESSAGINGDESTINATIONKINDVALUES_TOPIC=PO;lO.MessagingDestinationKindValues=(0,c6.createConstMap)([CO,PO]);var kO="receive",MO="process";lO.MESSAGINGOPERATIONVALUES_RECEIVE=kO;lO.MESSAGINGOPERATIONVALUES_PROCESS=MO;lO.MessagingOperationValues=(0,c6.createConstMap)([kO,MO]);var RO=0,AO=1,IO=2,NO=3,TO=4,fO=5,EO=6,yO=7,hO=8,SO=9,_O=10,vO=11,bO=12,xO=13,gO=14,dO=15,cO=16;lO.RPCGRPCSTATUSCODEVALUES_OK=RO;lO.RPCGRPCSTATUSCODEVALUES_CANCELLED=AO;lO.RPCGRPCSTATUSCODEVALUES_UNKNOWN=IO;lO.RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT=NO;lO.RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED=TO;lO.RPCGRPCSTATUSCODEVALUES_NOT_FOUND=fO;lO.RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS=EO;lO.RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED=yO;lO.RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED=hO;lO.RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION=SO;lO.RPCGRPCSTATUSCODEVALUES_ABORTED=_O;lO.RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE=vO;lO.RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED=bO;lO.RPCGRPCSTATUSCODEVALUES_INTERNAL=xO;lO.RPCGRPCSTATUSCODEVALUES_UNAVAILABLE=gO;lO.RPCGRPCSTATUSCODEVALUES_DATA_LOSS=dO;lO.RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED=cO;lO.RpcGrpcStatusCodeValues={OK:RO,CANCELLED:AO,UNKNOWN:IO,INVALID_ARGUMENT:NO,DEADLINE_EXCEEDED:TO,NOT_FOUND:fO,ALREADY_EXISTS:EO,PERMISSION_DENIED:yO,RESOURCE_EXHAUSTED:hO,FAILED_PRECONDITION:SO,ABORTED:_O,OUT_OF_RANGE:vO,UNIMPLEMENTED:bO,INTERNAL:xO,UNAVAILABLE:gO,DATA_LOSS:dO,UNAUTHENTICATED:cO};var mO="SENT",uO="RECEIVED";lO.MESSAGETYPEVALUES_SENT=mO;lO.MESSAGETYPEVALUES_RECEIVED=uO;lO.MessageTypeValues=(0,c6.createConstMap)([mO,uO])});var tO=w((U7)=>{var d10=U7&&U7.__createBinding||(Object.create?function(Z,J,Q,$){if($===void 0)$=Q;var Y=Object.getOwnPropertyDescriptor(J,Q);if(!Y||("get"in Y?!J.__esModule:Y.writable||Y.configurable))Y={enumerable:!0,get:function(){return J[Q]}};Object.defineProperty(Z,$,Y)}:function(Z,J,Q,$){if($===void 0)$=Q;Z[$]=J[Q]}),c10=U7&&U7.__exportStar||function(Z,J){for(var Q in Z)if(Q!=="default"&&!Object.prototype.hasOwnProperty.call(J,Q))d10(J,Z,Q)};Object.defineProperty(U7,"__esModule",{value:!0});c10(rO(),U7)});var I2=w((k2)=>{Object.defineProperty(k2,"__esModule",{value:!0});k2.SEMRESATTRS_K8S_STATEFULSET_NAME=k2.SEMRESATTRS_K8S_STATEFULSET_UID=k2.SEMRESATTRS_K8S_DEPLOYMENT_NAME=k2.SEMRESATTRS_K8S_DEPLOYMENT_UID=k2.SEMRESATTRS_K8S_REPLICASET_NAME=k2.SEMRESATTRS_K8S_REPLICASET_UID=k2.SEMRESATTRS_K8S_CONTAINER_NAME=k2.SEMRESATTRS_K8S_POD_NAME=k2.SEMRESATTRS_K8S_POD_UID=k2.SEMRESATTRS_K8S_NAMESPACE_NAME=k2.SEMRESATTRS_K8S_NODE_UID=k2.SEMRESATTRS_K8S_NODE_NAME=k2.SEMRESATTRS_K8S_CLUSTER_NAME=k2.SEMRESATTRS_HOST_IMAGE_VERSION=k2.SEMRESATTRS_HOST_IMAGE_ID=k2.SEMRESATTRS_HOST_IMAGE_NAME=k2.SEMRESATTRS_HOST_ARCH=k2.SEMRESATTRS_HOST_TYPE=k2.SEMRESATTRS_HOST_NAME=k2.SEMRESATTRS_HOST_ID=k2.SEMRESATTRS_FAAS_MAX_MEMORY=k2.SEMRESATTRS_FAAS_INSTANCE=k2.SEMRESATTRS_FAAS_VERSION=k2.SEMRESATTRS_FAAS_ID=k2.SEMRESATTRS_FAAS_NAME=k2.SEMRESATTRS_DEVICE_MODEL_NAME=k2.SEMRESATTRS_DEVICE_MODEL_IDENTIFIER=k2.SEMRESATTRS_DEVICE_ID=k2.SEMRESATTRS_DEPLOYMENT_ENVIRONMENT=k2.SEMRESATTRS_CONTAINER_IMAGE_TAG=k2.SEMRESATTRS_CONTAINER_IMAGE_NAME=k2.SEMRESATTRS_CONTAINER_RUNTIME=k2.SEMRESATTRS_CONTAINER_ID=k2.SEMRESATTRS_CONTAINER_NAME=k2.SEMRESATTRS_AWS_LOG_STREAM_ARNS=k2.SEMRESATTRS_AWS_LOG_STREAM_NAMES=k2.SEMRESATTRS_AWS_LOG_GROUP_ARNS=k2.SEMRESATTRS_AWS_LOG_GROUP_NAMES=k2.SEMRESATTRS_AWS_EKS_CLUSTER_ARN=k2.SEMRESATTRS_AWS_ECS_TASK_REVISION=k2.SEMRESATTRS_AWS_ECS_TASK_FAMILY=k2.SEMRESATTRS_AWS_ECS_TASK_ARN=k2.SEMRESATTRS_AWS_ECS_LAUNCHTYPE=k2.SEMRESATTRS_AWS_ECS_CLUSTER_ARN=k2.SEMRESATTRS_AWS_ECS_CONTAINER_ARN=k2.SEMRESATTRS_CLOUD_PLATFORM=k2.SEMRESATTRS_CLOUD_AVAILABILITY_ZONE=k2.SEMRESATTRS_CLOUD_REGION=k2.SEMRESATTRS_CLOUD_ACCOUNT_ID=k2.SEMRESATTRS_CLOUD_PROVIDER=void 0;k2.CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE=k2.CLOUDPLATFORMVALUES_AZURE_APP_SERVICE=k2.CLOUDPLATFORMVALUES_AZURE_FUNCTIONS=k2.CLOUDPLATFORMVALUES_AZURE_AKS=k2.CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES=k2.CLOUDPLATFORMVALUES_AZURE_VM=k2.CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK=k2.CLOUDPLATFORMVALUES_AWS_LAMBDA=k2.CLOUDPLATFORMVALUES_AWS_EKS=k2.CLOUDPLATFORMVALUES_AWS_ECS=k2.CLOUDPLATFORMVALUES_AWS_EC2=k2.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC=k2.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS=k2.CloudProviderValues=k2.CLOUDPROVIDERVALUES_GCP=k2.CLOUDPROVIDERVALUES_AZURE=k2.CLOUDPROVIDERVALUES_AWS=k2.CLOUDPROVIDERVALUES_ALIBABA_CLOUD=k2.SemanticResourceAttributes=k2.SEMRESATTRS_WEBENGINE_DESCRIPTION=k2.SEMRESATTRS_WEBENGINE_VERSION=k2.SEMRESATTRS_WEBENGINE_NAME=k2.SEMRESATTRS_TELEMETRY_AUTO_VERSION=k2.SEMRESATTRS_TELEMETRY_SDK_VERSION=k2.SEMRESATTRS_TELEMETRY_SDK_LANGUAGE=k2.SEMRESATTRS_TELEMETRY_SDK_NAME=k2.SEMRESATTRS_SERVICE_VERSION=k2.SEMRESATTRS_SERVICE_INSTANCE_ID=k2.SEMRESATTRS_SERVICE_NAMESPACE=k2.SEMRESATTRS_SERVICE_NAME=k2.SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION=k2.SEMRESATTRS_PROCESS_RUNTIME_VERSION=k2.SEMRESATTRS_PROCESS_RUNTIME_NAME=k2.SEMRESATTRS_PROCESS_OWNER=k2.SEMRESATTRS_PROCESS_COMMAND_ARGS=k2.SEMRESATTRS_PROCESS_COMMAND_LINE=k2.SEMRESATTRS_PROCESS_COMMAND=k2.SEMRESATTRS_PROCESS_EXECUTABLE_PATH=k2.SEMRESATTRS_PROCESS_EXECUTABLE_NAME=k2.SEMRESATTRS_PROCESS_PID=k2.SEMRESATTRS_OS_VERSION=k2.SEMRESATTRS_OS_NAME=k2.SEMRESATTRS_OS_DESCRIPTION=k2.SEMRESATTRS_OS_TYPE=k2.SEMRESATTRS_K8S_CRONJOB_NAME=k2.SEMRESATTRS_K8S_CRONJOB_UID=k2.SEMRESATTRS_K8S_JOB_NAME=k2.SEMRESATTRS_K8S_JOB_UID=k2.SEMRESATTRS_K8S_DAEMONSET_NAME=k2.SEMRESATTRS_K8S_DAEMONSET_UID=void 0;k2.TelemetrySdkLanguageValues=k2.TELEMETRYSDKLANGUAGEVALUES_WEBJS=k2.TELEMETRYSDKLANGUAGEVALUES_RUBY=k2.TELEMETRYSDKLANGUAGEVALUES_PYTHON=k2.TELEMETRYSDKLANGUAGEVALUES_PHP=k2.TELEMETRYSDKLANGUAGEVALUES_NODEJS=k2.TELEMETRYSDKLANGUAGEVALUES_JAVA=k2.TELEMETRYSDKLANGUAGEVALUES_GO=k2.TELEMETRYSDKLANGUAGEVALUES_ERLANG=k2.TELEMETRYSDKLANGUAGEVALUES_DOTNET=k2.TELEMETRYSDKLANGUAGEVALUES_CPP=k2.OsTypeValues=k2.OSTYPEVALUES_Z_OS=k2.OSTYPEVALUES_SOLARIS=k2.OSTYPEVALUES_AIX=k2.OSTYPEVALUES_HPUX=k2.OSTYPEVALUES_DRAGONFLYBSD=k2.OSTYPEVALUES_OPENBSD=k2.OSTYPEVALUES_NETBSD=k2.OSTYPEVALUES_FREEBSD=k2.OSTYPEVALUES_DARWIN=k2.OSTYPEVALUES_LINUX=k2.OSTYPEVALUES_WINDOWS=k2.HostArchValues=k2.HOSTARCHVALUES_X86=k2.HOSTARCHVALUES_PPC64=k2.HOSTARCHVALUES_PPC32=k2.HOSTARCHVALUES_IA64=k2.HOSTARCHVALUES_ARM64=k2.HOSTARCHVALUES_ARM32=k2.HOSTARCHVALUES_AMD64=k2.AwsEcsLaunchtypeValues=k2.AWSECSLAUNCHTYPEVALUES_FARGATE=k2.AWSECSLAUNCHTYPEVALUES_EC2=k2.CloudPlatformValues=k2.CLOUDPLATFORMVALUES_GCP_APP_ENGINE=k2.CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS=k2.CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE=k2.CLOUDPLATFORMVALUES_GCP_CLOUD_RUN=void 0;var j7=ZX(),eO="cloud.provider",ZC="cloud.account.id",JC="cloud.region",QC="cloud.availability_zone",$C="cloud.platform",YC="aws.ecs.container.arn",XC="aws.ecs.cluster.arn",WC="aws.ecs.launchtype",KC="aws.ecs.task.arn",zC="aws.ecs.task.family",GC="aws.ecs.task.revision",BC="aws.eks.cluster.arn",HC="aws.log.group.names",VC="aws.log.group.arns",FC="aws.log.stream.names",wC="aws.log.stream.arns",DC="container.name",UC="container.id",jC="container.runtime",qC="container.image.name",LC="container.image.tag",OC="deployment.environment",CC="device.id",PC="device.model.identifier",kC="device.model.name",MC="faas.name",RC="faas.id",AC="faas.version",IC="faas.instance",NC="faas.max_memory",TC="host.id",fC="host.name",EC="host.type",yC="host.arch",hC="host.image.name",SC="host.image.id",_C="host.image.version",vC="k8s.cluster.name",bC="k8s.node.name",xC="k8s.node.uid",gC="k8s.namespace.name",dC="k8s.pod.uid",cC="k8s.pod.name",mC="k8s.container.name",uC="k8s.replicaset.uid",lC="k8s.replicaset.name",pC="k8s.deployment.uid",iC="k8s.deployment.name",oC="k8s.statefulset.uid",nC="k8s.statefulset.name",aC="k8s.daemonset.uid",sC="k8s.daemonset.name",rC="k8s.job.uid",tC="k8s.job.name",eC="k8s.cronjob.uid",ZP="k8s.cronjob.name",JP="os.type",QP="os.description",$P="os.name",YP="os.version",XP="process.pid",WP="process.executable.name",KP="process.executable.path",zP="process.command",GP="process.command_line",BP="process.command_args",HP="process.owner",VP="process.runtime.name",FP="process.runtime.version",wP="process.runtime.description",DP="service.name",UP="service.namespace",jP="service.instance.id",qP="service.version",LP="telemetry.sdk.name",OP="telemetry.sdk.language",CP="telemetry.sdk.version",PP="telemetry.auto.version",kP="webengine.name",MP="webengine.version",RP="webengine.description";k2.SEMRESATTRS_CLOUD_PROVIDER=eO;k2.SEMRESATTRS_CLOUD_ACCOUNT_ID=ZC;k2.SEMRESATTRS_CLOUD_REGION=JC;k2.SEMRESATTRS_CLOUD_AVAILABILITY_ZONE=QC;k2.SEMRESATTRS_CLOUD_PLATFORM=$C;k2.SEMRESATTRS_AWS_ECS_CONTAINER_ARN=YC;k2.SEMRESATTRS_AWS_ECS_CLUSTER_ARN=XC;k2.SEMRESATTRS_AWS_ECS_LAUNCHTYPE=WC;k2.SEMRESATTRS_AWS_ECS_TASK_ARN=KC;k2.SEMRESATTRS_AWS_ECS_TASK_FAMILY=zC;k2.SEMRESATTRS_AWS_ECS_TASK_REVISION=GC;k2.SEMRESATTRS_AWS_EKS_CLUSTER_ARN=BC;k2.SEMRESATTRS_AWS_LOG_GROUP_NAMES=HC;k2.SEMRESATTRS_AWS_LOG_GROUP_ARNS=VC;k2.SEMRESATTRS_AWS_LOG_STREAM_NAMES=FC;k2.SEMRESATTRS_AWS_LOG_STREAM_ARNS=wC;k2.SEMRESATTRS_CONTAINER_NAME=DC;k2.SEMRESATTRS_CONTAINER_ID=UC;k2.SEMRESATTRS_CONTAINER_RUNTIME=jC;k2.SEMRESATTRS_CONTAINER_IMAGE_NAME=qC;k2.SEMRESATTRS_CONTAINER_IMAGE_TAG=LC;k2.SEMRESATTRS_DEPLOYMENT_ENVIRONMENT=OC;k2.SEMRESATTRS_DEVICE_ID=CC;k2.SEMRESATTRS_DEVICE_MODEL_IDENTIFIER=PC;k2.SEMRESATTRS_DEVICE_MODEL_NAME=kC;k2.SEMRESATTRS_FAAS_NAME=MC;k2.SEMRESATTRS_FAAS_ID=RC;k2.SEMRESATTRS_FAAS_VERSION=AC;k2.SEMRESATTRS_FAAS_INSTANCE=IC;k2.SEMRESATTRS_FAAS_MAX_MEMORY=NC;k2.SEMRESATTRS_HOST_ID=TC;k2.SEMRESATTRS_HOST_NAME=fC;k2.SEMRESATTRS_HOST_TYPE=EC;k2.SEMRESATTRS_HOST_ARCH=yC;k2.SEMRESATTRS_HOST_IMAGE_NAME=hC;k2.SEMRESATTRS_HOST_IMAGE_ID=SC;k2.SEMRESATTRS_HOST_IMAGE_VERSION=_C;k2.SEMRESATTRS_K8S_CLUSTER_NAME=vC;k2.SEMRESATTRS_K8S_NODE_NAME=bC;k2.SEMRESATTRS_K8S_NODE_UID=xC;k2.SEMRESATTRS_K8S_NAMESPACE_NAME=gC;k2.SEMRESATTRS_K8S_POD_UID=dC;k2.SEMRESATTRS_K8S_POD_NAME=cC;k2.SEMRESATTRS_K8S_CONTAINER_NAME=mC;k2.SEMRESATTRS_K8S_REPLICASET_UID=uC;k2.SEMRESATTRS_K8S_REPLICASET_NAME=lC;k2.SEMRESATTRS_K8S_DEPLOYMENT_UID=pC;k2.SEMRESATTRS_K8S_DEPLOYMENT_NAME=iC;k2.SEMRESATTRS_K8S_STATEFULSET_UID=oC;k2.SEMRESATTRS_K8S_STATEFULSET_NAME=nC;k2.SEMRESATTRS_K8S_DAEMONSET_UID=aC;k2.SEMRESATTRS_K8S_DAEMONSET_NAME=sC;k2.SEMRESATTRS_K8S_JOB_UID=rC;k2.SEMRESATTRS_K8S_JOB_NAME=tC;k2.SEMRESATTRS_K8S_CRONJOB_UID=eC;k2.SEMRESATTRS_K8S_CRONJOB_NAME=ZP;k2.SEMRESATTRS_OS_TYPE=JP;k2.SEMRESATTRS_OS_DESCRIPTION=QP;k2.SEMRESATTRS_OS_NAME=$P;k2.SEMRESATTRS_OS_VERSION=YP;k2.SEMRESATTRS_PROCESS_PID=XP;k2.SEMRESATTRS_PROCESS_EXECUTABLE_NAME=WP;k2.SEMRESATTRS_PROCESS_EXECUTABLE_PATH=KP;k2.SEMRESATTRS_PROCESS_COMMAND=zP;k2.SEMRESATTRS_PROCESS_COMMAND_LINE=GP;k2.SEMRESATTRS_PROCESS_COMMAND_ARGS=BP;k2.SEMRESATTRS_PROCESS_OWNER=HP;k2.SEMRESATTRS_PROCESS_RUNTIME_NAME=VP;k2.SEMRESATTRS_PROCESS_RUNTIME_VERSION=FP;k2.SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION=wP;k2.SEMRESATTRS_SERVICE_NAME=DP;k2.SEMRESATTRS_SERVICE_NAMESPACE=UP;k2.SEMRESATTRS_SERVICE_INSTANCE_ID=jP;k2.SEMRESATTRS_SERVICE_VERSION=qP;k2.SEMRESATTRS_TELEMETRY_SDK_NAME=LP;k2.SEMRESATTRS_TELEMETRY_SDK_LANGUAGE=OP;k2.SEMRESATTRS_TELEMETRY_SDK_VERSION=CP;k2.SEMRESATTRS_TELEMETRY_AUTO_VERSION=PP;k2.SEMRESATTRS_WEBENGINE_NAME=kP;k2.SEMRESATTRS_WEBENGINE_VERSION=MP;k2.SEMRESATTRS_WEBENGINE_DESCRIPTION=RP;k2.SemanticResourceAttributes=(0,j7.createConstMap)([eO,ZC,JC,QC,$C,YC,XC,WC,KC,zC,GC,BC,HC,VC,FC,wC,DC,UC,jC,qC,LC,OC,CC,PC,kC,MC,RC,AC,IC,NC,TC,fC,EC,yC,hC,SC,_C,vC,bC,xC,gC,dC,cC,mC,uC,lC,pC,iC,oC,nC,aC,sC,rC,tC,eC,ZP,JP,QP,$P,YP,XP,WP,KP,zP,GP,BP,HP,VP,FP,wP,DP,UP,jP,qP,LP,OP,CP,PP,kP,MP,RP]);var AP="alibaba_cloud",IP="aws",NP="azure",TP="gcp";k2.CLOUDPROVIDERVALUES_ALIBABA_CLOUD=AP;k2.CLOUDPROVIDERVALUES_AWS=IP;k2.CLOUDPROVIDERVALUES_AZURE=NP;k2.CLOUDPROVIDERVALUES_GCP=TP;k2.CloudProviderValues=(0,j7.createConstMap)([AP,IP,NP,TP]);var fP="alibaba_cloud_ecs",EP="alibaba_cloud_fc",yP="aws_ec2",hP="aws_ecs",SP="aws_eks",_P="aws_lambda",vP="aws_elastic_beanstalk",bP="azure_vm",xP="azure_container_instances",gP="azure_aks",dP="azure_functions",cP="azure_app_service",mP="gcp_compute_engine",uP="gcp_cloud_run",lP="gcp_kubernetes_engine",pP="gcp_cloud_functions",iP="gcp_app_engine";k2.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS=fP;k2.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC=EP;k2.CLOUDPLATFORMVALUES_AWS_EC2=yP;k2.CLOUDPLATFORMVALUES_AWS_ECS=hP;k2.CLOUDPLATFORMVALUES_AWS_EKS=SP;k2.CLOUDPLATFORMVALUES_AWS_LAMBDA=_P;k2.CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK=vP;k2.CLOUDPLATFORMVALUES_AZURE_VM=bP;k2.CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES=xP;k2.CLOUDPLATFORMVALUES_AZURE_AKS=gP;k2.CLOUDPLATFORMVALUES_AZURE_FUNCTIONS=dP;k2.CLOUDPLATFORMVALUES_AZURE_APP_SERVICE=cP;k2.CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE=mP;k2.CLOUDPLATFORMVALUES_GCP_CLOUD_RUN=uP;k2.CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE=lP;k2.CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS=pP;k2.CLOUDPLATFORMVALUES_GCP_APP_ENGINE=iP;k2.CloudPlatformValues=(0,j7.createConstMap)([fP,EP,yP,hP,SP,_P,vP,bP,xP,gP,dP,cP,mP,uP,lP,pP,iP]);var oP="ec2",nP="fargate";k2.AWSECSLAUNCHTYPEVALUES_EC2=oP;k2.AWSECSLAUNCHTYPEVALUES_FARGATE=nP;k2.AwsEcsLaunchtypeValues=(0,j7.createConstMap)([oP,nP]);var aP="amd64",sP="arm32",rP="arm64",tP="ia64",eP="ppc32",Z2="ppc64",J2="x86";k2.HOSTARCHVALUES_AMD64=aP;k2.HOSTARCHVALUES_ARM32=sP;k2.HOSTARCHVALUES_ARM64=rP;k2.HOSTARCHVALUES_IA64=tP;k2.HOSTARCHVALUES_PPC32=eP;k2.HOSTARCHVALUES_PPC64=Z2;k2.HOSTARCHVALUES_X86=J2;k2.HostArchValues=(0,j7.createConstMap)([aP,sP,rP,tP,eP,Z2,J2]);var Q2="windows",$2="linux",Y2="darwin",X2="freebsd",W2="netbsd",K2="openbsd",z2="dragonflybsd",G2="hpux",B2="aix",H2="solaris",V2="z_os";k2.OSTYPEVALUES_WINDOWS=Q2;k2.OSTYPEVALUES_LINUX=$2;k2.OSTYPEVALUES_DARWIN=Y2;k2.OSTYPEVALUES_FREEBSD=X2;k2.OSTYPEVALUES_NETBSD=W2;k2.OSTYPEVALUES_OPENBSD=K2;k2.OSTYPEVALUES_DRAGONFLYBSD=z2;k2.OSTYPEVALUES_HPUX=G2;k2.OSTYPEVALUES_AIX=B2;k2.OSTYPEVALUES_SOLARIS=H2;k2.OSTYPEVALUES_Z_OS=V2;k2.OsTypeValues=(0,j7.createConstMap)([Q2,$2,Y2,X2,W2,K2,z2,G2,B2,H2,V2]);var F2="cpp",w2="dotnet",D2="erlang",U2="go",j2="java",q2="nodejs",L2="php",O2="python",C2="ruby",P2="webjs";k2.TELEMETRYSDKLANGUAGEVALUES_CPP=F2;k2.TELEMETRYSDKLANGUAGEVALUES_DOTNET=w2;k2.TELEMETRYSDKLANGUAGEVALUES_ERLANG=D2;k2.TELEMETRYSDKLANGUAGEVALUES_GO=U2;k2.TELEMETRYSDKLANGUAGEVALUES_JAVA=j2;k2.TELEMETRYSDKLANGUAGEVALUES_NODEJS=q2;k2.TELEMETRYSDKLANGUAGEVALUES_PHP=L2;k2.TELEMETRYSDKLANGUAGEVALUES_PYTHON=O2;k2.TELEMETRYSDKLANGUAGEVALUES_RUBY=C2;k2.TELEMETRYSDKLANGUAGEVALUES_WEBJS=P2;k2.TelemetrySdkLanguageValues=(0,j7.createConstMap)([F2,w2,D2,U2,j2,q2,L2,O2,C2,P2])});var N2=w((q7)=>{var U40=q7&&q7.__createBinding||(Object.create?function(Z,J,Q,$){if($===void 0)$=Q;var Y=Object.getOwnPropertyDescriptor(J,Q);if(!Y||("get"in Y?!J.__esModule:Y.writable||Y.configurable))Y={enumerable:!0,get:function(){return J[Q]}};Object.defineProperty(Z,$,Y)}:function(Z,J,Q,$){if($===void 0)$=Q;Z[$]=J[Q]}),j40=q7&&q7.__exportStar||function(Z,J){for(var Q in Z)if(Q!=="default"&&!Object.prototype.hasOwnProperty.call(J,Q))U40(J,Z,Q)};Object.defineProperty(q7,"__esModule",{value:!0});j40(I2(),q7)});var h2=w((T2)=>{Object.defineProperty(T2,"__esModule",{value:!0});T2.ATTR_EXCEPTION_TYPE=T2.ATTR_EXCEPTION_STACKTRACE=T2.ATTR_EXCEPTION_MESSAGE=T2.ATTR_EXCEPTION_ESCAPED=T2.ERROR_TYPE_VALUE_OTHER=T2.ATTR_ERROR_TYPE=T2.DOTNET_GC_HEAP_GENERATION_VALUE_POH=T2.DOTNET_GC_HEAP_GENERATION_VALUE_LOH=T2.DOTNET_GC_HEAP_GENERATION_VALUE_GEN2=T2.DOTNET_GC_HEAP_GENERATION_VALUE_GEN1=T2.DOTNET_GC_HEAP_GENERATION_VALUE_GEN0=T2.ATTR_DOTNET_GC_HEAP_GENERATION=T2.DB_SYSTEM_NAME_VALUE_POSTGRESQL=T2.DB_SYSTEM_NAME_VALUE_MYSQL=T2.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER=T2.DB_SYSTEM_NAME_VALUE_MARIADB=T2.ATTR_DB_SYSTEM_NAME=T2.ATTR_DB_STORED_PROCEDURE_NAME=T2.ATTR_DB_RESPONSE_STATUS_CODE=T2.ATTR_DB_QUERY_TEXT=T2.ATTR_DB_QUERY_SUMMARY=T2.ATTR_DB_OPERATION_NAME=T2.ATTR_DB_OPERATION_BATCH_SIZE=T2.ATTR_DB_NAMESPACE=T2.ATTR_DB_COLLECTION_NAME=T2.ATTR_CODE_STACKTRACE=T2.ATTR_CODE_LINE_NUMBER=T2.ATTR_CODE_FUNCTION_NAME=T2.ATTR_CODE_FILE_PATH=T2.ATTR_CODE_COLUMN_NUMBER=T2.ATTR_CLIENT_PORT=T2.ATTR_CLIENT_ADDRESS=T2.ATTR_ASPNETCORE_USER_IS_AUTHENTICATED=T2.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS=T2.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE=T2.ATTR_ASPNETCORE_ROUTING_MATCH_STATUS=T2.ATTR_ASPNETCORE_ROUTING_IS_FALLBACK=T2.ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED=T2.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED=T2.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER=T2.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER=T2.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED=T2.ATTR_ASPNETCORE_RATE_LIMITING_RESULT=T2.ATTR_ASPNETCORE_RATE_LIMITING_POLICY=T2.ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE=T2.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED=T2.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED=T2.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED=T2.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED=T2.ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT=void 0;T2.OTEL_STATUS_CODE_VALUE_ERROR=T2.ATTR_OTEL_STATUS_CODE=T2.ATTR_OTEL_SCOPE_VERSION=T2.ATTR_OTEL_SCOPE_NAME=T2.NETWORK_TYPE_VALUE_IPV6=T2.NETWORK_TYPE_VALUE_IPV4=T2.ATTR_NETWORK_TYPE=T2.NETWORK_TRANSPORT_VALUE_UNIX=T2.NETWORK_TRANSPORT_VALUE_UDP=T2.NETWORK_TRANSPORT_VALUE_TCP=T2.NETWORK_TRANSPORT_VALUE_QUIC=T2.NETWORK_TRANSPORT_VALUE_PIPE=T2.ATTR_NETWORK_TRANSPORT=T2.ATTR_NETWORK_PROTOCOL_VERSION=T2.ATTR_NETWORK_PROTOCOL_NAME=T2.ATTR_NETWORK_PEER_PORT=T2.ATTR_NETWORK_PEER_ADDRESS=T2.ATTR_NETWORK_LOCAL_PORT=T2.ATTR_NETWORK_LOCAL_ADDRESS=T2.JVM_THREAD_STATE_VALUE_WAITING=T2.JVM_THREAD_STATE_VALUE_TIMED_WAITING=T2.JVM_THREAD_STATE_VALUE_TERMINATED=T2.JVM_THREAD_STATE_VALUE_RUNNABLE=T2.JVM_THREAD_STATE_VALUE_NEW=T2.JVM_THREAD_STATE_VALUE_BLOCKED=T2.ATTR_JVM_THREAD_STATE=T2.ATTR_JVM_THREAD_DAEMON=T2.JVM_MEMORY_TYPE_VALUE_NON_HEAP=T2.JVM_MEMORY_TYPE_VALUE_HEAP=T2.ATTR_JVM_MEMORY_TYPE=T2.ATTR_JVM_MEMORY_POOL_NAME=T2.ATTR_JVM_GC_NAME=T2.ATTR_JVM_GC_ACTION=T2.ATTR_HTTP_ROUTE=T2.ATTR_HTTP_RESPONSE_STATUS_CODE=T2.ATTR_HTTP_RESPONSE_HEADER=T2.ATTR_HTTP_REQUEST_RESEND_COUNT=T2.ATTR_HTTP_REQUEST_METHOD_ORIGINAL=T2.HTTP_REQUEST_METHOD_VALUE_TRACE=T2.HTTP_REQUEST_METHOD_VALUE_PUT=T2.HTTP_REQUEST_METHOD_VALUE_POST=T2.HTTP_REQUEST_METHOD_VALUE_PATCH=T2.HTTP_REQUEST_METHOD_VALUE_OPTIONS=T2.HTTP_REQUEST_METHOD_VALUE_HEAD=T2.HTTP_REQUEST_METHOD_VALUE_GET=T2.HTTP_REQUEST_METHOD_VALUE_DELETE=T2.HTTP_REQUEST_METHOD_VALUE_CONNECT=T2.HTTP_REQUEST_METHOD_VALUE_OTHER=T2.ATTR_HTTP_REQUEST_METHOD=T2.ATTR_HTTP_REQUEST_HEADER=void 0;T2.ATTR_USER_AGENT_ORIGINAL=T2.ATTR_URL_SCHEME=T2.ATTR_URL_QUERY=T2.ATTR_URL_PATH=T2.ATTR_URL_FULL=T2.ATTR_URL_FRAGMENT=T2.ATTR_TELEMETRY_SDK_VERSION=T2.ATTR_TELEMETRY_SDK_NAME=T2.TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS=T2.TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT=T2.TELEMETRY_SDK_LANGUAGE_VALUE_RUST=T2.TELEMETRY_SDK_LANGUAGE_VALUE_RUBY=T2.TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON=T2.TELEMETRY_SDK_LANGUAGE_VALUE_PHP=T2.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS=T2.TELEMETRY_SDK_LANGUAGE_VALUE_JAVA=T2.TELEMETRY_SDK_LANGUAGE_VALUE_GO=T2.TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG=T2.TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET=T2.TELEMETRY_SDK_LANGUAGE_VALUE_CPP=T2.ATTR_TELEMETRY_SDK_LANGUAGE=T2.SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS=T2.SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS=T2.SIGNALR_TRANSPORT_VALUE_LONG_POLLING=T2.ATTR_SIGNALR_TRANSPORT=T2.SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT=T2.SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE=T2.SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN=T2.ATTR_SIGNALR_CONNECTION_STATUS=T2.ATTR_SERVICE_VERSION=T2.ATTR_SERVICE_NAMESPACE=T2.ATTR_SERVICE_NAME=T2.ATTR_SERVICE_INSTANCE_ID=T2.ATTR_SERVER_PORT=T2.ATTR_SERVER_ADDRESS=T2.ATTR_OTEL_STATUS_DESCRIPTION=T2.OTEL_STATUS_CODE_VALUE_OK=void 0;T2.ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT="aspnetcore.diagnostics.exception.result";T2.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED="aborted";T2.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED="handled";T2.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED="skipped";T2.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED="unhandled";T2.ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE="aspnetcore.diagnostics.handler.type";T2.ATTR_ASPNETCORE_RATE_LIMITING_POLICY="aspnetcore.rate_limiting.policy";T2.ATTR_ASPNETCORE_RATE_LIMITING_RESULT="aspnetcore.rate_limiting.result";T2.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED="acquired";T2.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER="endpoint_limiter";T2.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER="global_limiter";T2.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED="request_canceled";T2.ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED="aspnetcore.request.is_unhandled";T2.ATTR_ASPNETCORE_ROUTING_IS_FALLBACK="aspnetcore.routing.is_fallback";T2.ATTR_ASPNETCORE_ROUTING_MATCH_STATUS="aspnetcore.routing.match_status";T2.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE="failure";T2.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS="success";T2.ATTR_ASPNETCORE_USER_IS_AUTHENTICATED="aspnetcore.user.is_authenticated";T2.ATTR_CLIENT_ADDRESS="client.address";T2.ATTR_CLIENT_PORT="client.port";T2.ATTR_CODE_COLUMN_NUMBER="code.column.number";T2.ATTR_CODE_FILE_PATH="code.file.path";T2.ATTR_CODE_FUNCTION_NAME="code.function.name";T2.ATTR_CODE_LINE_NUMBER="code.line.number";T2.ATTR_CODE_STACKTRACE="code.stacktrace";T2.ATTR_DB_COLLECTION_NAME="db.collection.name";T2.ATTR_DB_NAMESPACE="db.namespace";T2.ATTR_DB_OPERATION_BATCH_SIZE="db.operation.batch.size";T2.ATTR_DB_OPERATION_NAME="db.operation.name";T2.ATTR_DB_QUERY_SUMMARY="db.query.summary";T2.ATTR_DB_QUERY_TEXT="db.query.text";T2.ATTR_DB_RESPONSE_STATUS_CODE="db.response.status_code";T2.ATTR_DB_STORED_PROCEDURE_NAME="db.stored_procedure.name";T2.ATTR_DB_SYSTEM_NAME="db.system.name";T2.DB_SYSTEM_NAME_VALUE_MARIADB="mariadb";T2.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER="microsoft.sql_server";T2.DB_SYSTEM_NAME_VALUE_MYSQL="mysql";T2.DB_SYSTEM_NAME_VALUE_POSTGRESQL="postgresql";T2.ATTR_DOTNET_GC_HEAP_GENERATION="dotnet.gc.heap.generation";T2.DOTNET_GC_HEAP_GENERATION_VALUE_GEN0="gen0";T2.DOTNET_GC_HEAP_GENERATION_VALUE_GEN1="gen1";T2.DOTNET_GC_HEAP_GENERATION_VALUE_GEN2="gen2";T2.DOTNET_GC_HEAP_GENERATION_VALUE_LOH="loh";T2.DOTNET_GC_HEAP_GENERATION_VALUE_POH="poh";T2.ATTR_ERROR_TYPE="error.type";T2.ERROR_TYPE_VALUE_OTHER="_OTHER";T2.ATTR_EXCEPTION_ESCAPED="exception.escaped";T2.ATTR_EXCEPTION_MESSAGE="exception.message";T2.ATTR_EXCEPTION_STACKTRACE="exception.stacktrace";T2.ATTR_EXCEPTION_TYPE="exception.type";var q40=(Z)=>`http.request.header.${Z}`;T2.ATTR_HTTP_REQUEST_HEADER=q40;T2.ATTR_HTTP_REQUEST_METHOD="http.request.method";T2.HTTP_REQUEST_METHOD_VALUE_OTHER="_OTHER";T2.HTTP_REQUEST_METHOD_VALUE_CONNECT="CONNECT";T2.HTTP_REQUEST_METHOD_VALUE_DELETE="DELETE";T2.HTTP_REQUEST_METHOD_VALUE_GET="GET";T2.HTTP_REQUEST_METHOD_VALUE_HEAD="HEAD";T2.HTTP_REQUEST_METHOD_VALUE_OPTIONS="OPTIONS";T2.HTTP_REQUEST_METHOD_VALUE_PATCH="PATCH";T2.HTTP_REQUEST_METHOD_VALUE_POST="POST";T2.HTTP_REQUEST_METHOD_VALUE_PUT="PUT";T2.HTTP_REQUEST_METHOD_VALUE_TRACE="TRACE";T2.ATTR_HTTP_REQUEST_METHOD_ORIGINAL="http.request.method_original";T2.ATTR_HTTP_REQUEST_RESEND_COUNT="http.request.resend_count";var L40=(Z)=>`http.response.header.${Z}`;T2.ATTR_HTTP_RESPONSE_HEADER=L40;T2.ATTR_HTTP_RESPONSE_STATUS_CODE="http.response.status_code";T2.ATTR_HTTP_ROUTE="http.route";T2.ATTR_JVM_GC_ACTION="jvm.gc.action";T2.ATTR_JVM_GC_NAME="jvm.gc.name";T2.ATTR_JVM_MEMORY_POOL_NAME="jvm.memory.pool.name";T2.ATTR_JVM_MEMORY_TYPE="jvm.memory.type";T2.JVM_MEMORY_TYPE_VALUE_HEAP="heap";T2.JVM_MEMORY_TYPE_VALUE_NON_HEAP="non_heap";T2.ATTR_JVM_THREAD_DAEMON="jvm.thread.daemon";T2.ATTR_JVM_THREAD_STATE="jvm.thread.state";T2.JVM_THREAD_STATE_VALUE_BLOCKED="blocked";T2.JVM_THREAD_STATE_VALUE_NEW="new";T2.JVM_THREAD_STATE_VALUE_RUNNABLE="runnable";T2.JVM_THREAD_STATE_VALUE_TERMINATED="terminated";T2.JVM_THREAD_STATE_VALUE_TIMED_WAITING="timed_waiting";T2.JVM_THREAD_STATE_VALUE_WAITING="waiting";T2.ATTR_NETWORK_LOCAL_ADDRESS="network.local.address";T2.ATTR_NETWORK_LOCAL_PORT="network.local.port";T2.ATTR_NETWORK_PEER_ADDRESS="network.peer.address";T2.ATTR_NETWORK_PEER_PORT="network.peer.port";T2.ATTR_NETWORK_PROTOCOL_NAME="network.protocol.name";T2.ATTR_NETWORK_PROTOCOL_VERSION="network.protocol.version";T2.ATTR_NETWORK_TRANSPORT="network.transport";T2.NETWORK_TRANSPORT_VALUE_PIPE="pipe";T2.NETWORK_TRANSPORT_VALUE_QUIC="quic";T2.NETWORK_TRANSPORT_VALUE_TCP="tcp";T2.NETWORK_TRANSPORT_VALUE_UDP="udp";T2.NETWORK_TRANSPORT_VALUE_UNIX="unix";T2.ATTR_NETWORK_TYPE="network.type";T2.NETWORK_TYPE_VALUE_IPV4="ipv4";T2.NETWORK_TYPE_VALUE_IPV6="ipv6";T2.ATTR_OTEL_SCOPE_NAME="otel.scope.name";T2.ATTR_OTEL_SCOPE_VERSION="otel.scope.version";T2.ATTR_OTEL_STATUS_CODE="otel.status_code";T2.OTEL_STATUS_CODE_VALUE_ERROR="ERROR";T2.OTEL_STATUS_CODE_VALUE_OK="OK";T2.ATTR_OTEL_STATUS_DESCRIPTION="otel.status_description";T2.ATTR_SERVER_ADDRESS="server.address";T2.ATTR_SERVER_PORT="server.port";T2.ATTR_SERVICE_INSTANCE_ID="service.instance.id";T2.ATTR_SERVICE_NAME="service.name";T2.ATTR_SERVICE_NAMESPACE="service.namespace";T2.ATTR_SERVICE_VERSION="service.version";T2.ATTR_SIGNALR_CONNECTION_STATUS="signalr.connection.status";T2.SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN="app_shutdown";T2.SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE="normal_closure";T2.SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT="timeout";T2.ATTR_SIGNALR_TRANSPORT="signalr.transport";T2.SIGNALR_TRANSPORT_VALUE_LONG_POLLING="long_polling";T2.SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS="server_sent_events";T2.SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS="web_sockets";T2.ATTR_TELEMETRY_SDK_LANGUAGE="telemetry.sdk.language";T2.TELEMETRY_SDK_LANGUAGE_VALUE_CPP="cpp";T2.TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET="dotnet";T2.TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG="erlang";T2.TELEMETRY_SDK_LANGUAGE_VALUE_GO="go";T2.TELEMETRY_SDK_LANGUAGE_VALUE_JAVA="java";T2.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS="nodejs";T2.TELEMETRY_SDK_LANGUAGE_VALUE_PHP="php";T2.TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON="python";T2.TELEMETRY_SDK_LANGUAGE_VALUE_RUBY="ruby";T2.TELEMETRY_SDK_LANGUAGE_VALUE_RUST="rust";T2.TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT="swift";T2.TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS="webjs";T2.ATTR_TELEMETRY_SDK_NAME="telemetry.sdk.name";T2.ATTR_TELEMETRY_SDK_VERSION="telemetry.sdk.version";T2.ATTR_URL_FRAGMENT="url.fragment";T2.ATTR_URL_FULL="url.full";T2.ATTR_URL_PATH="url.path";T2.ATTR_URL_QUERY="url.query";T2.ATTR_URL_SCHEME="url.scheme";T2.ATTR_USER_AGENT_ORIGINAL="user_agent.original"});var b2=w((S2)=>{Object.defineProperty(S2,"__esModule",{value:!0});S2.METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS=S2.METRIC_KESTREL_UPGRADED_CONNECTIONS=S2.METRIC_KESTREL_TLS_HANDSHAKE_DURATION=S2.METRIC_KESTREL_REJECTED_CONNECTIONS=S2.METRIC_KESTREL_QUEUED_REQUESTS=S2.METRIC_KESTREL_QUEUED_CONNECTIONS=S2.METRIC_KESTREL_CONNECTION_DURATION=S2.METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES=S2.METRIC_KESTREL_ACTIVE_CONNECTIONS=S2.METRIC_JVM_THREAD_COUNT=S2.METRIC_JVM_MEMORY_USED_AFTER_LAST_GC=S2.METRIC_JVM_MEMORY_USED=S2.METRIC_JVM_MEMORY_LIMIT=S2.METRIC_JVM_MEMORY_COMMITTED=S2.METRIC_JVM_GC_DURATION=S2.METRIC_JVM_CPU_TIME=S2.METRIC_JVM_CPU_RECENT_UTILIZATION=S2.METRIC_JVM_CPU_COUNT=S2.METRIC_JVM_CLASS_UNLOADED=S2.METRIC_JVM_CLASS_LOADED=S2.METRIC_JVM_CLASS_COUNT=S2.METRIC_HTTP_SERVER_REQUEST_DURATION=S2.METRIC_HTTP_CLIENT_REQUEST_DURATION=S2.METRIC_DOTNET_TIMER_COUNT=S2.METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT=S2.METRIC_DOTNET_THREAD_POOL_THREAD_COUNT=S2.METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH=S2.METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET=S2.METRIC_DOTNET_PROCESS_CPU_TIME=S2.METRIC_DOTNET_PROCESS_CPU_COUNT=S2.METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS=S2.METRIC_DOTNET_JIT_COMPILED_METHODS=S2.METRIC_DOTNET_JIT_COMPILED_IL_SIZE=S2.METRIC_DOTNET_JIT_COMPILATION_TIME=S2.METRIC_DOTNET_GC_PAUSE_TIME=S2.METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE=S2.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE=S2.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE=S2.METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED=S2.METRIC_DOTNET_GC_COLLECTIONS=S2.METRIC_DOTNET_EXCEPTIONS=S2.METRIC_DOTNET_ASSEMBLY_COUNT=S2.METRIC_DB_CLIENT_OPERATION_DURATION=S2.METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS=S2.METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS=S2.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION=S2.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE=S2.METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS=S2.METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES=S2.METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS=void 0;S2.METRIC_SIGNALR_SERVER_CONNECTION_DURATION=void 0;S2.METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS="aspnetcore.diagnostics.exceptions";S2.METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES="aspnetcore.rate_limiting.active_request_leases";S2.METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS="aspnetcore.rate_limiting.queued_requests";S2.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE="aspnetcore.rate_limiting.request.time_in_queue";S2.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION="aspnetcore.rate_limiting.request_lease.duration";S2.METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS="aspnetcore.rate_limiting.requests";S2.METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS="aspnetcore.routing.match_attempts";S2.METRIC_DB_CLIENT_OPERATION_DURATION="db.client.operation.duration";S2.METRIC_DOTNET_ASSEMBLY_COUNT="dotnet.assembly.count";S2.METRIC_DOTNET_EXCEPTIONS="dotnet.exceptions";S2.METRIC_DOTNET_GC_COLLECTIONS="dotnet.gc.collections";S2.METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED="dotnet.gc.heap.total_allocated";S2.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE="dotnet.gc.last_collection.heap.fragmentation.size";S2.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE="dotnet.gc.last_collection.heap.size";S2.METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE="dotnet.gc.last_collection.memory.committed_size";S2.METRIC_DOTNET_GC_PAUSE_TIME="dotnet.gc.pause.time";S2.METRIC_DOTNET_JIT_COMPILATION_TIME="dotnet.jit.compilation.time";S2.METRIC_DOTNET_JIT_COMPILED_IL_SIZE="dotnet.jit.compiled_il.size";S2.METRIC_DOTNET_JIT_COMPILED_METHODS="dotnet.jit.compiled_methods";S2.METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS="dotnet.monitor.lock_contentions";S2.METRIC_DOTNET_PROCESS_CPU_COUNT="dotnet.process.cpu.count";S2.METRIC_DOTNET_PROCESS_CPU_TIME="dotnet.process.cpu.time";S2.METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET="dotnet.process.memory.working_set";S2.METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH="dotnet.thread_pool.queue.length";S2.METRIC_DOTNET_THREAD_POOL_THREAD_COUNT="dotnet.thread_pool.thread.count";S2.METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT="dotnet.thread_pool.work_item.count";S2.METRIC_DOTNET_TIMER_COUNT="dotnet.timer.count";S2.METRIC_HTTP_CLIENT_REQUEST_DURATION="http.client.request.duration";S2.METRIC_HTTP_SERVER_REQUEST_DURATION="http.server.request.duration";S2.METRIC_JVM_CLASS_COUNT="jvm.class.count";S2.METRIC_JVM_CLASS_LOADED="jvm.class.loaded";S2.METRIC_JVM_CLASS_UNLOADED="jvm.class.unloaded";S2.METRIC_JVM_CPU_COUNT="jvm.cpu.count";S2.METRIC_JVM_CPU_RECENT_UTILIZATION="jvm.cpu.recent_utilization";S2.METRIC_JVM_CPU_TIME="jvm.cpu.time";S2.METRIC_JVM_GC_DURATION="jvm.gc.duration";S2.METRIC_JVM_MEMORY_COMMITTED="jvm.memory.committed";S2.METRIC_JVM_MEMORY_LIMIT="jvm.memory.limit";S2.METRIC_JVM_MEMORY_USED="jvm.memory.used";S2.METRIC_JVM_MEMORY_USED_AFTER_LAST_GC="jvm.memory.used_after_last_gc";S2.METRIC_JVM_THREAD_COUNT="jvm.thread.count";S2.METRIC_KESTREL_ACTIVE_CONNECTIONS="kestrel.active_connections";S2.METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES="kestrel.active_tls_handshakes";S2.METRIC_KESTREL_CONNECTION_DURATION="kestrel.connection.duration";S2.METRIC_KESTREL_QUEUED_CONNECTIONS="kestrel.queued_connections";S2.METRIC_KESTREL_QUEUED_REQUESTS="kestrel.queued_requests";S2.METRIC_KESTREL_REJECTED_CONNECTIONS="kestrel.rejected_connections";S2.METRIC_KESTREL_TLS_HANDSHAKE_DURATION="kestrel.tls_handshake.duration";S2.METRIC_KESTREL_UPGRADED_CONNECTIONS="kestrel.upgraded_connections";S2.METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS="signalr.server.active_connections";S2.METRIC_SIGNALR_SERVER_CONNECTION_DURATION="signalr.server.connection.duration"});var d2=w((x2)=>{Object.defineProperty(x2,"__esModule",{value:!0});x2.EVENT_EXCEPTION=void 0;x2.EVENT_EXCEPTION="exception"});var s=w((z9)=>{var c$0=z9&&z9.__createBinding||(Object.create?function(Z,J,Q,$){if($===void 0)$=Q;var Y=Object.getOwnPropertyDescriptor(J,Q);if(!Y||("get"in Y?!J.__esModule:Y.writable||Y.configurable))Y={enumerable:!0,get:function(){return J[Q]}};Object.defineProperty(Z,$,Y)}:function(Z,J,Q,$){if($===void 0)$=Q;Z[$]=J[Q]}),e8=z9&&z9.__exportStar||function(Z,J){for(var Q in Z)if(Q!=="default"&&!Object.prototype.hasOwnProperty.call(J,Q))c$0(J,Z,Q)};Object.defineProperty(z9,"__esModule",{value:!0});e8(tO(),z9);e8(N2(),z9);e8(h2(),z9);e8(b2(),z9);e8(d2(),z9)});var u2=w((c2)=>{Object.defineProperty(c2,"__esModule",{value:!0});c2.ATTR_PROCESS_RUNTIME_NAME=void 0;c2.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var i2=w((l2)=>{Object.defineProperty(l2,"__esModule",{value:!0});l2.SDK_INFO=void 0;var m$0=tD(),bJ=s(),u$0=u2();l2.SDK_INFO={[bJ.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[u$0.ATTR_PROCESS_RUNTIME_NAME]:"node",[bJ.ATTR_TELEMETRY_SDK_LANGUAGE]:bJ.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[bJ.ATTR_TELEMETRY_SDK_VERSION]:m$0.VERSION}});var n2=w((qZ)=>{Object.defineProperty(qZ,"__esModule",{value:!0});qZ.otperformance=qZ.SDK_INFO=qZ._globalThis=qZ.getStringListFromEnv=qZ.getNumberFromEnv=qZ.getBooleanFromEnv=qZ.getStringFromEnv=void 0;var xJ=iD();Object.defineProperty(qZ,"getStringFromEnv",{enumerable:!0,get:function(){return xJ.getStringFromEnv}});Object.defineProperty(qZ,"getBooleanFromEnv",{enumerable:!0,get:function(){return xJ.getBooleanFromEnv}});Object.defineProperty(qZ,"getNumberFromEnv",{enumerable:!0,get:function(){return xJ.getNumberFromEnv}});Object.defineProperty(qZ,"getStringListFromEnv",{enumerable:!0,get:function(){return xJ.getStringListFromEnv}});var l$0=aD();Object.defineProperty(qZ,"_globalThis",{enumerable:!0,get:function(){return l$0._globalThis}});var p$0=i2();Object.defineProperty(qZ,"SDK_INFO",{enumerable:!0,get:function(){return p$0.SDK_INFO}});qZ.otperformance=performance});var JX=w((u9)=>{Object.defineProperty(u9,"__esModule",{value:!0});u9.getStringListFromEnv=u9.getNumberFromEnv=u9.getStringFromEnv=u9.getBooleanFromEnv=u9.otperformance=u9._globalThis=u9.SDK_INFO=void 0;var L7=n2();Object.defineProperty(u9,"SDK_INFO",{enumerable:!0,get:function(){return L7.SDK_INFO}});Object.defineProperty(u9,"_globalThis",{enumerable:!0,get:function(){return L7._globalThis}});Object.defineProperty(u9,"otperformance",{enumerable:!0,get:function(){return L7.otperformance}});Object.defineProperty(u9,"getBooleanFromEnv",{enumerable:!0,get:function(){return L7.getBooleanFromEnv}});Object.defineProperty(u9,"getStringFromEnv",{enumerable:!0,get:function(){return L7.getStringFromEnv}});Object.defineProperty(u9,"getNumberFromEnv",{enumerable:!0,get:function(){return L7.getNumberFromEnv}});Object.defineProperty(u9,"getStringListFromEnv",{enumerable:!0,get:function(){return L7.getStringListFromEnv}})});var Zk=w((t2)=>{Object.defineProperty(t2,"__esModule",{value:!0});t2.addHrTimes=t2.isTimeInput=t2.isTimeInputHrTime=t2.hrTimeToMicroseconds=t2.hrTimeToMilliseconds=t2.hrTimeToNanoseconds=t2.hrTimeToTimeStamp=t2.hrTimeDuration=t2.timeInputToHrTime=t2.hrTime=t2.getTimeOrigin=t2.millisToHrTime=void 0;var gJ=JX(),a2=9,o$0=6,n$0=Math.pow(10,o$0),dJ=Math.pow(10,a2);function Z5(Z){let J=Z/1000,Q=Math.trunc(J),$=Math.round(Z%1000*n$0);return[Q,$]}t2.millisToHrTime=Z5;function a$0(){return gJ.otperformance.timeOrigin}t2.getTimeOrigin=a$0;function s2(Z){let J=Z5(gJ.otperformance.timeOrigin),Q=Z5(typeof Z==="number"?Z:gJ.otperformance.now());return r2(J,Q)}t2.hrTime=s2;function s$0(Z){if(QX(Z))return Z;else if(typeof Z==="number")if(Z=dJ)Q[1]-=dJ,Q[0]+=1;return Q}t2.addHrTimes=r2});var $k=w((Jk)=>{Object.defineProperty(Jk,"__esModule",{value:!0});Jk.unrefTimer=void 0;function w30(Z){if(typeof Z!=="number")Z.unref()}Jk.unrefTimer=w30});var Xk=w((Yk)=>{Object.defineProperty(Yk,"__esModule",{value:!0});Yk.ExportResultCode=void 0;var D30;(function(Z){Z[Z.SUCCESS=0]="SUCCESS",Z[Z.FAILED=1]="FAILED"})(D30=Yk.ExportResultCode||(Yk.ExportResultCode={}))});var Bk=w((zk)=>{Object.defineProperty(zk,"__esModule",{value:!0});zk.CompositePropagator=void 0;var Wk=C();class Kk{_propagators;_fields;constructor(Z={}){this._propagators=Z.propagators??[],this._fields=Array.from(new Set(this._propagators.map((J)=>typeof J.fields==="function"?J.fields():[]).reduce((J,Q)=>J.concat(Q),[])))}inject(Z,J,Q){for(let $ of this._propagators)try{$.inject(Z,J,Q)}catch(Y){Wk.diag.warn(`Failed to inject with ${$.constructor.name}. Err: ${Y.message}`)}}extract(Z,J,Q){return this._propagators.reduce(($,Y)=>{try{return Y.extract($,J,Q)}catch(X){Wk.diag.warn(`Failed to extract with ${Y.constructor.name}. Err: ${X.message}`)}return $},Z)}fields(){return this._fields.slice()}}zk.CompositePropagator=Kk});var Fk=w((Hk)=>{Object.defineProperty(Hk,"__esModule",{value:!0});Hk.validateValue=Hk.validateKey=void 0;var YX="[_0-9a-z-*/]",U30=`[a-z]${YX}{0,255}`,j30=`[a-z0-9]${YX}{0,240}@[a-z]${YX}{0,13}`,q30=new RegExp(`^(?:${U30}|${j30})$`),L30=/^[ -~]{0,255}[!-~]$/,O30=/,|=/;function C30(Z){return q30.test(Z)}Hk.validateKey=C30;function P30(Z){return L30.test(Z)&&!O30.test(Z)}Hk.validateValue=P30});var WX=w((qk)=>{Object.defineProperty(qk,"__esModule",{value:!0});qk.TraceState=void 0;var wk=Fk(),Dk=32,M30=512,Uk=",",jk="=";class XX{_internalState=new Map;constructor(Z){if(Z)this._parse(Z)}set(Z,J){let Q=this._clone();if(Q._internalState.has(Z))Q._internalState.delete(Z);return Q._internalState.set(Z,J),Q}unset(Z){let J=this._clone();return J._internalState.delete(Z),J}get(Z){return this._internalState.get(Z)}serialize(){return this._keys().reduce((Z,J)=>{return Z.push(J+jk+this.get(J)),Z},[]).join(Uk)}_parse(Z){if(Z.length>M30)return;if(this._internalState=Z.split(Uk).reverse().reduce((J,Q)=>{let $=Q.trim(),Y=$.indexOf(jk);if(Y!==-1){let X=$.slice(0,Y),W=$.slice(Y+1,Q.length);if((0,wk.validateKey)(X)&&(0,wk.validateValue)(W))J.set(X,W)}return J},new Map),this._internalState.size>Dk)this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,Dk))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let Z=new XX;return Z._internalState=new Map(this._internalState),Z}}qk.TraceState=XX});var Mk=w((Pk)=>{Object.defineProperty(Pk,"__esModule",{value:!0});Pk.W3CTraceContextPropagator=Pk.parseTraceParent=Pk.TRACE_STATE_HEADER=Pk.TRACE_PARENT_HEADER=void 0;var cJ=C(),R30=t8(),A30=WX();Pk.TRACE_PARENT_HEADER="traceparent";Pk.TRACE_STATE_HEADER="tracestate";var I30="00",N30="(?!ff)[\\da-f]{2}",T30="(?![0]{32})[\\da-f]{32}",f30="(?![0]{16})[\\da-f]{16}",E30="[\\da-f]{2}",y30=new RegExp(`^\\s?(${N30})-(${T30})-(${f30})-(${E30})(-.*)?\\s?$`);function Ok(Z){let J=y30.exec(Z);if(!J)return null;if(J[1]==="00"&&J[5])return null;return{traceId:J[2],spanId:J[3],traceFlags:parseInt(J[4],16)}}Pk.parseTraceParent=Ok;class Ck{inject(Z,J,Q){let $=cJ.trace.getSpanContext(Z);if(!$||(0,R30.isTracingSuppressed)(Z)||!(0,cJ.isSpanContextValid)($))return;let Y=`${I30}-${$.traceId}-${$.spanId}-0${Number($.traceFlags||cJ.TraceFlags.NONE).toString(16)}`;if(Q.set(J,Pk.TRACE_PARENT_HEADER,Y),$.traceState)Q.set(J,Pk.TRACE_STATE_HEADER,$.traceState.serialize())}extract(Z,J,Q){let $=Q.get(J,Pk.TRACE_PARENT_HEADER);if(!$)return Z;let Y=Array.isArray($)?$[0]:$;if(typeof Y!=="string")return Z;let X=Ok(Y);if(!X)return Z;X.isRemote=!0;let W=Q.get(J,Pk.TRACE_STATE_HEADER);if(W){let K=Array.isArray(W)?W.join(","):W;X.traceState=new A30.TraceState(typeof K==="string"?K:void 0)}return cJ.trace.setSpanContext(Z,X)}fields(){return[Pk.TRACE_PARENT_HEADER,Pk.TRACE_STATE_HEADER]}}Pk.W3CTraceContextPropagator=Ck});var Nk=w((Ak)=>{Object.defineProperty(Ak,"__esModule",{value:!0});Ak.getRPCMetadata=Ak.deleteRPCMetadata=Ak.setRPCMetadata=Ak.RPCType=void 0;var S30=C(),KX=(0,S30.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),_30;(function(Z){Z.HTTP="http"})(_30=Ak.RPCType||(Ak.RPCType={}));function v30(Z,J){return Z.setValue(KX,J)}Ak.setRPCMetadata=v30;function b30(Z){return Z.deleteValue(KX)}Ak.deleteRPCMetadata=b30;function x30(Z){return Z.getValue(KX)}Ak.getRPCMetadata=x30});var _k=w((hk)=>{Object.defineProperty(hk,"__esModule",{value:!0});hk.isPlainObject=void 0;var c30="[object Object]",m30="[object Null]",u30="[object Undefined]",l30=Function.prototype,Tk=l30.toString,p30=Tk.call(Object),i30=Object.getPrototypeOf,fk=Object.prototype,Ek=fk.hasOwnProperty,O7=Symbol?Symbol.toStringTag:void 0,yk=fk.toString;function o30(Z){if(!n30(Z)||a30(Z)!==c30)return!1;let J=i30(Z);if(J===null)return!0;let Q=Ek.call(J,"constructor")&&J.constructor;return typeof Q=="function"&&Q instanceof Q&&Tk.call(Q)===p30}hk.isPlainObject=o30;function n30(Z){return Z!=null&&typeof Z=="object"}function a30(Z){if(Z==null)return Z===void 0?u30:m30;return O7&&O7 in Object(Z)?s30(Z):r30(Z)}function s30(Z){let J=Ek.call(Z,O7),Q=Z[O7],$=!1;try{Z[O7]=void 0,$=!0}catch{}let Y=yk.call(Z);if($)if(J)Z[O7]=Q;else delete Z[O7];return Y}function r30(Z){return yk.call(Z)}});var mk=w((dk)=>{Object.defineProperty(dk,"__esModule",{value:!0});dk.merge=void 0;var vk=_k(),t30=20;function e30(...Z){let J=Z.shift(),Q=new WeakMap;while(Z.length>0)J=xk(J,Z.shift(),0,Q);return J}dk.merge=e30;function zX(Z){if(pJ(Z))return Z.slice();return Z}function xk(Z,J,Q=0,$){let Y;if(Q>t30)return;if(Q++,lJ(Z)||lJ(J)||gk(J))Y=zX(J);else if(pJ(Z)){if(Y=Z.slice(),pJ(J))for(let X=0,W=J.length;X"u")delete Y[z];else Y[z]=G;else{let H=Y[z],B=G;if(bk(Z,z,$)||bk(J,z,$))delete Y[z];else{if(J5(H)&&J5(B)){let V=$.get(H)||[],F=$.get(B)||[];V.push({obj:Z,key:z}),F.push({obj:J,key:z}),$.set(H,V),$.set(B,F)}Y[z]=xk(Y[z],G,Q,$)}}}}else Y=J;return Y}function bk(Z,J,Q){let $=Q.get(Z[J])||[];for(let Y=0,X=$.length;Y"u"||Z instanceof Date||Z instanceof RegExp||Z===null}function ZY0(Z,J){if(!(0,vk.isPlainObject)(Z)||!(0,vk.isPlainObject)(J))return!1;return!0}});var pk=w((uk)=>{Object.defineProperty(uk,"__esModule",{value:!0});uk.callWithTimeout=uk.TimeoutError=void 0;class iJ extends Error{constructor(Z){super(Z);Object.setPrototypeOf(this,iJ.prototype)}}uk.TimeoutError=iJ;function JY0(Z,J){let Q,$=new Promise(function(X,W){Q=setTimeout(function(){W(new iJ("Operation timed out."))},J)});return Promise.race([Z,$]).then((Y)=>{return clearTimeout(Q),Y},(Y)=>{throw clearTimeout(Q),Y})}uk.callWithTimeout=JY0});var ak=w((ok)=>{Object.defineProperty(ok,"__esModule",{value:!0});ok.isUrlIgnored=ok.urlMatches=void 0;function ik(Z,J){if(typeof J==="string")return Z===J;else return!!Z.match(J)}ok.urlMatches=ik;function $Y0(Z,J){if(!J)return!1;for(let Q of J)if(ik(Z,Q))return!0;return!1}ok.isUrlIgnored=$Y0});var ek=w((rk)=>{Object.defineProperty(rk,"__esModule",{value:!0});rk.Deferred=void 0;class sk{_promise;_resolve;_reject;constructor(){this._promise=new Promise((Z,J)=>{this._resolve=Z,this._reject=J})}get promise(){return this._promise}resolve(Z){this._resolve(Z)}reject(Z){this._reject(Z)}}rk.Deferred=sk});var $M=w((JM)=>{Object.defineProperty(JM,"__esModule",{value:!0});JM.BindOnceFuture=void 0;var XY0=ek();class ZM{_isCalled=!1;_deferred=new XY0.Deferred;_callback;_that;constructor(Z,J){this._callback=Z,this._that=J}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...Z){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...Z)).then((J)=>this._deferred.resolve(J),(J)=>this._deferred.reject(J))}catch(J){this._deferred.reject(J)}}return this._deferred.promise}}JM.BindOnceFuture=ZM});var KM=w((XM)=>{Object.defineProperty(XM,"__esModule",{value:!0});XM.diagLogLevelFromString=void 0;var l9=C(),YM={ALL:l9.DiagLogLevel.ALL,VERBOSE:l9.DiagLogLevel.VERBOSE,DEBUG:l9.DiagLogLevel.DEBUG,INFO:l9.DiagLogLevel.INFO,WARN:l9.DiagLogLevel.WARN,ERROR:l9.DiagLogLevel.ERROR,NONE:l9.DiagLogLevel.NONE};function WY0(Z){if(Z==null)return;let J=YM[Z.toUpperCase()];if(J==null)return l9.diag.warn(`Unknown log level "${Z}", expected one of ${Object.keys(YM)}, using default`),l9.DiagLogLevel.INFO;return J}XM.diagLogLevelFromString=WY0});var HM=w((GM)=>{Object.defineProperty(GM,"__esModule",{value:!0});GM._export=void 0;var zM=C(),KY0=t8();function zY0(Z,J){return new Promise((Q)=>{zM.context.with((0,KY0.suppressTracing)(zM.context.active()),()=>{Z.export(J,Q)})})}GM._export=zY0});var BX=w((v)=>{Object.defineProperty(v,"__esModule",{value:!0});v.internal=v.diagLogLevelFromString=v.BindOnceFuture=v.urlMatches=v.isUrlIgnored=v.callWithTimeout=v.TimeoutError=v.merge=v.TraceState=v.unsuppressTracing=v.suppressTracing=v.isTracingSuppressed=v.setRPCMetadata=v.getRPCMetadata=v.deleteRPCMetadata=v.RPCType=v.parseTraceParent=v.W3CTraceContextPropagator=v.TRACE_STATE_HEADER=v.TRACE_PARENT_HEADER=v.CompositePropagator=v.otperformance=v.getStringListFromEnv=v.getNumberFromEnv=v.getBooleanFromEnv=v.getStringFromEnv=v._globalThis=v.SDK_INFO=v.parseKeyPairsIntoRecord=v.ExportResultCode=v.unrefTimer=v.timeInputToHrTime=v.millisToHrTime=v.isTimeInputHrTime=v.isTimeInput=v.hrTimeToTimeStamp=v.hrTimeToNanoseconds=v.hrTimeToMilliseconds=v.hrTimeToMicroseconds=v.hrTimeDuration=v.hrTime=v.getTimeOrigin=v.addHrTimes=v.loggingErrorHandler=v.setGlobalErrorHandler=v.globalErrorHandler=v.sanitizeAttributes=v.isAttributeValue=v.AnchoredClock=v.W3CBaggagePropagator=void 0;var GY0=kD();Object.defineProperty(v,"W3CBaggagePropagator",{enumerable:!0,get:function(){return GY0.W3CBaggagePropagator}});var BY0=ID();Object.defineProperty(v,"AnchoredClock",{enumerable:!0,get:function(){return BY0.AnchoredClock}});var VM=SD();Object.defineProperty(v,"isAttributeValue",{enumerable:!0,get:function(){return VM.isAttributeValue}});Object.defineProperty(v,"sanitizeAttributes",{enumerable:!0,get:function(){return VM.sanitizeAttributes}});var FM=dD();Object.defineProperty(v,"globalErrorHandler",{enumerable:!0,get:function(){return FM.globalErrorHandler}});Object.defineProperty(v,"setGlobalErrorHandler",{enumerable:!0,get:function(){return FM.setGlobalErrorHandler}});var HY0=eY();Object.defineProperty(v,"loggingErrorHandler",{enumerable:!0,get:function(){return HY0.loggingErrorHandler}});var m6=Zk();Object.defineProperty(v,"addHrTimes",{enumerable:!0,get:function(){return m6.addHrTimes}});Object.defineProperty(v,"getTimeOrigin",{enumerable:!0,get:function(){return m6.getTimeOrigin}});Object.defineProperty(v,"hrTime",{enumerable:!0,get:function(){return m6.hrTime}});Object.defineProperty(v,"hrTimeDuration",{enumerable:!0,get:function(){return m6.hrTimeDuration}});Object.defineProperty(v,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return m6.hrTimeToMicroseconds}});Object.defineProperty(v,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return m6.hrTimeToMilliseconds}});Object.defineProperty(v,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return m6.hrTimeToNanoseconds}});Object.defineProperty(v,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return m6.hrTimeToTimeStamp}});Object.defineProperty(v,"isTimeInput",{enumerable:!0,get:function(){return m6.isTimeInput}});Object.defineProperty(v,"isTimeInputHrTime",{enumerable:!0,get:function(){return m6.isTimeInputHrTime}});Object.defineProperty(v,"millisToHrTime",{enumerable:!0,get:function(){return m6.millisToHrTime}});Object.defineProperty(v,"timeInputToHrTime",{enumerable:!0,get:function(){return m6.timeInputToHrTime}});var VY0=$k();Object.defineProperty(v,"unrefTimer",{enumerable:!0,get:function(){return VY0.unrefTimer}});var FY0=Xk();Object.defineProperty(v,"ExportResultCode",{enumerable:!0,get:function(){return FY0.ExportResultCode}});var wY0=sY();Object.defineProperty(v,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return wY0.parseKeyPairsIntoRecord}});var C7=JX();Object.defineProperty(v,"SDK_INFO",{enumerable:!0,get:function(){return C7.SDK_INFO}});Object.defineProperty(v,"_globalThis",{enumerable:!0,get:function(){return C7._globalThis}});Object.defineProperty(v,"getStringFromEnv",{enumerable:!0,get:function(){return C7.getStringFromEnv}});Object.defineProperty(v,"getBooleanFromEnv",{enumerable:!0,get:function(){return C7.getBooleanFromEnv}});Object.defineProperty(v,"getNumberFromEnv",{enumerable:!0,get:function(){return C7.getNumberFromEnv}});Object.defineProperty(v,"getStringListFromEnv",{enumerable:!0,get:function(){return C7.getStringListFromEnv}});Object.defineProperty(v,"otperformance",{enumerable:!0,get:function(){return C7.otperformance}});var DY0=Bk();Object.defineProperty(v,"CompositePropagator",{enumerable:!0,get:function(){return DY0.CompositePropagator}});var oJ=Mk();Object.defineProperty(v,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return oJ.TRACE_PARENT_HEADER}});Object.defineProperty(v,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return oJ.TRACE_STATE_HEADER}});Object.defineProperty(v,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return oJ.W3CTraceContextPropagator}});Object.defineProperty(v,"parseTraceParent",{enumerable:!0,get:function(){return oJ.parseTraceParent}});var nJ=Nk();Object.defineProperty(v,"RPCType",{enumerable:!0,get:function(){return nJ.RPCType}});Object.defineProperty(v,"deleteRPCMetadata",{enumerable:!0,get:function(){return nJ.deleteRPCMetadata}});Object.defineProperty(v,"getRPCMetadata",{enumerable:!0,get:function(){return nJ.getRPCMetadata}});Object.defineProperty(v,"setRPCMetadata",{enumerable:!0,get:function(){return nJ.setRPCMetadata}});var GX=t8();Object.defineProperty(v,"isTracingSuppressed",{enumerable:!0,get:function(){return GX.isTracingSuppressed}});Object.defineProperty(v,"suppressTracing",{enumerable:!0,get:function(){return GX.suppressTracing}});Object.defineProperty(v,"unsuppressTracing",{enumerable:!0,get:function(){return GX.unsuppressTracing}});var UY0=WX();Object.defineProperty(v,"TraceState",{enumerable:!0,get:function(){return UY0.TraceState}});var jY0=mk();Object.defineProperty(v,"merge",{enumerable:!0,get:function(){return jY0.merge}});var wM=pk();Object.defineProperty(v,"TimeoutError",{enumerable:!0,get:function(){return wM.TimeoutError}});Object.defineProperty(v,"callWithTimeout",{enumerable:!0,get:function(){return wM.callWithTimeout}});var DM=ak();Object.defineProperty(v,"isUrlIgnored",{enumerable:!0,get:function(){return DM.isUrlIgnored}});Object.defineProperty(v,"urlMatches",{enumerable:!0,get:function(){return DM.urlMatches}});var qY0=$M();Object.defineProperty(v,"BindOnceFuture",{enumerable:!0,get:function(){return qY0.BindOnceFuture}});var LY0=KM();Object.defineProperty(v,"diagLogLevelFromString",{enumerable:!0,get:function(){return LY0.diagLogLevelFromString}});var OY0=HM();v.internal={_export:OY0._export}});var LM=w((jM)=>{Object.defineProperty(jM,"__esModule",{value:!0});jM.VERSION=void 0;jM.VERSION="0.213.0"});var CM=w((OM)=>{Object.defineProperty(OM,"__esModule",{value:!0});OM.SeverityNumber=void 0;var CY0;(function(Z){Z[Z.UNSPECIFIED=0]="UNSPECIFIED",Z[Z.TRACE=1]="TRACE",Z[Z.TRACE2=2]="TRACE2",Z[Z.TRACE3=3]="TRACE3",Z[Z.TRACE4=4]="TRACE4",Z[Z.DEBUG=5]="DEBUG",Z[Z.DEBUG2=6]="DEBUG2",Z[Z.DEBUG3=7]="DEBUG3",Z[Z.DEBUG4=8]="DEBUG4",Z[Z.INFO=9]="INFO",Z[Z.INFO2=10]="INFO2",Z[Z.INFO3=11]="INFO3",Z[Z.INFO4=12]="INFO4",Z[Z.WARN=13]="WARN",Z[Z.WARN2=14]="WARN2",Z[Z.WARN3=15]="WARN3",Z[Z.WARN4=16]="WARN4",Z[Z.ERROR=17]="ERROR",Z[Z.ERROR2=18]="ERROR2",Z[Z.ERROR3=19]="ERROR3",Z[Z.ERROR4=20]="ERROR4",Z[Z.FATAL=21]="FATAL",Z[Z.FATAL2=22]="FATAL2",Z[Z.FATAL3=23]="FATAL3",Z[Z.FATAL4=24]="FATAL4"})(CY0=OM.SeverityNumber||(OM.SeverityNumber={}))});var aJ=w((PM)=>{Object.defineProperty(PM,"__esModule",{value:!0});PM.NOOP_LOGGER=PM.NoopLogger=void 0;class VX{emit(Z){}}PM.NoopLogger=VX;PM.NOOP_LOGGER=new VX});var AM=w((MM)=>{Object.defineProperty(MM,"__esModule",{value:!0});MM.API_BACKWARDS_COMPATIBILITY_VERSION=MM.makeGetter=MM._global=MM.GLOBAL_LOGS_API_KEY=void 0;MM.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");MM._global=globalThis;function kY0(Z,J,Q){return($)=>$===Z?J:Q}MM.makeGetter=kY0;MM.API_BACKWARDS_COMPATIBILITY_VERSION=1});var wX=w((IM)=>{Object.defineProperty(IM,"__esModule",{value:!0});IM.NOOP_LOGGER_PROVIDER=IM.NoopLoggerProvider=void 0;var IY0=aJ();class FX{getLogger(Z,J,Q){return new IY0.NoopLogger}}IM.NoopLoggerProvider=FX;IM.NOOP_LOGGER_PROVIDER=new FX});var yM=w((fM)=>{Object.defineProperty(fM,"__esModule",{value:!0});fM.ProxyLogger=void 0;var TY0=aJ();class TM{constructor(Z,J,Q,$){this._provider=Z,this.name=J,this.version=Q,this.options=$}emit(Z){this._getLogger().emit(Z)}_getLogger(){if(this._delegate)return this._delegate;let Z=this._provider._getDelegateLogger(this.name,this.version,this.options);if(!Z)return TY0.NOOP_LOGGER;return this._delegate=Z,this._delegate}}fM.ProxyLogger=TM});var vM=w((SM)=>{Object.defineProperty(SM,"__esModule",{value:!0});SM.ProxyLoggerProvider=void 0;var fY0=wX(),EY0=yM();class hM{getLogger(Z,J,Q){var $;return($=this._getDelegateLogger(Z,J,Q))!==null&&$!==void 0?$:new EY0.ProxyLogger(this,Z,J,Q)}_getDelegate(){var Z;return(Z=this._delegate)!==null&&Z!==void 0?Z:fY0.NOOP_LOGGER_PROVIDER}_setDelegate(Z){this._delegate=Z}_getDelegateLogger(Z,J,Q){var $;return($=this._delegate)===null||$===void 0?void 0:$.getLogger(Z,J,Q)}}SM.ProxyLoggerProvider=hM});var dM=w((xM)=>{Object.defineProperty(xM,"__esModule",{value:!0});xM.LogsAPI=void 0;var u6=AM(),yY0=wX(),bM=vM();class DX{constructor(){this._proxyLoggerProvider=new bM.ProxyLoggerProvider}static getInstance(){if(!this._instance)this._instance=new DX;return this._instance}setGlobalLoggerProvider(Z){if(u6._global[u6.GLOBAL_LOGS_API_KEY])return this.getLoggerProvider();return u6._global[u6.GLOBAL_LOGS_API_KEY]=(0,u6.makeGetter)(u6.API_BACKWARDS_COMPATIBILITY_VERSION,Z,yY0.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(Z),Z}getLoggerProvider(){var Z,J;return(J=(Z=u6._global[u6.GLOBAL_LOGS_API_KEY])===null||Z===void 0?void 0:Z.call(u6._global,u6.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&J!==void 0?J:this._proxyLoggerProvider}getLogger(Z,J,Q){return this.getLoggerProvider().getLogger(Z,J,Q)}disable(){delete u6._global[u6.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new bM.ProxyLoggerProvider}}xM.LogsAPI=DX});var UX=w((Q5)=>{Object.defineProperty(Q5,"__esModule",{value:!0});Q5.logs=Q5.NoopLogger=Q5.NOOP_LOGGER=Q5.SeverityNumber=void 0;var hY0=CM();Object.defineProperty(Q5,"SeverityNumber",{enumerable:!0,get:function(){return hY0.SeverityNumber}});var cM=aJ();Object.defineProperty(Q5,"NOOP_LOGGER",{enumerable:!0,get:function(){return cM.NOOP_LOGGER}});Object.defineProperty(Q5,"NoopLogger",{enumerable:!0,get:function(){return cM.NoopLogger}});var SY0=dM();Q5.logs=SY0.LogsAPI.getInstance()});var pM=w((uM)=>{Object.defineProperty(uM,"__esModule",{value:!0});uM.disableInstrumentations=uM.enableInstrumentations=void 0;function _Y0(Z,J,Q,$){for(let Y=0,X=Z.length;YJ.disable())}uM.disableInstrumentations=vY0});var sM=w((nM)=>{Object.defineProperty(nM,"__esModule",{value:!0});nM.registerInstrumentations=void 0;var iM=C(),xY0=UX(),oM=pM();function gY0(Z){let J=Z.tracerProvider||iM.trace.getTracerProvider(),Q=Z.meterProvider||iM.metrics.getMeterProvider(),$=Z.loggerProvider||xY0.logs.getLoggerProvider(),Y=Z.instrumentations?.flat()??[];return(0,oM.enableInstrumentations)(Y,J,Q,$),()=>{(0,oM.disableInstrumentations)(Y)}}nM.registerInstrumentations=gY0});var KR=w((XR)=>{Object.defineProperty(XR,"__esModule",{value:!0});XR.satisfies=void 0;var OX=C(),JR=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,dY0=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,cY0={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function mY0(Z,J,Q){if(!uY0(Z))return OX.diag.error(`Invalid version: ${Z}`),!1;if(!J)return!0;J=J.replace(/([<>=~^]+)\s+/g,"$1");let $=oY0(Z);if(!$)return!1;let Y=[],X=QR($,J,Y,Q);if(X&&!Q?.includePrerelease)return pY0($,Y);return X}XR.satisfies=mY0;function uY0(Z){return typeof Z==="string"&&JR.test(Z)}function QR(Z,J,Q,$){if(J.includes("||")){let Y=J.trim().split("||");for(let X of Y)if(jX(Z,X,Q,$))return!0;return!1}else if(J.includes(" - "))J=wX0(J,$);else if(J.includes(" ")){let Y=J.trim().replace(/\s{2,}/g," ").split(" ");for(let X of Y)if(!jX(Z,X,Q,$))return!1;return!0}return jX(Z,J,Q,$)}function jX(Z,J,Q,$){if(J=iY0(J,$),J.includes(" "))return QR(Z,J,Q,$);else{let Y=nY0(J);return Q.push(Y),lY0(Z,Y)}}function lY0(Z,J){if(J.invalid)return!1;if(!J.version||LX(J.version))return!0;let Q=tM(Z.versionSegments||[],J.versionSegments||[]);if(Q===0){let $=Z.prereleaseSegments||[],Y=J.prereleaseSegments||[];if(!$.length&&!Y.length)Q=0;else if(!$.length&&Y.length)Q=1;else if($.length&&!Y.length)Q=-1;else Q=tM($,Y)}return cY0[J.op]?.includes(Q)}function pY0(Z,J){if(Z.prerelease)return J.some((Q)=>Q.prerelease&&Q.version===Z.version);return!0}function iY0(Z,J){return Z=Z.trim(),Z=VX0(Z,J),Z=HX0(Z),Z=FX0(Z,J),Z=Z.trim(),Z}function t0(Z){return!Z||Z.toLowerCase()==="x"||Z==="*"}function oY0(Z){let J=Z.match(JR);if(!J){OX.diag.error(`Invalid version: ${Z}`);return}let Q=J.groups.version,$=J.groups.prerelease,Y=J.groups.build,X=Q.split("."),W=$?.split(".");return{op:void 0,version:Q,versionSegments:X,versionSegmentCount:X.length,prerelease:$,prereleaseSegments:W,prereleaseSegmentCount:W?W.length:0,build:Y}}function nY0(Z){if(!Z)return{};let J=Z.match(dY0);if(!J)return OX.diag.error(`Invalid range: ${Z}`),{invalid:!0};let Q=J.groups.op,$=J.groups.version,Y=J.groups.prerelease,X=J.groups.build,W=$.split("."),K=Y?.split(".");if(Q==="==")Q="=";return{op:Q||"=",version:$,versionSegments:W,versionSegmentCount:W.length,prerelease:Y,prereleaseSegments:K,prereleaseSegmentCount:K?K.length:0,build:X}}function LX(Z){return Z==="*"||Z==="x"||Z==="X"}function rM(Z){let J=parseInt(Z,10);return isNaN(J)?Z:J}function aY0(Z,J){if(typeof Z===typeof J)if(typeof Z==="number")return[Z,J];else if(typeof Z==="string")return[Z,J];else throw Error("Version segments can only be strings or numbers");else return[String(Z),String(J)]}function sY0(Z,J){if(LX(Z)||LX(J))return 0;let[Q,$]=aY0(rM(Z),rM(J));if(Q>$)return 1;else if(Q<$)return-1;return 0}function tM(Z,J){for(let Q=0;Q)?=?)",eM=`(?:${YR}|${rY0})`,eY0=`(?:-(${eM}(?:\\.${eM})*))`,ZR=`${$R}+`,ZX0=`(?:\\+(${ZR}(?:\\.${ZR})*))`,qX=`${YR}|x|X|\\*`,$5=`[v=\\s]*(${qX})(?:\\.(${qX})(?:\\.(${qX})(?:${eY0})?${ZX0}?)?)?`,JX0=`^${tY0}\\s*${$5}$`,QX0=new RegExp(JX0),$X0=`^\\s*(${$5})\\s+-\\s+(${$5})\\s*$`,YX0=new RegExp($X0),XX0="(?:~>?)",WX0=`^${XX0}${$5}$`,KX0=new RegExp(WX0),zX0="(?:\\^)",GX0=`^${zX0}${$5}$`,BX0=new RegExp(GX0);function HX0(Z){let J=KX0;return Z.replace(J,(Q,$,Y,X,W)=>{let K;if(t0($))K="";else if(t0(Y))K=`>=${$}.0.0 <${+$+1}.0.0-0`;else if(t0(X))K=`>=${$}.${Y}.0 <${$}.${+Y+1}.0-0`;else if(W)K=`>=${$}.${Y}.${X}-${W} <${$}.${+Y+1}.0-0`;else K=`>=${$}.${Y}.${X} <${$}.${+Y+1}.0-0`;return K})}function VX0(Z,J){let Q=BX0,$=J?.includePrerelease?"-0":"";return Z.replace(Q,(Y,X,W,K,z)=>{let G;if(t0(X))G="";else if(t0(W))G=`>=${X}.0.0${$} <${+X+1}.0.0-0`;else if(t0(K))if(X==="0")G=`>=${X}.${W}.0${$} <${X}.${+W+1}.0-0`;else G=`>=${X}.${W}.0${$} <${+X+1}.0.0-0`;else if(z)if(X==="0")if(W==="0")G=`>=${X}.${W}.${K}-${z} <${X}.${W}.${+K+1}-0`;else G=`>=${X}.${W}.${K}-${z} <${X}.${+W+1}.0-0`;else G=`>=${X}.${W}.${K}-${z} <${+X+1}.0.0-0`;else if(X==="0")if(W==="0")G=`>=${X}.${W}.${K}${$} <${X}.${W}.${+K+1}-0`;else G=`>=${X}.${W}.${K}${$} <${X}.${+W+1}.0-0`;else G=`>=${X}.${W}.${K} <${+X+1}.0.0-0`;return G})}function FX0(Z,J){let Q=QX0;return Z.replace(Q,($,Y,X,W,K,z)=>{let G=t0(X),H=G||t0(W),B=H||t0(K),V=B;if(Y==="="&&V)Y="";if(z=J?.includePrerelease?"-0":"",G)if(Y===">"||Y==="<")$="<0.0.0-0";else $="*";else if(Y&&V){if(H)W=0;if(K=0,Y===">")if(Y=">=",H)X=+X+1,W=0,K=0;else W=+W+1,K=0;else if(Y==="<=")if(Y="<",H)X=+X+1;else W=+W+1;if(Y==="<")z="-0";$=`${Y+X}.${W}.${K}${z}`}else if(H)$=`>=${X}.0.0${z} <${+X+1}.0.0-0`;else if(B)$=`>=${X}.${W}.0${z} <${X}.${+W+1}.0-0`;return $})}function wX0(Z,J){let Q=YX0;return Z.replace(Q,($,Y,X,W,K,z,G,H,B,V,F,D)=>{if(t0(X))Y="";else if(t0(W))Y=`>=${X}.0.0${J?.includePrerelease?"-0":""}`;else if(t0(K))Y=`>=${X}.${W}.0${J?.includePrerelease?"-0":""}`;else if(z)Y=`>=${Y}`;else Y=`>=${Y}${J?.includePrerelease?"-0":""}`;if(t0(B))H="";else if(t0(V))H=`<${+B+1}.0.0-0`;else if(t0(F))H=`<${B}.${+V+1}.0-0`;else if(D)H=`<=${B}.${V}.${F}-${D}`;else if(J?.includePrerelease)H=`<${B}.${V}.${+F+1}-0`;else H=`<=${H}`;return`${Y} ${H}`.trim()})}});var MX=w((zR)=>{Object.defineProperty(zR,"__esModule",{value:!0});zR.massUnwrap=zR.unwrap=zR.massWrap=zR.wrap=void 0;var e0=console.error.bind(console);function Y5(Z,J,Q){let $=!!Z[J]&&Object.prototype.propertyIsEnumerable.call(Z,J);Object.defineProperty(Z,J,{configurable:!0,enumerable:$,writable:!0,value:Q})}var DX0=(Z,J,Q)=>{if(!Z||!Z[J]){e0("no original function "+String(J)+" to wrap");return}if(!Q){e0("no wrapper function"),e0(Error().stack);return}let $=Z[J];if(typeof $!=="function"||typeof Q!=="function"){e0("original object and wrapper must be functions");return}let Y=Q($,J);return Y5(Y,"__original",$),Y5(Y,"__unwrap",()=>{if(Z[J]===Y)Y5(Z,J,$)}),Y5(Y,"__wrapped",!0),Y5(Z,J,Y),Y};zR.wrap=DX0;var UX0=(Z,J,Q)=>{if(!Z){e0("must provide one or more modules to patch"),e0(Error().stack);return}else if(!Array.isArray(Z))Z=[Z];if(!(J&&Array.isArray(J))){e0("must provide one or more functions to wrap on modules");return}Z.forEach(($)=>{J.forEach((Y)=>{zR.wrap($,Y,Q)})})};zR.massWrap=UX0;var jX0=(Z,J)=>{if(!Z||!Z[J]){e0("no function to unwrap."),e0(Error().stack);return}let Q=Z[J];if(!Q.__unwrap)e0("no original to unwrap to -- has "+String(J)+" already been unwrapped?");else{Q.__unwrap();return}};zR.unwrap=jX0;var qX0=(Z,J)=>{if(!Z){e0("must provide one or more modules to patch"),e0(Error().stack);return}else if(!Array.isArray(Z))Z=[Z];if(!(J&&Array.isArray(J))){e0("must provide one or more functions to unwrap on modules");return}Z.forEach((Q)=>{J.forEach(($)=>{zR.unwrap(Q,$)})})};zR.massUnwrap=qX0;function X5(Z){if(Z&&Z.logger)if(typeof Z.logger!=="function")e0("new logger isn't a function, not replacing");else e0=Z.logger}zR.default=X5;X5.wrap=zR.wrap;X5.massWrap=zR.massWrap;X5.unwrap=zR.unwrap;X5.massUnwrap=zR.massUnwrap});var FR=w((HR)=>{Object.defineProperty(HR,"__esModule",{value:!0});HR.InstrumentationAbstract=void 0;var RX=C(),OX0=UX(),sJ=MX();class BR{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(Z,J,Q){this.instrumentationName=Z,this.instrumentationVersion=J,this.setConfig(Q),this._diag=RX.diag.createComponentLogger({namespace:Z}),this._tracer=RX.trace.getTracer(Z,J),this._meter=RX.metrics.getMeter(Z,J),this._logger=OX0.logs.getLogger(Z,J),this._updateMetricInstruments()}_wrap=sJ.wrap;_unwrap=sJ.unwrap;_massWrap=sJ.massWrap;_massUnwrap=sJ.massUnwrap;get meter(){return this._meter}setMeterProvider(Z){this._meter=Z.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(Z){this._logger=Z.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let Z=this.init()??[];if(!Array.isArray(Z))return[Z];return Z}_updateMetricInstruments(){return}getConfig(){return this._config}setConfig(Z){this._config={enabled:!0,...Z}}setTracerProvider(Z){this._tracer=Z.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(Z,J,Q,$){if(!Z)return;try{Z(Q,$)}catch(Y){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:J},Y)}}}HR.InstrumentationAbstract=BR});var DR=w((Tv0,wR)=>{var C1=1000,P1=C1*60,k1=P1*60,P7=k1*24,CX0=P7*7,PX0=P7*365.25;wR.exports=function(Z,J){J=J||{};var Q=typeof Z;if(Q==="string"&&Z.length>0)return kX0(Z);else if(Q==="number"&&isFinite(Z))return J.long?RX0(Z):MX0(Z);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(Z))};function kX0(Z){if(Z=String(Z),Z.length>100)return;var J=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(Z);if(!J)return;var Q=parseFloat(J[1]),$=(J[2]||"ms").toLowerCase();switch($){case"years":case"year":case"yrs":case"yr":case"y":return Q*PX0;case"weeks":case"week":case"w":return Q*CX0;case"days":case"day":case"d":return Q*P7;case"hours":case"hour":case"hrs":case"hr":case"h":return Q*k1;case"minutes":case"minute":case"mins":case"min":case"m":return Q*P1;case"seconds":case"second":case"secs":case"sec":case"s":return Q*C1;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return Q;default:return}}function MX0(Z){var J=Math.abs(Z);if(J>=P7)return Math.round(Z/P7)+"d";if(J>=k1)return Math.round(Z/k1)+"h";if(J>=P1)return Math.round(Z/P1)+"m";if(J>=C1)return Math.round(Z/C1)+"s";return Z+"ms"}function RX0(Z){var J=Math.abs(Z);if(J>=P7)return rJ(Z,J,P7,"day");if(J>=k1)return rJ(Z,J,k1,"hour");if(J>=P1)return rJ(Z,J,P1,"minute");if(J>=C1)return rJ(Z,J,C1,"second");return Z+" ms"}function rJ(Z,J,Q,$){var Y=J>=Q*1.5;return Math.round(Z/Q)+" "+$+(Y?"s":"")}});var AX=w((fv0,UR)=>{function AX0(Z){Q.debug=Q,Q.default=Q,Q.coerce=z,Q.disable=W,Q.enable=Y,Q.enabled=K,Q.humanize=DR(),Q.destroy=G,Object.keys(Z).forEach((H)=>{Q[H]=Z[H]}),Q.names=[],Q.skips=[],Q.formatters={};function J(H){let B=0;for(let V=0;V{if(n==="%%")return"%";S++;let r0=Q.formatters[r];if(typeof r0==="function"){let R9=j[S];n=r0.call(L,R9),j.splice(S,1),S--}return n}),Q.formatArgs.call(L,j),(L.log||Q.log).apply(L,j)}if(U.namespace=H,U.useColors=Q.useColors(),U.color=Q.selectColor(H),U.extend=$,U.destroy=Q.destroy,Object.defineProperty(U,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(V!==null)return V;if(F!==Q.namespaces)F=Q.namespaces,D=Q.enabled(H);return D},set:(j)=>{V=j}}),typeof Q.init==="function")Q.init(U);return U}function $(H,B){let V=Q(this.namespace+(typeof B>"u"?":":B)+H);return V.log=this.log,V}function Y(H){Q.save(H),Q.namespaces=H,Q.names=[],Q.skips=[];let B=(typeof H==="string"?H:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let V of B)if(V[0]==="-")Q.skips.push(V.slice(1));else Q.names.push(V)}function X(H,B){let V=0,F=0,D=-1,U=0;while(V"-"+B)].join(",");return Q.enable(""),H}function K(H){for(let B of Q.skips)if(X(H,B))return!1;for(let B of Q.names)if(X(H,B))return!0;return!1}function z(H){if(H instanceof Error)return H.stack||H.message;return H}function G(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return Q.enable(Q.load()),Q}UR.exports=AX0});var qR=w((jR,tJ)=>{jR.formatArgs=NX0;jR.save=TX0;jR.load=fX0;jR.useColors=IX0;jR.storage=EX0();jR.destroy=(()=>{let Z=!1;return()=>{if(!Z)Z=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();jR.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function IX0(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let Z;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(Z=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(Z[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function NX0(Z){if(Z[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+Z[0]+(this.useColors?"%c ":" ")+"+"+tJ.exports.humanize(this.diff),!this.useColors)return;let J="color: "+this.color;Z.splice(1,0,J,"color: inherit");let Q=0,$=0;Z[0].replace(/%[a-zA-Z%]/g,(Y)=>{if(Y==="%%")return;if(Q++,Y==="%c")$=Q}),Z.splice($,0,J)}jR.log=console.debug||console.log||(()=>{});function TX0(Z){try{if(Z)jR.storage.setItem("debug",Z);else jR.storage.removeItem("debug")}catch(J){}}function fX0(){let Z;try{Z=jR.storage.getItem("debug")||jR.storage.getItem("DEBUG")}catch(J){}if(!Z&&typeof process<"u"&&"env"in process)Z=process.env.DEBUG;return Z}function EX0(){try{return localStorage}catch(Z){}}tJ.exports=AX()(jR);var{formatters:yX0}=tJ.exports;yX0.j=function(Z){try{return JSON.stringify(Z)}catch(J){return"[UnexpectedJSONParseError]: "+J.message}}});var PR=w((OR,ZQ)=>{var dX0=A("tty"),eJ=A("util");OR.init=oX0;OR.log=lX0;OR.formatArgs=mX0;OR.save=pX0;OR.load=iX0;OR.useColors=cX0;OR.destroy=eJ.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");OR.colors=[6,2,3,4,5,1];try{let Z=(()=>{throw new Error("Cannot require module "+"supports-color");})();if(Z&&(Z.stderr||Z).level>=2)OR.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(Z){}OR.inspectOpts=Object.keys(process.env).filter((Z)=>{return/^debug_/i.test(Z)}).reduce((Z,J)=>{let Q=J.substring(6).toLowerCase().replace(/_([a-z])/g,(Y,X)=>{return X.toUpperCase()}),$=process.env[J];if(/^(yes|on|true|enabled)$/i.test($))$=!0;else if(/^(no|off|false|disabled)$/i.test($))$=!1;else if($==="null")$=null;else $=Number($);return Z[Q]=$,Z},{});function cX0(){return"colors"in OR.inspectOpts?Boolean(OR.inspectOpts.colors):dX0.isatty(process.stderr.fd)}function mX0(Z){let{namespace:J,useColors:Q}=this;if(Q){let $=this.color,Y="\x1B[3"+($<8?$:"8;5;"+$),X=` ${Y};1m${J} \x1B[0m`;Z[0]=X+Z[0].split(` +import{createRequire as zg}from"node:module";var tx=Object.create;var{getPrototypeOf:ex,defineProperty:vQ,getOwnPropertyNames:$g}=Object;var Zg=Object.prototype.hasOwnProperty;function Xg($){return this[$]}var Qg,Jg,N=($,Z,X)=>{var Q=$!=null&&typeof $==="object";if(Q){var J=Z?Qg??=new WeakMap:Jg??=new WeakMap,Y=J.get($);if(Y)return Y}X=$!=null?tx(ex($)):{};let W=Z||!$||!$.__esModule?vQ(X,"default",{value:$,enumerable:!0}):X;for(let K of $g($))if(!Zg.call(W,K))vQ(W,K,{get:Xg.bind($,K),enumerable:!0});if(Q)J.set($,W);return W};var q=($,Z)=>()=>(Z||$((Z={exports:{}}).exports,Z),Z.exports);var Yg=($)=>$;function Wg($,Z){this[$]=Yg.bind(null,Z)}var Kg=($,Z)=>{for(var X in Z)vQ($,X,{get:Z[X],enumerable:!0,configurable:!0,set:Wg.bind(Z,X)})};var s=zg(import.meta.url);var eY=q((EB)=>{Object.defineProperty(EB,"__esModule",{value:!0});EB.VERSION=void 0;EB.VERSION="1.9.1"});var gB=q((SB)=>{Object.defineProperty(SB,"__esModule",{value:!0});SB.isCompatible=SB._makeCompatibilityCheck=void 0;var _c=eY(),bB=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function vB($){let Z=new Set([$]),X=new Set,Q=$.match(bB);if(!Q)return()=>!1;let J={major:+Q[1],minor:+Q[2],patch:+Q[3],prerelease:Q[4]};if(J.prerelease!=null)return function(z){return z===$};function Y(K){return X.add(K),!1}function W(K){return Z.add(K),!0}return function(z){if(Z.has(z))return!0;if(X.has(z))return!1;let H=z.match(bB);if(!H)return Y(z);let G={major:+H[1],minor:+H[2],patch:+H[3],prerelease:H[4]};if(G.prerelease!=null)return Y(z);if(J.major!==G.major)return Y(z);if(J.major===0){if(J.minor===G.minor&&J.patch<=G.patch)return W(z);return Y(z)}if(J.minor<=G.minor)return W(z);return Y(z)}}SB._makeCompatibilityCheck=vB;SB.isCompatible=vB(_c.VERSION)});var P8=q((mB)=>{Object.defineProperty(mB,"__esModule",{value:!0});mB.unregisterGlobal=mB.getGlobal=mB.registerGlobal=void 0;var u7=eY(),Ic=gB(),Tc=u7.VERSION.split(".")[0],NZ=Symbol.for(`opentelemetry.js.api.${Tc}`),_Z=typeof globalThis==="object"?globalThis:typeof self==="object"?self:typeof window==="object"?window:typeof global==="object"?global:{};function Ec($,Z,X,Q=!1){var J;let Y=_Z[NZ]=(J=_Z[NZ])!==null&&J!==void 0?J:{version:u7.VERSION};if(!Q&&Y[$]){let W=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${$}`);return X.error(W.stack||W.message),!1}if(Y.version!==u7.VERSION){let W=Error(`@opentelemetry/api: Registration of version v${Y.version} for ${$} does not match previously registered API v${u7.VERSION}`);return X.error(W.stack||W.message),!1}return Y[$]=Z,X.debug(`@opentelemetry/api: Registered a global for ${$} v${u7.VERSION}.`),!0}mB.registerGlobal=Ec;function hc($){var Z,X;let Q=(Z=_Z[NZ])===null||Z===void 0?void 0:Z.version;if(!Q||!(0,Ic.isCompatible)(Q))return;return(X=_Z[NZ])===null||X===void 0?void 0:X[$]}mB.getGlobal=hc;function bc($,Z){Z.debug(`@opentelemetry/api: Unregistering a global for ${$} v${u7.VERSION}.`);let X=_Z[NZ];if(X)delete X[$]}mB.unregisterGlobal=bc});var pB=q((cB)=>{Object.defineProperty(cB,"__esModule",{value:!0});cB.DiagComponentLogger=void 0;var xc=P8();class uB{constructor($){this._namespace=$.namespace||"DiagComponentLogger"}debug(...$){return yZ("debug",this._namespace,$)}error(...$){return yZ("error",this._namespace,$)}info(...$){return yZ("info",this._namespace,$)}warn(...$){return yZ("warn",this._namespace,$)}verbose(...$){return yZ("verbose",this._namespace,$)}}cB.DiagComponentLogger=uB;function yZ($,Z,X){let Q=(0,xc.getGlobal)("diag");if(!Q)return;return Q[$](Z,...X)}});var y4=q((iB)=>{Object.defineProperty(iB,"__esModule",{value:!0});iB.DiagLogLevel=void 0;var gc;(function($){$[$.NONE=0]="NONE",$[$.ERROR=30]="ERROR",$[$.WARN=50]="WARN",$[$.INFO=60]="INFO",$[$.DEBUG=70]="DEBUG",$[$.VERBOSE=80]="VERBOSE",$[$.ALL=9999]="ALL"})(gc=iB.DiagLogLevel||(iB.DiagLogLevel={}))});var rB=q((oB)=>{Object.defineProperty(oB,"__esModule",{value:!0});oB.createLogLevelDiagLogger=void 0;var v6=y4();function mc($,Z){if($v6.DiagLogLevel.ALL)$=v6.DiagLogLevel.ALL;Z=Z||{};function X(Q,J){let Y=Z[Q];if(typeof Y==="function"&&$>=J)return Y.bind(Z);return function(){}}return{error:X("error",v6.DiagLogLevel.ERROR),warn:X("warn",v6.DiagLogLevel.WARN),info:X("info",v6.DiagLogLevel.INFO),debug:X("debug",v6.DiagLogLevel.DEBUG),verbose:X("verbose",v6.DiagLogLevel.VERBOSE)}}oB.createLogLevelDiagLogger=mc});var L8=q((aB)=>{Object.defineProperty(aB,"__esModule",{value:!0});aB.DiagAPI=void 0;var dc=pB(),uc=rB(),nB=y4(),I4=P8(),cc="diag";class ZW{static instance(){if(!this._instance)this._instance=new ZW;return this._instance}constructor(){function $(Q){return function(...J){let Y=(0,I4.getGlobal)("diag");if(!Y)return;return Y[Q](...J)}}let Z=this,X=(Q,J={logLevel:nB.DiagLogLevel.INFO})=>{var Y,W,K;if(Q===Z){let G=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return Z.error((Y=G.stack)!==null&&Y!==void 0?Y:G.message),!1}if(typeof J==="number")J={logLevel:J};let z=(0,I4.getGlobal)("diag"),H=(0,uc.createLogLevelDiagLogger)((W=J.logLevel)!==null&&W!==void 0?W:nB.DiagLogLevel.INFO,Q);if(z&&!J.suppressOverrideMessage){let G=(K=Error().stack)!==null&&K!==void 0?K:"";z.warn(`Current logger will be overwritten from ${G}`),H.warn(`Current logger will overwrite one already registered from ${G}`)}return(0,I4.registerGlobal)("diag",H,Z,!0)};Z.setLogger=X,Z.disable=()=>{(0,I4.unregisterGlobal)(cc,Z)},Z.createComponentLogger=(Q)=>{return new dc.DiagComponentLogger(Q)},Z.verbose=$("verbose"),Z.debug=$("debug"),Z.info=$("info"),Z.warn=$("warn"),Z.error=$("error")}}aB.DiagAPI=ZW});var Zw=q((eB)=>{Object.defineProperty(eB,"__esModule",{value:!0});eB.BaggageImpl=void 0;class c7{constructor($){this._entries=$?new Map($):new Map}getEntry($){let Z=this._entries.get($);if(!Z)return;return Object.assign({},Z)}getAllEntries(){return Array.from(this._entries.entries())}setEntry($,Z){let X=new c7(this._entries);return X._entries.set($,Z),X}removeEntry($){let Z=new c7(this._entries);return Z._entries.delete($),Z}removeEntries(...$){let Z=new c7(this._entries);for(let X of $)Z._entries.delete(X);return Z}clear(){return new c7}}eB.BaggageImpl=c7});var Jw=q((Xw)=>{Object.defineProperty(Xw,"__esModule",{value:!0});Xw.baggageEntryMetadataSymbol=void 0;Xw.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")});var XW=q((Yw)=>{Object.defineProperty(Yw,"__esModule",{value:!0});Yw.baggageEntryMetadataFromString=Yw.createBaggage=void 0;var lc=L8(),pc=Zw(),ic=Jw(),oc=lc.DiagAPI.instance();function sc($={}){return new pc.BaggageImpl(new Map(Object.entries($)))}Yw.createBaggage=sc;function rc($){if(typeof $!=="string")oc.error(`Cannot create baggage metadata from unknown type: ${typeof $}`),$="";return{__TYPE__:ic.baggageEntryMetadataSymbol,toString(){return $}}}Yw.baggageEntryMetadataFromString=rc});var IZ=q((Kw)=>{Object.defineProperty(Kw,"__esModule",{value:!0});Kw.ROOT_CONTEXT=Kw.createContextKey=void 0;function ac($){return Symbol.for($)}Kw.createContextKey=ac;class T4{constructor($){let Z=this;Z._currentContext=$?new Map($):new Map,Z.getValue=(X)=>Z._currentContext.get(X),Z.setValue=(X,Q)=>{let J=new T4(Z._currentContext);return J._currentContext.set(X,Q),J},Z.deleteValue=(X)=>{let Q=new T4(Z._currentContext);return Q._currentContext.delete(X),Q}}}Kw.ROOT_CONTEXT=new T4});var Fw=q((Gw)=>{Object.defineProperty(Gw,"__esModule",{value:!0});Gw.DiagConsoleLogger=Gw._originalConsoleMethods=void 0;var QW=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];Gw._originalConsoleMethods={};if(typeof console<"u"){let $=["error","warn","info","debug","trace","log"];for(let Z of $)if(typeof console[Z]==="function")Gw._originalConsoleMethods[Z]=console[Z]}class Hw{constructor(){function $(Z){return function(...X){let Q=Gw._originalConsoleMethods[Z];if(typeof Q!=="function")Q=Gw._originalConsoleMethods.log;if(typeof Q!=="function"&&console){if(Q=console[Z],typeof Q!=="function")Q=console.log}if(typeof Q==="function")return Q.apply(console,X)}}for(let Z=0;Z{Object.defineProperty(Bw,"__esModule",{value:!0});Bw.createNoopMeter=Bw.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=Bw.NOOP_OBSERVABLE_GAUGE_METRIC=Bw.NOOP_OBSERVABLE_COUNTER_METRIC=Bw.NOOP_UP_DOWN_COUNTER_METRIC=Bw.NOOP_HISTOGRAM_METRIC=Bw.NOOP_GAUGE_METRIC=Bw.NOOP_COUNTER_METRIC=Bw.NOOP_METER=Bw.NoopObservableUpDownCounterMetric=Bw.NoopObservableGaugeMetric=Bw.NoopObservableCounterMetric=Bw.NoopObservableMetric=Bw.NoopHistogramMetric=Bw.NoopGaugeMetric=Bw.NoopUpDownCounterMetric=Bw.NoopCounterMetric=Bw.NoopMetric=Bw.NoopMeter=void 0;class JW{constructor(){}createGauge($,Z){return Bw.NOOP_GAUGE_METRIC}createHistogram($,Z){return Bw.NOOP_HISTOGRAM_METRIC}createCounter($,Z){return Bw.NOOP_COUNTER_METRIC}createUpDownCounter($,Z){return Bw.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge($,Z){return Bw.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter($,Z){return Bw.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter($,Z){return Bw.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback($,Z){}removeBatchObservableCallback($){}}Bw.NoopMeter=JW;class l7{}Bw.NoopMetric=l7;class YW extends l7{add($,Z){}}Bw.NoopCounterMetric=YW;class WW extends l7{add($,Z){}}Bw.NoopUpDownCounterMetric=WW;class KW extends l7{record($,Z){}}Bw.NoopGaugeMetric=KW;class zW extends l7{record($,Z){}}Bw.NoopHistogramMetric=zW;class TZ{addCallback($){}removeCallback($){}}Bw.NoopObservableMetric=TZ;class HW extends TZ{}Bw.NoopObservableCounterMetric=HW;class GW extends TZ{}Bw.NoopObservableGaugeMetric=GW;class VW extends TZ{}Bw.NoopObservableUpDownCounterMetric=VW;Bw.NOOP_METER=new JW;Bw.NOOP_COUNTER_METRIC=new YW;Bw.NOOP_GAUGE_METRIC=new KW;Bw.NOOP_HISTOGRAM_METRIC=new zW;Bw.NOOP_UP_DOWN_COUNTER_METRIC=new WW;Bw.NOOP_OBSERVABLE_COUNTER_METRIC=new HW;Bw.NOOP_OBSERVABLE_GAUGE_METRIC=new GW;Bw.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new VW;function ec(){return Bw.NOOP_METER}Bw.createNoopMeter=ec});var Mw=q((kw)=>{Object.defineProperty(kw,"__esModule",{value:!0});kw.ValueType=void 0;var Gl;(function($){$[$.INT=0]="INT",$[$.DOUBLE=1]="DOUBLE"})(Gl=kw.ValueType||(kw.ValueType={}))});var wW=q((Rw)=>{Object.defineProperty(Rw,"__esModule",{value:!0});Rw.defaultTextMapSetter=Rw.defaultTextMapGetter=void 0;Rw.defaultTextMapGetter={get($,Z){if($==null)return;return $[Z]},keys($){if($==null)return[];return Object.keys($)}};Rw.defaultTextMapSetter={set($,Z,X){if($==null)return;$[Z]=X}}});var yw=q((Nw)=>{Object.defineProperty(Nw,"__esModule",{value:!0});Nw.NoopContextManager=void 0;var Fl=IZ();class Aw{active(){return Fl.ROOT_CONTEXT}with($,Z,X,...Q){return Z.call(X,...Q)}bind($,Z){return Z}enable(){return this}disable(){return this}}Nw.NoopContextManager=Aw});var EZ=q((Tw)=>{Object.defineProperty(Tw,"__esModule",{value:!0});Tw.ContextAPI=void 0;var Bl=yw(),jW=P8(),Iw=L8(),UW="context",wl=new Bl.NoopContextManager;class qW{constructor(){}static getInstance(){if(!this._instance)this._instance=new qW;return this._instance}setGlobalContextManager($){return(0,jW.registerGlobal)(UW,$,Iw.DiagAPI.instance())}active(){return this._getContextManager().active()}with($,Z,X,...Q){return this._getContextManager().with($,Z,X,...Q)}bind($,Z){return this._getContextManager().bind($,Z)}_getContextManager(){return(0,jW.getGlobal)(UW)||wl}disable(){this._getContextManager().disable(),(0,jW.unregisterGlobal)(UW,Iw.DiagAPI.instance())}}Tw.ContextAPI=qW});var PW=q((hw)=>{Object.defineProperty(hw,"__esModule",{value:!0});hw.TraceFlags=void 0;var jl;(function($){$[$.NONE=0]="NONE",$[$.SAMPLED=1]="SAMPLED"})(jl=hw.TraceFlags||(hw.TraceFlags={}))});var h4=q((bw)=>{Object.defineProperty(bw,"__esModule",{value:!0});bw.INVALID_SPAN_CONTEXT=bw.INVALID_TRACEID=bw.INVALID_SPANID=void 0;var Ul=PW();bw.INVALID_SPANID="0000000000000000";bw.INVALID_TRACEID="00000000000000000000000000000000";bw.INVALID_SPAN_CONTEXT={traceId:bw.INVALID_TRACEID,spanId:bw.INVALID_SPANID,traceFlags:Ul.TraceFlags.NONE}});var b4=q((mw)=>{Object.defineProperty(mw,"__esModule",{value:!0});mw.NonRecordingSpan=void 0;var ql=h4();class gw{constructor($=ql.INVALID_SPAN_CONTEXT){this._spanContext=$}spanContext(){return this._spanContext}setAttribute($,Z){return this}setAttributes($){return this}addEvent($,Z){return this}addLink($){return this}addLinks($){return this}setStatus($){return this}updateName($){return this}end($){}isRecording(){return!1}recordException($,Z){}}mw.NonRecordingSpan=gw});var CW=q((cw)=>{Object.defineProperty(cw,"__esModule",{value:!0});cw.getSpanContext=cw.setSpanContext=cw.deleteSpan=cw.setSpan=cw.getActiveSpan=cw.getSpan=void 0;var Dl=IZ(),Pl=b4(),Ll=EZ(),LW=(0,Dl.createContextKey)("OpenTelemetry Context Key SPAN");function OW($){return $.getValue(LW)||void 0}cw.getSpan=OW;function Ol(){return OW(Ll.ContextAPI.getInstance().active())}cw.getActiveSpan=Ol;function uw($,Z){return $.setValue(LW,Z)}cw.setSpan=uw;function Cl($){return $.deleteValue(LW)}cw.deleteSpan=Cl;function kl($,Z){return uw($,new Pl.NonRecordingSpan(Z))}cw.setSpanContext=kl;function Ml($){var Z;return(Z=OW($))===null||Z===void 0?void 0:Z.spanContext()}cw.getSpanContext=Ml});var S4=q((rw)=>{Object.defineProperty(rw,"__esModule",{value:!0});rw.wrapSpanContext=rw.isSpanContextValid=rw.isValidSpanId=rw.isValidTraceId=void 0;var pw=h4(),yl=b4(),v4=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1]);function iw($,Z){if(typeof $!=="string"||$.length!==Z)return!1;let X=0;for(let Q=0;Q<$.length;Q+=4)X+=(v4[$.charCodeAt(Q)]|0)+(v4[$.charCodeAt(Q+1)]|0)+(v4[$.charCodeAt(Q+2)]|0)+(v4[$.charCodeAt(Q+3)]|0);return X===Z}function ow($){return iw($,32)&&$!==pw.INVALID_TRACEID}rw.isValidTraceId=ow;function sw($){return iw($,16)&&$!==pw.INVALID_SPANID}rw.isValidSpanId=sw;function Il($){return ow($.traceId)&&sw($.spanId)}rw.isSpanContextValid=Il;function Tl($){return new yl.NonRecordingSpan($)}rw.wrapSpanContext=Tl});var RW=q((ew)=>{Object.defineProperty(ew,"__esModule",{value:!0});ew.NoopTracer=void 0;var vl=EZ(),aw=CW(),kW=b4(),Sl=S4(),MW=vl.ContextAPI.getInstance();class tw{startSpan($,Z,X=MW.active()){if(Boolean(Z===null||Z===void 0?void 0:Z.root))return new kW.NonRecordingSpan;let J=X&&(0,aw.getSpanContext)(X);if(xl(J)&&(0,Sl.isSpanContextValid)(J))return new kW.NonRecordingSpan(J);else return new kW.NonRecordingSpan}startActiveSpan($,Z,X,Q){let J,Y,W;if(arguments.length<2)return;else if(arguments.length===2)W=Z;else if(arguments.length===3)J=Z,W=X;else J=Z,Y=X,W=Q;let K=Y!==null&&Y!==void 0?Y:MW.active(),z=this.startSpan($,J,K),H=(0,aw.setSpan)(K,z);return MW.with(H,W,void 0,z)}}ew.NoopTracer=tw;function xl($){return $!==null&&typeof $==="object"&&"spanId"in $&&typeof $.spanId==="string"&&"traceId"in $&&typeof $.traceId==="string"&&"traceFlags"in $&&typeof $.traceFlags==="number"}});var fW=q((Xj)=>{Object.defineProperty(Xj,"__esModule",{value:!0});Xj.ProxyTracer=void 0;var gl=RW(),ml=new gl.NoopTracer;class Zj{constructor($,Z,X,Q){this._provider=$,this.name=Z,this.version=X,this.options=Q}startSpan($,Z,X){return this._getTracer().startSpan($,Z,X)}startActiveSpan($,Z,X,Q){let J=this._getTracer();return Reflect.apply(J.startActiveSpan,J,arguments)}_getTracer(){if(this._delegate)return this._delegate;let $=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!$)return ml;return this._delegate=$,this._delegate}}Xj.ProxyTracer=Zj});var Kj=q((Yj)=>{Object.defineProperty(Yj,"__esModule",{value:!0});Yj.NoopTracerProvider=void 0;var dl=RW();class Jj{getTracer($,Z,X){return new dl.NoopTracer}}Yj.NoopTracerProvider=Jj});var AW=q((Hj)=>{Object.defineProperty(Hj,"__esModule",{value:!0});Hj.ProxyTracerProvider=void 0;var ul=fW(),cl=Kj(),ll=new cl.NoopTracerProvider;class zj{getTracer($,Z,X){var Q;return(Q=this.getDelegateTracer($,Z,X))!==null&&Q!==void 0?Q:new ul.ProxyTracer(this,$,Z,X)}getDelegate(){var $;return($=this._delegate)!==null&&$!==void 0?$:ll}setDelegate($){this._delegate=$}getDelegateTracer($,Z,X){var Q;return(Q=this._delegate)===null||Q===void 0?void 0:Q.getTracer($,Z,X)}}Hj.ProxyTracerProvider=zj});var Fj=q((Vj)=>{Object.defineProperty(Vj,"__esModule",{value:!0});Vj.SamplingDecision=void 0;var pl;(function($){$[$.NOT_RECORD=0]="NOT_RECORD",$[$.RECORD=1]="RECORD",$[$.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(pl=Vj.SamplingDecision||(Vj.SamplingDecision={}))});var wj=q((Bj)=>{Object.defineProperty(Bj,"__esModule",{value:!0});Bj.SpanKind=void 0;var il;(function($){$[$.INTERNAL=0]="INTERNAL",$[$.SERVER=1]="SERVER",$[$.CLIENT=2]="CLIENT",$[$.PRODUCER=3]="PRODUCER",$[$.CONSUMER=4]="CONSUMER"})(il=Bj.SpanKind||(Bj.SpanKind={}))});var Uj=q((jj)=>{Object.defineProperty(jj,"__esModule",{value:!0});jj.SpanStatusCode=void 0;var ol;(function($){$[$.UNSET=0]="UNSET",$[$.OK=1]="OK",$[$.ERROR=2]="ERROR"})(ol=jj.SpanStatusCode||(jj.SpanStatusCode={}))});var Pj=q((qj)=>{Object.defineProperty(qj,"__esModule",{value:!0});qj.validateValue=qj.validateKey=void 0;var IW="[_0-9a-z-*/]",sl=`[a-z]${IW}{0,255}`,rl=`[a-z0-9]${IW}{0,240}@[a-z]${IW}{0,13}`,nl=new RegExp(`^(?:${sl}|${rl})$`),al=/^[ -~]{0,255}[!-~]$/,tl=/,|=/;function el($){return nl.test($)}qj.validateKey=el;function $p($){return al.test($)&&!tl.test($)}qj.validateValue=$p});var fj=q((Mj)=>{Object.defineProperty(Mj,"__esModule",{value:!0});Mj.TraceStateImpl=void 0;var Lj=Pj(),Oj=32,Xp=512,Cj=",",kj="=";class TW{constructor($){if(this._internalState=new Map,$)this._parse($)}set($,Z){let X=this._clone();if(X._internalState.has($))X._internalState.delete($);return X._internalState.set($,Z),X}unset($){let Z=this._clone();return Z._internalState.delete($),Z}get($){return this._internalState.get($)}serialize(){return Array.from(this._internalState.keys()).reduceRight(($,Z)=>{return $.push(Z+kj+this.get(Z)),$},[]).join(Cj)}_parse($){if($.length>Xp)return;if(this._internalState=$.split(Cj).reduceRight((Z,X)=>{let Q=X.trim(),J=Q.indexOf(kj);if(J!==-1){let Y=Q.slice(0,J),W=Q.slice(J+1,X.length);if((0,Lj.validateKey)(Y)&&(0,Lj.validateValue)(W))Z.set(Y,W)}return Z},new Map),this._internalState.size>Oj)this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,Oj))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let $=new TW;return $._internalState=new Map(this._internalState),$}}Mj.TraceStateImpl=TW});var _j=q((Aj)=>{Object.defineProperty(Aj,"__esModule",{value:!0});Aj.createTraceState=void 0;var Qp=fj();function Jp($){return new Qp.TraceStateImpl($)}Aj.createTraceState=Jp});var Tj=q((yj)=>{Object.defineProperty(yj,"__esModule",{value:!0});yj.context=void 0;var Yp=EZ();yj.context=Yp.ContextAPI.getInstance()});var bj=q((Ej)=>{Object.defineProperty(Ej,"__esModule",{value:!0});Ej.diag=void 0;var Wp=L8();Ej.diag=Wp.DiagAPI.instance()});var xj=q((vj)=>{Object.defineProperty(vj,"__esModule",{value:!0});vj.NOOP_METER_PROVIDER=vj.NoopMeterProvider=void 0;var Kp=FW();class EW{getMeter($,Z,X){return Kp.NOOP_METER}}vj.NoopMeterProvider=EW;vj.NOOP_METER_PROVIDER=new EW});var uj=q((mj)=>{Object.defineProperty(mj,"__esModule",{value:!0});mj.MetricsAPI=void 0;var Hp=xj(),hW=P8(),gj=L8(),bW="metrics";class vW{constructor(){}static getInstance(){if(!this._instance)this._instance=new vW;return this._instance}setGlobalMeterProvider($){return(0,hW.registerGlobal)(bW,$,gj.DiagAPI.instance())}getMeterProvider(){return(0,hW.getGlobal)(bW)||Hp.NOOP_METER_PROVIDER}getMeter($,Z,X){return this.getMeterProvider().getMeter($,Z,X)}disable(){(0,hW.unregisterGlobal)(bW,gj.DiagAPI.instance())}}mj.MetricsAPI=vW});var pj=q((cj)=>{Object.defineProperty(cj,"__esModule",{value:!0});cj.metrics=void 0;var Gp=uj();cj.metrics=Gp.MetricsAPI.getInstance()});var rj=q((oj)=>{Object.defineProperty(oj,"__esModule",{value:!0});oj.NoopTextMapPropagator=void 0;class ij{inject($,Z){}extract($,Z){return $}fields(){return[]}}oj.NoopTextMapPropagator=ij});var ej=q((aj)=>{Object.defineProperty(aj,"__esModule",{value:!0});aj.deleteBaggage=aj.setBaggage=aj.getActiveBaggage=aj.getBaggage=void 0;var Vp=EZ(),Fp=IZ(),SW=(0,Fp.createContextKey)("OpenTelemetry Baggage Key");function nj($){return $.getValue(SW)||void 0}aj.getBaggage=nj;function Bp(){return nj(Vp.ContextAPI.getInstance().active())}aj.getActiveBaggage=Bp;function wp($,Z){return $.setValue(SW,Z)}aj.setBaggage=wp;function jp($){return $.deleteValue(SW)}aj.deleteBaggage=jp});var JU=q((XU)=>{Object.defineProperty(XU,"__esModule",{value:!0});XU.PropagationAPI=void 0;var xW=P8(),Pp=rj(),$U=wW(),x4=ej(),Lp=XW(),ZU=L8(),gW="propagation",Op=new Pp.NoopTextMapPropagator;class mW{constructor(){this.createBaggage=Lp.createBaggage,this.getBaggage=x4.getBaggage,this.getActiveBaggage=x4.getActiveBaggage,this.setBaggage=x4.setBaggage,this.deleteBaggage=x4.deleteBaggage}static getInstance(){if(!this._instance)this._instance=new mW;return this._instance}setGlobalPropagator($){return(0,xW.registerGlobal)(gW,$,ZU.DiagAPI.instance())}inject($,Z,X=$U.defaultTextMapSetter){return this._getGlobalPropagator().inject($,Z,X)}extract($,Z,X=$U.defaultTextMapGetter){return this._getGlobalPropagator().extract($,Z,X)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,xW.unregisterGlobal)(gW,ZU.DiagAPI.instance())}_getGlobalPropagator(){return(0,xW.getGlobal)(gW)||Op}}XU.PropagationAPI=mW});var KU=q((YU)=>{Object.defineProperty(YU,"__esModule",{value:!0});YU.propagation=void 0;var Cp=JU();YU.propagation=Cp.PropagationAPI.getInstance()});var BU=q((VU)=>{Object.defineProperty(VU,"__esModule",{value:!0});VU.TraceAPI=void 0;var dW=P8(),zU=AW(),HU=S4(),p7=CW(),GU=L8(),uW="trace";class cW{constructor(){this._proxyTracerProvider=new zU.ProxyTracerProvider,this.wrapSpanContext=HU.wrapSpanContext,this.isSpanContextValid=HU.isSpanContextValid,this.deleteSpan=p7.deleteSpan,this.getSpan=p7.getSpan,this.getActiveSpan=p7.getActiveSpan,this.getSpanContext=p7.getSpanContext,this.setSpan=p7.setSpan,this.setSpanContext=p7.setSpanContext}static getInstance(){if(!this._instance)this._instance=new cW;return this._instance}setGlobalTracerProvider($){let Z=(0,dW.registerGlobal)(uW,this._proxyTracerProvider,GU.DiagAPI.instance());if(Z)this._proxyTracerProvider.setDelegate($);return Z}getTracerProvider(){return(0,dW.getGlobal)(uW)||this._proxyTracerProvider}getTracer($,Z){return this.getTracerProvider().getTracer($,Z)}disable(){(0,dW.unregisterGlobal)(uW,GU.DiagAPI.instance()),this._proxyTracerProvider=new zU.ProxyTracerProvider}}VU.TraceAPI=cW});var UU=q((wU)=>{Object.defineProperty(wU,"__esModule",{value:!0});wU.trace=void 0;var kp=BU();wU.trace=kp.TraceAPI.getInstance()});var S=q((Z0)=>{Object.defineProperty(Z0,"__esModule",{value:!0});Z0.trace=Z0.propagation=Z0.metrics=Z0.diag=Z0.context=Z0.INVALID_SPAN_CONTEXT=Z0.INVALID_TRACEID=Z0.INVALID_SPANID=Z0.isValidSpanId=Z0.isValidTraceId=Z0.isSpanContextValid=Z0.createTraceState=Z0.TraceFlags=Z0.SpanStatusCode=Z0.SpanKind=Z0.SamplingDecision=Z0.ProxyTracerProvider=Z0.ProxyTracer=Z0.defaultTextMapSetter=Z0.defaultTextMapGetter=Z0.ValueType=Z0.createNoopMeter=Z0.DiagLogLevel=Z0.DiagConsoleLogger=Z0.ROOT_CONTEXT=Z0.createContextKey=Z0.baggageEntryMetadataFromString=void 0;var Mp=XW();Object.defineProperty(Z0,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return Mp.baggageEntryMetadataFromString}});var qU=IZ();Object.defineProperty(Z0,"createContextKey",{enumerable:!0,get:function(){return qU.createContextKey}});Object.defineProperty(Z0,"ROOT_CONTEXT",{enumerable:!0,get:function(){return qU.ROOT_CONTEXT}});var Rp=Fw();Object.defineProperty(Z0,"DiagConsoleLogger",{enumerable:!0,get:function(){return Rp.DiagConsoleLogger}});var fp=y4();Object.defineProperty(Z0,"DiagLogLevel",{enumerable:!0,get:function(){return fp.DiagLogLevel}});var Ap=FW();Object.defineProperty(Z0,"createNoopMeter",{enumerable:!0,get:function(){return Ap.createNoopMeter}});var Np=Mw();Object.defineProperty(Z0,"ValueType",{enumerable:!0,get:function(){return Np.ValueType}});var DU=wW();Object.defineProperty(Z0,"defaultTextMapGetter",{enumerable:!0,get:function(){return DU.defaultTextMapGetter}});Object.defineProperty(Z0,"defaultTextMapSetter",{enumerable:!0,get:function(){return DU.defaultTextMapSetter}});var _p=fW();Object.defineProperty(Z0,"ProxyTracer",{enumerable:!0,get:function(){return _p.ProxyTracer}});var yp=AW();Object.defineProperty(Z0,"ProxyTracerProvider",{enumerable:!0,get:function(){return yp.ProxyTracerProvider}});var Ip=Fj();Object.defineProperty(Z0,"SamplingDecision",{enumerable:!0,get:function(){return Ip.SamplingDecision}});var Tp=wj();Object.defineProperty(Z0,"SpanKind",{enumerable:!0,get:function(){return Tp.SpanKind}});var Ep=Uj();Object.defineProperty(Z0,"SpanStatusCode",{enumerable:!0,get:function(){return Ep.SpanStatusCode}});var hp=PW();Object.defineProperty(Z0,"TraceFlags",{enumerable:!0,get:function(){return hp.TraceFlags}});var bp=_j();Object.defineProperty(Z0,"createTraceState",{enumerable:!0,get:function(){return bp.createTraceState}});var lW=S4();Object.defineProperty(Z0,"isSpanContextValid",{enumerable:!0,get:function(){return lW.isSpanContextValid}});Object.defineProperty(Z0,"isValidTraceId",{enumerable:!0,get:function(){return lW.isValidTraceId}});Object.defineProperty(Z0,"isValidSpanId",{enumerable:!0,get:function(){return lW.isValidSpanId}});var pW=h4();Object.defineProperty(Z0,"INVALID_SPANID",{enumerable:!0,get:function(){return pW.INVALID_SPANID}});Object.defineProperty(Z0,"INVALID_TRACEID",{enumerable:!0,get:function(){return pW.INVALID_TRACEID}});Object.defineProperty(Z0,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return pW.INVALID_SPAN_CONTEXT}});var PU=Tj();Object.defineProperty(Z0,"context",{enumerable:!0,get:function(){return PU.context}});var LU=bj();Object.defineProperty(Z0,"diag",{enumerable:!0,get:function(){return LU.diag}});var OU=pj();Object.defineProperty(Z0,"metrics",{enumerable:!0,get:function(){return OU.metrics}});var CU=KU();Object.defineProperty(Z0,"propagation",{enumerable:!0,get:function(){return CU.propagation}});var kU=UU();Object.defineProperty(Z0,"trace",{enumerable:!0,get:function(){return kU.trace}});Z0.default={context:PU.context,diag:LU.diag,metrics:OU.metrics,propagation:CU.propagation,trace:kU.trace}});var hZ=q((MU)=>{Object.defineProperty(MU,"__esModule",{value:!0});MU.isTracingSuppressed=MU.unsuppressTracing=MU.suppressTracing=void 0;var xp=S(),iW=(0,xp.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function gp($){return $.setValue(iW,!0)}MU.suppressTracing=gp;function mp($){return $.deleteValue(iW)}MU.unsuppressTracing=mp;function dp($){return $.getValue(iW)===!0}MU.isTracingSuppressed=dp});var oW=q((fU)=>{Object.defineProperty(fU,"__esModule",{value:!0});fU.BAGGAGE_MAX_TOTAL_LENGTH=fU.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=fU.BAGGAGE_MAX_NAME_VALUE_PAIRS=fU.BAGGAGE_HEADER=fU.BAGGAGE_ITEMS_SEPARATOR=fU.BAGGAGE_PROPERTIES_SEPARATOR=fU.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;fU.BAGGAGE_KEY_PAIR_SEPARATOR="=";fU.BAGGAGE_PROPERTIES_SEPARATOR=";";fU.BAGGAGE_ITEMS_SEPARATOR=",";fU.BAGGAGE_HEADER="baggage";fU.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;fU.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;fU.BAGGAGE_MAX_TOTAL_LENGTH=8192});var sW=q((_U)=>{Object.defineProperty(_U,"__esModule",{value:!0});_U.parseKeyPairsIntoRecord=_U.parsePairKeyValue=_U.getKeyPairs=_U.serializeKeyPairs=void 0;var np=S(),i7=oW();function ap($){return $.reduce((Z,X)=>{let Q=`${Z}${Z!==""?i7.BAGGAGE_ITEMS_SEPARATOR:""}${X}`;return Q.length>i7.BAGGAGE_MAX_TOTAL_LENGTH?Z:Q},"")}_U.serializeKeyPairs=ap;function tp($){return $.getAllEntries().map(([Z,X])=>{let Q=`${encodeURIComponent(Z)}=${encodeURIComponent(X.value)}`;if(X.metadata!==void 0)Q+=i7.BAGGAGE_PROPERTIES_SEPARATOR+X.metadata.toString();return Q})}_U.getKeyPairs=tp;function NU($){if(!$)return;let Z=$.indexOf(i7.BAGGAGE_PROPERTIES_SEPARATOR),X=Z===-1?$:$.substring(0,Z),Q=X.indexOf(i7.BAGGAGE_KEY_PAIR_SEPARATOR);if(Q<=0)return;let J=X.substring(0,Q).trim(),Y=X.substring(Q+1).trim();if(!J||!Y)return;let W,K;try{W=decodeURIComponent(J),K=decodeURIComponent(Y)}catch{return}let z;if(Z!==-1&&Z<$.length-1){let H=$.substring(Z+1);z=(0,np.baggageEntryMetadataFromString)(H)}return{key:W,value:K,metadata:z}}_U.parsePairKeyValue=NU;function ep($){let Z={};if(typeof $==="string"&&$.length>0)$.split(i7.BAGGAGE_ITEMS_SEPARATOR).forEach((X)=>{let Q=NU(X);if(Q!==void 0&&Q.value.length>0)Z[Q.key]=Q.value});return Z}_U.parseKeyPairsIntoRecord=ep});var hU=q((TU)=>{Object.defineProperty(TU,"__esModule",{value:!0});TU.W3CBaggagePropagator=void 0;var rW=S(),Qi=hZ(),O8=oW(),nW=sW();class IU{inject($,Z,X){let Q=rW.propagation.getBaggage($);if(!Q||(0,Qi.isTracingSuppressed)($))return;let J=(0,nW.getKeyPairs)(Q).filter((W)=>{return W.length<=O8.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS}).slice(0,O8.BAGGAGE_MAX_NAME_VALUE_PAIRS),Y=(0,nW.serializeKeyPairs)(J);if(Y.length>0)X.set(Z,O8.BAGGAGE_HEADER,Y)}extract($,Z,X){let Q=X.get(Z,O8.BAGGAGE_HEADER),J=Array.isArray(Q)?Q.join(O8.BAGGAGE_ITEMS_SEPARATOR):Q;if(!J)return $;let Y={};if(J.length===0)return $;if(J.split(O8.BAGGAGE_ITEMS_SEPARATOR).forEach((K)=>{let z=(0,nW.parsePairKeyValue)(K);if(z){let H={value:z.value};if(z.metadata)H.metadata=z.metadata;Y[z.key]=H}}),Object.entries(Y).length===0)return $;return rW.propagation.setBaggage($,rW.propagation.createBaggage(Y))}fields(){return[O8.BAGGAGE_HEADER]}}TU.W3CBaggagePropagator=IU});var xU=q((vU)=>{Object.defineProperty(vU,"__esModule",{value:!0});vU.AnchoredClock=void 0;class bU{_monotonicClock;_epochMillis;_performanceMillis;constructor($,Z){this._monotonicClock=Z,this._epochMillis=$.now(),this._performanceMillis=Z.now()}now(){let $=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+$}}vU.AnchoredClock=bU});var pU=q((cU)=>{Object.defineProperty(cU,"__esModule",{value:!0});cU.isAttributeValue=cU.isAttributeKey=cU.sanitizeAttributes=void 0;var gU=S();function Ji($){let Z={};if(typeof $!=="object"||$==null)return Z;for(let X in $){if(!Object.prototype.hasOwnProperty.call($,X))continue;if(!mU(X)){gU.diag.warn(`Invalid attribute key: ${X}`);continue}let Q=$[X];if(!dU(Q)){gU.diag.warn(`Invalid attribute value set for key: ${X}`);continue}if(Array.isArray(Q))Z[X]=Q.slice();else Z[X]=Q}return Z}cU.sanitizeAttributes=Ji;function mU($){return typeof $==="string"&&$!==""}cU.isAttributeKey=mU;function dU($){if($==null)return!0;if(Array.isArray($))return Yi($);return uU(typeof $)}cU.isAttributeValue=dU;function Yi($){let Z;for(let X of $){if(X==null)continue;let Q=typeof X;if(Q===Z)continue;if(!Z){if(uU(Q)){Z=Q;continue}return!1}return!1}return!0}function uU($){switch($){case"number":case"boolean":case"string":return!0}return!1}});var aW=q((iU)=>{Object.defineProperty(iU,"__esModule",{value:!0});iU.loggingErrorHandler=void 0;var zi=S();function Hi(){return($)=>{zi.diag.error(Gi($))}}iU.loggingErrorHandler=Hi;function Gi($){if(typeof $==="string")return $;else return JSON.stringify(Vi($))}function Vi($){let Z={},X=$;while(X!==null)Object.getOwnPropertyNames(X).forEach((Q)=>{if(Z[Q])return;let J=X[Q];if(J)Z[Q]=String(J)}),X=Object.getPrototypeOf(X);return Z}});var aU=q((rU)=>{Object.defineProperty(rU,"__esModule",{value:!0});rU.globalErrorHandler=rU.setGlobalErrorHandler=void 0;var Fi=aW(),sU=(0,Fi.loggingErrorHandler)();function Bi($){sU=$}rU.setGlobalErrorHandler=Bi;function wi($){try{sU($)}catch{}}rU.globalErrorHandler=wi});var Qq=q((Zq)=>{Object.defineProperty(Zq,"__esModule",{value:!0});Zq.getStringListFromEnv=Zq.getBooleanFromEnv=Zq.getStringFromEnv=Zq.getNumberFromEnv=void 0;var tU=S(),eU=s("util");function Ui($){let Z=process.env[$];if(Z==null||Z.trim()==="")return;let X=Number(Z);if(isNaN(X)){tU.diag.warn(`Unknown value ${(0,eU.inspect)(Z)} for ${$}, expected a number, using defaults`);return}return X}Zq.getNumberFromEnv=Ui;function $q($){let Z=process.env[$];if(Z==null||Z.trim()==="")return;return Z}Zq.getStringFromEnv=$q;function qi($){let Z=process.env[$]?.trim().toLowerCase();if(Z==null||Z==="")return!1;if(Z==="true")return!0;else if(Z==="false")return!1;else return tU.diag.warn(`Unknown value ${(0,eU.inspect)(Z)} for ${$}, expected 'true' or 'false', falling back to 'false' (default)`),!1}Zq.getBooleanFromEnv=qi;function Di($){return $q($)?.split(",").map((Z)=>Z.trim()).filter((Z)=>Z!=="")}Zq.getStringListFromEnv=Di});var Wq=q((Jq)=>{Object.defineProperty(Jq,"__esModule",{value:!0});Jq._globalThis=void 0;Jq._globalThis=globalThis});var Hq=q((Kq)=>{Object.defineProperty(Kq,"__esModule",{value:!0});Kq.VERSION=void 0;Kq.VERSION="2.6.1"});var tW=q((Gq)=>{Object.defineProperty(Gq,"__esModule",{value:!0});Gq.createConstMap=void 0;function Ci($){let Z={},X=$.length;for(let Q=0;Q{Object.defineProperty(ZC,"__esModule",{value:!0});ZC.SEMATTRS_NET_HOST_CARRIER_ICC=ZC.SEMATTRS_NET_HOST_CARRIER_MNC=ZC.SEMATTRS_NET_HOST_CARRIER_MCC=ZC.SEMATTRS_NET_HOST_CARRIER_NAME=ZC.SEMATTRS_NET_HOST_CONNECTION_SUBTYPE=ZC.SEMATTRS_NET_HOST_CONNECTION_TYPE=ZC.SEMATTRS_NET_HOST_NAME=ZC.SEMATTRS_NET_HOST_PORT=ZC.SEMATTRS_NET_HOST_IP=ZC.SEMATTRS_NET_PEER_NAME=ZC.SEMATTRS_NET_PEER_PORT=ZC.SEMATTRS_NET_PEER_IP=ZC.SEMATTRS_NET_TRANSPORT=ZC.SEMATTRS_FAAS_INVOKED_REGION=ZC.SEMATTRS_FAAS_INVOKED_PROVIDER=ZC.SEMATTRS_FAAS_INVOKED_NAME=ZC.SEMATTRS_FAAS_COLDSTART=ZC.SEMATTRS_FAAS_CRON=ZC.SEMATTRS_FAAS_TIME=ZC.SEMATTRS_FAAS_DOCUMENT_NAME=ZC.SEMATTRS_FAAS_DOCUMENT_TIME=ZC.SEMATTRS_FAAS_DOCUMENT_OPERATION=ZC.SEMATTRS_FAAS_DOCUMENT_COLLECTION=ZC.SEMATTRS_FAAS_EXECUTION=ZC.SEMATTRS_FAAS_TRIGGER=ZC.SEMATTRS_EXCEPTION_ESCAPED=ZC.SEMATTRS_EXCEPTION_STACKTRACE=ZC.SEMATTRS_EXCEPTION_MESSAGE=ZC.SEMATTRS_EXCEPTION_TYPE=ZC.SEMATTRS_DB_SQL_TABLE=ZC.SEMATTRS_DB_MONGODB_COLLECTION=ZC.SEMATTRS_DB_REDIS_DATABASE_INDEX=ZC.SEMATTRS_DB_HBASE_NAMESPACE=ZC.SEMATTRS_DB_CASSANDRA_COORDINATOR_DC=ZC.SEMATTRS_DB_CASSANDRA_COORDINATOR_ID=ZC.SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT=ZC.SEMATTRS_DB_CASSANDRA_IDEMPOTENCE=ZC.SEMATTRS_DB_CASSANDRA_TABLE=ZC.SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL=ZC.SEMATTRS_DB_CASSANDRA_PAGE_SIZE=ZC.SEMATTRS_DB_CASSANDRA_KEYSPACE=ZC.SEMATTRS_DB_MSSQL_INSTANCE_NAME=ZC.SEMATTRS_DB_OPERATION=ZC.SEMATTRS_DB_STATEMENT=ZC.SEMATTRS_DB_NAME=ZC.SEMATTRS_DB_JDBC_DRIVER_CLASSNAME=ZC.SEMATTRS_DB_USER=ZC.SEMATTRS_DB_CONNECTION_STRING=ZC.SEMATTRS_DB_SYSTEM=ZC.SEMATTRS_AWS_LAMBDA_INVOKED_ARN=void 0;ZC.SEMATTRS_MESSAGING_DESTINATION_KIND=ZC.SEMATTRS_MESSAGING_DESTINATION=ZC.SEMATTRS_MESSAGING_SYSTEM=ZC.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES=ZC.SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS=ZC.SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT=ZC.SEMATTRS_AWS_DYNAMODB_COUNT=ZC.SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS=ZC.SEMATTRS_AWS_DYNAMODB_SEGMENT=ZC.SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD=ZC.SEMATTRS_AWS_DYNAMODB_TABLE_COUNT=ZC.SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE=ZC.SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES=ZC.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES=ZC.SEMATTRS_AWS_DYNAMODB_SELECT=ZC.SEMATTRS_AWS_DYNAMODB_INDEX_NAME=ZC.SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET=ZC.SEMATTRS_AWS_DYNAMODB_LIMIT=ZC.SEMATTRS_AWS_DYNAMODB_PROJECTION=ZC.SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ=ZC.SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY=ZC.SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY=ZC.SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS=ZC.SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY=ZC.SEMATTRS_AWS_DYNAMODB_TABLE_NAMES=ZC.SEMATTRS_HTTP_CLIENT_IP=ZC.SEMATTRS_HTTP_ROUTE=ZC.SEMATTRS_HTTP_SERVER_NAME=ZC.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=ZC.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH=ZC.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=ZC.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH=ZC.SEMATTRS_HTTP_USER_AGENT=ZC.SEMATTRS_HTTP_FLAVOR=ZC.SEMATTRS_HTTP_STATUS_CODE=ZC.SEMATTRS_HTTP_SCHEME=ZC.SEMATTRS_HTTP_HOST=ZC.SEMATTRS_HTTP_TARGET=ZC.SEMATTRS_HTTP_URL=ZC.SEMATTRS_HTTP_METHOD=ZC.SEMATTRS_CODE_LINENO=ZC.SEMATTRS_CODE_FILEPATH=ZC.SEMATTRS_CODE_NAMESPACE=ZC.SEMATTRS_CODE_FUNCTION=ZC.SEMATTRS_THREAD_NAME=ZC.SEMATTRS_THREAD_ID=ZC.SEMATTRS_ENDUSER_SCOPE=ZC.SEMATTRS_ENDUSER_ROLE=ZC.SEMATTRS_ENDUSER_ID=ZC.SEMATTRS_PEER_SERVICE=void 0;ZC.DBSYSTEMVALUES_FILEMAKER=ZC.DBSYSTEMVALUES_DERBY=ZC.DBSYSTEMVALUES_FIREBIRD=ZC.DBSYSTEMVALUES_ADABAS=ZC.DBSYSTEMVALUES_CACHE=ZC.DBSYSTEMVALUES_EDB=ZC.DBSYSTEMVALUES_FIRSTSQL=ZC.DBSYSTEMVALUES_INGRES=ZC.DBSYSTEMVALUES_HANADB=ZC.DBSYSTEMVALUES_MAXDB=ZC.DBSYSTEMVALUES_PROGRESS=ZC.DBSYSTEMVALUES_HSQLDB=ZC.DBSYSTEMVALUES_CLOUDSCAPE=ZC.DBSYSTEMVALUES_HIVE=ZC.DBSYSTEMVALUES_REDSHIFT=ZC.DBSYSTEMVALUES_POSTGRESQL=ZC.DBSYSTEMVALUES_DB2=ZC.DBSYSTEMVALUES_ORACLE=ZC.DBSYSTEMVALUES_MYSQL=ZC.DBSYSTEMVALUES_MSSQL=ZC.DBSYSTEMVALUES_OTHER_SQL=ZC.SemanticAttributes=ZC.SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE=ZC.SEMATTRS_MESSAGE_COMPRESSED_SIZE=ZC.SEMATTRS_MESSAGE_ID=ZC.SEMATTRS_MESSAGE_TYPE=ZC.SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE=ZC.SEMATTRS_RPC_JSONRPC_ERROR_CODE=ZC.SEMATTRS_RPC_JSONRPC_REQUEST_ID=ZC.SEMATTRS_RPC_JSONRPC_VERSION=ZC.SEMATTRS_RPC_GRPC_STATUS_CODE=ZC.SEMATTRS_RPC_METHOD=ZC.SEMATTRS_RPC_SERVICE=ZC.SEMATTRS_RPC_SYSTEM=ZC.SEMATTRS_MESSAGING_KAFKA_TOMBSTONE=ZC.SEMATTRS_MESSAGING_KAFKA_PARTITION=ZC.SEMATTRS_MESSAGING_KAFKA_CLIENT_ID=ZC.SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP=ZC.SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY=ZC.SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY=ZC.SEMATTRS_MESSAGING_CONSUMER_ID=ZC.SEMATTRS_MESSAGING_OPERATION=ZC.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES=ZC.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES=ZC.SEMATTRS_MESSAGING_CONVERSATION_ID=ZC.SEMATTRS_MESSAGING_MESSAGE_ID=ZC.SEMATTRS_MESSAGING_URL=ZC.SEMATTRS_MESSAGING_PROTOCOL_VERSION=ZC.SEMATTRS_MESSAGING_PROTOCOL=ZC.SEMATTRS_MESSAGING_TEMP_DESTINATION=void 0;ZC.FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD=ZC.FaasDocumentOperationValues=ZC.FAASDOCUMENTOPERATIONVALUES_DELETE=ZC.FAASDOCUMENTOPERATIONVALUES_EDIT=ZC.FAASDOCUMENTOPERATIONVALUES_INSERT=ZC.FaasTriggerValues=ZC.FAASTRIGGERVALUES_OTHER=ZC.FAASTRIGGERVALUES_TIMER=ZC.FAASTRIGGERVALUES_PUBSUB=ZC.FAASTRIGGERVALUES_HTTP=ZC.FAASTRIGGERVALUES_DATASOURCE=ZC.DbCassandraConsistencyLevelValues=ZC.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL=ZC.DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL=ZC.DBCASSANDRACONSISTENCYLEVELVALUES_ANY=ZC.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE=ZC.DBCASSANDRACONSISTENCYLEVELVALUES_THREE=ZC.DBCASSANDRACONSISTENCYLEVELVALUES_TWO=ZC.DBCASSANDRACONSISTENCYLEVELVALUES_ONE=ZC.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM=ZC.DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM=ZC.DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM=ZC.DBCASSANDRACONSISTENCYLEVELVALUES_ALL=ZC.DbSystemValues=ZC.DBSYSTEMVALUES_COCKROACHDB=ZC.DBSYSTEMVALUES_MEMCACHED=ZC.DBSYSTEMVALUES_ELASTICSEARCH=ZC.DBSYSTEMVALUES_GEODE=ZC.DBSYSTEMVALUES_NEO4J=ZC.DBSYSTEMVALUES_DYNAMODB=ZC.DBSYSTEMVALUES_COSMOSDB=ZC.DBSYSTEMVALUES_COUCHDB=ZC.DBSYSTEMVALUES_COUCHBASE=ZC.DBSYSTEMVALUES_REDIS=ZC.DBSYSTEMVALUES_MONGODB=ZC.DBSYSTEMVALUES_HBASE=ZC.DBSYSTEMVALUES_CASSANDRA=ZC.DBSYSTEMVALUES_COLDFUSION=ZC.DBSYSTEMVALUES_H2=ZC.DBSYSTEMVALUES_VERTICA=ZC.DBSYSTEMVALUES_TERADATA=ZC.DBSYSTEMVALUES_SYBASE=ZC.DBSYSTEMVALUES_SQLITE=ZC.DBSYSTEMVALUES_POINTBASE=ZC.DBSYSTEMVALUES_PERVASIVE=ZC.DBSYSTEMVALUES_NETEZZA=ZC.DBSYSTEMVALUES_MARIADB=ZC.DBSYSTEMVALUES_INTERBASE=ZC.DBSYSTEMVALUES_INSTANTDB=ZC.DBSYSTEMVALUES_INFORMIX=void 0;ZC.MESSAGINGOPERATIONVALUES_RECEIVE=ZC.MessagingDestinationKindValues=ZC.MESSAGINGDESTINATIONKINDVALUES_TOPIC=ZC.MESSAGINGDESTINATIONKINDVALUES_QUEUE=ZC.HttpFlavorValues=ZC.HTTPFLAVORVALUES_QUIC=ZC.HTTPFLAVORVALUES_SPDY=ZC.HTTPFLAVORVALUES_HTTP_2_0=ZC.HTTPFLAVORVALUES_HTTP_1_1=ZC.HTTPFLAVORVALUES_HTTP_1_0=ZC.NetHostConnectionSubtypeValues=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_NR=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_GSM=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_LTE=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_IDEN=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_HSPA=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_UMTS=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_EDGE=ZC.NETHOSTCONNECTIONSUBTYPEVALUES_GPRS=ZC.NetHostConnectionTypeValues=ZC.NETHOSTCONNECTIONTYPEVALUES_UNKNOWN=ZC.NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE=ZC.NETHOSTCONNECTIONTYPEVALUES_CELL=ZC.NETHOSTCONNECTIONTYPEVALUES_WIRED=ZC.NETHOSTCONNECTIONTYPEVALUES_WIFI=ZC.NetTransportValues=ZC.NETTRANSPORTVALUES_OTHER=ZC.NETTRANSPORTVALUES_INPROC=ZC.NETTRANSPORTVALUES_PIPE=ZC.NETTRANSPORTVALUES_UNIX=ZC.NETTRANSPORTVALUES_IP=ZC.NETTRANSPORTVALUES_IP_UDP=ZC.NETTRANSPORTVALUES_IP_TCP=ZC.FaasInvokedProviderValues=ZC.FAASINVOKEDPROVIDERVALUES_GCP=ZC.FAASINVOKEDPROVIDERVALUES_AZURE=ZC.FAASINVOKEDPROVIDERVALUES_AWS=void 0;ZC.MessageTypeValues=ZC.MESSAGETYPEVALUES_RECEIVED=ZC.MESSAGETYPEVALUES_SENT=ZC.RpcGrpcStatusCodeValues=ZC.RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED=ZC.RPCGRPCSTATUSCODEVALUES_DATA_LOSS=ZC.RPCGRPCSTATUSCODEVALUES_UNAVAILABLE=ZC.RPCGRPCSTATUSCODEVALUES_INTERNAL=ZC.RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED=ZC.RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE=ZC.RPCGRPCSTATUSCODEVALUES_ABORTED=ZC.RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION=ZC.RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED=ZC.RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED=ZC.RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS=ZC.RPCGRPCSTATUSCODEVALUES_NOT_FOUND=ZC.RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED=ZC.RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT=ZC.RPCGRPCSTATUSCODEVALUES_UNKNOWN=ZC.RPCGRPCSTATUSCODEVALUES_CANCELLED=ZC.RPCGRPCSTATUSCODEVALUES_OK=ZC.MessagingOperationValues=ZC.MESSAGINGOPERATIONVALUES_PROCESS=void 0;var _1=tW(),Fq="aws.lambda.invoked_arn",Bq="db.system",wq="db.connection_string",jq="db.user",Uq="db.jdbc.driver_classname",qq="db.name",Dq="db.statement",Pq="db.operation",Lq="db.mssql.instance_name",Oq="db.cassandra.keyspace",Cq="db.cassandra.page_size",kq="db.cassandra.consistency_level",Mq="db.cassandra.table",Rq="db.cassandra.idempotence",fq="db.cassandra.speculative_execution_count",Aq="db.cassandra.coordinator.id",Nq="db.cassandra.coordinator.dc",_q="db.hbase.namespace",yq="db.redis.database_index",Iq="db.mongodb.collection",Tq="db.sql.table",Eq="exception.type",hq="exception.message",bq="exception.stacktrace",vq="exception.escaped",Sq="faas.trigger",xq="faas.execution",gq="faas.document.collection",mq="faas.document.operation",dq="faas.document.time",uq="faas.document.name",cq="faas.time",lq="faas.cron",pq="faas.coldstart",iq="faas.invoked_name",oq="faas.invoked_provider",sq="faas.invoked_region",rq="net.transport",nq="net.peer.ip",aq="net.peer.port",tq="net.peer.name",eq="net.host.ip",$D="net.host.port",ZD="net.host.name",XD="net.host.connection.type",QD="net.host.connection.subtype",JD="net.host.carrier.name",YD="net.host.carrier.mcc",WD="net.host.carrier.mnc",KD="net.host.carrier.icc",zD="peer.service",HD="enduser.id",GD="enduser.role",VD="enduser.scope",FD="thread.id",BD="thread.name",wD="code.function",jD="code.namespace",UD="code.filepath",qD="code.lineno",DD="http.method",PD="http.url",LD="http.target",OD="http.host",CD="http.scheme",kD="http.status_code",MD="http.flavor",RD="http.user_agent",fD="http.request_content_length",AD="http.request_content_length_uncompressed",ND="http.response_content_length",_D="http.response_content_length_uncompressed",yD="http.server_name",ID="http.route",TD="http.client_ip",ED="aws.dynamodb.table_names",hD="aws.dynamodb.consumed_capacity",bD="aws.dynamodb.item_collection_metrics",vD="aws.dynamodb.provisioned_read_capacity",SD="aws.dynamodb.provisioned_write_capacity",xD="aws.dynamodb.consistent_read",gD="aws.dynamodb.projection",mD="aws.dynamodb.limit",dD="aws.dynamodb.attributes_to_get",uD="aws.dynamodb.index_name",cD="aws.dynamodb.select",lD="aws.dynamodb.global_secondary_indexes",pD="aws.dynamodb.local_secondary_indexes",iD="aws.dynamodb.exclusive_start_table",oD="aws.dynamodb.table_count",sD="aws.dynamodb.scan_forward",rD="aws.dynamodb.segment",nD="aws.dynamodb.total_segments",aD="aws.dynamodb.count",tD="aws.dynamodb.scanned_count",eD="aws.dynamodb.attribute_definitions",$P="aws.dynamodb.global_secondary_index_updates",ZP="messaging.system",XP="messaging.destination",QP="messaging.destination_kind",JP="messaging.temp_destination",YP="messaging.protocol",WP="messaging.protocol_version",KP="messaging.url",zP="messaging.message_id",HP="messaging.conversation_id",GP="messaging.message_payload_size_bytes",VP="messaging.message_payload_compressed_size_bytes",FP="messaging.operation",BP="messaging.consumer_id",wP="messaging.rabbitmq.routing_key",jP="messaging.kafka.message_key",UP="messaging.kafka.consumer_group",qP="messaging.kafka.client_id",DP="messaging.kafka.partition",PP="messaging.kafka.tombstone",LP="rpc.system",OP="rpc.service",CP="rpc.method",kP="rpc.grpc.status_code",MP="rpc.jsonrpc.version",RP="rpc.jsonrpc.request_id",fP="rpc.jsonrpc.error_code",AP="rpc.jsonrpc.error_message",NP="message.type",_P="message.id",yP="message.compressed_size",IP="message.uncompressed_size";ZC.SEMATTRS_AWS_LAMBDA_INVOKED_ARN=Fq;ZC.SEMATTRS_DB_SYSTEM=Bq;ZC.SEMATTRS_DB_CONNECTION_STRING=wq;ZC.SEMATTRS_DB_USER=jq;ZC.SEMATTRS_DB_JDBC_DRIVER_CLASSNAME=Uq;ZC.SEMATTRS_DB_NAME=qq;ZC.SEMATTRS_DB_STATEMENT=Dq;ZC.SEMATTRS_DB_OPERATION=Pq;ZC.SEMATTRS_DB_MSSQL_INSTANCE_NAME=Lq;ZC.SEMATTRS_DB_CASSANDRA_KEYSPACE=Oq;ZC.SEMATTRS_DB_CASSANDRA_PAGE_SIZE=Cq;ZC.SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL=kq;ZC.SEMATTRS_DB_CASSANDRA_TABLE=Mq;ZC.SEMATTRS_DB_CASSANDRA_IDEMPOTENCE=Rq;ZC.SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT=fq;ZC.SEMATTRS_DB_CASSANDRA_COORDINATOR_ID=Aq;ZC.SEMATTRS_DB_CASSANDRA_COORDINATOR_DC=Nq;ZC.SEMATTRS_DB_HBASE_NAMESPACE=_q;ZC.SEMATTRS_DB_REDIS_DATABASE_INDEX=yq;ZC.SEMATTRS_DB_MONGODB_COLLECTION=Iq;ZC.SEMATTRS_DB_SQL_TABLE=Tq;ZC.SEMATTRS_EXCEPTION_TYPE=Eq;ZC.SEMATTRS_EXCEPTION_MESSAGE=hq;ZC.SEMATTRS_EXCEPTION_STACKTRACE=bq;ZC.SEMATTRS_EXCEPTION_ESCAPED=vq;ZC.SEMATTRS_FAAS_TRIGGER=Sq;ZC.SEMATTRS_FAAS_EXECUTION=xq;ZC.SEMATTRS_FAAS_DOCUMENT_COLLECTION=gq;ZC.SEMATTRS_FAAS_DOCUMENT_OPERATION=mq;ZC.SEMATTRS_FAAS_DOCUMENT_TIME=dq;ZC.SEMATTRS_FAAS_DOCUMENT_NAME=uq;ZC.SEMATTRS_FAAS_TIME=cq;ZC.SEMATTRS_FAAS_CRON=lq;ZC.SEMATTRS_FAAS_COLDSTART=pq;ZC.SEMATTRS_FAAS_INVOKED_NAME=iq;ZC.SEMATTRS_FAAS_INVOKED_PROVIDER=oq;ZC.SEMATTRS_FAAS_INVOKED_REGION=sq;ZC.SEMATTRS_NET_TRANSPORT=rq;ZC.SEMATTRS_NET_PEER_IP=nq;ZC.SEMATTRS_NET_PEER_PORT=aq;ZC.SEMATTRS_NET_PEER_NAME=tq;ZC.SEMATTRS_NET_HOST_IP=eq;ZC.SEMATTRS_NET_HOST_PORT=$D;ZC.SEMATTRS_NET_HOST_NAME=ZD;ZC.SEMATTRS_NET_HOST_CONNECTION_TYPE=XD;ZC.SEMATTRS_NET_HOST_CONNECTION_SUBTYPE=QD;ZC.SEMATTRS_NET_HOST_CARRIER_NAME=JD;ZC.SEMATTRS_NET_HOST_CARRIER_MCC=YD;ZC.SEMATTRS_NET_HOST_CARRIER_MNC=WD;ZC.SEMATTRS_NET_HOST_CARRIER_ICC=KD;ZC.SEMATTRS_PEER_SERVICE=zD;ZC.SEMATTRS_ENDUSER_ID=HD;ZC.SEMATTRS_ENDUSER_ROLE=GD;ZC.SEMATTRS_ENDUSER_SCOPE=VD;ZC.SEMATTRS_THREAD_ID=FD;ZC.SEMATTRS_THREAD_NAME=BD;ZC.SEMATTRS_CODE_FUNCTION=wD;ZC.SEMATTRS_CODE_NAMESPACE=jD;ZC.SEMATTRS_CODE_FILEPATH=UD;ZC.SEMATTRS_CODE_LINENO=qD;ZC.SEMATTRS_HTTP_METHOD=DD;ZC.SEMATTRS_HTTP_URL=PD;ZC.SEMATTRS_HTTP_TARGET=LD;ZC.SEMATTRS_HTTP_HOST=OD;ZC.SEMATTRS_HTTP_SCHEME=CD;ZC.SEMATTRS_HTTP_STATUS_CODE=kD;ZC.SEMATTRS_HTTP_FLAVOR=MD;ZC.SEMATTRS_HTTP_USER_AGENT=RD;ZC.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH=fD;ZC.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=AD;ZC.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH=ND;ZC.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=_D;ZC.SEMATTRS_HTTP_SERVER_NAME=yD;ZC.SEMATTRS_HTTP_ROUTE=ID;ZC.SEMATTRS_HTTP_CLIENT_IP=TD;ZC.SEMATTRS_AWS_DYNAMODB_TABLE_NAMES=ED;ZC.SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY=hD;ZC.SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS=bD;ZC.SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY=vD;ZC.SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY=SD;ZC.SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ=xD;ZC.SEMATTRS_AWS_DYNAMODB_PROJECTION=gD;ZC.SEMATTRS_AWS_DYNAMODB_LIMIT=mD;ZC.SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET=dD;ZC.SEMATTRS_AWS_DYNAMODB_INDEX_NAME=uD;ZC.SEMATTRS_AWS_DYNAMODB_SELECT=cD;ZC.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES=lD;ZC.SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES=pD;ZC.SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE=iD;ZC.SEMATTRS_AWS_DYNAMODB_TABLE_COUNT=oD;ZC.SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD=sD;ZC.SEMATTRS_AWS_DYNAMODB_SEGMENT=rD;ZC.SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS=nD;ZC.SEMATTRS_AWS_DYNAMODB_COUNT=aD;ZC.SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT=tD;ZC.SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS=eD;ZC.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES=$P;ZC.SEMATTRS_MESSAGING_SYSTEM=ZP;ZC.SEMATTRS_MESSAGING_DESTINATION=XP;ZC.SEMATTRS_MESSAGING_DESTINATION_KIND=QP;ZC.SEMATTRS_MESSAGING_TEMP_DESTINATION=JP;ZC.SEMATTRS_MESSAGING_PROTOCOL=YP;ZC.SEMATTRS_MESSAGING_PROTOCOL_VERSION=WP;ZC.SEMATTRS_MESSAGING_URL=KP;ZC.SEMATTRS_MESSAGING_MESSAGE_ID=zP;ZC.SEMATTRS_MESSAGING_CONVERSATION_ID=HP;ZC.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES=GP;ZC.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES=VP;ZC.SEMATTRS_MESSAGING_OPERATION=FP;ZC.SEMATTRS_MESSAGING_CONSUMER_ID=BP;ZC.SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY=wP;ZC.SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY=jP;ZC.SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP=UP;ZC.SEMATTRS_MESSAGING_KAFKA_CLIENT_ID=qP;ZC.SEMATTRS_MESSAGING_KAFKA_PARTITION=DP;ZC.SEMATTRS_MESSAGING_KAFKA_TOMBSTONE=PP;ZC.SEMATTRS_RPC_SYSTEM=LP;ZC.SEMATTRS_RPC_SERVICE=OP;ZC.SEMATTRS_RPC_METHOD=CP;ZC.SEMATTRS_RPC_GRPC_STATUS_CODE=kP;ZC.SEMATTRS_RPC_JSONRPC_VERSION=MP;ZC.SEMATTRS_RPC_JSONRPC_REQUEST_ID=RP;ZC.SEMATTRS_RPC_JSONRPC_ERROR_CODE=fP;ZC.SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE=AP;ZC.SEMATTRS_MESSAGE_TYPE=NP;ZC.SEMATTRS_MESSAGE_ID=_P;ZC.SEMATTRS_MESSAGE_COMPRESSED_SIZE=yP;ZC.SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE=IP;ZC.SemanticAttributes=(0,_1.createConstMap)([Fq,Bq,wq,jq,Uq,qq,Dq,Pq,Lq,Oq,Cq,kq,Mq,Rq,fq,Aq,Nq,_q,yq,Iq,Tq,Eq,hq,bq,vq,Sq,xq,gq,mq,dq,uq,cq,lq,pq,iq,oq,sq,rq,nq,aq,tq,eq,$D,ZD,XD,QD,JD,YD,WD,KD,zD,HD,GD,VD,FD,BD,wD,jD,UD,qD,DD,PD,LD,OD,CD,kD,MD,RD,fD,AD,ND,_D,yD,ID,TD,ED,hD,bD,vD,SD,xD,gD,mD,dD,uD,cD,lD,pD,iD,oD,sD,rD,nD,aD,tD,eD,$P,ZP,XP,QP,JP,YP,WP,KP,zP,HP,GP,VP,FP,BP,wP,jP,UP,qP,DP,PP,LP,OP,CP,kP,MP,RP,fP,AP,NP,_P,yP,IP]);var TP="other_sql",EP="mssql",hP="mysql",bP="oracle",vP="db2",SP="postgresql",xP="redshift",gP="hive",mP="cloudscape",dP="hsqldb",uP="progress",cP="maxdb",lP="hanadb",pP="ingres",iP="firstsql",oP="edb",sP="cache",rP="adabas",nP="firebird",aP="derby",tP="filemaker",eP="informix",$L="instantdb",ZL="interbase",XL="mariadb",QL="netezza",JL="pervasive",YL="pointbase",WL="sqlite",KL="sybase",zL="teradata",HL="vertica",GL="h2",VL="coldfusion",FL="cassandra",BL="hbase",wL="mongodb",jL="redis",UL="couchbase",qL="couchdb",DL="cosmosdb",PL="dynamodb",LL="neo4j",OL="geode",CL="elasticsearch",kL="memcached",ML="cockroachdb";ZC.DBSYSTEMVALUES_OTHER_SQL=TP;ZC.DBSYSTEMVALUES_MSSQL=EP;ZC.DBSYSTEMVALUES_MYSQL=hP;ZC.DBSYSTEMVALUES_ORACLE=bP;ZC.DBSYSTEMVALUES_DB2=vP;ZC.DBSYSTEMVALUES_POSTGRESQL=SP;ZC.DBSYSTEMVALUES_REDSHIFT=xP;ZC.DBSYSTEMVALUES_HIVE=gP;ZC.DBSYSTEMVALUES_CLOUDSCAPE=mP;ZC.DBSYSTEMVALUES_HSQLDB=dP;ZC.DBSYSTEMVALUES_PROGRESS=uP;ZC.DBSYSTEMVALUES_MAXDB=cP;ZC.DBSYSTEMVALUES_HANADB=lP;ZC.DBSYSTEMVALUES_INGRES=pP;ZC.DBSYSTEMVALUES_FIRSTSQL=iP;ZC.DBSYSTEMVALUES_EDB=oP;ZC.DBSYSTEMVALUES_CACHE=sP;ZC.DBSYSTEMVALUES_ADABAS=rP;ZC.DBSYSTEMVALUES_FIREBIRD=nP;ZC.DBSYSTEMVALUES_DERBY=aP;ZC.DBSYSTEMVALUES_FILEMAKER=tP;ZC.DBSYSTEMVALUES_INFORMIX=eP;ZC.DBSYSTEMVALUES_INSTANTDB=$L;ZC.DBSYSTEMVALUES_INTERBASE=ZL;ZC.DBSYSTEMVALUES_MARIADB=XL;ZC.DBSYSTEMVALUES_NETEZZA=QL;ZC.DBSYSTEMVALUES_PERVASIVE=JL;ZC.DBSYSTEMVALUES_POINTBASE=YL;ZC.DBSYSTEMVALUES_SQLITE=WL;ZC.DBSYSTEMVALUES_SYBASE=KL;ZC.DBSYSTEMVALUES_TERADATA=zL;ZC.DBSYSTEMVALUES_VERTICA=HL;ZC.DBSYSTEMVALUES_H2=GL;ZC.DBSYSTEMVALUES_COLDFUSION=VL;ZC.DBSYSTEMVALUES_CASSANDRA=FL;ZC.DBSYSTEMVALUES_HBASE=BL;ZC.DBSYSTEMVALUES_MONGODB=wL;ZC.DBSYSTEMVALUES_REDIS=jL;ZC.DBSYSTEMVALUES_COUCHBASE=UL;ZC.DBSYSTEMVALUES_COUCHDB=qL;ZC.DBSYSTEMVALUES_COSMOSDB=DL;ZC.DBSYSTEMVALUES_DYNAMODB=PL;ZC.DBSYSTEMVALUES_NEO4J=LL;ZC.DBSYSTEMVALUES_GEODE=OL;ZC.DBSYSTEMVALUES_ELASTICSEARCH=CL;ZC.DBSYSTEMVALUES_MEMCACHED=kL;ZC.DBSYSTEMVALUES_COCKROACHDB=ML;ZC.DbSystemValues=(0,_1.createConstMap)([TP,EP,hP,bP,vP,SP,xP,gP,mP,dP,uP,cP,lP,pP,iP,oP,sP,rP,nP,aP,tP,eP,$L,ZL,XL,QL,JL,YL,WL,KL,zL,HL,GL,VL,FL,BL,wL,jL,UL,qL,DL,PL,LL,OL,CL,kL,ML]);var RL="all",fL="each_quorum",AL="quorum",NL="local_quorum",_L="one",yL="two",IL="three",TL="local_one",EL="any",hL="serial",bL="local_serial";ZC.DBCASSANDRACONSISTENCYLEVELVALUES_ALL=RL;ZC.DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM=fL;ZC.DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM=AL;ZC.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM=NL;ZC.DBCASSANDRACONSISTENCYLEVELVALUES_ONE=_L;ZC.DBCASSANDRACONSISTENCYLEVELVALUES_TWO=yL;ZC.DBCASSANDRACONSISTENCYLEVELVALUES_THREE=IL;ZC.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE=TL;ZC.DBCASSANDRACONSISTENCYLEVELVALUES_ANY=EL;ZC.DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL=hL;ZC.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL=bL;ZC.DbCassandraConsistencyLevelValues=(0,_1.createConstMap)([RL,fL,AL,NL,_L,yL,IL,TL,EL,hL,bL]);var vL="datasource",SL="http",xL="pubsub",gL="timer",mL="other";ZC.FAASTRIGGERVALUES_DATASOURCE=vL;ZC.FAASTRIGGERVALUES_HTTP=SL;ZC.FAASTRIGGERVALUES_PUBSUB=xL;ZC.FAASTRIGGERVALUES_TIMER=gL;ZC.FAASTRIGGERVALUES_OTHER=mL;ZC.FaasTriggerValues=(0,_1.createConstMap)([vL,SL,xL,gL,mL]);var dL="insert",uL="edit",cL="delete";ZC.FAASDOCUMENTOPERATIONVALUES_INSERT=dL;ZC.FAASDOCUMENTOPERATIONVALUES_EDIT=uL;ZC.FAASDOCUMENTOPERATIONVALUES_DELETE=cL;ZC.FaasDocumentOperationValues=(0,_1.createConstMap)([dL,uL,cL]);var lL="alibaba_cloud",pL="aws",iL="azure",oL="gcp";ZC.FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD=lL;ZC.FAASINVOKEDPROVIDERVALUES_AWS=pL;ZC.FAASINVOKEDPROVIDERVALUES_AZURE=iL;ZC.FAASINVOKEDPROVIDERVALUES_GCP=oL;ZC.FaasInvokedProviderValues=(0,_1.createConstMap)([lL,pL,iL,oL]);var sL="ip_tcp",rL="ip_udp",nL="ip",aL="unix",tL="pipe",eL="inproc",$O="other";ZC.NETTRANSPORTVALUES_IP_TCP=sL;ZC.NETTRANSPORTVALUES_IP_UDP=rL;ZC.NETTRANSPORTVALUES_IP=nL;ZC.NETTRANSPORTVALUES_UNIX=aL;ZC.NETTRANSPORTVALUES_PIPE=tL;ZC.NETTRANSPORTVALUES_INPROC=eL;ZC.NETTRANSPORTVALUES_OTHER=$O;ZC.NetTransportValues=(0,_1.createConstMap)([sL,rL,nL,aL,tL,eL,$O]);var ZO="wifi",XO="wired",QO="cell",JO="unavailable",YO="unknown";ZC.NETHOSTCONNECTIONTYPEVALUES_WIFI=ZO;ZC.NETHOSTCONNECTIONTYPEVALUES_WIRED=XO;ZC.NETHOSTCONNECTIONTYPEVALUES_CELL=QO;ZC.NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE=JO;ZC.NETHOSTCONNECTIONTYPEVALUES_UNKNOWN=YO;ZC.NetHostConnectionTypeValues=(0,_1.createConstMap)([ZO,XO,QO,JO,YO]);var WO="gprs",KO="edge",zO="umts",HO="cdma",GO="evdo_0",VO="evdo_a",FO="cdma2000_1xrtt",BO="hsdpa",wO="hsupa",jO="hspa",UO="iden",qO="evdo_b",DO="lte",PO="ehrpd",LO="hspap",OO="gsm",CO="td_scdma",kO="iwlan",MO="nr",RO="nrnsa",fO="lte_ca";ZC.NETHOSTCONNECTIONSUBTYPEVALUES_GPRS=WO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_EDGE=KO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_UMTS=zO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA=HO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0=GO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A=VO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT=FO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA=BO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA=wO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_HSPA=jO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_IDEN=UO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B=qO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_LTE=DO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD=PO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP=LO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_GSM=OO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA=CO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN=kO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_NR=MO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA=RO;ZC.NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA=fO;ZC.NetHostConnectionSubtypeValues=(0,_1.createConstMap)([WO,KO,zO,HO,GO,VO,FO,BO,wO,jO,UO,qO,DO,PO,LO,OO,CO,kO,MO,RO,fO]);var AO="1.0",NO="1.1",_O="2.0",yO="SPDY",IO="QUIC";ZC.HTTPFLAVORVALUES_HTTP_1_0=AO;ZC.HTTPFLAVORVALUES_HTTP_1_1=NO;ZC.HTTPFLAVORVALUES_HTTP_2_0=_O;ZC.HTTPFLAVORVALUES_SPDY=yO;ZC.HTTPFLAVORVALUES_QUIC=IO;ZC.HttpFlavorValues={HTTP_1_0:AO,HTTP_1_1:NO,HTTP_2_0:_O,SPDY:yO,QUIC:IO};var TO="queue",EO="topic";ZC.MESSAGINGDESTINATIONKINDVALUES_QUEUE=TO;ZC.MESSAGINGDESTINATIONKINDVALUES_TOPIC=EO;ZC.MessagingDestinationKindValues=(0,_1.createConstMap)([TO,EO]);var hO="receive",bO="process";ZC.MESSAGINGOPERATIONVALUES_RECEIVE=hO;ZC.MESSAGINGOPERATIONVALUES_PROCESS=bO;ZC.MessagingOperationValues=(0,_1.createConstMap)([hO,bO]);var vO=0,SO=1,xO=2,gO=3,mO=4,dO=5,uO=6,cO=7,lO=8,pO=9,iO=10,oO=11,sO=12,rO=13,nO=14,aO=15,tO=16;ZC.RPCGRPCSTATUSCODEVALUES_OK=vO;ZC.RPCGRPCSTATUSCODEVALUES_CANCELLED=SO;ZC.RPCGRPCSTATUSCODEVALUES_UNKNOWN=xO;ZC.RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT=gO;ZC.RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED=mO;ZC.RPCGRPCSTATUSCODEVALUES_NOT_FOUND=dO;ZC.RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS=uO;ZC.RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED=cO;ZC.RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED=lO;ZC.RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION=pO;ZC.RPCGRPCSTATUSCODEVALUES_ABORTED=iO;ZC.RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE=oO;ZC.RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED=sO;ZC.RPCGRPCSTATUSCODEVALUES_INTERNAL=rO;ZC.RPCGRPCSTATUSCODEVALUES_UNAVAILABLE=nO;ZC.RPCGRPCSTATUSCODEVALUES_DATA_LOSS=aO;ZC.RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED=tO;ZC.RpcGrpcStatusCodeValues={OK:vO,CANCELLED:SO,UNKNOWN:xO,INVALID_ARGUMENT:gO,DEADLINE_EXCEEDED:mO,NOT_FOUND:dO,ALREADY_EXISTS:uO,PERMISSION_DENIED:cO,RESOURCE_EXHAUSTED:lO,FAILED_PRECONDITION:pO,ABORTED:iO,OUT_OF_RANGE:oO,UNIMPLEMENTED:sO,INTERNAL:rO,UNAVAILABLE:nO,DATA_LOSS:aO,UNAUTHENTICATED:tO};var eO="SENT",$C="RECEIVED";ZC.MESSAGETYPEVALUES_SENT=eO;ZC.MESSAGETYPEVALUES_RECEIVED=$C;ZC.MessageTypeValues=(0,_1.createConstMap)([eO,$C])});var HC=q((C8)=>{var Ca=C8&&C8.__createBinding||(Object.create?function($,Z,X,Q){if(Q===void 0)Q=X;var J=Object.getOwnPropertyDescriptor(Z,X);if(!J||("get"in J?!Z.__esModule:J.writable||J.configurable))J={enumerable:!0,get:function(){return Z[X]}};Object.defineProperty($,Q,J)}:function($,Z,X,Q){if(Q===void 0)Q=X;$[Q]=Z[X]}),ka=C8&&C8.__exportStar||function($,Z){for(var X in $)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Z,X))Ca(Z,$,X)};Object.defineProperty(C8,"__esModule",{value:!0});ka(zC(),C8)});var xM=q((hM)=>{Object.defineProperty(hM,"__esModule",{value:!0});hM.SEMRESATTRS_K8S_STATEFULSET_NAME=hM.SEMRESATTRS_K8S_STATEFULSET_UID=hM.SEMRESATTRS_K8S_DEPLOYMENT_NAME=hM.SEMRESATTRS_K8S_DEPLOYMENT_UID=hM.SEMRESATTRS_K8S_REPLICASET_NAME=hM.SEMRESATTRS_K8S_REPLICASET_UID=hM.SEMRESATTRS_K8S_CONTAINER_NAME=hM.SEMRESATTRS_K8S_POD_NAME=hM.SEMRESATTRS_K8S_POD_UID=hM.SEMRESATTRS_K8S_NAMESPACE_NAME=hM.SEMRESATTRS_K8S_NODE_UID=hM.SEMRESATTRS_K8S_NODE_NAME=hM.SEMRESATTRS_K8S_CLUSTER_NAME=hM.SEMRESATTRS_HOST_IMAGE_VERSION=hM.SEMRESATTRS_HOST_IMAGE_ID=hM.SEMRESATTRS_HOST_IMAGE_NAME=hM.SEMRESATTRS_HOST_ARCH=hM.SEMRESATTRS_HOST_TYPE=hM.SEMRESATTRS_HOST_NAME=hM.SEMRESATTRS_HOST_ID=hM.SEMRESATTRS_FAAS_MAX_MEMORY=hM.SEMRESATTRS_FAAS_INSTANCE=hM.SEMRESATTRS_FAAS_VERSION=hM.SEMRESATTRS_FAAS_ID=hM.SEMRESATTRS_FAAS_NAME=hM.SEMRESATTRS_DEVICE_MODEL_NAME=hM.SEMRESATTRS_DEVICE_MODEL_IDENTIFIER=hM.SEMRESATTRS_DEVICE_ID=hM.SEMRESATTRS_DEPLOYMENT_ENVIRONMENT=hM.SEMRESATTRS_CONTAINER_IMAGE_TAG=hM.SEMRESATTRS_CONTAINER_IMAGE_NAME=hM.SEMRESATTRS_CONTAINER_RUNTIME=hM.SEMRESATTRS_CONTAINER_ID=hM.SEMRESATTRS_CONTAINER_NAME=hM.SEMRESATTRS_AWS_LOG_STREAM_ARNS=hM.SEMRESATTRS_AWS_LOG_STREAM_NAMES=hM.SEMRESATTRS_AWS_LOG_GROUP_ARNS=hM.SEMRESATTRS_AWS_LOG_GROUP_NAMES=hM.SEMRESATTRS_AWS_EKS_CLUSTER_ARN=hM.SEMRESATTRS_AWS_ECS_TASK_REVISION=hM.SEMRESATTRS_AWS_ECS_TASK_FAMILY=hM.SEMRESATTRS_AWS_ECS_TASK_ARN=hM.SEMRESATTRS_AWS_ECS_LAUNCHTYPE=hM.SEMRESATTRS_AWS_ECS_CLUSTER_ARN=hM.SEMRESATTRS_AWS_ECS_CONTAINER_ARN=hM.SEMRESATTRS_CLOUD_PLATFORM=hM.SEMRESATTRS_CLOUD_AVAILABILITY_ZONE=hM.SEMRESATTRS_CLOUD_REGION=hM.SEMRESATTRS_CLOUD_ACCOUNT_ID=hM.SEMRESATTRS_CLOUD_PROVIDER=void 0;hM.CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE=hM.CLOUDPLATFORMVALUES_AZURE_APP_SERVICE=hM.CLOUDPLATFORMVALUES_AZURE_FUNCTIONS=hM.CLOUDPLATFORMVALUES_AZURE_AKS=hM.CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES=hM.CLOUDPLATFORMVALUES_AZURE_VM=hM.CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK=hM.CLOUDPLATFORMVALUES_AWS_LAMBDA=hM.CLOUDPLATFORMVALUES_AWS_EKS=hM.CLOUDPLATFORMVALUES_AWS_ECS=hM.CLOUDPLATFORMVALUES_AWS_EC2=hM.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC=hM.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS=hM.CloudProviderValues=hM.CLOUDPROVIDERVALUES_GCP=hM.CLOUDPROVIDERVALUES_AZURE=hM.CLOUDPROVIDERVALUES_AWS=hM.CLOUDPROVIDERVALUES_ALIBABA_CLOUD=hM.SemanticResourceAttributes=hM.SEMRESATTRS_WEBENGINE_DESCRIPTION=hM.SEMRESATTRS_WEBENGINE_VERSION=hM.SEMRESATTRS_WEBENGINE_NAME=hM.SEMRESATTRS_TELEMETRY_AUTO_VERSION=hM.SEMRESATTRS_TELEMETRY_SDK_VERSION=hM.SEMRESATTRS_TELEMETRY_SDK_LANGUAGE=hM.SEMRESATTRS_TELEMETRY_SDK_NAME=hM.SEMRESATTRS_SERVICE_VERSION=hM.SEMRESATTRS_SERVICE_INSTANCE_ID=hM.SEMRESATTRS_SERVICE_NAMESPACE=hM.SEMRESATTRS_SERVICE_NAME=hM.SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION=hM.SEMRESATTRS_PROCESS_RUNTIME_VERSION=hM.SEMRESATTRS_PROCESS_RUNTIME_NAME=hM.SEMRESATTRS_PROCESS_OWNER=hM.SEMRESATTRS_PROCESS_COMMAND_ARGS=hM.SEMRESATTRS_PROCESS_COMMAND_LINE=hM.SEMRESATTRS_PROCESS_COMMAND=hM.SEMRESATTRS_PROCESS_EXECUTABLE_PATH=hM.SEMRESATTRS_PROCESS_EXECUTABLE_NAME=hM.SEMRESATTRS_PROCESS_PID=hM.SEMRESATTRS_OS_VERSION=hM.SEMRESATTRS_OS_NAME=hM.SEMRESATTRS_OS_DESCRIPTION=hM.SEMRESATTRS_OS_TYPE=hM.SEMRESATTRS_K8S_CRONJOB_NAME=hM.SEMRESATTRS_K8S_CRONJOB_UID=hM.SEMRESATTRS_K8S_JOB_NAME=hM.SEMRESATTRS_K8S_JOB_UID=hM.SEMRESATTRS_K8S_DAEMONSET_NAME=hM.SEMRESATTRS_K8S_DAEMONSET_UID=void 0;hM.TelemetrySdkLanguageValues=hM.TELEMETRYSDKLANGUAGEVALUES_WEBJS=hM.TELEMETRYSDKLANGUAGEVALUES_RUBY=hM.TELEMETRYSDKLANGUAGEVALUES_PYTHON=hM.TELEMETRYSDKLANGUAGEVALUES_PHP=hM.TELEMETRYSDKLANGUAGEVALUES_NODEJS=hM.TELEMETRYSDKLANGUAGEVALUES_JAVA=hM.TELEMETRYSDKLANGUAGEVALUES_GO=hM.TELEMETRYSDKLANGUAGEVALUES_ERLANG=hM.TELEMETRYSDKLANGUAGEVALUES_DOTNET=hM.TELEMETRYSDKLANGUAGEVALUES_CPP=hM.OsTypeValues=hM.OSTYPEVALUES_Z_OS=hM.OSTYPEVALUES_SOLARIS=hM.OSTYPEVALUES_AIX=hM.OSTYPEVALUES_HPUX=hM.OSTYPEVALUES_DRAGONFLYBSD=hM.OSTYPEVALUES_OPENBSD=hM.OSTYPEVALUES_NETBSD=hM.OSTYPEVALUES_FREEBSD=hM.OSTYPEVALUES_DARWIN=hM.OSTYPEVALUES_LINUX=hM.OSTYPEVALUES_WINDOWS=hM.HostArchValues=hM.HOSTARCHVALUES_X86=hM.HOSTARCHVALUES_PPC64=hM.HOSTARCHVALUES_PPC32=hM.HOSTARCHVALUES_IA64=hM.HOSTARCHVALUES_ARM64=hM.HOSTARCHVALUES_ARM32=hM.HOSTARCHVALUES_AMD64=hM.AwsEcsLaunchtypeValues=hM.AWSECSLAUNCHTYPEVALUES_FARGATE=hM.AWSECSLAUNCHTYPEVALUES_EC2=hM.CloudPlatformValues=hM.CLOUDPLATFORMVALUES_GCP_APP_ENGINE=hM.CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS=hM.CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE=hM.CLOUDPLATFORMVALUES_GCP_CLOUD_RUN=void 0;var k8=tW(),GC="cloud.provider",VC="cloud.account.id",FC="cloud.region",BC="cloud.availability_zone",wC="cloud.platform",jC="aws.ecs.container.arn",UC="aws.ecs.cluster.arn",qC="aws.ecs.launchtype",DC="aws.ecs.task.arn",PC="aws.ecs.task.family",LC="aws.ecs.task.revision",OC="aws.eks.cluster.arn",CC="aws.log.group.names",kC="aws.log.group.arns",MC="aws.log.stream.names",RC="aws.log.stream.arns",fC="container.name",AC="container.id",NC="container.runtime",_C="container.image.name",yC="container.image.tag",IC="deployment.environment",TC="device.id",EC="device.model.identifier",hC="device.model.name",bC="faas.name",vC="faas.id",SC="faas.version",xC="faas.instance",gC="faas.max_memory",mC="host.id",dC="host.name",uC="host.type",cC="host.arch",lC="host.image.name",pC="host.image.id",iC="host.image.version",oC="k8s.cluster.name",sC="k8s.node.name",rC="k8s.node.uid",nC="k8s.namespace.name",aC="k8s.pod.uid",tC="k8s.pod.name",eC="k8s.container.name",$k="k8s.replicaset.uid",Zk="k8s.replicaset.name",Xk="k8s.deployment.uid",Qk="k8s.deployment.name",Jk="k8s.statefulset.uid",Yk="k8s.statefulset.name",Wk="k8s.daemonset.uid",Kk="k8s.daemonset.name",zk="k8s.job.uid",Hk="k8s.job.name",Gk="k8s.cronjob.uid",Vk="k8s.cronjob.name",Fk="os.type",Bk="os.description",wk="os.name",jk="os.version",Uk="process.pid",qk="process.executable.name",Dk="process.executable.path",Pk="process.command",Lk="process.command_line",Ok="process.command_args",Ck="process.owner",kk="process.runtime.name",Mk="process.runtime.version",Rk="process.runtime.description",fk="service.name",Ak="service.namespace",Nk="service.instance.id",_k="service.version",yk="telemetry.sdk.name",Ik="telemetry.sdk.language",Tk="telemetry.sdk.version",Ek="telemetry.auto.version",hk="webengine.name",bk="webengine.version",vk="webengine.description";hM.SEMRESATTRS_CLOUD_PROVIDER=GC;hM.SEMRESATTRS_CLOUD_ACCOUNT_ID=VC;hM.SEMRESATTRS_CLOUD_REGION=FC;hM.SEMRESATTRS_CLOUD_AVAILABILITY_ZONE=BC;hM.SEMRESATTRS_CLOUD_PLATFORM=wC;hM.SEMRESATTRS_AWS_ECS_CONTAINER_ARN=jC;hM.SEMRESATTRS_AWS_ECS_CLUSTER_ARN=UC;hM.SEMRESATTRS_AWS_ECS_LAUNCHTYPE=qC;hM.SEMRESATTRS_AWS_ECS_TASK_ARN=DC;hM.SEMRESATTRS_AWS_ECS_TASK_FAMILY=PC;hM.SEMRESATTRS_AWS_ECS_TASK_REVISION=LC;hM.SEMRESATTRS_AWS_EKS_CLUSTER_ARN=OC;hM.SEMRESATTRS_AWS_LOG_GROUP_NAMES=CC;hM.SEMRESATTRS_AWS_LOG_GROUP_ARNS=kC;hM.SEMRESATTRS_AWS_LOG_STREAM_NAMES=MC;hM.SEMRESATTRS_AWS_LOG_STREAM_ARNS=RC;hM.SEMRESATTRS_CONTAINER_NAME=fC;hM.SEMRESATTRS_CONTAINER_ID=AC;hM.SEMRESATTRS_CONTAINER_RUNTIME=NC;hM.SEMRESATTRS_CONTAINER_IMAGE_NAME=_C;hM.SEMRESATTRS_CONTAINER_IMAGE_TAG=yC;hM.SEMRESATTRS_DEPLOYMENT_ENVIRONMENT=IC;hM.SEMRESATTRS_DEVICE_ID=TC;hM.SEMRESATTRS_DEVICE_MODEL_IDENTIFIER=EC;hM.SEMRESATTRS_DEVICE_MODEL_NAME=hC;hM.SEMRESATTRS_FAAS_NAME=bC;hM.SEMRESATTRS_FAAS_ID=vC;hM.SEMRESATTRS_FAAS_VERSION=SC;hM.SEMRESATTRS_FAAS_INSTANCE=xC;hM.SEMRESATTRS_FAAS_MAX_MEMORY=gC;hM.SEMRESATTRS_HOST_ID=mC;hM.SEMRESATTRS_HOST_NAME=dC;hM.SEMRESATTRS_HOST_TYPE=uC;hM.SEMRESATTRS_HOST_ARCH=cC;hM.SEMRESATTRS_HOST_IMAGE_NAME=lC;hM.SEMRESATTRS_HOST_IMAGE_ID=pC;hM.SEMRESATTRS_HOST_IMAGE_VERSION=iC;hM.SEMRESATTRS_K8S_CLUSTER_NAME=oC;hM.SEMRESATTRS_K8S_NODE_NAME=sC;hM.SEMRESATTRS_K8S_NODE_UID=rC;hM.SEMRESATTRS_K8S_NAMESPACE_NAME=nC;hM.SEMRESATTRS_K8S_POD_UID=aC;hM.SEMRESATTRS_K8S_POD_NAME=tC;hM.SEMRESATTRS_K8S_CONTAINER_NAME=eC;hM.SEMRESATTRS_K8S_REPLICASET_UID=$k;hM.SEMRESATTRS_K8S_REPLICASET_NAME=Zk;hM.SEMRESATTRS_K8S_DEPLOYMENT_UID=Xk;hM.SEMRESATTRS_K8S_DEPLOYMENT_NAME=Qk;hM.SEMRESATTRS_K8S_STATEFULSET_UID=Jk;hM.SEMRESATTRS_K8S_STATEFULSET_NAME=Yk;hM.SEMRESATTRS_K8S_DAEMONSET_UID=Wk;hM.SEMRESATTRS_K8S_DAEMONSET_NAME=Kk;hM.SEMRESATTRS_K8S_JOB_UID=zk;hM.SEMRESATTRS_K8S_JOB_NAME=Hk;hM.SEMRESATTRS_K8S_CRONJOB_UID=Gk;hM.SEMRESATTRS_K8S_CRONJOB_NAME=Vk;hM.SEMRESATTRS_OS_TYPE=Fk;hM.SEMRESATTRS_OS_DESCRIPTION=Bk;hM.SEMRESATTRS_OS_NAME=wk;hM.SEMRESATTRS_OS_VERSION=jk;hM.SEMRESATTRS_PROCESS_PID=Uk;hM.SEMRESATTRS_PROCESS_EXECUTABLE_NAME=qk;hM.SEMRESATTRS_PROCESS_EXECUTABLE_PATH=Dk;hM.SEMRESATTRS_PROCESS_COMMAND=Pk;hM.SEMRESATTRS_PROCESS_COMMAND_LINE=Lk;hM.SEMRESATTRS_PROCESS_COMMAND_ARGS=Ok;hM.SEMRESATTRS_PROCESS_OWNER=Ck;hM.SEMRESATTRS_PROCESS_RUNTIME_NAME=kk;hM.SEMRESATTRS_PROCESS_RUNTIME_VERSION=Mk;hM.SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION=Rk;hM.SEMRESATTRS_SERVICE_NAME=fk;hM.SEMRESATTRS_SERVICE_NAMESPACE=Ak;hM.SEMRESATTRS_SERVICE_INSTANCE_ID=Nk;hM.SEMRESATTRS_SERVICE_VERSION=_k;hM.SEMRESATTRS_TELEMETRY_SDK_NAME=yk;hM.SEMRESATTRS_TELEMETRY_SDK_LANGUAGE=Ik;hM.SEMRESATTRS_TELEMETRY_SDK_VERSION=Tk;hM.SEMRESATTRS_TELEMETRY_AUTO_VERSION=Ek;hM.SEMRESATTRS_WEBENGINE_NAME=hk;hM.SEMRESATTRS_WEBENGINE_VERSION=bk;hM.SEMRESATTRS_WEBENGINE_DESCRIPTION=vk;hM.SemanticResourceAttributes=(0,k8.createConstMap)([GC,VC,FC,BC,wC,jC,UC,qC,DC,PC,LC,OC,CC,kC,MC,RC,fC,AC,NC,_C,yC,IC,TC,EC,hC,bC,vC,SC,xC,gC,mC,dC,uC,cC,lC,pC,iC,oC,sC,rC,nC,aC,tC,eC,$k,Zk,Xk,Qk,Jk,Yk,Wk,Kk,zk,Hk,Gk,Vk,Fk,Bk,wk,jk,Uk,qk,Dk,Pk,Lk,Ok,Ck,kk,Mk,Rk,fk,Ak,Nk,_k,yk,Ik,Tk,Ek,hk,bk,vk]);var Sk="alibaba_cloud",xk="aws",gk="azure",mk="gcp";hM.CLOUDPROVIDERVALUES_ALIBABA_CLOUD=Sk;hM.CLOUDPROVIDERVALUES_AWS=xk;hM.CLOUDPROVIDERVALUES_AZURE=gk;hM.CLOUDPROVIDERVALUES_GCP=mk;hM.CloudProviderValues=(0,k8.createConstMap)([Sk,xk,gk,mk]);var dk="alibaba_cloud_ecs",uk="alibaba_cloud_fc",ck="aws_ec2",lk="aws_ecs",pk="aws_eks",ik="aws_lambda",ok="aws_elastic_beanstalk",sk="azure_vm",rk="azure_container_instances",nk="azure_aks",ak="azure_functions",tk="azure_app_service",ek="gcp_compute_engine",$M="gcp_cloud_run",ZM="gcp_kubernetes_engine",XM="gcp_cloud_functions",QM="gcp_app_engine";hM.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS=dk;hM.CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC=uk;hM.CLOUDPLATFORMVALUES_AWS_EC2=ck;hM.CLOUDPLATFORMVALUES_AWS_ECS=lk;hM.CLOUDPLATFORMVALUES_AWS_EKS=pk;hM.CLOUDPLATFORMVALUES_AWS_LAMBDA=ik;hM.CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK=ok;hM.CLOUDPLATFORMVALUES_AZURE_VM=sk;hM.CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES=rk;hM.CLOUDPLATFORMVALUES_AZURE_AKS=nk;hM.CLOUDPLATFORMVALUES_AZURE_FUNCTIONS=ak;hM.CLOUDPLATFORMVALUES_AZURE_APP_SERVICE=tk;hM.CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE=ek;hM.CLOUDPLATFORMVALUES_GCP_CLOUD_RUN=$M;hM.CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE=ZM;hM.CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS=XM;hM.CLOUDPLATFORMVALUES_GCP_APP_ENGINE=QM;hM.CloudPlatformValues=(0,k8.createConstMap)([dk,uk,ck,lk,pk,ik,ok,sk,rk,nk,ak,tk,ek,$M,ZM,XM,QM]);var JM="ec2",YM="fargate";hM.AWSECSLAUNCHTYPEVALUES_EC2=JM;hM.AWSECSLAUNCHTYPEVALUES_FARGATE=YM;hM.AwsEcsLaunchtypeValues=(0,k8.createConstMap)([JM,YM]);var WM="amd64",KM="arm32",zM="arm64",HM="ia64",GM="ppc32",VM="ppc64",FM="x86";hM.HOSTARCHVALUES_AMD64=WM;hM.HOSTARCHVALUES_ARM32=KM;hM.HOSTARCHVALUES_ARM64=zM;hM.HOSTARCHVALUES_IA64=HM;hM.HOSTARCHVALUES_PPC32=GM;hM.HOSTARCHVALUES_PPC64=VM;hM.HOSTARCHVALUES_X86=FM;hM.HostArchValues=(0,k8.createConstMap)([WM,KM,zM,HM,GM,VM,FM]);var BM="windows",wM="linux",jM="darwin",UM="freebsd",qM="netbsd",DM="openbsd",PM="dragonflybsd",LM="hpux",OM="aix",CM="solaris",kM="z_os";hM.OSTYPEVALUES_WINDOWS=BM;hM.OSTYPEVALUES_LINUX=wM;hM.OSTYPEVALUES_DARWIN=jM;hM.OSTYPEVALUES_FREEBSD=UM;hM.OSTYPEVALUES_NETBSD=qM;hM.OSTYPEVALUES_OPENBSD=DM;hM.OSTYPEVALUES_DRAGONFLYBSD=PM;hM.OSTYPEVALUES_HPUX=LM;hM.OSTYPEVALUES_AIX=OM;hM.OSTYPEVALUES_SOLARIS=CM;hM.OSTYPEVALUES_Z_OS=kM;hM.OsTypeValues=(0,k8.createConstMap)([BM,wM,jM,UM,qM,DM,PM,LM,OM,CM,kM]);var MM="cpp",RM="dotnet",fM="erlang",AM="go",NM="java",_M="nodejs",yM="php",IM="python",TM="ruby",EM="webjs";hM.TELEMETRYSDKLANGUAGEVALUES_CPP=MM;hM.TELEMETRYSDKLANGUAGEVALUES_DOTNET=RM;hM.TELEMETRYSDKLANGUAGEVALUES_ERLANG=fM;hM.TELEMETRYSDKLANGUAGEVALUES_GO=AM;hM.TELEMETRYSDKLANGUAGEVALUES_JAVA=NM;hM.TELEMETRYSDKLANGUAGEVALUES_NODEJS=_M;hM.TELEMETRYSDKLANGUAGEVALUES_PHP=yM;hM.TELEMETRYSDKLANGUAGEVALUES_PYTHON=IM;hM.TELEMETRYSDKLANGUAGEVALUES_RUBY=TM;hM.TELEMETRYSDKLANGUAGEVALUES_WEBJS=EM;hM.TelemetrySdkLanguageValues=(0,k8.createConstMap)([MM,RM,fM,AM,NM,_M,yM,IM,TM,EM])});var gM=q((M8)=>{var te=M8&&M8.__createBinding||(Object.create?function($,Z,X,Q){if(Q===void 0)Q=X;var J=Object.getOwnPropertyDescriptor(Z,X);if(!J||("get"in J?!Z.__esModule:J.writable||J.configurable))J={enumerable:!0,get:function(){return Z[X]}};Object.defineProperty($,Q,J)}:function($,Z,X,Q){if(Q===void 0)Q=X;$[Q]=Z[X]}),ee=M8&&M8.__exportStar||function($,Z){for(var X in $)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Z,X))te(Z,$,X)};Object.defineProperty(M8,"__esModule",{value:!0});ee(xM(),M8)});var lM=q((mM)=>{Object.defineProperty(mM,"__esModule",{value:!0});mM.ATTR_EXCEPTION_TYPE=mM.ATTR_EXCEPTION_STACKTRACE=mM.ATTR_EXCEPTION_MESSAGE=mM.ATTR_EXCEPTION_ESCAPED=mM.ERROR_TYPE_VALUE_OTHER=mM.ATTR_ERROR_TYPE=mM.DOTNET_GC_HEAP_GENERATION_VALUE_POH=mM.DOTNET_GC_HEAP_GENERATION_VALUE_LOH=mM.DOTNET_GC_HEAP_GENERATION_VALUE_GEN2=mM.DOTNET_GC_HEAP_GENERATION_VALUE_GEN1=mM.DOTNET_GC_HEAP_GENERATION_VALUE_GEN0=mM.ATTR_DOTNET_GC_HEAP_GENERATION=mM.DB_SYSTEM_NAME_VALUE_POSTGRESQL=mM.DB_SYSTEM_NAME_VALUE_MYSQL=mM.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER=mM.DB_SYSTEM_NAME_VALUE_MARIADB=mM.ATTR_DB_SYSTEM_NAME=mM.ATTR_DB_STORED_PROCEDURE_NAME=mM.ATTR_DB_RESPONSE_STATUS_CODE=mM.ATTR_DB_QUERY_TEXT=mM.ATTR_DB_QUERY_SUMMARY=mM.ATTR_DB_OPERATION_NAME=mM.ATTR_DB_OPERATION_BATCH_SIZE=mM.ATTR_DB_NAMESPACE=mM.ATTR_DB_COLLECTION_NAME=mM.ATTR_CODE_STACKTRACE=mM.ATTR_CODE_LINE_NUMBER=mM.ATTR_CODE_FUNCTION_NAME=mM.ATTR_CODE_FILE_PATH=mM.ATTR_CODE_COLUMN_NUMBER=mM.ATTR_CLIENT_PORT=mM.ATTR_CLIENT_ADDRESS=mM.ATTR_ASPNETCORE_USER_IS_AUTHENTICATED=mM.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS=mM.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE=mM.ATTR_ASPNETCORE_ROUTING_MATCH_STATUS=mM.ATTR_ASPNETCORE_ROUTING_IS_FALLBACK=mM.ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED=mM.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED=mM.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER=mM.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER=mM.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED=mM.ATTR_ASPNETCORE_RATE_LIMITING_RESULT=mM.ATTR_ASPNETCORE_RATE_LIMITING_POLICY=mM.ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE=mM.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED=mM.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED=mM.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED=mM.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED=mM.ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT=void 0;mM.OTEL_STATUS_CODE_VALUE_ERROR=mM.ATTR_OTEL_STATUS_CODE=mM.ATTR_OTEL_SCOPE_VERSION=mM.ATTR_OTEL_SCOPE_NAME=mM.NETWORK_TYPE_VALUE_IPV6=mM.NETWORK_TYPE_VALUE_IPV4=mM.ATTR_NETWORK_TYPE=mM.NETWORK_TRANSPORT_VALUE_UNIX=mM.NETWORK_TRANSPORT_VALUE_UDP=mM.NETWORK_TRANSPORT_VALUE_TCP=mM.NETWORK_TRANSPORT_VALUE_QUIC=mM.NETWORK_TRANSPORT_VALUE_PIPE=mM.ATTR_NETWORK_TRANSPORT=mM.ATTR_NETWORK_PROTOCOL_VERSION=mM.ATTR_NETWORK_PROTOCOL_NAME=mM.ATTR_NETWORK_PEER_PORT=mM.ATTR_NETWORK_PEER_ADDRESS=mM.ATTR_NETWORK_LOCAL_PORT=mM.ATTR_NETWORK_LOCAL_ADDRESS=mM.JVM_THREAD_STATE_VALUE_WAITING=mM.JVM_THREAD_STATE_VALUE_TIMED_WAITING=mM.JVM_THREAD_STATE_VALUE_TERMINATED=mM.JVM_THREAD_STATE_VALUE_RUNNABLE=mM.JVM_THREAD_STATE_VALUE_NEW=mM.JVM_THREAD_STATE_VALUE_BLOCKED=mM.ATTR_JVM_THREAD_STATE=mM.ATTR_JVM_THREAD_DAEMON=mM.JVM_MEMORY_TYPE_VALUE_NON_HEAP=mM.JVM_MEMORY_TYPE_VALUE_HEAP=mM.ATTR_JVM_MEMORY_TYPE=mM.ATTR_JVM_MEMORY_POOL_NAME=mM.ATTR_JVM_GC_NAME=mM.ATTR_JVM_GC_ACTION=mM.ATTR_HTTP_ROUTE=mM.ATTR_HTTP_RESPONSE_STATUS_CODE=mM.ATTR_HTTP_RESPONSE_HEADER=mM.ATTR_HTTP_REQUEST_RESEND_COUNT=mM.ATTR_HTTP_REQUEST_METHOD_ORIGINAL=mM.HTTP_REQUEST_METHOD_VALUE_TRACE=mM.HTTP_REQUEST_METHOD_VALUE_PUT=mM.HTTP_REQUEST_METHOD_VALUE_POST=mM.HTTP_REQUEST_METHOD_VALUE_PATCH=mM.HTTP_REQUEST_METHOD_VALUE_OPTIONS=mM.HTTP_REQUEST_METHOD_VALUE_HEAD=mM.HTTP_REQUEST_METHOD_VALUE_GET=mM.HTTP_REQUEST_METHOD_VALUE_DELETE=mM.HTTP_REQUEST_METHOD_VALUE_CONNECT=mM.HTTP_REQUEST_METHOD_VALUE_OTHER=mM.ATTR_HTTP_REQUEST_METHOD=mM.ATTR_HTTP_REQUEST_HEADER=void 0;mM.ATTR_USER_AGENT_ORIGINAL=mM.ATTR_URL_SCHEME=mM.ATTR_URL_QUERY=mM.ATTR_URL_PATH=mM.ATTR_URL_FULL=mM.ATTR_URL_FRAGMENT=mM.ATTR_TELEMETRY_SDK_VERSION=mM.ATTR_TELEMETRY_SDK_NAME=mM.TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS=mM.TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT=mM.TELEMETRY_SDK_LANGUAGE_VALUE_RUST=mM.TELEMETRY_SDK_LANGUAGE_VALUE_RUBY=mM.TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON=mM.TELEMETRY_SDK_LANGUAGE_VALUE_PHP=mM.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS=mM.TELEMETRY_SDK_LANGUAGE_VALUE_JAVA=mM.TELEMETRY_SDK_LANGUAGE_VALUE_GO=mM.TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG=mM.TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET=mM.TELEMETRY_SDK_LANGUAGE_VALUE_CPP=mM.ATTR_TELEMETRY_SDK_LANGUAGE=mM.SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS=mM.SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS=mM.SIGNALR_TRANSPORT_VALUE_LONG_POLLING=mM.ATTR_SIGNALR_TRANSPORT=mM.SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT=mM.SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE=mM.SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN=mM.ATTR_SIGNALR_CONNECTION_STATUS=mM.ATTR_SERVICE_VERSION=mM.ATTR_SERVICE_NAMESPACE=mM.ATTR_SERVICE_NAME=mM.ATTR_SERVICE_INSTANCE_ID=mM.ATTR_SERVER_PORT=mM.ATTR_SERVER_ADDRESS=mM.ATTR_OTEL_STATUS_DESCRIPTION=mM.OTEL_STATUS_CODE_VALUE_OK=void 0;mM.ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT="aspnetcore.diagnostics.exception.result";mM.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED="aborted";mM.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED="handled";mM.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED="skipped";mM.ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED="unhandled";mM.ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE="aspnetcore.diagnostics.handler.type";mM.ATTR_ASPNETCORE_RATE_LIMITING_POLICY="aspnetcore.rate_limiting.policy";mM.ATTR_ASPNETCORE_RATE_LIMITING_RESULT="aspnetcore.rate_limiting.result";mM.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED="acquired";mM.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER="endpoint_limiter";mM.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER="global_limiter";mM.ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED="request_canceled";mM.ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED="aspnetcore.request.is_unhandled";mM.ATTR_ASPNETCORE_ROUTING_IS_FALLBACK="aspnetcore.routing.is_fallback";mM.ATTR_ASPNETCORE_ROUTING_MATCH_STATUS="aspnetcore.routing.match_status";mM.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE="failure";mM.ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS="success";mM.ATTR_ASPNETCORE_USER_IS_AUTHENTICATED="aspnetcore.user.is_authenticated";mM.ATTR_CLIENT_ADDRESS="client.address";mM.ATTR_CLIENT_PORT="client.port";mM.ATTR_CODE_COLUMN_NUMBER="code.column.number";mM.ATTR_CODE_FILE_PATH="code.file.path";mM.ATTR_CODE_FUNCTION_NAME="code.function.name";mM.ATTR_CODE_LINE_NUMBER="code.line.number";mM.ATTR_CODE_STACKTRACE="code.stacktrace";mM.ATTR_DB_COLLECTION_NAME="db.collection.name";mM.ATTR_DB_NAMESPACE="db.namespace";mM.ATTR_DB_OPERATION_BATCH_SIZE="db.operation.batch.size";mM.ATTR_DB_OPERATION_NAME="db.operation.name";mM.ATTR_DB_QUERY_SUMMARY="db.query.summary";mM.ATTR_DB_QUERY_TEXT="db.query.text";mM.ATTR_DB_RESPONSE_STATUS_CODE="db.response.status_code";mM.ATTR_DB_STORED_PROCEDURE_NAME="db.stored_procedure.name";mM.ATTR_DB_SYSTEM_NAME="db.system.name";mM.DB_SYSTEM_NAME_VALUE_MARIADB="mariadb";mM.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER="microsoft.sql_server";mM.DB_SYSTEM_NAME_VALUE_MYSQL="mysql";mM.DB_SYSTEM_NAME_VALUE_POSTGRESQL="postgresql";mM.ATTR_DOTNET_GC_HEAP_GENERATION="dotnet.gc.heap.generation";mM.DOTNET_GC_HEAP_GENERATION_VALUE_GEN0="gen0";mM.DOTNET_GC_HEAP_GENERATION_VALUE_GEN1="gen1";mM.DOTNET_GC_HEAP_GENERATION_VALUE_GEN2="gen2";mM.DOTNET_GC_HEAP_GENERATION_VALUE_LOH="loh";mM.DOTNET_GC_HEAP_GENERATION_VALUE_POH="poh";mM.ATTR_ERROR_TYPE="error.type";mM.ERROR_TYPE_VALUE_OTHER="_OTHER";mM.ATTR_EXCEPTION_ESCAPED="exception.escaped";mM.ATTR_EXCEPTION_MESSAGE="exception.message";mM.ATTR_EXCEPTION_STACKTRACE="exception.stacktrace";mM.ATTR_EXCEPTION_TYPE="exception.type";var $00=($)=>`http.request.header.${$}`;mM.ATTR_HTTP_REQUEST_HEADER=$00;mM.ATTR_HTTP_REQUEST_METHOD="http.request.method";mM.HTTP_REQUEST_METHOD_VALUE_OTHER="_OTHER";mM.HTTP_REQUEST_METHOD_VALUE_CONNECT="CONNECT";mM.HTTP_REQUEST_METHOD_VALUE_DELETE="DELETE";mM.HTTP_REQUEST_METHOD_VALUE_GET="GET";mM.HTTP_REQUEST_METHOD_VALUE_HEAD="HEAD";mM.HTTP_REQUEST_METHOD_VALUE_OPTIONS="OPTIONS";mM.HTTP_REQUEST_METHOD_VALUE_PATCH="PATCH";mM.HTTP_REQUEST_METHOD_VALUE_POST="POST";mM.HTTP_REQUEST_METHOD_VALUE_PUT="PUT";mM.HTTP_REQUEST_METHOD_VALUE_TRACE="TRACE";mM.ATTR_HTTP_REQUEST_METHOD_ORIGINAL="http.request.method_original";mM.ATTR_HTTP_REQUEST_RESEND_COUNT="http.request.resend_count";var Z00=($)=>`http.response.header.${$}`;mM.ATTR_HTTP_RESPONSE_HEADER=Z00;mM.ATTR_HTTP_RESPONSE_STATUS_CODE="http.response.status_code";mM.ATTR_HTTP_ROUTE="http.route";mM.ATTR_JVM_GC_ACTION="jvm.gc.action";mM.ATTR_JVM_GC_NAME="jvm.gc.name";mM.ATTR_JVM_MEMORY_POOL_NAME="jvm.memory.pool.name";mM.ATTR_JVM_MEMORY_TYPE="jvm.memory.type";mM.JVM_MEMORY_TYPE_VALUE_HEAP="heap";mM.JVM_MEMORY_TYPE_VALUE_NON_HEAP="non_heap";mM.ATTR_JVM_THREAD_DAEMON="jvm.thread.daemon";mM.ATTR_JVM_THREAD_STATE="jvm.thread.state";mM.JVM_THREAD_STATE_VALUE_BLOCKED="blocked";mM.JVM_THREAD_STATE_VALUE_NEW="new";mM.JVM_THREAD_STATE_VALUE_RUNNABLE="runnable";mM.JVM_THREAD_STATE_VALUE_TERMINATED="terminated";mM.JVM_THREAD_STATE_VALUE_TIMED_WAITING="timed_waiting";mM.JVM_THREAD_STATE_VALUE_WAITING="waiting";mM.ATTR_NETWORK_LOCAL_ADDRESS="network.local.address";mM.ATTR_NETWORK_LOCAL_PORT="network.local.port";mM.ATTR_NETWORK_PEER_ADDRESS="network.peer.address";mM.ATTR_NETWORK_PEER_PORT="network.peer.port";mM.ATTR_NETWORK_PROTOCOL_NAME="network.protocol.name";mM.ATTR_NETWORK_PROTOCOL_VERSION="network.protocol.version";mM.ATTR_NETWORK_TRANSPORT="network.transport";mM.NETWORK_TRANSPORT_VALUE_PIPE="pipe";mM.NETWORK_TRANSPORT_VALUE_QUIC="quic";mM.NETWORK_TRANSPORT_VALUE_TCP="tcp";mM.NETWORK_TRANSPORT_VALUE_UDP="udp";mM.NETWORK_TRANSPORT_VALUE_UNIX="unix";mM.ATTR_NETWORK_TYPE="network.type";mM.NETWORK_TYPE_VALUE_IPV4="ipv4";mM.NETWORK_TYPE_VALUE_IPV6="ipv6";mM.ATTR_OTEL_SCOPE_NAME="otel.scope.name";mM.ATTR_OTEL_SCOPE_VERSION="otel.scope.version";mM.ATTR_OTEL_STATUS_CODE="otel.status_code";mM.OTEL_STATUS_CODE_VALUE_ERROR="ERROR";mM.OTEL_STATUS_CODE_VALUE_OK="OK";mM.ATTR_OTEL_STATUS_DESCRIPTION="otel.status_description";mM.ATTR_SERVER_ADDRESS="server.address";mM.ATTR_SERVER_PORT="server.port";mM.ATTR_SERVICE_INSTANCE_ID="service.instance.id";mM.ATTR_SERVICE_NAME="service.name";mM.ATTR_SERVICE_NAMESPACE="service.namespace";mM.ATTR_SERVICE_VERSION="service.version";mM.ATTR_SIGNALR_CONNECTION_STATUS="signalr.connection.status";mM.SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN="app_shutdown";mM.SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE="normal_closure";mM.SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT="timeout";mM.ATTR_SIGNALR_TRANSPORT="signalr.transport";mM.SIGNALR_TRANSPORT_VALUE_LONG_POLLING="long_polling";mM.SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS="server_sent_events";mM.SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS="web_sockets";mM.ATTR_TELEMETRY_SDK_LANGUAGE="telemetry.sdk.language";mM.TELEMETRY_SDK_LANGUAGE_VALUE_CPP="cpp";mM.TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET="dotnet";mM.TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG="erlang";mM.TELEMETRY_SDK_LANGUAGE_VALUE_GO="go";mM.TELEMETRY_SDK_LANGUAGE_VALUE_JAVA="java";mM.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS="nodejs";mM.TELEMETRY_SDK_LANGUAGE_VALUE_PHP="php";mM.TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON="python";mM.TELEMETRY_SDK_LANGUAGE_VALUE_RUBY="ruby";mM.TELEMETRY_SDK_LANGUAGE_VALUE_RUST="rust";mM.TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT="swift";mM.TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS="webjs";mM.ATTR_TELEMETRY_SDK_NAME="telemetry.sdk.name";mM.ATTR_TELEMETRY_SDK_VERSION="telemetry.sdk.version";mM.ATTR_URL_FRAGMENT="url.fragment";mM.ATTR_URL_FULL="url.full";mM.ATTR_URL_PATH="url.path";mM.ATTR_URL_QUERY="url.query";mM.ATTR_URL_SCHEME="url.scheme";mM.ATTR_USER_AGENT_ORIGINAL="user_agent.original"});var sM=q((pM)=>{Object.defineProperty(pM,"__esModule",{value:!0});pM.METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS=pM.METRIC_KESTREL_UPGRADED_CONNECTIONS=pM.METRIC_KESTREL_TLS_HANDSHAKE_DURATION=pM.METRIC_KESTREL_REJECTED_CONNECTIONS=pM.METRIC_KESTREL_QUEUED_REQUESTS=pM.METRIC_KESTREL_QUEUED_CONNECTIONS=pM.METRIC_KESTREL_CONNECTION_DURATION=pM.METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES=pM.METRIC_KESTREL_ACTIVE_CONNECTIONS=pM.METRIC_JVM_THREAD_COUNT=pM.METRIC_JVM_MEMORY_USED_AFTER_LAST_GC=pM.METRIC_JVM_MEMORY_USED=pM.METRIC_JVM_MEMORY_LIMIT=pM.METRIC_JVM_MEMORY_COMMITTED=pM.METRIC_JVM_GC_DURATION=pM.METRIC_JVM_CPU_TIME=pM.METRIC_JVM_CPU_RECENT_UTILIZATION=pM.METRIC_JVM_CPU_COUNT=pM.METRIC_JVM_CLASS_UNLOADED=pM.METRIC_JVM_CLASS_LOADED=pM.METRIC_JVM_CLASS_COUNT=pM.METRIC_HTTP_SERVER_REQUEST_DURATION=pM.METRIC_HTTP_CLIENT_REQUEST_DURATION=pM.METRIC_DOTNET_TIMER_COUNT=pM.METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT=pM.METRIC_DOTNET_THREAD_POOL_THREAD_COUNT=pM.METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH=pM.METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET=pM.METRIC_DOTNET_PROCESS_CPU_TIME=pM.METRIC_DOTNET_PROCESS_CPU_COUNT=pM.METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS=pM.METRIC_DOTNET_JIT_COMPILED_METHODS=pM.METRIC_DOTNET_JIT_COMPILED_IL_SIZE=pM.METRIC_DOTNET_JIT_COMPILATION_TIME=pM.METRIC_DOTNET_GC_PAUSE_TIME=pM.METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE=pM.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE=pM.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE=pM.METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED=pM.METRIC_DOTNET_GC_COLLECTIONS=pM.METRIC_DOTNET_EXCEPTIONS=pM.METRIC_DOTNET_ASSEMBLY_COUNT=pM.METRIC_DB_CLIENT_OPERATION_DURATION=pM.METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS=pM.METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS=pM.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION=pM.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE=pM.METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS=pM.METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES=pM.METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS=void 0;pM.METRIC_SIGNALR_SERVER_CONNECTION_DURATION=void 0;pM.METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS="aspnetcore.diagnostics.exceptions";pM.METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES="aspnetcore.rate_limiting.active_request_leases";pM.METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS="aspnetcore.rate_limiting.queued_requests";pM.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE="aspnetcore.rate_limiting.request.time_in_queue";pM.METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION="aspnetcore.rate_limiting.request_lease.duration";pM.METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS="aspnetcore.rate_limiting.requests";pM.METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS="aspnetcore.routing.match_attempts";pM.METRIC_DB_CLIENT_OPERATION_DURATION="db.client.operation.duration";pM.METRIC_DOTNET_ASSEMBLY_COUNT="dotnet.assembly.count";pM.METRIC_DOTNET_EXCEPTIONS="dotnet.exceptions";pM.METRIC_DOTNET_GC_COLLECTIONS="dotnet.gc.collections";pM.METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED="dotnet.gc.heap.total_allocated";pM.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE="dotnet.gc.last_collection.heap.fragmentation.size";pM.METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE="dotnet.gc.last_collection.heap.size";pM.METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE="dotnet.gc.last_collection.memory.committed_size";pM.METRIC_DOTNET_GC_PAUSE_TIME="dotnet.gc.pause.time";pM.METRIC_DOTNET_JIT_COMPILATION_TIME="dotnet.jit.compilation.time";pM.METRIC_DOTNET_JIT_COMPILED_IL_SIZE="dotnet.jit.compiled_il.size";pM.METRIC_DOTNET_JIT_COMPILED_METHODS="dotnet.jit.compiled_methods";pM.METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS="dotnet.monitor.lock_contentions";pM.METRIC_DOTNET_PROCESS_CPU_COUNT="dotnet.process.cpu.count";pM.METRIC_DOTNET_PROCESS_CPU_TIME="dotnet.process.cpu.time";pM.METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET="dotnet.process.memory.working_set";pM.METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH="dotnet.thread_pool.queue.length";pM.METRIC_DOTNET_THREAD_POOL_THREAD_COUNT="dotnet.thread_pool.thread.count";pM.METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT="dotnet.thread_pool.work_item.count";pM.METRIC_DOTNET_TIMER_COUNT="dotnet.timer.count";pM.METRIC_HTTP_CLIENT_REQUEST_DURATION="http.client.request.duration";pM.METRIC_HTTP_SERVER_REQUEST_DURATION="http.server.request.duration";pM.METRIC_JVM_CLASS_COUNT="jvm.class.count";pM.METRIC_JVM_CLASS_LOADED="jvm.class.loaded";pM.METRIC_JVM_CLASS_UNLOADED="jvm.class.unloaded";pM.METRIC_JVM_CPU_COUNT="jvm.cpu.count";pM.METRIC_JVM_CPU_RECENT_UTILIZATION="jvm.cpu.recent_utilization";pM.METRIC_JVM_CPU_TIME="jvm.cpu.time";pM.METRIC_JVM_GC_DURATION="jvm.gc.duration";pM.METRIC_JVM_MEMORY_COMMITTED="jvm.memory.committed";pM.METRIC_JVM_MEMORY_LIMIT="jvm.memory.limit";pM.METRIC_JVM_MEMORY_USED="jvm.memory.used";pM.METRIC_JVM_MEMORY_USED_AFTER_LAST_GC="jvm.memory.used_after_last_gc";pM.METRIC_JVM_THREAD_COUNT="jvm.thread.count";pM.METRIC_KESTREL_ACTIVE_CONNECTIONS="kestrel.active_connections";pM.METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES="kestrel.active_tls_handshakes";pM.METRIC_KESTREL_CONNECTION_DURATION="kestrel.connection.duration";pM.METRIC_KESTREL_QUEUED_CONNECTIONS="kestrel.queued_connections";pM.METRIC_KESTREL_QUEUED_REQUESTS="kestrel.queued_requests";pM.METRIC_KESTREL_REJECTED_CONNECTIONS="kestrel.rejected_connections";pM.METRIC_KESTREL_TLS_HANDSHAKE_DURATION="kestrel.tls_handshake.duration";pM.METRIC_KESTREL_UPGRADED_CONNECTIONS="kestrel.upgraded_connections";pM.METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS="signalr.server.active_connections";pM.METRIC_SIGNALR_SERVER_CONNECTION_DURATION="signalr.server.connection.duration"});var aM=q((rM)=>{Object.defineProperty(rM,"__esModule",{value:!0});rM.EVENT_EXCEPTION=void 0;rM.EVENT_EXCEPTION="exception"});var P1=q((o1)=>{var k$0=o1&&o1.__createBinding||(Object.create?function($,Z,X,Q){if(Q===void 0)Q=X;var J=Object.getOwnPropertyDescriptor(Z,X);if(!J||("get"in J?!Z.__esModule:J.writable||J.configurable))J={enumerable:!0,get:function(){return Z[X]}};Object.defineProperty($,Q,J)}:function($,Z,X,Q){if(Q===void 0)Q=X;$[Q]=Z[X]}),bZ=o1&&o1.__exportStar||function($,Z){for(var X in $)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Z,X))k$0(Z,$,X)};Object.defineProperty(o1,"__esModule",{value:!0});bZ(HC(),o1);bZ(gM(),o1);bZ(lM(),o1);bZ(sM(),o1);bZ(aM(),o1)});var $R=q((tM)=>{Object.defineProperty(tM,"__esModule",{value:!0});tM.ATTR_PROCESS_RUNTIME_NAME=void 0;tM.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var QR=q((ZR)=>{Object.defineProperty(ZR,"__esModule",{value:!0});ZR.SDK_INFO=void 0;var M$0=Hq(),g4=P1(),R$0=$R();ZR.SDK_INFO={[g4.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[R$0.ATTR_PROCESS_RUNTIME_NAME]:"node",[g4.ATTR_TELEMETRY_SDK_LANGUAGE]:g4.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[g4.ATTR_TELEMETRY_SDK_VERSION]:M$0.VERSION}});var YR=q((k$)=>{Object.defineProperty(k$,"__esModule",{value:!0});k$.otperformance=k$.SDK_INFO=k$._globalThis=k$.getStringListFromEnv=k$.getNumberFromEnv=k$.getBooleanFromEnv=k$.getStringFromEnv=void 0;var m4=Qq();Object.defineProperty(k$,"getStringFromEnv",{enumerable:!0,get:function(){return m4.getStringFromEnv}});Object.defineProperty(k$,"getBooleanFromEnv",{enumerable:!0,get:function(){return m4.getBooleanFromEnv}});Object.defineProperty(k$,"getNumberFromEnv",{enumerable:!0,get:function(){return m4.getNumberFromEnv}});Object.defineProperty(k$,"getStringListFromEnv",{enumerable:!0,get:function(){return m4.getStringListFromEnv}});var f$0=Wq();Object.defineProperty(k$,"_globalThis",{enumerable:!0,get:function(){return f$0._globalThis}});var A$0=QR();Object.defineProperty(k$,"SDK_INFO",{enumerable:!0,get:function(){return A$0.SDK_INFO}});k$.otperformance=performance});var eW=q((S6)=>{Object.defineProperty(S6,"__esModule",{value:!0});S6.getStringListFromEnv=S6.getNumberFromEnv=S6.getStringFromEnv=S6.getBooleanFromEnv=S6.otperformance=S6._globalThis=S6.SDK_INFO=void 0;var R8=YR();Object.defineProperty(S6,"SDK_INFO",{enumerable:!0,get:function(){return R8.SDK_INFO}});Object.defineProperty(S6,"_globalThis",{enumerable:!0,get:function(){return R8._globalThis}});Object.defineProperty(S6,"otperformance",{enumerable:!0,get:function(){return R8.otperformance}});Object.defineProperty(S6,"getBooleanFromEnv",{enumerable:!0,get:function(){return R8.getBooleanFromEnv}});Object.defineProperty(S6,"getStringFromEnv",{enumerable:!0,get:function(){return R8.getStringFromEnv}});Object.defineProperty(S6,"getNumberFromEnv",{enumerable:!0,get:function(){return R8.getNumberFromEnv}});Object.defineProperty(S6,"getStringListFromEnv",{enumerable:!0,get:function(){return R8.getStringListFromEnv}})});var VR=q((HR)=>{Object.defineProperty(HR,"__esModule",{value:!0});HR.addHrTimes=HR.isTimeInput=HR.isTimeInputHrTime=HR.hrTimeToMicroseconds=HR.hrTimeToMilliseconds=HR.hrTimeToNanoseconds=HR.hrTimeToTimeStamp=HR.hrTimeDuration=HR.timeInputToHrTime=HR.hrTime=HR.getTimeOrigin=HR.millisToHrTime=void 0;var d4=eW(),WR=9,_$0=6,y$0=Math.pow(10,_$0),u4=Math.pow(10,WR);function vZ($){let Z=$/1000,X=Math.trunc(Z),Q=Math.round($%1000*y$0);return[X,Q]}HR.millisToHrTime=vZ;function I$0(){return d4.otperformance.timeOrigin}HR.getTimeOrigin=I$0;function KR($){let Z=vZ(d4.otperformance.timeOrigin),X=vZ(typeof $==="number"?$:d4.otperformance.now());return zR(Z,X)}HR.hrTime=KR;function T$0($){if($K($))return $;else if(typeof $==="number")if($=u4)X[1]-=u4,X[0]+=1;return X}HR.addHrTimes=zR});var wR=q((FR)=>{Object.defineProperty(FR,"__esModule",{value:!0});FR.unrefTimer=void 0;function n$0($){if(typeof $!=="number")$.unref()}FR.unrefTimer=n$0});var UR=q((jR)=>{Object.defineProperty(jR,"__esModule",{value:!0});jR.ExportResultCode=void 0;var a$0;(function($){$[$.SUCCESS=0]="SUCCESS",$[$.FAILED=1]="FAILED"})(a$0=jR.ExportResultCode||(jR.ExportResultCode={}))});var OR=q((PR)=>{Object.defineProperty(PR,"__esModule",{value:!0});PR.CompositePropagator=void 0;var qR=S();class DR{_propagators;_fields;constructor($={}){this._propagators=$.propagators??[],this._fields=Array.from(new Set(this._propagators.map((Z)=>typeof Z.fields==="function"?Z.fields():[]).reduce((Z,X)=>Z.concat(X),[])))}inject($,Z,X){for(let Q of this._propagators)try{Q.inject($,Z,X)}catch(J){qR.diag.warn(`Failed to inject with ${Q.constructor.name}. Err: ${J.message}`)}}extract($,Z,X){return this._propagators.reduce((Q,J)=>{try{return J.extract(Q,Z,X)}catch(Y){qR.diag.warn(`Failed to extract with ${J.constructor.name}. Err: ${Y.message}`)}return Q},$)}fields(){return this._fields.slice()}}PR.CompositePropagator=DR});var MR=q((CR)=>{Object.defineProperty(CR,"__esModule",{value:!0});CR.validateValue=CR.validateKey=void 0;var XK="[_0-9a-z-*/]",t$0=`[a-z]${XK}{0,255}`,e$0=`[a-z0-9]${XK}{0,240}@[a-z]${XK}{0,13}`,$80=new RegExp(`^(?:${t$0}|${e$0})$`),Z80=/^[ -~]{0,255}[!-~]$/,X80=/,|=/;function Q80($){return $80.test($)}CR.validateKey=Q80;function J80($){return Z80.test($)&&!X80.test($)}CR.validateValue=J80});var JK=q((_R)=>{Object.defineProperty(_R,"__esModule",{value:!0});_R.TraceState=void 0;var RR=MR(),fR=32,W80=512,AR=",",NR="=";class QK{_internalState=new Map;constructor($){if($)this._parse($)}set($,Z){let X=this._clone();if(X._internalState.has($))X._internalState.delete($);return X._internalState.set($,Z),X}unset($){let Z=this._clone();return Z._internalState.delete($),Z}get($){return this._internalState.get($)}serialize(){return this._keys().reduce(($,Z)=>{return $.push(Z+NR+this.get(Z)),$},[]).join(AR)}_parse($){if($.length>W80)return;if(this._internalState=$.split(AR).reverse().reduce((Z,X)=>{let Q=X.trim(),J=Q.indexOf(NR);if(J!==-1){let Y=Q.slice(0,J),W=Q.slice(J+1,X.length);if((0,RR.validateKey)(Y)&&(0,RR.validateValue)(W))Z.set(Y,W)}return Z},new Map),this._internalState.size>fR)this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,fR))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let $=new QK;return $._internalState=new Map(this._internalState),$}}_R.TraceState=QK});var bR=q((ER)=>{Object.defineProperty(ER,"__esModule",{value:!0});ER.W3CTraceContextPropagator=ER.parseTraceParent=ER.TRACE_STATE_HEADER=ER.TRACE_PARENT_HEADER=void 0;var c4=S(),K80=hZ(),z80=JK();ER.TRACE_PARENT_HEADER="traceparent";ER.TRACE_STATE_HEADER="tracestate";var H80="00",G80="(?!ff)[\\da-f]{2}",V80="(?![0]{32})[\\da-f]{32}",F80="(?![0]{16})[\\da-f]{16}",B80="[\\da-f]{2}",w80=new RegExp(`^\\s?(${G80})-(${V80})-(${F80})-(${B80})(-.*)?\\s?$`);function IR($){let Z=w80.exec($);if(!Z)return null;if(Z[1]==="00"&&Z[5])return null;return{traceId:Z[2],spanId:Z[3],traceFlags:parseInt(Z[4],16)}}ER.parseTraceParent=IR;class TR{inject($,Z,X){let Q=c4.trace.getSpanContext($);if(!Q||(0,K80.isTracingSuppressed)($)||!(0,c4.isSpanContextValid)(Q))return;let J=`${H80}-${Q.traceId}-${Q.spanId}-0${Number(Q.traceFlags||c4.TraceFlags.NONE).toString(16)}`;if(X.set(Z,ER.TRACE_PARENT_HEADER,J),Q.traceState)X.set(Z,ER.TRACE_STATE_HEADER,Q.traceState.serialize())}extract($,Z,X){let Q=X.get(Z,ER.TRACE_PARENT_HEADER);if(!Q)return $;let J=Array.isArray(Q)?Q[0]:Q;if(typeof J!=="string")return $;let Y=IR(J);if(!Y)return $;Y.isRemote=!0;let W=X.get(Z,ER.TRACE_STATE_HEADER);if(W){let K=Array.isArray(W)?W.join(","):W;Y.traceState=new z80.TraceState(typeof K==="string"?K:void 0)}return c4.trace.setSpanContext($,Y)}fields(){return[ER.TRACE_PARENT_HEADER,ER.TRACE_STATE_HEADER]}}ER.W3CTraceContextPropagator=TR});var gR=q((SR)=>{Object.defineProperty(SR,"__esModule",{value:!0});SR.getRPCMetadata=SR.deleteRPCMetadata=SR.setRPCMetadata=SR.RPCType=void 0;var U80=S(),YK=(0,U80.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),q80;(function($){$.HTTP="http"})(q80=SR.RPCType||(SR.RPCType={}));function D80($,Z){return $.setValue(YK,Z)}SR.setRPCMetadata=D80;function P80($){return $.deleteValue(YK)}SR.deleteRPCMetadata=P80;function L80($){return $.getValue(YK)}SR.getRPCMetadata=L80});var iR=q((lR)=>{Object.defineProperty(lR,"__esModule",{value:!0});lR.isPlainObject=void 0;var k80="[object Object]",M80="[object Null]",R80="[object Undefined]",f80=Function.prototype,mR=f80.toString,A80=mR.call(Object),N80=Object.getPrototypeOf,dR=Object.prototype,uR=dR.hasOwnProperty,f8=Symbol?Symbol.toStringTag:void 0,cR=dR.toString;function _80($){if(!y80($)||I80($)!==k80)return!1;let Z=N80($);if(Z===null)return!0;let X=uR.call(Z,"constructor")&&Z.constructor;return typeof X=="function"&&X instanceof X&&mR.call(X)===A80}lR.isPlainObject=_80;function y80($){return $!=null&&typeof $=="object"}function I80($){if($==null)return $===void 0?R80:M80;return f8&&f8 in Object($)?T80($):E80($)}function T80($){let Z=uR.call($,f8),X=$[f8],Q=!1;try{$[f8]=void 0,Q=!0}catch{}let J=cR.call($);if(Q)if(Z)$[f8]=X;else delete $[f8];return J}function E80($){return cR.call($)}});var eR=q((aR)=>{Object.defineProperty(aR,"__esModule",{value:!0});aR.merge=void 0;var oR=iR(),h80=20;function b80(...$){let Z=$.shift(),X=new WeakMap;while($.length>0)Z=rR(Z,$.shift(),0,X);return Z}aR.merge=b80;function WK($){if(o4($))return $.slice();return $}function rR($,Z,X=0,Q){let J;if(X>h80)return;if(X++,i4($)||i4(Z)||nR(Z))J=WK(Z);else if(o4($)){if(J=$.slice(),o4(Z))for(let Y=0,W=Z.length;Y"u")delete J[z];else J[z]=H;else{let G=J[z],V=H;if(sR($,z,Q)||sR(Z,z,Q))delete J[z];else{if(SZ(G)&&SZ(V)){let F=Q.get(G)||[],B=Q.get(V)||[];F.push({obj:$,key:z}),B.push({obj:Z,key:z}),Q.set(G,F),Q.set(V,B)}J[z]=rR(J[z],H,X,Q)}}}}else J=Z;return J}function sR($,Z,X){let Q=X.get($[Z])||[];for(let J=0,Y=Q.length;J"u"||$ instanceof Date||$ instanceof RegExp||$===null}function v80($,Z){if(!(0,oR.isPlainObject)($)||!(0,oR.isPlainObject)(Z))return!1;return!0}});var Xf=q(($f)=>{Object.defineProperty($f,"__esModule",{value:!0});$f.callWithTimeout=$f.TimeoutError=void 0;class s4 extends Error{constructor($){super($);Object.setPrototypeOf(this,s4.prototype)}}$f.TimeoutError=s4;function S80($,Z){let X,Q=new Promise(function(Y,W){X=setTimeout(function(){W(new s4("Operation timed out."))},Z)});return Promise.race([$,Q]).then((J)=>{return clearTimeout(X),J},(J)=>{throw clearTimeout(X),J})}$f.callWithTimeout=S80});var Wf=q((Jf)=>{Object.defineProperty(Jf,"__esModule",{value:!0});Jf.isUrlIgnored=Jf.urlMatches=void 0;function Qf($,Z){if(typeof Z==="string")return $===Z;else return!!$.match(Z)}Jf.urlMatches=Qf;function g80($,Z){if(!Z)return!1;for(let X of Z)if(Qf($,X))return!0;return!1}Jf.isUrlIgnored=g80});var Gf=q((zf)=>{Object.defineProperty(zf,"__esModule",{value:!0});zf.Deferred=void 0;class Kf{_promise;_resolve;_reject;constructor(){this._promise=new Promise(($,Z)=>{this._resolve=$,this._reject=Z})}get promise(){return this._promise}resolve($){this._resolve($)}reject($){this._reject($)}}zf.Deferred=Kf});var wf=q((Ff)=>{Object.defineProperty(Ff,"__esModule",{value:!0});Ff.BindOnceFuture=void 0;var d80=Gf();class Vf{_isCalled=!1;_deferred=new d80.Deferred;_callback;_that;constructor($,Z){this._callback=$,this._that=Z}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...$){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...$)).then((Z)=>this._deferred.resolve(Z),(Z)=>this._deferred.reject(Z))}catch(Z){this._deferred.reject(Z)}}return this._deferred.promise}}Ff.BindOnceFuture=Vf});var Df=q((Uf)=>{Object.defineProperty(Uf,"__esModule",{value:!0});Uf.diagLogLevelFromString=void 0;var x6=S(),jf={ALL:x6.DiagLogLevel.ALL,VERBOSE:x6.DiagLogLevel.VERBOSE,DEBUG:x6.DiagLogLevel.DEBUG,INFO:x6.DiagLogLevel.INFO,WARN:x6.DiagLogLevel.WARN,ERROR:x6.DiagLogLevel.ERROR,NONE:x6.DiagLogLevel.NONE};function u80($){if($==null)return;let Z=jf[$.toUpperCase()];if(Z==null)return x6.diag.warn(`Unknown log level "${$}", expected one of ${Object.keys(jf)}, using default`),x6.DiagLogLevel.INFO;return Z}Uf.diagLogLevelFromString=u80});var Cf=q((Lf)=>{Object.defineProperty(Lf,"__esModule",{value:!0});Lf._export=void 0;var Pf=S(),c80=hZ();function l80($,Z){return new Promise((X)=>{Pf.context.with((0,c80.suppressTracing)(Pf.context.active()),()=>{$.export(Z,X)})})}Lf._export=l80});var o0=q((x)=>{Object.defineProperty(x,"__esModule",{value:!0});x.internal=x.diagLogLevelFromString=x.BindOnceFuture=x.urlMatches=x.isUrlIgnored=x.callWithTimeout=x.TimeoutError=x.merge=x.TraceState=x.unsuppressTracing=x.suppressTracing=x.isTracingSuppressed=x.setRPCMetadata=x.getRPCMetadata=x.deleteRPCMetadata=x.RPCType=x.parseTraceParent=x.W3CTraceContextPropagator=x.TRACE_STATE_HEADER=x.TRACE_PARENT_HEADER=x.CompositePropagator=x.otperformance=x.getStringListFromEnv=x.getNumberFromEnv=x.getBooleanFromEnv=x.getStringFromEnv=x._globalThis=x.SDK_INFO=x.parseKeyPairsIntoRecord=x.ExportResultCode=x.unrefTimer=x.timeInputToHrTime=x.millisToHrTime=x.isTimeInputHrTime=x.isTimeInput=x.hrTimeToTimeStamp=x.hrTimeToNanoseconds=x.hrTimeToMilliseconds=x.hrTimeToMicroseconds=x.hrTimeDuration=x.hrTime=x.getTimeOrigin=x.addHrTimes=x.loggingErrorHandler=x.setGlobalErrorHandler=x.globalErrorHandler=x.sanitizeAttributes=x.isAttributeValue=x.AnchoredClock=x.W3CBaggagePropagator=void 0;var p80=hU();Object.defineProperty(x,"W3CBaggagePropagator",{enumerable:!0,get:function(){return p80.W3CBaggagePropagator}});var i80=xU();Object.defineProperty(x,"AnchoredClock",{enumerable:!0,get:function(){return i80.AnchoredClock}});var kf=pU();Object.defineProperty(x,"isAttributeValue",{enumerable:!0,get:function(){return kf.isAttributeValue}});Object.defineProperty(x,"sanitizeAttributes",{enumerable:!0,get:function(){return kf.sanitizeAttributes}});var Mf=aU();Object.defineProperty(x,"globalErrorHandler",{enumerable:!0,get:function(){return Mf.globalErrorHandler}});Object.defineProperty(x,"setGlobalErrorHandler",{enumerable:!0,get:function(){return Mf.setGlobalErrorHandler}});var o80=aW();Object.defineProperty(x,"loggingErrorHandler",{enumerable:!0,get:function(){return o80.loggingErrorHandler}});var y1=VR();Object.defineProperty(x,"addHrTimes",{enumerable:!0,get:function(){return y1.addHrTimes}});Object.defineProperty(x,"getTimeOrigin",{enumerable:!0,get:function(){return y1.getTimeOrigin}});Object.defineProperty(x,"hrTime",{enumerable:!0,get:function(){return y1.hrTime}});Object.defineProperty(x,"hrTimeDuration",{enumerable:!0,get:function(){return y1.hrTimeDuration}});Object.defineProperty(x,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return y1.hrTimeToMicroseconds}});Object.defineProperty(x,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return y1.hrTimeToMilliseconds}});Object.defineProperty(x,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return y1.hrTimeToNanoseconds}});Object.defineProperty(x,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return y1.hrTimeToTimeStamp}});Object.defineProperty(x,"isTimeInput",{enumerable:!0,get:function(){return y1.isTimeInput}});Object.defineProperty(x,"isTimeInputHrTime",{enumerable:!0,get:function(){return y1.isTimeInputHrTime}});Object.defineProperty(x,"millisToHrTime",{enumerable:!0,get:function(){return y1.millisToHrTime}});Object.defineProperty(x,"timeInputToHrTime",{enumerable:!0,get:function(){return y1.timeInputToHrTime}});var s80=wR();Object.defineProperty(x,"unrefTimer",{enumerable:!0,get:function(){return s80.unrefTimer}});var r80=UR();Object.defineProperty(x,"ExportResultCode",{enumerable:!0,get:function(){return r80.ExportResultCode}});var n80=sW();Object.defineProperty(x,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return n80.parseKeyPairsIntoRecord}});var A8=eW();Object.defineProperty(x,"SDK_INFO",{enumerable:!0,get:function(){return A8.SDK_INFO}});Object.defineProperty(x,"_globalThis",{enumerable:!0,get:function(){return A8._globalThis}});Object.defineProperty(x,"getStringFromEnv",{enumerable:!0,get:function(){return A8.getStringFromEnv}});Object.defineProperty(x,"getBooleanFromEnv",{enumerable:!0,get:function(){return A8.getBooleanFromEnv}});Object.defineProperty(x,"getNumberFromEnv",{enumerable:!0,get:function(){return A8.getNumberFromEnv}});Object.defineProperty(x,"getStringListFromEnv",{enumerable:!0,get:function(){return A8.getStringListFromEnv}});Object.defineProperty(x,"otperformance",{enumerable:!0,get:function(){return A8.otperformance}});var a80=OR();Object.defineProperty(x,"CompositePropagator",{enumerable:!0,get:function(){return a80.CompositePropagator}});var r4=bR();Object.defineProperty(x,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return r4.TRACE_PARENT_HEADER}});Object.defineProperty(x,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return r4.TRACE_STATE_HEADER}});Object.defineProperty(x,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return r4.W3CTraceContextPropagator}});Object.defineProperty(x,"parseTraceParent",{enumerable:!0,get:function(){return r4.parseTraceParent}});var n4=gR();Object.defineProperty(x,"RPCType",{enumerable:!0,get:function(){return n4.RPCType}});Object.defineProperty(x,"deleteRPCMetadata",{enumerable:!0,get:function(){return n4.deleteRPCMetadata}});Object.defineProperty(x,"getRPCMetadata",{enumerable:!0,get:function(){return n4.getRPCMetadata}});Object.defineProperty(x,"setRPCMetadata",{enumerable:!0,get:function(){return n4.setRPCMetadata}});var KK=hZ();Object.defineProperty(x,"isTracingSuppressed",{enumerable:!0,get:function(){return KK.isTracingSuppressed}});Object.defineProperty(x,"suppressTracing",{enumerable:!0,get:function(){return KK.suppressTracing}});Object.defineProperty(x,"unsuppressTracing",{enumerable:!0,get:function(){return KK.unsuppressTracing}});var t80=JK();Object.defineProperty(x,"TraceState",{enumerable:!0,get:function(){return t80.TraceState}});var e80=eR();Object.defineProperty(x,"merge",{enumerable:!0,get:function(){return e80.merge}});var Rf=Xf();Object.defineProperty(x,"TimeoutError",{enumerable:!0,get:function(){return Rf.TimeoutError}});Object.defineProperty(x,"callWithTimeout",{enumerable:!0,get:function(){return Rf.callWithTimeout}});var ff=Wf();Object.defineProperty(x,"isUrlIgnored",{enumerable:!0,get:function(){return ff.isUrlIgnored}});Object.defineProperty(x,"urlMatches",{enumerable:!0,get:function(){return ff.urlMatches}});var $70=wf();Object.defineProperty(x,"BindOnceFuture",{enumerable:!0,get:function(){return $70.BindOnceFuture}});var Z70=Df();Object.defineProperty(x,"diagLogLevelFromString",{enumerable:!0,get:function(){return Z70.diagLogLevelFromString}});var X70=Cf();x.internal={_export:X70._export}});var qA=q((UA)=>{Object.defineProperty(UA,"__esModule",{value:!0});UA.SeverityNumber=void 0;var U70;(function($){$[$.UNSPECIFIED=0]="UNSPECIFIED",$[$.TRACE=1]="TRACE",$[$.TRACE2=2]="TRACE2",$[$.TRACE3=3]="TRACE3",$[$.TRACE4=4]="TRACE4",$[$.DEBUG=5]="DEBUG",$[$.DEBUG2=6]="DEBUG2",$[$.DEBUG3=7]="DEBUG3",$[$.DEBUG4=8]="DEBUG4",$[$.INFO=9]="INFO",$[$.INFO2=10]="INFO2",$[$.INFO3=11]="INFO3",$[$.INFO4=12]="INFO4",$[$.WARN=13]="WARN",$[$.WARN2=14]="WARN2",$[$.WARN3=15]="WARN3",$[$.WARN4=16]="WARN4",$[$.ERROR=17]="ERROR",$[$.ERROR2=18]="ERROR2",$[$.ERROR3=19]="ERROR3",$[$.ERROR4=20]="ERROR4",$[$.FATAL=21]="FATAL",$[$.FATAL2=22]="FATAL2",$[$.FATAL3=23]="FATAL3",$[$.FATAL4=24]="FATAL4"})(U70=UA.SeverityNumber||(UA.SeverityNumber={}))});var e4=q((DA)=>{Object.defineProperty(DA,"__esModule",{value:!0});DA.NOOP_LOGGER=DA.NoopLogger=void 0;class GK{emit($){}}DA.NoopLogger=GK;DA.NOOP_LOGGER=new GK});var CA=q((LA)=>{Object.defineProperty(LA,"__esModule",{value:!0});LA.API_BACKWARDS_COMPATIBILITY_VERSION=LA.makeGetter=LA._global=LA.GLOBAL_LOGS_API_KEY=void 0;LA.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");LA._global=globalThis;function D70($,Z,X){return(Q)=>Q===$?Z:X}LA.makeGetter=D70;LA.API_BACKWARDS_COMPATIBILITY_VERSION=1});var FK=q((kA)=>{Object.defineProperty(kA,"__esModule",{value:!0});kA.NOOP_LOGGER_PROVIDER=kA.NoopLoggerProvider=void 0;var C70=e4();class VK{getLogger($,Z,X){return new C70.NoopLogger}}kA.NoopLoggerProvider=VK;kA.NOOP_LOGGER_PROVIDER=new VK});var NA=q((fA)=>{Object.defineProperty(fA,"__esModule",{value:!0});fA.ProxyLogger=void 0;var M70=e4();class RA{constructor($,Z,X,Q){this._provider=$,this.name=Z,this.version=X,this.options=Q}emit($){this._getLogger().emit($)}_getLogger(){if(this._delegate)return this._delegate;let $=this._provider._getDelegateLogger(this.name,this.version,this.options);if(!$)return M70.NOOP_LOGGER;return this._delegate=$,this._delegate}}fA.ProxyLogger=RA});var TA=q((yA)=>{Object.defineProperty(yA,"__esModule",{value:!0});yA.ProxyLoggerProvider=void 0;var R70=FK(),f70=NA();class _A{getLogger($,Z,X){var Q;return(Q=this._getDelegateLogger($,Z,X))!==null&&Q!==void 0?Q:new f70.ProxyLogger(this,$,Z,X)}_getDelegate(){var $;return($=this._delegate)!==null&&$!==void 0?$:R70.NOOP_LOGGER_PROVIDER}_setDelegate($){this._delegate=$}_getDelegateLogger($,Z,X){var Q;return(Q=this._delegate)===null||Q===void 0?void 0:Q.getLogger($,Z,X)}}yA.ProxyLoggerProvider=_A});var vA=q((hA)=>{Object.defineProperty(hA,"__esModule",{value:!0});hA.LogsAPI=void 0;var T1=CA(),A70=FK(),EA=TA();class BK{constructor(){this._proxyLoggerProvider=new EA.ProxyLoggerProvider}static getInstance(){if(!this._instance)this._instance=new BK;return this._instance}setGlobalLoggerProvider($){if(T1._global[T1.GLOBAL_LOGS_API_KEY])return this.getLoggerProvider();return T1._global[T1.GLOBAL_LOGS_API_KEY]=(0,T1.makeGetter)(T1.API_BACKWARDS_COMPATIBILITY_VERSION,$,A70.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate($),$}getLoggerProvider(){var $,Z;return(Z=($=T1._global[T1.GLOBAL_LOGS_API_KEY])===null||$===void 0?void 0:$.call(T1._global,T1.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&Z!==void 0?Z:this._proxyLoggerProvider}getLogger($,Z,X){return this.getLoggerProvider().getLogger($,Z,X)}disable(){delete T1._global[T1.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new EA.ProxyLoggerProvider}}hA.LogsAPI=BK});var wK=q((gZ)=>{Object.defineProperty(gZ,"__esModule",{value:!0});gZ.logs=gZ.NoopLogger=gZ.NOOP_LOGGER=gZ.SeverityNumber=void 0;var N70=qA();Object.defineProperty(gZ,"SeverityNumber",{enumerable:!0,get:function(){return N70.SeverityNumber}});var SA=e4();Object.defineProperty(gZ,"NOOP_LOGGER",{enumerable:!0,get:function(){return SA.NOOP_LOGGER}});Object.defineProperty(gZ,"NoopLogger",{enumerable:!0,get:function(){return SA.NoopLogger}});var _70=vA();gZ.logs=_70.LogsAPI.getInstance()});var dA=q((gA)=>{Object.defineProperty(gA,"__esModule",{value:!0});gA.disableInstrumentations=gA.enableInstrumentations=void 0;function y70($,Z,X,Q){for(let J=0,Y=$.length;JZ.disable())}gA.disableInstrumentations=I70});var iA=q((lA)=>{Object.defineProperty(lA,"__esModule",{value:!0});lA.registerInstrumentations=void 0;var uA=S(),E70=wK(),cA=dA();function h70($){let Z=$.tracerProvider||uA.trace.getTracerProvider(),X=$.meterProvider||uA.metrics.getMeterProvider(),Q=$.loggerProvider||E70.logs.getLoggerProvider(),J=$.instrumentations?.flat()??[];return(0,cA.enableInstrumentations)(J,Z,X,Q),()=>{(0,cA.disableInstrumentations)(J)}}lA.registerInstrumentations=h70});var QN=q((ZN)=>{Object.defineProperty(ZN,"__esModule",{value:!0});ZN.satisfies=void 0;var DK=S(),aA=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,b70=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,v70={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function S70($,Z,X){if(!x70($))return DK.diag.error(`Invalid version: ${$}`),!1;if(!Z)return!0;Z=Z.replace(/([<>=~^]+)\s+/g,"$1");let Q=u70($);if(!Q)return!1;let J=[],Y=tA(Q,Z,J,X);if(Y&&!X?.includePrerelease)return m70(Q,J);return Y}ZN.satisfies=S70;function x70($){return typeof $==="string"&&aA.test($)}function tA($,Z,X,Q){if(Z.includes("||")){let J=Z.trim().split("||");for(let Y of J)if(jK($,Y,X,Q))return!0;return!1}else if(Z.includes(" - "))Z=H90(Z,Q);else if(Z.includes(" ")){let J=Z.trim().replace(/\s{2,}/g," ").split(" ");for(let Y of J)if(!jK($,Y,X,Q))return!1;return!0}return jK($,Z,X,Q)}function jK($,Z,X,Q){if(Z=d70(Z,Q),Z.includes(" "))return tA($,Z,X,Q);else{let J=c70(Z);return X.push(J),g70($,J)}}function g70($,Z){if(Z.invalid)return!1;if(!Z.version||qK(Z.version))return!0;let X=sA($.versionSegments||[],Z.versionSegments||[]);if(X===0){let Q=$.prereleaseSegments||[],J=Z.prereleaseSegments||[];if(!Q.length&&!J.length)X=0;else if(!Q.length&&J.length)X=1;else if(Q.length&&!J.length)X=-1;else X=sA(Q,J)}return v70[Z.op]?.includes(X)}function m70($,Z){if($.prerelease)return Z.some((X)=>X.prerelease&&X.version===$.version);return!0}function d70($,Z){return $=$.trim(),$=K90($,Z),$=W90($),$=z90($,Z),$=$.trim(),$}function a0($){return!$||$.toLowerCase()==="x"||$==="*"}function u70($){let Z=$.match(aA);if(!Z){DK.diag.error(`Invalid version: ${$}`);return}let X=Z.groups.version,Q=Z.groups.prerelease,J=Z.groups.build,Y=X.split("."),W=Q?.split(".");return{op:void 0,version:X,versionSegments:Y,versionSegmentCount:Y.length,prerelease:Q,prereleaseSegments:W,prereleaseSegmentCount:W?W.length:0,build:J}}function c70($){if(!$)return{};let Z=$.match(b70);if(!Z)return DK.diag.error(`Invalid range: ${$}`),{invalid:!0};let X=Z.groups.op,Q=Z.groups.version,J=Z.groups.prerelease,Y=Z.groups.build,W=Q.split("."),K=J?.split(".");if(X==="==")X="=";return{op:X||"=",version:Q,versionSegments:W,versionSegmentCount:W.length,prerelease:J,prereleaseSegments:K,prereleaseSegmentCount:K?K.length:0,build:Y}}function qK($){return $==="*"||$==="x"||$==="X"}function oA($){let Z=parseInt($,10);return isNaN(Z)?$:Z}function l70($,Z){if(typeof $===typeof Z)if(typeof $==="number")return[$,Z];else if(typeof $==="string")return[$,Z];else throw Error("Version segments can only be strings or numbers");else return[String($),String(Z)]}function p70($,Z){if(qK($)||qK(Z))return 0;let[X,Q]=l70(oA($),oA(Z));if(X>Q)return 1;else if(X)?=?)",rA=`(?:${$N}|${i70})`,s70=`(?:-(${rA}(?:\\.${rA})*))`,nA=`${eA}+`,r70=`(?:\\+(${nA}(?:\\.${nA})*))`,UK=`${$N}|x|X|\\*`,mZ=`[v=\\s]*(${UK})(?:\\.(${UK})(?:\\.(${UK})(?:${s70})?${r70}?)?)?`,n70=`^${o70}\\s*${mZ}$`,a70=new RegExp(n70),t70=`^\\s*(${mZ})\\s+-\\s+(${mZ})\\s*$`,e70=new RegExp(t70),$90="(?:~>?)",Z90=`^${$90}${mZ}$`,X90=new RegExp(Z90),Q90="(?:\\^)",J90=`^${Q90}${mZ}$`,Y90=new RegExp(J90);function W90($){let Z=X90;return $.replace(Z,(X,Q,J,Y,W)=>{let K;if(a0(Q))K="";else if(a0(J))K=`>=${Q}.0.0 <${+Q+1}.0.0-0`;else if(a0(Y))K=`>=${Q}.${J}.0 <${Q}.${+J+1}.0-0`;else if(W)K=`>=${Q}.${J}.${Y}-${W} <${Q}.${+J+1}.0-0`;else K=`>=${Q}.${J}.${Y} <${Q}.${+J+1}.0-0`;return K})}function K90($,Z){let X=Y90,Q=Z?.includePrerelease?"-0":"";return $.replace(X,(J,Y,W,K,z)=>{let H;if(a0(Y))H="";else if(a0(W))H=`>=${Y}.0.0${Q} <${+Y+1}.0.0-0`;else if(a0(K))if(Y==="0")H=`>=${Y}.${W}.0${Q} <${Y}.${+W+1}.0-0`;else H=`>=${Y}.${W}.0${Q} <${+Y+1}.0.0-0`;else if(z)if(Y==="0")if(W==="0")H=`>=${Y}.${W}.${K}-${z} <${Y}.${W}.${+K+1}-0`;else H=`>=${Y}.${W}.${K}-${z} <${Y}.${+W+1}.0-0`;else H=`>=${Y}.${W}.${K}-${z} <${+Y+1}.0.0-0`;else if(Y==="0")if(W==="0")H=`>=${Y}.${W}.${K}${Q} <${Y}.${W}.${+K+1}-0`;else H=`>=${Y}.${W}.${K}${Q} <${Y}.${+W+1}.0-0`;else H=`>=${Y}.${W}.${K} <${+Y+1}.0.0-0`;return H})}function z90($,Z){let X=a70;return $.replace(X,(Q,J,Y,W,K,z)=>{let H=a0(Y),G=H||a0(W),V=G||a0(K),F=V;if(J==="="&&F)J="";if(z=Z?.includePrerelease?"-0":"",H)if(J===">"||J==="<")Q="<0.0.0-0";else Q="*";else if(J&&F){if(G)W=0;if(K=0,J===">")if(J=">=",G)Y=+Y+1,W=0,K=0;else W=+W+1,K=0;else if(J==="<=")if(J="<",G)Y=+Y+1;else W=+W+1;if(J==="<")z="-0";Q=`${J+Y}.${W}.${K}${z}`}else if(G)Q=`>=${Y}.0.0${z} <${+Y+1}.0.0-0`;else if(V)Q=`>=${Y}.${W}.0${z} <${Y}.${+W+1}.0-0`;return Q})}function H90($,Z){let X=e70;return $.replace(X,(Q,J,Y,W,K,z,H,G,V,F,B,j)=>{if(a0(Y))J="";else if(a0(W))J=`>=${Y}.0.0${Z?.includePrerelease?"-0":""}`;else if(a0(K))J=`>=${Y}.${W}.0${Z?.includePrerelease?"-0":""}`;else if(z)J=`>=${J}`;else J=`>=${J}${Z?.includePrerelease?"-0":""}`;if(a0(V))G="";else if(a0(F))G=`<${+V+1}.0.0-0`;else if(a0(B))G=`<${V}.${+F+1}.0-0`;else if(j)G=`<=${V}.${F}.${B}-${j}`;else if(Z?.includePrerelease)G=`<${V}.${F}.${+B+1}-0`;else G=`<=${G}`;return`${J} ${G}`.trim()})}});var CK=q((JN)=>{Object.defineProperty(JN,"__esModule",{value:!0});JN.massUnwrap=JN.unwrap=JN.massWrap=JN.wrap=void 0;var t0=console.error.bind(console);function dZ($,Z,X){let Q=!!$[Z]&&Object.prototype.propertyIsEnumerable.call($,Z);Object.defineProperty($,Z,{configurable:!0,enumerable:Q,writable:!0,value:X})}var G90=($,Z,X)=>{if(!$||!$[Z]){t0("no original function "+String(Z)+" to wrap");return}if(!X){t0("no wrapper function"),t0(Error().stack);return}let Q=$[Z];if(typeof Q!=="function"||typeof X!=="function"){t0("original object and wrapper must be functions");return}let J=X(Q,Z);return dZ(J,"__original",Q),dZ(J,"__unwrap",()=>{if($[Z]===J)dZ($,Z,Q)}),dZ(J,"__wrapped",!0),dZ($,Z,J),J};JN.wrap=G90;var V90=($,Z,X)=>{if(!$){t0("must provide one or more modules to patch"),t0(Error().stack);return}else if(!Array.isArray($))$=[$];if(!(Z&&Array.isArray(Z))){t0("must provide one or more functions to wrap on modules");return}$.forEach((Q)=>{Z.forEach((J)=>{JN.wrap(Q,J,X)})})};JN.massWrap=V90;var F90=($,Z)=>{if(!$||!$[Z]){t0("no function to unwrap."),t0(Error().stack);return}let X=$[Z];if(!X.__unwrap)t0("no original to unwrap to -- has "+String(Z)+" already been unwrapped?");else{X.__unwrap();return}};JN.unwrap=F90;var B90=($,Z)=>{if(!$){t0("must provide one or more modules to patch"),t0(Error().stack);return}else if(!Array.isArray($))$=[$];if(!(Z&&Array.isArray(Z))){t0("must provide one or more functions to unwrap on modules");return}$.forEach((X)=>{Z.forEach((Q)=>{JN.unwrap(X,Q)})})};JN.massUnwrap=B90;function uZ($){if($&&$.logger)if(typeof $.logger!=="function")t0("new logger isn't a function, not replacing");else t0=$.logger}JN.default=uZ;uZ.wrap=JN.wrap;uZ.massWrap=JN.massWrap;uZ.unwrap=JN.unwrap;uZ.massUnwrap=JN.massUnwrap});var HN=q((KN)=>{Object.defineProperty(KN,"__esModule",{value:!0});KN.InstrumentationAbstract=void 0;var kK=S(),j90=wK(),$X=CK();class WN{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor($,Z,X){this.instrumentationName=$,this.instrumentationVersion=Z,this.setConfig(X),this._diag=kK.diag.createComponentLogger({namespace:$}),this._tracer=kK.trace.getTracer($,Z),this._meter=kK.metrics.getMeter($,Z),this._logger=j90.logs.getLogger($,Z),this._updateMetricInstruments()}_wrap=$X.wrap;_unwrap=$X.unwrap;_massWrap=$X.massWrap;_massUnwrap=$X.massUnwrap;get meter(){return this._meter}setMeterProvider($){this._meter=$.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider($){this._logger=$.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let $=this.init()??[];if(!Array.isArray($))return[$];return $}_updateMetricInstruments(){return}getConfig(){return this._config}setConfig($){this._config={enabled:!0,...$}}setTracerProvider($){this._tracer=$.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook($,Z,X,Q){if(!$)return;try{$(X,Q)}catch(J){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:Z},J)}}}KN.InstrumentationAbstract=WN});var VN=q((K_0,GN)=>{var e7=1000,$9=e7*60,Z9=$9*60,_8=Z9*24,U90=_8*7,q90=_8*365.25;GN.exports=function($,Z){Z=Z||{};var X=typeof $;if(X==="string"&&$.length>0)return D90($);else if(X==="number"&&isFinite($))return Z.long?L90($):P90($);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify($))};function D90($){if($=String($),$.length>100)return;var Z=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec($);if(!Z)return;var X=parseFloat(Z[1]),Q=(Z[2]||"ms").toLowerCase();switch(Q){case"years":case"year":case"yrs":case"yr":case"y":return X*q90;case"weeks":case"week":case"w":return X*U90;case"days":case"day":case"d":return X*_8;case"hours":case"hour":case"hrs":case"hr":case"h":return X*Z9;case"minutes":case"minute":case"mins":case"min":case"m":return X*$9;case"seconds":case"second":case"secs":case"sec":case"s":return X*e7;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return X;default:return}}function P90($){var Z=Math.abs($);if(Z>=_8)return Math.round($/_8)+"d";if(Z>=Z9)return Math.round($/Z9)+"h";if(Z>=$9)return Math.round($/$9)+"m";if(Z>=e7)return Math.round($/e7)+"s";return $+"ms"}function L90($){var Z=Math.abs($);if(Z>=_8)return ZX($,Z,_8,"day");if(Z>=Z9)return ZX($,Z,Z9,"hour");if(Z>=$9)return ZX($,Z,$9,"minute");if(Z>=e7)return ZX($,Z,e7,"second");return $+" ms"}function ZX($,Z,X,Q){var J=Z>=X*1.5;return Math.round($/X)+" "+Q+(J?"s":"")}});var MK=q((z_0,FN)=>{function O90($){X.debug=X,X.default=X,X.coerce=z,X.disable=W,X.enable=J,X.enabled=K,X.humanize=VN(),X.destroy=H,Object.keys($).forEach((G)=>{X[G]=$[G]}),X.names=[],X.skips=[],X.formatters={};function Z(G){let V=0;for(let F=0;F{if(l==="%%")return"%";T++;let W0=X.formatters[o];if(typeof W0==="function"){let G0=D[T];l=W0.call(k,G0),D.splice(T,1),T--}return l}),X.formatArgs.call(k,D),(k.log||X.log).apply(k,D)}if(U.namespace=G,U.useColors=X.useColors(),U.color=X.selectColor(G),U.extend=Q,U.destroy=X.destroy,Object.defineProperty(U,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(F!==null)return F;if(B!==X.namespaces)B=X.namespaces,j=X.enabled(G);return j},set:(D)=>{F=D}}),typeof X.init==="function")X.init(U);return U}function Q(G,V){let F=X(this.namespace+(typeof V>"u"?":":V)+G);return F.log=this.log,F}function J(G){X.save(G),X.namespaces=G,X.names=[],X.skips=[];let V=(typeof G==="string"?G:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let F of V)if(F[0]==="-")X.skips.push(F.slice(1));else X.names.push(F)}function Y(G,V){let F=0,B=0,j=-1,U=0;while(F"-"+V)].join(",");return X.enable(""),G}function K(G){for(let V of X.skips)if(Y(G,V))return!1;for(let V of X.names)if(Y(G,V))return!0;return!1}function z(G){if(G instanceof Error)return G.stack||G.message;return G}function H(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return X.enable(X.load()),X}FN.exports=O90});var wN=q((BN,XX)=>{BN.formatArgs=k90;BN.save=M90;BN.load=R90;BN.useColors=C90;BN.storage=f90();BN.destroy=(()=>{let $=!1;return()=>{if(!$)$=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();BN.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function C90(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let $;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&($=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt($[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function k90($){if($[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+$[0]+(this.useColors?"%c ":" ")+"+"+XX.exports.humanize(this.diff),!this.useColors)return;let Z="color: "+this.color;$.splice(1,0,Z,"color: inherit");let X=0,Q=0;$[0].replace(/%[a-zA-Z%]/g,(J)=>{if(J==="%%")return;if(X++,J==="%c")Q=X}),$.splice(Q,0,Z)}BN.log=console.debug||console.log||(()=>{});function M90($){try{if($)BN.storage.setItem("debug",$);else BN.storage.removeItem("debug")}catch(Z){}}function R90(){let $;try{$=BN.storage.getItem("debug")||BN.storage.getItem("DEBUG")}catch(Z){}if(!$&&typeof process<"u"&&"env"in process)$=process.env.DEBUG;return $}function f90(){try{return localStorage}catch($){}}XX.exports=MK()(BN);var{formatters:A90}=XX.exports;A90.j=function($){try{return JSON.stringify($)}catch(Z){return"[UnexpectedJSONParseError]: "+Z.message}}});var DN=q((UN,JX)=>{var b90=s("tty"),QX=s("util");UN.init=u90;UN.log=g90;UN.formatArgs=S90;UN.save=m90;UN.load=d90;UN.useColors=v90;UN.destroy=QX.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");UN.colors=[6,2,3,4,5,1];try{let $=(()=>{throw new Error("Cannot require module "+"supports-color");})();if($&&($.stderr||$).level>=2)UN.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch($){}UN.inspectOpts=Object.keys(process.env).filter(($)=>{return/^debug_/i.test($)}).reduce(($,Z)=>{let X=Z.substring(6).toLowerCase().replace(/_([a-z])/g,(J,Y)=>{return Y.toUpperCase()}),Q=process.env[Z];if(/^(yes|on|true|enabled)$/i.test(Q))Q=!0;else if(/^(no|off|false|disabled)$/i.test(Q))Q=!1;else if(Q==="null")Q=null;else Q=Number(Q);return $[X]=Q,$},{});function v90(){return"colors"in UN.inspectOpts?Boolean(UN.inspectOpts.colors):b90.isatty(process.stderr.fd)}function S90($){let{namespace:Z,useColors:X}=this;if(X){let Q=this.color,J="\x1B[3"+(Q<8?Q:"8;5;"+Q),Y=` ${J};1m${Z} \x1B[0m`;$[0]=Y+$[0].split(` `).join(` -`+X),Z.push(Y+"m+"+ZQ.exports.humanize(this.diff)+"\x1B[0m")}else Z[0]=uX0()+J+" "+Z[0]}function uX0(){if(OR.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function lX0(...Z){return process.stderr.write(eJ.formatWithOptions(OR.inspectOpts,...Z)+` -`)}function pX0(Z){if(Z)process.env.DEBUG=Z;else delete process.env.DEBUG}function iX0(){return process.env.DEBUG}function oX0(Z){Z.inspectOpts={};let J=Object.keys(OR.inspectOpts);for(let Q=0;QJ.trim()).join(" ")};LR.O=function(Z){return this.inspectOpts.colors=this.useColors,eJ.inspect(Z,this.inspectOpts)}});var kR=w((hv0,IX)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)IX.exports=qR();else IX.exports=PR()});var K5=w((Sv0,MR)=>{var NX=A("path").sep;MR.exports=function(Z){var J=Z.split(NX),Q=J.lastIndexOf("node_modules");if(Q===-1)return;if(!J[Q+1])return;var $=J[Q+1][0]==="@",Y=$?J[Q+1]+"/"+J[Q+2]:J[Q+1],X=$?3:2,W="",K=Q+X-1;for(var z=0;z<=K;z++)if(z===K)W+=J[z];else W+=J[z]+NX;var G="",H=J.length-1;for(var B=Q+X;B<=H;B++)if(B===H)G+=J[B];else G+=J[B]+NX;return{name:Y,basedir:W,path:G}}});var M7=w((_v0,fX)=>{var M1=A("path"),G9=A("module"),q0=kR()("require-in-the-middle"),JW0=K5();fX.exports=z5;fX.exports.Hook=z5;var TX,JQ;if(G9.isBuiltin)JQ=G9.isBuiltin;else if(G9.builtinModules)JQ=(Z)=>{if(Z.startsWith("node:"))return!0;if(TX===void 0)TX=new Set(G9.builtinModules);return TX.has(Z)};else throw Error("'require-in-the-middle' requires Node.js >=v9.3.0 or >=v8.10.0");var QW0=/([/\\]index)?(\.js)?$/;class RR{constructor(){this._localCache=new Map,this._kRitmExports=Symbol("RitmExports")}has(Z,J){if(this._localCache.has(Z))return!0;else if(!J){let Q=A.cache[Z];return!!(Q&&(this._kRitmExports in Q))}else return!1}get(Z,J){let Q=this._localCache.get(Z);if(Q!==void 0)return Q;else if(!J){let $=A.cache[Z];return $&&$[this._kRitmExports]}}set(Z,J,Q){if(Q)this._localCache.set(Z,J);else if(Z in A.cache)A.cache[Z][this._kRitmExports]=J;else q0('non-core module is unexpectedly not in require.cache: "%s"',Z),this._localCache.set(Z,J)}}function z5(Z,J,Q){if(this instanceof z5===!1)return new z5(Z,J,Q);if(typeof Z==="function")Q=Z,Z=null,J=null;else if(typeof J==="function")Q=J,J=null;if(typeof G9._resolveFilename!=="function"){console.error("Error: Expected Module._resolveFilename to be a function (was: %s) - aborting!",typeof G9._resolveFilename),console.error("Please report this error as an issue related to Node.js %s at https://github.com/nodejs/require-in-the-middle/issues",process.version);return}this._cache=new RR,this._unhooked=!1,this._origRequire=G9.prototype.require;let $=this,Y=new Set,X=J?J.internals===!0:!1,W=Array.isArray(Z);if(q0("registering require hook"),this._require=G9.prototype.require=function(z){if($._unhooked===!0)return q0("ignoring require call - module is soft-unhooked"),$._origRequire.apply(this,arguments);return K.call(this,arguments,!1)},typeof process.getBuiltinModule==="function")this._origGetBuiltinModule=process.getBuiltinModule,this._getBuiltinModule=process.getBuiltinModule=function(z){if($._unhooked===!0)return q0("ignoring process.getBuiltinModule call - module is soft-unhooked"),$._origGetBuiltinModule.apply(this,arguments);return K.call(this,arguments,!0)};function K(z,G){let H=z[0],B=JQ(H),V;if(B){if(V=H,H.startsWith("node:")){let O=H.slice(5);if(JQ(O))V=O}}else if(G)return q0("call to process.getBuiltinModule with unknown built-in id"),$._origGetBuiltinModule.apply(this,z);else try{V=G9._resolveFilename(H,this)}catch(O){return q0('Module._resolveFilename("%s") threw %j, calling original Module.require',H,O.message),$._origRequire.apply(this,z)}let F,D;if(q0("processing %s module require('%s'): %s",B===!0?"core":"non-core",H,V),$._cache.has(V,B)===!0)return q0("returning already patched cached module: %s",V),$._cache.get(V,B);let U=Y.has(V);if(U===!1)Y.add(V);let j=G?$._origGetBuiltinModule.apply(this,z):$._origRequire.apply(this,z);if(U===!0)return q0("module is in the process of being patched already - ignoring: %s",V),j;if(Y.delete(V),B===!0){if(W===!0&&Z.includes(V)===!1)return q0("ignoring core module not on whitelist: %s",V),j;F=V}else if(W===!0&&Z.includes(V)){let O=M1.parse(V);F=O.name,D=O.dir}else{let O=JW0(V);if(O===void 0)return q0("could not parse filename: %s",V),j;F=O.name,D=O.basedir;let M=$W0(O);q0("resolved filename to module: %s (id: %s, resolved: %s, basedir: %s)",F,H,M,D);let S=!1;if(W){if(!H.startsWith(".")&&Z.includes(H))F=H,S=!0;if(!Z.includes(F)&&!Z.includes(M))return j;if(Z.includes(M)&&M!==F)F=M,S=!0}if(!S){let T;try{T=A.resolve(F,{paths:[D]})}catch(n){return q0("could not resolve module: %s",F),$._cache.set(V,j,B),j}if(T!==V)if(X===!0)F=F+M1.sep+M1.relative(D,V),q0("preparing to process require of internal file: %s",F);else return q0("ignoring require of non-main module file: %s",T),$._cache.set(V,j,B),j}}$._cache.set(V,j,B),q0("calling require hook: %s",F);let L=Q(j,F,D);return $._cache.set(V,L,B),q0("returning module: %s",F),L}}z5.prototype.unhook=function(){if(this._unhooked=!0,this._require===G9.prototype.require)G9.prototype.require=this._origRequire,q0("require unhook successful");else q0("require unhook unsuccessful");if(process.getBuiltinModule!==void 0)if(this._getBuiltinModule===process.getBuiltinModule)process.getBuiltinModule=this._origGetBuiltinModule,q0("process.getBuiltinModule unhook successful");else q0("process.getBuiltinModule unhook unsuccessful")};function $W0(Z){let J=M1.sep!=="/"?Z.path.split(M1.sep).join("/"):Z.path;return M1.posix.join(Z.name,J).replace(QW0,"")}});var TR=w((IR)=>{Object.defineProperty(IR,"__esModule",{value:!0});IR.ModuleNameTrie=IR.ModuleNameSeparator=void 0;IR.ModuleNameSeparator="/";class EX{hooks=[];children=new Map}class AR{_trie=new EX;_counter=0;insert(Z){let J=this._trie;for(let Q of Z.moduleName.split(IR.ModuleNameSeparator)){let $=J.children.get(Q);if(!$)$=new EX,J.children.set(Q,$);J=$}J.hooks.push({hook:Z,insertedId:this._counter++})}search(Z,{maintainInsertionOrder:J,fullOnly:Q}={}){let $=this._trie,Y=[],X=!0;for(let W of Z.split(IR.ModuleNameSeparator)){let K=$.children.get(W);if(!K){X=!1;break}if(!Q)Y.push(...K.hooks);$=K}if(Q&&X)Y.push(...$.hooks);if(Y.length===0)return[];if(Y.length===1)return[Y[0].hook];if(J)Y.sort((W,K)=>W.insertedId-K.insertedId);return Y.map(({hook:W})=>W)}}IR.ModuleNameTrie=AR});var hR=w((ER)=>{Object.defineProperty(ER,"__esModule",{value:!0});ER.RequireInTheMiddleSingleton=void 0;var YW0=M7(),fR=A("path"),hX=TR(),XW0=["afterEach","after","beforeEach","before","describe","it"].every((Z)=>{return typeof global[Z]==="function"});class QQ{_moduleNameTrie=new hX.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new YW0.Hook(null,{internals:!0},(Z,J,Q)=>{let $=WW0(J),Y=this._moduleNameTrie.search($,{maintainInsertionOrder:!0,fullOnly:Q===void 0});for(let{onRequire:X}of Y)Z=X(Z,J,Q);return Z})}register(Z,J){let Q={moduleName:Z,onRequire:J};return this._moduleNameTrie.insert(Q),Q}static getInstance(){if(XW0)return new QQ;return this._instance=this._instance??new QQ}}ER.RequireInTheMiddleSingleton=QQ;function WW0(Z){return fR.sep!==hX.ModuleNameSeparator?Z.split(fR.sep).join(hX.ModuleNameSeparator):Z}});var xR=w((GW0)=>{var SR=[],SX=new WeakMap,_R=new WeakMap,vR=new Map,bR=[],KW0={set(Z,J,Q){let $=SX.get(Z),Y=$&&$[J];if(typeof Y==="function")return Y(Q);return!0},get(Z,J){if(J===Symbol.toStringTag)return"Module";let Q=_R.get(Z)[J];if(typeof Q==="function")return Q()},defineProperty(Z,J,Q){if(!("value"in Q))throw Error("Getters/setters are not supported for exports property descriptors.");let $=SX.get(Z),Y=$&&$[J];if(typeof Y==="function")return Y(Q.value);return!0}};function zW0(Z,J,Q,$,Y){vR.set(Z,Y),SX.set(J,Q),_R.set(J,$);let X=new Proxy(J,KW0);SR.forEach((W)=>W(Z,X,Y)),bR.push([Z,X,Y])}GW0.register=zW0;GW0.importHooks=SR;GW0.specifiers=vR;GW0.toHook=bR});var xX=w((dv0,A1)=>{var gR=A("path"),wW0=K5(),{fileURLToPath:DW0}=A("url"),{MessageChannel:UW0}=A("worker_threads"),{isBuiltin:_X}=A("module");if(!_X)_X=()=>!0;var{importHooks:vX,specifiers:jW0,toHook:qW0}=xR();function dR(Z){vX.push(Z),qW0.forEach(([J,Q,$])=>Z(J,Q,$))}function cR(Z){let J=vX.indexOf(Z);if(J>-1)vX.splice(J,1)}function R1(Z,J,Q,$){let Y=Z(J,Q,$);if(Y&&Y!==J){if("default"in J)J.default=Y}}var bX;function LW0(){let{port1:Z,port2:J}=new UW0,Q=0,$;bX=(K)=>{Q++,Z.postMessage(K)},Z.on("message",()=>{if(Q--,$&&Q<=0)$()}).unref();function Y(){let K=setInterval(()=>{},1000),z=new Promise((G)=>{$=G}).then(()=>{clearInterval(K)});if(Q===0)$();return z}let X=J;return{registerOptions:{data:{addHookMessagePort:X,include:[]},transferList:[X]},addHookMessagePort:X,waitForAllMessagesAcknowledged:Y}}function G5(Z,J,Q){if(this instanceof G5===!1)return new G5(Z,J,Q);if(typeof Z==="function")Q=Z,Z=null,J=null;else if(typeof J==="function")Q=J,J=null;let $=J?J.internals===!0:!1;if(bX&&Array.isArray(Z))bX(Z);this._iitmHook=(Y,X,W)=>{let K=Y,z=K.startsWith("node:"),G,H;if(z){let B=Y.slice(5);if(_X(B))Y=B}else if(K.startsWith("file://")){let B=Error.stackTraceLimit;Error.stackTraceLimit=0;try{G=DW0(Y),Y=G}catch(V){}if(Error.stackTraceLimit=B,G){let V=wW0(G);if(V)Y=V.name,H=V.basedir}}if(Z){for(let B of Z)if(G&&B===G)R1(Q,X,G,void 0);else if(B===Y){if(!H)R1(Q,X,Y,H);else if(H.endsWith(jW0.get(K)))R1(Q,X,Y,H);else if($){let V=Y+gR.sep+gR.relative(H,G);R1(Q,X,V,H)}}else if(B===W)R1(Q,X,W,H)}else R1(Q,X,Y,H)},dR(this._iitmHook)}G5.prototype.unhook=function(){cR(this._iitmHook)};A1.exports=G5;A1.exports.Hook=G5;A1.exports.addHook=dR;A1.exports.removeHook=cR;A1.exports.createAddHookMessageChannel=LW0});var gX=w((mR)=>{Object.defineProperty(mR,"__esModule",{value:!0});mR.isWrapped=mR.safeExecuteInTheMiddleAsync=mR.safeExecuteInTheMiddle=void 0;function OW0(Z,J,Q){let $,Y;try{Y=Z()}catch(X){$=X}finally{if(J($,Y),$&&!Q)throw $;return Y}}mR.safeExecuteInTheMiddle=OW0;async function CW0(Z,J,Q){let $,Y;try{Y=await Z()}catch(X){$=X}finally{if(await J($,Y),$&&!Q)throw $;return Y}}mR.safeExecuteInTheMiddleAsync=CW0;function PW0(Z){return typeof Z==="function"&&typeof Z.__original==="function"&&typeof Z.__unwrap==="function"&&Z.__wrapped===!0}mR.isWrapped=PW0});var aR=w((oR)=>{Object.defineProperty(oR,"__esModule",{value:!0});oR.InstrumentationBase=void 0;var B5=A("path"),lR=A("util"),RW0=KR(),dX=MX(),AW0=FR(),IW0=hR(),NW0=xX(),H5=C(),TW0=M7(),fW0=A("fs"),EW0=gX();class iR extends AW0.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=IW0.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(Z,J,Q){super(Z,J,Q);let $=this.init();if($&&!Array.isArray($))$=[$];if(this._modules=$||[],this._config.enabled)this.enable()}_wrap=(Z,J,Q)=>{if((0,EW0.isWrapped)(Z[J]))this._unwrap(Z,J);if(!lR.types.isProxy(Z))return(0,dX.wrap)(Z,J,Q);else{let $=(0,dX.wrap)(Object.assign({},Z),J,Q);return Object.defineProperty(Z,J,{value:$}),$}};_unwrap=(Z,J)=>{if(!lR.types.isProxy(Z))return(0,dX.unwrap)(Z,J);else return Object.defineProperty(Z,J,{value:Z[J]})};_massWrap=(Z,J,Q)=>{if(!Z){H5.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray(Z))Z=[Z];if(!(J&&Array.isArray(J))){H5.diag.error("must provide one or more functions to wrap on modules");return}Z.forEach(($)=>{J.forEach((Y)=>{this._wrap($,Y,Q)})})};_massUnwrap=(Z,J)=>{if(!Z){H5.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray(Z))Z=[Z];if(!(J&&Array.isArray(J))){H5.diag.error("must provide one or more functions to wrap on modules");return}Z.forEach((Q)=>{J.forEach(($)=>{this._unwrap(Q,$)})})};_warnOnPreloadedModules(){this._modules.forEach((Z)=>{let{name:J}=Z;try{let Q=A.resolve(J);if(A.cache[Q])this._diag.warn(`Module ${J} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${J}`)}catch{}})}_extractPackageVersion(Z){try{let J=(0,fW0.readFileSync)(B5.join(Z,"package.json"),{encoding:"utf8"}),Q=JSON.parse(J).version;return typeof Q==="string"?Q:void 0}catch{H5.diag.warn("Failed extracting version",Z)}return}_onRequire(Z,J,Q,$){if(!$){if(typeof Z.patch==="function"){if(Z.moduleExports=J,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:Z.name}),Z.patch(J)}return J}let Y=this._extractPackageVersion($);if(Z.moduleVersion=Y,Z.name===Q){if(pR(Z.supportedVersions,Y,Z.includePrerelease)){if(typeof Z.patch==="function"){if(Z.moduleExports=J,this._enabled)return this._diag.debug("Applying instrumentation patch for module on require hook",{module:Z.name,version:Z.moduleVersion,baseDir:$}),Z.patch(J,Z.moduleVersion)}}return J}let X=Z.files??[],W=B5.normalize(Q);return X.filter((z)=>z.name===W&&pR(z.supportedVersions,Y,Z.includePrerelease)).reduce((z,G)=>{if(G.moduleExports=z,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:Z.name,version:Z.moduleVersion,fileName:G.name,baseDir:$}),G.patch(z,Z.moduleVersion);return z},J)}enable(){if(this._enabled)return;if(this._enabled=!0,this._hooks.length>0){for(let Z of this._modules){if(typeof Z.patch==="function"&&Z.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:Z.name,version:Z.moduleVersion}),Z.patch(Z.moduleExports,Z.moduleVersion);for(let J of Z.files)if(J.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:Z.name,version:Z.moduleVersion,fileName:J.name}),J.patch(J.moduleExports,Z.moduleVersion)}return}this._warnOnPreloadedModules();for(let Z of this._modules){let J=(X,W,K)=>{if(!K&&B5.isAbsolute(W)){let z=B5.parse(W);W=z.name,K=z.dir}return this._onRequire(Z,X,W,K)},Q=(X,W,K)=>{return this._onRequire(Z,X,W,K)},$=B5.isAbsolute(Z.name)?new TW0.Hook([Z.name],{internals:!0},Q):this._requireInTheMiddleSingleton.register(Z.name,Q);this._hooks.push($);let Y=new NW0.Hook([Z.name],{internals:!0},J);this._hooks.push(Y)}}disable(){if(!this._enabled)return;this._enabled=!1;for(let Z of this._modules){if(typeof Z.unpatch==="function"&&Z.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:Z.name,version:Z.moduleVersion}),Z.unpatch(Z.moduleExports,Z.moduleVersion);for(let J of Z.files)if(J.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:Z.name,version:Z.moduleVersion,fileName:J.name}),J.unpatch(J.moduleExports,Z.moduleVersion)}}isEnabled(){return this._enabled}}oR.InstrumentationBase=iR;function pR(Z,J,Q){if(typeof J>"u")return Z.includes("*");return Z.some(($)=>{return(0,RW0.satisfies)(J,$,{includePrerelease:Q})})}});var sR=w((cX)=>{Object.defineProperty(cX,"__esModule",{value:!0});cX.normalize=void 0;var yW0=A("path");Object.defineProperty(cX,"normalize",{enumerable:!0,get:function(){return yW0.normalize}})});var rR=w(($Q)=>{Object.defineProperty($Q,"__esModule",{value:!0});$Q.normalize=$Q.InstrumentationBase=void 0;var SW0=aR();Object.defineProperty($Q,"InstrumentationBase",{enumerable:!0,get:function(){return SW0.InstrumentationBase}});var _W0=sR();Object.defineProperty($Q,"normalize",{enumerable:!0,get:function(){return _W0.normalize}})});var mX=w((YQ)=>{Object.defineProperty(YQ,"__esModule",{value:!0});YQ.normalize=YQ.InstrumentationBase=void 0;var tR=rR();Object.defineProperty(YQ,"InstrumentationBase",{enumerable:!0,get:function(){return tR.InstrumentationBase}});Object.defineProperty(YQ,"normalize",{enumerable:!0,get:function(){return tR.normalize}})});var QA=w((ZA)=>{Object.defineProperty(ZA,"__esModule",{value:!0});ZA.InstrumentationNodeModuleDefinition=void 0;class eR{files;name;supportedVersions;patch;unpatch;constructor(Z,J,Q,$,Y){this.files=Y||[],this.name=Z,this.supportedVersions=J,this.patch=Q,this.unpatch=$}}ZA.InstrumentationNodeModuleDefinition=eR});var WA=w((YA)=>{Object.defineProperty(YA,"__esModule",{value:!0});YA.InstrumentationNodeModuleFile=void 0;var xW0=mX();class $A{name;supportedVersions;patch;unpatch;constructor(Z,J,Q,$){this.name=(0,xW0.normalize)(Z),this.supportedVersions=J,this.patch=Q,this.unpatch=$}}YA.InstrumentationNodeModuleFile=$A});var BA=w((zA)=>{Object.defineProperty(zA,"__esModule",{value:!0});zA.semconvStabilityFromStr=zA.SemconvStability=void 0;var XQ;(function(Z){Z[Z.STABLE=1]="STABLE",Z[Z.OLD=2]="OLD",Z[Z.DUPLICATE=3]="DUPLICATE"})(XQ=zA.SemconvStability||(zA.SemconvStability={}));function gW0(Z,J){let Q=XQ.OLD,$=J?.split(",").map((Y)=>Y.trim()).filter((Y)=>Y!=="");for(let Y of $??[])if(Y.toLowerCase()===Z+"/dup"){Q=XQ.DUPLICATE;break}else if(Y.toLowerCase()===Z)Q=XQ.STABLE;return Q}zA.semconvStabilityFromStr=gW0});var c=w((B9)=>{Object.defineProperty(B9,"__esModule",{value:!0});B9.semconvStabilityFromStr=B9.SemconvStability=B9.safeExecuteInTheMiddleAsync=B9.safeExecuteInTheMiddle=B9.isWrapped=B9.InstrumentationNodeModuleFile=B9.InstrumentationNodeModuleDefinition=B9.InstrumentationBase=B9.registerInstrumentations=void 0;var dW0=sM();Object.defineProperty(B9,"registerInstrumentations",{enumerable:!0,get:function(){return dW0.registerInstrumentations}});var cW0=mX();Object.defineProperty(B9,"InstrumentationBase",{enumerable:!0,get:function(){return cW0.InstrumentationBase}});var mW0=QA();Object.defineProperty(B9,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return mW0.InstrumentationNodeModuleDefinition}});var uW0=WA();Object.defineProperty(B9,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return uW0.InstrumentationNodeModuleFile}});var uX=gX();Object.defineProperty(B9,"isWrapped",{enumerable:!0,get:function(){return uX.isWrapped}});Object.defineProperty(B9,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return uX.safeExecuteInTheMiddle}});Object.defineProperty(B9,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return uX.safeExecuteInTheMiddleAsync}});var HA=BA();Object.defineProperty(B9,"SemconvStability",{enumerable:!0,get:function(){return HA.SemconvStability}});Object.defineProperty(B9,"semconvStabilityFromStr",{enumerable:!0,get:function(){return HA.semconvStabilityFromStr}})});var wA=w((VA)=>{Object.defineProperty(VA,"__esModule",{value:!0});VA.HTTP_FLAVOR_VALUE_HTTP_1_1=VA.NET_TRANSPORT_VALUE_IP_UDP=VA.NET_TRANSPORT_VALUE_IP_TCP=VA.ATTR_NET_TRANSPORT=VA.ATTR_NET_PEER_PORT=VA.ATTR_NET_PEER_NAME=VA.ATTR_NET_PEER_IP=VA.ATTR_NET_HOST_PORT=VA.ATTR_NET_HOST_NAME=VA.ATTR_NET_HOST_IP=VA.ATTR_HTTP_USER_AGENT=VA.ATTR_HTTP_URL=VA.ATTR_HTTP_TARGET=VA.ATTR_HTTP_STATUS_CODE=VA.ATTR_HTTP_SERVER_NAME=VA.ATTR_HTTP_SCHEME=VA.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=VA.ATTR_HTTP_RESPONSE_CONTENT_LENGTH=VA.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=VA.ATTR_HTTP_REQUEST_CONTENT_LENGTH=VA.ATTR_HTTP_METHOD=VA.ATTR_HTTP_HOST=VA.ATTR_HTTP_FLAVOR=VA.ATTR_HTTP_CLIENT_IP=VA.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST=VA.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT=VA.ATTR_USER_AGENT_SYNTHETIC_TYPE=void 0;VA.ATTR_USER_AGENT_SYNTHETIC_TYPE="user_agent.synthetic.type";VA.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT="bot";VA.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST="test";VA.ATTR_HTTP_CLIENT_IP="http.client_ip";VA.ATTR_HTTP_FLAVOR="http.flavor";VA.ATTR_HTTP_HOST="http.host";VA.ATTR_HTTP_METHOD="http.method";VA.ATTR_HTTP_REQUEST_CONTENT_LENGTH="http.request_content_length";VA.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED="http.request_content_length_uncompressed";VA.ATTR_HTTP_RESPONSE_CONTENT_LENGTH="http.response_content_length";VA.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED="http.response_content_length_uncompressed";VA.ATTR_HTTP_SCHEME="http.scheme";VA.ATTR_HTTP_SERVER_NAME="http.server_name";VA.ATTR_HTTP_STATUS_CODE="http.status_code";VA.ATTR_HTTP_TARGET="http.target";VA.ATTR_HTTP_URL="http.url";VA.ATTR_HTTP_USER_AGENT="http.user_agent";VA.ATTR_NET_HOST_IP="net.host.ip";VA.ATTR_NET_HOST_NAME="net.host.name";VA.ATTR_NET_HOST_PORT="net.host.port";VA.ATTR_NET_PEER_IP="net.peer.ip";VA.ATTR_NET_PEER_NAME="net.peer.name";VA.ATTR_NET_PEER_PORT="net.peer.port";VA.ATTR_NET_TRANSPORT="net.transport";VA.NET_TRANSPORT_VALUE_IP_TCP="ip_tcp";VA.NET_TRANSPORT_VALUE_IP_UDP="ip_udp";VA.HTTP_FLAVOR_VALUE_HTTP_1_1="1.1"});var UA=w((DA)=>{Object.defineProperty(DA,"__esModule",{value:!0});DA.AttributeNames=void 0;var jK0;(function(Z){Z.HTTP_ERROR_NAME="http.error_name",Z.HTTP_ERROR_MESSAGE="http.error_message",Z.HTTP_STATUS_TEXT="http.status_text"})(jK0=DA.AttributeNames||(DA.AttributeNames={}))});var pX=w((jA)=>{Object.defineProperty(jA,"__esModule",{value:!0});jA.DEFAULT_QUERY_STRINGS_TO_REDACT=jA.STR_REDACTED=jA.SYNTHETIC_BOT_NAMES=jA.SYNTHETIC_TEST_NAMES=void 0;jA.SYNTHETIC_TEST_NAMES=["alwayson"];jA.SYNTHETIC_BOT_NAMES=["googlebot","bingbot"];jA.STR_REDACTED="REDACTED";jA.DEFAULT_QUERY_STRINGS_TO_REDACT=["sig","Signature","AWSAccessKeyId","X-Goog-Signature"]});var OA=w((Bb0,LA)=>{var CK0=A("util");function iX(Z,J){Error.captureStackTrace(this,iX),this.name=this.constructor.name,this.message=Z,this.input=J}CK0.inherits(iX,Error);LA.exports=iX});var PA=w((Hb0,CA)=>{function PK0(Z){return Z===34||Z===40||Z===41||Z===44||Z===47||Z>=58&&Z<=64||Z>=91&&Z<=93||Z===123||Z===125}function kK0(Z){return Z===33||Z>=35&&Z<=39||Z===42||Z===43||Z===45||Z===46||Z>=48&&Z<=57||Z>=65&&Z<=90||Z>=94&&Z<=122||Z===124||Z===126}function MK0(Z){return Z>=32&&Z<=126}function RK0(Z){return Z>=128&&Z<=255}CA.exports={isDelimiter:PK0,isTokenChar:kK0,isExtended:RK0,isPrint:MK0}});var IA=w((Vb0,AA)=>{var AK0=A("util"),I1=OA(),WQ=PA(),IK0=WQ.isDelimiter,kA=WQ.isTokenChar,MA=WQ.isExtended,NK0=WQ.isPrint;function RA(Z){return Z.replace(/\\(.)/g,"$1")}function V5(Z,J){return AK0.format("Unexpected character '%s' at index %d",Z.charAt(J),J)}function TK0(Z){var J=!1,Q=!1,$=!1,Y={},X=[],W=-1,K=-1,z,G;for(var H=0;H{Object.defineProperty(vA,"__esModule",{value:!0});vA.headerCapture=vA.getIncomingStableRequestMetricAttributesOnResponse=vA.getIncomingRequestMetricAttributesOnResponse=vA.getIncomingRequestAttributesOnResponse=vA.getIncomingRequestMetricAttributes=vA.getIncomingRequestAttributes=vA.getRemoteClientAddress=vA.getOutgoingStableRequestMetricAttributesOnResponse=vA.getOutgoingRequestMetricAttributesOnResponse=vA.getOutgoingRequestAttributesOnResponse=vA.setAttributesFromHttpKind=vA.getOutgoingRequestMetricAttributes=vA.getOutgoingRequestAttributes=vA.extractHostnameAndPort=vA.isValidOptionsType=vA.getRequestInfo=vA.isCompressed=vA.setResponseContentLengthAttribute=vA.setRequestContentLengthAttribute=vA.setSpanWithError=vA.satisfiesPattern=vA.parseResponseStatus=vA.getAbsoluteUrl=void 0;var F5=C(),o=s(),y=wA(),NA=BX(),M6=c(),fK0=A("url"),zQ=UA(),TA=pX(),KQ=pX(),EK0=IA(),yK0=(Z,J,Q="http:",$=Array.from(KQ.DEFAULT_QUERY_STRINGS_TO_REDACT))=>{let Y=Z||{},X=Y.protocol||Q,W=(Y.port||"").toString(),K=Y.path||"/",z=Y.host||Y.hostname||J.host||"localhost";if(z.indexOf(":")===-1&&W&&W!=="80"&&W!=="443")z+=`:${W}`;if(K.includes("?"))try{let H=new URL(K,"http://localhost"),B=$||[];for(let V of B)if(H.searchParams.get(V))H.searchParams.set(V,KQ.STR_REDACTED);K=`${H.pathname}${H.search}`}catch{}let G=Y.auth?`${KQ.STR_REDACTED}:${KQ.STR_REDACTED}@`:"";return`${X}//${G}${z}${K}`};vA.getAbsoluteUrl=yK0;var hK0=(Z,J)=>{let Q=Z===F5.SpanKind.CLIENT?400:500;if(J&&J>=100&&J{if(typeof J==="string")return J===Z;else if(J instanceof RegExp)return J.test(Z);else if(typeof J==="function")return J(Z);else throw TypeError("Pattern is in unsupported datatype")};vA.satisfiesPattern=SK0;var _K0=(Z,J,Q)=>{let $=J.message;if(Q&M6.SemconvStability.OLD)Z.setAttribute(zQ.AttributeNames.HTTP_ERROR_NAME,J.name),Z.setAttribute(zQ.AttributeNames.HTTP_ERROR_MESSAGE,$);if(Q&M6.SemconvStability.STABLE)Z.setAttribute(o.ATTR_ERROR_TYPE,J.name);Z.setStatus({code:F5.SpanStatusCode.ERROR,message:$}),Z.recordException(J)};vA.setSpanWithError=_K0;var vK0=(Z,J)=>{let Q=EA(Z.headers);if(Q===null)return;if(vA.isCompressed(Z.headers))J[y.ATTR_HTTP_REQUEST_CONTENT_LENGTH]=Q;else J[y.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED]=Q};vA.setRequestContentLengthAttribute=vK0;var bK0=(Z,J)=>{let Q=EA(Z.headers);if(Q===null)return;if(vA.isCompressed(Z.headers))J[y.ATTR_HTTP_RESPONSE_CONTENT_LENGTH]=Q;else J[y.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED]=Q};vA.setResponseContentLengthAttribute=bK0;function EA(Z){let J=Z["content-length"];if(J===void 0)return null;let Q=parseInt(J,10);if(isNaN(Q))return null;return Q}var xK0=(Z)=>{let J=Z["content-encoding"];return!!J&&J!=="identity"};vA.isCompressed=xK0;function gK0(Z){let{hostname:J,pathname:Q,port:$,username:Y,password:X,search:W,protocol:K,hash:z,href:G,origin:H,host:B}=new URL(Z),V={protocol:K,hostname:J&&J[0]==="["?J.slice(1,-1):J,hash:z,search:W,pathname:Q,path:`${Q||""}${W||""}`,href:G,origin:H,host:B};if($!=="")V.port=Number($);if(Y||X)V.auth=`${decodeURIComponent(Y)}:${decodeURIComponent(X)}`;return V}var dK0=(Z,J,Q)=>{let $,Y,X,W=!1;if(typeof J==="string"){try{let z=gK0(J);X=z,$=z.pathname||"/"}catch(z){W=!0,Z.verbose("Unable to parse URL provided to HTTP request, using fallback to determine path. Original error:",z),X={path:J},$=X.path||"/"}if(Y=`${X.protocol||"http:"}//${X.host}`,Q!==void 0)Object.assign(X,Q)}else if(J instanceof fK0.URL){if(X={protocol:J.protocol,hostname:typeof J.hostname==="string"&&J.hostname.startsWith("[")?J.hostname.slice(1,-1):J.hostname,path:`${J.pathname||""}${J.search||""}`},J.port!=="")X.port=Number(J.port);if(J.username||J.password)X.auth=`${J.username}:${J.password}`;if($=J.pathname,Y=J.origin,Q!==void 0)Object.assign(X,Q)}else{X=Object.assign({protocol:J.host?"http:":void 0},J);let z=X.host||(X.port!=null?`${X.hostname}${X.port}`:X.hostname);if(Y=`${X.protocol||"http:"}//${z}`,$=J.pathname,!$&&X.path)try{$=new URL(X.path,Y).pathname||"/"}catch{$="/"}}let K=X.method?X.method.toUpperCase():"GET";return{origin:Y,pathname:$,method:K,optionsParsed:X,invalidUrl:W}};vA.getRequestInfo=dK0;var cK0=(Z)=>{if(!Z)return!1;let J=typeof Z;return J==="string"||J==="object"&&!Array.isArray(Z)};vA.isValidOptionsType=cK0;var mK0=(Z)=>{if(Z.hostname&&Z.port)return{hostname:Z.hostname,port:Z.port};let J=Z.host?.match(/^([^:/ ]+)(:\d{1,5})?/)||null,Q=Z.hostname||(J===null?"localhost":J[1]),$=Z.port;if(!$)if(J&&J[2])$=J[2].substring(1);else $=Z.protocol==="https:"?"443":"80";return{hostname:Q,port:$}};vA.extractHostnameAndPort=mK0;var uK0=(Z,J,Q,$)=>{let{hostname:Y,port:X}=J,W=Z.method??"GET",K=SA(W),z=Z.headers||{},G=z["user-agent"],H=vA.getAbsoluteUrl(Z,z,`${J.component}:`,J.redactedQueryParams),B={[y.ATTR_HTTP_URL]:H,[y.ATTR_HTTP_METHOD]:W,[y.ATTR_HTTP_TARGET]:Z.path||"/",[y.ATTR_NET_PEER_NAME]:Y,[y.ATTR_HTTP_HOST]:z.host??`${Y}:${X}`},V={[o.ATTR_HTTP_REQUEST_METHOD]:K,[o.ATTR_SERVER_ADDRESS]:Y,[o.ATTR_SERVER_PORT]:Number(X),[o.ATTR_URL_FULL]:H,[o.ATTR_USER_AGENT_ORIGINAL]:G};if(W!==K)V[o.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]=W;if($&&G)V[y.ATTR_USER_AGENT_SYNTHETIC_TYPE]=yA(G);if(G!==void 0)B[y.ATTR_HTTP_USER_AGENT]=G;switch(Q){case M6.SemconvStability.STABLE:return Object.assign(V,J.hookAttributes);case M6.SemconvStability.OLD:return Object.assign(B,J.hookAttributes)}return Object.assign(B,V,J.hookAttributes)};vA.getOutgoingRequestAttributes=uK0;var lK0=(Z)=>{let J={};return J[y.ATTR_HTTP_METHOD]=Z[y.ATTR_HTTP_METHOD],J[y.ATTR_NET_PEER_NAME]=Z[y.ATTR_NET_PEER_NAME],J};vA.getOutgoingRequestMetricAttributes=lK0;var pK0=(Z,J)=>{if(Z)if(J[y.ATTR_HTTP_FLAVOR]=Z,Z.toUpperCase()!=="QUIC")J[y.ATTR_NET_TRANSPORT]=y.NET_TRANSPORT_VALUE_IP_TCP;else J[y.ATTR_NET_TRANSPORT]=y.NET_TRANSPORT_VALUE_IP_UDP};vA.setAttributesFromHttpKind=pK0;var yA=(Z)=>{let J=String(Z).toLowerCase();for(let Q of TA.SYNTHETIC_TEST_NAMES)if(J.includes(Q))return y.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;for(let Q of TA.SYNTHETIC_BOT_NAMES)if(J.includes(Q))return y.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT;return},iK0=(Z,J)=>{let{statusCode:Q,statusMessage:$,httpVersion:Y,socket:X}=Z,W={},K={};if(Q!=null)K[o.ATTR_HTTP_RESPONSE_STATUS_CODE]=Q;if(X){let{remoteAddress:z,remotePort:G}=X;W[y.ATTR_NET_PEER_IP]=z,W[y.ATTR_NET_PEER_PORT]=G,K[o.ATTR_NETWORK_PEER_ADDRESS]=z,K[o.ATTR_NETWORK_PEER_PORT]=G,K[o.ATTR_NETWORK_PROTOCOL_VERSION]=Z.httpVersion}if(vA.setResponseContentLengthAttribute(Z,W),Q)W[y.ATTR_HTTP_STATUS_CODE]=Q,W[zQ.AttributeNames.HTTP_STATUS_TEXT]=($||"").toUpperCase();switch(vA.setAttributesFromHttpKind(Y,W),J){case M6.SemconvStability.STABLE:return K;case M6.SemconvStability.OLD:return W}return Object.assign(W,K)};vA.getOutgoingRequestAttributesOnResponse=iK0;var oK0=(Z)=>{let J={};return J[y.ATTR_NET_PEER_PORT]=Z[y.ATTR_NET_PEER_PORT],J[y.ATTR_HTTP_STATUS_CODE]=Z[y.ATTR_HTTP_STATUS_CODE],J[y.ATTR_HTTP_FLAVOR]=Z[y.ATTR_HTTP_FLAVOR],J};vA.getOutgoingRequestMetricAttributesOnResponse=oK0;var nK0=(Z)=>{let J={};if(Z[o.ATTR_NETWORK_PROTOCOL_VERSION])J[o.ATTR_NETWORK_PROTOCOL_VERSION]=Z[o.ATTR_NETWORK_PROTOCOL_VERSION];if(Z[o.ATTR_HTTP_RESPONSE_STATUS_CODE])J[o.ATTR_HTTP_RESPONSE_STATUS_CODE]=Z[o.ATTR_HTTP_RESPONSE_STATUS_CODE];return J};vA.getOutgoingStableRequestMetricAttributesOnResponse=nK0;function LZ(Z,J){let Q=Z.split(":");if(Q.length===1){if(J==="http")return{host:Q[0],port:"80"};if(J==="https")return{host:Q[0],port:"443"};return{host:Q[0]}}if(Q.length===2)return{host:Q[0],port:Q[1]};if(Q[0].startsWith("[")){if(Q[Q.length-1].endsWith("]")){if(J==="http")return{host:Z,port:"80"};if(J==="https")return{host:Z,port:"443"}}else if(Q[Q.length-2].endsWith("]"))return{host:Q.slice(0,-1).join(":"),port:Q[Q.length-1]}}return{host:Z}}function aK0(Z,J){let Q=Z.headers.forwarded;if(Q){for(let X of _A(Q))if(X.host)return LZ(X.host,X.proto)}let $=Z.headers["x-forwarded-host"];if(typeof $==="string"){if(typeof Z.headers["x-forwarded-proto"]==="string")return LZ($,Z.headers["x-forwarded-proto"]);if(Array.isArray(Z.headers["x-forwarded-proto"]))return LZ($,Z.headers["x-forwarded-proto"][0]);return LZ($)}else if(Array.isArray($)&&typeof $[0]==="string"&&$[0].length>0){if(typeof Z.headers["x-forwarded-proto"]==="string")return LZ($[0],Z.headers["x-forwarded-proto"]);if(Array.isArray(Z.headers["x-forwarded-proto"]))return LZ($[0],Z.headers["x-forwarded-proto"][0]);return LZ($[0])}let Y=Z.headers.host;if(typeof Y==="string"&&Y.length>0)return LZ(Y,J);return null}function hA(Z){let J=Z.headers.forwarded;if(J){for(let Y of _A(J))if(Y.for)return fA(Y.for)}let Q=Z.headers["x-forwarded-for"];if(Q){let Y;if(typeof Q==="string")Y=Q;else if(Array.isArray(Q))Y=Q[0];if(typeof Y==="string")return Y=Y.split(",")[0].trim(),fA(Y)}let $=Z.socket.remoteAddress;if($)return $;return null}vA.getRemoteClientAddress=hA;function fA(Z){try{let{hostname:J}=new URL(`http://${Z}`);if(J.startsWith("[")&&J.endsWith("]"))return J.slice(1,-1);return J}catch{return Z}}function sK0(Z,J,Q){try{if(J.headers.host)return new URL(J.url??"/",`${Z}://${J.headers.host}`);else{let $=new URL(J.url??"/",`${Z}://localhost`);return{pathname:$.pathname,search:$.search,toString:function(){return $.pathname+$.search}}}}catch($){return Q.verbose("Unable to get URL from request",$),{}}}var rK0=(Z,J,Q)=>{let{component:$,enableSyntheticSourceDetection:Y,hookAttributes:X,semconvStability:W,serverName:K}=J,{headers:z,httpVersion:G,method:H}=Z,{host:B,"user-agent":V,"x-forwarded-for":F}=z,D=sK0($,Z,Q),U,j;if(W!==M6.SemconvStability.OLD){let L=SA(H),O=aK0(Z,$),M=hA(Z);if(U={[o.ATTR_HTTP_REQUEST_METHOD]:L,[o.ATTR_URL_SCHEME]:$,[o.ATTR_SERVER_ADDRESS]:O?.host,[o.ATTR_NETWORK_PEER_ADDRESS]:Z.socket.remoteAddress,[o.ATTR_NETWORK_PEER_PORT]:Z.socket.remotePort,[o.ATTR_NETWORK_PROTOCOL_VERSION]:Z.httpVersion,[o.ATTR_USER_AGENT_ORIGINAL]:V},D.pathname!=null)U[o.ATTR_URL_PATH]=D.pathname;if(D.search)U[o.ATTR_URL_QUERY]=D.search.slice(1);if(M!=null)U[o.ATTR_CLIENT_ADDRESS]=M;if(O?.port!=null)U[o.ATTR_SERVER_PORT]=Number(O.port);if(H!==L)U[o.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]=H;if(Y&&V)U[y.ATTR_USER_AGENT_SYNTHETIC_TYPE]=yA(V)}if(W!==M6.SemconvStability.STABLE){let L=B?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost";if(j={[y.ATTR_HTTP_URL]:D.toString(),[y.ATTR_HTTP_HOST]:B,[y.ATTR_NET_HOST_NAME]:L,[y.ATTR_HTTP_METHOD]:H,[y.ATTR_HTTP_SCHEME]:$},typeof F==="string")j[y.ATTR_HTTP_CLIENT_IP]=F.split(",")[0];if(typeof K==="string")j[y.ATTR_HTTP_SERVER_NAME]=K;if(D.pathname)j[y.ATTR_HTTP_TARGET]=D.pathname+D.search||"/";if(V!==void 0)j[y.ATTR_HTTP_USER_AGENT]=V;vA.setRequestContentLengthAttribute(Z,j),vA.setAttributesFromHttpKind(G,j)}switch(W){case M6.SemconvStability.STABLE:return Object.assign(U,X);case M6.SemconvStability.OLD:return Object.assign(j,X);default:return Object.assign(j,U,X)}};vA.getIncomingRequestAttributes=rK0;var tK0=(Z)=>{let J={};return J[y.ATTR_HTTP_SCHEME]=Z[y.ATTR_HTTP_SCHEME],J[y.ATTR_HTTP_METHOD]=Z[y.ATTR_HTTP_METHOD],J[y.ATTR_NET_HOST_NAME]=Z[y.ATTR_NET_HOST_NAME],J[y.ATTR_HTTP_FLAVOR]=Z[y.ATTR_HTTP_FLAVOR],J};vA.getIncomingRequestMetricAttributes=tK0;var eK0=(Z,J,Q)=>{let{socket:$}=Z,{statusCode:Y,statusMessage:X}=J,W={[o.ATTR_HTTP_RESPONSE_STATUS_CODE]:Y},K=(0,NA.getRPCMetadata)(F5.context.active()),z={};if($){let{localAddress:G,localPort:H,remoteAddress:B,remotePort:V}=$;z[y.ATTR_NET_HOST_IP]=G,z[y.ATTR_NET_HOST_PORT]=H,z[y.ATTR_NET_PEER_IP]=B,z[y.ATTR_NET_PEER_PORT]=V}if(z[y.ATTR_HTTP_STATUS_CODE]=Y,z[zQ.AttributeNames.HTTP_STATUS_TEXT]=(X||"").toUpperCase(),K?.type===NA.RPCType.HTTP&&K.route!==void 0)z[o.ATTR_HTTP_ROUTE]=K.route,W[o.ATTR_HTTP_ROUTE]=K.route;switch(Q){case M6.SemconvStability.STABLE:return W;case M6.SemconvStability.OLD:return z}return Object.assign(z,W)};vA.getIncomingRequestAttributesOnResponse=eK0;var Zz0=(Z)=>{let J={};if(J[y.ATTR_HTTP_STATUS_CODE]=Z[y.ATTR_HTTP_STATUS_CODE],J[y.ATTR_NET_HOST_PORT]=Z[y.ATTR_NET_HOST_PORT],Z[o.ATTR_HTTP_ROUTE]!==void 0)J[o.ATTR_HTTP_ROUTE]=Z[o.ATTR_HTTP_ROUTE];return J};vA.getIncomingRequestMetricAttributesOnResponse=Zz0;var Jz0=(Z)=>{let J={};if(Z[o.ATTR_HTTP_ROUTE]!==void 0)J[o.ATTR_HTTP_ROUTE]=Z[o.ATTR_HTTP_ROUTE];if(Z[o.ATTR_HTTP_RESPONSE_STATUS_CODE])J[o.ATTR_HTTP_RESPONSE_STATUS_CODE]=Z[o.ATTR_HTTP_RESPONSE_STATUS_CODE];return J};vA.getIncomingStableRequestMetricAttributesOnResponse=Jz0;function Qz0(Z,J,Q){let $=new Map;for(let Y=0,X=J.length;Y{let X={};for(let W of $.keys()){let K=Y(W);if(K===void 0)continue;let z=$.get(W),G=`http.${Z}.header.${z}`;if(typeof K==="string")X[G]=[K];else if(Array.isArray(K))X[G]=K;else X[G]=[K]}return X}}vA.headerCapture=Qz0;var $z0=new Set(["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH","QUERY"]);function SA(Z){if(Z==null)return"GET";let J=Z.toUpperCase();if($z0.has(J))return J;return"_OTHER"}function _A(Z){try{return EK0(Z)}catch{return[]}}});var pA=w((uA)=>{Object.defineProperty(uA,"__esModule",{value:!0});uA.HttpInstrumentation=void 0;var u=C(),OZ=BX(),Cz0=A("url"),Pz0=LM(),y0=c(),aX=A("events"),G0=s(),L0=cA();class mA extends y0.InstrumentationBase{_spanNotEnded=new WeakSet;_headerCapture;_httpPatched=!1;_httpsPatched=!1;_semconvStability=y0.SemconvStability.OLD;constructor(Z={}){super("@opentelemetry/instrumentation-http",Pz0.VERSION,Z);this._semconvStability=(0,y0.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._headerCapture=this._createHeaderCapture(this._semconvStability)}_updateMetricInstruments(){this._oldHttpServerDurationHistogram=this.meter.createHistogram("http.server.duration",{description:"Measures the duration of inbound HTTP requests.",unit:"ms",valueType:u.ValueType.DOUBLE}),this._oldHttpClientDurationHistogram=this.meter.createHistogram("http.client.duration",{description:"Measures the duration of outbound HTTP requests.",unit:"ms",valueType:u.ValueType.DOUBLE}),this._stableHttpServerDurationHistogram=this.meter.createHistogram(G0.METRIC_HTTP_SERVER_REQUEST_DURATION,{description:"Duration of HTTP server requests.",unit:"s",valueType:u.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[0.005,0.01,0.025,0.05,0.075,0.1,0.25,0.5,0.75,1,2.5,5,7.5,10]}}),this._stableHttpClientDurationHistogram=this.meter.createHistogram(G0.METRIC_HTTP_CLIENT_REQUEST_DURATION,{description:"Duration of HTTP client requests.",unit:"s",valueType:u.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[0.005,0.01,0.025,0.05,0.075,0.1,0.25,0.5,0.75,1,2.5,5,7.5,10]}})}_recordServerDuration(Z,J,Q){if(this._semconvStability&y0.SemconvStability.OLD)this._oldHttpServerDurationHistogram.record(Z,J);if(this._semconvStability&y0.SemconvStability.STABLE)this._stableHttpServerDurationHistogram.record(Z/1000,Q)}_recordClientDuration(Z,J,Q){if(this._semconvStability&y0.SemconvStability.OLD)this._oldHttpClientDurationHistogram.record(Z,J);if(this._semconvStability&y0.SemconvStability.STABLE)this._stableHttpClientDurationHistogram.record(Z/1000,Q)}setConfig(Z={}){super.setConfig(Z),this._headerCapture=this._createHeaderCapture(this._semconvStability)}init(){return[this._getHttpsInstrumentation(),this._getHttpInstrumentation()]}_getHttpInstrumentation(){return new y0.InstrumentationNodeModuleDefinition("http",["*"],(Z)=>{if(this._httpPatched)return Z;this._httpPatched=!0;let J=Z[Symbol.toStringTag]==="Module";if(!this.getConfig().disableOutgoingRequestInstrumentation){let Q=this._wrap(Z,"request",this._getPatchOutgoingRequestFunction("http")),$=this._wrap(Z,"get",this._getPatchOutgoingGetFunction(Q));if(J)Z.default.request=Q,Z.default.get=$}if(!this.getConfig().disableIncomingRequestInstrumentation)this._wrap(Z.Server.prototype,"emit",this._getPatchIncomingRequestFunction("http"));return Z},(Z)=>{if(this._httpPatched=!1,Z===void 0)return;if(!this.getConfig().disableOutgoingRequestInstrumentation)this._unwrap(Z,"request"),this._unwrap(Z,"get");if(!this.getConfig().disableIncomingRequestInstrumentation)this._unwrap(Z.Server.prototype,"emit")})}_getHttpsInstrumentation(){return new y0.InstrumentationNodeModuleDefinition("https",["*"],(Z)=>{if(this._httpsPatched)return Z;this._httpsPatched=!0;let J=Z[Symbol.toStringTag]==="Module";if(!this.getConfig().disableOutgoingRequestInstrumentation){let Q=this._wrap(Z,"request",this._getPatchHttpsOutgoingRequestFunction("https")),$=this._wrap(Z,"get",this._getPatchHttpsOutgoingGetFunction(Q));if(J)Z.default.request=Q,Z.default.get=$}if(!this.getConfig().disableIncomingRequestInstrumentation)this._wrap(Z.Server.prototype,"emit",this._getPatchIncomingRequestFunction("https"));return Z},(Z)=>{if(this._httpsPatched=!1,Z===void 0)return;if(!this.getConfig().disableOutgoingRequestInstrumentation)this._unwrap(Z,"request"),this._unwrap(Z,"get");if(!this.getConfig().disableIncomingRequestInstrumentation)this._unwrap(Z.Server.prototype,"emit")})}_getPatchIncomingRequestFunction(Z){return(J)=>{return this._incomingRequestFunction(Z,J)}}_getPatchOutgoingRequestFunction(Z){return(J)=>{return this._outgoingRequestFunction(Z,J)}}_getPatchOutgoingGetFunction(Z){return(J)=>{return function($,...Y){let X=Z($,...Y);return X.end(),X}}}_getPatchHttpsOutgoingRequestFunction(Z){return(J)=>{let Q=this;return function(Y,...X){if(Z==="https"&&typeof Y==="object"&&Y?.constructor?.name!=="URL")Y=Object.assign({},Y),Q._setDefaultOptions(Y);return Q._getPatchOutgoingRequestFunction(Z)(J)(Y,...X)}}}_setDefaultOptions(Z){Z.protocol=Z.protocol||"https:",Z.port=Z.port||443}_getPatchHttpsOutgoingGetFunction(Z){return(J)=>{let Q=this;return function(Y,...X){return Q._getPatchOutgoingGetFunction(Z)(J)(Y,...X)}}}_traceClientRequest(Z,J,Q,$,Y){if(this.getConfig().requestHook)this._callRequestHook(J,Z);let X=!1;return Z.prependListener("response",(W)=>{if(this._diag.debug("outgoingRequest on response()"),Z.listenerCount("response")<=1)W.resume();let K=(0,L0.getOutgoingRequestAttributesOnResponse)(W,this._semconvStability);if(J.setAttributes(K),$=Object.assign($,(0,L0.getOutgoingRequestMetricAttributesOnResponse)(K)),Y=Object.assign(Y,(0,L0.getOutgoingStableRequestMetricAttributesOnResponse)(K)),this.getConfig().responseHook)this._callResponseHook(J,W);J.setAttributes(this._headerCapture.client.captureRequestHeaders((G)=>Z.getHeader(G))),J.setAttributes(this._headerCapture.client.captureResponseHeaders((G)=>W.headers[G])),u.context.bind(u.context.active(),W);let z=()=>{if(this._diag.debug("outgoingRequest on end()"),X)return;X=!0;let G;if(W.aborted&&!W.complete)G={code:u.SpanStatusCode.ERROR};else G={code:(0,L0.parseResponseStatus)(u.SpanKind.CLIENT,W.statusCode)};if(J.setStatus(G),this.getConfig().applyCustomAttributesOnSpan)(0,y0.safeExecuteInTheMiddle)(()=>this.getConfig().applyCustomAttributesOnSpan(J,Z,W),()=>{},!0);this._closeHttpSpan(J,u.SpanKind.CLIENT,Q,$,Y)};W.on("end",z),W.on(aX.errorMonitor,(G)=>{if(this._diag.debug("outgoingRequest on error()",G),X)return;X=!0,this._onOutgoingRequestError(J,$,Y,Q,G)})}),Z.on("close",()=>{if(this._diag.debug("outgoingRequest on request close()"),Z.aborted||X)return;X=!0,this._closeHttpSpan(J,u.SpanKind.CLIENT,Q,$,Y)}),Z.on(aX.errorMonitor,(W)=>{if(this._diag.debug("outgoingRequest on request error()",W),X)return;X=!0,this._onOutgoingRequestError(J,$,Y,Q,W)}),this._diag.debug("http.ClientRequest return request"),Z}_incomingRequestFunction(Z,J){let Q=this;return function(Y,...X){if(Y!=="request")return J.apply(this,[Y,...X]);let W=X[0],K=X[1],z=W.method||"GET";if(Q._diag.debug(`${Z} instrumentation incomingRequest`),(0,y0.safeExecuteInTheMiddle)(()=>Q.getConfig().ignoreIncomingRequestHook?.(W),(O)=>{if(O!=null)Q._diag.error("caught ignoreIncomingRequestHook error: ",O)},!0))return u.context.with((0,OZ.suppressTracing)(u.context.active()),()=>{return u.context.bind(u.context.active(),W),u.context.bind(u.context.active(),K),J.apply(this,[Y,...X])});let G=W.headers,H=(0,L0.getIncomingRequestAttributes)(W,{component:Z,serverName:Q.getConfig().serverName,hookAttributes:Q._callStartSpanHook(W,Q.getConfig().startIncomingSpanHook),semconvStability:Q._semconvStability,enableSyntheticSourceDetection:Q.getConfig().enableSyntheticSourceDetection||!1},Q._diag);Object.assign(H,Q._headerCapture.server.captureRequestHeaders((O)=>W.headers[O]));let B={kind:u.SpanKind.SERVER,attributes:H},V=(0,OZ.hrTime)(),F=(0,L0.getIncomingRequestMetricAttributes)(H),D={[G0.ATTR_HTTP_REQUEST_METHOD]:H[G0.ATTR_HTTP_REQUEST_METHOD],[G0.ATTR_URL_SCHEME]:H[G0.ATTR_URL_SCHEME]};if(H[G0.ATTR_NETWORK_PROTOCOL_VERSION])D[G0.ATTR_NETWORK_PROTOCOL_VERSION]=H[G0.ATTR_NETWORK_PROTOCOL_VERSION];let U=u.propagation.extract(u.ROOT_CONTEXT,G),j=Q._startHttpSpan(z,B,U),L={type:OZ.RPCType.HTTP,span:j};return u.context.with((0,OZ.setRPCMetadata)(u.trace.setSpan(U,j),L),()=>{if(u.context.bind(u.context.active(),W),u.context.bind(u.context.active(),K),Q.getConfig().requestHook)Q._callRequestHook(j,W);if(Q.getConfig().responseHook)Q._callResponseHook(j,K);let O=!1;return K.on("close",()=>{if(O)return;Q._onServerResponseFinish(W,K,j,F,D,V)}),K.on(aX.errorMonitor,(M)=>{O=!0,Q._onServerResponseError(j,F,D,V,M)}),(0,y0.safeExecuteInTheMiddle)(()=>J.apply(this,[Y,...X]),(M)=>{if(M)throw Q._onServerResponseError(j,F,D,V,M),M})})}}_outgoingRequestFunction(Z,J){let Q=this;return function(Y,...X){if(!(0,L0.isValidOptionsType)(Y))return J.apply(this,[Y,...X]);let W=typeof X[0]==="object"&&(typeof Y==="string"||Y instanceof Cz0.URL)?X.shift():void 0,{method:K,invalidUrl:z,optionsParsed:G}=(0,L0.getRequestInfo)(Q._diag,Y,W);if((0,y0.safeExecuteInTheMiddle)(()=>Q.getConfig().ignoreOutgoingRequestHook?.(G),(S)=>{if(S!=null)Q._diag.error("caught ignoreOutgoingRequestHook error: ",S)},!0))return J.apply(this,[G,...X]);let{hostname:H,port:B}=(0,L0.extractHostnameAndPort)(G),V=(0,L0.getOutgoingRequestAttributes)(G,{component:Z,port:B,hostname:H,hookAttributes:Q._callStartSpanHook(G,Q.getConfig().startOutgoingSpanHook),redactedQueryParams:Q.getConfig().redactedQueryParams},Q._semconvStability,Q.getConfig().enableSyntheticSourceDetection||!1),F=(0,OZ.hrTime)(),D=(0,L0.getOutgoingRequestMetricAttributes)(V),U={[G0.ATTR_HTTP_REQUEST_METHOD]:V[G0.ATTR_HTTP_REQUEST_METHOD],[G0.ATTR_SERVER_ADDRESS]:V[G0.ATTR_SERVER_ADDRESS],[G0.ATTR_SERVER_PORT]:V[G0.ATTR_SERVER_PORT]};if(V[G0.ATTR_HTTP_RESPONSE_STATUS_CODE])U[G0.ATTR_HTTP_RESPONSE_STATUS_CODE]=V[G0.ATTR_HTTP_RESPONSE_STATUS_CODE];if(V[G0.ATTR_NETWORK_PROTOCOL_VERSION])U[G0.ATTR_NETWORK_PROTOCOL_VERSION]=V[G0.ATTR_NETWORK_PROTOCOL_VERSION];let j={kind:u.SpanKind.CLIENT,attributes:V},L=Q._startHttpSpan(K,j),O=u.context.active(),M=u.trace.setSpan(O,L);if(!G.headers)G.headers={};else G.headers=Object.assign({},G.headers);return u.propagation.inject(M,G.headers),u.context.with(M,()=>{let S=X[X.length-1];if(typeof S==="function")X[X.length-1]=u.context.bind(O,S);let T=(0,y0.safeExecuteInTheMiddle)(()=>{if(z)return J.apply(this,[Y,...X]);else return J.apply(this,[G,...X])},(n)=>{if(n)throw Q._onOutgoingRequestError(L,D,U,F,n),n});return Q._diag.debug(`${Z} instrumentation outgoingRequest`),u.context.bind(O,T),Q._traceClientRequest(T,L,F,D,U)})}}_onServerResponseFinish(Z,J,Q,$,Y,X){let W=(0,L0.getIncomingRequestAttributesOnResponse)(Z,J,this._semconvStability);$=Object.assign($,(0,L0.getIncomingRequestMetricAttributesOnResponse)(W)),Y=Object.assign(Y,(0,L0.getIncomingStableRequestMetricAttributesOnResponse)(W)),Q.setAttributes(this._headerCapture.server.captureResponseHeaders((z)=>J.getHeader(z))),Q.setAttributes(W).setStatus({code:(0,L0.parseResponseStatus)(u.SpanKind.SERVER,J.statusCode)});let K=W[G0.ATTR_HTTP_ROUTE];if(K)Q.updateName(`${Z.method||"GET"} ${K}`);if(this.getConfig().applyCustomAttributesOnSpan)(0,y0.safeExecuteInTheMiddle)(()=>this.getConfig().applyCustomAttributesOnSpan(Q,Z,J),()=>{},!0);this._closeHttpSpan(Q,u.SpanKind.SERVER,X,$,Y)}_onOutgoingRequestError(Z,J,Q,$,Y){(0,L0.setSpanWithError)(Z,Y,this._semconvStability),Q[G0.ATTR_ERROR_TYPE]=Y.name,this._closeHttpSpan(Z,u.SpanKind.CLIENT,$,J,Q)}_onServerResponseError(Z,J,Q,$,Y){(0,L0.setSpanWithError)(Z,Y,this._semconvStability),Q[G0.ATTR_ERROR_TYPE]=Y.name,this._closeHttpSpan(Z,u.SpanKind.SERVER,$,J,Q)}_startHttpSpan(Z,J,Q=u.context.active()){let $=J.kind===u.SpanKind.CLIENT?this.getConfig().requireParentforOutgoingSpans:this.getConfig().requireParentforIncomingSpans,Y,X=u.trace.getSpan(Q);if($===!0&&(!X||!u.trace.isSpanContextValid(X.spanContext())))Y=u.trace.wrapSpanContext(u.INVALID_SPAN_CONTEXT);else if($===!0&&X?.spanContext().isRemote)Y=X;else Y=this.tracer.startSpan(Z,J,Q);return this._spanNotEnded.add(Y),Y}_closeHttpSpan(Z,J,Q,$,Y){if(!this._spanNotEnded.has(Z))return;Z.end(),this._spanNotEnded.delete(Z);let X=(0,OZ.hrTimeToMilliseconds)((0,OZ.hrTimeDuration)(Q,(0,OZ.hrTime)()));if(J===u.SpanKind.SERVER)this._recordServerDuration(X,$,Y);else if(J===u.SpanKind.CLIENT)this._recordClientDuration(X,$,Y)}_callResponseHook(Z,J){(0,y0.safeExecuteInTheMiddle)(()=>this.getConfig().responseHook(Z,J),()=>{},!0)}_callRequestHook(Z,J){(0,y0.safeExecuteInTheMiddle)(()=>this.getConfig().requestHook(Z,J),()=>{},!0)}_callStartSpanHook(Z,J){if(typeof J==="function")return(0,y0.safeExecuteInTheMiddle)(()=>J(Z),()=>{},!0)}_createHeaderCapture(Z){let J=this.getConfig();return{client:{captureRequestHeaders:(0,L0.headerCapture)("request",J.headersToSpanAttributes?.client?.requestHeaders??[],Z),captureResponseHeaders:(0,L0.headerCapture)("response",J.headersToSpanAttributes?.client?.responseHeaders??[],Z)},server:{captureRequestHeaders:(0,L0.headerCapture)("request",J.headersToSpanAttributes?.server?.requestHeaders??[],Z),captureResponseHeaders:(0,L0.headerCapture)("response",J.headersToSpanAttributes?.server?.responseHeaders??[],Z)}}}}uA.HttpInstrumentation=mA});var iA=w((sX)=>{Object.defineProperty(sX,"__esModule",{value:!0});sX.HttpInstrumentation=void 0;var kz0=pA();Object.defineProperty(sX,"HttpInstrumentation",{enumerable:!0,get:function(){return kz0.HttpInstrumentation}})});var K4=w(($E)=>{Object.defineProperty($E,"__esModule",{value:!0});$E.isTracingSuppressed=$E.unsuppressTracing=$E.suppressTracing=void 0;var jV0=C(),oK=(0,jV0.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function qV0(Z){return Z.setValue(oK,!0)}$E.suppressTracing=qV0;function LV0(Z){return Z.deleteValue(oK)}$E.unsuppressTracing=LV0;function OV0(Z){return Z.getValue(oK)===!0}$E.isTracingSuppressed=OV0});var nK=w((XE)=>{Object.defineProperty(XE,"__esModule",{value:!0});XE.BAGGAGE_MAX_TOTAL_LENGTH=XE.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=XE.BAGGAGE_MAX_NAME_VALUE_PAIRS=XE.BAGGAGE_HEADER=XE.BAGGAGE_ITEMS_SEPARATOR=XE.BAGGAGE_PROPERTIES_SEPARATOR=XE.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;XE.BAGGAGE_KEY_PAIR_SEPARATOR="=";XE.BAGGAGE_PROPERTIES_SEPARATOR=";";XE.BAGGAGE_ITEMS_SEPARATOR=",";XE.BAGGAGE_HEADER="baggage";XE.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;XE.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;XE.BAGGAGE_MAX_TOTAL_LENGTH=8192});var aK=w((zE)=>{Object.defineProperty(zE,"__esModule",{value:!0});zE.parseKeyPairsIntoRecord=zE.parsePairKeyValue=zE.getKeyPairs=zE.serializeKeyPairs=void 0;var TV0=C(),K8=nK();function fV0(Z){return Z.reduce((J,Q)=>{let $=`${J}${J!==""?K8.BAGGAGE_ITEMS_SEPARATOR:""}${Q}`;return $.length>K8.BAGGAGE_MAX_TOTAL_LENGTH?J:$},"")}zE.serializeKeyPairs=fV0;function EV0(Z){return Z.getAllEntries().map(([J,Q])=>{let $=`${encodeURIComponent(J)}=${encodeURIComponent(Q.value)}`;if(Q.metadata!==void 0)$+=K8.BAGGAGE_PROPERTIES_SEPARATOR+Q.metadata.toString();return $})}zE.getKeyPairs=EV0;function KE(Z){if(!Z)return;let J=Z.indexOf(K8.BAGGAGE_PROPERTIES_SEPARATOR),Q=J===-1?Z:Z.substring(0,J),$=Q.indexOf(K8.BAGGAGE_KEY_PAIR_SEPARATOR);if($<=0)return;let Y=Q.substring(0,$).trim(),X=Q.substring($+1).trim();if(!Y||!X)return;let W,K;try{W=decodeURIComponent(Y),K=decodeURIComponent(X)}catch{return}let z;if(J!==-1&&J0)Z.split(K8.BAGGAGE_ITEMS_SEPARATOR).forEach((Q)=>{let $=KE(Q);if($!==void 0&&$.value.length>0)J[$.key]=$.value});return J}zE.parseKeyPairsIntoRecord=yV0});var FE=w((HE)=>{Object.defineProperty(HE,"__esModule",{value:!0});HE.W3CBaggagePropagator=void 0;var sK=C(),vV0=K4(),r7=nK(),rK=aK();class BE{inject(Z,J,Q){let $=sK.propagation.getBaggage(Z);if(!$||(0,vV0.isTracingSuppressed)(Z))return;let Y=(0,rK.getKeyPairs)($).filter((W)=>{return W.length<=r7.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS}).slice(0,r7.BAGGAGE_MAX_NAME_VALUE_PAIRS),X=(0,rK.serializeKeyPairs)(Y);if(X.length>0)Q.set(J,r7.BAGGAGE_HEADER,X)}extract(Z,J,Q){let $=Q.get(J,r7.BAGGAGE_HEADER),Y=Array.isArray($)?$.join(r7.BAGGAGE_ITEMS_SEPARATOR):$;if(!Y)return Z;let X={};if(Y.length===0)return Z;if(Y.split(r7.BAGGAGE_ITEMS_SEPARATOR).forEach((K)=>{let z=(0,rK.parsePairKeyValue)(K);if(z){let G={value:z.value};if(z.metadata)G.metadata=z.metadata;X[z.key]=G}}),Object.entries(X).length===0)return Z;return sK.propagation.setBaggage(Z,sK.propagation.createBaggage(X))}fields(){return[r7.BAGGAGE_HEADER]}}HE.W3CBaggagePropagator=BE});var jE=w((DE)=>{Object.defineProperty(DE,"__esModule",{value:!0});DE.AnchoredClock=void 0;class wE{_monotonicClock;_epochMillis;_performanceMillis;constructor(Z,J){this._monotonicClock=J,this._epochMillis=Z.now(),this._performanceMillis=J.now()}now(){let Z=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+Z}}DE.AnchoredClock=wE});var ME=w((PE)=>{Object.defineProperty(PE,"__esModule",{value:!0});PE.isAttributeValue=PE.isAttributeKey=PE.sanitizeAttributes=void 0;var qE=C();function bV0(Z){let J={};if(typeof Z!=="object"||Z==null)return J;for(let Q in Z){if(!Object.prototype.hasOwnProperty.call(Z,Q))continue;if(!LE(Q)){qE.diag.warn(`Invalid attribute key: ${Q}`);continue}let $=Z[Q];if(!OE($)){qE.diag.warn(`Invalid attribute value set for key: ${Q}`);continue}if(Array.isArray($))J[Q]=$.slice();else J[Q]=$}return J}PE.sanitizeAttributes=bV0;function LE(Z){return typeof Z==="string"&&Z!==""}PE.isAttributeKey=LE;function OE(Z){if(Z==null)return!0;if(Array.isArray(Z))return xV0(Z);return CE(typeof Z)}PE.isAttributeValue=OE;function xV0(Z){let J;for(let Q of Z){if(Q==null)continue;let $=typeof Q;if($===J)continue;if(!J){if(CE($)){J=$;continue}return!1}return!1}return!0}function CE(Z){switch(Z){case"number":case"boolean":case"string":return!0}return!1}});var tK=w((RE)=>{Object.defineProperty(RE,"__esModule",{value:!0});RE.loggingErrorHandler=void 0;var cV0=C();function mV0(){return(Z)=>{cV0.diag.error(uV0(Z))}}RE.loggingErrorHandler=mV0;function uV0(Z){if(typeof Z==="string")return Z;else return JSON.stringify(lV0(Z))}function lV0(Z){let J={},Q=Z;while(Q!==null)Object.getOwnPropertyNames(Q).forEach(($)=>{if(J[$])return;let Y=Q[$];if(Y)J[$]=String(Y)}),Q=Object.getPrototypeOf(Q);return J}});var fE=w((NE)=>{Object.defineProperty(NE,"__esModule",{value:!0});NE.globalErrorHandler=NE.setGlobalErrorHandler=void 0;var pV0=tK(),IE=(0,pV0.loggingErrorHandler)();function iV0(Z){IE=Z}NE.setGlobalErrorHandler=iV0;function oV0(Z){try{IE(Z)}catch{}}NE.globalErrorHandler=oV0});var vE=w((SE)=>{Object.defineProperty(SE,"__esModule",{value:!0});SE.getStringListFromEnv=SE.getBooleanFromEnv=SE.getStringFromEnv=SE.getNumberFromEnv=void 0;var EE=C(),yE=A("util");function aV0(Z){let J=process.env[Z];if(J==null||J.trim()==="")return;let Q=Number(J);if(isNaN(Q)){EE.diag.warn(`Unknown value ${(0,yE.inspect)(J)} for ${Z}, expected a number, using defaults`);return}return Q}SE.getNumberFromEnv=aV0;function hE(Z){let J=process.env[Z];if(J==null||J.trim()==="")return;return J}SE.getStringFromEnv=hE;function sV0(Z){let J=process.env[Z]?.trim().toLowerCase();if(J==null||J==="")return!1;if(J==="true")return!0;else if(J==="false")return!1;else return EE.diag.warn(`Unknown value ${(0,yE.inspect)(J)} for ${Z}, expected 'true' or 'false', falling back to 'false' (default)`),!1}SE.getBooleanFromEnv=sV0;function rV0(Z){return hE(Z)?.split(",").map((J)=>J.trim()).filter((J)=>J!=="")}SE.getStringListFromEnv=rV0});var gE=w((bE)=>{Object.defineProperty(bE,"__esModule",{value:!0});bE._globalThis=void 0;bE._globalThis=globalThis});var mE=w((dE)=>{Object.defineProperty(dE,"__esModule",{value:!0});dE.VERSION=void 0;dE.VERSION="2.6.1"});var pE=w((uE)=>{Object.defineProperty(uE,"__esModule",{value:!0});uE.ATTR_PROCESS_RUNTIME_NAME=void 0;uE.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var nE=w((iE)=>{Object.defineProperty(iE,"__esModule",{value:!0});iE.SDK_INFO=void 0;var JF0=mE(),eQ=s(),QF0=pE();iE.SDK_INFO={[eQ.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[QF0.ATTR_PROCESS_RUNTIME_NAME]:"node",[eQ.ATTR_TELEMETRY_SDK_LANGUAGE]:eQ.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[eQ.ATTR_TELEMETRY_SDK_VERSION]:JF0.VERSION}});var sE=w((lZ)=>{Object.defineProperty(lZ,"__esModule",{value:!0});lZ.otperformance=lZ.SDK_INFO=lZ._globalThis=lZ.getStringListFromEnv=lZ.getNumberFromEnv=lZ.getBooleanFromEnv=lZ.getStringFromEnv=void 0;var Z$=vE();Object.defineProperty(lZ,"getStringFromEnv",{enumerable:!0,get:function(){return Z$.getStringFromEnv}});Object.defineProperty(lZ,"getBooleanFromEnv",{enumerable:!0,get:function(){return Z$.getBooleanFromEnv}});Object.defineProperty(lZ,"getNumberFromEnv",{enumerable:!0,get:function(){return Z$.getNumberFromEnv}});Object.defineProperty(lZ,"getStringListFromEnv",{enumerable:!0,get:function(){return Z$.getStringListFromEnv}});var $F0=gE();Object.defineProperty(lZ,"_globalThis",{enumerable:!0,get:function(){return $F0._globalThis}});var YF0=nE();Object.defineProperty(lZ,"SDK_INFO",{enumerable:!0,get:function(){return YF0.SDK_INFO}});lZ.otperformance=performance});var eK=w((JZ)=>{Object.defineProperty(JZ,"__esModule",{value:!0});JZ.getStringListFromEnv=JZ.getNumberFromEnv=JZ.getStringFromEnv=JZ.getBooleanFromEnv=JZ.otperformance=JZ._globalThis=JZ.SDK_INFO=void 0;var t7=sE();Object.defineProperty(JZ,"SDK_INFO",{enumerable:!0,get:function(){return t7.SDK_INFO}});Object.defineProperty(JZ,"_globalThis",{enumerable:!0,get:function(){return t7._globalThis}});Object.defineProperty(JZ,"otperformance",{enumerable:!0,get:function(){return t7.otperformance}});Object.defineProperty(JZ,"getBooleanFromEnv",{enumerable:!0,get:function(){return t7.getBooleanFromEnv}});Object.defineProperty(JZ,"getStringFromEnv",{enumerable:!0,get:function(){return t7.getStringFromEnv}});Object.defineProperty(JZ,"getNumberFromEnv",{enumerable:!0,get:function(){return t7.getNumberFromEnv}});Object.defineProperty(JZ,"getStringListFromEnv",{enumerable:!0,get:function(){return t7.getStringListFromEnv}})});var Qy=w((Zy)=>{Object.defineProperty(Zy,"__esModule",{value:!0});Zy.addHrTimes=Zy.isTimeInput=Zy.isTimeInputHrTime=Zy.hrTimeToMicroseconds=Zy.hrTimeToMilliseconds=Zy.hrTimeToNanoseconds=Zy.hrTimeToTimeStamp=Zy.hrTimeDuration=Zy.timeInputToHrTime=Zy.hrTime=Zy.getTimeOrigin=Zy.millisToHrTime=void 0;var J$=eK(),rE=9,WF0=6,KF0=Math.pow(10,WF0),Q$=Math.pow(10,rE);function z4(Z){let J=Z/1000,Q=Math.trunc(J),$=Math.round(Z%1000*KF0);return[Q,$]}Zy.millisToHrTime=z4;function zF0(){return J$.otperformance.timeOrigin}Zy.getTimeOrigin=zF0;function tE(Z){let J=z4(J$.otperformance.timeOrigin),Q=z4(typeof Z==="number"?Z:J$.otperformance.now());return eE(J,Q)}Zy.hrTime=tE;function GF0(Z){if(Zz(Z))return Z;else if(typeof Z==="number")if(Z=Q$)Q[1]-=Q$,Q[0]+=1;return Q}Zy.addHrTimes=eE});var Xy=w(($y)=>{Object.defineProperty($y,"__esModule",{value:!0});$y.unrefTimer=void 0;function IF0(Z){if(typeof Z!=="number")Z.unref()}$y.unrefTimer=IF0});var Ky=w((Wy)=>{Object.defineProperty(Wy,"__esModule",{value:!0});Wy.ExportResultCode=void 0;var NF0;(function(Z){Z[Z.SUCCESS=0]="SUCCESS",Z[Z.FAILED=1]="FAILED"})(NF0=Wy.ExportResultCode||(Wy.ExportResultCode={}))});var Vy=w((By)=>{Object.defineProperty(By,"__esModule",{value:!0});By.CompositePropagator=void 0;var zy=C();class Gy{_propagators;_fields;constructor(Z={}){this._propagators=Z.propagators??[],this._fields=Array.from(new Set(this._propagators.map((J)=>typeof J.fields==="function"?J.fields():[]).reduce((J,Q)=>J.concat(Q),[])))}inject(Z,J,Q){for(let $ of this._propagators)try{$.inject(Z,J,Q)}catch(Y){zy.diag.warn(`Failed to inject with ${$.constructor.name}. Err: ${Y.message}`)}}extract(Z,J,Q){return this._propagators.reduce(($,Y)=>{try{return Y.extract($,J,Q)}catch(X){zy.diag.warn(`Failed to extract with ${Y.constructor.name}. Err: ${X.message}`)}return $},Z)}fields(){return this._fields.slice()}}By.CompositePropagator=Gy});var Dy=w((Fy)=>{Object.defineProperty(Fy,"__esModule",{value:!0});Fy.validateValue=Fy.validateKey=void 0;var Qz="[_0-9a-z-*/]",TF0=`[a-z]${Qz}{0,255}`,fF0=`[a-z0-9]${Qz}{0,240}@[a-z]${Qz}{0,13}`,EF0=new RegExp(`^(?:${TF0}|${fF0})$`),yF0=/^[ -~]{0,255}[!-~]$/,hF0=/,|=/;function SF0(Z){return EF0.test(Z)}Fy.validateKey=SF0;function _F0(Z){return yF0.test(Z)&&!hF0.test(Z)}Fy.validateValue=_F0});var Yz=w((Oy)=>{Object.defineProperty(Oy,"__esModule",{value:!0});Oy.TraceState=void 0;var Uy=Dy(),jy=32,bF0=512,qy=",",Ly="=";class $z{_internalState=new Map;constructor(Z){if(Z)this._parse(Z)}set(Z,J){let Q=this._clone();if(Q._internalState.has(Z))Q._internalState.delete(Z);return Q._internalState.set(Z,J),Q}unset(Z){let J=this._clone();return J._internalState.delete(Z),J}get(Z){return this._internalState.get(Z)}serialize(){return this._keys().reduce((Z,J)=>{return Z.push(J+Ly+this.get(J)),Z},[]).join(qy)}_parse(Z){if(Z.length>bF0)return;if(this._internalState=Z.split(qy).reverse().reduce((J,Q)=>{let $=Q.trim(),Y=$.indexOf(Ly);if(Y!==-1){let X=$.slice(0,Y),W=$.slice(Y+1,Q.length);if((0,Uy.validateKey)(X)&&(0,Uy.validateValue)(W))J.set(X,W)}return J},new Map),this._internalState.size>jy)this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,jy))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let Z=new $z;return Z._internalState=new Map(this._internalState),Z}}Oy.TraceState=$z});var Ay=w((My)=>{Object.defineProperty(My,"__esModule",{value:!0});My.W3CTraceContextPropagator=My.parseTraceParent=My.TRACE_STATE_HEADER=My.TRACE_PARENT_HEADER=void 0;var $$=C(),xF0=K4(),gF0=Yz();My.TRACE_PARENT_HEADER="traceparent";My.TRACE_STATE_HEADER="tracestate";var dF0="00",cF0="(?!ff)[\\da-f]{2}",mF0="(?![0]{32})[\\da-f]{32}",uF0="(?![0]{16})[\\da-f]{16}",lF0="[\\da-f]{2}",pF0=new RegExp(`^\\s?(${cF0})-(${mF0})-(${uF0})-(${lF0})(-.*)?\\s?$`);function Py(Z){let J=pF0.exec(Z);if(!J)return null;if(J[1]==="00"&&J[5])return null;return{traceId:J[2],spanId:J[3],traceFlags:parseInt(J[4],16)}}My.parseTraceParent=Py;class ky{inject(Z,J,Q){let $=$$.trace.getSpanContext(Z);if(!$||(0,xF0.isTracingSuppressed)(Z)||!(0,$$.isSpanContextValid)($))return;let Y=`${dF0}-${$.traceId}-${$.spanId}-0${Number($.traceFlags||$$.TraceFlags.NONE).toString(16)}`;if(Q.set(J,My.TRACE_PARENT_HEADER,Y),$.traceState)Q.set(J,My.TRACE_STATE_HEADER,$.traceState.serialize())}extract(Z,J,Q){let $=Q.get(J,My.TRACE_PARENT_HEADER);if(!$)return Z;let Y=Array.isArray($)?$[0]:$;if(typeof Y!=="string")return Z;let X=Py(Y);if(!X)return Z;X.isRemote=!0;let W=Q.get(J,My.TRACE_STATE_HEADER);if(W){let K=Array.isArray(W)?W.join(","):W;X.traceState=new gF0.TraceState(typeof K==="string"?K:void 0)}return $$.trace.setSpanContext(Z,X)}fields(){return[My.TRACE_PARENT_HEADER,My.TRACE_STATE_HEADER]}}My.W3CTraceContextPropagator=ky});var fy=w((Ny)=>{Object.defineProperty(Ny,"__esModule",{value:!0});Ny.getRPCMetadata=Ny.deleteRPCMetadata=Ny.setRPCMetadata=Ny.RPCType=void 0;var oF0=C(),Xz=(0,oF0.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),nF0;(function(Z){Z.HTTP="http"})(nF0=Ny.RPCType||(Ny.RPCType={}));function aF0(Z,J){return Z.setValue(Xz,J)}Ny.setRPCMetadata=aF0;function sF0(Z){return Z.deleteValue(Xz)}Ny.deleteRPCMetadata=sF0;function rF0(Z){return Z.getValue(Xz)}Ny.getRPCMetadata=rF0});var by=w((_y)=>{Object.defineProperty(_y,"__esModule",{value:!0});_y.isPlainObject=void 0;var Zw0="[object Object]",Jw0="[object Null]",Qw0="[object Undefined]",$w0=Function.prototype,Ey=$w0.toString,Yw0=Ey.call(Object),Xw0=Object.getPrototypeOf,yy=Object.prototype,hy=yy.hasOwnProperty,e7=Symbol?Symbol.toStringTag:void 0,Sy=yy.toString;function Ww0(Z){if(!Kw0(Z)||zw0(Z)!==Zw0)return!1;let J=Xw0(Z);if(J===null)return!0;let Q=hy.call(J,"constructor")&&J.constructor;return typeof Q=="function"&&Q instanceof Q&&Ey.call(Q)===Yw0}_y.isPlainObject=Ww0;function Kw0(Z){return Z!=null&&typeof Z=="object"}function zw0(Z){if(Z==null)return Z===void 0?Qw0:Jw0;return e7&&e7 in Object(Z)?Gw0(Z):Bw0(Z)}function Gw0(Z){let J=hy.call(Z,e7),Q=Z[e7],$=!1;try{Z[e7]=void 0,$=!0}catch{}let Y=Sy.call(Z);if($)if(J)Z[e7]=Q;else delete Z[e7];return Y}function Bw0(Z){return Sy.call(Z)}});var ly=w((my)=>{Object.defineProperty(my,"__esModule",{value:!0});my.merge=void 0;var xy=by(),Hw0=20;function Vw0(...Z){let J=Z.shift(),Q=new WeakMap;while(Z.length>0)J=dy(J,Z.shift(),0,Q);return J}my.merge=Vw0;function Wz(Z){if(K$(Z))return Z.slice();return Z}function dy(Z,J,Q=0,$){let Y;if(Q>Hw0)return;if(Q++,W$(Z)||W$(J)||cy(J))Y=Wz(J);else if(K$(Z)){if(Y=Z.slice(),K$(J))for(let X=0,W=J.length;X"u")delete Y[z];else Y[z]=G;else{let H=Y[z],B=G;if(gy(Z,z,$)||gy(J,z,$))delete Y[z];else{if(G4(H)&&G4(B)){let V=$.get(H)||[],F=$.get(B)||[];V.push({obj:Z,key:z}),F.push({obj:J,key:z}),$.set(H,V),$.set(B,F)}Y[z]=dy(Y[z],G,Q,$)}}}}else Y=J;return Y}function gy(Z,J,Q){let $=Q.get(Z[J])||[];for(let Y=0,X=$.length;Y"u"||Z instanceof Date||Z instanceof RegExp||Z===null}function Fw0(Z,J){if(!(0,xy.isPlainObject)(Z)||!(0,xy.isPlainObject)(J))return!1;return!0}});var oy=w((py)=>{Object.defineProperty(py,"__esModule",{value:!0});py.callWithTimeout=py.TimeoutError=void 0;class z$ extends Error{constructor(Z){super(Z);Object.setPrototypeOf(this,z$.prototype)}}py.TimeoutError=z$;function ww0(Z,J){let Q,$=new Promise(function(X,W){Q=setTimeout(function(){W(new z$("Operation timed out."))},J)});return Promise.race([Z,$]).then((Y)=>{return clearTimeout(Q),Y},(Y)=>{throw clearTimeout(Q),Y})}py.callWithTimeout=ww0});var ry=w((ay)=>{Object.defineProperty(ay,"__esModule",{value:!0});ay.isUrlIgnored=ay.urlMatches=void 0;function ny(Z,J){if(typeof J==="string")return Z===J;else return!!Z.match(J)}ay.urlMatches=ny;function Uw0(Z,J){if(!J)return!1;for(let Q of J)if(ny(Z,Q))return!0;return!1}ay.isUrlIgnored=Uw0});var Jh=w((ey)=>{Object.defineProperty(ey,"__esModule",{value:!0});ey.Deferred=void 0;class ty{_promise;_resolve;_reject;constructor(){this._promise=new Promise((Z,J)=>{this._resolve=Z,this._reject=J})}get promise(){return this._promise}resolve(Z){this._resolve(Z)}reject(Z){this._reject(Z)}}ey.Deferred=ty});var Xh=w(($h)=>{Object.defineProperty($h,"__esModule",{value:!0});$h.BindOnceFuture=void 0;var qw0=Jh();class Qh{_isCalled=!1;_deferred=new qw0.Deferred;_callback;_that;constructor(Z,J){this._callback=Z,this._that=J}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...Z){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...Z)).then((J)=>this._deferred.resolve(J),(J)=>this._deferred.reject(J))}catch(J){this._deferred.reject(J)}}return this._deferred.promise}}$h.BindOnceFuture=Qh});var Gh=w((Kh)=>{Object.defineProperty(Kh,"__esModule",{value:!0});Kh.diagLogLevelFromString=void 0;var QZ=C(),Wh={ALL:QZ.DiagLogLevel.ALL,VERBOSE:QZ.DiagLogLevel.VERBOSE,DEBUG:QZ.DiagLogLevel.DEBUG,INFO:QZ.DiagLogLevel.INFO,WARN:QZ.DiagLogLevel.WARN,ERROR:QZ.DiagLogLevel.ERROR,NONE:QZ.DiagLogLevel.NONE};function Lw0(Z){if(Z==null)return;let J=Wh[Z.toUpperCase()];if(J==null)return QZ.diag.warn(`Unknown log level "${Z}", expected one of ${Object.keys(Wh)}, using default`),QZ.DiagLogLevel.INFO;return J}Kh.diagLogLevelFromString=Lw0});var Fh=w((Hh)=>{Object.defineProperty(Hh,"__esModule",{value:!0});Hh._export=void 0;var Bh=C(),Ow0=K4();function Cw0(Z,J){return new Promise((Q)=>{Bh.context.with((0,Ow0.suppressTracing)(Bh.context.active()),()=>{Z.export(J,Q)})})}Hh._export=Cw0});var Q0=w((x)=>{Object.defineProperty(x,"__esModule",{value:!0});x.internal=x.diagLogLevelFromString=x.BindOnceFuture=x.urlMatches=x.isUrlIgnored=x.callWithTimeout=x.TimeoutError=x.merge=x.TraceState=x.unsuppressTracing=x.suppressTracing=x.isTracingSuppressed=x.setRPCMetadata=x.getRPCMetadata=x.deleteRPCMetadata=x.RPCType=x.parseTraceParent=x.W3CTraceContextPropagator=x.TRACE_STATE_HEADER=x.TRACE_PARENT_HEADER=x.CompositePropagator=x.otperformance=x.getStringListFromEnv=x.getNumberFromEnv=x.getBooleanFromEnv=x.getStringFromEnv=x._globalThis=x.SDK_INFO=x.parseKeyPairsIntoRecord=x.ExportResultCode=x.unrefTimer=x.timeInputToHrTime=x.millisToHrTime=x.isTimeInputHrTime=x.isTimeInput=x.hrTimeToTimeStamp=x.hrTimeToNanoseconds=x.hrTimeToMilliseconds=x.hrTimeToMicroseconds=x.hrTimeDuration=x.hrTime=x.getTimeOrigin=x.addHrTimes=x.loggingErrorHandler=x.setGlobalErrorHandler=x.globalErrorHandler=x.sanitizeAttributes=x.isAttributeValue=x.AnchoredClock=x.W3CBaggagePropagator=void 0;var Pw0=FE();Object.defineProperty(x,"W3CBaggagePropagator",{enumerable:!0,get:function(){return Pw0.W3CBaggagePropagator}});var kw0=jE();Object.defineProperty(x,"AnchoredClock",{enumerable:!0,get:function(){return kw0.AnchoredClock}});var wh=ME();Object.defineProperty(x,"isAttributeValue",{enumerable:!0,get:function(){return wh.isAttributeValue}});Object.defineProperty(x,"sanitizeAttributes",{enumerable:!0,get:function(){return wh.sanitizeAttributes}});var Dh=fE();Object.defineProperty(x,"globalErrorHandler",{enumerable:!0,get:function(){return Dh.globalErrorHandler}});Object.defineProperty(x,"setGlobalErrorHandler",{enumerable:!0,get:function(){return Dh.setGlobalErrorHandler}});var Mw0=tK();Object.defineProperty(x,"loggingErrorHandler",{enumerable:!0,get:function(){return Mw0.loggingErrorHandler}});var a6=Qy();Object.defineProperty(x,"addHrTimes",{enumerable:!0,get:function(){return a6.addHrTimes}});Object.defineProperty(x,"getTimeOrigin",{enumerable:!0,get:function(){return a6.getTimeOrigin}});Object.defineProperty(x,"hrTime",{enumerable:!0,get:function(){return a6.hrTime}});Object.defineProperty(x,"hrTimeDuration",{enumerable:!0,get:function(){return a6.hrTimeDuration}});Object.defineProperty(x,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return a6.hrTimeToMicroseconds}});Object.defineProperty(x,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return a6.hrTimeToMilliseconds}});Object.defineProperty(x,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return a6.hrTimeToNanoseconds}});Object.defineProperty(x,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return a6.hrTimeToTimeStamp}});Object.defineProperty(x,"isTimeInput",{enumerable:!0,get:function(){return a6.isTimeInput}});Object.defineProperty(x,"isTimeInputHrTime",{enumerable:!0,get:function(){return a6.isTimeInputHrTime}});Object.defineProperty(x,"millisToHrTime",{enumerable:!0,get:function(){return a6.millisToHrTime}});Object.defineProperty(x,"timeInputToHrTime",{enumerable:!0,get:function(){return a6.timeInputToHrTime}});var Rw0=Xy();Object.defineProperty(x,"unrefTimer",{enumerable:!0,get:function(){return Rw0.unrefTimer}});var Aw0=Ky();Object.defineProperty(x,"ExportResultCode",{enumerable:!0,get:function(){return Aw0.ExportResultCode}});var Iw0=aK();Object.defineProperty(x,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return Iw0.parseKeyPairsIntoRecord}});var Z1=eK();Object.defineProperty(x,"SDK_INFO",{enumerable:!0,get:function(){return Z1.SDK_INFO}});Object.defineProperty(x,"_globalThis",{enumerable:!0,get:function(){return Z1._globalThis}});Object.defineProperty(x,"getStringFromEnv",{enumerable:!0,get:function(){return Z1.getStringFromEnv}});Object.defineProperty(x,"getBooleanFromEnv",{enumerable:!0,get:function(){return Z1.getBooleanFromEnv}});Object.defineProperty(x,"getNumberFromEnv",{enumerable:!0,get:function(){return Z1.getNumberFromEnv}});Object.defineProperty(x,"getStringListFromEnv",{enumerable:!0,get:function(){return Z1.getStringListFromEnv}});Object.defineProperty(x,"otperformance",{enumerable:!0,get:function(){return Z1.otperformance}});var Nw0=Vy();Object.defineProperty(x,"CompositePropagator",{enumerable:!0,get:function(){return Nw0.CompositePropagator}});var G$=Ay();Object.defineProperty(x,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return G$.TRACE_PARENT_HEADER}});Object.defineProperty(x,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return G$.TRACE_STATE_HEADER}});Object.defineProperty(x,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return G$.W3CTraceContextPropagator}});Object.defineProperty(x,"parseTraceParent",{enumerable:!0,get:function(){return G$.parseTraceParent}});var B$=fy();Object.defineProperty(x,"RPCType",{enumerable:!0,get:function(){return B$.RPCType}});Object.defineProperty(x,"deleteRPCMetadata",{enumerable:!0,get:function(){return B$.deleteRPCMetadata}});Object.defineProperty(x,"getRPCMetadata",{enumerable:!0,get:function(){return B$.getRPCMetadata}});Object.defineProperty(x,"setRPCMetadata",{enumerable:!0,get:function(){return B$.setRPCMetadata}});var Kz=K4();Object.defineProperty(x,"isTracingSuppressed",{enumerable:!0,get:function(){return Kz.isTracingSuppressed}});Object.defineProperty(x,"suppressTracing",{enumerable:!0,get:function(){return Kz.suppressTracing}});Object.defineProperty(x,"unsuppressTracing",{enumerable:!0,get:function(){return Kz.unsuppressTracing}});var Tw0=Yz();Object.defineProperty(x,"TraceState",{enumerable:!0,get:function(){return Tw0.TraceState}});var fw0=ly();Object.defineProperty(x,"merge",{enumerable:!0,get:function(){return fw0.merge}});var Uh=oy();Object.defineProperty(x,"TimeoutError",{enumerable:!0,get:function(){return Uh.TimeoutError}});Object.defineProperty(x,"callWithTimeout",{enumerable:!0,get:function(){return Uh.callWithTimeout}});var jh=ry();Object.defineProperty(x,"isUrlIgnored",{enumerable:!0,get:function(){return jh.isUrlIgnored}});Object.defineProperty(x,"urlMatches",{enumerable:!0,get:function(){return jh.urlMatches}});var Ew0=Xh();Object.defineProperty(x,"BindOnceFuture",{enumerable:!0,get:function(){return Ew0.BindOnceFuture}});var yw0=Gh();Object.defineProperty(x,"diagLogLevelFromString",{enumerable:!0,get:function(){return yw0.diagLogLevelFromString}});var hw0=Fh();x.internal={_export:hw0._export}});var Fz=w((vh)=>{Object.defineProperty(vh,"__esModule",{value:!0});vh.AbstractAsyncHooksContextManager=void 0;var JD0=A("events"),QD0=["addListener","on","once","prependListener","prependOnceListener"];class _h{bind(Z,J){if(J instanceof JD0.EventEmitter)return this._bindEventEmitter(Z,J);if(typeof J==="function")return this._bindFunction(Z,J);return J}_bindFunction(Z,J){let Q=this,$=function(...Y){return Q.with(Z,()=>J.apply(this,Y))};return Object.defineProperty($,"length",{enumerable:!1,configurable:!0,writable:!1,value:J.length}),$}_bindEventEmitter(Z,J){if(this._getPatchMap(J)!==void 0)return J;if(this._createPatchMap(J),QD0.forEach(($)=>{if(J[$]===void 0)return;J[$]=this._patchAddListener(J,J[$],Z)}),typeof J.removeListener==="function")J.removeListener=this._patchRemoveListener(J,J.removeListener);if(typeof J.off==="function")J.off=this._patchRemoveListener(J,J.off);if(typeof J.removeAllListeners==="function")J.removeAllListeners=this._patchRemoveAllListeners(J,J.removeAllListeners);return J}_patchRemoveListener(Z,J){let Q=this;return function($,Y){let X=Q._getPatchMap(Z)?.[$];if(X===void 0)return J.call(this,$,Y);let W=X.get(Y);return J.call(this,$,W||Y)}}_patchRemoveAllListeners(Z,J){let Q=this;return function($){let Y=Q._getPatchMap(Z);if(Y!==void 0){if(arguments.length===0)Q._createPatchMap(Z);else if(Y[$]!==void 0)delete Y[$]}return J.apply(this,arguments)}}_patchAddListener(Z,J,Q){let $=this;return function(Y,X){if($._wrapped)return J.call(this,Y,X);let W=$._getPatchMap(Z);if(W===void 0)W=$._createPatchMap(Z);let K=W[Y];if(K===void 0)K=new WeakMap,W[Y]=K;let z=$.bind(Q,X);K.set(X,z),$._wrapped=!0;try{return J.call(this,Y,z)}finally{$._wrapped=!1}}}_createPatchMap(Z){let J=Object.create(null);return Z[this._kOtListeners]=J,J}_getPatchMap(Z){return Z[this._kOtListeners]}_kOtListeners=Symbol("OtListeners");_wrapped=!1}vh.AbstractAsyncHooksContextManager=_h});var ch=w((gh)=>{Object.defineProperty(gh,"__esModule",{value:!0});gh.AsyncHooksContextManager=void 0;var $D0=C(),YD0=A("async_hooks"),XD0=Fz();class xh extends XD0.AbstractAsyncHooksContextManager{_asyncHook;_contexts=new Map;_stack=[];constructor(){super();this._asyncHook=YD0.createHook({init:this._init.bind(this),before:this._before.bind(this),after:this._after.bind(this),destroy:this._destroy.bind(this),promiseResolve:this._destroy.bind(this)})}active(){return this._stack[this._stack.length-1]??$D0.ROOT_CONTEXT}with(Z,J,Q,...$){this._enterContext(Z);try{return J.call(Q,...$)}finally{this._exitContext()}}enable(){return this._asyncHook.enable(),this}disable(){return this._asyncHook.disable(),this._contexts.clear(),this._stack=[],this}_init(Z,J){if(J==="TIMERWRAP")return;let Q=this._stack[this._stack.length-1];if(Q!==void 0)this._contexts.set(Z,Q)}_destroy(Z){this._contexts.delete(Z)}_before(Z){let J=this._contexts.get(Z);if(J!==void 0)this._enterContext(J)}_after(){this._exitContext()}_enterContext(Z){this._stack.push(Z)}_exitContext(){this._stack.pop()}}gh.AsyncHooksContextManager=xh});var ph=w((uh)=>{Object.defineProperty(uh,"__esModule",{value:!0});uh.AsyncLocalStorageContextManager=void 0;var WD0=C(),KD0=A("async_hooks"),zD0=Fz();class mh extends zD0.AbstractAsyncHooksContextManager{_asyncLocalStorage;constructor(){super();this._asyncLocalStorage=new KD0.AsyncLocalStorage}active(){return this._asyncLocalStorage.getStore()??WD0.ROOT_CONTEXT}with(Z,J,Q,...$){let Y=Q==null?J:J.bind(Q);return this._asyncLocalStorage.run(Z,Y,...$)}enable(){return this}disable(){return this._asyncLocalStorage.disable(),this}}uh.AsyncLocalStorageContextManager=mh});var ih=w((U$)=>{Object.defineProperty(U$,"__esModule",{value:!0});U$.AsyncLocalStorageContextManager=U$.AsyncHooksContextManager=void 0;var GD0=ch();Object.defineProperty(U$,"AsyncHooksContextManager",{enumerable:!0,get:function(){return GD0.AsyncHooksContextManager}});var BD0=ph();Object.defineProperty(U$,"AsyncLocalStorageContextManager",{enumerable:!0,get:function(){return BD0.AsyncLocalStorageContextManager}})});var wz=w((oh)=>{Object.defineProperty(oh,"__esModule",{value:!0});oh._clearDefaultServiceNameCache=oh.defaultServiceName=void 0;var F4;function VD0(){if(F4===void 0)try{let Z=globalThis.process.argv0;F4=Z?`unknown_service:${Z}`:"unknown_service"}catch{F4="unknown_service"}return F4}oh.defaultServiceName=VD0;function FD0(){F4=void 0}oh._clearDefaultServiceNameCache=FD0});var rh=w((ah)=>{Object.defineProperty(ah,"__esModule",{value:!0});ah.isPromiseLike=void 0;var DD0=(Z)=>{return Z!==null&&typeof Z==="object"&&typeof Z.then==="function"};ah.isPromiseLike=DD0});var jz=w((eh)=>{Object.defineProperty(eh,"__esModule",{value:!0});eh.defaultResource=eh.emptyResource=eh.resourceFromDetectedResource=eh.resourceFromAttributes=void 0;var D4=C(),Dz=Q0(),J1=s(),UD0=wz(),w4=rh();class U4{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(Z,J){let Q=new U4({},J);return Q._rawAttributes=th(Z),Q._asyncAttributesPending=Z.filter(([$,Y])=>(0,w4.isPromiseLike)(Y)).length>0,Q}constructor(Z,J){let Q=Z.attributes??{};this._rawAttributes=Object.entries(Q).map(([$,Y])=>{if((0,w4.isPromiseLike)(Y))this._asyncAttributesPending=!0;return[$,Y]}),this._rawAttributes=th(this._rawAttributes),this._schemaUrl=OD0(J?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(!this.asyncAttributesPending)return;for(let Z=0;Z{if((0,w4.isPromiseLike)(Q))return[J,Q.catch(($)=>{D4.diag.debug("promise rejection for resource attribute: %s - %s",J,$);return})];return[J,Q]})}function OD0(Z){if(typeof Z==="string"||Z===void 0)return Z;D4.diag.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",Z);return}function CD0(Z,J){let Q=Z?.schemaUrl,$=J?.schemaUrl,Y=Q===void 0||Q==="",X=$===void 0||$==="";if(Y)return $;if(X)return Q;if(Q===$)return Q;D4.diag.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',Q,$);return}});var YS=w((QS)=>{Object.defineProperty(QS,"__esModule",{value:!0});QS.detectResources=void 0;var JS=C(),qz=jz(),RD0=(Z={})=>{return(Z.detectors||[]).map((Q)=>{try{let $=(0,qz.resourceFromDetectedResource)(Q.detect(Z));return JS.diag.debug(`${Q.constructor.name} found resource.`,$),$}catch($){return JS.diag.debug(`${Q.constructor.name} failed: ${$.message}`),(0,qz.emptyResource)()}}).reduce((Q,$)=>Q.merge($),(0,qz.emptyResource)())};QS.detectResources=RD0});var GS=w((KS)=>{Object.defineProperty(KS,"__esModule",{value:!0});KS.envDetector=void 0;var AD0=C(),ID0=s(),XS=Q0();class WS{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(Z){let J={},Q=(0,XS.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),$=(0,XS.getStringFromEnv)("OTEL_SERVICE_NAME");if(Q)try{let Y=this._parseResourceAttributes(Q);Object.assign(J,Y)}catch(Y){AD0.diag.debug(`EnvDetector failed: ${Y instanceof Error?Y.message:Y}`)}if($)J[ID0.ATTR_SERVICE_NAME]=$;return{attributes:J}}_parseResourceAttributes(Z){if(!Z)return{};let J={},Q=Z.split(this._COMMA_SEPARATOR);for(let $ of Q){let Y=$.split(this._LABEL_KEY_VALUE_SPLITTER);if(Y.length!==2)throw Error(`Invalid format for OTEL_RESOURCE_ATTRIBUTES: "${$}". Expected format: key=value. The ',' and '=' characters must be percent-encoded in keys and values.`);let[X,W]=Y,K=X.trim(),z=W.trim();if(K.length===0)throw Error(`Invalid OTEL_RESOURCE_ATTRIBUTES: empty attribute key in "${$}".`);let G,H;try{G=decodeURIComponent(K),H=decodeURIComponent(z)}catch(B){throw Error(`Failed to percent-decode OTEL_RESOURCE_ATTRIBUTES entry "${$}": ${B instanceof Error?B.message:B}`)}if(G.length>this._MAX_LENGTH)throw Error(`Attribute key exceeds the maximum length of ${this._MAX_LENGTH} characters: "${G}".`);if(H.length>this._MAX_LENGTH)throw Error(`Attribute value exceeds the maximum length of ${this._MAX_LENGTH} characters for key "${G}".`);J[G]=H}return J}}KS.envDetector=new WS});var j4=w((BS)=>{Object.defineProperty(BS,"__esModule",{value:!0});BS.ATTR_WEBENGINE_VERSION=BS.ATTR_WEBENGINE_NAME=BS.ATTR_WEBENGINE_DESCRIPTION=BS.ATTR_SERVICE_NAMESPACE=BS.ATTR_SERVICE_INSTANCE_ID=BS.ATTR_PROCESS_RUNTIME_VERSION=BS.ATTR_PROCESS_RUNTIME_NAME=BS.ATTR_PROCESS_RUNTIME_DESCRIPTION=BS.ATTR_PROCESS_PID=BS.ATTR_PROCESS_OWNER=BS.ATTR_PROCESS_EXECUTABLE_PATH=BS.ATTR_PROCESS_EXECUTABLE_NAME=BS.ATTR_PROCESS_COMMAND_ARGS=BS.ATTR_PROCESS_COMMAND=BS.ATTR_OS_VERSION=BS.ATTR_OS_TYPE=BS.ATTR_K8S_POD_NAME=BS.ATTR_K8S_NAMESPACE_NAME=BS.ATTR_K8S_DEPLOYMENT_NAME=BS.ATTR_K8S_CLUSTER_NAME=BS.ATTR_HOST_TYPE=BS.ATTR_HOST_NAME=BS.ATTR_HOST_IMAGE_VERSION=BS.ATTR_HOST_IMAGE_NAME=BS.ATTR_HOST_IMAGE_ID=BS.ATTR_HOST_ID=BS.ATTR_HOST_ARCH=BS.ATTR_CONTAINER_NAME=BS.ATTR_CONTAINER_IMAGE_TAGS=BS.ATTR_CONTAINER_IMAGE_NAME=BS.ATTR_CONTAINER_ID=BS.ATTR_CLOUD_REGION=BS.ATTR_CLOUD_PROVIDER=BS.ATTR_CLOUD_AVAILABILITY_ZONE=BS.ATTR_CLOUD_ACCOUNT_ID=void 0;BS.ATTR_CLOUD_ACCOUNT_ID="cloud.account.id";BS.ATTR_CLOUD_AVAILABILITY_ZONE="cloud.availability_zone";BS.ATTR_CLOUD_PROVIDER="cloud.provider";BS.ATTR_CLOUD_REGION="cloud.region";BS.ATTR_CONTAINER_ID="container.id";BS.ATTR_CONTAINER_IMAGE_NAME="container.image.name";BS.ATTR_CONTAINER_IMAGE_TAGS="container.image.tags";BS.ATTR_CONTAINER_NAME="container.name";BS.ATTR_HOST_ARCH="host.arch";BS.ATTR_HOST_ID="host.id";BS.ATTR_HOST_IMAGE_ID="host.image.id";BS.ATTR_HOST_IMAGE_NAME="host.image.name";BS.ATTR_HOST_IMAGE_VERSION="host.image.version";BS.ATTR_HOST_NAME="host.name";BS.ATTR_HOST_TYPE="host.type";BS.ATTR_K8S_CLUSTER_NAME="k8s.cluster.name";BS.ATTR_K8S_DEPLOYMENT_NAME="k8s.deployment.name";BS.ATTR_K8S_NAMESPACE_NAME="k8s.namespace.name";BS.ATTR_K8S_POD_NAME="k8s.pod.name";BS.ATTR_OS_TYPE="os.type";BS.ATTR_OS_VERSION="os.version";BS.ATTR_PROCESS_COMMAND="process.command";BS.ATTR_PROCESS_COMMAND_ARGS="process.command_args";BS.ATTR_PROCESS_EXECUTABLE_NAME="process.executable.name";BS.ATTR_PROCESS_EXECUTABLE_PATH="process.executable.path";BS.ATTR_PROCESS_OWNER="process.owner";BS.ATTR_PROCESS_PID="process.pid";BS.ATTR_PROCESS_RUNTIME_DESCRIPTION="process.runtime.description";BS.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name";BS.ATTR_PROCESS_RUNTIME_VERSION="process.runtime.version";BS.ATTR_SERVICE_INSTANCE_ID="service.instance.id";BS.ATTR_SERVICE_NAMESPACE="service.namespace";BS.ATTR_WEBENGINE_DESCRIPTION="webengine.description";BS.ATTR_WEBENGINE_NAME="webengine.name";BS.ATTR_WEBENGINE_VERSION="webengine.version"});var j$=w((VS)=>{Object.defineProperty(VS,"__esModule",{value:!0});VS.execAsync=void 0;var zU0=A("child_process"),GU0=A("util");VS.execAsync=GU0.promisify(zU0.exec)});var US=w((wS)=>{Object.defineProperty(wS,"__esModule",{value:!0});wS.getMachineId=void 0;var BU0=j$(),HU0=C();async function VU0(){try{let J=(await(0,BU0.execAsync)('ioreg -rd1 -c "IOPlatformExpertDevice"')).stdout.split(` -`).find(($)=>$.includes("IOPlatformUUID"));if(!J)return;let Q=J.split('" = "');if(Q.length===2)return Q[1].slice(0,-1)}catch(Z){HU0.diag.debug(`error reading machine id: ${Z}`)}return}wS.getMachineId=VU0});var LS=w((jS)=>{Object.defineProperty(jS,"__esModule",{value:!0});jS.getMachineId=void 0;var FU0=A("fs"),wU0=C();async function DU0(){let Z=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let J of Z)try{return(await FU0.promises.readFile(J,{encoding:"utf8"})).trim()}catch(Q){wU0.diag.debug(`error reading machine id: ${Q}`)}return}jS.getMachineId=DU0});var kS=w((CS)=>{Object.defineProperty(CS,"__esModule",{value:!0});CS.getMachineId=void 0;var UU0=A("fs"),jU0=j$(),OS=C();async function qU0(){try{return(await UU0.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(Z){OS.diag.debug(`error reading machine id: ${Z}`)}try{return(await(0,jU0.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(Z){OS.diag.debug(`error reading machine id: ${Z}`)}return}CS.getMachineId=qU0});var IS=w((RS)=>{Object.defineProperty(RS,"__esModule",{value:!0});RS.getMachineId=void 0;var MS=A("process"),LU0=j$(),OU0=C();async function CU0(){let J="%windir%\\System32\\REG.exe";if(MS.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in MS.env)J="%windir%\\sysnative\\cmd.exe /c "+J;try{let $=(await(0,LU0.execAsync)(`${J} QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid`)).stdout.split("REG_SZ");if($.length===2)return $[1].trim()}catch(Q){OU0.diag.debug(`error reading machine id: ${Q}`)}return}RS.getMachineId=CU0});var fS=w((NS)=>{Object.defineProperty(NS,"__esModule",{value:!0});NS.getMachineId=void 0;var PU0=C();async function kU0(){PU0.diag.debug("could not read machine-id: unsupported platform");return}NS.getMachineId=kU0});var hS=w((ES)=>{Object.defineProperty(ES,"__esModule",{value:!0});ES.getMachineId=void 0;var MU0=A("process"),Q1;async function RU0(){if(!Q1)switch(MU0.platform){case"darwin":Q1=(await Promise.resolve().then(() => R(US()))).getMachineId;break;case"linux":Q1=(await Promise.resolve().then(() => R(LS()))).getMachineId;break;case"freebsd":Q1=(await Promise.resolve().then(() => R(kS()))).getMachineId;break;case"win32":Q1=(await Promise.resolve().then(() => R(IS()))).getMachineId;break;default:Q1=(await Promise.resolve().then(() => R(fS()))).getMachineId;break}return Q1()}ES.getMachineId=RU0});var Lz=w((SS)=>{Object.defineProperty(SS,"__esModule",{value:!0});SS.normalizeType=SS.normalizeArch=void 0;var AU0=(Z)=>{switch(Z){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return Z}};SS.normalizeArch=AU0;var IU0=(Z)=>{switch(Z){case"sunos":return"solaris";case"win32":return"windows";default:return Z}};SS.normalizeType=IU0});var dS=w((xS)=>{Object.defineProperty(xS,"__esModule",{value:!0});xS.hostDetector=void 0;var Oz=j4(),vS=A("os"),TU0=hS(),fU0=Lz();class bS{detect(Z){return{attributes:{[Oz.ATTR_HOST_NAME]:(0,vS.hostname)(),[Oz.ATTR_HOST_ARCH]:(0,fU0.normalizeArch)((0,vS.arch)()),[Oz.ATTR_HOST_ID]:(0,TU0.getMachineId)()}}}}xS.hostDetector=new bS});var iS=w((lS)=>{Object.defineProperty(lS,"__esModule",{value:!0});lS.osDetector=void 0;var cS=j4(),mS=A("os"),EU0=Lz();class uS{detect(Z){return{attributes:{[cS.ATTR_OS_TYPE]:(0,EU0.normalizeType)((0,mS.platform)()),[cS.ATTR_OS_VERSION]:(0,mS.release)()}}}}lS.osDetector=new uS});var sS=w((nS)=>{Object.defineProperty(nS,"__esModule",{value:!0});nS.processDetector=void 0;var yU0=C(),XZ=j4(),hU0=A("os");class oS{detect(Z){let J={[XZ.ATTR_PROCESS_PID]:process.pid,[XZ.ATTR_PROCESS_EXECUTABLE_NAME]:process.title,[XZ.ATTR_PROCESS_EXECUTABLE_PATH]:process.execPath,[XZ.ATTR_PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[XZ.ATTR_PROCESS_RUNTIME_VERSION]:process.versions.node,[XZ.ATTR_PROCESS_RUNTIME_NAME]:"nodejs",[XZ.ATTR_PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};if(process.argv.length>1)J[XZ.ATTR_PROCESS_COMMAND]=process.argv[1];try{let Q=hU0.userInfo();J[XZ.ATTR_PROCESS_OWNER]=Q.username}catch(Q){yU0.diag.debug(`error obtaining process owner: ${Q}`)}return{attributes:J}}}nS.processDetector=new oS});var Z_=w((tS)=>{Object.defineProperty(tS,"__esModule",{value:!0});tS.serviceInstanceIdDetector=void 0;var SU0=j4(),_U0=A("crypto");class rS{detect(Z){return{attributes:{[SU0.ATTR_SERVICE_INSTANCE_ID]:(0,_U0.randomUUID)()}}}}tS.serviceInstanceIdDetector=new rS});var J_=w((w8)=>{Object.defineProperty(w8,"__esModule",{value:!0});w8.serviceInstanceIdDetector=w8.processDetector=w8.osDetector=w8.hostDetector=void 0;var vU0=dS();Object.defineProperty(w8,"hostDetector",{enumerable:!0,get:function(){return vU0.hostDetector}});var bU0=iS();Object.defineProperty(w8,"osDetector",{enumerable:!0,get:function(){return bU0.osDetector}});var xU0=sS();Object.defineProperty(w8,"processDetector",{enumerable:!0,get:function(){return xU0.processDetector}});var gU0=Z_();Object.defineProperty(w8,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return gU0.serviceInstanceIdDetector}})});var Q_=w((D8)=>{Object.defineProperty(D8,"__esModule",{value:!0});D8.serviceInstanceIdDetector=D8.processDetector=D8.osDetector=D8.hostDetector=void 0;var q$=J_();Object.defineProperty(D8,"hostDetector",{enumerable:!0,get:function(){return q$.hostDetector}});Object.defineProperty(D8,"osDetector",{enumerable:!0,get:function(){return q$.osDetector}});Object.defineProperty(D8,"processDetector",{enumerable:!0,get:function(){return q$.processDetector}});Object.defineProperty(D8,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return q$.serviceInstanceIdDetector}})});var X_=w(($_)=>{Object.defineProperty($_,"__esModule",{value:!0});$_.noopDetector=$_.NoopDetector=void 0;class Cz{detect(){return{attributes:{}}}}$_.NoopDetector=Cz;$_.noopDetector=new Cz});var W_=w((iZ)=>{Object.defineProperty(iZ,"__esModule",{value:!0});iZ.noopDetector=iZ.serviceInstanceIdDetector=iZ.processDetector=iZ.osDetector=iZ.hostDetector=iZ.envDetector=void 0;var uU0=GS();Object.defineProperty(iZ,"envDetector",{enumerable:!0,get:function(){return uU0.envDetector}});var L$=Q_();Object.defineProperty(iZ,"hostDetector",{enumerable:!0,get:function(){return L$.hostDetector}});Object.defineProperty(iZ,"osDetector",{enumerable:!0,get:function(){return L$.osDetector}});Object.defineProperty(iZ,"processDetector",{enumerable:!0,get:function(){return L$.processDetector}});Object.defineProperty(iZ,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return L$.serviceInstanceIdDetector}});var lU0=X_();Object.defineProperty(iZ,"noopDetector",{enumerable:!0,get:function(){return lU0.noopDetector}})});var kz=w((r6)=>{Object.defineProperty(r6,"__esModule",{value:!0});r6.defaultServiceName=r6.emptyResource=r6.defaultResource=r6.resourceFromAttributes=r6.serviceInstanceIdDetector=r6.processDetector=r6.osDetector=r6.hostDetector=r6.envDetector=r6.detectResources=void 0;var iU0=YS();Object.defineProperty(r6,"detectResources",{enumerable:!0,get:function(){return iU0.detectResources}});var q4=W_();Object.defineProperty(r6,"envDetector",{enumerable:!0,get:function(){return q4.envDetector}});Object.defineProperty(r6,"hostDetector",{enumerable:!0,get:function(){return q4.hostDetector}});Object.defineProperty(r6,"osDetector",{enumerable:!0,get:function(){return q4.osDetector}});Object.defineProperty(r6,"processDetector",{enumerable:!0,get:function(){return q4.processDetector}});Object.defineProperty(r6,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return q4.serviceInstanceIdDetector}});var Pz=jz();Object.defineProperty(r6,"resourceFromAttributes",{enumerable:!0,get:function(){return Pz.resourceFromAttributes}});Object.defineProperty(r6,"defaultResource",{enumerable:!0,get:function(){return Pz.defaultResource}});Object.defineProperty(r6,"emptyResource",{enumerable:!0,get:function(){return Pz.emptyResource}});var oU0=wz();Object.defineProperty(r6,"defaultServiceName",{enumerable:!0,get:function(){return oU0.defaultServiceName}})});var G_=w((K_)=>{Object.defineProperty(K_,"__esModule",{value:!0});K_.ExceptionEventName=void 0;K_.ExceptionEventName="exception"});var F_=w((H_)=>{Object.defineProperty(H_,"__esModule",{value:!0});H_.SpanImpl=void 0;var m0=C(),u0=Q0(),$1=s(),aU0=G_();class B_{_spanContext;kind;parentSpanContext;attributes={};links=[];events=[];startTime;resource;instrumentationScope;_droppedAttributesCount=0;_droppedEventsCount=0;_droppedLinksCount=0;_attributesCount=0;name;status={code:m0.SpanStatusCode.UNSET};endTime=[0,0];_ended=!1;_duration=[-1,-1];_spanProcessor;_spanLimits;_attributeValueLengthLimit;_recordEndMetrics;_performanceStartTime;_performanceOffset;_startTimeProvided;constructor(Z){let J=Date.now();if(this._spanContext=Z.spanContext,this._performanceStartTime=u0.otperformance.now(),this._performanceOffset=J-(this._performanceStartTime+u0.otperformance.timeOrigin),this._startTimeProvided=Z.startTime!=null,this._spanLimits=Z.spanLimits,this._attributeValueLengthLimit=this._spanLimits.attributeValueLengthLimit??0,this._spanProcessor=Z.spanProcessor,this.name=Z.name,this.parentSpanContext=Z.parentSpanContext,this.kind=Z.kind,Z.links)for(let Q of Z.links)this.addLink(Q);if(this.startTime=this._getTime(Z.startTime??J),this.resource=Z.resource,this.instrumentationScope=Z.scope,this._recordEndMetrics=Z.recordEndMetrics,Z.attributes!=null)this.setAttributes(Z.attributes);this._spanProcessor.onStart(this,Z.context)}spanContext(){return this._spanContext}setAttribute(Z,J){if(J==null||this._isSpanEnded())return this;if(Z.length===0)return m0.diag.warn(`Invalid attribute key: ${Z}`),this;if(!(0,u0.isAttributeValue)(J))return m0.diag.warn(`Invalid attribute value set for key: ${Z}`),this;let{attributeCountLimit:Q}=this._spanLimits,$=!Object.prototype.hasOwnProperty.call(this.attributes,Z);if(Q!==void 0&&this._attributesCount>=Q&&$)return this._droppedAttributesCount++,this;if(this.attributes[Z]=this._truncateToSize(J),$)this._attributesCount++;return this}setAttributes(Z){for(let J in Z)if(Object.prototype.hasOwnProperty.call(Z,J))this.setAttribute(J,Z[J]);return this}addEvent(Z,J,Q){if(this._isSpanEnded())return this;let{eventCountLimit:$}=this._spanLimits;if($===0)return m0.diag.warn("No events allowed."),this._droppedEventsCount++,this;if($!==void 0&&this.events.length>=$){if(this._droppedEventsCount===0)m0.diag.debug("Dropping extra events.");this.events.shift(),this._droppedEventsCount++}if((0,u0.isTimeInput)(J)){if(!(0,u0.isTimeInput)(Q))Q=J;J=void 0}let Y=(0,u0.sanitizeAttributes)(J),{attributePerEventCountLimit:X}=this._spanLimits,W={},K=0,z=0;for(let G in Y){if(!Object.prototype.hasOwnProperty.call(Y,G))continue;let H=Y[G];if(X!==void 0&&z>=X){K++;continue}W[G]=this._truncateToSize(H),z++}return this.events.push({name:Z,attributes:W,time:this._getTime(Q),droppedAttributesCount:K}),this}addLink(Z){if(this._isSpanEnded())return this;let{linkCountLimit:J}=this._spanLimits;if(J===0)return this._droppedLinksCount++,this;if(J!==void 0&&this.links.length>=J){if(this._droppedLinksCount===0)m0.diag.debug("Dropping extra links.");this.links.shift(),this._droppedLinksCount++}let{attributePerLinkCountLimit:Q}=this._spanLimits,$=(0,u0.sanitizeAttributes)(Z.attributes),Y={},X=0,W=0;for(let z in $){if(!Object.prototype.hasOwnProperty.call($,z))continue;let G=$[z];if(Q!==void 0&&W>=Q){X++;continue}Y[z]=this._truncateToSize(G),W++}let K={context:Z.context};if(W>0)K.attributes=Y;if(X>0)K.droppedAttributesCount=X;return this.links.push(K),this}addLinks(Z){for(let J of Z)this.addLink(J);return this}setStatus(Z){if(this._isSpanEnded())return this;if(Z.code===m0.SpanStatusCode.UNSET)return this;if(this.status.code===m0.SpanStatusCode.OK)return this;let J={code:Z.code};if(Z.code===m0.SpanStatusCode.ERROR){if(typeof Z.message==="string")J.message=Z.message;else if(Z.message!=null)m0.diag.warn(`Dropping invalid status.message of type '${typeof Z.message}', expected 'string'`)}return this.status=J,this}updateName(Z){if(this._isSpanEnded())return this;return this.name=Z,this}end(Z){if(this._isSpanEnded()){m0.diag.error(`${this.name} ${this._spanContext.traceId}-${this._spanContext.spanId} - You can only call end() on a span once.`);return}if(this.endTime=this._getTime(Z),this._duration=(0,u0.hrTimeDuration)(this.startTime,this.endTime),this._duration[0]<0)m0.diag.warn("Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.",this.startTime,this.endTime),this.endTime=this.startTime.slice(),this._duration=[0,0];if(this._droppedEventsCount>0)m0.diag.warn(`Dropped ${this._droppedEventsCount} events because eventCountLimit reached`);if(this._droppedLinksCount>0)m0.diag.warn(`Dropped ${this._droppedLinksCount} links because linkCountLimit reached`);if(this._spanProcessor.onEnding)this._spanProcessor.onEnding(this);this._recordEndMetrics?.(),this._ended=!0,this._spanProcessor.onEnd(this)}_getTime(Z){if(typeof Z==="number"&&Z<=u0.otperformance.now())return(0,u0.hrTime)(Z+this._performanceOffset);if(typeof Z==="number")return(0,u0.millisToHrTime)(Z);if(Z instanceof Date)return(0,u0.millisToHrTime)(Z.getTime());if((0,u0.isTimeInputHrTime)(Z))return Z;if(this._startTimeProvided)return(0,u0.millisToHrTime)(Date.now());let J=u0.otperformance.now()-this._performanceStartTime;return(0,u0.addHrTimes)(this.startTime,(0,u0.millisToHrTime)(J))}isRecording(){return this._ended===!1}recordException(Z,J){let Q={};if(typeof Z==="string")Q[$1.ATTR_EXCEPTION_MESSAGE]=Z;else if(Z){if(Z.code)Q[$1.ATTR_EXCEPTION_TYPE]=Z.code.toString();else if(Z.name)Q[$1.ATTR_EXCEPTION_TYPE]=Z.name;if(Z.message)Q[$1.ATTR_EXCEPTION_MESSAGE]=Z.message;if(Z.stack)Q[$1.ATTR_EXCEPTION_STACKTRACE]=Z.stack}if(Q[$1.ATTR_EXCEPTION_TYPE]||Q[$1.ATTR_EXCEPTION_MESSAGE])this.addEvent(aU0.ExceptionEventName,Q,J);else m0.diag.warn(`Failed to record an exception ${Z}`)}get duration(){return this._duration}get ended(){return this._ended}get droppedAttributesCount(){return this._droppedAttributesCount}get droppedEventsCount(){return this._droppedEventsCount}get droppedLinksCount(){return this._droppedLinksCount}_isSpanEnded(){if(this._ended){let Z=Error(`Operation attempted on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`);m0.diag.warn(`Cannot execute the operation on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`,Z)}return this._ended}_truncateToLimitUtil(Z,J){if(Z.length<=J)return Z;return Z.substring(0,J)}_truncateToSize(Z){let J=this._attributeValueLengthLimit;if(J<=0)return m0.diag.warn(`Attribute value limit must be positive, got ${J}`),Z;if(typeof Z==="string")return this._truncateToLimitUtil(Z,J);if(Array.isArray(Z))return Z.map((Q)=>typeof Q==="string"?this._truncateToLimitUtil(Q,J):Q);return Z}}H_.SpanImpl=B_});var U8=w((w_)=>{Object.defineProperty(w_,"__esModule",{value:!0});w_.SamplingDecision=void 0;var sU0;(function(Z){Z[Z.NOT_RECORD=0]="NOT_RECORD",Z[Z.RECORD=1]="RECORD",Z[Z.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(sU0=w_.SamplingDecision||(w_.SamplingDecision={}))});var O$=w((U_)=>{Object.defineProperty(U_,"__esModule",{value:!0});U_.AlwaysOffSampler=void 0;var rU0=U8();class D_{shouldSample(){return{decision:rU0.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}}U_.AlwaysOffSampler=D_});var C$=w((L_)=>{Object.defineProperty(L_,"__esModule",{value:!0});L_.AlwaysOnSampler=void 0;var tU0=U8();class q_{shouldSample(){return{decision:tU0.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}}L_.AlwaysOnSampler=q_});var Az=w((k_)=>{Object.defineProperty(k_,"__esModule",{value:!0});k_.ParentBasedSampler=void 0;var P$=C(),eU0=Q0(),C_=O$(),Rz=C$();class P_{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(Z){if(this._root=Z.root,!this._root)(0,eU0.globalErrorHandler)(Error("ParentBasedSampler must have a root sampler configured")),this._root=new Rz.AlwaysOnSampler;this._remoteParentSampled=Z.remoteParentSampled??new Rz.AlwaysOnSampler,this._remoteParentNotSampled=Z.remoteParentNotSampled??new C_.AlwaysOffSampler,this._localParentSampled=Z.localParentSampled??new Rz.AlwaysOnSampler,this._localParentNotSampled=Z.localParentNotSampled??new C_.AlwaysOffSampler}shouldSample(Z,J,Q,$,Y,X){let W=P$.trace.getSpanContext(Z);if(!W||!(0,P$.isSpanContextValid)(W))return this._root.shouldSample(Z,J,Q,$,Y,X);if(W.isRemote){if(W.traceFlags&P$.TraceFlags.SAMPLED)return this._remoteParentSampled.shouldSample(Z,J,Q,$,Y,X);return this._remoteParentNotSampled.shouldSample(Z,J,Q,$,Y,X)}if(W.traceFlags&P$.TraceFlags.SAMPLED)return this._localParentSampled.shouldSample(Z,J,Q,$,Y,X);return this._localParentNotSampled.shouldSample(Z,J,Q,$,Y,X)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}}k_.ParentBasedSampler=P_});var Iz=w((I_)=>{Object.defineProperty(I_,"__esModule",{value:!0});I_.TraceIdRatioBasedSampler=void 0;var Zj0=C(),R_=U8();class A_{_ratio;_upperBound;constructor(Z=0){this._ratio=this._normalize(Z),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(Z,J){return{decision:(0,Zj0.isValidTraceId)(J)&&this._accumulate(J)=1?1:Z<=0?0:Z}_accumulate(Z){let J=0;for(let Q=0;Q>>0}return J}}I_.TraceIdRatioBasedSampler=A_});var fz=w((h_)=>{Object.defineProperty(h_,"__esModule",{value:!0});h_.buildSamplerFromEnv=h_.loadDefaultConfig=void 0;var Tz=C(),h9=Q0(),T_=O$(),Nz=C$(),k$=Az(),f_=Iz(),S9;(function(Z){Z.AlwaysOff="always_off",Z.AlwaysOn="always_on",Z.ParentBasedAlwaysOff="parentbased_always_off",Z.ParentBasedAlwaysOn="parentbased_always_on",Z.ParentBasedTraceIdRatio="parentbased_traceidratio",Z.TraceIdRatio="traceidratio"})(S9||(S9={}));var M$=1;function Jj0(){return{sampler:y_(),forceFlushTimeoutMillis:30000,generalLimits:{attributeValueLengthLimit:(0,h9.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,h9.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??128},spanLimits:{attributeValueLengthLimit:(0,h9.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,h9.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??128,linkCountLimit:(0,h9.getNumberFromEnv)("OTEL_SPAN_LINK_COUNT_LIMIT")??128,eventCountLimit:(0,h9.getNumberFromEnv)("OTEL_SPAN_EVENT_COUNT_LIMIT")??128,attributePerEventCountLimit:(0,h9.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT")??128,attributePerLinkCountLimit:(0,h9.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT")??128}}}h_.loadDefaultConfig=Jj0;function y_(){let Z=(0,h9.getStringFromEnv)("OTEL_TRACES_SAMPLER")??S9.ParentBasedAlwaysOn;switch(Z){case S9.AlwaysOn:return new Nz.AlwaysOnSampler;case S9.AlwaysOff:return new T_.AlwaysOffSampler;case S9.ParentBasedAlwaysOn:return new k$.ParentBasedSampler({root:new Nz.AlwaysOnSampler});case S9.ParentBasedAlwaysOff:return new k$.ParentBasedSampler({root:new T_.AlwaysOffSampler});case S9.TraceIdRatio:return new f_.TraceIdRatioBasedSampler(E_());case S9.ParentBasedTraceIdRatio:return new k$.ParentBasedSampler({root:new f_.TraceIdRatioBasedSampler(E_())});default:return Tz.diag.error(`OTEL_TRACES_SAMPLER value "${Z}" invalid, defaulting to "${S9.ParentBasedAlwaysOn}".`),new k$.ParentBasedSampler({root:new Nz.AlwaysOnSampler})}}h_.buildSamplerFromEnv=y_;function E_(){let Z=(0,h9.getNumberFromEnv)("OTEL_TRACES_SAMPLER_ARG");if(Z==null)return Tz.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${M$}.`),M$;if(Z<0||Z>1)return Tz.diag.error(`OTEL_TRACES_SAMPLER_ARG=${Z} was given, but it is out of range ([0..1]), defaulting to ${M$}.`),M$;return Z}});var Ez=w((v_)=>{Object.defineProperty(v_,"__esModule",{value:!0});v_.reconfigureLimits=v_.mergeConfig=v_.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=v_.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;var __=fz(),R$=Q0();v_.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;v_.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function $j0(Z){let J={sampler:(0,__.buildSamplerFromEnv)()},Q=(0,__.loadDefaultConfig)(),$=Object.assign({},Q,J,Z);return $.generalLimits=Object.assign({},Q.generalLimits,Z.generalLimits||{}),$.spanLimits=Object.assign({},Q.spanLimits,Z.spanLimits||{}),$}v_.mergeConfig=$j0;function Yj0(Z){let J=Object.assign({},Z.spanLimits);return J.attributeCountLimit=Z.spanLimits?.attributeCountLimit??Z.generalLimits?.attributeCountLimit??(0,R$.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??(0,R$.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??v_.DEFAULT_ATTRIBUTE_COUNT_LIMIT,J.attributeValueLengthLimit=Z.spanLimits?.attributeValueLengthLimit??Z.generalLimits?.attributeValueLengthLimit??(0,R$.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??(0,R$.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??v_.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},Z,{spanLimits:J})}v_.reconfigureLimits=Yj0});var u_=w((c_)=>{Object.defineProperty(c_,"__esModule",{value:!0});c_.BatchSpanProcessorBase=void 0;var j8=C(),WZ=Q0();class d_{_maxExportBatchSize;_maxQueueSize;_scheduledDelayMillis;_exportTimeoutMillis;_exporter;_isExporting=!1;_finishedSpans=[];_timer;_shutdownOnce;_droppedSpansCount=0;constructor(Z,J){if(this._exporter=Z,this._maxExportBatchSize=typeof J?.maxExportBatchSize==="number"?J.maxExportBatchSize:(0,WZ.getNumberFromEnv)("OTEL_BSP_MAX_EXPORT_BATCH_SIZE")??512,this._maxQueueSize=typeof J?.maxQueueSize==="number"?J.maxQueueSize:(0,WZ.getNumberFromEnv)("OTEL_BSP_MAX_QUEUE_SIZE")??2048,this._scheduledDelayMillis=typeof J?.scheduledDelayMillis==="number"?J.scheduledDelayMillis:(0,WZ.getNumberFromEnv)("OTEL_BSP_SCHEDULE_DELAY")??5000,this._exportTimeoutMillis=typeof J?.exportTimeoutMillis==="number"?J.exportTimeoutMillis:(0,WZ.getNumberFromEnv)("OTEL_BSP_EXPORT_TIMEOUT")??30000,this._shutdownOnce=new WZ.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize)j8.diag.warn("BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize"),this._maxExportBatchSize=this._maxQueueSize}forceFlush(){if(this._shutdownOnce.isCalled)return this._shutdownOnce.promise;return this._flushAll()}onStart(Z,J){}onEnd(Z){if(this._shutdownOnce.isCalled)return;if((Z.spanContext().traceFlags&j8.TraceFlags.SAMPLED)===0)return;this._addToBuffer(Z)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return Promise.resolve().then(()=>{return this.onShutdown()}).then(()=>{return this._flushAll()}).then(()=>{return this._exporter.shutdown()})}_addToBuffer(Z){if(this._finishedSpans.length>=this._maxQueueSize){if(this._droppedSpansCount===0)j8.diag.debug("maxQueueSize reached, dropping spans");this._droppedSpansCount++;return}if(this._droppedSpansCount>0)j8.diag.warn(`Dropped ${this._droppedSpansCount} spans because maxQueueSize reached`),this._droppedSpansCount=0;this._finishedSpans.push(Z),this._maybeStartTimer()}_flushAll(){return new Promise((Z,J)=>{let Q=[],$=Math.ceil(this._finishedSpans.length/this._maxExportBatchSize);for(let Y=0,X=$;Y{Z()}).catch(J)})}_flushOneBatch(){if(this._clearTimer(),this._finishedSpans.length===0)return Promise.resolve();return new Promise((Z,J)=>{let Q=setTimeout(()=>{J(Error("Timeout"))},this._exportTimeoutMillis);j8.context.with((0,WZ.suppressTracing)(j8.context.active()),()=>{let $;if(this._finishedSpans.length<=this._maxExportBatchSize)$=this._finishedSpans,this._finishedSpans=[];else $=this._finishedSpans.splice(0,this._maxExportBatchSize);let Y=()=>this._exporter.export($,(W)=>{if(clearTimeout(Q),W.code===WZ.ExportResultCode.SUCCESS)Z();else J(W.error??Error("BatchSpanProcessor: span export failed"))}),X=null;for(let W=0,K=$.length;W{(0,WZ.globalErrorHandler)(W),J(W)})})})}_maybeStartTimer(){if(this._isExporting)return;let Z=()=>{this._isExporting=!0,this._flushOneBatch().finally(()=>{if(this._isExporting=!1,this._finishedSpans.length>0)this._clearTimer(),this._maybeStartTimer()}).catch((J)=>{this._isExporting=!1,(0,WZ.globalErrorHandler)(J)})};if(this._finishedSpans.length>=this._maxExportBatchSize)return Z();if(this._timer!==void 0)return;if(this._timer=setTimeout(()=>Z(),this._scheduledDelayMillis),typeof this._timer!=="number")this._timer.unref()}_clearTimer(){if(this._timer!==void 0)clearTimeout(this._timer),this._timer=void 0}}c_.BatchSpanProcessorBase=d_});var o_=w((p_)=>{Object.defineProperty(p_,"__esModule",{value:!0});p_.BatchSpanProcessor=void 0;var Wj0=u_();class l_ extends Wj0.BatchSpanProcessorBase{onShutdown(){}}p_.BatchSpanProcessor=l_});var e_=w((r_)=>{Object.defineProperty(r_,"__esModule",{value:!0});r_.RandomIdGenerator=void 0;var Kj0=8,a_=16;class s_{generateTraceId=n_(a_);generateSpanId=n_(Kj0)}r_.RandomIdGenerator=s_;var A$=Buffer.allocUnsafe(a_);function n_(Z){return function(){for(let Q=0;Q>>0,Q*4);for(let Q=0;Q0)break;else if(Q===Z-1)A$[Z-1]=1;return A$.toString("hex",0,Z)}}});var Zv=w((I$)=>{Object.defineProperty(I$,"__esModule",{value:!0});I$.RandomIdGenerator=I$.BatchSpanProcessor=void 0;var zj0=o_();Object.defineProperty(I$,"BatchSpanProcessor",{enumerable:!0,get:function(){return zj0.BatchSpanProcessor}});var Gj0=e_();Object.defineProperty(I$,"RandomIdGenerator",{enumerable:!0,get:function(){return Gj0.RandomIdGenerator}})});var yz=w((N$)=>{Object.defineProperty(N$,"__esModule",{value:!0});N$.RandomIdGenerator=N$.BatchSpanProcessor=void 0;var Jv=Zv();Object.defineProperty(N$,"BatchSpanProcessor",{enumerable:!0,get:function(){return Jv.BatchSpanProcessor}});Object.defineProperty(N$,"RandomIdGenerator",{enumerable:!0,get:function(){return Jv.RandomIdGenerator}})});var Yv=w((Qv)=>{Object.defineProperty(Qv,"__esModule",{value:!0});Qv.METRIC_OTEL_SDK_SPAN_STARTED=Qv.METRIC_OTEL_SDK_SPAN_LIVE=Qv.ATTR_OTEL_SPAN_SAMPLING_RESULT=Qv.ATTR_OTEL_SPAN_PARENT_ORIGIN=void 0;Qv.ATTR_OTEL_SPAN_PARENT_ORIGIN="otel.span.parent.origin";Qv.ATTR_OTEL_SPAN_SAMPLING_RESULT="otel.span.sampling_result";Qv.METRIC_OTEL_SDK_SPAN_LIVE="otel.sdk.span.live";Qv.METRIC_OTEL_SDK_SPAN_STARTED="otel.sdk.span.started"});var zv=w((Wv)=>{Object.defineProperty(Wv,"__esModule",{value:!0});Wv.TracerMetrics=void 0;var T$=U8(),L4=Yv();class Xv{startedSpans;liveSpans;constructor(Z){this.startedSpans=Z.createCounter(L4.METRIC_OTEL_SDK_SPAN_STARTED,{unit:"{span}",description:"The number of created spans."}),this.liveSpans=Z.createUpDownCounter(L4.METRIC_OTEL_SDK_SPAN_LIVE,{unit:"{span}",description:"The number of currently live spans."})}startSpan(Z,J){let Q=Uj0(J);if(this.startedSpans.add(1,{[L4.ATTR_OTEL_SPAN_PARENT_ORIGIN]:Dj0(Z),[L4.ATTR_OTEL_SPAN_SAMPLING_RESULT]:Q}),J===T$.SamplingDecision.NOT_RECORD)return()=>{};let $={[L4.ATTR_OTEL_SPAN_SAMPLING_RESULT]:Q};return this.liveSpans.add(1,$),()=>{this.liveSpans.add(-1,$)}}}Wv.TracerMetrics=Xv;function Dj0(Z){if(!Z)return"none";if(Z.isRemote)return"remote";return"local"}function Uj0(Z){switch(Z){case T$.SamplingDecision.RECORD_AND_SAMPLED:return"RECORD_AND_SAMPLE";case T$.SamplingDecision.RECORD:return"RECORD_ONLY";case T$.SamplingDecision.NOT_RECORD:return"DROP"}}});var Hv=w((Gv)=>{Object.defineProperty(Gv,"__esModule",{value:!0});Gv.VERSION=void 0;Gv.VERSION="2.6.1"});var Dv=w((Fv)=>{Object.defineProperty(Fv,"__esModule",{value:!0});Fv.Tracer=void 0;var _0=C(),f$=Q0(),jj0=F_(),qj0=Ez(),Lj0=yz(),Oj0=zv(),Cj0=Hv();class Vv{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;_tracerMetrics;constructor(Z,J,Q,$){let Y=(0,qj0.mergeConfig)(J);this._sampler=Y.sampler,this._generalLimits=Y.generalLimits,this._spanLimits=Y.spanLimits,this._idGenerator=J.idGenerator||new Lj0.RandomIdGenerator,this._resource=Q,this._spanProcessor=$,this.instrumentationScope=Z;let X=Y.meterProvider?Y.meterProvider.getMeter("@opentelemetry/sdk-trace",Cj0.VERSION):_0.createNoopMeter();this._tracerMetrics=new Oj0.TracerMetrics(X)}startSpan(Z,J={},Q=_0.context.active()){if(J.root)Q=_0.trace.deleteSpan(Q);let $=_0.trace.getSpan(Q);if((0,f$.isTracingSuppressed)(Q))return _0.diag.debug("Instrumentation suppressed, returning Noop Span"),_0.trace.wrapSpanContext(_0.INVALID_SPAN_CONTEXT);let Y=$?.spanContext(),X=this._idGenerator.generateSpanId(),W,K,z;if(!Y||!_0.trace.isSpanContextValid(Y))K=this._idGenerator.generateTraceId();else K=Y.traceId,z=Y.traceState,W=Y;let G=J.kind??_0.SpanKind.INTERNAL,H=(J.links??[]).map((O)=>{return{context:O.context,attributes:(0,f$.sanitizeAttributes)(O.attributes)}}),B=(0,f$.sanitizeAttributes)(J.attributes),V=this._sampler.shouldSample(Q,K,Z,G,B,H),F=this._tracerMetrics.startSpan(Y,V.decision);z=V.traceState??z;let D=V.decision===_0.SamplingDecision.RECORD_AND_SAMPLED?_0.TraceFlags.SAMPLED:_0.TraceFlags.NONE,U={traceId:K,spanId:X,traceFlags:D,traceState:z};if(V.decision===_0.SamplingDecision.NOT_RECORD)return _0.diag.debug("Recording is off, propagating context in a non-recording span"),_0.trace.wrapSpanContext(U);let j=(0,f$.sanitizeAttributes)(Object.assign(B,V.attributes));return new jj0.SpanImpl({resource:this._resource,scope:this.instrumentationScope,context:Q,spanContext:U,name:Z,kind:G,links:H,parentSpanContext:W,attributes:j,startTime:J.startTime,spanProcessor:this._spanProcessor,spanLimits:this._spanLimits,recordEndMetrics:F})}startActiveSpan(Z,J,Q,$){let Y,X,W;if(arguments.length<2)return;else if(arguments.length===2)W=J;else if(arguments.length===3)Y=J,W=Q;else Y=J,X=Q,W=$;let K=X??_0.context.active(),z=this.startSpan(Z,Y,K),G=_0.trace.setSpan(K,z);return _0.context.with(G,W,void 0,z)}getGeneralLimits(){return this._generalLimits}getSpanLimits(){return this._spanLimits}}Fv.Tracer=Vv});var Lv=w((jv)=>{Object.defineProperty(jv,"__esModule",{value:!0});jv.MultiSpanProcessor=void 0;var Pj0=Q0();class Uv{_spanProcessors;constructor(Z){this._spanProcessors=Z}forceFlush(){let Z=[];for(let J of this._spanProcessors)Z.push(J.forceFlush());return new Promise((J)=>{Promise.all(Z).then(()=>{J()}).catch((Q)=>{(0,Pj0.globalErrorHandler)(Q||Error("MultiSpanProcessor: forceFlush failed")),J()})})}onStart(Z,J){for(let Q of this._spanProcessors)Q.onStart(Z,J)}onEnding(Z){for(let J of this._spanProcessors)if(J.onEnding)J.onEnding(Z)}onEnd(Z){for(let J of this._spanProcessors)J.onEnd(Z)}shutdown(){let Z=[];for(let J of this._spanProcessors)Z.push(J.shutdown());return new Promise((J,Q)=>{Promise.all(Z).then(()=>{J()},Q)})}}jv.MultiSpanProcessor=Uv});var Mv=w((Pv)=>{Object.defineProperty(Pv,"__esModule",{value:!0});Pv.BasicTracerProvider=Pv.ForceFlushState=void 0;var kj0=Q0(),Mj0=kz(),Rj0=Dv(),Aj0=fz(),Ij0=Lv(),Nj0=Ez(),q8;(function(Z){Z[Z.resolved=0]="resolved",Z[Z.timeout=1]="timeout",Z[Z.error=2]="error",Z[Z.unresolved=3]="unresolved"})(q8=Pv.ForceFlushState||(Pv.ForceFlushState={}));class Cv{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(Z={}){let J=(0,kj0.merge)({},(0,Aj0.loadDefaultConfig)(),(0,Nj0.reconfigureLimits)(Z));this._resource=J.resource??(0,Mj0.defaultResource)(),this._config=Object.assign({},J,{resource:this._resource});let Q=[];if(Z.spanProcessors?.length)Q.push(...Z.spanProcessors);this._activeSpanProcessor=new Ij0.MultiSpanProcessor(Q)}getTracer(Z,J,Q){let $=`${Z}@${J||""}:${Q?.schemaUrl||""}`;if(!this._tracers.has($))this._tracers.set($,new Rj0.Tracer({name:Z,version:J,schemaUrl:Q?.schemaUrl},this._config,this._resource,this._activeSpanProcessor));return this._tracers.get($)}forceFlush(){let Z=this._config.forceFlushTimeoutMillis,J=this._activeSpanProcessor._spanProcessors.map((Q)=>{return new Promise(($)=>{let Y,X=setTimeout(()=>{$(Error(`Span processor did not completed within timeout period of ${Z} ms`)),Y=q8.timeout},Z);Q.forceFlush().then(()=>{if(clearTimeout(X),Y!==q8.timeout)Y=q8.resolved,$(Y)}).catch((W)=>{clearTimeout(X),Y=q8.error,$(W)})})});return new Promise((Q,$)=>{Promise.all(J).then((Y)=>{let X=Y.filter((W)=>W!==q8.resolved);if(X.length>0)$(X);else Q()}).catch((Y)=>$([Y]))})}shutdown(){return this._activeSpanProcessor.shutdown()}}Pv.BasicTracerProvider=Cv});var Nv=w((Av)=>{Object.defineProperty(Av,"__esModule",{value:!0});Av.ConsoleSpanExporter=void 0;var hz=Q0();class Rv{export(Z,J){return this._sendSpans(Z,J)}shutdown(){return this._sendSpans([]),this.forceFlush()}forceFlush(){return Promise.resolve()}_exportInfo(Z){return{resource:{attributes:Z.resource.attributes},instrumentationScope:Z.instrumentationScope,traceId:Z.spanContext().traceId,parentSpanContext:Z.parentSpanContext,traceState:Z.spanContext().traceState?.serialize(),name:Z.name,id:Z.spanContext().spanId,kind:Z.kind,timestamp:(0,hz.hrTimeToMicroseconds)(Z.startTime),duration:(0,hz.hrTimeToMicroseconds)(Z.duration),attributes:Z.attributes,status:Z.status,events:Z.events,links:Z.links}}_sendSpans(Z,J){for(let Q of Z)console.dir(this._exportInfo(Q),{depth:3});if(J)return J({code:hz.ExportResultCode.SUCCESS})}}Av.ConsoleSpanExporter=Rv});var hv=w((Ev)=>{Object.defineProperty(Ev,"__esModule",{value:!0});Ev.InMemorySpanExporter=void 0;var Tv=Q0();class fv{_finishedSpans=[];_stopped=!1;export(Z,J){if(this._stopped)return J({code:Tv.ExportResultCode.FAILED,error:Error("Exporter has been stopped")});this._finishedSpans.push(...Z),setTimeout(()=>J({code:Tv.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}}Ev.InMemorySpanExporter=fv});var bv=w((_v)=>{Object.defineProperty(_v,"__esModule",{value:!0});_v.SimpleSpanProcessor=void 0;var Tj0=C(),E$=Q0();class Sv{_exporter;_shutdownOnce;_pendingExports;constructor(Z){this._exporter=Z,this._shutdownOnce=new E$.BindOnceFuture(this._shutdown,this),this._pendingExports=new Set}async forceFlush(){if(await Promise.all(Array.from(this._pendingExports)),this._exporter.forceFlush)await this._exporter.forceFlush()}onStart(Z,J){}onEnd(Z){if(this._shutdownOnce.isCalled)return;if((Z.spanContext().traceFlags&Tj0.TraceFlags.SAMPLED)===0)return;let J=this._doExport(Z).catch((Q)=>(0,E$.globalErrorHandler)(Q));this._pendingExports.add(J),J.finally(()=>this._pendingExports.delete(J))}async _doExport(Z){if(Z.resource.asyncAttributesPending)await Z.resource.waitForAsyncAttributes?.();let J=await E$.internal._export(this._exporter,[Z]);if(J.code!==E$.ExportResultCode.SUCCESS)throw J.error??Error(`SimpleSpanProcessor: span export failed (status ${J})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}}_v.SimpleSpanProcessor=Sv});var cv=w((gv)=>{Object.defineProperty(gv,"__esModule",{value:!0});gv.NoopSpanProcessor=void 0;class xv{onStart(Z,J){}onEnd(Z){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}}gv.NoopSpanProcessor=xv});var Sz=w((q6)=>{Object.defineProperty(q6,"__esModule",{value:!0});q6.SamplingDecision=q6.TraceIdRatioBasedSampler=q6.ParentBasedSampler=q6.AlwaysOnSampler=q6.AlwaysOffSampler=q6.NoopSpanProcessor=q6.SimpleSpanProcessor=q6.InMemorySpanExporter=q6.ConsoleSpanExporter=q6.RandomIdGenerator=q6.BatchSpanProcessor=q6.BasicTracerProvider=void 0;var fj0=Mv();Object.defineProperty(q6,"BasicTracerProvider",{enumerable:!0,get:function(){return fj0.BasicTracerProvider}});var mv=yz();Object.defineProperty(q6,"BatchSpanProcessor",{enumerable:!0,get:function(){return mv.BatchSpanProcessor}});Object.defineProperty(q6,"RandomIdGenerator",{enumerable:!0,get:function(){return mv.RandomIdGenerator}});var Ej0=Nv();Object.defineProperty(q6,"ConsoleSpanExporter",{enumerable:!0,get:function(){return Ej0.ConsoleSpanExporter}});var yj0=hv();Object.defineProperty(q6,"InMemorySpanExporter",{enumerable:!0,get:function(){return yj0.InMemorySpanExporter}});var hj0=bv();Object.defineProperty(q6,"SimpleSpanProcessor",{enumerable:!0,get:function(){return hj0.SimpleSpanProcessor}});var Sj0=cv();Object.defineProperty(q6,"NoopSpanProcessor",{enumerable:!0,get:function(){return Sj0.NoopSpanProcessor}});var _j0=O$();Object.defineProperty(q6,"AlwaysOffSampler",{enumerable:!0,get:function(){return _j0.AlwaysOffSampler}});var vj0=C$();Object.defineProperty(q6,"AlwaysOnSampler",{enumerable:!0,get:function(){return vj0.AlwaysOnSampler}});var bj0=Az();Object.defineProperty(q6,"ParentBasedSampler",{enumerable:!0,get:function(){return bj0.ParentBasedSampler}});var xj0=Iz();Object.defineProperty(q6,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return xj0.TraceIdRatioBasedSampler}});var gj0=U8();Object.defineProperty(q6,"SamplingDecision",{enumerable:!0,get:function(){return gj0.SamplingDecision}})});var Gx=w((Kx)=>{Object.defineProperty(Kx,"__esModule",{value:!0});Kx.PACKAGE_NAME=Kx.PACKAGE_VERSION=void 0;Kx.PACKAGE_VERSION="0.23.0";Kx.PACKAGE_NAME="@opentelemetry/instrumentation-undici"});var wx=w((Vx)=>{Object.defineProperty(Vx,"__esModule",{value:!0});Vx.UndiciInstrumentation=void 0;var MG=A("diagnostics_channel"),hO0=A("url"),f4=c(),v6=C(),u$=Q0(),A0=s(),Bx=Gx();class Hx extends f4.InstrumentationBase{_recordFromReq=new WeakMap;constructor(Z={}){super(Bx.PACKAGE_NAME,Bx.PACKAGE_VERSION,Z)}init(){return}disable(){super.disable(),this._channelSubs.forEach((Z)=>Z.unsubscribe()),this._channelSubs.length=0}enable(){if(super.enable(),this._channelSubs=this._channelSubs||[],this._channelSubs.length>0)return;this.subscribeToChannel("undici:request:create",this.onRequestCreated.bind(this)),this.subscribeToChannel("undici:client:sendHeaders",this.onRequestHeaders.bind(this)),this.subscribeToChannel("undici:request:headers",this.onResponseHeaders.bind(this)),this.subscribeToChannel("undici:request:trailers",this.onDone.bind(this)),this.subscribeToChannel("undici:request:error",this.onError.bind(this))}_updateMetricInstruments(){this._httpClientDurationHistogram=this.meter.createHistogram(A0.METRIC_HTTP_CLIENT_REQUEST_DURATION,{description:"Measures the duration of outbound HTTP requests.",unit:"s",valueType:v6.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[0.005,0.01,0.025,0.05,0.075,0.1,0.25,0.5,0.75,1,2.5,5,7.5,10]}})}subscribeToChannel(Z,J){let[Q,$]=process.version.replace("v","").split(".").map((W)=>Number(W)),Y=Q>18||Q===18&&$>=19,X;if(Y)MG.subscribe?.(Z,J),X=()=>MG.unsubscribe?.(Z,J);else{let W=MG.channel(Z);W.subscribe(J),X=()=>W.unsubscribe(J)}this._channelSubs.push({name:Z,unsubscribe:X})}parseRequestHeaders(Z){let J=new Map;if(Array.isArray(Z.headers))for(let Q=0;Q!Q||Z.method==="CONNECT"||J.ignoreRequestHook?.(Z),(T)=>T&&this._diag.error("caught ignoreRequestHook error: ",T),!0))return;let Y=(0,u$.hrTime)(),X;try{X=new hO0.URL(Z.path,Z.origin)}catch(T){this._diag.warn("could not determine url.full:",T);return}let W=X.protocol.replace(":",""),K=this.getRequestMethod(Z.method),z={[A0.ATTR_HTTP_REQUEST_METHOD]:K,[A0.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]:Z.method,[A0.ATTR_URL_FULL]:X.toString(),[A0.ATTR_URL_PATH]:X.pathname,[A0.ATTR_URL_QUERY]:X.search,[A0.ATTR_URL_SCHEME]:W},G={https:"443",http:"80"},H=X.hostname,B=X.port||G[W];if(z[A0.ATTR_SERVER_ADDRESS]=H,B&&!isNaN(Number(B)))z[A0.ATTR_SERVER_PORT]=Number(B);let F=this.parseRequestHeaders(Z).get("user-agent");if(F){let T=Array.isArray(F)?F[F.length-1]:F;z[A0.ATTR_USER_AGENT_ORIGINAL]=T}let D=(0,f4.safeExecuteInTheMiddle)(()=>J.startSpanHook?.(Z),(T)=>T&&this._diag.error("caught startSpanHook error: ",T),!0);if(D)Object.entries(D).forEach(([T,n])=>{z[T]=n});let U=v6.context.active(),j=v6.trace.getSpan(U),L;if(J.requireParentforSpans&&(!j||!v6.trace.isSpanContextValid(j.spanContext())))L=v6.trace.wrapSpanContext(v6.INVALID_SPAN_CONTEXT);else L=this.tracer.startSpan(K==="_OTHER"?"HTTP":K,{kind:v6.SpanKind.CLIENT,attributes:z},U);(0,f4.safeExecuteInTheMiddle)(()=>J.requestHook?.(L,Z),(T)=>T&&this._diag.error("caught requestHook error: ",T),!0);let O=v6.trace.setSpan(v6.context.active(),L),M={};v6.propagation.inject(O,M);let S=Object.entries(M);for(let T=0;TH.toLowerCase())),G=this.parseRequestHeaders(Z);for(let[H,B]of G.entries())if(z.has(H)){let V=Array.isArray(B)?B:[B];K[`http.request.header.${H}`]=V}}Y.setAttributes(K)}onResponseHeaders({request:Z,response:J}){let Q=this._recordFromReq.get(Z);if(!Q)return;let{span:$,attributes:Y}=Q,X={[A0.ATTR_HTTP_RESPONSE_STATUS_CODE]:J.statusCode},W=this.getConfig();if((0,f4.safeExecuteInTheMiddle)(()=>W.responseHook?.($,{request:Z,response:J}),(K)=>K&&this._diag.error("caught responseHook error: ",K),!0),W.headersToSpanAttributes?.responseHeaders){let K=new Set;W.headersToSpanAttributes?.responseHeaders.forEach((z)=>K.add(z.toLowerCase()));for(let z=0;z=400?v6.SpanStatusCode.ERROR:v6.SpanStatusCode.UNSET}),Q.attributes=Object.assign(Y,X)}onDone({request:Z}){let J=this._recordFromReq.get(Z);if(!J)return;let{span:Q,attributes:$,startTime:Y}=J;Q.end(),this._recordFromReq.delete(Z),this.recordRequestDuration($,Y)}onError({request:Z,error:J}){let Q=this._recordFromReq.get(Z);if(!Q)return;let{span:$,attributes:Y,startTime:X}=Q;$.recordException(J),$.setStatus({code:v6.SpanStatusCode.ERROR,message:J.message}),$.end(),this._recordFromReq.delete(Z),Y[A0.ATTR_ERROR_TYPE]=J.message,this.recordRequestDuration(Y,X)}recordRequestDuration(Z,J){let Q={};[A0.ATTR_HTTP_RESPONSE_STATUS_CODE,A0.ATTR_HTTP_REQUEST_METHOD,A0.ATTR_SERVER_ADDRESS,A0.ATTR_SERVER_PORT,A0.ATTR_URL_SCHEME,A0.ATTR_ERROR_TYPE].forEach((X)=>{if(X in Z)Q[X]=Z[X]});let Y=(0,u$.hrTimeToMilliseconds)((0,u$.hrTimeDuration)(J,(0,u$.hrTime)()))/1000;this._httpClientDurationHistogram.record(Y,Q)}getRequestMethod(Z){let J={CONNECT:!0,OPTIONS:!0,HEAD:!0,GET:!0,POST:!0,PUT:!0,PATCH:!0,DELETE:!0,TRACE:!0,QUERY:!0};if(Z.toUpperCase()in J)return Z.toUpperCase();return"_OTHER"}}Vx.UndiciInstrumentation=Hx});var Dx=w((RG)=>{Object.defineProperty(RG,"__esModule",{value:!0});RG.UndiciInstrumentation=void 0;var SO0=wx();Object.defineProperty(RG,"UndiciInstrumentation",{enumerable:!0,get:function(){return SO0.UndiciInstrumentation}})});var l$=w((Ox)=>{Object.defineProperty(Ox,"__esModule",{value:!0});Ox.ExpressLayerType=void 0;var cO0;(function(Z){Z.ROUTER="router",Z.MIDDLEWARE="middleware",Z.REQUEST_HANDLER="request_handler"})(cO0=Ox.ExpressLayerType||(Ox.ExpressLayerType={}))});var p$=w((Cx)=>{Object.defineProperty(Cx,"__esModule",{value:!0});Cx.AttributeNames=void 0;var mO0;(function(Z){Z.EXPRESS_TYPE="express.type",Z.EXPRESS_NAME="express.name"})(mO0=Cx.AttributeNames||(Cx.AttributeNames={}))});var NG=w((Px)=>{Object.defineProperty(Px,"__esModule",{value:!0});Px._LAYERS_STORE_PROPERTY=Px.kLayerPatched=void 0;Px.kLayerPatched=Symbol("express-layer-patched");Px._LAYERS_STORE_PROPERTY="__ot_middlewares"});var Nx=w((Ax)=>{Object.defineProperty(Ax,"__esModule",{value:!0});Ax.getActualMatchedRoute=Ax.getConstructedRoute=Ax.getLayerPath=Ax.asErrorAndMessage=Ax.isLayerIgnored=Ax.getLayerMetadata=Ax.getRouterPath=Ax.storeLayerPath=void 0;var TG=l$(),k8=p$(),Y1=NG(),lO0=(Z,J)=>{if(Array.isArray(Z[Y1._LAYERS_STORE_PROPERTY])===!1)Object.defineProperty(Z,Y1._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]});if(J===void 0)return{isLayerPathStored:!1};return Z[Y1._LAYERS_STORE_PROPERTY].push(J),{isLayerPathStored:!0}};Ax.storeLayerPath=lO0;var pO0=(Z,J)=>{let Q=J.handle?.stack?.[0];if(Q?.route?.path)return`${Z}${Q.route.path}`;if(Q?.handle?.stack)return Ax.getRouterPath(Z,Q);return Z};Ax.getRouterPath=pO0;var iO0=(Z,J,Q)=>{if(J.name==="router"){let $=Ax.getRouterPath("",J),Y=$?$:Q||Z||"/";return{attributes:{[k8.AttributeNames.EXPRESS_NAME]:Y,[k8.AttributeNames.EXPRESS_TYPE]:TG.ExpressLayerType.ROUTER},name:`router - ${Y}`}}else if(J.name==="bound dispatch"||J.name==="handle")return{attributes:{[k8.AttributeNames.EXPRESS_NAME]:(Z||Q)??"request handler",[k8.AttributeNames.EXPRESS_TYPE]:TG.ExpressLayerType.REQUEST_HANDLER},name:`request handler${J.path?` - ${Z||Q}`:""}`};else return{attributes:{[k8.AttributeNames.EXPRESS_NAME]:J.name,[k8.AttributeNames.EXPRESS_TYPE]:TG.ExpressLayerType.MIDDLEWARE},name:`middleware - ${J.name}`}};Ax.getLayerMetadata=iO0;var oO0=(Z,J)=>{if(typeof J==="string")return J===Z;else if(J instanceof RegExp)return J.test(Z);else if(typeof J==="function")return J(Z);else throw TypeError("Pattern is in unsupported datatype")},nO0=(Z,J,Q)=>{if(Array.isArray(Q?.ignoreLayersType)&&Q?.ignoreLayersType?.includes(J))return!0;if(Array.isArray(Q?.ignoreLayers)===!1)return!1;try{for(let $ of Q.ignoreLayers)if(oO0(Z,$))return!0}catch($){}return!1};Ax.isLayerIgnored=nO0;var aO0=(Z)=>Z instanceof Error?[Z,Z.message]:[String(Z),String(Z)];Ax.asErrorAndMessage=aO0;var sO0=(Z)=>{let J=Z[0];if(Array.isArray(J))return J.map((Q)=>Mx(Q)||"").join(",");return Mx(J)};Ax.getLayerPath=sO0;var Mx=(Z)=>{if(typeof Z==="string")return Z;if(Z instanceof RegExp||typeof Z==="number")return Z.toString();return};function Rx(Z){let Q=(Array.isArray(Z[Y1._LAYERS_STORE_PROPERTY])?Z[Y1._LAYERS_STORE_PROPERTY]:[]).filter(($)=>$!=="/"&&$!=="/*");if(Q.length===1&&Q[0]==="*")return"*";return Q.join("").replace(/\/{2,}/g,"/")}Ax.getConstructedRoute=Rx;function rO0(Z){let J=Array.isArray(Z[Y1._LAYERS_STORE_PROPERTY])?Z[Y1._LAYERS_STORE_PROPERTY]:[];if(J.length===0)return;if(J.every((X)=>X==="/"))return Z.originalUrl==="/"?"/":void 0;let Q=Rx(Z);if(Q==="*")return Q;if(Q.includes("/")&&(Q.includes(",")||Q.includes("\\")||Q.includes("*")||Q.includes("[")))return Q;let $=Q.startsWith("/")?Q:`/${Q}`;return $.length>0&&(Z.originalUrl===$||Z.originalUrl.startsWith($)||tO0($))?$:void 0}Ax.getActualMatchedRoute=rO0;function tO0(Z){return Z.includes(":")||Z.includes("*")}});var Ex=w((Tx)=>{Object.defineProperty(Tx,"__esModule",{value:!0});Tx.PACKAGE_NAME=Tx.PACKAGE_VERSION=void 0;Tx.PACKAGE_VERSION="0.61.0";Tx.PACKAGE_NAME="@opentelemetry/instrumentation-express"});var gx=w((bx)=>{Object.defineProperty(bx,"__esModule",{value:!0});bx.ExpressInstrumentation=void 0;var yx=Q0(),q9=C(),hx=l$(),Sx=p$(),b9=Nx(),_x=Ex(),M8=c(),WC0=s(),i$=NG();class vx extends M8.InstrumentationBase{constructor(Z={}){super(_x.PACKAGE_NAME,_x.PACKAGE_VERSION,Z)}init(){return[new M8.InstrumentationNodeModuleDefinition("express",[">=4.0.0 <6"],(Z)=>{let J=typeof Z?.Router?.prototype?.route==="function",Q=J?Z.Router.prototype:Z.Router;if((0,M8.isWrapped)(Q.route))this._unwrap(Q,"route");if(this._wrap(Q,"route",this._getRoutePatch()),(0,M8.isWrapped)(Q.use))this._unwrap(Q,"use");if(this._wrap(Q,"use",this._getRouterUsePatch()),(0,M8.isWrapped)(Z.application.use))this._unwrap(Z.application,"use");return this._wrap(Z.application,"use",this._getAppUsePatch(J)),Z},(Z)=>{if(Z===void 0)return;let Q=typeof Z?.Router?.prototype?.route==="function"?Z.Router.prototype:Z.Router;this._unwrap(Q,"route"),this._unwrap(Q,"use"),this._unwrap(Z.application,"use")})]}_getRoutePatch(){let Z=this;return function(J){return function(...$){let Y=J.apply(this,$),X=this.stack[this.stack.length-1];return Z._applyPatch(X,(0,b9.getLayerPath)($)),Y}}}_getRouterUsePatch(){let Z=this;return function(J){return function(...$){let Y=J.apply(this,$),X=this.stack[this.stack.length-1];return Z._applyPatch(X,(0,b9.getLayerPath)($)),Y}}}_getAppUsePatch(Z){let J=this;return function(Q){return function(...Y){let X=Z?this.router:this._router,W=Q.apply(this,Y);if(X){let K=X.stack[X.stack.length-1];J._applyPatch(K,(0,b9.getLayerPath)(Y))}return W}}}_applyPatch(Z,J){let Q=this;if(Z[i$.kLayerPatched]===!0)return;Z[i$.kLayerPatched]=!0,this._wrap(Z,"handle",($)=>{if($.length===4)return $;let Y=function(X,W){let{isLayerPathStored:K}=(0,b9.storeLayerPath)(X,J),z=(0,b9.getConstructedRoute)(X),G=(0,b9.getActualMatchedRoute)(X),H={[WC0.ATTR_HTTP_ROUTE]:G},B=(0,b9.getLayerMetadata)(z,Z,J),V=B.attributes[Sx.AttributeNames.EXPRESS_TYPE],F=(0,yx.getRPCMetadata)(q9.context.active());if(F?.type===yx.RPCType.HTTP)F.route=G;if((0,b9.isLayerIgnored)(B.name,V,Q.getConfig())){if(V===hx.ExpressLayerType.MIDDLEWARE)X[i$._LAYERS_STORE_PROPERTY].pop();return $.apply(this,arguments)}if(q9.trace.getSpan(q9.context.active())===void 0)return $.apply(this,arguments);let D=Q._getSpanName({request:X,layerType:V,route:z},B.name),U=Q.tracer.startSpan(D,{attributes:Object.assign(H,B.attributes)}),j=q9.context.active(),L=q9.trace.setSpan(j,U),{requestHook:O}=Q.getConfig();if(O)(0,M8.safeExecuteInTheMiddle)(()=>O(U,{request:X,layerType:V,route:z}),(r)=>{if(r)q9.diag.error("express instrumentation: request hook failed",r)},!0);let M=!1;if(B.attributes[Sx.AttributeNames.EXPRESS_TYPE]===hx.ExpressLayerType.ROUTER)U.end(),M=!0,L=j;let S=()=>{if(M===!1)M=!0,U.end()},T=Array.from(arguments),n=T.findIndex((r)=>typeof r==="function");if(n>=0)arguments[n]=function(){let r=arguments[0],r0=![void 0,null,"route","router"].includes(r);if(!M&&r0){let[H7,V7]=(0,b9.asErrorAndMessage)(r);U.recordException(H7),U.setStatus({code:q9.SpanStatusCode.ERROR,message:V7})}if(M===!1)M=!0,X.res?.removeListener("finish",S),U.end();if(!(X.route&&r0)&&K)X[i$._LAYERS_STORE_PROPERTY].pop();let R9=T[n];return q9.context.bind(j,R9).apply(this,arguments)};try{return q9.context.bind(L,$).apply(this,arguments)}catch(r){let[r0,R9]=(0,b9.asErrorAndMessage)(r);throw U.recordException(r0),U.setStatus({code:q9.SpanStatusCode.ERROR,message:R9}),r}finally{if(!M)W.once("finish",S)}};for(let X in $)Object.defineProperty(Y,X,{get(){return $[X]},set(W){$[X]=W}});return Y})}_getSpanName(Z,J){let{spanNameHook:Q}=this.getConfig();if(!(Q instanceof Function))return J;try{return Q(Z,J)??J}catch($){return q9.diag.error("express instrumentation: error calling span name rewrite hook",$),J}}}bx.ExpressInstrumentation=vx});var dx=w((E4)=>{Object.defineProperty(E4,"__esModule",{value:!0});E4.AttributeNames=E4.ExpressLayerType=E4.ExpressInstrumentation=void 0;var KC0=gx();Object.defineProperty(E4,"ExpressInstrumentation",{enumerable:!0,get:function(){return KC0.ExpressInstrumentation}});var zC0=l$();Object.defineProperty(E4,"ExpressLayerType",{enumerable:!0,get:function(){return zC0.ExpressLayerType}});var GC0=p$();Object.defineProperty(E4,"AttributeNames",{enumerable:!0,get:function(){return GC0.AttributeNames}})});var ix=w((px)=>{Object.defineProperty(px,"__esModule",{value:!0});px.SeverityNumber=void 0;var wC0;(function(Z){Z[Z.UNSPECIFIED=0]="UNSPECIFIED",Z[Z.TRACE=1]="TRACE",Z[Z.TRACE2=2]="TRACE2",Z[Z.TRACE3=3]="TRACE3",Z[Z.TRACE4=4]="TRACE4",Z[Z.DEBUG=5]="DEBUG",Z[Z.DEBUG2=6]="DEBUG2",Z[Z.DEBUG3=7]="DEBUG3",Z[Z.DEBUG4=8]="DEBUG4",Z[Z.INFO=9]="INFO",Z[Z.INFO2=10]="INFO2",Z[Z.INFO3=11]="INFO3",Z[Z.INFO4=12]="INFO4",Z[Z.WARN=13]="WARN",Z[Z.WARN2=14]="WARN2",Z[Z.WARN3=15]="WARN3",Z[Z.WARN4=16]="WARN4",Z[Z.ERROR=17]="ERROR",Z[Z.ERROR2=18]="ERROR2",Z[Z.ERROR3=19]="ERROR3",Z[Z.ERROR4=20]="ERROR4",Z[Z.FATAL=21]="FATAL",Z[Z.FATAL2=22]="FATAL2",Z[Z.FATAL3=23]="FATAL3",Z[Z.FATAL4=24]="FATAL4"})(wC0=px.SeverityNumber||(px.SeverityNumber={}))});var n$=w((ox)=>{Object.defineProperty(ox,"__esModule",{value:!0});ox.NOOP_LOGGER=ox.NoopLogger=void 0;class yG{emit(Z){}}ox.NoopLogger=yG;ox.NOOP_LOGGER=new yG});var rx=w((ax)=>{Object.defineProperty(ax,"__esModule",{value:!0});ax.API_BACKWARDS_COMPATIBILITY_VERSION=ax.makeGetter=ax._global=ax.GLOBAL_LOGS_API_KEY=void 0;ax.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");ax._global=globalThis;function UC0(Z,J,Q){return($)=>$===Z?J:Q}ax.makeGetter=UC0;ax.API_BACKWARDS_COMPATIBILITY_VERSION=1});var SG=w((tx)=>{Object.defineProperty(tx,"__esModule",{value:!0});tx.NOOP_LOGGER_PROVIDER=tx.NoopLoggerProvider=void 0;var OC0=n$();class hG{getLogger(Z,J,Q){return new OC0.NoopLogger}}tx.NoopLoggerProvider=hG;tx.NOOP_LOGGER_PROVIDER=new hG});var $g=w((Jg)=>{Object.defineProperty(Jg,"__esModule",{value:!0});Jg.ProxyLogger=void 0;var PC0=n$();class Zg{constructor(Z,J,Q,$){this._provider=Z,this.name=J,this.version=Q,this.options=$}emit(Z){this._getLogger().emit(Z)}_getLogger(){if(this._delegate)return this._delegate;let Z=this._provider._getDelegateLogger(this.name,this.version,this.options);if(!Z)return PC0.NOOP_LOGGER;return this._delegate=Z,this._delegate}}Jg.ProxyLogger=Zg});var Kg=w((Xg)=>{Object.defineProperty(Xg,"__esModule",{value:!0});Xg.ProxyLoggerProvider=void 0;var kC0=SG(),MC0=$g();class Yg{getLogger(Z,J,Q){var $;return($=this._getDelegateLogger(Z,J,Q))!==null&&$!==void 0?$:new MC0.ProxyLogger(this,Z,J,Q)}_getDelegate(){var Z;return(Z=this._delegate)!==null&&Z!==void 0?Z:kC0.NOOP_LOGGER_PROVIDER}_setDelegate(Z){this._delegate=Z}_getDelegateLogger(Z,J,Q){var $;return($=this._delegate)===null||$===void 0?void 0:$.getLogger(Z,J,Q)}}Xg.ProxyLoggerProvider=Yg});var Hg=w((Gg)=>{Object.defineProperty(Gg,"__esModule",{value:!0});Gg.LogsAPI=void 0;var t6=rx(),RC0=SG(),zg=Kg();class _G{constructor(){this._proxyLoggerProvider=new zg.ProxyLoggerProvider}static getInstance(){if(!this._instance)this._instance=new _G;return this._instance}setGlobalLoggerProvider(Z){if(t6._global[t6.GLOBAL_LOGS_API_KEY])return this.getLoggerProvider();return t6._global[t6.GLOBAL_LOGS_API_KEY]=(0,t6.makeGetter)(t6.API_BACKWARDS_COMPATIBILITY_VERSION,Z,RC0.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(Z),Z}getLoggerProvider(){var Z,J;return(J=(Z=t6._global[t6.GLOBAL_LOGS_API_KEY])===null||Z===void 0?void 0:Z.call(t6._global,t6.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&J!==void 0?J:this._proxyLoggerProvider}getLogger(Z,J,Q){return this.getLoggerProvider().getLogger(Z,J,Q)}disable(){delete t6._global[t6.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new zg.ProxyLoggerProvider}}Gg.LogsAPI=_G});var vG=w((y4)=>{Object.defineProperty(y4,"__esModule",{value:!0});y4.logs=y4.NoopLogger=y4.NOOP_LOGGER=y4.SeverityNumber=void 0;var AC0=ix();Object.defineProperty(y4,"SeverityNumber",{enumerable:!0,get:function(){return AC0.SeverityNumber}});var Vg=n$();Object.defineProperty(y4,"NOOP_LOGGER",{enumerable:!0,get:function(){return Vg.NOOP_LOGGER}});Object.defineProperty(y4,"NoopLogger",{enumerable:!0,get:function(){return Vg.NoopLogger}});var IC0=Hg();y4.logs=IC0.LogsAPI.getInstance()});var Ug=w((wg)=>{Object.defineProperty(wg,"__esModule",{value:!0});wg.disableInstrumentations=wg.enableInstrumentations=void 0;function NC0(Z,J,Q,$){for(let Y=0,X=Z.length;YJ.disable())}wg.disableInstrumentations=TC0});var Cg=w((Lg)=>{Object.defineProperty(Lg,"__esModule",{value:!0});Lg.registerInstrumentations=void 0;var jg=C(),EC0=vG(),qg=Ug();function yC0(Z){let J=Z.tracerProvider||jg.trace.getTracerProvider(),Q=Z.meterProvider||jg.metrics.getMeterProvider(),$=Z.loggerProvider||EC0.logs.getLoggerProvider(),Y=Z.instrumentations?.flat()??[];return(0,qg.enableInstrumentations)(Y,J,Q,$),()=>{(0,qg.disableInstrumentations)(Y)}}Lg.registerInstrumentations=yC0});var yg=w((fg)=>{Object.defineProperty(fg,"__esModule",{value:!0});fg.satisfies=void 0;var dG=C(),Ag=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,hC0=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,SC0={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function _C0(Z,J,Q){if(!vC0(Z))return dG.diag.error(`Invalid version: ${Z}`),!1;if(!J)return!0;J=J.replace(/([<>=~^]+)\s+/g,"$1");let $=dC0(Z);if(!$)return!1;let Y=[],X=Ig($,J,Y,Q);if(X&&!Q?.includePrerelease)return xC0($,Y);return X}fg.satisfies=_C0;function vC0(Z){return typeof Z==="string"&&Ag.test(Z)}function Ig(Z,J,Q,$){if(J.includes("||")){let Y=J.trim().split("||");for(let X of Y)if(bG(Z,X,Q,$))return!0;return!1}else if(J.includes(" - "))J=KP0(J,$);else if(J.includes(" ")){let Y=J.trim().replace(/\s{2,}/g," ").split(" ");for(let X of Y)if(!bG(Z,X,Q,$))return!1;return!0}return bG(Z,J,Q,$)}function bG(Z,J,Q,$){if(J=gC0(J,$),J.includes(" "))return Ig(Z,J,Q,$);else{let Y=cC0(J);return Q.push(Y),bC0(Z,Y)}}function bC0(Z,J){if(J.invalid)return!1;if(!J.version||gG(J.version))return!0;let Q=kg(Z.versionSegments||[],J.versionSegments||[]);if(Q===0){let $=Z.prereleaseSegments||[],Y=J.prereleaseSegments||[];if(!$.length&&!Y.length)Q=0;else if(!$.length&&Y.length)Q=1;else if($.length&&!Y.length)Q=-1;else Q=kg($,Y)}return SC0[J.op]?.includes(Q)}function xC0(Z,J){if(Z.prerelease)return J.some((Q)=>Q.prerelease&&Q.version===Z.version);return!0}function gC0(Z,J){return Z=Z.trim(),Z=XP0(Z,J),Z=YP0(Z),Z=WP0(Z,J),Z=Z.trim(),Z}function W6(Z){return!Z||Z.toLowerCase()==="x"||Z==="*"}function dC0(Z){let J=Z.match(Ag);if(!J){dG.diag.error(`Invalid version: ${Z}`);return}let Q=J.groups.version,$=J.groups.prerelease,Y=J.groups.build,X=Q.split("."),W=$?.split(".");return{op:void 0,version:Q,versionSegments:X,versionSegmentCount:X.length,prerelease:$,prereleaseSegments:W,prereleaseSegmentCount:W?W.length:0,build:Y}}function cC0(Z){if(!Z)return{};let J=Z.match(hC0);if(!J)return dG.diag.error(`Invalid range: ${Z}`),{invalid:!0};let Q=J.groups.op,$=J.groups.version,Y=J.groups.prerelease,X=J.groups.build,W=$.split("."),K=Y?.split(".");if(Q==="==")Q="=";return{op:Q||"=",version:$,versionSegments:W,versionSegmentCount:W.length,prerelease:Y,prereleaseSegments:K,prereleaseSegmentCount:K?K.length:0,build:X}}function gG(Z){return Z==="*"||Z==="x"||Z==="X"}function Pg(Z){let J=parseInt(Z,10);return isNaN(J)?Z:J}function mC0(Z,J){if(typeof Z===typeof J)if(typeof Z==="number")return[Z,J];else if(typeof Z==="string")return[Z,J];else throw Error("Version segments can only be strings or numbers");else return[String(Z),String(J)]}function uC0(Z,J){if(gG(Z)||gG(J))return 0;let[Q,$]=mC0(Pg(Z),Pg(J));if(Q>$)return 1;else if(Q<$)return-1;return 0}function kg(Z,J){for(let Q=0;Q)?=?)",Mg=`(?:${Tg}|${lC0})`,iC0=`(?:-(${Mg}(?:\\.${Mg})*))`,Rg=`${Ng}+`,oC0=`(?:\\+(${Rg}(?:\\.${Rg})*))`,xG=`${Tg}|x|X|\\*`,h4=`[v=\\s]*(${xG})(?:\\.(${xG})(?:\\.(${xG})(?:${iC0})?${oC0}?)?)?`,nC0=`^${pC0}\\s*${h4}$`,aC0=new RegExp(nC0),sC0=`^\\s*(${h4})\\s+-\\s+(${h4})\\s*$`,rC0=new RegExp(sC0),tC0="(?:~>?)",eC0=`^${tC0}${h4}$`,ZP0=new RegExp(eC0),JP0="(?:\\^)",QP0=`^${JP0}${h4}$`,$P0=new RegExp(QP0);function YP0(Z){let J=ZP0;return Z.replace(J,(Q,$,Y,X,W)=>{let K;if(W6($))K="";else if(W6(Y))K=`>=${$}.0.0 <${+$+1}.0.0-0`;else if(W6(X))K=`>=${$}.${Y}.0 <${$}.${+Y+1}.0-0`;else if(W)K=`>=${$}.${Y}.${X}-${W} <${$}.${+Y+1}.0-0`;else K=`>=${$}.${Y}.${X} <${$}.${+Y+1}.0-0`;return K})}function XP0(Z,J){let Q=$P0,$=J?.includePrerelease?"-0":"";return Z.replace(Q,(Y,X,W,K,z)=>{let G;if(W6(X))G="";else if(W6(W))G=`>=${X}.0.0${$} <${+X+1}.0.0-0`;else if(W6(K))if(X==="0")G=`>=${X}.${W}.0${$} <${X}.${+W+1}.0-0`;else G=`>=${X}.${W}.0${$} <${+X+1}.0.0-0`;else if(z)if(X==="0")if(W==="0")G=`>=${X}.${W}.${K}-${z} <${X}.${W}.${+K+1}-0`;else G=`>=${X}.${W}.${K}-${z} <${X}.${+W+1}.0-0`;else G=`>=${X}.${W}.${K}-${z} <${+X+1}.0.0-0`;else if(X==="0")if(W==="0")G=`>=${X}.${W}.${K}${$} <${X}.${W}.${+K+1}-0`;else G=`>=${X}.${W}.${K}${$} <${X}.${+W+1}.0-0`;else G=`>=${X}.${W}.${K} <${+X+1}.0.0-0`;return G})}function WP0(Z,J){let Q=aC0;return Z.replace(Q,($,Y,X,W,K,z)=>{let G=W6(X),H=G||W6(W),B=H||W6(K),V=B;if(Y==="="&&V)Y="";if(z=J?.includePrerelease?"-0":"",G)if(Y===">"||Y==="<")$="<0.0.0-0";else $="*";else if(Y&&V){if(H)W=0;if(K=0,Y===">")if(Y=">=",H)X=+X+1,W=0,K=0;else W=+W+1,K=0;else if(Y==="<=")if(Y="<",H)X=+X+1;else W=+W+1;if(Y==="<")z="-0";$=`${Y+X}.${W}.${K}${z}`}else if(H)$=`>=${X}.0.0${z} <${+X+1}.0.0-0`;else if(B)$=`>=${X}.${W}.0${z} <${X}.${+W+1}.0-0`;return $})}function KP0(Z,J){let Q=rC0;return Z.replace(Q,($,Y,X,W,K,z,G,H,B,V,F,D)=>{if(W6(X))Y="";else if(W6(W))Y=`>=${X}.0.0${J?.includePrerelease?"-0":""}`;else if(W6(K))Y=`>=${X}.${W}.0${J?.includePrerelease?"-0":""}`;else if(z)Y=`>=${Y}`;else Y=`>=${Y}${J?.includePrerelease?"-0":""}`;if(W6(B))H="";else if(W6(V))H=`<${+B+1}.0.0-0`;else if(W6(F))H=`<${B}.${+V+1}.0-0`;else if(D)H=`<=${B}.${V}.${F}-${D}`;else if(J?.includePrerelease)H=`<${B}.${V}.${+F+1}-0`;else H=`<=${H}`;return`${Y} ${H}`.trim()})}});var lG=w((hg)=>{Object.defineProperty(hg,"__esModule",{value:!0});hg.massUnwrap=hg.unwrap=hg.massWrap=hg.wrap=void 0;var K6=console.error.bind(console);function S4(Z,J,Q){let $=!!Z[J]&&Object.prototype.propertyIsEnumerable.call(Z,J);Object.defineProperty(Z,J,{configurable:!0,enumerable:$,writable:!0,value:Q})}var zP0=(Z,J,Q)=>{if(!Z||!Z[J]){K6("no original function "+String(J)+" to wrap");return}if(!Q){K6("no wrapper function"),K6(Error().stack);return}let $=Z[J];if(typeof $!=="function"||typeof Q!=="function"){K6("original object and wrapper must be functions");return}let Y=Q($,J);return S4(Y,"__original",$),S4(Y,"__unwrap",()=>{if(Z[J]===Y)S4(Z,J,$)}),S4(Y,"__wrapped",!0),S4(Z,J,Y),Y};hg.wrap=zP0;var GP0=(Z,J,Q)=>{if(!Z){K6("must provide one or more modules to patch"),K6(Error().stack);return}else if(!Array.isArray(Z))Z=[Z];if(!(J&&Array.isArray(J))){K6("must provide one or more functions to wrap on modules");return}Z.forEach(($)=>{J.forEach((Y)=>{hg.wrap($,Y,Q)})})};hg.massWrap=GP0;var BP0=(Z,J)=>{if(!Z||!Z[J]){K6("no function to unwrap."),K6(Error().stack);return}let Q=Z[J];if(!Q.__unwrap)K6("no original to unwrap to -- has "+String(J)+" already been unwrapped?");else{Q.__unwrap();return}};hg.unwrap=BP0;var HP0=(Z,J)=>{if(!Z){K6("must provide one or more modules to patch"),K6(Error().stack);return}else if(!Array.isArray(Z))Z=[Z];if(!(J&&Array.isArray(J))){K6("must provide one or more functions to unwrap on modules");return}Z.forEach((Q)=>{J.forEach(($)=>{hg.unwrap(Q,$)})})};hg.massUnwrap=HP0;function _4(Z){if(Z&&Z.logger)if(typeof Z.logger!=="function")K6("new logger isn't a function, not replacing");else K6=Z.logger}hg.default=_4;_4.wrap=hg.wrap;_4.massWrap=hg.massWrap;_4.unwrap=hg.unwrap;_4.massUnwrap=hg.massUnwrap});var xg=w((vg)=>{Object.defineProperty(vg,"__esModule",{value:!0});vg.InstrumentationAbstract=void 0;var pG=C(),FP0=vG(),a$=lG();class _g{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(Z,J,Q){this.instrumentationName=Z,this.instrumentationVersion=J,this.setConfig(Q),this._diag=pG.diag.createComponentLogger({namespace:Z}),this._tracer=pG.trace.getTracer(Z,J),this._meter=pG.metrics.getMeter(Z,J),this._logger=FP0.logs.getLogger(Z,J),this._updateMetricInstruments()}_wrap=a$.wrap;_unwrap=a$.unwrap;_massWrap=a$.massWrap;_massUnwrap=a$.massUnwrap;get meter(){return this._meter}setMeterProvider(Z){this._meter=Z.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(Z){this._logger=Z.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let Z=this.init()??[];if(!Array.isArray(Z))return[Z];return Z}_updateMetricInstruments(){return}getConfig(){return this._config}setConfig(Z){this._config={enabled:!0,...Z}}setTracerProvider(Z){this._tracer=Z.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(Z,J,Q,$){if(!Z)return;try{Z(Q,$)}catch(Y){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:J},Y)}}}vg.InstrumentationAbstract=_g});var mg=w((dg)=>{Object.defineProperty(dg,"__esModule",{value:!0});dg.ModuleNameTrie=dg.ModuleNameSeparator=void 0;dg.ModuleNameSeparator="/";class iG{hooks=[];children=new Map}class gg{_trie=new iG;_counter=0;insert(Z){let J=this._trie;for(let Q of Z.moduleName.split(dg.ModuleNameSeparator)){let $=J.children.get(Q);if(!$)$=new iG,J.children.set(Q,$);J=$}J.hooks.push({hook:Z,insertedId:this._counter++})}search(Z,{maintainInsertionOrder:J,fullOnly:Q}={}){let $=this._trie,Y=[],X=!0;for(let W of Z.split(dg.ModuleNameSeparator)){let K=$.children.get(W);if(!K){X=!1;break}if(!Q)Y.push(...K.hooks);$=K}if(Q&&X)Y.push(...$.hooks);if(Y.length===0)return[];if(Y.length===1)return[Y[0].hook];if(J)Y.sort((W,K)=>W.insertedId-K.insertedId);return Y.map(({hook:W})=>W)}}dg.ModuleNameTrie=gg});var ig=w((lg)=>{Object.defineProperty(lg,"__esModule",{value:!0});lg.RequireInTheMiddleSingleton=void 0;var wP0=M7(),ug=A("path"),nG=mg(),DP0=["afterEach","after","beforeEach","before","describe","it"].every((Z)=>{return typeof global[Z]==="function"});class s${_moduleNameTrie=new nG.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new wP0.Hook(null,{internals:!0},(Z,J,Q)=>{let $=UP0(J),Y=this._moduleNameTrie.search($,{maintainInsertionOrder:!0,fullOnly:Q===void 0});for(let{onRequire:X}of Y)Z=X(Z,J,Q);return Z})}register(Z,J){let Q={moduleName:Z,onRequire:J};return this._moduleNameTrie.insert(Q),Q}static getInstance(){if(DP0)return new s$;return this._instance=this._instance??new s$}}lg.RequireInTheMiddleSingleton=s$;function UP0(Z){return ug.sep!==nG.ModuleNameSeparator?Z.split(ug.sep).join(nG.ModuleNameSeparator):Z}});var rg=w((LP0)=>{var og=[],aG=new WeakMap,ng=new WeakMap,ag=new Map,sg=[],jP0={set(Z,J,Q){let $=aG.get(Z),Y=$&&$[J];if(typeof Y==="function")return Y(Q);return!0},get(Z,J){if(J===Symbol.toStringTag)return"Module";let Q=ng.get(Z)[J];if(typeof Q==="function")return Q()},defineProperty(Z,J,Q){if(!("value"in Q))throw Error("Getters/setters are not supported for exports property descriptors.");let $=aG.get(Z),Y=$&&$[J];if(typeof Y==="function")return Y(Q.value);return!0}};function qP0(Z,J,Q,$,Y){ag.set(Z,Y),aG.set(J,Q),ng.set(J,$);let X=new Proxy(J,jP0);og.forEach((W)=>W(Z,X,Y)),sg.push([Z,X,Y])}LP0.register=qP0;LP0.importHooks=og;LP0.specifiers=ag;LP0.toHook=sg});var Jd=w((z16,A8)=>{var tg=A("path"),MP0=K5(),{fileURLToPath:RP0}=A("url"),{MessageChannel:AP0}=A("worker_threads"),{isBuiltin:sG}=A("module");if(!sG)sG=()=>!0;var{importHooks:rG,specifiers:IP0,toHook:NP0}=rg();function eg(Z){rG.push(Z),NP0.forEach(([J,Q,$])=>Z(J,Q,$))}function Zd(Z){let J=rG.indexOf(Z);if(J>-1)rG.splice(J,1)}function R8(Z,J,Q,$){let Y=Z(J,Q,$);if(Y&&Y!==J){if("default"in J)J.default=Y}}var tG;function TP0(){let{port1:Z,port2:J}=new AP0,Q=0,$;tG=(K)=>{Q++,Z.postMessage(K)},Z.on("message",()=>{if(Q--,$&&Q<=0)$()}).unref();function Y(){let K=setInterval(()=>{},1000),z=new Promise((G)=>{$=G}).then(()=>{clearInterval(K)});if(Q===0)$();return z}let X=J;return{registerOptions:{data:{addHookMessagePort:X,include:[]},transferList:[X]},addHookMessagePort:X,waitForAllMessagesAcknowledged:Y}}function v4(Z,J,Q){if(this instanceof v4===!1)return new v4(Z,J,Q);if(typeof Z==="function")Q=Z,Z=null,J=null;else if(typeof J==="function")Q=J,J=null;let $=J?J.internals===!0:!1;if(tG&&Array.isArray(Z))tG(Z);this._iitmHook=(Y,X,W)=>{let K=Y,z=K.startsWith("node:"),G,H;if(z){let B=Y.slice(5);if(sG(B))Y=B}else if(K.startsWith("file://")){let B=Error.stackTraceLimit;Error.stackTraceLimit=0;try{G=RP0(Y),Y=G}catch(V){}if(Error.stackTraceLimit=B,G){let V=MP0(G);if(V)Y=V.name,H=V.basedir}}if(Z){for(let B of Z)if(G&&B===G)R8(Q,X,G,void 0);else if(B===Y){if(!H)R8(Q,X,Y,H);else if(H.endsWith(IP0.get(K)))R8(Q,X,Y,H);else if($){let V=Y+tg.sep+tg.relative(H,G);R8(Q,X,V,H)}}else if(B===W)R8(Q,X,W,H)}else R8(Q,X,Y,H)},eg(this._iitmHook)}v4.prototype.unhook=function(){Zd(this._iitmHook)};A8.exports=v4;A8.exports.Hook=v4;A8.exports.addHook=eg;A8.exports.removeHook=Zd;A8.exports.createAddHookMessageChannel=TP0});var eG=w((Qd)=>{Object.defineProperty(Qd,"__esModule",{value:!0});Qd.isWrapped=Qd.safeExecuteInTheMiddleAsync=Qd.safeExecuteInTheMiddle=void 0;function fP0(Z,J,Q){let $,Y;try{Y=Z()}catch(X){$=X}finally{if(J($,Y),$&&!Q)throw $;return Y}}Qd.safeExecuteInTheMiddle=fP0;async function EP0(Z,J,Q){let $,Y;try{Y=await Z()}catch(X){$=X}finally{if(await J($,Y),$&&!Q)throw $;return Y}}Qd.safeExecuteInTheMiddleAsync=EP0;function yP0(Z){return typeof Z==="function"&&typeof Z.__original==="function"&&typeof Z.__unwrap==="function"&&Z.__wrapped===!0}Qd.isWrapped=yP0});var Gd=w((Kd)=>{Object.defineProperty(Kd,"__esModule",{value:!0});Kd.InstrumentationBase=void 0;var b4=A("path"),Yd=A("util"),_P0=yg(),ZB=lG(),vP0=xg(),bP0=ig(),xP0=Jd(),x4=C(),gP0=M7(),dP0=A("fs"),cP0=eG();class Wd extends vP0.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=bP0.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(Z,J,Q){super(Z,J,Q);let $=this.init();if($&&!Array.isArray($))$=[$];if(this._modules=$||[],this._config.enabled)this.enable()}_wrap=(Z,J,Q)=>{if((0,cP0.isWrapped)(Z[J]))this._unwrap(Z,J);if(!Yd.types.isProxy(Z))return(0,ZB.wrap)(Z,J,Q);else{let $=(0,ZB.wrap)(Object.assign({},Z),J,Q);return Object.defineProperty(Z,J,{value:$}),$}};_unwrap=(Z,J)=>{if(!Yd.types.isProxy(Z))return(0,ZB.unwrap)(Z,J);else return Object.defineProperty(Z,J,{value:Z[J]})};_massWrap=(Z,J,Q)=>{if(!Z){x4.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray(Z))Z=[Z];if(!(J&&Array.isArray(J))){x4.diag.error("must provide one or more functions to wrap on modules");return}Z.forEach(($)=>{J.forEach((Y)=>{this._wrap($,Y,Q)})})};_massUnwrap=(Z,J)=>{if(!Z){x4.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray(Z))Z=[Z];if(!(J&&Array.isArray(J))){x4.diag.error("must provide one or more functions to wrap on modules");return}Z.forEach((Q)=>{J.forEach(($)=>{this._unwrap(Q,$)})})};_warnOnPreloadedModules(){this._modules.forEach((Z)=>{let{name:J}=Z;try{let Q=A.resolve(J);if(A.cache[Q])this._diag.warn(`Module ${J} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${J}`)}catch{}})}_extractPackageVersion(Z){try{let J=(0,dP0.readFileSync)(b4.join(Z,"package.json"),{encoding:"utf8"}),Q=JSON.parse(J).version;return typeof Q==="string"?Q:void 0}catch{x4.diag.warn("Failed extracting version",Z)}return}_onRequire(Z,J,Q,$){if(!$){if(typeof Z.patch==="function"){if(Z.moduleExports=J,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:Z.name}),Z.patch(J)}return J}let Y=this._extractPackageVersion($);if(Z.moduleVersion=Y,Z.name===Q){if(Xd(Z.supportedVersions,Y,Z.includePrerelease)){if(typeof Z.patch==="function"){if(Z.moduleExports=J,this._enabled)return this._diag.debug("Applying instrumentation patch for module on require hook",{module:Z.name,version:Z.moduleVersion,baseDir:$}),Z.patch(J,Z.moduleVersion)}}return J}let X=Z.files??[],W=b4.normalize(Q);return X.filter((z)=>z.name===W&&Xd(z.supportedVersions,Y,Z.includePrerelease)).reduce((z,G)=>{if(G.moduleExports=z,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:Z.name,version:Z.moduleVersion,fileName:G.name,baseDir:$}),G.patch(z,Z.moduleVersion);return z},J)}enable(){if(this._enabled)return;if(this._enabled=!0,this._hooks.length>0){for(let Z of this._modules){if(typeof Z.patch==="function"&&Z.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:Z.name,version:Z.moduleVersion}),Z.patch(Z.moduleExports,Z.moduleVersion);for(let J of Z.files)if(J.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:Z.name,version:Z.moduleVersion,fileName:J.name}),J.patch(J.moduleExports,Z.moduleVersion)}return}this._warnOnPreloadedModules();for(let Z of this._modules){let J=(X,W,K)=>{if(!K&&b4.isAbsolute(W)){let z=b4.parse(W);W=z.name,K=z.dir}return this._onRequire(Z,X,W,K)},Q=(X,W,K)=>{return this._onRequire(Z,X,W,K)},$=b4.isAbsolute(Z.name)?new gP0.Hook([Z.name],{internals:!0},Q):this._requireInTheMiddleSingleton.register(Z.name,Q);this._hooks.push($);let Y=new xP0.Hook([Z.name],{internals:!0},J);this._hooks.push(Y)}}disable(){if(!this._enabled)return;this._enabled=!1;for(let Z of this._modules){if(typeof Z.unpatch==="function"&&Z.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:Z.name,version:Z.moduleVersion}),Z.unpatch(Z.moduleExports,Z.moduleVersion);for(let J of Z.files)if(J.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:Z.name,version:Z.moduleVersion,fileName:J.name}),J.unpatch(J.moduleExports,Z.moduleVersion)}}isEnabled(){return this._enabled}}Kd.InstrumentationBase=Wd;function Xd(Z,J,Q){if(typeof J>"u")return Z.includes("*");return Z.some(($)=>{return(0,_P0.satisfies)(J,$,{includePrerelease:Q})})}});var Bd=w((JB)=>{Object.defineProperty(JB,"__esModule",{value:!0});JB.normalize=void 0;var mP0=A("path");Object.defineProperty(JB,"normalize",{enumerable:!0,get:function(){return mP0.normalize}})});var Hd=w((r$)=>{Object.defineProperty(r$,"__esModule",{value:!0});r$.normalize=r$.InstrumentationBase=void 0;var lP0=Gd();Object.defineProperty(r$,"InstrumentationBase",{enumerable:!0,get:function(){return lP0.InstrumentationBase}});var pP0=Bd();Object.defineProperty(r$,"normalize",{enumerable:!0,get:function(){return pP0.normalize}})});var QB=w((t$)=>{Object.defineProperty(t$,"__esModule",{value:!0});t$.normalize=t$.InstrumentationBase=void 0;var Vd=Hd();Object.defineProperty(t$,"InstrumentationBase",{enumerable:!0,get:function(){return Vd.InstrumentationBase}});Object.defineProperty(t$,"normalize",{enumerable:!0,get:function(){return Vd.normalize}})});var Ud=w((wd)=>{Object.defineProperty(wd,"__esModule",{value:!0});wd.InstrumentationNodeModuleDefinition=void 0;class Fd{files;name;supportedVersions;patch;unpatch;constructor(Z,J,Q,$,Y){this.files=Y||[],this.name=Z,this.supportedVersions=J,this.patch=Q,this.unpatch=$}}wd.InstrumentationNodeModuleDefinition=Fd});var Od=w((qd)=>{Object.defineProperty(qd,"__esModule",{value:!0});qd.InstrumentationNodeModuleFile=void 0;var nP0=QB();class jd{name;supportedVersions;patch;unpatch;constructor(Z,J,Q,$){this.name=(0,nP0.normalize)(Z),this.supportedVersions=J,this.patch=Q,this.unpatch=$}}qd.InstrumentationNodeModuleFile=jd});var Md=w((Pd)=>{Object.defineProperty(Pd,"__esModule",{value:!0});Pd.semconvStabilityFromStr=Pd.SemconvStability=void 0;var e$;(function(Z){Z[Z.STABLE=1]="STABLE",Z[Z.OLD=2]="OLD",Z[Z.DUPLICATE=3]="DUPLICATE"})(e$=Pd.SemconvStability||(Pd.SemconvStability={}));function aP0(Z,J){let Q=e$.OLD,$=J?.split(",").map((Y)=>Y.trim()).filter((Y)=>Y!=="");for(let Y of $??[])if(Y.toLowerCase()===Z+"/dup"){Q=e$.DUPLICATE;break}else if(Y.toLowerCase()===Z)Q=e$.STABLE;return Q}Pd.semconvStabilityFromStr=aP0});var Ad=w((L9)=>{Object.defineProperty(L9,"__esModule",{value:!0});L9.semconvStabilityFromStr=L9.SemconvStability=L9.safeExecuteInTheMiddleAsync=L9.safeExecuteInTheMiddle=L9.isWrapped=L9.InstrumentationNodeModuleFile=L9.InstrumentationNodeModuleDefinition=L9.InstrumentationBase=L9.registerInstrumentations=void 0;var sP0=Cg();Object.defineProperty(L9,"registerInstrumentations",{enumerable:!0,get:function(){return sP0.registerInstrumentations}});var rP0=QB();Object.defineProperty(L9,"InstrumentationBase",{enumerable:!0,get:function(){return rP0.InstrumentationBase}});var tP0=Ud();Object.defineProperty(L9,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return tP0.InstrumentationNodeModuleDefinition}});var eP0=Od();Object.defineProperty(L9,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return eP0.InstrumentationNodeModuleFile}});var $B=eG();Object.defineProperty(L9,"isWrapped",{enumerable:!0,get:function(){return $B.isWrapped}});Object.defineProperty(L9,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return $B.safeExecuteInTheMiddle}});Object.defineProperty(L9,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return $B.safeExecuteInTheMiddleAsync}});var Rd=Md();Object.defineProperty(L9,"SemconvStability",{enumerable:!0,get:function(){return Rd.SemconvStability}});Object.defineProperty(L9,"semconvStabilityFromStr",{enumerable:!0,get:function(){return Rd.semconvStabilityFromStr}})});var Id=w((T16,J20)=>{J20.exports={name:"@fastify/otel",version:"0.17.1",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}}});var fd=w((Td)=>{Object.defineProperty(Td,"__esModule",{value:!0});Td.range=Td.balanced=void 0;var Q20=(Z,J,Q)=>{let $=Z instanceof RegExp?Nd(Z,Q):Z,Y=J instanceof RegExp?Nd(J,Q):J,X=$!==null&&Y!=null&&Td.range($,Y,Q);return X&&{start:X[0],end:X[1],pre:Q.slice(0,X[0]),body:Q.slice(X[0]+$.length,X[1]),post:Q.slice(X[1]+Y.length)}};Td.balanced=Q20;var Nd=(Z,J)=>{let Q=J.match(Z);return Q?Q[0]:null},$20=(Z,J,Q)=>{let $,Y,X,W=void 0,K,z=Q.indexOf(Z),G=Q.indexOf(J,z+1),H=z;if(z>=0&&G>0){if(Z===J)return[z,G];$=[],X=Q.length;while(H>=0&&!K){if(H===z)$.push(H),z=Q.indexOf(Z,H+1);else if($.length===1){let B=$.pop();if(B!==void 0)K=[B,G]}else{if(Y=$.pop(),Y!==void 0&&Y=0?z:G}if($.length&&W!==void 0)K=[X,W]}return K};Td.range=$20});var xd=w((bd)=>{Object.defineProperty(bd,"__esModule",{value:!0});bd.EXPANSION_MAX=void 0;bd.expand=j20;var Ed=fd(),yd="\x00SLASH"+Math.random()+"\x00",hd="\x00OPEN"+Math.random()+"\x00",WB="\x00CLOSE"+Math.random()+"\x00",Sd="\x00COMMA"+Math.random()+"\x00",_d="\x00PERIOD"+Math.random()+"\x00",X20=new RegExp(yd,"g"),W20=new RegExp(hd,"g"),K20=new RegExp(WB,"g"),z20=new RegExp(Sd,"g"),G20=new RegExp(_d,"g"),B20=/\\\\/g,H20=/\\{/g,V20=/\\}/g,F20=/\\,/g,w20=/\\\./g;bd.EXPANSION_MAX=1e5;function XB(Z){return!isNaN(Z)?parseInt(Z,10):Z.charCodeAt(0)}function D20(Z){return Z.replace(B20,yd).replace(H20,hd).replace(V20,WB).replace(F20,Sd).replace(w20,_d)}function U20(Z){return Z.replace(X20,"\\").replace(W20,"{").replace(K20,"}").replace(z20,",").replace(G20,".")}function vd(Z){if(!Z)return[""];let J=[],Q=(0,Ed.balanced)("{","}",Z);if(!Q)return Z.split(",");let{pre:$,body:Y,post:X}=Q,W=$.split(",");W[W.length-1]+="{"+Y+"}";let K=vd(X);if(X.length)W[W.length-1]+=K.shift(),W.push.apply(W,K);return J.push.apply(J,W),J}function j20(Z,J={}){if(!Z)return[];let{max:Q=bd.EXPANSION_MAX}=J;if(Z.slice(0,2)==="{}")Z="\\{\\}"+Z.slice(2);return g4(D20(Z),Q,!0).map(U20)}function q20(Z){return"{"+Z+"}"}function L20(Z){return/^-?0\d/.test(Z)}function O20(Z,J){return Z<=J}function C20(Z,J){return Z>=J}function g4(Z,J,Q){let $=[],Y=(0,Ed.balanced)("{","}",Z);if(!Y)return[Z];let X=Y.pre,W=Y.post.length?g4(Y.post,J,!1):[""];if(/\$$/.test(Y.pre))for(let K=0;K=0;if(!G&&!H){if(Y.post.match(/,(?!,).*\}/))return Z=Y.pre+"{"+Y.body+WB+Y.post,g4(Z,J,!0);return[Z]}let B;if(G)B=Y.body.split(/\.\./);else if(B=vd(Y.body),B.length===1&&B[0]!==void 0){if(B=g4(B[0],J,!1).map(q20),B.length===1)return W.map((F)=>Y.pre+B[0]+F)}let V;if(G&&B[0]!==void 0&&B[1]!==void 0){let F=XB(B[0]),D=XB(B[1]),U=Math.max(B[0].length,B[1].length),j=B.length===3&&B[2]!==void 0?Math.max(Math.abs(XB(B[2])),1):1,L=O20;if(D0){let r=Array(n+1).join("0");if(S<0)T="-"+r+T.slice(1);else T=r+T}}V.push(T)}}else{V=[];for(let F=0;F{Object.defineProperty(gd,"__esModule",{value:!0});gd.assertValidPattern=void 0;var k20=65536,M20=(Z)=>{if(typeof Z!=="string")throw TypeError("invalid pattern");if(Z.length>k20)throw TypeError("pattern is too long")};gd.assertValidPattern=M20});var pd=w((ud)=>{Object.defineProperty(ud,"__esModule",{value:!0});ud.parseClass=void 0;var R20={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},d4=(Z)=>Z.replace(/[[\]\\-]/g,"\\$&"),A20=(Z)=>Z.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),md=(Z)=>Z.join(""),I20=(Z,J)=>{let Q=J;if(Z.charAt(Q)!=="[")throw Error("not in a brace expression");let $=[],Y=[],X=Q+1,W=!1,K=!1,z=!1,G=!1,H=Q,B="";Z:while(XB)$.push(d4(B)+"-"+d4(U));else if(U===B)$.push(d4(U));B="",X++;continue}if(Z.startsWith("-]",X+1)){$.push(d4(U+"-")),X+=2;continue}if(Z.startsWith("-",X+1)){B=U,X+=2;continue}$.push(d4(U)),X++}if(H{Object.defineProperty(id,"__esModule",{value:!0});id.unescape=void 0;var N20=(Z,{windowsPathsNoEscape:J=!1,magicalBraces:Q=!0}={})=>{if(Q)return J?Z.replace(/\[([^\/\\])\]/g,"$1"):Z.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");return J?Z.replace(/\[([^\/\\{}])\]/g,"$1"):Z.replace(/((?!\\).|^)\[([^\/\\{}])\]/g,"$1$2").replace(/\\([^\/{}])/g,"$1")};id.unescape=N20});var HB=w((td)=>{var O6;Object.defineProperty(td,"__esModule",{value:!0});td.AST=void 0;var T20=pd(),J3=Z3(),f20=new Set(["!","?","+","*","@"]),zB=(Z)=>f20.has(Z),nd=(Z)=>zB(Z.type),E20=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),y20=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),h20=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),ad=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),S20="(?!(?:^|/)\\.\\.?(?:$|/))",Q3="(?!\\.)",_20=new Set(["[","."]),v20=new Set(["..","."]),b20=new Set("().*{}+?[]^$\\!"),x20=(Z)=>Z.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),GB="[^/]",sd=GB+"*?",rd=GB+"+?",g20=0;class BB{type;#Q;#$;#Y=!1;#Z=[];#J;#K;#G;#z=!1;#X;#W;#B=!1;id=++g20;get depth(){return(this.#J?.depth??-1)+1}[Symbol.for("nodejs.util.inspect.custom")](){return{"@@type":"AST",id:this.id,type:this.type,root:this.#Q.id,parent:this.#J?.id,depth:this.depth,partsLength:this.#Z.length,parts:this.#Z}}constructor(Z,J,Q={}){if(this.type=Z,Z)this.#$=!0;if(this.#J=J,this.#Q=this.#J?this.#J.#Q:this,this.#X=this.#Q===this?Q:this.#Q.#X,this.#G=this.#Q===this?[]:this.#Q.#G,Z==="!"&&!this.#Q.#z)this.#G.push(this);this.#K=this.#J?this.#J.#Z.length:0}get hasMagic(){if(this.#$!==void 0)return this.#$;for(let Z of this.#Z){if(typeof Z==="string")continue;if(Z.type||Z.hasMagic)return this.#$=!0}return this.#$}toString(){if(this.#W!==void 0)return this.#W;if(!this.type)return this.#W=this.#Z.map((Z)=>String(Z)).join("");else return this.#W=this.type+"("+this.#Z.map((Z)=>String(Z)).join("|")+")"}#j(){if(this!==this.#Q)throw Error("should only call on root");if(this.#z)return this;this.toString(),this.#z=!0;let Z;while(Z=this.#G.pop()){if(Z.type!=="!")continue;let J=Z,Q=J.#J;while(Q){for(let $=J.#K+1;!Q.type&&$typeof J==="string"?J:J.toJSON()):[this.type,...this.#Z.map((J)=>J.toJSON())];if(this.isStart()&&!this.type)Z.unshift([]);if(this.isEnd()&&(this===this.#Q||this.#Q.#z&&this.#J?.type==="!"))Z.push({});return Z}isStart(){if(this.#Q===this)return!0;if(!this.#J?.isStart())return!1;if(this.#K===0)return!0;let Z=this.#J;for(let J=0;Jtypeof V!=="string"),z=this.#Z.map((V)=>{let[F,D,U,j]=typeof V==="string"?O6.#k(V,this.#$,K):V.toRegExpSource(Z);return this.#$=this.#$||U,this.#Y=this.#Y||j,F}).join(""),G="";if(this.isStart()){if(typeof this.#Z[0]==="string"){if(!(this.#Z.length===1&&v20.has(this.#Z[0]))){let F=_20,D=J&&F.has(z.charAt(0))||z.startsWith("\\.")&&F.has(z.charAt(2))||z.startsWith("\\.\\.")&&F.has(z.charAt(4)),U=!J&&!Z&&F.has(z.charAt(0));G=D?S20:U?Q3:""}}}let H="";if(this.isEnd()&&this.#Q.#z&&this.#J?.type==="!")H="(?:$|\\/)";return[G+z+H,(0,J3.unescape)(z),this.#$=!!this.#$,this.#Y]}let Q=this.type==="*"||this.type==="+",$=this.type==="!"?"(?:(?!(?:":"(?:",Y=this.#U(J);if(this.isStart()&&this.isEnd()&&!Y&&this.type!=="!"){let K=this.toString(),z=this;return z.#Z=[K],z.type=null,z.#$=void 0,[K,(0,J3.unescape)(this.toString()),!1,!1]}let X=!Q||Z||J||!Q3?"":this.#U(!0);if(X===Y)X="";if(X)Y=`(?:${Y})(?:${X})*?`;let W="";if(this.type==="!"&&this.#B)W=(this.isStart()&&!J?Q3:"")+rd;else{let K=this.type==="!"?"))"+(this.isStart()&&!J&&!Z?Q3:"")+sd+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&X?")":this.type==="*"&&X?")?":`)${this.type}`;W=$+Y+K}return[W,(0,J3.unescape)(Y),this.#$=!!this.#$,this.#Y]}#F(){if(!nd(this)){for(let Z of this.#Z)if(typeof Z==="object")Z.#F()}else{let Z=0,J=!1;do{J=!0;for(let Q=0;Q{if(typeof J==="string")throw Error("string type in extglob ast??");let[Q,$,Y,X]=J.toRegExpSource(Z);return this.#Y=this.#Y||X,Q}).filter((J)=>!(this.isStart()&&this.isEnd())||!!J).join("|")}static#k(Z,J,Q=!1){let $=!1,Y="",X=!1,W=!1;for(let K=0;K{Object.defineProperty(Zc,"__esModule",{value:!0});Zc.escape=void 0;var d20=(Z,{windowsPathsNoEscape:J=!1,magicalBraces:Q=!1}={})=>{if(Q)return J?Z.replace(/[?*()[\]{}]/g,"[$&]"):Z.replace(/[?*()[\]\\{}]/g,"\\$&");return J?Z.replace(/[?*()[\]]/g,"[$&]"):Z.replace(/[?*()[\]\\]/g,"\\$&")};Zc.escape=d20});var Fc=w((c4)=>{Object.defineProperty(c4,"__esModule",{value:!0});c4.unescape=c4.escape=c4.AST=c4.Minimatch=c4.match=c4.makeRe=c4.braceExpand=c4.defaults=c4.filter=c4.GLOBSTAR=c4.sep=c4.minimatch=void 0;var c20=xd(),$3=cd(),Yc=HB(),m20=VB(),u20=Z3(),l20=(Z,J,Q={})=>{if((0,$3.assertValidPattern)(J),!Q.nocomment&&J.charAt(0)==="#")return!1;return new I8(J,Q).match(Z)};c4.minimatch=l20;var p20=/^\*+([^+@!?\*\[\(]*)$/,i20=(Z)=>(J)=>!J.startsWith(".")&&J.endsWith(Z),o20=(Z)=>(J)=>J.endsWith(Z),n20=(Z)=>{return Z=Z.toLowerCase(),(J)=>!J.startsWith(".")&&J.toLowerCase().endsWith(Z)},a20=(Z)=>{return Z=Z.toLowerCase(),(J)=>J.toLowerCase().endsWith(Z)},s20=/^\*+\.\*+$/,r20=(Z)=>!Z.startsWith(".")&&Z.includes("."),t20=(Z)=>Z!=="."&&Z!==".."&&Z.includes("."),e20=/^\.\*+$/,Zk0=(Z)=>Z!=="."&&Z!==".."&&Z.startsWith("."),Jk0=/^\*+$/,Qk0=(Z)=>Z.length!==0&&!Z.startsWith("."),$k0=(Z)=>Z.length!==0&&Z!=="."&&Z!=="..",Yk0=/^\?+([^+@!?\*\[\(]*)?$/,Xk0=([Z,J=""])=>{let Q=Xc([Z]);if(!J)return Q;return J=J.toLowerCase(),($)=>Q($)&&$.toLowerCase().endsWith(J)},Wk0=([Z,J=""])=>{let Q=Wc([Z]);if(!J)return Q;return J=J.toLowerCase(),($)=>Q($)&&$.toLowerCase().endsWith(J)},Kk0=([Z,J=""])=>{let Q=Wc([Z]);return!J?Q:($)=>Q($)&&$.endsWith(J)},zk0=([Z,J=""])=>{let Q=Xc([Z]);return!J?Q:($)=>Q($)&&$.endsWith(J)},Xc=([Z])=>{let J=Z.length;return(Q)=>Q.length===J&&!Q.startsWith(".")},Wc=([Z])=>{let J=Z.length;return(Q)=>Q.length===J&&Q!=="."&&Q!==".."},Kc=typeof process==="object"&&process?typeof process.env==="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",Qc={win32:{sep:"\\"},posix:{sep:"/"}};c4.sep=Kc==="win32"?Qc.win32.sep:Qc.posix.sep;c4.minimatch.sep=c4.sep;c4.GLOBSTAR=Symbol("globstar **");c4.minimatch.GLOBSTAR=c4.GLOBSTAR;var Gk0="[^/]",Bk0=Gk0+"*?",Hk0="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",Vk0="(?:(?!(?:\\/|^)\\.).)*?",Fk0=(Z,J={})=>(Q)=>c4.minimatch(Q,Z,J);c4.filter=Fk0;c4.minimatch.filter=c4.filter;var e6=(Z,J={})=>Object.assign({},Z,J),wk0=(Z)=>{if(!Z||typeof Z!=="object"||!Object.keys(Z).length)return c4.minimatch;let J=c4.minimatch;return Object.assign(($,Y,X={})=>J($,Y,e6(Z,X)),{Minimatch:class extends J.Minimatch{constructor(Y,X={}){super(Y,e6(Z,X))}static defaults(Y){return J.defaults(e6(Z,Y)).Minimatch}},AST:class extends J.AST{constructor(Y,X,W={}){super(Y,X,e6(Z,W))}static fromGlob(Y,X={}){return J.AST.fromGlob(Y,e6(Z,X))}},unescape:($,Y={})=>J.unescape($,e6(Z,Y)),escape:($,Y={})=>J.escape($,e6(Z,Y)),filter:($,Y={})=>J.filter($,e6(Z,Y)),defaults:($)=>J.defaults(e6(Z,$)),makeRe:($,Y={})=>J.makeRe($,e6(Z,Y)),braceExpand:($,Y={})=>J.braceExpand($,e6(Z,Y)),match:($,Y,X={})=>J.match($,Y,e6(Z,X)),sep:J.sep,GLOBSTAR:c4.GLOBSTAR})};c4.defaults=wk0;c4.minimatch.defaults=c4.defaults;var Dk0=(Z,J={})=>{if((0,$3.assertValidPattern)(Z),J.nobrace||!/\{(?:(?!\{).)*\}/.test(Z))return[Z];return(0,c20.expand)(Z,{max:J.braceExpandMax})};c4.braceExpand=Dk0;c4.minimatch.braceExpand=c4.braceExpand;var Uk0=(Z,J={})=>new I8(Z,J).makeRe();c4.makeRe=Uk0;c4.minimatch.makeRe=c4.makeRe;var jk0=(Z,J,Q={})=>{let $=new I8(J,Q);if(Z=Z.filter((Y)=>$.match(Y)),$.options.nonull&&!Z.length)Z.push(J);return Z};c4.match=jk0;c4.minimatch.match=c4.match;var $c=/[?*]|[+@!]\(.*?\)|\[|\]/,qk0=(Z)=>Z.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");class I8{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(Z,J={}){(0,$3.assertValidPattern)(Z),J=J||{},this.options=J,this.maxGlobstarRecursion=J.maxGlobstarRecursion??200,this.pattern=Z,this.platform=J.platform||Kc,this.isWindows=this.platform==="win32";let Q="allowWindowsEscape";if(this.windowsPathsNoEscape=!!J.windowsPathsNoEscape||J[Q]===!1,this.windowsPathsNoEscape)this.pattern=this.pattern.replace(/\\/g,"/");this.preserveMultipleSlashes=!!J.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!J.nonegate,this.comment=!1,this.empty=!1,this.partial=!!J.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=J.windowsNoMagicRoot!==void 0?J.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let Z of this.set)for(let J of Z)if(typeof J!=="string")return!0;return!1}debug(...Z){}make(){let Z=this.pattern,J=this.options;if(!J.nocomment&&Z.charAt(0)==="#"){this.comment=!0;return}if(!Z){this.empty=!0;return}if(this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],J.debug)this.debug=(...Y)=>console.error(...Y);this.debug(this.pattern,this.globSet);let Q=this.globSet.map((Y)=>this.slashSplit(Y));this.globParts=this.preprocess(Q),this.debug(this.pattern,this.globParts);let $=this.globParts.map((Y,X,W)=>{if(this.isWindows&&this.windowsNoMagicRoot){let K=Y[0]===""&&Y[1]===""&&(Y[2]==="?"||!$c.test(Y[2]))&&!$c.test(Y[3]),z=/^[a-z]:/i.test(Y[0]);if(K)return[...Y.slice(0,4),...Y.slice(4).map((G)=>this.parse(G))];else if(z)return[Y[0],...Y.slice(1).map((G)=>this.parse(G))]}return Y.map((K)=>this.parse(K))});if(this.debug(this.pattern,$),this.set=$.filter((Y)=>Y.indexOf(!1)===-1),this.isWindows)for(let Y=0;Y=2)Z=this.firstPhasePreProcess(Z),Z=this.secondPhasePreProcess(Z);else if(J>=1)Z=this.levelOneOptimize(Z);else Z=this.adjascentGlobstarOptimize(Z);return Z}adjascentGlobstarOptimize(Z){return Z.map((J)=>{let Q=-1;while((Q=J.indexOf("**",Q+1))!==-1){let $=Q;while(J[$+1]==="**")$++;if($!==Q)J.splice(Q,$-Q)}return J})}levelOneOptimize(Z){return Z.map((J)=>{return J=J.reduce((Q,$)=>{let Y=Q[Q.length-1];if($==="**"&&Y==="**")return Q;if($===".."){if(Y&&Y!==".."&&Y!=="."&&Y!=="**")return Q.pop(),Q}return Q.push($),Q},[]),J.length===0?[""]:J})}levelTwoFileOptimize(Z){if(!Array.isArray(Z))Z=this.slashSplit(Z);let J=!1;do{if(J=!1,!this.preserveMultipleSlashes){for(let $=1;$$)Q.splice($+1,X-$);let W=Q[$+1],K=Q[$+2],z=Q[$+3];if(W!=="..")continue;if(!K||K==="."||K===".."||!z||z==="."||z==="..")continue;J=!0,Q.splice($,1);let G=Q.slice(0);G[$]="**",Z.push(G),$--}if(!this.preserveMultipleSlashes){for(let X=1;XJ.length)}partsMatch(Z,J,Q=!1){let $=0,Y=0,X=[],W="";while($=2)Z=this.levelTwoFileOptimize(Z);if(J.includes(c4.GLOBSTAR))return this.#Q(Z,J,Q,$,Y);return this.#Y(Z,J,Q,$,Y)}#Q(Z,J,Q,$,Y){let X=J.indexOf(c4.GLOBSTAR,Y),W=J.lastIndexOf(c4.GLOBSTAR),[K,z,G]=Q?[J.slice(Y,X),J.slice(X+1),[]]:[J.slice(Y,X),J.slice(X+1,W),J.slice(W+1)];if(K.length){let L=Z.slice($,$+K.length);if(!this.#Y(L,K,Q,0,0))return!1;$+=K.length,Y+=K.length}let H=0;if(G.length){if(G.length+$>Z.length)return!1;let L=Z.length-G.length;if(this.#Y(Z,G,Q,L,0))H=G.length;else{if(Z[Z.length-1]!==""||$+G.length===Z.length)return!1;if(L--,!this.#Y(Z,G,Q,L,0))return!1;H=G.length+1}}if(!z.length){let L=!!H;for(let O=$;O{let z=K.map((H)=>{if(H instanceof RegExp)for(let B of H.flags.split(""))$.add(B);return typeof H==="string"?qk0(H):H===c4.GLOBSTAR?c4.GLOBSTAR:H._src});z.forEach((H,B)=>{let V=z[B+1],F=z[B-1];if(H!==c4.GLOBSTAR||F===c4.GLOBSTAR)return;if(F===void 0)if(V!==void 0&&V!==c4.GLOBSTAR)z[B+1]="(?:\\/|"+Q+"\\/)?"+V;else z[B]=Q;else if(V===void 0)z[B-1]=F+"(?:\\/|\\/"+Q+")?";else if(V!==c4.GLOBSTAR)z[B-1]=F+"(?:\\/|\\/"+Q+"\\/)"+V,z[B+1]=c4.GLOBSTAR});let G=z.filter((H)=>H!==c4.GLOBSTAR);if(this.partial&&G.length>=1){let H=[];for(let B=1;B<=G.length;B++)H.push(G.slice(0,B).join("/"));return"(?:"+H.join("|")+")"}return G.join("/")}).join("|"),[X,W]=Z.length>1?["(?:",")"]:["",""];if(Y="^"+X+Y+W+"$",this.partial)Y="^(?:\\/|"+X+Y.slice(1,-1)+W+")$";if(this.negate)Y="^(?!"+Y+").+$";try{this.regexp=new RegExp(Y,[...$].join(""))}catch(K){this.regexp=!1}return this.regexp}slashSplit(Z){if(this.preserveMultipleSlashes)return Z.split("/");else if(this.isWindows&&/^\/\/[^\/]+/.test(Z))return["",...Z.split(/\/+/)];else return Z.split(/\/+/)}match(Z,J=this.partial){if(this.debug("match",Z,this.pattern),this.comment)return!1;if(this.empty)return Z==="";if(Z==="/"&&J)return!0;let Q=this.options;if(this.isWindows)Z=Z.split("\\").join("/");let $=this.slashSplit(Z);this.debug(this.pattern,"split",$);let Y=this.set;this.debug(this.pattern,"set",Y);let X=$[$.length-1];if(!X)for(let W=$.length-2;!X&&W>=0;W--)X=$[W];for(let W=0;W{var wc=A("node:diagnostics_channel"),{context:Y3,trace:wB,SpanStatusCode:m4,propagation:DB,diag:Mk0}=C(),{getRPCMetadata:Rk0,RPCType:Ak0}=Q0(),{ATTR_HTTP_ROUTE:X3,ATTR_HTTP_RESPONSE_STATUS_CODE:Dc,ATTR_HTTP_REQUEST_METHOD:Ik0,ATTR_URL_PATH:Nk0}=s(),{InstrumentationBase:Tk0}=Ad(),{version:fk0,name:Uc}=Id(),jc=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend","onResponse","onError"],K0={HOOK_NAME:"hook.name",FASTIFY_TYPE:"fastify.type",HOOK_CALLBACK_NAME:"hook.callback.name",ROOT:"fastify.root"},aZ={ROUTE:"route-hook",INSTANCE:"hook",HANDLER:"request-handler"},sZ=Symbol("fastify otel instance"),rZ=Symbol("fastify otel request spans"),u4=Symbol("fastify otel request context"),qc=Symbol("fastify otel addhook original"),Lc=Symbol("fastify otel setnotfound original"),l4=Symbol("fastify otel ignore path"),p4=Symbol("fastify otel record exceptions");class UB extends Tk0{logger=null;_requestHook=null;_lifecycleHook=null;constructor(Z){super(Uc,fk0,Z);if(this.logger=Mk0.createComponentLogger({namespace:Uc}),this[l4]=null,this[p4]=!0,Z?.recordExceptions!=null){if(typeof Z.recordExceptions!=="boolean")throw TypeError("recordExceptions must be a boolean");this[p4]=Z.recordExceptions}if(typeof Z?.requestHook==="function")this._requestHook=Z.requestHook;if(typeof Z?.lifecycleHook==="function")this._lifecycleHook=Z.lifecycleHook;if(Z?.ignorePaths!=null||process.env.OTEL_FASTIFY_IGNORE_PATHS!=null){let J=Z?.ignorePaths??process.env.OTEL_FASTIFY_IGNORE_PATHS;if((typeof J!=="string"||J.length===0)&&typeof J!=="function")throw TypeError("ignorePaths must be a string or a function");let Q=null;this[l4]=($)=>{if(typeof J==="function")return J($);else{if(Q==null)Q=Fc().minimatch;return Q($.url,J)}}}}enable(){if(this._handleInitialization===void 0&&this.getConfig().registerOnInitialization)this._handleInitialization=(Z)=>{this.plugin()(Z.fastify,void 0,()=>{});let J=(Q,$,Y)=>{Y()};J[Symbol.for("skip-override")]=!0,J[Symbol.for("fastify.display-name")]="@fastify/otel",Z.fastify.register(J)},wc.subscribe("fastify.initialization",this._handleInitialization);return super.enable()}disable(){if(this._handleInitialization)wc.unsubscribe("fastify.initialization",this._handleInitialization),this._handleInitialization=void 0;return super.disable()}init(){return[]}plugin(){let Z=this;return J[Symbol.for("skip-override")]=!0,J[Symbol.for("fastify.display-name")]="@fastify/otel",J[Symbol.for("plugin-meta")]={fastify:">=4.0.0 <6",name:"@fastify/otel"},J;function J(Q,$,Y){Q.decorate(sZ,Z),Q.decorate(qc,Q.addHook),Q.decorate(Lc,Q.setNotFoundHandler),Q.decorateRequest("opentelemetry",function(){let B=this[u4],V=this[rZ];return{enabled:this.routeOptions.config?.otel!==!1,span:V,tracer:Z.tracer,context:B,inject:(F,D)=>{return DB.inject(B,F,D)},extract:(F,D)=>{return DB.extract(B,F,D)}}}),Q.decorateRequest(rZ,null),Q.decorateRequest(u4,null),Q.addHook("onRoute",function(B){if(Z[l4]?.(B)===!0){Z.logger.debug(`Ignoring route instrumentation ${B.method} ${B.url} because it matches the ignore path`);return}if(B.config?.otel===!1){Z.logger.debug(`Ignoring route instrumentation ${B.method} ${B.url} because it is disabled`);return}for(let V of jc)if(B[V]!=null){let F=B[V];if(typeof F==="function")B[V]=G(F,V,{[K0.HOOK_NAME]:`${this.pluginName} - route -> ${V}`,[K0.FASTIFY_TYPE]:aZ.ROUTE,[X3]:B.url,[K0.HOOK_CALLBACK_NAME]:F.name?.length>0?F.name:"anonymous"});else if(Array.isArray(F)){let D=[];for(let U of F)D.push(G(U,V,{[K0.HOOK_NAME]:`${this.pluginName} - route -> ${V}`,[K0.FASTIFY_TYPE]:aZ.ROUTE,[X3]:B.url,[K0.HOOK_CALLBACK_NAME]:U.name?.length>0?U.name:"anonymous"}));B[V]=D}}if(B.onSend!=null)B.onSend=Array.isArray(B.onSend)?[...B.onSend,X]:[B.onSend,X];else B.onSend=X;if(B.onError!=null)B.onError=Array.isArray(B.onError)?[...B.onError,W]:[B.onError,W];else B.onError=W;B.handler=G(B.handler,"handler",{[K0.HOOK_NAME]:`${this.pluginName} - route-handler`,[K0.FASTIFY_TYPE]:aZ.HANDLER,[X3]:B.url,[K0.HOOK_CALLBACK_NAME]:B.handler.name.length>0?B.handler.name:"anonymous"})}),Q.addHook("onRequest",function(B,V,F){if(this[sZ].isEnabled()===!1||B.routeOptions.config?.otel===!1)return F();if(this[sZ][l4]?.({url:B.url,method:B.method})===!0)return this[sZ].logger.debug(`Ignoring request ${B.method} ${B.url} because it matches the ignore path`),F();let D=Y3.active();if(wB.getSpan(D)==null)D=DB.extract(D,B.headers);let U=Rk0(D);if(B.routeOptions.url!=null&&U?.type===Ak0.HTTP)U.route=B.routeOptions.url;let j={[K0.ROOT]:"@fastify/otel",[Ik0]:B.method,[Nk0]:B.url};if(B.routeOptions.url!=null)j[X3]=B.routeOptions.url;let L=this[sZ].tracer.startSpan("request",{attributes:j},D);try{this[sZ]._requestHook?.(L,B)}catch(O){this[sZ].logger.error({err:O},"requestHook threw")}B[u4]=wB.setSpan(D,L),B[rZ]=L,Y3.with(B[u4],()=>{F()})}),Q.addHook("onResponse",function(B,V,F){let D=B[rZ];if(D!=null)D.setStatus({code:m4.OK,message:"OK"}),D.setAttributes({[Dc]:404}),D.end();B[rZ]=null,F()}),Q.addHook=K,Q.setNotFoundHandler=z,Y();function X(H,B,V,F){let D=H[rZ];if(D!=null){if(B.statusCode<500)D.setStatus({code:m4.OK,message:"OK"});D.setAttributes({[Dc]:B.statusCode}),D.end()}H[rZ]=null,F(null,V)}function W(H,B,V,F){let D=H[rZ];if(D!=null){if(D.setStatus({code:m4.ERROR,message:V.message}),Z[p4]!==!1)D.recordException(V)}F()}function K(H,B){let V=this[qc];if(jc.includes(H))return V.call(this,H,G(B,H,{[K0.HOOK_NAME]:`${this.pluginName} - ${H}`,[K0.FASTIFY_TYPE]:aZ.INSTANCE,[K0.HOOK_CALLBACK_NAME]:B.name?.length>0?B.name:"anonymous"}));else return V.call(this,H,B)}function z(H,B){let V=this[Lc];if(typeof H==="function")B=G(H,"notFoundHandler",{[K0.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[K0.FASTIFY_TYPE]:aZ.INSTANCE,[K0.HOOK_CALLBACK_NAME]:H.name?.length>0?H.name:"anonymous"}),V.call(this,B);else{if(H.preValidation!=null)H.preValidation=G(H.preValidation,"notFoundHandler - preValidation",{[K0.HOOK_NAME]:`${this.pluginName} - not-found-handler - preValidation`,[K0.FASTIFY_TYPE]:aZ.INSTANCE,[K0.HOOK_CALLBACK_NAME]:H.preValidation.name?.length>0?H.preValidation.name:"anonymous"});if(H.preHandler!=null)H.preHandler=G(H.preHandler,"notFoundHandler - preHandler",{[K0.HOOK_NAME]:`${this.pluginName} - not-found-handler - preHandler`,[K0.FASTIFY_TYPE]:aZ.INSTANCE,[K0.HOOK_CALLBACK_NAME]:H.preHandler.name?.length>0?H.preHandler.name:"anonymous"});B=G(B,"notFoundHandler",{[K0.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[K0.FASTIFY_TYPE]:aZ.INSTANCE,[K0.HOOK_CALLBACK_NAME]:B.name?.length>0?B.name:"anonymous"}),V.call(this,H,B)}}function G(H,B,V={}){return function(...D){let U=this[sZ],[j]=D;if(U.isEnabled()===!1||j.routeOptions.config?.otel===!1)return U.logger.debug(`Ignoring route instrumentation ${j.routeOptions.method} ${j.routeOptions.url} because it is disabled`),H.call(this,...D);if(U[l4]?.({url:j.url,method:j.method})===!0)return U.logger.debug(`Ignoring route instrumentation ${j.routeOptions.method} ${j.routeOptions.url} because it matches the ignore path`),H.call(this,...D);let L=j[u4]??Y3.active(),O=H.name?.length>0?H.name:this.pluginName??"anonymous",M=U.tracer.startSpan(`${B} - ${O}`,{attributes:V},L);if(U._lifecycleHook!=null)try{U._lifecycleHook(M,{hookName:B,request:j,handler:O})}catch(S){U.logger.error({err:S},"Execution of lifecycleHook failed")}return Y3.with(wB.setSpan(L,M),function(){try{let S=H.call(this,...D);if(typeof S?.then==="function")return S.then((T)=>{return M.end(),T},(T)=>{if(M.setStatus({code:m4.ERROR,message:T.message}),U[p4]!==!1)M.recordException(T);return M.end(),Promise.reject(T)});return M.end(),S}catch(S){if(M.setStatus({code:m4.ERROR,message:S.message}),U[p4]!==!1)M.recordException(S);throw M.end(),S}},this)}}}}}jB.exports=UB;jB.exports.FastifyOtelInstrumentation=UB});var PB=w((vc)=>{Object.defineProperty(vc,"__esModule",{value:!0});vc.SpanNames=vc.TokenKind=vc.AllowedOperationTypes=void 0;var gk0;(function(Z){Z.QUERY="query",Z.MUTATION="mutation",Z.SUBSCRIPTION="subscription"})(gk0=vc.AllowedOperationTypes||(vc.AllowedOperationTypes={}));var dk0;(function(Z){Z.SOF="",Z.EOF="",Z.BANG="!",Z.DOLLAR="$",Z.AMP="&",Z.PAREN_L="(",Z.PAREN_R=")",Z.SPREAD="...",Z.COLON=":",Z.EQUALS="=",Z.AT="@",Z.BRACKET_L="[",Z.BRACKET_R="]",Z.BRACE_L="{",Z.PIPE="|",Z.BRACE_R="}",Z.NAME="Name",Z.INT="Int",Z.FLOAT="Float",Z.STRING="String",Z.BLOCK_STRING="BlockString",Z.COMMENT="Comment"})(dk0=vc.TokenKind||(vc.TokenKind={}));var ck0;(function(Z){Z.EXECUTE="graphql.execute",Z.PARSE="graphql.parse",Z.RESOLVE="graphql.resolve",Z.VALIDATE="graphql.validate",Z.SCHEMA_VALIDATE="graphql.validateSchema",Z.SCHEMA_PARSE="graphql.parseSchema"})(ck0=vc.SpanNames||(vc.SpanNames={}))});var MB=w((bc)=>{Object.defineProperty(bc,"__esModule",{value:!0});bc.AttributeNames=void 0;var mk0;(function(Z){Z.SOURCE="graphql.source",Z.FIELD_NAME="graphql.field.name",Z.FIELD_PATH="graphql.field.path",Z.FIELD_TYPE="graphql.field.type",Z.PARENT_NAME="graphql.parent.name",Z.OPERATION_TYPE="graphql.operation.type",Z.OPERATION_NAME="graphql.operation.name",Z.VARIABLES="graphql.variables.",Z.ERROR_VALIDATION_NAME="graphql.validation.error"})(mk0=bc.AttributeNames||(bc.AttributeNames={}))});var G3=w((xc)=>{Object.defineProperty(xc,"__esModule",{value:!0});xc.OTEL_GRAPHQL_DATA_SYMBOL=xc.OTEL_PATCHED_SYMBOL=void 0;xc.OTEL_PATCHED_SYMBOL=Symbol.for("opentelemetry.patched");xc.OTEL_GRAPHQL_DATA_SYMBOL=Symbol.for("opentelemetry.graphql_data")});var mc=w((dc)=>{Object.defineProperty(dc,"__esModule",{value:!0});dc.OPERATION_NOT_SUPPORTED=void 0;var $86=G3();dc.OPERATION_NOT_SUPPORTED="Operation$operationName$not supported"});var Xm=w((Qm)=>{Object.defineProperty(Qm,"__esModule",{value:!0});Qm.wrapFieldResolver=Qm.wrapFields=Qm.getSourceFromLocation=Qm.getOperation=Qm.endSpan=Qm.addSpanSource=Qm.addInputVariableAttributes=Qm.isPromise=void 0;var N8=C(),tZ=PB(),W1=MB(),GZ=G3(),uc=Object.values(tZ.AllowedOperationTypes),lk0=(Z)=>{return typeof Z?.then==="function"};Qm.isPromise=lk0;var pk0=(Z)=>{return typeof Z=="object"&&Z!==null};function RB(Z,J,Q){if(Array.isArray(Q))Q.forEach(($,Y)=>{RB(Z,`${J}.${Y}`,$)});else if(Q instanceof Object)Object.entries(Q).forEach(([$,Y])=>{RB(Z,`${J}.${$}`,Y)});else Z.setAttribute(`${W1.AttributeNames.VARIABLES}${String(J)}`,Q)}function ik0(Z,J){Object.entries(J).forEach(([Q,$])=>{RB(Z,Q,$)})}Qm.addInputVariableAttributes=ik0;function oc(Z,J,Q,$,Y){let X=tc(J,Q,$,Y);Z.setAttribute(W1.AttributeNames.SOURCE,X)}Qm.addSpanSource=oc;function ok0(Z,J,Q,$,Y){let X=nc(Q,Y);if(X)return{field:X,spanAdded:!1};let K=J().flatResolveSpans?sc(Q):ac(Q,Y);return X={span:nk0(Z,J,Q,$,Y,K)},rk0(Q,Y,X),{field:X,spanAdded:!0}}function nk0(Z,J,Q,$,Y,X){let W={[W1.AttributeNames.FIELD_NAME]:$.fieldName,[W1.AttributeNames.FIELD_PATH]:Y.join("."),[W1.AttributeNames.FIELD_TYPE]:$.returnType.toString(),[W1.AttributeNames.PARENT_NAME]:$.parentType.name},K=Z.startSpan(`${tZ.SpanNames.RESOLVE} ${W[W1.AttributeNames.FIELD_PATH]}`,{attributes:W},X?N8.trace.setSpan(N8.context.active(),X):void 0),z=Q[GZ.OTEL_GRAPHQL_DATA_SYMBOL].source,G=$.fieldNodes.find((H)=>H.kind==="Field");if(G)oc(K,z.loc,J().allowValues,G.loc?.start,G.loc?.end);return K}function ak0(Z,J){if(J)Z.recordException(J);Z.end()}Qm.endSpan=ak0;function sk0(Z,J){if(!Z||!Array.isArray(Z.definitions))return;if(J)return Z.definitions.filter((Q)=>uc.indexOf(Q?.operation)!==-1).find((Q)=>J===Q?.name?.value);else return Z.definitions.find((Q)=>uc.indexOf(Q?.operation)!==-1)}Qm.getOperation=sk0;function rk0(Z,J,Q){return Z[GZ.OTEL_GRAPHQL_DATA_SYMBOL].fields[J.join(".")]=Q}function nc(Z,J){return Z[GZ.OTEL_GRAPHQL_DATA_SYMBOL].fields[J.join(".")]}function ac(Z,J){for(let Q=J.length-1;Q>0;Q--){let $=nc(Z,J.slice(0,Q));if($)return $.span}return sc(Z)}function sc(Z){return Z[GZ.OTEL_GRAPHQL_DATA_SYMBOL].span}function tk0(Z,J){let Q=[],$=J;while($){let Y=$.key;if(Z&&typeof Y==="number")Y="*";Q.push(String(Y)),$=$.prev}return Q.reverse()}function ek0(Z){return rc(` -`,Z)}function lc(Z){return rc(" ",Z)}function rc(Z,J){let Q="";for(let $=0;$W){K=K.next,z=K?.line;continue}let G=K.value||K.kind,H="";if(!J&&ZM0.indexOf(K.kind)>=0)G="*";if(K.kind===tZ.TokenKind.STRING)G=`"${G}"`;if(K.kind===tZ.TokenKind.EOF)G="";if(K.line>z)Y+=ek0(K.line-z),z=K.line,H=lc(K.column-1);else if(K.line===K.prev?.line)H=lc(K.start-(K.prev?.end||0));if(Y+=H+G,K)K=K.next}}return Y}Qm.getSourceFromLocation=tc;function ec(Z,J,Q){if(!Z||Z[GZ.OTEL_PATCHED_SYMBOL])return;let $=Z.getFields();Z[GZ.OTEL_PATCHED_SYMBOL]=!0,Object.keys($).forEach((Y)=>{let X=$[Y];if(!X)return;if(X.resolve)X.resolve=Jm(J,Q,X.resolve);if(X.type){let W=Zm(X.type);for(let K of W)ec(K,J,Q)}})}Qm.wrapFields=ec;function Zm(Z){if("ofType"in Z)return Zm(Z.ofType);if(JM0(Z))return Z.getTypes();if(QM0(Z))return[Z];return[]}function JM0(Z){return"getTypes"in Z&&typeof Z.getTypes==="function"}function QM0(Z){return"getFields"in Z&&typeof Z.getFields==="function"}var pc=(Z,J,Q)=>{if(!Q)return;Z.recordException(J),Z.setStatus({code:N8.SpanStatusCode.ERROR,message:J.message}),Z.end()},ic=(Z,J)=>{if(!J)return;Z.end()};function Jm(Z,J,Q,$=!1){if(Y[GZ.OTEL_PATCHED_SYMBOL]||typeof Q!=="function")return Q;function Y(X,W,K,z){if(!Q)return;let G=J();if(G.ignoreTrivialResolveSpans&&$&&(pk0(X)||typeof X==="function")){if(typeof X[z.fieldName]!=="function")return Q.call(this,X,W,K,z)}if(!K[GZ.OTEL_GRAPHQL_DATA_SYMBOL])return Q.call(this,X,W,K,z);let H=tk0(G.mergeItems,z&&z.path),B=H.filter((D)=>typeof D==="string").length,V,F=!1;if(G.depth>=0&&G.depth{try{let D=Q.call(this,X,W,K,z);if(Qm.isPromise(D))return D.then((U)=>{return ic(V,F),U},(U)=>{throw pc(V,U,F),U});else return ic(V,F),D}catch(D){throw pc(V,D,F),D}})}return Y[GZ.OTEL_PATCHED_SYMBOL]=!0,Y}Qm.wrapFieldResolver=Jm});var zm=w((Wm)=>{Object.defineProperty(Wm,"__esModule",{value:!0});Wm.PACKAGE_NAME=Wm.PACKAGE_VERSION=void 0;Wm.PACKAGE_VERSION="0.61.0";Wm.PACKAGE_NAME="@opentelemetry/instrumentation-graphql"});var wm=w((Vm)=>{Object.defineProperty(Vm,"__esModule",{value:!0});Vm.GraphQLInstrumentation=void 0;var BZ=C(),Z9=c(),a4=PB(),B3=MB(),AB=G3(),BM0=mc(),s0=Xm(),Gm=zm(),Bm={mergeItems:!1,depth:-1,allowValues:!1,ignoreResolveSpans:!1},H3=[">=14.0.0 <17"];class Hm extends Z9.InstrumentationBase{constructor(Z={}){super(Gm.PACKAGE_NAME,Gm.PACKAGE_VERSION,{...Bm,...Z})}setConfig(Z={}){super.setConfig({...Bm,...Z})}init(){let Z=new Z9.InstrumentationNodeModuleDefinition("graphql",H3);return Z.files.push(this._addPatchingExecute()),Z.files.push(this._addPatchingParser()),Z.files.push(this._addPatchingValidate()),Z}_addPatchingExecute(){return new Z9.InstrumentationNodeModuleFile("graphql/execution/execute.js",H3,(Z)=>{if((0,Z9.isWrapped)(Z.execute))this._unwrap(Z,"execute");return this._wrap(Z,"execute",this._patchExecute(Z.defaultFieldResolver)),Z},(Z)=>{if(Z)this._unwrap(Z,"execute")})}_addPatchingParser(){return new Z9.InstrumentationNodeModuleFile("graphql/language/parser.js",H3,(Z)=>{if((0,Z9.isWrapped)(Z.parse))this._unwrap(Z,"parse");return this._wrap(Z,"parse",this._patchParse()),Z},(Z)=>{if(Z)this._unwrap(Z,"parse")})}_addPatchingValidate(){return new Z9.InstrumentationNodeModuleFile("graphql/validation/validate.js",H3,(Z)=>{if((0,Z9.isWrapped)(Z.validate))this._unwrap(Z,"validate");return this._wrap(Z,"validate",this._patchValidate()),Z},(Z)=>{if(Z)this._unwrap(Z,"validate")})}_patchExecute(Z){let J=this;return function($){return function(){let X;if(arguments.length>=2){let z=arguments;X=J._wrapExecuteArgs(z[0],z[1],z[2],z[3],z[4],z[5],z[6],z[7],Z)}else{let z=arguments[0];X=J._wrapExecuteArgs(z.schema,z.document,z.rootValue,z.contextValue,z.variableValues,z.operationName,z.fieldResolver,z.typeResolver,Z)}let W=(0,s0.getOperation)(X.document,X.operationName),K=J._createExecuteSpan(W,X);return X.contextValue[AB.OTEL_GRAPHQL_DATA_SYMBOL]={source:X.document?X.document||X.document[AB.OTEL_GRAPHQL_DATA_SYMBOL]:void 0,span:K,fields:{}},BZ.context.with(BZ.trace.setSpan(BZ.context.active(),K),()=>{return(0,Z9.safeExecuteInTheMiddle)(()=>{return $.apply(this,[X])},(z,G)=>{J._handleExecutionResult(K,z,G)})})}}}_handleExecutionResult(Z,J,Q){let $=this.getConfig();if(Q===void 0||J){(0,s0.endSpan)(Z,J);return}if((0,s0.isPromise)(Q))Q.then((Y)=>{if(typeof $.responseHook!=="function"){(0,s0.endSpan)(Z);return}this._executeResponseHook(Z,Y)},(Y)=>{(0,s0.endSpan)(Z,Y)});else{if(typeof $.responseHook!=="function"){(0,s0.endSpan)(Z);return}this._executeResponseHook(Z,Q)}}_executeResponseHook(Z,J){let{responseHook:Q}=this.getConfig();if(!Q)return;(0,Z9.safeExecuteInTheMiddle)(()=>{Q(Z,J)},($)=>{if($)this._diag.error("Error running response hook",$);(0,s0.endSpan)(Z,void 0)},!0)}_patchParse(){let Z=this;return function(Q){return function(Y,X){return Z._parse(this,Q,Y,X)}}}_patchValidate(){let Z=this;return function(Q){return function(Y,X,W,K,z){return Z._validate(this,Q,Y,X,W,z,K)}}}_parse(Z,J,Q,$){let Y=this.getConfig(),X=this.tracer.startSpan(a4.SpanNames.PARSE);return BZ.context.with(BZ.trace.setSpan(BZ.context.active(),X),()=>{return(0,Z9.safeExecuteInTheMiddle)(()=>{return J.call(Z,Q,$)},(W,K)=>{if(K){if(!(0,s0.getOperation)(K))X.updateName(a4.SpanNames.SCHEMA_PARSE);else if(K.loc)(0,s0.addSpanSource)(X,K.loc,Y.allowValues)}(0,s0.endSpan)(X,W)})})}_validate(Z,J,Q,$,Y,X,W){let K=this.tracer.startSpan(a4.SpanNames.VALIDATE,{});return BZ.context.with(BZ.trace.setSpan(BZ.context.active(),K),()=>{return(0,Z9.safeExecuteInTheMiddle)(()=>{return J.call(Z,Q,$,Y,W,X)},(z,G)=>{if(!$.loc)K.updateName(a4.SpanNames.SCHEMA_VALIDATE);if(G&&G.length)K.recordException({name:B3.AttributeNames.ERROR_VALIDATION_NAME,message:JSON.stringify(G)});(0,s0.endSpan)(K,z)})})}_createExecuteSpan(Z,J){let Q=this.getConfig(),$=this.tracer.startSpan(a4.SpanNames.EXECUTE,{});if(Z){let{operation:Y,name:X}=Z;$.setAttribute(B3.AttributeNames.OPERATION_TYPE,Y);let W=X?.value;if(W)$.setAttribute(B3.AttributeNames.OPERATION_NAME,W),$.updateName(`${Y} ${W}`);else $.updateName(Y)}else{let Y=" ";if(J.operationName)Y=` "${J.operationName}" `;Y=BM0.OPERATION_NOT_SUPPORTED.replace("$operationName$",Y),$.setAttribute(B3.AttributeNames.OPERATION_NAME,Y)}if(J.document?.loc)(0,s0.addSpanSource)($,J.document.loc,Q.allowValues);if(J.variableValues&&Q.allowValues)(0,s0.addInputVariableAttributes)($,J.variableValues);return $}_wrapExecuteArgs(Z,J,Q,$,Y,X,W,K,z){if(!$)$={};if($[AB.OTEL_GRAPHQL_DATA_SYMBOL]||this.getConfig().ignoreResolveSpans)return{schema:Z,document:J,rootValue:Q,contextValue:$,variableValues:Y,operationName:X,fieldResolver:W,typeResolver:K};let G=W==null,H=W??z;if(W=(0,s0.wrapFieldResolver)(this.tracer,()=>this.getConfig(),H,G),Z)(0,s0.wrapFields)(Z.getQueryType(),this.tracer,()=>this.getConfig()),(0,s0.wrapFields)(Z.getMutationType(),this.tracer,()=>this.getConfig());return{schema:Z,document:J,rootValue:Q,contextValue:$,variableValues:Y,operationName:X,fieldResolver:W,typeResolver:K}}}Vm.GraphQLInstrumentation=Hm});var Dm=w((IB)=>{Object.defineProperty(IB,"__esModule",{value:!0});IB.GraphQLInstrumentation=void 0;var HM0=wm();Object.defineProperty(IB,"GraphQLInstrumentation",{enumerable:!0,get:function(){return HM0.GraphQLInstrumentation}})});var Mm=w((Pm)=>{Object.defineProperty(Pm,"__esModule",{value:!0});Pm.EVENT_LISTENERS_SET=void 0;Pm.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.kafkajs.eventListenersSet")});var Im=w((Rm)=>{Object.defineProperty(Rm,"__esModule",{value:!0});Rm.bufferTextMapGetter=void 0;Rm.bufferTextMapGetter={get(Z,J){if(!Z)return;let Q=Object.keys(Z);for(let $ of Q)if($===J||$.toLowerCase()===J)return Z[$]?.toString();return},keys(Z){return Z?Object.keys(Z):[]}}});var fm=w((Nm)=>{Object.defineProperty(Nm,"__esModule",{value:!0});Nm.METRIC_MESSAGING_PROCESS_DURATION=Nm.METRIC_MESSAGING_CLIENT_SENT_MESSAGES=Nm.METRIC_MESSAGING_CLIENT_OPERATION_DURATION=Nm.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES=Nm.MESSAGING_SYSTEM_VALUE_KAFKA=Nm.MESSAGING_OPERATION_TYPE_VALUE_SEND=Nm.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE=Nm.MESSAGING_OPERATION_TYPE_VALUE_PROCESS=Nm.ATTR_MESSAGING_SYSTEM=Nm.ATTR_MESSAGING_OPERATION_TYPE=Nm.ATTR_MESSAGING_OPERATION_NAME=Nm.ATTR_MESSAGING_KAFKA_OFFSET=Nm.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE=Nm.ATTR_MESSAGING_KAFKA_MESSAGE_KEY=Nm.ATTR_MESSAGING_DESTINATION_PARTITION_ID=Nm.ATTR_MESSAGING_DESTINATION_NAME=Nm.ATTR_MESSAGING_BATCH_MESSAGE_COUNT=void 0;Nm.ATTR_MESSAGING_BATCH_MESSAGE_COUNT="messaging.batch.message_count";Nm.ATTR_MESSAGING_DESTINATION_NAME="messaging.destination.name";Nm.ATTR_MESSAGING_DESTINATION_PARTITION_ID="messaging.destination.partition.id";Nm.ATTR_MESSAGING_KAFKA_MESSAGE_KEY="messaging.kafka.message.key";Nm.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE="messaging.kafka.message.tombstone";Nm.ATTR_MESSAGING_KAFKA_OFFSET="messaging.kafka.offset";Nm.ATTR_MESSAGING_OPERATION_NAME="messaging.operation.name";Nm.ATTR_MESSAGING_OPERATION_TYPE="messaging.operation.type";Nm.ATTR_MESSAGING_SYSTEM="messaging.system";Nm.MESSAGING_OPERATION_TYPE_VALUE_PROCESS="process";Nm.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE="receive";Nm.MESSAGING_OPERATION_TYPE_VALUE_SEND="send";Nm.MESSAGING_SYSTEM_VALUE_KAFKA="kafka";Nm.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES="messaging.client.consumed.messages";Nm.METRIC_MESSAGING_CLIENT_OPERATION_DURATION="messaging.client.operation.duration";Nm.METRIC_MESSAGING_CLIENT_SENT_MESSAGES="messaging.client.sent.messages";Nm.METRIC_MESSAGING_PROCESS_DURATION="messaging.process.duration"});var hm=w((Em)=>{Object.defineProperty(Em,"__esModule",{value:!0});Em.PACKAGE_NAME=Em.PACKAGE_VERSION=void 0;Em.PACKAGE_VERSION="0.22.0";Em.PACKAGE_NAME="@opentelemetry/instrumentation-kafkajs"});var mm=w((dm)=>{Object.defineProperty(dm,"__esModule",{value:!0});dm.KafkaJsInstrumentation=void 0;var Y0=C(),J9=c(),T8=s(),Sm=Mm(),_m=Im(),E=fm(),vm=hm();function V3(Z,J,Q){return($)=>{Z.add(J,{...Q,...$?{[T8.ATTR_ERROR_TYPE]:$}:{}})}}function bm(Z,J,Q){return($)=>{Z.record((Date.now()-J)/1000,{...Q,...$?{[T8.ATTR_ERROR_TYPE]:$}:{}})}}var xm=[0.005,0.01,0.025,0.05,0.075,0.1,0.25,0.5,0.75,1,2.5,5,7.5,10];class gm extends J9.InstrumentationBase{constructor(Z={}){super(vm.PACKAGE_NAME,vm.PACKAGE_VERSION,Z)}_updateMetricInstruments(){this._clientDuration=this.meter.createHistogram(E.METRIC_MESSAGING_CLIENT_OPERATION_DURATION,{advice:{explicitBucketBoundaries:xm}}),this._sentMessages=this.meter.createCounter(E.METRIC_MESSAGING_CLIENT_SENT_MESSAGES),this._consumedMessages=this.meter.createCounter(E.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES),this._processDuration=this.meter.createHistogram(E.METRIC_MESSAGING_PROCESS_DURATION,{advice:{explicitBucketBoundaries:xm}})}init(){let Z=(Q)=>{if((0,J9.isWrapped)(Q?.Kafka?.prototype.producer))this._unwrap(Q.Kafka.prototype,"producer");if((0,J9.isWrapped)(Q?.Kafka?.prototype.consumer))this._unwrap(Q.Kafka.prototype,"consumer")};return new J9.InstrumentationNodeModuleDefinition("kafkajs",[">=0.3.0 <3"],(Q)=>{return Z(Q),this._wrap(Q?.Kafka?.prototype,"producer",this._getProducerPatch()),this._wrap(Q?.Kafka?.prototype,"consumer",this._getConsumerPatch()),Q},Z)}_getConsumerPatch(){let Z=this;return(J)=>{return function(...$){let Y=J.apply(this,$);if((0,J9.isWrapped)(Y.run))Z._unwrap(Y,"run");return Z._wrap(Y,"run",Z._getConsumerRunPatch()),Z._setKafkaEventListeners(Y),Y}}}_setKafkaEventListeners(Z){if(Z[Sm.EVENT_LISTENERS_SET])return;if(Z.events?.REQUEST)Z.on(Z.events.REQUEST,this._recordClientDurationMetric.bind(this));Z[Sm.EVENT_LISTENERS_SET]=!0}_recordClientDurationMetric(Z){let[J,Q]=Z.payload.broker.split(":");this._clientDuration.record(Z.payload.duration/1000,{[E.ATTR_MESSAGING_SYSTEM]:E.MESSAGING_SYSTEM_VALUE_KAFKA,[E.ATTR_MESSAGING_OPERATION_NAME]:`${Z.payload.apiName}`,[T8.ATTR_SERVER_ADDRESS]:J,[T8.ATTR_SERVER_PORT]:Number.parseInt(Q,10)})}_getProducerPatch(){let Z=this;return(J)=>{return function(...$){let Y=J.apply(this,$);if((0,J9.isWrapped)(Y.sendBatch))Z._unwrap(Y,"sendBatch");if(Z._wrap(Y,"sendBatch",Z._getSendBatchPatch()),(0,J9.isWrapped)(Y.send))Z._unwrap(Y,"send");if(Z._wrap(Y,"send",Z._getSendPatch()),(0,J9.isWrapped)(Y.transaction))Z._unwrap(Y,"transaction");return Z._wrap(Y,"transaction",Z._getProducerTransactionPatch()),Z._setKafkaEventListeners(Y),Y}}}_getConsumerRunPatch(){let Z=this;return(J)=>{return function(...$){let Y=$[0];if(Y?.eachMessage){if((0,J9.isWrapped)(Y.eachMessage))Z._unwrap(Y,"eachMessage");Z._wrap(Y,"eachMessage",Z._getConsumerEachMessagePatch())}if(Y?.eachBatch){if((0,J9.isWrapped)(Y.eachBatch))Z._unwrap(Y,"eachBatch");Z._wrap(Y,"eachBatch",Z._getConsumerEachBatchPatch())}return J.call(this,Y)}}}_getConsumerEachMessagePatch(){let Z=this;return(J)=>{return function(...$){let Y=$[0],X=Y0.propagation.extract(Y0.ROOT_CONTEXT,Y.message.headers,_m.bufferTextMapGetter),W=Z._startConsumerSpan({topic:Y.topic,message:Y.message,operationType:E.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,ctx:X,attributes:{[E.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(Y.partition)}}),K=[bm(Z._processDuration,Date.now(),{[E.ATTR_MESSAGING_SYSTEM]:E.MESSAGING_SYSTEM_VALUE_KAFKA,[E.ATTR_MESSAGING_OPERATION_NAME]:"process",[E.ATTR_MESSAGING_DESTINATION_NAME]:Y.topic,[E.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(Y.partition)}),V3(Z._consumedMessages,1,{[E.ATTR_MESSAGING_SYSTEM]:E.MESSAGING_SYSTEM_VALUE_KAFKA,[E.ATTR_MESSAGING_OPERATION_NAME]:"process",[E.ATTR_MESSAGING_DESTINATION_NAME]:Y.topic,[E.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(Y.partition)})],z=Y0.context.with(Y0.trace.setSpan(X,W),()=>{return J.apply(this,$)});return Z._endSpansOnPromise([W],K,z)}}}_getConsumerEachBatchPatch(){return(Z)=>{let J=this;return function(...$){let Y=$[0],X=J._startConsumerSpan({topic:Y.batch.topic,message:void 0,operationType:E.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE,ctx:Y0.ROOT_CONTEXT,attributes:{[E.ATTR_MESSAGING_BATCH_MESSAGE_COUNT]:Y.batch.messages.length,[E.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(Y.batch.partition)}});return Y0.context.with(Y0.trace.setSpan(Y0.context.active(),X),()=>{let W=Date.now(),K=[],z=[V3(J._consumedMessages,Y.batch.messages.length,{[E.ATTR_MESSAGING_SYSTEM]:E.MESSAGING_SYSTEM_VALUE_KAFKA,[E.ATTR_MESSAGING_OPERATION_NAME]:"process",[E.ATTR_MESSAGING_DESTINATION_NAME]:Y.batch.topic,[E.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(Y.batch.partition)})];Y.batch.messages.forEach((H)=>{let B=Y0.propagation.extract(Y0.ROOT_CONTEXT,H.headers,_m.bufferTextMapGetter),V=Y0.trace.getSpan(B)?.spanContext(),F;if(V)F={context:V};K.push(J._startConsumerSpan({topic:Y.batch.topic,message:H,operationType:E.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,link:F,attributes:{[E.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(Y.batch.partition)}})),z.push(bm(J._processDuration,W,{[E.ATTR_MESSAGING_SYSTEM]:E.MESSAGING_SYSTEM_VALUE_KAFKA,[E.ATTR_MESSAGING_OPERATION_NAME]:"process",[E.ATTR_MESSAGING_DESTINATION_NAME]:Y.batch.topic,[E.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(Y.batch.partition)}))});let G=Z.apply(this,$);return K.unshift(X),J._endSpansOnPromise(K,z,G)})}}}_getProducerTransactionPatch(){let Z=this;return(J)=>{return function(...$){let Y=Z.tracer.startSpan("transaction"),X=J.apply(this,$);return X.then((W)=>{let K=W.send;W.send=function(...V){return Y0.context.with(Y0.trace.setSpan(Y0.context.active(),Y),()=>{return Z._getSendPatch()(K).apply(this,V).catch((D)=>{throw Y.setStatus({code:Y0.SpanStatusCode.ERROR,message:D?.message}),Y.recordException(D),D})})};let z=W.sendBatch;W.sendBatch=function(...V){return Y0.context.with(Y0.trace.setSpan(Y0.context.active(),Y),()=>{return Z._getSendBatchPatch()(z).apply(this,V).catch((D)=>{throw Y.setStatus({code:Y0.SpanStatusCode.ERROR,message:D?.message}),Y.recordException(D),D})})};let G=W.commit;W.commit=function(...V){let F=G.apply(this,V).then(()=>{Y.setStatus({code:Y0.SpanStatusCode.OK})});return Z._endSpansOnPromise([Y],[],F)};let H=W.abort;W.abort=function(...V){let F=H.apply(this,V);return Z._endSpansOnPromise([Y],[],F)}}).catch((W)=>{Y.setStatus({code:Y0.SpanStatusCode.ERROR,message:W?.message}),Y.recordException(W),Y.end()}),X}}}_getSendBatchPatch(){let Z=this;return(J)=>{return function(...$){let X=$[0].topicMessages||[],W=[],K=[];X.forEach((G)=>{G.messages.forEach((H)=>{W.push(Z._startProducerSpan(G.topic,H)),K.push(V3(Z._sentMessages,1,{[E.ATTR_MESSAGING_SYSTEM]:E.MESSAGING_SYSTEM_VALUE_KAFKA,[E.ATTR_MESSAGING_OPERATION_NAME]:"send",[E.ATTR_MESSAGING_DESTINATION_NAME]:G.topic,...H.partition!==void 0?{[E.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(H.partition)}:{}}))})});let z=J.apply(this,$);return Z._endSpansOnPromise(W,K,z)}}}_getSendPatch(){let Z=this;return(J)=>{return function(...$){let Y=$[0],X=Y.messages.map((z)=>{return Z._startProducerSpan(Y.topic,z)}),W=Y.messages.map((z)=>V3(Z._sentMessages,1,{[E.ATTR_MESSAGING_SYSTEM]:E.MESSAGING_SYSTEM_VALUE_KAFKA,[E.ATTR_MESSAGING_OPERATION_NAME]:"send",[E.ATTR_MESSAGING_DESTINATION_NAME]:Y.topic,...z.partition!==void 0?{[E.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(z.partition)}:{}})),K=J.apply(this,$);return Z._endSpansOnPromise(X,W,K)}}}_endSpansOnPromise(Z,J,Q){return Promise.resolve(Q).then(($)=>{return J.forEach((Y)=>Y()),$}).catch(($)=>{let Y,X=T8.ERROR_TYPE_VALUE_OTHER;if(typeof $==="string"||$===void 0)Y=$;else if(typeof $==="object"&&Object.prototype.hasOwnProperty.call($,"message"))Y=$.message,X=$.constructor.name;throw J.forEach((W)=>W(X)),Z.forEach((W)=>{W.setAttribute(T8.ATTR_ERROR_TYPE,X),W.setStatus({code:Y0.SpanStatusCode.ERROR,message:Y})}),$}).finally(()=>{Z.forEach(($)=>$.end())})}_startConsumerSpan({topic:Z,message:J,operationType:Q,ctx:$,link:Y,attributes:X}){let W=Q===E.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE?"poll":Q,K=this.tracer.startSpan(`${W} ${Z}`,{kind:Q===E.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE?Y0.SpanKind.CLIENT:Y0.SpanKind.CONSUMER,attributes:{...X,[E.ATTR_MESSAGING_SYSTEM]:E.MESSAGING_SYSTEM_VALUE_KAFKA,[E.ATTR_MESSAGING_DESTINATION_NAME]:Z,[E.ATTR_MESSAGING_OPERATION_TYPE]:Q,[E.ATTR_MESSAGING_OPERATION_NAME]:W,[E.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]:J?.key?String(J.key):void 0,[E.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:J?.key&&J.value===null?!0:void 0,[E.ATTR_MESSAGING_KAFKA_OFFSET]:J?.offset},links:Y?[Y]:[]},$),{consumerHook:z}=this.getConfig();if(z&&J)(0,J9.safeExecuteInTheMiddle)(()=>z(K,{topic:Z,message:J}),(G)=>{if(G)this._diag.error("consumerHook error",G)},!0);return K}_startProducerSpan(Z,J){let Q=this.tracer.startSpan(`send ${Z}`,{kind:Y0.SpanKind.PRODUCER,attributes:{[E.ATTR_MESSAGING_SYSTEM]:E.MESSAGING_SYSTEM_VALUE_KAFKA,[E.ATTR_MESSAGING_DESTINATION_NAME]:Z,[E.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]:J.key?String(J.key):void 0,[E.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:J.key&&J.value===null?!0:void 0,[E.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:J.partition!==void 0?String(J.partition):void 0,[E.ATTR_MESSAGING_OPERATION_NAME]:"send",[E.ATTR_MESSAGING_OPERATION_TYPE]:E.MESSAGING_OPERATION_TYPE_VALUE_SEND}});J.headers=J.headers??{},Y0.propagation.inject(Y0.trace.setSpan(Y0.context.active(),Q),J.headers);let{producerHook:$}=this.getConfig();if($)(0,J9.safeExecuteInTheMiddle)(()=>$(Q,{topic:Z,message:J}),(Y)=>{if(Y)this._diag.error("producerHook error",Y)},!0);return Q}}dm.KafkaJsInstrumentation=gm});var um=w((NB)=>{Object.defineProperty(NB,"__esModule",{value:!0});NB.KafkaJsInstrumentation=void 0;var yM0=mm();Object.defineProperty(NB,"KafkaJsInstrumentation",{enumerable:!0,get:function(){return yM0.KafkaJsInstrumentation}})});var sm=w((nm)=>{Object.defineProperty(nm,"__esModule",{value:!0});nm.PACKAGE_NAME=nm.PACKAGE_VERSION=void 0;nm.PACKAGE_VERSION="0.57.0";nm.PACKAGE_NAME="@opentelemetry/instrumentation-lru-memoizer"});var $u=w((Ju)=>{Object.defineProperty(Ju,"__esModule",{value:!0});Ju.LruMemoizerInstrumentation=void 0;var rm=C(),tm=c(),em=sm();class Zu extends tm.InstrumentationBase{constructor(Z={}){super(em.PACKAGE_NAME,em.PACKAGE_VERSION,Z)}init(){return[new tm.InstrumentationNodeModuleDefinition("lru-memoizer",[">=1.3 <3"],(Z)=>{let J=function(){let Q=Z.apply(this,arguments);return function(){let $=[...arguments],Y=$.pop(),X=typeof Y==="function"?rm.context.bind(rm.context.active(),Y):Y;return $.push(X),Q.apply(this,$)}};return J.sync=Z.sync,J},void 0)]}}Ju.LruMemoizerInstrumentation=Zu});var Yu=w((TB)=>{Object.defineProperty(TB,"__esModule",{value:!0});TB.LruMemoizerInstrumentation=void 0;var vM0=$u();Object.defineProperty(TB,"LruMemoizerInstrumentation",{enumerable:!0,get:function(){return vM0.LruMemoizerInstrumentation}})});var Hu=w((Gu)=>{Object.defineProperty(Gu,"__esModule",{value:!0});Gu.METRIC_DB_CLIENT_CONNECTIONS_USAGE=Gu.DB_SYSTEM_VALUE_MONGODB=Gu.DB_SYSTEM_NAME_VALUE_MONGODB=Gu.ATTR_NET_PEER_PORT=Gu.ATTR_NET_PEER_NAME=Gu.ATTR_DB_SYSTEM=Gu.ATTR_DB_STATEMENT=Gu.ATTR_DB_OPERATION=Gu.ATTR_DB_NAME=Gu.ATTR_DB_MONGODB_COLLECTION=Gu.ATTR_DB_CONNECTION_STRING=void 0;Gu.ATTR_DB_CONNECTION_STRING="db.connection_string";Gu.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection";Gu.ATTR_DB_NAME="db.name";Gu.ATTR_DB_OPERATION="db.operation";Gu.ATTR_DB_STATEMENT="db.statement";Gu.ATTR_DB_SYSTEM="db.system";Gu.ATTR_NET_PEER_NAME="net.peer.name";Gu.ATTR_NET_PEER_PORT="net.peer.port";Gu.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb";Gu.DB_SYSTEM_VALUE_MONGODB="mongodb";Gu.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"});var Fu=w((Vu)=>{Object.defineProperty(Vu,"__esModule",{value:!0});Vu.MongodbCommandType=void 0;var aM0;(function(Z){Z.CREATE_INDEXES="createIndexes",Z.FIND_AND_MODIFY="findAndModify",Z.IS_MASTER="isMaster",Z.COUNT="count",Z.AGGREGATE="aggregate",Z.UNKNOWN="unknown"})(aM0=Vu.MongodbCommandType||(Vu.MongodbCommandType={}))});var Uu=w((wu)=>{Object.defineProperty(wu,"__esModule",{value:!0});wu.PACKAGE_NAME=wu.PACKAGE_VERSION=void 0;wu.PACKAGE_VERSION="0.66.0";wu.PACKAGE_NAME="@opentelemetry/instrumentation-mongodb"});var Cu=w((Lu)=>{Object.defineProperty(Lu,"__esModule",{value:!0});Lu.MongoDBInstrumentation=void 0;var V0=C(),e=c(),HZ=s(),b6=Hu(),K1=Fu(),ju=Uu(),qu={requireParentSpan:!0};class EB extends e.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(Z={}){super(ju.PACKAGE_NAME,ju.PACKAGE_VERSION,{...qu,...Z});this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,e.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,e.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(Z={}){super.setConfig({...qu,...Z})}_updateMetricInstruments(){this._connectionsUsage=this.meter.createUpDownCounter(b6.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(Z,J,Q){this._connectionsUsage?.add(Z,{"pool.name":J,state:Q})}init(){let{v3PatchConnection:Z,v3UnpatchConnection:J}=this._getV3ConnectionPatches(),{v4PatchConnect:Q,v4UnpatchConnect:$}=this._getV4ConnectPatches(),{v4PatchConnectionCallback:Y,v4PatchConnectionPromise:X,v4UnpatchConnection:W}=this._getV4ConnectionPatches(),{v4PatchConnectionPool:K,v4UnpatchConnectionPool:z}=this._getV4ConnectionPoolPatches(),{v4PatchSessions:G,v4UnpatchSessions:H}=this._getV4SessionsPatches();return[new e.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new e.InstrumentationNodeModuleFile("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],Z,J)]),new e.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <8"],void 0,void 0,[new e.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],Y,W),new e.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=6.4.0 <8"],X,W),new e.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],K,z),new e.InstrumentationNodeModuleFile("mongodb/lib/cmap/connect.js",[">=4.0.0 <8"],Q,$),new e.InstrumentationNodeModuleFile("mongodb/lib/sessions.js",[">=4.0.0 <8"],G,H)])]}_getV3ConnectionPatches(){return{v3PatchConnection:(Z)=>{if((0,e.isWrapped)(Z.insert))this._unwrap(Z,"insert");if(this._wrap(Z,"insert",this._getV3PatchOperation("insert")),(0,e.isWrapped)(Z.remove))this._unwrap(Z,"remove");if(this._wrap(Z,"remove",this._getV3PatchOperation("remove")),(0,e.isWrapped)(Z.update))this._unwrap(Z,"update");if(this._wrap(Z,"update",this._getV3PatchOperation("update")),(0,e.isWrapped)(Z.command))this._unwrap(Z,"command");if(this._wrap(Z,"command",this._getV3PatchCommand()),(0,e.isWrapped)(Z.query))this._unwrap(Z,"query");if(this._wrap(Z,"query",this._getV3PatchFind()),(0,e.isWrapped)(Z.getMore))this._unwrap(Z,"getMore");return this._wrap(Z,"getMore",this._getV3PatchCursor()),Z},v3UnpatchConnection:(Z)=>{if(Z===void 0)return;this._unwrap(Z,"insert"),this._unwrap(Z,"remove"),this._unwrap(Z,"update"),this._unwrap(Z,"command"),this._unwrap(Z,"query"),this._unwrap(Z,"getMore")}}}_getV4SessionsPatches(){return{v4PatchSessions:(Z)=>{if((0,e.isWrapped)(Z.acquire))this._unwrap(Z,"acquire");if(this._wrap(Z.ServerSessionPool.prototype,"acquire",this._getV4AcquireCommand()),(0,e.isWrapped)(Z.release))this._unwrap(Z,"release");return this._wrap(Z.ServerSessionPool.prototype,"release",this._getV4ReleaseCommand()),Z},v4UnpatchSessions:(Z)=>{if(Z===void 0)return;if((0,e.isWrapped)(Z.acquire))this._unwrap(Z,"acquire");if((0,e.isWrapped)(Z.release))this._unwrap(Z,"release")}}}_getV4AcquireCommand(){let Z=this;return(J)=>{return function(){let $=this.sessions.length,Y=J.call(this),X=this.sessions.length;if($===X)Z._connCountAdd(1,Z._poolName,"used");else if($-1===X)Z._connCountAdd(-1,Z._poolName,"idle"),Z._connCountAdd(1,Z._poolName,"used");return Y}}}_getV4ReleaseCommand(){let Z=this;return(J)=>{return function($){let Y=J.call(this,$);return Z._connCountAdd(-1,Z._poolName,"used"),Z._connCountAdd(1,Z._poolName,"idle"),Y}}}_getV4ConnectionPoolPatches(){return{v4PatchConnectionPool:(Z)=>{let J=Z.ConnectionPool.prototype;if((0,e.isWrapped)(J.checkOut))this._unwrap(J,"checkOut");return this._wrap(J,"checkOut",this._getV4ConnectionPoolCheckOut()),Z},v4UnpatchConnectionPool:(Z)=>{if(Z===void 0)return;this._unwrap(Z.ConnectionPool.prototype,"checkOut")}}}_getV4ConnectPatches(){return{v4PatchConnect:(Z)=>{if((0,e.isWrapped)(Z.connect))this._unwrap(Z,"connect");return this._wrap(Z,"connect",this._getV4ConnectCommand()),Z},v4UnpatchConnect:(Z)=>{if(Z===void 0)return;this._unwrap(Z,"connect")}}}_getV4ConnectionPoolCheckOut(){return(Z)=>{return function(Q){let $=V0.context.bind(V0.context.active(),Q);return Z.call(this,$)}}}_getV4ConnectCommand(){let Z=this;return(J)=>{return function($,Y){if(J.length===1){let W=J.call(this,$);if(W&&typeof W.then==="function")W.then(()=>Z.setPoolName($),()=>{return});return W}let X=function(W,K){if(W||!K){Y(W,K);return}Z.setPoolName($),Y(W,K)};return J.call(this,$,X)}}}_getV4ConnectionPatches(){return{v4PatchConnectionCallback:(Z)=>{if((0,e.isWrapped)(Z.Connection.prototype.command))this._unwrap(Z.Connection.prototype,"command");return this._wrap(Z.Connection.prototype,"command",this._getV4PatchCommandCallback()),Z},v4PatchConnectionPromise:(Z)=>{if((0,e.isWrapped)(Z.Connection.prototype.command))this._unwrap(Z.Connection.prototype,"command");return this._wrap(Z.Connection.prototype,"command",this._getV4PatchCommandPromise()),Z},v4UnpatchConnection:(Z)=>{if(Z===void 0)return;this._unwrap(Z.Connection.prototype,"command")}}}_getV3PatchOperation(Z){let J=this;return(Q)=>{return function(Y,X,W,K,z){let G=V0.trace.getSpan(V0.context.active()),H=J._checkSkipInstrumentation(G),B=typeof K==="function"?K:z;if(H||typeof B!=="function"||typeof W!=="object")if(typeof K==="function")return Q.call(this,Y,X,W,K);else return Q.call(this,Y,X,W,K,z);let V=J._getV3SpanAttributes(X,Y,W[0],Z),F=J._spanNameFromAttrs(V),D=J.tracer.startSpan(F,{kind:V0.SpanKind.CLIENT,attributes:V}),U=J._patchEnd(D,B);if(typeof K==="function")return Q.call(this,Y,X,W,U);else return Q.call(this,Y,X,W,K,U)}}}_getV3PatchCommand(){let Z=this;return(J)=>{return function($,Y,X,W,K){let z=V0.trace.getSpan(V0.context.active()),G=Z._checkSkipInstrumentation(z),H=typeof W==="function"?W:K;if(G||typeof H!=="function"||typeof X!=="object")if(typeof W==="function")return J.call(this,$,Y,X,W);else return J.call(this,$,Y,X,W,K);let B=EB._getCommandType(X),V=B===K1.MongodbCommandType.UNKNOWN?void 0:B,F=Z._getV3SpanAttributes(Y,$,X,V),D=Z._spanNameFromAttrs(F),U=Z.tracer.startSpan(D,{kind:V0.SpanKind.CLIENT,attributes:F}),j=Z._patchEnd(U,H);if(typeof W==="function")return J.call(this,$,Y,X,j);else return J.call(this,$,Y,X,W,j)}}}_getV4PatchCommandCallback(){let Z=this;return(J)=>{return function($,Y,X,W){let K=V0.trace.getSpan(V0.context.active()),z=Z._checkSkipInstrumentation(K),G=W,H=Object.keys(Y)[0];if(typeof Y!=="object"||Y.ismaster||Y.hello)return J.call(this,$,Y,X,W);let B=void 0;if(!z){let F=Z._getV4SpanAttributes(this,$,Y,H),D=Z._spanNameFromAttrs(F);B=Z.tracer.startSpan(D,{kind:V0.SpanKind.CLIENT,attributes:F})}let V=Z._patchEnd(B,G,this.id,H);return J.call(this,$,Y,X,V)}}}_getV4PatchCommandPromise(){let Z=this;return(J)=>{return function(...$){let[Y,X]=$,W=V0.trace.getSpan(V0.context.active()),K=Z._checkSkipInstrumentation(W),z=Object.keys(X)[0],G=()=>{return};if(typeof X!=="object"||X.ismaster||X.hello)return J.apply(this,$);let H=void 0;if(!K){let F=Z._getV4SpanAttributes(this,Y,X,z),D=Z._spanNameFromAttrs(F);H=Z.tracer.startSpan(D,{kind:V0.SpanKind.CLIENT,attributes:F})}let B=Z._patchEnd(H,G,this.id,z),V=J.apply(this,$);return V.then((F)=>B(null,F),(F)=>B(F)),V}}}_getV3PatchFind(){let Z=this;return(J)=>{return function($,Y,X,W,K,z){let G=V0.trace.getSpan(V0.context.active()),H=Z._checkSkipInstrumentation(G),B=typeof K==="function"?K:z;if(H||typeof B!=="function"||typeof X!=="object")if(typeof K==="function")return J.call(this,$,Y,X,W,K);else return J.call(this,$,Y,X,W,K,z);let V=Z._getV3SpanAttributes(Y,$,X,"find"),F=Z._spanNameFromAttrs(V),D=Z.tracer.startSpan(F,{kind:V0.SpanKind.CLIENT,attributes:V}),U=Z._patchEnd(D,B);if(typeof K==="function")return J.call(this,$,Y,X,W,U);else return J.call(this,$,Y,X,W,K,U)}}}_getV3PatchCursor(){let Z=this;return(J)=>{return function($,Y,X,W,K,z){let G=V0.trace.getSpan(V0.context.active()),H=Z._checkSkipInstrumentation(G),B=typeof K==="function"?K:z;if(H||typeof B!=="function")if(typeof K==="function")return J.call(this,$,Y,X,W,K);else return J.call(this,$,Y,X,W,K,z);let V=Z._getV3SpanAttributes(Y,$,X.cmd,"getMore"),F=Z._spanNameFromAttrs(V),D=Z.tracer.startSpan(F,{kind:V0.SpanKind.CLIENT,attributes:V}),U=Z._patchEnd(D,B);if(typeof K==="function")return J.call(this,$,Y,X,W,U);else return J.call(this,$,Y,X,W,K,U)}}}static _getCommandType(Z){if(Z.createIndexes!==void 0)return K1.MongodbCommandType.CREATE_INDEXES;else if(Z.findandmodify!==void 0)return K1.MongodbCommandType.FIND_AND_MODIFY;else if(Z.ismaster!==void 0)return K1.MongodbCommandType.IS_MASTER;else if(Z.count!==void 0)return K1.MongodbCommandType.COUNT;else if(Z.aggregate!==void 0)return K1.MongodbCommandType.AGGREGATE;else return K1.MongodbCommandType.UNKNOWN}_getV4SpanAttributes(Z,J,Q,$){let Y,X;if(Z){let K=typeof Z.address==="string"?Z.address.split(":"):"";if(K.length===2)Y=K[0],X=K[1]}let W;if(Q?.documents&&Q.documents[0])W=Q.documents[0];else if(Q?.cursors)W=Q.cursors;else W=Q;return this._getSpanAttributes(J.db,J.collection,Y,X,W,$)}_getV3SpanAttributes(Z,J,Q,$){let Y,X;if(J&&J.s){if(Y=J.s.options?.host??J.s.host,X=(J.s.options?.port??J.s.port)?.toString(),Y==null||X==null){let G=J.description?.address;if(G){let H=G.split(":");Y=H[0],X=H[1]}}}let[W,K]=Z.toString().split("."),z=Q?.query??Q?.q??Q;return this._getSpanAttributes(W,K,Y,X,z,$)}_getSpanAttributes(Z,J,Q,$,Y,X){let W={};if(this._dbSemconvStability&e.SemconvStability.OLD)W[b6.ATTR_DB_SYSTEM]=b6.DB_SYSTEM_VALUE_MONGODB,W[b6.ATTR_DB_NAME]=Z,W[b6.ATTR_DB_MONGODB_COLLECTION]=J,W[b6.ATTR_DB_OPERATION]=X,W[b6.ATTR_DB_CONNECTION_STRING]=`mongodb://${Q}:${$}/${Z}`;if(this._dbSemconvStability&e.SemconvStability.STABLE)W[HZ.ATTR_DB_SYSTEM_NAME]=b6.DB_SYSTEM_NAME_VALUE_MONGODB,W[HZ.ATTR_DB_NAMESPACE]=Z,W[HZ.ATTR_DB_OPERATION_NAME]=X,W[HZ.ATTR_DB_COLLECTION_NAME]=J;if(Q&&$){if(this._netSemconvStability&e.SemconvStability.OLD)W[b6.ATTR_NET_PEER_NAME]=Q;if(this._netSemconvStability&e.SemconvStability.STABLE)W[HZ.ATTR_SERVER_ADDRESS]=Q;let K=parseInt($,10);if(!isNaN(K)){if(this._netSemconvStability&e.SemconvStability.OLD)W[b6.ATTR_NET_PEER_PORT]=K;if(this._netSemconvStability&e.SemconvStability.STABLE)W[HZ.ATTR_SERVER_PORT]=K}}if(Y){let{dbStatementSerializer:K}=this.getConfig(),z=typeof K==="function"?K:this._defaultDbStatementSerializer.bind(this);(0,e.safeExecuteInTheMiddle)(()=>{let G=z(Y);if(this._dbSemconvStability&e.SemconvStability.OLD)W[b6.ATTR_DB_STATEMENT]=G;if(this._dbSemconvStability&e.SemconvStability.STABLE)W[HZ.ATTR_DB_QUERY_TEXT]=G},(G)=>{if(G)this._diag.error("Error running dbStatementSerializer hook",G)},!0)}return W}_spanNameFromAttrs(Z){let J;if(this._dbSemconvStability&e.SemconvStability.STABLE)J=[Z[HZ.ATTR_DB_OPERATION_NAME],Z[HZ.ATTR_DB_COLLECTION_NAME]].filter((Q)=>Q).join(" ")||b6.DB_SYSTEM_NAME_VALUE_MONGODB;else J=`mongodb.${Z[b6.ATTR_DB_OPERATION]||"command"}`;return J}_getDefaultDbStatementReplacer(){let Z=new WeakSet;return(J,Q)=>{if(typeof Q!=="object"||!Q)return"?";if(Z.has(Q))return"[Circular]";return Z.add(Q),Q}}_defaultDbStatementSerializer(Z){let{enhancedDatabaseReporting:J}=this.getConfig();if(J)return JSON.stringify(Z);return JSON.stringify(Z,this._getDefaultDbStatementReplacer())}_handleExecutionResult(Z,J){let{responseHook:Q}=this.getConfig();if(typeof Q==="function")(0,e.safeExecuteInTheMiddle)(()=>{Q(Z,{data:J})},($)=>{if($)this._diag.error("Error running response hook",$)},!0)}_patchEnd(Z,J,Q,$){let Y=V0.context.active(),X=this,W=!1;return function(...z){if(!W){W=!0;let G=z[0];if(Z){if(G instanceof Error)Z.setStatus({code:V0.SpanStatusCode.ERROR,message:G.message});else{let H=z[1];X._handleExecutionResult(Z,H)}Z.end()}if($==="endSessions")X._connCountAdd(-1,X._poolName,"idle")}return V0.context.with(Y,()=>{return J.apply(this,z)})}}setPoolName(Z){let J=Z.hostAddress?.host,Q=Z.hostAddress?.port,$=Z.dbName,Y=`mongodb://${J}:${Q}/${$}`;this._poolName=Y}_checkSkipInstrumentation(Z){return this.getConfig().requireParentSpan===!0&&Z===void 0}}Lu.MongoDBInstrumentation=EB});var ku=w((Pu)=>{Object.defineProperty(Pu,"__esModule",{value:!0});Pu.MongodbCommandType=void 0;var rM0;(function(Z){Z.CREATE_INDEXES="createIndexes",Z.FIND_AND_MODIFY="findAndModify",Z.IS_MASTER="isMaster",Z.COUNT="count",Z.UNKNOWN="unknown"})(rM0=Pu.MongodbCommandType||(Pu.MongodbCommandType={}))});var Mu=w((F3)=>{Object.defineProperty(F3,"__esModule",{value:!0});F3.MongodbCommandType=F3.MongoDBInstrumentation=void 0;var tM0=Cu();Object.defineProperty(F3,"MongoDBInstrumentation",{enumerable:!0,get:function(){return tM0.MongoDBInstrumentation}});var eM0=ku();Object.defineProperty(F3,"MongodbCommandType",{enumerable:!0,get:function(){return eM0.MongodbCommandType}})});var SB=w((Tu)=>{Object.defineProperty(Tu,"__esModule",{value:!0});Tu.DB_SYSTEM_NAME_VALUE_MONGODB=Tu.ATTR_NET_PEER_PORT=Tu.ATTR_NET_PEER_NAME=Tu.ATTR_DB_USER=Tu.ATTR_DB_SYSTEM=Tu.ATTR_DB_STATEMENT=Tu.ATTR_DB_OPERATION=Tu.ATTR_DB_NAME=Tu.ATTR_DB_MONGODB_COLLECTION=void 0;Tu.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection";Tu.ATTR_DB_NAME="db.name";Tu.ATTR_DB_OPERATION="db.operation";Tu.ATTR_DB_STATEMENT="db.statement";Tu.ATTR_DB_SYSTEM="db.system";Tu.ATTR_DB_USER="db.user";Tu.ATTR_NET_PEER_NAME="net.peer.name";Tu.ATTR_NET_PEER_PORT="net.peer.port";Tu.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb"});var _u=w((hu)=>{Object.defineProperty(hu,"__esModule",{value:!0});hu.handleCallbackResponse=hu.handlePromiseResponse=hu.getAttributesFromCollection=void 0;var Eu=C(),r4=c(),s4=SB(),w3=s();function wR0(Z,J,Q){let $={};if(J&r4.SemconvStability.OLD)$[s4.ATTR_DB_MONGODB_COLLECTION]=Z.name,$[s4.ATTR_DB_NAME]=Z.conn.name,$[s4.ATTR_DB_USER]=Z.conn.user;if(J&r4.SemconvStability.STABLE)$[w3.ATTR_DB_COLLECTION_NAME]=Z.name,$[w3.ATTR_DB_NAMESPACE]=Z.conn.name;if(Q&r4.SemconvStability.OLD)$[s4.ATTR_NET_PEER_NAME]=Z.conn.host,$[s4.ATTR_NET_PEER_PORT]=Z.conn.port;if(Q&r4.SemconvStability.STABLE)$[w3.ATTR_SERVER_ADDRESS]=Z.conn.host,$[w3.ATTR_SERVER_PORT]=Z.conn.port;return $}hu.getAttributesFromCollection=wR0;function yu(Z,J={}){Z.recordException(J),Z.setStatus({code:Eu.SpanStatusCode.ERROR,message:`${J.message} ${J.code?` -Mongoose Error Code: ${J.code}`:""}`})}function _B(Z,J,Q,$=void 0){if(!Q)return;(0,r4.safeExecuteInTheMiddle)(()=>Q(Z,{moduleVersion:$,response:J}),(Y)=>{if(Y)Eu.diag.error("mongoose instrumentation: responseHook error",Y)},!0)}function DR0(Z,J,Q,$=void 0){if(!(Z instanceof Promise))return _B(J,Z,Q,$),J.end(),Z;return Z.then((Y)=>{return _B(J,Y,Q,$),Y}).catch((Y)=>{throw yu(J,Y),Y}).finally(()=>J.end())}hu.handlePromiseResponse=DR0;function UR0(Z,J,Q,$,Y,X,W=void 0){let K=0;if(Y.length===2)K=1;else if(Y.length===3)K=2;return Y[K]=(z,G)=>{if(z)yu($,z);else _B($,G,X,W);return $.end(),Z(z,G)},J.apply(Q,Y)}hu.handleCallbackResponse=UR0});var xu=w((vu)=>{Object.defineProperty(vu,"__esModule",{value:!0});vu.PACKAGE_NAME=vu.PACKAGE_VERSION=void 0;vu.PACKAGE_VERSION="0.59.0";vu.PACKAGE_NAME="@opentelemetry/instrumentation-mongoose"});var iu=w((lu)=>{Object.defineProperty(lu,"__esModule",{value:!0});lu.MongooseInstrumentation=lu._ALREADY_INSTRUMENTED=lu._STORED_PARENT_SPAN=void 0;var E0=C(),OR0=Q0(),vB=_u(),p0=c(),gu=xu(),eZ=SB(),z1=s(),D3=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],CR0=["remove","count","findOneAndRemove",...D3],PR0=["count","findOneAndRemove",...D3],kR0=[...D3];function du(Z){if(!Z)return D3;else if(Z.startsWith("6.")||Z.startsWith("5."))return CR0;else if(Z.startsWith("7."))return PR0;else return kR0}function cu(Z){return Z&&(Z.startsWith("5.")||Z.startsWith("6."))||!1}function mu(Z){if(!Z||!Z.startsWith("8."))return!1;return parseInt(Z.split(".")[1],10)>=21}lu._STORED_PARENT_SPAN=Symbol("stored-parent-span");lu._ALREADY_INSTRUMENTED=Symbol("already-instrumented");class uu extends p0.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(Z={}){super(gu.PACKAGE_NAME,gu.PACKAGE_VERSION,Z);this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,p0.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,p0.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new p0.InstrumentationNodeModuleDefinition("mongoose",[">=5.9.7 <10"],this.patch.bind(this),this.unpatch.bind(this))}patch(Z,J){let Q=Z[Symbol.toStringTag]==="Module"?Z.default:Z;if(this._wrap(Q.Model.prototype,"save",this.patchOnModelMethods("save",J)),Q.Model.prototype.$save=Q.Model.prototype.save,cu(J))this._wrap(Q.Model.prototype,"remove",this.patchOnModelMethods("remove",J));if(mu(J))this._wrap(Q.Model.prototype,"updateOne",this._patchDocumentUpdateMethods("updateOne",J)),this._wrap(Q.Model.prototype,"deleteOne",this._patchDocumentUpdateMethods("deleteOne",J));return this._wrap(Q.Query.prototype,"exec",this.patchQueryExec(J)),this._wrap(Q.Aggregate.prototype,"exec",this.patchAggregateExec(J)),du(J).forEach((Y)=>{this._wrap(Q.Query.prototype,Y,this.patchAndCaptureSpanContext(Y))}),this._wrap(Q.Model,"aggregate",this.patchModelAggregate()),this._wrap(Q.Model,"insertMany",this.patchModelStatic("insertMany",J)),this._wrap(Q.Model,"bulkWrite",this.patchModelStatic("bulkWrite",J)),Q}unpatch(Z,J){let Q=Z[Symbol.toStringTag]==="Module"?Z.default:Z,$=du(J);if(this._unwrap(Q.Model.prototype,"save"),Q.Model.prototype.$save=Q.Model.prototype.save,cu(J))this._unwrap(Q.Model.prototype,"remove");if(mu(J))this._unwrap(Q.Model.prototype,"updateOne"),this._unwrap(Q.Model.prototype,"deleteOne");this._unwrap(Q.Query.prototype,"exec"),this._unwrap(Q.Aggregate.prototype,"exec"),$.forEach((Y)=>{this._unwrap(Q.Query.prototype,Y)}),this._unwrap(Q.Model,"aggregate"),this._unwrap(Q.Model,"insertMany"),this._unwrap(Q.Model,"bulkWrite")}patchAggregateExec(Z){let J=this;return(Q)=>{return function(Y){if(J.getConfig().requireParentSpan&&E0.trace.getSpan(E0.context.active())===void 0)return Q.apply(this,arguments);let X=this[lu._STORED_PARENT_SPAN],W={},{dbStatementSerializer:K}=J.getConfig();if(K){let G=K("aggregate",{options:this.options,aggregatePipeline:this._pipeline});if(J._dbSemconvStability&p0.SemconvStability.OLD)W[eZ.ATTR_DB_STATEMENT]=G;if(J._dbSemconvStability&p0.SemconvStability.STABLE)W[z1.ATTR_DB_QUERY_TEXT]=G}let z=J._startSpan(this._model.collection,this._model?.modelName,"aggregate",W,X);return J._handleResponse(z,Q,this,arguments,Y,Z)}}}patchQueryExec(Z){let J=this;return(Q)=>{return function(Y){if(this[lu._ALREADY_INSTRUMENTED])return Q.apply(this,arguments);if(J.getConfig().requireParentSpan&&E0.trace.getSpan(E0.context.active())===void 0)return Q.apply(this,arguments);let X=this[lu._STORED_PARENT_SPAN],W={},{dbStatementSerializer:K}=J.getConfig();if(K){let G=K(this.op,{condition:this.getFilter?.()??this._conditions,updates:this._update,options:this.getOptions?.()??this.options,fields:this._fields});if(J._dbSemconvStability&p0.SemconvStability.OLD)W[eZ.ATTR_DB_STATEMENT]=G;if(J._dbSemconvStability&p0.SemconvStability.STABLE)W[z1.ATTR_DB_QUERY_TEXT]=G}let z=J._startSpan(this.mongooseCollection,this.model.modelName,this.op,W,X);return J._handleResponse(z,Q,this,arguments,Y,Z)}}}patchOnModelMethods(Z,J){let Q=this;return($)=>{return function(X,W){if(Q.getConfig().requireParentSpan&&E0.trace.getSpan(E0.context.active())===void 0)return $.apply(this,arguments);let K={document:this};if(X&&!(X instanceof Function))K.options=X;let z={},{dbStatementSerializer:G}=Q.getConfig();if(G){let B=G(Z,K);if(Q._dbSemconvStability&p0.SemconvStability.OLD)z[eZ.ATTR_DB_STATEMENT]=B;if(Q._dbSemconvStability&p0.SemconvStability.STABLE)z[z1.ATTR_DB_QUERY_TEXT]=B}let H=Q._startSpan(this.constructor.collection,this.constructor.modelName,Z,z);if(X instanceof Function)W=X,X=void 0;return Q._handleResponse(H,$,this,arguments,W,J)}}}_patchDocumentUpdateMethods(Z,J){let Q=this;return($)=>{return function(X,W,K){if(Q.getConfig().requireParentSpan&&E0.trace.getSpan(E0.context.active())===void 0)return $.apply(this,arguments);let z=K,G=X,H=W;if(typeof X==="function")z=X,G=void 0,H=void 0;else if(typeof W==="function")z=W,H=void 0;let B={},V=Q.getConfig().dbStatementSerializer;if(V){let U=V(Z,{condition:{_id:this._id},updates:G,options:H});if(Q._dbSemconvStability&p0.SemconvStability.OLD)B[eZ.ATTR_DB_STATEMENT]=U;if(Q._dbSemconvStability&p0.SemconvStability.STABLE)B[z1.ATTR_DB_QUERY_TEXT]=U}let F=Q._startSpan(this.constructor.collection,this.constructor.modelName,Z,B),D=Q._handleResponse(F,$,this,arguments,z,J);if(D&&typeof D==="object")D[lu._ALREADY_INSTRUMENTED]=!0;return D}}}patchModelStatic(Z,J){let Q=this;return($)=>{return function(X,W,K){if(Q.getConfig().requireParentSpan&&E0.trace.getSpan(E0.context.active())===void 0)return $.apply(this,arguments);if(typeof W==="function")K=W,W=void 0;let z={};switch(Z){case"insertMany":z.documents=X;break;case"bulkWrite":z.operations=X;break;default:z.document=X;break}if(W!==void 0)z.options=W;let G={},{dbStatementSerializer:H}=Q.getConfig();if(H){let V=H(Z,z);if(Q._dbSemconvStability&p0.SemconvStability.OLD)G[eZ.ATTR_DB_STATEMENT]=V;if(Q._dbSemconvStability&p0.SemconvStability.STABLE)G[z1.ATTR_DB_QUERY_TEXT]=V}let B=Q._startSpan(this.collection,this.modelName,Z,G);return Q._handleResponse(B,$,this,arguments,K,J)}}}patchModelAggregate(){let Z=this;return(J)=>{return function(){let $=E0.trace.getSpan(E0.context.active()),Y=Z._callOriginalFunction(()=>J.apply(this,arguments));if(Y)Y[lu._STORED_PARENT_SPAN]=$;return Y}}}patchAndCaptureSpanContext(Z){let J=this;return(Q)=>{return function(){return this[lu._STORED_PARENT_SPAN]=E0.trace.getSpan(E0.context.active()),J._callOriginalFunction(()=>Q.apply(this,arguments))}}}_startSpan(Z,J,Q,$,Y){let X={...$,...(0,vB.getAttributesFromCollection)(Z,this._dbSemconvStability,this._netSemconvStability)};if(this._dbSemconvStability&p0.SemconvStability.OLD)X[eZ.ATTR_DB_OPERATION]=Q,X[eZ.ATTR_DB_SYSTEM]="mongoose";if(this._dbSemconvStability&p0.SemconvStability.STABLE)X[z1.ATTR_DB_OPERATION_NAME]=Q,X[z1.ATTR_DB_SYSTEM_NAME]=eZ.DB_SYSTEM_NAME_VALUE_MONGODB;let W=this._dbSemconvStability&p0.SemconvStability.STABLE?`${Q} ${Z.name}`:`mongoose.${J}.${Q}`;return this.tracer.startSpan(W,{kind:E0.SpanKind.CLIENT,attributes:X},Y?E0.trace.setSpan(E0.context.active(),Y):void 0)}_handleResponse(Z,J,Q,$,Y,X=void 0){let W=this;if(Y instanceof Function)return W._callOriginalFunction(()=>(0,vB.handleCallbackResponse)(Y,J,Q,Z,$,W.getConfig().responseHook,X));else{let K=W._callOriginalFunction(()=>J.apply(Q,$));return(0,vB.handlePromiseResponse)(K,Z,W.getConfig().responseHook,X)}}_callOriginalFunction(Z){if(this.getConfig().suppressInternalInstrumentation)return E0.context.with((0,OR0.suppressTracing)(E0.context.active()),Z);else return Z()}}lu.MongooseInstrumentation=uu});var ou=w((xB)=>{Object.defineProperty(xB,"__esModule",{value:!0});xB.MongooseInstrumentation=void 0;var MR0=iu();Object.defineProperty(xB,"MongooseInstrumentation",{enumerable:!0,get:function(){return MR0.MongooseInstrumentation}})});var Zl=w((tu)=>{Object.defineProperty(tu,"__esModule",{value:!0});tu.METRIC_DB_CLIENT_CONNECTIONS_USAGE=tu.DB_SYSTEM_VALUE_MYSQL=tu.ATTR_NET_PEER_PORT=tu.ATTR_NET_PEER_NAME=tu.ATTR_DB_USER=tu.ATTR_DB_SYSTEM=tu.ATTR_DB_STATEMENT=tu.ATTR_DB_NAME=tu.ATTR_DB_CONNECTION_STRING=void 0;tu.ATTR_DB_CONNECTION_STRING="db.connection_string";tu.ATTR_DB_NAME="db.name";tu.ATTR_DB_STATEMENT="db.statement";tu.ATTR_DB_SYSTEM="db.system";tu.ATTR_DB_USER="db.user";tu.ATTR_NET_PEER_NAME="net.peer.name";tu.ATTR_NET_PEER_PORT="net.peer.port";tu.DB_SYSTEM_VALUE_MYSQL="mysql";tu.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"});var Ql=w((Jl)=>{Object.defineProperty(Jl,"__esModule",{value:!0});Jl.AttributeNames=void 0;var _R0;(function(Z){Z.MYSQL_VALUES="db.mysql.values"})(_R0=Jl.AttributeNames||(Jl.AttributeNames={}))});var Xl=w(($l)=>{Object.defineProperty($l,"__esModule",{value:!0});$l.getPoolNameOld=$l.arrayStringifyHelper=$l.getSpanName=$l.getDbValues=$l.getDbQueryText=$l.getJDBCString=$l.getConfig=void 0;function vR0(Z){let{host:J,port:Q,database:$,user:Y}=Z&&Z.connectionConfig||Z||{};return{host:J,port:Q,database:$,user:Y}}$l.getConfig=vR0;function bR0(Z,J,Q){let $=`jdbc:mysql://${Z||"localhost"}`;if(typeof J==="number")$+=`:${J}`;if(typeof Q==="string")$+=`/${Q}`;return $}$l.getJDBCString=bR0;function xR0(Z){if(typeof Z==="string")return Z;else return Z.sql}$l.getDbQueryText=xR0;function gR0(Z,J){if(typeof Z==="string")return dB(J);else return dB(J||Z.values)}$l.getDbValues=gR0;function dR0(Z){let J=typeof Z==="object"?Z.sql:Z,Q=J?.indexOf(" ");if(typeof Q==="number"&&Q!==-1)return J?.substring(0,Q);return J}$l.getSpanName=dR0;function dB(Z){if(Z)return`[${Z.toString()}]`;return""}$l.arrayStringifyHelper=dB;function cR0(Z){let J=Z.config.connectionConfig,Q="";if(Q+=J.host?`host: '${J.host}', `:"",Q+=J.port?`port: ${J.port}, `:"",Q+=J.database?`database: '${J.database}', `:"",Q+=J.user?`user: '${J.user}'`:"",!J.user)Q=Q.substring(0,Q.length-2);return Q.trim()}$l.getPoolNameOld=cR0});var zl=w((Wl)=>{Object.defineProperty(Wl,"__esModule",{value:!0});Wl.PACKAGE_NAME=Wl.PACKAGE_VERSION=void 0;Wl.PACKAGE_VERSION="0.59.0";Wl.PACKAGE_NAME="@opentelemetry/instrumentation-mysql"});var Fl=w((Hl)=>{Object.defineProperty(Hl,"__esModule",{value:!0});Hl.MySQLInstrumentation=void 0;var C6=C(),Q9=c(),f8=s(),VZ=Zl(),aR0=Ql(),G1=Xl(),Gl=zl();class Bl extends Q9.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(Z={}){super(Gl.PACKAGE_NAME,Gl.PACKAGE_VERSION,Z);this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,Q9.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,Q9.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._connectionsUsageOld=this.meter.createUpDownCounter(VZ.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(Z,J,Q){this._connectionsUsageOld?.add(Z,{state:Q,name:J})}init(){return[new Q9.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],(Z)=>{if((0,Q9.isWrapped)(Z.createConnection))this._unwrap(Z,"createConnection");if(this._wrap(Z,"createConnection",this._patchCreateConnection()),(0,Q9.isWrapped)(Z.createPool))this._unwrap(Z,"createPool");if(this._wrap(Z,"createPool",this._patchCreatePool()),(0,Q9.isWrapped)(Z.createPoolCluster))this._unwrap(Z,"createPoolCluster");return this._wrap(Z,"createPoolCluster",this._patchCreatePoolCluster()),Z},(Z)=>{if(Z===void 0)return;this._unwrap(Z,"createConnection"),this._unwrap(Z,"createPool"),this._unwrap(Z,"createPoolCluster")})]}_patchCreateConnection(){return(Z)=>{let J=this;return function($){let Y=Z(...arguments);return J._wrap(Y,"query",J._patchQuery(Y)),Y}}}_patchCreatePool(){return(Z)=>{let J=this;return function($){let Y=Z(...arguments);return J._wrap(Y,"query",J._patchQuery(Y)),J._wrap(Y,"getConnection",J._patchGetConnection(Y)),J._wrap(Y,"end",J._patchPoolEnd(Y)),J._setPoolCallbacks(Y,""),Y}}}_patchPoolEnd(Z){return(J)=>{let Q=this;return function(Y){let X=Z._allConnections.length,W=Z._freeConnections.length,K=X-W,z=(0,G1.getPoolNameOld)(Z);Q._connCountAdd(-K,z,"used"),Q._connCountAdd(-W,z,"idle"),J.apply(Z,arguments)}}}_patchCreatePoolCluster(){return(Z)=>{let J=this;return function($){let Y=Z(...arguments);return J._wrap(Y,"getConnection",J._patchGetConnection(Y)),J._wrap(Y,"add",J._patchAdd(Y)),Y}}}_patchAdd(Z){return(J)=>{let Q=this;return function(Y,X){if(!Q._enabled)return Q._unwrap(Z,"add"),J.apply(Z,arguments);J.apply(Z,arguments);let W=Z._nodes;if(W){let K=typeof Y==="object"?"CLUSTER::"+Z._lastId:String(Y),z=W[K].pool;Q._setPoolCallbacks(z,Y)}}}}_patchGetConnection(Z){return(J)=>{let Q=this;return function(Y,X,W){if(!Q._enabled)return Q._unwrap(Z,"getConnection"),J.apply(Z,arguments);if(arguments.length===1&&typeof Y==="function"){let K=Q._getConnectionCallbackPatchFn(Y);return J.call(Z,K)}if(arguments.length===2&&typeof X==="function"){let K=Q._getConnectionCallbackPatchFn(X);return J.call(Z,Y,K)}if(arguments.length===3&&typeof W==="function"){let K=Q._getConnectionCallbackPatchFn(W);return J.call(Z,Y,X,K)}return J.apply(Z,arguments)}}}_getConnectionCallbackPatchFn(Z){let J=this,Q=C6.context.active();return function($,Y){if(Y){if(!(0,Q9.isWrapped)(Y.query))J._wrap(Y,"query",J._patchQuery(Y))}if(typeof Z==="function")C6.context.with(Q,Z,this,$,Y)}}_patchQuery(Z){return(J)=>{let Q=this;return function($,Y,X){if(!Q._enabled)return Q._unwrap(Z,"query"),J.apply(Z,arguments);let W={},{host:K,port:z,database:G,user:H}=(0,G1.getConfig)(Z.config),B=parseInt(z,10),V=(0,G1.getDbQueryText)($);if(Q._dbSemconvStability&Q9.SemconvStability.OLD)W[VZ.ATTR_DB_SYSTEM]=VZ.DB_SYSTEM_VALUE_MYSQL,W[VZ.ATTR_DB_CONNECTION_STRING]=(0,G1.getJDBCString)(K,z,G),W[VZ.ATTR_DB_NAME]=G,W[VZ.ATTR_DB_USER]=H,W[VZ.ATTR_DB_STATEMENT]=V;if(Q._dbSemconvStability&Q9.SemconvStability.STABLE)W[f8.ATTR_DB_SYSTEM_NAME]=f8.DB_SYSTEM_NAME_VALUE_MYSQL,W[f8.ATTR_DB_NAMESPACE]=G,W[f8.ATTR_DB_QUERY_TEXT]=V;if(Q._netSemconvStability&Q9.SemconvStability.OLD){if(W[VZ.ATTR_NET_PEER_NAME]=K,!isNaN(B))W[VZ.ATTR_NET_PEER_PORT]=B}if(Q._netSemconvStability&Q9.SemconvStability.STABLE){if(W[f8.ATTR_SERVER_ADDRESS]=K,!isNaN(B))W[f8.ATTR_SERVER_PORT]=B}let F=Q.tracer.startSpan((0,G1.getSpanName)($),{kind:C6.SpanKind.CLIENT,attributes:W});if(Q.getConfig().enhancedDatabaseReporting){let j;if(Array.isArray(Y))j=Y;else if(arguments[2])j=[Y];F.setAttribute(aR0.AttributeNames.MYSQL_VALUES,(0,G1.getDbValues)($,j))}let D=Array.from(arguments).findIndex((j)=>typeof j==="function"),U=C6.context.active();if(D===-1){let j=C6.context.with(C6.trace.setSpan(C6.context.active(),F),()=>{return J.apply(Z,arguments)});return C6.context.bind(U,j),j.on("error",(L)=>F.setStatus({code:C6.SpanStatusCode.ERROR,message:L.message})).on("end",()=>{F.end()})}else return Q._wrap(arguments,D,Q._patchCallbackQuery(F,U)),C6.context.with(C6.trace.setSpan(C6.context.active(),F),()=>{return J.apply(Z,arguments)})}}}_patchCallbackQuery(Z,J){return(Q)=>{return function($,Y,X){if($)Z.setStatus({code:C6.SpanStatusCode.ERROR,message:$.message});return Z.end(),C6.context.with(J,()=>Q(...arguments))}}}_setPoolCallbacks(Z,J){let Q=J||(0,G1.getPoolNameOld)(Z);Z.on("connection",($)=>{this._connCountAdd(1,Q,"idle")}),Z.on("acquire",($)=>{this._connCountAdd(-1,Q,"idle"),this._connCountAdd(1,Q,"used")}),Z.on("release",($)=>{this._connCountAdd(1,Q,"idle"),this._connCountAdd(-1,Q,"used")})}}Hl.MySQLInstrumentation=Bl});var wl=w((cB)=>{Object.defineProperty(cB,"__esModule",{value:!0});cB.MySQLInstrumentation=void 0;var sR0=Fl();Object.defineProperty(cB,"MySQLInstrumentation",{enumerable:!0,get:function(){return sR0.MySQLInstrumentation}})});var mB=w((Ll)=>{Object.defineProperty(Ll,"__esModule",{value:!0});Ll.DB_SYSTEM_VALUE_MYSQL=Ll.ATTR_NET_PEER_PORT=Ll.ATTR_NET_PEER_NAME=Ll.ATTR_DB_USER=Ll.ATTR_DB_SYSTEM=Ll.ATTR_DB_STATEMENT=Ll.ATTR_DB_NAME=Ll.ATTR_DB_CONNECTION_STRING=void 0;Ll.ATTR_DB_CONNECTION_STRING="db.connection_string";Ll.ATTR_DB_NAME="db.name";Ll.ATTR_DB_STATEMENT="db.statement";Ll.ATTR_DB_SYSTEM="db.system";Ll.ATTR_DB_USER="db.user";Ll.ATTR_NET_PEER_NAME="net.peer.name";Ll.ATTR_NET_PEER_PORT="net.peer.port";Ll.DB_SYSTEM_VALUE_MYSQL="mysql"});var lB=w((Cl)=>{Object.defineProperty(Cl,"__esModule",{value:!0});Cl.addSqlCommenterComment=void 0;var uB=C(),WA0=Q0();function KA0(Z){let J=Z.indexOf("--");if(J>=0)return!0;if(Z.indexOf("/*")<0)return!1;let $=Z.indexOf("*/");return J<$}function zA0(Z){return encodeURIComponent(Z).replace(/[!'()*]/g,(J)=>`%${J.charCodeAt(0).toString(16).toUpperCase()}`)}function GA0(Z,J){if(typeof J!=="string"||J.length===0)return J;if(KA0(J))return J;let Q=new WA0.W3CTraceContextPropagator,$={};Q.inject(uB.trace.setSpan(uB.ROOT_CONTEXT,Z),$,uB.defaultTextMapSetter);let Y=Object.keys($).sort();if(Y.length===0)return J;let X=Y.map((W)=>{let K=zA0($[W]);return`${W}='${K}'`}).join(",");return`${J} /*${X}*/`}Cl.addSqlCommenterComment=GA0});var Rl=w((kl)=>{Object.defineProperty(kl,"__esModule",{value:!0});kl.getConnectionPrototypeToInstrument=kl.once=kl.getSpanName=kl.getQueryText=kl.getConnectionAttributes=void 0;var e4=mB(),U3=c(),pB=s();function BA0(Z,J,Q){let{host:$,port:Y,database:X,user:W}=HA0(Z),K={};if(J&U3.SemconvStability.OLD)K[e4.ATTR_DB_CONNECTION_STRING]=VA0($,Y,X),K[e4.ATTR_DB_NAME]=X,K[e4.ATTR_DB_USER]=W;if(J&U3.SemconvStability.STABLE)K[pB.ATTR_DB_NAMESPACE]=X;let z=parseInt(Y,10);if(Q&U3.SemconvStability.OLD){if(K[e4.ATTR_NET_PEER_NAME]=$,!isNaN(z))K[e4.ATTR_NET_PEER_PORT]=z}if(Q&U3.SemconvStability.STABLE){if(K[pB.ATTR_SERVER_ADDRESS]=$,!isNaN(z))K[pB.ATTR_SERVER_PORT]=z}return K}kl.getConnectionAttributes=BA0;function HA0(Z){let{host:J,port:Q,database:$,user:Y}=Z&&Z.connectionConfig||Z||{};return{host:J,port:Q,database:$,user:Y}}function VA0(Z,J,Q){let $=`jdbc:mysql://${Z||"localhost"}`;if(typeof J==="number")$+=`:${J}`;if(typeof Q==="string")$+=`/${Q}`;return $}function FA0(Z,J,Q,$=!1,Y=wA0){let[X,W]=typeof Z==="string"?[Z,Q]:[Z.sql,DA0(Z)?Q||Z.values:Q];try{if($)return Y(X);else if(J&&W)return J(X,W);else return X}catch(K){return"Could not determine the query due to an error in masking or formatting"}}kl.getQueryText=FA0;function wA0(Z){return Z.replace(/\b\d+\b/g,"?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,"?")}function DA0(Z){return"values"in Z}function UA0(Z){let J=typeof Z==="object"?Z.sql:Z,Q=J?.indexOf(" ");if(typeof Q==="number"&&Q!==-1)return J?.substring(0,Q);return J}kl.getSpanName=UA0;var jA0=(Z)=>{let J=!1;return(...Q)=>{if(J)return;return J=!0,Z(...Q)}};kl.once=jA0;function qA0(Z){let J=Z.prototype,Q=Object.getPrototypeOf(J);if(typeof Q?.query==="function"&&typeof Q?.execute==="function")return Q;return J}kl.getConnectionPrototypeToInstrument=qA0});var Nl=w((Al)=>{Object.defineProperty(Al,"__esModule",{value:!0});Al.PACKAGE_NAME=Al.PACKAGE_VERSION=void 0;Al.PACKAGE_VERSION="0.59.0";Al.PACKAGE_NAME="@opentelemetry/instrumentation-mysql2"});var _l=w((hl)=>{Object.defineProperty(hl,"__esModule",{value:!0});hl.MySQL2Instrumentation=void 0;var Tl=C(),C9=c(),iB=mB(),fl=lB(),E8=Rl(),El=Nl(),oB=s(),nB=[">=1.4.2 <4"];class yl extends C9.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(Z={}){super(El.PACKAGE_NAME,El.PACKAGE_VERSION,Z);this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,C9.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,C9.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){let Z;function J(Y){if(!Z&&Y.format)Z=Y.format}let Q=(Y)=>{if((0,C9.isWrapped)(Y.query))this._unwrap(Y,"query");if(this._wrap(Y,"query",this._patchQuery(Z,!1)),(0,C9.isWrapped)(Y.execute))this._unwrap(Y,"execute");this._wrap(Y,"execute",this._patchQuery(Z,!0))},$=(Y)=>{this._unwrap(Y,"query"),this._unwrap(Y,"execute")};return[new C9.InstrumentationNodeModuleDefinition("mysql2",nB,(Y)=>{return J(Y),Y},()=>{},[new C9.InstrumentationNodeModuleFile("mysql2/promise.js",nB,(Y)=>{return J(Y),Y},()=>{}),new C9.InstrumentationNodeModuleFile("mysql2/lib/connection.js",nB,(Y)=>{let X=(0,E8.getConnectionPrototypeToInstrument)(Y);return Q(X),Y},(Y)=>{if(Y===void 0)return;let X=(0,E8.getConnectionPrototypeToInstrument)(Y);$(X)})])]}_patchQuery(Z,J){return(Q)=>{let $=this;return function(Y,X,W){let K;if(Array.isArray(X))K=X;else if(arguments[2])K=[X];let{maskStatement:z,maskStatementHook:G,responseHook:H}=$.getConfig(),B=(0,E8.getConnectionAttributes)(this.config,$._dbSemconvStability,$._netSemconvStability),V=(0,E8.getQueryText)(Y,Z,K,z,G);if($._dbSemconvStability&C9.SemconvStability.OLD)B[iB.ATTR_DB_SYSTEM]=iB.DB_SYSTEM_VALUE_MYSQL,B[iB.ATTR_DB_STATEMENT]=V;if($._dbSemconvStability&C9.SemconvStability.STABLE)B[oB.ATTR_DB_SYSTEM_NAME]=oB.DB_SYSTEM_NAME_VALUE_MYSQL,B[oB.ATTR_DB_QUERY_TEXT]=V;let F=$.tracer.startSpan((0,E8.getSpanName)(Y),{kind:Tl.SpanKind.CLIENT,attributes:B});if(!J&&$.getConfig().addSqlCommenterCommentToQueries)arguments[0]=Y=typeof Y==="string"?(0,fl.addSqlCommenterComment)(F,Y):Object.assign(Y,{sql:(0,fl.addSqlCommenterComment)(F,Y.sql)});let D=(0,E8.once)((U,j)=>{if(U)F.setStatus({code:Tl.SpanStatusCode.ERROR,message:U.message});else if(typeof H==="function")(0,C9.safeExecuteInTheMiddle)(()=>{H(F,{queryResults:j})},(L)=>{if(L)$._diag.warn("Failed executing responseHook",L)},!0);F.end()});if(arguments.length===1){if(typeof Y.onResult==="function")$._wrap(Y,"onResult",$._patchCallbackQuery(D));let U=Q.apply(this,arguments);return U.once("error",(j)=>{D(j)}).once("result",(j)=>{D(void 0,j)}),U}if(typeof arguments[1]==="function")$._wrap(arguments,1,$._patchCallbackQuery(D));else if(typeof arguments[2]==="function")$._wrap(arguments,2,$._patchCallbackQuery(D));return Q.apply(this,arguments)}}}_patchCallbackQuery(Z){return(J)=>{return function(Q,$,Y){return Z(Q,$),J(...arguments)}}}}hl.MySQL2Instrumentation=yl});var vl=w((aB)=>{Object.defineProperty(aB,"__esModule",{value:!0});aB.MySQL2Instrumentation=void 0;var MA0=_l();Object.defineProperty(aB,"MySQL2Instrumentation",{enumerable:!0,get:function(){return MA0.MySQL2Instrumentation}})});var ul=w((cl)=>{Object.defineProperty(cl,"__esModule",{value:!0});cl.DB_SYSTEM_VALUE_REDIS=cl.DB_SYSTEM_NAME_VALUE_REDIS=cl.ATTR_NET_PEER_PORT=cl.ATTR_NET_PEER_NAME=cl.ATTR_DB_SYSTEM=cl.ATTR_DB_STATEMENT=cl.ATTR_DB_CONNECTION_STRING=void 0;cl.ATTR_DB_CONNECTION_STRING="db.connection_string";cl.ATTR_DB_STATEMENT="db.statement";cl.ATTR_DB_SYSTEM="db.system";cl.ATTR_NET_PEER_NAME="net.peer.name";cl.ATTR_NET_PEER_PORT="net.peer.port";cl.DB_SYSTEM_NAME_VALUE_REDIS="redis";cl.DB_SYSTEM_VALUE_REDIS="redis"});var il=w((ll)=>{Object.defineProperty(ll,"__esModule",{value:!0});ll.endSpan=void 0;var hA0=C(),SA0=(Z,J)=>{if(J)Z.recordException(J),Z.setStatus({code:hA0.SpanStatusCode.ERROR,message:J.message});Z.end()};ll.endSpan=SA0});var j3=w((ol)=>{Object.defineProperty(ol,"__esModule",{value:!0});ol.defaultDbStatementSerializer=void 0;var _A0=[{regex:/^ECHO/i,args:0},{regex:/^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,args:1},{regex:/^(HSET|HMSET|LSET|LINSERT)/i,args:2},{regex:/^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,args:-1}],vA0=(Z,J)=>{if(Array.isArray(J)&&J.length){let Q=_A0.find(({regex:Y})=>{return Y.test(Z)})?.args??0,$=Q>=0?J.slice(0,Q):J;if(J.length>$.length)$.push(`[${J.length-Q} other arguments]`);return`${Z} ${$.join(" ")}`}return Z};ol.defaultDbStatementSerializer=vA0});var rl=w((al)=>{Object.defineProperty(al,"__esModule",{value:!0});al.PACKAGE_NAME=al.PACKAGE_VERSION=void 0;al.PACKAGE_VERSION="0.61.0";al.PACKAGE_NAME="@opentelemetry/instrumentation-ioredis"});var Yp=w((Qp)=>{Object.defineProperty(Qp,"__esModule",{value:!0});Qp.IORedisInstrumentation=void 0;var Z7=C(),P6=c(),J7=s(),k6=ul(),tl=c(),ZJ=il(),xA0=j3(),el=rl(),Zp={requireParentSpan:!0};class Jp extends P6.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(Z={}){super(el.PACKAGE_NAME,el.PACKAGE_VERSION,{...Zp,...Z});this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,P6.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,P6.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(Z={}){super.setConfig({...Zp,...Z})}init(){return[new P6.InstrumentationNodeModuleDefinition("ioredis",[">=2.0.0 <6"],(Z,J)=>{let Q=Z[Symbol.toStringTag]==="Module"?Z.default:Z;if((0,P6.isWrapped)(Q.prototype.sendCommand))this._unwrap(Q.prototype,"sendCommand");if(this._wrap(Q.prototype,"sendCommand",this._patchSendCommand(J)),(0,P6.isWrapped)(Q.prototype.connect))this._unwrap(Q.prototype,"connect");return this._wrap(Q.prototype,"connect",this._patchConnection()),Z},(Z)=>{if(Z===void 0)return;let J=Z[Symbol.toStringTag]==="Module"?Z.default:Z;this._unwrap(J.prototype,"sendCommand"),this._unwrap(J.prototype,"connect")})]}_patchSendCommand(Z){return(J)=>{return this._traceSendCommand(J,Z)}}_patchConnection(){return(Z)=>{return this._traceConnection(Z)}}_traceSendCommand(Z,J){let Q=this;return function($){if(arguments.length<1||typeof $!=="object")return Z.apply(this,arguments);let Y=Q.getConfig(),X=Y.dbStatementSerializer||xA0.defaultDbStatementSerializer,W=Z7.trace.getSpan(Z7.context.active())===void 0;if(Y.requireParentSpan===!0&&W)return Z.apply(this,arguments);let K={},{host:z,port:G}=this.options,H=X($.name,$.args);if(Q._dbSemconvStability&P6.SemconvStability.OLD)K[k6.ATTR_DB_SYSTEM]=k6.DB_SYSTEM_VALUE_REDIS,K[k6.ATTR_DB_STATEMENT]=H,K[k6.ATTR_DB_CONNECTION_STRING]=`redis://${z}:${G}`;if(Q._dbSemconvStability&P6.SemconvStability.STABLE)K[J7.ATTR_DB_SYSTEM_NAME]=k6.DB_SYSTEM_NAME_VALUE_REDIS,K[J7.ATTR_DB_QUERY_TEXT]=H;if(Q._netSemconvStability&P6.SemconvStability.OLD)K[k6.ATTR_NET_PEER_NAME]=z,K[k6.ATTR_NET_PEER_PORT]=G;if(Q._netSemconvStability&P6.SemconvStability.STABLE)K[J7.ATTR_SERVER_ADDRESS]=z,K[J7.ATTR_SERVER_PORT]=G;let B=Q.tracer.startSpan($.name,{kind:Z7.SpanKind.CLIENT,attributes:K}),{requestHook:V}=Y;if(V)(0,tl.safeExecuteInTheMiddle)(()=>V(B,{moduleVersion:J,cmdName:$.name,cmdArgs:$.args}),(F)=>{if(F)Z7.diag.error("ioredis instrumentation: request hook failed",F)},!0);try{let F=Z.apply(this,arguments),D=$.resolve;$.resolve=function(j){(0,tl.safeExecuteInTheMiddle)(()=>Y.responseHook?.(B,$.name,$.args,j),(L)=>{if(L)Z7.diag.error("ioredis instrumentation: response hook failed",L)},!0),(0,ZJ.endSpan)(B,null),D(j)};let U=$.reject;return $.reject=function(j){(0,ZJ.endSpan)(B,j),U(j)},F}catch(F){throw(0,ZJ.endSpan)(B,F),F}}}_traceConnection(Z){let J=this;return function(){let Q=Z7.trace.getSpan(Z7.context.active())===void 0;if(J.getConfig().requireParentSpan===!0&&Q)return Z.apply(this,arguments);let $={},{host:Y,port:X}=this.options;if(J._dbSemconvStability&P6.SemconvStability.OLD)$[k6.ATTR_DB_SYSTEM]=k6.DB_SYSTEM_VALUE_REDIS,$[k6.ATTR_DB_STATEMENT]="connect",$[k6.ATTR_DB_CONNECTION_STRING]=`redis://${Y}:${X}`;if(J._dbSemconvStability&P6.SemconvStability.STABLE)$[J7.ATTR_DB_SYSTEM_NAME]=k6.DB_SYSTEM_NAME_VALUE_REDIS,$[J7.ATTR_DB_QUERY_TEXT]="connect";if(J._netSemconvStability&P6.SemconvStability.OLD)$[k6.ATTR_NET_PEER_NAME]=Y,$[k6.ATTR_NET_PEER_PORT]=X;if(J._netSemconvStability&P6.SemconvStability.STABLE)$[J7.ATTR_SERVER_ADDRESS]=Y,$[J7.ATTR_SERVER_PORT]=X;let W=J.tracer.startSpan("connect",{kind:Z7.SpanKind.CLIENT,attributes:$});try{let K=Z.apply(this,arguments);return(0,ZJ.endSpan)(W,null),K}catch(K){throw(0,ZJ.endSpan)(W,K),K}}}}Qp.IORedisInstrumentation=Jp});var Xp=w((sB)=>{Object.defineProperty(sB,"__esModule",{value:!0});sB.IORedisInstrumentation=void 0;var gA0=Yp();Object.defineProperty(sB,"IORedisInstrumentation",{enumerable:!0,get:function(){return gA0.IORedisInstrumentation}})});var q3=w((Wp)=>{Object.defineProperty(Wp,"__esModule",{value:!0});Wp.PACKAGE_NAME=Wp.PACKAGE_VERSION=void 0;Wp.PACKAGE_VERSION="0.61.0";Wp.PACKAGE_NAME="@opentelemetry/instrumentation-redis"});var Bp=w((zp)=>{Object.defineProperty(zp,"__esModule",{value:!0});zp.getTracedCreateStreamTrace=zp.getTracedCreateClient=zp.endSpan=void 0;var JJ=C(),mA0=(Z,J)=>{if(J)Z.setStatus({code:JJ.SpanStatusCode.ERROR,message:J.message});Z.end()};zp.endSpan=mA0;var uA0=(Z)=>{return function(){let Q=Z.apply(this,arguments);return JJ.context.bind(JJ.context.active(),Q)}};zp.getTracedCreateClient=uA0;var lA0=(Z)=>{return function(){if(!Object.prototype.hasOwnProperty.call(this,"stream"))Object.defineProperty(this,"stream",{get(){return this._patched_redis_stream},set(Q){JJ.context.bind(JJ.context.active(),Q),this._patched_redis_stream=Q}});return Z.apply(this,arguments)}};zp.getTracedCreateStreamTrace=lA0});var L3=w((Hp)=>{Object.defineProperty(Hp,"__esModule",{value:!0});Hp.DB_SYSTEM_VALUE_REDIS=Hp.DB_SYSTEM_NAME_VALUE_REDIS=Hp.ATTR_NET_PEER_PORT=Hp.ATTR_NET_PEER_NAME=Hp.ATTR_DB_SYSTEM=Hp.ATTR_DB_STATEMENT=Hp.ATTR_DB_CONNECTION_STRING=void 0;Hp.ATTR_DB_CONNECTION_STRING="db.connection_string";Hp.ATTR_DB_STATEMENT="db.statement";Hp.ATTR_DB_SYSTEM="db.system";Hp.ATTR_NET_PEER_NAME="net.peer.name";Hp.ATTR_NET_PEER_PORT="net.peer.port";Hp.DB_SYSTEM_NAME_VALUE_REDIS="redis";Hp.DB_SYSTEM_VALUE_REDIS="redis"});var Up=w((wp)=>{Object.defineProperty(wp,"__esModule",{value:!0});wp.RedisInstrumentationV2_V3=void 0;var x6=c(),O3=Bp(),Fp=q3(),QJ=C(),$J=s(),B1=L3(),eA0=j3();class rB extends x6.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(Z={}){super(Fp.PACKAGE_NAME,Fp.PACKAGE_VERSION,Z);this._semconvStability=Z.semconvStability?Z.semconvStability:(0,x6.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(Z={}){super.setConfig(Z),this._semconvStability=Z.semconvStability?Z.semconvStability:(0,x6.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new x6.InstrumentationNodeModuleDefinition("redis",[">=2.6.0 <4"],(Z)=>{if((0,x6.isWrapped)(Z.RedisClient.prototype.internal_send_command))this._unwrap(Z.RedisClient.prototype,"internal_send_command");if(this._wrap(Z.RedisClient.prototype,"internal_send_command",this._getPatchInternalSendCommand()),(0,x6.isWrapped)(Z.RedisClient.prototype.create_stream))this._unwrap(Z.RedisClient.prototype,"create_stream");if(this._wrap(Z.RedisClient.prototype,"create_stream",this._getPatchCreateStream()),(0,x6.isWrapped)(Z.createClient))this._unwrap(Z,"createClient");return this._wrap(Z,"createClient",this._getPatchCreateClient()),Z},(Z)=>{if(Z===void 0)return;this._unwrap(Z.RedisClient.prototype,"internal_send_command"),this._unwrap(Z.RedisClient.prototype,"create_stream"),this._unwrap(Z,"createClient")})]}_getPatchInternalSendCommand(){let Z=this;return function(Q){return function(Y){if(arguments.length!==1||typeof Y!=="object")return Q.apply(this,arguments);let X=Z.getConfig(),W=QJ.trace.getSpan(QJ.context.active())===void 0;if(X.requireParentSpan===!0&&W)return Q.apply(this,arguments);let K=X?.dbStatementSerializer||eA0.defaultDbStatementSerializer,z={};if(Z._semconvStability&x6.SemconvStability.OLD)Object.assign(z,{[B1.ATTR_DB_SYSTEM]:B1.DB_SYSTEM_VALUE_REDIS,[B1.ATTR_DB_STATEMENT]:K(Y.command,Y.args)});if(Z._semconvStability&x6.SemconvStability.STABLE)Object.assign(z,{[$J.ATTR_DB_SYSTEM_NAME]:B1.DB_SYSTEM_NAME_VALUE_REDIS,[$J.ATTR_DB_OPERATION_NAME]:Y.command,[$J.ATTR_DB_QUERY_TEXT]:K(Y.command,Y.args)});let G=Z.tracer.startSpan(`${rB.COMPONENT}-${Y.command}`,{kind:QJ.SpanKind.CLIENT,attributes:z});if(this.connection_options){let B={};if(Z._semconvStability&x6.SemconvStability.OLD)Object.assign(B,{[B1.ATTR_NET_PEER_NAME]:this.connection_options.host,[B1.ATTR_NET_PEER_PORT]:this.connection_options.port});if(Z._semconvStability&x6.SemconvStability.STABLE)Object.assign(B,{[$J.ATTR_SERVER_ADDRESS]:this.connection_options.host,[$J.ATTR_SERVER_PORT]:this.connection_options.port});G.setAttributes(B)}if(this.address&&Z._semconvStability&x6.SemconvStability.OLD)G.setAttribute(B1.ATTR_DB_CONNECTION_STRING,`redis://${this.address}`);let H=arguments[0].callback;if(H){let B=QJ.context.active();arguments[0].callback=function(F,D){if(X?.responseHook){let U=X.responseHook;(0,x6.safeExecuteInTheMiddle)(()=>{U(G,Y.command,Y.args,D)},(j)=>{if(j)Z._diag.error("Error executing responseHook",j)},!0)}return(0,O3.endSpan)(G,F),QJ.context.with(B,H,this,...arguments)}}try{return Q.apply(this,arguments)}catch(B){throw(0,O3.endSpan)(G,B),B}}}}_getPatchCreateClient(){return function(J){return(0,O3.getTracedCreateClient)(J)}}_getPatchCreateStream(){return function(J){return(0,O3.getTracedCreateStreamTrace)(J)}}}wp.RedisInstrumentationV2_V3=rB});var Op=w((qp)=>{Object.defineProperty(qp,"__esModule",{value:!0});qp.getClientAttributes=void 0;var tB=s(),y8=L3(),jp=c();function ZI0(Z,J,Q){let $={};if(Q&jp.SemconvStability.OLD)Object.assign($,{[y8.ATTR_DB_SYSTEM]:y8.DB_SYSTEM_VALUE_REDIS,[y8.ATTR_NET_PEER_NAME]:J?.socket?.host,[y8.ATTR_NET_PEER_PORT]:J?.socket?.port,[y8.ATTR_DB_CONNECTION_STRING]:JI0(Z,J?.url)});if(Q&jp.SemconvStability.STABLE)Object.assign($,{[tB.ATTR_DB_SYSTEM_NAME]:y8.DB_SYSTEM_NAME_VALUE_REDIS,[tB.ATTR_SERVER_ADDRESS]:J?.socket?.host,[tB.ATTR_SERVER_PORT]:J?.socket?.port});return $}qp.getClientAttributes=ZI0;function JI0(Z,J){if(typeof J!=="string"||!J)return;try{let Q=new URL(J);return Q.searchParams.delete("user_pwd"),Q.username="",Q.password="",Q.href}catch(Q){Z.error("failed to sanitize redis connection url",Q)}return}});var Ap=w((Mp)=>{Object.defineProperty(Mp,"__esModule",{value:!0});Mp.RedisInstrumentationV4_V5=void 0;var $9=C(),z0=c(),Cp=Op(),QI0=j3(),Pp=q3(),eB=s(),$I0=L3(),YJ=Symbol("opentelemetry.instrumentation.redis.open_spans"),kp=Symbol("opentelemetry.instrumentation.redis.multi_command_options");class C3 extends z0.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(Z={}){super(Pp.PACKAGE_NAME,Pp.PACKAGE_VERSION,Z);this._semconvStability=Z.semconvStability?Z.semconvStability:(0,z0.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(Z={}){super.setConfig(Z),this._semconvStability=Z.semconvStability?Z.semconvStability:(0,z0.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[this._getInstrumentationNodeModuleDefinition("@redis/client"),this._getInstrumentationNodeModuleDefinition("@node-redis/client")]}_getInstrumentationNodeModuleDefinition(Z){let J=new z0.InstrumentationNodeModuleFile(`${Z}/dist/lib/commander.js`,["^1.0.0"],(Y,X)=>{let W=Y.transformCommandArguments;if(!W)return this._diag.error("internal instrumentation error, missing transformCommandArguments function"),Y;let K=X?.startsWith("1.0.")?"extendWithCommands":"attachCommands";if((0,z0.isWrapped)(Y?.[K]))this._unwrap(Y,K);return this._wrap(Y,K,this._getPatchExtendWithCommands(W)),Y},(Y)=>{if((0,z0.isWrapped)(Y?.extendWithCommands))this._unwrap(Y,"extendWithCommands");if((0,z0.isWrapped)(Y?.attachCommands))this._unwrap(Y,"attachCommands")}),Q=new z0.InstrumentationNodeModuleFile(`${Z}/dist/lib/client/multi-command.js`,["^1.0.0","^5.0.0"],(Y)=>{let X=Y?.default?.prototype;if((0,z0.isWrapped)(X?.exec))this._unwrap(X,"exec");if(this._wrap(X,"exec",this._getPatchMultiCommandsExec(!1)),(0,z0.isWrapped)(X?.execAsPipeline))this._unwrap(X,"execAsPipeline");if(this._wrap(X,"execAsPipeline",this._getPatchMultiCommandsExec(!0)),(0,z0.isWrapped)(X?.addCommand))this._unwrap(X,"addCommand");return this._wrap(X,"addCommand",this._getPatchMultiCommandsAddCommand()),Y},(Y)=>{let X=Y?.default?.prototype;if((0,z0.isWrapped)(X?.exec))this._unwrap(X,"exec");if((0,z0.isWrapped)(X?.addCommand))this._unwrap(X,"addCommand")}),$=new z0.InstrumentationNodeModuleFile(`${Z}/dist/lib/client/index.js`,["^1.0.0","^5.0.0"],(Y)=>{let X=Y?.default?.prototype;if(X?.multi){if((0,z0.isWrapped)(X?.multi))this._unwrap(X,"multi");this._wrap(X,"multi",this._getPatchRedisClientMulti())}if(X?.MULTI){if((0,z0.isWrapped)(X?.MULTI))this._unwrap(X,"MULTI");this._wrap(X,"MULTI",this._getPatchRedisClientMulti())}if((0,z0.isWrapped)(X?.sendCommand))this._unwrap(X,"sendCommand");return this._wrap(X,"sendCommand",this._getPatchRedisClientSendCommand()),this._wrap(X,"connect",this._getPatchedClientConnect()),Y},(Y)=>{let X=Y?.default?.prototype;if((0,z0.isWrapped)(X?.multi))this._unwrap(X,"multi");if((0,z0.isWrapped)(X?.MULTI))this._unwrap(X,"MULTI");if((0,z0.isWrapped)(X?.sendCommand))this._unwrap(X,"sendCommand")});return new z0.InstrumentationNodeModuleDefinition(Z,["^1.0.0","^5.0.0"],(Y)=>{return Y},()=>{},[J,Q,$])}_getPatchExtendWithCommands(Z){let J=this;return function($){return function(X){if(X?.BaseClass?.name!=="RedisClient")return $.apply(this,arguments);let W=X.executor;return X.executor=function(K,z){let G=Z(K,z).args;return J._traceClientCommand(W,this,arguments,G)},$.apply(this,arguments)}}}_getPatchMultiCommandsExec(Z){let J=this;return function($){return function(){let X=$.apply(this,arguments);if(typeof X?.then!=="function")return J._diag.error("non-promise result when patching exec/execAsPipeline"),X;return X.then((W)=>{let K=this[YJ];return J._endSpansWithRedisReplies(K,W,Z),W}).catch((W)=>{let K=this[YJ];if(!K)J._diag.error("cannot find open spans to end for multi/pipeline");else{let z=W.constructor.name==="MultiErrorReply"?W.replies:Array(K.length).fill(W);J._endSpansWithRedisReplies(K,z,Z)}return Promise.reject(W)})}}}_getPatchMultiCommandsAddCommand(){let Z=this;return function(Q){return function(Y){return Z._traceClientCommand(Q,this,arguments,Y)}}}_getPatchRedisClientMulti(){return function(J){return function(){let $=J.apply(this,arguments);return $[kp]=this.options,$}}}_getPatchRedisClientSendCommand(){let Z=this;return function(Q){return function(Y){return Z._traceClientCommand(Q,this,arguments,Y)}}}_getPatchedClientConnect(){let Z=this;return function(Q){return function(){let Y=this.options,X=(0,Cp.getClientAttributes)(Z._diag,Y,Z._semconvStability),W=Z.tracer.startSpan(`${C3.COMPONENT}-connect`,{kind:$9.SpanKind.CLIENT,attributes:X});return $9.context.with($9.trace.setSpan($9.context.active(),W),()=>{return Q.apply(this)}).then((z)=>{return W.end(),z}).catch((z)=>{return W.recordException(z),W.setStatus({code:$9.SpanStatusCode.ERROR,message:z.message}),W.end(),Promise.reject(z)})}}}_traceClientCommand(Z,J,Q,$){if($9.trace.getSpan($9.context.active())===void 0&&this.getConfig().requireParentSpan)return Z.apply(J,Q);let X=J.options||J[kp],W=$[0],K=$.slice(1),z=this.getConfig().dbStatementSerializer||QI0.defaultDbStatementSerializer,G=(0,Cp.getClientAttributes)(this._diag,X,this._semconvStability);if(this._semconvStability&z0.SemconvStability.STABLE)G[eB.ATTR_DB_OPERATION_NAME]=W;try{let V=z(W,K);if(V!=null){if(this._semconvStability&z0.SemconvStability.OLD)G[$I0.ATTR_DB_STATEMENT]=V;if(this._semconvStability&z0.SemconvStability.STABLE)G[eB.ATTR_DB_QUERY_TEXT]=V}}catch(V){this._diag.error("dbStatementSerializer throw an exception",V,{commandName:W})}let H=this.tracer.startSpan(`${C3.COMPONENT}-${W}`,{kind:$9.SpanKind.CLIENT,attributes:G}),B=$9.context.with($9.trace.setSpan($9.context.active(),H),()=>{return Z.apply(J,Q)});if(typeof B?.then==="function")B.then((V)=>{this._endSpanWithResponse(H,W,K,V,void 0)},(V)=>{this._endSpanWithResponse(H,W,K,null,V)});else{let V=B;V[YJ]=V[YJ]||[],V[YJ].push({span:H,commandName:W,commandArgs:K})}return B}_endSpansWithRedisReplies(Z,J,Q=!1){if(!Z)return this._diag.error("cannot find open spans to end for redis multi/pipeline");if(J.length!==Z.length)return this._diag.error("number of multi command spans does not match response from redis");let $=Z.map((W)=>W.commandName),X=$.every((W)=>W===$[0])?(Q?"PIPELINE ":"MULTI ")+$[0]:Q?"PIPELINE":"MULTI";for(let W=0;W{Object.defineProperty(fp,"__esModule",{value:!0});fp.RedisInstrumentation=void 0;var YI0=c(),Ip=q3(),XI0=Up(),WI0=Ap(),Np={requireParentSpan:!1};class Tp extends YI0.InstrumentationBase{instrumentationV2_V3;instrumentationV4_V5;initialized=!1;constructor(Z={}){let J={...Np,...Z};super(Ip.PACKAGE_NAME,Ip.PACKAGE_VERSION,J);this.instrumentationV2_V3=new XI0.RedisInstrumentationV2_V3(this.getConfig()),this.instrumentationV4_V5=new WI0.RedisInstrumentationV4_V5(this.getConfig()),this.initialized=!0}setConfig(Z={}){let J={...Np,...Z};if(super.setConfig(J),!this.initialized)return;this.instrumentationV2_V3.setConfig(J),this.instrumentationV4_V5.setConfig(J)}init(){}getModuleDefinitions(){return[...this.instrumentationV2_V3.getModuleDefinitions(),...this.instrumentationV4_V5.getModuleDefinitions()]}setTracerProvider(Z){if(super.setTracerProvider(Z),!this.initialized)return;this.instrumentationV2_V3.setTracerProvider(Z),this.instrumentationV4_V5.setTracerProvider(Z)}enable(){if(super.enable(),!this.initialized)return;this.instrumentationV2_V3.enable(),this.instrumentationV4_V5.enable()}disable(){if(super.disable(),!this.initialized)return;this.instrumentationV2_V3.disable(),this.instrumentationV4_V5.disable()}}fp.RedisInstrumentation=Tp});var hp=w((ZH)=>{Object.defineProperty(ZH,"__esModule",{value:!0});ZH.RedisInstrumentation=void 0;var KI0=yp();Object.defineProperty(ZH,"RedisInstrumentation",{enumerable:!0,get:function(){return KI0.RedisInstrumentation}})});var pp=w((up)=>{Object.defineProperty(up,"__esModule",{value:!0});up.EVENT_LISTENERS_SET=void 0;up.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")});var YH=w((ip)=>{Object.defineProperty(ip,"__esModule",{value:!0});ip.AttributeNames=void 0;var DI0;(function(Z){Z.PG_VALUES="db.postgresql.values",Z.PG_PLAN="db.postgresql.plan",Z.IDLE_TIMEOUT_MILLIS="db.postgresql.idle.timeout.millis",Z.MAX_CLIENT="db.postgresql.max.client"})(DI0=ip.AttributeNames||(ip.AttributeNames={}))});var XH=w((op)=>{Object.defineProperty(op,"__esModule",{value:!0});op.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS=op.METRIC_DB_CLIENT_CONNECTION_COUNT=op.DB_SYSTEM_VALUE_POSTGRESQL=op.DB_CLIENT_CONNECTION_STATE_VALUE_USED=op.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE=op.ATTR_NET_PEER_PORT=op.ATTR_NET_PEER_NAME=op.ATTR_DB_USER=op.ATTR_DB_SYSTEM=op.ATTR_DB_STATEMENT=op.ATTR_DB_NAME=op.ATTR_DB_CONNECTION_STRING=op.ATTR_DB_CLIENT_CONNECTION_STATE=op.ATTR_DB_CLIENT_CONNECTION_POOL_NAME=void 0;op.ATTR_DB_CLIENT_CONNECTION_POOL_NAME="db.client.connection.pool.name";op.ATTR_DB_CLIENT_CONNECTION_STATE="db.client.connection.state";op.ATTR_DB_CONNECTION_STRING="db.connection_string";op.ATTR_DB_NAME="db.name";op.ATTR_DB_STATEMENT="db.statement";op.ATTR_DB_SYSTEM="db.system";op.ATTR_DB_USER="db.user";op.ATTR_NET_PEER_NAME="net.peer.name";op.ATTR_NET_PEER_PORT="net.peer.port";op.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE="idle";op.DB_CLIENT_CONNECTION_STATE_VALUE_USED="used";op.DB_SYSTEM_VALUE_POSTGRESQL="postgresql";op.METRIC_DB_CLIENT_CONNECTION_COUNT="db.client.connection.count";op.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS="db.client.connection.pending_requests"});var KH=w((ap)=>{Object.defineProperty(ap,"__esModule",{value:!0});ap.SpanNames=void 0;var TI0;(function(Z){Z.QUERY_PREFIX="pg.query",Z.CONNECT="pg.connect",Z.POOL_CONNECT="pg-pool.connect"})(TI0=ap.SpanNames||(ap.SpanNames={}))});var Yi=w((Qi)=>{Object.defineProperty(Qi,"__esModule",{value:!0});Qi.sanitizedErrorMessage=Qi.isObjectWithTextString=Qi.getErrorMessage=Qi.patchClientConnectCallback=Qi.patchCallbackPGPool=Qi.updateCounter=Qi.getPoolName=Qi.patchCallback=Qi.handleExecutionResult=Qi.handleConfigQuery=Qi.shouldSkipInstrumentation=Qi.getSemanticAttributesFromPoolConnection=Qi.getSemanticAttributesFromConnection=Qi.getConnectionString=Qi.parseAndMaskConnectionString=Qi.parseNormalizedOperationName=Qi.getQuerySpanName=void 0;var Q7=C(),k3=YH(),Y9=s(),U0=XH(),H1=c(),sp=KH();function rp(Z,J){if(!J)return sp.SpanNames.QUERY_PREFIX;let Q=typeof J.name==="string"&&J.name?J.name:tp(J.text);return`${sp.SpanNames.QUERY_PREFIX}:${Q}${Z?` ${Z}`:""}`}Qi.getQuerySpanName=rp;function tp(Z){let J=Z.trim(),Q=J.indexOf(" "),$=Q===-1?J:J.slice(0,Q);return $=$.toUpperCase(),$.endsWith(";")?$.slice(0,-1):$}Qi.parseNormalizedOperationName=tp;function ep(Z){try{let J=new URL(Z);return J.username="",J.password="",J.toString()}catch(J){return"postgresql://localhost:5432/"}}Qi.parseAndMaskConnectionString=ep;function zH(Z){if("connectionString"in Z&&Z.connectionString)return ep(Z.connectionString);let J=Z.host||"localhost",Q=Z.port||5432,$=Z.database||"";return`postgresql://${J}:${Q}/${$}`}Qi.getConnectionString=zH;function M3(Z){if(Number.isInteger(Z))return Z;return}function Zi(Z,J){let Q={};if(J&H1.SemconvStability.OLD)Q={...Q,[U0.ATTR_DB_SYSTEM]:U0.DB_SYSTEM_VALUE_POSTGRESQL,[U0.ATTR_DB_NAME]:Z.database,[U0.ATTR_DB_CONNECTION_STRING]:zH(Z),[U0.ATTR_DB_USER]:Z.user,[U0.ATTR_NET_PEER_NAME]:Z.host,[U0.ATTR_NET_PEER_PORT]:M3(Z.port)};if(J&H1.SemconvStability.STABLE)Q={...Q,[Y9.ATTR_DB_SYSTEM_NAME]:Y9.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[Y9.ATTR_DB_NAMESPACE]:Z.namespace,[Y9.ATTR_SERVER_ADDRESS]:Z.host,[Y9.ATTR_SERVER_PORT]:M3(Z.port)};return Q}Qi.getSemanticAttributesFromConnection=Zi;function fI0(Z,J){let Q;try{Q=Z.connectionString?new URL(Z.connectionString):void 0}catch(Y){Q=void 0}let $={[k3.AttributeNames.IDLE_TIMEOUT_MILLIS]:Z.idleTimeoutMillis,[k3.AttributeNames.MAX_CLIENT]:Z.maxClient};if(J&H1.SemconvStability.OLD)$={...$,[U0.ATTR_DB_SYSTEM]:U0.DB_SYSTEM_VALUE_POSTGRESQL,[U0.ATTR_DB_NAME]:Q?.pathname.slice(1)??Z.database,[U0.ATTR_DB_CONNECTION_STRING]:zH(Z),[U0.ATTR_NET_PEER_NAME]:Q?.hostname??Z.host,[U0.ATTR_NET_PEER_PORT]:Number(Q?.port)||M3(Z.port),[U0.ATTR_DB_USER]:Q?.username??Z.user};if(J&H1.SemconvStability.STABLE)$={...$,[Y9.ATTR_DB_SYSTEM_NAME]:Y9.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[Y9.ATTR_DB_NAMESPACE]:Z.namespace,[Y9.ATTR_SERVER_ADDRESS]:Q?.hostname??Z.host,[Y9.ATTR_SERVER_PORT]:Number(Q?.port)||M3(Z.port)};return $}Qi.getSemanticAttributesFromPoolConnection=fI0;function EI0(Z){return Z.requireParentSpan===!0&&Q7.trace.getSpan(Q7.context.active())===void 0}Qi.shouldSkipInstrumentation=EI0;function yI0(Z,J,Q,$){let{connectionParameters:Y}=this,X=Y.database,W=rp(X,$),K=Z.startSpan(W,{kind:Q7.SpanKind.CLIENT,attributes:Zi(Y,Q)});if(!$)return K;if($.text){if(Q&H1.SemconvStability.OLD)K.setAttribute(U0.ATTR_DB_STATEMENT,$.text);if(Q&H1.SemconvStability.STABLE)K.setAttribute(Y9.ATTR_DB_QUERY_TEXT,$.text)}if(J.enhancedDatabaseReporting&&Array.isArray($.values))try{let z=$.values.map((G)=>{if(G==null)return"null";else if(G instanceof Buffer)return G.toString();else if(typeof G==="object"){if(typeof G.toPostgres==="function")return G.toPostgres();return JSON.stringify(G)}else return G.toString()});K.setAttribute(k3.AttributeNames.PG_VALUES,z)}catch(z){Q7.diag.error("failed to stringify ",$.values,z)}if(typeof $.name==="string")K.setAttribute(k3.AttributeNames.PG_PLAN,$.name);return K}Qi.handleConfigQuery=yI0;function Ji(Z,J,Q){if(typeof Z.responseHook==="function")(0,H1.safeExecuteInTheMiddle)(()=>{Z.responseHook(J,{data:Q})},($)=>{if($)Q7.diag.error("Error running response hook",$)},!0)}Qi.handleExecutionResult=Ji;function hI0(Z,J,Q,$,Y){return function(W,K){if(W){if(Object.prototype.hasOwnProperty.call(W,"code"))$[Y9.ATTR_ERROR_TYPE]=W.code;if(W instanceof Error)J.recordException(R3(W));J.setStatus({code:Q7.SpanStatusCode.ERROR,message:W.message})}else Ji(Z,J,K);Y(),J.end(),Q.call(this,W,K)}}Qi.patchCallback=hI0;function SI0(Z){let J="";return J+=(Z?.host?`${Z.host}`:"unknown_host")+":",J+=(Z?.port?`${Z.port}`:"unknown_port")+"/",J+=Z?.database?`${Z.database}`:"unknown_database",J.trim()}Qi.getPoolName=SI0;function _I0(Z,J,Q,$,Y){let{totalCount:X,waitingCount:W,idleCount:K}=J,z=X-K;return Q.add(z-Y.used,{[U0.ATTR_DB_CLIENT_CONNECTION_STATE]:U0.DB_CLIENT_CONNECTION_STATE_VALUE_USED,[U0.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:Z}),Q.add(K-Y.idle,{[U0.ATTR_DB_CLIENT_CONNECTION_STATE]:U0.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,[U0.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:Z}),$.add(W-Y.pending,{[U0.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:Z}),{used:z,idle:K,pending:W}}Qi.updateCounter=_I0;function vI0(Z,J){return function($,Y,X){if($){if($ instanceof Error)Z.recordException(R3($));Z.setStatus({code:Q7.SpanStatusCode.ERROR,message:$.message})}Z.end(),J.call(this,$,Y,X)}}Qi.patchCallbackPGPool=vI0;function bI0(Z,J){return function($){if($){if($ instanceof Error)Z.recordException(R3($));Z.setStatus({code:Q7.SpanStatusCode.ERROR,message:$.message})}Z.end(),J.apply(this,arguments)}}Qi.patchClientConnectCallback=bI0;function xI0(Z){return typeof Z==="object"&&Z!==null&&"message"in Z?String(Z.message):void 0}Qi.getErrorMessage=xI0;function gI0(Z){return typeof Z==="object"&&typeof Z?.text==="string"}Qi.isObjectWithTextString=gI0;function R3(Z){let J=Z?.name??"PostgreSQLError",Q=Z?.code??"UNKNOWN";return`PostgreSQL error of type '${J}' occurred (code: ${Q})`}Qi.sanitizedErrorMessage=R3});var Ki=w((Xi)=>{Object.defineProperty(Xi,"__esModule",{value:!0});Xi.PACKAGE_NAME=Xi.PACKAGE_VERSION=void 0;Xi.PACKAGE_VERSION="0.65.0";Xi.PACKAGE_NAME="@opentelemetry/instrumentation-pg"});var Ui=w((wi)=>{Object.defineProperty(wi,"__esModule",{value:!0});wi.PgInstrumentation=void 0;var z6=c(),X0=C(),zi=pp(),F0=Yi(),Gi=lB(),Bi=Ki(),Hi=KH(),A3=Q0(),P9=s(),KJ=XH();function h8(Z){return Z[Symbol.toStringTag]==="Module"?Z.default:Z}class Fi extends z6.InstrumentationBase{_connectionsCounter={used:0,idle:0,pending:0};_semconvStability;constructor(Z={}){super(Bi.PACKAGE_NAME,Bi.PACKAGE_VERSION,Z);this._semconvStability=(0,z6.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._operationDuration=this.meter.createHistogram(P9.METRIC_DB_CLIENT_OPERATION_DURATION,{description:"Duration of database client operations.",unit:"s",valueType:X0.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[0.001,0.005,0.01,0.05,0.1,0.5,1,5,10]}}),this._connectionsCounter={idle:0,pending:0,used:0},this._connectionsCount=this.meter.createUpDownCounter(KJ.METRIC_DB_CLIENT_CONNECTION_COUNT,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"}),this._connectionPendingRequests=this.meter.createUpDownCounter(KJ.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS,{description:"The number of current pending requests for an open connection.",unit:"{connection}"})}init(){let Z=[">=8.0.3 <9"],J=[">=2.0.0 <4"],Q=new z6.InstrumentationNodeModuleFile("pg/lib/native/client.js",Z,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),$=new z6.InstrumentationNodeModuleFile("pg/lib/client.js",Z,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),Y=new z6.InstrumentationNodeModuleDefinition("pg",Z,(W)=>{let K=h8(W);return this._patchPgClient(K.Client),W},(W)=>{let K=h8(W);return this._unpatchPgClient(K.Client),W},[$,Q]),X=new z6.InstrumentationNodeModuleDefinition("pg-pool",J,(W)=>{let K=h8(W);if((0,z6.isWrapped)(K.prototype.connect))this._unwrap(K.prototype,"connect");return this._wrap(K.prototype,"connect",this._getPoolConnectPatch()),K},(W)=>{let K=h8(W);if((0,z6.isWrapped)(K.prototype.connect))this._unwrap(K.prototype,"connect")});return[Y,X]}_patchPgClient(Z){if(!Z)return;let J=h8(Z);if((0,z6.isWrapped)(J.prototype.query))this._unwrap(J.prototype,"query");if((0,z6.isWrapped)(J.prototype.connect))this._unwrap(J.prototype,"connect");return this._wrap(J.prototype,"query",this._getClientQueryPatch()),this._wrap(J.prototype,"connect",this._getClientConnectPatch()),Z}_unpatchPgClient(Z){let J=h8(Z);if((0,z6.isWrapped)(J.prototype.query))this._unwrap(J.prototype,"query");if((0,z6.isWrapped)(J.prototype.connect))this._unwrap(J.prototype,"connect");return Z}_getClientConnectPatch(){let Z=this;return(J)=>{return function($){let Y=Z.getConfig();if(F0.shouldSkipInstrumentation(Y)||Y.ignoreConnectSpans)return J.call(this,$);let X=Z.tracer.startSpan(Hi.SpanNames.CONNECT,{kind:X0.SpanKind.CLIENT,attributes:F0.getSemanticAttributesFromConnection(this,Z._semconvStability)});if($){let K=X0.trace.getSpan(X0.context.active());if($=F0.patchClientConnectCallback(X,$),K)$=X0.context.bind(X0.context.active(),$)}let W=X0.context.with(X0.trace.setSpan(X0.context.active(),X),()=>{return J.call(this,$)});return Vi(X,W)}}}recordOperationDuration(Z,J){let Q={},$=[P9.ATTR_DB_NAMESPACE,P9.ATTR_ERROR_TYPE,P9.ATTR_SERVER_PORT,P9.ATTR_SERVER_ADDRESS,P9.ATTR_DB_OPERATION_NAME];if(this._semconvStability&z6.SemconvStability.OLD)$.push(KJ.ATTR_DB_SYSTEM);if(this._semconvStability&z6.SemconvStability.STABLE)$.push(P9.ATTR_DB_SYSTEM_NAME);$.forEach((X)=>{if(X in Z)Q[X]=Z[X]});let Y=(0,A3.hrTimeToMilliseconds)((0,A3.hrTimeDuration)(J,(0,A3.hrTime)()))/1000;this._operationDuration.record(Y,Q)}_getClientQueryPatch(){let Z=this;return(J)=>{return this._diag.debug("Patching pg.Client.prototype.query"),function(...$){if(F0.shouldSkipInstrumentation(Z.getConfig()))return J.apply(this,$);let Y=(0,A3.hrTime)(),X=$[0],W=typeof X==="string",K=F0.isObjectWithTextString(X),z=W?{text:X,values:Array.isArray($[1])?$[1]:void 0}:K?{...X,name:X.name,text:X.text,values:X.values??(Array.isArray($[1])?$[1]:void 0)}:void 0,G={[KJ.ATTR_DB_SYSTEM]:KJ.DB_SYSTEM_VALUE_POSTGRESQL,[P9.ATTR_DB_NAMESPACE]:this.database,[P9.ATTR_SERVER_PORT]:this.connectionParameters.port,[P9.ATTR_SERVER_ADDRESS]:this.connectionParameters.host};if(z?.text)G[P9.ATTR_DB_OPERATION_NAME]=F0.parseNormalizedOperationName(z?.text);let H=()=>{Z.recordOperationDuration(G,Y)},B=Z.getConfig(),V=F0.handleConfigQuery.call(this,Z.tracer,B,Z._semconvStability,z);if(B.addSqlCommenterCommentToQueries){if(W)$[0]=(0,Gi.addSqlCommenterComment)(V,X);else if(K&&!("name"in X))$[0]={...X,text:(0,Gi.addSqlCommenterComment)(V,X.text)}}if($.length>0){let U=X0.trace.getSpan(X0.context.active());if(typeof $[$.length-1]==="function"){if($[$.length-1]=F0.patchCallback(B,V,$[$.length-1],G,H),U)$[$.length-1]=X0.context.bind(X0.context.active(),$[$.length-1])}else if(typeof z?.callback==="function"){let j=F0.patchCallback(Z.getConfig(),V,z.callback,G,H);if(U)j=X0.context.bind(X0.context.active(),j);$[0].callback=j}}let{requestHook:F}=B;if(typeof F==="function"&&z)(0,z6.safeExecuteInTheMiddle)(()=>{let{database:U,host:j,port:L,user:O}=this.connectionParameters;F(V,{connection:{database:U,host:j,port:L,user:O},query:{text:z.text,values:z.values,name:z.name}})},(U)=>{if(U)Z._diag.error("Error running query hook",U)},!0);let D;try{D=J.apply(this,$)}catch(U){if(U instanceof Error)V.recordException(F0.sanitizedErrorMessage(U));throw V.setStatus({code:X0.SpanStatusCode.ERROR,message:F0.getErrorMessage(U)}),V.end(),U}if(D instanceof Promise)return D.then((U)=>{return new Promise((j)=>{F0.handleExecutionResult(Z.getConfig(),V,U),H(),V.end(),j(U)})}).catch((U)=>{return new Promise((j,L)=>{if(U instanceof Error)V.recordException(F0.sanitizedErrorMessage(U));V.setStatus({code:X0.SpanStatusCode.ERROR,message:U.message}),H(),V.end(),L(U)})});return D}}}_setPoolConnectEventListeners(Z){if(Z[zi.EVENT_LISTENERS_SET])return;let J=F0.getPoolName(Z.options);Z.on("connect",()=>{this._connectionsCounter=F0.updateCounter(J,Z,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),Z.on("acquire",()=>{this._connectionsCounter=F0.updateCounter(J,Z,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),Z.on("remove",()=>{this._connectionsCounter=F0.updateCounter(J,Z,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),Z.on("release",()=>{this._connectionsCounter=F0.updateCounter(J,Z,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),Z[zi.EVENT_LISTENERS_SET]=!0}_getPoolConnectPatch(){let Z=this;return(J)=>{return function($){let Y=Z.getConfig();if(F0.shouldSkipInstrumentation(Y))return J.call(this,$);if(Z._setPoolConnectEventListeners(this),Y.ignoreConnectSpans)return J.call(this,$);let X=Z.tracer.startSpan(Hi.SpanNames.POOL_CONNECT,{kind:X0.SpanKind.CLIENT,attributes:F0.getSemanticAttributesFromPoolConnection(this.options,Z._semconvStability)});if($){let K=X0.trace.getSpan(X0.context.active());if($=F0.patchCallbackPGPool(X,$),K)$=X0.context.bind(X0.context.active(),$)}let W=X0.context.with(X0.trace.setSpan(X0.context.active(),X),()=>{return J.call(this,$)});return Vi(X,W)}}}}wi.PgInstrumentation=Fi;function Vi(Z,J){if(!(J instanceof Promise))return J;let Q=J;return X0.context.bind(X0.context.active(),Q.then(($)=>{return Z.end(),$}).catch(($)=>{if($ instanceof Error)Z.recordException(F0.sanitizedErrorMessage($));return Z.setStatus({code:X0.SpanStatusCode.ERROR,message:F0.getErrorMessage($)}),Z.end(),Promise.reject($)}))}});var ji=w((I3)=>{Object.defineProperty(I3,"__esModule",{value:!0});I3.AttributeNames=I3.PgInstrumentation=void 0;var $N0=Ui();Object.defineProperty(I3,"PgInstrumentation",{enumerable:!0,get:function(){return $N0.PgInstrumentation}});var YN0=YH();Object.defineProperty(I3,"AttributeNames",{enumerable:!0,get:function(){return YN0.AttributeNames}})});var Ii=w((Ai)=>{Object.defineProperty(Ai,"__esModule",{value:!0});Ai.SeverityNumber=void 0;var BN0;(function(Z){Z[Z.UNSPECIFIED=0]="UNSPECIFIED",Z[Z.TRACE=1]="TRACE",Z[Z.TRACE2=2]="TRACE2",Z[Z.TRACE3=3]="TRACE3",Z[Z.TRACE4=4]="TRACE4",Z[Z.DEBUG=5]="DEBUG",Z[Z.DEBUG2=6]="DEBUG2",Z[Z.DEBUG3=7]="DEBUG3",Z[Z.DEBUG4=8]="DEBUG4",Z[Z.INFO=9]="INFO",Z[Z.INFO2=10]="INFO2",Z[Z.INFO3=11]="INFO3",Z[Z.INFO4=12]="INFO4",Z[Z.WARN=13]="WARN",Z[Z.WARN2=14]="WARN2",Z[Z.WARN3=15]="WARN3",Z[Z.WARN4=16]="WARN4",Z[Z.ERROR=17]="ERROR",Z[Z.ERROR2=18]="ERROR2",Z[Z.ERROR3=19]="ERROR3",Z[Z.ERROR4=20]="ERROR4",Z[Z.FATAL=21]="FATAL",Z[Z.FATAL2=22]="FATAL2",Z[Z.FATAL3=23]="FATAL3",Z[Z.FATAL4=24]="FATAL4"})(BN0=Ai.SeverityNumber||(Ai.SeverityNumber={}))});var N3=w((Ni)=>{Object.defineProperty(Ni,"__esModule",{value:!0});Ni.NOOP_LOGGER=Ni.NoopLogger=void 0;class HH{emit(Z){}}Ni.NoopLogger=HH;Ni.NOOP_LOGGER=new HH});var T3=w((fi)=>{Object.defineProperty(fi,"__esModule",{value:!0});fi.NOOP_LOGGER_PROVIDER=fi.NoopLoggerProvider=void 0;var VN0=N3();class VH{getLogger(Z,J,Q){return new VN0.NoopLogger}}fi.NoopLoggerProvider=VH;fi.NOOP_LOGGER_PROVIDER=new VH});var FH=w((hi)=>{Object.defineProperty(hi,"__esModule",{value:!0});hi.ProxyLogger=void 0;var wN0=N3();class yi{constructor(Z,J,Q,$){this._provider=Z,this.name=J,this.version=Q,this.options=$}emit(Z){this._getLogger().emit(Z)}_getLogger(){if(this._delegate)return this._delegate;let Z=this._provider._getDelegateLogger(this.name,this.version,this.options);if(!Z)return wN0.NOOP_LOGGER;return this._delegate=Z,this._delegate}}hi.ProxyLogger=yi});var wH=w((vi)=>{Object.defineProperty(vi,"__esModule",{value:!0});vi.ProxyLoggerProvider=void 0;var DN0=T3(),UN0=FH();class _i{getLogger(Z,J,Q){var $;return($=this._getDelegateLogger(Z,J,Q))!==null&&$!==void 0?$:new UN0.ProxyLogger(this,Z,J,Q)}_getDelegate(){var Z;return(Z=this._delegate)!==null&&Z!==void 0?Z:DN0.NOOP_LOGGER_PROVIDER}_setDelegate(Z){this._delegate=Z}_getDelegateLogger(Z,J,Q){var $;return($=this._delegate)===null||$===void 0?void 0:$.getLogger(Z,J,Q)}}vi.ProxyLoggerProvider=_i});var di=w((xi)=>{Object.defineProperty(xi,"__esModule",{value:!0});xi._globalThis=void 0;xi._globalThis=typeof globalThis==="object"?globalThis:global});var ci=w((DH)=>{Object.defineProperty(DH,"__esModule",{value:!0});DH._globalThis=void 0;var jN0=di();Object.defineProperty(DH,"_globalThis",{enumerable:!0,get:function(){return jN0._globalThis}})});var mi=w((UH)=>{Object.defineProperty(UH,"__esModule",{value:!0});UH._globalThis=void 0;var LN0=ci();Object.defineProperty(UH,"_globalThis",{enumerable:!0,get:function(){return LN0._globalThis}})});var pi=w((ui)=>{Object.defineProperty(ui,"__esModule",{value:!0});ui.API_BACKWARDS_COMPATIBILITY_VERSION=ui.makeGetter=ui._global=ui.GLOBAL_LOGS_API_KEY=void 0;var CN0=mi();ui.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");ui._global=CN0._globalThis;function PN0(Z,J,Q){return($)=>$===Z?J:Q}ui.makeGetter=PN0;ui.API_BACKWARDS_COMPATIBILITY_VERSION=1});var ai=w((oi)=>{Object.defineProperty(oi,"__esModule",{value:!0});oi.LogsAPI=void 0;var X9=pi(),AN0=T3(),ii=wH();class jH{constructor(){this._proxyLoggerProvider=new ii.ProxyLoggerProvider}static getInstance(){if(!this._instance)this._instance=new jH;return this._instance}setGlobalLoggerProvider(Z){if(X9._global[X9.GLOBAL_LOGS_API_KEY])return this.getLoggerProvider();return X9._global[X9.GLOBAL_LOGS_API_KEY]=(0,X9.makeGetter)(X9.API_BACKWARDS_COMPATIBILITY_VERSION,Z,AN0.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(Z),Z}getLoggerProvider(){var Z,J;return(J=(Z=X9._global[X9.GLOBAL_LOGS_API_KEY])===null||Z===void 0?void 0:Z.call(X9._global,X9.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&J!==void 0?J:this._proxyLoggerProvider}getLogger(Z,J,Q){return this.getLoggerProvider().getLogger(Z,J,Q)}disable(){delete X9._global[X9.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new ii.ProxyLoggerProvider}}oi.LogsAPI=jH});var qH=w((FZ)=>{Object.defineProperty(FZ,"__esModule",{value:!0});FZ.logs=FZ.ProxyLoggerProvider=FZ.ProxyLogger=FZ.NoopLoggerProvider=FZ.NOOP_LOGGER_PROVIDER=FZ.NoopLogger=FZ.NOOP_LOGGER=FZ.SeverityNumber=void 0;var IN0=Ii();Object.defineProperty(FZ,"SeverityNumber",{enumerable:!0,get:function(){return IN0.SeverityNumber}});var si=N3();Object.defineProperty(FZ,"NOOP_LOGGER",{enumerable:!0,get:function(){return si.NOOP_LOGGER}});Object.defineProperty(FZ,"NoopLogger",{enumerable:!0,get:function(){return si.NoopLogger}});var ri=T3();Object.defineProperty(FZ,"NOOP_LOGGER_PROVIDER",{enumerable:!0,get:function(){return ri.NOOP_LOGGER_PROVIDER}});Object.defineProperty(FZ,"NoopLoggerProvider",{enumerable:!0,get:function(){return ri.NoopLoggerProvider}});var NN0=FH();Object.defineProperty(FZ,"ProxyLogger",{enumerable:!0,get:function(){return NN0.ProxyLogger}});var TN0=wH();Object.defineProperty(FZ,"ProxyLoggerProvider",{enumerable:!0,get:function(){return TN0.ProxyLoggerProvider}});var fN0=ai();FZ.logs=fN0.LogsAPI.getInstance()});var Jo=w((ei)=>{Object.defineProperty(ei,"__esModule",{value:!0});ei.disableInstrumentations=ei.enableInstrumentations=void 0;function EN0(Z,J,Q,$){for(let Y=0,X=Z.length;YJ.disable())}ei.disableInstrumentations=yN0});var Wo=w((Yo)=>{Object.defineProperty(Yo,"__esModule",{value:!0});Yo.registerInstrumentations=void 0;var Qo=C(),SN0=qH(),$o=Jo();function _N0(Z){let J=Z.tracerProvider||Qo.trace.getTracerProvider(),Q=Z.meterProvider||Qo.metrics.getMeterProvider(),$=Z.loggerProvider||SN0.logs.getLoggerProvider(),Y=Z.instrumentations?.flat()??[];return(0,$o.enableInstrumentations)(Y,J,Q,$),()=>{(0,$o.disableInstrumentations)(Y)}}Yo.registerInstrumentations=_N0});var jo=w((Do)=>{Object.defineProperty(Do,"__esModule",{value:!0});Do.satisfies=void 0;var PH=C(),Ho=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,vN0=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,bN0={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function xN0(Z,J,Q){if(!gN0(Z))return PH.diag.error(`Invalid version: ${Z}`),!1;if(!J)return!0;J=J.replace(/([<>=~^]+)\s+/g,"$1");let $=uN0(Z);if(!$)return!1;let Y=[],X=Vo($,J,Y,Q);if(X&&!Q?.includePrerelease)return cN0($,Y);return X}Do.satisfies=xN0;function gN0(Z){return typeof Z==="string"&&Ho.test(Z)}function Vo(Z,J,Q,$){if(J.includes("||")){let Y=J.trim().split("||");for(let X of Y)if(LH(Z,X,Q,$))return!0;return!1}else if(J.includes(" - "))J=BT0(J,$);else if(J.includes(" ")){let Y=J.trim().replace(/\s{2,}/g," ").split(" ");for(let X of Y)if(!LH(Z,X,Q,$))return!1;return!0}return LH(Z,J,Q,$)}function LH(Z,J,Q,$){if(J=mN0(J,$),J.includes(" "))return Vo(Z,J,Q,$);else{let Y=lN0(J);return Q.push(Y),dN0(Z,Y)}}function dN0(Z,J){if(J.invalid)return!1;if(!J.version||CH(J.version))return!0;let Q=zo(Z.versionSegments||[],J.versionSegments||[]);if(Q===0){let $=Z.prereleaseSegments||[],Y=J.prereleaseSegments||[];if(!$.length&&!Y.length)Q=0;else if(!$.length&&Y.length)Q=1;else if($.length&&!Y.length)Q=-1;else Q=zo($,Y)}return bN0[J.op]?.includes(Q)}function cN0(Z,J){if(Z.prerelease)return J.some((Q)=>Q.prerelease&&Q.version===Z.version);return!0}function mN0(Z,J){return Z=Z.trim(),Z=zT0(Z,J),Z=KT0(Z),Z=GT0(Z,J),Z=Z.trim(),Z}function G6(Z){return!Z||Z.toLowerCase()==="x"||Z==="*"}function uN0(Z){let J=Z.match(Ho);if(!J){PH.diag.error(`Invalid version: ${Z}`);return}let Q=J.groups.version,$=J.groups.prerelease,Y=J.groups.build,X=Q.split("."),W=$?.split(".");return{op:void 0,version:Q,versionSegments:X,versionSegmentCount:X.length,prerelease:$,prereleaseSegments:W,prereleaseSegmentCount:W?W.length:0,build:Y}}function lN0(Z){if(!Z)return{};let J=Z.match(vN0);if(!J)return PH.diag.error(`Invalid range: ${Z}`),{invalid:!0};let Q=J.groups.op,$=J.groups.version,Y=J.groups.prerelease,X=J.groups.build,W=$.split("."),K=Y?.split(".");if(Q==="==")Q="=";return{op:Q||"=",version:$,versionSegments:W,versionSegmentCount:W.length,prerelease:Y,prereleaseSegments:K,prereleaseSegmentCount:K?K.length:0,build:X}}function CH(Z){return Z==="*"||Z==="x"||Z==="X"}function Ko(Z){let J=parseInt(Z,10);return isNaN(J)?Z:J}function pN0(Z,J){if(typeof Z===typeof J)if(typeof Z==="number")return[Z,J];else if(typeof Z==="string")return[Z,J];else throw Error("Version segments can only be strings or numbers");else return[String(Z),String(J)]}function iN0(Z,J){if(CH(Z)||CH(J))return 0;let[Q,$]=pN0(Ko(Z),Ko(J));if(Q>$)return 1;else if(Q<$)return-1;return 0}function zo(Z,J){for(let Q=0;Q)?=?)",Go=`(?:${wo}|${oN0})`,aN0=`(?:-(${Go}(?:\\.${Go})*))`,Bo=`${Fo}+`,sN0=`(?:\\+(${Bo}(?:\\.${Bo})*))`,OH=`${wo}|x|X|\\*`,zJ=`[v=\\s]*(${OH})(?:\\.(${OH})(?:\\.(${OH})(?:${aN0})?${sN0}?)?)?`,rN0=`^${nN0}\\s*${zJ}$`,tN0=new RegExp(rN0),eN0=`^\\s*(${zJ})\\s+-\\s+(${zJ})\\s*$`,ZT0=new RegExp(eN0),JT0="(?:~>?)",QT0=`^${JT0}${zJ}$`,$T0=new RegExp(QT0),YT0="(?:\\^)",XT0=`^${YT0}${zJ}$`,WT0=new RegExp(XT0);function KT0(Z){let J=$T0;return Z.replace(J,(Q,$,Y,X,W)=>{let K;if(G6($))K="";else if(G6(Y))K=`>=${$}.0.0 <${+$+1}.0.0-0`;else if(G6(X))K=`>=${$}.${Y}.0 <${$}.${+Y+1}.0-0`;else if(W)K=`>=${$}.${Y}.${X}-${W} <${$}.${+Y+1}.0-0`;else K=`>=${$}.${Y}.${X} <${$}.${+Y+1}.0-0`;return K})}function zT0(Z,J){let Q=WT0,$=J?.includePrerelease?"-0":"";return Z.replace(Q,(Y,X,W,K,z)=>{let G;if(G6(X))G="";else if(G6(W))G=`>=${X}.0.0${$} <${+X+1}.0.0-0`;else if(G6(K))if(X==="0")G=`>=${X}.${W}.0${$} <${X}.${+W+1}.0-0`;else G=`>=${X}.${W}.0${$} <${+X+1}.0.0-0`;else if(z)if(X==="0")if(W==="0")G=`>=${X}.${W}.${K}-${z} <${X}.${W}.${+K+1}-0`;else G=`>=${X}.${W}.${K}-${z} <${X}.${+W+1}.0-0`;else G=`>=${X}.${W}.${K}-${z} <${+X+1}.0.0-0`;else if(X==="0")if(W==="0")G=`>=${X}.${W}.${K}${$} <${X}.${W}.${+K+1}-0`;else G=`>=${X}.${W}.${K}${$} <${X}.${+W+1}.0-0`;else G=`>=${X}.${W}.${K} <${+X+1}.0.0-0`;return G})}function GT0(Z,J){let Q=tN0;return Z.replace(Q,($,Y,X,W,K,z)=>{let G=G6(X),H=G||G6(W),B=H||G6(K),V=B;if(Y==="="&&V)Y="";if(z=J?.includePrerelease?"-0":"",G)if(Y===">"||Y==="<")$="<0.0.0-0";else $="*";else if(Y&&V){if(H)W=0;if(K=0,Y===">")if(Y=">=",H)X=+X+1,W=0,K=0;else W=+W+1,K=0;else if(Y==="<=")if(Y="<",H)X=+X+1;else W=+W+1;if(Y==="<")z="-0";$=`${Y+X}.${W}.${K}${z}`}else if(H)$=`>=${X}.0.0${z} <${+X+1}.0.0-0`;else if(B)$=`>=${X}.${W}.0${z} <${X}.${+W+1}.0-0`;return $})}function BT0(Z,J){let Q=ZT0;return Z.replace(Q,($,Y,X,W,K,z,G,H,B,V,F,D)=>{if(G6(X))Y="";else if(G6(W))Y=`>=${X}.0.0${J?.includePrerelease?"-0":""}`;else if(G6(K))Y=`>=${X}.${W}.0${J?.includePrerelease?"-0":""}`;else if(z)Y=`>=${Y}`;else Y=`>=${Y}${J?.includePrerelease?"-0":""}`;if(G6(B))H="";else if(G6(V))H=`<${+B+1}.0.0-0`;else if(G6(F))H=`<${B}.${+V+1}.0-0`;else if(D)H=`<=${B}.${V}.${F}-${D}`;else if(J?.includePrerelease)H=`<${B}.${V}.${+F+1}-0`;else H=`<=${H}`;return`${Y} ${H}`.trim()})}});var AH=w((qo)=>{Object.defineProperty(qo,"__esModule",{value:!0});qo.massUnwrap=qo.unwrap=qo.massWrap=qo.wrap=void 0;var B6=console.error.bind(console);function GJ(Z,J,Q){let $=!!Z[J]&&Object.prototype.propertyIsEnumerable.call(Z,J);Object.defineProperty(Z,J,{configurable:!0,enumerable:$,writable:!0,value:Q})}var HT0=(Z,J,Q)=>{if(!Z||!Z[J]){B6("no original function "+String(J)+" to wrap");return}if(!Q){B6("no wrapper function"),B6(Error().stack);return}let $=Z[J];if(typeof $!=="function"||typeof Q!=="function"){B6("original object and wrapper must be functions");return}let Y=Q($,J);return GJ(Y,"__original",$),GJ(Y,"__unwrap",()=>{if(Z[J]===Y)GJ(Z,J,$)}),GJ(Y,"__wrapped",!0),GJ(Z,J,Y),Y};qo.wrap=HT0;var VT0=(Z,J,Q)=>{if(!Z){B6("must provide one or more modules to patch"),B6(Error().stack);return}else if(!Array.isArray(Z))Z=[Z];if(!(J&&Array.isArray(J))){B6("must provide one or more functions to wrap on modules");return}Z.forEach(($)=>{J.forEach((Y)=>{qo.wrap($,Y,Q)})})};qo.massWrap=VT0;var FT0=(Z,J)=>{if(!Z||!Z[J]){B6("no function to unwrap."),B6(Error().stack);return}let Q=Z[J];if(!Q.__unwrap)B6("no original to unwrap to -- has "+String(J)+" already been unwrapped?");else{Q.__unwrap();return}};qo.unwrap=FT0;var wT0=(Z,J)=>{if(!Z){B6("must provide one or more modules to patch"),B6(Error().stack);return}else if(!Array.isArray(Z))Z=[Z];if(!(J&&Array.isArray(J))){B6("must provide one or more functions to unwrap on modules");return}Z.forEach((Q)=>{J.forEach(($)=>{qo.unwrap(Q,$)})})};qo.massUnwrap=wT0;function BJ(Z){if(Z&&Z.logger)if(typeof Z.logger!=="function")B6("new logger isn't a function, not replacing");else B6=Z.logger}qo.default=BJ;BJ.wrap=qo.wrap;BJ.massWrap=qo.massWrap;BJ.unwrap=qo.unwrap;BJ.massUnwrap=qo.massUnwrap});var ko=w((Co)=>{Object.defineProperty(Co,"__esModule",{value:!0});Co.InstrumentationAbstract=void 0;var IH=C(),UT0=qH(),f3=AH();class Oo{instrumentationName;instrumentationVersion;_config={};_tracer;_meter;_logger;_diag;constructor(Z,J,Q){this.instrumentationName=Z,this.instrumentationVersion=J,this.setConfig(Q),this._diag=IH.diag.createComponentLogger({namespace:Z}),this._tracer=IH.trace.getTracer(Z,J),this._meter=IH.metrics.getMeter(Z,J),this._logger=UT0.logs.getLogger(Z,J),this._updateMetricInstruments()}_wrap=f3.wrap;_unwrap=f3.unwrap;_massWrap=f3.massWrap;_massUnwrap=f3.massUnwrap;get meter(){return this._meter}setMeterProvider(Z){this._meter=Z.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(Z){this._logger=Z.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let Z=this.init()??[];if(!Array.isArray(Z))return[Z];return Z}_updateMetricInstruments(){return}getConfig(){return this._config}setConfig(Z){this._config={enabled:!0,...Z}}setTracerProvider(Z){this._tracer=Z.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(Z,J,Q,$){if(!Z)return;try{Z(Q,$)}catch(Y){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:J},Y)}}}Co.InstrumentationAbstract=Oo});var Io=w((Ro)=>{Object.defineProperty(Ro,"__esModule",{value:!0});Ro.ModuleNameTrie=Ro.ModuleNameSeparator=void 0;Ro.ModuleNameSeparator="/";class NH{hooks=[];children=new Map}class Mo{_trie=new NH;_counter=0;insert(Z){let J=this._trie;for(let Q of Z.moduleName.split(Ro.ModuleNameSeparator)){let $=J.children.get(Q);if(!$)$=new NH,J.children.set(Q,$);J=$}J.hooks.push({hook:Z,insertedId:this._counter++})}search(Z,{maintainInsertionOrder:J,fullOnly:Q}={}){let $=this._trie,Y=[],X=!0;for(let W of Z.split(Ro.ModuleNameSeparator)){let K=$.children.get(W);if(!K){X=!1;break}if(!Q)Y.push(...K.hooks);$=K}if(Q&&X)Y.push(...$.hooks);if(Y.length===0)return[];if(Y.length===1)return[Y[0].hook];if(J)Y.sort((W,K)=>W.insertedId-K.insertedId);return Y.map(({hook:W})=>W)}}Ro.ModuleNameTrie=Mo});var Eo=w((To)=>{Object.defineProperty(To,"__esModule",{value:!0});To.RequireInTheMiddleSingleton=void 0;var jT0=M7(),No=A("path"),fH=Io(),qT0=["afterEach","after","beforeEach","before","describe","it"].every((Z)=>{return typeof global[Z]==="function"});class E3{_moduleNameTrie=new fH.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new jT0.Hook(null,{internals:!0},(Z,J,Q)=>{let $=LT0(J),Y=this._moduleNameTrie.search($,{maintainInsertionOrder:!0,fullOnly:Q===void 0});for(let{onRequire:X}of Y)Z=X(Z,J,Q);return Z})}register(Z,J){let Q={moduleName:Z,onRequire:J};return this._moduleNameTrie.insert(Q),Q}static getInstance(){if(qT0)return new E3;return this._instance=this._instance??new E3}}To.RequireInTheMiddleSingleton=E3;function LT0(Z){return No.sep!==fH.ModuleNameSeparator?Z.split(No.sep).join(fH.ModuleNameSeparator):Z}});var vo=w((PT0)=>{var yo=[],EH=new WeakMap,ho=new WeakMap,So=new Map,_o=[],OT0={set(Z,J,Q){let $=EH.get(Z),Y=$&&$[J];if(typeof Y==="function")return Y(Q);return!0},get(Z,J){if(J===Symbol.toStringTag)return"Module";let Q=ho.get(Z)[J];if(typeof Q==="function")return Q()},defineProperty(Z,J,Q){if(!("value"in Q))throw Error("Getters/setters are not supported for exports property descriptors.");let $=EH.get(Z),Y=$&&$[J];if(typeof Y==="function")return Y(Q.value);return!0}};function CT0(Z,J,Q,$,Y){So.set(Z,Y),EH.set(J,Q),ho.set(J,$);let X=new Proxy(J,OT0);yo.forEach((W)=>W(Z,X,Y)),_o.push([Z,X,Y])}PT0.register=CT0;PT0.importHooks=yo;PT0.specifiers=So;PT0.toHook=_o});var co=w((j46,v8)=>{var bo=A("path"),IT0=K5(),{fileURLToPath:NT0}=A("url"),{MessageChannel:TT0}=A("worker_threads"),{isBuiltin:yH}=A("module");if(!yH)yH=()=>!0;var{importHooks:hH,specifiers:fT0,toHook:ET0}=vo();function xo(Z){hH.push(Z),ET0.forEach(([J,Q,$])=>Z(J,Q,$))}function go(Z){let J=hH.indexOf(Z);if(J>-1)hH.splice(J,1)}function _8(Z,J,Q,$){let Y=Z(J,Q,$);if(Y&&Y!==J){if("default"in J)J.default=Y}}var SH;function yT0(){let{port1:Z,port2:J}=new TT0,Q=0,$;SH=(K)=>{Q++,Z.postMessage(K)},Z.on("message",()=>{if(Q--,$&&Q<=0)$()}).unref();function Y(){let K=setInterval(()=>{},1000),z=new Promise((G)=>{$=G}).then(()=>{clearInterval(K)});if(Q===0)$();return z}let X=J;return{registerOptions:{data:{addHookMessagePort:X,include:[]},transferList:[X]},addHookMessagePort:X,waitForAllMessagesAcknowledged:Y}}function HJ(Z,J,Q){if(this instanceof HJ===!1)return new HJ(Z,J,Q);if(typeof Z==="function")Q=Z,Z=null,J=null;else if(typeof J==="function")Q=J,J=null;let $=J?J.internals===!0:!1;if(SH&&Array.isArray(Z))SH(Z);this._iitmHook=(Y,X,W)=>{let K=Y,z=K.startsWith("node:"),G,H;if(z){let B=Y.slice(5);if(yH(B))Y=B}else if(K.startsWith("file://")){let B=Error.stackTraceLimit;Error.stackTraceLimit=0;try{G=NT0(Y),Y=G}catch(V){}if(Error.stackTraceLimit=B,G){let V=IT0(G);if(V)Y=V.name,H=V.basedir}}if(Z){for(let B of Z)if(G&&B===G)_8(Q,X,G,void 0);else if(B===Y){if(!H)_8(Q,X,Y,H);else if(H.endsWith(fT0.get(K)))_8(Q,X,Y,H);else if($){let V=Y+bo.sep+bo.relative(H,G);_8(Q,X,V,H)}}else if(B===W)_8(Q,X,W,H)}else _8(Q,X,Y,H)},xo(this._iitmHook)}HJ.prototype.unhook=function(){go(this._iitmHook)};v8.exports=HJ;v8.exports.Hook=HJ;v8.exports.addHook=xo;v8.exports.removeHook=go;v8.exports.createAddHookMessageChannel=yT0});var _H=w((mo)=>{Object.defineProperty(mo,"__esModule",{value:!0});mo.isWrapped=mo.safeExecuteInTheMiddleAsync=mo.safeExecuteInTheMiddle=void 0;function hT0(Z,J,Q){let $,Y;try{Y=Z()}catch(X){$=X}finally{if(J($,Y),$&&!Q)throw $;return Y}}mo.safeExecuteInTheMiddle=hT0;async function ST0(Z,J,Q){let $,Y;try{Y=await Z()}catch(X){$=X}finally{if(J($,Y),$&&!Q)throw $;return Y}}mo.safeExecuteInTheMiddleAsync=ST0;function _T0(Z){return typeof Z==="function"&&typeof Z.__original==="function"&&typeof Z.__unwrap==="function"&&Z.__wrapped===!0}mo.isWrapped=_T0});var ao=w((oo)=>{Object.defineProperty(oo,"__esModule",{value:!0});oo.InstrumentationBase=void 0;var VJ=A("path"),lo=A("util"),xT0=jo(),vH=AH(),gT0=ko(),dT0=Eo(),cT0=co(),FJ=C(),mT0=M7(),uT0=A("fs"),lT0=_H();class io extends gT0.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=dT0.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(Z,J,Q){super(Z,J,Q);let $=this.init();if($&&!Array.isArray($))$=[$];if(this._modules=$||[],this._config.enabled)this.enable()}_wrap=(Z,J,Q)=>{if((0,lT0.isWrapped)(Z[J]))this._unwrap(Z,J);if(!lo.types.isProxy(Z))return(0,vH.wrap)(Z,J,Q);else{let $=(0,vH.wrap)(Object.assign({},Z),J,Q);return Object.defineProperty(Z,J,{value:$}),$}};_unwrap=(Z,J)=>{if(!lo.types.isProxy(Z))return(0,vH.unwrap)(Z,J);else return Object.defineProperty(Z,J,{value:Z[J]})};_massWrap=(Z,J,Q)=>{if(!Z){FJ.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray(Z))Z=[Z];if(!(J&&Array.isArray(J))){FJ.diag.error("must provide one or more functions to wrap on modules");return}Z.forEach(($)=>{J.forEach((Y)=>{this._wrap($,Y,Q)})})};_massUnwrap=(Z,J)=>{if(!Z){FJ.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray(Z))Z=[Z];if(!(J&&Array.isArray(J))){FJ.diag.error("must provide one or more functions to wrap on modules");return}Z.forEach((Q)=>{J.forEach(($)=>{this._unwrap(Q,$)})})};_warnOnPreloadedModules(){this._modules.forEach((Z)=>{let{name:J}=Z;try{let Q=A.resolve(J);if(A.cache[Q])this._diag.warn(`Module ${J} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${J}`)}catch{}})}_extractPackageVersion(Z){try{let J=(0,uT0.readFileSync)(VJ.join(Z,"package.json"),{encoding:"utf8"}),Q=JSON.parse(J).version;return typeof Q==="string"?Q:void 0}catch{FJ.diag.warn("Failed extracting version",Z)}return}_onRequire(Z,J,Q,$){if(!$){if(typeof Z.patch==="function"){if(Z.moduleExports=J,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:Z.name}),Z.patch(J)}return J}let Y=this._extractPackageVersion($);if(Z.moduleVersion=Y,Z.name===Q){if(po(Z.supportedVersions,Y,Z.includePrerelease)){if(typeof Z.patch==="function"){if(Z.moduleExports=J,this._enabled)return this._diag.debug("Applying instrumentation patch for module on require hook",{module:Z.name,version:Z.moduleVersion,baseDir:$}),Z.patch(J,Z.moduleVersion)}}return J}let X=Z.files??[],W=VJ.normalize(Q);return X.filter((z)=>z.name===W).filter((z)=>po(z.supportedVersions,Y,Z.includePrerelease)).reduce((z,G)=>{if(G.moduleExports=z,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:Z.name,version:Z.moduleVersion,fileName:G.name,baseDir:$}),G.patch(z,Z.moduleVersion);return z},J)}enable(){if(this._enabled)return;if(this._enabled=!0,this._hooks.length>0){for(let Z of this._modules){if(typeof Z.patch==="function"&&Z.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:Z.name,version:Z.moduleVersion}),Z.patch(Z.moduleExports,Z.moduleVersion);for(let J of Z.files)if(J.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:Z.name,version:Z.moduleVersion,fileName:J.name}),J.patch(J.moduleExports,Z.moduleVersion)}return}this._warnOnPreloadedModules();for(let Z of this._modules){let J=(X,W,K)=>{if(!K&&VJ.isAbsolute(W)){let z=VJ.parse(W);W=z.name,K=z.dir}return this._onRequire(Z,X,W,K)},Q=(X,W,K)=>{return this._onRequire(Z,X,W,K)},$=VJ.isAbsolute(Z.name)?new mT0.Hook([Z.name],{internals:!0},Q):this._requireInTheMiddleSingleton.register(Z.name,Q);this._hooks.push($);let Y=new cT0.Hook([Z.name],{internals:!1},J);this._hooks.push(Y)}}disable(){if(!this._enabled)return;this._enabled=!1;for(let Z of this._modules){if(typeof Z.unpatch==="function"&&Z.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:Z.name,version:Z.moduleVersion}),Z.unpatch(Z.moduleExports,Z.moduleVersion);for(let J of Z.files)if(J.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:Z.name,version:Z.moduleVersion,fileName:J.name}),J.unpatch(J.moduleExports,Z.moduleVersion)}}isEnabled(){return this._enabled}}oo.InstrumentationBase=io;function po(Z,J,Q){if(typeof J>"u")return Z.includes("*");return Z.some(($)=>{return(0,xT0.satisfies)(J,$,{includePrerelease:Q})})}});var so=w((bH)=>{Object.defineProperty(bH,"__esModule",{value:!0});bH.normalize=void 0;var pT0=A("path");Object.defineProperty(bH,"normalize",{enumerable:!0,get:function(){return pT0.normalize}})});var ro=w((y3)=>{Object.defineProperty(y3,"__esModule",{value:!0});y3.normalize=y3.InstrumentationBase=void 0;var oT0=ao();Object.defineProperty(y3,"InstrumentationBase",{enumerable:!0,get:function(){return oT0.InstrumentationBase}});var nT0=so();Object.defineProperty(y3,"normalize",{enumerable:!0,get:function(){return nT0.normalize}})});var xH=w((h3)=>{Object.defineProperty(h3,"__esModule",{value:!0});h3.normalize=h3.InstrumentationBase=void 0;var to=ro();Object.defineProperty(h3,"InstrumentationBase",{enumerable:!0,get:function(){return to.InstrumentationBase}});Object.defineProperty(h3,"normalize",{enumerable:!0,get:function(){return to.normalize}})});var Qn=w((Zn)=>{Object.defineProperty(Zn,"__esModule",{value:!0});Zn.InstrumentationNodeModuleDefinition=void 0;class eo{name;supportedVersions;patch;unpatch;files;constructor(Z,J,Q,$,Y){this.name=Z,this.supportedVersions=J,this.patch=Q,this.unpatch=$,this.files=Y||[]}}Zn.InstrumentationNodeModuleDefinition=eo});var Wn=w((Yn)=>{Object.defineProperty(Yn,"__esModule",{value:!0});Yn.InstrumentationNodeModuleFile=void 0;var rT0=xH();class $n{supportedVersions;patch;unpatch;name;constructor(Z,J,Q,$){this.supportedVersions=J,this.patch=Q,this.unpatch=$,this.name=(0,rT0.normalize)(Z)}}Yn.InstrumentationNodeModuleFile=$n});var Bn=w((zn)=>{Object.defineProperty(zn,"__esModule",{value:!0});zn.semconvStabilityFromStr=zn.SemconvStability=void 0;var S3;(function(Z){Z[Z.STABLE=1]="STABLE",Z[Z.OLD=2]="OLD",Z[Z.DUPLICATE=3]="DUPLICATE"})(S3=zn.SemconvStability||(zn.SemconvStability={}));function tT0(Z,J){let Q=S3.OLD,$=J?.split(",").map((Y)=>Y.trim()).filter((Y)=>Y!=="");for(let Y of $??[])if(Y.toLowerCase()===Z+"/dup"){Q=S3.DUPLICATE;break}else if(Y.toLowerCase()===Z)Q=S3.STABLE;return Q}zn.semconvStabilityFromStr=tT0});var Vn=w((M9)=>{Object.defineProperty(M9,"__esModule",{value:!0});M9.semconvStabilityFromStr=M9.SemconvStability=M9.safeExecuteInTheMiddleAsync=M9.safeExecuteInTheMiddle=M9.isWrapped=M9.InstrumentationNodeModuleFile=M9.InstrumentationNodeModuleDefinition=M9.InstrumentationBase=M9.registerInstrumentations=void 0;var eT0=Wo();Object.defineProperty(M9,"registerInstrumentations",{enumerable:!0,get:function(){return eT0.registerInstrumentations}});var Zf0=xH();Object.defineProperty(M9,"InstrumentationBase",{enumerable:!0,get:function(){return Zf0.InstrumentationBase}});var Jf0=Qn();Object.defineProperty(M9,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return Jf0.InstrumentationNodeModuleDefinition}});var Qf0=Wn();Object.defineProperty(M9,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return Qf0.InstrumentationNodeModuleFile}});var gH=_H();Object.defineProperty(M9,"isWrapped",{enumerable:!0,get:function(){return gH.isWrapped}});Object.defineProperty(M9,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return gH.safeExecuteInTheMiddle}});Object.defineProperty(M9,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return gH.safeExecuteInTheMiddleAsync}});var Hn=Bn();Object.defineProperty(M9,"SemconvStability",{enumerable:!0,get:function(){return Hn.SemconvStability}});Object.defineProperty(M9,"semconvStabilityFromStr",{enumerable:!0,get:function(){return Hn.semconvStabilityFromStr}})});var An=w((Mn)=>{Object.defineProperty(Mn,"__esModule",{value:!0});Mn.PACKAGE_NAME=Mn.PACKAGE_VERSION=void 0;Mn.PACKAGE_VERSION="0.59.0";Mn.PACKAGE_NAME="@opentelemetry/instrumentation-hapi"});var mH=w((In)=>{Object.defineProperty(In,"__esModule",{value:!0});In.HapiLifecycleMethodNames=In.HapiLayerType=In.handlerPatched=In.HapiComponentName=void 0;In.HapiComponentName="@hapi/hapi";In.handlerPatched=Symbol("hapi-handler-patched");In.HapiLayerType={ROUTER:"router",PLUGIN:"plugin",EXT:"server.ext"};In.HapiLifecycleMethodNames=new Set(["onPreAuth","onCredentials","onPostAuth","onPreHandler","onPostHandler","onPreResponse","onRequest"])});var En=w((Tn)=>{Object.defineProperty(Tn,"__esModule",{value:!0});Tn.ATTR_HTTP_METHOD=void 0;Tn.ATTR_HTTP_METHOD="http.method"});var lH=w((yn)=>{Object.defineProperty(yn,"__esModule",{value:!0});yn.AttributeNames=void 0;var kf0;(function(Z){Z.HAPI_TYPE="hapi.type",Z.PLUGIN_NAME="hapi.plugin.name",Z.EXT_TYPE="server.ext.type"})(kf0=yn.AttributeNames||(yn.AttributeNames={}))});var bn=w((_n)=>{Object.defineProperty(_n,"__esModule",{value:!0});_n.getPluginFromInput=_n.getExtMetadata=_n.getRouteMetadata=_n.isPatchableExtMethod=_n.isDirectExtInput=_n.isLifecycleExtEventObj=_n.isLifecycleExtType=_n.getPluginName=void 0;var hn=s(),Mf0=En(),wJ=mH(),X7=lH(),Sn=c();function Rf0(Z){if(Z.name)return Z.name;else return Z.pkg.name}_n.getPluginName=Rf0;var Af0=(Z)=>{return typeof Z==="string"&&wJ.HapiLifecycleMethodNames.has(Z)};_n.isLifecycleExtType=Af0;var If0=(Z)=>{let J=Z?.type;return J!==void 0&&_n.isLifecycleExtType(J)};_n.isLifecycleExtEventObj=If0;var Nf0=(Z)=>{return Array.isArray(Z)&&Z.length<=3&&_n.isLifecycleExtType(Z[0])&&typeof Z[1]==="function"};_n.isDirectExtInput=Nf0;var Tf0=(Z)=>{return!Array.isArray(Z)};_n.isPatchableExtMethod=Tf0;var ff0=(Z,J,Q)=>{let $={[hn.ATTR_HTTP_ROUTE]:Z.path};if(J&Sn.SemconvStability.OLD)$[Mf0.ATTR_HTTP_METHOD]=Z.method;if(J&Sn.SemconvStability.STABLE)$[hn.ATTR_HTTP_REQUEST_METHOD]=Z.method;let Y;if(Q)$[X7.AttributeNames.HAPI_TYPE]=wJ.HapiLayerType.PLUGIN,$[X7.AttributeNames.PLUGIN_NAME]=Q,Y=`${Q}: route - ${Z.path}`;else $[X7.AttributeNames.HAPI_TYPE]=wJ.HapiLayerType.ROUTER,Y=`route - ${Z.path}`;return{attributes:$,name:Y}};_n.getRouteMetadata=ff0;var Ef0=(Z,J)=>{if(J)return{attributes:{[X7.AttributeNames.EXT_TYPE]:Z,[X7.AttributeNames.HAPI_TYPE]:wJ.HapiLayerType.EXT,[X7.AttributeNames.PLUGIN_NAME]:J},name:`${J}: ext - ${Z}`};return{attributes:{[X7.AttributeNames.EXT_TYPE]:Z,[X7.AttributeNames.HAPI_TYPE]:wJ.HapiLayerType.EXT},name:`ext - ${Z}`}};_n.getExtMetadata=Ef0;var yf0=(Z)=>{if("plugin"in Z){if("plugin"in Z.plugin)return Z.plugin.plugin;return Z.plugin}return Z};_n.getPluginFromInput=yf0});var un=w((cn)=>{Object.defineProperty(cn,"__esModule",{value:!0});cn.HapiInstrumentation=void 0;var g6=C(),xn=Q0(),DJ=c(),gn=An(),UJ=mH(),wZ=bn();class dn extends DJ.InstrumentationBase{_semconvStability;constructor(Z={}){super(gn.PACKAGE_NAME,gn.PACKAGE_VERSION,Z);this._semconvStability=(0,DJ.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new DJ.InstrumentationNodeModuleDefinition(UJ.HapiComponentName,[">=17.0.0 <22"],(Z)=>{let J=Z[Symbol.toStringTag]==="Module"?Z.default:Z;if(!(0,DJ.isWrapped)(J.server))this._wrap(J,"server",this._getServerPatch.bind(this));if(!(0,DJ.isWrapped)(J.Server))this._wrap(J,"Server",this._getServerPatch.bind(this));return J},(Z)=>{let J=Z[Symbol.toStringTag]==="Module"?Z.default:Z;this._massUnwrap([J],["server","Server"])})}_getServerPatch(Z){let J=this,Q=this;return function(Y){let X=Z.apply(this,[Y]);return Q._wrap(X,"route",(W)=>{return J._getServerRoutePatch.bind(J)(W)}),Q._wrap(X,"ext",(W)=>{return J._getServerExtPatch.bind(J)(W)}),Q._wrap(X,"register",J._getServerRegisterPatch.bind(J)),X}}_getServerRegisterPatch(Z){let J=this;return function($,Y){if(Array.isArray($))for(let X of $){let W=(0,wZ.getPluginFromInput)(X);J._wrapRegisterHandler(W)}else{let X=(0,wZ.getPluginFromInput)($);J._wrapRegisterHandler(X)}return Z.apply(this,[$,Y])}}_getServerExtPatch(Z,J){let Q=this;return function(...Y){if(Array.isArray(Y[0])){let X=Y[0];for(let W=0;W{return J._getServerRoutePatch.bind(J)(z,Q)}),Y._wrap(W,"ext",(z)=>{return J._getServerExtPatch.bind(J)(z,Q)}),$.call(this,W,K)};Z.register=X}_wrapExtMethods(Z,J,Q){let $=this;if(Z instanceof Array){for(let Y=0;Y{return async function(...X){if(g6.trace.getSpan(g6.context.active())===void 0)return await Y.call(this,...X);let W=(0,xn.getRPCMetadata)(g6.context.active());if(W?.type===xn.RPCType.HTTP)W.route=Z.path;let K=(0,wZ.getRouteMetadata)(Z,Q._semconvStability,J),z=Q.tracer.startSpan(K.name,{attributes:K.attributes});try{return await g6.context.with(g6.trace.setSpan(g6.context.active(),z),()=>Y.call(this,...X))}catch(G){throw z.recordException(G),z.setStatus({code:g6.SpanStatusCode.ERROR,message:G.message}),G}finally{z.end()}}};if(typeof Z.handler==="function")Z.handler=$(Z.handler);else if(typeof Z.options==="function"){let Y=Z.options;Z.options=function(X){let W=Y(X);if(typeof W.handler==="function")W.handler=$(W.handler);return W}}else if(typeof Z.options?.handler==="function")Z.options.handler=$(Z.options.handler);return Z}}cn.HapiInstrumentation=dn});var ln=w((v3)=>{Object.defineProperty(v3,"__esModule",{value:!0});v3.AttributeNames=v3.HapiInstrumentation=void 0;var gf0=un();Object.defineProperty(v3,"HapiInstrumentation",{enumerable:!0,get:function(){return gf0.HapiInstrumentation}});var df0=lH();Object.defineProperty(v3,"AttributeNames",{enumerable:!0,get:function(){return df0.AttributeNames}})});var g3=w((en)=>{Object.defineProperty(en,"__esModule",{value:!0});en.KoaLayerType=void 0;var of0;(function(Z){Z.ROUTER="router",Z.MIDDLEWARE="middleware"})(of0=en.KoaLayerType||(en.KoaLayerType={}))});var Qa=w((Za)=>{Object.defineProperty(Za,"__esModule",{value:!0});Za.PACKAGE_NAME=Za.PACKAGE_VERSION=void 0;Za.PACKAGE_VERSION="0.61.0";Za.PACKAGE_NAME="@opentelemetry/instrumentation-koa"});var aH=w(($a)=>{Object.defineProperty($a,"__esModule",{value:!0});$a.AttributeNames=void 0;var af0;(function(Z){Z.KOA_TYPE="koa.type",Z.KOA_NAME="koa.name"})(af0=$a.AttributeNames||($a.AttributeNames={}))});var Ka=w((Xa)=>{Object.defineProperty(Xa,"__esModule",{value:!0});Xa.isLayerIgnored=Xa.getMiddlewareMetadata=void 0;var Ya=g3(),d3=aH(),sf0=s(),rf0=(Z,J,Q,$)=>{if(Q)return{attributes:{[d3.AttributeNames.KOA_NAME]:$?.toString(),[d3.AttributeNames.KOA_TYPE]:Ya.KoaLayerType.ROUTER,[sf0.ATTR_HTTP_ROUTE]:$?.toString()},name:Z._matchedRouteName||`router - ${$}`};else return{attributes:{[d3.AttributeNames.KOA_NAME]:J.name??"middleware",[d3.AttributeNames.KOA_TYPE]:Ya.KoaLayerType.MIDDLEWARE},name:`middleware - ${J.name}`}};Xa.getMiddlewareMetadata=rf0;var tf0=(Z,J)=>{return!!(Array.isArray(J?.ignoreLayersType)&&J?.ignoreLayersType?.includes(Z))};Xa.isLayerIgnored=tf0});var Ba=w((za)=>{Object.defineProperty(za,"__esModule",{value:!0});za.kLayerPatched=void 0;za.kLayerPatched=Symbol("koa-layer-patched")});var La=w((ja)=>{Object.defineProperty(ja,"__esModule",{value:!0});ja.KoaInstrumentation=void 0;var x9=C(),qJ=c(),Ha=g3(),Va=Qa(),Fa=Ka(),wa=Q0(),Da=Ba();class Ua extends qJ.InstrumentationBase{constructor(Z={}){super(Va.PACKAGE_NAME,Va.PACKAGE_VERSION,Z)}init(){return new qJ.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],(Z)=>{let J=Z[Symbol.toStringTag]==="Module"?Z.default:Z;if(J==null)return J;if((0,qJ.isWrapped)(J.prototype.use))this._unwrap(J.prototype,"use");return this._wrap(J.prototype,"use",this._getKoaUsePatch.bind(this)),Z},(Z)=>{let J=Z[Symbol.toStringTag]==="Module"?Z.default:Z;if((0,qJ.isWrapped)(J.prototype.use))this._unwrap(J.prototype,"use")})}_getKoaUsePatch(Z){let J=this;return function($){let Y;if($.router)Y=J._patchRouterDispatch($);else Y=J._patchLayer($,!1);return Z.apply(this,[Y])}}_patchRouterDispatch(Z){x9.diag.debug("Patching @koa/router dispatch");let Q=Z.router?.stack??[];for(let $ of Q){let{path:Y,stack:X}=$;for(let W=0;W{if(x9.trace.getSpan(x9.context.active())===void 0)return Z(Y,X);let K=(0,Fa.getMiddlewareMetadata)(Y,Z,J,Q),z=this.tracer.startSpan(K.name,{attributes:K.attributes}),G=(0,wa.getRPCMetadata)(x9.context.active());if(G?.type===wa.RPCType.HTTP&&Y._matchedRoute)G.route=Y._matchedRoute.toString();let{requestHook:H}=this.getConfig();if(H)(0,qJ.safeExecuteInTheMiddle)(()=>H(z,{context:Y,middlewareLayer:Z,layerType:$}),(V)=>{if(V)x9.diag.error("koa instrumentation: request hook failed",V)},!0);let B=x9.trace.setSpan(x9.context.active(),z);return x9.context.with(B,async()=>{try{return await Z(Y,X)}catch(V){throw z.recordException(V),V}finally{z.end()}})}}}ja.KoaInstrumentation=Ua});var Oa=w((LJ)=>{Object.defineProperty(LJ,"__esModule",{value:!0});LJ.KoaLayerType=LJ.AttributeNames=LJ.KoaInstrumentation=void 0;var ZE0=La();Object.defineProperty(LJ,"KoaInstrumentation",{enumerable:!0,get:function(){return ZE0.KoaInstrumentation}});var JE0=aH();Object.defineProperty(LJ,"AttributeNames",{enumerable:!0,get:function(){return JE0.AttributeNames}});var QE0=g3();Object.defineProperty(LJ,"KoaLayerType",{enumerable:!0,get:function(){return QE0.KoaLayerType}})});var rH=w((Na)=>{Object.defineProperty(Na,"__esModule",{value:!0});Na.ConnectNames=Na.ConnectTypes=Na.AttributeNames=void 0;var XE0;(function(Z){Z.CONNECT_TYPE="connect.type",Z.CONNECT_NAME="connect.name"})(XE0=Na.AttributeNames||(Na.AttributeNames={}));var WE0;(function(Z){Z.MIDDLEWARE="middleware",Z.REQUEST_HANDLER="request_handler"})(WE0=Na.ConnectTypes||(Na.ConnectTypes={}));var KE0;(function(Z){Z.MIDDLEWARE="middleware",Z.REQUEST_HANDLER="request handler"})(KE0=Na.ConnectNames||(Na.ConnectNames={}))});var Ea=w((Ta)=>{Object.defineProperty(Ta,"__esModule",{value:!0});Ta.PACKAGE_NAME=Ta.PACKAGE_VERSION=void 0;Ta.PACKAGE_VERSION="0.56.0";Ta.PACKAGE_NAME="@opentelemetry/instrumentation-connect"});var Sa=w((ya)=>{Object.defineProperty(ya,"__esModule",{value:!0});ya._LAYERS_STORE_PROPERTY=void 0;ya._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")});var ba=w((_a)=>{Object.defineProperty(_a,"__esModule",{value:!0});_a.generateRoute=_a.replaceCurrentStackRoute=_a.addNewStackLayer=void 0;var GE0=C(),K7=Sa(),BE0=(Z)=>{if(Array.isArray(Z[K7._LAYERS_STORE_PROPERTY])===!1)Object.defineProperty(Z,K7._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]});Z[K7._LAYERS_STORE_PROPERTY].push("/");let J=Z[K7._LAYERS_STORE_PROPERTY].length;return()=>{if(J===Z[K7._LAYERS_STORE_PROPERTY].length)Z[K7._LAYERS_STORE_PROPERTY].pop();else GE0.diag.warn("Connect: Trying to pop the stack multiple time")}};_a.addNewStackLayer=BE0;var HE0=(Z,J)=>{if(J)Z[K7._LAYERS_STORE_PROPERTY].splice(-1,1,J)};_a.replaceCurrentStackRoute=HE0;var VE0=(Z)=>{return Z[K7._LAYERS_STORE_PROPERTY].reduce((J,Q)=>J.replace(/\/+$/,"")+Q)};_a.generateRoute=VE0});var ua=w((ca)=>{Object.defineProperty(ca,"__esModule",{value:!0});ca.ConnectInstrumentation=ca.ANONYMOUS_NAME=void 0;var DE0=C(),xa=Q0(),x8=rH(),ga=Ea(),c3=c(),UE0=s(),tH=ba();ca.ANONYMOUS_NAME="anonymous";class da extends c3.InstrumentationBase{constructor(Z={}){super(ga.PACKAGE_NAME,ga.PACKAGE_VERSION,Z)}init(){return[new c3.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],(Z)=>{return this._patchConstructor(Z)})]}_patchApp(Z){if(!(0,c3.isWrapped)(Z.use))this._wrap(Z,"use",this._patchUse.bind(this));if(!(0,c3.isWrapped)(Z.handle))this._wrap(Z,"handle",this._patchHandle.bind(this))}_patchConstructor(Z){let J=this;return function(...Q){let $=Z.apply(this,Q);return J._patchApp($),$}}_patchNext(Z,J){return function($){let Y=Z.apply(this,[$]);return J(),Y}}_startSpan(Z,J){let Q,$,Y;if(Z)Q=x8.ConnectTypes.REQUEST_HANDLER,Y=x8.ConnectNames.REQUEST_HANDLER,$=Z;else Q=x8.ConnectTypes.MIDDLEWARE,Y=x8.ConnectNames.MIDDLEWARE,$=J.name||ca.ANONYMOUS_NAME;let X=`${Y} - ${$}`,W={attributes:{[UE0.ATTR_HTTP_ROUTE]:Z.length>0?Z:"/",[x8.AttributeNames.CONNECT_TYPE]:Q,[x8.AttributeNames.CONNECT_NAME]:$}};return this.tracer.startSpan(X,W)}_patchMiddleware(Z,J){let Q=this,$=J.length===4;function Y(){if(!Q.isEnabled())return J.apply(this,arguments);let[X,W,K]=$?[1,2,3]:[0,1,2],z=arguments[X],G=arguments[W],H=arguments[K];(0,tH.replaceCurrentStackRoute)(z,Z);let B=(0,xa.getRPCMetadata)(DE0.context.active());if(Z&&B?.type===xa.RPCType.HTTP)B.route=(0,tH.generateRoute)(z);let V="";if(Z)V=`request handler - ${Z}`;else V=`middleware - ${J.name||ca.ANONYMOUS_NAME}`;let F=Q._startSpan(Z,J);Q._diag.debug("start span",V);let D=!1;function U(){if(!D)D=!0,Q._diag.debug(`finishing span ${F.name}`),F.end();else Q._diag.debug(`span ${F.name} - already finished`);G.removeListener("close",U)}return G.addListener("close",U),arguments[K]=Q._patchNext(H,U),J.apply(this,arguments)}return Object.defineProperty(Y,"length",{value:J.length,writable:!1,configurable:!0}),Y}_patchUse(Z){let J=this;return function(...Q){let $=Q[Q.length-1],Y=Q[Q.length-2]||"";return Q[Q.length-1]=J._patchMiddleware(Y,$),Z.apply(this,Q)}}_patchHandle(Z){let J=this;return function(){let[Q,$]=[0,2],Y=arguments[Q],X=arguments[$],W=(0,tH.addNewStackLayer)(Y);if(typeof X==="function")arguments[$]=J._patchOut(X,W);return Z.apply(this,arguments)}}_patchOut(Z,J){return function(...$){return J(),Reflect.apply(Z,this,$)}}}ca.ConnectInstrumentation=da});var pa=w((F1)=>{Object.defineProperty(F1,"__esModule",{value:!0});F1.ConnectTypes=F1.ConnectNames=F1.AttributeNames=F1.ANONYMOUS_NAME=F1.ConnectInstrumentation=void 0;var la=ua();Object.defineProperty(F1,"ConnectInstrumentation",{enumerable:!0,get:function(){return la.ConnectInstrumentation}});Object.defineProperty(F1,"ANONYMOUS_NAME",{enumerable:!0,get:function(){return la.ANONYMOUS_NAME}});var ZV=rH();Object.defineProperty(F1,"AttributeNames",{enumerable:!0,get:function(){return ZV.AttributeNames}});Object.defineProperty(F1,"ConnectNames",{enumerable:!0,get:function(){return ZV.ConnectNames}});Object.defineProperty(F1,"ConnectTypes",{enumerable:!0,get:function(){return ZV.ConnectTypes}})});var ta=w((sa)=>{Object.defineProperty(sa,"__esModule",{value:!0});sa.DB_SYSTEM_VALUE_MSSQL=sa.ATTR_NET_PEER_PORT=sa.ATTR_NET_PEER_NAME=sa.ATTR_DB_USER=sa.ATTR_DB_SYSTEM=sa.ATTR_DB_STATEMENT=sa.ATTR_DB_SQL_TABLE=sa.ATTR_DB_NAME=void 0;sa.ATTR_DB_NAME="db.name";sa.ATTR_DB_SQL_TABLE="db.sql.table";sa.ATTR_DB_STATEMENT="db.statement";sa.ATTR_DB_SYSTEM="db.system";sa.ATTR_DB_USER="db.user";sa.ATTR_NET_PEER_NAME="net.peer.name";sa.ATTR_NET_PEER_PORT="net.peer.port";sa.DB_SYSTEM_VALUE_MSSQL="mssql"});var Js=w((ea)=>{Object.defineProperty(ea,"__esModule",{value:!0});ea.once=ea.getSpanName=void 0;function AE0(Z,J,Q,$){if(Z==="execBulkLoad"&&$&&J)return`${Z} ${$} ${J}`;if(Z==="callProcedure"){if(J)return`${Z} ${Q} ${J}`;return`${Z} ${Q}`}if(J)return`${Z} ${J}`;return`${Z}`}ea.getSpanName=AE0;var IE0=(Z)=>{let J=!1;return(...Q)=>{if(J)return;return J=!0,Z(...Q)}};ea.once=IE0});var Ys=w((Qs)=>{Object.defineProperty(Qs,"__esModule",{value:!0});Qs.PACKAGE_NAME=Qs.PACKAGE_VERSION=void 0;Qs.PACKAGE_VERSION="0.32.0";Qs.PACKAGE_NAME="@opentelemetry/instrumentation-tedious"});var Hs=w((Gs)=>{Object.defineProperty(Gs,"__esModule",{value:!0});Gs.TediousInstrumentation=Gs.INJECTED_CTX=void 0;var g8=C(),fE0=A("events"),g9=c(),w1=s(),z7=ta(),Xs=Js(),Ws=Ys(),zs=Symbol("opentelemetry.instrumentation-tedious.current-database");Gs.INJECTED_CTX=Symbol("opentelemetry.instrumentation-tedious.context-info-injected");var Ks=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function m3(Z){Object.defineProperty(this,zs,{value:Z,writable:!0})}class QV extends g9.InstrumentationBase{static COMPONENT="tedious";_netSemconvStability;_dbSemconvStability;constructor(Z={}){super(Ws.PACKAGE_NAME,Ws.PACKAGE_VERSION,Z);this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,g9.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,g9.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new g9.InstrumentationNodeModuleDefinition(QV.COMPONENT,[">=1.11.0 <20"],(Z)=>{let J=Z.Connection.prototype;for(let Q of Ks){if((0,g9.isWrapped)(J[Q]))this._unwrap(J,Q);this._wrap(J,Q,this._patchQuery(Q,Z))}if((0,g9.isWrapped)(J.connect))this._unwrap(J,"connect");return this._wrap(J,"connect",this._patchConnect),Z},(Z)=>{if(Z===void 0)return;let J=Z.Connection.prototype;for(let Q of Ks)this._unwrap(J,Q);this._unwrap(J,"connect")})]}_patchConnect(Z){return function(){return m3.call(this,this.config?.options?.database),this.removeListener("databaseChange",m3),this.on("databaseChange",m3),this.once("end",()=>{this.removeListener("databaseChange",m3)}),Z.apply(this,arguments)}}_buildTraceparent(Z){let J=Z.spanContext();return`00-${J.traceId}-${J.spanId}-0${Number(J.traceFlags||g8.TraceFlags.NONE).toString(16)}`}_injectContextInfo(Z,J,Q){return new Promise(($)=>{try{let X=new J.Request("set context_info @opentelemetry_traceparent",(K)=>{$()});Object.defineProperty(X,Gs.INJECTED_CTX,{value:!0});let W=Buffer.from(Q,"utf8");X.addParameter("opentelemetry_traceparent",J.TYPES.VarBinary,W,{length:W.length}),Z.execSql(X)}catch{$()}})}_shouldInjectFor(Z){return Z==="execSql"||Z==="execSqlBatch"||Z==="callProcedure"||Z==="execute"}_patchQuery(Z,J){return(Q)=>{let $=this;function Y(X){if(X?.[Gs.INJECTED_CTX])return Q.apply(this,arguments);if(!(X instanceof fE0.EventEmitter))return $._diag.warn(`Unexpected invocation of patched ${Z} method. Span not recorded`),Q.apply(this,arguments);let W=0,K=0,z=()=>K++,G=()=>W++,H=this[zs],B=((M)=>{if(M.sqlTextOrProcedure==="sp_prepare"&&M.parametersByName?.stmt?.value)return M.parametersByName.stmt.value;return M.sqlTextOrProcedure})(X),V={};if($._dbSemconvStability&g9.SemconvStability.OLD)V[z7.ATTR_DB_SYSTEM]=z7.DB_SYSTEM_VALUE_MSSQL,V[z7.ATTR_DB_NAME]=H,V[z7.ATTR_DB_USER]=this.config?.userName??this.config?.authentication?.options?.userName,V[z7.ATTR_DB_STATEMENT]=B,V[z7.ATTR_DB_SQL_TABLE]=X.table;if($._dbSemconvStability&g9.SemconvStability.STABLE)V[w1.ATTR_DB_NAMESPACE]=H,V[w1.ATTR_DB_SYSTEM_NAME]=w1.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,V[w1.ATTR_DB_QUERY_TEXT]=B,V[w1.ATTR_DB_COLLECTION_NAME]=X.table;if($._netSemconvStability&g9.SemconvStability.OLD)V[z7.ATTR_NET_PEER_NAME]=this.config?.server,V[z7.ATTR_NET_PEER_PORT]=this.config?.options?.port;if($._netSemconvStability&g9.SemconvStability.STABLE)V[w1.ATTR_SERVER_ADDRESS]=this.config?.server,V[w1.ATTR_SERVER_PORT]=this.config?.options?.port;let F=$.tracer.startSpan((0,Xs.getSpanName)(Z,H,B,X.table),{kind:g8.SpanKind.CLIENT,attributes:V}),D=(0,Xs.once)((M)=>{if(X.removeListener("done",z),X.removeListener("doneInProc",z),X.removeListener("doneProc",G),X.removeListener("error",D),this.removeListener("end",D),F.setAttribute("tedious.procedure_count",W),F.setAttribute("tedious.statement_count",K),M)F.setStatus({code:g8.SpanStatusCode.ERROR,message:M.message});F.end()});if(X.on("done",z),X.on("doneInProc",z),X.on("doneProc",G),X.once("error",D),this.on("end",D),typeof X.callback==="function")$._wrap(X,"callback",$._patchCallbackQuery(D));else $._diag.error("Expected request.callback to be a function");let U=()=>{return g8.context.with(g8.trace.setSpan(g8.context.active(),F),Q,this,...arguments)};if(!($.getConfig().enableTraceContextPropagation&&$._shouldInjectFor(Z)))return U();let O=$._buildTraceparent(F);$._injectContextInfo(this,J,O).finally(U)}return Object.defineProperty(Y,"length",{value:Q.length,writable:!1}),Y}}_patchCallbackQuery(Z){return(J)=>{return function(Q,$,Y){return Z(Q),J.apply(this,arguments)}}}}Gs.TediousInstrumentation=QV});var Vs=w(($V)=>{Object.defineProperty($V,"__esModule",{value:!0});$V.TediousInstrumentation=void 0;var EE0=Hs();Object.defineProperty($V,"TediousInstrumentation",{enumerable:!0,get:function(){return EE0.TediousInstrumentation}})});var Ls=w((js)=>{Object.defineProperty(js,"__esModule",{value:!0});js.PACKAGE_NAME=js.PACKAGE_VERSION=void 0;js.PACKAGE_VERSION="0.56.0";js.PACKAGE_NAME="@opentelemetry/instrumentation-generic-pool"});var Ms=w((Ps)=>{Object.defineProperty(Ps,"__esModule",{value:!0});Ps.GenericPoolInstrumentation=void 0;var d8=C(),D1=c(),Os=Ls(),YV="generic-pool";class Cs extends D1.InstrumentationBase{_isDisabled=!1;constructor(Z={}){super(Os.PACKAGE_NAME,Os.PACKAGE_VERSION,Z)}init(){return[new D1.InstrumentationNodeModuleDefinition(YV,[">=3.0.0 <4"],(Z)=>{let J=Z.Pool;if((0,D1.isWrapped)(J.prototype.acquire))this._unwrap(J.prototype,"acquire");return this._wrap(J.prototype,"acquire",this._acquirePatcher.bind(this)),Z},(Z)=>{let J=Z.Pool;return this._unwrap(J.prototype,"acquire"),Z}),new D1.InstrumentationNodeModuleDefinition(YV,[">=2.4.0 <3"],(Z)=>{let J=Z.Pool;if((0,D1.isWrapped)(J.prototype.acquire))this._unwrap(J.prototype,"acquire");return this._wrap(J.prototype,"acquire",this._acquireWithCallbacksPatcher.bind(this)),Z},(Z)=>{let J=Z.Pool;return this._unwrap(J.prototype,"acquire"),Z}),new D1.InstrumentationNodeModuleDefinition(YV,[">=2.0.0 <2.4"],(Z)=>{if(this._isDisabled=!1,(0,D1.isWrapped)(Z.Pool))this._unwrap(Z,"Pool");return this._wrap(Z,"Pool",this._poolWrapper.bind(this)),Z},(Z)=>{return this._isDisabled=!0,Z})]}_acquirePatcher(Z){let J=this;return function(...$){let Y=d8.context.active(),X=J.tracer.startSpan("generic-pool.acquire",{},Y);return d8.context.with(d8.trace.setSpan(Y,X),()=>{return Z.call(this,...$).then((W)=>{return X.end(),W},(W)=>{throw X.recordException(W),X.end(),W})})}}_poolWrapper(Z){let J=this;return function(){let $=Z.apply(this,arguments);return J._wrap($,"acquire",J._acquireWithCallbacksPatcher.bind(J)),$}}_acquireWithCallbacksPatcher(Z){let J=this;return function($,Y){if(J._isDisabled)return Z.call(this,$,Y);let X=d8.context.active(),W=J.tracer.startSpan("generic-pool.acquire",{},X);return d8.context.with(d8.trace.setSpan(X,W),()=>{Z.call(this,(K,z)=>{if(W.end(),$)return $(K,z)},Y)})}}}Ps.GenericPoolInstrumentation=Cs});var Rs=w((XV)=>{Object.defineProperty(XV,"__esModule",{value:!0});XV.GenericPoolInstrumentation=void 0;var vE0=Ms();Object.defineProperty(XV,"GenericPoolInstrumentation",{enumerable:!0,get:function(){return vE0.GenericPoolInstrumentation}})});var WV=w((fs)=>{Object.defineProperty(fs,"__esModule",{value:!0});fs.ATTR_NET_PEER_PORT=fs.ATTR_NET_PEER_NAME=fs.ATTR_MESSAGING_SYSTEM=fs.ATTR_MESSAGING_OPERATION=void 0;fs.ATTR_MESSAGING_OPERATION="messaging.operation";fs.ATTR_MESSAGING_SYSTEM="messaging.system";fs.ATTR_NET_PEER_NAME="net.peer.name";fs.ATTR_NET_PEER_PORT="net.peer.port"});var KV=w((ys)=>{Object.defineProperty(ys,"__esModule",{value:!0});ys.ATTR_MESSAGING_CONVERSATION_ID=ys.OLD_ATTR_MESSAGING_MESSAGE_ID=ys.MESSAGING_DESTINATION_KIND_VALUE_TOPIC=ys.ATTR_MESSAGING_URL=ys.ATTR_MESSAGING_PROTOCOL_VERSION=ys.ATTR_MESSAGING_PROTOCOL=ys.MESSAGING_OPERATION_VALUE_PROCESS=ys.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY=ys.ATTR_MESSAGING_DESTINATION_KIND=ys.ATTR_MESSAGING_DESTINATION=void 0;ys.ATTR_MESSAGING_DESTINATION="messaging.destination";ys.ATTR_MESSAGING_DESTINATION_KIND="messaging.destination_kind";ys.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY="messaging.rabbitmq.routing_key";ys.MESSAGING_OPERATION_VALUE_PROCESS="process";ys.ATTR_MESSAGING_PROTOCOL="messaging.protocol";ys.ATTR_MESSAGING_PROTOCOL_VERSION="messaging.protocol_version";ys.ATTR_MESSAGING_URL="messaging.url";ys.MESSAGING_DESTINATION_KIND_VALUE_TOPIC="topic";ys.OLD_ATTR_MESSAGING_MESSAGE_ID="messaging.message_id";ys.ATTR_MESSAGING_CONVERSATION_ID="messaging.conversation_id"});var zV=w((_s)=>{Object.defineProperty(_s,"__esModule",{value:!0});_s.DEFAULT_CONFIG=_s.EndOperation=void 0;var rE0;(function(Z){Z.AutoAck="auto ack",Z.Ack="ack",Z.AckAll="ackAll",Z.Reject="reject",Z.Nack="nack",Z.NackAll="nackAll",Z.ChannelClosed="channel closed",Z.ChannelError="channel error",Z.InstrumentationTimeout="instrumentation timeout"})(rE0=_s.EndOperation||(_s.EndOperation={}));_s.DEFAULT_CONFIG={consumeTimeoutMs:60000,useLinksForConsume:!1}});var ms=w((ds)=>{Object.defineProperty(ds,"__esModule",{value:!0});ds.isConfirmChannelTracing=ds.unmarkConfirmChannelTracing=ds.markConfirmChannelTracing=ds.getConnectionAttributesFromUrl=ds.getConnectionAttributesFromServer=ds.normalizeExchange=ds.CONNECTION_ATTRIBUTES=ds.CHANNEL_CONSUME_TIMEOUT_TIMER=ds.CHANNEL_SPANS_NOT_ENDED=ds.MESSAGE_STORED_SPAN=void 0;var GV=C(),G7=c(),u3=s(),OJ=WV(),l3=KV();ds.MESSAGE_STORED_SPAN=Symbol("opentelemetry.amqplib.message.stored-span");ds.CHANNEL_SPANS_NOT_ENDED=Symbol("opentelemetry.amqplib.channel.spans-not-ended");ds.CHANNEL_CONSUME_TIMEOUT_TIMER=Symbol("opentelemetry.amqplib.channel.consumer-timeout-timer");ds.CONNECTION_ATTRIBUTES=Symbol("opentelemetry.amqplib.connection.attributes");var BV=(0,GV.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel"),tE0=(Z)=>Z!==""?Z:"";ds.normalizeExchange=tE0;var eE0=(Z)=>{return Z.replace(/:[^:@/]*@/,":***@")},bs=(Z,J)=>{return Z||(J==="AMQP"?5672:5671)},xs=(Z)=>{let J=Z||"amqp";return(J.endsWith(":")?J.substring(0,J.length-1):J).toUpperCase()},gs=(Z)=>{return Z||"localhost"},d9=(Z,J,Q,$)=>{if(Q)return{[J]:Q};else return GV.diag.error(`amqplib instrumentation: could not extract connection attribute ${$} from user supplied url`,{url:Z}),{}},Zy0=(Z)=>{let J=Z.serverProperties.product?.toLowerCase?.();if(J)return{[OJ.ATTR_MESSAGING_SYSTEM]:J};else return{}};ds.getConnectionAttributesFromServer=Zy0;var Jy0=(Z,J)=>{let Q={[l3.ATTR_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if(Z=Z||"amqp://localhost",typeof Z==="object"){let $=Z,Y=xs($?.protocol);Object.assign(Q,{...d9(Z,l3.ATTR_MESSAGING_PROTOCOL,Y,"protocol")});let X=gs($?.hostname);if(J&G7.SemconvStability.OLD)Object.assign(Q,{...d9(Z,OJ.ATTR_NET_PEER_NAME,X,"hostname")});if(J&G7.SemconvStability.STABLE)Object.assign(Q,{...d9(Z,u3.ATTR_SERVER_ADDRESS,X,"hostname")});let W=bs($.port,Y);if(J&G7.SemconvStability.OLD)Object.assign(Q,d9(Z,OJ.ATTR_NET_PEER_PORT,W,"port"));if(J&G7.SemconvStability.STABLE)Object.assign(Q,d9(Z,u3.ATTR_SERVER_PORT,W,"port"))}else{let $=eE0(Z);Q[l3.ATTR_MESSAGING_URL]=$;try{let Y=new URL($),X=xs(Y.protocol);Object.assign(Q,{...d9($,l3.ATTR_MESSAGING_PROTOCOL,X,"protocol")});let W=gs(Y.hostname);if(J&G7.SemconvStability.OLD)Object.assign(Q,{...d9($,OJ.ATTR_NET_PEER_NAME,W,"hostname")});if(J&G7.SemconvStability.STABLE)Object.assign(Q,{...d9($,u3.ATTR_SERVER_ADDRESS,W,"hostname")});let K=bs(Y.port?parseInt(Y.port):void 0,X);if(J&G7.SemconvStability.OLD)Object.assign(Q,d9($,OJ.ATTR_NET_PEER_PORT,K,"port"));if(J&G7.SemconvStability.STABLE)Object.assign(Q,d9($,u3.ATTR_SERVER_PORT,K,"port"))}catch(Y){GV.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:$,err:Y})}}return Q};ds.getConnectionAttributesFromUrl=Jy0;var Qy0=(Z)=>{return Z.setValue(BV,!0)};ds.markConfirmChannelTracing=Qy0;var $y0=(Z)=>{return Z.deleteValue(BV)};ds.unmarkConfirmChannelTracing=$y0;var Yy0=(Z)=>{return Z.getValue(BV)===!0};ds.isConfirmChannelTracing=Yy0});var ps=w((us)=>{Object.defineProperty(us,"__esModule",{value:!0});us.PACKAGE_NAME=us.PACKAGE_VERSION=void 0;us.PACKAGE_VERSION="0.60.0";us.PACKAGE_NAME="@opentelemetry/instrumentation-amqplib"});var ss=w((ns)=>{Object.defineProperty(ns,"__esModule",{value:!0});ns.AmqplibInstrumentation=void 0;var w0=C(),p3=Q0(),Z0=c(),Dy0=WV(),d6=KV(),H6=zV(),j0=ms(),is=ps(),i3=[">=0.5.5 <1"];class os extends Z0.InstrumentationBase{_netSemconvStability;constructor(Z={}){super(is.PACKAGE_NAME,is.PACKAGE_VERSION,{...H6.DEFAULT_CONFIG,...Z});this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,Z0.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(Z={}){super.setConfig({...H6.DEFAULT_CONFIG,...Z})}init(){let Z=new Z0.InstrumentationNodeModuleFile("amqplib/lib/channel_model.js",i3,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),J=new Z0.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",i3,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),Q=new Z0.InstrumentationNodeModuleFile("amqplib/lib/connect.js",i3,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new Z0.InstrumentationNodeModuleDefinition("amqplib",i3,void 0,void 0,[Z,Q,J])}patchConnect(Z){if(Z=this.unpatchConnect(Z),!(0,Z0.isWrapped)(Z.connect))this._wrap(Z,"connect",this.getConnectPatch.bind(this));return Z}unpatchConnect(Z){if((0,Z0.isWrapped)(Z.connect))this._unwrap(Z,"connect");return Z}patchChannelModel(Z,J){if(!(0,Z0.isWrapped)(Z.Channel.prototype.publish))this._wrap(Z.Channel.prototype,"publish",this.getPublishPatch.bind(this,J));if(!(0,Z0.isWrapped)(Z.Channel.prototype.consume))this._wrap(Z.Channel.prototype,"consume",this.getConsumePatch.bind(this,J));if(!(0,Z0.isWrapped)(Z.Channel.prototype.ack))this._wrap(Z.Channel.prototype,"ack",this.getAckPatch.bind(this,!1,H6.EndOperation.Ack));if(!(0,Z0.isWrapped)(Z.Channel.prototype.nack))this._wrap(Z.Channel.prototype,"nack",this.getAckPatch.bind(this,!0,H6.EndOperation.Nack));if(!(0,Z0.isWrapped)(Z.Channel.prototype.reject))this._wrap(Z.Channel.prototype,"reject",this.getAckPatch.bind(this,!0,H6.EndOperation.Reject));if(!(0,Z0.isWrapped)(Z.Channel.prototype.ackAll))this._wrap(Z.Channel.prototype,"ackAll",this.getAckAllPatch.bind(this,!1,H6.EndOperation.AckAll));if(!(0,Z0.isWrapped)(Z.Channel.prototype.nackAll))this._wrap(Z.Channel.prototype,"nackAll",this.getAckAllPatch.bind(this,!0,H6.EndOperation.NackAll));if(!(0,Z0.isWrapped)(Z.Channel.prototype.emit))this._wrap(Z.Channel.prototype,"emit",this.getChannelEmitPatch.bind(this));if(!(0,Z0.isWrapped)(Z.ConfirmChannel.prototype.publish))this._wrap(Z.ConfirmChannel.prototype,"publish",this.getConfirmedPublishPatch.bind(this,J));return Z}unpatchChannelModel(Z){if((0,Z0.isWrapped)(Z.Channel.prototype.publish))this._unwrap(Z.Channel.prototype,"publish");if((0,Z0.isWrapped)(Z.Channel.prototype.consume))this._unwrap(Z.Channel.prototype,"consume");if((0,Z0.isWrapped)(Z.Channel.prototype.ack))this._unwrap(Z.Channel.prototype,"ack");if((0,Z0.isWrapped)(Z.Channel.prototype.nack))this._unwrap(Z.Channel.prototype,"nack");if((0,Z0.isWrapped)(Z.Channel.prototype.reject))this._unwrap(Z.Channel.prototype,"reject");if((0,Z0.isWrapped)(Z.Channel.prototype.ackAll))this._unwrap(Z.Channel.prototype,"ackAll");if((0,Z0.isWrapped)(Z.Channel.prototype.nackAll))this._unwrap(Z.Channel.prototype,"nackAll");if((0,Z0.isWrapped)(Z.Channel.prototype.emit))this._unwrap(Z.Channel.prototype,"emit");if((0,Z0.isWrapped)(Z.ConfirmChannel.prototype.publish))this._unwrap(Z.ConfirmChannel.prototype,"publish");return Z}getConnectPatch(Z){let J=this;return function($,Y,X){return Z.call(this,$,Y,function(W,K){if(W==null){let z=(0,j0.getConnectionAttributesFromUrl)($,J._netSemconvStability),G=(0,j0.getConnectionAttributesFromServer)(K);K[j0.CONNECTION_ATTRIBUTES]={...z,...G}}X.apply(this,arguments)})}}getChannelEmitPatch(Z){let J=this;return function($){if($==="close"){J.endAllSpansOnChannel(this,!0,H6.EndOperation.ChannelClosed,void 0);let Y=this[j0.CHANNEL_CONSUME_TIMEOUT_TIMER];if(Y)clearInterval(Y);this[j0.CHANNEL_CONSUME_TIMEOUT_TIMER]=void 0}else if($==="error")J.endAllSpansOnChannel(this,!0,H6.EndOperation.ChannelError,void 0);return Z.apply(this,arguments)}}getAckAllPatch(Z,J,Q){let $=this;return function(X){return $.endAllSpansOnChannel(this,Z,J,X),Q.apply(this,arguments)}}getAckPatch(Z,J,Q){let $=this;return function(X,W,K){let z=this,G=J===H6.EndOperation.Reject?W:K,H=z[j0.CHANNEL_SPANS_NOT_ENDED]??[],B=H.findIndex((V)=>V.msg===X);if(B<0)$.endConsumerSpan(X,Z,J,G);else if(J!==H6.EndOperation.Reject&&W){for(let V=0;V<=B;V++)$.endConsumerSpan(H[V].msg,Z,J,G);H.splice(0,B+1)}else $.endConsumerSpan(X,Z,J,G),H.splice(B,1);return Q.apply(this,arguments)}}getConsumePatch(Z,J){let Q=this;return function(Y,X,W){let K=this;if(!Object.prototype.hasOwnProperty.call(K,j0.CHANNEL_SPANS_NOT_ENDED)){let{consumeTimeoutMs:G}=Q.getConfig();if(G){let H=setInterval(()=>{Q.checkConsumeTimeoutOnChannel(K)},G);H.unref(),K[j0.CHANNEL_CONSUME_TIMEOUT_TIMER]=H}K[j0.CHANNEL_SPANS_NOT_ENDED]=[]}let z=function(G){if(!G)return X.call(this,G);let H=G.properties.headers??{},B=w0.propagation.extract(w0.ROOT_CONTEXT,H),V=G.fields?.exchange,F;if(Q._config.useLinksForConsume){let L=B?w0.trace.getSpan(B)?.spanContext():void 0;if(B=void 0,L)F=[{context:L}]}let D=Q.tracer.startSpan(`${Y} process`,{kind:w0.SpanKind.CONSUMER,attributes:{...K?.connection?.[j0.CONNECTION_ATTRIBUTES],[d6.ATTR_MESSAGING_DESTINATION]:V,[d6.ATTR_MESSAGING_DESTINATION_KIND]:d6.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[d6.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:G.fields?.routingKey,[Dy0.ATTR_MESSAGING_OPERATION]:d6.MESSAGING_OPERATION_VALUE_PROCESS,[d6.OLD_ATTR_MESSAGING_MESSAGE_ID]:G?.properties.messageId,[d6.ATTR_MESSAGING_CONVERSATION_ID]:G?.properties.correlationId},links:F},B),{consumeHook:U}=Q.getConfig();if(U)(0,Z0.safeExecuteInTheMiddle)(()=>U(D,{moduleVersion:Z,msg:G}),(L)=>{if(L)w0.diag.error("amqplib instrumentation: consumerHook error",L)},!0);if(!W?.noAck)K[j0.CHANNEL_SPANS_NOT_ENDED].push({msg:G,timeOfConsume:(0,p3.hrTime)()}),G[j0.MESSAGE_STORED_SPAN]=D;let j=B?B:w0.ROOT_CONTEXT;if(w0.context.with(w0.trace.setSpan(j,D),()=>{X.call(this,G)}),W?.noAck)Q.callConsumeEndHook(D,G,!1,H6.EndOperation.AutoAck),D.end()};return arguments[1]=z,J.apply(this,arguments)}}getConfirmedPublishPatch(Z,J){let Q=this;return function(Y,X,W,K,z){let G=this,{span:H,modifiedOptions:B}=Q.createPublishSpan(Q,Y,X,G,K),{publishHook:V}=Q.getConfig();if(V)(0,Z0.safeExecuteInTheMiddle)(()=>V(H,{moduleVersion:Z,exchange:Y,routingKey:X,content:W,options:B,isConfirmChannel:!0}),(j)=>{if(j)w0.diag.error("amqplib instrumentation: publishHook error",j)},!0);let F=function(j,L){try{z?.call(this,j,L)}finally{let{publishConfirmHook:O}=Q.getConfig();if(O)(0,Z0.safeExecuteInTheMiddle)(()=>O(H,{moduleVersion:Z,exchange:Y,routingKey:X,content:W,options:K,isConfirmChannel:!0,confirmError:j}),(M)=>{if(M)w0.diag.error("amqplib instrumentation: publishConfirmHook error",M)},!0);if(j)H.setStatus({code:w0.SpanStatusCode.ERROR,message:"message confirmation has been nack'ed"});H.end()}},D=(0,j0.markConfirmChannelTracing)(w0.context.active()),U=[...arguments];return U[3]=B,U[4]=w0.context.bind((0,j0.unmarkConfirmChannelTracing)(w0.trace.setSpan(D,H)),F),w0.context.with(D,J.bind(this,...U))}}getPublishPatch(Z,J){let Q=this;return function(Y,X,W,K){if((0,j0.isConfirmChannelTracing)(w0.context.active()))return J.apply(this,arguments);else{let z=this,{span:G,modifiedOptions:H}=Q.createPublishSpan(Q,Y,X,z,K),{publishHook:B}=Q.getConfig();if(B)(0,Z0.safeExecuteInTheMiddle)(()=>B(G,{moduleVersion:Z,exchange:Y,routingKey:X,content:W,options:H,isConfirmChannel:!1}),(D)=>{if(D)w0.diag.error("amqplib instrumentation: publishHook error",D)},!0);let V=[...arguments];V[3]=H;let F=J.apply(this,V);return G.end(),F}}}createPublishSpan(Z,J,Q,$,Y){let X=(0,j0.normalizeExchange)(J),W=Z.tracer.startSpan(`publish ${X}`,{kind:w0.SpanKind.PRODUCER,attributes:{...$.connection[j0.CONNECTION_ATTRIBUTES],[d6.ATTR_MESSAGING_DESTINATION]:J,[d6.ATTR_MESSAGING_DESTINATION_KIND]:d6.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[d6.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:Q,[d6.OLD_ATTR_MESSAGING_MESSAGE_ID]:Y?.messageId,[d6.ATTR_MESSAGING_CONVERSATION_ID]:Y?.correlationId}}),K=Y??{};return K.headers=K.headers??{},w0.propagation.inject(w0.trace.setSpan(w0.context.active(),W),K.headers),{span:W,modifiedOptions:K}}endConsumerSpan(Z,J,Q,$){let Y=Z[j0.MESSAGE_STORED_SPAN];if(!Y)return;if(J!==!1)Y.setStatus({code:w0.SpanStatusCode.ERROR,message:Q!==H6.EndOperation.ChannelClosed&&Q!==H6.EndOperation.ChannelError?`${Q} called on message${$===!0?" with requeue":$===!1?" without requeue":""}`:Q});this.callConsumeEndHook(Y,Z,J,Q),Y.end(),Z[j0.MESSAGE_STORED_SPAN]=void 0}endAllSpansOnChannel(Z,J,Q,$){(Z[j0.CHANNEL_SPANS_NOT_ENDED]??[]).forEach((X)=>{this.endConsumerSpan(X.msg,J,Q,$)}),Z[j0.CHANNEL_SPANS_NOT_ENDED]=[]}callConsumeEndHook(Z,J,Q,$){let{consumeEndHook:Y}=this.getConfig();if(!Y)return;(0,Z0.safeExecuteInTheMiddle)(()=>Y(Z,{msg:J,rejected:Q,endOperation:$}),(X)=>{if(X)w0.diag.error("amqplib instrumentation: consumerEndHook error",X)},!0)}checkConsumeTimeoutOnChannel(Z){let J=(0,p3.hrTime)(),Q=Z[j0.CHANNEL_SPANS_NOT_ENDED]??[],$,{consumeTimeoutMs:Y}=this.getConfig();for($=0;${Object.defineProperty(CJ,"__esModule",{value:!0});CJ.EndOperation=CJ.DEFAULT_CONFIG=CJ.AmqplibInstrumentation=void 0;var Uy0=ss();Object.defineProperty(CJ,"AmqplibInstrumentation",{enumerable:!0,get:function(){return Uy0.AmqplibInstrumentation}});var rs=zV();Object.defineProperty(CJ,"DEFAULT_CONFIG",{enumerable:!0,get:function(){return rs.DEFAULT_CONFIG}});Object.defineProperty(CJ,"EndOperation",{enumerable:!0,get:function(){return rs.EndOperation}})});var Yx=R(C(),1),Xx=R(iA(),1);var k=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var oA=Object.prototype.toString;function A9(Z){switch(oA.call(Z)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return I9(Z,Error)}}function GQ(Z,J){return oA.call(Z)===`[object ${J}]`}function rX(Z){return GQ(Z,"ErrorEvent")}function CZ(Z){return GQ(Z,"String")}function N1(Z){return typeof Z==="object"&&Z!==null&&"__sentry_template_string__"in Z&&"__sentry_template_values__"in Z}function w5(Z){return Z===null||N1(Z)||typeof Z!=="object"&&typeof Z!=="function"}function p9(Z){return GQ(Z,"Object")}function tX(Z){return typeof Event<"u"&&I9(Z,Event)}function eX(Z){return typeof Element<"u"&&I9(Z,Element)}function ZW(Z){return GQ(Z,"RegExp")}function b0(Z){return Boolean(Z?.then&&typeof Z.then==="function")}function JW(Z){return p9(Z)&&"nativeEvent"in Z&&"preventDefault"in Z&&"stopPropagation"in Z}function I9(Z,J){try{return Z instanceof J}catch{return!1}}function D5(Z){return!!(typeof Z==="object"&&Z!==null&&(Z.__isVue||Z._isVue||Z.__v_isVNode))}var d=globalThis;var Rz0=d,Az0=80;function nA(Z,J={}){if(!Z)return"";try{let Q=Z,$=5,Y=[],X=0,W=0,K=" > ",z=K.length,G,H=Array.isArray(J)?J:J.keyAttrs,B=!Array.isArray(J)&&J.maxStringLength||Az0;while(Q&&X++<$){if(G=Iz0(Q,H),G==="html"||X>1&&W+Y.length*z+G.length>=B)break;Y.push(G),W+=G.length,Q=Q.parentNode}return Y.reverse().join(K)}catch{return""}}function Iz0(Z,J){let Q=Z,$=[];if(!Q?.tagName)return"";if(Rz0.HTMLElement){if(Q instanceof HTMLElement&&Q.dataset){if(Q.dataset.sentryComponent)return Q.dataset.sentryComponent;if(Q.dataset.sentryElement)return Q.dataset.sentryElement}}$.push(Q.tagName.toLowerCase());let Y=J?.length?J.filter((X)=>Q.getAttribute(X)).map((X)=>[X,Q.getAttribute(X)]):null;if(Y?.length)Y.forEach((X)=>{$.push(`[${X[0]}="${X[1]}"]`)});else{if(Q.id)$.push(`#${Q.id}`);let X=Q.className;if(X&&CZ(X)){let W=X.split(/\s+/);for(let K of W)$.push(`.${K}`)}}for(let X of["aria-label","type","name","title","alt"]){let W=Q.getAttribute(X);if(W)$.push(`[${X}="${W}"]`)}return $.join("")}var a="10.46.0";function Z6(){return PZ(d),d}function PZ(Z){let J=Z.__SENTRY__=Z.__SENTRY__||{};return J.version=J.version||a,J[a]=J[a]||{}}function H9(Z,J,Q=d){let $=Q.__SENTRY__=Q.__SENTRY__||{},Y=$[a]=$[a]||{};return Y[Z]||(Y[Z]=J())}var U5=["debug","info","warn","error","log","assert","trace"],Nz0="Sentry Logger ",T1={};function O0(Z){if(!("console"in d))return Z();let J=d.console,Q={},$=Object.keys(T1);$.forEach((Y)=>{let X=T1[Y];Q[Y]=J[Y],J[Y]=X});try{return Z()}finally{$.forEach((Y)=>{J[Y]=Q[Y]})}}function Tz0(){$W().enabled=!0}function fz0(){$W().enabled=!1}function aA(){return $W().enabled}function Ez0(...Z){QW("log",...Z)}function yz0(...Z){QW("warn",...Z)}function hz0(...Z){QW("error",...Z)}function QW(Z,...J){if(!k)return;if(aA())O0(()=>{d.console[Z](`${Nz0}[${Z}]:`,...J)})}function $W(){if(!k)return{enabled:!1};return H9("loggerSettings",()=>({enabled:!1}))}var q={enable:Tz0,disable:fz0,isEnabled:aA,log:Ez0,warn:yz0,error:hz0};function YW(Z,J,Q){if(!(J in Z))return;let $=Z[J];if(typeof $!=="function")return;let Y=Q($);if(typeof Y==="function")tA(Y,$);try{Z[J]=Y}catch{k&&q.log(`Failed to replace method "${J}" in object`,Z)}}function M0(Z,J,Q){try{Object.defineProperty(Z,J,{value:Q,writable:!0,configurable:!0})}catch{k&&q.log(`Failed to add non-enumerable property "${J}" to object`,Z)}}function tA(Z,J){try{let Q=J.prototype||{};Z.prototype=J.prototype=Q,M0(Z,"__sentry_original__",J)}catch{}}function XW(Z){return Z.__sentry_original__}function BQ(Z){if(A9(Z))return{message:Z.message,name:Z.name,stack:Z.stack,...rA(Z)};else if(tX(Z)){let J={type:Z.type,target:sA(Z.target),currentTarget:sA(Z.currentTarget),...rA(Z)};if(typeof CustomEvent<"u"&&I9(Z,CustomEvent))J.detail=Z.detail;return J}else return Z}function sA(Z){try{return eX(Z)?nA(Z):Object.prototype.toString.call(Z)}catch{return""}}function rA(Z){if(typeof Z==="object"&&Z!==null)return Object.fromEntries(Object.entries(Z));return{}}function WW(Z){let J=Object.keys(BQ(Z));return J.sort(),!J[0]?"[object has no keys]":J.join(", ")}var eA="_sentryScope",ZI="_sentryIsolationScope";function Sz0(Z){try{let J=d.WeakRef;if(typeof J==="function")return new J(Z)}catch{}return Z}function _z0(Z){if(!Z)return;if(typeof Z==="object"&&"deref"in Z&&typeof Z.deref==="function")try{return Z.deref()}catch{return}return Z}function j5(Z,J,Q){if(Z)M0(Z,ZI,Sz0(Q)),M0(Z,eA,J)}function V9(Z){let J=Z;return{scope:J[eA],isolationScope:_z0(J[ZI])}}var KW=0,f1=1,i=2;function N9(Z){if(Z<400&&Z>=100)return{code:1};if(Z>=400&&Z<500)switch(Z){case 401:return{code:2,message:"unauthenticated"};case 403:return{code:2,message:"permission_denied"};case 404:return{code:2,message:"not_found"};case 409:return{code:2,message:"already_exists"};case 413:return{code:2,message:"failed_precondition"};case 429:return{code:2,message:"resource_exhausted"};case 499:return{code:2,message:"cancelled"};default:return{code:2,message:"invalid_argument"}}if(Z>=500&&Z<600)switch(Z){case 501:return{code:2,message:"unimplemented"};case 503:return{code:2,message:"unavailable"};case 504:return{code:2,message:"deadline_exceeded"};default:return{code:2,message:"internal_error"}}return{code:2,message:"internal_error"}}var E1;function R7(Z){if(E1!==void 0)return E1?E1(Z):Z();let J=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),Q=d;if(J in Q&&typeof Q[J]==="function")return E1=Q[J],E1(Z);return E1=null,Z()}function x0(){return R7(()=>Math.random())}function l6(){return R7(()=>Date.now())}var GW="?",JI=/\(error: (.*)\)/,QI=/captureMessage|captureException/;function VQ(...Z){let J=Z.sort((Q,$)=>Q[0]-$[0]).map((Q)=>Q[1]);return(Q,$=0,Y=0)=>{let X=[],W=Q.split(` -`);for(let K=$;K1024)z=z.slice(0,1024);let G=JI.test(z)?z.replace(JI,"$1"):z;if(G.match(/\S*Error: /))continue;for(let H of J){let B=H(G);if(B){X.push(B);break}}if(X.length>=50+Y)break}return $I(X.slice(Y))}}function BW(Z){if(Array.isArray(Z))return VQ(...Z);return Z}function $I(Z){if(!Z.length)return[];let J=Array.from(Z);if(/sentryWrapped/.test(HQ(J).function||""))J.pop();if(J.reverse(),QI.test(HQ(J).function||"")){if(J.pop(),QI.test(HQ(J).function||""))J.pop()}return J.slice(0,50).map((Q)=>({...Q,filename:Q.filename||HQ(J).filename,function:Q.function||"?"}))}function HQ(Z){return Z[Z.length-1]||{}}var zW="";function q5(Z){try{if(!Z||typeof Z!=="function")return zW;return Z.name||zW}catch{return zW}}function FQ(Z){return"__v_isVNode"in Z&&Z.__v_isVNode?"[VueVNode]":"[VueViewModel]"}function YI(Z){let J=Z?.startsWith("file://")?Z.slice(7):Z;if(J?.match(/\/[A-Z]:/))J=J.slice(1);return J}function kZ(Z,J=0){if(typeof Z!=="string"||J===0)return Z;return Z.length<=J?Z:`${Z.slice(0,J)}...`}function HW(Z,J){let Q=Z,$=Q.length;if($<=150)return Q;if(J>$)J=$;let Y=Math.max(J-60,0);if(Y<5)Y=0;let X=Math.min(Y+140,$);if(X>$-5)X=$;if(X===$)Y=Math.max(X-140,0);if(Q=Q.slice(Y,X),Y>0)Q=`'{snip} ${Q}`;if(X<$)Q+=" {snip}";return Q}function VW(Z,J){if(!Array.isArray(Z))return"";let Q=[];for(let $=0;$i9(Z,$,Q))}function vz0(){let Z=d;return Z.crypto||Z.msCrypto}var FW;function bz0(){return x0()*16}function I0(Z=vz0()){try{if(Z?.randomUUID)return R7(()=>Z.randomUUID()).replace(/-/g,"")}catch{}if(!FW)FW=[1e7]+1000+4000+8000+100000000000;return FW.replace(/[018]/g,(J)=>(J^(bz0()&15)>>J/4).toString(16))}function XI(Z){return Z.exception?.values?.[0]}function RZ(Z){let{message:J,event_id:Q}=Z;if(J)return J;let $=XI(Z);if($){if($.type&&$.value)return`${$.type}: ${$.value}`;return $.type||$.value||Q||""}return Q||""}function DW(Z,J,Q){let $=Z.exception=Z.exception||{},Y=$.values=$.values||[],X=Y[0]=Y[0]||{};if(!X.value)X.value=J||"";if(!X.type)X.type=Q||"Error"}function y1(Z,J){let Q=XI(Z);if(!Q)return;let $={type:"generic",handled:!0},Y=Q.mechanism;if(Q.mechanism={...$,...Y,...J},J&&"data"in J){let X={...Y?.data,...J.data};Q.mechanism.data=X}}var xz0=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function wW(Z){return parseInt(Z||"",10)}function UW(Z){let J=Z.match(xz0)||[],Q=wW(J[1]),$=wW(J[2]),Y=wW(J[3]);return{buildmetadata:J[5],major:isNaN(Q)?void 0:Q,minor:isNaN($)?void 0:$,patch:isNaN(Y)?void 0:Y,prerelease:J[4]}}function wQ(Z){if(WI(Z))return!0;try{M0(Z,"__sentry_captured__",!0)}catch{}return!1}function WI(Z){try{return Z.__sentry_captured__}catch{}}var zI=1000;function o9(){return l6()/zI}function gz0(){let{performance:Z}=d;if(!Z?.now||!Z.timeOrigin)return o9;let J=Z.timeOrigin;return()=>{return(J+R7(()=>Z.now()))/zI}}var KI;function T9(){return(KI??(KI=gz0()))()}function GI(Z){let J=T9(),Q={sid:I0(),init:!0,timestamp:J,started:J,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>dz0(Q)};if(Z)n9(Q,Z);return Q}function n9(Z,J={}){if(J.user){if(!Z.ipAddress&&J.user.ip_address)Z.ipAddress=J.user.ip_address;if(!Z.did&&!J.did)Z.did=J.user.id||J.user.email||J.user.username}if(Z.timestamp=J.timestamp||T9(),J.abnormal_mechanism)Z.abnormal_mechanism=J.abnormal_mechanism;if(J.ignoreDuration)Z.ignoreDuration=J.ignoreDuration;if(J.sid)Z.sid=J.sid.length===32?J.sid:I0();if(J.init!==void 0)Z.init=J.init;if(!Z.did&&J.did)Z.did=`${J.did}`;if(typeof J.started==="number")Z.started=J.started;if(Z.ignoreDuration)Z.duration=void 0;else if(typeof J.duration==="number")Z.duration=J.duration;else{let Q=Z.timestamp-Z.started;Z.duration=Q>=0?Q:0}if(J.release)Z.release=J.release;if(J.environment)Z.environment=J.environment;if(!Z.ipAddress&&J.ipAddress)Z.ipAddress=J.ipAddress;if(!Z.userAgent&&J.userAgent)Z.userAgent=J.userAgent;if(typeof J.errors==="number")Z.errors=J.errors;if(J.status)Z.status=J.status}function BI(Z,J){let Q={};if(J)Q={status:J};else if(Z.status==="ok")Q={status:"exited"};n9(Z,Q)}function dz0(Z){return{sid:`${Z.sid}`,init:Z.init,started:new Date(Z.started*1000).toISOString(),timestamp:new Date(Z.timestamp*1000).toISOString(),status:Z.status,errors:Z.errors,did:typeof Z.did==="number"||typeof Z.did==="string"?`${Z.did}`:void 0,duration:Z.duration,abnormal_mechanism:Z.abnormal_mechanism,attrs:{release:Z.release,environment:Z.environment,ip_address:Z.ipAddress,user_agent:Z.userAgent}}}function AZ(Z,J,Q=2){if(!J||typeof J!=="object"||Q<=0)return J;if(Z&&Object.keys(J).length===0)return Z;let $={...Z};for(let Y in J)if(Object.prototype.hasOwnProperty.call(J,Y))$[Y]=AZ($[Y],J[Y],Q-1);return $}function F6(){return I0()}function w6(){return I0().substring(16)}var jW="_sentrySpan";function A7(Z,J){if(J)M0(Z,jW,J);else delete Z[jW]}function a9(Z){return Z[jW]}var cz0=100;class o0{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._attributes={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:F6(),sampleRand:x0()}}clone(){let Z=new o0;if(Z._breadcrumbs=[...this._breadcrumbs],Z._tags={...this._tags},Z._attributes={...this._attributes},Z._extra={...this._extra},Z._contexts={...this._contexts},this._contexts.flags)Z._contexts.flags={values:[...this._contexts.flags.values]};return Z._user=this._user,Z._level=this._level,Z._session=this._session,Z._transactionName=this._transactionName,Z._fingerprint=this._fingerprint,Z._eventProcessors=[...this._eventProcessors],Z._attachments=[...this._attachments],Z._sdkProcessingMetadata={...this._sdkProcessingMetadata},Z._propagationContext={...this._propagationContext},Z._client=this._client,Z._lastEventId=this._lastEventId,Z._conversationId=this._conversationId,A7(Z,a9(this)),Z}setClient(Z){this._client=Z}setLastEventId(Z){this._lastEventId=Z}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(Z){this._scopeListeners.push(Z)}addEventProcessor(Z){return this._eventProcessors.push(Z),this}setUser(Z){if(this._user=Z||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session)n9(this._session,{user:Z});return this._notifyScopeListeners(),this}getUser(){return this._user}setConversationId(Z){return this._conversationId=Z||void 0,this._notifyScopeListeners(),this}setTags(Z){return this._tags={...this._tags,...Z},this._notifyScopeListeners(),this}setTag(Z,J){return this.setTags({[Z]:J})}setAttributes(Z){return this._attributes={...this._attributes,...Z},this._notifyScopeListeners(),this}setAttribute(Z,J){return this.setAttributes({[Z]:J})}removeAttribute(Z){if(Z in this._attributes)delete this._attributes[Z],this._notifyScopeListeners();return this}setExtras(Z){return this._extra={...this._extra,...Z},this._notifyScopeListeners(),this}setExtra(Z,J){return this._extra={...this._extra,[Z]:J},this._notifyScopeListeners(),this}setFingerprint(Z){return this._fingerprint=Z,this._notifyScopeListeners(),this}setLevel(Z){return this._level=Z,this._notifyScopeListeners(),this}setTransactionName(Z){return this._transactionName=Z,this._notifyScopeListeners(),this}setContext(Z,J){if(J===null)delete this._contexts[Z];else this._contexts[Z]=J;return this._notifyScopeListeners(),this}setSession(Z){if(!Z)delete this._session;else this._session=Z;return this._notifyScopeListeners(),this}getSession(){return this._session}update(Z){if(!Z)return this;let J=typeof Z==="function"?Z(this):Z,Q=J instanceof o0?J.getScopeData():p9(J)?Z:void 0,{tags:$,attributes:Y,extra:X,user:W,contexts:K,level:z,fingerprint:G=[],propagationContext:H,conversationId:B}=Q||{};if(this._tags={...this._tags,...$},this._attributes={...this._attributes,...Y},this._extra={...this._extra,...X},this._contexts={...this._contexts,...K},W&&Object.keys(W).length)this._user=W;if(z)this._level=z;if(G.length)this._fingerprint=G;if(H)this._propagationContext=H;if(B)this._conversationId=B;return this}clear(){return this._breadcrumbs=[],this._tags={},this._attributes={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,this._conversationId=void 0,A7(this,void 0),this._attachments=[],this.setPropagationContext({traceId:F6(),sampleRand:x0()}),this._notifyScopeListeners(),this}addBreadcrumb(Z,J){let Q=typeof J==="number"?J:cz0;if(Q<=0)return this;let $={timestamp:o9(),...Z,message:Z.message?kZ(Z.message,2048):Z.message};if(this._breadcrumbs.push($),this._breadcrumbs.length>Q)this._breadcrumbs=this._breadcrumbs.slice(-Q),this._client?.recordDroppedEvent("buffer_overflow","log_item");return this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(Z){return this._attachments.push(Z),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,attributes:this._attributes,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:a9(this),conversationId:this._conversationId}}setSDKProcessingMetadata(Z){return this._sdkProcessingMetadata=AZ(this._sdkProcessingMetadata,Z,2),this}setPropagationContext(Z){return this._propagationContext=Z,this}getPropagationContext(){return this._propagationContext}captureException(Z,J){let Q=J?.event_id||I0();if(!this._client)return k&&q.warn("No client configured on scope - will not capture exception!"),Q;let $=Error("Sentry syntheticException");return this._client.captureException(Z,{originalException:Z,syntheticException:$,...J,event_id:Q},this),Q}captureMessage(Z,J,Q){let $=Q?.event_id||I0();if(!this._client)return k&&q.warn("No client configured on scope - will not capture message!"),$;let Y=Q?.syntheticException??Error(Z);return this._client.captureMessage(Z,J,{originalException:Z,syntheticException:Y,...Q,event_id:$},this),$}captureEvent(Z,J){let Q=Z.event_id||J?.event_id||I0();if(!this._client)return k&&q.warn("No client configured on scope - will not capture event!"),Q;return this._client.captureEvent(Z,{...J,event_id:Q},this),Q}_notifyScopeListeners(){if(!this._notifyingListeners)this._notifyingListeners=!0,this._scopeListeners.forEach((Z)=>{Z(this)}),this._notifyingListeners=!1}}function h1(){return H9("defaultCurrentScope",()=>new o0)}function R6(){return H9("defaultIsolationScope",()=>new o0)}var HI=(Z)=>Z instanceof Promise&&!Z[VI],VI=Symbol("chained PromiseLike"),DQ=(Z,J,Q)=>{let $=Z.then((Y)=>{return J(Y),Y},(Y)=>{throw Q(Y),Y});return HI($)&&HI(Z)?$:mz0(Z,$)},mz0=(Z,J)=>{let Q=!1;for(let $ in Z){if($ in J)continue;Q=!0;let Y=Z[$];if(typeof Y==="function")Object.defineProperty(J,$,{value:(...X)=>Y.apply(Z,X),enumerable:!0,configurable:!0,writable:!0});else J[$]=Y}if(Q)Object.assign(J,{[VI]:!0});return J};class wI{constructor(Z,J){let Q;if(!Z)Q=new o0;else Q=Z;let $;if(!J)$=new o0;else $=J;this._stack=[{scope:Q}],this._isolationScope=$}withScope(Z){let J=this._pushScope(),Q;try{Q=Z(J)}catch($){throw this._popScope(),$}if(b0(Q))return DQ(Q,()=>this._popScope(),()=>this._popScope());return this._popScope(),Q}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){let Z=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:Z}),Z}_popScope(){if(this._stack.length<=1)return!1;return!!this._stack.pop()}}function S1(){let Z=Z6(),J=PZ(Z);return J.stack=J.stack||new wI(h1(),R6())}function uz0(Z){return S1().withScope(Z)}function lz0(Z,J){let Q=S1();return Q.withScope(()=>{return Q.getStackTop().scope=Z,J(Z)})}function FI(Z){return S1().withScope(()=>{return Z(S1().getIsolationScope())})}function DI(){return{withIsolationScope:FI,withScope:uz0,withSetScope:lz0,withSetIsolationScope:(Z,J)=>{return FI(J)},getCurrentScope:()=>S1().getScope(),getIsolationScope:()=>S1().getIsolationScope()}}function qW(Z){let J=Z6(),Q=PZ(J);Q.acs=Z}function F9(Z){let J=PZ(Z);if(J.acs)return J.acs;return DI()}function t(){let Z=Z6();return F9(Z).getCurrentScope()}function l(){let Z=Z6();return F9(Z).getIsolationScope()}function L5(){return H9("globalScope",()=>new o0)}function n0(...Z){let J=Z6(),Q=F9(J);if(Z.length===2){let[$,Y]=Z;if(!$)return Q.withScope(Y);return Q.withSetScope($,Y)}return Q.withScope(Z[0])}function _1(...Z){let J=Z6(),Q=F9(J);if(Z.length===2){let[$,Y]=Z;if(!$)return Q.withIsolationScope(Y);return Q.withSetIsolationScope($,Y)}return Q.withIsolationScope(Z[0])}function f(){return t().getClient()}function I7(Z){let J=Z.getPropagationContext(),{traceId:Q,parentSpanId:$,propagationSpanId:Y}=J,X={trace_id:Q,span_id:Y||w6()};if($)X.parent_span_id=$;return X}var B0="sentry.source",p6="sentry.sample_rate",LW="sentry.previous_trace_sample_rate",b="sentry.op",_="sentry.origin";var OW="sentry.measurement_unit",CW="sentry.measurement_value",i6="sentry.custom_span_name",v1="sentry.profile_id",b1="sentry.exclusive_time",PW="cache.hit",kW="cache.key",MW="cache.item_size",RW="http.request.method",IZ="url.full";var AW="gen_ai.conversation.id";var x1="sentry-";var jI=8192;function s9(Z){let J=T7(Z);if(!J)return;let Q=Object.entries(J).reduce(($,[Y,X])=>{if(Y.startsWith(x1)){let W=Y.slice(x1.length);$[W]=X}return $},{});if(Object.keys(Q).length>0)return Q;else return}function N7(Z){if(!Z)return;let J=Object.entries(Z).reduce((Q,[$,Y])=>{if(Y)Q[`${x1}${$}`]=Y;return Q},{});return UQ(J)}function T7(Z){if(!Z||!CZ(Z)&&!Array.isArray(Z))return;if(Array.isArray(Z))return Z.reduce((J,Q)=>{let $=UI(Q);return Object.entries($).forEach(([Y,X])=>{J[Y]=X}),J},{});return UI(Z)}function UI(Z){return Z.split(",").map((J)=>{let Q=J.indexOf("=");if(Q===-1)return[];let $=J.slice(0,Q),Y=J.slice(Q+1);return[$,Y].map((X)=>{try{return decodeURIComponent(X.trim())}catch{return}})}).reduce((J,[Q,$])=>{if(Q&&$)J[Q]=$;return J},{})}function UQ(Z){if(Object.keys(Z).length===0)return;return Object.entries(Z).reduce((J,[Q,$],Y)=>{let X=`${encodeURIComponent(Q)}=${encodeURIComponent($)}`,W=Y===0?X:`${J},${X}`;if(W.length>jI)return k&&q.warn(`Not adding key: ${Q} with val: ${$} to baggage header due to exceeding baggage size limits.`),J;else return W},"")}function w9(Z,J,Q=()=>{},$=()=>{}){let Y;try{Y=Z()}catch(X){throw J(X),Q(),X}return pz0(Y,J,Q,$)}function pz0(Z,J,Q,$){if(b0(Z))return DQ(Z,(Y)=>{Q(),$(Y)},(Y)=>{J(Y),Q()});return Q(),$(Z),Z}function C0(Z){if(typeof __SENTRY_TRACING__==="boolean"&&!__SENTRY_TRACING__)return!1;let J=Z||f()?.getOptions();return!!J&&(J.tracesSampleRate!=null||!!J.tracesSampler)}function A6(Z){if(typeof Z==="boolean")return Number(Z);let J=typeof Z==="string"?parseFloat(Z):Z;if(typeof J!=="number"||isNaN(J)||J<0||J>1)return;return J}var iz0=/^o(\d+)\./,oz0=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)((?:\[[:.%\w]+\]|[\w.-]+))(?::(\d+))?\/(.+)/;function nz0(Z){return Z==="http"||Z==="https"}function I6(Z,J=!1){let{host:Q,path:$,pass:Y,port:X,projectId:W,protocol:K,publicKey:z}=Z;return`${K}://${z}${J&&Y?`:${Y}`:""}@${Q}${X?`:${X}`:""}/${$?`${$}/`:$}${W}`}function az0(Z){let J=oz0.exec(Z);if(!J){O0(()=>{console.error(`Invalid Sentry Dsn: ${Z}`)});return}let[Q,$,Y="",X="",W="",K=""]=J.slice(1),z="",G=K,H=G.split("/");if(H.length>1)z=H.slice(0,-1).join("/"),G=H.pop();if(G){let B=G.match(/^\d+/);if(B)G=B[0]}return qI({host:X,pass:Y,path:z,projectId:G,port:W,protocol:Q,publicKey:$})}function qI(Z){return{protocol:Z.protocol,publicKey:Z.publicKey||"",pass:Z.pass||"",host:Z.host,port:Z.port||"",path:Z.path||"",projectId:Z.projectId}}function sz0(Z){if(!k)return!0;let{port:J,projectId:Q,protocol:$}=Z;if(["protocol","publicKey","host","projectId"].find((W)=>{if(!Z[W])return q.error(`Invalid Sentry Dsn: ${W} missing`),!0;return!1}))return!1;if(!Q.match(/^\d+$/))return q.error(`Invalid Sentry Dsn: Invalid projectId ${Q}`),!1;if(!nz0($))return q.error(`Invalid Sentry Dsn: Invalid protocol ${$}`),!1;if(J&&isNaN(parseInt(J,10)))return q.error(`Invalid Sentry Dsn: Invalid port ${J}`),!1;return!0}function rz0(Z){return Z.match(iz0)?.[1]}function jQ(Z){let J=Z.getOptions(),{host:Q}=Z.getDsn()||{},$;if(J.orgId)$=String(J.orgId);else if(Q)$=rz0(Q);return $}function LI(Z){let J=typeof Z==="string"?az0(Z):qI(Z);if(!J||!sz0(J))return;return J}var O5=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$");function OI(Z){if(!Z)return;let J=Z.match(O5);if(!J)return;let Q;if(J[3]==="1")Q=!0;else if(J[3]==="0")Q=!1;return{traceId:J[1],parentSampled:Q,parentSpanId:J[2]}}function C5(Z,J){let Q=OI(Z),$=s9(J);if(!Q?.traceId)return{traceId:F6(),sampleRand:x0()};let Y=tz0(Q,$);if($)$.sample_rand=Y.toString();let{traceId:X,parentSpanId:W,parentSampled:K}=Q;return{traceId:X,parentSpanId:W,sampled:K,dsc:$||{},sampleRand:Y}}function NZ(Z=F6(),J=w6(),Q){let $="";if(Q!==void 0)$=Q?"-1":"-0";return`${Z}-${J}${$}`}function TZ(Z=F6(),J=w6(),Q){return`00-${Z}-${J}-${Q?"01":"00"}`}function tz0(Z,J){let Q=A6(J?.sample_rand);if(Q!==void 0)return Q;let $=A6(J?.sample_rate);if($&&Z?.parentSampled!==void 0)return Z.parentSampled?x0()*$:$+x0()*(1-$);else return x0()}function IW(Z,J){let Q=jQ(Z);if(J&&Q&&J!==Q)return q.log(`Won't continue trace because org IDs don't match (incoming baggage: ${J}, SDK options: ${Q})`),!1;if(Z.getOptions().strictTraceContinuation||!1){if(J&&!Q||!J&&Q)return q.log(`Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${J}, Sentry client: ${Q})`),!1}return!0}var qQ=0,LQ=1,CI=!1;function kI(Z){let{spanId:J,traceId:Q}=Z.spanContext(),{data:$,op:Y,parent_span_id:X,status:W,origin:K,links:z}=h(Z);return{parent_span_id:X,span_id:J,trace_id:Q,data:$,op:Y,status:W,origin:K,links:z}}function fZ(Z){let{spanId:J,traceId:Q,isRemote:$}=Z.spanContext(),Y=$?J:h(Z).parent_span_id,X=V9(Z).scope,W=$?X?.getPropagationContext().propagationSpanId||w6():J;return{parent_span_id:Y,span_id:W,trace_id:Q}}function k5(Z){let{traceId:J,spanId:Q}=Z.spanContext(),$=D9(Z);return NZ(J,Q,$)}function MI(Z){let{traceId:J,spanId:Q}=Z.spanContext(),$=D9(Z);return TZ(J,Q,$)}function f7(Z){if(Z&&Z.length>0)return Z.map(({context:{spanId:J,traceId:Q,traceFlags:$,...Y},attributes:X})=>({span_id:J,trace_id:Q,sampled:$===LQ,attributes:X,...Y}));else return}function D6(Z){if(typeof Z==="number")return PI(Z);if(Array.isArray(Z))return Z[0]+Z[1]/1e9;if(Z instanceof Date)return PI(Z.getTime());return T9()}function PI(Z){return Z>9999999999?Z/1000:Z}function h(Z){if(ZG0(Z))return Z.getSpanJSON();let{spanId:J,traceId:Q}=Z.spanContext();if(ez0(Z)){let{attributes:$,startTime:Y,name:X,endTime:W,status:K,links:z}=Z,G="parentSpanId"in Z?Z.parentSpanId:("parentSpanContext"in Z)?Z.parentSpanContext?.spanId:void 0;return{span_id:J,trace_id:Q,data:$,description:X,parent_span_id:G,start_timestamp:D6(Y),timestamp:D6(W)||void 0,status:E7(K),op:$[b],origin:$[_],links:f7(z)}}return{span_id:J,trace_id:Q,start_timestamp:0,data:{}}}function ez0(Z){let J=Z;return!!J.attributes&&!!J.startTime&&!!J.name&&!!J.endTime&&!!J.status}function ZG0(Z){return typeof Z.getSpanJSON==="function"}function D9(Z){let{traceFlags:J}=Z.spanContext();return J===LQ}function E7(Z){if(!Z||Z.code===KW)return;if(Z.code===f1)return"ok";return Z.message||"internal_error"}var P5="_sentryChildSpans",NW="_sentryRootSpan";function g1(Z,J){let Q=Z[NW]||Z;if(M0(J,NW,Q),Z[P5])Z[P5].add(J);else M0(Z,P5,new Set([J]))}function M5(Z){let J=new Set;function Q($){if(J.has($))return;else if(D9($)){J.add($);let Y=$[P5]?Array.from($[P5]):[];for(let X of Y)Q(X)}}return Q(Z),Array.from(J)}function H0(Z){return Z[NW]||Z}function N6(){let Z=Z6(),J=F9(Z);if(J.getActiveSpan)return J.getActiveSpan();return a9(t())}function R5(){if(!CI)O0(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),CI=!0}var d1="production";var RI="_frozenDsc";function OQ(Z,J){M0(Z,RI,J)}function TW(Z,J){let Q=J.getOptions(),{publicKey:$}=J.getDsn()||{},Y={environment:Q.environment||d1,release:Q.release,public_key:$,trace_id:Z,org_id:jQ(J)};return J.emit("createDsc",Y),Y}function f9(Z,J){let Q=J.getPropagationContext();return Q.dsc||TW(Q.traceId,Z)}function P0(Z){let J=f();if(!J)return{};let Q=H0(Z),$=h(Q),Y=$.data,X=Q.spanContext().traceState,W=X?.get("sentry.sample_rate")??Y[p6]??Y[LW];function K(D){if(typeof W==="number"||typeof W==="string")D.sample_rate=`${W}`;return D}let z=Q[RI];if(z)return K(z);let G=X?.get("sentry.dsc"),H=G&&s9(G);if(H)return K(H);let B=TW(Z.spanContext().traceId,J),V=Y[B0],F=$.description;if(V!=="url"&&F)B.transaction=F;if(C0())B.sampled=String(D9(Q)),B.sample_rand=X?.get("sentry.sample_rand")??V9(Q).scope?.getPropagationContext().sampleRand.toString();return K(B),J.emit("createDsc",B,Q),B}function A5(Z){if(!k)return;let{description:J="< unknown name >",op:Q="< unknown op >",parent_span_id:$}=h(Z),{spanId:Y}=Z.spanContext(),X=D9(Z),W=H0(Z),K=W===Z,z=`[Tracing] Starting ${X?"sampled":"unsampled"} ${K?"root ":""}span`,G=[`op: ${Q}`,`name: ${J}`,`ID: ${Y}`];if($)G.push(`parent ID: ${$}`);if(!K){let{op:H,description:B}=h(W);if(G.push(`root ID: ${W.spanContext().spanId}`),H)G.push(`root op: ${H}`);if(B)G.push(`root description: ${B}`)}q.log(`${z} - ${G.join(` - `)}`)}function I5(Z){if(!k)return;let{description:J="< unknown name >",op:Q="< unknown op >"}=h(Z),{spanId:$}=Z.spanContext(),X=H0(Z)===Z,W=`[Tracing] Finishing "${Q}" ${X?"root ":""}span "${J}" with ID ${$}`;q.log(W)}function N5(Z,J,Q){if(!C0(Z))return[!1];let $=void 0,Y;if(typeof Z.tracesSampler==="function")Y=Z.tracesSampler({...J,inheritOrSampleWith:(K)=>{if(typeof J.parentSampleRate==="number")return J.parentSampleRate;if(typeof J.parentSampled==="boolean")return Number(J.parentSampled);return K}}),$=!0;else if(J.parentSampled!==void 0)Y=J.parentSampled;else if(typeof Z.tracesSampleRate<"u")Y=Z.tracesSampleRate,$=!0;let X=A6(Y);if(X===void 0)return k&&q.warn(`[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(Y)} of type ${JSON.stringify(typeof Y)}.`),[!1];if(!X)return k&&q.log(`[Tracing] Discarding transaction because ${typeof Z.tracesSampler==="function"?"tracesSampler returned 0 or false":"a negative sampling decision was inherited or tracesSampleRate is set to 0"}`),[!1,X,$];let W=QQ)return EW(Z,J-1,Q);return $}function fW(Z,J,Q=1/0,$=1/0,Y=XG0()){let[X,W]=Y;if(J==null||["boolean","string"].includes(typeof J)||typeof J==="number"&&Number.isFinite(J))return J;let K=JG0(Z,J);if(!K.startsWith("[object "))return K;if(J.__sentry_skip_normalization__)return J;let z=typeof J.__sentry_override_normalization_depth__==="number"?J.__sentry_override_normalization_depth__:Q;if(z===0)return K.replace("object ","");if(X(J))return"[Circular ~]";let G=J;if(G&&typeof G.toJSON==="function")try{let F=G.toJSON();return fW("",F,z-1,$,Y)}catch{}let H=Array.isArray(J)?[]:{},B=0,V=BQ(J);for(let F in V){if(!Object.prototype.hasOwnProperty.call(V,F))continue;if(B>=$){H[F]="[MaxProperties ~]";break}let D=V[F];H[F]=fW(F,D,z-1,$,Y),B++}return W(J),H}function JG0(Z,J){try{if(Z==="domain"&&J&&typeof J==="object"&&J._events)return"[Domain]";if(Z==="domainEmitter")return"[DomainEmitter]";if(typeof global<"u"&&J===global)return"[Global]";if(typeof window<"u"&&J===window)return"[Window]";if(typeof document<"u"&&J===document)return"[Document]";if(D5(J))return FQ(J);if(JW(J))return"[SyntheticEvent]";if(typeof J==="number"&&!Number.isFinite(J))return`[${J}]`;if(typeof J==="function")return`[Function: ${q5(J)}]`;if(typeof J==="symbol")return`[${String(J)}]`;if(typeof J==="bigint")return`[BigInt: ${String(J)}]`;let Q=QG0(J);if(/^HTML(\w*)Element$/.test(Q))return`[HTMLElement: ${Q}]`;return`[object ${Q}]`}catch(Q){return`**non-serializable** (${Q})`}}function QG0(Z){let J=Object.getPrototypeOf(Z);return J?.constructor?J.constructor.name:"null prototype"}function $G0(Z){return~-encodeURI(Z).split(/%..|./).length}function YG0(Z){return $G0(JSON.stringify(Z))}function XG0(){let Z=new WeakSet;function J($){if(Z.has($))return!0;return Z.add($),!1}function Q($){Z.delete($)}return[J,Q]}function J6(Z,J=[]){return[Z,J]}function hW(Z,J){let[Q,$]=Z;return[Q,[...$,J]]}function T5(Z,J){let Q=Z[1];for(let $ of Q){let Y=$[0].type;if(J($,Y))return!0}return!1}function SW(Z,J){return T5(Z,(Q,$)=>J.includes($))}function yW(Z){let J=PZ(d);return J.encodePolyfill?J.encodePolyfill(Z):new TextEncoder().encode(Z)}function f5(Z){let[J,Q]=Z,$=JSON.stringify(J);function Y(X){if(typeof $==="string")$=typeof X==="string"?$+X:[yW($),X];else $.push(typeof X==="string"?yW(X):X)}for(let X of Q){let[W,K]=X;if(Y(` +`+Y),$.push(J+"m+"+JX.exports.humanize(this.diff)+"\x1B[0m")}else $[0]=x90()+Z+" "+$[0]}function x90(){if(UN.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function g90(...$){return process.stderr.write(QX.formatWithOptions(UN.inspectOpts,...$)+` +`)}function m90($){if($)process.env.DEBUG=$;else delete process.env.DEBUG}function d90(){return process.env.DEBUG}function u90($){$.inspectOpts={};let Z=Object.keys(UN.inspectOpts);for(let X=0;XZ.trim()).join(" ")};jN.O=function($){return this.inspectOpts.colors=this.useColors,QX.inspect($,this.inspectOpts)}});var PN=q((V_0,RK)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)RK.exports=wN();else RK.exports=DN()});var AK=q((F_0,LN)=>{var fK=s("path").sep;LN.exports=function($){var Z=$.split(fK),X=Z.lastIndexOf("node_modules");if(X===-1)return;if(!Z[X+1])return;var Q=Z[X+1][0]==="@",J=Q?Z[X+1]+"/"+Z[X+2]:Z[X+1],Y=Q?3:2,W="",K=X+Y-1;for(var z=0;z<=K;z++)if(z===K)W+=Z[z];else W+=Z[z]+fK;var H="",G=Z.length-1;for(var V=X+Y;V<=G;V++)if(V===G)H+=Z[V];else H+=Z[V]+fK;return{name:J,basedir:W,path:H}}});var yK=q((B_0,_K)=>{var X9=s("path"),r1=s("module"),L0=PN()("require-in-the-middle"),n90=AK();_K.exports=lZ;_K.exports.Hook=lZ;var NK,YX;if(r1.isBuiltin)YX=r1.isBuiltin;else if(r1.builtinModules)YX=($)=>{if($.startsWith("node:"))return!0;if(NK===void 0)NK=new Set(r1.builtinModules);return NK.has($)};else throw Error("'require-in-the-middle' requires Node.js >=v9.3.0 or >=v8.10.0");var a90=/([/\\]index)?(\.js)?$/;class ON{constructor(){this._localCache=new Map,this._kRitmExports=Symbol("RitmExports")}has($,Z){if(this._localCache.has($))return!0;else if(!Z){let X=s.cache[$];return!!(X&&(this._kRitmExports in X))}else return!1}get($,Z){let X=this._localCache.get($);if(X!==void 0)return X;else if(!Z){let Q=s.cache[$];return Q&&Q[this._kRitmExports]}}set($,Z,X){if(X)this._localCache.set($,Z);else if($ in s.cache)s.cache[$][this._kRitmExports]=Z;else L0('non-core module is unexpectedly not in require.cache: "%s"',$),this._localCache.set($,Z)}}function lZ($,Z,X){if(this instanceof lZ===!1)return new lZ($,Z,X);if(typeof $==="function")X=$,$=null,Z=null;else if(typeof Z==="function")X=Z,Z=null;if(typeof r1._resolveFilename!=="function"){console.error("Error: Expected Module._resolveFilename to be a function (was: %s) - aborting!",typeof r1._resolveFilename),console.error("Please report this error as an issue related to Node.js %s at https://github.com/nodejs/require-in-the-middle/issues",process.version);return}this._cache=new ON,this._unhooked=!1,this._origRequire=r1.prototype.require;let Q=this,J=new Set,Y=Z?Z.internals===!0:!1,W=Array.isArray($);if(L0("registering require hook"),this._require=r1.prototype.require=function(z){if(Q._unhooked===!0)return L0("ignoring require call - module is soft-unhooked"),Q._origRequire.apply(this,arguments);return K.call(this,arguments,!1)},typeof process.getBuiltinModule==="function")this._origGetBuiltinModule=process.getBuiltinModule,this._getBuiltinModule=process.getBuiltinModule=function(z){if(Q._unhooked===!0)return L0("ignoring process.getBuiltinModule call - module is soft-unhooked"),Q._origGetBuiltinModule.apply(this,arguments);return K.call(this,arguments,!0)};function K(z,H){let G=z[0],V=YX(G),F;if(V){if(F=G,G.startsWith("node:")){let R=G.slice(5);if(YX(R))F=R}}else if(H)return L0("call to process.getBuiltinModule with unknown built-in id"),Q._origGetBuiltinModule.apply(this,z);else try{F=r1._resolveFilename(G,this)}catch(R){return L0('Module._resolveFilename("%s") threw %j, calling original Module.require',G,R.message),Q._origRequire.apply(this,z)}let B,j;if(L0("processing %s module require('%s'): %s",V===!0?"core":"non-core",G,F),Q._cache.has(F,V)===!0)return L0("returning already patched cached module: %s",F),Q._cache.get(F,V);let U=J.has(F);if(U===!1)J.add(F);let D=H?Q._origGetBuiltinModule.apply(this,z):Q._origRequire.apply(this,z);if(U===!0)return L0("module is in the process of being patched already - ignoring: %s",F),D;if(J.delete(F),V===!0){if(W===!0&&$.includes(F)===!1)return L0("ignoring core module not on whitelist: %s",F),D;B=F}else if(W===!0&&$.includes(F)){let R=X9.parse(F);B=R.name,j=R.dir}else{let R=n90(F);if(R===void 0)return L0("could not parse filename: %s",F),D;B=R.name,j=R.basedir;let h=t90(R);L0("resolved filename to module: %s (id: %s, resolved: %s, basedir: %s)",B,G,h,j);let T=!1;if(W){if(!G.startsWith(".")&&$.includes(G))B=G,T=!0;if(!$.includes(B)&&!$.includes(h))return D;if($.includes(h)&&h!==B)B=h,T=!0}if(!T){let _;try{_=s.resolve(B,{paths:[j]})}catch(l){return L0("could not resolve module: %s",B),Q._cache.set(F,D,V),D}if(_!==F)if(Y===!0)B=B+X9.sep+X9.relative(j,F),L0("preparing to process require of internal file: %s",B);else return L0("ignoring require of non-main module file: %s",_),Q._cache.set(F,D,V),D}}Q._cache.set(F,D,V),L0("calling require hook: %s",B);let k=X(D,B,j);return Q._cache.set(F,k,V),L0("returning module: %s",B),k}}lZ.prototype.unhook=function(){if(this._unhooked=!0,this._require===r1.prototype.require)r1.prototype.require=this._origRequire,L0("require unhook successful");else L0("require unhook unsuccessful");if(process.getBuiltinModule!==void 0)if(this._getBuiltinModule===process.getBuiltinModule)process.getBuiltinModule=this._origGetBuiltinModule,L0("process.getBuiltinModule unhook successful");else L0("process.getBuiltinModule unhook unsuccessful")};function t90($){let Z=X9.sep!=="/"?$.path.split(X9.sep).join("/"):$.path;return X9.posix.join($.name,Z).replace(a90,"")}});var RN=q((kN)=>{Object.defineProperty(kN,"__esModule",{value:!0});kN.ModuleNameTrie=kN.ModuleNameSeparator=void 0;kN.ModuleNameSeparator="/";class IK{hooks=[];children=new Map}class CN{_trie=new IK;_counter=0;insert($){let Z=this._trie;for(let X of $.moduleName.split(kN.ModuleNameSeparator)){let Q=Z.children.get(X);if(!Q)Q=new IK,Z.children.set(X,Q);Z=Q}Z.hooks.push({hook:$,insertedId:this._counter++})}search($,{maintainInsertionOrder:Z,fullOnly:X}={}){let Q=this._trie,J=[],Y=!0;for(let W of $.split(kN.ModuleNameSeparator)){let K=Q.children.get(W);if(!K){Y=!1;break}if(!X)J.push(...K.hooks);Q=K}if(X&&Y)J.push(...Q.hooks);if(J.length===0)return[];if(J.length===1)return[J[0].hook];if(Z)J.sort((W,K)=>W.insertedId-K.insertedId);return J.map(({hook:W})=>W)}}kN.ModuleNameTrie=CN});var _N=q((AN)=>{Object.defineProperty(AN,"__esModule",{value:!0});AN.RequireInTheMiddleSingleton=void 0;var e90=yK(),fN=s("path"),EK=RN(),$Z0=["afterEach","after","beforeEach","before","describe","it"].every(($)=>{return typeof global[$]==="function"});class WX{_moduleNameTrie=new EK.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new e90.Hook(null,{internals:!0},($,Z,X)=>{let Q=ZZ0(Z),J=this._moduleNameTrie.search(Q,{maintainInsertionOrder:!0,fullOnly:X===void 0});for(let{onRequire:Y}of J)$=Y($,Z,X);return $})}register($,Z){let X={moduleName:$,onRequire:Z};return this._moduleNameTrie.insert(X),X}static getInstance(){if($Z0)return new WX;return this._instance=this._instance??new WX}}AN.RequireInTheMiddleSingleton=WX;function ZZ0($){return fN.sep!==EK.ModuleNameSeparator?$.split(fN.sep).join(EK.ModuleNameSeparator):$}});var hN=q((JZ0)=>{var yN=[],hK=new WeakMap,IN=new WeakMap,TN=new Map,EN=[],XZ0={set($,Z,X){let Q=hK.get($),J=Q&&Q[Z];if(typeof J==="function")return J(X);return!0},get($,Z){if(Z===Symbol.toStringTag)return"Module";let X=IN.get($)[Z];if(typeof X==="function")return X()},defineProperty($,Z,X){if(!("value"in X))throw Error("Getters/setters are not supported for exports property descriptors.");let Q=hK.get($),J=Q&&Q[Z];if(typeof J==="function")return J(X.value);return!0}};function QZ0($,Z,X,Q,J){TN.set($,J),hK.set(Z,X),IN.set(Z,Q);let Y=new Proxy(Z,XZ0);yN.forEach((W)=>W($,Y,J)),EN.push([$,Y,J])}JZ0.register=QZ0;JZ0.importHooks=yN;JZ0.specifiers=TN;JZ0.toHook=EN});var xK=q((D_0,J9)=>{var bN=s("path"),HZ0=AK(),{fileURLToPath:GZ0}=s("url"),{MessageChannel:VZ0}=s("worker_threads"),{isBuiltin:bK}=s("module");if(!bK)bK=()=>!0;var{importHooks:vK,specifiers:FZ0,toHook:BZ0}=hN();function vN($){vK.push($),BZ0.forEach(([Z,X,Q])=>$(Z,X,Q))}function SN($){let Z=vK.indexOf($);if(Z>-1)vK.splice(Z,1)}function Q9($,Z,X,Q){let J=$(Z,X,Q);if(J&&J!==Z){if("default"in Z)Z.default=J}}var SK;function wZ0(){let{port1:$,port2:Z}=new VZ0,X=0,Q;SK=(K)=>{X++,$.postMessage(K)},$.on("message",()=>{if(X--,Q&&X<=0)Q()}).unref();function J(){let K=setInterval(()=>{},1000),z=new Promise((H)=>{Q=H}).then(()=>{clearInterval(K)});if(X===0)Q();return z}let Y=Z;return{registerOptions:{data:{addHookMessagePort:Y,include:[]},transferList:[Y]},addHookMessagePort:Y,waitForAllMessagesAcknowledged:J}}function pZ($,Z,X){if(this instanceof pZ===!1)return new pZ($,Z,X);if(typeof $==="function")X=$,$=null,Z=null;else if(typeof Z==="function")X=Z,Z=null;let Q=Z?Z.internals===!0:!1;if(SK&&Array.isArray($))SK($);this._iitmHook=(J,Y,W)=>{let K=J,z=K.startsWith("node:"),H,G;if(z){let V=J.slice(5);if(bK(V))J=V}else if(K.startsWith("file://")){let V=Error.stackTraceLimit;Error.stackTraceLimit=0;try{H=GZ0(J),J=H}catch(F){}if(Error.stackTraceLimit=V,H){let F=HZ0(H);if(F)J=F.name,G=F.basedir}}if($){for(let V of $)if(H&&V===H)Q9(X,Y,H,void 0);else if(V===J){if(!G)Q9(X,Y,J,G);else if(G.endsWith(FZ0.get(K)))Q9(X,Y,J,G);else if(Q){let F=J+bN.sep+bN.relative(G,H);Q9(X,Y,F,G)}}else if(V===W)Q9(X,Y,W,G)}else Q9(X,Y,J,G)},vN(this._iitmHook)}pZ.prototype.unhook=function(){SN(this._iitmHook)};J9.exports=pZ;J9.exports.Hook=pZ;J9.exports.addHook=vN;J9.exports.removeHook=SN;J9.exports.createAddHookMessageChannel=wZ0});var gK=q((xN)=>{Object.defineProperty(xN,"__esModule",{value:!0});xN.isWrapped=xN.safeExecuteInTheMiddleAsync=xN.safeExecuteInTheMiddle=void 0;function jZ0($,Z,X){let Q,J;try{J=$()}catch(Y){Q=Y}finally{if(Z(Q,J),Q&&!X)throw Q;return J}}xN.safeExecuteInTheMiddle=jZ0;async function UZ0($,Z,X){let Q,J;try{J=await $()}catch(Y){Q=Y}finally{if(await Z(Q,J),Q&&!X)throw Q;return J}}xN.safeExecuteInTheMiddleAsync=UZ0;function qZ0($){return typeof $==="function"&&typeof $.__original==="function"&&typeof $.__unwrap==="function"&&$.__wrapped===!0}xN.isWrapped=qZ0});var pN=q((cN)=>{Object.defineProperty(cN,"__esModule",{value:!0});cN.InstrumentationBase=void 0;var iZ=s("path"),mN=s("util"),LZ0=QN(),mK=CK(),OZ0=HN(),CZ0=_N(),kZ0=xK(),oZ=S(),MZ0=yK(),RZ0=s("fs"),fZ0=gK();class uN extends OZ0.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=CZ0.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor($,Z,X){super($,Z,X);let Q=this.init();if(Q&&!Array.isArray(Q))Q=[Q];if(this._modules=Q||[],this._config.enabled)this.enable()}_wrap=($,Z,X)=>{if((0,fZ0.isWrapped)($[Z]))this._unwrap($,Z);if(!mN.types.isProxy($))return(0,mK.wrap)($,Z,X);else{let Q=(0,mK.wrap)(Object.assign({},$),Z,X);return Object.defineProperty($,Z,{value:Q}),Q}};_unwrap=($,Z)=>{if(!mN.types.isProxy($))return(0,mK.unwrap)($,Z);else return Object.defineProperty($,Z,{value:$[Z]})};_massWrap=($,Z,X)=>{if(!$){oZ.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray($))$=[$];if(!(Z&&Array.isArray(Z))){oZ.diag.error("must provide one or more functions to wrap on modules");return}$.forEach((Q)=>{Z.forEach((J)=>{this._wrap(Q,J,X)})})};_massUnwrap=($,Z)=>{if(!$){oZ.diag.error("must provide one or more modules to patch");return}else if(!Array.isArray($))$=[$];if(!(Z&&Array.isArray(Z))){oZ.diag.error("must provide one or more functions to wrap on modules");return}$.forEach((X)=>{Z.forEach((Q)=>{this._unwrap(X,Q)})})};_warnOnPreloadedModules(){let $=globalThis.require;if(!$?.resolve||!$?.cache)return;this._modules.forEach((Z)=>{let{name:X}=Z;try{let Q=$.resolve(X);if($.cache[Q]?.loaded)this._diag.warn(`Module ${X} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${X}`)}catch{}})}_extractPackageVersion($){try{let Z=(0,RZ0.readFileSync)(iZ.join($,"package.json"),{encoding:"utf8"}),X=JSON.parse(Z).version;return typeof X==="string"?X:void 0}catch{oZ.diag.warn("Failed extracting version",$)}return}_onRequire($,Z,X,Q){if(!Q){if(typeof $.patch==="function"){if($.moduleExports=Z,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:$.name}),$.patch(Z)}return Z}let J=this._extractPackageVersion(Q);if($.moduleVersion=J,$.name===X){if(dN($.supportedVersions,J,$.includePrerelease)){if(typeof $.patch==="function"){if($.moduleExports=Z,this._enabled)return this._diag.debug("Applying instrumentation patch for module on require hook",{module:$.name,version:$.moduleVersion,baseDir:Q}),$.patch(Z,$.moduleVersion)}}return Z}let Y=$.files??[],W=iZ.normalize(X);return Y.filter((z)=>z.name===W&&dN(z.supportedVersions,J,$.includePrerelease)).reduce((z,H)=>{if(H.moduleExports=z,this._enabled)return this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:$.name,version:$.moduleVersion,fileName:H.name,baseDir:Q}),H.patch(z,$.moduleVersion);return z},Z)}enable(){if(this._enabled)return;if(this._enabled=!0,this._hooks.length>0){for(let $ of this._modules){if(typeof $.patch==="function"&&$.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:$.name,version:$.moduleVersion}),$.patch($.moduleExports,$.moduleVersion);for(let Z of $.files)if(Z.moduleExports)this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:$.name,version:$.moduleVersion,fileName:Z.name}),Z.patch(Z.moduleExports,$.moduleVersion)}return}this._warnOnPreloadedModules();for(let $ of this._modules){let Z=(Y,W,K)=>{if(!K&&iZ.isAbsolute(W)){let z=iZ.parse(W);W=z.name,K=z.dir}return this._onRequire($,Y,W,K)},X=(Y,W,K)=>{return this._onRequire($,Y,W,K)},Q=iZ.isAbsolute($.name)?new MZ0.Hook([$.name],{internals:!0},X):this._requireInTheMiddleSingleton.register($.name,X);this._hooks.push(Q);let J=new kZ0.Hook([$.name],{internals:!0},Z);this._hooks.push(J)}}disable(){if(!this._enabled)return;this._enabled=!1;for(let $ of this._modules){if(typeof $.unpatch==="function"&&$.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:$.name,version:$.moduleVersion}),$.unpatch($.moduleExports,$.moduleVersion);for(let Z of $.files)if(Z.moduleExports)this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:$.name,version:$.moduleVersion,fileName:Z.name}),Z.unpatch(Z.moduleExports,$.moduleVersion)}}isEnabled(){return this._enabled}}cN.InstrumentationBase=uN;function dN($,Z,X){if(typeof Z>"u")return $.includes("*");return $.some((Q)=>{return(0,LZ0.satisfies)(Z,Q,{includePrerelease:X})})}});var iN=q((dK)=>{Object.defineProperty(dK,"__esModule",{value:!0});dK.normalize=void 0;var AZ0=s("path");Object.defineProperty(dK,"normalize",{enumerable:!0,get:function(){return AZ0.normalize}})});var oN=q((KX)=>{Object.defineProperty(KX,"__esModule",{value:!0});KX.normalize=KX.InstrumentationBase=void 0;var _Z0=pN();Object.defineProperty(KX,"InstrumentationBase",{enumerable:!0,get:function(){return _Z0.InstrumentationBase}});var yZ0=iN();Object.defineProperty(KX,"normalize",{enumerable:!0,get:function(){return yZ0.normalize}})});var uK=q((zX)=>{Object.defineProperty(zX,"__esModule",{value:!0});zX.normalize=zX.InstrumentationBase=void 0;var sN=oN();Object.defineProperty(zX,"InstrumentationBase",{enumerable:!0,get:function(){return sN.InstrumentationBase}});Object.defineProperty(zX,"normalize",{enumerable:!0,get:function(){return sN.normalize}})});var tN=q((nN)=>{Object.defineProperty(nN,"__esModule",{value:!0});nN.InstrumentationNodeModuleDefinition=void 0;class rN{files;name;supportedVersions;patch;unpatch;constructor($,Z,X,Q,J){this.files=J||[],this.name=$,this.supportedVersions=Z,this.patch=X,this.unpatch=Q}}nN.InstrumentationNodeModuleDefinition=rN});var X_=q(($_)=>{Object.defineProperty($_,"__esModule",{value:!0});$_.InstrumentationNodeModuleFile=void 0;var EZ0=uK();class eN{name;supportedVersions;patch;unpatch;constructor($,Z,X,Q){this.name=(0,EZ0.normalize)($),this.supportedVersions=Z,this.patch=X,this.unpatch=Q}}$_.InstrumentationNodeModuleFile=eN});var W_=q((J_)=>{Object.defineProperty(J_,"__esModule",{value:!0});J_.semconvStabilityFromStr=J_.SemconvStability=void 0;var HX;(function($){$[$.STABLE=1]="STABLE",$[$.OLD=2]="OLD",$[$.DUPLICATE=3]="DUPLICATE"})(HX=J_.SemconvStability||(J_.SemconvStability={}));function hZ0($,Z){let X=HX.OLD,Q=Z?.split(",").map((J)=>J.trim()).filter((J)=>J!=="");for(let J of Q??[])if(J.toLowerCase()===$+"/dup"){X=HX.DUPLICATE;break}else if(J.toLowerCase()===$)X=HX.STABLE;return X}J_.semconvStabilityFromStr=hZ0});var r=q((n1)=>{Object.defineProperty(n1,"__esModule",{value:!0});n1.semconvStabilityFromStr=n1.SemconvStability=n1.safeExecuteInTheMiddleAsync=n1.safeExecuteInTheMiddle=n1.isWrapped=n1.InstrumentationNodeModuleFile=n1.InstrumentationNodeModuleDefinition=n1.InstrumentationBase=n1.registerInstrumentations=void 0;var bZ0=iA();Object.defineProperty(n1,"registerInstrumentations",{enumerable:!0,get:function(){return bZ0.registerInstrumentations}});var vZ0=uK();Object.defineProperty(n1,"InstrumentationBase",{enumerable:!0,get:function(){return vZ0.InstrumentationBase}});var SZ0=tN();Object.defineProperty(n1,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return SZ0.InstrumentationNodeModuleDefinition}});var xZ0=X_();Object.defineProperty(n1,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return xZ0.InstrumentationNodeModuleFile}});var cK=gK();Object.defineProperty(n1,"isWrapped",{enumerable:!0,get:function(){return cK.isWrapped}});Object.defineProperty(n1,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return cK.safeExecuteInTheMiddle}});Object.defineProperty(n1,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return cK.safeExecuteInTheMiddleAsync}});var K_=W_();Object.defineProperty(n1,"SemconvStability",{enumerable:!0,get:function(){return K_.SemconvStability}});Object.defineProperty(n1,"semconvStabilityFromStr",{enumerable:!0,get:function(){return K_.semconvStabilityFromStr}})});var oK=q((F_)=>{Object.defineProperty(F_,"__esModule",{value:!0});F_._clearDefaultServiceNameCache=F_.defaultServiceName=void 0;var nZ;function nZ0(){if(nZ===void 0)try{let $=globalThis.process.argv0;nZ=$?`unknown_service:${$}`:"unknown_service"}catch{nZ="unknown_service"}return nZ}F_.defaultServiceName=nZ0;function aZ0(){nZ=void 0}F_._clearDefaultServiceNameCache=aZ0});var U_=q((w_)=>{Object.defineProperty(w_,"__esModule",{value:!0});w_.isPromiseLike=void 0;var eZ0=($)=>{return $!==null&&typeof $==="object"&&typeof $.then==="function"};w_.isPromiseLike=eZ0});var nK=q((D_)=>{Object.defineProperty(D_,"__esModule",{value:!0});D_.defaultResource=D_.emptyResource=D_.resourceFromDetectedResource=D_.resourceFromAttributes=void 0;var tZ=S(),sK=o0(),T8=P1(),$50=oK(),aZ=U_();class eZ{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList($,Z){let X=new eZ({},Z);return X._rawAttributes=q_($),X._asyncAttributesPending=$.filter(([Q,J])=>(0,aZ.isPromiseLike)(J)).length>0,X}constructor($,Z){let X=$.attributes??{};this._rawAttributes=Object.entries(X).map(([Q,J])=>{if((0,aZ.isPromiseLike)(J))this._asyncAttributesPending=!0;return[Q,J]}),this._rawAttributes=q_(this._rawAttributes),this._schemaUrl=J50(Z?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(!this.asyncAttributesPending)return;for(let $=0;${if((0,aZ.isPromiseLike)(X))return[Z,X.catch((Q)=>{tZ.diag.debug("promise rejection for resource attribute: %s - %s",Z,Q);return})];return[Z,X]})}function J50($){if(typeof $==="string"||$===void 0)return $;tZ.diag.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",$);return}function Y50($,Z){let X=$?.schemaUrl,Q=Z?.schemaUrl,J=X===void 0||X==="",Y=Q===void 0||Q==="";if(J)return Q;if(Y)return X;if(X===Q)return X;tZ.diag.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',X,Q);return}});var k_=q((O_)=>{Object.defineProperty(O_,"__esModule",{value:!0});O_.detectResources=void 0;var L_=S(),aK=nK(),H50=($={})=>{return($.detectors||[]).map((X)=>{try{let Q=(0,aK.resourceFromDetectedResource)(X.detect($));return L_.diag.debug(`${X.constructor.name} found resource.`,Q),Q}catch(Q){return L_.diag.debug(`${X.constructor.name} failed: ${Q.message}`),(0,aK.emptyResource)()}}).reduce((X,Q)=>X.merge(Q),(0,aK.emptyResource)())};O_.detectResources=H50});var N_=q((f_)=>{Object.defineProperty(f_,"__esModule",{value:!0});f_.envDetector=void 0;var G50=S(),V50=P1(),M_=o0();class R_{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect($){let Z={},X=(0,M_.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),Q=(0,M_.getStringFromEnv)("OTEL_SERVICE_NAME");if(X)try{let J=this._parseResourceAttributes(X);Object.assign(Z,J)}catch(J){G50.diag.debug(`EnvDetector failed: ${J instanceof Error?J.message:J}`)}if(Q)Z[V50.ATTR_SERVICE_NAME]=Q;return{attributes:Z}}_parseResourceAttributes($){if(!$)return{};let Z={},X=$.split(this._COMMA_SEPARATOR);for(let Q of X){let J=Q.split(this._LABEL_KEY_VALUE_SPLITTER);if(J.length!==2)throw Error(`Invalid format for OTEL_RESOURCE_ATTRIBUTES: "${Q}". Expected format: key=value. The ',' and '=' characters must be percent-encoded in keys and values.`);let[Y,W]=J,K=Y.trim(),z=W.trim();if(K.length===0)throw Error(`Invalid OTEL_RESOURCE_ATTRIBUTES: empty attribute key in "${Q}".`);let H,G;try{H=decodeURIComponent(K),G=decodeURIComponent(z)}catch(V){throw Error(`Failed to percent-decode OTEL_RESOURCE_ATTRIBUTES entry "${Q}": ${V instanceof Error?V.message:V}`)}if(H.length>this._MAX_LENGTH)throw Error(`Attribute key exceeds the maximum length of ${this._MAX_LENGTH} characters: "${H}".`);if(G.length>this._MAX_LENGTH)throw Error(`Attribute value exceeds the maximum length of ${this._MAX_LENGTH} characters for key "${H}".`);Z[H]=G}return Z}}f_.envDetector=new R_});var $5=q((__)=>{Object.defineProperty(__,"__esModule",{value:!0});__.ATTR_WEBENGINE_VERSION=__.ATTR_WEBENGINE_NAME=__.ATTR_WEBENGINE_DESCRIPTION=__.ATTR_SERVICE_NAMESPACE=__.ATTR_SERVICE_INSTANCE_ID=__.ATTR_PROCESS_RUNTIME_VERSION=__.ATTR_PROCESS_RUNTIME_NAME=__.ATTR_PROCESS_RUNTIME_DESCRIPTION=__.ATTR_PROCESS_PID=__.ATTR_PROCESS_OWNER=__.ATTR_PROCESS_EXECUTABLE_PATH=__.ATTR_PROCESS_EXECUTABLE_NAME=__.ATTR_PROCESS_COMMAND_ARGS=__.ATTR_PROCESS_COMMAND=__.ATTR_OS_VERSION=__.ATTR_OS_TYPE=__.ATTR_K8S_POD_NAME=__.ATTR_K8S_NAMESPACE_NAME=__.ATTR_K8S_DEPLOYMENT_NAME=__.ATTR_K8S_CLUSTER_NAME=__.ATTR_HOST_TYPE=__.ATTR_HOST_NAME=__.ATTR_HOST_IMAGE_VERSION=__.ATTR_HOST_IMAGE_NAME=__.ATTR_HOST_IMAGE_ID=__.ATTR_HOST_ID=__.ATTR_HOST_ARCH=__.ATTR_CONTAINER_NAME=__.ATTR_CONTAINER_IMAGE_TAGS=__.ATTR_CONTAINER_IMAGE_NAME=__.ATTR_CONTAINER_ID=__.ATTR_CLOUD_REGION=__.ATTR_CLOUD_PROVIDER=__.ATTR_CLOUD_AVAILABILITY_ZONE=__.ATTR_CLOUD_ACCOUNT_ID=void 0;__.ATTR_CLOUD_ACCOUNT_ID="cloud.account.id";__.ATTR_CLOUD_AVAILABILITY_ZONE="cloud.availability_zone";__.ATTR_CLOUD_PROVIDER="cloud.provider";__.ATTR_CLOUD_REGION="cloud.region";__.ATTR_CONTAINER_ID="container.id";__.ATTR_CONTAINER_IMAGE_NAME="container.image.name";__.ATTR_CONTAINER_IMAGE_TAGS="container.image.tags";__.ATTR_CONTAINER_NAME="container.name";__.ATTR_HOST_ARCH="host.arch";__.ATTR_HOST_ID="host.id";__.ATTR_HOST_IMAGE_ID="host.image.id";__.ATTR_HOST_IMAGE_NAME="host.image.name";__.ATTR_HOST_IMAGE_VERSION="host.image.version";__.ATTR_HOST_NAME="host.name";__.ATTR_HOST_TYPE="host.type";__.ATTR_K8S_CLUSTER_NAME="k8s.cluster.name";__.ATTR_K8S_DEPLOYMENT_NAME="k8s.deployment.name";__.ATTR_K8S_NAMESPACE_NAME="k8s.namespace.name";__.ATTR_K8S_POD_NAME="k8s.pod.name";__.ATTR_OS_TYPE="os.type";__.ATTR_OS_VERSION="os.version";__.ATTR_PROCESS_COMMAND="process.command";__.ATTR_PROCESS_COMMAND_ARGS="process.command_args";__.ATTR_PROCESS_EXECUTABLE_NAME="process.executable.name";__.ATTR_PROCESS_EXECUTABLE_PATH="process.executable.path";__.ATTR_PROCESS_OWNER="process.owner";__.ATTR_PROCESS_PID="process.pid";__.ATTR_PROCESS_RUNTIME_DESCRIPTION="process.runtime.description";__.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name";__.ATTR_PROCESS_RUNTIME_VERSION="process.runtime.version";__.ATTR_SERVICE_INSTANCE_ID="service.instance.id";__.ATTR_SERVICE_NAMESPACE="service.namespace";__.ATTR_WEBENGINE_DESCRIPTION="webengine.description";__.ATTR_WEBENGINE_NAME="webengine.name";__.ATTR_WEBENGINE_VERSION="webengine.version"});var FX=q((I_)=>{Object.defineProperty(I_,"__esModule",{value:!0});I_.execAsync=void 0;var i50=s("child_process"),o50=s("util");I_.execAsync=o50.promisify(i50.exec)});var b_=q((E_)=>{Object.defineProperty(E_,"__esModule",{value:!0});E_.getMachineId=void 0;var s50=FX(),r50=S();async function n50(){try{let Z=(await(0,s50.execAsync)('ioreg -rd1 -c "IOPlatformExpertDevice"')).stdout.split(` +`).find((Q)=>Q.includes("IOPlatformUUID"));if(!Z)return;let X=Z.split('" = "');if(X.length===2)return X[1].slice(0,-1)}catch($){r50.diag.debug(`error reading machine id: ${$}`)}return}E_.getMachineId=n50});var x_=q((v_)=>{Object.defineProperty(v_,"__esModule",{value:!0});v_.getMachineId=void 0;var a50=s("fs"),t50=S();async function e50(){let $=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let Z of $)try{return(await a50.promises.readFile(Z,{encoding:"utf8"})).trim()}catch(X){t50.diag.debug(`error reading machine id: ${X}`)}return}v_.getMachineId=e50});var u_=q((m_)=>{Object.defineProperty(m_,"__esModule",{value:!0});m_.getMachineId=void 0;var $40=s("fs"),Z40=FX(),g_=S();async function X40(){try{return(await $40.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch($){g_.diag.debug(`error reading machine id: ${$}`)}try{return(await(0,Z40.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch($){g_.diag.debug(`error reading machine id: ${$}`)}return}m_.getMachineId=X40});var i_=q((l_)=>{Object.defineProperty(l_,"__esModule",{value:!0});l_.getMachineId=void 0;var c_=s("process"),Q40=FX(),J40=S();async function Y40(){let Z="%windir%\\System32\\REG.exe";if(c_.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in c_.env)Z="%windir%\\sysnative\\cmd.exe /c "+Z;try{let Q=(await(0,Q40.execAsync)(`${Z} QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid`)).stdout.split("REG_SZ");if(Q.length===2)return Q[1].trim()}catch(X){J40.diag.debug(`error reading machine id: ${X}`)}return}l_.getMachineId=Y40});var r_=q((o_)=>{Object.defineProperty(o_,"__esModule",{value:!0});o_.getMachineId=void 0;var W40=S();async function K40(){W40.diag.debug("could not read machine-id: unsupported platform");return}o_.getMachineId=K40});var t_=q((n_)=>{Object.defineProperty(n_,"__esModule",{value:!0});n_.getMachineId=void 0;var z40=s("process"),E8;async function H40(){if(!E8)switch(z40.platform){case"darwin":E8=(await Promise.resolve().then(() => N(b_()))).getMachineId;break;case"linux":E8=(await Promise.resolve().then(() => N(x_()))).getMachineId;break;case"freebsd":E8=(await Promise.resolve().then(() => N(u_()))).getMachineId;break;case"win32":E8=(await Promise.resolve().then(() => N(i_()))).getMachineId;break;default:E8=(await Promise.resolve().then(() => N(r_()))).getMachineId;break}return E8()}n_.getMachineId=H40});var tK=q((e_)=>{Object.defineProperty(e_,"__esModule",{value:!0});e_.normalizeType=e_.normalizeArch=void 0;var G40=($)=>{switch($){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return $}};e_.normalizeArch=G40;var V40=($)=>{switch($){case"sunos":return"solaris";case"win32":return"windows";default:return $}};e_.normalizeType=V40});var Yy=q((Qy)=>{Object.defineProperty(Qy,"__esModule",{value:!0});Qy.hostDetector=void 0;var eK=$5(),Zy=s("os"),B40=t_(),w40=tK();class Xy{detect($){return{attributes:{[eK.ATTR_HOST_NAME]:(0,Zy.hostname)(),[eK.ATTR_HOST_ARCH]:(0,w40.normalizeArch)((0,Zy.arch)()),[eK.ATTR_HOST_ID]:(0,B40.getMachineId)()}}}}Qy.hostDetector=new Xy});var Vy=q((Hy)=>{Object.defineProperty(Hy,"__esModule",{value:!0});Hy.osDetector=void 0;var Wy=$5(),Ky=s("os"),j40=tK();class zy{detect($){return{attributes:{[Wy.ATTR_OS_TYPE]:(0,j40.normalizeType)((0,Ky.platform)()),[Wy.ATTR_OS_VERSION]:(0,Ky.release)()}}}}Hy.osDetector=new zy});var jy=q((By)=>{Object.defineProperty(By,"__esModule",{value:!0});By.processDetector=void 0;var U40=S(),d6=$5(),q40=s("os");class Fy{detect($){let Z={[d6.ATTR_PROCESS_PID]:process.pid,[d6.ATTR_PROCESS_EXECUTABLE_NAME]:process.title,[d6.ATTR_PROCESS_EXECUTABLE_PATH]:process.execPath,[d6.ATTR_PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[d6.ATTR_PROCESS_RUNTIME_VERSION]:process.versions.node,[d6.ATTR_PROCESS_RUNTIME_NAME]:"nodejs",[d6.ATTR_PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};if(process.argv.length>1)Z[d6.ATTR_PROCESS_COMMAND]=process.argv[1];try{let X=q40.userInfo();Z[d6.ATTR_PROCESS_OWNER]=X.username}catch(X){U40.diag.debug(`error obtaining process owner: ${X}`)}return{attributes:Z}}}By.processDetector=new Fy});var Py=q((qy)=>{Object.defineProperty(qy,"__esModule",{value:!0});qy.serviceInstanceIdDetector=void 0;var D40=$5(),P40=s("crypto");class Uy{detect($){return{attributes:{[D40.ATTR_SERVICE_INSTANCE_ID]:(0,P40.randomUUID)()}}}}qy.serviceInstanceIdDetector=new Uy});var Ly=q((z9)=>{Object.defineProperty(z9,"__esModule",{value:!0});z9.serviceInstanceIdDetector=z9.processDetector=z9.osDetector=z9.hostDetector=void 0;var L40=Yy();Object.defineProperty(z9,"hostDetector",{enumerable:!0,get:function(){return L40.hostDetector}});var O40=Vy();Object.defineProperty(z9,"osDetector",{enumerable:!0,get:function(){return O40.osDetector}});var C40=jy();Object.defineProperty(z9,"processDetector",{enumerable:!0,get:function(){return C40.processDetector}});var k40=Py();Object.defineProperty(z9,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return k40.serviceInstanceIdDetector}})});var Oy=q((H9)=>{Object.defineProperty(H9,"__esModule",{value:!0});H9.serviceInstanceIdDetector=H9.processDetector=H9.osDetector=H9.hostDetector=void 0;var BX=Ly();Object.defineProperty(H9,"hostDetector",{enumerable:!0,get:function(){return BX.hostDetector}});Object.defineProperty(H9,"osDetector",{enumerable:!0,get:function(){return BX.osDetector}});Object.defineProperty(H9,"processDetector",{enumerable:!0,get:function(){return BX.processDetector}});Object.defineProperty(H9,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return BX.serviceInstanceIdDetector}})});var My=q((Cy)=>{Object.defineProperty(Cy,"__esModule",{value:!0});Cy.noopDetector=Cy.NoopDetector=void 0;class $z{detect(){return{attributes:{}}}}Cy.NoopDetector=$z;Cy.noopDetector=new $z});var Ry=q((A$)=>{Object.defineProperty(A$,"__esModule",{value:!0});A$.noopDetector=A$.serviceInstanceIdDetector=A$.processDetector=A$.osDetector=A$.hostDetector=A$.envDetector=void 0;var A40=N_();Object.defineProperty(A$,"envDetector",{enumerable:!0,get:function(){return A40.envDetector}});var wX=Oy();Object.defineProperty(A$,"hostDetector",{enumerable:!0,get:function(){return wX.hostDetector}});Object.defineProperty(A$,"osDetector",{enumerable:!0,get:function(){return wX.osDetector}});Object.defineProperty(A$,"processDetector",{enumerable:!0,get:function(){return wX.processDetector}});Object.defineProperty(A$,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return wX.serviceInstanceIdDetector}});var N40=My();Object.defineProperty(A$,"noopDetector",{enumerable:!0,get:function(){return N40.noopDetector}})});var fy=q((E1)=>{Object.defineProperty(E1,"__esModule",{value:!0});E1.defaultServiceName=E1.emptyResource=E1.defaultResource=E1.resourceFromAttributes=E1.serviceInstanceIdDetector=E1.processDetector=E1.osDetector=E1.hostDetector=E1.envDetector=E1.detectResources=void 0;var y40=k_();Object.defineProperty(E1,"detectResources",{enumerable:!0,get:function(){return y40.detectResources}});var Z5=Ry();Object.defineProperty(E1,"envDetector",{enumerable:!0,get:function(){return Z5.envDetector}});Object.defineProperty(E1,"hostDetector",{enumerable:!0,get:function(){return Z5.hostDetector}});Object.defineProperty(E1,"osDetector",{enumerable:!0,get:function(){return Z5.osDetector}});Object.defineProperty(E1,"processDetector",{enumerable:!0,get:function(){return Z5.processDetector}});Object.defineProperty(E1,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return Z5.serviceInstanceIdDetector}});var Zz=nK();Object.defineProperty(E1,"resourceFromAttributes",{enumerable:!0,get:function(){return Zz.resourceFromAttributes}});Object.defineProperty(E1,"defaultResource",{enumerable:!0,get:function(){return Zz.defaultResource}});Object.defineProperty(E1,"emptyResource",{enumerable:!0,get:function(){return Zz.emptyResource}});var I40=oK();Object.defineProperty(E1,"defaultServiceName",{enumerable:!0,get:function(){return I40.defaultServiceName}})});var _y=q((Ay)=>{Object.defineProperty(Ay,"__esModule",{value:!0});Ay.ExceptionEventName=void 0;Ay.ExceptionEventName="exception"});var Ey=q((Iy)=>{Object.defineProperty(Iy,"__esModule",{value:!0});Iy.SpanImpl=void 0;var S0=S(),x0=o0(),h8=P1(),E40=_y();class yy{_spanContext;kind;parentSpanContext;attributes={};links=[];events=[];startTime;resource;instrumentationScope;_droppedAttributesCount=0;_droppedEventsCount=0;_droppedLinksCount=0;_attributesCount=0;name;status={code:S0.SpanStatusCode.UNSET};endTime=[0,0];_ended=!1;_duration=[-1,-1];_spanProcessor;_spanLimits;_attributeValueLengthLimit;_recordEndMetrics;_performanceStartTime;_performanceOffset;_startTimeProvided;constructor($){let Z=Date.now();if(this._spanContext=$.spanContext,this._performanceStartTime=x0.otperformance.now(),this._performanceOffset=Z-(this._performanceStartTime+x0.otperformance.timeOrigin),this._startTimeProvided=$.startTime!=null,this._spanLimits=$.spanLimits,this._attributeValueLengthLimit=this._spanLimits.attributeValueLengthLimit??0,this._spanProcessor=$.spanProcessor,this.name=$.name,this.parentSpanContext=$.parentSpanContext,this.kind=$.kind,$.links)for(let X of $.links)this.addLink(X);if(this.startTime=this._getTime($.startTime??Z),this.resource=$.resource,this.instrumentationScope=$.scope,this._recordEndMetrics=$.recordEndMetrics,$.attributes!=null)this.setAttributes($.attributes);this._spanProcessor.onStart(this,$.context)}spanContext(){return this._spanContext}setAttribute($,Z){if(Z==null||this._isSpanEnded())return this;if($.length===0)return S0.diag.warn(`Invalid attribute key: ${$}`),this;if(!(0,x0.isAttributeValue)(Z))return S0.diag.warn(`Invalid attribute value set for key: ${$}`),this;let{attributeCountLimit:X}=this._spanLimits,Q=!Object.prototype.hasOwnProperty.call(this.attributes,$);if(X!==void 0&&this._attributesCount>=X&&Q)return this._droppedAttributesCount++,this;if(this.attributes[$]=this._truncateToSize(Z),Q)this._attributesCount++;return this}setAttributes($){for(let Z in $)if(Object.prototype.hasOwnProperty.call($,Z))this.setAttribute(Z,$[Z]);return this}addEvent($,Z,X){if(this._isSpanEnded())return this;let{eventCountLimit:Q}=this._spanLimits;if(Q===0)return S0.diag.warn("No events allowed."),this._droppedEventsCount++,this;if(Q!==void 0&&this.events.length>=Q){if(this._droppedEventsCount===0)S0.diag.debug("Dropping extra events.");this.events.shift(),this._droppedEventsCount++}if((0,x0.isTimeInput)(Z)){if(!(0,x0.isTimeInput)(X))X=Z;Z=void 0}let J=(0,x0.sanitizeAttributes)(Z),{attributePerEventCountLimit:Y}=this._spanLimits,W={},K=0,z=0;for(let H in J){if(!Object.prototype.hasOwnProperty.call(J,H))continue;let G=J[H];if(Y!==void 0&&z>=Y){K++;continue}W[H]=this._truncateToSize(G),z++}return this.events.push({name:$,attributes:W,time:this._getTime(X),droppedAttributesCount:K}),this}addLink($){if(this._isSpanEnded())return this;let{linkCountLimit:Z}=this._spanLimits;if(Z===0)return this._droppedLinksCount++,this;if(Z!==void 0&&this.links.length>=Z){if(this._droppedLinksCount===0)S0.diag.debug("Dropping extra links.");this.links.shift(),this._droppedLinksCount++}let{attributePerLinkCountLimit:X}=this._spanLimits,Q=(0,x0.sanitizeAttributes)($.attributes),J={},Y=0,W=0;for(let z in Q){if(!Object.prototype.hasOwnProperty.call(Q,z))continue;let H=Q[z];if(X!==void 0&&W>=X){Y++;continue}J[z]=this._truncateToSize(H),W++}let K={context:$.context};if(W>0)K.attributes=J;if(Y>0)K.droppedAttributesCount=Y;return this.links.push(K),this}addLinks($){for(let Z of $)this.addLink(Z);return this}setStatus($){if(this._isSpanEnded())return this;if($.code===S0.SpanStatusCode.UNSET)return this;if(this.status.code===S0.SpanStatusCode.OK)return this;let Z={code:$.code};if($.code===S0.SpanStatusCode.ERROR){if(typeof $.message==="string")Z.message=$.message;else if($.message!=null)S0.diag.warn(`Dropping invalid status.message of type '${typeof $.message}', expected 'string'`)}return this.status=Z,this}updateName($){if(this._isSpanEnded())return this;return this.name=$,this}end($){if(this._isSpanEnded()){S0.diag.error(`${this.name} ${this._spanContext.traceId}-${this._spanContext.spanId} - You can only call end() on a span once.`);return}if(this.endTime=this._getTime($),this._duration=(0,x0.hrTimeDuration)(this.startTime,this.endTime),this._duration[0]<0)S0.diag.warn("Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.",this.startTime,this.endTime),this.endTime=this.startTime.slice(),this._duration=[0,0];if(this._droppedEventsCount>0)S0.diag.warn(`Dropped ${this._droppedEventsCount} events because eventCountLimit reached`);if(this._droppedLinksCount>0)S0.diag.warn(`Dropped ${this._droppedLinksCount} links because linkCountLimit reached`);if(this._spanProcessor.onEnding)this._spanProcessor.onEnding(this);this._recordEndMetrics?.(),this._ended=!0,this._spanProcessor.onEnd(this)}_getTime($){if(typeof $==="number"&&$<=x0.otperformance.now())return(0,x0.hrTime)($+this._performanceOffset);if(typeof $==="number")return(0,x0.millisToHrTime)($);if($ instanceof Date)return(0,x0.millisToHrTime)($.getTime());if((0,x0.isTimeInputHrTime)($))return $;if(this._startTimeProvided)return(0,x0.millisToHrTime)(Date.now());let Z=x0.otperformance.now()-this._performanceStartTime;return(0,x0.addHrTimes)(this.startTime,(0,x0.millisToHrTime)(Z))}isRecording(){return this._ended===!1}recordException($,Z){let X={};if(typeof $==="string")X[h8.ATTR_EXCEPTION_MESSAGE]=$;else if($){if($.code)X[h8.ATTR_EXCEPTION_TYPE]=$.code.toString();else if($.name)X[h8.ATTR_EXCEPTION_TYPE]=$.name;if($.message)X[h8.ATTR_EXCEPTION_MESSAGE]=$.message;if($.stack)X[h8.ATTR_EXCEPTION_STACKTRACE]=$.stack}if(X[h8.ATTR_EXCEPTION_TYPE]||X[h8.ATTR_EXCEPTION_MESSAGE])this.addEvent(E40.ExceptionEventName,X,Z);else S0.diag.warn(`Failed to record an exception ${$}`)}get duration(){return this._duration}get ended(){return this._ended}get droppedAttributesCount(){return this._droppedAttributesCount}get droppedEventsCount(){return this._droppedEventsCount}get droppedLinksCount(){return this._droppedLinksCount}_isSpanEnded(){if(this._ended){let $=Error(`Operation attempted on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`);S0.diag.warn(`Cannot execute the operation on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`,$)}return this._ended}_truncateToLimitUtil($,Z){if($.length<=Z)return $;return $.substring(0,Z)}_truncateToSize($){let Z=this._attributeValueLengthLimit;if(Z<=0)return S0.diag.warn(`Attribute value limit must be positive, got ${Z}`),$;if(typeof $==="string")return this._truncateToLimitUtil($,Z);if(Array.isArray($))return $.map((X)=>typeof X==="string"?this._truncateToLimitUtil(X,Z):X);return $}}Iy.SpanImpl=yy});var G9=q((hy)=>{Object.defineProperty(hy,"__esModule",{value:!0});hy.SamplingDecision=void 0;var h40;(function($){$[$.NOT_RECORD=0]="NOT_RECORD",$[$.RECORD=1]="RECORD",$[$.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(h40=hy.SamplingDecision||(hy.SamplingDecision={}))});var jX=q((vy)=>{Object.defineProperty(vy,"__esModule",{value:!0});vy.AlwaysOffSampler=void 0;var b40=G9();class by{shouldSample(){return{decision:b40.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}}vy.AlwaysOffSampler=by});var UX=q((gy)=>{Object.defineProperty(gy,"__esModule",{value:!0});gy.AlwaysOnSampler=void 0;var v40=G9();class xy{shouldSample(){return{decision:v40.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}}gy.AlwaysOnSampler=xy});var Jz=q((cy)=>{Object.defineProperty(cy,"__esModule",{value:!0});cy.ParentBasedSampler=void 0;var qX=S(),S40=o0(),dy=jX(),Qz=UX();class uy{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor($){if(this._root=$.root,!this._root)(0,S40.globalErrorHandler)(Error("ParentBasedSampler must have a root sampler configured")),this._root=new Qz.AlwaysOnSampler;this._remoteParentSampled=$.remoteParentSampled??new Qz.AlwaysOnSampler,this._remoteParentNotSampled=$.remoteParentNotSampled??new dy.AlwaysOffSampler,this._localParentSampled=$.localParentSampled??new Qz.AlwaysOnSampler,this._localParentNotSampled=$.localParentNotSampled??new dy.AlwaysOffSampler}shouldSample($,Z,X,Q,J,Y){let W=qX.trace.getSpanContext($);if(!W||!(0,qX.isSpanContextValid)(W))return this._root.shouldSample($,Z,X,Q,J,Y);if(W.isRemote){if(W.traceFlags&qX.TraceFlags.SAMPLED)return this._remoteParentSampled.shouldSample($,Z,X,Q,J,Y);return this._remoteParentNotSampled.shouldSample($,Z,X,Q,J,Y)}if(W.traceFlags&qX.TraceFlags.SAMPLED)return this._localParentSampled.shouldSample($,Z,X,Q,J,Y);return this._localParentNotSampled.shouldSample($,Z,X,Q,J,Y)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}}cy.ParentBasedSampler=uy});var Yz=q((oy)=>{Object.defineProperty(oy,"__esModule",{value:!0});oy.TraceIdRatioBasedSampler=void 0;var x40=S(),py=G9();class iy{_ratio;_upperBound;constructor($=0){this._ratio=this._normalize($),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample($,Z){return{decision:(0,x40.isValidTraceId)(Z)&&this._accumulate(Z)=1?1:$<=0?0:$}_accumulate($){let Z=0;for(let X=0;X<$.length/8;X++){let Q=X*8,J=parseInt($.slice(Q,Q+8),16);Z=(Z^J)>>>0}return Z}}oy.TraceIdRatioBasedSampler=iy});var zz=q((ey)=>{Object.defineProperty(ey,"__esModule",{value:!0});ey.buildSamplerFromEnv=ey.loadDefaultConfig=void 0;var Kz=S(),V6=o0(),ry=jX(),Wz=UX(),DX=Jz(),ny=Yz(),F6;(function($){$.AlwaysOff="always_off",$.AlwaysOn="always_on",$.ParentBasedAlwaysOff="parentbased_always_off",$.ParentBasedAlwaysOn="parentbased_always_on",$.ParentBasedTraceIdRatio="parentbased_traceidratio",$.TraceIdRatio="traceidratio"})(F6||(F6={}));var PX=1;function g40(){return{sampler:ty(),forceFlushTimeoutMillis:30000,generalLimits:{attributeValueLengthLimit:(0,V6.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,V6.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??128},spanLimits:{attributeValueLengthLimit:(0,V6.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,V6.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??128,linkCountLimit:(0,V6.getNumberFromEnv)("OTEL_SPAN_LINK_COUNT_LIMIT")??128,eventCountLimit:(0,V6.getNumberFromEnv)("OTEL_SPAN_EVENT_COUNT_LIMIT")??128,attributePerEventCountLimit:(0,V6.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT")??128,attributePerLinkCountLimit:(0,V6.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT")??128}}}ey.loadDefaultConfig=g40;function ty(){let $=(0,V6.getStringFromEnv)("OTEL_TRACES_SAMPLER")??F6.ParentBasedAlwaysOn;switch($){case F6.AlwaysOn:return new Wz.AlwaysOnSampler;case F6.AlwaysOff:return new ry.AlwaysOffSampler;case F6.ParentBasedAlwaysOn:return new DX.ParentBasedSampler({root:new Wz.AlwaysOnSampler});case F6.ParentBasedAlwaysOff:return new DX.ParentBasedSampler({root:new ry.AlwaysOffSampler});case F6.TraceIdRatio:return new ny.TraceIdRatioBasedSampler(ay());case F6.ParentBasedTraceIdRatio:return new DX.ParentBasedSampler({root:new ny.TraceIdRatioBasedSampler(ay())});default:return Kz.diag.error(`OTEL_TRACES_SAMPLER value "${$}" invalid, defaulting to "${F6.ParentBasedAlwaysOn}".`),new DX.ParentBasedSampler({root:new Wz.AlwaysOnSampler})}}ey.buildSamplerFromEnv=ty;function ay(){let $=(0,V6.getNumberFromEnv)("OTEL_TRACES_SAMPLER_ARG");if($==null)return Kz.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${PX}.`),PX;if($<0||$>1)return Kz.diag.error(`OTEL_TRACES_SAMPLER_ARG=${$} was given, but it is out of range ([0..1]), defaulting to ${PX}.`),PX;return $}});var Hz=q((XI)=>{Object.defineProperty(XI,"__esModule",{value:!0});XI.reconfigureLimits=XI.mergeConfig=XI.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=XI.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;var ZI=zz(),LX=o0();XI.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;XI.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function d40($){let Z={sampler:(0,ZI.buildSamplerFromEnv)()},X=(0,ZI.loadDefaultConfig)(),Q=Object.assign({},X,Z,$);return Q.generalLimits=Object.assign({},X.generalLimits,$.generalLimits||{}),Q.spanLimits=Object.assign({},X.spanLimits,$.spanLimits||{}),Q}XI.mergeConfig=d40;function u40($){let Z=Object.assign({},$.spanLimits);return Z.attributeCountLimit=$.spanLimits?.attributeCountLimit??$.generalLimits?.attributeCountLimit??(0,LX.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??(0,LX.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??XI.DEFAULT_ATTRIBUTE_COUNT_LIMIT,Z.attributeValueLengthLimit=$.spanLimits?.attributeValueLengthLimit??$.generalLimits?.attributeValueLengthLimit??(0,LX.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??(0,LX.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??XI.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},$,{spanLimits:Z})}XI.reconfigureLimits=u40});var HI=q((KI)=>{Object.defineProperty(KI,"__esModule",{value:!0});KI.BatchSpanProcessorBase=void 0;var V9=S(),u6=o0();class WI{_maxExportBatchSize;_maxQueueSize;_scheduledDelayMillis;_exportTimeoutMillis;_exporter;_isExporting=!1;_finishedSpans=[];_timer;_shutdownOnce;_droppedSpansCount=0;constructor($,Z){if(this._exporter=$,this._maxExportBatchSize=typeof Z?.maxExportBatchSize==="number"?Z.maxExportBatchSize:(0,u6.getNumberFromEnv)("OTEL_BSP_MAX_EXPORT_BATCH_SIZE")??512,this._maxQueueSize=typeof Z?.maxQueueSize==="number"?Z.maxQueueSize:(0,u6.getNumberFromEnv)("OTEL_BSP_MAX_QUEUE_SIZE")??2048,this._scheduledDelayMillis=typeof Z?.scheduledDelayMillis==="number"?Z.scheduledDelayMillis:(0,u6.getNumberFromEnv)("OTEL_BSP_SCHEDULE_DELAY")??5000,this._exportTimeoutMillis=typeof Z?.exportTimeoutMillis==="number"?Z.exportTimeoutMillis:(0,u6.getNumberFromEnv)("OTEL_BSP_EXPORT_TIMEOUT")??30000,this._shutdownOnce=new u6.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize)V9.diag.warn("BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize"),this._maxExportBatchSize=this._maxQueueSize}forceFlush(){if(this._shutdownOnce.isCalled)return this._shutdownOnce.promise;return this._flushAll()}onStart($,Z){}onEnd($){if(this._shutdownOnce.isCalled)return;if(($.spanContext().traceFlags&V9.TraceFlags.SAMPLED)===0)return;this._addToBuffer($)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return Promise.resolve().then(()=>{return this.onShutdown()}).then(()=>{return this._flushAll()}).then(()=>{return this._exporter.shutdown()})}_addToBuffer($){if(this._finishedSpans.length>=this._maxQueueSize){if(this._droppedSpansCount===0)V9.diag.debug("maxQueueSize reached, dropping spans");this._droppedSpansCount++;return}if(this._droppedSpansCount>0)V9.diag.warn(`Dropped ${this._droppedSpansCount} spans because maxQueueSize reached`),this._droppedSpansCount=0;this._finishedSpans.push($),this._maybeStartTimer()}_flushAll(){return new Promise(($,Z)=>{let X=[],Q=Math.ceil(this._finishedSpans.length/this._maxExportBatchSize);for(let J=0,Y=Q;J{$()}).catch(Z)})}_flushOneBatch(){if(this._clearTimer(),this._finishedSpans.length===0)return Promise.resolve();return new Promise(($,Z)=>{let X=setTimeout(()=>{Z(Error("Timeout"))},this._exportTimeoutMillis);V9.context.with((0,u6.suppressTracing)(V9.context.active()),()=>{let Q;if(this._finishedSpans.length<=this._maxExportBatchSize)Q=this._finishedSpans,this._finishedSpans=[];else Q=this._finishedSpans.splice(0,this._maxExportBatchSize);let J=()=>this._exporter.export(Q,(W)=>{if(clearTimeout(X),W.code===u6.ExportResultCode.SUCCESS)$();else Z(W.error??Error("BatchSpanProcessor: span export failed"))}),Y=null;for(let W=0,K=Q.length;W{(0,u6.globalErrorHandler)(W),Z(W)})})})}_maybeStartTimer(){if(this._isExporting)return;let $=()=>{this._isExporting=!0,this._flushOneBatch().finally(()=>{if(this._isExporting=!1,this._finishedSpans.length>0)this._clearTimer(),this._maybeStartTimer()}).catch((Z)=>{this._isExporting=!1,(0,u6.globalErrorHandler)(Z)})};if(this._finishedSpans.length>=this._maxExportBatchSize)return $();if(this._timer!==void 0)return;if(this._timer=setTimeout(()=>$(),this._scheduledDelayMillis),typeof this._timer!=="number")this._timer.unref()}_clearTimer(){if(this._timer!==void 0)clearTimeout(this._timer),this._timer=void 0}}KI.BatchSpanProcessorBase=WI});var BI=q((VI)=>{Object.defineProperty(VI,"__esModule",{value:!0});VI.BatchSpanProcessor=void 0;var l40=HI();class GI extends l40.BatchSpanProcessorBase{onShutdown(){}}VI.BatchSpanProcessor=GI});var PI=q((qI)=>{Object.defineProperty(qI,"__esModule",{value:!0});qI.RandomIdGenerator=void 0;var p40=8,jI=16;class UI{generateTraceId=wI(jI);generateSpanId=wI(p40)}qI.RandomIdGenerator=UI;var OX=Buffer.allocUnsafe(jI);function wI($){return function(){for(let X=0;X<$/4;X++)OX.writeUInt32BE(Math.random()*4294967296>>>0,X*4);for(let X=0;X<$;X++)if(OX[X]>0)break;else if(X===$-1)OX[$-1]=1;return OX.toString("hex",0,$)}}});var LI=q((CX)=>{Object.defineProperty(CX,"__esModule",{value:!0});CX.RandomIdGenerator=CX.BatchSpanProcessor=void 0;var i40=BI();Object.defineProperty(CX,"BatchSpanProcessor",{enumerable:!0,get:function(){return i40.BatchSpanProcessor}});var o40=PI();Object.defineProperty(CX,"RandomIdGenerator",{enumerable:!0,get:function(){return o40.RandomIdGenerator}})});var Gz=q((kX)=>{Object.defineProperty(kX,"__esModule",{value:!0});kX.RandomIdGenerator=kX.BatchSpanProcessor=void 0;var OI=LI();Object.defineProperty(kX,"BatchSpanProcessor",{enumerable:!0,get:function(){return OI.BatchSpanProcessor}});Object.defineProperty(kX,"RandomIdGenerator",{enumerable:!0,get:function(){return OI.RandomIdGenerator}})});var MI=q((CI)=>{Object.defineProperty(CI,"__esModule",{value:!0});CI.METRIC_OTEL_SDK_SPAN_STARTED=CI.METRIC_OTEL_SDK_SPAN_LIVE=CI.ATTR_OTEL_SPAN_SAMPLING_RESULT=CI.ATTR_OTEL_SPAN_PARENT_ORIGIN=void 0;CI.ATTR_OTEL_SPAN_PARENT_ORIGIN="otel.span.parent.origin";CI.ATTR_OTEL_SPAN_SAMPLING_RESULT="otel.span.sampling_result";CI.METRIC_OTEL_SDK_SPAN_LIVE="otel.sdk.span.live";CI.METRIC_OTEL_SDK_SPAN_STARTED="otel.sdk.span.started"});var NI=q((fI)=>{Object.defineProperty(fI,"__esModule",{value:!0});fI.TracerMetrics=void 0;var MX=G9(),X5=MI();class RI{startedSpans;liveSpans;constructor($){this.startedSpans=$.createCounter(X5.METRIC_OTEL_SDK_SPAN_STARTED,{unit:"{span}",description:"The number of created spans."}),this.liveSpans=$.createUpDownCounter(X5.METRIC_OTEL_SDK_SPAN_LIVE,{unit:"{span}",description:"The number of currently live spans."})}startSpan($,Z){let X=$X0(Z);if(this.startedSpans.add(1,{[X5.ATTR_OTEL_SPAN_PARENT_ORIGIN]:e40($),[X5.ATTR_OTEL_SPAN_SAMPLING_RESULT]:X}),Z===MX.SamplingDecision.NOT_RECORD)return()=>{};let Q={[X5.ATTR_OTEL_SPAN_SAMPLING_RESULT]:X};return this.liveSpans.add(1,Q),()=>{this.liveSpans.add(-1,Q)}}}fI.TracerMetrics=RI;function e40($){if(!$)return"none";if($.isRemote)return"remote";return"local"}function $X0($){switch($){case MX.SamplingDecision.RECORD_AND_SAMPLED:return"RECORD_AND_SAMPLE";case MX.SamplingDecision.RECORD:return"RECORD_ONLY";case MX.SamplingDecision.NOT_RECORD:return"DROP"}}});var II=q((_I)=>{Object.defineProperty(_I,"__esModule",{value:!0});_I.VERSION=void 0;_I.VERSION="2.6.1"});var bI=q((EI)=>{Object.defineProperty(EI,"__esModule",{value:!0});EI.Tracer=void 0;var y0=S(),RX=o0(),ZX0=Ey(),XX0=Hz(),QX0=Gz(),JX0=NI(),YX0=II();class TI{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;_tracerMetrics;constructor($,Z,X,Q){let J=(0,XX0.mergeConfig)(Z);this._sampler=J.sampler,this._generalLimits=J.generalLimits,this._spanLimits=J.spanLimits,this._idGenerator=Z.idGenerator||new QX0.RandomIdGenerator,this._resource=X,this._spanProcessor=Q,this.instrumentationScope=$;let Y=J.meterProvider?J.meterProvider.getMeter("@opentelemetry/sdk-trace",YX0.VERSION):y0.createNoopMeter();this._tracerMetrics=new JX0.TracerMetrics(Y)}startSpan($,Z={},X=y0.context.active()){if(Z.root)X=y0.trace.deleteSpan(X);let Q=y0.trace.getSpan(X);if((0,RX.isTracingSuppressed)(X))return y0.diag.debug("Instrumentation suppressed, returning Noop Span"),y0.trace.wrapSpanContext(y0.INVALID_SPAN_CONTEXT);let J=Q?.spanContext(),Y=this._idGenerator.generateSpanId(),W,K,z;if(!J||!y0.trace.isSpanContextValid(J))K=this._idGenerator.generateTraceId();else K=J.traceId,z=J.traceState,W=J;let H=Z.kind??y0.SpanKind.INTERNAL,G=(Z.links??[]).map((R)=>{return{context:R.context,attributes:(0,RX.sanitizeAttributes)(R.attributes)}}),V=(0,RX.sanitizeAttributes)(Z.attributes),F=this._sampler.shouldSample(X,K,$,H,V,G),B=this._tracerMetrics.startSpan(J,F.decision);z=F.traceState??z;let j=F.decision===y0.SamplingDecision.RECORD_AND_SAMPLED?y0.TraceFlags.SAMPLED:y0.TraceFlags.NONE,U={traceId:K,spanId:Y,traceFlags:j,traceState:z};if(F.decision===y0.SamplingDecision.NOT_RECORD)return y0.diag.debug("Recording is off, propagating context in a non-recording span"),y0.trace.wrapSpanContext(U);let D=(0,RX.sanitizeAttributes)(Object.assign(V,F.attributes));return new ZX0.SpanImpl({resource:this._resource,scope:this.instrumentationScope,context:X,spanContext:U,name:$,kind:H,links:G,parentSpanContext:W,attributes:D,startTime:Z.startTime,spanProcessor:this._spanProcessor,spanLimits:this._spanLimits,recordEndMetrics:B})}startActiveSpan($,Z,X,Q){let J,Y,W;if(arguments.length<2)return;else if(arguments.length===2)W=Z;else if(arguments.length===3)J=Z,W=X;else J=Z,Y=X,W=Q;let K=Y??y0.context.active(),z=this.startSpan($,J,K),H=y0.trace.setSpan(K,z);return y0.context.with(H,W,void 0,z)}getGeneralLimits(){return this._generalLimits}getSpanLimits(){return this._spanLimits}}EI.Tracer=TI});var gI=q((SI)=>{Object.defineProperty(SI,"__esModule",{value:!0});SI.MultiSpanProcessor=void 0;var WX0=o0();class vI{_spanProcessors;constructor($){this._spanProcessors=$}forceFlush(){let $=[];for(let Z of this._spanProcessors)$.push(Z.forceFlush());return new Promise((Z)=>{Promise.all($).then(()=>{Z()}).catch((X)=>{(0,WX0.globalErrorHandler)(X||Error("MultiSpanProcessor: forceFlush failed")),Z()})})}onStart($,Z){for(let X of this._spanProcessors)X.onStart($,Z)}onEnding($){for(let Z of this._spanProcessors)if(Z.onEnding)Z.onEnding($)}onEnd($){for(let Z of this._spanProcessors)Z.onEnd($)}shutdown(){let $=[];for(let Z of this._spanProcessors)$.push(Z.shutdown());return new Promise((Z,X)=>{Promise.all($).then(()=>{Z()},X)})}}SI.MultiSpanProcessor=vI});var lI=q((uI)=>{Object.defineProperty(uI,"__esModule",{value:!0});uI.BasicTracerProvider=uI.ForceFlushState=void 0;var KX0=o0(),zX0=fy(),HX0=bI(),GX0=zz(),VX0=gI(),FX0=Hz(),F9;(function($){$[$.resolved=0]="resolved",$[$.timeout=1]="timeout",$[$.error=2]="error",$[$.unresolved=3]="unresolved"})(F9=uI.ForceFlushState||(uI.ForceFlushState={}));class dI{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor($={}){let Z=(0,KX0.merge)({},(0,GX0.loadDefaultConfig)(),(0,FX0.reconfigureLimits)($));this._resource=Z.resource??(0,zX0.defaultResource)(),this._config=Object.assign({},Z,{resource:this._resource});let X=[];if($.spanProcessors?.length)X.push(...$.spanProcessors);this._activeSpanProcessor=new VX0.MultiSpanProcessor(X)}getTracer($,Z,X){let Q=`${$}@${Z||""}:${X?.schemaUrl||""}`;if(!this._tracers.has(Q))this._tracers.set(Q,new HX0.Tracer({name:$,version:Z,schemaUrl:X?.schemaUrl},this._config,this._resource,this._activeSpanProcessor));return this._tracers.get(Q)}forceFlush(){let $=this._config.forceFlushTimeoutMillis,Z=this._activeSpanProcessor._spanProcessors.map((X)=>{return new Promise((Q)=>{let J,Y=setTimeout(()=>{Q(Error(`Span processor did not completed within timeout period of ${$} ms`)),J=F9.timeout},$);X.forceFlush().then(()=>{if(clearTimeout(Y),J!==F9.timeout)J=F9.resolved,Q(J)}).catch((W)=>{clearTimeout(Y),J=F9.error,Q(W)})})});return new Promise((X,Q)=>{Promise.all(Z).then((J)=>{let Y=J.filter((W)=>W!==F9.resolved);if(Y.length>0)Q(Y);else X()}).catch((J)=>Q([J]))})}shutdown(){return this._activeSpanProcessor.shutdown()}}uI.BasicTracerProvider=dI});var sI=q((iI)=>{Object.defineProperty(iI,"__esModule",{value:!0});iI.ConsoleSpanExporter=void 0;var Vz=o0();class pI{export($,Z){return this._sendSpans($,Z)}shutdown(){return this._sendSpans([]),this.forceFlush()}forceFlush(){return Promise.resolve()}_exportInfo($){return{resource:{attributes:$.resource.attributes},instrumentationScope:$.instrumentationScope,traceId:$.spanContext().traceId,parentSpanContext:$.parentSpanContext,traceState:$.spanContext().traceState?.serialize(),name:$.name,id:$.spanContext().spanId,kind:$.kind,timestamp:(0,Vz.hrTimeToMicroseconds)($.startTime),duration:(0,Vz.hrTimeToMicroseconds)($.duration),attributes:$.attributes,status:$.status,events:$.events,links:$.links}}_sendSpans($,Z){for(let X of $)console.dir(this._exportInfo(X),{depth:3});if(Z)return Z({code:Vz.ExportResultCode.SUCCESS})}}iI.ConsoleSpanExporter=pI});var eI=q((aI)=>{Object.defineProperty(aI,"__esModule",{value:!0});aI.InMemorySpanExporter=void 0;var rI=o0();class nI{_finishedSpans=[];_stopped=!1;export($,Z){if(this._stopped)return Z({code:rI.ExportResultCode.FAILED,error:Error("Exporter has been stopped")});this._finishedSpans.push(...$),setTimeout(()=>Z({code:rI.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}}aI.InMemorySpanExporter=nI});var QT=q((ZT)=>{Object.defineProperty(ZT,"__esModule",{value:!0});ZT.SimpleSpanProcessor=void 0;var BX0=S(),fX=o0();class $T{_exporter;_shutdownOnce;_pendingExports;constructor($){this._exporter=$,this._shutdownOnce=new fX.BindOnceFuture(this._shutdown,this),this._pendingExports=new Set}async forceFlush(){if(await Promise.all(Array.from(this._pendingExports)),this._exporter.forceFlush)await this._exporter.forceFlush()}onStart($,Z){}onEnd($){if(this._shutdownOnce.isCalled)return;if(($.spanContext().traceFlags&BX0.TraceFlags.SAMPLED)===0)return;let Z=this._doExport($).catch((X)=>(0,fX.globalErrorHandler)(X));this._pendingExports.add(Z),Z.finally(()=>this._pendingExports.delete(Z))}async _doExport($){if($.resource.asyncAttributesPending)await $.resource.waitForAsyncAttributes?.();let Z=await fX.internal._export(this._exporter,[$]);if(Z.code!==fX.ExportResultCode.SUCCESS)throw Z.error??Error(`SimpleSpanProcessor: span export failed (status ${Z})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}}ZT.SimpleSpanProcessor=$T});var KT=q((YT)=>{Object.defineProperty(YT,"__esModule",{value:!0});YT.NoopSpanProcessor=void 0;class JT{onStart($,Z){}onEnd($){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}}YT.NoopSpanProcessor=JT});var Fz=q((K1)=>{Object.defineProperty(K1,"__esModule",{value:!0});K1.SamplingDecision=K1.TraceIdRatioBasedSampler=K1.ParentBasedSampler=K1.AlwaysOnSampler=K1.AlwaysOffSampler=K1.NoopSpanProcessor=K1.SimpleSpanProcessor=K1.InMemorySpanExporter=K1.ConsoleSpanExporter=K1.RandomIdGenerator=K1.BatchSpanProcessor=K1.BasicTracerProvider=void 0;var wX0=lI();Object.defineProperty(K1,"BasicTracerProvider",{enumerable:!0,get:function(){return wX0.BasicTracerProvider}});var zT=Gz();Object.defineProperty(K1,"BatchSpanProcessor",{enumerable:!0,get:function(){return zT.BatchSpanProcessor}});Object.defineProperty(K1,"RandomIdGenerator",{enumerable:!0,get:function(){return zT.RandomIdGenerator}});var jX0=sI();Object.defineProperty(K1,"ConsoleSpanExporter",{enumerable:!0,get:function(){return jX0.ConsoleSpanExporter}});var UX0=eI();Object.defineProperty(K1,"InMemorySpanExporter",{enumerable:!0,get:function(){return UX0.InMemorySpanExporter}});var qX0=QT();Object.defineProperty(K1,"SimpleSpanProcessor",{enumerable:!0,get:function(){return qX0.SimpleSpanProcessor}});var DX0=KT();Object.defineProperty(K1,"NoopSpanProcessor",{enumerable:!0,get:function(){return DX0.NoopSpanProcessor}});var PX0=jX();Object.defineProperty(K1,"AlwaysOffSampler",{enumerable:!0,get:function(){return PX0.AlwaysOffSampler}});var LX0=UX();Object.defineProperty(K1,"AlwaysOnSampler",{enumerable:!0,get:function(){return LX0.AlwaysOnSampler}});var OX0=Jz();Object.defineProperty(K1,"ParentBasedSampler",{enumerable:!0,get:function(){return OX0.ParentBasedSampler}});var CX0=Yz();Object.defineProperty(K1,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return CX0.TraceIdRatioBasedSampler}});var kX0=G9();Object.defineProperty(K1,"SamplingDecision",{enumerable:!0,get:function(){return kX0.SamplingDecision}})});var P=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var f="10.63.0";var u=globalThis;function V0(){return n6(u),u}function n6($){let Z=$.__SENTRY__=$.__SENTRY__||{};return Z.version=Z.version||f,Z[f]=Z[f]||{}}function C1($,Z,X=u){let Q=X.__SENTRY__=X.__SENTRY__||{},J=Q[f]=Q[f]||{};return J[$]||(J[$]=Z())}var d$=["debug","info","warn","error","log","assert","trace"],Hg="Sentry Logger ",x1={};function D0($){if(!("console"in u))return $();let Z=u.console,X={},Q=Object.keys(x1);Q.forEach((J)=>{let Y=x1[J];X[J]=Z[J],Z[J]=Y});try{return $()}finally{Q.forEach((J)=>{Z[J]=X[J]})}}function Gg(){xQ().enabled=!0}function Vg(){xQ().enabled=!1}function $2(){return xQ().enabled}function Fg(...$){SQ("log",...$)}function Bg(...$){SQ("warn",...$)}function wg(...$){SQ("error",...$)}function SQ($,...Z){if(!P)return;if($2())D0(()=>{u.console[$](`${Hg}[${$}]:`,...Z)})}function xQ(){if(!P)return{enabled:!1};return C1("loggerSettings",()=>({enabled:!1}))}var w={enable:Gg,disable:Vg,isEnabled:$2,log:Fg,warn:Bg,error:wg};var Z2=Object.prototype.toString;function k1($){switch(Z2.call($)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return u$($,Error)}}function _5($,Z){return Z2.call($)===`[object ${Z}]`}function gQ($){return _5($,"ErrorEvent")}function Q7($){return _5($,"String")}function J7($){return typeof $==="object"&&$!==null&&"__sentry_template_string__"in $&&"__sentry_template_values__"in $}function O6($){return $===null||J7($)||typeof $!=="object"&&typeof $!=="function"}function a6($){return _5($,"Object")}function mQ($){return typeof Event<"u"&&u$($,Event)}function dQ($){return _5($,"RegExp")}function I0($){return Boolean($?.then&&typeof $.then==="function")}function u$($,Z){try{return $ instanceof Z}catch{return!1}}function E9($,Z,X){if(!(Z in $))return;let Q=$[Z];if(typeof Q!=="function")return;let J=X(Q);if(typeof J==="function")c$(J,Q);try{$[Z]=J}catch{P&&w.log(`Failed to replace method "${Z}" in object`,$)}}function w0($,Z,X){try{Object.defineProperty($,Z,{value:X,writable:!0,configurable:!0})}catch{P&&w.log(`Failed to add non-enumerable property "${String(Z)}" to object`,$)}}function c$($,Z){try{let X=Z.prototype||{};$.prototype=Z.prototype=X,w0($,"__sentry_original__",Z)}catch{}}function l$($,Z,X,Q=!0){let J=$[Z];if(typeof J!=="function")throw Error(`Cannot wrap method: ${Z} is not a function`);if(C6(J))throw Error(`Attempting to wrap method ${Z} multiple times`);c$(X,J),Object.defineProperty($,Z,{writable:!0,configurable:!0,enumerable:Q,value:X})}function C6($){return $.__sentry_original__}function y5($){if(k1($))return{message:$.message,name:$.name,stack:$.stack,...X2($)};if(mQ($)){let{type:Z,target:X,currentTarget:Q,detail:J}=$;return{type:Z,target:X,currentTarget:Q,...J?{detail:J}:{},...X2($)}}return $}function X2($){if(typeof $==="object"&&$!==null)return Object.fromEntries(Object.entries($));return{}}function uQ($){let Z=Object.keys(y5($));return Z.sort(),!Z[0]?"[object has no keys]":Z.join(", ")}function p$($){try{let Z=u.WeakRef;if(typeof Z==="function")return new Z($)}catch{}return $}function i$($){if(!$)return;if(typeof $==="object"&&"deref"in $&&typeof $.deref==="function")try{return $.deref()}catch{return}return $}var Q2="_sentryScope",J2="_sentryIsolationScope",jg=Symbol.for("sentry.otelSourceInference");function k6($,Z,X){if($)w0($,J2,p$(X)),w0($,Q2,Z)}function Q1($){let Z=$;return{scope:Z[Q2],isolationScope:i$(Z[J2])}}function cQ($){return $[jg]===!0}var Y7=0,M6=1,O=2;function G1($){if($<400&&$>=100)return{code:1};if($>=400&&$<500)switch($){case 401:return{code:2,message:"unauthenticated"};case 403:return{code:2,message:"permission_denied"};case 404:return{code:2,message:"not_found"};case 409:return{code:2,message:"already_exists"};case 413:return{code:2,message:"failed_precondition"};case 429:return{code:2,message:"resource_exhausted"};case 499:return{code:2,message:"cancelled"};default:return{code:2,message:"invalid_argument"}}if($>=500&&$<600)switch($){case 501:return{code:2,message:"unimplemented"};case 503:return{code:2,message:"unavailable"};case 504:return{code:2,message:"deadline_exceeded"};default:return{code:2,message:"internal_error"}}return{code:2,message:"internal_error"}}var W7;function o$($){if(W7!==void 0)return W7?W7($):$();let Z=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),X=u;if(Z in X&&typeof X[Z]==="function")return W7=X[Z],W7($);return W7=null,$()}function O0(){return o$(()=>Math.random())}function P0(){return o$(()=>Date.now())}var Ug=Symbol.for("sentry.skipNormalization"),qg=Symbol.for("sentry.overrideNormalizationDepth");function Y2($){return Boolean($[Ug])}function W2($){let Z=$[qg];return typeof Z==="number"?Z:void 0}var pQ="?",K2=/\(error: (.*)\)/,z2=/captureMessage|captureException/;function T5(...$){let Z=$.sort((X,Q)=>X[0]-Q[0]).map((X)=>X[1]);return(X,Q=0,J=0)=>{let Y=[],W=X.split(` +`);for(let K=Q;K1024)z=z.slice(0,1024);let H=K2.test(z)?z.replace(K2,"$1"):z;if(H.includes("Error: "))continue;for(let G of Z){let V=G(H);if(V){Y.push(V);break}}if(Y.length>=50+J)break}return H2(Y.slice(J))}}function iQ($){if(Array.isArray($))return T5(...$);return $}function H2($){if(!$.length)return[];let Z=Array.from($);if(/sentryWrapped/.test(I5(Z).function||""))Z.pop();if(Z.reverse(),z2.test(I5(Z).function||"")){if(Z.pop(),z2.test(I5(Z).function||""))Z.pop()}return Z.slice(0,50).map((X)=>({...X,filename:X.filename||I5(Z).filename,function:X.function||"?"}))}function I5($){return $[$.length-1]||{}}var lQ="";function h9($){try{if(!$||typeof $!=="function")return lQ;return $.name||lQ}catch{return lQ}}function G2($){let Z=$?.startsWith("file://")?$.slice(7):$;if(Z?.match(/\/[A-Z]:/))Z=Z.slice(1);return Z}var V2;function g1($,Z=100,X=1/0){try{return oQ("",$,Z,X)}catch(Q){return{ERROR:`**non-serializable** (${Q})`}}}function sQ($,Z=3,X=102400){let Q=g1($,Z);if(Lg(Q)>X)return sQ($,Z-1,X);return Q}function oQ($,Z,X=1/0,Q=1/0,J=Og()){let[Y,W]=J;if(Z==null||["boolean","string"].includes(typeof Z)||typeof Z==="number"&&Number.isFinite(Z))return Z;let K=rQ($,Z);if(!K.startsWith("[object "))return K;if(Y2(Z))return Z;let z=W2(Z),H=z!==void 0?z:X;if(H===0)return K.replace("object ","");if(Y(Z))return"[Circular ~]";let G=Z;if(G&&typeof G.toJSON==="function")try{let j=G.toJSON();return oQ("",j,H-1,Q,J)}catch{}let V=Array.isArray(Z)?[]:{},F=0,B=y5(Z);for(let j in B){if(!Object.prototype.hasOwnProperty.call(B,j))continue;if(F>=Q){V[j]="[MaxProperties ~]";break}let U=B[j];V[j]=oQ(j,U,H-1,Q,J),F++}return W(Z),V}function rQ($,Z){try{if(V2){let Q=V2(Z);if(Q)return Q}if(typeof global<"u"&&Z===global)return"[Global]";if(typeof Z==="number"&&!Number.isFinite(Z))return`[${Z}]`;if(typeof Z==="function")return`[Function: ${h9(Z)}]`;if(typeof Z==="symbol")return`[${String(Z)}]`;if(typeof Z==="bigint")return`[BigInt: ${String(Z)}]`;return`[object ${Dg(Z)}]`}catch(X){return`**non-serializable** (${X})`}}function Dg($){let Z=Object.getPrototypeOf($);return Z?.constructor?Z.constructor.name:"null prototype"}function Pg($){return~-encodeURI($).split(/%..|./).length}function Lg($){return Pg(JSON.stringify($))}function Og(){let $=new WeakSet;function Z(Q){if($.has(Q))return!0;return $.add(Q),!1}function X(Q){$.delete(Q)}return[Z,X]}function t6($,Z=0){if(typeof $!=="string"||Z===0)return $;return $.length<=Z?$:`${$.slice(0,Z)}...`}function nQ($,Z){let X=$,Q=X.length;if(Q<=150)return X;if(Z>Q)Z=Q;let J=Math.max(Z-60,0);if(J<5)J=0;let Y=Math.min(J+140,Q);if(Y>Q-5)Y=Q;if(Y===Q)J=Math.max(Y-140,0);if(X=X.slice(J,Y),J>0)X=`'{snip} ${X}`;if(Y$.randomUUID()).replace(/-/g,"")}catch{}if(!tQ)tQ="10000000100040008000100000000000";return tQ.replace(/[018]/g,(Z)=>(Z^(kg()&15)>>Z/4).toString(16))}function F2($){return $.exception?.values?.[0]}function e6($){let{message:Z,event_id:X}=$;if(Z)return Z;let Q=F2($);if(Q){if(Q.type&&Q.value)return`${Q.type}: ${Q.value}`;return Q.type||Q.value||X||""}return X||""}function $J($,Z,X){let Q=$.exception=$.exception||{},J=Q.values=Q.values||[],Y=J[0]=J[0]||{};if(!Y.value)Y.value=Z||"";if(!Y.type)Y.type=X||"Error"}function K7($,Z){let X=F2($);if(!X)return;let Q={type:"generic",handled:!0},J=X.mechanism;if(X.mechanism={...Q,...J,...Z},Z&&"data"in Z){let Y={...J?.data,...Z.data};X.mechanism.data=Y}}var Mg=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function eQ($){return parseInt($||"",10)}function ZJ($){let Z=$.match(Mg)||[],X=eQ(Z[1]),Q=eQ(Z[2]),J=eQ(Z[3]);return{buildmetadata:Z[5],major:isNaN(X)?void 0:X,minor:isNaN(Q)?void 0:Q,patch:isNaN(J)?void 0:J,prerelease:Z[4]}}function E5($){if(B2($))return!0;try{w0($,"__sentry_captured__",!0)}catch{}return!1}function B2($){try{return $.__sentry_captured__}catch{}}var j2=1000;function X6(){return P0()/j2}function Rg(){let{performance:$}=u;if(!$?.now||!$.timeOrigin)return X6;let Z=$.timeOrigin;return()=>{return(Z+o$(()=>$.now()))/j2}}var w2;function J1(){return(w2??(w2=Rg()))()}function U2($){let Z=J1(),X={sid:k0(),init:!0,timestamp:Z,started:Z,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>fg(X)};if($)R6(X,$);return X}function R6($,Z={}){if(Z.user){if(!$.ipAddress&&Z.user.ip_address)$.ipAddress=Z.user.ip_address;if(!$.did&&!Z.did)$.did=Z.user.id||Z.user.email||Z.user.username}if($.timestamp=Z.timestamp||J1(),Z.abnormal_mechanism)$.abnormal_mechanism=Z.abnormal_mechanism;if(Z.ignoreDuration)$.ignoreDuration=Z.ignoreDuration;if(Z.sid)$.sid=Z.sid.length===32?Z.sid:k0();if(Z.init!==void 0)$.init=Z.init;if(!$.did&&Z.did)$.did=`${Z.did}`;if(typeof Z.started==="number")$.started=Z.started;if($.ignoreDuration)$.duration=void 0;else if(typeof Z.duration==="number")$.duration=Z.duration;else{let X=$.timestamp-$.started;$.duration=X>=0?X:0}if(Z.release)$.release=Z.release;if(Z.environment)$.environment=Z.environment;if(!$.ipAddress&&Z.ipAddress)$.ipAddress=Z.ipAddress;if(!$.userAgent&&Z.userAgent)$.userAgent=Z.userAgent;if(typeof Z.errors==="number")$.errors=Z.errors;if(Z.status)$.status=Z.status}function q2($,Z){let X={};if(Z)X={status:Z};else if($.status==="ok")X={status:"exited"};R6($,X)}function fg($){return{sid:`${$.sid}`,init:$.init,started:new Date($.started*1000).toISOString(),timestamp:new Date($.timestamp*1000).toISOString(),status:$.status,errors:$.errors,did:typeof $.did==="number"||typeof $.did==="string"?`${$.did}`:void 0,duration:$.duration,abnormal_mechanism:$.abnormal_mechanism,attrs:{release:$.release,environment:$.environment,ip_address:$.ipAddress,user_agent:$.userAgent}}}function $$($,Z,X=2){if(!Z||typeof Z!=="object"||X<=0)return Z;if($&&Object.keys(Z).length===0)return $;let Q={...$};for(let J in Z)if(Object.prototype.hasOwnProperty.call(Z,J))Q[J]=$$(Q[J],Z[J],X-1);return Q}function N0(){return k0()}function d0(){return k0().substring(16)}var XJ="_sentrySpan";function Z$($,Z){if(Z)w0($,XJ,p$(Z));else delete $[XJ]}function f6($){return i$($[XJ])}var Ag=100;class u0{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._attributes={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:N0(),sampleRand:O0()}}clone(){let $=new u0;if($._breadcrumbs=[...this._breadcrumbs],$._tags={...this._tags},$._attributes={...this._attributes},$._extra={...this._extra},$._contexts={...this._contexts},this._contexts.flags)$._contexts.flags={values:[...this._contexts.flags.values]};return $._user=this._user,$._level=this._level,$._session=this._session,$._transactionName=this._transactionName,$._fingerprint=this._fingerprint,$._eventProcessors=[...this._eventProcessors],$._attachments=[...this._attachments],$._sdkProcessingMetadata={...this._sdkProcessingMetadata},$._propagationContext={...this._propagationContext},$._client=this._client,$._lastEventId=this._lastEventId,$._conversationId=this._conversationId,Z$($,f6(this)),$}setClient($){this._client=$}setLastEventId($){this._lastEventId=$}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener($){this._scopeListeners.push($)}addEventProcessor($){return this._eventProcessors.push($),this}setUser($){if(this._user=$||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session)R6(this._session,{user:$});return this._notifyScopeListeners(),this}getUser(){return this._user}setConversationId($){return this._conversationId=$||void 0,this._notifyScopeListeners(),this}setTags($){return this._tags={...this._tags,...$},this._notifyScopeListeners(),this}setTag($,Z){return this.setTags({[$]:Z})}setAttributes($){return this._attributes={...this._attributes,...$},this._notifyScopeListeners(),this}setAttribute($,Z){return this.setAttributes({[$]:Z})}removeAttribute($){if($ in this._attributes)delete this._attributes[$],this._notifyScopeListeners();return this}setExtras($){return this._extra={...this._extra,...$},this._notifyScopeListeners(),this}setExtra($,Z){return this._extra={...this._extra,[$]:Z},this._notifyScopeListeners(),this}setFingerprint($){return this._fingerprint=$,this._notifyScopeListeners(),this}setLevel($){return this._level=$,this._notifyScopeListeners(),this}setTransactionName($){return this._transactionName=$,this._notifyScopeListeners(),this}setContext($,Z){if(Z===null)delete this._contexts[$];else this._contexts[$]=Z;return this._notifyScopeListeners(),this}setSession($){if(!$)delete this._session;else this._session=$;return this._notifyScopeListeners(),this}getSession(){return this._session}update($){if(!$)return this;let Z=typeof $==="function"?$(this):$,X=Z instanceof u0?Z.getScopeData():a6(Z)?$:void 0,{tags:Q,attributes:J,extra:Y,user:W,contexts:K,level:z,fingerprint:H=[],propagationContext:G,conversationId:V}=X||{};if(this._tags={...this._tags,...Q},this._attributes={...this._attributes,...J},this._extra={...this._extra,...Y},this._contexts={...this._contexts,...K},W&&Object.keys(W).length)this._user=W;if(z)this._level=z;if(H.length)this._fingerprint=H;if(G)this._propagationContext=G;if(V)this._conversationId=V;return this}clear(){return this._breadcrumbs=[],this._tags={},this._attributes={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,this._conversationId=void 0,Z$(this,void 0),this._attachments=[],this.setPropagationContext({traceId:N0(),sampleRand:O0()}),this._notifyScopeListeners(),this}addBreadcrumb($,Z){let X=typeof Z==="number"?Z:Ag;if(X<=0)return this;let Q={timestamp:X6(),...$,message:$.message?t6($.message,2048):$.message};if(this._breadcrumbs.push(Q),this._breadcrumbs.length>X)this._breadcrumbs=this._breadcrumbs.slice(-X),this._client?.recordDroppedEvent("buffer_overflow","log_item");return this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment($){return this._attachments.push($),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,attributes:this._attributes,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:f6(this),conversationId:this._conversationId}}setSDKProcessingMetadata($){return this._sdkProcessingMetadata=$$(this._sdkProcessingMetadata,$,2),this}setPropagationContext($){return this._propagationContext=$,this}getPropagationContext(){return this._propagationContext}captureException($,Z){let X=Z?.event_id||k0();if(!this._client)return P&&w.warn("No client configured on scope - will not capture exception!"),X;let Q=Error("Sentry syntheticException");return this._client.captureException($,{originalException:$,syntheticException:Q,...Z,event_id:X},this),X}captureMessage($,Z,X){let Q=X?.event_id||k0();if(!this._client)return P&&w.warn("No client configured on scope - will not capture message!"),Q;let J=X?.syntheticException??Error($);return this._client.captureMessage($,Z,{originalException:$,syntheticException:J,...X,event_id:Q},this),Q}captureEvent($,Z){let X=$.event_id||Z?.event_id||k0();if(!this._client)return P&&w.warn("No client configured on scope - will not capture event!"),X;return this._client.captureEvent($,{...Z,event_id:X},this),X}_notifyScopeListeners(){if(!this._notifyingListeners)this._notifyingListeners=!0,this._scopeListeners.forEach(($)=>{$(this)}),this._notifyingListeners=!1}}function z7(){return C1("defaultCurrentScope",()=>new u0)}function V1(){return C1("defaultIsolationScope",()=>new u0)}var D2=($)=>$ instanceof Promise&&!$[P2],P2=Symbol("chained PromiseLike"),h5=($,Z,X)=>{let Q=$.then((J)=>{return Z(J),J},(J)=>{throw X(J),J});return D2(Q)&&D2($)?Q:Ng($,Q)},Ng=($,Z)=>{if(!Z)return $;let X=!1;for(let Q in $){if(Q in Z)continue;X=!0;let J=$[Q];if(typeof J==="function")Object.defineProperty(Z,Q,{value:(...Y)=>J.apply($,Y),enumerable:!0,configurable:!0,writable:!0});else Z[Q]=J}if(X)Object.assign(Z,{[P2]:!0});return Z};class O2{constructor($,Z){let X;if(!$)X=new u0;else X=$;let Q;if(!Z)Q=new u0;else Q=Z;this._stack=[{scope:X}],this._isolationScope=Q}withScope($){let Z=this._pushScope(),X;try{X=$(Z)}catch(Q){throw this._popScope(),Q}if(I0(X))return h5(X,()=>this._popScope(),()=>this._popScope());return this._popScope(),X}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){let $=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:$}),$}_popScope(){if(this._stack.length<=1)return!1;return!!this._stack.pop()}}function H7(){let $=V0(),Z=n6($);return Z.stack=Z.stack||new O2(z7(),V1())}function _g($){return H7().withScope($)}function yg($,Z){let X=H7();return X.withScope(()=>{return X.getStackTop().scope=$,Z($)})}function L2($){return H7().withScope(()=>{return $(H7().getIsolationScope())})}function C2(){return{withIsolationScope:L2,withScope:_g,withSetScope:yg,withSetIsolationScope:($,Z)=>{return L2(Z)},getCurrentScope:()=>H7().getScope(),getIsolationScope:()=>H7().getIsolationScope()}}function QJ($){let Z=V0(),X=n6(Z);X.acs=$}function M0($){let Z=n6($);if(Z.acs)return Z.acs;return C2()}var k2;function M2(){return k2?.()}function JJ(){return k2!==void 0}function d(){let $=V0();return M0($).getCurrentScope()}function g(){let $=V0();return M0($).getIsolationScope()}function b9(){return C1("globalScope",()=>new u0)}function X0(...$){let Z=V0(),X=M0(Z);if($.length===2){let[Q,J]=$;if(!Q)return X.withScope(J);return X.withSetScope(Q,J)}return X.withScope($[0])}function G7(...$){let Z=V0(),X=M0(Z);if($.length===2){let[Q,J]=$;if(!Q)return X.withIsolationScope(J);return X.withSetIsolationScope(Q,J)}return X.withIsolationScope($[0])}function M(){return d().getClient()}function s$($){let Z=M2();if(Z)return{trace_id:Z.traceId,span_id:Z.spanId};let X=$.getPropagationContext(),{traceId:Q,parentSpanId:J,propagationSpanId:Y}=X,W={trace_id:Q,span_id:Y||d0()};if(J)W.parent_span_id=J;return W}var t="sentry.source",R1="sentry.sample_rate",YJ="sentry.previous_trace_sample_rate",I="sentry.op",L="sentry.origin",WJ="sentry.status.message";var KJ="sentry.measurement_unit",zJ="sentry.measurement_value",HJ="sentry.release",GJ="sentry.environment",VJ="sentry.segment.name",FJ="sentry.segment.id",BJ="sentry.sdk.name",wJ="sentry.sdk.version",jJ="sentry.sdk.integrations",UJ="user.id",qJ="user.email",v9="user.ip_address",DJ="user.name",f1="sentry.custom_span_name",V7="sentry.profile_id",F7="sentry.exclusive_time",PJ="cache.hit",LJ="cache.key",OJ="cache.item_size",CJ="http.request.method",S9="url.full";var r$="gen_ai.conversation.id";var A6="sentry-";var f2=8192;function m1($){let Z=B7($);if(!Z)return;let X=Object.entries(Z).reduce((Q,[J,Y])=>{if(J.startsWith(A6)){let W=J.slice(A6.length);Q[W]=Y}return Q},{});if(Object.keys(X).length>0)return X;else return}function n$($){if(!$)return;let Z=Object.entries($).reduce((X,[Q,J])=>{if(J)X[`${A6}${Q}`]=J;return X},{});return kJ(Z)}function B7($){if(!$||!Q7($)&&!Array.isArray($))return;if(Array.isArray($))return $.reduce((Z,X)=>{let Q=R2(X);return Object.entries(Q).forEach(([J,Y])=>{Z[J]=Y}),Z},{});return R2($)}function R2($){return $.split(",").map((Z)=>{let X=Z.indexOf("=");if(X===-1)return[];let Q=Z.slice(0,X),J=Z.slice(X+1);return[Q,J].map((Y)=>{try{return decodeURIComponent(Y.trim())}catch{return}})}).reduce((Z,[X,Q])=>{if(X&&Q)Z[X]=Q;return Z},{})}function kJ($){if(Object.keys($).length===0)return;return Object.entries($).reduce((Z,[X,Q],J)=>{let Y=`${encodeURIComponent(X)}=${encodeURIComponent(Q)}`,W=J===0?Y:`${Z},${Y}`;if(W.length>f2)return P&&w.warn(`Not adding key: ${X} with val: ${Q} to baggage header due to exceeding baggage size limits.`),Z;else return W},"")}function w7($,Z){if(!$)return Z;let X=B7($),Q=B7(Z);if(!Q)return $;let J={},Y=!1,W={},K={};for(let[z,H]of Object.entries(Q))if(z.startsWith(A6))W[z]=H,Y=!0;else K[z]=H;if(X){for(let[z,H]of Object.entries(X))if(!Y||!z.startsWith(A6))J[z]=H}if(Y)Object.assign(J,W);for(let[z,H]of Object.entries(K))J[z]??(J[z]=H);return kJ(J)}function d1($,Z,X=()=>{},Q=()=>{}){let J;try{J=$()}catch(Y){throw Z(Y),X(),Y}return Ig(J,Z,X,Q)}function Ig($,Z,X,Q){if(I0($))return h5($,(J)=>{X(),Q(J)},(J)=>{Z(J),X()});return X(),Q($),$}function e($){if(typeof __SENTRY_TRACING__==="boolean"&&!__SENTRY_TRACING__)return!1;let Z=$||M()?.getOptions();return!!Z&&(Z.tracesSampleRate!=null||!!Z.tracesSampler)}function A2($){w.log(`Ignoring span ${$.op} - ${$.description} because it matches \`ignoreSpans\`.`)}function u1($,Z){if(!Z?.length)return!1;for(let X of Z){if(Eg(X)){if($.description&&Z6($.description,X))return P&&A2($),!0;continue}let Q=!!X.attributes&&Object.keys(X.attributes).length>0;if(!X.name&&!X.op&&!Q)continue;let J=X.name?$.description&&Z6($.description,X.name):!0,Y=X.op?$.op&&Z6($.op,X.op):!0,W=X.attributes?Object.entries(X.attributes).every(([K,z])=>Tg($.attributes?.[K],z)):!0;if(J&&Y&&W)return P&&A2($),!0}return!1}function Tg($,Z){if(typeof $==="string"&&(typeof Z==="string"||Z instanceof RegExp))return Z6($,Z);if(Array.isArray($)&&Array.isArray(Z))return $.length===Z.length&&$.every((X,Q)=>X===Z[Q]);return $===Z}function N2($,Z){let{parent_span_id:X,span_id:Q}=Z;if(!X)return;for(let J of $)if(J.parent_span_id===Q)J.parent_span_id=X}function Eg($){return typeof $==="string"||$ instanceof RegExp}function R0($){return $.getOptions().traceLifecycle==="stream"}function F1($){if(typeof $==="boolean")return Number($);let Z=typeof $==="string"?parseFloat($):$;if(typeof Z!=="number"||isNaN(Z)||Z<0||Z>1)return;return Z}function hg($){return typeof $==="object"&&$!=null&&!Array.isArray($)&&Object.keys($).includes("value")}function bg($,Z){let{value:X,unit:Q}=hg($)?$:{value:$,unit:void 0},J=vg(X),Y=Q&&typeof Q==="string"?{unit:Q}:{};if(J)return{...J,...Y};if(!Z||Z==="skip-undefined"&&X===void 0)return;let W="";try{W=JSON.stringify(X)??""}catch{}return{value:W,type:"string",...Y}}function j7($,Z=!1){let X={};for(let[Q,J]of Object.entries($??{})){let Y=bg(J,Z);if(Y)X[Q]=Y}return X}function MJ($){if(!$)return 0;let Z=0;for(let[X,Q]of Object.entries($)){Z+=X.length*2,Z+=Q.type.length*2,Z+=(Q.unit?.length??0)*2;let J=Q.value;if(Array.isArray(J))Z+=_2(J[0])*J.length;else if(O6(J))Z+=_2(J);else Z+=100}return Z}function _2($){if(typeof $==="string")return $.length*2;else if(typeof $==="boolean")return 4;else if(typeof $==="number")return 8;return 0}function vg($){if(Array.isArray($))return{value:$,type:"array"};let Z=typeof $==="string"?"string":typeof $==="boolean"?"boolean":typeof $==="number"&&!Number.isNaN($)?Number.isInteger($)?"integer":"double":null;if(Z)return{value:$,type:Z}}var Sg=/^o(\d+)\./,xg=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)((?:\[[:.%\w]+\]|[\w.-]+))(?::(\d+))?\/(.+)/;function gg($){return $==="http"||$==="https"}function s0($,Z=!1){let{host:X,path:Q,pass:J,port:Y,projectId:W,protocol:K,publicKey:z}=$;return`${K}://${z}${Z&&J?`:${J}`:""}@${X}${Y?`:${Y}`:""}/${Q?`${Q}/`:Q}${W}`}function mg($){let Z=xg.exec($);if(!Z){D0(()=>{console.error(`Invalid Sentry Dsn: ${$}`)});return}let[X,Q,J="",Y="",W="",K=""]=Z.slice(1),z="",H=K,G=H.split("/");if(G.length>1)z=G.slice(0,-1).join("/"),H=G.pop();if(H){let V=H.match(/^\d+/);if(V)H=V[0]}return y2({host:Y,pass:J,path:z,projectId:H,port:W,protocol:X,publicKey:Q})}function y2($){return{protocol:$.protocol,publicKey:$.publicKey||"",pass:$.pass||"",host:$.host,port:$.port||"",path:$.path||"",projectId:$.projectId}}function dg($){if(!P)return!0;let{port:Z,projectId:X,protocol:Q}=$;if(["protocol","publicKey","host","projectId"].find((W)=>{if(!$[W])return w.error(`Invalid Sentry Dsn: ${W} missing`),!0;return!1}))return!1;if(!X.match(/^\d+$/))return w.error(`Invalid Sentry Dsn: Invalid projectId ${X}`),!1;if(!gg(Q))return w.error(`Invalid Sentry Dsn: Invalid protocol ${Q}`),!1;if(Z&&isNaN(parseInt(Z,10)))return w.error(`Invalid Sentry Dsn: Invalid port ${Z}`),!1;return!0}function ug($){return $.match(Sg)?.[1]}function b5($){let Z=$.getOptions(),{host:X}=$.getDsn()||{},Q;if(Z.orgId)Q=String(Z.orgId);else if(X)Q=ug(X);return Q}function I2($){let Z=typeof $==="string"?mg($):y2($);if(!Z||!dg(Z))return;return Z}var x9=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$");function T2($){if(!$)return;let Z=$.match(x9);if(!Z)return;let X;if(Z[3]==="1")X=!0;else if(Z[3]==="0")X=!1;return{traceId:Z[1],parentSampled:X,parentSpanId:Z[2]}}function N6($,Z){let X=T2($),Q=m1(Z);if(!X?.traceId)return{traceId:N0(),sampleRand:O0()};let J=cg(X,Q);if(Q)Q.sample_rand=J.toString();let{traceId:Y,parentSpanId:W,parentSampled:K}=X;return{traceId:Y,parentSpanId:W,sampled:K,dsc:Q||{},sampleRand:J}}function X$($=N0(),Z=d0(),X){let Q="";if(X!==void 0)Q=X?"-1":"-0";return`${$}-${Z}${Q}`}function Q$($=N0(),Z=d0(),X){return`00-${$}-${Z}-${X?"01":"00"}`}function cg($,Z){let X=F1(Z?.sample_rand);if(X!==void 0)return X;let Q=F1(Z?.sample_rate);if(Q&&$?.parentSampled!==void 0)return $.parentSampled?O0()*Q:Q+O0()*(1-Q);else return O0()}function g9($,Z){let X=b5($);if(Z&&X&&Z!==X)return w.log(`Won't continue trace because org IDs don't match (incoming baggage: ${Z}, SDK options: ${X})`),!1;if($.getOptions().strictTraceContinuation||!1){if(Z&&!X||!Z&&X)return w.log(`Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${Z}, Sentry client: ${X})`),!1}return!0}var v5=0,d9=1,E2=!1;function b2($){let{spanId:Z,traceId:X}=$.spanContext(),{data:Q,op:J,parent_span_id:Y,status:W,origin:K,links:z}=v($);return{parent_span_id:Y,span_id:Z,trace_id:X,data:Q,op:J,status:W,origin:K,links:z}}function Q6($){let{spanId:Z,traceId:X,isRemote:Q}=$.spanContext(),J=Q?Z:v($).parent_span_id,Y=Q1($).scope,W=Q?Y?.getPropagationContext().propagationSpanId||d0():Z;return{parent_span_id:J,span_id:W,trace_id:X}}function u9($){let{traceId:Z,spanId:X}=$.spanContext(),Q=B1($);return X$(Z,X,Q)}function v2($){let{traceId:Z,spanId:X}=$.spanContext(),Q=B1($);return Q$(Z,X,Q)}function a$($){if($&&$.length>0)return $.map(({context:{spanId:Z,traceId:X,traceFlags:Q,...J},attributes:Y})=>({span_id:Z,trace_id:X,sampled:Q===d9,attributes:Y,...J}));else return}function fJ($){if($?.length)return $.map(({context:{spanId:Z,traceId:X,traceFlags:Q},attributes:J})=>({span_id:Z,trace_id:X,sampled:Q===d9,attributes:J}));else return}function c0($){if(typeof $==="number")return h2($);if(Array.isArray($))return $[0]+$[1]/1e9;if($ instanceof Date)return h2($.getTime());return J1()}function h2($){return $>9999999999?$/1000:$}function v($){if(g2($))return $.getSpanJSON();let{spanId:Z,traceId:X}=$.spanContext();if(x2($)){let{attributes:Q,startTime:J,name:Y,endTime:W,status:K,links:z}=$;return{span_id:Z,trace_id:X,data:Q,description:Y,parent_span_id:S2($),start_timestamp:c0(J),timestamp:c0(W)||void 0,status:t$(K),op:Q[I],origin:Q[L],links:a$(z)}}return{span_id:Z,trace_id:X,start_timestamp:0,data:{}}}function S5($){if(g2($))return $.getStreamedSpanJSON();let{spanId:Z,traceId:X}=$.spanContext();if(x2($)){let{attributes:Q,startTime:J,name:Y,endTime:W,status:K,links:z}=$;return{name:Y,span_id:Z,trace_id:X,parent_span_id:S2($),start_timestamp:c0(J),end_timestamp:c0(W),is_segment:$===U7($),status:g5(K),attributes:AJ(Q,K),links:fJ(z)}}return{span_id:Z,trace_id:X,start_timestamp:0,name:"",end_timestamp:0,status:"ok",is_segment:$===U7($)}}function S2($){return"parentSpanId"in $?$.parentSpanId:("parentSpanContext"in $)?$.parentSpanContext?.spanId:void 0}function x5($){return{...$,attributes:j7($.attributes),links:$.links?.map((Z)=>({...Z,attributes:j7(Z.attributes)}))}}function x2($){let Z=$;return!!Z.attributes&&!!Z.startTime&&!!Z.name&&!!Z.endTime&&!!Z.status}function g2($){return typeof $.getSpanJSON==="function"}function B1($){let{traceFlags:Z}=$.spanContext();return Z===d9}function t$($){if(!$||$.code===Y7)return;if($.code===M6)return"ok";return $.message||"internal_error"}function g5($){return!$||$.code===M6||$.code===Y7||$.message==="cancelled"?"ok":"error"}function AJ($,Z){let X=g5(Z)==="error"?Z?.message:void 0;return{...X&&{[WJ]:X},...$}}var m9="_sentryChildSpans",RJ="_sentryRootSpan";function e$($,Z){let X=$[RJ]||$;if(w0(Z,RJ,X),$[m9])$[m9].add(Z);else w0($,m9,new Set([Z]))}function c9($){let Z=new Set;function X(Q){if(Z.has(Q))return;else if(B1(Q)){Z.add(Q);let J=Q[m9]?Array.from(Q[m9]):[];for(let Y of J)X(Y)}}return X($),Array.from(Z)}var J0=U7;function U7($){return $[RJ]||$}function p(){let $=V0(),Z=M0($);if(Z.getActiveSpan)return Z.getActiveSpan();return f6(d())}function $8(){if(!E2)D0(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),E2=!0}var J$="production";var m2=Symbol.for("sentry.nonRecordingSpan");class q7{constructor($={}){this._traceId=$.traceId||N0(),this._spanId=$.spanId||d0(),this.dropReason=$.dropReason,w0(this,m2,!0)}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:v5}}end($){}setAttribute($,Z){return this}setAttributes($){return this}setStatus($){return this}updateName($){return this}isRecording(){return!1}addEvent($,Z,X){return this}addLink($){return this}addLinks($){return this}recordException($,Z){}}function Y$($){return!!$&&$[m2]===!0}var d2="_frozenDsc";function NJ($,Z){w0($,d2,Z)}function _J($,Z){let X=Z.getOptions(),{publicKey:Q}=Z.getDsn()||{},J={environment:X.environment||J$,release:X.release,public_key:Q,trace_id:$,org_id:b5(Z)};return Z.emit("createDsc",J),J}function c1($,Z){let X=Z.getPropagationContext();return X.dsc||_J(X.traceId,$)}function j0($){let Z=M();if(!Z)return{};let X=J0($),Q=v(X),J=Q.data,Y=X.spanContext().traceState,W=Y?.get("sentry.sample_rate")??J[R1]??J[YJ];function K(j){if(typeof W==="number"||typeof W==="string")j.sample_rate=`${W}`;return j}let z=X[d2];if(z)return K(z);if(Y$(X)&&!e(Z.getOptions())){let j=Q1(X).scope;if(j)return K({...c1(Z,j)})}let H=Y?.get("sentry.dsc"),G=H&&m1(H);if(G)return K(G);let V=_J($.spanContext().traceId,Z),F=J[t]??J["sentry.span.source"],B=Q.description;if(F!=="url"&&B)V.transaction=B;if(e())V.sampled=String(B1(X)),V.sample_rand=Y?.get("sentry.sample_rand")??Q1(X).scope?.getPropagationContext().sampleRand.toString();return K(V),Z.emit("createDsc",V,X),V}function l9($){if(!P)return;let{description:Z="< unknown name >",op:X="< unknown op >",parent_span_id:Q}=v($),{spanId:J}=$.spanContext(),Y=B1($),W=J0($),K=W===$,z=`[Tracing] Starting ${Y?"sampled":"unsampled"} ${K?"root ":""}span`,H=[`op: ${X}`,`name: ${Z}`,`ID: ${J}`];if(Q)H.push(`parent ID: ${Q}`);if(!K){let{op:G,description:V}=v(W);if(H.push(`root ID: ${W.spanContext().spanId}`),G)H.push(`root op: ${G}`);if(V)H.push(`root description: ${V}`)}w.log(`${z} + ${H.join(` + `)}`)}function p9($){if(!P)return;let{description:Z="< unknown name >",op:X="< unknown op >"}=v($),{spanId:Q}=$.spanContext(),Y=J0($)===$,W=`[Tracing] Finishing "${X}" ${Y?"root ":""}span "${Z}" with ID ${Q}`;w.log(W)}function i9($,Z,X){if(!e($))return[!1];let Q=void 0,J;if(typeof $.tracesSampler==="function")J=$.tracesSampler({...Z,inheritOrSampleWith:(K)=>{if(typeof Z.parentSampleRate==="number")return Z.parentSampleRate;if(typeof Z.parentSampled==="boolean")return Number(Z.parentSampled);return K}}),Q=!0;else if(Z.parentSampled!==void 0)J=Z.parentSampled;else if(typeof $.tracesSampleRate<"u")J=$.tracesSampleRate,Q=!0;let Y=F1(J);if(Y===void 0)return P&&w.warn(`[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(J)} of type ${JSON.stringify(typeof J)}.`),[!1];if(!Y)return P&&w.log(`[Tracing] Discarding transaction because ${typeof $.tracesSampler==="function"?"tracesSampler returned 0 or false":"a negative sampling decision was inherited or tracesSampleRate is set to 0"}`),[!1,Y,Q];let W=XZ.includes(Q))}function yJ($){let Z=n6(u);return Z.encodePolyfill?Z.encodePolyfill($):new TextEncoder().encode($)}function s9($){let[Z,X]=$,Q=JSON.stringify(Z);function J(Y){if(typeof Q==="string")Q=typeof Y==="string"?Q+Y:[yJ(Q),Y];else Q.push(typeof Y==="string"?yJ(Y):Y)}for(let Y of X){let[W,K]=Y;if(J(` ${JSON.stringify(W)} -`),typeof K==="string"||K instanceof Uint8Array)Y(K);else{let z;try{z=JSON.stringify(K)}catch{z=JSON.stringify(U9(K))}Y(z)}}return typeof $==="string"?$:WG0($)}function WG0(Z){let J=Z.reduce((Y,X)=>Y+X.length,0),Q=new Uint8Array(J),$=0;for(let Y of Z)Q.set(Y,$),$+=Y.length;return Q}function _W(Z){return[{type:"span"},Z]}function vW(Z){let J=typeof Z.data==="string"?yW(Z.data):Z.data;return[{type:"attachment",length:J.length,filename:Z.filename,content_type:Z.contentType,attachment_type:Z.attachmentType},J]}var AI={sessions:"session",event:"error",client_report:"internal",user_report:"default",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",raw_security:"security",log:"log_item",trace_metric:"metric"};function KG0(Z){return Z in AI}function CQ(Z){return KG0(Z)?AI[Z]:Z}function PQ(Z){if(!Z?.sdk)return;let{name:J,version:Q}=Z.sdk;return{name:J,version:Q}}function bW(Z,J,Q,$){let Y=Z.sdkProcessingMetadata?.dynamicSamplingContext;return{event_id:Z.event_id,sent_at:new Date().toISOString(),...J&&{sdk:J},...!!Q&&$&&{dsn:I6($)},...Y&&{trace:Y}}}function II(Z){q.log(`Ignoring span ${Z.op} - ${Z.description} because it matches \`ignoreSpans\`.`)}function E5(Z,J){if(!J?.length||!Z.description)return!1;for(let Q of J){if(zG0(Q)){if(i9(Z.description,Q))return k&&II(Z),!0;continue}if(!Q.name&&!Q.op)continue;let $=Q.name?i9(Z.description,Q.name):!0,Y=Q.op?Z.op&&i9(Z.op,Q.op):!0;if($&&Y)return k&&II(Z),!0}return!1}function NI(Z,J){let{parent_span_id:Q,span_id:$}=J;if(!Q)return;for(let Y of Z)if(Y.parent_span_id===$)Y.parent_span_id=Q}function zG0(Z){return typeof Z==="string"||Z instanceof RegExp}function GG0(Z,J){if(!J)return Z;let Q=Z.sdk||{};return Z.sdk={...Q,name:Q.name||J.name,version:Q.version||J.version,integrations:[...Z.sdk?.integrations||[],...J.integrations||[]],packages:[...Z.sdk?.packages||[],...J.packages||[]],settings:Z.sdk?.settings||J.settings?{...Z.sdk?.settings,...J.settings}:void 0},Z}function TI(Z,J,Q,$){let Y=PQ(Q),X={sent_at:new Date().toISOString(),...Y&&{sdk:Y},...!!$&&J&&{dsn:I6(J)}},W="aggregates"in Z?[{type:"sessions"},Z]:[{type:"session"},Z.toJSON()];return J6(X,[W])}function fI(Z,J,Q,$){let Y=PQ(Q),X=Z.type&&Z.type!=="replay_event"?Z.type:"event";GG0(Z,Q?.sdk);let W=bW(Z,Y,$,J);return delete Z.sdkProcessingMetadata,J6(W,[[{type:X},Z]])}function EI(Z,J){function Q(F){return!!F.trace_id&&!!F.public_key}let $=P0(Z[0]),Y=J?.getDsn(),X=J?.getOptions().tunnel,W={sent_at:new Date().toISOString(),...Q($)&&{trace:$},...!!X&&Y&&{dsn:I6(Y)}},{beforeSendSpan:K,ignoreSpans:z}=J?.getOptions()||{},G=z?.length?Z.filter((F)=>!E5(h(F),z)):Z,H=Z.length-G.length;if(H)J?.recordDroppedEvent("before_send","span",H);let B=K?(F)=>{let D=h(F),U=K(D);if(!U)return R5(),D;return U}:h,V=[];for(let F of G){let D=B(F);if(D)V.push(_W(D))}return J6(W,V)}function h7(Z){if(!Z||Z.length===0)return;let J={};return Z.forEach((Q)=>{let $=Q.attributes||{},Y=$[OW],X=$[CW];if(typeof Y==="string"&&typeof X==="number")J[Q.name]={value:X,unit:Y}}),J}var yI=1000;class y5{constructor(Z={}){if(this._traceId=Z.traceId||F6(),this._spanId=Z.spanId||w6(),this._startTime=Z.startTimestamp||T9(),this._links=Z.links,this._attributes={},this.setAttributes({[_]:"manual",[b]:Z.op,...Z.attributes}),this._name=Z.name,Z.parentSpanId)this._parentSpanId=Z.parentSpanId;if("sampled"in Z)this._sampled=Z.sampled;if(Z.endTimestamp)this._endTime=Z.endTimestamp;if(this._events=[],this._isStandaloneSpan=Z.isStandalone,this._endTime)this._onSpanEnded()}addLink(Z){if(this._links)this._links.push(Z);else this._links=[Z];return this}addLinks(Z){if(this._links)this._links.push(...Z);else this._links=Z;return this}recordException(Z,J){}spanContext(){let{_spanId:Z,_traceId:J,_sampled:Q}=this;return{spanId:Z,traceId:J,traceFlags:Q?LQ:qQ}}setAttribute(Z,J){if(J===void 0)delete this._attributes[Z];else this._attributes[Z]=J;return this}setAttributes(Z){return Object.keys(Z).forEach((J)=>this.setAttribute(J,Z[J])),this}updateStartTime(Z){this._startTime=D6(Z)}setStatus(Z){return this._status=Z,this}updateName(Z){return this._name=Z,this.setAttribute(B0,"custom"),this}end(Z){if(this._endTime)return;this._endTime=D6(Z),I5(this),this._onSpanEnded()}getSpanJSON(){return{data:this._attributes,description:this._name,op:this._attributes[b],parent_span_id:this._parentSpanId,span_id:this._spanId,start_timestamp:this._startTime,status:E7(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[_],profile_id:this._attributes[v1],exclusive_time:this._attributes[b1],measurements:h7(this._events),is_segment:this._isStandaloneSpan&&H0(this)===this||void 0,segment_id:this._isStandaloneSpan?H0(this).spanContext().spanId:void 0,links:f7(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(Z,J,Q){k&&q.log("[Tracing] Adding an event to span:",Z);let $=hI(J)?J:Q||T9(),Y=hI(J)?{}:J||{},X={name:Z,time:D6($),attributes:Y};return this._events.push(X),this}isStandaloneSpan(){return!!this._isStandaloneSpan}_onSpanEnded(){let Z=f();if(Z)Z.emit("spanEnd",this);if(!(this._isStandaloneSpan||this===H0(this)))return;if(this._isStandaloneSpan){if(this._sampled)HG0(EI([this],Z));else if(k&&q.log("[Tracing] Discarding standalone span because its trace was not chosen to be sampled."),Z)Z.recordDroppedEvent("sample_rate","span");return}let Q=this._convertSpanToTransaction();if(Q)(V9(this).scope||t()).captureEvent(Q)}_convertSpanToTransaction(){if(!SI(h(this)))return;if(!this._name)k&&q.warn("Transaction has no name, falling back to ``."),this._name="";let{scope:Z,isolationScope:J}=V9(this),Q=Z?.getScopeData().sdkProcessingMetadata?.normalizedRequest;if(this._sampled!==!0)return;let Y=M5(this).filter((G)=>G!==this&&!BG0(G)).map((G)=>h(G)).filter(SI),X=this._attributes[B0];delete this._attributes[i6],Y.forEach((G)=>{delete G.data[i6]});let W={contexts:{trace:kI(this)},spans:Y.length>yI?Y.sort((G,H)=>G.start_timestamp-H.start_timestamp).slice(0,yI):Y,start_timestamp:this._startTime,timestamp:this._endTime,transaction:this._name,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:Z,capturedSpanIsolationScope:J,dynamicSamplingContext:P0(this)},request:Q,...X&&{transaction_info:{source:X}}},K=h7(this._events);if(K&&Object.keys(K).length)k&&q.log("[Measurements] Adding measurements to transaction event",JSON.stringify(K,void 0,2)),W.measurements=K;return W}}function hI(Z){return Z&&typeof Z==="number"||Z instanceof Date||Array.isArray(Z)}function SI(Z){return!!Z.start_timestamp&&!!Z.timestamp&&!!Z.span_id&&!!Z.trace_id}function BG0(Z){return Z instanceof y5&&Z.isStandaloneSpan()}function HG0(Z){let J=f();if(!J)return;let Q=Z[1];if(!Q||Q.length===0){J.recordDroppedEvent("before_send","span");return}J.sendEnvelope(Z)}var kQ="__SENTRY_SUPPRESS_TRACING__";function U6(Z,J){let Q=S5();if(Q.startSpan)return Q.startSpan(Z,J);let $=gW(Z),{forceTransaction:Y,parentSpan:X,scope:W}=Z,K=W?.clone();return n0(K,()=>{return vI(X)(()=>{let G=t(),H=dW(G,X),V=Z.onlyIfParent&&!H?new y7:xW({parentSpan:H,spanArguments:$,forceTransaction:Y,scope:G});return A7(G,V),w9(()=>J(V),()=>{let{status:F}=h(V);if(V.isRecording()&&(!F||F==="ok"))V.setStatus({code:i,message:"internal_error"})},()=>{V.end()})})})}function N0(Z,J){let Q=S5();if(Q.startSpanManual)return Q.startSpanManual(Z,J);let $=gW(Z),{forceTransaction:Y,parentSpan:X,scope:W}=Z,K=W?.clone();return n0(K,()=>{return vI(X)(()=>{let G=t(),H=dW(G,X),V=Z.onlyIfParent&&!H?new y7:xW({parentSpan:H,spanArguments:$,forceTransaction:Y,scope:G});return A7(G,V),w9(()=>J(V,()=>V.end()),()=>{let{status:F}=h(V);if(V.isRecording()&&(!F||F==="ok"))V.setStatus({code:i,message:"internal_error"})})})})}function h5(Z){let J=S5();if(J.startInactiveSpan)return J.startInactiveSpan(Z);let Q=gW(Z),{forceTransaction:$,parentSpan:Y}=Z;return(Z.scope?(W)=>n0(Z.scope,W):Y!==void 0?(W)=>S7(Y,W):(W)=>W())(()=>{let W=t(),K=dW(W,Y);if(Z.onlyIfParent&&!K)return new y7;return xW({parentSpan:K,spanArguments:Q,forceTransaction:$,scope:W})})}function S7(Z,J){let Q=S5();if(Q.withActiveSpan)return Q.withActiveSpan(Z,J);return n0(($)=>{return A7($,Z||void 0),J($)})}function _7(Z){let J=S5();if(J.suppressTracing)return J.suppressTracing(Z);return n0((Q)=>{Q.setSDKProcessingMetadata({[kQ]:!0});let $=Z();return Q.setSDKProcessingMetadata({[kQ]:void 0}),$})}function xW({parentSpan:Z,spanArguments:J,forceTransaction:Q,scope:$}){if(!C0()){let W=new y7;if(Q||!Z){let K={sampled:"false",sample_rate:"0",transaction:J.name,...P0(W)};OQ(W,K)}return W}let Y=l(),X;if(Z&&!Q)X=VG0(Z,$,J),g1(Z,X);else if(Z){let W=P0(Z),{traceId:K,spanId:z}=Z.spanContext(),G=D9(Z);X=_I({traceId:K,parentSpanId:z,...J},$,G),OQ(X,W)}else{let{traceId:W,dsc:K,parentSpanId:z,sampled:G}={...Y.getPropagationContext(),...$.getPropagationContext()};if(X=_I({traceId:W,parentSpanId:z,...J},$,G),K)OQ(X,K)}return A5(X),j5(X,$,Y),X}function gW(Z){let Q={isStandalone:(Z.experimental||{}).standalone,...Z};if(Z.startTime){let $={...Q};return $.startTimestamp=D6(Z.startTime),delete $.startTime,$}return Q}function S5(){let Z=Z6();return F9(Z)}function _I(Z,J,Q){let $=f(),Y=$?.getOptions()||{},{name:X=""}=Z,W={spanAttributes:{...Z.attributes},spanName:X,parentSampled:Q};$?.emit("beforeSampling",W,{decision:!1});let K=W.parentSampled??Q,z=W.spanAttributes,G=J.getPropagationContext(),[H,B,V]=J.getScopeData().sdkProcessingMetadata[kQ]?[!1]:N5(Y,{name:X,parentSampled:K,attributes:z,parentSampleRate:A6(G.dsc?.sample_rate)},G.sampleRand),F=new y5({...Z,attributes:{[B0]:"custom",[p6]:B!==void 0&&V?B:void 0,...z},sampled:H});if(!H&&$)k&&q.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),$.recordDroppedEvent("sample_rate","transaction");if($)$.emit("spanStart",F);return F}function VG0(Z,J,Q){let{spanId:$,traceId:Y}=Z.spanContext(),X=J.getScopeData().sdkProcessingMetadata[kQ]?!1:D9(Z),W=X?new y5({...Q,parentSpanId:$,traceId:Y,sampled:X}):new y7({traceId:Y});g1(Z,W);let K=f();if(K){if(K.emit("spanStart",W),Q.endTimestamp)K.emit("spanEnd",W)}return W}function dW(Z,J){if(J)return J;if(J===null)return;let Q=a9(Z);if(!Q)return;let $=f();if(($?$.getOptions():{}).parentSpanIsAlwaysRootSpan)return H0(Q);return Q}function vI(Z){return Z!==void 0?(J)=>{return S7(Z,J)}:(J)=>J()}var cW=0,bI=1,xI=2;function r9(Z){return new _5((J)=>{J(Z)})}function c1(Z){return new _5((J,Q)=>{Q(Z)})}class _5{constructor(Z){this._state=cW,this._handlers=[],this._runExecutor(Z)}then(Z,J){return new _5((Q,$)=>{this._handlers.push([!1,(Y)=>{if(!Z)Q(Y);else try{Q(Z(Y))}catch(X){$(X)}},(Y)=>{if(!J)$(Y);else try{Q(J(Y))}catch(X){$(X)}}]),this._executeHandlers()})}catch(Z){return this.then((J)=>J,Z)}finally(Z){return new _5((J,Q)=>{let $,Y;return this.then((X)=>{if(Y=!1,$=X,Z)Z()},(X)=>{if(Y=!0,$=X,Z)Z()}).then(()=>{if(Y){Q($);return}J($)})})}_executeHandlers(){if(this._state===cW)return;let Z=this._handlers.slice();this._handlers=[],Z.forEach((J)=>{if(J[0])return;if(this._state===bI)J[1](this._value);if(this._state===xI)J[2](this._value);J[0]=!0})}_runExecutor(Z){let J=(Y,X)=>{if(this._state!==cW)return;if(b0(X)){X.then(Q,$);return}this._state=Y,this._value=X,this._executeHandlers()},Q=(Y)=>{J(bI,Y)},$=(Y)=>{J(xI,Y)};try{Z(Q,$)}catch(Y){$(Y)}}}function gI(Z,J,Q,$=0){try{let Y=mW(J,Q,Z,$);return b0(Y)?Y:r9(Y)}catch(Y){return c1(Y)}}function mW(Z,J,Q,$){let Y=Q[$];if(!Z||!Y)return Z;let X=Y({...Z},J);if(k&&X===null&&q.log(`Event processor "${Y.id||"?"}" dropped event`),b0(X))return X.then((W)=>mW(W,J,Q,$+1));return mW(X,J,Q,$+1)}var v7,dI,cI,EZ;function mI(Z){let J=d._sentryDebugIds,Q=d._debugIds;if(!J&&!Q)return{};let $=J?Object.keys(J):[],Y=Q?Object.keys(Q):[];if(EZ&&$.length===dI&&Y.length===cI)return EZ;if(dI=$.length,cI=Y.length,EZ={},!v7)v7={};let X=(W,K)=>{for(let z of W){let G=K[z],H=v7?.[z];if(H&&EZ&&G){if(EZ[H[0]]=G,v7)v7[z]=[H[0],G]}else if(G){let B=Z(z);for(let V=B.length-1;V>=0;V--){let D=B[V]?.filename;if(D&&EZ&&v7){EZ[D]=G,v7[z]=[D,G];break}}}}};if(J)X($,J);if(Q)X(Y,Q);return EZ}function lI(Z,J){let{fingerprint:Q,span:$,breadcrumbs:Y,sdkProcessingMetadata:X}=J;if(FG0(Z,J),$)UG0(Z,$);jG0(Z,Q),wG0(Z,Y),DG0(Z,X)}function uI(Z,J){let{extra:Q,tags:$,attributes:Y,user:X,contexts:W,level:K,sdkProcessingMetadata:z,breadcrumbs:G,fingerprint:H,eventProcessors:B,attachments:V,propagationContext:F,transactionName:D,span:U}=J;if(v5(Z,"extra",Q),v5(Z,"tags",$),v5(Z,"attributes",Y),v5(Z,"user",X),v5(Z,"contexts",W),Z.sdkProcessingMetadata=AZ(Z.sdkProcessingMetadata,z,2),K)Z.level=K;if(D)Z.transactionName=D;if(U)Z.span=U;if(G.length)Z.breadcrumbs=[...Z.breadcrumbs,...G];if(H.length)Z.fingerprint=[...Z.fingerprint,...H];if(B.length)Z.eventProcessors=[...Z.eventProcessors,...B];if(V.length)Z.attachments=[...Z.attachments,...V];Z.propagationContext={...Z.propagationContext,...F}}function v5(Z,J,Q){Z[J]=AZ(Z[J],Q,1)}function m1(Z,J){let Q=L5().getScopeData();return Z&&uI(Q,Z.getScopeData()),J&&uI(Q,J.getScopeData()),Q}function FG0(Z,J){let{extra:Q,tags:$,user:Y,contexts:X,level:W,transactionName:K}=J;if(Object.keys(Q).length)Z.extra={...Q,...Z.extra};if(Object.keys($).length)Z.tags={...$,...Z.tags};if(Object.keys(Y).length)Z.user={...Y,...Z.user};if(Object.keys(X).length)Z.contexts={...X,...Z.contexts};if(W)Z.level=W;if(K&&Z.type!=="transaction")Z.transaction=K}function wG0(Z,J){let Q=[...Z.breadcrumbs||[],...J];Z.breadcrumbs=Q.length?Q:void 0}function DG0(Z,J){Z.sdkProcessingMetadata={...Z.sdkProcessingMetadata,...J}}function UG0(Z,J){Z.contexts={trace:fZ(J),...Z.contexts},Z.sdkProcessingMetadata={dynamicSamplingContext:P0(J),...Z.sdkProcessingMetadata};let Q=H0(J),$=h(Q).description;if($&&!Z.transaction&&Z.type==="transaction")Z.transaction=$}function jG0(Z,J){if(Z.fingerprint=Z.fingerprint?Array.isArray(Z.fingerprint)?Z.fingerprint:[Z.fingerprint]:[],J)Z.fingerprint=Z.fingerprint.concat(J);if(!Z.fingerprint.length)delete Z.fingerprint}function pI(Z,J,Q,$,Y,X){let{normalizeDepth:W=3,normalizeMaxBreadth:K=1000}=Z,z={...J,event_id:J.event_id||Q.event_id||I0(),timestamp:J.timestamp||o9()},G=Q.integrations||Z.integrations.map((L)=>L.name);if(qG0(z,Z),CG0(z,G),Y)Y.emit("applyFrameMetadata",J);if(J.type===void 0)LG0(z,Z.stackParser);let H=kG0($,Q.captureContext);if(Q.mechanism)y1(z,Q.mechanism);let B=Y?Y.getEventProcessors():[],V=m1(X,H),F=[...Q.attachments||[],...V.attachments];if(F.length)Q.attachments=F;lI(z,V);let D=[...B,...V.eventProcessors];return(Q.data&&Q.data.__sentry__===!0?r9(z):gI(D,z,Q)).then((L)=>{if(L)OG0(L);if(typeof W==="number"&&W>0)return PG0(L,W,K);return L})}function qG0(Z,J){let{environment:Q,release:$,dist:Y,maxValueLength:X}=J;if(Z.environment=Z.environment||Q||d1,!Z.release&&$)Z.release=$;if(!Z.dist&&Y)Z.dist=Y;let W=Z.request;if(W?.url&&X)W.url=kZ(W.url,X);if(X)Z.exception?.values?.forEach((K)=>{if(K.value)K.value=kZ(K.value,X)})}function LG0(Z,J){let Q=mI(J);Z.exception?.values?.forEach(($)=>{$.stacktrace?.frames?.forEach((Y)=>{if(Y.filename)Y.debug_id=Q[Y.filename]})})}function OG0(Z){let J={};if(Z.exception?.values?.forEach(($)=>{$.stacktrace?.frames?.forEach((Y)=>{if(Y.debug_id){if(Y.abs_path)J[Y.abs_path]=Y.debug_id;else if(Y.filename)J[Y.filename]=Y.debug_id;delete Y.debug_id}})}),Object.keys(J).length===0)return;Z.debug_meta=Z.debug_meta||{},Z.debug_meta.images=Z.debug_meta.images||[];let Q=Z.debug_meta.images;Object.entries(J).forEach(([$,Y])=>{Q.push({type:"sourcemap",code_file:$,debug_id:Y})})}function CG0(Z,J){if(J.length>0)Z.sdk=Z.sdk||{},Z.sdk.integrations=[...Z.sdk.integrations||[],...J]}function PG0(Z,J,Q){if(!Z)return null;let $={...Z,...Z.breadcrumbs&&{breadcrumbs:Z.breadcrumbs.map((Y)=>({...Y,...Y.data&&{data:U9(Y.data,J,Q)}}))},...Z.user&&{user:U9(Z.user,J,Q)},...Z.contexts&&{contexts:U9(Z.contexts,J,Q)},...Z.extra&&{extra:U9(Z.extra,J,Q)}};if(Z.contexts?.trace&&$.contexts){if($.contexts.trace=Z.contexts.trace,Z.contexts.trace.data)$.contexts.trace.data=U9(Z.contexts.trace.data,J,Q)}if(Z.spans)$.spans=Z.spans.map((Y)=>{return{...Y,...Y.data&&{data:U9(Y.data,J,Q)}}});if(Z.contexts?.flags&&$.contexts)$.contexts.flags=U9(Z.contexts.flags,3,Q);return $}function kG0(Z,J){if(!J)return Z;let Q=Z?Z.clone():new o0;return Q.update(J),Q}function iI(Z){if(!Z)return;if(MG0(Z))return{captureContext:Z};if(AG0(Z))return{captureContext:Z};return Z}function MG0(Z){return Z instanceof o0||typeof Z==="function"}var RG0=["user","level","extra","contexts","tags","fingerprint","propagationContext"];function AG0(Z){return Object.keys(Z).some((J)=>RG0.includes(J))}function g(Z,J){return t().captureException(Z,iI(J))}function b5(Z,J){let Q=typeof J==="string"?J:void 0,$=typeof J!=="string"?{captureContext:J}:void 0;return t().captureMessage(Z,Q,$)}function x5(Z,J){return t().captureEvent(Z,J)}function g5(Z){l().setTags(Z)}async function b7(Z){let J=f();if(J)return J.flush(Z);return k&&q.warn("Cannot flush events. No client defined."),Promise.resolve(!1)}function d5(){let Z=f();return Z?.getOptions().enabled!==!1&&!!Z?.getTransport()}function c5(Z){let J=l(),{user:Q}=m1(J,t()),{userAgent:$}=d.navigator||{},Y=GI({user:Q,...$&&{userAgent:$},...Z}),X=J.getSession();if(X?.status==="ok")n9(X,{status:"exited"});return u1(),J.setSession(Y),Y}function u1(){let Z=l(),Q=t().getSession()||Z.getSession();if(Q)BI(Q);IG0(),Z.setSession()}function IG0(){let Z=l(),J=f(),Q=Z.getSession();if(Q&&J)J.captureSession(Q)}function oI(Z,J,Q,$,Y){let X={sent_at:new Date().toISOString()};if(Q?.sdk)X.sdk={name:Q.sdk.name,version:Q.sdk.version};if(!!$&&!!Y)X.dsn=I6(Y);if(J)X.trace=J;let W=NG0(Z);return J6(X,[W])}function NG0(Z){return[{type:"check_in"},Z]}var TG0="7";function fG0(Z){let J=Z.protocol?`${Z.protocol}:`:"",Q=Z.port?`:${Z.port}`:"";return`${J}//${Z.host}${Q}${Z.path?`/${Z.path}`:""}/api/`}function EG0(Z){return`${fG0(Z)}${Z.projectId}/envelope/`}function yG0(Z,J){let Q={sentry_version:TG0};if(Z.publicKey)Q.sentry_key=Z.publicKey;if(J)Q.sentry_client=`${J.name}/${J.version}`;return new URLSearchParams(Q).toString()}function nI(Z,J,Q){return J?J:`${EG0(Z)}?${yG0(Z,Q)}`}var uW=[];function hG0(Z){let J={};return Z.forEach((Q)=>{let{name:$}=Q,Y=J[$];if(Y&&!Y.isDefaultInstance&&Q.isDefaultInstance)return;J[$]=Q}),Object.values(J)}function lW(Z){let J=Z.defaultIntegrations||[],Q=Z.integrations;J.forEach((Y)=>{Y.isDefaultInstance=!0});let $;if(Array.isArray(Q))$=[...J,...Q];else if(typeof Q==="function"){let Y=Q(J);$=Array.isArray(Y)?Y:[Y]}else $=J;return hG0($)}function aI(Z,J){let Q={};return J.forEach(($)=>{if($)iW(Z,$,Q)}),Q}function pW(Z,J){for(let Q of J)if(Q?.afterAllSetup)Q.afterAllSetup(Z)}function iW(Z,J,Q){if(Q[J.name]){k&&q.log(`Integration skipped because it was already installed: ${J.name}`);return}if(Q[J.name]=J,!uW.includes(J.name)&&typeof J.setupOnce==="function")J.setupOnce(),uW.push(J.name);if(J.setup&&typeof J.setup==="function")J.setup(Z);if(typeof J.preprocessEvent==="function"){let $=J.preprocessEvent.bind(J);Z.on("preprocessEvent",(Y,X)=>$(Y,X,Z))}if(typeof J.processEvent==="function"){let $=J.processEvent.bind(J),Y=Object.assign((X,W)=>$(X,W,Z),{id:J.name});Z.addEventProcessor(Y)}k&&q.log(`Integration installed: ${J.name}`)}function P(Z){return Z}function SG0(Z){return typeof Z==="object"&&Z!=null&&!Array.isArray(Z)&&Object.keys(Z).includes("value")}function _G0(Z,J){let{value:Q,unit:$}=SG0(Z)?Z:{value:Z,unit:void 0},Y=vG0(Q),X=$&&typeof $==="string"?{unit:$}:{};if(Y)return{...Y,...X};if(!J||J==="skip-undefined"&&Q===void 0)return;let W="";try{W=JSON.stringify(Q)??""}catch{}return{value:W,type:"string",...X}}function oW(Z,J=!1){let Q={};for(let[$,Y]of Object.entries(Z??{})){let X=_G0(Y,J);if(X)Q[$]=X}return Q}function vG0(Z){let J=typeof Z==="string"?"string":typeof Z==="boolean"?"boolean":typeof Z==="number"&&!Number.isNaN(Z)?Number.isInteger(Z)?"integer":"double":null;if(J)return{value:Z,type:J}}var nW=0,aW;function sI(Z){let J=Math.floor(Z*1000);if(aW!==void 0&&J!==aW)nW=0;let Q=nW;return nW++,aW=J,{key:"sentry.timestamp.sequence",value:{value:Q,type:"integer"}}}function MQ(Z,J){if(!J)return[void 0,void 0];return n0(J,()=>{let Q=N6(),$=Q?fZ(Q):I7(J);return[Q?P0(Q):f9(Z,J),$]})}function bG0(Z){return[{type:"log",item_count:Z.length,content_type:"application/vnd.sentry.items.log+json"},{items:Z}]}function rI(Z,J,Q,$){let Y={};if(J?.sdk)Y.sdk={name:J.sdk.name,version:J.sdk.version};if(!!Q&&!!$)Y.dsn=I6($);return J6(Y,[bG0(Z)])}function l1(Z,J){let Q=J??xG0(Z)??[];if(Q.length===0)return;let $=Z.getOptions(),Y=rI(Q,$._metadata,$.tunnel,Z.getDsn());tI().set(Z,[]),Z.emit("flushLogs"),Z.sendEnvelope(Y)}function xG0(Z){return tI().get(Z)}function tI(){return H9("clientToLogBufferMap",()=>new WeakMap)}function gG0(Z){return[{type:"trace_metric",item_count:Z.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:Z}]}function eI(Z,J,Q,$){let Y={};if(J?.sdk)Y.sdk={name:J.sdk.name,version:J.sdk.version};if(!!Q&&!!$)Y.dsn=I6($);return J6(Y,[gG0(Z)])}var dG0=1000;function t9(Z,J,Q,$=!0){if(Q&&($||!(J in Z)))Z[J]=Q}function cG0(Z,J){let Q=rW(),$=JN(Z);if($===void 0)Q.set(Z,[J]);else if($.length>=dG0)sW(Z,$),Q.set(Z,[J]);else Q.set(Z,[...$,J])}function mG0(Z,J,Q){let{release:$,environment:Y}=J.getOptions(),X={...Z.attributes};t9(X,"user.id",Q.id,!1),t9(X,"user.email",Q.email,!1),t9(X,"user.name",Q.username,!1),t9(X,"sentry.release",$),t9(X,"sentry.environment",Y);let{name:W,version:K}=J.getSdkMetadata()?.sdk??{};t9(X,"sentry.sdk.name",W),t9(X,"sentry.sdk.version",K);let z=J.getIntegrationByName("Replay"),G=z?.getReplayId(!0);if(t9(X,"sentry.replay_id",G),G&&z?.getRecordingMode()==="buffer")t9(X,"sentry._internal.replay_is_buffering",!0);return{...Z,attributes:X}}function uG0(Z,J,Q,$){let[,Y]=MQ(J,Q),X=a9(Q),W=X?X.spanContext().traceId:Y?.trace_id,K=X?X.spanContext().spanId:void 0,z=T9(),G=sI(z);return{timestamp:z,trace_id:W??"",span_id:K,name:Z.name,type:Z.type,unit:Z.unit,value:Z.value,attributes:{...oW($),...oW(Z.attributes,"skip-undefined"),[G.key]:G.value}}}function ZN(Z,J){let Q=J?.scope??t(),$=J?.captureSerializedMetric??cG0,Y=Q?.getClient()??f();if(!Y){k&&q.warn("No client available to capture metric.");return}let{_experiments:X,enableMetrics:W,beforeSendMetric:K}=Y.getOptions();if(!(W??X?.enableMetrics??!0)){k&&q.warn("metrics option not enabled, metric will not be captured.");return}let{user:G,attributes:H}=m1(l(),Q),B=mG0(Z,Y,G);Y.emit("processMetric",B);let V=K||X?.beforeSendMetric,F=V?V(B):B;if(!F){k&&q.log("`beforeSendMetric` returned `null`, will not send metric.");return}let D=uG0(F,Y,Q,H);k&&q.log("[Metric]",D),$(Y,D),Y.emit("afterCaptureMetric",F)}function sW(Z,J){let Q=J??JN(Z)??[];if(Q.length===0)return;let $=Z.getOptions(),Y=eI(Q,$._metadata,$.tunnel,Z.getDsn());rW().set(Z,[]),Z.emit("flushMetrics"),Z.sendEnvelope(Y)}function JN(Z){return rW().get(Z)}function rW(){return H9("clientToMetricBufferMap",()=>new WeakMap)}function RQ(Z){if(typeof Z==="object"&&typeof Z.unref==="function")Z.unref();return Z}var m5=Symbol.for("SentryBufferFullError");function p1(Z=100){let J=new Set;function Q(){return J.size$(K),()=>$(K)),K}function X(W){if(!J.size)return r9(!0);let K=Promise.allSettled(Array.from(J)).then(()=>!0);if(!W)return K;let z=[K,new Promise((G)=>RQ(setTimeout(()=>G(!1),W)))];return Promise.race(z)}return{get $(){return Array.from(J)},add:Y,drain:X}}var lG0=60000;function pG0(Z,J=l6()){let Q=parseInt(`${Z}`,10);if(!isNaN(Q))return Q*1000;let $=Date.parse(`${Z}`);if(!isNaN($))return $-J;return lG0}function iG0(Z,J){return Z[J]||Z.all||0}function QN(Z,J,Q=l6()){return iG0(Z,J)>Q}function $N(Z,{statusCode:J,headers:Q},$=l6()){let Y={...Z},X=Q?.["x-sentry-rate-limits"],W=Q?.["retry-after"];if(X)for(let K of X.trim().split(",")){let[z,G,,,H]=K.split(":",5),B=parseInt(z,10),V=(!isNaN(B)?B:60)*1000;if(!G)Y.all=$+V;else for(let F of G.split(";"))if(F==="metric_bucket"){if(!H||H.split(";").includes("custom"))Y[F]=$+V}else Y[F]=$+V}else if(W)Y.all=$+pG0(W,$);else if(J===429)Y.all=$+60000;return Y}var u5=64;function i1(Z,J,Q=p1(Z.bufferSize||u5)){let $={},Y=(W)=>Q.drain(W);function X(W){let K=[];if(T5(W,(B,V)=>{let F=CQ(V);if(QN($,F))Z.recordDroppedEvent("ratelimit_backoff",F);else K.push(B)}),K.length===0)return Promise.resolve({});let z=J6(W[0],K),G=(B)=>{if(SW(z,["client_report"])){k&&q.warn(`Dropping client report. Will not send outcomes (reason: ${B}).`);return}T5(z,(V,F)=>{Z.recordDroppedEvent(B,CQ(F))})},H=()=>J({body:f5(z)}).then((B)=>{if(B.statusCode===413)return k&&q.error("Sentry responded with status code 413. Envelope was discarded due to exceeding size limits."),G("send_error"),B;if(k&&B.statusCode!==void 0&&(B.statusCode<200||B.statusCode>=300))q.warn(`Sentry responded with status code ${B.statusCode} to sent event.`);return $=$N($,B),B},(B)=>{throw G("network_error"),k&&q.error("Encountered error running transport request:",B),B});return Q.add(H).then((B)=>B,(B)=>{if(B===m5)return k&&q.error("Skipped sending event because buffer is full."),G("queue_overflow"),Promise.resolve({});else throw B})}return{send:X,flush:Y}}function YN(Z,J,Q){let $=[{type:"client_report"},{timestamp:Q||o9(),discarded_events:Z}];return J6(J?{dsn:J}:{},[$])}function AQ(Z){let J=[];if(Z.message)J.push(Z.message);try{let Q=Z.exception.values[Z.exception.values.length-1];if(Q?.value){if(J.push(Q.value),Q.type)J.push(`${Q.type}: ${Q.value}`)}}catch{}return J}function XN(Z){let{trace_id:J,parent_span_id:Q,span_id:$,status:Y,origin:X,data:W,op:K}=Z.contexts?.trace??{};return{data:W??{},description:Z.transaction,op:K,parent_span_id:Q,span_id:$??"",start_timestamp:Z.start_timestamp??0,status:Y,timestamp:Z.timestamp,trace_id:J??"",origin:X,profile_id:W?.[v1],exclusive_time:W?.[b1],measurements:Z.measurements,is_segment:!0}}function WN(Z){return{type:"transaction",timestamp:Z.timestamp,start_timestamp:Z.start_timestamp,transaction:Z.description,contexts:{trace:{trace_id:Z.trace_id,span_id:Z.span_id,parent_span_id:Z.parent_span_id,op:Z.op,status:Z.status,origin:Z.origin,data:{...Z.data,...Z.profile_id&&{[v1]:Z.profile_id},...Z.exclusive_time&&{[b1]:Z.exclusive_time}}}},measurements:Z.measurements}}var KN="Not capturing exception because it's already been captured.",zN="Discarded session because of missing or non-string release",wN=Symbol.for("SentryInternalError"),DN=Symbol.for("SentryDoNotSendEventError"),oG0=5000;function IQ(Z){return{message:Z,[wN]:!0}}function tW(Z){return{message:Z,[DN]:!0}}function GN(Z){return!!Z&&typeof Z==="object"&&wN in Z}function BN(Z){return!!Z&&typeof Z==="object"&&DN in Z}function HN(Z,J,Q,$,Y){let X=0,W,K=!1;Z.on(Q,()=>{X=0,clearTimeout(W),K=!1}),Z.on(J,(z)=>{if(X+=$(z),X>=800000)Y(Z);else if(!K)K=!0,W=RQ(setTimeout(()=>{Y(Z)},oG0))}),Z.on("flush",()=>{Y(Z)})}class ZK{constructor(Z){if(this._options=Z,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=p1(Z.transportOptions?.bufferSize??u5),Z.dsn)this._dsn=LI(Z.dsn);else k&&q.warn("No DSN provided, client will not send events.");if(this._dsn){let Q=nI(this._dsn,Z.tunnel,Z._metadata?Z._metadata.sdk:void 0);this._transport=Z.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...Z.transportOptions,url:Q})}if(this._options.enableLogs=this._options.enableLogs??this._options._experiments?.enableLogs,this._options.enableLogs)HN(this,"afterCaptureLog","flushLogs",rG0,l1);if(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)HN(this,"afterCaptureMetric","flushMetrics",sG0,sW)}captureException(Z,J,Q){let $=I0();if(wQ(Z))return k&&q.log(KN),$;let Y={event_id:$,...J};return this._process(()=>this.eventFromException(Z,Y).then((X)=>this._captureEvent(X,Y,Q)).then((X)=>X),"error"),Y.event_id}captureMessage(Z,J,Q,$){let Y={event_id:I0(),...Q},X=N1(Z)?Z:String(Z),W=w5(Z),K=W?this.eventFromMessage(X,J,Y):this.eventFromException(Z,Y);return this._process(()=>K.then((z)=>this._captureEvent(z,Y,$)),W?"unknown":"error"),Y.event_id}captureEvent(Z,J,Q){let $=I0();if(J?.originalException&&wQ(J.originalException))return k&&q.log(KN),$;let Y={event_id:$,...J},X=Z.sdkProcessingMetadata||{},W=X.capturedSpanScope,K=X.capturedSpanIsolationScope,z=VN(Z.type);return this._process(()=>this._captureEvent(Z,Y,W||Q,K),z),Y.event_id}captureSession(Z){this.sendSession(Z),n9(Z,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}async flush(Z){let J=this._transport;if(!J)return!0;this.emit("flush");let Q=await this._isClientDoneProcessing(Z),$=await J.flush(Z);return Q&&$}async close(Z){l1(this);let J=await this.flush(Z);return this.getOptions().enabled=!1,this.emit("close"),J}getEventProcessors(){return this._eventProcessors}addEventProcessor(Z){this._eventProcessors.push(Z)}init(){if(this._isEnabled()||this._options.integrations.some(({name:Z})=>Z.startsWith("Spotlight")))this._setupIntegrations()}getIntegrationByName(Z){return this._integrations[Z]}addIntegration(Z){let J=this._integrations[Z.name];if(iW(this,Z,this._integrations),!J)pW(this,[Z])}sendEvent(Z,J={}){this.emit("beforeSendEvent",Z,J);let Q=fI(Z,this._dsn,this._options._metadata,this._options.tunnel);for(let $ of J.attachments||[])Q=hW(Q,vW($));this.sendEnvelope(Q).then(($)=>this.emit("afterSendEvent",Z,$))}sendSession(Z){let{release:J,environment:Q=d1}=this._options;if("aggregates"in Z){let Y=Z.attrs||{};if(!Y.release&&!J){k&&q.warn(zN);return}Y.release=Y.release||J,Y.environment=Y.environment||Q,Z.attrs=Y}else{if(!Z.release&&!J){k&&q.warn(zN);return}Z.release=Z.release||J,Z.environment=Z.environment||Q}this.emit("beforeSendSession",Z);let $=TI(Z,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope($)}recordDroppedEvent(Z,J,Q=1){if(this._options.sendClientReports){let $=`${Z}:${J}`;k&&q.log(`Recording outcome: "${$}"${Q>1?` (${Q} times)`:""}`),this._outcomes[$]=(this._outcomes[$]||0)+Q}}on(Z,J){let Q=this._hooks[Z]=this._hooks[Z]||new Set,$=(...Y)=>J(...Y);return Q.add($),()=>{Q.delete($)}}emit(Z,...J){let Q=this._hooks[Z];if(Q)Q.forEach(($)=>$(...J))}async sendEnvelope(Z){if(this.emit("beforeEnvelope",Z),this._isEnabled()&&this._transport)try{return await this._transport.send(Z)}catch(J){return k&&q.error("Error while sending envelope:",J),{}}return k&&q.error("Transport disabled"),{}}dispose(){}_setupIntegrations(){let{integrations:Z}=this._options;this._integrations=aI(this,Z),pW(this,Z)}_updateSessionFromEvent(Z,J){let Q=J.level==="fatal",$=!1,Y=J.exception?.values;if(Y){$=!0,Q=!1;for(let K of Y)if(K.mechanism?.handled===!1){Q=!0;break}}let X=Z.status==="ok";if(X&&Z.errors===0||X&&Q)n9(Z,{...Q&&{status:"crashed"},errors:Z.errors||Number($||Q)}),this.captureSession(Z)}async _isClientDoneProcessing(Z){let J=0;while(!Z||JsetTimeout(Q,1)),!this._numProcessing)return!0;J++}return!1}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(Z,J,Q,$){let Y=this.getOptions(),X=Object.keys(this._integrations);if(!J.integrations&&X?.length)J.integrations=X;if(this.emit("preprocessEvent",Z,J),!Z.type)$.setLastEventId(Z.event_id||J.event_id);return pI(Y,Z,J,Q,this,$).then((W)=>{if(W===null)return W;this.emit("postprocessEvent",W,J),W.contexts={trace:{...W.contexts?.trace,...I7(Q)},...W.contexts};let K=f9(this,Q);return W.sdkProcessingMetadata={dynamicSamplingContext:K,...W.sdkProcessingMetadata},W})}_captureEvent(Z,J={},Q=t(),$=l()){if(k&&eW(Z))q.log(`Captured error event \`${AQ(Z)[0]||""}\``);return this._processEvent(Z,J,Q,$).then((Y)=>{return Y.event_id},(Y)=>{if(k)if(BN(Y))q.log(Y.message);else if(GN(Y))q.warn(Y.message);else q.warn(Y);return})}_processEvent(Z,J,Q,$){let Y=this.getOptions(),{sampleRate:X}=Y,W=UN(Z),K=eW(Z),G=`before send for type \`${Z.type||"error"}\``,H=typeof X>"u"?void 0:A6(X);if(K&&typeof H==="number"&&x0()>H)return this.recordDroppedEvent("sample_rate","error"),c1(tW(`Discarding event because it's not included in the random sample (sampling rate = ${X})`));let B=VN(Z.type);return this._prepareEvent(Z,J,Q,$).then((V)=>{if(V===null)throw this.recordDroppedEvent("event_processor",B),tW("An event processor returned `null`, will not send event.");if(J.data?.__sentry__===!0)return V;let D=aG0(this,Y,V,J);return nG0(D,G)}).then((V)=>{if(V===null){if(this.recordDroppedEvent("before_send",B),W){let j=1+(Z.spans||[]).length;this.recordDroppedEvent("before_send","span",j)}throw tW(`${G} returned \`null\`, will not send event.`)}let F=Q.getSession()||$.getSession();if(K&&F)this._updateSessionFromEvent(F,V);if(W){let U=V.sdkProcessingMetadata?.spanCountBeforeProcessing||0,j=V.spans?V.spans.length:0,L=U-j;if(L>0)this.recordDroppedEvent("before_send","span",L)}let D=V.transaction_info;if(W&&D&&V.transaction!==Z.transaction)V.transaction_info={...D,source:"custom"};return this.sendEvent(V,J),V}).then(null,(V)=>{if(BN(V)||GN(V))throw V;throw this.captureException(V,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:V}),IQ(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. -Reason: ${V}`)})}_process(Z,J){this._numProcessing++,this._promiseBuffer.add(Z).then((Q)=>{return this._numProcessing--,Q},(Q)=>{if(this._numProcessing--,Q===m5)this.recordDroppedEvent("queue_overflow",J);return Q})}_clearOutcomes(){let Z=this._outcomes;return this._outcomes={},Object.entries(Z).map(([J,Q])=>{let[$,Y]=J.split(":");return{reason:$,category:Y,quantity:Q}})}_flushOutcomes(){k&&q.log("Flushing outcomes...");let Z=this._clearOutcomes();if(Z.length===0){k&&q.log("No outcomes to send");return}if(!this._dsn){k&&q.log("No dsn provided, will not send outcomes");return}k&&q.log("Sending outcomes:",Z);let J=YN(Z,this._options.tunnel&&I6(this._dsn));this.sendEnvelope(J)}}function VN(Z){return Z==="replay_event"?"replay":Z||"error"}function nG0(Z,J){let Q=`${J} must return \`null\` or a valid event.`;if(b0(Z))return Z.then(($)=>{if(!p9($)&&$!==null)throw IQ(Q);return $},($)=>{throw IQ(`${J} rejected with ${$}`)});else if(!p9(Z)&&Z!==null)throw IQ(Q);return Z}function aG0(Z,J,Q,$){let{beforeSend:Y,beforeSendTransaction:X,beforeSendSpan:W,ignoreSpans:K}=J,z=Q;if(eW(z)&&Y)return Y(z,$);if(UN(z)){if(W||K){let G=XN(z);if(K?.length&&E5(G,K))return null;if(W){let H=W(G);if(!H)R5();else z=AZ(Q,WN(H))}if(z.spans){let H=[],B=z.spans;for(let F of B){if(K?.length&&E5(F,K)){NI(B,F);continue}if(W){let D=W(F);if(!D)R5(),H.push(F);else H.push(D)}else H.push(F)}let V=z.spans.length-H.length;if(V)Z.recordDroppedEvent("before_send","span",V);z.spans=H}}if(X){if(z.spans){let G=z.spans.length;z.sdkProcessingMetadata={...Q.sdkProcessingMetadata,spanCountBeforeProcessing:G}}return X(z,$)}}return z}function eW(Z){return Z.type===void 0}function UN(Z){return Z.type==="transaction"}function sG0(Z){let J=0;if(Z.name)J+=Z.name.length*2;return J+=8,J+jN(Z.attributes)}function rG0(Z){let J=0;if(Z.message)J+=Z.message.length*2;return J+jN(Z.attributes)}function jN(Z){if(!Z)return 0;let J=0;return Object.values(Z).forEach((Q)=>{if(Array.isArray(Q))J+=Q.length*FN(Q[0]);else if(w5(Q))J+=FN(Q);else J+=100}),J}function FN(Z){if(typeof Z==="string")return Z.length*2;else if(typeof Z==="number")return 8;else if(typeof Z==="boolean")return 4;return 0}var NQ={},qN={};function o1(Z,J){NQ[Z]=NQ[Z]||[],NQ[Z].push(J)}function n1(Z,J){if(!qN[Z]){qN[Z]=!0;try{J()}catch(Q){k&&q.error(`Error while instrumenting ${Z}`,Q)}}}function a1(Z,J){let Q=Z&&NQ[Z];if(!Q)return;for(let $ of Q)try{$(J)}catch(Y){k&&q.error(`Error while triggering instrumentation handler. -Type: ${Z} -Name: ${q5($)} -Error:`,Y)}}var JK=null;function LN(Z){o1("error",Z),n1("error",tG0)}function tG0(){JK=d.onerror,d.onerror=function(Z,J,Q,$,Y){if(a1("error",{column:$,error:Y,line:Q,msg:Z,url:J}),JK)return JK.apply(this,arguments);return!1},d.onerror.__SENTRY_INSTRUMENTED__=!0}var QK=null;function ON(Z){o1("unhandledrejection",Z),n1("unhandledrejection",eG0)}function eG0(){QK=d.onunhandledrejection,d.onunhandledrejection=function(Z){if(a1("unhandledrejection",Z),QK)return QK.apply(this,arguments);return!0},d.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}var CN=!1;function PN(){if(CN)return;function Z(){let J=N6(),Q=J&&H0(J);if(Q)k&&q.log("[Tracing] Root span: internal_error -> Global error occurred"),Q.setStatus({code:i,message:"internal_error"})}Z.tag="sentry_tracingErrorCallback",CN=!0,LN(Z),ON(Z)}function kN(Z){let J=Z._metadata?.sdk,Q=J?.name&&J?.version?`${J?.name}/${J?.version}`:void 0;Z.transportOptions={...Z.transportOptions,headers:{...Q&&{"user-agent":Q},...Z.transportOptions?.headers}}}function MN(Z,J){return Z(J.stack||"",1)}function ZB0(Z){return A9(Z)&&"__sentry_fetch_url_host__"in Z&&typeof Z.__sentry_fetch_url_host__==="string"}function JB0(Z){if(ZB0(Z))return`${Z.message} (${Z.__sentry_fetch_url_host__})`;return Z.message}function $K(Z,J){let Q={type:J.name||J.constructor.name,value:JB0(J)},$=MN(Z,J);if($.length)Q.stacktrace={frames:$};return Q}function QB0(Z){for(let J in Z)if(Object.prototype.hasOwnProperty.call(Z,J)){let Q=Z[J];if(Q instanceof Error)return Q}return}function $B0(Z){if("name"in Z&&typeof Z.name==="string"){let $=`'${Z.name}' captured as exception`;if("message"in Z&&typeof Z.message==="string")$+=` with message '${Z.message}'`;return $}else if("message"in Z&&typeof Z.message==="string")return Z.message;let J=WW(Z);if(rX(Z))return`Event \`ErrorEvent\` captured as exception with message \`${Z.message}\``;let Q=YB0(Z);return`${Q&&Q!=="Object"?`'${Q}'`:"Object"} captured as exception with keys: ${J}`}function YB0(Z){try{let J=Object.getPrototypeOf(Z);return J?J.constructor.name:void 0}catch{}}function XB0(Z,J,Q,$){if(A9(Q))return[Q,void 0];if(J.synthetic=!0,p9(Q)){let X=Z?.getOptions().normalizeDepth,W={["__serialized__"]:EW(Q,X)},K=QB0(Q);if(K)return[K,W];let z=$B0(Q),G=$?.syntheticException||Error(z);return G.message=z,[G,W]}let Y=$?.syntheticException||Error(Q);return Y.message=`${Q}`,[Y,void 0]}function RN(Z,J,Q,$){let X=$?.data&&$.data.mechanism||{handled:!0,type:"generic"},[W,K]=XB0(Z,X,Q,$),z={exception:{values:[$K(J,W)]}};if(K)z.extra=K;return DW(z,void 0,void 0),y1(z,X),{...z,event_id:$?.event_id}}function AN(Z,J,Q="info",$,Y){let X={event_id:$?.event_id,level:Q};if(Y&&$?.syntheticException){let W=MN(Z,$.syntheticException);if(W.length)X.exception={values:[{value:J,stacktrace:{frames:W}}]},y1(X,{synthetic:!0})}if(N1(J)){let{__sentry_template_string__:W,__sentry_template_values__:K}=J;return X.logentry={message:W,params:K},X}return X.message=J,X}class TQ extends ZK{constructor(Z){PN(),kN(Z);super(Z);this._setUpMetricsProcessing()}eventFromException(Z,J){let Q=RN(this,this._options.stackParser,Z,J);return Q.level="error",r9(Q)}eventFromMessage(Z,J="info",Q){return r9(AN(this._options.stackParser,Z,J,Q,this._options.attachStacktrace))}captureException(Z,J,Q){return IN(J),super.captureException(Z,J,Q)}captureEvent(Z,J,Q){if(!Z.type&&Z.exception?.values&&Z.exception.values.length>0)IN(J);return super.captureEvent(Z,J,Q)}captureCheckIn(Z,J,Q){let $="checkInId"in Z&&Z.checkInId?Z.checkInId:I0();if(!this._isEnabled())return k&&q.warn("SDK not enabled, will not capture check-in."),$;let Y=this.getOptions(),{release:X,environment:W,tunnel:K}=Y,z={check_in_id:$,monitor_slug:Z.monitorSlug,status:Z.status,release:X,environment:W};if("duration"in Z)z.duration=Z.duration;if(J)z.monitor_config={schedule:J.schedule,checkin_margin:J.checkinMargin,max_runtime:J.maxRuntime,timezone:J.timezone,failure_issue_threshold:J.failureIssueThreshold,recovery_threshold:J.recoveryThreshold};let[G,H]=MQ(this,Q);if(H)z.contexts={trace:H};let B=oI(z,G,this.getSdkMetadata(),K,this.getDsn());return k&&q.log("Sending checkin:",Z.monitorSlug,Z.status),this.sendEnvelope(B),$}dispose(){k&&q.log("Disposing client...");for(let Z of Object.keys(this._hooks))this._hooks[Z]?.clear();this._hooks={},this._eventProcessors.length=0,this._integrations={},this._outcomes={},this._transport=void 0,this._promiseBuffer=p1(u5)}_prepareEvent(Z,J,Q,$){if(this._options.platform)Z.platform=Z.platform||this._options.platform;if(this._options.runtime)Z.contexts={...Z.contexts,runtime:Z.contexts?.runtime||this._options.runtime};if(this._options.serverName)Z.server_name=Z.server_name||this._options.serverName;return super._prepareEvent(Z,J,Q,$)}_setUpMetricsProcessing(){this.on("processMetric",(Z)=>{if(this._options.serverName)Z.attributes={"server.address":this._options.serverName,...Z.attributes}})}}function IN(Z){let J=l().getScopeData().sdkProcessingMetadata.requestSession;if(J){let Q=Z?.mechanism?.handled??!0;if(Q&&J.status!=="crashed")J.status="errored";else if(!Q)J.status="crashed"}}var YK=new Set;function XK(Z){Z.forEach((J)=>{YK.add(J),k&&q.log(`AI provider "${J}" wrapping will be skipped`)})}function x7(Z){return YK.has(Z)}function WK(){YK.clear(),k&&q.log("Cleared AI provider skip registrations")}var WB0=new Set(["false","f","n","no","off","0"]),KB0=new Set(["true","t","y","yes","on","1"]);function g7(Z,J){let Q=String(Z).toLowerCase();if(WB0.has(Q))return!1;if(KB0.has(Q))return!0;return J?.strict?null:Boolean(Z)}var zB0="thismessage:/";function KK(Z){return"isRelative"in Z}function l5(Z,J){let Q=Z.indexOf("://")<=0&&Z.indexOf("//")!==0,$=J??(Q?zB0:void 0);try{if("canParse"in URL&&!URL.canParse(Z,$))return;let Y=new URL(Z,$);if(Q)return{isRelative:Q,pathname:Y.pathname,search:Y.search,hash:Y.hash};return Y}catch{}return}function NN(Z){if(KK(Z))return Z.pathname;let J=new URL(Z);if(J.search="",J.hash="",["80","443"].includes(J.port))J.port="";if(J.password)J.password="%filtered%";if(J.username)J.username="%filtered%";return J.toString()}function GB0(Z,J,Q,$){let Y=Q?.method?.toUpperCase()??"GET",X=$?$:Z?J==="client"?NN(Z):Z.pathname:"/";return`${Y} ${X}`}function zK(Z,J,Q,$,Y){let X={[_]:Q,[B0]:"url"};if(Y)X[J==="server"?"http.route":"url.template"]=Y,X[B0]="route";if($?.method)X[RW]=$.method.toUpperCase();if(Z){if(Z.search)X["url.query"]=Z.search;if(Z.hash)X["url.fragment"]=Z.hash;if(Z.pathname){if(X["url.path"]=Z.pathname,Z.pathname==="/")X[B0]="route"}if(!KK(Z)){if(X[IZ]=Z.href,Z.port)X["url.port"]=Z.port;if(Z.protocol)X["url.scheme"]=Z.protocol;if(Z.hostname)X[J==="server"?"server.address":"url.domain"]=Z.hostname}}return[GB0(Z,J,$,Y),X]}function yZ(Z){if(!Z)return{};let J=Z.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!J)return{};let Q=J[6]||"",$=J[8]||"";return{host:J[4],path:J[5],protocol:J[2],search:Q,hash:$,relative:J[5]+Q+$}}function e9(Z){return Z.split(/[?#]/,1)[0]}function hZ(Z){let{protocol:J,host:Q,path:$}=Z,Y=Q?.replace(/^.*@/,"[filtered]:[filtered]@").replace(/(:80)$/,"").replace(/(:443)$/,"")||"";return`${J?`${J}://`:""}${Y}${$}`}function s1(Z,J=!0){if(Z.startsWith("data:")){let Q=Z.match(/^data:([^;,]+)/),$=Q?Q[1]:"text/plain",Y=Z.includes(";base64,"),X=Z.indexOf(","),W="";if(J&&X!==-1){let K=Z.slice(X+1);W=K.length>10?`${K.slice(0,10)}... [truncated]`:K}return`data:${$}${Y?",base64":""}${W?`,${W}`:""}`}return Z}function d7(Z,J,Q=[J],$="npm"){let Y=(Z._metadata=Z._metadata||{}).sdk=Z._metadata.sdk||{};if(!Y.name)Y.name=`sentry.javascript.${J}`,Y.packages=Q.map((X)=>({name:`${$}:@sentry/${X}`,version:a})),Y.version=a}function c7(Z={}){let J=Z.client||f();if(!d5()||!J)return{};let Q=Z6(),$=F9(Q);if($.getTraceData)return $.getTraceData(Z);let Y=Z.scope||t(),X=Z.span||N6(),W=X?k5(X):BB0(Y),K=X?P0(X):f9(J,Y),z=N7(K);if(!O5.test(W))return q.warn("Invalid sentry-trace data. Cannot generate trace data"),{};let H={"sentry-trace":W,baggage:z};if(Z.propagateTraceparent)H.traceparent=X?MI(X):HB0(Y);return H}function BB0(Z){let{traceId:J,sampled:Q,propagationSpanId:$}=Z.getPropagationContext();return NZ(J,$,Q)}function HB0(Z){let{traceId:J,sampled:Q,propagationSpanId:$}=Z.getPropagationContext();return TZ(J,$,Q)}var TN="[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:";function m7(Z,J,Q){if(typeof Z!=="string"||!J)return!0;let $=Q?.get(Z);if($!==void 0)return k&&!$&&q.log(TN,Z),$;let Y=MZ(Z,J);return Q?.set(Z,Y),k&&!Y&&q.log(TN,Z),Y}function GK(Z,J,Q){let $,Y,X,W=Q?.maxWait?Math.max(Q.maxWait,J):0,K=Q?.setTimeoutImpl||setTimeout;function z(){return G(),$=Z(),$}function G(){Y!==void 0&&clearTimeout(Y),X!==void 0&&clearTimeout(X),Y=X=void 0}function H(){if(Y!==void 0||X!==void 0)return z();return $}function B(){if(Y)clearTimeout(Y);if(Y=K(z,J),W&&X===void 0)X=K(z,W);return $}return B.cancel=G,B.flush=H,B}function hN(Z){let J=Object.create(null);try{Object.entries(Z).forEach(([Q,$])=>{if(typeof $==="string")J[Q]=$})}catch{}return J}function p5(Z){let J=Z.headers||{},$=(typeof J["x-forwarded-host"]==="string"?J["x-forwarded-host"]:void 0)||(typeof J.host==="string"?J.host:void 0),X=(typeof J["x-forwarded-proto"]==="string"?J["x-forwarded-proto"]:void 0)||Z.protocol||(Z.socket?.encrypted?"https":"http"),W=Z.url||"",K=VB0({url:W,host:$,protocol:X}),z=Z.body||void 0,G=Z.cookies;return{url:K,method:Z.method,query_string:SN(W),headers:hN(J),cookies:G,data:z}}function VB0({url:Z,protocol:J,host:Q}){if(Z?.startsWith("http"))return Z;if(Z&&Q)return`${J}://${Q}${Z}`;return}var fN=["auth","token","secret","session","password","passwd","pwd","key","jwt","bearer","sso","saml","csrf","xsrf","credentials","set-cookie","cookie"],FB0=["x-forwarded-","-user"];function fQ(Z,J=!1,Q="request"){let $={};try{Object.entries(Z).forEach(([Y,X])=>{if(X==null)return;let W=Y.toLowerCase();if((W==="cookie"||W==="set-cookie")&&typeof X==="string"&&X!==""){let z=W==="set-cookie",G=X.indexOf(";"),H=z&&G!==-1?X.substring(0,G):X,B=z?[H]:H.split("; ");for(let V of B){let F=V.indexOf("="),D=F!==-1?V.substring(0,F):V,U=F!==-1?V.substring(F+1):"",j=D.toLowerCase();yN($,W,j,U,J,Q)}}else yN($,W,"",X,J,Q)})}catch{}return $}function EN(Z){return Z.replace(/-/g,"_")}function yN(Z,J,Q,$,Y,X){let W=wB0(Q||J,$,Y);if(W==null)return;let K=`http.${X}.header.${EN(J)}${Q?`.${EN(Q)}`:""}`;Z[K]=W}function wB0(Z,J,Q){if(Q?fN.some((Y)=>Z.includes(Y)):[...FB0,...fN].some((Y)=>Z.includes(Y)))return"[Filtered]";else if(Array.isArray(J))return J.map((Y)=>Y!=null?String(Y):Y).join(";");else if(typeof J==="string")return J;return}function SN(Z){if(!Z)return;try{let J=new URL(Z,"http://s.io").search.slice(1);return J.length?J:void 0}catch{return}}var DB0=100;function T6(Z,J){let Q=f(),$=l();if(!Q)return;let{beforeBreadcrumb:Y=null,maxBreadcrumbs:X=DB0}=Q.getOptions();if(X<=0)return;let K={timestamp:o9(),...Z},z=Y?O0(()=>Y(K,J)):K;if(z===null)return;if(Q.emit)Q.emit("beforeAddBreadcrumb",z,J);$.addBreadcrumb(z,X)}var _N,UB0="FunctionToString",vN=new WeakMap,jB0=()=>{return{name:UB0,setupOnce(){_N=Function.prototype.toString;try{Function.prototype.toString=function(...Z){let J=XW(this),Q=vN.has(f())&&J!==void 0?J:this;return _N.apply(Q,Z)}}catch{}},setup(Z){vN.set(Z,!0)}}},i5=P(jB0);var qB0=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,/can't redefine non-configurable property "solana"/,/vv\(\)\.getRestrictions is not a function/,/Can't find variable: _AutofillCallbackHandler/,/Object Not Found Matching Id:\d+, MethodName:simulateEvent/,/^Java exception was raised during method invocation$/],LB0="EventFilters",yQ=P((Z={})=>{let J;return{name:LB0,setup(Q){let $=Q.getOptions();J=bN(Z,$)},processEvent(Q,$,Y){if(!J){let X=Y.getOptions();J=bN(Z,X)}return OB0(Q,J)?null:Q}}}),o5=P((Z={})=>{return{...yQ(Z),name:"InboundFilters"}});function bN(Z={},J={}){return{allowUrls:[...Z.allowUrls||[],...J.allowUrls||[]],denyUrls:[...Z.denyUrls||[],...J.denyUrls||[]],ignoreErrors:[...Z.ignoreErrors||[],...J.ignoreErrors||[],...Z.disableErrorDefaults?[]:qB0],ignoreTransactions:[...Z.ignoreTransactions||[],...J.ignoreTransactions||[]]}}function OB0(Z,J){if(!Z.type){if(CB0(Z,J.ignoreErrors))return k&&q.warn(`Event dropped due to being matched by \`ignoreErrors\` option. -Event: ${RZ(Z)}`),!0;if(AB0(Z))return k&&q.warn(`Event dropped due to not having an error message, error type or stacktrace. -Event: ${RZ(Z)}`),!0;if(kB0(Z,J.denyUrls))return k&&q.warn(`Event dropped due to being matched by \`denyUrls\` option. -Event: ${RZ(Z)}. -Url: ${EQ(Z)}`),!0;if(!MB0(Z,J.allowUrls))return k&&q.warn(`Event dropped due to not being matched by \`allowUrls\` option. -Event: ${RZ(Z)}. -Url: ${EQ(Z)}`),!0}else if(Z.type==="transaction"){if(PB0(Z,J.ignoreTransactions))return k&&q.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. -Event: ${RZ(Z)}`),!0}return!1}function CB0(Z,J){if(!J?.length)return!1;return AQ(Z).some((Q)=>MZ(Q,J))}function PB0(Z,J){if(!J?.length)return!1;let Q=Z.transaction;return Q?MZ(Q,J):!1}function kB0(Z,J){if(!J?.length)return!1;let Q=EQ(Z);return!Q?!1:MZ(Q,J)}function MB0(Z,J){if(!J?.length)return!0;let Q=EQ(Z);return!Q?!0:MZ(Q,J)}function RB0(Z=[]){for(let J=Z.length-1;J>=0;J--){let Q=Z[J];if(Q&&Q.filename!==""&&Q.filename!=="[native code]")return Q.filename||null}return null}function EQ(Z){try{let Q=[...Z.exception?.values??[]].reverse().find(($)=>$.mechanism?.parent_id===void 0&&$.stacktrace?.frames?.length)?.stacktrace?.frames;return Q?RB0(Q):null}catch{return k&&q.error(`Cannot extract url for event ${RZ(Z)}`),null}}function AB0(Z){if(!Z.exception?.values?.length)return!1;return!Z.message&&!Z.exception.values.some((J)=>J.stacktrace||J.type&&J.type!=="Error"||J.value)}function dN(Z,J,Q,$,Y,X){if(!Y.exception?.values||!X||!I9(X.originalException,Error))return;let W=Y.exception.values.length>0?Y.exception.values[Y.exception.values.length-1]:void 0;if(W)Y.exception.values=BK(Z,J,$,X.originalException,Q,Y.exception.values,W,0)}function BK(Z,J,Q,$,Y,X,W,K){if(X.length>=Q+1)return X;let z=[...X];if(I9($[Y],Error)){xN(W,K,$);let G=Z(J,$[Y]),H=z.length;gN(G,Y,H,K),z=BK(Z,J,Q,$[Y],Y,[G,...z],G,H)}if(cN($))$.errors.forEach((G,H)=>{if(I9(G,Error)){xN(W,K,$);let B=Z(J,G),V=z.length;gN(B,`errors[${H}]`,V,K),z=BK(Z,J,Q,G,Y,[B,...z],B,V)}});return z}function cN(Z){return Array.isArray(Z.errors)}function xN(Z,J,Q){Z.mechanism={handled:!0,type:"auto.core.linked_errors",...cN(Q)&&{is_exception_group:!0},...Z.mechanism,exception_id:J}}function gN(Z,J,Q,$){Z.mechanism={handled:!0,...Z.mechanism,type:"chained",source:J,exception_id:Q,parent_id:$}}var IB0="cause",NB0=5,TB0="LinkedErrors",fB0=(Z={})=>{let J=Z.limit||NB0,Q=Z.key||IB0;return{name:TB0,preprocessEvent($,Y,X){let W=X.getOptions();dN($K,W.stackParser,Q,J,$,Y)}}},n5=P(fB0);function mN(Z){let J={},Q=0;while(Q{let W=J[X.toLowerCase()],K=Array.isArray(W)?W.join(";"):W;if(X==="Forwarded")return EB0(K);return K?.split(",").map((z)=>z.trim())}).reduce((X,W)=>{if(!W)return X;return X.concat(W)},[]).find((X)=>X!==null&&yB0(X))||null}function EB0(Z){if(!Z)return null;for(let J of Z.split(";"))if(J.startsWith("for="))return J.slice(4);return null}function yB0(Z){return/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/.test(Z)}var hB0={cookies:!0,data:!0,headers:!0,query_string:!0,url:!0},SB0="RequestData",_B0=(Z={})=>{let J={...hB0,...Z.include};return{name:SB0,processEvent(Q,$,Y){let{sdkProcessingMetadata:X={}}=Q,{normalizedRequest:W,ipAddress:K}=X,z={...J,ip:J.ip??Y.getOptions().sendDefaultPii};if(W)vB0(Q,W,{ipAddress:K},z);return Q}}},a5=P(_B0);function vB0(Z,J,Q,$){if(Z.request={...Z.request,...bB0(J,$)},$.ip){let Y=J.headers&&uN(J.headers)||Q.ipAddress;if(Y)Z.user={...Z.user,ip_address:Y}}}function bB0(Z,J){let Q={},$={...Z.headers};if(J.headers){if(Q.headers=$,!J.cookies)delete $.cookie;if(!J.ip)HK.forEach((Y)=>{delete $[Y]})}if(Q.method=Z.method,J.url)Q.url=Z.url;if(J.cookies){let Y=Z.cookies||($?.cookie?mN($.cookie):void 0);Q.cookies=Y||{}}if(J.query_string)Q.query_string=Z.query_string;if(J.data)Q.data=Z.data;return Q}function lN(Z){o1("console",Z),n1("console",xB0)}function xB0(){if(!("console"in d))return;U5.forEach(function(Z){if(!(Z in d.console))return;YW(d.console,Z,function(J){return T1[Z]=J,function(...Q){a1("console",{args:Q,level:Z}),T1[Z]?.apply(d.console,Q)}})})}function pN(Z){return Z==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(Z)?Z:"log"}var gB0=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/;function dB0(Z){let J=Z.length>1024?`${Z.slice(-1024)}`:Z,Q=gB0.exec(J);return Q?Q.slice(1):[]}function VK(Z){let J=dB0(Z),Q=J[0]||"",$=J[1];if(!Q&&!$)return".";if($)$=$.slice(0,$.length-1);return Q+$}var cB0=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,hQ=Symbol("sentryPostgresConnectionContext"),FK=Symbol.for("sentry.instrumented.postgresjs"),mB0=Symbol.for("sentry.query.from.instrumented.sql");function DK(Z,J){if(!Z||typeof Z!=="function")return k&&q.warn("instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance"),Z;return wK(Z,{requireParentSpan:!0,...J})}function wK(Z,J,Q){if(Z[FK])return Z;let $=new Proxy(Z,{apply(Y,X,W){let K=Reflect.apply(Y,X,W);if(K&&typeof K==="object"&&"handle"in K)oN(K,$,J);return K},get(Y,X){let W=Y[X];if(typeof X!=="string"||typeof W!=="function")return W;if(X==="unsafe"||X==="file")return uB0(W,Y,$,J);if(X==="begin"||X==="reserve")return lB0(W,Y,$,J);return W}});if(Q)$[hQ]=Q;else aB0(Z,$);return Z[FK]=!0,$[FK]=!0,$}function uB0(Z,J,Q,$){return function(...Y){let X=Reflect.apply(Z,J,Y);if(X&&typeof X==="object"&&"handle"in X)oN(X,Q,$);return X}}function lB0(Z,J,Q,$){return function(...Y){let X=Q[hQ];if(typeof Y[Y.length-1]!=="function"){let H=Reflect.apply(Z,J,Y);if(H&&typeof H.then==="function")return H.then((B)=>{return wK(B,$,X)});return H}let K=Y.length===1?Y[0]:Y[1],z=function(H){let B=wK(H,$,X);return K(B)},G=Y.length===1?[z]:[Y[0],z];return Reflect.apply(Z,J,G)}}function oN(Z,J,Q){if(Z.handle?.__sentryWrapped)return;Z[mB0]=!0;let $=Z.handle,Y=async function(...X){if(!pB0(Q))return $.apply(this,X);let W=iB0(Z.strings),K=oB0(W);return N0({name:K||"postgresjs.query",op:"db"},(z)=>{z.setAttribute(_,"auto.db.postgresjs"),z.setAttributes({"db.system.name":"postgres","db.query.text":K});let G=J?J[hQ]:void 0;if(nB0(z,G),Q.requestHook)try{Q.requestHook(z,K,G)}catch(B){z.setAttribute("sentry.hook.error","requestHook failed"),k&&q.error("Error in requestHook for PostgresJs instrumentation:",B)}let H=this;H.resolve=new Proxy(H.resolve,{apply:(B,V,F)=>{try{iN(z,K,F?.[0]?.command),z.end()}catch(D){k&&q.error("Error ending span in resolve callback:",D)}return Reflect.apply(B,V,F)}}),H.reject=new Proxy(H.reject,{apply:(B,V,F)=>{try{z.setStatus({code:i,message:F?.[0]?.message||"unknown_error"}),z.setAttribute("db.response.status_code",F?.[0]?.code||"unknown"),z.setAttribute("error.type",F?.[0]?.name||"unknown"),iN(z,K),z.end()}catch(D){k&&q.error("Error ending span in reject callback:",D)}return Reflect.apply(B,V,F)}});try{return $.apply(this,X)}catch(B){throw z.setStatus({code:i,message:B instanceof Error?B.message:"unknown_error"}),z.end(),B}})};Y.__sentryWrapped=!0,Z.handle=Y}function pB0(Z){return N6()!==void 0||!Z.requireParentSpan}function iB0(Z){if(!Z?.length)return;if(Z.length===1)return Z[0]||void 0;return Z.reduce((J,Q,$)=>$===0?Q:`${J}$${$}${Q}`,"")}function oB0(Z){if(!Z)return"Unknown SQL Query";return Z.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{let J=new Set(Z.levels||U5);return{name:sB0,setup(Q){lN(({args:$,level:Y})=>{if(f()!==Q||!J.has(Y))return;rB0(Y,$)})}}});function rB0(Z,J){let Q={category:"console",data:{arguments:J,logger:"console"},level:pN(Z),message:nN(J)};if(Z==="assert")if(J[0]===!1){let $=J.slice(1);Q.message=$.length>0?`Assertion failed: ${nN($)}`:"Assertion failed",Q.data.arguments=$}else return;T6(Q,{input:J,level:Z})}function nN(Z){return"util"in d&&typeof d.util.format==="function"?d.util.format(...Z):VW(Z," ")}var tB0="ConversationId",eB0=()=>{return{name:tB0,setup(Z){Z.on("spanStart",(J)=>{let Q=t().getScopeData(),$=l().getScopeData(),Y=Q.conversationId||$.conversationId;if(Y)J.setAttribute(AW,Y)})}}},UK=P(eB0);var r1={};or(r1,{gauge:()=>JH0,distribution:()=>QH0,count:()=>ZH0});function jK(Z,J,Q,$){ZN({type:Z,name:J,value:Q,unit:$?.unit,attributes:$?.attributes},{scope:$?.scope})}function ZH0(Z,J=1,Q){jK("counter",Z,J,Q)}function JH0(Z,J,Q){jK("gauge",Z,J,Q)}function QH0(Z,J,Q){jK("distribution",Z,J,Q)}var aN="gen_ai.prompt",SZ="gen_ai.system",D0="gen_ai.request.model",t1="gen_ai.request.stream",_Z="gen_ai.request.temperature",e1="gen_ai.request.max_tokens",vZ="gen_ai.request.frequency_penalty",Z8="gen_ai.request.presence_penalty",bZ="gen_ai.request.top_p",SQ="gen_ai.request.top_k",sN="gen_ai.request.encoding_format",rN="gen_ai.request.dimensions",j6="gen_ai.response.finish_reasons",T0="gen_ai.response.model",o6="gen_ai.response.id",tN="gen_ai.response.stop_reason",W0="gen_ai.usage.input_tokens",k0="gen_ai.usage.output_tokens",Q6="gen_ai.usage.total_tokens",g0="gen_ai.operation.name",$6="sentry.sdk_meta.gen_ai.input.messages.original_length",d0="gen_ai.input.messages",eN="gen_ai.output.messages",f6="gen_ai.system_instructions",R0="gen_ai.response.text",E9="gen_ai.request.available_tools",u7="gen_ai.response.streaming",h0="gen_ai.response.tool_calls",qK="gen_ai.agent.name",ZT="gen_ai.pipeline.name",r5="gen_ai.conversation.id",JT="gen_ai.usage.cache_creation_input_tokens",QT="gen_ai.usage.cache_read_input_tokens",LK="gen_ai.usage.input_tokens.cache_write",xZ="gen_ai.usage.input_tokens.cached",_Q="gen_ai.invoke_agent",$T="gen_ai.generate_text",YT="gen_ai.stream_text",XT="gen_ai.generate_object",WT="gen_ai.stream_object",vQ="gen_ai.embeddings.input",KT="gen_ai.embeddings",zT="gen_ai.embeddings",GT="gen_ai.rerank",BT="gen_ai.execute_tool",l7="gen_ai.tool.name",OK="gen_ai.tool.call.id",CK="gen_ai.tool.type",bQ="gen_ai.tool.input",xQ="gen_ai.tool.output",HT="gen_ai.tool.description",PK="openai.response.id",kK="openai.response.model",MK="openai.response.timestamp",VT="openai.usage.completion_tokens",FT="openai.usage.prompt_tokens",p7={CHAT:"chat",EMBEDDINGS:"embeddings"},RK="anthropic.response.timestamp";var t5=new Map,AK=new Set(["ai.generateText","ai.streamText","ai.generateObject","ai.streamObject"]),IK=new Set(["ai.generateText.doGenerate","ai.streamText.doStream","ai.generateObject.doGenerate","ai.streamObject.doStream"]),wT=new Set(["ai.embed.doEmbed","ai.embedMany.doEmbed"]),DT=new Set(["ai.rerank.doRerank"]),UT={"ai.embed.doEmbed":"embeddings","ai.embedMany.doEmbed":"embeddings","ai.rerank.doRerank":"rerank"};function gZ(Z){if(!Z||typeof Z!=="object")return!1;return YH0(Z)||qT(Z)||$H0(Z)||LT(Z)||OT(Z)||XH0(Z)||WH0(Z)||KH0(Z)||zH0(Z)||GH0(Z)||BH0(Z)||HH0(Z)}function $H0(Z){if(!("image_url"in Z))return!1;if(typeof Z.image_url==="string")return Z.image_url.startsWith("data:");return jT(Z)}function jT(Z){return"image_url"in Z&&!!Z.image_url&&typeof Z.image_url==="object"&&"url"in Z.image_url&&typeof Z.image_url.url==="string"&&Z.image_url.url.startsWith("data:")}function YH0(Z){return"type"in Z&&typeof Z.type==="string"&&"source"in Z&&gZ(Z.source)}function qT(Z){return"inlineData"in Z&&!!Z.inlineData&&typeof Z.inlineData==="object"&&"data"in Z.inlineData&&typeof Z.inlineData.data==="string"}function LT(Z){return"type"in Z&&Z.type==="input_audio"&&"input_audio"in Z&&!!Z.input_audio&&typeof Z.input_audio==="object"&&"data"in Z.input_audio&&typeof Z.input_audio.data==="string"}function OT(Z){return"type"in Z&&Z.type==="file"&&"file"in Z&&!!Z.file&&typeof Z.file==="object"&&"file_data"in Z.file&&typeof Z.file.file_data==="string"}function XH0(Z){return"media_type"in Z&&typeof Z.media_type==="string"&&"data"in Z}function WH0(Z){return"type"in Z&&Z.type==="file"&&"mediaType"in Z&&typeof Z.mediaType==="string"&&"data"in Z&&typeof Z.data==="string"&&!Z.data.startsWith("http://")&&!Z.data.startsWith("https://")}function KH0(Z){return"type"in Z&&Z.type==="image"&&"image"in Z&&typeof Z.image==="string"&&!Z.image.startsWith("http://")&&!Z.image.startsWith("https://")}function zH0(Z){return"type"in Z&&(Z.type==="blob"||Z.type==="base64")}function GH0(Z){return"b64_json"in Z}function BH0(Z){return"type"in Z&&"result"in Z&&Z.type==="image_generation"}function HH0(Z){return"uri"in Z&&typeof Z.uri==="string"&&Z.uri.startsWith("data:")}var e5="[Blob substitute]",VH0=["image_url","data","content","b64_json","result","uri","image"];function i7(Z){let J={...Z};if(gZ(J.source))J.source=i7(J.source);if(qT(Z))J.inlineData={...Z.inlineData,data:e5};if(jT(Z))J.image_url={...Z.image_url,url:e5};if(LT(Z))J.input_audio={...Z.input_audio,data:e5};if(OT(Z))J.file={...Z.file,file_data:e5};for(let Q of VH0)if(typeof J[Q]==="string")J[Q]=e5;return J}var PT=20000,gQ=(Z)=>{return new TextEncoder().encode(Z).length},TK=(Z)=>{return gQ(JSON.stringify(Z))};function dQ(Z,J){if(gQ(Z)<=J)return Z;let Q=0,$=Z.length,Y="";while(Q<=$){let X=Math.floor((Q+$)/2),W=Z.slice(0,X);if(gQ(W)<=J)Y=W,Q=X+1;else $=X-1}return Y}function FH0(Z){if(typeof Z==="string")return Z;if("text"in Z&&typeof Z.text==="string")return Z.text;return""}function CT(Z,J){if(typeof Z==="string")return J;return{...Z,text:J}}function wH0(Z){return Z!==null&&typeof Z==="object"&&"content"in Z&&typeof Z.content==="string"}function kT(Z){return Z!==null&&typeof Z==="object"&&"content"in Z&&Array.isArray(Z.content)}function MT(Z){return Z!==null&&typeof Z==="object"&&"parts"in Z&&Array.isArray(Z.parts)&&Z.parts.length>0}function DH0(Z,J){let Q={...Z,content:""},$=TK(Q),Y=J-$;if(Y<=0)return[];let X=dQ(Z.content,Y);return[{...Z,content:X}]}function UH0(Z){if("parts"in Z&&Array.isArray(Z.parts))return{key:"parts",items:Z.parts};if("content"in Z&&Array.isArray(Z.content))return{key:"content",items:Z.content};return{key:null,items:[]}}function jH0(Z,J){let{key:Q,items:$}=UH0(Z);if(Q===null||$.length===0)return[];let Y=$.map((z)=>CT(z,"")),X=TK({...Z,[Q]:Y}),W=J-X;if(W<=0)return[];let K=[];for(let z of $){let G=FH0(z),H=gQ(G);if(H<=W)K.push(z),W-=H;else if(K.length===0){let B=dQ(G,W);if(B)K.push(CT(z,B));break}else break}if(K.length<=0)return[];else return[{...Z,[Q]:K}]}function qH0(Z,J){if(!Z)return[];if(typeof Z==="string"){let Q=dQ(Z,J);return Q?[Q]:[]}if(typeof Z!=="object")return[];if(wH0(Z))return DH0(Z,J);if(kT(Z)||MT(Z))return jH0(Z,J);return[]}function NK(Z){return Z.map((Q)=>{let $=void 0;if(!!Q&&typeof Q==="object"){if(kT(Q))$={...Q,content:NK(Q.content)};else if("content"in Q&&gZ(Q.content))$={...Q,content:i7(Q.content)};if(MT(Q))$={...$??Q,parts:NK(Q.parts)};if(gZ($))$=i7($);else if(gZ(Q))$=i7(Q)}return $??Q})}function LH0(Z,J){if(!Array.isArray(Z)||Z.length===0)return Z;let Q=J-2,$=Z[Z.length-1],Y=NK([$]),X=Y[0];if(TK(X)<=Q)return Y;return qH0(X,Q)}function dZ(Z){return LH0(Z,PT)}function RT(Z){return dQ(Z,PT)}function y9(Z){let J=Boolean(f()?.getOptions().sendDefaultPii);return{...Z,recordInputs:Z?.recordInputs??J,recordOutputs:Z?.recordOutputs??J}}function o7(Z){if(Z.includes("messages"))return"chat";if(Z.includes("completions"))return"text_completion";if(Z.includes("generateContent"))return"generate_content";if(Z.includes("models"))return"models";if(Z.includes("chat"))return"chat";return Z.split(".").pop()||"unknown"}function J8(Z){return`gen_ai.${o7(Z)}`}function Q8(Z,J){return Z?`${Z}.${J}`:J}function Z4(Z,J,Q,$,Y){if(J!==void 0)Z.setAttributes({[W0]:J});if(Q!==void 0)Z.setAttributes({[k0]:Q});if(J!==void 0||Q!==void 0||$!==void 0||Y!==void 0){let X=(J??0)+(Q??0)+($??0)+(Y??0);Z.setAttributes({[Q6]:X})}}function n7(Z){if(typeof Z==="string")return RT(Z);if(Array.isArray(Z)){let J=dZ(Z);return JSON.stringify(J)}return JSON.stringify(Z)}function E6(Z){if(!Array.isArray(Z))return{systemInstructions:void 0,filteredMessages:Z};let J=Z.findIndex((W)=>W&&typeof W==="object"&&("role"in W)&&W.role==="system");if(J===-1)return{systemInstructions:void 0,filteredMessages:Z};let Q=Z[J],$=typeof Q.content==="string"?Q.content:Q.content!==void 0?JSON.stringify(Q.content):void 0;if(!$)return{systemInstructions:void 0,filteredMessages:Z};let Y=JSON.stringify([{type:"text",content:$}]),X=[...Z.slice(0,J),...Z.slice(J+1)];return{systemInstructions:Y,filteredMessages:X}}async function OH0(Z,J,Q){let $=Z.catch((W)=>{throw g(W,{mechanism:{handled:!1,type:Q}}),W}),Y=await J,X=await $;if(X&&typeof X==="object"&&"data"in X)return{...X,data:Y};return Y}function $8(Z,J,Q){if(!b0(Z))return J;return new Proxy(Z,{get($,Y){let W=Y in Promise.prototype||Y===Symbol.toStringTag?J:$,K=Reflect.get(W,Y);if(Y==="withResponse"&&typeof K==="function")return function(){let G=K.call($);return OH0(G,J,Q)};return typeof K==="function"?K.bind(W):K}})}var cQ="operation.name",AT="ai.operationId",mQ="ai.prompt",IT="ai.schema",NT="ai.response.object",fK="ai.values",EK="ai.response.text",yK="ai.response.toolCalls",TT="ai.response.finishReason",a7="ai.prompt.messages",Y8="ai.prompt.tools",J4="ai.model.id",fT="ai.response.providerMetadata",ET="ai.usage.cachedInputTokens",yT="ai.telemetry.functionId",hT="ai.usage.completionTokens",ST="ai.usage.promptTokens",_T="ai.usage.tokens",hK="ai.toolCall.name",SK="ai.toolCall.id",vT="ai.toolCall.args",bT="ai.toolCall.result";function gT(Z,J){let Q=Z.parent_span_id;if(!Q)return;let $=Z.data[W0],Y=Z.data[k0];if(typeof $==="number"||typeof Y==="number"){let X=J.get(Q)||{inputTokens:0,outputTokens:0};if(typeof $==="number")X.inputTokens+=$;if(typeof Y==="number")X.outputTokens+=Y;J.set(Q,X)}}function _K(Z,J){let Q=J.get(Z.span_id);if(!Q||!Z.data)return;if(Q.inputTokens>0)Z.data[W0]=Q.inputTokens;if(Q.outputTokens>0)Z.data[k0]=Q.outputTokens;if(Q.inputTokens>0||Q.outputTokens>0)Z.data["gen_ai.usage.total_tokens"]=Q.inputTokens+Q.outputTokens}function CH0(Z){let J=new Map;for(let Q of Z){let $=Q.data[E9];if(typeof $!=="string")continue;try{let Y=JSON.parse($);for(let X of Y)if(X.name&&X.description&&!J.has(X.name))J.set(X.name,X.description)}catch{}}return J}function dT(Z,J){let Q=CH0(Z);for(let $ of Z){if($.op==="gen_ai.execute_tool"){let Y=$.data[l7];if(typeof Y==="string"){let X=Q.get(Y);if(X)$.data[HT]=X}}if($.op==="gen_ai.invoke_agent")_K($,J)}}function vK(Z){return t5.get(Z)}function bK(Z){t5.delete(Z)}function cT(Z){let J=Z.map((Q)=>{if(typeof Q==="string")try{return JSON.parse(Q)}catch{return Q}return Q});return JSON.stringify(J)}function xT(Z){return Z.filter((J)=>!!J&&typeof J==="object"&&("role"in J)&&("content"in J))}function PH0(Z){try{let J=JSON.parse(Z);if(!!J&&typeof J==="object"){let{messages:Q}=J,{prompt:$,system:Y}=J,X=[];if(typeof Y==="string")X.push({role:"system",content:Y});if(typeof Q==="string")try{Q=JSON.parse(Q)}catch{}if(Array.isArray(Q))return X.push(...xT(Q)),X;if(Array.isArray($))return X.push(...xT($)),X;if(typeof $==="string")X.push({role:"user",content:$});if(X.length>0)return X}}catch{}return[]}function mT(Z,J){if(typeof J[mQ]==="string"&&!J[d0]&&!J[a7]){let Q=J[mQ],$=PH0(Q);if($.length){let{systemInstructions:Y,filteredMessages:X}=E6($);if(Y)Z.setAttribute(f6,Y);let W=Array.isArray(X)?X.length:0,K=n7(X);Z.setAttributes({[mQ]:K,[d0]:K,[$6]:W})}}else if(typeof J[a7]==="string")try{let Q=JSON.parse(J[a7]);if(Array.isArray(Q)){let{systemInstructions:$,filteredMessages:Y}=E6(Q);if($)Z.setAttribute(f6,$);let X=Array.isArray(Y)?Y.length:0,W=n7(Y);Z.setAttributes({[a7]:W,[d0]:W,[$6]:X})}}catch{}}function uT(Z){switch(Z){case"ai.generateText":case"ai.streamText":case"ai.generateObject":case"ai.streamObject":return _Q;case"ai.generateText.doGenerate":return $T;case"ai.streamText.doStream":return YT;case"ai.generateObject.doGenerate":return XT;case"ai.streamObject.doStream":return WT;case"ai.embed.doEmbed":return KT;case"ai.embedMany.doEmbed":return zT;case"ai.rerank.doRerank":return GT;case"ai.toolCall":return BT;default:if(Z.startsWith("ai.stream"))return"ai.run";return}}function kH0(Z){if(AK.has(Z))return"invoke_agent";if(IK.has(Z))return"generate_content";if(wT.has(Z))return"embeddings";if(DT.has(Z))return"rerank";if(Z==="ai.toolCall")return"execute_tool";return Z}function MH0(Z){let{data:J,description:Q}=h(Z);if(!Q)return;if(J[hK]&&J[SK]&&Q==="ai.toolCall"){TH0(Z,J);return}if(!J[AT]&&!Q.startsWith("ai."))return;fH0(Z,Q,J)}function RH0(Z){if(Z.type==="transaction"&&Z.spans){let J=new Map;for(let $ of Z.spans)NH0($),gT($,J);dT(Z.spans,J);let Q=Z.contexts?.trace;if(Q?.op==="gen_ai.invoke_agent")_K(Q,J)}return Z}function AH0(Z){if(typeof Z!=="string")return"stop";switch(Z){case"tool-calls":return"tool_call";case"stop":case"length":case"content_filter":case"error":return Z;default:return Z}}function IH0(Z){let J=Z[EK],Q=Z[yK],$=Z[TT];if(J==null&&Q==null)return;let Y=[];if(typeof J==="string"&&J.length>0)Y.push({type:"text",content:J});if(Q!=null)try{let X=typeof Q==="string"?JSON.parse(Q):Q;if(Array.isArray(X)){for(let W of X){let K=W.input??W.args;Y.push({type:"tool_call",id:W.toolCallId,name:W.toolName,arguments:typeof K==="string"?K:JSON.stringify(K??{})})}delete Z[yK]}}catch{}if(Y.length>0){let X={role:"assistant",parts:Y,finish_reason:AH0($)};Z[eN]=JSON.stringify([X]),delete Z[EK]}}function NH0(Z){let{data:J,origin:Q}=Z;if(Q!=="auto.vercelai.otel")return;if(Z.status&&Z.status!=="ok")Z.status="internal_error";if(c0(J,hT,k0),c0(J,ST,W0),c0(J,ET,xZ),c0(J,"ai.usage.inputTokens",W0),c0(J,"ai.usage.outputTokens",k0),c0(J,_T,W0),c0(J,"ai.response.avgOutputTokensPerSecond","ai.response.avgCompletionTokensPerSecond"),typeof J[W0]==="number"&&typeof J[xZ]==="number")J[W0]=J[W0]+J[xZ];if(typeof J[W0]==="number"){let $=typeof J[k0]==="number"?J[k0]:0;J[Q6]=$+J[W0]}if(J[Y8]&&Array.isArray(J[Y8]))J[Y8]=cT(J[Y8]);if(J[cQ]){let $=kH0(J[cQ]);J[g0]=$,delete J[cQ]}if(c0(J,a7,d0),IH0(J),c0(J,NT,"gen_ai.response.object"),c0(J,Y8,"gen_ai.request.available_tools"),c0(J,vT,bQ),c0(J,bT,xQ),c0(J,IT,"gen_ai.request.schema"),c0(J,J4,D0),Array.isArray(J[fK])){let $=J[fK].map((Y)=>{try{return JSON.parse(Y)}catch{return Y}});J[vQ]=$.length===1?$[0]:JSON.stringify($)}EH0(J);for(let $ of Object.keys(J))if($.startsWith("ai."))c0(J,$,`vercel.${$}`)}function c0(Z,J,Q){if(Z[J]!=null)Z[Q]=Z[J],delete Z[J]}function TH0(Z,J){Z.setAttribute(_,"auto.vercelai.otel"),Z.setAttribute(b,"gen_ai.execute_tool"),Z.setAttribute(g0,"execute_tool"),c0(J,hK,l7),c0(J,SK,OK);let Q=J[OK];if(typeof Q==="string")t5.set(Q,Z.spanContext());if(!J[CK])Z.setAttribute(CK,"function");let $=J[l7];if($)Z.updateName(`execute_tool ${$}`)}function fH0(Z,J,Q){Z.setAttribute(_,"auto.vercelai.otel");let $=J.replace("ai.","");Z.setAttribute("ai.pipeline.name",$),Z.updateName($);let Y=Q[yT];if(Y&&typeof Y==="string")Z.setAttribute("gen_ai.function_id",Y);if(mT(Z,Q),Q[J4]&&!Q[T0])Z.setAttribute(T0,Q[J4]);Z.setAttribute("ai.streaming",J.includes("stream"));let X=uT(J);if(X)Z.setAttribute(b,X);if(AK.has(J)){if(Y&&typeof Y==="string")Z.updateName(`invoke_agent ${Y}`);else Z.updateName("invoke_agent");return}let W=Q[J4];if(W){let K=IK.has(J)?"generate_content":UT[J];if(K)Z.updateName(`${K} ${W}`)}}function uQ(Z){Z.on("spanStart",MH0),Z.addEventProcessor(Object.assign(RH0,{id:"VercelAiEventProcessor"}))}function EH0(Z){let J=Z[fT];if(J)try{let Q=JSON.parse(J),$=Q.openai??Q.azure;if($){if(j9(Z,xZ,$.cachedPromptTokens),j9(Z,"gen_ai.usage.output_tokens.reasoning",$.reasoningTokens),j9(Z,"gen_ai.usage.output_tokens.prediction_accepted",$.acceptedPredictionTokens),j9(Z,"gen_ai.usage.output_tokens.prediction_rejected",$.rejectedPredictionTokens),!Z["gen_ai.conversation.id"])j9(Z,"gen_ai.conversation.id",$.responseId)}if(Q.anthropic){let Y=Q.anthropic.usage?.cache_read_input_tokens??Q.anthropic.cacheReadInputTokens;j9(Z,xZ,Y);let X=Q.anthropic.usage?.cache_creation_input_tokens??Q.anthropic.cacheCreationInputTokens;j9(Z,LK,X)}if(Q.bedrock?.usage)j9(Z,xZ,Q.bedrock.usage.cacheReadInputTokens),j9(Z,LK,Q.bedrock.usage.cacheWriteInputTokens);if(Q.deepseek)j9(Z,xZ,Q.deepseek.promptCacheHitTokens),j9(Z,"gen_ai.usage.input_tokens.cache_miss",Q.deepseek.promptCacheMissTokens)}catch{}}function j9(Z,J,Q){if(Q!=null)Z[J]=Q}var cZ="OpenAI",lT=["responses.create","chat.completions.create","embeddings.create","conversations.create"],yH0=["response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"],pT=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta",...yH0];function lQ(Z){if(Z.includes("chat.completions"))return p7.CHAT;if(Z.includes("responses"))return p7.CHAT;if(Z.includes("embeddings"))return p7.EMBEDDINGS;if(Z.includes("conversations"))return p7.CHAT;return Z.split(".").pop()||"unknown"}function iT(Z){return`gen_ai.${lQ(Z)}`}function oT(Z){return lT.includes(Z)}function nT(Z){return Z!==null&&typeof Z==="object"&&"object"in Z&&Z.object==="chat.completion"}function aT(Z){return Z!==null&&typeof Z==="object"&&"object"in Z&&Z.object==="response"}function sT(Z){if(Z===null||typeof Z!=="object"||!("object"in Z))return!1;let J=Z;return J.object==="list"&&typeof J.model==="string"&&J.model.toLowerCase().includes("embedding")}function rT(Z){return Z!==null&&typeof Z==="object"&&"object"in Z&&Z.object==="conversation"}function tT(Z){return Z!==null&&typeof Z==="object"&&"type"in Z&&typeof Z.type==="string"&&Z.type.startsWith("response.")}function eT(Z){return Z!==null&&typeof Z==="object"&&"object"in Z&&Z.object==="chat.completion.chunk"}function Zf(Z,J,Q){if(pQ(Z,J.id,J.model,J.created),J.usage)Q4(Z,J.usage.prompt_tokens,J.usage.completion_tokens,J.usage.total_tokens);if(Array.isArray(J.choices)){let $=J.choices.map((Y)=>Y.finish_reason).filter((Y)=>Y!==null);if($.length>0)Z.setAttributes({[j6]:JSON.stringify($)});if(Q){let Y=J.choices.map((X)=>X.message?.tool_calls).filter((X)=>Array.isArray(X)&&X.length>0).flat();if(Y.length>0)Z.setAttributes({[h0]:JSON.stringify(Y)})}}}function Jf(Z,J,Q){if(pQ(Z,J.id,J.model,J.created_at),J.status)Z.setAttributes({[j6]:JSON.stringify([J.status])});if(J.usage)Q4(Z,J.usage.input_tokens,J.usage.output_tokens,J.usage.total_tokens);if(Q){let $=J;if(Array.isArray($.output)&&$.output.length>0){let Y=$.output.filter((X)=>typeof X==="object"&&X!==null&&X.type==="function_call");if(Y.length>0)Z.setAttributes({[h0]:JSON.stringify(Y)})}}}function Qf(Z,J){if(Z.setAttributes({[kK]:J.model,[T0]:J.model}),J.usage)Q4(Z,J.usage.prompt_tokens,void 0,J.usage.total_tokens)}function $f(Z,J){let{id:Q,created_at:$}=J;if(Z.setAttributes({[PK]:Q,[o6]:Q,[r5]:Q}),$)Z.setAttributes({[MK]:new Date($*1000).toISOString()})}function Q4(Z,J,Q,$){if(J!==void 0)Z.setAttributes({[FT]:J,[W0]:J});if(Q!==void 0)Z.setAttributes({[VT]:Q,[k0]:Q});if($!==void 0)Z.setAttributes({[Q6]:$})}function pQ(Z,J,Q,$){Z.setAttributes({[PK]:J,[o6]:J}),Z.setAttributes({[kK]:Q,[T0]:Q}),Z.setAttributes({[MK]:new Date($*1000).toISOString()})}function hH0(Z){if("conversation"in Z&&typeof Z.conversation==="string")return Z.conversation;if("previous_response_id"in Z&&typeof Z.previous_response_id==="string")return Z.previous_response_id;return}function Yf(Z){let J={[D0]:Z.model??"unknown"};if("temperature"in Z)J[_Z]=Z.temperature;if("top_p"in Z)J[bZ]=Z.top_p;if("frequency_penalty"in Z)J[vZ]=Z.frequency_penalty;if("presence_penalty"in Z)J[Z8]=Z.presence_penalty;if("stream"in Z)J[t1]=Z.stream;if("encoding_format"in Z)J[sN]=Z.encoding_format;if("dimensions"in Z)J[rN]=Z.dimensions;let Q=hH0(Z);if(Q)J[r5]=Q;return J}function SH0(Z,J){for(let Q of Z){let $=Q.index;if($===void 0||!Q.function)continue;if(!($ in J.chatCompletionToolCalls))J.chatCompletionToolCalls[$]={...Q,function:{name:Q.function.name,arguments:Q.function.arguments||""}};else{let Y=J.chatCompletionToolCalls[$];if(Q.function.arguments&&Y?.function)Y.function.arguments+=Q.function.arguments}}}function _H0(Z,J,Q){if(J.responseId=Z.id??J.responseId,J.responseModel=Z.model??J.responseModel,J.responseTimestamp=Z.created??J.responseTimestamp,Z.usage)J.promptTokens=Z.usage.prompt_tokens,J.completionTokens=Z.usage.completion_tokens,J.totalTokens=Z.usage.total_tokens;for(let $ of Z.choices??[]){if(Q){if($.delta?.content)J.responseTexts.push($.delta.content);if($.delta?.tool_calls)SH0($.delta.tool_calls,J)}if($.finish_reason)J.finishReasons.push($.finish_reason)}}function vH0(Z,J,Q,$){if(!(Z&&typeof Z==="object")){J.eventTypes.push("unknown:non-object");return}if(Z instanceof Error){$.setStatus({code:i,message:"internal_error"}),g(Z,{mechanism:{handled:!1,type:"auto.ai.openai.stream-response"}});return}if(!("type"in Z))return;let Y=Z;if(!pT.includes(Y.type)){J.eventTypes.push(Y.type);return}if(Q){if(Y.type==="response.output_item.done"&&"item"in Y)J.responsesApiToolCalls.push(Y.item);if(Y.type==="response.output_text.delta"&&"delta"in Y&&Y.delta){J.responseTexts.push(Y.delta);return}}if("response"in Y){let{response:X}=Y;if(J.responseId=X.id??J.responseId,J.responseModel=X.model??J.responseModel,J.responseTimestamp=X.created_at??J.responseTimestamp,X.usage)J.promptTokens=X.usage.input_tokens,J.completionTokens=X.usage.output_tokens,J.totalTokens=X.usage.total_tokens;if(X.status)J.finishReasons.push(X.status);if(Q&&X.output_text)J.responseTexts.push(X.output_text)}}async function*Xf(Z,J,Q){let $={eventTypes:[],responseTexts:[],finishReasons:[],responseId:"",responseModel:"",responseTimestamp:0,promptTokens:void 0,completionTokens:void 0,totalTokens:void 0,chatCompletionToolCalls:{},responsesApiToolCalls:[]};try{for await(let Y of Z){if(eT(Y))_H0(Y,$,Q);else if(tT(Y))vH0(Y,$,Q,J);yield Y}}finally{if(pQ(J,$.responseId,$.responseModel,$.responseTimestamp),Q4(J,$.promptTokens,$.completionTokens,$.totalTokens),J.setAttributes({[u7]:!0}),$.finishReasons.length)J.setAttributes({[j6]:JSON.stringify($.finishReasons)});if(Q&&$.responseTexts.length)J.setAttributes({[R0]:$.responseTexts.join("")});let X=[...Object.values($.chatCompletionToolCalls),...$.responsesApiToolCalls];if(X.length>0)J.setAttributes({[h0]:JSON.stringify(X)});J.end()}}function bH0(Z){let J=Array.isArray(Z.tools)?Z.tools:[],$=Z.web_search_options&&typeof Z.web_search_options==="object"?[{type:"web_search_options",...Z.web_search_options}]:[],Y=[...J,...$];if(Y.length===0)return;try{return JSON.stringify(Y)}catch(X){k&&q.error("Failed to serialize OpenAI tools:",X);return}}function xH0(Z,J){let Q={[SZ]:"openai",[g0]:lQ(J),[_]:"auto.ai.openai"};if(Z.length>0&&typeof Z[0]==="object"&&Z[0]!==null){let $=Z[0],Y=bH0($);if(Y)Q[E9]=Y;Object.assign(Q,Yf($))}else Q[D0]="unknown";return Q}function gH0(Z,J,Q){if(!J||typeof J!=="object")return;let $=J;if(nT($)){if(Zf(Z,$,Q),Q&&$.choices?.length){let Y=$.choices.map((X)=>X.message?.content||"");Z.setAttributes({[R0]:JSON.stringify(Y)})}}else if(aT($)){if(Jf(Z,$,Q),Q&&$.output_text)Z.setAttributes({[R0]:$.output_text})}else if(sT($))Qf(Z,$);else if(rT($))$f(Z,$)}function Wf(Z,J,Q){if(Q===p7.EMBEDDINGS&&"input"in J){let K=J.input;if(K==null)return;if(typeof K==="string"&&K.length===0)return;if(Array.isArray(K)&&K.length===0)return;Z.setAttribute(vQ,typeof K==="string"?K:JSON.stringify(K));return}let $="input"in J?J.input:("messages"in J)?J.messages:void 0;if(!$)return;if(Array.isArray($)&&$.length===0)return;let{systemInstructions:Y,filteredMessages:X}=E6($);if(Y)Z.setAttribute(f6,Y);let W=n7(X);if(Z.setAttribute(d0,W),Array.isArray(X))Z.setAttribute($6,X.length);else Z.setAttribute($6,1)}function dH0(Z,J,Q,$){return function(...X){let W=xH0(X,J),K=W[D0]||"unknown",z=lQ(J),G=X[0],H=G&&typeof G==="object"&&G.stream===!0,B={name:`${z} ${K}`,op:iT(J),attributes:W};if(H){let D,U=N0(B,(j)=>{if(D=Z.apply(Q,X),$.recordInputs&&G)Wf(j,G,z);return(async()=>{try{let L=await D;return Xf(L,j,$.recordOutputs??!1)}catch(L){throw j.setStatus({code:i,message:"internal_error"}),g(L,{mechanism:{handled:!1,type:"auto.ai.openai.stream",data:{function:J}}}),j.end(),L}})()});return $8(D,U,"auto.ai.openai")}let V,F=U6(B,(D)=>{if(V=Z.apply(Q,X),$.recordInputs&&G)Wf(D,G,z);return V.then((U)=>{return gH0(D,U,$.recordOutputs),U},(U)=>{throw g(U,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:J}}}),U})});return $8(V,F,"auto.ai.openai")}}function Kf(Z,J="",Q){return new Proxy(Z,{get($,Y){let X=$[Y],W=Q8(J,String(Y));if(typeof X==="function"&&oT(W))return dH0(X,W,$,Q);if(typeof X==="function")return X.bind($);if(X&&typeof X==="object")return Kf(X,W,Q);return X}})}function iQ(Z,J){return Kf(Z,"",y9(J))}var mZ="Anthropic_AI",zf=["messages.create","messages.stream","messages.countTokens","models.get","completions.create","models.retrieve","beta.messages.create"];function Gf(Z){return zf.includes(Z)}function Bf(Z,J){if(Array.isArray(J)&&J.length===0)return;let{systemInstructions:Q,filteredMessages:$}=E6(J);if(Q)Z.setAttributes({[f6]:Q});let Y=Array.isArray($)?$.length:1;Z.setAttributes({[d0]:n7($),[$6]:Y})}var cH0={invalid_request_error:"invalid_argument",authentication_error:"unauthenticated",permission_error:"permission_denied",not_found_error:"not_found",request_too_large:"failed_precondition",rate_limit_error:"resource_exhausted",api_error:"internal_error",overloaded_error:"unavailable"};function xK(Z){if(!Z)return"internal_error";return cH0[Z]||"internal_error"}function Hf(Z,J){if(J.error)Z.setStatus({code:i,message:xK(J.error.type)}),g(J.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}})}function Vf(Z){let{system:J,messages:Q,input:$}=Z,Y=typeof J==="string"?[{role:"system",content:Z.system}]:[],X=Array.isArray($)?$:$!=null?[$]:void 0,W=Array.isArray(Q)?Q:Q!=null?[Q]:[],K=X??W;return[...Y,...K]}function mH0(Z,J){if("type"in Z&&typeof Z.type==="string"){if(Z.type==="error")return J.setStatus({code:i,message:xK(Z.error?.type)}),g(Z.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0}return!1}function uH0(Z,J){if(Z.type==="message_delta"&&Z.usage){if("output_tokens"in Z.usage&&typeof Z.usage.output_tokens==="number")J.completionTokens=Z.usage.output_tokens}if(Z.message){let Q=Z.message;if(Q.id)J.responseId=Q.id;if(Q.model)J.responseModel=Q.model;if(Q.stop_reason)J.finishReasons.push(Q.stop_reason);if(Q.usage){if(typeof Q.usage.input_tokens==="number")J.promptTokens=Q.usage.input_tokens;if(typeof Q.usage.cache_creation_input_tokens==="number")J.cacheCreationInputTokens=Q.usage.cache_creation_input_tokens;if(typeof Q.usage.cache_read_input_tokens==="number")J.cacheReadInputTokens=Q.usage.cache_read_input_tokens}}}function lH0(Z,J){if(Z.type!=="content_block_start"||typeof Z.index!=="number"||!Z.content_block)return;if(Z.content_block.type==="tool_use"||Z.content_block.type==="server_tool_use")J.activeToolBlocks[Z.index]={id:Z.content_block.id,name:Z.content_block.name,inputJsonParts:[]}}function pH0(Z,J,Q){if(Z.type!=="content_block_delta"||!Z.delta)return;if(typeof Z.index==="number"&&"partial_json"in Z.delta&&typeof Z.delta.partial_json==="string"){let $=J.activeToolBlocks[Z.index];if($)$.inputJsonParts.push(Z.delta.partial_json)}if(Q&&typeof Z.delta.text==="string")J.responseTexts.push(Z.delta.text)}function iH0(Z,J){if(Z.type!=="content_block_stop"||typeof Z.index!=="number")return;let Q=J.activeToolBlocks[Z.index];if(!Q)return;let $=Q.inputJsonParts.join(""),Y;try{Y=$?JSON.parse($):{}}catch{Y={__unparsed:$}}J.toolCalls.push({type:"tool_use",id:Q.id,name:Q.name,input:Y}),delete J.activeToolBlocks[Z.index]}function Ff(Z,J,Q,$){if(!(Z&&typeof Z==="object"))return;if(mH0(Z,$))return;uH0(Z,J),lH0(Z,J),pH0(Z,J,Q),iH0(Z,J)}function oH0(Z,J,Q){if(!J.isRecording())return;if(Z.responseId)J.setAttributes({[o6]:Z.responseId});if(Z.responseModel)J.setAttributes({[T0]:Z.responseModel});if(Z4(J,Z.promptTokens,Z.completionTokens,Z.cacheCreationInputTokens,Z.cacheReadInputTokens),J.setAttributes({[u7]:!0}),Z.finishReasons.length>0)J.setAttributes({[j6]:JSON.stringify(Z.finishReasons)});if(Q&&Z.responseTexts.length>0)J.setAttributes({[R0]:Z.responseTexts.join("")});if(Q&&Z.toolCalls.length>0)J.setAttributes({[h0]:JSON.stringify(Z.toolCalls)});J.end()}async function*wf(Z,J,Q){let $={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};try{for await(let Y of Z)Ff(Y,$,Q,J),yield Y}finally{if($.responseId)J.setAttributes({[o6]:$.responseId});if($.responseModel)J.setAttributes({[T0]:$.responseModel});if(Z4(J,$.promptTokens,$.completionTokens,$.cacheCreationInputTokens,$.cacheReadInputTokens),J.setAttributes({[u7]:!0}),$.finishReasons.length>0)J.setAttributes({[j6]:JSON.stringify($.finishReasons)});if(Q&&$.responseTexts.length>0)J.setAttributes({[R0]:$.responseTexts.join("")});if(Q&&$.toolCalls.length>0)J.setAttributes({[h0]:JSON.stringify($.toolCalls)});J.end()}}function Df(Z,J,Q){let $={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};return Z.on("streamEvent",(Y)=>{Ff(Y,$,Q,J)}),Z.on("message",()=>{oH0($,J,Q)}),Z.on("error",(Y)=>{if(g(Y,{mechanism:{handled:!1,type:"auto.ai.anthropic.stream_error"}}),J.isRecording())J.setStatus({code:i,message:"internal_error"}),J.end()}),Z}function nH0(Z,J){let Q={[SZ]:"anthropic",[g0]:o7(J),[_]:"auto.ai.anthropic"};if(Z.length>0&&typeof Z[0]==="object"&&Z[0]!==null){let $=Z[0];if($.tools&&Array.isArray($.tools))Q[E9]=JSON.stringify($.tools);if(Q[D0]=$.model??"unknown","temperature"in $)Q[_Z]=$.temperature;if("top_p"in $)Q[bZ]=$.top_p;if("stream"in $)Q[t1]=$.stream;if("top_k"in $)Q[SQ]=$.top_k;if("frequency_penalty"in $)Q[vZ]=$.frequency_penalty;if("max_tokens"in $)Q[e1]=$.max_tokens}else if(J==="models.retrieve"||J==="models.get")Q[D0]=Z[0];else Q[D0]="unknown";return Q}function gK(Z,J){let Q=Vf(J);if(Bf(Z,Q),"prompt"in J)Z.setAttributes({[aN]:JSON.stringify(J.prompt)})}function aH0(Z,J){if("content"in J){if(Array.isArray(J.content)){Z.setAttributes({[R0]:J.content.map(($)=>$.text).filter(($)=>!!$).join("")});let Q=[];for(let $ of J.content)if($.type==="tool_use"||$.type==="server_tool_use")Q.push($);if(Q.length>0)Z.setAttributes({[h0]:JSON.stringify(Q)})}}if("completion"in J)Z.setAttributes({[R0]:J.completion});if("input_tokens"in J)Z.setAttributes({[R0]:JSON.stringify(J.input_tokens)})}function sH0(Z,J){if("id"in J&&"model"in J){if(Z.setAttributes({[o6]:J.id,[T0]:J.model}),"created"in J&&typeof J.created==="number")Z.setAttributes({[RK]:new Date(J.created*1000).toISOString()});if("created_at"in J&&typeof J.created_at==="number")Z.setAttributes({[RK]:new Date(J.created_at*1000).toISOString()});if("usage"in J&&J.usage)Z4(Z,J.usage.input_tokens,J.usage.output_tokens,J.usage.cache_creation_input_tokens,J.usage.cache_read_input_tokens)}}function rH0(Z,J,Q){if(!J||typeof J!=="object")return;if("type"in J&&J.type==="error"){Hf(Z,J);return}if(Q)aH0(Z,J);sH0(Z,J)}function Uf(Z,J,Q){if(g(Z,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:Q}}}),J.isRecording())J.setStatus({code:i,message:"internal_error"}),J.end();throw Z}function tH0(Z,J,Q,$,Y,X,W,K,z,G,H){let B=Y[D0]??"unknown",V={name:`${X} ${B}`,op:J8(W),attributes:Y};if(G&&!H){let F,D=N0(V,(U)=>{if(F=Z.apply(Q,$),z.recordInputs&&K)gK(U,K);return(async()=>{try{let j=await F;return wf(j,U,z.recordOutputs??!1)}catch(j){return Uf(j,U,W)}})()});return $8(F,D,"auto.ai.anthropic")}else return N0(V,(F)=>{try{if(z.recordInputs&&K)gK(F,K);let D=J.apply(Q,$);return Df(D,F,z.recordOutputs??!1)}catch(D){return Uf(D,F,W)}})}function eH0(Z,J,Q,$){return new Proxy(Z,{apply(Y,X,W){let K=nH0(W,J),z=K[D0]??"unknown",G=o7(J),H=typeof W[0]==="object"?W[0]:void 0,B=Boolean(H?.stream),V=J==="messages.stream";if(B||V)return tH0(Z,Y,Q,W,K,G,J,H,$,B,V);let F,D=U6({name:`${G} ${z}`,op:J8(J),attributes:K},(U)=>{if(F=Y.apply(Q,W),$.recordInputs&&H)gK(U,H);return F.then((j)=>{return rH0(U,j,$.recordOutputs),j},(j)=>{throw g(j,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:J}}}),j})});return $8(F,D,"auto.ai.anthropic")}})}function jf(Z,J="",Q){return new Proxy(Z,{get($,Y){let X=$[Y],W=Q8(J,String(Y));if(typeof X==="function"&&Gf(W))return eH0(X,W,$,Q);if(typeof X==="function")return X.bind($);if(X&&typeof X==="object")return jf(X,W,Q);return X}})}function oQ(Z,J){return jf(Z,"",y9(J))}var uZ="Google_GenAI",dK=["models.generateContent","models.generateContentStream","chats.create","sendMessage","sendMessageStream"],qf="google_genai",cK="chats.create",Lf="chat";function ZV0(Z,J){let Q=Z?.promptFeedback;if(Q?.blockReason){let $=Q.blockReasonMessage??Q.blockReason;return J.setStatus({code:i,message:"internal_error"}),g(`Content blocked: ${$}`,{mechanism:{handled:!1,type:"auto.ai.google_genai"}}),!0}return!1}function JV0(Z,J){if(typeof Z.responseId==="string")J.responseId=Z.responseId;if(typeof Z.modelVersion==="string")J.responseModel=Z.modelVersion;let Q=Z.usageMetadata;if(Q){if(typeof Q.promptTokenCount==="number")J.promptTokens=Q.promptTokenCount;if(typeof Q.candidatesTokenCount==="number")J.completionTokens=Q.candidatesTokenCount;if(typeof Q.totalTokenCount==="number")J.totalTokens=Q.totalTokenCount}}function QV0(Z,J,Q){if(Array.isArray(Z.functionCalls))J.toolCalls.push(...Z.functionCalls);for(let $ of Z.candidates??[]){if($?.finishReason&&!J.finishReasons.includes($.finishReason))J.finishReasons.push($.finishReason);for(let Y of $?.content?.parts??[]){if(Q&&Y.text)J.responseTexts.push(Y.text);if(Y.functionCall)J.toolCalls.push({type:"function",id:Y.functionCall.id,name:Y.functionCall.name,arguments:Y.functionCall.args})}}}function $V0(Z,J,Q,$){if(!Z||ZV0(Z,$))return;JV0(Z,J),QV0(Z,J,Q)}async function*Of(Z,J,Q){let $={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(let Y of Z)$V0(Y,$,Q,J),yield Y}finally{let Y={[u7]:!0};if($.responseId)Y[o6]=$.responseId;if($.responseModel)Y[T0]=$.responseModel;if($.promptTokens!==void 0)Y[W0]=$.promptTokens;if($.completionTokens!==void 0)Y[k0]=$.completionTokens;if($.totalTokens!==void 0)Y[Q6]=$.totalTokens;if($.finishReasons.length)Y[j6]=JSON.stringify($.finishReasons);if(Q&&$.responseTexts.length)Y[R0]=$.responseTexts.join("");if(Q&&$.toolCalls.length)Y[h0]=JSON.stringify($.toolCalls);J.setAttributes(Y),J.end()}}function Cf(Z){if(dK.includes(Z))return!0;let J=Z.split(".").pop();return dK.includes(J)}function Pf(Z){return Z.includes("Stream")}function X8(Z,J="user"){if(typeof Z==="string")return[{role:J,content:Z}];if(Array.isArray(Z))return Z.flatMap((Q)=>X8(Q,J));if(typeof Z!=="object"||!Z)return[];if("role"in Z&&typeof Z.role==="string")return[Z];if("parts"in Z)return[{...Z,role:J}];return[{role:J,content:Z}]}function kf(Z,J){if("model"in Z&&typeof Z.model==="string")return Z.model;if(J&&typeof J==="object"){let Q=J;if("model"in Q&&typeof Q.model==="string")return Q.model;if("modelVersion"in Q&&typeof Q.modelVersion==="string")return Q.modelVersion}return"unknown"}function YV0(Z){let J={};if("temperature"in Z&&typeof Z.temperature==="number")J[_Z]=Z.temperature;if("topP"in Z&&typeof Z.topP==="number")J[bZ]=Z.topP;if("topK"in Z&&typeof Z.topK==="number")J[SQ]=Z.topK;if("maxOutputTokens"in Z&&typeof Z.maxOutputTokens==="number")J[e1]=Z.maxOutputTokens;if("frequencyPenalty"in Z&&typeof Z.frequencyPenalty==="number")J[vZ]=Z.frequencyPenalty;if("presencePenalty"in Z&&typeof Z.presencePenalty==="number")J[Z8]=Z.presencePenalty;return J}function XV0(Z,J,Q){let $={[SZ]:qf,[g0]:o7(Z),[_]:"auto.ai.google_genai"};if(J){if($[D0]=kf(J,Q),"config"in J&&typeof J.config==="object"&&J.config){let Y=J.config;if(Object.assign($,YV0(Y)),"tools"in Y&&Array.isArray(Y.tools)){let X=Y.tools.flatMap((W)=>W.functionDeclarations);$[E9]=JSON.stringify(X)}}}else $[D0]=kf({},Q);return $}function Mf(Z,J){let Q=[];if("config"in J&&J.config&&typeof J.config==="object"&&"systemInstruction"in J.config&&J.config.systemInstruction)Q.push(...X8(J.config.systemInstruction,"system"));if("history"in J)Q.push(...X8(J.history,"user"));if("contents"in J)Q.push(...X8(J.contents,"user"));if("message"in J)Q.push(...X8(J.message,"user"));if(Array.isArray(Q)&&Q.length){let{systemInstructions:$,filteredMessages:Y}=E6(Q);if($)Z.setAttribute(f6,$);let X=Array.isArray(Y)?Y.length:0;Z.setAttributes({[$6]:X,[d0]:JSON.stringify(dZ(Y))})}}function WV0(Z,J,Q){if(!J||typeof J!=="object")return;if(J.modelVersion)Z.setAttribute(T0,J.modelVersion);if(J.usageMetadata&&typeof J.usageMetadata==="object"){let $=J.usageMetadata;if(typeof $.promptTokenCount==="number")Z.setAttributes({[W0]:$.promptTokenCount});if(typeof $.candidatesTokenCount==="number")Z.setAttributes({[k0]:$.candidatesTokenCount});if(typeof $.totalTokenCount==="number")Z.setAttributes({[Q6]:$.totalTokenCount})}if(Q&&Array.isArray(J.candidates)&&J.candidates.length>0){let $=J.candidates.map((Y)=>{if(Y.content?.parts&&Array.isArray(Y.content.parts))return Y.content.parts.map((X)=>typeof X.text==="string"?X.text:"").filter((X)=>X.length>0).join("");return""}).filter((Y)=>Y.length>0);if($.length>0)Z.setAttributes({[R0]:$.join("")})}if(Q&&J.functionCalls){let $=J.functionCalls;if(Array.isArray($)&&$.length>0)Z.setAttributes({[h0]:JSON.stringify($)})}}function Rf(Z,J,Q,$){let Y=J===cK;return new Proxy(Z,{apply(X,W,K){let z=K[0],G=XV0(J,z,Q),H=G[D0]??"unknown",B=o7(J);if(Pf(J))return N0({name:`${B} ${H}`,op:J8(J),attributes:G},async(V)=>{try{if($.recordInputs&&z)Mf(V,z);let F=await X.apply(Q,K);return Of(F,V,Boolean($.recordOutputs))}catch(F){throw V.setStatus({code:i,message:"internal_error"}),g(F,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:J}}}),V.end(),F}});return U6({name:Y?`${B} ${H} create`:`${B} ${H}`,op:J8(J),attributes:G},(V)=>{if($.recordInputs&&z)Mf(V,z);return w9(()=>X.apply(Q,K),(F)=>{g(F,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:J}}})},()=>{},(F)=>{if(!Y)WV0(V,F,$.recordOutputs)})})}})}function mK(Z,J="",Q){return new Proxy(Z,{get:($,Y,X)=>{let W=Reflect.get($,Y,X),K=Q8(J,String(Y));if(typeof W==="function"&&Cf(K)){if(K===cK){let z=Rf(W,K,$,Q);return function(...H){let B=z(...H);if(B&&typeof B==="object")return mK(B,Lf,Q);return B}}return Rf(W,K,$,Q)}if(typeof W==="function")return W.bind($);if(W&&typeof W==="object")return mK(W,K,Q);return W}})}function nQ(Z,J){return mK(Z,"",y9(J))}var aQ="LangChain",s7="auto.ai.langchain",Af={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"};var n6=(Z,J,Q)=>{if(Q!=null)Z[J]=Q},y6=(Z,J,Q)=>{let $=Number(Q);if(!Number.isNaN($))Z[J]=$};function ZZ(Z){if(typeof Z==="string")return Z;try{return JSON.stringify(Z)}catch{return String(Z)}}function W8(Z){if(Array.isArray(Z))try{let J=Z.map((Q)=>Q&&typeof Q==="object"&&gZ(Q)?i7(Q):Q);return JSON.stringify(J)}catch{return String(Z)}return ZZ(Z)}function $4(Z){let J=Z.toLowerCase();return Af[J]??J}function If(Z){if(Z.includes("System"))return"system";if(Z.includes("Human"))return"user";if(Z.includes("AI")||Z.includes("Assistant"))return"assistant";if(Z.includes("Function"))return"function";if(Z.includes("Tool"))return"tool";return"user"}function uK(Z){if(!Z||Array.isArray(Z))return;return Z.invocation_params}function Y4(Z){return Z.map((J)=>{let Q=J._getType;if(typeof Q==="function"){let Y=Q.call(J);return{role:$4(Y),content:W8(J.content)}}if(J.lc===1&&J.kwargs){let Y=J.id,X=Array.isArray(Y)&&Y.length>0?Y[Y.length-1]:"",W=typeof X==="string"?If(X):"user";return{role:$4(W),content:W8(J.kwargs?.content)}}if(J.type){let Y=String(J.type).toLowerCase();return{role:$4(Y),content:W8(J.content)}}if(J.role)return{role:$4(String(J.role)),content:W8(J.content)};let $=J.constructor?.name;if($&&$!=="Object")return{role:$4(If($)),content:W8(J.content)};return{role:"user",content:W8(J.content)}})}function KV0(Z,J,Q){let $={},Y="kwargs"in Z?Z.kwargs:void 0,X=J?.temperature??Q?.ls_temperature??Y?.temperature;y6($,_Z,X);let W=J?.max_tokens??Q?.ls_max_tokens??Y?.max_tokens;y6($,e1,W);let K=J?.top_p??Y?.top_p;y6($,bZ,K);let z=J?.frequency_penalty;y6($,vZ,z);let G=J?.presence_penalty;if(y6($,Z8,G),J&&"stream"in J)n6($,t1,Boolean(J.stream));return $}function Nf(Z,J,Q,$,Y){return{[SZ]:ZZ(Z??"langchain"),[g0]:"chat",[D0]:ZZ(J),[_]:s7,...KV0(Q,$,Y)}}function Tf(Z,J,Q,$,Y){let X=Y?.ls_provider,W=$?.model??Y?.ls_model_name??"unknown",K=Nf(X,W,Z,$,Y);if(Q&&Array.isArray(J)&&J.length>0){n6(K,$6,J.length);let z=J.map((G)=>({role:"user",content:G}));n6(K,d0,ZZ(z))}return K}function ff(Z,J,Q,$,Y){let X=Y?.ls_provider??Z.id?.[2],W=$?.model??Y?.ls_model_name??"unknown",K=Nf(X,W,Z,$,Y);if(Q&&Array.isArray(J)&&J.length>0){let z=Y4(J.flat()),{systemInstructions:G,filteredMessages:H}=E6(z);if(G)n6(K,f6,G);let B=Array.isArray(H)?H.length:0;n6(K,$6,B);let V=dZ(H);n6(K,d0,ZZ(V))}return K}function zV0(Z,J){let Q=[],$=Z.flat();for(let Y of $){let X=Y.message?.content;if(Array.isArray(X))for(let W of X){let K=W;if(K.type==="tool_use")Q.push(K)}}if(Q.length>0)n6(J,h0,ZZ(Q))}function GV0(Z,J){if(!Z)return;let{tokenUsage:Q,usage:$}=Z;if(Q)y6(J,W0,Q.promptTokens),y6(J,k0,Q.completionTokens),y6(J,Q6,Q.totalTokens);else if($){y6(J,W0,$.input_tokens),y6(J,k0,$.output_tokens);let Y=Number($.input_tokens),X=Number($.output_tokens),W=(Number.isNaN(Y)?0:Y)+(Number.isNaN(X)?0:X);if(W>0)y6(J,Q6,W);if($.cache_creation_input_tokens!==void 0)y6(J,JT,$.cache_creation_input_tokens);if($.cache_read_input_tokens!==void 0)y6(J,QT,$.cache_read_input_tokens)}}function Ef(Z,J){if(!Z)return;let Q={};if(Array.isArray(Z.generations)){let G=Z.generations.flat().map((H)=>{if(H.generationInfo?.finish_reason)return H.generationInfo.finish_reason;if(H.generation_info?.finish_reason)return H.generation_info.finish_reason;return null}).filter((H)=>typeof H==="string");if(G.length>0)n6(Q,j6,ZZ(G));if(zV0(Z.generations,Q),J){let H=Z.generations.flat().map((B)=>B.text??B.message?.content).filter((B)=>typeof B==="string");if(H.length>0)n6(Q,R0,ZZ(H))}}GV0(Z.llmOutput,Q);let $=Z.llmOutput,X=Z.generations?.[0]?.[0]?.message,W=$?.model_name??$?.model??X?.response_metadata?.model_name;if(W)n6(Q,T0,W);let K=$?.id??X?.id;if(K)n6(Q,o6,K);let z=$?.stop_reason??X?.response_metadata?.finish_reason;if(z)n6(Q,tN,ZZ(z));return Q}function sQ(Z={}){let{recordInputs:J,recordOutputs:Q}=y9(Z),$=new Map,Y=(W)=>{let K=$.get(W);if(K?.isRecording())K.end(),$.delete(W)},X={lc_serializable:!1,lc_namespace:["langchain_core","callbacks","sentry"],lc_secrets:void 0,lc_attributes:void 0,lc_aliases:void 0,lc_serializable_keys:void 0,lc_id:["langchain_core","callbacks","sentry"],lc_kwargs:{},name:"SentryCallbackHandler",ignoreLLM:!1,ignoreChain:!1,ignoreAgent:!1,ignoreRetriever:!1,ignoreCustomEvent:!1,raiseError:!1,awaitHandlers:!0,handleLLMStart(W,K,z,G,H,B,V,F){let D=uK(B),U=Tf(W,K,J,D,V),j=U[D0],L=U[g0];N0({name:`${L} ${j}`,op:"gen_ai.chat",attributes:{...U,[b]:"gen_ai.chat"}},(O)=>{return $.set(z,O),O})},handleChatModelStart(W,K,z,G,H,B,V,F){let D=uK(B),U=ff(W,K,J,D,V),j=U[D0],L=U[g0];N0({name:`${L} ${j}`,op:"gen_ai.chat",attributes:{...U,[b]:"gen_ai.chat"}},(O)=>{return $.set(z,O),O})},handleLLMEnd(W,K,z,G,H){let B=$.get(K);if(B?.isRecording()){let V=Ef(W,Q);if(V)B.setAttributes(V);Y(K)}},handleLLMError(W,K){let z=$.get(K);if(z?.isRecording())z.setStatus({code:i,message:"internal_error"}),Y(K);g(W,{mechanism:{handled:!1,type:`${s7}.llm_error_handler`}})},handleChainStart(W,K,z,G,H,B,V,F){let D=F||W.name||"unknown_chain",U={[_]:"auto.ai.langchain","langchain.chain.name":D};if(J)U["langchain.chain.inputs"]=JSON.stringify(K);N0({name:`chain ${D}`,op:"gen_ai.invoke_agent",attributes:{...U,[b]:"gen_ai.invoke_agent"}},(j)=>{return $.set(z,j),j})},handleChainEnd(W,K){let z=$.get(K);if(z?.isRecording()){if(Q)z.setAttributes({"langchain.chain.outputs":JSON.stringify(W)});Y(K)}},handleChainError(W,K){let z=$.get(K);if(z?.isRecording())z.setStatus({code:i,message:"internal_error"}),Y(K);g(W,{mechanism:{handled:!1,type:`${s7}.chain_error_handler`}})},handleToolStart(W,K,z,G){let H=W.name||"unknown_tool",B={[_]:s7,[l7]:H};if(J)B[bQ]=K;N0({name:`execute_tool ${H}`,op:"gen_ai.execute_tool",attributes:{...B,[b]:"gen_ai.execute_tool"}},(V)=>{return $.set(z,V),V})},handleToolEnd(W,K){let z=$.get(K);if(z?.isRecording()){if(Q)z.setAttributes({[xQ]:JSON.stringify(W)});Y(K)}},handleToolError(W,K){let z=$.get(K);if(z?.isRecording())z.setStatus({code:i,message:"internal_error"}),Y(K);g(W,{mechanism:{handled:!1,type:`${s7}.tool_error_handler`}})},copy(){return X},toJSON(){return{lc:1,type:"not_implemented",id:X.lc_id}},toJSONNotImplemented(){return{lc:1,type:"not_implemented",id:X.lc_id}}};return X}var rQ="LangGraph",lK="auto.ai.langgraph";function BV0(Z){if(!Z||Z.length===0)return null;let J=[];for(let Q of Z)if(Q&&typeof Q==="object"){let $=Q.tool_calls;if($&&Array.isArray($))J.push(...$)}return J.length>0?J:null}function HV0(Z){let J=Z,Q=0,$=0,Y=0;if(J.usage_metadata&&typeof J.usage_metadata==="object"){let X=J.usage_metadata;if(typeof X.input_tokens==="number")Q=X.input_tokens;if(typeof X.output_tokens==="number")$=X.output_tokens;if(typeof X.total_tokens==="number")Y=X.total_tokens;return{inputTokens:Q,outputTokens:$,totalTokens:Y}}if(J.response_metadata&&typeof J.response_metadata==="object"){let X=J.response_metadata;if(X.tokenUsage&&typeof X.tokenUsage==="object"){let W=X.tokenUsage;if(typeof W.promptTokens==="number")Q=W.promptTokens;if(typeof W.completionTokens==="number")$=W.completionTokens;if(typeof W.totalTokens==="number")Y=W.totalTokens}}return{inputTokens:Q,outputTokens:$,totalTokens:Y}}function VV0(Z,J){let Q=J;if(Q.response_metadata&&typeof Q.response_metadata==="object"){let $=Q.response_metadata;if($.model_name&&typeof $.model_name==="string")Z.setAttribute(T0,$.model_name);if($.finish_reason&&typeof $.finish_reason==="string")Z.setAttribute(j6,[$.finish_reason])}}function yf(Z){if(!Z.builder?.nodes?.tools?.runnable?.tools)return null;let J=Z.builder?.nodes?.tools?.runnable?.tools;if(!J||!Array.isArray(J)||J.length===0)return null;return J.map((Q)=>({name:Q.lc_kwargs?.name,description:Q.lc_kwargs?.description,schema:Q.lc_kwargs?.schema}))}function hf(Z,J,Q){let Y=Q?.messages;if(!Y||!Array.isArray(Y))return;let X=J?.length??0,W=Y.length>X?Y.slice(X):[];if(W.length===0)return;let K=BV0(W);if(K)Z.setAttribute(h0,JSON.stringify(K));let z=Y4(W);Z.setAttribute(R0,JSON.stringify(z));let G=0,H=0,B=0;for(let V of W){let F=HV0(V);G+=F.inputTokens,H+=F.outputTokens,B+=F.totalTokens,VV0(Z,V)}if(G>0)Z.setAttribute(W0,G);if(H>0)Z.setAttribute(k0,H);if(B>0)Z.setAttribute(Q6,B)}function pK(Z,J){return new Proxy(Z,{apply(Q,$,Y){return U6({op:"gen_ai.create_agent",name:"create_agent",attributes:{[_]:lK,[b]:"gen_ai.create_agent",[g0]:"create_agent"}},(X)=>{try{let W=Reflect.apply(Q,$,Y),K=Y.length>0?Y[0]:{};if(K?.name&&typeof K.name==="string")X.setAttribute(qK,K.name),X.updateName(`create_agent ${K.name}`);let z=W.invoke;if(z&&typeof z==="function")W.invoke=FV0(z.bind(W),W,K,J);return W}catch(W){throw X.setStatus({code:i,message:"internal_error"}),g(W,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),W}})}})}function FV0(Z,J,Q,$){return new Proxy(Z,{apply(Y,X,W){return U6({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[_]:lK,[b]:_Q,[g0]:"invoke_agent"}},async(K)=>{try{let z=Q?.name;if(z&&typeof z==="string")K.setAttribute(ZT,z),K.setAttribute(qK,z),K.updateName(`invoke_agent ${z}`);let B=(W.length>1?W[1]:void 0)?.configurable?.thread_id;if(B&&typeof B==="string")K.setAttribute(r5,B);let V=yf(J);if(V)K.setAttribute(E9,JSON.stringify(V));let{recordInputs:F,recordOutputs:D}=$,U=W.length>0?W[0]?.messages??[]:[];if(U&&F){let L=Y4(U),{systemInstructions:O,filteredMessages:M}=E6(L);if(O)K.setAttribute(f6,O);let S=dZ(M),T=Array.isArray(M)?M.length:0;K.setAttributes({[d0]:JSON.stringify(S),[$6]:T})}let j=await Reflect.apply(Y,X,W);if(D)hf(K,U??null,j);return j}catch(z){throw K.setStatus({code:i,message:"internal_error"}),g(z,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),z}})}})}function tQ(Z,J){return Z.compile=pK(Z.compile,y9(J)),Z}function X4(Z){if(Z===void 0)return;else if(Z>=400&&Z<500)return"warning";else if(Z>=500)return"error";else return}function W4(Z,J,Q){let $=Z[J];if(typeof $!=="function")return;try{Z[J]=Q}catch{Object.defineProperty(Z,J,{value:Q,writable:!0,configurable:!0,enumerable:!0})}if(Z.default===$)try{Z.default=Q}catch{Object.defineProperty(Z,"default",{value:Q,writable:!0,configurable:!0,enumerable:!0})}}function _f(Z,J=!1){return!(J||Z&&!Z.startsWith("/")&&!Z.match(/^[A-Z]:/)&&!Z.startsWith(".")&&!Z.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&Z!==void 0&&!Z.includes("node_modules/")}function vf(Z){let J=/^\s*[-]{4,}$/,Q=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,$=/at (?:async )?(.+?) \(data:(.*?),/;return(Y)=>{let X=Y.match($);if(X)return{filename:``,function:X[1]};let W=Y.match(Q);if(W){let K,z,G,H,B;if(W[1]){G=W[1];let U=G.lastIndexOf(".");if(G[U-1]===".")U--;if(U>0){K=G.slice(0,U),z=G.slice(U+1);let j=K.indexOf(".Module");if(j>0)G=G.slice(j+1),K=K.slice(0,j)}H=void 0}if(z)H=K,B=z;if(z==="")B=void 0,G=void 0;if(G===void 0)B=B||GW,G=H?`${H}.${B}`:B;let V=YI(W[2]),F=W[5]==="native";if(!V&&W[5]&&!F)V=W[5];let D=V?wV0(V):void 0;return{filename:D??V,module:D&&Z?.(D),function:G,lineno:Sf(W[3]),colno:Sf(W[4]),in_app:_f(V||"",F)}}if(Y.match(J))return{filename:Y};return}}function iK(Z){return[90,vf(Z)]}function Sf(Z){return parseInt(Z||"",10)||void 0}function wV0(Z){try{return decodeURI(Z)}catch{return}}class h6{constructor(Z){this._maxSize=Z,this._cache=new Map}get size(){return this._cache.size}get(Z){let J=this._cache.get(Z);if(J===void 0)return;return this._cache.delete(Z),this._cache.set(Z,J),J}set(Z,J){if(this._cache.size>=this._maxSize){let Q=this._cache.keys().next().value;this._cache.delete(Q)}this._cache.set(Z,J)}remove(Z){let J=this._cache.get(Z);if(J)this._cache.delete(Z);return J}clear(){this._cache.clear()}keys(){return Array.from(this._cache.keys())}values(){let Z=[];return this._cache.forEach((J)=>Z.push(J)),Z}}var S6=R(C(),1),$Z=R(Q0(),1),_6=R(s(),1);import{errorMonitor as xw0}from"node:events";var m=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var pZ=R(C(),1);import{subscribe as Sw0}from"node:diagnostics_channel";var H$="@sentry/instrumentation-http",Lh=1048576;function Oh(Z,J,Q,$){let Y=0,X=[];m&&q.log($,"Patching request.on");let W=new WeakMap,K=Q==="small"?1000:Q==="medium"?1e4:Lh;try{Z.on=new Proxy(Z.on,{apply:(z,G,H)=>{let[B,V,...F]=H;if(B==="data"){m&&q.log($,`Handling request.on("data") with maximum body size of ${K}b`);let D=new Proxy(V,{apply:(U,j,L)=>{try{let O=L[0],M=Buffer.from(O);if(Y{let[,B]=H,V=W.get(B);if(V){W.delete(B);let F=H.slice();return F[1]=V,Reflect.apply(z,G,F)}return Reflect.apply(z,G,H)}}),Z.on("end",()=>{try{let z=Buffer.concat(X).toString("utf-8");if(z){let H=Buffer.byteLength(z,"utf-8")>K?`${Buffer.from(z).subarray(0,K-3).toString("utf-8")}...`:z;J.setSDKProcessingMetadata({normalizedRequest:{data:H}})}}catch(z){if(m)q.error($,"Error building captured request body",z)}})}catch(z){if(m)q.error($,"Error patching request to capture body",z)}}var Ch=pZ.createContextKey("sentry_http_server_instrumented"),Gz="Http.Server",zz=new Map,Ph=new WeakSet;function kh(Z,J){M0(Z,"_startSpanCallback",new WeakRef(J))}var _w0=(Z={})=>{let J={sessions:Z.sessions??!0,sessionFlushingDelayMS:Z.sessionFlushingDelayMS??60000,maxRequestBodySize:Z.maxRequestBodySize??"medium",ignoreRequestBody:Z.ignoreRequestBody};return{name:Gz,setupOnce(){Sw0("http.server.request.start",($)=>{vw0($.server,J)})},afterAllSetup(Q){if(m&&Q.getIntegrationByName("Http"))q.warn("It seems that you have manually added `httpServerIntegration` while `httpIntegration` is also present. Make sure to remove `httpServerIntegration` when adding `httpIntegration`.")}}},z8=_w0;function vw0(Z,{ignoreRequestBody:J,maxRequestBodySize:Q,sessions:$,sessionFlushingDelayMS:Y}){let X=Z.emit;if(Ph.has(X))return;let W=new Proxy(X,{apply(K,z,G){if(G[0]!=="request")return K.apply(z,G);let H=f();if(pZ.context.active().getValue(Ch)||!H)return K.apply(z,G);m&&q.log(Gz,"Handling incoming request");let B=l().clone(),V=G[1],F=G[2],D=p5(V),U=V.ip||V.socket?.remoteAddress,j=V.url||"/";if(Q!=="none"&&!J?.(j,V))Oh(V,B,Q,Gz);B.setSDKProcessingMetadata({normalizedRequest:D,ipAddress:U});let L=(V.method||"GET").toUpperCase(),O=e9(j),M=`${L} ${O}`;if(B.setTransactionName(M),$&&H)bw0(H,{requestIsolationScope:B,response:F,sessionFlushingDelayMS:Y??60000});return _1(B,()=>{let S={traceId:F6(),sampleRand:x0(),propagationSpanId:w6()};t().setPropagationContext({...S}),B.setPropagationContext({...S});let T=pZ.propagation.extract(pZ.context.active(),D.headers).setValue(Ch,!0);return pZ.context.with(T,()=>{H.emit("httpServerRequest",V,F,D);let n=V._startSpanCallback?.deref();if(n)return n(()=>K.apply(z,G));return K.apply(z,G)})})}});Ph.add(W),Z.emit=W}function bw0(Z,{requestIsolationScope:J,response:Q,sessionFlushingDelayMS:$}){J.setSDKProcessingMetadata({requestSession:{status:"ok"}}),Q.once("close",()=>{let Y=J.getScopeData().sdkProcessingMetadata.requestSession;if(Z&&Y){m&&q.log(`Recorded request session with status: ${Y.status}`);let X=new Date;X.setSeconds(0,0);let W=X.toISOString(),K=zz.get(Z),z=K?.[W]||{exited:0,crashed:0,errored:0};if(z[{ok:"exited",crashed:"crashed",errored:"errored"}[Y.status]]++,K)K[W]=z;else{m&&q.log("Opened new request session aggregate.");let G={[W]:z};zz.set(Z,G);let H=()=>{clearTimeout(V),B(),zz.delete(Z);let F=Object.entries(G).map(([D,U])=>({started:D,exited:U.exited,errored:U.errored,crashed:U.crashed}));Z.sendSession({aggregates:F})},B=Z.on("flush",()=>{m&&q.log("Sending request session aggregate due to client flush"),H()}),V=setTimeout(()=>{m&&q.log("Sending request session aggregate due to flushing schedule"),H()},$).unref()}}})}var Mh="Http.ServerSpans",gw0=(Z={})=>{let J=Z.ignoreStaticAssets??!0,Q=Z.ignoreIncomingRequests,$=Z.ignoreStatusCodes??[[401,404],[301,303],[305,399]],{onSpanCreated:Y}=Z,{requestHook:X,responseHook:W,applyCustomAttributesOnSpan:K}=Z.instrumentation??{};return{name:Mh,setup(z){if(typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__)return;z.on("httpServerRequest",(G,H,B)=>{let V=G,F=H;kh(V,(U)=>{if(mw0(V,{ignoreStaticAssets:J,ignoreIncomingRequests:Q}))return m&&q.log(Mh,"Skipping span creation for incoming request",V.url),U();let j=B.url||V.url||"/",L=l5(j),O=V.headers,M=O["user-agent"],S=O["x-forwarded-for"],T=V.httpVersion,n=O.host,r=n?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost",r0=z.tracer,R9=j.startsWith("https")?"https":"http",H7=B.method||V.method?.toUpperCase()||"GET",V7=L?L.pathname:e9(j),MJ=`${H7} ${V7}`,i0=r0.startSpan(MJ,{kind:S6.SpanKind.SERVER,attributes:{[b]:"http.server",[_]:"auto.http.otel.http","sentry.http.prefetch":dw0(V)||void 0,"http.url":j,"http.method":B.method,"http.target":L?`${L.pathname}${L.search}`:V7,"http.host":n,"net.host.name":r,"http.client_ip":typeof S==="string"?S.split(",")[0]:void 0,"http.user_agent":M,"http.scheme":R9,"http.flavor":T,"net.transport":T?.toUpperCase()==="QUIC"?"ip_udp":"ip_tcp",...uw0(V),...fQ(B.headers||{},z.getOptions().sendDefaultPii??!1)}});X?.(i0,V),W?.(i0,F),K?.(i0,V,F),Y?.(i0,V,F);let RJ={type:$Z.RPCType.HTTP,span:i0};return S6.context.with($Z.setRPCMetadata(S6.trace.setSpan(S6.context.active(),i0),RJ),()=>{S6.context.bind(S6.context.active(),V),S6.context.bind(S6.context.active(),F);let AJ=!1;function LV(IJ){if(AJ)return;AJ=!0;let OV=iw0(V,F);i0.setAttributes(OV),i0.setStatus(IJ),i0.end();let CV=OV["http.route"];if(CV)l().setTransactionName(`${V.method?.toUpperCase()||"GET"} ${CV}`)}return F.on("close",()=>{LV(N9(F.statusCode))}),F.on(xw0,()=>{let IJ=N9(F.statusCode);LV(IJ.code===i?IJ:{code:i})}),U()})})})},processEvent(z){if(z.type==="transaction"){let G=z.contexts?.trace?.data?.["http.response.status_code"];if(typeof G==="number"){if(ow0(G,$))return m&&q.log("Dropping transaction due to status code",G),null}}return z},afterAllSetup(z){if(!m)return;if(z.getIntegrationByName("Http"))q.warn("It seems that you have manually added `httpServerSpansIntergation` while `httpIntegration` is also present. Make sure to remove `httpIntegration` when adding `httpServerSpansIntegration`.");if(!z.getIntegrationByName("Http.Server"))q.error("It seems that you have manually added `httpServerSpansIntergation` without adding `httpServerIntegration`. This is a requiement for spans to be created - please add the `httpServerIntegration` integration.")}}},G8=gw0;function dw0(Z){return Z.headers["next-router-prefetch"]==="1"}function cw0(Z){let J=e9(Z);if(J.match(/\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/))return!0;if(J.match(/^\/(robots\.txt|sitemap\.xml|manifest\.json|browserconfig\.xml)$/))return!0;return!1}function mw0(Z,{ignoreStaticAssets:J,ignoreIncomingRequests:Q}){if($Z.isTracingSuppressed(S6.context.active()))return!0;let $=Z.url,Y=Z.method?.toUpperCase();if(Y==="OPTIONS"||Y==="HEAD"||!$)return!0;if(J&&Y==="GET"&&cw0($))return!0;if(Q?.($,Z))return!0;return!1}function uw0(Z){let J=lw0(Z.headers);if(J==null)return{};if(pw0(Z.headers))return{["http.request_content_length"]:J};else return{["http.request_content_length_uncompressed"]:J}}function lw0(Z){let J=Z["content-length"];if(J===void 0)return null;let Q=parseInt(J,10);if(isNaN(Q))return null;return Q}function pw0(Z){let J=Z["content-encoding"];return!!J&&J!=="identity"}function iw0(Z,J){let{socket:Q}=Z,{statusCode:$,statusMessage:Y}=J,X={[_6.ATTR_HTTP_RESPONSE_STATUS_CODE]:$,[_6.SEMATTRS_HTTP_STATUS_CODE]:$,"http.status_text":Y?.toUpperCase()},W=$Z.getRPCMetadata(S6.context.active());if(Q){let{localAddress:K,localPort:z,remoteAddress:G,remotePort:H}=Q;X[_6.SEMATTRS_NET_HOST_IP]=K,X[_6.SEMATTRS_NET_HOST_PORT]=z,X[_6.SEMATTRS_NET_PEER_IP]=G,X["net.peer.port"]=H}if(X[_6.SEMATTRS_HTTP_STATUS_CODE]=$,X["http.status_text"]=(Y||"").toUpperCase(),W?.type===$Z.RPCType.HTTP&&W.route!==void 0){let K=W.route;X[_6.ATTR_HTTP_ROUTE]=K}return X}function ow0(Z,J){return J.some((Q)=>{if(typeof Q==="number")return Q===Z;let[$,Y]=Q;return Z>=$&&Z<=Y})}var Y6=R(C(),1),Nh=R(Q0(),1),H4=R(c(),1),S0=R(s(),1);import{subscribe as Bz,unsubscribe as Hz}from"node:diagnostics_channel";import{errorMonitor as Ih}from"node:events";function B4(Z,J){if(!Z)return J;let Q=T7(Z),$=T7(J);if(!$)return Z;let Y={...Q};return Object.entries($).forEach(([X,W])=>{if(X.startsWith("sentry-")||!Y[X])Y[X]=W}),UQ(Y)}var B8="@sentry/instrumentation-http";function Rh(Z,J){let Q=nw0(Z),$=J?.statusCode,Y=X4($);T6({category:"http",data:{status_code:$,...Q},type:"http",level:Y},{event:"response",request:Z,response:J})}function V$(Z,J){let Q=F$(Z),{tracePropagationTargets:$,propagateTraceparent:Y}=f()?.getOptions()||{},X=m7(Q,$,J)?c7({propagateTraceparent:Y}):void 0;if(!X)return;let{"sentry-trace":W,baggage:K,traceparent:z}=X;if(W&&!Z.getHeader("sentry-trace"))try{Z.setHeader("sentry-trace",W),m&&q.log(B8,"Added sentry-trace header to outgoing request")}catch(G){m&&q.error(B8,"Failed to add sentry-trace header to outgoing request:",A9(G)?G.message:"Unknown error")}if(z&&!Z.getHeader("traceparent"))try{Z.setHeader("traceparent",z),m&&q.log(B8,"Added traceparent header to outgoing request")}catch(G){m&&q.error(B8,"Failed to add traceparent header to outgoing request:",A9(G)?G.message:"Unknown error")}if(K){let G=B4(Z.getHeader("baggage"),K);if(G)try{Z.setHeader("baggage",G),m&&q.log(B8,"Added baggage header to outgoing request")}catch(H){m&&q.error(B8,"Failed to add baggage header to outgoing request:",A9(H)?H.message:"Unknown error")}}}function nw0(Z){try{let J=Z.getHeader("host")||Z.host,Q=new URL(Z.path,`${Z.protocol}//${J}`),$=yZ(Q.toString()),Y={url:hZ($),"http.method":Z.method||"GET"};if($.search)Y["http.query"]=$.search;if($.hash)Y["http.fragment"]=$.hash;return Y}catch{return{}}}function Ah(Z){return{method:Z.method,protocol:Z.protocol,host:Z.host,hostname:Z.host,path:Z.path,headers:Z.getHeaders()}}function F$(Z){let J=Z.getHeader("host")||Z.host,Q=Z.protocol,$=Z.path;return`${Q}//${J}${$}`}class H8 extends H4.InstrumentationBase{constructor(Z={}){super(H$,a,Z);this._propagationDecisionMap=new h6(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){let Z=!1,J=(W)=>{let K=W;this._onOutgoingRequestFinish(K.request,K.response)},Q=(W)=>{let K=W;this._onOutgoingRequestFinish(K.request,void 0)},$=(W)=>{let K=W;this._onOutgoingRequestCreated(K.request)},Y=(W)=>{if(Z)return W;if(Z=!0,Bz("http.client.response.finish",J),Bz("http.client.request.error",Q),this.getConfig().propagateTraceInOutgoingRequests||this.getConfig().createSpansForOutgoingRequests)Bz("http.client.request.created",$);return W},X=()=>{Hz("http.client.response.finish",J),Hz("http.client.request.error",Q),Hz("http.client.request.created",$)};return[new H4.InstrumentationNodeModuleDefinition("http",["*"],Y,X),new H4.InstrumentationNodeModuleDefinition("https",["*"],Y,X)]}_startSpanForOutgoingRequest(Z){let J=Z.once,[Q,$]=aw0(Z),Y=h5({name:Q,attributes:$,onlyIfParent:!0});this.getConfig().outgoingRequestHook?.(Y,Z);let X=new Proxy(J,{apply(z,G,H){let[B]=H;if(B!=="response")return z.apply(G,H);let V=Y6.context.active(),F=Y6.trace.setSpan(V,Y);return Y6.context.with(F,()=>{return z.apply(G,H)})}});Z.once=X;let W=!1,K=(z)=>{if(W)return;W=!0,Y.setStatus(z),Y.end()};return Z.prependListener("response",(z)=>{if(Z.listenerCount("response")<=1)z.resume();Y6.context.bind(Y6.context.active(),z);let G=sw0(z);Y.setAttributes(G),this.getConfig().outgoingResponseHook?.(Y,z),this.getConfig().outgoingRequestApplyCustomAttributes?.(Y,Z,z);let H=(B=!1)=>{this._diag.debug("outgoingRequest on end()");let V=B||typeof z.statusCode!=="number"||z.aborted&&!z.complete?{code:Y6.SpanStatusCode.ERROR}:N9(z.statusCode);K(V)};z.on("end",()=>{H()}),z.on(Ih,(B)=>{this._diag.debug("outgoingRequest on response error()",B),H(!0)})}),Z.on("close",()=>{K({code:Y6.SpanStatusCode.UNSET})}),Z.on(Ih,(z)=>{this._diag.debug("outgoingRequest on request error()",z),K({code:Y6.SpanStatusCode.ERROR})}),Y}_onOutgoingRequestFinish(Z,J){m&&q.log(H$,"Handling finished outgoing request");let Q=this.getConfig().breadcrumbs,$=typeof Q>"u"?!0:Q,Y=this._ignoreOutgoingRequestsMap.get(Z)??this._shouldIgnoreOutgoingRequest(Z);if(this._ignoreOutgoingRequestsMap.set(Z,Y),$&&!Y)Rh(Z,J)}_onOutgoingRequestCreated(Z){m&&q.log(H$,"Handling outgoing request created");let J=this._ignoreOutgoingRequestsMap.get(Z)??this._shouldIgnoreOutgoingRequest(Z);if(this._ignoreOutgoingRequestsMap.set(Z,J),J)return;let Q=this.getConfig().createSpansForOutgoingRequests&&(this.getConfig().spans??!0),$=this.getConfig().propagateTraceInOutgoingRequests;if(Q){let Y=this._startSpanForOutgoingRequest(Z);if($&&Y.isRecording()){let X=Y6.trace.setSpan(Y6.context.active(),Y);Y6.context.with(X,()=>{V$(Z,this._propagationDecisionMap)})}else if($)V$(Z,this._propagationDecisionMap)}else if($)V$(Z,this._propagationDecisionMap)}_shouldIgnoreOutgoingRequest(Z){if(Nh.isTracingSuppressed(Y6.context.active()))return!0;let J=this.getConfig().ignoreOutgoingRequests;if(!J)return!1;let Q=Ah(Z),$=F$(Z);return J($,Q)}}function aw0(Z){let J=F$(Z),[Q,$]=zK(l5(J),"client","auto.http.otel.http",Z),Y=Z.getHeader("user-agent");return[Q,{[b]:"http.client","otel.kind":"CLIENT",[S0.ATTR_USER_AGENT_ORIGINAL]:Y,[S0.ATTR_URL_FULL]:J,"http.url":J,"http.method":Z.method,"http.target":Z.path||"/","net.peer.name":Z.host,"http.host":Z.getHeader("host"),...$}]}function sw0(Z){let{statusCode:J,statusMessage:Q,httpVersion:$,socket:Y}=Z,X=$.toUpperCase()!=="QUIC"?"ip_tcp":"ip_udp",W={[S0.ATTR_HTTP_RESPONSE_STATUS_CODE]:J,[S0.ATTR_NETWORK_PROTOCOL_VERSION]:$,"http.flavor":$,[S0.ATTR_NETWORK_TRANSPORT]:X,"net.transport":X,["http.status_text"]:Q?.toUpperCase(),"http.status_code":J,...rw0(Z)};if(Y){let{remoteAddress:K,remotePort:z}=Y;W[S0.ATTR_NETWORK_PEER_ADDRESS]=K,W[S0.ATTR_NETWORK_PEER_PORT]=z,W["net.peer.ip"]=K,W["net.peer.port"]=z}return W}function rw0(Z){let J=tw0(Z.headers);if(J==null)return{};if(ew0(Z.headers))return{[S0.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH]:J};else return{[S0.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED]:J}}function tw0(Z){let J=Z["content-length"];if(typeof J==="number")return J;if(typeof J!=="string")return;let Q=parseInt(J,10);if(isNaN(Q))return;return Q}function ew0(Z){let J=Z["content-encoding"];return!!J&&J!=="identity"}var yh=R(C(),1),hh=R(Q0(),1),Sh=R(c(),1);import*as V8 from"diagnostics_channel";var s6=UW(process.versions.node),YZ=s6.major,V4=s6.minor;var w$="sentry-trace",Vz="baggage",Th=/baggage: (.*)\r\n/;function fh(Z,J){let Q=D$(Z.origin,Z.path),{tracePropagationTargets:$,propagateTraceparent:Y}=f()?.getOptions()||{},X=m7(Q,$,J)?c7({propagateTraceparent:Y}):void 0;if(!X)return;let{"sentry-trace":W,baggage:K,traceparent:z}=X;if(Array.isArray(Z.headers)){let G=Z.headers;if(W&&!G.includes(w$))G.push(w$,W);if(z&&!G.includes("traceparent"))G.push("traceparent",z);let H=G.findIndex((B)=>B===Vz);if(K&&H===-1)G.push(Vz,K);else if(K){let B=G[H+1],V=B4(B,K);if(V)G[H+1]=V}}else{let G=Z.headers;if(W&&!G.includes(`${w$}:`))Z.headers+=`${w$}: ${W}\r -`;if(z&&!G.includes("traceparent:"))Z.headers+=`traceparent: ${z}\r -`;let H=Z.headers.match(Th)?.[1];if(K&&!H)Z.headers+=`${Vz}: ${K}\r -`;else if(K){let B=B4(H,K);if(B)Z.headers=Z.headers.replace(Th,`baggage: ${B}\r -`)}}}function Eh(Z,J){let Q=ZD0(Z),$=J.statusCode,Y=X4($);T6({category:"http",data:{status_code:$,...Q},type:"http",level:Y},{event:"response",request:Z,response:J})}function ZD0(Z){try{let J=D$(Z.origin,Z.path),Q=yZ(J),$={url:hZ(Q),"http.method":Z.method||"GET"};if(Q.search)$["http.query"]=Q.search;if(Q.hash)$["http.fragment"]=Q.hash;return $}catch{return{}}}function D$(Z,J="/"){try{return new URL(J,Z).toString()}catch{let Q=`${Z}`;if(Q.endsWith("/")&&J.startsWith("/"))return`${Q}${J.slice(1)}`;if(!Q.endsWith("/")&&!J.startsWith("/"))return`${Q}/${J}`;return`${Q}${J}`}}class F8 extends Sh.InstrumentationBase{constructor(Z={}){super("@sentry/instrumentation-node-fetch",a,Z);this._channelSubs=[],this._propagationDecisionMap=new h6(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){return}disable(){super.disable(),this._channelSubs.forEach((Z)=>Z.unsubscribe()),this._channelSubs=[]}enable(){if(super.enable(),this._channelSubs=this._channelSubs||[],this._channelSubs.length>0)return;this._subscribeToChannel("undici:request:create",this._onRequestCreated.bind(this)),this._subscribeToChannel("undici:request:headers",this._onResponseHeaders.bind(this))}_onRequestCreated({request:Z}){let J=this.getConfig();if(J.enabled===!1)return;let $=this._shouldIgnoreOutgoingRequest(Z);if(this._ignoreOutgoingRequestsMap.set(Z,$),$)return;if(J.tracePropagation!==!1)fh(Z,this._propagationDecisionMap)}_onResponseHeaders({request:Z,response:J}){let Q=this.getConfig();if(Q.enabled===!1)return;let Y=Q.breadcrumbs,X=typeof Y>"u"?!0:Y,W=this._ignoreOutgoingRequestsMap.get(Z);if(X&&!W)Eh(Z,J)}_subscribeToChannel(Z,J){let Q=YZ>18||YZ===18&&V4>=19,$;if(Q)V8.subscribe?.(Z,J),$=()=>V8.unsubscribe?.(Z,J);else{let Y=V8.channel(Z);Y.subscribe(J),$=()=>Y.unsubscribe(J)}this._channelSubs.push({name:Z,unsubscribe:$})}_shouldIgnoreOutgoingRequest(Z){if(hh.isTracingSuppressed(yh.context.active()))return!0;let J=D$(Z.origin,Z.path),Q=this.getConfig().ignoreOutgoingRequests;if(typeof Q!=="function"||!J)return!1;return Q(J)}}var Pb=R(ih(),1);var p=R(s(),1);var L6=R(C(),1),I=R(C(),1),X6=R(Q0(),1),oZ=R(Sz(),1),mz="sentry.parentIsRemote",C8="sentry.graphql.operation";function uz(Z){if("parentSpanId"in Z)return Z.parentSpanId;else if("parentSpanContext"in Z)return Z.parentSpanContext?.spanId;return}function lz(Z){let J=Z;return!!J.attributes&&typeof J.attributes==="object"}function cj0(Z){return typeof Z.kind==="number"}function mj0(Z){return!!Z.status}function iv(Z){return!!Z.name}function uj0(Z){if(!lz(Z))return{};let J=Z.attributes[p.ATTR_URL_FULL]||Z.attributes[p.SEMATTRS_HTTP_URL],Q={url:J,"http.method":Z.attributes[p.ATTR_HTTP_REQUEST_METHOD]||Z.attributes[p.SEMATTRS_HTTP_METHOD]};if(!Q["http.method"]&&Q.url)Q["http.method"]="GET";try{if(typeof J==="string"){let $=yZ(J);if(Q.url=hZ($),$.search)Q["http.query"]=$.search;if($.hash)Q["http.fragment"]=$.hash}}catch{}return Q}function lj0(Z){if(cj0(Z))return Z.kind;return I.SpanKind.INTERNAL}var _z="sentry-trace",vz="baggage",pz="sentry.dsc",iz="sentry.sampled_not_recording",ov="sentry.url",pj0="sentry.sample_rand",ij0="sentry.sample_rate",oz=I.createContextKey("sentry_scopes"),bz=I.createContextKey("sentry_fork_isolation_scope"),xz=I.createContextKey("sentry_fork_set_scope"),gz=I.createContextKey("sentry_fork_set_isolation_scope"),nv="_scopeContext";function P8(Z){return Z.getValue(oz)}function av(Z,J){return Z.setValue(oz,J)}function oj0(Z,J){M0(Z,nv,J)}function C4(Z){return Z[nv]}function O8(Z){let{traceFlags:J,traceState:Q}=Z,$=Q?Q.get(iz)==="1":!1;if(J===I.TraceFlags.SAMPLED)return!0;if($)return!1;let Y=Q?Q.get(pz):void 0,X=Y?s9(Y):void 0;if(X?.sampled==="true")return!0;if(X?.sampled==="false")return!1;return}function sv(Z,J,Q){let $=J[p.ATTR_HTTP_REQUEST_METHOD]||J[p.SEMATTRS_HTTP_METHOD];if($)return aj0({attributes:J,name:Z,kind:Q},$);let Y=J[p.ATTR_DB_SYSTEM_NAME]||J[p.SEMATTRS_DB_SYSTEM],X=typeof J[b]==="string"&&J[b].startsWith("cache.");if(Y&&!X)return nj0({attributes:J,name:Z});let W=J[B0]==="custom"?"custom":"route";if(J[p.SEMATTRS_RPC_SERVICE])return{...O4(Z,J,"route"),op:"rpc"};if(J[p.SEMATTRS_MESSAGING_SYSTEM])return{...O4(Z,J,W),op:"message"};let G=J[p.SEMATTRS_FAAS_TRIGGER];if(G)return{...O4(Z,J,W),op:G.toString()};return{op:void 0,description:Z,source:"custom"}}function rv(Z){let J=lz(Z)?Z.attributes:{},Q=iv(Z)?Z.name:"",$=lj0(Z);return sv(Q,J,$)}function nj0({attributes:Z,name:J}){let Q=Z[i6];if(typeof Q==="string")return{op:"db",description:Q,source:Z[B0]||"custom"};if(Z[B0]==="custom")return{op:"db",description:J,source:"custom"};let $=Z[p.SEMATTRS_DB_STATEMENT];return{op:"db",description:$?$.toString():J,source:"task"}}function aj0({name:Z,kind:J,attributes:Q},$){let Y=["http"];switch(J){case I.SpanKind.CLIENT:Y.push("client");break;case I.SpanKind.SERVER:Y.push("server");break}if(Q["sentry.http.prefetch"])Y.push("prefetch");let{urlPath:X,url:W,query:K,fragment:z,hasRoute:G}=rj0(Q,J);if(!X)return{...O4(Z,Q),op:Y.join(".")};let H=Q[C8],B=`${$} ${X}`,V=H?`${B} (${sj0(H)})`:B,F=G||X==="/"?"route":"url",D={};if(W)D.url=W;if(K)D["http.query"]=K;if(z)D["http.fragment"]=z;let U=J===I.SpanKind.CLIENT||J===I.SpanKind.SERVER,L=!`${Q[_]||"manual"}`.startsWith("auto"),O=Q[B0]==="custom",M=Q[i6],S=!O&&M==null&&(U||!L),{description:T,source:n}=S?{description:V,source:F}:O4(Z,Q);return{op:Y.join("."),description:T,source:n,data:D}}function sj0(Z){if(Array.isArray(Z)){let J=Z.slice().sort();if(J.length<=5)return J.join(", ");else return`${J.slice(0,5).join(", ")}, +${J.length-5}`}return`${Z}`}function rj0(Z,J){let Q=Z[p.SEMATTRS_HTTP_TARGET],$=Z[p.SEMATTRS_HTTP_URL]||Z[p.ATTR_URL_FULL],Y=Z[p.ATTR_HTTP_ROUTE],X=typeof $==="string"?yZ($):void 0,W=X?hZ(X):void 0,K=X?.search||void 0,z=X?.hash||void 0;if(typeof Y==="string")return{urlPath:Y,url:W,query:K,fragment:z,hasRoute:!0};if(J===I.SpanKind.SERVER&&typeof Q==="string")return{urlPath:e9(Q),url:W,query:K,fragment:z,hasRoute:!1};if(X)return{urlPath:W,url:W,query:K,fragment:z,hasRoute:!1};if(typeof Q==="string")return{urlPath:e9(Q),url:W,query:K,fragment:z,hasRoute:!1};return{urlPath:void 0,url:W,query:K,fragment:z,hasRoute:!1}}function O4(Z,J,Q="custom"){let $=J[B0]||Q,Y=J[i6];if(Y&&typeof Y==="string")return{description:Y,source:$};return{description:Z,source:$}}function tv(Z){Z.on("createDsc",(J,Q)=>{if(!Q)return;let X=h(Q).data[B0],{description:W}=iv(Q)?rv(Q):{description:void 0};if(X!=="url"&&W)J.transaction=W;if(C0()){let K=O8(Q.spanContext());J.sampled=K==null?void 0:String(K)}})}function ev(){return I.trace.getActiveSpan()}var nZ=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;function Zb({dsc:Z,sampled:J}){let Q=Z?N7(Z):void 0,$=new X6.TraceState,Y=Q?$.set(pz,Q):$;return J===!1?Y.set(iz,"1"):Y}var Jb=new Set;function Qb(){return Array.from(Jb)}function y$(Z){Jb.add(Z)}class nz extends X6.W3CBaggagePropagator{constructor(){super();y$("SentryPropagator"),this._urlMatchesTargetsMap=new h6(100)}inject(Z,J,Q){if(X6.isTracingSuppressed(Z)){nZ&&q.log("[Tracing] Not injecting trace data for url because tracing is suppressed.");return}let $=I.trace.getSpan(Z),Y=$&&Zq0($),{tracePropagationTargets:X,propagateTraceparent:W}=f()?.getOptions()||{};if(!m7(Y,X,this._urlMatchesTargetsMap)){nZ&&q.log("[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:",Y);return}let K=ej0(J),z=I.propagation.getBaggage(Z)||I.propagation.createBaggage({}),{dynamicSamplingContext:G,traceId:H,spanId:B,sampled:V}=$b(Z);if(K){let F=T7(K);if(F)Object.entries(F).forEach(([D,U])=>{z=z.setEntry(D,{value:U})})}if(G)z=Object.entries(G).reduce((F,[D,U])=>{if(U)return F.setEntry(`${x1}${D}`,{value:U});return F},z);if(H&&H!==I.INVALID_TRACEID){if(Q.set(J,_z,NZ(H,B,V)),W)Q.set(J,"traceparent",TZ(H,B,V))}super.inject(I.propagation.setBaggage(Z,z),J,Q)}extract(Z,J,Q){let $=Q.get(J,_z),Y=Q.get(J,vz),X=$?Array.isArray($)?$[0]:$:void 0;return Xb(Yb(Z,{sentryTrace:X,baggage:Y}))}fields(){return[_z,vz,"traceparent"]}}function $b(Z,J={}){let Q=I.trace.getSpan(Z);if(Q?.spanContext().isRemote){let K=Q.spanContext();return{dynamicSamplingContext:P0(Q),traceId:K.traceId,spanId:void 0,sampled:O8(K)}}if(Q){let K=Q.spanContext();return{dynamicSamplingContext:P0(Q),traceId:K.traceId,spanId:K.spanId,sampled:O8(K)}}let $=J.scope||P8(Z)?.scope||t(),Y=J.client||f(),X=$.getPropagationContext();return{dynamicSamplingContext:Y?f9(Y,$):void 0,traceId:X.traceId,spanId:X.propagationSpanId,sampled:X.sampled}}function Yb(Z,{sentryTrace:J,baggage:Q}){let $=C5(J,Q),{traceId:Y,parentSpanId:X,sampled:W,dsc:K}=$,z=f(),G=s9(Q);if(!X||z&&!IW(z,G?.org_id))return Z;let H=Jq0({traceId:Y,spanId:X,sampled:W,dsc:K});return I.trace.setSpanContext(Z,H)}function tj0(Z,J,Q){let $=Xb(Yb(Z,J));return I.context.with($,Q)}function Xb(Z){let J=P8(Z),Q={scope:J?J.scope:t().clone(),isolationScope:J?J.isolationScope:l()};return av(Z,Q)}function ej0(Z){try{let J=Z[vz];return Array.isArray(J)?J.join(","):J}catch{return}}function Zq0(Z){let J=h(Z).data,Q=J[p.SEMATTRS_HTTP_URL]||J[p.ATTR_URL_FULL];if(typeof Q==="string")return Q;let $=Z.spanContext().traceState?.get(ov);if($)return $;return}function Jq0({spanId:Z,traceId:J,sampled:Q,dsc:$}){let Y=Zb({dsc:$,sampled:Q});return{traceId:J,spanId:Z,isRemote:!0,traceFlags:Q?I.TraceFlags.SAMPLED:I.TraceFlags.NONE,traceState:Y}}function Wb(Z,J,Q){let $=zb(),{name:Y,parentSpan:X}=Z;return Vb(X)(()=>{let K=Bb(Z.scope,Z.forceTransaction),G=Z.onlyIfParent&&!I.trace.getSpan(K)?X6.suppressTracing(K):K,H=Gb(Z);if(!C0()){let B=X6.isTracingSuppressed(G)?G:X6.suppressTracing(G);return I.context.with(B,()=>{return $.startActiveSpan(Y,H,B,(V)=>{return I.context.with(K,()=>{return w9(()=>J(V),()=>{if(h(V).status===void 0)V.setStatus({code:I.SpanStatusCode.ERROR})},Q?()=>V.end():void 0)})})})}return $.startActiveSpan(Y,H,G,(B)=>{return w9(()=>J(B),()=>{if(h(B).status===void 0)B.setStatus({code:I.SpanStatusCode.ERROR})},Q?()=>B.end():void 0)})})}function Qq0(Z,J){return Wb(Z,J,!0)}function $q0(Z,J){return Wb(Z,(Q)=>J(Q,()=>Q.end()),!1)}function Yq0(Z){let J=zb(),{name:Q,parentSpan:$}=Z;return Vb($)(()=>{let X=Bb(Z.scope,Z.forceTransaction),K=Z.onlyIfParent&&!I.trace.getSpan(X)?X6.suppressTracing(X):X,z=Gb(Z);if(!C0())K=X6.isTracingSuppressed(K)?K:X6.suppressTracing(K);return J.startSpan(Q,z,K)})}function Kb(Z,J){let Q=Z?I.trace.setSpan(I.context.active(),Z):I.trace.deleteSpan(I.context.active());return I.context.with(Q,()=>J(t()))}function zb(){return f()?.tracer||I.trace.getTracer("@sentry/opentelemetry",a)}function Gb(Z){let{startTime:J,attributes:Q,kind:$,op:Y,links:X}=Z,W=typeof J==="number"?Xq0(J):J;return{attributes:Y?{[b]:Y,...Q}:Q,kind:$,links:X,startTime:W}}function Xq0(Z){return Z<9999999999?Z*1000:Z}function Bb(Z,J){let Q=Wq0(Z),$=I.trace.getSpan(Q);if(!$)return Q;if(!J)return Q;let Y=I.trace.deleteSpan(Q),{spanId:X,traceId:W}=$.spanContext(),K=O8($.spanContext()),z=H0($),G=P0(z),H=Zb({dsc:G,sampled:K}),B={traceId:W,spanId:X,isRemote:!0,traceFlags:K?I.TraceFlags.SAMPLED:I.TraceFlags.NONE,traceState:H};return I.trace.setSpanContext(Y,B)}function Wq0(Z){if(Z){let J=C4(Z);if(J)return J}return I.context.active()}function Kq0(Z,J){return tj0(I.context.active(),Z,J)}function Hb(Z,J){let Q=C4(J),$=Q&&I.trace.getSpan(Q),Y=$?fZ($):I7(J);return[$?P0($):f9(Z,J),Y]}function Vb(Z){return Z!==void 0?(J)=>{return Kb(Z,J)}:(J)=>J()}function zq0(Z){let J=X6.suppressTracing(I.context.active());return I.context.with(J,Z)}function Fb(Z){Z.on("preprocessEvent",(J)=>{let Q=ev();if(!Q||J.type==="transaction")return;J.contexts={trace:fZ(Q),...J.contexts};let $=H0(Q);return J.sdkProcessingMetadata={dynamicSamplingContext:P0($),...J.sdkProcessingMetadata},J})}function Gq0({span:Z,scope:J,client:Q,propagateTraceparent:$}={}){let Y=(J&&C4(J))??L6.context.active();if(Z){let{scope:H}=V9(Z);Y=H&&C4(H)||L6.trace.setSpan(L6.context.active(),Z)}let{traceId:X,spanId:W,sampled:K,dynamicSamplingContext:z}=$b(Y,{scope:J,client:Q}),G={"sentry-trace":NZ(X,W,K),baggage:N7(z)};if($)G.traceparent=TZ(X,W,K);return G}function wb(){function Z(){let K=L6.context.active(),z=P8(K);if(z)return z;return{scope:h1(),isolationScope:R6()}}function J(K){let z=L6.context.active();return L6.context.with(z,()=>{return K(X())})}function Q(K,z){let G=C4(K)||L6.context.active();return L6.context.with(G.setValue(xz,K),()=>{return z(K)})}function $(K){let z=L6.context.active();return L6.context.with(z.setValue(bz,!0),()=>{return K(W())})}function Y(K,z){let G=L6.context.active();return L6.context.with(G.setValue(gz,K),()=>{return z(W())})}function X(){return Z().scope}function W(){return Z().isolationScope}qW({withScope:J,withSetScope:Q,withSetIsolationScope:Y,withIsolationScope:$,getCurrentScope:X,getIsolationScope:W,startSpan:Qq0,startSpanManual:$q0,startInactiveSpan:Yq0,getActiveSpan:ev,suppressTracing:zq0,getTraceData:Gq0,continueTrace:Kq0,withActiveSpan:Kb})}function Db(Z){class J extends Z{constructor(...Q){super(...Q);y$("SentryContextManager")}with(Q,$,Y,...X){let W=P8(Q),K=W?.scope||t(),z=W?.isolationScope||l(),G=Q.getValue(bz)===!0,H=Q.getValue(xz),B=Q.getValue(gz),V=H||K.clone(),F=B||(G?z.clone():z),j=av(Q,{scope:V,isolationScope:F}).deleteValue(bz).deleteValue(xz).deleteValue(gz);return oj0(V,j),super.with(j,$,Y,...X)}getAsyncLocalStorageLookup(){return{asyncLocalStorage:this._asyncLocalStorage,contextSymbol:oz}}}return J}function Bq0(Z){let J=new Map;for(let Q of Z)Hq0(J,Q);return Array.from(J,function([Q,$]){return $})}function Ub(Z){return Z.attributes[mz]!==!0?uz(Z):void 0}function Hq0(Z,J){let Q=J.spanContext().spanId,$=Ub(J);if(!$){dz(Z,{id:Q,span:J,children:[]});return}let Y=Vq0(Z,$),X=dz(Z,{id:Q,span:J,parentNode:Y,children:[]});Y.children.push(X)}function Vq0(Z,J){let Q=Z.get(J);if(Q)return Q;return dz(Z,{id:J,children:[]})}function dz(Z,J){let Q=Z.get(J.id);if(Q?.span)return Q;if(Q&&!Q.span)return Q.span=J.span,Q.parentNode=J.parentNode,Q;return Z.set(J.id,J),J}var jb={"1":"cancelled","2":"unknown_error","3":"invalid_argument","4":"deadline_exceeded","5":"not_found","6":"already_exists","7":"permission_denied","8":"resource_exhausted","9":"failed_precondition","10":"aborted","11":"out_of_range","12":"unimplemented","13":"internal_error","14":"unavailable","15":"data_loss","16":"unauthenticated"},Fq0=(Z)=>{return Object.values(jb).includes(Z)};function qb(Z){let J=lz(Z)?Z.attributes:{},Q=mj0(Z)?Z.status:void 0;if(Q){if(Q.code===I.SpanStatusCode.OK)return{code:f1};else if(Q.code===I.SpanStatusCode.ERROR){if(typeof Q.message>"u"){let Y=uv(J);if(Y)return Y}if(Q.message&&Fq0(Q.message))return{code:i,message:Q.message};else return{code:i,message:"internal_error"}}}let $=uv(J);if($)return $;if(Q?.code===I.SpanStatusCode.UNSET)return{code:f1};else return{code:i,message:"unknown_error"}}function uv(Z){let J=Z[p.ATTR_HTTP_RESPONSE_STATUS_CODE]||Z[p.SEMATTRS_HTTP_STATUS_CODE],Q=Z[p.SEMATTRS_RPC_GRPC_STATUS_CODE],$=typeof J==="number"?J:typeof J==="string"?parseInt(J):void 0;if(typeof $==="number")return N9($);if(typeof Q==="string")return{code:i,message:jb[Q]||"unknown_error"};return}var lv=1000,pv=300;class Lb{constructor(Z){this._finishedSpanBucketSize=Z?.timeout||pv,this._finishedSpanBuckets=Array(this._finishedSpanBucketSize).fill(void 0),this._lastCleanupTimestampInS=Math.floor(l6()/1000),this._spansToBucketEntry=new WeakMap,this._sentSpans=new Map,this._debouncedFlush=GK(this.flush.bind(this),1,{maxWait:100})}export(Z){let J=Math.floor(l6()/1000);if(this._lastCleanupTimestampInS!==J){let X=0;if(this._finishedSpanBuckets.forEach((W,K)=>{if(W&&W.timestampInS<=J-this._finishedSpanBucketSize)X+=W.spans.size,this._finishedSpanBuckets[K]=void 0}),X>0)nZ&&q.log(`SpanExporter dropped ${X} spans because they were pending for more than ${this._finishedSpanBucketSize} seconds.`);this._lastCleanupTimestampInS=J}let Q=J%this._finishedSpanBucketSize,$=this._finishedSpanBuckets[Q]||{timestampInS:J,spans:new Set};this._finishedSpanBuckets[Q]=$,$.spans.add(Z),this._spansToBucketEntry.set(Z,$);let Y=Ub(Z);if(!Y||this._sentSpans.has(Y))this._debouncedFlush()}flush(){let Z=this._finishedSpanBuckets.flatMap((X)=>X?Array.from(X.spans):[]);this._flushSentSpanCache();let J=this._maybeSend(Z),Q=J.size,$=Z.length-Q;nZ&&q.log(`SpanExporter exported ${Q} spans, ${$} spans are waiting for their parent spans to finish`);let Y=l6()+pv*1000;for(let X of J){this._sentSpans.set(X.spanContext().spanId,Y);let W=this._spansToBucketEntry.get(X);if(W)W.spans.delete(X)}this._debouncedFlush.cancel()}clear(){this._finishedSpanBuckets=this._finishedSpanBuckets.fill(void 0),this._sentSpans.clear(),this._debouncedFlush.cancel()}_maybeSend(Z){let J=Bq0(Z),Q=new Set,$=this._getCompletedRootNodes(J);for(let Y of $){let X=Y.span;Q.add(X);let W=Dq0(X);if(Y.parentNode&&this._sentSpans.has(Y.parentNode.id)){let G=W.contexts?.trace?.data;if(G)G["sentry.parent_span_already_sent"]=!0}let K=W.spans||[];for(let G of Y.children)cz(G,K,Q);W.spans=K.length>lv?K.sort((G,H)=>G.start_timestamp-H.start_timestamp).slice(0,lv):K;let z=h7(X.events);if(z)W.measurements=z;x5(W)}return Q}_flushSentSpanCache(){let Z=l6();for(let[J,Q]of this._sentSpans.entries())if(Q<=Z)this._sentSpans.delete(J)}_nodeIsCompletedRootNodeOrHasSentParent(Z){return!!Z.span&&(!Z.parentNode||this._sentSpans.has(Z.parentNode.id))}_getCompletedRootNodes(Z){return Z.filter((J)=>this._nodeIsCompletedRootNodeOrHasSentParent(J))}}function wq0(Z){let J=Z.attributes,Q=J[_],$=J[b],Y=J[B0];return{origin:Q,op:$,source:Y}}function Dq0(Z){let{op:J,description:Q,data:$,origin:Y="manual",source:X}=Ob(Z),W=V9(Z),K=Z.attributes[p6],z={[B0]:X,[p6]:K,[b]:J,[_]:Y,...$,...Cb(Z.attributes)},{links:G}=Z,{traceId:H,spanId:B}=Z.spanContext(),V=uz(Z),F=qb(Z),D={parent_span_id:V,span_id:B,trace_id:H,data:z,origin:Y,op:J,status:E7(F),links:f7(G)},U=z[p.ATTR_HTTP_RESPONSE_STATUS_CODE],j=typeof U==="number"?{response:{status_code:U}}:void 0;return{contexts:{trace:D,otel:{resource:Z.resource.attributes},...j},spans:[],start_timestamp:D6(Z.startTime),timestamp:D6(Z.endTime),transaction:Q,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:W.scope,capturedSpanIsolationScope:W.isolationScope,sampleRate:K,dynamicSamplingContext:P0(Z)},...X&&{transaction_info:{source:X}}}}function cz(Z,J,Q){let $=Z.span;if($)Q.add($);if(!$){Z.children.forEach((M)=>{cz(M,J,Q)});return}let X=$.spanContext().spanId,W=$.spanContext().traceId,K=uz($),{attributes:z,startTime:G,endTime:H,links:B}=$,{op:V,description:F,data:D,origin:U="manual"}=Ob($),j={[_]:U,[b]:V,...Cb(z),...D},L=qb($),O={span_id:X,trace_id:W,data:j,description:F,parent_span_id:K,start_timestamp:D6(G),timestamp:D6(H)||void 0,status:E7(L),op:V,origin:U,measurements:h7($.events),links:f7(B)};J.push(O),Z.children.forEach((M)=>{cz(M,J,Q)})}function Ob(Z){let{op:J,source:Q,origin:$}=wq0(Z),{op:Y,description:X,source:W,data:K}=rv(Z),z=J||Y,G=Q||W,H={...K,...Uq0(Z)};return{op:z,description:X,source:G,origin:$,data:H}}function Cb(Z){let J={...Z};return delete J[p6],delete J[mz],delete J[i6],J}function Uq0(Z){let J=Z.attributes,Q={};if(Z.kind!==I.SpanKind.INTERNAL)Q["otel.kind"]=I.SpanKind[Z.kind];let $=J[p.SEMATTRS_HTTP_STATUS_CODE];if($)Q[p.ATTR_HTTP_RESPONSE_STATUS_CODE]=$;let Y=uj0(Z);if(Y.url)Q.url=Y.url;if(Y["http.query"])Q["http.query"]=Y["http.query"].slice(1);if(Y["http.fragment"])Q["http.fragment"]=Y["http.fragment"].slice(1);return Q}function jq0(Z,J){let Q=I.trace.getSpan(J),$=P8(J);if(Q&&!Q.spanContext().isRemote)g1(Q,Z);if(Q?.spanContext().isRemote)Z.setAttribute(mz,!0);if(J===I.ROOT_CONTEXT)$={scope:h1(),isolationScope:R6()};if($)j5(Z,$.scope,$.isolationScope);A5(Z),f()?.emit("spanStart",Z)}function qq0(Z){I5(Z),f()?.emit("spanEnd",Z)}class az{constructor(Z){y$("SentrySpanProcessor"),this._exporter=new Lb(Z)}async forceFlush(){this._exporter.flush()}async shutdown(){this._exporter.clear()}onStart(Z,J){jq0(Z,J)}onEnd(Z){qq0(Z),this._exporter.export(Z)}}class sz{constructor(Z){this._client=Z,y$("SentrySampler")}shouldSample(Z,J,Q,$,Y,X){let W=this._client.getOptions(),K=Cq0(Z),z=K?.spanContext();if(!C0(W))return L8({decision:void 0,context:Z,spanAttributes:Y});let G=Y[p.SEMATTRS_HTTP_METHOD]||Y[p.ATTR_HTTP_REQUEST_METHOD];if($===I.SpanKind.CLIENT&&G&&(!K||z?.isRemote))return L8({decision:void 0,context:Z,spanAttributes:Y});let H=K?Lq0(K,J,Q):void 0;if(!(!K||z?.isRemote))return L8({decision:H?oZ.SamplingDecision.RECORD_AND_SAMPLED:oZ.SamplingDecision.NOT_RECORD,context:Z,spanAttributes:Y});let{description:V,data:F,op:D}=sv(Q,Y,$),U={...F,...Y};if(D)U[b]=D;let j={decision:!0};if(this._client.emit("beforeSampling",{spanAttributes:U,spanName:V,parentSampled:H,parentContext:z},j),!j.decision)return L8({decision:void 0,context:Z,spanAttributes:Y});let{isolationScope:L}=P8(Z)??{},O=z?.traceState?z.traceState.get(pz):void 0,M=O?s9(O):void 0,S=A6(M?.sample_rand)??x0(),[T,n,r]=N5(W,{name:V,attributes:U,normalizedRequest:L?.getScopeData().sdkProcessingMetadata.normalizedRequest,parentSampled:H,parentSampleRate:A6(M?.sample_rate)},S),r0=`${G}`.toUpperCase();if(r0==="OPTIONS"||r0==="HEAD")return nZ&&q.log(`[Tracing] Not sampling span because HTTP method is '${r0}' for ${Q}`),L8({decision:oZ.SamplingDecision.NOT_RECORD,context:Z,spanAttributes:Y,sampleRand:S,downstreamTraceSampleRate:0});if(!T&&H===void 0)nZ&&q.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),this._client.recordDroppedEvent("sample_rate","transaction");return{...L8({decision:T?oZ.SamplingDecision.RECORD_AND_SAMPLED:oZ.SamplingDecision.NOT_RECORD,context:Z,spanAttributes:Y,sampleRand:S,downstreamTraceSampleRate:r?n:void 0}),attributes:{[p6]:r?n:void 0}}}toString(){return"SentrySampler"}}function Lq0(Z,J,Q){let $=Z.spanContext();if(I.isSpanContextValid($)&&$.traceId===J){if($.isRemote){let X=O8(Z.spanContext());return nZ&&q.log(`[Tracing] Inheriting remote parent's sampled decision for ${Q}: ${X}`),X}let Y=O8($);return nZ&&q.log(`[Tracing] Inheriting parent's sampled decision for ${Q}: ${Y}`),Y}return}function L8({decision:Z,context:J,spanAttributes:Q,sampleRand:$,downstreamTraceSampleRate:Y}){let X=Oq0(J,Q);if(Y!==void 0)X=X.set(ij0,`${Y}`);if($!==void 0)X=X.set(pj0,`${$}`);if(Z==null)return{decision:oZ.SamplingDecision.NOT_RECORD,traceState:X};if(Z===oZ.SamplingDecision.NOT_RECORD)return{decision:Z,traceState:X.set(iz,"1")};return{decision:Z,traceState:X}}function Oq0(Z,J){let Y=I.trace.getSpan(Z)?.spanContext()?.traceState||new X6.TraceState,X=J[p.SEMATTRS_HTTP_URL]||J[p.ATTR_URL_FULL];if(X&&typeof X==="string")Y=Y.set(ov,X);return Y}function Cq0(Z){let J=I.trace.getSpan(Z);return J&&I.isSpanContextValid(J.spanContext())?J:void 0}var h$=Db(Pb.AsyncLocalStorageContextManager);var P4=R(C(),1);function rz(){P4.diag.disable(),P4.diag.setLogger({error:q.error,warn:q.warn,info:q.log,debug:q.log,verbose:q.log},P4.DiagLogLevel.DEBUG)}var tz=R(c(),1),k4={};function N(Z,J,Q){if(Q)return kq0(Z,J,Q);return Pq0(Z,J)}function Pq0(Z,J){return Object.assign((Q)=>{let $=k4[Z];if($){if(Q)$.setConfig(Q);return $}let Y=J(Q);return k4[Z]=Y,tz.registerInstrumentations({instrumentations:[Y]}),Y},{id:Z})}function kq0(Z,J,Q){return Object.assign(($)=>{let Y=Q($),X=k4[Z];if(X)return X.setConfig(Y),X;let W=new J(Y);return k4[Z]=W,tz.registerInstrumentations({instrumentations:[W]}),W},{id:Z})}function M4(Z){let J=!1,Q=[];if(!Mq0(Z))J=!0;else{let Y=Z._wrap;Z._wrap=(...X)=>{return J=!0,Q.forEach((W)=>W()),Q=[],Y(...X)}}return(Y)=>{if(J)Y();else Q.push(Y)}}function Mq0(Z){return typeof Z._wrap==="function"}import*as ez from"node:diagnostics_channel";var Rq0="ChildProcess",ZG=P((Z={})=>{return{name:Rq0,setup(){ez.channel("child_process").subscribe((J)=>{if(J&&typeof J==="object"&&"process"in J)Aq0(J.process,Z)}),ez.channel("worker_threads").subscribe((J)=>{if(J&&typeof J==="object"&&"worker"in J)Iq0(J.worker,Z)})}}});function Aq0(Z,J){let Q=!1,$;Z.on("spawn",()=>{if(Z.spawnfile==="/usr/bin/sw_vers"){Q=!0;return}if($={spawnfile:Z.spawnfile},J.includeChildProcessArgs)$.spawnargs=Z.spawnargs}).on("exit",(Y)=>{if(!Q){if(Q=!0,Y!==null&&Y!==0)T6({category:"child_process",message:`Child process exited with code '${Y}'`,level:Y===0?"info":"warning",data:$})}}).on("error",(Y)=>{if(!Q)Q=!0,T6({category:"child_process",message:`Child process errored with '${Y.message}'`,level:"error",data:$})})}function Iq0(Z,J){let Q;Z.on("online",()=>{Q=Z.threadId}).on("error",($)=>{if(J.captureWorkerErrors!==!1)g($,{mechanism:{type:"auto.child_process.worker_thread",handled:!1,data:{threadId:String(Q)}}});else T6({category:"worker_thread",message:`Worker thread errored with '${$.message}'`,level:"error",data:{threadId:Q}})})}import{execFile as Nq0}from"node:child_process";import{readFile as Tq0,readdir as fq0}from"node:fs";import*as v0 from"node:os";import{join as Eq0}from"node:path";import{promisify as Mb}from"node:util";var yq0=Mb(Tq0),hq0=Mb(fq0),Sq0="Context",_q0=(Z={})=>{let J,Q={app:!0,os:!0,device:!0,culture:!0,cloudResource:!0,...Z};async function $(X){if(J===void 0)J=Y();let W=vq0(await J);return X.contexts={...X.contexts,app:{...W.app,...X.contexts?.app},os:{...W.os,...X.contexts?.os},device:{...W.device,...X.contexts?.device},culture:{...W.culture,...X.contexts?.culture},cloud_resource:{...W.cloud_resource,...X.contexts?.cloud_resource}},X}async function Y(){let X={};if(Q.os)X.os=await bq0();if(Q.app)X.app=gq0();if(Q.device)X.device=dq0(Q.device);if(Q.culture){let W=xq0();if(W)X.culture=W}if(Q.cloudResource)X.cloud_resource=iq0();return X}return{name:Sq0,processEvent(X){return $(X)}}},JG=P(_q0);function vq0(Z){if(Z.app?.app_memory)Z.app.app_memory=process.memoryUsage().rss;if(Z.app?.free_memory&&typeof process.availableMemory==="function"){let J=process.availableMemory?.();if(J!=null)Z.app.free_memory=J}if(Z.device?.free_memory)Z.device.free_memory=v0.freemem();return Z}async function bq0(){let Z=v0.platform();switch(Z){case"darwin":return lq0();case"linux":return pq0();default:return{name:cq0[Z]||Z,version:v0.release()}}}function xq0(){try{if(typeof process.versions.icu!=="string")return;let Z=new Date(900000000);if(new Intl.DateTimeFormat("es",{month:"long"}).format(Z)==="enero"){let Q=Intl.DateTimeFormat().resolvedOptions();return{locale:Q.locale,timezone:Q.timeZone}}}catch{}return}function gq0(){let Z=process.memoryUsage().rss,Q={app_start_time:new Date(Date.now()-process.uptime()*1000).toISOString(),app_memory:Z};if(typeof process.availableMemory==="function"){let $=process.availableMemory?.();if($!=null)Q.free_memory=$}return Q}function dq0(Z){let J={},Q;try{Q=v0.uptime()}catch{}if(typeof Q==="number")J.boot_time=new Date(Date.now()-Q*1000).toISOString();if(J.arch=v0.arch(),Z===!0||Z.memory)J.memory_size=v0.totalmem(),J.free_memory=v0.freemem();if(Z===!0||Z.cpu){let $=v0.cpus(),Y=$?.[0];if(Y)J.processor_count=$.length,J.cpu_description=Y.model,J.processor_frequency=Y.speed}return J}var cq0={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows",ohos:"OpenHarmony",android:"Android"},mq0=[{name:"fedora-release",distros:["Fedora"]},{name:"redhat-release",distros:["Red Hat Linux","Centos"]},{name:"redhat_version",distros:["Red Hat Linux"]},{name:"SuSE-release",distros:["SUSE Linux"]},{name:"lsb-release",distros:["Ubuntu Linux","Arch Linux"]},{name:"debian_version",distros:["Debian"]},{name:"debian_release",distros:["Debian"]},{name:"arch-release",distros:["Arch Linux"]},{name:"gentoo-release",distros:["Gentoo Linux"]},{name:"novell-release",distros:["SUSE Linux"]},{name:"alpine-release",distros:["Alpine Linux"]}],uq0={alpine:(Z)=>Z,arch:(Z)=>_9(/distrib_release=(.*)/,Z),centos:(Z)=>_9(/release ([^ ]+)/,Z),debian:(Z)=>Z,fedora:(Z)=>_9(/release (..)/,Z),mint:(Z)=>_9(/distrib_release=(.*)/,Z),red:(Z)=>_9(/release ([^ ]+)/,Z),suse:(Z)=>_9(/VERSION = (.*)\n/,Z),ubuntu:(Z)=>_9(/distrib_release=(.*)/,Z)};function _9(Z,J){let Q=Z.exec(J);return Q?Q[1]:void 0}async function lq0(){let Z={kernel_version:v0.release(),name:"Mac OS X",version:`10.${Number(v0.release().split(".")[0])-4}`};try{let J=await new Promise((Q,$)=>{Nq0("/usr/bin/sw_vers",(Y,X)=>{if(Y){$(Y);return}Q(X)})});Z.name=_9(/^ProductName:\s+(.*)$/m,J),Z.version=_9(/^ProductVersion:\s+(.*)$/m,J),Z.build=_9(/^BuildVersion:\s+(.*)$/m,J)}catch{}return Z}function kb(Z){return Z.split(" ")[0].toLowerCase()}async function pq0(){let Z={kernel_version:v0.release(),name:"Linux"};try{let J=await hq0("/etc"),Q=mq0.find((K)=>J.includes(K.name));if(!Q)return Z;let $=Eq0("/etc",Q.name),Y=(await yq0($,{encoding:"utf-8"})).toLowerCase(),{distros:X}=Q;Z.name=X.find((K)=>Y.indexOf(kb(K))>=0)||X[0];let W=kb(Z.name);Z.version=uq0[W]?.(Y)}catch{}return Z}function iq0(){if(process.env.VERCEL)return{"cloud.provider":"vercel","cloud.region":process.env.VERCEL_REGION};else if(process.env.AWS_REGION)return{"cloud.provider":"aws","cloud.region":process.env.AWS_REGION,"cloud.platform":process.env.AWS_EXECUTION_ENV};else if(process.env.GCP_PROJECT)return{"cloud.provider":"gcp"};else if(process.env.ALIYUN_REGION_ID)return{"cloud.provider":"alibaba_cloud","cloud.region":process.env.ALIYUN_REGION_ID};else if(process.env.WEBSITE_SITE_NAME&&process.env.REGION_NAME)return{"cloud.provider":"azure","cloud.region":process.env.REGION_NAME};else if(process.env.IBM_CLOUD_REGION)return{"cloud.provider":"ibm_cloud","cloud.region":process.env.IBM_CLOUD_REGION};else if(process.env.TENCENTCLOUD_REGION)return{"cloud.provider":"tencent_cloud","cloud.region":process.env.TENCENTCLOUD_REGION,"cloud.account.id":process.env.TENCENTCLOUD_APPID,"cloud.availability_zone":process.env.TENCENTCLOUD_ZONE};else if(process.env.NETLIFY)return{"cloud.provider":"netlify"};else if(process.env.FLY_REGION)return{"cloud.provider":"fly.io","cloud.region":process.env.FLY_REGION};else if(process.env.DYNO)return{"cloud.provider":"heroku"};else return}import{createReadStream as oq0}from"node:fs";import{createInterface as nq0}from"node:readline";var QG=new h6(10),Ib=new h6(20),aq0=7,sq0="ContextLines",rq0=1000,tq0=1e4;function eq0(Z,J,Q){let $=Z.get(J);if($===void 0)return Z.set(J,Q),Q;return $}function ZL0(Z){if(Z.startsWith("node:"))return!0;if(Z.endsWith(".min.js"))return!0;if(Z.endsWith(".min.cjs"))return!0;if(Z.endsWith(".min.mjs"))return!0;if(Z.startsWith("data:"))return!0;return!1}function JL0(Z){if(Z.lineno!==void 0&&Z.lineno>tq0)return!0;if(Z.colno!==void 0&&Z.colno>rq0)return!0;return!1}function QL0(Z,J){let Q=QG.get(Z);if(Q===void 0)return!1;for(let $=J[0];$<=J[1];$++)if(Q[$]===void 0)return!1;return!0}function $L0(Z,J){if(!Z.length)return[];let Q=0,$=Z[0];if(typeof $!=="number")return[];let Y=Ab($,J),X=[];while(!0){if(Q===Z.length-1){X.push(Y);break}let W=Z[Q+1];if(typeof W!=="number")break;if(W<=Y[1])Y[1]=W+J;else X.push(Y),Y=Ab(W,J);Q++}return X}function YL0(Z,J,Q){return new Promise(($,Y)=>{let X=oq0(Z),W=nq0({input:X});function K(){X.destroy(),$()}let z=0,G=0,H=J[G];if(H===void 0){K();return}let B=H[0],V=H[1];function F(D){Ib.set(Z,1),m&&q.error(`Failed to read file: ${Z}. Error: ${D}`),W.close(),W.removeAllListeners(),K()}X.on("error",F),W.on("error",F),W.on("close",K),W.on("line",(D)=>{if(z++,z=V){if(G===J.length-1){W.close(),W.removeAllListeners();return}G++;let U=J[G];if(U===void 0){W.close(),W.removeAllListeners();return}B=U[0],V=U[1]}})})}async function XL0(Z,J){let Q={};if(J>0&&Z.exception?.values)for(let X of Z.exception.values){if(!X.stacktrace?.frames?.length)continue;for(let W=X.stacktrace.frames.length-1;W>=0;W--){let K=X.stacktrace.frames[W],z=K?.filename;if(!K||typeof z!=="string"||typeof K.lineno!=="number"||ZL0(z)||JL0(K))continue;if(!Q[z])Q[z]=[];Q[z].push(K.lineno)}}let $=Object.keys(Q);if($.length==0)return Z;let Y=[];for(let X of $){if(Ib.get(X))continue;let W=Q[X];if(!W)continue;W.sort((G,H)=>G-H);let K=$L0(W,J);if(K.every((G)=>QL0(X,G)))continue;let z=eq0(QG,X,{});Y.push(YL0(X,K,z))}if(await Promise.all(Y).catch(()=>{m&&q.log("Failed to read one or more source files and resolve context lines")}),J>0&&Z.exception?.values){for(let X of Z.exception.values)if(X.stacktrace?.frames&&X.stacktrace.frames.length>0)WL0(X.stacktrace.frames,J,QG)}return Z}function WL0(Z,J,Q){for(let $ of Z)if($.filename&&$.context_line===void 0&&typeof $.lineno==="number"){let Y=Q.get($.filename);if(Y===void 0)continue;KL0($.lineno,$,J,Y)}}function Rb(Z){delete Z.pre_context,delete Z.context_line,delete Z.post_context}function KL0(Z,J,Q,$){if(J.lineno===void 0||$===void 0){m&&q.error("Cannot resolve context for frame with no lineno or file contents");return}J.pre_context=[];for(let X=Nb(Z,Q);X{let J=Z.frameContextLines!==void 0?Z.frameContextLines:aq0;return{name:sq0,processEvent(Q){return XL0(Q,J)}}},$G=P(zL0);var fb="Http",GL0=N(`${fb}.sentry`,(Z)=>{return new H8(Z)}),Eb=P((Z={})=>{let J={sessions:Z.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:Z.sessionFlushingDelayMS,ignoreRequestBody:Z.ignoreIncomingRequestBody,maxRequestBodySize:Z.maxIncomingRequestBodySize},Q={ignoreIncomingRequests:Z.ignoreIncomingRequests,ignoreStaticAssets:Z.ignoreStaticAssets,ignoreStatusCodes:Z.dropSpansForIncomingRequestStatusCodes},$={breadcrumbs:Z.breadcrumbs,propagateTraceInOutgoingRequests:Z.tracePropagation??!0,ignoreOutgoingRequests:Z.ignoreOutgoingRequests},Y=z8(J),X=G8(Q),W=Z.spans??!1,K=Z.disableIncomingRequestSpans??!1,z=W&&!K;return{name:fb,setup(G){if(z)X.setup(G)},setupOnce(){Y.setupOnce(),GL0($)},processEvent(G){return X.processEvent(G)}}});import{Worker as BL0}from"node:worker_threads";var S$;async function _$(){if(S$===void 0)try{S$=!!(await import("node:inspector")).url()}catch{S$=!1}return S$}var R4="__SENTRY_ERROR_LOCAL_VARIABLES__";function hb(Z,J,Q){let $=0,Y=5,X=0;return setInterval(()=>{if(X===0){if($>Z){if(Y*=2,Q(Y),Y>86400)Y=86400;X=Y}}else if(X-=1,X===0)J();$=0},1000).unref(),()=>{$+=1}}function yb(Z){return Z!==void 0&&(Z.length===0||Z==="?"||Z==="")}function v$(Z,J){return Z===J||`Object.${Z}`===J||Z===`Object.${J}`||yb(Z)&&yb(J)}var HL0="LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQ2LjAgKGU1ZmRjOWQpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=";function Sb(...Z){q.log("[LocalVariables]",...Z)}var _b=P((Z={})=>{function J(X,W){let K=(X.stacktrace?.frames||[]).filter((z)=>z.function!=="new Promise");for(let z=0;z{W.terminate()}),W.once("error",(K)=>{Sb("Worker error",K)}),W.once("exit",(K)=>{Sb("Worker exit",K)}),W.unref()}return{name:"LocalVariablesAsync",async setup(X){if(!X.getOptions().includeLocalVariables)return;if(await _$()){q.warn("Local variables capture has been disabled because the debugger was already enabled");return}let K={...Z,debug:q.isEnabled()};$().then(()=>{try{Y(K)}catch(z){q.error("Failed to start worker",z)}},(z)=>{q.error("Failed to start inspector",z)})},processEvent(X,W){return Q(X,W)}}});function vb(Z){if(Z===void 0)return;return Z.slice(-10).reduce((J,Q)=>`${J},${Q.function},${Q.lineno},${Q.colno}`,"")}function VL0(Z,J){if(J===void 0)return;return vb(Z(J,1))}function bb(Z){let J=[],Q=!1;function $(W){if(J=[],Q)return;Q=!0,Z(W)}J.push($);function Y(W){J.push(W)}function X(W){let K=J.pop()||$;try{K(W)}catch{$(W)}}return{add:Y,next:X}}class YG{constructor(Z){this._session=Z}static async create(Z){if(Z)return Z;let J=await import("node:inspector");return new YG(new J.Session)}configureAndConnect(Z,J){this._session.connect(),this._session.on("Debugger.paused",(Q)=>{Z(Q,()=>{this._session.post("Debugger.resume")})}),this._session.post("Debugger.enable"),this._session.post("Debugger.setPauseOnExceptions",{state:J?"all":"uncaught"})}setPauseOnExceptions(Z){this._session.post("Debugger.setPauseOnExceptions",{state:Z?"all":"uncaught"})}getLocalVariables(Z,J){this._getProperties(Z,(Q)=>{let{add:$,next:Y}=bb(J);for(let X of Q)if(X.value?.objectId&&X.value.className==="Array"){let W=X.value.objectId;$((K)=>this._unrollArray(W,X.name,K,Y))}else if(X.value?.objectId&&X.value.className==="Object"){let W=X.value.objectId;$((K)=>this._unrollObject(W,X.name,K,Y))}else if(X.value)$((W)=>this._unrollOther(X,W,Y));Y({})})}_getProperties(Z,J){this._session.post("Runtime.getProperties",{objectId:Z,ownProperties:!0},(Q,$)=>{if(Q)J([]);else J($.result)})}_unrollArray(Z,J,Q,$){this._getProperties(Z,(Y)=>{Q[J]=Y.filter((X)=>X.name!=="length"&&!isNaN(parseInt(X.name,10))).sort((X,W)=>parseInt(X.name,10)-parseInt(W.name,10)).map((X)=>X.value?.value),$(Q)})}_unrollObject(Z,J,Q,$){this._getProperties(Z,(Y)=>{Q[J]=Y.map((X)=>[X.name,X.value?.value]).reduce((X,[W,K])=>{return X[W]=K,X},{}),$(Q)})}_unrollOther(Z,J,Q){if(Z.value){if("value"in Z.value)if(Z.value.value===void 0||Z.value.value===null)J[Z.name]=`<${Z.value.value}>`;else J[Z.name]=Z.value.value;else if("description"in Z.value&&Z.value.type!=="function")J[Z.name]=`<${Z.value.description}>`;else if(Z.value.type==="undefined")J[Z.name]=""}Q(J)}}var FL0="LocalVariables",wL0=(Z={},J)=>{let Q=new h6(20),$,Y=!1;function X(G){let H=vb(G.stacktrace?.frames);if(H===void 0)return;let B=Q.remove(H);if(B===void 0)return;let V=(G.stacktrace?.frames||[]).filter((F)=>F.function!=="new Promise");for(let F=0;F= v18.");return}if(await _$()){q.warn("Local variables capture has been disabled because the debugger was already enabled");return}try{let V=await YG.create(J),F=(U,{params:{reason:j,data:L,callFrames:O}},M)=>{if(j!=="exception"&&j!=="promiseRejection"){M();return}$?.();let S=VL0(U,L.description);if(S==null){M();return}let{add:T,next:n}=bb((r)=>{Q.set(S,r),M()});for(let r=0;ri0.type==="local"),MJ=H7.className==="global"||!H7.className?R9:`${H7.className}.${R9}`;if(V7?.object.objectId===void 0)T((i0)=>{i0[r]={function:MJ},n(i0)});else{let i0=V7.object.objectId;T((RJ)=>V.getLocalVariables(i0,(AJ)=>{RJ[r]={function:MJ,vars:AJ},n(RJ)}))}}n([])},D=Z.captureAllExceptions!==!1;if(V.configureAndConnect((U,j)=>F(H.stackParser,U,j),D),D){let U=Z.maxExceptionsPerSecond||50;$=hb(U,()=>{q.log("Local variables rate-limit lifted."),V.setPauseOnExceptions(!0)},(j)=>{q.log(`Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${j} seconds.`),V.setPauseOnExceptions(!1)})}Y=!0}catch(V){q.log("The `LocalVariables` integration failed to start.",V)}}return{name:FL0,setupOnce(){K=z()},async processEvent(G){if(await K,Y)return W(G);return G},_getCachedFramesCount(){return Q.size},_getFirstCachedFrame(){return Q.values()[0]}}},xb=P(wL0);var XG=(Z={})=>{return s6.major<19?xb(Z):_b(Z)};import{existsSync as DL0,readFileSync as ub}from"node:fs";import{dirname as UL0,join as lb}from"node:path";function A4(){try{return typeof db<"u"&&typeof P96<"u"}catch{return!1}}var gb;function cb(){if(A4())return!1;if(YZ>=21||YZ===20&&V4>=6||YZ===18&&V4>=19)return!0;if(!gb)gb=!0,O0(()=>{console.warn(`[Sentry] You are using Node.js v${process.versions.node} in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.`)});return!1}var WG,jL0="Modules",qL0=typeof __SENTRY_SERVER_MODULES__>"u"?{}:__SENTRY_SERVER_MODULES__,LL0=()=>{return{name:jL0,processEvent(Z){return Z.modules={...Z.modules,...mb()},Z},getModules:mb}},KG=LL0;function OL0(){try{return A.cache?Object.keys(A.cache):[]}catch{return[]}}function CL0(){return{...qL0,...ML0(),...A4()?PL0():{}}}function PL0(){let Z=A.main?.paths||[],J=OL0(),Q={},$=new Set;return J.forEach((Y)=>{let X=Y,W=()=>{let K=X;if(X=UL0(K),!X||K===X||$.has(K))return;if(Z.indexOf(X)<0)return W();let z=lb(K,"package.json");if($.add(K),!DL0(z))return W();try{let G=JSON.parse(ub(z,"utf8"));Q[G.name]=G.version}catch{}};W()}),Q}function mb(){if(!WG)WG=CL0();return WG}function kL0(){try{let Z=lb(process.cwd(),"package.json");return JSON.parse(ub(Z,"utf8"))}catch{return{}}}function ML0(){let Z=kL0();return{...Z.dependencies,...Z.devDependencies}}var RL0="NodeFetch",AL0=N(`${RL0}.sentry`,F8,(Z)=>{return Z}),IL0=(Z={})=>{return{name:"NodeFetch",setupOnce(){AL0(Z)}}},pb=P(IL0);import{isMainThread as TL0}from"worker_threads";var NL0=2000;function I4(Z){O0(()=>{console.error(Z)});let J=f();if(J===void 0){m&&q.warn("No NodeClient was defined, we are exiting the process now."),global.process.exit(1);return}let Q=J.getOptions(),$=Q?.shutdownTimeout&&Q.shutdownTimeout>0?Q.shutdownTimeout:NL0;J.close($).then((Y)=>{if(!Y)m&&q.warn("We reached the timeout for emptying the request buffer, still exiting now!");global.process.exit(1)},(Y)=>{m&&q.error(Y)})}var fL0="OnUncaughtException",zG=P((Z={})=>{let J={exitEvenIfOtherHandlersAreRegistered:!1,...Z};return{name:fL0,setup(Q){if(!TL0)return;global.process.on("uncaughtException",EL0(Q,J))}}});function EL0(Z,J){let $=!1,Y=!1,X=!1,W,K=Z.getOptions();return Object.assign((z)=>{let G=I4;if(J.onFatalError)G=J.onFatalError;else if(K.onFatalError)G=K.onFatalError;let B=global.process.listeners("uncaughtException").filter((F)=>{return F.name!=="domainUncaughtExceptionClear"&&F.tag!=="sentry_tracingErrorCallback"&&F._errorHandler!==!0}).length===0,V=J.exitEvenIfOtherHandlersAreRegistered||B;if(!$){if(W=z,$=!0,f()===Z)g(z,{originalException:z,captureContext:{level:"fatal"},mechanism:{handled:!1,type:"auto.node.onuncaughtexception"}});if(!X&&V)X=!0,G(z)}else if(V){if(X)m&&q.warn("uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown"),I4(z);else if(!Y)Y=!0,setTimeout(()=>{if(!X)X=!0,G(W,z)},2000)}},{_errorHandler:!0})}var yL0="OnUnhandledRejection",hL0=[{name:"AI_NoOutputGeneratedError"},{name:"AbortError"}],SL0=(Z={})=>{let J={mode:Z.mode??"warn",ignore:[...hL0,...Z.ignore??[]]};return{name:yL0,setup(Q){global.process.on("unhandledRejection",xL0(Q,J))}}},GG=P(SL0);function _L0(Z){if(typeof Z!=="object"||Z===null)return{name:"",message:String(Z??"")};let J=Z,Q=typeof J.name==="string"?J.name:"",$=typeof J.message==="string"?J.message:String(Z);return{name:Q,message:$}}function vL0(Z,J){let Q=Z.name===void 0||i9(J.name,Z.name,!0),$=Z.message===void 0||i9(J.message,Z.message);return Q&&$}function bL0(Z,J){let Q=_L0(J);return Z.some(($)=>vL0($,Q))}function xL0(Z,J){return function($,Y){if(f()!==Z)return;if(bL0(J.ignore??[],$))return;let X=J.mode==="strict"?"fatal":"error",W=$&&typeof $==="object"?$._sentry_active_span:void 0;(W?(z)=>S7(W,z):(z)=>z())(()=>{g($,{originalException:Y,captureContext:{extra:{unhandledPromiseRejection:!0},level:X},mechanism:{handled:!1,type:"auto.node.onunhandledrejection"}})}),gL0($,J.mode)}}function gL0(Z,J){let Q="This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:";if(J==="warn")O0(()=>{console.warn(Q),console.error(Z&&typeof Z==="object"&&"stack"in Z?Z.stack:Z)});else if(J==="strict")O0(()=>{console.warn(Q)}),I4(Z)}var dL0="ProcessSession",BG=P(()=>{return{name:dL0,setupOnce(){c5(),process.on("beforeExit",()=>{if(l().getSession()?.status!=="ok")u1()})}}});import*as ib from"node:http";var HG="Spotlight",cL0=(Z={})=>{let J={sidecarUrl:Z.sidecarUrl||"http://localhost:8969/stream"};return{name:HG,setup(Q){try{}catch{}mL0(Q,J)}}},VG=P(cL0);function mL0(Z,J){let Q=uL0(J.sidecarUrl);if(!Q)return;let $=0;Z.on("beforeEnvelope",(Y)=>{if($>3){q.warn("[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests");return}let X=f5(Y);_7(()=>{let W=ib.request({method:"POST",path:Q.pathname,hostname:Q.hostname,port:Q.port,headers:{"Content-Type":"application/x-sentry-envelope"}},(K)=>{if(K.statusCode&&K.statusCode>=200&&K.statusCode<400)$=0;K.on("data",()=>{}),K.on("end",()=>{}),K.setEncoding("utf8")});W.on("error",()=>{$++,q.warn("[Spotlight] Failed to send envelope to Spotlight Sidecar")}),W.write(X),W.end()})})}function uL0(Z){try{return new URL(`${Z}`)}catch{q.warn(`[Spotlight] Invalid sidecar URL: ${Z}`);return}}import*as ob from"node:util";var lL0="NodeSystemError";function pL0(Z){if(!(Z instanceof Error))return!1;if(!("errno"in Z)||typeof Z.errno!=="number")return!1;return ob.getSystemErrorMap().has(Z.errno)}var FG=P((Z={})=>{return{name:lL0,processEvent:(J,Q,$)=>{if(!pL0(Q.originalException))return J;let Y=Q.originalException,X={...Y};if(!$.getOptions().sendDefaultPii&&Z.includePaths!==!0)delete X.path,delete X.dest;J.contexts={...J.contexts,node_system_error:X};for(let W of J.exception?.values||[])if(W.value){if(Y.path&&W.value.includes(Y.path))W.value=W.value.replace(`'${Y.path}'`,"").trim();if(Y.dest&&W.value.includes(Y.dest))W.value=W.value.replace(`'${Y.dest}'`,"").trim()}return J}}});import*as oL0 from"node:http";import*as nL0 from"node:https";import{Readable as aL0}from"node:stream";import{createGzip as sL0}from"node:zlib";import*as KZ from"node:net";import*as UG from"node:tls";import*as wG from"node:http";var v9=Symbol("AgentBaseInternalState");class DG extends wG.Agent{constructor(Z){super(Z);this[v9]={}}isSecureEndpoint(Z){if(Z){if(typeof Z.secureEndpoint==="boolean")return Z.secureEndpoint;if(typeof Z.protocol==="string")return Z.protocol==="https:"}let{stack:J}=Error();if(typeof J!=="string")return!1;return J.split(` -`).some((Q)=>Q.indexOf("(https.js:")!==-1||Q.indexOf("node:https:")!==-1)}createSocket(Z,J,Q){let $={...J,secureEndpoint:this.isSecureEndpoint(J)};Promise.resolve().then(()=>this.connect(Z,$)).then((Y)=>{if(Y instanceof wG.Agent)return Y.addRequest(Z,$);this[v9].currentSocket=Y,super.createSocket(Z,J,Q)},Q)}createConnection(){let Z=this[v9].currentSocket;if(this[v9].currentSocket=void 0,!Z)throw Error("No socket was returned in the `connect()` function");return Z}get defaultPort(){return this[v9].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(Z){if(this[v9])this[v9].defaultPort=Z}get protocol(){return this[v9].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(Z){if(this[v9])this[v9].protocol=Z}}function b$(...Z){q.log("[https-proxy-agent:parse-proxy-response]",...Z)}function nb(Z){return new Promise((J,Q)=>{let $=0,Y=[];function X(){let H=Z.read();if(H)G(H);else Z.once("readable",X)}function W(){Z.removeListener("end",K),Z.removeListener("error",z),Z.removeListener("readable",X)}function K(){W(),b$("onend"),Q(Error("Proxy connection ended before receiving CONNECT response"))}function z(H){W(),b$("onerror %o",H),Q(H)}function G(H){Y.push(H),$+=H.length;let B=Buffer.concat(Y,$),V=B.indexOf(`\r +`),typeof K==="string"||K instanceof Uint8Array)J(K);else{let z;try{z=JSON.stringify(K)}catch{z=JSON.stringify(g1(K))}J(z)}}return typeof Q==="string"?Q:lg(Q)}function lg($){let Z=$.reduce((J,Y)=>J+Y.length,0),X=new Uint8Array(Z),Q=0;for(let J of $)X.set(J,Q),Q+=J.length;return X}function TJ($){return[{type:"span"},$]}function EJ($){let Z=typeof $.data==="string"?yJ($.data):$.data;return[{type:"attachment",length:Z.length,filename:$.filename,content_type:$.contentType,attachment_type:$.attachmentType},Z]}var u2={sessions:"session",event:"error",client_report:"internal",user_report:"default",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",raw_security:"security",log:"log_item",trace_metric:"metric"};function pg($){return $ in u2}function d5($){return pg($)?u2[$]:$}function D7($){if(!$?.sdk)return;let{name:Z,version:X}=$.sdk;return{name:Z,version:X}}function hJ($,Z,X,Q){let J=$.sdkProcessingMetadata?.dynamicSamplingContext;return{event_id:$.event_id,sent_at:new Date(P0()).toISOString(),...Z&&{sdk:Z},...!!X&&Q&&{dsn:s0(Q)},...J&&{trace:J}}}function ig($,Z){if(!Z)return $;let X=$.sdk||{};return $.sdk={...X,name:X.name||Z.name,version:X.version||Z.version,integrations:[...$.sdk?.integrations||[],...Z.integrations||[]],packages:[...$.sdk?.packages||[],...Z.packages||[]],settings:$.sdk?.settings||Z.settings?{...$.sdk?.settings,...Z.settings}:void 0},$}function c2($,Z,X,Q){let J=D7(X),Y={sent_at:new Date(P0()).toISOString(),...J&&{sdk:J},...!!Q&&Z&&{dsn:s0(Z)}},W="aggregates"in $?[{type:"sessions"},$]:[{type:"session"},$.toJSON()];return T0(Y,[W])}function l2($,Z,X,Q){let J=D7(X),Y=$.type&&$.type!=="replay_event"?$.type:"event";ig($,X?.sdk);let W=hJ($,J,Q,Z);return delete $.sdkProcessingMetadata,T0(W,[[{type:Y},$]])}function p2($,Z){function X(B){return!!B.trace_id&&!!B.public_key}let Q=j0($[0]),J=Z?.getDsn(),Y=Z?.getOptions().tunnel,W={sent_at:new Date(P0()).toISOString(),...X(Q)&&{trace:Q},...!!Y&&J&&{dsn:s0(J)}},{beforeSendSpan:K,ignoreSpans:z}=Z?.getOptions()||{},H=z?.length?$.filter((B)=>{let j=v(B);return!u1({description:j.description,op:j.op,attributes:j.data},z)}):$,G=$.length-H.length;if(G)Z?.recordDroppedEvent("before_send","span",G);let V=K?(B)=>{let j=v(B),U=!W$(K)?K(j):j;if(!U)return $8(),j;return U}:v,F=[];for(let B of H){let j=V(B);if(j)F.push(TJ(j))}return T0(W,F)}function Z8($){if(!$||$.length===0)return;let Z={};return $.forEach((X)=>{let Q=X.attributes||{},J=Q[KJ],Y=Q[zJ];if(typeof J==="string"&&typeof Y==="number")Z[X.name]={value:Y,unit:J}}),Z}var i2=1000;class r9{constructor($={}){if(this._traceId=$.traceId||N0(),this._spanId=$.spanId||d0(),this._startTime=$.startTimestamp||J1(),this._links=$.links,this._attributes={},this.setAttributes({[L]:"manual",[I]:$.op,...$.attributes}),this._name=$.name,$.parentSpanId)this._parentSpanId=$.parentSpanId;if("sampled"in $)this._sampled=$.sampled;if($.endTimestamp)this._endTime=$.endTimestamp;if(this._events=[],this._isStandaloneSpan=$.isStandalone,this._endTime)this._onSpanEnded()}addLink($){if(this._links)this._links.push($);else this._links=[$];return this}addLinks($){if(this._links)this._links.push(...$);else this._links=$;return this}recordException($,Z){}spanContext(){let{_spanId:$,_traceId:Z,_sampled:X}=this;return{spanId:$,traceId:Z,traceFlags:X?d9:v5}}setAttribute($,Z){if(Z===void 0)delete this._attributes[$];else this._attributes[$]=Z;return this}setAttributes($){return Object.keys($).forEach((Z)=>this.setAttribute(Z,$[Z])),this}updateStartTime($){this._startTime=c0($)}setStatus($){return this._status=$,this}updateName($){if(this._name=$,!cQ(this))this.setAttribute(t,"custom");return this}end($){if(this._endTime)return;this._endTime=c0($),p9(this),this._onSpanEnded()}getSpanJSON(){return{data:this._attributes,description:this._name,op:this._attributes[I],parent_span_id:this._parentSpanId,span_id:this._spanId,start_timestamp:this._startTime,status:t$(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[L],profile_id:this._attributes[V7],exclusive_time:this._attributes[F7],measurements:Z8(this._events),is_segment:this._isStandaloneSpan&&J0(this)===this||void 0,segment_id:this._isStandaloneSpan?J0(this).spanContext().spanId:void 0,links:a$(this._links)}}getStreamedSpanJSON(){return{name:this._name??"",span_id:this._spanId,trace_id:this._traceId,parent_span_id:this._parentSpanId,start_timestamp:this._startTime,end_timestamp:this._endTime??this._startTime,is_segment:this._isStandaloneSpan||this===J0(this),status:g5(this._status),attributes:AJ(this._attributes,this._status),links:fJ(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent($,Z,X){P&&w.log("[Tracing] Adding an event to span:",$);let Q=o2(Z)?Z:X||J1(),J=o2(Z)?{}:Z||{},Y={name:$,time:c0(Q),attributes:J};return this._events.push(Y),this}isStandaloneSpan(){return!!this._isStandaloneSpan}_onSpanEnded(){let $=M();if($){if($.emit("spanEnd",this),!this._isStandaloneSpan)$.emit("afterSpanEnd",this)}if(!(this._isStandaloneSpan||this===J0(this)))return;if(this._isStandaloneSpan){if(this._sampled)sg(p2([this],$));else if(P&&w.log("[Tracing] Discarding standalone span because its trace was not chosen to be sampled."),$)$.recordDroppedEvent("sample_rate","span");return}else if($&&R0($)){$.emit("afterSegmentSpanEnd",this);return}let X=this._convertSpanToTransaction();if(X)(Q1(this).scope||d()).captureEvent(X)}_convertSpanToTransaction(){if(!s2(v(this)))return;if(!this._name)P&&w.warn("Transaction has no name, falling back to ``."),this._name="";let{scope:$,isolationScope:Z}=Q1(this),X=$?.getScopeData().sdkProcessingMetadata?.normalizedRequest;if(this._sampled!==!0)return;let J=c9(this).filter((G)=>G!==this&&!og(G)).map((G)=>v(G)).filter(s2),Y=this._attributes[t];delete this._attributes[f1];let W=!1;J.forEach((G)=>{if(delete G.data[f1],G.op?.startsWith("gen_ai."))W=!0});let K={contexts:{trace:b2(this)},spans:J.length>i2?J.sort((G,V)=>G.start_timestamp-V.start_timestamp).slice(0,i2):J,start_timestamp:this._startTime,timestamp:this._endTime,transaction:this._name,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:$,capturedSpanIsolationScope:Z,dynamicSamplingContext:j0(this),hasGenAiSpans:W},request:X,...Y&&{transaction_info:{source:Y}}},z=Z8(this._events);if(z&&Object.keys(z).length)P&&w.log("[Measurements] Adding measurements to transaction event",JSON.stringify(z,void 0,2)),K.measurements=z;return K}}function o2($){return $&&typeof $==="number"||$ instanceof Date||Array.isArray($)}function s2($){return!!$.start_timestamp&&!!$.timestamp&&!!$.span_id&&!!$.trace_id}function og($){return $ instanceof r9&&$.isStandaloneSpan()}function sg($){let Z=M();if(!Z)return;let X=$[1];if(!X||X.length===0){Z.recordDroppedEvent("before_send","span");return}Z.sendEnvelope($)}var P7="__SENTRY_SUPPRESS_TRACING__";function $0($,Z){let X=Q8();if(X.startSpan)return X.startSpan($,Z);let Q=SJ($),{forceTransaction:J,parentSpan:Y,scope:W}=$,K=W?.clone();return X0(K,()=>{return n2(Y)(()=>{let H=d(),G=xJ(H,Y),V=M(),B=$.onlyIfParent&&!G?bJ(H,V):vJ({parentSpan:G,spanArguments:Q,forceTransaction:J,scope:H});if(!a2(B)||!G)Z$(H,B);return d1(()=>Z(B),()=>{let{status:j}=v(B);if(B.isRecording()&&(!j||j==="ok"))B.setStatus({code:O,message:"internal_error"})},()=>{B.end()})})})}function n($,Z){let X=Q8();if(X.startSpanManual)return X.startSpanManual($,Z);let Q=SJ($),{forceTransaction:J,parentSpan:Y,scope:W}=$,K=W?.clone();return X0(K,()=>{return n2(Y)(()=>{let H=d(),G=xJ(H,Y),F=$.onlyIfParent&&!G?bJ(H,M()):vJ({parentSpan:G,spanArguments:Q,forceTransaction:J,scope:H});if(!a2(F)||!G)Z$(H,F);return d1(()=>Z(F,()=>F.end()),()=>{let{status:B}=v(F);if(F.isRecording()&&(!B||B==="ok"))F.setStatus({code:O,message:"internal_error"})})})})}function b($){let Z=Q8();if(Z.startInactiveSpan)return Z.startInactiveSpan($);let X=SJ($),{forceTransaction:Q,parentSpan:J}=$;return($.scope?(W)=>X0($.scope,W):J!==void 0?(W)=>m(J,W):(W)=>W())(()=>{let W=d(),K=xJ(W,J),z=M();if($.onlyIfParent&&!K)return bJ(W,z);return vJ({parentSpan:K,spanArguments:X,forceTransaction:Q,scope:W})})}var _6=($,Z)=>{let X=V0(),Q=M0(X);if(Q.continueTrace)return Q.continueTrace($,Z);let{sentryTrace:J,baggage:Y}=$,W=M(),K=m1(Y);if(W&&!g9(W,K?.org_id))return L7(Z);return X0((z)=>{let H=N6(J,Y);return z.setPropagationContext(H),Z$(z,void 0),Z()})};function m($,Z){let X=Q8();if(X.withActiveSpan)return X.withActiveSpan($,Z);return X0((Q)=>{return Z$(Q,$||void 0),Z(Q)})}function X8($){let Z=Q8();if(Z.suppressTracing)return Z.suppressTracing($);return X0((X)=>{X.setSDKProcessingMetadata({[P7]:!0});let Q=$();return X.setSDKProcessingMetadata({[P7]:void 0}),Q})}function J6($=d()){let Z=Q8();if(Z.isTracingSuppressed)return Z.isTracingSuppressed($);return $.getScopeData().sdkProcessingMetadata[P7]===!0}function L7($){let Z=Q8();if(Z.startNewTrace)return Z.startNewTrace($);return X0((X)=>{return X.setPropagationContext({traceId:N0(),sampleRand:O0()}),P&&w.log(`Starting a new trace with id ${X.getPropagationContext().traceId}`),m(null,$)})}function bJ($,Z){Z?.recordDroppedEvent("no_parent_span","span");let X=new q7({traceId:$.getPropagationContext().traceId});return k6(X,$,g()),X}function vJ({parentSpan:$,spanArguments:Z,forceTransaction:X,scope:Q}){let J=g();if(!e()){let K={...J.getPropagationContext(),...Q.getPropagationContext()},z=$?$.spanContext().traceId:K.traceId,H=new q7({traceId:z});if($&&!X)e$($,H);return k6(H,Q,J),H}let Y=M();if(ng(Y,Z)){if(!J6(Q))Y?.recordDroppedEvent("ignored","span");let K=new q7({dropReason:"ignored",traceId:$?.spanContext().traceId??Q.getPropagationContext().traceId});return k6(K,Q,J),K}let W;if($&&!X)W=rg($,Q,Z,J),e$($,W);else if($){let K=j0($),{traceId:z,spanId:H}=$.spanContext(),G=B1($);W=r2({traceId:z,parentSpanId:H,...Z},Q,J,G),NJ(W,K)}else{let{traceId:K,dsc:z,parentSpanId:H,sampled:G}={...J.getPropagationContext(),...Q.getPropagationContext()};if(W=r2({traceId:K,parentSpanId:H,...Z},Q,J,G),z)NJ(W,z)}return l9(W),W}function SJ($){let X={isStandalone:($.experimental||{}).standalone,...$};if($.startTime){let Q={...X};return Q.startTimestamp=c0($.startTime),delete Q.startTime,Q}return X}function Q8(){let $=V0();return M0($)}function r2($,Z,X,Q){let J=M(),Y=J?.getOptions()||{},{name:W=""}=$,K={spanAttributes:{...$.attributes},spanName:W,parentSampled:Q};J?.emit("beforeSampling",K,{decision:!1});let z=K.parentSampled??Q,H=K.spanAttributes,G=Z.getPropagationContext(),V=J6(Z),[F,B,j]=V?[!1]:i9(Y,{name:W,parentSampled:z,attributes:H,normalizedRequest:X.getScopeData().sdkProcessingMetadata.normalizedRequest,parentSampleRate:F1(G.dsc?.sample_rate)},G.sampleRand),U=new r9({...$,attributes:{[t]:"custom",[R1]:B!==void 0&&j?B:void 0,...H},sampled:F});if(!F&&J&&!V)P&&w.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),J.recordDroppedEvent("sample_rate",R0(J)?"span":"transaction");if(k6(U,Z,X),J)J.emit("spanStart",U);return U}function rg($,Z,X,Q){let{spanId:J,traceId:Y}=$.spanContext(),W=J6(Z),K=W?!1:B1($),z=K?new r9({...X,parentSpanId:J,traceId:Y,sampled:K}):new q7({traceId:Y});e$($,z),k6(z,Z,Q);let H=M();if(!H)return z;if(R0(H)&&Y$(z)){if(Y$($)&&$.dropReason)z.dropReason=$.dropReason,H.recordDroppedEvent($.dropReason,"span");else if(!W)z.dropReason="sample_rate",H.recordDroppedEvent("sample_rate","span")}if(H.emit("spanStart",z),X.endTimestamp)H.emit("spanEnd",z),H.emit("afterSpanEnd",z);return z}function xJ($,Z){if(Z)return Z;if(Z===null)return;let X=f6($);if(!X)return;let Q=M();if((Q?Q.getOptions():{}).parentSpanIsAlwaysRootSpan)return J0(X);return X}function n2($){return $!==void 0?(Z)=>{return m($,Z)}:(Z)=>Z()}function ng($,Z){let X=$?.getOptions().ignoreSpans;if(!$||!R0($)||!X?.length)return!1;return u1({description:Z.name||"",op:Z.attributes?.[I]||Z.op,attributes:Z.attributes},X)}function a2($){return Y$($)&&$.dropReason==="ignored"}var ag=["addListener","on","once","prependListener","prependOnceListener","addEventListener"],tg=["removeListener","off","removeEventListener"],t2=Symbol("SentryScopeBoundListeners"),O7;function eg($){return O7!==void 0&&($===O7||$.listener===O7)}function n9($,Z=d()){let X=$;if(u5(X))return $;gJ(X);for(let Q of ag){if(typeof X[Q]!=="function")continue;X[Q]=Zm(X,X[Q],Z)}for(let Q of tg){if(typeof X[Q]!=="function")continue;X[Q]=Xm(X,X[Q])}if(typeof X.removeAllListeners==="function")X.removeAllListeners=Qm(X,X.removeAllListeners);return $}function $m($,Z){return function(...X){return X0(Z,()=>$.apply(this,X))}}function e2($){return typeof $==="function"}function Zm($,Z,X){return function(...Q){let J=Q[0],Y=Q[1],W=Q.slice(2);if(!e2(Y)||eg(Y))return Z.apply(this,Q);let K=u5($)||gJ($),z=K.get(J);if(!z)z=new WeakMap,K.set(J,z);let H=z.get(Y);if(!H)H=$m(Y,X),z.set(Y,H);let G=O7;O7=H;try{return Z.call(this,J,H,...W)}finally{O7=G}}}function Xm($,Z){return function(...X){let Q=X[0],J=X[1],Y=X.slice(2),W=e2(J)?u5($)?.get(Q)?.get(J):void 0;if(!W)return Z.apply(this,X);return Z.call(this,Q,W,...Y)}}function Qm($,Z){return function(...X){let Q=u5($);if(Q)if(X.length===0)gJ($);else{let J=X[0];Q.delete(J)}return Z.apply(this,X)}}function gJ($){let Z=new Map;return $[t2]=Z,Z}function u5($){return $[t2]}function ZG($,Z){let{fingerprint:X,span:Q,breadcrumbs:J,sdkProcessingMetadata:Y}=Z;if(Jm($,Z),Q)Km($,Q);zm($,X),Ym($,J),Wm($,Y)}function $G($,Z){let{extra:X,tags:Q,attributes:J,user:Y,contexts:W,level:K,sdkProcessingMetadata:z,breadcrumbs:H,fingerprint:G,eventProcessors:V,attachments:F,propagationContext:B,transactionName:j,span:U}=Z;if(a9($,"extra",X),a9($,"tags",Q),a9($,"attributes",J),a9($,"user",Y),a9($,"contexts",W),$.sdkProcessingMetadata=$$($.sdkProcessingMetadata,z,2),K)$.level=K;if(j)$.transactionName=j;if(U)$.span=U;if(H.length)$.breadcrumbs=[...$.breadcrumbs,...H];if(G.length)$.fingerprint=[...$.fingerprint,...G];if(V.length)$.eventProcessors=[...$.eventProcessors,...V];if(F.length)$.attachments=[...$.attachments,...F];$.propagationContext={...$.propagationContext,...B}}function a9($,Z,X){$[Z]=$$($[Z],X,1)}function K$($,Z){let X=b9().getScopeData();return $&&$G(X,$.getScopeData()),Z&&$G(X,Z.getScopeData()),X}function Jm($,Z){let{extra:X,tags:Q,user:J,contexts:Y,level:W,transactionName:K}=Z;if(Object.keys(X).length)$.extra={...X,...$.extra};if(Object.keys(Q).length)$.tags={...Q,...$.tags};if(Object.keys(J).length)$.user={...J,...$.user};if(Object.keys(Y).length)$.contexts={...Y,...$.contexts};if(W)$.level=W;if(K&&$.type!=="transaction")$.transaction=K}function Ym($,Z){let X=[...$.breadcrumbs||[],...Z];$.breadcrumbs=X.length?X:void 0}function Wm($,Z){$.sdkProcessingMetadata={...$.sdkProcessingMetadata,...Z}}function Km($,Z){$.contexts={trace:Q6(Z),...$.contexts},$.sdkProcessingMetadata={dynamicSamplingContext:j0(Z),...$.sdkProcessingMetadata};let X=J0(Z),Q=v(X).description;if(Q&&!$.transaction&&$.type==="transaction")$.transaction=Q}function zm($,Z){if($.fingerprint=$.fingerprint?Array.isArray($.fingerprint)?$.fingerprint:[$.fingerprint]:[],Z)$.fingerprint=$.fingerprint.concat(Z);if(!$.fingerprint.length)delete $.fingerprint}function XG($){let Z={},{response:X,profile:Q,cloud_resource:J,culture:Y,state:W}=$;if(X){if(X.status_code!=null)Z["http.response.status_code"]=X.status_code;if(X.body_size!=null)Z["http.response.body.size"]=X.body_size}if(Q){if(Q.profile_id)Z["sentry.profile_id"]=Q.profile_id;if(Q.profiler_id)Z["sentry.profiler_id"]=Q.profiler_id}if(J){for(let[H,G]of Object.entries(J))if(G!=null)Z[H]=G}if(Y){if(Y.locale)Z["culture.locale"]=Y.locale;if(Y.timezone)Z["culture.timezone"]=Y.timezone}if(W?.state&&typeof W.state.type==="string")Z["state.type"]=W.state.type;let K=$.angular;if(K){let H=K.version;if(typeof H==="string"||typeof H==="number")Z["angular.version"]=H}let z=$.react;if(z){let H=z.version;if(typeof H==="string"||typeof H==="number")Z["react.version"]=H}return Z}function mJ($,Z){let X=S5($),Q=U7($),J=S5(Q),{isolationScope:Y,scope:W}=Q1($),K=K$(Y,W);Vm(X,J,Z,K);let z=$.kind;if(Z.emit("preprocessSpan",X,{spanKind:z}),X.is_segment)Hm(X,K),Gm(X,Z),Z.emit("processSegmentSpan",X);Z.emit("processSpan",X);let{beforeSendSpan:H}=Z.getOptions(),G=H&&W$(H)?Fm(X,H):X,V=G.attributes?.[t];if(V)E0(G,{"sentry.span.source":V});return{...x5(G),_segmentSpan:Q}}function Hm($,Z){let X=XG(Z.contexts);E0($,X)}function E0($,Z){let X=$.attributes??($.attributes={});Object.entries(Z).forEach(([Q,J])=>{if(J!=null&&!(Q in X))X[Q]=J})}function Gm($,Z){let X=Z.getIntegrationNames();if(!X.length)return;E0($,{[jJ]:X})}function Vm($,Z,X,Q){let J=X.getSdkMetadata(),{release:Y,environment:W}=X.getOptions();E0($,{[HJ]:Y,[GJ]:W||J$,[VJ]:Z.name,[FJ]:Z.span_id,[BJ]:J?.sdk?.name,[wJ]:J?.sdk?.version,[UJ]:Q.user?.id,[qJ]:Q.user?.email,[v9]:Q.user?.ip_address,[DJ]:Q.user?.username,...Q.attributes})}function Fm($,Z){let X=Z($);if(!X)return $8(),$;return X}var dJ=0,QG=1,JG=2;function y6($){return new t9((Z)=>{Z($)})}function C7($){return new t9((Z,X)=>{X($)})}class t9{constructor($){this._state=dJ,this._handlers=[],this._runExecutor($)}then($,Z){return new t9((X,Q)=>{this._handlers.push([!1,(J)=>{if(!$)X(J);else try{X($(J))}catch(Y){Q(Y)}},(J)=>{if(!Z)Q(J);else try{X(Z(J))}catch(Y){Q(Y)}}]),this._executeHandlers()})}catch($){return this.then((Z)=>Z,$)}finally($){return new t9((Z,X)=>{let Q,J;return this.then((Y)=>{if(J=!1,Q=Y,$)$()},(Y)=>{if(J=!0,Q=Y,$)$()}).then(()=>{if(J){X(Q);return}Z(Q)})})}_executeHandlers(){if(this._state===dJ)return;let $=this._handlers.slice();this._handlers=[],$.forEach((Z)=>{if(Z[0])return;if(this._state===QG)Z[1](this._value);if(this._state===JG)Z[2](this._value);Z[0]=!0})}_runExecutor($){let Z=(J,Y)=>{if(this._state!==dJ)return;if(I0(Y)){Y.then(X,Q);return}this._state=J,this._value=Y,this._executeHandlers()},X=(J)=>{Z(QG,J)},Q=(J)=>{Z(JG,J)};try{$(X,Q)}catch(J){Q(J)}}}function YG($,Z,X,Q=0){try{let J=uJ(Z,X,$,Q);return I0(J)?J:y6(J)}catch(J){return C7(J)}}function uJ($,Z,X,Q){let J=X[Q];if(!$||!J)return $;let Y=J({...$},Z);if(P&&Y===null&&w.log(`Event processor "${J.id||"?"}" dropped event`),I0(Y))return Y.then((W)=>uJ(W,Z,X,Q+1));return uJ(Y,Z,X,Q+1)}var J8,WG,KG,z$;function zG($){let Z=u._sentryDebugIds,X=u._debugIds;if(!Z&&!X)return{};let Q=Z?Object.keys(Z):[],J=X?Object.keys(X):[];if(z$&&Q.length===WG&&J.length===KG)return z$;if(WG=Q.length,KG=J.length,z$={},!J8)J8={};let Y=(W,K)=>{for(let z of W){let H=K[z],G=J8?.[z];if(G&&z$&&H){if(z$[G[0]]=H,J8)J8[z]=[G[0],H]}else if(H){let V=$(z);for(let F=V.length-1;F>=0;F--){let j=V[F]?.filename;if(j&&z$&&J8){z$[j]=H,J8[z]=[j,H];break}}}}};if(Z)Y(Q,Z);if(X)Y(J,X);return z$}function HG($,Z,X,Q,J,Y){let{normalizeDepth:W=3,normalizeMaxBreadth:K=1000}=$,z={...Z,event_id:Z.event_id||X.event_id||k0(),timestamp:Z.timestamp||X6()},H=X.integrations||$.integrations.map((k)=>k.name);if(Bm(z,$),Um(z,H),J)J.emit("applyFrameMetadata",Z);if(Z.type===void 0)wm(z,$.stackParser);let G=Dm(Q,X.captureContext);if(X.mechanism)K7(z,X.mechanism);let V=J?J.getEventProcessors():[],F=K$(Y,G),B=[...X.attachments||[],...F.attachments];if(B.length)X.attachments=B;ZG(z,F);let j=[...V,...F.eventProcessors];return(X.data&&X.data.__sentry__===!0?y6(z):YG(j,z,X)).then((k)=>{if(k)jm(k);if(typeof W==="number"&&W>0)return qm(k,W,K);return k})}function Bm($,Z){let{environment:X,release:Q,dist:J,maxValueLength:Y}=Z;if($.environment=$.environment||X||J$,!$.release&&Q)$.release=Q;if(!$.dist&&J)$.dist=J;let W=$.request;if(W?.url&&Y)W.url=t6(W.url,Y);if(Y)$.exception?.values?.forEach((K)=>{if(K.value)K.value=t6(K.value,Y)})}function wm($,Z){let X=zG(Z);$.exception?.values?.forEach((Q)=>{Q.stacktrace?.frames?.forEach((J)=>{if(J.filename)J.debug_id=X[J.filename]})})}function jm($){let Z={};if($.exception?.values?.forEach((Q)=>{Q.stacktrace?.frames?.forEach((J)=>{if(J.debug_id){if(J.abs_path)Z[J.abs_path]=J.debug_id;else if(J.filename)Z[J.filename]=J.debug_id;delete J.debug_id}})}),Object.keys(Z).length===0)return;$.debug_meta=$.debug_meta||{},$.debug_meta.images=$.debug_meta.images||[];let X=$.debug_meta.images;Object.entries(Z).forEach(([Q,J])=>{X.push({type:"sourcemap",code_file:Q,debug_id:J})})}function Um($,Z){if(Z.length>0)$.sdk=$.sdk||{},$.sdk.integrations=[...$.sdk.integrations||[],...Z]}function qm($,Z,X){if(!$)return null;let Q={...$,...$.breadcrumbs&&{breadcrumbs:$.breadcrumbs.map((J)=>({...J,...J.data&&{data:g1(J.data,Z,X)}}))},...$.user&&{user:g1($.user,Z,X)},...$.contexts&&{contexts:g1($.contexts,Z,X)},...$.extra&&{extra:g1($.extra,Z,X)}};if($.contexts?.trace&&Q.contexts){if(Q.contexts.trace=$.contexts.trace,$.contexts.trace.data)Q.contexts.trace.data=g1($.contexts.trace.data,Z,X)}if($.spans)Q.spans=$.spans.map((J)=>{return{...J,...J.data&&{data:g1(J.data,Z,X)}}});if($.contexts?.flags&&Q.contexts)Q.contexts.flags=g1($.contexts.flags,3,X);return Q}function Dm($,Z){if(!Z)return $;let X=$?$.clone():new u0;return X.update(Z),X}function GG($){if(!$)return;if(Pm($))return{captureContext:$};if(Om($))return{captureContext:$};return $}function Pm($){return $ instanceof u0||typeof $==="function"}var Lm=["user","level","extra","contexts","tags","fingerprint","propagationContext"];function Om($){return Object.keys($).some((Z)=>Lm.includes(Z))}function E($,Z){return d().captureException($,GG(Z))}function e9($,Z){let X=typeof Z==="string"?Z:void 0,Q=typeof Z!=="string"?{captureContext:Z}:void 0;return d().captureMessage($,X,Q)}function $Z($,Z){return d().captureEvent($,Z)}function ZZ($){g().setTags($)}async function Y8($){let Z=M();if(Z)return Z.flush($);return P&&w.warn("Cannot flush events. No client defined."),Promise.resolve(!1)}function XZ(){let $=M();return $?.getOptions().enabled!==!1&&!!$?.getTransport()}function QZ($){let Z=g(),{user:X}=K$(Z,d()),{userAgent:Q}=u.navigator||{},J=U2({user:X,...Q&&{userAgent:Q},...$}),Y=Z.getSession();if(Y?.status==="ok")R6(Y,{status:"exited"});return k7(),Z.setSession(J),J}function k7(){let $=g(),X=d().getSession()||$.getSession();if(X)q2(X);Cm(),$.setSession()}function Cm(){let $=g(),Z=M(),X=$.getSession();if(X&&Z)Z.captureSession(X)}function Y6($){if(typeof $==="object"&&typeof $.unref==="function")$.unref();return $}function M7($,Z=1){if(M0(V0()).getTracingChannelBinding?.()){$();return}if(!Z)return;Y6(setTimeout(()=>{M7($,Z-1)},1))}var JZ=Symbol.for("SentryBufferFullError");function R7($=100){let Z=new Set;function X(){return Z.size<$}function Q(W){Z.delete(W)}function J(W){if(!X())return C7(JZ);let K=W();return Z.add(K),K.then(()=>Q(K),()=>Q(K)),K}function Y(W){if(!Z.size)return y6(!0);let K=Promise.allSettled(Array.from(Z)).then(()=>!0);if(!W)return K;let z=[K,new Promise((H)=>Y6(setTimeout(()=>H(!1),W)))];return Promise.race(z)}return{get $(){return Array.from(Z)},add:J,drain:Y}}var km=60000;function Mm($,Z=P0()){let X=parseInt(`${$}`,10);if(!isNaN(X))return X*1000;let Q=Date.parse(`${$}`);if(!isNaN(Q))return Q-Z;return km}function Rm($,Z){return $[Z]||$.all||0}function VG($,Z,X=P0()){return Rm($,Z)>X}function FG($,{statusCode:Z,headers:X},Q=P0()){let J={...$},Y=X?.["x-sentry-rate-limits"],W=X?.["retry-after"];if(Y)for(let K of Y.trim().split(",")){let[z,H,,,G]=K.split(":",5),V=parseInt(z,10),F=(!isNaN(V)?V:60)*1000;if(!H)J.all=Q+F;else for(let B of H.split(";"))if(B==="metric_bucket"){if(!G||G.split(";").includes("custom"))J[B]=Q+F}else J[B]=Q+F}else if(W)J.all=Q+Mm(W,Q);else if(Z===429)J.all=Q+60000;return J}var YZ=64;function f7($,Z,X=R7($.bufferSize||YZ)){let Q={},J=(W)=>X.drain(W);function Y(W){let K=[];if(o9(W,(V,F)=>{let B=d5(F);if(VG(Q,B))$.recordDroppedEvent("ratelimit_backoff",B);else K.push(V)}),K.length===0)return Promise.resolve({});let z=T0(W[0],K),H=(V)=>{if(IJ(z,["client_report"])){P&&w.warn(`Dropping client report. Will not send outcomes (reason: ${V}).`);return}o9(z,(F,B)=>{$.recordDroppedEvent(V,d5(B))})},G=()=>Z({body:s9(z)}).then((V)=>{if(V.statusCode===413)return P&&w.error("Sentry responded with status code 413. Envelope was discarded due to exceeding size limits."),H("send_error"),V;if(P&&V.statusCode!==void 0&&(V.statusCode<200||V.statusCode>=300))w.warn(`Sentry responded with status code ${V.statusCode} to sent event.`);return Q=FG(Q,V),V},(V)=>{throw H("network_error"),P&&w.error("Encountered error running transport request:",V),V});return X.add(G).then((V)=>V,(V)=>{if(V===JZ)return P&&w.error("Skipped sending event because buffer is full."),H("queue_overflow"),Promise.resolve({});else throw V})}return{send:Y,flush:J}}var cJ=[];function fm($){let Z={};return $.forEach((X)=>{let{name:Q}=X,J=Z[Q];if(J&&!J.isDefaultInstance&&X.isDefaultInstance)return;Z[Q]=X}),Object.values(Z)}function lJ($){let Z=$.defaultIntegrations||[],X=$.integrations;Z.forEach((J)=>{J.isDefaultInstance=!0});let Q;if(Array.isArray(X))Q=[...Z,...X];else if(typeof X==="function"){let J=X(Z);Q=Array.isArray(J)?J:[J]}else Q=Z;return fm(Q)}function BG($,Z){let X={};return Z.forEach((Q)=>{if(Q?.beforeSetup)Q.beforeSetup($)}),Z.forEach((Q)=>{if(Q)iJ($,Q,X)}),X}function pJ($,Z){for(let X of Z)if(X?.afterAllSetup)X.afterAllSetup($)}function iJ($,Z,X){if(X[Z.name]){P&&w.log(`Integration skipped because it was already installed: ${Z.name}`);return}if(X[Z.name]=Z,!cJ.includes(Z.name)&&typeof Z.setupOnce==="function")Z.setupOnce(),cJ.push(Z.name);if(Z.setup&&typeof Z.setup==="function")Z.setup($);if(typeof Z.preprocessEvent==="function"){let Q=Z.preprocessEvent.bind(Z);$.on("preprocessEvent",(J,Y)=>Q(J,Y,$))}if(typeof Z.processEvent==="function"){let Q=Z.processEvent.bind(Z),J=Object.assign((Y,W)=>Q(Y,W,$),{id:Z.name});$.addEventProcessor(J)}["processSpan","processSegmentSpan"].forEach((Q)=>{let J=Z[Q];if(typeof J==="function")$.on(Q,(Y)=>J.call(Z,Y,$))}),P&&w.log(`Integration installed: ${Z.name}`)}function C($){return $}function WZ($,Z){let X={...$,...Z};for(let Q in Z){let J=$[Q],Y=Z[Q];if(typeof J==="function"&&typeof Y==="function"){let W=new Proxy(J,{apply:(K,z,H)=>{return Reflect.apply(K,z,H),Reflect.apply(Y,z,H)}});X[Q]=W}}return X}var oJ=new Set;function sJ($){$.forEach((Z)=>{oJ.add(Z),P&&w.log(`AI provider "${Z}" wrapping will be skipped`)})}function W8($){return oJ.has($)}function rJ(){oJ.clear(),P&&w.log("Cleared AI provider skip registrations")}var Am=new Set(["false","f","n","no","off","0"]),Nm=new Set(["true","t","y","yes","on","1"]);function K8($,Z){let X=String($).toLowerCase();if(Am.has(X))return!1;if(Nm.has(X))return!0;return Z?.strict?null:Boolean($)}var _m="thismessage:/";function nJ($){return"isRelative"in $}function z8($,Z){let X=$.indexOf("://")<=0&&$.indexOf("//")!==0,Q=Z??(X?_m:void 0);try{if("canParse"in URL&&!URL.canParse($,Q))return;let J=new URL($,Q);if(X)return{isRelative:X,pathname:J.pathname,search:J.search,hash:J.hash};return J}catch{}return}function wG($){if(nJ($))return $.pathname;let Z=new URL($);if(Z.search="",Z.hash="",["80","443"].includes(Z.port))Z.port="";if(Z.password)Z.password="%filtered%";if(Z.username)Z.username="%filtered%";return Z.toString()}function ym($,Z,X,Q){let J=X?.method?.toUpperCase()??"GET",Y=Q?Q:$?Z==="client"?wG($):$.pathname:"/";return`${J} ${Y}`}function aJ($,Z,X,Q,J){let Y={[L]:X,[t]:"url"};if(J)Y[Z==="server"?"http.route":"url.template"]=J,Y[t]="route";if(Q?.method)Y[CJ]=Q.method.toUpperCase();if($){if($.search)Y["url.query"]=$.search;if($.hash)Y["url.fragment"]=$.hash;if($.pathname){if(Y["url.path"]=$.pathname,$.pathname==="/")Y[t]="route"}if(!nJ($)){if(Y[S9]=$.href,$.port)Y["url.port"]=$.port;if($.protocol)Y["url.scheme"]=$.protocol;if($.hostname)Y[Z==="server"?"server.address":"url.domain"]=$.hostname}}return[ym($,Z,Q,J),Y]}function H$($){if(!$)return{};let Z=$.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!Z)return{};let X=Z[6]||"",Q=Z[8]||"";return{host:Z[4],path:Z[5],protocol:Z[2],search:X,hash:Q,relative:Z[5]+X+Q}}function l1($){return $.split(/[?#]/,1)[0]}function G$($){let{protocol:Z,host:X,path:Q}=$,J=X?.replace(/^.*@/,"[filtered]:[filtered]@").replace(/(:80)$/,"").replace(/(:443)$/,"")||"";return`${Z?`${Z}://`:""}${J}${Q}`}function KZ($,Z=!0){if($.startsWith("data:")){let X=$.match(/^data:([^;,]+)/),Q=X?X[1]:"text/plain",J=$.includes(";base64,"),Y=$.indexOf(","),W="";if(Z&&Y!==-1){let K=$.slice(Y+1);W=K.length>10?`${K.slice(0,10)}... [truncated]`:K}return`data:${Q}${J?",base64":""}${W?`,${W}`:""}`}return $}function H8($,Z,X=[Z],Q="npm"){let J=($._metadata=$._metadata||{}).sdk=$._metadata.sdk||{};if(!J.name)J.name=`sentry.javascript.${Z}`,J.packages=X.map((Y)=>({name:`${Q}:@sentry/${Y}`,version:f})),J.version=f}function w1($={}){let Z=$.client||M();if(!XZ()||!Z)return{};let X=V0(),Q=M0(X);if(Q.getTraceData)return Q.getTraceData($);let J=$.scope||d(),Y=$.span||p(),W=Y$(Y)&&!e(Z.getOptions());if(!Y&&JJ())return{};let K=Y&&!W?u9(Y):Im(J),z=Y?j0(Y):c1(Z,J),H=n$(z);if(!x9.test(K))return w.warn("Invalid sentry-trace data. Cannot generate trace data"),{};let V={"sentry-trace":K,baggage:H};if($.propagateTraceparent)V.traceparent=Y&&!W?v2(Y):Tm(J);return V}function Im($){let{traceId:Z,sampled:X,propagationSpanId:Q}=$.getPropagationContext();return X$(Z,Q,X)}function Tm($){let{traceId:Z,sampled:X,propagationSpanId:Q}=$.getPropagationContext();return Q$(Z,Q,X)}var jG="[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:";function I6($,Z,X){if(typeof $!=="string"||!Z)return!0;let Q=X?.get($);if(Q!==void 0)return P&&!Q&&w.log(jG,$),Q;let J=M1($,Z);return X?.set($,J),P&&!J&&w.log(jG,$),J}function tJ($,Z,X){let Q,J,Y,W=X?.maxWait?Math.max(X.maxWait,Z):0,K=X?.setTimeoutImpl||setTimeout;function z(){return H(),Q=$(),Q}function H(){J!==void 0&&clearTimeout(J),Y!==void 0&&clearTimeout(Y),J=Y=void 0}function G(){if(J!==void 0||Y!==void 0)return z();return Q}function V(){if(J)clearTimeout(J);if(J=K(z,Z),W&&Y===void 0)Y=K(z,W);return Q}return V.cancel=H,V.flush=G,V}var G8="[Filtered]",zZ=["forwarded","-ip","remote-","via","-user"],eJ=["auth","token","secret","session","password","passwd","pwd","key","jwt","bearer","sso","saml","csrf","xsrf","credentials","sid","identity","set-cookie","cookie"],UG=[".sid","sessid","remember","oidc","pkce","nonce","__secure-","__host-","awsalb","awselb","akamai","__stripe","cognito","firebase","supabase","sb-","mfa","2fa"];function c5($){return $===!0?{userInfo:!0,cookies:!0,httpHeaders:{request:!0,response:!0},httpBodies:["incomingRequest","outgoingRequest","incomingResponse","outgoingResponse"],queryParams:!0,genAI:{inputs:!0,outputs:!0},stackFrameVariables:!0,frameContextLines:7}:{userInfo:!1,cookies:{deny:zZ},httpHeaders:{request:{deny:zZ},response:{deny:zZ}},httpBodies:[],queryParams:{deny:zZ},genAI:{inputs:!1,outputs:!1},stackFrameVariables:!0,frameContextLines:7}}function $Y($,Z){return Z.some((X)=>$.includes(X))}function ZY($,Z,X){if(Z===!1)return{};let Q=X!=null?[...eJ,...X]:eJ,J={};if(Z===!0){for(let W of Object.keys($))J[W]=$Y(W.toLowerCase(),Q)?G8:$[W];return J}if("deny"in Z){let W=Z.deny.map((K)=>K.toLowerCase());for(let K of Object.keys($)){let z=K.toLowerCase(),H=$Y(z,Q)||W.some((G)=>z.includes(G));J[K]=H?G8:$[K]}return J}let Y=Z.allow.map((W)=>W.toLowerCase());for(let W of Object.keys($)){let K=W.toLowerCase();if($Y(K,Q))J[W]=G8;else{let z=Y.some((H)=>K.includes(H));J[W]=z?$[W]:G8}}return J}var qG=1048576;function XY($){if($==="small")return 1000;if($==="medium")return 1e4;return qG}function p5($){let Z=Object.create(null);try{Object.entries($).forEach(([X,Q])=>{if(typeof Q==="string")Z[X]=Q;else if(typeof Q==="number")Z[X]=String(Q)})}catch{}return Z}function A7($){let Z=$.headers||{},Q=(typeof Z["x-forwarded-host"]==="string"?Z["x-forwarded-host"]:void 0)||(typeof Z.host==="string"?Z.host:void 0),Y=(typeof Z["x-forwarded-proto"]==="string"?Z["x-forwarded-proto"]:void 0)||$.protocol||($.socket?.encrypted?"https":"http"),W=$.url||"",K=Em({url:W,host:Q,protocol:Y}),z=$.body||void 0,H=$.cookies;return{url:K,method:$.method,query_string:DG(W),headers:p5(Z),cookies:H,data:z}}function Em({url:$,protocol:Z,host:X}){if($?.startsWith("http"))return $;if($&&X)return`${Z}://${X}${$}`;return}function W6($,Z=!1,X="request"){let Q=typeof Z==="boolean"?c5(Z):Z,J=X==="request"?Q.httpHeaders.request:Q.httpHeaders.response,Y=Q.cookies,W=`http.${X}.header.`,K={};try{let z={};for(let[H,G]of Object.entries($)){if(G==null)continue;let V=H.toLowerCase();if(V==="cookie"||V==="set-cookie"){if(Y===!1)continue;if(typeof G==="string"&&G!==""){let B=hm(G,V==="set-cookie"),j=ZY(B,Y,UG);for(let[U,D]of Object.entries(j))K[`${W}${l5(V)}.${l5(U)}`]=D}else K[`${W}${l5(V)}`]=G8}else{if(J===!1)continue;if(Array.isArray(G))z[V]=G.map((B)=>B!=null?String(B):B).join(";");else if(typeof G==="string")z[V]=G}}if(J!==!1){let H=ZY(z,J);for(let[G,V]of Object.entries(H))K[`${W}${l5(G)}`]=V}}catch{}return K}function l5($){return $.replace(/-/g,"_")}function hm($,Z){let X=$.indexOf(";"),Q=Z&&X!==-1?$.substring(0,X):$,J=Z?[Q]:Q.split("; "),Y={};for(let W of J){let K=W.indexOf("="),z=(K!==-1?W.substring(0,K):W).toLowerCase(),H=K!==-1?W.substring(K+1):"";Y[z]=H}return Y}function DG($){if(!$)return;try{let Z=new URL($,"http://s.io").search.slice(1);return Z.length?Z:void 0}catch{return}}var c={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},bm={[c.INTERNAL]:"INTERNAL",[c.SERVER]:"SERVER",[c.CLIENT]:"CLIENT",[c.PRODUCER]:"PRODUCER",[c.CONSUMER]:"CONSUMER"};function QY($){return bm[$]}var vm=100;function j1($,Z){let X=M(),Q=g();if(!X)return;let{beforeBreadcrumb:J=null,maxBreadcrumbs:Y=vm}=X.getOptions();if(Y<=0)return;let K={timestamp:X6(),...$},z=J?D0(()=>J(K,Z)):K;if(z===null)return;if(X.emit)X.emit("beforeAddBreadcrumb",z,Z);Q.addBreadcrumb(z,Y)}var PG,Sm="FunctionToString",LG=new WeakMap,xm=()=>{return{name:Sm,setupOnce(){PG=Function.prototype.toString;try{Function.prototype.toString=function(...$){let Z=C6(this),X=LG.has(M())&&Z!==void 0?Z:this;return PG.apply(X,$)}}catch{}},setup($){LG.set($,!0)}}},HZ=C(xm);function i5($){let Z=[];if($.message)Z.push($.message);try{let X=$.exception.values[$.exception.values.length-1];if(X?.value){if(Z.push(X.value),X.type)Z.push(`${X.type}: ${X.value}`)}}catch{}return Z}var gm=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,/can't redefine non-configurable property "solana"/,/vv\(\)\.getRestrictions is not a function/,/Can't find variable: _AutofillCallbackHandler/,/Object Not Found Matching Id:\d+, MethodName:simulateEvent/,/^Java exception was raised during method invocation$/],mm="EventFilters",s5=C(($={})=>{let Z;return{name:mm,setup(X){let Q=X.getOptions();Z=OG($,Q)},processEvent(X,Q,J){if(!Z){let Y=J.getOptions();Z=OG($,Y)}return dm(X,Z)?null:X}}}),GZ=C(($={})=>{return{...s5($),name:"InboundFilters"}});function OG($={},Z={}){return{allowUrls:[...$.allowUrls||[],...Z.allowUrls||[]],denyUrls:[...$.denyUrls||[],...Z.denyUrls||[]],ignoreErrors:[...$.ignoreErrors||[],...Z.ignoreErrors||[],...$.disableErrorDefaults?[]:gm],ignoreTransactions:[...$.ignoreTransactions||[],...Z.ignoreTransactions||[]]}}function dm($,Z){if(!$.type){if(um($,Z.ignoreErrors))return P&&w.warn(`Event dropped due to being matched by \`ignoreErrors\` option. +Event: ${e6($)}`),!0;if(om($))return P&&w.warn(`Event dropped due to not having an error message, error type or stacktrace. +Event: ${e6($)}`),!0;if(lm($,Z.denyUrls))return P&&w.warn(`Event dropped due to being matched by \`denyUrls\` option. +Event: ${e6($)}. +Url: ${o5($)}`),!0;if(!pm($,Z.allowUrls))return P&&w.warn(`Event dropped due to not being matched by \`allowUrls\` option. +Event: ${e6($)}. +Url: ${o5($)}`),!0}else if($.type==="transaction"){if(cm($,Z.ignoreTransactions))return P&&w.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. +Event: ${e6($)}`),!0}return!1}function um($,Z){if(!Z?.length)return!1;return i5($).some((X)=>M1(X,Z))}function cm($,Z){if(!Z?.length)return!1;let X=$.transaction;return X?M1(X,Z):!1}function lm($,Z){if(!Z?.length)return!1;let X=o5($);return!X?!1:M1(X,Z)}function pm($,Z){if(!Z?.length)return!0;let X=o5($);return!X?!0:M1(X,Z)}function im($=[]){for(let Z=$.length-1;Z>=0;Z--){let X=$[Z];if(X&&X.filename!==""&&X.filename!=="[native code]")return X.filename||null}return null}function o5($){try{let X=[...$.exception?.values??[]].reverse().find((Q)=>Q.mechanism?.parent_id===void 0&&Q.stacktrace?.frames?.length)?.stacktrace?.frames;return X?im(X):null}catch{return P&&w.error(`Cannot extract url for event ${e6($)}`),null}}function om($){if(!$.exception?.values?.length)return!1;return!$.message&&!$.exception.values.some((Z)=>Z.stacktrace||Z.type&&Z.type!=="Error"||Z.value)}function MG($,Z,X,Q,J,Y){if(!J.exception?.values||!Y||!u$(Y.originalException,Error))return;let W=J.exception.values.length>0?J.exception.values[J.exception.values.length-1]:void 0;if(W)J.exception.values=JY($,Z,Q,Y.originalException,X,J.exception.values,W,0)}function JY($,Z,X,Q,J,Y,W,K){if(Y.length>=X+1)return Y;let z=[...Y];if(u$(Q[J],Error)){CG(W,K,Q);let H=$(Z,Q[J]),G=z.length;kG(H,J,G,K),z=JY($,Z,X,Q[J],J,[H,...z],H,G)}if(RG(Q))Q.errors.forEach((H,G)=>{if(u$(H,Error)){CG(W,K,Q);let V=$(Z,H),F=z.length;kG(V,`errors[${G}]`,F,K),z=JY($,Z,X,H,J,[V,...z],V,F)}});return z}function RG($){return Array.isArray($.errors)}function CG($,Z,X){$.mechanism={handled:!0,type:"auto.core.linked_errors",...RG(X)&&{is_exception_group:!0},...$.mechanism,exception_id:Z}}function kG($,Z,X,Q){$.mechanism={handled:!0,...$.mechanism,type:"chained",source:Z,exception_id:X,parent_id:Q}}function fG($,Z){return $(Z.stack||"",1)}function sm($){return k1($)&&"__sentry_fetch_url_host__"in $&&typeof $.__sentry_fetch_url_host__==="string"}function rm($){if(sm($))return`${$.message} (${$.__sentry_fetch_url_host__})`;return $.message}function YY($,Z){let X={type:Z.name||Z.constructor.name,value:rm(Z)},Q=fG($,Z);if(Q.length)X.stacktrace={frames:Q};return X}function nm($){for(let Z in $)if(Object.prototype.hasOwnProperty.call($,Z)){let X=$[Z];if(X instanceof Error)return X}return}function am($){if("name"in $&&typeof $.name==="string"){let Q=`'${$.name}' captured as exception`;if("message"in $&&typeof $.message==="string")Q+=` with message '${$.message}'`;return Q}else if("message"in $&&typeof $.message==="string")return $.message;let Z=uQ($);if(gQ($))return`Event \`ErrorEvent\` captured as exception with message \`${$.message}\``;let X=tm($);return`${X&&X!=="Object"?`'${X}'`:"Object"} captured as exception with keys: ${Z}`}function tm($){try{let Z=Object.getPrototypeOf($);return Z?Z.constructor.name:void 0}catch{}}function em($,Z,X,Q){if(k1(X))return[X,void 0];if(Z.synthetic=!0,a6(X)){let Y=$?.getOptions().normalizeDepth,W={["__serialized__"]:sQ(X,Y)},K=nm(X);if(K)return[K,W];let z=am(X),H=Q?.syntheticException||Error(z);return H.message=z,[H,W]}let J=Q?.syntheticException||Error(X);return J.message=`${X}`,[J,void 0]}function AG($,Z,X,Q){let Y=Q?.data&&Q.data.mechanism||{handled:!0,type:"generic"},[W,K]=em($,Y,X,Q),z={exception:{values:[YY(Z,W)]}};if(K)z.extra=K;return $J(z,void 0,void 0),K7(z,Y),{...z,event_id:Q?.event_id}}function NG($,Z,X="info",Q,J){let Y={event_id:Q?.event_id,level:X};if(J&&Q?.syntheticException){let W=fG($,Q.syntheticException);if(W.length)Y.exception={values:[{value:Z,stacktrace:{frames:W}}]},K7(Y,{synthetic:!0})}if(J7(Z)){let{__sentry_template_string__:W,__sentry_template_values__:K}=Z;return Y.logentry={message:W,params:K},Y}return Y.message=Z,Y}var $d="cause",Zd=5,Xd="LinkedErrors",Qd=($={})=>{let Z=$.limit||Zd,X=$.key||$d;return{name:Xd,preprocessEvent(Q,J,Y){let W=Y.getOptions();MG(YY,W.stackParser,X,Z,Q,J)}}},VZ=C(Qd);function _G($){let Z={},X=0;while(X<$.length){let Q=$.indexOf("=",X);if(Q===-1)break;let J=$.indexOf(";",X);if(J===-1)J=$.length;else if(J{let W=Z[Y.toLowerCase()],K=Array.isArray(W)?W.join(";"):W;if(Y==="Forwarded")return Jd(K);return K?.split(",").map((z)=>z.trim())}).reduce((Y,W)=>{if(!W)return Y;return Y.concat(W)},[]).find((Y)=>Y!==null&&Yd(Y))||null}function Jd($){if(!$)return null;for(let Z of $.split(";"))if(Z.startsWith("for="))return Z.slice(4);return null}function Yd($){return/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/.test($)}var Wd="RequestData",Kd=($={})=>{function Z(X){let Q=X.getDataCollectionOptions(),J={...Q,...$.include?.cookies===!0&&Q.cookies===!1&&{cookies:!0},...$.include?.headers===!0&&Q.httpHeaders.request===!1&&{httpHeaders:{...Q.httpHeaders,request:!0}}};return{dataCollection:J,include:{cookies:J.cookies!==!1,data:!0,headers:J.httpHeaders.request!==!1,ip:J.userInfo,query_string:J.queryParams!==!1,url:!0,...$.include}}}return{name:Wd,processEvent(X,Q,J){let{sdkProcessingMetadata:Y={}}=X,{normalizedRequest:W,ipAddress:K}=Y,{include:z}=Z(J);if(W)zd(X,W,{ipAddress:K},z);return X},processSegmentSpan(X,Q){let{sdkProcessingMetadata:J={}}=g().getScopeData(),{normalizedRequest:Y,ipAddress:W}=J;if(!Y)return;let{include:K,dataCollection:z}=Z(Q);Hd(X,Y,W,K,z)}}},FZ=C(Kd);function zd($,Z,X,Q){if($.request={...$.request,...yG(Z,Q)},Q.ip){let J=Z.headers&&KY(Z.headers)||X.ipAddress;if(J)$.user={...$.user,ip_address:J}}}function Hd($,Z,X,Q,J){let Y=yG(Z,Q),W={};if(Y.url)W["url.full"]=Y.url;if(Y.method)W["http.request.method"]=Y.method;if(Y.query_string)W["url.query"]=Gd(Y.query_string);if(E0($,W),Y.cookies&&Object.keys(Y.cookies).length>0){let K=Object.entries(Y.cookies).map(([H,G])=>`${H}=${G}`).join("; "),z=W6({cookie:K},J,"request");E0($,z)}if(Y.headers){let K=W6(Y.headers,J,"request");E0($,K)}if(Y.data!=null){let K=typeof Y.data==="string"?Y.data:JSON.stringify(Y.data);if(K)E0($,{"http.request.body.data":K})}if(Q.ip){let K=Z.headers&&KY(Z.headers)||X||void 0;if(K)E0($,{[v9]:K})}}function yG($,Z){let X={},Q={...$.headers};if(Z.headers){if(X.headers=Q,!Z.cookies)delete Q.cookie;if(!Z.ip){let J=new Set(WY.map((Y)=>Y.toLowerCase()));for(let Y of Object.keys(Q))if(J.has(Y.toLowerCase()))delete Q[Y]}}if(X.method=$.method,Z.url)X.url=$.url;if(Z.cookies){let J=$.cookies||(Q?.cookie?_G(Q.cookie):void 0);X.cookies=J||{}}if(Z.query_string)X.query_string=$.query_string;if(Z.data)X.data=$.data;return X}function Gd($){if(typeof $==="string")return $||void 0;return(Array.isArray($)?$:Object.entries($)).map(([Q,J])=>`${Q}=${J}`).join("&")||void 0}var BZ={},IG={};function zY($,Z){return BZ[$]=BZ[$]||[],BZ[$].push(Z),()=>{let X=BZ[$];if(X){let Q=X.indexOf(Z);if(Q!==-1)X.splice(Q,1)}}}function wZ($,Z){if(!IG[$]){IG[$]=!0;try{Z()}catch(X){P&&w.error(`Error while instrumenting ${$}`,X)}}}function N7($,Z){let X=$&&BZ[$];if(!X)return;for(let Q of X)try{Q(Z)}catch(J){P&&w.error(`Error while triggering instrumentation handler. +Type: ${$} +Name: ${h9(Q)} +Error:`,J)}}var r5=new Set([]);function TG($){let X=zY("console",$);return wZ("console",Vd),X}function EG($){for(let Z of $)r5.add(Z);return()=>{for(let Z of $)r5.delete(Z)}}function Vd(){if(!("console"in u))return;d$.forEach(function($){if(!($ in u.console))return;E9(u.console,$,function(Z){return x1[$]=Z,function(...X){let Q=X[0],J=x1[$],Y=r5.size&&typeof Q==="string"&&M1(Q,r5);if(!Y)N7("console",{args:X,level:$});if(!Y||P&&w.isEnabled())J?.apply(u.console,X)}})})}function hG($){return $==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes($)?$:"log"}var Fd=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/;function Bd($){let Z=$.length>1024?`${$.slice(-1024)}`:$,X=Fd.exec(Z);return X?X.slice(1):[]}function HY($){let Z=Bd($),X=Z[0]||"",Q=Z[1];if(!X&&!Q)return".";if(Q)Q=Q.slice(0,Q.length-1);return X+Q}var wd="Console",GY=C(($={})=>{let Z=new Set($.levels||d$);return{name:wd,setup(X){let Q=TG(({args:J,level:Y})=>{if(M()!==X||!Z.has(Y))return;jd(Y,J)});if(X.registerCleanup(Q),$.filter){let J=EG($.filter);X.registerCleanup(J)}}}});function jd($,Z){let X={category:"console",data:{arguments:Z,logger:"console"},level:hG($),message:bG(Z)};if($==="assert")if(Z[0]===!1){let Q=Z.slice(1);X.message=Q.length>0?`Assertion failed: ${bG(Q)}`:"Assertion failed",X.data.arguments=Q}else return;j1(X,{input:Z,level:$})}function bG($){return"util"in u&&typeof u.util.format==="function"?u.util.format(...$):aQ($," ")}var Ud="ConversationId",qd=()=>{return{name:Ud,setup($){$.on("spanStart",(Z)=>{let X=d().getScopeData(),Q=g().getScopeData(),J=X.conversationId||Q.conversationId;if(J){let{op:Y,data:W,description:K}=v(Z);if(!Y?.startsWith("gen_ai.")&&!W["ai.operationId"]&&!K?.startsWith("ai."))return;Z.setAttribute(r$,J)}})}}},VY=C(qd);var FY=0,BY;function vG($){let Z=Math.floor($*1000);if(BY!==void 0&&Z!==BY)FY=0;let X=FY;return FY++,BY=Z,{key:"sentry.timestamp.sequence",value:{value:X,type:"integer"}}}function n5($,Z){if(!Z)return[void 0,void 0];return X0(Z,()=>{let X=p(),Q=X?Q6(X):s$(Z);return[X?j0(X):c1($,Z),Q]})}function SG(){return typeof __SENTRY_BROWSER_BUNDLE__<"u"&&!!__SENTRY_BROWSER_BUNDLE__}function xG(){return!SG()&&Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]"}function V$(){return typeof window<"u"&&(!xG()||Dd())}function Dd(){return u.process?.type==="renderer"}function Pd($,Z){let X=Z?"auto":"never";return[{type:"log",item_count:$.length,content_type:"application/vnd.sentry.items.log+json"},{version:2,...V$()&&{ingest_settings:{infer_ip:X,infer_user_agent:X}},items:$}]}function gG($,Z,X,Q,J){let Y={};if(Z?.sdk)Y.sdk={name:Z.sdk.name,version:Z.sdk.version};if(!!X&&!!Q)Y.dsn=s0(Q);return T0(Y,[Pd($,J)])}function _7($,Z){let X=Z??Ld($)??[];if(X.length===0)return;let Q=$.getOptions(),J=gG(X,Q._metadata,Q.tunnel,$.getDsn(),$.getDataCollectionOptions().userInfo);mG().set($,[]),$.emit("flushLogs"),$.sendEnvelope(J)}function Ld($){return mG().get($)}function mG(){return C1("clientToLogBufferMap",()=>new WeakMap)}var y7={};Kg(y7,{gauge:()=>Ad,distribution:()=>Nd,count:()=>fd});function Od($,Z){let X=Z?"auto":"never";return[{type:"trace_metric",item_count:$.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{version:2,...V$()&&{ingest_settings:{infer_ip:X,infer_user_agent:X}},items:$}]}function dG($,Z,X,Q,J){let Y={};if(Z?.sdk)Y.sdk={name:Z.sdk.name,version:Z.sdk.version};if(!!X&&!!Q)Y.dsn=s0(Q);return T0(Y,[Od($,J)])}var Cd=1000;function T6($,Z,X,Q=!0){if(X&&(Q||!(Z in $)))$[Z]=X}function kd($,Z){let X=jY(),Q=cG($);if(Q===void 0)X.set($,[Z]);else if(Q.length>=Cd)wY($,Q),X.set($,[Z]);else X.set($,[...Q,Z])}function Md($,Z,X){let{release:Q,environment:J}=Z.getOptions(),Y={...$.attributes};T6(Y,"user.id",X.id,!1),T6(Y,"user.email",X.email,!1),T6(Y,"user.name",X.username,!1),T6(Y,"sentry.release",Q),T6(Y,"sentry.environment",J);let{name:W,version:K}=Z.getSdkMetadata()?.sdk??{};T6(Y,"sentry.sdk.name",W),T6(Y,"sentry.sdk.version",K);let z=Z.getIntegrationByName("Replay"),H=z?.getReplayId(!0);if(T6(Y,"sentry.replay_id",H),H&&z?.getRecordingMode()==="buffer")T6(Y,"sentry._internal.replay_is_buffering",!0);return{...$,attributes:Y}}function Rd($,Z,X,Q){let[,J]=n5(Z,X),Y=f6(X),W=Y?Y.spanContext().traceId:J?.trace_id,K=Y?Y.spanContext().spanId:void 0,z=J1(),H=vG(z);return{timestamp:z,trace_id:W??"",span_id:K,name:$.name,type:$.type,unit:$.unit,value:$.value,attributes:{...j7(Q),...j7($.attributes,"skip-undefined"),[H.key]:H.value}}}function uG($,Z){let X=Z?.scope??d(),Q=Z?.captureSerializedMetric??kd,J=X?.getClient()??M();if(!J){P&&w.warn("No client available to capture metric.");return}let{_experiments:Y,enableMetrics:W,beforeSendMetric:K}=J.getOptions();if(!(W??Y?.enableMetrics??!0)){P&&w.warn("metrics option not enabled, metric will not be captured.");return}let{user:H,attributes:G}=K$(g(),X),V=Md($,J,H);J.emit("processMetric",V);let F=K||Y?.beforeSendMetric,B=F?F(V):V;if(!B){P&&w.log("`beforeSendMetric` returned `null`, will not send metric.");return}let j=Rd(B,J,X,G);P&&w.log("[Metric]",j),Q(J,j),J.emit("afterCaptureMetric",B)}function wY($,Z){let X=Z??cG($)??[];if(X.length===0)return;let Q=$.getOptions(),J=dG(X,Q._metadata,Q.tunnel,$.getDsn(),$.getDataCollectionOptions().userInfo);jY().set($,[]),$.emit("flushMetrics"),$.sendEnvelope(J)}function cG($){return jY().get($)}function jY(){return C1("clientToMetricBufferMap",()=>new WeakMap)}function UY($,Z,X,Q){uG({type:$,name:Z,value:X,unit:Q?.unit,attributes:Q?.attributes},{scope:Q?.scope})}function fd($,Z=1,X){UY("counter",$,Z,X)}function Ad($,Z,X){UY("gauge",$,Z,X)}function Nd($,Z,X){UY("distribution",$,Z,X)}var lG="gen_ai.prompt",K6="gen_ai.system",Q0="gen_ai.request.model",I7="gen_ai.request.stream",F$="gen_ai.request.temperature",T7="gen_ai.request.max_tokens",B$="gen_ai.request.frequency_penalty",E7="gen_ai.request.presence_penalty",w$="gen_ai.request.top_p",a5="gen_ai.request.top_k",t5="gen_ai.request.encoding_format",e5="gen_ai.request.dimensions",z6="gen_ai.response.finish_reasons",r0="gen_ai.response.model",j$="gen_ai.response.id",pG="gen_ai.response.stop_reason",H0="gen_ai.usage.input_tokens",C0="gen_ai.usage.output_tokens",n0="gen_ai.usage.total_tokens",U0="gen_ai.operation.name",_0="sentry.sdk_meta.gen_ai.input.messages.original_length",h0="gen_ai.input.messages",iG="gen_ai.output.messages",l0="gen_ai.system_instructions",p0="gen_ai.response.text",A1="gen_ai.request.available_tools",oG="gen_ai.response.streaming",Y1="gen_ai.response.tool_calls",V8="gen_ai.agent.name",sG="gen_ai.pipeline.name",U$="gen_ai.conversation.id",rG="gen_ai.usage.cache_creation_input_tokens",nG="gen_ai.usage.cache_read_input_tokens",qY="gen_ai.usage.input_tokens.cache_write",q$="gen_ai.usage.input_tokens.cached",aG="gen_ai.invoke_agent",D$="gen_ai.embeddings.input",DY="gen_ai.embeddings",PY="gen_ai.execute_tool",H6="gen_ai.tool.name",jZ="gen_ai.tool.call.id",UZ="gen_ai.tool.type",h7="gen_ai.tool.input",b7="gen_ai.tool.output",v7="gen_ai.tool.description";function P$($){if(!$||typeof $!=="object")return!1;return yd($)||eG($)||_d($)||$V($)||ZV($)||Id($)||Td($)||Ed($)||hd($)||bd($)||vd($)||Sd($)}function _d($){if(!("image_url"in $))return!1;if(typeof $.image_url==="string")return $.image_url.startsWith("data:");return tG($)}function tG($){return"image_url"in $&&!!$.image_url&&typeof $.image_url==="object"&&"url"in $.image_url&&typeof $.image_url.url==="string"&&$.image_url.url.startsWith("data:")}function yd($){return"type"in $&&typeof $.type==="string"&&"source"in $&&P$($.source)}function eG($){return"inlineData"in $&&!!$.inlineData&&typeof $.inlineData==="object"&&"data"in $.inlineData&&typeof $.inlineData.data==="string"}function $V($){return"type"in $&&$.type==="input_audio"&&"input_audio"in $&&!!$.input_audio&&typeof $.input_audio==="object"&&"data"in $.input_audio&&typeof $.input_audio.data==="string"}function ZV($){return"type"in $&&$.type==="file"&&"file"in $&&!!$.file&&typeof $.file==="object"&&"file_data"in $.file&&typeof $.file.file_data==="string"}function Id($){return"media_type"in $&&typeof $.media_type==="string"&&"data"in $}function Td($){return"type"in $&&$.type==="file"&&"mediaType"in $&&typeof $.mediaType==="string"&&"data"in $&&typeof $.data==="string"&&!$.data.startsWith("http://")&&!$.data.startsWith("https://")}function Ed($){return"type"in $&&$.type==="image"&&"image"in $&&typeof $.image==="string"&&!$.image.startsWith("http://")&&!$.image.startsWith("https://")}function hd($){return"type"in $&&($.type==="blob"||$.type==="base64")}function bd($){return"b64_json"in $}function vd($){return"type"in $&&"result"in $&&$.type==="image_generation"}function Sd($){return"uri"in $&&typeof $.uri==="string"&&$.uri.startsWith("data:")}var qZ="[Blob substitute]",xd=["image_url","data","content","b64_json","result","uri","image"];function F8($){let Z={...$};if(P$(Z.source))Z.source=F8(Z.source);if(eG($))Z.inlineData={...$.inlineData,data:qZ};if(tG($))Z.image_url={...$.image_url,url:qZ};if($V($))Z.input_audio={...$.input_audio,data:qZ};if(ZV($))Z.file={...$.file,file_data:qZ};for(let X of xd)if(typeof Z[X]==="string")Z[X]=qZ;return Z}var QV=20000,$4=($)=>{return new TextEncoder().encode($).length},OY=($)=>{return $4(JSON.stringify($))};function Z4($,Z){if($4($)<=Z)return $;let X=0,Q=$.length,J="";while(X<=Q){let Y=Math.floor((X+Q)/2),W=$.slice(0,Y);if($4(W)<=Z)J=W,X=Y+1;else Q=Y-1}return J}function gd($){if(typeof $==="string")return $;if("text"in $&&typeof $.text==="string")return $.text;return""}function XV($,Z){if(typeof $==="string")return Z;return{...$,text:Z}}function md($){return $!==null&&typeof $==="object"&&"content"in $&&typeof $.content==="string"}function JV($){return $!==null&&typeof $==="object"&&"content"in $&&Array.isArray($.content)}function YV($){return $!==null&&typeof $==="object"&&"parts"in $&&Array.isArray($.parts)&&$.parts.length>0}function dd($,Z){let X={...$,content:""},Q=OY(X),J=Z-Q;if(J<=0)return[];let Y=Z4($.content,J);return[{...$,content:Y}]}function ud($){if("parts"in $&&Array.isArray($.parts))return{key:"parts",items:$.parts};if("content"in $&&Array.isArray($.content))return{key:"content",items:$.content};return{key:null,items:[]}}function cd($,Z){let{key:X,items:Q}=ud($);if(X===null||Q.length===0)return[];let J=Q.map((z)=>XV(z,"")),Y=OY({...$,[X]:J}),W=Z-Y;if(W<=0)return[];let K=[];for(let z of Q){let H=gd(z),G=$4(H);if(G<=W)K.push(z),W-=G;else if(K.length===0){let V=Z4(H,W);if(V)K.push(XV(z,V));break}else break}if(K.length<=0)return[];else return[{...$,[X]:K}]}function ld($,Z){if(!$)return[];if(typeof $==="string"){let X=Z4($,Z);return X?[X]:[]}if(typeof $!=="object")return[];if(md($))return dd($,Z);if(JV($)||YV($))return cd($,Z);return[]}function LY($){return $.map((X)=>{let Q=void 0;if(!!X&&typeof X==="object"){if(JV(X))Q={...X,content:LY(X.content)};else if("content"in X&&P$(X.content))Q={...X,content:F8(X.content)};if(YV(X))Q={...Q??X,parts:LY(X.parts)};if(P$(Q))Q=F8(Q);else if(P$(X))Q=F8(X)}return Q??X})}function pd($,Z){if(!Array.isArray($)||$.length===0)return $;let X=Z-2,Q=$[$.length-1],J=LY([Q]),Y=J[0];if(OY(Y)<=X)return J;return ld(Y,X)}function WV($){return pd($,QV)}function KV($){return Z4($,QV)}function U1($){let Z=M()?.getDataCollectionOptions().genAI;return{...$,recordInputs:$?.recordInputs??Z?.inputs??!1,recordOutputs:$?.recordOutputs??Z?.outputs??!1}}function f0($){if($!==void 0)return $;let Z=M();if(!Z)return!0;return!R0(Z)&&Z.getOptions().streamGenAiSpans===!1}function S7($,Z){return $?`${$}.${Z}`:Z}function zV($,Z,X,Q,J){if(Z!==void 0)$.setAttributes({[H0]:Z});if(X!==void 0)$.setAttributes({[C0]:X});if(Z!==void 0||X!==void 0||Q!==void 0||J!==void 0){let Y=(Z??0)+(X??0)+(Q??0)+(J??0);$.setAttributes({[n0]:Y})}}function B8($,Z,X){if(!$.isRecording())return;let Q={[oG]:!0};if(Z.responseId)Q[j$]=Z.responseId;if(Z.responseModel)Q[r0]=Z.responseModel;if(Z.promptTokens!==void 0)Q[H0]=Z.promptTokens;if(Z.completionTokens!==void 0)Q[C0]=Z.completionTokens;if(Z.totalTokens!==void 0)Q[n0]=Z.totalTokens;else if(Z.promptTokens!==void 0||Z.completionTokens!==void 0||Z.cacheCreationInputTokens!==void 0||Z.cacheReadInputTokens!==void 0)Q[n0]=(Z.promptTokens??0)+(Z.completionTokens??0)+(Z.cacheCreationInputTokens??0)+(Z.cacheReadInputTokens??0);if(Z.finishReasons.length)Q[z6]=JSON.stringify(Z.finishReasons);if(X&&Z.responseTexts.length)Q[p0]=Z.responseTexts.join("");if(X&&Z.toolCalls.length)Q[Y1]=JSON.stringify(Z.toolCalls);$.setAttributes(Q),$.end()}function W1($){if(typeof $==="string")return $;return JSON.stringify($)}function b0($){if(typeof $==="string")return KV($);if(Array.isArray($)){let Z=WV($);return JSON.stringify(Z)}return JSON.stringify($)}function q1($){if(!Array.isArray($))return{systemInstructions:void 0,filteredMessages:$};let Z=$.findIndex((W)=>W&&typeof W==="object"&&("role"in W)&&W.role==="system");if(Z===-1)return{systemInstructions:void 0,filteredMessages:$};let X=$[Z],Q=typeof X.content==="string"?X.content:X.content!==void 0?JSON.stringify(X.content):void 0;if(!Q)return{systemInstructions:void 0,filteredMessages:$};let J=JSON.stringify([{type:"text",content:Q}]),Y=[...$.slice(0,Z),...$.slice(Z+1)];return{systemInstructions:J,filteredMessages:Y}}async function id($,Z,X){let Q=$.catch((W)=>{throw E(W,{mechanism:{handled:!1,type:X}}),W}),J=await Z,Y=await Q;if(Y&&typeof Y==="object"&&"data"in Y)return{...Y,data:J};return J}function x7($,Z,X){if(!I0($))return Z;return new Proxy($,{get(Q,J){let W=J in Promise.prototype||J===Symbol.toStringTag?Z:Q,K=Reflect.get(W,J);if(J==="withResponse"&&typeof K==="function")return function(){let H=K.call(Q);return id(H,Z,X)};return typeof K==="function"?K.bind(W):K}})}var DZ=new Map,X4=new Map,CY=new Map([["ai.generateText","invoke_agent"],["ai.streamText","invoke_agent"],["ai.generateObject","invoke_agent"],["ai.streamObject","invoke_agent"],["ai.generateText.doGenerate","generate_content"],["ai.streamText.doStream","generate_content"],["ai.generateObject.doGenerate","generate_content"],["ai.streamObject.doStream","generate_content"],["ai.embed.doEmbed","embeddings"],["ai.embedMany.doEmbed","embeddings"],["ai.rerank.doRerank","rerank"],["ai.toolCall","execute_tool"]]);var Q4="operation.name",J4="ai.operationId",Y4="ai.prompt",HV="ai.schema",GV="ai.response.object",kY="ai.values",MY="ai.response.text",RY="ai.response.toolCalls",VV="ai.response.finishReason",w8="ai.prompt.messages",E6="ai.prompt.tools",PZ="ai.model.id",FV="ai.response.providerMetadata",BV="ai.usage.cachedInputTokens",wV="ai.usage.inputTokenDetails.",jV="ai.telemetry.functionId",UV="ai.usage.completionTokens",qV="ai.usage.promptTokens",DV="ai.usage.tokens",fY="ai.toolCall.name",AY="ai.toolCall.id",PV="ai.toolCall.args",LV="ai.toolCall.result";function CV($,Z){let X=$.parent_span_id;if(!X)return;let Q=$.data[H0],J=$.data[C0];if(typeof Q==="number"||typeof J==="number"){let Y=Z.get(X)||{inputTokens:0,outputTokens:0};if(typeof Q==="number")Y.inputTokens+=Q;if(typeof J==="number")Y.outputTokens+=J;Z.set(X,Y)}}function NY($,Z){let X=Z.get($.span_id);if(!X||!$.data)return;if(X.inputTokens>0)$.data[H0]=X.inputTokens;if(X.outputTokens>0)$.data[C0]=X.outputTokens;if(X.inputTokens>0||X.outputTokens>0)$.data["gen_ai.usage.total_tokens"]=X.inputTokens+X.outputTokens}function od($){let Z=new Map;for(let X of $){let Q=X.data[A1];if(typeof Q!=="string")continue;try{let J=JSON.parse(Q);for(let Y of J)if(Y.name&&Y.description&&!Z.has(Y.name))Z.set(Y.name,Y.description)}catch{}}return Z}function kV($,Z){let X=od($);for(let Q of $){if(Q.op==="gen_ai.execute_tool"){let J=Q.data[H6];if(typeof J==="string"){let Y=X.get(J);if(Y)Q.data[v7]=Y}}if(Q.op==="gen_ai.invoke_agent")NY(Q,Z)}}function _Y($){return DZ.get($)}function yY($){DZ.delete($)}function MV($){let Z=$.map((X)=>{if(typeof X==="string")try{return JSON.parse(X)}catch{return X}return X});return JSON.stringify(Z)}function OV($){return $.filter((Z)=>!!Z&&typeof Z==="object"&&("role"in Z)&&("content"in Z))}function sd($){try{let Z=JSON.parse($);if(!!Z&&typeof Z==="object"){let{messages:X}=Z,{prompt:Q,system:J}=Z,Y=[];if(typeof J==="string")Y.push({role:"system",content:J});if(typeof X==="string")try{X=JSON.parse(X)}catch{}if(Array.isArray(X))return Y.push(...OV(X)),Y;if(Array.isArray(Q))return Y.push(...OV(Q)),Y;if(typeof Q==="string")Y.push({role:"user",content:Q});if(Y.length>0)return Y}}catch{}return[]}function RV($,Z,X){if(typeof Z[Y4]==="string"&&!Z[h0]&&!Z[w8]){let Q=Z[Y4],J=sd(Q);if(J.length){let{systemInstructions:Y,filteredMessages:W}=q1(J);if(Y)$.setAttribute(l0,Y);let K=Array.isArray(W)?W.length:0,z=X?b0(W):W1(W);$.setAttributes({[Y4]:z,[h0]:z,[_0]:K})}}else if(typeof Z[w8]==="string"){let Q=Z[w8];try{let J=JSON.parse(Q);if(Array.isArray(J)){let{systemInstructions:Y,filteredMessages:W}=q1(J);if(Y)$.setAttribute(l0,Y);let K=Array.isArray(W)?W.length:0,z=!X&&W===J?Q:X?b0(W):W1(W);$.setAttributes({[w8]:z,[h0]:z,[_0]:K})}}catch{}}}function rd($){let{data:Z,description:X}=v($);if(!X)return;if(Z[fY]&&Z[AY]&&X==="ai.toolCall"){Zu($,Z);return}if(!Z[J4]&&!X.startsWith("ai."))return;let J=M()?.getIntegrationByName("VercelAI"),Y=f0(J?.options?.enableTruncation);Xu($,X,Z,Y)}function nd($){if($.type==="transaction"&&$.spans){let Z=new Map;for(let Q of $.spans)ed(Q),CV(Q,Z);kV($.spans,Z);let X=$.contexts?.trace;if(X?.op==="gen_ai.invoke_agent")NY(X,Z)}return $}function ad($){if(typeof $!=="string")return"stop";switch($){case"tool-calls":return"tool_call";case"stop":case"length":case"content_filter":case"error":return $;default:return $}}function td($){let Z=$[MY],X=$[RY],Q=$[VV];if(Z==null&&X==null)return;let J=[];if(typeof Z==="string"&&Z.length>0)J.push({type:"text",content:Z});if(X!=null)try{let Y=typeof X==="string"?JSON.parse(X):X;if(Array.isArray(Y)){for(let W of Y){let K=W.input??W.args;J.push({type:"tool_call",id:W.toolCallId,name:W.toolName,arguments:typeof K==="string"?K:JSON.stringify(K??{})})}delete $[RY]}}catch{}if(J.length>0){let Y={role:"assistant",parts:J,finish_reason:ad(Q)};$[iG]=JSON.stringify([Y]),delete $[MY]}}function fV($){if(v0($,UV,C0),v0($,qV,H0),v0($,BV,q$),v0($,"ai.usage.inputTokens",H0),v0($,"ai.usage.outputTokens",C0),v0($,DV,H0),v0($,"ai.response.avgOutputTokensPerSecond","ai.response.avgCompletionTokensPerSecond"),!Object.keys($).some((X)=>X.startsWith(wV))&&typeof $[H0]==="number"&&typeof $[q$]==="number")$[H0]=$[H0]+$[q$];if(typeof $[H0]==="number"){let X=typeof $[C0]==="number"?$[C0]:0;$[n0]=X+$[H0]}if($[E6]&&Array.isArray($[E6]))$[E6]=MV($[E6]);if($[Q4]){let X=$[J4]?$[J4]:$[Q4],Q=CY.get(X)??X;$[U0]=Q,delete $[Q4]}if(v0($,w8,h0),td($),v0($,GV,"gen_ai.response.object"),v0($,E6,"gen_ai.request.available_tools"),v0($,PV,h7),v0($,LV,b7),v0($,HV,"gen_ai.request.schema"),v0($,PZ,Q0),Array.isArray($[kY])){let X=$[kY].map((Q)=>{try{return JSON.parse(Q)}catch{return Q}});$[D$]=X.length===1?X[0]:JSON.stringify(X)}Qu($);for(let X of Object.keys($)){if(Array.isArray($[X]))$[X]=JSON.stringify($[X]);if(X.startsWith("ai."))v0($,X,`vercel.${X}`)}}function ed($){let{data:Z,origin:X}=$;if(X!=="auto.vercelai.otel")return;if($.status&&$.status!=="ok")$.status="internal_error";fV(Z)}function $u($){let Z=$.attributes;if(Z?.[L]!=="auto.vercelai.otel")return;if(fV(Z),Z[I]==="gen_ai.execute_tool"&&$.parent_span_id){let X=X4.get($.parent_span_id);if(X){let Q=Z[H6];if(typeof Q==="string"){let J=X.get(Q);if(J)Z[v7]=J}}}X4.delete($.span_id)}function v0($,Z,X){if($[Z]!=null)$[X]=$[Z],delete $[Z]}function Zu($,Z){$.setAttribute(L,"auto.vercelai.otel"),$.setAttribute(I,"gen_ai.execute_tool"),$.setAttribute(U0,"execute_tool"),v0(Z,fY,H6),v0(Z,AY,jZ);let X=Z[jZ];if(typeof X==="string")DZ.set(X,$.spanContext());if(!Z[UZ])$.setAttribute(UZ,"function");let Q=Z[H6];if(Q)$.updateName(`execute_tool ${Q}`)}function Xu($,Z,X,Q){$.setAttribute(L,"auto.vercelai.otel");let J=Z.replace("ai.","");$.setAttribute("ai.pipeline.name",J),$.updateName(J);let Y=X[jV];if(Y&&typeof Y==="string")$.setAttribute("gen_ai.function_id",Y);if(RV($,X,Q),X[PZ]&&!X[r0])$.setAttribute(r0,X[PZ]);$.setAttribute("ai.streaming",Z.includes("stream"));let W=CY.get(Z);if(W)$.setAttribute(I,`gen_ai.${W}`);else if(Z.startsWith("ai.stream"))$.setAttribute(I,"ai.run");if(W==="invoke_agent"){if(Y&&typeof Y==="string")$.updateName(`invoke_agent ${Y}`);else $.updateName("invoke_agent");return}let K=X[PZ];if(K&&W)$.updateName(`${W} ${K}`);let z=M();if(z&&R0(z)&&X[E6]&&Array.isArray(X[E6])){let H=new Map;for(let G of X[E6])try{let V=typeof G==="string"?JSON.parse(G):G;if(V?.name&&V?.description)H.set(V.name,V.description)}catch{}if(H.size>0){let G=v($).parent_span_id;if(G)X4.set(G,H)}}}function W4($){$.on("spanStart",rd),$.addEventProcessor(Object.assign(nd,{id:"VercelAiEventProcessor"})),$.on("processSpan",(Z)=>{$u(Z)})}function K4($){let Z={};if(!$||typeof $!=="object")return Z;let X=$,Q=X.openai??X.azure;if(Q)p1(Z,q$,Q.cachedPromptTokens),p1(Z,"gen_ai.usage.output_tokens.reasoning",Q.reasoningTokens),p1(Z,"gen_ai.usage.output_tokens.prediction_accepted",Q.acceptedPredictionTokens),p1(Z,"gen_ai.usage.output_tokens.prediction_rejected",Q.rejectedPredictionTokens),p1(Z,U$,Q.responseId);if(X.anthropic){let J=X.anthropic.usage?.cache_read_input_tokens??X.anthropic.cacheReadInputTokens;p1(Z,q$,J);let Y=X.anthropic.usage?.cache_creation_input_tokens??X.anthropic.cacheCreationInputTokens;p1(Z,qY,Y)}if(X.bedrock?.usage)p1(Z,q$,X.bedrock.usage.cacheReadInputTokens),p1(Z,qY,X.bedrock.usage.cacheWriteInputTokens);if(X.deepseek)p1(Z,q$,X.deepseek.promptCacheHitTokens),p1(Z,"gen_ai.usage.input_tokens.cache_miss",X.deepseek.promptCacheMissTokens);return Z}function Qu($){let Z=$[FV];if(!Z)return;try{let X=K4(JSON.parse(Z));for(let[Q,J]of Object.entries(X)){if(Q===U$&&$[Q])continue;$[Q]=J}}catch{}}function p1($,Z,X){if(X!=null)$[Z]=X}var L$="OpenAI",AV={"responses.create":{operation:"chat"},"chat.completions.create":{operation:"chat"},"embeddings.create":{operation:"embeddings"},"conversations.create":{operation:"chat"}},Ju=["response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"],NV=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta",...Ju];function _V($){return $!==null&&typeof $==="object"&&"type"in $&&typeof $.type==="string"&&$.type.startsWith("response.")}function yV($){return $!==null&&typeof $==="object"&&"object"in $&&$.object==="chat.completion.chunk"}function IV($,Z,X){if(!Z||typeof Z!=="object")return;let Q=Z,J={};if(typeof Q.id==="string")J[j$]=Q.id;if(typeof Q.model==="string")J[r0]=Q.model;if(Q.object==="conversation"&&typeof Q.id==="string")J[U$]=Q.id;if(Q.usage&&typeof Q.usage==="object"){let Y=Q.usage,W=Y.prompt_tokens??Y.input_tokens;if(typeof W==="number")J[H0]=W;let K=Y.completion_tokens??Y.output_tokens;if(typeof K==="number")J[C0]=K;if(typeof Y.total_tokens==="number")J[n0]=Y.total_tokens}if(Array.isArray(Q.choices)){let Y=Q.choices,W=Y.map((K)=>K.finish_reason).filter((K)=>typeof K==="string");if(W.length>0)J[z6]=JSON.stringify(W);if(X){let K=Y.map((H)=>{return H.message?.content||""});J[p0]=JSON.stringify(K);let z=Y.map((H)=>{return H.message?.tool_calls}).filter((H)=>Array.isArray(H)&&H.length>0).flat();if(z.length>0)J[Y1]=JSON.stringify(z)}}if(typeof Q.status==="string"){if(!J[z6])J[z6]=JSON.stringify([Q.status])}if(X){if(typeof Q.output_text==="string"&&!J[p0])J[p0]=Q.output_text;if(Array.isArray(Q.output)&&Q.output.length>0&&!J[Y1]){let Y=Q.output.filter((W)=>W?.type==="function_call");if(Y.length>0)J[Y1]=JSON.stringify(Y)}}$.setAttributes(J)}function Yu($){if("conversation"in $&&typeof $.conversation==="string")return $.conversation;if("previous_response_id"in $&&typeof $.previous_response_id==="string")return $.previous_response_id;return}function TV($){let Z={[Q0]:$.model??"unknown"};if("temperature"in $)Z[F$]=$.temperature;if("top_p"in $)Z[w$]=$.top_p;if("frequency_penalty"in $)Z[B$]=$.frequency_penalty;if("presence_penalty"in $)Z[E7]=$.presence_penalty;if("stream"in $)Z[I7]=$.stream;if("encoding_format"in $)Z[t5]=$.encoding_format;if("dimensions"in $)Z[e5]=$.dimensions;let X=Yu($);if(X)Z[U$]=X;return Z}function Wu($,Z){for(let X of $){let Q=X.index;if(Q===void 0||!X.function)continue;if(!(Q in Z.chatCompletionToolCalls))Z.chatCompletionToolCalls[Q]={...X,function:{name:X.function.name,arguments:X.function.arguments||""}};else{let J=Z.chatCompletionToolCalls[Q];if(X.function.arguments&&J?.function)J.function.arguments+=X.function.arguments}}}function Ku($,Z,X){if(Z.responseId=$.id??Z.responseId,Z.responseModel=$.model??Z.responseModel,$.usage)Z.promptTokens=$.usage.prompt_tokens,Z.completionTokens=$.usage.completion_tokens,Z.totalTokens=$.usage.total_tokens;for(let Q of $.choices??[]){if(X){if(Q.delta?.content)Z.responseTexts.push(Q.delta.content);if(Q.delta?.tool_calls)Wu(Q.delta.tool_calls,Z)}if(Q.finish_reason)Z.finishReasons.push(Q.finish_reason)}}function zu($,Z,X,Q){if(!($&&typeof $==="object")){Z.eventTypes.push("unknown:non-object");return}if($ instanceof Error){Q.setStatus({code:O,message:"internal_error"}),E($,{mechanism:{handled:!1,type:"auto.ai.openai.stream-response"}});return}if(!("type"in $))return;let J=$;if(!NV.includes(J.type)){Z.eventTypes.push(J.type);return}if(X){if(J.type==="response.output_item.done"&&"item"in J)Z.responsesApiToolCalls.push(J.item);if(J.type==="response.output_text.delta"&&"delta"in J&&J.delta){Z.responseTexts.push(J.delta);return}}if("response"in J){let{response:Y}=J;if(Z.responseId=Y.id??Z.responseId,Z.responseModel=Y.model??Z.responseModel,Y.usage)Z.promptTokens=Y.usage.input_tokens,Z.completionTokens=Y.usage.output_tokens,Z.totalTokens=Y.usage.total_tokens;if(Y.status)Z.finishReasons.push(Y.status);if(X&&Y.output_text)Z.responseTexts.push(Y.output_text)}}async function*EV($,Z,X){let Q={eventTypes:[],responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,totalTokens:void 0,chatCompletionToolCalls:{},responsesApiToolCalls:[]};try{for await(let J of $){if(yV(J))Ku(J,Q,X);else if(_V(J))zu(J,Q,X,Z);yield J}}finally{let J=[...Object.values(Q.chatCompletionToolCalls),...Q.responsesApiToolCalls];B8(Z,{...Q,toolCalls:J},X)}}function Hu($){let Z=Array.isArray($.tools)?$.tools:[],Q=$.web_search_options&&typeof $.web_search_options==="object"?[{type:"web_search_options",...$.web_search_options}]:[],J=[...Z,...Q];if(J.length===0)return;try{return JSON.stringify(J)}catch(Y){P&&w.error("Failed to serialize OpenAI tools:",Y);return}}function Gu($,Z){let X={[K6]:"openai",[U0]:Z,[L]:"auto.ai.openai"};if($.length>0&&typeof $[0]==="object"&&$[0]!==null){let Q=$[0],J=Hu(Q);if(J)X[A1]=J;Object.assign(X,TV(Q))}else X[Q0]="unknown";return X}function hV($,Z,X,Q){if(X==="embeddings"&&"input"in Z){let K=Z.input;if(K==null)return;if(typeof K==="string"&&K.length===0)return;if(Array.isArray(K)&&K.length===0)return;$.setAttribute(D$,typeof K==="string"?K:JSON.stringify(K));return}let J="input"in Z?Z.input:("messages"in Z)?Z.messages:void 0;if(!J)return;if(Array.isArray(J)&&J.length===0)return;let{systemInstructions:Y,filteredMessages:W}=q1(J);if(Y)$.setAttribute(l0,Y);if($.setAttribute(h0,Q?b0(W):W1(W)),Array.isArray(W))$.setAttribute(_0,W.length);else $.setAttribute(_0,1)}function Vu($,Z,X,Q,J){return function(...W){let K=X.operation||"unknown",z=Gu(W,K),H=z[Q0]||"unknown",G=W[0],V=G&&typeof G==="object"&&G.stream===!0,F={name:`${K} ${H}`,op:`gen_ai.${K}`,attributes:z};if(V){let U,D=n(F,(k)=>{if(U=$.apply(Q,W),J.recordInputs&&G)hV(k,G,K,f0(J.enableTruncation));return(async()=>{try{let R=await U;return EV(R,k,J.recordOutputs??!1)}catch(R){throw k.setStatus({code:O,message:"internal_error"}),E(R,{mechanism:{handled:!1,type:"auto.ai.openai.stream",data:{function:Z}}}),k.end(),R}})()});return x7(U,D,"auto.ai.openai")}let B,j=$0(F,(U)=>{if(B=$.apply(Q,W),J.recordInputs&&G)hV(U,G,K,f0(J.enableTruncation));return B.then((D)=>{return IV(U,D,J.recordOutputs),D},(D)=>{throw E(D,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:Z}}}),D})});return x7(B,j,"auto.ai.openai")}}function bV($,Z="",X){return new Proxy($,{get(Q,J){let Y=Q[J],W=S7(Z,String(J)),K=AV[W];if(typeof Y==="function"&&K)return Vu(Y,W,K,Q,X);if(typeof Y==="function")return Y.bind(Q);if(Y&&typeof Y==="object")return bV(Y,W,X);return Y}})}function z4($,Z){return bV($,"",U1(Z))}var O$="Anthropic_AI",vV={"messages.create":{operation:"chat"},"messages.stream":{operation:"chat",streaming:!0},"messages.countTokens":{operation:"chat"},"models.get":{operation:"models"},"completions.create":{operation:"chat"},"models.retrieve":{operation:"models"},"beta.messages.create":{operation:"chat"}};function SV($,Z,X){if(Array.isArray(Z)&&Z.length===0)return;let{systemInstructions:Q,filteredMessages:J}=q1(Z);if(Q)$.setAttributes({[l0]:Q});let Y=Array.isArray(J)?J.length:1;$.setAttributes({[h0]:X?b0(J):W1(J),[_0]:Y})}var Fu={invalid_request_error:"invalid_argument",authentication_error:"unauthenticated",permission_error:"permission_denied",not_found_error:"not_found",request_too_large:"failed_precondition",rate_limit_error:"resource_exhausted",api_error:"internal_error",overloaded_error:"unavailable"};function IY($){if(!$)return"internal_error";return Fu[$]||"internal_error"}function xV($,Z){if(Z.error)$.setStatus({code:O,message:IY(Z.error.type)}),E(Z.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}})}function gV($){let{system:Z,messages:X,input:Q}=$,J=typeof Z==="string"?[{role:"system",content:$.system}]:[],Y=Array.isArray(Q)?Q:Q!=null?[Q]:void 0,W=Array.isArray(X)?X:X!=null?[X]:[],K=Y??W;return[...J,...K]}function Bu($,Z){if("type"in $&&typeof $.type==="string"){if($.type==="error")return Z.setStatus({code:O,message:IY($.error?.type)}),E($.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0}return!1}function wu($,Z){if($.type==="message_delta"&&$.usage){if("output_tokens"in $.usage&&typeof $.usage.output_tokens==="number")Z.completionTokens=$.usage.output_tokens}if($.message){let X=$.message;if(X.id)Z.responseId=X.id;if(X.model)Z.responseModel=X.model;if(X.stop_reason)Z.finishReasons.push(X.stop_reason);if(X.usage){if(typeof X.usage.input_tokens==="number")Z.promptTokens=X.usage.input_tokens;if(typeof X.usage.cache_creation_input_tokens==="number")Z.cacheCreationInputTokens=X.usage.cache_creation_input_tokens;if(typeof X.usage.cache_read_input_tokens==="number")Z.cacheReadInputTokens=X.usage.cache_read_input_tokens}}}function ju($,Z){if($.type!=="content_block_start"||typeof $.index!=="number"||!$.content_block)return;if($.content_block.type==="tool_use"||$.content_block.type==="server_tool_use")Z.activeToolBlocks[$.index]={id:$.content_block.id,name:$.content_block.name,inputJsonParts:[]}}function Uu($,Z,X){if($.type!=="content_block_delta"||!$.delta)return;if(typeof $.index==="number"&&"partial_json"in $.delta&&typeof $.delta.partial_json==="string"){let Q=Z.activeToolBlocks[$.index];if(Q)Q.inputJsonParts.push($.delta.partial_json)}if(X&&typeof $.delta.text==="string")Z.responseTexts.push($.delta.text)}function qu($,Z){if($.type!=="content_block_stop"||typeof $.index!=="number")return;let X=Z.activeToolBlocks[$.index];if(!X)return;let Q=X.inputJsonParts.join(""),J;try{J=Q?JSON.parse(Q):{}}catch{J={__unparsed:Q}}Z.toolCalls.push({type:"tool_use",id:X.id,name:X.name,input:J}),delete Z.activeToolBlocks[$.index]}function mV($,Z,X,Q){if(!($&&typeof $==="object"))return;if(Bu($,Q))return;wu($,Z),ju($,Z),Uu($,Z,X),qu($,Z)}async function*dV($,Z,X){let Q={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};try{for await(let J of $)mV(J,Q,X,Z),yield J}finally{B8(Z,Q,X)}}function uV($,Z,X){let Q={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};return $.on("streamEvent",(J)=>{mV(J,Q,X,Z)}),$.on("message",()=>{B8(Z,Q,X)}),$.on("error",(J)=>{if(E(J,{mechanism:{handled:!1,type:"auto.ai.anthropic.stream_error"}}),Z.isRecording())Z.setStatus({code:O,message:"internal_error"}),Z.end()}),$}function Du($,Z,X){let Q={[K6]:"anthropic",[U0]:X,[L]:"auto.ai.anthropic"};if($.length>0&&typeof $[0]==="object"&&$[0]!==null){let J=$[0];if(J.tools&&Array.isArray(J.tools))Q[A1]=JSON.stringify(J.tools);if(Q[Q0]=J.model??"unknown","temperature"in J)Q[F$]=J.temperature;if("top_p"in J)Q[w$]=J.top_p;if("stream"in J)Q[I7]=J.stream;if("top_k"in J)Q[a5]=J.top_k;if("frequency_penalty"in J)Q[B$]=J.frequency_penalty;if("max_tokens"in J)Q[T7]=J.max_tokens}else if(Z==="models.retrieve"||Z==="models.get")Q[Q0]=$[0];else Q[Q0]="unknown";return Q}function TY($,Z,X){let Q=gV(Z);if(SV($,Q,X),"prompt"in Z)$.setAttributes({[lG]:JSON.stringify(Z.prompt)})}function Pu($,Z){if("content"in Z){if(Array.isArray(Z.content)){$.setAttributes({[p0]:Z.content.map((Q)=>Q.text).filter((Q)=>!!Q).join("")});let X=[];for(let Q of Z.content)if(Q.type==="tool_use"||Q.type==="server_tool_use")X.push(Q);if(X.length>0)$.setAttributes({[Y1]:JSON.stringify(X)})}}if("completion"in Z)$.setAttributes({[p0]:Z.completion});if("input_tokens"in Z)$.setAttributes({[p0]:JSON.stringify(Z.input_tokens)})}function Lu($,Z){if("id"in Z&&"model"in Z){if($.setAttributes({[j$]:Z.id,[r0]:Z.model}),"usage"in Z&&Z.usage)zV($,Z.usage.input_tokens,Z.usage.output_tokens,Z.usage.cache_creation_input_tokens,Z.usage.cache_read_input_tokens)}}function Ou($,Z,X){if(!Z||typeof Z!=="object")return;if("type"in Z&&Z.type==="error"){xV($,Z);return}if(X)Pu($,Z);Lu($,Z)}function cV($,Z,X){if(E($,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:X}}}),Z.isRecording())Z.setStatus({code:O,message:"internal_error"}),Z.end();throw $}function Cu($,Z,X,Q,J,Y,W,K,z,H,G){let V=J[Q0]??"unknown",F={name:`${Y} ${V}`,op:`gen_ai.${Y}`,attributes:J};if(H&&!G){let B,j=n(F,(U)=>{if(B=$.apply(X,Q),z.recordInputs&&K)TY(U,K,f0(z.enableTruncation));return(async()=>{try{let D=await B;return dV(D,U,z.recordOutputs??!1)}catch(D){return cV(D,U,W)}})()});return x7(B,j,"auto.ai.anthropic")}else return n(F,(B)=>{try{if(z.recordInputs&&K)TY(B,K,f0(z.enableTruncation));let j=Z.apply(X,Q);return uV(j,B,z.recordOutputs??!1)}catch(j){return cV(j,B,W)}})}function ku($,Z,X,Q,J){return new Proxy($,{apply(Y,W,K){let z=X.operation||"unknown",H=Du(K,Z,z),G=H[Q0]??"unknown",V=typeof K[0]==="object"?K[0]:void 0,F=Boolean(V?.stream),B=X.streaming===!0;if(F||B)return Cu($,Y,Q,K,H,z,Z,V,J,F,B);let j,U=$0({name:`${z} ${G}`,op:`gen_ai.${z}`,attributes:H},(D)=>{if(j=Y.apply(Q,K),J.recordInputs&&V)TY(D,V,f0(J.enableTruncation));return j.then((k)=>{return Ou(D,k,J.recordOutputs),k},(k)=>{throw E(k,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:Z}}}),k})});return x7(j,U,"auto.ai.anthropic")}})}function lV($,Z="",X){return new Proxy($,{get(Q,J){let Y=Q[J],W=S7(Z,String(J)),K=vV[W];if(typeof Y==="function"&&K)return ku(Y,W,K,Q,X);if(typeof Y==="function")return Y.bind(Q);if(Y&&typeof Y==="object")return lV(Y,W,X);return Y}})}function H4($,Z){return lV($,"",U1(Z))}var C$="Google_GenAI",pV={"models.generateContent":{operation:"generate_content"},"models.generateContentStream":{operation:"generate_content",streaming:!0},"models.embedContent":{operation:"embeddings"},"chats.create":{proxyResultPath:"chat"},"chat.sendMessage":{operation:"chat"},"chat.sendMessageStream":{operation:"chat",streaming:!0}},iV="google_genai";function Mu($,Z){let X=$?.promptFeedback;if(X?.blockReason){let Q=X.blockReasonMessage??X.blockReason;return Z.setStatus({code:O,message:"internal_error"}),E(`Content blocked: ${Q}`,{mechanism:{handled:!1,type:"auto.ai.google_genai"}}),!0}return!1}function Ru($,Z){if(typeof $.responseId==="string")Z.responseId=$.responseId;if(typeof $.modelVersion==="string")Z.responseModel=$.modelVersion;let X=$.usageMetadata;if(X){if(typeof X.promptTokenCount==="number")Z.promptTokens=X.promptTokenCount;if(typeof X.candidatesTokenCount==="number")Z.completionTokens=X.candidatesTokenCount;if(typeof X.totalTokenCount==="number")Z.totalTokens=X.totalTokenCount}}function fu($,Z,X){if(Array.isArray($.functionCalls))Z.toolCalls.push(...$.functionCalls);for(let Q of $.candidates??[]){if(Q?.finishReason&&!Z.finishReasons.includes(Q.finishReason))Z.finishReasons.push(Q.finishReason);for(let J of Q?.content?.parts??[]){if(X&&J.text)Z.responseTexts.push(J.text);if(J.functionCall)Z.toolCalls.push({type:"function",id:J.functionCall.id,name:J.functionCall.name,arguments:J.functionCall.args})}}}function Au($,Z,X,Q){if(!$||Mu($,Q))return;Ru($,Z),fu($,Z,X)}async function*oV($,Z,X){let Q={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(let J of $)Au(J,Q,X,Z),yield J}finally{B8(Z,Q,X)}}function g7($,Z="user"){if(typeof $==="string")return[{role:Z,content:$}];if(Array.isArray($))return $.flatMap((X)=>g7(X,Z));if(typeof $!=="object"||!$)return[];if("role"in $&&typeof $.role==="string")return[$];if("parts"in $)return[{...$,role:Z}];return[{role:Z,content:$}]}function sV($,Z){if("model"in $&&typeof $.model==="string")return $.model;if(Z&&typeof Z==="object"){let X=Z;if("model"in X&&typeof X.model==="string")return X.model;if("modelVersion"in X&&typeof X.modelVersion==="string")return X.modelVersion}return"unknown"}function Nu($){let Z={};if("temperature"in $&&typeof $.temperature==="number")Z[F$]=$.temperature;if("topP"in $&&typeof $.topP==="number")Z[w$]=$.topP;if("topK"in $&&typeof $.topK==="number")Z[a5]=$.topK;if("maxOutputTokens"in $&&typeof $.maxOutputTokens==="number")Z[T7]=$.maxOutputTokens;if("frequencyPenalty"in $&&typeof $.frequencyPenalty==="number")Z[B$]=$.frequencyPenalty;if("presencePenalty"in $&&typeof $.presencePenalty==="number")Z[E7]=$.presencePenalty;return Z}function _u($,Z,X){let Q={[K6]:iV,[U0]:$,[L]:"auto.ai.google_genai"};if(Z){if(Q[Q0]=sV(Z,X),"config"in Z&&typeof Z.config==="object"&&Z.config){let J=Z.config;if(Object.assign(Q,Nu(J)),"tools"in J&&Array.isArray(J.tools)){let Y=J.tools.flatMap((W)=>W.functionDeclarations);Q[A1]=JSON.stringify(Y)}}}else Q[Q0]=sV({},X);return Q}function rV($,Z,X,Q){if(X){let Y=Z.contents;if(Y!=null)$.setAttribute(D$,typeof Y==="string"?Y:JSON.stringify(Y));return}let J=[];if("config"in Z&&Z.config&&typeof Z.config==="object"&&"systemInstruction"in Z.config&&Z.config.systemInstruction)J.push(...g7(Z.config.systemInstruction,"system"));if("history"in Z)J.push(...g7(Z.history,"user"));if("contents"in Z)J.push(...g7(Z.contents,"user"));if("message"in Z)J.push(...g7(Z.message,"user"));if(Array.isArray(J)&&J.length){let{systemInstructions:Y,filteredMessages:W}=q1(J);if(Y)$.setAttribute(l0,Y);let K=Array.isArray(W)?W.length:0;$.setAttributes({[_0]:K,[h0]:Q?b0(W):W1(W)})}}function yu($,Z,X){if(!Z||typeof Z!=="object")return;if(Z.modelVersion)$.setAttribute(r0,Z.modelVersion);if(Z.usageMetadata&&typeof Z.usageMetadata==="object"){let Q=Z.usageMetadata;if(typeof Q.promptTokenCount==="number")$.setAttributes({[H0]:Q.promptTokenCount});if(typeof Q.candidatesTokenCount==="number")$.setAttributes({[C0]:Q.candidatesTokenCount});if(typeof Q.totalTokenCount==="number")$.setAttributes({[n0]:Q.totalTokenCount})}if(X&&Array.isArray(Z.candidates)&&Z.candidates.length>0){let Q=Z.candidates.map((J)=>{if(J.content?.parts&&Array.isArray(J.content.parts))return J.content.parts.map((Y)=>typeof Y.text==="string"?Y.text:"").filter((Y)=>Y.length>0).join("");return""}).filter((J)=>J.length>0);if(Q.length>0)$.setAttributes({[p0]:Q.join("")})}if(X&&Z.functionCalls){let Q=Z.functionCalls;if(Array.isArray(Q)&&Q.length>0)$.setAttributes({[Y1]:JSON.stringify(Q)})}}function Iu($,Z,X,Q,J){let Y=X.operation==="embeddings";return new Proxy($,{apply(W,K,z){let H=X.operation||"unknown",G=z[0],V=_u(H,G,Q),F=V[Q0]??"unknown";if(X.streaming)return n({name:`${H} ${F}`,op:`gen_ai.${H}`,attributes:V},async(B)=>{try{if(J.recordInputs&&G)rV(B,G,Y,f0(J.enableTruncation));let j=await W.apply(Q,z);return oV(j,B,Boolean(J.recordOutputs))}catch(j){throw B.setStatus({code:O,message:"internal_error"}),E(j,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:Z}}}),B.end(),j}});return $0({name:`${H} ${F}`,op:`gen_ai.${H}`,attributes:V},(B)=>{if(J.recordInputs&&G)rV(B,G,Y,f0(J.enableTruncation));return d1(()=>W.apply(Q,z),(j)=>{E(j,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:Z}}})},()=>{},(j)=>{if(!Y)yu(B,j,J.recordOutputs)})})}})}function EY($,Z="",X){return new Proxy($,{get:(Q,J,Y)=>{let W=Reflect.get(Q,J,Y),K=S7(Z,String(J)),z=pV[K];if(typeof W==="function"&&z){let H=z.operation?Iu(W,K,z,Q,X):W.bind(Q);if(!z.proxyResultPath)return H;return function(...G){let V=H(...G);if(V&&typeof V==="object")return EY(V,z.proxyResultPath,X);return V}}if(typeof W==="function")return W.bind(Q);if(W&&typeof W==="object")return EY(W,K,X);return W}})}function G4($,Z){return EY($,"",U1(Z))}var V4="LangChain",h6="auto.ai.langchain",nV={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"};var N1=($,Z,X)=>{if(X!=null)$[Z]=X},D1=($,Z,X)=>{let Q=Number(X);if(!Number.isNaN(Q))$[Z]=Q};function j8($){if(typeof $==="string")return $;try{return JSON.stringify($)}catch{return String($)}}function m7($){if(Array.isArray($))try{let Z=$.map((X)=>X&&typeof X==="object"&&P$(X)?F8(X):X);return JSON.stringify(Z)}catch{return String($)}return j8($)}function LZ($){let Z=$.toLowerCase();return nV[Z]??Z}function aV($){if($.includes("System"))return"system";if($.includes("Human"))return"user";if($.includes("AI")||$.includes("Assistant"))return"assistant";if($.includes("Function"))return"function";if($.includes("Tool"))return"tool";return"user"}function hY($){if(!$||Array.isArray($))return;return $.invocation_params}function OZ($){return $.map((Z)=>{let X=Z._getType;if(typeof X==="function"){let J=X.call(Z);return{role:LZ(J),content:m7(Z.content)}}if(Z.lc===1&&Z.kwargs){let J=Z.id,Y=Array.isArray(J)&&J.length>0?J[J.length-1]:"",W=typeof Y==="string"?aV(Y):"user";return{role:LZ(W),content:m7(Z.kwargs?.content)}}if(Z.type){let J=String(Z.type).toLowerCase();return{role:LZ(J),content:m7(Z.content)}}if(Z.role)return{role:LZ(String(Z.role)),content:m7(Z.content)};let Q=Z.constructor?.name;if(Q&&Q!=="Object")return{role:LZ(aV(Q)),content:m7(Z.content)};return{role:"user",content:m7(Z.content)}})}function Tu($,Z,X){let Q={},J="kwargs"in $?$.kwargs:void 0,Y=Z?.temperature??X?.ls_temperature??J?.temperature;D1(Q,F$,Y);let W=Z?.max_tokens??X?.ls_max_tokens??J?.max_tokens;D1(Q,T7,W);let K=Z?.top_p??J?.top_p;D1(Q,w$,K);let z=Z?.frequency_penalty;D1(Q,B$,z);let H=Z?.presence_penalty;if(D1(Q,E7,H),Z&&"stream"in Z)N1(Q,I7,Boolean(Z.stream));return Q}function eV($,Z,X,Q,J){return{[K6]:j8($??"langchain"),[U0]:"chat",[Q0]:j8(Z),[L]:h6,...Tu(X,Q,J)}}function $F($,Z,X,Q,J,Y){let W=Y?.ls_provider,K=J?.model??Y?.ls_model_name??"unknown",z=eV(W,K,$,J,Y);if(X&&Array.isArray(Z)&&Z.length>0){N1(z,_0,Z.length);let H=Z.map((G)=>({role:"user",content:G}));N1(z,h0,Q?b0(H):W1(H))}return z}function ZF($,Z,X,Q,J,Y){let W=Y?.ls_provider??$.id?.[2],K=J?.model??Y?.ls_model_name??"unknown",z=eV(W,K,$,J,Y);if(X&&Array.isArray(Z)&&Z.length>0){let H=OZ(Z.flat()),{systemInstructions:G,filteredMessages:V}=q1(H);if(G)N1(z,l0,G);let F=Array.isArray(V)?V.length:0;N1(z,_0,F),N1(z,h0,Q?b0(V):W1(V))}return z}function Eu($,Z){let X=[],Q=$.flat();for(let J of Q){let W=J.message?.tool_calls;if(Array.isArray(W)&&W.length>0)X.push(...W);else{let K=J.message?.content;if(Array.isArray(K))for(let z of K){let H=z;if(H.type==="tool_use")X.push(H)}}}if(X.length>0)N1(Z,Y1,j8(X))}function hu($,Z){if(!$)return;let{tokenUsage:X,usage:Q}=$;if(X)D1(Z,H0,X.promptTokens),D1(Z,C0,X.completionTokens),D1(Z,n0,X.totalTokens);else if(Q){D1(Z,H0,Q.input_tokens),D1(Z,C0,Q.output_tokens);let J=Number(Q.input_tokens),Y=Number(Q.output_tokens),W=(Number.isNaN(J)?0:J)+(Number.isNaN(Y)?0:Y);if(W>0)D1(Z,n0,W);if(Q.cache_creation_input_tokens!==void 0)D1(Z,rG,Q.cache_creation_input_tokens);if(Q.cache_read_input_tokens!==void 0)D1(Z,nG,Q.cache_read_input_tokens)}}function XF($,Z){if(!$)return;let X={};if(Array.isArray($.generations)){let H=$.generations.flat().map((G)=>{if(G.generationInfo?.finish_reason)return G.generationInfo.finish_reason;if(G.generation_info?.finish_reason)return G.generation_info.finish_reason;return null}).filter((G)=>typeof G==="string");if(H.length>0)N1(X,z6,j8(H));if(Eu($.generations,X),Z){let G=$.generations.flat().map((V)=>V.text??V.message?.content).filter((V)=>typeof V==="string");if(G.length>0)N1(X,p0,j8(G))}}hu($.llmOutput,X);let Q=$.llmOutput,Y=$.generations?.[0]?.[0]?.message,W=Q?.model_name??Q?.model??Y?.response_metadata?.model_name;if(W)N1(X,r0,W);let K=Q?.id??Y?.id;if(K)N1(X,j$,K);let z=Q?.stop_reason??Y?.response_metadata?.finish_reason;if(z)N1(X,pG,j8(z));return X}function F4($){let Z={},X=$?.lc_agent_name;if(typeof X==="string")Z[V8]=X;return Z}function QF($){let Z=$?.invocation_params?.tools??$?.options?.tools;if(!Array.isArray(Z)||Z.length===0)return;let X=Z.map((Q)=>{let J=Q.function;return{type:"function",name:Q.name??J?.name??"",description:Q.description??J?.description}});return JSON.stringify(X)}function bu($){if(!$||typeof $!=="object")return!1;let Z=$;return typeof Z.addHandler==="function"&&typeof Z.copy==="function"}function vu($){return typeof $==="object"&&$?.name==="SentryCallbackHandler"}function tV($){return $.some(vu)}function CZ($,Z){if(!$)return[Z];if(bu($)){if(tV($.handlers??[]))return $;let Q=$.copy();return Q.addHandler(Z,!0),Q}let X=Array.isArray($)?$:[$];if(tV(X))return $;return[...X,Z]}function U8($={}){let{recordInputs:Z,recordOutputs:X}=U1($),Q=f0($.enableTruncation),J=new Map,Y=(K)=>{let z=J.get(K);if(z?.isRecording())z.end(),J.delete(K)},W={lc_serializable:!1,lc_namespace:["langchain_core","callbacks","sentry"],lc_secrets:void 0,lc_attributes:void 0,lc_aliases:void 0,lc_serializable_keys:void 0,lc_id:["langchain_core","callbacks","sentry"],lc_kwargs:{},name:"SentryCallbackHandler",ignoreLLM:!1,ignoreChain:!1,ignoreAgent:!1,ignoreRetriever:!1,ignoreCustomEvent:!1,raiseError:!1,awaitHandlers:!0,handleLLMStart(K,z,H,G,V,F,B,j){let U=hY(F),D=$F(K,z,Z,Q,U,B),k=D[Q0],R=D[U0];n({name:`${R} ${k}`,op:"gen_ai.chat",attributes:{...F4(B),...D,[I]:"gen_ai.chat"}},(h)=>{return J.set(H,h),h})},handleChatModelStart(K,z,H,G,V,F,B,j){let U=hY(F),D=ZF(K,z,Z,Q,U,B),k=QF(V);if(k)D[A1]=k;let R=D[Q0],h=D[U0];n({name:`${h} ${R}`,op:"gen_ai.chat",attributes:{...F4(B),...D,[I]:"gen_ai.chat"}},(T)=>{return J.set(H,T),T})},handleLLMEnd(K,z,H,G,V){let F=J.get(z);if(F?.isRecording()){let B=XF(K,X);if(B)F.setAttributes(B);Y(z)}},handleLLMError(K,z){let H=J.get(z);if(H?.isRecording())H.setStatus({code:O,message:"internal_error"}),Y(z);E(K,{mechanism:{handled:!1,type:`${h6}.llm_error_handler`}})},handleChainStart(K,z,H,G,V,F,B,j){if(F?.__sentry_langgraph__)return;let U=j||K.name||"unknown_chain",D={[L]:"auto.ai.langchain","langchain.chain.name":U};if(Z)D["langchain.chain.inputs"]=JSON.stringify(z);n({name:`chain ${U}`,op:"gen_ai.invoke_agent",attributes:{...D,[I]:"gen_ai.invoke_agent"}},(k)=>{return J.set(H,k),k})},handleChainEnd(K,z){let H=J.get(z);if(H?.isRecording()){if(X)H.setAttributes({"langchain.chain.outputs":JSON.stringify(K)});Y(z)}},handleChainError(K,z){let H=J.get(z);if(H?.isRecording())H.setStatus({code:O,message:"internal_error"}),Y(z);E(K,{mechanism:{handled:!1,type:`${h6}.chain_error_handler`}})},handleToolStart(K,z,H,G,V,F,B){if(F?.__sentry_langgraph__)return;let j=B||K.name||"unknown_tool",U={...F4(F),[L]:h6,[U0]:"execute_tool",[H6]:j};if(Z)U[h7]=z;n({name:`execute_tool ${j}`,op:"gen_ai.execute_tool",attributes:{...U,[I]:"gen_ai.execute_tool"}},(D)=>{return J.set(H,D),D})},handleToolEnd(K,z){let H=J.get(z);if(H?.isRecording()){if(X){let G=K,V=G&&typeof G==="object"&&"content"in G?G.content:K;H.setAttributes({[b7]:typeof V==="string"?V:JSON.stringify(V)})}Y(z)}},handleToolError(K,z){let H=J.get(z);if(H?.isRecording())H.setStatus({code:O,message:"internal_error"}),Y(z);E(K,{mechanism:{handled:!1,type:`${h6}.tool_error_handler`}})},copy(){return W},toJSON(){return{lc:1,type:"not_implemented",id:W.lc_id}},toJSONNotImplemented(){return{lc:1,type:"not_implemented",id:W.lc_id}}};return W}var B4="LangGraph",kZ="auto.ai.langgraph";function JF($){let Z=$[0];if(typeof Z!=="object"||!Z||!("llm"in Z)||!Z.llm||typeof Z.llm!=="object")return null;let X=Z.llm;if(typeof X.modelName!=="string"&&typeof X.model!=="string")return null;return X}function YF($){let Z=$[0];if(typeof Z==="object"&&!!Z&&"name"in Z&&typeof Z.name==="string")return Z.name;return null}function WF($,Z,X){for(let J of $){if(!J||typeof J!=="object")continue;let Y=J,W=Y.invoke;if(typeof W!=="function"||Object.prototype.hasOwnProperty.call(Y,"__sentry_tool_wrapped__"))continue;let K=typeof Y.name==="string"?Y.name:"unknown_tool",z=typeof Y.description==="string"?Y.description:void 0,H=new Proxy(W,{apply(G,V,F){let B={[L]:kZ,[I]:PY,[U0]:"execute_tool",[H6]:K,[UZ]:"function"},U=F[1]?.metadata?.lc_agent_name??X;if(typeof U==="string")B[V8]=U;if(z)B[v7]=z;let D=F[0];if(typeof D==="object"&&!!D){if("id"in D&&typeof D.id==="string")B[jZ]=D.id;if(Z.recordInputs){let k="args"in D&&typeof D.args==="object"?D.args:D;try{B[h7]=JSON.stringify(k)}catch{}}}return $0({op:PY,name:`execute_tool ${K}`,attributes:B},async(k)=>{try{let R=await Reflect.apply(G,V,F);if(Z.recordOutputs)try{let h=R,T=h&&typeof h==="object"&&"content"in h?h.content:R;k.setAttribute(b7,typeof T==="string"?T:JSON.stringify(T))}catch{}return R}catch(R){throw k.setStatus({code:O,message:"internal_error"}),E(R,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),R}})}});Y.invoke=H,Object.defineProperty(Y,"__sentry_tool_wrapped__",{value:!0,enumerable:!1})}return $}function Su($){if(!$||$.length===0)return null;let Z=[];for(let X of $)if(X&&typeof X==="object"){let Q=X.tool_calls;if(Q&&Array.isArray(Q))Z.push(...Q)}return Z.length>0?Z:null}function xu($){let Z=$,X=0,Q=0,J=0;if(Z.usage_metadata&&typeof Z.usage_metadata==="object"){let Y=Z.usage_metadata;if(typeof Y.input_tokens==="number")X=Y.input_tokens;if(typeof Y.output_tokens==="number")Q=Y.output_tokens;if(typeof Y.total_tokens==="number")J=Y.total_tokens;return{inputTokens:X,outputTokens:Q,totalTokens:J}}if(Z.response_metadata&&typeof Z.response_metadata==="object"){let Y=Z.response_metadata;if(Y.tokenUsage&&typeof Y.tokenUsage==="object"){let W=Y.tokenUsage;if(typeof W.promptTokens==="number")X=W.promptTokens;if(typeof W.completionTokens==="number")Q=W.completionTokens;if(typeof W.totalTokens==="number")J=W.totalTokens}}return{inputTokens:X,outputTokens:Q,totalTokens:J}}function gu($,Z){let X=Z;if(X.response_metadata&&typeof X.response_metadata==="object"){let Q=X.response_metadata;if(Q.model_name&&typeof Q.model_name==="string")$.setAttribute(r0,Q.model_name);if(Q.finish_reason&&typeof Q.finish_reason==="string")$.setAttribute(z6,[Q.finish_reason])}}function KF($){if(!$.builder?.nodes?.tools?.runnable?.tools)return null;let Z=$.builder?.nodes?.tools?.runnable?.tools;if(!Z||!Array.isArray(Z)||Z.length===0)return null;return Z.map((X)=>({name:X.lc_kwargs?.name,description:X.lc_kwargs?.description,schema:X.lc_kwargs?.schema}))}function zF($,Z,X){let J=X?.messages;if(!J||!Array.isArray(J))return;let Y=Z?.length??0,W=J.length>Y?J.slice(Y):[];if(W.length===0)return;let K=Su(W);if(K)$.setAttribute(Y1,JSON.stringify(K));let z=OZ(W);$.setAttribute(p0,JSON.stringify(z));let H=0,G=0,V=0;for(let F of W){let B=xu(F);H+=B.inputTokens,G+=B.outputTokens,V+=B.totalTokens,gu($,F)}if(H>0)$.setAttribute(H0,H);if(G>0)$.setAttribute(C0,G);if(V>0)$.setAttribute(n0,V)}var bY=!1,w4="__sentry_patched__";function vY($,Z){if(Object.prototype.hasOwnProperty.call($,w4))return $;let X=U8(Z),Q=new Proxy($,{apply(J,Y,W){if(bY)return Reflect.apply(J,Y,W);return $0({op:"gen_ai.create_agent",name:"create_agent",attributes:{[L]:kZ,[I]:"gen_ai.create_agent",[U0]:"create_agent"}},(K)=>{try{let z=Reflect.apply(J,Y,W),H=W.length>0?W[0]:{};if(H?.name&&typeof H.name==="string")K.setAttribute(V8,H.name),K.updateName(`create_agent ${H.name}`);let G=z.invoke;if(G&&typeof G==="function")z.invoke=HF(G.bind(z),z,H,Z,void 0,X);return z}catch(z){throw K.setStatus({code:O,message:"internal_error"}),E(z,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),z}})}});return Object.defineProperty(Q,w4,{value:!0,enumerable:!1}),Q}function HF($,Z,X,Q,J,Y){return new Proxy($,{apply(W,K,z){let H=J?.modelName??J?.model;return $0({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[L]:kZ,[I]:aG,[U0]:"invoke_agent"}},async(G)=>{try{let V=X?.name;if(V&&typeof V==="string")G.setAttribute(sG,V),G.setAttribute(V8,V),G.updateName(`invoke_agent ${V}`);if(H)G.setAttribute(Q0,H);let j=(z.length>1?z[1]:void 0)?.configurable?.thread_id;if(j&&typeof j==="string")G.setAttribute(U$,j);if(Y){let T=z[1]??{};z[1]=T;let _=T.metadata??{};T.metadata={..._,__sentry_langgraph__:!0,...typeof V==="string"?{lc_agent_name:V}:{}},T.callbacks=CZ(T.callbacks,Y)}let U=KF(Z);if(U)G.setAttribute(A1,JSON.stringify(U));let{recordInputs:D,recordOutputs:k}=Q,R=z.length>0?z[0]?.messages??[]:[];if(R&&D){let T=OZ(R),{systemInstructions:_,filteredMessages:l}=q1(T);if(_)G.setAttribute(l0,_);let o=f0(Q.enableTruncation),W0=Array.isArray(l)?l.length:0;G.setAttributes({[h0]:o?b0(l):W1(l),[_0]:W0})}let h=await Reflect.apply(W,K,z);if(k)zF(G,R??null,h);return h}catch(V){throw G.setStatus({code:O,message:"internal_error"}),E(V,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),V}})}})}function SY($,Z){if(Object.prototype.hasOwnProperty.call($,w4))return $;let X=U1(Z),Q=U8(X),J=new Proxy($,{apply(Y,W,K){let z=JF(K),H=YF(K),G=K[0];if(G&&Array.isArray(G.tools)&&G.tools.length>0)WF(G.tools,X,H??void 0);bY=!0;let V;try{V=Reflect.apply(Y,W,K)}finally{bY=!1}let F=V.invoke;if(F&&typeof F==="function"){let B={};if(H)B.name=H;V.invoke=HF(F.bind(V),V,B,X,z,Q)}return V}});return Object.defineProperty(J,w4,{value:!0,enumerable:!1}),J}function j4($,Z){return $.compile=vY($.compile,U1(Z)),$}function GF($,Z,X){let Q=X.getOptions(),J=X.getDsn(),Y=Q.tunnel,W=D7(Q._metadata),K={sent_at:new Date(P0()).toISOString(),...mu(Z)&&{trace:Z},...W&&{sdk:W},...!!Y&&J&&{dsn:s0(J)}},z=X.getDataCollectionOptions().userInfo?"auto":"never",H=[{type:"span",item_count:$.length,content_type:"application/vnd.sentry.items.span.v2+json"},{version:2,...V$()&&{ingest_settings:{infer_ip:z,infer_user_agent:z}},items:$}];return T0(K,[H])}function mu($){return!!$.trace_id&&!!$.public_key}function VF($){let Z=156;if(Z+=$.name.length*2,Z+=MJ($.attributes),$.links&&$.links.length>0){let Q=$.links[0]?.attributes,J=100+(Q?MJ(Q):0);Z+=J*$.links.length}return Z}var FF=1000,du=5000000;class xY{constructor($,Z){this._traceBuckets=new Map,this._client=$;let{maxSpanLimit:X,flushInterval:Q,maxTraceWeightInBytes:J}=Z??{};this._maxSpanLimit=X&&X>0&&X<=FF?X:FF,this._flushInterval=Q&&Q>0?Q:5000,this._maxTraceWeight=J&&J>0?J:du,this._client.on("flush",()=>{this.drain()}),this._client.on("close",()=>{this._traceBuckets.forEach((Y)=>{clearTimeout(Y.timeout)}),this._traceBuckets.clear()})}add($){let Z=$.trace_id,X=this._traceBuckets.get(Z);if(!X)X={spans:new Set,size:0,timeout:Y6(setTimeout(()=>{this.flush(Z)},this._flushInterval))},this._traceBuckets.set(Z,X);if(X.spans.add($),X.size+=VF($),X.spans.size>=this._maxSpanLimit||X.size>=this._maxTraceWeight)this.flush(Z)}drain(){if(!this._traceBuckets.size)return;P&&w.log(`Flushing span tree map with ${this._traceBuckets.size} traces`),this._traceBuckets.forEach(($,Z)=>{this.flush(Z)})}flush($){let Z=this._traceBuckets.get($);if(!Z)return;if(!Z.spans.size){this._removeTrace($);return}let X=Array.from(Z.spans),Q=X[0]?._segmentSpan;if(!Q){P&&w.warn("No segment span reference found on span JSON, cannot compute DSC"),this._removeTrace($);return}let J=j0(Q),Y=X.map((K)=>{let{_segmentSpan:z,...H}=K;return H}),W=GF(Y,J,this._client);P&&w.log(`Sending span envelope for trace ${$} with ${Y.length} spans`),this._client.sendEnvelope(W).then(null,(K)=>{P&&w.error("Error while sending streamed span envelope:",K)}),this._removeTrace($)}_removeTrace($){let Z=this._traceBuckets.get($);if(Z)clearTimeout(Z.timeout);this._traceBuckets.delete($)}}var U4=C(()=>{return{name:"SpanStreaming",setup($){let Q=$.getOptions();if(!R0($)){Q.traceLifecycle="static",P&&w.warn('SpanStreaming integration requires `traceLifecycle` to be set to "stream"! Falling back to static trace lifecycle.');return}let J=Q.beforeSendSpan;if(J&&!W$(J)){Q.traceLifecycle="static",P&&w.warn("SpanStreaming integration requires a beforeSendSpan callback using `withStreamedSpan`! Falling back to static trace lifecycle.");return}let Y=new xY($);$.on("afterSpanEnd",(W)=>{if(!B1(W))return;Y.add(mJ(W,$))})}}});function MZ($){if($===void 0)return;else if($>=400&&$<500)return"warning";else if($>=500)return"error";else return}function RZ($,Z,X){let Q=$[Z];if(typeof Q!=="function")return;try{$[Z]=X}catch{Object.defineProperty($,Z,{value:X,writable:!0,configurable:!0,enumerable:!0})}if($.default===Q)try{$.default=X}catch{Object.defineProperty($,"default",{value:X,writable:!0,configurable:!0,enumerable:!0})}}class i0{constructor($){this._maxSize=$,this._cache=new Map}get size(){return this._cache.size}get($){let Z=this._cache.get($);if(Z===void 0)return;return this._cache.delete($),this._cache.set($,Z),Z}set($,Z){if(this._cache.size>=this._maxSize){let X=this._cache.keys().next().value;this._cache.delete(X)}this._cache.set($,Z)}remove($){let Z=this._cache.get($);if(Z)this._cache.delete($);return Z}clear(){this._cache.clear()}keys(){return Array.from(this._cache.keys())}values(){let $=[];return this._cache.forEach((Z)=>$.push(Z)),$}}function BF($,Z,X,Q,J){let Y={sent_at:new Date(P0()).toISOString()};if(X?.sdk)Y.sdk={name:X.sdk.name,version:X.sdk.version};if(!!Q&&!!J)Y.dsn=s0(J);if(Z)Y.trace=Z;let W=uu($);return T0(Y,[W])}function uu($){return[{type:"check_in"},$]}var cu="7";function lu($){let Z=$.protocol?`${$.protocol}:`:"",X=$.port?`:${$.port}`:"";return`${Z}//${$.host}${X}${$.path?`/${$.path}`:""}/api/`}function pu($){return`${lu($)}${$.projectId}/envelope/`}function iu($,Z){let X={sentry_version:cu};if($.publicKey)X.sentry_key=$.publicKey;if(Z)X.sentry_client=`${Z.name}/${Z.version}`;return new URLSearchParams(X).toString()}function wF($,Z,X){return Z?Z:`${pu($)}?${iu($,X)}`}function jF($){let Z={trace_id:$.trace_id,span_id:$.span_id,parent_span_id:$.parent_span_id,name:$.description||"",start_timestamp:$.start_timestamp,end_timestamp:$.timestamp||$.start_timestamp,status:!$.status||$.status==="ok"||$.status==="cancelled"?"ok":"error",is_segment:!1,attributes:{...$.data},links:$.links};return x5(Z)}function UF($,Z){if($.type!=="transaction"||!$.spans?.length||!$.sdkProcessingMetadata?.hasGenAiSpans||Z.getOptions().streamGenAiSpans===!1||R0(Z))return;let X=[],Q=[];for(let Y of $.spans)if(Y.op?.startsWith("gen_ai."))X.push(jF(Y));else Q.push(Y);if(X.length===0)return;$.spans=Q;let J=Z.getDataCollectionOptions().userInfo?"auto":"never";return[{type:"span",item_count:X.length,content_type:"application/vnd.sentry.items.span.v2+json"},{version:2,...V$()&&{ingest_settings:{infer_ip:J,infer_user_agent:J}},items:X}]}function qF($,Z,X){let Q=[{type:"client_report"},{timestamp:X||X6(),discarded_events:$}];return T0(Z?{dsn:Z}:{},[Q])}function DF($){let{trace_id:Z,parent_span_id:X,span_id:Q,status:J,origin:Y,data:W,op:K}=$.contexts?.trace??{};return{data:W??{},description:$.transaction,op:K,parent_span_id:X,span_id:Q??"",start_timestamp:$.start_timestamp??0,status:J,timestamp:$.timestamp,trace_id:Z??"",origin:Y,profile_id:W?.[V7],exclusive_time:W?.[F7],measurements:$.measurements,is_segment:!0}}function PF($){return{type:"transaction",timestamp:$.timestamp,start_timestamp:$.start_timestamp,transaction:$.description,contexts:{trace:{trace_id:$.trace_id,span_id:$.span_id,parent_span_id:$.parent_span_id,op:$.op,status:$.status,origin:$.origin,data:{...$.data,...$.profile_id&&{[V7]:$.profile_id},...$.exclusive_time&&{[F7]:$.exclusive_time}}}},measurements:$.measurements}}var ou={userInfo:!0,cookies:!0,httpHeaders:{request:!0,response:!0},httpBodies:["incomingRequest","outgoingRequest","incomingResponse","outgoingResponse"],queryParams:!0,genAI:{inputs:!0,outputs:!0},stackFrameVariables:!0,frameContextLines:5};function LF($){let Z=$.dataCollection!=null?ou:c5($.sendDefaultPii),X=$.dataCollection??{};return{userInfo:X.userInfo??Z.userInfo,cookies:X.cookies??Z.cookies,httpHeaders:{request:X.httpHeaders?.request??Z.httpHeaders.request,response:X.httpHeaders?.response??Z.httpHeaders.response},httpBodies:X.httpBodies??Z.httpBodies,queryParams:X.queryParams??Z.queryParams,genAI:{inputs:X.genAI?.inputs??Z.genAI.inputs,outputs:X.genAI?.outputs??Z.genAI.outputs},stackFrameVariables:X.stackFrameVariables??Z.stackFrameVariables,frameContextLines:X.frameContextLines??Z.frameContextLines}}var OF="Not capturing exception because it's already been captured.",CF="Discarded session because of missing or non-string release",NF=Symbol.for("SentryInternalError"),_F=Symbol.for("SentryDoNotSendEventError"),su=5000;function q4($){return{message:$,[NF]:!0}}function gY($){return{message:$,[_F]:!0}}function kF($){return!!$&&typeof $==="object"&&NF in $}function MF($){return!!$&&typeof $==="object"&&_F in $}function RF($,Z,X,Q,J){let Y=0,W,K=!1;$.on(X,()=>{Y=0,clearTimeout(W),K=!1}),$.on(Z,(z)=>{if(Y+=Q(z),Y>=800000)J($);else if(!K){let H=$.getOptions()._flushInterval??su;if(H>0)K=!0,W=Y6(setTimeout(()=>{J($)},H))}}),$.on("flush",()=>{J($)})}class dY{constructor($){if(this._options=$,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=R7($.transportOptions?.bufferSize??YZ),this._dataCollection=LF($),$.dsn)this._dsn=I2($.dsn);else P&&w.warn("No DSN provided, client will not send events.");if(this._dsn){let X=wF(this._dsn,$.tunnel,$._metadata?$._metadata.sdk:void 0);this._transport=$.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...$.transportOptions,url:X})}if(this._options.enableLogs=this._options.enableLogs??this._options._experiments?.enableLogs,this._options.enableLogs)RF(this,"afterCaptureLog","flushLogs",tu,_7);if(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)RF(this,"afterCaptureMetric","flushMetrics",au,wY)}captureException($,Z,X){let Q=k0();if(E5($))return P&&w.log(OF),Q;let J={event_id:Q,...Z};return this._process(()=>this.eventFromException($,J).then((Y)=>this._captureEvent(Y,J,X)).then((Y)=>Y),"error"),J.event_id}captureMessage($,Z,X,Q){let J={event_id:k0(),...X},Y=J7($)?$:String($),W=O6($),K=W?this.eventFromMessage(Y,Z,J):this.eventFromException($,J);return this._process(()=>K.then((z)=>this._captureEvent(z,J,Q)),W?"unknown":"error"),J.event_id}captureEvent($,Z,X){let Q=k0();if(Z?.originalException&&E5(Z.originalException))return P&&w.log(OF),Q;let J={event_id:Q,...Z},Y=$.sdkProcessingMetadata||{},W=Y.capturedSpanScope,K=Y.capturedSpanIsolationScope,z=fF($.type);return this._process(()=>this._captureEvent($,J,W||X,K),z),J.event_id}captureSession($){this.sendSession($),R6($,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getDataCollectionOptions(){return this._dataCollection}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}async flush($){let Z=this._transport;if(this.emit("flush"),!Z)return!0;let X=await this._isClientDoneProcessing($),Q=await Z.flush($);return X&&Q}async close($){_7(this);let Z=await this.flush($);return this.getOptions().enabled=!1,this.emit("close"),Z}getEventProcessors(){return this._eventProcessors}addEventProcessor($){this._eventProcessors.push($)}init(){if(this._isEnabled()||this._options.integrations.some(({name:$})=>$.startsWith("Spotlight")))this._setupIntegrations()}getIntegrationByName($){return this._integrations[$]}getIntegrationNames(){return Object.keys(this._integrations)}addIntegration($){let Z=this._integrations[$.name];if(!Z&&$.beforeSetup)$.beforeSetup(this);if(iJ(this,$,this._integrations),!Z)pJ(this,[$])}sendEvent($,Z={}){this.emit("beforeSendEvent",$,Z);let X=UF($,this),Q=l2($,this._dsn,this._options._metadata,this._options.tunnel);for(let J of Z.attachments||[])Q=m5(Q,EJ(J));if(X)Q=m5(Q,X);this.sendEnvelope(Q).then((J)=>this.emit("afterSendEvent",$,J))}sendSession($){let{release:Z,environment:X=J$}=this._options;if("aggregates"in $){let J=$.attrs||{};if(!J.release&&!Z){P&&w.warn(CF);return}J.release=J.release||Z,J.environment=J.environment||X,$.attrs=J}else{if(!$.release&&!Z){P&&w.warn(CF);return}$.release=$.release||Z,$.environment=$.environment||X}this.emit("beforeSendSession",$);let Q=c2($,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(Q)}recordDroppedEvent($,Z,X=1){if(this._options.sendClientReports){let Q=`${$}:${Z}`;P&&w.log(`Recording outcome: "${Q}"${X>1?` (${X} times)`:""}`),this._outcomes[Q]=(this._outcomes[Q]||0)+X}}on($,Z){let X=this._hooks[$]=this._hooks[$]||new Set,Q=(...J)=>Z(...J);return X.add(Q),()=>{X.delete(Q)}}emit($,...Z){let X=this._hooks[$];if(X)X.forEach((Q)=>Q(...Z))}async sendEnvelope($){if(this.emit("beforeEnvelope",$),this._isEnabled()&&this._transport)try{return await this._transport.send($)}catch(Z){return P&&w.error("Error while sending envelope:",Z),{}}return P&&w.error("Transport disabled"),{}}registerCleanup($){}dispose(){}_setupIntegrations(){let{integrations:$}=this._options;this._integrations=BG(this,$),pJ(this,$)}_updateSessionFromEvent($,Z){let X=Z.level==="fatal",Q=!1,J=Z.exception?.values;if(J){Q=!0,X=!1;for(let K of J)if(K.mechanism?.handled===!1){X=!0;break}}let Y=$.status==="ok";if(Y&&$.errors===0||Y&&X)R6($,{...X&&{status:"crashed"},errors:$.errors||Number(Q||X)}),this.captureSession($)}async _isClientDoneProcessing($){let Z=0;while(!$||Z<$){if(await new Promise((X)=>setTimeout(X,1)),!this._numProcessing)return!0;Z++}return!1}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent($,Z,X,Q){let J=this.getOptions(),Y=this.getIntegrationNames();if(!Z.integrations&&Y.length)Z.integrations=Y;if(this.emit("preprocessEvent",$,Z),!$.type)Q.setLastEventId($.event_id||Z.event_id);return HG(J,$,Z,X,this,Q).then((W)=>{if(W===null)return W;this.emit("postprocessEvent",W,Z),W.contexts={trace:{...W.contexts?.trace,...s$(X)},...W.contexts};let K=c1(this,X);return W.sdkProcessingMetadata={dynamicSamplingContext:K,...W.sdkProcessingMetadata},W})}_captureEvent($,Z={},X=d(),Q=g()){if(P&&mY($))w.log(`Captured error event \`${i5($)[0]||""}\``);return this._processEvent($,Z,X,Q).then((J)=>{return J.event_id},(J)=>{if(P)if(MF(J))w.log(J.message);else if(kF(J))w.warn(J.message);else w.warn(J);return})}_processEvent($,Z,X,Q){let J=this.getOptions(),{sampleRate:Y}=J,W=yF($),K=mY($),H=`before send for type \`${$.type||"error"}\``,G=typeof Y>"u"?void 0:F1(Y);if(K&&typeof G==="number"&&O0()>G)return this.recordDroppedEvent("sample_rate","error"),C7(gY(`Discarding event because it's not included in the random sample (sampling rate = ${Y})`));let V=fF($.type);return this._prepareEvent($,Z,X,Q).then((F)=>{if(F===null)throw this.recordDroppedEvent("event_processor",V),gY("An event processor returned `null`, will not send event.");if(Z.data?.__sentry__===!0)return F;let j=nu(this,J,F,Z);return ru(j,H)}).then((F)=>{if(F===null){if(this.recordDroppedEvent("before_send",V),W){let D=1+($.spans||[]).length;this.recordDroppedEvent("before_send","span",D)}throw gY(`${H} returned \`null\`, will not send event.`)}let B=X.getSession()||Q.getSession();if(K&&B)this._updateSessionFromEvent(B,F);if(W){let U=F.sdkProcessingMetadata?.spanCountBeforeProcessing||0,D=F.spans?F.spans.length:0,k=U-D;if(k>0)this.recordDroppedEvent("before_send","span",k)}let j=F.transaction_info;if(W&&j&&F.transaction!==$.transaction)F.transaction_info={...j,source:"custom"};return this.sendEvent(F,Z),F}).then(null,(F)=>{if(MF(F)||kF(F))throw F;throw this.captureException(F,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:F}),q4(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. +Reason: ${F}`)})}_process($,Z){this._numProcessing++,this._promiseBuffer.add($).then((X)=>{return this._numProcessing--,X},(X)=>{if(this._numProcessing--,X===JZ)this.recordDroppedEvent("queue_overflow",Z);return X})}_clearOutcomes(){let $=this._outcomes;return this._outcomes={},Object.entries($).map(([Z,X])=>{let[Q,J]=Z.split(":");return{reason:Q,category:J,quantity:X}})}_flushOutcomes(){P&&w.log("Flushing outcomes...");let $=this._clearOutcomes();if($.length===0){P&&w.log("No outcomes to send");return}if(!this._dsn){P&&w.log("No dsn provided, will not send outcomes");return}P&&w.log("Sending outcomes:",$);let Z=qF($,this._options.tunnel&&s0(this._dsn));this.sendEnvelope(Z)}}function fF($){return $==="replay_event"?"replay":$||"error"}function ru($,Z){let X=`${Z} must return \`null\` or a valid event.`;if(I0($))return $.then((Q)=>{if(!a6(Q)&&Q!==null)throw q4(X);return Q},(Q)=>{throw q4(`${Z} rejected with ${Q}`)});else if(!a6($)&&$!==null)throw q4(X);return $}function nu($,Z,X,Q){let{beforeSend:J,beforeSendTransaction:Y,ignoreSpans:W}=Z,K=!W$(Z.beforeSendSpan)&&Z.beforeSendSpan,z=X;if(mY(z)&&J)return J(z,Q);if(yF(z)){if(K||W){let H=DF(z);if(W?.length&&u1({description:H.description,op:H.op,attributes:H.data},W))return null;if(K){let G=K(H);if(!G)$8();else z=$$(X,PF(G))}if(z.spans){let G=[],V=z.spans;for(let B of V){if(W?.length&&u1({description:B.description,op:B.op,attributes:B.data},W)){N2(V,B);continue}if(K){let j=K(B);if(!j)$8(),G.push(B);else G.push(j)}else G.push(B)}let F=z.spans.length-G.length;if(F)$.recordDroppedEvent("before_send","span",F);z.spans=G}}if(Y){if(z.spans){let H=z.spans.length;z.sdkProcessingMetadata={...X.sdkProcessingMetadata,spanCountBeforeProcessing:H}}return Y(z,Q)}}return z}function mY($){return $.type===void 0}function yF($){return $.type==="transaction"}function au($){let Z=0;if($.name)Z+=$.name.length*2;return Z+=8,Z+IF($.attributes)}function tu($){let Z=0;if($.message)Z+=$.message.length*2;return Z+IF($.attributes)}function IF($){if(!$)return 0;let Z=0;return Object.values($).forEach((X)=>{if(Array.isArray(X))Z+=X.length*AF(X[0]);else if(O6(X))Z+=AF(X);else Z+=100}),Z}function AF($){if(typeof $==="string")return $.length*2;else if(typeof $==="number")return 8;else if(typeof $==="boolean")return 4;return 0}function TF($){let Z=$._metadata?.sdk,X=Z?.name&&Z?.version?`${Z?.name}/${Z?.version}`:void 0;$.transportOptions={...$.transportOptions,headers:{...X&&{"user-agent":X},...$.transportOptions?.headers}}}class D4 extends dY{constructor($){if(TF($),$.traceLifecycle==="stream"&&!$.integrations.some((Z)=>Z.name==="SpanStreaming"))$.integrations.push(U4());super($);this._disposeCallbacks=[],this._setUpMetricsProcessing()}eventFromException($,Z){let X=AG(this,this._options.stackParser,$,Z);return X.level="error",y6(X)}eventFromMessage($,Z="info",X){return y6(NG(this._options.stackParser,$,Z,X,this._options.attachStacktrace))}captureException($,Z,X){return EF(Z),super.captureException($,Z,X)}captureEvent($,Z,X){if(!$.type&&$.exception?.values&&$.exception.values.length>0)EF(Z);return super.captureEvent($,Z,X)}captureCheckIn($,Z,X){let Q="checkInId"in $&&$.checkInId?$.checkInId:k0();if(!this._isEnabled())return P&&w.warn("SDK not enabled, will not capture check-in."),Q;let J=this.getOptions(),{release:Y,environment:W,tunnel:K}=J,z={check_in_id:Q,monitor_slug:$.monitorSlug,status:$.status,release:Y,environment:W};if("duration"in $)z.duration=$.duration;if(Z)z.monitor_config={schedule:Z.schedule,checkin_margin:Z.checkinMargin,max_runtime:Z.maxRuntime,timezone:Z.timezone,failure_issue_threshold:Z.failureIssueThreshold,recovery_threshold:Z.recoveryThreshold};let[H,G]=n5(this,X);if(G)z.contexts={trace:G};let V=BF(z,H,this.getSdkMetadata(),K,this.getDsn());return P&&w.log("Sending checkin:",$.monitorSlug,$.status),this.sendEnvelope(V),Q}registerCleanup($){this._disposeCallbacks.push($)}dispose(){P&&w.log("Disposing client...");for(let $ of this._disposeCallbacks)try{$()}catch{}this._disposeCallbacks.length=0;for(let $ of Object.keys(this._hooks))this._hooks[$]?.clear();this._hooks={},this._eventProcessors.length=0,this._integrations={},this._outcomes={},this._transport=void 0,this._promiseBuffer=R7(YZ)}_prepareEvent($,Z,X,Q){if(this._options.platform)$.platform=$.platform||this._options.platform;if(this._options.runtime)$.contexts={...$.contexts,runtime:$.contexts?.runtime||this._options.runtime};if(this._options.serverName)$.server_name=$.server_name||this._options.serverName;return super._prepareEvent($,Z,X,Q)}_setUpMetricsProcessing(){this.on("processMetric",($)=>{if(this._options.serverName)$.attributes={"server.address":this._options.serverName,...$.attributes}})}}function EF($){let Z=g().getScopeData().sdkProcessingMetadata.requestSession;if(Z){let X=$?.mechanism?.handled??!0;if(X&&Z.status!=="crashed")Z.status="errored";else if(!X)Z.status="crashed"}}function bF($,Z=!1){return!(Z||$&&!$.startsWith("/")&&!$.match(/^[A-Z]:/)&&!$.startsWith(".")&&!$.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&$!==void 0&&!$.includes("node_modules/")}function vF($){let Z=/^\s*[-]{4,}$/,X=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,Q=/at (?:async )?(.+?) \(data:(.*?),/;return(J)=>{let Y=J.match(Q);if(Y)return{filename:``,function:Y[1]};let W=J.match(X);if(W){let K,z,H,G,V;if(W[1]){H=W[1];let U=H.lastIndexOf(".");if(H[U-1]===".")U--;if(U>0){K=H.slice(0,U),z=H.slice(U+1);let D=K.indexOf(".Module");if(D>0)H=H.slice(D+1),K=K.slice(0,D)}G=void 0}if(z)G=K,V=z;if(z==="")V=void 0,H=void 0;if(H===void 0)V=V||pQ,H=G?`${G}.${V}`:V;let F=G2(W[2]),B=W[5]==="native";if(!F&&W[5]&&!B)F=W[5];let j=F?eu(F):void 0;return{filename:j??F,module:j&&$?.(j),function:H,lineno:hF(W[3]),colno:hF(W[4]),in_app:bF(F||"",B)}}if(J.match(Z))return{filename:J};return}}function uY($){return[90,vF($)]}function hF($){return parseInt($||"",10)||void 0}function eu($){try{return decodeURI($)}catch{return}}var P4=new WeakMap,SF=($,Z)=>{let X=P4.get($);if(!X)P4.set($,[Z]);else X.push(Z)},fZ=($)=>{let Z=P4.get($);if(!Z)Z=[],P4.set($,Z);return Z};var q8="express.name",xF="http.route",D8="express.type",L4="router",gF="middleware",mF="request_handler";var cY=($)=>$ instanceof Error?[$,$.message]:[String($),String($)];function $c($){return $.includes(":")||$.includes("*")}var uF=($,Z,X)=>{if(Z.name==="router"){let Q=cF("",Z),J=Q?Q:X||$||"/";return{attributes:{[q8]:J,[D8]:L4},name:`router - ${J}`}}else if(Z.name==="bound dispatch"||Z.name==="handle")return{attributes:{[q8]:($||X)??"request handler",[D8]:mF},name:`request handler${Z.path?` - ${$||X}`:""}`};else return{attributes:{[q8]:Z.name,[D8]:gF},name:`middleware - ${Z.name}`}},cF=($,Z)=>{let X=Array.isArray(Z.handle?.stack)?Z.handle?.stack?.[0]:void 0;if(X?.route?.path)return`${$}${X.route.path}`;if(X&&Array.isArray(X?.handle?.stack))return cF($,X);return $},lF=($,Z,X)=>{if(Array.isArray(X?.ignoreLayersType)&&X?.ignoreLayersType?.includes(Z))return!0;if(!Array.isArray(X?.ignoreLayers))return!1;try{return M1($,X.ignoreLayers,!0)}catch{}return!1};function pF($,Z){let X=fZ($);if(X.length===0)return;if(X.every((Y)=>Y==="/"))return $.originalUrl==="/"?"/":void 0;if(Z==="*")return Z;if(Z.includes("/")&&(Z.includes(",")||Z.includes("\\")||Z.includes("*")||Z.includes("[")))return Z;let Q=Z.startsWith("/")?Z:`/${Z}`;return Q.length>0&&($.originalUrl===Q||$.originalUrl.startsWith(Q)||$c(Q))?Q:void 0}function iF($){let Z=fZ($),X="";for(let Q of Z){if(Q==="/"||Q==="/*")continue;X+=!X||X.endsWith("/")?Q:`/${Q}`}return X.replace(/\/{2,}/g,"/")}var O4=($)=>{let Z=$[0];if(Array.isArray(Z))return Z.map((X)=>dF(X)||"").join(",");return dF(Z)},dF=($)=>typeof $==="string"?$:$ instanceof RegExp||typeof $==="number"?String($):void 0,C4=($)=>oF($?.Router?.prototype),oF=($)=>(typeof $==="object"||typeof $==="function")&&!!$&&("route"in $)&&typeof $.route==="function",sF=($)=>oF($.Router)&&!C4($);function rF($){if(!g()?.getScopeData()?.sdkProcessingMetadata?.normalizedRequest){let X=A7($);g().setSDKProcessingMetadata({normalizedRequest:X})}}function k4($,Z,X){if(!Z?.handle)return;let Q=Z,J=Q.handle;if(C6(J))return;if(J.length===4)return;function Y(W,K,...z){let H=$();rF(W);let G=p();if(!G)return J.apply(this,[W,K,...z]);if(X)SF(W,X);let V=fZ(W),F=!!X,B=iF(W),j=pF(W,B);H.onRouteResolved?.(j);let U=uF(B,Q,X),D=U.attributes[q8],k=U.attributes[D8],R=Object.assign(U.attributes,{[L]:"auto.http.express",[I]:`${k}.express`});if(j)R[xF]=j;if(lF(U.attributes[q8],k,H)){if(F)V.pop();return J.apply(this,[W,K,...z])}let h=g();if(h!==V1()){if(k==="request_handler"){let T=W.method?W.method.toUpperCase():"GET";h.setTransactionName(`${T} ${B}`)}}else P&&w.warn("Isolation scope is still default isolation scope - skipping setting transactionName");return n({name:D,attributes:R},(T)=>{let _=!1;if(U.attributes[D8]===L4)T.end(),_=!0;let l=()=>{if(!_)_=!0,T.end()};for(let o=0;oW0.apply(this,G0))};break}try{return J.apply(this,[W,K,...z])}catch(o){let[W0,G0]=cY(o);throw T.setStatus({code:O,message:G0}),o}finally{if(!_)K.once("finish",l)}})}for(let W in J){if(W in Y)continue;Object.defineProperty(Y,W,{get(){return J[W]},set(K){J[W]=K}})}c$(Y,J),Object.defineProperty(Q,"handle",{enumerable:!0,configurable:!0,writable:!0,value:Y})}function M4($){return!!$&&typeof $==="object"&&"default"in $&&$.default||$}function Zc($){return!!$.express}var nF=!1;function Xc(){if(!nF)nF=!0,P&&w.warn("[Express] `patchExpressModule(options)` is deprecated. Use `patchExpressModule(moduleExports, getOptions)` instead.")}function lY($,Z){let X,Q;if(!Z&&Zc($)){let{express:G,...V}=$;Q=G,X=()=>V,Xc()}else if(typeof Z!=="function")throw TypeError("`patchExpressModule(moduleExports, getOptions)` requires a `getOptions` callback");else X=Z,Q=$;let J=M4(Q),Y=C4(J)?J.Router.prototype:sF(J)?J.Router:void 0;if(!Y)throw TypeError("no valid Express route function to instrument");let W=Y.route;try{l$(Y,"route",function(...V){let F=W.apply(this,V),B=this.stack[this.stack.length-1];return k4(X,B,O4(V)),F})}catch(G){P&&w.error("Failed to patch express route method:",G)}let K=Y.use;try{l$(Y,"use",function(...V){let F=K.apply(this,V),B=this.stack[this.stack.length-1];if(!B)return F;return k4(X,B,O4(V)),F})}catch(G){P&&w.error("Failed to patch express use method:",G)}let{application:z}=J,H=z.use;try{l$(z,"use",function(...V){let F=H.apply(this,V),B=C4(J)?this.router:this._router;if(B){let j=B.stack[B.stack.length-1];if(j)k4(X,j,O4(V))}return F})}catch(G){P&&w.error("Failed to patch express application.use method:",G)}return J}var Qc=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,R4=Symbol("sentryPostgresConnectionContext"),pY=Symbol.for("sentry.instrumented.postgresjs"),Jc=Symbol.for("sentry.query.from.instrumented.sql");function sY($,Z){if(!$||typeof $!=="function")return P&&w.warn("instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance"),$;return oY($,{requireParentSpan:!0,...Z})}function oY($,Z,X){if($[pY])return $;let Q=new Proxy($,{apply(J,Y,W){let K=Reflect.apply(J,Y,W);if(K&&typeof K==="object"&&"handle"in K)tF(K,Q,Z);return K},get(J,Y){let W=J[Y];if(typeof Y!=="string"||typeof W!=="function")return W;if(Y==="unsafe"||Y==="file")return Yc(W,J,Q,Z);if(Y==="begin"||Y==="reserve")return Wc(W,J,Q,Z);return W}});if(X)Q[R4]=X;else Gc($,Q);return $[pY]=!0,Q[pY]=!0,Q}function Yc($,Z,X,Q){return function(...J){let Y=Reflect.apply($,Z,J);if(Y&&typeof Y==="object"&&"handle"in Y)tF(Y,X,Q);return Y}}function Wc($,Z,X,Q){return function(...J){let Y=X[R4];if(typeof J[J.length-1]!=="function"){let G=Reflect.apply($,Z,J);if(G&&typeof G.then==="function")return G.then((V)=>{return oY(V,Q,Y)});return G}let K=J.length===1?J[0]:J[1],z=function(G){let V=oY(G,Q,Y);return K(V)},H=J.length===1?[z]:[J[0],z];return Reflect.apply($,Z,H)}}function tF($,Z,X){if($.handle?.__sentryWrapped)return;$[Jc]=!0;let Q=$.handle,J=async function(...Y){if(this.executed||!Kc(X))return Q.apply(this,Y);let W=zc($.strings),K=eF(W);return n({name:K||"postgresjs.query",op:"db"},(z)=>{z.setAttribute(L,"auto.db.postgresjs"),z.setAttributes({"db.system.name":"postgres","db.query.text":K});let H=Z?Z[R4]:void 0;if(Hc(z,H),X.requestHook)try{X.requestHook(z,K,H)}catch(V){z.setAttribute("sentry.hook.error","requestHook failed"),P&&w.error("Error in requestHook for PostgresJs instrumentation:",V)}let G=this;G.resolve=new Proxy(G.resolve,{apply:(V,F,B)=>{try{aF(z,K,B?.[0]?.command),z.end()}catch(j){P&&w.error("Error ending span in resolve callback:",j)}return Reflect.apply(V,F,B)}}),G.reject=new Proxy(G.reject,{apply:(V,F,B)=>{try{z.setStatus({code:O,message:B?.[0]?.message||"unknown_error"}),z.setAttribute("db.response.status_code",B?.[0]?.code||"unknown"),z.setAttribute("error.type",B?.[0]?.name||"unknown"),aF(z,K),z.end()}catch(j){P&&w.error("Error ending span in reject callback:",j)}return Reflect.apply(V,F,B)}});try{return Q.apply(this,Y)}catch(V){throw z.setStatus({code:O,message:V instanceof Error?V.message:"unknown_error"}),z.end(),V}})};J.__sentryWrapped=!0,$.handle=J}function Kc($){return p()!==void 0||!$.requireParentSpan}function zc($){if(!$?.length)return;if($.length===1)return $[0]||void 0;return $.reduce((Z,X,Q)=>Q===0?X:`${Z}$${Q}${X}`,"")}var iY;function eF($){if(!$)return"Unknown SQL Query";if(!iY)iY=new RegExp("(?=0?J&&J!=="identity"?{"http.response_content_length":Q}:{"http.response_content_length_uncompressed":Q}:{}}function A4($,Z){let X=i1($),Q=M()?.getOptions(),{tracePropagationTargets:J,propagateTraceparent:Y}=Q??{};if(!I6(X,J,Z))return;if(!!$.getHeader("sentry-trace"))return;let K=w1({propagateTraceparent:Y});if(!K)return;let{"sentry-trace":z,baggage:H,traceparent:G}=K;if(z)try{$.setHeader("sentry-trace",z),P&&w.log(G6,"Added sentry-trace header")}catch(V){P&&w.error(G6,"Failed to set sentry-trace header:",k1(V)?V.message:"Unknown error")}if(G&&!$.getHeader("traceparent"))try{$.setHeader("traceparent",G),P&&w.log(G6,"Added traceparent header")}catch(V){P&&w.error(G6,"Failed to set traceparent header:",k1(V)?V.message:"Unknown error")}if(H){let V=w7($.getHeader("baggage"),H);if(V)try{$.setHeader("baggage",V),P&&w.log(G6,"Added baggage header")}catch(F){P&&w.error(G6,"Failed to set baggage header:",k1(F)?F.message:"Unknown error")}}}var JB=($)=>typeof $.__unwrap==="function",Bc="Double-wrapped http.client detected. Either disable spans in Sentry.httpIntegration, or disable the OpenTelemetry HTTP instrumentation. See: https://docs.sentry.io/platforms/javascript/guides/express/opentelemetry/custom-setup/#custom-http-instrumentation",YB=!1,nY=P?($)=>{if(!YB){if(JB($.request)||JB($.get))YB=!0,w.warn(Bc)}}:()=>{};function AZ($){let Z=new i0(100),X=()=>M()?.getOptions(),Q=(J)=>{if(d().getScopeData().sdkProcessingMetadata[P7]===!0)return;let Y=X(),{errorMonitor:W="error",spans:K=Y?e(Y):!0,propagateTrace:z=!1,breadcrumbs:H=!0,http:G,https:V,suppressOtelWarning:F=!1}=$,{request:B}=J;if($.ignoreOutgoingRequests?.(i1(B),B))return;let j=!1;function U(_,l){if(!j)j=!0,ZB(_,l)}function D(_){_.on(W,()=>U(_,void 0)),_.prependListener("response",(l)=>{if(_.listenerCount("response")<=1)l.resume();l.on("end",()=>U(_,l)),l.on(W,()=>U(_,l))})}if(!K){if(H)D(B);if(z)A4(B,Z);return}if(!F){if(G)nY(G);if(V)nY(V)}let k=b(XB(B));if($.outgoingRequestHook?.(k,B),z)if(k.isRecording())m(k,()=>{A4(B,Z)});else A4(B,Z);let R=!1;function h(_){if(!R)R=!0,k.setStatus(_),k.end()}let T=()=>h({code:Y7});B.on("close",T),B.on(W,(_)=>{if(P&&w.log(G6,"outgoingRequest on request error()",_),H)U(B,void 0);h({code:O})}),B.prependListener("response",(_)=>{if(B.removeListener("close",T),B.listenerCount("response")<=1)_.resume();QB(_,k),$.outgoingResponseHook?.(k,_);let l=!1;function o(W0){if(!l){if(l=!0,W0)P&&w.log(G6,"outgoingRequest on response error()",W0);if(H)U(B,_);let G0=_.aborted&&!_.complete,q0=W0||typeof _.statusCode!=="number"||G0?{code:O}:G1(_.statusCode);$.applyCustomAttributesOnSpan?.(k,B,_),h(q0)}}_.on("end",()=>o()),_.on(W,o)})};return{[b6]:Q}}function wc($,Z){if(!C6($.request)){let{[b6]:X}=AZ({...Z,http:$}),Q=$.request;l$($,"request",function(...Y){let W=Q.apply(this,Y);return X({request:W},b6),W})}}function jc($){if(!C6($.get))l$($,"get",function(X,Q,J){let Y=$.request.call(this,X,Q,J);return Y.end(),Y})}function WB($,Z={}){let X=M4($),Q=$;if(X!==$){WB(X,Z);for(let J of["get","request"]){let Y=Object.getOwnPropertyDescriptor(X,J);if(Y)Object.defineProperty(Q,J,Y)}return Q}return wc(Q,Z),jc(Q),$}var N4=($,Z={})=>WB($,Z);function KB($,Z,X,Q){let J=0,Y=[];P&&w.log(Q,"Patching request.on");let W=new WeakMap,K=XY(X);try{$.on=$.addListener=new Proxy($.on,{apply:(z,H,G)=>{let[V,F,...B]=G;if(V==="data"){P&&w.log(Q,`Handling request.on("data") with maximum body size of ${K}b`);let j=new Proxy(F,{apply:(U,D,k)=>{try{let R=k[0],h=Buffer.from(R);if(J{let[,V]=G,F=W.get(V);if(F){W.delete(V);let B=G.slice();return B[1]=F,Reflect.apply(z,H,B)}return Reflect.apply(z,H,G)}}),$.on("end",()=>{try{let z=Buffer.concat(Y).toString("utf-8");if(z){let G=Buffer.byteLength(z,"utf-8")>K?`${Buffer.from(z).subarray(0,K-3).toString("utf-8")}...`:z;Z.setSDKProcessingMetadata({normalizedRequest:{data:G}})}}catch(z){if(P)w.error(Q,"Error building captured request body",z)}})}catch(z){if(P)w.error(Q,"Error patching request to capture body",z)}}var aY=new WeakMap;function zB($,{requestIsolationScope:Z,response:X,sessionFlushingDelayMS:Q}){Z.setSDKProcessingMetadata({requestSession:{status:"ok"}}),X.once("close",()=>{let J=Z.getScopeData().sdkProcessingMetadata.requestSession;if($&&J){P&&w.log(`Recorded request session with status: ${J.status}`);let Y=new Date(P0());Y.setSeconds(0,0);let W=Y.toISOString(),K=aY.get($),z=K?.[W]||{exited:0,crashed:0,errored:0};if(z[{ok:"exited",crashed:"crashed",errored:"errored"}[J.status]]++,K)K[W]=z;else{P&&w.log("Opened new request session aggregate.");let H={[W]:z};aY.set($,H);let G=()=>{clearTimeout(F),V(),aY.delete($);let B=Object.entries(H).map(([j,U])=>({started:j,exited:U.exited,errored:U.errored,crashed:U.crashed}));$.sendSession({aggregates:B})},V=$.on("flush",()=>{P&&w.log("Sending request session aggregate due to client flush"),G()}),F=setTimeout(()=>{P&&w.log("Sending request session aggregate due to flushing schedule"),G()},Q);Y6(F)}}})}var HB="Http.Server",Uc="Http.SentryServerSpans",GB=new WeakMap,VB=Symbol.for("sentry_http_server_instrumented");function qc($){return!$[VB]&&($[VB]=!0)}function Dc($,Z){let X=Z.emit,Q=GB.get(Z);if(X===Q)return;let J=new Proxy(X,{apply(Y,W,K){let[z,...H]=K;if(z!=="request")return Y.apply(W,K);let G=M(),[V,F]=H;if(!G||!qc(V))return Y.apply(W,K);P&&w.log(HB,"Handling incoming request");let B=g().clone();B.setClient(G);let j=V.socket?.remoteAddress,U=V.url||"/",D=A7(V),{maxRequestBodySize:k="medium",ignoreRequestBody:R,sessions:h=!0,sessionFlushingDelayMS:T=60000}=$;if(k!=="none"&&!R?.(U,V))KB(V,B,k,HB);B.setSDKProcessingMetadata({normalizedRequest:D,ipAddress:j});let _=(V.method||"GET").toUpperCase(),l=l1(U),o=`${_} ${l}`;if(B.setTransactionName(o),h)zB(G,{requestIsolationScope:B,response:F,sessionFlushingDelayMS:T??60000});return G7(B,()=>{let W0=D.headers?.["sentry-trace"],G0=D.headers?.baggage,q0=Array.isArray(W0)?W0[0]:W0;return _6({sentryTrace:q0,baggage:Array.isArray(G0)?G0[0]:G0},()=>{let m0=d().getPropagationContext();if(m0.propagationSpanId=d0(),!q0)m0.traceId=N0(),m0.sampleRand=O0();F.once("close",()=>{B.setContext("response",{status_code:F.statusCode})});let e1=$.wrapServerEmitRequest,z0=!1;if(e1)e1(V,F,D,()=>{z0=Y.apply(W,K)});else z0=Y.apply(W,K);return z0})})}});GB.set(Z,J),Z.emit=J}function tY($){let Z=$.wrapServerEmitRequest,X=Pc($),Q={...$,wrapServerEmitRequest(Y,W,K,z){let H=M()?.getOptions();if($.spans??(H?e(H):!1))X(Y,W,K,z);else if(Z)Z(Y,W,K,z);else z()}},J=(Y)=>{let{server:W}=Y;Dc(Q,W)};return{[d7]:J}}function Pc($){let{wrapServerEmitRequest:Z,ignoreIncomingRequests:X,ignoreStaticAssets:Q=!0,onSpanCreated:J,errorMonitor:Y="error",onSpanEnd:W}=$;return(K,z,H,G)=>{if(typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__)return G();return Z?Z(K,z,H,V):V();function V(){let B=g().getClient();if(!B)return G();if(Lc(K,{ignoreStaticAssets:Q,ignoreIncomingRequests:X}))return P&&w.log(Uc,"Skipping span creation for incoming request",K.url),G();let j=H.url||K.url||"/",U=z8(j),D=U?U.pathname:l1(j),k=(K.method||"GET").toUpperCase(),R=`${k} ${D}`,h=K.headers,T=h["user-agent"],_=h["x-forwarded-for"],l=K.httpVersion,o=h.host,W0=o?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost",G0=j.startsWith("https")?"https":"http",{socket:q0}=K,{localAddress:m0,localPort:e1,remoteAddress:z0,remotePort:X7}=q0??{};return n({name:R,kind:c.SERVER,attributes:{[I]:"http.server",[L]:"auto.http.server",[t]:"url","http.route":D,"otel.kind":"SERVER","net.host.ip":m0,"net.host.port":e1,"net.peer.ip":z0,"net.peer.port":X7,"sentry.http.prefetch":Oc(K)||void 0,"http.url":j,"http.method":k,"http.target":U?`${U.pathname}${U.search}`:D,"http.host":o,"net.host.name":W0,"http.client_ip":typeof _==="string"?_.split(",")[0]:void 0,"http.user_agent":T,"http.scheme":G0,"http.flavor":l,"net.transport":l?.toUpperCase()==="QUIC"?"ip_udp":"ip_tcp",...Cc(K),...W6(H.headers||{},B.getDataCollectionOptions())}},($6)=>{J?.($6,K,z);let T9=!1;function g$(m$){if(T9)return;T9=!0,$6.setAttributes({"http.status_text":z.statusMessage?.toUpperCase(),"http.response.status_code":z.statusCode,"http.status_code":z.statusCode,...W6(p5(z.headers),B?.getDataCollectionOptions()??!1,"response")}),$6.setStatus(m$),W?.($6,K,z),$6.end()}z.once("close",()=>{g$(G1(z.statusCode))}),z.once(Y,()=>{let m$=G1(z.statusCode);g$(m$.code===O?m$:{code:O})}),G()})}}}function Lc($,{ignoreStaticAssets:Z,ignoreIncomingRequests:X}){let Q=$.url,J=$.method?.toUpperCase();if(J==="OPTIONS"||J==="HEAD"||!Q)return!0;if(Z&&J==="GET"&&FB(Q))return!0;if(X?.(Q,$))return!0;return!1}function FB($){let Z=l1($);if(Z.match(/\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/))return!0;if(Z.match(/^\/(robots\.txt|sitemap\.xml|manifest\.json|browserconfig\.xml)$/))return!0;return!1}function Oc($){return $.headers["next-router-prefetch"]==="1"}function Cc($){let{headers:Z}=$,X=Z["content-length"],Q=X?parseInt(String(X),10):-1,J=Z["content-encoding"];return Q>=0?J&&J!=="identity"?{"http.request_content_length":Q}:{"http.request_content_length_uncompressed":Q}:{}}function kc($){let Z=$.constructor?.name??"";if(Z.includes("OpenAI"))return"openai";if(Z.includes("Google"))return"google_genai";if(Z.includes("Mistral"))return"mistralai";if(Z.includes("Vertex"))return"google_vertexai";if(Z.includes("Bedrock"))return"aws_bedrock";if(Z.includes("Ollama"))return"ollama";if(Z.includes("Cloudflare"))return"cloudflare";if(Z.includes("Cohere"))return"cohere";return"langchain"}function Mc($){let Z=$??{},X={[L]:h6,[I]:DY,[U0]:"embeddings",[Q0]:Z.model??"unknown"};if(X[K6]=kc(Z),"dimensions"in Z)X[e5]=Z.dimensions;if("encodingFormat"in Z)X[t5]=Z.encodingFormat;return X}function BB($,Z={}){let{recordInputs:X}=U1(Z);return new Proxy($,{apply(Q,J,Y){let W=Mc(J),K=W[Q0]||"unknown";if(X){let z=Y[0];if(z!=null)W[D$]=typeof z==="string"?z:JSON.stringify(z)}return $0({name:`embeddings ${K}`,op:DY,attributes:W},()=>{return Reflect.apply(Q,J,Y).then(void 0,(z)=>{throw E(z,{mechanism:{handled:!1,type:"auto.ai.langchain"}}),z})})}})}function _4($,Z){let X=$;if(typeof X.embedQuery==="function")X.embedQuery=BB(X.embedQuery,Z);if(typeof X.embedDocuments==="function")X.embedDocuments=BB(X.embedDocuments,Z);return $}var I1=N(S(),1),N8=N(o0(),1);import{errorMonitor as W70}from"node:events";var Nf="db.operation.batch.size";var _f="db.query.text";var yf="db.statement";var If="db.system",o7="db.system.name";var Tf="error.type";var Ef="faas.trigger";var hf="gen_ai.embeddings.input",bf="gen_ai.function_id",vf="gen_ai.input.messages",Sf="gen_ai.operation.name";var xf="gen_ai.output.messages";var gf="gen_ai.request.available_tools";var mf="gen_ai.request.model";var df="gen_ai.response.finish_reasons",uf="gen_ai.response.id",cf="gen_ai.response.model",lf="gen_ai.response.streaming";var pf="gen_ai.system";var of="gen_ai.tool.input";var sf="gen_ai.tool.name",rf="gen_ai.tool.output",nf="gen_ai.tool.type";var af="gen_ai.usage.input_tokens";var tf="gen_ai.usage.output_tokens";var ef="gen_ai.usage.total_tokens";var a4="http.method";var M$="http.request.method";var s1="http.response.status_code";var g6="http.route";var s7="http.status_code",$A="http.target",xZ="http.url";var ZA="messaging.system";var XA="network.peer.address",QA="network.peer.port";var JA="net.host.ip";var YA="net.host.port",WA="net.peer.ip";var KA="rpc.grpc.status_code";var zA="rpc.service";var r7="server.address",n7="server.port",zK="service.name",HA="service.version";var R$="url.full",t4="url.path";var GA="url.query",VA="url.scheme";var FA="user_agent.original";var F0=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var f$=N(S(),1);import{subscribe as Q70}from"node:diagnostics_channel";var BA=f$.createContextKey("sentry_http_server_instrumented"),J70="Http.Server";function wA($,Z){w0($,"_startSpanCallback",new WeakRef(Z))}var Y70=($={})=>{let Z={sessions:$.sessions??!0,sessionFlushingDelayMS:$.sessionFlushingDelayMS??60000,maxRequestBodySize:$.maxRequestBodySize??"medium",spans:!1,ignoreRequestBody:$.ignoreRequestBody,wrapServerEmitRequest(X,Q,J,Y){let W=M();if(!W)return Y();if(f$.context.active().getValue(BA))return Y();let K=f$.propagation.extract(f$.context.active(),J.headers).setValue(BA,!0);f$.context.with(K,()=>{W.emit("httpServerRequest",X,Q,J);let z=X._startSpanCallback?.deref();if(z)z(()=>{return Y(),!0});else Y()})}};return{name:J70,setupOnce(){let{[d7]:X}=tY(Z);Q70(d7,X)},afterAllSetup(X){if(F0&&X.getIntegrationByName("Http"))w.warn("It seems that you have manually added `httpServerIntegration` while `httpIntegration` is also present. Make sure to remove `httpServerIntegration` when adding `httpIntegration`.")}}},a7=Y70;var jA="Http.ServerSpans",K70=($={})=>{let Z=$.ignoreStaticAssets??!0,X=$.ignoreIncomingRequests,Q=$.ignoreStatusCodes??[[401,404],[301,303],[305,399]],{onSpanCreated:J}=$,{requestHook:Y,responseHook:W,applyCustomAttributesOnSpan:K}=$.instrumentation??{};return{name:jA,setup(z){if(typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__)return;z.on("httpServerRequest",(H,G,V)=>{let F=H,B=G;wA(F,(U)=>{if(G70(F,{ignoreStaticAssets:Z,ignoreIncomingRequests:X}))return F0&&w.log(jA,"Skipping span creation for incoming request",F.url),U();let D=V.url||F.url||"/",k=z8(D),R=F.headers,h=R["user-agent"],T=R["x-forwarded-for"],_=F.httpVersion,l=R.host,o=l?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost",W0=z.tracer,G0=D.startsWith("https")?"https":"http",q0=V.method||F.method?.toUpperCase()||"GET",m0=k?k.pathname:l1(D),e1=`${q0} ${m0}`,z0=W0.startSpan(e1,{kind:I1.SpanKind.SERVER,attributes:{[I]:"http.server",[L]:"auto.http.otel.http","sentry.http.prefetch":z70(F)||void 0,"http.url":D,"http.method":V.method,"http.target":k?`${k.pathname}${k.search}`:m0,"http.host":l,"net.host.name":o,"http.client_ip":typeof T==="string"?T.split(",")[0]:void 0,"http.user_agent":h,"http.scheme":G0,"http.flavor":_,"net.transport":_?.toUpperCase()==="QUIC"?"ip_udp":"ip_tcp",...V70(F),...W6(V.headers||{},z.getDataCollectionOptions())}});Y?.(z0,F),W?.(z0,B),K?.(z0,F,B),J?.(z0,F,B);let X7={type:N8.RPCType.HTTP,span:z0};return I1.context.with(N8.setRPCMetadata(I1.trace.setSpan(I1.context.active(),z0),X7),()=>{I1.context.bind(I1.context.active(),F),I1.context.bind(I1.context.active(),B);let $6=!1;function T9(g$){if($6)return;$6=!0;let m$=w70(F,B);z0.setAttributes(m$),z0.setStatus(g$),z0.end();let eH=m$["http.route"];if(eH)g().setTransactionName(`${F.method?.toUpperCase()||"GET"} ${eH}`)}return B.on("close",()=>{T9(G1(B.statusCode))}),B.on(W70,()=>{let g$=G1(B.statusCode);T9(g$.code===O?g$:{code:O})}),U()})})})},processEvent(z){if(z.type==="transaction"){let H=z.contexts?.trace?.data?.["http.response.status_code"];if(typeof H==="number"){if(j70(H,Q))return F0&&w.log("Dropping transaction due to status code",H),null}}return z},afterAllSetup(z){if(!F0)return;if(z.getIntegrationByName("Http"))w.warn("It seems that you have manually added `httpServerSpansIntegration` while `httpIntegration` is also present. Make sure to remove `httpIntegration` when adding `httpServerSpansIntegration`.");if(!z.getIntegrationByName("Http.Server"))w.error("It seems that you have manually added `httpServerSpansIntegration` without adding `httpServerIntegration`. This is a requiement for spans to be created - please add the `httpServerIntegration` integration.")}}},t7=K70;function z70($){return $.headers["next-router-prefetch"]==="1"}function H70($){let Z=l1($);if(Z.match(/\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/))return!0;if(Z.match(/^\/(robots\.txt|sitemap\.xml|manifest\.json|browserconfig\.xml)$/))return!0;return!1}function G70($,{ignoreStaticAssets:Z,ignoreIncomingRequests:X}){if(J6())return!0;let Q=$.url,J=$.method?.toUpperCase();if(J==="OPTIONS"||J==="HEAD"||!Q)return!0;if(Z&&J==="GET"&&H70(Q))return!0;if(X?.(Q,$))return!0;return!1}function V70($){let Z=F70($.headers);if(Z==null)return{};if(B70($.headers))return{["http.request_content_length"]:Z};else return{["http.request_content_length_uncompressed"]:Z}}function F70($){let Z=$["content-length"];if(Z===void 0)return null;let X=parseInt(Z,10);if(isNaN(X))return null;return X}function B70($){let Z=$["content-encoding"];return!!Z&&Z!=="identity"}function w70($,Z){let{socket:X}=$,{statusCode:Q,statusMessage:J}=Z,Y={[s1]:Q,[s7]:Q,"http.status_text":J?.toUpperCase()},W=N8.getRPCMetadata(I1.context.active());if(X){let{localAddress:K,localPort:z,remoteAddress:H,remotePort:G}=X;Y[JA]=K,Y[YA]=z,Y[WA]=H,Y["net.peer.port"]=G}if(Y[s7]=Q,Y["http.status_text"]=(J||"").toUpperCase(),W?.type===N8.RPCType.HTTP&&W.route!==void 0){let K=W.route;Y[g6]=K}return Y}function j70($,Z){return Z.some((X)=>{if(typeof X==="number")return X===$;let[Q,J]=X;return $>=Q&&$<=J})}var I8=N(S(),1),rZ=N(r(),1);import{subscribe as mZ0}from"node:diagnostics_channel";var z_="@sentry/instrumentation-http";var a1=ZJ(process.versions.node),m6=a1.major,sZ=a1.minor;import{errorMonitor as dZ0}from"node:events";import*as uZ0 from"node:http";import*as cZ0 from"node:https";var lZ0=a1.major===22&&a1.minor>=12||a1.major===23&&a1.minor>=2||a1.major>=24;class Y9 extends rZ.InstrumentationBase{constructor($={}){super(z_,f,$)}init(){let{outgoingRequestApplyCustomAttributes:$,...Z}=this.getConfig(),X={propagateTrace:Z.propagateTraceInOutgoingRequests,applyCustomAttributesOnSpan:$,...Z,spans:Z.createSpansForOutgoingRequests&&(Z.spans??!0),ignoreOutgoingRequests(z,H){return J6()||!!Z.ignoreOutgoingRequests?.(z,f4(H))},outgoingRequestHook(z,H){Z.outgoingRequestHook?.(z,H);let G=H.once,V=new Proxy(G,{apply(F,B,j){let[U]=j;if(U!=="response")return F.apply(B,j);let D=I8.context.active(),k=I8.trace.setSpan(D,z);return I8.context.with(k,()=>{return F.apply(B,j)})}});H.once=V},outgoingResponseHook(z,H){Z.outgoingResponseHook?.(z,H),I8.context.bind(I8.context.active(),H)},errorMonitor:dZ0,http:uZ0,https:cZ0},{[b6]:Q}=lZ0?AZ(X):{},J=!1,Y=Q?(z)=>{if(!J&&Q)J=!0,mZ0(b6,Q);return z}:void 0,W=Y??((z)=>N4(z,X)),K=Y??((z)=>N4(z,X));return[new rZ.InstrumentationNodeModuleDefinition("http",["*"],W),new rZ.InstrumentationNodeModuleDefinition("https",["*"],K)]}}var V_=N(r(),1);import*as W9 from"diagnostics_channel";var lK="sentry-trace",GX="baggage",pZ0="traceparent";function H_($,Z){let X=VX($.origin,$.path),{tracePropagationTargets:Q,propagateTraceparent:J}=M()?.getOptions()||{},Y=I6(X,Q,Z)?w1({propagateTraceparent:J}):void 0;if(!Y)return;let{"sentry-trace":W,baggage:K,traceparent:z}=Y,H=Array.isArray($.headers)?iZ0($.headers):oZ0($.headers);if(pK(H,lK),pK(H,GX),J)pK(H,pZ0);if(iK(H,lK)===-1){if(W)H.push(lK,W);if(z&&iK(H,"traceparent")===-1)H.push("traceparent",z);let V=iK(H,GX);if(K&&V===-1)H.push(GX,K);else if(K){let F=H[V+1],B=w7(F,K);if(B)H[V+1]=B}}if(Array.isArray($.headers))$.headers.splice(0,$.headers.length,...H);else $.headers=sZ0(H)}function iZ0($){let Z=[];for(let X=0;X<$.length;X++){let Q=$[X];if(X%2===0)Z.push(typeof Q==="string"?Q:String(Q));else Z.push(Array.isArray(Q)?Q.join(", "):Q??"")}return Z}function oZ0($){let Z=$.split(`\r +`),X=[];for(let Q of Z)try{let J=Q.indexOf(":");if(J===-1)continue;let Y=Q.slice(0,J).trim(),W=Q.slice(J+1).trim();if(Y)X.push(Y,W)}catch{w.warn(`Failed to convert string request header to array header: ${Q}`)}return X}function sZ0($){let Z=[];for(let X=0;X<$.length;X+=2){let Q=$[X],J=$[X+1];if(!Q||J==null)continue;Z.push(`${Q}: ${J}`)}if(!Z.length)return"";return Z.join(`\r +`).concat(`\r +`)}function pK($,Z){let X=-1;for(let Q=0;Q<$.length;Q+=2){if($[Q]!==Z)continue;if(X===-1){X=Q;continue}let J=$[X+1];if(Z===GX&&J){let Y=w7($[Q+1],J);if(Y)$[X+1]=Y}$.splice(Q,2),Q-=2}}function iK($,Z){return $.findIndex((X,Q)=>Q%2===0&&X===Z)}function G_($,Z){let X=rZ0($),Q=Z.statusCode,J=MZ(Q);j1({category:"http",data:{status_code:Q,...X},type:"http",level:J},{event:"response",request:$,response:Z})}function rZ0($){try{let Z=VX($.origin,$.path),X=H$(Z),Q={url:G$(X),"http.method":$.method||"GET"};if(X.search)Q["http.query"]=X.search;if(X.hash)Q["http.fragment"]=X.hash;return Q}catch{return{}}}function VX($,Z="/"){try{return new URL(Z,$).toString()}catch{let X=`${$}`;if(X.endsWith("/")&&Z.startsWith("/"))return`${X}${Z.slice(1)}`;if(!X.endsWith("/")&&!Z.startsWith("/"))return`${X}/${Z}`;return`${X}${Z}`}}class K9 extends V_.InstrumentationBase{constructor($={}){super("@sentry/instrumentation-node-fetch",f,$);this._channelSubs=[],this._propagationDecisionMap=new i0(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){return}disable(){super.disable(),this._channelSubs.forEach(($)=>$.unsubscribe()),this._channelSubs=[]}enable(){if(super.enable(),this._channelSubs=this._channelSubs||[],this._channelSubs.length>0)return;this._subscribeToChannel("undici:request:create",this._onRequestCreated.bind(this)),this._subscribeToChannel("undici:request:headers",this._onResponseHeaders.bind(this))}_onRequestCreated({request:$}){let Z=this.getConfig();if(Z.enabled===!1)return;let Q=this._shouldIgnoreOutgoingRequest($);if(this._ignoreOutgoingRequestsMap.set($,Q),Q)return;if(Z.tracePropagation!==!1)H_($,this._propagationDecisionMap)}_onResponseHeaders({request:$,response:Z}){let X=this.getConfig();if(X.enabled===!1)return;let J=X.breadcrumbs,Y=typeof J>"u"?!0:J,W=this._ignoreOutgoingRequestsMap.get($);if(Y&&!W)G_($,Z)}_subscribeToChannel($,Z){let X=m6>18||m6===18&&sZ>=19,Q;if(X)W9.subscribe?.($,Z),Q=()=>W9.unsubscribe?.($,Z);else{let J=W9.channel($);J.subscribe(Z),Q=()=>J.unsubscribe(Z)}this._channelSubs.push({name:$,unsubscribe:Q})}_shouldIgnoreOutgoingRequest($){if(J6())return!0;let Z=VX($.origin,$.path),X=this.getConfig().ignoreOutgoingRequests;if(typeof X!=="function"||!Z)return!1;return X(Z)}}var z1=N(S(),1),A=N(S(),1);var B6=N(Fz(),1),g0=N(o0(),1),Lz="sentry.parentIsRemote",b8="sentry.graphql.operation";function Oz($){if("parentSpanId"in $)return $.parentSpanId;else if("parentSpanContext"in $)return $.parentSpanContext?.spanId;return}function _X($){let Z=$;return!!Z.attributes&&typeof Z.attributes==="object"}function wT($){return typeof $.kind==="number"}function jT($){return!!$.status}function Cz($){return!!$.name}function UT($){if(!_X($))return{};let Z=$.attributes[R$]||$.attributes[xZ],X={url:Z,"http.method":$.attributes[M$]||$.attributes[a4]};if(!X["http.method"]&&X.url)X["http.method"]="GET";try{if(typeof Z==="string"){let Q=H$(Z);if(X.url=G$(Q),Q.search)X["http.query"]=Q.search;if(Q.hash)X["http.fragment"]=Q.hash}}catch{}return X}function qT($){if(wT($))return $.kind;return A.SpanKind.INTERNAL}var AX="sentry-trace",Bz="baggage",kz="sentry.dsc",Mz="sentry.sampled_not_recording",DT="sentry.url",RX0="sentry.sample_rand",fX0="sentry.sample_rate",PT="sentry.ignored",LT="sentry.segment_ignored",yX=A.createContextKey("sentry_scopes"),wz=A.createContextKey("sentry_fork_isolation_scope"),jz=A.createContextKey("sentry_fork_set_scope"),Uz=A.createContextKey("sentry_fork_set_isolation_scope"),OT="_scopeContext";function v8($){return $.getValue(yX)}function CT($,Z){return $.setValue(yX,Z)}function AX0($,Z){w0($,OT,p$(Z))}function B9($){return i$($[OT])}function w9($){let{traceFlags:Z,traceState:X}=$,Q=X?X.get(Mz)==="1":!1;if(Z===A.TraceFlags.SAMPLED)return!0;if(Q)return!1;let J=X?X.get(kz):void 0,Y=J?m1(J):void 0;if(Y?.sampled==="true")return!0;if(Y?.sampled==="false")return!1;return}function NX($,Z,X){let Q=Z[M$]||Z[a4];if(Q)return _X0({attributes:Z,name:$,kind:X},Q);let J=Z[o7]||Z[If],Y=typeof Z[I]==="string"&&Z[I].startsWith("cache.");if(J&&!Y)return NX0({attributes:Z,name:$});let W=Z[t]==="custom"?"custom":"route";if(Z[zA])return{...Q5($,Z,"route"),op:"rpc"};if(Z[ZA])return{...Q5($,Z,W),op:"message"};let H=Z[Ef];if(H)return{...Q5($,Z,W),op:H.toString()};return{op:void 0,description:$,source:"custom"}}function kT($){let Z=_X($)?$.attributes:{},X=Cz($)?$.name:"",Q=qT($);return NX(X,Z,Q)}function NX0({attributes:$,name:Z}){let X=$[f1];if(typeof X==="string")return{op:"db",description:X,source:$[t]||"custom"};if($[t]==="custom")return{op:"db",description:Z,source:"custom"};let Q=$[yf];return{op:"db",description:Q?Q.toString():Z,source:"task"}}function _X0({name:$,kind:Z,attributes:X},Q){let J=["http"];switch(Z){case A.SpanKind.CLIENT:J.push("client");break;case A.SpanKind.SERVER:J.push("server");break}if(X["sentry.http.prefetch"])J.push("prefetch");let{urlPath:Y,url:W,query:K,fragment:z,hasRoute:H}=IX0(X,Z);if(!Y)return{...Q5($,X),op:J.join(".")};let G=X[b8],V=`${Q} ${Y}`,F=G?`${V} (${yX0(G)})`:V,B=H||Y==="/"?"route":"url",j={};if(W)j.url=W;if(K)j["http.query"]=K.slice(1);if(z)j["http.fragment"]=z.slice(1);let U=Z===A.SpanKind.CLIENT||Z===A.SpanKind.SERVER,k=!`${X[L]||"manual"}`.startsWith("auto"),R=X[t]==="custom",h=X[f1],T=!R&&h==null&&(U||!k),{description:_,source:l}=T?{description:F,source:B}:Q5($,X);return{op:J.join("."),description:_,source:l,data:j}}function yX0($){if(Array.isArray($)){let Z=$.slice().sort();if(Z.length<=5)return Z.join(", ");else return`${Z.slice(0,5).join(", ")}, +${Z.length-5}`}return`${$}`}function IX0($,Z){let X=$[$A],Q=$[xZ]||$[R$],J=$[g6],Y=typeof Q==="string"?H$(Q):void 0,W=Y?G$(Y):void 0,K=Y?.search||void 0,z=Y?.hash||void 0;if(typeof J==="string")return{urlPath:J,url:W,query:K,fragment:z,hasRoute:!0};if(Z===A.SpanKind.SERVER&&typeof X==="string")return{urlPath:l1(X),url:W,query:K,fragment:z,hasRoute:!1};if(Y)return{urlPath:W,url:W,query:K,fragment:z,hasRoute:!1};if(typeof X==="string")return{urlPath:l1(X),url:W,query:K,fragment:z,hasRoute:!1};return{urlPath:void 0,url:W,query:K,fragment:z,hasRoute:!1}}function Q5($,Z,X="custom"){let Q=Z[t]||X,J=Z[f1];if(J&&typeof J==="string")return{description:J,source:Q};return{description:$,source:Q}}function Rz($){$.on("createDsc",(Z,X)=>{if(!X)return;let Y=v(X).data[t],{description:W}=Cz(X)?kT(X):{description:void 0};if(Y!=="url"&&W)Z.transaction=W;if(e()){let K=w9(X.spanContext());Z.sampled=K==null?void 0:String(K)}})}function fz(){return A.trace.getActiveSpan()}var N$=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;class IX{constructor(){this._internalState=new Map}set($,Z){let X=this._clone();if(X._internalState.has($))X._internalState.delete($);return X._internalState.set($,Z),X}unset($){let Z=this._clone();return Z._internalState.delete($),Z}get($){return this._internalState.get($)}serialize(){return Array.from(this._internalState.keys()).reverse().map(($)=>`${$}=${this._internalState.get($)}`).join(",")}_clone(){let $=new IX;return $._internalState=new Map(this._internalState),$}}function MT({dsc:$,sampled:Z}){let X=$?n$($):void 0,Q=new IX,J=X?Q.set(kz,X):Q;return Z===!1?J.set(Mz,"1"):J}var RT=new Set;function Az(){return Array.from(RT)}function J5($){RT.add($)}class TX extends g0.W3CBaggagePropagator{constructor(){super();J5("SentryPropagator"),this._urlMatchesTargetsMap=new i0(100)}inject($,Z,X){if(g0.isTracingSuppressed($)){N$&&w.log("[Tracing] Not injecting trace data for url because tracing is suppressed.");return}let Q=A.trace.getSpan($),J=Q&&bX0(Q),{tracePropagationTargets:Y,propagateTraceparent:W}=M()?.getOptions()||{};if(!I6(J,Y,this._urlMatchesTargetsMap)){N$&&w.log("[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:",J);return}let K=EX0(Z),z=hX0(Z),H=A.propagation.getBaggage($)||A.propagation.createBaggage({}),{dynamicSamplingContext:G,traceId:V,spanId:F,sampled:B}=fT($);if(K){let j=B7(K);if(j)Object.entries(j).forEach(([U,D])=>{if(!z&&U.startsWith(A6))return;H=H.setEntry(U,{value:D})})}if(!z&&G)H=Object.entries(G).reduce((j,[U,D])=>{if(D)return j.setEntry(`${A6}${U}`,{value:D});return j},H);if(!z&&V&&V!==A.INVALID_TRACEID){if(X.set(Z,AX,X$(V,F,B)),W)X.set(Z,"traceparent",Q$(V,F,B))}super.inject(A.propagation.setBaggage($,H),Z,X)}extract($,Z,X){let Q=X.get(Z,AX),J=X.get(Z,Bz),Y=Q?Array.isArray(Q)?Q[0]:Q:void 0;return NT(AT($,{sentryTrace:Y,baggage:J}))}fields(){return[AX,Bz,"traceparent"]}}function fT($,Z={}){let X=A.trace.getSpan($);if(X?.spanContext().isRemote){let K=X.spanContext();return{dynamicSamplingContext:j0(X),traceId:K.traceId,spanId:void 0,sampled:w9(K)}}if(X){let K=X.spanContext();return{dynamicSamplingContext:j0(X),traceId:K.traceId,spanId:K.spanId,sampled:w9(K)}}let Q=Z.scope||v8($)?.scope||d(),J=Z.client||M(),Y=Q.getPropagationContext();return{dynamicSamplingContext:J?c1(J,Q):void 0,traceId:Y.traceId,spanId:Y.propagationSpanId,sampled:Y.sampled}}function AT($,{sentryTrace:Z,baggage:X}){let Q=N6(Z,X),{traceId:J,parentSpanId:Y,sampled:W,dsc:K}=Q,z=M(),H=m1(X);if(!Y||z&&!g9(z,H?.org_id))return $;let G=vX0({traceId:J,spanId:Y,sampled:W,dsc:K});return A.trace.setSpanContext($,G)}function TX0($,Z,X){let Q=NT(AT($,Z));return A.context.with(Q,X)}function NT($){let Z=v8($),X={scope:Z?Z.scope:d().clone(),isolationScope:Z?Z.isolationScope:g()};return CT($,X)}function EX0($){try{let Z=$[Bz];return Array.isArray(Z)?Z.join(","):Z}catch{return}}function hX0($){try{return $[AX]}catch{return}}function bX0($){let Z=v($).data,X=Z[xZ]||Z[R$];if(typeof X==="string")return X;let Q=$.spanContext().traceState?.get(DT);if(Q)return Q;return}function vX0({spanId:$,traceId:Z,sampled:X,dsc:Q}){let J=MT({dsc:Q,sampled:X});return{traceId:Z,spanId:$,isRemote:!0,traceFlags:X?A.TraceFlags.SAMPLED:A.TraceFlags.NONE,traceState:J}}function _T($,Z,X){let Q=ET(),{name:J,parentSpan:Y}=$;return xT(Y)(()=>{let K=vT($.scope,$.forceTransaction),z=$.onlyIfParent&&!A.trace.getSpan(K),H=z?g0.suppressTracing(K):K;if(z)M()?.recordDroppedEvent("no_parent_span","span");let G=hT($);if(!e()){let V=g0.isTracingSuppressed(H)?H:g0.suppressTracing(H);return A.context.with(V,()=>{return Q.startActiveSpan(J,G,V,(F)=>{return qz(F),A.context.with(K,()=>{return d1(()=>Z(F),()=>{if(v(F).status===void 0)F.setStatus({code:A.SpanStatusCode.ERROR})},X?()=>F.end():void 0)})})})}return Q.startActiveSpan(J,G,H,(V)=>{return qz(V),d1(()=>Z(V),()=>{if(v(V).status===void 0)V.setStatus({code:A.SpanStatusCode.ERROR})},X?()=>V.end():void 0)})})}function yT($,Z){return _T($,Z,!0)}function IT($,Z){return _T($,(X)=>Z(X,()=>X.end()),!1)}function TT($){let Z=ET(),{name:X,parentSpan:Q}=$;return xT(Q)(()=>{let Y=vT($.scope,$.forceTransaction),W=$.onlyIfParent&&!A.trace.getSpan(Y),K=W?g0.suppressTracing(Y):Y;if(W)M()?.recordDroppedEvent("no_parent_span","span");let z=hT($);if(!e())K=g0.isTracingSuppressed(K)?K:g0.suppressTracing(K);let H=Z.startSpan(X,z,K);return qz(H),H})}function Nz($,Z){let X=$?A.trace.setSpan(A.context.active(),$):A.trace.deleteSpan(A.context.active());return A.context.with(X,()=>Z(d()))}function ET(){return M()?.tracer||A.trace.getTracer("@sentry/opentelemetry",f)}function hT($){let{startTime:Z,attributes:X,kind:Q,op:J,links:Y}=$,W=typeof Z==="number"?bT(Z):Z;return{attributes:J?{[I]:J,...X}:X,kind:Q,links:Y,startTime:W}}function bT($){return $<9999999999?$*1000:$}function qz($){let Z=$.end.bind($);$.end=(X)=>{return Z(typeof X==="number"?bT(X):X)}}function vT($,Z){let X=SX0($),Q=A.trace.getSpan(X);if(!Q)return X;if(!Z)return X;let J=A.trace.deleteSpan(X),{spanId:Y,traceId:W}=Q.spanContext(),K=w9(Q.spanContext()),z=J0(Q),H=j0(z),G=MT({dsc:H,sampled:K}),V={traceId:W,spanId:Y,isRemote:!0,traceFlags:K?A.TraceFlags.SAMPLED:A.TraceFlags.NONE,traceState:G};return A.trace.setSpanContext(J,V)}function SX0($){if($){let Z=B9($);if(Z)return Z}return A.context.active()}function ST($,Z){return TX0(A.context.active(),$,Z)}function xX0($){let Z=N0(),X=d0(),Q={traceId:Z,spanId:X,isRemote:!0,traceFlags:A.TraceFlags.NONE},J=A.trace.setSpanContext(A.context.active(),Q);return A.context.with(J,()=>{return d().setPropagationContext({traceId:Z,sampleRand:O0()}),$()})}function _z($,Z){let X=B9(Z),Q=X&&A.trace.getSpan(X),J=Q?Q6(Q):s$(Z);return[Q?j0(Q):c1($,Z),J]}function xT($){return $!==void 0?(Z)=>{return Nz($,Z)}:(Z)=>Z()}function gT($){let Z=g0.suppressTracing(A.context.active());return A.context.with(Z,$)}function gX0($){let Z=$?B9($):A.context.active();return Z?g0.isTracingSuppressed(Z):!1}function yz($){$.on("preprocessEvent",(Z)=>{let X=fz();if(!X||Z.type==="transaction")return;Z.contexts={trace:Q6(X),...Z.contexts};let Q=J0(X);return Z.sdkProcessingMetadata={dynamicSamplingContext:j0(Q),...Z.sdkProcessingMetadata},Z})}function mT($,Z){let X=A.trace.getSpan($),Q;if(X?.spanContext().traceState?.get(PT)==="1"){let U=A.trace.deleteSpan($),D=A.trace.getSpan(Z);Q=D?A.trace.setSpan(U,D):U}else Q=$;let J=v8(Q),Y=J?.scope||d(),W=J?.isolationScope||g(),K=Q.getValue(wz)===!0,z=Q.getValue(jz),H=Q.getValue(Uz),G=z||Y.clone(),V=H||(K?W.clone():W),j=CT(Q,{scope:G,isolationScope:V}).deleteValue(wz).deleteValue(jz).deleteValue(Uz);return AX0(G,j),j}function mX0($){let Z=new Map;for(let X of $)dX0(Z,X);return Array.from(Z,function([X,Q]){return Q})}function dT($){return $.attributes[Lz]!==!0?Oz($):void 0}function dX0($,Z){let X=Z.spanContext().spanId,Q=dT(Z);if(!Q){Dz($,{id:X,span:Z,children:[]});return}let J=uX0($,Q),Y=Dz($,{id:X,span:Z,parentNode:J,children:[]});J.children.push(Y)}function uX0($,Z){let X=$.get(Z);if(X)return X;return Dz($,{id:Z,children:[]})}function Dz($,Z){let X=$.get(Z.id);if(X?.span)return X;if(X&&!X.span)return X.span=Z.span,X.parentNode=Z.parentNode,X;return $.set(Z.id,Z),Z}var uT={"1":"cancelled","2":"unknown_error","3":"invalid_argument","4":"deadline_exceeded","5":"not_found","6":"already_exists","7":"permission_denied","8":"resource_exhausted","9":"failed_precondition","10":"aborted","11":"out_of_range","12":"unimplemented","13":"internal_error","14":"unavailable","15":"data_loss","16":"unauthenticated"},cX0=($)=>{return Object.values(uT).includes($)};function cT($){let Z=_X($)?$.attributes:{},X=jT($)?$.status:void 0;if(X){if(X.code===A.SpanStatusCode.OK)return{code:M6};else if(X.code===A.SpanStatusCode.ERROR){if(typeof X.message>"u"){let J=HT(Z);if(J)return J}if(X.message&&cX0(X.message))return{code:O,message:X.message};else return{code:O,message:"internal_error"}}}let Q=HT(Z);if(Q)return Q;if(X?.code===A.SpanStatusCode.UNSET)return{code:M6};else return{code:O,message:"unknown_error"}}function HT($){let Z=$[s1]||$[s7],X=$[KA],Q=typeof Z==="number"?Z:typeof Z==="string"?parseInt(Z):void 0;if(typeof Q==="number")return G1(Q);if(typeof X==="string")return{code:O,message:uT[X]||"unknown_error"};return}var GT=1000,lX0=300,pX0=1e4;class lT{constructor($){this._finishedSpanBucketSize=$?.timeout||lX0,this._finishedSpanBuckets=Array(this._finishedSpanBucketSize).fill(void 0),this._lastCleanupTimestampInS=Math.floor(P0()/1000),this._spansToBucketEntry=new WeakMap,this._sentSpans=new i0(pX0),this._debouncedFlush=tJ(this.flush.bind(this),1,{maxWait:100})}export($){let Z=Math.floor(P0()/1000);if(this._lastCleanupTimestampInS!==Z){let Y=0;if(this._finishedSpanBuckets.forEach((W,K)=>{if(W&&W.timestampInS<=Z-this._finishedSpanBucketSize)Y+=W.spans.size,this._finishedSpanBuckets[K]=void 0}),Y>0)N$&&w.log(`SpanExporter dropped ${Y} spans because they were pending for more than ${this._finishedSpanBucketSize} seconds.`);this._lastCleanupTimestampInS=Z}let X=Z%this._finishedSpanBucketSize,Q=this._finishedSpanBuckets[X]||{timestampInS:Z,spans:new Set};this._finishedSpanBuckets[X]=Q,Q.spans.add($),this._spansToBucketEntry.set($,Q);let J=dT($);if(!J||this._sentSpans.get(J))this._debouncedFlush()}flush(){let $=this._finishedSpanBuckets.flatMap((J)=>J?Array.from(J.spans):[]),Z=this._maybeSend($),X=Z.size,Q=$.length-X;N$&&w.log(`SpanExporter exported ${X} spans, ${Q} spans are waiting for their parent spans to finish`);for(let J of Z){this._sentSpans.set(J.spanContext().spanId,1);let Y=this._spansToBucketEntry.get(J);if(Y)Y.spans.delete(J)}this._debouncedFlush.cancel()}clear(){this._finishedSpanBuckets=this._finishedSpanBuckets.fill(void 0),this._sentSpans.clear(),this._debouncedFlush.cancel()}_maybeSend($){let Z=mX0($),X=new Set,Q=this._getCompletedRootNodes(Z);for(let J of Q){let Y=J.span;X.add(Y);let W=oX0(Y);if(J.parentNode&&this._sentSpans.get(J.parentNode.id)){let G=W.contexts?.trace?.data;if(G)G["sentry.parent_span_already_sent"]=!0}let K=W.spans||[],z=!1;for(let G of J.children)if(Pz(G,K,X))z=!0;if(W.spans=K.length>GT?K.sort((G,V)=>G.start_timestamp-V.start_timestamp).slice(0,GT):K,z)W.sdkProcessingMetadata={...W.sdkProcessingMetadata,hasGenAiSpans:!0};let H=Z8(Y.events);if(H)W.measurements=H;$Z(W)}return X}_nodeIsCompletedRootNodeOrHasSentParent($){return!!$.span&&(!$.parentNode||!!this._sentSpans.get($.parentNode.id))}_getCompletedRootNodes($){return $.filter((Z)=>this._nodeIsCompletedRootNodeOrHasSentParent(Z))}}function iX0($){let Z=$.attributes,X=Z[L],Q=Z[I],J=Z[t];return{origin:X,op:Q,source:J}}function oX0($){let{op:Z,description:X,data:Q,origin:J="manual",source:Y}=pT($),W=Q1($),K=$.attributes[R1],z={[t]:Y,[R1]:K,[I]:Z,[L]:J,...Q,...iT($.attributes)},{links:H}=$,{traceId:G,spanId:V}=$.spanContext(),F=Oz($),B=cT($),j={parent_span_id:F,span_id:V,trace_id:G,data:z,origin:J,op:Z,status:t$(B),links:a$(H)},U=z[s1],D=typeof U==="number"?{response:{status_code:U}}:void 0;return{contexts:{trace:j,otel:{resource:$.resource.attributes},...D},spans:[],start_timestamp:c0($.startTime),timestamp:c0($.endTime),transaction:X,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:W.scope,capturedSpanIsolationScope:W.isolationScope,sampleRate:K,dynamicSamplingContext:j0($)},...Y&&{transaction_info:{source:Y}}}}function Pz($,Z,X){let Q=$.span;if(Q)X.add(Q);if(!Q){let T=!1;return $.children.forEach((_)=>{if(Pz(_,Z,X))T=!0}),T}let Y=Q.spanContext().spanId,W=Q.spanContext().traceId,K=Oz(Q),{attributes:z,startTime:H,endTime:G,links:V}=Q,{op:F,description:B,data:j,origin:U="manual"}=pT(Q),D={[L]:U,[I]:F,...iT(z),...j},k=cT(Q),R={span_id:Y,trace_id:W,data:D,description:B,parent_span_id:K,start_timestamp:c0(H),timestamp:c0(G)||void 0,status:t$(k),op:F,origin:U,measurements:Z8(Q.events),links:a$(V)};Z.push(R);let h=!!F?.startsWith("gen_ai.");return $.children.forEach((T)=>{if(Pz(T,Z,X))h=!0}),h}function pT($){let{op:Z,source:X,origin:Q}=iX0($),{op:J,description:Y,source:W,data:K}=kT($),z=Z||J,H=X||W,G={...K,...sX0($)};return{op:z,description:Y,source:H,origin:Q,data:G}}function iT($){let Z={...$};return delete Z[R1],delete Z[Lz],delete Z[f1],Z}function sX0($){let Z=$.attributes,X={};if($.kind!==A.SpanKind.INTERNAL)X["otel.kind"]=A.SpanKind[$.kind];let Q=Z[s7];if(Q)X[s1]=Q;let J=UT($);if(J.url)X.url=J.url;if(J["http.query"])X["http.query"]=J["http.query"].slice(1);if(J["http.fragment"])X["http.fragment"]=J["http.fragment"].slice(1);return X}class EX{constructor($){if(this._unsubscribePreprocessSpan=void 0,J5("SentrySpanProcessor"),this._exporter=new lT($),this._client=$?.client??M(),this._client&&R0(this._client))this._unsubscribePreprocessSpan=this._client.on("preprocessSpan",rX0)}async forceFlush(){this._exporter.flush()}async shutdown(){this._unsubscribePreprocessSpan?.(),this._exporter.clear()}onStart($,Z){let X=A.trace.getSpan(Z),Q=v8(Z);if(X&&!X.spanContext().isRemote)e$(X,$);if(X?.spanContext().isRemote)$.setAttribute(Lz,!0);if(Z===A.ROOT_CONTEXT)Q={scope:z7(),isolationScope:V1()};if(Q)k6($,Q.scope,Q.isolationScope);l9($),this._client?.emit("spanStart",$)}onEnd($){if(p9($),this._client?.emit("spanEnd",$),this._client&&R0(this._client))this._client.emit("afterSpanEnd",$);else this._exporter.export($)}}function rX0($,Z){let X=$.attributes;if(!X)return;let Q=Z?.spanKind??c.INTERNAL,{op:J,description:Y,source:W,data:K}=NX($.name,X,Q);if($.name=Y,E0($,{[I]:J,[t]:W,...K}),Q!==c.INTERNAL)E0($,{"otel.kind":QY(Q)})}class hX{constructor($){this._client=$,this._isSpanStreaming=R0($),J5("SentrySampler")}shouldSample($,Z,X,Q,J,Y){let W=this._client.getOptions(),{ignoreSpans:K}=W,z=tX0($),H=z?.spanContext();if(!e(W))return c6({decision:void 0,context:$,spanAttributes:J});let G=J[a4]||J[M$];if(Q===A.SpanKind.CLIENT&&G&&(!z||H?.isRemote)){if(!this._isSpanStreaming)return this._client.recordDroppedEvent("no_parent_span","span"),c6({decision:void 0,context:$,spanAttributes:J})}let V=z?nX0(z,Z,X):void 0;if(!(!z||H?.isRemote)){if(this._isSpanStreaming){if(V){if(K?.length){let{description:q0,op:m0}=NX(X,J,Q);if(u1({description:q0,op:J[I]??m0,attributes:J},K))return this._client.recordDroppedEvent("ignored","span"),c6({decision:B6.SamplingDecision.NOT_RECORD,context:$,spanAttributes:J,ignoredChildSpan:!0})}}if(!V){let q0=H?.traceState?.get(LT)==="1";this._client.recordDroppedEvent(q0?"ignored":"sample_rate","span")}}return c6({decision:V?B6.SamplingDecision.RECORD_AND_SAMPLED:B6.SamplingDecision.NOT_RECORD,context:$,spanAttributes:J})}let{description:B,data:j,op:U}=NX(X,J,Q),D={...j,...J};if(U)D[I]=U;if(this._isSpanStreaming&&K?.length&&u1({description:B,op:D[I]??U,attributes:D},K))return this._client.recordDroppedEvent("ignored","span"),c6({decision:B6.SamplingDecision.NOT_RECORD,context:$,spanAttributes:J,ignoredSegmentSpan:!0});let k={decision:!0};if(this._client.emit("beforeSampling",{spanAttributes:D,spanName:B,parentSampled:V,parentContext:H},k),!k.decision)return c6({decision:void 0,context:$,spanAttributes:J});let{isolationScope:R}=v8($)??{},h=H?.traceState?H.traceState.get(kz):void 0,T=h?m1(h):void 0,_=F1(T?.sample_rand)??O0(),[l,o,W0]=i9(W,{name:B,attributes:D,normalizedRequest:R?.getScopeData().sdkProcessingMetadata.normalizedRequest,parentSampled:V,parentSampleRate:F1(T?.sample_rate)},_),G0=`${G}`.toUpperCase();if(G0==="OPTIONS"||G0==="HEAD")return N$&&w.log(`[Tracing] Not sampling span because HTTP method is '${G0}' for ${X}`),c6({decision:B6.SamplingDecision.NOT_RECORD,context:$,spanAttributes:J,sampleRand:_,downstreamTraceSampleRate:0});if(!l&&V===void 0)N$&&w.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),this._client.recordDroppedEvent("sample_rate",this._isSpanStreaming?"span":"transaction");return{...c6({decision:l?B6.SamplingDecision.RECORD_AND_SAMPLED:B6.SamplingDecision.NOT_RECORD,context:$,spanAttributes:J,sampleRand:_,downstreamTraceSampleRate:W0?o:void 0}),attributes:{[R1]:W0?o:void 0}}}toString(){return"SentrySampler"}}function nX0($,Z,X){let Q=$.spanContext();if(A.isSpanContextValid(Q)&&Q.traceId===Z){if(Q.isRemote){let Y=w9($.spanContext());return N$&&w.log(`[Tracing] Inheriting remote parent's sampled decision for ${X}: ${Y}`),Y}let J=w9(Q);return N$&&w.log(`[Tracing] Inheriting parent's sampled decision for ${X}: ${J}`),J}return}function c6({decision:$,context:Z,spanAttributes:X,sampleRand:Q,downstreamTraceSampleRate:J,ignoredChildSpan:Y,ignoredSegmentSpan:W}){let K=aX0(Z,X);if(J!==void 0)K=K.set(fX0,`${J}`);if(Q!==void 0)K=K.set(RX0,`${Q}`);if(Y)K=K.set(PT,"1");if(W)K=K.set(LT,"1");if($==null)return{decision:B6.SamplingDecision.NOT_RECORD,traceState:K};if($===B6.SamplingDecision.NOT_RECORD)return{decision:$,traceState:K.set(Mz,"1")};return{decision:$,traceState:K}}function aX0($,Z){let J=A.trace.getSpan($)?.spanContext()?.traceState||new IX,Y=Z[xZ]||Z[R$];if(Y&&typeof Y==="string")J=J.set(DT,Y);return J}function tX0($){let Z=A.trace.getSpan($);return Z&&A.isSpanContextValid(Z.spanContext())?Z:void 0}var VT="telemetry.sdk.language",FT="telemetry.sdk.name",BT="telemetry.sdk.version",eX0="service.namespace";class Iz{constructor($){this._attributes=$}get attributes(){return this._attributes}merge($){if(!$)return this;return new Iz({...this._attributes,...$.attributes})}getRawAttributes(){return Object.entries(this._attributes)}}function $Q0($){if(!$)return{};let Z={};for(let X of $.split(",")){let Q=X.indexOf("=");if(Q===-1)continue;let J=X.substring(0,Q).trim(),Y=X.substring(Q+1).trim();if(J)try{Z[J]=decodeURIComponent(Y)}catch{Z[J]=Y}}return Z}function Tz($){let Z=typeof process<"u"?process.env:{},X=Z.OTEL_SERVICE_NAME,Q=$Q0(Z.OTEL_RESOURCE_ATTRIBUTES);return new Iz({[eX0]:"sentry",[zK]:$,...Q,...X?{[zK]:X}:{},[HA]:f,[VT]:g0.SDK_INFO[VT],[FT]:g0.SDK_INFO[FT],[BT]:g0.SDK_INFO[BT]})}function ZQ0({span:$,scope:Z,client:X,propagateTraceparent:Q}={}){let J=(Z&&B9(Z))??z1.context.active();if($){let{scope:G}=Q1($);J=G&&B9(G)||z1.trace.setSpan(z1.context.active(),$)}let{traceId:Y,spanId:W,sampled:K,dynamicSamplingContext:z}=fT(J,{scope:Z,client:X}),H={"sentry-trace":X$(Y,W,K),baggage:n$(z)};if(Q)H.traceparent=Q$(Y,W,K);return H}function oT($){function Z(){let z=z1.context.active(),H=v8(z);if(H)return H;return{scope:z7(),isolationScope:V1()}}function X(z){let H=z1.context.active();return z1.context.with(H,()=>{return z(W())})}function Q(z,H){let G=B9(z)||z1.context.active();return z1.context.with(G.setValue(jz,z),()=>{return H(z)})}function J(z){let H=z1.context.active();return z1.context.with(H.setValue(wz,!0),()=>{return z(K())})}function Y(z,H){let G=z1.context.active();return z1.context.with(G.setValue(Uz,z),()=>{return H(K())})}function W(){return Z().scope}function K(){return Z().isolationScope}QJ({withScope:X,withSetScope:Q,withSetIsolationScope:Y,withIsolationScope:J,getCurrentScope:W,getIsolationScope:K,startSpan:yT,startSpanManual:IT,startInactiveSpan:TT,getActiveSpan:fz,suppressTracing:gT,isTracingSuppressed:gX0,getTraceData:ZQ0,continueTrace:ST,startNewTrace:xX0,withActiveSpan:Nz,getTracingChannelBinding:$?.getTracingChannelBinding})}var S8=N(S(),1),sT=N(S(),1);import{AsyncLocalStorage as rT}from"node:async_hooks";import{EventEmitter as XQ0}from"node:events";var QQ0=["addListener","on","once","prependListener","prependOnceListener"];class Ez{constructor(){this._kOtListeners=Symbol("OtListeners"),this._wrapped=!1,J5("SentryContextManager"),this._asyncLocalStorage=M0(V0()).getTracingChannelBinding?.()?.asyncLocalStorage??new rT}active(){return this._asyncLocalStorage.getStore()??sT.ROOT_CONTEXT}with($,Z,X,...Q){let J=mT($,this.active()),Y=X==null?Z:Z.bind(X);return this._asyncLocalStorage.run(J,Y,...Q)}enable(){return this}disable(){return this._asyncLocalStorage.disable(),this}bind($,Z){if(Z instanceof XQ0)return this._bindEventEmitter($,Z);if(typeof Z==="function")return this._bindFunction($,Z);return Z}getAsyncLocalStorageLookup(){return{asyncLocalStorage:this._asyncLocalStorage,contextSymbol:yX}}_bindFunction($,Z){let X=this.with.bind(this),Q=function(...J){return X($,()=>Z.apply(this,J))};return Object.defineProperty(Q,"length",{enumerable:!1,configurable:!0,writable:!1,value:Z.length}),Q}_bindEventEmitter($,Z){if(this._getPatchMap(Z)!==void 0)return Z;this._createPatchMap(Z);for(let X of QQ0){if(Z[X]===void 0)continue;Z[X]=this._patchAddListener(Z,Z[X],$)}if(typeof Z.removeListener==="function")Z.removeListener=this._patchRemoveListener(Z,Z.removeListener);if(typeof Z.off==="function")Z.off=this._patchRemoveListener(Z,Z.off);if(typeof Z.removeAllListeners==="function")Z.removeAllListeners=this._patchRemoveAllListeners(Z,Z.removeAllListeners);return Z}_patchRemoveListener($,Z){let X=this;return function(Q,J){let Y=X._getPatchMap($)?.[Q];if(Y===void 0)return Z.call(this,Q,J);let W=Y.get(J);return Z.call(this,Q,W||J)}}_patchRemoveAllListeners($,Z){let X=this;return function(Q){let J=X._getPatchMap($);if(J!==void 0){if(arguments.length===0)X._createPatchMap($);else if(Q!==void 0&&J[Q]!==void 0)delete J[Q]}return Z.apply(this,arguments)}}_patchAddListener($,Z,X){let Q=this;return function(J,Y){if(Q._wrapped)return Z.call(this,J,Y);let W=Q._getPatchMap($);if(W===void 0)W=Q._createPatchMap($);let K=W[J];if(K===void 0)K=new WeakMap,W[J]=K;let z=Q.bind(X,Y);K.set(Y,z),Q._wrapped=!0;try{return Z.call(this,J,z)}finally{Q._wrapped=!1}}}_createPatchMap($){let Z=Object.create(null);return $[this._kOtListeners]=Z,Z}_getPatchMap($){return $[this._kOtListeners]}}function nT($){oT({getTracingChannelBinding:!$?.skipOpenTelemetrySetup?JQ0():YQ0()})}function JQ0(){let $=new rT;return()=>{return{asyncLocalStorage:$,getStoreWithActiveSpan:(Z)=>S8.trace.setSpan(S8.context.active(),Z)}}}function YQ0(){return()=>{try{let Z=S8.context._getContextManager()?.getAsyncLocalStorageLookup().asyncLocalStorage;return Z?{asyncLocalStorage:Z,getStoreWithActiveSpan:(X)=>S8.trace.setSpan(S8.context.active(),X)}:void 0}catch{return}}}var bX=Ez;var Y5=N(S(),1);function hz(){Y5.diag.disable(),Y5.diag.setLogger({error:w.error,warn:w.warn,info:w.log,debug:w.log,verbose:w.log},Y5.DiagLogLevel.DEBUG)}var bz=N(r(),1),W5={};function y($,Z,X){if(X)return KQ0($,Z,X);return WQ0($,Z)}function WQ0($,Z){return Object.assign((X)=>{let Q=W5[$];if(Q){if(X)Q.setConfig(X);return Q}let J=Z(X);return W5[$]=J,bz.registerInstrumentations({instrumentations:[J]}),J},{id:$})}function KQ0($,Z,X){return Object.assign((Q)=>{let J=X(Q),Y=W5[$];if(Y)return Y.setConfig(J),Y;let W=new Z(J);return W5[$]=W,bz.registerInstrumentations({instrumentations:[W]}),W},{id:$})}import*as vz from"node:diagnostics_channel";var zQ0="ChildProcess",Sz=C(($={})=>{return{name:zQ0,setup(){vz.channel("child_process").subscribe((Z)=>{if(Z&&typeof Z==="object"&&"process"in Z)HQ0(Z.process,$)}),vz.channel("worker_threads").subscribe((Z)=>{if(Z&&typeof Z==="object"&&"worker"in Z)GQ0(Z.worker,$)})}}});function HQ0($,Z){let X=!1,Q;$.on("spawn",()=>{if($.spawnfile==="/usr/bin/sw_vers"){X=!0;return}if(Q={spawnfile:$.spawnfile},Z.includeChildProcessArgs)Q.spawnargs=$.spawnargs}).on("exit",(J)=>{if(!X){if(X=!0,J!==null&&J!==0)j1({category:"child_process",message:`Child process exited with code '${J}'`,level:J===0?"info":"warning",data:Q})}}).on("error",(J)=>{if(!X)X=!0,j1({category:"child_process",message:`Child process errored with '${J.message}'`,level:"error",data:Q})})}function GQ0($,Z){let X;$.on("online",()=>{X=$.threadId}).on("error",(Q)=>{if(Z.captureWorkerErrors!==!1)E(Q,{mechanism:{type:"auto.child_process.worker_thread",handled:!1,data:{threadId:String(X)}}});else j1({category:"worker_thread",message:`Worker thread errored with '${Q.message}'`,level:"error",data:{threadId:X}})})}import{execFile as VQ0}from"node:child_process";import{readFile as FQ0,readdir as BQ0}from"node:fs";import*as A0 from"node:os";import{join as wQ0}from"node:path";import{promisify as eT}from"node:util";var jQ0=eT(FQ0),UQ0=eT(BQ0),qQ0="Context",DQ0=($={})=>{let Z={app:!0,os:!0,device:!0,culture:!0,cloudResource:!0,...$},X=Z.app?kQ0():void 0,Q=Z.device?MQ0(Z.device):void 0,J=Z.culture?CQ0():void 0,Y=Z.cloudResource?yQ0():void 0,W=Z.os?OQ0():void 0,K={"process.runtime.engine.name":"v8","process.runtime.engine.version":process.versions.v8,...aT({app:X,device:Q,culture:J,cloud_resource:Y})};if(W)W.then((G)=>Object.assign(K,aT({os:G}))).catch(()=>{});let z=(async()=>{let G={};if(W)G.os=await W;if(X)G.app=X;if(Q)G.device=Q;if(J)G.culture=J;if(Y)G.cloud_resource=Y;return G})();async function H(G){let V=PQ0(await z);return G.contexts={...G.contexts,app:{...V.app,...G.contexts?.app},os:{...V.os,...G.contexts?.os},device:{...V.device,...G.contexts?.device},culture:{...V.culture,...G.contexts?.culture},cloud_resource:{...V.cloud_resource,...G.contexts?.cloud_resource}},G}return{name:qQ0,processEvent(G){return H(G)},processSegmentSpan(G){E0(G,K),E0(G,LQ0(X,Q))}}},xz=C(DQ0);function PQ0($){if($.app?.app_memory)$.app.app_memory=process.memoryUsage().rss;if($.app?.free_memory&&typeof process.availableMemory==="function"){let Z=process.availableMemory?.();if(Z!=null)$.app.free_memory=Z}if($.device?.free_memory)$.device.free_memory=A0.freemem();return $}function aT($){let Z={},{app:X,device:Q,os:J,culture:Y,cloud_resource:W}=$;if(X){if(X.app_start_time)Z["app.start_time"]=X.app_start_time}if(Q){if(Q.arch)Z["device.archs"]=[Q.arch];if(Q.boot_time)Z["device.boot_time"]=Q.boot_time;if(Q.memory_size!=null)Z["device.memory_size"]=Q.memory_size;if(Q.processor_count!=null)Z["device.processor_count"]=Q.processor_count;if(Q.cpu_description)Z["device.cpu_description"]=Q.cpu_description;if(Q.processor_frequency!=null)Z["device.processor_frequency"]=Q.processor_frequency}if(J){if(J.name)Z["os.name"]=J.name;if(J.version)Z["os.version"]=J.version;if(J.kernel_version)Z["os.kernel_version"]=J.kernel_version;if(J.build)Z["os.build"]=J.build}if(Y){if(Y.locale)Z["culture.locale"]=Y.locale;if(Y.timezone)Z["culture.timezone"]=Y.timezone}if(W){for(let[K,z]of Object.entries(W))if(z!=null)Z[K]=z}return Z}function LQ0($,Z){let X={};if($){if(X["app.memory"]=process.memoryUsage().rss,typeof process.availableMemory==="function"){let Q=process.availableMemory?.();if(Q!=null)X["app.free_memory"]=Q}}if(Z?.free_memory!=null)X["device.free_memory"]=A0.freemem();return X}async function OQ0(){let $=A0.platform();switch($){case"darwin":return NQ0();case"linux":return _Q0();default:return{name:RQ0[$]||$,version:A0.release()}}}function CQ0(){try{if(typeof process.versions.icu!=="string")return;let $=new Date(900000000);if(new Intl.DateTimeFormat("es",{month:"long"}).format($)==="enero"){let X=Intl.DateTimeFormat().resolvedOptions();return{locale:X.locale,timezone:X.timeZone}}}catch{}return}function kQ0(){let $=process.memoryUsage().rss,X={app_start_time:new Date(Date.now()-process.uptime()*1000).toISOString(),app_memory:$};if(typeof process.availableMemory==="function"){let Q=process.availableMemory?.();if(Q!=null)X.free_memory=Q}return X}function MQ0($){let Z={},X;try{X=A0.uptime()}catch{}if(typeof X==="number")Z.boot_time=new Date(Date.now()-X*1000).toISOString();if(Z.arch=A0.arch(),$===!0||$.memory)Z.memory_size=A0.totalmem(),Z.free_memory=A0.freemem();if($===!0||$.cpu){let Q=A0.cpus(),J=Q?.[0];if(J)Z.processor_count=Q.length,Z.cpu_description=J.model,Z.processor_frequency=J.speed}return Z}var RQ0={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows",ohos:"OpenHarmony",android:"Android"},fQ0=[{name:"fedora-release",distros:["Fedora"]},{name:"redhat-release",distros:["Red Hat Linux","Centos"]},{name:"redhat_version",distros:["Red Hat Linux"]},{name:"SuSE-release",distros:["SUSE Linux"]},{name:"lsb-release",distros:["Ubuntu Linux","Arch Linux"]},{name:"debian_version",distros:["Debian"]},{name:"debian_release",distros:["Debian"]},{name:"arch-release",distros:["Arch Linux"]},{name:"gentoo-release",distros:["Gentoo Linux"]},{name:"novell-release",distros:["SUSE Linux"]},{name:"alpine-release",distros:["Alpine Linux"]}],AQ0={alpine:($)=>$,arch:($)=>w6(/distrib_release=(.*)/,$),centos:($)=>w6(/release ([^ ]+)/,$),debian:($)=>$,fedora:($)=>w6(/release (..)/,$),mint:($)=>w6(/distrib_release=(.*)/,$),red:($)=>w6(/release ([^ ]+)/,$),suse:($)=>w6(/VERSION = (.*)\n/,$),ubuntu:($)=>w6(/distrib_release=(.*)/,$)};function w6($,Z){let X=$.exec(Z);return X?X[1]:void 0}async function NQ0(){let $={kernel_version:A0.release(),name:"Mac OS X",version:`10.${Number(A0.release().split(".")[0])-4}`};try{let Z=await new Promise((X,Q)=>{VQ0("/usr/bin/sw_vers",(J,Y)=>{if(J){Q(J);return}X(Y)})});$.name=w6(/^ProductName:\s+(.*)$/m,Z),$.version=w6(/^ProductVersion:\s+(.*)$/m,Z),$.build=w6(/^BuildVersion:\s+(.*)$/m,Z)}catch{}return $}function tT($){return $.split(" ")[0].toLowerCase()}async function _Q0(){let $={kernel_version:A0.release(),name:"Linux"};try{let Z=await UQ0("/etc"),X=fQ0.find((K)=>Z.includes(K.name));if(!X)return $;let Q=wQ0("/etc",X.name),J=(await jQ0(Q,{encoding:"utf-8"})).toLowerCase(),{distros:Y}=X;$.name=Y.find((K)=>J.indexOf(tT(K))>=0)||Y[0];let W=tT($.name);$.version=AQ0[W]?.(J)}catch{}return $}function yQ0(){if(process.env.VERCEL)return{"cloud.provider":"vercel","cloud.region":process.env.VERCEL_REGION};else if(process.env.AWS_REGION)return{"cloud.provider":"aws","cloud.region":process.env.AWS_REGION,"cloud.platform":process.env.AWS_EXECUTION_ENV};else if(process.env.GCP_PROJECT)return{"cloud.provider":"gcp"};else if(process.env.ALIYUN_REGION_ID)return{"cloud.provider":"alibaba_cloud","cloud.region":process.env.ALIYUN_REGION_ID};else if(process.env.WEBSITE_SITE_NAME&&process.env.REGION_NAME)return{"cloud.provider":"azure","cloud.region":process.env.REGION_NAME};else if(process.env.IBM_CLOUD_REGION)return{"cloud.provider":"ibm_cloud","cloud.region":process.env.IBM_CLOUD_REGION};else if(process.env.TENCENTCLOUD_REGION)return{"cloud.provider":"tencent_cloud","cloud.region":process.env.TENCENTCLOUD_REGION,"cloud.account.id":process.env.TENCENTCLOUD_APPID,"cloud.availability_zone":process.env.TENCENTCLOUD_ZONE};else if(process.env.NETLIFY)return{"cloud.provider":"netlify"};else if(process.env.FLY_REGION)return{"cloud.provider":"fly.io","cloud.region":process.env.FLY_REGION};else if(process.env.DYNO)return{"cloud.provider":"heroku"};else return}import{createReadStream as IQ0}from"node:fs";import{createInterface as TQ0}from"node:readline";var gz=new i0(10),XE=new i0(20),EQ0=7,hQ0="ContextLines",bQ0=1000,vQ0=1e4;function SQ0($,Z,X){let Q=$.get(Z);if(Q===void 0)return $.set(Z,X),X;return Q}function xQ0($){if($.startsWith("node:"))return!0;if($.endsWith(".min.js"))return!0;if($.endsWith(".min.cjs"))return!0;if($.endsWith(".min.mjs"))return!0;if($.startsWith("data:"))return!0;return!1}function gQ0($){if($.lineno!==void 0&&$.lineno>vQ0)return!0;if($.colno!==void 0&&$.colno>bQ0)return!0;return!1}function mQ0($,Z){let X=gz.get($);if(X===void 0)return!1;for(let Q=Z[0];Q<=Z[1];Q++)if(X[Q]===void 0)return!1;return!0}function dQ0($,Z){if(!$.length)return[];let X=0,Q=$[0];if(typeof Q!=="number")return[];let J=ZE(Q,Z),Y=[];while(!0){if(X===$.length-1){Y.push(J);break}let W=$[X+1];if(typeof W!=="number")break;if(W<=J[1])J[1]=W+Z;else Y.push(J),J=ZE(W,Z);X++}return Y}function uQ0($,Z,X){return new Promise((Q,J)=>{let Y=IQ0($),W=TQ0({input:Y});function K(){Y.destroy(),Q()}let z=0,H=0,G=Z[H];if(G===void 0){K();return}let V=G[0],F=G[1];function B(j){XE.set($,1),F0&&w.error(`Failed to read file: ${$}. Error: ${j}`),W.close(),W.removeAllListeners(),K()}Y.on("error",B),W.on("error",B),W.on("close",K),W.on("line",(j)=>{if(z++,z=F){if(H===Z.length-1){W.close(),W.removeAllListeners();return}H++;let U=Z[H];if(U===void 0){W.close(),W.removeAllListeners();return}V=U[0],F=U[1]}})})}async function cQ0($,Z){let X={};if(Z>0&&$.exception?.values)for(let Y of $.exception.values){if(!Y.stacktrace?.frames?.length)continue;for(let W=Y.stacktrace.frames.length-1;W>=0;W--){let K=Y.stacktrace.frames[W],z=K?.filename;if(!K||typeof z!=="string"||typeof K.lineno!=="number"||xQ0(z)||gQ0(K))continue;if(!X[z])X[z]=[];X[z].push(K.lineno)}}let Q=Object.keys(X);if(Q.length==0)return $;let J=[];for(let Y of Q){if(XE.get(Y))continue;let W=X[Y];if(!W)continue;W.sort((H,G)=>H-G);let K=dQ0(W,Z);if(K.every((H)=>mQ0(Y,H)))continue;let z=SQ0(gz,Y,{});J.push(uQ0(Y,K,z))}if(await Promise.all(J).catch(()=>{F0&&w.log("Failed to read one or more source files and resolve context lines")}),Z>0&&$.exception?.values){for(let Y of $.exception.values)if(Y.stacktrace?.frames&&Y.stacktrace.frames.length>0)lQ0(Y.stacktrace.frames,Z,gz)}return $}function lQ0($,Z,X){for(let Q of $)if(Q.filename&&Q.context_line===void 0&&typeof Q.lineno==="number"){let J=X.get(Q.filename);if(J===void 0)continue;pQ0(Q.lineno,Q,Z,J)}}function $E($){delete $.pre_context,delete $.context_line,delete $.post_context}function pQ0($,Z,X,Q){if(Z.lineno===void 0||Q===void 0){F0&&w.error("Cannot resolve context for frame with no lineno or file contents");return}Z.pre_context=[];for(let Y=QE($,X);Y<$;Y++){let W=Q[Y];if(W===void 0){$E(Z),F0&&w.error(`Could not find line ${Y} in file ${Z.filename}`);return}Z.pre_context.push(W)}if(Q[$]===void 0){$E(Z),F0&&w.error(`Could not find line ${$} in file ${Z.filename}`);return}Z.context_line=Q[$];let J=JE($,X);Z.post_context=[];for(let Y=$+1;Y<=J;Y++){let W=Q[Y];if(W===void 0)break;Z.post_context.push(W)}}function QE($,Z){return Math.max(1,$-Z)}function JE($,Z){return $+Z}function ZE($,Z){return[QE($,Z),JE($,Z)]}var iQ0=($={})=>{return{name:hQ0,processEvent(Z,X,Q){let J=$.frameContextLines??Q?.getDataCollectionOptions().frameContextLines??EQ0;return cQ0(Z,J)}}},mz=C(iQ0);var YE="Http",oQ0=y(`${YE}.sentry`,($)=>{return new Y9($)}),WE=C(($={})=>{let Z={sessions:$.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:$.sessionFlushingDelayMS,ignoreRequestBody:$.ignoreIncomingRequestBody,maxRequestBodySize:$.maxIncomingRequestBodySize},X={ignoreIncomingRequests:$.ignoreIncomingRequests,ignoreStaticAssets:$.ignoreStaticAssets,ignoreStatusCodes:$.dropSpansForIncomingRequestStatusCodes},Q={breadcrumbs:$.breadcrumbs,propagateTraceInOutgoingRequests:$.tracePropagation??!0,ignoreOutgoingRequests:$.ignoreOutgoingRequests},J=a7(Z),Y=t7(X),W=$.spans??!1,K=$.disableIncomingRequestSpans??!1,z=W&&!K;return{name:YE,setup(H){if(z)Y.setup(H)},setupOnce(){J.setupOnce(),oQ0(Q)},processEvent(H){return Y.processEvent(H)}}});import{Worker as sQ0}from"node:worker_threads";var vX;async function SX(){if(vX===void 0)try{vX=!!(await import("node:inspector")).url()}catch{vX=!1}return vX}var K5="__SENTRY_ERROR_LOCAL_VARIABLES__";function zE($,Z,X){let Q=0,J=5,Y=0;return setInterval(()=>{if(Y===0){if(Q>$){if(J*=2,X(J),J>86400)J=86400;Y=J}}else if(Y-=1,Y===0)Z();Q=0},1000).unref(),()=>{Q+=1}}function KE($){return $!==void 0&&($.length===0||$==="?"||$==="")}function xX($,Z){return $===Z||`Object.${$}`===Z||$===`Object.${Z}`||KE($)&&KE(Z)}var rQ0="LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjYzLjAgKDIzNjJlOWYpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=";function HE(...$){w.log("[LocalVariables]",...$)}var GE=C(($={})=>{function Z(Y,W){let K=(Y.stacktrace?.frames||[]).filter((z)=>z.function!=="new Promise");for(let z=0;z{W.terminate()}),W.once("error",(K)=>{HE("Worker error",K)}),W.once("exit",(K)=>{HE("Worker exit",K)}),W.unref()}return{name:"LocalVariablesAsync",async setup(Y){if(!Y.getOptions().includeLocalVariables)return;if(await SX()){w.warn("Local variables capture has been disabled because the debugger was already enabled");return}let K={...$,debug:w.isEnabled()};Q().then(()=>{try{J(K)}catch(z){w.error("Failed to start worker",z)}},(z)=>{w.error("Failed to start inspector",z)})},processEvent(Y,W){return X(Y,W)}}});function VE($){if($===void 0)return;return $.slice(-10).reduce((Z,X)=>`${Z},${X.function},${X.lineno},${X.colno}`,"")}function nQ0($,Z){if(Z===void 0)return;return VE($(Z,1))}function FE($){let Z=[],X=!1;function Q(W){if(Z=[],X)return;X=!0,$(W)}Z.push(Q);function J(W){Z.push(W)}function Y(W){let K=Z.pop()||Q;try{K(W)}catch{Q(W)}}return{add:J,next:Y}}class dz{constructor($){this._session=$}static async create($){if($)return $;let Z=await import("node:inspector");return new dz(new Z.Session)}configureAndConnect($,Z){this._session.connect(),this._session.on("Debugger.paused",(X)=>{$(X,()=>{this._session.post("Debugger.resume")})}),this._session.post("Debugger.enable"),this._session.post("Debugger.setPauseOnExceptions",{state:Z?"all":"uncaught"})}setPauseOnExceptions($){this._session.post("Debugger.setPauseOnExceptions",{state:$?"all":"uncaught"})}getLocalVariables($,Z){this._getProperties($,(X)=>{let{add:Q,next:J}=FE(Z);for(let Y of X)if(Y.value?.objectId&&Y.value.className==="Array"){let W=Y.value.objectId;Q((K)=>this._unrollArray(W,Y.name,K,J))}else if(Y.value?.objectId&&Y.value.className==="Object"){let W=Y.value.objectId;Q((K)=>this._unrollObject(W,Y.name,K,J))}else if(Y.value)Q((W)=>this._unrollOther(Y,W,J));J({})})}_getProperties($,Z){this._session.post("Runtime.getProperties",{objectId:$,ownProperties:!0},(X,Q)=>{if(X)Z([]);else Z(Q.result)})}_unrollArray($,Z,X,Q){this._getProperties($,(J)=>{X[Z]=J.filter((Y)=>Y.name!=="length"&&!isNaN(parseInt(Y.name,10))).sort((Y,W)=>parseInt(Y.name,10)-parseInt(W.name,10)).map((Y)=>Y.value?.value),Q(X)})}_unrollObject($,Z,X,Q){this._getProperties($,(J)=>{X[Z]=J.map((Y)=>[Y.name,Y.value?.value]).reduce((Y,[W,K])=>{return Y[W]=K,Y},{}),Q(X)})}_unrollOther($,Z,X){if($.value){if("value"in $.value)if($.value.value===void 0||$.value.value===null)Z[$.name]=`<${$.value.value}>`;else Z[$.name]=$.value.value;else if("description"in $.value&&$.value.type!=="function")Z[$.name]=`<${$.value.description}>`;else if($.value.type==="undefined")Z[$.name]=""}X(Z)}}var aQ0="LocalVariables",tQ0=($={},Z)=>{let X=new i0(20),Q,J=!1;function Y(H){let G=VE(H.stacktrace?.frames);if(G===void 0)return;let V=X.remove(G);if(V===void 0)return;let F=(H.stacktrace?.frames||[]).filter((B)=>B.function!=="new Promise");for(let B=0;B= v18.");return}if(await SX()){w.warn("Local variables capture has been disabled because the debugger was already enabled");return}try{let F=await dz.create(Z),B=(U,{params:{reason:D,data:k,callFrames:R}},h)=>{if(D!=="exception"&&D!=="promiseRejection"){h();return}Q?.();let T=nQ0(U,k.description);if(T==null){h();return}let{add:_,next:l}=FE((o)=>{X.set(T,o),h()});for(let o=0;oz0.type==="local"),e1=q0.className==="global"||!q0.className?G0:`${q0.className}.${G0}`;if(m0?.object.objectId===void 0)_((z0)=>{z0[o]={function:e1},l(z0)});else{let z0=m0.object.objectId;_((X7)=>F.getLocalVariables(z0,($6)=>{X7[o]={function:e1,vars:$6},l(X7)}))}}l([])},j=$.captureAllExceptions!==!1;if(F.configureAndConnect((U,D)=>B(G.stackParser,U,D),j),j){let U=$.maxExceptionsPerSecond||50;Q=zE(U,()=>{w.log("Local variables rate-limit lifted."),F.setPauseOnExceptions(!0)},(D)=>{w.log(`Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${D} seconds.`),F.setPauseOnExceptions(!1)})}J=!0}catch(F){w.log("The `LocalVariables` integration failed to start.",F)}}return{name:aQ0,setupOnce(){K=z()},async processEvent(H){if(await K,J)return W(H);return H},_getCachedFramesCount(){return X.size},_getFirstCachedFrame(){return X.values()[0]}}},BE=C(tQ0);var uz=($={})=>{return a1.major<19?BE($):GE($)};import{readFileSync as eQ0}from"node:fs";import{join as $J0}from"node:path";var cz,ZJ0="Modules";function XJ0(){if(typeof __SENTRY_SERVER_MODULES__<"u")return __SENTRY_SERVER_MODULES__;return u.__SENTRY_SERVER_MODULES__??{}}var QJ0=()=>{return{name:ZJ0,processEvent($){return $.modules={...$.modules,...wE()},$},getModules:wE}},lz=QJ0;function JJ0(){return{...XJ0(),...WJ0(),...{}}}function wE(){if(!cz)cz=JJ0();return cz}function YJ0(){try{let $=$J0(process.cwd(),"package.json");return JSON.parse(eQ0($,"utf8"))}catch{return{}}}function WJ0(){let $=YJ0();return{...$.dependencies,...$.devDependencies}}var KJ0="NodeFetch",zJ0=y(`${KJ0}.sentry`,K9,($)=>{return $}),HJ0=($={})=>{return{name:"NodeFetch",setupOnce(){zJ0($)}}},jE=C(HJ0);import{isMainThread as VJ0}from"worker_threads";var GJ0=2000;function z5($){D0(()=>{console.error($)});let Z=M();if(Z===void 0){F0&&w.warn("No NodeClient was defined, we are exiting the process now."),global.process.exit(1);return}let X=Z.getOptions(),Q=X?.shutdownTimeout&&X.shutdownTimeout>0?X.shutdownTimeout:GJ0;Z.close(Q).then((J)=>{if(!J)F0&&w.warn("We reached the timeout for emptying the request buffer, still exiting now!");global.process.exit(1)},(J)=>{F0&&w.error(J)})}var FJ0="OnUncaughtException",pz=C(($={})=>{let Z={exitEvenIfOtherHandlersAreRegistered:!1,...$};return{name:FJ0,setup(X){if(!VJ0)return;global.process.on("uncaughtException",BJ0(X,Z))}}});function BJ0($,Z){let Q=!1,J=!1,Y=!1,W,K=$.getOptions();return Object.assign((z)=>{let H=z5;if(Z.onFatalError)H=Z.onFatalError;else if(K.onFatalError)H=K.onFatalError;let V=global.process.listeners("uncaughtException").filter((B)=>{return B.name!=="domainUncaughtExceptionClear"&&B._errorHandler!==!0}).length===0,F=Z.exitEvenIfOtherHandlersAreRegistered||V;if(!Q){if(W=z,Q=!0,M()===$)E(z,{originalException:z,captureContext:{level:"fatal"},mechanism:{handled:!1,type:"auto.node.onuncaughtexception"}});if(!Y&&F)Y=!0,H(z)}else if(F){if(Y)F0&&w.warn("uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown"),z5(z);else if(!J)J=!0,setTimeout(()=>{if(!Y)Y=!0,H(W,z)},2000)}},{_errorHandler:!0})}var wJ0="OnUnhandledRejection",jJ0=[{name:"AI_NoOutputGeneratedError"},{name:"AbortError"}],UJ0=($={})=>{let Z={mode:$.mode??"warn",ignore:[...jJ0,...$.ignore??[]]};return{name:wJ0,setup(X){global.process.on("unhandledRejection",LJ0(X,Z))}}},iz=C(UJ0);function qJ0($){if(typeof $!=="object"||$===null)return{name:"",message:String($??"")};let Z=$,X=typeof Z.name==="string"?Z.name:"",Q=typeof Z.message==="string"?Z.message:String($);return{name:X,message:Q}}function DJ0($,Z){let X=$.name===void 0||Z6(Z.name,$.name,!0),Q=$.message===void 0||Z6(Z.message,$.message);return X&&Q}function PJ0($,Z){let X=qJ0(Z);return $.some((Q)=>DJ0(Q,X))}function LJ0($,Z){return function(Q,J){if(M()!==$)return;if(PJ0(Z.ignore??[],Q))return;let Y=Z.mode==="strict"?"fatal":"error",W=Q&&typeof Q==="object"?Q._sentry_active_span:void 0;(W?(z)=>m(W,z):(z)=>z())(()=>{E(Q,{originalException:Q,captureContext:{extra:{unhandledPromiseRejection:!0},level:Y},mechanism:{handled:!1,type:"auto.node.onunhandledrejection"}})}),OJ0(Q,Z.mode)}}function OJ0($,Z){if(Z==="warn")D0(()=>{console.warn("This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:"),console.error($&&typeof $==="object"&&"stack"in $?$.stack:$)});else if(Z==="strict")D0(()=>{console.warn("This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:")}),z5($)}var CJ0="ProcessSession",oz=C(()=>{return{name:CJ0,setupOnce(){QZ(),process.on("beforeExit",()=>{if(g().getSession()?.status!=="ok")k7()})}}});import*as UE from"node:http";var sz="Spotlight",kJ0=($={})=>{let Z={sidecarUrl:$.sidecarUrl||"http://localhost:8969/stream"};return{name:sz,setup(X){try{}catch{}MJ0(X,Z)}}},rz=C(kJ0);function MJ0($,Z){let X=RJ0(Z.sidecarUrl);if(!X)return;let Q=0;$.on("beforeEnvelope",(J)=>{if(Q>3){w.warn("[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests");return}let Y=s9(J);X8(()=>{let W=UE.request({method:"POST",path:X.pathname,hostname:X.hostname,port:X.port,headers:{"Content-Type":"application/x-sentry-envelope"}},(K)=>{if(K.statusCode&&K.statusCode>=200&&K.statusCode<400)Q=0;K.on("data",()=>{}),K.on("end",()=>{}),K.setEncoding("utf8")});W.on("error",()=>{Q++,w.warn("[Spotlight] Failed to send envelope to Spotlight Sidecar")}),W.write(Y),W.end()})})}function RJ0($){try{return new URL(`${$}`)}catch{w.warn(`[Spotlight] Invalid sidecar URL: ${$}`);return}}var nz=C(($={})=>{return{name:"Console",setup(Z){if(process.env.LAMBDA_TASK_ROOT)wZ("console",fJ0);GY({...$,filter:[...$.filter||[],"[DEP0205] DeprecationWarning"]}).setup?.(Z)}}});function fJ0(){let $=u?.console;if(!$)return;d$.forEach((Z)=>{if(Z in $)AJ0($,Z)})}function AJ0($,Z){let X=$[Z];x1[Z]=X;let Q=X,J,Y=!1,W=function(...z){if(Y){X.apply($,z);return}Y=!0;try{N7("console",{args:z,level:Z}),Q.apply($,z)}finally{Y=!1}};c$(W,X);let K=X.bind($);x1[Z]=K;try{let z=W;Object.defineProperty($,Z,{configurable:!0,enumerable:!0,get(){return z},set(H){if(H===W){if(J!==void 0)Q=J,J=void 0;z=W}else if(H===K)J=Q,z=K;else if(typeof H==="function"&&!H.__sentry_original__)Q=H,z=W;else z=H}})}catch{E9($,Z,function(z){return x1[Z]=z,function(...H){N7("console",{args:H,level:Z}),x1[Z]?.apply(this,H)}})}}import*as az from"node:util";var NJ0="NodeSystemError";function _J0($){if(!($ instanceof Error))return!1;if(!("errno"in $)||typeof $.errno!=="number")return!1;if(typeof az.getSystemErrorMap!=="function")return!1;return az.getSystemErrorMap().has($.errno)}var tz=C(($={})=>{return{name:NJ0,processEvent:(Z,X,Q)=>{if(!_J0(X.originalException))return Z;let J=X.originalException,Y={...J};if(!Q.getDataCollectionOptions().userInfo&&$.includePaths!==!0)delete Y.path,delete Y.dest;Z.contexts={...Z.contexts,node_system_error:Y};for(let W of Z.exception?.values||[])if(W.value){if(J.path&&W.value.includes(J.path))W.value=W.value.replace(`'${J.path}'`,"").trim();if(J.dest&&W.value.includes(J.dest))W.value=W.value.replace(`'${J.dest}'`,"").trim()}return Z}}});import*as IJ0 from"node:http";import*as TJ0 from"node:https";import{Readable as EJ0}from"node:stream";import{createGzip as hJ0}from"node:zlib";import*as l6 from"node:net";import*as Z3 from"node:tls";import*as ez from"node:http";var qE,j6=Symbol("AgentBaseInternalState");class $3 extends(qE=ez.Agent,qE){constructor($){super($);this[j6]={}}isSecureEndpoint($){if($){if(typeof $.secureEndpoint==="boolean")return $.secureEndpoint;if(typeof $.protocol==="string")return $.protocol==="https:"}let{stack:Z}=Error();if(typeof Z!=="string")return!1;return Z.split(` +`).some((X)=>X.indexOf("(https.js:")!==-1||X.indexOf("node:https:")!==-1)}createSocket($,Z,X){let Q={...Z,secureEndpoint:this.isSecureEndpoint(Z)};Promise.resolve().then(()=>this.connect($,Q)).then((J)=>{if(J instanceof ez.Agent)return J.addRequest($,Q);this[j6].currentSocket=J,super.createSocket($,Z,X)},X)}createConnection(){let $=this[j6].currentSocket;if(this[j6].currentSocket=void 0,!$)throw Error("No socket was returned in the `connect()` function");return $}get defaultPort(){return this[j6].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort($){if(this[j6])this[j6].defaultPort=$}get protocol(){return this[j6].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol($){if(this[j6])this[j6].protocol=$}}function gX(...$){w.log("[https-proxy-agent:parse-proxy-response]",...$)}function DE($){return new Promise((Z,X)=>{let Q=0,J=[];function Y(){let G=$.read();if(G)H(G);else $.once("readable",Y)}function W(){$.removeListener("end",K),$.removeListener("error",z),$.removeListener("readable",Y)}function K(){W(),gX("onend"),X(Error("Proxy connection ended before receiving CONNECT response"))}function z(G){W(),gX("onerror %o",G),X(G)}function H(G){J.push(G),Q+=G.length;let V=Buffer.concat(J,Q),F=V.indexOf(`\r \r -`);if(V===-1){b$("have not received end of HTTP headers yet..."),X();return}let F=B.subarray(0,V).toString("ascii").split(`\r -`),D=F.shift();if(!D)return Z.destroy(),Q(Error("No header received from proxy CONNECT response"));let U=D.split(" "),j=+(U[1]||0),L=U.slice(2).join(" "),O={};for(let M of F){if(!M)continue;let S=M.indexOf(":");if(S===-1)return Z.destroy(),Q(Error(`Invalid header from proxy CONNECT response: "${M}"`));let T=M.slice(0,S).toLowerCase(),n=M.slice(S+1).trimStart(),r=O[T];if(typeof r==="string")O[T]=[r,n];else if(Array.isArray(r))r.push(n);else O[T]=n}b$("got proxy server response: %o %o",D,O),W(),J({connect:{statusCode:j,statusText:L,headers:O},buffered:B})}Z.on("error",z),Z.on("end",K),X()})}function N4(...Z){q.log("[https-proxy-agent]",...Z)}class x$ extends DG{static __initStatic(){this.protocols=["http","https"]}constructor(Z,J){super(J);this.options={},this.proxy=typeof Z==="string"?new URL(Z):Z,this.proxyHeaders=J?.headers??{},N4("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let Q=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),$=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...J?ab(J,"headers"):null,host:Q,port:$}}async connect(Z,J){let{proxy:Q}=this;if(!J.host)throw TypeError('No "host" provided');let $;if(Q.protocol==="https:"){N4("Creating `tls.Socket`: %o",this.connectOpts);let B=this.connectOpts.servername||this.connectOpts.host;$=UG.connect({...this.connectOpts,servername:B&&KZ.isIP(B)?void 0:B})}else N4("Creating `net.Socket`: %o",this.connectOpts),$=KZ.connect(this.connectOpts);let Y=typeof this.proxyHeaders==="function"?this.proxyHeaders():{...this.proxyHeaders},X=KZ.isIPv6(J.host)?`[${J.host}]`:J.host,W=`CONNECT ${X}:${J.port} HTTP/1.1\r -`;if(Q.username||Q.password){let B=`${decodeURIComponent(Q.username)}:${decodeURIComponent(Q.password)}`;Y["Proxy-Authorization"]=`Basic ${Buffer.from(B).toString("base64")}`}if(Y.Host=`${X}:${J.port}`,!Y["Proxy-Connection"])Y["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close";for(let B of Object.keys(Y))W+=`${B}: ${Y[B]}\r -`;let K=nb($);$.write(`${W}\r -`);let{connect:z,buffered:G}=await K;if(Z.emit("proxyConnect",z),this.emit("proxyConnect",z,Z),z.statusCode===200){if(Z.once("socket",iL0),J.secureEndpoint){N4("Upgrading socket connection to TLS");let B=J.servername||J.host;return UG.connect({...ab(J,"host","path","port"),socket:$,servername:KZ.isIP(B)?void 0:B})}return $}$.destroy();let H=new KZ.Socket({writable:!1});return H.readable=!0,Z.once("socket",(B)=>{N4("Replaying proxy buffer for failed request"),B.push(G),B.push(null)}),H}}x$.__initStatic();function iL0(Z){Z.resume()}function ab(Z,...J){let Q={},$;for($ in Z)if(!J.includes($))Q[$]=Z[$];return Q}var rL0=32768;function tL0(Z){return new aL0({read(){this.push(Z),this.push(null)}})}function jG(Z){let J;try{J=new URL(Z.url)}catch(z){return O0(()=>{console.warn("[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.")}),i1(Z,()=>Promise.resolve({}))}let Q=J.protocol==="https:",$=eL0(J,Z.proxy||(Q?process.env.https_proxy:void 0)||process.env.http_proxy),Y=Q?nL0:oL0,X=Z.keepAlive===void 0?!1:Z.keepAlive,W=$?new x$($):new Y.Agent({keepAlive:X,maxSockets:30,timeout:2000}),K=ZO0(Z,Z.httpModule??Y,W);return i1(Z,K)}function eL0(Z,J){let{no_proxy:Q}=process.env;if(Q?.split(",").some((Y)=>Z.host.endsWith(Y)||Z.hostname.endsWith(Y)))return;else return J}function ZO0(Z,J,Q){let{hostname:$,pathname:Y,port:X,protocol:W,search:K}=new URL(Z.url);return function(G){return new Promise((H,B)=>{_7(()=>{let V=tL0(G.body),F={...Z.headers};if(G.body.length>rL0)F["content-encoding"]="gzip",V=V.pipe(sL0());let D=$.startsWith("["),U=J.request({method:"POST",agent:Q,headers:F,hostname:D?$.slice(1,-1):$,path:`${Y}${K}`,port:X,protocol:W,ca:Z.caCerts},(j)=>{j.on("data",()=>{}),j.on("end",()=>{}),j.setEncoding("utf8");let L=j.headers["retry-after"]??null,O=j.headers["x-sentry-rate-limits"]??null;H({statusCode:j.statusCode,headers:{"retry-after":L,"x-sentry-rate-limits":Array.isArray(O)?O[0]||null:O}})});U.on("error",B),V.pipe(U)})})}}function sb(Z){if(Z===!1)return!1;if(typeof Z==="string")return Z;let J=g7(process.env.SENTRY_SPOTLIGHT,{strict:!0}),Q=J===null&&process.env.SENTRY_SPOTLIGHT?process.env.SENTRY_SPOTLIGHT:void 0;return Z===!0?Q??!0:J??Q}import{posix as JO0,sep as QO0}from"node:path";function rb(Z){return Z.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function qG(Z=process.argv[1]?VK(process.argv[1]):process.cwd(),J=QO0==="\\"){let Q=J?rb(Z):Z;return($)=>{if(!$)return;let Y=J?rb($):$,{dir:X,base:W,ext:K}=JO0.parse(Y);if(K===".js"||K===".mjs"||K===".cjs")W=W.slice(0,K.length*-1);let z=decodeURIComponent(W);if(!X)X=".";let G=X.lastIndexOf("/node_modules");if(G>-1)return`${X.slice(G+14).replace(/\//g,".")}:${z}`;if(X.startsWith(Q)){let H=X.slice(Q.length+1).replace(/\//g,".");return H?`${H}:${z}`:z}return z}}function LG(Z){if(process.env.SENTRY_RELEASE)return process.env.SENTRY_RELEASE;if(d.SENTRY_RELEASE?.id)return d.SENTRY_RELEASE.id;let J=process.env.GITHUB_SHA||process.env.CI_MERGE_REQUEST_SOURCE_BRANCH_SHA||process.env.CI_BUILD_REF||process.env.CI_COMMIT_SHA||process.env.BITBUCKET_COMMIT,Q=process.env.APPVEYOR_PULL_REQUEST_HEAD_COMMIT||process.env.APPVEYOR_REPO_COMMIT||process.env.CODEBUILD_RESOLVED_SOURCE_VERSION||process.env.AWS_COMMIT_ID||process.env.BUILD_SOURCEVERSION||process.env.GIT_CLONE_COMMIT_HASH||process.env.BUDDY_EXECUTION_REVISION||process.env.BUILDKITE_COMMIT||process.env.CIRCLE_SHA1||process.env.CIRRUS_CHANGE_IN_REPO||process.env.CF_REVISION||process.env.CM_COMMIT||process.env.CF_PAGES_COMMIT_SHA||process.env.DRONE_COMMIT_SHA||process.env.FC_GIT_COMMIT_SHA||process.env.HEROKU_TEST_RUN_COMMIT_VERSION||process.env.HEROKU_BUILD_COMMIT||process.env.HEROKU_SLUG_COMMIT||process.env.RAILWAY_GIT_COMMIT_SHA||process.env.RENDER_GIT_COMMIT||process.env.SEMAPHORE_GIT_SHA||process.env.TRAVIS_PULL_REQUEST_SHA||process.env.VERCEL_GIT_COMMIT_SHA||process.env.VERCEL_GITHUB_COMMIT_SHA||process.env.VERCEL_GITLAB_COMMIT_SHA||process.env.VERCEL_BITBUCKET_COMMIT_SHA||process.env.ZEIT_GITHUB_COMMIT_SHA||process.env.ZEIT_GITLAB_COMMIT_SHA||process.env.ZEIT_BITBUCKET_COMMIT_SHA,$=process.env.CI_COMMIT_ID||process.env.SOURCE_COMMIT||process.env.SOURCE_VERSION||process.env.GIT_COMMIT||process.env.COMMIT_REF||process.env.BUILD_VCS_NUMBER||process.env.CI_COMMIT_SHA;return J||Q||$||Z}var OG=VQ(iK(qG()));var eb=R(C(),1),Zx=R(c(),1);import*as tb from"node:os";import{threadId as $O0,isMainThread as YO0}from"worker_threads";var XO0=60000;class g$ extends TQ{constructor(Z){let J=Z.includeServerName===!1?void 0:Z.serverName||global.process.env.SENTRY_NAME||tb.hostname(),Q={...Z,platform:"node",runtime:Z.runtime||{name:"node",version:global.process.version},serverName:J};if(Z.openTelemetryInstrumentations)Zx.registerInstrumentations({instrumentations:Z.openTelemetryInstrumentations});d7(Q,"node"),q.log(`Initializing Sentry: process: ${process.pid}, thread: ${YO0?"main":`worker-${$O0}`}.`);super(Q);if(this.getOptions().enableLogs){if(this._logOnExitFlushListener=()=>{l1(this)},J)this.on("beforeCaptureLog",($)=>{$.attributes={...$.attributes,"server.address":J}});process.on("beforeExit",this._logOnExitFlushListener)}}get tracer(){if(this._tracer)return this._tracer;let Z="@sentry/node",J=a,Q=eb.trace.getTracer(Z,J);return this._tracer=Q,Q}async flush(Z){if(await this.traceProvider?.forceFlush(),this.getOptions().sendClientReports)this._flushOutcomes();return super.flush(Z)}async close(Z){if(this._clientReportInterval)clearInterval(this._clientReportInterval);if(this._clientReportOnExitFlushListener)process.off("beforeExit",this._clientReportOnExitFlushListener);if(this._logOnExitFlushListener)process.off("beforeExit",this._logOnExitFlushListener);let J=await super.close(Z);if(this.traceProvider)await this.traceProvider.shutdown();return J}startClientReportTracking(){let Z=this.getOptions();if(Z.sendClientReports)this._clientReportOnExitFlushListener=()=>{this._flushOutcomes()},this._clientReportInterval=setInterval(()=>{m&&q.log("Flushing client reports based on interval."),this._flushOutcomes()},Z.clientReportFlushInterval??XO0).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener)}_setupIntegrations(){WK(),super._setupIntegrations()}_getTraceInfoFromScope(Z){if(!Z)return[void 0,void 0];return Hb(this,Z)}}var Jx=R(xX(),1);import*as Qx from"module";function CG(){if(!cb())return;if(!d._sentryEsmLoaderHookRegistered){d._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:Z}=Jx.createAddHookMessageChannel();Qx.register("import-in-the-middle/hook.mjs",import.meta.url,{data:{addHookMessagePort:Z,include:[]},transferList:[Z]})}catch(Z){q.warn("Failed to register 'import-in-the-middle' hook",Z)}}}function d$(){return[o5(),i5(),n5(),a5(),FG(),UK(),s5(),Eb(),pb(),zG(),GG(),$G(),XG(),JG(),ZG(),BG(),KG()]}function PG(Z={}){return WO0(Z,d$)}function WO0(Z={},J){let Q=KO0(Z,J);if(Q.debug===!0)if(m)q.enable();else O0(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")});if(Q.registerEsmLoaderHooks!==!1)CG();if(wb(),t().update(Q.initialScope),Q.spotlight&&!Q.integrations.some(({name:X})=>X===HG))Q.integrations.push(VG({sidecarUrl:typeof Q.spotlight==="string"?Q.spotlight:void 0}));d7(Q,"node-core");let Y=new g$(Q);if(t().setClient(Y),Y.init(),q.log(`SDK initialized from ${A4()?"CommonJS":"ESM"}`),Y.startClientReportTracking(),BO0(),tv(Y),Fb(Y),process.env.VERCEL)process.on("SIGTERM",async()=>{await Y.flush(200)});return Y}function c$(){if(!m)return;let Z=Qb(),J=["SentryContextManager","SentryPropagator"];if(C0())J.push("SentrySpanProcessor");for(let Q of J)if(!Z.includes(Q))q.error(`You have to set up the ${Q}. Without this, the OpenTelemetry & Sentry integration will not work properly.`);if(!Z.includes("SentrySampler"))q.warn("You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.")}function KO0(Z,J){let Q=zO0(Z.release),$=sb(Z.spotlight),Y=GO0(Z.tracesSampleRate),X={...Z,dsn:Z.dsn??process.env.SENTRY_DSN,environment:Z.environment??process.env.SENTRY_ENVIRONMENT,sendClientReports:Z.sendClientReports??!0,transport:Z.transport??jG,stackParser:BW(Z.stackParser||OG),release:Q,tracesSampleRate:Y,spotlight:$,debug:g7(Z.debug??process.env.SENTRY_DEBUG)},W=Z.integrations,K=Z.defaultIntegrations??J(X);return{...X,integrations:lW({defaultIntegrations:K,integrations:W})}}function zO0(Z){if(Z!==void 0)return Z;let J=LG();if(J!==void 0)return J;return}function GO0(Z){if(Z!==void 0)return Z;let J=process.env.SENTRY_TRACES_SAMPLE_RATE;if(!J)return;let Q=parseFloat(J);return isFinite(Q)?Q:void 0}function BO0(){if(g7(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let Z=process.env.SENTRY_TRACE,J=process.env.SENTRY_BAGGAGE,Q=C5(Z,J);t().setPropagationContext(Q)}}function $0(Z,J){Z.setAttribute(_,J)}function T4(Z){let J=Z.protocol||"",Q=Z.hostname||Z.host||"",$=!Z.port||Z.port===80||Z.port===443||/^(.*):(\d+)$/.test(Q)?"":`:${Z.port}`,Y=Z.path?Z.path:"/";return`${J}//${Q}${$}${Y}`}var kG="Http",$x="@opentelemetry_sentry-patched/instrumentation-http",m$=s6.major===22&&s6.minor>=12||s6.major===23&&s6.minor>=2||s6.major>=24,NO0=N(`${kG}.sentry`,(Z)=>{return new H8(Z)}),TO0=N(kG,(Z)=>{let J=new Xx.HttpInstrumentation({...Z,disableIncomingRequestInstrumentation:!0});try{J._diag=Yx.diag.createComponentLogger({namespace:$x}),J.instrumentationName=$x}catch{}try{let Q={get:()=>!1,set:()=>{}};Object.defineProperty(J,"_httpPatched",Q),Object.defineProperty(J,"_httpsPatched",Q)}catch{}return J});function fO0(Z,J={}){if(typeof Z.spans==="boolean")return Z.spans;if(J.skipOpenTelemetrySetup)return!1;if(!C0(J)&&m$)return!1;return!0}var Wx=P((Z={})=>{let J=Z.spans??!0,Q=Z.disableIncomingRequestSpans,$={sessions:Z.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:Z.sessionFlushingDelayMS,ignoreRequestBody:Z.ignoreIncomingRequestBody,maxRequestBodySize:Z.maxIncomingRequestBodySize},Y={ignoreIncomingRequests:Z.ignoreIncomingRequests,ignoreStaticAssets:Z.ignoreStaticAssets,ignoreStatusCodes:Z.dropSpansForIncomingRequestStatusCodes,instrumentation:Z.instrumentation,onSpanCreated:Z.incomingRequestSpanHook},X=z8($),W=G8(Y),K=J&&!Q;return{name:kG,setup(z){let G=z.getOptions();if(K&&C0(G))W.setup(z)},setupOnce(){let z=f()?.getOptions()||{},G=fO0(Z,z);X.setupOnce();let H={breadcrumbs:Z.breadcrumbs,propagateTraceInOutgoingRequests:typeof Z.tracePropagation==="boolean"?Z.tracePropagation:m$||!G,createSpansForOutgoingRequests:m$,spans:Z.spans,ignoreOutgoingRequests:Z.ignoreOutgoingRequests,outgoingRequestHook:(B,V)=>{let F=T4(V);if(F.startsWith("data:")){let D=s1(F);B.setAttribute("http.url",D),B.setAttribute(IZ,D),B.updateName(`${V.method||"GET"} ${D}`)}Z.instrumentation?.requestHook?.(B,V)},outgoingResponseHook:Z.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:Z.instrumentation?.applyCustomAttributesOnSpan};if(NO0(H),G){let B=EO0(Z);TO0(B)}},processEvent(z){return W.processEvent(z)}}});function EO0(Z={}){return{disableOutgoingRequestInstrumentation:m$,ignoreOutgoingRequestHook:(Q)=>{let $=T4(Q);if(!$)return!1;let Y=Z.ignoreOutgoingRequests;if(Y?.($,Q))return!0;return!1},requireParentforOutgoingSpans:!1,requestHook:(Q,$)=>{$0(Q,"auto.http.otel.http");let Y=T4($);if(Y.startsWith("data:")){let X=s1(Y);Q.setAttribute("http.url",X),Q.setAttribute(IZ,X),Q.updateName(`${$.method||"GET"} ${X}`)}Z.instrumentation?.requestHook?.(Q,$)},responseHook:(Q,$)=>{Z.instrumentation?.responseHook?.(Q,$)},applyCustomAttributesOnSpan:(Q,$,Y)=>{Z.instrumentation?.applyCustomAttributesOnSpan?.(Q,$,Y)}}}var jx=R(Dx(),1);var qx="NodeFetch",vO0=N(qx,jx.UndiciInstrumentation,(Z)=>{return dO0(Z)}),bO0=N(`${qx}.sentry`,F8,(Z)=>{return Z}),xO0=(Z={})=>{return{name:"NodeFetch",setupOnce(){if(gO0(Z,f()?.getOptions()))vO0(Z);bO0(Z)}}},Lx=P(xO0);function Ux(Z,J="/"){let Q=`${Z}`;if(Q.endsWith("/")&&J.startsWith("/"))return`${Q}${J.slice(1)}`;if(!Q.endsWith("/")&&!J.startsWith("/"))return`${Q}/${J}`;return`${Q}${J}`}function gO0(Z,J={}){return typeof Z.spans==="boolean"?Z.spans:!J.skipOpenTelemetrySetup&&C0(J)}function dO0(Z={}){return{requireParentforSpans:!1,ignoreRequestHook:(Q)=>{let $=Ux(Q.origin,Q.path),Y=Z.ignoreOutgoingRequests;return!!(Y&&$&&Y($))},startSpanHook:(Q)=>{let $=Ux(Q.origin,Q.path);if($.startsWith("data:")){let Y=s1($);return{[_]:"auto.http.otel.node_fetch","http.url":Y,[IZ]:Y,[i6]:`${Q.method||"GET"} ${Y}`}}return{[_]:"auto.http.otel.node_fetch"}},requestHook:Z.requestHook,responseHook:Z.responseHook,headersToSpanAttributes:Z.headersToSpanAttributes}}var cx=R(dx(),1);var f0=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var mx="Express";function HC0(Z){$0(Z,"auto.http.otel.express");let J=h(Z).data,Q=J["express.type"];if(Q)Z.setAttribute(b,`${Q}.express`);let $=J["express.name"];if(typeof $==="string")Z.updateName($)}function VC0(Z,J){if(l()===R6())return f0&&q.warn("Isolation scope is still default isolation scope - skipping setting transactionName"),J;if(Z.layerType==="request_handler"){let Q=Z.request,$=Q.method?Q.method.toUpperCase():"GET";l().setTransactionName(`${$} ${Z.route}`)}return J}var ux=N(mx,()=>new cx.ExpressInstrumentation({requestHook:(Z)=>HC0(Z),spanNameHook:(Z,J)=>VC0(Z,J)})),FC0=()=>{return{name:mx,setupOnce(){ux()}}},lx=P(FC0);var Nc=R(Oc(),1);import*as OB from"node:diagnostics_channel";var O9=R(C(),1),K3=R(Q0(),1),X1=R(c(),1),Rc=R(s(),1);var zZ;(function(Z){Z.FASTIFY_NAME="fastify.name";let Q="fastify.type";Z.FASTIFY_TYPE=Q;let $="hook.name";Z.HOOK_NAME=$;let Y="plugin.name";Z.PLUGIN_NAME=Y})(zZ||(zZ={}));var i4;(function(Z){Z.MIDDLEWARE="middleware";let Q="request_handler";Z.REQUEST_HANDLER=Q})(i4||(i4={}));var o4;(function(Z){Z.MIDDLEWARE="middleware";let Q="request handler";Z.REQUEST_HANDLER=Q})(o4||(o4={}));var Pc=R(C(),1);var n4=Symbol("opentelemetry.instrumentation.fastify.request_active_span");function qB(Z,J,Q,$={}){let Y=J.startSpan(Q,{attributes:$}),X=Z[n4]||[];return X.push(Y),Object.defineProperty(Z,n4,{enumerable:!1,configurable:!0,value:X}),Y}function W3(Z,J){let Q=Z[n4]||[];if(!Q.length)return;Q.forEach(($)=>{if(J)$.setStatus({code:Pc.SpanStatusCode.ERROR,message:J.message}),$.recordException(J);$.end()}),delete Z[n4]}function kc(Z,J,Q){let $,Y=void 0;try{if(Y=Z(),Cc(Y))Y.then((X)=>J(void 0,X),(X)=>J(X))}catch(X){$=X}finally{if(!Cc(Y)){if(J($,Y),$)throw $}return Y}}function Cc(Z){return typeof Z==="object"&&Z&&typeof Object.getOwnPropertyDescriptor(Z,"then")?.value==="function"||!1}var Ek0="0.1.0",yk0="@sentry/instrumentation-fastify-v3",Mc="anonymous",hk0=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]);class LB extends X1.InstrumentationBase{constructor(Z={}){super(yk0,Ek0,Z)}init(){return[new X1.InstrumentationNodeModuleDefinition("fastify",[">=3.0.0 <4"],(Z)=>{return this._patchConstructor(Z)})]}_hookOnRequest(){let Z=this;return function(Q,$,Y){if(!Z.isEnabled())return Y();Z._wrap($,"send",Z._patchSend());let X=Q,W=K3.getRPCMetadata(O9.context.active()),K=X.routeOptions?X.routeOptions.url:Q.routerPath;if(K&&W?.type===K3.RPCType.HTTP)W.route=K;let z=Q.method||"GET";l().setTransactionName(`${z} ${K}`),Y()}}_wrapHandler(Z,J,Q,$){let Y=this;return this._diag.debug("Patching fastify route.handler function"),function(...X){if(!Y.isEnabled())return Q.apply(this,X);let W=Q.name||Z||Mc,K=`${o4.MIDDLEWARE} - ${W}`,z=X[1],G=qB(z,Y.tracer,K,{[zZ.FASTIFY_TYPE]:i4.MIDDLEWARE,[zZ.PLUGIN_NAME]:Z,[zZ.HOOK_NAME]:J}),H=$&&X[X.length-1];if(H)X[X.length-1]=function(...B){W3(z),H.apply(this,B)};return O9.context.with(O9.trace.setSpan(O9.context.active(),G),()=>{return kc(()=>{return Q.apply(this,X)},(B)=>{if(B instanceof Error)G.setStatus({code:O9.SpanStatusCode.ERROR,message:B.message}),G.recordException(B);if(!$)W3(z)})})}}_wrapAddHook(){let Z=this;return this._diag.debug("Patching fastify server.addHook function"),function(J){return function(...$){let Y=$[0],X=$[1],W=this.pluginName;if(!hk0.has(Y))return J.apply(this,$);let K=typeof $[$.length-1]==="function"&&X.constructor.name!=="AsyncFunction";return J.apply(this,[Y,Z._wrapHandler(W,Y,X,K)])}}}_patchConstructor(Z){let J=this;function Q(...$){let Y=Z.fastify.apply(this,$);return Y.addHook("onRequest",J._hookOnRequest()),Y.addHook("preHandler",J._hookPreHandler()),Sk0(),J._wrap(Y,"addHook",J._wrapAddHook()),Y}if(Z.errorCodes!==void 0)Q.errorCodes=Z.errorCodes;return Q.fastify=Q,Q.default=Q,Q}_patchSend(){let Z=this;return this._diag.debug("Patching fastify reply.send function"),function(Q){return function(...Y){let X=Y[0];if(!Z.isEnabled())return Q.apply(this,Y);return X1.safeExecuteInTheMiddle(()=>{return Q.apply(this,Y)},(W)=>{if(!W&&X instanceof Error)W=X;W3(this,W)})}}}_hookPreHandler(){let Z=this;return this._diag.debug("Patching fastify preHandler function"),function(Q,$,Y){if(!Z.isEnabled())return Y();let X=Q,W=X.routeOptions?.handler||X.context?.handler,K=W?.name.startsWith("bound ")?W.name.substring(6):W?.name,z=`${o4.REQUEST_HANDLER} - ${K||this.pluginName||Mc}`,G={[zZ.PLUGIN_NAME]:this.pluginName,[zZ.FASTIFY_TYPE]:i4.REQUEST_HANDLER,[Rc.SEMATTRS_HTTP_ROUTE]:X.routeOptions?X.routeOptions.url:Q.routerPath};if(K)G[zZ.FASTIFY_NAME]=K;let H=qB($,Z.tracer,z,G);Ac(H);let{requestHook:B}=Z.getConfig();if(B)X1.safeExecuteInTheMiddle(()=>B(H,{request:Q}),(V)=>{if(V)Z._diag.error("request hook failed",V)},!0);return O9.context.with(O9.trace.setSpan(O9.context.active(),H),()=>{Y()})}}}function Sk0(){let Z=f();if(Z)Z.on("spanStart",(J)=>{Ac(J)})}function Ac(Z){let J=h(Z).data,Q=J["fastify.type"];if(J[b]||!Q)return;Z.setAttributes({[_]:"auto.http.otel.fastify",[b]:`${Q}.fastify`});let $=J["fastify.name"]||J["plugin.name"]||J["hook.name"];if(typeof $==="string"){let Y=$.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");Z.updateName(Y)}}var z3="Fastify",Tc=N(`${z3}.v3`,()=>new LB);function _k0(){let Z=f();if(!Z)return;else return Z.getIntegrationByName(z3)}function Ic(Z,J,Q,$){let Y=_k0()?.getShouldHandleError()||yc;if($==="diagnostics-channel")this.diagnosticsChannelExists=!0;if(this.diagnosticsChannelExists&&$==="onError-hook"){f0&&q.warn("Fastify error handler was already registered via diagnostics channel.","You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.");return}if(Y(Z,J,Q))g(Z,{mechanism:{handled:!1,type:"auto.function.fastify"}})}var fc=N(`${z3}.v5`,()=>{let Z=new Nc.FastifyOtelInstrumentation,J=Z.plugin();return OB.subscribe("fastify.initialization",(Q)=>{let $=Q.fastify;$?.register(J).after((Y)=>{if(Y)f0&&q.error("Failed to setup Fastify instrumentation",Y);else if(bk0(),$)xk0($)})}),OB.subscribe("tracing:fastify.request.handler:error",(Q)=>{let{error:$,request:Y,reply:X}=Q;Ic.call(Ic,$,Y,X,"diagnostics-channel")}),Z}),vk0=({shouldHandleError:Z})=>{let J;return{name:z3,setupOnce(){J=Z||yc,Tc(),fc()},getShouldHandleError(){return J},setShouldHandleError(Q){J=Q}}},Ec=P((Z={})=>vk0(Z));function yc(Z,J,Q){let $=Q.statusCode;return $>=500||$<=299}function hc(Z){let J=h(Z),Q=J.description,$=J.data,Y=$["fastify.type"],X=Y==="hook",W=Y===Q?.startsWith("handler -"),K=Q==="request"||Y==="request-handler";if($[b]||!W&&!K&&!X)return;let z=X?"hook":W?"middleware":K?"request_handler":"";Z.setAttributes({[_]:"auto.http.otel.fastify",[b]:`${z}.fastify`});let G=$["fastify.name"]||$["plugin.name"]||$["hook.name"];if(typeof G==="string"){let H=G.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");Z.updateName(H)}}function bk0(){let Z=f();if(Z)Z.on("spanStart",(J)=>{hc(J)})}function xk0(Z){Z.addHook("onRequest",async(J,Q)=>{if(J.opentelemetry){let{span:X}=J.opentelemetry();if(X)hc(X)}let $=J.routeOptions?.url,Y=J.method||"GET";l().setTransactionName(`${Y} ${$}`)})}var Um=R(C(),1),jm=R(Dm(),1);var qm="Graphql",Lm=N(qm,jm.GraphQLInstrumentation,(Z)=>{let J=Cm(Z);return{...J,responseHook(Q,$){if($0(Q,"auto.graphql.otel.graphql"),$.errors?.length&&!h(Q).status)Q.setStatus({code:Um.SpanStatusCode.ERROR});let X=h(Q).data,W=X["graphql.operation.type"],K=X["graphql.operation.name"];if(J.useOperationNameForRootSpan&&W){let z=H0(Q),H=h(z).data[C8]||[],B=K?`${W} ${K}`:`${W}`;if(Array.isArray(H))H.push(B),z.setAttribute(C8,H);else if(typeof H==="string")z.setAttribute(C8,[H,B]);else z.setAttribute(C8,B);if(!h(z).data["original-description"])z.setAttribute("original-description",h(z).description);z.updateName(`${h(z).data["original-description"]} (${wM0(H)})`)}}}}),FM0=(Z={})=>{return{name:qm,setupOnce(){Lm(Cm(Z))}}},Om=P(FM0);function Cm(Z){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...Z}}function wM0(Z){if(Array.isArray(Z)){let J=Z.slice().sort();if(J.length<=5)return J.join(", ");else return`${J.slice(0,5).join(", ")}, +${J.length-5}`}return`${Z}`}var lm=R(um(),1);var pm="Kafka",im=N(pm,()=>new lm.KafkaJsInstrumentation({consumerHook(Z){$0(Z,"auto.kafkajs.otel.consumer")},producerHook(Z){$0(Z,"auto.kafkajs.otel.producer")}})),SM0=()=>{return{name:pm,setupOnce(){im()}}},om=P(SM0);var Xu=R(Yu(),1);var Wu="LruMemoizer",Ku=N(Wu,()=>new Xu.LruMemoizerInstrumentation),xM0=()=>{return{name:Wu,setupOnce(){Ku()}}},zu=P(xM0);var Ru=R(Mu(),1);var Au="Mongo",Iu=N(Au,()=>new Ru.MongoDBInstrumentation({dbStatementSerializer:JR0,responseHook(Z){$0(Z,"auto.db.otel.mongo")}}));function JR0(Z){let J=hB(Z);return JSON.stringify(J)}function hB(Z){if(Array.isArray(Z))return Z.map((J)=>hB(J));if(QR0(Z)){let J={};return Object.entries(Z).map(([Q,$])=>[Q,hB($)]).reduce((Q,$)=>{if(YR0($))Q[$[0]]=$[1];return Q},J)}return"?"}function QR0(Z){return typeof Z==="object"&&Z!==null&&!$R0(Z)}function $R0(Z){let J=!1;if(typeof Buffer<"u")J=Buffer.isBuffer(Z);return J}function YR0(Z){return Array.isArray(Z)}var XR0=()=>{return{name:Au,setupOnce(){Iu()}}},Nu=P(XR0);var nu=R(ou(),1);var au="Mongoose",su=N(au,()=>new nu.MongooseInstrumentation({responseHook(Z){$0(Z,"auto.db.otel.mongoose")}})),AR0=()=>{return{name:au,setupOnce(){su()}}},ru=P(AR0);var Dl=R(wl(),1);var Ul="Mysql",jl=N(Ul,()=>new Dl.MySQLInstrumentation({})),tR0=()=>{return{name:Ul,setupOnce(){jl()}}},ql=P(tR0);var bl=R(vl(),1);var xl="Mysql2",gl=N(xl,()=>new bl.MySQL2Instrumentation({responseHook(Z){$0(Z,"auto.db.otel.mysql2")}})),AA0=()=>{return{name:xl,setupOnce(){gl()}}},dl=P(AA0);var xp=R(Xp(),1),gp=R(hp(),1);var GI0=["get","set","setex"],JH=["get","mget"],BI0=["set","setex"];function XJ(Z,J){return Z.includes(J.toLowerCase())}function QH(Z){if(XJ(JH,Z))return"cache.get";else if(XJ(BI0,Z))return"cache.put";else return}function HI0(Z,J){return J.some((Q)=>Z.startsWith(Q))}function _p(Z,J){try{if(J.length===0)return;let Q=(Y)=>{if(typeof Y==="string"||typeof Y==="number"||Buffer.isBuffer(Y))return[Y.toString()];else if(Array.isArray(Y))return Sp(Y.map((X)=>Q(X)));else return[""]},$=J[0];if(XJ(GI0,Z)&&$!=null)return Q($);return Sp(J.map((Y)=>Q(Y)))}catch{return}}function vp(Z,J,Q){if(!QH(Z))return!1;for(let $ of J)if(HI0($,Q))return!0;return!1}function bp(Z){let J=(Q)=>{try{if(Buffer.isBuffer(Q))return Q.byteLength;else if(typeof Q==="string")return Q.length;else if(typeof Q==="number")return Q.toString().length;else if(Q===null||Q===void 0)return 0;return JSON.stringify(Q).length}catch{return}};return Array.isArray(Z)?Z.reduce((Q,$)=>{let Y=J($);return typeof Y==="number"?Q!==void 0?Q+Y:Y:Q},0):J(Z)}function Sp(Z){let J=[],Q=($)=>{$.forEach((Y)=>{if(Array.isArray(Y))Q(Y);else J.push(Y)})};return Q(Z),J}var P3="Redis",WJ={},dp=(Z,J,Q,$)=>{Z.setAttribute(_,"auto.db.otel.redis");let Y=_p(J,Q),X=QH(J);if(!Y||!X||!WJ.cachePrefixes||!vp(J,Y,WJ.cachePrefixes))return;let W=h(Z).data["net.peer.name"],K=h(Z).data["net.peer.port"];if(K&&W)Z.setAttributes({"network.peer.address":W,"network.peer.port":K});let z=bp($);if(z)Z.setAttribute(MW,z);if(XJ(JH,J)&&z!==void 0)Z.setAttribute(PW,z>0);Z.setAttributes({[b]:X,[kW]:Y});let G=Y.join(", ");Z.updateName(WJ.maxCacheKeyLength?kZ(G,WJ.maxCacheKeyLength):G)},VI0=N(`${P3}.IORedis`,()=>{return new xp.IORedisInstrumentation({responseHook:dp})}),FI0=N(`${P3}.Redis`,()=>{return new gp.RedisInstrumentation({responseHook:dp})}),cp=Object.assign(()=>{VI0(),FI0()},{id:P3}),wI0=(Z={})=>{return{name:P3,setupOnce(){WJ=Z,cp()}}},mp=P(wI0);var qi=R(ji(),1);var Li="Postgres",Oi=N(Li,qi.PgInstrumentation,(Z)=>({requireParentSpan:!0,requestHook(J){$0(J,"auto.db.otel.postgres")},ignoreConnectSpans:Z?.ignoreConnectSpans??!1})),WN0=(Z)=>{return{name:Li,setupOnce(){Oi(Z)}}},Ci=P(WN0);var S8=R(C(),1),$7=R(c(),1),k9=R(s(),1);var GH="PostgresJs",Pi=[">=3.0.0 <4"],KN0=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,zN0=Symbol.for("sentry.query.from.instrumented.sql"),ki=N(GH,(Z)=>new Mi({requireParentSpan:Z?.requireParentSpan??!0,requestHook:Z?.requestHook}));class Mi extends $7.InstrumentationBase{constructor(Z){super("sentry-postgres-js",a,Z)}init(){let Z=new $7.InstrumentationNodeModuleDefinition("postgres",Pi,(J)=>{try{return this._patchPostgres(J)}catch(Q){return f0&&q.error("Failed to patch postgres module:",Q),J}},(J)=>J);return["src","cf/src","cjs/src"].forEach((J)=>{Z.files.push(new $7.InstrumentationNodeModuleFile(`postgres/${J}/query.js`,Pi,this._patchQueryPrototype.bind(this),this._unpatchQueryPrototype.bind(this)))}),Z}_patchPostgres(Z){let J=typeof Z==="function",Q=J?Z:Z.default;if(typeof Q!=="function")return f0&&q.warn("postgres module does not export a function. Skipping instrumentation."),Z;let $=this,Y=function(...X){let W=Reflect.construct(Q,X);if(!W||typeof W!=="function")return f0&&q.warn("postgres() did not return a valid instance"),W;let K=$.getConfig();return DK(W,{requireParentSpan:K.requireParentSpan,requestHook:K.requestHook})};Object.setPrototypeOf(Y,Q),Object.setPrototypeOf(Y.prototype,Q.prototype);for(let X of Object.getOwnPropertyNames(Q))if(!["length","name","prototype"].includes(X)){let W=Object.getOwnPropertyDescriptor(Q,X);if(W)Object.defineProperty(Y,X,W)}if(J)return Y;else return W4(Z,"default",Y),Z}_shouldCreateSpans(){let Z=this.getConfig();return S8.trace.getSpan(S8.context.active())!==void 0||!Z.requireParentSpan}_setOperationName(Z,J,Q){if(Q){Z.setAttribute(k9.ATTR_DB_OPERATION_NAME,Q);return}let $=J?.match(KN0);if($?.[1])Z.setAttribute(k9.ATTR_DB_OPERATION_NAME,$[1].toUpperCase())}_reconstructQuery(Z){if(!Z?.length)return;if(Z.length===1)return Z[0]||void 0;return Z.reduce((J,Q,$)=>$===0?Q:`${J}$${$}${Q}`,"")}_sanitizeSqlQuery(Z){if(!Z)return"Unknown SQL Query";return Z.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{$0(W,"auto.db.postgresjs"),W.setAttributes({[k9.ATTR_DB_SYSTEM_NAME]:"postgres",[k9.ATTR_DB_QUERY_TEXT]:X});let K=J.getConfig(),{requestHook:z}=K;if(z)$7.safeExecuteInTheMiddle(()=>z(W,X,void 0),(B)=>{if(B)W.setAttribute("sentry.hook.error","requestHook failed"),f0&&q.error(`Error in requestHook for ${GH} integration:`,B)},!0);let G=this.resolve;this.resolve=new Proxy(G,{apply:(B,V,F)=>{try{J._setOperationName(W,X,F?.[0]?.command),W.end()}catch(D){f0&&q.error("Error ending span in resolve callback:",D)}return Reflect.apply(B,V,F)}});let H=this.reject;this.reject=new Proxy(H,{apply:(B,V,F)=>{try{W.setStatus({code:i,message:F?.[0]?.message||"unknown_error"}),W.setAttribute(k9.ATTR_DB_RESPONSE_STATUS_CODE,F?.[0]?.code||"unknown"),W.setAttribute(k9.ATTR_ERROR_TYPE,F?.[0]?.name||"unknown"),J._setOperationName(W,X),W.end()}catch(D){f0&&q.error("Error ending span in reject callback:",D)}return Reflect.apply(B,V,F)}});try{return Q.apply(this,$)}catch(B){throw W.setStatus({code:i,message:B instanceof Error?B.message:"unknown_error"}),W.end(),B}})},Z.Query.prototype.handle.__sentry_original__=Q,Z}_unpatchQueryPrototype(Z){if(Z.Query.prototype.handle.__sentry_original__)Z.Query.prototype.handle=Z.Query.prototype.handle.__sentry_original__;return Z}}var GN0=(Z)=>{return{name:GH,setupOnce(){ki(Z)}}},Ri=P(GN0);var W9=R(C(),1);var Dn=R(C(),1),_3=R(Vn(),1),Y7=R(C(),1);var Yf0={name:"@prisma/instrumentation-contract",version:"7.4.2",description:"Shared types and utilities for Prisma instrumentation",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",exports:{".":{require:{types:"./dist/index.d.ts",default:"./dist/index.js"},import:{types:"./dist/index.d.mts",default:"./dist/index.mjs"}}},license:"Apache-2.0",homepage:"https://www.prisma.io",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/instrumentation-contract"},bugs:"https://github.com/prisma/prisma/issues",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",prepublishOnly:"pnpm run build",test:"vitest run"},files:["dist"],sideEffects:!1,devDependencies:{"@opentelemetry/api":"1.9.0"},peerDependencies:{"@opentelemetry/api":"^1.8"}},Xf0=Yf0.version.split(".")[0],dH="PRISMA_INSTRUMENTATION",cH=`V${Xf0}_PRISMA_INSTRUMENTATION`,b8=globalThis;function Wf0(){let Z=b8[cH];if(Z?.helper)return Z.helper;return b8[dH]?.helper}function Kf0(Z){let J={helper:Z};b8[cH]=J,b8[dH]=J}function zf0(){delete b8[cH],delete b8[dH]}var Gf0=process.env.PRISMA_SHOW_ALL_TRACES==="true",Bf0="00-10-10-00";function Hf0(Z){switch(Z){case"client":return Y7.SpanKind.CLIENT;case"internal":default:return Y7.SpanKind.INTERNAL}}var Vf0=class{tracerProvider;ignoreSpanTypes;constructor({tracerProvider:Z,ignoreSpanTypes:J}){this.tracerProvider=Z,this.ignoreSpanTypes=J}isEnabled(){return!0}getTraceParent(Z){let J=Y7.trace.getSpanContext(Z??Y7.context.active());if(J)return`00-${J.traceId}-${J.spanId}-0${J.traceFlags}`;return Bf0}dispatchEngineSpans(Z){let J=this.tracerProvider.getTracer("prisma"),Q=new Map,$=Z.filter((Y)=>Y.parentId===null);for(let Y of $)Un(J,Y,Z,Q,this.ignoreSpanTypes)}getActiveContext(){return Y7.context.active()}runInChildSpan(Z,J){if(typeof Z==="string")Z={name:Z};if(Z.internal&&!Gf0)return J();let Q=this.tracerProvider.getTracer("prisma"),$=Z.context??this.getActiveContext(),Y=`prisma:client:${Z.name}`;if(jn(Y,this.ignoreSpanTypes))return J();if(Z.active===!1){let X=Q.startSpan(Y,Z,$);return Fn(X,J(X,$))}return Q.startActiveSpan(Y,Z,(X)=>Fn(X,J(X,$)))}};function Un(Z,J,Q,$,Y){if(jn(J.name,Y))return;let X={attributes:J.attributes,kind:Hf0(J.kind),startTime:J.startTime};Z.startActiveSpan(J.name,X,(W)=>{if($.set(J.id,W.spanContext().spanId),J.links)W.addLinks(J.links.flatMap((z)=>{let G=$.get(z);if(!G)return[];return{context:{spanId:G,traceId:W.spanContext().traceId,traceFlags:W.spanContext().traceFlags}}}));let K=Q.filter((z)=>z.parentId===J.id);for(let z of K)Un(Z,z,Q,$,Y);W.end(J.endTime)})}function Fn(Z,J){if(Ff0(J))return J.then((Q)=>{return Z.end(),Q},(Q)=>{throw Z.end(),Q});return Z.end(),J}function Ff0(Z){return Z!=null&&typeof Z.then==="function"}function jn(Z,J){return J.some((Q)=>typeof Q==="string"?Q===Z:Q.test(Z))}var qn={name:"@prisma/instrumentation",version:"7.4.2",description:"OpenTelemetry compliant instrumentation for Prisma Client",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",exports:{".":{require:{types:"./dist/index.d.ts",default:"./dist/index.js"},import:{types:"./dist/index.d.ts",default:"./dist/index.mjs"}}},license:"Apache-2.0",homepage:"https://www.prisma.io",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/instrumentation"},bugs:"https://github.com/prisma/prisma/issues",devDependencies:{"@opentelemetry/api":"1.9.0","@prisma/instrumentation-contract":"workspace:*","@types/node":"~20.19.24",typescript:"5.4.5"},dependencies:{"@opentelemetry/instrumentation":"^0.207.0"},peerDependencies:{"@opentelemetry/api":"^1.8"},files:["dist"],keywords:["prisma","instrumentation","opentelemetry","otel"],scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",prepublishOnly:"pnpm run build",test:"vitest run"},sideEffects:!1},wn=qn.version,wf0=qn.name,Df0="@prisma/client",Ln=class extends _3.InstrumentationBase{tracerProvider;constructor(Z={}){super(wf0,wn,Z)}setTracerProvider(Z){this.tracerProvider=Z}init(){return[new _3.InstrumentationNodeModuleDefinition(Df0,[wn])]}enable(){let Z=this._config;Kf0(new Vf0({tracerProvider:this.tracerProvider??Dn.trace.getTracerProvider(),ignoreSpanTypes:Z.ignoreSpanTypes??[]}))}disable(){zf0()}isEnabled(){return Wf0()!==void 0}};var On="Prisma";function Uf0(Z){return!!Z&&typeof Z==="object"&&"dispatchEngineSpans"in Z}function Cn(){let Z=globalThis.PRISMA_INSTRUMENTATION;return Z&&typeof Z==="object"&&"helper"in Z?Z.helper:void 0}class Pn extends Ln{constructor(Z){super(Z?.instrumentationConfig)}enable(){super.enable();let Z=Cn();if(Uf0(Z))Z.createEngineSpan=(J)=>{let Q=W9.trace.getTracer("prismaV5Compatibility"),$=Q._idGenerator;if(!$){O0(()=>{console.warn("[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!")});return}try{J.spans.forEach((Y)=>{let X=jf0(Y.kind),W=Y.parent_span_id,K=Y.span_id,z=Y.trace_id,G=Y.links?.map((B)=>{return{context:{traceId:B.trace_id,spanId:B.span_id,traceFlags:W9.TraceFlags.SAMPLED}}}),H=W9.trace.setSpanContext(W9.context.active(),{traceId:z,spanId:W,traceFlags:W9.TraceFlags.SAMPLED});W9.context.with(H,()=>{let B={generateTraceId:()=>{return z},generateSpanId:()=>{return K}};Q._idGenerator=B,Q.startSpan(Y.name,{kind:X,links:G,startTime:Y.start_time,attributes:Y.attributes}).end(Y.end_time),Q._idGenerator=$})})}finally{Q._idGenerator=$}}}}function jf0(Z){switch(Z){case"client":return W9.SpanKind.CLIENT;case"internal":default:return W9.SpanKind.INTERNAL}}var qf0=N(On,(Z)=>{return new Pn(Z)}),kn=P((Z)=>{return{name:On,setupOnce(){qf0(Z)},setup(J){if(!Cn())return;J.on("spanStart",(Q)=>{let $=h(Q);if($.description?.startsWith("prisma:"))Q.setAttribute(_,"auto.db.otel.prisma");if($.description==="prisma:engine:db_query"&&$.data["db.query.text"])Q.updateName($.data["db.query.text"]);if($.description==="prisma:engine:db_query"&&!$.data["db.system"])Q.setAttribute("db.system","prisma")})}}});var pn=R(ln(),1);var on="Hapi",nn=N(on,()=>new pn.HapiInstrumentation),mf0=()=>{return{name:on,setupOnce(){nn()}}},an=P(mf0);var x3=R(s(),1);var W7={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},jJ={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"};var V1=R(C(),1),b3=R(c(),1);var uf0="@sentry/instrumentation-hono",lf0="0.0.1";class iH extends b3.InstrumentationBase{constructor(Z={}){super(uf0,lf0,Z)}init(){return[new b3.InstrumentationNodeModuleDefinition("hono",[">=4.0.0 <5"],(Z)=>this._patch(Z))]}_patch(Z){let J=this;class Q extends Z.Hono{constructor(...$){super(...$);J._wrap(this,"get",J._patchHandler()),J._wrap(this,"post",J._patchHandler()),J._wrap(this,"put",J._patchHandler()),J._wrap(this,"delete",J._patchHandler()),J._wrap(this,"options",J._patchHandler()),J._wrap(this,"patch",J._patchHandler()),J._wrap(this,"all",J._patchHandler()),J._wrap(this,"on",J._patchOnHandler()),J._wrap(this,"use",J._patchMiddlewareHandler())}}try{Z.Hono=Q}catch{return{...Z,Hono:Q}}return Z}_patchHandler(){let Z=this;return function(J){return function(...$){if(typeof $[0]==="string"){let Y=$[0];if($.length===1)return J.apply(this,[Y]);let X=$.slice(1);return J.apply(this,[Y,...X.map((W)=>Z._wrapHandler(W))])}return J.apply(this,$.map((Y)=>Z._wrapHandler(Y)))}}}_patchOnHandler(){let Z=this;return function(J){return function(...$){let Y=$.slice(2);return J.apply(this,[...$.slice(0,2),...Y.map((X)=>Z._wrapHandler(X))])}}}_patchMiddlewareHandler(){let Z=this;return function(J){return function(...$){if(typeof $[0]==="string"){let Y=$[0];if($.length===1)return J.apply(this,[Y]);let X=$.slice(1);return J.apply(this,[Y,...X.map((W)=>Z._wrapHandler(W))])}return J.apply(this,$.map((Y)=>Z._wrapHandler(Y)))}}}_wrapHandler(Z){let J=this;return function(Q,$){if(!J.isEnabled())return Z.apply(this,[Q,$]);let Y=Q.req.path,X=J.tracer.startSpan(Y);return V1.context.with(V1.trace.setSpan(V1.context.active(),X),()=>{return J._safeExecute(()=>{let W=Z.apply(this,[Q,$]);if(b0(W))return W.then((K)=>{let z=J._determineHandlerType(K);return X.setAttributes({[W7.HONO_TYPE]:z,[W7.HONO_NAME]:z===jJ.REQUEST_HANDLER?Y:Z.name||"anonymous"}),J.getConfig().responseHook?.(X),K});else{let K=J._determineHandlerType(W);return X.setAttributes({[W7.HONO_TYPE]:K,[W7.HONO_NAME]:K===jJ.REQUEST_HANDLER?Y:Z.name||"anonymous"}),J.getConfig().responseHook?.(X),W}},()=>X.end(),(W)=>{J._handleError(X,W),X.end()})})}}_safeExecute(Z,J,Q){try{let $=Z();if(b0($))$.then(()=>J(),(Y)=>Q(Y));else J();return $}catch($){throw Q($),$}}_determineHandlerType(Z){return Z===void 0?jJ.MIDDLEWARE:jJ.REQUEST_HANDLER}_handleError(Z,J){if(J instanceof Error)Z.setStatus({code:V1.SpanStatusCode.ERROR,message:J.message}),Z.recordException(J)}}var sn="Hono";function pf0(Z){let J=h(Z).data,Q=J[W7.HONO_TYPE];if(J[b]||!Q)return;Z.setAttributes({[_]:"auto.http.otel.hono",[b]:`${Q}.hono`});let $=J[W7.HONO_NAME];if(typeof $==="string")Z.updateName($);if(l()===R6()){f0&&q.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let Y=J[x3.ATTR_HTTP_ROUTE],X=J[x3.ATTR_HTTP_REQUEST_METHOD];if(typeof Y==="string"&&typeof X==="string")l().setTransactionName(`${X} ${Y}`)}var rn=N(sn,()=>new iH({responseHook:(Z)=>{pf0(Z)}})),if0=()=>{return{name:sn,setupOnce(){rn()}}},tn=P(if0);var Ca=R(Oa(),1),Pa=R(s(),1);var ka="Koa",Ma=N(ka,Ca.KoaInstrumentation,(Z={})=>{return{ignoreLayersType:Z.ignoreLayersType,requestHook(J,Q){$0(J,"auto.http.otel.koa");let $=h(J).data,Y=$["koa.type"];if(Y)J.setAttribute(b,`${Y}.koa`);let X=$["koa.name"];if(typeof X==="string")J.updateName(X||"< unknown >");if(l()===R6()){f0&&q.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let W=$[Pa.ATTR_HTTP_ROUTE],K=Q.context?.request?.method?.toUpperCase()||"GET";if(W)l().setTransactionName(`${K} ${W}`)}}}),YE0=(Z={})=>{return{name:ka,setupOnce(){Ma(Z)}}},Ra=P(YE0);var ia=R(pa(),1);var oa="Connect",na=N(oa,()=>new ia.ConnectInstrumentation),qE0=()=>{return{name:oa,setupOnce(){na()}}},aa=P(qE0);var Fs=R(Vs(),1);var hE0=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),ws="Tedious",Ds=N(ws,()=>new Fs.TediousInstrumentation({})),SE0=()=>{let Z;return{name:ws,setupOnce(){let J=Ds();Z=M4(J)},setup(J){Z?.(()=>J.on("spanStart",(Q)=>{let{description:$,data:Y}=h(Q);if(!$||Y["db.system"]!=="mssql")return;let X=$.split(" ")[0]||"";if(hE0.has(X))Q.setAttribute(_,"auto.db.otel.tedious")}))}}},Us=P(SE0);var As=R(Rs(),1);var Is="GenericPool",Ns=N(Is,()=>new As.GenericPoolInstrumentation({})),xE0=()=>{let Z;return{name:Is,setupOnce(){let J=Ns();Z=M4(J)},setup(J){Z?.(()=>J.on("spanStart",(Q)=>{let Y=h(Q).description;if(Y==="generic-pool.aquire"||Y==="generic-pool.acquire")Q.setAttribute(_,"auto.db.otel.generic_pool")}))}}},Ts=P(xE0);var es=R(ts(),1);var Zr="Amqplib",qy0={consumeEndHook:(Z)=>{$0(Z,"auto.amqplib.otel.consumer")},publishHook:(Z)=>{$0(Z,"auto.amqplib.otel.publisher")}},Jr=N(Zr,()=>new es.AmqplibInstrumentation(qy0)),Ly0=()=>{return{name:Zr,setupOnce(){Jr()}}},Qr=P(Ly0);var PJ="VercelAI";var o3=R(c(),1);var Oy0=[">=3.0.0 <7"],$r=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];function Cy0(Z){if(typeof Z!=="object"||Z===null)return!1;let J=Z;return"type"in J&&"error"in J&&"toolName"in J&&"toolCallId"in J&&J.type==="tool-error"&&J.error instanceof Error}function Py0(Z){if(typeof Z!=="object"||Z===null||!("content"in Z))return;let J=Z;if(!Array.isArray(J.content))return;ky0(J.content),My0(J.content)}function ky0(Z){for(let J of Z){if(!Cy0(J))continue;let Q=vK(J.toolCallId);if(Q)n0(($)=>{$.setContext("trace",{trace_id:Q.traceId,span_id:Q.spanId}),$.setTag("vercel.ai.tool.name",J.toolName),$.setTag("vercel.ai.tool.callId",J.toolCallId),$.setLevel("error"),g(J.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})});else n0(($)=>{$.setTag("vercel.ai.tool.name",J.toolName),$.setTag("vercel.ai.tool.callId",J.toolCallId),$.setLevel("error"),g(J.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})})}}function My0(Z){for(let J of Z)if(typeof J==="object"&&J!==null&&"toolCallId"in J&&typeof J.toolCallId==="string")bK(J.toolCallId)}function Ry0(Z,J,Q,$){let Y=Z?.recordInputs!==void 0?Z.recordInputs:J.recordInputs!==void 0?J.recordInputs:Q===!0?!0:$,X=Z?.recordOutputs!==void 0?Z.recordOutputs:J.recordOutputs!==void 0?J.recordOutputs:Q===!0?!0:$;return{recordInputs:Y,recordOutputs:X}}class kJ extends o3.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(Z={}){super("@sentry/instrumentation-vercel-ai",a,Z);kJ.prototype.__init.call(this),kJ.prototype.__init2.call(this)}init(){return new o3.InstrumentationNodeModuleDefinition("ai",Oy0,this._patch.bind(this))}callWhenPatched(Z){if(this._isPatched)Z();else this._callbacks.push(Z)}_patch(Z){this._isPatched=!0,this._callbacks.forEach((Q)=>Q()),this._callbacks=[];let J=(Q)=>{return new Proxy(Q,{apply:($,Y,X)=>{let W=X[0].experimental_telemetry||{},K=W.isEnabled,z=f(),G=z?.getIntegrationByName(PJ),H=G?.options,B=G?Boolean(z?.getOptions().sendDefaultPii):!1,{recordInputs:V,recordOutputs:F}=Ry0(H,W,K,B);return X[0].experimental_telemetry={...W,isEnabled:K!==void 0?K:!0,recordInputs:V,recordOutputs:F},w9(()=>Reflect.apply($,Y,X),(D)=>{if(D&&typeof D==="object")M0(D,"_sentry_active_span",N6())},()=>{},(D)=>{Py0(D)})}})};if(Object.prototype.toString.call(Z)==="[object Module]"){for(let Q of $r)if(Z[Q]!=null)Z[Q]=J(Z[Q]);return Z}else{let Q=$r.reduce(($,Y)=>{if(Z[Y]!=null)$[Y]=J(Z[Y]);return $},{});return{...Z,...Q}}}}var Yr=N(PJ,()=>new kJ({}));function Ay0(Z){return!!Z.getIntegrationByName("Modules")?.getModules?.()?.ai}var Iy0=(Z={})=>{let J;return{name:PJ,options:Z,setupOnce(){J=Yr()},afterAllSetup(Q){if(Z.force??Ay0(Q))uQ(Q);else J?.callWhenPatched(()=>uQ(Q))}}},Xr=P(Iy0);var n3=R(c(),1);var Ny0=[">=4.0.0 <7"];class HV extends n3.InstrumentationBase{constructor(Z={}){super("@sentry/instrumentation-openai",a,Z)}init(){return new n3.InstrumentationNodeModuleDefinition("openai",Ny0,this._patch.bind(this))}_patch(Z){let J=Z;return J=this._patchClient(J,"OpenAI"),J=this._patchClient(J,"AzureOpenAI"),J}_patchClient(Z,J){let Q=Z[J];if(!Q)return Z;let $=this.getConfig(),Y=function(...X){if(x7(cZ))return Reflect.construct(Q,X);let W=Reflect.construct(Q,X);return iQ(W,$)};Object.setPrototypeOf(Y,Q),Object.setPrototypeOf(Y.prototype,Q.prototype);for(let X of Object.getOwnPropertyNames(Q))if(!["length","name","prototype"].includes(X)){let W=Object.getOwnPropertyDescriptor(Q,X);if(W)Object.defineProperty(Y,X,W)}try{Z[J]=Y}catch{Object.defineProperty(Z,J,{value:Y,writable:!0,configurable:!0,enumerable:!0})}if(Z.default===Q)try{Z.default=Y}catch{Object.defineProperty(Z,"default",{value:Y,writable:!0,configurable:!0,enumerable:!0})}return Z}}var Wr=N(cZ,(Z)=>new HV(Z)),Ty0=(Z={})=>{return{name:cZ,setupOnce(){Wr(Z)}}},Kr=P(Ty0);var a3=R(c(),1);var fy0=[">=0.19.2 <1.0.0"];class VV extends a3.InstrumentationBase{constructor(Z={}){super("@sentry/instrumentation-anthropic-ai",a,Z)}init(){return new a3.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",fy0,this._patch.bind(this))}_patch(Z){let J=Z.Anthropic,Q=this.getConfig(),$=function(...Y){if(x7(mZ))return Reflect.construct(J,Y);let X=Reflect.construct(J,Y);return oQ(X,Q)};Object.setPrototypeOf($,J),Object.setPrototypeOf($.prototype,J.prototype);for(let Y of Object.getOwnPropertyNames(J))if(!["length","name","prototype"].includes(Y)){let X=Object.getOwnPropertyDescriptor(J,Y);if(X)Object.defineProperty($,Y,X)}try{Z.Anthropic=$}catch{Object.defineProperty(Z,"Anthropic",{value:$,writable:!0,configurable:!0,enumerable:!0})}if(Z.default===J)try{Z.default=$}catch{Object.defineProperty(Z,"default",{value:$,writable:!0,configurable:!0,enumerable:!0})}return Z}}var zr=N(mZ,(Z)=>new VV(Z)),Ey0=(Z={})=>{return{name:mZ,options:Z,setupOnce(){zr(Z)}}},Gr=P(Ey0);var c8=R(c(),1);var Br=[">=0.10.0 <2"];class FV extends c8.InstrumentationBase{constructor(Z={}){super("@sentry/instrumentation-google-genai",a,Z)}init(){return new c8.InstrumentationNodeModuleDefinition("@google/genai",Br,(J)=>this._patch(J),(J)=>J,[new c8.InstrumentationNodeModuleFile("@google/genai/dist/node/index.cjs",Br,(J)=>this._patch(J),(J)=>J)])}_patch(Z){let J=Z.GoogleGenAI,Q=this.getConfig();if(typeof J!=="function")return Z;let $=function(...Y){if(x7(uZ))return Reflect.construct(J,Y);let X=Reflect.construct(J,Y);return nQ(X,Q)};Object.setPrototypeOf($,J),Object.setPrototypeOf($.prototype,J.prototype);for(let Y of Object.getOwnPropertyNames(J))if(!["length","name","prototype"].includes(Y)){let X=Object.getOwnPropertyDescriptor(J,Y);if(X)Object.defineProperty($,Y,X)}return W4(Z,"GoogleGenAI",$),Z}}var Hr=N(uZ,(Z)=>new FV(Z)),yy0=(Z={})=>{return{name:uZ,setupOnce(){Hr(Z)}}},Vr=P(yy0);var B7=R(c(),1);var s3=[">=0.1.0 <2.0.0"];function hy0(Z,J){if(!Z)return[J];if(Array.isArray(Z)){if(Z.includes(J))return Z;return[...Z,J]}if(typeof Z==="object")return[Z,J];return Z}function Sy0(Z,J,Q){return new Proxy(Z,{apply($,Y,X){let K=X[1];if(!K||typeof K!=="object"||Array.isArray(K))K={},X[1]=K;let z=K.callbacks,G=hy0(z,J);return K.callbacks=G,Reflect.apply($,Y,X)}})}class wV extends B7.InstrumentationBase{constructor(Z={}){super("@sentry/instrumentation-langchain",a,Z)}init(){let Z=[],J=["@langchain/anthropic","@langchain/openai","@langchain/google-genai","@langchain/mistralai","@langchain/google-vertexai","@langchain/groq"];for(let Q of J)Z.push(new B7.InstrumentationNodeModuleDefinition(Q,s3,this._patch.bind(this),($)=>$,[new B7.InstrumentationNodeModuleFile(`${Q}/dist/index.cjs`,s3,this._patch.bind(this),($)=>$)]));return Z.push(new B7.InstrumentationNodeModuleDefinition("langchain",s3,this._patch.bind(this),(Q)=>Q,[new B7.InstrumentationNodeModuleFile("langchain/dist/chat_models/universal.cjs",s3,this._patch.bind(this),(Q)=>Q)])),Z}_patch(Z){XK([cZ,mZ,uZ]);let J=sQ(this.getConfig());return this._patchRunnableMethods(Z,J),Z}_patchRunnableMethods(Z,J){let Q=["ChatAnthropic","ChatOpenAI","ChatGoogleGenerativeAI","ChatMistralAI","ChatVertexAI","ChatGroq","ConfigurableModel"],$=Z.universal_exports??Z,Y=Object.values($).find((K)=>{return typeof K==="function"&&Q.includes(K.name)});if(!Y)return;let X=Y.prototype;if(X.__sentry_patched__)return;X.__sentry_patched__=!0;let W=["invoke","stream","batch"];for(let K of W){let z=X[K];if(typeof z==="function")X[K]=Sy0(z,J)}}}var Fr=N(aQ,(Z)=>new wV(Z)),_y0=(Z={})=>{return{name:aQ,setupOnce(){Fr(Z)}}},wr=P(_y0);var m8=R(c(),1);var Dr=[">=0.0.0 <2.0.0"];class DV extends m8.InstrumentationBase{constructor(Z={}){super("@sentry/instrumentation-langgraph",a,Z)}init(){return new m8.InstrumentationNodeModuleDefinition("@langchain/langgraph",Dr,this._patch.bind(this),(J)=>J,[new m8.InstrumentationNodeModuleFile("@langchain/langgraph/dist/index.cjs",Dr,this._patch.bind(this),(J)=>J)])}_patch(Z){if(Z.StateGraph&&typeof Z.StateGraph==="function")tQ(Z.StateGraph.prototype,this.getConfig());return Z}}var Ur=N(rQ,(Z)=>new DV(Z)),vy0=(Z={})=>{return{name:rQ,setupOnce(){Ur(Z)}}},jr=P(vy0);var Rr=R(c(),1);var DZ=R(C(),1),UZ=R(c(),1),K9=R(s(),1);import*as Lr from"node:net";function Or(Z,J,Q,$,Y){let W=()=>{},K=Y.firestoreSpanCreationHook;if(typeof K==="function")W=(H)=>{UZ.safeExecuteInTheMiddle(()=>K(H),(B)=>{if(!B)return;DZ.diag.error(B?.message)},!0)};let z=new UZ.InstrumentationNodeModuleDefinition("@firebase/firestore",J,(H)=>qr(H,Q,$,Z,W)),G=["@firebase/firestore/dist/lite/index.node.cjs.js","@firebase/firestore/dist/lite/index.node.mjs.js","@firebase/firestore/dist/lite/index.rn.esm2017.js","@firebase/firestore/dist/lite/index.cjs.js"];for(let H of G)z.files.push(new UZ.InstrumentationNodeModuleFile(H,J,(B)=>qr(B,Q,$,Z,W),(B)=>Cr(B,$)));return z}function qr(Z,J,Q,$,Y){return Cr(Z,Q),J(Z,"addDoc",by0($,Y)),J(Z,"getDocs",gy0($,Y)),J(Z,"setDoc",dy0($,Y)),J(Z,"deleteDoc",xy0($,Y)),Z}function Cr(Z,J){for(let Q of["addDoc","getDocs","setDoc","deleteDoc"])if(UZ.isWrapped(Z[Q]))J(Z,Q);return Z}function by0(Z,J){return function($){return function(Y,X){let W=t3(Z,"addDoc",Y);return J(W),r3(W,()=>{return $(Y,X)})}}}function xy0(Z,J){return function($){return function(Y){let X=t3(Z,"deleteDoc",Y.parent||Y);return J(X),r3(X,()=>{return $(Y)})}}}function gy0(Z,J){return function($){return function(Y){let X=t3(Z,"getDocs",Y);return J(X),r3(X,()=>{return $(Y)})}}}function dy0(Z,J){return function($){return function(Y,X,W){let K=t3(Z,"setDoc",Y.parent||Y);return J(K),r3(K,()=>{return typeof W<"u"?$(Y,X,W):$(Y,X)})}}}function r3(Z,J){return DZ.context.with(DZ.trace.setSpan(DZ.context.active(),Z),()=>{return UZ.safeExecuteInTheMiddle(()=>{return J()},(Q)=>{if(Q)Z.recordException(Q);Z.end()},!0)})}function t3(Z,J,Q){let $=Z.startSpan(`${J} ${Q.path}`,{kind:DZ.SpanKind.CLIENT});return my0($,Q),$.setAttribute(K9.ATTR_DB_OPERATION_NAME,J),$}function cy0(Z){let J,Q;if(typeof Z.host==="string")if(Z.host.startsWith("[")){if(Z.host.endsWith("]"))J=Z.host.replace(/^\[|\]$/g,"");else if(Z.host.includes("]:")){let $=Z.host.lastIndexOf(":");if($!==-1)J=Z.host.slice(1,$).replace(/^\[|\]$/g,""),Q=Z.host.slice($+1)}}else if(Lr.isIPv6(Z.host))J=Z.host;else{let $=Z.host.lastIndexOf(":");if($!==-1)J=Z.host.slice(0,$),Q=Z.host.slice($+1);else J=Z.host}return{address:J,port:Q?parseInt(Q,10):void 0}}function my0(Z,J){let Q=J.firestore.app,$=Q.options,X=(J.firestore.toJSON()||{}).settings||{},W={[K9.ATTR_DB_COLLECTION_NAME]:J.path,[K9.ATTR_DB_NAMESPACE]:Q.name,[K9.ATTR_DB_SYSTEM_NAME]:"firebase.firestore","firebase.firestore.type":J.type,"firebase.firestore.options.projectId":$.projectId,"firebase.firestore.options.appId":$.appId,"firebase.firestore.options.messagingSenderId":$.messagingSenderId,"firebase.firestore.options.storageBucket":$.storageBucket},{address:K,port:z}=cy0(X);if(K)W[K9.ATTR_SERVER_ADDRESS]=K;if(z)W[K9.ATTR_SERVER_PORT]=z;Z.setAttributes(W)}var c9=R(C(),1),jZ=R(c(),1);function Pr(Z,J,Q,$,Y){let X=()=>{},W=()=>{},K=Y.functions?.errorHook,z=Y.functions?.requestHook,G=Y.functions?.responseHook;if(typeof G==="function")W=(V,F)=>{jZ.safeExecuteInTheMiddle(()=>G(V,F),(D)=>{if(!D)return;c9.diag.error(D?.message)},!0)};if(typeof z==="function")X=(V)=>{jZ.safeExecuteInTheMiddle(()=>z(V),(F)=>{if(!F)return;c9.diag.error(F?.message)},!0)};let H=new jZ.InstrumentationNodeModuleDefinition("firebase-functions",J);return[{name:"firebase-functions/lib/v2/providers/https.js",triggerType:"function"},{name:"firebase-functions/lib/v2/providers/firestore.js",triggerType:"firestore"},{name:"firebase-functions/lib/v2/providers/scheduler.js",triggerType:"scheduler"},{name:"firebase-functions/lib/v2/storage.js",triggerType:"storage"}].forEach(({name:V,triggerType:F})=>{H.files.push(new jZ.InstrumentationNodeModuleFile(V,J,(D)=>uy0(D,Q,$,Z,{requestHook:X,responseHook:W,errorHook:K},F),(D)=>kr(D,$)))}),H}function V6(Z,J,Q){return function(Y){return function(...X){let W=typeof X[0]==="function"?X[0]:X[1],K=typeof X[0]==="function"?void 0:X[0];if(!W)return Y.call(this,...X);let z=async function(...G){let H=process.env.FUNCTION_TARGET||process.env.K_SERVICE||"unknown",B=Z.startSpan(`firebase.function.${Q}`,{kind:c9.SpanKind.SERVER}),V={"faas.name":H,"faas.trigger":Q,"faas.provider":"firebase"};if(process.env.GCLOUD_PROJECT)V["cloud.project_id"]=process.env.GCLOUD_PROJECT;if(process.env.EVENTARC_CLOUD_EVENT_SOURCE)V["cloud.event_source"]=process.env.EVENTARC_CLOUD_EVENT_SOURCE;return B.setAttributes(V),J?.requestHook?.(B),c9.context.with(c9.trace.setSpan(c9.context.active(),B),async()=>{let F,D;try{D=await W.apply(this,G)}catch(U){F=U}if(J?.responseHook?.(B,F),F)B.recordException(F);if(B.end(),F)throw await J?.errorHook?.(B,F),F;return D})};if(K)return Y.call(this,K,z);else return Y.call(this,z)}}}function uy0(Z,J,Q,$,Y,X){switch(kr(Z,Q),X){case"function":J(Z,"onRequest",V6($,Y,"http.request")),J(Z,"onCall",V6($,Y,"http.call"));break;case"firestore":J(Z,"onDocumentCreated",V6($,Y,"firestore.document.created")),J(Z,"onDocumentUpdated",V6($,Y,"firestore.document.updated")),J(Z,"onDocumentDeleted",V6($,Y,"firestore.document.deleted")),J(Z,"onDocumentWritten",V6($,Y,"firestore.document.written")),J(Z,"onDocumentCreatedWithAuthContext",V6($,Y,"firestore.document.created")),J(Z,"onDocumentUpdatedWithAuthContext",V6($,Y,"firestore.document.updated")),J(Z,"onDocumentDeletedWithAuthContext",V6($,Y,"firestore.document.deleted")),J(Z,"onDocumentWrittenWithAuthContext",V6($,Y,"firestore.document.written"));break;case"scheduler":J(Z,"onSchedule",V6($,Y,"scheduler.scheduled"));break;case"storage":J(Z,"onObjectFinalized",V6($,Y,"storage.object.finalized")),J(Z,"onObjectArchived",V6($,Y,"storage.object.archived")),J(Z,"onObjectDeleted",V6($,Y,"storage.object.deleted")),J(Z,"onObjectMetadataUpdated",V6($,Y,"storage.object.metadataUpdated"));break}return Z}function kr(Z,J){let Q=["onSchedule","onRequest","onCall","onObjectFinalized","onObjectArchived","onObjectDeleted","onObjectMetadataUpdated","onDocumentCreated","onDocumentUpdated","onDocumentDeleted","onDocumentWritten","onDocumentCreatedWithAuthContext","onDocumentUpdatedWithAuthContext","onDocumentDeletedWithAuthContext","onDocumentWrittenWithAuthContext"];for(let $ of Q)if(jZ.isWrapped(Z[$]))J(Z,$);return Z}var Mr={},ly0=[">=3.0.0 <5"],py0=[">=6.0.0 <7"];class UV extends Rr.InstrumentationBase{constructor(Z=Mr){super("@sentry/instrumentation-firebase",a,Z)}setConfig(Z={}){super.setConfig({...Mr,...Z})}init(){let Z=[];return Z.push(Or(this.tracer,ly0,this._wrap,this._unwrap,this.getConfig())),Z.push(Pr(this.tracer,py0,this._wrap,this._unwrap,this.getConfig())),Z}}var Ar="Firebase",iy0={firestoreSpanCreationHook:(Z)=>{$0(Z,"auto.firebase.otel.firestore"),Z.setAttribute(b,"db.query")},functions:{requestHook:(Z)=>{$0(Z,"auto.firebase.otel.functions"),Z.setAttribute(b,"http.request")},errorHook:async(Z,J)=>{if(J)g(J,{mechanism:{type:"auto.firebase.otel.functions",handled:!1}}),await b7(2000)}}},Ir=N(Ar,()=>new UV(iy0)),oy0=()=>{return{name:Ar,setupOnce(){Ir()}}},Nr=P(oy0);function Tr(){return[lx(),Ec(),Om(),tn(),Nu(),ru(),ql(),dl(),mp(),Ci(),kn(),an(),Ra(),aa(),Us(),Ts(),om(),Qr(),zu(),wr(),jr(),Xr(),Kr(),Gr(),Vr(),Ri(),Nr()]}var u8=R(C(),1),e3=R(kz(),1),fr=R(Sz(),1),l8=R(s(),1);var jV=1e6;function Er(Z,J={}){if(Z.getOptions().debug)rz();let[Q,$]=ny0(Z,J);Z.traceProvider=Q,Z.asyncLocalStorageLookup=$}function ny0(Z,J={}){let Q=new fr.BasicTracerProvider({sampler:new sz(Z),resource:e3.defaultResource().merge(e3.resourceFromAttributes({[l8.ATTR_SERVICE_NAME]:"node",[l8.SEMRESATTRS_SERVICE_NAMESPACE]:"sentry",[l8.ATTR_SERVICE_VERSION]:a})),forceFlushTimeoutMillis:500,spanProcessors:[new az({timeout:ay0(Z.getOptions().maxSpanWaitDuration)}),...J.spanProcessors||[]]});u8.trace.setGlobalTracerProvider(Q),u8.propagation.setGlobalPropagator(new nz);let $=new h$;return u8.context.setGlobalContextManager($),[Q,$.getAsyncLocalStorageLookup()]}function ay0(Z){if(Z==null)return;if(Z>jV)return f0&&q.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${jV}`),jV;else if(Z<=0||Number.isNaN(Z)){f0&&q.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return Z}function yr(){return d$().filter((J)=>J.name!=="Http"&&J.name!=="NodeFetch").concat(Wx(),Lx())}function hr(Z){return[...yr(),...C0(Z)?Tr():[]]}function qV(Z={}){return sy0(Z,hr)}function sy0(Z={},J){d7(Z,"node");let Q=PG({...Z,defaultIntegrations:Z.defaultIntegrations??J(Z)});if(Q&&!Z.skipOpenTelemetrySetup)Er(Q,{spanProcessors:Z.openTelemetrySpanProcessors}),c$();return Q}var ty0="https://b5a33745f4bf36a0f1e66dbcfceaa898@o4510814125228032.ingest.us.sentry.io/4511124523974656",Sr="1.0.0",p8=!1,ey0=[/token/i,/secret/i,/password/i,/key/i,/credential/i,/auth/i,/^GITHUB_/i,/^AWS_/i,/^AZURE_/i,/^GCP_/i,/^NPM_/i,/^NODE_AUTH/i];function _r(Z){let J=Z;for(let[Q,$]of Object.entries(process.env)){if(!$||$.length<8)continue;if(ey0.some((Y)=>Y.test(Q)))J=J.replaceAll($,"[REDACTED]")}return J}function vr(Z){if(delete Z.server_name,delete Z.extra,delete Z.user,delete Z.request,Z.contexts={},Z.breadcrumbs=[],Z.exception?.values){for(let J of Z.exception.values)if(J.value)J.value=_r(J.value)}if(Z.message)Z.message=_r(Z.message);return Z}function J36(Z,J){if(p8=Z,!Z)return;qV({dsn:ty0,defaultIntegrations:!1,environment:"production",release:`format@${Sr}`,tracesSampleRate:1,beforeSend(Q){return vr(Q)},beforeSendTransaction(Q){return vr(Q)}}),g5({formatter:J.formatter,mode:J.mode,action_version:Sr})}function Q36(Z,J){if(!p8)return;n0((Q)=>{if(J)for(let[$,Y]of Object.entries(J))Q.setTag($,Y);g(Z)})}async function $36(Z,J,Q){if(!p8)return Q();return U6({name:Z,op:J,attributes:{"sentry.origin":"manual"}},async()=>Q())}function Y36(Z,J,Q,$){if(!p8)return;r1.gauge(Z,J,{unit:Q,tags:$})}function X36(Z,J){if(!p8)return;b5(Z,{level:"info",tags:J})}async function br(){if(!p8)return;await b7(2000)}br(); +`);if(F===-1){gX("have not received end of HTTP headers yet..."),Y();return}let B=V.subarray(0,F).toString("ascii").split(`\r +`),j=B.shift();if(!j)return $.destroy(),X(Error("No header received from proxy CONNECT response"));let U=j.split(" "),D=+(U[1]||0),k=U.slice(2).join(" "),R={};for(let h of B){if(!h)continue;let T=h.indexOf(":");if(T===-1)return $.destroy(),X(Error(`Invalid header from proxy CONNECT response: "${h}"`));let _=h.slice(0,T).toLowerCase(),l=h.slice(T+1).trimStart(),o=R[_];if(typeof o==="string")R[_]=[o,l];else if(Array.isArray(o))o.push(l);else R[_]=l}gX("got proxy server response: %o %o",j,R),W(),Z({connect:{statusCode:D,statusText:k,headers:R},buffered:V})}$.on("error",z),$.on("end",K),Y()})}function H5(...$){w.log("[https-proxy-agent]",...$)}class mX extends $3{constructor($,Z){super(Z);this.options={},this.proxy=typeof $==="string"?new URL($):$,this.proxyHeaders=Z?.headers??{},H5("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let X=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),Q=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...Z?PE(Z,"headers"):null,host:X,port:Q}}async connect($,Z){let{proxy:X}=this;if(!Z.host)throw TypeError('No "host" provided');let Q;if(X.protocol==="https:"){H5("Creating `tls.Socket`: %o",this.connectOpts);let V=this.connectOpts.servername||this.connectOpts.host;Q=Z3.connect({...this.connectOpts,servername:V&&l6.isIP(V)?void 0:V})}else H5("Creating `net.Socket`: %o",this.connectOpts),Q=l6.connect(this.connectOpts);let J=typeof this.proxyHeaders==="function"?this.proxyHeaders():{...this.proxyHeaders},Y=l6.isIPv6(Z.host)?`[${Z.host}]`:Z.host,W=`CONNECT ${Y}:${Z.port} HTTP/1.1\r +`;if(X.username||X.password){let V=`${decodeURIComponent(X.username)}:${decodeURIComponent(X.password)}`;J["Proxy-Authorization"]=`Basic ${Buffer.from(V).toString("base64")}`}if(J.Host=`${Y}:${Z.port}`,!J["Proxy-Connection"])J["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close";for(let V of Object.keys(J))W+=`${V}: ${J[V]}\r +`;let K=DE(Q);Q.write(`${W}\r +`);let{connect:z,buffered:H}=await K;if($.emit("proxyConnect",z),this.emit("proxyConnect",z,$),z.statusCode===200){if($.once("socket",yJ0),Z.secureEndpoint){H5("Upgrading socket connection to TLS");let V=Z.servername||Z.host;return Z3.connect({...PE(Z,"host","path","port"),socket:Q,servername:l6.isIP(V)?void 0:V})}return Q}Q.destroy();let G=new l6.Socket({writable:!1});return G.readable=!0,$.once("socket",(V)=>{H5("Replaying proxy buffer for failed request"),V.push(H),V.push(null)}),G}}mX.protocols=["http","https"];function yJ0($){$.resume()}function PE($,...Z){let X={},Q;for(Q in $)if(!Z.includes(Q))X[Q]=$[Q];return X}var bJ0=32768;function vJ0($){return new EJ0({read(){this.push($),this.push(null)}})}function X3($){let Z;try{Z=new URL($.url)}catch(z){return D0(()=>{console.warn("[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.")}),f7($,()=>Promise.resolve({}))}let X=Z.protocol==="https:",Q=SJ0(Z,$.proxy||(X?process.env.https_proxy:void 0)||process.env.http_proxy),J=X?TJ0:IJ0,Y=$.keepAlive===void 0?!1:$.keepAlive,W=Q?new mX(Q):new J.Agent({keepAlive:Y,maxSockets:30,timeout:2000}),K=xJ0($,$.httpModule??J,W);return f7($,K)}function SJ0($,Z){let{no_proxy:X}=process.env;if(X?.split(",").some((J)=>$.host.endsWith(J)||$.hostname.endsWith(J)))return;else return Z}function xJ0($,Z,X){let{hostname:Q,pathname:J,port:Y,protocol:W,search:K}=new URL($.url);return function(H){return new Promise((G,V)=>{X8(()=>{let F=vJ0(H.body),B={...$.headers};if(H.body.length>bJ0)B["content-encoding"]="gzip",F=F.pipe(hJ0());let j=Q.startsWith("["),U=Z.request({method:"POST",agent:X,headers:B,hostname:j?Q.slice(1,-1):Q,path:`${J}${K}`,port:Y,protocol:W,ca:$.caCerts},(D)=>{D.on("data",()=>{}),D.on("end",()=>{}),D.setEncoding("utf8");let k=D.headers["retry-after"]??null,R=D.headers["x-sentry-rate-limits"]??null;G({statusCode:D.statusCode,headers:{"retry-after":k,"x-sentry-rate-limits":Array.isArray(R)?R[0]||null:R}})});U.on("error",V),F.pipe(U)})})}}function LE($){if($===!1)return!1;if(typeof $==="string")return $;let Z=K8(process.env.SENTRY_SPOTLIGHT,{strict:!0}),X=Z===null&&process.env.SENTRY_SPOTLIGHT?process.env.SENTRY_SPOTLIGHT:void 0;return $===!0?X??!0:Z??X}import{posix as gJ0,sep as mJ0}from"node:path";function OE($){return $.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function Q3($=process.argv[1]?HY(process.argv[1]):process.cwd(),Z=mJ0==="\\"){let X=Z?OE($):$;return(Q)=>{if(!Q)return;let J=Z?OE(Q):Q,{dir:Y,base:W,ext:K}=gJ0.parse(J);if(K===".js"||K===".mjs"||K===".cjs")W=W.slice(0,K.length*-1);let z=decodeURIComponent(W);if(!Y)Y=".";let H=Y.lastIndexOf("/node_modules");if(H>-1)return`${Y.slice(H+14).replace(/\//g,".")}:${z}`;if(Y.startsWith(X)){let G=Y.slice(X.length+1).replace(/\//g,".");return G?`${G}:${z}`:z}return z}}function J3($){if(process.env.SENTRY_RELEASE)return process.env.SENTRY_RELEASE;if(u.SENTRY_RELEASE?.id)return u.SENTRY_RELEASE.id;let Z=process.env.GITHUB_SHA||process.env.CI_MERGE_REQUEST_SOURCE_BRANCH_SHA||process.env.CI_BUILD_REF||process.env.CI_COMMIT_SHA||process.env.BITBUCKET_COMMIT,X=process.env.APPVEYOR_PULL_REQUEST_HEAD_COMMIT||process.env.APPVEYOR_REPO_COMMIT||process.env.CODEBUILD_RESOLVED_SOURCE_VERSION||process.env.AWS_COMMIT_ID||process.env.BUILD_SOURCEVERSION||process.env.GIT_CLONE_COMMIT_HASH||process.env.BUDDY_EXECUTION_REVISION||process.env.BUILDKITE_COMMIT||process.env.CIRCLE_SHA1||process.env.CIRRUS_CHANGE_IN_REPO||process.env.CF_REVISION||process.env.CM_COMMIT||process.env.CF_PAGES_COMMIT_SHA||process.env.DRONE_COMMIT_SHA||process.env.FC_GIT_COMMIT_SHA||process.env.HEROKU_TEST_RUN_COMMIT_VERSION||process.env.HEROKU_BUILD_COMMIT||process.env.HEROKU_SLUG_COMMIT||process.env.RAILWAY_GIT_COMMIT_SHA||process.env.RENDER_GIT_COMMIT||process.env.SEMAPHORE_GIT_SHA||process.env.TRAVIS_PULL_REQUEST_SHA||process.env.VERCEL_GIT_COMMIT_SHA||process.env.VERCEL_GITHUB_COMMIT_SHA||process.env.VERCEL_GITLAB_COMMIT_SHA||process.env.VERCEL_BITBUCKET_COMMIT_SHA||process.env.ZEIT_GITHUB_COMMIT_SHA||process.env.ZEIT_GITLAB_COMMIT_SHA||process.env.ZEIT_BITBUCKET_COMMIT_SHA,Q=process.env.CI_COMMIT_ID||process.env.SOURCE_COMMIT||process.env.SOURCE_VERSION||process.env.GIT_COMMIT||process.env.COMMIT_REF||process.env.BUILD_VCS_NUMBER||process.env.CI_COMMIT_SHA;return Z||X||Q||$}var Y3=T5(uY(Q3()));var kE=N(S(),1),ME=N(r(),1);import*as CE from"node:os";import{threadId as dJ0,isMainThread as uJ0}from"worker_threads";var cJ0=60000;class dX extends D4{constructor($){let Z=$.includeServerName===!1?void 0:$.serverName||global.process.env.SENTRY_NAME||CE.hostname(),X={...$,platform:"node",runtime:$.runtime||{name:"node",version:global.process.version},serverName:Z};if($.openTelemetryInstrumentations)ME.registerInstrumentations({instrumentations:$.openTelemetryInstrumentations});H8(X,"node"),w.log(`Initializing Sentry: process: ${process.pid}, thread: ${uJ0?"main":`worker-${dJ0}`}.`);super(X);if(this.getOptions().enableLogs){if(this._logOnExitFlushListener=()=>{_7(this)},Z)this.on("beforeCaptureLog",(Q)=>{Q.attributes={...Q.attributes,"server.address":Z}});process.on("beforeExit",this._logOnExitFlushListener)}}get tracer(){if(this._tracer)return this._tracer;let $="@sentry/node",Z=f,X=kE.trace.getTracer($,Z);return this._tracer=X,X}async flush($){if(await this.traceProvider?.forceFlush(),this.getOptions().sendClientReports)this._flushOutcomes();return super.flush($)}async close($){if(this._clientReportInterval)clearInterval(this._clientReportInterval);if(this._clientReportOnExitFlushListener)process.off("beforeExit",this._clientReportOnExitFlushListener);if(this._logOnExitFlushListener)process.off("beforeExit",this._logOnExitFlushListener);let Z=await super.close($);if(this.traceProvider)await this.traceProvider.shutdown();return Z}startClientReportTracking(){let $=this.getOptions();if($.sendClientReports)this._clientReportOnExitFlushListener=()=>{this._flushOutcomes()},this._clientReportInterval=setInterval(()=>{F0&&w.log("Flushing client reports based on interval."),this._flushOutcomes()},$.clientReportFlushInterval??cJ0).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener)}_setupIntegrations(){rJ(),super._setupIntegrations()}_getTraceInfoFromScope($){if(!$)return[void 0,void 0];return _z(this,$)}}var AE=N(xK(),1);import*as NE from"module";var RE;function fE(){if(m6>=21||m6===20&&sZ>=6||m6===18&&sZ>=19)return!0;if(!RE)RE=!0,D0(()=>{console.warn(`[Sentry] You are using Node.js v${process.versions.node} in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.`)});return!1}function W3(){if(!fE())return;if(!u._sentryEsmLoaderHookRegistered){u._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:$}=AE.createAddHookMessageChannel();NE.register("import-in-the-middle/hook.mjs",import.meta.url,{data:{addHookMessagePort:$,include:[]},transferList:[$]})}catch($){w.warn("Failed to register 'import-in-the-middle' hook",$)}}}function uX(){return[GZ(),HZ(),VZ(),FZ(),tz(),VY(),nz(),WE(),jE(),pz(),iz(),mz(),uz(),xz(),Sz(),oz(),lz()]}function K3($={}){return lJ0($,uX)}function lJ0($={},Z){let X=pJ0($,Z);if(X.debug===!0)if(F0)w.enable();else D0(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")});if(X.registerEsmLoaderHooks!==!1)W3();if(nT(X),d().update(X.initialScope),X.spotlight&&!X.integrations.some(({name:Y})=>Y===sz))X.integrations.push(rz({sidecarUrl:typeof X.spotlight==="string"?X.spotlight:void 0}));H8(X,"node-core");let J=new dX(X);if(d().setClient(J),J.init(),w.log("SDK initialized from ESM"),J.startClientReportTracking(),sJ0(),Rz(J),yz(J),process.env.VERCEL)process.on("SIGTERM",async()=>{await J.flush(200)});return J}function cX(){if(!F0)return;let $=Az(),Z=["SentryContextManager","SentryPropagator"];if(e())Z.push("SentrySpanProcessor");for(let X of Z)if(!$.includes(X))w.error(`You have to set up the ${X}. Without this, the OpenTelemetry & Sentry integration will not work properly.`);if(!$.includes("SentrySampler"))w.warn("You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.")}function pJ0($,Z){let X=iJ0($.release),Q=LE($.spotlight),J=oJ0($.tracesSampleRate),Y={...$,dsn:$.dsn??process.env.SENTRY_DSN,environment:$.environment??process.env.SENTRY_ENVIRONMENT,sendClientReports:$.sendClientReports??!0,transport:$.transport??X3,stackParser:iQ($.stackParser||Y3),release:X,tracesSampleRate:J,spotlight:Q,debug:K8($.debug??process.env.SENTRY_DEBUG)},W=$.integrations,K=$.defaultIntegrations??Z(Y),z=lJ({defaultIntegrations:K,integrations:W});return{...Y,integrations:z}}function iJ0($){if($!==void 0)return $;let Z=J3();if(Z!==void 0)return Z;return}function oJ0($){if($!==void 0)return $;let Z=process.env.SENTRY_TRACES_SAMPLE_RATE;if(!Z)return;let X=parseFloat(Z);return isFinite(X)?X:void 0}function sJ0(){if(K8(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let $=process.env.SENTRY_TRACE,Z=process.env.SENTRY_BAGGAGE,X=N6($,Z);d().setPropagationContext(X)}}function z3($,Z){$.setAttribute(L,Z)}var _E="Http",BY0=y(`${_E}.sentry`,($)=>{return new Y9($)}),yE=C(($={})=>{let Z=$.spans??!0,X=$.disableIncomingRequestSpans,Q=Z&&!X,J={sessions:$.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:$.sessionFlushingDelayMS,ignoreRequestBody:$.ignoreIncomingRequestBody,maxRequestBodySize:$.maxIncomingRequestBodySize},Y={ignoreIncomingRequests:$.ignoreIncomingRequests,ignoreStaticAssets:$.ignoreStaticAssets,ignoreStatusCodes:$.dropSpansForIncomingRequestStatusCodes,instrumentation:$.instrumentation,onSpanCreated:$.incomingRequestSpanHook},W=a7(J),K=t7(Y);return{name:_E,setup(z){let H=z.getOptions();if(Q&&e(H))K.setup(z)},setupOnce(){W.setupOnce();let z={breadcrumbs:$.breadcrumbs,spans:Z,propagateTraceInOutgoingRequests:$.tracePropagation??!0,createSpansForOutgoingRequests:Z,ignoreOutgoingRequests:$.ignoreOutgoingRequests,outgoingRequestHook:(H,G)=>{let V=i1(G);if(V.startsWith("data:")){let F=KZ(V);H.setAttribute("http.url",F),H.setAttribute(S9,F),H.updateName(`${G.method||"GET"} ${F}`)}$.instrumentation?.requestHook?.(H,G)},outgoingResponseHook:$.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:$.instrumentation?.applyCustomAttributesOnSpan};BY0(z)},processEvent(z){return K.processEvent(z)}}});import*as lX from"diagnostics_channel";import{URL as wY0}from"url";var a=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var jY0="http.request.method_original",H3=[],x8=new WeakMap,UY0=new i0(100);function IE($={}){if(H3.length)return;G5("undici:request:create",(Z)=>qY0($,Z)),G5("undici:client:sendHeaders",(Z)=>DY0($,Z)),G5("undici:request:headers",(Z)=>PY0($,Z)),G5("undici:request:trailers",(Z)=>LY0(Z)),G5("undici:request:error",(Z)=>OY0(Z))}function G3($,Z){try{return $()}catch(X){Z(X);return}}function G5($,Z){let[X=0,Q=0]=process.version.replace("v","").split(".").map((Y)=>Number(Y));if(X>18||X===18&&Q>=19)H3.push(lX.subscribe?.($,Z));else H3.push(lX.channel($).subscribe(Z))}function TE($){let Z=new Map;if(Array.isArray($.headers))for(let X=0;X<$.headers.length;X+=2){let Q=$.headers[X],J=$.headers[X+1];if(typeof Q==="string"&&J!==void 0)Z.set(Q.toLowerCase(),J)}else if(typeof $.headers==="string"){let X=$.headers.split(`\r +`);for(let Q of X){if(!Q)continue;let J=Q.indexOf(":");if(J===-1)continue;let Y=Q.substring(0,J).toLowerCase(),W=Q.substring(J+1).trim(),K=Z.get(Y);if(K&&Array.isArray(K))K.push(W);else if(K)Z.set(Y,[K,W]);else Z.set(Y,W)}}return Z}function qY0($,{request:Z}){let X=MY0(Z.origin,Z.path);if(G3(()=>Z.method==="CONNECT"||!!$.ignoreOutgoingRequests?.(X),(j)=>j&&a&&w.error("caught ignoreOutgoingRequests error: ",j)))return;let J;try{J=new wY0(Z.path,Z.origin)}catch(j){a&&w.warn("could not determine url.full:",j);return}let Y=J.protocol.replace(":",""),W=kY0(Z.method),K={[M$]:W,[jY0]:Z.method,[R$]:J.toString(),[t4]:J.pathname,[GA]:J.search,[VA]:Y,[L]:"auto.http.otel.node_fetch"};if(X.startsWith("data:")){let j=KZ(X);K["http.url"]=j,K[R$]=j,K[f1]=`${Z.method||"GET"} ${j}`}let z={https:"443",http:"80"},H=J.hostname,G=J.port||z[Y];if(K[r7]=H,G&&!isNaN(Number(G)))K[n7]=Number(G);let F=TE(Z).get("user-agent");if(F){let j=Array.isArray(F)?F[F.length-1]:F;K[FA]=j}let B=b({name:W==="_OTHER"?"HTTP":W,kind:c.CLIENT,attributes:K});G3(()=>$.requestHook?.(B,Z),(j)=>j&&a&&w.error("caught requestHook error: ",j)),CY0(B,Z,J.toString()),x8.set(Z,B)}function DY0($,{request:Z,socket:X}){let Q=x8.get(Z);if(!Q)return;let{remoteAddress:J,remotePort:Y}=X,W={[XA]:J,[QA]:Y};if($.headersToSpanAttributes?.requestHeaders){let K=new Set($.headersToSpanAttributes.requestHeaders.map((H)=>H.toLowerCase())),z=TE(Z);for(let[H,G]of z.entries())if(K.has(H)){let V=Array.isArray(G)?G:[G];W[`http.request.header.${H}`]=V}}Q.setAttributes(W)}function PY0($,{request:Z,response:X}){let Q=x8.get(Z);if(!Q)return;let J={[s1]:X.statusCode};if(G3(()=>$.responseHook?.(Q,{request:Z,response:X}),(Y)=>Y&&a&&w.error("caught responseHook error: ",Y)),$.headersToSpanAttributes?.responseHeaders){let Y=new Set;$.headersToSpanAttributes?.responseHeaders.forEach((W)=>Y.add(W.toLowerCase()));for(let W=0;W=400)Q.setStatus({code:O})}function LY0({request:$}){let Z=x8.get($);if(!Z)return;Z.end(),x8.delete($)}function OY0({request:$,error:Z}){let X=x8.get($);if(!X)return;X.setStatus({code:O,message:Z.message}),X.end(),x8.delete($)}function CY0($,Z,X){let{tracePropagationTargets:Q,propagateTraceparent:J}=M()?.getOptions()??{};if(!I6(X,Q,UY0))return;let Y=m($,()=>w1({propagateTraceparent:J}));for(let[W,K]of Object.entries(Y)){if(!K)continue;if(typeof Z.addHeader==="function")Z.addHeader(W,K);else if(typeof Z.headers==="string")Z.headers+=`${W}: ${K}\r +`;else if(Array.isArray(Z.headers))Z.headers.push(W,K)}}function kY0($){let Z={CONNECT:!0,OPTIONS:!0,HEAD:!0,GET:!0,POST:!0,PUT:!0,PATCH:!0,DELETE:!0,TRACE:!0,QUERY:!0};if($.toUpperCase()in Z)return $.toUpperCase();return"_OTHER"}function MY0($,Z="/"){let X=`${$}`;if(X.endsWith("/")&&Z.startsWith("/"))return`${X}${Z.slice(1)}`;if(!X.endsWith("/")&&!Z.startsWith("/"))return`${X}/${Z}`;return`${X}${Z}`}var RY0="NodeFetch",fY0=y(`${RY0}.sentry`,K9,($)=>{return $}),AY0=($={})=>{return{name:"NodeFetch",setupOnce(){if(NY0($,M()?.getOptions()))IE({ignoreOutgoingRequests:$.ignoreOutgoingRequests,requestHook:$.requestHook,responseHook:$.responseHook,headersToSpanAttributes:$.headersToSpanAttributes});fY0($)}}},EE=C(AY0);function NY0($,Z={}){return typeof $.spans==="boolean"?$.spans:!Z.skipOpenTelemetrySetup&&e(Z)}var iX=N(r(),1);function U6($){let Z=p();if(!Z)return;let X=J0(Z);if(!X)return;if(v(X).data[I]!=="http.server")return;X.setAttribute("http.route",$)}var hE="Express",_Y0=[">=4.0.0 <6"];var bE=y(hE,($)=>new vE($));class vE extends iX.InstrumentationBase{constructor($={}){super("sentry-express",f,$)}init(){return new iX.InstrumentationNodeModuleDefinition("express",_Y0,(Z)=>{try{lY(Z,()=>({...this.getConfig(),onRouteResolved(X){if(X)U6(X)}}))}catch(X){a&&w.error("Failed to patch express module:",X)}return Z},(Z)=>Z)}}var yY0=($)=>{return{name:hE,setupOnce(){bE($)}}},SE=C(yY0);var q6=N(S(),1),g8=N(r(),1),uE=N(P1(),1);var _$=(($)=>{return $.FASTIFY_NAME="fastify.name",$.FASTIFY_TYPE="fastify.type",$.HOOK_NAME="hook.name",$.PLUGIN_NAME="plugin.name",$})(_$||{}),oX=(($)=>{return $.MIDDLEWARE="middleware",$.REQUEST_HANDLER="request_handler",$})(oX||{}),sX=(($)=>{return $.MIDDLEWARE="middleware",$.REQUEST_HANDLER="request handler",$})(sX||{});var gE=N(S(),1);var V5=Symbol("opentelemetry.instrumentation.fastify.request_active_span");function V3($,Z,X,Q={}){let J=Z.startSpan(X,{attributes:Q}),Y=$[V5]||[];return Y.push(J),Object.defineProperty($,V5,{enumerable:!1,configurable:!0,value:Y}),J}function rX($,Z){let X=$[V5]||[];if(!X.length)return;X.forEach((Q)=>{if(Z)Q.setStatus({code:gE.SpanStatusCode.ERROR,message:Z.message}),Q.recordException(Z);Q.end()}),delete $[V5]}function mE($,Z,X){let Q,J=void 0;try{if(J=$(),xE(J))J.then((Y)=>Z(void 0,Y),(Y)=>Z(Y))}catch(Y){Q=Y}finally{if(!xE(J)){if(Z(Q,J),Q)throw Q}return J}}function xE($){return typeof $==="object"&&$&&typeof Object.getOwnPropertyDescriptor($,"then")?.value==="function"||!1}var IY0="@sentry/instrumentation-fastify-v3",dE="anonymous",TY0=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]);class F3 extends g8.InstrumentationBase{constructor($={}){super(IY0,f,$)}init(){return[new g8.InstrumentationNodeModuleDefinition("fastify",[">=3.0.0 <3.21.0"],($)=>{return this._patchConstructor($)})]}_hookOnRequest(){let $=this;return function(X,Q,J){if(!$.isEnabled())return J();$._wrap(Q,"send",$._patchSend());let Y=X,W=Y.routeOptions?Y.routeOptions.url:X.routerPath;if(W)U6(W);let K=X.method||"GET";g().setTransactionName(`${K} ${W}`),J()}}_wrapHandler($,Z,X,Q){let J=this;return this._diag.debug("Patching fastify route.handler function"),function(...Y){if(!J.isEnabled())return X.apply(this,Y);let W=X.name||$||dE,K=`${sX.MIDDLEWARE} - ${W}`,z=Y[1],H=V3(z,J.tracer,K,{[_$.FASTIFY_TYPE]:oX.MIDDLEWARE,[_$.PLUGIN_NAME]:$,[_$.HOOK_NAME]:Z}),G=Q&&Y[Y.length-1];if(G)Y[Y.length-1]=function(...V){rX(z),G.apply(this,V)};return q6.context.with(q6.trace.setSpan(q6.context.active(),H),()=>{return mE(()=>{return X.apply(this,Y)},(V)=>{if(V instanceof Error)H.setStatus({code:q6.SpanStatusCode.ERROR,message:V.message}),H.recordException(V);if(!Q)rX(z)})})}}_wrapAddHook(){let $=this;return this._diag.debug("Patching fastify server.addHook function"),function(Z){return function(...Q){let J=Q[0],Y=Q[1],W=this.pluginName;if(!TY0.has(J))return Z.apply(this,Q);let K=typeof Q[Q.length-1]==="function"&&Y.constructor.name!=="AsyncFunction";return Z.apply(this,[J,$._wrapHandler(W,J,Y,K)])}}}_patchConstructor($){let Z=this;function X(...Q){let J=$.fastify.apply(this,Q);return J.addHook("onRequest",Z._hookOnRequest()),J.addHook("preHandler",Z._hookPreHandler()),EY0(),Z._wrap(J,"addHook",Z._wrapAddHook()),J}if($.errorCodes!==void 0)X.errorCodes=$.errorCodes;return X.fastify=X,X.default=X,X}_patchSend(){let $=this;return this._diag.debug("Patching fastify reply.send function"),function(X){return function(...J){let Y=J[0];if(!$.isEnabled())return X.apply(this,J);return g8.safeExecuteInTheMiddle(()=>{return X.apply(this,J)},(W)=>{if(!W&&Y instanceof Error)W=Y;rX(this,W)})}}}_hookPreHandler(){let $=this;return this._diag.debug("Patching fastify preHandler function"),function(X,Q,J){if(!$.isEnabled())return J();let Y=X,W=Y.routeOptions?.handler||Y.context?.handler,K=W?.name.startsWith("bound ")?W.name.substring(6):W?.name,z=`${sX.REQUEST_HANDLER} - ${K||this.pluginName||dE}`,H={[_$.PLUGIN_NAME]:this.pluginName,[_$.FASTIFY_TYPE]:oX.REQUEST_HANDLER,[uE.SEMATTRS_HTTP_ROUTE]:Y.routeOptions?Y.routeOptions.url:X.routerPath};if(K)H[_$.FASTIFY_NAME]=K;let G=V3(Q,$.tracer,z,H);cE(G);let{requestHook:V}=$.getConfig();if(V)g8.safeExecuteInTheMiddle(()=>V(G,{request:X}),(F)=>{if(F)$._diag.error("request hook failed",F)},!0);return q6.context.with(q6.trace.setSpan(q6.context.active(),G),()=>{J()})}}}function EY0(){let $=M();if($)$.on("spanStart",(Z)=>{cE(Z)})}function cE($){let Z=v($).data,X=Z["fastify.type"];if(Z[I]||!X)return;$.setAttributes({[L]:"auto.http.otel.fastify",[I]:`${X}.fastify`});let Q=Z["fastify.name"]||Z["plugin.name"]||Z["hook.name"];if(typeof Q==="string"){let J=Q.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");$.updateName(J)}}var y$=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var w3=()=>{};function j9($,Z,X){let Q=hY0($,Z),J=X?.beforeSpanEnd,Y=X?.deferSpanEnd,W=(G)=>{if(typeof X?.captureError==="function")return X.captureError(G);return{mechanism:{type:"auto.diagnostic_channels.bind_span",handled:!1}}},K=(G,V)=>{if(X?.captureError)E(V,W(V));let{message:F,attributes:B}=bY0(V);G.setStatus({code:O,message:F}),G.setAttributes(B)},z=(G,V)=>{let F=!1;return(B)=>{if(F)return;if(F=!0,B!==void 0)K(G,B);B3(V,J)}},H={start:w3,asyncStart:w3,end(G){if("error"in G||"result"in G){let V=G._sentrySpan;if(V&&Y?.({span:V,data:G,end:z(V,G)}))return;B3(G,J)}},error(G){let V=G._sentrySpan;if(!V)return;K(V,G.error)},asyncEnd(G){let V=G._sentrySpan;if(V&&Y?.({span:V,data:G,end:z(V,G)}))return;B3(G,J)}};return Q.channel.subscribe(H),{channel:Q.channel,unbind:()=>{Q.channel.unsubscribe(H),Q.unbind()}}}function hY0($,Z){let X=M0(V0()).getTracingChannelBinding?.();if(!X)return y$&&w.log("[TracingChannel] Could not access async context binding."),{channel:$,unbind:w3};let Q=X.asyncLocalStorage;return $.start.bindStore(Q,(J)=>{J._sentryCallerStore=Q.getStore();let Y=Z(J);if(!Y)return J._sentryCallerStore;return J._sentrySpan=Y,X.getStoreWithActiveSpan(Y)}),$.asyncStart.bindStore(Q,(J)=>{return J._sentryCallerStore}),{channel:$,unbind:()=>{$.start.unbindStore(Q),$.asyncStart.unbindStore(Q)}}}function B3($,Z){let X=$._sentrySpan;if(!X)return;Z?.(X,$),X.end()}function bY0($){let Z=!!$&&typeof $==="object",X=Z?"message"in $?$.message:void 0:$,Q=X?String(X):"unknown_error",J=Z&&"name"in $?String($.name):"unknown";return{message:Q,attributes:{[Tf]:J}}}var oE="node-redis:command",sE="node-redis:batch",rE="node-redis:connect",nE="ioredis:command",aE="ioredis:connect",j3="auto.db.redis.diagnostic_channel",U3="redis",lE=!1,tE,vY0=[];function q3($,Z){if(tE=Z,lE)return;lE=!0;try{vY0.push(pE($,oE,(X)=>X.args.slice(1)),SY0($,sE,(X)=>X.batchMode==="PIPELINE"?"PIPELINE":"MULTI"),iE($,rE),pE($,nE,(X)=>X.args),iE($,aE))}catch{y$&&w.log("Redis node:diagnostics_channel subscription failed.")}}function pE($,Z,X){return j9($(Z),(Q)=>{let J=X(Q),Y=J.length?`${Q.command} ${J.join(" ")}`:Q.command;return b({name:`redis-${Q.command}`,attributes:{[L]:j3,[I]:"db.redis",[o7]:U3,[_f]:Y,...Q.serverAddress!=null?{[r7]:Q.serverAddress}:{},...Q.serverPort!=null?{[n7]:Q.serverPort}:{}}})},{captureError:!1,beforeSpanEnd(Q,J){if("error"in J)return;xY0(Q,J.command,X(J),J.result)}}).unbind}function SY0($,Z,X){return j9($(Z),(Q)=>{return b({name:X(Q),attributes:{[L]:j3,[I]:"db.redis",[o7]:U3,...Number(Q.batchSize)>1?{[Nf]:Q.batchSize}:{},...Q.serverAddress!=null?{[r7]:Q.serverAddress}:{},...Q.serverPort!=null?{[n7]:Q.serverPort}:{}}})},{captureError:!1}).unbind}function iE($,Z){return j9($(Z),(X)=>{return b({name:"redis-connect",attributes:{[L]:j3,[I]:"db.redis.connect",[o7]:U3,...X.serverAddress!=null?{[r7]:X.serverAddress}:{},...X.serverPort!=null?{[n7]:X.serverPort}:{}}})},{captureError:!1}).unbind}function xY0($,Z,X,Q){let J=tE;if(!J)return;try{J($,Z,X,Q)}catch{}}var eE="execute_tool";var $h="invoke_agent";var gY0="ai:telemetry",Qh="auto.vercelai.channel",mY0="gen_ai.tool.call.id",dY0="gen_ai.tool.description",uY0="embeddings",cY0="rerank",lY0="generate_content",Jh="vercel.ai.operationId",pY0="vercel.ai.model.provider",iY0="vercel.ai.settings.maxRetries",P3=new Map,aX=new Map,oY0=new Set(["generateText","streamText","embed","rerank"]);function sY0($){if(!oY0.has($.type))return;let Z=B0($.event.callId);if(Z)P3.delete(Z),aX.delete(Z)}function rY0($,Z){if(!$||!Array.isArray(Z))return;let X=aX.get($);for(let Q of Z)if(e0(Q)&&typeof Q.name==="string"&&typeof Q.description==="string"){if(X=X??new Map,!X.has(Q.name))X.set(Q.name,Q.description)}if(X)aX.set($,X)}function nY0($,Z,X){let Q=$?aX.get($)?.get(Z):void 0;if(Q)return Q;if(Array.isArray(X)){let J=X.find((Y)=>e0(Y)&&Y.name===Z);return e0(J)?B0(J.description):void 0}if(e0(X)){let J=X[Z];return e0(J)?B0(J.description):void 0}return}var Zh=!1;function Yh($,Z={}){if(Zh)return;Zh=!0,j9($(gY0),(X)=>aY0(X,Z),{beforeSpanEnd:(X,Q)=>{ZW0(X,Q,Z),sY0(Q)}})}function aY0($,Z){let{type:X,event:Q}=$;if(X==="step"||!Q||typeof Q!=="object")return;let{recordInputs:J,enableTruncation:Y}=Kh(Q,Z),W=B0(Q.provider),K=B0(Q.modelId),z=B0(Q.callId),H=D3(Q.maxRetries);if(J)rY0(z,Q.tools);let G={[L]:Qh,...W?{[pf]:W,[pY0]:W}:{},...K?{[mf]:K}:{},...H!==void 0?{[iY0]:H}:{}};switch(X){case"generateText":case"streamText":return tY0(Q,G,J,Y,z,X==="streamText");case"languageModelCall":return eY0(Q,G,J,Y,z,K);case"executeTool":return $W0(Q,J);case"embed":return F5(uY0,K,{...G,...J&&Q.value!==void 0?{[hf]:p6(Q.value)}:{}});case"rerank":return F5(cY0,K,G);default:return}}function F5($,Z,X){return b({name:Z?`${$} ${Z}`:$,op:`gen_ai.${$}`,attributes:{[Sf]:$,...X}})}function tY0($,Z,X,Q,J,Y){let W=B0($.functionId),K=B0($.operationId)??(Y?"ai.streamText":"ai.generateText");if(J)P3.set(J,{operationId:K,isStream:Y});return F5($h,W,{...Z,[Jh]:K,[lf]:Y,...W?{[bf]:W}:{},...X?zh($,Q):{}})}function eY0($,Z,X,Q,J,Y){let W=J?P3.get(J):void 0,K=W?`${W.operationId}.${W.isStream?"doStream":"doGenerate"}`:"ai.generateText.doGenerate";return F5(lY0,Y,{...Z,[Jh]:K,...X?zh($,Q):{},...X&&Array.isArray($.tools)?{[gf]:p6($.tools)}:{}})}function $W0($,Z){let X=e0($.toolCall)?$.toolCall:{},Q=B0(X.toolName),J=B0($.toolCallId)??B0(X.toolCallId),Y=X.input??X.args,W=Z&&Q?nY0(B0($.callId),Q,$.tools):void 0;return F5(eE,Q,{[L]:Qh,[nf]:"function",...Q?{[sf]:Q}:{},...J?{[mY0]:J}:{},...W?{[dY0]:W}:{},...Z&&Y!==void 0?{[of]:p6(Y)}:{}})}function ZW0($,Z,X){let{type:Q,result:J}=Z;if(!e0(J))return;let{recordOutputs:Y}=Kh(Z.event,X);if(Q==="executeTool"){if(Y)$.setAttribute(rf,p6(J.output??J));let B=e0(J.output)?J.output:void 0;if(B?.type==="tool-error")KW0($,Z,B.error);return}let W=e0(J.usage)?J.usage:void 0;if(W){let B=nX(W.inputTokens)??nX(W.tokens),j=nX(W.outputTokens),U=nX(W.totalTokens)??zW0(B,j);if(B!==void 0)$.setAttribute(af,B);if(j!==void 0)$.setAttribute(tf,j);if(U!==void 0)$.setAttribute(ef,U)}let K=QW0(J);if(K&&Q==="languageModelCall")$.setAttribute(df,p6([K]));let z=e0(J.response)?J.response:void 0,H=B0(z?.id)??B0(J.responseId);if(H)$.setAttribute(uf,H);let G=B0(z?.modelId)??B0(Z.event.modelId);if(G)$.setAttribute(cf,G);let V=J.providerMetadata,F=K4(V);if(r$ in F&&v($).data[r$])delete F[r$];if($.setAttributes(F),Y){let B=Q==="languageModelCall"&&Array.isArray(J.content)?YW0(J.content):WW0(J.text,J.toolCalls),j=JW0(B,K);if(j)$.setAttribute(xf,j)}}function XW0($){return $==="tool-calls"?"tool_call":$??"stop"}function QW0($){let Z=$.finishReason;if(typeof Z==="string")return Z;return e0(Z)?B0(Z.unified):void 0}function nX($){return D3($)??(e0($)?D3($.total):void 0)}function JW0($,Z){if(!$.length)return;return p6([{role:"assistant",parts:$,finish_reason:XW0(Z)}])}function Wh($){let Z=$.input??$.args;return{type:"tool_call",id:B0($.toolCallId),name:B0($.toolName),arguments:typeof Z==="string"?Z:p6(Z??{})}}function YW0($){let Z=[];for(let X of $){if(!e0(X))continue;if(X.type==="text"&&typeof X.text==="string")Z.push({type:"text",content:X.text});else if(X.type==="tool-call")Z.push(Wh(X))}return Z}function WW0($,Z){let X=[];if(typeof $==="string"&&$.length)X.push({type:"text",content:$});if(Array.isArray(Z)){for(let Q of Z)if(e0(Q))X.push(Wh(Q))}return X}function KW0($,Z,X){$.setStatus({code:O,message:X instanceof Error?X.message:"tool_error"});let Q=e0(Z.event.toolCall)?Z.event.toolCall:{},J=B0(Q.toolName),Y=B0(Z.event.toolCallId)??B0(Q.toolCallId);X0((W)=>{if(W.setContext("trace",Q6($)),J)W.setTag("vercel.ai.tool.name",J);if(Y)W.setTag("vercel.ai.tool.callId",Y);W.setLevel("error"),E(X instanceof Error?X:Error(typeof X==="string"?X:"Tool execution failed"),{mechanism:{type:"auto.vercelai.channel",handled:!1}})})}function Kh($,Z){let X=M()?.getDataCollectionOptions().genAI;return{recordInputs:Xh(Z.recordInputs,$.recordInputs,X?.inputs),recordOutputs:Xh(Z.recordOutputs,$.recordOutputs,X?.outputs),enableTruncation:f0(Z.enableTruncation)}}function Xh($,Z,X){if(typeof $==="boolean")return $;if(typeof Z==="boolean")return Z;return X===!0}function zh($,Z){let X={},Q=B0($.instructions);if(Q)X[l0]=p6([{type:"text",content:Q}]);let J=$.messages??$.prompt;if(J!==void 0)X[vf]=Z?b0(J):p6(J),X[_0]=Array.isArray(J)?J.length:1;return X}function B0($){return typeof $==="string"?$:void 0}function D3($){return typeof $==="number"&&!isNaN($)?$:void 0}function zW0($,Z){return $===void 0&&Z===void 0?void 0:($??0)+(Z??0)}function e0($){return typeof $==="object"&&$!==null}function p6($){if(typeof $==="string")return $;try{return JSON.stringify($)}catch{return"[unserializable]"}}import*as L3 from"node:diagnostics_channel";var HW0=($={})=>{return{name:"VercelAI",setupOnce(){if(!L3.tracingChannel)return;M7(()=>{Yh(L3.tracingChannel,$)})}}},O3=C(HW0);import*as Fh from"node:diagnostics_channel";var C3="@sentry/instrumentation-fastify",GW0=">=3.21.0 <6",Bh="auto.http.otel.fastify",VW0="hook.fastify",wh="request_handler.fastify",jh=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend","onResponse","onError"],I$="hook.name",T$="fastify.type",m8="hook.callback.name",FW0="fastify.root",BW0="route-hook",U9="hook",Uh="request-handler",E$="anonymous",i6=Symbol("sentry fastify request span"),qh=Symbol("sentry fastify addHook original"),Dh=Symbol("sentry fastify setNotFoundHandler original");function Ph($){return $.routeOptions?.url??$.routerPath}function Lh($){return $.routeOptions?.config??$.routeConfig}function wW0($){return!!$&&typeof $==="object"&&!!$.method&&!!$.url&&(!!$.routeOptions||("routerPath"in $))}function Oh($,Z,X){$.decorate(qh,$.addHook),$.decorate(Dh,$.setNotFoundHandler),$.decorateRequest("opentelemetry",function(){return{span:this[i6]}}),$.decorateRequest(i6,null),$.addHook("onRoute",jW0),$.addHook("onRequest",UW0),$.addHook("onResponse",qW0),$.addHook=LW0,$.setNotFoundHandler=OW0,X()}var k3=Oh;k3[Symbol.for("skip-override")]=!0;k3[Symbol.for("fastify.display-name")]=C3;k3[Symbol.for("plugin-meta")]={fastify:GW0,name:C3};function jW0($){if($.config?.otel===!1)return;for(let Z of jh){let X=$[Z];if(typeof X==="function")$[Z]=h$(X,Z,Hh(this.pluginName,Z,X,$.url));else if(Array.isArray(X))$[Z]=X.map((Q)=>h$(Q,Z,Hh(this.pluginName,Z,Q,$.url)))}$.onSend=Gh($.onSend,DW0),$.onError=Gh($.onError,PW0),$.handler=h$($.handler,"handler",{[I$]:`${this.pluginName} - route-handler`,[T$]:Uh,[g6]:$.url,[m8]:$.handler.name.length>0?$.handler.name:E$})}function Hh($,Z,X,Q){return{[I$]:`${$} - route -> ${Z}`,[T$]:BW0,[g6]:Q,[m8]:X.name?.length>0?X.name:E$}}function Gh($,Z){if($==null)return Z;return Array.isArray($)?[...$,Z]:[$,Z]}function UW0($,Z,X){if(Lh($)?.otel===!1)return X();let Q={[L]:Bh,[FW0]:C3,[M$]:$.method,[t4]:$.url},J=Ph($);if(J!=null){Q[g6]=J;let W=p(),K=W&&J0(W);if(K&&v(K).data[I]==="http.server")K.setAttribute(g6,J)}let Y=b({name:"request",op:wh,attributes:Q});$[i6]=Y,m(Y,()=>{X()})}function qW0($,Z,X){let Q=$[i6];if(Q!=null)Q.setAttributes({[s1]:Z.statusCode}),Q.end();$[i6]=null,X()}function DW0($,Z,X,Q){let J=$[i6];if(J!=null){if(Z.statusCode>=500)J.setStatus({code:O});J.setAttributes({[s1]:Z.statusCode}),J.end()}$[i6]=null,Q(null,X)}function PW0($,Z,X,Q){let J=$[i6];if(J!=null)J.setStatus({code:O,message:X.message});Q()}function LW0($,Z){let X=this[qh];if(jh.includes($))return X.call(this,$,h$(Z,$,{[I$]:`${this.pluginName} - ${$}`,[T$]:U9,[m8]:Z.name?.length>0?Z.name:E$}));return X.call(this,$,Z)}function OW0($,Z){let X=this[Dh];if(typeof $==="function"){X.call(this,h$($,"notFoundHandler",{[I$]:`${this.pluginName} - not-found-handler`,[T$]:U9,[m8]:$.name?.length>0?$.name:E$}));return}if($.preValidation!=null)$.preValidation=h$($.preValidation,"notFoundHandler - preValidation",{[I$]:`${this.pluginName} - not-found-handler - preValidation`,[T$]:U9,[m8]:$.preValidation.name?.length>0?$.preValidation.name:E$});if($.preHandler!=null)$.preHandler=h$($.preHandler,"notFoundHandler - preHandler",{[I$]:`${this.pluginName} - not-found-handler - preHandler`,[T$]:U9,[m8]:$.preHandler.name?.length>0?$.preHandler.name:E$});if(Z==null){X.call(this,$);return}X.call(this,$,h$(Z,"notFoundHandler",{[I$]:`${this.pluginName} - not-found-handler`,[T$]:U9,[m8]:Z.name?.length>0?Z.name:E$}))}function CW0($){for(let Z of $)if(wW0(Z))return Z;return null}function h$($,Z,X={}){return function(...J){let Y=CW0(J);if(Y===null||Lh(Y)?.otel===!1)return $.call(this,...J);let W=Y[i6]??void 0,K=$.name?.length>0?$.name:this.pluginName??E$,z=X[T$],H=z===U9?VW0:z===Uh?wh:void 0,G=H?kW0(X[I$]):`${Z} - ${K}`;return $0({name:G,op:H,attributes:{...X,[L]:Bh},parentSpan:W},()=>$.call(this,...J))}}function kW0($=""){return $.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"").replace(/^@sentry\/instrumentation-fastify -> /,"")}function MW0($){$.addHook("onRequest",async(Z,X)=>{let Q=Ph(Z),J=Z.method||"GET";g().setTransactionName(`${J} ${Q}`)})}var Vh=!1,Ch=Object.assign(function(){if(Vh)return;Vh=!0,Fh.subscribe("fastify.initialization",(Z)=>{let X=Z.fastify;X?.register(Oh).after((Q)=>{if(Q)y$&&w.error("Failed to setup Fastify instrumentation",Q);else if(X)MW0(X)})})},{id:"Fastify.v5"});var tX="Fastify";function eX($,Z,X){let Q=X.statusCode;return Q>=500||Q<=299}import*as kh from"node:diagnostics_channel";function RW0(){return M()?.getIntegrationByName(tX)}function Mh(){kh.subscribe("tracing:fastify.request.handler:error",($)=>{let{error:Z,request:X,reply:Q}=$;M3.call(M3,Z,X,Q,"diagnostics-channel")})}function M3($,Z,X,Q){let J=RW0()?.getShouldHandleError()||eX;if(Q==="diagnostics-channel")this.diagnosticsChannelExists=!0;if(this.diagnosticsChannelExists&&Q==="onError-hook"){y$&&w.warn("Fastify error handler was already registered via diagnostics channel.","You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.");return}if(J($,Z,X))E($,{mechanism:{handled:!1,type:"auto.function.fastify"}})}var fW0=({shouldHandleError:$})=>{let Z;return{name:tX,setupOnce(){Z=$||eX,Mh(),Ch()},getShouldHandleError(){return Z},setShouldHandleError(X){Z=X}}},R3=C(($={})=>fW0($));var NW0="Fastify",Rh=y(`${NW0}.v3`,()=>new F3);var _W0=($)=>{let Z=R3($);return WZ(Z,{setupOnce(){Rh()}})},fh=C(($={})=>_W0($));var h1=N(r(),1);import{normalize as yW0}from"path";class i{constructor($,Z,X,Q){this.name=yW0($),this.supportedVersions=Z,this.patch=X,this.unpatch=Q}}var f3=(($)=>{return $.QUERY="query",$.MUTATION="mutation",$.SUBSCRIPTION="subscription",$})(f3||{}),b$=(($)=>{return $.SOF="",$.EOF="",$.BANG="!",$.DOLLAR="$",$.AMP="&",$.PAREN_L="(",$.PAREN_R=")",$.SPREAD="...",$.COLON=":",$.EQUALS="=",$.AT="@",$.BRACKET_L="[",$.BRACKET_R="]",$.BRACE_L="{",$.PIPE="|",$.BRACE_R="}",$.NAME="Name",$.INT="Int",$.FLOAT="Float",$.STRING="String",$.BLOCK_STRING="BlockString",$.COMMENT="Comment",$})(b$||{}),o6=(($)=>{return $.EXECUTE="graphql.execute",$.PARSE="graphql.parse",$.RESOLVE="graphql.resolve",$.VALIDATE="graphql.validate",$.SCHEMA_VALIDATE="graphql.validateSchema",$.SCHEMA_PARSE="graphql.parseSchema",$})(o6||{});var H1=(($)=>{return $.SOURCE="graphql.source",$.FIELD_NAME="graphql.field.name",$.FIELD_PATH="graphql.field.path",$.FIELD_TYPE="graphql.field.type",$.PARENT_NAME="graphql.parent.name",$.OPERATION_TYPE="graphql.operation.type",$.OPERATION_NAME="graphql.operation.name",$})(H1||{});var B5=Symbol.for("opentelemetry.patched"),D6=Symbol.for("opentelemetry.graphql_data");var Ah="Operation$operationName$not supported";var Nh=Object.values(f3),A3=($)=>{return typeof $?.then==="function"},IW0=($)=>{return typeof $=="object"&&$!==null};function $Q($,Z,X,Q){let J=mW0(Z,X,Q);$.setAttribute(H1.SOURCE,J)}function TW0($,Z,X){let Q=Th($,X);if(Q)return{field:Q,spanAdded:!1};let J=bW0($,X);return Q={span:EW0($,Z,X,J)},hW0($,X,Q),{field:Q,spanAdded:!0}}function EW0($,Z,X,Q){let J={[H1.FIELD_NAME]:Z.fieldName,[H1.FIELD_PATH]:X.join("."),[H1.FIELD_TYPE]:Z.returnType.toString(),[H1.PARENT_NAME]:Z.parentType.name},Y=b({name:`${o6.RESOLVE} ${J[H1.FIELD_PATH]}`,attributes:J,parentSpan:Q}),W=$[D6].source,K=Z.fieldNodes.find((z)=>z.kind==="Field");if(K)$Q(Y,W.loc,K.loc?.start,K.loc?.end);return Y}function d8($,Z){if(Z)$.setStatus({code:O,message:Z.message});$.end()}function N3($,Z){if(!$||!Array.isArray($.definitions))return;if(Z)return $.definitions.filter((X)=>Nh.indexOf(X?.operation)!==-1).find((X)=>Z===X?.name?.value);else return $.definitions.find((X)=>Nh.indexOf(X?.operation)!==-1)}function hW0($,Z,X){return $[D6].fields[Z.join(".")]=X}function Th($,Z){return $[D6].fields[Z.join(".")]}function bW0($,Z){for(let X=Z.length-1;X>0;X--){let Q=Th($,Z.slice(0,X));if(Q)return Q.span}return vW0($)}function vW0($){return $[D6].span}function SW0($){let Z=[],X=$;while(X)Z.push(String(X.key)),X=X.prev;return Z.reverse()}function xW0($){return Eh(` +`,$)}function _h($){return Eh(" ",$)}function Eh($,Z){let X="";for(let Q=0;QY){W=W.next,K=W?.line;continue}let z=W.value||W.kind,H="";if(gW0.indexOf(W.kind)>=0)z="*";if(W.kind===b$.STRING)z=`"${z}"`;if(W.kind===b$.EOF)z="";if(W.line>K)Q+=xW0(W.line-K),K=W.line,H=_h(W.column-1);else if(W.line===W.prev?.line)H=_h(W.start-(W.prev?.end||0));if(Q+=H+z,W)W=W.next}}return Q}function ZQ($,Z){if(!$||$[B5])return;let X=$.getFields();$[B5]=!0,Object.keys(X).forEach((Q)=>{let J=X[Q];if(!J)return;if(J.resolve)J.resolve=_3(Z,J.resolve);if(J.type){let Y=hh(J.type);for(let W of Y)ZQ(W,Z)}})}function hh($){if("ofType"in $)return hh($.ofType);if(dW0($))return $.getTypes();if(uW0($))return[$];return[]}function dW0($){return"getTypes"in $&&typeof $.getTypes==="function"}function uW0($){return"getFields"in $&&typeof $.getFields==="function"}var yh=($,Z,X)=>{if(!X)return;$.setStatus({code:O,message:Z.message}),$.end()},Ih=($,Z)=>{if(!Z)return;$.end()};function _3($,Z,X=!1){if(Q[B5]||typeof Z!=="function")return Z;function Q(J,Y,W,K){if(!Z)return;if($().ignoreTrivialResolveSpans&&X&&(IW0(J)||typeof J==="function")){if(typeof J[K.fieldName]!=="function")return Z.call(this,J,Y,W,K)}if(!W[D6])return Z.call(this,J,Y,W,K);let H=SW0(K?.path),{field:G,spanAdded:V}=TW0(W,K,H),F=G.span,B=V;return m(F,()=>{try{let j=Z.call(this,J,Y,W,K);if(A3(j))return j.then((U)=>{return Ih(F,B),U},(U)=>{throw yh(F,U,B),U});else return Ih(F,B),j}catch(j){throw yh(F,j,B),j}})}return Q[B5]=!0,Q}var cW0="@sentry/instrumentation-graphql",lW0="auto.graphql.otel.graphql",bh={ignoreResolveSpans:!1},XQ=[">=14.0.0 <17"];class y3 extends h1.InstrumentationBase{constructor($={}){super(cW0,f,{...bh,...$})}setConfig($={}){super.setConfig({...bh,...$})}init(){let $=new h1.InstrumentationNodeModuleDefinition("graphql",XQ);return $.files.push(this._addPatchingExecute()),$.files.push(this._addPatchingParser()),$.files.push(this._addPatchingValidate()),$}_addPatchingExecute(){return new i("graphql/execution/execute.js",XQ,($)=>{if(h1.isWrapped($.execute))this._unwrap($,"execute");return this._wrap($,"execute",this._patchExecute($.defaultFieldResolver)),$},($)=>{if($)this._unwrap($,"execute")})}_addPatchingParser(){return new i("graphql/language/parser.js",XQ,($)=>{if(h1.isWrapped($.parse))this._unwrap($,"parse");return this._wrap($,"parse",this._patchParse()),$},($)=>{if($)this._unwrap($,"parse")})}_addPatchingValidate(){return new i("graphql/validation/validate.js",XQ,($)=>{if(h1.isWrapped($.validate))this._unwrap($,"validate");return this._wrap($,"validate",this._patchValidate()),$},($)=>{if($)this._unwrap($,"validate")})}_patchExecute($){let Z=this;return function(Q){return function(){let Y;if(arguments.length>=2){let z=arguments;Y=Z._wrapExecuteArgs(z[0],z[1],z[2],z[3],z[4],z[5],z[6],z[7],$)}else{let z=arguments[0];Y=Z._wrapExecuteArgs(z.schema,z.document,z.rootValue,z.contextValue,z.variableValues,z.operationName,z.fieldResolver,z.typeResolver,$)}let W=N3(Y.document,Y.operationName),K=Z._createExecuteSpan(W,Y);return Y.contextValue[D6]={source:Y.document?Y.document||Y.document[D6]:void 0,span:K,fields:{}},m(K,()=>{return h1.safeExecuteInTheMiddle(()=>{return Q.apply(this,[Y])},(z,H)=>{Z._handleExecutionResult(K,z,H)})})}}}_handleExecutionResult($,Z,X){if(X===void 0||Z){d8($,Z);return}if(A3(X))X.then((Q)=>{this._updateSpanFromResult($,Q),d8($)},(Q)=>{d8($,Q)});else this._updateSpanFromResult($,X),d8($)}_updateSpanFromResult($,Z){if(Z.errors?.length&&!v($).status)$.setStatus({code:O});if(!this.getConfig().useOperationNameForRootSpan)return;let X=v($).data,Q=X[H1.OPERATION_TYPE],J=X[H1.OPERATION_NAME];if(!Q)return;let Y=J0($),K=v(Y).data[b8]||[],z=J?`${Q} ${J}`:`${Q}`;if(Array.isArray(K))K.push(z),Y.setAttribute(b8,K);else if(typeof K==="string")Y.setAttribute(b8,[K,z]);else Y.setAttribute(b8,z);if(!v(Y).data["original-description"])Y.setAttribute("original-description",v(Y).description);Y.updateName(`${v(Y).data["original-description"]} (${pW0(K)})`)}_patchParse(){let $=this;return function(X){return function(J,Y){return $._parse(this,X,J,Y)}}}_patchValidate(){let $=this;return function(X){return function(J,Y,W,K,z){return $._validate(this,X,J,Y,W,z,K)}}}_parse($,Z,X,Q){let J=b({name:o6.PARSE});return m(J,()=>{return h1.safeExecuteInTheMiddle(()=>{return Z.call($,X,Q)},(Y,W)=>{if(W){if(!N3(W))J.updateName(o6.SCHEMA_PARSE);else if(W.loc)$Q(J,W.loc)}d8(J,Y)})})}_validate($,Z,X,Q,J,Y,W){let K=b({name:o6.VALIDATE});return m(K,()=>{return h1.safeExecuteInTheMiddle(()=>{return Z.call($,X,Q,J,W,Y)},(z,H)=>{if(!Q.loc)K.updateName(o6.SCHEMA_VALIDATE);d8(K,z)})})}_createExecuteSpan($,Z){let X=b({name:o6.EXECUTE,attributes:{[L]:lW0}});if($){let{operation:Q,name:J}=$;X.setAttribute(H1.OPERATION_TYPE,Q);let Y=J?.value;if(Y)X.setAttribute(H1.OPERATION_NAME,Y),X.updateName(`${Q} ${Y}`);else X.updateName(Q)}else{let Q=" ";if(Z.operationName)Q=` "${Z.operationName}" `;Q=Ah.replace("$operationName$",Q),X.setAttribute(H1.OPERATION_NAME,Q)}if(Z.document?.loc)$Q(X,Z.document.loc);return X}_wrapExecuteArgs($,Z,X,Q,J,Y,W,K,z){if(!Q)Q={};if(Q[D6]||this.getConfig().ignoreResolveSpans)return{schema:$,document:Z,rootValue:X,contextValue:Q,variableValues:J,operationName:Y,fieldResolver:W,typeResolver:K};let H=W==null;if(W=_3(()=>this.getConfig(),W??z,H),$)ZQ($.getQueryType(),()=>this.getConfig()),ZQ($.getMutationType(),()=>this.getConfig());return{schema:$,document:Z,rootValue:X,contextValue:Q,variableValues:J,operationName:Y,fieldResolver:W,typeResolver:K}}}function pW0($){if(Array.isArray($)){let Z=$.slice().sort();if(Z.length<=5)return Z.join(", ");else return`${Z.slice(0,5).join(", ")}, +${Z.length-5}`}return`${$}`}var vh="Graphql",Sh=y(vh,y3,($)=>gh($)),iW0=($={})=>{return{name:vh,setupOnce(){Sh(gh($))}}},xh=C(iW0);function gh($){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...$}}var L1=N(r(),1);var mh="messaging.batch.message_count",I3="messaging.destination.name",q9="messaging.destination.partition.id",T3="messaging.kafka.message.key",E3="messaging.kafka.message.tombstone",dh="messaging.kafka.offset",h3="messaging.operation.name",b3="messaging.operation.type",v3="messaging.system",S3="process",w5="receive",uh="send",x3="kafka",ch="error.type",lh="_OTHER";var g3=N(S(),1);var oW0="auto.kafkajs.otel.producer",sW0="auto.kafkajs.otel.consumer";function j5($,Z){let X=$?.[Z];if(X==null)return;return Array.isArray(X)?X[0]?.toString():X.toString()}function ph($){let Z=j5($,"sentry-trace");if(!Z)return;let{traceId:X,parentSpanId:Q,sampled:J}=N6(Z,j5($,"baggage"));if(!Q)return;return[{context:{traceId:X,spanId:Q,isRemote:!0,traceFlags:J?g3.TraceFlags.SAMPLED:g3.TraceFlags.NONE}}]}function QQ({topic:$,message:Z,operationType:X,links:Q,attributes:J}){let Y=X===w5?"poll":X;return b({name:`${Y} ${$}`,kind:X===w5?c.CLIENT:c.CONSUMER,links:Q,attributes:{...J,[v3]:x3,[I3]:$,[b3]:X,[h3]:Y,[T3]:Z?.key?String(Z.key):void 0,[E3]:Z?.key&&Z.value===null?!0:void 0,[dh]:Z?.offset,...Z?{[L]:sW0}:{}}})}function m3($,Z){let X=b({name:`send ${$}`,kind:c.PRODUCER,attributes:{[v3]:x3,[I3]:$,[T3]:Z.key?String(Z.key):void 0,[E3]:Z.key&&Z.value===null?!0:void 0,[q9]:Z.partition!==void 0?String(Z.partition):void 0,[h3]:"send",[b3]:uh,[L]:oW0}});Z.headers=Z.headers??{};let Q=w1({span:X});if(Q["sentry-trace"])Z.headers["sentry-trace"]=Q["sentry-trace"];if(Q.baggage)Z.headers.baggage=Q.baggage;return X}function u8($,Z){return Promise.resolve(Z).catch((X)=>{let Q,J=lh;if(typeof X==="string"||X===void 0)Q=X;else if(typeof X==="object"&&Object.prototype.hasOwnProperty.call(X,"message"))Q=X.message,J=X.constructor.name;throw $.forEach((Y)=>{Y.setAttribute(ch,J),Y.setStatus({code:O,message:Q})}),X}).finally(()=>{$.forEach((X)=>X.end())})}var rW0="@sentry/instrumentation-kafkajs";class d3 extends L1.InstrumentationBase{constructor($={}){super(rW0,f,$)}init(){let $=(X)=>{if(L1.isWrapped(X?.Kafka?.prototype.producer))this._unwrap(X.Kafka.prototype,"producer");if(L1.isWrapped(X?.Kafka?.prototype.consumer))this._unwrap(X.Kafka.prototype,"consumer")};return new L1.InstrumentationNodeModuleDefinition("kafkajs",[">=0.3.0 <3"],(X)=>{return $(X),this._wrap(X?.Kafka?.prototype,"producer",this._getProducerPatch()),this._wrap(X?.Kafka?.prototype,"consumer",this._getConsumerPatch()),X},$)}_getConsumerPatch(){let $=this;return(Z)=>{return function(...Q){let J=Z.apply(this,Q);if(L1.isWrapped(J.run))$._unwrap(J,"run");return $._wrap(J,"run",$._getConsumerRunPatch()),J}}}_getProducerPatch(){let $=this;return(Z)=>{return function(...Q){let J=Z.apply(this,Q);if(L1.isWrapped(J.sendBatch))$._unwrap(J,"sendBatch");if($._wrap(J,"sendBatch",$._getSendBatchPatch()),L1.isWrapped(J.send))$._unwrap(J,"send");if($._wrap(J,"send",$._getSendPatch()),L1.isWrapped(J.transaction))$._unwrap(J,"transaction");return $._wrap(J,"transaction",$._getProducerTransactionPatch()),J}}}_getConsumerRunPatch(){let $=this;return(Z)=>{return function(...Q){let J=Q[0];if(J?.eachMessage){if(L1.isWrapped(J.eachMessage))$._unwrap(J,"eachMessage");$._wrap(J,"eachMessage",$._getConsumerEachMessagePatch())}if(J?.eachBatch){if(L1.isWrapped(J.eachBatch))$._unwrap(J,"eachBatch");$._wrap(J,"eachBatch",$._getConsumerEachBatchPatch())}return Z.call(this,J)}}}_getConsumerEachMessagePatch(){return($)=>{return function(...X){let Q=X[0],J=j5(Q.message.headers,"sentry-trace"),Y=j5(Q.message.headers,"baggage");return _6({sentryTrace:J,baggage:Y},()=>{let W=QQ({topic:Q.topic,message:Q.message,operationType:S3,attributes:{[q9]:String(Q.partition)}}),K=m(W,()=>{return $.apply(this,X)});return u8([W],K)})}}}_getConsumerEachBatchPatch(){return($)=>{return function(...X){let Q=X[0],J=L7(()=>QQ({topic:Q.batch.topic,message:void 0,operationType:w5,attributes:{[mh]:Q.batch.messages.length,[q9]:String(Q.batch.partition)}}));return m(J,()=>{let Y=[J];Q.batch.messages.forEach((K)=>{Y.push(QQ({topic:Q.batch.topic,message:K,operationType:S3,links:ph(K.headers),attributes:{[q9]:String(Q.batch.partition)}}))});let W=$.apply(this,X);return u8(Y,W)})}}}_getProducerTransactionPatch(){let $=this;return(Z)=>{return function(...Q){let J=b({name:"transaction"}),Y=Z.apply(this,Q);return Y.then((W)=>{let K=W.send;W.send=function(...F){return m(J,()=>{return $._getSendPatch()(K).apply(this,F).catch((j)=>{throw J.setStatus({code:O,message:j?.message}),j})})};let z=W.sendBatch;W.sendBatch=function(...F){return m(J,()=>{return $._getSendBatchPatch()(z).apply(this,F).catch((j)=>{throw J.setStatus({code:O,message:j?.message}),j})})};let H=W.commit;W.commit=function(...F){let B=H.apply(this,F).then(()=>{J.setStatus({code:M6})});return u8([J],B)};let G=W.abort;W.abort=function(...F){let B=G.apply(this,F);return u8([J],B)}}).catch((W)=>{J.setStatus({code:O,message:W?.message}),J.end()}),Y}}}_getSendBatchPatch(){return($)=>{return function(...X){let J=X[0].topicMessages||[],Y=[];J.forEach((K)=>{K.messages.forEach((z)=>{Y.push(m3(K.topic,z))})});let W=$.apply(this,X);return u8(Y,W)}}}_getSendPatch(){return($)=>{return function(...X){let Q=X[0],J=Q.messages.map((W)=>{return m3(Q.topic,W)}),Y=$.apply(this,X);return u8(J,Y)}}}}var ih="Kafka",oh=y(ih,()=>new d3),nW0=()=>{return{name:ih,setupOnce(){oh()}}},sh=C(nW0);var JQ=N(r(),1);var aW0="@sentry/instrumentation-lru-memoizer";class u3 extends JQ.InstrumentationBase{constructor(){super(aW0,f,{})}init(){return[new JQ.InstrumentationNodeModuleDefinition("lru-memoizer",[">=1.3 <4"],($)=>{return Object.assign(function(...X){let Q=$.apply(this,X);return function(...J){let Y=J.pop(),W=d(),K=typeof Y==="function"?function(...z){return X0(W,()=>Y.apply(this,z))}:Y;return Q.apply(this,[...J,K])}},{sync:$.sync})},void 0)]}}var rh="LruMemoizer",nh=y(rh,()=>new u3),tW0=()=>{return{name:rh,setupOnce(){nh()}}},ah=C(tW0);var $1=N(r(),1);var P6=(($)=>{return $.CREATE_INDEXES="createIndexes",$.FIND_AND_MODIFY="findAndModify",$.IS_MASTER="isMaster",$.COUNT="count",$.AGGREGATE="aggregate",$.UNKNOWN="unknown",$})(P6||{});var th="db.connection_string",eh="db.mongodb.collection",$b="db.name",c3="db.operation",Zb="db.statement",Xb="db.system",Qb="net.peer.name",Jb="net.peer.port",Yb="mongodb";var eW0="auto.db.otel.mongo";function $K0($){return JSON.stringify(l3($))}function l3($){if(Array.isArray($))return $.map((Z)=>l3(Z));if(ZK0($)){let Z={};return Object.entries($).map(([X,Q])=>[X,l3(Q)]).reduce((X,Q)=>{if(QK0(Q))X[Q[0]]=Q[1];return X},Z)}return"?"}function ZK0($){return typeof $==="object"&&$!==null&&!XK0($)}function XK0($){return typeof Buffer<"u"&&Buffer.isBuffer($)}function QK0($){return Array.isArray($)}function Wb($){if($.createIndexes!==void 0)return P6.CREATE_INDEXES;else if($.findandmodify!==void 0)return P6.FIND_AND_MODIFY;else if($.ismaster!==void 0)return P6.IS_MASTER;else if($.count!==void 0)return P6.COUNT;else if($.aggregate!==void 0)return P6.AGGREGATE;else return P6.UNKNOWN}function p3($,Z,X,Q){let J,Y;if($){let K=typeof $.address==="string"?$.address.split(":"):"";if(K.length===2)J=K[0],Y=K[1]}let W;if(X?.documents&&X.documents[0])W=X.documents[0];else if(X?.cursors)W=X.cursors;else W=X;return Kb(Z.db,Z.collection,J,Y,W,Q)}function U5($,Z,X,Q){let J,Y;if(Z?.s){if(J=Z.s.options?.host??Z.s.host,Y=(Z.s.options?.port??Z.s.port)?.toString(),J==null||Y==null){let H=Z.description?.address;if(H){let G=H.split(":");J=G[0],Y=G[1]}}}let[W,K]=$.toString().split("."),z=X?.query??X?.q??X;return Kb(W,K,J,Y,z,Q)}function Kb($,Z,X,Q,J,Y){let W={[L]:eW0,[Xb]:Yb,[$b]:$,[eh]:Z,[c3]:Y,[th]:`mongodb://${X}:${Q}/${$}`};if(X&&Q){W[Qb]=X;let K=parseInt(Q,10);if(!isNaN(K))W[Jb]=K}if(J)try{W[Zb]=$K0(J)}catch{}return W}function c8($){return b({name:`mongodb.${$[c3]||"command"}`,kind:c.CLIENT,attributes:$})}function l8($,Z){let X=p(),Q=!1;return function(...Y){if(!Q){Q=!0;let W=Y[0];if($){if(W instanceof Error)$.setStatus({code:O,message:W.message});$.end()}}return m(X??null,()=>Z.apply(this,Y))}}function p8(){return!p()}function YQ($){return(Z)=>{return function(Q,J,Y,W,K){let z=typeof W==="function"?W:K;if(p8()||typeof z!=="function"||typeof Y!=="object")if(typeof W==="function")return Z.call(this,Q,J,Y,W);else return Z.call(this,Q,J,Y,W,K);let H=c8(U5(J,Q,Y[0],$)),G=l8(H,z);if(typeof W==="function")return Z.call(this,Q,J,Y,G);else return Z.call(this,Q,J,Y,W,G)}}}function zb(){return($)=>{return function(X,Q,J,Y,W){let K=typeof Y==="function"?Y:W;if(p8()||typeof K!=="function"||typeof J!=="object")if(typeof Y==="function")return $.call(this,X,Q,J,Y);else return $.call(this,X,Q,J,Y,W);let z=Wb(J),H=z===P6.UNKNOWN?void 0:z,G=c8(U5(Q,X,J,H)),V=l8(G,K);if(typeof Y==="function")return $.call(this,X,Q,J,V);else return $.call(this,X,Q,J,Y,V)}}}function Hb(){return($)=>{return function(X,Q,J,Y){let W=Y,K=Object.keys(Q)[0];if(typeof Q!=="object"||Q.ismaster||Q.hello)return $.call(this,X,Q,J,Y);let z=void 0;if(!p8())z=c8(p3(this,X,Q,K));let H=l8(z,W);return $.call(this,X,Q,J,H)}}}function Gb(){return($)=>{return function(...X){let[Q,J]=X,Y=Object.keys(J)[0],W=()=>{return};if(typeof J!=="object"||J.ismaster||J.hello)return $.apply(this,X);let K=void 0;if(!p8())K=c8(p3(this,Q,J,Y));let z=l8(K,W),H=$.apply(this,X);return H.then((G)=>z(null,G),(G)=>z(G)),H}}}function Vb(){return($)=>{return function(X,Q,J,Y,W,K){let z=typeof W==="function"?W:K;if(p8()||typeof z!=="function"||typeof J!=="object")if(typeof W==="function")return $.call(this,X,Q,J,Y,W);else return $.call(this,X,Q,J,Y,W,K);let H=c8(U5(Q,X,J,"find")),G=l8(H,z);if(typeof W==="function")return $.call(this,X,Q,J,Y,G);else return $.call(this,X,Q,J,Y,W,G)}}}function Fb(){return($)=>{return function(X,Q,J,Y,W,K){let z=typeof W==="function"?W:K;if(p8()||typeof z!=="function")if(typeof W==="function")return $.call(this,X,Q,J,Y,W);else return $.call(this,X,Q,J,Y,W,K);let H=c8(U5(Q,X,J.cmd,"getMore")),G=l8(H,z);if(typeof W==="function")return $.call(this,X,Q,J,Y,G);else return $.call(this,X,Q,J,Y,W,G)}}}function Bb(){return($)=>{return function(X){let Q=p();return $.call(this,function(...J){return m(Q??null,()=>X.apply(this,J))})}}}var JK0="@sentry/instrumentation-mongodb";class i3 extends $1.InstrumentationBase{constructor($={}){super(JK0,f,$)}init(){let{v3PatchConnection:$,v3UnpatchConnection:Z}=this._getV3ConnectionPatches(),{v4PatchConnectionCallback:X,v4PatchConnectionPromise:Q,v4UnpatchConnection:J}=this._getV4ConnectionPatches(),{v4PatchConnectionPool:Y,v4UnpatchConnectionPool:W}=this._getV4ConnectionPoolPatches();return[new $1.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new i("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],$,Z)]),new $1.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <8"],void 0,void 0,[new i("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],X,J),new i("mongodb/lib/cmap/connection.js",[">=6.4.0 <8"],Q,J),new i("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],Y,W)])]}_getV3ConnectionPatches(){return{v3PatchConnection:($)=>{if($1.isWrapped($.insert))this._unwrap($,"insert");if(this._wrap($,"insert",YQ("insert")),$1.isWrapped($.remove))this._unwrap($,"remove");if(this._wrap($,"remove",YQ("remove")),$1.isWrapped($.update))this._unwrap($,"update");if(this._wrap($,"update",YQ("update")),$1.isWrapped($.command))this._unwrap($,"command");if(this._wrap($,"command",zb()),$1.isWrapped($.query))this._unwrap($,"query");if(this._wrap($,"query",Vb()),$1.isWrapped($.getMore))this._unwrap($,"getMore");return this._wrap($,"getMore",Fb()),$},v3UnpatchConnection:($)=>{if($===void 0)return;this._unwrap($,"insert"),this._unwrap($,"remove"),this._unwrap($,"update"),this._unwrap($,"command"),this._unwrap($,"query"),this._unwrap($,"getMore")}}}_getV4ConnectionPoolPatches(){return{v4PatchConnectionPool:($)=>{let Z=$.ConnectionPool.prototype;if($1.isWrapped(Z.checkOut))this._unwrap(Z,"checkOut");return this._wrap(Z,"checkOut",Bb()),$},v4UnpatchConnectionPool:($)=>{if($===void 0)return;this._unwrap($.ConnectionPool.prototype,"checkOut")}}}_getV4ConnectionPatches(){return{v4PatchConnectionCallback:($)=>{if($1.isWrapped($.Connection.prototype.command))this._unwrap($.Connection.prototype,"command");return this._wrap($.Connection.prototype,"command",Hb()),$},v4PatchConnectionPromise:($)=>{if($1.isWrapped($.Connection.prototype.command))this._unwrap($.Connection.prototype,"command");return this._wrap($.Connection.prototype,"command",Gb()),$},v4UnpatchConnection:($)=>{if($===void 0)return;this._unwrap($.Connection.prototype,"command")}}}}var wb="Mongo",jb=y(wb,()=>new i3),YK0=()=>{return{name:wb,setupOnce(){jb()}}},Ub=C(YK0);var KQ=N(r(),1);var qb="db.mongodb.collection",Db="db.name",Pb="db.operation",Lb="db.system",Ob="db.user",Cb="net.peer.name",kb="net.peer.port";function Mb($){return{[qb]:$.name,[Db]:$.conn.name,[Ob]:$.conn.user,[Cb]:$.conn.host,[kb]:$.conn.port}}function Rb($,Z){$.setStatus({code:O,message:`${Z.message} ${Z.code?` +Mongoose Error Code: ${Z.code}`:""}`})}function fb($,Z){if(!($ instanceof Promise))return Z.end(),$;return $.catch((X)=>{throw Rb(Z,X),X}).finally(()=>Z.end())}function Ab($,Z,X,Q,J){let Y=0;if(J.length===2)Y=1;else if(J.length===3)Y=2;return J[Y]=(W,K)=>{if(W)Rb(Q,W);return Q.end(),$(W,K)},Z.apply(X,J)}var WK0="@sentry/instrumentation-mongoose",KK0="auto.db.otel.mongoose",zQ=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],zK0=["remove","count","findOneAndRemove",...zQ],HK0=["count","findOneAndRemove",...zQ],GK0=[...zQ];function Nb($){if(!$)return zQ;else if($.startsWith("6.")||$.startsWith("5."))return zK0;else if($.startsWith("7."))return HK0;else return GK0}function _b($){return $&&($.startsWith("5.")||$.startsWith("6."))||!1}function yb($){if(!$||!$.startsWith("8."))return!1;return parseInt($.split(".")[1],10)>=21}var WQ=Symbol("stored-parent-span"),Ib=Symbol("already-instrumented");class o3 extends KQ.InstrumentationBase{constructor($={}){super(WK0,f,$)}init(){return new KQ.InstrumentationNodeModuleDefinition("mongoose",[">=5.9.7 <10"],this.patch.bind(this),this.unpatch.bind(this))}patch($,Z){let X=$[Symbol.toStringTag]==="Module"&&$.default?$.default:$;if(this._wrap(X.Model.prototype,"save",this.patchOnModelMethods("save")),X.Model.prototype.$save=X.Model.prototype.save,_b(Z))this._wrap(X.Model.prototype,"remove",this.patchOnModelMethods("remove"));if(yb(Z))this._wrap(X.Model.prototype,"updateOne",this._patchDocumentUpdateMethods("updateOne")),this._wrap(X.Model.prototype,"deleteOne",this._patchDocumentUpdateMethods("deleteOne"));return this._wrap(X.Query.prototype,"exec",this.patchQueryExec()),this._wrap(X.Aggregate.prototype,"exec",this.patchAggregateExec()),Nb(Z).forEach((J)=>{this._wrap(X.Query.prototype,J,this.patchAndCaptureSpanContext(J))}),this._wrap(X.Model,"aggregate",this.patchModelAggregate()),this._wrap(X.Model,"insertMany",this.patchModelStatic("insertMany")),this._wrap(X.Model,"bulkWrite",this.patchModelStatic("bulkWrite")),X}unpatch($,Z){let X=$[Symbol.toStringTag]==="Module"&&$.default?$.default:$,Q=Nb(Z);if(this._unwrap(X.Model.prototype,"save"),X.Model.prototype.$save=X.Model.prototype.save,_b(Z))this._unwrap(X.Model.prototype,"remove");if(yb(Z))this._unwrap(X.Model.prototype,"updateOne"),this._unwrap(X.Model.prototype,"deleteOne");this._unwrap(X.Query.prototype,"exec"),this._unwrap(X.Aggregate.prototype,"exec"),Q.forEach((J)=>{this._unwrap(X.Query.prototype,J)}),this._unwrap(X.Model,"aggregate"),this._unwrap(X.Model,"insertMany"),this._unwrap(X.Model,"bulkWrite")}patchAggregateExec(){let $=this;return(Z)=>{return function(Q){let J=this[WQ],Y=$._startSpan(this._model.collection,this._model?.modelName,"aggregate",J);return $._handleResponse(Y,Z,this,arguments,Q)}}}patchQueryExec(){let $=this;return(Z)=>{return function(Q){if(this[Ib])return Z.apply(this,arguments);let J=this[WQ],Y=$._startSpan(this.mongooseCollection,this.model.modelName,this.op,J);return $._handleResponse(Y,Z,this,arguments,Q)}}}patchOnModelMethods($){let Z=this;return(X)=>{return function(J,Y){let W=Z._startSpan(this.constructor.collection,this.constructor.modelName,$);if(J instanceof Function)Y=J;return Z._handleResponse(W,X,this,arguments,Y)}}}_patchDocumentUpdateMethods($){let Z=this;return(X)=>{return function(J,Y,W){let K=W;if(typeof J==="function")K=J;else if(typeof Y==="function")K=Y;let z=Z._startSpan(this.constructor.collection,this.constructor.modelName,$),H=Z._handleResponse(z,X,this,arguments,K);if(H&&typeof H==="object")H[Ib]=!0;return H}}}patchModelStatic($){let Z=this;return(X)=>{return function(J,Y,W){if(typeof Y==="function")W=Y;let K=Z._startSpan(this.collection,this.modelName,$);return Z._handleResponse(K,X,this,arguments,W)}}}patchModelAggregate(){return($)=>{return function(){let X=p(),Q=$.apply(this,arguments);if(Q)Q[WQ]=X;return Q}}}patchAndCaptureSpanContext($){return(Z)=>{return function(){return this[WQ]=p(),Z.apply(this,arguments)}}}_startSpan($,Z,X,Q){let J={...Mb($),[Pb]:X,[Lb]:"mongoose",[L]:KK0};return b({name:`mongoose.${Z}.${X}`,kind:c.CLIENT,attributes:J,parentSpan:Q})}_handleResponse($,Z,X,Q,J){return m($,()=>{if(J instanceof Function)return Ab(J,Z,X,$,Q);else{let Y=Z.apply(X,Q);return fb(Y,$)}})}}var Tb="Mongoose",Eb=y(Tb,()=>new o3),VK0=()=>{return{name:Tb,setupOnce(){Eb()}}},hb=C(VK0);var s6=N(r(),1);var bb="db.connection_string",vb="db.name",Sb="db.statement",xb="db.system",gb="db.user",mb="net.peer.name",db="net.peer.port",ub="mysql";function cb($){let Z=$?.connectionConfig||$||{},{host:X,port:Q,database:J,user:Y}=Z;return{host:X,port:Q,database:J,user:Y}}function lb($,Z,X){let Q=`jdbc:mysql://${$||"localhost"}`;if(typeof Z==="number")Q+=`:${Z}`;if(typeof X==="string")Q+=`/${X}`;return Q}function pb($){if(typeof $==="string")return $;else return $.sql}function ib($){let Z=typeof $==="object"?$.sql:$,X=Z?.indexOf(" ");if(typeof X==="number"&&X!==-1)return Z?.substring(0,X);return Z}var FK0="@sentry/instrumentation-mysql",BK0="auto.db.otel.mysql";class s3 extends s6.InstrumentationBase{constructor($={}){super(FK0,f,$)}init(){return[new s6.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],($)=>{if(s6.isWrapped($.createConnection))this._unwrap($,"createConnection");if(this._wrap($,"createConnection",this._patchCreateConnection()),s6.isWrapped($.createPool))this._unwrap($,"createPool");if(this._wrap($,"createPool",this._patchCreatePool()),s6.isWrapped($.createPoolCluster))this._unwrap($,"createPoolCluster");return this._wrap($,"createPoolCluster",this._patchCreatePoolCluster()),$},($)=>{if($===void 0)return;this._unwrap($,"createConnection"),this._unwrap($,"createPool"),this._unwrap($,"createPoolCluster")})]}_patchCreateConnection(){return($)=>{let Z=this;return function(Q){let J=$(...arguments);return Z._wrap(J,"query",Z._patchQuery(J)),J}}}_patchCreatePool(){return($)=>{let Z=this;return function(Q){let J=$(...arguments);return Z._wrap(J,"query",Z._patchQuery(J)),Z._wrap(J,"getConnection",Z._patchGetConnection(J)),J}}}_patchCreatePoolCluster(){return($)=>{let Z=this;return function(Q){let J=$(...arguments);return Z._wrap(J,"getConnection",Z._patchGetConnection(J)),J}}}_patchGetConnection($){return(Z)=>{let X=this;return function(J,Y,W){if(!X._enabled)return X._unwrap($,"getConnection"),Z.apply($,arguments);if(arguments.length===1&&typeof J==="function"){let K=X._getConnectionCallbackPatchFn(J);return Z.call($,K)}if(arguments.length===2&&typeof Y==="function"){let K=X._getConnectionCallbackPatchFn(Y);return Z.call($,J,K)}if(arguments.length===3&&typeof W==="function"){let K=X._getConnectionCallbackPatchFn(W);return Z.call($,J,Y,K)}return Z.apply($,arguments)}}}_getConnectionCallbackPatchFn($){let Z=this,X=d();return function(Q,J){if(J){if(!s6.isWrapped(J.query))Z._wrap(J,"query",Z._patchQuery(J))}if(typeof $==="function")X0(X,()=>$.call(this,Q,J))}}_patchQuery($){return(Z)=>{let X=this;return function(Q,J,Y){if(!X._enabled)return X._unwrap($,"query"),Z.apply($,arguments);let{host:W,port:K,database:z,user:H}=cb($.config),G=parseInt(String(K),10),V={[L]:BK0,[xb]:ub,[bb]:lb(W,K,z),[vb]:z,[gb]:H,[Sb]:pb(Q),[mb]:W};if(!isNaN(G))V[db]=G;let F=b({name:ib(Q),kind:c.CLIENT,attributes:V}),B=Array.from(arguments).findIndex((U)=>typeof U==="function"),j=d();if(B===-1){let U=m(F,()=>{return Z.apply($,arguments)});return n9(U,j),U.on("error",(D)=>{F.setStatus({code:O,message:D.message})}).on("end",()=>{F.end()})}else return X._wrap(arguments,B,X._patchCallbackQuery(F,j)),m(F,()=>{return Z.apply($,arguments)})}}}_patchCallbackQuery($,Z){return(X)=>{return function(Q,J,Y){if(Q)$.setStatus({code:O,message:Q.message});return $.end(),X0(Z,()=>X(...arguments))}}}}var ob="Mysql",sb=y(ob,()=>new s3({})),wK0=()=>{return{name:ob,setupOnce(){sb()}}},rb=C(wK0);var i8=N(r(),1);var nb="db.connection_string",ab="db.name",tb="db.statement",eb="db.system",$v="db.user",Zv="net.peer.name",Xv="net.peer.port",Qv="mysql";function Jv($){let{host:Z,port:X,database:Q,user:J}=jK0($),Y={[nb]:UK0(Z,X,Q),[ab]:Q,[$v]:J,[Zv]:Z},W=parseInt(X,10);if(!isNaN(W))Y[Xv]=W;return Y}function jK0($){let{host:Z,port:X,database:Q,user:J}=$?.connectionConfig||$||{};return{host:Z,port:X,database:Q,user:J}}function UK0($,Z,X){let Q=`jdbc:mysql://${$||"localhost"}`;if(typeof Z==="number")Q+=`:${Z}`;if(typeof X==="string")Q+=`/${X}`;return Q}function Yv($,Z,X){let[Q,J]=typeof $==="string"?[$,X]:[$.sql,qK0($)?X||$.values:X];try{if(Z&&J)return Z(Q,J);else return Q}catch{return"Could not determine the query due to an error in formatting"}}function qK0($){return"values"in $}function Wv($){let Z=typeof $==="object"?$.sql:$,X=Z?.indexOf(" ");if(typeof X==="number"&&X!==-1)return Z?.substring(0,X);return Z}var Kv=($)=>{let Z=!1;return(...X)=>{if(Z)return;return Z=!0,$(...X)}};function r3($){let Z=$.prototype,X=Object.getPrototypeOf(Z);if(typeof X?.query==="function"&&typeof X?.execute==="function")return X;return Z}var DK0="@sentry/instrumentation-mysql2",PK0="auto.db.otel.mysql2",n3=[">=1.4.2 <4"];class a3 extends i8.InstrumentationBase{constructor($={}){super(DK0,f,$)}init(){let $;function Z(J){if(!$&&J.format)$=J.format}let X=(J)=>{if(i8.isWrapped(J.query))this._unwrap(J,"query");if(this._wrap(J,"query",this._patchQuery($)),i8.isWrapped(J.execute))this._unwrap(J,"execute");this._wrap(J,"execute",this._patchQuery($))},Q=(J)=>{this._unwrap(J,"query"),this._unwrap(J,"execute")};return[new i8.InstrumentationNodeModuleDefinition("mysql2",n3,(J)=>{return Z(J),J},()=>{},[new i("mysql2/promise.js",n3,(J)=>{return Z(J),J},()=>{}),new i("mysql2/lib/connection.js",n3,(J)=>{let Y=r3(J);return X(Y),J},(J)=>{if(J===void 0)return;let Y=r3(J);Q(Y)})])]}_patchQuery($){let Z=this;return(X)=>{return function(Q,J,Y){let W;if(Array.isArray(J))W=J;else if(arguments[2])W=[J];let K={...Jv(this.config),[eb]:Qv,[tb]:Yv(Q,$,W),[L]:PK0},z=b({name:Wv(Q),kind:c.CLIENT,attributes:K}),H=Kv((G)=>{if(G)z.setStatus({code:O,message:G.message});z.end()});if(arguments.length===1){if(typeof Q.onResult==="function")Z._wrap(Q,"onResult",Z._patchCallbackQuery(H));let G=X.apply(this,arguments);return G.once("error",(V)=>{H(V)}).once("result",()=>{H()}),G}if(typeof arguments[1]==="function")Z._wrap(arguments,1,Z._patchCallbackQuery(H));else if(typeof arguments[2]==="function")Z._wrap(arguments,2,Z._patchCallbackQuery(H));return X.apply(this,arguments)}}}_patchCallbackQuery($){return(Z)=>{return function(...X){return $(X[0]),Z(...X)}}}}var zv="Mysql2",Hv=y(zv,()=>new a3),LK0=()=>{return{name:zv,setupOnce(){Hv()}}},Gv=C(LK0);import*as QH from"node:diagnostics_channel";var OK0=["get","set","setex"],t3=["get","mget"],CK0=["set","setex"];function q5($,Z){return $.includes(Z.toLowerCase())}function e3($){if(q5(t3,$))return"cache.get";else if(q5(CK0,$))return"cache.put";else return}function kK0($,Z){return Z.some((X)=>$.startsWith(X))}function Fv($,Z){try{if(Z.length===0)return;let X=(J)=>{if(typeof J==="string"||typeof J==="number"||Buffer.isBuffer(J))return[J.toString()];else if(Array.isArray(J))return Vv(J.map((Y)=>X(Y)));else return[""]},Q=Z[0];if(q5(OK0,$)&&Q!=null)return X(Q);return Vv(Z.map((J)=>X(J)))}catch{return}}function Bv($,Z,X){if(!e3($))return!1;for(let Q of Z)if(kK0(Q,X))return!0;return!1}function wv($){let Z=(X)=>{try{if(Buffer.isBuffer(X))return X.byteLength;else if(typeof X==="string")return X.length;else if(typeof X==="number")return X.toString().length;else if(X===null||X===void 0)return 0;return JSON.stringify(X).length}catch{return}};return Array.isArray($)?$.reduce((X,Q)=>{let J=Z(Q);return typeof J==="number"?X!==void 0?X+J:J:X},0):Z($)}function Vv($){let Z=[],X=(Q)=>{Q.forEach((J)=>{if(Array.isArray(J))X(J);else Z.push(J)})};return X($),Z}var s8=N(r(),1);var MK0=[{regex:/^ECHO/i,args:0},{regex:/^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,args:1},{regex:/^(HSET|HMSET|LSET|LINSERT)/i,args:2},{regex:/^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,args:-1}],D5=($,Z)=>{if(Array.isArray(Z)&&Z.length){let X=MK0.find(({regex:J})=>J.test($))?.args??0,Q=X>=0?Z.slice(0,X):Z.slice();if(Z.length>Q.length)Q.push(`[${Z.length-X} other arguments]`);return`${$} ${Q.join(" ")}`}return $};var D9="db.connection_string",P9="db.statement",L9="db.system",O9="net.peer.name",C9="net.peer.port",k9="redis";var RK0="@sentry/instrumentation-ioredis",jv="auto.db.otel.redis",fK0=[">=2.0.0 <5.11.0"];function o8($,Z){if(Z)$.setStatus({code:O,message:Z.message});$.end()}class $H extends s8.InstrumentationBase{constructor($={}){super(RK0,f,$)}init(){return[new s8.InstrumentationNodeModuleDefinition("ioredis",fK0,($)=>{let Z=$[Symbol.toStringTag]==="Module"&&$.default?$.default:$;if(s8.isWrapped(Z.prototype.sendCommand))this._unwrap(Z.prototype,"sendCommand");if(this._wrap(Z.prototype,"sendCommand",this._patchSendCommand()),s8.isWrapped(Z.prototype.connect))this._unwrap(Z.prototype,"connect");return this._wrap(Z.prototype,"connect",this._patchConnection()),$},($)=>{if($===void 0)return;let Z=$[Symbol.toStringTag]==="Module"&&$.default?$.default:$;this._unwrap(Z.prototype,"sendCommand"),this._unwrap(Z.prototype,"connect")})]}_patchSendCommand(){let $=this;return(Z)=>{return function(...X){let Q=X[0];if(X.length<1||typeof Q!=="object"||!p())return Z.apply(this,X);let{host:J,port:Y}=this.options,W={[L9]:k9,[P9]:D5(Q.name,Q.args),[D9]:`redis://${J}:${Y}`,[O9]:J,[C9]:Y,[L]:jv},K=b({name:Q.name,kind:c.CLIENT,attributes:W});try{let z=Z.apply(this,X),H=Q.resolve;Q.resolve=function(V){$._callResponseHook(K,Q,V),o8(K,null),H(V)};let G=Q.reject;return Q.reject=function(V){o8(K,V),G(V)},z}catch(z){throw o8(K,z),z}}}}_patchConnection(){return($)=>{return function(...Z){if(!p())return $.apply(this,Z);let{host:X,port:Q}=this.options,J={[L9]:k9,[P9]:"connect",[D9]:`redis://${X}:${Q}`,[O9]:X,[C9]:Q,[L]:jv},Y=b({name:"connect",kind:c.CLIENT,attributes:J});try{let W=$.apply(this,Z);if(W instanceof Promise)return W.then((K)=>{return o8(Y,null),K},(K)=>{return o8(Y,K),Promise.reject(K)});return o8(Y,null),W}catch(W){throw o8(Y,W),W}}}}_callResponseHook($,Z,X){let{responseHook:Q}=this.getConfig();if(!Q)return;try{Q($,Z.name,Z.args,X)}catch{}}}var Y0=N(r(),1);var ZH="@sentry/instrumentation-redis",Dv="auto.db.otel.redis",P5=Symbol("opentelemetry.instrumentation.redis.open_spans"),Uv=Symbol("opentelemetry.instrumentation.redis.multi_command_options");function HQ($,Z){if(Z)$.setStatus({code:O,message:Z.message});$.end()}function Pv($,Z,X,Q,J){if(!$)return;try{$(Z,X,Q,J)}catch{}}function AK0($){if(typeof $!=="string"||!$)return;try{let Z=new URL($);return Z.searchParams.delete("user_pwd"),Z.username="",Z.password="",Z.href}catch(Z){a&&w.error("failed to sanitize redis connection url",Z)}return}function qv($){return{[L9]:k9,[O9]:$?.socket?.host,[C9]:$?.socket?.port,[D9]:AK0($?.url),[L]:Dv}}var Lv=class $ extends Y0.InstrumentationBase{constructor(Z={}){super(ZH,f,Z)}init(){return[new Y0.InstrumentationNodeModuleDefinition("redis",[">=2.6.0 <4"],(Z)=>{if(Y0.isWrapped(Z.RedisClient.prototype.internal_send_command))this._unwrap(Z.RedisClient.prototype,"internal_send_command");return this._wrap(Z.RedisClient.prototype,"internal_send_command",this._getPatchInternalSendCommand()),Z},(Z)=>{if(Z===void 0)return;this._unwrap(Z.RedisClient.prototype,"internal_send_command")})]}_getPatchInternalSendCommand(){let Z=this;return function(Q){return function(Y){if(arguments.length!==1||typeof Y!=="object")return Q.apply(this,arguments);let W={[L9]:k9,[P9]:D5(Y.command,Y.args),[L]:Dv};if(this.connection_options)W[O9]=this.connection_options.host,W[C9]=this.connection_options.port;if(this.address)W[D9]=`redis://${this.address}`;let K=b({name:`${$.COMPONENT}-${Y.command}`,kind:c.CLIENT,attributes:W}),z=arguments[0].callback;if(z){let H=p();arguments[0].callback=function(V,F){return Pv(Z.getConfig().responseHook,K,Y.command,Y.args,F),HQ(K,V),m(H??null,()=>z.apply(this,arguments))}}try{return Q.apply(this,arguments)}catch(H){throw HQ(K,H),H}}}}};Lv.COMPONENT="redis";var NK0=Lv,Ov=class $ extends Y0.InstrumentationBase{constructor(Z={}){super(ZH,f,Z)}init(){return[this._getInstrumentationNodeModuleDefinition("@redis/client"),this._getInstrumentationNodeModuleDefinition("@node-redis/client")]}_getInstrumentationNodeModuleDefinition(Z){let X=new i(`${Z}/dist/lib/commander.js`,["^1.0.0"],(Y,W)=>{let K=Y.transformCommandArguments;if(!K)return a&&w.error("internal instrumentation error, missing transformCommandArguments function"),Y;let z=W?.startsWith("1.0.")?"extendWithCommands":"attachCommands";if(Y0.isWrapped(Y?.[z]))this._unwrap(Y,z);return this._wrap(Y,z,this._getPatchExtendWithCommands(K)),Y},(Y)=>{if(Y0.isWrapped(Y?.extendWithCommands))this._unwrap(Y,"extendWithCommands");if(Y0.isWrapped(Y?.attachCommands))this._unwrap(Y,"attachCommands")}),Q=new i(`${Z}/dist/lib/client/multi-command.js`,["^1.0.0",">=5.0.0 <5.12.0"],(Y)=>{let W=Y?.default?.prototype;if(Y0.isWrapped(W?.exec))this._unwrap(W,"exec");if(this._wrap(W,"exec",this._getPatchMultiCommandsExec()),Y0.isWrapped(W?.execAsPipeline))this._unwrap(W,"execAsPipeline");if(this._wrap(W,"execAsPipeline",this._getPatchMultiCommandsExec()),Y0.isWrapped(W?.addCommand))this._unwrap(W,"addCommand");return this._wrap(W,"addCommand",this._getPatchMultiCommandsAddCommand()),Y},(Y)=>{let W=Y?.default?.prototype;if(Y0.isWrapped(W?.exec))this._unwrap(W,"exec");if(Y0.isWrapped(W?.execAsPipeline))this._unwrap(W,"execAsPipeline");if(Y0.isWrapped(W?.addCommand))this._unwrap(W,"addCommand")}),J=new i(`${Z}/dist/lib/client/index.js`,["^1.0.0",">=5.0.0 <5.12.0"],(Y)=>{let W=Y?.default?.prototype;if(W?.multi){if(Y0.isWrapped(W?.multi))this._unwrap(W,"multi");this._wrap(W,"multi",this._getPatchRedisClientMulti())}if(W?.MULTI){if(Y0.isWrapped(W?.MULTI))this._unwrap(W,"MULTI");this._wrap(W,"MULTI",this._getPatchRedisClientMulti())}if(Y0.isWrapped(W?.sendCommand))this._unwrap(W,"sendCommand");if(this._wrap(W,"sendCommand",this._getPatchRedisClientSendCommand()),Y0.isWrapped(W?.connect))this._unwrap(W,"connect");return this._wrap(W,"connect",this._getPatchedClientConnect()),Y},(Y)=>{let W=Y?.default?.prototype;if(Y0.isWrapped(W?.multi))this._unwrap(W,"multi");if(Y0.isWrapped(W?.MULTI))this._unwrap(W,"MULTI");if(Y0.isWrapped(W?.sendCommand))this._unwrap(W,"sendCommand");if(Y0.isWrapped(W?.connect))this._unwrap(W,"connect")});return new Y0.InstrumentationNodeModuleDefinition(Z,["^1.0.0",">=5.0.0 <5.12.0"],(Y)=>Y,()=>{},[X,Q,J])}_getPatchExtendWithCommands(Z){let X=this;return function(J){return function(W){if(W?.BaseClass?.name!=="RedisClient")return J.apply(this,arguments);let K=W.executor;return W.executor=function(z,H){let G=Z(z,H).args;return X._traceClientCommand(K,this,arguments,G)},J.apply(this,arguments)}}}_getPatchMultiCommandsExec(){let Z=this;return function(Q){return function(){let Y=Q.apply(this,arguments);if(typeof Y?.then!=="function")return a&&w.error("non-promise result when patching exec/execAsPipeline"),Y;return Y.then((W)=>{let K=this[P5];return Z._endSpansWithRedisReplies(K,W),W}).catch((W)=>{let K=this[P5];if(!K)a&&w.error("cannot find open spans to end for multi/pipeline");else{let z=W.constructor.name==="MultiErrorReply"?W.replies:Array(K.length).fill(W);Z._endSpansWithRedisReplies(K,z)}return Promise.reject(W)})}}}_getPatchMultiCommandsAddCommand(){let Z=this;return function(Q){return function(Y){return Z._traceClientCommand(Q,this,arguments,Y)}}}_getPatchRedisClientMulti(){return function(X){return function(){let J=X.apply(this,arguments);return J[Uv]=this.options,J}}}_getPatchRedisClientSendCommand(){let Z=this;return function(Q){return function(Y){return Z._traceClientCommand(Q,this,arguments,Y)}}}_getPatchedClientConnect(){return function(X){return function(){let J=qv(this.options),Y=b({name:`${$.COMPONENT}-connect`,kind:c.CLIENT,attributes:J});return m(Y,()=>X.apply(this)).then((K)=>{return Y.end(),K},(K)=>{return HQ(Y,K),Promise.reject(K)})}}}_traceClientCommand(Z,X,Q,J){let Y=X.options||X[Uv],W=J[0],K=J.slice(1),z=qv(Y),H=D5(W,K);if(H!=null)z[P9]=H;let G=b({name:`${$.COMPONENT}-${W}`,kind:c.CLIENT,attributes:z}),V=m(G,()=>Z.apply(X,Q));if(V instanceof Promise)V.then((F)=>{this._endSpanWithResponse(G,W,K,F,void 0)},(F)=>{this._endSpanWithResponse(G,W,K,null,F)});else{let F=V;F[P5]=F[P5]||[],F[P5].push({span:G,commandName:W,commandArgs:K})}return V}_endSpansWithRedisReplies(Z,X){if(!Z){a&&w.error("cannot find open spans to end for redis multi/pipeline");return}if(X.length!==Z.length){a&&w.error("number of multi command spans does not match response from redis");return}for(let Q=0;Q{let J=Fv(Z,X),Y=e3(Z);if(!J||!Y||!L5.cachePrefixes||!Bv(Z,J,L5.cachePrefixes))return;let W=v($).data,K=W["net.peer.name"]??W["server.address"],z=W["net.peer.port"]??W["server.port"];if(z&&K)$.setAttributes({"network.peer.address":K,"network.peer.port":z});let H=wv(Q);if(H)$.setAttribute(OJ,H);if(q5(t3,Z)&&H!==void 0)$.setAttribute(PJ,H>0);$.setAttributes({[I]:Y,[LJ]:J});let G=J.join(", ");$.updateName(L5.maxCacheKeyLength?t6(G,L5.maxCacheKeyLength):G)},yK0=y(`${GQ}.IORedis`,()=>{return new $H({responseHook:JH})}),IK0=y(`${GQ}.Redis`,()=>{return new XH({responseHook:JH})}),Cv=Object.assign(()=>{if(yK0(),IK0(),QH.tracingChannel)M7(()=>{q3(QH.tracingChannel,JH)})},{id:GQ}),TK0=($={})=>{return{name:GQ,setupOnce(){L5=$,Cv()}}},kv=C(TK0);var b1=N(r(),1);var r8=(($)=>{return $.QUERY_PREFIX="pg.query",$.CONNECT="pg.connect",$.POOL_CONNECT="pg-pool.connect",$})(r8||{});var O5=(($)=>{return $.PG_PLAN="db.postgresql.plan",$.IDLE_TIMEOUT_MILLIS="db.postgresql.idle.timeout.millis",$.MAX_CLIENT="db.postgresql.max.client",$})(O5||{});var YH="db.connection_string",WH="db.name",Mv="db.statement",KH="db.system",zH="db.user",HH="net.peer.name",GH="net.peer.port",VH="postgresql";var EK0="auto.db.otel.postgres";function hK0($,Z){if(!Z)return r8.QUERY_PREFIX;let X=typeof Z.name==="string"&&Z.name?Z.name:bK0(Z.text);return`${r8.QUERY_PREFIX}:${X}${$?` ${$}`:""}`}function bK0($){let Z=$.trim(),X=Z.indexOf(" "),Q=X===-1?Z:Z.slice(0,X);return Q=Q.toUpperCase(),Q.endsWith(";")?Q.slice(0,-1):Q}function vK0($){try{let Z=new URL($);return Z.username="",Z.password="",Z.toString()}catch{return"postgresql://localhost:5432/"}}function Rv($){if("connectionString"in $&&$.connectionString)return vK0($.connectionString);let Z=$.host||"localhost",X=$.port||5432,Q=$.database||"";return`postgresql://${Z}:${X}/${Q}`}function fv($){if(Number.isInteger($))return $;return}function FH($){return{[KH]:VH,[WH]:$.database,[YH]:Rv($),[zH]:$.user,[HH]:$.host,[GH]:fv($.port)}}function Av($){let Z;try{Z=$.connectionString?new URL($.connectionString):void 0}catch{Z=void 0}return{[O5.IDLE_TIMEOUT_MILLIS]:$.idleTimeoutMillis,[O5.MAX_CLIENT]:$.maxClient,[KH]:VH,[WH]:Z?.pathname.slice(1)??$.database,[YH]:Rv($),[HH]:Z?.hostname??$.host,[GH]:Number(Z?.port)||fv($.port),[zH]:Z?.username??$.user}}function VQ(){return p()===void 0}function Nv($){let{connectionParameters:Z}=this,X=Z.database,Q=hK0(X,$),J=b({name:Q,kind:c.CLIENT,attributes:{...FH(Z),[L]:EK0}});if(!$)return J;if($.text)J.setAttribute(Mv,$.text);if(typeof $.name==="string")J.setAttribute(O5.PG_PLAN,$.name);return J}function BH($,Z){return function(Q,J){if(Q)$.setStatus({code:O,message:Q.message});$.end(),Z.call(this,Q,J)}}function _v($,Z){return function(Q,J,Y){if(Q)$.setStatus({code:O,message:Q.message});$.end(),Z.call(this,Q,J,Y)}}function yv($,Z){return function(...Q){let J=Q[0];if(J instanceof Error)$.setStatus({code:O,message:J.message});$.end(),Z.apply(this,Q)}}function FQ($){return typeof $==="object"&&$!==null&&"message"in $?String($.message):void 0}function Iv($){return typeof $==="object"&&typeof $?.text==="string"}var SK0="@sentry/instrumentation-pg";function M9($){return $[Symbol.toStringTag]==="Module"?$.default:$}function BQ($,Z){return function(...X){return m($,()=>Z.apply(this,X))}}class wH extends b1.InstrumentationBase{constructor($={}){super(SK0,f,$)}init(){let $=[">=8.0.3 <9"],Z=[">=2.0.0 <4"],X=new i("pg/lib/native/client.js",$,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),Q=new i("pg/lib/client.js",$,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),J=new b1.InstrumentationNodeModuleDefinition("pg",$,(W)=>{let K=M9(W);return this._patchPgClient(K.Client),W},(W)=>{let K=M9(W);return this._unpatchPgClient(K.Client),W},[Q,X]),Y=new b1.InstrumentationNodeModuleDefinition("pg-pool",Z,(W)=>{let K=M9(W);if(b1.isWrapped(K.prototype.connect))this._unwrap(K.prototype,"connect");return this._wrap(K.prototype,"connect",this._getPoolConnectPatch()),K},(W)=>{let K=M9(W);if(b1.isWrapped(K.prototype.connect))this._unwrap(K.prototype,"connect")});return[J,Y]}_patchPgClient($){if(!$)return;let Z=M9($);if(b1.isWrapped(Z.prototype.query))this._unwrap(Z.prototype,"query");if(b1.isWrapped(Z.prototype.connect))this._unwrap(Z.prototype,"connect");return this._wrap(Z.prototype,"query",this._getClientQueryPatch()),this._wrap(Z.prototype,"connect",this._getClientConnectPatch()),$}_unpatchPgClient($){let Z=M9($);if(b1.isWrapped(Z.prototype.query))this._unwrap(Z.prototype,"query");if(b1.isWrapped(Z.prototype.connect))this._unwrap(Z.prototype,"connect");return $}_getClientConnectPatch(){let $=this;return(Z)=>{return function(Q){if(VQ()||$.getConfig().ignoreConnectSpans)return Z.call(this,Q);let J=b({name:r8.CONNECT,kind:c.CLIENT,attributes:FH(this)}),Y=Q;if(Y){let K=p();if(Y=yv(J,Y),K)Y=BQ(K,Y)}let W=m(J,()=>{return Z.call(this,Y)});return Tv(J,W)}}}_getClientQueryPatch(){return($)=>{return this._diag.debug("Patching pg.Client.prototype.query"),function(...X){if(VQ())return $.apply(this,X);let Q=X[0],J=typeof Q==="string",Y=Iv(Q),W=J?{text:Q,values:Array.isArray(X[1])?X[1]:void 0}:Y?{...Q,name:Q.name,text:Q.text,values:Q.values??(Array.isArray(X[1])?X[1]:void 0)}:void 0,K=Nv.call(this,W);if(X.length>0){let H=p();if(typeof X[X.length-1]==="function"){if(X[X.length-1]=BH(K,X[X.length-1]),H)X[X.length-1]=BQ(H,X[X.length-1])}else if(typeof W?.callback==="function"){let G=BH(K,W.callback);if(H)G=BQ(H,G);X[0].callback=G}}let z;try{z=$.apply(this,X)}catch(H){throw K.setStatus({code:O,message:FQ(H)}),K.end(),H}if(z instanceof Promise)return z.then((H)=>{return K.end(),H}).catch((H)=>{return K.setStatus({code:O,message:FQ(H)}),K.end(),Promise.reject(H)});return z}}}_getPoolConnectPatch(){let $=this;return(Z)=>{return function(Q){if(VQ()||$.getConfig().ignoreConnectSpans)return Z.call(this,Q);let J=b({name:r8.POOL_CONNECT,kind:c.CLIENT,attributes:Av(this.options)}),Y=Q;if(Y){let K=p();if(Y=_v(J,Y),K)Y=BQ(K,Y)}let W=m(J,()=>{return Z.call(this,Y)});return Tv(J,W)}}}}function Tv($,Z){if(!(Z instanceof Promise))return Z;return Z.then((Q)=>{return $.end(),Q}).catch((Q)=>{return $.setStatus({code:O,message:FQ(Q)}),$.end(),Promise.reject(Q)})}var Ev="Postgres",hv=y(Ev,wH,($)=>({ignoreConnectSpans:$?.ignoreConnectSpans??!1})),xK0=($)=>{return{name:Ev,setupOnce(){hv($)}}},bv=C(xK0);var R9=N(S(),1),f9=N(r(),1);var t1=N(P1(),1);var jH="PostgresJs",vv=[">=3.0.0 <4"],gK0=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,mK0=Symbol.for("sentry.query.from.instrumented.sql"),Sv=y(jH,($)=>new xv({requireParentSpan:$?.requireParentSpan??!0,requestHook:$?.requestHook}));class xv extends f9.InstrumentationBase{constructor($){super("sentry-postgres-js",f,$)}init(){let $=new f9.InstrumentationNodeModuleDefinition("postgres",vv,(Z)=>{try{return this._patchPostgres(Z)}catch(X){return a&&w.error("Failed to patch postgres module:",X),Z}},(Z)=>Z);return["src","cf/src","cjs/src"].forEach((Z)=>{$.files.push(new i(`postgres/${Z}/query.js`,vv,this._patchQueryPrototype.bind(this),this._unpatchQueryPrototype.bind(this)))}),$}_patchPostgres($){let Z=typeof $==="function",X=Z?$:$.default;if(typeof X!=="function")return a&&w.warn("postgres module does not export a function. Skipping instrumentation."),$;let Q=this,J=function(...Y){let W=Reflect.construct(X,Y);if(!W||typeof W!=="function")return a&&w.warn("postgres() did not return a valid instance"),W;let K=Q.getConfig();return sY(W,{requireParentSpan:K.requireParentSpan,requestHook:K.requestHook})};Object.setPrototypeOf(J,X),Object.setPrototypeOf(J.prototype,X.prototype);for(let Y of Object.getOwnPropertyNames(X))if(!["length","name","prototype"].includes(Y)){let W=Object.getOwnPropertyDescriptor(X,Y);if(W)Object.defineProperty(J,Y,W)}if(Z)return J;else return RZ($,"default",J),$}_shouldCreateSpans(){let $=this.getConfig();return R9.trace.getSpan(R9.context.active())!==void 0||!$.requireParentSpan}_setOperationName($,Z,X){if(X){$.setAttribute(t1.ATTR_DB_OPERATION_NAME,X);return}let Q=Z?.match(gK0);if(Q?.[1])$.setAttribute(t1.ATTR_DB_OPERATION_NAME,Q[1].toUpperCase())}_reconstructQuery($){if(!$?.length)return;if($.length===1)return $[0]||void 0;return $.reduce((Z,X,Q)=>Q===0?X:`${Z}$${Q}${X}`,"")}_sanitizeSqlQuery($){if(!$)return"Unknown SQL Query";return $.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{z3(W,"auto.db.postgresjs"),W.setAttributes({[t1.ATTR_DB_SYSTEM_NAME]:"postgres",[t1.ATTR_DB_QUERY_TEXT]:Y});let K=Z.getConfig(),{requestHook:z}=K;if(z)f9.safeExecuteInTheMiddle(()=>z(W,Y,void 0),(V)=>{if(V)W.setAttribute("sentry.hook.error","requestHook failed"),a&&w.error(`Error in requestHook for ${jH} integration:`,V)},!0);let H=this.resolve;this.resolve=new Proxy(H,{apply:(V,F,B)=>{try{Z._setOperationName(W,Y,B?.[0]?.command),W.end()}catch(j){a&&w.error("Error ending span in resolve callback:",j)}return Reflect.apply(V,F,B)}});let G=this.reject;this.reject=new Proxy(G,{apply:(V,F,B)=>{try{W.setStatus({code:O,message:B?.[0]?.message||"unknown_error"}),W.setAttribute(t1.ATTR_DB_RESPONSE_STATUS_CODE,B?.[0]?.code||"unknown"),W.setAttribute(t1.ATTR_ERROR_TYPE,B?.[0]?.name||"unknown"),Z._setOperationName(W,Y),W.end()}catch(j){a&&w.error("Error ending span in reject callback:",j)}return Reflect.apply(V,F,B)}});try{return X.apply(this,Q)}catch(V){throw W.setStatus({code:O,message:V instanceof Error?V.message:"unknown_error"}),W.end(),V}})},$.Query.prototype.handle.__sentry_original__=X,$}_unpatchQueryPrototype($){if($.Query.prototype.handle.__sentry_original__)$.Query.prototype.handle=$.Query.prototype.handle.__sentry_original__;return $}}var dK0=($)=>{return{name:jH,setupOnce(){Sv($)}}},gv=C(dK0);var v1=N(S(),1);var wQ=N(r(),1);var uK0=process.env.PRISMA_SHOW_ALL_TRACES==="true",cK0="00-10-10-00",lK0="auto.db.otel.prisma";function dv($,Z){let X={...Z,[L]:lK0};if($==="prisma:engine:db_query"&&X["db.system"]==null)X["db.system"]="prisma";return X}function uv($,Z){let X=Z["db.query.text"];if(($==="prisma:engine:db_query"||$==="prisma:client:db_query")&&typeof X==="string")return X;return $}class UH{constructor({ignoreSpanTypes:$}){this.ignoreSpanTypes=$}isEnabled(){return!0}getTraceParent($){let Z=($??p())?.spanContext();if(Z)return`00-${Z.traceId}-${Z.spanId}-0${Z.traceFlags}`;return cK0}dispatchEngineSpans($){let Z=new Map,X=$.filter((Q)=>Q.parentId===null);for(let Q of X)cv(Q,$,Z,this.ignoreSpanTypes)}getActiveContext(){return p()}runInChildSpan($,Z){let X=typeof $==="string"?{name:$}:$;if(X.internal&&!uK0)return Z();let Q=`prisma:client:${X.name}`;if(lv(Q,this.ignoreSpanTypes))return Z();let J=p(),Y=dv(Q,X.attributes),W={name:uv(Q,Y),attributes:Y,kind:X.kind,links:X.links,startTime:X.startTime,parentSpan:J};if(X.active===!1){let K=b(W);return mv(K,()=>Z(K,J))}return n(W,(K)=>mv(K,()=>Z(K,J)))}}function cv($,Z,X,Q){if(lv($.name,Q))return;let J=dv($.name,$.attributes);n({name:uv($.name,J),attributes:J,kind:$.kind==="client"?c.CLIENT:c.INTERNAL,startTime:$.startTime},(Y)=>{if(X.set($.id,Y.spanContext().spanId),$.links)Y.addLinks($.links.flatMap((K)=>{let z=X.get(K);if(!z)return[];return{context:{spanId:z,traceId:Y.spanContext().traceId,traceFlags:Y.spanContext().traceFlags}}}));let W=Z.filter((K)=>K.parentId===$.id);for(let K of W)cv(K,Z,X,Q);Y.end($.endTime)})}function mv($,Z){let X;try{X=Z()}catch(Q){throw $.end(),Q}if(pK0(X))return X.then((Q)=>{return $.end(),Q},(Q)=>{throw $.end(),Q});return $.end(),X}function pK0($){return $!=null&&typeof $.then==="function"}function lv($,Z){return Z.some((X)=>typeof X==="string"?X===$:X.test($))}var pv=f,iv="@sentry/instrumentation-prisma",ov="@prisma/client",sv=[">=5.0.0"];var A9=globalThis;function rv(){let $=A9.V7_PRISMA_INSTRUMENTATION;if($?.helper)return $.helper;return A9.PRISMA_INSTRUMENTATION?.helper}function nv($){let Z={helper:$};A9.V7_PRISMA_INSTRUMENTATION=Z,A9.PRISMA_INSTRUMENTATION=Z}function av(){A9.V7_PRISMA_INSTRUMENTATION=void 0,A9.PRISMA_INSTRUMENTATION=void 0}class qH extends wQ.InstrumentationBase{constructor($={}){super(iv,pv,$)}init(){return[new wQ.InstrumentationNodeModuleDefinition(ov,sv)]}enable(){let $=this._config;nv(new UH({ignoreSpanTypes:$.ignoreSpanTypes??[]}))}disable(){av()}isEnabled(){return rv()!==void 0}}var tv="Prisma";function iK0($){return!!$&&typeof $==="object"&&"dispatchEngineSpans"in $}function ev(){let $=globalThis.PRISMA_INSTRUMENTATION;return $&&typeof $==="object"&&"helper"in $?$.helper:void 0}class $S extends qH{constructor($){super($?.instrumentationConfig)}enable(){super.enable();let $=ev();if(iK0($))$.createEngineSpan=(Z)=>{let X=v1.trace.getTracer("prismaV5Compatibility"),Q=X._idGenerator;if(!Q){D0(()=>{console.warn("[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!")});return}try{Z.spans.forEach((J)=>{let Y=J.kind==="client"?v1.SpanKind.CLIENT:v1.SpanKind.INTERNAL,W=J.parent_span_id,K=J.span_id,z=J.trace_id,H=J.links?.map((V)=>{return{context:{traceId:V.trace_id,spanId:V.span_id,traceFlags:v1.TraceFlags.SAMPLED}}}),G=v1.trace.setSpanContext(v1.context.active(),{traceId:z,spanId:W,traceFlags:v1.TraceFlags.SAMPLED});v1.context.with(G,()=>{let V={generateTraceId:()=>{return z},generateSpanId:()=>{return K}};X._idGenerator=V,X.startSpan(J.name,{kind:Y,links:H,startTime:J.start_time,attributes:J.attributes}).end(J.end_time),X._idGenerator=Q})})}finally{X._idGenerator=Q}}}}var oK0=y(tv,($)=>{return new $S($)}),ZS=C(($)=>{return{name:tv,setupOnce(){oK0($)},setup(Z){if(!ev())return;Z.on("spanStart",(X)=>{let Q=v(X);if(Q.description?.startsWith("prisma:"))X.setAttribute(L,"auto.db.otel.prisma");if((Q.description==="prisma:engine:db_query"||Q.description==="prisma:client:db_query")&&Q.data["db.query.text"])X.updateName(Q.data["db.query.text"]);if(Q.description==="prisma:engine:db_query"&&!Q.data["db.system"])X.setAttribute("db.system","prisma")})}}});var N9=N(S(),1);var n8=N(r(),1);var O1=(($)=>{return $.HAPI_TYPE="hapi.type",$.PLUGIN_NAME="hapi.plugin.name",$.EXT_TYPE="server.ext.type",$})(O1||{});var XS="@hapi/hapi",C5=Symbol("hapi-handler-patched"),k5={ROUTER:"router",PLUGIN:"plugin",EXT:"server.ext"},QS=new Set(["onPreAuth","onCredentials","onPostAuth","onPreHandler","onPostHandler","onPreResponse","onRequest"]);var YS=N(P1(),1);var JS="http.method";function WS($){if($.name)return $.name;else return $.pkg.name}var jQ=($)=>{return typeof $==="string"&&QS.has($)},KS=($)=>{let Z=$?.type;return Z!==void 0&&jQ(Z)},zS=($)=>{return Array.isArray($)&&$.length<=3&&jQ($[0])&&typeof $[1]==="function"},HS=($)=>{return!Array.isArray($)},GS=($,Z)=>{let X={[YS.ATTR_HTTP_ROUTE]:$.path,[JS]:$.method},Q;if(Z)X[O1.HAPI_TYPE]=k5.PLUGIN,X[O1.PLUGIN_NAME]=Z,Q=`${Z}: route - ${$.path}`;else X[O1.HAPI_TYPE]=k5.ROUTER,Q=`route - ${$.path}`;return{attributes:X,name:Q}},VS=($,Z,X)=>{let Q=`ext - ${$}`;if(X&&X!=="method")Q=`ext - ${$} - ${X}`;if(Z)return{attributes:{[O1.EXT_TYPE]:$,[O1.HAPI_TYPE]:k5.EXT,[O1.PLUGIN_NAME]:Z},name:`${Z}: ${Q}`};return{attributes:{[O1.EXT_TYPE]:$,[O1.HAPI_TYPE]:k5.EXT},name:Q}},DH=($)=>{if("plugin"in $){if("plugin"in $.plugin)return $.plugin.plugin;return $.plugin}return $};var sK0="@sentry/instrumentation-hapi";class PH extends n8.InstrumentationBase{constructor($={}){super(sK0,f,$)}init(){return new n8.InstrumentationNodeModuleDefinition(XS,[">=17.0.0 <22"],($)=>{let Z=$[Symbol.toStringTag]==="Module"?$.default:$;if(!n8.isWrapped(Z.server))this._wrap(Z,"server",this._getServerPatch.bind(this));if(!n8.isWrapped(Z.Server))this._wrap(Z,"Server",this._getServerPatch.bind(this));return Z},($)=>{let Z=$[Symbol.toStringTag]==="Module"?$.default:$;this._massUnwrap([Z],["server","Server"])})}_getServerPatch($){let Z=this,X=this;return function(J){let Y=$.apply(this,[J]);return X._wrap(Y,"route",(W)=>{return Z._getServerRoutePatch.bind(Z)(W)}),X._wrap(Y,"ext",(W)=>{return Z._getServerExtPatch.bind(Z)(W)}),X._wrap(Y,"register",Z._getServerRegisterPatch.bind(Z)),Y}}_getServerRegisterPatch($){let Z=this;return function(Q,J){if(Array.isArray(Q))for(let Y of Q){let W=DH(Y);Z._wrapRegisterHandler(W)}else{let Y=DH(Q);Z._wrapRegisterHandler(Y)}return $.apply(this,[Q,J])}}_getServerExtPatch($,Z){let X=this;return function(...J){if(Array.isArray(J[0])){let Y=J[0];for(let W=0;W{return Z._getServerRoutePatch.bind(Z)(z,X)}),J._wrap(W,"ext",(z)=>{return Z._getServerExtPatch.bind(Z)(z,X)}),Q.call(this,W,K)};$.register=Y}_wrapExtMethods($,Z,X){let Q=this;if($ instanceof Array){for(let J=0;J<$.length;J++)$[J]=Q._wrapExtMethods($[J],Z);return $}else if(HS($)){if($[C5]===!0)return $;return $[C5]=!0,function(...Y){if(N9.trace.getSpan(N9.context.active())===void 0)return $.apply(this,Y);let W=VS(Z,X,$.name);return $0({name:W.name,op:`${W.attributes[O1.HAPI_TYPE]}.hapi`,attributes:{...W.attributes,[L]:"auto.http.otel.hapi"}},()=>$.apply(void 0,Y))}}return $}_wrapRouteHandler($,Z){if($[C5]===!0)return $;$[C5]=!0;let X=(Q)=>{return function(...J){if(N9.trace.getSpan(N9.context.active())===void 0)return Q.call(this,...J);U6($.path);let Y=GS($,Z);return $0({name:Y.name,op:`${Y.attributes[O1.HAPI_TYPE]}.hapi`,attributes:{...Y.attributes,[L]:"auto.http.otel.hapi"}},()=>Q.call(this,...J))}};if(typeof $.handler==="function")$.handler=X($.handler);else if(typeof $.options==="function"){let Q=$.options;$.options=function(J){let Y=Q(J);if(typeof Y.handler==="function")Y.handler=X(Y.handler);return Y}}else if(typeof $.options?.handler==="function")$.options.handler=X($.options.handler);return $}}var FS="Hapi",BS=y(FS,()=>new PH),rK0=()=>{return{name:FS,setupOnce(){BS()}}},wS=C(rK0);var qQ=N(P1(),1);var v$={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},M5={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"};var a8=N(S(),1),UQ=N(r(),1);var nK0="@sentry/instrumentation-hono",aK0="0.0.1";class LH extends UQ.InstrumentationBase{constructor($={}){super(nK0,aK0,$)}init(){return[new UQ.InstrumentationNodeModuleDefinition("hono",[">=4.0.0 <5"],($)=>this._patch($))]}_patch($){let Z=this;class X extends $.Hono{constructor(...Q){super(...Q);Z._wrap(this,"get",Z._patchHandler()),Z._wrap(this,"post",Z._patchHandler()),Z._wrap(this,"put",Z._patchHandler()),Z._wrap(this,"delete",Z._patchHandler()),Z._wrap(this,"options",Z._patchHandler()),Z._wrap(this,"patch",Z._patchHandler()),Z._wrap(this,"all",Z._patchHandler()),Z._wrap(this,"on",Z._patchOnHandler()),Z._wrap(this,"use",Z._patchMiddlewareHandler())}}try{$.Hono=X}catch{return{...$,Hono:X}}return $}_patchHandler(){let $=this;return function(Z){return function(...Q){if(typeof Q[0]==="string"){let J=Q[0];if(Q.length===1)return Z.apply(this,[J]);let Y=Q.slice(1);return Z.apply(this,[J,...Y.map((W)=>$._wrapHandler(W))])}return Z.apply(this,Q.map((J)=>$._wrapHandler(J)))}}}_patchOnHandler(){let $=this;return function(Z){return function(...Q){let J=Q.slice(2);return Z.apply(this,[...Q.slice(0,2),...J.map((Y)=>$._wrapHandler(Y))])}}}_patchMiddlewareHandler(){let $=this;return function(Z){return function(...Q){if(typeof Q[0]==="string"){let J=Q[0];if(Q.length===1)return Z.apply(this,[J]);let Y=Q.slice(1);return Z.apply(this,[J,...Y.map((W)=>$._wrapHandler(W))])}return Z.apply(this,Q.map((J)=>$._wrapHandler(J)))}}}_wrapHandler($){let Z=this;return function(X,Q){if(!Z.isEnabled())return $.apply(this,[X,Q]);let J=X.req.path,Y=Z.tracer.startSpan(J);return a8.context.with(a8.trace.setSpan(a8.context.active(),Y),()=>{return Z._safeExecute(()=>{let W=$.apply(this,[X,Q]);if(I0(W))return W.then((K)=>{let z=Z._determineHandlerType(K);return Y.setAttributes({[v$.HONO_TYPE]:z,[v$.HONO_NAME]:z===M5.REQUEST_HANDLER?J:$.name||"anonymous"}),Z.getConfig().responseHook?.(Y),K});else{let K=Z._determineHandlerType(W);return Y.setAttributes({[v$.HONO_TYPE]:K,[v$.HONO_NAME]:K===M5.REQUEST_HANDLER?J:$.name||"anonymous"}),Z.getConfig().responseHook?.(Y),W}},()=>Y.end(),(W)=>{Z._handleError(Y,W),Y.end()})})}}_safeExecute($,Z,X){try{let Q=$();if(I0(Q))Q.then(()=>Z(),(J)=>X(J));else Z();return Q}catch(Q){throw X(Q),Q}}_determineHandlerType($){return $===void 0?M5.MIDDLEWARE:M5.REQUEST_HANDLER}_handleError($,Z){if(Z instanceof Error)$.setStatus({code:a8.SpanStatusCode.ERROR,message:Z.message}),$.recordException(Z)}}var jS="Hono";function tK0($){let Z=v($).data,X=Z[v$.HONO_TYPE];if(Z[I]||!X)return;$.setAttributes({[L]:"auto.http.otel.hono",[I]:`${X}.hono`});let Q=Z[v$.HONO_NAME];if(typeof Q==="string")$.updateName(Q);if(g()===V1()){a&&w.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let J=Z[qQ.ATTR_HTTP_ROUTE],Y=Z[qQ.ATTR_HTTP_REQUEST_METHOD];if(typeof J==="string"&&typeof Y==="string")g().setTransactionName(`${Y} ${J}`)}var US=y(jS,()=>new LH({responseHook:($)=>{tK0($)}})),eK0=()=>{return{name:jS,setupOnce(){US()}}},qS=C(eK0);var _9=N(S(),1),e8=N(r(),1);var t8=(($)=>{return $.ROUTER="router",$.MIDDLEWARE="middleware",$})(t8||{});var OS=N(P1(),1);var S$=(($)=>{return $.KOA_TYPE="koa.type",$.KOA_NAME="koa.name",$})(S$||{});var DS=N(P1(),1),PS=($,Z,X,Q)=>{if(X)return{attributes:{[S$.KOA_NAME]:Q?.toString(),[S$.KOA_TYPE]:t8.ROUTER,[DS.ATTR_HTTP_ROUTE]:Q?.toString()},name:$._matchedRouteName||`router - ${Q}`};else return{attributes:{[S$.KOA_NAME]:Z.name??"middleware",[S$.KOA_TYPE]:t8.MIDDLEWARE},name:`middleware - ${Z.name}`}},LS=($,Z)=>{return!!(Array.isArray(Z?.ignoreLayersType)&&Z?.ignoreLayersType?.includes($))};var OH=Symbol("koa-layer-patched");var $z0="@sentry/instrumentation-koa";class CH extends e8.InstrumentationBase{constructor($={}){super($z0,f,$)}init(){return new e8.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],($)=>{let Z=$[Symbol.toStringTag]==="Module"?$.default:$;if(Z==null)return Z;if(e8.isWrapped(Z.prototype.use))this._unwrap(Z.prototype,"use");return this._wrap(Z.prototype,"use",this._getKoaUsePatch.bind(this)),$},($)=>{let Z=$[Symbol.toStringTag]==="Module"?$.default:$;if(Z&&e8.isWrapped(Z.prototype.use))this._unwrap(Z.prototype,"use")})}_getKoaUsePatch($){let Z=this._patchRouterDispatch.bind(this),X=this._patchLayer.bind(this);return function(J){let Y=J.router?Z(J):X(J,!1);return $.apply(this,[Y])}}_patchRouterDispatch($){let X=$.router?.stack??[];for(let Q of X){let{path:J,stack:Y}=Q;for(let W=0;W{if(_9.trace.getSpan(_9.context.active())===void 0)return $(J,Y);let K=PS(J,$,Z,X);if(J._matchedRoute)U6(J._matchedRoute.toString());let z=K.attributes[S$.KOA_NAME],H=typeof z==="string"?z||"< unknown >":K.name;return $0({name:H,op:`${Q}.koa`,attributes:{...K.attributes,[L]:"auto.http.otel.koa"}},()=>{let G=K.attributes[OS.ATTR_HTTP_ROUTE];if(g()===V1())a&&w.warn("Isolation scope is default isolation scope - skipping setting transactionName");else if(G){let V=J.request?.method?.toUpperCase()||"GET";g().setTransactionName(`${V} ${G}`)}return $(J,Y)})}}}var CS="Koa",kS=y(CS,CH,($={})=>{return{ignoreLayersType:$.ignoreLayersType}}),Zz0=($={})=>{return{name:CS,setupOnce(){kS($)}}},MS=C(Zz0);var DQ=(($)=>{return $.CONNECT_TYPE="connect.type",$.CONNECT_NAME="connect.name",$})(DQ||{}),PQ=(($)=>{return $.MIDDLEWARE="middleware",$.REQUEST_HANDLER="request_handler",$})(PQ||{});var $7=N(r(),1),NS=N(P1(),1);var r6=Symbol("opentelemetry.instrumentation-connect.request-route-stack");var RS=($)=>{if(Array.isArray($[r6])===!1)Object.defineProperty($,r6,{enumerable:!1,value:[]});$[r6].push("/");let Z=$[r6].length;return()=>{if(Z===$[r6].length)$[r6].pop();else a&&w.warn("Connect: Trying to pop the stack multiple time")}},fS=($,Z)=>{if(Z)$[r6].splice(-1,1,Z)},AS=($)=>{return $[r6].reduce((Z,X)=>Z.replace(/\/+$/,"")+X)};var Xz0="@sentry/instrumentation-connect",Qz0="anonymous";class kH extends $7.InstrumentationBase{constructor($={}){super(Xz0,f,$)}init(){return[new $7.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],($)=>{return this._patchConstructor($)})]}_patchApp($){if(!$7.isWrapped($.use))this._wrap($,"use",this._patchUse.bind(this));if(!$7.isWrapped($.handle))this._wrap($,"handle",this._patchHandle.bind(this))}_patchConstructor($){let Z=this._patchApp.bind(this);return function(...X){let Q=Reflect.apply($,this,X);return Z(Q),Q}}_patchNext($,Z,X){return function(J){if(k1(J))Z.setStatus({code:O,message:"internal_error"});let Y=$.apply(this,[J]);return X(),Y}}_startSpan($,Z){let X=$?PQ.REQUEST_HANDLER:PQ.MIDDLEWARE,Q=$||Z.name||Qz0;return b({name:Q,op:`${X}.connect`,attributes:{[L]:"auto.http.otel.connect",[NS.ATTR_HTTP_ROUTE]:$.length>0?$:"/",[DQ.CONNECT_TYPE]:X,[DQ.CONNECT_NAME]:Q}})}_patchMiddleware($,Z){let X=this.isEnabled.bind(this),Q=this._startSpan.bind(this),J=this._patchNext.bind(this),Y=Z.length===4;function W(){if(!X())return Reflect.apply(Z,this,arguments);let[K,z,H]=Y?[1,2,3]:[0,1,2],G=arguments[K],V=arguments[z],F=arguments[H];if(fS(G,$),$)U6(AS(G));let B=Q($,Z),j=!1;function U(){if(!j)j=!0,B.end();V.removeListener("close",U)}V.addListener("close",U),arguments[H]=J(F,B,U);try{return Reflect.apply(Z,this,arguments)}catch(D){throw B.setStatus({code:O,message:"internal_error"}),U(),D}}return Object.defineProperty(W,"length",{value:Z.length,writable:!1,configurable:!0}),W}_patchUse($){let Z=this._patchMiddleware.bind(this);return function(...X){let Q=X[X.length-1],J=X[X.length-2]||"";return X[X.length-1]=Z(J,Q),$.apply(this,X)}}_patchHandle($){let Z=this._patchOut.bind(this);return function(){let[X,Q]=[0,2],J=arguments[X],Y=arguments[Q],W=RS(J);if(typeof Y==="function")arguments[Q]=Z(Y,W);return Reflect.apply($,this,arguments)}}_patchOut($,Z){return function(...Q){return Z(),Reflect.apply($,this,Q)}}}var _S="Connect",yS=y(_S,()=>new kH),Jz0=()=>{return{name:_S,setupOnce(){yS()}}},IS=C(Jz0);var Z7=N(r(),1);import{EventEmitter as Yz0}from"events";var TS="db.name",ES="db.sql.table",hS="db.statement",bS="db.system",vS="db.user",SS="net.peer.name",xS="net.peer.port",gS="mssql";function mS($,Z,X,Q){if($==="execBulkLoad"&&Q&&Z)return`${$} ${Q} ${Z}`;if($==="callProcedure"){if(Z)return`${$} ${X} ${Z}`;return`${$} ${X}`}if(Z)return`${$} ${Z}`;return`${$}`}var dS=($)=>{let Z=!1;return(...X)=>{if(Z)return;return Z=!0,$(...X)}};var Wz0="@sentry/instrumentation-tedious",cS=Symbol("opentelemetry.instrumentation-tedious.current-database"),uS=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function LQ($){Object.defineProperty(this,cS,{value:$,writable:!0})}var lS=class $ extends Z7.InstrumentationBase{constructor(Z={}){super(Wz0,f,Z)}init(){return[new Z7.InstrumentationNodeModuleDefinition($.COMPONENT,[">=1.11.0 <20"],(Z)=>{let X=Z.Connection.prototype;for(let Q of uS){if(Z7.isWrapped(X[Q]))this._unwrap(X,Q);this._wrap(X,Q,this._patchQuery(Q))}if(Z7.isWrapped(X.connect))this._unwrap(X,"connect");return this._wrap(X,"connect",this._patchConnect),Z},(Z)=>{if(Z===void 0)return;let X=Z.Connection.prototype;for(let Q of uS)this._unwrap(X,Q);this._unwrap(X,"connect")})]}_patchConnect(Z){return function(){return LQ.call(this,this.config?.options?.database),this.removeListener("databaseChange",LQ),this.on("databaseChange",LQ),this.once("end",()=>{this.removeListener("databaseChange",LQ)}),Z.apply(this,arguments)}}_patchQuery(Z){return(X)=>{let Q=this;function J(Y){if(!(Y instanceof Yz0))return Q._diag.warn(`Unexpected invocation of patched ${Z} method. Span not recorded`),X.apply(this,arguments);let W=0,K=0,z=()=>K++,H=()=>W++,G=this[cS],V=((U)=>{if(U.sqlTextOrProcedure==="sp_prepare"&&U.parametersByName?.stmt?.value)return U.parametersByName.stmt.value;return U.sqlTextOrProcedure})(Y),F={[L]:"auto.db.otel.tedious",[bS]:gS,[TS]:G,[vS]:this.config?.userName??this.config?.authentication?.options?.userName,[hS]:V,[ES]:Y.table,[SS]:this.config?.server,[xS]:this.config?.options?.port},B=b({name:mS(Z,G,V,Y.table),kind:c.CLIENT,attributes:F}),j=dS((U)=>{if(Y.removeListener("done",z),Y.removeListener("doneInProc",z),Y.removeListener("doneProc",H),Y.removeListener("error",j),this.removeListener("end",j),B.setAttribute("tedious.procedure_count",W),B.setAttribute("tedious.statement_count",K),U)B.setStatus({code:O,message:U.message});B.end()});if(Y.on("done",z),Y.on("doneInProc",z),Y.on("doneProc",H),Y.once("error",j),this.on("end",j),typeof Y.callback==="function")Q._wrap(Y,"callback",Q._patchCallbackQuery(j));else Q._diag.error("Expected request.callback to be a function");return m(B,()=>X.apply(this,arguments))}return Object.defineProperty(J,"length",{value:X.length,writable:!1}),J}}_patchCallbackQuery(Z){return(X)=>{return function(Q,J,Y){return Z(Q),X.apply(this,arguments)}}}};lS.COMPONENT="tedious";var pS=lS;var iS="Tedious",oS=y(iS,()=>new pS({})),Kz0=()=>{return{name:iS,setupOnce(){oS()}}},sS=C(Kz0);var L6=N(r(),1);var MH="generic-pool",zz0="@sentry/instrumentation-generic-pool";class RH extends L6.InstrumentationBase{constructor($={}){super(zz0,f,$);this._isDisabled=!1}init(){return[new L6.InstrumentationNodeModuleDefinition(MH,[">=3.0.0 <4"],($)=>{let Z=$.Pool;if(L6.isWrapped(Z.prototype.acquire))this._unwrap(Z.prototype,"acquire");return this._wrap(Z.prototype,"acquire",this._acquirePatcher.bind(this)),$},($)=>{let Z=$.Pool;return this._unwrap(Z.prototype,"acquire"),$}),new L6.InstrumentationNodeModuleDefinition(MH,[">=2.4.0 <3"],($)=>{let Z=$.Pool;if(L6.isWrapped(Z.prototype.acquire))this._unwrap(Z.prototype,"acquire");return this._wrap(Z.prototype,"acquire",this._acquireWithCallbacksPatcher.bind(this)),$},($)=>{let Z=$.Pool;return this._unwrap(Z.prototype,"acquire"),$}),new L6.InstrumentationNodeModuleDefinition(MH,[">=2.0.0 <2.4"],($)=>{if(this._isDisabled=!1,L6.isWrapped($.Pool))this._unwrap($,"Pool");return this._wrap($,"Pool",this._poolWrapper.bind(this)),$},($)=>{return this._isDisabled=!0,$})]}_acquirePatcher($){return function(...X){return $0({name:"generic-pool.acquire",attributes:{[L]:"auto.db.otel.generic_pool"}},()=>{return $.call(this,...X)})}}_poolWrapper($){let Z=this._wrap.bind(this),X=this._acquireWithCallbacksPatcher.bind(this);return function(...J){let Y=$.apply(this,J);return Z(Y,"acquire",X),Y}}_acquireWithCallbacksPatcher($){let Z=()=>this._isDisabled;return function(Q,J){if(Z())return $.call(this,Q,J);return n({name:"generic-pool.acquire",attributes:{[L]:"auto.db.otel.generic_pool"}},(Y)=>{$.call(this,(W,K)=>{if(W)Y.setStatus({code:O,message:"internal_error"});if(Y.end(),Q)Q(W,K)},J)})}}}var rS="GenericPool",nS=y(rS,()=>new RH({})),Hz0=()=>{return{name:rS,setupOnce(){nS()}}},aS=C(Hz0);var K0=N(r(),1);var Z1=(($)=>{return $.AutoAck="auto ack",$.Ack="ack",$.AckAll="ackAll",$.Reject="reject",$.Nack="nack",$.NackAll="nackAll",$.ChannelClosed="channel closed",$.ChannelError="channel error",$.InstrumentationTimeout="instrumentation timeout",$})(Z1||{});var bH=N(S(),1);var tS="messaging.system",eS="messaging.operation",fH="net.peer.name",AH="net.peer.port",NH="messaging.destination",_H="messaging.destination_kind",yH="messaging.rabbitmq.routing_key",IH="messaging.protocol",$x="messaging.protocol_version",Zx="messaging.url",TH="messaging.message_id",EH="messaging.conversation_id",hH="topic",Xx="process";var Gz0="auto.amqplib.otel.publisher",Vz0="auto.amqplib.otel.consumer",OQ=Symbol("opentelemetry.amqplib.message.stored-span"),x$=Symbol("opentelemetry.amqplib.channel.spans-not-ended"),CQ=Symbol("opentelemetry.amqplib.channel.consumer-timeout-timer"),kQ=Symbol("opentelemetry.amqplib.connection.attributes"),MQ=Symbol("sentry.amqplib.channel.is-confirm-publishing"),Fz0=($)=>$!==""?$:"",Bz0=($)=>{return $.replace(/:[^:@/]*@/,":***@")},Qx=($,Z)=>{return $||(Z==="AMQP"?5672:5671)},Jx=($)=>{let Z=$||"amqp";return(Z.endsWith(":")?Z.substring(0,Z.length-1):Z).toUpperCase()},Yx=($)=>{return $||"localhost"},Wx=($)=>{let Z=$.serverProperties.product?.toLowerCase?.();if(Z)return{[tS]:Z};else return{}},Kx=($)=>{let Z={[$x]:"0.9.1"},X=$||"amqp://localhost";if(typeof X==="object"){let Q=X,J=Jx(Q?.protocol);Z[IH]=J,Z[fH]=Yx(Q?.hostname),Z[AH]=Qx(Q.port,J)}else{let Q=Bz0(X);Z[Zx]=Q;try{let J=new URL(Q),Y=Jx(J.protocol);Z[IH]=Y,Z[fH]=Yx(J.hostname),Z[AH]=Qx(J.port?parseInt(J.port):void 0,Y)}catch{}}return Z};function vH($,Z){let X=$?.[Z];if(X==null)return;return Array.isArray(X)?String(X[0]):String(X)}function SH($,Z,X,Q){let J=Fz0($),Y=b({name:`publish ${J}`,kind:bH.SpanKind.PRODUCER,attributes:{...X.connection[kQ],[NH]:$,[_H]:hH,[yH]:Z,[TH]:Q?.messageId,[EH]:Q?.correlationId,[L]:Gz0}}),W=Q??{};W.headers=W.headers??{};let K=w1({span:Y});if(K["sentry-trace"])W.headers["sentry-trace"]=K["sentry-trace"];if(K.baggage)W.headers.baggage=K.baggage;return{span:Y,modifiedOptions:W}}function zx($,Z,X){return b({name:`${$} process`,kind:bH.SpanKind.CONSUMER,attributes:{...X?.connection?.[kQ],[NH]:Z.fields?.exchange,[_H]:hH,[yH]:Z.fields?.routingKey,[eS]:Xx,[TH]:Z?.properties.messageId,[EH]:Z?.properties.correlationId,[L]:Vz0}})}var Hx=60000;function R5($,Z,X,Q){let J=$[OQ];if(!J)return;if(Z!==!1)J.setStatus({code:O,message:X!==Z1.ChannelClosed&&X!==Z1.ChannelError?`${X} called on message${Q===!0?" with requeue":Q===!1?" without requeue":""}`:X});J.end(),$[OQ]=void 0}function xH($,Z,X,Q){($[x$]??[]).forEach((Y)=>{R5(Y.msg,Z,X,Q)}),$[x$]=[]}function wz0($){let Z=J1(),X=$[x$]??[],Q;for(Q=0;Qfunction(J){return xH(this,$,Z,J),X.apply(this,arguments)}}function RQ($,Z){return(X)=>function(J,Y,W){let K=this,z=Z===Z1.Reject?Y:W,H=K[x$]??[],G=H.findIndex((V)=>V.msg===J);if(G<0)R5(J,$,Z,z);else if(Z!==Z1.Reject&&Y){for(let V=0;V<=G;V++)R5(H[V].msg,$,Z,z);H.splice(0,G+1)}else R5(J,$,Z,z),H.splice(G,1);return X.apply(this,arguments)}}function Fx($){return function(X,Q,J){let Y=this;if(!Object.prototype.hasOwnProperty.call(Y,x$)){let z=setInterval(()=>{wz0(Y)},Hx);z.unref(),Y[CQ]=z,Y[x$]=[]}let W=function(z){if(!z)return Q.call(this,z);let H=z.properties.headers??{},G=vH(H,"sentry-trace"),V=vH(H,"baggage");_6({sentryTrace:G,baggage:V},()=>{let F=zx(X,z,Y);if(!J?.noAck)Y[x$].push({msg:z,timeOfConsume:J1()}),z[OQ]=F;if(m(F,()=>{Q.call(this,z)}),J?.noAck)F.end()})},K=Array.prototype.slice.call(arguments);return K[1]=W,$.apply(this,K)}}function Bx($){return function(X,Q,J,Y,W){let K=this,{span:z,modifiedOptions:H}=SH(X,Q,K,Y),G=function(F,B){try{m(z,()=>{W?.call(this,F,B)})}finally{if(F)z.setStatus({code:O,message:"message confirmation has been nack'ed"});z.end()}},V=[...arguments];V[3]=H,V[4]=G,K[MQ]=!0;try{return $.apply(this,V)}finally{K[MQ]=!1}}}function wx($){return function(X,Q,J,Y){if(this[MQ])return $.apply(this,arguments);let W=this,{span:K,modifiedOptions:z}=SH(X,Q,W,Y),H=[...arguments];H[3]=z;let G=$.apply(this,H);return K.end(),G}}var jz0="@sentry/instrumentation-amqplib",fQ=[">=0.5.5 <2"];class mH extends K0.InstrumentationBase{constructor($={}){super(jz0,f,$)}init(){let $=new i("amqplib/lib/channel_model.js",fQ,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),Z=new i("amqplib/lib/callback_model.js",fQ,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),X=new i("amqplib/lib/connect.js",fQ,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new K0.InstrumentationNodeModuleDefinition("amqplib",fQ,void 0,void 0,[$,X,Z])}patchConnect($){let Z=this.unpatchConnect($);if(!K0.isWrapped(Z.connect))this._wrap(Z,"connect",Gx);return Z}unpatchConnect($){if(K0.isWrapped($.connect))this._unwrap($,"connect");return $}patchChannelModel($){if(!K0.isWrapped($.Channel.prototype.publish))this._wrap($.Channel.prototype,"publish",wx);if(!K0.isWrapped($.Channel.prototype.consume))this._wrap($.Channel.prototype,"consume",Fx);if(!K0.isWrapped($.Channel.prototype.ack))this._wrap($.Channel.prototype,"ack",RQ(!1,Z1.Ack));if(!K0.isWrapped($.Channel.prototype.nack))this._wrap($.Channel.prototype,"nack",RQ(!0,Z1.Nack));if(!K0.isWrapped($.Channel.prototype.reject))this._wrap($.Channel.prototype,"reject",RQ(!0,Z1.Reject));if(!K0.isWrapped($.Channel.prototype.ackAll))this._wrap($.Channel.prototype,"ackAll",gH(!1,Z1.AckAll));if(!K0.isWrapped($.Channel.prototype.nackAll))this._wrap($.Channel.prototype,"nackAll",gH(!0,Z1.NackAll));if(!K0.isWrapped($.Channel.prototype.emit))this._wrap($.Channel.prototype,"emit",Vx);if(!K0.isWrapped($.ConfirmChannel.prototype.publish))this._wrap($.ConfirmChannel.prototype,"publish",Bx);return $}unpatchChannelModel($){if(K0.isWrapped($.Channel.prototype.publish))this._unwrap($.Channel.prototype,"publish");if(K0.isWrapped($.Channel.prototype.consume))this._unwrap($.Channel.prototype,"consume");if(K0.isWrapped($.Channel.prototype.ack))this._unwrap($.Channel.prototype,"ack");if(K0.isWrapped($.Channel.prototype.nack))this._unwrap($.Channel.prototype,"nack");if(K0.isWrapped($.Channel.prototype.reject))this._unwrap($.Channel.prototype,"reject");if(K0.isWrapped($.Channel.prototype.ackAll))this._unwrap($.Channel.prototype,"ackAll");if(K0.isWrapped($.Channel.prototype.nackAll))this._unwrap($.Channel.prototype,"nackAll");if(K0.isWrapped($.Channel.prototype.emit))this._unwrap($.Channel.prototype,"emit");if(K0.isWrapped($.ConfirmChannel.prototype.publish))this._unwrap($.ConfirmChannel.prototype,"publish");return $}}var jx="Amqplib",Ux=y(jx,()=>new mH),Uz0=()=>{return{name:jx,setupOnce(){Ux()}}},qx=C(Uz0);var AQ="VercelAI";var NQ=N(r(),1);var qz0=[">=3.0.0 <7"],Dx=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];function Dz0($){if(typeof $!=="object"||$===null)return!1;let Z=$;return"type"in Z&&"error"in Z&&"toolName"in Z&&"toolCallId"in Z&&Z.type==="tool-error"&&Z.error instanceof Error}function Pz0($){if(typeof $!=="object"||$===null||!("content"in $))return;let Z=$;if(!Array.isArray(Z.content))return;Lz0(Z.content),Oz0(Z.content)}function Lz0($){for(let Z of $){if(!Dz0(Z))continue;let X=_Y(Z.toolCallId);if(X)X0((Q)=>{Q.setContext("trace",{trace_id:X.traceId,span_id:X.spanId}),Q.setTag("vercel.ai.tool.name",Z.toolName),Q.setTag("vercel.ai.tool.callId",Z.toolCallId),Q.setLevel("error"),E(Z.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})});else X0((Q)=>{Q.setTag("vercel.ai.tool.name",Z.toolName),Q.setTag("vercel.ai.tool.callId",Z.toolCallId),Q.setLevel("error"),E(Z.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})})}}function Oz0($){for(let Z of $)if(typeof Z==="object"&&Z!==null&&"toolCallId"in Z&&typeof Z.toolCallId==="string")yY(Z.toolCallId)}function Cz0($,Z,X,Q,J){let Y=$?.recordInputs!==void 0?$.recordInputs:Z.recordInputs!==void 0?Z.recordInputs:X===!0?!0:Q,W=$?.recordOutputs!==void 0?$.recordOutputs:Z.recordOutputs!==void 0?Z.recordOutputs:X===!0?!0:J;return{recordInputs:Y,recordOutputs:W}}class dH extends NQ.InstrumentationBase{constructor($={}){super("@sentry/instrumentation-vercel-ai",f,$);this._isPatched=!1,this._callbacks=[]}init(){return new NQ.InstrumentationNodeModuleDefinition("ai",qz0,this._patch.bind(this))}callWhenPatched($){if(this._isPatched)$();else this._callbacks.push($)}_patch($){this._isPatched=!0,this._callbacks.forEach((X)=>X()),this._callbacks=[];let Z=(X)=>{return new Proxy(X,{apply:(Q,J,Y)=>{let W=Y[0].experimental_telemetry||{},K=W.isEnabled,z=M(),H=z?.getIntegrationByName(AQ),G=H?.options,V=H?z?.getDataCollectionOptions().genAI:void 0,{recordInputs:F,recordOutputs:B}=Cz0(G,W,K,Boolean(V?.inputs),Boolean(V?.outputs));return Y[0].experimental_telemetry={...W,isEnabled:K!==void 0?K:!0,recordInputs:F,recordOutputs:B},d1(()=>Reflect.apply(Q,J,Y),(j)=>{if(j&&typeof j==="object")w0(j,"_sentry_active_span",p())},()=>{},(j)=>{Pz0(j)})}})};if(Object.prototype.toString.call($)==="[object Module]"){for(let X of Dx)if($[X]!=null)$[X]=Z($[X]);return $}else{let X=Dx.reduce((Q,J)=>{if($[J]!=null)Q[J]=Z($[J]);return Q},{});return{...$,...X}}}}var Px=y(AQ,()=>new dH({}));function kz0($){return!!$.getIntegrationByName("Modules")?.getModules?.()?.ai}var Mz0=($={})=>{let Z,X=O3($);return WZ(X,{options:$,setupOnce(){Z=Px()},afterAllSetup(Q){if($.force??kz0(Q))W4(Q);else Z?.callWhenPatched(()=>W4(Q))}})},Lx=C(Mz0);var _Q=N(r(),1);var Rz0=[">=4.0.0 <7"];class uH extends _Q.InstrumentationBase{constructor($={}){super("@sentry/instrumentation-openai",f,$)}init(){return new _Q.InstrumentationNodeModuleDefinition("openai",Rz0,this._patch.bind(this))}_patch($){let Z=$;return Z=this._patchClient(Z,"OpenAI"),Z=this._patchClient(Z,"AzureOpenAI"),Z}_patchClient($,Z){let X=$[Z];if(!X)return $;let Q=this.getConfig(),J=function(...Y){if(W8(L$))return Reflect.construct(X,Y);let W=Reflect.construct(X,Y);return z4(W,Q)};Object.setPrototypeOf(J,X),Object.setPrototypeOf(J.prototype,X.prototype);for(let Y of Object.getOwnPropertyNames(X))if(!["length","name","prototype"].includes(Y)){let W=Object.getOwnPropertyDescriptor(X,Y);if(W)Object.defineProperty(J,Y,W)}try{$[Z]=J}catch{Object.defineProperty($,Z,{value:J,writable:!0,configurable:!0,enumerable:!0})}if($.default===X)try{$.default=J}catch{Object.defineProperty($,"default",{value:J,writable:!0,configurable:!0,enumerable:!0})}return $}}var Ox=y(L$,($)=>new uH($)),fz0=($={})=>{return{name:L$,setupOnce(){Ox($)}}},Cx=C(fz0);var yQ=N(r(),1);var Az0=[">=0.19.2 <1.0.0"];class cH extends yQ.InstrumentationBase{constructor($={}){super("@sentry/instrumentation-anthropic-ai",f,$)}init(){return new yQ.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",Az0,this._patch.bind(this))}_patch($){let Z=$.Anthropic,X=this.getConfig(),Q=function(...J){if(W8(O$))return Reflect.construct(Z,J);let Y=Reflect.construct(Z,J);return H4(Y,X)};Object.setPrototypeOf(Q,Z),Object.setPrototypeOf(Q.prototype,Z.prototype);for(let J of Object.getOwnPropertyNames(Z))if(!["length","name","prototype"].includes(J)){let Y=Object.getOwnPropertyDescriptor(Z,J);if(Y)Object.defineProperty(Q,J,Y)}try{$.Anthropic=Q}catch{Object.defineProperty($,"Anthropic",{value:Q,writable:!0,configurable:!0,enumerable:!0})}if($.default===Z)try{$.default=Q}catch{Object.defineProperty($,"default",{value:Q,writable:!0,configurable:!0,enumerable:!0})}return $}}var kx=y(O$,($)=>new cH($)),Nz0=($={})=>{return{name:O$,options:$,setupOnce(){kx($)}}},Mx=C(Nz0);var IQ=N(r(),1);var Rx=[">=0.10.0 <2"];class lH extends IQ.InstrumentationBase{constructor($={}){super("@sentry/instrumentation-google-genai",f,$)}init(){return new IQ.InstrumentationNodeModuleDefinition("@google/genai",Rx,(Z)=>this._patch(Z),(Z)=>Z,[new i("@google/genai/dist/node/index.cjs",Rx,(Z)=>this._patch(Z),(Z)=>Z)])}_patch($){let Z=$.GoogleGenAI,X=this.getConfig();if(typeof Z!=="function")return $;let Q=function(...J){if(W8(C$))return Reflect.construct(Z,J);let Y=Reflect.construct(Z,J);return G4(Y,X)};Object.setPrototypeOf(Q,Z),Object.setPrototypeOf(Q.prototype,Z.prototype);for(let J of Object.getOwnPropertyNames(Z))if(!["length","name","prototype"].includes(J)){let Y=Object.getOwnPropertyDescriptor(Z,J);if(Y)Object.defineProperty(Q,J,Y)}return RZ($,"GoogleGenAI",Q),$}}var fx=y(C$,($)=>new lH($)),_z0=($={})=>{return{name:C$,setupOnce(){fx($)}}},Ax=C(_z0);var f5=N(r(),1);var TQ=[">=0.1.0 <2.0.0"];function yz0($,Z,X){return new Proxy($,{apply(Q,J,Y){let K=Y[1];if(!K||typeof K!=="object"||Array.isArray(K))K={},Y[1]=K;return K.callbacks=CZ(K.callbacks,Z),Reflect.apply(Q,J,Y)}})}class pH extends f5.InstrumentationBase{constructor($={}){super("@sentry/instrumentation-langchain",f,$)}init(){let $=[],Z=["@langchain/anthropic","@langchain/openai","@langchain/google-genai","@langchain/mistralai","@langchain/google-vertexai","@langchain/groq"];for(let X of Z)$.push(new f5.InstrumentationNodeModuleDefinition(X,TQ,this._patch.bind(this),(Q)=>Q,[new i(`${X}/dist/index.cjs`,TQ,this._patch.bind(this),(Q)=>Q)]));return $.push(new f5.InstrumentationNodeModuleDefinition("langchain",TQ,this._patch.bind(this),(X)=>X,[new i("langchain/dist/chat_models/universal.cjs",TQ,this._patch.bind(this),(X)=>X)])),$}_patch($){sJ([L$,O$,C$]);let Z=this.getConfig(),X=U8(Z);return this._patchRunnableMethods($,X),this._patchEmbeddingsMethods($,Z),$}_patchRunnableMethods($,Z){let X=["ChatAnthropic","ChatOpenAI","ChatGoogleGenerativeAI","ChatMistralAI","ChatVertexAI","ChatGroq","ConfigurableModel"],Q=$.universal_exports??$,J=Object.values(Q).find((K)=>{return typeof K==="function"&&X.includes(K.name)});if(!J)return;let Y=J.prototype;if(Y.__sentry_patched__)return;Y.__sentry_patched__=!0;let W=["invoke","stream","batch"];for(let K of W){let z=Y[K];if(typeof z==="function")Y[K]=yz0(z,Z)}}_patchEmbeddingsMethods($,Z){let X=$.universal_exports??$;for(let Q of Object.values(X)){if(typeof Q!=="function"||!Q.prototype)continue;let J=Q.prototype;if(typeof J.embedQuery!=="function"||typeof J.embedDocuments!=="function")continue;if(J.__sentry_patched__)continue;J.__sentry_patched__=!0,_4(J,Z)}}}var Nx=y(V4,($)=>new pH($)),Iz0=($={})=>{return{name:V4,setupOnce(){Nx($)}}},_x=C(Iz0);var N5=N(r(),1);var A5=[">=0.0.0 <2.0.0"];class iH extends N5.InstrumentationBase{constructor($={}){super("@sentry/instrumentation-langgraph",f,$)}init(){return[new N5.InstrumentationNodeModuleDefinition("@langchain/langgraph",A5,this._patch.bind(this),($)=>$,[new i("@langchain/langgraph/dist/index.cjs",A5,this._patch.bind(this),($)=>$),new i("@langchain/langgraph/dist/prebuilt/index.cjs",A5,this._patch.bind(this),($)=>$)]),new N5.InstrumentationNodeModuleDefinition("@langchain/langgraph/prebuilt",A5,this._patch.bind(this),($)=>$,[new i("@langchain/langgraph/dist/prebuilt/index.cjs",A5,this._patch.bind(this),($)=>$)])]}_patch($){let X=M()?.getDataCollectionOptions().genAI,Q={...this.getConfig(),recordInputs:this.getConfig().recordInputs??X?.inputs??!1,recordOutputs:this.getConfig().recordOutputs??X?.outputs??!1};if($.StateGraph&&typeof $.StateGraph==="function")j4($.StateGraph.prototype,Q);if($.createReactAgent&&typeof $.createReactAgent==="function"){let J=$.createReactAgent;Object.defineProperty($,"createReactAgent",{value:SY(J,Q),writable:!0,enumerable:!0,configurable:!0})}return $}}var yx=y(B4,($)=>new iH($)),Tz0=($={})=>{return{name:B4,setupOnce(){yx($)}}},Ix=C(Tz0);var xx=N(r(),1);var EQ=N(r(),1);import*as Ex from"node:net";var S1=N(P1(),1);function hx($,Z,X){let Q=new EQ.InstrumentationNodeModuleDefinition("@firebase/firestore",$,(Y)=>Tx(Y,Z,X)),J=["@firebase/firestore/dist/lite/index.node.cjs.js","@firebase/firestore/dist/lite/index.node.mjs.js","@firebase/firestore/dist/lite/index.rn.esm2017.js","@firebase/firestore/dist/lite/index.cjs.js"];for(let Y of J)Q.files.push(new i(Y,$,(W)=>Tx(W,Z,X),(W)=>bx(W,X)));return Q}function Tx($,Z,X){return bx($,X),Z($,"addDoc",Ez0()),Z($,"getDocs",bz0()),Z($,"setDoc",vz0()),Z($,"deleteDoc",hz0()),$}function bx($,Z){for(let X of["addDoc","getDocs","setDoc","deleteDoc"])if(EQ.isWrapped($[X]))Z($,X);return $}function Ez0(){return function(Z){return function(X,Q){return hQ("addDoc",X,()=>Z(X,Q))}}}function hz0(){return function(Z){return function(X){return hQ("deleteDoc",X.parent||X,()=>Z(X))}}}function bz0(){return function(Z){return function(X){return hQ("getDocs",X,()=>Z(X))}}}function vz0(){return function(Z){return function(X,Q,J){return hQ("setDoc",X.parent||X,()=>{return typeof J<"u"?Z(X,Q,J):Z(X,Q)})}}}function hQ($,Z,X){return $0({name:`${$} ${Z.path}`,op:"db.query",kind:c.CLIENT,attributes:{[L]:"auto.firebase.otel.firestore",[S1.ATTR_DB_OPERATION_NAME]:$,...xz0(Z)}},X)}function Sz0($){let Z,X;if(typeof $.host==="string")if($.host.startsWith("[")){if($.host.endsWith("]"))Z=$.host.replace(/^\[|\]$/g,"");else if($.host.includes("]:")){let Q=$.host.lastIndexOf(":");if(Q!==-1)Z=$.host.slice(1,Q).replace(/^\[|\]$/g,""),X=$.host.slice(Q+1)}}else if(Ex.isIPv6($.host))Z=$.host;else{let Q=$.host.lastIndexOf(":");if(Q!==-1)Z=$.host.slice(0,Q),X=$.host.slice(Q+1);else Z=$.host}return{address:Z,port:X?parseInt(X,10):void 0}}function xz0($){let Z=$.firestore.app,X=Z.options,J=($.firestore.toJSON()||{}).settings||{},Y={[S1.ATTR_DB_COLLECTION_NAME]:$.path,[S1.ATTR_DB_NAMESPACE]:Z.name,[S1.ATTR_DB_SYSTEM_NAME]:"firebase.firestore","firebase.firestore.type":$.type,"firebase.firestore.options.projectId":X.projectId,"firebase.firestore.options.appId":X.appId,"firebase.firestore.options.messagingSenderId":X.messagingSenderId,"firebase.firestore.options.storageBucket":X.storageBucket},{address:W,port:K}=Sz0(J);if(W)Y[S1.ATTR_SERVER_ADDRESS]=W;if(K)Y[S1.ATTR_SERVER_PORT]=K;return Y}var bQ=N(r(),1);function vx($,Z,X){let Q=new bQ.InstrumentationNodeModuleDefinition("firebase-functions",$);return[{name:"firebase-functions/lib/v2/providers/https.js",triggerType:"function"},{name:"firebase-functions/lib/v2/providers/firestore.js",triggerType:"firestore"},{name:"firebase-functions/lib/v2/providers/scheduler.js",triggerType:"scheduler"},{name:"firebase-functions/lib/v2/storage.js",triggerType:"storage"}].forEach(({name:Y,triggerType:W})=>{Q.files.push(new i(Y,$,(K)=>gz0(K,Z,X,W),(K)=>Sx(K,X)))}),Q}function X1($){return function(X){return function(...Q){let J=typeof Q[0]==="function"?Q[0]:Q[1],Y=typeof Q[0]==="function"?void 0:Q[0];if(!J)return X.call(this,...Q);let W=async function(...K){let z=process.env.FUNCTION_TARGET||process.env.K_SERVICE||"unknown",H={[L]:"auto.firebase.otel.functions","faas.name":z,"faas.trigger":$,"faas.provider":"firebase"};if(process.env.GCLOUD_PROJECT)H["cloud.project_id"]=process.env.GCLOUD_PROJECT;if(process.env.EVENTARC_CLOUD_EVENT_SOURCE)H["cloud.event_source"]=process.env.EVENTARC_CLOUD_EVENT_SOURCE;return n({name:`firebase.function.${$}`,op:"http.request",kind:c.SERVER,attributes:H},async(G)=>{try{let V=await J.apply(this,K);return G.end(),V}catch(V){throw G.setStatus({code:O}),E(V,{mechanism:{type:"auto.firebase.otel.functions",handled:!1}}),G.end(),await Y8(2000),V}})};if(Y)return X.call(this,Y,W);else return X.call(this,W)}}}function gz0($,Z,X,Q){switch(Sx($,X),Q){case"function":Z($,"onRequest",X1("http.request")),Z($,"onCall",X1("http.call"));break;case"firestore":Z($,"onDocumentCreated",X1("firestore.document.created")),Z($,"onDocumentUpdated",X1("firestore.document.updated")),Z($,"onDocumentDeleted",X1("firestore.document.deleted")),Z($,"onDocumentWritten",X1("firestore.document.written")),Z($,"onDocumentCreatedWithAuthContext",X1("firestore.document.created")),Z($,"onDocumentUpdatedWithAuthContext",X1("firestore.document.updated")),Z($,"onDocumentDeletedWithAuthContext",X1("firestore.document.deleted")),Z($,"onDocumentWrittenWithAuthContext",X1("firestore.document.written"));break;case"scheduler":Z($,"onSchedule",X1("scheduler.scheduled"));break;case"storage":Z($,"onObjectFinalized",X1("storage.object.finalized")),Z($,"onObjectArchived",X1("storage.object.archived")),Z($,"onObjectDeleted",X1("storage.object.deleted")),Z($,"onObjectMetadataUpdated",X1("storage.object.metadataUpdated"));break}return $}function Sx($,Z){let X=["onSchedule","onRequest","onCall","onObjectFinalized","onObjectArchived","onObjectDeleted","onObjectMetadataUpdated","onDocumentCreated","onDocumentUpdated","onDocumentDeleted","onDocumentWritten","onDocumentCreatedWithAuthContext","onDocumentUpdatedWithAuthContext","onDocumentDeletedWithAuthContext","onDocumentWrittenWithAuthContext"];for(let Q of X)if(bQ.isWrapped($[Q]))Z($,Q);return $}var mz0=[">=3.0.0 <5"],dz0=[">=6.0.0 <7"];class oH extends xx.InstrumentationBase{constructor($={}){super("@sentry/instrumentation-firebase",f,$)}init(){let $=[];return $.push(hx(mz0,this._wrap,this._unwrap)),$.push(vx(dz0,this._wrap,this._unwrap)),$}}var gx="Firebase",mx=y(gx,()=>new oH),uz0=()=>{return{name:gx,setupOnce(){mx()}}},dx=C(uz0);function ux(){return[SE(),fh(),xh(),qS(),Ub(),hb(),rb(),Gv(),kv(),bv(),ZS(),wS(),MS(),IS(),sS(),aS(),sh(),qx(),ah(),_x(),Ix(),Lx(),Cx(),Mx(),Ax(),gv(),dx()]}var sH,cx;function rH(){return!!sH}function nH(){if(!sH)return;return cx??(cx=sH())}var y9=N(S(),1),lx=N(Fz(),1);var aH=1e6;function px($,Z={}){if($.getOptions().debug)hz();let[X,Q]=cz0($,Z);$.traceProvider=X,$.asyncLocalStorageLookup=Q}function cz0($,Z={}){let X=new lx.BasicTracerProvider({sampler:new hX($),resource:Tz("node"),forceFlushTimeoutMillis:500,spanProcessors:[new EX({timeout:lz0($.getOptions().maxSpanWaitDuration),client:$}),...Z.spanProcessors||[]]});y9.trace.setGlobalTracerProvider(X),y9.propagation.setGlobalPropagator(new TX);let Q=new bX;return y9.context.setGlobalContextManager(Q),[X,Q.getAsyncLocalStorageLookup()]}function lz0($){if($==null)return;if($>aH)return a&&w.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${aH}`),aH;else if($<=0||Number.isNaN($)){a&&w.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return $}function ix(){return uX().filter((Z)=>Z.name!=="Http"&&Z.name!=="NodeFetch").concat(yE(),EE())}function ox($){let Z=[...ix(),...e($)?ux():[]];if(rH()&&e($)){let X=nH();if(X){let Q=new Set(X.replacedOtelIntegrationNames);return[...Z.filter((J)=>!Q.has(J.name)),...X.integrations]}}return Z}function tH($={}){return pz0($,ox)}function pz0($={},Z){H8($,"node");let X=rH()&&e($)?nH():void 0;if(X)X.register();let Q=K3({...$,defaultIntegrations:$.defaultIntegrations??Z($)});if(Q&&!$.skipOpenTelemetrySetup)px(Q,{spanProcessors:$.openTelemetrySpanProcessors}),cX();if(X)X.detect();return Q}var oz0="https://b5a33745f4bf36a0f1e66dbcfceaa898@o4510814125228032.ingest.us.sentry.io/4511124523974656",sx="1.0.0",I9=!1,sz0=[/token/i,/secret/i,/password/i,/key/i,/credential/i,/auth/i,/^GITHUB_/i,/^AWS_/i,/^AZURE_/i,/^GCP_/i,/^NPM_/i,/^NODE_AUTH/i];function rx($){let Z=$;for(let[X,Q]of Object.entries(process.env)){if(!Q||Q.length<8)continue;if(sz0.some((J)=>J.test(X)))Z=Z.replaceAll(Q,"[REDACTED]")}return Z}function nx($){if(delete $.server_name,delete $.extra,delete $.user,delete $.request,$.contexts={},$.breadcrumbs=[],$.exception?.values){for(let Z of $.exception.values)if(Z.value)Z.value=rx(Z.value)}if($.message)$.message=rx($.message);return $}function ku0($,Z){if(I9=$,!$)return;tH({dsn:oz0,defaultIntegrations:!1,environment:"production",release:`format@${sx}`,tracesSampleRate:1,beforeSend(X){return nx(X)},beforeSendTransaction(X){return nx(X)}}),ZZ({formatter:Z.formatter,mode:Z.mode,action_version:sx})}function Mu0($,Z){if(!I9)return;X0((X)=>{if(Z)for(let[Q,J]of Object.entries(Z))X.setTag(Q,J);E($)})}async function Ru0($,Z,X){if(!I9)return X();return $0({name:$,op:Z,attributes:{"sentry.origin":"manual"}},async()=>X())}function fu0($,Z,X,Q){if(!I9)return;y7.gauge($,Z,{unit:X,tags:Q})}function Au0($,Z){if(!I9)return;e9($,{level:"info",tags:Z})}async function ax(){if(!I9)return;await Y8(2000)}ax(); -//# debugId=1EE75D4B9332DFDF64756E2164756E21 +//# debugId=A58B33967BCAFFD364756E2164756E21 //# sourceMappingURL=post.js.map diff --git a/dist/post.js.map b/dist/post.js.map index 92193c8..dfdd320 100644 --- a/dist/post.js.map +++ b/dist/post.js.map @@ -1,6 +1,6 @@ { "version": 3, - "sources": ["../node_modules/@opentelemetry/api/build/src/version.js", "../node_modules/@opentelemetry/api/build/src/internal/semver.js", "../node_modules/@opentelemetry/api/build/src/internal/global-utils.js", "../node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js", "../node_modules/@opentelemetry/api/build/src/diag/types.js", "../node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js", "../node_modules/@opentelemetry/api/build/src/api/diag.js", "../node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js", "../node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js", "../node_modules/@opentelemetry/api/build/src/baggage/utils.js", "../node_modules/@opentelemetry/api/build/src/context/context.js", "../node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js", "../node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js", "../node_modules/@opentelemetry/api/build/src/metrics/Metric.js", "../node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js", "../node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js", "../node_modules/@opentelemetry/api/build/src/api/context.js", "../node_modules/@opentelemetry/api/build/src/trace/trace_flags.js", "../node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js", "../node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js", "../node_modules/@opentelemetry/api/build/src/trace/context-utils.js", "../node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js", "../node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js", "../node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js", "../node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js", "../node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js", "../node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js", "../node_modules/@opentelemetry/api/build/src/trace/span_kind.js", "../node_modules/@opentelemetry/api/build/src/trace/status.js", "../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js", "../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js", "../node_modules/@opentelemetry/api/build/src/trace/internal/utils.js", "../node_modules/@opentelemetry/api/build/src/context-api.js", "../node_modules/@opentelemetry/api/build/src/diag-api.js", "../node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js", "../node_modules/@opentelemetry/api/build/src/api/metrics.js", "../node_modules/@opentelemetry/api/build/src/metrics-api.js", "../node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js", "../node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js", "../node_modules/@opentelemetry/api/build/src/api/propagation.js", "../node_modules/@opentelemetry/api/build/src/propagation-api.js", "../node_modules/@opentelemetry/api/build/src/api/trace.js", "../node_modules/@opentelemetry/api/build/src/trace-api.js", "../node_modules/@opentelemetry/api/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/trace/suppress-tracing.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/baggage/constants.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/baggage/utils.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/baggage/propagation/W3CBaggagePropagator.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/common/anchored-clock.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/common/attributes.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/common/logging-error-handler.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/common/global-error-handler.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/platform/node/environment.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/common/globalThis.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/version.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/internal/utils.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/trace/SemanticAttributes.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/trace/index.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/resource/SemanticResourceAttributes.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/resource/index.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/stable_metrics.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/stable_events.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/platform/node/sdk-info.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/platform/node/index.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/platform/index.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/common/time.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/common/timer-util.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/ExportResult.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/propagation/composite.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/internal/validators.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/trace/TraceState.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/trace/W3CTraceContextPropagator.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/trace/rpc-metadata.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/utils/lodash.merge.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/utils/merge.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/utils/timeout.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/utils/url.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/utils/promise.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/utils/callback.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/utils/configuration.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/internal/exporter.js", "../node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-http/build/src/version.js", "../node_modules/@opentelemetry/api-logs/build/src/types/LogRecord.js", "../node_modules/@opentelemetry/api-logs/build/src/NoopLogger.js", "../node_modules/@opentelemetry/api-logs/build/src/internal/global-utils.js", "../node_modules/@opentelemetry/api-logs/build/src/NoopLoggerProvider.js", "../node_modules/@opentelemetry/api-logs/build/src/ProxyLogger.js", "../node_modules/@opentelemetry/api-logs/build/src/ProxyLoggerProvider.js", "../node_modules/@opentelemetry/api-logs/build/src/api/logs.js", "../node_modules/@opentelemetry/api-logs/build/src/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/autoLoaderUtils.js", "../node_modules/@opentelemetry/instrumentation/build/src/autoLoader.js", "../node_modules/@opentelemetry/instrumentation/build/src/semver.js", "../node_modules/@opentelemetry/instrumentation/build/src/shimmer.js", "../node_modules/@opentelemetry/instrumentation/build/src/instrumentation.js", "../node_modules/ms/index.js", "../node_modules/debug/src/common.js", "../node_modules/debug/src/browser.js", "../node_modules/debug/src/node.js", "../node_modules/debug/src/index.js", "../node_modules/module-details-from-path/index.js", "../node_modules/require-in-the-middle/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/ModuleNameTrie.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/RequireInTheMiddleSingleton.js", "../node_modules/import-in-the-middle/lib/register.js", "../node_modules/import-in-the-middle/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/instrumentation.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/normalize.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleDefinition.js", "../node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleFile.js", "../node_modules/@opentelemetry/instrumentation/build/src/semconvStability.js", "../node_modules/@opentelemetry/instrumentation/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-http/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-http/build/src/enums/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-http/build/src/internal-types.js", "../node_modules/forwarded-parse/lib/error.js", "../node_modules/forwarded-parse/lib/ascii.js", "../node_modules/forwarded-parse/index.js", "../node_modules/@opentelemetry/instrumentation-http/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-http/build/src/http.js", "../node_modules/@opentelemetry/instrumentation-http/build/src/index.js", "../node_modules/@opentelemetry/core/build/src/trace/suppress-tracing.js", "../node_modules/@opentelemetry/core/build/src/baggage/constants.js", "../node_modules/@opentelemetry/core/build/src/baggage/utils.js", "../node_modules/@opentelemetry/core/build/src/baggage/propagation/W3CBaggagePropagator.js", "../node_modules/@opentelemetry/core/build/src/common/anchored-clock.js", "../node_modules/@opentelemetry/core/build/src/common/attributes.js", "../node_modules/@opentelemetry/core/build/src/common/logging-error-handler.js", "../node_modules/@opentelemetry/core/build/src/common/global-error-handler.js", "../node_modules/@opentelemetry/core/build/src/platform/node/environment.js", "../node_modules/@opentelemetry/core/build/src/common/globalThis.js", "../node_modules/@opentelemetry/core/build/src/version.js", "../node_modules/@opentelemetry/core/build/src/semconv.js", "../node_modules/@opentelemetry/core/build/src/platform/node/sdk-info.js", "../node_modules/@opentelemetry/core/build/src/platform/node/index.js", "../node_modules/@opentelemetry/core/build/src/platform/index.js", "../node_modules/@opentelemetry/core/build/src/common/time.js", "../node_modules/@opentelemetry/core/build/src/common/timer-util.js", "../node_modules/@opentelemetry/core/build/src/ExportResult.js", "../node_modules/@opentelemetry/core/build/src/propagation/composite.js", "../node_modules/@opentelemetry/core/build/src/internal/validators.js", "../node_modules/@opentelemetry/core/build/src/trace/TraceState.js", "../node_modules/@opentelemetry/core/build/src/trace/W3CTraceContextPropagator.js", "../node_modules/@opentelemetry/core/build/src/trace/rpc-metadata.js", "../node_modules/@opentelemetry/core/build/src/utils/lodash.merge.js", "../node_modules/@opentelemetry/core/build/src/utils/merge.js", "../node_modules/@opentelemetry/core/build/src/utils/timeout.js", "../node_modules/@opentelemetry/core/build/src/utils/url.js", "../node_modules/@opentelemetry/core/build/src/utils/promise.js", "../node_modules/@opentelemetry/core/build/src/utils/callback.js", "../node_modules/@opentelemetry/core/build/src/utils/configuration.js", "../node_modules/@opentelemetry/core/build/src/internal/exporter.js", "../node_modules/@opentelemetry/core/build/src/index.js", "../node_modules/@opentelemetry/context-async-hooks/build/src/AbstractAsyncHooksContextManager.js", "../node_modules/@opentelemetry/context-async-hooks/build/src/AsyncHooksContextManager.js", "../node_modules/@opentelemetry/context-async-hooks/build/src/AsyncLocalStorageContextManager.js", "../node_modules/@opentelemetry/context-async-hooks/build/src/index.js", "../node_modules/@opentelemetry/resources/build/src/default-service-name.js", "../node_modules/@opentelemetry/resources/build/src/utils.js", "../node_modules/@opentelemetry/resources/build/src/ResourceImpl.js", "../node_modules/@opentelemetry/resources/build/src/detect-resources.js", "../node_modules/@opentelemetry/resources/build/src/detectors/EnvDetector.js", "../node_modules/@opentelemetry/resources/build/src/semconv.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/execAsync.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-darwin.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-linux.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-bsd.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-win.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-unsupported.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/utils.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/HostDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/OSDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/ProcessDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/ServiceInstanceIdDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/index.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/index.js", "../node_modules/@opentelemetry/resources/build/src/detectors/NoopDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/index.js", "../node_modules/@opentelemetry/resources/build/src/index.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/enums.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/Span.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/Sampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/AlwaysOffSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/AlwaysOnSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/ParentBasedSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/TraceIdRatioBasedSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/config.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/utility.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/BatchSpanProcessorBase.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/node/export/BatchSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/node/RandomIdGenerator.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/node/index.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/index.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/semconv.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/TracerMetrics.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/version.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/Tracer.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/MultiSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/BasicTracerProvider.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/ConsoleSpanExporter.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/InMemorySpanExporter.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/SimpleSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/NoopSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-undici/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-undici/build/src/undici.js", "../node_modules/@opentelemetry/instrumentation-undici/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-express/build/src/enums/ExpressLayerType.js", "../node_modules/@opentelemetry/instrumentation-express/build/src/enums/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-express/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-express/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-express/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-express/build/src/index.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/types/LogRecord.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/NoopLogger.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/internal/global-utils.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/NoopLoggerProvider.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/ProxyLogger.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/ProxyLoggerProvider.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/api/logs.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/index.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/autoLoaderUtils.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/autoLoader.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/semver.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/shimmer.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/instrumentation.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/platform/node/ModuleNameTrie.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/platform/node/RequireInTheMiddleSingleton.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/import-in-the-middle/lib/register.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/node_modules/import-in-the-middle/index.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/utils.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/platform/node/instrumentation.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/platform/node/normalize.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/platform/node/index.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/platform/index.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleDefinition.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleFile.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/semconvStability.js", "../node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/src/index.js", "../node_modules/balanced-match/dist/commonjs/index.js", "../node_modules/brace-expansion/dist/commonjs/index.js", "../node_modules/minimatch/dist/commonjs/assert-valid-pattern.js", "../node_modules/minimatch/dist/commonjs/brace-expressions.js", "../node_modules/minimatch/dist/commonjs/unescape.js", "../node_modules/minimatch/dist/commonjs/ast.js", "../node_modules/minimatch/dist/commonjs/escape.js", "../node_modules/minimatch/dist/commonjs/index.js", "../node_modules/@fastify/otel/index.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/enum.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/enums/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/symbols.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-graphql/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-kafkajs/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-kafkajs/build/src/propagator.js", "../node_modules/@opentelemetry/instrumentation-kafkajs/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-kafkajs/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-kafkajs/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-mongodb/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-mongodb/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-mongodb/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-mongodb/build/src/types.js", "../node_modules/@opentelemetry/instrumentation-mongodb/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-mongoose/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-mongoose/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-mongoose/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-mongoose/build/src/mongoose.js", "../node_modules/@opentelemetry/instrumentation-mongoose/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-mysql/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-mysql/build/src/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-mysql/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-mysql/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-mysql/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-mysql2/build/src/semconv.js", "../node_modules/@opentelemetry/sql-common/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-mysql2/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-mysql2/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-mysql2/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-ioredis/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-ioredis/build/src/utils.js", "../node_modules/@opentelemetry/redis-common/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-ioredis/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-ioredis/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/utils.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/utils.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/redis.js", "../node_modules/@opentelemetry/instrumentation-redis/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/enums/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/enums/SpanNames.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-pg/build/src/index.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/types/LogRecord.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/NoopLogger.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/NoopLoggerProvider.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/ProxyLogger.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/ProxyLoggerProvider.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/platform/node/globalThis.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/platform/node/index.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/platform/index.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/internal/global-utils.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/api/logs.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/index.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/autoLoaderUtils.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/autoLoader.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/semver.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/shimmer.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/instrumentation.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/node/ModuleNameTrie.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/node/RequireInTheMiddleSingleton.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/import-in-the-middle/lib/register.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/import-in-the-middle/index.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/utils.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/node/instrumentation.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/node/normalize.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/node/index.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/index.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleDefinition.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleFile.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/semconvStability.js", "../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-hapi/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-hapi/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-hapi/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-hapi/build/src/enums/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-hapi/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-hapi/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-koa/build/src/types.js", "../node_modules/@opentelemetry/instrumentation-koa/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-koa/build/src/enums/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-koa/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-koa/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-koa/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-connect/build/src/enums/AttributeNames.js", "../node_modules/@opentelemetry/instrumentation-connect/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-connect/build/src/internal-types.js", "../node_modules/@opentelemetry/instrumentation-connect/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-connect/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-tedious/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-tedious/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-tedious/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-tedious/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-generic-pool/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js", "../node_modules/@opentelemetry/instrumentation-generic-pool/build/src/index.js", "../node_modules/@opentelemetry/instrumentation-amqplib/build/src/semconv.js", "../node_modules/@opentelemetry/instrumentation-amqplib/build/src/semconv-obsolete.js", "../node_modules/@opentelemetry/instrumentation-amqplib/build/src/types.js", "../node_modules/@opentelemetry/instrumentation-amqplib/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation-amqplib/build/src/version.js", "../node_modules/@opentelemetry/instrumentation-amqplib/build/src/amqplib.js", "../node_modules/@opentelemetry/instrumentation-amqplib/build/src/index.js", "../node_modules/@sentry/node/build/esm/integrations/http.js", "../node_modules/@sentry/core/build/esm/debug-build.js", "../node_modules/@sentry/core/build/esm/utils/is.js", "../node_modules/@sentry/core/build/esm/utils/worldwide.js", "../node_modules/@sentry/core/build/esm/utils/browser.js", "../node_modules/@sentry/core/build/esm/utils/version.js", "../node_modules/@sentry/core/build/esm/carrier.js", "../node_modules/@sentry/core/build/esm/utils/debug-logger.js", "../node_modules/@sentry/core/build/esm/utils/object.js", "../node_modules/@sentry/core/build/esm/tracing/utils.js", "../node_modules/@sentry/core/build/esm/tracing/spanstatus.js", "../node_modules/@sentry/core/build/esm/utils/randomSafeContext.js", "../node_modules/@sentry/core/build/esm/utils/stacktrace.js", "../node_modules/@sentry/core/build/esm/utils/string.js", "../node_modules/@sentry/core/build/esm/utils/misc.js", "../node_modules/@sentry/core/build/esm/utils/time.js", "../node_modules/@sentry/core/build/esm/session.js", "../node_modules/@sentry/core/build/esm/utils/merge.js", "../node_modules/@sentry/core/build/esm/utils/propagationContext.js", "../node_modules/@sentry/core/build/esm/utils/spanOnScope.js", "../node_modules/@sentry/core/build/esm/scope.js", "../node_modules/@sentry/core/build/esm/defaultScopes.js", "../node_modules/@sentry/core/build/esm/utils/chain-and-copy-promiselike.js", "../node_modules/@sentry/core/build/esm/asyncContext/stackStrategy.js", "../node_modules/@sentry/core/build/esm/asyncContext/index.js", "../node_modules/@sentry/core/build/esm/currentScopes.js", "../node_modules/@sentry/core/build/esm/semanticAttributes.js", "../node_modules/@sentry/core/build/esm/utils/baggage.js", "../node_modules/@sentry/core/build/esm/utils/handleCallbackErrors.js", "../node_modules/@sentry/core/build/esm/utils/hasSpansEnabled.js", "../node_modules/@sentry/core/build/esm/utils/parseSampleRate.js", "../node_modules/@sentry/core/build/esm/utils/dsn.js", "../node_modules/@sentry/core/build/esm/utils/tracing.js", "../node_modules/@sentry/core/build/esm/utils/spanUtils.js", "../node_modules/@sentry/core/build/esm/constants.js", "../node_modules/@sentry/core/build/esm/tracing/dynamicSamplingContext.js", "../node_modules/@sentry/core/build/esm/tracing/logSpans.js", "../node_modules/@sentry/core/build/esm/tracing/sampling.js", "../node_modules/@sentry/core/build/esm/tracing/sentryNonRecordingSpan.js", "../node_modules/@sentry/core/build/esm/utils/normalize.js", "../node_modules/@sentry/core/build/esm/utils/envelope.js", "../node_modules/@sentry/core/build/esm/utils/should-ignore-span.js", "../node_modules/@sentry/core/build/esm/envelope.js", "../node_modules/@sentry/core/build/esm/tracing/measurement.js", "../node_modules/@sentry/core/build/esm/tracing/sentrySpan.js", "../node_modules/@sentry/core/build/esm/tracing/trace.js", "../node_modules/@sentry/core/build/esm/utils/syncpromise.js", "../node_modules/@sentry/core/build/esm/eventProcessors.js", "../node_modules/@sentry/core/build/esm/utils/debug-ids.js", "../node_modules/@sentry/core/build/esm/utils/scopeData.js", "../node_modules/@sentry/core/build/esm/utils/prepareEvent.js", "../node_modules/@sentry/core/build/esm/exports.js", "../node_modules/@sentry/core/build/esm/checkin.js", "../node_modules/@sentry/core/build/esm/api.js", "../node_modules/@sentry/core/build/esm/integration.js", "../node_modules/@sentry/core/build/esm/attributes.js", "../node_modules/@sentry/core/build/esm/utils/timestampSequence.js", "../node_modules/@sentry/core/build/esm/utils/trace-info.js", "../node_modules/@sentry/core/build/esm/logs/envelope.js", "../node_modules/@sentry/core/build/esm/logs/internal.js", "../node_modules/@sentry/core/build/esm/metrics/envelope.js", "../node_modules/@sentry/core/build/esm/metrics/internal.js", "../node_modules/@sentry/core/build/esm/utils/timer.js", "../node_modules/@sentry/core/build/esm/utils/promisebuffer.js", "../node_modules/@sentry/core/build/esm/utils/ratelimit.js", "../node_modules/@sentry/core/build/esm/transports/base.js", "../node_modules/@sentry/core/build/esm/utils/clientreport.js", "../node_modules/@sentry/core/build/esm/utils/eventUtils.js", "../node_modules/@sentry/core/build/esm/utils/transactionEvent.js", "../node_modules/@sentry/core/build/esm/client.js", "../node_modules/@sentry/core/build/esm/instrument/handlers.js", "../node_modules/@sentry/core/build/esm/instrument/globalError.js", "../node_modules/@sentry/core/build/esm/instrument/globalUnhandledRejection.js", "../node_modules/@sentry/core/build/esm/tracing/errors.js", "../node_modules/@sentry/core/build/esm/transports/userAgent.js", "../node_modules/@sentry/core/build/esm/utils/eventbuilder.js", "../node_modules/@sentry/core/build/esm/server-runtime-client.js", "../node_modules/@sentry/core/build/esm/utils/ai/providerSkip.js", "../node_modules/@sentry/core/build/esm/utils/envToBool.js", "../node_modules/@sentry/core/build/esm/utils/url.js", "../node_modules/@sentry/core/build/esm/utils/sdkMetadata.js", "../node_modules/@sentry/core/build/esm/utils/traceData.js", "../node_modules/@sentry/core/build/esm/utils/tracePropagationTargets.js", "../node_modules/@sentry/core/build/esm/utils/debounce.js", "../node_modules/@sentry/core/build/esm/utils/request.js", "../node_modules/@sentry/core/build/esm/breadcrumbs.js", "../node_modules/@sentry/core/build/esm/integrations/functiontostring.js", "../node_modules/@sentry/core/build/esm/integrations/eventFilters.js", "../node_modules/@sentry/core/build/esm/utils/aggregate-errors.js", "../node_modules/@sentry/core/build/esm/integrations/linkederrors.js", "../node_modules/@sentry/core/build/esm/utils/cookie.js", "../node_modules/@sentry/core/build/esm/vendor/getIpAddress.js", "../node_modules/@sentry/core/build/esm/integrations/requestdata.js", "../node_modules/@sentry/core/build/esm/instrument/console.js", "../node_modules/@sentry/core/build/esm/utils/severity.js", "../node_modules/@sentry/core/build/esm/utils/path.js", "../node_modules/@sentry/core/build/esm/integrations/postgresjs.js", "../node_modules/@sentry/core/build/esm/integrations/console.js", "../node_modules/@sentry/core/build/esm/integrations/conversationId.js", "../node_modules/@sentry/core/build/esm/metrics/public-api.js", "../node_modules/@sentry/core/build/esm/tracing/ai/gen-ai-attributes.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/ai/mediaStripping.js", "../node_modules/@sentry/core/build/esm/tracing/ai/messageTruncation.js", "../node_modules/@sentry/core/build/esm/tracing/ai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/vercel-ai-attributes.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/index.js", "../node_modules/@sentry/core/build/esm/tracing/openai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/openai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/openai/streaming.js", "../node_modules/@sentry/core/build/esm/tracing/openai/index.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/streaming.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/index.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/streaming.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/index.js", "../node_modules/@sentry/core/build/esm/tracing/langchain/constants.js", "../node_modules/@sentry/core/build/esm/tracing/langchain/utils.js", "../node_modules/@sentry/core/build/esm/tracing/langchain/index.js", "../node_modules/@sentry/core/build/esm/tracing/langgraph/constants.js", "../node_modules/@sentry/core/build/esm/tracing/langgraph/utils.js", "../node_modules/@sentry/core/build/esm/tracing/langgraph/index.js", "../node_modules/@sentry/core/build/esm/utils/breadcrumb-log-level.js", "../node_modules/@sentry/core/build/esm/utils/exports.js", "../node_modules/@sentry/core/build/esm/utils/node-stack-trace.js", "../node_modules/@sentry/core/build/esm/utils/lru.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/httpServerSpansIntegration.js", "../node_modules/@sentry/node-core/build/esm/debug-build.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/httpServerIntegration.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/constants.js", "../node_modules/@sentry/node-core/build/esm/utils/captureRequestBody.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/SentryHttpInstrumentation.js", "../node_modules/@sentry/node-core/build/esm/utils/baggage.js", "../node_modules/@sentry/node-core/build/esm/utils/outgoingHttpRequest.js", "../node_modules/@sentry/node-core/build/esm/integrations/node-fetch/SentryNodeFetchInstrumentation.js", "../node_modules/@sentry/node-core/build/esm/nodeVersion.js", "../node_modules/@sentry/node-core/build/esm/utils/outgoingFetchRequest.js", "../node_modules/@sentry/node-core/build/esm/otel/contextManager.js", "../node_modules/@sentry/opentelemetry/build/esm/index.js", "../node_modules/@sentry/node-core/build/esm/otel/logger.js", "../node_modules/@sentry/node-core/build/esm/otel/instrument.js", "../node_modules/@sentry/node-core/build/esm/integrations/childProcess.js", "../node_modules/@sentry/node-core/build/esm/integrations/context.js", "../node_modules/@sentry/node-core/build/esm/integrations/contextlines.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/index.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/local-variables-async.js", "../node_modules/@sentry/node-core/build/esm/utils/debug.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/common.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/local-variables-sync.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/index.js", "../node_modules/@sentry/node-core/build/esm/integrations/modules.js", "../node_modules/@sentry/node-core/build/esm/utils/detection.js", "../node_modules/@sentry/node-core/build/esm/integrations/node-fetch/index.js", "../node_modules/@sentry/node-core/build/esm/integrations/onuncaughtexception.js", "../node_modules/@sentry/node-core/build/esm/utils/errorhandling.js", "../node_modules/@sentry/node-core/build/esm/integrations/onunhandledrejection.js", "../node_modules/@sentry/node-core/build/esm/integrations/processSession.js", "../node_modules/@sentry/node-core/build/esm/integrations/spotlight.js", "../node_modules/@sentry/node-core/build/esm/integrations/systemError.js", "../node_modules/@sentry/node-core/build/esm/transports/http.js", "../node_modules/@sentry/node-core/build/esm/proxy/index.js", "../node_modules/@sentry/node-core/build/esm/proxy/base.js", "../node_modules/@sentry/node-core/build/esm/proxy/parse-proxy-response.js", "../node_modules/@sentry/node-core/build/esm/utils/spotlight.js", "../node_modules/@sentry/node-core/build/esm/utils/module.js", "../node_modules/@sentry/node-core/build/esm/sdk/api.js", "../node_modules/@sentry/node-core/build/esm/sdk/client.js", "../node_modules/@sentry/node-core/build/esm/sdk/esmLoader.js", "../node_modules/@sentry/node-core/build/esm/sdk/index.js", "../node_modules/@sentry/node-core/build/esm/utils/addOriginToSpan.js", "../node_modules/@sentry/node-core/build/esm/utils/getRequestUrl.js", "../node_modules/@sentry/node/build/esm/integrations/node-fetch.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/express.js", "../node_modules/@sentry/node/build/esm/debug-build.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/enums/AttributeNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/constants.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/kafka.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/lrumemoizer.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongo.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongoose.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql2.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/redis.js", "../node_modules/@sentry/node/build/esm/utils/redisCache.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgres.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgresjs.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/prisma.js", "../node_modules/@prisma/instrumentation/dist/index.mjs", "../node_modules/@sentry/node/build/esm/integrations/tracing/hapi/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hono/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hono/constants.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hono/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/koa.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/connect.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/tedious.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/genericPool.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/amqplib.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/vercelai/constants.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/vercelai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/vercelai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/openai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/openai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/anthropic-ai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/anthropic-ai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/google-genai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/google-genai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langchain/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langchain/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langgraph/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langgraph/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/otel/firebaseInstrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/otel/patches/firestore.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/otel/patches/functions.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/firebase.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/index.js", "../node_modules/@sentry/node/build/esm/sdk/initOtel.js", "../node_modules/@sentry/node/build/esm/sdk/index.js", "../src/telemetry.ts", "../src/post.ts"], + "sources": ["../node_modules/@opentelemetry/api/build/src/version.js", "../node_modules/@opentelemetry/api/build/src/internal/semver.js", "../node_modules/@opentelemetry/api/build/src/internal/global-utils.js", "../node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js", "../node_modules/@opentelemetry/api/build/src/diag/types.js", "../node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js", "../node_modules/@opentelemetry/api/build/src/api/diag.js", "../node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js", "../node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js", "../node_modules/@opentelemetry/api/build/src/baggage/utils.js", "../node_modules/@opentelemetry/api/build/src/context/context.js", "../node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js", "../node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js", "../node_modules/@opentelemetry/api/build/src/metrics/Metric.js", "../node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js", "../node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js", "../node_modules/@opentelemetry/api/build/src/api/context.js", "../node_modules/@opentelemetry/api/build/src/trace/trace_flags.js", "../node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js", "../node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js", "../node_modules/@opentelemetry/api/build/src/trace/context-utils.js", "../node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js", "../node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js", "../node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js", "../node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js", "../node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js", "../node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js", "../node_modules/@opentelemetry/api/build/src/trace/span_kind.js", "../node_modules/@opentelemetry/api/build/src/trace/status.js", "../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js", "../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js", "../node_modules/@opentelemetry/api/build/src/trace/internal/utils.js", "../node_modules/@opentelemetry/api/build/src/context-api.js", "../node_modules/@opentelemetry/api/build/src/diag-api.js", "../node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js", "../node_modules/@opentelemetry/api/build/src/api/metrics.js", "../node_modules/@opentelemetry/api/build/src/metrics-api.js", "../node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js", "../node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js", "../node_modules/@opentelemetry/api/build/src/api/propagation.js", "../node_modules/@opentelemetry/api/build/src/propagation-api.js", "../node_modules/@opentelemetry/api/build/src/api/trace.js", "../node_modules/@opentelemetry/api/build/src/trace-api.js", "../node_modules/@opentelemetry/api/build/src/index.js", "../node_modules/@opentelemetry/core/build/src/trace/suppress-tracing.js", "../node_modules/@opentelemetry/core/build/src/baggage/constants.js", "../node_modules/@opentelemetry/core/build/src/baggage/utils.js", "../node_modules/@opentelemetry/core/build/src/baggage/propagation/W3CBaggagePropagator.js", "../node_modules/@opentelemetry/core/build/src/common/anchored-clock.js", "../node_modules/@opentelemetry/core/build/src/common/attributes.js", "../node_modules/@opentelemetry/core/build/src/common/logging-error-handler.js", "../node_modules/@opentelemetry/core/build/src/common/global-error-handler.js", "../node_modules/@opentelemetry/core/build/src/platform/node/environment.js", "../node_modules/@opentelemetry/core/build/src/common/globalThis.js", "../node_modules/@opentelemetry/core/build/src/version.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/internal/utils.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/trace/SemanticAttributes.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/trace/index.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/resource/SemanticResourceAttributes.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/resource/index.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/stable_metrics.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/stable_events.js", "../node_modules/@opentelemetry/semantic-conventions/build/src/index.js", "../node_modules/@opentelemetry/core/build/src/semconv.js", "../node_modules/@opentelemetry/core/build/src/platform/node/sdk-info.js", "../node_modules/@opentelemetry/core/build/src/platform/node/index.js", "../node_modules/@opentelemetry/core/build/src/platform/index.js", "../node_modules/@opentelemetry/core/build/src/common/time.js", "../node_modules/@opentelemetry/core/build/src/common/timer-util.js", "../node_modules/@opentelemetry/core/build/src/ExportResult.js", "../node_modules/@opentelemetry/core/build/src/propagation/composite.js", "../node_modules/@opentelemetry/core/build/src/internal/validators.js", "../node_modules/@opentelemetry/core/build/src/trace/TraceState.js", "../node_modules/@opentelemetry/core/build/src/trace/W3CTraceContextPropagator.js", "../node_modules/@opentelemetry/core/build/src/trace/rpc-metadata.js", "../node_modules/@opentelemetry/core/build/src/utils/lodash.merge.js", "../node_modules/@opentelemetry/core/build/src/utils/merge.js", "../node_modules/@opentelemetry/core/build/src/utils/timeout.js", "../node_modules/@opentelemetry/core/build/src/utils/url.js", "../node_modules/@opentelemetry/core/build/src/utils/promise.js", "../node_modules/@opentelemetry/core/build/src/utils/callback.js", "../node_modules/@opentelemetry/core/build/src/utils/configuration.js", "../node_modules/@opentelemetry/core/build/src/internal/exporter.js", "../node_modules/@opentelemetry/core/build/src/index.js", "../node_modules/@opentelemetry/api-logs/build/src/types/LogRecord.js", "../node_modules/@opentelemetry/api-logs/build/src/NoopLogger.js", "../node_modules/@opentelemetry/api-logs/build/src/internal/global-utils.js", "../node_modules/@opentelemetry/api-logs/build/src/NoopLoggerProvider.js", "../node_modules/@opentelemetry/api-logs/build/src/ProxyLogger.js", "../node_modules/@opentelemetry/api-logs/build/src/ProxyLoggerProvider.js", "../node_modules/@opentelemetry/api-logs/build/src/api/logs.js", "../node_modules/@opentelemetry/api-logs/build/src/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/autoLoaderUtils.js", "../node_modules/@opentelemetry/instrumentation/build/src/autoLoader.js", "../node_modules/@opentelemetry/instrumentation/build/src/semver.js", "../node_modules/@opentelemetry/instrumentation/build/src/shimmer.js", "../node_modules/@opentelemetry/instrumentation/build/src/instrumentation.js", "../node_modules/ms/index.js", "../node_modules/debug/src/common.js", "../node_modules/debug/src/browser.js", "../node_modules/debug/src/node.js", "../node_modules/debug/src/index.js", "../node_modules/module-details-from-path/index.js", "../node_modules/require-in-the-middle/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/ModuleNameTrie.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/RequireInTheMiddleSingleton.js", "../node_modules/import-in-the-middle/lib/register.js", "../node_modules/import-in-the-middle/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/utils.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/instrumentation.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/normalize.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/node/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/platform/index.js", "../node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleDefinition.js", "../node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleFile.js", "../node_modules/@opentelemetry/instrumentation/build/src/semconvStability.js", "../node_modules/@opentelemetry/instrumentation/build/src/index.js", "../node_modules/@opentelemetry/resources/build/src/default-service-name.js", "../node_modules/@opentelemetry/resources/build/src/utils.js", "../node_modules/@opentelemetry/resources/build/src/ResourceImpl.js", "../node_modules/@opentelemetry/resources/build/src/detect-resources.js", "../node_modules/@opentelemetry/resources/build/src/detectors/EnvDetector.js", "../node_modules/@opentelemetry/resources/build/src/semconv.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/execAsync.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-darwin.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-linux.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-bsd.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-win.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId-unsupported.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/getMachineId.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/utils.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/HostDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/OSDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/ProcessDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/ServiceInstanceIdDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/node/index.js", "../node_modules/@opentelemetry/resources/build/src/detectors/platform/index.js", "../node_modules/@opentelemetry/resources/build/src/detectors/NoopDetector.js", "../node_modules/@opentelemetry/resources/build/src/detectors/index.js", "../node_modules/@opentelemetry/resources/build/src/index.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/enums.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/Span.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/Sampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/AlwaysOffSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/AlwaysOnSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/ParentBasedSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/TraceIdRatioBasedSampler.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/config.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/utility.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/BatchSpanProcessorBase.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/node/export/BatchSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/node/RandomIdGenerator.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/node/index.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/platform/index.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/semconv.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/TracerMetrics.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/version.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/Tracer.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/MultiSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/BasicTracerProvider.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/ConsoleSpanExporter.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/InMemorySpanExporter.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/SimpleSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/export/NoopSpanProcessor.js", "../node_modules/@opentelemetry/sdk-trace-base/build/src/index.js", "../node_modules/@sentry/core/build/esm/debug-build.js", "../node_modules/@sentry/core/build/esm/utils/version.js", "../node_modules/@sentry/core/build/esm/utils/worldwide.js", "../node_modules/@sentry/core/build/esm/carrier.js", "../node_modules/@sentry/core/build/esm/utils/debug-logger.js", "../node_modules/@sentry/core/build/esm/utils/is.js", "../node_modules/@sentry/core/build/esm/utils/object.js", "../node_modules/@sentry/core/build/esm/utils/weakRef.js", "../node_modules/@sentry/core/build/esm/tracing/utils.js", "../node_modules/@sentry/core/build/esm/tracing/spanstatus.js", "../node_modules/@sentry/core/build/esm/utils/randomSafeContext.js", "../node_modules/@sentry/core/build/esm/utils/normalizationHints.js", "../node_modules/@sentry/core/build/esm/utils/stacktrace.js", "../node_modules/@sentry/core/build/esm/utils/normalize.js", "../node_modules/@sentry/core/build/esm/utils/string.js", "../node_modules/@sentry/core/build/esm/utils/misc.js", "../node_modules/@sentry/core/build/esm/utils/time.js", "../node_modules/@sentry/core/build/esm/session.js", "../node_modules/@sentry/core/build/esm/utils/merge.js", "../node_modules/@sentry/core/build/esm/utils/propagationContext.js", "../node_modules/@sentry/core/build/esm/utils/spanOnScope.js", "../node_modules/@sentry/core/build/esm/scope.js", "../node_modules/@sentry/core/build/esm/defaultScopes.js", "../node_modules/@sentry/core/build/esm/utils/chain-and-copy-promiselike.js", "../node_modules/@sentry/core/build/esm/asyncContext/stackStrategy.js", "../node_modules/@sentry/core/build/esm/asyncContext/index.js", "../node_modules/@sentry/core/build/esm/currentScopes.js", "../node_modules/@sentry/core/build/esm/semanticAttributes.js", "../node_modules/@sentry/core/build/esm/utils/baggage.js", "../node_modules/@sentry/core/build/esm/utils/handleCallbackErrors.js", "../node_modules/@sentry/core/build/esm/utils/hasSpansEnabled.js", "../node_modules/@sentry/core/build/esm/utils/should-ignore-span.js", "../node_modules/@sentry/core/build/esm/tracing/spans/hasSpanStreamingEnabled.js", "../node_modules/@sentry/core/build/esm/utils/parseSampleRate.js", "../node_modules/@sentry/core/build/esm/attributes.js", "../node_modules/@sentry/core/build/esm/utils/dsn.js", "../node_modules/@sentry/core/build/esm/utils/tracing.js", "../node_modules/@sentry/core/build/esm/utils/spanUtils.js", "../node_modules/@sentry/core/build/esm/constants.js", "../node_modules/@sentry/core/build/esm/tracing/sentryNonRecordingSpan.js", "../node_modules/@sentry/core/build/esm/tracing/dynamicSamplingContext.js", "../node_modules/@sentry/core/build/esm/tracing/logSpans.js", "../node_modules/@sentry/core/build/esm/tracing/sampling.js", "../node_modules/@sentry/core/build/esm/tracing/spans/beforeSendSpan.js", "../node_modules/@sentry/core/build/esm/utils/envelope.js", "../node_modules/@sentry/core/build/esm/envelope.js", "../node_modules/@sentry/core/build/esm/tracing/measurement.js", "../node_modules/@sentry/core/build/esm/tracing/sentrySpan.js", "../node_modules/@sentry/core/build/esm/tracing/trace.js", "../node_modules/@sentry/core/build/esm/tracing/bindScopeToEmitter.js", "../node_modules/@sentry/core/build/esm/utils/scopeData.js", "../node_modules/@sentry/core/build/esm/tracing/spans/scopeContextAttributes.js", "../node_modules/@sentry/core/build/esm/tracing/spans/captureSpan.js", "../node_modules/@sentry/core/build/esm/utils/syncpromise.js", "../node_modules/@sentry/core/build/esm/eventProcessors.js", "../node_modules/@sentry/core/build/esm/utils/debug-ids.js", "../node_modules/@sentry/core/build/esm/utils/prepareEvent.js", "../node_modules/@sentry/core/build/esm/exports.js", "../node_modules/@sentry/core/build/esm/utils/timer.js", "../node_modules/@sentry/core/build/esm/asyncContext/tracing-channel-binding.js", "../node_modules/@sentry/core/build/esm/utils/promisebuffer.js", "../node_modules/@sentry/core/build/esm/utils/ratelimit.js", "../node_modules/@sentry/core/build/esm/transports/base.js", "../node_modules/@sentry/core/build/esm/integration.js", "../node_modules/@sentry/core/build/esm/utils/ai/providerSkip.js", "../node_modules/@sentry/core/build/esm/utils/envToBool.js", "../node_modules/@sentry/core/build/esm/utils/url.js", "../node_modules/@sentry/core/build/esm/utils/sdkMetadata.js", "../node_modules/@sentry/core/build/esm/utils/traceData.js", "../node_modules/@sentry/core/build/esm/utils/tracePropagationTargets.js", "../node_modules/@sentry/core/build/esm/utils/debounce.js", "../node_modules/@sentry/core/build/esm/utils/data-collection/filtering-snippets.js", "../node_modules/@sentry/core/build/esm/utils/data-collection/defaultPiiToCollectionOptions.js", "../node_modules/@sentry/core/build/esm/utils/data-collection/filterKeyValueData.js", "../node_modules/@sentry/core/build/esm/utils/request.js", "../node_modules/@sentry/core/build/esm/spanKind.js", "../node_modules/@sentry/core/build/esm/breadcrumbs.js", "../node_modules/@sentry/core/build/esm/integrations/functiontostring.js", "../node_modules/@sentry/core/build/esm/utils/eventUtils.js", "../node_modules/@sentry/core/build/esm/integrations/eventFilters.js", "../node_modules/@sentry/core/build/esm/utils/aggregate-errors.js", "../node_modules/@sentry/core/build/esm/utils/eventbuilder.js", "../node_modules/@sentry/core/build/esm/integrations/linkederrors.js", "../node_modules/@sentry/core/build/esm/utils/cookie.js", "../node_modules/@sentry/core/build/esm/vendor/getIpAddress.js", "../node_modules/@sentry/core/build/esm/integrations/requestdata.js", "../node_modules/@sentry/core/build/esm/instrument/handlers.js", "../node_modules/@sentry/core/build/esm/instrument/console.js", "../node_modules/@sentry/core/build/esm/utils/severity.js", "../node_modules/@sentry/core/build/esm/utils/path.js", "../node_modules/@sentry/core/build/esm/integrations/console.js", "../node_modules/@sentry/core/build/esm/integrations/conversationId.js", "../node_modules/@sentry/core/build/esm/utils/timestampSequence.js", "../node_modules/@sentry/core/build/esm/utils/trace-info.js", "../node_modules/@sentry/core/build/esm/utils/env.js", "../node_modules/@sentry/core/build/esm/utils/node.js", "../node_modules/@sentry/core/build/esm/utils/isBrowser.js", "../node_modules/@sentry/core/build/esm/logs/envelope.js", "../node_modules/@sentry/core/build/esm/logs/internal.js", "../node_modules/@sentry/core/build/esm/metrics/envelope.js", "../node_modules/@sentry/core/build/esm/metrics/internal.js", "../node_modules/@sentry/core/build/esm/metrics/public-api.js", "../node_modules/@sentry/core/build/esm/tracing/ai/gen-ai-attributes.js", "../node_modules/@sentry/core/build/esm/tracing/ai/mediaStripping.js", "../node_modules/@sentry/core/build/esm/tracing/ai/messageTruncation.js", "../node_modules/@sentry/core/build/esm/tracing/ai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/vercel-ai-attributes.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/vercel-ai/index.js", "../node_modules/@sentry/core/build/esm/tracing/openai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/openai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/openai/streaming.js", "../node_modules/@sentry/core/build/esm/tracing/openai/index.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/streaming.js", "../node_modules/@sentry/core/build/esm/tracing/anthropic-ai/index.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/constants.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/streaming.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/utils.js", "../node_modules/@sentry/core/build/esm/tracing/google-genai/index.js", "../node_modules/@sentry/core/build/esm/tracing/langchain/constants.js", "../node_modules/@sentry/core/build/esm/tracing/langchain/utils.js", "../node_modules/@sentry/core/build/esm/tracing/langchain/index.js", "../node_modules/@sentry/core/build/esm/tracing/langgraph/constants.js", "../node_modules/@sentry/core/build/esm/tracing/langgraph/utils.js", "../node_modules/@sentry/core/build/esm/tracing/langgraph/index.js", "../node_modules/@sentry/core/build/esm/tracing/spans/envelope.js", "../node_modules/@sentry/core/build/esm/tracing/spans/estimateSize.js", "../node_modules/@sentry/core/build/esm/tracing/spans/spanBuffer.js", "../node_modules/@sentry/core/build/esm/integrations/spanStreaming.js", "../node_modules/@sentry/core/build/esm/utils/breadcrumb-log-level.js", "../node_modules/@sentry/core/build/esm/utils/exports.js", "../node_modules/@sentry/core/build/esm/utils/lru.js", "../node_modules/@sentry/core/build/esm/checkin.js", "../node_modules/@sentry/core/build/esm/api.js", "../node_modules/@sentry/core/build/esm/tracing/spans/spanJsonToStreamedSpan.js", "../node_modules/@sentry/core/build/esm/tracing/spans/extractGenAiSpans.js", "../node_modules/@sentry/core/build/esm/utils/clientreport.js", "../node_modules/@sentry/core/build/esm/utils/transactionEvent.js", "../node_modules/@sentry/core/build/esm/utils/data-collection/resolveDataCollectionOptions.js", "../node_modules/@sentry/core/build/esm/client.js", "../node_modules/@sentry/core/build/esm/transports/userAgent.js", "../node_modules/@sentry/core/build/esm/server-runtime-client.js", "../node_modules/@sentry/core/build/esm/utils/node-stack-trace.js", "../node_modules/@sentry/core/build/esm/integrations/express/request-layer-store.js", "../node_modules/@sentry/core/build/esm/integrations/express/types.js", "../node_modules/@sentry/core/build/esm/integrations/express/utils.js", "../node_modules/@sentry/core/build/esm/integrations/express/set-sdk-processing-metadata.js", "../node_modules/@sentry/core/build/esm/integrations/express/patch-layer.js", "../node_modules/@sentry/core/build/esm/utils/get-default-export.js", "../node_modules/@sentry/core/build/esm/integrations/express/index.js", "../node_modules/@sentry/core/build/esm/integrations/postgresjs.js", "../node_modules/@sentry/core/build/esm/integrations/http/constants.js", "../node_modules/@sentry/core/build/esm/integrations/http/get-request-url.js", "../node_modules/@sentry/core/build/esm/integrations/http/add-outgoing-request-breadcrumb.js", "../node_modules/@sentry/core/build/esm/integrations/http/get-outgoing-span-data.js", "../node_modules/@sentry/core/build/esm/integrations/http/inject-trace-propagation-headers.js", "../node_modules/@sentry/core/build/esm/integrations/http/double-wrap-warning.js", "../node_modules/@sentry/core/build/esm/integrations/http/client-subscriptions.js", "../node_modules/@sentry/core/build/esm/integrations/http/client-patch.js", "../node_modules/@sentry/core/build/esm/integrations/http/patch-request-to-capture-body.js", "../node_modules/@sentry/core/build/esm/integrations/http/record-request-session.js", "../node_modules/@sentry/core/build/esm/integrations/http/server-subscription.js", "../node_modules/@sentry/core/build/esm/tracing/langchain/embeddings.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/httpServerSpansIntegration.js", "../node_modules/@sentry/conventions/dist/attributes.mjs", "../node_modules/@sentry/node-core/build/esm/debug-build.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/httpServerIntegration.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/SentryHttpInstrumentation.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/constants.js", "../node_modules/@sentry/node-core/build/esm/nodeVersion.js", "../node_modules/@sentry/node-core/build/esm/integrations/node-fetch/SentryNodeFetchInstrumentation.js", "../node_modules/@sentry/node-core/build/esm/utils/outgoingFetchRequest.js", "../node_modules/@sentry/opentelemetry/build/esm/asyncContextStrategy-DfM95hx5.js", "../node_modules/@sentry/opentelemetry/build/esm/index.js", "../node_modules/@sentry/node-core/build/esm/otel/contextManager.js", "../node_modules/@sentry/node-core/build/esm/otel/logger.js", "../node_modules/@sentry/node-core/build/esm/otel/instrument.js", "../node_modules/@sentry/node-core/build/esm/integrations/childProcess.js", "../node_modules/@sentry/node-core/build/esm/integrations/context.js", "../node_modules/@sentry/node-core/build/esm/integrations/contextlines.js", "../node_modules/@sentry/node-core/build/esm/integrations/http/index.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/local-variables-async.js", "../node_modules/@sentry/node-core/build/esm/utils/debug.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/common.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/local-variables-sync.js", "../node_modules/@sentry/node-core/build/esm/integrations/local-variables/index.js", "../node_modules/@sentry/node-core/build/esm/integrations/modules.js", "../node_modules/@sentry/node-core/build/esm/integrations/node-fetch/index.js", "../node_modules/@sentry/node-core/build/esm/integrations/onuncaughtexception.js", "../node_modules/@sentry/node-core/build/esm/utils/errorhandling.js", "../node_modules/@sentry/node-core/build/esm/integrations/onunhandledrejection.js", "../node_modules/@sentry/node-core/build/esm/integrations/processSession.js", "../node_modules/@sentry/node-core/build/esm/integrations/spotlight.js", "../node_modules/@sentry/node-core/build/esm/integrations/console.js", "../node_modules/@sentry/node-core/build/esm/integrations/systemError.js", "../node_modules/@sentry/node-core/build/esm/transports/http.js", "../node_modules/@sentry/node-core/build/esm/proxy/index.js", "../node_modules/@sentry/node-core/build/esm/proxy/base.js", "../node_modules/@sentry/node-core/build/esm/proxy/parse-proxy-response.js", "../node_modules/@sentry/node-core/build/esm/utils/spotlight.js", "../node_modules/@sentry/node-core/build/esm/utils/module.js", "../node_modules/@sentry/node-core/build/esm/sdk/api.js", "../node_modules/@sentry/node-core/build/esm/sdk/client.js", "../node_modules/@sentry/node-core/build/esm/sdk/esmLoader.js", "../node_modules/@sentry/node-core/build/esm/utils/detection.js", "../node_modules/@sentry/node-core/build/esm/sdk/index.js", "../node_modules/@sentry/node-core/build/esm/utils/addOriginToSpan.js", "../node_modules/@sentry/node/build/esm/integrations/http.js", "../node_modules/@sentry/node/build/esm/integrations/node-fetch/undici-instrumentation.js", "../node_modules/@sentry/node/build/esm/debug-build.js", "../node_modules/@sentry/node/build/esm/integrations/node-fetch/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/express.js", "../node_modules/@sentry/node/build/esm/utils/setHttpServerSpanRouteAttribute.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/enums/AttributeNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/v3/constants.js", "../node_modules/@sentry/server-utils/build/esm/debug-build.js", "../node_modules/@sentry/server-utils/build/esm/tracing-channel.js", "../node_modules/@sentry/server-utils/build/esm/redis/redis-dc-subscriber.js", "../node_modules/@sentry/conventions/dist/op.mjs", "../node_modules/@sentry/server-utils/build/esm/vercel-ai/vercel-ai-dc-subscriber.js", "../node_modules/@sentry/server-utils/build/esm/vercel-ai/index.js", "../node_modules/@sentry/server-utils/build/esm/integrations/tracing-channel/fastify/instrumentation.js", "../node_modules/@sentry/server-utils/build/esm/integrations/tracing-channel/fastify/utils.js", "../node_modules/@sentry/server-utils/build/esm/integrations/tracing-channel/fastify/errors.js", "../node_modules/@sentry/server-utils/build/esm/integrations/tracing-channel/fastify/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/fastify/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/InstrumentationNodeModuleFile.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql/vendored/enum.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql/vendored/enums/AttributeNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql/vendored/symbols.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql/vendored/internal-types.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/graphql/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/kafka/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/kafka/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/kafka/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/kafka/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/lrumemoizer/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/lrumemoizer/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongo/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongo/vendored/internal-types.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongo/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongo/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongo/vendored/patches.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongo/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongoose/vendored/mongoose.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongoose/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongoose/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mongoose/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql2/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql2/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/mysql2/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/redis/index.js", "../node_modules/@sentry/node/build/esm/utils/redisCache.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/redis/vendored/redis-common.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/redis/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgres/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgres/vendored/enums/SpanNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgres/vendored/enums/AttributeNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgres/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgres/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgres/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/postgresjs.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/prisma/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/prisma/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/prisma/vendored/active-tracing-helper.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/prisma/vendored/constants.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/prisma/vendored/global.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hapi/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hapi/vendored/enums/AttributeNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hapi/vendored/internal-types.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hapi/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hapi/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hapi/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hono/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hono/constants.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/hono/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/koa/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/koa/vendored/types.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/koa/vendored/enums/AttributeNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/koa/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/koa/vendored/internal-types.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/koa/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/connect/vendored/enums/AttributeNames.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/connect/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/connect/vendored/internal-types.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/connect/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/connect/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/tedious/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/tedious/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/tedious/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/tedious/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/genericPool/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/genericPool/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/amqplib/vendored/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/amqplib/vendored/types.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/amqplib/vendored/utils.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/amqplib/vendored/semconv.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/amqplib/vendored/patches.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/amqplib/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/vercelai/constants.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/vercelai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/vercelai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/openai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/openai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/anthropic-ai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/anthropic-ai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/google-genai/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/google-genai/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langchain/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langchain/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langgraph/instrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/langgraph/index.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/otel/firebaseInstrumentation.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/otel/patches/firestore.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/otel/patches/functions.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/firebase/firebase.js", "../node_modules/@sentry/node/build/esm/integrations/tracing/index.js", "../node_modules/@sentry/node/build/esm/sdk/diagnosticsChannelInjection.js", "../node_modules/@sentry/node/build/esm/sdk/initOtel.js", "../node_modules/@sentry/node/build/esm/sdk/index.js", "../src/telemetry.ts", "../src/post.ts"], "sourcesContent": [ "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.VERSION = '1.9.1';\n//# sourceMappingURL=version.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCompatible = exports._makeCompatibilityCheck = void 0;\nconst version_1 = require(\"../version\");\nconst re = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n/**\n * Create a function to test an API version to see if it is compatible with the provided ownVersion.\n *\n * The returned function has the following semantics:\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param ownVersion version which should be checked against\n */\nfunction _makeCompatibilityCheck(ownVersion) {\n const acceptedVersions = new Set([ownVersion]);\n const rejectedVersions = new Set();\n const myVersionMatch = ownVersion.match(re);\n if (!myVersionMatch) {\n // we cannot guarantee compatibility so we always return noop\n return () => false;\n }\n const ownVersionParsed = {\n major: +myVersionMatch[1],\n minor: +myVersionMatch[2],\n patch: +myVersionMatch[3],\n prerelease: myVersionMatch[4],\n };\n // if ownVersion has a prerelease tag, versions must match exactly\n if (ownVersionParsed.prerelease != null) {\n return function isExactmatch(globalVersion) {\n return globalVersion === ownVersion;\n };\n }\n function _reject(v) {\n rejectedVersions.add(v);\n return false;\n }\n function _accept(v) {\n acceptedVersions.add(v);\n return true;\n }\n return function isCompatible(globalVersion) {\n if (acceptedVersions.has(globalVersion)) {\n return true;\n }\n if (rejectedVersions.has(globalVersion)) {\n return false;\n }\n const globalVersionMatch = globalVersion.match(re);\n if (!globalVersionMatch) {\n // cannot parse other version\n // we cannot guarantee compatibility so we always noop\n return _reject(globalVersion);\n }\n const globalVersionParsed = {\n major: +globalVersionMatch[1],\n minor: +globalVersionMatch[2],\n patch: +globalVersionMatch[3],\n prerelease: globalVersionMatch[4],\n };\n // if globalVersion has a prerelease tag, versions must match exactly\n if (globalVersionParsed.prerelease != null) {\n return _reject(globalVersion);\n }\n // major versions must match\n if (ownVersionParsed.major !== globalVersionParsed.major) {\n return _reject(globalVersion);\n }\n if (ownVersionParsed.major === 0) {\n if (ownVersionParsed.minor === globalVersionParsed.minor &&\n ownVersionParsed.patch <= globalVersionParsed.patch) {\n return _accept(globalVersion);\n }\n return _reject(globalVersion);\n }\n if (ownVersionParsed.minor <= globalVersionParsed.minor) {\n return _accept(globalVersion);\n }\n return _reject(globalVersion);\n };\n}\nexports._makeCompatibilityCheck = _makeCompatibilityCheck;\n/**\n * Test an API version to see if it is compatible with this API.\n *\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param version version of the API requesting an instance of the global API\n */\nexports.isCompatible = _makeCompatibilityCheck(version_1.VERSION);\n//# sourceMappingURL=semver.js.map", @@ -48,7 +48,7 @@ "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.trace = exports.propagation = exports.metrics = exports.diag = exports.context = exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = exports.isValidSpanId = exports.isValidTraceId = exports.isSpanContextValid = exports.createTraceState = exports.TraceFlags = exports.SpanStatusCode = exports.SpanKind = exports.SamplingDecision = exports.ProxyTracerProvider = exports.ProxyTracer = exports.defaultTextMapSetter = exports.defaultTextMapGetter = exports.ValueType = exports.createNoopMeter = exports.DiagLogLevel = exports.DiagConsoleLogger = exports.ROOT_CONTEXT = exports.createContextKey = exports.baggageEntryMetadataFromString = void 0;\nvar utils_1 = require(\"./baggage/utils\");\nObject.defineProperty(exports, \"baggageEntryMetadataFromString\", { enumerable: true, get: function () { return utils_1.baggageEntryMetadataFromString; } });\n// Context APIs\nvar context_1 = require(\"./context/context\");\nObject.defineProperty(exports, \"createContextKey\", { enumerable: true, get: function () { return context_1.createContextKey; } });\nObject.defineProperty(exports, \"ROOT_CONTEXT\", { enumerable: true, get: function () { return context_1.ROOT_CONTEXT; } });\n// Diag APIs\nvar consoleLogger_1 = require(\"./diag/consoleLogger\");\nObject.defineProperty(exports, \"DiagConsoleLogger\", { enumerable: true, get: function () { return consoleLogger_1.DiagConsoleLogger; } });\nvar types_1 = require(\"./diag/types\");\nObject.defineProperty(exports, \"DiagLogLevel\", { enumerable: true, get: function () { return types_1.DiagLogLevel; } });\n// Metrics APIs\nvar NoopMeter_1 = require(\"./metrics/NoopMeter\");\nObject.defineProperty(exports, \"createNoopMeter\", { enumerable: true, get: function () { return NoopMeter_1.createNoopMeter; } });\nvar Metric_1 = require(\"./metrics/Metric\");\nObject.defineProperty(exports, \"ValueType\", { enumerable: true, get: function () { return Metric_1.ValueType; } });\n// Propagation APIs\nvar TextMapPropagator_1 = require(\"./propagation/TextMapPropagator\");\nObject.defineProperty(exports, \"defaultTextMapGetter\", { enumerable: true, get: function () { return TextMapPropagator_1.defaultTextMapGetter; } });\nObject.defineProperty(exports, \"defaultTextMapSetter\", { enumerable: true, get: function () { return TextMapPropagator_1.defaultTextMapSetter; } });\nvar ProxyTracer_1 = require(\"./trace/ProxyTracer\");\nObject.defineProperty(exports, \"ProxyTracer\", { enumerable: true, get: function () { return ProxyTracer_1.ProxyTracer; } });\n// TODO: Remove ProxyTracerProvider export in the next major version.\nvar ProxyTracerProvider_1 = require(\"./trace/ProxyTracerProvider\");\nObject.defineProperty(exports, \"ProxyTracerProvider\", { enumerable: true, get: function () { return ProxyTracerProvider_1.ProxyTracerProvider; } });\nvar SamplingResult_1 = require(\"./trace/SamplingResult\");\nObject.defineProperty(exports, \"SamplingDecision\", { enumerable: true, get: function () { return SamplingResult_1.SamplingDecision; } });\nvar span_kind_1 = require(\"./trace/span_kind\");\nObject.defineProperty(exports, \"SpanKind\", { enumerable: true, get: function () { return span_kind_1.SpanKind; } });\nvar status_1 = require(\"./trace/status\");\nObject.defineProperty(exports, \"SpanStatusCode\", { enumerable: true, get: function () { return status_1.SpanStatusCode; } });\nvar trace_flags_1 = require(\"./trace/trace_flags\");\nObject.defineProperty(exports, \"TraceFlags\", { enumerable: true, get: function () { return trace_flags_1.TraceFlags; } });\nvar utils_2 = require(\"./trace/internal/utils\");\nObject.defineProperty(exports, \"createTraceState\", { enumerable: true, get: function () { return utils_2.createTraceState; } });\nvar spancontext_utils_1 = require(\"./trace/spancontext-utils\");\nObject.defineProperty(exports, \"isSpanContextValid\", { enumerable: true, get: function () { return spancontext_utils_1.isSpanContextValid; } });\nObject.defineProperty(exports, \"isValidTraceId\", { enumerable: true, get: function () { return spancontext_utils_1.isValidTraceId; } });\nObject.defineProperty(exports, \"isValidSpanId\", { enumerable: true, get: function () { return spancontext_utils_1.isValidSpanId; } });\nvar invalid_span_constants_1 = require(\"./trace/invalid-span-constants\");\nObject.defineProperty(exports, \"INVALID_SPANID\", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPANID; } });\nObject.defineProperty(exports, \"INVALID_TRACEID\", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_TRACEID; } });\nObject.defineProperty(exports, \"INVALID_SPAN_CONTEXT\", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPAN_CONTEXT; } });\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nconst context_api_1 = require(\"./context-api\");\nObject.defineProperty(exports, \"context\", { enumerable: true, get: function () { return context_api_1.context; } });\nconst diag_api_1 = require(\"./diag-api\");\nObject.defineProperty(exports, \"diag\", { enumerable: true, get: function () { return diag_api_1.diag; } });\nconst metrics_api_1 = require(\"./metrics-api\");\nObject.defineProperty(exports, \"metrics\", { enumerable: true, get: function () { return metrics_api_1.metrics; } });\nconst propagation_api_1 = require(\"./propagation-api\");\nObject.defineProperty(exports, \"propagation\", { enumerable: true, get: function () { return propagation_api_1.propagation; } });\nconst trace_api_1 = require(\"./trace-api\");\nObject.defineProperty(exports, \"trace\", { enumerable: true, get: function () { return trace_api_1.trace; } });\n// Default export.\nexports.default = {\n context: context_api_1.context,\n diag: diag_api_1.diag,\n metrics: metrics_api_1.metrics,\n propagation: propagation_api_1.propagation,\n trace: trace_api_1.trace,\n};\n//# sourceMappingURL=index.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTracingSuppressed = exports.unsuppressTracing = exports.suppressTracing = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst SUPPRESS_TRACING_KEY = (0, api_1.createContextKey)('OpenTelemetry SDK Context Key SUPPRESS_TRACING');\nfunction suppressTracing(context) {\n return context.setValue(SUPPRESS_TRACING_KEY, true);\n}\nexports.suppressTracing = suppressTracing;\nfunction unsuppressTracing(context) {\n return context.deleteValue(SUPPRESS_TRACING_KEY);\n}\nexports.unsuppressTracing = unsuppressTracing;\nfunction isTracingSuppressed(context) {\n return context.getValue(SUPPRESS_TRACING_KEY) === true;\n}\nexports.isTracingSuppressed = isTracingSuppressed;\n//# sourceMappingURL=suppress-tracing.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BAGGAGE_MAX_TOTAL_LENGTH = exports.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS = exports.BAGGAGE_MAX_NAME_VALUE_PAIRS = exports.BAGGAGE_HEADER = exports.BAGGAGE_ITEMS_SEPARATOR = exports.BAGGAGE_PROPERTIES_SEPARATOR = exports.BAGGAGE_KEY_PAIR_SEPARATOR = void 0;\nexports.BAGGAGE_KEY_PAIR_SEPARATOR = '=';\nexports.BAGGAGE_PROPERTIES_SEPARATOR = ';';\nexports.BAGGAGE_ITEMS_SEPARATOR = ',';\n// Name of the http header used to propagate the baggage\nexports.BAGGAGE_HEADER = 'baggage';\n// Maximum number of name-value pairs allowed by w3c spec\nexports.BAGGAGE_MAX_NAME_VALUE_PAIRS = 180;\n// Maximum number of bytes per a single name-value pair allowed by w3c spec\nexports.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS = 4096;\n// Maximum total length of all name-value pairs allowed by w3c spec\nexports.BAGGAGE_MAX_TOTAL_LENGTH = 8192;\n//# sourceMappingURL=constants.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseKeyPairsIntoRecord = exports.parsePairKeyValue = exports.getKeyPairs = exports.serializeKeyPairs = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst constants_1 = require(\"./constants\");\nfunction serializeKeyPairs(keyPairs) {\n return keyPairs.reduce((hValue, current) => {\n const value = `${hValue}${hValue !== '' ? constants_1.BAGGAGE_ITEMS_SEPARATOR : ''}${current}`;\n return value.length > constants_1.BAGGAGE_MAX_TOTAL_LENGTH ? hValue : value;\n }, '');\n}\nexports.serializeKeyPairs = serializeKeyPairs;\nfunction getKeyPairs(baggage) {\n return baggage.getAllEntries().map(([key, value]) => {\n let entry = `${encodeURIComponent(key)}=${encodeURIComponent(value.value)}`;\n // include opaque metadata if provided\n // NOTE: we intentionally don't URI-encode the metadata - that responsibility falls on the metadata implementation\n if (value.metadata !== undefined) {\n entry += constants_1.BAGGAGE_PROPERTIES_SEPARATOR + value.metadata.toString();\n }\n return entry;\n });\n}\nexports.getKeyPairs = getKeyPairs;\nfunction parsePairKeyValue(entry) {\n if (!entry)\n return;\n const metadataSeparatorIndex = entry.indexOf(constants_1.BAGGAGE_PROPERTIES_SEPARATOR);\n const keyPairPart = metadataSeparatorIndex === -1\n ? entry\n : entry.substring(0, metadataSeparatorIndex);\n const separatorIndex = keyPairPart.indexOf(constants_1.BAGGAGE_KEY_PAIR_SEPARATOR);\n if (separatorIndex <= 0)\n return;\n const rawKey = keyPairPart.substring(0, separatorIndex).trim();\n const rawValue = keyPairPart.substring(separatorIndex + 1).trim();\n if (!rawKey || !rawValue)\n return;\n let key;\n let value;\n try {\n key = decodeURIComponent(rawKey);\n value = decodeURIComponent(rawValue);\n }\n catch {\n return;\n }\n let metadata;\n if (metadataSeparatorIndex !== -1 &&\n metadataSeparatorIndex < entry.length - 1) {\n const metadataString = entry.substring(metadataSeparatorIndex + 1);\n metadata = (0, api_1.baggageEntryMetadataFromString)(metadataString);\n }\n return { key, value, metadata };\n}\nexports.parsePairKeyValue = parsePairKeyValue;\n/**\n * Parse a string serialized in the baggage HTTP Format (without metadata):\n * https://github.com/w3c/baggage/blob/master/baggage/HTTP_HEADER_FORMAT.md\n */\nfunction parseKeyPairsIntoRecord(value) {\n const result = {};\n if (typeof value === 'string' && value.length > 0) {\n value.split(constants_1.BAGGAGE_ITEMS_SEPARATOR).forEach(entry => {\n const keyPair = parsePairKeyValue(entry);\n if (keyPair !== undefined && keyPair.value.length > 0) {\n result[keyPair.key] = keyPair.value;\n }\n });\n }\n return result;\n}\nexports.parseKeyPairsIntoRecord = parseKeyPairsIntoRecord;\n//# sourceMappingURL=utils.js.map", + "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseKeyPairsIntoRecord = exports.parsePairKeyValue = exports.getKeyPairs = exports.serializeKeyPairs = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst constants_1 = require(\"./constants\");\nfunction serializeKeyPairs(keyPairs) {\n return keyPairs.reduce((hValue, current) => {\n const value = `${hValue}${hValue !== '' ? constants_1.BAGGAGE_ITEMS_SEPARATOR : ''}${current}`;\n return value.length > constants_1.BAGGAGE_MAX_TOTAL_LENGTH ? hValue : value;\n }, '');\n}\nexports.serializeKeyPairs = serializeKeyPairs;\nfunction getKeyPairs(baggage) {\n return baggage.getAllEntries().map(([key, value]) => {\n let entry = `${encodeURIComponent(key)}=${encodeURIComponent(value.value)}`;\n // include opaque metadata if provided\n // NOTE: we intentionally don't URI-encode the metadata - that responsibility falls on the metadata implementation\n if (value.metadata !== undefined) {\n entry += constants_1.BAGGAGE_PROPERTIES_SEPARATOR + value.metadata.toString();\n }\n return entry;\n });\n}\nexports.getKeyPairs = getKeyPairs;\nfunction parsePairKeyValue(entry) {\n if (!entry)\n return;\n const metadataSeparatorIndex = entry.indexOf(constants_1.BAGGAGE_PROPERTIES_SEPARATOR);\n const keyPairPart = metadataSeparatorIndex === -1\n ? entry\n : entry.substring(0, metadataSeparatorIndex);\n const separatorIndex = keyPairPart.indexOf(constants_1.BAGGAGE_KEY_PAIR_SEPARATOR);\n if (separatorIndex <= 0)\n return;\n const rawKey = keyPairPart.substring(0, separatorIndex).trim();\n const rawValue = keyPairPart.substring(separatorIndex + 1).trim();\n if (!rawKey || !rawValue)\n return;\n let key;\n let value;\n try {\n key = decodeURIComponent(rawKey);\n value = decodeURIComponent(rawValue);\n }\n catch {\n return;\n }\n let metadata;\n if (metadataSeparatorIndex !== -1 &&\n metadataSeparatorIndex < entry.length - 1) {\n const metadataString = entry.substring(metadataSeparatorIndex + 1);\n metadata = (0, api_1.baggageEntryMetadataFromString)(metadataString);\n }\n return { key, value, metadata };\n}\nexports.parsePairKeyValue = parsePairKeyValue;\n/**\n * Parse a string serialized in the baggage HTTP Format (without metadata):\n * https://github.com/w3c/baggage/blob/master/baggage/HTTP_HEADER_FORMAT.md\n */\nfunction parseKeyPairsIntoRecord(value) {\n const result = {};\n if (typeof value === 'string' && value.length > 0) {\n value.split(constants_1.BAGGAGE_ITEMS_SEPARATOR).forEach(entry => {\n const keyPair = parsePairKeyValue(entry);\n if (keyPair !== undefined && keyPair.value.length > 0) {\n result[keyPair.key] = keyPair.value;\n }\n });\n }\n return result;\n}\nexports.parseKeyPairsIntoRecord = parseKeyPairsIntoRecord;\n//# sourceMappingURL=utils.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.W3CBaggagePropagator = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst suppress_tracing_1 = require(\"../../trace/suppress-tracing\");\nconst constants_1 = require(\"../constants\");\nconst utils_1 = require(\"../utils\");\n/**\n * Propagates {@link Baggage} through Context format propagation.\n *\n * Based on the Baggage specification:\n * https://w3c.github.io/baggage/\n */\nclass W3CBaggagePropagator {\n inject(context, carrier, setter) {\n const baggage = api_1.propagation.getBaggage(context);\n if (!baggage || (0, suppress_tracing_1.isTracingSuppressed)(context))\n return;\n const keyPairs = (0, utils_1.getKeyPairs)(baggage)\n .filter((pair) => {\n return pair.length <= constants_1.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS;\n })\n .slice(0, constants_1.BAGGAGE_MAX_NAME_VALUE_PAIRS);\n const headerValue = (0, utils_1.serializeKeyPairs)(keyPairs);\n if (headerValue.length > 0) {\n setter.set(carrier, constants_1.BAGGAGE_HEADER, headerValue);\n }\n }\n extract(context, carrier, getter) {\n const headerValue = getter.get(carrier, constants_1.BAGGAGE_HEADER);\n const baggageString = Array.isArray(headerValue)\n ? headerValue.join(constants_1.BAGGAGE_ITEMS_SEPARATOR)\n : headerValue;\n if (!baggageString)\n return context;\n const baggage = {};\n if (baggageString.length === 0) {\n return context;\n }\n const pairs = baggageString.split(constants_1.BAGGAGE_ITEMS_SEPARATOR);\n pairs.forEach(entry => {\n const keyPair = (0, utils_1.parsePairKeyValue)(entry);\n if (keyPair) {\n const baggageEntry = { value: keyPair.value };\n if (keyPair.metadata) {\n baggageEntry.metadata = keyPair.metadata;\n }\n baggage[keyPair.key] = baggageEntry;\n }\n });\n if (Object.entries(baggage).length === 0) {\n return context;\n }\n return api_1.propagation.setBaggage(context, api_1.propagation.createBaggage(baggage));\n }\n fields() {\n return [constants_1.BAGGAGE_HEADER];\n }\n}\nexports.W3CBaggagePropagator = W3CBaggagePropagator;\n//# sourceMappingURL=W3CBaggagePropagator.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnchoredClock = void 0;\n/**\n * A utility for returning wall times anchored to a given point in time. Wall time measurements will\n * not be taken from the system, but instead are computed by adding a monotonic clock time\n * to the anchor point.\n *\n * This is needed because the system time can change and result in unexpected situations like\n * spans ending before they are started. Creating an anchored clock for each local root span\n * ensures that span timings and durations are accurate while preventing span times from drifting\n * too far from the system clock.\n *\n * Only creating an anchored clock once per local trace ensures span times are correct relative\n * to each other. For example, a child span will never have a start time before its parent even\n * if the system clock is corrected during the local trace.\n *\n * Heavily inspired by the OTel Java anchored clock\n * https://github.com/open-telemetry/opentelemetry-java/blob/main/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/AnchoredClock.java\n */\nclass AnchoredClock {\n _monotonicClock;\n _epochMillis;\n _performanceMillis;\n /**\n * Create a new AnchoredClock anchored to the current time returned by systemClock.\n *\n * @param systemClock should be a clock that returns the number of milliseconds since January 1 1970 such as Date\n * @param monotonicClock should be a clock that counts milliseconds monotonically such as window.performance or perf_hooks.performance\n */\n constructor(systemClock, monotonicClock) {\n this._monotonicClock = monotonicClock;\n this._epochMillis = systemClock.now();\n this._performanceMillis = monotonicClock.now();\n }\n /**\n * Returns the current time by adding the number of milliseconds since the\n * AnchoredClock was created to the creation epoch time\n */\n now() {\n const delta = this._monotonicClock.now() - this._performanceMillis;\n return this._epochMillis + delta;\n }\n}\nexports.AnchoredClock = AnchoredClock;\n//# sourceMappingURL=anchored-clock.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAttributeValue = exports.isAttributeKey = exports.sanitizeAttributes = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nfunction sanitizeAttributes(attributes) {\n const out = {};\n if (typeof attributes !== 'object' || attributes == null) {\n return out;\n }\n for (const key in attributes) {\n if (!Object.prototype.hasOwnProperty.call(attributes, key)) {\n continue;\n }\n if (!isAttributeKey(key)) {\n api_1.diag.warn(`Invalid attribute key: ${key}`);\n continue;\n }\n const val = attributes[key];\n if (!isAttributeValue(val)) {\n api_1.diag.warn(`Invalid attribute value set for key: ${key}`);\n continue;\n }\n if (Array.isArray(val)) {\n out[key] = val.slice();\n }\n else {\n out[key] = val;\n }\n }\n return out;\n}\nexports.sanitizeAttributes = sanitizeAttributes;\nfunction isAttributeKey(key) {\n return typeof key === 'string' && key !== '';\n}\nexports.isAttributeKey = isAttributeKey;\nfunction isAttributeValue(val) {\n if (val == null) {\n return true;\n }\n if (Array.isArray(val)) {\n return isHomogeneousAttributeValueArray(val);\n }\n return isValidPrimitiveAttributeValueType(typeof val);\n}\nexports.isAttributeValue = isAttributeValue;\nfunction isHomogeneousAttributeValueArray(arr) {\n let type;\n for (const element of arr) {\n // null/undefined elements are allowed\n if (element == null)\n continue;\n const elementType = typeof element;\n if (elementType === type) {\n continue;\n }\n if (!type) {\n if (isValidPrimitiveAttributeValueType(elementType)) {\n type = elementType;\n continue;\n }\n // encountered an invalid primitive\n return false;\n }\n return false;\n }\n return true;\n}\nfunction isValidPrimitiveAttributeValueType(valType) {\n switch (valType) {\n case 'number':\n case 'boolean':\n case 'string':\n return true;\n }\n return false;\n}\n//# sourceMappingURL=attributes.js.map", @@ -56,7 +56,7 @@ "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.globalErrorHandler = exports.setGlobalErrorHandler = void 0;\nconst logging_error_handler_1 = require(\"./logging-error-handler\");\n/** The global error handler delegate */\nlet delegateHandler = (0, logging_error_handler_1.loggingErrorHandler)();\n/**\n * Set the global error handler\n * @param {ErrorHandler} handler\n */\nfunction setGlobalErrorHandler(handler) {\n delegateHandler = handler;\n}\nexports.setGlobalErrorHandler = setGlobalErrorHandler;\n/**\n * Return the global error handler\n * @param {Exception} ex\n */\nfunction globalErrorHandler(ex) {\n try {\n delegateHandler(ex);\n }\n catch { } // eslint-disable-line no-empty\n}\nexports.globalErrorHandler = globalErrorHandler;\n//# sourceMappingURL=global-error-handler.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getStringListFromEnv = exports.getBooleanFromEnv = exports.getStringFromEnv = exports.getNumberFromEnv = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst util_1 = require(\"util\");\n/**\n * Retrieves a number from an environment variable.\n * - Returns `undefined` if the environment variable is empty, unset, contains only whitespace, or is not a number.\n * - Returns a number in all other cases.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {number | undefined} - The number value or `undefined`.\n */\nfunction getNumberFromEnv(key) {\n const raw = process.env[key];\n if (raw == null || raw.trim() === '') {\n return undefined;\n }\n const value = Number(raw);\n if (isNaN(value)) {\n api_1.diag.warn(`Unknown value ${(0, util_1.inspect)(raw)} for ${key}, expected a number, using defaults`);\n return undefined;\n }\n return value;\n}\nexports.getNumberFromEnv = getNumberFromEnv;\n/**\n * Retrieves a string from an environment variable.\n * - Returns `undefined` if the environment variable is empty, unset, or contains only whitespace.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {string | undefined} - The string value or `undefined`.\n */\nfunction getStringFromEnv(key) {\n const raw = process.env[key];\n if (raw == null || raw.trim() === '') {\n return undefined;\n }\n return raw;\n}\nexports.getStringFromEnv = getStringFromEnv;\n/**\n * Retrieves a boolean value from an environment variable.\n * - Trims leading and trailing whitespace and ignores casing.\n * - Returns `false` if the environment variable is empty, unset, or contains only whitespace.\n * - Returns `false` for strings that cannot be mapped to a boolean.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {boolean} - The boolean value or `false` if the environment variable is unset empty, unset, or contains only whitespace.\n */\nfunction getBooleanFromEnv(key) {\n const raw = process.env[key]?.trim().toLowerCase();\n if (raw == null || raw === '') {\n // NOTE: falling back to `false` instead of `undefined` as required by the specification.\n // If you have a use-case that requires `undefined`, consider using `getStringFromEnv()` and applying the necessary\n // normalizations in the consuming code.\n return false;\n }\n if (raw === 'true') {\n return true;\n }\n else if (raw === 'false') {\n return false;\n }\n else {\n api_1.diag.warn(`Unknown value ${(0, util_1.inspect)(raw)} for ${key}, expected 'true' or 'false', falling back to 'false' (default)`);\n return false;\n }\n}\nexports.getBooleanFromEnv = getBooleanFromEnv;\n/**\n * Retrieves a list of strings from an environment variable.\n * - Uses ',' as the delimiter.\n * - Trims leading and trailing whitespace from each entry.\n * - Excludes empty entries.\n * - Returns `undefined` if the environment variable is empty or contains only whitespace.\n * - Returns an empty array if all entries are empty or whitespace.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {string[] | undefined} - The list of strings or `undefined`.\n */\nfunction getStringListFromEnv(key) {\n return getStringFromEnv(key)\n ?.split(',')\n .map(v => v.trim())\n .filter(s => s !== '');\n}\nexports.getStringListFromEnv = getStringListFromEnv;\n//# sourceMappingURL=environment.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._globalThis = void 0;\n/**\n * @deprecated Use globalThis directly instead.\n */\nexports._globalThis = globalThis;\n//# sourceMappingURL=globalThis.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.VERSION = '2.6.0';\n//# sourceMappingURL=version.js.map", + "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.VERSION = '2.6.1';\n//# sourceMappingURL=version.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createConstMap = void 0;\n/**\n * Creates a const map from the given values\n * @param values - An array of values to be used as keys and values in the map.\n * @returns A populated version of the map with the values and keys derived from the values.\n */\n/*#__NO_SIDE_EFFECTS__*/\nfunction createConstMap(values) {\n // eslint-disable-next-line prefer-const, @typescript-eslint/no-explicit-any\n let res = {};\n const len = values.length;\n for (let lp = 0; lp < len; lp++) {\n const val = values[lp];\n if (val) {\n res[String(val).toUpperCase().replace(/[-.]/g, '_')] = val;\n }\n }\n return res;\n}\nexports.createConstMap = createConstMap;\n//# sourceMappingURL=utils.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SEMATTRS_NET_HOST_CARRIER_ICC = exports.SEMATTRS_NET_HOST_CARRIER_MNC = exports.SEMATTRS_NET_HOST_CARRIER_MCC = exports.SEMATTRS_NET_HOST_CARRIER_NAME = exports.SEMATTRS_NET_HOST_CONNECTION_SUBTYPE = exports.SEMATTRS_NET_HOST_CONNECTION_TYPE = exports.SEMATTRS_NET_HOST_NAME = exports.SEMATTRS_NET_HOST_PORT = exports.SEMATTRS_NET_HOST_IP = exports.SEMATTRS_NET_PEER_NAME = exports.SEMATTRS_NET_PEER_PORT = exports.SEMATTRS_NET_PEER_IP = exports.SEMATTRS_NET_TRANSPORT = exports.SEMATTRS_FAAS_INVOKED_REGION = exports.SEMATTRS_FAAS_INVOKED_PROVIDER = exports.SEMATTRS_FAAS_INVOKED_NAME = exports.SEMATTRS_FAAS_COLDSTART = exports.SEMATTRS_FAAS_CRON = exports.SEMATTRS_FAAS_TIME = exports.SEMATTRS_FAAS_DOCUMENT_NAME = exports.SEMATTRS_FAAS_DOCUMENT_TIME = exports.SEMATTRS_FAAS_DOCUMENT_OPERATION = exports.SEMATTRS_FAAS_DOCUMENT_COLLECTION = exports.SEMATTRS_FAAS_EXECUTION = exports.SEMATTRS_FAAS_TRIGGER = exports.SEMATTRS_EXCEPTION_ESCAPED = exports.SEMATTRS_EXCEPTION_STACKTRACE = exports.SEMATTRS_EXCEPTION_MESSAGE = exports.SEMATTRS_EXCEPTION_TYPE = exports.SEMATTRS_DB_SQL_TABLE = exports.SEMATTRS_DB_MONGODB_COLLECTION = exports.SEMATTRS_DB_REDIS_DATABASE_INDEX = exports.SEMATTRS_DB_HBASE_NAMESPACE = exports.SEMATTRS_DB_CASSANDRA_COORDINATOR_DC = exports.SEMATTRS_DB_CASSANDRA_COORDINATOR_ID = exports.SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT = exports.SEMATTRS_DB_CASSANDRA_IDEMPOTENCE = exports.SEMATTRS_DB_CASSANDRA_TABLE = exports.SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL = exports.SEMATTRS_DB_CASSANDRA_PAGE_SIZE = exports.SEMATTRS_DB_CASSANDRA_KEYSPACE = exports.SEMATTRS_DB_MSSQL_INSTANCE_NAME = exports.SEMATTRS_DB_OPERATION = exports.SEMATTRS_DB_STATEMENT = exports.SEMATTRS_DB_NAME = exports.SEMATTRS_DB_JDBC_DRIVER_CLASSNAME = exports.SEMATTRS_DB_USER = exports.SEMATTRS_DB_CONNECTION_STRING = exports.SEMATTRS_DB_SYSTEM = exports.SEMATTRS_AWS_LAMBDA_INVOKED_ARN = void 0;\nexports.SEMATTRS_MESSAGING_DESTINATION_KIND = exports.SEMATTRS_MESSAGING_DESTINATION = exports.SEMATTRS_MESSAGING_SYSTEM = exports.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES = exports.SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS = exports.SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT = exports.SEMATTRS_AWS_DYNAMODB_COUNT = exports.SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS = exports.SEMATTRS_AWS_DYNAMODB_SEGMENT = exports.SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD = exports.SEMATTRS_AWS_DYNAMODB_TABLE_COUNT = exports.SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE = exports.SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES = exports.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES = exports.SEMATTRS_AWS_DYNAMODB_SELECT = exports.SEMATTRS_AWS_DYNAMODB_INDEX_NAME = exports.SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET = exports.SEMATTRS_AWS_DYNAMODB_LIMIT = exports.SEMATTRS_AWS_DYNAMODB_PROJECTION = exports.SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ = exports.SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY = exports.SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY = exports.SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS = exports.SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY = exports.SEMATTRS_AWS_DYNAMODB_TABLE_NAMES = exports.SEMATTRS_HTTP_CLIENT_IP = exports.SEMATTRS_HTTP_ROUTE = exports.SEMATTRS_HTTP_SERVER_NAME = exports.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED = exports.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH = exports.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED = exports.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH = exports.SEMATTRS_HTTP_USER_AGENT = exports.SEMATTRS_HTTP_FLAVOR = exports.SEMATTRS_HTTP_STATUS_CODE = exports.SEMATTRS_HTTP_SCHEME = exports.SEMATTRS_HTTP_HOST = exports.SEMATTRS_HTTP_TARGET = exports.SEMATTRS_HTTP_URL = exports.SEMATTRS_HTTP_METHOD = exports.SEMATTRS_CODE_LINENO = exports.SEMATTRS_CODE_FILEPATH = exports.SEMATTRS_CODE_NAMESPACE = exports.SEMATTRS_CODE_FUNCTION = exports.SEMATTRS_THREAD_NAME = exports.SEMATTRS_THREAD_ID = exports.SEMATTRS_ENDUSER_SCOPE = exports.SEMATTRS_ENDUSER_ROLE = exports.SEMATTRS_ENDUSER_ID = exports.SEMATTRS_PEER_SERVICE = void 0;\nexports.DBSYSTEMVALUES_FILEMAKER = exports.DBSYSTEMVALUES_DERBY = exports.DBSYSTEMVALUES_FIREBIRD = exports.DBSYSTEMVALUES_ADABAS = exports.DBSYSTEMVALUES_CACHE = exports.DBSYSTEMVALUES_EDB = exports.DBSYSTEMVALUES_FIRSTSQL = exports.DBSYSTEMVALUES_INGRES = exports.DBSYSTEMVALUES_HANADB = exports.DBSYSTEMVALUES_MAXDB = exports.DBSYSTEMVALUES_PROGRESS = exports.DBSYSTEMVALUES_HSQLDB = exports.DBSYSTEMVALUES_CLOUDSCAPE = exports.DBSYSTEMVALUES_HIVE = exports.DBSYSTEMVALUES_REDSHIFT = exports.DBSYSTEMVALUES_POSTGRESQL = exports.DBSYSTEMVALUES_DB2 = exports.DBSYSTEMVALUES_ORACLE = exports.DBSYSTEMVALUES_MYSQL = exports.DBSYSTEMVALUES_MSSQL = exports.DBSYSTEMVALUES_OTHER_SQL = exports.SemanticAttributes = exports.SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE = exports.SEMATTRS_MESSAGE_COMPRESSED_SIZE = exports.SEMATTRS_MESSAGE_ID = exports.SEMATTRS_MESSAGE_TYPE = exports.SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE = exports.SEMATTRS_RPC_JSONRPC_ERROR_CODE = exports.SEMATTRS_RPC_JSONRPC_REQUEST_ID = exports.SEMATTRS_RPC_JSONRPC_VERSION = exports.SEMATTRS_RPC_GRPC_STATUS_CODE = exports.SEMATTRS_RPC_METHOD = exports.SEMATTRS_RPC_SERVICE = exports.SEMATTRS_RPC_SYSTEM = exports.SEMATTRS_MESSAGING_KAFKA_TOMBSTONE = exports.SEMATTRS_MESSAGING_KAFKA_PARTITION = exports.SEMATTRS_MESSAGING_KAFKA_CLIENT_ID = exports.SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP = exports.SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY = exports.SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY = exports.SEMATTRS_MESSAGING_CONSUMER_ID = exports.SEMATTRS_MESSAGING_OPERATION = exports.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES = exports.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES = exports.SEMATTRS_MESSAGING_CONVERSATION_ID = exports.SEMATTRS_MESSAGING_MESSAGE_ID = exports.SEMATTRS_MESSAGING_URL = exports.SEMATTRS_MESSAGING_PROTOCOL_VERSION = exports.SEMATTRS_MESSAGING_PROTOCOL = exports.SEMATTRS_MESSAGING_TEMP_DESTINATION = void 0;\nexports.FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD = exports.FaasDocumentOperationValues = exports.FAASDOCUMENTOPERATIONVALUES_DELETE = exports.FAASDOCUMENTOPERATIONVALUES_EDIT = exports.FAASDOCUMENTOPERATIONVALUES_INSERT = exports.FaasTriggerValues = exports.FAASTRIGGERVALUES_OTHER = exports.FAASTRIGGERVALUES_TIMER = exports.FAASTRIGGERVALUES_PUBSUB = exports.FAASTRIGGERVALUES_HTTP = exports.FAASTRIGGERVALUES_DATASOURCE = exports.DbCassandraConsistencyLevelValues = exports.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL = exports.DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL = exports.DBCASSANDRACONSISTENCYLEVELVALUES_ANY = exports.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE = exports.DBCASSANDRACONSISTENCYLEVELVALUES_THREE = exports.DBCASSANDRACONSISTENCYLEVELVALUES_TWO = exports.DBCASSANDRACONSISTENCYLEVELVALUES_ONE = exports.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM = exports.DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM = exports.DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM = exports.DBCASSANDRACONSISTENCYLEVELVALUES_ALL = exports.DbSystemValues = exports.DBSYSTEMVALUES_COCKROACHDB = exports.DBSYSTEMVALUES_MEMCACHED = exports.DBSYSTEMVALUES_ELASTICSEARCH = exports.DBSYSTEMVALUES_GEODE = exports.DBSYSTEMVALUES_NEO4J = exports.DBSYSTEMVALUES_DYNAMODB = exports.DBSYSTEMVALUES_COSMOSDB = exports.DBSYSTEMVALUES_COUCHDB = exports.DBSYSTEMVALUES_COUCHBASE = exports.DBSYSTEMVALUES_REDIS = exports.DBSYSTEMVALUES_MONGODB = exports.DBSYSTEMVALUES_HBASE = exports.DBSYSTEMVALUES_CASSANDRA = exports.DBSYSTEMVALUES_COLDFUSION = exports.DBSYSTEMVALUES_H2 = exports.DBSYSTEMVALUES_VERTICA = exports.DBSYSTEMVALUES_TERADATA = exports.DBSYSTEMVALUES_SYBASE = exports.DBSYSTEMVALUES_SQLITE = exports.DBSYSTEMVALUES_POINTBASE = exports.DBSYSTEMVALUES_PERVASIVE = exports.DBSYSTEMVALUES_NETEZZA = exports.DBSYSTEMVALUES_MARIADB = exports.DBSYSTEMVALUES_INTERBASE = exports.DBSYSTEMVALUES_INSTANTDB = exports.DBSYSTEMVALUES_INFORMIX = void 0;\nexports.MESSAGINGOPERATIONVALUES_RECEIVE = exports.MessagingDestinationKindValues = exports.MESSAGINGDESTINATIONKINDVALUES_TOPIC = exports.MESSAGINGDESTINATIONKINDVALUES_QUEUE = exports.HttpFlavorValues = exports.HTTPFLAVORVALUES_QUIC = exports.HTTPFLAVORVALUES_SPDY = exports.HTTPFLAVORVALUES_HTTP_2_0 = exports.HTTPFLAVORVALUES_HTTP_1_1 = exports.HTTPFLAVORVALUES_HTTP_1_0 = exports.NetHostConnectionSubtypeValues = exports.NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA = exports.NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA = exports.NETHOSTCONNECTIONSUBTYPEVALUES_NR = exports.NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN = exports.NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA = exports.NETHOSTCONNECTIONSUBTYPEVALUES_GSM = exports.NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP = exports.NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD = exports.NETHOSTCONNECTIONSUBTYPEVALUES_LTE = exports.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B = exports.NETHOSTCONNECTIONSUBTYPEVALUES_IDEN = exports.NETHOSTCONNECTIONSUBTYPEVALUES_HSPA = exports.NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA = exports.NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA = exports.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT = exports.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A = exports.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0 = exports.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA = exports.NETHOSTCONNECTIONSUBTYPEVALUES_UMTS = exports.NETHOSTCONNECTIONSUBTYPEVALUES_EDGE = exports.NETHOSTCONNECTIONSUBTYPEVALUES_GPRS = exports.NetHostConnectionTypeValues = exports.NETHOSTCONNECTIONTYPEVALUES_UNKNOWN = exports.NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE = exports.NETHOSTCONNECTIONTYPEVALUES_CELL = exports.NETHOSTCONNECTIONTYPEVALUES_WIRED = exports.NETHOSTCONNECTIONTYPEVALUES_WIFI = exports.NetTransportValues = exports.NETTRANSPORTVALUES_OTHER = exports.NETTRANSPORTVALUES_INPROC = exports.NETTRANSPORTVALUES_PIPE = exports.NETTRANSPORTVALUES_UNIX = exports.NETTRANSPORTVALUES_IP = exports.NETTRANSPORTVALUES_IP_UDP = exports.NETTRANSPORTVALUES_IP_TCP = exports.FaasInvokedProviderValues = exports.FAASINVOKEDPROVIDERVALUES_GCP = exports.FAASINVOKEDPROVIDERVALUES_AZURE = exports.FAASINVOKEDPROVIDERVALUES_AWS = void 0;\nexports.MessageTypeValues = exports.MESSAGETYPEVALUES_RECEIVED = exports.MESSAGETYPEVALUES_SENT = exports.RpcGrpcStatusCodeValues = exports.RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED = exports.RPCGRPCSTATUSCODEVALUES_DATA_LOSS = exports.RPCGRPCSTATUSCODEVALUES_UNAVAILABLE = exports.RPCGRPCSTATUSCODEVALUES_INTERNAL = exports.RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED = exports.RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE = exports.RPCGRPCSTATUSCODEVALUES_ABORTED = exports.RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION = exports.RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED = exports.RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED = exports.RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS = exports.RPCGRPCSTATUSCODEVALUES_NOT_FOUND = exports.RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED = exports.RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT = exports.RPCGRPCSTATUSCODEVALUES_UNKNOWN = exports.RPCGRPCSTATUSCODEVALUES_CANCELLED = exports.RPCGRPCSTATUSCODEVALUES_OK = exports.MessagingOperationValues = exports.MESSAGINGOPERATIONVALUES_PROCESS = void 0;\nconst utils_1 = require(\"../internal/utils\");\n//----------------------------------------------------------------------------------------------------------\n// DO NOT EDIT, this is an Auto-generated file from scripts/semconv/templates//templates/SemanticAttributes.ts.j2\n//----------------------------------------------------------------------------------------------------------\n//----------------------------------------------------------------------------------------------------------\n// Constant values for SemanticAttributes\n//----------------------------------------------------------------------------------------------------------\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_AWS_LAMBDA_INVOKED_ARN = 'aws.lambda.invoked_arn';\nconst TMP_DB_SYSTEM = 'db.system';\nconst TMP_DB_CONNECTION_STRING = 'db.connection_string';\nconst TMP_DB_USER = 'db.user';\nconst TMP_DB_JDBC_DRIVER_CLASSNAME = 'db.jdbc.driver_classname';\nconst TMP_DB_NAME = 'db.name';\nconst TMP_DB_STATEMENT = 'db.statement';\nconst TMP_DB_OPERATION = 'db.operation';\nconst TMP_DB_MSSQL_INSTANCE_NAME = 'db.mssql.instance_name';\nconst TMP_DB_CASSANDRA_KEYSPACE = 'db.cassandra.keyspace';\nconst TMP_DB_CASSANDRA_PAGE_SIZE = 'db.cassandra.page_size';\nconst TMP_DB_CASSANDRA_CONSISTENCY_LEVEL = 'db.cassandra.consistency_level';\nconst TMP_DB_CASSANDRA_TABLE = 'db.cassandra.table';\nconst TMP_DB_CASSANDRA_IDEMPOTENCE = 'db.cassandra.idempotence';\nconst TMP_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT = 'db.cassandra.speculative_execution_count';\nconst TMP_DB_CASSANDRA_COORDINATOR_ID = 'db.cassandra.coordinator.id';\nconst TMP_DB_CASSANDRA_COORDINATOR_DC = 'db.cassandra.coordinator.dc';\nconst TMP_DB_HBASE_NAMESPACE = 'db.hbase.namespace';\nconst TMP_DB_REDIS_DATABASE_INDEX = 'db.redis.database_index';\nconst TMP_DB_MONGODB_COLLECTION = 'db.mongodb.collection';\nconst TMP_DB_SQL_TABLE = 'db.sql.table';\nconst TMP_EXCEPTION_TYPE = 'exception.type';\nconst TMP_EXCEPTION_MESSAGE = 'exception.message';\nconst TMP_EXCEPTION_STACKTRACE = 'exception.stacktrace';\nconst TMP_EXCEPTION_ESCAPED = 'exception.escaped';\nconst TMP_FAAS_TRIGGER = 'faas.trigger';\nconst TMP_FAAS_EXECUTION = 'faas.execution';\nconst TMP_FAAS_DOCUMENT_COLLECTION = 'faas.document.collection';\nconst TMP_FAAS_DOCUMENT_OPERATION = 'faas.document.operation';\nconst TMP_FAAS_DOCUMENT_TIME = 'faas.document.time';\nconst TMP_FAAS_DOCUMENT_NAME = 'faas.document.name';\nconst TMP_FAAS_TIME = 'faas.time';\nconst TMP_FAAS_CRON = 'faas.cron';\nconst TMP_FAAS_COLDSTART = 'faas.coldstart';\nconst TMP_FAAS_INVOKED_NAME = 'faas.invoked_name';\nconst TMP_FAAS_INVOKED_PROVIDER = 'faas.invoked_provider';\nconst TMP_FAAS_INVOKED_REGION = 'faas.invoked_region';\nconst TMP_NET_TRANSPORT = 'net.transport';\nconst TMP_NET_PEER_IP = 'net.peer.ip';\nconst TMP_NET_PEER_PORT = 'net.peer.port';\nconst TMP_NET_PEER_NAME = 'net.peer.name';\nconst TMP_NET_HOST_IP = 'net.host.ip';\nconst TMP_NET_HOST_PORT = 'net.host.port';\nconst TMP_NET_HOST_NAME = 'net.host.name';\nconst TMP_NET_HOST_CONNECTION_TYPE = 'net.host.connection.type';\nconst TMP_NET_HOST_CONNECTION_SUBTYPE = 'net.host.connection.subtype';\nconst TMP_NET_HOST_CARRIER_NAME = 'net.host.carrier.name';\nconst TMP_NET_HOST_CARRIER_MCC = 'net.host.carrier.mcc';\nconst TMP_NET_HOST_CARRIER_MNC = 'net.host.carrier.mnc';\nconst TMP_NET_HOST_CARRIER_ICC = 'net.host.carrier.icc';\nconst TMP_PEER_SERVICE = 'peer.service';\nconst TMP_ENDUSER_ID = 'enduser.id';\nconst TMP_ENDUSER_ROLE = 'enduser.role';\nconst TMP_ENDUSER_SCOPE = 'enduser.scope';\nconst TMP_THREAD_ID = 'thread.id';\nconst TMP_THREAD_NAME = 'thread.name';\nconst TMP_CODE_FUNCTION = 'code.function';\nconst TMP_CODE_NAMESPACE = 'code.namespace';\nconst TMP_CODE_FILEPATH = 'code.filepath';\nconst TMP_CODE_LINENO = 'code.lineno';\nconst TMP_HTTP_METHOD = 'http.method';\nconst TMP_HTTP_URL = 'http.url';\nconst TMP_HTTP_TARGET = 'http.target';\nconst TMP_HTTP_HOST = 'http.host';\nconst TMP_HTTP_SCHEME = 'http.scheme';\nconst TMP_HTTP_STATUS_CODE = 'http.status_code';\nconst TMP_HTTP_FLAVOR = 'http.flavor';\nconst TMP_HTTP_USER_AGENT = 'http.user_agent';\nconst TMP_HTTP_REQUEST_CONTENT_LENGTH = 'http.request_content_length';\nconst TMP_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED = 'http.request_content_length_uncompressed';\nconst TMP_HTTP_RESPONSE_CONTENT_LENGTH = 'http.response_content_length';\nconst TMP_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED = 'http.response_content_length_uncompressed';\nconst TMP_HTTP_SERVER_NAME = 'http.server_name';\nconst TMP_HTTP_ROUTE = 'http.route';\nconst TMP_HTTP_CLIENT_IP = 'http.client_ip';\nconst TMP_AWS_DYNAMODB_TABLE_NAMES = 'aws.dynamodb.table_names';\nconst TMP_AWS_DYNAMODB_CONSUMED_CAPACITY = 'aws.dynamodb.consumed_capacity';\nconst TMP_AWS_DYNAMODB_ITEM_COLLECTION_METRICS = 'aws.dynamodb.item_collection_metrics';\nconst TMP_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY = 'aws.dynamodb.provisioned_read_capacity';\nconst TMP_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY = 'aws.dynamodb.provisioned_write_capacity';\nconst TMP_AWS_DYNAMODB_CONSISTENT_READ = 'aws.dynamodb.consistent_read';\nconst TMP_AWS_DYNAMODB_PROJECTION = 'aws.dynamodb.projection';\nconst TMP_AWS_DYNAMODB_LIMIT = 'aws.dynamodb.limit';\nconst TMP_AWS_DYNAMODB_ATTRIBUTES_TO_GET = 'aws.dynamodb.attributes_to_get';\nconst TMP_AWS_DYNAMODB_INDEX_NAME = 'aws.dynamodb.index_name';\nconst TMP_AWS_DYNAMODB_SELECT = 'aws.dynamodb.select';\nconst TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES = 'aws.dynamodb.global_secondary_indexes';\nconst TMP_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES = 'aws.dynamodb.local_secondary_indexes';\nconst TMP_AWS_DYNAMODB_EXCLUSIVE_START_TABLE = 'aws.dynamodb.exclusive_start_table';\nconst TMP_AWS_DYNAMODB_TABLE_COUNT = 'aws.dynamodb.table_count';\nconst TMP_AWS_DYNAMODB_SCAN_FORWARD = 'aws.dynamodb.scan_forward';\nconst TMP_AWS_DYNAMODB_SEGMENT = 'aws.dynamodb.segment';\nconst TMP_AWS_DYNAMODB_TOTAL_SEGMENTS = 'aws.dynamodb.total_segments';\nconst TMP_AWS_DYNAMODB_COUNT = 'aws.dynamodb.count';\nconst TMP_AWS_DYNAMODB_SCANNED_COUNT = 'aws.dynamodb.scanned_count';\nconst TMP_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS = 'aws.dynamodb.attribute_definitions';\nconst TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES = 'aws.dynamodb.global_secondary_index_updates';\nconst TMP_MESSAGING_SYSTEM = 'messaging.system';\nconst TMP_MESSAGING_DESTINATION = 'messaging.destination';\nconst TMP_MESSAGING_DESTINATION_KIND = 'messaging.destination_kind';\nconst TMP_MESSAGING_TEMP_DESTINATION = 'messaging.temp_destination';\nconst TMP_MESSAGING_PROTOCOL = 'messaging.protocol';\nconst TMP_MESSAGING_PROTOCOL_VERSION = 'messaging.protocol_version';\nconst TMP_MESSAGING_URL = 'messaging.url';\nconst TMP_MESSAGING_MESSAGE_ID = 'messaging.message_id';\nconst TMP_MESSAGING_CONVERSATION_ID = 'messaging.conversation_id';\nconst TMP_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES = 'messaging.message_payload_size_bytes';\nconst TMP_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES = 'messaging.message_payload_compressed_size_bytes';\nconst TMP_MESSAGING_OPERATION = 'messaging.operation';\nconst TMP_MESSAGING_CONSUMER_ID = 'messaging.consumer_id';\nconst TMP_MESSAGING_RABBITMQ_ROUTING_KEY = 'messaging.rabbitmq.routing_key';\nconst TMP_MESSAGING_KAFKA_MESSAGE_KEY = 'messaging.kafka.message_key';\nconst TMP_MESSAGING_KAFKA_CONSUMER_GROUP = 'messaging.kafka.consumer_group';\nconst TMP_MESSAGING_KAFKA_CLIENT_ID = 'messaging.kafka.client_id';\nconst TMP_MESSAGING_KAFKA_PARTITION = 'messaging.kafka.partition';\nconst TMP_MESSAGING_KAFKA_TOMBSTONE = 'messaging.kafka.tombstone';\nconst TMP_RPC_SYSTEM = 'rpc.system';\nconst TMP_RPC_SERVICE = 'rpc.service';\nconst TMP_RPC_METHOD = 'rpc.method';\nconst TMP_RPC_GRPC_STATUS_CODE = 'rpc.grpc.status_code';\nconst TMP_RPC_JSONRPC_VERSION = 'rpc.jsonrpc.version';\nconst TMP_RPC_JSONRPC_REQUEST_ID = 'rpc.jsonrpc.request_id';\nconst TMP_RPC_JSONRPC_ERROR_CODE = 'rpc.jsonrpc.error_code';\nconst TMP_RPC_JSONRPC_ERROR_MESSAGE = 'rpc.jsonrpc.error_message';\nconst TMP_MESSAGE_TYPE = 'message.type';\nconst TMP_MESSAGE_ID = 'message.id';\nconst TMP_MESSAGE_COMPRESSED_SIZE = 'message.compressed_size';\nconst TMP_MESSAGE_UNCOMPRESSED_SIZE = 'message.uncompressed_size';\n/**\n * The full invoked ARN as provided on the `Context` passed to the function (`Lambda-Runtime-Invoked-Function-Arn` header on the `/runtime/invocation/next` applicable).\n *\n * Note: This may be different from `faas.id` if an alias is involved.\n *\n * @deprecated Use ATTR_AWS_LAMBDA_INVOKED_ARN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_LAMBDA_INVOKED_ARN = TMP_AWS_LAMBDA_INVOKED_ARN;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use ATTR_DB_SYSTEM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_SYSTEM = TMP_DB_SYSTEM;\n/**\n * The connection string used to connect to the database. It is recommended to remove embedded credentials.\n *\n * @deprecated Use ATTR_DB_CONNECTION_STRING in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CONNECTION_STRING = TMP_DB_CONNECTION_STRING;\n/**\n * Username for accessing the database.\n *\n * @deprecated Use ATTR_DB_USER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_USER = TMP_DB_USER;\n/**\n * The fully-qualified class name of the [Java Database Connectivity (JDBC)](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) driver used to connect.\n *\n * @deprecated Use ATTR_DB_JDBC_DRIVER_CLASSNAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_JDBC_DRIVER_CLASSNAME = TMP_DB_JDBC_DRIVER_CLASSNAME;\n/**\n * If no [tech-specific attribute](#call-level-attributes-for-specific-technologies) is defined, this attribute is used to report the name of the database being accessed. For commands that switch the database, this should be set to the target database (even if the command fails).\n *\n * Note: In some SQL databases, the database name to be used is called "schema name".\n *\n * @deprecated Use ATTR_DB_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_NAME = TMP_DB_NAME;\n/**\n * The database statement being executed.\n *\n * Note: The value may be sanitized to exclude sensitive information.\n *\n * @deprecated Use ATTR_DB_STATEMENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_STATEMENT = TMP_DB_STATEMENT;\n/**\n * The name of the operation being executed, e.g. the [MongoDB command name](https://docs.mongodb.com/manual/reference/command/#database-operations) such as `findAndModify`, or the SQL keyword.\n *\n * Note: When setting this to an SQL keyword, it is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if the operation name is provided by the library being instrumented. If the SQL statement has an ambiguous operation, or performs more than one operation, this value may be omitted.\n *\n * @deprecated Use ATTR_DB_OPERATION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_OPERATION = TMP_DB_OPERATION;\n/**\n * The Microsoft SQL Server [instance name](https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15) connecting to. This name is used to determine the port of a named instance.\n *\n * Note: If setting a `db.mssql.instance_name`, `net.peer.port` is no longer required (but still recommended if non-standard).\n *\n * @deprecated Use ATTR_DB_MSSQL_INSTANCE_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_MSSQL_INSTANCE_NAME = TMP_DB_MSSQL_INSTANCE_NAME;\n/**\n * The name of the keyspace being accessed. To be used instead of the generic `db.name` attribute.\n *\n * @deprecated Use ATTR_DB_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_KEYSPACE = TMP_DB_CASSANDRA_KEYSPACE;\n/**\n * The fetch size used for paging, i.e. how many rows will be returned at once.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_PAGE_SIZE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_PAGE_SIZE = TMP_DB_CASSANDRA_PAGE_SIZE;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use ATTR_DB_CASSANDRA_CONSISTENCY_LEVEL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL = TMP_DB_CASSANDRA_CONSISTENCY_LEVEL;\n/**\n * The name of the primary table that the operation is acting upon, including the schema name (if applicable).\n *\n * Note: This mirrors the db.sql.table attribute but references cassandra rather than sql. It is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_TABLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_TABLE = TMP_DB_CASSANDRA_TABLE;\n/**\n * Whether or not the query is idempotent.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_IDEMPOTENCE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_IDEMPOTENCE = TMP_DB_CASSANDRA_IDEMPOTENCE;\n/**\n * The number of times a query was speculatively executed. Not set or `0` if the query was not executed speculatively.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT = TMP_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT;\n/**\n * The ID of the coordinating node for a query.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_COORDINATOR_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_COORDINATOR_ID = TMP_DB_CASSANDRA_COORDINATOR_ID;\n/**\n * The data center of the coordinating node for a query.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_COORDINATOR_DC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_CASSANDRA_COORDINATOR_DC = TMP_DB_CASSANDRA_COORDINATOR_DC;\n/**\n * The [HBase namespace](https://hbase.apache.org/book.html#_namespace) being accessed. To be used instead of the generic `db.name` attribute.\n *\n * @deprecated Use ATTR_DB_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_HBASE_NAMESPACE = TMP_DB_HBASE_NAMESPACE;\n/**\n * The index of the database being accessed as used in the [`SELECT` command](https://redis.io/commands/select), provided as an integer. To be used instead of the generic `db.name` attribute.\n *\n * @deprecated Use ATTR_DB_REDIS_DATABASE_INDEX in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_REDIS_DATABASE_INDEX = TMP_DB_REDIS_DATABASE_INDEX;\n/**\n * The collection being accessed within the database stated in `db.name`.\n *\n * @deprecated Use ATTR_DB_MONGODB_COLLECTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_MONGODB_COLLECTION = TMP_DB_MONGODB_COLLECTION;\n/**\n * The name of the primary table that the operation is acting upon, including the schema name (if applicable).\n *\n * Note: It is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set.\n *\n * @deprecated Use ATTR_DB_SQL_TABLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_DB_SQL_TABLE = TMP_DB_SQL_TABLE;\n/**\n * The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.\n *\n * @deprecated Use ATTR_EXCEPTION_TYPE.\n */\nexports.SEMATTRS_EXCEPTION_TYPE = TMP_EXCEPTION_TYPE;\n/**\n * The exception message.\n *\n * @deprecated Use ATTR_EXCEPTION_MESSAGE.\n */\nexports.SEMATTRS_EXCEPTION_MESSAGE = TMP_EXCEPTION_MESSAGE;\n/**\n * A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.\n *\n * @deprecated Use ATTR_EXCEPTION_STACKTRACE.\n */\nexports.SEMATTRS_EXCEPTION_STACKTRACE = TMP_EXCEPTION_STACKTRACE;\n/**\n* SHOULD be set to true if the exception event is recorded at a point where it is known that the exception is escaping the scope of the span.\n*\n* Note: An exception is considered to have escaped (or left) the scope of a span,\nif that span is ended while the exception is still logically "in flight".\nThis may be actually "in flight" in some languages (e.g. if the exception\nis passed to a Context manager's `__exit__` method in Python) but will\nusually be caught at the point of recording the exception in most languages.\n\nIt is usually not possible to determine at the point where an exception is thrown\nwhether it will escape the scope of a span.\nHowever, it is trivial to know that an exception\nwill escape, if one checks for an active exception just before ending the span,\nas done in the [example above](#exception-end-example).\n\nIt follows that an exception may still escape the scope of the span\neven if the `exception.escaped` attribute was not set or set to false,\nsince the event might have been recorded at a time where it was not\nclear whether the exception will escape.\n*\n* @deprecated Use ATTR_EXCEPTION_ESCAPED.\n*/\nexports.SEMATTRS_EXCEPTION_ESCAPED = TMP_EXCEPTION_ESCAPED;\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use ATTR_FAAS_TRIGGER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_TRIGGER = TMP_FAAS_TRIGGER;\n/**\n * The execution ID of the current function execution.\n *\n * @deprecated Use ATTR_FAAS_INVOCATION_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_EXECUTION = TMP_FAAS_EXECUTION;\n/**\n * The name of the source on which the triggering operation was performed. For example, in Cloud Storage or S3 corresponds to the bucket name, and in Cosmos DB to the database name.\n *\n * @deprecated Use ATTR_FAAS_DOCUMENT_COLLECTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_DOCUMENT_COLLECTION = TMP_FAAS_DOCUMENT_COLLECTION;\n/**\n * Describes the type of the operation that was performed on the data.\n *\n * @deprecated Use ATTR_FAAS_DOCUMENT_OPERATION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_DOCUMENT_OPERATION = TMP_FAAS_DOCUMENT_OPERATION;\n/**\n * A string containing the time when the data was accessed in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\n *\n * @deprecated Use ATTR_FAAS_DOCUMENT_TIME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_DOCUMENT_TIME = TMP_FAAS_DOCUMENT_TIME;\n/**\n * The document name/table subjected to the operation. For example, in Cloud Storage or S3 is the name of the file, and in Cosmos DB the table name.\n *\n * @deprecated Use ATTR_FAAS_DOCUMENT_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_DOCUMENT_NAME = TMP_FAAS_DOCUMENT_NAME;\n/**\n * A string containing the function invocation time in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\n *\n * @deprecated Use ATTR_FAAS_TIME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_TIME = TMP_FAAS_TIME;\n/**\n * A string containing the schedule period as [Cron Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).\n *\n * @deprecated Use ATTR_FAAS_CRON in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_CRON = TMP_FAAS_CRON;\n/**\n * A boolean that is true if the serverless function is executed for the first time (aka cold-start).\n *\n * @deprecated Use ATTR_FAAS_COLDSTART in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_COLDSTART = TMP_FAAS_COLDSTART;\n/**\n * The name of the invoked function.\n *\n * Note: SHOULD be equal to the `faas.name` resource attribute of the invoked function.\n *\n * @deprecated Use ATTR_FAAS_INVOKED_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_INVOKED_NAME = TMP_FAAS_INVOKED_NAME;\n/**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n *\n * @deprecated Use ATTR_FAAS_INVOKED_PROVIDER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_INVOKED_PROVIDER = TMP_FAAS_INVOKED_PROVIDER;\n/**\n * The cloud region of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.region` resource attribute of the invoked function.\n *\n * @deprecated Use ATTR_FAAS_INVOKED_REGION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_FAAS_INVOKED_REGION = TMP_FAAS_INVOKED_REGION;\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use ATTR_NET_TRANSPORT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_TRANSPORT = TMP_NET_TRANSPORT;\n/**\n * Remote address of the peer (dotted decimal for IPv4 or [RFC5952](https://tools.ietf.org/html/rfc5952) for IPv6).\n *\n * @deprecated Use ATTR_NET_PEER_IP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_PEER_IP = TMP_NET_PEER_IP;\n/**\n * Remote port number.\n *\n * @deprecated Use ATTR_NET_PEER_PORT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_PEER_PORT = TMP_NET_PEER_PORT;\n/**\n * Remote hostname or similar, see note below.\n *\n * @deprecated Use ATTR_NET_PEER_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_PEER_NAME = TMP_NET_PEER_NAME;\n/**\n * Like `net.peer.ip` but for the host IP. Useful in case of a multi-IP host.\n *\n * @deprecated Use ATTR_NET_HOST_IP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_IP = TMP_NET_HOST_IP;\n/**\n * Like `net.peer.port` but for the host port.\n *\n * @deprecated Use ATTR_NET_HOST_PORT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_PORT = TMP_NET_HOST_PORT;\n/**\n * Local hostname or similar, see note below.\n *\n * @deprecated Use ATTR_NET_HOST_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_NAME = TMP_NET_HOST_NAME;\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use ATTR_NETWORK_CONNECTION_TYPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_CONNECTION_TYPE = TMP_NET_HOST_CONNECTION_TYPE;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use ATTR_NETWORK_CONNECTION_SUBTYPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_CONNECTION_SUBTYPE = TMP_NET_HOST_CONNECTION_SUBTYPE;\n/**\n * The name of the mobile carrier.\n *\n * @deprecated Use ATTR_NETWORK_CARRIER_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_CARRIER_NAME = TMP_NET_HOST_CARRIER_NAME;\n/**\n * The mobile carrier country code.\n *\n * @deprecated Use ATTR_NETWORK_CARRIER_MCC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_CARRIER_MCC = TMP_NET_HOST_CARRIER_MCC;\n/**\n * The mobile carrier network code.\n *\n * @deprecated Use ATTR_NETWORK_CARRIER_MNC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_CARRIER_MNC = TMP_NET_HOST_CARRIER_MNC;\n/**\n * The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network.\n *\n * @deprecated Use ATTR_NETWORK_CARRIER_ICC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_NET_HOST_CARRIER_ICC = TMP_NET_HOST_CARRIER_ICC;\n/**\n * The [`service.name`](../../resource/semantic_conventions/README.md#service) of the remote service. SHOULD be equal to the actual `service.name` resource attribute of the remote service if any.\n *\n * @deprecated Use ATTR_PEER_SERVICE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_PEER_SERVICE = TMP_PEER_SERVICE;\n/**\n * Username or client_id extracted from the access token or [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header in the inbound request from outside the system.\n *\n * @deprecated Use ATTR_ENDUSER_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_ENDUSER_ID = TMP_ENDUSER_ID;\n/**\n * Actual/assumed role the client is making the request under extracted from token or application security context.\n *\n * @deprecated Use ATTR_ENDUSER_ROLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_ENDUSER_ROLE = TMP_ENDUSER_ROLE;\n/**\n * Scopes or granted authorities the client currently possesses extracted from token or application security context. The value would come from the scope associated with an [OAuth 2.0 Access Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute value in a [SAML 2.0 Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).\n *\n * @deprecated Use ATTR_ENDUSER_SCOPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_ENDUSER_SCOPE = TMP_ENDUSER_SCOPE;\n/**\n * Current "managed" thread ID (as opposed to OS thread ID).\n *\n * @deprecated Use ATTR_THREAD_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_THREAD_ID = TMP_THREAD_ID;\n/**\n * Current thread name.\n *\n * @deprecated Use ATTR_THREAD_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_THREAD_NAME = TMP_THREAD_NAME;\n/**\n * The method or function name, or equivalent (usually rightmost part of the code unit's name).\n *\n * @deprecated Use ATTR_CODE_FUNCTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_CODE_FUNCTION = TMP_CODE_FUNCTION;\n/**\n * The "namespace" within which `code.function` is defined. Usually the qualified class or module name, such that `code.namespace` + some separator + `code.function` form a unique identifier for the code unit.\n *\n * @deprecated Use ATTR_CODE_NAMESPACE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_CODE_NAMESPACE = TMP_CODE_NAMESPACE;\n/**\n * The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).\n *\n * @deprecated Use ATTR_CODE_FILEPATH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_CODE_FILEPATH = TMP_CODE_FILEPATH;\n/**\n * The line number in `code.filepath` best representing the operation. It SHOULD point within the code unit named in `code.function`.\n *\n * @deprecated Use ATTR_CODE_LINENO in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_CODE_LINENO = TMP_CODE_LINENO;\n/**\n * HTTP request method.\n *\n * @deprecated Use ATTR_HTTP_METHOD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_METHOD = TMP_HTTP_METHOD;\n/**\n * Full HTTP request URL in the form `scheme://host[:port]/path?query[#fragment]`. Usually the fragment is not transmitted over HTTP, but if it is known, it should be included nevertheless.\n *\n * Note: `http.url` MUST NOT contain credentials passed via URL in form of `https://username:password@www.example.com/`. In such case the attribute's value should be `https://www.example.com/`.\n *\n * @deprecated Use ATTR_HTTP_URL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_URL = TMP_HTTP_URL;\n/**\n * The full request target as passed in a HTTP request line or equivalent.\n *\n * @deprecated Use ATTR_HTTP_TARGET in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_TARGET = TMP_HTTP_TARGET;\n/**\n * The value of the [HTTP host header](https://tools.ietf.org/html/rfc7230#section-5.4). An empty Host header should also be reported, see note.\n *\n * Note: When the header is present but empty the attribute SHOULD be set to the empty string. Note that this is a valid situation that is expected in certain cases, according the aforementioned [section of RFC 7230](https://tools.ietf.org/html/rfc7230#section-5.4). When the header is not set the attribute MUST NOT be set.\n *\n * @deprecated Use ATTR_HTTP_HOST in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_HOST = TMP_HTTP_HOST;\n/**\n * The URI scheme identifying the used protocol.\n *\n * @deprecated Use ATTR_HTTP_SCHEME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_SCHEME = TMP_HTTP_SCHEME;\n/**\n * [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).\n *\n * @deprecated Use ATTR_HTTP_STATUS_CODE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_STATUS_CODE = TMP_HTTP_STATUS_CODE;\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use ATTR_HTTP_FLAVOR in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_FLAVOR = TMP_HTTP_FLAVOR;\n/**\n * Value of the [HTTP User-Agent](https://tools.ietf.org/html/rfc7231#section-5.5.3) header sent by the client.\n *\n * @deprecated Use ATTR_HTTP_USER_AGENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_USER_AGENT = TMP_HTTP_USER_AGENT;\n/**\n * The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://tools.ietf.org/html/rfc7230#section-3.3.2) header. For requests using transport encoding, this should be the compressed size.\n *\n * @deprecated Use ATTR_HTTP_REQUEST_CONTENT_LENGTH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH = TMP_HTTP_REQUEST_CONTENT_LENGTH;\n/**\n * The size of the uncompressed request payload body after transport decoding. Not set if transport encoding not used.\n *\n * @deprecated Use ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED = TMP_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED;\n/**\n * The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://tools.ietf.org/html/rfc7230#section-3.3.2) header. For requests using transport encoding, this should be the compressed size.\n *\n * @deprecated Use ATTR_HTTP_RESPONSE_CONTENT_LENGTH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH = TMP_HTTP_RESPONSE_CONTENT_LENGTH;\n/**\n * The size of the uncompressed response payload body after transport decoding. Not set if transport encoding not used.\n *\n * @deprecated Use ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED = TMP_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED;\n/**\n * The primary server name of the matched virtual host. This should be obtained via configuration. If no such configuration can be obtained, this attribute MUST NOT be set ( `net.host.name` should be used instead).\n *\n * Note: `http.url` is usually not readily available on the server side but would have to be assembled in a cumbersome and sometimes lossy process from other information (see e.g. open-telemetry/opentelemetry-python/pull/148). It is thus preferred to supply the raw data that is available.\n *\n * @deprecated Use ATTR_HTTP_SERVER_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_HTTP_SERVER_NAME = TMP_HTTP_SERVER_NAME;\n/**\n * The matched route (path template).\n *\n * @deprecated Use ATTR_HTTP_ROUTE.\n */\nexports.SEMATTRS_HTTP_ROUTE = TMP_HTTP_ROUTE;\n/**\n* The IP address of the original client behind all proxies, if known (e.g. from [X-Forwarded-For](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For)).\n*\n* Note: This is not necessarily the same as `net.peer.ip`, which would\nidentify the network-level peer, which may be a proxy.\n\nThis attribute should be set when a source of information different\nfrom the one used for `net.peer.ip`, is available even if that other\nsource just confirms the same value as `net.peer.ip`.\nRationale: For `net.peer.ip`, one typically does not know if it\ncomes from a proxy, reverse proxy, or the actual client. Setting\n`http.client_ip` when it's the same as `net.peer.ip` means that\none is at least somewhat confident that the address is not that of\nthe closest proxy.\n*\n* @deprecated Use ATTR_HTTP_CLIENT_IP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n*/\nexports.SEMATTRS_HTTP_CLIENT_IP = TMP_HTTP_CLIENT_IP;\n/**\n * The keys in the `RequestItems` object field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_TABLE_NAMES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_TABLE_NAMES = TMP_AWS_DYNAMODB_TABLE_NAMES;\n/**\n * The JSON-serialized value of each item in the `ConsumedCapacity` response field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_CONSUMED_CAPACITY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY = TMP_AWS_DYNAMODB_CONSUMED_CAPACITY;\n/**\n * The JSON-serialized value of the `ItemCollectionMetrics` response field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_ITEM_COLLECTION_METRICS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS = TMP_AWS_DYNAMODB_ITEM_COLLECTION_METRICS;\n/**\n * The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY = TMP_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY;\n/**\n * The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY = TMP_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY;\n/**\n * The value of the `ConsistentRead` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_CONSISTENT_READ in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ = TMP_AWS_DYNAMODB_CONSISTENT_READ;\n/**\n * The value of the `ProjectionExpression` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_PROJECTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_PROJECTION = TMP_AWS_DYNAMODB_PROJECTION;\n/**\n * The value of the `Limit` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_LIMIT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_LIMIT = TMP_AWS_DYNAMODB_LIMIT;\n/**\n * The value of the `AttributesToGet` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_ATTRIBUTES_TO_GET in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET = TMP_AWS_DYNAMODB_ATTRIBUTES_TO_GET;\n/**\n * The value of the `IndexName` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_INDEX_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_INDEX_NAME = TMP_AWS_DYNAMODB_INDEX_NAME;\n/**\n * The value of the `Select` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_SELECT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_SELECT = TMP_AWS_DYNAMODB_SELECT;\n/**\n * The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES = TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES;\n/**\n * The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES = TMP_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES;\n/**\n * The value of the `ExclusiveStartTableName` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_EXCLUSIVE_START_TABLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE = TMP_AWS_DYNAMODB_EXCLUSIVE_START_TABLE;\n/**\n * The the number of items in the `TableNames` response parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_TABLE_COUNT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_TABLE_COUNT = TMP_AWS_DYNAMODB_TABLE_COUNT;\n/**\n * The value of the `ScanIndexForward` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_SCAN_FORWARD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD = TMP_AWS_DYNAMODB_SCAN_FORWARD;\n/**\n * The value of the `Segment` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_SEGMENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_SEGMENT = TMP_AWS_DYNAMODB_SEGMENT;\n/**\n * The value of the `TotalSegments` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_TOTAL_SEGMENTS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS = TMP_AWS_DYNAMODB_TOTAL_SEGMENTS;\n/**\n * The value of the `Count` response parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_COUNT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_COUNT = TMP_AWS_DYNAMODB_COUNT;\n/**\n * The value of the `ScannedCount` response parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_SCANNED_COUNT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT = TMP_AWS_DYNAMODB_SCANNED_COUNT;\n/**\n * The JSON-serialized value of each item in the `AttributeDefinitions` request field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS = TMP_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS;\n/**\n * The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates` request field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES = TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES;\n/**\n * A string identifying the messaging system.\n *\n * @deprecated Use ATTR_MESSAGING_SYSTEM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_SYSTEM = TMP_MESSAGING_SYSTEM;\n/**\n * The message destination name. This might be equal to the span name but is required nevertheless.\n *\n * @deprecated Use ATTR_MESSAGING_DESTINATION_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_DESTINATION = TMP_MESSAGING_DESTINATION;\n/**\n * The kind of message destination.\n *\n * @deprecated Removed in semconv v1.20.0.\n */\nexports.SEMATTRS_MESSAGING_DESTINATION_KIND = TMP_MESSAGING_DESTINATION_KIND;\n/**\n * A boolean that is true if the message destination is temporary.\n *\n * @deprecated Use ATTR_MESSAGING_DESTINATION_TEMPORARY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_TEMP_DESTINATION = TMP_MESSAGING_TEMP_DESTINATION;\n/**\n * The name of the transport protocol.\n *\n * @deprecated Use ATTR_NETWORK_PROTOCOL_NAME.\n */\nexports.SEMATTRS_MESSAGING_PROTOCOL = TMP_MESSAGING_PROTOCOL;\n/**\n * The version of the transport protocol.\n *\n * @deprecated Use ATTR_NETWORK_PROTOCOL_VERSION.\n */\nexports.SEMATTRS_MESSAGING_PROTOCOL_VERSION = TMP_MESSAGING_PROTOCOL_VERSION;\n/**\n * Connection string.\n *\n * @deprecated Removed in semconv v1.17.0.\n */\nexports.SEMATTRS_MESSAGING_URL = TMP_MESSAGING_URL;\n/**\n * A value used by the messaging system as an identifier for the message, represented as a string.\n *\n * @deprecated Use ATTR_MESSAGING_MESSAGE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_MESSAGE_ID = TMP_MESSAGING_MESSAGE_ID;\n/**\n * The [conversation ID](#conversations) identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID".\n *\n * @deprecated Use ATTR_MESSAGING_MESSAGE_CONVERSATION_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_CONVERSATION_ID = TMP_MESSAGING_CONVERSATION_ID;\n/**\n * The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported.\n *\n * @deprecated Use ATTR_MESSAGING_MESSAGE_BODY_SIZE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES = TMP_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES;\n/**\n * The compressed size of the message payload in bytes.\n *\n * @deprecated Removed in semconv v1.22.0.\n */\nexports.SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES = TMP_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES;\n/**\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n *\n * @deprecated Use ATTR_MESSAGING_OPERATION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_OPERATION = TMP_MESSAGING_OPERATION;\n/**\n * The identifier for the consumer receiving a message. For Kafka, set it to `{messaging.kafka.consumer_group} - {messaging.kafka.client_id}`, if both are present, or only `messaging.kafka.consumer_group`. For brokers, such as RabbitMQ and Artemis, set it to the `client_id` of the client consuming the message.\n *\n * @deprecated Removed in semconv v1.21.0.\n */\nexports.SEMATTRS_MESSAGING_CONSUMER_ID = TMP_MESSAGING_CONSUMER_ID;\n/**\n * RabbitMQ message routing key.\n *\n * @deprecated Use ATTR_MESSAGING_RABBITMQ_DESTINATION_ROUTING_KEY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY = TMP_MESSAGING_RABBITMQ_ROUTING_KEY;\n/**\n * Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from `messaging.message_id` in that they're not unique. If the key is `null`, the attribute MUST NOT be set.\n *\n * Note: If the key type is not string, it's string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don't include its value.\n *\n * @deprecated Use ATTR_MESSAGING_KAFKA_MESSAGE_KEY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY = TMP_MESSAGING_KAFKA_MESSAGE_KEY;\n/**\n * Name of the Kafka Consumer Group that is handling the message. Only applies to consumers, not producers.\n *\n * @deprecated Use ATTR_MESSAGING_KAFKA_CONSUMER_GROUP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP = TMP_MESSAGING_KAFKA_CONSUMER_GROUP;\n/**\n * Client Id for the Consumer or Producer that is handling the message.\n *\n * @deprecated Use ATTR_MESSAGING_CLIENT_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_KAFKA_CLIENT_ID = TMP_MESSAGING_KAFKA_CLIENT_ID;\n/**\n * Partition the message is sent to.\n *\n * @deprecated Use ATTR_MESSAGING_KAFKA_DESTINATION_PARTITION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_KAFKA_PARTITION = TMP_MESSAGING_KAFKA_PARTITION;\n/**\n * A boolean that is true if the message is a tombstone.\n *\n * @deprecated Use ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGING_KAFKA_TOMBSTONE = TMP_MESSAGING_KAFKA_TOMBSTONE;\n/**\n * A string identifying the remoting system.\n *\n * @deprecated Use ATTR_RPC_SYSTEM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_SYSTEM = TMP_RPC_SYSTEM;\n/**\n * The full (logical) name of the service being called, including its package name, if applicable.\n *\n * Note: This is the logical name of the service from the RPC interface perspective, which can be different from the name of any implementing class. The `code.namespace` attribute may be used to store the latter (despite the attribute name, it may include a class name; e.g., class with method actually executing the call on the server side, RPC client stub class on the client side).\n *\n * @deprecated Use ATTR_RPC_SERVICE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_SERVICE = TMP_RPC_SERVICE;\n/**\n * The name of the (logical) method being called, must be equal to the $method part in the span name.\n *\n * Note: This is the logical name of the method from the RPC interface perspective, which can be different from the name of any implementing method/function. The `code.function` attribute may be used to store the latter (e.g., method actually executing the call on the server side, RPC client stub method on the client side).\n *\n * @deprecated Use ATTR_RPC_METHOD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_METHOD = TMP_RPC_METHOD;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use ATTR_RPC_GRPC_STATUS_CODE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_GRPC_STATUS_CODE = TMP_RPC_GRPC_STATUS_CODE;\n/**\n * Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0 does not specify this, the value can be omitted.\n *\n * @deprecated Use ATTR_RPC_JSONRPC_VERSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_JSONRPC_VERSION = TMP_RPC_JSONRPC_VERSION;\n/**\n * `id` property of request or response. Since protocol allows id to be int, string, `null` or missing (for notifications), value is expected to be cast to string for simplicity. Use empty string in case of `null` value. Omit entirely if this is a notification.\n *\n * @deprecated Use ATTR_RPC_JSONRPC_REQUEST_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_JSONRPC_REQUEST_ID = TMP_RPC_JSONRPC_REQUEST_ID;\n/**\n * `error.code` property of response if it is an error response.\n *\n * @deprecated Use ATTR_RPC_JSONRPC_ERROR_CODE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_JSONRPC_ERROR_CODE = TMP_RPC_JSONRPC_ERROR_CODE;\n/**\n * `error.message` property of response if it is an error response.\n *\n * @deprecated Use ATTR_RPC_JSONRPC_ERROR_MESSAGE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE = TMP_RPC_JSONRPC_ERROR_MESSAGE;\n/**\n * Whether this is a received or sent message.\n *\n * @deprecated Use ATTR_MESSAGE_TYPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGE_TYPE = TMP_MESSAGE_TYPE;\n/**\n * MUST be calculated as two different counters starting from `1` one for sent messages and one for received message.\n *\n * Note: This way we guarantee that the values will be consistent between different implementations.\n *\n * @deprecated Use ATTR_MESSAGE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGE_ID = TMP_MESSAGE_ID;\n/**\n * Compressed size of the message in bytes.\n *\n * @deprecated Use ATTR_MESSAGE_COMPRESSED_SIZE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGE_COMPRESSED_SIZE = TMP_MESSAGE_COMPRESSED_SIZE;\n/**\n * Uncompressed size of the message in bytes.\n *\n * @deprecated Use ATTR_MESSAGE_UNCOMPRESSED_SIZE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE = TMP_MESSAGE_UNCOMPRESSED_SIZE;\n/**\n * Create exported Value Map for SemanticAttributes values\n * @deprecated Use the SEMATTRS_XXXXX constants rather than the SemanticAttributes.XXXXX for bundle minification\n */\nexports.SemanticAttributes = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_AWS_LAMBDA_INVOKED_ARN,\n TMP_DB_SYSTEM,\n TMP_DB_CONNECTION_STRING,\n TMP_DB_USER,\n TMP_DB_JDBC_DRIVER_CLASSNAME,\n TMP_DB_NAME,\n TMP_DB_STATEMENT,\n TMP_DB_OPERATION,\n TMP_DB_MSSQL_INSTANCE_NAME,\n TMP_DB_CASSANDRA_KEYSPACE,\n TMP_DB_CASSANDRA_PAGE_SIZE,\n TMP_DB_CASSANDRA_CONSISTENCY_LEVEL,\n TMP_DB_CASSANDRA_TABLE,\n TMP_DB_CASSANDRA_IDEMPOTENCE,\n TMP_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT,\n TMP_DB_CASSANDRA_COORDINATOR_ID,\n TMP_DB_CASSANDRA_COORDINATOR_DC,\n TMP_DB_HBASE_NAMESPACE,\n TMP_DB_REDIS_DATABASE_INDEX,\n TMP_DB_MONGODB_COLLECTION,\n TMP_DB_SQL_TABLE,\n TMP_EXCEPTION_TYPE,\n TMP_EXCEPTION_MESSAGE,\n TMP_EXCEPTION_STACKTRACE,\n TMP_EXCEPTION_ESCAPED,\n TMP_FAAS_TRIGGER,\n TMP_FAAS_EXECUTION,\n TMP_FAAS_DOCUMENT_COLLECTION,\n TMP_FAAS_DOCUMENT_OPERATION,\n TMP_FAAS_DOCUMENT_TIME,\n TMP_FAAS_DOCUMENT_NAME,\n TMP_FAAS_TIME,\n TMP_FAAS_CRON,\n TMP_FAAS_COLDSTART,\n TMP_FAAS_INVOKED_NAME,\n TMP_FAAS_INVOKED_PROVIDER,\n TMP_FAAS_INVOKED_REGION,\n TMP_NET_TRANSPORT,\n TMP_NET_PEER_IP,\n TMP_NET_PEER_PORT,\n TMP_NET_PEER_NAME,\n TMP_NET_HOST_IP,\n TMP_NET_HOST_PORT,\n TMP_NET_HOST_NAME,\n TMP_NET_HOST_CONNECTION_TYPE,\n TMP_NET_HOST_CONNECTION_SUBTYPE,\n TMP_NET_HOST_CARRIER_NAME,\n TMP_NET_HOST_CARRIER_MCC,\n TMP_NET_HOST_CARRIER_MNC,\n TMP_NET_HOST_CARRIER_ICC,\n TMP_PEER_SERVICE,\n TMP_ENDUSER_ID,\n TMP_ENDUSER_ROLE,\n TMP_ENDUSER_SCOPE,\n TMP_THREAD_ID,\n TMP_THREAD_NAME,\n TMP_CODE_FUNCTION,\n TMP_CODE_NAMESPACE,\n TMP_CODE_FILEPATH,\n TMP_CODE_LINENO,\n TMP_HTTP_METHOD,\n TMP_HTTP_URL,\n TMP_HTTP_TARGET,\n TMP_HTTP_HOST,\n TMP_HTTP_SCHEME,\n TMP_HTTP_STATUS_CODE,\n TMP_HTTP_FLAVOR,\n TMP_HTTP_USER_AGENT,\n TMP_HTTP_REQUEST_CONTENT_LENGTH,\n TMP_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED,\n TMP_HTTP_RESPONSE_CONTENT_LENGTH,\n TMP_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED,\n TMP_HTTP_SERVER_NAME,\n TMP_HTTP_ROUTE,\n TMP_HTTP_CLIENT_IP,\n TMP_AWS_DYNAMODB_TABLE_NAMES,\n TMP_AWS_DYNAMODB_CONSUMED_CAPACITY,\n TMP_AWS_DYNAMODB_ITEM_COLLECTION_METRICS,\n TMP_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY,\n TMP_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY,\n TMP_AWS_DYNAMODB_CONSISTENT_READ,\n TMP_AWS_DYNAMODB_PROJECTION,\n TMP_AWS_DYNAMODB_LIMIT,\n TMP_AWS_DYNAMODB_ATTRIBUTES_TO_GET,\n TMP_AWS_DYNAMODB_INDEX_NAME,\n TMP_AWS_DYNAMODB_SELECT,\n TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES,\n TMP_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES,\n TMP_AWS_DYNAMODB_EXCLUSIVE_START_TABLE,\n TMP_AWS_DYNAMODB_TABLE_COUNT,\n TMP_AWS_DYNAMODB_SCAN_FORWARD,\n TMP_AWS_DYNAMODB_SEGMENT,\n TMP_AWS_DYNAMODB_TOTAL_SEGMENTS,\n TMP_AWS_DYNAMODB_COUNT,\n TMP_AWS_DYNAMODB_SCANNED_COUNT,\n TMP_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS,\n TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES,\n TMP_MESSAGING_SYSTEM,\n TMP_MESSAGING_DESTINATION,\n TMP_MESSAGING_DESTINATION_KIND,\n TMP_MESSAGING_TEMP_DESTINATION,\n TMP_MESSAGING_PROTOCOL,\n TMP_MESSAGING_PROTOCOL_VERSION,\n TMP_MESSAGING_URL,\n TMP_MESSAGING_MESSAGE_ID,\n TMP_MESSAGING_CONVERSATION_ID,\n TMP_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES,\n TMP_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES,\n TMP_MESSAGING_OPERATION,\n TMP_MESSAGING_CONSUMER_ID,\n TMP_MESSAGING_RABBITMQ_ROUTING_KEY,\n TMP_MESSAGING_KAFKA_MESSAGE_KEY,\n TMP_MESSAGING_KAFKA_CONSUMER_GROUP,\n TMP_MESSAGING_KAFKA_CLIENT_ID,\n TMP_MESSAGING_KAFKA_PARTITION,\n TMP_MESSAGING_KAFKA_TOMBSTONE,\n TMP_RPC_SYSTEM,\n TMP_RPC_SERVICE,\n TMP_RPC_METHOD,\n TMP_RPC_GRPC_STATUS_CODE,\n TMP_RPC_JSONRPC_VERSION,\n TMP_RPC_JSONRPC_REQUEST_ID,\n TMP_RPC_JSONRPC_ERROR_CODE,\n TMP_RPC_JSONRPC_ERROR_MESSAGE,\n TMP_MESSAGE_TYPE,\n TMP_MESSAGE_ID,\n TMP_MESSAGE_COMPRESSED_SIZE,\n TMP_MESSAGE_UNCOMPRESSED_SIZE,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for DbSystemValues enum definition\n *\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_DBSYSTEMVALUES_OTHER_SQL = 'other_sql';\nconst TMP_DBSYSTEMVALUES_MSSQL = 'mssql';\nconst TMP_DBSYSTEMVALUES_MYSQL = 'mysql';\nconst TMP_DBSYSTEMVALUES_ORACLE = 'oracle';\nconst TMP_DBSYSTEMVALUES_DB2 = 'db2';\nconst TMP_DBSYSTEMVALUES_POSTGRESQL = 'postgresql';\nconst TMP_DBSYSTEMVALUES_REDSHIFT = 'redshift';\nconst TMP_DBSYSTEMVALUES_HIVE = 'hive';\nconst TMP_DBSYSTEMVALUES_CLOUDSCAPE = 'cloudscape';\nconst TMP_DBSYSTEMVALUES_HSQLDB = 'hsqldb';\nconst TMP_DBSYSTEMVALUES_PROGRESS = 'progress';\nconst TMP_DBSYSTEMVALUES_MAXDB = 'maxdb';\nconst TMP_DBSYSTEMVALUES_HANADB = 'hanadb';\nconst TMP_DBSYSTEMVALUES_INGRES = 'ingres';\nconst TMP_DBSYSTEMVALUES_FIRSTSQL = 'firstsql';\nconst TMP_DBSYSTEMVALUES_EDB = 'edb';\nconst TMP_DBSYSTEMVALUES_CACHE = 'cache';\nconst TMP_DBSYSTEMVALUES_ADABAS = 'adabas';\nconst TMP_DBSYSTEMVALUES_FIREBIRD = 'firebird';\nconst TMP_DBSYSTEMVALUES_DERBY = 'derby';\nconst TMP_DBSYSTEMVALUES_FILEMAKER = 'filemaker';\nconst TMP_DBSYSTEMVALUES_INFORMIX = 'informix';\nconst TMP_DBSYSTEMVALUES_INSTANTDB = 'instantdb';\nconst TMP_DBSYSTEMVALUES_INTERBASE = 'interbase';\nconst TMP_DBSYSTEMVALUES_MARIADB = 'mariadb';\nconst TMP_DBSYSTEMVALUES_NETEZZA = 'netezza';\nconst TMP_DBSYSTEMVALUES_PERVASIVE = 'pervasive';\nconst TMP_DBSYSTEMVALUES_POINTBASE = 'pointbase';\nconst TMP_DBSYSTEMVALUES_SQLITE = 'sqlite';\nconst TMP_DBSYSTEMVALUES_SYBASE = 'sybase';\nconst TMP_DBSYSTEMVALUES_TERADATA = 'teradata';\nconst TMP_DBSYSTEMVALUES_VERTICA = 'vertica';\nconst TMP_DBSYSTEMVALUES_H2 = 'h2';\nconst TMP_DBSYSTEMVALUES_COLDFUSION = 'coldfusion';\nconst TMP_DBSYSTEMVALUES_CASSANDRA = 'cassandra';\nconst TMP_DBSYSTEMVALUES_HBASE = 'hbase';\nconst TMP_DBSYSTEMVALUES_MONGODB = 'mongodb';\nconst TMP_DBSYSTEMVALUES_REDIS = 'redis';\nconst TMP_DBSYSTEMVALUES_COUCHBASE = 'couchbase';\nconst TMP_DBSYSTEMVALUES_COUCHDB = 'couchdb';\nconst TMP_DBSYSTEMVALUES_COSMOSDB = 'cosmosdb';\nconst TMP_DBSYSTEMVALUES_DYNAMODB = 'dynamodb';\nconst TMP_DBSYSTEMVALUES_NEO4J = 'neo4j';\nconst TMP_DBSYSTEMVALUES_GEODE = 'geode';\nconst TMP_DBSYSTEMVALUES_ELASTICSEARCH = 'elasticsearch';\nconst TMP_DBSYSTEMVALUES_MEMCACHED = 'memcached';\nconst TMP_DBSYSTEMVALUES_COCKROACHDB = 'cockroachdb';\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_OTHER_SQL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_OTHER_SQL = TMP_DBSYSTEMVALUES_OTHER_SQL;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MSSQL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_MSSQL = TMP_DBSYSTEMVALUES_MSSQL;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MYSQL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_MYSQL = TMP_DBSYSTEMVALUES_MYSQL;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_ORACLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_ORACLE = TMP_DBSYSTEMVALUES_ORACLE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_DB2 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_DB2 = TMP_DBSYSTEMVALUES_DB2;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_POSTGRESQL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_POSTGRESQL = TMP_DBSYSTEMVALUES_POSTGRESQL;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_REDSHIFT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_REDSHIFT = TMP_DBSYSTEMVALUES_REDSHIFT;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_HIVE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_HIVE = TMP_DBSYSTEMVALUES_HIVE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_CLOUDSCAPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_CLOUDSCAPE = TMP_DBSYSTEMVALUES_CLOUDSCAPE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_HSQLDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_HSQLDB = TMP_DBSYSTEMVALUES_HSQLDB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_PROGRESS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_PROGRESS = TMP_DBSYSTEMVALUES_PROGRESS;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MAXDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_MAXDB = TMP_DBSYSTEMVALUES_MAXDB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_HANADB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_HANADB = TMP_DBSYSTEMVALUES_HANADB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_INGRES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_INGRES = TMP_DBSYSTEMVALUES_INGRES;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_FIRSTSQL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_FIRSTSQL = TMP_DBSYSTEMVALUES_FIRSTSQL;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_EDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_EDB = TMP_DBSYSTEMVALUES_EDB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_CACHE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_CACHE = TMP_DBSYSTEMVALUES_CACHE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_ADABAS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_ADABAS = TMP_DBSYSTEMVALUES_ADABAS;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_FIREBIRD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_FIREBIRD = TMP_DBSYSTEMVALUES_FIREBIRD;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_DERBY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_DERBY = TMP_DBSYSTEMVALUES_DERBY;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_FILEMAKER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_FILEMAKER = TMP_DBSYSTEMVALUES_FILEMAKER;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_INFORMIX in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_INFORMIX = TMP_DBSYSTEMVALUES_INFORMIX;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_INSTANTDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_INSTANTDB = TMP_DBSYSTEMVALUES_INSTANTDB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_INTERBASE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_INTERBASE = TMP_DBSYSTEMVALUES_INTERBASE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MARIADB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_MARIADB = TMP_DBSYSTEMVALUES_MARIADB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_NETEZZA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_NETEZZA = TMP_DBSYSTEMVALUES_NETEZZA;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_PERVASIVE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_PERVASIVE = TMP_DBSYSTEMVALUES_PERVASIVE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_POINTBASE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_POINTBASE = TMP_DBSYSTEMVALUES_POINTBASE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_SQLITE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_SQLITE = TMP_DBSYSTEMVALUES_SQLITE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_SYBASE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_SYBASE = TMP_DBSYSTEMVALUES_SYBASE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_TERADATA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_TERADATA = TMP_DBSYSTEMVALUES_TERADATA;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_VERTICA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_VERTICA = TMP_DBSYSTEMVALUES_VERTICA;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_H2 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_H2 = TMP_DBSYSTEMVALUES_H2;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_COLDFUSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_COLDFUSION = TMP_DBSYSTEMVALUES_COLDFUSION;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_CASSANDRA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_CASSANDRA = TMP_DBSYSTEMVALUES_CASSANDRA;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_HBASE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_HBASE = TMP_DBSYSTEMVALUES_HBASE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MONGODB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_MONGODB = TMP_DBSYSTEMVALUES_MONGODB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_REDIS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_REDIS = TMP_DBSYSTEMVALUES_REDIS;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_COUCHBASE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_COUCHBASE = TMP_DBSYSTEMVALUES_COUCHBASE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_COUCHDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_COUCHDB = TMP_DBSYSTEMVALUES_COUCHDB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_COSMOSDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_COSMOSDB = TMP_DBSYSTEMVALUES_COSMOSDB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_DYNAMODB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_DYNAMODB = TMP_DBSYSTEMVALUES_DYNAMODB;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_NEO4J in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_NEO4J = TMP_DBSYSTEMVALUES_NEO4J;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_GEODE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_GEODE = TMP_DBSYSTEMVALUES_GEODE;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_ELASTICSEARCH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_ELASTICSEARCH = TMP_DBSYSTEMVALUES_ELASTICSEARCH;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MEMCACHED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_MEMCACHED = TMP_DBSYSTEMVALUES_MEMCACHED;\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_COCKROACHDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBSYSTEMVALUES_COCKROACHDB = TMP_DBSYSTEMVALUES_COCKROACHDB;\n/**\n * The constant map of values for DbSystemValues.\n * @deprecated Use the DBSYSTEMVALUES_XXXXX constants rather than the DbSystemValues.XXXXX for bundle minification.\n */\nexports.DbSystemValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_DBSYSTEMVALUES_OTHER_SQL,\n TMP_DBSYSTEMVALUES_MSSQL,\n TMP_DBSYSTEMVALUES_MYSQL,\n TMP_DBSYSTEMVALUES_ORACLE,\n TMP_DBSYSTEMVALUES_DB2,\n TMP_DBSYSTEMVALUES_POSTGRESQL,\n TMP_DBSYSTEMVALUES_REDSHIFT,\n TMP_DBSYSTEMVALUES_HIVE,\n TMP_DBSYSTEMVALUES_CLOUDSCAPE,\n TMP_DBSYSTEMVALUES_HSQLDB,\n TMP_DBSYSTEMVALUES_PROGRESS,\n TMP_DBSYSTEMVALUES_MAXDB,\n TMP_DBSYSTEMVALUES_HANADB,\n TMP_DBSYSTEMVALUES_INGRES,\n TMP_DBSYSTEMVALUES_FIRSTSQL,\n TMP_DBSYSTEMVALUES_EDB,\n TMP_DBSYSTEMVALUES_CACHE,\n TMP_DBSYSTEMVALUES_ADABAS,\n TMP_DBSYSTEMVALUES_FIREBIRD,\n TMP_DBSYSTEMVALUES_DERBY,\n TMP_DBSYSTEMVALUES_FILEMAKER,\n TMP_DBSYSTEMVALUES_INFORMIX,\n TMP_DBSYSTEMVALUES_INSTANTDB,\n TMP_DBSYSTEMVALUES_INTERBASE,\n TMP_DBSYSTEMVALUES_MARIADB,\n TMP_DBSYSTEMVALUES_NETEZZA,\n TMP_DBSYSTEMVALUES_PERVASIVE,\n TMP_DBSYSTEMVALUES_POINTBASE,\n TMP_DBSYSTEMVALUES_SQLITE,\n TMP_DBSYSTEMVALUES_SYBASE,\n TMP_DBSYSTEMVALUES_TERADATA,\n TMP_DBSYSTEMVALUES_VERTICA,\n TMP_DBSYSTEMVALUES_H2,\n TMP_DBSYSTEMVALUES_COLDFUSION,\n TMP_DBSYSTEMVALUES_CASSANDRA,\n TMP_DBSYSTEMVALUES_HBASE,\n TMP_DBSYSTEMVALUES_MONGODB,\n TMP_DBSYSTEMVALUES_REDIS,\n TMP_DBSYSTEMVALUES_COUCHBASE,\n TMP_DBSYSTEMVALUES_COUCHDB,\n TMP_DBSYSTEMVALUES_COSMOSDB,\n TMP_DBSYSTEMVALUES_DYNAMODB,\n TMP_DBSYSTEMVALUES_NEO4J,\n TMP_DBSYSTEMVALUES_GEODE,\n TMP_DBSYSTEMVALUES_ELASTICSEARCH,\n TMP_DBSYSTEMVALUES_MEMCACHED,\n TMP_DBSYSTEMVALUES_COCKROACHDB,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for DbCassandraConsistencyLevelValues enum definition\n *\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ALL = 'all';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM = 'each_quorum';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM = 'quorum';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM = 'local_quorum';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ONE = 'one';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_TWO = 'two';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_THREE = 'three';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE = 'local_one';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ANY = 'any';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL = 'serial';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL = 'local_serial';\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_ALL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_ALL = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ALL;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_EACH_QUORUM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_QUORUM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_LOCAL_QUORUM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_ONE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_ONE = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ONE;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_TWO in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_TWO = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_TWO;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_THREE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_THREE = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_THREE;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_LOCAL_ONE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_ANY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_ANY = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ANY;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_SERIAL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL;\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_LOCAL_SERIAL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL = TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL;\n/**\n * The constant map of values for DbCassandraConsistencyLevelValues.\n * @deprecated Use the DBCASSANDRACONSISTENCYLEVELVALUES_XXXXX constants rather than the DbCassandraConsistencyLevelValues.XXXXX for bundle minification.\n */\nexports.DbCassandraConsistencyLevelValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ALL,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ONE,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_TWO,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_THREE,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ANY,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for FaasTriggerValues enum definition\n *\n * Type of the trigger on which the function is executed.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_FAASTRIGGERVALUES_DATASOURCE = 'datasource';\nconst TMP_FAASTRIGGERVALUES_HTTP = 'http';\nconst TMP_FAASTRIGGERVALUES_PUBSUB = 'pubsub';\nconst TMP_FAASTRIGGERVALUES_TIMER = 'timer';\nconst TMP_FAASTRIGGERVALUES_OTHER = 'other';\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use FAAS_TRIGGER_VALUE_DATASOURCE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASTRIGGERVALUES_DATASOURCE = TMP_FAASTRIGGERVALUES_DATASOURCE;\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use FAAS_TRIGGER_VALUE_HTTP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASTRIGGERVALUES_HTTP = TMP_FAASTRIGGERVALUES_HTTP;\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use FAAS_TRIGGER_VALUE_PUBSUB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASTRIGGERVALUES_PUBSUB = TMP_FAASTRIGGERVALUES_PUBSUB;\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use FAAS_TRIGGER_VALUE_TIMER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASTRIGGERVALUES_TIMER = TMP_FAASTRIGGERVALUES_TIMER;\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use FAAS_TRIGGER_VALUE_OTHER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASTRIGGERVALUES_OTHER = TMP_FAASTRIGGERVALUES_OTHER;\n/**\n * The constant map of values for FaasTriggerValues.\n * @deprecated Use the FAASTRIGGERVALUES_XXXXX constants rather than the FaasTriggerValues.XXXXX for bundle minification.\n */\nexports.FaasTriggerValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_FAASTRIGGERVALUES_DATASOURCE,\n TMP_FAASTRIGGERVALUES_HTTP,\n TMP_FAASTRIGGERVALUES_PUBSUB,\n TMP_FAASTRIGGERVALUES_TIMER,\n TMP_FAASTRIGGERVALUES_OTHER,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for FaasDocumentOperationValues enum definition\n *\n * Describes the type of the operation that was performed on the data.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_FAASDOCUMENTOPERATIONVALUES_INSERT = 'insert';\nconst TMP_FAASDOCUMENTOPERATIONVALUES_EDIT = 'edit';\nconst TMP_FAASDOCUMENTOPERATIONVALUES_DELETE = 'delete';\n/**\n * Describes the type of the operation that was performed on the data.\n *\n * @deprecated Use FAAS_DOCUMENT_OPERATION_VALUE_INSERT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASDOCUMENTOPERATIONVALUES_INSERT = TMP_FAASDOCUMENTOPERATIONVALUES_INSERT;\n/**\n * Describes the type of the operation that was performed on the data.\n *\n * @deprecated Use FAAS_DOCUMENT_OPERATION_VALUE_EDIT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASDOCUMENTOPERATIONVALUES_EDIT = TMP_FAASDOCUMENTOPERATIONVALUES_EDIT;\n/**\n * Describes the type of the operation that was performed on the data.\n *\n * @deprecated Use FAAS_DOCUMENT_OPERATION_VALUE_DELETE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASDOCUMENTOPERATIONVALUES_DELETE = TMP_FAASDOCUMENTOPERATIONVALUES_DELETE;\n/**\n * The constant map of values for FaasDocumentOperationValues.\n * @deprecated Use the FAASDOCUMENTOPERATIONVALUES_XXXXX constants rather than the FaasDocumentOperationValues.XXXXX for bundle minification.\n */\nexports.FaasDocumentOperationValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_FAASDOCUMENTOPERATIONVALUES_INSERT,\n TMP_FAASDOCUMENTOPERATIONVALUES_EDIT,\n TMP_FAASDOCUMENTOPERATIONVALUES_DELETE,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for FaasInvokedProviderValues enum definition\n *\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD = 'alibaba_cloud';\nconst TMP_FAASINVOKEDPROVIDERVALUES_AWS = 'aws';\nconst TMP_FAASINVOKEDPROVIDERVALUES_AZURE = 'azure';\nconst TMP_FAASINVOKEDPROVIDERVALUES_GCP = 'gcp';\n/**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n *\n * @deprecated Use FAAS_INVOKED_PROVIDER_VALUE_ALIBABA_CLOUD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD = TMP_FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD;\n/**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n *\n * @deprecated Use FAAS_INVOKED_PROVIDER_VALUE_AWS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASINVOKEDPROVIDERVALUES_AWS = TMP_FAASINVOKEDPROVIDERVALUES_AWS;\n/**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n *\n * @deprecated Use FAAS_INVOKED_PROVIDER_VALUE_AZURE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASINVOKEDPROVIDERVALUES_AZURE = TMP_FAASINVOKEDPROVIDERVALUES_AZURE;\n/**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n *\n * @deprecated Use FAAS_INVOKED_PROVIDER_VALUE_GCP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.FAASINVOKEDPROVIDERVALUES_GCP = TMP_FAASINVOKEDPROVIDERVALUES_GCP;\n/**\n * The constant map of values for FaasInvokedProviderValues.\n * @deprecated Use the FAASINVOKEDPROVIDERVALUES_XXXXX constants rather than the FaasInvokedProviderValues.XXXXX for bundle minification.\n */\nexports.FaasInvokedProviderValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD,\n TMP_FAASINVOKEDPROVIDERVALUES_AWS,\n TMP_FAASINVOKEDPROVIDERVALUES_AZURE,\n TMP_FAASINVOKEDPROVIDERVALUES_GCP,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for NetTransportValues enum definition\n *\n * Transport protocol used. See note below.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_NETTRANSPORTVALUES_IP_TCP = 'ip_tcp';\nconst TMP_NETTRANSPORTVALUES_IP_UDP = 'ip_udp';\nconst TMP_NETTRANSPORTVALUES_IP = 'ip';\nconst TMP_NETTRANSPORTVALUES_UNIX = 'unix';\nconst TMP_NETTRANSPORTVALUES_PIPE = 'pipe';\nconst TMP_NETTRANSPORTVALUES_INPROC = 'inproc';\nconst TMP_NETTRANSPORTVALUES_OTHER = 'other';\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use NET_TRANSPORT_VALUE_IP_TCP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETTRANSPORTVALUES_IP_TCP = TMP_NETTRANSPORTVALUES_IP_TCP;\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use NET_TRANSPORT_VALUE_IP_UDP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETTRANSPORTVALUES_IP_UDP = TMP_NETTRANSPORTVALUES_IP_UDP;\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Removed in v1.21.0.\n */\nexports.NETTRANSPORTVALUES_IP = TMP_NETTRANSPORTVALUES_IP;\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Removed in v1.21.0.\n */\nexports.NETTRANSPORTVALUES_UNIX = TMP_NETTRANSPORTVALUES_UNIX;\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use NET_TRANSPORT_VALUE_PIPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETTRANSPORTVALUES_PIPE = TMP_NETTRANSPORTVALUES_PIPE;\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use NET_TRANSPORT_VALUE_INPROC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETTRANSPORTVALUES_INPROC = TMP_NETTRANSPORTVALUES_INPROC;\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use NET_TRANSPORT_VALUE_OTHER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETTRANSPORTVALUES_OTHER = TMP_NETTRANSPORTVALUES_OTHER;\n/**\n * The constant map of values for NetTransportValues.\n * @deprecated Use the NETTRANSPORTVALUES_XXXXX constants rather than the NetTransportValues.XXXXX for bundle minification.\n */\nexports.NetTransportValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_NETTRANSPORTVALUES_IP_TCP,\n TMP_NETTRANSPORTVALUES_IP_UDP,\n TMP_NETTRANSPORTVALUES_IP,\n TMP_NETTRANSPORTVALUES_UNIX,\n TMP_NETTRANSPORTVALUES_PIPE,\n TMP_NETTRANSPORTVALUES_INPROC,\n TMP_NETTRANSPORTVALUES_OTHER,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for NetHostConnectionTypeValues enum definition\n *\n * The internet connection type currently being used by the host.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_NETHOSTCONNECTIONTYPEVALUES_WIFI = 'wifi';\nconst TMP_NETHOSTCONNECTIONTYPEVALUES_WIRED = 'wired';\nconst TMP_NETHOSTCONNECTIONTYPEVALUES_CELL = 'cell';\nconst TMP_NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE = 'unavailable';\nconst TMP_NETHOSTCONNECTIONTYPEVALUES_UNKNOWN = 'unknown';\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use NETWORK_CONNECTION_TYPE_VALUE_WIFI in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONTYPEVALUES_WIFI = TMP_NETHOSTCONNECTIONTYPEVALUES_WIFI;\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use NETWORK_CONNECTION_TYPE_VALUE_WIRED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONTYPEVALUES_WIRED = TMP_NETHOSTCONNECTIONTYPEVALUES_WIRED;\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use NETWORK_CONNECTION_TYPE_VALUE_CELL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONTYPEVALUES_CELL = TMP_NETHOSTCONNECTIONTYPEVALUES_CELL;\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use NETWORK_CONNECTION_TYPE_VALUE_UNAVAILABLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE = TMP_NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE;\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use NETWORK_CONNECTION_TYPE_VALUE_UNKNOWN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONTYPEVALUES_UNKNOWN = TMP_NETHOSTCONNECTIONTYPEVALUES_UNKNOWN;\n/**\n * The constant map of values for NetHostConnectionTypeValues.\n * @deprecated Use the NETHOSTCONNECTIONTYPEVALUES_XXXXX constants rather than the NetHostConnectionTypeValues.XXXXX for bundle minification.\n */\nexports.NetHostConnectionTypeValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_NETHOSTCONNECTIONTYPEVALUES_WIFI,\n TMP_NETHOSTCONNECTIONTYPEVALUES_WIRED,\n TMP_NETHOSTCONNECTIONTYPEVALUES_CELL,\n TMP_NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE,\n TMP_NETHOSTCONNECTIONTYPEVALUES_UNKNOWN,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for NetHostConnectionSubtypeValues enum definition\n *\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GPRS = 'gprs';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EDGE = 'edge';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_UMTS = 'umts';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA = 'cdma';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0 = 'evdo_0';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A = 'evdo_a';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT = 'cdma2000_1xrtt';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA = 'hsdpa';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA = 'hsupa';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPA = 'hspa';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IDEN = 'iden';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B = 'evdo_b';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE = 'lte';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD = 'ehrpd';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP = 'hspap';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GSM = 'gsm';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA = 'td_scdma';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN = 'iwlan';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NR = 'nr';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA = 'nrnsa';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA = 'lte_ca';\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_GPRS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_GPRS = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GPRS;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_EDGE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_EDGE = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EDGE;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_UMTS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_UMTS = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_UMTS;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_CDMA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_EVDO_0 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0 = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_EVDO_A in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_CDMA2000_1XRTT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_HSDPA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_HSUPA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_HSPA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_HSPA = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPA;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_IDEN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_IDEN = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IDEN;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_EVDO_B in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_LTE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_LTE = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_EHRPD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_HSPAP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_GSM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_GSM = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GSM;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_TD_SCDMA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_IWLAN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_NR in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_NR = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NR;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_NRNSA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA;\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_LTE_CA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA = TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA;\n/**\n * The constant map of values for NetHostConnectionSubtypeValues.\n * @deprecated Use the NETHOSTCONNECTIONSUBTYPEVALUES_XXXXX constants rather than the NetHostConnectionSubtypeValues.XXXXX for bundle minification.\n */\nexports.NetHostConnectionSubtypeValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GPRS,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EDGE,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_UMTS,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IDEN,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GSM,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NR,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for HttpFlavorValues enum definition\n *\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_HTTPFLAVORVALUES_HTTP_1_0 = '1.0';\nconst TMP_HTTPFLAVORVALUES_HTTP_1_1 = '1.1';\nconst TMP_HTTPFLAVORVALUES_HTTP_2_0 = '2.0';\nconst TMP_HTTPFLAVORVALUES_SPDY = 'SPDY';\nconst TMP_HTTPFLAVORVALUES_QUIC = 'QUIC';\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use HTTP_FLAVOR_VALUE_HTTP_1_0 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.HTTPFLAVORVALUES_HTTP_1_0 = TMP_HTTPFLAVORVALUES_HTTP_1_0;\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use HTTP_FLAVOR_VALUE_HTTP_1_1 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.HTTPFLAVORVALUES_HTTP_1_1 = TMP_HTTPFLAVORVALUES_HTTP_1_1;\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use HTTP_FLAVOR_VALUE_HTTP_2_0 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.HTTPFLAVORVALUES_HTTP_2_0 = TMP_HTTPFLAVORVALUES_HTTP_2_0;\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use HTTP_FLAVOR_VALUE_SPDY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.HTTPFLAVORVALUES_SPDY = TMP_HTTPFLAVORVALUES_SPDY;\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use HTTP_FLAVOR_VALUE_QUIC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.HTTPFLAVORVALUES_QUIC = TMP_HTTPFLAVORVALUES_QUIC;\n/**\n * The constant map of values for HttpFlavorValues.\n * @deprecated Use the HTTPFLAVORVALUES_XXXXX constants rather than the HttpFlavorValues.XXXXX for bundle minification.\n */\nexports.HttpFlavorValues = {\n HTTP_1_0: TMP_HTTPFLAVORVALUES_HTTP_1_0,\n HTTP_1_1: TMP_HTTPFLAVORVALUES_HTTP_1_1,\n HTTP_2_0: TMP_HTTPFLAVORVALUES_HTTP_2_0,\n SPDY: TMP_HTTPFLAVORVALUES_SPDY,\n QUIC: TMP_HTTPFLAVORVALUES_QUIC,\n};\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for MessagingDestinationKindValues enum definition\n *\n * The kind of message destination.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_MESSAGINGDESTINATIONKINDVALUES_QUEUE = 'queue';\nconst TMP_MESSAGINGDESTINATIONKINDVALUES_TOPIC = 'topic';\n/**\n * The kind of message destination.\n *\n * @deprecated Removed in semconv v1.20.0.\n */\nexports.MESSAGINGDESTINATIONKINDVALUES_QUEUE = TMP_MESSAGINGDESTINATIONKINDVALUES_QUEUE;\n/**\n * The kind of message destination.\n *\n * @deprecated Removed in semconv v1.20.0.\n */\nexports.MESSAGINGDESTINATIONKINDVALUES_TOPIC = TMP_MESSAGINGDESTINATIONKINDVALUES_TOPIC;\n/**\n * The constant map of values for MessagingDestinationKindValues.\n * @deprecated Use the MESSAGINGDESTINATIONKINDVALUES_XXXXX constants rather than the MessagingDestinationKindValues.XXXXX for bundle minification.\n */\nexports.MessagingDestinationKindValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_MESSAGINGDESTINATIONKINDVALUES_QUEUE,\n TMP_MESSAGINGDESTINATIONKINDVALUES_TOPIC,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for MessagingOperationValues enum definition\n *\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_MESSAGINGOPERATIONVALUES_RECEIVE = 'receive';\nconst TMP_MESSAGINGOPERATIONVALUES_PROCESS = 'process';\n/**\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n *\n * @deprecated Use MESSAGING_OPERATION_TYPE_VALUE_RECEIVE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.MESSAGINGOPERATIONVALUES_RECEIVE = TMP_MESSAGINGOPERATIONVALUES_RECEIVE;\n/**\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n *\n * @deprecated Use MESSAGING_OPERATION_TYPE_VALUE_PROCESS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.MESSAGINGOPERATIONVALUES_PROCESS = TMP_MESSAGINGOPERATIONVALUES_PROCESS;\n/**\n * The constant map of values for MessagingOperationValues.\n * @deprecated Use the MESSAGINGOPERATIONVALUES_XXXXX constants rather than the MessagingOperationValues.XXXXX for bundle minification.\n */\nexports.MessagingOperationValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_MESSAGINGOPERATIONVALUES_RECEIVE,\n TMP_MESSAGINGOPERATIONVALUES_PROCESS,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for RpcGrpcStatusCodeValues enum definition\n *\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_RPCGRPCSTATUSCODEVALUES_OK = 0;\nconst TMP_RPCGRPCSTATUSCODEVALUES_CANCELLED = 1;\nconst TMP_RPCGRPCSTATUSCODEVALUES_UNKNOWN = 2;\nconst TMP_RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT = 3;\nconst TMP_RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED = 4;\nconst TMP_RPCGRPCSTATUSCODEVALUES_NOT_FOUND = 5;\nconst TMP_RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS = 6;\nconst TMP_RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED = 7;\nconst TMP_RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED = 8;\nconst TMP_RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION = 9;\nconst TMP_RPCGRPCSTATUSCODEVALUES_ABORTED = 10;\nconst TMP_RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE = 11;\nconst TMP_RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED = 12;\nconst TMP_RPCGRPCSTATUSCODEVALUES_INTERNAL = 13;\nconst TMP_RPCGRPCSTATUSCODEVALUES_UNAVAILABLE = 14;\nconst TMP_RPCGRPCSTATUSCODEVALUES_DATA_LOSS = 15;\nconst TMP_RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED = 16;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_OK in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_OK = TMP_RPCGRPCSTATUSCODEVALUES_OK;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_CANCELLED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_CANCELLED = TMP_RPCGRPCSTATUSCODEVALUES_CANCELLED;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_UNKNOWN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_UNKNOWN = TMP_RPCGRPCSTATUSCODEVALUES_UNKNOWN;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_INVALID_ARGUMENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT = TMP_RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_DEADLINE_EXCEEDED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED = TMP_RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_NOT_FOUND in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_NOT_FOUND = TMP_RPCGRPCSTATUSCODEVALUES_NOT_FOUND;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_ALREADY_EXISTS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS = TMP_RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_PERMISSION_DENIED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED = TMP_RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_RESOURCE_EXHAUSTED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED = TMP_RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_FAILED_PRECONDITION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION = TMP_RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_ABORTED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_ABORTED = TMP_RPCGRPCSTATUSCODEVALUES_ABORTED;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_OUT_OF_RANGE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE = TMP_RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_UNIMPLEMENTED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED = TMP_RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_INTERNAL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_INTERNAL = TMP_RPCGRPCSTATUSCODEVALUES_INTERNAL;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_UNAVAILABLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_UNAVAILABLE = TMP_RPCGRPCSTATUSCODEVALUES_UNAVAILABLE;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_DATA_LOSS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_DATA_LOSS = TMP_RPCGRPCSTATUSCODEVALUES_DATA_LOSS;\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_UNAUTHENTICATED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED = TMP_RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED;\n/**\n * The constant map of values for RpcGrpcStatusCodeValues.\n * @deprecated Use the RPCGRPCSTATUSCODEVALUES_XXXXX constants rather than the RpcGrpcStatusCodeValues.XXXXX for bundle minification.\n */\nexports.RpcGrpcStatusCodeValues = {\n OK: TMP_RPCGRPCSTATUSCODEVALUES_OK,\n CANCELLED: TMP_RPCGRPCSTATUSCODEVALUES_CANCELLED,\n UNKNOWN: TMP_RPCGRPCSTATUSCODEVALUES_UNKNOWN,\n INVALID_ARGUMENT: TMP_RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT,\n DEADLINE_EXCEEDED: TMP_RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED,\n NOT_FOUND: TMP_RPCGRPCSTATUSCODEVALUES_NOT_FOUND,\n ALREADY_EXISTS: TMP_RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS,\n PERMISSION_DENIED: TMP_RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED,\n RESOURCE_EXHAUSTED: TMP_RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED,\n FAILED_PRECONDITION: TMP_RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION,\n ABORTED: TMP_RPCGRPCSTATUSCODEVALUES_ABORTED,\n OUT_OF_RANGE: TMP_RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE,\n UNIMPLEMENTED: TMP_RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED,\n INTERNAL: TMP_RPCGRPCSTATUSCODEVALUES_INTERNAL,\n UNAVAILABLE: TMP_RPCGRPCSTATUSCODEVALUES_UNAVAILABLE,\n DATA_LOSS: TMP_RPCGRPCSTATUSCODEVALUES_DATA_LOSS,\n UNAUTHENTICATED: TMP_RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED,\n};\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for MessageTypeValues enum definition\n *\n * Whether this is a received or sent message.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_MESSAGETYPEVALUES_SENT = 'SENT';\nconst TMP_MESSAGETYPEVALUES_RECEIVED = 'RECEIVED';\n/**\n * Whether this is a received or sent message.\n *\n * @deprecated Use MESSAGE_TYPE_VALUE_SENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.MESSAGETYPEVALUES_SENT = TMP_MESSAGETYPEVALUES_SENT;\n/**\n * Whether this is a received or sent message.\n *\n * @deprecated Use MESSAGE_TYPE_VALUE_RECEIVED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.MESSAGETYPEVALUES_RECEIVED = TMP_MESSAGETYPEVALUES_RECEIVED;\n/**\n * The constant map of values for MessageTypeValues.\n * @deprecated Use the MESSAGETYPEVALUES_XXXXX constants rather than the MessageTypeValues.XXXXX for bundle minification.\n */\nexports.MessageTypeValues = \n/*#__PURE__*/ (0, utils_1.createConstMap)([\n TMP_MESSAGETYPEVALUES_SENT,\n TMP_MESSAGETYPEVALUES_RECEIVED,\n]);\n//# sourceMappingURL=SemanticAttributes.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* eslint-disable no-restricted-syntax --\n * These re-exports are only of constants, only one-level deep at this point,\n * and should not cause problems for tree-shakers.\n */\n__exportStar(require(\"./SemanticAttributes\"), exports);\n//# sourceMappingURL=index.js.map", @@ -87,7 +87,6 @@ "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.diagLogLevelFromString = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst logLevelMap = {\n ALL: api_1.DiagLogLevel.ALL,\n VERBOSE: api_1.DiagLogLevel.VERBOSE,\n DEBUG: api_1.DiagLogLevel.DEBUG,\n INFO: api_1.DiagLogLevel.INFO,\n WARN: api_1.DiagLogLevel.WARN,\n ERROR: api_1.DiagLogLevel.ERROR,\n NONE: api_1.DiagLogLevel.NONE,\n};\n/**\n * Convert a string to a {@link DiagLogLevel}, defaults to {@link DiagLogLevel} if the log level does not exist or undefined if the input is undefined.\n * @param value\n */\nfunction diagLogLevelFromString(value) {\n if (value == null) {\n // don't fall back to default - no value set has different semantics for ús than an incorrect value (do not set vs. fall back to default)\n return undefined;\n }\n const resolvedLogLevel = logLevelMap[value.toUpperCase()];\n if (resolvedLogLevel == null) {\n api_1.diag.warn(`Unknown log level \"${value}\", expected one of ${Object.keys(logLevelMap)}, using default`);\n return api_1.DiagLogLevel.INFO;\n }\n return resolvedLogLevel;\n}\nexports.diagLogLevelFromString = diagLogLevelFromString;\n//# sourceMappingURL=configuration.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._export = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst suppress_tracing_1 = require(\"../trace/suppress-tracing\");\n/**\n * @internal\n * Shared functionality used by Exporters while exporting data, including suppression of Traces.\n */\nfunction _export(exporter, arg) {\n return new Promise(resolve => {\n // prevent downstream exporter calls from generating spans\n api_1.context.with((0, suppress_tracing_1.suppressTracing)(api_1.context.active()), () => {\n exporter.export(arg, resolve);\n });\n });\n}\nexports._export = _export;\n//# sourceMappingURL=exporter.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.internal = exports.diagLogLevelFromString = exports.BindOnceFuture = exports.urlMatches = exports.isUrlIgnored = exports.callWithTimeout = exports.TimeoutError = exports.merge = exports.TraceState = exports.unsuppressTracing = exports.suppressTracing = exports.isTracingSuppressed = exports.setRPCMetadata = exports.getRPCMetadata = exports.deleteRPCMetadata = exports.RPCType = exports.parseTraceParent = exports.W3CTraceContextPropagator = exports.TRACE_STATE_HEADER = exports.TRACE_PARENT_HEADER = exports.CompositePropagator = exports.otperformance = exports.getStringListFromEnv = exports.getNumberFromEnv = exports.getBooleanFromEnv = exports.getStringFromEnv = exports._globalThis = exports.SDK_INFO = exports.parseKeyPairsIntoRecord = exports.ExportResultCode = exports.unrefTimer = exports.timeInputToHrTime = exports.millisToHrTime = exports.isTimeInputHrTime = exports.isTimeInput = exports.hrTimeToTimeStamp = exports.hrTimeToNanoseconds = exports.hrTimeToMilliseconds = exports.hrTimeToMicroseconds = exports.hrTimeDuration = exports.hrTime = exports.getTimeOrigin = exports.addHrTimes = exports.loggingErrorHandler = exports.setGlobalErrorHandler = exports.globalErrorHandler = exports.sanitizeAttributes = exports.isAttributeValue = exports.AnchoredClock = exports.W3CBaggagePropagator = void 0;\nvar W3CBaggagePropagator_1 = require(\"./baggage/propagation/W3CBaggagePropagator\");\nObject.defineProperty(exports, \"W3CBaggagePropagator\", { enumerable: true, get: function () { return W3CBaggagePropagator_1.W3CBaggagePropagator; } });\nvar anchored_clock_1 = require(\"./common/anchored-clock\");\nObject.defineProperty(exports, \"AnchoredClock\", { enumerable: true, get: function () { return anchored_clock_1.AnchoredClock; } });\nvar attributes_1 = require(\"./common/attributes\");\nObject.defineProperty(exports, \"isAttributeValue\", { enumerable: true, get: function () { return attributes_1.isAttributeValue; } });\nObject.defineProperty(exports, \"sanitizeAttributes\", { enumerable: true, get: function () { return attributes_1.sanitizeAttributes; } });\nvar global_error_handler_1 = require(\"./common/global-error-handler\");\nObject.defineProperty(exports, \"globalErrorHandler\", { enumerable: true, get: function () { return global_error_handler_1.globalErrorHandler; } });\nObject.defineProperty(exports, \"setGlobalErrorHandler\", { enumerable: true, get: function () { return global_error_handler_1.setGlobalErrorHandler; } });\nvar logging_error_handler_1 = require(\"./common/logging-error-handler\");\nObject.defineProperty(exports, \"loggingErrorHandler\", { enumerable: true, get: function () { return logging_error_handler_1.loggingErrorHandler; } });\nvar time_1 = require(\"./common/time\");\nObject.defineProperty(exports, \"addHrTimes\", { enumerable: true, get: function () { return time_1.addHrTimes; } });\nObject.defineProperty(exports, \"getTimeOrigin\", { enumerable: true, get: function () { return time_1.getTimeOrigin; } });\nObject.defineProperty(exports, \"hrTime\", { enumerable: true, get: function () { return time_1.hrTime; } });\nObject.defineProperty(exports, \"hrTimeDuration\", { enumerable: true, get: function () { return time_1.hrTimeDuration; } });\nObject.defineProperty(exports, \"hrTimeToMicroseconds\", { enumerable: true, get: function () { return time_1.hrTimeToMicroseconds; } });\nObject.defineProperty(exports, \"hrTimeToMilliseconds\", { enumerable: true, get: function () { return time_1.hrTimeToMilliseconds; } });\nObject.defineProperty(exports, \"hrTimeToNanoseconds\", { enumerable: true, get: function () { return time_1.hrTimeToNanoseconds; } });\nObject.defineProperty(exports, \"hrTimeToTimeStamp\", { enumerable: true, get: function () { return time_1.hrTimeToTimeStamp; } });\nObject.defineProperty(exports, \"isTimeInput\", { enumerable: true, get: function () { return time_1.isTimeInput; } });\nObject.defineProperty(exports, \"isTimeInputHrTime\", { enumerable: true, get: function () { return time_1.isTimeInputHrTime; } });\nObject.defineProperty(exports, \"millisToHrTime\", { enumerable: true, get: function () { return time_1.millisToHrTime; } });\nObject.defineProperty(exports, \"timeInputToHrTime\", { enumerable: true, get: function () { return time_1.timeInputToHrTime; } });\nvar timer_util_1 = require(\"./common/timer-util\");\nObject.defineProperty(exports, \"unrefTimer\", { enumerable: true, get: function () { return timer_util_1.unrefTimer; } });\nvar ExportResult_1 = require(\"./ExportResult\");\nObject.defineProperty(exports, \"ExportResultCode\", { enumerable: true, get: function () { return ExportResult_1.ExportResultCode; } });\nvar utils_1 = require(\"./baggage/utils\");\nObject.defineProperty(exports, \"parseKeyPairsIntoRecord\", { enumerable: true, get: function () { return utils_1.parseKeyPairsIntoRecord; } });\nvar platform_1 = require(\"./platform\");\nObject.defineProperty(exports, \"SDK_INFO\", { enumerable: true, get: function () { return platform_1.SDK_INFO; } });\nObject.defineProperty(exports, \"_globalThis\", { enumerable: true, get: function () { return platform_1._globalThis; } });\nObject.defineProperty(exports, \"getStringFromEnv\", { enumerable: true, get: function () { return platform_1.getStringFromEnv; } });\nObject.defineProperty(exports, \"getBooleanFromEnv\", { enumerable: true, get: function () { return platform_1.getBooleanFromEnv; } });\nObject.defineProperty(exports, \"getNumberFromEnv\", { enumerable: true, get: function () { return platform_1.getNumberFromEnv; } });\nObject.defineProperty(exports, \"getStringListFromEnv\", { enumerable: true, get: function () { return platform_1.getStringListFromEnv; } });\nObject.defineProperty(exports, \"otperformance\", { enumerable: true, get: function () { return platform_1.otperformance; } });\nvar composite_1 = require(\"./propagation/composite\");\nObject.defineProperty(exports, \"CompositePropagator\", { enumerable: true, get: function () { return composite_1.CompositePropagator; } });\nvar W3CTraceContextPropagator_1 = require(\"./trace/W3CTraceContextPropagator\");\nObject.defineProperty(exports, \"TRACE_PARENT_HEADER\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.TRACE_PARENT_HEADER; } });\nObject.defineProperty(exports, \"TRACE_STATE_HEADER\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.TRACE_STATE_HEADER; } });\nObject.defineProperty(exports, \"W3CTraceContextPropagator\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.W3CTraceContextPropagator; } });\nObject.defineProperty(exports, \"parseTraceParent\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.parseTraceParent; } });\nvar rpc_metadata_1 = require(\"./trace/rpc-metadata\");\nObject.defineProperty(exports, \"RPCType\", { enumerable: true, get: function () { return rpc_metadata_1.RPCType; } });\nObject.defineProperty(exports, \"deleteRPCMetadata\", { enumerable: true, get: function () { return rpc_metadata_1.deleteRPCMetadata; } });\nObject.defineProperty(exports, \"getRPCMetadata\", { enumerable: true, get: function () { return rpc_metadata_1.getRPCMetadata; } });\nObject.defineProperty(exports, \"setRPCMetadata\", { enumerable: true, get: function () { return rpc_metadata_1.setRPCMetadata; } });\nvar suppress_tracing_1 = require(\"./trace/suppress-tracing\");\nObject.defineProperty(exports, \"isTracingSuppressed\", { enumerable: true, get: function () { return suppress_tracing_1.isTracingSuppressed; } });\nObject.defineProperty(exports, \"suppressTracing\", { enumerable: true, get: function () { return suppress_tracing_1.suppressTracing; } });\nObject.defineProperty(exports, \"unsuppressTracing\", { enumerable: true, get: function () { return suppress_tracing_1.unsuppressTracing; } });\nvar TraceState_1 = require(\"./trace/TraceState\");\nObject.defineProperty(exports, \"TraceState\", { enumerable: true, get: function () { return TraceState_1.TraceState; } });\nvar merge_1 = require(\"./utils/merge\");\nObject.defineProperty(exports, \"merge\", { enumerable: true, get: function () { return merge_1.merge; } });\nvar timeout_1 = require(\"./utils/timeout\");\nObject.defineProperty(exports, \"TimeoutError\", { enumerable: true, get: function () { return timeout_1.TimeoutError; } });\nObject.defineProperty(exports, \"callWithTimeout\", { enumerable: true, get: function () { return timeout_1.callWithTimeout; } });\nvar url_1 = require(\"./utils/url\");\nObject.defineProperty(exports, \"isUrlIgnored\", { enumerable: true, get: function () { return url_1.isUrlIgnored; } });\nObject.defineProperty(exports, \"urlMatches\", { enumerable: true, get: function () { return url_1.urlMatches; } });\nvar callback_1 = require(\"./utils/callback\");\nObject.defineProperty(exports, \"BindOnceFuture\", { enumerable: true, get: function () { return callback_1.BindOnceFuture; } });\nvar configuration_1 = require(\"./utils/configuration\");\nObject.defineProperty(exports, \"diagLogLevelFromString\", { enumerable: true, get: function () { return configuration_1.diagLogLevelFromString; } });\nconst exporter_1 = require(\"./internal/exporter\");\nexports.internal = {\n _export: exporter_1._export,\n};\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.VERSION = '0.213.0';\n//# sourceMappingURL=version.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SeverityNumber = void 0;\nvar SeverityNumber;\n(function (SeverityNumber) {\n SeverityNumber[SeverityNumber[\"UNSPECIFIED\"] = 0] = \"UNSPECIFIED\";\n SeverityNumber[SeverityNumber[\"TRACE\"] = 1] = \"TRACE\";\n SeverityNumber[SeverityNumber[\"TRACE2\"] = 2] = \"TRACE2\";\n SeverityNumber[SeverityNumber[\"TRACE3\"] = 3] = \"TRACE3\";\n SeverityNumber[SeverityNumber[\"TRACE4\"] = 4] = \"TRACE4\";\n SeverityNumber[SeverityNumber[\"DEBUG\"] = 5] = \"DEBUG\";\n SeverityNumber[SeverityNumber[\"DEBUG2\"] = 6] = \"DEBUG2\";\n SeverityNumber[SeverityNumber[\"DEBUG3\"] = 7] = \"DEBUG3\";\n SeverityNumber[SeverityNumber[\"DEBUG4\"] = 8] = \"DEBUG4\";\n SeverityNumber[SeverityNumber[\"INFO\"] = 9] = \"INFO\";\n SeverityNumber[SeverityNumber[\"INFO2\"] = 10] = \"INFO2\";\n SeverityNumber[SeverityNumber[\"INFO3\"] = 11] = \"INFO3\";\n SeverityNumber[SeverityNumber[\"INFO4\"] = 12] = \"INFO4\";\n SeverityNumber[SeverityNumber[\"WARN\"] = 13] = \"WARN\";\n SeverityNumber[SeverityNumber[\"WARN2\"] = 14] = \"WARN2\";\n SeverityNumber[SeverityNumber[\"WARN3\"] = 15] = \"WARN3\";\n SeverityNumber[SeverityNumber[\"WARN4\"] = 16] = \"WARN4\";\n SeverityNumber[SeverityNumber[\"ERROR\"] = 17] = \"ERROR\";\n SeverityNumber[SeverityNumber[\"ERROR2\"] = 18] = \"ERROR2\";\n SeverityNumber[SeverityNumber[\"ERROR3\"] = 19] = \"ERROR3\";\n SeverityNumber[SeverityNumber[\"ERROR4\"] = 20] = \"ERROR4\";\n SeverityNumber[SeverityNumber[\"FATAL\"] = 21] = \"FATAL\";\n SeverityNumber[SeverityNumber[\"FATAL2\"] = 22] = \"FATAL2\";\n SeverityNumber[SeverityNumber[\"FATAL3\"] = 23] = \"FATAL3\";\n SeverityNumber[SeverityNumber[\"FATAL4\"] = 24] = \"FATAL4\";\n})(SeverityNumber = exports.SeverityNumber || (exports.SeverityNumber = {}));\n//# sourceMappingURL=LogRecord.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_LOGGER = exports.NoopLogger = void 0;\nclass NoopLogger {\n emit(_logRecord) { }\n}\nexports.NoopLogger = NoopLogger;\nexports.NOOP_LOGGER = new NoopLogger();\n//# sourceMappingURL=NoopLogger.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.API_BACKWARDS_COMPATIBILITY_VERSION = exports.makeGetter = exports._global = exports.GLOBAL_LOGS_API_KEY = void 0;\nexports.GLOBAL_LOGS_API_KEY = Symbol.for('io.opentelemetry.js.api.logs');\nexports._global = globalThis;\n/**\n * Make a function which accepts a version integer and returns the instance of an API if the version\n * is compatible, or a fallback version (usually NOOP) if it is not.\n *\n * @param requiredVersion Backwards compatibility version which is required to return the instance\n * @param instance Instance which should be returned if the required version is compatible\n * @param fallback Fallback instance, usually NOOP, which will be returned if the required version is not compatible\n */\nfunction makeGetter(requiredVersion, instance, fallback) {\n return (version) => version === requiredVersion ? instance : fallback;\n}\nexports.makeGetter = makeGetter;\n/**\n * A number which should be incremented each time a backwards incompatible\n * change is made to the API. This number is used when an API package\n * attempts to access the global API to ensure it is getting a compatible\n * version. If the global API is not compatible with the API package\n * attempting to get it, a NOOP API implementation will be returned.\n */\nexports.API_BACKWARDS_COMPATIBILITY_VERSION = 1;\n//# sourceMappingURL=global-utils.js.map", @@ -113,7 +112,7 @@ "// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.\n//\n// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.\n\nconst importHooks = [] // TODO should this be a Set?\nconst setters = new WeakMap()\nconst getters = new WeakMap()\nconst specifiers = new Map()\nconst toHook = []\n\nconst proxyHandler = {\n set (target, name, value) {\n const set = setters.get(target)\n const setter = set && set[name]\n if (typeof setter === 'function') {\n return setter(value)\n }\n // If a module doesn't export the property being assigned (e.g. no default\n // export), there is no setter to call. Don't crash userland code.\n return true\n },\n\n get (target, name) {\n if (name === Symbol.toStringTag) {\n return 'Module'\n }\n\n const getter = getters.get(target)[name]\n\n if (typeof getter === 'function') {\n return getter()\n }\n },\n\n defineProperty (target, property, descriptor) {\n if ((!('value' in descriptor))) {\n throw new Error('Getters/setters are not supported for exports property descriptors.')\n }\n\n const set = setters.get(target)\n const setter = set && set[property]\n if (typeof setter === 'function') {\n return setter(descriptor.value)\n }\n return true\n }\n}\n\nfunction register (name, namespace, set, get, specifier) {\n specifiers.set(name, specifier)\n setters.set(namespace, set)\n getters.set(namespace, get)\n const proxy = new Proxy(namespace, proxyHandler)\n importHooks.forEach(hook => hook(name, proxy, specifier))\n toHook.push([name, proxy, specifier])\n}\n\nexports.register = register\nexports.importHooks = importHooks\nexports.specifiers = specifiers\nexports.toHook = toHook\n", "// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.\n//\n// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.\n\nconst path = require('path')\nconst moduleDetailsFromPath = require('module-details-from-path')\nconst { fileURLToPath } = require('url')\nconst { MessageChannel } = require('worker_threads')\n\nlet { isBuiltin } = require('module')\nif (!isBuiltin) {\n isBuiltin = () => true\n}\n\nconst {\n importHooks,\n specifiers,\n toHook\n} = require('./lib/register')\n\nfunction addHook (hook) {\n importHooks.push(hook)\n toHook.forEach(([name, namespace, specifier]) => hook(name, namespace, specifier))\n}\n\nfunction removeHook (hook) {\n const index = importHooks.indexOf(hook)\n if (index > -1) {\n importHooks.splice(index, 1)\n }\n}\n\nfunction callHookFn (hookFn, namespace, name, baseDir) {\n const newDefault = hookFn(namespace, name, baseDir)\n if (newDefault && newDefault !== namespace) {\n // Only ESM modules that actually export `default` can have it reassigned.\n // Some hooks return a value unconditionally; avoid crashing when the module\n // has no default export (see issue #188).\n if ('default' in namespace) {\n namespace.default = newDefault\n }\n }\n}\n\nlet sendModulesToLoader\n\n/**\n * EXPERIMENTAL\n * This feature is experimental and may change in minor versions.\n * **NOTE** This feature is incompatible with the {internals: true} Hook option.\n *\n * Creates a message channel with a port that can be used to add hooks to the\n * list of exclusively included modules.\n *\n * This can be used to only wrap modules that are Hook'ed, however modules need\n * to be hooked before they are imported.\n *\n * ```ts\n * import { register } from 'module'\n * import { Hook, createAddHookMessageChannel } from 'import-in-the-middle'\n *\n * const { registerOptions, waitForAllMessagesAcknowledged } = createAddHookMessageChannel()\n *\n * register('import-in-the-middle/hook.mjs', import.meta.url, registerOptions)\n *\n * Hook(['fs'], (exported, name, baseDir) => {\n * // Instrument the fs module\n * })\n *\n * // Ensure that the loader has acknowledged all the modules\n * // before we allow execution to continue\n * await waitForAllMessagesAcknowledged()\n * ```\n */\nfunction createAddHookMessageChannel () {\n const { port1, port2 } = new MessageChannel()\n let pendingAckCount = 0\n let resolveFn\n\n sendModulesToLoader = (modules) => {\n pendingAckCount++\n port1.postMessage(modules)\n }\n\n port1.on('message', () => {\n pendingAckCount--\n\n if (resolveFn && pendingAckCount <= 0) {\n resolveFn()\n }\n }).unref()\n\n function waitForAllMessagesAcknowledged () {\n // This timer is to prevent the process from exiting with code 13:\n // 13: Unsettled Top-Level Await.\n const timer = setInterval(() => { }, 1000)\n const promise = new Promise((resolve) => {\n resolveFn = resolve\n }).then(() => { clearInterval(timer) })\n\n if (pendingAckCount === 0) {\n resolveFn()\n }\n\n return promise\n }\n\n const addHookMessagePort = port2\n const registerOptions = { data: { addHookMessagePort, include: [] }, transferList: [addHookMessagePort] }\n\n return { registerOptions, addHookMessagePort, waitForAllMessagesAcknowledged }\n}\n\nfunction Hook (modules, options, hookFn) {\n if ((this instanceof Hook) === false) return new Hook(modules, options, hookFn)\n if (typeof modules === 'function') {\n hookFn = modules\n modules = null\n options = null\n } else if (typeof options === 'function') {\n hookFn = options\n options = null\n }\n const internals = options ? options.internals === true : false\n\n if (sendModulesToLoader && Array.isArray(modules)) {\n sendModulesToLoader(modules)\n }\n\n this._iitmHook = (name, namespace, specifier) => {\n const loadUrl = name\n const isNodeUrl = loadUrl.startsWith('node:')\n let filePath, baseDir\n\n if (isNodeUrl) {\n // Normalize builtin module name to *not* have 'node:' prefix, unless\n // required, as it is for 'node:test' and some others. `module.isBuiltin`\n // is available in all Node.js versions that have node:-only modules.\n const unprefixed = name.slice(5)\n if (isBuiltin(unprefixed)) {\n name = unprefixed\n }\n } else if (loadUrl.startsWith('file://')) {\n const stackTraceLimit = Error.stackTraceLimit\n Error.stackTraceLimit = 0\n try {\n filePath = fileURLToPath(name)\n name = filePath\n } catch (e) {}\n Error.stackTraceLimit = stackTraceLimit\n\n if (filePath) {\n const details = moduleDetailsFromPath(filePath)\n if (details) {\n name = details.name\n baseDir = details.basedir\n }\n }\n }\n\n if (modules) {\n for (const matchArg of modules) {\n if (filePath && matchArg === filePath) {\n // abspath match\n callHookFn(hookFn, namespace, filePath, undefined)\n } else if (matchArg === name) {\n if (!baseDir) {\n // built-in module (or unexpected non file:// name?)\n callHookFn(hookFn, namespace, name, baseDir)\n } else if (baseDir.endsWith(specifiers.get(loadUrl))) {\n // An import of the top-level module (e.g. `import 'ioredis'`).\n // Note: Slight behaviour difference from RITM. RITM uses\n // `require.resolve(name)` to see if filename is the module\n // main file, which will catch `require('ioredis/built/index.js')`.\n // The check here will not catch `import 'ioredis/built/index.js'`.\n callHookFn(hookFn, namespace, name, baseDir)\n } else if (internals) {\n const internalPath = name + path.sep + path.relative(baseDir, filePath)\n callHookFn(hookFn, namespace, internalPath, baseDir)\n }\n } else if (matchArg === specifier) {\n callHookFn(hookFn, namespace, specifier, baseDir)\n }\n }\n } else {\n callHookFn(hookFn, namespace, name, baseDir)\n }\n }\n\n addHook(this._iitmHook)\n}\n\nHook.prototype.unhook = function () {\n removeHook(this._iitmHook)\n}\n\nmodule.exports = Hook\nmodule.exports.Hook = Hook\nmodule.exports.addHook = addHook\nmodule.exports.removeHook = removeHook\nmodule.exports.createAddHookMessageChannel = createAddHookMessageChannel\n", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isWrapped = exports.safeExecuteInTheMiddleAsync = exports.safeExecuteInTheMiddle = void 0;\n/**\n * function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nfunction safeExecuteInTheMiddle(execute, onFinish, preventThrowingError) {\n let error;\n let result;\n try {\n result = execute();\n }\n catch (e) {\n error = e;\n }\n finally {\n onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return result;\n }\n}\nexports.safeExecuteInTheMiddle = safeExecuteInTheMiddle;\n/**\n * Async function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nasync function safeExecuteInTheMiddleAsync(execute, onFinish, preventThrowingError) {\n let error;\n let result;\n try {\n result = await execute();\n }\n catch (e) {\n error = e;\n }\n finally {\n await onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return result;\n }\n}\nexports.safeExecuteInTheMiddleAsync = safeExecuteInTheMiddleAsync;\n/**\n * Checks if certain function has been already wrapped\n * @param func\n */\nfunction isWrapped(func) {\n return (typeof func === 'function' &&\n typeof func.__original === 'function' &&\n typeof func.__unwrap === 'function' &&\n func.__wrapped === true);\n}\nexports.isWrapped = isWrapped;\n//# sourceMappingURL=utils.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationBase = void 0;\nconst path = require(\"path\");\nconst util_1 = require(\"util\");\nconst semver_1 = require(\"../../semver\");\nconst shimmer_1 = require(\"../../shimmer\");\nconst instrumentation_1 = require(\"../../instrumentation\");\nconst RequireInTheMiddleSingleton_1 = require(\"./RequireInTheMiddleSingleton\");\nconst import_in_the_middle_1 = require(\"import-in-the-middle\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst require_in_the_middle_1 = require(\"require-in-the-middle\");\nconst fs_1 = require(\"fs\");\nconst utils_1 = require(\"../../utils\");\n/**\n * Base abstract class for instrumenting node plugins\n */\nclass InstrumentationBase extends instrumentation_1.InstrumentationAbstract {\n _modules;\n _hooks = [];\n _requireInTheMiddleSingleton = RequireInTheMiddleSingleton_1.RequireInTheMiddleSingleton.getInstance();\n _enabled = false;\n constructor(instrumentationName, instrumentationVersion, config) {\n super(instrumentationName, instrumentationVersion, config);\n let modules = this.init();\n if (modules && !Array.isArray(modules)) {\n modules = [modules];\n }\n this._modules = modules || [];\n if (this._config.enabled) {\n this.enable();\n }\n }\n _wrap = (moduleExports, name, wrapper) => {\n if ((0, utils_1.isWrapped)(moduleExports[name])) {\n this._unwrap(moduleExports, name);\n }\n if (!util_1.types.isProxy(moduleExports)) {\n return (0, shimmer_1.wrap)(moduleExports, name, wrapper);\n }\n else {\n const wrapped = (0, shimmer_1.wrap)(Object.assign({}, moduleExports), name, wrapper);\n Object.defineProperty(moduleExports, name, {\n value: wrapped,\n });\n return wrapped;\n }\n };\n _unwrap = (moduleExports, name) => {\n if (!util_1.types.isProxy(moduleExports)) {\n return (0, shimmer_1.unwrap)(moduleExports, name);\n }\n else {\n return Object.defineProperty(moduleExports, name, {\n value: moduleExports[name],\n });\n }\n };\n _massWrap = (moduleExportsArray, names, wrapper) => {\n if (!moduleExportsArray) {\n api_1.diag.error('must provide one or more modules to patch');\n return;\n }\n else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n if (!(names && Array.isArray(names))) {\n api_1.diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._wrap(moduleExports, name, wrapper);\n });\n });\n };\n _massUnwrap = (moduleExportsArray, names) => {\n if (!moduleExportsArray) {\n api_1.diag.error('must provide one or more modules to patch');\n return;\n }\n else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n if (!(names && Array.isArray(names))) {\n api_1.diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._unwrap(moduleExports, name);\n });\n });\n };\n _warnOnPreloadedModules() {\n this._modules.forEach((module) => {\n const { name } = module;\n try {\n const resolvedModule = require.resolve(name);\n if (require.cache[resolvedModule]) {\n // Module is already cached, which means the instrumentation hook might not work\n this._diag.warn(`Module ${name} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${name}`);\n }\n }\n catch {\n // Module isn't available, we can simply skip\n }\n });\n }\n _extractPackageVersion(baseDir) {\n try {\n const json = (0, fs_1.readFileSync)(path.join(baseDir, 'package.json'), {\n encoding: 'utf8',\n });\n const version = JSON.parse(json).version;\n return typeof version === 'string' ? version : undefined;\n }\n catch {\n api_1.diag.warn('Failed extracting version', baseDir);\n }\n return undefined;\n }\n _onRequire(module, exports, name, baseDir) {\n if (!baseDir) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for nodejs core module on require hook', {\n module: module.name,\n });\n return module.patch(exports);\n }\n }\n return exports;\n }\n const version = this._extractPackageVersion(baseDir);\n module.moduleVersion = version;\n if (module.name === name) {\n // main module\n if (isSupported(module.supportedVersions, version, module.includePrerelease)) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for module on require hook', {\n module: module.name,\n version: module.moduleVersion,\n baseDir,\n });\n return module.patch(exports, module.moduleVersion);\n }\n }\n }\n return exports;\n }\n // internal file\n const files = module.files ?? [];\n const normalizedName = path.normalize(name);\n const supportedFileInstrumentations = files.filter(f => f.name === normalizedName &&\n isSupported(f.supportedVersions, version, module.includePrerelease));\n return supportedFileInstrumentations.reduce((patchedExports, file) => {\n file.moduleExports = patchedExports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for nodejs module file on require hook', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n baseDir,\n });\n // patch signature is not typed, so we cast it assuming it's correct\n return file.patch(patchedExports, module.moduleVersion);\n }\n return patchedExports;\n }, exports);\n }\n enable() {\n if (this._enabled) {\n return;\n }\n this._enabled = true;\n // already hooked, just call patch again\n if (this._hooks.length > 0) {\n for (const module of this._modules) {\n if (typeof module.patch === 'function' && module.moduleExports) {\n this._diag.debug('Applying instrumentation patch for nodejs module on instrumentation enabled', {\n module: module.name,\n version: module.moduleVersion,\n });\n module.patch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug('Applying instrumentation patch for nodejs module file on instrumentation enabled', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n });\n file.patch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n return;\n }\n this._warnOnPreloadedModules();\n for (const module of this._modules) {\n const hookFn = (exports, name, baseDir) => {\n if (!baseDir && path.isAbsolute(name)) {\n // Change IITM `name` and `baseDir` values to match what RITM returns.\n // See \"Comparing to RITM\" on https://github.com/nodejs/import-in-the-middle/pull/241\n // for an example of the differences.\n const parsedPath = path.parse(name);\n name = parsedPath.name;\n baseDir = parsedPath.dir;\n }\n return this._onRequire(module, exports, name, baseDir);\n };\n const onRequire = (exports, name, baseDir) => {\n return this._onRequire(module, exports, name, baseDir);\n };\n // `RequireInTheMiddleSingleton` does not support absolute paths.\n // For an absolute paths, we must create a separate instance of the\n // require-in-the-middle `Hook`.\n const hook = path.isAbsolute(module.name)\n ? new require_in_the_middle_1.Hook([module.name], { internals: true }, onRequire)\n : this._requireInTheMiddleSingleton.register(module.name, onRequire);\n this._hooks.push(hook);\n const esmHook = new import_in_the_middle_1.Hook([module.name], { internals: true }, hookFn);\n this._hooks.push(esmHook);\n }\n }\n disable() {\n if (!this._enabled) {\n return;\n }\n this._enabled = false;\n for (const module of this._modules) {\n if (typeof module.unpatch === 'function' && module.moduleExports) {\n this._diag.debug('Removing instrumentation patch for nodejs module on instrumentation disabled', {\n module: module.name,\n version: module.moduleVersion,\n });\n module.unpatch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug('Removing instrumentation patch for nodejs module file on instrumentation disabled', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n });\n file.unpatch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n }\n isEnabled() {\n return this._enabled;\n }\n}\nexports.InstrumentationBase = InstrumentationBase;\nfunction isSupported(supportedVersions, version, includePrerelease) {\n if (typeof version === 'undefined') {\n // If we don't have the version, accept the wildcard case only\n return supportedVersions.includes('*');\n }\n return supportedVersions.some(supportedVersion => {\n return (0, semver_1.satisfies)(version, supportedVersion, { includePrerelease });\n });\n}\n//# sourceMappingURL=instrumentation.js.map", + "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationBase = void 0;\nconst path = require(\"path\");\nconst util_1 = require(\"util\");\nconst semver_1 = require(\"../../semver\");\nconst shimmer_1 = require(\"../../shimmer\");\nconst instrumentation_1 = require(\"../../instrumentation\");\nconst RequireInTheMiddleSingleton_1 = require(\"./RequireInTheMiddleSingleton\");\nconst import_in_the_middle_1 = require(\"import-in-the-middle\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst require_in_the_middle_1 = require(\"require-in-the-middle\");\nconst fs_1 = require(\"fs\");\nconst utils_1 = require(\"../../utils\");\n/**\n * Base abstract class for instrumenting node plugins\n */\nclass InstrumentationBase extends instrumentation_1.InstrumentationAbstract {\n _modules;\n _hooks = [];\n _requireInTheMiddleSingleton = RequireInTheMiddleSingleton_1.RequireInTheMiddleSingleton.getInstance();\n _enabled = false;\n constructor(instrumentationName, instrumentationVersion, config) {\n super(instrumentationName, instrumentationVersion, config);\n let modules = this.init();\n if (modules && !Array.isArray(modules)) {\n modules = [modules];\n }\n this._modules = modules || [];\n if (this._config.enabled) {\n this.enable();\n }\n }\n _wrap = (moduleExports, name, wrapper) => {\n if ((0, utils_1.isWrapped)(moduleExports[name])) {\n this._unwrap(moduleExports, name);\n }\n if (!util_1.types.isProxy(moduleExports)) {\n return (0, shimmer_1.wrap)(moduleExports, name, wrapper);\n }\n else {\n const wrapped = (0, shimmer_1.wrap)(Object.assign({}, moduleExports), name, wrapper);\n Object.defineProperty(moduleExports, name, {\n value: wrapped,\n });\n return wrapped;\n }\n };\n _unwrap = (moduleExports, name) => {\n if (!util_1.types.isProxy(moduleExports)) {\n return (0, shimmer_1.unwrap)(moduleExports, name);\n }\n else {\n return Object.defineProperty(moduleExports, name, {\n value: moduleExports[name],\n });\n }\n };\n _massWrap = (moduleExportsArray, names, wrapper) => {\n if (!moduleExportsArray) {\n api_1.diag.error('must provide one or more modules to patch');\n return;\n }\n else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n if (!(names && Array.isArray(names))) {\n api_1.diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._wrap(moduleExports, name, wrapper);\n });\n });\n };\n _massUnwrap = (moduleExportsArray, names) => {\n if (!moduleExportsArray) {\n api_1.diag.error('must provide one or more modules to patch');\n return;\n }\n else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n if (!(names && Array.isArray(names))) {\n api_1.diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._unwrap(moduleExports, name);\n });\n });\n };\n _warnOnPreloadedModules() {\n // Access require via globalThis to prevent webpack from analyzing it as a dependency expression\n const nodeRequire = globalThis.require;\n if (!nodeRequire?.resolve || !nodeRequire?.cache)\n return;\n this._modules.forEach((module) => {\n const { name } = module;\n try {\n const resolvedModule = nodeRequire.resolve(name);\n if (nodeRequire.cache[resolvedModule]?.loaded) {\n // Module is already cached, which means the instrumentation hook might not work\n this._diag.warn(`Module ${name} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${name}`);\n }\n }\n catch {\n // Module isn't available, we can simply skip\n }\n });\n }\n _extractPackageVersion(baseDir) {\n try {\n const json = (0, fs_1.readFileSync)(path.join(baseDir, 'package.json'), {\n encoding: 'utf8',\n });\n const version = JSON.parse(json).version;\n return typeof version === 'string' ? version : undefined;\n }\n catch {\n api_1.diag.warn('Failed extracting version', baseDir);\n }\n return undefined;\n }\n _onRequire(module, exports, name, baseDir) {\n if (!baseDir) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for nodejs core module on require hook', {\n module: module.name,\n });\n return module.patch(exports);\n }\n }\n return exports;\n }\n const version = this._extractPackageVersion(baseDir);\n module.moduleVersion = version;\n if (module.name === name) {\n // main module\n if (isSupported(module.supportedVersions, version, module.includePrerelease)) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for module on require hook', {\n module: module.name,\n version: module.moduleVersion,\n baseDir,\n });\n return module.patch(exports, module.moduleVersion);\n }\n }\n }\n return exports;\n }\n // internal file\n const files = module.files ?? [];\n const normalizedName = path.normalize(name);\n const supportedFileInstrumentations = files.filter(f => f.name === normalizedName &&\n isSupported(f.supportedVersions, version, module.includePrerelease));\n return supportedFileInstrumentations.reduce((patchedExports, file) => {\n file.moduleExports = patchedExports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for nodejs module file on require hook', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n baseDir,\n });\n // patch signature is not typed, so we cast it assuming it's correct\n return file.patch(patchedExports, module.moduleVersion);\n }\n return patchedExports;\n }, exports);\n }\n enable() {\n if (this._enabled) {\n return;\n }\n this._enabled = true;\n // already hooked, just call patch again\n if (this._hooks.length > 0) {\n for (const module of this._modules) {\n if (typeof module.patch === 'function' && module.moduleExports) {\n this._diag.debug('Applying instrumentation patch for nodejs module on instrumentation enabled', {\n module: module.name,\n version: module.moduleVersion,\n });\n module.patch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug('Applying instrumentation patch for nodejs module file on instrumentation enabled', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n });\n file.patch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n return;\n }\n this._warnOnPreloadedModules();\n for (const module of this._modules) {\n const hookFn = (exports, name, baseDir) => {\n if (!baseDir && path.isAbsolute(name)) {\n // Change IITM `name` and `baseDir` values to match what RITM returns.\n // See \"Comparing to RITM\" on https://github.com/nodejs/import-in-the-middle/pull/241\n // for an example of the differences.\n const parsedPath = path.parse(name);\n name = parsedPath.name;\n baseDir = parsedPath.dir;\n }\n return this._onRequire(module, exports, name, baseDir);\n };\n const onRequire = (exports, name, baseDir) => {\n return this._onRequire(module, exports, name, baseDir);\n };\n // `RequireInTheMiddleSingleton` does not support absolute paths.\n // For an absolute paths, we must create a separate instance of the\n // require-in-the-middle `Hook`.\n const hook = path.isAbsolute(module.name)\n ? new require_in_the_middle_1.Hook([module.name], { internals: true }, onRequire)\n : this._requireInTheMiddleSingleton.register(module.name, onRequire);\n this._hooks.push(hook);\n const esmHook = new import_in_the_middle_1.Hook([module.name], { internals: true }, hookFn);\n this._hooks.push(esmHook);\n }\n }\n disable() {\n if (!this._enabled) {\n return;\n }\n this._enabled = false;\n for (const module of this._modules) {\n if (typeof module.unpatch === 'function' && module.moduleExports) {\n this._diag.debug('Removing instrumentation patch for nodejs module on instrumentation disabled', {\n module: module.name,\n version: module.moduleVersion,\n });\n module.unpatch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug('Removing instrumentation patch for nodejs module file on instrumentation disabled', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n });\n file.unpatch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n }\n isEnabled() {\n return this._enabled;\n }\n}\nexports.InstrumentationBase = InstrumentationBase;\nfunction isSupported(supportedVersions, version, includePrerelease) {\n if (typeof version === 'undefined') {\n // If we don't have the version, accept the wildcard case only\n return supportedVersions.includes('*');\n }\n return supportedVersions.some(supportedVersion => {\n return (0, semver_1.satisfies)(version, supportedVersion, { includePrerelease });\n });\n}\n//# sourceMappingURL=instrumentation.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = void 0;\nvar path_1 = require(\"path\");\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return path_1.normalize; } });\n//# sourceMappingURL=normalize.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = exports.InstrumentationBase = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return instrumentation_1.InstrumentationBase; } });\nvar normalize_1 = require(\"./normalize\");\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return normalize_1.normalize; } });\n//# sourceMappingURL=index.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = exports.InstrumentationBase = void 0;\nvar node_1 = require(\"./node\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return node_1.InstrumentationBase; } });\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return node_1.normalize; } });\n//# sourceMappingURL=index.js.map", @@ -121,51 +120,6 @@ "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationNodeModuleFile = void 0;\nconst index_1 = require(\"./platform/index\");\nclass InstrumentationNodeModuleFile {\n name;\n supportedVersions;\n patch;\n unpatch;\n constructor(name, supportedVersions, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n patch, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n unpatch) {\n this.name = (0, index_1.normalize)(name);\n this.supportedVersions = supportedVersions;\n this.patch = patch;\n this.unpatch = unpatch;\n }\n}\nexports.InstrumentationNodeModuleFile = InstrumentationNodeModuleFile;\n//# sourceMappingURL=instrumentationNodeModuleFile.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semconvStabilityFromStr = exports.SemconvStability = void 0;\nvar SemconvStability;\n(function (SemconvStability) {\n /** Emit only stable semantic conventions. */\n SemconvStability[SemconvStability[\"STABLE\"] = 1] = \"STABLE\";\n /** Emit only old semantic conventions. */\n SemconvStability[SemconvStability[\"OLD\"] = 2] = \"OLD\";\n /** Emit both stable and old semantic conventions. */\n SemconvStability[SemconvStability[\"DUPLICATE\"] = 3] = \"DUPLICATE\";\n})(SemconvStability = exports.SemconvStability || (exports.SemconvStability = {}));\n/**\n * Determine the appropriate semconv stability for the given namespace.\n *\n * This will parse the given string of comma-separated values (often\n * `process.env.OTEL_SEMCONV_STABILITY_OPT_IN`) looking for the `${namespace}`\n * or `${namespace}/dup` tokens. This is a pattern defined by a number of\n * non-normative semconv documents.\n *\n * For example:\n * - namespace 'http': https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\n * - namespace 'database': https://opentelemetry.io/docs/specs/semconv/non-normative/database-migration/\n * - namespace 'k8s': https://opentelemetry.io/docs/specs/semconv/non-normative/k8s-migration/\n *\n * Usage:\n *\n * import {SemconvStability, semconvStabilityFromStr} from '@opentelemetry/instrumentation';\n *\n * export class FooInstrumentation extends InstrumentationBase {\n * private _semconvStability: SemconvStability;\n * constructor(config: FooInstrumentationConfig = {}) {\n * super('@opentelemetry/instrumentation-foo', VERSION, config);\n *\n * // When supporting the OTEL_SEMCONV_STABILITY_OPT_IN envvar\n * this._semconvStability = semconvStabilityFromStr(\n * 'http',\n * process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n * );\n *\n * // or when supporting a `semconvStabilityOptIn` config option (e.g. for\n * // the web where there are no envvars).\n * this._semconvStability = semconvStabilityFromStr(\n * 'http',\n * config?.semconvStabilityOptIn\n * );\n * }\n * }\n *\n * // Then, to apply semconv, use the following or similar:\n * if (this._semconvStability & SemconvStability.OLD) {\n * // ...\n * }\n * if (this._semconvStability & SemconvStability.STABLE) {\n * // ...\n * }\n *\n */\nfunction semconvStabilityFromStr(namespace, str) {\n let semconvStability = SemconvStability.OLD;\n // The same parsing of `str` as `getStringListFromEnv` from the core pkg.\n const entries = str\n ?.split(',')\n .map(v => v.trim())\n .filter(s => s !== '');\n for (const entry of entries ?? []) {\n if (entry.toLowerCase() === namespace + '/dup') {\n // DUPLICATE takes highest precedence.\n semconvStability = SemconvStability.DUPLICATE;\n break;\n }\n else if (entry.toLowerCase() === namespace) {\n semconvStability = SemconvStability.STABLE;\n }\n }\n return semconvStability;\n}\nexports.semconvStabilityFromStr = semconvStabilityFromStr;\n//# sourceMappingURL=semconvStability.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semconvStabilityFromStr = exports.SemconvStability = exports.safeExecuteInTheMiddleAsync = exports.safeExecuteInTheMiddle = exports.isWrapped = exports.InstrumentationNodeModuleFile = exports.InstrumentationNodeModuleDefinition = exports.InstrumentationBase = exports.registerInstrumentations = void 0;\nvar autoLoader_1 = require(\"./autoLoader\");\nObject.defineProperty(exports, \"registerInstrumentations\", { enumerable: true, get: function () { return autoLoader_1.registerInstrumentations; } });\nvar index_1 = require(\"./platform/index\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return index_1.InstrumentationBase; } });\nvar instrumentationNodeModuleDefinition_1 = require(\"./instrumentationNodeModuleDefinition\");\nObject.defineProperty(exports, \"InstrumentationNodeModuleDefinition\", { enumerable: true, get: function () { return instrumentationNodeModuleDefinition_1.InstrumentationNodeModuleDefinition; } });\nvar instrumentationNodeModuleFile_1 = require(\"./instrumentationNodeModuleFile\");\nObject.defineProperty(exports, \"InstrumentationNodeModuleFile\", { enumerable: true, get: function () { return instrumentationNodeModuleFile_1.InstrumentationNodeModuleFile; } });\nvar utils_1 = require(\"./utils\");\nObject.defineProperty(exports, \"isWrapped\", { enumerable: true, get: function () { return utils_1.isWrapped; } });\nObject.defineProperty(exports, \"safeExecuteInTheMiddle\", { enumerable: true, get: function () { return utils_1.safeExecuteInTheMiddle; } });\nObject.defineProperty(exports, \"safeExecuteInTheMiddleAsync\", { enumerable: true, get: function () { return utils_1.safeExecuteInTheMiddleAsync; } });\nvar semconvStability_1 = require(\"./semconvStability\");\nObject.defineProperty(exports, \"SemconvStability\", { enumerable: true, get: function () { return semconvStability_1.SemconvStability; } });\nObject.defineProperty(exports, \"semconvStabilityFromStr\", { enumerable: true, get: function () { return semconvStability_1.semconvStabilityFromStr; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HTTP_FLAVOR_VALUE_HTTP_1_1 = exports.NET_TRANSPORT_VALUE_IP_UDP = exports.NET_TRANSPORT_VALUE_IP_TCP = exports.ATTR_NET_TRANSPORT = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_NET_PEER_IP = exports.ATTR_NET_HOST_PORT = exports.ATTR_NET_HOST_NAME = exports.ATTR_NET_HOST_IP = exports.ATTR_HTTP_USER_AGENT = exports.ATTR_HTTP_URL = exports.ATTR_HTTP_TARGET = exports.ATTR_HTTP_STATUS_CODE = exports.ATTR_HTTP_SERVER_NAME = exports.ATTR_HTTP_SCHEME = exports.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED = exports.ATTR_HTTP_RESPONSE_CONTENT_LENGTH = exports.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED = exports.ATTR_HTTP_REQUEST_CONTENT_LENGTH = exports.ATTR_HTTP_METHOD = exports.ATTR_HTTP_HOST = exports.ATTR_HTTP_FLAVOR = exports.ATTR_HTTP_CLIENT_IP = exports.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST = exports.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT = exports.ATTR_USER_AGENT_SYNTHETIC_TYPE = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Specifies the category of synthetic traffic, such as tests or bots.\n *\n * @note This attribute **MAY** be derived from the contents of the `user_agent.original` attribute. Components that populate the attribute are responsible for determining what they consider to be synthetic bot or test traffic. This attribute can either be set for self-identification purposes, or on telemetry detected to be generated as a result of a synthetic request. This attribute is useful for distinguishing between genuine client traffic and synthetic traffic generated by bots or tests.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_USER_AGENT_SYNTHETIC_TYPE = 'user_agent.synthetic.type';\n/**\n * Enum value \"bot\" for attribute {@link ATTR_USER_AGENT_SYNTHETIC_TYPE}.\n */\nexports.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT = 'bot';\n/**\n * Enum value \"test\" for attribute {@link ATTR_USER_AGENT_SYNTHETIC_TYPE}.\n */\nexports.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST = 'test';\n/**\n * Deprecated, use `client.address` instead.\n *\n * @example \"83.164.160.102\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `client.address`.\n */\nexports.ATTR_HTTP_CLIENT_IP = 'http.client_ip';\n/**\n * Deprecated, use `network.protocol.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `network.protocol.name`.\n */\nexports.ATTR_HTTP_FLAVOR = 'http.flavor';\n/**\n * Deprecated, use one of `server.address`, `client.address` or `http.request.header.host` instead, depending on the usage.\n *\n * @example www.example.org\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by one of `server.address`, `client.address` or `http.request.header.host`, depending on the usage.\n */\nexports.ATTR_HTTP_HOST = 'http.host';\n/**\n * Deprecated, use `http.request.method` instead.\n *\n * @example GET\n * @example POST\n * @example HEAD\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.method`.\n */\nexports.ATTR_HTTP_METHOD = 'http.method';\n/**\n * Deprecated, use `http.request.header.` instead.\n *\n * @example 3495\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.header.`.\n */\nexports.ATTR_HTTP_REQUEST_CONTENT_LENGTH = 'http.request_content_length';\n/**\n * Deprecated, use `http.request.body.size` instead.\n *\n * @example 5493\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.body.size`.\n */\nexports.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED = 'http.request_content_length_uncompressed';\n/**\n * Deprecated, use `http.response.header.` instead.\n *\n * @example 3495\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.response.header.`.\n */\nexports.ATTR_HTTP_RESPONSE_CONTENT_LENGTH = 'http.response_content_length';\n/**\n * Deprecated, use `http.response.body.size` instead.\n *\n * @example 5493\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replace by `http.response.body.size`.\n */\nexports.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED = 'http.response_content_length_uncompressed';\n/**\n * Deprecated, use `url.scheme` instead.\n *\n * @example http\n * @example https\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `url.scheme` instead.\n */\nexports.ATTR_HTTP_SCHEME = 'http.scheme';\n/**\n * Deprecated, use `server.address` instead.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address`.\n */\nexports.ATTR_HTTP_SERVER_NAME = 'http.server_name';\n/**\n * Deprecated, use `http.response.status_code` instead.\n *\n * @example 200\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.response.status_code`.\n */\nexports.ATTR_HTTP_STATUS_CODE = 'http.status_code';\n/**\n * Deprecated, use `url.path` and `url.query` instead.\n *\n * @example /search?q=OpenTelemetry#SemConv\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Split to `url.path` and `url.query.\n */\nexports.ATTR_HTTP_TARGET = 'http.target';\n/**\n * Deprecated, use `url.full` instead.\n *\n * @example https://www.foo.bar/search?q=OpenTelemetry#SemConv\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `url.full`.\n */\nexports.ATTR_HTTP_URL = 'http.url';\n/**\n * Deprecated, use `user_agent.original` instead.\n *\n * @example CERN-LineMode/2.15 libwww/2.17b3\n * @example Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `user_agent.original`.\n */\nexports.ATTR_HTTP_USER_AGENT = 'http.user_agent';\n/**\n * Deprecated, use `network.local.address`.\n *\n * @example \"192.168.0.1\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `network.local.address`.\n */\nexports.ATTR_NET_HOST_IP = 'net.host.ip';\n/**\n * Deprecated, use `server.address`.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address`.\n */\nexports.ATTR_NET_HOST_NAME = 'net.host.name';\n/**\n * Deprecated, use `server.port`.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port`.\n */\nexports.ATTR_NET_HOST_PORT = 'net.host.port';\n/**\n * Deprecated, use `network.peer.address`.\n *\n * @example \"127.0.0.1\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `network.peer.address`.\n */\nexports.ATTR_NET_PEER_IP = 'net.peer.ip';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Deprecated, use `network.transport`.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `network.transport`.\n */\nexports.ATTR_NET_TRANSPORT = 'net.transport';\n/**\n * Enum value \"ip_tcp\" for attribute {@link ATTR_NET_TRANSPORT}.\n */\nexports.NET_TRANSPORT_VALUE_IP_TCP = 'ip_tcp';\n/**\n * Enum value \"ip_udp\" for attribute {@link ATTR_NET_TRANSPORT}.\n */\nexports.NET_TRANSPORT_VALUE_IP_UDP = 'ip_udp';\n/**\n * Enum value \"1.1\" for attribute {@link ATTR_HTTP_FLAVOR}.\n */\nexports.HTTP_FLAVOR_VALUE_HTTP_1_1 = '1.1';\n//# sourceMappingURL=semconv.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = void 0;\n/**\n * https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/http.md\n */\nvar AttributeNames;\n(function (AttributeNames) {\n AttributeNames[\"HTTP_ERROR_NAME\"] = \"http.error_name\";\n AttributeNames[\"HTTP_ERROR_MESSAGE\"] = \"http.error_message\";\n AttributeNames[\"HTTP_STATUS_TEXT\"] = \"http.status_text\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_QUERY_STRINGS_TO_REDACT = exports.STR_REDACTED = exports.SYNTHETIC_BOT_NAMES = exports.SYNTHETIC_TEST_NAMES = void 0;\n/**\n * Names of possible synthetic test sources.\n */\nexports.SYNTHETIC_TEST_NAMES = ['alwayson'];\n/**\n * Names of possible synthetic bot sources.\n */\nexports.SYNTHETIC_BOT_NAMES = ['googlebot', 'bingbot'];\n/**\n * REDACTED string used to replace sensitive information in URLs.\n */\nexports.STR_REDACTED = 'REDACTED';\n/**\n * List of URL query keys that are considered sensitive and whose value should be redacted.\n */\nexports.DEFAULT_QUERY_STRINGS_TO_REDACT = [\n 'sig',\n 'Signature',\n 'AWSAccessKeyId',\n 'X-Goog-Signature',\n];\n//# sourceMappingURL=internal-types.js.map", - "'use strict';\n\nvar util = require('util');\n\n/**\n * An error thrown by the parser on unexpected input.\n *\n * @constructor\n * @param {string} message The error message.\n * @param {string} input The unexpected input.\n * @public\n */\nfunction ParseError(message, input) {\n Error.captureStackTrace(this, ParseError);\n\n this.name = this.constructor.name;\n this.message = message;\n this.input = input;\n}\n\nutil.inherits(ParseError, Error);\n\nmodule.exports = ParseError;\n", - "'use strict';\n\n/**\n * Check if a character is a delimiter as defined in section 3.2.6 of RFC 7230.\n *\n *\n * @param {number} code The code of the character to check.\n * @returns {boolean} `true` if the character is a delimiter, else `false`.\n * @public\n */\nfunction isDelimiter(code) {\n return code === 0x22 // '\"'\n || code === 0x28 // '('\n || code === 0x29 // ')'\n || code === 0x2C // ','\n || code === 0x2F // '/'\n || code >= 0x3A && code <= 0x40 // ':', ';', '<', '=', '>', '?' '@'\n || code >= 0x5B && code <= 0x5D // '[', '\\', ']'\n || code === 0x7B // '{'\n || code === 0x7D; // '}'\n}\n\n/**\n * Check if a character is allowed in a token as defined in section 3.2.6\n * of RFC 7230.\n *\n * @param {number} code The code of the character to check.\n * @returns {boolean} `true` if the character is allowed, else `false`.\n * @public\n */\nfunction isTokenChar(code) {\n return code === 0x21 // '!'\n || code >= 0x23 && code <= 0x27 // '#', '$', '%', '&', '''\n || code === 0x2A // '*'\n || code === 0x2B // '+'\n || code === 0x2D // '-'\n || code === 0x2E // '.'\n || code >= 0x30 && code <= 0x39 // 0-9\n || code >= 0x41 && code <= 0x5A // A-Z\n || code >= 0x5E && code <= 0x7A // '^', '_', '`', a-z\n || code === 0x7C // '|'\n || code === 0x7E; // '~'\n}\n\n/**\n * Check if a character is a printable ASCII character.\n *\n * @param {number} code The code of the character to check.\n * @returns {boolean} `true` if `code` is in the %x20-7E range, else `false`.\n * @public\n */\nfunction isPrint(code) {\n return code >= 0x20 && code <= 0x7E;\n}\n\n/**\n * Check if a character is an extended ASCII character.\n *\n * @param {number} code The code of the character to check.\n * @returns {boolean} `true` if `code` is in the %x80-FF range, else `false`.\n * @public\n */\nfunction isExtended(code) {\n return code >= 0x80 && code <= 0xFF;\n}\n\nmodule.exports = {\n isDelimiter: isDelimiter,\n isTokenChar: isTokenChar,\n isExtended: isExtended,\n isPrint: isPrint\n};\n", - "'use strict';\n\nvar util = require('util');\n\nvar ParseError = require('./lib/error');\nvar ascii = require('./lib/ascii');\n\nvar isDelimiter = ascii.isDelimiter;\nvar isTokenChar = ascii.isTokenChar;\nvar isExtended = ascii.isExtended;\nvar isPrint = ascii.isPrint;\n\n/**\n * Unescape a string.\n *\n * @param {string} str The string to unescape.\n * @returns {string} A new unescaped string.\n * @private\n */\nfunction decode(str) {\n return str.replace(/\\\\(.)/g, '$1');\n}\n\n/**\n * Build an error message when an unexpected character is found.\n *\n * @param {string} header The header field value.\n * @param {number} position The position of the unexpected character.\n * @returns {string} The error message.\n * @private\n */\nfunction unexpectedCharacterMessage(header, position) {\n return util.format(\n \"Unexpected character '%s' at index %d\",\n header.charAt(position),\n position\n );\n}\n\n/**\n * Parse the `Forwarded` header field value into an array of objects.\n *\n * @param {string} header The header field value.\n * @returns {Object[]}\n * @public\n */\nfunction parse(header) {\n var mustUnescape = false;\n var isEscaping = false;\n var inQuotes = false;\n var forwarded = {};\n var output = [];\n var start = -1;\n var end = -1;\n var parameter;\n var code;\n\n for (var i = 0; i < header.length; i++) {\n code = header.charCodeAt(i);\n\n if (parameter === undefined) {\n if (\n i !== 0 &&\n start === -1 &&\n (code === 0x20/*' '*/ || code === 0x09/*'\\t'*/)\n ) {\n continue;\n }\n\n if (isTokenChar(code)) {\n if (start === -1) start = i;\n } else if (code === 0x3D/*'='*/ && start !== -1) {\n parameter = header.slice(start, i).toLowerCase();\n start = -1;\n } else {\n throw new ParseError(unexpectedCharacterMessage(header, i), header);\n }\n } else {\n if (isEscaping && (code === 0x09 || isPrint(code) || isExtended(code))) {\n isEscaping = false;\n } else if (isTokenChar(code)) {\n if (end !== -1) {\n throw new ParseError(unexpectedCharacterMessage(header, i), header);\n }\n\n if (start === -1) start = i;\n } else if (isDelimiter(code) || isExtended(code)) {\n if (inQuotes) {\n if (code === 0x22/*'\"'*/) {\n inQuotes = false;\n end = i;\n } else if (code === 0x5C/*'\\'*/) {\n if (start === -1) start = i;\n isEscaping = mustUnescape = true;\n } else if (start === -1) {\n start = i;\n }\n } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3D) {\n inQuotes = true;\n } else if (\n (code === 0x2C/*','*/|| code === 0x3B/*';'*/) &&\n (start !== -1 || end !== -1)\n ) {\n if (start !== -1) {\n if (end === -1) end = i;\n forwarded[parameter] = mustUnescape\n ? decode(header.slice(start, end))\n : header.slice(start, end);\n } else {\n forwarded[parameter] = '';\n }\n\n if (code === 0x2C) {\n output.push(forwarded);\n forwarded = {};\n }\n\n parameter = undefined;\n start = end = -1;\n } else {\n throw new ParseError(unexpectedCharacterMessage(header, i), header);\n }\n } else if (code === 0x20 || code === 0x09) {\n if (end !== -1) continue;\n\n if (inQuotes) {\n if (start === -1) start = i;\n } else if (start !== -1) {\n end = i;\n } else {\n throw new ParseError(unexpectedCharacterMessage(header, i), header);\n }\n } else {\n throw new ParseError(unexpectedCharacterMessage(header, i), header);\n }\n }\n }\n\n if (\n parameter === undefined ||\n inQuotes ||\n (start === -1 && end === -1) ||\n code === 0x20 ||\n code === 0x09\n ) {\n throw new ParseError('Unexpected end of input', header);\n }\n\n if (start !== -1) {\n if (end === -1) end = i;\n forwarded[parameter] = mustUnescape\n ? decode(header.slice(start, end))\n : header.slice(start, end);\n } else {\n forwarded[parameter] = '';\n }\n\n output.push(forwarded);\n return output;\n}\n\nmodule.exports = parse;\n", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.headerCapture = exports.getIncomingStableRequestMetricAttributesOnResponse = exports.getIncomingRequestMetricAttributesOnResponse = exports.getIncomingRequestAttributesOnResponse = exports.getIncomingRequestMetricAttributes = exports.getIncomingRequestAttributes = exports.getRemoteClientAddress = exports.getOutgoingStableRequestMetricAttributesOnResponse = exports.getOutgoingRequestMetricAttributesOnResponse = exports.getOutgoingRequestAttributesOnResponse = exports.setAttributesFromHttpKind = exports.getOutgoingRequestMetricAttributes = exports.getOutgoingRequestAttributes = exports.extractHostnameAndPort = exports.isValidOptionsType = exports.getRequestInfo = exports.isCompressed = exports.setResponseContentLengthAttribute = exports.setRequestContentLengthAttribute = exports.setSpanWithError = exports.satisfiesPattern = exports.parseResponseStatus = exports.getAbsoluteUrl = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst url = require(\"url\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst internal_types_1 = require(\"./internal-types\");\nconst internal_types_2 = require(\"./internal-types\");\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst forwardedParse = require(\"forwarded-parse\");\n/**\n * Get an absolute url\n */\nconst getAbsoluteUrl = (requestUrl, headers, fallbackProtocol = 'http:', redactedQueryParams = Array.from(internal_types_2.DEFAULT_QUERY_STRINGS_TO_REDACT)) => {\n const reqUrlObject = requestUrl || {};\n const protocol = reqUrlObject.protocol || fallbackProtocol;\n const port = (reqUrlObject.port || '').toString();\n let path = reqUrlObject.path || '/';\n let host = reqUrlObject.host || reqUrlObject.hostname || headers.host || 'localhost';\n // if there is no port in host and there is a port\n // it should be displayed if it's not 80 and 443 (default ports)\n if (host.indexOf(':') === -1 &&\n port &&\n port !== '80' &&\n port !== '443') {\n host += `:${port}`;\n }\n // Redact sensitive query parameters\n if (path.includes('?')) {\n try {\n const parsedUrl = new URL(path, 'http://localhost');\n const sensitiveParamsToRedact = redactedQueryParams || [];\n for (const sensitiveParam of sensitiveParamsToRedact) {\n if (parsedUrl.searchParams.get(sensitiveParam)) {\n parsedUrl.searchParams.set(sensitiveParam, internal_types_2.STR_REDACTED);\n }\n }\n path = `${parsedUrl.pathname}${parsedUrl.search}`;\n }\n catch {\n // Ignore error, as the path was not a valid URL.\n }\n }\n const authPart = reqUrlObject.auth ? `${internal_types_2.STR_REDACTED}:${internal_types_2.STR_REDACTED}@` : '';\n return `${protocol}//${authPart}${host}${path}`;\n};\nexports.getAbsoluteUrl = getAbsoluteUrl;\n/**\n * Parse status code from HTTP response. [More details](https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/data-http.md#status)\n */\nconst parseResponseStatus = (kind, statusCode) => {\n const upperBound = kind === api_1.SpanKind.CLIENT ? 400 : 500;\n // 1xx, 2xx, 3xx are OK on client and server\n // 4xx is OK on server\n if (statusCode && statusCode >= 100 && statusCode < upperBound) {\n return api_1.SpanStatusCode.UNSET;\n }\n // All other codes are error\n return api_1.SpanStatusCode.ERROR;\n};\nexports.parseResponseStatus = parseResponseStatus;\n/**\n * Check whether the given obj match pattern\n * @param constant e.g URL of request\n * @param pattern Match pattern\n */\nconst satisfiesPattern = (constant, pattern) => {\n if (typeof pattern === 'string') {\n return pattern === constant;\n }\n else if (pattern instanceof RegExp) {\n return pattern.test(constant);\n }\n else if (typeof pattern === 'function') {\n return pattern(constant);\n }\n else {\n throw new TypeError('Pattern is in unsupported datatype');\n }\n};\nexports.satisfiesPattern = satisfiesPattern;\n/**\n * Sets the span with the error passed in params\n * @param {Span} span the span that need to be set\n * @param {Error} error error that will be set to span\n * @param {SemconvStability} semconvStability determines which semconv version to use\n */\nconst setSpanWithError = (span, error, semconvStability) => {\n const message = error.message;\n if (semconvStability & instrumentation_1.SemconvStability.OLD) {\n span.setAttribute(AttributeNames_1.AttributeNames.HTTP_ERROR_NAME, error.name);\n span.setAttribute(AttributeNames_1.AttributeNames.HTTP_ERROR_MESSAGE, message);\n }\n if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n span.setAttribute(semantic_conventions_1.ATTR_ERROR_TYPE, error.name);\n }\n span.setStatus({ code: api_1.SpanStatusCode.ERROR, message });\n span.recordException(error);\n};\nexports.setSpanWithError = setSpanWithError;\n/**\n * Adds attributes for request content-length and content-encoding HTTP headers\n * @param { IncomingMessage } Request object whose headers will be analyzed\n * @param { Attributes } Attributes object to be modified\n */\nconst setRequestContentLengthAttribute = (request, attributes) => {\n const length = getContentLength(request.headers);\n if (length === null)\n return;\n if ((0, exports.isCompressed)(request.headers)) {\n attributes[semconv_1.ATTR_HTTP_REQUEST_CONTENT_LENGTH] = length;\n }\n else {\n attributes[semconv_1.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED] = length;\n }\n};\nexports.setRequestContentLengthAttribute = setRequestContentLengthAttribute;\n/**\n * Adds attributes for response content-length and content-encoding HTTP headers\n * @param { IncomingMessage } Response object whose headers will be analyzed\n * @param { Attributes } Attributes object to be modified\n *\n * @deprecated this is for an older version of semconv. It is retained for compatibility using OTEL_SEMCONV_STABILITY_OPT_IN\n */\nconst setResponseContentLengthAttribute = (response, attributes) => {\n const length = getContentLength(response.headers);\n if (length === null)\n return;\n if ((0, exports.isCompressed)(response.headers)) {\n attributes[semconv_1.ATTR_HTTP_RESPONSE_CONTENT_LENGTH] = length;\n }\n else {\n attributes[semconv_1.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED] = length;\n }\n};\nexports.setResponseContentLengthAttribute = setResponseContentLengthAttribute;\nfunction getContentLength(headers) {\n const contentLengthHeader = headers['content-length'];\n if (contentLengthHeader === undefined)\n return null;\n const contentLength = parseInt(contentLengthHeader, 10);\n if (isNaN(contentLength))\n return null;\n return contentLength;\n}\nconst isCompressed = (headers) => {\n const encoding = headers['content-encoding'];\n return !!encoding && encoding !== 'identity';\n};\nexports.isCompressed = isCompressed;\n/**\n * Mimics Node.js conversion of URL strings to RequestOptions expected by\n * `http.request` and `https.request` APIs.\n *\n * See https://github.com/nodejs/node/blob/2505e217bba05fc581b572c685c5cf280a16c5a3/lib/internal/url.js#L1415-L1437\n *\n * @param stringUrl\n * @throws TypeError if the URL is not valid.\n */\nfunction stringUrlToHttpOptions(stringUrl) {\n // This is heavily inspired by Node.js handling of the same situation, trying\n // to follow it as closely as possible while keeping in mind that we only\n // deal with string URLs, not URL objects.\n const { hostname, pathname, port, username, password, search, protocol, hash, href, origin, host, } = new URL(stringUrl);\n const options = {\n protocol: protocol,\n hostname: hostname && hostname[0] === '[' ? hostname.slice(1, -1) : hostname,\n hash: hash,\n search: search,\n pathname: pathname,\n path: `${pathname || ''}${search || ''}`,\n href: href,\n origin: origin,\n host: host,\n };\n if (port !== '') {\n options.port = Number(port);\n }\n if (username || password) {\n options.auth = `${decodeURIComponent(username)}:${decodeURIComponent(password)}`;\n }\n return options;\n}\n/**\n * Makes sure options is an url object\n * return an object with default value and parsed options\n * @param logger component logger\n * @param options original options for the request\n * @param [extraOptions] additional options for the request\n */\nconst getRequestInfo = (logger, options, extraOptions) => {\n let pathname;\n let origin;\n let optionsParsed;\n let invalidUrl = false;\n if (typeof options === 'string') {\n try {\n const convertedOptions = stringUrlToHttpOptions(options);\n optionsParsed = convertedOptions;\n pathname = convertedOptions.pathname || '/';\n }\n catch (e) {\n invalidUrl = true;\n logger.verbose('Unable to parse URL provided to HTTP request, using fallback to determine path. Original error:', e);\n // for backward compatibility with how url.parse() behaved.\n optionsParsed = {\n path: options,\n };\n pathname = optionsParsed.path || '/';\n }\n origin = `${optionsParsed.protocol || 'http:'}//${optionsParsed.host}`;\n if (extraOptions !== undefined) {\n Object.assign(optionsParsed, extraOptions);\n }\n }\n else if (options instanceof url.URL) {\n optionsParsed = {\n protocol: options.protocol,\n hostname: typeof options.hostname === 'string' && options.hostname.startsWith('[')\n ? options.hostname.slice(1, -1)\n : options.hostname,\n path: `${options.pathname || ''}${options.search || ''}`,\n };\n if (options.port !== '') {\n optionsParsed.port = Number(options.port);\n }\n if (options.username || options.password) {\n optionsParsed.auth = `${options.username}:${options.password}`;\n }\n pathname = options.pathname;\n origin = options.origin;\n if (extraOptions !== undefined) {\n Object.assign(optionsParsed, extraOptions);\n }\n }\n else {\n optionsParsed = Object.assign({ protocol: options.host ? 'http:' : undefined }, options);\n const hostname = optionsParsed.host ||\n (optionsParsed.port != null\n ? `${optionsParsed.hostname}${optionsParsed.port}`\n : optionsParsed.hostname);\n origin = `${optionsParsed.protocol || 'http:'}//${hostname}`;\n pathname = options.pathname;\n if (!pathname && optionsParsed.path) {\n try {\n const parsedUrl = new URL(optionsParsed.path, origin);\n pathname = parsedUrl.pathname || '/';\n }\n catch {\n pathname = '/';\n }\n }\n }\n // some packages return method in lowercase..\n // ensure upperCase for consistency\n const method = optionsParsed.method\n ? optionsParsed.method.toUpperCase()\n : 'GET';\n return { origin, pathname, method, optionsParsed, invalidUrl };\n};\nexports.getRequestInfo = getRequestInfo;\n/**\n * Makes sure options is of type string or object\n * @param options for the request\n */\nconst isValidOptionsType = (options) => {\n if (!options) {\n return false;\n }\n const type = typeof options;\n return type === 'string' || (type === 'object' && !Array.isArray(options));\n};\nexports.isValidOptionsType = isValidOptionsType;\nconst extractHostnameAndPort = (requestOptions) => {\n if (requestOptions.hostname && requestOptions.port) {\n return { hostname: requestOptions.hostname, port: requestOptions.port };\n }\n const matches = requestOptions.host?.match(/^([^:/ ]+)(:\\d{1,5})?/) || null;\n const hostname = requestOptions.hostname || (matches === null ? 'localhost' : matches[1]);\n let port = requestOptions.port;\n if (!port) {\n if (matches && matches[2]) {\n // remove the leading \":\". The extracted port would be something like \":8080\"\n port = matches[2].substring(1);\n }\n else {\n port = requestOptions.protocol === 'https:' ? '443' : '80';\n }\n }\n return { hostname, port };\n};\nexports.extractHostnameAndPort = extractHostnameAndPort;\n/**\n * Returns outgoing request attributes scoped to the options passed to the request\n * @param {ParsedRequestOptions} requestOptions the same options used to make the request\n * @param {{ component: string, hostname: string, hookAttributes?: Attributes }} options used to pass data needed to create attributes\n * @param {SemconvStability} semconvStability determines which semconv version to use\n */\nconst getOutgoingRequestAttributes = (requestOptions, options, semconvStability, enableSyntheticSourceDetection) => {\n const hostname = options.hostname;\n const port = options.port;\n const method = requestOptions.method ?? 'GET';\n const normalizedMethod = normalizeMethod(method);\n const headers = (requestOptions.headers || {});\n const userAgent = headers['user-agent'];\n const urlFull = (0, exports.getAbsoluteUrl)(requestOptions, headers, `${options.component}:`, options.redactedQueryParams);\n const oldAttributes = {\n [semconv_1.ATTR_HTTP_URL]: urlFull,\n [semconv_1.ATTR_HTTP_METHOD]: method,\n [semconv_1.ATTR_HTTP_TARGET]: requestOptions.path || '/',\n [semconv_1.ATTR_NET_PEER_NAME]: hostname,\n [semconv_1.ATTR_HTTP_HOST]: headers.host ?? `${hostname}:${port}`,\n };\n const newAttributes = {\n // Required attributes\n [semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD]: normalizedMethod,\n [semantic_conventions_1.ATTR_SERVER_ADDRESS]: hostname,\n [semantic_conventions_1.ATTR_SERVER_PORT]: Number(port),\n [semantic_conventions_1.ATTR_URL_FULL]: urlFull,\n [semantic_conventions_1.ATTR_USER_AGENT_ORIGINAL]: userAgent,\n // leaving out protocol version, it is not yet negotiated\n // leaving out protocol name, it is only required when protocol version is set\n // retries and redirects not supported\n // Opt-in attributes left off for now\n };\n // conditionally required if request method required case normalization\n if (method !== normalizedMethod) {\n newAttributes[semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD_ORIGINAL] = method;\n }\n if (enableSyntheticSourceDetection && userAgent) {\n newAttributes[semconv_1.ATTR_USER_AGENT_SYNTHETIC_TYPE] = getSyntheticType(userAgent);\n }\n if (userAgent !== undefined) {\n oldAttributes[semconv_1.ATTR_HTTP_USER_AGENT] = userAgent;\n }\n switch (semconvStability) {\n case instrumentation_1.SemconvStability.STABLE:\n return Object.assign(newAttributes, options.hookAttributes);\n case instrumentation_1.SemconvStability.OLD:\n return Object.assign(oldAttributes, options.hookAttributes);\n }\n return Object.assign(oldAttributes, newAttributes, options.hookAttributes);\n};\nexports.getOutgoingRequestAttributes = getOutgoingRequestAttributes;\n/**\n * Returns outgoing request Metric attributes scoped to the request data\n * @param {Attributes} spanAttributes the span attributes\n */\nconst getOutgoingRequestMetricAttributes = (spanAttributes) => {\n const metricAttributes = {};\n metricAttributes[semconv_1.ATTR_HTTP_METHOD] = spanAttributes[semconv_1.ATTR_HTTP_METHOD];\n metricAttributes[semconv_1.ATTR_NET_PEER_NAME] = spanAttributes[semconv_1.ATTR_NET_PEER_NAME];\n //TODO: http.url attribute, it should substitute any parameters to avoid high cardinality.\n return metricAttributes;\n};\nexports.getOutgoingRequestMetricAttributes = getOutgoingRequestMetricAttributes;\n/**\n * Returns attributes related to the kind of HTTP protocol used\n * @param {string} [kind] Kind of HTTP protocol used: \"1.0\", \"1.1\", \"2\", \"SPDY\" or \"QUIC\".\n */\nconst setAttributesFromHttpKind = (kind, attributes) => {\n if (kind) {\n attributes[semconv_1.ATTR_HTTP_FLAVOR] = kind;\n if (kind.toUpperCase() !== 'QUIC') {\n attributes[semconv_1.ATTR_NET_TRANSPORT] = semconv_1.NET_TRANSPORT_VALUE_IP_TCP;\n }\n else {\n attributes[semconv_1.ATTR_NET_TRANSPORT] = semconv_1.NET_TRANSPORT_VALUE_IP_UDP;\n }\n }\n};\nexports.setAttributesFromHttpKind = setAttributesFromHttpKind;\n/**\n * Returns the type of synthetic source based on the user agent\n * @param {OutgoingHttpHeader} userAgent the user agent string\n */\nconst getSyntheticType = (userAgent) => {\n const userAgentString = String(userAgent).toLowerCase();\n for (const name of internal_types_1.SYNTHETIC_TEST_NAMES) {\n if (userAgentString.includes(name)) {\n return semconv_1.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;\n }\n }\n for (const name of internal_types_1.SYNTHETIC_BOT_NAMES) {\n if (userAgentString.includes(name)) {\n return semconv_1.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT;\n }\n }\n return;\n};\n/**\n * Returns outgoing request attributes scoped to the response data\n * @param {IncomingMessage} response the response object\n * @param {SemconvStability} semconvStability determines which semconv version to use\n */\nconst getOutgoingRequestAttributesOnResponse = (response, semconvStability) => {\n const { statusCode, statusMessage, httpVersion, socket } = response;\n const oldAttributes = {};\n const stableAttributes = {};\n if (statusCode != null) {\n stableAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE] = statusCode;\n }\n if (socket) {\n const { remoteAddress, remotePort } = socket;\n oldAttributes[semconv_1.ATTR_NET_PEER_IP] = remoteAddress;\n oldAttributes[semconv_1.ATTR_NET_PEER_PORT] = remotePort;\n // Recommended\n stableAttributes[semantic_conventions_1.ATTR_NETWORK_PEER_ADDRESS] = remoteAddress;\n stableAttributes[semantic_conventions_1.ATTR_NETWORK_PEER_PORT] = remotePort;\n stableAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION] = response.httpVersion;\n }\n (0, exports.setResponseContentLengthAttribute)(response, oldAttributes);\n if (statusCode) {\n oldAttributes[semconv_1.ATTR_HTTP_STATUS_CODE] = statusCode;\n oldAttributes[AttributeNames_1.AttributeNames.HTTP_STATUS_TEXT] = (statusMessage || '').toUpperCase();\n }\n (0, exports.setAttributesFromHttpKind)(httpVersion, oldAttributes);\n switch (semconvStability) {\n case instrumentation_1.SemconvStability.STABLE:\n return stableAttributes;\n case instrumentation_1.SemconvStability.OLD:\n return oldAttributes;\n }\n return Object.assign(oldAttributes, stableAttributes);\n};\nexports.getOutgoingRequestAttributesOnResponse = getOutgoingRequestAttributesOnResponse;\n/**\n * Returns outgoing request Metric attributes scoped to the response data\n * @param {Attributes} spanAttributes the span attributes\n */\nconst getOutgoingRequestMetricAttributesOnResponse = (spanAttributes) => {\n const metricAttributes = {};\n metricAttributes[semconv_1.ATTR_NET_PEER_PORT] = spanAttributes[semconv_1.ATTR_NET_PEER_PORT];\n metricAttributes[semconv_1.ATTR_HTTP_STATUS_CODE] =\n spanAttributes[semconv_1.ATTR_HTTP_STATUS_CODE];\n metricAttributes[semconv_1.ATTR_HTTP_FLAVOR] = spanAttributes[semconv_1.ATTR_HTTP_FLAVOR];\n return metricAttributes;\n};\nexports.getOutgoingRequestMetricAttributesOnResponse = getOutgoingRequestMetricAttributesOnResponse;\nconst getOutgoingStableRequestMetricAttributesOnResponse = (spanAttributes) => {\n const metricAttributes = {};\n if (spanAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION]) {\n metricAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION] =\n spanAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION];\n }\n if (spanAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE]) {\n metricAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE] =\n spanAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE];\n }\n return metricAttributes;\n};\nexports.getOutgoingStableRequestMetricAttributesOnResponse = getOutgoingStableRequestMetricAttributesOnResponse;\nfunction parseHostHeader(hostHeader, proto) {\n const parts = hostHeader.split(':');\n // no semicolon implies ipv4 dotted syntax or host name without port\n // x.x.x.x\n // example.com\n if (parts.length === 1) {\n if (proto === 'http') {\n return { host: parts[0], port: '80' };\n }\n if (proto === 'https') {\n return { host: parts[0], port: '443' };\n }\n return { host: parts[0] };\n }\n // single semicolon implies ipv4 dotted syntax or host name with port\n // x.x.x.x:yyyy\n // example.com:yyyy\n if (parts.length === 2) {\n return {\n host: parts[0],\n port: parts[1],\n };\n }\n // more than 2 parts implies ipv6 syntax with multiple colons\n // [x:x:x:x:x:x:x:x]\n // [x:x:x:x:x:x:x:x]:yyyy\n if (parts[0].startsWith('[')) {\n if (parts[parts.length - 1].endsWith(']')) {\n if (proto === 'http') {\n return { host: hostHeader, port: '80' };\n }\n if (proto === 'https') {\n return { host: hostHeader, port: '443' };\n }\n }\n else if (parts[parts.length - 2].endsWith(']')) {\n return {\n host: parts.slice(0, -1).join(':'),\n port: parts[parts.length - 1],\n };\n }\n }\n // if nothing above matches just return the host header\n return { host: hostHeader };\n}\n/**\n * Get server.address and port according to http semconv 1.27\n * https://github.com/open-telemetry/semantic-conventions/blob/bf0a2c1134f206f034408b201dbec37960ed60ec/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes\n */\nfunction getServerAddress(request, component) {\n const forwardedHeader = request.headers['forwarded'];\n if (forwardedHeader) {\n for (const entry of parseForwardedHeader(forwardedHeader)) {\n if (entry.host) {\n return parseHostHeader(entry.host, entry.proto);\n }\n }\n }\n const xForwardedHost = request.headers['x-forwarded-host'];\n if (typeof xForwardedHost === 'string') {\n if (typeof request.headers['x-forwarded-proto'] === 'string') {\n return parseHostHeader(xForwardedHost, request.headers['x-forwarded-proto']);\n }\n if (Array.isArray(request.headers['x-forwarded-proto'])) {\n return parseHostHeader(xForwardedHost, request.headers['x-forwarded-proto'][0]);\n }\n return parseHostHeader(xForwardedHost);\n }\n else if (Array.isArray(xForwardedHost) &&\n typeof xForwardedHost[0] === 'string' &&\n xForwardedHost[0].length > 0) {\n if (typeof request.headers['x-forwarded-proto'] === 'string') {\n return parseHostHeader(xForwardedHost[0], request.headers['x-forwarded-proto']);\n }\n if (Array.isArray(request.headers['x-forwarded-proto'])) {\n return parseHostHeader(xForwardedHost[0], request.headers['x-forwarded-proto'][0]);\n }\n return parseHostHeader(xForwardedHost[0]);\n }\n const host = request.headers['host'];\n if (typeof host === 'string' && host.length > 0) {\n return parseHostHeader(host, component);\n }\n return null;\n}\n/**\n * Get server.address and port according to http semconv 1.27\n * https://github.com/open-telemetry/semantic-conventions/blob/bf0a2c1134f206f034408b201dbec37960ed60ec/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes\n */\nfunction getRemoteClientAddress(request) {\n const forwardedHeader = request.headers['forwarded'];\n if (forwardedHeader) {\n for (const entry of parseForwardedHeader(forwardedHeader)) {\n if (entry.for) {\n return removePortFromAddress(entry.for);\n }\n }\n }\n const xForwardedFor = request.headers['x-forwarded-for'];\n if (xForwardedFor) {\n let xForwardedForVal;\n if (typeof xForwardedFor === 'string') {\n xForwardedForVal = xForwardedFor;\n }\n else if (Array.isArray(xForwardedFor)) {\n xForwardedForVal = xForwardedFor[0];\n }\n if (typeof xForwardedForVal === 'string') {\n xForwardedForVal = xForwardedForVal.split(',')[0].trim();\n return removePortFromAddress(xForwardedForVal);\n }\n }\n const remote = request.socket.remoteAddress;\n if (remote) {\n return remote;\n }\n return null;\n}\nexports.getRemoteClientAddress = getRemoteClientAddress;\nfunction removePortFromAddress(input) {\n // This function can be replaced with SocketAddress.parse() once the minimum\n // supported Node.js version allows it.\n try {\n const { hostname: address } = new URL(`http://${input}`);\n if (address.startsWith('[') && address.endsWith(']')) {\n return address.slice(1, -1);\n }\n return address;\n }\n catch {\n return input;\n }\n}\nfunction getInfoFromIncomingMessage(component, request, logger) {\n try {\n if (request.headers.host) {\n return new URL(request.url ?? '/', `${component}://${request.headers.host}`);\n }\n else {\n const unsafeParsedUrl = new URL(request.url ?? '/', \n // using localhost as a workaround to still use the URL constructor for parsing\n `${component}://localhost`);\n // since we use localhost as a workaround, ensure we hide the rest of the properties to avoid\n // our workaround leaking though.\n return {\n pathname: unsafeParsedUrl.pathname,\n search: unsafeParsedUrl.search,\n toString: function () {\n // we cannot use the result of unsafeParsedUrl.toString as it's potentially wrong.\n return unsafeParsedUrl.pathname + unsafeParsedUrl.search;\n },\n };\n }\n }\n catch (e) {\n // something is wrong, use undefined - this *should* never happen, logging\n // for troubleshooting in case it does happen.\n logger.verbose('Unable to get URL from request', e);\n return {};\n }\n}\n/**\n * Returns incoming request attributes scoped to the request data\n * @param {IncomingMessage} request the request object\n * @param {{ component: string, serverName?: string, hookAttributes?: Attributes }} options used to pass data needed to create attributes\n * @param {SemconvStability} semconvStability determines which semconv version to use\n */\nconst getIncomingRequestAttributes = (request, options, logger) => {\n const { component, enableSyntheticSourceDetection, hookAttributes, semconvStability, serverName, } = options;\n const { headers, httpVersion, method } = request;\n const { host, 'user-agent': userAgent, 'x-forwarded-for': ips } = headers;\n const parsedUrl = getInfoFromIncomingMessage(component, request, logger);\n let newAttributes;\n let oldAttributes;\n if (semconvStability !== instrumentation_1.SemconvStability.OLD) {\n // Stable attributes are used.\n const normalizedMethod = normalizeMethod(method);\n const serverAddress = getServerAddress(request, component);\n const remoteClientAddress = getRemoteClientAddress(request);\n newAttributes = {\n [semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD]: normalizedMethod,\n [semantic_conventions_1.ATTR_URL_SCHEME]: component,\n [semantic_conventions_1.ATTR_SERVER_ADDRESS]: serverAddress?.host,\n [semantic_conventions_1.ATTR_NETWORK_PEER_ADDRESS]: request.socket.remoteAddress,\n [semantic_conventions_1.ATTR_NETWORK_PEER_PORT]: request.socket.remotePort,\n [semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION]: request.httpVersion,\n [semantic_conventions_1.ATTR_USER_AGENT_ORIGINAL]: userAgent,\n };\n if (parsedUrl.pathname != null) {\n newAttributes[semantic_conventions_1.ATTR_URL_PATH] = parsedUrl.pathname;\n }\n if (parsedUrl.search) {\n // Remove leading '?' from URL search (https://developer.mozilla.org/en-US/docs/Web/API/URL/search).\n newAttributes[semantic_conventions_1.ATTR_URL_QUERY] = parsedUrl.search.slice(1);\n }\n if (remoteClientAddress != null) {\n newAttributes[semantic_conventions_1.ATTR_CLIENT_ADDRESS] = remoteClientAddress;\n }\n if (serverAddress?.port != null) {\n newAttributes[semantic_conventions_1.ATTR_SERVER_PORT] = Number(serverAddress.port);\n }\n // Conditionally required if request method required case normalization.\n if (method !== normalizedMethod) {\n newAttributes[semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD_ORIGINAL] = method;\n }\n if (enableSyntheticSourceDetection && userAgent) {\n newAttributes[semconv_1.ATTR_USER_AGENT_SYNTHETIC_TYPE] =\n getSyntheticType(userAgent);\n }\n }\n if (semconvStability !== instrumentation_1.SemconvStability.STABLE) {\n // Old attributes are used.\n const hostname = host?.replace(/^(.*)(:[0-9]{1,5})/, '$1') || 'localhost';\n oldAttributes = {\n [semconv_1.ATTR_HTTP_URL]: parsedUrl.toString(),\n [semconv_1.ATTR_HTTP_HOST]: host,\n [semconv_1.ATTR_NET_HOST_NAME]: hostname,\n [semconv_1.ATTR_HTTP_METHOD]: method,\n [semconv_1.ATTR_HTTP_SCHEME]: component,\n };\n if (typeof ips === 'string') {\n oldAttributes[semconv_1.ATTR_HTTP_CLIENT_IP] = ips.split(',')[0];\n }\n if (typeof serverName === 'string') {\n oldAttributes[semconv_1.ATTR_HTTP_SERVER_NAME] = serverName;\n }\n if (parsedUrl.pathname) {\n oldAttributes[semconv_1.ATTR_HTTP_TARGET] =\n parsedUrl.pathname + parsedUrl.search || '/';\n }\n if (userAgent !== undefined) {\n oldAttributes[semconv_1.ATTR_HTTP_USER_AGENT] = userAgent;\n }\n (0, exports.setRequestContentLengthAttribute)(request, oldAttributes);\n (0, exports.setAttributesFromHttpKind)(httpVersion, oldAttributes);\n }\n switch (semconvStability) {\n case instrumentation_1.SemconvStability.STABLE:\n return Object.assign(newAttributes, hookAttributes);\n case instrumentation_1.SemconvStability.OLD:\n return Object.assign(oldAttributes, hookAttributes);\n default:\n return Object.assign(oldAttributes, newAttributes, hookAttributes);\n }\n};\nexports.getIncomingRequestAttributes = getIncomingRequestAttributes;\n/**\n * Returns incoming request Metric attributes scoped to the request data\n * @param {Attributes} spanAttributes the span attributes\n * @param {{ component: string }} options used to pass data needed to create attributes\n */\nconst getIncomingRequestMetricAttributes = (spanAttributes) => {\n const metricAttributes = {};\n metricAttributes[semconv_1.ATTR_HTTP_SCHEME] = spanAttributes[semconv_1.ATTR_HTTP_SCHEME];\n metricAttributes[semconv_1.ATTR_HTTP_METHOD] = spanAttributes[semconv_1.ATTR_HTTP_METHOD];\n metricAttributes[semconv_1.ATTR_NET_HOST_NAME] = spanAttributes[semconv_1.ATTR_NET_HOST_NAME];\n metricAttributes[semconv_1.ATTR_HTTP_FLAVOR] = spanAttributes[semconv_1.ATTR_HTTP_FLAVOR];\n //TODO: http.target attribute, it should substitute any parameters to avoid high cardinality.\n return metricAttributes;\n};\nexports.getIncomingRequestMetricAttributes = getIncomingRequestMetricAttributes;\n/**\n * Returns incoming request attributes scoped to the response data\n * @param {(ServerResponse & { socket: Socket; })} response the response object\n */\nconst getIncomingRequestAttributesOnResponse = (request, response, semconvStability) => {\n // take socket from the request,\n // since it may be detached from the response object in keep-alive mode\n const { socket } = request;\n const { statusCode, statusMessage } = response;\n const newAttributes = {\n [semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE]: statusCode,\n };\n const rpcMetadata = (0, core_1.getRPCMetadata)(api_1.context.active());\n const oldAttributes = {};\n if (socket) {\n const { localAddress, localPort, remoteAddress, remotePort } = socket;\n oldAttributes[semconv_1.ATTR_NET_HOST_IP] = localAddress;\n oldAttributes[semconv_1.ATTR_NET_HOST_PORT] = localPort;\n oldAttributes[semconv_1.ATTR_NET_PEER_IP] = remoteAddress;\n oldAttributes[semconv_1.ATTR_NET_PEER_PORT] = remotePort;\n }\n oldAttributes[semconv_1.ATTR_HTTP_STATUS_CODE] = statusCode;\n oldAttributes[AttributeNames_1.AttributeNames.HTTP_STATUS_TEXT] = (statusMessage || '').toUpperCase();\n if (rpcMetadata?.type === core_1.RPCType.HTTP && rpcMetadata.route !== undefined) {\n oldAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE] = rpcMetadata.route;\n newAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE] = rpcMetadata.route;\n }\n switch (semconvStability) {\n case instrumentation_1.SemconvStability.STABLE:\n return newAttributes;\n case instrumentation_1.SemconvStability.OLD:\n return oldAttributes;\n }\n return Object.assign(oldAttributes, newAttributes);\n};\nexports.getIncomingRequestAttributesOnResponse = getIncomingRequestAttributesOnResponse;\n/**\n * Returns incoming request Metric attributes scoped to the request data\n * @param {Attributes} spanAttributes the span attributes\n */\nconst getIncomingRequestMetricAttributesOnResponse = (spanAttributes) => {\n const metricAttributes = {};\n metricAttributes[semconv_1.ATTR_HTTP_STATUS_CODE] =\n spanAttributes[semconv_1.ATTR_HTTP_STATUS_CODE];\n metricAttributes[semconv_1.ATTR_NET_HOST_PORT] = spanAttributes[semconv_1.ATTR_NET_HOST_PORT];\n if (spanAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE] !== undefined) {\n metricAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE] = spanAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE];\n }\n return metricAttributes;\n};\nexports.getIncomingRequestMetricAttributesOnResponse = getIncomingRequestMetricAttributesOnResponse;\n/**\n * Returns incoming stable request Metric attributes scoped to the request data\n * @param {Attributes} spanAttributes the span attributes\n */\nconst getIncomingStableRequestMetricAttributesOnResponse = (spanAttributes) => {\n const metricAttributes = {};\n if (spanAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE] !== undefined) {\n metricAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE] = spanAttributes[semantic_conventions_1.ATTR_HTTP_ROUTE];\n }\n // required if and only if one was sent, same as span requirement\n if (spanAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE]) {\n metricAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE] =\n spanAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE];\n }\n return metricAttributes;\n};\nexports.getIncomingStableRequestMetricAttributesOnResponse = getIncomingStableRequestMetricAttributesOnResponse;\nfunction headerCapture(type, headers, semconvStability) {\n const normalizedHeaders = new Map();\n for (let i = 0, len = headers.length; i < len; i++) {\n const capturedHeader = headers[i].toLowerCase();\n if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n normalizedHeaders.set(capturedHeader, capturedHeader);\n }\n else {\n // In old semconv, the header name converted hypen to underscore, e.g.:\n // `http.request.header.content_length`.\n normalizedHeaders.set(capturedHeader, capturedHeader.replaceAll('-', '_'));\n }\n }\n return (getHeader) => {\n const attributes = {};\n for (const capturedHeader of normalizedHeaders.keys()) {\n const value = getHeader(capturedHeader);\n if (value === undefined) {\n continue;\n }\n const normalizedHeader = normalizedHeaders.get(capturedHeader);\n const key = `http.${type}.header.${normalizedHeader}`;\n if (typeof value === 'string') {\n attributes[key] = [value];\n }\n else if (Array.isArray(value)) {\n attributes[key] = value;\n }\n else {\n attributes[key] = [value];\n }\n }\n return attributes;\n };\n}\nexports.headerCapture = headerCapture;\nconst KNOWN_METHODS = new Set([\n // methods from https://www.rfc-editor.org/rfc/rfc9110.html#name-methods\n 'GET',\n 'HEAD',\n 'POST',\n 'PUT',\n 'DELETE',\n 'CONNECT',\n 'OPTIONS',\n 'TRACE',\n // PATCH from https://www.rfc-editor.org/rfc/rfc5789.html\n 'PATCH',\n // QUERY from https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/\n 'QUERY',\n]);\nfunction normalizeMethod(method) {\n if (method == null) {\n return 'GET';\n }\n const upper = method.toUpperCase();\n if (KNOWN_METHODS.has(upper)) {\n return upper;\n }\n return '_OTHER';\n}\nfunction parseForwardedHeader(header) {\n try {\n return forwardedParse(header);\n }\n catch {\n return [];\n }\n}\n//# sourceMappingURL=utils.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpInstrumentation = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst url = require(\"url\");\nconst version_1 = require(\"./version\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst events_1 = require(\"events\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst utils_1 = require(\"./utils\");\n/**\n * `node:http` and `node:https` instrumentation for OpenTelemetry\n */\nclass HttpInstrumentation extends instrumentation_1.InstrumentationBase {\n /** keep track on spans not ended */\n _spanNotEnded = new WeakSet();\n _headerCapture;\n _httpPatched = false;\n _httpsPatched = false;\n _semconvStability = instrumentation_1.SemconvStability.OLD;\n constructor(config = {}) {\n super('@opentelemetry/instrumentation-http', version_1.VERSION, config);\n this._semconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n this._headerCapture = this._createHeaderCapture(this._semconvStability);\n }\n _updateMetricInstruments() {\n this._oldHttpServerDurationHistogram = this.meter.createHistogram('http.server.duration', {\n description: 'Measures the duration of inbound HTTP requests.',\n unit: 'ms',\n valueType: api_1.ValueType.DOUBLE,\n });\n this._oldHttpClientDurationHistogram = this.meter.createHistogram('http.client.duration', {\n description: 'Measures the duration of outbound HTTP requests.',\n unit: 'ms',\n valueType: api_1.ValueType.DOUBLE,\n });\n this._stableHttpServerDurationHistogram = this.meter.createHistogram(semantic_conventions_1.METRIC_HTTP_SERVER_REQUEST_DURATION, {\n description: 'Duration of HTTP server requests.',\n unit: 's',\n valueType: api_1.ValueType.DOUBLE,\n advice: {\n explicitBucketBoundaries: [\n 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5,\n 7.5, 10,\n ],\n },\n });\n this._stableHttpClientDurationHistogram = this.meter.createHistogram(semantic_conventions_1.METRIC_HTTP_CLIENT_REQUEST_DURATION, {\n description: 'Duration of HTTP client requests.',\n unit: 's',\n valueType: api_1.ValueType.DOUBLE,\n advice: {\n explicitBucketBoundaries: [\n 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5,\n 7.5, 10,\n ],\n },\n });\n }\n _recordServerDuration(durationMs, oldAttributes, stableAttributes) {\n if (this._semconvStability & instrumentation_1.SemconvStability.OLD) {\n // old histogram is counted in MS\n this._oldHttpServerDurationHistogram.record(durationMs, oldAttributes);\n }\n if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n // stable histogram is counted in S\n this._stableHttpServerDurationHistogram.record(durationMs / 1000, stableAttributes);\n }\n }\n _recordClientDuration(durationMs, oldAttributes, stableAttributes) {\n if (this._semconvStability & instrumentation_1.SemconvStability.OLD) {\n // old histogram is counted in MS\n this._oldHttpClientDurationHistogram.record(durationMs, oldAttributes);\n }\n if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n // stable histogram is counted in S\n this._stableHttpClientDurationHistogram.record(durationMs / 1000, stableAttributes);\n }\n }\n setConfig(config = {}) {\n super.setConfig(config);\n this._headerCapture = this._createHeaderCapture(this._semconvStability);\n }\n init() {\n return [this._getHttpsInstrumentation(), this._getHttpInstrumentation()];\n }\n _getHttpInstrumentation() {\n return new instrumentation_1.InstrumentationNodeModuleDefinition('http', ['*'], (moduleExports) => {\n // Guard against double-instrumentation, if loaded by both `require`\n // and `import`.\n if (this._httpPatched) {\n return moduleExports;\n }\n this._httpPatched = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isESM = moduleExports[Symbol.toStringTag] === 'Module';\n if (!this.getConfig().disableOutgoingRequestInstrumentation) {\n const patchedRequest = this._wrap(moduleExports, 'request', this._getPatchOutgoingRequestFunction('http'));\n const patchedGet = this._wrap(moduleExports, 'get', this._getPatchOutgoingGetFunction(patchedRequest));\n if (isESM) {\n // To handle `import http from 'http'`, which returns the default\n // export, we need to set `module.default.*`.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n moduleExports.default.request = patchedRequest;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n moduleExports.default.get = patchedGet;\n }\n }\n if (!this.getConfig().disableIncomingRequestInstrumentation) {\n this._wrap(moduleExports.Server.prototype, 'emit', this._getPatchIncomingRequestFunction('http'));\n }\n return moduleExports;\n }, (moduleExports) => {\n this._httpPatched = false;\n if (moduleExports === undefined)\n return;\n if (!this.getConfig().disableOutgoingRequestInstrumentation) {\n this._unwrap(moduleExports, 'request');\n this._unwrap(moduleExports, 'get');\n }\n if (!this.getConfig().disableIncomingRequestInstrumentation) {\n this._unwrap(moduleExports.Server.prototype, 'emit');\n }\n });\n }\n _getHttpsInstrumentation() {\n return new instrumentation_1.InstrumentationNodeModuleDefinition('https', ['*'], (moduleExports) => {\n // Guard against double-instrumentation, if loaded by both `require`\n // and `import`.\n if (this._httpsPatched) {\n return moduleExports;\n }\n this._httpsPatched = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isESM = moduleExports[Symbol.toStringTag] === 'Module';\n if (!this.getConfig().disableOutgoingRequestInstrumentation) {\n const patchedRequest = this._wrap(moduleExports, 'request', this._getPatchHttpsOutgoingRequestFunction('https'));\n const patchedGet = this._wrap(moduleExports, 'get', this._getPatchHttpsOutgoingGetFunction(patchedRequest));\n if (isESM) {\n // To handle `import https from 'https'`, which returns the default\n // export, we need to set `module.default.*`.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n moduleExports.default.request = patchedRequest;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n moduleExports.default.get = patchedGet;\n }\n }\n if (!this.getConfig().disableIncomingRequestInstrumentation) {\n this._wrap(moduleExports.Server.prototype, 'emit', this._getPatchIncomingRequestFunction('https'));\n }\n return moduleExports;\n }, (moduleExports) => {\n this._httpsPatched = false;\n if (moduleExports === undefined)\n return;\n if (!this.getConfig().disableOutgoingRequestInstrumentation) {\n this._unwrap(moduleExports, 'request');\n this._unwrap(moduleExports, 'get');\n }\n if (!this.getConfig().disableIncomingRequestInstrumentation) {\n this._unwrap(moduleExports.Server.prototype, 'emit');\n }\n });\n }\n /**\n * Creates spans for incoming requests, restoring spans' context if applied.\n */\n _getPatchIncomingRequestFunction(component) {\n return (original) => {\n return this._incomingRequestFunction(component, original);\n };\n }\n /**\n * Creates spans for outgoing requests, sending spans' context for distributed\n * tracing.\n */\n _getPatchOutgoingRequestFunction(component) {\n return (original) => {\n return this._outgoingRequestFunction(component, original);\n };\n }\n _getPatchOutgoingGetFunction(clientRequest) {\n return (_original) => {\n // Re-implement http.get. This needs to be done (instead of using\n // getPatchOutgoingRequestFunction to patch it) because we need to\n // set the trace context header before the returned http.ClientRequest is\n // ended. The Node.js docs state that the only differences between\n // request and get are that (1) get defaults to the HTTP GET method and\n // (2) the returned request object is ended immediately. The former is\n // already true (at least in supported Node versions up to v10), so we\n // simply follow the latter. Ref:\n // https://nodejs.org/dist/latest/docs/api/http.html#http_http_get_options_callback\n // https://github.com/googleapis/cloud-trace-nodejs/blob/master/src/instrumentations/instrumentation-http.ts#L198\n return function outgoingGetRequest(options, ...args) {\n const req = clientRequest(options, ...args);\n req.end();\n return req;\n };\n };\n }\n /** Patches HTTPS outgoing requests */\n _getPatchHttpsOutgoingRequestFunction(component) {\n return (original) => {\n const instrumentation = this;\n return function httpsOutgoingRequest(\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n options, ...args) {\n // Makes sure options will have default HTTPS parameters\n if (component === 'https' &&\n typeof options === 'object' &&\n options?.constructor?.name !== 'URL') {\n options = Object.assign({}, options);\n instrumentation._setDefaultOptions(options);\n }\n return instrumentation._getPatchOutgoingRequestFunction(component)(original)(options, ...args);\n };\n };\n }\n _setDefaultOptions(options) {\n options.protocol = options.protocol || 'https:';\n options.port = options.port || 443;\n }\n /** Patches HTTPS outgoing get requests */\n _getPatchHttpsOutgoingGetFunction(clientRequest) {\n return (original) => {\n const instrumentation = this;\n return function httpsOutgoingRequest(\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n options, ...args) {\n return instrumentation._getPatchOutgoingGetFunction(clientRequest)(original)(options, ...args);\n };\n };\n }\n /**\n * Attach event listeners to a client request to end span and add span attributes.\n *\n * @param request The original request object.\n * @param span representing the current operation\n * @param startTime representing the start time of the request to calculate duration in Metric\n * @param oldMetricAttributes metric attributes for old semantic conventions\n * @param stableMetricAttributes metric attributes for new semantic conventions\n */\n _traceClientRequest(request, span, startTime, oldMetricAttributes, stableMetricAttributes) {\n if (this.getConfig().requestHook) {\n this._callRequestHook(span, request);\n }\n /**\n * Determines if the request has errored or the response has ended/errored.\n */\n let responseFinished = false;\n /*\n * User 'response' event listeners can be added before our listener,\n * force our listener to be the first, so response emitter is bound\n * before any user listeners are added to it.\n */\n request.prependListener('response', (response) => {\n this._diag.debug('outgoingRequest on response()');\n if (request.listenerCount('response') <= 1) {\n response.resume();\n }\n const responseAttributes = (0, utils_1.getOutgoingRequestAttributesOnResponse)(response, this._semconvStability);\n span.setAttributes(responseAttributes);\n oldMetricAttributes = Object.assign(oldMetricAttributes, (0, utils_1.getOutgoingRequestMetricAttributesOnResponse)(responseAttributes));\n stableMetricAttributes = Object.assign(stableMetricAttributes, (0, utils_1.getOutgoingStableRequestMetricAttributesOnResponse)(responseAttributes));\n if (this.getConfig().responseHook) {\n this._callResponseHook(span, response);\n }\n span.setAttributes(this._headerCapture.client.captureRequestHeaders(header => request.getHeader(header)));\n span.setAttributes(this._headerCapture.client.captureResponseHeaders(header => response.headers[header]));\n api_1.context.bind(api_1.context.active(), response);\n const endHandler = () => {\n this._diag.debug('outgoingRequest on end()');\n if (responseFinished) {\n return;\n }\n responseFinished = true;\n let status;\n if (response.aborted && !response.complete) {\n status = { code: api_1.SpanStatusCode.ERROR };\n }\n else {\n // behaves same for new and old semconv\n status = {\n code: (0, utils_1.parseResponseStatus)(api_1.SpanKind.CLIENT, response.statusCode),\n };\n }\n span.setStatus(status);\n if (this.getConfig().applyCustomAttributesOnSpan) {\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => this.getConfig().applyCustomAttributesOnSpan(span, request, response), () => { }, true);\n }\n this._closeHttpSpan(span, api_1.SpanKind.CLIENT, startTime, oldMetricAttributes, stableMetricAttributes);\n };\n response.on('end', endHandler);\n response.on(events_1.errorMonitor, (error) => {\n this._diag.debug('outgoingRequest on error()', error);\n if (responseFinished) {\n return;\n }\n responseFinished = true;\n this._onOutgoingRequestError(span, oldMetricAttributes, stableMetricAttributes, startTime, error);\n });\n });\n request.on('close', () => {\n this._diag.debug('outgoingRequest on request close()');\n if (request.aborted || responseFinished) {\n return;\n }\n responseFinished = true;\n this._closeHttpSpan(span, api_1.SpanKind.CLIENT, startTime, oldMetricAttributes, stableMetricAttributes);\n });\n request.on(events_1.errorMonitor, (error) => {\n this._diag.debug('outgoingRequest on request error()', error);\n if (responseFinished) {\n return;\n }\n responseFinished = true;\n this._onOutgoingRequestError(span, oldMetricAttributes, stableMetricAttributes, startTime, error);\n });\n this._diag.debug('http.ClientRequest return request');\n return request;\n }\n _incomingRequestFunction(component, original) {\n const instrumentation = this;\n return function incomingRequest(event, ...args) {\n // Only traces request events\n if (event !== 'request') {\n return original.apply(this, [event, ...args]);\n }\n const request = args[0];\n const response = args[1];\n const method = request.method || 'GET';\n instrumentation._diag.debug(`${component} instrumentation incomingRequest`);\n if ((0, instrumentation_1.safeExecuteInTheMiddle)(() => instrumentation.getConfig().ignoreIncomingRequestHook?.(request), (e) => {\n if (e != null) {\n instrumentation._diag.error('caught ignoreIncomingRequestHook error: ', e);\n }\n }, true)) {\n return api_1.context.with((0, core_1.suppressTracing)(api_1.context.active()), () => {\n api_1.context.bind(api_1.context.active(), request);\n api_1.context.bind(api_1.context.active(), response);\n return original.apply(this, [event, ...args]);\n });\n }\n const headers = request.headers;\n const spanAttributes = (0, utils_1.getIncomingRequestAttributes)(request, {\n component: component,\n serverName: instrumentation.getConfig().serverName,\n hookAttributes: instrumentation._callStartSpanHook(request, instrumentation.getConfig().startIncomingSpanHook),\n semconvStability: instrumentation._semconvStability,\n enableSyntheticSourceDetection: instrumentation.getConfig().enableSyntheticSourceDetection || false,\n }, instrumentation._diag);\n Object.assign(spanAttributes, instrumentation._headerCapture.server.captureRequestHeaders(header => request.headers[header]));\n const spanOptions = {\n kind: api_1.SpanKind.SERVER,\n attributes: spanAttributes,\n };\n const startTime = (0, core_1.hrTime)();\n const oldMetricAttributes = (0, utils_1.getIncomingRequestMetricAttributes)(spanAttributes);\n // request method and url.scheme are both required span attributes\n const stableMetricAttributes = {\n [semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD]: spanAttributes[semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD],\n [semantic_conventions_1.ATTR_URL_SCHEME]: spanAttributes[semantic_conventions_1.ATTR_URL_SCHEME],\n };\n // recommended if and only if one was sent, same as span recommendation\n if (spanAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION]) {\n stableMetricAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION] =\n spanAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION];\n }\n const ctx = api_1.propagation.extract(api_1.ROOT_CONTEXT, headers);\n const span = instrumentation._startHttpSpan(method, spanOptions, ctx);\n const rpcMetadata = {\n type: core_1.RPCType.HTTP,\n span,\n };\n return api_1.context.with((0, core_1.setRPCMetadata)(api_1.trace.setSpan(ctx, span), rpcMetadata), () => {\n api_1.context.bind(api_1.context.active(), request);\n api_1.context.bind(api_1.context.active(), response);\n if (instrumentation.getConfig().requestHook) {\n instrumentation._callRequestHook(span, request);\n }\n if (instrumentation.getConfig().responseHook) {\n instrumentation._callResponseHook(span, response);\n }\n // After 'error', no further events other than 'close' should be emitted.\n let hasError = false;\n response.on('close', () => {\n if (hasError) {\n return;\n }\n instrumentation._onServerResponseFinish(request, response, span, oldMetricAttributes, stableMetricAttributes, startTime);\n });\n response.on(events_1.errorMonitor, (err) => {\n hasError = true;\n instrumentation._onServerResponseError(span, oldMetricAttributes, stableMetricAttributes, startTime, err);\n });\n return (0, instrumentation_1.safeExecuteInTheMiddle)(() => original.apply(this, [event, ...args]), error => {\n if (error) {\n instrumentation._onServerResponseError(span, oldMetricAttributes, stableMetricAttributes, startTime, error);\n throw error;\n }\n });\n });\n };\n }\n _outgoingRequestFunction(component, original) {\n const instrumentation = this;\n return function outgoingRequest(options, ...args) {\n if (!(0, utils_1.isValidOptionsType)(options)) {\n return original.apply(this, [options, ...args]);\n }\n const extraOptions = typeof args[0] === 'object' &&\n (typeof options === 'string' || options instanceof url.URL)\n ? args.shift()\n : undefined;\n const { method, invalidUrl, optionsParsed } = (0, utils_1.getRequestInfo)(instrumentation._diag, options, extraOptions);\n if ((0, instrumentation_1.safeExecuteInTheMiddle)(() => instrumentation\n .getConfig()\n .ignoreOutgoingRequestHook?.(optionsParsed), (e) => {\n if (e != null) {\n instrumentation._diag.error('caught ignoreOutgoingRequestHook error: ', e);\n }\n }, true)) {\n return original.apply(this, [optionsParsed, ...args]);\n }\n const { hostname, port } = (0, utils_1.extractHostnameAndPort)(optionsParsed);\n const attributes = (0, utils_1.getOutgoingRequestAttributes)(optionsParsed, {\n component,\n port,\n hostname,\n hookAttributes: instrumentation._callStartSpanHook(optionsParsed, instrumentation.getConfig().startOutgoingSpanHook),\n redactedQueryParams: instrumentation.getConfig().redactedQueryParams, // Added config for adding custom query strings\n }, instrumentation._semconvStability, instrumentation.getConfig().enableSyntheticSourceDetection || false);\n const startTime = (0, core_1.hrTime)();\n const oldMetricAttributes = (0, utils_1.getOutgoingRequestMetricAttributes)(attributes);\n // request method, server address, and server port are both required span attributes\n const stableMetricAttributes = {\n [semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD]: attributes[semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD],\n [semantic_conventions_1.ATTR_SERVER_ADDRESS]: attributes[semantic_conventions_1.ATTR_SERVER_ADDRESS],\n [semantic_conventions_1.ATTR_SERVER_PORT]: attributes[semantic_conventions_1.ATTR_SERVER_PORT],\n };\n // required if and only if one was sent, same as span requirement\n if (attributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE]) {\n stableMetricAttributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE] =\n attributes[semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE];\n }\n // recommended if and only if one was sent, same as span recommendation\n if (attributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION]) {\n stableMetricAttributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION] =\n attributes[semantic_conventions_1.ATTR_NETWORK_PROTOCOL_VERSION];\n }\n const spanOptions = {\n kind: api_1.SpanKind.CLIENT,\n attributes,\n };\n const span = instrumentation._startHttpSpan(method, spanOptions);\n const parentContext = api_1.context.active();\n const requestContext = api_1.trace.setSpan(parentContext, span);\n if (!optionsParsed.headers) {\n optionsParsed.headers = {};\n }\n else {\n // Make a copy of the headers object to avoid mutating an object the\n // caller might have a reference to.\n optionsParsed.headers = Object.assign({}, optionsParsed.headers);\n }\n api_1.propagation.inject(requestContext, optionsParsed.headers);\n return api_1.context.with(requestContext, () => {\n /*\n * The response callback is registered before ClientRequest is bound,\n * thus it is needed to bind it before the function call.\n */\n const cb = args[args.length - 1];\n if (typeof cb === 'function') {\n args[args.length - 1] = api_1.context.bind(parentContext, cb);\n }\n const request = (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n if (invalidUrl) {\n // we know that the url is invalid, there's no point in injecting context as it will fail validation.\n // Passing in what the user provided will give the user an error that matches what they'd see without\n // the instrumentation.\n return original.apply(this, [options, ...args]);\n }\n else {\n return original.apply(this, [optionsParsed, ...args]);\n }\n }, error => {\n if (error) {\n instrumentation._onOutgoingRequestError(span, oldMetricAttributes, stableMetricAttributes, startTime, error);\n throw error;\n }\n });\n instrumentation._diag.debug(`${component} instrumentation outgoingRequest`);\n api_1.context.bind(parentContext, request);\n return instrumentation._traceClientRequest(request, span, startTime, oldMetricAttributes, stableMetricAttributes);\n });\n };\n }\n _onServerResponseFinish(request, response, span, oldMetricAttributes, stableMetricAttributes, startTime) {\n const attributes = (0, utils_1.getIncomingRequestAttributesOnResponse)(request, response, this._semconvStability);\n oldMetricAttributes = Object.assign(oldMetricAttributes, (0, utils_1.getIncomingRequestMetricAttributesOnResponse)(attributes));\n stableMetricAttributes = Object.assign(stableMetricAttributes, (0, utils_1.getIncomingStableRequestMetricAttributesOnResponse)(attributes));\n span.setAttributes(this._headerCapture.server.captureResponseHeaders(header => response.getHeader(header)));\n span.setAttributes(attributes).setStatus({\n code: (0, utils_1.parseResponseStatus)(api_1.SpanKind.SERVER, response.statusCode),\n });\n const route = attributes[semantic_conventions_1.ATTR_HTTP_ROUTE];\n if (route) {\n span.updateName(`${request.method || 'GET'} ${route}`);\n }\n if (this.getConfig().applyCustomAttributesOnSpan) {\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => this.getConfig().applyCustomAttributesOnSpan(span, request, response), () => { }, true);\n }\n this._closeHttpSpan(span, api_1.SpanKind.SERVER, startTime, oldMetricAttributes, stableMetricAttributes);\n }\n _onOutgoingRequestError(span, oldMetricAttributes, stableMetricAttributes, startTime, error) {\n (0, utils_1.setSpanWithError)(span, error, this._semconvStability);\n stableMetricAttributes[semantic_conventions_1.ATTR_ERROR_TYPE] = error.name;\n this._closeHttpSpan(span, api_1.SpanKind.CLIENT, startTime, oldMetricAttributes, stableMetricAttributes);\n }\n _onServerResponseError(span, oldMetricAttributes, stableMetricAttributes, startTime, error) {\n (0, utils_1.setSpanWithError)(span, error, this._semconvStability);\n stableMetricAttributes[semantic_conventions_1.ATTR_ERROR_TYPE] = error.name;\n this._closeHttpSpan(span, api_1.SpanKind.SERVER, startTime, oldMetricAttributes, stableMetricAttributes);\n }\n _startHttpSpan(name, options, ctx = api_1.context.active()) {\n /*\n * If a parent is required but not present, we use a `NoopSpan` to still\n * propagate context without recording it.\n */\n const requireParent = options.kind === api_1.SpanKind.CLIENT\n ? this.getConfig().requireParentforOutgoingSpans\n : this.getConfig().requireParentforIncomingSpans;\n let span;\n const currentSpan = api_1.trace.getSpan(ctx);\n if (requireParent === true &&\n (!currentSpan || !api_1.trace.isSpanContextValid(currentSpan.spanContext()))) {\n span = api_1.trace.wrapSpanContext(api_1.INVALID_SPAN_CONTEXT);\n }\n else if (requireParent === true && currentSpan?.spanContext().isRemote) {\n span = currentSpan;\n }\n else {\n span = this.tracer.startSpan(name, options, ctx);\n }\n this._spanNotEnded.add(span);\n return span;\n }\n _closeHttpSpan(span, spanKind, startTime, oldMetricAttributes, stableMetricAttributes) {\n if (!this._spanNotEnded.has(span)) {\n return;\n }\n span.end();\n this._spanNotEnded.delete(span);\n // Record metrics\n const duration = (0, core_1.hrTimeToMilliseconds)((0, core_1.hrTimeDuration)(startTime, (0, core_1.hrTime)()));\n if (spanKind === api_1.SpanKind.SERVER) {\n this._recordServerDuration(duration, oldMetricAttributes, stableMetricAttributes);\n }\n else if (spanKind === api_1.SpanKind.CLIENT) {\n this._recordClientDuration(duration, oldMetricAttributes, stableMetricAttributes);\n }\n }\n _callResponseHook(span, response) {\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => this.getConfig().responseHook(span, response), () => { }, true);\n }\n _callRequestHook(span, request) {\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => this.getConfig().requestHook(span, request), () => { }, true);\n }\n _callStartSpanHook(request, hookFunc) {\n if (typeof hookFunc === 'function') {\n return (0, instrumentation_1.safeExecuteInTheMiddle)(() => hookFunc(request), () => { }, true);\n }\n }\n _createHeaderCapture(semconvStability) {\n const config = this.getConfig();\n return {\n client: {\n captureRequestHeaders: (0, utils_1.headerCapture)('request', config.headersToSpanAttributes?.client?.requestHeaders ?? [], semconvStability),\n captureResponseHeaders: (0, utils_1.headerCapture)('response', config.headersToSpanAttributes?.client?.responseHeaders ?? [], semconvStability),\n },\n server: {\n captureRequestHeaders: (0, utils_1.headerCapture)('request', config.headersToSpanAttributes?.server?.requestHeaders ?? [], semconvStability),\n captureResponseHeaders: (0, utils_1.headerCapture)('response', config.headersToSpanAttributes?.server?.responseHeaders ?? [], semconvStability),\n },\n };\n }\n}\nexports.HttpInstrumentation = HttpInstrumentation;\n//# sourceMappingURL=http.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpInstrumentation = void 0;\nvar http_1 = require(\"./http\");\nObject.defineProperty(exports, \"HttpInstrumentation\", { enumerable: true, get: function () { return http_1.HttpInstrumentation; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTracingSuppressed = exports.unsuppressTracing = exports.suppressTracing = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst SUPPRESS_TRACING_KEY = (0, api_1.createContextKey)('OpenTelemetry SDK Context Key SUPPRESS_TRACING');\nfunction suppressTracing(context) {\n return context.setValue(SUPPRESS_TRACING_KEY, true);\n}\nexports.suppressTracing = suppressTracing;\nfunction unsuppressTracing(context) {\n return context.deleteValue(SUPPRESS_TRACING_KEY);\n}\nexports.unsuppressTracing = unsuppressTracing;\nfunction isTracingSuppressed(context) {\n return context.getValue(SUPPRESS_TRACING_KEY) === true;\n}\nexports.isTracingSuppressed = isTracingSuppressed;\n//# sourceMappingURL=suppress-tracing.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BAGGAGE_MAX_TOTAL_LENGTH = exports.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS = exports.BAGGAGE_MAX_NAME_VALUE_PAIRS = exports.BAGGAGE_HEADER = exports.BAGGAGE_ITEMS_SEPARATOR = exports.BAGGAGE_PROPERTIES_SEPARATOR = exports.BAGGAGE_KEY_PAIR_SEPARATOR = void 0;\nexports.BAGGAGE_KEY_PAIR_SEPARATOR = '=';\nexports.BAGGAGE_PROPERTIES_SEPARATOR = ';';\nexports.BAGGAGE_ITEMS_SEPARATOR = ',';\n// Name of the http header used to propagate the baggage\nexports.BAGGAGE_HEADER = 'baggage';\n// Maximum number of name-value pairs allowed by w3c spec\nexports.BAGGAGE_MAX_NAME_VALUE_PAIRS = 180;\n// Maximum number of bytes per a single name-value pair allowed by w3c spec\nexports.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS = 4096;\n// Maximum total length of all name-value pairs allowed by w3c spec\nexports.BAGGAGE_MAX_TOTAL_LENGTH = 8192;\n//# sourceMappingURL=constants.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseKeyPairsIntoRecord = exports.parsePairKeyValue = exports.getKeyPairs = exports.serializeKeyPairs = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst constants_1 = require(\"./constants\");\nfunction serializeKeyPairs(keyPairs) {\n return keyPairs.reduce((hValue, current) => {\n const value = `${hValue}${hValue !== '' ? constants_1.BAGGAGE_ITEMS_SEPARATOR : ''}${current}`;\n return value.length > constants_1.BAGGAGE_MAX_TOTAL_LENGTH ? hValue : value;\n }, '');\n}\nexports.serializeKeyPairs = serializeKeyPairs;\nfunction getKeyPairs(baggage) {\n return baggage.getAllEntries().map(([key, value]) => {\n let entry = `${encodeURIComponent(key)}=${encodeURIComponent(value.value)}`;\n // include opaque metadata if provided\n // NOTE: we intentionally don't URI-encode the metadata - that responsibility falls on the metadata implementation\n if (value.metadata !== undefined) {\n entry += constants_1.BAGGAGE_PROPERTIES_SEPARATOR + value.metadata.toString();\n }\n return entry;\n });\n}\nexports.getKeyPairs = getKeyPairs;\nfunction parsePairKeyValue(entry) {\n if (!entry)\n return;\n const metadataSeparatorIndex = entry.indexOf(constants_1.BAGGAGE_PROPERTIES_SEPARATOR);\n const keyPairPart = metadataSeparatorIndex === -1\n ? entry\n : entry.substring(0, metadataSeparatorIndex);\n const separatorIndex = keyPairPart.indexOf(constants_1.BAGGAGE_KEY_PAIR_SEPARATOR);\n if (separatorIndex <= 0)\n return;\n const rawKey = keyPairPart.substring(0, separatorIndex).trim();\n const rawValue = keyPairPart.substring(separatorIndex + 1).trim();\n if (!rawKey || !rawValue)\n return;\n let key;\n let value;\n try {\n key = decodeURIComponent(rawKey);\n value = decodeURIComponent(rawValue);\n }\n catch {\n return;\n }\n let metadata;\n if (metadataSeparatorIndex !== -1 &&\n metadataSeparatorIndex < entry.length - 1) {\n const metadataString = entry.substring(metadataSeparatorIndex + 1);\n metadata = (0, api_1.baggageEntryMetadataFromString)(metadataString);\n }\n return { key, value, metadata };\n}\nexports.parsePairKeyValue = parsePairKeyValue;\n/**\n * Parse a string serialized in the baggage HTTP Format (without metadata):\n * https://github.com/w3c/baggage/blob/master/baggage/HTTP_HEADER_FORMAT.md\n */\nfunction parseKeyPairsIntoRecord(value) {\n const result = {};\n if (typeof value === 'string' && value.length > 0) {\n value.split(constants_1.BAGGAGE_ITEMS_SEPARATOR).forEach(entry => {\n const keyPair = parsePairKeyValue(entry);\n if (keyPair !== undefined && keyPair.value.length > 0) {\n result[keyPair.key] = keyPair.value;\n }\n });\n }\n return result;\n}\nexports.parseKeyPairsIntoRecord = parseKeyPairsIntoRecord;\n//# sourceMappingURL=utils.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.W3CBaggagePropagator = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst suppress_tracing_1 = require(\"../../trace/suppress-tracing\");\nconst constants_1 = require(\"../constants\");\nconst utils_1 = require(\"../utils\");\n/**\n * Propagates {@link Baggage} through Context format propagation.\n *\n * Based on the Baggage specification:\n * https://w3c.github.io/baggage/\n */\nclass W3CBaggagePropagator {\n inject(context, carrier, setter) {\n const baggage = api_1.propagation.getBaggage(context);\n if (!baggage || (0, suppress_tracing_1.isTracingSuppressed)(context))\n return;\n const keyPairs = (0, utils_1.getKeyPairs)(baggage)\n .filter((pair) => {\n return pair.length <= constants_1.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS;\n })\n .slice(0, constants_1.BAGGAGE_MAX_NAME_VALUE_PAIRS);\n const headerValue = (0, utils_1.serializeKeyPairs)(keyPairs);\n if (headerValue.length > 0) {\n setter.set(carrier, constants_1.BAGGAGE_HEADER, headerValue);\n }\n }\n extract(context, carrier, getter) {\n const headerValue = getter.get(carrier, constants_1.BAGGAGE_HEADER);\n const baggageString = Array.isArray(headerValue)\n ? headerValue.join(constants_1.BAGGAGE_ITEMS_SEPARATOR)\n : headerValue;\n if (!baggageString)\n return context;\n const baggage = {};\n if (baggageString.length === 0) {\n return context;\n }\n const pairs = baggageString.split(constants_1.BAGGAGE_ITEMS_SEPARATOR);\n pairs.forEach(entry => {\n const keyPair = (0, utils_1.parsePairKeyValue)(entry);\n if (keyPair) {\n const baggageEntry = { value: keyPair.value };\n if (keyPair.metadata) {\n baggageEntry.metadata = keyPair.metadata;\n }\n baggage[keyPair.key] = baggageEntry;\n }\n });\n if (Object.entries(baggage).length === 0) {\n return context;\n }\n return api_1.propagation.setBaggage(context, api_1.propagation.createBaggage(baggage));\n }\n fields() {\n return [constants_1.BAGGAGE_HEADER];\n }\n}\nexports.W3CBaggagePropagator = W3CBaggagePropagator;\n//# sourceMappingURL=W3CBaggagePropagator.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnchoredClock = void 0;\n/**\n * A utility for returning wall times anchored to a given point in time. Wall time measurements will\n * not be taken from the system, but instead are computed by adding a monotonic clock time\n * to the anchor point.\n *\n * This is needed because the system time can change and result in unexpected situations like\n * spans ending before they are started. Creating an anchored clock for each local root span\n * ensures that span timings and durations are accurate while preventing span times from drifting\n * too far from the system clock.\n *\n * Only creating an anchored clock once per local trace ensures span times are correct relative\n * to each other. For example, a child span will never have a start time before its parent even\n * if the system clock is corrected during the local trace.\n *\n * Heavily inspired by the OTel Java anchored clock\n * https://github.com/open-telemetry/opentelemetry-java/blob/main/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/AnchoredClock.java\n */\nclass AnchoredClock {\n _monotonicClock;\n _epochMillis;\n _performanceMillis;\n /**\n * Create a new AnchoredClock anchored to the current time returned by systemClock.\n *\n * @param systemClock should be a clock that returns the number of milliseconds since January 1 1970 such as Date\n * @param monotonicClock should be a clock that counts milliseconds monotonically such as window.performance or perf_hooks.performance\n */\n constructor(systemClock, monotonicClock) {\n this._monotonicClock = monotonicClock;\n this._epochMillis = systemClock.now();\n this._performanceMillis = monotonicClock.now();\n }\n /**\n * Returns the current time by adding the number of milliseconds since the\n * AnchoredClock was created to the creation epoch time\n */\n now() {\n const delta = this._monotonicClock.now() - this._performanceMillis;\n return this._epochMillis + delta;\n }\n}\nexports.AnchoredClock = AnchoredClock;\n//# sourceMappingURL=anchored-clock.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAttributeValue = exports.isAttributeKey = exports.sanitizeAttributes = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nfunction sanitizeAttributes(attributes) {\n const out = {};\n if (typeof attributes !== 'object' || attributes == null) {\n return out;\n }\n for (const key in attributes) {\n if (!Object.prototype.hasOwnProperty.call(attributes, key)) {\n continue;\n }\n if (!isAttributeKey(key)) {\n api_1.diag.warn(`Invalid attribute key: ${key}`);\n continue;\n }\n const val = attributes[key];\n if (!isAttributeValue(val)) {\n api_1.diag.warn(`Invalid attribute value set for key: ${key}`);\n continue;\n }\n if (Array.isArray(val)) {\n out[key] = val.slice();\n }\n else {\n out[key] = val;\n }\n }\n return out;\n}\nexports.sanitizeAttributes = sanitizeAttributes;\nfunction isAttributeKey(key) {\n return typeof key === 'string' && key !== '';\n}\nexports.isAttributeKey = isAttributeKey;\nfunction isAttributeValue(val) {\n if (val == null) {\n return true;\n }\n if (Array.isArray(val)) {\n return isHomogeneousAttributeValueArray(val);\n }\n return isValidPrimitiveAttributeValueType(typeof val);\n}\nexports.isAttributeValue = isAttributeValue;\nfunction isHomogeneousAttributeValueArray(arr) {\n let type;\n for (const element of arr) {\n // null/undefined elements are allowed\n if (element == null)\n continue;\n const elementType = typeof element;\n if (elementType === type) {\n continue;\n }\n if (!type) {\n if (isValidPrimitiveAttributeValueType(elementType)) {\n type = elementType;\n continue;\n }\n // encountered an invalid primitive\n return false;\n }\n return false;\n }\n return true;\n}\nfunction isValidPrimitiveAttributeValueType(valType) {\n switch (valType) {\n case 'number':\n case 'boolean':\n case 'string':\n return true;\n }\n return false;\n}\n//# sourceMappingURL=attributes.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loggingErrorHandler = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\n/**\n * Returns a function that logs an error using the provided logger, or a\n * console logger if one was not provided.\n */\nfunction loggingErrorHandler() {\n return (ex) => {\n api_1.diag.error(stringifyException(ex));\n };\n}\nexports.loggingErrorHandler = loggingErrorHandler;\n/**\n * Converts an exception into a string representation\n * @param {Exception} ex\n */\nfunction stringifyException(ex) {\n if (typeof ex === 'string') {\n return ex;\n }\n else {\n return JSON.stringify(flattenException(ex));\n }\n}\n/**\n * Flattens an exception into key-value pairs by traversing the prototype chain\n * and coercing values to strings. Duplicate properties will not be overwritten;\n * the first insert wins.\n */\nfunction flattenException(ex) {\n const result = {};\n let current = ex;\n while (current !== null) {\n Object.getOwnPropertyNames(current).forEach(propertyName => {\n if (result[propertyName])\n return;\n const value = current[propertyName];\n if (value) {\n result[propertyName] = String(value);\n }\n });\n current = Object.getPrototypeOf(current);\n }\n return result;\n}\n//# sourceMappingURL=logging-error-handler.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.globalErrorHandler = exports.setGlobalErrorHandler = void 0;\nconst logging_error_handler_1 = require(\"./logging-error-handler\");\n/** The global error handler delegate */\nlet delegateHandler = (0, logging_error_handler_1.loggingErrorHandler)();\n/**\n * Set the global error handler\n * @param {ErrorHandler} handler\n */\nfunction setGlobalErrorHandler(handler) {\n delegateHandler = handler;\n}\nexports.setGlobalErrorHandler = setGlobalErrorHandler;\n/**\n * Return the global error handler\n * @param {Exception} ex\n */\nfunction globalErrorHandler(ex) {\n try {\n delegateHandler(ex);\n }\n catch { } // eslint-disable-line no-empty\n}\nexports.globalErrorHandler = globalErrorHandler;\n//# sourceMappingURL=global-error-handler.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getStringListFromEnv = exports.getBooleanFromEnv = exports.getStringFromEnv = exports.getNumberFromEnv = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst util_1 = require(\"util\");\n/**\n * Retrieves a number from an environment variable.\n * - Returns `undefined` if the environment variable is empty, unset, contains only whitespace, or is not a number.\n * - Returns a number in all other cases.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {number | undefined} - The number value or `undefined`.\n */\nfunction getNumberFromEnv(key) {\n const raw = process.env[key];\n if (raw == null || raw.trim() === '') {\n return undefined;\n }\n const value = Number(raw);\n if (isNaN(value)) {\n api_1.diag.warn(`Unknown value ${(0, util_1.inspect)(raw)} for ${key}, expected a number, using defaults`);\n return undefined;\n }\n return value;\n}\nexports.getNumberFromEnv = getNumberFromEnv;\n/**\n * Retrieves a string from an environment variable.\n * - Returns `undefined` if the environment variable is empty, unset, or contains only whitespace.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {string | undefined} - The string value or `undefined`.\n */\nfunction getStringFromEnv(key) {\n const raw = process.env[key];\n if (raw == null || raw.trim() === '') {\n return undefined;\n }\n return raw;\n}\nexports.getStringFromEnv = getStringFromEnv;\n/**\n * Retrieves a boolean value from an environment variable.\n * - Trims leading and trailing whitespace and ignores casing.\n * - Returns `false` if the environment variable is empty, unset, or contains only whitespace.\n * - Returns `false` for strings that cannot be mapped to a boolean.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {boolean} - The boolean value or `false` if the environment variable is unset empty, unset, or contains only whitespace.\n */\nfunction getBooleanFromEnv(key) {\n const raw = process.env[key]?.trim().toLowerCase();\n if (raw == null || raw === '') {\n // NOTE: falling back to `false` instead of `undefined` as required by the specification.\n // If you have a use-case that requires `undefined`, consider using `getStringFromEnv()` and applying the necessary\n // normalizations in the consuming code.\n return false;\n }\n if (raw === 'true') {\n return true;\n }\n else if (raw === 'false') {\n return false;\n }\n else {\n api_1.diag.warn(`Unknown value ${(0, util_1.inspect)(raw)} for ${key}, expected 'true' or 'false', falling back to 'false' (default)`);\n return false;\n }\n}\nexports.getBooleanFromEnv = getBooleanFromEnv;\n/**\n * Retrieves a list of strings from an environment variable.\n * - Uses ',' as the delimiter.\n * - Trims leading and trailing whitespace from each entry.\n * - Excludes empty entries.\n * - Returns `undefined` if the environment variable is empty or contains only whitespace.\n * - Returns an empty array if all entries are empty or whitespace.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {string[] | undefined} - The list of strings or `undefined`.\n */\nfunction getStringListFromEnv(key) {\n return getStringFromEnv(key)\n ?.split(',')\n .map(v => v.trim())\n .filter(s => s !== '');\n}\nexports.getStringListFromEnv = getStringListFromEnv;\n//# sourceMappingURL=environment.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._globalThis = void 0;\n/**\n * @deprecated Use globalThis directly instead.\n */\nexports._globalThis = globalThis;\n//# sourceMappingURL=globalThis.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.VERSION = '2.6.1';\n//# sourceMappingURL=version.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ATTR_PROCESS_RUNTIME_NAME = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * The name of the runtime of this process.\n *\n * @example OpenJDK Runtime Environment\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_PROCESS_RUNTIME_NAME = 'process.runtime.name';\n//# sourceMappingURL=semconv.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SDK_INFO = void 0;\nconst version_1 = require(\"../../version\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"../../semconv\");\n/** Constants describing the SDK in use */\nexports.SDK_INFO = {\n [semantic_conventions_1.ATTR_TELEMETRY_SDK_NAME]: 'opentelemetry',\n [semconv_1.ATTR_PROCESS_RUNTIME_NAME]: 'node',\n [semantic_conventions_1.ATTR_TELEMETRY_SDK_LANGUAGE]: semantic_conventions_1.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,\n [semantic_conventions_1.ATTR_TELEMETRY_SDK_VERSION]: version_1.VERSION,\n};\n//# sourceMappingURL=sdk-info.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.otperformance = exports.SDK_INFO = exports._globalThis = exports.getStringListFromEnv = exports.getNumberFromEnv = exports.getBooleanFromEnv = exports.getStringFromEnv = void 0;\nvar environment_1 = require(\"./environment\");\nObject.defineProperty(exports, \"getStringFromEnv\", { enumerable: true, get: function () { return environment_1.getStringFromEnv; } });\nObject.defineProperty(exports, \"getBooleanFromEnv\", { enumerable: true, get: function () { return environment_1.getBooleanFromEnv; } });\nObject.defineProperty(exports, \"getNumberFromEnv\", { enumerable: true, get: function () { return environment_1.getNumberFromEnv; } });\nObject.defineProperty(exports, \"getStringListFromEnv\", { enumerable: true, get: function () { return environment_1.getStringListFromEnv; } });\nvar globalThis_1 = require(\"../../common/globalThis\");\nObject.defineProperty(exports, \"_globalThis\", { enumerable: true, get: function () { return globalThis_1._globalThis; } });\nvar sdk_info_1 = require(\"./sdk-info\");\nObject.defineProperty(exports, \"SDK_INFO\", { enumerable: true, get: function () { return sdk_info_1.SDK_INFO; } });\n/**\n * @deprecated Use performance directly.\n */\nexports.otperformance = performance;\n//# sourceMappingURL=index.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getStringListFromEnv = exports.getNumberFromEnv = exports.getStringFromEnv = exports.getBooleanFromEnv = exports.otperformance = exports._globalThis = exports.SDK_INFO = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nvar node_1 = require(\"./node\");\nObject.defineProperty(exports, \"SDK_INFO\", { enumerable: true, get: function () { return node_1.SDK_INFO; } });\nObject.defineProperty(exports, \"_globalThis\", { enumerable: true, get: function () { return node_1._globalThis; } });\nObject.defineProperty(exports, \"otperformance\", { enumerable: true, get: function () { return node_1.otperformance; } });\nObject.defineProperty(exports, \"getBooleanFromEnv\", { enumerable: true, get: function () { return node_1.getBooleanFromEnv; } });\nObject.defineProperty(exports, \"getStringFromEnv\", { enumerable: true, get: function () { return node_1.getStringFromEnv; } });\nObject.defineProperty(exports, \"getNumberFromEnv\", { enumerable: true, get: function () { return node_1.getNumberFromEnv; } });\nObject.defineProperty(exports, \"getStringListFromEnv\", { enumerable: true, get: function () { return node_1.getStringListFromEnv; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.addHrTimes = exports.isTimeInput = exports.isTimeInputHrTime = exports.hrTimeToMicroseconds = exports.hrTimeToMilliseconds = exports.hrTimeToNanoseconds = exports.hrTimeToTimeStamp = exports.hrTimeDuration = exports.timeInputToHrTime = exports.hrTime = exports.getTimeOrigin = exports.millisToHrTime = void 0;\nconst platform_1 = require(\"../platform\");\nconst NANOSECOND_DIGITS = 9;\nconst NANOSECOND_DIGITS_IN_MILLIS = 6;\nconst MILLISECONDS_TO_NANOSECONDS = Math.pow(10, NANOSECOND_DIGITS_IN_MILLIS);\nconst SECOND_TO_NANOSECONDS = Math.pow(10, NANOSECOND_DIGITS);\n/**\n * Converts a number of milliseconds from epoch to HrTime([seconds, remainder in nanoseconds]).\n * @param epochMillis\n */\nfunction millisToHrTime(epochMillis) {\n const epochSeconds = epochMillis / 1000;\n // Decimals only.\n const seconds = Math.trunc(epochSeconds);\n // Round sub-nanosecond accuracy to nanosecond.\n const nanos = Math.round((epochMillis % 1000) * MILLISECONDS_TO_NANOSECONDS);\n return [seconds, nanos];\n}\nexports.millisToHrTime = millisToHrTime;\n/**\n * @deprecated Use `performance.timeOrigin` directly.\n */\nfunction getTimeOrigin() {\n return platform_1.otperformance.timeOrigin;\n}\nexports.getTimeOrigin = getTimeOrigin;\n/**\n * Returns an hrtime calculated via performance component.\n * @param performanceNow\n */\nfunction hrTime(performanceNow) {\n const timeOrigin = millisToHrTime(platform_1.otperformance.timeOrigin);\n const now = millisToHrTime(typeof performanceNow === 'number' ? performanceNow : platform_1.otperformance.now());\n return addHrTimes(timeOrigin, now);\n}\nexports.hrTime = hrTime;\n/**\n *\n * Converts a TimeInput to an HrTime, defaults to _hrtime().\n * @param time\n */\nfunction timeInputToHrTime(time) {\n // process.hrtime\n if (isTimeInputHrTime(time)) {\n return time;\n }\n else if (typeof time === 'number') {\n // Must be a performance.now() if it's smaller than process start time.\n if (time < platform_1.otperformance.timeOrigin) {\n return hrTime(time);\n }\n else {\n // epoch milliseconds or performance.timeOrigin\n return millisToHrTime(time);\n }\n }\n else if (time instanceof Date) {\n return millisToHrTime(time.getTime());\n }\n else {\n throw TypeError('Invalid input type');\n }\n}\nexports.timeInputToHrTime = timeInputToHrTime;\n/**\n * Returns a duration of two hrTime.\n * @param startTime\n * @param endTime\n */\nfunction hrTimeDuration(startTime, endTime) {\n let seconds = endTime[0] - startTime[0];\n let nanos = endTime[1] - startTime[1];\n // overflow\n if (nanos < 0) {\n seconds -= 1;\n // negate\n nanos += SECOND_TO_NANOSECONDS;\n }\n return [seconds, nanos];\n}\nexports.hrTimeDuration = hrTimeDuration;\n/**\n * Convert hrTime to timestamp, for example \"2019-05-14T17:00:00.000123456Z\"\n * @param time\n */\nfunction hrTimeToTimeStamp(time) {\n const precision = NANOSECOND_DIGITS;\n const tmp = `${'0'.repeat(precision)}${time[1]}Z`;\n const nanoString = tmp.substring(tmp.length - precision - 1);\n const date = new Date(time[0] * 1000).toISOString();\n return date.replace('000Z', nanoString);\n}\nexports.hrTimeToTimeStamp = hrTimeToTimeStamp;\n/**\n * Convert hrTime to nanoseconds.\n * @param time\n */\nfunction hrTimeToNanoseconds(time) {\n return time[0] * SECOND_TO_NANOSECONDS + time[1];\n}\nexports.hrTimeToNanoseconds = hrTimeToNanoseconds;\n/**\n * Convert hrTime to milliseconds.\n * @param time\n */\nfunction hrTimeToMilliseconds(time) {\n return time[0] * 1e3 + time[1] / 1e6;\n}\nexports.hrTimeToMilliseconds = hrTimeToMilliseconds;\n/**\n * Convert hrTime to microseconds.\n * @param time\n */\nfunction hrTimeToMicroseconds(time) {\n return time[0] * 1e6 + time[1] / 1e3;\n}\nexports.hrTimeToMicroseconds = hrTimeToMicroseconds;\n/**\n * check if time is HrTime\n * @param value\n */\nfunction isTimeInputHrTime(value) {\n return (Array.isArray(value) &&\n value.length === 2 &&\n typeof value[0] === 'number' &&\n typeof value[1] === 'number');\n}\nexports.isTimeInputHrTime = isTimeInputHrTime;\n/**\n * check if input value is a correct types.TimeInput\n * @param value\n */\nfunction isTimeInput(value) {\n return (isTimeInputHrTime(value) ||\n typeof value === 'number' ||\n value instanceof Date);\n}\nexports.isTimeInput = isTimeInput;\n/**\n * Given 2 HrTime formatted times, return their sum as an HrTime.\n */\nfunction addHrTimes(time1, time2) {\n const out = [time1[0] + time2[0], time1[1] + time2[1]];\n // Nanoseconds\n if (out[1] >= SECOND_TO_NANOSECONDS) {\n out[1] -= SECOND_TO_NANOSECONDS;\n out[0] += 1;\n }\n return out;\n}\nexports.addHrTimes = addHrTimes;\n//# sourceMappingURL=time.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unrefTimer = void 0;\n/**\n * @deprecated please copy this code to your implementation instead, this function will be removed in the next major version of this package.\n * @param timer\n */\nfunction unrefTimer(timer) {\n if (typeof timer !== 'number') {\n timer.unref();\n }\n}\nexports.unrefTimer = unrefTimer;\n//# sourceMappingURL=timer-util.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExportResultCode = void 0;\nvar ExportResultCode;\n(function (ExportResultCode) {\n ExportResultCode[ExportResultCode[\"SUCCESS\"] = 0] = \"SUCCESS\";\n ExportResultCode[ExportResultCode[\"FAILED\"] = 1] = \"FAILED\";\n})(ExportResultCode = exports.ExportResultCode || (exports.ExportResultCode = {}));\n//# sourceMappingURL=ExportResult.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompositePropagator = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\n/** Combines multiple propagators into a single propagator. */\nclass CompositePropagator {\n _propagators;\n _fields;\n /**\n * Construct a composite propagator from a list of propagators.\n *\n * @param [config] Configuration object for composite propagator\n */\n constructor(config = {}) {\n this._propagators = config.propagators ?? [];\n this._fields = Array.from(new Set(this._propagators\n // older propagators may not have fields function, null check to be sure\n .map(p => (typeof p.fields === 'function' ? p.fields() : []))\n .reduce((x, y) => x.concat(y), [])));\n }\n /**\n * Run each of the configured propagators with the given context and carrier.\n * Propagators are run in the order they are configured, so if multiple\n * propagators write the same carrier key, the propagator later in the list\n * will \"win\".\n *\n * @param context Context to inject\n * @param carrier Carrier into which context will be injected\n */\n inject(context, carrier, setter) {\n for (const propagator of this._propagators) {\n try {\n propagator.inject(context, carrier, setter);\n }\n catch (err) {\n api_1.diag.warn(`Failed to inject with ${propagator.constructor.name}. Err: ${err.message}`);\n }\n }\n }\n /**\n * Run each of the configured propagators with the given context and carrier.\n * Propagators are run in the order they are configured, so if multiple\n * propagators write the same context key, the propagator later in the list\n * will \"win\".\n *\n * @param context Context to add values to\n * @param carrier Carrier from which to extract context\n */\n extract(context, carrier, getter) {\n return this._propagators.reduce((ctx, propagator) => {\n try {\n return propagator.extract(ctx, carrier, getter);\n }\n catch (err) {\n api_1.diag.warn(`Failed to extract with ${propagator.constructor.name}. Err: ${err.message}`);\n }\n return ctx;\n }, context);\n }\n fields() {\n // return a new array so our fields cannot be modified\n return this._fields.slice();\n }\n}\nexports.CompositePropagator = CompositePropagator;\n//# sourceMappingURL=composite.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateValue = exports.validateKey = void 0;\nconst VALID_KEY_CHAR_RANGE = '[_0-9a-z-*/]';\nconst VALID_KEY = `[a-z]${VALID_KEY_CHAR_RANGE}{0,255}`;\nconst VALID_VENDOR_KEY = `[a-z0-9]${VALID_KEY_CHAR_RANGE}{0,240}@[a-z]${VALID_KEY_CHAR_RANGE}{0,13}`;\nconst VALID_KEY_REGEX = new RegExp(`^(?:${VALID_KEY}|${VALID_VENDOR_KEY})$`);\nconst VALID_VALUE_BASE_REGEX = /^[ -~]{0,255}[!-~]$/;\nconst INVALID_VALUE_COMMA_EQUAL_REGEX = /,|=/;\n/**\n * Key is opaque string up to 256 characters printable. It MUST begin with a\n * lowercase letter, and can only contain lowercase letters a-z, digits 0-9,\n * underscores _, dashes -, asterisks *, and forward slashes /.\n * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the\n * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key.\n * see https://www.w3.org/TR/trace-context/#key\n */\nfunction validateKey(key) {\n return VALID_KEY_REGEX.test(key);\n}\nexports.validateKey = validateKey;\n/**\n * Value is opaque string up to 256 characters printable ASCII RFC0020\n * characters (i.e., the range 0x20 to 0x7E) except comma , and =.\n */\nfunction validateValue(value) {\n return (VALID_VALUE_BASE_REGEX.test(value) &&\n !INVALID_VALUE_COMMA_EQUAL_REGEX.test(value));\n}\nexports.validateValue = validateValue;\n//# sourceMappingURL=validators.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TraceState = void 0;\nconst validators_1 = require(\"../internal/validators\");\nconst MAX_TRACE_STATE_ITEMS = 32;\nconst MAX_TRACE_STATE_LEN = 512;\nconst LIST_MEMBERS_SEPARATOR = ',';\nconst LIST_MEMBER_KEY_VALUE_SPLITTER = '=';\n/**\n * TraceState must be a class and not a simple object type because of the spec\n * requirement (https://www.w3.org/TR/trace-context/#tracestate-field).\n *\n * Here is the list of allowed mutations:\n * - New key-value pair should be added into the beginning of the list\n * - The value of any key can be updated. Modified keys MUST be moved to the\n * beginning of the list.\n */\nclass TraceState {\n _internalState = new Map();\n constructor(rawTraceState) {\n if (rawTraceState)\n this._parse(rawTraceState);\n }\n set(key, value) {\n // TODO: Benchmark the different approaches(map vs list) and\n // use the faster one.\n const traceState = this._clone();\n if (traceState._internalState.has(key)) {\n traceState._internalState.delete(key);\n }\n traceState._internalState.set(key, value);\n return traceState;\n }\n unset(key) {\n const traceState = this._clone();\n traceState._internalState.delete(key);\n return traceState;\n }\n get(key) {\n return this._internalState.get(key);\n }\n serialize() {\n return this._keys()\n .reduce((agg, key) => {\n agg.push(key + LIST_MEMBER_KEY_VALUE_SPLITTER + this.get(key));\n return agg;\n }, [])\n .join(LIST_MEMBERS_SEPARATOR);\n }\n _parse(rawTraceState) {\n if (rawTraceState.length > MAX_TRACE_STATE_LEN)\n return;\n this._internalState = rawTraceState\n .split(LIST_MEMBERS_SEPARATOR)\n .reverse() // Store in reverse so new keys (.set(...)) will be placed at the beginning\n .reduce((agg, part) => {\n const listMember = part.trim(); // Optional Whitespace (OWS) handling\n const i = listMember.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER);\n if (i !== -1) {\n const key = listMember.slice(0, i);\n const value = listMember.slice(i + 1, part.length);\n if ((0, validators_1.validateKey)(key) && (0, validators_1.validateValue)(value)) {\n agg.set(key, value);\n }\n else {\n // TODO: Consider to add warning log\n }\n }\n return agg;\n }, new Map());\n // Because of the reverse() requirement, trunc must be done after map is created\n if (this._internalState.size > MAX_TRACE_STATE_ITEMS) {\n this._internalState = new Map(Array.from(this._internalState.entries())\n .reverse() // Use reverse same as original tracestate parse chain\n .slice(0, MAX_TRACE_STATE_ITEMS));\n }\n }\n _keys() {\n return Array.from(this._internalState.keys()).reverse();\n }\n _clone() {\n const traceState = new TraceState();\n traceState._internalState = new Map(this._internalState);\n return traceState;\n }\n}\nexports.TraceState = TraceState;\n//# sourceMappingURL=TraceState.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.W3CTraceContextPropagator = exports.parseTraceParent = exports.TRACE_STATE_HEADER = exports.TRACE_PARENT_HEADER = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst suppress_tracing_1 = require(\"./suppress-tracing\");\nconst TraceState_1 = require(\"./TraceState\");\nexports.TRACE_PARENT_HEADER = 'traceparent';\nexports.TRACE_STATE_HEADER = 'tracestate';\nconst VERSION = '00';\nconst VERSION_PART = '(?!ff)[\\\\da-f]{2}';\nconst TRACE_ID_PART = '(?![0]{32})[\\\\da-f]{32}';\nconst PARENT_ID_PART = '(?![0]{16})[\\\\da-f]{16}';\nconst FLAGS_PART = '[\\\\da-f]{2}';\nconst TRACE_PARENT_REGEX = new RegExp(`^\\\\s?(${VERSION_PART})-(${TRACE_ID_PART})-(${PARENT_ID_PART})-(${FLAGS_PART})(-.*)?\\\\s?$`);\n/**\n * Parses information from the [traceparent] span tag and converts it into {@link SpanContext}\n * @param traceParent - A meta property that comes from server.\n * It should be dynamically generated server side to have the server's request trace Id,\n * a parent span Id that was set on the server's request span,\n * and the trace flags to indicate the server's sampling decision\n * (01 = sampled, 00 = not sampled).\n * for example: '{version}-{traceId}-{spanId}-{sampleDecision}'\n * For more information see {@link https://www.w3.org/TR/trace-context/}\n */\nfunction parseTraceParent(traceParent) {\n const match = TRACE_PARENT_REGEX.exec(traceParent);\n if (!match)\n return null;\n // According to the specification the implementation should be compatible\n // with future versions. If there are more parts, we only reject it if it's using version 00\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\n if (match[1] === '00' && match[5])\n return null;\n return {\n traceId: match[2],\n spanId: match[3],\n traceFlags: parseInt(match[4], 16),\n };\n}\nexports.parseTraceParent = parseTraceParent;\n/**\n * Propagates {@link SpanContext} through Trace Context format propagation.\n *\n * Based on the Trace Context specification:\n * https://www.w3.org/TR/trace-context/\n */\nclass W3CTraceContextPropagator {\n inject(context, carrier, setter) {\n const spanContext = api_1.trace.getSpanContext(context);\n if (!spanContext ||\n (0, suppress_tracing_1.isTracingSuppressed)(context) ||\n !(0, api_1.isSpanContextValid)(spanContext))\n return;\n const traceParent = `${VERSION}-${spanContext.traceId}-${spanContext.spanId}-0${Number(spanContext.traceFlags || api_1.TraceFlags.NONE).toString(16)}`;\n setter.set(carrier, exports.TRACE_PARENT_HEADER, traceParent);\n if (spanContext.traceState) {\n setter.set(carrier, exports.TRACE_STATE_HEADER, spanContext.traceState.serialize());\n }\n }\n extract(context, carrier, getter) {\n const traceParentHeader = getter.get(carrier, exports.TRACE_PARENT_HEADER);\n if (!traceParentHeader)\n return context;\n const traceParent = Array.isArray(traceParentHeader)\n ? traceParentHeader[0]\n : traceParentHeader;\n if (typeof traceParent !== 'string')\n return context;\n const spanContext = parseTraceParent(traceParent);\n if (!spanContext)\n return context;\n spanContext.isRemote = true;\n const traceStateHeader = getter.get(carrier, exports.TRACE_STATE_HEADER);\n if (traceStateHeader) {\n // If more than one `tracestate` header is found, we merge them into a\n // single header.\n const state = Array.isArray(traceStateHeader)\n ? traceStateHeader.join(',')\n : traceStateHeader;\n spanContext.traceState = new TraceState_1.TraceState(typeof state === 'string' ? state : undefined);\n }\n return api_1.trace.setSpanContext(context, spanContext);\n }\n fields() {\n return [exports.TRACE_PARENT_HEADER, exports.TRACE_STATE_HEADER];\n }\n}\nexports.W3CTraceContextPropagator = W3CTraceContextPropagator;\n//# sourceMappingURL=W3CTraceContextPropagator.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRPCMetadata = exports.deleteRPCMetadata = exports.setRPCMetadata = exports.RPCType = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst RPC_METADATA_KEY = (0, api_1.createContextKey)('OpenTelemetry SDK Context Key RPC_METADATA');\nvar RPCType;\n(function (RPCType) {\n RPCType[\"HTTP\"] = \"http\";\n})(RPCType = exports.RPCType || (exports.RPCType = {}));\nfunction setRPCMetadata(context, meta) {\n return context.setValue(RPC_METADATA_KEY, meta);\n}\nexports.setRPCMetadata = setRPCMetadata;\nfunction deleteRPCMetadata(context) {\n return context.deleteValue(RPC_METADATA_KEY);\n}\nexports.deleteRPCMetadata = deleteRPCMetadata;\nfunction getRPCMetadata(context) {\n return context.getValue(RPC_METADATA_KEY);\n}\nexports.getRPCMetadata = getRPCMetadata;\n//# sourceMappingURL=rpc-metadata.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isPlainObject = void 0;\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * based on lodash in order to support esm builds without esModuleInterop.\n * lodash is using MIT License.\n **/\nconst objectTag = '[object Object]';\nconst nullTag = '[object Null]';\nconst undefinedTag = '[object Undefined]';\nconst funcProto = Function.prototype;\nconst funcToString = funcProto.toString;\nconst objectCtorString = funcToString.call(Object);\nconst getPrototypeOf = Object.getPrototypeOf;\nconst objectProto = Object.prototype;\nconst hasOwnProperty = objectProto.hasOwnProperty;\nconst symToStringTag = Symbol ? Symbol.toStringTag : undefined;\nconst nativeObjectToString = objectProto.toString;\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) !== objectTag) {\n return false;\n }\n const proto = getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n const Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor &&\n funcToString.call(Ctor) === objectCtorString);\n}\nexports.isPlainObject = isPlainObject;\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value)\n ? getRawTag(value)\n : objectToString(value);\n}\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n const isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];\n let unmasked = false;\n try {\n value[symToStringTag] = undefined;\n unmasked = true;\n }\n catch {\n // silence\n }\n const result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n }\n else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n//# sourceMappingURL=lodash.merge.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.merge = void 0;\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst lodash_merge_1 = require(\"./lodash.merge\");\nconst MAX_LEVEL = 20;\n/**\n * Merges objects together\n * @param args - objects / values to be merged\n */\nfunction merge(...args) {\n let result = args.shift();\n const objects = new WeakMap();\n while (args.length > 0) {\n result = mergeTwoObjects(result, args.shift(), 0, objects);\n }\n return result;\n}\nexports.merge = merge;\nfunction takeValue(value) {\n if (isArray(value)) {\n return value.slice();\n }\n return value;\n}\n/**\n * Merges two objects\n * @param one - first object\n * @param two - second object\n * @param level - current deep level\n * @param objects - objects holder that has been already referenced - to prevent\n * cyclic dependency\n */\nfunction mergeTwoObjects(one, two, level = 0, objects) {\n let result;\n if (level > MAX_LEVEL) {\n return undefined;\n }\n level++;\n if (isPrimitive(one) || isPrimitive(two) || isFunction(two)) {\n result = takeValue(two);\n }\n else if (isArray(one)) {\n result = one.slice();\n if (isArray(two)) {\n for (let i = 0, j = two.length; i < j; i++) {\n result.push(takeValue(two[i]));\n }\n }\n else if (isObject(two)) {\n const keys = Object.keys(two);\n for (let i = 0, j = keys.length; i < j; i++) {\n const key = keys[i];\n result[key] = takeValue(two[key]);\n }\n }\n }\n else if (isObject(one)) {\n if (isObject(two)) {\n if (!shouldMerge(one, two)) {\n return two;\n }\n result = Object.assign({}, one);\n const keys = Object.keys(two);\n for (let i = 0, j = keys.length; i < j; i++) {\n const key = keys[i];\n const twoValue = two[key];\n if (isPrimitive(twoValue)) {\n if (typeof twoValue === 'undefined') {\n delete result[key];\n }\n else {\n // result[key] = takeValue(twoValue);\n result[key] = twoValue;\n }\n }\n else {\n const obj1 = result[key];\n const obj2 = twoValue;\n if (wasObjectReferenced(one, key, objects) ||\n wasObjectReferenced(two, key, objects)) {\n delete result[key];\n }\n else {\n if (isObject(obj1) && isObject(obj2)) {\n const arr1 = objects.get(obj1) || [];\n const arr2 = objects.get(obj2) || [];\n arr1.push({ obj: one, key });\n arr2.push({ obj: two, key });\n objects.set(obj1, arr1);\n objects.set(obj2, arr2);\n }\n result[key] = mergeTwoObjects(result[key], twoValue, level, objects);\n }\n }\n }\n }\n else {\n result = two;\n }\n }\n return result;\n}\n/**\n * Function to check if object has been already reference\n * @param obj\n * @param key\n * @param objects\n */\nfunction wasObjectReferenced(obj, key, objects) {\n const arr = objects.get(obj[key]) || [];\n for (let i = 0, j = arr.length; i < j; i++) {\n const info = arr[i];\n if (info.key === key && info.obj === obj) {\n return true;\n }\n }\n return false;\n}\nfunction isArray(value) {\n return Array.isArray(value);\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nfunction isObject(value) {\n return (!isPrimitive(value) &&\n !isArray(value) &&\n !isFunction(value) &&\n typeof value === 'object');\n}\nfunction isPrimitive(value) {\n return (typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n typeof value === 'undefined' ||\n value instanceof Date ||\n value instanceof RegExp ||\n value === null);\n}\nfunction shouldMerge(one, two) {\n if (!(0, lodash_merge_1.isPlainObject)(one) || !(0, lodash_merge_1.isPlainObject)(two)) {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=merge.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callWithTimeout = exports.TimeoutError = void 0;\n/**\n * Error that is thrown on timeouts.\n */\nclass TimeoutError extends Error {\n constructor(message) {\n super(message);\n // manually adjust prototype to retain `instanceof` functionality when targeting ES5, see:\n // https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, TimeoutError.prototype);\n }\n}\nexports.TimeoutError = TimeoutError;\n/**\n * Adds a timeout to a promise and rejects if the specified timeout has elapsed. Also rejects if the specified promise\n * rejects, and resolves if the specified promise resolves.\n *\n *

NOTE: this operation will continue even after it throws a {@link TimeoutError}.\n *\n * @param promise promise to use with timeout.\n * @param timeout the timeout in milliseconds until the returned promise is rejected.\n */\nfunction callWithTimeout(promise, timeout) {\n let timeoutHandle;\n const timeoutPromise = new Promise(function timeoutFunction(_resolve, reject) {\n timeoutHandle = setTimeout(function timeoutHandler() {\n reject(new TimeoutError('Operation timed out.'));\n }, timeout);\n });\n return Promise.race([promise, timeoutPromise]).then(result => {\n clearTimeout(timeoutHandle);\n return result;\n }, reason => {\n clearTimeout(timeoutHandle);\n throw reason;\n });\n}\nexports.callWithTimeout = callWithTimeout;\n//# sourceMappingURL=timeout.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUrlIgnored = exports.urlMatches = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nfunction urlMatches(url, urlToMatch) {\n if (typeof urlToMatch === 'string') {\n return url === urlToMatch;\n }\n else {\n return !!url.match(urlToMatch);\n }\n}\nexports.urlMatches = urlMatches;\n/**\n * Check if {@param url} should be ignored when comparing against {@param ignoredUrls}\n * @param url\n * @param ignoredUrls\n */\nfunction isUrlIgnored(url, ignoredUrls) {\n if (!ignoredUrls) {\n return false;\n }\n for (const ignoreUrl of ignoredUrls) {\n if (urlMatches(url, ignoreUrl)) {\n return true;\n }\n }\n return false;\n}\nexports.isUrlIgnored = isUrlIgnored;\n//# sourceMappingURL=url.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Deferred = void 0;\nclass Deferred {\n _promise;\n _resolve;\n _reject;\n constructor() {\n this._promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n get promise() {\n return this._promise;\n }\n resolve(val) {\n this._resolve(val);\n }\n reject(err) {\n this._reject(err);\n }\n}\nexports.Deferred = Deferred;\n//# sourceMappingURL=promise.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BindOnceFuture = void 0;\nconst promise_1 = require(\"./promise\");\n/**\n * Bind the callback and only invoke the callback once regardless how many times `BindOnceFuture.call` is invoked.\n */\nclass BindOnceFuture {\n _isCalled = false;\n _deferred = new promise_1.Deferred();\n _callback;\n _that;\n constructor(callback, that) {\n this._callback = callback;\n this._that = that;\n }\n get isCalled() {\n return this._isCalled;\n }\n get promise() {\n return this._deferred.promise;\n }\n call(...args) {\n if (!this._isCalled) {\n this._isCalled = true;\n try {\n Promise.resolve(this._callback.call(this._that, ...args)).then(val => this._deferred.resolve(val), err => this._deferred.reject(err));\n }\n catch (err) {\n this._deferred.reject(err);\n }\n }\n return this._deferred.promise;\n }\n}\nexports.BindOnceFuture = BindOnceFuture;\n//# sourceMappingURL=callback.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.diagLogLevelFromString = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst logLevelMap = {\n ALL: api_1.DiagLogLevel.ALL,\n VERBOSE: api_1.DiagLogLevel.VERBOSE,\n DEBUG: api_1.DiagLogLevel.DEBUG,\n INFO: api_1.DiagLogLevel.INFO,\n WARN: api_1.DiagLogLevel.WARN,\n ERROR: api_1.DiagLogLevel.ERROR,\n NONE: api_1.DiagLogLevel.NONE,\n};\n/**\n * Convert a string to a {@link DiagLogLevel}, defaults to {@link DiagLogLevel} if the log level does not exist or undefined if the input is undefined.\n * @param value\n */\nfunction diagLogLevelFromString(value) {\n if (value == null) {\n // don't fall back to default - no value set has different semantics for ús than an incorrect value (do not set vs. fall back to default)\n return undefined;\n }\n const resolvedLogLevel = logLevelMap[value.toUpperCase()];\n if (resolvedLogLevel == null) {\n api_1.diag.warn(`Unknown log level \"${value}\", expected one of ${Object.keys(logLevelMap)}, using default`);\n return api_1.DiagLogLevel.INFO;\n }\n return resolvedLogLevel;\n}\nexports.diagLogLevelFromString = diagLogLevelFromString;\n//# sourceMappingURL=configuration.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._export = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst suppress_tracing_1 = require(\"../trace/suppress-tracing\");\n/**\n * @internal\n * Shared functionality used by Exporters while exporting data, including suppression of Traces.\n */\nfunction _export(exporter, arg) {\n return new Promise(resolve => {\n // prevent downstream exporter calls from generating spans\n api_1.context.with((0, suppress_tracing_1.suppressTracing)(api_1.context.active()), () => {\n exporter.export(arg, resolve);\n });\n });\n}\nexports._export = _export;\n//# sourceMappingURL=exporter.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.internal = exports.diagLogLevelFromString = exports.BindOnceFuture = exports.urlMatches = exports.isUrlIgnored = exports.callWithTimeout = exports.TimeoutError = exports.merge = exports.TraceState = exports.unsuppressTracing = exports.suppressTracing = exports.isTracingSuppressed = exports.setRPCMetadata = exports.getRPCMetadata = exports.deleteRPCMetadata = exports.RPCType = exports.parseTraceParent = exports.W3CTraceContextPropagator = exports.TRACE_STATE_HEADER = exports.TRACE_PARENT_HEADER = exports.CompositePropagator = exports.otperformance = exports.getStringListFromEnv = exports.getNumberFromEnv = exports.getBooleanFromEnv = exports.getStringFromEnv = exports._globalThis = exports.SDK_INFO = exports.parseKeyPairsIntoRecord = exports.ExportResultCode = exports.unrefTimer = exports.timeInputToHrTime = exports.millisToHrTime = exports.isTimeInputHrTime = exports.isTimeInput = exports.hrTimeToTimeStamp = exports.hrTimeToNanoseconds = exports.hrTimeToMilliseconds = exports.hrTimeToMicroseconds = exports.hrTimeDuration = exports.hrTime = exports.getTimeOrigin = exports.addHrTimes = exports.loggingErrorHandler = exports.setGlobalErrorHandler = exports.globalErrorHandler = exports.sanitizeAttributes = exports.isAttributeValue = exports.AnchoredClock = exports.W3CBaggagePropagator = void 0;\nvar W3CBaggagePropagator_1 = require(\"./baggage/propagation/W3CBaggagePropagator\");\nObject.defineProperty(exports, \"W3CBaggagePropagator\", { enumerable: true, get: function () { return W3CBaggagePropagator_1.W3CBaggagePropagator; } });\nvar anchored_clock_1 = require(\"./common/anchored-clock\");\nObject.defineProperty(exports, \"AnchoredClock\", { enumerable: true, get: function () { return anchored_clock_1.AnchoredClock; } });\nvar attributes_1 = require(\"./common/attributes\");\nObject.defineProperty(exports, \"isAttributeValue\", { enumerable: true, get: function () { return attributes_1.isAttributeValue; } });\nObject.defineProperty(exports, \"sanitizeAttributes\", { enumerable: true, get: function () { return attributes_1.sanitizeAttributes; } });\nvar global_error_handler_1 = require(\"./common/global-error-handler\");\nObject.defineProperty(exports, \"globalErrorHandler\", { enumerable: true, get: function () { return global_error_handler_1.globalErrorHandler; } });\nObject.defineProperty(exports, \"setGlobalErrorHandler\", { enumerable: true, get: function () { return global_error_handler_1.setGlobalErrorHandler; } });\nvar logging_error_handler_1 = require(\"./common/logging-error-handler\");\nObject.defineProperty(exports, \"loggingErrorHandler\", { enumerable: true, get: function () { return logging_error_handler_1.loggingErrorHandler; } });\nvar time_1 = require(\"./common/time\");\nObject.defineProperty(exports, \"addHrTimes\", { enumerable: true, get: function () { return time_1.addHrTimes; } });\nObject.defineProperty(exports, \"getTimeOrigin\", { enumerable: true, get: function () { return time_1.getTimeOrigin; } });\nObject.defineProperty(exports, \"hrTime\", { enumerable: true, get: function () { return time_1.hrTime; } });\nObject.defineProperty(exports, \"hrTimeDuration\", { enumerable: true, get: function () { return time_1.hrTimeDuration; } });\nObject.defineProperty(exports, \"hrTimeToMicroseconds\", { enumerable: true, get: function () { return time_1.hrTimeToMicroseconds; } });\nObject.defineProperty(exports, \"hrTimeToMilliseconds\", { enumerable: true, get: function () { return time_1.hrTimeToMilliseconds; } });\nObject.defineProperty(exports, \"hrTimeToNanoseconds\", { enumerable: true, get: function () { return time_1.hrTimeToNanoseconds; } });\nObject.defineProperty(exports, \"hrTimeToTimeStamp\", { enumerable: true, get: function () { return time_1.hrTimeToTimeStamp; } });\nObject.defineProperty(exports, \"isTimeInput\", { enumerable: true, get: function () { return time_1.isTimeInput; } });\nObject.defineProperty(exports, \"isTimeInputHrTime\", { enumerable: true, get: function () { return time_1.isTimeInputHrTime; } });\nObject.defineProperty(exports, \"millisToHrTime\", { enumerable: true, get: function () { return time_1.millisToHrTime; } });\nObject.defineProperty(exports, \"timeInputToHrTime\", { enumerable: true, get: function () { return time_1.timeInputToHrTime; } });\nvar timer_util_1 = require(\"./common/timer-util\");\nObject.defineProperty(exports, \"unrefTimer\", { enumerable: true, get: function () { return timer_util_1.unrefTimer; } });\nvar ExportResult_1 = require(\"./ExportResult\");\nObject.defineProperty(exports, \"ExportResultCode\", { enumerable: true, get: function () { return ExportResult_1.ExportResultCode; } });\nvar utils_1 = require(\"./baggage/utils\");\nObject.defineProperty(exports, \"parseKeyPairsIntoRecord\", { enumerable: true, get: function () { return utils_1.parseKeyPairsIntoRecord; } });\nvar platform_1 = require(\"./platform\");\nObject.defineProperty(exports, \"SDK_INFO\", { enumerable: true, get: function () { return platform_1.SDK_INFO; } });\nObject.defineProperty(exports, \"_globalThis\", { enumerable: true, get: function () { return platform_1._globalThis; } });\nObject.defineProperty(exports, \"getStringFromEnv\", { enumerable: true, get: function () { return platform_1.getStringFromEnv; } });\nObject.defineProperty(exports, \"getBooleanFromEnv\", { enumerable: true, get: function () { return platform_1.getBooleanFromEnv; } });\nObject.defineProperty(exports, \"getNumberFromEnv\", { enumerable: true, get: function () { return platform_1.getNumberFromEnv; } });\nObject.defineProperty(exports, \"getStringListFromEnv\", { enumerable: true, get: function () { return platform_1.getStringListFromEnv; } });\nObject.defineProperty(exports, \"otperformance\", { enumerable: true, get: function () { return platform_1.otperformance; } });\nvar composite_1 = require(\"./propagation/composite\");\nObject.defineProperty(exports, \"CompositePropagator\", { enumerable: true, get: function () { return composite_1.CompositePropagator; } });\nvar W3CTraceContextPropagator_1 = require(\"./trace/W3CTraceContextPropagator\");\nObject.defineProperty(exports, \"TRACE_PARENT_HEADER\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.TRACE_PARENT_HEADER; } });\nObject.defineProperty(exports, \"TRACE_STATE_HEADER\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.TRACE_STATE_HEADER; } });\nObject.defineProperty(exports, \"W3CTraceContextPropagator\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.W3CTraceContextPropagator; } });\nObject.defineProperty(exports, \"parseTraceParent\", { enumerable: true, get: function () { return W3CTraceContextPropagator_1.parseTraceParent; } });\nvar rpc_metadata_1 = require(\"./trace/rpc-metadata\");\nObject.defineProperty(exports, \"RPCType\", { enumerable: true, get: function () { return rpc_metadata_1.RPCType; } });\nObject.defineProperty(exports, \"deleteRPCMetadata\", { enumerable: true, get: function () { return rpc_metadata_1.deleteRPCMetadata; } });\nObject.defineProperty(exports, \"getRPCMetadata\", { enumerable: true, get: function () { return rpc_metadata_1.getRPCMetadata; } });\nObject.defineProperty(exports, \"setRPCMetadata\", { enumerable: true, get: function () { return rpc_metadata_1.setRPCMetadata; } });\nvar suppress_tracing_1 = require(\"./trace/suppress-tracing\");\nObject.defineProperty(exports, \"isTracingSuppressed\", { enumerable: true, get: function () { return suppress_tracing_1.isTracingSuppressed; } });\nObject.defineProperty(exports, \"suppressTracing\", { enumerable: true, get: function () { return suppress_tracing_1.suppressTracing; } });\nObject.defineProperty(exports, \"unsuppressTracing\", { enumerable: true, get: function () { return suppress_tracing_1.unsuppressTracing; } });\nvar TraceState_1 = require(\"./trace/TraceState\");\nObject.defineProperty(exports, \"TraceState\", { enumerable: true, get: function () { return TraceState_1.TraceState; } });\nvar merge_1 = require(\"./utils/merge\");\nObject.defineProperty(exports, \"merge\", { enumerable: true, get: function () { return merge_1.merge; } });\nvar timeout_1 = require(\"./utils/timeout\");\nObject.defineProperty(exports, \"TimeoutError\", { enumerable: true, get: function () { return timeout_1.TimeoutError; } });\nObject.defineProperty(exports, \"callWithTimeout\", { enumerable: true, get: function () { return timeout_1.callWithTimeout; } });\nvar url_1 = require(\"./utils/url\");\nObject.defineProperty(exports, \"isUrlIgnored\", { enumerable: true, get: function () { return url_1.isUrlIgnored; } });\nObject.defineProperty(exports, \"urlMatches\", { enumerable: true, get: function () { return url_1.urlMatches; } });\nvar callback_1 = require(\"./utils/callback\");\nObject.defineProperty(exports, \"BindOnceFuture\", { enumerable: true, get: function () { return callback_1.BindOnceFuture; } });\nvar configuration_1 = require(\"./utils/configuration\");\nObject.defineProperty(exports, \"diagLogLevelFromString\", { enumerable: true, get: function () { return configuration_1.diagLogLevelFromString; } });\nconst exporter_1 = require(\"./internal/exporter\");\nexports.internal = {\n _export: exporter_1._export,\n};\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractAsyncHooksContextManager = void 0;\nconst events_1 = require(\"events\");\nconst ADD_LISTENER_METHODS = [\n 'addListener',\n 'on',\n 'once',\n 'prependListener',\n 'prependOnceListener',\n];\nclass AbstractAsyncHooksContextManager {\n /**\n * Binds a the certain context or the active one to the target function and then returns the target\n * @param context A context (span) to be bind to target\n * @param target a function or event emitter. When target or one of its callbacks is called,\n * the provided context will be used as the active context for the duration of the call.\n */\n bind(context, target) {\n if (target instanceof events_1.EventEmitter) {\n return this._bindEventEmitter(context, target);\n }\n if (typeof target === 'function') {\n return this._bindFunction(context, target);\n }\n return target;\n }\n _bindFunction(context, target) {\n const manager = this;\n const contextWrapper = function (...args) {\n return manager.with(context, () => target.apply(this, args));\n };\n Object.defineProperty(contextWrapper, 'length', {\n enumerable: false,\n configurable: true,\n writable: false,\n value: target.length,\n });\n /**\n * It isn't possible to tell Typescript that contextWrapper is the same as T\n * so we forced to cast as any here.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return contextWrapper;\n }\n /**\n * By default, EventEmitter call their callback with their context, which we do\n * not want, instead we will bind a specific context to all callbacks that\n * go through it.\n * @param context the context we want to bind\n * @param ee EventEmitter an instance of EventEmitter to patch\n */\n _bindEventEmitter(context, ee) {\n const map = this._getPatchMap(ee);\n if (map !== undefined)\n return ee;\n this._createPatchMap(ee);\n // patch methods that add a listener to propagate context\n ADD_LISTENER_METHODS.forEach(methodName => {\n if (ee[methodName] === undefined)\n return;\n ee[methodName] = this._patchAddListener(ee, ee[methodName], context);\n });\n // patch methods that remove a listener\n if (typeof ee.removeListener === 'function') {\n ee.removeListener = this._patchRemoveListener(ee, ee.removeListener);\n }\n if (typeof ee.off === 'function') {\n ee.off = this._patchRemoveListener(ee, ee.off);\n }\n // patch method that remove all listeners\n if (typeof ee.removeAllListeners === 'function') {\n ee.removeAllListeners = this._patchRemoveAllListeners(ee, ee.removeAllListeners);\n }\n return ee;\n }\n /**\n * Patch methods that remove a given listener so that we match the \"patched\"\n * version of that listener (the one that propagate context).\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n */\n _patchRemoveListener(ee, original) {\n const contextManager = this;\n return function (event, listener) {\n const events = contextManager._getPatchMap(ee)?.[event];\n if (events === undefined) {\n return original.call(this, event, listener);\n }\n const patchedListener = events.get(listener);\n return original.call(this, event, patchedListener || listener);\n };\n }\n /**\n * Patch methods that remove all listeners so we remove our\n * internal references for a given event.\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n */\n _patchRemoveAllListeners(ee, original) {\n const contextManager = this;\n return function (event) {\n const map = contextManager._getPatchMap(ee);\n if (map !== undefined) {\n if (arguments.length === 0) {\n contextManager._createPatchMap(ee);\n }\n else if (map[event] !== undefined) {\n delete map[event];\n }\n }\n return original.apply(this, arguments);\n };\n }\n /**\n * Patch methods on an event emitter instance that can add listeners so we\n * can force them to propagate a given context.\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n * @param [context] context to propagate when calling listeners\n */\n _patchAddListener(ee, original, context) {\n const contextManager = this;\n return function (event, listener) {\n /**\n * This check is required to prevent double-wrapping the listener.\n * The implementation for ee.once wraps the listener and calls ee.on.\n * Without this check, we would wrap that wrapped listener.\n * This causes an issue because ee.removeListener depends on the onceWrapper\n * to properly remove the listener. If we wrap their wrapper, we break\n * that detection.\n */\n if (contextManager._wrapped) {\n return original.call(this, event, listener);\n }\n let map = contextManager._getPatchMap(ee);\n if (map === undefined) {\n map = contextManager._createPatchMap(ee);\n }\n let listeners = map[event];\n if (listeners === undefined) {\n listeners = new WeakMap();\n map[event] = listeners;\n }\n const patchedListener = contextManager.bind(context, listener);\n // store a weak reference of the user listener to ours\n listeners.set(listener, patchedListener);\n /**\n * See comment at the start of this function for the explanation of this property.\n */\n contextManager._wrapped = true;\n try {\n return original.call(this, event, patchedListener);\n }\n finally {\n contextManager._wrapped = false;\n }\n };\n }\n _createPatchMap(ee) {\n const map = Object.create(null);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ee[this._kOtListeners] = map;\n return map;\n }\n _getPatchMap(ee) {\n return ee[this._kOtListeners];\n }\n _kOtListeners = Symbol('OtListeners');\n _wrapped = false;\n}\nexports.AbstractAsyncHooksContextManager = AbstractAsyncHooksContextManager;\n//# sourceMappingURL=AbstractAsyncHooksContextManager.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncHooksContextManager = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst asyncHooks = require(\"async_hooks\");\nconst AbstractAsyncHooksContextManager_1 = require(\"./AbstractAsyncHooksContextManager\");\n/**\n * @deprecated Use AsyncLocalStorageContextManager instead.\n */\nclass AsyncHooksContextManager extends AbstractAsyncHooksContextManager_1.AbstractAsyncHooksContextManager {\n _asyncHook;\n _contexts = new Map();\n _stack = [];\n constructor() {\n super();\n this._asyncHook = asyncHooks.createHook({\n init: this._init.bind(this),\n before: this._before.bind(this),\n after: this._after.bind(this),\n destroy: this._destroy.bind(this),\n promiseResolve: this._destroy.bind(this),\n });\n }\n active() {\n return this._stack[this._stack.length - 1] ?? api_1.ROOT_CONTEXT;\n }\n with(context, fn, thisArg, ...args) {\n this._enterContext(context);\n try {\n return fn.call(thisArg, ...args);\n }\n finally {\n this._exitContext();\n }\n }\n enable() {\n this._asyncHook.enable();\n return this;\n }\n disable() {\n this._asyncHook.disable();\n this._contexts.clear();\n this._stack = [];\n return this;\n }\n /**\n * Init hook will be called when userland create a async context, setting the\n * context as the current one if it exist.\n * @param uid id of the async context\n * @param type the resource type\n */\n _init(uid, type) {\n // ignore TIMERWRAP as they combine timers with same timeout which can lead to\n // false context propagation. TIMERWRAP has been removed in node 11\n // every timer has it's own `Timeout` resource anyway which is used to propagate\n // context.\n if (type === 'TIMERWRAP')\n return;\n const context = this._stack[this._stack.length - 1];\n if (context !== undefined) {\n this._contexts.set(uid, context);\n }\n }\n /**\n * Destroy hook will be called when a given context is no longer used so we can\n * remove its attached context.\n * @param uid uid of the async context\n */\n _destroy(uid) {\n this._contexts.delete(uid);\n }\n /**\n * Before hook is called just before executing a async context.\n * @param uid uid of the async context\n */\n _before(uid) {\n const context = this._contexts.get(uid);\n if (context !== undefined) {\n this._enterContext(context);\n }\n }\n /**\n * After hook is called just after completing the execution of a async context.\n */\n _after() {\n this._exitContext();\n }\n /**\n * Set the given context as active\n */\n _enterContext(context) {\n this._stack.push(context);\n }\n /**\n * Remove the context at the root of the stack\n */\n _exitContext() {\n this._stack.pop();\n }\n}\nexports.AsyncHooksContextManager = AsyncHooksContextManager;\n//# sourceMappingURL=AsyncHooksContextManager.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncLocalStorageContextManager = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst async_hooks_1 = require(\"async_hooks\");\nconst AbstractAsyncHooksContextManager_1 = require(\"./AbstractAsyncHooksContextManager\");\nclass AsyncLocalStorageContextManager extends AbstractAsyncHooksContextManager_1.AbstractAsyncHooksContextManager {\n _asyncLocalStorage;\n constructor() {\n super();\n this._asyncLocalStorage = new async_hooks_1.AsyncLocalStorage();\n }\n active() {\n return this._asyncLocalStorage.getStore() ?? api_1.ROOT_CONTEXT;\n }\n with(context, fn, thisArg, ...args) {\n const cb = thisArg == null ? fn : fn.bind(thisArg);\n return this._asyncLocalStorage.run(context, cb, ...args);\n }\n enable() {\n return this;\n }\n disable() {\n this._asyncLocalStorage.disable();\n return this;\n }\n}\nexports.AsyncLocalStorageContextManager = AsyncLocalStorageContextManager;\n//# sourceMappingURL=AsyncLocalStorageContextManager.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncLocalStorageContextManager = exports.AsyncHooksContextManager = void 0;\nvar AsyncHooksContextManager_1 = require(\"./AsyncHooksContextManager\");\nObject.defineProperty(exports, \"AsyncHooksContextManager\", { enumerable: true, get: function () { return AsyncHooksContextManager_1.AsyncHooksContextManager; } });\nvar AsyncLocalStorageContextManager_1 = require(\"./AsyncLocalStorageContextManager\");\nObject.defineProperty(exports, \"AsyncLocalStorageContextManager\", { enumerable: true, get: function () { return AsyncLocalStorageContextManager_1.AsyncLocalStorageContextManager; } });\n//# sourceMappingURL=index.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._clearDefaultServiceNameCache = exports.defaultServiceName = void 0;\nlet serviceName;\n/**\n * Returns the default service name for OpenTelemetry resources.\n * In Node.js environments, returns \"unknown_service:\".\n * In browser/edge environments, returns \"unknown_service\".\n */\nfunction defaultServiceName() {\n if (serviceName === undefined) {\n try {\n const argv0 = globalThis.process.argv0;\n serviceName = argv0 ? `unknown_service:${argv0}` : 'unknown_service';\n }\n catch {\n serviceName = 'unknown_service';\n }\n }\n return serviceName;\n}\nexports.defaultServiceName = defaultServiceName;\n/** @internal For testing purposes only */\nfunction _clearDefaultServiceNameCache() {\n serviceName = undefined;\n}\nexports._clearDefaultServiceNameCache = _clearDefaultServiceNameCache;\n//# sourceMappingURL=default-service-name.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isPromiseLike = void 0;\nconst isPromiseLike = (val) => {\n return (val !== null &&\n typeof val === 'object' &&\n typeof val.then === 'function');\n};\nexports.isPromiseLike = isPromiseLike;\n//# sourceMappingURL=utils.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultResource = exports.emptyResource = exports.resourceFromDetectedResource = exports.resourceFromAttributes = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst default_service_name_1 = require(\"./default-service-name\");\nconst utils_1 = require(\"./utils\");\nclass ResourceImpl {\n _rawAttributes;\n _asyncAttributesPending = false;\n _schemaUrl;\n _memoizedAttributes;\n static FromAttributeList(attributes, options) {\n const res = new ResourceImpl({}, options);\n res._rawAttributes = guardedRawAttributes(attributes);\n res._asyncAttributesPending =\n attributes.filter(([_, val]) => (0, utils_1.isPromiseLike)(val)).length > 0;\n return res;\n }\n constructor(\n /**\n * A dictionary of attributes with string keys and values that provide\n * information about the entity as numbers, strings or booleans\n * TODO: Consider to add check/validation on attributes.\n */\n resource, options) {\n const attributes = resource.attributes ?? {};\n this._rawAttributes = Object.entries(attributes).map(([k, v]) => {\n if ((0, utils_1.isPromiseLike)(v)) {\n // side-effect\n this._asyncAttributesPending = true;\n }\n return [k, v];\n });\n this._rawAttributes = guardedRawAttributes(this._rawAttributes);\n this._schemaUrl = validateSchemaUrl(options?.schemaUrl);\n }\n get asyncAttributesPending() {\n return this._asyncAttributesPending;\n }\n async waitForAsyncAttributes() {\n if (!this.asyncAttributesPending) {\n return;\n }\n for (let i = 0; i < this._rawAttributes.length; i++) {\n const [k, v] = this._rawAttributes[i];\n this._rawAttributes[i] = [k, (0, utils_1.isPromiseLike)(v) ? await v : v];\n }\n this._asyncAttributesPending = false;\n }\n get attributes() {\n if (this.asyncAttributesPending) {\n api_1.diag.error('Accessing resource attributes before async attributes settled');\n }\n if (this._memoizedAttributes) {\n return this._memoizedAttributes;\n }\n const attrs = {};\n for (const [k, v] of this._rawAttributes) {\n if ((0, utils_1.isPromiseLike)(v)) {\n api_1.diag.debug(`Unsettled resource attribute ${k} skipped`);\n continue;\n }\n if (v != null) {\n attrs[k] ??= v;\n }\n }\n // only memoize output if all attributes are settled\n if (!this._asyncAttributesPending) {\n this._memoizedAttributes = attrs;\n }\n return attrs;\n }\n getRawAttributes() {\n return this._rawAttributes;\n }\n get schemaUrl() {\n return this._schemaUrl;\n }\n merge(resource) {\n if (resource == null)\n return this;\n // Order is important\n // Spec states incoming attributes override existing attributes\n const mergedSchemaUrl = mergeSchemaUrl(this, resource);\n const mergedOptions = mergedSchemaUrl\n ? { schemaUrl: mergedSchemaUrl }\n : undefined;\n return ResourceImpl.FromAttributeList([...resource.getRawAttributes(), ...this.getRawAttributes()], mergedOptions);\n }\n}\nfunction resourceFromAttributes(attributes, options) {\n return ResourceImpl.FromAttributeList(Object.entries(attributes), options);\n}\nexports.resourceFromAttributes = resourceFromAttributes;\nfunction resourceFromDetectedResource(detectedResource, options) {\n return new ResourceImpl(detectedResource, options);\n}\nexports.resourceFromDetectedResource = resourceFromDetectedResource;\nfunction emptyResource() {\n return resourceFromAttributes({});\n}\nexports.emptyResource = emptyResource;\nfunction defaultResource() {\n return resourceFromAttributes({\n [semantic_conventions_1.ATTR_SERVICE_NAME]: (0, default_service_name_1.defaultServiceName)(),\n [semantic_conventions_1.ATTR_TELEMETRY_SDK_LANGUAGE]: core_1.SDK_INFO[semantic_conventions_1.ATTR_TELEMETRY_SDK_LANGUAGE],\n [semantic_conventions_1.ATTR_TELEMETRY_SDK_NAME]: core_1.SDK_INFO[semantic_conventions_1.ATTR_TELEMETRY_SDK_NAME],\n [semantic_conventions_1.ATTR_TELEMETRY_SDK_VERSION]: core_1.SDK_INFO[semantic_conventions_1.ATTR_TELEMETRY_SDK_VERSION],\n });\n}\nexports.defaultResource = defaultResource;\nfunction guardedRawAttributes(attributes) {\n return attributes.map(([k, v]) => {\n if ((0, utils_1.isPromiseLike)(v)) {\n return [\n k,\n v.catch(err => {\n api_1.diag.debug('promise rejection for resource attribute: %s - %s', k, err);\n return undefined;\n }),\n ];\n }\n return [k, v];\n });\n}\nfunction validateSchemaUrl(schemaUrl) {\n if (typeof schemaUrl === 'string' || schemaUrl === undefined) {\n return schemaUrl;\n }\n api_1.diag.warn('Schema URL must be string or undefined, got %s. Schema URL will be ignored.', schemaUrl);\n return undefined;\n}\nfunction mergeSchemaUrl(old, updating) {\n const oldSchemaUrl = old?.schemaUrl;\n const updatingSchemaUrl = updating?.schemaUrl;\n const isOldEmpty = oldSchemaUrl === undefined || oldSchemaUrl === '';\n const isUpdatingEmpty = updatingSchemaUrl === undefined || updatingSchemaUrl === '';\n if (isOldEmpty) {\n return updatingSchemaUrl;\n }\n if (isUpdatingEmpty) {\n return oldSchemaUrl;\n }\n if (oldSchemaUrl === updatingSchemaUrl) {\n return oldSchemaUrl;\n }\n api_1.diag.warn('Schema URL merge conflict: old resource has \"%s\", updating resource has \"%s\". Resulting resource will have undefined Schema URL.', oldSchemaUrl, updatingSchemaUrl);\n return undefined;\n}\n//# sourceMappingURL=ResourceImpl.js.map", @@ -214,406 +168,344 @@ "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimpleSpanProcessor = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\n/**\n * An implementation of the {@link SpanProcessor} that converts the {@link Span}\n * to {@link ReadableSpan} and passes it to the configured exporter.\n *\n * Only spans that are sampled are converted.\n *\n * NOTE: This {@link SpanProcessor} exports every ended span individually instead of batching spans together, which causes significant performance overhead with most exporters. For production use, please consider using the {@link BatchSpanProcessor} instead.\n */\nclass SimpleSpanProcessor {\n _exporter;\n _shutdownOnce;\n _pendingExports;\n constructor(exporter) {\n this._exporter = exporter;\n this._shutdownOnce = new core_1.BindOnceFuture(this._shutdown, this);\n this._pendingExports = new Set();\n }\n async forceFlush() {\n await Promise.all(Array.from(this._pendingExports));\n if (this._exporter.forceFlush) {\n await this._exporter.forceFlush();\n }\n }\n onStart(_span, _parentContext) { }\n onEnd(span) {\n if (this._shutdownOnce.isCalled) {\n return;\n }\n if ((span.spanContext().traceFlags & api_1.TraceFlags.SAMPLED) === 0) {\n return;\n }\n const pendingExport = this._doExport(span).catch(err => (0, core_1.globalErrorHandler)(err));\n // Enqueue this export to the pending list so it can be flushed by the user.\n this._pendingExports.add(pendingExport);\n void pendingExport.finally(() => this._pendingExports.delete(pendingExport));\n }\n async _doExport(span) {\n if (span.resource.asyncAttributesPending) {\n // Ensure resource is fully resolved before exporting.\n await span.resource.waitForAsyncAttributes?.();\n }\n const result = await core_1.internal._export(this._exporter, [span]);\n if (result.code !== core_1.ExportResultCode.SUCCESS) {\n throw (result.error ??\n new Error(`SimpleSpanProcessor: span export failed (status ${result})`));\n }\n }\n shutdown() {\n return this._shutdownOnce.call();\n }\n _shutdown() {\n return this._exporter.shutdown();\n }\n}\nexports.SimpleSpanProcessor = SimpleSpanProcessor;\n//# sourceMappingURL=SimpleSpanProcessor.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NoopSpanProcessor = void 0;\n/** No-op implementation of SpanProcessor */\nclass NoopSpanProcessor {\n onStart(_span, _context) { }\n onEnd(_span) { }\n shutdown() {\n return Promise.resolve();\n }\n forceFlush() {\n return Promise.resolve();\n }\n}\nexports.NoopSpanProcessor = NoopSpanProcessor;\n//# sourceMappingURL=NoopSpanProcessor.js.map", "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SamplingDecision = exports.TraceIdRatioBasedSampler = exports.ParentBasedSampler = exports.AlwaysOnSampler = exports.AlwaysOffSampler = exports.NoopSpanProcessor = exports.SimpleSpanProcessor = exports.InMemorySpanExporter = exports.ConsoleSpanExporter = exports.RandomIdGenerator = exports.BatchSpanProcessor = exports.BasicTracerProvider = void 0;\nvar BasicTracerProvider_1 = require(\"./BasicTracerProvider\");\nObject.defineProperty(exports, \"BasicTracerProvider\", { enumerable: true, get: function () { return BasicTracerProvider_1.BasicTracerProvider; } });\nvar platform_1 = require(\"./platform\");\nObject.defineProperty(exports, \"BatchSpanProcessor\", { enumerable: true, get: function () { return platform_1.BatchSpanProcessor; } });\nObject.defineProperty(exports, \"RandomIdGenerator\", { enumerable: true, get: function () { return platform_1.RandomIdGenerator; } });\nvar ConsoleSpanExporter_1 = require(\"./export/ConsoleSpanExporter\");\nObject.defineProperty(exports, \"ConsoleSpanExporter\", { enumerable: true, get: function () { return ConsoleSpanExporter_1.ConsoleSpanExporter; } });\nvar InMemorySpanExporter_1 = require(\"./export/InMemorySpanExporter\");\nObject.defineProperty(exports, \"InMemorySpanExporter\", { enumerable: true, get: function () { return InMemorySpanExporter_1.InMemorySpanExporter; } });\nvar SimpleSpanProcessor_1 = require(\"./export/SimpleSpanProcessor\");\nObject.defineProperty(exports, \"SimpleSpanProcessor\", { enumerable: true, get: function () { return SimpleSpanProcessor_1.SimpleSpanProcessor; } });\nvar NoopSpanProcessor_1 = require(\"./export/NoopSpanProcessor\");\nObject.defineProperty(exports, \"NoopSpanProcessor\", { enumerable: true, get: function () { return NoopSpanProcessor_1.NoopSpanProcessor; } });\nvar AlwaysOffSampler_1 = require(\"./sampler/AlwaysOffSampler\");\nObject.defineProperty(exports, \"AlwaysOffSampler\", { enumerable: true, get: function () { return AlwaysOffSampler_1.AlwaysOffSampler; } });\nvar AlwaysOnSampler_1 = require(\"./sampler/AlwaysOnSampler\");\nObject.defineProperty(exports, \"AlwaysOnSampler\", { enumerable: true, get: function () { return AlwaysOnSampler_1.AlwaysOnSampler; } });\nvar ParentBasedSampler_1 = require(\"./sampler/ParentBasedSampler\");\nObject.defineProperty(exports, \"ParentBasedSampler\", { enumerable: true, get: function () { return ParentBasedSampler_1.ParentBasedSampler; } });\nvar TraceIdRatioBasedSampler_1 = require(\"./sampler/TraceIdRatioBasedSampler\");\nObject.defineProperty(exports, \"TraceIdRatioBasedSampler\", { enumerable: true, get: function () { return TraceIdRatioBasedSampler_1.TraceIdRatioBasedSampler; } });\nvar Sampler_1 = require(\"./Sampler\");\nObject.defineProperty(exports, \"SamplingDecision\", { enumerable: true, get: function () { return Sampler_1.SamplingDecision; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.23.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-undici';\n//# sourceMappingURL=version.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UndiciInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst diagch = require(\"diagnostics_channel\");\nconst url_1 = require(\"url\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\n// A combination of https://github.com/elastic/apm-agent-nodejs and\n// https://github.com/gadget-inc/opentelemetry-instrumentations/blob/main/packages/opentelemetry-instrumentation-undici/src/index.ts\nclass UndiciInstrumentation extends instrumentation_1.InstrumentationBase {\n _recordFromReq = new WeakMap();\n constructor(config = {}) {\n super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n }\n // No need to instrument files/modules\n init() {\n return undefined;\n }\n disable() {\n super.disable();\n this._channelSubs.forEach(sub => sub.unsubscribe());\n this._channelSubs.length = 0;\n }\n enable() {\n // \"enabled\" handling is currently a bit messy with InstrumentationBase.\n // If constructed with `{enabled: false}`, this `.enable()` is still called,\n // and `this.getConfig().enabled !== this.isEnabled()`, creating confusion.\n //\n // For now, this class will setup for instrumenting if `.enable()` is\n // called, but use `this.getConfig().enabled` to determine if\n // instrumentation should be generated. This covers the more likely common\n // case of config being given a construction time, rather than later via\n // `instance.enable()`, `.disable()`, or `.setConfig()` calls.\n super.enable();\n // This method is called by the super-class constructor before ours is\n // called. So we need to ensure the property is initalized.\n this._channelSubs = this._channelSubs || [];\n // Avoid to duplicate subscriptions\n if (this._channelSubs.length > 0) {\n return;\n }\n this.subscribeToChannel('undici:request:create', this.onRequestCreated.bind(this));\n this.subscribeToChannel('undici:client:sendHeaders', this.onRequestHeaders.bind(this));\n this.subscribeToChannel('undici:request:headers', this.onResponseHeaders.bind(this));\n this.subscribeToChannel('undici:request:trailers', this.onDone.bind(this));\n this.subscribeToChannel('undici:request:error', this.onError.bind(this));\n }\n _updateMetricInstruments() {\n this._httpClientDurationHistogram = this.meter.createHistogram(semantic_conventions_1.METRIC_HTTP_CLIENT_REQUEST_DURATION, {\n description: 'Measures the duration of outbound HTTP requests.',\n unit: 's',\n valueType: api_1.ValueType.DOUBLE,\n advice: {\n explicitBucketBoundaries: [\n 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5,\n 7.5, 10,\n ],\n },\n });\n }\n subscribeToChannel(diagnosticChannel, onMessage) {\n // `diagnostics_channel` had a ref counting bug until v18.19.0.\n // https://github.com/nodejs/node/pull/47520\n const [major, minor] = process.version\n .replace('v', '')\n .split('.')\n .map(n => Number(n));\n const useNewSubscribe = major > 18 || (major === 18 && minor >= 19);\n let unsubscribe;\n if (useNewSubscribe) {\n diagch.subscribe?.(diagnosticChannel, onMessage);\n unsubscribe = () => diagch.unsubscribe?.(diagnosticChannel, onMessage);\n }\n else {\n const channel = diagch.channel(diagnosticChannel);\n channel.subscribe(onMessage);\n unsubscribe = () => channel.unsubscribe(onMessage);\n }\n this._channelSubs.push({\n name: diagnosticChannel,\n unsubscribe,\n });\n }\n parseRequestHeaders(request) {\n const result = new Map();\n if (Array.isArray(request.headers)) {\n // headers are an array [k1, v2, k2, v2] (undici v6+)\n // values could be string or a string[] for multiple values\n for (let i = 0; i < request.headers.length; i += 2) {\n const key = request.headers[i];\n const value = request.headers[i + 1];\n // Key should always be a string, but the types don't know that, and let's be safe\n if (typeof key === 'string') {\n result.set(key.toLowerCase(), value);\n }\n }\n }\n else if (typeof request.headers === 'string') {\n // headers are a raw string (undici v5)\n // headers could be repeated in several lines for multiple values\n const headers = request.headers.split('\\r\\n');\n for (const line of headers) {\n if (!line) {\n continue;\n }\n const colonIndex = line.indexOf(':');\n if (colonIndex === -1) {\n // Invalid header? Probably this can't happen, but again let's be safe.\n continue;\n }\n const key = line.substring(0, colonIndex).toLowerCase();\n const value = line.substring(colonIndex + 1).trim();\n const allValues = result.get(key);\n if (allValues && Array.isArray(allValues)) {\n allValues.push(value);\n }\n else if (allValues) {\n result.set(key, [allValues, value]);\n }\n else {\n result.set(key, value);\n }\n }\n }\n return result;\n }\n // This is the 1st message we receive for each request (fired after request creation). Here we will\n // create the span and populate some atttributes, then link the span to the request for further\n // span processing\n onRequestCreated({ request }) {\n // Ignore if:\n // - instrumentation is disabled\n // - ignored by config\n // - method is 'CONNECT'\n const config = this.getConfig();\n const enabled = config.enabled !== false;\n const shouldIgnoreReq = (0, instrumentation_1.safeExecuteInTheMiddle)(() => !enabled ||\n request.method === 'CONNECT' ||\n config.ignoreRequestHook?.(request), e => e && this._diag.error('caught ignoreRequestHook error: ', e), true);\n if (shouldIgnoreReq) {\n return;\n }\n const startTime = (0, core_1.hrTime)();\n let requestUrl;\n try {\n requestUrl = new url_1.URL(request.path, request.origin);\n }\n catch (err) {\n this._diag.warn('could not determine url.full:', err);\n // Skip instrumenting this request.\n return;\n }\n const urlScheme = requestUrl.protocol.replace(':', '');\n const requestMethod = this.getRequestMethod(request.method);\n const attributes = {\n [semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD]: requestMethod,\n [semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]: request.method,\n [semantic_conventions_1.ATTR_URL_FULL]: requestUrl.toString(),\n [semantic_conventions_1.ATTR_URL_PATH]: requestUrl.pathname,\n [semantic_conventions_1.ATTR_URL_QUERY]: requestUrl.search,\n [semantic_conventions_1.ATTR_URL_SCHEME]: urlScheme,\n };\n const schemePorts = { https: '443', http: '80' };\n const serverAddress = requestUrl.hostname;\n const serverPort = requestUrl.port || schemePorts[urlScheme];\n attributes[semantic_conventions_1.ATTR_SERVER_ADDRESS] = serverAddress;\n if (serverPort && !isNaN(Number(serverPort))) {\n attributes[semantic_conventions_1.ATTR_SERVER_PORT] = Number(serverPort);\n }\n // Get user agent from headers\n const headersMap = this.parseRequestHeaders(request);\n const userAgentValues = headersMap.get('user-agent');\n if (userAgentValues) {\n // NOTE: having multiple user agents is not expected so\n // we're going to take last one like `curl` does\n // ref: https://curl.se/docs/manpage.html#-A\n const userAgent = Array.isArray(userAgentValues)\n ? userAgentValues[userAgentValues.length - 1]\n : userAgentValues;\n attributes[semantic_conventions_1.ATTR_USER_AGENT_ORIGINAL] = userAgent;\n }\n // Get attributes from the hook if present\n const hookAttributes = (0, instrumentation_1.safeExecuteInTheMiddle)(() => config.startSpanHook?.(request), e => e && this._diag.error('caught startSpanHook error: ', e), true);\n if (hookAttributes) {\n Object.entries(hookAttributes).forEach(([key, val]) => {\n attributes[key] = val;\n });\n }\n // Check if parent span is required via config and:\n // - if a parent is required but not present, we use a `NoopSpan` to still\n // propagate context without recording it.\n // - create a span otherwise\n const activeCtx = api_1.context.active();\n const currentSpan = api_1.trace.getSpan(activeCtx);\n let span;\n if (config.requireParentforSpans &&\n (!currentSpan || !api_1.trace.isSpanContextValid(currentSpan.spanContext()))) {\n span = api_1.trace.wrapSpanContext(api_1.INVALID_SPAN_CONTEXT);\n }\n else {\n span = this.tracer.startSpan(requestMethod === '_OTHER' ? 'HTTP' : requestMethod, {\n kind: api_1.SpanKind.CLIENT,\n attributes: attributes,\n }, activeCtx);\n }\n // Execute the request hook if defined\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => config.requestHook?.(span, request), e => e && this._diag.error('caught requestHook error: ', e), true);\n // Context propagation goes last so no hook can tamper\n // the propagation headers\n const requestContext = api_1.trace.setSpan(api_1.context.active(), span);\n const addedHeaders = {};\n api_1.propagation.inject(requestContext, addedHeaders);\n const headerEntries = Object.entries(addedHeaders);\n for (let i = 0; i < headerEntries.length; i++) {\n const [k, v] = headerEntries[i];\n if (typeof request.addHeader === 'function') {\n request.addHeader(k, v);\n }\n else if (typeof request.headers === 'string') {\n request.headers += `${k}: ${v}\\r\\n`;\n }\n else if (Array.isArray(request.headers)) {\n // undici@6.11.0 accidentally, briefly removed `request.addHeader()`.\n request.headers.push(k, v);\n }\n }\n this._recordFromReq.set(request, { span, attributes, startTime });\n }\n // This is the 2nd message we receive for each request. It is fired when connection with\n // the remote is established and about to send the first byte. Here we do have info about the\n // remote address and port so we can populate some `network.*` attributes into the span\n onRequestHeaders({ request, socket }) {\n const record = this._recordFromReq.get(request);\n if (!record) {\n return;\n }\n const config = this.getConfig();\n const { span } = record;\n const { remoteAddress, remotePort } = socket;\n const spanAttributes = {\n [semantic_conventions_1.ATTR_NETWORK_PEER_ADDRESS]: remoteAddress,\n [semantic_conventions_1.ATTR_NETWORK_PEER_PORT]: remotePort,\n };\n // After hooks have been processed (which may modify request headers)\n // we can collect the headers based on the configuration\n if (config.headersToSpanAttributes?.requestHeaders) {\n const headersToAttribs = new Set(config.headersToSpanAttributes.requestHeaders.map(n => n.toLowerCase()));\n const headersMap = this.parseRequestHeaders(request);\n for (const [name, value] of headersMap.entries()) {\n if (headersToAttribs.has(name)) {\n const attrValue = Array.isArray(value) ? value : [value];\n spanAttributes[`http.request.header.${name}`] = attrValue;\n }\n }\n }\n span.setAttributes(spanAttributes);\n }\n // This is the 3rd message we get for each request and it's fired when the server\n // headers are received, body may not be accessible yet.\n // From the response headers we can set the status and content length\n onResponseHeaders({ request, response, }) {\n const record = this._recordFromReq.get(request);\n if (!record) {\n return;\n }\n const { span, attributes } = record;\n const spanAttributes = {\n [semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE]: response.statusCode,\n };\n const config = this.getConfig();\n // Execute the response hook if defined\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => config.responseHook?.(span, { request, response }), e => e && this._diag.error('caught responseHook error: ', e), true);\n if (config.headersToSpanAttributes?.responseHeaders) {\n const headersToAttribs = new Set();\n config.headersToSpanAttributes?.responseHeaders.forEach(name => headersToAttribs.add(name.toLowerCase()));\n for (let idx = 0; idx < response.headers.length; idx = idx + 2) {\n const name = response.headers[idx].toString().toLowerCase();\n const value = response.headers[idx + 1];\n if (headersToAttribs.has(name)) {\n const attrName = `http.response.header.${name}`;\n if (!Object.hasOwn(spanAttributes, attrName)) {\n spanAttributes[attrName] = [value.toString()];\n }\n else {\n spanAttributes[attrName].push(value.toString());\n }\n }\n }\n }\n span.setAttributes(spanAttributes);\n span.setStatus({\n code: response.statusCode >= 400\n ? api_1.SpanStatusCode.ERROR\n : api_1.SpanStatusCode.UNSET,\n });\n record.attributes = Object.assign(attributes, spanAttributes);\n }\n // This is the last event we receive if the request went without any errors\n onDone({ request }) {\n const record = this._recordFromReq.get(request);\n if (!record) {\n return;\n }\n const { span, attributes, startTime } = record;\n // End the span\n span.end();\n this._recordFromReq.delete(request);\n // Record metrics\n this.recordRequestDuration(attributes, startTime);\n }\n // This is the event we get when something is wrong in the request like\n // - invalid options when calling `fetch` global API or any undici method for request\n // - connectivity errors such as unreachable host\n // - requests aborted through an `AbortController.signal`\n // NOTE: server errors are considered valid responses and it's the lib consumer\n // who should deal with that.\n onError({ request, error }) {\n const record = this._recordFromReq.get(request);\n if (!record) {\n return;\n }\n const { span, attributes, startTime } = record;\n // NOTE: in `undici@6.3.0` when request aborted the error type changes from\n // a custom error (`RequestAbortedError`) to a built-in `DOMException` carrying\n // some differences:\n // - `code` is from DOMEXception (ABORT_ERR: 20)\n // - `message` changes\n // - stacktrace is smaller and contains node internal frames\n span.recordException(error);\n span.setStatus({\n code: api_1.SpanStatusCode.ERROR,\n message: error.message,\n });\n span.end();\n this._recordFromReq.delete(request);\n // Record metrics (with the error)\n attributes[semantic_conventions_1.ATTR_ERROR_TYPE] = error.message;\n this.recordRequestDuration(attributes, startTime);\n }\n recordRequestDuration(attributes, startTime) {\n // Time to record metrics\n const metricsAttributes = {};\n // Get the attribs already in span attributes\n const keysToCopy = [\n semantic_conventions_1.ATTR_HTTP_RESPONSE_STATUS_CODE,\n semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD,\n semantic_conventions_1.ATTR_SERVER_ADDRESS,\n semantic_conventions_1.ATTR_SERVER_PORT,\n semantic_conventions_1.ATTR_URL_SCHEME,\n semantic_conventions_1.ATTR_ERROR_TYPE,\n ];\n keysToCopy.forEach(key => {\n if (key in attributes) {\n metricsAttributes[key] = attributes[key];\n }\n });\n // Take the duration and record it\n const durationSeconds = (0, core_1.hrTimeToMilliseconds)((0, core_1.hrTimeDuration)(startTime, (0, core_1.hrTime)())) / 1000;\n this._httpClientDurationHistogram.record(durationSeconds, metricsAttributes);\n }\n getRequestMethod(original) {\n const knownMethods = {\n CONNECT: true,\n OPTIONS: true,\n HEAD: true,\n GET: true,\n POST: true,\n PUT: true,\n PATCH: true,\n DELETE: true,\n TRACE: true,\n // QUERY from https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/\n QUERY: true,\n };\n if (original.toUpperCase() in knownMethods) {\n return original.toUpperCase();\n }\n return '_OTHER';\n }\n}\nexports.UndiciInstrumentation = UndiciInstrumentation;\n//# sourceMappingURL=undici.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UndiciInstrumentation = void 0;\nvar undici_1 = require(\"./undici\");\nObject.defineProperty(exports, \"UndiciInstrumentation\", { enumerable: true, get: function () { return undici_1.UndiciInstrumentation; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressLayerType = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar ExpressLayerType;\n(function (ExpressLayerType) {\n ExpressLayerType[\"ROUTER\"] = \"router\";\n ExpressLayerType[\"MIDDLEWARE\"] = \"middleware\";\n ExpressLayerType[\"REQUEST_HANDLER\"] = \"request_handler\";\n})(ExpressLayerType = exports.ExpressLayerType || (exports.ExpressLayerType = {}));\n//# sourceMappingURL=ExpressLayerType.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar AttributeNames;\n(function (AttributeNames) {\n AttributeNames[\"EXPRESS_TYPE\"] = \"express.type\";\n AttributeNames[\"EXPRESS_NAME\"] = \"express.name\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._LAYERS_STORE_PROPERTY = exports.kLayerPatched = void 0;\n/**\n * This symbol is used to mark express layer as being already instrumented\n * since its possible to use a given layer multiple times (ex: middlewares)\n */\nexports.kLayerPatched = Symbol('express-layer-patched');\n/**\n * This const define where on the `request` object the Instrumentation will mount the\n * current stack of express layer.\n *\n * It is necessary because express doesn't store the different layers\n * (ie: middleware, router etc) that it called to get to the current layer.\n * Given that, the only way to know the route of a given layer is to\n * store the path of where each previous layer has been mounted.\n *\n * ex: bodyParser > auth middleware > /users router > get /:id\n * in this case the stack would be: [\"/users\", \"/:id\"]\n *\n * ex2: bodyParser > /api router > /v1 router > /users router > get /:id\n * stack: [\"/api\", \"/v1\", \"/users\", \":id\"]\n *\n */\nexports._LAYERS_STORE_PROPERTY = '__ot_middlewares';\n//# sourceMappingURL=internal-types.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getActualMatchedRoute = exports.getConstructedRoute = exports.getLayerPath = exports.asErrorAndMessage = exports.isLayerIgnored = exports.getLayerMetadata = exports.getRouterPath = exports.storeLayerPath = void 0;\nconst ExpressLayerType_1 = require(\"./enums/ExpressLayerType\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst internal_types_1 = require(\"./internal-types\");\n/**\n * Store layers path in the request to be able to construct route later\n * @param request The request where\n * @param [value] the value to push into the array\n */\nconst storeLayerPath = (request, value) => {\n if (Array.isArray(request[internal_types_1._LAYERS_STORE_PROPERTY]) === false) {\n Object.defineProperty(request, internal_types_1._LAYERS_STORE_PROPERTY, {\n enumerable: false,\n value: [],\n });\n }\n if (value === undefined)\n return { isLayerPathStored: false };\n request[internal_types_1._LAYERS_STORE_PROPERTY].push(value);\n return { isLayerPathStored: true };\n};\nexports.storeLayerPath = storeLayerPath;\n/**\n * Recursively search the router path from layer stack\n * @param path The path to reconstruct\n * @param layer The layer to reconstruct from\n * @returns The reconstructed path\n */\nconst getRouterPath = (path, layer) => {\n const stackLayer = layer.handle?.stack?.[0];\n if (stackLayer?.route?.path) {\n return `${path}${stackLayer.route.path}`;\n }\n if (stackLayer?.handle?.stack) {\n return (0, exports.getRouterPath)(path, stackLayer);\n }\n return path;\n};\nexports.getRouterPath = getRouterPath;\n/**\n * Parse express layer context to retrieve a name and attributes.\n * @param route The route of the layer\n * @param layer Express layer\n * @param [layerPath] if present, the path on which the layer has been mounted\n */\nconst getLayerMetadata = (route, layer, layerPath) => {\n if (layer.name === 'router') {\n const maybeRouterPath = (0, exports.getRouterPath)('', layer);\n const extractedRouterPath = maybeRouterPath\n ? maybeRouterPath\n : layerPath || route || '/';\n return {\n attributes: {\n [AttributeNames_1.AttributeNames.EXPRESS_NAME]: extractedRouterPath,\n [AttributeNames_1.AttributeNames.EXPRESS_TYPE]: ExpressLayerType_1.ExpressLayerType.ROUTER,\n },\n name: `router - ${extractedRouterPath}`,\n };\n }\n else if (layer.name === 'bound dispatch' || layer.name === 'handle') {\n return {\n attributes: {\n [AttributeNames_1.AttributeNames.EXPRESS_NAME]: (route || layerPath) ?? 'request handler',\n [AttributeNames_1.AttributeNames.EXPRESS_TYPE]: ExpressLayerType_1.ExpressLayerType.REQUEST_HANDLER,\n },\n name: `request handler${layer.path ? ` - ${route || layerPath}` : ''}`,\n };\n }\n else {\n return {\n attributes: {\n [AttributeNames_1.AttributeNames.EXPRESS_NAME]: layer.name,\n [AttributeNames_1.AttributeNames.EXPRESS_TYPE]: ExpressLayerType_1.ExpressLayerType.MIDDLEWARE,\n },\n name: `middleware - ${layer.name}`,\n };\n }\n};\nexports.getLayerMetadata = getLayerMetadata;\n/**\n * Check whether the given obj match pattern\n * @param constant e.g URL of request\n * @param obj obj to inspect\n * @param pattern Match pattern\n */\nconst satisfiesPattern = (constant, pattern) => {\n if (typeof pattern === 'string') {\n return pattern === constant;\n }\n else if (pattern instanceof RegExp) {\n return pattern.test(constant);\n }\n else if (typeof pattern === 'function') {\n return pattern(constant);\n }\n else {\n throw new TypeError('Pattern is in unsupported datatype');\n }\n};\n/**\n * Check whether the given request is ignored by configuration\n * It will not re-throw exceptions from `list` provided by the client\n * @param constant e.g URL of request\n * @param [list] List of ignore patterns\n * @param [onException] callback for doing something when an exception has\n * occurred\n */\nconst isLayerIgnored = (name, type, config) => {\n if (Array.isArray(config?.ignoreLayersType) &&\n config?.ignoreLayersType?.includes(type)) {\n return true;\n }\n if (Array.isArray(config?.ignoreLayers) === false)\n return false;\n try {\n for (const pattern of config.ignoreLayers) {\n if (satisfiesPattern(name, pattern)) {\n return true;\n }\n }\n }\n catch (e) {\n /* catch block*/\n }\n return false;\n};\nexports.isLayerIgnored = isLayerIgnored;\n/**\n * Converts a user-provided error value into an error and error message pair\n *\n * @param error - User-provided error value\n * @returns Both an Error or string representation of the value and an error message\n */\nconst asErrorAndMessage = (error) => error instanceof Error\n ? [error, error.message]\n : [String(error), String(error)];\nexports.asErrorAndMessage = asErrorAndMessage;\n/**\n * Extracts the layer path from the route arguments\n *\n * @param args - Arguments of the route\n * @returns The layer path\n */\nconst getLayerPath = (args) => {\n const firstArg = args[0];\n if (Array.isArray(firstArg)) {\n return firstArg.map(arg => extractLayerPathSegment(arg) || '').join(',');\n }\n return extractLayerPathSegment(firstArg);\n};\nexports.getLayerPath = getLayerPath;\nconst extractLayerPathSegment = (arg) => {\n if (typeof arg === 'string') {\n return arg;\n }\n if (arg instanceof RegExp || typeof arg === 'number') {\n return arg.toString();\n }\n return;\n};\nfunction getConstructedRoute(req) {\n const layersStore = Array.isArray(req[internal_types_1._LAYERS_STORE_PROPERTY])\n ? req[internal_types_1._LAYERS_STORE_PROPERTY]\n : [];\n const meaningfulPaths = layersStore.filter(path => path !== '/' && path !== '/*');\n if (meaningfulPaths.length === 1 && meaningfulPaths[0] === '*') {\n return '*';\n }\n // Join parts and remove duplicate slashes\n return meaningfulPaths.join('').replace(/\\/{2,}/g, '/');\n}\nexports.getConstructedRoute = getConstructedRoute;\n/**\n * Extracts the actual matched route from Express request for OpenTelemetry instrumentation.\n * Returns the route that should be used as the http.route attribute.\n *\n * @param req - The Express request object with layers store\n * @param layersStoreProperty - The property name where layer paths are stored\n * @returns The matched route string or undefined if no valid route is found\n */\nfunction getActualMatchedRoute(req) {\n const layersStore = Array.isArray(req[internal_types_1._LAYERS_STORE_PROPERTY])\n ? req[internal_types_1._LAYERS_STORE_PROPERTY]\n : [];\n // If no layers are stored, no route can be determined\n if (layersStore.length === 0) {\n return undefined;\n }\n // Handle root path case - if all paths are root, only return root if originalUrl is also root\n // The layer store also includes root paths in case a non-existing url was requested\n if (layersStore.every(path => path === '/')) {\n return req.originalUrl === '/' ? '/' : undefined;\n }\n const constructedRoute = getConstructedRoute(req);\n if (constructedRoute === '*') {\n return constructedRoute;\n }\n // For RegExp routes or route arrays, return the constructed route\n // This handles the case where the route is defined using RegExp or an array\n if (constructedRoute.includes('/') &&\n (constructedRoute.includes(',') ||\n constructedRoute.includes('\\\\') ||\n constructedRoute.includes('*') ||\n constructedRoute.includes('['))) {\n return constructedRoute;\n }\n // Ensure route starts with '/' if it doesn't already\n const normalizedRoute = constructedRoute.startsWith('/')\n ? constructedRoute\n : `/${constructedRoute}`;\n // Validate that this appears to be a matched route\n // A route is considered matched if:\n // 1. We have a constructed route\n // 2. The original URL matches or starts with our route pattern\n const isValidRoute = normalizedRoute.length > 0 &&\n (req.originalUrl === normalizedRoute ||\n req.originalUrl.startsWith(normalizedRoute) ||\n isRoutePattern(normalizedRoute));\n return isValidRoute ? normalizedRoute : undefined;\n}\nexports.getActualMatchedRoute = getActualMatchedRoute;\n/**\n * Checks if a route contains parameter patterns (e.g., :id, :userId)\n * which are valid even if they don't exactly match the original URL\n */\nfunction isRoutePattern(route) {\n return route.includes(':') || route.includes('*');\n}\n//# sourceMappingURL=utils.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.61.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-express';\n//# sourceMappingURL=version.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressInstrumentation = void 0;\nconst core_1 = require(\"@opentelemetry/core\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst ExpressLayerType_1 = require(\"./enums/ExpressLayerType\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst utils_1 = require(\"./utils\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst internal_types_1 = require(\"./internal-types\");\n/** Express instrumentation for OpenTelemetry */\nclass ExpressInstrumentation extends instrumentation_1.InstrumentationBase {\n constructor(config = {}) {\n super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n }\n init() {\n return [\n new instrumentation_1.InstrumentationNodeModuleDefinition('express', ['>=4.0.0 <6'], moduleExports => {\n const isExpressWithRouterPrototype = typeof moduleExports?.Router?.prototype?.route === 'function';\n const routerProto = isExpressWithRouterPrototype\n ? moduleExports.Router.prototype // Express v5\n : moduleExports.Router; // Express v4\n // patch express.Router.route\n if ((0, instrumentation_1.isWrapped)(routerProto.route)) {\n this._unwrap(routerProto, 'route');\n }\n this._wrap(routerProto, 'route', this._getRoutePatch());\n // patch express.Router.use\n if ((0, instrumentation_1.isWrapped)(routerProto.use)) {\n this._unwrap(routerProto, 'use');\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._wrap(routerProto, 'use', this._getRouterUsePatch());\n // patch express.Application.use\n if ((0, instrumentation_1.isWrapped)(moduleExports.application.use)) {\n this._unwrap(moduleExports.application, 'use');\n }\n this._wrap(moduleExports.application, 'use', \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._getAppUsePatch(isExpressWithRouterPrototype));\n return moduleExports;\n }, moduleExports => {\n if (moduleExports === undefined)\n return;\n const isExpressWithRouterPrototype = typeof moduleExports?.Router?.prototype?.route === 'function';\n const routerProto = isExpressWithRouterPrototype\n ? moduleExports.Router.prototype\n : moduleExports.Router;\n this._unwrap(routerProto, 'route');\n this._unwrap(routerProto, 'use');\n this._unwrap(moduleExports.application, 'use');\n }),\n ];\n }\n /**\n * Get the patch for Router.route function\n */\n _getRoutePatch() {\n const instrumentation = this;\n return function (original) {\n return function route_trace(...args) {\n const route = original.apply(this, args);\n const layer = this.stack[this.stack.length - 1];\n instrumentation._applyPatch(layer, (0, utils_1.getLayerPath)(args));\n return route;\n };\n };\n }\n /**\n * Get the patch for Router.use function\n */\n _getRouterUsePatch() {\n const instrumentation = this;\n return function (original) {\n return function use(...args) {\n const route = original.apply(this, args);\n const layer = this.stack[this.stack.length - 1];\n instrumentation._applyPatch(layer, (0, utils_1.getLayerPath)(args));\n return route;\n };\n };\n }\n /**\n * Get the patch for Application.use function\n */\n _getAppUsePatch(isExpressWithRouterPrototype) {\n const instrumentation = this;\n return function (original) {\n return function use(...args) {\n // If we access app.router in express 4.x we trigger an assertion error.\n // This property existed in v3, was removed in v4 and then re-added in v5.\n const router = isExpressWithRouterPrototype\n ? this.router\n : this._router;\n const route = original.apply(this, args);\n if (router) {\n const layer = router.stack[router.stack.length - 1];\n instrumentation._applyPatch(layer, (0, utils_1.getLayerPath)(args));\n }\n return route;\n };\n };\n }\n /** Patch each express layer to create span and propagate context */\n _applyPatch(layer, layerPath) {\n const instrumentation = this;\n // avoid patching multiple times the same layer\n if (layer[internal_types_1.kLayerPatched] === true)\n return;\n layer[internal_types_1.kLayerPatched] = true;\n this._wrap(layer, 'handle', original => {\n // TODO: instrument error handlers\n if (original.length === 4)\n return original;\n const patched = function (req, res) {\n const { isLayerPathStored } = (0, utils_1.storeLayerPath)(req, layerPath);\n const constructedRoute = (0, utils_1.getConstructedRoute)(req);\n const actualMatchedRoute = (0, utils_1.getActualMatchedRoute)(req);\n const attributes = {\n [semantic_conventions_1.ATTR_HTTP_ROUTE]: actualMatchedRoute,\n };\n const metadata = (0, utils_1.getLayerMetadata)(constructedRoute, layer, layerPath);\n const type = metadata.attributes[AttributeNames_1.AttributeNames.EXPRESS_TYPE];\n const rpcMetadata = (0, core_1.getRPCMetadata)(api_1.context.active());\n if (rpcMetadata?.type === core_1.RPCType.HTTP) {\n rpcMetadata.route = actualMatchedRoute;\n }\n // verify against the config if the layer should be ignored\n if ((0, utils_1.isLayerIgnored)(metadata.name, type, instrumentation.getConfig())) {\n if (type === ExpressLayerType_1.ExpressLayerType.MIDDLEWARE) {\n req[internal_types_1._LAYERS_STORE_PROPERTY].pop();\n }\n return original.apply(this, arguments);\n }\n if (api_1.trace.getSpan(api_1.context.active()) === undefined) {\n return original.apply(this, arguments);\n }\n const spanName = instrumentation._getSpanName({\n request: req,\n layerType: type,\n route: constructedRoute,\n }, metadata.name);\n const span = instrumentation.tracer.startSpan(spanName, {\n attributes: Object.assign(attributes, metadata.attributes),\n });\n const parentContext = api_1.context.active();\n let currentContext = api_1.trace.setSpan(parentContext, span);\n const { requestHook } = instrumentation.getConfig();\n if (requestHook) {\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => requestHook(span, {\n request: req,\n layerType: type,\n route: constructedRoute,\n }), e => {\n if (e) {\n api_1.diag.error('express instrumentation: request hook failed', e);\n }\n }, true);\n }\n let spanHasEnded = false;\n // TODO: Fix router spans (getRouterPath does not work properly) to\n // have useful names before removing this branch\n if (metadata.attributes[AttributeNames_1.AttributeNames.EXPRESS_TYPE] ===\n ExpressLayerType_1.ExpressLayerType.ROUTER) {\n span.end();\n spanHasEnded = true;\n currentContext = parentContext;\n }\n // listener for response.on('finish')\n const onResponseFinish = () => {\n if (spanHasEnded === false) {\n spanHasEnded = true;\n span.end();\n }\n };\n // verify we have a callback\n const args = Array.from(arguments);\n const callbackIdx = args.findIndex(arg => typeof arg === 'function');\n if (callbackIdx >= 0) {\n arguments[callbackIdx] = function () {\n // express considers anything but an empty value, \"route\" or \"router\"\n // passed to its callback to be an error\n const maybeError = arguments[0];\n const isError = ![undefined, null, 'route', 'router'].includes(maybeError);\n if (!spanHasEnded && isError) {\n const [error, message] = (0, utils_1.asErrorAndMessage)(maybeError);\n span.recordException(error);\n span.setStatus({\n code: api_1.SpanStatusCode.ERROR,\n message,\n });\n }\n if (spanHasEnded === false) {\n spanHasEnded = true;\n req.res?.removeListener('finish', onResponseFinish);\n span.end();\n }\n if (!(req.route && isError) && isLayerPathStored) {\n req[internal_types_1._LAYERS_STORE_PROPERTY].pop();\n }\n const callback = args[callbackIdx];\n return api_1.context.bind(parentContext, callback).apply(this, arguments);\n };\n }\n try {\n return api_1.context.bind(currentContext, original).apply(this, arguments);\n }\n catch (anyError) {\n const [error, message] = (0, utils_1.asErrorAndMessage)(anyError);\n span.recordException(error);\n span.setStatus({\n code: api_1.SpanStatusCode.ERROR,\n message,\n });\n throw anyError;\n }\n finally {\n /**\n * At this point if the callback wasn't called, that means either the\n * layer is asynchronous (so it will call the callback later on) or that\n * the layer directly ends the http response, so we'll hook into the \"finish\"\n * event to handle the later case.\n */\n if (!spanHasEnded) {\n res.once('finish', onResponseFinish);\n }\n }\n };\n // `handle` isn't just a regular function in some cases. It also contains\n // some properties holding metadata and state so we need to proxy them\n // through through patched function\n // ref: https://github.com/open-telemetry/opentelemetry-js-contrib/issues/1950\n // Also some apps/libs do their own patching before OTEL and have these properties\n // in the proptotype. So we use a `for...in` loop to get own properties and also\n // any enumerable prop in the prototype chain\n // ref: https://github.com/open-telemetry/opentelemetry-js-contrib/issues/2271\n for (const key in original) {\n Object.defineProperty(patched, key, {\n get() {\n return original[key];\n },\n set(value) {\n original[key] = value;\n },\n });\n }\n return patched;\n });\n }\n _getSpanName(info, defaultName) {\n const { spanNameHook } = this.getConfig();\n if (!(spanNameHook instanceof Function)) {\n return defaultName;\n }\n try {\n return spanNameHook(info, defaultName) ?? defaultName;\n }\n catch (err) {\n api_1.diag.error('express instrumentation: error calling span name rewrite hook', err);\n return defaultName;\n }\n }\n}\nexports.ExpressInstrumentation = ExpressInstrumentation;\n//# sourceMappingURL=instrumentation.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = exports.ExpressLayerType = exports.ExpressInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"ExpressInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.ExpressInstrumentation; } });\nvar ExpressLayerType_1 = require(\"./enums/ExpressLayerType\");\nObject.defineProperty(exports, \"ExpressLayerType\", { enumerable: true, get: function () { return ExpressLayerType_1.ExpressLayerType; } });\nvar AttributeNames_1 = require(\"./enums/AttributeNames\");\nObject.defineProperty(exports, \"AttributeNames\", { enumerable: true, get: function () { return AttributeNames_1.AttributeNames; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SeverityNumber = void 0;\nvar SeverityNumber;\n(function (SeverityNumber) {\n SeverityNumber[SeverityNumber[\"UNSPECIFIED\"] = 0] = \"UNSPECIFIED\";\n SeverityNumber[SeverityNumber[\"TRACE\"] = 1] = \"TRACE\";\n SeverityNumber[SeverityNumber[\"TRACE2\"] = 2] = \"TRACE2\";\n SeverityNumber[SeverityNumber[\"TRACE3\"] = 3] = \"TRACE3\";\n SeverityNumber[SeverityNumber[\"TRACE4\"] = 4] = \"TRACE4\";\n SeverityNumber[SeverityNumber[\"DEBUG\"] = 5] = \"DEBUG\";\n SeverityNumber[SeverityNumber[\"DEBUG2\"] = 6] = \"DEBUG2\";\n SeverityNumber[SeverityNumber[\"DEBUG3\"] = 7] = \"DEBUG3\";\n SeverityNumber[SeverityNumber[\"DEBUG4\"] = 8] = \"DEBUG4\";\n SeverityNumber[SeverityNumber[\"INFO\"] = 9] = \"INFO\";\n SeverityNumber[SeverityNumber[\"INFO2\"] = 10] = \"INFO2\";\n SeverityNumber[SeverityNumber[\"INFO3\"] = 11] = \"INFO3\";\n SeverityNumber[SeverityNumber[\"INFO4\"] = 12] = \"INFO4\";\n SeverityNumber[SeverityNumber[\"WARN\"] = 13] = \"WARN\";\n SeverityNumber[SeverityNumber[\"WARN2\"] = 14] = \"WARN2\";\n SeverityNumber[SeverityNumber[\"WARN3\"] = 15] = \"WARN3\";\n SeverityNumber[SeverityNumber[\"WARN4\"] = 16] = \"WARN4\";\n SeverityNumber[SeverityNumber[\"ERROR\"] = 17] = \"ERROR\";\n SeverityNumber[SeverityNumber[\"ERROR2\"] = 18] = \"ERROR2\";\n SeverityNumber[SeverityNumber[\"ERROR3\"] = 19] = \"ERROR3\";\n SeverityNumber[SeverityNumber[\"ERROR4\"] = 20] = \"ERROR4\";\n SeverityNumber[SeverityNumber[\"FATAL\"] = 21] = \"FATAL\";\n SeverityNumber[SeverityNumber[\"FATAL2\"] = 22] = \"FATAL2\";\n SeverityNumber[SeverityNumber[\"FATAL3\"] = 23] = \"FATAL3\";\n SeverityNumber[SeverityNumber[\"FATAL4\"] = 24] = \"FATAL4\";\n})(SeverityNumber = exports.SeverityNumber || (exports.SeverityNumber = {}));\n//# sourceMappingURL=LogRecord.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_LOGGER = exports.NoopLogger = void 0;\nclass NoopLogger {\n emit(_logRecord) { }\n}\nexports.NoopLogger = NoopLogger;\nexports.NOOP_LOGGER = new NoopLogger();\n//# sourceMappingURL=NoopLogger.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.API_BACKWARDS_COMPATIBILITY_VERSION = exports.makeGetter = exports._global = exports.GLOBAL_LOGS_API_KEY = void 0;\nexports.GLOBAL_LOGS_API_KEY = Symbol.for('io.opentelemetry.js.api.logs');\nexports._global = globalThis;\n/**\n * Make a function which accepts a version integer and returns the instance of an API if the version\n * is compatible, or a fallback version (usually NOOP) if it is not.\n *\n * @param requiredVersion Backwards compatibility version which is required to return the instance\n * @param instance Instance which should be returned if the required version is compatible\n * @param fallback Fallback instance, usually NOOP, which will be returned if the required version is not compatible\n */\nfunction makeGetter(requiredVersion, instance, fallback) {\n return (version) => version === requiredVersion ? instance : fallback;\n}\nexports.makeGetter = makeGetter;\n/**\n * A number which should be incremented each time a backwards incompatible\n * change is made to the API. This number is used when an API package\n * attempts to access the global API to ensure it is getting a compatible\n * version. If the global API is not compatible with the API package\n * attempting to get it, a NOOP API implementation will be returned.\n */\nexports.API_BACKWARDS_COMPATIBILITY_VERSION = 1;\n//# sourceMappingURL=global-utils.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_LOGGER_PROVIDER = exports.NoopLoggerProvider = void 0;\nconst NoopLogger_1 = require(\"./NoopLogger\");\nclass NoopLoggerProvider {\n getLogger(_name, _version, _options) {\n return new NoopLogger_1.NoopLogger();\n }\n}\nexports.NoopLoggerProvider = NoopLoggerProvider;\nexports.NOOP_LOGGER_PROVIDER = new NoopLoggerProvider();\n//# sourceMappingURL=NoopLoggerProvider.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProxyLogger = void 0;\nconst NoopLogger_1 = require(\"./NoopLogger\");\nclass ProxyLogger {\n constructor(provider, name, version, options) {\n this._provider = provider;\n this.name = name;\n this.version = version;\n this.options = options;\n }\n /**\n * Emit a log record. This method should only be used by log appenders.\n *\n * @param logRecord\n */\n emit(logRecord) {\n this._getLogger().emit(logRecord);\n }\n /**\n * Try to get a logger from the proxy logger provider.\n * If the proxy logger provider has no delegate, return a noop logger.\n */\n _getLogger() {\n if (this._delegate) {\n return this._delegate;\n }\n const logger = this._provider._getDelegateLogger(this.name, this.version, this.options);\n if (!logger) {\n return NoopLogger_1.NOOP_LOGGER;\n }\n this._delegate = logger;\n return this._delegate;\n }\n}\nexports.ProxyLogger = ProxyLogger;\n//# sourceMappingURL=ProxyLogger.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProxyLoggerProvider = void 0;\nconst NoopLoggerProvider_1 = require(\"./NoopLoggerProvider\");\nconst ProxyLogger_1 = require(\"./ProxyLogger\");\nclass ProxyLoggerProvider {\n getLogger(name, version, options) {\n var _a;\n return ((_a = this._getDelegateLogger(name, version, options)) !== null && _a !== void 0 ? _a : new ProxyLogger_1.ProxyLogger(this, name, version, options));\n }\n /**\n * Get the delegate logger provider.\n * Used by tests only.\n * @internal\n */\n _getDelegate() {\n var _a;\n return (_a = this._delegate) !== null && _a !== void 0 ? _a : NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER;\n }\n /**\n * Set the delegate logger provider\n * @internal\n */\n _setDelegate(delegate) {\n this._delegate = delegate;\n }\n /**\n * @internal\n */\n _getDelegateLogger(name, version, options) {\n var _a;\n return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getLogger(name, version, options);\n }\n}\nexports.ProxyLoggerProvider = ProxyLoggerProvider;\n//# sourceMappingURL=ProxyLoggerProvider.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogsAPI = void 0;\nconst global_utils_1 = require(\"../internal/global-utils\");\nconst NoopLoggerProvider_1 = require(\"../NoopLoggerProvider\");\nconst ProxyLoggerProvider_1 = require(\"../ProxyLoggerProvider\");\nclass LogsAPI {\n constructor() {\n this._proxyLoggerProvider = new ProxyLoggerProvider_1.ProxyLoggerProvider();\n }\n static getInstance() {\n if (!this._instance) {\n this._instance = new LogsAPI();\n }\n return this._instance;\n }\n setGlobalLoggerProvider(provider) {\n if (global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]) {\n return this.getLoggerProvider();\n }\n global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY] = (0, global_utils_1.makeGetter)(global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION, provider, NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER);\n this._proxyLoggerProvider._setDelegate(provider);\n return provider;\n }\n /**\n * Returns the global logger provider.\n *\n * @returns LoggerProvider\n */\n getLoggerProvider() {\n var _a, _b;\n return ((_b = (_a = global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]) === null || _a === void 0 ? void 0 : _a.call(global_utils_1._global, global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION)) !== null && _b !== void 0 ? _b : this._proxyLoggerProvider);\n }\n /**\n * Returns a logger from the global logger provider.\n *\n * @returns Logger\n */\n getLogger(name, version, options) {\n return this.getLoggerProvider().getLogger(name, version, options);\n }\n /** Remove the global logger provider */\n disable() {\n delete global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY];\n this._proxyLoggerProvider = new ProxyLoggerProvider_1.ProxyLoggerProvider();\n }\n}\nexports.LogsAPI = LogsAPI;\n//# sourceMappingURL=logs.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logs = exports.NoopLogger = exports.NOOP_LOGGER = exports.SeverityNumber = void 0;\nvar LogRecord_1 = require(\"./types/LogRecord\");\nObject.defineProperty(exports, \"SeverityNumber\", { enumerable: true, get: function () { return LogRecord_1.SeverityNumber; } });\nvar NoopLogger_1 = require(\"./NoopLogger\");\nObject.defineProperty(exports, \"NOOP_LOGGER\", { enumerable: true, get: function () { return NoopLogger_1.NOOP_LOGGER; } });\nObject.defineProperty(exports, \"NoopLogger\", { enumerable: true, get: function () { return NoopLogger_1.NoopLogger; } });\nconst logs_1 = require(\"./api/logs\");\nexports.logs = logs_1.LogsAPI.getInstance();\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.disableInstrumentations = exports.enableInstrumentations = void 0;\n/**\n * Enable instrumentations\n * @param instrumentations\n * @param tracerProvider\n * @param meterProvider\n */\nfunction enableInstrumentations(instrumentations, tracerProvider, meterProvider, loggerProvider) {\n for (let i = 0, j = instrumentations.length; i < j; i++) {\n const instrumentation = instrumentations[i];\n if (tracerProvider) {\n instrumentation.setTracerProvider(tracerProvider);\n }\n if (meterProvider) {\n instrumentation.setMeterProvider(meterProvider);\n }\n if (loggerProvider && instrumentation.setLoggerProvider) {\n instrumentation.setLoggerProvider(loggerProvider);\n }\n // instrumentations have been already enabled during creation\n // so enable only if user prevented that by setting enabled to false\n // this is to prevent double enabling but when calling register all\n // instrumentations should be now enabled\n if (!instrumentation.getConfig().enabled) {\n instrumentation.enable();\n }\n }\n}\nexports.enableInstrumentations = enableInstrumentations;\n/**\n * Disable instrumentations\n * @param instrumentations\n */\nfunction disableInstrumentations(instrumentations) {\n instrumentations.forEach(instrumentation => instrumentation.disable());\n}\nexports.disableInstrumentations = disableInstrumentations;\n//# sourceMappingURL=autoLoaderUtils.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.registerInstrumentations = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst api_logs_1 = require(\"@opentelemetry/api-logs\");\nconst autoLoaderUtils_1 = require(\"./autoLoaderUtils\");\n/**\n * It will register instrumentations and plugins\n * @param options\n * @return returns function to unload instrumentation and plugins that were\n * registered\n */\nfunction registerInstrumentations(options) {\n const tracerProvider = options.tracerProvider || api_1.trace.getTracerProvider();\n const meterProvider = options.meterProvider || api_1.metrics.getMeterProvider();\n const loggerProvider = options.loggerProvider || api_logs_1.logs.getLoggerProvider();\n const instrumentations = options.instrumentations?.flat() ?? [];\n (0, autoLoaderUtils_1.enableInstrumentations)(instrumentations, tracerProvider, meterProvider, loggerProvider);\n return () => {\n (0, autoLoaderUtils_1.disableInstrumentations)(instrumentations);\n };\n}\nexports.registerInstrumentations = registerInstrumentations;\n//# sourceMappingURL=autoLoader.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.satisfies = void 0;\n// This is a custom semantic versioning implementation compatible with the\n// `satisfies(version, range, options?)` function from the `semver` npm package;\n// with the exception that the `loose` option is not supported.\n//\n// The motivation for the custom semver implementation is that\n// `semver` package has some initialization delay (lots of RegExp init and compile)\n// and this leads to coldstart overhead for the OTEL Lambda Node.js layer.\n// Hence, we have implemented lightweight version of it internally with required functionalities.\nconst api_1 = require(\"@opentelemetry/api\");\nconst VERSION_REGEXP = /^(?:v)?(?(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*))(?:-(?(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nconst RANGE_REGEXP = /^(?<|>|=|==|<=|>=|~|\\^|~>)?\\s*(?:v)?(?(?x|X|\\*|0|[1-9]\\d*)(?:\\.(?x|X|\\*|0|[1-9]\\d*))?(?:\\.(?x|X|\\*|0|[1-9]\\d*))?)(?:-(?(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nconst operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n '!=': [-1, 1],\n};\n/**\n * Checks given version whether it satisfies given range expression.\n * @param version the [version](https://github.com/npm/node-semver#versions) to be checked\n * @param range the [range](https://github.com/npm/node-semver#ranges) expression for version check\n * @param options options to configure semver satisfy check\n */\nfunction satisfies(version, range, options) {\n // Strict semver format check\n if (!_validateVersion(version)) {\n api_1.diag.error(`Invalid version: ${version}`);\n return false;\n }\n // If range is empty, satisfy check succeeds regardless what version is\n if (!range) {\n return true;\n }\n // Cleanup range\n range = range.replace(/([<>=~^]+)\\s+/g, '$1');\n // Parse version\n const parsedVersion = _parseVersion(version);\n if (!parsedVersion) {\n return false;\n }\n const allParsedRanges = [];\n // Check given version whether it satisfies given range expression\n const checkResult = _doSatisfies(parsedVersion, range, allParsedRanges, options);\n // If check result is OK,\n // do another final check for pre-release, if pre-release check is included by option\n if (checkResult && !options?.includePrerelease) {\n return _doPreleaseCheck(parsedVersion, allParsedRanges);\n }\n return checkResult;\n}\nexports.satisfies = satisfies;\nfunction _validateVersion(version) {\n return typeof version === 'string' && VERSION_REGEXP.test(version);\n}\nfunction _doSatisfies(parsedVersion, range, allParsedRanges, options) {\n if (range.includes('||')) {\n // A version matches a range if and only if\n // every comparator in at least one of the ||-separated comparator sets is satisfied by the version\n const ranges = range.trim().split('||');\n for (const r of ranges) {\n if (_checkRange(parsedVersion, r, allParsedRanges, options)) {\n return true;\n }\n }\n return false;\n }\n else if (range.includes(' - ')) {\n // Hyphen ranges: https://github.com/npm/node-semver#hyphen-ranges-xyz---abc\n range = replaceHyphen(range, options);\n }\n else if (range.includes(' ')) {\n // Multiple separated ranges and all needs to be satisfied for success\n const ranges = range\n .trim()\n .replace(/\\s{2,}/g, ' ')\n .split(' ');\n for (const r of ranges) {\n if (!_checkRange(parsedVersion, r, allParsedRanges, options)) {\n return false;\n }\n }\n return true;\n }\n // Check given parsed version with given range\n return _checkRange(parsedVersion, range, allParsedRanges, options);\n}\nfunction _checkRange(parsedVersion, range, allParsedRanges, options) {\n range = _normalizeRange(range, options);\n if (range.includes(' ')) {\n // If there are multiple ranges separated, satisfy each of them\n return _doSatisfies(parsedVersion, range, allParsedRanges, options);\n }\n else {\n // Validate and parse range\n const parsedRange = _parseRange(range);\n allParsedRanges.push(parsedRange);\n // Check parsed version by parsed range\n return _satisfies(parsedVersion, parsedRange);\n }\n}\nfunction _satisfies(parsedVersion, parsedRange) {\n // If range is invalid, satisfy check fails (no error throw)\n if (parsedRange.invalid) {\n return false;\n }\n // If range is empty or wildcard, satisfy check succeeds regardless what version is\n if (!parsedRange.version || _isWildcard(parsedRange.version)) {\n return true;\n }\n // Compare version segment first\n let comparisonResult = _compareVersionSegments(parsedVersion.versionSegments || [], parsedRange.versionSegments || []);\n // If versions segments are equal, compare by pre-release segments\n if (comparisonResult === 0) {\n const versionPrereleaseSegments = parsedVersion.prereleaseSegments || [];\n const rangePrereleaseSegments = parsedRange.prereleaseSegments || [];\n if (!versionPrereleaseSegments.length && !rangePrereleaseSegments.length) {\n comparisonResult = 0;\n }\n else if (!versionPrereleaseSegments.length &&\n rangePrereleaseSegments.length) {\n comparisonResult = 1;\n }\n else if (versionPrereleaseSegments.length &&\n !rangePrereleaseSegments.length) {\n comparisonResult = -1;\n }\n else {\n comparisonResult = _compareVersionSegments(versionPrereleaseSegments, rangePrereleaseSegments);\n }\n }\n // Resolve check result according to comparison operator\n return operatorResMap[parsedRange.op]?.includes(comparisonResult);\n}\nfunction _doPreleaseCheck(parsedVersion, allParsedRanges) {\n if (parsedVersion.prerelease) {\n return allParsedRanges.some(r => r.prerelease && r.version === parsedVersion.version);\n }\n return true;\n}\nfunction _normalizeRange(range, options) {\n range = range.trim();\n range = replaceCaret(range, options);\n range = replaceTilde(range);\n range = replaceXRange(range, options);\n range = range.trim();\n return range;\n}\nfunction isX(id) {\n return !id || id.toLowerCase() === 'x' || id === '*';\n}\nfunction _parseVersion(versionString) {\n const match = versionString.match(VERSION_REGEXP);\n if (!match) {\n api_1.diag.error(`Invalid version: ${versionString}`);\n return undefined;\n }\n const version = match.groups.version;\n const prerelease = match.groups.prerelease;\n const build = match.groups.build;\n const versionSegments = version.split('.');\n const prereleaseSegments = prerelease?.split('.');\n return {\n op: undefined,\n version,\n versionSegments,\n versionSegmentCount: versionSegments.length,\n prerelease,\n prereleaseSegments,\n prereleaseSegmentCount: prereleaseSegments ? prereleaseSegments.length : 0,\n build,\n };\n}\nfunction _parseRange(rangeString) {\n if (!rangeString) {\n return {};\n }\n const match = rangeString.match(RANGE_REGEXP);\n if (!match) {\n api_1.diag.error(`Invalid range: ${rangeString}`);\n return {\n invalid: true,\n };\n }\n let op = match.groups.op;\n const version = match.groups.version;\n const prerelease = match.groups.prerelease;\n const build = match.groups.build;\n const versionSegments = version.split('.');\n const prereleaseSegments = prerelease?.split('.');\n if (op === '==') {\n op = '=';\n }\n return {\n op: op || '=',\n version,\n versionSegments,\n versionSegmentCount: versionSegments.length,\n prerelease,\n prereleaseSegments,\n prereleaseSegmentCount: prereleaseSegments ? prereleaseSegments.length : 0,\n build,\n };\n}\nfunction _isWildcard(s) {\n return s === '*' || s === 'x' || s === 'X';\n}\nfunction _parseVersionString(v) {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n}\nfunction _normalizeVersionType(a, b) {\n if (typeof a === typeof b) {\n if (typeof a === 'number') {\n return [a, b];\n }\n else if (typeof a === 'string') {\n return [a, b];\n }\n else {\n throw new Error('Version segments can only be strings or numbers');\n }\n }\n else {\n return [String(a), String(b)];\n }\n}\nfunction _compareVersionStrings(v1, v2) {\n if (_isWildcard(v1) || _isWildcard(v2)) {\n return 0;\n }\n const [parsedV1, parsedV2] = _normalizeVersionType(_parseVersionString(v1), _parseVersionString(v2));\n if (parsedV1 > parsedV2) {\n return 1;\n }\n else if (parsedV1 < parsedV2) {\n return -1;\n }\n return 0;\n}\nfunction _compareVersionSegments(v1, v2) {\n for (let i = 0; i < Math.max(v1.length, v2.length); i++) {\n const res = _compareVersionStrings(v1[i] || '0', v2[i] || '0');\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n}\n////////////////////////////////////////////////////////////////////////////////\n// The rest of this file is adapted from portions of https://github.com/npm/node-semver/tree/868d4bb\n// License:\n/*\n * The ISC License\n *\n * Copyright (c) Isaac Z. Schlueter and Contributors\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\n * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]';\nconst NUMERICIDENTIFIER = '0|[1-9]\\\\d*';\nconst NONNUMERICIDENTIFIER = `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`;\nconst GTLT = '((?:<|>)?=?)';\nconst PRERELEASEIDENTIFIER = `(?:${NUMERICIDENTIFIER}|${NONNUMERICIDENTIFIER})`;\nconst PRERELEASE = `(?:-(${PRERELEASEIDENTIFIER}(?:\\\\.${PRERELEASEIDENTIFIER})*))`;\nconst BUILDIDENTIFIER = `${LETTERDASHNUMBER}+`;\nconst BUILD = `(?:\\\\+(${BUILDIDENTIFIER}(?:\\\\.${BUILDIDENTIFIER})*))`;\nconst XRANGEIDENTIFIER = `${NUMERICIDENTIFIER}|x|X|\\\\*`;\nconst XRANGEPLAIN = `[v=\\\\s]*(${XRANGEIDENTIFIER})` +\n `(?:\\\\.(${XRANGEIDENTIFIER})` +\n `(?:\\\\.(${XRANGEIDENTIFIER})` +\n `(?:${PRERELEASE})?${BUILD}?` +\n `)?)?`;\nconst XRANGE = `^${GTLT}\\\\s*${XRANGEPLAIN}$`;\nconst XRANGE_REGEXP = new RegExp(XRANGE);\nconst HYPHENRANGE = `^\\\\s*(${XRANGEPLAIN})` + `\\\\s+-\\\\s+` + `(${XRANGEPLAIN})` + `\\\\s*$`;\nconst HYPHENRANGE_REGEXP = new RegExp(HYPHENRANGE);\nconst LONETILDE = '(?:~>?)';\nconst TILDE = `^${LONETILDE}${XRANGEPLAIN}$`;\nconst TILDE_REGEXP = new RegExp(TILDE);\nconst LONECARET = '(?:\\\\^)';\nconst CARET = `^${LONECARET}${XRANGEPLAIN}$`;\nconst CARET_REGEXP = new RegExp(CARET);\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L285\n//\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nfunction replaceTilde(comp) {\n const r = TILDE_REGEXP;\n return comp.replace(r, (_, M, m, p, pr) => {\n let ret;\n if (isX(M)) {\n ret = '';\n }\n else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n }\n else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n }\n else if (pr) {\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n }\n else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;\n }\n return ret;\n });\n}\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L329\n//\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nfunction replaceCaret(comp, options) {\n const r = CARET_REGEXP;\n const z = options?.includePrerelease ? '-0' : '';\n return comp.replace(r, (_, M, m, p, pr) => {\n let ret;\n if (isX(M)) {\n ret = '';\n }\n else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n }\n else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n }\n else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n }\n }\n else if (pr) {\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`;\n }\n else {\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n }\n }\n else {\n ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`;\n }\n }\n else {\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`;\n }\n else {\n ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`;\n }\n }\n else {\n ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;\n }\n }\n return ret;\n });\n}\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L390\nfunction replaceXRange(comp, options) {\n const r = XRANGE_REGEXP;\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n const xM = isX(M);\n const xm = xM || isX(m);\n const xp = xm || isX(p);\n const anyX = xp;\n if (gtlt === '=' && anyX) {\n gtlt = '';\n }\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options?.includePrerelease ? '-0' : '';\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0';\n }\n else {\n // nothing is forbidden\n ret = '*';\n }\n }\n else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0;\n }\n p = 0;\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>=';\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n }\n else {\n m = +m + 1;\n p = 0;\n }\n }\n else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<';\n if (xm) {\n M = +M + 1;\n }\n else {\n m = +m + 1;\n }\n }\n if (gtlt === '<') {\n pr = '-0';\n }\n ret = `${gtlt + M}.${m}.${p}${pr}`;\n }\n else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n }\n else if (xp) {\n ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`;\n }\n return ret;\n });\n}\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L488\n//\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nfunction replaceHyphen(comp, options) {\n const r = HYPHENRANGE_REGEXP;\n return comp.replace(r, (_, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = '';\n }\n else if (isX(fm)) {\n from = `>=${fM}.0.0${options?.includePrerelease ? '-0' : ''}`;\n }\n else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${options?.includePrerelease ? '-0' : ''}`;\n }\n else if (fpr) {\n from = `>=${from}`;\n }\n else {\n from = `>=${from}${options?.includePrerelease ? '-0' : ''}`;\n }\n if (isX(tM)) {\n to = '';\n }\n else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`;\n }\n else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`;\n }\n else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`;\n }\n else if (options?.includePrerelease) {\n to = `<${tM}.${tm}.${+tp + 1}-0`;\n }\n else {\n to = `<=${to}`;\n }\n return `${from} ${to}`.trim();\n });\n}\n//# sourceMappingURL=semver.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.massUnwrap = exports.unwrap = exports.massWrap = exports.wrap = void 0;\n// Default to complaining loudly when things don't go according to plan.\n// eslint-disable-next-line no-console\nlet logger = console.error.bind(console);\n// Sets a property on an object, preserving its enumerability.\n// This function assumes that the property is already writable.\nfunction defineProperty(obj, name, value) {\n const enumerable = !!obj[name] &&\n Object.prototype.propertyIsEnumerable.call(obj, name);\n Object.defineProperty(obj, name, {\n configurable: true,\n enumerable,\n writable: true,\n value,\n });\n}\nconst wrap = (nodule, name, wrapper) => {\n if (!nodule || !nodule[name]) {\n logger('no original function ' + String(name) + ' to wrap');\n return;\n }\n if (!wrapper) {\n logger('no wrapper function');\n logger(new Error().stack);\n return;\n }\n const original = nodule[name];\n if (typeof original !== 'function' || typeof wrapper !== 'function') {\n logger('original object and wrapper must be functions');\n return;\n }\n const wrapped = wrapper(original, name);\n defineProperty(wrapped, '__original', original);\n defineProperty(wrapped, '__unwrap', () => {\n if (nodule[name] === wrapped) {\n defineProperty(nodule, name, original);\n }\n });\n defineProperty(wrapped, '__wrapped', true);\n defineProperty(nodule, name, wrapped);\n return wrapped;\n};\nexports.wrap = wrap;\nconst massWrap = (nodules, names, wrapper) => {\n if (!nodules) {\n logger('must provide one or more modules to patch');\n logger(new Error().stack);\n return;\n }\n else if (!Array.isArray(nodules)) {\n nodules = [nodules];\n }\n if (!(names && Array.isArray(names))) {\n logger('must provide one or more functions to wrap on modules');\n return;\n }\n nodules.forEach(nodule => {\n names.forEach(name => {\n (0, exports.wrap)(nodule, name, wrapper);\n });\n });\n};\nexports.massWrap = massWrap;\nconst unwrap = (nodule, name) => {\n if (!nodule || !nodule[name]) {\n logger('no function to unwrap.');\n logger(new Error().stack);\n return;\n }\n const wrapped = nodule[name];\n if (!wrapped.__unwrap) {\n logger('no original to unwrap to -- has ' +\n String(name) +\n ' already been unwrapped?');\n }\n else {\n wrapped.__unwrap();\n return;\n }\n};\nexports.unwrap = unwrap;\nconst massUnwrap = (nodules, names) => {\n if (!nodules) {\n logger('must provide one or more modules to patch');\n logger(new Error().stack);\n return;\n }\n else if (!Array.isArray(nodules)) {\n nodules = [nodules];\n }\n if (!(names && Array.isArray(names))) {\n logger('must provide one or more functions to unwrap on modules');\n return;\n }\n nodules.forEach(nodule => {\n names.forEach(name => {\n (0, exports.unwrap)(nodule, name);\n });\n });\n};\nexports.massUnwrap = massUnwrap;\nfunction shimmer(options) {\n if (options && options.logger) {\n if (typeof options.logger !== 'function') {\n logger(\"new logger isn't a function, not replacing\");\n }\n else {\n logger = options.logger;\n }\n }\n}\nexports.default = shimmer;\nshimmer.wrap = exports.wrap;\nshimmer.massWrap = exports.massWrap;\nshimmer.unwrap = exports.unwrap;\nshimmer.massUnwrap = exports.massUnwrap;\n//# sourceMappingURL=shimmer.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationAbstract = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst api_logs_1 = require(\"@opentelemetry/api-logs\");\nconst shimmer = require(\"./shimmer\");\n/**\n * Base abstract internal class for instrumenting node and web plugins\n */\nclass InstrumentationAbstract {\n _config = {};\n _tracer;\n _meter;\n _logger;\n _diag;\n instrumentationName;\n instrumentationVersion;\n constructor(instrumentationName, instrumentationVersion, config) {\n this.instrumentationName = instrumentationName;\n this.instrumentationVersion = instrumentationVersion;\n this.setConfig(config);\n this._diag = api_1.diag.createComponentLogger({\n namespace: instrumentationName,\n });\n this._tracer = api_1.trace.getTracer(instrumentationName, instrumentationVersion);\n this._meter = api_1.metrics.getMeter(instrumentationName, instrumentationVersion);\n this._logger = api_logs_1.logs.getLogger(instrumentationName, instrumentationVersion);\n this._updateMetricInstruments();\n }\n /* Api to wrap instrumented method */\n _wrap = shimmer.wrap;\n /* Api to unwrap instrumented methods */\n _unwrap = shimmer.unwrap;\n /* Api to mass wrap instrumented method */\n _massWrap = shimmer.massWrap;\n /* Api to mass unwrap instrumented methods */\n _massUnwrap = shimmer.massUnwrap;\n /* Returns meter */\n get meter() {\n return this._meter;\n }\n /**\n * Sets MeterProvider to this plugin\n * @param meterProvider\n */\n setMeterProvider(meterProvider) {\n this._meter = meterProvider.getMeter(this.instrumentationName, this.instrumentationVersion);\n this._updateMetricInstruments();\n }\n /* Returns logger */\n get logger() {\n return this._logger;\n }\n /**\n * Sets LoggerProvider to this plugin\n * @param loggerProvider\n */\n setLoggerProvider(loggerProvider) {\n this._logger = loggerProvider.getLogger(this.instrumentationName, this.instrumentationVersion);\n }\n /**\n * @experimental\n *\n * Get module definitions defined by {@link init}.\n * This can be used for experimental compile-time instrumentation.\n *\n * @returns an array of {@link InstrumentationModuleDefinition}\n */\n getModuleDefinitions() {\n const initResult = this.init() ?? [];\n if (!Array.isArray(initResult)) {\n return [initResult];\n }\n return initResult;\n }\n /**\n * Sets the new metric instruments with the current Meter.\n */\n _updateMetricInstruments() {\n return;\n }\n /* Returns InstrumentationConfig */\n getConfig() {\n return this._config;\n }\n /**\n * Sets InstrumentationConfig to this plugin\n * @param config\n */\n setConfig(config) {\n // copy config first level properties to ensure they are immutable.\n // nested properties are not copied, thus are mutable from the outside.\n this._config = {\n enabled: true,\n ...config,\n };\n }\n /**\n * Sets TraceProvider to this plugin\n * @param tracerProvider\n */\n setTracerProvider(tracerProvider) {\n this._tracer = tracerProvider.getTracer(this.instrumentationName, this.instrumentationVersion);\n }\n /* Returns tracer */\n get tracer() {\n return this._tracer;\n }\n /**\n * Execute span customization hook, if configured, and log any errors.\n * Any semantics of the trigger and info are defined by the specific instrumentation.\n * @param hookHandler The optional hook handler which the user has configured via instrumentation config\n * @param triggerName The name of the trigger for executing the hook for logging purposes\n * @param span The span to which the hook should be applied\n * @param info The info object to be passed to the hook, with useful data the hook may use\n */\n _runSpanCustomizationHook(hookHandler, triggerName, span, info) {\n if (!hookHandler) {\n return;\n }\n try {\n hookHandler(span, info);\n }\n catch (e) {\n this._diag.error(`Error running span customization hook due to exception in handler`, { triggerName }, e);\n }\n }\n}\nexports.InstrumentationAbstract = InstrumentationAbstract;\n//# sourceMappingURL=instrumentation.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModuleNameTrie = exports.ModuleNameSeparator = void 0;\nexports.ModuleNameSeparator = '/';\n/**\n * Node in a `ModuleNameTrie`\n */\nclass ModuleNameTrieNode {\n hooks = [];\n children = new Map();\n}\n/**\n * Trie containing nodes that represent a part of a module name (i.e. the parts separated by forward slash)\n */\nclass ModuleNameTrie {\n _trie = new ModuleNameTrieNode();\n _counter = 0;\n /**\n * Insert a module hook into the trie\n *\n * @param {Hooked} hook Hook\n */\n insert(hook) {\n let trieNode = this._trie;\n for (const moduleNamePart of hook.moduleName.split(exports.ModuleNameSeparator)) {\n let nextNode = trieNode.children.get(moduleNamePart);\n if (!nextNode) {\n nextNode = new ModuleNameTrieNode();\n trieNode.children.set(moduleNamePart, nextNode);\n }\n trieNode = nextNode;\n }\n trieNode.hooks.push({ hook, insertedId: this._counter++ });\n }\n /**\n * Search for matching hooks in the trie\n *\n * @param {string} moduleName Module name\n * @param {boolean} maintainInsertionOrder Whether to return the results in insertion order\n * @param {boolean} fullOnly Whether to return only full matches\n * @returns {Hooked[]} Matching hooks\n */\n search(moduleName, { maintainInsertionOrder, fullOnly } = {}) {\n let trieNode = this._trie;\n const results = [];\n let foundFull = true;\n for (const moduleNamePart of moduleName.split(exports.ModuleNameSeparator)) {\n const nextNode = trieNode.children.get(moduleNamePart);\n if (!nextNode) {\n foundFull = false;\n break;\n }\n if (!fullOnly) {\n results.push(...nextNode.hooks);\n }\n trieNode = nextNode;\n }\n if (fullOnly && foundFull) {\n results.push(...trieNode.hooks);\n }\n if (results.length === 0) {\n return [];\n }\n if (results.length === 1) {\n return [results[0].hook];\n }\n if (maintainInsertionOrder) {\n results.sort((a, b) => a.insertedId - b.insertedId);\n }\n return results.map(({ hook }) => hook);\n }\n}\nexports.ModuleNameTrie = ModuleNameTrie;\n//# sourceMappingURL=ModuleNameTrie.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequireInTheMiddleSingleton = void 0;\nconst require_in_the_middle_1 = require(\"require-in-the-middle\");\nconst path = require(\"path\");\nconst ModuleNameTrie_1 = require(\"./ModuleNameTrie\");\n/**\n * Whether Mocha is running in this process\n * Inspired by https://github.com/AndreasPizsa/detect-mocha\n *\n * @type {boolean}\n */\nconst isMocha = [\n 'afterEach',\n 'after',\n 'beforeEach',\n 'before',\n 'describe',\n 'it',\n].every(fn => {\n // @ts-expect-error TS7053: Element implicitly has an 'any' type\n return typeof global[fn] === 'function';\n});\n/**\n * Singleton class for `require-in-the-middle`\n * Allows instrumentation plugins to patch modules with only a single `require` patch\n * WARNING: Because this class will create its own `require-in-the-middle` (RITM) instance,\n * we should minimize the number of new instances of this class.\n * Multiple instances of `@opentelemetry/instrumentation` (e.g. multiple versions) in a single process\n * will result in multiple instances of RITM, which will have an impact\n * on the performance of instrumentation hooks being applied.\n */\nclass RequireInTheMiddleSingleton {\n _moduleNameTrie = new ModuleNameTrie_1.ModuleNameTrie();\n static _instance;\n constructor() {\n this._initialize();\n }\n _initialize() {\n new require_in_the_middle_1.Hook(\n // Intercept all `require` calls; we will filter the matching ones below\n null, { internals: true }, (exports, name, basedir) => {\n // For internal files on Windows, `name` will use backslash as the path separator\n const normalizedModuleName = normalizePathSeparators(name);\n const matches = this._moduleNameTrie.search(normalizedModuleName, {\n maintainInsertionOrder: true,\n // For core modules (e.g. `fs`), do not match on sub-paths (e.g. `fs/promises').\n // This matches the behavior of `require-in-the-middle`.\n // `basedir` is always `undefined` for core modules.\n fullOnly: basedir === undefined,\n });\n for (const { onRequire } of matches) {\n exports = onRequire(exports, name, basedir);\n }\n return exports;\n });\n }\n /**\n * Register a hook with `require-in-the-middle`\n *\n * @param {string} moduleName Module name\n * @param {OnRequireFn} onRequire Hook function\n * @returns {Hooked} Registered hook\n */\n register(moduleName, onRequire) {\n const hooked = { moduleName, onRequire };\n this._moduleNameTrie.insert(hooked);\n return hooked;\n }\n /**\n * Get the `RequireInTheMiddleSingleton` singleton\n *\n * @returns {RequireInTheMiddleSingleton} Singleton of `RequireInTheMiddleSingleton`\n */\n static getInstance() {\n // Mocha runs all test suites in the same process\n // This prevents test suites from sharing a singleton\n if (isMocha)\n return new RequireInTheMiddleSingleton();\n return (this._instance =\n this._instance ?? new RequireInTheMiddleSingleton());\n }\n}\nexports.RequireInTheMiddleSingleton = RequireInTheMiddleSingleton;\n/**\n * Normalize the path separators to forward slash in a module name or path\n *\n * @param {string} moduleNameOrPath Module name or path\n * @returns {string} Normalized module name or path\n */\nfunction normalizePathSeparators(moduleNameOrPath) {\n return path.sep !== ModuleNameTrie_1.ModuleNameSeparator\n ? moduleNameOrPath.split(path.sep).join(ModuleNameTrie_1.ModuleNameSeparator)\n : moduleNameOrPath;\n}\n//# sourceMappingURL=RequireInTheMiddleSingleton.js.map", - "// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.\n//\n// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.\n\nconst importHooks = [] // TODO should this be a Set?\nconst setters = new WeakMap()\nconst getters = new WeakMap()\nconst specifiers = new Map()\nconst toHook = []\n\nconst proxyHandler = {\n set (target, name, value) {\n const set = setters.get(target)\n const setter = set && set[name]\n if (typeof setter === 'function') {\n return setter(value)\n }\n // If a module doesn't export the property being assigned (e.g. no default\n // export), there is no setter to call. Don't crash userland code.\n return true\n },\n\n get (target, name) {\n if (name === Symbol.toStringTag) {\n return 'Module'\n }\n\n const getter = getters.get(target)[name]\n\n if (typeof getter === 'function') {\n return getter()\n }\n },\n\n defineProperty (target, property, descriptor) {\n if ((!('value' in descriptor))) {\n throw new Error('Getters/setters are not supported for exports property descriptors.')\n }\n\n const set = setters.get(target)\n const setter = set && set[property]\n if (typeof setter === 'function') {\n return setter(descriptor.value)\n }\n return true\n }\n}\n\nfunction register (name, namespace, set, get, specifier) {\n specifiers.set(name, specifier)\n setters.set(namespace, set)\n getters.set(namespace, get)\n const proxy = new Proxy(namespace, proxyHandler)\n importHooks.forEach(hook => hook(name, proxy, specifier))\n toHook.push([name, proxy, specifier])\n}\n\nexports.register = register\nexports.importHooks = importHooks\nexports.specifiers = specifiers\nexports.toHook = toHook\n", - "// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.\n//\n// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.\n\nconst path = require('path')\nconst moduleDetailsFromPath = require('module-details-from-path')\nconst { fileURLToPath } = require('url')\nconst { MessageChannel } = require('worker_threads')\n\nlet { isBuiltin } = require('module')\nif (!isBuiltin) {\n isBuiltin = () => true\n}\n\nconst {\n importHooks,\n specifiers,\n toHook\n} = require('./lib/register')\n\nfunction addHook (hook) {\n importHooks.push(hook)\n toHook.forEach(([name, namespace, specifier]) => hook(name, namespace, specifier))\n}\n\nfunction removeHook (hook) {\n const index = importHooks.indexOf(hook)\n if (index > -1) {\n importHooks.splice(index, 1)\n }\n}\n\nfunction callHookFn (hookFn, namespace, name, baseDir) {\n const newDefault = hookFn(namespace, name, baseDir)\n if (newDefault && newDefault !== namespace) {\n // Only ESM modules that actually export `default` can have it reassigned.\n // Some hooks return a value unconditionally; avoid crashing when the module\n // has no default export (see issue #188).\n if ('default' in namespace) {\n namespace.default = newDefault\n }\n }\n}\n\nlet sendModulesToLoader\n\n/**\n * EXPERIMENTAL\n * This feature is experimental and may change in minor versions.\n * **NOTE** This feature is incompatible with the {internals: true} Hook option.\n *\n * Creates a message channel with a port that can be used to add hooks to the\n * list of exclusively included modules.\n *\n * This can be used to only wrap modules that are Hook'ed, however modules need\n * to be hooked before they are imported.\n *\n * ```ts\n * import { register } from 'module'\n * import { Hook, createAddHookMessageChannel } from 'import-in-the-middle'\n *\n * const { registerOptions, waitForAllMessagesAcknowledged } = createAddHookMessageChannel()\n *\n * register('import-in-the-middle/hook.mjs', import.meta.url, registerOptions)\n *\n * Hook(['fs'], (exported, name, baseDir) => {\n * // Instrument the fs module\n * })\n *\n * // Ensure that the loader has acknowledged all the modules\n * // before we allow execution to continue\n * await waitForAllMessagesAcknowledged()\n * ```\n */\nfunction createAddHookMessageChannel () {\n const { port1, port2 } = new MessageChannel()\n let pendingAckCount = 0\n let resolveFn\n\n sendModulesToLoader = (modules) => {\n pendingAckCount++\n port1.postMessage(modules)\n }\n\n port1.on('message', () => {\n pendingAckCount--\n\n if (resolveFn && pendingAckCount <= 0) {\n resolveFn()\n }\n }).unref()\n\n function waitForAllMessagesAcknowledged () {\n // This timer is to prevent the process from exiting with code 13:\n // 13: Unsettled Top-Level Await.\n const timer = setInterval(() => { }, 1000)\n const promise = new Promise((resolve) => {\n resolveFn = resolve\n }).then(() => { clearInterval(timer) })\n\n if (pendingAckCount === 0) {\n resolveFn()\n }\n\n return promise\n }\n\n const addHookMessagePort = port2\n const registerOptions = { data: { addHookMessagePort, include: [] }, transferList: [addHookMessagePort] }\n\n return { registerOptions, addHookMessagePort, waitForAllMessagesAcknowledged }\n}\n\nfunction Hook (modules, options, hookFn) {\n if ((this instanceof Hook) === false) return new Hook(modules, options, hookFn)\n if (typeof modules === 'function') {\n hookFn = modules\n modules = null\n options = null\n } else if (typeof options === 'function') {\n hookFn = options\n options = null\n }\n const internals = options ? options.internals === true : false\n\n if (sendModulesToLoader && Array.isArray(modules)) {\n sendModulesToLoader(modules)\n }\n\n this._iitmHook = (name, namespace, specifier) => {\n const loadUrl = name\n const isNodeUrl = loadUrl.startsWith('node:')\n let filePath, baseDir\n\n if (isNodeUrl) {\n // Normalize builtin module name to *not* have 'node:' prefix, unless\n // required, as it is for 'node:test' and some others. `module.isBuiltin`\n // is available in all Node.js versions that have node:-only modules.\n const unprefixed = name.slice(5)\n if (isBuiltin(unprefixed)) {\n name = unprefixed\n }\n } else if (loadUrl.startsWith('file://')) {\n const stackTraceLimit = Error.stackTraceLimit\n Error.stackTraceLimit = 0\n try {\n filePath = fileURLToPath(name)\n name = filePath\n } catch (e) {}\n Error.stackTraceLimit = stackTraceLimit\n\n if (filePath) {\n const details = moduleDetailsFromPath(filePath)\n if (details) {\n name = details.name\n baseDir = details.basedir\n }\n }\n }\n\n if (modules) {\n for (const matchArg of modules) {\n if (filePath && matchArg === filePath) {\n // abspath match\n callHookFn(hookFn, namespace, filePath, undefined)\n } else if (matchArg === name) {\n if (!baseDir) {\n // built-in module (or unexpected non file:// name?)\n callHookFn(hookFn, namespace, name, baseDir)\n } else if (baseDir.endsWith(specifiers.get(loadUrl))) {\n // An import of the top-level module (e.g. `import 'ioredis'`).\n // Note: Slight behaviour difference from RITM. RITM uses\n // `require.resolve(name)` to see if filename is the module\n // main file, which will catch `require('ioredis/built/index.js')`.\n // The check here will not catch `import 'ioredis/built/index.js'`.\n callHookFn(hookFn, namespace, name, baseDir)\n } else if (internals) {\n const internalPath = name + path.sep + path.relative(baseDir, filePath)\n callHookFn(hookFn, namespace, internalPath, baseDir)\n }\n } else if (matchArg === specifier) {\n callHookFn(hookFn, namespace, specifier, baseDir)\n }\n }\n } else {\n callHookFn(hookFn, namespace, name, baseDir)\n }\n }\n\n addHook(this._iitmHook)\n}\n\nHook.prototype.unhook = function () {\n removeHook(this._iitmHook)\n}\n\nmodule.exports = Hook\nmodule.exports.Hook = Hook\nmodule.exports.addHook = addHook\nmodule.exports.removeHook = removeHook\nmodule.exports.createAddHookMessageChannel = createAddHookMessageChannel\n", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isWrapped = exports.safeExecuteInTheMiddleAsync = exports.safeExecuteInTheMiddle = void 0;\n/**\n * function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nfunction safeExecuteInTheMiddle(execute, onFinish, preventThrowingError) {\n let error;\n let result;\n try {\n result = execute();\n }\n catch (e) {\n error = e;\n }\n finally {\n onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return result;\n }\n}\nexports.safeExecuteInTheMiddle = safeExecuteInTheMiddle;\n/**\n * Async function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nasync function safeExecuteInTheMiddleAsync(execute, onFinish, preventThrowingError) {\n let error;\n let result;\n try {\n result = await execute();\n }\n catch (e) {\n error = e;\n }\n finally {\n await onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return result;\n }\n}\nexports.safeExecuteInTheMiddleAsync = safeExecuteInTheMiddleAsync;\n/**\n * Checks if certain function has been already wrapped\n * @param func\n */\nfunction isWrapped(func) {\n return (typeof func === 'function' &&\n typeof func.__original === 'function' &&\n typeof func.__unwrap === 'function' &&\n func.__wrapped === true);\n}\nexports.isWrapped = isWrapped;\n//# sourceMappingURL=utils.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationBase = void 0;\nconst path = require(\"path\");\nconst util_1 = require(\"util\");\nconst semver_1 = require(\"../../semver\");\nconst shimmer_1 = require(\"../../shimmer\");\nconst instrumentation_1 = require(\"../../instrumentation\");\nconst RequireInTheMiddleSingleton_1 = require(\"./RequireInTheMiddleSingleton\");\nconst import_in_the_middle_1 = require(\"import-in-the-middle\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst require_in_the_middle_1 = require(\"require-in-the-middle\");\nconst fs_1 = require(\"fs\");\nconst utils_1 = require(\"../../utils\");\n/**\n * Base abstract class for instrumenting node plugins\n */\nclass InstrumentationBase extends instrumentation_1.InstrumentationAbstract {\n _modules;\n _hooks = [];\n _requireInTheMiddleSingleton = RequireInTheMiddleSingleton_1.RequireInTheMiddleSingleton.getInstance();\n _enabled = false;\n constructor(instrumentationName, instrumentationVersion, config) {\n super(instrumentationName, instrumentationVersion, config);\n let modules = this.init();\n if (modules && !Array.isArray(modules)) {\n modules = [modules];\n }\n this._modules = modules || [];\n if (this._config.enabled) {\n this.enable();\n }\n }\n _wrap = (moduleExports, name, wrapper) => {\n if ((0, utils_1.isWrapped)(moduleExports[name])) {\n this._unwrap(moduleExports, name);\n }\n if (!util_1.types.isProxy(moduleExports)) {\n return (0, shimmer_1.wrap)(moduleExports, name, wrapper);\n }\n else {\n const wrapped = (0, shimmer_1.wrap)(Object.assign({}, moduleExports), name, wrapper);\n Object.defineProperty(moduleExports, name, {\n value: wrapped,\n });\n return wrapped;\n }\n };\n _unwrap = (moduleExports, name) => {\n if (!util_1.types.isProxy(moduleExports)) {\n return (0, shimmer_1.unwrap)(moduleExports, name);\n }\n else {\n return Object.defineProperty(moduleExports, name, {\n value: moduleExports[name],\n });\n }\n };\n _massWrap = (moduleExportsArray, names, wrapper) => {\n if (!moduleExportsArray) {\n api_1.diag.error('must provide one or more modules to patch');\n return;\n }\n else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n if (!(names && Array.isArray(names))) {\n api_1.diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._wrap(moduleExports, name, wrapper);\n });\n });\n };\n _massUnwrap = (moduleExportsArray, names) => {\n if (!moduleExportsArray) {\n api_1.diag.error('must provide one or more modules to patch');\n return;\n }\n else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n if (!(names && Array.isArray(names))) {\n api_1.diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._unwrap(moduleExports, name);\n });\n });\n };\n _warnOnPreloadedModules() {\n this._modules.forEach((module) => {\n const { name } = module;\n try {\n const resolvedModule = require.resolve(name);\n if (require.cache[resolvedModule]) {\n // Module is already cached, which means the instrumentation hook might not work\n this._diag.warn(`Module ${name} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${name}`);\n }\n }\n catch {\n // Module isn't available, we can simply skip\n }\n });\n }\n _extractPackageVersion(baseDir) {\n try {\n const json = (0, fs_1.readFileSync)(path.join(baseDir, 'package.json'), {\n encoding: 'utf8',\n });\n const version = JSON.parse(json).version;\n return typeof version === 'string' ? version : undefined;\n }\n catch {\n api_1.diag.warn('Failed extracting version', baseDir);\n }\n return undefined;\n }\n _onRequire(module, exports, name, baseDir) {\n if (!baseDir) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for nodejs core module on require hook', {\n module: module.name,\n });\n return module.patch(exports);\n }\n }\n return exports;\n }\n const version = this._extractPackageVersion(baseDir);\n module.moduleVersion = version;\n if (module.name === name) {\n // main module\n if (isSupported(module.supportedVersions, version, module.includePrerelease)) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for module on require hook', {\n module: module.name,\n version: module.moduleVersion,\n baseDir,\n });\n return module.patch(exports, module.moduleVersion);\n }\n }\n }\n return exports;\n }\n // internal file\n const files = module.files ?? [];\n const normalizedName = path.normalize(name);\n const supportedFileInstrumentations = files.filter(f => f.name === normalizedName &&\n isSupported(f.supportedVersions, version, module.includePrerelease));\n return supportedFileInstrumentations.reduce((patchedExports, file) => {\n file.moduleExports = patchedExports;\n if (this._enabled) {\n this._diag.debug('Applying instrumentation patch for nodejs module file on require hook', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n baseDir,\n });\n // patch signature is not typed, so we cast it assuming it's correct\n return file.patch(patchedExports, module.moduleVersion);\n }\n return patchedExports;\n }, exports);\n }\n enable() {\n if (this._enabled) {\n return;\n }\n this._enabled = true;\n // already hooked, just call patch again\n if (this._hooks.length > 0) {\n for (const module of this._modules) {\n if (typeof module.patch === 'function' && module.moduleExports) {\n this._diag.debug('Applying instrumentation patch for nodejs module on instrumentation enabled', {\n module: module.name,\n version: module.moduleVersion,\n });\n module.patch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug('Applying instrumentation patch for nodejs module file on instrumentation enabled', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n });\n file.patch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n return;\n }\n this._warnOnPreloadedModules();\n for (const module of this._modules) {\n const hookFn = (exports, name, baseDir) => {\n if (!baseDir && path.isAbsolute(name)) {\n // Change IITM `name` and `baseDir` values to match what RITM returns.\n // See \"Comparing to RITM\" on https://github.com/nodejs/import-in-the-middle/pull/241\n // for an example of the differences.\n const parsedPath = path.parse(name);\n name = parsedPath.name;\n baseDir = parsedPath.dir;\n }\n return this._onRequire(module, exports, name, baseDir);\n };\n const onRequire = (exports, name, baseDir) => {\n return this._onRequire(module, exports, name, baseDir);\n };\n // `RequireInTheMiddleSingleton` does not support absolute paths.\n // For an absolute paths, we must create a separate instance of the\n // require-in-the-middle `Hook`.\n const hook = path.isAbsolute(module.name)\n ? new require_in_the_middle_1.Hook([module.name], { internals: true }, onRequire)\n : this._requireInTheMiddleSingleton.register(module.name, onRequire);\n this._hooks.push(hook);\n const esmHook = new import_in_the_middle_1.Hook([module.name], { internals: true }, hookFn);\n this._hooks.push(esmHook);\n }\n }\n disable() {\n if (!this._enabled) {\n return;\n }\n this._enabled = false;\n for (const module of this._modules) {\n if (typeof module.unpatch === 'function' && module.moduleExports) {\n this._diag.debug('Removing instrumentation patch for nodejs module on instrumentation disabled', {\n module: module.name,\n version: module.moduleVersion,\n });\n module.unpatch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug('Removing instrumentation patch for nodejs module file on instrumentation disabled', {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n });\n file.unpatch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n }\n isEnabled() {\n return this._enabled;\n }\n}\nexports.InstrumentationBase = InstrumentationBase;\nfunction isSupported(supportedVersions, version, includePrerelease) {\n if (typeof version === 'undefined') {\n // If we don't have the version, accept the wildcard case only\n return supportedVersions.includes('*');\n }\n return supportedVersions.some(supportedVersion => {\n return (0, semver_1.satisfies)(version, supportedVersion, { includePrerelease });\n });\n}\n//# sourceMappingURL=instrumentation.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = void 0;\nvar path_1 = require(\"path\");\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return path_1.normalize; } });\n//# sourceMappingURL=normalize.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = exports.InstrumentationBase = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return instrumentation_1.InstrumentationBase; } });\nvar normalize_1 = require(\"./normalize\");\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return normalize_1.normalize; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = exports.InstrumentationBase = void 0;\nvar node_1 = require(\"./node\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return node_1.InstrumentationBase; } });\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return node_1.normalize; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationNodeModuleDefinition = void 0;\nclass InstrumentationNodeModuleDefinition {\n files;\n name;\n supportedVersions;\n patch;\n unpatch;\n constructor(name, supportedVersions, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n patch, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n unpatch, files) {\n this.files = files || [];\n this.name = name;\n this.supportedVersions = supportedVersions;\n this.patch = patch;\n this.unpatch = unpatch;\n }\n}\nexports.InstrumentationNodeModuleDefinition = InstrumentationNodeModuleDefinition;\n//# sourceMappingURL=instrumentationNodeModuleDefinition.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationNodeModuleFile = void 0;\nconst index_1 = require(\"./platform/index\");\nclass InstrumentationNodeModuleFile {\n name;\n supportedVersions;\n patch;\n unpatch;\n constructor(name, supportedVersions, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n patch, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n unpatch) {\n this.name = (0, index_1.normalize)(name);\n this.supportedVersions = supportedVersions;\n this.patch = patch;\n this.unpatch = unpatch;\n }\n}\nexports.InstrumentationNodeModuleFile = InstrumentationNodeModuleFile;\n//# sourceMappingURL=instrumentationNodeModuleFile.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semconvStabilityFromStr = exports.SemconvStability = void 0;\nvar SemconvStability;\n(function (SemconvStability) {\n /** Emit only stable semantic conventions. */\n SemconvStability[SemconvStability[\"STABLE\"] = 1] = \"STABLE\";\n /** Emit only old semantic conventions. */\n SemconvStability[SemconvStability[\"OLD\"] = 2] = \"OLD\";\n /** Emit both stable and old semantic conventions. */\n SemconvStability[SemconvStability[\"DUPLICATE\"] = 3] = \"DUPLICATE\";\n})(SemconvStability = exports.SemconvStability || (exports.SemconvStability = {}));\n/**\n * Determine the appropriate semconv stability for the given namespace.\n *\n * This will parse the given string of comma-separated values (often\n * `process.env.OTEL_SEMCONV_STABILITY_OPT_IN`) looking for the `${namespace}`\n * or `${namespace}/dup` tokens. This is a pattern defined by a number of\n * non-normative semconv documents.\n *\n * For example:\n * - namespace 'http': https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\n * - namespace 'database': https://opentelemetry.io/docs/specs/semconv/non-normative/database-migration/\n * - namespace 'k8s': https://opentelemetry.io/docs/specs/semconv/non-normative/k8s-migration/\n *\n * Usage:\n *\n * import {SemconvStability, semconvStabilityFromStr} from '@opentelemetry/instrumentation';\n *\n * export class FooInstrumentation extends InstrumentationBase {\n * private _semconvStability: SemconvStability;\n * constructor(config: FooInstrumentationConfig = {}) {\n * super('@opentelemetry/instrumentation-foo', VERSION, config);\n *\n * // When supporting the OTEL_SEMCONV_STABILITY_OPT_IN envvar\n * this._semconvStability = semconvStabilityFromStr(\n * 'http',\n * process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n * );\n *\n * // or when supporting a `semconvStabilityOptIn` config option (e.g. for\n * // the web where there are no envvars).\n * this._semconvStability = semconvStabilityFromStr(\n * 'http',\n * config?.semconvStabilityOptIn\n * );\n * }\n * }\n *\n * // Then, to apply semconv, use the following or similar:\n * if (this._semconvStability & SemconvStability.OLD) {\n * // ...\n * }\n * if (this._semconvStability & SemconvStability.STABLE) {\n * // ...\n * }\n *\n */\nfunction semconvStabilityFromStr(namespace, str) {\n let semconvStability = SemconvStability.OLD;\n // The same parsing of `str` as `getStringListFromEnv` from the core pkg.\n const entries = str\n ?.split(',')\n .map(v => v.trim())\n .filter(s => s !== '');\n for (const entry of entries ?? []) {\n if (entry.toLowerCase() === namespace + '/dup') {\n // DUPLICATE takes highest precedence.\n semconvStability = SemconvStability.DUPLICATE;\n break;\n }\n else if (entry.toLowerCase() === namespace) {\n semconvStability = SemconvStability.STABLE;\n }\n }\n return semconvStability;\n}\nexports.semconvStabilityFromStr = semconvStabilityFromStr;\n//# sourceMappingURL=semconvStability.js.map", - "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semconvStabilityFromStr = exports.SemconvStability = exports.safeExecuteInTheMiddleAsync = exports.safeExecuteInTheMiddle = exports.isWrapped = exports.InstrumentationNodeModuleFile = exports.InstrumentationNodeModuleDefinition = exports.InstrumentationBase = exports.registerInstrumentations = void 0;\nvar autoLoader_1 = require(\"./autoLoader\");\nObject.defineProperty(exports, \"registerInstrumentations\", { enumerable: true, get: function () { return autoLoader_1.registerInstrumentations; } });\nvar index_1 = require(\"./platform/index\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return index_1.InstrumentationBase; } });\nvar instrumentationNodeModuleDefinition_1 = require(\"./instrumentationNodeModuleDefinition\");\nObject.defineProperty(exports, \"InstrumentationNodeModuleDefinition\", { enumerable: true, get: function () { return instrumentationNodeModuleDefinition_1.InstrumentationNodeModuleDefinition; } });\nvar instrumentationNodeModuleFile_1 = require(\"./instrumentationNodeModuleFile\");\nObject.defineProperty(exports, \"InstrumentationNodeModuleFile\", { enumerable: true, get: function () { return instrumentationNodeModuleFile_1.InstrumentationNodeModuleFile; } });\nvar utils_1 = require(\"./utils\");\nObject.defineProperty(exports, \"isWrapped\", { enumerable: true, get: function () { return utils_1.isWrapped; } });\nObject.defineProperty(exports, \"safeExecuteInTheMiddle\", { enumerable: true, get: function () { return utils_1.safeExecuteInTheMiddle; } });\nObject.defineProperty(exports, \"safeExecuteInTheMiddleAsync\", { enumerable: true, get: function () { return utils_1.safeExecuteInTheMiddleAsync; } });\nvar semconvStability_1 = require(\"./semconvStability\");\nObject.defineProperty(exports, \"SemconvStability\", { enumerable: true, get: function () { return semconvStability_1.SemconvStability; } });\nObject.defineProperty(exports, \"semconvStabilityFromStr\", { enumerable: true, get: function () { return semconvStability_1.semconvStabilityFromStr; } });\n//# sourceMappingURL=index.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.range = exports.balanced = void 0;\nconst balanced = (a, b, str) => {\n const ma = a instanceof RegExp ? maybeMatch(a, str) : a;\n const mb = b instanceof RegExp ? maybeMatch(b, str) : b;\n const r = ma !== null && mb != null && (0, exports.range)(ma, mb, str);\n return (r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + ma.length, r[1]),\n post: str.slice(r[1] + mb.length),\n });\n};\nexports.balanced = balanced;\nconst maybeMatch = (reg, str) => {\n const m = str.match(reg);\n return m ? m[0] : null;\n};\nconst range = (a, b, str) => {\n let begs, beg, left, right = undefined, result;\n let ai = str.indexOf(a);\n let bi = str.indexOf(b, ai + 1);\n let i = ai;\n if (ai >= 0 && bi > 0) {\n if (a === b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n while (i >= 0 && !result) {\n if (i === ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n }\n else if (begs.length === 1) {\n const r = begs.pop();\n if (r !== undefined)\n result = [r, bi];\n }\n else {\n beg = begs.pop();\n if (beg !== undefined && beg < left) {\n left = beg;\n right = bi;\n }\n bi = str.indexOf(b, i + 1);\n }\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n if (begs.length && right !== undefined) {\n result = [left, right];\n }\n }\n return result;\n};\nexports.range = range;\n//# sourceMappingURL=index.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EXPANSION_MAX = void 0;\nexports.expand = expand;\nconst balanced_match_1 = require(\"balanced-match\");\nconst escSlash = '\\0SLASH' + Math.random() + '\\0';\nconst escOpen = '\\0OPEN' + Math.random() + '\\0';\nconst escClose = '\\0CLOSE' + Math.random() + '\\0';\nconst escComma = '\\0COMMA' + Math.random() + '\\0';\nconst escPeriod = '\\0PERIOD' + Math.random() + '\\0';\nconst escSlashPattern = new RegExp(escSlash, 'g');\nconst escOpenPattern = new RegExp(escOpen, 'g');\nconst escClosePattern = new RegExp(escClose, 'g');\nconst escCommaPattern = new RegExp(escComma, 'g');\nconst escPeriodPattern = new RegExp(escPeriod, 'g');\nconst slashPattern = /\\\\\\\\/g;\nconst openPattern = /\\\\{/g;\nconst closePattern = /\\\\}/g;\nconst commaPattern = /\\\\,/g;\nconst periodPattern = /\\\\\\./g;\nexports.EXPANSION_MAX = 100_000;\nfunction numeric(str) {\n return !isNaN(str) ? parseInt(str, 10) : str.charCodeAt(0);\n}\nfunction escapeBraces(str) {\n return str\n .replace(slashPattern, escSlash)\n .replace(openPattern, escOpen)\n .replace(closePattern, escClose)\n .replace(commaPattern, escComma)\n .replace(periodPattern, escPeriod);\n}\nfunction unescapeBraces(str) {\n return str\n .replace(escSlashPattern, '\\\\')\n .replace(escOpenPattern, '{')\n .replace(escClosePattern, '}')\n .replace(escCommaPattern, ',')\n .replace(escPeriodPattern, '.');\n}\n/**\n * Basically just str.split(\",\"), but handling cases\n * where we have nested braced sections, which should be\n * treated as individual members, like {a,{b,c},d}\n */\nfunction parseCommaParts(str) {\n if (!str) {\n return [''];\n }\n const parts = [];\n const m = (0, balanced_match_1.balanced)('{', '}', str);\n if (!m) {\n return str.split(',');\n }\n const { pre, body, post } = m;\n const p = pre.split(',');\n p[p.length - 1] += '{' + body + '}';\n const postParts = parseCommaParts(post);\n if (post.length) {\n ;\n p[p.length - 1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n parts.push.apply(parts, p);\n return parts;\n}\nfunction expand(str, options = {}) {\n if (!str) {\n return [];\n }\n const { max = exports.EXPANSION_MAX } = options;\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.slice(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.slice(2);\n }\n return expand_(escapeBraces(str), max, true).map(unescapeBraces);\n}\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\nfunction expand_(str, max, isTop) {\n /** @type {string[]} */\n const expansions = [];\n const m = (0, balanced_match_1.balanced)('{', '}', str);\n if (!m)\n return [str];\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n const pre = m.pre;\n const post = m.post.length ? expand_(m.post, max, false) : [''];\n if (/\\$$/.test(m.pre)) {\n for (let k = 0; k < post.length && k < max; k++) {\n const expansion = pre + '{' + m.body + '}' + post[k];\n expansions.push(expansion);\n }\n }\n else {\n const isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n const isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n const isSequence = isNumericSequence || isAlphaSequence;\n const isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,(?!,).*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand_(str, max, true);\n }\n return [str];\n }\n let n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n }\n else {\n n = parseCommaParts(m.body);\n if (n.length === 1 && n[0] !== undefined) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand_(n[0], max, false).map(embrace);\n //XXX is this necessary? Can't seem to hit it in tests.\n /* c8 ignore start */\n if (n.length === 1) {\n return post.map(p => m.pre + n[0] + p);\n }\n /* c8 ignore stop */\n }\n }\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n let N;\n if (isSequence && n[0] !== undefined && n[1] !== undefined) {\n const x = numeric(n[0]);\n const y = numeric(n[1]);\n const width = Math.max(n[0].length, n[1].length);\n let incr = n.length === 3 && n[2] !== undefined ?\n Math.max(Math.abs(numeric(n[2])), 1)\n : 1;\n let test = lte;\n const reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n const pad = n.some(isPadded);\n N = [];\n for (let i = x; test(i, y); i += incr) {\n let c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\') {\n c = '';\n }\n }\n else {\n c = String(i);\n if (pad) {\n const need = width - c.length;\n if (need > 0) {\n const z = new Array(need + 1).join('0');\n if (i < 0) {\n c = '-' + z + c.slice(1);\n }\n else {\n c = z + c;\n }\n }\n }\n }\n N.push(c);\n }\n }\n else {\n N = [];\n for (let j = 0; j < n.length; j++) {\n N.push.apply(N, expand_(n[j], max, false));\n }\n }\n for (let j = 0; j < N.length; j++) {\n for (let k = 0; k < post.length && expansions.length < max; k++) {\n const expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion) {\n expansions.push(expansion);\n }\n }\n }\n }\n return expansions;\n}\n//# sourceMappingURL=index.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertValidPattern = void 0;\nconst MAX_PATTERN_LENGTH = 1024 * 64;\nconst assertValidPattern = (pattern) => {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern');\n }\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long');\n }\n};\nexports.assertValidPattern = assertValidPattern;\n//# sourceMappingURL=assert-valid-pattern.js.map", - "\"use strict\";\n// translate the various posix character classes into unicode properties\n// this works across all unicode locales\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseClass = void 0;\n// { : [, /u flag required, negated]\nconst posixClasses = {\n '[:alnum:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}', true],\n '[:alpha:]': ['\\\\p{L}\\\\p{Nl}', true],\n '[:ascii:]': ['\\\\x' + '00-\\\\x' + '7f', false],\n '[:blank:]': ['\\\\p{Zs}\\\\t', true],\n '[:cntrl:]': ['\\\\p{Cc}', true],\n '[:digit:]': ['\\\\p{Nd}', true],\n '[:graph:]': ['\\\\p{Z}\\\\p{C}', true, true],\n '[:lower:]': ['\\\\p{Ll}', true],\n '[:print:]': ['\\\\p{C}', true],\n '[:punct:]': ['\\\\p{P}', true],\n '[:space:]': ['\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f', true],\n '[:upper:]': ['\\\\p{Lu}', true],\n '[:word:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}', true],\n '[:xdigit:]': ['A-Fa-f0-9', false],\n};\n// only need to escape a few things inside of brace expressions\n// escapes: [ \\ ] -\nconst braceEscape = (s) => s.replace(/[[\\]\\\\-]/g, '\\\\$&');\n// escape all regexp magic characters\nconst regexpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// everything has already been escaped, we just have to join\nconst rangesToString = (ranges) => ranges.join('');\n// takes a glob string at a posix brace expression, and returns\n// an equivalent regular expression source, and boolean indicating\n// whether the /u flag needs to be applied, and the number of chars\n// consumed to parse the character class.\n// This also removes out of order ranges, and returns ($.) if the\n// entire class just no good.\nconst parseClass = (glob, position) => {\n const pos = position;\n /* c8 ignore start */\n if (glob.charAt(pos) !== '[') {\n throw new Error('not in a brace expression');\n }\n /* c8 ignore stop */\n const ranges = [];\n const negs = [];\n let i = pos + 1;\n let sawStart = false;\n let uflag = false;\n let escaping = false;\n let negate = false;\n let endPos = pos;\n let rangeStart = '';\n WHILE: while (i < glob.length) {\n const c = glob.charAt(i);\n if ((c === '!' || c === '^') && i === pos + 1) {\n negate = true;\n i++;\n continue;\n }\n if (c === ']' && sawStart && !escaping) {\n endPos = i + 1;\n break;\n }\n sawStart = true;\n if (c === '\\\\') {\n if (!escaping) {\n escaping = true;\n i++;\n continue;\n }\n // escaped \\ char, fall through and treat like normal char\n }\n if (c === '[' && !escaping) {\n // either a posix class, a collation equivalent, or just a [\n for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n if (glob.startsWith(cls, i)) {\n // invalid, [a-[] is fine, but not [a-[:alpha]]\n if (rangeStart) {\n return ['$.', false, glob.length - pos, true];\n }\n i += cls.length;\n if (neg)\n negs.push(unip);\n else\n ranges.push(unip);\n uflag = uflag || u;\n continue WHILE;\n }\n }\n }\n // now it's just a normal character, effectively\n escaping = false;\n if (rangeStart) {\n // throw this range away if it's not valid, but others\n // can still match.\n if (c > rangeStart) {\n ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c));\n }\n else if (c === rangeStart) {\n ranges.push(braceEscape(c));\n }\n rangeStart = '';\n i++;\n continue;\n }\n // now might be the start of a range.\n // can be either c-d or c-] or c] or c] at this point\n if (glob.startsWith('-]', i + 1)) {\n ranges.push(braceEscape(c + '-'));\n i += 2;\n continue;\n }\n if (glob.startsWith('-', i + 1)) {\n rangeStart = c;\n i += 2;\n continue;\n }\n // not the start of a range, just a single character\n ranges.push(braceEscape(c));\n i++;\n }\n if (endPos < i) {\n // didn't see the end of the class, not a valid class,\n // but might still be valid as a literal match.\n return ['', false, 0, false];\n }\n // if we got no ranges and no negates, then we have a range that\n // cannot possibly match anything, and that poisons the whole glob\n if (!ranges.length && !negs.length) {\n return ['$.', false, glob.length - pos, true];\n }\n // if we got one positive range, and it's a single character, then that's\n // not actually a magic pattern, it's just that one literal character.\n // we should not treat that as \"magic\", we should just return the literal\n // character. [_] is a perfectly valid way to escape glob magic chars.\n if (negs.length === 0 &&\n ranges.length === 1 &&\n /^\\\\?.$/.test(ranges[0]) &&\n !negate) {\n const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];\n return [regexpEscape(r), false, endPos - pos, false];\n }\n const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']';\n const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']';\n const comb = ranges.length && negs.length ? '(' + sranges + '|' + snegs + ')'\n : ranges.length ? sranges\n : snegs;\n return [comb, uflag, endPos - pos, true];\n};\nexports.parseClass = parseClass;\n//# sourceMappingURL=brace-expressions.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unescape = void 0;\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link MinimatchOptions.windowsPathsNoEscape} option is used, then\n * square-bracket escapes are removed, but not backslash escapes.\n *\n * For example, it will turn the string `'[*]'` into `*`, but it will not\n * turn `'\\\\*'` into `'*'`, because `\\` is a path separator in\n * `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both square-bracket escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n *\n * When `magicalBraces` is not set, escapes of braces (`{` and `}`) will not be\n * unescaped.\n */\nconst unescape = (s, { windowsPathsNoEscape = false, magicalBraces = true, } = {}) => {\n if (magicalBraces) {\n return windowsPathsNoEscape ?\n s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n : s\n .replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2')\n .replace(/\\\\([^\\/])/g, '$1');\n }\n return windowsPathsNoEscape ?\n s.replace(/\\[([^\\/\\\\{}])\\]/g, '$1')\n : s\n .replace(/((?!\\\\).|^)\\[([^\\/\\\\{}])\\]/g, '$1$2')\n .replace(/\\\\([^\\/{}])/g, '$1');\n};\nexports.unescape = unescape;\n//# sourceMappingURL=unescape.js.map", - "\"use strict\";\n// parse a single path portion\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AST = void 0;\nconst brace_expressions_js_1 = require(\"./brace-expressions.js\");\nconst unescape_js_1 = require(\"./unescape.js\");\nconst types = new Set(['!', '?', '+', '*', '@']);\nconst isExtglobType = (c) => types.has(c);\nconst isExtglobAST = (c) => isExtglobType(c.type);\n// Map of which extglob types can adopt the children of a nested extglob\n//\n// anything but ! can adopt a matching type:\n// +(a|+(b|c)|d) => +(a|b|c|d)\n// *(a|*(b|c)|d) => *(a|b|c|d)\n// @(a|@(b|c)|d) => @(a|b|c|d)\n// ?(a|?(b|c)|d) => ?(a|b|c|d)\n//\n// * can adopt anything, because 0 or repetition is allowed\n// *(a|?(b|c)|d) => *(a|b|c|d)\n// *(a|+(b|c)|d) => *(a|b|c|d)\n// *(a|@(b|c)|d) => *(a|b|c|d)\n//\n// + can adopt @, because 1 or repetition is allowed\n// +(a|@(b|c)|d) => +(a|b|c|d)\n//\n// + and @ CANNOT adopt *, because 0 would be allowed\n// +(a|*(b|c)|d) => would match \"\", on *(b|c)\n// @(a|*(b|c)|d) => would match \"\", on *(b|c)\n//\n// + and @ CANNOT adopt ?, because 0 would be allowed\n// +(a|?(b|c)|d) => would match \"\", on ?(b|c)\n// @(a|?(b|c)|d) => would match \"\", on ?(b|c)\n//\n// ? can adopt @, because 0 or 1 is allowed\n// ?(a|@(b|c)|d) => ?(a|b|c|d)\n//\n// ? and @ CANNOT adopt * or +, because >1 would be allowed\n// ?(a|*(b|c)|d) => would match bbb on *(b|c)\n// @(a|*(b|c)|d) => would match bbb on *(b|c)\n// ?(a|+(b|c)|d) => would match bbb on +(b|c)\n// @(a|+(b|c)|d) => would match bbb on +(b|c)\n//\n// ! CANNOT adopt ! (nothing else can either)\n// !(a|!(b|c)|d) => !(a|b|c|d) would fail to match on b (not not b|c)\n//\n// ! can adopt @\n// !(a|@(b|c)|d) => !(a|b|c|d)\n//\n// ! CANNOT adopt *\n// !(a|*(b|c)|d) => !(a|b|c|d) would match on bbb, not allowed\n//\n// ! CANNOT adopt +\n// !(a|+(b|c)|d) => !(a|b|c|d) would match on bbb, not allowed\n//\n// ! CANNOT adopt ?\n// x!(a|?(b|c)|d) => x!(a|b|c|d) would fail to match \"x\"\nconst adoptionMap = new Map([\n ['!', ['@']],\n ['?', ['?', '@']],\n ['@', ['@']],\n ['*', ['*', '+', '?', '@']],\n ['+', ['+', '@']],\n]);\n// nested extglobs that can be adopted in, but with the addition of\n// a blank '' element.\nconst adoptionWithSpaceMap = new Map([\n ['!', ['?']],\n ['@', ['?']],\n ['+', ['?', '*']],\n]);\n// union of the previous two maps\nconst adoptionAnyMap = new Map([\n ['!', ['?', '@']],\n ['?', ['?', '@']],\n ['@', ['?', '@']],\n ['*', ['*', '+', '?', '@']],\n ['+', ['+', '@', '?', '*']],\n]);\n// Extglobs that can take over their parent if they are the only child\n// the key is parent, value maps child to resulting extglob parent type\n// '@' is omitted because it's a special case. An `@` extglob with a single\n// member can always be usurped by that subpattern.\nconst usurpMap = new Map([\n ['!', new Map([['!', '@']])],\n [\n '?',\n new Map([\n ['*', '*'],\n ['+', '*'],\n ]),\n ],\n [\n '@',\n new Map([\n ['!', '!'],\n ['?', '?'],\n ['@', '@'],\n ['*', '*'],\n ['+', '+'],\n ]),\n ],\n [\n '+',\n new Map([\n ['?', '*'],\n ['*', '*'],\n ]),\n ],\n]);\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))';\nconst startNoDot = '(?!\\\\.)';\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.']);\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.']);\nconst reSpecials = new Set('().*{}+?[]^$\\\\!');\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// any single thing other than /\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?';\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\nlet ID = 0;\nclass AST {\n type;\n #root;\n #hasMagic;\n #uflag = false;\n #parts = [];\n #parent;\n #parentIndex;\n #negs;\n #filledNegs = false;\n #options;\n #toString;\n // set to true if it's an extglob with no children\n // (which really means one child of '')\n #emptyExt = false;\n id = ++ID;\n get depth() {\n return (this.#parent?.depth ?? -1) + 1;\n }\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return {\n '@@type': 'AST',\n id: this.id,\n type: this.type,\n root: this.#root.id,\n parent: this.#parent?.id,\n depth: this.depth,\n partsLength: this.#parts.length,\n parts: this.#parts,\n };\n }\n constructor(type, parent, options = {}) {\n this.type = type;\n // extglobs are inherently magical\n if (type)\n this.#hasMagic = true;\n this.#parent = parent;\n this.#root = this.#parent ? this.#parent.#root : this;\n this.#options = this.#root === this ? options : this.#root.#options;\n this.#negs = this.#root === this ? [] : this.#root.#negs;\n if (type === '!' && !this.#root.#filledNegs)\n this.#negs.push(this);\n this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0;\n }\n get hasMagic() {\n /* c8 ignore start */\n if (this.#hasMagic !== undefined)\n return this.#hasMagic;\n /* c8 ignore stop */\n for (const p of this.#parts) {\n if (typeof p === 'string')\n continue;\n if (p.type || p.hasMagic)\n return (this.#hasMagic = true);\n }\n // note: will be undefined until we generate the regexp src and find out\n return this.#hasMagic;\n }\n // reconstructs the pattern\n toString() {\n if (this.#toString !== undefined)\n return this.#toString;\n if (!this.type) {\n return (this.#toString = this.#parts.map(p => String(p)).join(''));\n }\n else {\n return (this.#toString =\n this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')');\n }\n }\n #fillNegs() {\n /* c8 ignore start */\n if (this !== this.#root)\n throw new Error('should only call on root');\n if (this.#filledNegs)\n return this;\n /* c8 ignore stop */\n // call toString() once to fill this out\n this.toString();\n this.#filledNegs = true;\n let n;\n while ((n = this.#negs.pop())) {\n if (n.type !== '!')\n continue;\n // walk up the tree, appending everthing that comes AFTER parentIndex\n let p = n;\n let pp = p.#parent;\n while (pp) {\n for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) {\n for (const part of n.#parts) {\n /* c8 ignore start */\n if (typeof part === 'string') {\n throw new Error('string part in extglob AST??');\n }\n /* c8 ignore stop */\n part.copyIn(pp.#parts[i]);\n }\n }\n p = pp;\n pp = p.#parent;\n }\n }\n return this;\n }\n push(...parts) {\n for (const p of parts) {\n if (p === '')\n continue;\n /* c8 ignore start */\n if (typeof p !== 'string' &&\n !(p instanceof _a && p.#parent === this)) {\n throw new Error('invalid part: ' + p);\n }\n /* c8 ignore stop */\n this.#parts.push(p);\n }\n }\n toJSON() {\n const ret = this.type === null ?\n this.#parts\n .slice()\n .map(p => (typeof p === 'string' ? p : p.toJSON()))\n : [this.type, ...this.#parts.map(p => p.toJSON())];\n if (this.isStart() && !this.type)\n ret.unshift([]);\n if (this.isEnd() &&\n (this === this.#root ||\n (this.#root.#filledNegs && this.#parent?.type === '!'))) {\n ret.push({});\n }\n return ret;\n }\n isStart() {\n if (this.#root === this)\n return true;\n // if (this.type) return !!this.#parent?.isStart()\n if (!this.#parent?.isStart())\n return false;\n if (this.#parentIndex === 0)\n return true;\n // if everything AHEAD of this is a negation, then it's still the \"start\"\n const p = this.#parent;\n for (let i = 0; i < this.#parentIndex; i++) {\n const pp = p.#parts[i];\n if (!(pp instanceof _a && pp.type === '!')) {\n return false;\n }\n }\n return true;\n }\n isEnd() {\n if (this.#root === this)\n return true;\n if (this.#parent?.type === '!')\n return true;\n if (!this.#parent?.isEnd())\n return false;\n if (!this.type)\n return this.#parent?.isEnd();\n // if not root, it'll always have a parent\n /* c8 ignore start */\n const pl = this.#parent ? this.#parent.#parts.length : 0;\n /* c8 ignore stop */\n return this.#parentIndex === pl - 1;\n }\n copyIn(part) {\n if (typeof part === 'string')\n this.push(part);\n else\n this.push(part.clone(this));\n }\n clone(parent) {\n const c = new _a(this.type, parent);\n for (const p of this.#parts) {\n c.copyIn(p);\n }\n return c;\n }\n static #parseAST(str, ast, pos, opt, extDepth) {\n const maxDepth = opt.maxExtglobRecursion ?? 2;\n let escaping = false;\n let inBrace = false;\n let braceStart = -1;\n let braceNeg = false;\n if (ast.type === null) {\n // outside of a extglob, append until we find a start\n let i = pos;\n let acc = '';\n while (i < str.length) {\n const c = str.charAt(i++);\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping;\n acc += c;\n continue;\n }\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true;\n }\n }\n else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false;\n }\n acc += c;\n continue;\n }\n else if (c === '[') {\n inBrace = true;\n braceStart = i;\n braceNeg = false;\n acc += c;\n continue;\n }\n // we don't have to check for adoption here, because that's\n // done at the other recursion point.\n const doRecurse = !opt.noext &&\n isExtglobType(c) &&\n str.charAt(i) === '(' &&\n extDepth <= maxDepth;\n if (doRecurse) {\n ast.push(acc);\n acc = '';\n const ext = new _a(c, ast);\n i = _a.#parseAST(str, ext, i, opt, extDepth + 1);\n ast.push(ext);\n continue;\n }\n acc += c;\n }\n ast.push(acc);\n return i;\n }\n // some kind of extglob, pos is at the (\n // find the next | or )\n let i = pos + 1;\n let part = new _a(null, ast);\n const parts = [];\n let acc = '';\n while (i < str.length) {\n const c = str.charAt(i++);\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping;\n acc += c;\n continue;\n }\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true;\n }\n }\n else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false;\n }\n acc += c;\n continue;\n }\n else if (c === '[') {\n inBrace = true;\n braceStart = i;\n braceNeg = false;\n acc += c;\n continue;\n }\n const doRecurse = !opt.noext &&\n isExtglobType(c) &&\n str.charAt(i) === '(' &&\n /* c8 ignore start - the maxDepth is sufficient here */\n (extDepth <= maxDepth || (ast && ast.#canAdoptType(c)));\n /* c8 ignore stop */\n if (doRecurse) {\n const depthAdd = ast && ast.#canAdoptType(c) ? 0 : 1;\n part.push(acc);\n acc = '';\n const ext = new _a(c, part);\n part.push(ext);\n i = _a.#parseAST(str, ext, i, opt, extDepth + depthAdd);\n continue;\n }\n if (c === '|') {\n part.push(acc);\n acc = '';\n parts.push(part);\n part = new _a(null, ast);\n continue;\n }\n if (c === ')') {\n if (acc === '' && ast.#parts.length === 0) {\n ast.#emptyExt = true;\n }\n part.push(acc);\n acc = '';\n ast.push(...parts, part);\n return i;\n }\n acc += c;\n }\n // unfinished extglob\n // if we got here, it was a malformed extglob! not an extglob, but\n // maybe something else in there.\n ast.type = null;\n ast.#hasMagic = undefined;\n ast.#parts = [str.substring(pos - 1)];\n return i;\n }\n #canAdoptWithSpace(child) {\n return this.#canAdopt(child, adoptionWithSpaceMap);\n }\n #canAdopt(child, map = adoptionMap) {\n if (!child ||\n typeof child !== 'object' ||\n child.type !== null ||\n child.#parts.length !== 1 ||\n this.type === null) {\n return false;\n }\n const gc = child.#parts[0];\n if (!gc || typeof gc !== 'object' || gc.type === null) {\n return false;\n }\n return this.#canAdoptType(gc.type, map);\n }\n #canAdoptType(c, map = adoptionAnyMap) {\n return !!map.get(this.type)?.includes(c);\n }\n #adoptWithSpace(child, index) {\n const gc = child.#parts[0];\n const blank = new _a(null, gc, this.options);\n blank.#parts.push('');\n gc.push(blank);\n this.#adopt(child, index);\n }\n #adopt(child, index) {\n const gc = child.#parts[0];\n this.#parts.splice(index, 1, ...gc.#parts);\n for (const p of gc.#parts) {\n if (typeof p === 'object')\n p.#parent = this;\n }\n this.#toString = undefined;\n }\n #canUsurpType(c) {\n const m = usurpMap.get(this.type);\n return !!(m?.has(c));\n }\n #canUsurp(child) {\n if (!child ||\n typeof child !== 'object' ||\n child.type !== null ||\n child.#parts.length !== 1 ||\n this.type === null ||\n this.#parts.length !== 1) {\n return false;\n }\n const gc = child.#parts[0];\n if (!gc || typeof gc !== 'object' || gc.type === null) {\n return false;\n }\n return this.#canUsurpType(gc.type);\n }\n #usurp(child) {\n const m = usurpMap.get(this.type);\n const gc = child.#parts[0];\n const nt = m?.get(gc.type);\n /* c8 ignore start - impossible */\n if (!nt)\n return false;\n /* c8 ignore stop */\n this.#parts = gc.#parts;\n for (const p of this.#parts) {\n if (typeof p === 'object') {\n p.#parent = this;\n }\n }\n this.type = nt;\n this.#toString = undefined;\n this.#emptyExt = false;\n }\n static fromGlob(pattern, options = {}) {\n const ast = new _a(null, undefined, options);\n _a.#parseAST(pattern, ast, 0, options, 0);\n return ast;\n }\n // returns the regular expression if there's magic, or the unescaped\n // string if not.\n toMMPattern() {\n // should only be called on root\n /* c8 ignore start */\n if (this !== this.#root)\n return this.#root.toMMPattern();\n /* c8 ignore stop */\n const glob = this.toString();\n const [re, body, hasMagic, uflag] = this.toRegExpSource();\n // if we're in nocase mode, and not nocaseMagicOnly, then we do\n // still need a regular expression if we have to case-insensitively\n // match capital/lowercase characters.\n const anyMagic = hasMagic ||\n this.#hasMagic ||\n (this.#options.nocase &&\n !this.#options.nocaseMagicOnly &&\n glob.toUpperCase() !== glob.toLowerCase());\n if (!anyMagic) {\n return body;\n }\n const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '');\n return Object.assign(new RegExp(`^${re}$`, flags), {\n _src: re,\n _glob: glob,\n });\n }\n get options() {\n return this.#options;\n }\n // returns the string match, the regexp source, whether there's magic\n // in the regexp (so a regular expression is required) and whether or\n // not the uflag is needed for the regular expression (for posix classes)\n // TODO: instead of injecting the start/end at this point, just return\n // the BODY of the regexp, along with the start/end portions suitable\n // for binding the start/end in either a joined full-path makeRe context\n // (where we bind to (^|/), or a standalone matchPart context (where\n // we bind to ^, and not /). Otherwise slashes get duped!\n //\n // In part-matching mode, the start is:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n // - if dots allowed or not possible: ^\n // - if dots possible and not allowed: ^(?!\\.)\n // end is:\n // - if not isEnd(): nothing\n // - else: $\n //\n // In full-path matching mode, we put the slash at the START of the\n // pattern, so start is:\n // - if first pattern: same as part-matching mode\n // - if not isStart(): nothing\n // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n // - if dots allowed or not possible: /\n // - if dots possible and not allowed: /(?!\\.)\n // end is:\n // - if last pattern, same as part-matching mode\n // - else nothing\n //\n // Always put the (?:$|/) on negated tails, though, because that has to be\n // there to bind the end of the negated pattern portion, and it's easier to\n // just stick it in now rather than try to inject it later in the middle of\n // the pattern.\n //\n // We can just always return the same end, and leave it up to the caller\n // to know whether it's going to be used joined or in parts.\n // And, if the start is adjusted slightly, can do the same there:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n // - if dots allowed or not possible: (?:/|^)\n // - if dots possible and not allowed: (?:/|^)(?!\\.)\n //\n // But it's better to have a simpler binding without a conditional, for\n // performance, so probably better to return both start options.\n //\n // Then the caller just ignores the end if it's not the first pattern,\n // and the start always gets applied.\n //\n // But that's always going to be $ if it's the ending pattern, or nothing,\n // so the caller can just attach $ at the end of the pattern when building.\n //\n // So the todo is:\n // - better detect what kind of start is needed\n // - return both flavors of starting pattern\n // - attach $ at the end of the pattern when creating the actual RegExp\n //\n // Ah, but wait, no, that all only applies to the root when the first pattern\n // is not an extglob. If the first pattern IS an extglob, then we need all\n // that dot prevention biz to live in the extglob portions, because eg\n // +(*|.x*) can match .xy but not .yx.\n //\n // So, return the two flavors if it's #root and the first child is not an\n // AST, otherwise leave it to the child AST to handle it, and there,\n // use the (?:^|/) style of start binding.\n //\n // Even simplified further:\n // - Since the start for a join is eg /(?!\\.) and the start for a part\n // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n // or start or whatever) and prepend ^ or / at the Regexp construction.\n toRegExpSource(allowDot) {\n const dot = allowDot ?? !!this.#options.dot;\n if (this.#root === this) {\n this.#flatten();\n this.#fillNegs();\n }\n if (!isExtglobAST(this)) {\n const noEmpty = this.isStart() &&\n this.isEnd() &&\n !this.#parts.some(s => typeof s !== 'string');\n const src = this.#parts\n .map(p => {\n const [re, _, hasMagic, uflag] = typeof p === 'string' ?\n _a.#parseGlob(p, this.#hasMagic, noEmpty)\n : p.toRegExpSource(allowDot);\n this.#hasMagic = this.#hasMagic || hasMagic;\n this.#uflag = this.#uflag || uflag;\n return re;\n })\n .join('');\n let start = '';\n if (this.isStart()) {\n if (typeof this.#parts[0] === 'string') {\n // this is the string that will match the start of the pattern,\n // so we need to protect against dots and such.\n // '.' and '..' cannot match unless the pattern is that exactly,\n // even if it starts with . or dot:true is set.\n const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]);\n if (!dotTravAllowed) {\n const aps = addPatternStart;\n // check if we have a possibility of matching . or ..,\n // and prevent that.\n const needNoTrav = \n // dots are allowed, and the pattern starts with [ or .\n (dot && aps.has(src.charAt(0))) ||\n // the pattern starts with \\., and then [ or .\n (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n // the pattern starts with \\.\\., and then [ or .\n (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)));\n // no need to prevent dots if it can't match a dot, or if a\n // sub-pattern will be preventing it anyway.\n const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));\n start =\n needNoTrav ? startNoTraversal\n : needNoDot ? startNoDot\n : '';\n }\n }\n }\n // append the \"end of path portion\" pattern to negation tails\n let end = '';\n if (this.isEnd() &&\n this.#root.#filledNegs &&\n this.#parent?.type === '!') {\n end = '(?:$|\\\\/)';\n }\n const final = start + src + end;\n return [\n final,\n (0, unescape_js_1.unescape)(src),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ];\n }\n // We need to calculate the body *twice* if it's a repeat pattern\n // at the start, once in nodot mode, then again in dot mode, so a\n // pattern like *(?) can match 'x.y'\n const repeated = this.type === '*' || this.type === '+';\n // some kind of extglob\n const start = this.type === '!' ? '(?:(?!(?:' : '(?:';\n let body = this.#partsToRegExp(dot);\n if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n // invalid extglob, has to at least be *something* present, if it's\n // the entire path portion.\n const s = this.toString();\n const me = this;\n me.#parts = [s];\n me.type = null;\n me.#hasMagic = undefined;\n return [s, (0, unescape_js_1.unescape)(this.toString()), false, false];\n }\n let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ?\n ''\n : this.#partsToRegExp(true);\n if (bodyDotAllowed === body) {\n bodyDotAllowed = '';\n }\n if (bodyDotAllowed) {\n body = `(?:${body})(?:${bodyDotAllowed})*?`;\n }\n // an empty !() is exactly equivalent to a starNoEmpty\n let final = '';\n if (this.type === '!' && this.#emptyExt) {\n final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty;\n }\n else {\n const close = this.type === '!' ?\n // !() must match something,but !(x) can match ''\n '))' +\n (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n star +\n ')'\n : this.type === '@' ? ')'\n : this.type === '?' ? ')?'\n : this.type === '+' && bodyDotAllowed ? ')'\n : this.type === '*' && bodyDotAllowed ? `)?`\n : `)${this.type}`;\n final = start + body + close;\n }\n return [\n final,\n (0, unescape_js_1.unescape)(body),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ];\n }\n #flatten() {\n if (!isExtglobAST(this)) {\n for (const p of this.#parts) {\n if (typeof p === 'object') {\n p.#flatten();\n }\n }\n }\n else {\n // do up to 10 passes to flatten as much as possible\n let iterations = 0;\n let done = false;\n do {\n done = true;\n for (let i = 0; i < this.#parts.length; i++) {\n const c = this.#parts[i];\n if (typeof c === 'object') {\n c.#flatten();\n if (this.#canAdopt(c)) {\n done = false;\n this.#adopt(c, i);\n }\n else if (this.#canAdoptWithSpace(c)) {\n done = false;\n this.#adoptWithSpace(c, i);\n }\n else if (this.#canUsurp(c)) {\n done = false;\n this.#usurp(c);\n }\n }\n }\n } while (!done && ++iterations < 10);\n }\n this.#toString = undefined;\n }\n #partsToRegExp(dot) {\n return this.#parts\n .map(p => {\n // extglob ASTs should only contain parent ASTs\n /* c8 ignore start */\n if (typeof p === 'string') {\n throw new Error('string type in extglob ast??');\n }\n /* c8 ignore stop */\n // can ignore hasMagic, because extglobs are already always magic\n const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot);\n this.#uflag = this.#uflag || uflag;\n return re;\n })\n .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n .join('|');\n }\n static #parseGlob(glob, hasMagic, noEmpty = false) {\n let escaping = false;\n let re = '';\n let uflag = false;\n // multiple stars that aren't globstars coalesce into one *\n let inStar = false;\n for (let i = 0; i < glob.length; i++) {\n const c = glob.charAt(i);\n if (escaping) {\n escaping = false;\n re += (reSpecials.has(c) ? '\\\\' : '') + c;\n continue;\n }\n if (c === '*') {\n if (inStar)\n continue;\n inStar = true;\n re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star;\n hasMagic = true;\n continue;\n }\n else {\n inStar = false;\n }\n if (c === '\\\\') {\n if (i === glob.length - 1) {\n re += '\\\\\\\\';\n }\n else {\n escaping = true;\n }\n continue;\n }\n if (c === '[') {\n const [src, needUflag, consumed, magic] = (0, brace_expressions_js_1.parseClass)(glob, i);\n if (consumed) {\n re += src;\n uflag = uflag || needUflag;\n i += consumed - 1;\n hasMagic = hasMagic || magic;\n continue;\n }\n }\n if (c === '?') {\n re += qmark;\n hasMagic = true;\n continue;\n }\n re += regExpEscape(c);\n }\n return [re, (0, unescape_js_1.unescape)(glob), !!hasMagic, uflag];\n }\n}\nexports.AST = AST;\n_a = AST;\n//# sourceMappingURL=ast.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escape = void 0;\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link MinimatchOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character. In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n *\n * If the {@link MinimatchOptions.magicalBraces} option is used,\n * then braces (`{` and `}`) will be escaped.\n */\nconst escape = (s, { windowsPathsNoEscape = false, magicalBraces = false, } = {}) => {\n // don't need to escape +@! because we escape the parens\n // that make those magic, and escaping ! as [!] isn't valid,\n // because [!]] is a valid glob class meaning not ']'.\n if (magicalBraces) {\n return windowsPathsNoEscape ?\n s.replace(/[?*()[\\]{}]/g, '[$&]')\n : s.replace(/[?*()[\\]\\\\{}]/g, '\\\\$&');\n }\n return windowsPathsNoEscape ?\n s.replace(/[?*()[\\]]/g, '[$&]')\n : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&');\n};\nexports.escape = escape;\n//# sourceMappingURL=escape.js.map", - "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unescape = exports.escape = exports.AST = exports.Minimatch = exports.match = exports.makeRe = exports.braceExpand = exports.defaults = exports.filter = exports.GLOBSTAR = exports.sep = exports.minimatch = void 0;\nconst brace_expansion_1 = require(\"brace-expansion\");\nconst assert_valid_pattern_js_1 = require(\"./assert-valid-pattern.js\");\nconst ast_js_1 = require(\"./ast.js\");\nconst escape_js_1 = require(\"./escape.js\");\nconst unescape_js_1 = require(\"./unescape.js\");\nconst minimatch = (p, pattern, options = {}) => {\n (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false;\n }\n return new Minimatch(pattern, options).match(p);\n};\nexports.minimatch = minimatch;\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/;\nconst starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext);\nconst starDotExtTestDot = (ext) => (f) => f.endsWith(ext);\nconst starDotExtTestNocase = (ext) => {\n ext = ext.toLowerCase();\n return (f) => !f.startsWith('.') && f.toLowerCase().endsWith(ext);\n};\nconst starDotExtTestNocaseDot = (ext) => {\n ext = ext.toLowerCase();\n return (f) => f.toLowerCase().endsWith(ext);\n};\nconst starDotStarRE = /^\\*+\\.\\*+$/;\nconst starDotStarTest = (f) => !f.startsWith('.') && f.includes('.');\nconst starDotStarTestDot = (f) => f !== '.' && f !== '..' && f.includes('.');\nconst dotStarRE = /^\\.\\*+$/;\nconst dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.');\nconst starRE = /^\\*+$/;\nconst starTest = (f) => f.length !== 0 && !f.startsWith('.');\nconst starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..';\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/;\nconst qmarksTestNocase = ([$0, ext = '']) => {\n const noext = qmarksTestNoExt([$0]);\n if (!ext)\n return noext;\n ext = ext.toLowerCase();\n return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestNocaseDot = ([$0, ext = '']) => {\n const noext = qmarksTestNoExtDot([$0]);\n if (!ext)\n return noext;\n ext = ext.toLowerCase();\n return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestDot = ([$0, ext = '']) => {\n const noext = qmarksTestNoExtDot([$0]);\n return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTest = ([$0, ext = '']) => {\n const noext = qmarksTestNoExt([$0]);\n return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTestNoExt = ([$0]) => {\n const len = $0.length;\n return (f) => f.length === len && !f.startsWith('.');\n};\nconst qmarksTestNoExtDot = ([$0]) => {\n const len = $0.length;\n return (f) => f.length === len && f !== '.' && f !== '..';\n};\n/* c8 ignore start */\nconst defaultPlatform = (typeof process === 'object' && process ?\n (typeof process.env === 'object' &&\n process.env &&\n process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n process.platform\n : 'posix');\nconst path = {\n win32: { sep: '\\\\' },\n posix: { sep: '/' },\n};\n/* c8 ignore stop */\nexports.sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep;\nexports.minimatch.sep = exports.sep;\nexports.GLOBSTAR = Symbol('globstar **');\nexports.minimatch.GLOBSTAR = exports.GLOBSTAR;\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?';\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?';\nconst filter = (pattern, options = {}) => (p) => (0, exports.minimatch)(p, pattern, options);\nexports.filter = filter;\nexports.minimatch.filter = exports.filter;\nconst ext = (a, b = {}) => Object.assign({}, a, b);\nconst defaults = (def) => {\n if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n return exports.minimatch;\n }\n const orig = exports.minimatch;\n const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options));\n return Object.assign(m, {\n Minimatch: class Minimatch extends orig.Minimatch {\n constructor(pattern, options = {}) {\n super(pattern, ext(def, options));\n }\n static defaults(options) {\n return orig.defaults(ext(def, options)).Minimatch;\n }\n },\n AST: class AST extends orig.AST {\n /* c8 ignore start */\n constructor(type, parent, options = {}) {\n super(type, parent, ext(def, options));\n }\n /* c8 ignore stop */\n static fromGlob(pattern, options = {}) {\n return orig.AST.fromGlob(pattern, ext(def, options));\n }\n },\n unescape: (s, options = {}) => orig.unescape(s, ext(def, options)),\n escape: (s, options = {}) => orig.escape(s, ext(def, options)),\n filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)),\n defaults: (options) => orig.defaults(ext(def, options)),\n makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)),\n braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)),\n match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)),\n sep: orig.sep,\n GLOBSTAR: exports.GLOBSTAR,\n });\n};\nexports.defaults = defaults;\nexports.minimatch.defaults = exports.defaults;\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nconst braceExpand = (pattern, options = {}) => {\n (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n // Thanks to Yeting Li for\n // improving this regexp to avoid a ReDOS vulnerability.\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n // shortcut. no need to expand.\n return [pattern];\n }\n return (0, brace_expansion_1.expand)(pattern, { max: options.braceExpandMax });\n};\nexports.braceExpand = braceExpand;\nexports.minimatch.braceExpand = exports.braceExpand;\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nconst makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();\nexports.makeRe = makeRe;\nexports.minimatch.makeRe = exports.makeRe;\nconst match = (list, pattern, options = {}) => {\n const mm = new Minimatch(pattern, options);\n list = list.filter(f => mm.match(f));\n if (mm.options.nonull && !list.length) {\n list.push(pattern);\n }\n return list;\n};\nexports.match = match;\nexports.minimatch.match = exports.match;\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/;\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\nclass Minimatch {\n options;\n set;\n pattern;\n windowsPathsNoEscape;\n nonegate;\n negate;\n comment;\n empty;\n preserveMultipleSlashes;\n partial;\n globSet;\n globParts;\n nocase;\n isWindows;\n platform;\n windowsNoMagicRoot;\n maxGlobstarRecursion;\n regexp;\n constructor(pattern, options = {}) {\n (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n options = options || {};\n this.options = options;\n this.maxGlobstarRecursion = options.maxGlobstarRecursion ?? 200;\n this.pattern = pattern;\n this.platform = options.platform || defaultPlatform;\n this.isWindows = this.platform === 'win32';\n // avoid the annoying deprecation flag lol\n const awe = ('allowWindow' + 'sEscape');\n this.windowsPathsNoEscape =\n !!options.windowsPathsNoEscape || options[awe] === false;\n if (this.windowsPathsNoEscape) {\n this.pattern = this.pattern.replace(/\\\\/g, '/');\n }\n this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;\n this.regexp = null;\n this.negate = false;\n this.nonegate = !!options.nonegate;\n this.comment = false;\n this.empty = false;\n this.partial = !!options.partial;\n this.nocase = !!this.options.nocase;\n this.windowsNoMagicRoot =\n options.windowsNoMagicRoot !== undefined ?\n options.windowsNoMagicRoot\n : !!(this.isWindows && this.nocase);\n this.globSet = [];\n this.globParts = [];\n this.set = [];\n // make the set of regexps etc.\n this.make();\n }\n hasMagic() {\n if (this.options.magicalBraces && this.set.length > 1) {\n return true;\n }\n for (const pattern of this.set) {\n for (const part of pattern) {\n if (typeof part !== 'string')\n return true;\n }\n }\n return false;\n }\n debug(..._) { }\n make() {\n const pattern = this.pattern;\n const options = this.options;\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true;\n return;\n }\n if (!pattern) {\n this.empty = true;\n return;\n }\n // step 1: figure out negation, etc.\n this.parseNegate();\n // step 2: expand braces\n this.globSet = [...new Set(this.braceExpand())];\n if (options.debug) {\n this.debug = (...args) => console.error(...args);\n }\n this.debug(this.pattern, this.globSet);\n // step 3: now we have a set, so turn each one into a series of\n // path-portion matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n //\n // First, we preprocess to make the glob pattern sets a bit simpler\n // and deduped. There are some perf-killing patterns that can cause\n // problems with a glob walk, but we can simplify them down a bit.\n const rawGlobParts = this.globSet.map(s => this.slashSplit(s));\n this.globParts = this.preprocess(rawGlobParts);\n this.debug(this.pattern, this.globParts);\n // glob --> regexps\n let set = this.globParts.map((s, _, __) => {\n if (this.isWindows && this.windowsNoMagicRoot) {\n // check if it's a drive or unc path.\n const isUNC = s[0] === '' &&\n s[1] === '' &&\n (s[2] === '?' || !globMagic.test(s[2])) &&\n !globMagic.test(s[3]);\n const isDrive = /^[a-z]:/i.test(s[0]);\n if (isUNC) {\n return [\n ...s.slice(0, 4),\n ...s.slice(4).map(ss => this.parse(ss)),\n ];\n }\n else if (isDrive) {\n return [s[0], ...s.slice(1).map(ss => this.parse(ss))];\n }\n }\n return s.map(ss => this.parse(ss));\n });\n this.debug(this.pattern, set);\n // filter out everything that didn't compile properly.\n this.set = set.filter(s => s.indexOf(false) === -1);\n // do not treat the ? in UNC paths as magic\n if (this.isWindows) {\n for (let i = 0; i < this.set.length; i++) {\n const p = this.set[i];\n if (p[0] === '' &&\n p[1] === '' &&\n this.globParts[i][2] === '?' &&\n typeof p[3] === 'string' &&\n /^[a-z]:$/i.test(p[3])) {\n p[2] = '?';\n }\n }\n }\n this.debug(this.pattern, this.set);\n }\n // various transforms to equivalent pattern sets that are\n // faster to process in a filesystem walk. The goal is to\n // eliminate what we can, and push all ** patterns as far\n // to the right as possible, even if it increases the number\n // of patterns that we have to process.\n preprocess(globParts) {\n // if we're not in globstar mode, then turn ** into *\n if (this.options.noglobstar) {\n for (let i = 0; i < globParts.length; i++) {\n for (let j = 0; j < globParts[i].length; j++) {\n if (globParts[i][j] === '**') {\n globParts[i][j] = '*';\n }\n }\n }\n }\n const { optimizationLevel = 1 } = this.options;\n if (optimizationLevel >= 2) {\n // aggressive optimization for the purpose of fs walking\n globParts = this.firstPhasePreProcess(globParts);\n globParts = this.secondPhasePreProcess(globParts);\n }\n else if (optimizationLevel >= 1) {\n // just basic optimizations to remove some .. parts\n globParts = this.levelOneOptimize(globParts);\n }\n else {\n // just collapse multiple ** portions into one\n globParts = this.adjascentGlobstarOptimize(globParts);\n }\n return globParts;\n }\n // just get rid of adjascent ** portions\n adjascentGlobstarOptimize(globParts) {\n return globParts.map(parts => {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let i = gs;\n while (parts[i + 1] === '**') {\n i++;\n }\n if (i !== gs) {\n parts.splice(gs, i - gs);\n }\n }\n return parts;\n });\n }\n // get rid of adjascent ** and resolve .. portions\n levelOneOptimize(globParts) {\n return globParts.map(parts => {\n parts = parts.reduce((set, part) => {\n const prev = set[set.length - 1];\n if (part === '**' && prev === '**') {\n return set;\n }\n if (part === '..') {\n if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n set.pop();\n return set;\n }\n }\n set.push(part);\n return set;\n }, []);\n return parts.length === 0 ? [''] : parts;\n });\n }\n levelTwoFileOptimize(parts) {\n if (!Array.isArray(parts)) {\n parts = this.slashSplit(parts);\n }\n let didSomething = false;\n do {\n didSomething = false;\n //

// -> 
/\n            if (!this.preserveMultipleSlashes) {\n                for (let i = 1; i < parts.length - 1; i++) {\n                    const p = parts[i];\n                    // don't squeeze out UNC patterns\n                    if (i === 1 && p === '' && parts[0] === '')\n                        continue;\n                    if (p === '.' || p === '') {\n                        didSomething = true;\n                        parts.splice(i, 1);\n                        i--;\n                    }\n                }\n                if (parts[0] === '.' &&\n                    parts.length === 2 &&\n                    (parts[1] === '.' || parts[1] === '')) {\n                    didSomething = true;\n                    parts.pop();\n                }\n            }\n            // 
/

/../ ->

/\n            let dd = 0;\n            while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                const p = parts[dd - 1];\n                if (p && p !== '.' && p !== '..' && p !== '**') {\n                    didSomething = true;\n                    parts.splice(dd - 1, 2);\n                    dd -= 2;\n                }\n            }\n        } while (didSomething);\n        return parts.length === 0 ? [''] : parts;\n    }\n    // First phase: single-pattern processing\n    // 
 is 1 or more portions\n    //  is 1 or more portions\n    // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n    // 
/

/../ ->

/\n    // **/**/ -> **/\n    //\n    // **/*/ -> */**/ <== not valid because ** doesn't follow\n    // this WOULD be allowed if ** did follow symlinks, or * didn't\n    firstPhasePreProcess(globParts) {\n        let didSomething = false;\n        do {\n            didSomething = false;\n            // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss = gs;\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n                        gss++;\n                    }\n                    // eg, if gs is 2 and gss is 4, that means we have 3 **\n                    // parts, and can remove 2 of them.\n                    if (gss > gs) {\n                        parts.splice(gs + 1, gss - gs);\n                    }\n                    let next = parts[gs + 1];\n                    const p = parts[gs + 2];\n                    const p2 = parts[gs + 3];\n                    if (next !== '..')\n                        continue;\n                    if (!p ||\n                        p === '.' ||\n                        p === '..' ||\n                        !p2 ||\n                        p2 === '.' ||\n                        p2 === '..') {\n                        continue;\n                    }\n                    didSomething = true;\n                    // edit parts in place, and push the new one\n                    parts.splice(gs, 1);\n                    const other = parts.slice(0);\n                    other[gs] = '**';\n                    globParts.push(other);\n                    gs--;\n                }\n                // 
// -> 
/\n                if (!this.preserveMultipleSlashes) {\n                    for (let i = 1; i < parts.length - 1; i++) {\n                        const p = parts[i];\n                        // don't squeeze out UNC patterns\n                        if (i === 1 && p === '' && parts[0] === '')\n                            continue;\n                        if (p === '.' || p === '') {\n                            didSomething = true;\n                            parts.splice(i, 1);\n                            i--;\n                        }\n                    }\n                    if (parts[0] === '.' &&\n                        parts.length === 2 &&\n                        (parts[1] === '.' || parts[1] === '')) {\n                        didSomething = true;\n                        parts.pop();\n                    }\n                }\n                // 
/

/../ ->

/\n                let dd = 0;\n                while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                    const p = parts[dd - 1];\n                    if (p && p !== '.' && p !== '..' && p !== '**') {\n                        didSomething = true;\n                        const needDot = dd === 1 && parts[dd + 1] === '**';\n                        const splin = needDot ? ['.'] : [];\n                        parts.splice(dd - 1, 2, ...splin);\n                        if (parts.length === 0)\n                            parts.push('');\n                        dd -= 2;\n                    }\n                }\n            }\n        } while (didSomething);\n        return globParts;\n    }\n    // second phase: multi-pattern dedupes\n    // {
/*/,
/

/} ->

/*/\n    // {
/,
/} -> 
/\n    // {
/**/,
/} -> 
/**/\n    //\n    // {
/**/,
/**/

/} ->

/**/\n    // ^-- not valid because ** doens't follow symlinks\n    secondPhasePreProcess(globParts) {\n        for (let i = 0; i < globParts.length - 1; i++) {\n            for (let j = i + 1; j < globParts.length; j++) {\n                const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);\n                if (matched) {\n                    globParts[i] = [];\n                    globParts[j] = matched;\n                    break;\n                }\n            }\n        }\n        return globParts.filter(gs => gs.length);\n    }\n    partsMatch(a, b, emptyGSMatch = false) {\n        let ai = 0;\n        let bi = 0;\n        let result = [];\n        let which = '';\n        while (ai < a.length && bi < b.length) {\n            if (a[ai] === b[bi]) {\n                result.push(which === 'b' ? b[bi] : a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n                result.push(a[ai]);\n                ai++;\n            }\n            else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n                result.push(b[bi]);\n                bi++;\n            }\n            else if (a[ai] === '*' &&\n                b[bi] &&\n                (this.options.dot || !b[bi].startsWith('.')) &&\n                b[bi] !== '**') {\n                if (which === 'b')\n                    return false;\n                which = 'a';\n                result.push(a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (b[bi] === '*' &&\n                a[ai] &&\n                (this.options.dot || !a[ai].startsWith('.')) &&\n                a[ai] !== '**') {\n                if (which === 'a')\n                    return false;\n                which = 'b';\n                result.push(b[bi]);\n                ai++;\n                bi++;\n            }\n            else {\n                return false;\n            }\n        }\n        // if we fall out of the loop, it means they two are identical\n        // as long as their lengths match\n        return a.length === b.length && result;\n    }\n    parseNegate() {\n        if (this.nonegate)\n            return;\n        const pattern = this.pattern;\n        let negate = false;\n        let negateOffset = 0;\n        for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n            negate = !negate;\n            negateOffset++;\n        }\n        if (negateOffset)\n            this.pattern = pattern.slice(negateOffset);\n        this.negate = negate;\n    }\n    // set partial to true to test if, for example,\n    // \"/a/b\" matches the start of \"/*/b/*/d\"\n    // Partial means, if you run out of file before you run\n    // out of pattern, then that's fine, as long as all\n    // the parts match.\n    matchOne(file, pattern, partial = false) {\n        let fileStartIndex = 0;\n        let patternStartIndex = 0;\n        // UNC paths like //?/X:/... can match X:/... and vice versa\n        // Drive letters in absolute drive or unc paths are always compared\n        // case-insensitively.\n        if (this.isWindows) {\n            const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0]);\n            const fileUNC = !fileDrive &&\n                file[0] === '' &&\n                file[1] === '' &&\n                file[2] === '?' &&\n                /^[a-z]:$/i.test(file[3]);\n            const patternDrive = typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0]);\n            const patternUNC = !patternDrive &&\n                pattern[0] === '' &&\n                pattern[1] === '' &&\n                pattern[2] === '?' &&\n                typeof pattern[3] === 'string' &&\n                /^[a-z]:$/i.test(pattern[3]);\n            const fdi = fileUNC ? 3\n                : fileDrive ? 0\n                    : undefined;\n            const pdi = patternUNC ? 3\n                : patternDrive ? 0\n                    : undefined;\n            if (typeof fdi === 'number' && typeof pdi === 'number') {\n                const [fd, pd] = [\n                    file[fdi],\n                    pattern[pdi],\n                ];\n                // start matching at the drive letter index of each\n                if (fd.toLowerCase() === pd.toLowerCase()) {\n                    pattern[pdi] = fd;\n                    patternStartIndex = pdi;\n                    fileStartIndex = fdi;\n                }\n            }\n        }\n        // resolve and reduce . and .. portions in the file as well.\n        // don't need to do the second phase, because it's only one string[]\n        const { optimizationLevel = 1 } = this.options;\n        if (optimizationLevel >= 2) {\n            file = this.levelTwoFileOptimize(file);\n        }\n        if (pattern.includes(exports.GLOBSTAR)) {\n            return this.#matchGlobstar(file, pattern, partial, fileStartIndex, patternStartIndex);\n        }\n        return this.#matchOne(file, pattern, partial, fileStartIndex, patternStartIndex);\n    }\n    #matchGlobstar(file, pattern, partial, fileIndex, patternIndex) {\n        // split the pattern into head, tail, and middle of ** delimited parts\n        const firstgs = pattern.indexOf(exports.GLOBSTAR, patternIndex);\n        const lastgs = pattern.lastIndexOf(exports.GLOBSTAR);\n        // split the pattern up into globstar-delimited sections\n        // the tail has to be at the end, and the others just have\n        // to be found in order from the head.\n        const [head, body, tail] = partial ? [\n            pattern.slice(patternIndex, firstgs),\n            pattern.slice(firstgs + 1),\n            [],\n        ] : [\n            pattern.slice(patternIndex, firstgs),\n            pattern.slice(firstgs + 1, lastgs),\n            pattern.slice(lastgs + 1),\n        ];\n        // check the head, from the current file/pattern index.\n        if (head.length) {\n            const fileHead = file.slice(fileIndex, fileIndex + head.length);\n            if (!this.#matchOne(fileHead, head, partial, 0, 0)) {\n                return false;\n            }\n            fileIndex += head.length;\n            patternIndex += head.length;\n        }\n        // now we know the head matches!\n        // if the last portion is not empty, it MUST match the end\n        // check the tail\n        let fileTailMatch = 0;\n        if (tail.length) {\n            // if head + tail > file, then we cannot possibly match\n            if (tail.length + fileIndex > file.length)\n                return false;\n            // try to match the tail\n            let tailStart = file.length - tail.length;\n            if (this.#matchOne(file, tail, partial, tailStart, 0)) {\n                fileTailMatch = tail.length;\n            }\n            else {\n                // affordance for stuff like a/**/* matching a/b/\n                // if the last file portion is '', and there's more to the pattern\n                // then try without the '' bit.\n                if (file[file.length - 1] !== '' ||\n                    fileIndex + tail.length === file.length) {\n                    return false;\n                }\n                tailStart--;\n                if (!this.#matchOne(file, tail, partial, tailStart, 0)) {\n                    return false;\n                }\n                fileTailMatch = tail.length + 1;\n            }\n        }\n        // now we know the tail matches!\n        // the middle is zero or more portions wrapped in **, possibly\n        // containing more ** sections.\n        // so a/**/b/**/c/**/d has become **/b/**/c/**\n        // if it's empty, it means a/**/b, just verify we have no bad dots\n        // if there's no tail, so it ends on /**, then we must have *something*\n        // after the head, or it's not a matc\n        if (!body.length) {\n            let sawSome = !!fileTailMatch;\n            for (let i = fileIndex; i < file.length - fileTailMatch; i++) {\n                const f = String(file[i]);\n                sawSome = true;\n                if (f === '.' ||\n                    f === '..' ||\n                    (!this.options.dot && f.startsWith('.'))) {\n                    return false;\n                }\n            }\n            // in partial mode, we just need to get past all file parts\n            return partial || sawSome;\n        }\n        // now we know that there's one or more body sections, which can\n        // be matched anywhere from the 0 index (because the head was pruned)\n        // through to the length-fileTailMatch index.\n        // split the body up into sections, and note the minimum index it can\n        // be found at (start with the length of all previous segments)\n        // [section, before, after]\n        const bodySegments = [[[], 0]];\n        let currentBody = bodySegments[0];\n        let nonGsParts = 0;\n        const nonGsPartsSums = [0];\n        for (const b of body) {\n            if (b === exports.GLOBSTAR) {\n                nonGsPartsSums.push(nonGsParts);\n                currentBody = [[], 0];\n                bodySegments.push(currentBody);\n            }\n            else {\n                currentBody[0].push(b);\n                nonGsParts++;\n            }\n        }\n        let i = bodySegments.length - 1;\n        const fileLength = file.length - fileTailMatch;\n        for (const b of bodySegments) {\n            b[1] = fileLength - (nonGsPartsSums[i--] + b[0].length);\n        }\n        return !!this.#matchGlobStarBodySections(file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);\n    }\n    // return false for \"nope, not matching\"\n    // return null for \"not matching, cannot keep trying\"\n    #matchGlobStarBodySections(file, \n    // pattern section, last possible position for it\n    bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {\n        // take the first body segment, and walk from fileIndex to its \"after\"\n        // value at the end\n        // If it doesn't match at that position, we increment, until we hit\n        // that final possible position, and give up.\n        // If it does match, then advance and try to rest.\n        // If any of them fail we keep walking forward.\n        // this is still a bit recursively painful, but it's more constrained\n        // than previous implementations, because we never test something that\n        // can't possibly be a valid matching condition.\n        const bs = bodySegments[bodyIndex];\n        if (!bs) {\n            // just make sure that there's no bad dots\n            for (let i = fileIndex; i < file.length; i++) {\n                sawTail = true;\n                const f = file[i];\n                if (f === '.' ||\n                    f === '..' ||\n                    (!this.options.dot && f.startsWith('.'))) {\n                    return false;\n                }\n            }\n            return sawTail;\n        }\n        // have a non-globstar body section to test\n        const [body, after] = bs;\n        while (fileIndex <= after) {\n            const m = this.#matchOne(file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);\n            // if limit exceeded, no match. intentional false negative,\n            // acceptable break in correctness for security.\n            if (m && globStarDepth < this.maxGlobstarRecursion) {\n                // match! see if the rest match. if so, we're done!\n                const sub = this.#matchGlobStarBodySections(file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);\n                if (sub !== false) {\n                    return sub;\n                }\n            }\n            const f = file[fileIndex];\n            if (f === '.' ||\n                f === '..' ||\n                (!this.options.dot && f.startsWith('.'))) {\n                return false;\n            }\n            fileIndex++;\n        }\n        // walked off. no point continuing\n        return partial || null;\n    }\n    #matchOne(file, pattern, partial, fileIndex, patternIndex) {\n        let fi;\n        let pi;\n        let pl;\n        let fl;\n        for (fi = fileIndex,\n            pi = patternIndex,\n            fl = file.length,\n            pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {\n            this.debug('matchOne loop');\n            let p = pattern[pi];\n            let f = file[fi];\n            this.debug(pattern, p, f);\n            // should be impossible.\n            // some invalid regexp stuff in the set.\n            /* c8 ignore start */\n            if (p === false || p === exports.GLOBSTAR) {\n                return false;\n            }\n            /* c8 ignore stop */\n            // something other than **\n            // non-magic patterns just have to match exactly\n            // patterns with magic have been turned into regexps.\n            let hit;\n            if (typeof p === 'string') {\n                hit = f === p;\n                this.debug('string match', p, f, hit);\n            }\n            else {\n                hit = p.test(f);\n                this.debug('pattern match', p, f, hit);\n            }\n            if (!hit)\n                return false;\n        }\n        // Note: ending in / means that we'll get a final \"\"\n        // at the end of the pattern.  This can only match a\n        // corresponding \"\" at the end of the file.\n        // If the file ends in /, then it can only match a\n        // a pattern that ends in /, unless the pattern just\n        // doesn't have any more for it. But, a/b/ should *not*\n        // match \"a/b/*\", even though \"\" matches against the\n        // [^/]*? pattern, except in partial mode, where it might\n        // simply not be reached yet.\n        // However, a/b/ should still satisfy a/*\n        // now either we fell off the end of the pattern, or we're done.\n        if (fi === fl && pi === pl) {\n            // ran out of pattern and filename at the same time.\n            // an exact hit!\n            return true;\n        }\n        else if (fi === fl) {\n            // ran out of file, but still had pattern left.\n            // this is ok if we're doing the match as part of\n            // a glob fs traversal.\n            return partial;\n        }\n        else if (pi === pl) {\n            // ran out of pattern, still have file left.\n            // this is only acceptable if we're on the very last\n            // empty segment of a file with a trailing slash.\n            // a/* should match a/b/\n            return fi === fl - 1 && file[fi] === '';\n            /* c8 ignore start */\n        }\n        else {\n            // should be unreachable.\n            throw new Error('wtf?');\n        }\n        /* c8 ignore stop */\n    }\n    braceExpand() {\n        return (0, exports.braceExpand)(this.pattern, this.options);\n    }\n    parse(pattern) {\n        (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n        const options = this.options;\n        // shortcuts\n        if (pattern === '**')\n            return exports.GLOBSTAR;\n        if (pattern === '')\n            return '';\n        // far and away, the most common glob pattern parts are\n        // *, *.*, and *.  Add a fast check method for those.\n        let m;\n        let fastTest = null;\n        if ((m = pattern.match(starRE))) {\n            fastTest = options.dot ? starTestDot : starTest;\n        }\n        else if ((m = pattern.match(starDotExtRE))) {\n            fastTest = (options.nocase ?\n                options.dot ?\n                    starDotExtTestNocaseDot\n                    : starDotExtTestNocase\n                : options.dot ? starDotExtTestDot\n                    : starDotExtTest)(m[1]);\n        }\n        else if ((m = pattern.match(qmarksRE))) {\n            fastTest = (options.nocase ?\n                options.dot ?\n                    qmarksTestNocaseDot\n                    : qmarksTestNocase\n                : options.dot ? qmarksTestDot\n                    : qmarksTest)(m);\n        }\n        else if ((m = pattern.match(starDotStarRE))) {\n            fastTest = options.dot ? starDotStarTestDot : starDotStarTest;\n        }\n        else if ((m = pattern.match(dotStarRE))) {\n            fastTest = dotStarTest;\n        }\n        const re = ast_js_1.AST.fromGlob(pattern, this.options).toMMPattern();\n        if (fastTest && typeof re === 'object') {\n            // Avoids overriding in frozen environments\n            Reflect.defineProperty(re, 'test', { value: fastTest });\n        }\n        return re;\n    }\n    makeRe() {\n        if (this.regexp || this.regexp === false)\n            return this.regexp;\n        // at this point, this.set is a 2d array of partial\n        // pattern strings, or \"**\".\n        //\n        // It's better to use .match().  This function shouldn't\n        // be used, really, but it's pretty convenient sometimes,\n        // when you just want to work with a regex.\n        const set = this.set;\n        if (!set.length) {\n            this.regexp = false;\n            return this.regexp;\n        }\n        const options = this.options;\n        const twoStar = options.noglobstar ? star\n            : options.dot ? twoStarDot\n                : twoStarNoDot;\n        const flags = new Set(options.nocase ? ['i'] : []);\n        // regexpify non-globstar patterns\n        // if ** is only item, then we just do one twoStar\n        // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n        // if ** is last, append (\\/twoStar|) to previous\n        // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n        // then filter out GLOBSTAR symbols\n        let re = set\n            .map(pattern => {\n            const pp = pattern.map(p => {\n                if (p instanceof RegExp) {\n                    for (const f of p.flags.split(''))\n                        flags.add(f);\n                }\n                return (typeof p === 'string' ? regExpEscape(p)\n                    : p === exports.GLOBSTAR ? exports.GLOBSTAR\n                        : p._src);\n            });\n            pp.forEach((p, i) => {\n                const next = pp[i + 1];\n                const prev = pp[i - 1];\n                if (p !== exports.GLOBSTAR || prev === exports.GLOBSTAR) {\n                    return;\n                }\n                if (prev === undefined) {\n                    if (next !== undefined && next !== exports.GLOBSTAR) {\n                        pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next;\n                    }\n                    else {\n                        pp[i] = twoStar;\n                    }\n                }\n                else if (next === undefined) {\n                    pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + ')?';\n                }\n                else if (next !== exports.GLOBSTAR) {\n                    pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next;\n                    pp[i + 1] = exports.GLOBSTAR;\n                }\n            });\n            const filtered = pp.filter(p => p !== exports.GLOBSTAR);\n            // For partial matches, we need to make the pattern match\n            // any prefix of the full path. We do this by generating\n            // alternative patterns that match progressively longer prefixes.\n            if (this.partial && filtered.length >= 1) {\n                const prefixes = [];\n                for (let i = 1; i <= filtered.length; i++) {\n                    prefixes.push(filtered.slice(0, i).join('/'));\n                }\n                return '(?:' + prefixes.join('|') + ')';\n            }\n            return filtered.join('/');\n        })\n            .join('|');\n        // need to wrap in parens if we had more than one thing with |,\n        // otherwise only the first will be anchored to ^ and the last to $\n        const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', ''];\n        // must match entire pattern\n        // ending in a * or ** will make it less strict.\n        re = '^' + open + re + close + '$';\n        // In partial mode, '/' should always match as it's a valid prefix for any pattern\n        if (this.partial) {\n            re = '^(?:\\\\/|' + open + re.slice(1, -1) + close + ')$';\n        }\n        // can match anything, as long as it's not this.\n        if (this.negate)\n            re = '^(?!' + re + ').+$';\n        try {\n            this.regexp = new RegExp(re, [...flags].join(''));\n            /* c8 ignore start */\n        }\n        catch (ex) {\n            // should be impossible\n            this.regexp = false;\n        }\n        /* c8 ignore stop */\n        return this.regexp;\n    }\n    slashSplit(p) {\n        // if p starts with // on windows, we preserve that\n        // so that UNC paths aren't broken.  Otherwise, any number of\n        // / characters are coalesced into one, unless\n        // preserveMultipleSlashes is set to true.\n        if (this.preserveMultipleSlashes) {\n            return p.split('/');\n        }\n        else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n            // add an extra '' for the one we lose\n            return ['', ...p.split(/\\/+/)];\n        }\n        else {\n            return p.split(/\\/+/);\n        }\n    }\n    match(f, partial = this.partial) {\n        this.debug('match', f, this.pattern);\n        // short-circuit in the case of busted things.\n        // comments, etc.\n        if (this.comment) {\n            return false;\n        }\n        if (this.empty) {\n            return f === '';\n        }\n        if (f === '/' && partial) {\n            return true;\n        }\n        const options = this.options;\n        // windows: need to use /, not \\\n        if (this.isWindows) {\n            f = f.split('\\\\').join('/');\n        }\n        // treat the test path as a set of pathparts.\n        const ff = this.slashSplit(f);\n        this.debug(this.pattern, 'split', ff);\n        // just ONE of the pattern sets in this.set needs to match\n        // in order for it to be valid.  If negating, then just one\n        // match means that we have failed.\n        // Either way, return on the first hit.\n        const set = this.set;\n        this.debug(this.pattern, 'set', set);\n        // Find the basename of the path by looking for the last non-empty segment\n        let filename = ff[ff.length - 1];\n        if (!filename) {\n            for (let i = ff.length - 2; !filename && i >= 0; i--) {\n                filename = ff[i];\n            }\n        }\n        for (let i = 0; i < set.length; i++) {\n            const pattern = set[i];\n            let file = ff;\n            if (options.matchBase && pattern.length === 1) {\n                file = [filename];\n            }\n            const hit = this.matchOne(file, pattern, partial);\n            if (hit) {\n                if (options.flipNegate) {\n                    return true;\n                }\n                return !this.negate;\n            }\n        }\n        // didn't get any hits.  this is success if it's a negative\n        // pattern, failure otherwise.\n        if (options.flipNegate) {\n            return false;\n        }\n        return this.negate;\n    }\n    static defaults(def) {\n        return exports.minimatch.defaults(def).Minimatch;\n    }\n}\nexports.Minimatch = Minimatch;\n/* c8 ignore start */\nvar ast_js_2 = require(\"./ast.js\");\nObject.defineProperty(exports, \"AST\", { enumerable: true, get: function () { return ast_js_2.AST; } });\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nvar unescape_js_2 = require(\"./unescape.js\");\nObject.defineProperty(exports, \"unescape\", { enumerable: true, get: function () { return unescape_js_2.unescape; } });\n/* c8 ignore stop */\nexports.minimatch.AST = ast_js_1.AST;\nexports.minimatch.Minimatch = Minimatch;\nexports.minimatch.escape = escape_js_1.escape;\nexports.minimatch.unescape = unescape_js_1.unescape;\n//# sourceMappingURL=index.js.map",
-    "'use strict'\nconst dc = require('node:diagnostics_channel')\nconst { context, trace, SpanStatusCode, propagation, diag } = require('@opentelemetry/api')\nconst { getRPCMetadata, RPCType } = require('@opentelemetry/core')\nconst {\n  ATTR_HTTP_ROUTE,\n  ATTR_HTTP_RESPONSE_STATUS_CODE,\n  ATTR_HTTP_REQUEST_METHOD,\n  ATTR_URL_PATH\n} = require('@opentelemetry/semantic-conventions')\nconst { InstrumentationBase } = require('@opentelemetry/instrumentation')\n\nconst {\n  version: PACKAGE_VERSION,\n  name: PACKAGE_NAME\n} = require('./package.json')\n\n// Constants\nconst SUPPORTED_VERSIONS = '>=4.0.0 <6'\nconst FASTIFY_HOOKS = [\n  'onRequest',\n  'preParsing',\n  'preValidation',\n  'preHandler',\n  'preSerialization',\n  'onSend',\n  'onResponse',\n  'onError'\n]\nconst ATTRIBUTE_NAMES = {\n  HOOK_NAME: 'hook.name',\n  FASTIFY_TYPE: 'fastify.type',\n  HOOK_CALLBACK_NAME: 'hook.callback.name',\n  ROOT: 'fastify.root'\n}\nconst HOOK_TYPES = {\n  ROUTE: 'route-hook',\n  INSTANCE: 'hook',\n  HANDLER: 'request-handler'\n}\nconst ANONYMOUS_FUNCTION_NAME = 'anonymous'\n\n// Symbols\nconst kInstrumentation = Symbol('fastify otel instance')\nconst kRequestSpan = Symbol('fastify otel request spans')\nconst kRequestContext = Symbol('fastify otel request context')\nconst kAddHookOriginal = Symbol('fastify otel addhook original')\nconst kSetNotFoundOriginal = Symbol('fastify otel setnotfound original')\nconst kIgnorePaths = Symbol('fastify otel ignore path')\nconst kRecordExceptions = Symbol('fastify otel record exceptions')\n\nclass FastifyOtelInstrumentation extends InstrumentationBase {\n  logger = null\n  _requestHook = null\n  _lifecycleHook = null\n\n  constructor (config) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config)\n    this.logger = diag.createComponentLogger({ namespace: PACKAGE_NAME })\n    this[kIgnorePaths] = null\n    this[kRecordExceptions] = true\n\n    if (config?.recordExceptions != null) {\n      if (typeof config.recordExceptions !== 'boolean') {\n        throw new TypeError('recordExceptions must be a boolean')\n      }\n\n      this[kRecordExceptions] = config.recordExceptions\n    }\n    if (typeof config?.requestHook === 'function') {\n      this._requestHook = config.requestHook\n    }\n    if (typeof config?.lifecycleHook === 'function') {\n      this._lifecycleHook = config.lifecycleHook\n    }\n\n    if (config?.ignorePaths != null || process.env.OTEL_FASTIFY_IGNORE_PATHS != null) {\n      const ignorePaths = config?.ignorePaths ?? process.env.OTEL_FASTIFY_IGNORE_PATHS\n\n      if ((typeof ignorePaths !== 'string' || ignorePaths.length === 0) && typeof ignorePaths !== 'function') {\n        throw new TypeError(\n          'ignorePaths must be a string or a function'\n        )\n      }\n\n      let globMatcher = null\n\n      this[kIgnorePaths] = (routeOptions) => {\n        if (typeof ignorePaths === 'function') {\n          return ignorePaths(routeOptions)\n        } else {\n          // Using minimatch to match the path until path.matchesGlob is out of experimental\n          // path.matchesGlob uses minimatch internally\n          if (globMatcher == null) {\n            globMatcher = require('minimatch').minimatch\n          }\n\n          return globMatcher(routeOptions.url, ignorePaths)\n        }\n      }\n    }\n  }\n\n  enable () {\n    if (this._handleInitialization === undefined && this.getConfig().registerOnInitialization) {\n      this._handleInitialization = (message) => {\n        // Cannot use `fastify.register(plugin)` because it is lazily executed and\n        // thus requires user code to await fastify instance first.\n        this.plugin()(message.fastify, undefined, () => {})\n\n        // Add an empty plugin to keep `app.hasPlugin('@fastify/otel')` invariant\n        const emptyPlugin = (_, __, done) => {\n          done()\n        }\n        emptyPlugin[Symbol.for('skip-override')] = true\n        emptyPlugin[Symbol.for('fastify.display-name')] = '@fastify/otel'\n        message.fastify.register(emptyPlugin)\n      }\n      dc.subscribe('fastify.initialization', this._handleInitialization)\n    }\n    return super.enable()\n  }\n\n  disable () {\n    if (this._handleInitialization) {\n      dc.unsubscribe('fastify.initialization', this._handleInitialization)\n      this._handleInitialization = undefined\n    }\n    return super.disable()\n  }\n\n  // We do not do patching in this instrumentation\n  init () {\n    return []\n  }\n\n  plugin () {\n    const instrumentation = this\n\n    FastifyInstrumentationPlugin[Symbol.for('skip-override')] = true\n    FastifyInstrumentationPlugin[Symbol.for('fastify.display-name')] = '@fastify/otel'\n    FastifyInstrumentationPlugin[Symbol.for('plugin-meta')] = {\n      fastify: SUPPORTED_VERSIONS,\n      name: '@fastify/otel',\n    }\n\n    return FastifyInstrumentationPlugin\n\n    function FastifyInstrumentationPlugin (instance, opts, done) {\n      instance.decorate(kInstrumentation, instrumentation)\n      // addHook and notfoundHandler are essentially inherited from the prototype\n      // what is important is to bound it to the right instance\n      instance.decorate(kAddHookOriginal, instance.addHook)\n      instance.decorate(kSetNotFoundOriginal, instance.setNotFoundHandler)\n      instance.decorateRequest('opentelemetry', function openetelemetry () {\n        const ctx = this[kRequestContext]\n        const span = this[kRequestSpan]\n\n        return {\n          enabled: this.routeOptions.config?.otel !== false,\n          span,\n          tracer: instrumentation.tracer,\n          context: ctx,\n          inject: (carrier, setter) => {\n            return propagation.inject(ctx, carrier, setter)\n          },\n          extract: (carrier, getter) => {\n            return propagation.extract(ctx, carrier, getter)\n          }\n        }\n      })\n      instance.decorateRequest(kRequestSpan, null)\n      instance.decorateRequest(kRequestContext, null)\n\n      instance.addHook('onRoute', function otelWireRoute (routeOptions) {\n        if (instrumentation[kIgnorePaths]?.(routeOptions) === true) {\n          instrumentation.logger.debug(\n            `Ignoring route instrumentation ${routeOptions.method} ${routeOptions.url} because it matches the ignore path`\n          )\n          return\n        }\n\n        if (routeOptions.config?.otel === false) {\n          instrumentation.logger.debug(\n            `Ignoring route instrumentation ${routeOptions.method} ${routeOptions.url} because it is disabled`\n          )\n\n          return\n        }\n\n        for (const hook of FASTIFY_HOOKS) {\n          if (routeOptions[hook] != null) {\n            const handlerLike = routeOptions[hook]\n\n            if (typeof handlerLike === 'function') {\n              routeOptions[hook] = handlerWrapper(handlerLike, hook, {\n                [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - route -> ${hook}`,\n                [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.ROUTE,\n                [ATTR_HTTP_ROUTE]: routeOptions.url,\n                [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n                  handlerLike.name?.length > 0\n                    ? handlerLike.name\n                    : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n              })\n            } else if (Array.isArray(handlerLike)) {\n              const wrappedHandlers = []\n\n              for (const handler of handlerLike) {\n                wrappedHandlers.push(\n                  handlerWrapper(handler, hook, {\n                    [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - route -> ${hook}`,\n                    [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.ROUTE,\n                    [ATTR_HTTP_ROUTE]: routeOptions.url,\n                    [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n                      handler.name?.length > 0\n                        ? handler.name\n                        : ANONYMOUS_FUNCTION_NAME\n                  })\n                )\n              }\n\n              routeOptions[hook] = wrappedHandlers\n            }\n          }\n        }\n\n        // We always want to add the onSend hook to the route to be executed last\n        if (routeOptions.onSend != null) {\n          routeOptions.onSend = Array.isArray(routeOptions.onSend)\n            ? [...routeOptions.onSend, finalizeResponseSpanHook]\n            : [routeOptions.onSend, finalizeResponseSpanHook]\n        } else {\n          routeOptions.onSend = finalizeResponseSpanHook\n        }\n\n        // We always want to add the onError hook to the route to be executed last\n        if (routeOptions.onError != null) {\n          routeOptions.onError = Array.isArray(routeOptions.onError)\n            ? [...routeOptions.onError, recordErrorInSpanHook]\n            : [routeOptions.onError, recordErrorInSpanHook]\n        } else {\n          routeOptions.onError = recordErrorInSpanHook\n        }\n\n        routeOptions.handler = handlerWrapper(routeOptions.handler, 'handler', {\n          [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - route-handler`,\n          [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.HANDLER,\n          [ATTR_HTTP_ROUTE]: routeOptions.url,\n          [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n            routeOptions.handler.name.length > 0\n              ? routeOptions.handler.name\n              : ANONYMOUS_FUNCTION_NAME\n        })\n      })\n\n      instance.addHook('onRequest', function startRequestSpanHook (request, _reply, hookDone) {\n        if (\n          this[kInstrumentation].isEnabled() === false ||\n          request.routeOptions.config?.otel === false\n        ) {\n          return hookDone()\n        }\n\n        if (this[kInstrumentation][kIgnorePaths]?.({\n          url: request.url,\n          method: request.method,\n        }) === true) {\n          this[kInstrumentation].logger.debug(\n            `Ignoring request ${request.method} ${request.url} because it matches the ignore path`\n          )\n          return hookDone()\n        }\n\n        let ctx = context.active()\n\n        if (trace.getSpan(ctx) == null) {\n          ctx = propagation.extract(ctx, request.headers)\n        }\n\n        const rpcMetadata = getRPCMetadata(ctx)\n\n        if (\n          request.routeOptions.url != null &&\n          rpcMetadata?.type === RPCType.HTTP\n        ) {\n          rpcMetadata.route = request.routeOptions.url\n        }\n\n        const attributes = {\n          [ATTRIBUTE_NAMES.ROOT]: '@fastify/otel',\n          [ATTR_HTTP_REQUEST_METHOD]: request.method,\n          [ATTR_URL_PATH]: request.url\n        }\n\n        if (request.routeOptions.url != null) {\n          attributes[ATTR_HTTP_ROUTE] = request.routeOptions.url\n        }\n\n        /** @type {import('@opentelemetry/api').Span} */\n        const span = this[kInstrumentation].tracer.startSpan('request', {\n          attributes\n        }, ctx)\n\n        try {\n          this[kInstrumentation]._requestHook?.(span, request)\n        } catch (err) {\n          this[kInstrumentation].logger.error({ err }, 'requestHook threw')\n        }\n\n        request[kRequestContext] = trace.setSpan(ctx, span)\n        request[kRequestSpan] = span\n\n        context.with(request[kRequestContext], () => {\n          hookDone()\n        })\n      })\n\n      // onResponse is the last hook to be executed, only added for 404 handlers\n      instance.addHook('onResponse', function finalizeNotFoundSpanHook (request, reply, hookDone) {\n        const span = request[kRequestSpan]\n\n        if (span != null) {\n          span.setStatus({\n            code: SpanStatusCode.OK,\n            message: 'OK'\n          })\n          span.setAttributes({\n            [ATTR_HTTP_RESPONSE_STATUS_CODE]: 404\n          })\n          span.end()\n        }\n\n        request[kRequestSpan] = null\n\n        hookDone()\n      })\n\n      instance.addHook = addHookPatched\n      instance.setNotFoundHandler = setNotFoundHandlerPatched\n\n      done()\n\n      function finalizeResponseSpanHook (request, reply, payload, hookDone) {\n        /** @type {import('@opentelemetry/api').Span} */\n        const span = request[kRequestSpan]\n\n        if (span != null) {\n          if (reply.statusCode < 500) {\n            span.setStatus({\n              code: SpanStatusCode.OK,\n              message: 'OK'\n            })\n          }\n\n          span.setAttributes({\n            [ATTR_HTTP_RESPONSE_STATUS_CODE]: reply.statusCode\n          })\n          span.end()\n        }\n\n        request[kRequestSpan] = null\n\n        hookDone(null, payload)\n      }\n\n      function recordErrorInSpanHook (request, reply, error, hookDone) {\n        /** @type {Span} */\n        const span = request[kRequestSpan]\n\n        if (span != null) {\n          span.setStatus({\n            code: SpanStatusCode.ERROR,\n            message: error.message\n          })\n          if (instrumentation[kRecordExceptions] !== false) {\n            span.recordException(error)\n          }\n        }\n\n        hookDone()\n      }\n\n      function addHookPatched (name, hook) {\n        const addHookOriginal = this[kAddHookOriginal]\n\n        if (FASTIFY_HOOKS.includes(name)) {\n          return addHookOriginal.call(\n            this,\n            name,\n            handlerWrapper(hook, name, {\n              [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - ${name}`,\n              [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n              [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n                hook.name?.length > 0\n                  ? hook.name\n                  : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n            })\n          )\n        } else {\n          return addHookOriginal.call(this, name, hook)\n        }\n      }\n\n      function setNotFoundHandlerPatched (hooks, handler) {\n        const setNotFoundHandlerOriginal = this[kSetNotFoundOriginal]\n        if (typeof hooks === 'function') {\n          handler = handlerWrapper(hooks, 'notFoundHandler', {\n            [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler`,\n            [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n            [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n              hooks.name?.length > 0\n                ? hooks.name\n                : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n          })\n          setNotFoundHandlerOriginal.call(this, handler)\n        } else {\n          if (hooks.preValidation != null) {\n            hooks.preValidation = handlerWrapper(hooks.preValidation, 'notFoundHandler - preValidation', {\n              [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler - preValidation`,\n              [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n              [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n                hooks.preValidation.name?.length > 0\n                  ? hooks.preValidation.name\n                  : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n            })\n          }\n\n          if (hooks.preHandler != null) {\n            hooks.preHandler = handlerWrapper(hooks.preHandler, 'notFoundHandler - preHandler', {\n              [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler - preHandler`,\n              [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n              [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n                hooks.preHandler.name?.length > 0\n                  ? hooks.preHandler.name\n                  : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n            })\n          }\n\n          handler = handlerWrapper(handler, 'notFoundHandler', {\n            [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler`,\n            [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n            [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n              handler.name?.length > 0\n                ? handler.name\n                : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n          })\n          setNotFoundHandlerOriginal.call(this, hooks, handler)\n        }\n      }\n\n      function handlerWrapper (handler, hookName, spanAttributes = {}) {\n        return function handlerWrapped (...args) {\n          /** @type {FastifyOtelInstrumentation} */\n          const instrumentation = this[kInstrumentation]\n          const [request] = args\n\n          if (instrumentation.isEnabled() === false || request.routeOptions.config?.otel === false) {\n            instrumentation.logger.debug(\n              `Ignoring route instrumentation ${request.routeOptions.method} ${request.routeOptions.url} because it is disabled`\n            )\n            return handler.call(this, ...args)\n          }\n\n          if (instrumentation[kIgnorePaths]?.({\n            url: request.url,\n            method: request.method,\n          }) === true) {\n            instrumentation.logger.debug(\n              `Ignoring route instrumentation ${request.routeOptions.method} ${request.routeOptions.url} because it matches the ignore path`\n            )\n            return handler.call(this, ...args)\n          }\n\n          /* c8 ignore next */\n          const ctx = request[kRequestContext] ?? context.active()\n          const handlerName = handler.name?.length > 0\n            ? handler.name\n            : this.pluginName /* c8 ignore next */ ?? ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n\n          const span = instrumentation.tracer.startSpan(\n            `${hookName} - ${handlerName}`,\n            {\n              attributes: spanAttributes\n            },\n            ctx\n          )\n\n          if (instrumentation._lifecycleHook != null) {\n            try {\n              instrumentation._lifecycleHook(span, {\n                hookName,\n                request,\n                handler: handlerName\n              })\n            } catch (err) {\n              instrumentation.logger.error({ err }, 'Execution of lifecycleHook failed')\n            }\n          }\n\n          return context.with(\n            trace.setSpan(ctx, span),\n            function () {\n              try {\n                const res = handler.call(this, ...args)\n\n                if (typeof res?.then === 'function') {\n                  return res.then(\n                    result => {\n                      span.end()\n                      return result\n                    },\n                    error => {\n                      span.setStatus({\n                        code: SpanStatusCode.ERROR,\n                        message: error.message\n                      })\n                      if (instrumentation[kRecordExceptions] !== false) {\n                        span.recordException(error)\n                      }\n                      span.end()\n                      return Promise.reject(error)\n                    }\n                  )\n                }\n\n                span.end()\n                return res\n              } catch (error) {\n                span.setStatus({\n                  code: SpanStatusCode.ERROR,\n                  message: error.message\n                })\n                if (instrumentation[kRecordExceptions] !== false) {\n                  span.recordException(error)\n                }\n                span.end()\n                throw error\n              }\n            },\n            this\n          )\n        }\n      }\n    }\n  }\n}\n\nmodule.exports = FastifyOtelInstrumentation\nmodule.exports.FastifyOtelInstrumentation = FastifyOtelInstrumentation\n",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SpanNames = exports.TokenKind = exports.AllowedOperationTypes = void 0;\nvar AllowedOperationTypes;\n(function (AllowedOperationTypes) {\n    AllowedOperationTypes[\"QUERY\"] = \"query\";\n    AllowedOperationTypes[\"MUTATION\"] = \"mutation\";\n    AllowedOperationTypes[\"SUBSCRIPTION\"] = \"subscription\";\n})(AllowedOperationTypes = exports.AllowedOperationTypes || (exports.AllowedOperationTypes = {}));\nvar TokenKind;\n(function (TokenKind) {\n    TokenKind[\"SOF\"] = \"\";\n    TokenKind[\"EOF\"] = \"\";\n    TokenKind[\"BANG\"] = \"!\";\n    TokenKind[\"DOLLAR\"] = \"$\";\n    TokenKind[\"AMP\"] = \"&\";\n    TokenKind[\"PAREN_L\"] = \"(\";\n    TokenKind[\"PAREN_R\"] = \")\";\n    TokenKind[\"SPREAD\"] = \"...\";\n    TokenKind[\"COLON\"] = \":\";\n    TokenKind[\"EQUALS\"] = \"=\";\n    TokenKind[\"AT\"] = \"@\";\n    TokenKind[\"BRACKET_L\"] = \"[\";\n    TokenKind[\"BRACKET_R\"] = \"]\";\n    TokenKind[\"BRACE_L\"] = \"{\";\n    TokenKind[\"PIPE\"] = \"|\";\n    TokenKind[\"BRACE_R\"] = \"}\";\n    TokenKind[\"NAME\"] = \"Name\";\n    TokenKind[\"INT\"] = \"Int\";\n    TokenKind[\"FLOAT\"] = \"Float\";\n    TokenKind[\"STRING\"] = \"String\";\n    TokenKind[\"BLOCK_STRING\"] = \"BlockString\";\n    TokenKind[\"COMMENT\"] = \"Comment\";\n})(TokenKind = exports.TokenKind || (exports.TokenKind = {}));\nvar SpanNames;\n(function (SpanNames) {\n    SpanNames[\"EXECUTE\"] = \"graphql.execute\";\n    SpanNames[\"PARSE\"] = \"graphql.parse\";\n    SpanNames[\"RESOLVE\"] = \"graphql.resolve\";\n    SpanNames[\"VALIDATE\"] = \"graphql.validate\";\n    SpanNames[\"SCHEMA_VALIDATE\"] = \"graphql.validateSchema\";\n    SpanNames[\"SCHEMA_PARSE\"] = \"graphql.parseSchema\";\n})(SpanNames = exports.SpanNames || (exports.SpanNames = {}));\n//# sourceMappingURL=enum.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar AttributeNames;\n(function (AttributeNames) {\n    AttributeNames[\"SOURCE\"] = \"graphql.source\";\n    AttributeNames[\"FIELD_NAME\"] = \"graphql.field.name\";\n    AttributeNames[\"FIELD_PATH\"] = \"graphql.field.path\";\n    AttributeNames[\"FIELD_TYPE\"] = \"graphql.field.type\";\n    AttributeNames[\"PARENT_NAME\"] = \"graphql.parent.name\";\n    AttributeNames[\"OPERATION_TYPE\"] = \"graphql.operation.type\";\n    AttributeNames[\"OPERATION_NAME\"] = \"graphql.operation.name\";\n    AttributeNames[\"VARIABLES\"] = \"graphql.variables.\";\n    AttributeNames[\"ERROR_VALIDATION_NAME\"] = \"graphql.validation.error\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OTEL_GRAPHQL_DATA_SYMBOL = exports.OTEL_PATCHED_SYMBOL = void 0;\nexports.OTEL_PATCHED_SYMBOL = Symbol.for('opentelemetry.patched');\nexports.OTEL_GRAPHQL_DATA_SYMBOL = Symbol.for('opentelemetry.graphql_data');\n//# sourceMappingURL=symbols.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OPERATION_NOT_SUPPORTED = void 0;\nconst symbols_1 = require(\"./symbols\");\nexports.OPERATION_NOT_SUPPORTED = 'Operation$operationName$not' + ' supported';\n//# sourceMappingURL=internal-types.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapFieldResolver = exports.wrapFields = exports.getSourceFromLocation = exports.getOperation = exports.endSpan = exports.addSpanSource = exports.addInputVariableAttributes = exports.isPromise = void 0;\nconst api = require(\"@opentelemetry/api\");\nconst enum_1 = require(\"./enum\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst symbols_1 = require(\"./symbols\");\nconst OPERATION_VALUES = Object.values(enum_1.AllowedOperationTypes);\n// https://github.com/graphql/graphql-js/blob/main/src/jsutils/isPromise.ts\nconst isPromise = (value) => {\n    return typeof value?.then === 'function';\n};\nexports.isPromise = isPromise;\n// https://github.com/graphql/graphql-js/blob/main/src/jsutils/isObjectLike.ts\nconst isObjectLike = (value) => {\n    return typeof value == 'object' && value !== null;\n};\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction addInputVariableAttribute(span, key, variable) {\n    if (Array.isArray(variable)) {\n        variable.forEach((value, idx) => {\n            addInputVariableAttribute(span, `${key}.${idx}`, value);\n        });\n    }\n    else if (variable instanceof Object) {\n        Object.entries(variable).forEach(([nestedKey, value]) => {\n            addInputVariableAttribute(span, `${key}.${nestedKey}`, value);\n        });\n    }\n    else {\n        span.setAttribute(`${AttributeNames_1.AttributeNames.VARIABLES}${String(key)}`, variable);\n    }\n}\nfunction addInputVariableAttributes(span, variableValues) {\n    Object.entries(variableValues).forEach(([key, value]) => {\n        addInputVariableAttribute(span, key, value);\n    });\n}\nexports.addInputVariableAttributes = addInputVariableAttributes;\nfunction addSpanSource(span, loc, allowValues, start, end) {\n    const source = getSourceFromLocation(loc, allowValues, start, end);\n    span.setAttribute(AttributeNames_1.AttributeNames.SOURCE, source);\n}\nexports.addSpanSource = addSpanSource;\nfunction createFieldIfNotExists(tracer, getConfig, contextValue, info, path) {\n    let field = getField(contextValue, path);\n    if (field) {\n        return { field, spanAdded: false };\n    }\n    const config = getConfig();\n    const parentSpan = config.flatResolveSpans\n        ? getRootSpan(contextValue)\n        : getParentFieldSpan(contextValue, path);\n    field = {\n        span: createResolverSpan(tracer, getConfig, contextValue, info, path, parentSpan),\n    };\n    addField(contextValue, path, field);\n    return { field, spanAdded: true };\n}\nfunction createResolverSpan(tracer, getConfig, contextValue, info, path, parentSpan) {\n    const attributes = {\n        [AttributeNames_1.AttributeNames.FIELD_NAME]: info.fieldName,\n        [AttributeNames_1.AttributeNames.FIELD_PATH]: path.join('.'),\n        [AttributeNames_1.AttributeNames.FIELD_TYPE]: info.returnType.toString(),\n        [AttributeNames_1.AttributeNames.PARENT_NAME]: info.parentType.name,\n    };\n    const span = tracer.startSpan(`${enum_1.SpanNames.RESOLVE} ${attributes[AttributeNames_1.AttributeNames.FIELD_PATH]}`, {\n        attributes,\n    }, parentSpan ? api.trace.setSpan(api.context.active(), parentSpan) : undefined);\n    const document = contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL].source;\n    const fieldNode = info.fieldNodes.find(fieldNode => fieldNode.kind === 'Field');\n    if (fieldNode) {\n        addSpanSource(span, document.loc, getConfig().allowValues, fieldNode.loc?.start, fieldNode.loc?.end);\n    }\n    return span;\n}\nfunction endSpan(span, error) {\n    if (error) {\n        span.recordException(error);\n    }\n    span.end();\n}\nexports.endSpan = endSpan;\nfunction getOperation(document, operationName) {\n    if (!document || !Array.isArray(document.definitions)) {\n        return undefined;\n    }\n    if (operationName) {\n        return document.definitions\n            .filter(definition => OPERATION_VALUES.indexOf(definition?.operation) !== -1)\n            .find(definition => operationName === definition?.name?.value);\n    }\n    else {\n        return document.definitions.find(definition => OPERATION_VALUES.indexOf(definition?.operation) !== -1);\n    }\n}\nexports.getOperation = getOperation;\nfunction addField(contextValue, path, field) {\n    return (contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL].fields[path.join('.')] =\n        field);\n}\nfunction getField(contextValue, path) {\n    return contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL].fields[path.join('.')];\n}\nfunction getParentFieldSpan(contextValue, path) {\n    for (let i = path.length - 1; i > 0; i--) {\n        const field = getField(contextValue, path.slice(0, i));\n        if (field) {\n            return field.span;\n        }\n    }\n    return getRootSpan(contextValue);\n}\nfunction getRootSpan(contextValue) {\n    return contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL].span;\n}\nfunction pathToArray(mergeItems, path) {\n    const flattened = [];\n    let curr = path;\n    while (curr) {\n        let key = curr.key;\n        if (mergeItems && typeof key === 'number') {\n            key = '*';\n        }\n        flattened.push(String(key));\n        curr = curr.prev;\n    }\n    return flattened.reverse();\n}\nfunction repeatBreak(i) {\n    return repeatChar('\\n', i);\n}\nfunction repeatSpace(i) {\n    return repeatChar(' ', i);\n}\nfunction repeatChar(char, to) {\n    let text = '';\n    for (let i = 0; i < to; i++) {\n        text += char;\n    }\n    return text;\n}\nconst KindsToBeRemoved = [\n    enum_1.TokenKind.FLOAT,\n    enum_1.TokenKind.STRING,\n    enum_1.TokenKind.INT,\n    enum_1.TokenKind.BLOCK_STRING,\n];\nfunction getSourceFromLocation(loc, allowValues = false, inputStart, inputEnd) {\n    let source = '';\n    if (loc?.startToken) {\n        const start = typeof inputStart === 'number' ? inputStart : loc.start;\n        const end = typeof inputEnd === 'number' ? inputEnd : loc.end;\n        let next = loc.startToken.next;\n        let previousLine = 1;\n        while (next) {\n            if (next.start < start) {\n                next = next.next;\n                previousLine = next?.line;\n                continue;\n            }\n            if (next.end > end) {\n                next = next.next;\n                previousLine = next?.line;\n                continue;\n            }\n            let value = next.value || next.kind;\n            let space = '';\n            if (!allowValues && KindsToBeRemoved.indexOf(next.kind) >= 0) {\n                // value = repeatChar('*', value.length);\n                value = '*';\n            }\n            if (next.kind === enum_1.TokenKind.STRING) {\n                value = `\"${value}\"`;\n            }\n            if (next.kind === enum_1.TokenKind.EOF) {\n                value = '';\n            }\n            if (next.line > previousLine) {\n                source += repeatBreak(next.line - previousLine);\n                previousLine = next.line;\n                space = repeatSpace(next.column - 1);\n            }\n            else {\n                if (next.line === next.prev?.line) {\n                    space = repeatSpace(next.start - (next.prev?.end || 0));\n                }\n            }\n            source += space + value;\n            if (next) {\n                next = next.next;\n            }\n        }\n    }\n    return source;\n}\nexports.getSourceFromLocation = getSourceFromLocation;\nfunction wrapFields(type, tracer, getConfig) {\n    if (!type || type[symbols_1.OTEL_PATCHED_SYMBOL]) {\n        return;\n    }\n    const fields = type.getFields();\n    type[symbols_1.OTEL_PATCHED_SYMBOL] = true;\n    Object.keys(fields).forEach(key => {\n        const field = fields[key];\n        if (!field) {\n            return;\n        }\n        if (field.resolve) {\n            field.resolve = wrapFieldResolver(tracer, getConfig, field.resolve);\n        }\n        if (field.type) {\n            const unwrappedTypes = unwrapType(field.type);\n            for (const unwrappedType of unwrappedTypes) {\n                wrapFields(unwrappedType, tracer, getConfig);\n            }\n        }\n    });\n}\nexports.wrapFields = wrapFields;\nfunction unwrapType(type) {\n    // unwrap wrapping types (non-nullable and list types)\n    if ('ofType' in type) {\n        return unwrapType(type.ofType);\n    }\n    // unwrap union types\n    if (isGraphQLUnionType(type)) {\n        return type.getTypes();\n    }\n    // return object types\n    if (isGraphQLObjectType(type)) {\n        return [type];\n    }\n    return [];\n}\nfunction isGraphQLUnionType(type) {\n    return 'getTypes' in type && typeof type.getTypes === 'function';\n}\nfunction isGraphQLObjectType(type) {\n    return 'getFields' in type && typeof type.getFields === 'function';\n}\nconst handleResolveSpanError = (resolveSpan, err, shouldEndSpan) => {\n    if (!shouldEndSpan) {\n        return;\n    }\n    resolveSpan.recordException(err);\n    resolveSpan.setStatus({\n        code: api.SpanStatusCode.ERROR,\n        message: err.message,\n    });\n    resolveSpan.end();\n};\nconst handleResolveSpanSuccess = (resolveSpan, shouldEndSpan) => {\n    if (!shouldEndSpan) {\n        return;\n    }\n    resolveSpan.end();\n};\nfunction wrapFieldResolver(tracer, getConfig, fieldResolver, isDefaultResolver = false) {\n    if (wrappedFieldResolver[symbols_1.OTEL_PATCHED_SYMBOL] ||\n        typeof fieldResolver !== 'function') {\n        return fieldResolver;\n    }\n    function wrappedFieldResolver(source, args, contextValue, info) {\n        if (!fieldResolver) {\n            return undefined;\n        }\n        const config = getConfig();\n        // follows what graphql is doing to decide if this is a trivial resolver\n        // for which we don't need to create a resolve span\n        if (config.ignoreTrivialResolveSpans &&\n            isDefaultResolver &&\n            (isObjectLike(source) || typeof source === 'function')) {\n            const property = source[info.fieldName];\n            // a function execution is not trivial and should be recorder.\n            // property which is not a function is just a value and we don't want a \"resolve\" span for it\n            if (typeof property !== 'function') {\n                return fieldResolver.call(this, source, args, contextValue, info);\n            }\n        }\n        if (!contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL]) {\n            return fieldResolver.call(this, source, args, contextValue, info);\n        }\n        const path = pathToArray(config.mergeItems, info && info.path);\n        const depth = path.filter((item) => typeof item === 'string').length;\n        let span;\n        let shouldEndSpan = false;\n        if (config.depth >= 0 && config.depth < depth) {\n            span = getParentFieldSpan(contextValue, path);\n        }\n        else {\n            const { field, spanAdded } = createFieldIfNotExists(tracer, getConfig, contextValue, info, path);\n            span = field.span;\n            shouldEndSpan = spanAdded;\n        }\n        return api.context.with(api.trace.setSpan(api.context.active(), span), () => {\n            try {\n                const res = fieldResolver.call(this, source, args, contextValue, info);\n                if ((0, exports.isPromise)(res)) {\n                    return res.then((r) => {\n                        handleResolveSpanSuccess(span, shouldEndSpan);\n                        return r;\n                    }, (err) => {\n                        handleResolveSpanError(span, err, shouldEndSpan);\n                        throw err;\n                    });\n                }\n                else {\n                    handleResolveSpanSuccess(span, shouldEndSpan);\n                    return res;\n                }\n            }\n            catch (err) {\n                handleResolveSpanError(span, err, shouldEndSpan);\n                throw err;\n            }\n        });\n    }\n    wrappedFieldResolver[symbols_1.OTEL_PATCHED_SYMBOL] = true;\n    return wrappedFieldResolver;\n}\nexports.wrapFieldResolver = wrapFieldResolver;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.61.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-graphql';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GraphQLInstrumentation = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst enum_1 = require(\"./enum\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst symbols_1 = require(\"./symbols\");\nconst internal_types_1 = require(\"./internal-types\");\nconst utils_1 = require(\"./utils\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst DEFAULT_CONFIG = {\n    mergeItems: false,\n    depth: -1,\n    allowValues: false,\n    ignoreResolveSpans: false,\n};\nconst supportedVersions = ['>=14.0.0 <17'];\nclass GraphQLInstrumentation extends instrumentation_1.InstrumentationBase {\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, { ...DEFAULT_CONFIG, ...config });\n    }\n    setConfig(config = {}) {\n        super.setConfig({ ...DEFAULT_CONFIG, ...config });\n    }\n    init() {\n        const module = new instrumentation_1.InstrumentationNodeModuleDefinition('graphql', supportedVersions);\n        module.files.push(this._addPatchingExecute());\n        module.files.push(this._addPatchingParser());\n        module.files.push(this._addPatchingValidate());\n        return module;\n    }\n    _addPatchingExecute() {\n        return new instrumentation_1.InstrumentationNodeModuleFile('graphql/execution/execute.js', supportedVersions, \n        // cannot make it work with appropriate type as execute function has 2\n        //types and/cannot import function but only types\n        (moduleExports) => {\n            if ((0, instrumentation_1.isWrapped)(moduleExports.execute)) {\n                this._unwrap(moduleExports, 'execute');\n            }\n            this._wrap(moduleExports, 'execute', this._patchExecute(moduleExports.defaultFieldResolver));\n            return moduleExports;\n        }, moduleExports => {\n            if (moduleExports) {\n                this._unwrap(moduleExports, 'execute');\n            }\n        });\n    }\n    _addPatchingParser() {\n        return new instrumentation_1.InstrumentationNodeModuleFile('graphql/language/parser.js', supportedVersions, (moduleExports) => {\n            if ((0, instrumentation_1.isWrapped)(moduleExports.parse)) {\n                this._unwrap(moduleExports, 'parse');\n            }\n            this._wrap(moduleExports, 'parse', this._patchParse());\n            return moduleExports;\n        }, (moduleExports) => {\n            if (moduleExports) {\n                this._unwrap(moduleExports, 'parse');\n            }\n        });\n    }\n    _addPatchingValidate() {\n        return new instrumentation_1.InstrumentationNodeModuleFile('graphql/validation/validate.js', supportedVersions, moduleExports => {\n            if ((0, instrumentation_1.isWrapped)(moduleExports.validate)) {\n                this._unwrap(moduleExports, 'validate');\n            }\n            this._wrap(moduleExports, 'validate', this._patchValidate());\n            return moduleExports;\n        }, moduleExports => {\n            if (moduleExports) {\n                this._unwrap(moduleExports, 'validate');\n            }\n        });\n    }\n    _patchExecute(defaultFieldResolved) {\n        const instrumentation = this;\n        return function execute(original) {\n            return function patchExecute() {\n                let processedArgs;\n                // case when apollo server is used for example\n                if (arguments.length >= 2) {\n                    const args = arguments;\n                    processedArgs = instrumentation._wrapExecuteArgs(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], defaultFieldResolved);\n                }\n                else {\n                    const args = arguments[0];\n                    processedArgs = instrumentation._wrapExecuteArgs(args.schema, args.document, args.rootValue, args.contextValue, args.variableValues, args.operationName, args.fieldResolver, args.typeResolver, defaultFieldResolved);\n                }\n                const operation = (0, utils_1.getOperation)(processedArgs.document, processedArgs.operationName);\n                const span = instrumentation._createExecuteSpan(operation, processedArgs);\n                processedArgs.contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL] = {\n                    source: processedArgs.document\n                        ? processedArgs.document ||\n                            processedArgs.document[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL]\n                        : undefined,\n                    span,\n                    fields: {},\n                };\n                return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n                    return (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                        return original.apply(this, [\n                            processedArgs,\n                        ]);\n                    }, (err, result) => {\n                        instrumentation._handleExecutionResult(span, err, result);\n                    });\n                });\n            };\n        };\n    }\n    _handleExecutionResult(span, err, result) {\n        const config = this.getConfig();\n        if (result === undefined || err) {\n            (0, utils_1.endSpan)(span, err);\n            return;\n        }\n        if ((0, utils_1.isPromise)(result)) {\n            result.then(resultData => {\n                if (typeof config.responseHook !== 'function') {\n                    (0, utils_1.endSpan)(span);\n                    return;\n                }\n                this._executeResponseHook(span, resultData);\n            }, error => {\n                (0, utils_1.endSpan)(span, error);\n            });\n        }\n        else {\n            if (typeof config.responseHook !== 'function') {\n                (0, utils_1.endSpan)(span);\n                return;\n            }\n            this._executeResponseHook(span, result);\n        }\n    }\n    _executeResponseHook(span, result) {\n        const { responseHook } = this.getConfig();\n        if (!responseHook) {\n            return;\n        }\n        (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n            responseHook(span, result);\n        }, err => {\n            if (err) {\n                this._diag.error('Error running response hook', err);\n            }\n            (0, utils_1.endSpan)(span, undefined);\n        }, true);\n    }\n    _patchParse() {\n        const instrumentation = this;\n        return function parse(original) {\n            return function patchParse(source, options) {\n                return instrumentation._parse(this, original, source, options);\n            };\n        };\n    }\n    _patchValidate() {\n        const instrumentation = this;\n        return function validate(original) {\n            return function patchValidate(schema, documentAST, rules, options, typeInfo) {\n                return instrumentation._validate(this, original, schema, documentAST, rules, typeInfo, options);\n            };\n        };\n    }\n    _parse(obj, original, source, options) {\n        const config = this.getConfig();\n        const span = this.tracer.startSpan(enum_1.SpanNames.PARSE);\n        return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n            return (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                return original.call(obj, source, options);\n            }, (err, result) => {\n                if (result) {\n                    const operation = (0, utils_1.getOperation)(result);\n                    if (!operation) {\n                        span.updateName(enum_1.SpanNames.SCHEMA_PARSE);\n                    }\n                    else if (result.loc) {\n                        (0, utils_1.addSpanSource)(span, result.loc, config.allowValues);\n                    }\n                }\n                (0, utils_1.endSpan)(span, err);\n            });\n        });\n    }\n    _validate(obj, original, schema, documentAST, rules, typeInfo, options) {\n        const span = this.tracer.startSpan(enum_1.SpanNames.VALIDATE, {});\n        return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n            return (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                return original.call(obj, schema, documentAST, rules, options, typeInfo);\n            }, (err, errors) => {\n                if (!documentAST.loc) {\n                    span.updateName(enum_1.SpanNames.SCHEMA_VALIDATE);\n                }\n                if (errors && errors.length) {\n                    span.recordException({\n                        name: AttributeNames_1.AttributeNames.ERROR_VALIDATION_NAME,\n                        message: JSON.stringify(errors),\n                    });\n                }\n                (0, utils_1.endSpan)(span, err);\n            });\n        });\n    }\n    _createExecuteSpan(operation, processedArgs) {\n        const config = this.getConfig();\n        const span = this.tracer.startSpan(enum_1.SpanNames.EXECUTE, {});\n        if (operation) {\n            const { operation: operationType, name: nameNode } = operation;\n            span.setAttribute(AttributeNames_1.AttributeNames.OPERATION_TYPE, operationType);\n            const operationName = nameNode?.value;\n            // https://opentelemetry.io/docs/reference/specification/trace/semantic_conventions/instrumentation/graphql/\n            // > The span name MUST be of the format   provided that graphql.operation.type and graphql.operation.name are available.\n            // > If graphql.operation.name is not available, the span SHOULD be named .\n            if (operationName) {\n                span.setAttribute(AttributeNames_1.AttributeNames.OPERATION_NAME, operationName);\n                span.updateName(`${operationType} ${operationName}`);\n            }\n            else {\n                span.updateName(operationType);\n            }\n        }\n        else {\n            let operationName = ' ';\n            if (processedArgs.operationName) {\n                operationName = ` \"${processedArgs.operationName}\" `;\n            }\n            operationName = internal_types_1.OPERATION_NOT_SUPPORTED.replace('$operationName$', operationName);\n            span.setAttribute(AttributeNames_1.AttributeNames.OPERATION_NAME, operationName);\n        }\n        if (processedArgs.document?.loc) {\n            (0, utils_1.addSpanSource)(span, processedArgs.document.loc, config.allowValues);\n        }\n        if (processedArgs.variableValues && config.allowValues) {\n            (0, utils_1.addInputVariableAttributes)(span, processedArgs.variableValues);\n        }\n        return span;\n    }\n    _wrapExecuteArgs(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver, defaultFieldResolved) {\n        if (!contextValue) {\n            contextValue = {};\n        }\n        if (contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL] ||\n            this.getConfig().ignoreResolveSpans) {\n            return {\n                schema,\n                document,\n                rootValue,\n                contextValue,\n                variableValues,\n                operationName,\n                fieldResolver,\n                typeResolver,\n            };\n        }\n        const isUsingDefaultResolver = fieldResolver == null;\n        // follows graphql implementation here:\n        // https://github.com/graphql/graphql-js/blob/0b7daed9811731362c71900e12e5ea0d1ecc7f1f/src/execution/execute.ts#L494\n        const fieldResolverForExecute = fieldResolver ?? defaultFieldResolved;\n        fieldResolver = (0, utils_1.wrapFieldResolver)(this.tracer, () => this.getConfig(), fieldResolverForExecute, isUsingDefaultResolver);\n        if (schema) {\n            (0, utils_1.wrapFields)(schema.getQueryType(), this.tracer, () => this.getConfig());\n            (0, utils_1.wrapFields)(schema.getMutationType(), this.tracer, () => this.getConfig());\n        }\n        return {\n            schema,\n            document,\n            rootValue,\n            contextValue,\n            variableValues,\n            operationName,\n            fieldResolver,\n            typeResolver,\n        };\n    }\n}\nexports.GraphQLInstrumentation = GraphQLInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GraphQLInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"GraphQLInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.GraphQLInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors, Aspecto\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EVENT_LISTENERS_SET = void 0;\nexports.EVENT_LISTENERS_SET = Symbol('opentelemetry.instrumentation.kafkajs.eventListenersSet');\n//# sourceMappingURL=internal-types.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bufferTextMapGetter = void 0;\n/*\nsame as open telemetry's `defaultTextMapGetter`,\nbut also handle case where header is buffer,\nadding toString() to make sure string is returned\n*/\nexports.bufferTextMapGetter = {\n    get(carrier, key) {\n        if (!carrier) {\n            return undefined;\n        }\n        const keys = Object.keys(carrier);\n        for (const carrierKey of keys) {\n            if (carrierKey === key || carrierKey.toLowerCase() === key) {\n                return carrier[carrierKey]?.toString();\n            }\n        }\n        return undefined;\n    },\n    keys(carrier) {\n        return carrier ? Object.keys(carrier) : [];\n    },\n};\n//# sourceMappingURL=propagator.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.METRIC_MESSAGING_PROCESS_DURATION = exports.METRIC_MESSAGING_CLIENT_SENT_MESSAGES = exports.METRIC_MESSAGING_CLIENT_OPERATION_DURATION = exports.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES = exports.MESSAGING_SYSTEM_VALUE_KAFKA = exports.MESSAGING_OPERATION_TYPE_VALUE_SEND = exports.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE = exports.MESSAGING_OPERATION_TYPE_VALUE_PROCESS = exports.ATTR_MESSAGING_SYSTEM = exports.ATTR_MESSAGING_OPERATION_TYPE = exports.ATTR_MESSAGING_OPERATION_NAME = exports.ATTR_MESSAGING_KAFKA_OFFSET = exports.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE = exports.ATTR_MESSAGING_KAFKA_MESSAGE_KEY = exports.ATTR_MESSAGING_DESTINATION_PARTITION_ID = exports.ATTR_MESSAGING_DESTINATION_NAME = exports.ATTR_MESSAGING_BATCH_MESSAGE_COUNT = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * The number of messages sent, received, or processed in the scope of the batching operation.\n *\n * @example 0\n * @example 1\n * @example 2\n *\n * @note Instrumentations **SHOULD NOT** set `messaging.batch.message_count` on spans that operate with a single message. When a messaging client library supports both batch and single-message API for the same operation, instrumentations **SHOULD** use `messaging.batch.message_count` for batching APIs and **SHOULD NOT** use it for single-message APIs.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_BATCH_MESSAGE_COUNT = 'messaging.batch.message_count';\n/**\n * The message destination name\n *\n * @example MyQueue\n * @example MyTopic\n *\n * @note Destination name **SHOULD** uniquely identify a specific queue, topic or other entity within the broker. If\n * the broker doesn't have such notion, the destination name **SHOULD** uniquely identify the broker.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_DESTINATION_NAME = 'messaging.destination.name';\n/**\n * The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`.\n *\n * @example \"1\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_DESTINATION_PARTITION_ID = 'messaging.destination.partition.id';\n/**\n * Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from `messaging.message.id` in that they're not unique. If the key is `null`, the attribute **MUST NOT** be set.\n *\n * @example \"myKey\"\n *\n * @note If the key type is not string, it's string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don't include its value.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_KAFKA_MESSAGE_KEY = 'messaging.kafka.message.key';\n/**\n * A boolean that is true if the message is a tombstone.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE = 'messaging.kafka.message.tombstone';\n/**\n * The offset of a record in the corresponding Kafka partition.\n *\n * @example 42\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_KAFKA_OFFSET = 'messaging.kafka.offset';\n/**\n * The system-specific name of the messaging operation.\n *\n * @example ack\n * @example nack\n * @example send\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_OPERATION_NAME = 'messaging.operation.name';\n/**\n * A string identifying the type of the messaging operation.\n *\n * @note If a custom value is used, it **MUST** be of low cardinality.\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_OPERATION_TYPE = 'messaging.operation.type';\n/**\n * The messaging system as identified by the client instrumentation.\n *\n * @note The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_SYSTEM = 'messaging.system';\n/**\n * Enum value \"process\" for attribute {@link ATTR_MESSAGING_OPERATION_TYPE}.\n */\nexports.MESSAGING_OPERATION_TYPE_VALUE_PROCESS = 'process';\n/**\n * Enum value \"receive\" for attribute {@link ATTR_MESSAGING_OPERATION_TYPE}.\n */\nexports.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE = 'receive';\n/**\n * Enum value \"send\" for attribute {@link ATTR_MESSAGING_OPERATION_TYPE}.\n */\nexports.MESSAGING_OPERATION_TYPE_VALUE_SEND = 'send';\n/**\n * Enum value \"kafka\" for attribute {@link ATTR_MESSAGING_SYSTEM}.\n */\nexports.MESSAGING_SYSTEM_VALUE_KAFKA = 'kafka';\n/**\n * Number of messages that were delivered to the application.\n *\n * @note Records the number of messages pulled from the broker or number of messages dispatched to the application in push-based scenarios.\n * The metric **SHOULD** be reported once per message delivery. For example, if receiving and processing operations are both instrumented for a single message delivery, this counter is incremented when the message is received and not reported when it is processed.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES = 'messaging.client.consumed.messages';\n/**\n * Duration of messaging operation initiated by a producer or consumer client.\n *\n * @note This metric **SHOULD NOT** be used to report processing duration - processing duration is reported in `messaging.process.duration` metric.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.METRIC_MESSAGING_CLIENT_OPERATION_DURATION = 'messaging.client.operation.duration';\n/**\n * Number of messages producer attempted to send to the broker.\n *\n * @note This metric **MUST NOT** count messages that were created but haven't yet been sent.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.METRIC_MESSAGING_CLIENT_SENT_MESSAGES = 'messaging.client.sent.messages';\n/**\n * Duration of processing operation.\n *\n * @note This metric **MUST** be reported for operations with `messaging.operation.type` that matches `process`.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.METRIC_MESSAGING_PROCESS_DURATION = 'messaging.process.duration';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.22.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-kafkajs';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors, Aspecto\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KafkaJsInstrumentation = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst internal_types_1 = require(\"./internal-types\");\nconst propagator_1 = require(\"./propagator\");\nconst semconv_1 = require(\"./semconv\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nfunction prepareCounter(meter, value, attributes) {\n    return (errorType) => {\n        meter.add(value, {\n            ...attributes,\n            ...(errorType ? { [semantic_conventions_1.ATTR_ERROR_TYPE]: errorType } : {}),\n        });\n    };\n}\nfunction prepareDurationHistogram(meter, value, attributes) {\n    return (errorType) => {\n        meter.record((Date.now() - value) / 1000, {\n            ...attributes,\n            ...(errorType ? { [semantic_conventions_1.ATTR_ERROR_TYPE]: errorType } : {}),\n        });\n    };\n}\nconst HISTOGRAM_BUCKET_BOUNDARIES = [\n    0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10,\n];\nclass KafkaJsInstrumentation extends instrumentation_1.InstrumentationBase {\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n    }\n    _updateMetricInstruments() {\n        this._clientDuration = this.meter.createHistogram(semconv_1.METRIC_MESSAGING_CLIENT_OPERATION_DURATION, { advice: { explicitBucketBoundaries: HISTOGRAM_BUCKET_BOUNDARIES } });\n        this._sentMessages = this.meter.createCounter(semconv_1.METRIC_MESSAGING_CLIENT_SENT_MESSAGES);\n        this._consumedMessages = this.meter.createCounter(semconv_1.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES);\n        this._processDuration = this.meter.createHistogram(semconv_1.METRIC_MESSAGING_PROCESS_DURATION, { advice: { explicitBucketBoundaries: HISTOGRAM_BUCKET_BOUNDARIES } });\n    }\n    init() {\n        const unpatch = (moduleExports) => {\n            if ((0, instrumentation_1.isWrapped)(moduleExports?.Kafka?.prototype.producer)) {\n                this._unwrap(moduleExports.Kafka.prototype, 'producer');\n            }\n            if ((0, instrumentation_1.isWrapped)(moduleExports?.Kafka?.prototype.consumer)) {\n                this._unwrap(moduleExports.Kafka.prototype, 'consumer');\n            }\n        };\n        const module = new instrumentation_1.InstrumentationNodeModuleDefinition('kafkajs', ['>=0.3.0 <3'], (moduleExports) => {\n            unpatch(moduleExports);\n            this._wrap(moduleExports?.Kafka?.prototype, 'producer', this._getProducerPatch());\n            this._wrap(moduleExports?.Kafka?.prototype, 'consumer', this._getConsumerPatch());\n            return moduleExports;\n        }, unpatch);\n        return module;\n    }\n    _getConsumerPatch() {\n        const instrumentation = this;\n        return (original) => {\n            return function consumer(...args) {\n                const newConsumer = original.apply(this, args);\n                if ((0, instrumentation_1.isWrapped)(newConsumer.run)) {\n                    instrumentation._unwrap(newConsumer, 'run');\n                }\n                instrumentation._wrap(newConsumer, 'run', instrumentation._getConsumerRunPatch());\n                instrumentation._setKafkaEventListeners(newConsumer);\n                return newConsumer;\n            };\n        };\n    }\n    _setKafkaEventListeners(kafkaObj) {\n        if (kafkaObj[internal_types_1.EVENT_LISTENERS_SET])\n            return;\n        // The REQUEST Consumer event was added in kafkajs@1.5.0.\n        if (kafkaObj.events?.REQUEST) {\n            kafkaObj.on(kafkaObj.events.REQUEST, this._recordClientDurationMetric.bind(this));\n        }\n        kafkaObj[internal_types_1.EVENT_LISTENERS_SET] = true;\n    }\n    _recordClientDurationMetric(event) {\n        const [address, port] = event.payload.broker.split(':');\n        this._clientDuration.record(event.payload.duration / 1000, {\n            [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n            [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: `${event.payload.apiName}`,\n            [semantic_conventions_1.ATTR_SERVER_ADDRESS]: address,\n            [semantic_conventions_1.ATTR_SERVER_PORT]: Number.parseInt(port, 10),\n        });\n    }\n    _getProducerPatch() {\n        const instrumentation = this;\n        return (original) => {\n            return function consumer(...args) {\n                const newProducer = original.apply(this, args);\n                if ((0, instrumentation_1.isWrapped)(newProducer.sendBatch)) {\n                    instrumentation._unwrap(newProducer, 'sendBatch');\n                }\n                instrumentation._wrap(newProducer, 'sendBatch', instrumentation._getSendBatchPatch());\n                if ((0, instrumentation_1.isWrapped)(newProducer.send)) {\n                    instrumentation._unwrap(newProducer, 'send');\n                }\n                instrumentation._wrap(newProducer, 'send', instrumentation._getSendPatch());\n                if ((0, instrumentation_1.isWrapped)(newProducer.transaction)) {\n                    instrumentation._unwrap(newProducer, 'transaction');\n                }\n                instrumentation._wrap(newProducer, 'transaction', instrumentation._getProducerTransactionPatch());\n                instrumentation._setKafkaEventListeners(newProducer);\n                return newProducer;\n            };\n        };\n    }\n    _getConsumerRunPatch() {\n        const instrumentation = this;\n        return (original) => {\n            return function run(...args) {\n                const config = args[0];\n                if (config?.eachMessage) {\n                    if ((0, instrumentation_1.isWrapped)(config.eachMessage)) {\n                        instrumentation._unwrap(config, 'eachMessage');\n                    }\n                    instrumentation._wrap(config, 'eachMessage', instrumentation._getConsumerEachMessagePatch());\n                }\n                if (config?.eachBatch) {\n                    if ((0, instrumentation_1.isWrapped)(config.eachBatch)) {\n                        instrumentation._unwrap(config, 'eachBatch');\n                    }\n                    instrumentation._wrap(config, 'eachBatch', instrumentation._getConsumerEachBatchPatch());\n                }\n                return original.call(this, config);\n            };\n        };\n    }\n    _getConsumerEachMessagePatch() {\n        const instrumentation = this;\n        return (original) => {\n            return function eachMessage(...args) {\n                const payload = args[0];\n                const propagatedContext = api_1.propagation.extract(api_1.ROOT_CONTEXT, payload.message.headers, propagator_1.bufferTextMapGetter);\n                const span = instrumentation._startConsumerSpan({\n                    topic: payload.topic,\n                    message: payload.message,\n                    operationType: semconv_1.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,\n                    ctx: propagatedContext,\n                    attributes: {\n                        [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.partition),\n                    },\n                });\n                const pendingMetrics = [\n                    prepareDurationHistogram(instrumentation._processDuration, Date.now(), {\n                        [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                        [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: 'process',\n                        [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: payload.topic,\n                        [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.partition),\n                    }),\n                    prepareCounter(instrumentation._consumedMessages, 1, {\n                        [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                        [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: 'process',\n                        [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: payload.topic,\n                        [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.partition),\n                    }),\n                ];\n                const eachMessagePromise = api_1.context.with(api_1.trace.setSpan(propagatedContext, span), () => {\n                    return original.apply(this, args);\n                });\n                return instrumentation._endSpansOnPromise([span], pendingMetrics, eachMessagePromise);\n            };\n        };\n    }\n    _getConsumerEachBatchPatch() {\n        return (original) => {\n            const instrumentation = this;\n            return function eachBatch(...args) {\n                const payload = args[0];\n                // https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/messaging.md#topic-with-multiple-consumers\n                const receivingSpan = instrumentation._startConsumerSpan({\n                    topic: payload.batch.topic,\n                    message: undefined,\n                    operationType: semconv_1.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE,\n                    ctx: api_1.ROOT_CONTEXT,\n                    attributes: {\n                        [semconv_1.ATTR_MESSAGING_BATCH_MESSAGE_COUNT]: payload.batch.messages.length,\n                        [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.batch.partition),\n                    },\n                });\n                return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), receivingSpan), () => {\n                    const startTime = Date.now();\n                    const spans = [];\n                    const pendingMetrics = [\n                        prepareCounter(instrumentation._consumedMessages, payload.batch.messages.length, {\n                            [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                            [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: 'process',\n                            [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: payload.batch.topic,\n                            [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.batch.partition),\n                        }),\n                    ];\n                    payload.batch.messages.forEach(message => {\n                        const propagatedContext = api_1.propagation.extract(api_1.ROOT_CONTEXT, message.headers, propagator_1.bufferTextMapGetter);\n                        const spanContext = api_1.trace\n                            .getSpan(propagatedContext)\n                            ?.spanContext();\n                        let origSpanLink;\n                        if (spanContext) {\n                            origSpanLink = {\n                                context: spanContext,\n                            };\n                        }\n                        spans.push(instrumentation._startConsumerSpan({\n                            topic: payload.batch.topic,\n                            message,\n                            operationType: semconv_1.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,\n                            link: origSpanLink,\n                            attributes: {\n                                [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.batch.partition),\n                            },\n                        }));\n                        pendingMetrics.push(prepareDurationHistogram(instrumentation._processDuration, startTime, {\n                            [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                            [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: 'process',\n                            [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: payload.batch.topic,\n                            [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.batch.partition),\n                        }));\n                    });\n                    const batchMessagePromise = original.apply(this, args);\n                    spans.unshift(receivingSpan);\n                    return instrumentation._endSpansOnPromise(spans, pendingMetrics, batchMessagePromise);\n                });\n            };\n        };\n    }\n    _getProducerTransactionPatch() {\n        const instrumentation = this;\n        return (original) => {\n            return function transaction(...args) {\n                const transactionSpan = instrumentation.tracer.startSpan('transaction');\n                const transactionPromise = original.apply(this, args);\n                transactionPromise\n                    .then((transaction) => {\n                    const originalSend = transaction.send;\n                    transaction.send = function send(...args) {\n                        return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), transactionSpan), () => {\n                            const patched = instrumentation._getSendPatch()(originalSend);\n                            return patched.apply(this, args).catch(err => {\n                                transactionSpan.setStatus({\n                                    code: api_1.SpanStatusCode.ERROR,\n                                    message: err?.message,\n                                });\n                                transactionSpan.recordException(err);\n                                throw err;\n                            });\n                        });\n                    };\n                    const originalSendBatch = transaction.sendBatch;\n                    transaction.sendBatch = function sendBatch(...args) {\n                        return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), transactionSpan), () => {\n                            const patched = instrumentation._getSendBatchPatch()(originalSendBatch);\n                            return patched.apply(this, args).catch(err => {\n                                transactionSpan.setStatus({\n                                    code: api_1.SpanStatusCode.ERROR,\n                                    message: err?.message,\n                                });\n                                transactionSpan.recordException(err);\n                                throw err;\n                            });\n                        });\n                    };\n                    const originalCommit = transaction.commit;\n                    transaction.commit = function commit(...args) {\n                        const originCommitPromise = originalCommit\n                            .apply(this, args)\n                            .then(() => {\n                            transactionSpan.setStatus({ code: api_1.SpanStatusCode.OK });\n                        });\n                        return instrumentation._endSpansOnPromise([transactionSpan], [], originCommitPromise);\n                    };\n                    const originalAbort = transaction.abort;\n                    transaction.abort = function abort(...args) {\n                        const originAbortPromise = originalAbort.apply(this, args);\n                        return instrumentation._endSpansOnPromise([transactionSpan], [], originAbortPromise);\n                    };\n                })\n                    .catch(err => {\n                    transactionSpan.setStatus({\n                        code: api_1.SpanStatusCode.ERROR,\n                        message: err?.message,\n                    });\n                    transactionSpan.recordException(err);\n                    transactionSpan.end();\n                });\n                return transactionPromise;\n            };\n        };\n    }\n    _getSendBatchPatch() {\n        const instrumentation = this;\n        return (original) => {\n            return function sendBatch(...args) {\n                const batch = args[0];\n                const messages = batch.topicMessages || [];\n                const spans = [];\n                const pendingMetrics = [];\n                messages.forEach(topicMessage => {\n                    topicMessage.messages.forEach(message => {\n                        spans.push(instrumentation._startProducerSpan(topicMessage.topic, message));\n                        pendingMetrics.push(prepareCounter(instrumentation._sentMessages, 1, {\n                            [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                            [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: 'send',\n                            [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: topicMessage.topic,\n                            ...(message.partition !== undefined\n                                ? {\n                                    [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(message.partition),\n                                }\n                                : {}),\n                        }));\n                    });\n                });\n                const origSendResult = original.apply(this, args);\n                return instrumentation._endSpansOnPromise(spans, pendingMetrics, origSendResult);\n            };\n        };\n    }\n    _getSendPatch() {\n        const instrumentation = this;\n        return (original) => {\n            return function send(...args) {\n                const record = args[0];\n                const spans = record.messages.map(message => {\n                    return instrumentation._startProducerSpan(record.topic, message);\n                });\n                const pendingMetrics = record.messages.map(m => prepareCounter(instrumentation._sentMessages, 1, {\n                    [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                    [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: 'send',\n                    [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: record.topic,\n                    ...(m.partition !== undefined\n                        ? {\n                            [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(m.partition),\n                        }\n                        : {}),\n                }));\n                const origSendResult = original.apply(this, args);\n                return instrumentation._endSpansOnPromise(spans, pendingMetrics, origSendResult);\n            };\n        };\n    }\n    _endSpansOnPromise(spans, pendingMetrics, sendPromise) {\n        return Promise.resolve(sendPromise)\n            .then(result => {\n            pendingMetrics.forEach(m => m());\n            return result;\n        })\n            .catch(reason => {\n            let errorMessage;\n            let errorType = semantic_conventions_1.ERROR_TYPE_VALUE_OTHER;\n            if (typeof reason === 'string' || reason === undefined) {\n                errorMessage = reason;\n            }\n            else if (typeof reason === 'object' &&\n                Object.prototype.hasOwnProperty.call(reason, 'message')) {\n                errorMessage = reason.message;\n                errorType = reason.constructor.name;\n            }\n            pendingMetrics.forEach(m => m(errorType));\n            spans.forEach(span => {\n                span.setAttribute(semantic_conventions_1.ATTR_ERROR_TYPE, errorType);\n                span.setStatus({\n                    code: api_1.SpanStatusCode.ERROR,\n                    message: errorMessage,\n                });\n            });\n            throw reason;\n        })\n            .finally(() => {\n            spans.forEach(span => span.end());\n        });\n    }\n    _startConsumerSpan({ topic, message, operationType, ctx, link, attributes, }) {\n        const operationName = operationType === semconv_1.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE\n            ? 'poll' // for batch processing spans\n            : operationType; // for individual message processing spans\n        const span = this.tracer.startSpan(`${operationName} ${topic}`, {\n            kind: operationType === semconv_1.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE\n                ? api_1.SpanKind.CLIENT\n                : api_1.SpanKind.CONSUMER,\n            attributes: {\n                ...attributes,\n                [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: topic,\n                [semconv_1.ATTR_MESSAGING_OPERATION_TYPE]: operationType,\n                [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: operationName,\n                [semconv_1.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]: message?.key\n                    ? String(message.key)\n                    : undefined,\n                [semconv_1.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]: message?.key && message.value === null ? true : undefined,\n                [semconv_1.ATTR_MESSAGING_KAFKA_OFFSET]: message?.offset,\n            },\n            links: link ? [link] : [],\n        }, ctx);\n        const { consumerHook } = this.getConfig();\n        if (consumerHook && message) {\n            (0, instrumentation_1.safeExecuteInTheMiddle)(() => consumerHook(span, { topic, message }), e => {\n                if (e)\n                    this._diag.error('consumerHook error', e);\n            }, true);\n        }\n        return span;\n    }\n    _startProducerSpan(topic, message) {\n        const span = this.tracer.startSpan(`send ${topic}`, {\n            kind: api_1.SpanKind.PRODUCER,\n            attributes: {\n                [semconv_1.ATTR_MESSAGING_SYSTEM]: semconv_1.MESSAGING_SYSTEM_VALUE_KAFKA,\n                [semconv_1.ATTR_MESSAGING_DESTINATION_NAME]: topic,\n                [semconv_1.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]: message.key\n                    ? String(message.key)\n                    : undefined,\n                [semconv_1.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]: message.key && message.value === null ? true : undefined,\n                [semconv_1.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: message.partition !== undefined\n                    ? String(message.partition)\n                    : undefined,\n                [semconv_1.ATTR_MESSAGING_OPERATION_NAME]: 'send',\n                [semconv_1.ATTR_MESSAGING_OPERATION_TYPE]: semconv_1.MESSAGING_OPERATION_TYPE_VALUE_SEND,\n            },\n        });\n        message.headers = message.headers ?? {};\n        api_1.propagation.inject(api_1.trace.setSpan(api_1.context.active(), span), message.headers);\n        const { producerHook } = this.getConfig();\n        if (producerHook) {\n            (0, instrumentation_1.safeExecuteInTheMiddle)(() => producerHook(span, { topic, message }), e => {\n                if (e)\n                    this._diag.error('producerHook error', e);\n            }, true);\n        }\n        return span;\n    }\n}\nexports.KafkaJsInstrumentation = KafkaJsInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors, Aspecto\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KafkaJsInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"KafkaJsInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.KafkaJsInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.57.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-lru-memoizer';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LruMemoizerInstrumentation = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nclass LruMemoizerInstrumentation extends instrumentation_1.InstrumentationBase {\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n    }\n    init() {\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition('lru-memoizer', ['>=1.3 <3'], moduleExports => {\n                // moduleExports is a function which receives an options object,\n                // and returns a \"memoizer\" function upon invocation.\n                // We want to patch this \"memoizer's\" internal function\n                const asyncMemoizer = function () {\n                    // This following function is invoked every time the user wants to get a (possible) memoized value\n                    // We replace it with another function in which we bind the current context to the last argument (callback)\n                    const origMemoizer = moduleExports.apply(this, arguments);\n                    return function () {\n                        const modifiedArguments = [...arguments];\n                        // last argument is the callback\n                        const origCallback = modifiedArguments.pop();\n                        const callbackWithContext = typeof origCallback === 'function'\n                            ? api_1.context.bind(api_1.context.active(), origCallback)\n                            : origCallback;\n                        modifiedArguments.push(callbackWithContext);\n                        return origMemoizer.apply(this, modifiedArguments);\n                    };\n                };\n                // sync function preserves context, but we still need to export it\n                // as the lru-memoizer package does\n                asyncMemoizer.sync = moduleExports.sync;\n                return asyncMemoizer;\n            }, undefined // no need to disable as this instrumentation does not create any spans\n            ),\n        ];\n    }\n}\nexports.LruMemoizerInstrumentation = LruMemoizerInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LruMemoizerInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"LruMemoizerInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.LruMemoizerInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.METRIC_DB_CLIENT_CONNECTIONS_USAGE = exports.DB_SYSTEM_VALUE_MONGODB = exports.DB_SYSTEM_NAME_VALUE_MONGODB = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_OPERATION = exports.ATTR_DB_NAME = exports.ATTR_DB_MONGODB_COLLECTION = exports.ATTR_DB_CONNECTION_STRING = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexports.ATTR_DB_CONNECTION_STRING = 'db.connection_string';\n/**\n * Deprecated, use `db.collection.name` instead.\n *\n * @example \"mytable\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.collection.name`.\n */\nexports.ATTR_DB_MONGODB_COLLECTION = 'db.mongodb.collection';\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexports.ATTR_DB_NAME = 'db.name';\n/**\n * Deprecated, use `db.operation.name` instead.\n *\n * @example findAndModify\n * @example HMSET\n * @example SELECT\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.operation.name`.\n */\nexports.ATTR_DB_OPERATION = 'db.operation';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"mongodb\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [MongoDB](https://www.mongodb.com/)\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_NAME_VALUE_MONGODB = 'mongodb';\n/**\n * Enum value \"mongodb\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * MongoDB\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_VALUE_MONGODB = 'mongodb';\n/**\n * Deprecated, use `db.client.connection.count` instead.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.client.connection.count`.\n */\nexports.METRIC_DB_CLIENT_CONNECTIONS_USAGE = 'db.client.connections.usage';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MongodbCommandType = void 0;\nvar MongodbCommandType;\n(function (MongodbCommandType) {\n    MongodbCommandType[\"CREATE_INDEXES\"] = \"createIndexes\";\n    MongodbCommandType[\"FIND_AND_MODIFY\"] = \"findAndModify\";\n    MongodbCommandType[\"IS_MASTER\"] = \"isMaster\";\n    MongodbCommandType[\"COUNT\"] = \"count\";\n    MongodbCommandType[\"AGGREGATE\"] = \"aggregate\";\n    MongodbCommandType[\"UNKNOWN\"] = \"unknown\";\n})(MongodbCommandType = exports.MongodbCommandType || (exports.MongodbCommandType = {}));\n//# sourceMappingURL=internal-types.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.66.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-mongodb';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MongoDBInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst internal_types_1 = require(\"./internal-types\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst DEFAULT_CONFIG = {\n    requireParentSpan: true,\n};\n/** mongodb instrumentation plugin for OpenTelemetry */\nclass MongoDBInstrumentation extends instrumentation_1.InstrumentationBase {\n    _netSemconvStability;\n    _dbSemconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, { ...DEFAULT_CONFIG, ...config });\n        this._setSemconvStabilityFromEnv();\n    }\n    // Used for testing.\n    _setSemconvStabilityFromEnv() {\n        this._netSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n        this._dbSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    setConfig(config = {}) {\n        super.setConfig({ ...DEFAULT_CONFIG, ...config });\n    }\n    _updateMetricInstruments() {\n        this._connectionsUsage = this.meter.createUpDownCounter(semconv_1.METRIC_DB_CLIENT_CONNECTIONS_USAGE, {\n            description: 'The number of connections that are currently in state described by the state attribute.',\n            unit: '{connection}',\n        });\n    }\n    /**\n     * Convenience function for updating the `db.client.connections.usage` metric.\n     * The name \"count\" comes from the eventual replacement for this metric per\n     * https://opentelemetry.io/docs/specs/semconv/non-normative/db-migration/#database-client-connection-count\n     */\n    _connCountAdd(n, poolName, state) {\n        this._connectionsUsage?.add(n, { 'pool.name': poolName, state });\n    }\n    init() {\n        const { v3PatchConnection: v3PatchConnection, v3UnpatchConnection: v3UnpatchConnection, } = this._getV3ConnectionPatches();\n        const { v4PatchConnect, v4UnpatchConnect } = this._getV4ConnectPatches();\n        const { v4PatchConnectionCallback, v4PatchConnectionPromise, v4UnpatchConnection, } = this._getV4ConnectionPatches();\n        const { v4PatchConnectionPool, v4UnpatchConnectionPool } = this._getV4ConnectionPoolPatches();\n        const { v4PatchSessions, v4UnpatchSessions } = this._getV4SessionsPatches();\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition('mongodb', ['>=3.3.0 <4'], undefined, undefined, [\n                new instrumentation_1.InstrumentationNodeModuleFile('mongodb/lib/core/wireprotocol/index.js', ['>=3.3.0 <4'], v3PatchConnection, v3UnpatchConnection),\n            ]),\n            new instrumentation_1.InstrumentationNodeModuleDefinition('mongodb', ['>=4.0.0 <8'], undefined, undefined, [\n                new instrumentation_1.InstrumentationNodeModuleFile('mongodb/lib/cmap/connection.js', ['>=4.0.0 <6.4'], v4PatchConnectionCallback, v4UnpatchConnection),\n                new instrumentation_1.InstrumentationNodeModuleFile('mongodb/lib/cmap/connection.js', ['>=6.4.0 <8'], v4PatchConnectionPromise, v4UnpatchConnection),\n                new instrumentation_1.InstrumentationNodeModuleFile('mongodb/lib/cmap/connection_pool.js', ['>=4.0.0 <6.4'], v4PatchConnectionPool, v4UnpatchConnectionPool),\n                new instrumentation_1.InstrumentationNodeModuleFile('mongodb/lib/cmap/connect.js', ['>=4.0.0 <8'], v4PatchConnect, v4UnpatchConnect),\n                new instrumentation_1.InstrumentationNodeModuleFile('mongodb/lib/sessions.js', ['>=4.0.0 <8'], v4PatchSessions, v4UnpatchSessions),\n            ]),\n        ];\n    }\n    _getV3ConnectionPatches() {\n        return {\n            v3PatchConnection: (moduleExports) => {\n                // patch insert operation\n                if ((0, instrumentation_1.isWrapped)(moduleExports.insert)) {\n                    this._unwrap(moduleExports, 'insert');\n                }\n                this._wrap(moduleExports, 'insert', this._getV3PatchOperation('insert'));\n                // patch remove operation\n                if ((0, instrumentation_1.isWrapped)(moduleExports.remove)) {\n                    this._unwrap(moduleExports, 'remove');\n                }\n                this._wrap(moduleExports, 'remove', this._getV3PatchOperation('remove'));\n                // patch update operation\n                if ((0, instrumentation_1.isWrapped)(moduleExports.update)) {\n                    this._unwrap(moduleExports, 'update');\n                }\n                this._wrap(moduleExports, 'update', this._getV3PatchOperation('update'));\n                // patch other command\n                if ((0, instrumentation_1.isWrapped)(moduleExports.command)) {\n                    this._unwrap(moduleExports, 'command');\n                }\n                this._wrap(moduleExports, 'command', this._getV3PatchCommand());\n                // patch query\n                if ((0, instrumentation_1.isWrapped)(moduleExports.query)) {\n                    this._unwrap(moduleExports, 'query');\n                }\n                this._wrap(moduleExports, 'query', this._getV3PatchFind());\n                // patch get more operation on cursor\n                if ((0, instrumentation_1.isWrapped)(moduleExports.getMore)) {\n                    this._unwrap(moduleExports, 'getMore');\n                }\n                this._wrap(moduleExports, 'getMore', this._getV3PatchCursor());\n                return moduleExports;\n            },\n            v3UnpatchConnection: (moduleExports) => {\n                if (moduleExports === undefined)\n                    return;\n                this._unwrap(moduleExports, 'insert');\n                this._unwrap(moduleExports, 'remove');\n                this._unwrap(moduleExports, 'update');\n                this._unwrap(moduleExports, 'command');\n                this._unwrap(moduleExports, 'query');\n                this._unwrap(moduleExports, 'getMore');\n            },\n        };\n    }\n    _getV4SessionsPatches() {\n        return {\n            v4PatchSessions: (moduleExports) => {\n                if ((0, instrumentation_1.isWrapped)(moduleExports.acquire)) {\n                    this._unwrap(moduleExports, 'acquire');\n                }\n                this._wrap(moduleExports.ServerSessionPool.prototype, 'acquire', this._getV4AcquireCommand());\n                if ((0, instrumentation_1.isWrapped)(moduleExports.release)) {\n                    this._unwrap(moduleExports, 'release');\n                }\n                this._wrap(moduleExports.ServerSessionPool.prototype, 'release', this._getV4ReleaseCommand());\n                return moduleExports;\n            },\n            v4UnpatchSessions: (moduleExports) => {\n                if (moduleExports === undefined)\n                    return;\n                if ((0, instrumentation_1.isWrapped)(moduleExports.acquire)) {\n                    this._unwrap(moduleExports, 'acquire');\n                }\n                if ((0, instrumentation_1.isWrapped)(moduleExports.release)) {\n                    this._unwrap(moduleExports, 'release');\n                }\n            },\n        };\n    }\n    _getV4AcquireCommand() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchAcquire() {\n                const nSessionsBeforeAcquire = this.sessions.length;\n                const session = original.call(this);\n                const nSessionsAfterAcquire = this.sessions.length;\n                if (nSessionsBeforeAcquire === nSessionsAfterAcquire) {\n                    //no session in the pool. a new session was created and used\n                    instrumentation._connCountAdd(1, instrumentation._poolName, 'used');\n                }\n                else if (nSessionsBeforeAcquire - 1 === nSessionsAfterAcquire) {\n                    //a session was already in the pool. remove it from the pool and use it.\n                    instrumentation._connCountAdd(-1, instrumentation._poolName, 'idle');\n                    instrumentation._connCountAdd(1, instrumentation._poolName, 'used');\n                }\n                return session;\n            };\n        };\n    }\n    _getV4ReleaseCommand() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchRelease(session) {\n                const cmdPromise = original.call(this, session);\n                instrumentation._connCountAdd(-1, instrumentation._poolName, 'used');\n                instrumentation._connCountAdd(1, instrumentation._poolName, 'idle');\n                return cmdPromise;\n            };\n        };\n    }\n    _getV4ConnectionPoolPatches() {\n        return {\n            v4PatchConnectionPool: (moduleExports) => {\n                const poolPrototype = moduleExports.ConnectionPool.prototype;\n                if ((0, instrumentation_1.isWrapped)(poolPrototype.checkOut)) {\n                    this._unwrap(poolPrototype, 'checkOut');\n                }\n                this._wrap(poolPrototype, 'checkOut', this._getV4ConnectionPoolCheckOut());\n                return moduleExports;\n            },\n            v4UnpatchConnectionPool: (moduleExports) => {\n                if (moduleExports === undefined)\n                    return;\n                this._unwrap(moduleExports.ConnectionPool.prototype, 'checkOut');\n            },\n        };\n    }\n    _getV4ConnectPatches() {\n        return {\n            v4PatchConnect: (moduleExports) => {\n                if ((0, instrumentation_1.isWrapped)(moduleExports.connect)) {\n                    this._unwrap(moduleExports, 'connect');\n                }\n                this._wrap(moduleExports, 'connect', this._getV4ConnectCommand());\n                return moduleExports;\n            },\n            v4UnpatchConnect: (moduleExports) => {\n                if (moduleExports === undefined)\n                    return;\n                this._unwrap(moduleExports, 'connect');\n            },\n        };\n    }\n    // This patch will become unnecessary once\n    // https://jira.mongodb.org/browse/NODE-5639 is done.\n    _getV4ConnectionPoolCheckOut() {\n        return (original) => {\n            return function patchedCheckout(callback) {\n                const patchedCallback = api_1.context.bind(api_1.context.active(), callback);\n                return original.call(this, patchedCallback);\n            };\n        };\n    }\n    _getV4ConnectCommand() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchedConnect(options, callback) {\n                // from v6.4 `connect` method only accepts an options param and returns a promise\n                // with the connection\n                if (original.length === 1) {\n                    const result = original.call(this, options);\n                    if (result && typeof result.then === 'function') {\n                        result.then(() => instrumentation.setPoolName(options), \n                        // this handler is set to pass the lint rules\n                        () => undefined);\n                    }\n                    return result;\n                }\n                // Earlier versions expects a callback param and return void\n                const patchedCallback = function (err, conn) {\n                    if (err || !conn) {\n                        callback(err, conn);\n                        return;\n                    }\n                    instrumentation.setPoolName(options);\n                    callback(err, conn);\n                };\n                return original.call(this, options, patchedCallback);\n            };\n        };\n    }\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    _getV4ConnectionPatches() {\n        return {\n            v4PatchConnectionCallback: (moduleExports) => {\n                // patch insert operation\n                if ((0, instrumentation_1.isWrapped)(moduleExports.Connection.prototype.command)) {\n                    this._unwrap(moduleExports.Connection.prototype, 'command');\n                }\n                this._wrap(moduleExports.Connection.prototype, 'command', this._getV4PatchCommandCallback());\n                return moduleExports;\n            },\n            v4PatchConnectionPromise: (moduleExports) => {\n                // patch insert operation\n                if ((0, instrumentation_1.isWrapped)(moduleExports.Connection.prototype.command)) {\n                    this._unwrap(moduleExports.Connection.prototype, 'command');\n                }\n                this._wrap(moduleExports.Connection.prototype, 'command', this._getV4PatchCommandPromise());\n                return moduleExports;\n            },\n            v4UnpatchConnection: (moduleExports) => {\n                if (moduleExports === undefined)\n                    return;\n                this._unwrap(moduleExports.Connection.prototype, 'command');\n            },\n        };\n    }\n    /** Creates spans for common operations */\n    _getV3PatchOperation(operationName) {\n        const instrumentation = this;\n        return (original) => {\n            return function patchedServerCommand(server, ns, ops, options, callback) {\n                const currentSpan = api_1.trace.getSpan(api_1.context.active());\n                const skipInstrumentation = instrumentation._checkSkipInstrumentation(currentSpan);\n                const resultHandler = typeof options === 'function' ? options : callback;\n                if (skipInstrumentation ||\n                    typeof resultHandler !== 'function' ||\n                    typeof ops !== 'object') {\n                    if (typeof options === 'function') {\n                        return original.call(this, server, ns, ops, options);\n                    }\n                    else {\n                        return original.call(this, server, ns, ops, options, callback);\n                    }\n                }\n                const attributes = instrumentation._getV3SpanAttributes(ns, server, \n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                ops[0], operationName);\n                const spanName = instrumentation._spanNameFromAttrs(attributes);\n                const span = instrumentation.tracer.startSpan(spanName, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes,\n                });\n                const patchedCallback = instrumentation._patchEnd(span, resultHandler);\n                // handle when options is the callback to send the correct number of args\n                if (typeof options === 'function') {\n                    return original.call(this, server, ns, ops, patchedCallback);\n                }\n                else {\n                    return original.call(this, server, ns, ops, options, patchedCallback);\n                }\n            };\n        };\n    }\n    /** Creates spans for command operation */\n    _getV3PatchCommand() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchedServerCommand(server, ns, cmd, options, callback) {\n                const currentSpan = api_1.trace.getSpan(api_1.context.active());\n                const skipInstrumentation = instrumentation._checkSkipInstrumentation(currentSpan);\n                const resultHandler = typeof options === 'function' ? options : callback;\n                if (skipInstrumentation ||\n                    typeof resultHandler !== 'function' ||\n                    typeof cmd !== 'object') {\n                    if (typeof options === 'function') {\n                        return original.call(this, server, ns, cmd, options);\n                    }\n                    else {\n                        return original.call(this, server, ns, cmd, options, callback);\n                    }\n                }\n                const commandType = MongoDBInstrumentation._getCommandType(cmd);\n                const operationName = commandType === internal_types_1.MongodbCommandType.UNKNOWN ? undefined : commandType;\n                const attributes = instrumentation._getV3SpanAttributes(ns, server, cmd, operationName);\n                const spanName = instrumentation._spanNameFromAttrs(attributes);\n                const span = instrumentation.tracer.startSpan(spanName, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes,\n                });\n                const patchedCallback = instrumentation._patchEnd(span, resultHandler);\n                // handle when options is the callback to send the correct number of args\n                if (typeof options === 'function') {\n                    return original.call(this, server, ns, cmd, patchedCallback);\n                }\n                else {\n                    return original.call(this, server, ns, cmd, options, patchedCallback);\n                }\n            };\n        };\n    }\n    /** Creates spans for command operation */\n    _getV4PatchCommandCallback() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchedV4ServerCommand(ns, cmd, options, callback) {\n                const currentSpan = api_1.trace.getSpan(api_1.context.active());\n                const skipInstrumentation = instrumentation._checkSkipInstrumentation(currentSpan);\n                const resultHandler = callback;\n                const commandType = Object.keys(cmd)[0];\n                if (typeof cmd !== 'object' || cmd.ismaster || cmd.hello) {\n                    return original.call(this, ns, cmd, options, callback);\n                }\n                let span = undefined;\n                if (!skipInstrumentation) {\n                    const attributes = instrumentation._getV4SpanAttributes(this, ns, cmd, commandType);\n                    const spanName = instrumentation._spanNameFromAttrs(attributes);\n                    span = instrumentation.tracer.startSpan(spanName, {\n                        kind: api_1.SpanKind.CLIENT,\n                        attributes,\n                    });\n                }\n                const patchedCallback = instrumentation._patchEnd(span, resultHandler, this.id, commandType);\n                return original.call(this, ns, cmd, options, patchedCallback);\n            };\n        };\n    }\n    _getV4PatchCommandPromise() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchedV4ServerCommand(...args) {\n                const [ns, cmd] = args;\n                const currentSpan = api_1.trace.getSpan(api_1.context.active());\n                const skipInstrumentation = instrumentation._checkSkipInstrumentation(currentSpan);\n                const commandType = Object.keys(cmd)[0];\n                const resultHandler = () => undefined;\n                if (typeof cmd !== 'object' || cmd.ismaster || cmd.hello) {\n                    return original.apply(this, args);\n                }\n                let span = undefined;\n                if (!skipInstrumentation) {\n                    const attributes = instrumentation._getV4SpanAttributes(this, ns, cmd, commandType);\n                    const spanName = instrumentation._spanNameFromAttrs(attributes);\n                    span = instrumentation.tracer.startSpan(spanName, {\n                        kind: api_1.SpanKind.CLIENT,\n                        attributes,\n                    });\n                }\n                const patchedCallback = instrumentation._patchEnd(span, resultHandler, this.id, commandType);\n                const result = original.apply(this, args);\n                result.then((res) => patchedCallback(null, res), (err) => patchedCallback(err));\n                return result;\n            };\n        };\n    }\n    /** Creates spans for find operation */\n    _getV3PatchFind() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchedServerCommand(server, ns, cmd, cursorState, options, callback) {\n                const currentSpan = api_1.trace.getSpan(api_1.context.active());\n                const skipInstrumentation = instrumentation._checkSkipInstrumentation(currentSpan);\n                const resultHandler = typeof options === 'function' ? options : callback;\n                if (skipInstrumentation ||\n                    typeof resultHandler !== 'function' ||\n                    typeof cmd !== 'object') {\n                    if (typeof options === 'function') {\n                        return original.call(this, server, ns, cmd, cursorState, options);\n                    }\n                    else {\n                        return original.call(this, server, ns, cmd, cursorState, options, callback);\n                    }\n                }\n                const attributes = instrumentation._getV3SpanAttributes(ns, server, cmd, 'find');\n                const spanName = instrumentation._spanNameFromAttrs(attributes);\n                const span = instrumentation.tracer.startSpan(spanName, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes,\n                });\n                const patchedCallback = instrumentation._patchEnd(span, resultHandler);\n                // handle when options is the callback to send the correct number of args\n                if (typeof options === 'function') {\n                    return original.call(this, server, ns, cmd, cursorState, patchedCallback);\n                }\n                else {\n                    return original.call(this, server, ns, cmd, cursorState, options, patchedCallback);\n                }\n            };\n        };\n    }\n    /** Creates spans for find operation */\n    _getV3PatchCursor() {\n        const instrumentation = this;\n        return (original) => {\n            return function patchedServerCommand(server, ns, cursorState, batchSize, options, callback) {\n                const currentSpan = api_1.trace.getSpan(api_1.context.active());\n                const skipInstrumentation = instrumentation._checkSkipInstrumentation(currentSpan);\n                const resultHandler = typeof options === 'function' ? options : callback;\n                if (skipInstrumentation || typeof resultHandler !== 'function') {\n                    if (typeof options === 'function') {\n                        return original.call(this, server, ns, cursorState, batchSize, options);\n                    }\n                    else {\n                        return original.call(this, server, ns, cursorState, batchSize, options, callback);\n                    }\n                }\n                const attributes = instrumentation._getV3SpanAttributes(ns, server, cursorState.cmd, 'getMore');\n                const spanName = instrumentation._spanNameFromAttrs(attributes);\n                const span = instrumentation.tracer.startSpan(spanName, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes,\n                });\n                const patchedCallback = instrumentation._patchEnd(span, resultHandler);\n                // handle when options is the callback to send the correct number of args\n                if (typeof options === 'function') {\n                    return original.call(this, server, ns, cursorState, batchSize, patchedCallback);\n                }\n                else {\n                    return original.call(this, server, ns, cursorState, batchSize, options, patchedCallback);\n                }\n            };\n        };\n    }\n    /**\n     * Get the mongodb command type from the object.\n     * @param command Internal mongodb command object\n     */\n    static _getCommandType(command) {\n        if (command.createIndexes !== undefined) {\n            return internal_types_1.MongodbCommandType.CREATE_INDEXES;\n        }\n        else if (command.findandmodify !== undefined) {\n            return internal_types_1.MongodbCommandType.FIND_AND_MODIFY;\n        }\n        else if (command.ismaster !== undefined) {\n            return internal_types_1.MongodbCommandType.IS_MASTER;\n        }\n        else if (command.count !== undefined) {\n            return internal_types_1.MongodbCommandType.COUNT;\n        }\n        else if (command.aggregate !== undefined) {\n            return internal_types_1.MongodbCommandType.AGGREGATE;\n        }\n        else {\n            return internal_types_1.MongodbCommandType.UNKNOWN;\n        }\n    }\n    /**\n     * Determine a span's attributes by fetching related metadata from the context\n     * @param connectionCtx mongodb internal connection context\n     * @param ns mongodb namespace\n     * @param command mongodb internal representation of a command\n     */\n    _getV4SpanAttributes(connectionCtx, ns, command, operation) {\n        let host, port;\n        if (connectionCtx) {\n            const hostParts = typeof connectionCtx.address === 'string'\n                ? connectionCtx.address.split(':')\n                : '';\n            if (hostParts.length === 2) {\n                host = hostParts[0];\n                port = hostParts[1];\n            }\n        }\n        // capture parameters within the query as well if enhancedDatabaseReporting is enabled.\n        let commandObj;\n        if (command?.documents && command.documents[0]) {\n            commandObj = command.documents[0];\n        }\n        else if (command?.cursors) {\n            commandObj = command.cursors;\n        }\n        else {\n            commandObj = command;\n        }\n        return this._getSpanAttributes(ns.db, ns.collection, host, port, commandObj, operation);\n    }\n    /**\n     * Determine a span's attributes by fetching related metadata from the context\n     * @param ns mongodb namespace\n     * @param topology mongodb internal representation of the network topology\n     * @param command mongodb internal representation of a command\n     */\n    _getV3SpanAttributes(ns, topology, command, operation) {\n        // Extract host/port info.\n        let host;\n        let port;\n        if (topology && topology.s) {\n            host = topology.s.options?.host ?? topology.s.host;\n            port = (topology.s.options?.port ?? topology.s.port)?.toString();\n            if (host == null || port == null) {\n                const address = topology.description?.address;\n                if (address) {\n                    const addressSegments = address.split(':');\n                    host = addressSegments[0];\n                    port = addressSegments[1];\n                }\n            }\n        }\n        // The namespace is a combination of the database name and the name of the\n        // collection or index, like so: [database-name].[collection-or-index-name].\n        // It could be a string or an instance of MongoDBNamespace, as such we\n        // always coerce to a string to extract db and collection.\n        const [dbName, dbCollection] = ns.toString().split('.');\n        // capture parameters within the query as well if enhancedDatabaseReporting is enabled.\n        const commandObj = command?.query ?? command?.q ?? command;\n        return this._getSpanAttributes(dbName, dbCollection, host, port, commandObj, operation);\n    }\n    _getSpanAttributes(dbName, dbCollection, host, port, commandObj, operation) {\n        const attributes = {};\n        if (this._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n            attributes[semconv_1.ATTR_DB_SYSTEM] = semconv_1.DB_SYSTEM_VALUE_MONGODB;\n            attributes[semconv_1.ATTR_DB_NAME] = dbName;\n            attributes[semconv_1.ATTR_DB_MONGODB_COLLECTION] = dbCollection;\n            attributes[semconv_1.ATTR_DB_OPERATION] = operation;\n            attributes[semconv_1.ATTR_DB_CONNECTION_STRING] =\n                `mongodb://${host}:${port}/${dbName}`;\n        }\n        if (this._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n            attributes[semantic_conventions_1.ATTR_DB_SYSTEM_NAME] = semconv_1.DB_SYSTEM_NAME_VALUE_MONGODB;\n            attributes[semantic_conventions_1.ATTR_DB_NAMESPACE] = dbName;\n            attributes[semantic_conventions_1.ATTR_DB_OPERATION_NAME] = operation;\n            attributes[semantic_conventions_1.ATTR_DB_COLLECTION_NAME] = dbCollection;\n        }\n        if (host && port) {\n            if (this._netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                attributes[semconv_1.ATTR_NET_PEER_NAME] = host;\n            }\n            if (this._netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                attributes[semantic_conventions_1.ATTR_SERVER_ADDRESS] = host;\n            }\n            const portNumber = parseInt(port, 10);\n            if (!isNaN(portNumber)) {\n                if (this._netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_NET_PEER_PORT] = portNumber;\n                }\n                if (this._netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    attributes[semantic_conventions_1.ATTR_SERVER_PORT] = portNumber;\n                }\n            }\n        }\n        if (commandObj) {\n            const { dbStatementSerializer: configDbStatementSerializer } = this.getConfig();\n            const dbStatementSerializer = typeof configDbStatementSerializer === 'function'\n                ? configDbStatementSerializer\n                : this._defaultDbStatementSerializer.bind(this);\n            (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                const query = dbStatementSerializer(commandObj);\n                if (this._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_DB_STATEMENT] = query;\n                }\n                if (this._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = query;\n                }\n            }, err => {\n                if (err) {\n                    this._diag.error('Error running dbStatementSerializer hook', err);\n                }\n            }, true);\n        }\n        return attributes;\n    }\n    _spanNameFromAttrs(attributes) {\n        let spanName;\n        if (this._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n            // https://opentelemetry.io/docs/specs/semconv/database/database-spans/#name\n            spanName =\n                [\n                    attributes[semantic_conventions_1.ATTR_DB_OPERATION_NAME],\n                    attributes[semantic_conventions_1.ATTR_DB_COLLECTION_NAME],\n                ]\n                    .filter(attr => attr)\n                    .join(' ') || semconv_1.DB_SYSTEM_NAME_VALUE_MONGODB;\n        }\n        else {\n            spanName = `mongodb.${attributes[semconv_1.ATTR_DB_OPERATION] || 'command'}`;\n        }\n        return spanName;\n    }\n    _getDefaultDbStatementReplacer() {\n        const seen = new WeakSet();\n        return (_key, value) => {\n            // undefined, boolean, number, bigint, string, symbol, function || null\n            if (typeof value !== 'object' || !value)\n                return '?';\n            // objects (including arrays)\n            if (seen.has(value))\n                return '[Circular]';\n            seen.add(value);\n            return value;\n        };\n    }\n    _defaultDbStatementSerializer(commandObj) {\n        const { enhancedDatabaseReporting } = this.getConfig();\n        if (enhancedDatabaseReporting) {\n            return JSON.stringify(commandObj);\n        }\n        return JSON.stringify(commandObj, this._getDefaultDbStatementReplacer());\n    }\n    /**\n     * Triggers the response hook in case it is defined.\n     * @param span The span to add the results to.\n     * @param result The command result\n     */\n    _handleExecutionResult(span, result) {\n        const { responseHook } = this.getConfig();\n        if (typeof responseHook === 'function') {\n            (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                responseHook(span, { data: result });\n            }, err => {\n                if (err) {\n                    this._diag.error('Error running response hook', err);\n                }\n            }, true);\n        }\n    }\n    /**\n     * Ends a created span.\n     * @param span The created span to end.\n     * @param resultHandler A callback function.\n     * @param connectionId: The connection ID of the Command response.\n     */\n    _patchEnd(span, resultHandler, connectionId, commandType) {\n        // mongodb is using \"tick\" when calling a callback, this way the context\n        // in final callback (resultHandler) is lost\n        const activeContext = api_1.context.active();\n        const instrumentation = this;\n        let spanEnded = false;\n        return function patchedEnd(...args) {\n            if (!spanEnded) {\n                spanEnded = true;\n                const error = args[0];\n                if (span) {\n                    if (error instanceof Error) {\n                        span.setStatus({\n                            code: api_1.SpanStatusCode.ERROR,\n                            message: error.message,\n                        });\n                    }\n                    else {\n                        const result = args[1];\n                        instrumentation._handleExecutionResult(span, result);\n                    }\n                    span.end();\n                }\n                if (commandType === 'endSessions') {\n                    instrumentation._connCountAdd(-1, instrumentation._poolName, 'idle');\n                }\n            }\n            return api_1.context.with(activeContext, () => {\n                return resultHandler.apply(this, args);\n            });\n        };\n    }\n    setPoolName(options) {\n        const host = options.hostAddress?.host;\n        const port = options.hostAddress?.port;\n        const database = options.dbName;\n        const poolName = `mongodb://${host}:${port}/${database}`;\n        this._poolName = poolName;\n    }\n    _checkSkipInstrumentation(currentSpan) {\n        const requireParentSpan = this.getConfig().requireParentSpan;\n        const hasNoParentSpan = currentSpan === undefined;\n        return requireParentSpan === true && hasNoParentSpan;\n    }\n}\nexports.MongoDBInstrumentation = MongoDBInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MongodbCommandType = void 0;\nvar MongodbCommandType;\n(function (MongodbCommandType) {\n    MongodbCommandType[\"CREATE_INDEXES\"] = \"createIndexes\";\n    MongodbCommandType[\"FIND_AND_MODIFY\"] = \"findAndModify\";\n    MongodbCommandType[\"IS_MASTER\"] = \"isMaster\";\n    MongodbCommandType[\"COUNT\"] = \"count\";\n    MongodbCommandType[\"UNKNOWN\"] = \"unknown\";\n})(MongodbCommandType = exports.MongodbCommandType || (exports.MongodbCommandType = {}));\n//# sourceMappingURL=types.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MongodbCommandType = exports.MongoDBInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"MongoDBInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.MongoDBInstrumentation; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"MongodbCommandType\", { enumerable: true, get: function () { return types_1.MongodbCommandType; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DB_SYSTEM_NAME_VALUE_MONGODB = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_USER = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_OPERATION = exports.ATTR_DB_NAME = exports.ATTR_DB_MONGODB_COLLECTION = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `db.collection.name` instead.\n *\n * @example \"mytable\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.collection.name`.\n */\nexports.ATTR_DB_MONGODB_COLLECTION = 'db.mongodb.collection';\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexports.ATTR_DB_NAME = 'db.name';\n/**\n * Deprecated, use `db.operation.name` instead.\n *\n * @example findAndModify\n * @example HMSET\n * @example SELECT\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.operation.name`.\n */\nexports.ATTR_DB_OPERATION = 'db.operation';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexports.ATTR_DB_USER = 'db.user';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"mongodb\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [MongoDB](https://www.mongodb.com/)\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_NAME_VALUE_MONGODB = 'mongodb';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.handleCallbackResponse = exports.handlePromiseResponse = exports.getAttributesFromCollection = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semconv_1 = require(\"./semconv\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nfunction getAttributesFromCollection(collection, dbSemconvStability, netSemconvStability) {\n    const attrs = {};\n    if (dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n        attrs[semconv_1.ATTR_DB_MONGODB_COLLECTION] = collection.name;\n        attrs[semconv_1.ATTR_DB_NAME] = collection.conn.name;\n        attrs[semconv_1.ATTR_DB_USER] = collection.conn.user;\n    }\n    if (dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n        attrs[semantic_conventions_1.ATTR_DB_COLLECTION_NAME] = collection.name;\n        attrs[semantic_conventions_1.ATTR_DB_NAMESPACE] = collection.conn.name;\n        // db.user has no stable replacement\n    }\n    if (netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n        attrs[semconv_1.ATTR_NET_PEER_NAME] = collection.conn.host;\n        attrs[semconv_1.ATTR_NET_PEER_PORT] = collection.conn.port;\n    }\n    if (netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n        attrs[semantic_conventions_1.ATTR_SERVER_ADDRESS] = collection.conn.host;\n        attrs[semantic_conventions_1.ATTR_SERVER_PORT] = collection.conn.port;\n    }\n    return attrs;\n}\nexports.getAttributesFromCollection = getAttributesFromCollection;\nfunction setErrorStatus(span, error = {}) {\n    span.recordException(error);\n    span.setStatus({\n        code: api_1.SpanStatusCode.ERROR,\n        message: `${error.message} ${error.code ? `\\nMongoose Error Code: ${error.code}` : ''}`,\n    });\n}\nfunction applyResponseHook(span, response, responseHook, moduleVersion = undefined) {\n    if (!responseHook) {\n        return;\n    }\n    (0, instrumentation_1.safeExecuteInTheMiddle)(() => responseHook(span, { moduleVersion, response }), e => {\n        if (e) {\n            api_1.diag.error('mongoose instrumentation: responseHook error', e);\n        }\n    }, true);\n}\nfunction handlePromiseResponse(execResponse, span, responseHook, moduleVersion = undefined) {\n    if (!(execResponse instanceof Promise)) {\n        applyResponseHook(span, execResponse, responseHook, moduleVersion);\n        span.end();\n        return execResponse;\n    }\n    return execResponse\n        .then(response => {\n        applyResponseHook(span, response, responseHook, moduleVersion);\n        return response;\n    })\n        .catch(err => {\n        setErrorStatus(span, err);\n        throw err;\n    })\n        .finally(() => span.end());\n}\nexports.handlePromiseResponse = handlePromiseResponse;\nfunction handleCallbackResponse(callback, exec, originalThis, span, args, responseHook, moduleVersion = undefined) {\n    let callbackArgumentIndex = 0;\n    if (args.length === 2) {\n        callbackArgumentIndex = 1;\n    }\n    else if (args.length === 3) {\n        callbackArgumentIndex = 2;\n    }\n    args[callbackArgumentIndex] = (err, response) => {\n        if (err) {\n            setErrorStatus(span, err);\n        }\n        else {\n            applyResponseHook(span, response, responseHook, moduleVersion);\n        }\n        span.end();\n        return callback(err, response);\n    };\n    return exec.apply(originalThis, args);\n}\nexports.handleCallbackResponse = handleCallbackResponse;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.59.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-mongoose';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MongooseInstrumentation = exports._ALREADY_INSTRUMENTED = exports._STORED_PARENT_SPAN = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst utils_1 = require(\"./utils\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst semconv_1 = require(\"./semconv\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst contextCaptureFunctionsCommon = [\n    'deleteOne',\n    'deleteMany',\n    'find',\n    'findOne',\n    'estimatedDocumentCount',\n    'countDocuments',\n    'distinct',\n    'where',\n    '$where',\n    'findOneAndUpdate',\n    'findOneAndDelete',\n    'findOneAndReplace',\n];\nconst contextCaptureFunctions6 = [\n    'remove',\n    'count',\n    'findOneAndRemove',\n    ...contextCaptureFunctionsCommon,\n];\nconst contextCaptureFunctions7 = [\n    'count',\n    'findOneAndRemove',\n    ...contextCaptureFunctionsCommon,\n];\nconst contextCaptureFunctions8 = [...contextCaptureFunctionsCommon];\nfunction getContextCaptureFunctions(moduleVersion) {\n    /* istanbul ignore next */\n    if (!moduleVersion) {\n        return contextCaptureFunctionsCommon;\n    }\n    else if (moduleVersion.startsWith('6.') || moduleVersion.startsWith('5.')) {\n        return contextCaptureFunctions6;\n    }\n    else if (moduleVersion.startsWith('7.')) {\n        return contextCaptureFunctions7;\n    }\n    else {\n        return contextCaptureFunctions8;\n    }\n}\nfunction instrumentRemove(moduleVersion) {\n    return ((moduleVersion &&\n        (moduleVersion.startsWith('5.') || moduleVersion.startsWith('6.'))) ||\n        false);\n}\n/**\n * 8.21.0 changed Document.updateOne/deleteOne so that the Query is not fully built when Query.exec() is called.\n * @param moduleVersion\n */\nfunction needsDocumentMethodPatch(moduleVersion) {\n    if (!moduleVersion || !moduleVersion.startsWith('8.')) {\n        return false;\n    }\n    const minor = parseInt(moduleVersion.split('.')[1], 10);\n    return minor >= 21;\n}\n// when mongoose functions are called, we store the original call context\n// and then set it as the parent for the spans created by Query/Aggregate exec()\n// calls. this bypass the unlinked spans issue on thenables await operations.\nexports._STORED_PARENT_SPAN = Symbol('stored-parent-span');\n// Prevents double-instrumentation when doc.updateOne/deleteOne (Mongoose 8.21.0+)\n// creates a span and returns a Query that also calls exec()\nexports._ALREADY_INSTRUMENTED = Symbol('already-instrumented');\nclass MongooseInstrumentation extends instrumentation_1.InstrumentationBase {\n    _netSemconvStability;\n    _dbSemconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._setSemconvStabilityFromEnv();\n    }\n    // Used for testing.\n    _setSemconvStabilityFromEnv() {\n        this._netSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n        this._dbSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    init() {\n        const module = new instrumentation_1.InstrumentationNodeModuleDefinition('mongoose', ['>=5.9.7 <10'], this.patch.bind(this), this.unpatch.bind(this));\n        return module;\n    }\n    patch(module, moduleVersion) {\n        const moduleExports = module[Symbol.toStringTag] === 'Module'\n            ? module.default // ESM\n            : module; // CommonJS\n        this._wrap(moduleExports.Model.prototype, 'save', this.patchOnModelMethods('save', moduleVersion));\n        // mongoose applies this code on module require:\n        // Model.prototype.$save = Model.prototype.save;\n        // which captures the save function before it is patched.\n        // so we need to apply the same logic after instrumenting the save function.\n        moduleExports.Model.prototype.$save = moduleExports.Model.prototype.save;\n        if (instrumentRemove(moduleVersion)) {\n            this._wrap(moduleExports.Model.prototype, 'remove', this.patchOnModelMethods('remove', moduleVersion));\n        }\n        // Mongoose 8.21.0+ changed Document.updateOne()/deleteOne() so that the Query is not fully built when Query.exec() is called.\n        //\n        // See https://github.com/Automattic/mongoose/blob/7dbda12dca1bd7adb9e270d7de8ac5229606ce72/lib/document.js#L861.\n        // - `this` is a Query object\n        // - the update happens in a pre-hook that gets called when Query.exec() is already running.\n        // - when we instrument Query.exec(), we don't have access to the options yet as they get set during Query.exec() only.\n        //\n        // Unfortunately, after Query.exec() is finished, the options are left modified by the library, so just delaying\n        // attaching the attributes after the span is done is not an option. Therefore, we patch Model methods\n        // and grab the data directly where the user provides it.\n        //\n        // ref: https://github.com/Automattic/mongoose/pull/15908 (introduced this behavior)\n        if (needsDocumentMethodPatch(moduleVersion)) {\n            this._wrap(moduleExports.Model.prototype, 'updateOne', this._patchDocumentUpdateMethods('updateOne', moduleVersion));\n            this._wrap(moduleExports.Model.prototype, 'deleteOne', this._patchDocumentUpdateMethods('deleteOne', moduleVersion));\n        }\n        this._wrap(moduleExports.Query.prototype, 'exec', this.patchQueryExec(moduleVersion));\n        this._wrap(moduleExports.Aggregate.prototype, 'exec', this.patchAggregateExec(moduleVersion));\n        const contextCaptureFunctions = getContextCaptureFunctions(moduleVersion);\n        contextCaptureFunctions.forEach((funcName) => {\n            this._wrap(moduleExports.Query.prototype, funcName, this.patchAndCaptureSpanContext(funcName));\n        });\n        this._wrap(moduleExports.Model, 'aggregate', this.patchModelAggregate());\n        this._wrap(moduleExports.Model, 'insertMany', this.patchModelStatic('insertMany', moduleVersion));\n        this._wrap(moduleExports.Model, 'bulkWrite', this.patchModelStatic('bulkWrite', moduleVersion));\n        return moduleExports;\n    }\n    unpatch(module, moduleVersion) {\n        const moduleExports = module[Symbol.toStringTag] === 'Module'\n            ? module.default // ESM\n            : module; // CommonJS\n        const contextCaptureFunctions = getContextCaptureFunctions(moduleVersion);\n        this._unwrap(moduleExports.Model.prototype, 'save');\n        // revert the patch for $save which we applied by aliasing it to patched `save`\n        moduleExports.Model.prototype.$save = moduleExports.Model.prototype.save;\n        if (instrumentRemove(moduleVersion)) {\n            this._unwrap(moduleExports.Model.prototype, 'remove');\n        }\n        if (needsDocumentMethodPatch(moduleVersion)) {\n            this._unwrap(moduleExports.Model.prototype, 'updateOne');\n            this._unwrap(moduleExports.Model.prototype, 'deleteOne');\n        }\n        this._unwrap(moduleExports.Query.prototype, 'exec');\n        this._unwrap(moduleExports.Aggregate.prototype, 'exec');\n        contextCaptureFunctions.forEach((funcName) => {\n            this._unwrap(moduleExports.Query.prototype, funcName);\n        });\n        this._unwrap(moduleExports.Model, 'aggregate');\n        this._unwrap(moduleExports.Model, 'insertMany');\n        this._unwrap(moduleExports.Model, 'bulkWrite');\n    }\n    patchAggregateExec(moduleVersion) {\n        const self = this;\n        return (originalAggregate) => {\n            return function exec(callback) {\n                if (self.getConfig().requireParentSpan &&\n                    api_1.trace.getSpan(api_1.context.active()) === undefined) {\n                    return originalAggregate.apply(this, arguments);\n                }\n                const parentSpan = this[exports._STORED_PARENT_SPAN];\n                const attributes = {};\n                const { dbStatementSerializer } = self.getConfig();\n                if (dbStatementSerializer) {\n                    const statement = dbStatementSerializer('aggregate', {\n                        options: this.options,\n                        aggregatePipeline: this._pipeline,\n                    });\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                        attributes[semconv_1.ATTR_DB_STATEMENT] = statement;\n                    }\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                        attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = statement;\n                    }\n                }\n                const span = self._startSpan(this._model.collection, this._model?.modelName, 'aggregate', attributes, parentSpan);\n                return self._handleResponse(span, originalAggregate, this, arguments, callback, moduleVersion);\n            };\n        };\n    }\n    patchQueryExec(moduleVersion) {\n        const self = this;\n        return (originalExec) => {\n            return function exec(callback) {\n                // Skip if already instrumented by document instance method patch\n                if (this[exports._ALREADY_INSTRUMENTED]) {\n                    return originalExec.apply(this, arguments);\n                }\n                if (self.getConfig().requireParentSpan &&\n                    api_1.trace.getSpan(api_1.context.active()) === undefined) {\n                    return originalExec.apply(this, arguments);\n                }\n                const parentSpan = this[exports._STORED_PARENT_SPAN];\n                const attributes = {};\n                const { dbStatementSerializer } = self.getConfig();\n                if (dbStatementSerializer) {\n                    const statement = dbStatementSerializer(this.op, {\n                        // Use public API methods (getFilter/getOptions) for better compatibility\n                        condition: this.getFilter?.() ?? this._conditions,\n                        updates: this._update,\n                        options: this.getOptions?.() ?? this.options,\n                        fields: this._fields,\n                    });\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                        attributes[semconv_1.ATTR_DB_STATEMENT] = statement;\n                    }\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                        attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = statement;\n                    }\n                }\n                const span = self._startSpan(this.mongooseCollection, this.model.modelName, this.op, attributes, parentSpan);\n                return self._handleResponse(span, originalExec, this, arguments, callback, moduleVersion);\n            };\n        };\n    }\n    patchOnModelMethods(op, moduleVersion) {\n        const self = this;\n        return (originalOnModelFunction) => {\n            return function method(options, callback) {\n                if (self.getConfig().requireParentSpan &&\n                    api_1.trace.getSpan(api_1.context.active()) === undefined) {\n                    return originalOnModelFunction.apply(this, arguments);\n                }\n                const serializePayload = { document: this };\n                if (options && !(options instanceof Function)) {\n                    serializePayload.options = options;\n                }\n                const attributes = {};\n                const { dbStatementSerializer } = self.getConfig();\n                if (dbStatementSerializer) {\n                    const statement = dbStatementSerializer(op, serializePayload);\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                        attributes[semconv_1.ATTR_DB_STATEMENT] = statement;\n                    }\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                        attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = statement;\n                    }\n                }\n                const span = self._startSpan(this.constructor.collection, this.constructor.modelName, op, attributes);\n                if (options instanceof Function) {\n                    callback = options;\n                    options = undefined;\n                }\n                return self._handleResponse(span, originalOnModelFunction, this, arguments, callback, moduleVersion);\n            };\n        };\n    }\n    // Patch document instance methods (doc.updateOne/deleteOne) for Mongoose 8.21.0+.\n    _patchDocumentUpdateMethods(op, moduleVersion) {\n        const self = this;\n        return (originalMethod) => {\n            return function method(update, options, callback) {\n                if (self.getConfig().requireParentSpan &&\n                    api_1.trace.getSpan(api_1.context.active()) === undefined) {\n                    return originalMethod.apply(this, arguments);\n                }\n                // determine actual callback since different argument patterns are allowed\n                let actualCallback = callback;\n                let actualUpdate = update;\n                let actualOptions = options;\n                if (typeof update === 'function') {\n                    actualCallback = update;\n                    actualUpdate = undefined;\n                    actualOptions = undefined;\n                }\n                else if (typeof options === 'function') {\n                    actualCallback = options;\n                    actualOptions = undefined;\n                }\n                const attributes = {};\n                const dbStatementSerializer = self.getConfig().dbStatementSerializer;\n                if (dbStatementSerializer) {\n                    const statement = dbStatementSerializer(op, {\n                        // Document instance methods automatically use the document's _id as filter\n                        condition: { _id: this._id },\n                        updates: actualUpdate,\n                        options: actualOptions,\n                    });\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                        attributes[semconv_1.ATTR_DB_STATEMENT] = statement;\n                    }\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                        attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = statement;\n                    }\n                }\n                const span = self._startSpan(this.constructor.collection, this.constructor.modelName, op, attributes);\n                const result = self._handleResponse(span, originalMethod, this, arguments, actualCallback, moduleVersion);\n                // Mark returned Query to prevent double-instrumentation when exec() is eventually called\n                if (result && typeof result === 'object') {\n                    result[exports._ALREADY_INSTRUMENTED] = true;\n                }\n                return result;\n            };\n        };\n    }\n    patchModelStatic(op, moduleVersion) {\n        const self = this;\n        return (original) => {\n            return function patchedStatic(docsOrOps, options, callback) {\n                if (self.getConfig().requireParentSpan &&\n                    api_1.trace.getSpan(api_1.context.active()) === undefined) {\n                    return original.apply(this, arguments);\n                }\n                if (typeof options === 'function') {\n                    callback = options;\n                    options = undefined;\n                }\n                const serializePayload = {};\n                switch (op) {\n                    case 'insertMany':\n                        serializePayload.documents = docsOrOps;\n                        break;\n                    case 'bulkWrite':\n                        serializePayload.operations = docsOrOps;\n                        break;\n                    default:\n                        serializePayload.document = docsOrOps;\n                        break;\n                }\n                if (options !== undefined) {\n                    serializePayload.options = options;\n                }\n                const attributes = {};\n                const { dbStatementSerializer } = self.getConfig();\n                if (dbStatementSerializer) {\n                    const statement = dbStatementSerializer(op, serializePayload);\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                        attributes[semconv_1.ATTR_DB_STATEMENT] = statement;\n                    }\n                    if (self._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                        attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = statement;\n                    }\n                }\n                const span = self._startSpan(this.collection, this.modelName, op, attributes);\n                return self._handleResponse(span, original, this, arguments, callback, moduleVersion);\n            };\n        };\n    }\n    // we want to capture the otel span on the object which is calling exec.\n    // in the special case of aggregate, we need have no function to path\n    // on the Aggregate object to capture the context on, so we patch\n    // the aggregate of Model, and set the context on the Aggregate object\n    patchModelAggregate() {\n        const self = this;\n        return (original) => {\n            return function captureSpanContext() {\n                const currentSpan = api_1.trace.getSpan(api_1.context.active());\n                const aggregate = self._callOriginalFunction(() => original.apply(this, arguments));\n                if (aggregate)\n                    aggregate[exports._STORED_PARENT_SPAN] = currentSpan;\n                return aggregate;\n            };\n        };\n    }\n    patchAndCaptureSpanContext(funcName) {\n        const self = this;\n        return (original) => {\n            return function captureSpanContext() {\n                this[exports._STORED_PARENT_SPAN] = api_1.trace.getSpan(api_1.context.active());\n                return self._callOriginalFunction(() => original.apply(this, arguments));\n            };\n        };\n    }\n    _startSpan(collection, modelName, operation, attributes, parentSpan) {\n        const finalAttributes = {\n            ...attributes,\n            ...(0, utils_1.getAttributesFromCollection)(collection, this._dbSemconvStability, this._netSemconvStability),\n        };\n        if (this._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n            finalAttributes[semconv_1.ATTR_DB_OPERATION] = operation;\n            finalAttributes[semconv_1.ATTR_DB_SYSTEM] = 'mongoose'; // keep for backwards compatibility\n        }\n        if (this._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n            finalAttributes[semantic_conventions_1.ATTR_DB_OPERATION_NAME] = operation;\n            finalAttributes[semantic_conventions_1.ATTR_DB_SYSTEM_NAME] = semconv_1.DB_SYSTEM_NAME_VALUE_MONGODB; // actual db system name\n        }\n        const spanName = this._dbSemconvStability & instrumentation_1.SemconvStability.STABLE\n            ? `${operation} ${collection.name}`\n            : `mongoose.${modelName}.${operation}`;\n        return this.tracer.startSpan(spanName, {\n            kind: api_1.SpanKind.CLIENT,\n            attributes: finalAttributes,\n        }, parentSpan ? api_1.trace.setSpan(api_1.context.active(), parentSpan) : undefined);\n    }\n    _handleResponse(span, exec, originalThis, args, callback, moduleVersion = undefined) {\n        const self = this;\n        if (callback instanceof Function) {\n            return self._callOriginalFunction(() => (0, utils_1.handleCallbackResponse)(callback, exec, originalThis, span, args, self.getConfig().responseHook, moduleVersion));\n        }\n        else {\n            const response = self._callOriginalFunction(() => exec.apply(originalThis, args));\n            return (0, utils_1.handlePromiseResponse)(response, span, self.getConfig().responseHook, moduleVersion);\n        }\n    }\n    _callOriginalFunction(originalFunction) {\n        if (this.getConfig().suppressInternalInstrumentation) {\n            return api_1.context.with((0, core_1.suppressTracing)(api_1.context.active()), originalFunction);\n        }\n        else {\n            return originalFunction();\n        }\n    }\n}\nexports.MongooseInstrumentation = MongooseInstrumentation;\n//# sourceMappingURL=mongoose.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MongooseInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar mongoose_1 = require(\"./mongoose\");\nObject.defineProperty(exports, \"MongooseInstrumentation\", { enumerable: true, get: function () { return mongoose_1.MongooseInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.METRIC_DB_CLIENT_CONNECTIONS_USAGE = exports.DB_SYSTEM_VALUE_MYSQL = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_USER = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_NAME = exports.ATTR_DB_CONNECTION_STRING = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexports.ATTR_DB_CONNECTION_STRING = 'db.connection_string';\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexports.ATTR_DB_NAME = 'db.name';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexports.ATTR_DB_USER = 'db.user';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"mysql\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * MySQL\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_VALUE_MYSQL = 'mysql';\n/**\n * Deprecated, use `db.client.connection.count` instead.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.client.connection.count`.\n */\nexports.METRIC_DB_CLIENT_CONNECTIONS_USAGE = 'db.client.connections.usage';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Mysql specific attributes not covered by semantic conventions\nvar AttributeNames;\n(function (AttributeNames) {\n    AttributeNames[\"MYSQL_VALUES\"] = \"db.mysql.values\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getPoolNameOld = exports.arrayStringifyHelper = exports.getSpanName = exports.getDbValues = exports.getDbQueryText = exports.getJDBCString = exports.getConfig = void 0;\nfunction getConfig(config) {\n    const { host, port, database, user } = (config && config.connectionConfig) || config || {};\n    return { host, port, database, user };\n}\nexports.getConfig = getConfig;\nfunction getJDBCString(host, port, database) {\n    let jdbcString = `jdbc:mysql://${host || 'localhost'}`;\n    if (typeof port === 'number') {\n        jdbcString += `:${port}`;\n    }\n    if (typeof database === 'string') {\n        jdbcString += `/${database}`;\n    }\n    return jdbcString;\n}\nexports.getJDBCString = getJDBCString;\n/**\n * @returns the database query being executed.\n */\nfunction getDbQueryText(query) {\n    if (typeof query === 'string') {\n        return query;\n    }\n    else {\n        return query.sql;\n    }\n}\nexports.getDbQueryText = getDbQueryText;\nfunction getDbValues(query, values) {\n    if (typeof query === 'string') {\n        return arrayStringifyHelper(values);\n    }\n    else {\n        // According to https://github.com/mysqljs/mysql#performing-queries\n        // The values argument will override the values in the option object.\n        return arrayStringifyHelper(values || query.values);\n    }\n}\nexports.getDbValues = getDbValues;\n/**\n * The span name SHOULD be set to a low cardinality value\n * representing the statement executed on the database.\n *\n * TODO: revisit span name based on https://github.com/open-telemetry/semantic-conventions/blob/v1.33.0/docs/database/database-spans.md#name\n *\n * @returns SQL statement without variable arguments or SQL verb\n */\nfunction getSpanName(query) {\n    const rawQuery = typeof query === 'object' ? query.sql : query;\n    // Extract the SQL verb\n    const firstSpace = rawQuery?.indexOf(' ');\n    if (typeof firstSpace === 'number' && firstSpace !== -1) {\n        return rawQuery?.substring(0, firstSpace);\n    }\n    return rawQuery;\n}\nexports.getSpanName = getSpanName;\nfunction arrayStringifyHelper(arr) {\n    if (arr)\n        return `[${arr.toString()}]`;\n    return '';\n}\nexports.arrayStringifyHelper = arrayStringifyHelper;\nfunction getPoolNameOld(pool) {\n    const c = pool.config.connectionConfig;\n    let poolName = '';\n    poolName += c.host ? `host: '${c.host}', ` : '';\n    poolName += c.port ? `port: ${c.port}, ` : '';\n    poolName += c.database ? `database: '${c.database}', ` : '';\n    poolName += c.user ? `user: '${c.user}'` : '';\n    if (!c.user) {\n        poolName = poolName.substring(0, poolName.length - 2); //omit last comma\n    }\n    return poolName.trim();\n}\nexports.getPoolNameOld = getPoolNameOld;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.59.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-mysql';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MySQLInstrumentation = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst AttributeNames_1 = require(\"./AttributeNames\");\nconst utils_1 = require(\"./utils\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nclass MySQLInstrumentation extends instrumentation_1.InstrumentationBase {\n    _netSemconvStability;\n    _dbSemconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._setSemconvStabilityFromEnv();\n    }\n    // Used for testing.\n    _setSemconvStabilityFromEnv() {\n        this._netSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n        this._dbSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    _updateMetricInstruments() {\n        this._connectionsUsageOld = this.meter.createUpDownCounter(semconv_1.METRIC_DB_CLIENT_CONNECTIONS_USAGE, {\n            description: 'The number of connections that are currently in state described by the state attribute.',\n            unit: '{connection}',\n        });\n    }\n    /**\n     * Convenience function for updating the `db.client.connections.usage` metric.\n     * The name \"count\" comes from the eventually replacement for this metric per\n     * https://opentelemetry.io/docs/specs/semconv/non-normative/db-migration/#database-client-connection-count\n     */\n    _connCountAdd(n, poolNameOld, state) {\n        this._connectionsUsageOld?.add(n, { state, name: poolNameOld });\n    }\n    init() {\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition('mysql', ['>=2.0.0 <3'], (moduleExports) => {\n                if ((0, instrumentation_1.isWrapped)(moduleExports.createConnection)) {\n                    this._unwrap(moduleExports, 'createConnection');\n                }\n                this._wrap(moduleExports, 'createConnection', this._patchCreateConnection());\n                if ((0, instrumentation_1.isWrapped)(moduleExports.createPool)) {\n                    this._unwrap(moduleExports, 'createPool');\n                }\n                this._wrap(moduleExports, 'createPool', this._patchCreatePool());\n                if ((0, instrumentation_1.isWrapped)(moduleExports.createPoolCluster)) {\n                    this._unwrap(moduleExports, 'createPoolCluster');\n                }\n                this._wrap(moduleExports, 'createPoolCluster', this._patchCreatePoolCluster());\n                return moduleExports;\n            }, (moduleExports) => {\n                if (moduleExports === undefined)\n                    return;\n                this._unwrap(moduleExports, 'createConnection');\n                this._unwrap(moduleExports, 'createPool');\n                this._unwrap(moduleExports, 'createPoolCluster');\n            }),\n        ];\n    }\n    // global export function\n    _patchCreateConnection() {\n        return (originalCreateConnection) => {\n            const thisPlugin = this;\n            return function createConnection(_connectionUri) {\n                const originalResult = originalCreateConnection(...arguments);\n                // This is unwrapped on next call after unpatch\n                thisPlugin._wrap(originalResult, 'query', thisPlugin._patchQuery(originalResult));\n                return originalResult;\n            };\n        };\n    }\n    // global export function\n    _patchCreatePool() {\n        return (originalCreatePool) => {\n            const thisPlugin = this;\n            return function createPool(_config) {\n                const pool = originalCreatePool(...arguments);\n                thisPlugin._wrap(pool, 'query', thisPlugin._patchQuery(pool));\n                thisPlugin._wrap(pool, 'getConnection', thisPlugin._patchGetConnection(pool));\n                thisPlugin._wrap(pool, 'end', thisPlugin._patchPoolEnd(pool));\n                thisPlugin._setPoolCallbacks(pool, '');\n                return pool;\n            };\n        };\n    }\n    _patchPoolEnd(pool) {\n        return (originalPoolEnd) => {\n            const thisPlugin = this;\n            return function end(callback) {\n                const nAll = pool._allConnections.length;\n                const nFree = pool._freeConnections.length;\n                const nUsed = nAll - nFree;\n                const poolNameOld = (0, utils_1.getPoolNameOld)(pool);\n                thisPlugin._connCountAdd(-nUsed, poolNameOld, 'used');\n                thisPlugin._connCountAdd(-nFree, poolNameOld, 'idle');\n                originalPoolEnd.apply(pool, arguments);\n            };\n        };\n    }\n    // global export function\n    _patchCreatePoolCluster() {\n        return (originalCreatePoolCluster) => {\n            const thisPlugin = this;\n            return function createPool(_config) {\n                const cluster = originalCreatePoolCluster(...arguments);\n                // This is unwrapped on next call after unpatch\n                thisPlugin._wrap(cluster, 'getConnection', thisPlugin._patchGetConnection(cluster));\n                thisPlugin._wrap(cluster, 'add', thisPlugin._patchAdd(cluster));\n                return cluster;\n            };\n        };\n    }\n    _patchAdd(cluster) {\n        return (originalAdd) => {\n            const thisPlugin = this;\n            return function add(id, config) {\n                // Unwrap if unpatch has been called\n                if (!thisPlugin['_enabled']) {\n                    thisPlugin._unwrap(cluster, 'add');\n                    return originalAdd.apply(cluster, arguments);\n                }\n                originalAdd.apply(cluster, arguments);\n                const nodes = cluster['_nodes'];\n                if (nodes) {\n                    const nodeId = typeof id === 'object'\n                        ? 'CLUSTER::' + cluster._lastId\n                        : String(id);\n                    const pool = nodes[nodeId].pool;\n                    thisPlugin._setPoolCallbacks(pool, id);\n                }\n            };\n        };\n    }\n    // method on cluster or pool\n    _patchGetConnection(pool) {\n        return (originalGetConnection) => {\n            const thisPlugin = this;\n            return function getConnection(arg1, arg2, arg3) {\n                // Unwrap if unpatch has been called\n                if (!thisPlugin['_enabled']) {\n                    thisPlugin._unwrap(pool, 'getConnection');\n                    return originalGetConnection.apply(pool, arguments);\n                }\n                if (arguments.length === 1 && typeof arg1 === 'function') {\n                    const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg1);\n                    return originalGetConnection.call(pool, patchFn);\n                }\n                if (arguments.length === 2 && typeof arg2 === 'function') {\n                    const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg2);\n                    return originalGetConnection.call(pool, arg1, patchFn);\n                }\n                if (arguments.length === 3 && typeof arg3 === 'function') {\n                    const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg3);\n                    return originalGetConnection.call(pool, arg1, arg2, patchFn);\n                }\n                return originalGetConnection.apply(pool, arguments);\n            };\n        };\n    }\n    _getConnectionCallbackPatchFn(cb) {\n        const thisPlugin = this;\n        const activeContext = api_1.context.active();\n        return function (err, connection) {\n            if (connection) {\n                // this is the callback passed into a query\n                // no need to unwrap\n                if (!(0, instrumentation_1.isWrapped)(connection.query)) {\n                    thisPlugin._wrap(connection, 'query', thisPlugin._patchQuery(connection));\n                }\n            }\n            if (typeof cb === 'function') {\n                api_1.context.with(activeContext, cb, this, err, connection);\n            }\n        };\n    }\n    _patchQuery(connection) {\n        return (originalQuery) => {\n            const thisPlugin = this;\n            return function query(query, _valuesOrCallback, _callback) {\n                if (!thisPlugin['_enabled']) {\n                    thisPlugin._unwrap(connection, 'query');\n                    return originalQuery.apply(connection, arguments);\n                }\n                const attributes = {};\n                const { host, port, database, user } = (0, utils_1.getConfig)(connection.config);\n                const portNumber = parseInt(port, 10);\n                const dbQueryText = (0, utils_1.getDbQueryText)(query);\n                if (thisPlugin._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_DB_SYSTEM] = semconv_1.DB_SYSTEM_VALUE_MYSQL;\n                    attributes[semconv_1.ATTR_DB_CONNECTION_STRING] = (0, utils_1.getJDBCString)(host, port, database);\n                    attributes[semconv_1.ATTR_DB_NAME] = database;\n                    attributes[semconv_1.ATTR_DB_USER] = user;\n                    attributes[semconv_1.ATTR_DB_STATEMENT] = dbQueryText;\n                }\n                if (thisPlugin._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    attributes[semantic_conventions_1.ATTR_DB_SYSTEM_NAME] = semantic_conventions_1.DB_SYSTEM_NAME_VALUE_MYSQL;\n                    attributes[semantic_conventions_1.ATTR_DB_NAMESPACE] = database;\n                    attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = dbQueryText;\n                }\n                if (thisPlugin._netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_NET_PEER_NAME] = host;\n                    if (!isNaN(portNumber)) {\n                        attributes[semconv_1.ATTR_NET_PEER_PORT] = portNumber;\n                    }\n                }\n                if (thisPlugin._netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    attributes[semantic_conventions_1.ATTR_SERVER_ADDRESS] = host;\n                    if (!isNaN(portNumber)) {\n                        attributes[semantic_conventions_1.ATTR_SERVER_PORT] = portNumber;\n                    }\n                }\n                const span = thisPlugin.tracer.startSpan((0, utils_1.getSpanName)(query), {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes,\n                });\n                if (thisPlugin.getConfig().enhancedDatabaseReporting) {\n                    let values;\n                    if (Array.isArray(_valuesOrCallback)) {\n                        values = _valuesOrCallback;\n                    }\n                    else if (arguments[2]) {\n                        values = [_valuesOrCallback];\n                    }\n                    span.setAttribute(AttributeNames_1.AttributeNames.MYSQL_VALUES, (0, utils_1.getDbValues)(query, values));\n                }\n                const cbIndex = Array.from(arguments).findIndex(arg => typeof arg === 'function');\n                const parentContext = api_1.context.active();\n                if (cbIndex === -1) {\n                    const streamableQuery = api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n                        return originalQuery.apply(connection, arguments);\n                    });\n                    api_1.context.bind(parentContext, streamableQuery);\n                    return streamableQuery\n                        .on('error', err => span.setStatus({\n                        code: api_1.SpanStatusCode.ERROR,\n                        message: err.message,\n                    }))\n                        .on('end', () => {\n                        span.end();\n                    });\n                }\n                else {\n                    thisPlugin._wrap(arguments, cbIndex, thisPlugin._patchCallbackQuery(span, parentContext));\n                    return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n                        return originalQuery.apply(connection, arguments);\n                    });\n                }\n            };\n        };\n    }\n    _patchCallbackQuery(span, parentContext) {\n        return (originalCallback) => {\n            return function (err, results, fields) {\n                if (err) {\n                    span.setStatus({\n                        code: api_1.SpanStatusCode.ERROR,\n                        message: err.message,\n                    });\n                }\n                span.end();\n                return api_1.context.with(parentContext, () => originalCallback(...arguments));\n            };\n        };\n    }\n    _setPoolCallbacks(pool, id) {\n        const poolNameOld = id || (0, utils_1.getPoolNameOld)(pool);\n        pool.on('connection', _connection => {\n            this._connCountAdd(1, poolNameOld, 'idle');\n        });\n        pool.on('acquire', _connection => {\n            this._connCountAdd(-1, poolNameOld, 'idle');\n            this._connCountAdd(1, poolNameOld, 'used');\n        });\n        pool.on('release', _connection => {\n            this._connCountAdd(1, poolNameOld, 'idle');\n            this._connCountAdd(-1, poolNameOld, 'used');\n        });\n    }\n}\nexports.MySQLInstrumentation = MySQLInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MySQLInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"MySQLInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.MySQLInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DB_SYSTEM_VALUE_MYSQL = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_USER = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_NAME = exports.ATTR_DB_CONNECTION_STRING = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexports.ATTR_DB_CONNECTION_STRING = 'db.connection_string';\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexports.ATTR_DB_NAME = 'db.name';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexports.ATTR_DB_USER = 'db.user';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"mysql\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * MySQL\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_VALUE_MYSQL = 'mysql';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.addSqlCommenterComment = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\n// NOTE: This function currently is returning false-positives\n// in cases where comment characters appear in string literals\n// (\"SELECT '-- not a comment';\" would return true, although has no comment)\nfunction hasValidSqlComment(query) {\n    const indexOpeningDashDashComment = query.indexOf('--');\n    if (indexOpeningDashDashComment >= 0) {\n        return true;\n    }\n    const indexOpeningSlashComment = query.indexOf('/*');\n    if (indexOpeningSlashComment < 0) {\n        return false;\n    }\n    const indexClosingSlashComment = query.indexOf('*/');\n    return indexOpeningDashDashComment < indexClosingSlashComment;\n}\n// sqlcommenter specification (https://google.github.io/sqlcommenter/spec/#value-serialization)\n// expects us to URL encode based on the RFC 3986 spec (https://en.wikipedia.org/wiki/Percent-encoding),\n// but encodeURIComponent does not handle some characters correctly (! ' ( ) *),\n// which means we need special handling for this\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent\nfunction fixedEncodeURIComponent(str) {\n    return encodeURIComponent(str).replace(/[!'()*]/g, c => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n}\nfunction addSqlCommenterComment(span, query) {\n    if (typeof query !== 'string' || query.length === 0) {\n        return query;\n    }\n    // As per sqlcommenter spec we shall not add a comment if there already is a comment\n    // in the query\n    if (hasValidSqlComment(query)) {\n        return query;\n    }\n    const propagator = new core_1.W3CTraceContextPropagator();\n    const headers = {};\n    propagator.inject(api_1.trace.setSpan(api_1.ROOT_CONTEXT, span), headers, api_1.defaultTextMapSetter);\n    // sqlcommenter spec requires keys in the comment to be sorted lexicographically\n    const sortedKeys = Object.keys(headers).sort();\n    if (sortedKeys.length === 0) {\n        return query;\n    }\n    const commentString = sortedKeys\n        .map(key => {\n        const encodedValue = fixedEncodeURIComponent(headers[key]);\n        return `${key}='${encodedValue}'`;\n    })\n        .join(',');\n    return `${query} /*${commentString}*/`;\n}\nexports.addSqlCommenterComment = addSqlCommenterComment;\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getConnectionPrototypeToInstrument = exports.once = exports.getSpanName = exports.getQueryText = exports.getConnectionAttributes = void 0;\nconst semconv_1 = require(\"./semconv\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\n/**\n * Get an Attributes map from a mysql connection config object\n *\n * @param config ConnectionConfig\n */\nfunction getConnectionAttributes(config, dbSemconvStability, netSemconvStability) {\n    const { host, port, database, user } = getConfig(config);\n    const attrs = {};\n    if (dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n        attrs[semconv_1.ATTR_DB_CONNECTION_STRING] = getJDBCString(host, port, database);\n        attrs[semconv_1.ATTR_DB_NAME] = database;\n        attrs[semconv_1.ATTR_DB_USER] = user;\n    }\n    if (dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n        attrs[semantic_conventions_1.ATTR_DB_NAMESPACE] = database;\n    }\n    const portNumber = parseInt(port, 10);\n    if (netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n        attrs[semconv_1.ATTR_NET_PEER_NAME] = host;\n        if (!isNaN(portNumber)) {\n            attrs[semconv_1.ATTR_NET_PEER_PORT] = portNumber;\n        }\n    }\n    if (netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n        attrs[semantic_conventions_1.ATTR_SERVER_ADDRESS] = host;\n        if (!isNaN(portNumber)) {\n            attrs[semantic_conventions_1.ATTR_SERVER_PORT] = portNumber;\n        }\n    }\n    return attrs;\n}\nexports.getConnectionAttributes = getConnectionAttributes;\nfunction getConfig(config) {\n    const { host, port, database, user } = (config && config.connectionConfig) || config || {};\n    return { host, port, database, user };\n}\nfunction getJDBCString(host, port, database) {\n    let jdbcString = `jdbc:mysql://${host || 'localhost'}`;\n    if (typeof port === 'number') {\n        jdbcString += `:${port}`;\n    }\n    if (typeof database === 'string') {\n        jdbcString += `/${database}`;\n    }\n    return jdbcString;\n}\n/**\n * Conjures up the value for the db.query.text attribute by formatting a SQL query.\n */\nfunction getQueryText(query, format, values, maskStatement = false, maskStatementHook = defaultMaskingHook) {\n    const [querySql, queryValues] = typeof query === 'string'\n        ? [query, values]\n        : [query.sql, hasValues(query) ? values || query.values : values];\n    try {\n        if (maskStatement) {\n            return maskStatementHook(querySql);\n        }\n        else if (format && queryValues) {\n            return format(querySql, queryValues);\n        }\n        else {\n            return querySql;\n        }\n    }\n    catch (e) {\n        return 'Could not determine the query due to an error in masking or formatting';\n    }\n}\nexports.getQueryText = getQueryText;\n/**\n * Replaces numeric values and quoted strings in the query with placeholders ('?').\n *\n * - `\\b\\d+\\b`: Matches whole numbers (integers) and replaces them with '?'.\n * - `([\"'])(?:(?=(\\\\?))\\2.)*?\\1`:\n *   - Matches quoted strings (both single `'` and double `\"` quotes).\n *   - Uses a lookahead `(?=(\\\\?))` to detect an optional backslash without consuming it immediately.\n *   - Captures the optional backslash `\\2` and ensures escaped quotes inside the string are handled correctly.\n *   - Ensures that only complete quoted strings are replaced with '?'.\n *\n * This prevents accidental replacement of escaped quotes within strings and ensures that the\n * query structure remains intact while masking sensitive data.\n */\nfunction defaultMaskingHook(query) {\n    return query\n        .replace(/\\b\\d+\\b/g, '?')\n        .replace(/([\"'])(?:(?=(\\\\?))\\2.)*?\\1/g, '?');\n}\nfunction hasValues(obj) {\n    return 'values' in obj;\n}\n/**\n * The span name SHOULD be set to a low cardinality value\n * representing the statement executed on the database.\n *\n * @returns SQL statement without variable arguments or SQL verb\n */\nfunction getSpanName(query) {\n    const rawQuery = typeof query === 'object' ? query.sql : query;\n    // Extract the SQL verb\n    const firstSpace = rawQuery?.indexOf(' ');\n    if (typeof firstSpace === 'number' && firstSpace !== -1) {\n        return rawQuery?.substring(0, firstSpace);\n    }\n    return rawQuery;\n}\nexports.getSpanName = getSpanName;\nconst once = (fn) => {\n    let called = false;\n    return (...args) => {\n        if (called)\n            return;\n        called = true;\n        return fn(...args);\n    };\n};\nexports.once = once;\nfunction getConnectionPrototypeToInstrument(connection) {\n    const connectionPrototype = connection.prototype;\n    const basePrototype = Object.getPrototypeOf(connectionPrototype);\n    // mysql2@3.11.5 included a refactoring, where most code was moved out of the `Connection` class and into a shared base\n    // so we need to instrument that instead, see https://github.com/sidorares/node-mysql2/pull/3081\n    // This checks if the functions we're instrumenting are there on the base - we cannot use the presence of a base\n    // prototype since EventEmitter is the base for mysql2@<=3.11.4\n    if (typeof basePrototype?.query === 'function' &&\n        typeof basePrototype?.execute === 'function') {\n        return basePrototype;\n    }\n    // otherwise instrument the connection directly.\n    return connectionPrototype;\n}\nexports.getConnectionPrototypeToInstrument = getConnectionPrototypeToInstrument;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.59.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-mysql2';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MySQL2Instrumentation = void 0;\nconst api = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semconv_1 = require(\"./semconv\");\nconst sql_common_1 = require(\"@opentelemetry/sql-common\");\nconst utils_1 = require(\"./utils\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst supportedVersions = ['>=1.4.2 <4'];\nclass MySQL2Instrumentation extends instrumentation_1.InstrumentationBase {\n    _netSemconvStability;\n    _dbSemconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._setSemconvStabilityFromEnv();\n    }\n    // Used for testing.\n    _setSemconvStabilityFromEnv() {\n        this._netSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n        this._dbSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    init() {\n        let format;\n        function setFormatFunction(moduleExports) {\n            if (!format && moduleExports.format) {\n                format = moduleExports.format;\n            }\n        }\n        const patch = (ConnectionPrototype) => {\n            if ((0, instrumentation_1.isWrapped)(ConnectionPrototype.query)) {\n                this._unwrap(ConnectionPrototype, 'query');\n            }\n            this._wrap(ConnectionPrototype, 'query', this._patchQuery(format, false));\n            if ((0, instrumentation_1.isWrapped)(ConnectionPrototype.execute)) {\n                this._unwrap(ConnectionPrototype, 'execute');\n            }\n            this._wrap(ConnectionPrototype, 'execute', this._patchQuery(format, true));\n        };\n        const unpatch = (ConnectionPrototype) => {\n            this._unwrap(ConnectionPrototype, 'query');\n            this._unwrap(ConnectionPrototype, 'execute');\n        };\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition('mysql2', supportedVersions, (moduleExports) => {\n                setFormatFunction(moduleExports);\n                return moduleExports;\n            }, () => { }, [\n                new instrumentation_1.InstrumentationNodeModuleFile('mysql2/promise.js', supportedVersions, (moduleExports) => {\n                    setFormatFunction(moduleExports);\n                    return moduleExports;\n                }, () => { }),\n                new instrumentation_1.InstrumentationNodeModuleFile('mysql2/lib/connection.js', supportedVersions, (moduleExports) => {\n                    const ConnectionPrototype = (0, utils_1.getConnectionPrototypeToInstrument)(moduleExports);\n                    patch(ConnectionPrototype);\n                    return moduleExports;\n                }, (moduleExports) => {\n                    if (moduleExports === undefined)\n                        return;\n                    const ConnectionPrototype = (0, utils_1.getConnectionPrototypeToInstrument)(moduleExports);\n                    unpatch(ConnectionPrototype);\n                }),\n            ]),\n        ];\n    }\n    _patchQuery(format, isPrepared) {\n        return (originalQuery) => {\n            const thisPlugin = this;\n            return function query(query, _valuesOrCallback, _callback) {\n                let values;\n                if (Array.isArray(_valuesOrCallback)) {\n                    values = _valuesOrCallback;\n                }\n                else if (arguments[2]) {\n                    values = [_valuesOrCallback];\n                }\n                const { maskStatement, maskStatementHook, responseHook } = thisPlugin.getConfig();\n                const attributes = (0, utils_1.getConnectionAttributes)(this.config, thisPlugin._dbSemconvStability, thisPlugin._netSemconvStability);\n                const dbQueryText = (0, utils_1.getQueryText)(query, format, values, maskStatement, maskStatementHook);\n                if (thisPlugin._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_DB_SYSTEM] = semconv_1.DB_SYSTEM_VALUE_MYSQL;\n                    attributes[semconv_1.ATTR_DB_STATEMENT] = dbQueryText;\n                }\n                if (thisPlugin._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    attributes[semantic_conventions_1.ATTR_DB_SYSTEM_NAME] = semantic_conventions_1.DB_SYSTEM_NAME_VALUE_MYSQL;\n                    attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = dbQueryText;\n                }\n                const span = thisPlugin.tracer.startSpan((0, utils_1.getSpanName)(query), {\n                    kind: api.SpanKind.CLIENT,\n                    attributes,\n                });\n                if (!isPrepared &&\n                    thisPlugin.getConfig().addSqlCommenterCommentToQueries) {\n                    arguments[0] = query =\n                        typeof query === 'string'\n                            ? (0, sql_common_1.addSqlCommenterComment)(span, query)\n                            : Object.assign(query, {\n                                sql: (0, sql_common_1.addSqlCommenterComment)(span, query.sql),\n                            });\n                }\n                const endSpan = (0, utils_1.once)((err, results) => {\n                    if (err) {\n                        span.setStatus({\n                            code: api.SpanStatusCode.ERROR,\n                            message: err.message,\n                        });\n                    }\n                    else {\n                        if (typeof responseHook === 'function') {\n                            (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                                responseHook(span, {\n                                    queryResults: results,\n                                });\n                            }, err => {\n                                if (err) {\n                                    thisPlugin._diag.warn('Failed executing responseHook', err);\n                                }\n                            }, true);\n                        }\n                    }\n                    span.end();\n                });\n                if (arguments.length === 1) {\n                    if (typeof query.onResult === 'function') {\n                        thisPlugin._wrap(query, 'onResult', thisPlugin._patchCallbackQuery(endSpan));\n                    }\n                    const streamableQuery = originalQuery.apply(this, arguments);\n                    // `end` in mysql behaves similarly to `result` in mysql2.\n                    streamableQuery\n                        .once('error', err => {\n                        endSpan(err);\n                    })\n                        .once('result', results => {\n                        endSpan(undefined, results);\n                    });\n                    return streamableQuery;\n                }\n                if (typeof arguments[1] === 'function') {\n                    thisPlugin._wrap(arguments, 1, thisPlugin._patchCallbackQuery(endSpan));\n                }\n                else if (typeof arguments[2] === 'function') {\n                    thisPlugin._wrap(arguments, 2, thisPlugin._patchCallbackQuery(endSpan));\n                }\n                return originalQuery.apply(this, arguments);\n            };\n        };\n    }\n    _patchCallbackQuery(endSpan) {\n        return (originalCallback) => {\n            return function (err, results, fields) {\n                endSpan(err, results);\n                return originalCallback(...arguments);\n            };\n        };\n    }\n}\nexports.MySQL2Instrumentation = MySQL2Instrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MySQL2Instrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"MySQL2Instrumentation\", { enumerable: true, get: function () { return instrumentation_1.MySQL2Instrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DB_SYSTEM_VALUE_REDIS = exports.DB_SYSTEM_NAME_VALUE_REDIS = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_CONNECTION_STRING = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexports.ATTR_DB_CONNECTION_STRING = 'db.connection_string';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [Redis](https://redis.io/)\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_NAME_VALUE_REDIS = 'redis';\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * Redis\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_VALUE_REDIS = 'redis';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.endSpan = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst endSpan = (span, err) => {\n    if (err) {\n        span.recordException(err);\n        span.setStatus({\n            code: api_1.SpanStatusCode.ERROR,\n            message: err.message,\n        });\n    }\n    span.end();\n};\nexports.endSpan = endSpan;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultDbStatementSerializer = void 0;\n/**\n * List of regexes and the number of arguments that should be serialized for matching commands.\n * For example, HSET should serialize which key and field it's operating on, but not its value.\n * Setting the subset to -1 will serialize all arguments.\n * Commands without a match will have their first argument serialized.\n *\n * Refer to https://redis.io/commands/ for the full list.\n */\nconst serializationSubsets = [\n    {\n        regex: /^ECHO/i,\n        args: 0,\n    },\n    {\n        regex: /^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,\n        args: 1,\n    },\n    {\n        regex: /^(HSET|HMSET|LSET|LINSERT)/i,\n        args: 2,\n    },\n    {\n        regex: /^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,\n        args: -1,\n    },\n];\n/**\n * Given the redis command name and arguments, return a combination of the\n * command name + the allowed arguments according to `serializationSubsets`.\n * @param cmdName The redis command name\n * @param cmdArgs The redis command arguments\n * @returns a combination of the command name + args according to `serializationSubsets`.\n */\nconst defaultDbStatementSerializer = (cmdName, cmdArgs) => {\n    if (Array.isArray(cmdArgs) && cmdArgs.length) {\n        const nArgsToSerialize = serializationSubsets.find(({ regex }) => {\n            return regex.test(cmdName);\n        })?.args ?? 0;\n        const argsToSerialize = nArgsToSerialize >= 0 ? cmdArgs.slice(0, nArgsToSerialize) : cmdArgs;\n        if (cmdArgs.length > argsToSerialize.length) {\n            argsToSerialize.push(`[${cmdArgs.length - nArgsToSerialize} other arguments]`);\n        }\n        return `${cmdName} ${argsToSerialize.join(' ')}`;\n    }\n    return cmdName;\n};\nexports.defaultDbStatementSerializer = defaultDbStatementSerializer;\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.61.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-ioredis';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IORedisInstrumentation = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst instrumentation_2 = require(\"@opentelemetry/instrumentation\");\nconst utils_1 = require(\"./utils\");\nconst redis_common_1 = require(\"@opentelemetry/redis-common\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst DEFAULT_CONFIG = {\n    requireParentSpan: true,\n};\nclass IORedisInstrumentation extends instrumentation_1.InstrumentationBase {\n    _netSemconvStability;\n    _dbSemconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, { ...DEFAULT_CONFIG, ...config });\n        this._setSemconvStabilityFromEnv();\n    }\n    // Used for testing.\n    _setSemconvStabilityFromEnv() {\n        this._netSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n        this._dbSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    setConfig(config = {}) {\n        super.setConfig({ ...DEFAULT_CONFIG, ...config });\n    }\n    init() {\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition('ioredis', ['>=2.0.0 <6'], (module, moduleVersion) => {\n                const moduleExports = module[Symbol.toStringTag] === 'Module'\n                    ? module.default // ESM\n                    : module; // CommonJS\n                if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.sendCommand)) {\n                    this._unwrap(moduleExports.prototype, 'sendCommand');\n                }\n                this._wrap(moduleExports.prototype, 'sendCommand', this._patchSendCommand(moduleVersion));\n                if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.connect)) {\n                    this._unwrap(moduleExports.prototype, 'connect');\n                }\n                this._wrap(moduleExports.prototype, 'connect', this._patchConnection());\n                return module;\n            }, module => {\n                if (module === undefined)\n                    return;\n                const moduleExports = module[Symbol.toStringTag] === 'Module'\n                    ? module.default // ESM\n                    : module; // CommonJS\n                this._unwrap(moduleExports.prototype, 'sendCommand');\n                this._unwrap(moduleExports.prototype, 'connect');\n            }),\n        ];\n    }\n    /**\n     * Patch send command internal to trace requests\n     */\n    _patchSendCommand(moduleVersion) {\n        return (original) => {\n            return this._traceSendCommand(original, moduleVersion);\n        };\n    }\n    _patchConnection() {\n        return (original) => {\n            return this._traceConnection(original);\n        };\n    }\n    _traceSendCommand(original, moduleVersion) {\n        const instrumentation = this;\n        return function (cmd) {\n            if (arguments.length < 1 || typeof cmd !== 'object') {\n                return original.apply(this, arguments);\n            }\n            const config = instrumentation.getConfig();\n            const dbStatementSerializer = config.dbStatementSerializer || redis_common_1.defaultDbStatementSerializer;\n            const hasNoParentSpan = api_1.trace.getSpan(api_1.context.active()) === undefined;\n            if (config.requireParentSpan === true && hasNoParentSpan) {\n                return original.apply(this, arguments);\n            }\n            const attributes = {};\n            const { host, port } = this.options;\n            const dbQueryText = dbStatementSerializer(cmd.name, cmd.args);\n            if (instrumentation._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                attributes[semconv_1.ATTR_DB_SYSTEM] = semconv_1.DB_SYSTEM_VALUE_REDIS;\n                attributes[semconv_1.ATTR_DB_STATEMENT] = dbQueryText;\n                attributes[semconv_1.ATTR_DB_CONNECTION_STRING] = `redis://${host}:${port}`;\n            }\n            if (instrumentation._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                attributes[semantic_conventions_1.ATTR_DB_SYSTEM_NAME] = semconv_1.DB_SYSTEM_NAME_VALUE_REDIS;\n                attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = dbQueryText;\n            }\n            if (instrumentation._netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                attributes[semconv_1.ATTR_NET_PEER_NAME] = host;\n                attributes[semconv_1.ATTR_NET_PEER_PORT] = port;\n            }\n            if (instrumentation._netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                attributes[semantic_conventions_1.ATTR_SERVER_ADDRESS] = host;\n                attributes[semantic_conventions_1.ATTR_SERVER_PORT] = port;\n            }\n            const span = instrumentation.tracer.startSpan(cmd.name, {\n                kind: api_1.SpanKind.CLIENT,\n                attributes,\n            });\n            const { requestHook } = config;\n            if (requestHook) {\n                (0, instrumentation_2.safeExecuteInTheMiddle)(() => requestHook(span, {\n                    moduleVersion,\n                    cmdName: cmd.name,\n                    cmdArgs: cmd.args,\n                }), e => {\n                    if (e) {\n                        api_1.diag.error('ioredis instrumentation: request hook failed', e);\n                    }\n                }, true);\n            }\n            try {\n                const result = original.apply(this, arguments);\n                const origResolve = cmd.resolve;\n                /* eslint-disable @typescript-eslint/no-explicit-any */\n                cmd.resolve = function (result) {\n                    (0, instrumentation_2.safeExecuteInTheMiddle)(() => config.responseHook?.(span, cmd.name, cmd.args, result), e => {\n                        if (e) {\n                            api_1.diag.error('ioredis instrumentation: response hook failed', e);\n                        }\n                    }, true);\n                    (0, utils_1.endSpan)(span, null);\n                    origResolve(result);\n                };\n                const origReject = cmd.reject;\n                cmd.reject = function (err) {\n                    (0, utils_1.endSpan)(span, err);\n                    origReject(err);\n                };\n                return result;\n            }\n            catch (error) {\n                (0, utils_1.endSpan)(span, error);\n                throw error;\n            }\n        };\n    }\n    _traceConnection(original) {\n        const instrumentation = this;\n        return function () {\n            const hasNoParentSpan = api_1.trace.getSpan(api_1.context.active()) === undefined;\n            if (instrumentation.getConfig().requireParentSpan === true &&\n                hasNoParentSpan) {\n                return original.apply(this, arguments);\n            }\n            const attributes = {};\n            const { host, port } = this.options;\n            if (instrumentation._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                attributes[semconv_1.ATTR_DB_SYSTEM] = semconv_1.DB_SYSTEM_VALUE_REDIS;\n                attributes[semconv_1.ATTR_DB_STATEMENT] = 'connect';\n                attributes[semconv_1.ATTR_DB_CONNECTION_STRING] = `redis://${host}:${port}`;\n            }\n            if (instrumentation._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                attributes[semantic_conventions_1.ATTR_DB_SYSTEM_NAME] = semconv_1.DB_SYSTEM_NAME_VALUE_REDIS;\n                attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = 'connect';\n            }\n            if (instrumentation._netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                attributes[semconv_1.ATTR_NET_PEER_NAME] = host;\n                attributes[semconv_1.ATTR_NET_PEER_PORT] = port;\n            }\n            if (instrumentation._netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                attributes[semantic_conventions_1.ATTR_SERVER_ADDRESS] = host;\n                attributes[semantic_conventions_1.ATTR_SERVER_PORT] = port;\n            }\n            const span = instrumentation.tracer.startSpan('connect', {\n                kind: api_1.SpanKind.CLIENT,\n                attributes,\n            });\n            try {\n                const client = original.apply(this, arguments);\n                (0, utils_1.endSpan)(span, null);\n                return client;\n            }\n            catch (error) {\n                (0, utils_1.endSpan)(span, error);\n                throw error;\n            }\n        };\n    }\n}\nexports.IORedisInstrumentation = IORedisInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IORedisInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"IORedisInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.IORedisInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.61.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-redis';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTracedCreateStreamTrace = exports.getTracedCreateClient = exports.endSpan = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst endSpan = (span, err) => {\n    if (err) {\n        span.setStatus({\n            code: api_1.SpanStatusCode.ERROR,\n            message: err.message,\n        });\n    }\n    span.end();\n};\nexports.endSpan = endSpan;\nconst getTracedCreateClient = (original) => {\n    return function createClientTrace() {\n        const client = original.apply(this, arguments);\n        return api_1.context.bind(api_1.context.active(), client);\n    };\n};\nexports.getTracedCreateClient = getTracedCreateClient;\nconst getTracedCreateStreamTrace = (original) => {\n    return function create_stream_trace() {\n        if (!Object.prototype.hasOwnProperty.call(this, 'stream')) {\n            Object.defineProperty(this, 'stream', {\n                get() {\n                    return this._patched_redis_stream;\n                },\n                set(val) {\n                    api_1.context.bind(api_1.context.active(), val);\n                    this._patched_redis_stream = val;\n                },\n            });\n        }\n        return original.apply(this, arguments);\n    };\n};\nexports.getTracedCreateStreamTrace = getTracedCreateStreamTrace;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DB_SYSTEM_VALUE_REDIS = exports.DB_SYSTEM_NAME_VALUE_REDIS = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_CONNECTION_STRING = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexports.ATTR_DB_CONNECTION_STRING = 'db.connection_string';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [Redis](https://redis.io/)\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_NAME_VALUE_REDIS = 'redis';\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * Redis\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_VALUE_REDIS = 'redis';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RedisInstrumentationV2_V3 = void 0;\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst utils_1 = require(\"./utils\");\n/** @knipignore */\nconst version_1 = require(\"../version\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"../semconv\");\nconst redis_common_1 = require(\"@opentelemetry/redis-common\");\nclass RedisInstrumentationV2_V3 extends instrumentation_1.InstrumentationBase {\n    static COMPONENT = 'redis';\n    _semconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._semconvStability = config.semconvStability\n            ? config.semconvStability\n            : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    setConfig(config = {}) {\n        super.setConfig(config);\n        this._semconvStability = config.semconvStability\n            ? config.semconvStability\n            : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    init() {\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition('redis', ['>=2.6.0 <4'], moduleExports => {\n                if ((0, instrumentation_1.isWrapped)(moduleExports.RedisClient.prototype['internal_send_command'])) {\n                    this._unwrap(moduleExports.RedisClient.prototype, 'internal_send_command');\n                }\n                this._wrap(moduleExports.RedisClient.prototype, 'internal_send_command', this._getPatchInternalSendCommand());\n                if ((0, instrumentation_1.isWrapped)(moduleExports.RedisClient.prototype['create_stream'])) {\n                    this._unwrap(moduleExports.RedisClient.prototype, 'create_stream');\n                }\n                this._wrap(moduleExports.RedisClient.prototype, 'create_stream', this._getPatchCreateStream());\n                if ((0, instrumentation_1.isWrapped)(moduleExports.createClient)) {\n                    this._unwrap(moduleExports, 'createClient');\n                }\n                this._wrap(moduleExports, 'createClient', this._getPatchCreateClient());\n                return moduleExports;\n            }, moduleExports => {\n                if (moduleExports === undefined)\n                    return;\n                this._unwrap(moduleExports.RedisClient.prototype, 'internal_send_command');\n                this._unwrap(moduleExports.RedisClient.prototype, 'create_stream');\n                this._unwrap(moduleExports, 'createClient');\n            }),\n        ];\n    }\n    /**\n     * Patch internal_send_command(...) to trace requests\n     */\n    _getPatchInternalSendCommand() {\n        const instrumentation = this;\n        return function internal_send_command(original) {\n            return function internal_send_command_trace(cmd) {\n                // Versions of redis (2.4+) use a single options object\n                // instead of named arguments\n                if (arguments.length !== 1 || typeof cmd !== 'object') {\n                    // We don't know how to trace this call, so don't start/stop a span\n                    return original.apply(this, arguments);\n                }\n                const config = instrumentation.getConfig();\n                const hasNoParentSpan = api_1.trace.getSpan(api_1.context.active()) === undefined;\n                if (config.requireParentSpan === true && hasNoParentSpan) {\n                    return original.apply(this, arguments);\n                }\n                const dbStatementSerializer = config?.dbStatementSerializer || redis_common_1.defaultDbStatementSerializer;\n                const attributes = {};\n                if (instrumentation._semconvStability & instrumentation_1.SemconvStability.OLD) {\n                    Object.assign(attributes, {\n                        [semconv_1.ATTR_DB_SYSTEM]: semconv_1.DB_SYSTEM_VALUE_REDIS,\n                        [semconv_1.ATTR_DB_STATEMENT]: dbStatementSerializer(cmd.command, cmd.args),\n                    });\n                }\n                if (instrumentation._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    Object.assign(attributes, {\n                        [semantic_conventions_1.ATTR_DB_SYSTEM_NAME]: semconv_1.DB_SYSTEM_NAME_VALUE_REDIS,\n                        [semantic_conventions_1.ATTR_DB_OPERATION_NAME]: cmd.command,\n                        [semantic_conventions_1.ATTR_DB_QUERY_TEXT]: dbStatementSerializer(cmd.command, cmd.args),\n                    });\n                }\n                const span = instrumentation.tracer.startSpan(`${RedisInstrumentationV2_V3.COMPONENT}-${cmd.command}`, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes,\n                });\n                // Set attributes for not explicitly typed RedisPluginClientTypes\n                if (this.connection_options) {\n                    const connectionAttributes = {};\n                    if (instrumentation._semconvStability & instrumentation_1.SemconvStability.OLD) {\n                        Object.assign(connectionAttributes, {\n                            [semconv_1.ATTR_NET_PEER_NAME]: this.connection_options.host,\n                            [semconv_1.ATTR_NET_PEER_PORT]: this.connection_options.port,\n                        });\n                    }\n                    if (instrumentation._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n                        Object.assign(connectionAttributes, {\n                            [semantic_conventions_1.ATTR_SERVER_ADDRESS]: this.connection_options.host,\n                            [semantic_conventions_1.ATTR_SERVER_PORT]: this.connection_options.port,\n                        });\n                    }\n                    span.setAttributes(connectionAttributes);\n                }\n                if (this.address &&\n                    instrumentation._semconvStability & instrumentation_1.SemconvStability.OLD) {\n                    span.setAttribute(semconv_1.ATTR_DB_CONNECTION_STRING, `redis://${this.address}`);\n                }\n                const originalCallback = arguments[0].callback;\n                if (originalCallback) {\n                    const originalContext = api_1.context.active();\n                    arguments[0].callback = function callback(err, reply) {\n                        if (config?.responseHook) {\n                            const responseHook = config.responseHook;\n                            (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                                responseHook(span, cmd.command, cmd.args, reply);\n                            }, err => {\n                                if (err) {\n                                    instrumentation._diag.error('Error executing responseHook', err);\n                                }\n                            }, true);\n                        }\n                        (0, utils_1.endSpan)(span, err);\n                        return api_1.context.with(originalContext, originalCallback, this, ...arguments);\n                    };\n                }\n                try {\n                    // Span will be ended in callback\n                    return original.apply(this, arguments);\n                }\n                catch (rethrow) {\n                    (0, utils_1.endSpan)(span, rethrow);\n                    throw rethrow; // rethrow after ending span\n                }\n            };\n        };\n    }\n    _getPatchCreateClient() {\n        return function createClient(original) {\n            return (0, utils_1.getTracedCreateClient)(original);\n        };\n    }\n    _getPatchCreateStream() {\n        return function createReadStream(original) {\n            return (0, utils_1.getTracedCreateStreamTrace)(original);\n        };\n    }\n}\nexports.RedisInstrumentationV2_V3 = RedisInstrumentationV2_V3;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getClientAttributes = void 0;\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"../semconv\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nfunction getClientAttributes(diag, options, semconvStability) {\n    const attributes = {};\n    if (semconvStability & instrumentation_1.SemconvStability.OLD) {\n        Object.assign(attributes, {\n            [semconv_1.ATTR_DB_SYSTEM]: semconv_1.DB_SYSTEM_VALUE_REDIS,\n            [semconv_1.ATTR_NET_PEER_NAME]: options?.socket?.host,\n            [semconv_1.ATTR_NET_PEER_PORT]: options?.socket?.port,\n            [semconv_1.ATTR_DB_CONNECTION_STRING]: removeCredentialsFromDBConnectionStringAttribute(diag, options?.url),\n        });\n    }\n    if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n        Object.assign(attributes, {\n            [semantic_conventions_1.ATTR_DB_SYSTEM_NAME]: semconv_1.DB_SYSTEM_NAME_VALUE_REDIS,\n            [semantic_conventions_1.ATTR_SERVER_ADDRESS]: options?.socket?.host,\n            [semantic_conventions_1.ATTR_SERVER_PORT]: options?.socket?.port,\n        });\n    }\n    return attributes;\n}\nexports.getClientAttributes = getClientAttributes;\n/**\n * removeCredentialsFromDBConnectionStringAttribute removes basic auth from url and user_pwd from query string\n *\n * Examples:\n *   redis://user:pass@localhost:6379/mydb => redis://localhost:6379/mydb\n *   redis://localhost:6379?db=mydb&user_pwd=pass => redis://localhost:6379?db=mydb\n */\nfunction removeCredentialsFromDBConnectionStringAttribute(diag, url) {\n    if (typeof url !== 'string' || !url) {\n        return;\n    }\n    try {\n        const u = new URL(url);\n        u.searchParams.delete('user_pwd');\n        u.username = '';\n        u.password = '';\n        return u.href;\n    }\n    catch (err) {\n        diag.error('failed to sanitize redis connection url', err);\n    }\n    return;\n}\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RedisInstrumentationV4_V5 = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst utils_1 = require(\"./utils\");\nconst redis_common_1 = require(\"@opentelemetry/redis-common\");\n/** @knipignore */\nconst version_1 = require(\"../version\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"../semconv\");\nconst OTEL_OPEN_SPANS = Symbol('opentelemetry.instrumentation.redis.open_spans');\nconst MULTI_COMMAND_OPTIONS = Symbol('opentelemetry.instrumentation.redis.multi_command_options');\nclass RedisInstrumentationV4_V5 extends instrumentation_1.InstrumentationBase {\n    static COMPONENT = 'redis';\n    _semconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._semconvStability = config.semconvStability\n            ? config.semconvStability\n            : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    setConfig(config = {}) {\n        super.setConfig(config);\n        this._semconvStability = config.semconvStability\n            ? config.semconvStability\n            : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    init() {\n        // @node-redis/client is a new package introduced and consumed by 'redis 4.0.x'\n        // on redis@4.1.0 it was changed to @redis/client.\n        // we will instrument both packages\n        return [\n            this._getInstrumentationNodeModuleDefinition('@redis/client'),\n            this._getInstrumentationNodeModuleDefinition('@node-redis/client'),\n        ];\n    }\n    _getInstrumentationNodeModuleDefinition(basePackageName) {\n        const commanderModuleFile = new instrumentation_1.InstrumentationNodeModuleFile(`${basePackageName}/dist/lib/commander.js`, ['^1.0.0'], (moduleExports, moduleVersion) => {\n            const transformCommandArguments = moduleExports.transformCommandArguments;\n            if (!transformCommandArguments) {\n                this._diag.error('internal instrumentation error, missing transformCommandArguments function');\n                return moduleExports;\n            }\n            // function name and signature changed in redis 4.1.0 from 'extendWithCommands' to 'attachCommands'\n            // the matching internal package names starts with 1.0.x (for redis 4.0.x)\n            const functionToPatch = moduleVersion?.startsWith('1.0.')\n                ? 'extendWithCommands'\n                : 'attachCommands';\n            // this is the function that extend a redis client with a list of commands.\n            // the function patches the commandExecutor to record a span\n            if ((0, instrumentation_1.isWrapped)(moduleExports?.[functionToPatch])) {\n                this._unwrap(moduleExports, functionToPatch);\n            }\n            this._wrap(moduleExports, functionToPatch, this._getPatchExtendWithCommands(transformCommandArguments));\n            return moduleExports;\n        }, (moduleExports) => {\n            if ((0, instrumentation_1.isWrapped)(moduleExports?.extendWithCommands)) {\n                this._unwrap(moduleExports, 'extendWithCommands');\n            }\n            if ((0, instrumentation_1.isWrapped)(moduleExports?.attachCommands)) {\n                this._unwrap(moduleExports, 'attachCommands');\n            }\n        });\n        const multiCommanderModule = new instrumentation_1.InstrumentationNodeModuleFile(`${basePackageName}/dist/lib/client/multi-command.js`, ['^1.0.0', '^5.0.0'], (moduleExports) => {\n            const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n            if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.exec)) {\n                this._unwrap(redisClientMultiCommandPrototype, 'exec');\n            }\n            this._wrap(redisClientMultiCommandPrototype, 'exec', this._getPatchMultiCommandsExec(false));\n            if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.execAsPipeline)) {\n                this._unwrap(redisClientMultiCommandPrototype, 'execAsPipeline');\n            }\n            this._wrap(redisClientMultiCommandPrototype, 'execAsPipeline', this._getPatchMultiCommandsExec(true));\n            if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.addCommand)) {\n                this._unwrap(redisClientMultiCommandPrototype, 'addCommand');\n            }\n            this._wrap(redisClientMultiCommandPrototype, 'addCommand', this._getPatchMultiCommandsAddCommand());\n            return moduleExports;\n        }, (moduleExports) => {\n            const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n            if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.exec)) {\n                this._unwrap(redisClientMultiCommandPrototype, 'exec');\n            }\n            if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.addCommand)) {\n                this._unwrap(redisClientMultiCommandPrototype, 'addCommand');\n            }\n        });\n        const clientIndexModule = new instrumentation_1.InstrumentationNodeModuleFile(`${basePackageName}/dist/lib/client/index.js`, ['^1.0.0', '^5.0.0'], (moduleExports) => {\n            const redisClientPrototype = moduleExports?.default?.prototype;\n            // In some @redis/client versions 'multi' is a method. In later\n            // versions, as of https://github.com/redis/node-redis/pull/2324,\n            // 'MULTI' is a method and 'multi' is a property defined in the\n            // constructor that points to 'MULTI', and therefore it will not\n            // be defined on the prototype.\n            if (redisClientPrototype?.multi) {\n                if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.multi)) {\n                    this._unwrap(redisClientPrototype, 'multi');\n                }\n                this._wrap(redisClientPrototype, 'multi', this._getPatchRedisClientMulti());\n            }\n            if (redisClientPrototype?.MULTI) {\n                if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.MULTI)) {\n                    this._unwrap(redisClientPrototype, 'MULTI');\n                }\n                this._wrap(redisClientPrototype, 'MULTI', this._getPatchRedisClientMulti());\n            }\n            if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.sendCommand)) {\n                this._unwrap(redisClientPrototype, 'sendCommand');\n            }\n            this._wrap(redisClientPrototype, 'sendCommand', this._getPatchRedisClientSendCommand());\n            this._wrap(redisClientPrototype, 'connect', this._getPatchedClientConnect());\n            return moduleExports;\n        }, (moduleExports) => {\n            const redisClientPrototype = moduleExports?.default?.prototype;\n            if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.multi)) {\n                this._unwrap(redisClientPrototype, 'multi');\n            }\n            if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.MULTI)) {\n                this._unwrap(redisClientPrototype, 'MULTI');\n            }\n            if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.sendCommand)) {\n                this._unwrap(redisClientPrototype, 'sendCommand');\n            }\n        });\n        return new instrumentation_1.InstrumentationNodeModuleDefinition(basePackageName, ['^1.0.0', '^5.0.0'], (moduleExports) => {\n            return moduleExports;\n        }, () => { }, [commanderModuleFile, multiCommanderModule, clientIndexModule]);\n    }\n    // serves both for redis 4.0.x where function name is extendWithCommands\n    // and redis ^4.1.0 where function name is attachCommands\n    _getPatchExtendWithCommands(transformCommandArguments) {\n        const plugin = this;\n        return function extendWithCommandsPatchWrapper(original) {\n            return function extendWithCommandsPatch(config) {\n                if (config?.BaseClass?.name !== 'RedisClient') {\n                    return original.apply(this, arguments);\n                }\n                const origExecutor = config.executor;\n                config.executor = function (command, args) {\n                    const redisCommandArguments = transformCommandArguments(command, args).args;\n                    return plugin._traceClientCommand(origExecutor, this, arguments, redisCommandArguments);\n                };\n                return original.apply(this, arguments);\n            };\n        };\n    }\n    _getPatchMultiCommandsExec(isPipeline) {\n        const plugin = this;\n        return function execPatchWrapper(original) {\n            return function execPatch() {\n                const execRes = original.apply(this, arguments);\n                if (typeof execRes?.then !== 'function') {\n                    plugin._diag.error('non-promise result when patching exec/execAsPipeline');\n                    return execRes;\n                }\n                return execRes\n                    .then((redisRes) => {\n                    const openSpans = this[OTEL_OPEN_SPANS];\n                    plugin._endSpansWithRedisReplies(openSpans, redisRes, isPipeline);\n                    return redisRes;\n                })\n                    .catch((err) => {\n                    const openSpans = this[OTEL_OPEN_SPANS];\n                    if (!openSpans) {\n                        plugin._diag.error('cannot find open spans to end for multi/pipeline');\n                    }\n                    else {\n                        const replies = err.constructor.name === 'MultiErrorReply'\n                            ? err.replies\n                            : new Array(openSpans.length).fill(err);\n                        plugin._endSpansWithRedisReplies(openSpans, replies, isPipeline);\n                    }\n                    return Promise.reject(err);\n                });\n            };\n        };\n    }\n    _getPatchMultiCommandsAddCommand() {\n        const plugin = this;\n        return function addCommandWrapper(original) {\n            return function addCommandPatch(args) {\n                return plugin._traceClientCommand(original, this, arguments, args);\n            };\n        };\n    }\n    _getPatchRedisClientMulti() {\n        return function multiPatchWrapper(original) {\n            return function multiPatch() {\n                const multiRes = original.apply(this, arguments);\n                multiRes[MULTI_COMMAND_OPTIONS] = this.options;\n                return multiRes;\n            };\n        };\n    }\n    _getPatchRedisClientSendCommand() {\n        const plugin = this;\n        return function sendCommandWrapper(original) {\n            return function sendCommandPatch(args) {\n                return plugin._traceClientCommand(original, this, arguments, args);\n            };\n        };\n    }\n    _getPatchedClientConnect() {\n        const plugin = this;\n        return function connectWrapper(original) {\n            return function patchedConnect() {\n                const options = this.options;\n                const attributes = (0, utils_1.getClientAttributes)(plugin._diag, options, plugin._semconvStability);\n                const span = plugin.tracer.startSpan(`${RedisInstrumentationV4_V5.COMPONENT}-connect`, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes,\n                });\n                const res = api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n                    return original.apply(this);\n                });\n                return res\n                    .then((result) => {\n                    span.end();\n                    return result;\n                })\n                    .catch((error) => {\n                    span.recordException(error);\n                    span.setStatus({\n                        code: api_1.SpanStatusCode.ERROR,\n                        message: error.message,\n                    });\n                    span.end();\n                    return Promise.reject(error);\n                });\n            };\n        };\n    }\n    _traceClientCommand(origFunction, origThis, origArguments, redisCommandArguments) {\n        const hasNoParentSpan = api_1.trace.getSpan(api_1.context.active()) === undefined;\n        if (hasNoParentSpan && this.getConfig().requireParentSpan) {\n            return origFunction.apply(origThis, origArguments);\n        }\n        const clientOptions = origThis.options || origThis[MULTI_COMMAND_OPTIONS];\n        const commandName = redisCommandArguments[0]; // types also allows it to be a Buffer, but in practice it only string\n        const commandArgs = redisCommandArguments.slice(1);\n        const dbStatementSerializer = this.getConfig().dbStatementSerializer || redis_common_1.defaultDbStatementSerializer;\n        const attributes = (0, utils_1.getClientAttributes)(this._diag, clientOptions, this._semconvStability);\n        if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n            attributes[semantic_conventions_1.ATTR_DB_OPERATION_NAME] = commandName;\n        }\n        try {\n            const dbStatement = dbStatementSerializer(commandName, commandArgs);\n            if (dbStatement != null) {\n                if (this._semconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_DB_STATEMENT] = dbStatement;\n                }\n                if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = dbStatement;\n                }\n            }\n        }\n        catch (e) {\n            this._diag.error('dbStatementSerializer throw an exception', e, {\n                commandName,\n            });\n        }\n        const span = this.tracer.startSpan(`${RedisInstrumentationV4_V5.COMPONENT}-${commandName}`, {\n            kind: api_1.SpanKind.CLIENT,\n            attributes,\n        });\n        const res = api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n            return origFunction.apply(origThis, origArguments);\n        });\n        if (typeof res?.then === 'function') {\n            res.then((redisRes) => {\n                this._endSpanWithResponse(span, commandName, commandArgs, redisRes, undefined);\n            }, (err) => {\n                this._endSpanWithResponse(span, commandName, commandArgs, null, err);\n            });\n        }\n        else {\n            const redisClientMultiCommand = res;\n            redisClientMultiCommand[OTEL_OPEN_SPANS] =\n                redisClientMultiCommand[OTEL_OPEN_SPANS] || [];\n            redisClientMultiCommand[OTEL_OPEN_SPANS].push({\n                span,\n                commandName,\n                commandArgs,\n            });\n        }\n        return res;\n    }\n    _endSpansWithRedisReplies(openSpans, replies, isPipeline = false) {\n        if (!openSpans) {\n            return this._diag.error('cannot find open spans to end for redis multi/pipeline');\n        }\n        if (replies.length !== openSpans.length) {\n            return this._diag.error('number of multi command spans does not match response from redis');\n        }\n        // Determine a single operation name for the batch of commands.\n        // If all commands are identical, include the command name (e.g., \"MULTI SET\").\n        // Otherwise, use a generic \"MULTI\" or \"PIPELINE\" label for the span.\n        const allCommands = openSpans.map(s => s.commandName);\n        const allSameCommand = allCommands.every(cmd => cmd === allCommands[0]);\n        const operationName = allSameCommand\n            ? (isPipeline ? 'PIPELINE ' : 'MULTI ') + allCommands[0]\n            : isPipeline\n                ? 'PIPELINE'\n                : 'MULTI';\n        for (let i = 0; i < openSpans.length; i++) {\n            const { span, commandArgs } = openSpans[i];\n            const currCommandRes = replies[i];\n            const [res, err] = currCommandRes instanceof Error\n                ? [null, currCommandRes]\n                : [currCommandRes, undefined];\n            if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n                span.setAttribute(semantic_conventions_1.ATTR_DB_OPERATION_NAME, operationName);\n            }\n            this._endSpanWithResponse(span, allCommands[i], commandArgs, res, err);\n        }\n    }\n    _endSpanWithResponse(span, commandName, commandArgs, response, error) {\n        const { responseHook } = this.getConfig();\n        if (!error && responseHook) {\n            try {\n                responseHook(span, commandName, commandArgs, response);\n            }\n            catch (err) {\n                this._diag.error('responseHook throw an exception', err);\n            }\n        }\n        if (error) {\n            span.recordException(error);\n            span.setStatus({ code: api_1.SpanStatusCode.ERROR, message: error?.message });\n        }\n        span.end();\n    }\n}\nexports.RedisInstrumentationV4_V5 = RedisInstrumentationV4_V5;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RedisInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst instrumentation_2 = require(\"./v2-v3/instrumentation\");\nconst instrumentation_3 = require(\"./v4-v5/instrumentation\");\nconst DEFAULT_CONFIG = {\n    requireParentSpan: false,\n};\n// Wrapper RedisInstrumentation that address all supported versions\nclass RedisInstrumentation extends instrumentation_1.InstrumentationBase {\n    instrumentationV2_V3;\n    instrumentationV4_V5;\n    // this is used to bypass a flaw in the base class constructor, which is calling\n    // member functions before the constructor has a chance to fully initialize the member variables.\n    initialized = false;\n    constructor(config = {}) {\n        const resolvedConfig = { ...DEFAULT_CONFIG, ...config };\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, resolvedConfig);\n        this.instrumentationV2_V3 = new instrumentation_2.RedisInstrumentationV2_V3(this.getConfig());\n        this.instrumentationV4_V5 = new instrumentation_3.RedisInstrumentationV4_V5(this.getConfig());\n        this.initialized = true;\n    }\n    setConfig(config = {}) {\n        const newConfig = { ...DEFAULT_CONFIG, ...config };\n        super.setConfig(newConfig);\n        if (!this.initialized) {\n            return;\n        }\n        this.instrumentationV2_V3.setConfig(newConfig);\n        this.instrumentationV4_V5.setConfig(newConfig);\n    }\n    init() { }\n    // Return underlying modules, as consumers (like https://github.com/DrewCorlin/opentelemetry-node-bundler-plugins) may\n    // expect them to be populated without knowing that this module wraps 2 instrumentations\n    getModuleDefinitions() {\n        return [\n            ...this.instrumentationV2_V3.getModuleDefinitions(),\n            ...this.instrumentationV4_V5.getModuleDefinitions(),\n        ];\n    }\n    setTracerProvider(tracerProvider) {\n        super.setTracerProvider(tracerProvider);\n        if (!this.initialized) {\n            return;\n        }\n        this.instrumentationV2_V3.setTracerProvider(tracerProvider);\n        this.instrumentationV4_V5.setTracerProvider(tracerProvider);\n    }\n    enable() {\n        super.enable();\n        if (!this.initialized) {\n            return;\n        }\n        this.instrumentationV2_V3.enable();\n        this.instrumentationV4_V5.enable();\n    }\n    disable() {\n        super.disable();\n        if (!this.initialized) {\n            return;\n        }\n        this.instrumentationV2_V3.disable();\n        this.instrumentationV4_V5.disable();\n    }\n}\nexports.RedisInstrumentation = RedisInstrumentation;\n//# sourceMappingURL=redis.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RedisInstrumentation = void 0;\nvar redis_1 = require(\"./redis\");\nObject.defineProperty(exports, \"RedisInstrumentation\", { enumerable: true, get: function () { return redis_1.RedisInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EVENT_LISTENERS_SET = void 0;\nexports.EVENT_LISTENERS_SET = Symbol('opentelemetry.instrumentation.pg.eventListenersSet');\n//# sourceMappingURL=internal-types.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Postgresql specific attributes not covered by semantic conventions\nvar AttributeNames;\n(function (AttributeNames) {\n    AttributeNames[\"PG_VALUES\"] = \"db.postgresql.values\";\n    AttributeNames[\"PG_PLAN\"] = \"db.postgresql.plan\";\n    AttributeNames[\"IDLE_TIMEOUT_MILLIS\"] = \"db.postgresql.idle.timeout.millis\";\n    AttributeNames[\"MAX_CLIENT\"] = \"db.postgresql.max.client\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS = exports.METRIC_DB_CLIENT_CONNECTION_COUNT = exports.DB_SYSTEM_VALUE_POSTGRESQL = exports.DB_CLIENT_CONNECTION_STATE_VALUE_USED = exports.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_USER = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_NAME = exports.ATTR_DB_CONNECTION_STRING = exports.ATTR_DB_CLIENT_CONNECTION_STATE = exports.ATTR_DB_CLIENT_CONNECTION_POOL_NAME = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * The name of the connection pool; unique within the instrumented application. In case the connection pool implementation doesn't provide a name, instrumentation **SHOULD** use a combination of parameters that would make the name unique, for example, combining attributes `server.address`, `server.port`, and `db.namespace`, formatted as `server.address:server.port/db.namespace`. Instrumentations that generate connection pool name following different patterns **SHOULD** document it.\n *\n * @example myDataSource\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_DB_CLIENT_CONNECTION_POOL_NAME = 'db.client.connection.pool.name';\n/**\n * The state of a connection in the pool\n *\n * @example idle\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_DB_CLIENT_CONNECTION_STATE = 'db.client.connection.state';\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexports.ATTR_DB_CONNECTION_STRING = 'db.connection_string';\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexports.ATTR_DB_NAME = 'db.name';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexports.ATTR_DB_USER = 'db.user';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"idle\" for attribute {@link ATTR_DB_CLIENT_CONNECTION_STATE}.\n */\nexports.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE = 'idle';\n/**\n * Enum value \"used\" for attribute {@link ATTR_DB_CLIENT_CONNECTION_STATE}.\n */\nexports.DB_CLIENT_CONNECTION_STATE_VALUE_USED = 'used';\n/**\n * Enum value \"postgresql\" for attribute {@link ATTR_DB_SYSTEM}.\n */\nexports.DB_SYSTEM_VALUE_POSTGRESQL = 'postgresql';\n/**\n * The number of connections that are currently in state described by the `state` attribute\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.METRIC_DB_CLIENT_CONNECTION_COUNT = 'db.client.connection.count';\n/**\n * The number of current pending requests for an open connection\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS = 'db.client.connection.pending_requests';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SpanNames = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Contains span names produced by instrumentation\nvar SpanNames;\n(function (SpanNames) {\n    SpanNames[\"QUERY_PREFIX\"] = \"pg.query\";\n    SpanNames[\"CONNECT\"] = \"pg.connect\";\n    SpanNames[\"POOL_CONNECT\"] = \"pg-pool.connect\";\n})(SpanNames = exports.SpanNames || (exports.SpanNames = {}));\n//# sourceMappingURL=SpanNames.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sanitizedErrorMessage = exports.isObjectWithTextString = exports.getErrorMessage = exports.patchClientConnectCallback = exports.patchCallbackPGPool = exports.updateCounter = exports.getPoolName = exports.patchCallback = exports.handleExecutionResult = exports.handleConfigQuery = exports.shouldSkipInstrumentation = exports.getSemanticAttributesFromPoolConnection = exports.getSemanticAttributesFromConnection = exports.getConnectionString = exports.parseAndMaskConnectionString = exports.parseNormalizedOperationName = exports.getQuerySpanName = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst SpanNames_1 = require(\"./enums/SpanNames\");\n/**\n * Helper function to get a low cardinality span name from whatever info we have\n * about the query.\n *\n * This is tricky, because we don't have most of the information (table name,\n * operation name, etc) the spec recommends using to build a low-cardinality\n * value w/o parsing. So, we use db.name and assume that, if the query's a named\n * prepared statement, those `name` values will be low cardinality. If we don't\n * have a named prepared statement, we try to parse an operation (despite the\n * spec's warnings).\n *\n * @params dbName The name of the db against which this query is being issued,\n *   which could be missing if no db name was given at the time that the\n *   connection was established.\n * @params queryConfig Information we have about the query being issued, typed\n *   to reflect only the validation we've actually done on the args to\n *   `client.query()`. This will be undefined if `client.query()` was called\n *   with invalid arguments.\n */\nfunction getQuerySpanName(dbName, queryConfig) {\n    // NB: when the query config is invalid, we omit the dbName too, so that\n    // someone (or some tool) reading the span name doesn't misinterpret the\n    // dbName as being a prepared statement or sql commit name.\n    if (!queryConfig)\n        return SpanNames_1.SpanNames.QUERY_PREFIX;\n    // Either the name of a prepared statement; or an attempted parse\n    // of the SQL command, normalized to uppercase; or unknown.\n    const command = typeof queryConfig.name === 'string' && queryConfig.name\n        ? queryConfig.name\n        : parseNormalizedOperationName(queryConfig.text);\n    return `${SpanNames_1.SpanNames.QUERY_PREFIX}:${command}${dbName ? ` ${dbName}` : ''}`;\n}\nexports.getQuerySpanName = getQuerySpanName;\nfunction parseNormalizedOperationName(queryText) {\n    // Trim the query text to handle leading/trailing whitespace\n    const trimmedQuery = queryText.trim();\n    const indexOfFirstSpace = trimmedQuery.indexOf(' ');\n    let sqlCommand = indexOfFirstSpace === -1\n        ? trimmedQuery\n        : trimmedQuery.slice(0, indexOfFirstSpace);\n    sqlCommand = sqlCommand.toUpperCase();\n    // Handle query text being \"COMMIT;\", which has an extra semicolon before the space.\n    return sqlCommand.endsWith(';') ? sqlCommand.slice(0, -1) : sqlCommand;\n}\nexports.parseNormalizedOperationName = parseNormalizedOperationName;\nfunction parseAndMaskConnectionString(connectionString) {\n    try {\n        // Parse the connection string\n        const url = new URL(connectionString);\n        // Remove all auth information (username and password)\n        url.username = '';\n        url.password = '';\n        return url.toString();\n    }\n    catch (e) {\n        // If parsing fails, return a generic connection string\n        return 'postgresql://localhost:5432/';\n    }\n}\nexports.parseAndMaskConnectionString = parseAndMaskConnectionString;\nfunction getConnectionString(params) {\n    if ('connectionString' in params && params.connectionString) {\n        return parseAndMaskConnectionString(params.connectionString);\n    }\n    const host = params.host || 'localhost';\n    const port = params.port || 5432;\n    const database = params.database || '';\n    return `postgresql://${host}:${port}/${database}`;\n}\nexports.getConnectionString = getConnectionString;\nfunction getPort(port) {\n    // Port may be NaN as parseInt() is used on the value, passing null will result in NaN being parsed.\n    // https://github.com/brianc/node-postgres/blob/2a8efbee09a284be12748ed3962bc9b816965e36/packages/pg/lib/connection-parameters.js#L66\n    if (Number.isInteger(port)) {\n        return port;\n    }\n    // Unable to find the default used in pg code, so falling back to 'undefined'.\n    return undefined;\n}\nfunction getSemanticAttributesFromConnection(params, semconvStability) {\n    let attributes = {};\n    if (semconvStability & instrumentation_1.SemconvStability.OLD) {\n        attributes = {\n            ...attributes,\n            [semconv_1.ATTR_DB_SYSTEM]: semconv_1.DB_SYSTEM_VALUE_POSTGRESQL,\n            [semconv_1.ATTR_DB_NAME]: params.database,\n            [semconv_1.ATTR_DB_CONNECTION_STRING]: getConnectionString(params),\n            [semconv_1.ATTR_DB_USER]: params.user,\n            [semconv_1.ATTR_NET_PEER_NAME]: params.host,\n            [semconv_1.ATTR_NET_PEER_PORT]: getPort(params.port),\n        };\n    }\n    if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n        attributes = {\n            ...attributes,\n            [semantic_conventions_1.ATTR_DB_SYSTEM_NAME]: semantic_conventions_1.DB_SYSTEM_NAME_VALUE_POSTGRESQL,\n            [semantic_conventions_1.ATTR_DB_NAMESPACE]: params.namespace,\n            [semantic_conventions_1.ATTR_SERVER_ADDRESS]: params.host,\n            [semantic_conventions_1.ATTR_SERVER_PORT]: getPort(params.port),\n        };\n    }\n    return attributes;\n}\nexports.getSemanticAttributesFromConnection = getSemanticAttributesFromConnection;\nfunction getSemanticAttributesFromPoolConnection(params, semconvStability) {\n    let url;\n    try {\n        url = params.connectionString\n            ? new URL(params.connectionString)\n            : undefined;\n    }\n    catch (e) {\n        url = undefined;\n    }\n    let attributes = {\n        [AttributeNames_1.AttributeNames.IDLE_TIMEOUT_MILLIS]: params.idleTimeoutMillis,\n        [AttributeNames_1.AttributeNames.MAX_CLIENT]: params.maxClient,\n    };\n    if (semconvStability & instrumentation_1.SemconvStability.OLD) {\n        attributes = {\n            ...attributes,\n            [semconv_1.ATTR_DB_SYSTEM]: semconv_1.DB_SYSTEM_VALUE_POSTGRESQL,\n            [semconv_1.ATTR_DB_NAME]: url?.pathname.slice(1) ?? params.database,\n            [semconv_1.ATTR_DB_CONNECTION_STRING]: getConnectionString(params),\n            [semconv_1.ATTR_NET_PEER_NAME]: url?.hostname ?? params.host,\n            [semconv_1.ATTR_NET_PEER_PORT]: Number(url?.port) || getPort(params.port),\n            [semconv_1.ATTR_DB_USER]: url?.username ?? params.user,\n        };\n    }\n    if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n        attributes = {\n            ...attributes,\n            [semantic_conventions_1.ATTR_DB_SYSTEM_NAME]: semantic_conventions_1.DB_SYSTEM_NAME_VALUE_POSTGRESQL,\n            [semantic_conventions_1.ATTR_DB_NAMESPACE]: params.namespace,\n            [semantic_conventions_1.ATTR_SERVER_ADDRESS]: url?.hostname ?? params.host,\n            [semantic_conventions_1.ATTR_SERVER_PORT]: Number(url?.port) || getPort(params.port),\n        };\n    }\n    return attributes;\n}\nexports.getSemanticAttributesFromPoolConnection = getSemanticAttributesFromPoolConnection;\nfunction shouldSkipInstrumentation(instrumentationConfig) {\n    return (instrumentationConfig.requireParentSpan === true &&\n        api_1.trace.getSpan(api_1.context.active()) === undefined);\n}\nexports.shouldSkipInstrumentation = shouldSkipInstrumentation;\n// Create a span from our normalized queryConfig object,\n// or return a basic span if no queryConfig was given/could be created.\nfunction handleConfigQuery(tracer, instrumentationConfig, semconvStability, queryConfig) {\n    // Create child span.\n    const { connectionParameters } = this;\n    const dbName = connectionParameters.database;\n    const spanName = getQuerySpanName(dbName, queryConfig);\n    const span = tracer.startSpan(spanName, {\n        kind: api_1.SpanKind.CLIENT,\n        attributes: getSemanticAttributesFromConnection(connectionParameters, semconvStability),\n    });\n    if (!queryConfig) {\n        return span;\n    }\n    // Set attributes\n    if (queryConfig.text) {\n        if (semconvStability & instrumentation_1.SemconvStability.OLD) {\n            span.setAttribute(semconv_1.ATTR_DB_STATEMENT, queryConfig.text);\n        }\n        if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n            span.setAttribute(semantic_conventions_1.ATTR_DB_QUERY_TEXT, queryConfig.text);\n        }\n    }\n    if (instrumentationConfig.enhancedDatabaseReporting &&\n        Array.isArray(queryConfig.values)) {\n        try {\n            const convertedValues = queryConfig.values.map(value => {\n                if (value == null) {\n                    return 'null';\n                }\n                else if (value instanceof Buffer) {\n                    return value.toString();\n                }\n                else if (typeof value === 'object') {\n                    if (typeof value.toPostgres === 'function') {\n                        return value.toPostgres();\n                    }\n                    return JSON.stringify(value);\n                }\n                else {\n                    //string, number\n                    return value.toString();\n                }\n            });\n            span.setAttribute(AttributeNames_1.AttributeNames.PG_VALUES, convertedValues);\n        }\n        catch (e) {\n            api_1.diag.error('failed to stringify ', queryConfig.values, e);\n        }\n    }\n    // Set plan name attribute, if present\n    if (typeof queryConfig.name === 'string') {\n        span.setAttribute(AttributeNames_1.AttributeNames.PG_PLAN, queryConfig.name);\n    }\n    return span;\n}\nexports.handleConfigQuery = handleConfigQuery;\nfunction handleExecutionResult(config, span, pgResult) {\n    if (typeof config.responseHook === 'function') {\n        (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n            config.responseHook(span, {\n                data: pgResult,\n            });\n        }, err => {\n            if (err) {\n                api_1.diag.error('Error running response hook', err);\n            }\n        }, true);\n    }\n}\nexports.handleExecutionResult = handleExecutionResult;\nfunction patchCallback(instrumentationConfig, span, cb, attributes, recordDuration) {\n    return function patchedCallback(err, res) {\n        if (err) {\n            if (Object.prototype.hasOwnProperty.call(err, 'code')) {\n                attributes[semantic_conventions_1.ATTR_ERROR_TYPE] = err['code'];\n            }\n            if (err instanceof Error) {\n                span.recordException(sanitizedErrorMessage(err));\n            }\n            span.setStatus({\n                code: api_1.SpanStatusCode.ERROR,\n                message: err.message,\n            });\n        }\n        else {\n            handleExecutionResult(instrumentationConfig, span, res);\n        }\n        recordDuration();\n        span.end();\n        cb.call(this, err, res);\n    };\n}\nexports.patchCallback = patchCallback;\nfunction getPoolName(pool) {\n    let poolName = '';\n    poolName += (pool?.host ? `${pool.host}` : 'unknown_host') + ':';\n    poolName += (pool?.port ? `${pool.port}` : 'unknown_port') + '/';\n    poolName += pool?.database ? `${pool.database}` : 'unknown_database';\n    return poolName.trim();\n}\nexports.getPoolName = getPoolName;\nfunction updateCounter(poolName, pool, connectionCount, connectionPendingRequests, latestCounter) {\n    const all = pool.totalCount;\n    const pending = pool.waitingCount;\n    const idle = pool.idleCount;\n    const used = all - idle;\n    connectionCount.add(used - latestCounter.used, {\n        [semconv_1.ATTR_DB_CLIENT_CONNECTION_STATE]: semconv_1.DB_CLIENT_CONNECTION_STATE_VALUE_USED,\n        [semconv_1.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]: poolName,\n    });\n    connectionCount.add(idle - latestCounter.idle, {\n        [semconv_1.ATTR_DB_CLIENT_CONNECTION_STATE]: semconv_1.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,\n        [semconv_1.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]: poolName,\n    });\n    connectionPendingRequests.add(pending - latestCounter.pending, {\n        [semconv_1.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]: poolName,\n    });\n    return { used: used, idle: idle, pending: pending };\n}\nexports.updateCounter = updateCounter;\nfunction patchCallbackPGPool(span, cb) {\n    return function patchedCallback(err, res, done) {\n        if (err) {\n            if (err instanceof Error) {\n                span.recordException(sanitizedErrorMessage(err));\n            }\n            span.setStatus({\n                code: api_1.SpanStatusCode.ERROR,\n                message: err.message,\n            });\n        }\n        span.end();\n        cb.call(this, err, res, done);\n    };\n}\nexports.patchCallbackPGPool = patchCallbackPGPool;\nfunction patchClientConnectCallback(span, cb) {\n    return function patchedClientConnectCallback(err) {\n        if (err) {\n            if (err instanceof Error) {\n                span.recordException(sanitizedErrorMessage(err));\n            }\n            span.setStatus({\n                code: api_1.SpanStatusCode.ERROR,\n                message: err.message,\n            });\n        }\n        span.end();\n        cb.apply(this, arguments);\n    };\n}\nexports.patchClientConnectCallback = patchClientConnectCallback;\n/**\n * Attempt to get a message string from a thrown value, while being quite\n * defensive, to recognize the fact that, in JS, any kind of value (even\n * primitives) can be thrown.\n */\nfunction getErrorMessage(e) {\n    return typeof e === 'object' && e !== null && 'message' in e\n        ? String(e.message)\n        : undefined;\n}\nexports.getErrorMessage = getErrorMessage;\nfunction isObjectWithTextString(it) {\n    return (typeof it === 'object' &&\n        typeof it?.text === 'string');\n}\nexports.isObjectWithTextString = isObjectWithTextString;\n/**\n * Generates a sanitized message for the error.\n * Only includes the error type and PostgreSQL error code, omitting any sensitive details.\n */\nfunction sanitizedErrorMessage(error) {\n    const name = error?.name ?? 'PostgreSQLError';\n    const code = error?.code ?? 'UNKNOWN';\n    return `PostgreSQL error of type '${name}' occurred (code: ${code})`;\n}\nexports.sanitizedErrorMessage = sanitizedErrorMessage;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.65.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-pg';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PgInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst internal_types_1 = require(\"./internal-types\");\nconst utils = require(\"./utils\");\nconst sql_common_1 = require(\"@opentelemetry/sql-common\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst SpanNames_1 = require(\"./enums/SpanNames\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nfunction extractModuleExports(module) {\n    return module[Symbol.toStringTag] === 'Module'\n        ? module.default // ESM\n        : module; // CommonJS\n}\nclass PgInstrumentation extends instrumentation_1.InstrumentationBase {\n    // Pool events connect, acquire, release and remove can be called\n    // multiple times without changing the values of total, idle and waiting\n    // connections. The _connectionsCounter is used to keep track of latest\n    // values and only update the metrics _connectionsCount and _connectionPendingRequests\n    // when the value change.\n    _connectionsCounter = {\n        used: 0,\n        idle: 0,\n        pending: 0,\n    };\n    _semconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._semconvStability = (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    _updateMetricInstruments() {\n        this._operationDuration = this.meter.createHistogram(semantic_conventions_1.METRIC_DB_CLIENT_OPERATION_DURATION, {\n            description: 'Duration of database client operations.',\n            unit: 's',\n            valueType: api_1.ValueType.DOUBLE,\n            advice: {\n                explicitBucketBoundaries: [\n                    0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1, 5, 10,\n                ],\n            },\n        });\n        this._connectionsCounter = {\n            idle: 0,\n            pending: 0,\n            used: 0,\n        };\n        this._connectionsCount = this.meter.createUpDownCounter(semconv_1.METRIC_DB_CLIENT_CONNECTION_COUNT, {\n            description: 'The number of connections that are currently in state described by the state attribute.',\n            unit: '{connection}',\n        });\n        this._connectionPendingRequests = this.meter.createUpDownCounter(semconv_1.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS, {\n            description: 'The number of current pending requests for an open connection.',\n            unit: '{connection}',\n        });\n    }\n    init() {\n        const SUPPORTED_PG_VERSIONS = ['>=8.0.3 <9'];\n        const SUPPORTED_PG_POOL_VERSIONS = ['>=2.0.0 <4'];\n        const modulePgNativeClient = new instrumentation_1.InstrumentationNodeModuleFile('pg/lib/native/client.js', SUPPORTED_PG_VERSIONS, this._patchPgClient.bind(this), this._unpatchPgClient.bind(this));\n        const modulePgClient = new instrumentation_1.InstrumentationNodeModuleFile('pg/lib/client.js', SUPPORTED_PG_VERSIONS, this._patchPgClient.bind(this), this._unpatchPgClient.bind(this));\n        const modulePG = new instrumentation_1.InstrumentationNodeModuleDefinition('pg', SUPPORTED_PG_VERSIONS, (module) => {\n            const moduleExports = extractModuleExports(module);\n            this._patchPgClient(moduleExports.Client);\n            return module;\n        }, (module) => {\n            const moduleExports = extractModuleExports(module);\n            this._unpatchPgClient(moduleExports.Client);\n            return module;\n        }, [modulePgClient, modulePgNativeClient]);\n        const modulePGPool = new instrumentation_1.InstrumentationNodeModuleDefinition('pg-pool', SUPPORTED_PG_POOL_VERSIONS, (module) => {\n            const moduleExports = extractModuleExports(module);\n            if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.connect)) {\n                this._unwrap(moduleExports.prototype, 'connect');\n            }\n            this._wrap(moduleExports.prototype, 'connect', this._getPoolConnectPatch());\n            return moduleExports;\n        }, (module) => {\n            const moduleExports = extractModuleExports(module);\n            if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.connect)) {\n                this._unwrap(moduleExports.prototype, 'connect');\n            }\n        });\n        return [modulePG, modulePGPool];\n    }\n    _patchPgClient(module) {\n        if (!module) {\n            return;\n        }\n        const moduleExports = extractModuleExports(module);\n        if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.query)) {\n            this._unwrap(moduleExports.prototype, 'query');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.connect)) {\n            this._unwrap(moduleExports.prototype, 'connect');\n        }\n        this._wrap(moduleExports.prototype, 'query', this._getClientQueryPatch());\n        this._wrap(moduleExports.prototype, 'connect', this._getClientConnectPatch());\n        return module;\n    }\n    _unpatchPgClient(module) {\n        const moduleExports = extractModuleExports(module);\n        if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.query)) {\n            this._unwrap(moduleExports.prototype, 'query');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.connect)) {\n            this._unwrap(moduleExports.prototype, 'connect');\n        }\n        return module;\n    }\n    _getClientConnectPatch() {\n        const plugin = this;\n        return (original) => {\n            return function connect(callback) {\n                const config = plugin.getConfig();\n                if (utils.shouldSkipInstrumentation(config) ||\n                    config.ignoreConnectSpans) {\n                    return original.call(this, callback);\n                }\n                const span = plugin.tracer.startSpan(SpanNames_1.SpanNames.CONNECT, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes: utils.getSemanticAttributesFromConnection(this, plugin._semconvStability),\n                });\n                if (callback) {\n                    const parentSpan = api_1.trace.getSpan(api_1.context.active());\n                    callback = utils.patchClientConnectCallback(span, callback);\n                    if (parentSpan) {\n                        callback = api_1.context.bind(api_1.context.active(), callback);\n                    }\n                }\n                const connectResult = api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n                    return original.call(this, callback);\n                });\n                return handleConnectResult(span, connectResult);\n            };\n        };\n    }\n    recordOperationDuration(attributes, startTime) {\n        const metricsAttributes = {};\n        const keysToCopy = [\n            semantic_conventions_1.ATTR_DB_NAMESPACE,\n            semantic_conventions_1.ATTR_ERROR_TYPE,\n            semantic_conventions_1.ATTR_SERVER_PORT,\n            semantic_conventions_1.ATTR_SERVER_ADDRESS,\n            semantic_conventions_1.ATTR_DB_OPERATION_NAME,\n        ];\n        if (this._semconvStability & instrumentation_1.SemconvStability.OLD) {\n            keysToCopy.push(semconv_1.ATTR_DB_SYSTEM);\n        }\n        if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n            keysToCopy.push(semantic_conventions_1.ATTR_DB_SYSTEM_NAME);\n        }\n        keysToCopy.forEach(key => {\n            if (key in attributes) {\n                metricsAttributes[key] = attributes[key];\n            }\n        });\n        const durationSeconds = (0, core_1.hrTimeToMilliseconds)((0, core_1.hrTimeDuration)(startTime, (0, core_1.hrTime)())) / 1000;\n        this._operationDuration.record(durationSeconds, metricsAttributes);\n    }\n    _getClientQueryPatch() {\n        const plugin = this;\n        return (original) => {\n            this._diag.debug('Patching pg.Client.prototype.query');\n            return function query(...args) {\n                if (utils.shouldSkipInstrumentation(plugin.getConfig())) {\n                    return original.apply(this, args);\n                }\n                const startTime = (0, core_1.hrTime)();\n                // client.query(text, cb?), client.query(text, values, cb?), and\n                // client.query(configObj, cb?) are all valid signatures. We construct\n                // a queryConfig obj from all (valid) signatures to build the span in a\n                // unified way. We verify that we at least have query text, and code\n                // defensively when dealing with `queryConfig` after that (to handle all\n                // the other invalid cases, like a non-array for values being provided).\n                // The type casts here reflect only what we've actually validated.\n                const arg0 = args[0];\n                const firstArgIsString = typeof arg0 === 'string';\n                const firstArgIsQueryObjectWithText = utils.isObjectWithTextString(arg0);\n                // TODO: remove the `as ...` casts below when the TS version is upgraded.\n                // Newer TS versions will use the result of firstArgIsQueryObjectWithText\n                // to properly narrow arg0, but TS 4.3.5 does not.\n                const queryConfig = firstArgIsString\n                    ? {\n                        text: arg0,\n                        values: Array.isArray(args[1]) ? args[1] : undefined,\n                    }\n                    : firstArgIsQueryObjectWithText\n                        ? {\n                            ...arg0,\n                            name: arg0.name,\n                            text: arg0.text,\n                            values: arg0.values ??\n                                (Array.isArray(args[1]) ? args[1] : undefined),\n                        }\n                        : undefined;\n                const attributes = {\n                    [semconv_1.ATTR_DB_SYSTEM]: semconv_1.DB_SYSTEM_VALUE_POSTGRESQL,\n                    [semantic_conventions_1.ATTR_DB_NAMESPACE]: this.database,\n                    [semantic_conventions_1.ATTR_SERVER_PORT]: this.connectionParameters.port,\n                    [semantic_conventions_1.ATTR_SERVER_ADDRESS]: this.connectionParameters.host,\n                };\n                if (queryConfig?.text) {\n                    attributes[semantic_conventions_1.ATTR_DB_OPERATION_NAME] =\n                        utils.parseNormalizedOperationName(queryConfig?.text);\n                }\n                const recordDuration = () => {\n                    plugin.recordOperationDuration(attributes, startTime);\n                };\n                const instrumentationConfig = plugin.getConfig();\n                const span = utils.handleConfigQuery.call(this, plugin.tracer, instrumentationConfig, plugin._semconvStability, queryConfig);\n                // Modify query text w/ a tracing comment before invoking original for\n                // tracing, but only if args[0] has one of our expected shapes.\n                if (instrumentationConfig.addSqlCommenterCommentToQueries) {\n                    if (firstArgIsString) {\n                        args[0] = (0, sql_common_1.addSqlCommenterComment)(span, arg0);\n                    }\n                    else if (firstArgIsQueryObjectWithText && !('name' in arg0)) {\n                        // In the case of a query object, we need to ensure there's no name field\n                        // as this indicates a prepared query, where the comment would remain the same\n                        // for every invocation and contain an outdated trace context.\n                        args[0] = {\n                            ...arg0,\n                            text: (0, sql_common_1.addSqlCommenterComment)(span, arg0.text),\n                        };\n                    }\n                }\n                // Bind callback (if any) to parent span (if any)\n                if (args.length > 0) {\n                    const parentSpan = api_1.trace.getSpan(api_1.context.active());\n                    if (typeof args[args.length - 1] === 'function') {\n                        // Patch ParameterQuery callback\n                        args[args.length - 1] = utils.patchCallback(instrumentationConfig, span, args[args.length - 1], // nb: not type safe.\n                        attributes, recordDuration);\n                        // If a parent span exists, bind the callback\n                        if (parentSpan) {\n                            args[args.length - 1] = api_1.context.bind(api_1.context.active(), args[args.length - 1]);\n                        }\n                    }\n                    else if (typeof queryConfig?.callback === 'function') {\n                        // Patch ConfigQuery callback\n                        let callback = utils.patchCallback(plugin.getConfig(), span, queryConfig.callback, // nb: not type safe.\n                        attributes, recordDuration);\n                        // If a parent span existed, bind the callback\n                        if (parentSpan) {\n                            callback = api_1.context.bind(api_1.context.active(), callback);\n                        }\n                        args[0].callback = callback;\n                    }\n                }\n                const { requestHook } = instrumentationConfig;\n                if (typeof requestHook === 'function' && queryConfig) {\n                    (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n                        // pick keys to expose explicitly, so we're not leaking pg package\n                        // internals that are subject to change\n                        const { database, host, port, user } = this.connectionParameters;\n                        const connection = { database, host, port, user };\n                        requestHook(span, {\n                            connection,\n                            query: {\n                                text: queryConfig.text,\n                                // nb: if `client.query` is called with illegal arguments\n                                // (e.g., if `queryConfig.values` is passed explicitly, but a\n                                // non-array is given), then the type casts will be wrong. But\n                                // we leave it up to the queryHook to handle that, and we\n                                // catch and swallow any errors it throws. The other options\n                                // are all worse. E.g., we could leave `queryConfig.values`\n                                // and `queryConfig.name` as `unknown`, but then the hook body\n                                // would be forced to validate (or cast) them before using\n                                // them, which seems incredibly cumbersome given that these\n                                // casts will be correct 99.9% of the time -- and pg.query\n                                // will immediately throw during development in the other .1%\n                                // of cases. Alternatively, we could simply skip calling the\n                                // hook when `values` or `name` don't have the expected type,\n                                // but that would add unnecessary validation overhead to every\n                                // hook invocation and possibly be even more confusing/unexpected.\n                                values: queryConfig.values,\n                                name: queryConfig.name,\n                            },\n                        });\n                    }, err => {\n                        if (err) {\n                            plugin._diag.error('Error running query hook', err);\n                        }\n                    }, true);\n                }\n                let result;\n                try {\n                    result = original.apply(this, args);\n                }\n                catch (e) {\n                    if (e instanceof Error) {\n                        span.recordException(utils.sanitizedErrorMessage(e));\n                    }\n                    span.setStatus({\n                        code: api_1.SpanStatusCode.ERROR,\n                        message: utils.getErrorMessage(e),\n                    });\n                    span.end();\n                    throw e;\n                }\n                // Bind promise to parent span and end the span\n                if (result instanceof Promise) {\n                    return result\n                        .then((result) => {\n                        // Return a pass-along promise which ends the span and then goes to user's orig resolvers\n                        return new Promise(resolve => {\n                            utils.handleExecutionResult(plugin.getConfig(), span, result);\n                            recordDuration();\n                            span.end();\n                            resolve(result);\n                        });\n                    })\n                        .catch((error) => {\n                        return new Promise((_, reject) => {\n                            if (error instanceof Error) {\n                                span.recordException(utils.sanitizedErrorMessage(error));\n                            }\n                            span.setStatus({\n                                code: api_1.SpanStatusCode.ERROR,\n                                message: error.message,\n                            });\n                            recordDuration();\n                            span.end();\n                            reject(error);\n                        });\n                    });\n                }\n                // else returns void\n                return result; // void\n            };\n        };\n    }\n    _setPoolConnectEventListeners(pgPool) {\n        if (pgPool[internal_types_1.EVENT_LISTENERS_SET])\n            return;\n        const poolName = utils.getPoolName(pgPool.options);\n        pgPool.on('connect', () => {\n            this._connectionsCounter = utils.updateCounter(poolName, pgPool, this._connectionsCount, this._connectionPendingRequests, this._connectionsCounter);\n        });\n        pgPool.on('acquire', () => {\n            this._connectionsCounter = utils.updateCounter(poolName, pgPool, this._connectionsCount, this._connectionPendingRequests, this._connectionsCounter);\n        });\n        pgPool.on('remove', () => {\n            this._connectionsCounter = utils.updateCounter(poolName, pgPool, this._connectionsCount, this._connectionPendingRequests, this._connectionsCounter);\n        });\n        pgPool.on('release', () => {\n            this._connectionsCounter = utils.updateCounter(poolName, pgPool, this._connectionsCount, this._connectionPendingRequests, this._connectionsCounter);\n        });\n        pgPool[internal_types_1.EVENT_LISTENERS_SET] = true;\n    }\n    _getPoolConnectPatch() {\n        const plugin = this;\n        return (originalConnect) => {\n            return function connect(callback) {\n                const config = plugin.getConfig();\n                if (utils.shouldSkipInstrumentation(config)) {\n                    return originalConnect.call(this, callback);\n                }\n                // Still set up event listeners for metrics even when skipping spans\n                plugin._setPoolConnectEventListeners(this);\n                if (config.ignoreConnectSpans) {\n                    return originalConnect.call(this, callback);\n                }\n                // setup span\n                const span = plugin.tracer.startSpan(SpanNames_1.SpanNames.POOL_CONNECT, {\n                    kind: api_1.SpanKind.CLIENT,\n                    attributes: utils.getSemanticAttributesFromPoolConnection(this.options, plugin._semconvStability),\n                });\n                if (callback) {\n                    const parentSpan = api_1.trace.getSpan(api_1.context.active());\n                    callback = utils.patchCallbackPGPool(span, callback);\n                    // If a parent span exists, bind the callback\n                    if (parentSpan) {\n                        callback = api_1.context.bind(api_1.context.active(), callback);\n                    }\n                }\n                const connectResult = api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n                    return originalConnect.call(this, callback);\n                });\n                return handleConnectResult(span, connectResult);\n            };\n        };\n    }\n}\nexports.PgInstrumentation = PgInstrumentation;\nfunction handleConnectResult(span, connectResult) {\n    if (!(connectResult instanceof Promise)) {\n        return connectResult;\n    }\n    const connectResultPromise = connectResult;\n    return api_1.context.bind(api_1.context.active(), connectResultPromise\n        .then(result => {\n        span.end();\n        return result;\n    })\n        .catch((error) => {\n        if (error instanceof Error) {\n            span.recordException(utils.sanitizedErrorMessage(error));\n        }\n        span.setStatus({\n            code: api_1.SpanStatusCode.ERROR,\n            message: utils.getErrorMessage(error),\n        });\n        span.end();\n        return Promise.reject(error);\n    }));\n}\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = exports.PgInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"PgInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.PgInstrumentation; } });\nvar AttributeNames_1 = require(\"./enums/AttributeNames\");\nObject.defineProperty(exports, \"AttributeNames\", { enumerable: true, get: function () { return AttributeNames_1.AttributeNames; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SeverityNumber = void 0;\nvar SeverityNumber;\n(function (SeverityNumber) {\n    SeverityNumber[SeverityNumber[\"UNSPECIFIED\"] = 0] = \"UNSPECIFIED\";\n    SeverityNumber[SeverityNumber[\"TRACE\"] = 1] = \"TRACE\";\n    SeverityNumber[SeverityNumber[\"TRACE2\"] = 2] = \"TRACE2\";\n    SeverityNumber[SeverityNumber[\"TRACE3\"] = 3] = \"TRACE3\";\n    SeverityNumber[SeverityNumber[\"TRACE4\"] = 4] = \"TRACE4\";\n    SeverityNumber[SeverityNumber[\"DEBUG\"] = 5] = \"DEBUG\";\n    SeverityNumber[SeverityNumber[\"DEBUG2\"] = 6] = \"DEBUG2\";\n    SeverityNumber[SeverityNumber[\"DEBUG3\"] = 7] = \"DEBUG3\";\n    SeverityNumber[SeverityNumber[\"DEBUG4\"] = 8] = \"DEBUG4\";\n    SeverityNumber[SeverityNumber[\"INFO\"] = 9] = \"INFO\";\n    SeverityNumber[SeverityNumber[\"INFO2\"] = 10] = \"INFO2\";\n    SeverityNumber[SeverityNumber[\"INFO3\"] = 11] = \"INFO3\";\n    SeverityNumber[SeverityNumber[\"INFO4\"] = 12] = \"INFO4\";\n    SeverityNumber[SeverityNumber[\"WARN\"] = 13] = \"WARN\";\n    SeverityNumber[SeverityNumber[\"WARN2\"] = 14] = \"WARN2\";\n    SeverityNumber[SeverityNumber[\"WARN3\"] = 15] = \"WARN3\";\n    SeverityNumber[SeverityNumber[\"WARN4\"] = 16] = \"WARN4\";\n    SeverityNumber[SeverityNumber[\"ERROR\"] = 17] = \"ERROR\";\n    SeverityNumber[SeverityNumber[\"ERROR2\"] = 18] = \"ERROR2\";\n    SeverityNumber[SeverityNumber[\"ERROR3\"] = 19] = \"ERROR3\";\n    SeverityNumber[SeverityNumber[\"ERROR4\"] = 20] = \"ERROR4\";\n    SeverityNumber[SeverityNumber[\"FATAL\"] = 21] = \"FATAL\";\n    SeverityNumber[SeverityNumber[\"FATAL2\"] = 22] = \"FATAL2\";\n    SeverityNumber[SeverityNumber[\"FATAL3\"] = 23] = \"FATAL3\";\n    SeverityNumber[SeverityNumber[\"FATAL4\"] = 24] = \"FATAL4\";\n})(SeverityNumber = exports.SeverityNumber || (exports.SeverityNumber = {}));\n//# sourceMappingURL=LogRecord.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_LOGGER = exports.NoopLogger = void 0;\nclass NoopLogger {\n    emit(_logRecord) { }\n}\nexports.NoopLogger = NoopLogger;\nexports.NOOP_LOGGER = new NoopLogger();\n//# sourceMappingURL=NoopLogger.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NOOP_LOGGER_PROVIDER = exports.NoopLoggerProvider = void 0;\nconst NoopLogger_1 = require(\"./NoopLogger\");\nclass NoopLoggerProvider {\n    getLogger(_name, _version, _options) {\n        return new NoopLogger_1.NoopLogger();\n    }\n}\nexports.NoopLoggerProvider = NoopLoggerProvider;\nexports.NOOP_LOGGER_PROVIDER = new NoopLoggerProvider();\n//# sourceMappingURL=NoopLoggerProvider.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProxyLogger = void 0;\nconst NoopLogger_1 = require(\"./NoopLogger\");\nclass ProxyLogger {\n    constructor(_provider, name, version, options) {\n        this._provider = _provider;\n        this.name = name;\n        this.version = version;\n        this.options = options;\n    }\n    /**\n     * Emit a log record. This method should only be used by log appenders.\n     *\n     * @param logRecord\n     */\n    emit(logRecord) {\n        this._getLogger().emit(logRecord);\n    }\n    /**\n     * Try to get a logger from the proxy logger provider.\n     * If the proxy logger provider has no delegate, return a noop logger.\n     */\n    _getLogger() {\n        if (this._delegate) {\n            return this._delegate;\n        }\n        const logger = this._provider._getDelegateLogger(this.name, this.version, this.options);\n        if (!logger) {\n            return NoopLogger_1.NOOP_LOGGER;\n        }\n        this._delegate = logger;\n        return this._delegate;\n    }\n}\nexports.ProxyLogger = ProxyLogger;\n//# sourceMappingURL=ProxyLogger.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProxyLoggerProvider = void 0;\nconst NoopLoggerProvider_1 = require(\"./NoopLoggerProvider\");\nconst ProxyLogger_1 = require(\"./ProxyLogger\");\nclass ProxyLoggerProvider {\n    getLogger(name, version, options) {\n        var _a;\n        return ((_a = this._getDelegateLogger(name, version, options)) !== null && _a !== void 0 ? _a : new ProxyLogger_1.ProxyLogger(this, name, version, options));\n    }\n    /**\n     * Get the delegate logger provider.\n     * Used by tests only.\n     * @internal\n     */\n    _getDelegate() {\n        var _a;\n        return (_a = this._delegate) !== null && _a !== void 0 ? _a : NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER;\n    }\n    /**\n     * Set the delegate logger provider\n     * @internal\n     */\n    _setDelegate(delegate) {\n        this._delegate = delegate;\n    }\n    /**\n     * @internal\n     */\n    _getDelegateLogger(name, version, options) {\n        var _a;\n        return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getLogger(name, version, options);\n    }\n}\nexports.ProxyLoggerProvider = ProxyLoggerProvider;\n//# sourceMappingURL=ProxyLoggerProvider.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._globalThis = void 0;\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line n/no-unsupported-features/es-builtins\nexports._globalThis = typeof globalThis === 'object' ? globalThis : global;\n//# sourceMappingURL=globalThis.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._globalThis = void 0;\nvar globalThis_1 = require(\"./globalThis\");\nObject.defineProperty(exports, \"_globalThis\", { enumerable: true, get: function () { return globalThis_1._globalThis; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._globalThis = void 0;\nvar node_1 = require(\"./node\");\nObject.defineProperty(exports, \"_globalThis\", { enumerable: true, get: function () { return node_1._globalThis; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.API_BACKWARDS_COMPATIBILITY_VERSION = exports.makeGetter = exports._global = exports.GLOBAL_LOGS_API_KEY = void 0;\nconst platform_1 = require(\"../platform\");\nexports.GLOBAL_LOGS_API_KEY = Symbol.for('io.opentelemetry.js.api.logs');\nexports._global = platform_1._globalThis;\n/**\n * Make a function which accepts a version integer and returns the instance of an API if the version\n * is compatible, or a fallback version (usually NOOP) if it is not.\n *\n * @param requiredVersion Backwards compatibility version which is required to return the instance\n * @param instance Instance which should be returned if the required version is compatible\n * @param fallback Fallback instance, usually NOOP, which will be returned if the required version is not compatible\n */\nfunction makeGetter(requiredVersion, instance, fallback) {\n    return (version) => version === requiredVersion ? instance : fallback;\n}\nexports.makeGetter = makeGetter;\n/**\n * A number which should be incremented each time a backwards incompatible\n * change is made to the API. This number is used when an API package\n * attempts to access the global API to ensure it is getting a compatible\n * version. If the global API is not compatible with the API package\n * attempting to get it, a NOOP API implementation will be returned.\n */\nexports.API_BACKWARDS_COMPATIBILITY_VERSION = 1;\n//# sourceMappingURL=global-utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogsAPI = void 0;\nconst global_utils_1 = require(\"../internal/global-utils\");\nconst NoopLoggerProvider_1 = require(\"../NoopLoggerProvider\");\nconst ProxyLoggerProvider_1 = require(\"../ProxyLoggerProvider\");\nclass LogsAPI {\n    constructor() {\n        this._proxyLoggerProvider = new ProxyLoggerProvider_1.ProxyLoggerProvider();\n    }\n    static getInstance() {\n        if (!this._instance) {\n            this._instance = new LogsAPI();\n        }\n        return this._instance;\n    }\n    setGlobalLoggerProvider(provider) {\n        if (global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]) {\n            return this.getLoggerProvider();\n        }\n        global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY] = (0, global_utils_1.makeGetter)(global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION, provider, NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER);\n        this._proxyLoggerProvider._setDelegate(provider);\n        return provider;\n    }\n    /**\n     * Returns the global logger provider.\n     *\n     * @returns LoggerProvider\n     */\n    getLoggerProvider() {\n        var _a, _b;\n        return ((_b = (_a = global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]) === null || _a === void 0 ? void 0 : _a.call(global_utils_1._global, global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION)) !== null && _b !== void 0 ? _b : this._proxyLoggerProvider);\n    }\n    /**\n     * Returns a logger from the global logger provider.\n     *\n     * @returns Logger\n     */\n    getLogger(name, version, options) {\n        return this.getLoggerProvider().getLogger(name, version, options);\n    }\n    /** Remove the global logger provider */\n    disable() {\n        delete global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY];\n        this._proxyLoggerProvider = new ProxyLoggerProvider_1.ProxyLoggerProvider();\n    }\n}\nexports.LogsAPI = LogsAPI;\n//# sourceMappingURL=logs.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logs = exports.ProxyLoggerProvider = exports.ProxyLogger = exports.NoopLoggerProvider = exports.NOOP_LOGGER_PROVIDER = exports.NoopLogger = exports.NOOP_LOGGER = exports.SeverityNumber = void 0;\nvar LogRecord_1 = require(\"./types/LogRecord\");\nObject.defineProperty(exports, \"SeverityNumber\", { enumerable: true, get: function () { return LogRecord_1.SeverityNumber; } });\nvar NoopLogger_1 = require(\"./NoopLogger\");\nObject.defineProperty(exports, \"NOOP_LOGGER\", { enumerable: true, get: function () { return NoopLogger_1.NOOP_LOGGER; } });\nObject.defineProperty(exports, \"NoopLogger\", { enumerable: true, get: function () { return NoopLogger_1.NoopLogger; } });\nvar NoopLoggerProvider_1 = require(\"./NoopLoggerProvider\");\nObject.defineProperty(exports, \"NOOP_LOGGER_PROVIDER\", { enumerable: true, get: function () { return NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER; } });\nObject.defineProperty(exports, \"NoopLoggerProvider\", { enumerable: true, get: function () { return NoopLoggerProvider_1.NoopLoggerProvider; } });\nvar ProxyLogger_1 = require(\"./ProxyLogger\");\nObject.defineProperty(exports, \"ProxyLogger\", { enumerable: true, get: function () { return ProxyLogger_1.ProxyLogger; } });\nvar ProxyLoggerProvider_1 = require(\"./ProxyLoggerProvider\");\nObject.defineProperty(exports, \"ProxyLoggerProvider\", { enumerable: true, get: function () { return ProxyLoggerProvider_1.ProxyLoggerProvider; } });\nconst logs_1 = require(\"./api/logs\");\nexports.logs = logs_1.LogsAPI.getInstance();\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.disableInstrumentations = exports.enableInstrumentations = void 0;\n/**\n * Enable instrumentations\n * @param instrumentations\n * @param tracerProvider\n * @param meterProvider\n */\nfunction enableInstrumentations(instrumentations, tracerProvider, meterProvider, loggerProvider) {\n    for (let i = 0, j = instrumentations.length; i < j; i++) {\n        const instrumentation = instrumentations[i];\n        if (tracerProvider) {\n            instrumentation.setTracerProvider(tracerProvider);\n        }\n        if (meterProvider) {\n            instrumentation.setMeterProvider(meterProvider);\n        }\n        if (loggerProvider && instrumentation.setLoggerProvider) {\n            instrumentation.setLoggerProvider(loggerProvider);\n        }\n        // instrumentations have been already enabled during creation\n        // so enable only if user prevented that by setting enabled to false\n        // this is to prevent double enabling but when calling register all\n        // instrumentations should be now enabled\n        if (!instrumentation.getConfig().enabled) {\n            instrumentation.enable();\n        }\n    }\n}\nexports.enableInstrumentations = enableInstrumentations;\n/**\n * Disable instrumentations\n * @param instrumentations\n */\nfunction disableInstrumentations(instrumentations) {\n    instrumentations.forEach(instrumentation => instrumentation.disable());\n}\nexports.disableInstrumentations = disableInstrumentations;\n//# sourceMappingURL=autoLoaderUtils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.registerInstrumentations = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst api_logs_1 = require(\"@opentelemetry/api-logs\");\nconst autoLoaderUtils_1 = require(\"./autoLoaderUtils\");\n/**\n * It will register instrumentations and plugins\n * @param options\n * @return returns function to unload instrumentation and plugins that were\n *   registered\n */\nfunction registerInstrumentations(options) {\n    const tracerProvider = options.tracerProvider || api_1.trace.getTracerProvider();\n    const meterProvider = options.meterProvider || api_1.metrics.getMeterProvider();\n    const loggerProvider = options.loggerProvider || api_logs_1.logs.getLoggerProvider();\n    const instrumentations = options.instrumentations?.flat() ?? [];\n    (0, autoLoaderUtils_1.enableInstrumentations)(instrumentations, tracerProvider, meterProvider, loggerProvider);\n    return () => {\n        (0, autoLoaderUtils_1.disableInstrumentations)(instrumentations);\n    };\n}\nexports.registerInstrumentations = registerInstrumentations;\n//# sourceMappingURL=autoLoader.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.satisfies = void 0;\n// This is a custom semantic versioning implementation compatible with the\n// `satisfies(version, range, options?)` function from the `semver` npm package;\n// with the exception that the `loose` option is not supported.\n//\n// The motivation for the custom semver implementation is that\n// `semver` package has some initialization delay (lots of RegExp init and compile)\n// and this leads to coldstart overhead for the OTEL Lambda Node.js layer.\n// Hence, we have implemented lightweight version of it internally with required functionalities.\nconst api_1 = require(\"@opentelemetry/api\");\nconst VERSION_REGEXP = /^(?:v)?(?(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*))(?:-(?(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nconst RANGE_REGEXP = /^(?<|>|=|==|<=|>=|~|\\^|~>)?\\s*(?:v)?(?(?x|X|\\*|0|[1-9]\\d*)(?:\\.(?x|X|\\*|0|[1-9]\\d*))?(?:\\.(?x|X|\\*|0|[1-9]\\d*))?)(?:-(?(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nconst operatorResMap = {\n    '>': [1],\n    '>=': [0, 1],\n    '=': [0],\n    '<=': [-1, 0],\n    '<': [-1],\n    '!=': [-1, 1],\n};\n/**\n * Checks given version whether it satisfies given range expression.\n * @param version the [version](https://github.com/npm/node-semver#versions) to be checked\n * @param range   the [range](https://github.com/npm/node-semver#ranges) expression for version check\n * @param options options to configure semver satisfy check\n */\nfunction satisfies(version, range, options) {\n    // Strict semver format check\n    if (!_validateVersion(version)) {\n        api_1.diag.error(`Invalid version: ${version}`);\n        return false;\n    }\n    // If range is empty, satisfy check succeeds regardless what version is\n    if (!range) {\n        return true;\n    }\n    // Cleanup range\n    range = range.replace(/([<>=~^]+)\\s+/g, '$1');\n    // Parse version\n    const parsedVersion = _parseVersion(version);\n    if (!parsedVersion) {\n        return false;\n    }\n    const allParsedRanges = [];\n    // Check given version whether it satisfies given range expression\n    const checkResult = _doSatisfies(parsedVersion, range, allParsedRanges, options);\n    // If check result is OK,\n    // do another final check for pre-release, if pre-release check is included by option\n    if (checkResult && !options?.includePrerelease) {\n        return _doPreleaseCheck(parsedVersion, allParsedRanges);\n    }\n    return checkResult;\n}\nexports.satisfies = satisfies;\nfunction _validateVersion(version) {\n    return typeof version === 'string' && VERSION_REGEXP.test(version);\n}\nfunction _doSatisfies(parsedVersion, range, allParsedRanges, options) {\n    if (range.includes('||')) {\n        // A version matches a range if and only if\n        // every comparator in at least one of the ||-separated comparator sets is satisfied by the version\n        const ranges = range.trim().split('||');\n        for (const r of ranges) {\n            if (_checkRange(parsedVersion, r, allParsedRanges, options)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    else if (range.includes(' - ')) {\n        // Hyphen ranges: https://github.com/npm/node-semver#hyphen-ranges-xyz---abc\n        range = replaceHyphen(range, options);\n    }\n    else if (range.includes(' ')) {\n        // Multiple separated ranges and all needs to be satisfied for success\n        const ranges = range\n            .trim()\n            .replace(/\\s{2,}/g, ' ')\n            .split(' ');\n        for (const r of ranges) {\n            if (!_checkRange(parsedVersion, r, allParsedRanges, options)) {\n                return false;\n            }\n        }\n        return true;\n    }\n    // Check given parsed version with given range\n    return _checkRange(parsedVersion, range, allParsedRanges, options);\n}\nfunction _checkRange(parsedVersion, range, allParsedRanges, options) {\n    range = _normalizeRange(range, options);\n    if (range.includes(' ')) {\n        // If there are multiple ranges separated, satisfy each of them\n        return _doSatisfies(parsedVersion, range, allParsedRanges, options);\n    }\n    else {\n        // Validate and parse range\n        const parsedRange = _parseRange(range);\n        allParsedRanges.push(parsedRange);\n        // Check parsed version by parsed range\n        return _satisfies(parsedVersion, parsedRange);\n    }\n}\nfunction _satisfies(parsedVersion, parsedRange) {\n    // If range is invalid, satisfy check fails (no error throw)\n    if (parsedRange.invalid) {\n        return false;\n    }\n    // If range is empty or wildcard, satisfy check succeeds regardless what version is\n    if (!parsedRange.version || _isWildcard(parsedRange.version)) {\n        return true;\n    }\n    // Compare version segment first\n    let comparisonResult = _compareVersionSegments(parsedVersion.versionSegments || [], parsedRange.versionSegments || []);\n    // If versions segments are equal, compare by pre-release segments\n    if (comparisonResult === 0) {\n        const versionPrereleaseSegments = parsedVersion.prereleaseSegments || [];\n        const rangePrereleaseSegments = parsedRange.prereleaseSegments || [];\n        if (!versionPrereleaseSegments.length && !rangePrereleaseSegments.length) {\n            comparisonResult = 0;\n        }\n        else if (!versionPrereleaseSegments.length &&\n            rangePrereleaseSegments.length) {\n            comparisonResult = 1;\n        }\n        else if (versionPrereleaseSegments.length &&\n            !rangePrereleaseSegments.length) {\n            comparisonResult = -1;\n        }\n        else {\n            comparisonResult = _compareVersionSegments(versionPrereleaseSegments, rangePrereleaseSegments);\n        }\n    }\n    // Resolve check result according to comparison operator\n    return operatorResMap[parsedRange.op]?.includes(comparisonResult);\n}\nfunction _doPreleaseCheck(parsedVersion, allParsedRanges) {\n    if (parsedVersion.prerelease) {\n        return allParsedRanges.some(r => r.prerelease && r.version === parsedVersion.version);\n    }\n    return true;\n}\nfunction _normalizeRange(range, options) {\n    range = range.trim();\n    range = replaceCaret(range, options);\n    range = replaceTilde(range);\n    range = replaceXRange(range, options);\n    range = range.trim();\n    return range;\n}\nfunction isX(id) {\n    return !id || id.toLowerCase() === 'x' || id === '*';\n}\nfunction _parseVersion(versionString) {\n    const match = versionString.match(VERSION_REGEXP);\n    if (!match) {\n        api_1.diag.error(`Invalid version: ${versionString}`);\n        return undefined;\n    }\n    const version = match.groups.version;\n    const prerelease = match.groups.prerelease;\n    const build = match.groups.build;\n    const versionSegments = version.split('.');\n    const prereleaseSegments = prerelease?.split('.');\n    return {\n        op: undefined,\n        version,\n        versionSegments,\n        versionSegmentCount: versionSegments.length,\n        prerelease,\n        prereleaseSegments,\n        prereleaseSegmentCount: prereleaseSegments ? prereleaseSegments.length : 0,\n        build,\n    };\n}\nfunction _parseRange(rangeString) {\n    if (!rangeString) {\n        return {};\n    }\n    const match = rangeString.match(RANGE_REGEXP);\n    if (!match) {\n        api_1.diag.error(`Invalid range: ${rangeString}`);\n        return {\n            invalid: true,\n        };\n    }\n    let op = match.groups.op;\n    const version = match.groups.version;\n    const prerelease = match.groups.prerelease;\n    const build = match.groups.build;\n    const versionSegments = version.split('.');\n    const prereleaseSegments = prerelease?.split('.');\n    if (op === '==') {\n        op = '=';\n    }\n    return {\n        op: op || '=',\n        version,\n        versionSegments,\n        versionSegmentCount: versionSegments.length,\n        prerelease,\n        prereleaseSegments,\n        prereleaseSegmentCount: prereleaseSegments ? prereleaseSegments.length : 0,\n        build,\n    };\n}\nfunction _isWildcard(s) {\n    return s === '*' || s === 'x' || s === 'X';\n}\nfunction _parseVersionString(v) {\n    const n = parseInt(v, 10);\n    return isNaN(n) ? v : n;\n}\nfunction _normalizeVersionType(a, b) {\n    if (typeof a === typeof b) {\n        if (typeof a === 'number') {\n            return [a, b];\n        }\n        else if (typeof a === 'string') {\n            return [a, b];\n        }\n        else {\n            throw new Error('Version segments can only be strings or numbers');\n        }\n    }\n    else {\n        return [String(a), String(b)];\n    }\n}\nfunction _compareVersionStrings(v1, v2) {\n    if (_isWildcard(v1) || _isWildcard(v2)) {\n        return 0;\n    }\n    const [parsedV1, parsedV2] = _normalizeVersionType(_parseVersionString(v1), _parseVersionString(v2));\n    if (parsedV1 > parsedV2) {\n        return 1;\n    }\n    else if (parsedV1 < parsedV2) {\n        return -1;\n    }\n    return 0;\n}\nfunction _compareVersionSegments(v1, v2) {\n    for (let i = 0; i < Math.max(v1.length, v2.length); i++) {\n        const res = _compareVersionStrings(v1[i] || '0', v2[i] || '0');\n        if (res !== 0) {\n            return res;\n        }\n    }\n    return 0;\n}\n////////////////////////////////////////////////////////////////////////////////\n// The rest of this file is adapted from portions of https://github.com/npm/node-semver/tree/868d4bb\n// License:\n/*\n * The ISC License\n *\n * Copyright (c) Isaac Z. Schlueter and Contributors\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\n * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]';\nconst NUMERICIDENTIFIER = '0|[1-9]\\\\d*';\nconst NONNUMERICIDENTIFIER = `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`;\nconst GTLT = '((?:<|>)?=?)';\nconst PRERELEASEIDENTIFIER = `(?:${NUMERICIDENTIFIER}|${NONNUMERICIDENTIFIER})`;\nconst PRERELEASE = `(?:-(${PRERELEASEIDENTIFIER}(?:\\\\.${PRERELEASEIDENTIFIER})*))`;\nconst BUILDIDENTIFIER = `${LETTERDASHNUMBER}+`;\nconst BUILD = `(?:\\\\+(${BUILDIDENTIFIER}(?:\\\\.${BUILDIDENTIFIER})*))`;\nconst XRANGEIDENTIFIER = `${NUMERICIDENTIFIER}|x|X|\\\\*`;\nconst XRANGEPLAIN = `[v=\\\\s]*(${XRANGEIDENTIFIER})` +\n    `(?:\\\\.(${XRANGEIDENTIFIER})` +\n    `(?:\\\\.(${XRANGEIDENTIFIER})` +\n    `(?:${PRERELEASE})?${BUILD}?` +\n    `)?)?`;\nconst XRANGE = `^${GTLT}\\\\s*${XRANGEPLAIN}$`;\nconst XRANGE_REGEXP = new RegExp(XRANGE);\nconst HYPHENRANGE = `^\\\\s*(${XRANGEPLAIN})` + `\\\\s+-\\\\s+` + `(${XRANGEPLAIN})` + `\\\\s*$`;\nconst HYPHENRANGE_REGEXP = new RegExp(HYPHENRANGE);\nconst LONETILDE = '(?:~>?)';\nconst TILDE = `^${LONETILDE}${XRANGEPLAIN}$`;\nconst TILDE_REGEXP = new RegExp(TILDE);\nconst LONECARET = '(?:\\\\^)';\nconst CARET = `^${LONECARET}${XRANGEPLAIN}$`;\nconst CARET_REGEXP = new RegExp(CARET);\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L285\n//\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nfunction replaceTilde(comp) {\n    const r = TILDE_REGEXP;\n    return comp.replace(r, (_, M, m, p, pr) => {\n        let ret;\n        if (isX(M)) {\n            ret = '';\n        }\n        else if (isX(m)) {\n            ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n        }\n        else if (isX(p)) {\n            // ~1.2 == >=1.2.0 <1.3.0-0\n            ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n        }\n        else if (pr) {\n            ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n        }\n        else {\n            // ~1.2.3 == >=1.2.3 <1.3.0-0\n            ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;\n        }\n        return ret;\n    });\n}\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L329\n//\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nfunction replaceCaret(comp, options) {\n    const r = CARET_REGEXP;\n    const z = options?.includePrerelease ? '-0' : '';\n    return comp.replace(r, (_, M, m, p, pr) => {\n        let ret;\n        if (isX(M)) {\n            ret = '';\n        }\n        else if (isX(m)) {\n            ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n        }\n        else if (isX(p)) {\n            if (M === '0') {\n                ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n            }\n            else {\n                ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n            }\n        }\n        else if (pr) {\n            if (M === '0') {\n                if (m === '0') {\n                    ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`;\n                }\n                else {\n                    ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n                }\n            }\n            else {\n                ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`;\n            }\n        }\n        else {\n            if (M === '0') {\n                if (m === '0') {\n                    ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`;\n                }\n                else {\n                    ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`;\n                }\n            }\n            else {\n                ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;\n            }\n        }\n        return ret;\n    });\n}\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L390\nfunction replaceXRange(comp, options) {\n    const r = XRANGE_REGEXP;\n    return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n        const xM = isX(M);\n        const xm = xM || isX(m);\n        const xp = xm || isX(p);\n        const anyX = xp;\n        if (gtlt === '=' && anyX) {\n            gtlt = '';\n        }\n        // if we're including prereleases in the match, then we need\n        // to fix this to -0, the lowest possible prerelease value\n        pr = options?.includePrerelease ? '-0' : '';\n        if (xM) {\n            if (gtlt === '>' || gtlt === '<') {\n                // nothing is allowed\n                ret = '<0.0.0-0';\n            }\n            else {\n                // nothing is forbidden\n                ret = '*';\n            }\n        }\n        else if (gtlt && anyX) {\n            // we know patch is an x, because we have any x at all.\n            // replace X with 0\n            if (xm) {\n                m = 0;\n            }\n            p = 0;\n            if (gtlt === '>') {\n                // >1 => >=2.0.0\n                // >1.2 => >=1.3.0\n                gtlt = '>=';\n                if (xm) {\n                    M = +M + 1;\n                    m = 0;\n                    p = 0;\n                }\n                else {\n                    m = +m + 1;\n                    p = 0;\n                }\n            }\n            else if (gtlt === '<=') {\n                // <=0.7.x is actually <0.8.0, since any 0.7.x should\n                // pass.  Similarly, <=7.x is actually <8.0.0, etc.\n                gtlt = '<';\n                if (xm) {\n                    M = +M + 1;\n                }\n                else {\n                    m = +m + 1;\n                }\n            }\n            if (gtlt === '<') {\n                pr = '-0';\n            }\n            ret = `${gtlt + M}.${m}.${p}${pr}`;\n        }\n        else if (xm) {\n            ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n        }\n        else if (xp) {\n            ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`;\n        }\n        return ret;\n    });\n}\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L488\n//\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nfunction replaceHyphen(comp, options) {\n    const r = HYPHENRANGE_REGEXP;\n    return comp.replace(r, (_, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr) => {\n        if (isX(fM)) {\n            from = '';\n        }\n        else if (isX(fm)) {\n            from = `>=${fM}.0.0${options?.includePrerelease ? '-0' : ''}`;\n        }\n        else if (isX(fp)) {\n            from = `>=${fM}.${fm}.0${options?.includePrerelease ? '-0' : ''}`;\n        }\n        else if (fpr) {\n            from = `>=${from}`;\n        }\n        else {\n            from = `>=${from}${options?.includePrerelease ? '-0' : ''}`;\n        }\n        if (isX(tM)) {\n            to = '';\n        }\n        else if (isX(tm)) {\n            to = `<${+tM + 1}.0.0-0`;\n        }\n        else if (isX(tp)) {\n            to = `<${tM}.${+tm + 1}.0-0`;\n        }\n        else if (tpr) {\n            to = `<=${tM}.${tm}.${tp}-${tpr}`;\n        }\n        else if (options?.includePrerelease) {\n            to = `<${tM}.${tm}.${+tp + 1}-0`;\n        }\n        else {\n            to = `<=${to}`;\n        }\n        return `${from} ${to}`.trim();\n    });\n}\n//# sourceMappingURL=semver.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.massUnwrap = exports.unwrap = exports.massWrap = exports.wrap = void 0;\n// Default to complaining loudly when things don't go according to plan.\n// eslint-disable-next-line no-console\nlet logger = console.error.bind(console);\n// Sets a property on an object, preserving its enumerability.\n// This function assumes that the property is already writable.\nfunction defineProperty(obj, name, value) {\n    const enumerable = !!obj[name] &&\n        Object.prototype.propertyIsEnumerable.call(obj, name);\n    Object.defineProperty(obj, name, {\n        configurable: true,\n        enumerable,\n        writable: true,\n        value,\n    });\n}\nconst wrap = (nodule, name, wrapper) => {\n    if (!nodule || !nodule[name]) {\n        logger('no original function ' + String(name) + ' to wrap');\n        return;\n    }\n    if (!wrapper) {\n        logger('no wrapper function');\n        logger(new Error().stack);\n        return;\n    }\n    const original = nodule[name];\n    if (typeof original !== 'function' || typeof wrapper !== 'function') {\n        logger('original object and wrapper must be functions');\n        return;\n    }\n    const wrapped = wrapper(original, name);\n    defineProperty(wrapped, '__original', original);\n    defineProperty(wrapped, '__unwrap', () => {\n        if (nodule[name] === wrapped) {\n            defineProperty(nodule, name, original);\n        }\n    });\n    defineProperty(wrapped, '__wrapped', true);\n    defineProperty(nodule, name, wrapped);\n    return wrapped;\n};\nexports.wrap = wrap;\nconst massWrap = (nodules, names, wrapper) => {\n    if (!nodules) {\n        logger('must provide one or more modules to patch');\n        logger(new Error().stack);\n        return;\n    }\n    else if (!Array.isArray(nodules)) {\n        nodules = [nodules];\n    }\n    if (!(names && Array.isArray(names))) {\n        logger('must provide one or more functions to wrap on modules');\n        return;\n    }\n    nodules.forEach(nodule => {\n        names.forEach(name => {\n            (0, exports.wrap)(nodule, name, wrapper);\n        });\n    });\n};\nexports.massWrap = massWrap;\nconst unwrap = (nodule, name) => {\n    if (!nodule || !nodule[name]) {\n        logger('no function to unwrap.');\n        logger(new Error().stack);\n        return;\n    }\n    const wrapped = nodule[name];\n    if (!wrapped.__unwrap) {\n        logger('no original to unwrap to -- has ' +\n            String(name) +\n            ' already been unwrapped?');\n    }\n    else {\n        wrapped.__unwrap();\n        return;\n    }\n};\nexports.unwrap = unwrap;\nconst massUnwrap = (nodules, names) => {\n    if (!nodules) {\n        logger('must provide one or more modules to patch');\n        logger(new Error().stack);\n        return;\n    }\n    else if (!Array.isArray(nodules)) {\n        nodules = [nodules];\n    }\n    if (!(names && Array.isArray(names))) {\n        logger('must provide one or more functions to unwrap on modules');\n        return;\n    }\n    nodules.forEach(nodule => {\n        names.forEach(name => {\n            (0, exports.unwrap)(nodule, name);\n        });\n    });\n};\nexports.massUnwrap = massUnwrap;\nfunction shimmer(options) {\n    if (options && options.logger) {\n        if (typeof options.logger !== 'function') {\n            logger(\"new logger isn't a function, not replacing\");\n        }\n        else {\n            logger = options.logger;\n        }\n    }\n}\nexports.default = shimmer;\nshimmer.wrap = exports.wrap;\nshimmer.massWrap = exports.massWrap;\nshimmer.unwrap = exports.unwrap;\nshimmer.massUnwrap = exports.massUnwrap;\n//# sourceMappingURL=shimmer.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationAbstract = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst api_logs_1 = require(\"@opentelemetry/api-logs\");\nconst shimmer = require(\"./shimmer\");\n/**\n * Base abstract internal class for instrumenting node and web plugins\n */\nclass InstrumentationAbstract {\n    instrumentationName;\n    instrumentationVersion;\n    _config = {};\n    _tracer;\n    _meter;\n    _logger;\n    _diag;\n    constructor(instrumentationName, instrumentationVersion, config) {\n        this.instrumentationName = instrumentationName;\n        this.instrumentationVersion = instrumentationVersion;\n        this.setConfig(config);\n        this._diag = api_1.diag.createComponentLogger({\n            namespace: instrumentationName,\n        });\n        this._tracer = api_1.trace.getTracer(instrumentationName, instrumentationVersion);\n        this._meter = api_1.metrics.getMeter(instrumentationName, instrumentationVersion);\n        this._logger = api_logs_1.logs.getLogger(instrumentationName, instrumentationVersion);\n        this._updateMetricInstruments();\n    }\n    /* Api to wrap instrumented method */\n    _wrap = shimmer.wrap;\n    /* Api to unwrap instrumented methods */\n    _unwrap = shimmer.unwrap;\n    /* Api to mass wrap instrumented method */\n    _massWrap = shimmer.massWrap;\n    /* Api to mass unwrap instrumented methods */\n    _massUnwrap = shimmer.massUnwrap;\n    /* Returns meter */\n    get meter() {\n        return this._meter;\n    }\n    /**\n     * Sets MeterProvider to this plugin\n     * @param meterProvider\n     */\n    setMeterProvider(meterProvider) {\n        this._meter = meterProvider.getMeter(this.instrumentationName, this.instrumentationVersion);\n        this._updateMetricInstruments();\n    }\n    /* Returns logger */\n    get logger() {\n        return this._logger;\n    }\n    /**\n     * Sets LoggerProvider to this plugin\n     * @param loggerProvider\n     */\n    setLoggerProvider(loggerProvider) {\n        this._logger = loggerProvider.getLogger(this.instrumentationName, this.instrumentationVersion);\n    }\n    /**\n     * @experimental\n     *\n     * Get module definitions defined by {@link init}.\n     * This can be used for experimental compile-time instrumentation.\n     *\n     * @returns an array of {@link InstrumentationModuleDefinition}\n     */\n    getModuleDefinitions() {\n        const initResult = this.init() ?? [];\n        if (!Array.isArray(initResult)) {\n            return [initResult];\n        }\n        return initResult;\n    }\n    /**\n     * Sets the new metric instruments with the current Meter.\n     */\n    _updateMetricInstruments() {\n        return;\n    }\n    /* Returns InstrumentationConfig */\n    getConfig() {\n        return this._config;\n    }\n    /**\n     * Sets InstrumentationConfig to this plugin\n     * @param config\n     */\n    setConfig(config) {\n        // copy config first level properties to ensure they are immutable.\n        // nested properties are not copied, thus are mutable from the outside.\n        this._config = {\n            enabled: true,\n            ...config,\n        };\n    }\n    /**\n     * Sets TraceProvider to this plugin\n     * @param tracerProvider\n     */\n    setTracerProvider(tracerProvider) {\n        this._tracer = tracerProvider.getTracer(this.instrumentationName, this.instrumentationVersion);\n    }\n    /* Returns tracer */\n    get tracer() {\n        return this._tracer;\n    }\n    /**\n     * Execute span customization hook, if configured, and log any errors.\n     * Any semantics of the trigger and info are defined by the specific instrumentation.\n     * @param hookHandler The optional hook handler which the user has configured via instrumentation config\n     * @param triggerName The name of the trigger for executing the hook for logging purposes\n     * @param span The span to which the hook should be applied\n     * @param info The info object to be passed to the hook, with useful data the hook may use\n     */\n    _runSpanCustomizationHook(hookHandler, triggerName, span, info) {\n        if (!hookHandler) {\n            return;\n        }\n        try {\n            hookHandler(span, info);\n        }\n        catch (e) {\n            this._diag.error(`Error running span customization hook due to exception in handler`, { triggerName }, e);\n        }\n    }\n}\nexports.InstrumentationAbstract = InstrumentationAbstract;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModuleNameTrie = exports.ModuleNameSeparator = void 0;\nexports.ModuleNameSeparator = '/';\n/**\n * Node in a `ModuleNameTrie`\n */\nclass ModuleNameTrieNode {\n    hooks = [];\n    children = new Map();\n}\n/**\n * Trie containing nodes that represent a part of a module name (i.e. the parts separated by forward slash)\n */\nclass ModuleNameTrie {\n    _trie = new ModuleNameTrieNode();\n    _counter = 0;\n    /**\n     * Insert a module hook into the trie\n     *\n     * @param {Hooked} hook Hook\n     */\n    insert(hook) {\n        let trieNode = this._trie;\n        for (const moduleNamePart of hook.moduleName.split(exports.ModuleNameSeparator)) {\n            let nextNode = trieNode.children.get(moduleNamePart);\n            if (!nextNode) {\n                nextNode = new ModuleNameTrieNode();\n                trieNode.children.set(moduleNamePart, nextNode);\n            }\n            trieNode = nextNode;\n        }\n        trieNode.hooks.push({ hook, insertedId: this._counter++ });\n    }\n    /**\n     * Search for matching hooks in the trie\n     *\n     * @param {string} moduleName Module name\n     * @param {boolean} maintainInsertionOrder Whether to return the results in insertion order\n     * @param {boolean} fullOnly Whether to return only full matches\n     * @returns {Hooked[]} Matching hooks\n     */\n    search(moduleName, { maintainInsertionOrder, fullOnly } = {}) {\n        let trieNode = this._trie;\n        const results = [];\n        let foundFull = true;\n        for (const moduleNamePart of moduleName.split(exports.ModuleNameSeparator)) {\n            const nextNode = trieNode.children.get(moduleNamePart);\n            if (!nextNode) {\n                foundFull = false;\n                break;\n            }\n            if (!fullOnly) {\n                results.push(...nextNode.hooks);\n            }\n            trieNode = nextNode;\n        }\n        if (fullOnly && foundFull) {\n            results.push(...trieNode.hooks);\n        }\n        if (results.length === 0) {\n            return [];\n        }\n        if (results.length === 1) {\n            return [results[0].hook];\n        }\n        if (maintainInsertionOrder) {\n            results.sort((a, b) => a.insertedId - b.insertedId);\n        }\n        return results.map(({ hook }) => hook);\n    }\n}\nexports.ModuleNameTrie = ModuleNameTrie;\n//# sourceMappingURL=ModuleNameTrie.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequireInTheMiddleSingleton = void 0;\nconst require_in_the_middle_1 = require(\"require-in-the-middle\");\nconst path = require(\"path\");\nconst ModuleNameTrie_1 = require(\"./ModuleNameTrie\");\n/**\n * Whether Mocha is running in this process\n * Inspired by https://github.com/AndreasPizsa/detect-mocha\n *\n * @type {boolean}\n */\nconst isMocha = [\n    'afterEach',\n    'after',\n    'beforeEach',\n    'before',\n    'describe',\n    'it',\n].every(fn => {\n    // @ts-expect-error TS7053: Element implicitly has an 'any' type\n    return typeof global[fn] === 'function';\n});\n/**\n * Singleton class for `require-in-the-middle`\n * Allows instrumentation plugins to patch modules with only a single `require` patch\n * WARNING: Because this class will create its own `require-in-the-middle` (RITM) instance,\n * we should minimize the number of new instances of this class.\n * Multiple instances of `@opentelemetry/instrumentation` (e.g. multiple versions) in a single process\n * will result in multiple instances of RITM, which will have an impact\n * on the performance of instrumentation hooks being applied.\n */\nclass RequireInTheMiddleSingleton {\n    _moduleNameTrie = new ModuleNameTrie_1.ModuleNameTrie();\n    static _instance;\n    constructor() {\n        this._initialize();\n    }\n    _initialize() {\n        new require_in_the_middle_1.Hook(\n        // Intercept all `require` calls; we will filter the matching ones below\n        null, { internals: true }, (exports, name, basedir) => {\n            // For internal files on Windows, `name` will use backslash as the path separator\n            const normalizedModuleName = normalizePathSeparators(name);\n            const matches = this._moduleNameTrie.search(normalizedModuleName, {\n                maintainInsertionOrder: true,\n                // For core modules (e.g. `fs`), do not match on sub-paths (e.g. `fs/promises').\n                // This matches the behavior of `require-in-the-middle`.\n                // `basedir` is always `undefined` for core modules.\n                fullOnly: basedir === undefined,\n            });\n            for (const { onRequire } of matches) {\n                exports = onRequire(exports, name, basedir);\n            }\n            return exports;\n        });\n    }\n    /**\n     * Register a hook with `require-in-the-middle`\n     *\n     * @param {string} moduleName Module name\n     * @param {OnRequireFn} onRequire Hook function\n     * @returns {Hooked} Registered hook\n     */\n    register(moduleName, onRequire) {\n        const hooked = { moduleName, onRequire };\n        this._moduleNameTrie.insert(hooked);\n        return hooked;\n    }\n    /**\n     * Get the `RequireInTheMiddleSingleton` singleton\n     *\n     * @returns {RequireInTheMiddleSingleton} Singleton of `RequireInTheMiddleSingleton`\n     */\n    static getInstance() {\n        // Mocha runs all test suites in the same process\n        // This prevents test suites from sharing a singleton\n        if (isMocha)\n            return new RequireInTheMiddleSingleton();\n        return (this._instance =\n            this._instance ?? new RequireInTheMiddleSingleton());\n    }\n}\nexports.RequireInTheMiddleSingleton = RequireInTheMiddleSingleton;\n/**\n * Normalize the path separators to forward slash in a module name or path\n *\n * @param {string} moduleNameOrPath Module name or path\n * @returns {string} Normalized module name or path\n */\nfunction normalizePathSeparators(moduleNameOrPath) {\n    return path.sep !== ModuleNameTrie_1.ModuleNameSeparator\n        ? moduleNameOrPath.split(path.sep).join(ModuleNameTrie_1.ModuleNameSeparator)\n        : moduleNameOrPath;\n}\n//# sourceMappingURL=RequireInTheMiddleSingleton.js.map",
-    "// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.\n//\n// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.\n\nconst importHooks = [] // TODO should this be a Set?\nconst setters = new WeakMap()\nconst getters = new WeakMap()\nconst specifiers = new Map()\nconst toHook = []\n\nconst proxyHandler = {\n  set (target, name, value) {\n    const set = setters.get(target)\n    const setter = set && set[name]\n    if (typeof setter === 'function') {\n      return setter(value)\n    }\n    // If a module doesn't export the property being assigned (e.g. no default\n    // export), there is no setter to call. Don't crash userland code.\n    return true\n  },\n\n  get (target, name) {\n    if (name === Symbol.toStringTag) {\n      return 'Module'\n    }\n\n    const getter = getters.get(target)[name]\n\n    if (typeof getter === 'function') {\n      return getter()\n    }\n  },\n\n  defineProperty (target, property, descriptor) {\n    if ((!('value' in descriptor))) {\n      throw new Error('Getters/setters are not supported for exports property descriptors.')\n    }\n\n    const set = setters.get(target)\n    const setter = set && set[property]\n    if (typeof setter === 'function') {\n      return setter(descriptor.value)\n    }\n    return true\n  }\n}\n\nfunction register (name, namespace, set, get, specifier) {\n  specifiers.set(name, specifier)\n  setters.set(namespace, set)\n  getters.set(namespace, get)\n  const proxy = new Proxy(namespace, proxyHandler)\n  importHooks.forEach(hook => hook(name, proxy, specifier))\n  toHook.push([name, proxy, specifier])\n}\n\nexports.register = register\nexports.importHooks = importHooks\nexports.specifiers = specifiers\nexports.toHook = toHook\n",
-    "// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.\n//\n// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.\n\nconst path = require('path')\nconst moduleDetailsFromPath = require('module-details-from-path')\nconst { fileURLToPath } = require('url')\nconst { MessageChannel } = require('worker_threads')\n\nlet { isBuiltin } = require('module')\nif (!isBuiltin) {\n  isBuiltin = () => true\n}\n\nconst {\n  importHooks,\n  specifiers,\n  toHook\n} = require('./lib/register')\n\nfunction addHook (hook) {\n  importHooks.push(hook)\n  toHook.forEach(([name, namespace, specifier]) => hook(name, namespace, specifier))\n}\n\nfunction removeHook (hook) {\n  const index = importHooks.indexOf(hook)\n  if (index > -1) {\n    importHooks.splice(index, 1)\n  }\n}\n\nfunction callHookFn (hookFn, namespace, name, baseDir) {\n  const newDefault = hookFn(namespace, name, baseDir)\n  if (newDefault && newDefault !== namespace) {\n    // Only ESM modules that actually export `default` can have it reassigned.\n    // Some hooks return a value unconditionally; avoid crashing when the module\n    // has no default export (see issue #188).\n    if ('default' in namespace) {\n      namespace.default = newDefault\n    }\n  }\n}\n\nlet sendModulesToLoader\n\n/**\n * EXPERIMENTAL\n * This feature is experimental and may change in minor versions.\n * **NOTE** This feature is incompatible with the {internals: true} Hook option.\n *\n * Creates a message channel with a port that can be used to add hooks to the\n * list of exclusively included modules.\n *\n * This can be used to only wrap modules that are Hook'ed, however modules need\n * to be hooked before they are imported.\n *\n * ```ts\n * import { register } from 'module'\n * import { Hook, createAddHookMessageChannel } from 'import-in-the-middle'\n *\n * const { registerOptions, waitForAllMessagesAcknowledged } = createAddHookMessageChannel()\n *\n * register('import-in-the-middle/hook.mjs', import.meta.url, registerOptions)\n *\n * Hook(['fs'], (exported, name, baseDir) => {\n *   // Instrument the fs module\n * })\n *\n * // Ensure that the loader has acknowledged all the modules\n * // before we allow execution to continue\n * await waitForAllMessagesAcknowledged()\n * ```\n */\nfunction createAddHookMessageChannel () {\n  const { port1, port2 } = new MessageChannel()\n  let pendingAckCount = 0\n  let resolveFn\n\n  sendModulesToLoader = (modules) => {\n    pendingAckCount++\n    port1.postMessage(modules)\n  }\n\n  port1.on('message', () => {\n    pendingAckCount--\n\n    if (resolveFn && pendingAckCount <= 0) {\n      resolveFn()\n    }\n  }).unref()\n\n  function waitForAllMessagesAcknowledged () {\n    // This timer is to prevent the process from exiting with code 13:\n    // 13: Unsettled Top-Level Await.\n    const timer = setInterval(() => { }, 1000)\n    const promise = new Promise((resolve) => {\n      resolveFn = resolve\n    }).then(() => { clearInterval(timer) })\n\n    if (pendingAckCount === 0) {\n      resolveFn()\n    }\n\n    return promise\n  }\n\n  const addHookMessagePort = port2\n  const registerOptions = { data: { addHookMessagePort, include: [] }, transferList: [addHookMessagePort] }\n\n  return { registerOptions, addHookMessagePort, waitForAllMessagesAcknowledged }\n}\n\nfunction Hook (modules, options, hookFn) {\n  if ((this instanceof Hook) === false) return new Hook(modules, options, hookFn)\n  if (typeof modules === 'function') {\n    hookFn = modules\n    modules = null\n    options = null\n  } else if (typeof options === 'function') {\n    hookFn = options\n    options = null\n  }\n  const internals = options ? options.internals === true : false\n\n  if (sendModulesToLoader && Array.isArray(modules)) {\n    sendModulesToLoader(modules)\n  }\n\n  this._iitmHook = (name, namespace, specifier) => {\n    const loadUrl = name\n    const isNodeUrl = loadUrl.startsWith('node:')\n    let filePath, baseDir\n\n    if (isNodeUrl) {\n      // Normalize builtin module name to *not* have 'node:' prefix, unless\n      // required, as it is for 'node:test' and some others.  `module.isBuiltin`\n      // is available in all Node.js versions that have node:-only modules.\n      const unprefixed = name.slice(5)\n      if (isBuiltin(unprefixed)) {\n        name = unprefixed\n      }\n    } else if (loadUrl.startsWith('file://')) {\n      const stackTraceLimit = Error.stackTraceLimit\n      Error.stackTraceLimit = 0\n      try {\n        filePath = fileURLToPath(name)\n        name = filePath\n      } catch (e) {}\n      Error.stackTraceLimit = stackTraceLimit\n\n      if (filePath) {\n        const details = moduleDetailsFromPath(filePath)\n        if (details) {\n          name = details.name\n          baseDir = details.basedir\n        }\n      }\n    }\n\n    if (modules) {\n      for (const matchArg of modules) {\n        if (filePath && matchArg === filePath) {\n          // abspath match\n          callHookFn(hookFn, namespace, filePath, undefined)\n        } else if (matchArg === name) {\n          if (!baseDir) {\n            // built-in module (or unexpected non file:// name?)\n            callHookFn(hookFn, namespace, name, baseDir)\n          } else if (baseDir.endsWith(specifiers.get(loadUrl))) {\n            // An import of the top-level module (e.g. `import 'ioredis'`).\n            // Note: Slight behaviour difference from RITM. RITM uses\n            // `require.resolve(name)` to see if filename is the module\n            // main file, which will catch `require('ioredis/built/index.js')`.\n            // The check here will not catch `import 'ioredis/built/index.js'`.\n            callHookFn(hookFn, namespace, name, baseDir)\n          } else if (internals) {\n            const internalPath = name + path.sep + path.relative(baseDir, filePath)\n            callHookFn(hookFn, namespace, internalPath, baseDir)\n          }\n        } else if (matchArg === specifier) {\n          callHookFn(hookFn, namespace, specifier, baseDir)\n        }\n      }\n    } else {\n      callHookFn(hookFn, namespace, name, baseDir)\n    }\n  }\n\n  addHook(this._iitmHook)\n}\n\nHook.prototype.unhook = function () {\n  removeHook(this._iitmHook)\n}\n\nmodule.exports = Hook\nmodule.exports.Hook = Hook\nmodule.exports.addHook = addHook\nmodule.exports.removeHook = removeHook\nmodule.exports.createAddHookMessageChannel = createAddHookMessageChannel\n",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isWrapped = exports.safeExecuteInTheMiddleAsync = exports.safeExecuteInTheMiddle = void 0;\n/**\n * function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nfunction safeExecuteInTheMiddle(execute, onFinish, preventThrowingError) {\n    let error;\n    let result;\n    try {\n        result = execute();\n    }\n    catch (e) {\n        error = e;\n    }\n    finally {\n        onFinish(error, result);\n        if (error && !preventThrowingError) {\n            // eslint-disable-next-line no-unsafe-finally\n            throw error;\n        }\n        // eslint-disable-next-line no-unsafe-finally\n        return result;\n    }\n}\nexports.safeExecuteInTheMiddle = safeExecuteInTheMiddle;\n/**\n * Async function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nasync function safeExecuteInTheMiddleAsync(execute, onFinish, preventThrowingError) {\n    let error;\n    let result;\n    try {\n        result = await execute();\n    }\n    catch (e) {\n        error = e;\n    }\n    finally {\n        onFinish(error, result);\n        if (error && !preventThrowingError) {\n            // eslint-disable-next-line no-unsafe-finally\n            throw error;\n        }\n        // eslint-disable-next-line no-unsafe-finally\n        return result;\n    }\n}\nexports.safeExecuteInTheMiddleAsync = safeExecuteInTheMiddleAsync;\n/**\n * Checks if certain function has been already wrapped\n * @param func\n */\nfunction isWrapped(func) {\n    return (typeof func === 'function' &&\n        typeof func.__original === 'function' &&\n        typeof func.__unwrap === 'function' &&\n        func.__wrapped === true);\n}\nexports.isWrapped = isWrapped;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationBase = void 0;\nconst path = require(\"path\");\nconst util_1 = require(\"util\");\nconst semver_1 = require(\"../../semver\");\nconst shimmer_1 = require(\"../../shimmer\");\nconst instrumentation_1 = require(\"../../instrumentation\");\nconst RequireInTheMiddleSingleton_1 = require(\"./RequireInTheMiddleSingleton\");\nconst import_in_the_middle_1 = require(\"import-in-the-middle\");\nconst api_1 = require(\"@opentelemetry/api\");\nconst require_in_the_middle_1 = require(\"require-in-the-middle\");\nconst fs_1 = require(\"fs\");\nconst utils_1 = require(\"../../utils\");\n/**\n * Base abstract class for instrumenting node plugins\n */\nclass InstrumentationBase extends instrumentation_1.InstrumentationAbstract {\n    _modules;\n    _hooks = [];\n    _requireInTheMiddleSingleton = RequireInTheMiddleSingleton_1.RequireInTheMiddleSingleton.getInstance();\n    _enabled = false;\n    constructor(instrumentationName, instrumentationVersion, config) {\n        super(instrumentationName, instrumentationVersion, config);\n        let modules = this.init();\n        if (modules && !Array.isArray(modules)) {\n            modules = [modules];\n        }\n        this._modules = modules || [];\n        if (this._config.enabled) {\n            this.enable();\n        }\n    }\n    _wrap = (moduleExports, name, wrapper) => {\n        if ((0, utils_1.isWrapped)(moduleExports[name])) {\n            this._unwrap(moduleExports, name);\n        }\n        if (!util_1.types.isProxy(moduleExports)) {\n            return (0, shimmer_1.wrap)(moduleExports, name, wrapper);\n        }\n        else {\n            const wrapped = (0, shimmer_1.wrap)(Object.assign({}, moduleExports), name, wrapper);\n            Object.defineProperty(moduleExports, name, {\n                value: wrapped,\n            });\n            return wrapped;\n        }\n    };\n    _unwrap = (moduleExports, name) => {\n        if (!util_1.types.isProxy(moduleExports)) {\n            return (0, shimmer_1.unwrap)(moduleExports, name);\n        }\n        else {\n            return Object.defineProperty(moduleExports, name, {\n                value: moduleExports[name],\n            });\n        }\n    };\n    _massWrap = (moduleExportsArray, names, wrapper) => {\n        if (!moduleExportsArray) {\n            api_1.diag.error('must provide one or more modules to patch');\n            return;\n        }\n        else if (!Array.isArray(moduleExportsArray)) {\n            moduleExportsArray = [moduleExportsArray];\n        }\n        if (!(names && Array.isArray(names))) {\n            api_1.diag.error('must provide one or more functions to wrap on modules');\n            return;\n        }\n        moduleExportsArray.forEach(moduleExports => {\n            names.forEach(name => {\n                this._wrap(moduleExports, name, wrapper);\n            });\n        });\n    };\n    _massUnwrap = (moduleExportsArray, names) => {\n        if (!moduleExportsArray) {\n            api_1.diag.error('must provide one or more modules to patch');\n            return;\n        }\n        else if (!Array.isArray(moduleExportsArray)) {\n            moduleExportsArray = [moduleExportsArray];\n        }\n        if (!(names && Array.isArray(names))) {\n            api_1.diag.error('must provide one or more functions to wrap on modules');\n            return;\n        }\n        moduleExportsArray.forEach(moduleExports => {\n            names.forEach(name => {\n                this._unwrap(moduleExports, name);\n            });\n        });\n    };\n    _warnOnPreloadedModules() {\n        this._modules.forEach((module) => {\n            const { name } = module;\n            try {\n                const resolvedModule = require.resolve(name);\n                if (require.cache[resolvedModule]) {\n                    // Module is already cached, which means the instrumentation hook might not work\n                    this._diag.warn(`Module ${name} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${name}`);\n                }\n            }\n            catch {\n                // Module isn't available, we can simply skip\n            }\n        });\n    }\n    _extractPackageVersion(baseDir) {\n        try {\n            const json = (0, fs_1.readFileSync)(path.join(baseDir, 'package.json'), {\n                encoding: 'utf8',\n            });\n            const version = JSON.parse(json).version;\n            return typeof version === 'string' ? version : undefined;\n        }\n        catch {\n            api_1.diag.warn('Failed extracting version', baseDir);\n        }\n        return undefined;\n    }\n    _onRequire(module, exports, name, baseDir) {\n        if (!baseDir) {\n            if (typeof module.patch === 'function') {\n                module.moduleExports = exports;\n                if (this._enabled) {\n                    this._diag.debug('Applying instrumentation patch for nodejs core module on require hook', {\n                        module: module.name,\n                    });\n                    return module.patch(exports);\n                }\n            }\n            return exports;\n        }\n        const version = this._extractPackageVersion(baseDir);\n        module.moduleVersion = version;\n        if (module.name === name) {\n            // main module\n            if (isSupported(module.supportedVersions, version, module.includePrerelease)) {\n                if (typeof module.patch === 'function') {\n                    module.moduleExports = exports;\n                    if (this._enabled) {\n                        this._diag.debug('Applying instrumentation patch for module on require hook', {\n                            module: module.name,\n                            version: module.moduleVersion,\n                            baseDir,\n                        });\n                        return module.patch(exports, module.moduleVersion);\n                    }\n                }\n            }\n            return exports;\n        }\n        // internal file\n        const files = module.files ?? [];\n        const normalizedName = path.normalize(name);\n        const supportedFileInstrumentations = files\n            .filter(f => f.name === normalizedName)\n            .filter(f => isSupported(f.supportedVersions, version, module.includePrerelease));\n        return supportedFileInstrumentations.reduce((patchedExports, file) => {\n            file.moduleExports = patchedExports;\n            if (this._enabled) {\n                this._diag.debug('Applying instrumentation patch for nodejs module file on require hook', {\n                    module: module.name,\n                    version: module.moduleVersion,\n                    fileName: file.name,\n                    baseDir,\n                });\n                // patch signature is not typed, so we cast it assuming it's correct\n                return file.patch(patchedExports, module.moduleVersion);\n            }\n            return patchedExports;\n        }, exports);\n    }\n    enable() {\n        if (this._enabled) {\n            return;\n        }\n        this._enabled = true;\n        // already hooked, just call patch again\n        if (this._hooks.length > 0) {\n            for (const module of this._modules) {\n                if (typeof module.patch === 'function' && module.moduleExports) {\n                    this._diag.debug('Applying instrumentation patch for nodejs module on instrumentation enabled', {\n                        module: module.name,\n                        version: module.moduleVersion,\n                    });\n                    module.patch(module.moduleExports, module.moduleVersion);\n                }\n                for (const file of module.files) {\n                    if (file.moduleExports) {\n                        this._diag.debug('Applying instrumentation patch for nodejs module file on instrumentation enabled', {\n                            module: module.name,\n                            version: module.moduleVersion,\n                            fileName: file.name,\n                        });\n                        file.patch(file.moduleExports, module.moduleVersion);\n                    }\n                }\n            }\n            return;\n        }\n        this._warnOnPreloadedModules();\n        for (const module of this._modules) {\n            const hookFn = (exports, name, baseDir) => {\n                if (!baseDir && path.isAbsolute(name)) {\n                    const parsedPath = path.parse(name);\n                    name = parsedPath.name;\n                    baseDir = parsedPath.dir;\n                }\n                return this._onRequire(module, exports, name, baseDir);\n            };\n            const onRequire = (exports, name, baseDir) => {\n                return this._onRequire(module, exports, name, baseDir);\n            };\n            // `RequireInTheMiddleSingleton` does not support absolute paths.\n            // For an absolute paths, we must create a separate instance of the\n            // require-in-the-middle `Hook`.\n            const hook = path.isAbsolute(module.name)\n                ? new require_in_the_middle_1.Hook([module.name], { internals: true }, onRequire)\n                : this._requireInTheMiddleSingleton.register(module.name, onRequire);\n            this._hooks.push(hook);\n            const esmHook = new import_in_the_middle_1.Hook([module.name], { internals: false }, hookFn);\n            this._hooks.push(esmHook);\n        }\n    }\n    disable() {\n        if (!this._enabled) {\n            return;\n        }\n        this._enabled = false;\n        for (const module of this._modules) {\n            if (typeof module.unpatch === 'function' && module.moduleExports) {\n                this._diag.debug('Removing instrumentation patch for nodejs module on instrumentation disabled', {\n                    module: module.name,\n                    version: module.moduleVersion,\n                });\n                module.unpatch(module.moduleExports, module.moduleVersion);\n            }\n            for (const file of module.files) {\n                if (file.moduleExports) {\n                    this._diag.debug('Removing instrumentation patch for nodejs module file on instrumentation disabled', {\n                        module: module.name,\n                        version: module.moduleVersion,\n                        fileName: file.name,\n                    });\n                    file.unpatch(file.moduleExports, module.moduleVersion);\n                }\n            }\n        }\n    }\n    isEnabled() {\n        return this._enabled;\n    }\n}\nexports.InstrumentationBase = InstrumentationBase;\nfunction isSupported(supportedVersions, version, includePrerelease) {\n    if (typeof version === 'undefined') {\n        // If we don't have the version, accept the wildcard case only\n        return supportedVersions.includes('*');\n    }\n    return supportedVersions.some(supportedVersion => {\n        return (0, semver_1.satisfies)(version, supportedVersion, { includePrerelease });\n    });\n}\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = void 0;\nvar path_1 = require(\"path\");\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return path_1.normalize; } });\n//# sourceMappingURL=normalize.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = exports.InstrumentationBase = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return instrumentation_1.InstrumentationBase; } });\nvar normalize_1 = require(\"./normalize\");\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return normalize_1.normalize; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = exports.InstrumentationBase = void 0;\nvar node_1 = require(\"./node\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return node_1.InstrumentationBase; } });\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return node_1.normalize; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationNodeModuleDefinition = void 0;\nclass InstrumentationNodeModuleDefinition {\n    name;\n    supportedVersions;\n    patch;\n    unpatch;\n    files;\n    constructor(name, supportedVersions, \n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    patch, \n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    unpatch, files) {\n        this.name = name;\n        this.supportedVersions = supportedVersions;\n        this.patch = patch;\n        this.unpatch = unpatch;\n        this.files = files || [];\n    }\n}\nexports.InstrumentationNodeModuleDefinition = InstrumentationNodeModuleDefinition;\n//# sourceMappingURL=instrumentationNodeModuleDefinition.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentationNodeModuleFile = void 0;\nconst index_1 = require(\"./platform/index\");\nclass InstrumentationNodeModuleFile {\n    supportedVersions;\n    patch;\n    unpatch;\n    name;\n    constructor(name, supportedVersions, \n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    patch, \n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    unpatch) {\n        this.supportedVersions = supportedVersions;\n        this.patch = patch;\n        this.unpatch = unpatch;\n        this.name = (0, index_1.normalize)(name);\n    }\n}\nexports.InstrumentationNodeModuleFile = InstrumentationNodeModuleFile;\n//# sourceMappingURL=instrumentationNodeModuleFile.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semconvStabilityFromStr = exports.SemconvStability = void 0;\nvar SemconvStability;\n(function (SemconvStability) {\n    /** Emit only stable semantic conventions. */\n    SemconvStability[SemconvStability[\"STABLE\"] = 1] = \"STABLE\";\n    /** Emit only old semantic conventions. */\n    SemconvStability[SemconvStability[\"OLD\"] = 2] = \"OLD\";\n    /** Emit both stable and old semantic conventions. */\n    SemconvStability[SemconvStability[\"DUPLICATE\"] = 3] = \"DUPLICATE\";\n})(SemconvStability = exports.SemconvStability || (exports.SemconvStability = {}));\n/**\n * Determine the appropriate semconv stability for the given namespace.\n *\n * This will parse the given string of comma-separated values (often\n * `process.env.OTEL_SEMCONV_STABILITY_OPT_IN`) looking for the `${namespace}`\n * or `${namespace}/dup` tokens. This is a pattern defined by a number of\n * non-normative semconv documents.\n *\n * For example:\n * - namespace 'http': https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\n * - namespace 'database': https://opentelemetry.io/docs/specs/semconv/non-normative/database-migration/\n * - namespace 'k8s': https://opentelemetry.io/docs/specs/semconv/non-normative/k8s-migration/\n *\n * Usage:\n *\n *  import {SemconvStability, semconvStabilityFromStr} from '@opentelemetry/instrumentation';\n *\n *  export class FooInstrumentation extends InstrumentationBase {\n *    private _semconvStability: SemconvStability;\n *    constructor(config: FooInstrumentationConfig = {}) {\n *      super('@opentelemetry/instrumentation-foo', VERSION, config);\n *\n *      // When supporting the OTEL_SEMCONV_STABILITY_OPT_IN envvar\n *      this._semconvStability = semconvStabilityFromStr(\n *        'http',\n *        process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n *      );\n *\n *      // or when supporting a `semconvStabilityOptIn` config option (e.g. for\n *      // the web where there are no envvars).\n *      this._semconvStability = semconvStabilityFromStr(\n *        'http',\n *        config?.semconvStabilityOptIn\n *      );\n *    }\n *  }\n *\n *  // Then, to apply semconv, use the following or similar:\n *  if (this._semconvStability & SemconvStability.OLD) {\n *    // ...\n *  }\n *  if (this._semconvStability & SemconvStability.STABLE) {\n *    // ...\n *  }\n *\n */\nfunction semconvStabilityFromStr(namespace, str) {\n    let semconvStability = SemconvStability.OLD;\n    // The same parsing of `str` as `getStringListFromEnv` from the core pkg.\n    const entries = str\n        ?.split(',')\n        .map(v => v.trim())\n        .filter(s => s !== '');\n    for (const entry of entries ?? []) {\n        if (entry.toLowerCase() === namespace + '/dup') {\n            // DUPLICATE takes highest precedence.\n            semconvStability = SemconvStability.DUPLICATE;\n            break;\n        }\n        else if (entry.toLowerCase() === namespace) {\n            semconvStability = SemconvStability.STABLE;\n        }\n    }\n    return semconvStability;\n}\nexports.semconvStabilityFromStr = semconvStabilityFromStr;\n//# sourceMappingURL=semconvStability.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semconvStabilityFromStr = exports.SemconvStability = exports.safeExecuteInTheMiddleAsync = exports.safeExecuteInTheMiddle = exports.isWrapped = exports.InstrumentationNodeModuleFile = exports.InstrumentationNodeModuleDefinition = exports.InstrumentationBase = exports.registerInstrumentations = void 0;\nvar autoLoader_1 = require(\"./autoLoader\");\nObject.defineProperty(exports, \"registerInstrumentations\", { enumerable: true, get: function () { return autoLoader_1.registerInstrumentations; } });\nvar index_1 = require(\"./platform/index\");\nObject.defineProperty(exports, \"InstrumentationBase\", { enumerable: true, get: function () { return index_1.InstrumentationBase; } });\nvar instrumentationNodeModuleDefinition_1 = require(\"./instrumentationNodeModuleDefinition\");\nObject.defineProperty(exports, \"InstrumentationNodeModuleDefinition\", { enumerable: true, get: function () { return instrumentationNodeModuleDefinition_1.InstrumentationNodeModuleDefinition; } });\nvar instrumentationNodeModuleFile_1 = require(\"./instrumentationNodeModuleFile\");\nObject.defineProperty(exports, \"InstrumentationNodeModuleFile\", { enumerable: true, get: function () { return instrumentationNodeModuleFile_1.InstrumentationNodeModuleFile; } });\nvar utils_1 = require(\"./utils\");\nObject.defineProperty(exports, \"isWrapped\", { enumerable: true, get: function () { return utils_1.isWrapped; } });\nObject.defineProperty(exports, \"safeExecuteInTheMiddle\", { enumerable: true, get: function () { return utils_1.safeExecuteInTheMiddle; } });\nObject.defineProperty(exports, \"safeExecuteInTheMiddleAsync\", { enumerable: true, get: function () { return utils_1.safeExecuteInTheMiddleAsync; } });\nvar semconvStability_1 = require(\"./semconvStability\");\nObject.defineProperty(exports, \"SemconvStability\", { enumerable: true, get: function () { return semconvStability_1.SemconvStability; } });\nObject.defineProperty(exports, \"semconvStabilityFromStr\", { enumerable: true, get: function () { return semconvStability_1.semconvStabilityFromStr; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.59.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-hapi';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HapiLifecycleMethodNames = exports.HapiLayerType = exports.handlerPatched = exports.HapiComponentName = void 0;\nexports.HapiComponentName = '@hapi/hapi';\n/**\n * This symbol is used to mark a Hapi route handler or server extension handler as\n * already patched, since its possible to use these handlers multiple times\n * i.e. when allowing multiple versions of one plugin, or when registering a plugin\n * multiple times on different servers.\n */\nexports.handlerPatched = Symbol('hapi-handler-patched');\nexports.HapiLayerType = {\n    ROUTER: 'router',\n    PLUGIN: 'plugin',\n    EXT: 'server.ext',\n};\nexports.HapiLifecycleMethodNames = new Set([\n    'onPreAuth',\n    'onCredentials',\n    'onPostAuth',\n    'onPreHandler',\n    'onPostHandler',\n    'onPreResponse',\n    'onRequest',\n]);\n//# sourceMappingURL=internal-types.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ATTR_HTTP_METHOD = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `http.request.method` instead.\n *\n * @example GET\n * @example POST\n * @example HEAD\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.method`.\n */\nexports.ATTR_HTTP_METHOD = 'http.method';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar AttributeNames;\n(function (AttributeNames) {\n    AttributeNames[\"HAPI_TYPE\"] = \"hapi.type\";\n    AttributeNames[\"PLUGIN_NAME\"] = \"hapi.plugin.name\";\n    AttributeNames[\"EXT_TYPE\"] = \"server.ext.type\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getPluginFromInput = exports.getExtMetadata = exports.getRouteMetadata = exports.isPatchableExtMethod = exports.isDirectExtInput = exports.isLifecycleExtEventObj = exports.isLifecycleExtType = exports.getPluginName = void 0;\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst internal_types_1 = require(\"./internal-types\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nfunction getPluginName(plugin) {\n    if (plugin.name) {\n        return plugin.name;\n    }\n    else {\n        return plugin.pkg.name;\n    }\n}\nexports.getPluginName = getPluginName;\nconst isLifecycleExtType = (variableToCheck) => {\n    return (typeof variableToCheck === 'string' &&\n        internal_types_1.HapiLifecycleMethodNames.has(variableToCheck));\n};\nexports.isLifecycleExtType = isLifecycleExtType;\nconst isLifecycleExtEventObj = (variableToCheck) => {\n    const event = variableToCheck?.type;\n    return event !== undefined && (0, exports.isLifecycleExtType)(event);\n};\nexports.isLifecycleExtEventObj = isLifecycleExtEventObj;\nconst isDirectExtInput = (variableToCheck) => {\n    return (Array.isArray(variableToCheck) &&\n        variableToCheck.length <= 3 &&\n        (0, exports.isLifecycleExtType)(variableToCheck[0]) &&\n        typeof variableToCheck[1] === 'function');\n};\nexports.isDirectExtInput = isDirectExtInput;\nconst isPatchableExtMethod = (variableToCheck) => {\n    return !Array.isArray(variableToCheck);\n};\nexports.isPatchableExtMethod = isPatchableExtMethod;\nconst getRouteMetadata = (route, semconvStability, pluginName) => {\n    const attributes = {\n        [semantic_conventions_1.ATTR_HTTP_ROUTE]: route.path,\n    };\n    if (semconvStability & instrumentation_1.SemconvStability.OLD) {\n        attributes[semconv_1.ATTR_HTTP_METHOD] = route.method;\n    }\n    if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n        // Note: This currently does *not* normalize the method name to uppercase\n        // and conditionally include `http.request.method.original` as described\n        // at https://opentelemetry.io/docs/specs/semconv/http/http-spans/\n        // These attributes are for a *hapi* span, and not the parent HTTP span,\n        // so the HTTP span guidance doesn't strictly apply.\n        attributes[semantic_conventions_1.ATTR_HTTP_REQUEST_METHOD] = route.method;\n    }\n    let name;\n    if (pluginName) {\n        attributes[AttributeNames_1.AttributeNames.HAPI_TYPE] = internal_types_1.HapiLayerType.PLUGIN;\n        attributes[AttributeNames_1.AttributeNames.PLUGIN_NAME] = pluginName;\n        name = `${pluginName}: route - ${route.path}`;\n    }\n    else {\n        attributes[AttributeNames_1.AttributeNames.HAPI_TYPE] = internal_types_1.HapiLayerType.ROUTER;\n        name = `route - ${route.path}`;\n    }\n    return { attributes, name };\n};\nexports.getRouteMetadata = getRouteMetadata;\nconst getExtMetadata = (extPoint, pluginName) => {\n    if (pluginName) {\n        return {\n            attributes: {\n                [AttributeNames_1.AttributeNames.EXT_TYPE]: extPoint,\n                [AttributeNames_1.AttributeNames.HAPI_TYPE]: internal_types_1.HapiLayerType.EXT,\n                [AttributeNames_1.AttributeNames.PLUGIN_NAME]: pluginName,\n            },\n            name: `${pluginName}: ext - ${extPoint}`,\n        };\n    }\n    return {\n        attributes: {\n            [AttributeNames_1.AttributeNames.EXT_TYPE]: extPoint,\n            [AttributeNames_1.AttributeNames.HAPI_TYPE]: internal_types_1.HapiLayerType.EXT,\n        },\n        name: `ext - ${extPoint}`,\n    };\n};\nexports.getExtMetadata = getExtMetadata;\nconst getPluginFromInput = (pluginObj) => {\n    if ('plugin' in pluginObj) {\n        if ('plugin' in pluginObj.plugin) {\n            return pluginObj.plugin.plugin;\n        }\n        return pluginObj.plugin;\n    }\n    return pluginObj;\n};\nexports.getPluginFromInput = getPluginFromInput;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HapiInstrumentation = void 0;\nconst api = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst internal_types_1 = require(\"./internal-types\");\nconst utils_1 = require(\"./utils\");\n/** Hapi instrumentation for OpenTelemetry */\nclass HapiInstrumentation extends instrumentation_1.InstrumentationBase {\n    _semconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._semconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    init() {\n        return new instrumentation_1.InstrumentationNodeModuleDefinition(internal_types_1.HapiComponentName, ['>=17.0.0 <22'], (module) => {\n            const moduleExports = module[Symbol.toStringTag] === 'Module' ? module.default : module;\n            if (!(0, instrumentation_1.isWrapped)(moduleExports.server)) {\n                this._wrap(moduleExports, 'server', this._getServerPatch.bind(this));\n            }\n            if (!(0, instrumentation_1.isWrapped)(moduleExports.Server)) {\n                this._wrap(moduleExports, 'Server', this._getServerPatch.bind(this));\n            }\n            return moduleExports;\n        }, (module) => {\n            const moduleExports = module[Symbol.toStringTag] === 'Module' ? module.default : module;\n            this._massUnwrap([moduleExports], ['server', 'Server']);\n        });\n    }\n    /**\n     * Patches the Hapi.server and Hapi.Server functions in order to instrument\n     * the server.route, server.ext, and server.register functions via calls to the\n     * @function _getServerRoutePatch, @function _getServerExtPatch, and\n     * @function _getServerRegisterPatch functions\n     * @param original - the original Hapi Server creation function\n     */\n    _getServerPatch(original) {\n        const instrumentation = this;\n        const self = this;\n        return function server(opts) {\n            const newServer = original.apply(this, [opts]);\n            self._wrap(newServer, 'route', originalRouter => {\n                return instrumentation._getServerRoutePatch.bind(instrumentation)(originalRouter);\n            });\n            // Casting as any is necessary here due to multiple overloads on the Hapi.ext\n            // function, which requires supporting a variety of different parameters\n            // as extension inputs\n            self._wrap(newServer, 'ext', originalExtHandler => {\n                return instrumentation._getServerExtPatch.bind(instrumentation)(\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                originalExtHandler);\n            });\n            // Casting as any is necessary here due to multiple overloads on the Hapi.Server.register\n            // function, which requires supporting a variety of different types of Plugin inputs\n            self._wrap(newServer, 'register', \n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            instrumentation._getServerRegisterPatch.bind(instrumentation));\n            return newServer;\n        };\n    }\n    /**\n     * Patches the plugin register function used by the Hapi Server. This function\n     * goes through each plugin that is being registered and adds instrumentation\n     * via a call to the @function _wrapRegisterHandler function.\n     * @param {RegisterFunction} original - the original register function which\n     * registers each plugin on the server\n     */\n    _getServerRegisterPatch(original) {\n        const instrumentation = this;\n        return function register(pluginInput, options) {\n            if (Array.isArray(pluginInput)) {\n                for (const pluginObj of pluginInput) {\n                    const plugin = (0, utils_1.getPluginFromInput)(pluginObj);\n                    instrumentation._wrapRegisterHandler(plugin);\n                }\n            }\n            else {\n                const plugin = (0, utils_1.getPluginFromInput)(pluginInput);\n                instrumentation._wrapRegisterHandler(plugin);\n            }\n            return original.apply(this, [pluginInput, options]);\n        };\n    }\n    /**\n     * Patches the Server.ext function which adds extension methods to the specified\n     * point along the request lifecycle. This function accepts the full range of\n     * accepted input into the standard Hapi `server.ext` function. For each extension,\n     * it adds instrumentation to the handler via a call to the @function _wrapExtMethods\n     * function.\n     * @param original - the original ext function which adds the extension method to the server\n     * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n     * for adding this server extension. Else, signifies that the extension was added directly\n     */\n    _getServerExtPatch(original, pluginName) {\n        const instrumentation = this;\n        return function ext(...args) {\n            if (Array.isArray(args[0])) {\n                const eventsList = args[0];\n                for (let i = 0; i < eventsList.length; i++) {\n                    const eventObj = eventsList[i];\n                    if ((0, utils_1.isLifecycleExtType)(eventObj.type)) {\n                        const lifecycleEventObj = eventObj;\n                        const handler = instrumentation._wrapExtMethods(lifecycleEventObj.method, eventObj.type, pluginName);\n                        lifecycleEventObj.method = handler;\n                        eventsList[i] = lifecycleEventObj;\n                    }\n                }\n                return original.apply(this, args);\n            }\n            else if ((0, utils_1.isDirectExtInput)(args)) {\n                const extInput = args;\n                const method = extInput[1];\n                const handler = instrumentation._wrapExtMethods(method, extInput[0], pluginName);\n                return original.apply(this, [extInput[0], handler, extInput[2]]);\n            }\n            else if ((0, utils_1.isLifecycleExtEventObj)(args[0])) {\n                const lifecycleEventObj = args[0];\n                const handler = instrumentation._wrapExtMethods(lifecycleEventObj.method, lifecycleEventObj.type, pluginName);\n                lifecycleEventObj.method = handler;\n                return original.call(this, lifecycleEventObj);\n            }\n            return original.apply(this, args);\n        };\n    }\n    /**\n     * Patches the Server.route function. This function accepts either one or an array\n     * of Hapi.ServerRoute objects and adds instrumentation on each route via a call to\n     * the @function _wrapRouteHandler function.\n     * @param {HapiServerRouteInputMethod} original - the original route function which adds\n     * the route to the server\n     * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n     * for adding this server route. Else, signifies that the route was added directly\n     */\n    _getServerRoutePatch(original, pluginName) {\n        const instrumentation = this;\n        return function route(route) {\n            if (Array.isArray(route)) {\n                for (let i = 0; i < route.length; i++) {\n                    const newRoute = instrumentation._wrapRouteHandler.call(instrumentation, route[i], pluginName);\n                    route[i] = newRoute;\n                }\n            }\n            else {\n                route = instrumentation._wrapRouteHandler.call(instrumentation, route, pluginName);\n            }\n            return original.apply(this, [route]);\n        };\n    }\n    /**\n     * Wraps newly registered plugins to add instrumentation to the plugin's clone of\n     * the original server. Specifically, wraps the server.route and server.ext functions\n     * via calls to @function _getServerRoutePatch and @function _getServerExtPatch\n     * @param {Hapi.Plugin} plugin - the new plugin which is being instrumented\n     */\n    _wrapRegisterHandler(plugin) {\n        const instrumentation = this;\n        const pluginName = (0, utils_1.getPluginName)(plugin);\n        const oldRegister = plugin.register;\n        const self = this;\n        const newRegisterHandler = function (server, options) {\n            self._wrap(server, 'route', original => {\n                return instrumentation._getServerRoutePatch.bind(instrumentation)(original, pluginName);\n            });\n            // Casting as any is necessary here due to multiple overloads on the Hapi.ext\n            // function, which requires supporting a variety of different parameters\n            // as extension inputs\n            self._wrap(server, 'ext', originalExtHandler => {\n                return instrumentation._getServerExtPatch.bind(instrumentation)(\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                originalExtHandler, pluginName);\n            });\n            return oldRegister.call(this, server, options);\n        };\n        plugin.register = newRegisterHandler;\n    }\n    /**\n     * Wraps request extension methods to add instrumentation to each new extension handler.\n     * Patches each individual extension in order to create the\n     * span and propagate context. It does not create spans when there is no parent span.\n     * @param {PatchableExtMethod | PatchableExtMethod[]} method - the request extension\n     * handler which is being instrumented\n     * @param {Hapi.ServerRequestExtType} extPoint - the point in the Hapi request lifecycle\n     * which this extension targets\n     * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n     * for adding this server route. Else, signifies that the route was added directly\n     */\n    _wrapExtMethods(method, extPoint, pluginName) {\n        const instrumentation = this;\n        if (method instanceof Array) {\n            for (let i = 0; i < method.length; i++) {\n                method[i] = instrumentation._wrapExtMethods(method[i], extPoint);\n            }\n            return method;\n        }\n        else if ((0, utils_1.isPatchableExtMethod)(method)) {\n            if (method[internal_types_1.handlerPatched] === true)\n                return method;\n            method[internal_types_1.handlerPatched] = true;\n            const newHandler = async function (...params) {\n                if (api.trace.getSpan(api.context.active()) === undefined) {\n                    return await method.apply(this, params);\n                }\n                const metadata = (0, utils_1.getExtMetadata)(extPoint, pluginName);\n                const span = instrumentation.tracer.startSpan(metadata.name, {\n                    attributes: metadata.attributes,\n                });\n                try {\n                    return await api.context.with(api.trace.setSpan(api.context.active(), span), method, undefined, ...params);\n                }\n                catch (err) {\n                    span.recordException(err);\n                    span.setStatus({\n                        code: api.SpanStatusCode.ERROR,\n                        message: err.message,\n                    });\n                    throw err;\n                }\n                finally {\n                    span.end();\n                }\n            };\n            return newHandler;\n        }\n        return method;\n    }\n    /**\n     * Patches each individual route handler method in order to create the\n     * span and propagate context. It does not create spans when there is no parent span.\n     * @param {PatchableServerRoute} route - the route handler which is being instrumented\n     * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n     * for adding this server route. Else, signifies that the route was added directly\n     */\n    _wrapRouteHandler(route, pluginName) {\n        const instrumentation = this;\n        if (route[internal_types_1.handlerPatched] === true)\n            return route;\n        route[internal_types_1.handlerPatched] = true;\n        const wrapHandler = oldHandler => {\n            return async function (...params) {\n                if (api.trace.getSpan(api.context.active()) === undefined) {\n                    return await oldHandler.call(this, ...params);\n                }\n                const rpcMetadata = (0, core_1.getRPCMetadata)(api.context.active());\n                if (rpcMetadata?.type === core_1.RPCType.HTTP) {\n                    rpcMetadata.route = route.path;\n                }\n                const metadata = (0, utils_1.getRouteMetadata)(route, instrumentation._semconvStability, pluginName);\n                const span = instrumentation.tracer.startSpan(metadata.name, {\n                    attributes: metadata.attributes,\n                });\n                try {\n                    return await api.context.with(api.trace.setSpan(api.context.active(), span), () => oldHandler.call(this, ...params));\n                }\n                catch (err) {\n                    span.recordException(err);\n                    span.setStatus({\n                        code: api.SpanStatusCode.ERROR,\n                        message: err.message,\n                    });\n                    throw err;\n                }\n                finally {\n                    span.end();\n                }\n            };\n        };\n        if (typeof route.handler === 'function') {\n            route.handler = wrapHandler(route.handler);\n        }\n        else if (typeof route.options === 'function') {\n            const oldOptions = route.options;\n            route.options = function (server) {\n                const options = oldOptions(server);\n                if (typeof options.handler === 'function') {\n                    options.handler = wrapHandler(options.handler);\n                }\n                return options;\n            };\n        }\n        else if (typeof route.options?.handler === 'function') {\n            route.options.handler = wrapHandler(route.options.handler);\n        }\n        return route;\n    }\n}\nexports.HapiInstrumentation = HapiInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = exports.HapiInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"HapiInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.HapiInstrumentation; } });\nvar AttributeNames_1 = require(\"./enums/AttributeNames\");\nObject.defineProperty(exports, \"AttributeNames\", { enumerable: true, get: function () { return AttributeNames_1.AttributeNames; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KoaLayerType = void 0;\nvar KoaLayerType;\n(function (KoaLayerType) {\n    KoaLayerType[\"ROUTER\"] = \"router\";\n    KoaLayerType[\"MIDDLEWARE\"] = \"middleware\";\n})(KoaLayerType = exports.KoaLayerType || (exports.KoaLayerType = {}));\n//# sourceMappingURL=types.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.61.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-koa';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AttributeNames = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar AttributeNames;\n(function (AttributeNames) {\n    AttributeNames[\"KOA_TYPE\"] = \"koa.type\";\n    AttributeNames[\"KOA_NAME\"] = \"koa.name\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isLayerIgnored = exports.getMiddlewareMetadata = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst types_1 = require(\"./types\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst getMiddlewareMetadata = (context, layer, isRouter, layerPath) => {\n    if (isRouter) {\n        return {\n            attributes: {\n                [AttributeNames_1.AttributeNames.KOA_NAME]: layerPath?.toString(),\n                [AttributeNames_1.AttributeNames.KOA_TYPE]: types_1.KoaLayerType.ROUTER,\n                [semantic_conventions_1.ATTR_HTTP_ROUTE]: layerPath?.toString(),\n            },\n            name: context._matchedRouteName || `router - ${layerPath}`,\n        };\n    }\n    else {\n        return {\n            attributes: {\n                [AttributeNames_1.AttributeNames.KOA_NAME]: layer.name ?? 'middleware',\n                [AttributeNames_1.AttributeNames.KOA_TYPE]: types_1.KoaLayerType.MIDDLEWARE,\n            },\n            name: `middleware - ${layer.name}`,\n        };\n    }\n};\nexports.getMiddlewareMetadata = getMiddlewareMetadata;\n/**\n * Check whether the given request is ignored by configuration\n * @param [list] List of ignore patterns\n * @param [onException] callback for doing something when an exception has\n *     occurred\n */\nconst isLayerIgnored = (type, config) => {\n    return !!(Array.isArray(config?.ignoreLayersType) &&\n        config?.ignoreLayersType?.includes(type));\n};\nexports.isLayerIgnored = isLayerIgnored;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.kLayerPatched = void 0;\n/**\n * This symbol is used to mark a Koa layer as being already instrumented\n * since its possible to use a given layer multiple times (ex: middlewares)\n */\nexports.kLayerPatched = Symbol('koa-layer-patched');\n//# sourceMappingURL=internal-types.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KoaInstrumentation = void 0;\nconst api = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst types_1 = require(\"./types\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst utils_1 = require(\"./utils\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst internal_types_1 = require(\"./internal-types\");\n/** Koa instrumentation for OpenTelemetry */\nclass KoaInstrumentation extends instrumentation_1.InstrumentationBase {\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n    }\n    init() {\n        return new instrumentation_1.InstrumentationNodeModuleDefinition('koa', ['>=2.0.0 <4'], (module) => {\n            const moduleExports = module[Symbol.toStringTag] === 'Module'\n                ? module.default // ESM\n                : module; // CommonJS\n            if (moduleExports == null) {\n                return moduleExports;\n            }\n            if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.use)) {\n                this._unwrap(moduleExports.prototype, 'use');\n            }\n            this._wrap(moduleExports.prototype, 'use', this._getKoaUsePatch.bind(this));\n            return module;\n        }, (module) => {\n            const moduleExports = module[Symbol.toStringTag] === 'Module'\n                ? module.default // ESM\n                : module; // CommonJS\n            if ((0, instrumentation_1.isWrapped)(moduleExports.prototype.use)) {\n                this._unwrap(moduleExports.prototype, 'use');\n            }\n        });\n    }\n    /**\n     * Patches the Koa.use function in order to instrument each original\n     * middleware layer which is introduced\n     * @param {KoaMiddleware} middleware - the original middleware function\n     */\n    _getKoaUsePatch(original) {\n        const plugin = this;\n        return function use(middlewareFunction) {\n            let patchedFunction;\n            if (middlewareFunction.router) {\n                patchedFunction = plugin._patchRouterDispatch(middlewareFunction);\n            }\n            else {\n                patchedFunction = plugin._patchLayer(middlewareFunction, false);\n            }\n            return original.apply(this, [patchedFunction]);\n        };\n    }\n    /**\n     * Patches the dispatch function used by @koa/router. This function\n     * goes through each routed middleware and adds instrumentation via a call\n     * to the @function _patchLayer function.\n     * @param {KoaMiddleware} dispatchLayer - the original dispatch function which dispatches\n     * routed middleware\n     */\n    _patchRouterDispatch(dispatchLayer) {\n        api.diag.debug('Patching @koa/router dispatch');\n        const router = dispatchLayer.router;\n        const routesStack = router?.stack ?? [];\n        for (const pathLayer of routesStack) {\n            const path = pathLayer.path;\n            // Type cast needed: router.stack comes from @types/koa@2.x but we use @types/koa@3.x\n            // See internal-types.ts for full explanation\n            const pathStack = pathLayer.stack;\n            for (let j = 0; j < pathStack.length; j++) {\n                const routedMiddleware = pathStack[j];\n                pathStack[j] = this._patchLayer(routedMiddleware, true, path);\n            }\n        }\n        return dispatchLayer;\n    }\n    /**\n     * Patches each individual @param middlewareLayer function in order to create the\n     * span and propagate context. It does not create spans when there is no parent span.\n     * @param {KoaMiddleware} middlewareLayer - the original middleware function.\n     * @param {boolean} isRouter - tracks whether the original middleware function\n     * was dispatched by the router originally\n     * @param {string?} layerPath - if present, provides additional data from the\n     * router about the routed path which the middleware is attached to\n     */\n    _patchLayer(middlewareLayer, isRouter, layerPath) {\n        const layerType = isRouter ? types_1.KoaLayerType.ROUTER : types_1.KoaLayerType.MIDDLEWARE;\n        // Skip patching layer if its ignored in the config\n        if (middlewareLayer[internal_types_1.kLayerPatched] === true ||\n            (0, utils_1.isLayerIgnored)(layerType, this.getConfig()))\n            return middlewareLayer;\n        if (middlewareLayer.constructor.name === 'GeneratorFunction' ||\n            middlewareLayer.constructor.name === 'AsyncGeneratorFunction') {\n            api.diag.debug('ignoring generator-based Koa middleware layer');\n            return middlewareLayer;\n        }\n        middlewareLayer[internal_types_1.kLayerPatched] = true;\n        api.diag.debug('patching Koa middleware layer');\n        return async (context, next) => {\n            const parent = api.trace.getSpan(api.context.active());\n            if (parent === undefined) {\n                return middlewareLayer(context, next);\n            }\n            const metadata = (0, utils_1.getMiddlewareMetadata)(context, middlewareLayer, isRouter, layerPath);\n            const span = this.tracer.startSpan(metadata.name, {\n                attributes: metadata.attributes,\n            });\n            const rpcMetadata = (0, core_1.getRPCMetadata)(api.context.active());\n            if (rpcMetadata?.type === core_1.RPCType.HTTP && context._matchedRoute) {\n                rpcMetadata.route = context._matchedRoute.toString();\n            }\n            const { requestHook } = this.getConfig();\n            if (requestHook) {\n                (0, instrumentation_1.safeExecuteInTheMiddle)(() => requestHook(span, {\n                    context,\n                    middlewareLayer,\n                    layerType,\n                }), e => {\n                    if (e) {\n                        api.diag.error('koa instrumentation: request hook failed', e);\n                    }\n                }, true);\n            }\n            const newContext = api.trace.setSpan(api.context.active(), span);\n            return api.context.with(newContext, async () => {\n                try {\n                    return await middlewareLayer(context, next);\n                }\n                catch (err) {\n                    span.recordException(err);\n                    throw err;\n                }\n                finally {\n                    span.end();\n                }\n            });\n        };\n    }\n}\nexports.KoaInstrumentation = KoaInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KoaLayerType = exports.AttributeNames = exports.KoaInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"KoaInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.KoaInstrumentation; } });\nvar AttributeNames_1 = require(\"./enums/AttributeNames\");\nObject.defineProperty(exports, \"AttributeNames\", { enumerable: true, get: function () { return AttributeNames_1.AttributeNames; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"KoaLayerType\", { enumerable: true, get: function () { return types_1.KoaLayerType; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectNames = exports.ConnectTypes = exports.AttributeNames = void 0;\nvar AttributeNames;\n(function (AttributeNames) {\n    AttributeNames[\"CONNECT_TYPE\"] = \"connect.type\";\n    AttributeNames[\"CONNECT_NAME\"] = \"connect.name\";\n})(AttributeNames = exports.AttributeNames || (exports.AttributeNames = {}));\nvar ConnectTypes;\n(function (ConnectTypes) {\n    ConnectTypes[\"MIDDLEWARE\"] = \"middleware\";\n    ConnectTypes[\"REQUEST_HANDLER\"] = \"request_handler\";\n})(ConnectTypes = exports.ConnectTypes || (exports.ConnectTypes = {}));\nvar ConnectNames;\n(function (ConnectNames) {\n    ConnectNames[\"MIDDLEWARE\"] = \"middleware\";\n    ConnectNames[\"REQUEST_HANDLER\"] = \"request handler\";\n})(ConnectNames = exports.ConnectNames || (exports.ConnectNames = {}));\n//# sourceMappingURL=AttributeNames.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.56.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-connect';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._LAYERS_STORE_PROPERTY = void 0;\nexports._LAYERS_STORE_PROPERTY = Symbol('opentelemetry.instrumentation-connect.request-route-stack');\n//# sourceMappingURL=internal-types.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateRoute = exports.replaceCurrentStackRoute = exports.addNewStackLayer = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst internal_types_1 = require(\"./internal-types\");\nconst addNewStackLayer = (request) => {\n    if (Array.isArray(request[internal_types_1._LAYERS_STORE_PROPERTY]) === false) {\n        Object.defineProperty(request, internal_types_1._LAYERS_STORE_PROPERTY, {\n            enumerable: false,\n            value: [],\n        });\n    }\n    request[internal_types_1._LAYERS_STORE_PROPERTY].push('/');\n    const stackLength = request[internal_types_1._LAYERS_STORE_PROPERTY].length;\n    return () => {\n        if (stackLength === request[internal_types_1._LAYERS_STORE_PROPERTY].length) {\n            request[internal_types_1._LAYERS_STORE_PROPERTY].pop();\n        }\n        else {\n            api_1.diag.warn('Connect: Trying to pop the stack multiple time');\n        }\n    };\n};\nexports.addNewStackLayer = addNewStackLayer;\nconst replaceCurrentStackRoute = (request, newRoute) => {\n    if (newRoute) {\n        request[internal_types_1._LAYERS_STORE_PROPERTY].splice(-1, 1, newRoute);\n    }\n};\nexports.replaceCurrentStackRoute = replaceCurrentStackRoute;\n// generate route from existing stack on request object.\n// splash between stack layer will be deduped\n// [\"/first/\", \"/second\", \"/third/\"] => /first/second/third/\nconst generateRoute = (request) => {\n    return request[internal_types_1._LAYERS_STORE_PROPERTY].reduce((acc, sub) => acc.replace(/\\/+$/, '') + sub);\n};\nexports.generateRoute = generateRoute;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectInstrumentation = exports.ANONYMOUS_NAME = void 0;\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst AttributeNames_1 = require(\"./enums/AttributeNames\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst utils_1 = require(\"./utils\");\nexports.ANONYMOUS_NAME = 'anonymous';\n/** Connect instrumentation for OpenTelemetry */\nclass ConnectInstrumentation extends instrumentation_1.InstrumentationBase {\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n    }\n    init() {\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition('connect', ['>=3.0.0 <4'], moduleExports => {\n                return this._patchConstructor(moduleExports);\n            }),\n        ];\n    }\n    _patchApp(patchedApp) {\n        if (!(0, instrumentation_1.isWrapped)(patchedApp.use)) {\n            this._wrap(patchedApp, 'use', this._patchUse.bind(this));\n        }\n        if (!(0, instrumentation_1.isWrapped)(patchedApp.handle)) {\n            this._wrap(patchedApp, 'handle', this._patchHandle.bind(this));\n        }\n    }\n    _patchConstructor(original) {\n        const instrumentation = this;\n        return function (...args) {\n            const app = original.apply(this, args);\n            instrumentation._patchApp(app);\n            return app;\n        };\n    }\n    _patchNext(next, finishSpan) {\n        return function nextFunction(err) {\n            const result = next.apply(this, [err]);\n            finishSpan();\n            return result;\n        };\n    }\n    _startSpan(routeName, middleWare) {\n        let connectType;\n        let connectName;\n        let connectTypeName;\n        if (routeName) {\n            connectType = AttributeNames_1.ConnectTypes.REQUEST_HANDLER;\n            connectTypeName = AttributeNames_1.ConnectNames.REQUEST_HANDLER;\n            connectName = routeName;\n        }\n        else {\n            connectType = AttributeNames_1.ConnectTypes.MIDDLEWARE;\n            connectTypeName = AttributeNames_1.ConnectNames.MIDDLEWARE;\n            connectName = middleWare.name || exports.ANONYMOUS_NAME;\n        }\n        const spanName = `${connectTypeName} - ${connectName}`;\n        const options = {\n            attributes: {\n                [semantic_conventions_1.ATTR_HTTP_ROUTE]: routeName.length > 0 ? routeName : '/',\n                [AttributeNames_1.AttributeNames.CONNECT_TYPE]: connectType,\n                [AttributeNames_1.AttributeNames.CONNECT_NAME]: connectName,\n            },\n        };\n        return this.tracer.startSpan(spanName, options);\n    }\n    _patchMiddleware(routeName, middleWare) {\n        const instrumentation = this;\n        const isErrorMiddleware = middleWare.length === 4;\n        function patchedMiddleware() {\n            if (!instrumentation.isEnabled()) {\n                return middleWare.apply(this, arguments);\n            }\n            const [reqArgIdx, resArgIdx, nextArgIdx] = isErrorMiddleware\n                ? [1, 2, 3]\n                : [0, 1, 2];\n            const req = arguments[reqArgIdx];\n            const res = arguments[resArgIdx];\n            const next = arguments[nextArgIdx];\n            (0, utils_1.replaceCurrentStackRoute)(req, routeName);\n            const rpcMetadata = (0, core_1.getRPCMetadata)(api_1.context.active());\n            if (routeName && rpcMetadata?.type === core_1.RPCType.HTTP) {\n                rpcMetadata.route = (0, utils_1.generateRoute)(req);\n            }\n            let spanName = '';\n            if (routeName) {\n                spanName = `request handler - ${routeName}`;\n            }\n            else {\n                spanName = `middleware - ${middleWare.name || exports.ANONYMOUS_NAME}`;\n            }\n            const span = instrumentation._startSpan(routeName, middleWare);\n            instrumentation._diag.debug('start span', spanName);\n            let spanFinished = false;\n            function finishSpan() {\n                if (!spanFinished) {\n                    spanFinished = true;\n                    instrumentation._diag.debug(`finishing span ${span.name}`);\n                    span.end();\n                }\n                else {\n                    instrumentation._diag.debug(`span ${span.name} - already finished`);\n                }\n                res.removeListener('close', finishSpan);\n            }\n            res.addListener('close', finishSpan);\n            arguments[nextArgIdx] = instrumentation._patchNext(next, finishSpan);\n            return middleWare.apply(this, arguments);\n        }\n        Object.defineProperty(patchedMiddleware, 'length', {\n            value: middleWare.length,\n            writable: false,\n            configurable: true,\n        });\n        return patchedMiddleware;\n    }\n    _patchUse(original) {\n        const instrumentation = this;\n        return function (...args) {\n            const middleWare = args[args.length - 1];\n            const routeName = (args[args.length - 2] || '');\n            args[args.length - 1] = instrumentation._patchMiddleware(routeName, middleWare);\n            return original.apply(this, args);\n        };\n    }\n    _patchHandle(original) {\n        const instrumentation = this;\n        return function () {\n            const [reqIdx, outIdx] = [0, 2];\n            const req = arguments[reqIdx];\n            const out = arguments[outIdx];\n            const completeStack = (0, utils_1.addNewStackLayer)(req);\n            if (typeof out === 'function') {\n                arguments[outIdx] = instrumentation._patchOut(out, completeStack);\n            }\n            return original.apply(this, arguments);\n        };\n    }\n    _patchOut(out, completeStack) {\n        return function nextFunction(...args) {\n            completeStack();\n            return Reflect.apply(out, this, args);\n        };\n    }\n}\nexports.ConnectInstrumentation = ConnectInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectTypes = exports.ConnectNames = exports.AttributeNames = exports.ANONYMOUS_NAME = exports.ConnectInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"ConnectInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.ConnectInstrumentation; } });\nObject.defineProperty(exports, \"ANONYMOUS_NAME\", { enumerable: true, get: function () { return instrumentation_1.ANONYMOUS_NAME; } });\nvar AttributeNames_1 = require(\"./enums/AttributeNames\");\nObject.defineProperty(exports, \"AttributeNames\", { enumerable: true, get: function () { return AttributeNames_1.AttributeNames; } });\nObject.defineProperty(exports, \"ConnectNames\", { enumerable: true, get: function () { return AttributeNames_1.ConnectNames; } });\nObject.defineProperty(exports, \"ConnectTypes\", { enumerable: true, get: function () { return AttributeNames_1.ConnectTypes; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DB_SYSTEM_VALUE_MSSQL = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_USER = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_SQL_TABLE = exports.ATTR_DB_NAME = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexports.ATTR_DB_NAME = 'db.name';\n/**\n * Deprecated, use `db.collection.name` instead.\n *\n * @example \"mytable\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.collection.name`, but only if not extracting the value from `db.query.text`.\n */\nexports.ATTR_DB_SQL_TABLE = 'db.sql.table';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexports.ATTR_DB_USER = 'db.user';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"mssql\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * Microsoft SQL Server\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_VALUE_MSSQL = 'mssql';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.once = exports.getSpanName = void 0;\n/**\n * The span name SHOULD be set to a low cardinality value\n * representing the statement executed on the database.\n *\n * @returns Operation executed on Tedious Connection. Does not map to SQL statement in any way.\n */\nfunction getSpanName(operation, db, sql, bulkLoadTable) {\n    if (operation === 'execBulkLoad' && bulkLoadTable && db) {\n        return `${operation} ${bulkLoadTable} ${db}`;\n    }\n    if (operation === 'callProcedure') {\n        // `sql` refers to procedure name with `callProcedure`\n        if (db) {\n            return `${operation} ${sql} ${db}`;\n        }\n        return `${operation} ${sql}`;\n    }\n    // do not use `sql` in general case because of high-cardinality\n    if (db) {\n        return `${operation} ${db}`;\n    }\n    return `${operation}`;\n}\nexports.getSpanName = getSpanName;\nconst once = (fn) => {\n    let called = false;\n    return (...args) => {\n        if (called)\n            return;\n        called = true;\n        return fn(...args);\n    };\n};\nexports.once = once;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.32.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-tedious';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TediousInstrumentation = exports.INJECTED_CTX = void 0;\nconst api = require(\"@opentelemetry/api\");\nconst events_1 = require(\"events\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst utils_1 = require(\"./utils\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst CURRENT_DATABASE = Symbol('opentelemetry.instrumentation-tedious.current-database');\nexports.INJECTED_CTX = Symbol('opentelemetry.instrumentation-tedious.context-info-injected');\nconst PATCHED_METHODS = [\n    'callProcedure',\n    'execSql',\n    'execSqlBatch',\n    'execBulkLoad',\n    'prepare',\n    'execute',\n];\nfunction setDatabase(databaseName) {\n    Object.defineProperty(this, CURRENT_DATABASE, {\n        value: databaseName,\n        writable: true,\n    });\n}\nclass TediousInstrumentation extends instrumentation_1.InstrumentationBase {\n    static COMPONENT = 'tedious';\n    _netSemconvStability;\n    _dbSemconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n        this._setSemconvStabilityFromEnv();\n    }\n    // Used for testing.\n    _setSemconvStabilityFromEnv() {\n        this._netSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n        this._dbSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    init() {\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition(TediousInstrumentation.COMPONENT, ['>=1.11.0 <20'], (moduleExports) => {\n                const ConnectionPrototype = moduleExports.Connection.prototype;\n                for (const method of PATCHED_METHODS) {\n                    if ((0, instrumentation_1.isWrapped)(ConnectionPrototype[method])) {\n                        this._unwrap(ConnectionPrototype, method);\n                    }\n                    this._wrap(ConnectionPrototype, method, this._patchQuery(method, moduleExports));\n                }\n                if ((0, instrumentation_1.isWrapped)(ConnectionPrototype.connect)) {\n                    this._unwrap(ConnectionPrototype, 'connect');\n                }\n                this._wrap(ConnectionPrototype, 'connect', this._patchConnect);\n                return moduleExports;\n            }, (moduleExports) => {\n                if (moduleExports === undefined)\n                    return;\n                const ConnectionPrototype = moduleExports.Connection.prototype;\n                for (const method of PATCHED_METHODS) {\n                    this._unwrap(ConnectionPrototype, method);\n                }\n                this._unwrap(ConnectionPrototype, 'connect');\n            }),\n        ];\n    }\n    _patchConnect(original) {\n        return function patchedConnect() {\n            setDatabase.call(this, this.config?.options?.database);\n            // remove the listener first in case it's already added\n            this.removeListener('databaseChange', setDatabase);\n            this.on('databaseChange', setDatabase);\n            this.once('end', () => {\n                this.removeListener('databaseChange', setDatabase);\n            });\n            return original.apply(this, arguments);\n        };\n    }\n    _buildTraceparent(span) {\n        const sc = span.spanContext();\n        return `00-${sc.traceId}-${sc.spanId}-0${Number(sc.traceFlags || api.TraceFlags.NONE).toString(16)}`;\n    }\n    /**\n     * Fire a one-off `SET CONTEXT_INFO @opentelemetry_traceparent` on the same\n     * connection. Marks the request with INJECTED_CTX so our patch skips it.\n     */\n    _injectContextInfo(connection, tediousModule, traceparent) {\n        return new Promise(resolve => {\n            try {\n                const sql = 'set context_info @opentelemetry_traceparent';\n                const req = new tediousModule.Request(sql, (_err) => {\n                    resolve();\n                });\n                Object.defineProperty(req, exports.INJECTED_CTX, { value: true });\n                const buf = Buffer.from(traceparent, 'utf8');\n                req.addParameter('opentelemetry_traceparent', tediousModule.TYPES.VarBinary, buf, { length: buf.length });\n                connection.execSql(req);\n            }\n            catch {\n                resolve();\n            }\n        });\n    }\n    _shouldInjectFor(operation) {\n        return (operation === 'execSql' ||\n            operation === 'execSqlBatch' ||\n            operation === 'callProcedure' ||\n            operation === 'execute');\n    }\n    _patchQuery(operation, tediousModule) {\n        return (originalMethod) => {\n            const thisPlugin = this;\n            function patchedMethod(request) {\n                // Skip our own injected request\n                if (request?.[exports.INJECTED_CTX]) {\n                    return originalMethod.apply(this, arguments);\n                }\n                if (!(request instanceof events_1.EventEmitter)) {\n                    thisPlugin._diag.warn(`Unexpected invocation of patched ${operation} method. Span not recorded`);\n                    return originalMethod.apply(this, arguments);\n                }\n                let procCount = 0;\n                let statementCount = 0;\n                const incrementStatementCount = () => statementCount++;\n                const incrementProcCount = () => procCount++;\n                const databaseName = this[CURRENT_DATABASE];\n                const sql = (request => {\n                    // Required for <11.0.9\n                    if (request.sqlTextOrProcedure === 'sp_prepare' &&\n                        request.parametersByName?.stmt?.value) {\n                        return request.parametersByName.stmt.value;\n                    }\n                    return request.sqlTextOrProcedure;\n                })(request);\n                const attributes = {};\n                if (thisPlugin._dbSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_DB_SYSTEM] = semconv_1.DB_SYSTEM_VALUE_MSSQL;\n                    attributes[semconv_1.ATTR_DB_NAME] = databaseName;\n                    // >=4 uses `authentication` object; older versions just userName and password pair\n                    attributes[semconv_1.ATTR_DB_USER] =\n                        this.config?.userName ??\n                            this.config?.authentication?.options?.userName;\n                    attributes[semconv_1.ATTR_DB_STATEMENT] = sql;\n                    attributes[semconv_1.ATTR_DB_SQL_TABLE] = request.table;\n                }\n                if (thisPlugin._dbSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    // The OTel spec for \"db.namespace\" discusses handling for connection\n                    // to MSSQL \"named instances\". This isn't currently supported.\n                    //    https://opentelemetry.io/docs/specs/semconv/database/sql-server/#:~:text=%5B1%5D%20db%2Enamespace\n                    attributes[semantic_conventions_1.ATTR_DB_NAMESPACE] = databaseName;\n                    attributes[semantic_conventions_1.ATTR_DB_SYSTEM_NAME] =\n                        semantic_conventions_1.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER;\n                    attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = sql;\n                    attributes[semantic_conventions_1.ATTR_DB_COLLECTION_NAME] = request.table;\n                    // See https://opentelemetry.io/docs/specs/semconv/database/sql-server/#spans\n                    // TODO(3290): can `db.response.status_code` be added?\n                    // TODO(3290): is `operation` correct for `db.operation.name`\n                    // TODO(3290): can `db.query.summary` reliably be calculated?\n                    // TODO(3290): `db.stored_procedure.name`\n                }\n                if (thisPlugin._netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                    attributes[semconv_1.ATTR_NET_PEER_NAME] = this.config?.server;\n                    attributes[semconv_1.ATTR_NET_PEER_PORT] = this.config?.options?.port;\n                }\n                if (thisPlugin._netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                    attributes[semantic_conventions_1.ATTR_SERVER_ADDRESS] = this.config?.server;\n                    attributes[semantic_conventions_1.ATTR_SERVER_PORT] = this.config?.options?.port;\n                }\n                const span = thisPlugin.tracer.startSpan((0, utils_1.getSpanName)(operation, databaseName, sql, request.table), {\n                    kind: api.SpanKind.CLIENT,\n                    attributes,\n                });\n                const endSpan = (0, utils_1.once)((err) => {\n                    request.removeListener('done', incrementStatementCount);\n                    request.removeListener('doneInProc', incrementStatementCount);\n                    request.removeListener('doneProc', incrementProcCount);\n                    request.removeListener('error', endSpan);\n                    this.removeListener('end', endSpan);\n                    span.setAttribute('tedious.procedure_count', procCount);\n                    span.setAttribute('tedious.statement_count', statementCount);\n                    if (err) {\n                        span.setStatus({\n                            code: api.SpanStatusCode.ERROR,\n                            message: err.message,\n                        });\n                        // TODO(3290): set `error.type` attribute?\n                    }\n                    span.end();\n                });\n                request.on('done', incrementStatementCount);\n                request.on('doneInProc', incrementStatementCount);\n                request.on('doneProc', incrementProcCount);\n                request.once('error', endSpan);\n                this.on('end', endSpan);\n                if (typeof request.callback === 'function') {\n                    thisPlugin._wrap(request, 'callback', thisPlugin._patchCallbackQuery(endSpan));\n                }\n                else {\n                    thisPlugin._diag.error('Expected request.callback to be a function');\n                }\n                const runUserRequest = () => {\n                    return api.context.with(api.trace.setSpan(api.context.active(), span), originalMethod, this, ...arguments);\n                };\n                const cfg = thisPlugin.getConfig();\n                const shouldInject = cfg.enableTraceContextPropagation &&\n                    thisPlugin._shouldInjectFor(operation);\n                if (!shouldInject)\n                    return runUserRequest();\n                const traceparent = thisPlugin._buildTraceparent(span);\n                void thisPlugin\n                    ._injectContextInfo(this, tediousModule, traceparent)\n                    .finally(runUserRequest);\n            }\n            Object.defineProperty(patchedMethod, 'length', {\n                value: originalMethod.length,\n                writable: false,\n            });\n            return patchedMethod;\n        };\n    }\n    _patchCallbackQuery(endSpan) {\n        return (originalCallback) => {\n            return function (err, rowCount, rows) {\n                endSpan(err);\n                return originalCallback.apply(this, arguments);\n            };\n        };\n    }\n}\nexports.TediousInstrumentation = TediousInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TediousInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"TediousInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.TediousInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.56.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-generic-pool';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GenericPoolInstrumentation = void 0;\nconst api = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst MODULE_NAME = 'generic-pool';\nclass GenericPoolInstrumentation extends instrumentation_1.InstrumentationBase {\n    // only used for v2 - v2.3)\n    _isDisabled = false;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n    }\n    init() {\n        return [\n            new instrumentation_1.InstrumentationNodeModuleDefinition(MODULE_NAME, ['>=3.0.0 <4'], moduleExports => {\n                const Pool = moduleExports.Pool;\n                if ((0, instrumentation_1.isWrapped)(Pool.prototype.acquire)) {\n                    this._unwrap(Pool.prototype, 'acquire');\n                }\n                this._wrap(Pool.prototype, 'acquire', this._acquirePatcher.bind(this));\n                return moduleExports;\n            }, moduleExports => {\n                const Pool = moduleExports.Pool;\n                this._unwrap(Pool.prototype, 'acquire');\n                return moduleExports;\n            }),\n            new instrumentation_1.InstrumentationNodeModuleDefinition(MODULE_NAME, ['>=2.4.0 <3'], moduleExports => {\n                const Pool = moduleExports.Pool;\n                if ((0, instrumentation_1.isWrapped)(Pool.prototype.acquire)) {\n                    this._unwrap(Pool.prototype, 'acquire');\n                }\n                this._wrap(Pool.prototype, 'acquire', this._acquireWithCallbacksPatcher.bind(this));\n                return moduleExports;\n            }, moduleExports => {\n                const Pool = moduleExports.Pool;\n                this._unwrap(Pool.prototype, 'acquire');\n                return moduleExports;\n            }),\n            new instrumentation_1.InstrumentationNodeModuleDefinition(MODULE_NAME, ['>=2.0.0 <2.4'], moduleExports => {\n                this._isDisabled = false;\n                if ((0, instrumentation_1.isWrapped)(moduleExports.Pool)) {\n                    this._unwrap(moduleExports, 'Pool');\n                }\n                this._wrap(moduleExports, 'Pool', this._poolWrapper.bind(this));\n                return moduleExports;\n            }, moduleExports => {\n                // since the object is created on the fly every time, we need to use\n                // a boolean switch here to disable the instrumentation\n                this._isDisabled = true;\n                return moduleExports;\n            }),\n        ];\n    }\n    _acquirePatcher(original) {\n        const instrumentation = this;\n        return function wrapped_acquire(...args) {\n            const parent = api.context.active();\n            const span = instrumentation.tracer.startSpan('generic-pool.acquire', {}, parent);\n            return api.context.with(api.trace.setSpan(parent, span), () => {\n                return original.call(this, ...args).then(value => {\n                    span.end();\n                    return value;\n                }, err => {\n                    span.recordException(err);\n                    span.end();\n                    throw err;\n                });\n            });\n        };\n    }\n    _poolWrapper(original) {\n        const instrumentation = this;\n        return function wrapped_pool() {\n            const pool = original.apply(this, arguments);\n            instrumentation._wrap(pool, 'acquire', instrumentation._acquireWithCallbacksPatcher.bind(instrumentation));\n            return pool;\n        };\n    }\n    _acquireWithCallbacksPatcher(original) {\n        const instrumentation = this;\n        return function wrapped_acquire(cb, priority) {\n            // only used for v2 - v2.3\n            if (instrumentation._isDisabled) {\n                return original.call(this, cb, priority);\n            }\n            const parent = api.context.active();\n            const span = instrumentation.tracer.startSpan('generic-pool.acquire', {}, parent);\n            return api.context.with(api.trace.setSpan(parent, span), () => {\n                original.call(this, (err, client) => {\n                    span.end();\n                    // Not checking whether cb is a function because\n                    // the original code doesn't do that either.\n                    if (cb) {\n                        return cb(err, client);\n                    }\n                }, priority);\n            });\n        };\n    }\n}\nexports.GenericPoolInstrumentation = GenericPoolInstrumentation;\n//# sourceMappingURL=instrumentation.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GenericPoolInstrumentation = void 0;\nvar instrumentation_1 = require(\"./instrumentation\");\nObject.defineProperty(exports, \"GenericPoolInstrumentation\", { enumerable: true, get: function () { return instrumentation_1.GenericPoolInstrumentation; } });\n//# sourceMappingURL=index.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_MESSAGING_SYSTEM = exports.ATTR_MESSAGING_OPERATION = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `messaging.operation.type` instead.\n *\n * @example publish\n * @example create\n * @example process\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `messaging.operation.type`.\n */\nexports.ATTR_MESSAGING_OPERATION = 'messaging.operation';\n/**\n * The messaging system as identified by the client instrumentation.\n *\n * @note The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_MESSAGING_SYSTEM = 'messaging.system';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n//# sourceMappingURL=semconv.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ATTR_MESSAGING_CONVERSATION_ID = exports.OLD_ATTR_MESSAGING_MESSAGE_ID = exports.MESSAGING_DESTINATION_KIND_VALUE_TOPIC = exports.ATTR_MESSAGING_URL = exports.ATTR_MESSAGING_PROTOCOL_VERSION = exports.ATTR_MESSAGING_PROTOCOL = exports.MESSAGING_OPERATION_VALUE_PROCESS = exports.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY = exports.ATTR_MESSAGING_DESTINATION_KIND = exports.ATTR_MESSAGING_DESTINATION = void 0;\n/*\n * This file contains constants for values that where replaced/removed from\n * Semantic Conventions long enough ago that they do not have `ATTR_*`\n * constants in the `@opentelemetry/semantic-conventions` package. Eventually\n * it is expected that this instrumention will be updated to emit telemetry\n * using modern Semantic Conventions, dropping the need for the constants in\n * this file.\n */\n/**\n * The message destination name. This might be equal to the span name but is required nevertheless.\n *\n * @deprecated Use ATTR_MESSAGING_DESTINATION_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.ATTR_MESSAGING_DESTINATION = 'messaging.destination';\n/**\n * The kind of message destination.\n *\n * @deprecated Removed in semconv v1.20.0.\n */\nexports.ATTR_MESSAGING_DESTINATION_KIND = 'messaging.destination_kind';\n/**\n * RabbitMQ message routing key.\n *\n * @deprecated Use ATTR_MESSAGING_RABBITMQ_DESTINATION_ROUTING_KEY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY = 'messaging.rabbitmq.routing_key';\n/**\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n *\n * @deprecated Use MESSAGING_OPERATION_TYPE_VALUE_PROCESS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.MESSAGING_OPERATION_VALUE_PROCESS = 'process';\n/**\n * The name of the transport protocol.\n *\n * @deprecated Use ATTR_NETWORK_PROTOCOL_NAME.\n */\nexports.ATTR_MESSAGING_PROTOCOL = 'messaging.protocol';\n/**\n * The version of the transport protocol.\n *\n * @deprecated Use ATTR_NETWORK_PROTOCOL_VERSION.\n */\nexports.ATTR_MESSAGING_PROTOCOL_VERSION = 'messaging.protocol_version';\n/**\n * Connection string.\n *\n * @deprecated Removed in semconv v1.17.0.\n */\nexports.ATTR_MESSAGING_URL = 'messaging.url';\n/**\n * The kind of message destination.\n *\n * @deprecated Removed in semconv v1.20.0.\n */\nexports.MESSAGING_DESTINATION_KIND_VALUE_TOPIC = 'topic';\n/**\n * A value used by the messaging system as an identifier for the message, represented as a string.\n *\n * @deprecated Use ATTR_MESSAGING_MESSAGE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n *\n * Note: changing to `ATTR_MESSAGING_MESSAGE_ID` means a change in value from `messaging.message_id` to `messaging.message.id`.\n */\nexports.OLD_ATTR_MESSAGING_MESSAGE_ID = 'messaging.message_id';\n/**\n * The [conversation ID](#conversations) identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID".\n *\n * @deprecated Use ATTR_MESSAGING_MESSAGE_CONVERSATION_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexports.ATTR_MESSAGING_CONVERSATION_ID = 'messaging.conversation_id';\n//# sourceMappingURL=semconv-obsolete.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_CONFIG = exports.EndOperation = void 0;\nvar EndOperation;\n(function (EndOperation) {\n    EndOperation[\"AutoAck\"] = \"auto ack\";\n    EndOperation[\"Ack\"] = \"ack\";\n    EndOperation[\"AckAll\"] = \"ackAll\";\n    EndOperation[\"Reject\"] = \"reject\";\n    EndOperation[\"Nack\"] = \"nack\";\n    EndOperation[\"NackAll\"] = \"nackAll\";\n    EndOperation[\"ChannelClosed\"] = \"channel closed\";\n    EndOperation[\"ChannelError\"] = \"channel error\";\n    EndOperation[\"InstrumentationTimeout\"] = \"instrumentation timeout\";\n})(EndOperation = exports.EndOperation || (exports.EndOperation = {}));\nexports.DEFAULT_CONFIG = {\n    consumeTimeoutMs: 1000 * 60,\n    useLinksForConsume: false,\n};\n//# sourceMappingURL=types.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isConfirmChannelTracing = exports.unmarkConfirmChannelTracing = exports.markConfirmChannelTracing = exports.getConnectionAttributesFromUrl = exports.getConnectionAttributesFromServer = exports.normalizeExchange = exports.CONNECTION_ATTRIBUTES = exports.CHANNEL_CONSUME_TIMEOUT_TIMER = exports.CHANNEL_SPANS_NOT_ENDED = exports.MESSAGE_STORED_SPAN = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semantic_conventions_1 = require(\"@opentelemetry/semantic-conventions\");\nconst semconv_1 = require(\"./semconv\");\nconst semconv_obsolete_1 = require(\"../src/semconv-obsolete\");\nexports.MESSAGE_STORED_SPAN = Symbol('opentelemetry.amqplib.message.stored-span');\nexports.CHANNEL_SPANS_NOT_ENDED = Symbol('opentelemetry.amqplib.channel.spans-not-ended');\nexports.CHANNEL_CONSUME_TIMEOUT_TIMER = Symbol('opentelemetry.amqplib.channel.consumer-timeout-timer');\nexports.CONNECTION_ATTRIBUTES = Symbol('opentelemetry.amqplib.connection.attributes');\nconst IS_CONFIRM_CHANNEL_CONTEXT_KEY = (0, api_1.createContextKey)('opentelemetry.amqplib.channel.is-confirm-channel');\nconst normalizeExchange = (exchangeName) => exchangeName !== '' ? exchangeName : '';\nexports.normalizeExchange = normalizeExchange;\nconst censorPassword = (url) => {\n    return url.replace(/:[^:@/]*@/, ':***@');\n};\nconst getPort = (portFromUrl, resolvedProtocol) => {\n    // we are using the resolved protocol which is upper case\n    // this code mimic the behavior of the amqplib which is used to set connection params\n    return portFromUrl || (resolvedProtocol === 'AMQP' ? 5672 : 5671);\n};\nconst getProtocol = (protocolFromUrl) => {\n    const resolvedProtocol = protocolFromUrl || 'amqp';\n    // the substring removed the ':' part of the protocol ('amqp:' -> 'amqp')\n    const noEndingColon = resolvedProtocol.endsWith(':')\n        ? resolvedProtocol.substring(0, resolvedProtocol.length - 1)\n        : resolvedProtocol;\n    // upper cases to match spec\n    return noEndingColon.toUpperCase();\n};\nconst getHostname = (hostnameFromUrl) => {\n    // if user supplies empty hostname, it gets forwarded to 'net' package which default it to localhost.\n    // https://nodejs.org/docs/latest-v12.x/api/net.html#net_socket_connect_options_connectlistener\n    return hostnameFromUrl || 'localhost';\n};\nconst extractConnectionAttributeOrLog = (url, attributeKey, attributeValue, nameForLog) => {\n    if (attributeValue) {\n        return { [attributeKey]: attributeValue };\n    }\n    else {\n        api_1.diag.error(`amqplib instrumentation: could not extract connection attribute ${nameForLog} from user supplied url`, {\n            url,\n        });\n        return {};\n    }\n};\nconst getConnectionAttributesFromServer = (conn) => {\n    const product = conn.serverProperties.product?.toLowerCase?.();\n    if (product) {\n        return {\n            [semconv_1.ATTR_MESSAGING_SYSTEM]: product,\n        };\n    }\n    else {\n        return {};\n    }\n};\nexports.getConnectionAttributesFromServer = getConnectionAttributesFromServer;\nconst getConnectionAttributesFromUrl = (url, netSemconvStability) => {\n    const attributes = {\n        [semconv_obsolete_1.ATTR_MESSAGING_PROTOCOL_VERSION]: '0.9.1', // this is the only protocol supported by the instrumented library\n    };\n    url = url || 'amqp://localhost';\n    if (typeof url === 'object') {\n        const connectOptions = url;\n        const protocol = getProtocol(connectOptions?.protocol);\n        Object.assign(attributes, {\n            ...extractConnectionAttributeOrLog(url, semconv_obsolete_1.ATTR_MESSAGING_PROTOCOL, protocol, 'protocol'),\n        });\n        const hostname = getHostname(connectOptions?.hostname);\n        if (netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n            Object.assign(attributes, {\n                ...extractConnectionAttributeOrLog(url, semconv_1.ATTR_NET_PEER_NAME, hostname, 'hostname'),\n            });\n        }\n        if (netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n            Object.assign(attributes, {\n                ...extractConnectionAttributeOrLog(url, semantic_conventions_1.ATTR_SERVER_ADDRESS, hostname, 'hostname'),\n            });\n        }\n        const port = getPort(connectOptions.port, protocol);\n        if (netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n            Object.assign(attributes, extractConnectionAttributeOrLog(url, semconv_1.ATTR_NET_PEER_PORT, port, 'port'));\n        }\n        if (netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n            Object.assign(attributes, extractConnectionAttributeOrLog(url, semantic_conventions_1.ATTR_SERVER_PORT, port, 'port'));\n        }\n    }\n    else {\n        const censoredUrl = censorPassword(url);\n        attributes[semconv_obsolete_1.ATTR_MESSAGING_URL] = censoredUrl;\n        try {\n            const urlParts = new URL(censoredUrl);\n            const protocol = getProtocol(urlParts.protocol);\n            Object.assign(attributes, {\n                ...extractConnectionAttributeOrLog(censoredUrl, semconv_obsolete_1.ATTR_MESSAGING_PROTOCOL, protocol, 'protocol'),\n            });\n            const hostname = getHostname(urlParts.hostname);\n            if (netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                Object.assign(attributes, {\n                    ...extractConnectionAttributeOrLog(censoredUrl, semconv_1.ATTR_NET_PEER_NAME, hostname, 'hostname'),\n                });\n            }\n            if (netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                Object.assign(attributes, {\n                    ...extractConnectionAttributeOrLog(censoredUrl, semantic_conventions_1.ATTR_SERVER_ADDRESS, hostname, 'hostname'),\n                });\n            }\n            const port = getPort(urlParts.port ? parseInt(urlParts.port) : undefined, protocol);\n            if (netSemconvStability & instrumentation_1.SemconvStability.OLD) {\n                Object.assign(attributes, extractConnectionAttributeOrLog(censoredUrl, semconv_1.ATTR_NET_PEER_PORT, port, 'port'));\n            }\n            if (netSemconvStability & instrumentation_1.SemconvStability.STABLE) {\n                Object.assign(attributes, extractConnectionAttributeOrLog(censoredUrl, semantic_conventions_1.ATTR_SERVER_PORT, port, 'port'));\n            }\n        }\n        catch (err) {\n            api_1.diag.error('amqplib instrumentation: error while extracting connection details from connection url', {\n                censoredUrl,\n                err,\n            });\n        }\n    }\n    return attributes;\n};\nexports.getConnectionAttributesFromUrl = getConnectionAttributesFromUrl;\nconst markConfirmChannelTracing = (context) => {\n    return context.setValue(IS_CONFIRM_CHANNEL_CONTEXT_KEY, true);\n};\nexports.markConfirmChannelTracing = markConfirmChannelTracing;\nconst unmarkConfirmChannelTracing = (context) => {\n    return context.deleteValue(IS_CONFIRM_CHANNEL_CONTEXT_KEY);\n};\nexports.unmarkConfirmChannelTracing = unmarkConfirmChannelTracing;\nconst isConfirmChannelTracing = (context) => {\n    return context.getValue(IS_CONFIRM_CHANNEL_CONTEXT_KEY) === true;\n};\nexports.isConfirmChannelTracing = isConfirmChannelTracing;\n//# sourceMappingURL=utils.js.map",
-    "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.60.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-amqplib';\n//# sourceMappingURL=version.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AmqplibInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst api_1 = require(\"@opentelemetry/api\");\nconst core_1 = require(\"@opentelemetry/core\");\nconst instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nconst semconv_1 = require(\"./semconv\");\nconst semconv_obsolete_1 = require(\"../src/semconv-obsolete\");\nconst types_1 = require(\"./types\");\nconst utils_1 = require(\"./utils\");\n/** @knipignore */\nconst version_1 = require(\"./version\");\nconst supportedVersions = ['>=0.5.5 <1'];\nclass AmqplibInstrumentation extends instrumentation_1.InstrumentationBase {\n    _netSemconvStability;\n    constructor(config = {}) {\n        super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, { ...types_1.DEFAULT_CONFIG, ...config });\n        this._setSemconvStabilityFromEnv();\n    }\n    // Used for testing.\n    _setSemconvStabilityFromEnv() {\n        this._netSemconvStability = (0, instrumentation_1.semconvStabilityFromStr)('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n    }\n    setConfig(config = {}) {\n        super.setConfig({ ...types_1.DEFAULT_CONFIG, ...config });\n    }\n    init() {\n        const channelModelModuleFile = new instrumentation_1.InstrumentationNodeModuleFile('amqplib/lib/channel_model.js', supportedVersions, this.patchChannelModel.bind(this), this.unpatchChannelModel.bind(this));\n        const callbackModelModuleFile = new instrumentation_1.InstrumentationNodeModuleFile('amqplib/lib/callback_model.js', supportedVersions, this.patchChannelModel.bind(this), this.unpatchChannelModel.bind(this));\n        const connectModuleFile = new instrumentation_1.InstrumentationNodeModuleFile('amqplib/lib/connect.js', supportedVersions, this.patchConnect.bind(this), this.unpatchConnect.bind(this));\n        const module = new instrumentation_1.InstrumentationNodeModuleDefinition('amqplib', supportedVersions, undefined, undefined, [channelModelModuleFile, connectModuleFile, callbackModelModuleFile]);\n        return module;\n    }\n    patchConnect(moduleExports) {\n        moduleExports = this.unpatchConnect(moduleExports);\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.connect)) {\n            this._wrap(moduleExports, 'connect', this.getConnectPatch.bind(this));\n        }\n        return moduleExports;\n    }\n    unpatchConnect(moduleExports) {\n        if ((0, instrumentation_1.isWrapped)(moduleExports.connect)) {\n            this._unwrap(moduleExports, 'connect');\n        }\n        return moduleExports;\n    }\n    patchChannelModel(moduleExports, moduleVersion) {\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.publish)) {\n            this._wrap(moduleExports.Channel.prototype, 'publish', this.getPublishPatch.bind(this, moduleVersion));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.consume)) {\n            this._wrap(moduleExports.Channel.prototype, 'consume', this.getConsumePatch.bind(this, moduleVersion));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.ack)) {\n            this._wrap(moduleExports.Channel.prototype, 'ack', this.getAckPatch.bind(this, false, types_1.EndOperation.Ack));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.nack)) {\n            this._wrap(moduleExports.Channel.prototype, 'nack', this.getAckPatch.bind(this, true, types_1.EndOperation.Nack));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.reject)) {\n            this._wrap(moduleExports.Channel.prototype, 'reject', this.getAckPatch.bind(this, true, types_1.EndOperation.Reject));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.ackAll)) {\n            this._wrap(moduleExports.Channel.prototype, 'ackAll', this.getAckAllPatch.bind(this, false, types_1.EndOperation.AckAll));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.nackAll)) {\n            this._wrap(moduleExports.Channel.prototype, 'nackAll', this.getAckAllPatch.bind(this, true, types_1.EndOperation.NackAll));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.emit)) {\n            this._wrap(moduleExports.Channel.prototype, 'emit', this.getChannelEmitPatch.bind(this));\n        }\n        if (!(0, instrumentation_1.isWrapped)(moduleExports.ConfirmChannel.prototype.publish)) {\n            this._wrap(moduleExports.ConfirmChannel.prototype, 'publish', this.getConfirmedPublishPatch.bind(this, moduleVersion));\n        }\n        return moduleExports;\n    }\n    unpatchChannelModel(moduleExports) {\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.publish)) {\n            this._unwrap(moduleExports.Channel.prototype, 'publish');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.consume)) {\n            this._unwrap(moduleExports.Channel.prototype, 'consume');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.ack)) {\n            this._unwrap(moduleExports.Channel.prototype, 'ack');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.nack)) {\n            this._unwrap(moduleExports.Channel.prototype, 'nack');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.reject)) {\n            this._unwrap(moduleExports.Channel.prototype, 'reject');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.ackAll)) {\n            this._unwrap(moduleExports.Channel.prototype, 'ackAll');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.nackAll)) {\n            this._unwrap(moduleExports.Channel.prototype, 'nackAll');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.Channel.prototype.emit)) {\n            this._unwrap(moduleExports.Channel.prototype, 'emit');\n        }\n        if ((0, instrumentation_1.isWrapped)(moduleExports.ConfirmChannel.prototype.publish)) {\n            this._unwrap(moduleExports.ConfirmChannel.prototype, 'publish');\n        }\n        return moduleExports;\n    }\n    getConnectPatch(original) {\n        const self = this;\n        return function patchedConnect(url, socketOptions, openCallback) {\n            return original.call(this, url, socketOptions, function (err, conn) {\n                if (err == null) {\n                    const urlAttributes = (0, utils_1.getConnectionAttributesFromUrl)(url, self._netSemconvStability);\n                    const serverAttributes = (0, utils_1.getConnectionAttributesFromServer)(conn);\n                    conn[utils_1.CONNECTION_ATTRIBUTES] = {\n                        ...urlAttributes,\n                        ...serverAttributes,\n                    };\n                }\n                openCallback.apply(this, arguments);\n            });\n        };\n    }\n    getChannelEmitPatch(original) {\n        const self = this;\n        return function emit(eventName) {\n            if (eventName === 'close') {\n                self.endAllSpansOnChannel(this, true, types_1.EndOperation.ChannelClosed, undefined);\n                const activeTimer = this[utils_1.CHANNEL_CONSUME_TIMEOUT_TIMER];\n                if (activeTimer) {\n                    clearInterval(activeTimer);\n                }\n                this[utils_1.CHANNEL_CONSUME_TIMEOUT_TIMER] = undefined;\n            }\n            else if (eventName === 'error') {\n                self.endAllSpansOnChannel(this, true, types_1.EndOperation.ChannelError, undefined);\n            }\n            return original.apply(this, arguments);\n        };\n    }\n    getAckAllPatch(isRejected, endOperation, original) {\n        const self = this;\n        return function ackAll(requeueOrEmpty) {\n            self.endAllSpansOnChannel(this, isRejected, endOperation, requeueOrEmpty);\n            return original.apply(this, arguments);\n        };\n    }\n    getAckPatch(isRejected, endOperation, original) {\n        const self = this;\n        return function ack(message, allUpToOrRequeue, requeue) {\n            const channel = this;\n            // we use this patch in reject function as well, but it has different signature\n            const requeueResolved = endOperation === types_1.EndOperation.Reject ? allUpToOrRequeue : requeue;\n            const spansNotEnded = channel[utils_1.CHANNEL_SPANS_NOT_ENDED] ?? [];\n            const msgIndex = spansNotEnded.findIndex(msgDetails => msgDetails.msg === message);\n            if (msgIndex < 0) {\n                // should not happen in happy flow\n                // but possible if user is calling the api function ack twice with same message\n                self.endConsumerSpan(message, isRejected, endOperation, requeueResolved);\n            }\n            else if (endOperation !== types_1.EndOperation.Reject && allUpToOrRequeue) {\n                for (let i = 0; i <= msgIndex; i++) {\n                    self.endConsumerSpan(spansNotEnded[i].msg, isRejected, endOperation, requeueResolved);\n                }\n                spansNotEnded.splice(0, msgIndex + 1);\n            }\n            else {\n                self.endConsumerSpan(message, isRejected, endOperation, requeueResolved);\n                spansNotEnded.splice(msgIndex, 1);\n            }\n            return original.apply(this, arguments);\n        };\n    }\n    getConsumePatch(moduleVersion, original) {\n        const self = this;\n        return function consume(queue, onMessage, options) {\n            const channel = this;\n            if (!Object.prototype.hasOwnProperty.call(channel, utils_1.CHANNEL_SPANS_NOT_ENDED)) {\n                const { consumeTimeoutMs } = self.getConfig();\n                if (consumeTimeoutMs) {\n                    const timer = setInterval(() => {\n                        self.checkConsumeTimeoutOnChannel(channel);\n                    }, consumeTimeoutMs);\n                    timer.unref();\n                    channel[utils_1.CHANNEL_CONSUME_TIMEOUT_TIMER] = timer;\n                }\n                channel[utils_1.CHANNEL_SPANS_NOT_ENDED] = [];\n            }\n            const patchedOnMessage = function (msg) {\n                // msg is expected to be null for signaling consumer cancel notification\n                // https://www.rabbitmq.com/consumer-cancel.html\n                // in this case, we do not start a span, as this is not a real message.\n                if (!msg) {\n                    return onMessage.call(this, msg);\n                }\n                const headers = msg.properties.headers ?? {};\n                let parentContext = api_1.propagation.extract(api_1.ROOT_CONTEXT, headers);\n                const exchange = msg.fields?.exchange;\n                let links;\n                if (self._config.useLinksForConsume) {\n                    const parentSpanContext = parentContext\n                        ? api_1.trace.getSpan(parentContext)?.spanContext()\n                        : undefined;\n                    parentContext = undefined;\n                    if (parentSpanContext) {\n                        links = [\n                            {\n                                context: parentSpanContext,\n                            },\n                        ];\n                    }\n                }\n                const span = self.tracer.startSpan(`${queue} process`, {\n                    kind: api_1.SpanKind.CONSUMER,\n                    attributes: {\n                        ...channel?.connection?.[utils_1.CONNECTION_ATTRIBUTES],\n                        [semconv_obsolete_1.ATTR_MESSAGING_DESTINATION]: exchange,\n                        [semconv_obsolete_1.ATTR_MESSAGING_DESTINATION_KIND]: semconv_obsolete_1.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,\n                        [semconv_obsolete_1.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]: msg.fields?.routingKey,\n                        [semconv_1.ATTR_MESSAGING_OPERATION]: semconv_obsolete_1.MESSAGING_OPERATION_VALUE_PROCESS,\n                        [semconv_obsolete_1.OLD_ATTR_MESSAGING_MESSAGE_ID]: msg?.properties.messageId,\n                        [semconv_obsolete_1.ATTR_MESSAGING_CONVERSATION_ID]: msg?.properties.correlationId,\n                    },\n                    links,\n                }, parentContext);\n                const { consumeHook } = self.getConfig();\n                if (consumeHook) {\n                    (0, instrumentation_1.safeExecuteInTheMiddle)(() => consumeHook(span, { moduleVersion, msg }), e => {\n                        if (e) {\n                            api_1.diag.error('amqplib instrumentation: consumerHook error', e);\n                        }\n                    }, true);\n                }\n                if (!options?.noAck) {\n                    // store the message on the channel so we can close the span on ackAll etc\n                    channel[utils_1.CHANNEL_SPANS_NOT_ENDED].push({\n                        msg,\n                        timeOfConsume: (0, core_1.hrTime)(),\n                    });\n                    // store the span on the message, so we can end it when user call 'ack' on it\n                    msg[utils_1.MESSAGE_STORED_SPAN] = span;\n                }\n                const setContext = parentContext\n                    ? parentContext\n                    : api_1.ROOT_CONTEXT;\n                api_1.context.with(api_1.trace.setSpan(setContext, span), () => {\n                    onMessage.call(this, msg);\n                });\n                if (options?.noAck) {\n                    self.callConsumeEndHook(span, msg, false, types_1.EndOperation.AutoAck);\n                    span.end();\n                }\n            };\n            arguments[1] = patchedOnMessage;\n            return original.apply(this, arguments);\n        };\n    }\n    getConfirmedPublishPatch(moduleVersion, original) {\n        const self = this;\n        return function confirmedPublish(exchange, routingKey, content, options, callback) {\n            const channel = this;\n            const { span, modifiedOptions } = self.createPublishSpan(self, exchange, routingKey, channel, options);\n            const { publishHook } = self.getConfig();\n            if (publishHook) {\n                (0, instrumentation_1.safeExecuteInTheMiddle)(() => publishHook(span, {\n                    moduleVersion,\n                    exchange,\n                    routingKey,\n                    content,\n                    options: modifiedOptions,\n                    isConfirmChannel: true,\n                }), e => {\n                    if (e) {\n                        api_1.diag.error('amqplib instrumentation: publishHook error', e);\n                    }\n                }, true);\n            }\n            const patchedOnConfirm = function (err, ok) {\n                try {\n                    callback?.call(this, err, ok);\n                }\n                finally {\n                    const { publishConfirmHook } = self.getConfig();\n                    if (publishConfirmHook) {\n                        (0, instrumentation_1.safeExecuteInTheMiddle)(() => publishConfirmHook(span, {\n                            moduleVersion,\n                            exchange,\n                            routingKey,\n                            content,\n                            options,\n                            isConfirmChannel: true,\n                            confirmError: err,\n                        }), e => {\n                            if (e) {\n                                api_1.diag.error('amqplib instrumentation: publishConfirmHook error', e);\n                            }\n                        }, true);\n                    }\n                    if (err) {\n                        span.setStatus({\n                            code: api_1.SpanStatusCode.ERROR,\n                            message: \"message confirmation has been nack'ed\",\n                        });\n                    }\n                    span.end();\n                }\n            };\n            // calling confirm channel publish function is storing the message in queue and registering the callback for broker confirm.\n            // span ends in the patched callback.\n            const markedContext = (0, utils_1.markConfirmChannelTracing)(api_1.context.active());\n            const argumentsCopy = [...arguments];\n            argumentsCopy[3] = modifiedOptions;\n            argumentsCopy[4] = api_1.context.bind((0, utils_1.unmarkConfirmChannelTracing)(api_1.trace.setSpan(markedContext, span)), patchedOnConfirm);\n            return api_1.context.with(markedContext, original.bind(this, ...argumentsCopy));\n        };\n    }\n    getPublishPatch(moduleVersion, original) {\n        const self = this;\n        return function publish(exchange, routingKey, content, options) {\n            if ((0, utils_1.isConfirmChannelTracing)(api_1.context.active())) {\n                // work already done\n                return original.apply(this, arguments);\n            }\n            else {\n                const channel = this;\n                const { span, modifiedOptions } = self.createPublishSpan(self, exchange, routingKey, channel, options);\n                const { publishHook } = self.getConfig();\n                if (publishHook) {\n                    (0, instrumentation_1.safeExecuteInTheMiddle)(() => publishHook(span, {\n                        moduleVersion,\n                        exchange,\n                        routingKey,\n                        content,\n                        options: modifiedOptions,\n                        isConfirmChannel: false,\n                    }), e => {\n                        if (e) {\n                            api_1.diag.error('amqplib instrumentation: publishHook error', e);\n                        }\n                    }, true);\n                }\n                // calling normal channel publish function is only storing the message in queue.\n                // it does not send it and waits for an ack, so the span duration is expected to be very short.\n                const argumentsCopy = [...arguments];\n                argumentsCopy[3] = modifiedOptions;\n                const originalRes = original.apply(this, argumentsCopy);\n                span.end();\n                return originalRes;\n            }\n        };\n    }\n    createPublishSpan(self, exchange, routingKey, channel, options) {\n        const normalizedExchange = (0, utils_1.normalizeExchange)(exchange);\n        const span = self.tracer.startSpan(`publish ${normalizedExchange}`, {\n            kind: api_1.SpanKind.PRODUCER,\n            attributes: {\n                ...channel.connection[utils_1.CONNECTION_ATTRIBUTES],\n                [semconv_obsolete_1.ATTR_MESSAGING_DESTINATION]: exchange,\n                [semconv_obsolete_1.ATTR_MESSAGING_DESTINATION_KIND]: semconv_obsolete_1.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,\n                [semconv_obsolete_1.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]: routingKey,\n                [semconv_obsolete_1.OLD_ATTR_MESSAGING_MESSAGE_ID]: options?.messageId,\n                [semconv_obsolete_1.ATTR_MESSAGING_CONVERSATION_ID]: options?.correlationId,\n            },\n        });\n        const modifiedOptions = options ?? {};\n        modifiedOptions.headers = modifiedOptions.headers ?? {};\n        api_1.propagation.inject(api_1.trace.setSpan(api_1.context.active(), span), modifiedOptions.headers);\n        return { span, modifiedOptions };\n    }\n    endConsumerSpan(message, isRejected, operation, requeue) {\n        const storedSpan = message[utils_1.MESSAGE_STORED_SPAN];\n        if (!storedSpan)\n            return;\n        if (isRejected !== false) {\n            storedSpan.setStatus({\n                code: api_1.SpanStatusCode.ERROR,\n                message: operation !== types_1.EndOperation.ChannelClosed &&\n                    operation !== types_1.EndOperation.ChannelError\n                    ? `${operation} called on message${requeue === true\n                        ? ' with requeue'\n                        : requeue === false\n                            ? ' without requeue'\n                            : ''}`\n                    : operation,\n            });\n        }\n        this.callConsumeEndHook(storedSpan, message, isRejected, operation);\n        storedSpan.end();\n        message[utils_1.MESSAGE_STORED_SPAN] = undefined;\n    }\n    endAllSpansOnChannel(channel, isRejected, operation, requeue) {\n        const spansNotEnded = channel[utils_1.CHANNEL_SPANS_NOT_ENDED] ?? [];\n        spansNotEnded.forEach(msgDetails => {\n            this.endConsumerSpan(msgDetails.msg, isRejected, operation, requeue);\n        });\n        channel[utils_1.CHANNEL_SPANS_NOT_ENDED] = [];\n    }\n    callConsumeEndHook(span, msg, rejected, endOperation) {\n        const { consumeEndHook } = this.getConfig();\n        if (!consumeEndHook)\n            return;\n        (0, instrumentation_1.safeExecuteInTheMiddle)(() => consumeEndHook(span, { msg, rejected, endOperation }), e => {\n            if (e) {\n                api_1.diag.error('amqplib instrumentation: consumerEndHook error', e);\n            }\n        }, true);\n    }\n    checkConsumeTimeoutOnChannel(channel) {\n        const currentTime = (0, core_1.hrTime)();\n        const spansNotEnded = channel[utils_1.CHANNEL_SPANS_NOT_ENDED] ?? [];\n        let i;\n        const { consumeTimeoutMs } = this.getConfig();\n        for (i = 0; i < spansNotEnded.length; i++) {\n            const currMessage = spansNotEnded[i];\n            const timeFromConsume = (0, core_1.hrTimeDuration)(currMessage.timeOfConsume, currentTime);\n            if ((0, core_1.hrTimeToMilliseconds)(timeFromConsume) < consumeTimeoutMs) {\n                break;\n            }\n            this.endConsumerSpan(currMessage.msg, null, types_1.EndOperation.InstrumentationTimeout, true);\n        }\n        spansNotEnded.splice(0, i);\n    }\n}\nexports.AmqplibInstrumentation = AmqplibInstrumentation;\n//# sourceMappingURL=amqplib.js.map",
-    "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EndOperation = exports.DEFAULT_CONFIG = exports.AmqplibInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar amqplib_1 = require(\"./amqplib\");\nObject.defineProperty(exports, \"AmqplibInstrumentation\", { enumerable: true, get: function () { return amqplib_1.AmqplibInstrumentation; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"DEFAULT_CONFIG\", { enumerable: true, get: function () { return types_1.DEFAULT_CONFIG; } });\nObject.defineProperty(exports, \"EndOperation\", { enumerable: true, get: function () { return types_1.EndOperation; } });\n//# sourceMappingURL=index.js.map",
-    "import { diag } from '@opentelemetry/api';\nimport { HttpInstrumentation } from '@opentelemetry/instrumentation-http';\nimport { defineIntegration, getClient, hasSpansEnabled, stripDataUrlContent, SEMANTIC_ATTRIBUTE_URL_FULL } from '@sentry/core';\nimport { NODE_VERSION, generateInstrumentOnce, SentryHttpInstrumentation, httpServerIntegration, httpServerSpansIntegration, getRequestUrl, addOriginToSpan } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Http';\n\nconst INSTRUMENTATION_NAME = '@opentelemetry_sentry-patched/instrumentation-http';\n\n// The `http.client.request.created` diagnostics channel, needed for trace propagation,\n// was added in Node 22.12.0 (backported from 23.2.0). Earlier 22.x versions don't have it.\nconst FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL =\n  (NODE_VERSION.major === 22 && NODE_VERSION.minor >= 12) ||\n  (NODE_VERSION.major === 23 && NODE_VERSION.minor >= 2) ||\n  NODE_VERSION.major >= 24;\n\nconst instrumentSentryHttp = generateInstrumentOnce(\n  `${INTEGRATION_NAME}.sentry`,\n  options => {\n    return new SentryHttpInstrumentation(options);\n  },\n);\n\nconst instrumentOtelHttp = generateInstrumentOnce(INTEGRATION_NAME, config => {\n  const instrumentation = new HttpInstrumentation({\n    ...config,\n    // This is hard-coded and can never be overridden by the user\n    disableIncomingRequestInstrumentation: true,\n  });\n\n  // We want to update the logger namespace so we can better identify what is happening here\n  try {\n    instrumentation['_diag'] = diag.createComponentLogger({\n      namespace: INSTRUMENTATION_NAME,\n    });\n    // @ts-expect-error We are writing a read-only property here...\n    instrumentation.instrumentationName = INSTRUMENTATION_NAME;\n  } catch {\n    // ignore errors here...\n  }\n\n  // The OTel HttpInstrumentation (>=0.213.0) has a guard (`_httpPatched`/`_httpsPatched`)\n  // that prevents patching `http`/`https` when loaded by both CJS `require()` and ESM `import`.\n  // In environments like AWS Lambda, the runtime loads `http` via CJS first (for the Runtime API),\n  // and then the user's ESM handler imports `node:http`. The guard blocks ESM patching after CJS,\n  // which breaks HTTP spans for ESM handlers. We disable this guard to allow both to be patched.\n  // TODO(andrei): Remove once https://github.com/open-telemetry/opentelemetry-js/issues/6489 is fixed.\n  try {\n    const noopDescriptor = { get: () => false, set: () => {} };\n    Object.defineProperty(instrumentation, '_httpPatched', noopDescriptor);\n    Object.defineProperty(instrumentation, '_httpsPatched', noopDescriptor);\n  } catch {\n    // ignore errors here...\n  }\n\n  return instrumentation;\n});\n\n/** Exported only for tests. */\nfunction _shouldUseOtelHttpInstrumentation(\n  options,\n  clientOptions = {},\n) {\n  // If `spans` is passed in, it takes precedence\n  // Else, we by default emit spans, unless `skipOpenTelemetrySetup` is set to `true` or spans are not enabled\n  if (typeof options.spans === 'boolean') {\n    return options.spans;\n  }\n\n  if (clientOptions.skipOpenTelemetrySetup) {\n    return false;\n  }\n\n  // IMPORTANT: We only disable span instrumentation when spans are not enabled _and_ we are on a Node version\n  // that fully supports the necessary diagnostics channels for trace propagation\n  if (!hasSpansEnabled(clientOptions) && FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL) {\n    return false;\n  }\n\n  return true;\n}\n\n/**\n * The http integration instruments Node's internal http and https modules.\n * It creates breadcrumbs and spans for outgoing HTTP requests which will be attached to the currently active span.\n */\nconst httpIntegration = defineIntegration((options = {}) => {\n  const spans = options.spans ?? true;\n  const disableIncomingRequestSpans = options.disableIncomingRequestSpans;\n\n  const serverOptions = {\n    sessions: options.trackIncomingRequestsAsSessions,\n    sessionFlushingDelayMS: options.sessionFlushingDelayMS,\n    ignoreRequestBody: options.ignoreIncomingRequestBody,\n    maxRequestBodySize: options.maxIncomingRequestBodySize,\n  } ;\n\n  const serverSpansOptions = {\n    ignoreIncomingRequests: options.ignoreIncomingRequests,\n    ignoreStaticAssets: options.ignoreStaticAssets,\n    ignoreStatusCodes: options.dropSpansForIncomingRequestStatusCodes,\n    instrumentation: options.instrumentation,\n    onSpanCreated: options.incomingRequestSpanHook,\n  } ;\n\n  const server = httpServerIntegration(serverOptions);\n  const serverSpans = httpServerSpansIntegration(serverSpansOptions);\n\n  const enableServerSpans = spans && !disableIncomingRequestSpans;\n\n  return {\n    name: INTEGRATION_NAME,\n    setup(client) {\n      const clientOptions = client.getOptions();\n\n      if (enableServerSpans && hasSpansEnabled(clientOptions)) {\n        serverSpans.setup(client);\n      }\n    },\n    setupOnce() {\n      const clientOptions = (getClient()?.getOptions() || {}) ;\n      const useOtelHttpInstrumentation = _shouldUseOtelHttpInstrumentation(options, clientOptions);\n\n      server.setupOnce();\n\n      const sentryHttpInstrumentationOptions = {\n        breadcrumbs: options.breadcrumbs,\n        propagateTraceInOutgoingRequests:\n          typeof options.tracePropagation === 'boolean'\n            ? options.tracePropagation\n            : FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL || !useOtelHttpInstrumentation,\n        createSpansForOutgoingRequests: FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL,\n        spans: options.spans,\n        ignoreOutgoingRequests: options.ignoreOutgoingRequests,\n        outgoingRequestHook: (span, request) => {\n          // Sanitize data URLs to prevent long base64 strings in span attributes\n          const url = getRequestUrl(request);\n          if (url.startsWith('data:')) {\n            const sanitizedUrl = stripDataUrlContent(url);\n            span.setAttribute('http.url', sanitizedUrl);\n            span.setAttribute(SEMANTIC_ATTRIBUTE_URL_FULL, sanitizedUrl);\n            span.updateName(`${request.method || 'GET'} ${sanitizedUrl}`);\n          }\n\n          options.instrumentation?.requestHook?.(span, request);\n        },\n        outgoingResponseHook: options.instrumentation?.responseHook,\n        outgoingRequestApplyCustomAttributes: options.instrumentation?.applyCustomAttributesOnSpan,\n      } ;\n\n      // This is Sentry-specific instrumentation for outgoing request breadcrumbs & trace propagation\n      instrumentSentryHttp(sentryHttpInstrumentationOptions);\n\n      // This is the \"regular\" OTEL instrumentation that emits outgoing request spans\n      if (useOtelHttpInstrumentation) {\n        const instrumentationConfig = getConfigWithDefaults(options);\n        instrumentOtelHttp(instrumentationConfig);\n      }\n    },\n    processEvent(event) {\n      // Note: We always run this, even if spans are disabled\n      // The reason being that e.g. the remix integration disables span creation here but still wants to use the ignore status codes option\n      return serverSpans.processEvent(event);\n    },\n  };\n});\n\nfunction getConfigWithDefaults(options = {}) {\n  const instrumentationConfig = {\n    // This is handled by the SentryHttpInstrumentation on Node 22+\n    disableOutgoingRequestInstrumentation: FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL,\n\n    ignoreOutgoingRequestHook: request => {\n      const url = getRequestUrl(request);\n\n      if (!url) {\n        return false;\n      }\n\n      const _ignoreOutgoingRequests = options.ignoreOutgoingRequests;\n      if (_ignoreOutgoingRequests?.(url, request)) {\n        return true;\n      }\n\n      return false;\n    },\n\n    requireParentforOutgoingSpans: false,\n    requestHook: (span, req) => {\n      addOriginToSpan(span, 'auto.http.otel.http');\n\n      // Sanitize data URLs to prevent long base64 strings in span attributes\n      const url = getRequestUrl(req );\n      if (url.startsWith('data:')) {\n        const sanitizedUrl = stripDataUrlContent(url);\n        span.setAttribute('http.url', sanitizedUrl);\n        span.setAttribute(SEMANTIC_ATTRIBUTE_URL_FULL, sanitizedUrl);\n        span.updateName(`${(req ).method || 'GET'} ${sanitizedUrl}`);\n      }\n\n      options.instrumentation?.requestHook?.(span, req);\n    },\n    responseHook: (span, res) => {\n      options.instrumentation?.responseHook?.(span, res);\n    },\n    applyCustomAttributesOnSpan: (\n      span,\n      request,\n      response,\n    ) => {\n      options.instrumentation?.applyCustomAttributesOnSpan?.(span, request, response);\n    },\n  } ;\n\n  return instrumentationConfig;\n}\n\nexport { _shouldUseOtelHttpInstrumentation, httpIntegration, instrumentOtelHttp, instrumentSentryHttp };\n//# sourceMappingURL=http.js.map\n",
-    "/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n",
-    "// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n  switch (objectToString.call(wat)) {\n    case '[object Error]':\n    case '[object Exception]':\n    case '[object DOMException]':\n    case '[object WebAssembly.Exception]':\n      return true;\n    default:\n      return isInstanceOf(wat, Error);\n  }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat, className) {\n  return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n  return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n  return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n  return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n  return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given string is parameterized\n * {@link isParameterizedString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isParameterizedString(wat) {\n  return (\n    typeof wat === 'object' &&\n    wat !== null &&\n    '__sentry_template_string__' in wat &&\n    '__sentry_template_values__' in wat\n  );\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n  return wat === null || isParameterizedString(wat) || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal, or a class instance.\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n  return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n  return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n  return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n  return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n  return Boolean(wat?.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n  return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\n// TODO: fix in v11, convert any to unknown\n// export function isInstanceOf(wat: unknown, base: { new (...args: any[]): T }): wat is T {\nfunction isInstanceOf(wat, base) {\n  try {\n    return wat instanceof base;\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Checks whether given value's type is a Vue ViewModel or a VNode.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isVueViewModel(wat) {\n  // Not using Object.prototype.toString because in Vue 3 it would read the instance's Symbol(Symbol.toStringTag) property.\n  // We also need to check for __v_isVNode because Vue 3 component render instances have an internal __v_isVNode property.\n  return !!(\n    typeof wat === 'object' &&\n    wat !== null &&\n    ((wat ).__isVue || (wat )._isVue || (wat ).__v_isVNode)\n  );\n}\n\n/**\n * Checks whether the given parameter is a Standard Web API Request instance.\n *\n * Returns false if Request is not available in the current runtime.\n */\nfunction isRequest(request) {\n  return typeof Request !== 'undefined' && isInstanceOf(request, Request);\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isParameterizedString, isPlainObject, isPrimitive, isRegExp, isRequest, isString, isSyntheticEvent, isThenable, isVueViewModel };\n//# sourceMappingURL=is.js.map\n",
-    "/** Internal global with common properties and Sentry extensions  */\n\n/** Get's the global object for the current JavaScript runtime */\nconst GLOBAL_OBJ = globalThis ;\n\nexport { GLOBAL_OBJ };\n//# sourceMappingURL=worldwide.js.map\n",
-    "import { isString } from './is.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(\n  elem,\n  options = {},\n) {\n  if (!elem) {\n    return '';\n  }\n\n  // try/catch both:\n  // - accessing event.target (see getsentry/raven-js#838, #768)\n  // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n  // - can throw an exception in some circumstances.\n  try {\n    let currentElem = elem ;\n    const MAX_TRAVERSE_HEIGHT = 5;\n    const out = [];\n    let height = 0;\n    let len = 0;\n    const separator = ' > ';\n    const sepLength = separator.length;\n    let nextStr;\n    const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n    const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n    while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n      nextStr = _htmlElementAsString(currentElem, keyAttrs);\n      // bail out if\n      // - nextStr is the 'html' element\n      // - the length of the string that would be created exceeds maxStringLength\n      //   (ignore this limit if we are on the first iteration)\n      if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n        break;\n      }\n\n      out.push(nextStr);\n\n      len += nextStr.length;\n      currentElem = currentElem.parentNode;\n    }\n\n    return out.reverse().join(separator);\n  } catch {\n    return '';\n  }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n  const elem = el\n\n;\n\n  const out = [];\n\n  if (!elem?.tagName) {\n    return '';\n  }\n\n  // @ts-expect-error WINDOW has HTMLElement\n  if (WINDOW.HTMLElement) {\n    // If using the component name annotation plugin, this value may be available on the DOM node\n    if (elem instanceof HTMLElement && elem.dataset) {\n      if (elem.dataset['sentryComponent']) {\n        return elem.dataset['sentryComponent'];\n      }\n      if (elem.dataset['sentryElement']) {\n        return elem.dataset['sentryElement'];\n      }\n    }\n  }\n\n  out.push(elem.tagName.toLowerCase());\n\n  // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n  const keyAttrPairs = keyAttrs?.length\n    ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n    : null;\n\n  if (keyAttrPairs?.length) {\n    keyAttrPairs.forEach(keyAttrPair => {\n      out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n    });\n  } else {\n    if (elem.id) {\n      out.push(`#${elem.id}`);\n    }\n\n    const className = elem.className;\n    if (className && isString(className)) {\n      const classes = className.split(/\\s+/);\n      for (const c of classes) {\n        out.push(`.${c}`);\n      }\n    }\n  }\n  for (const k of ['aria-label', 'type', 'name', 'title', 'alt']) {\n    const attr = elem.getAttribute(k);\n    if (attr) {\n      out.push(`[${k}=\"${attr}\"]`);\n    }\n  }\n\n  return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n  try {\n    return WINDOW.document.location.href;\n  } catch {\n    return '';\n  }\n}\n\n/**\n * Given a DOM element, traverses up the tree until it finds the first ancestor node\n * that has the `data-sentry-component` or `data-sentry-element` attribute with `data-sentry-component` taking\n * precedence. This attribute is added at build-time by projects that have the component name annotation plugin installed.\n *\n * @returns a string representation of the component for the provided DOM element, or `null` if not found\n */\nfunction getComponentName(elem) {\n  // @ts-expect-error WINDOW has HTMLElement\n  if (!WINDOW.HTMLElement) {\n    return null;\n  }\n\n  let currentElem = elem ;\n  const MAX_TRAVERSE_HEIGHT = 5;\n  for (let i = 0; i < MAX_TRAVERSE_HEIGHT; i++) {\n    if (!currentElem) {\n      return null;\n    }\n\n    if (currentElem instanceof HTMLElement) {\n      if (currentElem.dataset['sentryComponent']) {\n        return currentElem.dataset['sentryComponent'];\n      }\n      if (currentElem.dataset['sentryElement']) {\n        return currentElem.dataset['sentryElement'];\n      }\n    }\n\n    currentElem = currentElem.parentNode;\n  }\n\n  return null;\n}\n\nexport { getComponentName, getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n",
-    "// This is a magic string replaced by rollup\n\nconst SDK_VERSION = \"10.46.0\" ;\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n",
-    "import { SDK_VERSION } from './utils/version.js';\nimport { GLOBAL_OBJ } from './utils/worldwide.js';\n\n/**\n * An object that contains globally accessible properties and maintains a scope stack.\n * @hidden\n */\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n  // This ensures a Sentry carrier exists\n  getSentryCarrier(GLOBAL_OBJ);\n  return GLOBAL_OBJ;\n}\n\n/** Will either get the existing sentry carrier, or create a new one. */\nfunction getSentryCarrier(carrier) {\n  const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n\n  // For now: First SDK that sets the .version property wins\n  __SENTRY__.version = __SENTRY__.version || SDK_VERSION;\n\n  // Intentionally populating and returning the version of \"this\" SDK instance\n  // rather than what's set in .version so that \"this\" SDK always gets its carrier\n  return (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__[]` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(\n  name,\n  creator,\n  obj = GLOBAL_OBJ,\n) {\n  const __SENTRY__ = (obj.__SENTRY__ = obj.__SENTRY__ || {});\n  const carrier = (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n  // Note: We do not want to set `carrier.version` here, as this may be called before any `init` is called, e.g. for the default scopes\n  return carrier[name] || (carrier[name] = creator());\n}\n\nexport { getGlobalSingleton, getMainCarrier, getSentryCarrier };\n//# sourceMappingURL=carrier.js.map\n",
-    "import { getGlobalSingleton } from '../carrier.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst CONSOLE_LEVELS = [\n  'debug',\n  'info',\n  'warn',\n  'error',\n  'log',\n  'assert',\n  'trace',\n] ;\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\n/** This may be mutated by the console instrumentation. */\nconst originalConsoleMethods\n\n = {};\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n  if (!('console' in GLOBAL_OBJ)) {\n    return callback();\n  }\n\n  const console = GLOBAL_OBJ.console;\n  const wrappedFuncs = {};\n\n  const wrappedLevels = Object.keys(originalConsoleMethods) ;\n\n  // Restore all wrapped console methods\n  wrappedLevels.forEach(level => {\n    const originalConsoleMethod = originalConsoleMethods[level];\n    wrappedFuncs[level] = console[level] ;\n    console[level] = originalConsoleMethod ;\n  });\n\n  try {\n    return callback();\n  } finally {\n    // Revert restoration to wrapped state\n    wrappedLevels.forEach(level => {\n      console[level] = wrappedFuncs[level] ;\n    });\n  }\n}\n\nfunction enable() {\n  _getLoggerSettings().enabled = true;\n}\n\nfunction disable() {\n  _getLoggerSettings().enabled = false;\n}\n\nfunction isEnabled() {\n  return _getLoggerSettings().enabled;\n}\n\nfunction log(...args) {\n  _maybeLog('log', ...args);\n}\n\nfunction warn(...args) {\n  _maybeLog('warn', ...args);\n}\n\nfunction error(...args) {\n  _maybeLog('error', ...args);\n}\n\nfunction _maybeLog(level, ...args) {\n  if (!DEBUG_BUILD) {\n    return;\n  }\n\n  if (isEnabled()) {\n    consoleSandbox(() => {\n      GLOBAL_OBJ.console[level](`${PREFIX}[${level}]:`, ...args);\n    });\n  }\n}\n\nfunction _getLoggerSettings() {\n  if (!DEBUG_BUILD) {\n    return { enabled: false };\n  }\n\n  return getGlobalSingleton('loggerSettings', () => ({ enabled: false }));\n}\n\n/**\n * This is a logger singleton which either logs things or no-ops if logging is not enabled.\n */\nconst debug = {\n  /** Enable logging. */\n  enable,\n  /** Disable logging. */\n  disable,\n  /** Check if logging is enabled. */\n  isEnabled,\n  /** Log a message. */\n  log,\n  /** Log a warning. */\n  warn,\n  /** Log an error. */\n  error,\n} ;\n\nexport { CONSOLE_LEVELS, consoleSandbox, debug, originalConsoleMethods };\n//# sourceMappingURL=debug-logger.js.map\n",
-    "import { DEBUG_BUILD } from '../debug-build.js';\nimport { htmlTreeAsString } from './browser.js';\nimport { debug } from './debug-logger.js';\nimport { isError, isEvent, isInstanceOf, isPrimitive, isElement } from './is.js';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * If the method on the passed object is not a function, the wrapper will not be applied.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n  if (!(name in source)) {\n    return;\n  }\n\n  // explicitly casting to unknown because we don't know the type of the method initially at all\n  const original = source[name] ;\n\n  if (typeof original !== 'function') {\n    return;\n  }\n\n  const wrapped = replacementFactory(original) ;\n\n  // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n  // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n  if (typeof wrapped === 'function') {\n    markFunctionWrapped(wrapped, original);\n  }\n\n  try {\n    source[name] = wrapped;\n  } catch {\n    DEBUG_BUILD && debug.log(`Failed to replace method \"${name}\" in object`, source);\n  }\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n  try {\n    Object.defineProperty(obj, name, {\n      // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n      value,\n      writable: true,\n      configurable: true,\n    });\n  } catch {\n    DEBUG_BUILD && debug.log(`Failed to add non-enumerable property \"${name}\" to object`, obj);\n  }\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n  try {\n    const proto = original.prototype || {};\n    wrapped.prototype = original.prototype = proto;\n    addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n  } catch {} // eslint-disable-line no-empty\n}\n\n/**\n * This extracts the original function if available.  See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction getOriginalFunction(func) {\n  return func.__sentry_original__;\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argument itself, when value is neither an Event nor\n *  an Error.\n */\nfunction convertToPlainObject(value)\n\n {\n  if (isError(value)) {\n    return {\n      message: value.message,\n      name: value.name,\n      stack: value.stack,\n      ...getOwnProperties(value),\n    };\n  } else if (isEvent(value)) {\n    const newObj\n\n = {\n      type: value.type,\n      target: serializeEventTarget(value.target),\n      currentTarget: serializeEventTarget(value.currentTarget),\n      ...getOwnProperties(value),\n    };\n\n    if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n      newObj.detail = value.detail;\n    }\n\n    return newObj;\n  } else {\n    return value;\n  }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n  try {\n    return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n  } catch {\n    return '';\n  }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n  if (typeof obj === 'object' && obj !== null) {\n    return Object.fromEntries(Object.entries(obj));\n  }\n  return {};\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception) {\n  const keys = Object.keys(convertToPlainObject(exception));\n  keys.sort();\n\n  return !keys[0] ? '[object has no keys]' : keys.join(', ');\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n *\n * @deprecated This function is no longer used by the SDK and will be removed in a future major version.\n */\nfunction dropUndefinedKeys(inputValue) {\n  // This map keeps track of what already visited nodes map to.\n  // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n  // references as the input object.\n  const memoizationMap = new Map();\n\n  // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n  return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n  // Early return for primitive values\n  if (inputValue === null || typeof inputValue !== 'object') {\n    return inputValue;\n  }\n\n  // Check memo map first for all object types\n  const memoVal = memoizationMap.get(inputValue);\n  if (memoVal !== undefined) {\n    return memoVal ;\n  }\n\n  // handle arrays\n  if (Array.isArray(inputValue)) {\n    const returnValue = [];\n    // Store mapping to handle circular references\n    memoizationMap.set(inputValue, returnValue);\n\n    inputValue.forEach(value => {\n      returnValue.push(_dropUndefinedKeys(value, memoizationMap));\n    });\n\n    return returnValue ;\n  }\n\n  if (isPojo(inputValue)) {\n    const returnValue = {};\n    // Store mapping to handle circular references\n    memoizationMap.set(inputValue, returnValue);\n\n    const keys = Object.keys(inputValue);\n\n    keys.forEach(key => {\n      const val = inputValue[key];\n      if (val !== undefined) {\n        returnValue[key] = _dropUndefinedKeys(val, memoizationMap);\n      }\n    });\n\n    return returnValue ;\n  }\n\n  // For other object types, return as is\n  return inputValue;\n}\n\nfunction isPojo(input) {\n  // Plain objects have Object as constructor or no constructor\n  const constructor = (input ).constructor;\n  return constructor === Object || constructor === undefined;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n  let objectified;\n  switch (true) {\n    // this will catch both undefined and null\n    case wat == undefined:\n      objectified = new String(wat);\n      break;\n\n    // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n    // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n    // an object in order to wrap it.\n    case typeof wat === 'symbol' || typeof wat === 'bigint':\n      objectified = Object(wat);\n      break;\n\n    // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n    case isPrimitive(wat):\n      // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n      objectified = new (wat ).constructor(wat);\n      break;\n\n    // by process of elimination, at this point we know that `wat` must already be an object\n    default:\n      objectified = wat;\n      break;\n  }\n  return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify };\n//# sourceMappingURL=object.js.map\n",
-    "import { addNonEnumerableProperty } from '../utils/object.js';\nimport { GLOBAL_OBJ } from '../utils/worldwide.js';\n\nconst SCOPE_ON_START_SPAN_FIELD = '_sentryScope';\nconst ISOLATION_SCOPE_ON_START_SPAN_FIELD = '_sentryIsolationScope';\n\n/** Wrap a scope with a WeakRef if available, falling back to a direct scope. */\nfunction wrapScopeWithWeakRef(scope) {\n  try {\n    // @ts-expect-error - WeakRef is not available in all environments\n    const WeakRefClass = GLOBAL_OBJ.WeakRef;\n    if (typeof WeakRefClass === 'function') {\n      return new WeakRefClass(scope);\n    }\n  } catch {\n    // WeakRef not available or failed to create\n    // We'll fall back to a direct scope\n  }\n\n  return scope;\n}\n\n/** Try to unwrap a scope from a potential WeakRef wrapper. */\nfunction unwrapScopeFromWeakRef(scopeRef) {\n  if (!scopeRef) {\n    return undefined;\n  }\n\n  if (typeof scopeRef === 'object' && 'deref' in scopeRef && typeof scopeRef.deref === 'function') {\n    try {\n      return scopeRef.deref();\n    } catch {\n      return undefined;\n    }\n  }\n\n  // Fallback to a direct scope\n  return scopeRef ;\n}\n\n/** Store the scope & isolation scope for a span, which can the be used when it is finished. */\nfunction setCapturedScopesOnSpan(span, scope, isolationScope) {\n  if (span) {\n    addNonEnumerableProperty(span, ISOLATION_SCOPE_ON_START_SPAN_FIELD, wrapScopeWithWeakRef(isolationScope));\n    // We don't wrap the scope with a WeakRef here because webkit aggressively garbage collects\n    // and scopes are not held in memory for long periods of time.\n    addNonEnumerableProperty(span, SCOPE_ON_START_SPAN_FIELD, scope);\n  }\n}\n\n/**\n * Grabs the scope and isolation scope off a span that were active when the span was started.\n * If WeakRef was used and scopes have been garbage collected, returns undefined for those scopes.\n */\nfunction getCapturedScopesOnSpan(span) {\n  const spanWithScopes = span ;\n\n  return {\n    scope: spanWithScopes[SCOPE_ON_START_SPAN_FIELD],\n    isolationScope: unwrapScopeFromWeakRef(spanWithScopes[ISOLATION_SCOPE_ON_START_SPAN_FIELD]),\n  };\n}\n\nexport { getCapturedScopesOnSpan, setCapturedScopesOnSpan };\n//# sourceMappingURL=utils.js.map\n",
-    "const SPAN_STATUS_UNSET = 0;\nconst SPAN_STATUS_OK = 1;\nconst SPAN_STATUS_ERROR = 2;\n\n/**\n * Converts a HTTP status code into a sentry status with a message.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or internal_error.\n */\n// https://develop.sentry.dev/sdk/event-payloads/span/\nfunction getSpanStatusFromHttpCode(httpStatus) {\n  if (httpStatus < 400 && httpStatus >= 100) {\n    return { code: SPAN_STATUS_OK };\n  }\n\n  if (httpStatus >= 400 && httpStatus < 500) {\n    switch (httpStatus) {\n      case 401:\n        return { code: SPAN_STATUS_ERROR, message: 'unauthenticated' };\n      case 403:\n        return { code: SPAN_STATUS_ERROR, message: 'permission_denied' };\n      case 404:\n        return { code: SPAN_STATUS_ERROR, message: 'not_found' };\n      case 409:\n        return { code: SPAN_STATUS_ERROR, message: 'already_exists' };\n      case 413:\n        return { code: SPAN_STATUS_ERROR, message: 'failed_precondition' };\n      case 429:\n        return { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' };\n      case 499:\n        return { code: SPAN_STATUS_ERROR, message: 'cancelled' };\n      default:\n        return { code: SPAN_STATUS_ERROR, message: 'invalid_argument' };\n    }\n  }\n\n  if (httpStatus >= 500 && httpStatus < 600) {\n    switch (httpStatus) {\n      case 501:\n        return { code: SPAN_STATUS_ERROR, message: 'unimplemented' };\n      case 503:\n        return { code: SPAN_STATUS_ERROR, message: 'unavailable' };\n      case 504:\n        return { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' };\n      default:\n        return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n    }\n  }\n\n  return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n}\n\n/**\n * Sets the Http status attributes on the current span based on the http code.\n * Additionally, the span's status is updated, depending on the http code.\n */\nfunction setHttpStatus(span, httpStatus) {\n  span.setAttribute('http.response.status_code', httpStatus);\n\n  const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n  if (spanStatus.message !== 'unknown_error') {\n    span.setStatus(spanStatus);\n  }\n}\n\nexport { SPAN_STATUS_ERROR, SPAN_STATUS_OK, SPAN_STATUS_UNSET, getSpanStatusFromHttpCode, setHttpStatus };\n//# sourceMappingURL=spanstatus.js.map\n",
-    "import { GLOBAL_OBJ } from './worldwide.js';\n\n// undefined = not yet resolved, null = no runner found, function = runner found\nlet RESOLVED_RUNNER;\n\n/**\n * Simple wrapper that allows SDKs to *secretly* set context wrapper to generate safe random IDs in cache components contexts\n */\nfunction withRandomSafeContext(cb) {\n  // Skips future symbol lookups if we've already resolved (or attempted to resolve) the runner once\n  if (RESOLVED_RUNNER !== undefined) {\n    return RESOLVED_RUNNER ? RESOLVED_RUNNER(cb) : cb();\n  }\n\n  const sym = Symbol.for('__SENTRY_SAFE_RANDOM_ID_WRAPPER__');\n  const globalWithSymbol = GLOBAL_OBJ;\n\n  if (sym in globalWithSymbol && typeof globalWithSymbol[sym] === 'function') {\n    RESOLVED_RUNNER = globalWithSymbol[sym];\n    return RESOLVED_RUNNER(cb);\n  }\n\n  RESOLVED_RUNNER = null;\n  return cb();\n}\n\n/**\n * Identical to Math.random() but wrapped in withRandomSafeContext\n * to ensure safe random number generation in certain contexts (e.g., Next.js Cache Components).\n */\nfunction safeMathRandom() {\n  return withRandomSafeContext(() => Math.random());\n}\n\n/**\n * Identical to Date.now() but wrapped in withRandomSafeContext\n * to ensure safe time value generation in certain contexts (e.g., Next.js Cache Components).\n */\nfunction safeDateNow() {\n  return withRandomSafeContext(() => Date.now());\n}\n\nexport { safeDateNow, safeMathRandom, withRandomSafeContext };\n//# sourceMappingURL=randomSafeContext.js.map\n",
-    "const STACKTRACE_FRAME_LIMIT = 50;\nconst UNKNOWN_FUNCTION = '?';\n// Used to sanitize webpack (error: *) wrapped stack errors\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n  const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n  return (stack, skipFirstLines = 0, framesToPop = 0) => {\n    const frames = [];\n    const lines = stack.split('\\n');\n\n    for (let i = skipFirstLines; i < lines.length; i++) {\n      let line = lines[i] ;\n      // Truncate lines over 1kb because many of the regular expressions use\n      // backtracking which results in run time that increases exponentially\n      // with input size. Huge strings can result in hangs/Denial of Service:\n      // https://github.com/getsentry/sentry-javascript/issues/2286\n      if (line.length > 1024) {\n        line = line.slice(0, 1024);\n      }\n\n      // https://github.com/getsentry/sentry-javascript/issues/5459\n      // Remove webpack (error: *) wrappers\n      const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;\n\n      // https://github.com/getsentry/sentry-javascript/issues/7813\n      // Skip Error: lines\n      if (cleanedLine.match(/\\S*Error: /)) {\n        continue;\n      }\n\n      for (const parser of sortedParsers) {\n        const frame = parser(cleanedLine);\n\n        if (frame) {\n          frames.push(frame);\n          break;\n        }\n      }\n\n      if (frames.length >= STACKTRACE_FRAME_LIMIT + framesToPop) {\n        break;\n      }\n    }\n\n    return stripSentryFramesAndReverse(frames.slice(framesToPop));\n  };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n  if (Array.isArray(stackParser)) {\n    return createStackParser(...stackParser);\n  }\n  return stackParser;\n}\n\n/**\n * Removes Sentry frames from the top and bottom of the stack if present and enforces a limit of max number of frames.\n * Assumes stack input is ordered from top to bottom and returns the reverse representation so call site of the\n * function that caused the crash is the last frame in the array.\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n  if (!stack.length) {\n    return [];\n  }\n\n  const localStack = Array.from(stack);\n\n  // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n  if (/sentryWrapped/.test(getLastStackFrame(localStack).function || '')) {\n    localStack.pop();\n  }\n\n  // Reversing in the middle of the procedure allows us to just pop the values off the stack\n  localStack.reverse();\n\n  // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n  if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n    localStack.pop();\n\n    // When using synthetic events, we will have a 2 levels deep stack, as `new Error('Sentry syntheticException')`\n    // is produced within the scope itself, making it:\n    //\n    //   Sentry.captureException()\n    //   scope.captureException()\n    //\n    // instead of just the top `Sentry` call itself.\n    // This forces us to possibly strip an additional frame in the exact same was as above.\n    if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n      localStack.pop();\n    }\n  }\n\n  return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map(frame => ({\n    ...frame,\n    filename: frame.filename || getLastStackFrame(localStack).filename,\n    function: frame.function || UNKNOWN_FUNCTION,\n  }));\n}\n\nfunction getLastStackFrame(arr) {\n  return arr[arr.length - 1] || {};\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n  try {\n    if (!fn || typeof fn !== 'function') {\n      return defaultFunctionName;\n    }\n    return fn.name || defaultFunctionName;\n  } catch {\n    // Just accessing custom props in some Selenium environments\n    // can cause a \"Permission denied\" exception (see raven-js#495).\n    return defaultFunctionName;\n  }\n}\n\n/**\n * Get's stack frames from an event without needing to check for undefined properties.\n */\nfunction getFramesFromEvent(event) {\n  const exception = event.exception;\n\n  if (exception) {\n    const frames = [];\n    try {\n      // @ts-expect-error Object could be undefined\n      exception.values.forEach(value => {\n        // @ts-expect-error Value could be undefined\n        if (value.stacktrace.frames) {\n          // @ts-expect-error Value could be undefined\n          frames.push(...value.stacktrace.frames);\n        }\n      });\n      return frames;\n    } catch {\n      return undefined;\n    }\n  }\n  return undefined;\n}\n\n/**\n * Get the internal name of an internal Vue value, to represent it in a stacktrace.\n *\n * @param value The value to get the internal name of.\n */\nfunction getVueInternalName(value) {\n  // Check if it's a VNode (has __v_isVNode) or a component instance (has _isVue/__isVue)\n  const isVNode = '__v_isVNode' in value && value.__v_isVNode;\n\n  return isVNode ? '[VueVNode]' : '[VueViewModel]';\n}\n\n/**\n * Normalizes stack line paths by removing file:// prefix and leading slashes for Windows paths\n */\nfunction normalizeStackTracePath(path) {\n  let filename = path?.startsWith('file://') ? path.slice(7) : path;\n  // If it's a Windows path, trim the leading slash so that `/C:/foo` becomes `C:/foo`\n  if (filename?.match(/\\/[A-Z]:/)) {\n    filename = filename.slice(1);\n  }\n  return filename;\n}\n\nexport { UNKNOWN_FUNCTION, createStackParser, getFramesFromEvent, getFunctionName, getVueInternalName, normalizeStackTracePath, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n",
-    "import { isString, isRegExp, isVueViewModel } from './is.js';\nimport { getVueInternalName } from './stacktrace.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n  if (typeof str !== 'string' || max === 0) {\n    return str;\n  }\n  return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n  let newLine = line;\n  const lineLength = newLine.length;\n  if (lineLength <= 150) {\n    return newLine;\n  }\n  if (colno > lineLength) {\n    // eslint-disable-next-line no-param-reassign\n    colno = lineLength;\n  }\n\n  let start = Math.max(colno - 60, 0);\n  if (start < 5) {\n    start = 0;\n  }\n\n  let end = Math.min(start + 140, lineLength);\n  if (end > lineLength - 5) {\n    end = lineLength;\n  }\n  if (end === lineLength) {\n    start = Math.max(end - 140, 0);\n  }\n\n  newLine = newLine.slice(start, end);\n  if (start > 0) {\n    newLine = `'{snip} ${newLine}`;\n  }\n  if (end < lineLength) {\n    newLine += ' {snip}';\n  }\n\n  return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\nfunction safeJoin(input, delimiter) {\n  if (!Array.isArray(input)) {\n    return '';\n  }\n\n  const output = [];\n  // eslint-disable-next-line typescript/prefer-for-of\n  for (let i = 0; i < input.length; i++) {\n    const value = input[i];\n    try {\n      // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n      // console warnings. This happens when a Vue template is rendered with\n      // an undeclared variable, which we try to stringify, ultimately causing\n      // Vue to issue another warning which repeats indefinitely.\n      // see: https://github.com/getsentry/sentry-javascript/pull/8981\n      if (isVueViewModel(value)) {\n        output.push(getVueInternalName(value));\n      } else {\n        output.push(String(value));\n      }\n    } catch {\n      output.push('[value cannot be serialized]');\n    }\n  }\n\n  return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nfunction isMatchingPattern(\n  value,\n  pattern,\n  requireExactStringMatch = false,\n) {\n  if (!isString(value)) {\n    return false;\n  }\n\n  if (isRegExp(pattern)) {\n    return pattern.test(value);\n  }\n  if (isString(pattern)) {\n    return requireExactStringMatch ? value === pattern : value.includes(pattern);\n  }\n\n  return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nfunction stringMatchesSomePattern(\n  testString,\n  patterns = [],\n  requireExactStringMatch = false,\n) {\n  return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n\nexport { isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, truncate };\n//# sourceMappingURL=string.js.map\n",
-    "import { addNonEnumerableProperty } from './object.js';\nimport { withRandomSafeContext, safeMathRandom } from './randomSafeContext.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nfunction getCrypto() {\n  const gbl = GLOBAL_OBJ ;\n  return gbl.crypto || gbl.msCrypto;\n}\n\nlet emptyUuid;\n\nfunction getRandomByte() {\n  return safeMathRandom() * 16;\n}\n\n/**\n * UUID4 generator\n * @param crypto Object that provides the crypto API.\n * @returns string Generated UUID4.\n */\nfunction uuid4(crypto = getCrypto()) {\n  try {\n    if (crypto?.randomUUID) {\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      return withRandomSafeContext(() => crypto.randomUUID()).replace(/-/g, '');\n    }\n  } catch {\n    // some runtimes can crash invoking crypto\n    // https://github.com/getsentry/sentry-javascript/issues/8935\n  }\n\n  if (!emptyUuid) {\n    // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n    // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n    emptyUuid = ([1e7] ) + 1e3 + 4e3 + 8e3 + 1e11;\n  }\n\n  return emptyUuid.replace(/[018]/g, c =>\n    // eslint-disable-next-line no-bitwise\n    ((c ) ^ ((getRandomByte() & 15) >> ((c ) / 4))).toString(16),\n  );\n}\n\nfunction getFirstException(event) {\n  return event.exception?.values?.[0];\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n  const { message, event_id: eventId } = event;\n  if (message) {\n    return message;\n  }\n\n  const firstException = getFirstException(event);\n  if (firstException) {\n    if (firstException.type && firstException.value) {\n      return `${firstException.type}: ${firstException.value}`;\n    }\n    return firstException.type || firstException.value || eventId || '';\n  }\n  return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n  const exception = (event.exception = event.exception || {});\n  const values = (exception.values = exception.values || []);\n  const firstException = (values[0] = values[0] || {});\n  if (!firstException.value) {\n    firstException.value = value || '';\n  }\n  if (!firstException.type) {\n    firstException.type = type || 'Error';\n  }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n  const firstException = getFirstException(event);\n  if (!firstException) {\n    return;\n  }\n\n  const defaultMechanism = { type: 'generic', handled: true };\n  const currentMechanism = firstException.mechanism;\n  firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n  if (newMechanism && 'data' in newMechanism) {\n    const mergedData = { ...currentMechanism?.data, ...newMechanism.data };\n    firstException.mechanism.data = mergedData;\n  }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n  /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\nfunction _parseInt(input) {\n  return parseInt(input || '', 10);\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n  const match = input.match(SEMVER_REGEXP) || [];\n  const major = _parseInt(match[1]);\n  const minor = _parseInt(match[2]);\n  const patch = _parseInt(match[3]);\n  return {\n    buildmetadata: match[5],\n    major: isNaN(major) ? undefined : major,\n    minor: isNaN(minor) ? undefined : minor,\n    patch: isNaN(patch) ? undefined : patch,\n    prerelease: match[4],\n  };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n  // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n  if (frame.lineno === undefined) {\n    return;\n  }\n\n  const maxLines = lines.length;\n  const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n\n  frame.pre_context = lines\n    .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n    .map((line) => snipLine(line, 0));\n\n  // We guard here to ensure this is not larger than the existing number of lines\n  const lineIndex = Math.min(maxLines - 1, sourceLine);\n\n  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n  frame.context_line = snipLine(lines[lineIndex], frame.colno || 0);\n\n  frame.post_context = lines\n    .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n    .map((line) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n  if (isAlreadyCaptured(exception)) {\n    return true;\n  }\n\n  try {\n    // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n    // `ExtraErrorData` integration\n    addNonEnumerableProperty(exception , '__sentry_captured__', true);\n  } catch {\n    // `exception` is a primitive, so we can't mark it seen\n  }\n\n  return false;\n}\n\n/**\n * Checks whether we've already captured the given exception (note: not an identical exception - the very object).\n * It is considered already captured if it has the `__sentry_captured__` property set to `true`.\n *\n * @internal Only considered for internal usage\n */\nfunction isAlreadyCaptured(exception) {\n  try {\n    return (exception ).__sentry_captured__;\n  } catch {} // eslint-disable-line no-empty\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, checkOrSetAlreadyCaught, getEventDescription, isAlreadyCaptured, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n",
-    "import { safeDateNow, withRandomSafeContext } from './randomSafeContext.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst ONE_SECOND_IN_MS = 1000;\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nfunction dateTimestampInSeconds() {\n  return safeDateNow() / ONE_SECOND_IN_MS;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction createUnixTimestampInSecondsFunc() {\n  const { performance } = GLOBAL_OBJ ;\n  // Some browser and environments don't have a performance or timeOrigin, so we fallback to\n  // using Date.now() to compute the starting time.\n  if (!performance?.now || !performance.timeOrigin) {\n    return dateTimestampInSeconds;\n  }\n\n  const timeOrigin = performance.timeOrigin;\n\n  // performance.now() is a monotonic clock, which means it starts at 0 when the process begins. To get the current\n  // wall clock time (actual UNIX timestamp), we need to add the starting time origin and the current time elapsed.\n  //\n  // TODO: This does not account for the case where the monotonic clock that powers performance.now() drifts from the\n  // wall clock time, which causes the returned timestamp to be inaccurate. We should investigate how to detect and\n  // correct for this.\n  // See: https://github.com/getsentry/sentry-javascript/issues/2590\n  // See: https://github.com/mdn/content/issues/4713\n  // See: https://dev.to/noamr/when-a-millisecond-is-not-a-millisecond-3h6\n  return () => {\n    return (timeOrigin + withRandomSafeContext(() => performance.now())) / ONE_SECOND_IN_MS;\n  };\n}\n\nlet _cachedTimestampInSeconds;\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nfunction timestampInSeconds() {\n  // We store this in a closure so that we don't have to create a new function every time this is called.\n  const func = _cachedTimestampInSeconds ?? (_cachedTimestampInSeconds = createUnixTimestampInSecondsFunc());\n  return func();\n}\n\n/**\n * Cached result of getBrowserTimeOrigin.\n */\nlet cachedTimeOrigin = null;\n\n/**\n * Gets the time origin and the mode used to determine it.\n *\n * Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n * performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n * data as reliable if they are within a reasonable threshold of the current time.\n *\n * TODO: move to `@sentry/browser-utils` package.\n */\nfunction getBrowserTimeOrigin() {\n  const { performance } = GLOBAL_OBJ ;\n  if (!performance?.now) {\n    return undefined;\n  }\n\n  const threshold = 300000; // 5 minutes in milliseconds\n  const performanceNow = withRandomSafeContext(() => performance.now());\n  const dateNow = safeDateNow();\n\n  const timeOrigin = performance.timeOrigin;\n  if (typeof timeOrigin === 'number') {\n    const timeOriginDelta = Math.abs(timeOrigin + performanceNow - dateNow);\n    if (timeOriginDelta < threshold) {\n      return timeOrigin;\n    }\n  }\n\n  // TODO: Remove all code related to `performance.timing.navigationStart` once we drop support for Safari 14.\n  // `performance.timeSince` is available in Safari 15.\n  // see: https://caniuse.com/mdn-api_performance_timeorigin\n\n  // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n  // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n  // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n  // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n  // Date API.\n  // eslint-disable-next-line deprecation/deprecation\n  const navigationStart = performance.timing?.navigationStart;\n  if (typeof navigationStart === 'number') {\n    const navigationStartDelta = Math.abs(navigationStart + performanceNow - dateNow);\n    if (navigationStartDelta < threshold) {\n      return navigationStart;\n    }\n  }\n\n  // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to subtracting\n  // `performance.now()` from `Date.now()`.\n  return dateNow - performanceNow;\n}\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nfunction browserPerformanceTimeOrigin() {\n  if (cachedTimeOrigin === null) {\n    cachedTimeOrigin = getBrowserTimeOrigin();\n  }\n\n  return cachedTimeOrigin;\n}\n\nexport { browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds };\n//# sourceMappingURL=time.js.map\n",
-    "import { uuid4 } from './utils/misc.js';\nimport { timestampInSeconds } from './utils/time.js';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n  // Both timestamp and started are in seconds since the UNIX epoch.\n  const startingTime = timestampInSeconds();\n\n  const session = {\n    sid: uuid4(),\n    init: true,\n    timestamp: startingTime,\n    started: startingTime,\n    duration: 0,\n    status: 'ok',\n    errors: 0,\n    ignoreDuration: false,\n    toJSON: () => sessionToJSON(session),\n  };\n\n  if (context) {\n    updateSession(session, context);\n  }\n\n  return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see Client.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nfunction updateSession(session, context = {}) {\n  if (context.user) {\n    if (!session.ipAddress && context.user.ip_address) {\n      session.ipAddress = context.user.ip_address;\n    }\n\n    if (!session.did && !context.did) {\n      session.did = context.user.id || context.user.email || context.user.username;\n    }\n  }\n\n  session.timestamp = context.timestamp || timestampInSeconds();\n\n  if (context.abnormal_mechanism) {\n    session.abnormal_mechanism = context.abnormal_mechanism;\n  }\n\n  if (context.ignoreDuration) {\n    session.ignoreDuration = context.ignoreDuration;\n  }\n  if (context.sid) {\n    // Good enough uuid validation. — Kamil\n    session.sid = context.sid.length === 32 ? context.sid : uuid4();\n  }\n  if (context.init !== undefined) {\n    session.init = context.init;\n  }\n  if (!session.did && context.did) {\n    session.did = `${context.did}`;\n  }\n  if (typeof context.started === 'number') {\n    session.started = context.started;\n  }\n  if (session.ignoreDuration) {\n    session.duration = undefined;\n  } else if (typeof context.duration === 'number') {\n    session.duration = context.duration;\n  } else {\n    const duration = session.timestamp - session.started;\n    session.duration = duration >= 0 ? duration : 0;\n  }\n  if (context.release) {\n    session.release = context.release;\n  }\n  if (context.environment) {\n    session.environment = context.environment;\n  }\n  if (!session.ipAddress && context.ipAddress) {\n    session.ipAddress = context.ipAddress;\n  }\n  if (!session.userAgent && context.userAgent) {\n    session.userAgent = context.userAgent;\n  }\n  if (typeof context.errors === 'number') {\n    session.errors = context.errors;\n  }\n  if (context.status) {\n    session.status = context.status;\n  }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n *               this function will keep the previously set status, unless it was `'ok'` in which case\n *               it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n  let context = {};\n  if (status) {\n    context = { status };\n  } else if (session.status === 'ok') {\n    context = { status: 'exited' };\n  }\n\n  updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n  return {\n    sid: `${session.sid}`,\n    init: session.init,\n    // Make sure that sec is converted to ms for date constructor\n    started: new Date(session.started * 1000).toISOString(),\n    timestamp: new Date(session.timestamp * 1000).toISOString(),\n    status: session.status,\n    errors: session.errors,\n    did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n    duration: session.duration,\n    abnormal_mechanism: session.abnormal_mechanism,\n    attrs: {\n      release: session.release,\n      environment: session.environment,\n      ip_address: session.ipAddress,\n      user_agent: session.userAgent,\n    },\n  };\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n",
-    "/**\n * Shallow merge two objects.\n * Does not mutate the passed in objects.\n * Undefined/empty values in the merge object will overwrite existing values.\n *\n * By default, this merges 2 levels deep.\n */\nfunction merge(initialObj, mergeObj, levels = 2) {\n  // If the merge value is not an object, or we have no merge levels left,\n  // we just set the value to the merge value\n  if (!mergeObj || typeof mergeObj !== 'object' || levels <= 0) {\n    return mergeObj;\n  }\n\n  // If the merge object is an empty object, and the initial object is not undefined, we return the initial object\n  if (initialObj && Object.keys(mergeObj).length === 0) {\n    return initialObj;\n  }\n\n  // Clone object\n  const output = { ...initialObj };\n\n  // Merge values into output, resursively\n  for (const key in mergeObj) {\n    if (Object.prototype.hasOwnProperty.call(mergeObj, key)) {\n      output[key] = merge(output[key], mergeObj[key], levels - 1);\n    }\n  }\n\n  return output;\n}\n\nexport { merge };\n//# sourceMappingURL=merge.js.map\n",
-    "import { uuid4 } from './misc.js';\n\n/**\n * Generate a random, valid trace ID.\n */\nfunction generateTraceId() {\n  return uuid4();\n}\n\n/**\n * Generate a random, valid span ID.\n */\nfunction generateSpanId() {\n  return uuid4().substring(16);\n}\n\nexport { generateSpanId, generateTraceId };\n//# sourceMappingURL=propagationContext.js.map\n",
-    "import { addNonEnumerableProperty } from './object.js';\n\nconst SCOPE_SPAN_FIELD = '_sentrySpan';\n\n/**\n * Set the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _setSpanForScope(scope, span) {\n  if (span) {\n    addNonEnumerableProperty(scope , SCOPE_SPAN_FIELD, span);\n  } else {\n    // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n    delete (scope )[SCOPE_SPAN_FIELD];\n  }\n}\n\n/**\n * Get the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _getSpanForScope(scope) {\n  return scope[SCOPE_SPAN_FIELD];\n}\n\nexport { _getSpanForScope, _setSpanForScope };\n//# sourceMappingURL=spanOnScope.js.map\n",
-    "import { DEBUG_BUILD } from './debug-build.js';\nimport { updateSession } from './session.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isPlainObject } from './utils/is.js';\nimport { merge } from './utils/merge.js';\nimport { uuid4 } from './utils/misc.js';\nimport { generateTraceId } from './utils/propagationContext.js';\nimport { safeMathRandom } from './utils/randomSafeContext.js';\nimport { _setSpanForScope, _getSpanForScope } from './utils/spanOnScope.js';\nimport { truncate } from './utils/string.js';\nimport { dateTimestampInSeconds } from './utils/time.js';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * A context to be used for capturing an event.\n * This can either be a Scope, or a partial ScopeContext,\n * or a callback that receives the current scope and returns a new scope to use.\n */\n\n/**\n * Holds additional event information.\n */\nclass Scope {\n  /** Flag if notifying is happening. */\n\n  /** Callback for client to receive scope changes. */\n\n  /** Callback list that will be called during event processing. */\n\n  /** Array of breadcrumbs. */\n\n  /** User */\n\n  /** Tags */\n\n  /** Attributes */\n\n  /** Extra */\n\n  /** Contexts */\n\n  /** Attachments */\n\n  /** Propagation Context for distributed tracing */\n\n  /**\n   * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n   * sent to Sentry\n   */\n\n  /** Fingerprint */\n\n  /** Severity */\n\n  /**\n   * Transaction Name\n   *\n   * IMPORTANT: The transaction name on the scope has nothing to do with root spans/transaction objects.\n   * It's purpose is to assign a transaction to the scope that's added to non-transaction events.\n   */\n\n  /** Session */\n\n  /** The client on this scope */\n\n  /** Contains the last event id of a captured event.  */\n\n  /** Conversation ID */\n\n  // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n   constructor() {\n    this._notifyingListeners = false;\n    this._scopeListeners = [];\n    this._eventProcessors = [];\n    this._breadcrumbs = [];\n    this._attachments = [];\n    this._user = {};\n    this._tags = {};\n    this._attributes = {};\n    this._extra = {};\n    this._contexts = {};\n    this._sdkProcessingMetadata = {};\n    this._propagationContext = {\n      traceId: generateTraceId(),\n      sampleRand: safeMathRandom(),\n    };\n  }\n\n  /**\n   * Clone all data from this scope into a new scope.\n   */\n   clone() {\n    const newScope = new Scope();\n    newScope._breadcrumbs = [...this._breadcrumbs];\n    newScope._tags = { ...this._tags };\n    newScope._attributes = { ...this._attributes };\n    newScope._extra = { ...this._extra };\n    newScope._contexts = { ...this._contexts };\n    if (this._contexts.flags) {\n      // We need to copy the `values` array so insertions on a cloned scope\n      // won't affect the original array.\n      newScope._contexts.flags = {\n        values: [...this._contexts.flags.values],\n      };\n    }\n\n    newScope._user = this._user;\n    newScope._level = this._level;\n    newScope._session = this._session;\n    newScope._transactionName = this._transactionName;\n    newScope._fingerprint = this._fingerprint;\n    newScope._eventProcessors = [...this._eventProcessors];\n    newScope._attachments = [...this._attachments];\n    newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n    newScope._propagationContext = { ...this._propagationContext };\n    newScope._client = this._client;\n    newScope._lastEventId = this._lastEventId;\n    newScope._conversationId = this._conversationId;\n\n    _setSpanForScope(newScope, _getSpanForScope(this));\n\n    return newScope;\n  }\n\n  /**\n   * Update the client assigned to this scope.\n   * Note that not every scope will have a client assigned - isolation scopes & the global scope will generally not have a client,\n   * as well as manually created scopes.\n   */\n   setClient(client) {\n    this._client = client;\n  }\n\n  /**\n   * Set the ID of the last captured error event.\n   * This is generally only captured on the isolation scope.\n   */\n   setLastEventId(lastEventId) {\n    this._lastEventId = lastEventId;\n  }\n\n  /**\n   * Get the client assigned to this scope.\n   */\n   getClient() {\n    return this._client ;\n  }\n\n  /**\n   * Get the ID of the last captured error event.\n   * This is generally only available on the isolation scope.\n   */\n   lastEventId() {\n    return this._lastEventId;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   addScopeListener(callback) {\n    this._scopeListeners.push(callback);\n  }\n\n  /**\n   * Add an event processor that will be called before an event is sent.\n   */\n   addEventProcessor(callback) {\n    this._eventProcessors.push(callback);\n    return this;\n  }\n\n  /**\n   * Set the user for this scope.\n   * Set to `null` to unset the user.\n   */\n   setUser(user) {\n    // If null is passed we want to unset everything, but still define keys,\n    // so that later down in the pipeline any existing values are cleared.\n    this._user = user || {\n      email: undefined,\n      id: undefined,\n      ip_address: undefined,\n      username: undefined,\n    };\n\n    if (this._session) {\n      updateSession(this._session, { user });\n    }\n\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Get the user from this scope.\n   */\n   getUser() {\n    return this._user;\n  }\n\n  /**\n   * Set the conversation ID for this scope.\n   * Set to `null` to unset the conversation ID.\n   */\n   setConversationId(conversationId) {\n    this._conversationId = conversationId || undefined;\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Set an object that will be merged into existing tags on the scope,\n   * and will be sent as tags data with the event.\n   */\n   setTags(tags) {\n    this._tags = {\n      ...this._tags,\n      ...tags,\n    };\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Set a single tag that will be sent as tags data with the event.\n   */\n   setTag(key, value) {\n    return this.setTags({ [key]: value });\n  }\n\n  /**\n   * Sets attributes onto the scope.\n   *\n   * These attributes are currently applied to logs and metrics.\n   * In the future, they will also be applied to spans.\n   *\n   * Important: For now, only strings, numbers and boolean attributes are supported, despite types allowing for\n   * more complex attribute types. We'll add this support in the future but already specify the wider type to\n   * avoid a breaking change in the future.\n   *\n   * @param newAttributes - The attributes to set on the scope. You can either pass in key-value pairs, or\n   * an object with a `value` and an optional `unit` (if applicable to your attribute).\n   *\n   * @example\n   * ```typescript\n   * scope.setAttributes({\n   *   is_admin: true,\n   *   payment_selection: 'credit_card',\n   *   render_duration: { value: 'render_duration', unit: 'ms' },\n   * });\n   * ```\n   */\n   setAttributes(newAttributes) {\n    this._attributes = {\n      ...this._attributes,\n      ...newAttributes,\n    };\n\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Sets an attribute onto the scope.\n   *\n   * These attributes are currently applied to logs and metrics.\n   * In the future, they will also be applied to spans.\n   *\n   * Important: For now, only strings, numbers and boolean attributes are supported, despite types allowing for\n   * more complex attribute types. We'll add this support in the future but already specify the wider type to\n   * avoid a breaking change in the future.\n   *\n   * @param key - The attribute key.\n   * @param value - the attribute value. You can either pass in a raw value, or an attribute\n   * object with a `value` and an optional `unit` (if applicable to your attribute).\n   *\n   * @example\n   * ```typescript\n   * scope.setAttribute('is_admin', true);\n   * scope.setAttribute('render_duration', { value: 'render_duration', unit: 'ms' });\n   * ```\n   */\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n   setAttribute(\n    key,\n    value,\n  ) {\n    return this.setAttributes({ [key]: value });\n  }\n\n  /**\n   * Removes the attribute with the given key from the scope.\n   *\n   * @param key - The attribute key.\n   *\n   * @example\n   * ```typescript\n   * scope.removeAttribute('is_admin');\n   * ```\n   */\n   removeAttribute(key) {\n    if (key in this._attributes) {\n      // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n      delete this._attributes[key];\n      this._notifyScopeListeners();\n    }\n    return this;\n  }\n\n  /**\n   * Set an object that will be merged into existing extra on the scope,\n   * and will be sent as extra data with the event.\n   */\n   setExtras(extras) {\n    this._extra = {\n      ...this._extra,\n      ...extras,\n    };\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Set a single key:value extra entry that will be sent as extra data with the event.\n   */\n   setExtra(key, extra) {\n    this._extra = { ...this._extra, [key]: extra };\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Sets the fingerprint on the scope to send with the events.\n   * @param {string[]} fingerprint Fingerprint to group events in Sentry.\n   */\n   setFingerprint(fingerprint) {\n    this._fingerprint = fingerprint;\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Sets the level on the scope for future events.\n   */\n   setLevel(level) {\n    this._level = level;\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Sets the transaction name on the scope so that the name of e.g. taken server route or\n   * the page location is attached to future events.\n   *\n   * IMPORTANT: Calling this function does NOT change the name of the currently active\n   * root span. If you want to change the name of the active root span, use\n   * `Sentry.updateSpanName(rootSpan, 'new name')` instead.\n   *\n   * By default, the SDK updates the scope's transaction name automatically on sensible\n   * occasions, such as a page navigation or when handling a new request on the server.\n   */\n   setTransactionName(name) {\n    this._transactionName = name;\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Sets context data with the given name.\n   * Data passed as context will be normalized. You can also pass `null` to unset the context.\n   * Note that context data will not be merged - calling `setContext` will overwrite an existing context with the same key.\n   */\n   setContext(key, context) {\n    if (context === null) {\n      // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n      delete this._contexts[key];\n    } else {\n      this._contexts[key] = context;\n    }\n\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Set the session for the scope.\n   */\n   setSession(session) {\n    if (!session) {\n      delete this._session;\n    } else {\n      this._session = session;\n    }\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Get the session from the scope.\n   */\n   getSession() {\n    return this._session;\n  }\n\n  /**\n   * Updates the scope with provided data. Can work in three variations:\n   * - plain object containing updatable attributes\n   * - Scope instance that'll extract the attributes from\n   * - callback function that'll receive the current scope as an argument and allow for modifications\n   */\n   update(captureContext) {\n    if (!captureContext) {\n      return this;\n    }\n\n    const scopeToMerge = typeof captureContext === 'function' ? captureContext(this) : captureContext;\n\n    const scopeInstance =\n      scopeToMerge instanceof Scope\n        ? scopeToMerge.getScopeData()\n        : isPlainObject(scopeToMerge)\n          ? (captureContext )\n          : undefined;\n\n    const {\n      tags,\n      attributes,\n      extra,\n      user,\n      contexts,\n      level,\n      fingerprint = [],\n      propagationContext,\n      conversationId,\n    } = scopeInstance || {};\n\n    this._tags = { ...this._tags, ...tags };\n    this._attributes = { ...this._attributes, ...attributes };\n    this._extra = { ...this._extra, ...extra };\n    this._contexts = { ...this._contexts, ...contexts };\n\n    if (user && Object.keys(user).length) {\n      this._user = user;\n    }\n\n    if (level) {\n      this._level = level;\n    }\n\n    if (fingerprint.length) {\n      this._fingerprint = fingerprint;\n    }\n\n    if (propagationContext) {\n      this._propagationContext = propagationContext;\n    }\n\n    if (conversationId) {\n      this._conversationId = conversationId;\n    }\n\n    return this;\n  }\n\n  /**\n   * Clears the current scope and resets its properties.\n   * Note: The client will not be cleared.\n   */\n   clear() {\n    // client is not cleared here on purpose!\n    this._breadcrumbs = [];\n    this._tags = {};\n    this._attributes = {};\n    this._extra = {};\n    this._user = {};\n    this._contexts = {};\n    this._level = undefined;\n    this._transactionName = undefined;\n    this._fingerprint = undefined;\n    this._session = undefined;\n    this._conversationId = undefined;\n    _setSpanForScope(this, undefined);\n    this._attachments = [];\n    this.setPropagationContext({\n      traceId: generateTraceId(),\n      sampleRand: safeMathRandom(),\n    });\n\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Adds a breadcrumb to the scope.\n   * By default, the last 100 breadcrumbs are kept.\n   */\n   addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n    const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n    // No data has been changed, so don't notify scope listeners\n    if (maxCrumbs <= 0) {\n      return this;\n    }\n\n    const mergedBreadcrumb = {\n      timestamp: dateTimestampInSeconds(),\n      ...breadcrumb,\n      // Breadcrumb messages can theoretically be infinitely large and they're held in memory so we truncate them not to leak (too much) memory\n      message: breadcrumb.message ? truncate(breadcrumb.message, 2048) : breadcrumb.message,\n    };\n\n    this._breadcrumbs.push(mergedBreadcrumb);\n    if (this._breadcrumbs.length > maxCrumbs) {\n      this._breadcrumbs = this._breadcrumbs.slice(-maxCrumbs);\n      this._client?.recordDroppedEvent('buffer_overflow', 'log_item');\n    }\n\n    this._notifyScopeListeners();\n\n    return this;\n  }\n\n  /**\n   * Get the last breadcrumb of the scope.\n   */\n   getLastBreadcrumb() {\n    return this._breadcrumbs[this._breadcrumbs.length - 1];\n  }\n\n  /**\n   * Clear all breadcrumbs from the scope.\n   */\n   clearBreadcrumbs() {\n    this._breadcrumbs = [];\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Add an attachment to the scope.\n   */\n   addAttachment(attachment) {\n    this._attachments.push(attachment);\n    return this;\n  }\n\n  /**\n   * Clear all attachments from the scope.\n   */\n   clearAttachments() {\n    this._attachments = [];\n    return this;\n  }\n\n  /**\n   * Get the data of this scope, which should be applied to an event during processing.\n   */\n   getScopeData() {\n    return {\n      breadcrumbs: this._breadcrumbs,\n      attachments: this._attachments,\n      contexts: this._contexts,\n      tags: this._tags,\n      attributes: this._attributes,\n      extra: this._extra,\n      user: this._user,\n      level: this._level,\n      fingerprint: this._fingerprint || [],\n      eventProcessors: this._eventProcessors,\n      propagationContext: this._propagationContext,\n      sdkProcessingMetadata: this._sdkProcessingMetadata,\n      transactionName: this._transactionName,\n      span: _getSpanForScope(this),\n      conversationId: this._conversationId,\n    };\n  }\n\n  /**\n   * Add data which will be accessible during event processing but won't get sent to Sentry.\n   */\n   setSDKProcessingMetadata(newData) {\n    this._sdkProcessingMetadata = merge(this._sdkProcessingMetadata, newData, 2);\n    return this;\n  }\n\n  /**\n   * Add propagation context to the scope, used for distributed tracing\n   */\n   setPropagationContext(context) {\n    this._propagationContext = context;\n    return this;\n  }\n\n  /**\n   * Get propagation context from the scope, used for distributed tracing\n   */\n   getPropagationContext() {\n    return this._propagationContext;\n  }\n\n  /**\n   * Capture an exception for this scope.\n   *\n   * @returns {string} The id of the captured Sentry event.\n   */\n   captureException(exception, hint) {\n    const eventId = hint?.event_id || uuid4();\n\n    if (!this._client) {\n      DEBUG_BUILD && debug.warn('No client configured on scope - will not capture exception!');\n      return eventId;\n    }\n\n    const syntheticException = new Error('Sentry syntheticException');\n\n    this._client.captureException(\n      exception,\n      {\n        originalException: exception,\n        syntheticException,\n        ...hint,\n        event_id: eventId,\n      },\n      this,\n    );\n\n    return eventId;\n  }\n\n  /**\n   * Capture a message for this scope.\n   *\n   * @returns {string} The id of the captured message.\n   */\n   captureMessage(message, level, hint) {\n    const eventId = hint?.event_id || uuid4();\n\n    if (!this._client) {\n      DEBUG_BUILD && debug.warn('No client configured on scope - will not capture message!');\n      return eventId;\n    }\n\n    const syntheticException = hint?.syntheticException ?? new Error(message);\n\n    this._client.captureMessage(\n      message,\n      level,\n      {\n        originalException: message,\n        syntheticException,\n        ...hint,\n        event_id: eventId,\n      },\n      this,\n    );\n\n    return eventId;\n  }\n\n  /**\n   * Capture a Sentry event for this scope.\n   *\n   * @returns {string} The id of the captured event.\n   */\n   captureEvent(event, hint) {\n    const eventId = event.event_id || hint?.event_id || uuid4();\n\n    if (!this._client) {\n      DEBUG_BUILD && debug.warn('No client configured on scope - will not capture event!');\n      return eventId;\n    }\n\n    this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n\n    return eventId;\n  }\n\n  /**\n   * This will be called on every set call.\n   */\n   _notifyScopeListeners() {\n    // We need this check for this._notifyingListeners to be able to work on scope during updates\n    // If this check is not here we'll produce endless recursion when something is done with the scope\n    // during the callback.\n    if (!this._notifyingListeners) {\n      this._notifyingListeners = true;\n      this._scopeListeners.forEach(callback => {\n        callback(this);\n      });\n      this._notifyingListeners = false;\n    }\n  }\n}\n\nexport { Scope };\n//# sourceMappingURL=scope.js.map\n",
-    "import { getGlobalSingleton } from './carrier.js';\nimport { Scope } from './scope.js';\n\n/** Get the default current scope. */\nfunction getDefaultCurrentScope() {\n  return getGlobalSingleton('defaultCurrentScope', () => new Scope());\n}\n\n/** Get the default isolation scope. */\nfunction getDefaultIsolationScope() {\n  return getGlobalSingleton('defaultIsolationScope', () => new Scope());\n}\n\nexport { getDefaultCurrentScope, getDefaultIsolationScope };\n//# sourceMappingURL=defaultScopes.js.map\n",
-    "const isActualPromise = (p) =>\n  p instanceof Promise && !(p )[kChainedCopy];\n\nconst kChainedCopy = Symbol('chained PromiseLike');\n\n/**\n * Copy the properties from a decorated promiselike object onto its chained\n * actual promise.\n */\nconst chainAndCopyPromiseLike = (\n  original,\n  onSuccess,\n  onError,\n) => {\n  const chained = original.then(\n    value => {\n      onSuccess(value);\n      return value;\n    },\n    err => {\n      onError(err);\n      throw err;\n    },\n  ) ;\n\n  // if we're just dealing with \"normal\" Promise objects, return the chain\n  return isActualPromise(chained) && isActualPromise(original) ? chained : copyProps(original, chained);\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst copyProps = (original, chained) => {\n  let mutated = false;\n  //oxlint-disable-next-line guard-for-in\n  for (const key in original) {\n    if (key in chained) continue;\n    mutated = true;\n    const value = original[key];\n    if (typeof value === 'function') {\n      Object.defineProperty(chained, key, {\n        value: (...args) => value.apply(original, args),\n        enumerable: true,\n        configurable: true,\n        writable: true,\n      });\n    } else {\n      (chained )[key] = value;\n    }\n  }\n\n  if (mutated) Object.assign(chained, { [kChainedCopy]: true });\n  return chained;\n};\n\nexport { chainAndCopyPromiseLike };\n//# sourceMappingURL=chain-and-copy-promiselike.js.map\n",
-    "import { getDefaultCurrentScope, getDefaultIsolationScope } from '../defaultScopes.js';\nimport { Scope } from '../scope.js';\nimport { chainAndCopyPromiseLike } from '../utils/chain-and-copy-promiselike.js';\nimport { isThenable } from '../utils/is.js';\nimport { getMainCarrier, getSentryCarrier } from '../carrier.js';\n\n/**\n * This is an object that holds a stack of scopes.\n */\nclass AsyncContextStack {\n\n   constructor(scope, isolationScope) {\n    let assignedScope;\n    if (!scope) {\n      assignedScope = new Scope();\n    } else {\n      assignedScope = scope;\n    }\n\n    let assignedIsolationScope;\n    if (!isolationScope) {\n      assignedIsolationScope = new Scope();\n    } else {\n      assignedIsolationScope = isolationScope;\n    }\n\n    // scope stack for domains or the process\n    this._stack = [{ scope: assignedScope }];\n    this._isolationScope = assignedIsolationScope;\n  }\n\n  /**\n   * Fork a scope for the stack.\n   */\n   withScope(callback) {\n    const scope = this._pushScope();\n\n    let maybePromiseResult;\n    try {\n      maybePromiseResult = callback(scope);\n    } catch (e) {\n      this._popScope();\n      throw e;\n    }\n\n    if (isThenable(maybePromiseResult)) {\n      return chainAndCopyPromiseLike(\n        maybePromiseResult ,\n        () => this._popScope(),\n        () => this._popScope(),\n      ) ;\n    }\n\n    this._popScope();\n    return maybePromiseResult;\n  }\n\n  /**\n   * Get the client of the stack.\n   */\n   getClient() {\n    return this.getStackTop().client ;\n  }\n\n  /**\n   * Returns the scope of the top stack.\n   */\n   getScope() {\n    return this.getStackTop().scope;\n  }\n\n  /**\n   * Get the isolation scope for the stack.\n   */\n   getIsolationScope() {\n    return this._isolationScope;\n  }\n\n  /**\n   * Returns the topmost scope layer in the order domain > local > process.\n   */\n   getStackTop() {\n    return this._stack[this._stack.length - 1] ;\n  }\n\n  /**\n   * Push a scope to the stack.\n   */\n   _pushScope() {\n    // We want to clone the content of prev scope\n    const scope = this.getScope().clone();\n    this._stack.push({\n      client: this.getClient(),\n      scope,\n    });\n    return scope;\n  }\n\n  /**\n   * Pop a scope from the stack.\n   */\n   _popScope() {\n    if (this._stack.length <= 1) return false;\n    return !!this._stack.pop();\n  }\n}\n\n/**\n * Get the global async context stack.\n * This will be removed during the v8 cycle and is only here to make migration easier.\n */\nfunction getAsyncContextStack() {\n  const registry = getMainCarrier();\n  const sentry = getSentryCarrier(registry);\n\n  return (sentry.stack = sentry.stack || new AsyncContextStack(getDefaultCurrentScope(), getDefaultIsolationScope()));\n}\n\nfunction withScope(callback) {\n  return getAsyncContextStack().withScope(callback);\n}\n\nfunction withSetScope(scope, callback) {\n  const stack = getAsyncContextStack();\n  return stack.withScope(() => {\n    stack.getStackTop().scope = scope;\n    return callback(scope);\n  });\n}\n\nfunction withIsolationScope(callback) {\n  return getAsyncContextStack().withScope(() => {\n    return callback(getAsyncContextStack().getIsolationScope());\n  });\n}\n\n/**\n * Get the stack-based async context strategy.\n */\nfunction getStackAsyncContextStrategy() {\n  return {\n    withIsolationScope,\n    withScope,\n    withSetScope,\n    withSetIsolationScope: (_isolationScope, callback) => {\n      return withIsolationScope(callback);\n    },\n    getCurrentScope: () => getAsyncContextStack().getScope(),\n    getIsolationScope: () => getAsyncContextStack().getIsolationScope(),\n  };\n}\n\nexport { AsyncContextStack, getStackAsyncContextStrategy };\n//# sourceMappingURL=stackStrategy.js.map\n",
-    "import { getMainCarrier, getSentryCarrier } from '../carrier.js';\nimport { getStackAsyncContextStrategy } from './stackStrategy.js';\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nfunction setAsyncContextStrategy(strategy) {\n  // Get main carrier (global for every environment)\n  const registry = getMainCarrier();\n  const sentry = getSentryCarrier(registry);\n  sentry.acs = strategy;\n}\n\n/**\n * Get the current async context strategy.\n * If none has been setup, the default will be used.\n */\nfunction getAsyncContextStrategy(carrier) {\n  const sentry = getSentryCarrier(carrier);\n\n  if (sentry.acs) {\n    return sentry.acs;\n  }\n\n  // Otherwise, use the default one (stack)\n  return getStackAsyncContextStrategy();\n}\n\nexport { getAsyncContextStrategy, setAsyncContextStrategy };\n//# sourceMappingURL=index.js.map\n",
-    "import { getAsyncContextStrategy } from './asyncContext/index.js';\nimport { getMainCarrier, getGlobalSingleton } from './carrier.js';\nimport { Scope } from './scope.js';\nimport { generateSpanId } from './utils/propagationContext.js';\n\n/**\n * Get the currently active scope.\n */\nfunction getCurrentScope() {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  return acs.getCurrentScope();\n}\n\n/**\n * Get the currently active isolation scope.\n * The isolation scope is active for the current execution context.\n */\nfunction getIsolationScope() {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  return acs.getIsolationScope();\n}\n\n/**\n * Get the global scope.\n * This scope is applied to _all_ events.\n */\nfunction getGlobalScope() {\n  return getGlobalSingleton('globalScope', () => new Scope());\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n */\n\n/**\n * Either creates a new active scope, or sets the given scope as active scope in the given callback.\n */\nfunction withScope(\n  ...rest\n) {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n\n  // If a scope is defined, we want to make this the active scope instead of the default one\n  if (rest.length === 2) {\n    const [scope, callback] = rest;\n\n    if (!scope) {\n      return acs.withScope(callback);\n    }\n\n    return acs.withSetScope(scope, callback);\n  }\n\n  return acs.withScope(rest[0]);\n}\n\n/**\n * Attempts to fork the current isolation scope and the current scope based on the current async context strategy. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n */\n\n/**\n * Either creates a new active isolation scope, or sets the given isolation scope as active scope in the given callback.\n */\nfunction withIsolationScope(\n  ...rest\n\n) {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n\n  // If a scope is defined, we want to make this the active scope instead of the default one\n  if (rest.length === 2) {\n    const [isolationScope, callback] = rest;\n\n    if (!isolationScope) {\n      return acs.withIsolationScope(callback);\n    }\n\n    return acs.withSetIsolationScope(isolationScope, callback);\n  }\n\n  return acs.withIsolationScope(rest[0]);\n}\n\n/**\n * Get the currently active client.\n */\nfunction getClient() {\n  return getCurrentScope().getClient();\n}\n\n/**\n * Get a trace context for the given scope.\n */\nfunction getTraceContextFromScope(scope) {\n  const propagationContext = scope.getPropagationContext();\n\n  const { traceId, parentSpanId, propagationSpanId } = propagationContext;\n\n  const traceContext = {\n    trace_id: traceId,\n    span_id: propagationSpanId || generateSpanId(),\n  };\n\n  if (parentSpanId) {\n    traceContext.parent_span_id = parentSpanId;\n  }\n\n  return traceContext;\n}\n\nexport { getClient, getCurrentScope, getGlobalScope, getIsolationScope, getTraceContextFromScope, withIsolationScope, withScope };\n//# sourceMappingURL=currentScopes.js.map\n",
-    "/**\n * Use this attribute to represent the source of a span.\n * Should be one of: custom, url, route, view, component, task, unknown\n *\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = 'sentry.source';\n\n/**\n * Attributes that holds the sample rate that was locally applied to a span.\n * If this attribute is not defined, it means that the span inherited a sampling decision.\n *\n * NOTE: Is only defined on root spans.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = 'sentry.sample_rate';\n\n/**\n * Attribute holding the sample rate of the previous trace.\n * This is used to sample consistently across subsequent traces in the browser SDK.\n *\n * Note: Only defined on root spans, if opted into consistent sampling\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE = 'sentry.previous_trace_sample_rate';\n\n/**\n * Use this attribute to represent the operation of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_OP = 'sentry.op';\n\n/**\n * Use this attribute to represent the origin of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = 'sentry.origin';\n\n/** The reason why an idle span finished. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON = 'sentry.idle_span_finish_reason';\n\n/** The unit of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT = 'sentry.measurement_unit';\n\n/** The value of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE = 'sentry.measurement_value';\n\n/**\n * A custom span name set by users guaranteed to be taken over any automatically\n * inferred name. This attribute is removed before the span is sent.\n *\n * @internal only meant for internal SDK usage\n * @hidden\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME = 'sentry.custom_span_name';\n\n/**\n * The id of the profile that this span occurred in.\n */\nconst SEMANTIC_ATTRIBUTE_PROFILE_ID = 'sentry.profile_id';\n\nconst SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME = 'sentry.exclusive_time';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_HIT = 'cache.hit';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_KEY = 'cache.key';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE = 'cache.item_size';\n\n/** TODO: Remove these once we update to latest semantic conventions */\nconst SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD = 'http.request.method';\nconst SEMANTIC_ATTRIBUTE_URL_FULL = 'url.full';\n\n/**\n * A span link attribute to mark the link as a special span link.\n *\n * Known values:\n * - `previous_trace`: The span links to the frontend root span of the previous trace.\n * - `next_trace`: The span links to the frontend root span of the next trace. (Not set by the SDK)\n *\n * Other values may be set as appropriate.\n * @see https://develop.sentry.dev/sdk/telemetry/traces/span-links/#link-types\n */\nconst SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE = 'sentry.link.type';\n\n/**\n * =============================================================================\n * GEN AI ATTRIBUTES\n * Based on OpenTelemetry Semantic Conventions for Generative AI\n * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/\n * =============================================================================\n */\n\n/**\n * The conversation ID for linking messages across API calls.\n * For OpenAI Assistants API: thread_id\n * For LangGraph: configurable.thread_id\n */\nconst GEN_AI_CONVERSATION_ID_ATTRIBUTE = 'gen_ai.conversation.id';\n\nexport { GEN_AI_CONVERSATION_ID_ATTRIBUTE, SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_URL_FULL, SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE };\n//# sourceMappingURL=semanticAttributes.js.map\n",
-    "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isString } from './is.js';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nconst MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/**\n * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the \"sentry-\" prefixed values\n * from it.\n *\n * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.\n * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.\n */\nfunction baggageHeaderToDynamicSamplingContext(\n  // Very liberal definition of what any incoming header might look like\n  baggageHeader,\n) {\n  const baggageObject = parseBaggageHeader(baggageHeader);\n\n  if (!baggageObject) {\n    return undefined;\n  }\n\n  // Read all \"sentry-\" prefixed values out of the baggage object and put it onto a dynamic sampling context object.\n  const dynamicSamplingContext = Object.entries(baggageObject).reduce((acc, [key, value]) => {\n    if (key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n      const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n      acc[nonPrefixedKey] = value;\n    }\n    return acc;\n  }, {});\n\n  // Only return a dynamic sampling context object if there are keys in it.\n  // A keyless object means there were no sentry values on the header, which means that there is no DSC.\n  if (Object.keys(dynamicSamplingContext).length > 0) {\n    return dynamicSamplingContext ;\n  } else {\n    return undefined;\n  }\n}\n\n/**\n * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with \"sentry-\".\n *\n * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility\n * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is\n * `undefined` the function will return `undefined`.\n * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`\n * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.\n */\nfunction dynamicSamplingContextToSentryBaggageHeader(\n  // this also takes undefined for convenience and bundle size in other places\n  dynamicSamplingContext,\n) {\n  if (!dynamicSamplingContext) {\n    return undefined;\n  }\n\n  // Prefix all DSC keys with \"sentry-\" and put them into a new object\n  const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce(\n    (acc, [dscKey, dscValue]) => {\n      if (dscValue) {\n        acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n      }\n      return acc;\n    },\n    {},\n  );\n\n  return objectToBaggageHeader(sentryPrefixedDSC);\n}\n\n/**\n * Take a baggage header and parse it into an object.\n */\nfunction parseBaggageHeader(\n  baggageHeader,\n) {\n  if (!baggageHeader || (!isString(baggageHeader) && !Array.isArray(baggageHeader))) {\n    return undefined;\n  }\n\n  if (Array.isArray(baggageHeader)) {\n    // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it\n    return baggageHeader.reduce((acc, curr) => {\n      const currBaggageObject = baggageHeaderToObject(curr);\n      Object.entries(currBaggageObject).forEach(([key, value]) => {\n        acc[key] = value;\n      });\n      return acc;\n    }, {});\n  }\n\n  return baggageHeaderToObject(baggageHeader);\n}\n\n/**\n * Will parse a baggage header, which is a simple key-value map, into a flat object.\n *\n * @param baggageHeader The baggage header to parse.\n * @returns a flat object containing all the key-value pairs from `baggageHeader`.\n */\nfunction baggageHeaderToObject(baggageHeader) {\n  return baggageHeader\n    .split(',')\n    .map(baggageEntry => {\n      const eqIdx = baggageEntry.indexOf('=');\n      if (eqIdx === -1) {\n        // Likely an invalid entry\n        return [];\n      }\n      const key = baggageEntry.slice(0, eqIdx);\n      const value = baggageEntry.slice(eqIdx + 1);\n      return [key, value].map(keyOrValue => {\n        try {\n          return decodeURIComponent(keyOrValue.trim());\n        } catch {\n          // We ignore errors here, e.g. if the value cannot be URL decoded.\n          // This will then be skipped in the next step\n          return;\n        }\n      });\n    })\n    .reduce((acc, [key, value]) => {\n      if (key && value) {\n        acc[key] = value;\n      }\n      return acc;\n    }, {});\n}\n\n/**\n * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.\n *\n * @param object The object to turn into a baggage header.\n * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header\n * is not spec compliant.\n */\nfunction objectToBaggageHeader(object) {\n  if (Object.keys(object).length === 0) {\n    // An empty baggage header is not spec compliant: We return undefined.\n    return undefined;\n  }\n\n  return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n    const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n    const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n    if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n      DEBUG_BUILD &&\n        debug.warn(\n          `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,\n        );\n      return baggageHeader;\n    } else {\n      return newBaggageHeader;\n    }\n  }, '');\n}\n\nexport { MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, objectToBaggageHeader, parseBaggageHeader };\n//# sourceMappingURL=baggage.js.map\n",
-    "import { chainAndCopyPromiseLike } from './chain-and-copy-promiselike.js';\nimport { isThenable } from './is.js';\n\n/* eslint-disable */\n// Vendor \"Awaited\" in to be TS 3.8 compatible\n\n/**\n * Wrap a callback function with error handling.\n * If an error is thrown, it will be passed to the `onError` callback and re-thrown.\n *\n * If the return value of the function is a promise, it will be handled with `maybeHandlePromiseRejection`.\n *\n * If an `onFinally` callback is provided, this will be called when the callback has finished\n * - so if it returns a promise, once the promise resolved/rejected,\n * else once the callback has finished executing.\n * The `onFinally` callback will _always_ be called, no matter if an error was thrown or not.\n */\nfunction handleCallbackErrors\n\n(\n  fn,\n  onError,\n  onFinally = () => {},\n  onSuccess = () => {},\n) {\n  let maybePromiseResult;\n  try {\n    maybePromiseResult = fn();\n  } catch (e) {\n    onError(e);\n    onFinally();\n    throw e;\n  }\n\n  return maybeHandlePromiseRejection(maybePromiseResult, onError, onFinally, onSuccess);\n}\n\n/**\n * Maybe handle a promise rejection.\n * This expects to be given a value that _may_ be a promise, or any other value.\n * If it is a promise, and it rejects, it will call the `onError` callback.\n *\n * For thenable objects with extra methods (like jQuery's jqXHR),\n * this function preserves those methods by wrapping the original thenable in a Proxy\n * that intercepts .then() calls to apply error handling while forwarding all other\n * properties to the original object.\n * This allows code like `startSpan(() => $.ajax(...)).abort()` to work correctly.\n */\nfunction maybeHandlePromiseRejection(\n  value,\n  onError,\n  onFinally,\n  onSuccess,\n) {\n  if (isThenable(value)) {\n    return chainAndCopyPromiseLike(\n      value ,\n      result => {\n        onFinally();\n        onSuccess(result );\n      },\n      err => {\n        onError(err);\n        onFinally();\n      },\n    ) ;\n  }\n  // Non-thenable value - call callbacks immediately and return as-is\n  onFinally();\n  onSuccess(value);\n  return value;\n}\n\nexport { handleCallbackErrors };\n//# sourceMappingURL=handleCallbackErrors.js.map\n",
-    "import { getClient } from '../currentScopes.js';\n\n// Treeshakable guard to remove all code related to tracing\n\n/**\n * Determines if span recording is currently enabled.\n *\n * Spans are recorded when at least one of `tracesSampleRate` and `tracesSampler`\n * is defined in the SDK config. This function does not make any assumption about\n * sampling decisions, it only checks if the SDK is configured to record spans.\n *\n * Important: This function only determines if span recording is enabled. Trace\n * continuation and propagation is separately controlled and not covered by this function.\n * If this function returns `false`, traces can still be propagated (which is what\n * we refer to by \"Tracing without Performance\")\n * @see https://develop.sentry.dev/sdk/telemetry/traces/tracing-without-performance/\n *\n * @param maybeOptions An SDK options object to be passed to this function.\n * If this option is not provided, the function will use the current client's options.\n */\nfunction hasSpansEnabled(\n  maybeOptions,\n) {\n  if (typeof __SENTRY_TRACING__ === 'boolean' && !__SENTRY_TRACING__) {\n    return false;\n  }\n\n  const options = maybeOptions || getClient()?.getOptions();\n  return (\n    !!options &&\n    // Note: This check is `!= null`, meaning \"nullish\". `0` is not \"nullish\", `undefined` and `null` are. (This comment was brought to you by 15 minutes of questioning life)\n    (options.tracesSampleRate != null || !!options.tracesSampler)\n  );\n}\n\nexport { hasSpansEnabled };\n//# sourceMappingURL=hasSpansEnabled.js.map\n",
-    "/**\n * Parse a sample rate from a given value.\n * This will either return a boolean or number sample rate, if the sample rate is valid (between 0 and 1).\n * If a string is passed, we try to convert it to a number.\n *\n * Any invalid sample rate will return `undefined`.\n */\nfunction parseSampleRate(sampleRate) {\n  if (typeof sampleRate === 'boolean') {\n    return Number(sampleRate);\n  }\n\n  const rate = typeof sampleRate === 'string' ? parseFloat(sampleRate) : sampleRate;\n  if (typeof rate !== 'number' || isNaN(rate) || rate < 0 || rate > 1) {\n    return undefined;\n  }\n\n  return rate;\n}\n\nexport { parseSampleRate };\n//# sourceMappingURL=parseSampleRate.js.map\n",
-    "import { DEBUG_BUILD } from '../debug-build.js';\nimport { consoleSandbox, debug } from './debug-logger.js';\n\n/** Regular expression used to extract org ID from a DSN host. */\nconst ORG_ID_REGEX = /^o(\\d+)\\./;\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)((?:\\[[:.%\\w]+\\]|[\\w.-]+))(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n  return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nfunction dsnToString(dsn, withPassword = false) {\n  const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n  return (\n    `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n    `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n  );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents or undefined if @param str is not a valid DSN string\n */\nfunction dsnFromString(str) {\n  const match = DSN_REGEX.exec(str);\n\n  if (!match) {\n    // This should be logged to the console\n    consoleSandbox(() => {\n      // eslint-disable-next-line no-console\n      console.error(`Invalid Sentry Dsn: ${str}`);\n    });\n    return undefined;\n  }\n\n  const [protocol, publicKey, pass = '', host = '', port = '', lastPath = ''] = match.slice(1);\n  let path = '';\n  let projectId = lastPath;\n\n  const split = projectId.split('/');\n  if (split.length > 1) {\n    path = split.slice(0, -1).join('/');\n    projectId = split.pop() ;\n  }\n\n  if (projectId) {\n    const projectMatch = projectId.match(/^\\d+/);\n    if (projectMatch) {\n      projectId = projectMatch[0];\n    }\n  }\n\n  return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol , publicKey });\n}\n\nfunction dsnFromComponents(components) {\n  return {\n    protocol: components.protocol,\n    publicKey: components.publicKey || '',\n    pass: components.pass || '',\n    host: components.host,\n    port: components.port || '',\n    path: components.path || '',\n    projectId: components.projectId,\n  };\n}\n\nfunction validateDsn(dsn) {\n  if (!DEBUG_BUILD) {\n    return true;\n  }\n\n  const { port, projectId, protocol } = dsn;\n\n  const requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n  const hasMissingRequiredComponent = requiredComponents.find(component => {\n    if (!dsn[component]) {\n      debug.error(`Invalid Sentry Dsn: ${component} missing`);\n      return true;\n    }\n    return false;\n  });\n\n  if (hasMissingRequiredComponent) {\n    return false;\n  }\n\n  if (!projectId.match(/^\\d+$/)) {\n    debug.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n    return false;\n  }\n\n  if (!isValidProtocol(protocol)) {\n    debug.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n    return false;\n  }\n\n  if (port && isNaN(parseInt(port, 10))) {\n    debug.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n    return false;\n  }\n\n  return true;\n}\n\n/**\n * Extract the org ID from a DSN host.\n *\n * @param host The host from a DSN\n * @returns The org ID if found, undefined otherwise\n */\nfunction extractOrgIdFromDsnHost(host) {\n  const match = host.match(ORG_ID_REGEX);\n\n  return match?.[1];\n}\n\n/**\n *  Returns the organization ID of the client.\n *\n *  The organization ID is extracted from the DSN. If the client options include a `orgId`, this will always take precedence.\n */\nfunction extractOrgIdFromClient(client) {\n  const options = client.getOptions();\n\n  const { host } = client.getDsn() || {};\n\n  let org_id;\n\n  if (options.orgId) {\n    org_id = String(options.orgId);\n  } else if (host) {\n    org_id = extractOrgIdFromDsnHost(host);\n  }\n\n  return org_id;\n}\n\n/**\n * Creates a valid Sentry Dsn object, identifying a Sentry instance and project.\n * @returns a valid DsnComponents object or `undefined` if @param from is an invalid DSN source\n */\nfunction makeDsn(from) {\n  const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n  if (!components || !validateDsn(components)) {\n    return undefined;\n  }\n  return components;\n}\n\nexport { dsnFromString, dsnToString, extractOrgIdFromClient, extractOrgIdFromDsnHost, makeDsn };\n//# sourceMappingURL=dsn.js.map\n",
-    "import { debug } from './debug-logger.js';\nimport { baggageHeaderToDynamicSamplingContext } from './baggage.js';\nimport { extractOrgIdFromClient } from './dsn.js';\nimport { parseSampleRate } from './parseSampleRate.js';\nimport { generateTraceId, generateSpanId } from './propagationContext.js';\nimport { safeMathRandom } from './randomSafeContext.js';\n\n// oxlint-disable-next-line sdk/no-regexp-constructor -- RegExp is used for readability here\nconst TRACEPARENT_REGEXP = new RegExp(\n  '^[ \\\\t]*' + // whitespace\n    '([0-9a-f]{32})?' + // trace_id\n    '-?([0-9a-f]{16})?' + // span_id\n    '-?([01])?' + // sampled\n    '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * This is terrible naming but the function has nothing to do with the W3C traceparent header.\n * It can only parse the `sentry-trace` header and extract the \"trace parent\" data.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nfunction extractTraceparentData(traceparent) {\n  if (!traceparent) {\n    return undefined;\n  }\n\n  const matches = traceparent.match(TRACEPARENT_REGEXP);\n  if (!matches) {\n    return undefined;\n  }\n\n  let parentSampled;\n  if (matches[3] === '1') {\n    parentSampled = true;\n  } else if (matches[3] === '0') {\n    parentSampled = false;\n  }\n\n  return {\n    traceId: matches[1],\n    parentSampled,\n    parentSpanId: matches[2],\n  };\n}\n\n/**\n * Create a propagation context from incoming headers or\n * creates a minimal new one if the headers are undefined.\n */\nfunction propagationContextFromHeaders(\n  sentryTrace,\n  baggage,\n) {\n  const traceparentData = extractTraceparentData(sentryTrace);\n  const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n  if (!traceparentData?.traceId) {\n    return {\n      traceId: generateTraceId(),\n      sampleRand: safeMathRandom(),\n    };\n  }\n\n  const sampleRand = getSampleRandFromTraceparentAndDsc(traceparentData, dynamicSamplingContext);\n\n  // The sample_rand on the DSC needs to be generated based on traceparent + baggage.\n  if (dynamicSamplingContext) {\n    dynamicSamplingContext.sample_rand = sampleRand.toString();\n  }\n\n  const { traceId, parentSpanId, parentSampled } = traceparentData;\n\n  return {\n    traceId,\n    parentSpanId,\n    sampled: parentSampled,\n    dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n    sampleRand,\n  };\n}\n\n/**\n * Create sentry-trace header from span context values.\n */\nfunction generateSentryTraceHeader(\n  traceId = generateTraceId(),\n  spanId = generateSpanId(),\n  sampled,\n) {\n  let sampledString = '';\n  if (sampled !== undefined) {\n    sampledString = sampled ? '-1' : '-0';\n  }\n  return `${traceId}-${spanId}${sampledString}`;\n}\n\n/**\n * Creates a W3C traceparent header from the given trace and span ids.\n */\nfunction generateTraceparentHeader(\n  traceId = generateTraceId(),\n  spanId = generateSpanId(),\n  sampled,\n) {\n  return `00-${traceId}-${spanId}-${sampled ? '01' : '00'}`;\n}\n\n/**\n * Given any combination of an incoming trace, generate a sample rand based on its defined semantics.\n *\n * Read more: https://develop.sentry.dev/sdk/telemetry/traces/#propagated-random-value\n */\nfunction getSampleRandFromTraceparentAndDsc(\n  traceparentData,\n  dsc,\n) {\n  // When there is an incoming sample rand use it.\n  const parsedSampleRand = parseSampleRate(dsc?.sample_rand);\n  if (parsedSampleRand !== undefined) {\n    return parsedSampleRand;\n  }\n\n  // Otherwise, if there is an incoming sampling decision + sample rate, generate a sample rand that would lead to the same sampling decision.\n  const parsedSampleRate = parseSampleRate(dsc?.sample_rate);\n  if (parsedSampleRate && traceparentData?.parentSampled !== undefined) {\n    return traceparentData.parentSampled\n      ? // Returns a sample rand with positive sampling decision [0, sampleRate)\n        safeMathRandom() * parsedSampleRate\n      : // Returns a sample rand with negative sampling decision [sampleRate, 1)\n        parsedSampleRate + safeMathRandom() * (1 - parsedSampleRate);\n  } else {\n    // If nothing applies, return a random sample rand.\n    return safeMathRandom();\n  }\n}\n\n/**\n * Determines whether a new trace should be continued based on the provided baggage org ID and the client's `strictTraceContinuation` option.\n * If the trace should not be continued, a new trace will be started.\n *\n * The result is dependent on the `strictTraceContinuation` option in the client.\n * See https://develop.sentry.dev/sdk/telemetry/traces/#stricttracecontinuation\n */\nfunction shouldContinueTrace(client, baggageOrgId) {\n  const clientOrgId = extractOrgIdFromClient(client);\n\n  // Case: baggage orgID and Client orgID don't match - always start new trace\n  if (baggageOrgId && clientOrgId && baggageOrgId !== clientOrgId) {\n    debug.log(\n      `Won't continue trace because org IDs don't match (incoming baggage: ${baggageOrgId}, SDK options: ${clientOrgId})`,\n    );\n    return false;\n  }\n\n  const strictTraceContinuation = client.getOptions().strictTraceContinuation || false; // default for `strictTraceContinuation` is `false`\n\n  if (strictTraceContinuation) {\n    // With strict continuation enabled, don't continue trace if:\n    // - Baggage has orgID, but Client doesn't have one\n    // - Client has orgID, but baggage doesn't have one\n    if ((baggageOrgId && !clientOrgId) || (!baggageOrgId && clientOrgId)) {\n      debug.log(\n        `Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${baggageOrgId}, Sentry client: ${clientOrgId})`,\n      );\n      return false;\n    }\n  }\n\n  return true;\n}\n\nexport { TRACEPARENT_REGEXP, extractTraceparentData, generateSentryTraceHeader, generateTraceparentHeader, propagationContextFromHeaders, shouldContinueTrace };\n//# sourceMappingURL=tracing.js.map\n",
-    "import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getCurrentScope } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { SPAN_STATUS_UNSET, SPAN_STATUS_OK } from '../tracing/spanstatus.js';\nimport { getCapturedScopesOnSpan } from '../tracing/utils.js';\nimport { addNonEnumerableProperty } from './object.js';\nimport { generateSpanId } from './propagationContext.js';\nimport { timestampInSeconds } from './time.js';\nimport { generateSentryTraceHeader, generateTraceparentHeader } from './tracing.js';\nimport { consoleSandbox } from './debug-logger.js';\nimport { _getSpanForScope } from './spanOnScope.js';\n\n// These are aligned with OpenTelemetry trace flags\nconst TRACE_FLAG_NONE = 0x0;\nconst TRACE_FLAG_SAMPLED = 0x1;\n\nlet hasShownSpanDropWarning = false;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n * By default, this will only include trace_id, span_id & parent_span_id.\n * If `includeAllData` is true, it will also include data, op, status & origin.\n */\nfunction spanToTransactionTraceContext(span) {\n  const { spanId: span_id, traceId: trace_id } = span.spanContext();\n  const { data, op, parent_span_id, status, origin, links } = spanToJSON(span);\n\n  return {\n    parent_span_id,\n    span_id,\n    trace_id,\n    data,\n    op,\n    status,\n    origin,\n    links,\n  };\n}\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in a non-transaction event.\n */\nfunction spanToTraceContext(span) {\n  const { spanId, traceId: trace_id, isRemote } = span.spanContext();\n\n  // If the span is remote, we use a random/virtual span as span_id to the trace context,\n  // and the remote span as parent_span_id\n  const parent_span_id = isRemote ? spanId : spanToJSON(span).parent_span_id;\n  const scope = getCapturedScopesOnSpan(span).scope;\n\n  const span_id = isRemote ? scope?.getPropagationContext().propagationSpanId || generateSpanId() : spanId;\n\n  return {\n    parent_span_id,\n    span_id,\n    trace_id,\n  };\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nfunction spanToTraceHeader(span) {\n  const { traceId, spanId } = span.spanContext();\n  const sampled = spanIsSampled(span);\n  return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n * Convert a Span to a W3C traceparent header.\n */\nfunction spanToTraceparentHeader(span) {\n  const { traceId, spanId } = span.spanContext();\n  const sampled = spanIsSampled(span);\n  return generateTraceparentHeader(traceId, spanId, sampled);\n}\n\n/**\n *  Converts the span links array to a flattened version to be sent within an envelope.\n *\n *  If the links array is empty, it returns `undefined` so the empty value can be dropped before it's sent.\n */\nfunction convertSpanLinksForEnvelope(links) {\n  if (links && links.length > 0) {\n    return links.map(({ context: { spanId, traceId, traceFlags, ...restContext }, attributes }) => ({\n      span_id: spanId,\n      trace_id: traceId,\n      sampled: traceFlags === TRACE_FLAG_SAMPLED,\n      attributes,\n      ...restContext,\n    }));\n  } else {\n    return undefined;\n  }\n}\n\n/**\n * Convert a span time input into a timestamp in seconds.\n */\nfunction spanTimeInputToSeconds(input) {\n  if (typeof input === 'number') {\n    return ensureTimestampInSeconds(input);\n  }\n\n  if (Array.isArray(input)) {\n    // See {@link HrTime} for the array-based time format\n    return input[0] + input[1] / 1e9;\n  }\n\n  if (input instanceof Date) {\n    return ensureTimestampInSeconds(input.getTime());\n  }\n\n  return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp) {\n  const isMs = timestamp > 9999999999;\n  return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n */\n// Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n// This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n// And `spanToJSON` needs the Span class from `span.ts` to check here.\nfunction spanToJSON(span) {\n  if (spanIsSentrySpan(span)) {\n    return span.getSpanJSON();\n  }\n\n  const { spanId: span_id, traceId: trace_id } = span.spanContext();\n\n  // Handle a span from @opentelemetry/sdk-base-trace's `Span` class\n  if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n    const { attributes, startTime, name, endTime, status, links } = span;\n\n    // In preparation for the next major of OpenTelemetry, we want to support\n    // looking up the parent span id according to the new API\n    // In OTel v1, the parent span id is accessed as `parentSpanId`\n    // In OTel v2, the parent span id is accessed as `spanId` on the `parentSpanContext`\n    const parentSpanId =\n      'parentSpanId' in span\n        ? span.parentSpanId\n        : 'parentSpanContext' in span\n          ? (span.parentSpanContext )?.spanId\n          : undefined;\n\n    return {\n      span_id,\n      trace_id,\n      data: attributes,\n      description: name,\n      parent_span_id: parentSpanId,\n      start_timestamp: spanTimeInputToSeconds(startTime),\n      // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n      timestamp: spanTimeInputToSeconds(endTime) || undefined,\n      status: getStatusMessage(status),\n      op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n      origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] ,\n      links: convertSpanLinksForEnvelope(links),\n    };\n  }\n\n  // Finally, at least we have `spanContext()`....\n  // This should not actually happen in reality, but we need to handle it for type safety.\n  return {\n    span_id,\n    trace_id,\n    start_timestamp: 0,\n    data: {},\n  };\n}\n\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span) {\n  const castSpan = span ;\n  return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\n\n/** Exported only for tests. */\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSentrySpan(span) {\n  return typeof (span ).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nfunction spanIsSampled(span) {\n  // We align our trace flags with the ones OpenTelemetry use\n  // So we also check for sampled the same way they do.\n  const { traceFlags } = span.spanContext();\n  return traceFlags === TRACE_FLAG_SAMPLED;\n}\n\n/** Get the status message to use for a JSON representation of a span. */\nfunction getStatusMessage(status) {\n  if (!status || status.code === SPAN_STATUS_UNSET) {\n    return undefined;\n  }\n\n  if (status.code === SPAN_STATUS_OK) {\n    return 'ok';\n  }\n\n  return status.message || 'internal_error';\n}\n\nconst CHILD_SPANS_FIELD = '_sentryChildSpans';\nconst ROOT_SPAN_FIELD = '_sentryRootSpan';\n\n/**\n * Adds an opaque child span reference to a span.\n */\nfunction addChildSpanToSpan(span, childSpan) {\n  // We store the root span reference on the child span\n  // We need this for `getRootSpan()` to work\n  const rootSpan = span[ROOT_SPAN_FIELD] || span;\n  addNonEnumerableProperty(childSpan , ROOT_SPAN_FIELD, rootSpan);\n\n  // We store a list of child spans on the parent span\n  // We need this for `getSpanDescendants()` to work\n  if (span[CHILD_SPANS_FIELD]) {\n    span[CHILD_SPANS_FIELD].add(childSpan);\n  } else {\n    addNonEnumerableProperty(span, CHILD_SPANS_FIELD, new Set([childSpan]));\n  }\n}\n\n/** This is only used internally by Idle Spans. */\nfunction removeChildSpanFromSpan(span, childSpan) {\n  if (span[CHILD_SPANS_FIELD]) {\n    span[CHILD_SPANS_FIELD].delete(childSpan);\n  }\n}\n\n/**\n * Returns an array of the given span and all of its descendants.\n */\nfunction getSpanDescendants(span) {\n  const resultSet = new Set();\n\n  function addSpanChildren(span) {\n    // This exit condition is required to not infinitely loop in case of a circular dependency.\n    if (resultSet.has(span)) {\n      return;\n      // We want to ignore unsampled spans (e.g. non recording spans)\n    } else if (spanIsSampled(span)) {\n      resultSet.add(span);\n      const childSpans = span[CHILD_SPANS_FIELD] ? Array.from(span[CHILD_SPANS_FIELD]) : [];\n      for (const childSpan of childSpans) {\n        addSpanChildren(childSpan);\n      }\n    }\n  }\n\n  addSpanChildren(span);\n\n  return Array.from(resultSet);\n}\n\n/**\n * Returns the root span of a given span.\n */\nfunction getRootSpan(span) {\n  return span[ROOT_SPAN_FIELD] || span;\n}\n\n/**\n * Returns the currently active span.\n */\nfunction getActiveSpan() {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (acs.getActiveSpan) {\n    return acs.getActiveSpan();\n  }\n\n  return _getSpanForScope(getCurrentScope());\n}\n\n/**\n * Logs a warning once if `beforeSendSpan` is used to drop spans.\n */\nfunction showSpanDropWarning() {\n  if (!hasShownSpanDropWarning) {\n    consoleSandbox(() => {\n      // eslint-disable-next-line no-console\n      console.warn(\n        '[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.',\n      );\n    });\n    hasShownSpanDropWarning = true;\n  }\n}\n\n/**\n * Updates the name of the given span and ensures that the span name is not\n * overwritten by the Sentry SDK.\n *\n * Use this function instead of `span.updateName()` if you want to make sure that\n * your name is kept. For some spans, for example root `http.server` spans the\n * Sentry SDK would otherwise overwrite the span name with a high-quality name\n * it infers when the span ends.\n *\n * Use this function in server code or when your span is started on the server\n * and on the client (browser). If you only update a span name on the client,\n * you can also use `span.updateName()` the SDK does not overwrite the name.\n *\n * @param span - The span to update the name of.\n * @param name - The name to set on the span.\n */\nfunction updateSpanName(span, name) {\n  span.updateName(name);\n  span.setAttributes({\n    [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'custom',\n    [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: name,\n  });\n}\n\nexport { TRACE_FLAG_NONE, TRACE_FLAG_SAMPLED, addChildSpanToSpan, convertSpanLinksForEnvelope, getActiveSpan, getRootSpan, getSpanDescendants, getStatusMessage, removeChildSpanFromSpan, showSpanDropWarning, spanIsSampled, spanTimeInputToSeconds, spanToJSON, spanToTraceContext, spanToTraceHeader, spanToTraceparentHeader, spanToTransactionTraceContext, updateSpanName };\n//# sourceMappingURL=spanUtils.js.map\n",
-    "const DEFAULT_ENVIRONMENT = 'production';\nconst DEV_ENVIRONMENT = 'development';\n\nexport { DEFAULT_ENVIRONMENT, DEV_ENVIRONMENT };\n//# sourceMappingURL=constants.js.map\n",
-    "import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getClient } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader } from '../utils/baggage.js';\nimport { extractOrgIdFromClient } from '../utils/dsn.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { addNonEnumerableProperty } from '../utils/object.js';\nimport { getRootSpan, spanToJSON, spanIsSampled } from '../utils/spanUtils.js';\nimport { getCapturedScopesOnSpan } from './utils.js';\n\n/**\n * If you change this value, also update the terser plugin config to\n * avoid minification of the object property!\n */\nconst FROZEN_DSC_FIELD = '_frozenDsc';\n\n/**\n * Freeze the given DSC on the given span.\n */\nfunction freezeDscOnSpan(span, dsc) {\n  const spanWithMaybeDsc = span ;\n  addNonEnumerableProperty(spanWithMaybeDsc, FROZEN_DSC_FIELD, dsc);\n}\n\n/**\n * Creates a dynamic sampling context from a client.\n *\n * Dispatches the `createDsc` lifecycle hook as a side effect.\n */\nfunction getDynamicSamplingContextFromClient(trace_id, client) {\n  const options = client.getOptions();\n\n  const { publicKey: public_key } = client.getDsn() || {};\n\n  // Instead of conditionally adding non-undefined values, we add them and then remove them if needed\n  // otherwise, the order of baggage entries changes, which \"breaks\" a bunch of tests etc.\n  const dsc = {\n    environment: options.environment || DEFAULT_ENVIRONMENT,\n    release: options.release,\n    public_key,\n    trace_id,\n    org_id: extractOrgIdFromClient(client),\n  };\n\n  client.emit('createDsc', dsc);\n\n  return dsc;\n}\n\n/**\n * Get the dynamic sampling context for the currently active scopes.\n */\nfunction getDynamicSamplingContextFromScope(client, scope) {\n  const propagationContext = scope.getPropagationContext();\n  return propagationContext.dsc || getDynamicSamplingContextFromClient(propagationContext.traceId, client);\n}\n\n/**\n * Creates a dynamic sampling context from a span (and client and scope)\n *\n * @param span the span from which a few values like the root span name and sample rate are extracted.\n *\n * @returns a dynamic sampling context\n */\nfunction getDynamicSamplingContextFromSpan(span) {\n  const client = getClient();\n  if (!client) {\n    return {};\n  }\n\n  const rootSpan = getRootSpan(span);\n  const rootSpanJson = spanToJSON(rootSpan);\n  const rootSpanAttributes = rootSpanJson.data;\n  const traceState = rootSpan.spanContext().traceState;\n\n  // The span sample rate that was locally applied to the root span should also always be applied to the DSC, even if the DSC is frozen.\n  // This is so that the downstream traces/services can use parentSampleRate in their `tracesSampler` to make consistent sampling decisions across the entire trace.\n  const rootSpanSampleRate =\n    traceState?.get('sentry.sample_rate') ??\n    rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] ??\n    rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE];\n\n  function applyLocalSampleRateToDsc(dsc) {\n    if (typeof rootSpanSampleRate === 'number' || typeof rootSpanSampleRate === 'string') {\n      dsc.sample_rate = `${rootSpanSampleRate}`;\n    }\n    return dsc;\n  }\n\n  // For core implementation, we freeze the DSC onto the span as a non-enumerable property\n  const frozenDsc = (rootSpan )[FROZEN_DSC_FIELD];\n  if (frozenDsc) {\n    return applyLocalSampleRateToDsc(frozenDsc);\n  }\n\n  // For OpenTelemetry, we freeze the DSC on the trace state\n  const traceStateDsc = traceState?.get('sentry.dsc');\n\n  // If the span has a DSC, we want it to take precedence\n  const dscOnTraceState = traceStateDsc && baggageHeaderToDynamicSamplingContext(traceStateDsc);\n\n  if (dscOnTraceState) {\n    return applyLocalSampleRateToDsc(dscOnTraceState);\n  }\n\n  // Else, we generate it from the span\n  const dsc = getDynamicSamplingContextFromClient(span.spanContext().traceId, client);\n\n  // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n  const source = rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n  // after JSON conversion, txn.name becomes jsonSpan.description\n  const name = rootSpanJson.description;\n  if (source !== 'url' && name) {\n    dsc.transaction = name;\n  }\n\n  // How can we even land here with hasSpansEnabled() returning false?\n  // Otel creates a Non-recording span in Tracing Without Performance mode when handling incoming requests\n  // So we end up with an active span that is not sampled (neither positively nor negatively)\n  if (hasSpansEnabled()) {\n    dsc.sampled = String(spanIsSampled(rootSpan));\n    dsc.sample_rand =\n      // In OTEL we store the sample rand on the trace state because we cannot access scopes for NonRecordingSpans\n      // The Sentry OTEL SpanSampler takes care of writing the sample rand on the root span\n      traceState?.get('sentry.sample_rand') ??\n      // On all other platforms we can actually get the scopes from a root span (we use this as a fallback)\n      getCapturedScopesOnSpan(rootSpan).scope?.getPropagationContext().sampleRand.toString();\n  }\n\n  applyLocalSampleRateToDsc(dsc);\n\n  client.emit('createDsc', dsc, rootSpan);\n\n  return dsc;\n}\n\n/**\n * Convert a Span to a baggage header.\n */\nfunction spanToBaggageHeader(span) {\n  const dsc = getDynamicSamplingContextFromSpan(span);\n  return dynamicSamplingContextToSentryBaggageHeader(dsc);\n}\n\nexport { freezeDscOnSpan, getDynamicSamplingContextFromClient, getDynamicSamplingContextFromScope, getDynamicSamplingContextFromSpan, spanToBaggageHeader };\n//# sourceMappingURL=dynamicSamplingContext.js.map\n",
-    "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { spanToJSON, getRootSpan, spanIsSampled } from '../utils/spanUtils.js';\n\n/**\n * Print a log message for a started span.\n */\nfunction logSpanStart(span) {\n  if (!DEBUG_BUILD) return;\n\n  const { description = '< unknown name >', op = '< unknown op >', parent_span_id: parentSpanId } = spanToJSON(span);\n  const { spanId } = span.spanContext();\n\n  const sampled = spanIsSampled(span);\n  const rootSpan = getRootSpan(span);\n  const isRootSpan = rootSpan === span;\n\n  const header = `[Tracing] Starting ${sampled ? 'sampled' : 'unsampled'} ${isRootSpan ? 'root ' : ''}span`;\n\n  const infoParts = [`op: ${op}`, `name: ${description}`, `ID: ${spanId}`];\n\n  if (parentSpanId) {\n    infoParts.push(`parent ID: ${parentSpanId}`);\n  }\n\n  if (!isRootSpan) {\n    const { op, description } = spanToJSON(rootSpan);\n    infoParts.push(`root ID: ${rootSpan.spanContext().spanId}`);\n    if (op) {\n      infoParts.push(`root op: ${op}`);\n    }\n    if (description) {\n      infoParts.push(`root description: ${description}`);\n    }\n  }\n\n  debug.log(`${header}\n  ${infoParts.join('\\n  ')}`);\n}\n\n/**\n * Print a log message for an ended span.\n */\nfunction logSpanEnd(span) {\n  if (!DEBUG_BUILD) return;\n\n  const { description = '< unknown name >', op = '< unknown op >' } = spanToJSON(span);\n  const { spanId } = span.spanContext();\n  const rootSpan = getRootSpan(span);\n  const isRootSpan = rootSpan === span;\n\n  const msg = `[Tracing] Finishing \"${op}\" ${isRootSpan ? 'root ' : ''}span \"${description}\" with ID ${spanId}`;\n  debug.log(msg);\n}\n\nexport { logSpanEnd, logSpanStart };\n//# sourceMappingURL=logSpans.js.map\n",
-    "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { parseSampleRate } from '../utils/parseSampleRate.js';\n\n/**\n * Makes a sampling decision for the given options.\n *\n * Called every time a root span is created. Only root spans which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n */\nfunction sampleSpan(\n  options,\n  samplingContext,\n  sampleRand,\n) {\n  // nothing to do if span recording is not enabled\n  if (!hasSpansEnabled(options)) {\n    return [false];\n  }\n\n  let localSampleRateWasApplied = undefined;\n\n  // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should\n  // work; prefer the hook if so\n  let sampleRate;\n  if (typeof options.tracesSampler === 'function') {\n    sampleRate = options.tracesSampler({\n      ...samplingContext,\n      inheritOrSampleWith: fallbackSampleRate => {\n        // If we have an incoming parent sample rate, we'll just use that one.\n        // The sampling decision will be inherited because of the sample_rand that was generated when the trace reached the incoming boundaries of the SDK.\n        if (typeof samplingContext.parentSampleRate === 'number') {\n          return samplingContext.parentSampleRate;\n        }\n\n        // Fallback if parent sample rate is not on the incoming trace (e.g. if there is no baggage)\n        // This is to provide backwards compatibility if there are incoming traces from older SDKs that don't send a parent sample rate or a sample rand. In these cases we just want to force either a sampling decision on the downstream traces via the sample rate.\n        if (typeof samplingContext.parentSampled === 'boolean') {\n          return Number(samplingContext.parentSampled);\n        }\n\n        return fallbackSampleRate;\n      },\n    });\n    localSampleRateWasApplied = true;\n  } else if (samplingContext.parentSampled !== undefined) {\n    sampleRate = samplingContext.parentSampled;\n  } else if (typeof options.tracesSampleRate !== 'undefined') {\n    sampleRate = options.tracesSampleRate;\n    localSampleRateWasApplied = true;\n  }\n\n  // Since this is coming from the user (or from a function provided by the user), who knows what we might get.\n  // (The only valid values are booleans or numbers between 0 and 1.)\n  const parsedSampleRate = parseSampleRate(sampleRate);\n\n  if (parsedSampleRate === undefined) {\n    DEBUG_BUILD &&\n      debug.warn(\n        `[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n          sampleRate,\n        )} of type ${JSON.stringify(typeof sampleRate)}.`,\n      );\n    return [false];\n  }\n\n  // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n  if (!parsedSampleRate) {\n    DEBUG_BUILD &&\n      debug.log(\n        `[Tracing] Discarding transaction because ${\n          typeof options.tracesSampler === 'function'\n            ? 'tracesSampler returned 0 or false'\n            : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n        }`,\n      );\n    return [false, parsedSampleRate, localSampleRateWasApplied];\n  }\n\n  // We always compare the sample rand for the current execution context against the chosen sample rate.\n  // Read more: https://develop.sentry.dev/sdk/telemetry/traces/#propagated-random-value\n  const shouldSample = sampleRand < parsedSampleRate;\n\n  // if we're not going to keep it, we're done\n  if (!shouldSample) {\n    DEBUG_BUILD &&\n      debug.log(\n        `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n          sampleRate,\n        )})`,\n      );\n  }\n\n  return [shouldSample, parsedSampleRate, localSampleRateWasApplied];\n}\n\nexport { sampleSpan };\n//# sourceMappingURL=sampling.js.map\n",
-    "import { generateTraceId, generateSpanId } from '../utils/propagationContext.js';\nimport { TRACE_FLAG_NONE } from '../utils/spanUtils.js';\n\n/**\n * A Sentry Span that is non-recording, meaning it will not be sent to Sentry.\n */\nclass SentryNonRecordingSpan  {\n\n   constructor(spanContext = {}) {\n    this._traceId = spanContext.traceId || generateTraceId();\n    this._spanId = spanContext.spanId || generateSpanId();\n  }\n\n  /** @inheritdoc */\n   spanContext() {\n    return {\n      spanId: this._spanId,\n      traceId: this._traceId,\n      traceFlags: TRACE_FLAG_NONE,\n    };\n  }\n\n  /** @inheritdoc */\n   end(_timestamp) {}\n\n  /** @inheritdoc */\n   setAttribute(_key, _value) {\n    return this;\n  }\n\n  /** @inheritdoc */\n   setAttributes(_values) {\n    return this;\n  }\n\n  /** @inheritdoc */\n   setStatus(_status) {\n    return this;\n  }\n\n  /** @inheritdoc */\n   updateName(_name) {\n    return this;\n  }\n\n  /** @inheritdoc */\n   isRecording() {\n    return false;\n  }\n\n  /** @inheritdoc */\n   addEvent(\n    _name,\n    _attributesOrStartTime,\n    _startTime,\n  ) {\n    return this;\n  }\n\n  /** @inheritDoc */\n   addLink(_link) {\n    return this;\n  }\n\n  /** @inheritDoc */\n   addLinks(_links) {\n    return this;\n  }\n\n  /**\n   * This should generally not be used,\n   * but we need it for being compliant with the OTEL Span interface.\n   *\n   * @hidden\n   * @internal\n   */\n   recordException(_exception, _time) {\n    // noop\n  }\n}\n\nexport { SentryNonRecordingSpan };\n//# sourceMappingURL=sentryNonRecordingSpan.js.map\n",
-    "import { isVueViewModel, isSyntheticEvent } from './is.js';\nimport { convertToPlainObject } from './object.js';\nimport { getVueInternalName, getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normalized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction normalize(input, depth = 100, maxProperties = +Infinity) {\n  try {\n    // since we're at the outermost level, we don't provide a key\n    return visit('', input, depth, maxProperties);\n  } catch (err) {\n    return { ERROR: `**non-serializable** (${err})` };\n  }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  object,\n  // Default Node.js REPL depth\n  depth = 3,\n  // 100kB, as 200kB is max payload size, so half sounds reasonable\n  maxSize = 100 * 1024,\n) {\n  const normalized = normalize(object, depth);\n\n  if (jsonSize(normalized) > maxSize) {\n    return normalizeToSize(object, depth - 1, maxSize);\n  }\n\n  return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n  key,\n  value,\n  depth = +Infinity,\n  maxProperties = +Infinity,\n  memo = memoBuilder(),\n) {\n  const [memoize, unmemoize] = memo;\n\n  // Get the simple cases out of the way first\n  if (\n    value == null || // this matches null and undefined -> eqeq not eqeqeq\n    ['boolean', 'string'].includes(typeof value) ||\n    (typeof value === 'number' && Number.isFinite(value))\n  ) {\n    return value ;\n  }\n\n  const stringified = stringifyValue(key, value);\n\n  // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n  // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n  if (!stringified.startsWith('[object ')) {\n    return stringified;\n  }\n\n  // From here on, we can assert that `value` is either an object or an array.\n\n  // Do not normalize objects that we know have already been normalized. As a general rule, the\n  // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n  // have already been normalized.\n  if ((value )['__sentry_skip_normalization__']) {\n    return value ;\n  }\n\n  // We can set `__sentry_override_normalization_depth__` on an object to ensure that from there\n  // We keep a certain amount of depth.\n  // This should be used sparingly, e.g. we use it for the redux integration to ensure we get a certain amount of state.\n  const remainingDepth =\n    typeof (value )['__sentry_override_normalization_depth__'] === 'number'\n      ? ((value )['__sentry_override_normalization_depth__'] )\n      : depth;\n\n  // We're also done if we've reached the max depth\n  if (remainingDepth === 0) {\n    // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n    return stringified.replace('object ', '');\n  }\n\n  // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n  if (memoize(value)) {\n    return '[Circular ~]';\n  }\n\n  // If the value has a `toJSON` method, we call it to extract more information\n  const valueWithToJSON = value ;\n  if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n    try {\n      const jsonValue = valueWithToJSON.toJSON();\n      // We need to normalize the return value of `.toJSON()` in case it has circular references\n      return visit('', jsonValue, remainingDepth - 1, maxProperties, memo);\n    } catch {\n      // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n    }\n  }\n\n  // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n  // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n  // property/entry, and keep track of the number of items we add to it.\n  const normalized = (Array.isArray(value) ? [] : {}) ;\n  let numAdded = 0;\n\n  // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n  // properties are non-enumerable and otherwise would get missed.\n  const visitable = convertToPlainObject(value );\n\n  for (const visitKey in visitable) {\n    // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n    if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n      continue;\n    }\n\n    if (numAdded >= maxProperties) {\n      normalized[visitKey] = '[MaxProperties ~]';\n      break;\n    }\n\n    // Recursively visit all the child nodes\n    const visitValue = visitable[visitKey];\n    normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n\n    numAdded++;\n  }\n\n  // Once we've visited all the branches, remove the parent from memo storage\n  unmemoize(value);\n\n  // Return accumulated values\n  return normalized;\n}\n\n/* eslint-disable complexity */\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n  key,\n  // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n  // our internal use, it'll do\n  value,\n) {\n  try {\n    if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n      return '[Domain]';\n    }\n\n    if (key === 'domainEmitter') {\n      return '[DomainEmitter]';\n    }\n\n    // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n    // which won't throw if they are not present.\n\n    if (typeof global !== 'undefined' && value === global) {\n      return '[Global]';\n    }\n\n    // eslint-disable-next-line no-restricted-globals\n    if (typeof window !== 'undefined' && value === window) {\n      return '[Window]';\n    }\n\n    // eslint-disable-next-line no-restricted-globals\n    if (typeof document !== 'undefined' && value === document) {\n      return '[Document]';\n    }\n\n    if (isVueViewModel(value)) {\n      return getVueInternalName(value);\n    }\n\n    // React's SyntheticEvent thingy\n    if (isSyntheticEvent(value)) {\n      return '[SyntheticEvent]';\n    }\n\n    if (typeof value === 'number' && !Number.isFinite(value)) {\n      return `[${value}]`;\n    }\n\n    if (typeof value === 'function') {\n      return `[Function: ${getFunctionName(value)}]`;\n    }\n\n    if (typeof value === 'symbol') {\n      return `[${String(value)}]`;\n    }\n\n    // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n    if (typeof value === 'bigint') {\n      return `[BigInt: ${String(value)}]`;\n    }\n\n    // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n    // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n    // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n    // we can make sure that only plain objects come out that way.\n    const objName = getConstructorName(value);\n\n    // Handle HTML Elements\n    if (/^HTML(\\w*)Element$/.test(objName)) {\n      return `[HTMLElement: ${objName}]`;\n    }\n\n    return `[object ${objName}]`;\n  } catch (err) {\n    return `**non-serializable** (${err})`;\n  }\n}\n/* eslint-enable complexity */\n\nfunction getConstructorName(value) {\n  const prototype = Object.getPrototypeOf(value);\n\n  return prototype?.constructor ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n  // eslint-disable-next-line no-bitwise\n  return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value) {\n  return utf8Length(JSON.stringify(value));\n}\n\n/**\n * Normalizes URLs in exceptions and stacktraces to a base path so Sentry can fingerprint\n * across platforms and working directory.\n *\n * @param url The URL to be normalized.\n * @param basePath The application base path.\n * @returns The normalized URL.\n */\nfunction normalizeUrlToBase(url, basePath) {\n  const escapedBase = basePath\n    // Backslash to forward\n    .replace(/\\\\/g, '/')\n    // Escape RegExp special characters\n    .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n  let newUrl = url;\n  try {\n    newUrl = decodeURI(url);\n  } catch {\n    // Sometime this breaks\n  }\n  return (\n    newUrl\n      .replace(/\\\\/g, '/')\n      .replace(/webpack:\\/?/g, '') // Remove intermediate base path\n      // oxlint-disable-next-line sdk/no-regexp-constructor\n      .replace(new RegExp(`(file://)?/*${escapedBase}/*`, 'ig'), 'app:///')\n  );\n}\n\n/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n  const inner = new WeakSet();\n  function memoize(obj) {\n    if (inner.has(obj)) {\n      return true;\n    }\n    inner.add(obj);\n    return false;\n  }\n\n  function unmemoize(obj) {\n    inner.delete(obj);\n  }\n  return [memoize, unmemoize];\n}\n\nexport { normalize, normalizeToSize, normalizeUrlToBase };\n//# sourceMappingURL=normalize.js.map\n",
-    "import { getSentryCarrier } from '../carrier.js';\nimport { dsnToString } from './dsn.js';\nimport { normalize } from './normalize.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction createEnvelope(headers, items = []) {\n  return [headers, items] ;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction addItemToEnvelope(envelope, newItem) {\n  const [headers, items] = envelope;\n  return [headers, [...items, newItem]] ;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n *\n * If the callback returns true, the rest of the items will be skipped.\n */\nfunction forEachEnvelopeItem(\n  envelope,\n  callback,\n) {\n  const envelopeItems = envelope[1];\n\n  for (const envelopeItem of envelopeItems) {\n    const envelopeItemType = envelopeItem[0].type;\n    const result = callback(envelopeItem, envelopeItemType);\n\n    if (result) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\n/**\n * Returns true if the envelope contains any of the given envelope item types\n */\nfunction envelopeContainsItemType(envelope, types) {\n  return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\n\n/**\n * Encode a string to UTF8 array.\n */\nfunction encodeUTF8(input) {\n  const carrier = getSentryCarrier(GLOBAL_OBJ);\n  return carrier.encodePolyfill ? carrier.encodePolyfill(input) : new TextEncoder().encode(input);\n}\n\n/**\n * Decode a UTF8 array to string.\n */\nfunction decodeUTF8(input) {\n  const carrier = getSentryCarrier(GLOBAL_OBJ);\n  return carrier.decodePolyfill ? carrier.decodePolyfill(input) : new TextDecoder().decode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nfunction serializeEnvelope(envelope) {\n  const [envHeaders, items] = envelope;\n  // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n  let parts = JSON.stringify(envHeaders);\n\n  function append(next) {\n    if (typeof parts === 'string') {\n      parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts), next];\n    } else {\n      parts.push(typeof next === 'string' ? encodeUTF8(next) : next);\n    }\n  }\n\n  for (const item of items) {\n    const [itemHeaders, payload] = item;\n\n    append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n    if (typeof payload === 'string' || payload instanceof Uint8Array) {\n      append(payload);\n    } else {\n      let stringifiedPayload;\n      try {\n        stringifiedPayload = JSON.stringify(payload);\n      } catch {\n        // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.stringify()` still\n        // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n        // performance impact but in this case a performance hit is better than throwing.\n        stringifiedPayload = JSON.stringify(normalize(payload));\n      }\n      append(stringifiedPayload);\n    }\n  }\n\n  return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n  const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n  const merged = new Uint8Array(totalLength);\n  let offset = 0;\n  for (const buffer of buffers) {\n    merged.set(buffer, offset);\n    offset += buffer.length;\n  }\n\n  return merged;\n}\n\n/**\n * Parses an envelope\n */\nfunction parseEnvelope(env) {\n  let buffer = typeof env === 'string' ? encodeUTF8(env) : env;\n\n  function readBinary(length) {\n    const bin = buffer.subarray(0, length);\n    // Replace the buffer with the remaining data excluding trailing newline\n    buffer = buffer.subarray(length + 1);\n    return bin;\n  }\n\n  function readJson() {\n    let i = buffer.indexOf(0xa);\n    // If we couldn't find a newline, we must have found the end of the buffer\n    if (i < 0) {\n      i = buffer.length;\n    }\n\n    return JSON.parse(decodeUTF8(readBinary(i))) ;\n  }\n\n  const envelopeHeader = readJson();\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  const items = [];\n\n  while (buffer.length) {\n    const itemHeader = readJson();\n    const binaryLength = typeof itemHeader.length === 'number' ? itemHeader.length : undefined;\n\n    items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n  }\n\n  return [envelopeHeader, items];\n}\n\n/**\n * Creates envelope item for a single span\n */\nfunction createSpanEnvelopeItem(spanJson) {\n  const spanHeaders = {\n    type: 'span',\n  };\n\n  return [spanHeaders, spanJson];\n}\n\n/**\n * Creates attachment envelope items\n */\nfunction createAttachmentEnvelopeItem(attachment) {\n  const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data) : attachment.data;\n\n  return [\n    {\n      type: 'attachment',\n      length: buffer.length,\n      filename: attachment.filename,\n      content_type: attachment.contentType,\n      attachment_type: attachment.attachmentType,\n    },\n    buffer,\n  ];\n}\n\n// Map of envelope item types to data categories where the category differs from the type.\n// Types that map to themselves (session, attachment, transaction, profile, feedback, span, metric) fall through.\nconst DATA_CATEGORY_OVERRIDES = {\n  sessions: 'session',\n  event: 'error',\n  client_report: 'internal',\n  user_report: 'default',\n  profile_chunk: 'profile',\n  replay_event: 'replay',\n  replay_recording: 'replay',\n  check_in: 'monitor',\n  raw_security: 'security',\n  log: 'log_item',\n  trace_metric: 'metric',\n};\n\nfunction _isOverriddenType(type) {\n  return type in DATA_CATEGORY_OVERRIDES;\n}\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nfunction envelopeItemTypeToDataCategory(type) {\n  return _isOverriddenType(type) ? DATA_CATEGORY_OVERRIDES[type] : type;\n}\n\n/** Extracts the minimal SDK info from the metadata or an events */\nfunction getSdkMetadataForEnvelopeHeader(metadataOrEvent) {\n  if (!metadataOrEvent?.sdk) {\n    return;\n  }\n  const { name, version } = metadataOrEvent.sdk;\n  return { name, version };\n}\n\n/**\n * Creates event envelope headers, based on event, sdk info and tunnel\n * Note: This function was extracted from the core package to make it available in Replay\n */\nfunction createEventEnvelopeHeaders(\n  event,\n  sdkInfo,\n  tunnel,\n  dsn,\n) {\n  const dynamicSamplingContext = event.sdkProcessingMetadata?.dynamicSamplingContext;\n  return {\n    event_id: event.event_id ,\n    sent_at: new Date().toISOString(),\n    ...(sdkInfo && { sdk: sdkInfo }),\n    ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n    ...(dynamicSamplingContext && {\n      trace: dynamicSamplingContext,\n    }),\n  };\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, createEventEnvelopeHeaders, createSpanEnvelopeItem, envelopeContainsItemType, envelopeItemTypeToDataCategory, forEachEnvelopeItem, getSdkMetadataForEnvelopeHeader, parseEnvelope, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n",
-    "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isMatchingPattern } from './string.js';\n\nfunction logIgnoredSpan(droppedSpan) {\n  debug.log(`Ignoring span ${droppedSpan.op} - ${droppedSpan.description} because it matches \\`ignoreSpans\\`.`);\n}\n\n/**\n * Check if a span should be ignored based on the ignoreSpans configuration.\n */\nfunction shouldIgnoreSpan(\n  span,\n  ignoreSpans,\n) {\n  if (!ignoreSpans?.length || !span.description) {\n    return false;\n  }\n\n  for (const pattern of ignoreSpans) {\n    if (isStringOrRegExp(pattern)) {\n      if (isMatchingPattern(span.description, pattern)) {\n        DEBUG_BUILD && logIgnoredSpan(span);\n        return true;\n      }\n      continue;\n    }\n\n    if (!pattern.name && !pattern.op) {\n      continue;\n    }\n\n    const nameMatches = pattern.name ? isMatchingPattern(span.description, pattern.name) : true;\n    const opMatches = pattern.op ? span.op && isMatchingPattern(span.op, pattern.op) : true;\n\n    // This check here is only correct because we can guarantee that we ran `isMatchingPattern`\n    // for at least one of `nameMatches` and `opMatches`. So in contrary to how this looks,\n    // not both op and name actually have to match. This is the most efficient way to check\n    // for all combinations of name and op patterns.\n    if (nameMatches && opMatches) {\n      DEBUG_BUILD && logIgnoredSpan(span);\n      return true;\n    }\n  }\n\n  return false;\n}\n\n/**\n * Takes a list of spans, and a span that was dropped, and re-parents the child spans of the dropped span to the parent of the dropped span, if possible.\n * This mutates the spans array in place!\n */\nfunction reparentChildSpans(spans, dropSpan) {\n  const droppedSpanParentId = dropSpan.parent_span_id;\n  const droppedSpanId = dropSpan.span_id;\n\n  // This should generally not happen, as we do not apply this on root spans\n  // but to be safe, we just bail in this case\n  if (!droppedSpanParentId) {\n    return;\n  }\n\n  for (const span of spans) {\n    if (span.parent_span_id === droppedSpanId) {\n      span.parent_span_id = droppedSpanParentId;\n    }\n  }\n}\n\nfunction isStringOrRegExp(value) {\n  return typeof value === 'string' || value instanceof RegExp;\n}\n\nexport { reparentChildSpans, shouldIgnoreSpan };\n//# sourceMappingURL=should-ignore-span.js.map\n",
-    "import { getDynamicSamplingContextFromSpan } from './tracing/dynamicSamplingContext.js';\nimport { dsnToString } from './utils/dsn.js';\nimport { getSdkMetadataForEnvelopeHeader, createEventEnvelopeHeaders, createEnvelope, createSpanEnvelopeItem } from './utils/envelope.js';\nimport { shouldIgnoreSpan } from './utils/should-ignore-span.js';\nimport { spanToJSON, showSpanDropWarning } from './utils/spanUtils.js';\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n *\n * @internal, exported only for testing\n **/\nfunction _enhanceEventWithSdkInfo(event, newSdkInfo) {\n  if (!newSdkInfo) {\n    return event;\n  }\n\n  const eventSdkInfo = event.sdk || {};\n\n  event.sdk = {\n    ...eventSdkInfo,\n    name: eventSdkInfo.name || newSdkInfo.name,\n    version: eventSdkInfo.version || newSdkInfo.version,\n    integrations: [...(event.sdk?.integrations || []), ...(newSdkInfo.integrations || [])],\n    packages: [...(event.sdk?.packages || []), ...(newSdkInfo.packages || [])],\n    settings:\n      event.sdk?.settings || newSdkInfo.settings\n        ? {\n            ...event.sdk?.settings,\n            ...newSdkInfo.settings,\n          }\n        : undefined,\n  };\n\n  return event;\n}\n\n/** Creates an envelope from a Session */\nfunction createSessionEnvelope(\n  session,\n  dsn,\n  metadata,\n  tunnel,\n) {\n  const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n  const envelopeHeaders = {\n    sent_at: new Date().toISOString(),\n    ...(sdkInfo && { sdk: sdkInfo }),\n    ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n  };\n\n  const envelopeItem =\n    'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session.toJSON()];\n\n  return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nfunction createEventEnvelope(\n  event,\n  dsn,\n  metadata,\n  tunnel,\n) {\n  const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n\n  /*\n    Note: Due to TS, event.type may be `replay_event`, theoretically.\n    In practice, we never call `createEventEnvelope` with `replay_event` type,\n    and we'd have to adjust a looot of types to make this work properly.\n    We want to avoid casting this around, as that could lead to bugs (e.g. when we add another type)\n    So the safe choice is to really guard against the replay_event type here.\n  */\n  const eventType = event.type && event.type !== 'replay_event' ? event.type : 'event';\n\n  _enhanceEventWithSdkInfo(event, metadata?.sdk);\n\n  const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n  // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n  // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n  // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n  // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n  delete event.sdkProcessingMetadata;\n\n  const eventItem = [{ type: eventType }, event];\n  return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\n/**\n * Create envelope from Span item.\n *\n * Takes an optional client and runs spans through `beforeSendSpan` if available.\n */\nfunction createSpanEnvelope(spans, client) {\n  function dscHasRequiredProps(dsc) {\n    return !!dsc.trace_id && !!dsc.public_key;\n  }\n\n  // For the moment we'll obtain the DSC from the first span in the array\n  // This might need to be changed if we permit sending multiple spans from\n  // different segments in one envelope\n  const dsc = getDynamicSamplingContextFromSpan(spans[0]);\n\n  const dsn = client?.getDsn();\n  const tunnel = client?.getOptions().tunnel;\n\n  const headers = {\n    sent_at: new Date().toISOString(),\n    ...(dscHasRequiredProps(dsc) && { trace: dsc }),\n    ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n  };\n\n  const { beforeSendSpan, ignoreSpans } = client?.getOptions() || {};\n\n  const filteredSpans = ignoreSpans?.length\n    ? spans.filter(span => !shouldIgnoreSpan(spanToJSON(span), ignoreSpans))\n    : spans;\n  const droppedSpans = spans.length - filteredSpans.length;\n\n  if (droppedSpans) {\n    client?.recordDroppedEvent('before_send', 'span', droppedSpans);\n  }\n\n  const convertToSpanJSON = beforeSendSpan\n    ? (span) => {\n        const spanJson = spanToJSON(span);\n        const processedSpan = beforeSendSpan(spanJson);\n\n        if (!processedSpan) {\n          showSpanDropWarning();\n          return spanJson;\n        }\n\n        return processedSpan;\n      }\n    : spanToJSON;\n\n  const items = [];\n  for (const span of filteredSpans) {\n    const spanJson = convertToSpanJSON(span);\n    if (spanJson) {\n      items.push(createSpanEnvelopeItem(spanJson));\n    }\n  }\n\n  return createEnvelope(headers, items);\n}\n\nexport { _enhanceEventWithSdkInfo, createEventEnvelope, createSessionEnvelope, createSpanEnvelope };\n//# sourceMappingURL=envelope.js.map\n",
-    "import { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE } from '../semanticAttributes.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getRootSpan, getActiveSpan } from '../utils/spanUtils.js';\n\n/**\n * Adds a measurement to the active transaction on the current global scope. You can optionally pass in a different span\n * as the 4th parameter.\n */\nfunction setMeasurement(name, value, unit, activeSpan = getActiveSpan()) {\n  const rootSpan = activeSpan && getRootSpan(activeSpan);\n\n  if (rootSpan) {\n    DEBUG_BUILD && debug.log(`[Measurement] Setting measurement on root span: ${name} = ${value} ${unit}`);\n    rootSpan.addEvent(name, {\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: value,\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: unit ,\n    });\n  }\n}\n\n/**\n * Convert timed events to measurements.\n */\nfunction timedEventsToMeasurements(events) {\n  if (!events || events.length === 0) {\n    return undefined;\n  }\n\n  const measurements = {};\n  events.forEach(event => {\n    const attributes = event.attributes || {};\n    const unit = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT] ;\n    const value = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE] ;\n\n    if (typeof unit === 'string' && typeof value === 'number') {\n      measurements[event.name] = { value, unit };\n    }\n  });\n\n  return measurements;\n}\n\nexport { setMeasurement, timedEventsToMeasurements };\n//# sourceMappingURL=measurement.js.map\n",
-    "import { getClient, getCurrentScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { createSpanEnvelope } from '../envelope.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME } from '../semanticAttributes.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { generateTraceId, generateSpanId } from '../utils/propagationContext.js';\nimport { TRACE_FLAG_SAMPLED, TRACE_FLAG_NONE, spanTimeInputToSeconds, convertSpanLinksForEnvelope, getRootSpan, getStatusMessage, spanToJSON, getSpanDescendants, spanToTransactionTraceContext } from '../utils/spanUtils.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getDynamicSamplingContextFromSpan } from './dynamicSamplingContext.js';\nimport { logSpanEnd } from './logSpans.js';\nimport { timedEventsToMeasurements } from './measurement.js';\nimport { getCapturedScopesOnSpan } from './utils.js';\n\nconst MAX_SPAN_COUNT = 1000;\n\n/**\n * Span contains all data about a span\n */\nclass SentrySpan  {\n\n  /** Epoch timestamp in seconds when the span started. */\n\n  /** Epoch timestamp in seconds when the span ended. */\n\n  /** Internal keeper of the status */\n\n  /** The timed events added to this span. */\n\n  /** if true, treat span as a standalone span (not part of a transaction) */\n\n  /**\n   * You should never call the constructor manually, always use `Sentry.startSpan()`\n   * or other span methods.\n   * @internal\n   * @hideconstructor\n   * @hidden\n   */\n   constructor(spanContext = {}) {\n    this._traceId = spanContext.traceId || generateTraceId();\n    this._spanId = spanContext.spanId || generateSpanId();\n    this._startTime = spanContext.startTimestamp || timestampInSeconds();\n    this._links = spanContext.links;\n\n    this._attributes = {};\n    this.setAttributes({\n      [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'manual',\n      [SEMANTIC_ATTRIBUTE_SENTRY_OP]: spanContext.op,\n      ...spanContext.attributes,\n    });\n\n    this._name = spanContext.name;\n\n    if (spanContext.parentSpanId) {\n      this._parentSpanId = spanContext.parentSpanId;\n    }\n    // We want to include booleans as well here\n    if ('sampled' in spanContext) {\n      this._sampled = spanContext.sampled;\n    }\n    if (spanContext.endTimestamp) {\n      this._endTime = spanContext.endTimestamp;\n    }\n\n    this._events = [];\n\n    this._isStandaloneSpan = spanContext.isStandalone;\n\n    // If the span is already ended, ensure we finalize the span immediately\n    if (this._endTime) {\n      this._onSpanEnded();\n    }\n  }\n\n  /** @inheritDoc */\n   addLink(link) {\n    if (this._links) {\n      this._links.push(link);\n    } else {\n      this._links = [link];\n    }\n    return this;\n  }\n\n  /** @inheritDoc */\n   addLinks(links) {\n    if (this._links) {\n      this._links.push(...links);\n    } else {\n      this._links = links;\n    }\n    return this;\n  }\n\n  /**\n   * This should generally not be used,\n   * but it is needed for being compliant with the OTEL Span interface.\n   *\n   * @hidden\n   * @internal\n   */\n   recordException(_exception, _time) {\n    // noop\n  }\n\n  /** @inheritdoc */\n   spanContext() {\n    const { _spanId: spanId, _traceId: traceId, _sampled: sampled } = this;\n    return {\n      spanId,\n      traceId,\n      traceFlags: sampled ? TRACE_FLAG_SAMPLED : TRACE_FLAG_NONE,\n    };\n  }\n\n  /** @inheritdoc */\n   setAttribute(key, value) {\n    if (value === undefined) {\n      // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n      delete this._attributes[key];\n    } else {\n      this._attributes[key] = value;\n    }\n\n    return this;\n  }\n\n  /** @inheritdoc */\n   setAttributes(attributes) {\n    Object.keys(attributes).forEach(key => this.setAttribute(key, attributes[key]));\n    return this;\n  }\n\n  /**\n   * This should generally not be used,\n   * but we need it for browser tracing where we want to adjust the start time afterwards.\n   * USE THIS WITH CAUTION!\n   *\n   * @hidden\n   * @internal\n   */\n   updateStartTime(timeInput) {\n    this._startTime = spanTimeInputToSeconds(timeInput);\n  }\n\n  /**\n   * @inheritDoc\n   */\n   setStatus(value) {\n    this._status = value;\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n   updateName(name) {\n    this._name = name;\n    this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, 'custom');\n    return this;\n  }\n\n  /** @inheritdoc */\n   end(endTimestamp) {\n    // If already ended, skip\n    if (this._endTime) {\n      return;\n    }\n\n    this._endTime = spanTimeInputToSeconds(endTimestamp);\n    logSpanEnd(this);\n\n    this._onSpanEnded();\n  }\n\n  /**\n   * Get JSON representation of this span.\n   *\n   * @hidden\n   * @internal This method is purely for internal purposes and should not be used outside\n   * of SDK code. If you need to get a JSON representation of a span,\n   * use `spanToJSON(span)` instead.\n   */\n   getSpanJSON() {\n    return {\n      data: this._attributes,\n      description: this._name,\n      op: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n      parent_span_id: this._parentSpanId,\n      span_id: this._spanId,\n      start_timestamp: this._startTime,\n      status: getStatusMessage(this._status),\n      timestamp: this._endTime,\n      trace_id: this._traceId,\n      origin: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] ,\n      profile_id: this._attributes[SEMANTIC_ATTRIBUTE_PROFILE_ID] ,\n      exclusive_time: this._attributes[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME] ,\n      measurements: timedEventsToMeasurements(this._events),\n      is_segment: (this._isStandaloneSpan && getRootSpan(this) === this) || undefined,\n      segment_id: this._isStandaloneSpan ? getRootSpan(this).spanContext().spanId : undefined,\n      links: convertSpanLinksForEnvelope(this._links),\n    };\n  }\n\n  /** @inheritdoc */\n   isRecording() {\n    return !this._endTime && !!this._sampled;\n  }\n\n  /**\n   * @inheritdoc\n   */\n   addEvent(\n    name,\n    attributesOrStartTime,\n    startTime,\n  ) {\n    DEBUG_BUILD && debug.log('[Tracing] Adding an event to span:', name);\n\n    const time = isSpanTimeInput(attributesOrStartTime) ? attributesOrStartTime : startTime || timestampInSeconds();\n    const attributes = isSpanTimeInput(attributesOrStartTime) ? {} : attributesOrStartTime || {};\n\n    const event = {\n      name,\n      time: spanTimeInputToSeconds(time),\n      attributes,\n    };\n\n    this._events.push(event);\n\n    return this;\n  }\n\n  /**\n   * This method should generally not be used,\n   * but for now we need a way to publicly check if the `_isStandaloneSpan` flag is set.\n   * USE THIS WITH CAUTION!\n   * @internal\n   * @hidden\n   * @experimental\n   */\n   isStandaloneSpan() {\n    return !!this._isStandaloneSpan;\n  }\n\n  /** Emit `spanEnd` when the span is ended. */\n   _onSpanEnded() {\n    const client = getClient();\n    if (client) {\n      client.emit('spanEnd', this);\n    }\n\n    // A segment span is basically the root span of a local span tree.\n    // So for now, this is either what we previously refer to as the root span,\n    // or a standalone span.\n    const isSegmentSpan = this._isStandaloneSpan || this === getRootSpan(this);\n\n    if (!isSegmentSpan) {\n      return;\n    }\n\n    // if this is a standalone span, we send it immediately\n    if (this._isStandaloneSpan) {\n      if (this._sampled) {\n        sendSpanEnvelope(createSpanEnvelope([this], client));\n      } else {\n        DEBUG_BUILD &&\n          debug.log('[Tracing] Discarding standalone span because its trace was not chosen to be sampled.');\n        if (client) {\n          client.recordDroppedEvent('sample_rate', 'span');\n        }\n      }\n      return;\n    }\n\n    const transactionEvent = this._convertSpanToTransaction();\n    if (transactionEvent) {\n      const scope = getCapturedScopesOnSpan(this).scope || getCurrentScope();\n      scope.captureEvent(transactionEvent);\n    }\n  }\n\n  /**\n   * Finish the transaction & prepare the event to send to Sentry.\n   */\n   _convertSpanToTransaction() {\n    // We can only convert finished spans\n    if (!isFullFinishedSpan(spanToJSON(this))) {\n      return undefined;\n    }\n\n    if (!this._name) {\n      DEBUG_BUILD && debug.warn('Transaction has no name, falling back to ``.');\n      this._name = '';\n    }\n\n    const { scope: capturedSpanScope, isolationScope: capturedSpanIsolationScope } = getCapturedScopesOnSpan(this);\n\n    const normalizedRequest = capturedSpanScope?.getScopeData().sdkProcessingMetadata?.normalizedRequest;\n\n    if (this._sampled !== true) {\n      return undefined;\n    }\n\n    // The transaction span itself as well as any potential standalone spans should be filtered out\n    const finishedSpans = getSpanDescendants(this).filter(span => span !== this && !isStandaloneSpan(span));\n\n    const spans = finishedSpans.map(span => spanToJSON(span)).filter(isFullFinishedSpan);\n\n    const source = this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n    // remove internal root span attributes we don't need to send.\n    /* eslint-disable @typescript-eslint/no-dynamic-delete */\n    delete this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n    spans.forEach(span => {\n      delete span.data[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n    });\n    // eslint-enabled-next-line @typescript-eslint/no-dynamic-delete\n\n    const transaction = {\n      contexts: {\n        trace: spanToTransactionTraceContext(this),\n      },\n      spans:\n        // spans.sort() mutates the array, but `spans` is already a copy so we can safely do this here\n        // we do not use spans anymore after this point\n        spans.length > MAX_SPAN_COUNT\n          ? spans.sort((a, b) => a.start_timestamp - b.start_timestamp).slice(0, MAX_SPAN_COUNT)\n          : spans,\n      start_timestamp: this._startTime,\n      timestamp: this._endTime,\n      transaction: this._name,\n      type: 'transaction',\n      sdkProcessingMetadata: {\n        capturedSpanScope,\n        capturedSpanIsolationScope,\n        dynamicSamplingContext: getDynamicSamplingContextFromSpan(this),\n      },\n      request: normalizedRequest,\n      ...(source && {\n        transaction_info: {\n          source,\n        },\n      }),\n    };\n\n    const measurements = timedEventsToMeasurements(this._events);\n    const hasMeasurements = measurements && Object.keys(measurements).length;\n\n    if (hasMeasurements) {\n      DEBUG_BUILD &&\n        debug.log(\n          '[Measurements] Adding measurements to transaction event',\n          JSON.stringify(measurements, undefined, 2),\n        );\n      transaction.measurements = measurements;\n    }\n\n    return transaction;\n  }\n}\n\nfunction isSpanTimeInput(value) {\n  return (value && typeof value === 'number') || value instanceof Date || Array.isArray(value);\n}\n\n// We want to filter out any incomplete SpanJSON objects\nfunction isFullFinishedSpan(input) {\n  return !!input.start_timestamp && !!input.timestamp && !!input.span_id && !!input.trace_id;\n}\n\n/** `SentrySpan`s can be sent as a standalone span rather than belonging to a transaction */\nfunction isStandaloneSpan(span) {\n  return span instanceof SentrySpan && span.isStandaloneSpan();\n}\n\n/**\n * Sends a `SpanEnvelope`.\n *\n * Note: If the envelope's spans are dropped, e.g. via `beforeSendSpan`,\n * the envelope will not be sent either.\n */\nfunction sendSpanEnvelope(envelope) {\n  const client = getClient();\n  if (!client) {\n    return;\n  }\n\n  const spanItems = envelope[1];\n  if (!spanItems || spanItems.length === 0) {\n    client.recordDroppedEvent('before_send', 'span');\n    return;\n  }\n\n  // sendEnvelope should not throw\n  // eslint-disable-next-line @typescript-eslint/no-floating-promises\n  client.sendEnvelope(envelope);\n}\n\nexport { SentrySpan };\n//# sourceMappingURL=sentrySpan.js.map\n",
-    "import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getClient, withScope, getCurrentScope, getIsolationScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { baggageHeaderToDynamicSamplingContext } from '../utils/baggage.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { handleCallbackErrors } from '../utils/handleCallbackErrors.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { parseSampleRate } from '../utils/parseSampleRate.js';\nimport { generateTraceId } from '../utils/propagationContext.js';\nimport { safeMathRandom } from '../utils/randomSafeContext.js';\nimport { _getSpanForScope, _setSpanForScope } from '../utils/spanOnScope.js';\nimport { spanTimeInputToSeconds, getRootSpan, addChildSpanToSpan, spanIsSampled, spanToJSON } from '../utils/spanUtils.js';\nimport { shouldContinueTrace, propagationContextFromHeaders } from '../utils/tracing.js';\nimport { getDynamicSamplingContextFromSpan, freezeDscOnSpan } from './dynamicSamplingContext.js';\nimport { logSpanStart } from './logSpans.js';\nimport { sampleSpan } from './sampling.js';\nimport { SentryNonRecordingSpan } from './sentryNonRecordingSpan.js';\nimport { SentrySpan } from './sentrySpan.js';\nimport { SPAN_STATUS_ERROR } from './spanstatus.js';\nimport { setCapturedScopesOnSpan } from './utils.js';\n\n/* eslint-disable max-lines */\n\n\nconst SUPPRESS_TRACING_KEY = '__SENTRY_SUPPRESS_TRACING__';\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * If you want to create a span that is not set as active, use {@link startInactiveSpan}.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startSpan(options, callback) {\n  const acs = getAcs();\n  if (acs.startSpan) {\n    return acs.startSpan(options, callback);\n  }\n\n  const spanArguments = parseSentrySpanArguments(options);\n  const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n\n  // We still need to fork a potentially passed scope, as we set the active span on it\n  // and we need to ensure that it is cleaned up properly once the span ends.\n  const customForkedScope = customScope?.clone();\n\n  return withScope(customForkedScope, () => {\n    // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n    const wrapper = getActiveSpanWrapper(customParentSpan);\n\n    return wrapper(() => {\n      const scope = getCurrentScope();\n      const parentSpan = getParentSpan(scope, customParentSpan);\n\n      const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n      const activeSpan = shouldSkipSpan\n        ? new SentryNonRecordingSpan()\n        : createChildOrRootSpan({\n            parentSpan,\n            spanArguments,\n            forceTransaction,\n            scope,\n          });\n\n      _setSpanForScope(scope, activeSpan);\n\n      return handleCallbackErrors(\n        () => callback(activeSpan),\n        () => {\n          // Only update the span status if it hasn't been changed yet, and the span is not yet finished\n          const { status } = spanToJSON(activeSpan);\n          if (activeSpan.isRecording() && (!status || status === 'ok')) {\n            activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n          }\n        },\n        () => {\n          activeSpan.end();\n        },\n      );\n    });\n  });\n}\n\n/**\n * Similar to `Sentry.startSpan`. Wraps a function with a transaction/span, but does not finish the span\n * after the function is done automatically. Use `span.end()` to end the span.\n *\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startSpanManual(options, callback) {\n  const acs = getAcs();\n  if (acs.startSpanManual) {\n    return acs.startSpanManual(options, callback);\n  }\n\n  const spanArguments = parseSentrySpanArguments(options);\n  const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n\n  const customForkedScope = customScope?.clone();\n\n  return withScope(customForkedScope, () => {\n    // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n    const wrapper = getActiveSpanWrapper(customParentSpan);\n\n    return wrapper(() => {\n      const scope = getCurrentScope();\n      const parentSpan = getParentSpan(scope, customParentSpan);\n\n      const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n      const activeSpan = shouldSkipSpan\n        ? new SentryNonRecordingSpan()\n        : createChildOrRootSpan({\n            parentSpan,\n            spanArguments,\n            forceTransaction,\n            scope,\n          });\n\n      _setSpanForScope(scope, activeSpan);\n\n      return handleCallbackErrors(\n        // We pass the `finish` function to the callback, so the user can finish the span manually\n        // this is mainly here for historic purposes because previously, we instructed users to call\n        // `finish` instead of `span.end()` to also clean up the scope. Nowadays, calling `span.end()`\n        // or `finish` has the same effect and we simply leave it here to avoid breaking user code.\n        () => callback(activeSpan, () => activeSpan.end()),\n        () => {\n          // Only update the span status if it hasn't been changed yet, and the span is not yet finished\n          const { status } = spanToJSON(activeSpan);\n          if (activeSpan.isRecording() && (!status || status === 'ok')) {\n            activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n          }\n        },\n      );\n    });\n  });\n}\n\n/**\n * Creates a span. This span is not set as active, so will not get automatic instrumentation spans\n * as children or be able to be accessed via `Sentry.getActiveSpan()`.\n *\n * If you want to create a span that is set as active, use {@link startSpan}.\n *\n * This function will always return a span,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startInactiveSpan(options) {\n  const acs = getAcs();\n  if (acs.startInactiveSpan) {\n    return acs.startInactiveSpan(options);\n  }\n\n  const spanArguments = parseSentrySpanArguments(options);\n  const { forceTransaction, parentSpan: customParentSpan } = options;\n\n  // If `options.scope` is defined, we use this as as a wrapper,\n  // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n  const wrapper = options.scope\n    ? (callback) => withScope(options.scope, callback)\n    : customParentSpan !== undefined\n      ? (callback) => withActiveSpan(customParentSpan, callback)\n      : (callback) => callback();\n\n  return wrapper(() => {\n    const scope = getCurrentScope();\n    const parentSpan = getParentSpan(scope, customParentSpan);\n\n    const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n\n    if (shouldSkipSpan) {\n      return new SentryNonRecordingSpan();\n    }\n\n    return createChildOrRootSpan({\n      parentSpan,\n      spanArguments,\n      forceTransaction,\n      scope,\n    });\n  });\n}\n\n/**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers, or in the browser from ``\n * and `` HTML tags.\n *\n * Spans started with `startSpan`, `startSpanManual` and `startInactiveSpan`, within the callback will automatically\n * be attached to the incoming trace.\n */\nconst continueTrace = (\n  options\n\n,\n  callback,\n) => {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (acs.continueTrace) {\n    return acs.continueTrace(options, callback);\n  }\n\n  const { sentryTrace, baggage } = options;\n\n  const client = getClient();\n  const incomingDsc = baggageHeaderToDynamicSamplingContext(baggage);\n  if (client && !shouldContinueTrace(client, incomingDsc?.org_id)) {\n    return startNewTrace(callback);\n  }\n\n  return withScope(scope => {\n    const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n    scope.setPropagationContext(propagationContext);\n    _setSpanForScope(scope, undefined);\n    return callback();\n  });\n};\n\n/**\n * Forks the current scope and sets the provided span as active span in the context of the provided callback. Can be\n * passed `null` to start an entirely new span tree.\n *\n * @param span Spans started in the context of the provided callback will be children of this span. If `null` is passed,\n * spans started within the callback will not be attached to a parent span.\n * @param callback Execution context in which the provided span will be active. Is passed the newly forked scope.\n * @returns the value returned from the provided callback function.\n */\nfunction withActiveSpan(span, callback) {\n  const acs = getAcs();\n  if (acs.withActiveSpan) {\n    return acs.withActiveSpan(span, callback);\n  }\n\n  return withScope(scope => {\n    _setSpanForScope(scope, span || undefined);\n    return callback(scope);\n  });\n}\n\n/** Suppress tracing in the given callback, ensuring no spans are generated inside of it. */\nfunction suppressTracing(callback) {\n  const acs = getAcs();\n\n  if (acs.suppressTracing) {\n    return acs.suppressTracing(callback);\n  }\n\n  return withScope(scope => {\n    // Note: We do not wait for the callback to finish before we reset the metadata\n    // the reason for this is that otherwise, in the browser this can lead to very weird behavior\n    // as there is only a single top scope, if the callback takes longer to finish,\n    // other, unrelated spans may also be suppressed, which we do not want\n    // so instead, we only suppress tracing synchronoysly in the browser\n    scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: true });\n    const res = callback();\n    scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: undefined });\n    return res;\n  });\n}\n\n/**\n * Starts a new trace for the duration of the provided callback. Spans started within the\n * callback will be part of the new trace instead of a potentially previously started trace.\n *\n * Important: Only use this function if you want to override the default trace lifetime and\n * propagation mechanism of the SDK for the duration and scope of the provided callback.\n * The newly created trace will also be the root of a new distributed trace, for example if\n * you make http requests within the callback.\n * This function might be useful if the operation you want to instrument should not be part\n * of a potentially ongoing trace.\n *\n * Default behavior:\n * - Server-side: A new trace is started for each incoming request.\n * - Browser: A new trace is started for each page our route. Navigating to a new route\n *            or page will automatically create a new trace.\n */\nfunction startNewTrace(callback) {\n  return withScope(scope => {\n    scope.setPropagationContext({\n      traceId: generateTraceId(),\n      sampleRand: safeMathRandom(),\n    });\n    DEBUG_BUILD && debug.log(`Starting a new trace with id ${scope.getPropagationContext().traceId}`);\n    return withActiveSpan(null, callback);\n  });\n}\n\nfunction createChildOrRootSpan({\n  parentSpan,\n  spanArguments,\n  forceTransaction,\n  scope,\n}\n\n) {\n  if (!hasSpansEnabled()) {\n    const span = new SentryNonRecordingSpan();\n\n    // If this is a root span, we ensure to freeze a DSC\n    // So we can have at least partial data here\n    if (forceTransaction || !parentSpan) {\n      const dsc = {\n        sampled: 'false',\n        sample_rate: '0',\n        transaction: spanArguments.name,\n        ...getDynamicSamplingContextFromSpan(span),\n      } ;\n      freezeDscOnSpan(span, dsc);\n    }\n\n    return span;\n  }\n\n  const isolationScope = getIsolationScope();\n\n  let span;\n  if (parentSpan && !forceTransaction) {\n    span = _startChildSpan(parentSpan, scope, spanArguments);\n    addChildSpanToSpan(parentSpan, span);\n  } else if (parentSpan) {\n    // If we forced a transaction but have a parent span, make sure to continue from the parent span, not the scope\n    const dsc = getDynamicSamplingContextFromSpan(parentSpan);\n    const { traceId, spanId: parentSpanId } = parentSpan.spanContext();\n    const parentSampled = spanIsSampled(parentSpan);\n\n    span = _startRootSpan(\n      {\n        traceId,\n        parentSpanId,\n        ...spanArguments,\n      },\n      scope,\n      parentSampled,\n    );\n\n    freezeDscOnSpan(span, dsc);\n  } else {\n    const {\n      traceId,\n      dsc,\n      parentSpanId,\n      sampled: parentSampled,\n    } = {\n      ...isolationScope.getPropagationContext(),\n      ...scope.getPropagationContext(),\n    };\n\n    span = _startRootSpan(\n      {\n        traceId,\n        parentSpanId,\n        ...spanArguments,\n      },\n      scope,\n      parentSampled,\n    );\n\n    if (dsc) {\n      freezeDscOnSpan(span, dsc);\n    }\n  }\n\n  logSpanStart(span);\n\n  setCapturedScopesOnSpan(span, scope, isolationScope);\n\n  return span;\n}\n\n/**\n * This converts StartSpanOptions to SentrySpanArguments.\n * For the most part (for now) we accept the same options,\n * but some of them need to be transformed.\n */\nfunction parseSentrySpanArguments(options) {\n  const exp = options.experimental || {};\n  const initialCtx = {\n    isStandalone: exp.standalone,\n    ...options,\n  };\n\n  if (options.startTime) {\n    const ctx = { ...initialCtx };\n    ctx.startTimestamp = spanTimeInputToSeconds(options.startTime);\n    delete ctx.startTime;\n    return ctx;\n  }\n\n  return initialCtx;\n}\n\nfunction getAcs() {\n  const carrier = getMainCarrier();\n  return getAsyncContextStrategy(carrier);\n}\n\nfunction _startRootSpan(spanArguments, scope, parentSampled) {\n  const client = getClient();\n  const options = client?.getOptions() || {};\n\n  const { name = '' } = spanArguments;\n\n  const mutableSpanSamplingData = { spanAttributes: { ...spanArguments.attributes }, spanName: name, parentSampled };\n\n  // we don't care about the decision for the moment; this is just a placeholder\n  client?.emit('beforeSampling', mutableSpanSamplingData, { decision: false });\n\n  // If hook consumers override the parentSampled flag, we will use that value instead of the actual one\n  const finalParentSampled = mutableSpanSamplingData.parentSampled ?? parentSampled;\n  const finalAttributes = mutableSpanSamplingData.spanAttributes;\n\n  const currentPropagationContext = scope.getPropagationContext();\n  const [sampled, sampleRate, localSampleRateWasApplied] = scope.getScopeData().sdkProcessingMetadata[\n    SUPPRESS_TRACING_KEY\n  ]\n    ? [false]\n    : sampleSpan(\n        options,\n        {\n          name,\n          parentSampled: finalParentSampled,\n          attributes: finalAttributes,\n          parentSampleRate: parseSampleRate(currentPropagationContext.dsc?.sample_rate),\n        },\n        currentPropagationContext.sampleRand,\n      );\n\n  const rootSpan = new SentrySpan({\n    ...spanArguments,\n    attributes: {\n      [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'custom',\n      [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]:\n        sampleRate !== undefined && localSampleRateWasApplied ? sampleRate : undefined,\n      ...finalAttributes,\n    },\n    sampled,\n  });\n\n  if (!sampled && client) {\n    DEBUG_BUILD && debug.log('[Tracing] Discarding root span because its trace was not chosen to be sampled.');\n    client.recordDroppedEvent('sample_rate', 'transaction');\n  }\n\n  if (client) {\n    client.emit('spanStart', rootSpan);\n  }\n\n  return rootSpan;\n}\n\n/**\n * Creates a new `Span` while setting the current `Span.id` as `parentSpanId`.\n * This inherits the sampling decision from the parent span.\n */\nfunction _startChildSpan(parentSpan, scope, spanArguments) {\n  const { spanId, traceId } = parentSpan.spanContext();\n  const sampled = scope.getScopeData().sdkProcessingMetadata[SUPPRESS_TRACING_KEY] ? false : spanIsSampled(parentSpan);\n\n  const childSpan = sampled\n    ? new SentrySpan({\n        ...spanArguments,\n        parentSpanId: spanId,\n        traceId,\n        sampled,\n      })\n    : new SentryNonRecordingSpan({ traceId });\n\n  addChildSpanToSpan(parentSpan, childSpan);\n\n  const client = getClient();\n  if (client) {\n    client.emit('spanStart', childSpan);\n    // If it has an endTimestamp, it's already ended\n    if (spanArguments.endTimestamp) {\n      client.emit('spanEnd', childSpan);\n    }\n  }\n\n  return childSpan;\n}\n\nfunction getParentSpan(scope, customParentSpan) {\n  // always use the passed in span directly\n  if (customParentSpan) {\n    return customParentSpan ;\n  }\n\n  // This is different from `undefined` as it means the user explicitly wants no parent span\n  if (customParentSpan === null) {\n    return undefined;\n  }\n\n  const span = _getSpanForScope(scope) ;\n\n  if (!span) {\n    return undefined;\n  }\n\n  const client = getClient();\n  const options = client ? client.getOptions() : {};\n  if (options.parentSpanIsAlwaysRootSpan) {\n    return getRootSpan(span) ;\n  }\n\n  return span;\n}\n\nfunction getActiveSpanWrapper(parentSpan) {\n  return parentSpan !== undefined\n    ? (callback) => {\n        return withActiveSpan(parentSpan, callback);\n      }\n    : (callback) => callback();\n}\n\nexport { continueTrace, startInactiveSpan, startNewTrace, startSpan, startSpanManual, suppressTracing, withActiveSpan };\n//# sourceMappingURL=trace.js.map\n",
-    "import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/** SyncPromise internal states */\nconst STATE_PENDING = 0;\nconst STATE_RESOLVED = 1;\nconst STATE_REJECTED = 2;\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n  return new SyncPromise(resolve => {\n    resolve(value);\n  });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n  return new SyncPromise((_, reject) => {\n    reject(reason);\n  });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n\n   constructor(executor) {\n    this._state = STATE_PENDING;\n    this._handlers = [];\n\n    this._runExecutor(executor);\n  }\n\n  /** @inheritdoc */\n   then(\n    onfulfilled,\n    onrejected,\n  ) {\n    return new SyncPromise((resolve, reject) => {\n      this._handlers.push([\n        false,\n        result => {\n          if (!onfulfilled) {\n            // TODO: ¯\\_(ツ)_/¯\n            // TODO: FIXME\n            resolve(result );\n          } else {\n            try {\n              resolve(onfulfilled(result));\n            } catch (e) {\n              reject(e);\n            }\n          }\n        },\n        reason => {\n          if (!onrejected) {\n            reject(reason);\n          } else {\n            try {\n              resolve(onrejected(reason));\n            } catch (e) {\n              reject(e);\n            }\n          }\n        },\n      ]);\n      this._executeHandlers();\n    });\n  }\n\n  /** @inheritdoc */\n   catch(\n    onrejected,\n  ) {\n    return this.then(val => val, onrejected);\n  }\n\n  /** @inheritdoc */\n   finally(onfinally) {\n    return new SyncPromise((resolve, reject) => {\n      let val;\n      let isRejected;\n\n      return this.then(\n        value => {\n          isRejected = false;\n          val = value;\n          if (onfinally) {\n            onfinally();\n          }\n        },\n        reason => {\n          isRejected = true;\n          val = reason;\n          if (onfinally) {\n            onfinally();\n          }\n        },\n      ).then(() => {\n        if (isRejected) {\n          reject(val);\n          return;\n        }\n\n        resolve(val );\n      });\n    });\n  }\n\n  /** Excute the resolve/reject handlers. */\n   _executeHandlers() {\n    if (this._state === STATE_PENDING) {\n      return;\n    }\n\n    const cachedHandlers = this._handlers.slice();\n    this._handlers = [];\n\n    cachedHandlers.forEach(handler => {\n      if (handler[0]) {\n        return;\n      }\n\n      if (this._state === STATE_RESOLVED) {\n        handler[1](this._value );\n      }\n\n      if (this._state === STATE_REJECTED) {\n        handler[2](this._value);\n      }\n\n      handler[0] = true;\n    });\n  }\n\n  /** Run the executor for the SyncPromise. */\n   _runExecutor(executor) {\n    const setResult = (state, value) => {\n      if (this._state !== STATE_PENDING) {\n        return;\n      }\n\n      if (isThenable(value)) {\n        void (value ).then(resolve, reject);\n        return;\n      }\n\n      this._state = state;\n      this._value = value;\n\n      this._executeHandlers();\n    };\n\n    const resolve = (value) => {\n      setResult(STATE_RESOLVED, value);\n    };\n\n    const reject = (reason) => {\n      setResult(STATE_REJECTED, reason);\n    };\n\n    try {\n      executor(resolve, reject);\n    } catch (e) {\n      reject(e);\n    }\n  }\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n",
-    "import { DEBUG_BUILD } from './debug-build.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isThenable } from './utils/is.js';\nimport { resolvedSyncPromise, rejectedSyncPromise } from './utils/syncpromise.js';\n\n/**\n * Process an array of event processors, returning the processed event (or `null` if the event was dropped).\n */\nfunction notifyEventProcessors(\n  processors,\n  event,\n  hint,\n  index = 0,\n) {\n  try {\n    const result = _notifyEventProcessors(event, hint, processors, index);\n    return isThenable(result) ? result : resolvedSyncPromise(result);\n  } catch (error) {\n    return rejectedSyncPromise(error);\n  }\n}\n\nfunction _notifyEventProcessors(\n  event,\n  hint,\n  processors,\n  index,\n) {\n  const processor = processors[index];\n\n  if (!event || !processor) {\n    return event;\n  }\n\n  const result = processor({ ...event }, hint);\n\n  DEBUG_BUILD && result === null && debug.log(`Event processor \"${processor.id || '?'}\" dropped event`);\n\n  if (isThenable(result)) {\n    return result.then(final => _notifyEventProcessors(final, hint, processors, index + 1));\n  }\n\n  return _notifyEventProcessors(result, hint, processors, index + 1);\n}\n\nexport { notifyEventProcessors };\n//# sourceMappingURL=eventProcessors.js.map\n",
-    "import { normalizeStackTracePath } from './stacktrace.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nlet parsedStackResults;\nlet lastSentryKeysCount;\nlet lastNativeKeysCount;\nlet cachedFilenameDebugIds;\n\n/**\n * Returns a map of filenames to debug identifiers.\n * Supports both proprietary _sentryDebugIds and native _debugIds (e.g., from Vercel) formats.\n */\nfunction getFilenameToDebugIdMap(stackParser) {\n  const sentryDebugIdMap = GLOBAL_OBJ._sentryDebugIds;\n  const nativeDebugIdMap = GLOBAL_OBJ._debugIds;\n\n  if (!sentryDebugIdMap && !nativeDebugIdMap) {\n    return {};\n  }\n\n  const sentryDebugIdKeys = sentryDebugIdMap ? Object.keys(sentryDebugIdMap) : [];\n  const nativeDebugIdKeys = nativeDebugIdMap ? Object.keys(nativeDebugIdMap) : [];\n\n  // If the count of registered globals hasn't changed since the last call, we\n  // can just return the cached result.\n  if (\n    cachedFilenameDebugIds &&\n    sentryDebugIdKeys.length === lastSentryKeysCount &&\n    nativeDebugIdKeys.length === lastNativeKeysCount\n  ) {\n    return cachedFilenameDebugIds;\n  }\n\n  lastSentryKeysCount = sentryDebugIdKeys.length;\n  lastNativeKeysCount = nativeDebugIdKeys.length;\n\n  // Build a map of filename -> debug_id from both sources\n  cachedFilenameDebugIds = {};\n\n  if (!parsedStackResults) {\n    parsedStackResults = {};\n  }\n\n  const processDebugIds = (debugIdKeys, debugIdMap) => {\n    for (const key of debugIdKeys) {\n      const debugId = debugIdMap[key];\n      const result = parsedStackResults?.[key];\n\n      if (result && cachedFilenameDebugIds && debugId) {\n        // Use cached filename but update with current debug ID\n        cachedFilenameDebugIds[result[0]] = debugId;\n        // Update cached result with new debug ID\n        if (parsedStackResults) {\n          parsedStackResults[key] = [result[0], debugId];\n        }\n      } else if (debugId) {\n        const parsedStack = stackParser(key);\n\n        for (let i = parsedStack.length - 1; i >= 0; i--) {\n          const stackFrame = parsedStack[i];\n          const filename = stackFrame?.filename;\n\n          if (filename && cachedFilenameDebugIds && parsedStackResults) {\n            cachedFilenameDebugIds[filename] = debugId;\n            parsedStackResults[key] = [filename, debugId];\n            break;\n          }\n        }\n      }\n    }\n  };\n\n  if (sentryDebugIdMap) {\n    processDebugIds(sentryDebugIdKeys, sentryDebugIdMap);\n  }\n\n  // Native _debugIds will override _sentryDebugIds if same file\n  if (nativeDebugIdMap) {\n    processDebugIds(nativeDebugIdKeys, nativeDebugIdMap);\n  }\n\n  return cachedFilenameDebugIds;\n}\n\n/**\n * Returns a list of debug images for the given resources.\n */\nfunction getDebugImagesForResources(\n  stackParser,\n  resource_paths,\n) {\n  const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n\n  if (!filenameDebugIdMap) {\n    return [];\n  }\n\n  const images = [];\n  for (const path of resource_paths) {\n    const normalizedPath = normalizeStackTracePath(path);\n    if (normalizedPath && filenameDebugIdMap[normalizedPath]) {\n      images.push({\n        type: 'sourcemap',\n        code_file: path,\n        debug_id: filenameDebugIdMap[normalizedPath],\n      });\n    }\n  }\n\n  return images;\n}\n\nexport { getDebugImagesForResources, getFilenameToDebugIdMap };\n//# sourceMappingURL=debug-ids.js.map\n",
-    "import { getGlobalScope } from '../currentScopes.js';\nimport { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext.js';\nimport { merge } from './merge.js';\nimport { spanToTraceContext, getRootSpan, spanToJSON } from './spanUtils.js';\n\n/**\n * Applies data from the scope to the event and runs all event processors on it.\n */\nfunction applyScopeDataToEvent(event, data) {\n  const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n\n  // Apply general data\n  applyDataToEvent(event, data);\n\n  // We want to set the trace context for normal events only if there isn't already\n  // a trace context on the event. There is a product feature in place where we link\n  // errors with transaction and it relies on that.\n  if (span) {\n    applySpanToEvent(event, span);\n  }\n\n  applyFingerprintToEvent(event, fingerprint);\n  applyBreadcrumbsToEvent(event, breadcrumbs);\n  applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\n\n/** Merge data of two scopes together. */\nfunction mergeScopeData(data, mergeData) {\n  const {\n    extra,\n    tags,\n    attributes,\n    user,\n    contexts,\n    level,\n    sdkProcessingMetadata,\n    breadcrumbs,\n    fingerprint,\n    eventProcessors,\n    attachments,\n    propagationContext,\n    transactionName,\n    span,\n  } = mergeData;\n\n  mergeAndOverwriteScopeData(data, 'extra', extra);\n  mergeAndOverwriteScopeData(data, 'tags', tags);\n  mergeAndOverwriteScopeData(data, 'attributes', attributes);\n  mergeAndOverwriteScopeData(data, 'user', user);\n  mergeAndOverwriteScopeData(data, 'contexts', contexts);\n\n  data.sdkProcessingMetadata = merge(data.sdkProcessingMetadata, sdkProcessingMetadata, 2);\n\n  if (level) {\n    data.level = level;\n  }\n\n  if (transactionName) {\n    data.transactionName = transactionName;\n  }\n\n  if (span) {\n    data.span = span;\n  }\n\n  if (breadcrumbs.length) {\n    data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n  }\n\n  if (fingerprint.length) {\n    data.fingerprint = [...data.fingerprint, ...fingerprint];\n  }\n\n  if (eventProcessors.length) {\n    data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n  }\n\n  if (attachments.length) {\n    data.attachments = [...data.attachments, ...attachments];\n  }\n\n  data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\n\n/**\n * Merges certain scope data. Undefined values will overwrite any existing values.\n * Exported only for tests.\n */\nfunction mergeAndOverwriteScopeData\n\n(data, prop, mergeVal) {\n  data[prop] = merge(data[prop], mergeVal, 1);\n}\n\n/**\n * Get the scope data for the current scope after merging with the\n * global scope and isolation scope.\n *\n * @param currentScope - The current scope.\n * @returns The scope data.\n */\nfunction getCombinedScopeData(isolationScope, currentScope) {\n  const scopeData = getGlobalScope().getScopeData();\n  isolationScope && mergeScopeData(scopeData, isolationScope.getScopeData());\n  currentScope && mergeScopeData(scopeData, currentScope.getScopeData());\n  return scopeData;\n}\n\nfunction applyDataToEvent(event, data) {\n  const { extra, tags, user, contexts, level, transactionName } = data;\n\n  if (Object.keys(extra).length) {\n    event.extra = { ...extra, ...event.extra };\n  }\n\n  if (Object.keys(tags).length) {\n    event.tags = { ...tags, ...event.tags };\n  }\n\n  if (Object.keys(user).length) {\n    event.user = { ...user, ...event.user };\n  }\n\n  if (Object.keys(contexts).length) {\n    event.contexts = { ...contexts, ...event.contexts };\n  }\n\n  if (level) {\n    event.level = level;\n  }\n\n  // transaction events get their `transaction` from the root span name\n  if (transactionName && event.type !== 'transaction') {\n    event.transaction = transactionName;\n  }\n}\n\nfunction applyBreadcrumbsToEvent(event, breadcrumbs) {\n  const mergedBreadcrumbs = [...(event.breadcrumbs || []), ...breadcrumbs];\n  event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : undefined;\n}\n\nfunction applySdkMetadataToEvent(event, sdkProcessingMetadata) {\n  event.sdkProcessingMetadata = {\n    ...event.sdkProcessingMetadata,\n    ...sdkProcessingMetadata,\n  };\n}\n\nfunction applySpanToEvent(event, span) {\n  event.contexts = {\n    trace: spanToTraceContext(span),\n    ...event.contexts,\n  };\n\n  event.sdkProcessingMetadata = {\n    dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n    ...event.sdkProcessingMetadata,\n  };\n\n  const rootSpan = getRootSpan(span);\n  const transactionName = spanToJSON(rootSpan).description;\n  if (transactionName && !event.transaction && event.type === 'transaction') {\n    event.transaction = transactionName;\n  }\n}\n\n/**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\nfunction applyFingerprintToEvent(event, fingerprint) {\n  // Make sure it's an array first and we actually have something in place\n  event.fingerprint = event.fingerprint\n    ? Array.isArray(event.fingerprint)\n      ? event.fingerprint\n      : [event.fingerprint]\n    : [];\n\n  // If we have something on the scope, then merge it with event\n  if (fingerprint) {\n    event.fingerprint = event.fingerprint.concat(fingerprint);\n  }\n\n  // If we have no data at all, remove empty array default\n  if (!event.fingerprint.length) {\n    delete event.fingerprint;\n  }\n}\n\nexport { applyScopeDataToEvent, getCombinedScopeData, mergeAndOverwriteScopeData, mergeScopeData };\n//# sourceMappingURL=scopeData.js.map\n",
-    "import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { notifyEventProcessors } from '../eventProcessors.js';\nimport { Scope } from '../scope.js';\nimport { getFilenameToDebugIdMap } from './debug-ids.js';\nimport { uuid4, addExceptionMechanism } from './misc.js';\nimport { normalize } from './normalize.js';\nimport { getCombinedScopeData, applyScopeDataToEvent } from './scopeData.js';\nimport { truncate } from './string.js';\nimport { resolvedSyncPromise } from './syncpromise.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * This type makes sure that we get either a CaptureContext, OR an EventHint.\n * It does not allow mixing them, which could lead to unexpected outcomes, e.g. this is disallowed:\n * { user: { id: '123' }, mechanism: { handled: false } }\n */\n\n/**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n * @hidden\n */\nfunction prepareEvent(\n  options,\n  event,\n  hint,\n  scope,\n  client,\n  isolationScope,\n) {\n  const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = options;\n  const prepared = {\n    ...event,\n    event_id: event.event_id || hint.event_id || uuid4(),\n    timestamp: event.timestamp || dateTimestampInSeconds(),\n  };\n  const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n  applyClientOptions(prepared, options);\n  applyIntegrationsMetadata(prepared, integrations);\n\n  if (client) {\n    client.emit('applyFrameMetadata', event);\n  }\n\n  // Only put debug IDs onto frames for error events.\n  if (event.type === undefined) {\n    applyDebugIds(prepared, options.stackParser);\n  }\n\n  // If we have scope given to us, use it as the base for further modifications.\n  // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n  const finalScope = getFinalScope(scope, hint.captureContext);\n\n  if (hint.mechanism) {\n    addExceptionMechanism(prepared, hint.mechanism);\n  }\n\n  const clientEventProcessors = client ? client.getEventProcessors() : [];\n\n  // This should be the last thing called, since we want that\n  // {@link Scope.addEventProcessor} gets the finished prepared event.\n  // Merge scope data together\n  const data = getCombinedScopeData(isolationScope, finalScope);\n\n  const attachments = [...(hint.attachments || []), ...data.attachments];\n  if (attachments.length) {\n    hint.attachments = attachments;\n  }\n\n  applyScopeDataToEvent(prepared, data);\n\n  const eventProcessors = [\n    ...clientEventProcessors,\n    // Run scope event processors _after_ all other processors\n    ...data.eventProcessors,\n  ];\n\n  // Skip event processors for internal exceptions to prevent recursion\n  // oxlint-disable-next-line typescript/prefer-optional-chain\n  const isInternalException = hint.data && (hint.data ).__sentry__ === true;\n  const result = isInternalException\n    ? resolvedSyncPromise(prepared)\n    : notifyEventProcessors(eventProcessors, prepared, hint);\n\n  return result.then(evt => {\n    if (evt) {\n      // We apply the debug_meta field only after all event processors have ran, so that if any event processors modified\n      // file names (e.g.the RewriteFrames integration) the filename -> debug ID relationship isn't destroyed.\n      // This should not cause any PII issues, since we're only moving data that is already on the event and not adding\n      // any new data\n      applyDebugMeta(evt);\n    }\n\n    if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n      return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n    }\n    return evt;\n  });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n *\n * Only exported for tests.\n *\n * @param event event instance to be enhanced\n */\nfunction applyClientOptions(event, options) {\n  const { environment, release, dist, maxValueLength } = options;\n\n  // empty strings do not make sense for environment, release, and dist\n  // so we handle them the same as if they were not provided\n  event.environment = event.environment || environment || DEFAULT_ENVIRONMENT;\n\n  if (!event.release && release) {\n    event.release = release;\n  }\n\n  if (!event.dist && dist) {\n    event.dist = dist;\n  }\n\n  const request = event.request;\n  if (request?.url && maxValueLength) {\n    request.url = truncate(request.url, maxValueLength);\n  }\n\n  if (maxValueLength) {\n    event.exception?.values?.forEach(exception => {\n      if (exception.value) {\n        // Truncates error messages\n        exception.value = truncate(exception.value, maxValueLength);\n      }\n    });\n  }\n}\n\n/**\n * Puts debug IDs into the stack frames of an error event.\n */\nfunction applyDebugIds(event, stackParser) {\n  // Build a map of filename -> debug_id\n  const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n\n  event.exception?.values?.forEach(exception => {\n    exception.stacktrace?.frames?.forEach(frame => {\n      if (frame.filename) {\n        frame.debug_id = filenameDebugIdMap[frame.filename];\n      }\n    });\n  });\n}\n\n/**\n * Moves debug IDs from the stack frames of an error event into the debug_meta field.\n */\nfunction applyDebugMeta(event) {\n  // Extract debug IDs and filenames from the stack frames on the event.\n  const filenameDebugIdMap = {};\n  event.exception?.values?.forEach(exception => {\n    exception.stacktrace?.frames?.forEach(frame => {\n      if (frame.debug_id) {\n        if (frame.abs_path) {\n          filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n        } else if (frame.filename) {\n          filenameDebugIdMap[frame.filename] = frame.debug_id;\n        }\n        delete frame.debug_id;\n      }\n    });\n  });\n\n  if (Object.keys(filenameDebugIdMap).length === 0) {\n    return;\n  }\n\n  // Fill debug_meta information\n  event.debug_meta = event.debug_meta || {};\n  event.debug_meta.images = event.debug_meta.images || [];\n  const images = event.debug_meta.images;\n  Object.entries(filenameDebugIdMap).forEach(([filename, debug_id]) => {\n    images.push({\n      type: 'sourcemap',\n      code_file: filename,\n      debug_id,\n    });\n  });\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event, integrationNames) {\n  if (integrationNames.length > 0) {\n    event.sdk = event.sdk || {};\n    event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n  }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event, depth, maxBreadth) {\n  if (!event) {\n    return null;\n  }\n\n  const normalized = {\n    ...event,\n    ...(event.breadcrumbs && {\n      breadcrumbs: event.breadcrumbs.map(b => ({\n        ...b,\n        ...(b.data && {\n          data: normalize(b.data, depth, maxBreadth),\n        }),\n      })),\n    }),\n    ...(event.user && {\n      user: normalize(event.user, depth, maxBreadth),\n    }),\n    ...(event.contexts && {\n      contexts: normalize(event.contexts, depth, maxBreadth),\n    }),\n    ...(event.extra && {\n      extra: normalize(event.extra, depth, maxBreadth),\n    }),\n  };\n\n  // event.contexts.trace stores information about a Transaction. Similarly,\n  // event.spans[] stores information about child Spans. Given that a\n  // Transaction is conceptually a Span, normalization should apply to both\n  // Transactions and Spans consistently.\n  // For now the decision is to skip normalization of Transactions and Spans,\n  // so this block overwrites the normalized event to add back the original\n  // Transaction information prior to normalization.\n  if (event.contexts?.trace && normalized.contexts) {\n    normalized.contexts.trace = event.contexts.trace;\n\n    // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n    if (event.contexts.trace.data) {\n      normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n    }\n  }\n\n  // event.spans[].data may contain circular/dangerous data so we need to normalize it\n  if (event.spans) {\n    normalized.spans = event.spans.map(span => {\n      return {\n        ...span,\n        ...(span.data && {\n          data: normalize(span.data, depth, maxBreadth),\n        }),\n      };\n    });\n  }\n\n  // event.contexts.flags (FeatureFlagContext) stores context for our feature\n  // flag integrations. It has a greater nesting depth than our other typed\n  // Contexts, so we re-normalize with a fixed depth of 3 here. We do not want\n  // to skip this in case of conflicting, user-provided context.\n  if (event.contexts?.flags && normalized.contexts) {\n    normalized.contexts.flags = normalize(event.contexts.flags, 3, maxBreadth);\n  }\n\n  return normalized;\n}\n\nfunction getFinalScope(scope, captureContext) {\n  if (!captureContext) {\n    return scope;\n  }\n\n  const finalScope = scope ? scope.clone() : new Scope();\n  finalScope.update(captureContext);\n  return finalScope;\n}\n\n/**\n * Parse either an `EventHint` directly, or convert a `CaptureContext` to an `EventHint`.\n * This is used to allow to update method signatures that used to accept a `CaptureContext` but should now accept an `EventHint`.\n */\nfunction parseEventHintOrCaptureContext(\n  hint,\n) {\n  if (!hint) {\n    return undefined;\n  }\n\n  // If you pass a Scope or `() => Scope` as CaptureContext, we just return this as captureContext\n  if (hintIsScopeOrFunction(hint)) {\n    return { captureContext: hint };\n  }\n\n  if (hintIsScopeContext(hint)) {\n    return {\n      captureContext: hint,\n    };\n  }\n\n  return hint;\n}\n\nfunction hintIsScopeOrFunction(hint) {\n  return hint instanceof Scope || typeof hint === 'function';\n}\n\nconst captureContextKeys = [\n  'user',\n  'level',\n  'extra',\n  'contexts',\n  'tags',\n  'fingerprint',\n  'propagationContext',\n] ;\n\nfunction hintIsScopeContext(hint) {\n  return Object.keys(hint).some(key => captureContextKeys.includes(key ));\n}\n\nexport { applyClientOptions, applyDebugIds, applyDebugMeta, parseEventHintOrCaptureContext, prepareEvent };\n//# sourceMappingURL=prepareEvent.js.map\n",
-    "import { getIsolationScope, getCurrentScope, getClient, withIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\nimport { startNewTrace } from './tracing/trace.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isThenable } from './utils/is.js';\nimport { uuid4 } from './utils/misc.js';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent.js';\nimport { getCombinedScopeData } from './utils/scopeData.js';\nimport { timestampInSeconds } from './utils/time.js';\nimport { GLOBAL_OBJ } from './utils/worldwide.js';\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nfunction captureException(exception, hint) {\n  return getCurrentScope().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param captureContext Define the level of the message or pass in additional data to attach to the message.\n * @returns the id of the captured message.\n */\nfunction captureMessage(message, captureContext) {\n  // This is necessary to provide explicit scopes upgrade, without changing the original\n  // arity of the `captureMessage(message, level)` method.\n  const level = typeof captureContext === 'string' ? captureContext : undefined;\n  const hint = typeof captureContext !== 'string' ? { captureContext } : undefined;\n  return getCurrentScope().captureMessage(message, level, hint);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\nfunction captureEvent(event, hint) {\n  return getCurrentScope().captureEvent(event, hint);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\nfunction setContext(name, context) {\n  getIsolationScope().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n  getIsolationScope().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n  getIsolationScope().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n  getIsolationScope().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n  getIsolationScope().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n  getIsolationScope().setUser(user);\n}\n\n/**\n * Sets the conversation ID for the current isolation scope.\n *\n * @param conversationId The conversation ID to set. Pass `null` or `undefined` to unset the conversation ID.\n */\nfunction setConversationId(conversationId) {\n  getIsolationScope().setConversationId(conversationId);\n}\n\n/**\n * The last error event id of the isolation scope.\n *\n * Warning: This function really returns the last recorded error event id on the current\n * isolation scope. If you call this function after handling a certain error and another error\n * is captured in between, the last one is returned instead of the one you might expect.\n * Also, ids of events that were never sent to Sentry (for example because\n * they were dropped in `beforeSend`) could be returned.\n *\n * @returns The last event id of the isolation scope.\n */\nfunction lastEventId() {\n  return getIsolationScope().lastEventId();\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction captureCheckIn(checkIn, upsertMonitorConfig) {\n  const scope = getCurrentScope();\n  const client = getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn('Cannot capture check-in. No client defined.');\n  } else if (!client.captureCheckIn) {\n    DEBUG_BUILD && debug.warn('Cannot capture check-in. Client does not support sending check-ins.');\n  } else {\n    return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n  }\n\n  return uuid4();\n}\n\n/**\n * Wraps a callback with a cron monitor check in. The check in will be sent to Sentry when the callback finishes.\n *\n * @param monitorSlug The distinct slug of the monitor.\n * @param callback Callback to be monitored\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction withMonitor(\n  monitorSlug,\n  callback,\n  upsertMonitorConfig,\n) {\n  function runCallback() {\n    const checkInId = captureCheckIn({ monitorSlug, status: 'in_progress' }, upsertMonitorConfig);\n    const now = timestampInSeconds();\n\n    function finishCheckIn(status) {\n      captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n    }\n    // Default behavior without isolateTrace\n    let maybePromiseResult;\n    try {\n      maybePromiseResult = callback();\n    } catch (e) {\n      finishCheckIn('error');\n      throw e;\n    }\n\n    if (isThenable(maybePromiseResult)) {\n      return maybePromiseResult.then(\n        r => {\n          finishCheckIn('ok');\n          return r;\n        },\n        e => {\n          finishCheckIn('error');\n          throw e;\n        },\n      ) ;\n    }\n    finishCheckIn('ok');\n\n    return maybePromiseResult;\n  }\n\n  return withIsolationScope(() => (upsertMonitorConfig?.isolateTrace ? startNewTrace(runCallback) : runCallback()));\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function flush(timeout) {\n  const client = getClient();\n  if (client) {\n    return client.flush(timeout);\n  }\n  DEBUG_BUILD && debug.warn('Cannot flush events. No client defined.');\n  return Promise.resolve(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function close(timeout) {\n  const client = getClient();\n  if (client) {\n    return client.close(timeout);\n  }\n  DEBUG_BUILD && debug.warn('Cannot flush events and disable SDK. No client defined.');\n  return Promise.resolve(false);\n}\n\n/**\n * Returns true if Sentry has been properly initialized.\n */\nfunction isInitialized() {\n  return !!getClient();\n}\n\n/** If the SDK is initialized & enabled. */\nfunction isEnabled() {\n  const client = getClient();\n  return client?.getOptions().enabled !== false && !!client?.getTransport();\n}\n\n/**\n * Add an event processor.\n * This will be added to the current isolation scope, ensuring any event that is processed in the current execution\n * context will have the processor applied.\n */\nfunction addEventProcessor(callback) {\n  getIsolationScope().addEventProcessor(callback);\n}\n\n/**\n * Start a session on the current isolation scope.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns the new active session\n */\nfunction startSession(context) {\n  const isolationScope = getIsolationScope();\n\n  const { user } = getCombinedScopeData(isolationScope, getCurrentScope());\n\n  // Will fetch userAgent if called from browser sdk\n  const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n  const session = makeSession({\n    user,\n    ...(userAgent && { userAgent }),\n    ...context,\n  });\n\n  // End existing session if there's one\n  const currentSession = isolationScope.getSession();\n  if (currentSession?.status === 'ok') {\n    updateSession(currentSession, { status: 'exited' });\n  }\n\n  endSession();\n\n  // Afterwards we set the new session on the scope\n  isolationScope.setSession(session);\n\n  return session;\n}\n\n/**\n * End the session on the current isolation scope.\n */\nfunction endSession() {\n  const isolationScope = getIsolationScope();\n  const currentScope = getCurrentScope();\n\n  const session = currentScope.getSession() || isolationScope.getSession();\n  if (session) {\n    closeSession(session);\n  }\n  _sendSessionUpdate();\n\n  // the session is over; take it off of the scope\n  isolationScope.setSession();\n}\n\n/**\n * Sends the current Session on the scope\n */\nfunction _sendSessionUpdate() {\n  const isolationScope = getIsolationScope();\n  const client = getClient();\n  const session = isolationScope.getSession();\n  if (session && client) {\n    client.captureSession(session);\n  }\n}\n\n/**\n * Sends the current session on the scope to Sentry\n *\n * @param end If set the session will be marked as exited and removed from the scope.\n *            Defaults to `false`.\n */\nfunction captureSession(end = false) {\n  // both send the update and pull the session from the scope\n  if (end) {\n    endSession();\n    return;\n  }\n\n  // only send the update\n  _sendSessionUpdate();\n}\n\nexport { addEventProcessor, captureCheckIn, captureEvent, captureException, captureMessage, captureSession, close, endSession, flush, isEnabled, isInitialized, lastEventId, setContext, setConversationId, setExtra, setExtras, setTag, setTags, setUser, startSession, withMonitor };\n//# sourceMappingURL=exports.js.map\n",
-    "import { dsnToString } from './utils/dsn.js';\nimport { createEnvelope } from './utils/envelope.js';\n\n/**\n * Create envelope from check in item.\n */\nfunction createCheckInEnvelope(\n  checkIn,\n  dynamicSamplingContext,\n  metadata,\n  tunnel,\n  dsn,\n) {\n  const headers = {\n    sent_at: new Date().toISOString(),\n  };\n\n  if (metadata?.sdk) {\n    headers.sdk = {\n      name: metadata.sdk.name,\n      version: metadata.sdk.version,\n    };\n  }\n\n  if (!!tunnel && !!dsn) {\n    headers.dsn = dsnToString(dsn);\n  }\n\n  if (dynamicSamplingContext) {\n    headers.trace = dynamicSamplingContext ;\n  }\n\n  const item = createCheckInEnvelopeItem(checkIn);\n  return createEnvelope(headers, [item]);\n}\n\nfunction createCheckInEnvelopeItem(checkIn) {\n  const checkInHeaders = {\n    type: 'check_in',\n  };\n  return [checkInHeaders, checkIn];\n}\n\nexport { createCheckInEnvelope };\n//# sourceMappingURL=checkin.js.map\n",
-    "import { makeDsn, dsnToString } from './utils/dsn.js';\n\nconst SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\n  const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n  const port = dsn.port ? `:${dsn.port}` : '';\n  return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn) {\n  return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn, sdkInfo) {\n  const params = {\n    sentry_version: SENTRY_API_VERSION,\n  };\n\n  if (dsn.publicKey) {\n    // We send only the minimum set of required information. See\n    // https://github.com/getsentry/sentry-javascript/issues/2572.\n    params.sentry_key = dsn.publicKey;\n  }\n\n  if (sdkInfo) {\n    params.sentry_client = `${sdkInfo.name}/${sdkInfo.version}`;\n  }\n\n  return new URLSearchParams(params).toString();\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nfunction getEnvelopeEndpointWithUrlEncodedAuth(dsn, tunnel, sdkInfo) {\n  return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nfunction getReportDialogEndpoint(dsnLike, dialogOptions) {\n  const dsn = makeDsn(dsnLike);\n  if (!dsn) {\n    return '';\n  }\n\n  const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n  let encodedOptions = `dsn=${dsnToString(dsn)}`;\n  for (const key in dialogOptions) {\n    if (key === 'dsn') {\n      continue;\n    }\n\n    if (key === 'onClose') {\n      continue;\n    }\n\n    if (key === 'user') {\n      const user = dialogOptions.user;\n      if (!user) {\n        continue;\n      }\n      if (user.name) {\n        encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n      }\n      if (user.email) {\n        encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n      }\n    } else {\n      encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;\n    }\n  }\n\n  return `${endpoint}?${encodedOptions}`;\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n",
-    "import { getClient } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { debug } from './utils/debug-logger.js';\n\nconst installedIntegrations = [];\n\n/** Map of integrations assigned to a client */\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preserve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations) {\n  const integrationsByName = {};\n\n  integrations.forEach((currentInstance) => {\n    const { name } = currentInstance;\n\n    const existingInstance = integrationsByName[name];\n\n    // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n    // default instance to overwrite an existing user instance\n    if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n      return;\n    }\n\n    integrationsByName[name] = currentInstance;\n  });\n\n  return Object.values(integrationsByName);\n}\n\n/** Gets integrations to install */\nfunction getIntegrationsToSetup(\n  options,\n) {\n  const defaultIntegrations = options.defaultIntegrations || [];\n  const userIntegrations = options.integrations;\n\n  // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n  defaultIntegrations.forEach((integration) => {\n    integration.isDefaultInstance = true;\n  });\n\n  let integrations;\n\n  if (Array.isArray(userIntegrations)) {\n    integrations = [...defaultIntegrations, ...userIntegrations];\n  } else if (typeof userIntegrations === 'function') {\n    const resolvedUserIntegrations = userIntegrations(defaultIntegrations);\n    integrations = Array.isArray(resolvedUserIntegrations) ? resolvedUserIntegrations : [resolvedUserIntegrations];\n  } else {\n    integrations = defaultIntegrations;\n  }\n\n  return filterDuplicates(integrations);\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nfunction setupIntegrations(client, integrations) {\n  const integrationIndex = {};\n\n  integrations.forEach((integration) => {\n    // guard against empty provided integrations\n    if (integration) {\n      setupIntegration(client, integration, integrationIndex);\n    }\n  });\n\n  return integrationIndex;\n}\n\n/**\n * Execute the `afterAllSetup` hooks of the given integrations.\n */\nfunction afterSetupIntegrations(client, integrations) {\n  for (const integration of integrations) {\n    // guard against empty provided integrations\n    if (integration?.afterAllSetup) {\n      integration.afterAllSetup(client);\n    }\n  }\n}\n\n/** Setup a single integration.  */\nfunction setupIntegration(client, integration, integrationIndex) {\n  if (integrationIndex[integration.name]) {\n    DEBUG_BUILD && debug.log(`Integration skipped because it was already installed: ${integration.name}`);\n    return;\n  }\n  integrationIndex[integration.name] = integration;\n\n  // `setupOnce` is only called the first time\n  if (!installedIntegrations.includes(integration.name) && typeof integration.setupOnce === 'function') {\n    integration.setupOnce();\n    installedIntegrations.push(integration.name);\n  }\n\n  // `setup` is run for each client\n  if (integration.setup && typeof integration.setup === 'function') {\n    integration.setup(client);\n  }\n\n  if (typeof integration.preprocessEvent === 'function') {\n    const callback = integration.preprocessEvent.bind(integration) ;\n    client.on('preprocessEvent', (event, hint) => callback(event, hint, client));\n  }\n\n  if (typeof integration.processEvent === 'function') {\n    const callback = integration.processEvent.bind(integration) ;\n\n    const processor = Object.assign((event, hint) => callback(event, hint, client), {\n      id: integration.name,\n    });\n\n    client.addEventProcessor(processor);\n  }\n\n  DEBUG_BUILD && debug.log(`Integration installed: ${integration.name}`);\n}\n\n/** Add an integration to the current scope's client. */\nfunction addIntegration(integration) {\n  const client = getClient();\n\n  if (!client) {\n    DEBUG_BUILD && debug.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n    return;\n  }\n\n  client.addIntegration(integration);\n}\n\n/**\n * Define an integration function that can be used to create an integration instance.\n * Note that this by design hides the implementation details of the integration, as they are considered internal.\n */\nfunction defineIntegration(fn) {\n  return fn;\n}\n\nexport { addIntegration, afterSetupIntegrations, defineIntegration, getIntegrationsToSetup, installedIntegrations, setupIntegration, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n",
-    "/**\n * Type-guard: The attribute object has the shape the official attribute object (value, type, unit).\n * https://develop.sentry.dev/sdk/telemetry/scopes/#setting-attributes\n */\nfunction isAttributeObject(maybeObj) {\n  return (\n    typeof maybeObj === 'object' &&\n    maybeObj != null &&\n    !Array.isArray(maybeObj) &&\n    Object.keys(maybeObj).includes('value')\n  );\n}\n\n/**\n * Converts an attribute value to a typed attribute value.\n *\n * For now, we intentionally only support primitive values and attribute objects with primitive values.\n * If @param useFallback is true, we stringify non-primitive values to a string attribute value. Otherwise\n * we return `undefined` for unsupported values.\n *\n * @param value - The value of the passed attribute.\n * @param useFallback - If true, unsupported values will be stringified to a string attribute value.\n *                      Defaults to false. In this case, `undefined` is returned for unsupported values.\n * @returns The typed attribute.\n */\nfunction attributeValueToTypedAttributeValue(\n  rawValue,\n  useFallback,\n) {\n  const { value, unit } = isAttributeObject(rawValue) ? rawValue : { value: rawValue, unit: undefined };\n  const attributeValue = getTypedAttributeValue(value);\n  const checkedUnit = unit && typeof unit === 'string' ? { unit } : {};\n  if (attributeValue) {\n    return { ...attributeValue, ...checkedUnit };\n  }\n\n  if (!useFallback || (useFallback === 'skip-undefined' && value === undefined)) {\n    return;\n  }\n\n  // Fallback: stringify the value\n  // TODO(v11): be smarter here and use String constructor if stringify fails\n  // (this is a breaking change for already existing attribute values)\n  let stringValue = '';\n  try {\n    stringValue = JSON.stringify(value) ?? '';\n  } catch {\n    // Do nothing\n  }\n  return {\n    value: stringValue,\n    type: 'string',\n    ...checkedUnit,\n  };\n}\n\n/**\n * Serializes raw attributes to typed attributes as expected in our envelopes.\n *\n * @param attributes The raw attributes to serialize.\n * @param fallback   If true, unsupported values will be stringified to a string attribute value.\n *                   Defaults to false. In this case, `undefined` is returned for unsupported values.\n *\n * @returns The serialized attributes.\n */\nfunction serializeAttributes(\n  attributes,\n  fallback = false,\n) {\n  const serializedAttributes = {};\n  for (const [key, value] of Object.entries(attributes ?? {})) {\n    const typedValue = attributeValueToTypedAttributeValue(value, fallback);\n    if (typedValue) {\n      serializedAttributes[key] = typedValue;\n    }\n  }\n  return serializedAttributes;\n}\n\n/**\n * NOTE: We intentionally do not return anything for non-primitive values:\n *  - array support will come in the future but if we stringify arrays now,\n *    sending arrays (unstringified) later will be a subtle breaking change.\n *  - Objects are not supported yet and product support is still TBD.\n *  - We still keep the type signature for TypedAttributeValue wider to avoid a\n *    breaking change once we add support for non-primitive values.\n *  - Once we go back to supporting arrays and stringifying all other values,\n *    we already implemented the serialization logic here:\n *    https://github.com/getsentry/sentry-javascript/pull/18165\n */\nfunction getTypedAttributeValue(value) {\n  const primitiveType =\n    typeof value === 'string'\n      ? 'string'\n      : typeof value === 'boolean'\n        ? 'boolean'\n        : typeof value === 'number' && !Number.isNaN(value)\n          ? Number.isInteger(value)\n            ? 'integer'\n            : 'double'\n          : null;\n  if (primitiveType) {\n    // @ts-expect-error - TS complains because {@link TypedAttributeValue} is strictly typed to\n    // avoid setting the wrong `type` on the attribute value.\n    // In this case, getPrimitiveType already does the check but TS doesn't know that.\n    // The \"clean\" alternative is to return an object per `typeof value` case\n    // but that would require more bundle size\n    // Therefore, we ignore it.\n    return { value, type: primitiveType };\n  }\n}\n\nexport { attributeValueToTypedAttributeValue, isAttributeObject, serializeAttributes };\n//# sourceMappingURL=attributes.js.map\n",
-    "const SEQUENCE_ATTR_KEY = 'sentry.timestamp.sequence';\n\nlet _sequenceNumber = 0;\nlet _previousTimestampMs;\n\n/**\n * Returns the `sentry.timestamp.sequence` attribute entry for a serialized telemetry item.\n *\n * The sequence number starts at 0 and increments by 1 for each item captured.\n * It resets to 0 when the current item's integer millisecond timestamp differs\n * from the previous item's integer millisecond timestamp.\n *\n * @param timestampInSeconds - The timestamp of the telemetry item in seconds.\n */\nfunction getSequenceAttribute(timestampInSeconds)\n\n {\n  const nowMs = Math.floor(timestampInSeconds * 1000);\n\n  if (_previousTimestampMs !== undefined && nowMs !== _previousTimestampMs) {\n    _sequenceNumber = 0;\n  }\n\n  const value = _sequenceNumber;\n  _sequenceNumber++;\n  _previousTimestampMs = nowMs;\n\n  return {\n    key: SEQUENCE_ATTR_KEY,\n    value: { value, type: 'integer' },\n  };\n}\n\nexport { getSequenceAttribute };\n//# sourceMappingURL=timestampSequence.js.map\n",
-    "import { withScope, getTraceContextFromScope } from '../currentScopes.js';\nimport { getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromScope } from '../tracing/dynamicSamplingContext.js';\nimport { getActiveSpan, spanToTraceContext } from './spanUtils.js';\n\n/** Extract trace information from scope */\nfunction _getTraceInfoFromScope(\n  client,\n  scope,\n) {\n  if (!scope) {\n    return [undefined, undefined];\n  }\n\n  return withScope(scope, () => {\n    const span = getActiveSpan();\n    const traceContext = span ? spanToTraceContext(span) : getTraceContextFromScope(scope);\n    const dynamicSamplingContext = span\n      ? getDynamicSamplingContextFromSpan(span)\n      : getDynamicSamplingContextFromScope(client, scope);\n    return [dynamicSamplingContext, traceContext];\n  });\n}\n\nexport { _getTraceInfoFromScope };\n//# sourceMappingURL=trace-info.js.map\n",
-    "import { dsnToString } from '../utils/dsn.js';\nimport { createEnvelope } from '../utils/envelope.js';\n\n/**\n * Creates a log container envelope item for a list of logs.\n *\n * @param items - The logs to include in the envelope.\n * @returns The created log container envelope item.\n */\nfunction createLogContainerEnvelopeItem(items) {\n  return [\n    {\n      type: 'log',\n      item_count: items.length,\n      content_type: 'application/vnd.sentry.items.log+json',\n    },\n    {\n      items,\n    },\n  ];\n}\n\n/**\n * Creates an envelope for a list of logs.\n *\n * Logs from multiple traces can be included in the same envelope.\n *\n * @param logs - The logs to include in the envelope.\n * @param metadata - The metadata to include in the envelope.\n * @param tunnel - The tunnel to include in the envelope.\n * @param dsn - The DSN to include in the envelope.\n * @returns The created envelope.\n */\nfunction createLogEnvelope(\n  logs,\n  metadata,\n  tunnel,\n  dsn,\n) {\n  const headers = {};\n\n  if (metadata?.sdk) {\n    headers.sdk = {\n      name: metadata.sdk.name,\n      version: metadata.sdk.version,\n    };\n  }\n\n  if (!!tunnel && !!dsn) {\n    headers.dsn = dsnToString(dsn);\n  }\n\n  return createEnvelope(headers, [createLogContainerEnvelopeItem(logs)]);\n}\n\nexport { createLogContainerEnvelopeItem, createLogEnvelope };\n//# sourceMappingURL=envelope.js.map\n",
-    "import { serializeAttributes } from '../attributes.js';\nimport { getGlobalSingleton } from '../carrier.js';\nimport { getClient, getIsolationScope, getCurrentScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { debug, consoleSandbox } from '../utils/debug-logger.js';\nimport { isParameterizedString } from '../utils/is.js';\nimport { getCombinedScopeData } from '../utils/scopeData.js';\nimport { _getSpanForScope } from '../utils/spanOnScope.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getSequenceAttribute } from '../utils/timestampSequence.js';\nimport { _getTraceInfoFromScope } from '../utils/trace-info.js';\nimport { SEVERITY_TEXT_TO_SEVERITY_NUMBER } from './constants.js';\nimport { createLogEnvelope } from './envelope.js';\n\nconst MAX_LOG_BUFFER_SIZE = 100;\n\n/**\n * Sets a log attribute if the value exists and the attribute key is not already present.\n *\n * @param logAttributes - The log attributes object to modify.\n * @param key - The attribute key to set.\n * @param value - The value to set (only sets if truthy and key not present).\n * @param setEvenIfPresent - Whether to set the attribute if it is present. Defaults to true.\n */\nfunction setLogAttribute(\n  logAttributes,\n  key,\n  value,\n  setEvenIfPresent = true,\n) {\n  if (value && (!logAttributes[key] || setEvenIfPresent)) {\n    logAttributes[key] = value;\n  }\n}\n\n/**\n * Captures a serialized log event and adds it to the log buffer for the given client.\n *\n * @param client - A client. Uses the current client if not provided.\n * @param serializedLog - The serialized log event to capture.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nfunction _INTERNAL_captureSerializedLog(client, serializedLog) {\n  const bufferMap = _getBufferMap();\n  const logBuffer = _INTERNAL_getLogBuffer(client);\n\n  if (logBuffer === undefined) {\n    bufferMap.set(client, [serializedLog]);\n  } else {\n    if (logBuffer.length >= MAX_LOG_BUFFER_SIZE) {\n      _INTERNAL_flushLogsBuffer(client, logBuffer);\n      bufferMap.set(client, [serializedLog]);\n    } else {\n      bufferMap.set(client, [...logBuffer, serializedLog]);\n    }\n  }\n}\n\n/**\n * Captures a log event and sends it to Sentry.\n *\n * @param log - The log event to capture.\n * @param scope - A scope. Uses the current scope if not provided.\n * @param client - A client. Uses the current client if not provided.\n * @param captureSerializedLog - A function to capture the serialized log.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nfunction _INTERNAL_captureLog(\n  beforeLog,\n  currentScope = getCurrentScope(),\n  captureSerializedLog = _INTERNAL_captureSerializedLog,\n) {\n  const client = currentScope?.getClient() ?? getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn('No client available to capture log.');\n    return;\n  }\n\n  const { release, environment, enableLogs = false, beforeSendLog } = client.getOptions();\n  if (!enableLogs) {\n    DEBUG_BUILD && debug.warn('logging option not enabled, log will not be captured.');\n    return;\n  }\n\n  const [, traceContext] = _getTraceInfoFromScope(client, currentScope);\n\n  const processedLogAttributes = {\n    ...beforeLog.attributes,\n  };\n\n  const {\n    user: { id, email, username },\n    attributes: scopeAttributes = {},\n  } = getCombinedScopeData(getIsolationScope(), currentScope);\n\n  setLogAttribute(processedLogAttributes, 'user.id', id, false);\n  setLogAttribute(processedLogAttributes, 'user.email', email, false);\n  setLogAttribute(processedLogAttributes, 'user.name', username, false);\n\n  setLogAttribute(processedLogAttributes, 'sentry.release', release);\n  setLogAttribute(processedLogAttributes, 'sentry.environment', environment);\n\n  const { name, version } = client.getSdkMetadata()?.sdk ?? {};\n  setLogAttribute(processedLogAttributes, 'sentry.sdk.name', name);\n  setLogAttribute(processedLogAttributes, 'sentry.sdk.version', version);\n\n  const replay = client.getIntegrationByName\n\n('Replay');\n\n  const replayId = replay?.getReplayId(true);\n  setLogAttribute(processedLogAttributes, 'sentry.replay_id', replayId);\n\n  if (replayId && replay?.getRecordingMode() === 'buffer') {\n    // We send this so we can identify cases where the replayId is attached but the replay itself might not have been sent to Sentry\n    setLogAttribute(processedLogAttributes, 'sentry._internal.replay_is_buffering', true);\n  }\n\n  const beforeLogMessage = beforeLog.message;\n  if (isParameterizedString(beforeLogMessage)) {\n    const { __sentry_template_string__, __sentry_template_values__ = [] } = beforeLogMessage;\n    if (__sentry_template_values__?.length) {\n      processedLogAttributes['sentry.message.template'] = __sentry_template_string__;\n    }\n    __sentry_template_values__.forEach((param, index) => {\n      processedLogAttributes[`sentry.message.parameter.${index}`] = param;\n    });\n  }\n\n  const span = _getSpanForScope(currentScope);\n  // Add the parent span ID to the log attributes for trace context\n  setLogAttribute(processedLogAttributes, 'sentry.trace.parent_span_id', span?.spanContext().spanId);\n\n  const processedLog = { ...beforeLog, attributes: processedLogAttributes };\n\n  client.emit('beforeCaptureLog', processedLog);\n\n  // We need to wrap this in `consoleSandbox` to avoid recursive calls to `beforeSendLog`\n  const log = beforeSendLog ? consoleSandbox(() => beforeSendLog(processedLog)) : processedLog;\n  if (!log) {\n    client.recordDroppedEvent('before_send', 'log_item', 1);\n    DEBUG_BUILD && debug.warn('beforeSendLog returned null, log will not be captured.');\n    return;\n  }\n\n  const { level, message, attributes: logAttributes = {}, severityNumber } = log;\n\n  const timestamp = timestampInSeconds();\n  const sequenceAttr = getSequenceAttribute(timestamp);\n\n  const serializedLog = {\n    timestamp,\n    level,\n    body: message,\n    trace_id: traceContext?.trace_id,\n    severity_number: severityNumber ?? SEVERITY_TEXT_TO_SEVERITY_NUMBER[level],\n    attributes: {\n      ...serializeAttributes(scopeAttributes),\n      ...serializeAttributes(logAttributes, true),\n      [sequenceAttr.key]: sequenceAttr.value,\n    },\n  };\n\n  captureSerializedLog(client, serializedLog);\n\n  client.emit('afterCaptureLog', log);\n}\n\n/**\n * Flushes the logs buffer to Sentry.\n *\n * @param client - A client.\n * @param maybeLogBuffer - A log buffer. Uses the log buffer for the given client if not provided.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nfunction _INTERNAL_flushLogsBuffer(client, maybeLogBuffer) {\n  const logBuffer = maybeLogBuffer ?? _INTERNAL_getLogBuffer(client) ?? [];\n  if (logBuffer.length === 0) {\n    return;\n  }\n\n  const clientOptions = client.getOptions();\n  const envelope = createLogEnvelope(logBuffer, clientOptions._metadata, clientOptions.tunnel, client.getDsn());\n\n  // Clear the log buffer after envelopes have been constructed.\n  _getBufferMap().set(client, []);\n\n  client.emit('flushLogs');\n\n  // sendEnvelope should not throw\n  // eslint-disable-next-line @typescript-eslint/no-floating-promises\n  client.sendEnvelope(envelope);\n}\n\n/**\n * Returns the log buffer for a given client.\n *\n * Exported for testing purposes.\n *\n * @param client - The client to get the log buffer for.\n * @returns The log buffer for the given client.\n */\nfunction _INTERNAL_getLogBuffer(client) {\n  return _getBufferMap().get(client);\n}\n\nfunction _getBufferMap() {\n  // The reference to the Client <> LogBuffer map is stored on the carrier to ensure it's always the same\n  return getGlobalSingleton('clientToLogBufferMap', () => new WeakMap());\n}\n\nexport { _INTERNAL_captureLog, _INTERNAL_captureSerializedLog, _INTERNAL_flushLogsBuffer, _INTERNAL_getLogBuffer };\n//# sourceMappingURL=internal.js.map\n",
-    "import { dsnToString } from '../utils/dsn.js';\nimport { createEnvelope } from '../utils/envelope.js';\n\n/**\n * Creates a metric container envelope item for a list of metrics.\n *\n * @param items - The metrics to include in the envelope.\n * @returns The created metric container envelope item.\n */\nfunction createMetricContainerEnvelopeItem(items) {\n  return [\n    {\n      type: 'trace_metric',\n      item_count: items.length,\n      content_type: 'application/vnd.sentry.items.trace-metric+json',\n    } ,\n    {\n      items,\n    },\n  ];\n}\n\n/**\n * Creates an envelope for a list of metrics.\n *\n * Metrics from multiple traces can be included in the same envelope.\n *\n * @param metrics - The metrics to include in the envelope.\n * @param metadata - The metadata to include in the envelope.\n * @param tunnel - The tunnel to include in the envelope.\n * @param dsn - The DSN to include in the envelope.\n * @returns The created envelope.\n */\nfunction createMetricEnvelope(\n  metrics,\n  metadata,\n  tunnel,\n  dsn,\n) {\n  const headers = {};\n\n  if (metadata?.sdk) {\n    headers.sdk = {\n      name: metadata.sdk.name,\n      version: metadata.sdk.version,\n    };\n  }\n\n  if (!!tunnel && !!dsn) {\n    headers.dsn = dsnToString(dsn);\n  }\n\n  return createEnvelope(headers, [createMetricContainerEnvelopeItem(metrics)]);\n}\n\nexport { createMetricContainerEnvelopeItem, createMetricEnvelope };\n//# sourceMappingURL=envelope.js.map\n",
-    "import { serializeAttributes } from '../attributes.js';\nimport { getGlobalSingleton } from '../carrier.js';\nimport { getCurrentScope, getClient, getIsolationScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getCombinedScopeData } from '../utils/scopeData.js';\nimport { _getSpanForScope } from '../utils/spanOnScope.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getSequenceAttribute } from '../utils/timestampSequence.js';\nimport { _getTraceInfoFromScope } from '../utils/trace-info.js';\nimport { createMetricEnvelope } from './envelope.js';\n\nconst MAX_METRIC_BUFFER_SIZE = 1000;\n\n/**\n * Sets a metric attribute if the value exists and the attribute key is not already present.\n *\n * @param metricAttributes - The metric attributes object to modify.\n * @param key - The attribute key to set.\n * @param value - The value to set (only sets if truthy and key not present).\n * @param setEvenIfPresent - Whether to set the attribute if it is present. Defaults to true.\n */\nfunction setMetricAttribute(\n  metricAttributes,\n  key,\n  value,\n  setEvenIfPresent = true,\n) {\n  if (value && (setEvenIfPresent || !(key in metricAttributes))) {\n    metricAttributes[key] = value;\n  }\n}\n\n/**\n * Captures a serialized metric event and adds it to the metric buffer for the given client.\n *\n * @param client - A client. Uses the current client if not provided.\n * @param serializedMetric - The serialized metric event to capture.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nfunction _INTERNAL_captureSerializedMetric(client, serializedMetric) {\n  const bufferMap = _getBufferMap();\n  const metricBuffer = _INTERNAL_getMetricBuffer(client);\n\n  if (metricBuffer === undefined) {\n    bufferMap.set(client, [serializedMetric]);\n  } else {\n    if (metricBuffer.length >= MAX_METRIC_BUFFER_SIZE) {\n      _INTERNAL_flushMetricsBuffer(client, metricBuffer);\n      bufferMap.set(client, [serializedMetric]);\n    } else {\n      bufferMap.set(client, [...metricBuffer, serializedMetric]);\n    }\n  }\n}\n\n/**\n * Options for capturing a metric internally.\n */\n\n/**\n * Enriches metric with all contextual attributes (user, SDK metadata, replay, etc.)\n */\nfunction _enrichMetricAttributes(beforeMetric, client, user) {\n  const { release, environment } = client.getOptions();\n\n  const processedMetricAttributes = {\n    ...beforeMetric.attributes,\n  };\n\n  // Add user attributes\n  setMetricAttribute(processedMetricAttributes, 'user.id', user.id, false);\n  setMetricAttribute(processedMetricAttributes, 'user.email', user.email, false);\n  setMetricAttribute(processedMetricAttributes, 'user.name', user.username, false);\n\n  // Add Sentry metadata\n  setMetricAttribute(processedMetricAttributes, 'sentry.release', release);\n  setMetricAttribute(processedMetricAttributes, 'sentry.environment', environment);\n\n  // Add SDK metadata\n  const { name, version } = client.getSdkMetadata()?.sdk ?? {};\n  setMetricAttribute(processedMetricAttributes, 'sentry.sdk.name', name);\n  setMetricAttribute(processedMetricAttributes, 'sentry.sdk.version', version);\n\n  // Add replay metadata\n  const replay = client.getIntegrationByName\n\n('Replay');\n\n  const replayId = replay?.getReplayId(true);\n  setMetricAttribute(processedMetricAttributes, 'sentry.replay_id', replayId);\n\n  if (replayId && replay?.getRecordingMode() === 'buffer') {\n    setMetricAttribute(processedMetricAttributes, 'sentry._internal.replay_is_buffering', true);\n  }\n\n  return {\n    ...beforeMetric,\n    attributes: processedMetricAttributes,\n  };\n}\n\n/**\n * Creates a serialized metric ready to be sent to Sentry.\n */\nfunction _buildSerializedMetric(\n  metric,\n  client,\n  currentScope,\n  scopeAttributes,\n) {\n  // Get trace context\n  const [, traceContext] = _getTraceInfoFromScope(client, currentScope);\n  const span = _getSpanForScope(currentScope);\n  const traceId = span ? span.spanContext().traceId : traceContext?.trace_id;\n  const spanId = span ? span.spanContext().spanId : undefined;\n\n  const timestamp = timestampInSeconds();\n  const sequenceAttr = getSequenceAttribute(timestamp);\n\n  return {\n    timestamp,\n    trace_id: traceId ?? '',\n    span_id: spanId,\n    name: metric.name,\n    type: metric.type,\n    unit: metric.unit,\n    value: metric.value,\n    attributes: {\n      ...serializeAttributes(scopeAttributes),\n      ...serializeAttributes(metric.attributes, 'skip-undefined'),\n      [sequenceAttr.key]: sequenceAttr.value,\n    },\n  };\n}\n\n/**\n * Captures a metric event and sends it to Sentry.\n *\n * @param metric - The metric event to capture.\n * @param options - Options for capturing the metric.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nfunction _INTERNAL_captureMetric(beforeMetric, options) {\n  const currentScope = options?.scope ?? getCurrentScope();\n  const captureSerializedMetric = options?.captureSerializedMetric ?? _INTERNAL_captureSerializedMetric;\n  const client = currentScope?.getClient() ?? getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn('No client available to capture metric.');\n    return;\n  }\n\n  const { _experiments, enableMetrics, beforeSendMetric } = client.getOptions();\n\n  // todo(v11): Remove the experimental flag\n  // eslint-disable-next-line deprecation/deprecation\n  const metricsEnabled = enableMetrics ?? _experiments?.enableMetrics ?? true;\n\n  if (!metricsEnabled) {\n    DEBUG_BUILD && debug.warn('metrics option not enabled, metric will not be captured.');\n    return;\n  }\n\n  // Enrich metric with contextual attributes\n  const { user, attributes: scopeAttributes } = getCombinedScopeData(getIsolationScope(), currentScope);\n  const enrichedMetric = _enrichMetricAttributes(beforeMetric, client, user);\n\n  client.emit('processMetric', enrichedMetric);\n\n  // todo(v11): Remove the experimental `beforeSendMetric`\n  // eslint-disable-next-line deprecation/deprecation\n  const beforeSendCallback = beforeSendMetric || _experiments?.beforeSendMetric;\n  const processedMetric = beforeSendCallback ? beforeSendCallback(enrichedMetric) : enrichedMetric;\n\n  if (!processedMetric) {\n    DEBUG_BUILD && debug.log('`beforeSendMetric` returned `null`, will not send metric.');\n    return;\n  }\n\n  const serializedMetric = _buildSerializedMetric(processedMetric, client, currentScope, scopeAttributes);\n\n  DEBUG_BUILD && debug.log('[Metric]', serializedMetric);\n\n  captureSerializedMetric(client, serializedMetric);\n\n  client.emit('afterCaptureMetric', processedMetric);\n}\n\n/**\n * Flushes the metrics buffer to Sentry.\n *\n * @param client - A client.\n * @param maybeMetricBuffer - A metric buffer. Uses the metric buffer for the given client if not provided.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nfunction _INTERNAL_flushMetricsBuffer(client, maybeMetricBuffer) {\n  const metricBuffer = maybeMetricBuffer ?? _INTERNAL_getMetricBuffer(client) ?? [];\n  if (metricBuffer.length === 0) {\n    return;\n  }\n\n  const clientOptions = client.getOptions();\n  const envelope = createMetricEnvelope(metricBuffer, clientOptions._metadata, clientOptions.tunnel, client.getDsn());\n\n  // Clear the metric buffer after envelopes have been constructed.\n  _getBufferMap().set(client, []);\n\n  client.emit('flushMetrics');\n\n  // sendEnvelope should not throw\n  // eslint-disable-next-line @typescript-eslint/no-floating-promises\n  client.sendEnvelope(envelope);\n}\n\n/**\n * Returns the metric buffer for a given client.\n *\n * Exported for testing purposes.\n *\n * @param client - The client to get the metric buffer for.\n * @returns The metric buffer for the given client.\n */\nfunction _INTERNAL_getMetricBuffer(client) {\n  return _getBufferMap().get(client);\n}\n\nfunction _getBufferMap() {\n  // The reference to the Client <> MetricBuffer map is stored on the carrier to ensure it's always the same\n  return getGlobalSingleton('clientToMetricBufferMap', () => new WeakMap());\n}\n\nexport { _INTERNAL_captureMetric, _INTERNAL_captureSerializedMetric, _INTERNAL_flushMetricsBuffer, _INTERNAL_getMetricBuffer };\n//# sourceMappingURL=internal.js.map\n",
-    "/**\n * Calls `unref` on a timer, if the method is available on @param timer.\n *\n * `unref()` is used to allow processes to exit immediately, even if the timer\n * is still running and hasn't resolved yet.\n *\n * Use this in places where code can run on browser or server, since browsers\n * do not support `unref`.\n */\nfunction safeUnref(timer) {\n  if (typeof timer === 'object' && typeof timer.unref === 'function') {\n    timer.unref();\n  }\n  return timer;\n}\n\nexport { safeUnref };\n//# sourceMappingURL=timer.js.map\n",
-    "import { resolvedSyncPromise, rejectedSyncPromise } from './syncpromise.js';\nimport { safeUnref } from './timer.js';\n\nconst SENTRY_BUFFER_FULL_ERROR = Symbol.for('SentryBufferFullError');\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nfunction makePromiseBuffer(limit = 100) {\n  const buffer = new Set();\n\n  function isReady() {\n    return buffer.size < limit;\n  }\n\n  /**\n   * Remove a promise from the queue.\n   *\n   * @param task Can be any PromiseLike\n   * @returns Removed promise.\n   */\n  function remove(task) {\n    buffer.delete(task);\n  }\n\n  /**\n   * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n   *\n   * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n   *        PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n   *        functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n   *        requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n   *        limit check.\n   * @returns The original promise.\n   */\n  function add(taskProducer) {\n    if (!isReady()) {\n      return rejectedSyncPromise(SENTRY_BUFFER_FULL_ERROR);\n    }\n\n    // start the task and add its promise to the queue\n    const task = taskProducer();\n    buffer.add(task);\n    void task.then(\n      () => remove(task),\n      () => remove(task),\n    );\n    return task;\n  }\n\n  /**\n   * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n   *\n   * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n   * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n   * `true`.\n   * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n   * `false` otherwise\n   */\n  function drain(timeout) {\n    if (!buffer.size) {\n      return resolvedSyncPromise(true);\n    }\n\n    // We want to resolve even if one of the promises rejects\n    const drainPromise = Promise.allSettled(Array.from(buffer)).then(() => true);\n\n    if (!timeout) {\n      return drainPromise;\n    }\n\n    const promises = [\n      drainPromise,\n      new Promise(resolve => safeUnref(setTimeout(() => resolve(false), timeout))),\n    ];\n\n    return Promise.race(promises);\n  }\n\n  return {\n    get $() {\n      return Array.from(buffer);\n    },\n    add,\n    drain,\n  };\n}\n\nexport { SENTRY_BUFFER_FULL_ERROR, makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n",
-    "import { safeDateNow } from './randomSafeContext.js';\n\n// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\n\nconst DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nfunction parseRetryAfterHeader(header, now = safeDateNow()) {\n  const headerDelay = parseInt(`${header}`, 10);\n  if (!isNaN(headerDelay)) {\n    return headerDelay * 1000;\n  }\n\n  const headerDate = Date.parse(`${header}`);\n  if (!isNaN(headerDate)) {\n    return headerDate - now;\n  }\n\n  return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that the given category is disabled until for rate limiting.\n * In case no category-specific limit is set but a general rate limit across all categories is active,\n * that time is returned.\n *\n * @return the time in ms that the category is disabled until or 0 if there's no active rate limit.\n */\nfunction disabledUntil(limits, dataCategory) {\n  return limits[dataCategory] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nfunction isRateLimited(limits, dataCategory, now = safeDateNow()) {\n  return disabledUntil(limits, dataCategory) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n *\n * @return the updated RateLimits object.\n */\nfunction updateRateLimits(\n  limits,\n  { statusCode, headers },\n  now = safeDateNow(),\n) {\n  const updatedRateLimits = {\n    ...limits,\n  };\n\n  // \"The name is case-insensitive.\"\n  // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n  const rateLimitHeader = headers?.['x-sentry-rate-limits'];\n  const retryAfterHeader = headers?.['retry-after'];\n\n  if (rateLimitHeader) {\n    /**\n     * rate limit headers are of the form\n     *     
,
,..\n * where each
is of the form\n * : : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n * Semicolon-separated list of metric namespace identifiers. Defines which namespace(s) will be affected.\n * Only present if rate limit applies to the metric_bucket data category.\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories, , , namespaces] = limit.split(':', 5) ;\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n if (category === 'metric_bucket') {\n // namespaces will be present when category === 'metric_bucket'\n if (!namespaces || namespaces.split(';').includes('custom')) {\n updatedRateLimits[category] = now + delay;\n }\n } else {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n", - "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { forEachEnvelopeItem, envelopeItemTypeToDataCategory, createEnvelope, serializeEnvelope, envelopeContainsItemType } from '../utils/envelope.js';\nimport { makePromiseBuffer, SENTRY_BUFFER_FULL_ERROR } from '../utils/promisebuffer.js';\nimport { isRateLimited, updateRateLimits } from '../utils/ratelimit.js';\n\nconst DEFAULT_TRANSPORT_BUFFER_SIZE = 64;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nfunction createTransport(\n options,\n makeRequest,\n buffer = makePromiseBuffer(\n options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE,\n ),\n) {\n let rateLimits = {};\n const flush = (timeout) => buffer.drain(timeout);\n\n function send(envelope) {\n const filteredEnvelopeItems = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n const dataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, dataCategory)) {\n options.recordDroppedEvent('ratelimit_backoff', dataCategory);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return Promise.resolve({});\n }\n\n const filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems );\n\n // Creates client report for each item in an envelope\n const recordEnvelopeLoss = (reason) => {\n // Don't record outcomes for client reports - we don't want to create a feedback loop if client reports themselves fail to send\n if (envelopeContainsItemType(filteredEnvelope, ['client_report'])) {\n DEBUG_BUILD && debug.warn(`Dropping client report. Will not send outcomes (reason: ${reason}).`);\n return;\n }\n forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n });\n };\n\n const requestTask = () =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope) }).then(\n response => {\n // Handle 413 Content Too Large\n // Loss of envelope content is expected so we record a send_error client report\n // https://develop.sentry.dev/sdk/expected-features/#dealing-with-network-failures\n if (response.statusCode === 413) {\n DEBUG_BUILD &&\n debug.error(\n 'Sentry responded with status code 413. Envelope was discarded due to exceeding size limits.',\n );\n recordEnvelopeLoss('send_error');\n return response;\n }\n\n // We don't want to throw on NOK responses, but we want to at least log them\n if (\n DEBUG_BUILD &&\n response.statusCode !== undefined &&\n (response.statusCode < 200 || response.statusCode >= 300)\n ) {\n debug.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n return response;\n },\n error => {\n recordEnvelopeLoss('network_error');\n DEBUG_BUILD && debug.error('Encountered error running transport request:', error);\n throw error;\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error === SENTRY_BUFFER_FULL_ERROR) {\n DEBUG_BUILD && debug.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return Promise.resolve({});\n } else {\n throw error;\n }\n },\n );\n }\n\n return {\n send,\n flush,\n };\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n", - "import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nfunction createClientReportEnvelope(\n discarded_events,\n dsn,\n timestamp,\n) {\n const clientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n", - "/**\n * Get a list of possible event messages from a Sentry event.\n */\nfunction getPossibleEventMessages(event) {\n const possibleMessages = [];\n\n if (event.message) {\n possibleMessages.push(event.message);\n }\n\n try {\n // @ts-expect-error Try catching to save bundle size\n const lastException = event.exception.values[event.exception.values.length - 1];\n if (lastException?.value) {\n possibleMessages.push(lastException.value);\n if (lastException.type) {\n possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n }\n }\n } catch {\n // ignore errors here\n }\n\n return possibleMessages;\n}\n\nexport { getPossibleEventMessages };\n//# sourceMappingURL=eventUtils.js.map\n", - "import { SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_PROFILE_ID } from '../semanticAttributes.js';\n\n/**\n * Converts a transaction event to a span JSON object.\n */\nfunction convertTransactionEventToSpanJson(event) {\n const { trace_id, parent_span_id, span_id, status, origin, data, op } = event.contexts?.trace ?? {};\n\n return {\n data: data ?? {},\n description: event.transaction,\n op,\n parent_span_id,\n span_id: span_id ?? '',\n start_timestamp: event.start_timestamp ?? 0,\n status,\n timestamp: event.timestamp,\n trace_id: trace_id ?? '',\n origin,\n profile_id: data?.[SEMANTIC_ATTRIBUTE_PROFILE_ID] ,\n exclusive_time: data?.[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME] ,\n measurements: event.measurements,\n is_segment: true,\n };\n}\n\n/**\n * Converts a span JSON object to a transaction event.\n */\nfunction convertSpanJsonToTransactionEvent(span) {\n return {\n type: 'transaction',\n timestamp: span.timestamp,\n start_timestamp: span.start_timestamp,\n transaction: span.description,\n contexts: {\n trace: {\n trace_id: span.trace_id,\n span_id: span.span_id,\n parent_span_id: span.parent_span_id,\n op: span.op,\n status: span.status,\n origin: span.origin,\n data: {\n ...span.data,\n ...(span.profile_id && { [SEMANTIC_ATTRIBUTE_PROFILE_ID]: span.profile_id }),\n ...(span.exclusive_time && { [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: span.exclusive_time }),\n },\n },\n },\n measurements: span.measurements,\n };\n}\n\nexport { convertSpanJsonToTransactionEvent, convertTransactionEventToSpanJson };\n//# sourceMappingURL=transactionEvent.js.map\n", - "import { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { DEFAULT_ENVIRONMENT } from './constants.js';\nimport { getTraceContextFromScope, getCurrentScope, getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegration, afterSetupIntegrations, setupIntegrations } from './integration.js';\nimport { _INTERNAL_flushLogsBuffer } from './logs/internal.js';\nimport { _INTERNAL_flushMetricsBuffer } from './metrics/internal.js';\nimport { updateSession } from './session.js';\nimport { getDynamicSamplingContextFromScope } from './tracing/dynamicSamplingContext.js';\nimport { DEFAULT_TRANSPORT_BUFFER_SIZE } from './transports/base.js';\nimport { createClientReportEnvelope } from './utils/clientreport.js';\nimport { debug } from './utils/debug-logger.js';\nimport { makeDsn, dsnToString } from './utils/dsn.js';\nimport { addItemToEnvelope, createAttachmentEnvelopeItem } from './utils/envelope.js';\nimport { getPossibleEventMessages } from './utils/eventUtils.js';\nimport { isParameterizedString, isPrimitive, isThenable, isPlainObject } from './utils/is.js';\nimport { merge } from './utils/merge.js';\nimport { uuid4, checkOrSetAlreadyCaught } from './utils/misc.js';\nimport { parseSampleRate } from './utils/parseSampleRate.js';\nimport { prepareEvent } from './utils/prepareEvent.js';\nimport { makePromiseBuffer, SENTRY_BUFFER_FULL_ERROR } from './utils/promisebuffer.js';\nimport { safeMathRandom } from './utils/randomSafeContext.js';\nimport { shouldIgnoreSpan, reparentChildSpans } from './utils/should-ignore-span.js';\nimport { showSpanDropWarning } from './utils/spanUtils.js';\nimport { rejectedSyncPromise } from './utils/syncpromise.js';\nimport { safeUnref } from './utils/timer.js';\nimport { convertTransactionEventToSpanJson, convertSpanJsonToTransactionEvent } from './utils/transactionEvent.js';\n\n/* eslint-disable max-lines */\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\nconst MISSING_RELEASE_FOR_SESSION_ERROR = 'Discarded session because of missing or non-string release';\n\nconst INTERNAL_ERROR_SYMBOL = Symbol.for('SentryInternalError');\nconst DO_NOT_SEND_EVENT_SYMBOL = Symbol.for('SentryDoNotSendEventError');\n\n// Default interval for flushing logs and metrics (5 seconds)\nconst DEFAULT_FLUSH_INTERVAL = 5000;\n\nfunction _makeInternalError(message) {\n return {\n message,\n [INTERNAL_ERROR_SYMBOL]: true,\n };\n}\n\nfunction _makeDoNotSendEventError(message) {\n return {\n message,\n [DO_NOT_SEND_EVENT_SYMBOL]: true,\n };\n}\n\nfunction _isInternalError(error) {\n return !!error && typeof error === 'object' && INTERNAL_ERROR_SYMBOL in error;\n}\n\nfunction _isDoNotSendEventError(error) {\n return !!error && typeof error === 'object' && DO_NOT_SEND_EVENT_SYMBOL in error;\n}\n\n/**\n * Sets up weight-based flushing for logs or metrics.\n * This helper function encapsulates the common pattern of:\n * 1. Tracking accumulated weight of items\n * 2. Flushing when weight exceeds threshold (800KB)\n * 3. Flushing after timeout period from the first item\n *\n * Uses closure variables to track weight and timeout state.\n */\nfunction setupWeightBasedFlushing\n\n(\n client,\n afterCaptureHook,\n flushHook,\n estimateSizeFn,\n flushFn,\n) {\n // Track weight and timeout in closure variables\n let weight = 0;\n let flushTimeout;\n let isTimerActive = false;\n\n // @ts-expect-error - TypeScript can't narrow generic hook types to match specific overloads, but we know this is type-safe\n client.on(flushHook, () => {\n weight = 0;\n clearTimeout(flushTimeout);\n isTimerActive = false;\n });\n\n // @ts-expect-error - TypeScript can't narrow generic hook types to match specific overloads, but we know this is type-safe\n client.on(afterCaptureHook, (item) => {\n weight += estimateSizeFn(item);\n\n // We flush the buffer if it exceeds 0.8 MB\n // The weight is a rough estimate, so we flush way before the payload gets too big.\n if (weight >= 800000) {\n flushFn(client);\n } else if (!isTimerActive) {\n // Only start timer if one isn't already running.\n // This prevents flushing being delayed by items that arrive close to the timeout limit\n // and thus resetting the flushing timeout and delaying items being flushed.\n isTimerActive = true;\n // Use safeUnref so the timer doesn't prevent the process from exiting\n flushTimeout = safeUnref(\n setTimeout(() => {\n flushFn(client);\n // Note: isTimerActive is reset by the flushHook handler above, not here,\n // to avoid race conditions when new items arrive during the flush.\n }, DEFAULT_FLUSH_INTERVAL),\n );\n }\n });\n\n client.on('flush', () => {\n flushFn(client);\n });\n}\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link Client._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends Client {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nclass Client {\n /** Options passed to the SDK. */\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n\n /** Array of set up integrations. */\n\n /** Number of calls being processed */\n\n /** Holds flushable */\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {\n this._options = options;\n this._integrations = {};\n this._numProcessing = 0;\n this._outcomes = {};\n this._hooks = {};\n this._eventProcessors = [];\n this._promiseBuffer = makePromiseBuffer(options.transportOptions?.bufferSize ?? DEFAULT_TRANSPORT_BUFFER_SIZE);\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n } else {\n DEBUG_BUILD && debug.warn('No DSN provided, client will not send events.');\n }\n\n if (this._dsn) {\n const url = getEnvelopeEndpointWithUrlEncodedAuth(\n this._dsn,\n options.tunnel,\n options._metadata ? options._metadata.sdk : undefined,\n );\n this._transport = options.transport({\n tunnel: this._options.tunnel,\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n }\n\n // Backfill enableLogs option from _experiments.enableLogs\n // TODO(v11): Remove or change default value\n // eslint-disable-next-line deprecation/deprecation\n this._options.enableLogs = this._options.enableLogs ?? this._options._experiments?.enableLogs;\n\n // Setup log flushing with weight and timeout tracking\n if (this._options.enableLogs) {\n setupWeightBasedFlushing(this, 'afterCaptureLog', 'flushLogs', estimateLogSizeInBytes, _INTERNAL_flushLogsBuffer);\n }\n\n // todo(v11): Remove the experimental flag\n // eslint-disable-next-line deprecation/deprecation\n const enableMetrics = this._options.enableMetrics ?? this._options._experiments?.enableMetrics ?? true;\n\n // Setup metric flushing with weight and timeout tracking\n if (enableMetrics) {\n setupWeightBasedFlushing(\n this,\n 'afterCaptureMetric',\n 'flushMetrics',\n estimateMetricSizeInBytes,\n _INTERNAL_flushMetricsBuffer,\n );\n }\n }\n\n /**\n * Captures an exception event and sends it to Sentry.\n *\n * Unlike `captureException` exported from every SDK, this method requires that you pass it the current scope.\n */\n captureException(exception, hint, scope) {\n const eventId = uuid4();\n\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n\n const hintWithEventId = {\n event_id: eventId,\n ...hint,\n };\n\n this._process(\n () =>\n this.eventFromException(exception, hintWithEventId)\n .then(event => this._captureEvent(event, hintWithEventId, scope))\n .then(res => res),\n 'error',\n );\n\n return hintWithEventId.event_id;\n }\n\n /**\n * Captures a message event and sends it to Sentry.\n *\n * Unlike `captureMessage` exported from every SDK, this method requires that you pass it the current scope.\n */\n captureMessage(\n message,\n level,\n hint,\n currentScope,\n ) {\n const hintWithEventId = {\n event_id: uuid4(),\n ...hint,\n };\n\n const eventMessage = isParameterizedString(message) ? message : String(message);\n const isMessage = isPrimitive(message);\n const promisedEvent = isMessage\n ? this.eventFromMessage(eventMessage, level, hintWithEventId)\n : this.eventFromException(message, hintWithEventId);\n\n this._process(\n () => promisedEvent.then(event => this._captureEvent(event, hintWithEventId, currentScope)),\n isMessage ? 'unknown' : 'error',\n );\n\n return hintWithEventId.event_id;\n }\n\n /**\n * Captures a manually created event and sends it to Sentry.\n *\n * Unlike `captureEvent` exported from every SDK, this method requires that you pass it the current scope.\n */\n captureEvent(event, hint, currentScope) {\n const eventId = uuid4();\n\n // ensure we haven't captured this very object before\n if (hint?.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n\n const hintWithEventId = {\n event_id: eventId,\n ...hint,\n };\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanScope = sdkProcessingMetadata.capturedSpanScope;\n const capturedSpanIsolationScope = sdkProcessingMetadata.capturedSpanIsolationScope;\n const dataCategory = getDataCategoryByType(event.type);\n\n this._process(\n () => this._captureEvent(event, hintWithEventId, capturedSpanScope || currentScope, capturedSpanIsolationScope),\n dataCategory,\n );\n\n return hintWithEventId.event_id;\n }\n\n /**\n * Captures a session.\n */\n captureSession(session) {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n\n /**\n * Create a cron monitor check in and send it to Sentry. This method is not available on all clients.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n * @param scope An optional scope containing event metadata.\n * @returns A string representing the id of the check in.\n */\n\n /**\n * Get the current Dsn.\n */\n getDsn() {\n return this._dsn;\n }\n\n /**\n * Get the current options.\n */\n getOptions() {\n return this._options;\n }\n\n /**\n * Get the SDK metadata.\n * @see SdkMetadata\n */\n getSdkMetadata() {\n return this._options._metadata;\n }\n\n /**\n * Returns the transport that is used by the client.\n * Please note that the transport gets lazy initialized so it will only be there once the first event has been sent.\n */\n getTransport() {\n return this._transport;\n }\n\n /**\n * Wait for all events to be sent or the timeout to expire, whichever comes first.\n *\n * @param timeout Maximum time in ms the client should wait for events to be flushed. Omitting this parameter will\n * cause the client to wait until all events are sent before resolving the promise.\n * @returns A promise that will resolve with `true` if all events are sent before the timeout, or `false` if there are\n * still events in the queue when the timeout is reached.\n */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async flush(timeout) {\n const transport = this._transport;\n if (!transport) {\n return true;\n }\n\n this.emit('flush');\n\n const clientFinished = await this._isClientDoneProcessing(timeout);\n const transportFlushed = await transport.flush(timeout);\n\n return clientFinished && transportFlushed;\n }\n\n /**\n * Flush the event queue and set the client to `enabled = false`. See {@link Client.flush}.\n *\n * @param {number} timeout Maximum time in ms the client should wait before shutting down. Omitting this parameter will cause\n * the client to wait until all events are sent before disabling itself.\n * @returns {Promise} A promise which resolves to `true` if the flush completes successfully before the timeout, or `false` if\n * it doesn't.\n */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async close(timeout) {\n _INTERNAL_flushLogsBuffer(this);\n const result = await this.flush(timeout);\n this.getOptions().enabled = false;\n this.emit('close');\n return result;\n }\n\n /**\n * Get all installed event processors.\n */\n getEventProcessors() {\n return this._eventProcessors;\n }\n\n /**\n * Adds an event processor that applies to any event processed by this client.\n */\n addEventProcessor(eventProcessor) {\n this._eventProcessors.push(eventProcessor);\n }\n\n /**\n * Initialize this client.\n * Call this after the client was set on a scope.\n */\n init() {\n if (\n this._isEnabled() ||\n // Force integrations to be setup even if no DSN was set when we have\n // Spotlight enabled. This is particularly important for browser as we\n // don't support the `spotlight` option there and rely on the users\n // adding the `spotlightBrowserIntegration()` to their integrations which\n // wouldn't get initialized with the check below when there's no DSN set.\n this._options.integrations.some(({ name }) => name.startsWith('Spotlight'))\n ) {\n this._setupIntegrations();\n }\n }\n\n /**\n * Gets an installed integration by its name.\n *\n * @returns {Integration|undefined} The installed integration or `undefined` if no integration with that `name` was installed.\n */\n getIntegrationByName(integrationName) {\n return this._integrations[integrationName] ;\n }\n\n /**\n * Add an integration to the client.\n * This can be used to e.g. lazy load integrations.\n * In most cases, this should not be necessary,\n * and you're better off just passing the integrations via `integrations: []` at initialization time.\n * However, if you find the need to conditionally load & add an integration, you can use `addIntegration` to do so.\n */\n addIntegration(integration) {\n const isAlreadyInstalled = this._integrations[integration.name];\n\n // This hook takes care of only installing if not already installed\n setupIntegration(this, integration, this._integrations);\n // Here we need to check manually to make sure to not run this multiple times\n if (!isAlreadyInstalled) {\n afterSetupIntegrations(this, [integration]);\n }\n }\n\n /**\n * Send a fully prepared event to Sentry.\n */\n sendEvent(event, hint = {}) {\n this.emit('beforeSendEvent', event, hint);\n\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(env, createAttachmentEnvelopeItem(attachment));\n }\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(env).then(sendResponse => this.emit('afterSendEvent', event, sendResponse));\n }\n\n /**\n * Send a session or session aggregrates to Sentry.\n */\n sendSession(session) {\n // Backfill release and environment on session\n const { release: clientReleaseOption, environment: clientEnvironmentOption = DEFAULT_ENVIRONMENT } = this._options;\n if ('aggregates' in session) {\n const sessionAttrs = session.attrs || {};\n if (!sessionAttrs.release && !clientReleaseOption) {\n DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n return;\n }\n sessionAttrs.release = sessionAttrs.release || clientReleaseOption;\n sessionAttrs.environment = sessionAttrs.environment || clientEnvironmentOption;\n session.attrs = sessionAttrs;\n } else {\n if (!session.release && !clientReleaseOption) {\n DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n return;\n }\n session.release = session.release || clientReleaseOption;\n session.environment = session.environment || clientEnvironmentOption;\n }\n\n this.emit('beforeSendSession', session);\n\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(env);\n }\n\n /**\n * Record on the client that an event got dropped (ie, an event that will not be sent to Sentry).\n */\n recordDroppedEvent(reason, category, count = 1) {\n if (this._options.sendClientReports) {\n // We want to track each category (error, transaction, session, replay_event) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n DEBUG_BUILD && debug.log(`Recording outcome: \"${key}\"${count > 1 ? ` (${count} times)` : ''}`);\n this._outcomes[key] = (this._outcomes[key] || 0) + count;\n }\n }\n\n /* eslint-disable @typescript-eslint/unified-signatures */\n /**\n * Register a callback for whenever a span is started.\n * Receives the span as argument.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n\n /**\n * Register a hook on this client.\n */\n on(hook, callback) {\n const hookCallbacks = (this._hooks[hook] = this._hooks[hook] || new Set());\n\n // Wrap the callback in a function so that registering the same callback instance multiple\n // times results in the callback being called multiple times.\n // @ts-expect-error - The `callback` type is correct and must be a function due to the\n // individual, specific overloads of this function.\n // eslint-disable-next-line @typescript-eslint/ban-types\n const uniqueCallback = (...args) => callback(...args);\n\n hookCallbacks.add(uniqueCallback);\n\n // This function returns a callback execution handler that, when invoked,\n // deregisters a callback. This is crucial for managing instances where callbacks\n // need to be unregistered to prevent self-referencing in callback closures,\n // ensuring proper garbage collection.\n return () => {\n hookCallbacks.delete(uniqueCallback);\n };\n }\n\n /** Fire a hook whenever a span starts. */\n\n /**\n * Emit a hook that was previously registered via `on()`.\n */\n emit(hook, ...rest) {\n const callbacks = this._hooks[hook];\n if (callbacks) {\n callbacks.forEach(callback => callback(...rest));\n }\n }\n\n /**\n * Send an envelope to Sentry.\n */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async sendEnvelope(envelope) {\n this.emit('beforeEnvelope', envelope);\n\n if (this._isEnabled() && this._transport) {\n try {\n return await this._transport.send(envelope);\n } catch (reason) {\n DEBUG_BUILD && debug.error('Error while sending envelope:', reason);\n return {};\n }\n }\n\n DEBUG_BUILD && debug.error('Transport disabled');\n return {};\n }\n\n /**\n * Disposes of the client and releases all resources.\n *\n * Subclasses should override this method to clean up their own resources.\n * After calling dispose(), the client should not be used anymore.\n */\n dispose() {\n // Base class has no cleanup logic - subclasses implement their own\n }\n\n /* eslint-enable @typescript-eslint/unified-signatures */\n\n /** Setup integrations for this client. */\n _setupIntegrations() {\n const { integrations } = this._options;\n this._integrations = setupIntegrations(this, integrations);\n afterSetupIntegrations(this, integrations);\n }\n\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n // initially, set `crashed` based on the event level and update from exceptions if there are any later on\n let crashed = event.level === 'fatal';\n let errored = false;\n const exceptions = event.exception?.values;\n\n if (exceptions) {\n errored = true;\n // reset crashed to false if there are exceptions, to ensure `mechanism.handled` is respected.\n crashed = false;\n\n for (const ex of exceptions) {\n if (ex.mechanism?.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n async _isClientDoneProcessing(timeout) {\n let ticked = 0;\n\n while (!timeout || ticked < timeout) {\n await new Promise(resolve => setTimeout(resolve, 1));\n\n if (!this._numProcessing) {\n return true;\n }\n ticked++;\n }\n\n return false;\n }\n\n /** Determines whether this SDK is enabled and a transport is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._transport !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A new event with more information.\n */\n _prepareEvent(\n event,\n hint,\n currentScope,\n isolationScope,\n ) {\n const options = this.getOptions();\n const integrations = Object.keys(this._integrations);\n if (!hint.integrations && integrations?.length) {\n hint.integrations = integrations;\n }\n\n this.emit('preprocessEvent', event, hint);\n\n if (!event.type) {\n isolationScope.setLastEventId(event.event_id || hint.event_id);\n }\n\n return prepareEvent(options, event, hint, currentScope, this, isolationScope).then(evt => {\n if (evt === null) {\n return evt;\n }\n\n this.emit('postprocessEvent', evt, hint);\n\n evt.contexts = {\n trace: { ...evt.contexts?.trace, ...getTraceContextFromScope(currentScope) },\n ...evt.contexts,\n };\n\n const dynamicSamplingContext = getDynamicSamplingContextFromScope(this, currentScope);\n\n evt.sdkProcessingMetadata = {\n dynamicSamplingContext,\n ...evt.sdkProcessingMetadata,\n };\n\n return evt;\n });\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(\n event,\n hint = {},\n currentScope = getCurrentScope(),\n isolationScope = getIsolationScope(),\n ) {\n if (DEBUG_BUILD && isErrorEvent(event)) {\n debug.log(`Captured error event \\`${getPossibleEventMessages(event)[0] || ''}\\``);\n }\n\n return this._processEvent(event, hint, currentScope, isolationScope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if (DEBUG_BUILD) {\n if (_isDoNotSendEventError(reason)) {\n debug.log(reason.message);\n } else if (_isInternalError(reason)) {\n debug.warn(reason.message);\n } else {\n debug.warn(reason);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n _processEvent(\n event,\n hint,\n currentScope,\n isolationScope,\n ) {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || 'error';\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n const parsedSampleRate = typeof sampleRate === 'undefined' ? undefined : parseSampleRate(sampleRate);\n if (isError && typeof parsedSampleRate === 'number' && safeMathRandom() > parsedSampleRate) {\n this.recordDroppedEvent('sample_rate', 'error');\n return rejectedSyncPromise(\n _makeDoNotSendEventError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n ),\n );\n }\n\n const dataCategory = getDataCategoryByType(event.type);\n\n return this._prepareEvent(event, hint, currentScope, isolationScope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', dataCategory);\n throw _makeDoNotSendEventError('An event processor returned `null`, will not send event.');\n }\n\n const isInternalException = (hint.data )?.__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n\n const result = processBeforeSend(this, options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', dataCategory);\n if (isTransaction) {\n const spans = event.spans || [];\n // the transaction itself counts as one span, plus all the child spans that are added\n const spanCount = 1 + spans.length;\n this.recordDroppedEvent('before_send', 'span', spanCount);\n }\n throw _makeDoNotSendEventError(`${beforeSendLabel} returned \\`null\\`, will not send event.`);\n }\n\n const session = currentScope.getSession() || isolationScope.getSession();\n if (isError && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n if (isTransaction) {\n const spanCountBefore = processedEvent.sdkProcessingMetadata?.spanCountBeforeProcessing || 0;\n const spanCountAfter = processedEvent.spans ? processedEvent.spans.length : 0;\n\n const droppedSpanCount = spanCountBefore - spanCountAfter;\n if (droppedSpanCount > 0) {\n this.recordDroppedEvent('before_send', 'span', droppedSpanCount);\n }\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (_isDoNotSendEventError(reason) || _isInternalError(reason)) {\n throw reason;\n }\n\n this.captureException(reason, {\n mechanism: {\n handled: false,\n type: 'internal',\n },\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw _makeInternalError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n _process(taskProducer, dataCategory) {\n this._numProcessing++;\n\n void this._promiseBuffer.add(taskProducer).then(\n value => {\n this._numProcessing--;\n return value;\n },\n reason => {\n this._numProcessing--;\n\n if (reason === SENTRY_BUFFER_FULL_ERROR) {\n this.recordDroppedEvent('queue_overflow', dataCategory);\n }\n\n return reason;\n },\n );\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.entries(outcomes).map(([key, quantity]) => {\n const [reason, category] = key.split(':') ;\n return {\n reason,\n category,\n quantity,\n };\n });\n }\n\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n DEBUG_BUILD && debug.log('Flushing outcomes...');\n\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n DEBUG_BUILD && debug.log('No outcomes to send');\n return;\n }\n\n // This is really the only place where we want to check for a DSN and only send outcomes then\n if (!this._dsn) {\n DEBUG_BUILD && debug.log('No dsn provided, will not send outcomes');\n return;\n }\n\n DEBUG_BUILD && debug.log('Sending outcomes:', outcomes);\n\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n }\n\n /**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n */\n\n}\n\nfunction getDataCategoryByType(type) {\n return type === 'replay_event' ? 'replay' : type || 'error';\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult,\n beforeSendLabel,\n) {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw _makeInternalError(invalidValueError);\n }\n return event;\n },\n e => {\n throw _makeInternalError(`${beforeSendLabel} rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw _makeInternalError(invalidValueError);\n }\n return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n client,\n options,\n event,\n hint,\n) {\n const { beforeSend, beforeSendTransaction, beforeSendSpan, ignoreSpans } = options;\n let processedEvent = event;\n\n if (isErrorEvent(processedEvent) && beforeSend) {\n return beforeSend(processedEvent, hint);\n }\n\n if (isTransactionEvent(processedEvent)) {\n // Avoid processing if we don't have to\n if (beforeSendSpan || ignoreSpans) {\n // 1. Process root span\n const rootSpanJson = convertTransactionEventToSpanJson(processedEvent);\n\n // 1.1 If the root span should be ignored, drop the whole transaction\n if (ignoreSpans?.length && shouldIgnoreSpan(rootSpanJson, ignoreSpans)) {\n // dropping the whole transaction!\n return null;\n }\n\n // 1.2 If a `beforeSendSpan` callback is defined, process the root span\n if (beforeSendSpan) {\n const processedRootSpanJson = beforeSendSpan(rootSpanJson);\n if (!processedRootSpanJson) {\n showSpanDropWarning();\n } else {\n // update event with processed root span values\n processedEvent = merge(event, convertSpanJsonToTransactionEvent(processedRootSpanJson));\n }\n }\n\n // 2. Process child spans\n if (processedEvent.spans) {\n const processedSpans = [];\n\n const initialSpans = processedEvent.spans;\n\n for (const span of initialSpans) {\n // 2.a If the child span should be ignored, reparent it to the root span\n if (ignoreSpans?.length && shouldIgnoreSpan(span, ignoreSpans)) {\n reparentChildSpans(initialSpans, span);\n continue;\n }\n\n // 2.b If a `beforeSendSpan` callback is defined, process the child span\n if (beforeSendSpan) {\n const processedSpan = beforeSendSpan(span);\n if (!processedSpan) {\n showSpanDropWarning();\n processedSpans.push(span);\n } else {\n processedSpans.push(processedSpan);\n }\n } else {\n processedSpans.push(span);\n }\n }\n\n const droppedSpans = processedEvent.spans.length - processedSpans.length;\n if (droppedSpans) {\n client.recordDroppedEvent('before_send', 'span', droppedSpans);\n }\n\n processedEvent.spans = processedSpans;\n }\n }\n\n if (beforeSendTransaction) {\n if (processedEvent.spans) {\n // We store the # of spans before processing in SDK metadata,\n // so we can compare it afterwards to determine how many spans were dropped\n const spanCountBefore = processedEvent.spans.length;\n processedEvent.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n spanCountBeforeProcessing: spanCountBefore,\n };\n }\n return beforeSendTransaction(processedEvent , hint);\n }\n }\n\n return processedEvent;\n}\n\nfunction isErrorEvent(event) {\n return event.type === undefined;\n}\n\nfunction isTransactionEvent(event) {\n return event.type === 'transaction';\n}\n\n/**\n * Estimate the size of a metric in bytes.\n *\n * @param metric - The metric to estimate the size of.\n * @returns The estimated size of the metric in bytes.\n */\nfunction estimateMetricSizeInBytes(metric) {\n let weight = 0;\n\n // Estimate byte size of 2 bytes per character. This is a rough estimate JS strings are stored as UTF-16.\n if (metric.name) {\n weight += metric.name.length * 2;\n }\n\n // Add weight for number\n weight += 8;\n\n return weight + estimateAttributesSizeInBytes(metric.attributes);\n}\n\n/**\n * Estimate the size of a log in bytes.\n *\n * @param log - The log to estimate the size of.\n * @returns The estimated size of the log in bytes.\n */\nfunction estimateLogSizeInBytes(log) {\n let weight = 0;\n\n // Estimate byte size of 2 bytes per character. This is a rough estimate JS strings are stored as UTF-16.\n if (log.message) {\n weight += log.message.length * 2;\n }\n\n return weight + estimateAttributesSizeInBytes(log.attributes);\n}\n\n/**\n * Estimate the size of attributes in bytes.\n *\n * @param attributes - The attributes object to estimate the size of.\n * @returns The estimated size of the attributes in bytes.\n */\nfunction estimateAttributesSizeInBytes(attributes) {\n if (!attributes) {\n return 0;\n }\n\n let weight = 0;\n\n Object.values(attributes).forEach(value => {\n if (Array.isArray(value)) {\n weight += value.length * estimatePrimitiveSizeInBytes(value[0]);\n } else if (isPrimitive(value)) {\n weight += estimatePrimitiveSizeInBytes(value);\n } else {\n // For objects values, we estimate the size of the object as 100 bytes\n weight += 100;\n }\n });\n\n return weight;\n}\n\nfunction estimatePrimitiveSizeInBytes(value) {\n if (typeof value === 'string') {\n return value.length * 2;\n } else if (typeof value === 'number') {\n return 8;\n } else if (typeof value === 'boolean') {\n return 4;\n }\n\n return 0;\n}\n\nexport { Client };\n//# sourceMappingURL=client.js.map\n", - "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getFunctionName } from '../utils/stacktrace.js';\n\n// We keep the handlers globally\nconst handlers = {};\nconst instrumented = {};\n\n/** Add a handler function. */\nfunction addHandler(type, handler) {\n handlers[type] = handlers[type] || [];\n handlers[type].push(handler);\n}\n\n/**\n * Reset all instrumentation handlers.\n * This can be used by tests to ensure we have a clean slate of instrumentation handlers.\n */\nfunction resetInstrumentationHandlers() {\n Object.keys(handlers).forEach(key => {\n handlers[key ] = undefined;\n });\n}\n\n/** Maybe run an instrumentation function, unless it was already called. */\nfunction maybeInstrument(type, instrumentFn) {\n if (!instrumented[type]) {\n instrumented[type] = true;\n try {\n instrumentFn();\n } catch (e) {\n DEBUG_BUILD && debug.error(`Error while instrumenting ${type}`, e);\n }\n }\n}\n\n/** Trigger handlers for a given instrumentation type. */\nfunction triggerHandlers(type, data) {\n const typeHandlers = type && handlers[type];\n if (!typeHandlers) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n debug.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\nexport { addHandler, maybeInstrument, resetInstrumentationHandlers, triggerHandlers };\n//# sourceMappingURL=handlers.js.map\n", - "import { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnErrorHandler = null;\n\n/**\n * Add an instrumentation handler for when an error is captured by the global error handler.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addGlobalErrorInstrumentationHandler(handler) {\n const type = 'error';\n addHandler(type, handler);\n maybeInstrument(type, instrumentError);\n}\n\nfunction instrumentError() {\n _oldOnErrorHandler = GLOBAL_OBJ.onerror;\n\n // Note: The reason we are doing window.onerror instead of window.addEventListener('error')\n // is that we are using this handler in the Loader Script, to handle buffered errors consistently\n GLOBAL_OBJ.onerror = function (\n msg,\n url,\n line,\n column,\n error,\n ) {\n const handlerData = {\n column,\n error,\n line,\n msg,\n url,\n };\n triggerHandlers('error', handlerData);\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n\n GLOBAL_OBJ.onerror.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalErrorInstrumentationHandler };\n//# sourceMappingURL=globalError.js.map\n", - "import { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnUnhandledRejectionHandler = null;\n\n/**\n * Add an instrumentation handler for when an unhandled promise rejection is captured.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addGlobalUnhandledRejectionInstrumentationHandler(\n handler,\n) {\n const type = 'unhandledrejection';\n addHandler(type, handler);\n maybeInstrument(type, instrumentUnhandledRejection);\n}\n\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = GLOBAL_OBJ.onunhandledrejection;\n\n // Note: The reason we are doing window.onunhandledrejection instead of window.addEventListener('unhandledrejection')\n // is that we are using this handler in the Loader Script, to handle buffered rejections consistently\n GLOBAL_OBJ.onunhandledrejection = function (e) {\n const handlerData = e;\n triggerHandlers('unhandledrejection', handlerData);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n\n GLOBAL_OBJ.onunhandledrejection.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalUnhandledRejectionInstrumentationHandler };\n//# sourceMappingURL=globalUnhandledRejection.js.map\n", - "import { DEBUG_BUILD } from '../debug-build.js';\nimport { addGlobalErrorInstrumentationHandler } from '../instrument/globalError.js';\nimport { addGlobalUnhandledRejectionInstrumentationHandler } from '../instrument/globalUnhandledRejection.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getActiveSpan, getRootSpan } from '../utils/spanUtils.js';\nimport { SPAN_STATUS_ERROR } from './spanstatus.js';\n\nlet errorsInstrumented = false;\n\n/**\n * Ensure that global errors automatically set the active span status.\n */\nfunction registerSpanErrorInstrumentation() {\n if (errorsInstrumented) {\n return;\n }\n\n /**\n * If an error or unhandled promise occurs, we mark the active root span as failed\n */\n function errorCallback() {\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n if (rootSpan) {\n const message = 'internal_error';\n DEBUG_BUILD && debug.log(`[Tracing] Root span: ${message} -> Global error occurred`);\n rootSpan.setStatus({ code: SPAN_STATUS_ERROR, message });\n }\n }\n\n // The function name will be lost when bundling but we need to be able to identify this listener later to maintain the\n // node.js default exit behaviour\n errorCallback.tag = 'sentry_tracingErrorCallback';\n\n errorsInstrumented = true;\n addGlobalErrorInstrumentationHandler(errorCallback);\n addGlobalUnhandledRejectionInstrumentationHandler(errorCallback);\n}\n\nexport { registerSpanErrorInstrumentation };\n//# sourceMappingURL=errors.js.map\n", - "/**\n * Takes the SDK metadata and adds the user-agent header to the transport options.\n * This ensures that the SDK sends the user-agent header with SDK name and version to\n * all requests made by the transport.\n *\n * @see https://develop.sentry.dev/sdk/overview/#user-agent\n */\nfunction addUserAgentToTransportHeaders(options) {\n const sdkMetadata = options._metadata?.sdk;\n const sdkUserAgent =\n sdkMetadata?.name && sdkMetadata?.version ? `${sdkMetadata?.name}/${sdkMetadata?.version}` : undefined;\n\n options.transportOptions = {\n ...options.transportOptions,\n headers: {\n ...(sdkUserAgent && { 'user-agent': sdkUserAgent }),\n ...options.transportOptions?.headers,\n },\n };\n}\n\nexport { addUserAgentToTransportHeaders };\n//# sourceMappingURL=userAgent.js.map\n", - "import { isParameterizedString, isError, isPlainObject, isErrorEvent } from './is.js';\nimport { addExceptionMechanism, addExceptionTypeValue } from './misc.js';\nimport { normalizeToSize } from './normalize.js';\nimport { extractExceptionKeysForMessage } from './object.js';\n\n/**\n * Extracts stack frames from the error.stack string\n */\nfunction parseStackFrames(stackParser, error) {\n return stackParser(error.stack || '', 1);\n}\n\nfunction hasSentryFetchUrlHost(error) {\n return isError(error) && '__sentry_fetch_url_host__' in error && typeof error.__sentry_fetch_url_host__ === 'string';\n}\n\n/**\n * Enhances the error message with the hostname for better Sentry error reporting.\n * This allows third-party packages to still match on the original error message,\n * while Sentry gets the enhanced version with context.\n *\n * Only used internally\n * @hidden\n */\nfunction _enhanceErrorWithSentryInfo(error) {\n // If the error has a __sentry_fetch_url_host__ property (added by fetch instrumentation),\n // enhance the error message with the hostname.\n if (hasSentryFetchUrlHost(error)) {\n return `${error.message} (${error.__sentry_fetch_url_host__})`;\n }\n\n return error.message;\n}\n\n/**\n * Extracts stack frames from the error and builds a Sentry Exception\n */\nfunction exceptionFromError(stackParser, error) {\n const exception = {\n type: error.name || error.constructor.name,\n value: _enhanceErrorWithSentryInfo(error),\n };\n\n const frames = parseStackFrames(stackParser, error);\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n return exception;\n}\n\n/** If a plain object has a property that is an `Error`, return this error. */\nfunction getErrorPropertyFromObject(obj) {\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n const value = obj[prop];\n if (value instanceof Error) {\n return value;\n }\n }\n }\n\n return undefined;\n}\n\nfunction getMessageForObject(exception) {\n if ('name' in exception && typeof exception.name === 'string') {\n let message = `'${exception.name}' captured as exception`;\n\n if ('message' in exception && typeof exception.message === 'string') {\n message += ` with message '${exception.message}'`;\n }\n\n return message;\n } else if ('message' in exception && typeof exception.message === 'string') {\n return exception.message;\n }\n\n const keys = extractExceptionKeysForMessage(exception);\n\n // Some ErrorEvent instances do not have an `error` property, which is why they are not handled before\n // We still want to try to get a decent message for these cases\n if (isErrorEvent(exception)) {\n return `Event \\`ErrorEvent\\` captured as exception with message \\`${exception.message}\\``;\n }\n\n const className = getObjectClassName(exception);\n\n return `${\n className && className !== 'Object' ? `'${className}'` : 'Object'\n } captured as exception with keys: ${keys}`;\n}\n\nfunction getObjectClassName(obj) {\n try {\n const prototype = Object.getPrototypeOf(obj);\n return prototype ? prototype.constructor.name : undefined;\n } catch {\n // ignore errors here\n }\n}\n\nfunction getException(\n client,\n mechanism,\n exception,\n hint,\n) {\n if (isError(exception)) {\n return [exception, undefined];\n }\n\n // Mutate this!\n mechanism.synthetic = true;\n\n if (isPlainObject(exception)) {\n const normalizeDepth = client?.getOptions().normalizeDepth;\n const extras = { ['__serialized__']: normalizeToSize(exception, normalizeDepth) };\n\n const errorFromProp = getErrorPropertyFromObject(exception);\n if (errorFromProp) {\n return [errorFromProp, extras];\n }\n\n const message = getMessageForObject(exception);\n const ex = hint?.syntheticException || new Error(message);\n ex.message = message;\n\n return [ex, extras];\n }\n\n // This handles when someone does: `throw \"something awesome\";`\n // We use synthesized Error here so we can extract a (rough) stack trace.\n const ex = hint?.syntheticException || new Error(exception );\n ex.message = `${exception}`;\n\n return [ex, undefined];\n}\n\n/**\n * Builds and Event from a Exception\n * @hidden\n */\nfunction eventFromUnknownInput(\n client,\n stackParser,\n exception,\n hint,\n) {\n const providedMechanism = hint?.data && (hint.data ).mechanism;\n const mechanism = providedMechanism || {\n handled: true,\n type: 'generic',\n };\n\n const [ex, extras] = getException(client, mechanism, exception, hint);\n\n const event = {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n\n if (extras) {\n event.extra = extras;\n }\n\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, mechanism);\n\n return {\n ...event,\n event_id: hint?.event_id,\n };\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n level = 'info',\n hint,\n attachStacktrace,\n) {\n const event = {\n event_id: hint?.event_id,\n level,\n };\n\n if (attachStacktrace && hint?.syntheticException) {\n const frames = parseStackFrames(stackParser, hint.syntheticException);\n if (frames.length) {\n event.exception = {\n values: [\n {\n value: message,\n stacktrace: { frames },\n },\n ],\n };\n addExceptionMechanism(event, { synthetic: true });\n }\n }\n\n if (isParameterizedString(message)) {\n const { __sentry_template_string__, __sentry_template_values__ } = message;\n\n event.logentry = {\n message: __sentry_template_string__,\n params: __sentry_template_values__,\n };\n return event;\n }\n\n event.message = message;\n return event;\n}\n\nexport { _enhanceErrorWithSentryInfo, eventFromMessage, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n", - "import { createCheckInEnvelope } from './checkin.js';\nimport { Client } from './client.js';\nimport { getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { registerSpanErrorInstrumentation } from './tracing/errors.js';\nimport { debug } from './utils/debug-logger.js';\nimport { uuid4 } from './utils/misc.js';\nimport { DEFAULT_TRANSPORT_BUFFER_SIZE } from './transports/base.js';\nimport { addUserAgentToTransportHeaders } from './transports/userAgent.js';\nimport { eventFromUnknownInput, eventFromMessage } from './utils/eventbuilder.js';\nimport { makePromiseBuffer } from './utils/promisebuffer.js';\nimport { resolvedSyncPromise } from './utils/syncpromise.js';\nimport { _getTraceInfoFromScope } from './utils/trace-info.js';\n\n/**\n * The Sentry Server Runtime Client SDK.\n */\nclass ServerRuntimeClient\n\n extends Client {\n /**\n * Creates a new Edge SDK instance.\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n // Server clients always support tracing\n registerSpanErrorInstrumentation();\n\n addUserAgentToTransportHeaders(options);\n\n super(options);\n\n this._setUpMetricsProcessing();\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n const event = eventFromUnknownInput(this, this._options.stackParser, exception, hint);\n event.level = 'error';\n\n return resolvedSyncPromise(event);\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n level = 'info',\n hint,\n ) {\n return resolvedSyncPromise(\n eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace),\n );\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint, scope) {\n setCurrentRequestSessionErroredOrCrashed(hint);\n return super.captureException(exception, hint, scope);\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, scope) {\n // If the event is of type Exception, then a request session should be captured\n const isException = !event.type && event.exception?.values && event.exception.values.length > 0;\n if (isException) {\n setCurrentRequestSessionErroredOrCrashed(hint);\n }\n\n return super.captureEvent(event, hint, scope);\n }\n\n /**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\n captureCheckIn(checkIn, monitorConfig, scope) {\n const id = 'checkInId' in checkIn && checkIn.checkInId ? checkIn.checkInId : uuid4();\n if (!this._isEnabled()) {\n DEBUG_BUILD && debug.warn('SDK not enabled, will not capture check-in.');\n return id;\n }\n\n const options = this.getOptions();\n const { release, environment, tunnel } = options;\n\n const serializedCheckIn = {\n check_in_id: id,\n monitor_slug: checkIn.monitorSlug,\n status: checkIn.status,\n release,\n environment,\n };\n\n if ('duration' in checkIn) {\n serializedCheckIn.duration = checkIn.duration;\n }\n\n if (monitorConfig) {\n serializedCheckIn.monitor_config = {\n schedule: monitorConfig.schedule,\n checkin_margin: monitorConfig.checkinMargin,\n max_runtime: monitorConfig.maxRuntime,\n timezone: monitorConfig.timezone,\n failure_issue_threshold: monitorConfig.failureIssueThreshold,\n recovery_threshold: monitorConfig.recoveryThreshold,\n };\n }\n\n const [dynamicSamplingContext, traceContext] = _getTraceInfoFromScope(this, scope);\n if (traceContext) {\n serializedCheckIn.contexts = {\n trace: traceContext,\n };\n }\n\n const envelope = createCheckInEnvelope(\n serializedCheckIn,\n dynamicSamplingContext,\n this.getSdkMetadata(),\n tunnel,\n this.getDsn(),\n );\n\n DEBUG_BUILD && debug.log('Sending checkin:', checkIn.monitorSlug, checkIn.status);\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n\n return id;\n }\n\n /**\n * Disposes of the client and releases all resources.\n *\n * This method clears all internal state to allow the client to be garbage collected.\n * It clears hooks, event processors, integrations, transport, and other internal references.\n *\n * Call this method after flushing to allow the client to be garbage collected.\n * After calling dispose(), the client should not be used anymore.\n *\n * Subclasses should override this method to clean up their own resources and call `super.dispose()`.\n */\n dispose() {\n DEBUG_BUILD && debug.log('Disposing client...');\n\n for (const hookName of Object.keys(this._hooks)) {\n this._hooks[hookName]?.clear();\n }\n\n this._hooks = {};\n this._eventProcessors.length = 0;\n this._integrations = {};\n this._outcomes = {};\n (this )._transport = undefined;\n this._promiseBuffer = makePromiseBuffer(DEFAULT_TRANSPORT_BUFFER_SIZE);\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(\n event,\n hint,\n currentScope,\n isolationScope,\n ) {\n if (this._options.platform) {\n event.platform = event.platform || this._options.platform;\n }\n\n if (this._options.runtime) {\n event.contexts = {\n ...event.contexts,\n runtime: event.contexts?.runtime || this._options.runtime,\n };\n }\n\n if (this._options.serverName) {\n event.server_name = event.server_name || this._options.serverName;\n }\n\n return super._prepareEvent(event, hint, currentScope, isolationScope);\n }\n\n /**\n * Process a server-side metric before it is captured.\n */\n _setUpMetricsProcessing() {\n this.on('processMetric', metric => {\n if (this._options.serverName) {\n metric.attributes = {\n 'server.address': this._options.serverName,\n ...metric.attributes,\n };\n }\n });\n }\n}\n\nfunction setCurrentRequestSessionErroredOrCrashed(eventHint) {\n const requestSession = getIsolationScope().getScopeData().sdkProcessingMetadata.requestSession;\n if (requestSession) {\n // We mutate instead of doing `setSdkProcessingMetadata` because the http integration stores away a particular\n // isolationScope. If that isolation scope is forked, setting the processing metadata here will not mutate the\n // original isolation scope that the http integration stored away.\n const isHandledException = eventHint?.mechanism?.handled ?? true;\n // A request session can go from \"errored\" -> \"crashed\" but not \"crashed\" -> \"errored\".\n // Crashed (unhandled exception) is worse than errored (handled exception).\n if (isHandledException && requestSession.status !== 'crashed') {\n requestSession.status = 'errored';\n } else if (!isHandledException) {\n requestSession.status = 'crashed';\n }\n }\n}\n\nexport { ServerRuntimeClient };\n//# sourceMappingURL=server-runtime-client.js.map\n", - "import { DEBUG_BUILD } from '../../debug-build.js';\nimport { debug } from '../debug-logger.js';\n\n/**\n * Registry tracking which AI provider modules should skip instrumentation wrapping.\n *\n * This prevents duplicate spans when a higher-level integration (like LangChain)\n * already instruments AI providers at a higher abstraction level.\n */\nconst SKIPPED_AI_PROVIDERS = new Set();\n\n/**\n * Mark AI provider modules to skip instrumentation wrapping.\n *\n * This prevents duplicate spans when a higher-level integration (like LangChain)\n * already instruments AI providers at a higher abstraction level.\n *\n * @internal\n * @param modules - Array of npm module names to skip (e.g., '@anthropic-ai/sdk', 'openai')\n *\n * @example\n * ```typescript\n * // In LangChain integration\n * _INTERNAL_skipAiProviderWrapping(['@anthropic-ai/sdk', 'openai', '@google/generative-ai']);\n * ```\n */\nfunction _INTERNAL_skipAiProviderWrapping(modules) {\n modules.forEach(module => {\n SKIPPED_AI_PROVIDERS.add(module);\n DEBUG_BUILD && debug.log(`AI provider \"${module}\" wrapping will be skipped`);\n });\n}\n\n/**\n * Check if an AI provider module should skip instrumentation wrapping.\n *\n * @internal\n * @param module - The npm module name (e.g., '@anthropic-ai/sdk', 'openai')\n * @returns true if wrapping should be skipped\n *\n * @example\n * ```typescript\n * // In AI provider instrumentation\n * if (_INTERNAL_shouldSkipAiProviderWrapping('@anthropic-ai/sdk')) {\n * return Reflect.construct(Original, args); // Don't instrument\n * }\n * ```\n */\nfunction _INTERNAL_shouldSkipAiProviderWrapping(module) {\n return SKIPPED_AI_PROVIDERS.has(module);\n}\n\n/**\n * Clear all AI provider skip registrations.\n *\n * This is automatically called at the start of Sentry.init() to ensure a clean state\n * between different client initializations.\n *\n * @internal\n */\nfunction _INTERNAL_clearAiProviderSkips() {\n SKIPPED_AI_PROVIDERS.clear();\n DEBUG_BUILD && debug.log('Cleared AI provider skip registrations');\n}\n\nexport { _INTERNAL_clearAiProviderSkips, _INTERNAL_shouldSkipAiProviderWrapping, _INTERNAL_skipAiProviderWrapping };\n//# sourceMappingURL=providerSkip.js.map\n", - "const FALSY_ENV_VALUES = new Set(['false', 'f', 'n', 'no', 'off', '0']);\nconst TRUTHY_ENV_VALUES = new Set(['true', 't', 'y', 'yes', 'on', '1']);\n\n/**\n * A helper function which casts an ENV variable value to `true` or `false` using the constants defined above.\n * In strict mode, it may return `null` if the value doesn't match any of the predefined values.\n *\n * @param value The value of the env variable\n * @param options -- Only has `strict` key for now, which requires a strict match for `true` in TRUTHY_ENV_VALUES\n * @returns true/false if the lowercase value matches the predefined values above. If not, null in strict mode,\n * and Boolean(value) in loose mode.\n */\nfunction envToBool(value, options) {\n const normalized = String(value).toLowerCase();\n\n if (FALSY_ENV_VALUES.has(normalized)) {\n return false;\n }\n\n if (TRUTHY_ENV_VALUES.has(normalized)) {\n return true;\n }\n\n return options?.strict ? null : Boolean(value);\n}\n\nexport { FALSY_ENV_VALUES, TRUTHY_ENV_VALUES, envToBool };\n//# sourceMappingURL=envToBool.js.map\n", - "import { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_URL_FULL, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes.js';\n\n// Curious about `thismessage:/`? See: https://www.rfc-editor.org/rfc/rfc2557.html\n// > When the methods above do not yield an absolute URI, a base URL\n// > of \"thismessage:/\" MUST be employed. This base URL has been\n// > defined for the sole purpose of resolving relative references\n// > within a multipart/related structure when no other base URI is\n// > specified.\n//\n// We need to provide a base URL to `parseStringToURLObject` because the fetch API gives us a\n// relative URL sometimes.\n//\n// This is the only case where we need to provide a base URL to `parseStringToURLObject`\n// because the relative URL is not valid on its own.\nconst DEFAULT_BASE_URL = 'thismessage:/';\n\n/**\n * Checks if the URL object is relative\n *\n * @param url - The URL object to check\n * @returns True if the URL object is relative, false otherwise\n */\nfunction isURLObjectRelative(url) {\n return 'isRelative' in url;\n}\n\n/**\n * Parses string to a URL object\n *\n * @param url - The URL to parse\n * @returns The parsed URL object or undefined if the URL is invalid\n */\nfunction parseStringToURLObject(url, urlBase) {\n const isRelative = url.indexOf('://') <= 0 && url.indexOf('//') !== 0;\n const base = urlBase ?? (isRelative ? DEFAULT_BASE_URL : undefined);\n try {\n // Use `canParse` to short-circuit the URL constructor if it's not a valid URL\n // This is faster than trying to construct the URL and catching the error\n // Node 20+, Chrome 120+, Firefox 115+, Safari 17+\n if ('canParse' in URL && !(URL ).canParse(url, base)) {\n return undefined;\n }\n\n const fullUrlObject = new URL(url, base);\n if (isRelative) {\n // Because we used a fake base URL, we need to return a relative URL object.\n // We cannot return anything about the origin, host, etc. because it will refer to the fake base URL.\n return {\n isRelative,\n pathname: fullUrlObject.pathname,\n search: fullUrlObject.search,\n hash: fullUrlObject.hash,\n };\n }\n return fullUrlObject;\n } catch {\n // empty body\n }\n\n return undefined;\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span name\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nfunction getSanitizedUrlStringFromUrlObject(url) {\n if (isURLObjectRelative(url)) {\n return url.pathname;\n }\n\n const newUrl = new URL(url);\n newUrl.search = '';\n newUrl.hash = '';\n if (['80', '443'].includes(newUrl.port)) {\n newUrl.port = '';\n }\n if (newUrl.password) {\n newUrl.password = '%filtered%';\n }\n if (newUrl.username) {\n newUrl.username = '%filtered%';\n }\n\n return newUrl.toString();\n}\n\nfunction getHttpSpanNameFromUrlObject(\n urlObject,\n kind,\n request,\n routeName,\n) {\n const method = request?.method?.toUpperCase() ?? 'GET';\n const route = routeName\n ? routeName\n : urlObject\n ? kind === 'client'\n ? getSanitizedUrlStringFromUrlObject(urlObject)\n : urlObject.pathname\n : '/';\n\n return `${method} ${route}`;\n}\n\n/**\n * Takes a parsed URL object and returns a set of attributes for the span\n * that represents the HTTP request for that url. This is used for both server\n * and client http spans.\n *\n * Follows https://opentelemetry.io/docs/specs/semconv/http/.\n *\n * @param urlObject - see {@link parseStringToURLObject}\n * @param kind - The type of HTTP operation (server or client)\n * @param spanOrigin - The origin of the span\n * @param request - The request object, see {@link PartialRequest}\n * @param routeName - The name of the route, must be low cardinality\n * @returns The span name and attributes for the HTTP operation\n */\nfunction getHttpSpanDetailsFromUrlObject(\n urlObject,\n kind,\n spanOrigin,\n request,\n routeName,\n) {\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin,\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n };\n\n if (routeName) {\n // This is based on https://opentelemetry.io/docs/specs/semconv/http/http-spans/#name\n attributes[kind === 'server' ? 'http.route' : 'url.template'] = routeName;\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = 'route';\n }\n\n if (request?.method) {\n attributes[SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD] = request.method.toUpperCase();\n }\n\n if (urlObject) {\n if (urlObject.search) {\n attributes['url.query'] = urlObject.search;\n }\n if (urlObject.hash) {\n attributes['url.fragment'] = urlObject.hash;\n }\n if (urlObject.pathname) {\n attributes['url.path'] = urlObject.pathname;\n if (urlObject.pathname === '/') {\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = 'route';\n }\n }\n\n if (!isURLObjectRelative(urlObject)) {\n attributes[SEMANTIC_ATTRIBUTE_URL_FULL] = urlObject.href;\n if (urlObject.port) {\n attributes['url.port'] = urlObject.port;\n }\n if (urlObject.protocol) {\n attributes['url.scheme'] = urlObject.protocol;\n }\n if (urlObject.hostname) {\n attributes[kind === 'server' ? 'server.address' : 'url.domain'] = urlObject.hostname;\n }\n }\n }\n\n return [getHttpSpanNameFromUrlObject(urlObject, kind, request, routeName), attributes];\n}\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url) {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n search: query,\n hash: fragment,\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nfunction stripUrlQueryAndFragment(urlPath) {\n return (urlPath.split(/[?#]/, 1) )[0];\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span name\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nfunction getSanitizedUrlString(url) {\n const { protocol, host, path } = url;\n\n const filteredHost =\n host\n // Always filter out authority\n ?.replace(/^.*@/, '[filtered]:[filtered]@')\n // Don't show standard :80 (http) and :443 (https) ports to reduce the noise\n // TODO: Use new URL global if it exists\n .replace(/(:80)$/, '')\n .replace(/(:443)$/, '') || '';\n\n return `${protocol ? `${protocol}://` : ''}${filteredHost}${path}`;\n}\n\n/**\n * Strips the content from a data URL, returning a placeholder with the MIME type.\n *\n * Data URLs can be very long (e.g. base64 encoded scripts for Web Workers),\n * with little valuable information, often leading to envelopes getting dropped due\n * to size limit violations. Therefore, we strip data URLs and replace them with a\n * placeholder.\n *\n * @param url - The URL to process\n * @param includeDataPrefix - If true, includes the first 10 characters of the data stream\n * for debugging (e.g., to identify magic bytes like WASM's AGFzbQ).\n * Defaults to true.\n * @returns For data URLs, returns a short format like `data:text/javascript;base64,SGVsbG8gV2... [truncated]`.\n * For non-data URLs, returns the original URL unchanged.\n */\nfunction stripDataUrlContent(url, includeDataPrefix = true) {\n if (url.startsWith('data:')) {\n // Match the MIME type (everything after 'data:' until the first ';' or ',')\n const match = url.match(/^data:([^;,]+)/);\n const mimeType = match ? match[1] : 'text/plain';\n const isBase64 = url.includes(';base64,');\n\n // Find where the actual data starts (after the comma)\n const dataStart = url.indexOf(',');\n let dataPrefix = '';\n if (includeDataPrefix && dataStart !== -1) {\n const data = url.slice(dataStart + 1);\n // Include first 10 chars of data to help identify content (e.g., magic bytes)\n dataPrefix = data.length > 10 ? `${data.slice(0, 10)}... [truncated]` : data;\n }\n\n return `data:${mimeType}${isBase64 ? ',base64' : ''}${dataPrefix ? `,${dataPrefix}` : ''}`;\n }\n return url;\n}\n\nexport { getHttpSpanDetailsFromUrlObject, getSanitizedUrlString, getSanitizedUrlStringFromUrlObject, isURLObjectRelative, parseStringToURLObject, parseUrl, stripDataUrlContent, stripUrlQueryAndFragment };\n//# sourceMappingURL=url.js.map\n", - "import { SDK_VERSION } from './version.js';\n\n/**\n * A builder for the SDK metadata in the options for the SDK initialization.\n *\n * Note: This function is identical to `buildMetadata` in Remix and NextJS and SvelteKit.\n * We don't extract it for bundle size reasons.\n * @see https://github.com/getsentry/sentry-javascript/pull/7404\n * @see https://github.com/getsentry/sentry-javascript/pull/4196\n *\n * If you make changes to this function consider updating the others as well.\n *\n * @param options SDK options object that gets mutated\n * @param names list of package names\n */\nfunction applySdkMetadata(options, name, names = [name], source = 'npm') {\n const sdk = ((options._metadata = options._metadata || {}).sdk = options._metadata.sdk || {});\n\n if (!sdk.name) {\n sdk.name = `sentry.javascript.${name}`;\n sdk.packages = names.map(name => ({\n name: `${source}:@sentry/${name}`,\n version: SDK_VERSION,\n }));\n sdk.version = SDK_VERSION;\n }\n}\n\nexport { applySdkMetadata };\n//# sourceMappingURL=sdkMetadata.js.map\n", - "import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getClient, getCurrentScope } from '../currentScopes.js';\nimport { isEnabled } from '../exports.js';\nimport { debug } from './debug-logger.js';\nimport { getActiveSpan, spanToTraceHeader, spanToTraceparentHeader } from './spanUtils.js';\nimport { getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromScope } from '../tracing/dynamicSamplingContext.js';\nimport { dynamicSamplingContextToSentryBaggageHeader } from './baggage.js';\nimport { TRACEPARENT_REGEXP, generateSentryTraceHeader, generateTraceparentHeader } from './tracing.js';\n\n/**\n * Extracts trace propagation data from the current span or from the client's scope (via transaction or propagation\n * context) and serializes it to `sentry-trace` and `baggage` values. These values can be used to propagate\n * a trace via our tracing Http headers or Html `` tags.\n *\n * This function also applies some validation to the generated sentry-trace and baggage values to ensure that\n * only valid strings are returned.\n *\n * If (@param options.propagateTraceparent) is `true`, the function will also generate a `traceparent` value,\n * following the W3C traceparent header format.\n *\n * @returns an object with the tracing data values. The object keys are the name of the tracing key to be used as header\n * or meta tag name.\n */\nfunction getTraceData(\n options = {},\n) {\n const client = options.client || getClient();\n if (!isEnabled() || !client) {\n return {};\n }\n\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getTraceData) {\n return acs.getTraceData(options);\n }\n\n const scope = options.scope || getCurrentScope();\n const span = options.span || getActiveSpan();\n const sentryTrace = span ? spanToTraceHeader(span) : scopeToTraceHeader(scope);\n const dsc = span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromScope(client, scope);\n const baggage = dynamicSamplingContextToSentryBaggageHeader(dsc);\n\n const isValidSentryTraceHeader = TRACEPARENT_REGEXP.test(sentryTrace);\n if (!isValidSentryTraceHeader) {\n debug.warn('Invalid sentry-trace data. Cannot generate trace data');\n return {};\n }\n\n const traceData = {\n 'sentry-trace': sentryTrace,\n baggage,\n };\n\n if (options.propagateTraceparent) {\n traceData.traceparent = span ? spanToTraceparentHeader(span) : scopeToTraceparentHeader(scope);\n }\n\n return traceData;\n}\n\n/**\n * Get a sentry-trace header value for the given scope.\n */\nfunction scopeToTraceHeader(scope) {\n const { traceId, sampled, propagationSpanId } = scope.getPropagationContext();\n return generateSentryTraceHeader(traceId, propagationSpanId, sampled);\n}\n\nfunction scopeToTraceparentHeader(scope) {\n const { traceId, sampled, propagationSpanId } = scope.getPropagationContext();\n return generateTraceparentHeader(traceId, propagationSpanId, sampled);\n}\n\nexport { getTraceData };\n//# sourceMappingURL=traceData.js.map\n", - "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { stringMatchesSomePattern } from './string.js';\n\nconst NOT_PROPAGATED_MESSAGE =\n '[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:';\n\n/**\n * Check if a given URL should be propagated to or not.\n * If no url is defined, or no trace propagation targets are defined, this will always return `true`.\n * You can also optionally provide a decision map, to cache decisions and avoid repeated regex lookups.\n */\nfunction shouldPropagateTraceForUrl(\n url,\n tracePropagationTargets,\n decisionMap,\n) {\n if (typeof url !== 'string' || !tracePropagationTargets) {\n return true;\n }\n\n const cachedDecision = decisionMap?.get(url);\n if (cachedDecision !== undefined) {\n DEBUG_BUILD && !cachedDecision && debug.log(NOT_PROPAGATED_MESSAGE, url);\n return cachedDecision;\n }\n\n const decision = stringMatchesSomePattern(url, tracePropagationTargets);\n decisionMap?.set(url, decision);\n\n DEBUG_BUILD && !decision && debug.log(NOT_PROPAGATED_MESSAGE, url);\n return decision;\n}\n\nexport { shouldPropagateTraceForUrl };\n//# sourceMappingURL=tracePropagationTargets.js.map\n", - "/**\n * Heavily simplified debounce function based on lodash.debounce.\n *\n * This function takes a callback function (@param fun) and delays its invocation\n * by @param wait milliseconds. Optionally, a maxWait can be specified in @param options,\n * which ensures that the callback is invoked at least once after the specified max. wait time.\n *\n * @param func the function whose invocation is to be debounced\n * @param wait the minimum time until the function is invoked after it was called once\n * @param options the options object, which can contain the `maxWait` property\n *\n * @returns the debounced version of the function, which needs to be called at least once to start the\n * debouncing process. Subsequent calls will reset the debouncing timer and, in case @paramfunc\n * was already invoked in the meantime, return @param func's return value.\n * The debounced function has two additional properties:\n * - `flush`: Invokes the debounced function immediately and returns its return value\n * - `cancel`: Cancels the debouncing process and resets the debouncing timer\n */\nfunction debounce(func, wait, options) {\n let callbackReturnValue;\n\n let timerId;\n let maxTimerId;\n\n const maxWait = options?.maxWait ? Math.max(options.maxWait, wait) : 0;\n const setTimeoutImpl = options?.setTimeoutImpl || setTimeout;\n\n function invokeFunc() {\n cancelTimers();\n callbackReturnValue = func();\n return callbackReturnValue;\n }\n\n function cancelTimers() {\n timerId !== undefined && clearTimeout(timerId);\n maxTimerId !== undefined && clearTimeout(maxTimerId);\n timerId = maxTimerId = undefined;\n }\n\n function flush() {\n if (timerId !== undefined || maxTimerId !== undefined) {\n return invokeFunc();\n }\n return callbackReturnValue;\n }\n\n function debounced() {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeoutImpl(invokeFunc, wait);\n\n if (maxWait && maxTimerId === undefined) {\n maxTimerId = setTimeoutImpl(invokeFunc, maxWait);\n }\n\n return callbackReturnValue;\n }\n\n debounced.cancel = cancelTimers;\n debounced.flush = flush;\n return debounced;\n}\n\nexport { debounce };\n//# sourceMappingURL=debounce.js.map\n", - "/**\n * Transforms a `Headers` object that implements the `Web Fetch API` (https://developer.mozilla.org/en-US/docs/Web/API/Headers) into a simple key-value dict.\n * The header keys will be lower case: e.g. A \"Content-Type\" header will be stored as \"content-type\".\n */\nfunction winterCGHeadersToDict(winterCGHeaders) {\n const headers = {};\n try {\n winterCGHeaders.forEach((value, key) => {\n if (typeof value === 'string') {\n // We check that value is a string even though it might be redundant to make sure prototype pollution is not possible.\n headers[key] = value;\n }\n });\n } catch {\n // just return the empty headers\n }\n\n return headers;\n}\n\n/**\n * Convert common request headers to a simple dictionary.\n */\nfunction headersToDict(reqHeaders) {\n const headers = Object.create(null);\n\n try {\n Object.entries(reqHeaders).forEach(([key, value]) => {\n if (typeof value === 'string') {\n headers[key] = value;\n }\n });\n } catch {\n // just return the empty headers\n }\n\n return headers;\n}\n\n/**\n * Converts a `Request` object that implements the `Web Fetch API` (https://developer.mozilla.org/en-US/docs/Web/API/Headers) into the format that the `RequestData` integration understands.\n */\nfunction winterCGRequestToRequestData(req) {\n const headers = winterCGHeadersToDict(req.headers);\n\n return {\n method: req.method,\n url: req.url,\n query_string: extractQueryParamsFromUrl(req.url),\n headers,\n // TODO: Can we extract body data from the request?\n };\n}\n\n/**\n * Convert a HTTP request object to RequestEventData to be passed as normalizedRequest.\n * Instead of allowing `PolymorphicRequest` to be passed,\n * we want to be more specific and generally require a http.IncomingMessage-like object.\n */\nfunction httpRequestToRequestData(request\n\n) {\n const headers = request.headers || {};\n\n // Check for x-forwarded-host first, then fall back to host header\n const forwardedHost = typeof headers['x-forwarded-host'] === 'string' ? headers['x-forwarded-host'] : undefined;\n const host = forwardedHost || (typeof headers.host === 'string' ? headers.host : undefined);\n\n // Check for x-forwarded-proto first, then fall back to existing protocol detection\n const forwardedProto = typeof headers['x-forwarded-proto'] === 'string' ? headers['x-forwarded-proto'] : undefined;\n const protocol = forwardedProto || request.protocol || (request.socket?.encrypted ? 'https' : 'http');\n\n const url = request.url || '';\n\n const absoluteUrl = getAbsoluteUrl({\n url,\n host,\n protocol,\n });\n\n // This is non-standard, but may be sometimes set\n // It may be overwritten later by our own body handling\n const data = (request ).body || undefined;\n\n // This is non-standard, but may be set on e.g. Next.js or Express requests\n const cookies = (request ).cookies;\n\n return {\n url: absoluteUrl,\n method: request.method,\n query_string: extractQueryParamsFromUrl(url),\n headers: headersToDict(headers),\n cookies,\n data,\n };\n}\n\nfunction getAbsoluteUrl({\n url,\n protocol,\n host,\n}\n\n) {\n if (url?.startsWith('http')) {\n return url;\n }\n\n if (url && host) {\n return `${protocol}://${host}${url}`;\n }\n\n return undefined;\n}\n\nconst SENSITIVE_HEADER_SNIPPETS = [\n 'auth',\n 'token',\n 'secret',\n 'session', // for the user_session cookie\n 'password',\n 'passwd',\n 'pwd',\n 'key',\n 'jwt',\n 'bearer',\n 'sso',\n 'saml',\n 'csrf',\n 'xsrf',\n 'credentials',\n // Always treat cookie headers as sensitive in case individual key-value cookie pairs cannot properly be extracted\n 'set-cookie',\n 'cookie',\n];\n\nconst PII_HEADER_SNIPPETS = ['x-forwarded-', '-user'];\n\n/**\n * Converts incoming HTTP request or response headers to OpenTelemetry span attributes following semantic conventions.\n * Header names are converted to the format: http..header.\n * where is the header name in lowercase with dashes converted to underscores.\n *\n * @param lifecycle - The lifecycle of the headers, either 'request' or 'response'\n *\n * @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/#http-request-header\n * @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/#http-response-header\n *\n * @see https://getsentry.github.io/sentry-conventions/attributes/http/#http-request-header-key\n * @see https://getsentry.github.io/sentry-conventions/attributes/http/#http-response-header-key\n */\nfunction httpHeadersToSpanAttributes(\n headers,\n sendDefaultPii = false,\n lifecycle = 'request',\n) {\n const spanAttributes = {};\n\n try {\n Object.entries(headers).forEach(([key, value]) => {\n if (value == null) {\n return;\n }\n\n const lowerCasedHeaderKey = key.toLowerCase();\n const isCookieHeader = lowerCasedHeaderKey === 'cookie' || lowerCasedHeaderKey === 'set-cookie';\n\n if (isCookieHeader && typeof value === 'string' && value !== '') {\n // Set-Cookie: single cookie with attributes (\"name=value; HttpOnly; Secure\")\n // Cookie: multiple cookies separated by \"; \" (\"cookie1=value1; cookie2=value2\")\n const isSetCookie = lowerCasedHeaderKey === 'set-cookie';\n const semicolonIndex = value.indexOf(';');\n const cookieString = isSetCookie && semicolonIndex !== -1 ? value.substring(0, semicolonIndex) : value;\n const cookies = isSetCookie ? [cookieString] : cookieString.split('; ');\n\n for (const cookie of cookies) {\n // Split only at the first '=' to preserve '=' characters in cookie values\n const equalSignIndex = cookie.indexOf('=');\n const cookieKey = equalSignIndex !== -1 ? cookie.substring(0, equalSignIndex) : cookie;\n const cookieValue = equalSignIndex !== -1 ? cookie.substring(equalSignIndex + 1) : '';\n\n const lowerCasedCookieKey = cookieKey.toLowerCase();\n\n addSpanAttribute(\n spanAttributes,\n lowerCasedHeaderKey,\n lowerCasedCookieKey,\n cookieValue,\n sendDefaultPii,\n lifecycle,\n );\n }\n } else {\n addSpanAttribute(spanAttributes, lowerCasedHeaderKey, '', value, sendDefaultPii, lifecycle);\n }\n });\n } catch {\n // Return empty object if there's an error\n }\n\n return spanAttributes;\n}\n\nfunction normalizeAttributeKey(key) {\n return key.replace(/-/g, '_');\n}\n\nfunction addSpanAttribute(\n spanAttributes,\n headerKey,\n cookieKey,\n value,\n sendPii,\n lifecycle,\n) {\n const headerValue = handleHttpHeader(cookieKey || headerKey, value, sendPii);\n if (headerValue == null) {\n return;\n }\n\n const normalizedKey = `http.${lifecycle}.header.${normalizeAttributeKey(headerKey)}${cookieKey ? `.${normalizeAttributeKey(cookieKey)}` : ''}`;\n spanAttributes[normalizedKey] = headerValue;\n}\n\nfunction handleHttpHeader(\n lowerCasedKey,\n value,\n sendPii,\n) {\n const isSensitive = sendPii\n ? SENSITIVE_HEADER_SNIPPETS.some(snippet => lowerCasedKey.includes(snippet))\n : [...PII_HEADER_SNIPPETS, ...SENSITIVE_HEADER_SNIPPETS].some(snippet => lowerCasedKey.includes(snippet));\n\n if (isSensitive) {\n return '[Filtered]';\n } else if (Array.isArray(value)) {\n return value.map(v => (v != null ? String(v) : v)).join(';');\n } else if (typeof value === 'string') {\n return value;\n }\n\n return undefined;\n}\n\n/** Extract the query params from an URL. */\nfunction extractQueryParamsFromUrl(url) {\n // url is path and query string\n if (!url) {\n return;\n }\n\n try {\n // The `URL` constructor can't handle internal URLs of the form `/some/path/here`, so stick a dummy protocol and\n // hostname as the base. Since the point here is just to grab the query string, it doesn't matter what we use.\n const queryParams = new URL(url, 'http://s.io').search.slice(1);\n return queryParams.length ? queryParams : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport { extractQueryParamsFromUrl, headersToDict, httpHeadersToSpanAttributes, httpRequestToRequestData, winterCGHeadersToDict, winterCGRequestToRequestData };\n//# sourceMappingURL=request.js.map\n", - "import { getClient, getIsolationScope } from './currentScopes.js';\nimport { consoleSandbox } from './utils/debug-logger.js';\nimport { dateTimestampInSeconds } from './utils/time.js';\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n */\nfunction addBreadcrumb(breadcrumb, hint) {\n const client = getClient();\n const isolationScope = getIsolationScope();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } = client.getOptions();\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint))\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n isolationScope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n}\n\nexport { addBreadcrumb };\n//# sourceMappingURL=breadcrumbs.js.map\n", - "import { getClient } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\nimport { getOriginalFunction } from '../utils/object.js';\n\nlet originalFunctionToString;\n\nconst INTEGRATION_NAME = 'FunctionToString';\n\nconst SETUP_CLIENTS = new WeakMap();\n\nconst _functionToStringIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // intrinsics (like Function.prototype) might be immutable in some environments\n // e.g. Node with --frozen-intrinsics, XS (an embedded JavaScript engine) or SES (a JavaScript proposal)\n try {\n Function.prototype.toString = function ( ...args) {\n const originalFunction = getOriginalFunction(this);\n const context =\n SETUP_CLIENTS.has(getClient() ) && originalFunction !== undefined ? originalFunction : this;\n return originalFunctionToString.apply(context, args);\n };\n } catch {\n // ignore errors here, just don't patch this\n }\n },\n setup(client) {\n SETUP_CLIENTS.set(client, true);\n },\n };\n}) ;\n\n/**\n * Patch toString calls to return proper name for wrapped functions.\n *\n * ```js\n * Sentry.init({\n * integrations: [\n * functionToStringIntegration(),\n * ],\n * });\n * ```\n */\nconst functionToStringIntegration = defineIntegration(_functionToStringIntegration);\n\nexport { functionToStringIntegration };\n//# sourceMappingURL=functiontostring.js.map\n", - "import { DEBUG_BUILD } from '../debug-build.js';\nimport { defineIntegration } from '../integration.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getPossibleEventMessages } from '../utils/eventUtils.js';\nimport { getEventDescription } from '../utils/misc.js';\nimport { stringMatchesSomePattern } from '../utils/string.js';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [\n /^Script error\\.?$/,\n /^Javascript error: Script error\\.? on line 0$/,\n /^ResizeObserver loop completed with undelivered notifications.$/, // The browser logs this when a ResizeObserver handler takes a bit longer. Usually this is not an actual issue though. It indicates slowness.\n /^Cannot redefine property: googletag$/, // This is thrown when google tag manager is used in combination with an ad blocker\n /^Can't find variable: gmo$/, // Error from Google Search App https://issuetracker.google.com/issues/396043331\n /^undefined is not an object \\(evaluating 'a\\.[A-Z]'\\)$/, // Random error that happens but not actionable or noticeable to end-users.\n /can't redefine non-configurable property \"solana\"/, // Probably a browser extension or custom browser (Brave) throwing this error\n /vv\\(\\)\\.getRestrictions is not a function/, // Error thrown by GTM, seemingly not affecting end-users\n /Can't find variable: _AutofillCallbackHandler/, // Unactionable error in instagram webview https://developers.facebook.com/community/threads/320013549791141/\n /Object Not Found Matching Id:\\d+, MethodName:simulateEvent/, // unactionable error from CEFSharp, a .NET library that embeds chromium in .NET apps\n /^Java exception was raised during method invocation$/, // error from Facebook Mobile browser (https://github.com/getsentry/sentry-javascript/issues/15065)\n];\n\n/** Options for the EventFilters integration */\n\nconst INTEGRATION_NAME = 'EventFilters';\n\n/**\n * An integration that filters out events (errors and transactions) based on:\n *\n * - (Errors) A curated list of known low-value or irrelevant errors (see {@link DEFAULT_IGNORE_ERRORS})\n * - (Errors) A list of error messages or urls/filenames passed in via\n * - Top level Sentry.init options (`ignoreErrors`, `denyUrls`, `allowUrls`)\n * - The same options passed to the integration directly via @param options\n * - (Transactions/Spans) A list of root span (transaction) names passed in via\n * - Top level Sentry.init option (`ignoreTransactions`)\n * - The same option passed to the integration directly via @param options\n *\n * Events filtered by this integration will not be sent to Sentry.\n */\nconst eventFiltersIntegration = defineIntegration((options = {}) => {\n let mergedOptions;\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n const clientOptions = client.getOptions();\n mergedOptions = _mergeOptions(options, clientOptions);\n },\n processEvent(event, _hint, client) {\n if (!mergedOptions) {\n const clientOptions = client.getOptions();\n mergedOptions = _mergeOptions(options, clientOptions);\n }\n return _shouldDropEvent(event, mergedOptions) ? null : event;\n },\n };\n});\n\n/**\n * An integration that filters out events (errors and transactions) based on:\n *\n * - (Errors) A curated list of known low-value or irrelevant errors (see {@link DEFAULT_IGNORE_ERRORS})\n * - (Errors) A list of error messages or urls/filenames passed in via\n * - Top level Sentry.init options (`ignoreErrors`, `denyUrls`, `allowUrls`)\n * - The same options passed to the integration directly via @param options\n * - (Transactions/Spans) A list of root span (transaction) names passed in via\n * - Top level Sentry.init option (`ignoreTransactions`)\n * - The same option passed to the integration directly via @param options\n *\n * Events filtered by this integration will not be sent to Sentry.\n *\n * @deprecated this integration was renamed and will be removed in a future major version.\n * Use `eventFiltersIntegration` instead.\n */\nconst inboundFiltersIntegration = defineIntegration(((options = {}) => {\n return {\n ...eventFiltersIntegration(options),\n name: 'InboundFilters',\n };\n}) );\n\nfunction _mergeOptions(\n internalOptions = {},\n clientOptions = {},\n) {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...(internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS),\n ],\n ignoreTransactions: [...(internalOptions.ignoreTransactions || []), ...(clientOptions.ignoreTransactions || [])],\n };\n}\n\nfunction _shouldDropEvent(event, options) {\n if (!event.type) {\n // Filter errors\n if (_isIgnoredError(event, options.ignoreErrors)) {\n DEBUG_BUILD &&\n debug.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isUselessError(event)) {\n DEBUG_BUILD &&\n debug.warn(\n `Event dropped due to not having an error message, error type or stacktrace.\\nEvent: ${getEventDescription(\n event,\n )}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n DEBUG_BUILD &&\n debug.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n DEBUG_BUILD &&\n debug.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n } else if (event.type === 'transaction') {\n // Filter transactions\n\n if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n DEBUG_BUILD &&\n debug.warn(\n `Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n }\n return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n if (!ignoreErrors?.length) {\n return false;\n }\n\n return getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isIgnoredTransaction(event, ignoreTransactions) {\n if (!ignoreTransactions?.length) {\n return false;\n }\n\n const name = event.transaction;\n return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n if (!denyUrls?.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n if (!allowUrls?.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event) {\n try {\n // If there are linked exceptions or exception aggregates we only want to match against the top frame of the \"root\" (the main exception)\n // The root always comes last in linked exceptions\n const rootException = [...(event.exception?.values ?? [])]\n .reverse()\n .find(value => value.mechanism?.parent_id === undefined && value.stacktrace?.frames?.length);\n const frames = rootException?.stacktrace?.frames;\n return frames ? _getLastValidUrl(frames) : null;\n } catch {\n DEBUG_BUILD && debug.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n\nfunction _isUselessError(event) {\n // We only want to consider events for dropping that actually have recorded exception values.\n if (!event.exception?.values?.length) {\n return false;\n }\n\n return (\n // No top-level message\n !event.message &&\n // There are no exception values that have a stacktrace, a non-generic-Error type or value\n !event.exception.values.some(value => value.stacktrace || (value.type && value.type !== 'Error') || value.value)\n );\n}\n\nexport { eventFiltersIntegration, inboundFiltersIntegration };\n//# sourceMappingURL=eventFilters.js.map\n", - "import { isInstanceOf } from './is.js';\n\n/**\n * Creates exceptions inside `event.exception.values` for errors that are nested on properties based on the `key` parameter.\n */\nfunction applyAggregateErrorsToEvent(\n exceptionFromErrorImplementation,\n parser,\n key,\n limit,\n event,\n hint,\n) {\n if (!event.exception?.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return;\n }\n\n // Generally speaking the last item in `event.exception.values` is the exception originating from the original Error\n const originalException =\n event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : undefined;\n\n // We only create exception grouping if there is an exception in the event.\n if (originalException) {\n event.exception.values = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n hint.originalException ,\n key,\n event.exception.values,\n originalException,\n 0,\n );\n }\n}\n\nfunction aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error,\n key,\n prevExceptions,\n exception,\n exceptionId,\n) {\n if (prevExceptions.length >= limit + 1) {\n return prevExceptions;\n }\n\n let newExceptions = [...prevExceptions];\n\n // Recursively call this function in order to walk down a chain of errors\n if (isInstanceOf(error[key], Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId, error);\n const newException = exceptionFromErrorImplementation(parser, error[key] );\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error[key] ,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n\n // This will create exception grouping for AggregateErrors\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError\n if (isExceptionGroup(error)) {\n error.errors.forEach((childError, i) => {\n if (isInstanceOf(childError, Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId, error);\n const newException = exceptionFromErrorImplementation(parser, childError );\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n childError ,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n });\n }\n\n return newExceptions;\n}\n\nfunction isExceptionGroup(error) {\n return Array.isArray(error.errors);\n}\n\nfunction applyExceptionGroupFieldsForParentException(\n exception,\n exceptionId,\n error,\n) {\n exception.mechanism = {\n handled: true,\n type: 'auto.core.linked_errors',\n ...(isExceptionGroup(error) && { is_exception_group: true }),\n ...exception.mechanism,\n exception_id: exceptionId,\n };\n}\n\nfunction applyExceptionGroupFieldsForChildException(\n exception,\n source,\n exceptionId,\n parentId,\n) {\n exception.mechanism = {\n handled: true,\n ...exception.mechanism,\n type: 'chained',\n source,\n exception_id: exceptionId,\n parent_id: parentId,\n };\n}\n\nexport { applyAggregateErrorsToEvent };\n//# sourceMappingURL=aggregate-errors.js.map\n", - "import { defineIntegration } from '../integration.js';\nimport { applyAggregateErrorsToEvent } from '../utils/aggregate-errors.js';\nimport { exceptionFromError } from '../utils/eventbuilder.js';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\nconst INTEGRATION_NAME = 'LinkedErrors';\n\nconst _linkedErrorsIntegration = ((options = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n const key = options.key || DEFAULT_KEY;\n\n return {\n name: INTEGRATION_NAME,\n preprocessEvent(event, hint, client) {\n const options = client.getOptions();\n\n applyAggregateErrorsToEvent(exceptionFromError, options.stackParser, key, limit, event, hint);\n },\n };\n}) ;\n\nconst linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n\nexport { linkedErrorsIntegration };\n//# sourceMappingURL=linkederrors.js.map\n", - "/**\n * This code was originally copied from the 'cookie` module at v0.5.0 and was simplified for our use case.\n * https://github.com/jshttp/cookie/blob/a0c84147aab6266bdb3996cf4062e93907c0b0fc/index.js\n * It had the following license:\n *\n * (The MIT License)\n *\n * Copyright (c) 2012-2014 Roman Shtylman \n * Copyright (c) 2015 Douglas Christopher Wilson \n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n/**\n * Parses a cookie string\n */\nfunction parseCookie(str) {\n const obj = {};\n let index = 0;\n\n while (index < str.length) {\n const eqIdx = str.indexOf('=', index);\n\n // no more cookie pairs\n if (eqIdx === -1) {\n break;\n }\n\n let endIdx = str.indexOf(';', index);\n\n if (endIdx === -1) {\n endIdx = str.length;\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(';', eqIdx - 1) + 1;\n continue;\n }\n\n const key = str.slice(index, eqIdx).trim();\n\n // only assign once\n if (undefined === obj[key]) {\n let val = str.slice(eqIdx + 1, endIdx).trim();\n\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1);\n }\n\n try {\n obj[key] = val.indexOf('%') !== -1 ? decodeURIComponent(val) : val;\n } catch {\n obj[key] = val;\n }\n }\n\n index = endIdx + 1;\n }\n\n return obj;\n}\n\nexport { parseCookie };\n//# sourceMappingURL=cookie.js.map\n", - "// Vendored / modified from @sergiodxa/remix-utils\n\n// https://github.com/sergiodxa/remix-utils/blob/02af80e12829a53696bfa8f3c2363975cf59f55e/src/server/get-client-ip-address.ts\n// MIT License\n\n// Copyright (c) 2021 Sergio Xalambrí\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\n// The headers to check, in priority order\nconst ipHeaderNames = [\n 'X-Client-IP',\n 'X-Forwarded-For',\n 'Fly-Client-IP',\n 'CF-Connecting-IP',\n 'Fastly-Client-Ip',\n 'True-Client-Ip',\n 'X-Real-IP',\n 'X-Cluster-Client-IP',\n 'X-Forwarded',\n 'Forwarded-For',\n 'Forwarded',\n 'X-Vercel-Forwarded-For',\n];\n\n/**\n * Get the IP address of the client sending a request.\n *\n * It receives a Request headers object and use it to get the\n * IP address from one of the following headers in order.\n *\n * If the IP address is valid, it will be returned. Otherwise, null will be\n * returned.\n *\n * If the header values contains more than one IP address, the first valid one\n * will be returned.\n */\nfunction getClientIPAddress(headers) {\n // Build a map of lowercase header names to their values for case-insensitive lookup\n // This is needed because headers from different sources may have different casings\n const lowerCaseHeaders = {};\n\n for (const key of Object.keys(headers)) {\n lowerCaseHeaders[key.toLowerCase()] = headers[key];\n }\n\n // This will end up being Array because of the various possible values a header\n // can take\n const headerValues = ipHeaderNames.map((headerName) => {\n const rawValue = lowerCaseHeaders[headerName.toLowerCase()];\n const value = Array.isArray(rawValue) ? rawValue.join(';') : rawValue;\n\n if (headerName === 'Forwarded') {\n return parseForwardedHeader(value);\n }\n\n return value?.split(',').map((v) => v.trim());\n });\n\n // Flatten the array and filter out any falsy entries\n const flattenedHeaderValues = headerValues.reduce((acc, val) => {\n if (!val) {\n return acc;\n }\n\n return acc.concat(val);\n }, []);\n\n // Find the first value which is a valid IP address, if any\n const ipAddress = flattenedHeaderValues.find(ip => ip !== null && isIP(ip));\n\n return ipAddress || null;\n}\n\nfunction parseForwardedHeader(value) {\n if (!value) {\n return null;\n }\n\n for (const part of value.split(';')) {\n if (part.startsWith('for=')) {\n return part.slice(4);\n }\n }\n\n return null;\n}\n\n//\n/**\n * Custom method instead of importing this from `net` package, as this only exists in node\n * Accepts:\n * 127.0.0.1\n * 192.168.1.1\n * 192.168.1.255\n * 255.255.255.255\n * 10.1.1.1\n * 0.0.0.0\n * 2b01:cb19:8350:ed00:d0dd:fa5b:de31:8be5\n *\n * Rejects:\n * 1.1.1.01\n * 30.168.1.255.1\n * 127.1\n * 192.168.1.256\n * -1.2.3.4\n * 1.1.1.1.\n * 3...3\n * 192.168.1.099\n */\nfunction isIP(str) {\n const regex =\n /(?:^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$)|(?:^(?:(?:[a-fA-F\\d]{1,4}:){7}(?:[a-fA-F\\d]{1,4}|:)|(?:[a-fA-F\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-fA-F\\d]{1,4}|:)|(?:[a-fA-F\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,2}|:)|(?:[a-fA-F\\d]{1,4}:){4}(?:(?::[a-fA-F\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,3}|:)|(?:[a-fA-F\\d]{1,4}:){3}(?:(?::[a-fA-F\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,4}|:)|(?:[a-fA-F\\d]{1,4}:){2}(?:(?::[a-fA-F\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,5}|:)|(?:[a-fA-F\\d]{1,4}:){1}(?:(?::[a-fA-F\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/;\n return regex.test(str);\n}\n\nexport { getClientIPAddress, ipHeaderNames };\n//# sourceMappingURL=getIpAddress.js.map\n", - "import { defineIntegration } from '../integration.js';\nimport { parseCookie } from '../utils/cookie.js';\nimport { getClientIPAddress, ipHeaderNames } from '../vendor/getIpAddress.js';\n\n// TODO(v11): Change defaults based on `sendDefaultPii`\nconst DEFAULT_INCLUDE = {\n cookies: true,\n data: true,\n headers: true,\n query_string: true,\n url: true,\n};\n\nconst INTEGRATION_NAME = 'RequestData';\n\nconst _requestDataIntegration = ((options = {}) => {\n const include = {\n ...DEFAULT_INCLUDE,\n ...options.include,\n };\n\n return {\n name: INTEGRATION_NAME,\n processEvent(event, _hint, client) {\n const { sdkProcessingMetadata = {} } = event;\n const { normalizedRequest, ipAddress } = sdkProcessingMetadata;\n\n const includeWithDefaultPiiApplied = {\n ...include,\n ip: include.ip ?? client.getOptions().sendDefaultPii,\n };\n\n if (normalizedRequest) {\n addNormalizedRequestDataToEvent(event, normalizedRequest, { ipAddress }, includeWithDefaultPiiApplied);\n }\n\n return event;\n },\n };\n}) ;\n\n/**\n * Add data about a request to an event. Primarily for use in Node-based SDKs, but included in `@sentry/core`\n * so it can be used in cross-platform SDKs like `@sentry/nextjs`.\n */\nconst requestDataIntegration = defineIntegration(_requestDataIntegration);\n\n/**\n * Add already normalized request data to an event.\n * This mutates the passed in event.\n */\nfunction addNormalizedRequestDataToEvent(\n event,\n req,\n // Data that should not go into `event.request` but is somehow related to requests\n additionalData,\n include,\n) {\n event.request = {\n ...event.request,\n ...extractNormalizedRequestData(req, include),\n };\n\n if (include.ip) {\n const ip = (req.headers && getClientIPAddress(req.headers)) || additionalData.ipAddress;\n if (ip) {\n event.user = {\n ...event.user,\n ip_address: ip,\n };\n }\n }\n}\n\nfunction extractNormalizedRequestData(\n normalizedRequest,\n include,\n) {\n const requestData = {};\n const headers = { ...normalizedRequest.headers };\n\n if (include.headers) {\n requestData.headers = headers;\n\n // Remove the Cookie header in case cookie data should not be included in the event\n if (!include.cookies) {\n delete (headers ).cookie;\n }\n\n // Remove IP headers in case IP data should not be included in the event\n if (!include.ip) {\n ipHeaderNames.forEach(ipHeaderName => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete (headers )[ipHeaderName];\n });\n }\n }\n\n requestData.method = normalizedRequest.method;\n\n if (include.url) {\n requestData.url = normalizedRequest.url;\n }\n\n if (include.cookies) {\n const cookies = normalizedRequest.cookies || (headers?.cookie ? parseCookie(headers.cookie) : undefined);\n requestData.cookies = cookies || {};\n }\n\n if (include.query_string) {\n requestData.query_string = normalizedRequest.query_string;\n }\n\n if (include.data) {\n requestData.data = normalizedRequest.data;\n }\n\n return requestData;\n}\n\nexport { requestDataIntegration };\n//# sourceMappingURL=requestdata.js.map\n", - "import { CONSOLE_LEVELS, originalConsoleMethods } from '../utils/debug-logger.js';\nimport { fill } from '../utils/object.js';\nimport { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\n/**\n * Add an instrumentation handler for when a console.xxx method is called.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addConsoleInstrumentationHandler(handler) {\n const type = 'console';\n addHandler(type, handler);\n maybeInstrument(type, instrumentConsole);\n}\n\nfunction instrumentConsole() {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in GLOBAL_OBJ.console)) {\n return;\n }\n\n fill(GLOBAL_OBJ.console, level, function (originalConsoleMethod) {\n originalConsoleMethods[level] = originalConsoleMethod;\n\n return function (...args) {\n const handlerData = { args, level };\n triggerHandlers('console', handlerData);\n\n const log = originalConsoleMethods[level];\n log?.apply(GLOBAL_OBJ.console, args);\n };\n });\n });\n}\n\nexport { addConsoleInstrumentationHandler };\n//# sourceMappingURL=console.js.map\n", - "/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nfunction severityLevelFromString(level) {\n return (\n level === 'warn' ? 'warning' : ['fatal', 'error', 'warning', 'log', 'info', 'debug'].includes(level) ? level : 'log'\n ) ;\n}\n\nexport { severityLevelFromString };\n//# sourceMappingURL=severity.js.map\n", - "// Slightly modified (no IE8 support, ES6) and transcribed to TypeScript\n// https://github.com/calvinmetcalf/rollup-plugin-node-builtins/blob/63ab8aacd013767445ca299e468d9a60a95328d7/src/es6/path.js\n//\n// Copyright Joyent, Inc.and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n/** JSDoc */\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n let up = 0;\n for (let i = parts.length - 1; i >= 0; i--) {\n const last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nconst splitPathRe = /^(\\S+:\\\\|\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^/\\\\]+?|)(\\.[^./\\\\]*|))(?:[/\\\\]*)$/;\n/** JSDoc */\nfunction splitPath(filename) {\n // Truncate files names greater than 1024 characters to avoid regex dos\n // https://github.com/getsentry/sentry-javascript/pull/8737#discussion_r1285719172\n const truncated = filename.length > 1024 ? `${filename.slice(-1024)}` : filename;\n const parts = splitPathRe.exec(truncated);\n return parts ? parts.slice(1) : [];\n}\n\n// path.resolve([from ...], to)\n// posix version\n/** JSDoc */\nfunction resolve(...args) {\n let resolvedPath = '';\n let resolvedAbsolute = false;\n\n for (let i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n const path = i >= 0 ? args[i] : '/';\n\n // Skip empty entries\n if (!path) {\n continue;\n }\n\n resolvedPath = `${path}/${resolvedPath}`;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(\n resolvedPath.split('/').filter(p => !!p),\n !resolvedAbsolute,\n ).join('/');\n\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}\n\n/** JSDoc */\nfunction trim(arr) {\n let start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') {\n break;\n }\n }\n\n let end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') {\n break;\n }\n }\n\n if (start > end) {\n return [];\n }\n return arr.slice(start, end - start + 1);\n}\n\n// path.relative(from, to)\n// posix version\n/** JSDoc */\nfunction relative(from, to) {\n /* eslint-disable no-param-reassign */\n from = resolve(from).slice(1);\n to = resolve(to).slice(1);\n /* eslint-enable no-param-reassign */\n\n const fromParts = trim(from.split('/'));\n const toParts = trim(to.split('/'));\n\n const length = Math.min(fromParts.length, toParts.length);\n let samePartsLength = length;\n for (let i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n let outputParts = [];\n for (let i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n}\n\n// path.normalize(path)\n// posix version\n/** JSDoc */\nfunction normalizePath(path) {\n const isPathAbsolute = isAbsolute(path);\n const trailingSlash = path.slice(-1) === '/';\n\n // Normalize the path\n let normalizedPath = normalizeArray(\n path.split('/').filter(p => !!p),\n !isPathAbsolute,\n ).join('/');\n\n if (!normalizedPath && !isPathAbsolute) {\n normalizedPath = '.';\n }\n if (normalizedPath && trailingSlash) {\n normalizedPath += '/';\n }\n\n return (isPathAbsolute ? '/' : '') + normalizedPath;\n}\n\n// posix version\n/** JSDoc */\nfunction isAbsolute(path) {\n return path.charAt(0) === '/';\n}\n\n// posix version\n/** JSDoc */\nfunction join(...args) {\n return normalizePath(args.join('/'));\n}\n\n/** JSDoc */\nfunction dirname(path) {\n const result = splitPath(path);\n const root = result[0] || '';\n let dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.slice(0, dir.length - 1);\n }\n\n return root + dir;\n}\n\n/** JSDoc */\nfunction basename(path, ext) {\n let f = splitPath(path)[2] || '';\n if (ext && f.slice(ext.length * -1) === ext) {\n f = f.slice(0, f.length - ext.length);\n }\n return f;\n}\n\nexport { basename, dirname, isAbsolute, join, normalizePath, relative, resolve };\n//# sourceMappingURL=path.js.map\n", - "import { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getActiveSpan } from '../utils/spanUtils.js';\nimport { SPAN_STATUS_ERROR } from '../tracing/spanstatus.js';\nimport { startSpanManual } from '../tracing/trace.js';\n\n// Portable instrumentation for https://github.com/porsager/postgres\n// This can be used in any environment (Node.js, Cloudflare Workers, etc.)\n// without depending on OpenTelemetry module hooking.\n\n\nconst SQL_OPERATION_REGEX = /^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i;\n\nconst CONNECTION_CONTEXT_SYMBOL = Symbol('sentryPostgresConnectionContext');\n\n// Use the same Symbol.for() markers as the Node.js OTel instrumentation\n// so that both approaches recognize each other and prevent double-wrapping.\nconst INSTRUMENTED_MARKER = Symbol.for('sentry.instrumented.postgresjs');\n// Marker to track if a query was created from an instrumented sql instance.\n// This prevents double-spanning when both the wrapper and the Node.js Query.prototype\n// fallback patch are active simultaneously.\nconst QUERY_FROM_INSTRUMENTED_SQL = Symbol.for('sentry.query.from.instrumented.sql');\n\n/**\n * Instruments a postgres.js `sql` instance with Sentry tracing.\n *\n * This is a portable instrumentation function that works in any environment\n * (Node.js, Cloudflare Workers, etc.) without depending on OpenTelemetry.\n *\n * @example\n * ```javascript\n * import postgres from 'postgres';\n * import * as Sentry from '@sentry/cloudflare'; // or '@sentry/deno'\n *\n * const sql = Sentry.instrumentPostgresJsSql(\n * postgres({ host: 'localhost', database: 'mydb' })\n * );\n *\n * // All queries now create Sentry spans\n * await sql`SELECT * FROM users WHERE id = ${userId}`;\n * ```\n */\nfunction instrumentPostgresJsSql(sql, options) {\n if (!sql || typeof sql !== 'function') {\n DEBUG_BUILD && debug.warn('instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance');\n return sql;\n }\n\n return _instrumentSqlInstance(sql, { requireParentSpan: true, ...options }) ;\n}\n\n/**\n * Instruments a sql instance by wrapping its query execution methods.\n */\nfunction _instrumentSqlInstance(\n sql,\n options,\n parentConnectionContext,\n) {\n // Check if already instrumented to prevent double-wrapping\n // Using Symbol.for() ensures the marker survives proxying\n if ((sql )[INSTRUMENTED_MARKER]) {\n return sql;\n }\n\n // Wrap the sql function to intercept query creation\n const proxiedSql = new Proxy(sql , {\n apply(target, thisArg, argumentsList) {\n const query = Reflect.apply(target, thisArg, argumentsList);\n\n if (query && typeof query === 'object' && 'handle' in query) {\n _wrapSingleQueryHandle(query , proxiedSql, options);\n }\n\n return query;\n },\n get(target, prop) {\n const original = (target )[prop];\n\n if (typeof prop !== 'string' || typeof original !== 'function') {\n return original;\n }\n\n // Wrap methods that return PendingQuery objects (unsafe, file)\n if (prop === 'unsafe' || prop === 'file') {\n return _wrapQueryMethod(original , target, proxiedSql, options);\n }\n\n // Wrap begin and reserve (not savepoint to avoid duplicate spans)\n if (prop === 'begin' || prop === 'reserve') {\n return _wrapCallbackMethod(original , target, proxiedSql, options);\n }\n\n return original;\n },\n });\n\n // Use provided parent context if available, otherwise extract from sql.options\n if (parentConnectionContext) {\n (proxiedSql )[CONNECTION_CONTEXT_SYMBOL] = parentConnectionContext;\n } else {\n _attachConnectionContext(sql, proxiedSql );\n }\n\n // Mark both the original and proxy as instrumented to prevent double-wrapping\n (sql )[INSTRUMENTED_MARKER] = true;\n (proxiedSql )[INSTRUMENTED_MARKER] = true;\n\n return proxiedSql;\n}\n\n/**\n * Wraps query-returning methods (unsafe, file) to ensure their queries are instrumented.\n */\nfunction _wrapQueryMethod(\n original,\n target,\n proxiedSql,\n options,\n) {\n return function ( ...args) {\n const query = Reflect.apply(original, target, args);\n\n if (query && typeof query === 'object' && 'handle' in query) {\n _wrapSingleQueryHandle(query , proxiedSql, options);\n }\n\n return query;\n };\n}\n\n/**\n * Wraps callback-based methods (begin, reserve) to recursively instrument Sql instances.\n * Note: These methods can also be used as tagged templates, which we pass through unchanged.\n *\n * Savepoint is not wrapped to avoid complex nested transaction instrumentation issues.\n * Queries within savepoint callbacks are still instrumented through the parent transaction's Sql instance.\n */\nfunction _wrapCallbackMethod(\n original,\n target,\n parentSqlInstance,\n options,\n) {\n return function ( ...args) {\n // Extract parent context to propagate to child instances\n const parentContext = (parentSqlInstance )[CONNECTION_CONTEXT_SYMBOL]\n\n;\n\n // Check if this is a callback-based call by verifying the last argument is a function\n const isCallbackBased = typeof args[args.length - 1] === 'function';\n\n if (!isCallbackBased) {\n // Not a callback-based call - could be tagged template or promise-based\n const result = Reflect.apply(original, target, args);\n // If result is a Promise (e.g., reserve() without callback), instrument the resolved Sql instance\n if (result && typeof (result ).then === 'function') {\n return (result ).then((sqlInstance) => {\n return _instrumentSqlInstance(sqlInstance, options, parentContext);\n });\n }\n return result;\n }\n\n // Callback-based call: wrap the callback to instrument the Sql instance\n const callback = (args.length === 1 ? args[0] : args[1]) ;\n const wrappedCallback = function (sqlInstance) {\n const instrumentedSql = _instrumentSqlInstance(sqlInstance, options, parentContext);\n return callback(instrumentedSql);\n };\n\n const newArgs = args.length === 1 ? [wrappedCallback] : [args[0], wrappedCallback];\n return Reflect.apply(original, target, newArgs);\n };\n}\n\n/**\n * Wraps a single query's handle method to create spans.\n */\nfunction _wrapSingleQueryHandle(\n query,\n sqlInstance,\n options,\n) {\n // Prevent double wrapping - check if the handle itself is already wrapped\n if ((query.handle )?.__sentryWrapped) {\n return;\n }\n\n // Mark this query as coming from an instrumented sql instance.\n // This prevents the Node.js Query.prototype fallback patch from double-spanning.\n (query )[QUERY_FROM_INSTRUMENTED_SQL] = true;\n\n const originalHandle = query.handle ;\n\n // IMPORTANT: We must replace the handle function directly, not use a Proxy,\n // because Query.then() internally calls this.handle(), which would bypass a Proxy wrapper.\n const wrappedHandle = async function ( ...args) {\n if (!_shouldCreateSpans(options)) {\n return originalHandle.apply(this, args);\n }\n\n const fullQuery = _reconstructQuery(query.strings);\n const sanitizedSqlQuery = _sanitizeSqlQuery(fullQuery);\n\n return startSpanManual(\n {\n name: sanitizedSqlQuery || 'postgresjs.query',\n op: 'db',\n },\n (span) => {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.postgresjs');\n\n span.setAttributes({\n 'db.system.name': 'postgres',\n 'db.query.text': sanitizedSqlQuery,\n });\n\n const connectionContext = sqlInstance\n ? ((sqlInstance )[CONNECTION_CONTEXT_SYMBOL]\n\n)\n : undefined;\n\n _setConnectionAttributes(span, connectionContext);\n\n if (options.requestHook) {\n try {\n options.requestHook(span, sanitizedSqlQuery, connectionContext);\n } catch (e) {\n span.setAttribute('sentry.hook.error', 'requestHook failed');\n DEBUG_BUILD && debug.error('Error in requestHook for PostgresJs instrumentation:', e);\n }\n }\n\n const queryWithCallbacks = this\n\n;\n\n queryWithCallbacks.resolve = new Proxy(queryWithCallbacks.resolve , {\n apply: (resolveTarget, resolveThisArg, resolveArgs) => {\n try {\n _setOperationName(span, sanitizedSqlQuery, resolveArgs?.[0]?.command);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error('Error ending span in resolve callback:', e);\n }\n\n return Reflect.apply(resolveTarget, resolveThisArg, resolveArgs);\n },\n });\n\n queryWithCallbacks.reject = new Proxy(queryWithCallbacks.reject , {\n apply: (rejectTarget, rejectThisArg, rejectArgs) => {\n try {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: rejectArgs?.[0]?.message || 'unknown_error',\n });\n\n span.setAttribute('db.response.status_code', rejectArgs?.[0]?.code || 'unknown');\n span.setAttribute('error.type', rejectArgs?.[0]?.name || 'unknown');\n\n _setOperationName(span, sanitizedSqlQuery);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error('Error ending span in reject callback:', e);\n }\n return Reflect.apply(rejectTarget, rejectThisArg, rejectArgs);\n },\n });\n\n // Handle synchronous errors that might occur before promise is created\n try {\n return originalHandle.apply(this, args);\n } catch (e) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: e instanceof Error ? e.message : 'unknown_error',\n });\n span.end();\n throw e;\n }\n },\n );\n };\n\n (wrappedHandle ).__sentryWrapped = true;\n query.handle = wrappedHandle;\n}\n\n/**\n * Determines whether a span should be created based on the current context.\n * If `requireParentSpan` is set to true in the options, a span will\n * only be created if there is a parent span available.\n */\nfunction _shouldCreateSpans(options) {\n const hasParentSpan = getActiveSpan() !== undefined;\n return hasParentSpan || !options.requireParentSpan;\n}\n\n/**\n * Reconstructs the full SQL query from template strings with PostgreSQL placeholders.\n *\n * For sql`SELECT * FROM users WHERE id = ${123} AND name = ${'foo'}`:\n * strings = [\"SELECT * FROM users WHERE id = \", \" AND name = \", \"\"]\n * returns: \"SELECT * FROM users WHERE id = $1 AND name = $2\"\n *\n * @internal Exported for testing only\n */\nfunction _reconstructQuery(strings) {\n if (!strings?.length) {\n return undefined;\n }\n if (strings.length === 1) {\n return strings[0] || undefined;\n }\n // Join template parts with PostgreSQL placeholders ($1, $2, etc.)\n return strings.reduce((acc, str, i) => (i === 0 ? str : `${acc}$${i}${str}`), '');\n}\n\n/**\n * Sanitize SQL query as per the OTEL semantic conventions\n * https://opentelemetry.io/docs/specs/semconv/database/database-spans/#sanitization-of-dbquerytext\n *\n * PostgreSQL $n placeholders are preserved per OTEL spec - they're parameterized queries,\n * not sensitive literals. Only actual values (strings, numbers, booleans) are sanitized.\n *\n * @internal Exported for testing only\n */\nfunction _sanitizeSqlQuery(sqlQuery) {\n if (!sqlQuery) {\n return 'Unknown SQL Query';\n }\n\n return (\n sqlQuery\n // Remove comments first (they may contain newlines and extra spaces)\n .replace(/--.*$/gm, '') // Single line comments (multiline mode)\n .replace(/\\/\\*[\\s\\S]*?\\*\\//g, '') // Multi-line comments\n .replace(/;\\s*$/, '') // Remove trailing semicolons\n // Collapse whitespace to a single space (after removing comments)\n .replace(/\\s+/g, ' ')\n .trim() // Remove extra spaces and trim\n // Sanitize hex/binary literals before string literals\n .replace(/\\bX'[0-9A-Fa-f]*'/gi, '?') // Hex string literals\n .replace(/\\bB'[01]*'/gi, '?') // Binary string literals\n // Sanitize string literals (handles escaped quotes)\n .replace(/'(?:[^']|'')*'/g, '?')\n // Sanitize hex numbers\n .replace(/\\b0x[0-9A-Fa-f]+/gi, '?')\n // Sanitize boolean literals\n .replace(/\\b(?:TRUE|FALSE)\\b/gi, '?')\n // Sanitize numeric literals (preserve $n placeholders via negative lookbehind)\n .replace(/-?\\b\\d+\\.?\\d*[eE][+-]?\\d+\\b/g, '?') // Scientific notation\n .replace(/-?\\b\\d+\\.\\d+\\b/g, '?') // Decimals\n .replace(/-?\\.\\d+\\b/g, '?') // Decimals starting with dot\n .replace(/(? {\n const levels = new Set(options.levels || CONSOLE_LEVELS);\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n addConsoleInstrumentationHandler(({ args, level }) => {\n if (getClient() !== client || !levels.has(level)) {\n return;\n }\n\n addConsoleBreadcrumb(level, args);\n });\n },\n };\n});\n\n/**\n * Capture a console breadcrumb.\n *\n * Exported just for tests.\n */\nfunction addConsoleBreadcrumb(level, args) {\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: args,\n logger: 'console',\n },\n level: severityLevelFromString(level),\n message: formatConsoleArgs(args),\n };\n\n if (level === 'assert') {\n if (args[0] === false) {\n const assertionArgs = args.slice(1);\n breadcrumb.message =\n assertionArgs.length > 0 ? `Assertion failed: ${formatConsoleArgs(assertionArgs)}` : 'Assertion failed';\n breadcrumb.data.arguments = assertionArgs;\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n addBreadcrumb(breadcrumb, {\n input: args,\n level,\n });\n}\n\nfunction formatConsoleArgs(values) {\n return 'util' in GLOBAL_OBJ && typeof (GLOBAL_OBJ ).util.format === 'function'\n ? (GLOBAL_OBJ ).util.format(...values)\n : safeJoin(values, ' ');\n}\n\nexport { addConsoleBreadcrumb, consoleIntegration };\n//# sourceMappingURL=console.js.map\n", - "import { getCurrentScope, getIsolationScope } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\nimport { GEN_AI_CONVERSATION_ID_ATTRIBUTE } from '../semanticAttributes.js';\n\nconst INTEGRATION_NAME = 'ConversationId';\n\nconst _conversationIdIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n client.on('spanStart', (span) => {\n const scopeData = getCurrentScope().getScopeData();\n const isolationScopeData = getIsolationScope().getScopeData();\n\n const conversationId = scopeData.conversationId || isolationScopeData.conversationId;\n\n if (conversationId) {\n span.setAttribute(GEN_AI_CONVERSATION_ID_ATTRIBUTE, conversationId);\n }\n });\n },\n };\n}) ;\n\n/**\n * Automatically applies conversation ID from scope to spans.\n *\n * This integration reads the conversation ID from the current or isolation scope\n * and applies it to spans when they start. This ensures the conversation ID is\n * available for all AI-related operations.\n */\nconst conversationIdIntegration = defineIntegration(_conversationIdIntegration);\n\nexport { conversationIdIntegration };\n//# sourceMappingURL=conversationId.js.map\n", - "import { _INTERNAL_captureMetric } from './internal.js';\n\n/**\n * Options for capturing a metric.\n */\n\n/**\n * Capture a metric with the given type, name, and value.\n *\n * @param type - The type of the metric.\n * @param name - The name of the metric.\n * @param value - The value of the metric.\n * @param options - Options for capturing the metric.\n */\nfunction captureMetric(type, name, value, options) {\n _INTERNAL_captureMetric(\n { type, name, value, unit: options?.unit, attributes: options?.attributes },\n { scope: options?.scope },\n );\n}\n\n/**\n * @summary Increment a counter metric.\n *\n * @param name - The name of the counter metric.\n * @param value - The value to increment by (defaults to 1).\n * @param options - Options for capturing the metric.\n *\n * @example\n *\n * ```\n * Sentry.metrics.count('api.requests', 1, {\n * attributes: {\n * endpoint: '/api/users',\n * method: 'GET',\n * status: 200\n * }\n * });\n * ```\n *\n * @example With custom value\n *\n * ```\n * Sentry.metrics.count('items.processed', 5, {\n * attributes: {\n * processor: 'batch-processor',\n * queue: 'high-priority'\n * }\n * });\n * ```\n */\nfunction count(name, value = 1, options) {\n captureMetric('counter', name, value, options);\n}\n\n/**\n * @summary Set a gauge metric to a specific value.\n *\n * @param name - The name of the gauge metric.\n * @param value - The current value of the gauge.\n * @param options - Options for capturing the metric.\n *\n * @example\n *\n * ```\n * Sentry.metrics.gauge('memory.usage', 1024, {\n * unit: 'megabyte',\n * attributes: {\n * process: 'web-server',\n * region: 'us-east-1'\n * }\n * });\n * ```\n *\n * @example Without unit\n *\n * ```\n * Sentry.metrics.gauge('active.connections', 42, {\n * attributes: {\n * server: 'api-1',\n * protocol: 'websocket'\n * }\n * });\n * ```\n */\nfunction gauge(name, value, options) {\n captureMetric('gauge', name, value, options);\n}\n\n/**\n * @summary Record a value in a distribution metric.\n *\n * @param name - The name of the distribution metric.\n * @param value - The value to record in the distribution.\n * @param options - Options for capturing the metric.\n *\n * @example\n *\n * ```\n * Sentry.metrics.distribution('task.duration', 500, {\n * unit: 'millisecond',\n * attributes: {\n * task: 'data-processing',\n * priority: 'high'\n * }\n * });\n * ```\n *\n * @example Without unit\n *\n * ```\n * Sentry.metrics.distribution('batch.size', 100, {\n * attributes: {\n * processor: 'batch-1',\n * type: 'async'\n * }\n * });\n * ```\n */\nfunction distribution(name, value, options) {\n captureMetric('distribution', name, value, options);\n}\n\nexport { count, distribution, gauge };\n//# sourceMappingURL=public-api.js.map\n", - "/**\n * OpenAI Integration Telemetry Attributes\n * Based on OpenTelemetry Semantic Conventions for Generative AI\n * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/\n */\n\n// =============================================================================\n// OPENTELEMETRY SEMANTIC CONVENTIONS FOR GENAI\n// =============================================================================\n\n/**\n * The input messages sent to the model\n */\nconst GEN_AI_PROMPT_ATTRIBUTE = 'gen_ai.prompt';\n\n/**\n * The Generative AI system being used\n * For OpenAI, this should always be \"openai\"\n */\nconst GEN_AI_SYSTEM_ATTRIBUTE = 'gen_ai.system';\n\n/**\n * The name of the model as requested\n * Examples: \"gpt-4\", \"gpt-3.5-turbo\"\n */\nconst GEN_AI_REQUEST_MODEL_ATTRIBUTE = 'gen_ai.request.model';\n\n/**\n * Whether streaming was enabled for the request\n */\nconst GEN_AI_REQUEST_STREAM_ATTRIBUTE = 'gen_ai.request.stream';\n\n/**\n * The temperature setting for the model request\n */\nconst GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE = 'gen_ai.request.temperature';\n\n/**\n * The maximum number of tokens requested\n */\nconst GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE = 'gen_ai.request.max_tokens';\n\n/**\n * The frequency penalty setting for the model request\n */\nconst GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE = 'gen_ai.request.frequency_penalty';\n\n/**\n * The presence penalty setting for the model request\n */\nconst GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE = 'gen_ai.request.presence_penalty';\n\n/**\n * The top_p (nucleus sampling) setting for the model request\n */\nconst GEN_AI_REQUEST_TOP_P_ATTRIBUTE = 'gen_ai.request.top_p';\n\n/**\n * The top_k setting for the model request\n */\nconst GEN_AI_REQUEST_TOP_K_ATTRIBUTE = 'gen_ai.request.top_k';\n\n/**\n * The encoding format for the model request\n */\nconst GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE = 'gen_ai.request.encoding_format';\n\n/**\n * The dimensions for the model request\n */\nconst GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE = 'gen_ai.request.dimensions';\n\n/**\n * Array of reasons why the model stopped generating tokens\n */\nconst GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE = 'gen_ai.response.finish_reasons';\n\n/**\n * The name of the model that generated the response\n */\nconst GEN_AI_RESPONSE_MODEL_ATTRIBUTE = 'gen_ai.response.model';\n\n/**\n * The unique identifier for the response\n */\nconst GEN_AI_RESPONSE_ID_ATTRIBUTE = 'gen_ai.response.id';\n\n/**\n * The reason why the model stopped generating tokens\n */\nconst GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE = 'gen_ai.response.stop_reason';\n\n/**\n * The number of tokens used in the prompt\n */\nconst GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE = 'gen_ai.usage.input_tokens';\n\n/**\n * The number of tokens used in the response\n */\nconst GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE = 'gen_ai.usage.output_tokens';\n\n/**\n * The total number of tokens used (input + output)\n */\nconst GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE = 'gen_ai.usage.total_tokens';\n\n/**\n * The operation name\n */\nconst GEN_AI_OPERATION_NAME_ATTRIBUTE = 'gen_ai.operation.name';\n\n/**\n * Original length of messages array, used to indicate truncations had occured\n */\nconst GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE = 'sentry.sdk_meta.gen_ai.input.messages.original_length';\n\n/**\n * The prompt messages\n * Only recorded when recordInputs is enabled\n */\nconst GEN_AI_INPUT_MESSAGES_ATTRIBUTE = 'gen_ai.input.messages';\n\n/**\n * The model's response messages including text and tool calls\n * Only recorded when recordOutputs is enabled\n * Format: stringified array of message objects with role, parts, and finish_reason\n * @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-output-messages\n */\nconst GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE = 'gen_ai.output.messages';\n\n/**\n * The system instructions extracted from system messages\n * Only recorded when recordInputs is enabled\n * According to OpenTelemetry spec: https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-system-instructions\n */\nconst GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE = 'gen_ai.system_instructions';\n\n/**\n * The response text\n * Only recorded when recordOutputs is enabled\n */\nconst GEN_AI_RESPONSE_TEXT_ATTRIBUTE = 'gen_ai.response.text';\n\n/**\n * The available tools from incoming request\n * Only recorded when recordInputs is enabled\n */\nconst GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE = 'gen_ai.request.available_tools';\n\n/**\n * Whether the response is a streaming response\n */\nconst GEN_AI_RESPONSE_STREAMING_ATTRIBUTE = 'gen_ai.response.streaming';\n\n/**\n * The tool calls from the response\n * Only recorded when recordOutputs is enabled\n */\nconst GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE = 'gen_ai.response.tool_calls';\n\n/**\n * The agent name\n */\nconst GEN_AI_AGENT_NAME_ATTRIBUTE = 'gen_ai.agent.name';\n\n/**\n * The pipeline name\n */\nconst GEN_AI_PIPELINE_NAME_ATTRIBUTE = 'gen_ai.pipeline.name';\n\n/**\n * The conversation ID for linking messages across API calls\n * For OpenAI Assistants API: thread_id\n * For LangGraph: configurable.thread_id\n */\nconst GEN_AI_CONVERSATION_ID_ATTRIBUTE = 'gen_ai.conversation.id';\n\n/**\n * The number of cache creation input tokens used\n */\nconst GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE = 'gen_ai.usage.cache_creation_input_tokens';\n\n/**\n * The number of cache read input tokens used\n */\nconst GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE = 'gen_ai.usage.cache_read_input_tokens';\n\n/**\n * The number of cache write input tokens used\n */\nconst GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE = 'gen_ai.usage.input_tokens.cache_write';\n\n/**\n * The number of cached input tokens that were used\n */\nconst GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE = 'gen_ai.usage.input_tokens.cached';\n\n/**\n * The span operation name for invoking an agent\n */\nconst GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE = 'gen_ai.invoke_agent';\n\n/**\n * The span operation name for generating text\n */\nconst GEN_AI_GENERATE_TEXT_DO_GENERATE_OPERATION_ATTRIBUTE = 'gen_ai.generate_text';\n\n/**\n * The span operation name for streaming text\n */\nconst GEN_AI_STREAM_TEXT_DO_STREAM_OPERATION_ATTRIBUTE = 'gen_ai.stream_text';\n\n/**\n * The span operation name for generating object\n */\nconst GEN_AI_GENERATE_OBJECT_DO_GENERATE_OPERATION_ATTRIBUTE = 'gen_ai.generate_object';\n\n/**\n * The span operation name for streaming object\n */\nconst GEN_AI_STREAM_OBJECT_DO_STREAM_OPERATION_ATTRIBUTE = 'gen_ai.stream_object';\n\n/**\n * The embeddings input\n * Only recorded when recordInputs is enabled\n */\nconst GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE = 'gen_ai.embeddings.input';\n\n/**\n * The span operation name for embedding\n */\nconst GEN_AI_EMBED_DO_EMBED_OPERATION_ATTRIBUTE = 'gen_ai.embeddings';\n\n/**\n * The span operation name for embedding many\n */\nconst GEN_AI_EMBED_MANY_DO_EMBED_OPERATION_ATTRIBUTE = 'gen_ai.embeddings';\n\n/**\n * The span operation name for reranking\n */\nconst GEN_AI_RERANK_DO_RERANK_OPERATION_ATTRIBUTE = 'gen_ai.rerank';\n\n/**\n * The span operation name for executing a tool\n */\nconst GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE = 'gen_ai.execute_tool';\n\n/**\n * The tool name for tool call spans\n */\nconst GEN_AI_TOOL_NAME_ATTRIBUTE = 'gen_ai.tool.name';\n\n/**\n * The tool call ID\n */\nconst GEN_AI_TOOL_CALL_ID_ATTRIBUTE = 'gen_ai.tool.call.id';\n\n/**\n * The tool type (e.g., 'function')\n */\nconst GEN_AI_TOOL_TYPE_ATTRIBUTE = 'gen_ai.tool.type';\n\n/**\n * The tool input/arguments\n */\nconst GEN_AI_TOOL_INPUT_ATTRIBUTE = 'gen_ai.tool.input';\n\n/**\n * The tool output/result\n */\nconst GEN_AI_TOOL_OUTPUT_ATTRIBUTE = 'gen_ai.tool.output';\n\n/**\n * The description of the tool being used\n * @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-tool-description\n */\nconst GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE = 'gen_ai.tool.description';\n\n// =============================================================================\n// OPENAI-SPECIFIC ATTRIBUTES\n// =============================================================================\n\n/**\n * The response ID from OpenAI\n */\nconst OPENAI_RESPONSE_ID_ATTRIBUTE = 'openai.response.id';\n\n/**\n * The response model from OpenAI\n */\nconst OPENAI_RESPONSE_MODEL_ATTRIBUTE = 'openai.response.model';\n\n/**\n * The response timestamp from OpenAI (ISO string)\n */\nconst OPENAI_RESPONSE_TIMESTAMP_ATTRIBUTE = 'openai.response.timestamp';\n\n/**\n * The number of completion tokens used\n */\nconst OPENAI_USAGE_COMPLETION_TOKENS_ATTRIBUTE = 'openai.usage.completion_tokens';\n\n/**\n * The number of prompt tokens used\n */\nconst OPENAI_USAGE_PROMPT_TOKENS_ATTRIBUTE = 'openai.usage.prompt_tokens';\n\n// =============================================================================\n// OPENAI OPERATIONS\n// =============================================================================\n\n/**\n * OpenAI API operations following OpenTelemetry semantic conventions\n * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/#llm-request-spans\n */\nconst OPENAI_OPERATIONS = {\n CHAT: 'chat',\n EMBEDDINGS: 'embeddings',\n} ;\n\n// =============================================================================\n// ANTHROPIC AI OPERATIONS\n// =============================================================================\n\n/**\n * The response timestamp from Anthropic AI (ISO string)\n */\nconst ANTHROPIC_AI_RESPONSE_TIMESTAMP_ATTRIBUTE = 'anthropic.response.timestamp';\n\nexport { ANTHROPIC_AI_RESPONSE_TIMESTAMP_ATTRIBUTE, GEN_AI_AGENT_NAME_ATTRIBUTE, GEN_AI_CONVERSATION_ID_ATTRIBUTE, GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_EMBED_DO_EMBED_OPERATION_ATTRIBUTE, GEN_AI_EMBED_MANY_DO_EMBED_OPERATION_ATTRIBUTE, GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE, GEN_AI_GENERATE_OBJECT_DO_GENERATE_OPERATION_ATTRIBUTE, GEN_AI_GENERATE_TEXT_DO_GENERATE_OPERATION_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE, GEN_AI_PIPELINE_NAME_ATTRIBUTE, GEN_AI_PROMPT_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE, GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_K_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_RERANK_DO_RERANK_OPERATION_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE, GEN_AI_RESPONSE_STREAMING_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_STREAM_OBJECT_DO_STREAM_OPERATION_ATTRIBUTE, GEN_AI_STREAM_TEXT_DO_STREAM_OPERATION_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_TOOL_CALL_ID_ATTRIBUTE, GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_TOOL_OUTPUT_ATTRIBUTE, GEN_AI_TOOL_TYPE_ATTRIBUTE, GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, OPENAI_OPERATIONS, OPENAI_RESPONSE_ID_ATTRIBUTE, OPENAI_RESPONSE_MODEL_ATTRIBUTE, OPENAI_RESPONSE_TIMESTAMP_ATTRIBUTE, OPENAI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, OPENAI_USAGE_PROMPT_TOKENS_ATTRIBUTE };\n//# sourceMappingURL=gen-ai-attributes.js.map\n", - "// Global map to track tool call IDs to their corresponding span contexts.\n// This allows us to capture tool errors and link them to the correct span\n// without keeping full Span objects (and their potentially large attributes) alive.\nconst toolCallSpanContextMap = new Map();\n\n// Operation sets for efficient mapping to OpenTelemetry semantic convention values\nconst INVOKE_AGENT_OPS = new Set(['ai.generateText', 'ai.streamText', 'ai.generateObject', 'ai.streamObject']);\n\nconst GENERATE_CONTENT_OPS = new Set([\n 'ai.generateText.doGenerate',\n 'ai.streamText.doStream',\n 'ai.generateObject.doGenerate',\n 'ai.streamObject.doStream',\n]);\n\nconst EMBEDDINGS_OPS = new Set(['ai.embed.doEmbed', 'ai.embedMany.doEmbed']);\n\nconst RERANK_OPS = new Set(['ai.rerank.doRerank']);\n\nconst DO_SPAN_NAME_PREFIX = {\n 'ai.embed.doEmbed': 'embeddings',\n 'ai.embedMany.doEmbed': 'embeddings',\n 'ai.rerank.doRerank': 'rerank',\n};\n\nexport { DO_SPAN_NAME_PREFIX, EMBEDDINGS_OPS, GENERATE_CONTENT_OPS, INVOKE_AGENT_OPS, RERANK_OPS, toolCallSpanContextMap };\n//# sourceMappingURL=constants.js.map\n", - "/**\n * Inline media content source, with a potentially very large base64\n * blob or data: uri.\n */\n\n/**\n * Check if a content part is an OpenAI/Anthropic media source\n */\nfunction isContentMedia(part) {\n if (!part || typeof part !== 'object') return false;\n\n return (\n isContentMediaSource(part) ||\n hasInlineData(part) ||\n hasImageUrl(part) ||\n hasInputAudio(part) ||\n hasFileData(part) ||\n hasMediaTypeData(part) ||\n hasVercelFileData(part) ||\n hasVercelImageData(part) ||\n hasBlobOrBase64Type(part) ||\n hasB64Json(part) ||\n hasImageGenerationResult(part) ||\n hasDataUri(part)\n );\n}\n\nfunction hasImageUrl(part) {\n if (!('image_url' in part)) return false;\n if (typeof part.image_url === 'string') return part.image_url.startsWith('data:');\n return hasNestedImageUrl(part);\n}\n\nfunction hasNestedImageUrl(part) {\n return (\n 'image_url' in part &&\n !!part.image_url &&\n typeof part.image_url === 'object' &&\n 'url' in part.image_url &&\n typeof part.image_url.url === 'string' &&\n part.image_url.url.startsWith('data:')\n );\n}\n\nfunction isContentMediaSource(part) {\n return 'type' in part && typeof part.type === 'string' && 'source' in part && isContentMedia(part.source);\n}\n\nfunction hasInlineData(part) {\n return (\n 'inlineData' in part &&\n !!part.inlineData &&\n typeof part.inlineData === 'object' &&\n 'data' in part.inlineData &&\n typeof part.inlineData.data === 'string'\n );\n}\n\nfunction hasInputAudio(part) {\n return (\n 'type' in part &&\n part.type === 'input_audio' &&\n 'input_audio' in part &&\n !!part.input_audio &&\n typeof part.input_audio === 'object' &&\n 'data' in part.input_audio &&\n typeof part.input_audio.data === 'string'\n );\n}\n\nfunction hasFileData(part) {\n return (\n 'type' in part &&\n part.type === 'file' &&\n 'file' in part &&\n !!part.file &&\n typeof part.file === 'object' &&\n 'file_data' in part.file &&\n typeof part.file.file_data === 'string'\n );\n}\n\nfunction hasMediaTypeData(part) {\n return 'media_type' in part && typeof part.media_type === 'string' && 'data' in part;\n}\n\n/**\n * Check for Vercel AI SDK file format: { type: \"file\", mediaType: \"...\", data: \"...\" }\n * Only matches base64/binary data, not HTTP/HTTPS URLs (which should be preserved).\n */\nfunction hasVercelFileData(part) {\n return (\n 'type' in part &&\n part.type === 'file' &&\n 'mediaType' in part &&\n typeof part.mediaType === 'string' &&\n 'data' in part &&\n typeof part.data === 'string' &&\n // Only strip base64/binary data, not HTTP/HTTPS URLs which should be preserved as references\n !part.data.startsWith('http://') &&\n !part.data.startsWith('https://')\n );\n}\n\n/**\n * Check for Vercel AI SDK image format: { type: \"image\", image: \"base64...\", mimeType?: \"...\" }\n * Only matches base64/data URIs, not HTTP/HTTPS URLs (which should be preserved).\n * Note: mimeType is optional in Vercel AI SDK image parts.\n */\nfunction hasVercelImageData(part) {\n return (\n 'type' in part &&\n part.type === 'image' &&\n 'image' in part &&\n typeof part.image === 'string' &&\n // Only strip base64/data URIs, not HTTP/HTTPS URLs which should be preserved as references\n !part.image.startsWith('http://') &&\n !part.image.startsWith('https://')\n );\n}\n\nfunction hasBlobOrBase64Type(part) {\n return 'type' in part && (part.type === 'blob' || part.type === 'base64');\n}\n\nfunction hasB64Json(part) {\n return 'b64_json' in part;\n}\n\nfunction hasImageGenerationResult(part) {\n return 'type' in part && 'result' in part && part.type === 'image_generation';\n}\n\nfunction hasDataUri(part) {\n return 'uri' in part && typeof part.uri === 'string' && part.uri.startsWith('data:');\n}\n\nconst REMOVED_STRING = '[Blob substitute]';\n\nconst MEDIA_FIELDS = ['image_url', 'data', 'content', 'b64_json', 'result', 'uri', 'image'] ;\n\n/**\n * Replace inline binary data in a single media content part with a placeholder.\n */\nfunction stripInlineMediaFromSingleMessage(part) {\n const strip = { ...part };\n if (isContentMedia(strip.source)) {\n strip.source = stripInlineMediaFromSingleMessage(strip.source);\n }\n if (hasInlineData(part)) {\n strip.inlineData = { ...part.inlineData, data: REMOVED_STRING };\n }\n if (hasNestedImageUrl(part)) {\n strip.image_url = { ...part.image_url, url: REMOVED_STRING };\n }\n if (hasInputAudio(part)) {\n strip.input_audio = { ...part.input_audio, data: REMOVED_STRING };\n }\n if (hasFileData(part)) {\n strip.file = { ...part.file, file_data: REMOVED_STRING };\n }\n for (const field of MEDIA_FIELDS) {\n if (typeof strip[field] === 'string') strip[field] = REMOVED_STRING;\n }\n return strip;\n}\n\nexport { isContentMedia, stripInlineMediaFromSingleMessage };\n//# sourceMappingURL=mediaStripping.js.map\n", - "import { isContentMedia, stripInlineMediaFromSingleMessage } from './mediaStripping.js';\n\n/**\n * Default maximum size in bytes for GenAI messages.\n * Messages exceeding this limit will be truncated.\n */\nconst DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT = 20000;\n\n/**\n * Message format used by OpenAI and Anthropic APIs.\n */\n\n/**\n * Calculate the UTF-8 byte length of a string.\n */\nconst utf8Bytes = (text) => {\n return new TextEncoder().encode(text).length;\n};\n\n/**\n * Calculate the UTF-8 byte length of a value's JSON representation.\n */\nconst jsonBytes = (value) => {\n return utf8Bytes(JSON.stringify(value));\n};\n\n/**\n * Truncate a string to fit within maxBytes (inclusive) when encoded as UTF-8.\n * Uses binary search for efficiency with multi-byte characters.\n *\n * @param text - The string to truncate\n * @param maxBytes - Maximum byte length (inclusive, UTF-8 encoded)\n * @returns Truncated string whose UTF-8 byte length is at most maxBytes\n */\nfunction truncateTextByBytes(text, maxBytes) {\n if (utf8Bytes(text) <= maxBytes) {\n return text;\n }\n\n let low = 0;\n let high = text.length;\n let bestFit = '';\n\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n const candidate = text.slice(0, mid);\n const byteSize = utf8Bytes(candidate);\n\n if (byteSize <= maxBytes) {\n bestFit = candidate;\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n\n return bestFit;\n}\n\n/**\n * Extract text content from a message item.\n * Handles plain strings and objects with a text property.\n *\n * @returns The text content\n */\nfunction getItemText(item) {\n if (typeof item === 'string') {\n return item;\n }\n if ('text' in item && typeof item.text === 'string') {\n return item.text;\n }\n return '';\n}\n\n/**\n * Create a new item with updated text content while preserving the original structure.\n *\n * @param item - Original item (string or object)\n * @param text - New text content\n * @returns New item with updated text\n */\nfunction withItemText(item, text) {\n if (typeof item === 'string') {\n return text;\n }\n return { ...item, text };\n}\n\n/**\n * Check if a message has the OpenAI/Anthropic content format.\n */\nfunction isContentMessage(message) {\n return (\n message !== null &&\n typeof message === 'object' &&\n 'content' in message &&\n typeof (message ).content === 'string'\n );\n}\n\n/**\n * Check if a message has the OpenAI/Anthropic content array format.\n */\nfunction isContentArrayMessage(message) {\n return message !== null && typeof message === 'object' && 'content' in message && Array.isArray(message.content);\n}\n\n/**\n * Check if a message has the Google GenAI parts format.\n */\nfunction isPartsMessage(message) {\n return (\n message !== null &&\n typeof message === 'object' &&\n 'parts' in message &&\n Array.isArray((message ).parts) &&\n (message ).parts.length > 0\n );\n}\n\n/**\n * Truncate a message with `content: string` format (OpenAI/Anthropic).\n *\n * @param message - Message with content property\n * @param maxBytes - Maximum byte limit\n * @returns Array with truncated message, or empty array if it doesn't fit\n */\nfunction truncateContentMessage(message, maxBytes) {\n // Calculate overhead (message structure without content)\n const emptyMessage = { ...message, content: '' };\n const overhead = jsonBytes(emptyMessage);\n const availableForContent = maxBytes - overhead;\n\n if (availableForContent <= 0) {\n return [];\n }\n\n const truncatedContent = truncateTextByBytes(message.content, availableForContent);\n return [{ ...message, content: truncatedContent }];\n}\n\n/**\n * Extracts the array items and their key from an array-based message.\n * Returns `null` key if neither `parts` nor `content` is a valid array.\n */\nfunction getArrayItems(message)\n\n {\n if ('parts' in message && Array.isArray(message.parts)) {\n return { key: 'parts', items: message.parts };\n }\n if ('content' in message && Array.isArray(message.content)) {\n return { key: 'content', items: message.content };\n }\n return { key: null, items: [] };\n}\n\n/**\n * Truncate a message with an array-based format.\n * Handles both `parts: [...]` (Google GenAI) and `content: [...]` (OpenAI/Anthropic multimodal).\n * Keeps as many complete items as possible, only truncating the first item if needed.\n *\n * @param message - Message with parts or content array\n * @param maxBytes - Maximum byte limit\n * @returns Array with truncated message, or empty array if it doesn't fit\n */\nfunction truncateArrayMessage(message, maxBytes) {\n const { key, items } = getArrayItems(message);\n\n if (key === null || items.length === 0) {\n return [];\n }\n\n // Calculate overhead by creating empty text items\n const emptyItems = items.map(item => withItemText(item, ''));\n const overhead = jsonBytes({ ...message, [key]: emptyItems });\n let remainingBytes = maxBytes - overhead;\n\n if (remainingBytes <= 0) {\n return [];\n }\n\n // Include items until we run out of space\n const includedItems = [];\n\n for (const item of items) {\n const text = getItemText(item);\n const textSize = utf8Bytes(text);\n\n if (textSize <= remainingBytes) {\n // Item fits: include it as-is\n includedItems.push(item);\n remainingBytes -= textSize;\n } else if (includedItems.length === 0) {\n // First item doesn't fit: truncate it\n const truncated = truncateTextByBytes(text, remainingBytes);\n if (truncated) {\n includedItems.push(withItemText(item, truncated));\n }\n break;\n } else {\n // Subsequent item doesn't fit: stop here\n break;\n }\n }\n\n /* c8 ignore start\n * for type safety only, algorithm guarantees SOME text included */\n if (includedItems.length <= 0) {\n return [];\n } else {\n /* c8 ignore stop */\n return [{ ...message, [key]: includedItems }];\n }\n}\n\n/**\n * Truncate a single message to fit within maxBytes.\n *\n * Supports three message formats:\n * - OpenAI/Anthropic: `{ ..., content: string }`\n * - Vercel AI/OpenAI multimodal: `{ ..., content: Array<{type, text?, ...}> }`\n * - Google GenAI: `{ ..., parts: Array }`\n *\n * @param message - The message to truncate\n * @param maxBytes - Maximum byte limit for the message\n * @returns Array containing the truncated message, or empty array if truncation fails\n */\nfunction truncateSingleMessage(message, maxBytes) {\n if (!message) return [];\n\n // Handle plain strings (e.g., embeddings input)\n if (typeof message === 'string') {\n const truncated = truncateTextByBytes(message, maxBytes);\n return truncated ? [truncated] : [];\n }\n\n if (typeof message !== 'object') {\n return [];\n }\n\n if (isContentMessage(message)) {\n return truncateContentMessage(message, maxBytes);\n }\n\n if (isContentArrayMessage(message) || isPartsMessage(message)) {\n return truncateArrayMessage(message, maxBytes);\n }\n\n // Unknown message format: cannot truncate safely\n return [];\n}\n\n/**\n * Strip the inline media from message arrays.\n *\n * This returns a stripped message. We do NOT want to mutate the data in place,\n * because of course we still want the actual API/client to handle the media.\n */\nfunction stripInlineMediaFromMessages(messages) {\n const stripped = messages.map(message => {\n let newMessage = undefined;\n if (!!message && typeof message === 'object') {\n if (isContentArrayMessage(message)) {\n newMessage = {\n ...message,\n content: stripInlineMediaFromMessages(message.content),\n };\n } else if ('content' in message && isContentMedia(message.content)) {\n newMessage = {\n ...message,\n content: stripInlineMediaFromSingleMessage(message.content),\n };\n }\n if (isPartsMessage(message)) {\n newMessage = {\n // might have to strip content AND parts\n ...(newMessage ?? message),\n parts: stripInlineMediaFromMessages(message.parts),\n };\n }\n if (isContentMedia(newMessage)) {\n newMessage = stripInlineMediaFromSingleMessage(newMessage);\n } else if (isContentMedia(message)) {\n newMessage = stripInlineMediaFromSingleMessage(message);\n }\n }\n return newMessage ?? message;\n });\n return stripped;\n}\n\n/**\n * Truncate an array of messages to fit within a byte limit.\n *\n * Strategy:\n * - Always keeps only the last (newest) message\n * - Strips inline media from the message\n * - Truncates the message content if it exceeds the byte limit\n *\n * @param messages - Array of messages to truncate\n * @param maxBytes - Maximum total byte limit for the message\n * @returns Array containing only the last message (possibly truncated)\n *\n * @example\n * ```ts\n * const messages = [msg1, msg2, msg3, msg4]; // newest is msg4\n * const truncated = truncateMessagesByBytes(messages, 10000);\n * // Returns [msg4] (truncated if needed)\n * ```\n */\nfunction truncateMessagesByBytes(messages, maxBytes) {\n // Early return for empty or invalid input\n if (!Array.isArray(messages) || messages.length === 0) {\n return messages;\n }\n\n // The result is always a single-element array that callers wrap with\n // JSON.stringify([message]), so subtract the 2-byte array wrapper (\"[\" and \"]\")\n // to ensure the final serialized value stays under the limit.\n const effectiveMaxBytes = maxBytes - 2;\n\n // Always keep only the last message\n const lastMessage = messages[messages.length - 1];\n\n // Strip inline media from the single message\n const stripped = stripInlineMediaFromMessages([lastMessage]);\n const strippedMessage = stripped[0];\n\n // Check if it fits\n const messageBytes = jsonBytes(strippedMessage);\n if (messageBytes <= effectiveMaxBytes) {\n return stripped;\n }\n\n // Truncate the single message if needed\n return truncateSingleMessage(strippedMessage, effectiveMaxBytes);\n}\n\n/**\n * Truncate GenAI messages using the default byte limit.\n *\n * Convenience wrapper around `truncateMessagesByBytes` with the default limit.\n *\n * @param messages - Array of messages to truncate\n * @returns Truncated array of messages\n */\nfunction truncateGenAiMessages(messages) {\n return truncateMessagesByBytes(messages, DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT);\n}\n\n/**\n * Truncate GenAI string input using the default byte limit.\n *\n * @param input - The string to truncate\n * @returns Truncated string\n */\nfunction truncateGenAiStringInput(input) {\n return truncateTextByBytes(input, DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT);\n}\n\nexport { DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT, truncateGenAiMessages, truncateGenAiStringInput };\n//# sourceMappingURL=messageTruncation.js.map\n", - "import { captureException } from '../../exports.js';\nimport { getClient } from '../../currentScopes.js';\nimport { isThenable } from '../../utils/is.js';\nimport { GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE } from './gen-ai-attributes.js';\nimport { truncateGenAiStringInput, truncateGenAiMessages } from './messageTruncation.js';\n\n/**\n * Shared utils for AI integrations (OpenAI, Anthropic, Verce.AI, etc.)\n */\n\n/**\n * Resolves AI recording options by falling back to the client's `sendDefaultPii` setting.\n * Precedence: explicit option > sendDefaultPii > false\n */\nfunction resolveAIRecordingOptions(options) {\n const sendDefaultPii = Boolean(getClient()?.getOptions().sendDefaultPii);\n return {\n ...options,\n recordInputs: options?.recordInputs ?? sendDefaultPii,\n recordOutputs: options?.recordOutputs ?? sendDefaultPii,\n } ;\n}\n\n/**\n * Maps AI method paths to OpenTelemetry semantic convention operation names\n * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/#llm-request-spans\n */\nfunction getFinalOperationName(methodPath) {\n if (methodPath.includes('messages')) {\n return 'chat';\n }\n if (methodPath.includes('completions')) {\n return 'text_completion';\n }\n // Google GenAI: models.generateContent* -> generate_content (actually generates AI responses)\n if (methodPath.includes('generateContent')) {\n return 'generate_content';\n }\n // Anthropic: models.get/retrieve -> models (metadata retrieval only)\n if (methodPath.includes('models')) {\n return 'models';\n }\n if (methodPath.includes('chat')) {\n return 'chat';\n }\n return methodPath.split('.').pop() || 'unknown';\n}\n\n/**\n * Get the span operation for AI methods\n * Following Sentry's convention: \"gen_ai.{operation_name}\"\n */\nfunction getSpanOperation(methodPath) {\n return `gen_ai.${getFinalOperationName(methodPath)}`;\n}\n\n/**\n * Build method path from current traversal\n */\nfunction buildMethodPath(currentPath, prop) {\n return currentPath ? `${currentPath}.${prop}` : prop;\n}\n\n/**\n * Set token usage attributes\n * @param span - The span to add attributes to\n * @param promptTokens - The number of prompt tokens\n * @param completionTokens - The number of completion tokens\n * @param cachedInputTokens - The number of cached input tokens\n * @param cachedOutputTokens - The number of cached output tokens\n */\nfunction setTokenUsageAttributes(\n span,\n promptTokens,\n completionTokens,\n cachedInputTokens,\n cachedOutputTokens,\n) {\n if (promptTokens !== undefined) {\n span.setAttributes({\n [GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE]: promptTokens,\n });\n }\n if (completionTokens !== undefined) {\n span.setAttributes({\n [GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: completionTokens,\n });\n }\n if (\n promptTokens !== undefined ||\n completionTokens !== undefined ||\n cachedInputTokens !== undefined ||\n cachedOutputTokens !== undefined\n ) {\n /**\n * Total input tokens in a request is the summation of `input_tokens`,\n * `cache_creation_input_tokens`, and `cache_read_input_tokens`.\n */\n const totalTokens =\n (promptTokens ?? 0) + (completionTokens ?? 0) + (cachedInputTokens ?? 0) + (cachedOutputTokens ?? 0);\n\n span.setAttributes({\n [GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: totalTokens,\n });\n }\n}\n\n/**\n * Get the truncated JSON string for a string or array of strings.\n *\n * @param value - The string or array of strings to truncate\n * @returns The truncated JSON string\n */\nfunction getTruncatedJsonString(value) {\n if (typeof value === 'string') {\n // Some values are already JSON strings, so we don't need to duplicate the JSON parsing\n return truncateGenAiStringInput(value);\n }\n if (Array.isArray(value)) {\n // truncateGenAiMessages returns an array of strings, so we need to stringify it\n const truncatedMessages = truncateGenAiMessages(value);\n return JSON.stringify(truncatedMessages);\n }\n // value is an object, so we need to stringify it\n return JSON.stringify(value);\n}\n\n/**\n * Extract system instructions from messages array.\n * Finds the first system message and formats it according to OpenTelemetry semantic conventions.\n *\n * @param messages - Array of messages to extract system instructions from\n * @returns systemInstructions (JSON string) and filteredMessages (without system message)\n */\nfunction extractSystemInstructions(messages)\n\n {\n if (!Array.isArray(messages)) {\n return { systemInstructions: undefined, filteredMessages: messages };\n }\n\n const systemMessageIndex = messages.findIndex(\n msg => msg && typeof msg === 'object' && 'role' in msg && (msg ).role === 'system',\n );\n\n if (systemMessageIndex === -1) {\n return { systemInstructions: undefined, filteredMessages: messages };\n }\n\n const systemMessage = messages[systemMessageIndex] ;\n const systemContent =\n typeof systemMessage.content === 'string'\n ? systemMessage.content\n : systemMessage.content !== undefined\n ? JSON.stringify(systemMessage.content)\n : undefined;\n\n if (!systemContent) {\n return { systemInstructions: undefined, filteredMessages: messages };\n }\n\n const systemInstructions = JSON.stringify([{ type: 'text', content: systemContent }]);\n const filteredMessages = [...messages.slice(0, systemMessageIndex), ...messages.slice(systemMessageIndex + 1)];\n\n return { systemInstructions, filteredMessages };\n}\n\n/**\n * Creates a wrapped version of .withResponse() that replaces the data field\n * with the instrumented result while preserving metadata (response, request_id).\n */\nasync function createWithResponseWrapper(\n originalWithResponse,\n instrumentedPromise,\n mechanismType,\n) {\n // Attach catch handler to originalWithResponse immediately to prevent unhandled rejection\n // If instrumentedPromise rejects first, we still need this handled\n const safeOriginalWithResponse = originalWithResponse.catch(error => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: mechanismType,\n },\n });\n throw error;\n });\n\n const instrumentedResult = await instrumentedPromise;\n const originalWrapper = await safeOriginalWithResponse;\n\n // Combine instrumented result with original metadata\n if (originalWrapper && typeof originalWrapper === 'object' && 'data' in originalWrapper) {\n return {\n ...originalWrapper,\n data: instrumentedResult,\n };\n }\n return instrumentedResult;\n}\n\n/**\n * Wraps a promise-like object to preserve additional methods (like .withResponse())\n * that AI SDK clients (OpenAI, Anthropic) attach to their APIPromise return values.\n *\n * Standard Promise methods (.then, .catch, .finally) are routed to the instrumented\n * promise to preserve Sentry's span instrumentation, while custom SDK methods are\n * forwarded to the original promise to maintain the SDK's API surface.\n */\nfunction wrapPromiseWithMethods(\n originalPromiseLike,\n instrumentedPromise,\n mechanismType,\n) {\n // If the original result is not thenable, return the instrumented promise\n if (!isThenable(originalPromiseLike)) {\n return instrumentedPromise;\n }\n\n // Create a proxy that forwards Promise methods to instrumentedPromise\n // and preserves additional methods from the original result\n return new Proxy(originalPromiseLike, {\n get(target, prop) {\n // For standard Promise methods (.then, .catch, .finally, Symbol.toStringTag),\n // use instrumentedPromise to preserve Sentry instrumentation.\n // For custom methods (like .withResponse()), use the original target.\n const useInstrumentedPromise = prop in Promise.prototype || prop === Symbol.toStringTag;\n const source = useInstrumentedPromise ? instrumentedPromise : target;\n\n const value = Reflect.get(source, prop) ;\n\n // Special handling for .withResponse() to preserve instrumentation\n // .withResponse() returns { data: T, response: Response, request_id: string }\n if (prop === 'withResponse' && typeof value === 'function') {\n return function wrappedWithResponse() {\n const originalWithResponse = (value ).call(target);\n return createWithResponseWrapper(originalWithResponse, instrumentedPromise, mechanismType);\n };\n }\n\n return typeof value === 'function' ? value.bind(source) : value;\n },\n }) ;\n}\n\nexport { buildMethodPath, extractSystemInstructions, getFinalOperationName, getSpanOperation, getTruncatedJsonString, resolveAIRecordingOptions, setTokenUsageAttributes, wrapPromiseWithMethods };\n//# sourceMappingURL=utils.js.map\n", - "/* eslint-disable max-lines */\n/**\n * AI SDK Telemetry Attributes\n * Based on https://ai-sdk.dev/docs/ai-sdk-core/telemetry#collected-data\n */\n\n// =============================================================================\n// COMMON ATTRIBUTES\n// =============================================================================\n\n/**\n * Common attribute for operation name across all functions and spans\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#collected-data\n */\nconst OPERATION_NAME_ATTRIBUTE = 'operation.name';\n\n/**\n * Common attribute for AI operation ID across all functions and spans\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#collected-data\n */\nconst AI_OPERATION_ID_ATTRIBUTE = 'ai.operationId';\n\n// =============================================================================\n// SHARED ATTRIBUTES\n// =============================================================================\n\n/**\n * `generateText` function - `ai.generateText` span\n * `streamText` function - `ai.streamText` span\n *\n * The prompt that was used when calling the function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamtext-function\n */\nconst AI_PROMPT_ATTRIBUTE = 'ai.prompt';\n\n/**\n * `generateObject` function - `ai.generateObject` span\n * `streamObject` function - `ai.streamObject` span\n *\n * The JSON schema version of the schema that was passed into the function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generateobject-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamobject-function\n */\nconst AI_SCHEMA_ATTRIBUTE = 'ai.schema';\n\n/**\n * `generateObject` function - `ai.generateObject` span\n * `streamObject` function - `ai.streamObject` span\n *\n * The object that was generated (stringified JSON)\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generateobject-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamobject-function\n */\nconst AI_RESPONSE_OBJECT_ATTRIBUTE = 'ai.response.object';\n\n/**\n * `embed` function - `ai.embed.doEmbed` span\n * `embedMany` function - `ai.embedMany` span\n *\n * The values that were passed into the function (array)\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#embed-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#embedmany-function\n */\nconst AI_VALUES_ATTRIBUTE = 'ai.values';\n\n// =============================================================================\n// GENERATETEXT FUNCTION - UNIQUE ATTRIBUTES\n// =============================================================================\n\n/**\n * `generateText` function - `ai.generateText` span\n *\n * The text that was generated\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nconst AI_RESPONSE_TEXT_ATTRIBUTE = 'ai.response.text';\n\n/**\n * `generateText` function - `ai.generateText` span\n *\n * The tool calls that were made as part of the generation (stringified JSON)\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nconst AI_RESPONSE_TOOL_CALLS_ATTRIBUTE = 'ai.response.toolCalls';\n\n/**\n * `generateText` function - `ai.generateText` span\n *\n * The reason why the generation finished\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nconst AI_RESPONSE_FINISH_REASON_ATTRIBUTE = 'ai.response.finishReason';\n\n/**\n * `generateText` function - `ai.generateText.doGenerate` span\n *\n * The messages that were passed into the provider\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nconst AI_PROMPT_MESSAGES_ATTRIBUTE = 'ai.prompt.messages';\n\n/**\n * `generateText` function - `ai.generateText.doGenerate` span\n *\n * Array of stringified tool definitions\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nconst AI_PROMPT_TOOLS_ATTRIBUTE = 'ai.prompt.tools';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The id of the model\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nconst AI_MODEL_ID_ATTRIBUTE = 'ai.model.id';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * Provider specific metadata returned with the generation response\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nconst AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE = 'ai.response.providerMetadata';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The number of cached input tokens that were used\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nconst AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE = 'ai.usage.cachedInputTokens';\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The functionId that was set through `telemetry.functionId`\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nconst AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE = 'ai.telemetry.functionId';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The number of completion tokens that were used\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nconst AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE = 'ai.usage.completionTokens';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The number of prompt tokens that were used\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nconst AI_USAGE_PROMPT_TOKENS_ATTRIBUTE = 'ai.usage.promptTokens';\n\n// =============================================================================\n// BASIC EMBEDDING SPAN INFORMATION\n// =============================================================================\n\n/**\n * Basic embedding span information\n * Embedding spans\n *\n * The number of tokens that were used\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-embedding-span-information\n */\nconst AI_USAGE_TOKENS_ATTRIBUTE = 'ai.usage.tokens';\n\n// =============================================================================\n// TOOL CALL SPANS\n// =============================================================================\n\n/**\n * Tool call spans\n * `ai.toolCall` span\n *\n * The name of the tool\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n */\nconst AI_TOOL_CALL_NAME_ATTRIBUTE = 'ai.toolCall.name';\n\n/**\n * Tool call spans\n * `ai.toolCall` span\n *\n * The id of the tool call\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n */\nconst AI_TOOL_CALL_ID_ATTRIBUTE = 'ai.toolCall.id';\n\n/**\n * Tool call spans\n * `ai.toolCall` span\n *\n * The parameters of the tool call\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n */\nconst AI_TOOL_CALL_ARGS_ATTRIBUTE = 'ai.toolCall.args';\n\n/**\n * Tool call spans\n * `ai.toolCall` span\n *\n * The result of the tool call\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n */\nconst AI_TOOL_CALL_RESULT_ATTRIBUTE = 'ai.toolCall.result';\n\n// =============================================================================\n// PROVIDER METADATA\n// =============================================================================\n\n/**\n * OpenAI Provider Metadata\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/openai\n * @see https://github.com/vercel/ai/blob/65e042afde6aad4da9d7a62526ece839eb34f9a5/packages/openai/src/openai-chat-language-model.ts#L397-L416\n * @see https://github.com/vercel/ai/blob/65e042afde6aad4da9d7a62526ece839eb34f9a5/packages/openai/src/responses/openai-responses-language-model.ts#L377C7-L384\n */\n\nexport { AI_MODEL_ID_ATTRIBUTE, AI_OPERATION_ID_ATTRIBUTE, AI_PROMPT_ATTRIBUTE, AI_PROMPT_MESSAGES_ATTRIBUTE, AI_PROMPT_TOOLS_ATTRIBUTE, AI_RESPONSE_FINISH_REASON_ATTRIBUTE, AI_RESPONSE_OBJECT_ATTRIBUTE, AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE, AI_RESPONSE_TEXT_ATTRIBUTE, AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, AI_SCHEMA_ATTRIBUTE, AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE, AI_TOOL_CALL_ARGS_ATTRIBUTE, AI_TOOL_CALL_ID_ATTRIBUTE, AI_TOOL_CALL_NAME_ATTRIBUTE, AI_TOOL_CALL_RESULT_ATTRIBUTE, AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE, AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, AI_USAGE_PROMPT_TOKENS_ATTRIBUTE, AI_USAGE_TOKENS_ATTRIBUTE, AI_VALUES_ATTRIBUTE, OPERATION_NAME_ATTRIBUTE };\n//# sourceMappingURL=vercel-ai-attributes.js.map\n", - "import { GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE, GEN_AI_RERANK_DO_RERANK_OPERATION_ATTRIBUTE, GEN_AI_EMBED_MANY_DO_EMBED_OPERATION_ATTRIBUTE, GEN_AI_EMBED_DO_EMBED_OPERATION_ATTRIBUTE, GEN_AI_STREAM_OBJECT_DO_STREAM_OPERATION_ATTRIBUTE, GEN_AI_GENERATE_OBJECT_DO_GENERATE_OPERATION_ATTRIBUTE, GEN_AI_STREAM_TEXT_DO_STREAM_OPERATION_ATTRIBUTE, GEN_AI_GENERATE_TEXT_DO_GENERATE_OPERATION_ATTRIBUTE, GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { extractSystemInstructions, getTruncatedJsonString } from '../ai/utils.js';\nimport { toolCallSpanContextMap } from './constants.js';\nimport { AI_PROMPT_ATTRIBUTE, AI_PROMPT_MESSAGES_ATTRIBUTE } from './vercel-ai-attributes.js';\n\n/**\n * Accumulates token data from a span to its parent in the token accumulator map.\n * This function extracts token usage from the current span and adds it to the\n * accumulated totals for its parent span.\n */\nfunction accumulateTokensForParent(span, tokenAccumulator) {\n const parentSpanId = span.parent_span_id;\n if (!parentSpanId) {\n return;\n }\n\n const inputTokens = span.data[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE];\n const outputTokens = span.data[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE];\n\n if (typeof inputTokens === 'number' || typeof outputTokens === 'number') {\n const existing = tokenAccumulator.get(parentSpanId) || { inputTokens: 0, outputTokens: 0 };\n\n if (typeof inputTokens === 'number') {\n existing.inputTokens += inputTokens;\n }\n if (typeof outputTokens === 'number') {\n existing.outputTokens += outputTokens;\n }\n\n tokenAccumulator.set(parentSpanId, existing);\n }\n}\n\n/**\n * Applies accumulated token data to the `gen_ai.invoke_agent` span.\n * Only immediate children of the `gen_ai.invoke_agent` span are considered,\n * since aggregation will automatically occur for each parent span.\n */\nfunction applyAccumulatedTokens(\n spanOrTrace,\n tokenAccumulator,\n) {\n const accumulated = tokenAccumulator.get(spanOrTrace.span_id);\n if (!accumulated || !spanOrTrace.data) {\n return;\n }\n\n if (accumulated.inputTokens > 0) {\n spanOrTrace.data[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] = accumulated.inputTokens;\n }\n if (accumulated.outputTokens > 0) {\n spanOrTrace.data[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] = accumulated.outputTokens;\n }\n if (accumulated.inputTokens > 0 || accumulated.outputTokens > 0) {\n spanOrTrace.data['gen_ai.usage.total_tokens'] = accumulated.inputTokens + accumulated.outputTokens;\n }\n}\n\n/**\n * Builds a map of tool name -> description from all spans with available_tools.\n * This avoids O(n²) iteration and repeated JSON parsing.\n */\nfunction buildToolDescriptionMap(spans) {\n const toolDescriptions = new Map();\n\n for (const span of spans) {\n const availableTools = span.data[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE];\n if (typeof availableTools !== 'string') {\n continue;\n }\n try {\n const tools = JSON.parse(availableTools) ;\n for (const tool of tools) {\n if (tool.name && tool.description && !toolDescriptions.has(tool.name)) {\n toolDescriptions.set(tool.name, tool.description);\n }\n }\n } catch {\n // ignore parse errors\n }\n }\n\n return toolDescriptions;\n}\n\n/**\n * Applies tool descriptions and accumulated tokens to spans in a single pass.\n *\n * - For `gen_ai.execute_tool` spans: looks up tool description from\n * `gen_ai.request.available_tools` on sibling spans\n * - For `gen_ai.invoke_agent` spans: applies accumulated token data from children\n */\nfunction applyToolDescriptionsAndTokens(spans, tokenAccumulator) {\n // Build lookup map once to avoid O(n²) iteration and repeated JSON parsing\n const toolDescriptions = buildToolDescriptionMap(spans);\n\n for (const span of spans) {\n if (span.op === 'gen_ai.execute_tool') {\n const toolName = span.data[GEN_AI_TOOL_NAME_ATTRIBUTE];\n if (typeof toolName === 'string') {\n const description = toolDescriptions.get(toolName);\n if (description) {\n span.data[GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE] = description;\n }\n }\n }\n\n if (span.op === 'gen_ai.invoke_agent') {\n applyAccumulatedTokens(span, tokenAccumulator);\n }\n }\n}\n\n/**\n * Get the span context associated with a tool call ID.\n */\nfunction _INTERNAL_getSpanContextForToolCallId(toolCallId) {\n return toolCallSpanContextMap.get(toolCallId);\n}\n\n/**\n * Clean up the span mapping for a tool call ID\n */\nfunction _INTERNAL_cleanupToolCallSpanContext(toolCallId) {\n toolCallSpanContextMap.delete(toolCallId);\n}\n\n/**\n * Convert an array of tool strings to a JSON string\n */\nfunction convertAvailableToolsToJsonString(tools) {\n const toolObjects = tools.map(tool => {\n if (typeof tool === 'string') {\n try {\n return JSON.parse(tool);\n } catch {\n return tool;\n }\n }\n return tool;\n });\n return JSON.stringify(toolObjects);\n}\n\n/**\n * Filter out invalid entries in messages array\n * @param input - The input array to filter\n * @returns The filtered array\n */\nfunction filterMessagesArray(input) {\n return input.filter(\n (m) =>\n !!m && typeof m === 'object' && 'role' in m && 'content' in m,\n );\n}\n\n/**\n * Normalize the user input (stringified object with prompt, system, messages) to messages array\n */\nfunction convertUserInputToMessagesFormat(userInput) {\n try {\n const p = JSON.parse(userInput);\n if (!!p && typeof p === 'object') {\n let { messages } = p;\n const { prompt, system } = p;\n const result = [];\n\n // prepend top-level system instruction if present\n if (typeof system === 'string') {\n result.push({ role: 'system', content: system });\n }\n\n // stringified messages array\n if (typeof messages === 'string') {\n try {\n messages = JSON.parse(messages);\n } catch {\n // ignore parse errors\n }\n }\n\n // messages array format: { messages: [...] }\n if (Array.isArray(messages)) {\n result.push(...filterMessagesArray(messages));\n return result;\n }\n\n // prompt array format: { prompt: [...] }\n if (Array.isArray(prompt)) {\n result.push(...filterMessagesArray(prompt));\n return result;\n }\n\n // prompt string format: { prompt: \"...\" }\n if (typeof prompt === 'string') {\n result.push({ role: 'user', content: prompt });\n }\n\n if (result.length > 0) {\n return result;\n }\n }\n // eslint-disable-next-line no-empty\n } catch {}\n return [];\n}\n\n/**\n * Generate a request.messages JSON array from the prompt field in the\n * invoke_agent op\n */\nfunction requestMessagesFromPrompt(span, attributes) {\n if (\n typeof attributes[AI_PROMPT_ATTRIBUTE] === 'string' &&\n !attributes[GEN_AI_INPUT_MESSAGES_ATTRIBUTE] &&\n !attributes[AI_PROMPT_MESSAGES_ATTRIBUTE]\n ) {\n // No messages array is present, so we need to convert the prompt to the proper messages format\n // This is the case for ai.generateText spans\n // The ai.prompt attribute is a stringified object with prompt, system, messages attributes\n // The format of these is described in the vercel docs, for instance: https://ai-sdk.dev/docs/reference/ai-sdk-core/stream-object#parameters\n const userInput = attributes[AI_PROMPT_ATTRIBUTE];\n const messages = convertUserInputToMessagesFormat(userInput);\n if (messages.length) {\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n const truncatedMessages = getTruncatedJsonString(filteredMessages);\n\n span.setAttributes({\n [AI_PROMPT_ATTRIBUTE]: truncatedMessages,\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: truncatedMessages,\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n });\n }\n } else if (typeof attributes[AI_PROMPT_MESSAGES_ATTRIBUTE] === 'string') {\n // In this case we already get a properly formatted messages array, this is the preferred way to get the messages\n // This is the case for ai.generateText.doGenerate spans\n try {\n const messages = JSON.parse(attributes[AI_PROMPT_MESSAGES_ATTRIBUTE]);\n if (Array.isArray(messages)) {\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n const truncatedMessages = getTruncatedJsonString(filteredMessages);\n\n span.setAttributes({\n [AI_PROMPT_MESSAGES_ATTRIBUTE]: truncatedMessages,\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: truncatedMessages,\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n });\n }\n // eslint-disable-next-line no-empty\n } catch {}\n }\n}\n\n/**\n * Maps a Vercel AI span name to the corresponding Sentry op.\n */\nfunction getSpanOpFromName(name) {\n switch (name) {\n case 'ai.generateText':\n case 'ai.streamText':\n case 'ai.generateObject':\n case 'ai.streamObject':\n return GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE;\n case 'ai.generateText.doGenerate':\n return GEN_AI_GENERATE_TEXT_DO_GENERATE_OPERATION_ATTRIBUTE;\n case 'ai.streamText.doStream':\n return GEN_AI_STREAM_TEXT_DO_STREAM_OPERATION_ATTRIBUTE;\n case 'ai.generateObject.doGenerate':\n return GEN_AI_GENERATE_OBJECT_DO_GENERATE_OPERATION_ATTRIBUTE;\n case 'ai.streamObject.doStream':\n return GEN_AI_STREAM_OBJECT_DO_STREAM_OPERATION_ATTRIBUTE;\n case 'ai.embed.doEmbed':\n return GEN_AI_EMBED_DO_EMBED_OPERATION_ATTRIBUTE;\n case 'ai.embedMany.doEmbed':\n return GEN_AI_EMBED_MANY_DO_EMBED_OPERATION_ATTRIBUTE;\n case 'ai.rerank.doRerank':\n return GEN_AI_RERANK_DO_RERANK_OPERATION_ATTRIBUTE;\n case 'ai.toolCall':\n return GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE;\n default:\n if (name.startsWith('ai.stream')) {\n return 'ai.run';\n }\n return undefined;\n }\n}\n\nexport { _INTERNAL_cleanupToolCallSpanContext, _INTERNAL_getSpanContextForToolCallId, accumulateTokensForParent, applyAccumulatedTokens, applyToolDescriptionsAndTokens, convertAvailableToolsToJsonString, convertUserInputToMessagesFormat, getSpanOpFromName, requestMessagesFromPrompt };\n//# sourceMappingURL=utils.js.map\n", - "import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP } from '../../semanticAttributes.js';\nimport { spanToJSON } from '../../utils/spanUtils.js';\nimport { GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_TOOL_CALL_ID_ATTRIBUTE, GEN_AI_TOOL_TYPE_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE, GEN_AI_TOOL_OUTPUT_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { toolCallSpanContextMap, INVOKE_AGENT_OPS, GENERATE_CONTENT_OPS, DO_SPAN_NAME_PREFIX, EMBEDDINGS_OPS, RERANK_OPS } from './constants.js';\nimport { accumulateTokensForParent, applyToolDescriptionsAndTokens, applyAccumulatedTokens, requestMessagesFromPrompt, getSpanOpFromName, convertAvailableToolsToJsonString } from './utils.js';\nimport { AI_TOOL_CALL_NAME_ATTRIBUTE, AI_TOOL_CALL_ID_ATTRIBUTE, AI_OPERATION_ID_ATTRIBUTE, AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE, AI_MODEL_ID_ATTRIBUTE, AI_PROMPT_TOOLS_ATTRIBUTE, OPERATION_NAME_ATTRIBUTE, AI_VALUES_ATTRIBUTE, AI_RESPONSE_TEXT_ATTRIBUTE, AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, AI_RESPONSE_FINISH_REASON_ATTRIBUTE, AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE, AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, AI_USAGE_PROMPT_TOKENS_ATTRIBUTE, AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE, AI_USAGE_TOKENS_ATTRIBUTE, AI_PROMPT_MESSAGES_ATTRIBUTE, AI_RESPONSE_OBJECT_ATTRIBUTE, AI_TOOL_CALL_ARGS_ATTRIBUTE, AI_TOOL_CALL_RESULT_ATTRIBUTE, AI_SCHEMA_ATTRIBUTE } from './vercel-ai-attributes.js';\n\n/**\n * Maps Vercel AI SDK operation names to OpenTelemetry semantic convention values\n * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/#llm-request-spans\n */\nfunction mapVercelAiOperationName(operationName) {\n // Top-level pipeline operations map to invoke_agent\n if (INVOKE_AGENT_OPS.has(operationName)) {\n return 'invoke_agent';\n }\n // .do* operations are the actual LLM calls\n if (GENERATE_CONTENT_OPS.has(operationName)) {\n return 'generate_content';\n }\n if (EMBEDDINGS_OPS.has(operationName)) {\n return 'embeddings';\n }\n if (RERANK_OPS.has(operationName)) {\n return 'rerank';\n }\n if (operationName === 'ai.toolCall') {\n return 'execute_tool';\n }\n // Return the original value for unknown operations\n return operationName;\n}\n\n/**\n * Post-process spans emitted by the Vercel AI SDK.\n * This is supposed to be used in `client.on('spanStart', ...)\n */\nfunction onVercelAiSpanStart(span) {\n const { data: attributes, description: name } = spanToJSON(span);\n\n if (!name) {\n return;\n }\n\n // Tool call spans\n // https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n if (attributes[AI_TOOL_CALL_NAME_ATTRIBUTE] && attributes[AI_TOOL_CALL_ID_ATTRIBUTE] && name === 'ai.toolCall') {\n processToolCallSpan(span, attributes);\n return;\n }\n\n // V6+ Check if this is a Vercel AI span by checking if the operation ID attribute is present.\n // V5+ Check if this is a Vercel AI span by name pattern.\n if (!attributes[AI_OPERATION_ID_ATTRIBUTE] && !name.startsWith('ai.')) {\n return;\n }\n\n processGenerateSpan(span, name, attributes);\n}\n\nfunction vercelAiEventProcessor(event) {\n if (event.type === 'transaction' && event.spans) {\n // Map to accumulate token data by parent span ID\n const tokenAccumulator = new Map();\n\n // First pass: process all spans and accumulate token data\n for (const span of event.spans) {\n processEndedVercelAiSpan(span);\n\n // Accumulate token data for parent spans\n accumulateTokensForParent(span, tokenAccumulator);\n }\n\n // Second pass: apply tool descriptions and accumulated tokens\n applyToolDescriptionsAndTokens(event.spans, tokenAccumulator);\n\n // Also apply to root when it is the invoke_agent pipeline\n const trace = event.contexts?.trace;\n if (trace?.op === 'gen_ai.invoke_agent') {\n applyAccumulatedTokens(trace, tokenAccumulator);\n }\n }\n\n return event;\n}\n\n/**\n * Tool call structure from Vercel AI SDK\n * Note: V5/V6 use 'input' for arguments, V4 and earlier use 'args'\n */\n\n/**\n * Normalize finish reason to match OpenTelemetry semantic conventions.\n * Valid values: \"stop\", \"length\", \"content_filter\", \"tool_call\", \"error\"\n *\n * Vercel AI SDK uses \"tool-calls\" (plural, with hyphen) which we map to \"tool_call\".\n */\nfunction normalizeFinishReason(finishReason) {\n if (typeof finishReason !== 'string') {\n return 'stop';\n }\n\n // Map Vercel AI SDK finish reasons to OpenTelemetry semantic convention values\n switch (finishReason) {\n case 'tool-calls':\n return 'tool_call';\n case 'stop':\n case 'length':\n case 'content_filter':\n case 'error':\n return finishReason;\n default:\n // For unknown values, return as-is (schema allows arbitrary strings)\n return finishReason;\n }\n}\n\n/**\n * Build gen_ai.output.messages from ai.response.text and/or ai.response.toolCalls\n *\n * Format follows OpenTelemetry semantic conventions:\n * [{\"role\": \"assistant\", \"parts\": [...], \"finish_reason\": \"stop\"}]\n *\n * Parts can be:\n * - {\"type\": \"text\", \"content\": \"...\"}\n * - {\"type\": \"tool_call\", \"id\": \"...\", \"name\": \"...\", \"arguments\": \"...\"}\n */\nfunction buildOutputMessages(attributes) {\n const responseText = attributes[AI_RESPONSE_TEXT_ATTRIBUTE];\n const responseToolCalls = attributes[AI_RESPONSE_TOOL_CALLS_ATTRIBUTE];\n const finishReason = attributes[AI_RESPONSE_FINISH_REASON_ATTRIBUTE];\n\n // Skip if neither text nor tool calls are present\n if (responseText == null && responseToolCalls == null) {\n return;\n }\n\n const parts = [];\n\n // Add text part if present\n if (typeof responseText === 'string' && responseText.length > 0) {\n parts.push({\n type: 'text',\n content: responseText,\n });\n }\n\n // Add tool call parts if present\n if (responseToolCalls != null) {\n try {\n // Tool calls can be a string (JSON) or already parsed array\n const toolCalls =\n typeof responseToolCalls === 'string' ? JSON.parse(responseToolCalls) : responseToolCalls;\n\n if (Array.isArray(toolCalls)) {\n for (const toolCall of toolCalls) {\n // V5/V6 use 'input', V4 and earlier use 'args'\n const args = toolCall.input ?? toolCall.args;\n parts.push({\n type: 'tool_call',\n id: toolCall.toolCallId,\n name: toolCall.toolName,\n // Handle undefined args: JSON.stringify(undefined) returns undefined, not a string,\n // which would cause the property to be omitted from the final JSON output\n arguments: typeof args === 'string' ? args : JSON.stringify(args ?? {}),\n });\n }\n // Only delete tool calls attribute if we successfully processed them\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete attributes[AI_RESPONSE_TOOL_CALLS_ATTRIBUTE];\n }\n } catch {\n // Ignore parsing errors - tool calls attribute is preserved\n }\n }\n\n // Only set output messages and delete text attribute if we have parts\n if (parts.length > 0) {\n const outputMessage = {\n role: 'assistant',\n parts,\n finish_reason: normalizeFinishReason(finishReason),\n };\n\n attributes[GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE] = JSON.stringify([outputMessage]);\n\n // Remove the text attribute since it's now captured in gen_ai.output.messages\n // Note: tool calls attribute is deleted above only if successfully parsed\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete attributes[AI_RESPONSE_TEXT_ATTRIBUTE];\n }\n}\n\n/**\n * Post-process spans emitted by the Vercel AI SDK.\n */\nfunction processEndedVercelAiSpan(span) {\n const { data: attributes, origin } = span;\n\n if (origin !== 'auto.vercelai.otel') {\n return;\n }\n\n // The Vercel AI SDK sets span status to raw error message strings.\n // Any such value should be normalized to a SpanStatusType value. We pick internal_error as it is the most generic.\n if (span.status && span.status !== 'ok') {\n span.status = 'internal_error';\n }\n\n renameAttributeKey(attributes, AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, AI_USAGE_PROMPT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE);\n\n // Parent spans (ai.streamText, ai.streamObject, etc.) use inputTokens/outputTokens instead of promptTokens/completionTokens\n renameAttributeKey(attributes, 'ai.usage.inputTokens', GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, 'ai.usage.outputTokens', GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE);\n\n // Embedding spans use ai.usage.tokens instead of promptTokens/completionTokens\n renameAttributeKey(attributes, AI_USAGE_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n\n // AI SDK uses avgOutputTokensPerSecond, map to our expected attribute name\n renameAttributeKey(attributes, 'ai.response.avgOutputTokensPerSecond', 'ai.response.avgCompletionTokensPerSecond');\n\n // Input tokens is the sum of prompt tokens and cached input tokens\n if (\n typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] === 'number' &&\n typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE] === 'number'\n ) {\n attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] =\n attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] + attributes[GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE];\n }\n\n // Compute total tokens from input + output (embeddings may only have input tokens)\n if (typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] === 'number') {\n const outputTokens =\n typeof attributes[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] === 'number'\n ? attributes[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]\n : 0;\n attributes[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE] = outputTokens + attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE];\n }\n\n // Convert the available tools array to a JSON string\n if (attributes[AI_PROMPT_TOOLS_ATTRIBUTE] && Array.isArray(attributes[AI_PROMPT_TOOLS_ATTRIBUTE])) {\n attributes[AI_PROMPT_TOOLS_ATTRIBUTE] = convertAvailableToolsToJsonString(\n attributes[AI_PROMPT_TOOLS_ATTRIBUTE] ,\n );\n }\n\n // Rename AI SDK attributes to standardized gen_ai attributes\n // Map operation.name to OpenTelemetry semantic convention values\n if (attributes[OPERATION_NAME_ATTRIBUTE]) {\n const operationName = mapVercelAiOperationName(attributes[OPERATION_NAME_ATTRIBUTE] );\n attributes[GEN_AI_OPERATION_NAME_ATTRIBUTE] = operationName;\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete attributes[OPERATION_NAME_ATTRIBUTE];\n }\n renameAttributeKey(attributes, AI_PROMPT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE);\n\n // Build gen_ai.output.messages from response text and/or tool calls\n // Note: buildOutputMessages also removes the source attributes when output is successfully generated\n buildOutputMessages(attributes);\n\n renameAttributeKey(attributes, AI_RESPONSE_OBJECT_ATTRIBUTE, 'gen_ai.response.object');\n renameAttributeKey(attributes, AI_PROMPT_TOOLS_ATTRIBUTE, 'gen_ai.request.available_tools');\n\n renameAttributeKey(attributes, AI_TOOL_CALL_ARGS_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE);\n renameAttributeKey(attributes, AI_TOOL_CALL_RESULT_ATTRIBUTE, GEN_AI_TOOL_OUTPUT_ATTRIBUTE);\n\n renameAttributeKey(attributes, AI_SCHEMA_ATTRIBUTE, 'gen_ai.request.schema');\n renameAttributeKey(attributes, AI_MODEL_ID_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE);\n\n // Map embedding input: ai.values → gen_ai.embeddings.input\n // Vercel AI SDK JSON-stringifies each value individually, so we parse each element back.\n // Single embed gets unwrapped to a plain value; batch embedMany stays as a JSON array.\n if (Array.isArray(attributes[AI_VALUES_ATTRIBUTE])) {\n const parsed = (attributes[AI_VALUES_ATTRIBUTE] ).map(v => {\n try {\n return JSON.parse(v);\n } catch {\n return v;\n }\n });\n attributes[GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE] = parsed.length === 1 ? parsed[0] : JSON.stringify(parsed);\n }\n\n addProviderMetadataToAttributes(attributes);\n\n // Change attributes namespaced with `ai.X` to `vercel.ai.X`\n for (const key of Object.keys(attributes)) {\n if (key.startsWith('ai.')) {\n renameAttributeKey(attributes, key, `vercel.${key}`);\n }\n }\n}\n\n/**\n * Renames an attribute key in the provided attributes object if the old key exists.\n * This function safely handles null and undefined values.\n */\nfunction renameAttributeKey(attributes, oldKey, newKey) {\n if (attributes[oldKey] != null) {\n attributes[newKey] = attributes[oldKey];\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete attributes[oldKey];\n }\n}\n\nfunction processToolCallSpan(span, attributes) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.vercelai.otel');\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.execute_tool');\n span.setAttribute(GEN_AI_OPERATION_NAME_ATTRIBUTE, 'execute_tool');\n renameAttributeKey(attributes, AI_TOOL_CALL_NAME_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE);\n renameAttributeKey(attributes, AI_TOOL_CALL_ID_ATTRIBUTE, GEN_AI_TOOL_CALL_ID_ATTRIBUTE);\n\n // Store the span context in our global map using the tool call ID.\n // This allows us to capture tool errors and link them to the correct span\n // without retaining the full Span object in memory.\n const toolCallId = attributes[GEN_AI_TOOL_CALL_ID_ATTRIBUTE];\n\n if (typeof toolCallId === 'string') {\n toolCallSpanContextMap.set(toolCallId, span.spanContext());\n }\n\n // https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-tool-type\n if (!attributes[GEN_AI_TOOL_TYPE_ATTRIBUTE]) {\n span.setAttribute(GEN_AI_TOOL_TYPE_ATTRIBUTE, 'function');\n }\n const toolName = attributes[GEN_AI_TOOL_NAME_ATTRIBUTE];\n if (toolName) {\n span.updateName(`execute_tool ${toolName}`);\n }\n}\n\nfunction processGenerateSpan(span, name, attributes) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.vercelai.otel');\n\n const nameWthoutAi = name.replace('ai.', '');\n span.setAttribute('ai.pipeline.name', nameWthoutAi);\n span.updateName(nameWthoutAi);\n\n const functionId = attributes[AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE];\n if (functionId && typeof functionId === 'string') {\n span.setAttribute('gen_ai.function_id', functionId);\n }\n\n requestMessagesFromPrompt(span, attributes);\n\n if (attributes[AI_MODEL_ID_ATTRIBUTE] && !attributes[GEN_AI_RESPONSE_MODEL_ATTRIBUTE]) {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, attributes[AI_MODEL_ID_ATTRIBUTE]);\n }\n span.setAttribute('ai.streaming', name.includes('stream'));\n\n // Set the op based on the span name\n const op = getSpanOpFromName(name);\n if (op) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, op);\n }\n\n // For invoke_agent pipeline spans, use 'invoke_agent' as the description\n // to be consistent with other AI integrations (e.g. LangGraph)\n if (INVOKE_AGENT_OPS.has(name)) {\n if (functionId && typeof functionId === 'string') {\n span.updateName(`invoke_agent ${functionId}`);\n } else {\n span.updateName('invoke_agent');\n }\n return;\n }\n\n const modelId = attributes[AI_MODEL_ID_ATTRIBUTE];\n if (modelId) {\n const doSpanPrefix = GENERATE_CONTENT_OPS.has(name) ? 'generate_content' : DO_SPAN_NAME_PREFIX[name];\n if (doSpanPrefix) {\n span.updateName(`${doSpanPrefix} ${modelId}`);\n }\n }\n}\n\n/**\n * Add event processors to the given client to process Vercel AI spans.\n */\nfunction addVercelAiProcessors(client) {\n client.on('spanStart', onVercelAiSpanStart);\n // Note: We cannot do this on `spanEnd`, because the span cannot be mutated anymore at this point\n client.addEventProcessor(Object.assign(vercelAiEventProcessor, { id: 'VercelAiEventProcessor' }));\n}\n\nfunction addProviderMetadataToAttributes(attributes) {\n const providerMetadata = attributes[AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE] ;\n if (providerMetadata) {\n try {\n const providerMetadataObject = JSON.parse(providerMetadata) ;\n\n // Handle OpenAI metadata (v5 uses 'openai', v6 Azure Responses API uses 'azure')\n const openaiMetadata =\n providerMetadataObject.openai ?? providerMetadataObject.azure;\n if (openaiMetadata) {\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE,\n openaiMetadata.cachedPromptTokens,\n );\n setAttributeIfDefined(attributes, 'gen_ai.usage.output_tokens.reasoning', openaiMetadata.reasoningTokens);\n setAttributeIfDefined(\n attributes,\n 'gen_ai.usage.output_tokens.prediction_accepted',\n openaiMetadata.acceptedPredictionTokens,\n );\n setAttributeIfDefined(\n attributes,\n 'gen_ai.usage.output_tokens.prediction_rejected',\n openaiMetadata.rejectedPredictionTokens,\n );\n if (!attributes['gen_ai.conversation.id']) {\n setAttributeIfDefined(attributes, 'gen_ai.conversation.id', openaiMetadata.responseId);\n }\n }\n\n if (providerMetadataObject.anthropic) {\n const cachedInputTokens =\n providerMetadataObject.anthropic.usage?.cache_read_input_tokens ??\n providerMetadataObject.anthropic.cacheReadInputTokens;\n setAttributeIfDefined(attributes, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE, cachedInputTokens);\n\n const cacheWriteInputTokens =\n providerMetadataObject.anthropic.usage?.cache_creation_input_tokens ??\n providerMetadataObject.anthropic.cacheCreationInputTokens;\n setAttributeIfDefined(attributes, GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE, cacheWriteInputTokens);\n }\n\n if (providerMetadataObject.bedrock?.usage) {\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE,\n providerMetadataObject.bedrock.usage.cacheReadInputTokens,\n );\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE,\n providerMetadataObject.bedrock.usage.cacheWriteInputTokens,\n );\n }\n\n if (providerMetadataObject.deepseek) {\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE,\n providerMetadataObject.deepseek.promptCacheHitTokens,\n );\n setAttributeIfDefined(\n attributes,\n 'gen_ai.usage.input_tokens.cache_miss',\n providerMetadataObject.deepseek.promptCacheMissTokens,\n );\n }\n } catch {\n // Ignore\n }\n }\n}\n\n/**\n * Sets an attribute only if the value is not null or undefined.\n */\nfunction setAttributeIfDefined(attributes, key, value) {\n if (value != null) {\n attributes[key] = value;\n }\n}\n\nexport { addVercelAiProcessors };\n//# sourceMappingURL=index.js.map\n", - "const OPENAI_INTEGRATION_NAME = 'OpenAI';\n\n// https://platform.openai.com/docs/quickstart?api-mode=responses\n// https://platform.openai.com/docs/quickstart?api-mode=chat\n// https://platform.openai.com/docs/api-reference/conversations\nconst INSTRUMENTED_METHODS = [\n 'responses.create',\n 'chat.completions.create',\n 'embeddings.create',\n // Conversations API - for conversation state management\n // https://platform.openai.com/docs/guides/conversation-state\n 'conversations.create',\n] ;\nconst RESPONSES_TOOL_CALL_EVENT_TYPES = [\n 'response.output_item.added',\n 'response.function_call_arguments.delta',\n 'response.function_call_arguments.done',\n 'response.output_item.done',\n] ;\nconst RESPONSE_EVENT_TYPES = [\n 'response.created',\n 'response.in_progress',\n 'response.failed',\n 'response.completed',\n 'response.incomplete',\n 'response.queued',\n 'response.output_text.delta',\n ...RESPONSES_TOOL_CALL_EVENT_TYPES,\n] ;\n\nexport { INSTRUMENTED_METHODS, OPENAI_INTEGRATION_NAME, RESPONSES_TOOL_CALL_EVENT_TYPES, RESPONSE_EVENT_TYPES };\n//# sourceMappingURL=constants.js.map\n", - "import { OPENAI_OPERATIONS, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE, GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE, GEN_AI_CONVERSATION_ID_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, OPENAI_RESPONSE_ID_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, OPENAI_RESPONSE_MODEL_ATTRIBUTE, OPENAI_RESPONSE_TIMESTAMP_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, OPENAI_USAGE_PROMPT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, OPENAI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { INSTRUMENTED_METHODS } from './constants.js';\n\n/**\n * Maps OpenAI method paths to OpenTelemetry semantic convention operation names\n * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/#llm-request-spans\n */\nfunction getOperationName(methodPath) {\n if (methodPath.includes('chat.completions')) {\n return OPENAI_OPERATIONS.CHAT;\n }\n if (methodPath.includes('responses')) {\n return OPENAI_OPERATIONS.CHAT;\n }\n if (methodPath.includes('embeddings')) {\n return OPENAI_OPERATIONS.EMBEDDINGS;\n }\n if (methodPath.includes('conversations')) {\n return OPENAI_OPERATIONS.CHAT;\n }\n return methodPath.split('.').pop() || 'unknown';\n}\n\n/**\n * Get the span operation for OpenAI methods\n * Following Sentry's convention: \"gen_ai.{operation_name}\"\n */\nfunction getSpanOperation(methodPath) {\n return `gen_ai.${getOperationName(methodPath)}`;\n}\n\n/**\n * Check if a method path should be instrumented\n */\nfunction shouldInstrument(methodPath) {\n return INSTRUMENTED_METHODS.includes(methodPath );\n}\n\n/**\n * Check if response is a Chat Completion object\n */\nfunction isChatCompletionResponse(response) {\n return (\n response !== null &&\n typeof response === 'object' &&\n 'object' in response &&\n (response ).object === 'chat.completion'\n );\n}\n\n/**\n * Check if response is a Responses API object\n */\nfunction isResponsesApiResponse(response) {\n return (\n response !== null &&\n typeof response === 'object' &&\n 'object' in response &&\n (response ).object === 'response'\n );\n}\n\n/**\n * Check if response is an Embeddings API object\n */\nfunction isEmbeddingsResponse(response) {\n if (response === null || typeof response !== 'object' || !('object' in response)) {\n return false;\n }\n const responseObject = response ;\n return (\n responseObject.object === 'list' &&\n typeof responseObject.model === 'string' &&\n responseObject.model.toLowerCase().includes('embedding')\n );\n}\n\n/**\n * Check if response is a Conversations API object\n * @see https://platform.openai.com/docs/api-reference/conversations\n */\nfunction isConversationResponse(response) {\n return (\n response !== null &&\n typeof response === 'object' &&\n 'object' in response &&\n (response ).object === 'conversation'\n );\n}\n\n/**\n * Check if streaming event is from the Responses API\n */\nfunction isResponsesApiStreamEvent(event) {\n return (\n event !== null &&\n typeof event === 'object' &&\n 'type' in event &&\n typeof (event ).type === 'string' &&\n ((event ).type ).startsWith('response.')\n );\n}\n\n/**\n * Check if streaming event is a chat completion chunk\n */\nfunction isChatCompletionChunk(event) {\n return (\n event !== null &&\n typeof event === 'object' &&\n 'object' in event &&\n (event ).object === 'chat.completion.chunk'\n );\n}\n\n/**\n * Add attributes for Chat Completion responses\n */\nfunction addChatCompletionAttributes(\n span,\n response,\n recordOutputs,\n) {\n setCommonResponseAttributes(span, response.id, response.model, response.created);\n if (response.usage) {\n setTokenUsageAttributes(\n span,\n response.usage.prompt_tokens,\n response.usage.completion_tokens,\n response.usage.total_tokens,\n );\n }\n if (Array.isArray(response.choices)) {\n const finishReasons = response.choices\n .map(choice => choice.finish_reason)\n .filter((reason) => reason !== null);\n if (finishReasons.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]: JSON.stringify(finishReasons),\n });\n }\n\n // Extract tool calls from all choices (only if recordOutputs is true)\n if (recordOutputs) {\n const toolCalls = response.choices\n .map(choice => choice.message?.tool_calls)\n .filter(calls => Array.isArray(calls) && calls.length > 0)\n .flat();\n\n if (toolCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(toolCalls),\n });\n }\n }\n }\n}\n\n/**\n * Add attributes for Responses API responses\n */\nfunction addResponsesApiAttributes(span, response, recordOutputs) {\n setCommonResponseAttributes(span, response.id, response.model, response.created_at);\n if (response.status) {\n span.setAttributes({\n [GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]: JSON.stringify([response.status]),\n });\n }\n if (response.usage) {\n setTokenUsageAttributes(\n span,\n response.usage.input_tokens,\n response.usage.output_tokens,\n response.usage.total_tokens,\n );\n }\n\n // Extract function calls from output (only if recordOutputs is true)\n if (recordOutputs) {\n const responseWithOutput = response ;\n if (Array.isArray(responseWithOutput.output) && responseWithOutput.output.length > 0) {\n // Filter for function_call type objects in the output array\n const functionCalls = responseWithOutput.output.filter(\n (item) =>\n // oxlint-disable-next-line typescript/prefer-optional-chain\n typeof item === 'object' && item !== null && (item ).type === 'function_call',\n );\n\n if (functionCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(functionCalls),\n });\n }\n }\n }\n}\n\n/**\n * Add attributes for Embeddings API responses\n */\nfunction addEmbeddingsAttributes(span, response) {\n span.setAttributes({\n [OPENAI_RESPONSE_MODEL_ATTRIBUTE]: response.model,\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: response.model,\n });\n\n if (response.usage) {\n setTokenUsageAttributes(span, response.usage.prompt_tokens, undefined, response.usage.total_tokens);\n }\n}\n\n/**\n * Add attributes for Conversations API responses\n * @see https://platform.openai.com/docs/api-reference/conversations\n */\nfunction addConversationAttributes(span, response) {\n const { id, created_at } = response;\n\n span.setAttributes({\n [OPENAI_RESPONSE_ID_ATTRIBUTE]: id,\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: id,\n // The conversation id is used to link messages across API calls\n [GEN_AI_CONVERSATION_ID_ATTRIBUTE]: id,\n });\n\n if (created_at) {\n span.setAttributes({\n [OPENAI_RESPONSE_TIMESTAMP_ATTRIBUTE]: new Date(created_at * 1000).toISOString(),\n });\n }\n}\n\n/**\n * Set token usage attributes\n * @param span - The span to add attributes to\n * @param promptTokens - The number of prompt tokens\n * @param completionTokens - The number of completion tokens\n * @param totalTokens - The number of total tokens\n */\nfunction setTokenUsageAttributes(\n span,\n promptTokens,\n completionTokens,\n totalTokens,\n) {\n if (promptTokens !== undefined) {\n span.setAttributes({\n [OPENAI_USAGE_PROMPT_TOKENS_ATTRIBUTE]: promptTokens,\n [GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE]: promptTokens,\n });\n }\n if (completionTokens !== undefined) {\n span.setAttributes({\n [OPENAI_USAGE_COMPLETION_TOKENS_ATTRIBUTE]: completionTokens,\n [GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: completionTokens,\n });\n }\n if (totalTokens !== undefined) {\n span.setAttributes({\n [GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: totalTokens,\n });\n }\n}\n\n/**\n * Set common response attributes\n * @param span - The span to add attributes to\n * @param id - The response id\n * @param model - The response model\n * @param timestamp - The response timestamp\n */\nfunction setCommonResponseAttributes(span, id, model, timestamp) {\n span.setAttributes({\n [OPENAI_RESPONSE_ID_ATTRIBUTE]: id,\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: id,\n });\n span.setAttributes({\n [OPENAI_RESPONSE_MODEL_ATTRIBUTE]: model,\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: model,\n });\n span.setAttributes({\n [OPENAI_RESPONSE_TIMESTAMP_ATTRIBUTE]: new Date(timestamp * 1000).toISOString(),\n });\n}\n\n/**\n * Extract conversation ID from request parameters\n * Supports both Conversations API and previous_response_id chaining\n * @see https://platform.openai.com/docs/guides/conversation-state\n */\nfunction extractConversationId(params) {\n // Conversations API: conversation parameter (e.g., \"conv_...\")\n if ('conversation' in params && typeof params.conversation === 'string') {\n return params.conversation;\n }\n // Responses chaining: previous_response_id links to parent response\n if ('previous_response_id' in params && typeof params.previous_response_id === 'string') {\n return params.previous_response_id;\n }\n return undefined;\n}\n\n/**\n * Extract request parameters including model settings and conversation context\n */\nfunction extractRequestParameters(params) {\n const attributes = {\n [GEN_AI_REQUEST_MODEL_ATTRIBUTE]: params.model ?? 'unknown',\n };\n\n if ('temperature' in params) attributes[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = params.temperature;\n if ('top_p' in params) attributes[GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = params.top_p;\n if ('frequency_penalty' in params) attributes[GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = params.frequency_penalty;\n if ('presence_penalty' in params) attributes[GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE] = params.presence_penalty;\n if ('stream' in params) attributes[GEN_AI_REQUEST_STREAM_ATTRIBUTE] = params.stream;\n if ('encoding_format' in params) attributes[GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE] = params.encoding_format;\n if ('dimensions' in params) attributes[GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE] = params.dimensions;\n\n // Capture conversation ID for linking messages across API calls\n const conversationId = extractConversationId(params);\n if (conversationId) {\n attributes[GEN_AI_CONVERSATION_ID_ATTRIBUTE] = conversationId;\n }\n\n return attributes;\n}\n\nexport { addChatCompletionAttributes, addConversationAttributes, addEmbeddingsAttributes, addResponsesApiAttributes, extractRequestParameters, getOperationName, getSpanOperation, isChatCompletionChunk, isChatCompletionResponse, isConversationResponse, isEmbeddingsResponse, isResponsesApiResponse, isResponsesApiStreamEvent, setCommonResponseAttributes, setTokenUsageAttributes, shouldInstrument };\n//# sourceMappingURL=utils.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { GEN_AI_RESPONSE_STREAMING_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { RESPONSE_EVENT_TYPES } from './constants.js';\nimport { isChatCompletionChunk, isResponsesApiStreamEvent, setCommonResponseAttributes, setTokenUsageAttributes } from './utils.js';\n\n/**\n * State object used to accumulate information from a stream of OpenAI events/chunks.\n */\n\n/**\n * Processes tool calls from a chat completion chunk delta.\n * Follows the pattern: accumulate by index, then convert to array at the end.\n *\n * @param toolCalls - Array of tool calls from the delta.\n * @param state - The current streaming state to update.\n *\n * @see https://platform.openai.com/docs/guides/function-calling#streaming\n */\nfunction processChatCompletionToolCalls(toolCalls, state) {\n for (const toolCall of toolCalls) {\n const index = toolCall.index;\n if (index === undefined || !toolCall.function) continue;\n\n // Initialize tool call if this is the first chunk for this index\n if (!(index in state.chatCompletionToolCalls)) {\n state.chatCompletionToolCalls[index] = {\n ...toolCall,\n function: {\n name: toolCall.function.name,\n arguments: toolCall.function.arguments || '',\n },\n };\n } else {\n // Accumulate function arguments from subsequent chunks\n const existingToolCall = state.chatCompletionToolCalls[index];\n if (toolCall.function.arguments && existingToolCall?.function) {\n existingToolCall.function.arguments += toolCall.function.arguments;\n }\n }\n }\n}\n\n/**\n * Processes a single OpenAI ChatCompletionChunk event, updating the streaming state.\n *\n * @param chunk - The ChatCompletionChunk event to process.\n * @param state - The current streaming state to update.\n * @param recordOutputs - Whether to record output text fragments.\n */\nfunction processChatCompletionChunk(chunk, state, recordOutputs) {\n state.responseId = chunk.id ?? state.responseId;\n state.responseModel = chunk.model ?? state.responseModel;\n state.responseTimestamp = chunk.created ?? state.responseTimestamp;\n\n if (chunk.usage) {\n // For stream responses, the input tokens remain constant across all events in the stream.\n // Output tokens, however, are only finalized in the last event.\n // Since we can't guarantee that the last event will include usage data or even be a typed event,\n // we update the output token values on every event that includes them.\n // This ensures that output token usage is always set, even if the final event lacks it.\n state.promptTokens = chunk.usage.prompt_tokens;\n state.completionTokens = chunk.usage.completion_tokens;\n state.totalTokens = chunk.usage.total_tokens;\n }\n\n for (const choice of chunk.choices ?? []) {\n if (recordOutputs) {\n if (choice.delta?.content) {\n state.responseTexts.push(choice.delta.content);\n }\n\n // Handle tool calls from delta\n if (choice.delta?.tool_calls) {\n processChatCompletionToolCalls(choice.delta.tool_calls, state);\n }\n }\n if (choice.finish_reason) {\n state.finishReasons.push(choice.finish_reason);\n }\n }\n}\n\n/**\n * Processes a single OpenAI Responses API streaming event, updating the streaming state and span.\n *\n * @param streamEvent - The event to process (may be an error or unknown object).\n * @param state - The current streaming state to update.\n * @param recordOutputs - Whether to record output text fragments.\n * @param span - The span to update with error status if needed.\n */\nfunction processResponsesApiEvent(\n streamEvent,\n state,\n recordOutputs,\n span,\n) {\n if (!(streamEvent && typeof streamEvent === 'object')) {\n state.eventTypes.push('unknown:non-object');\n return;\n }\n if (streamEvent instanceof Error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(streamEvent, {\n mechanism: {\n handled: false,\n type: 'auto.ai.openai.stream-response',\n },\n });\n return;\n }\n\n if (!('type' in streamEvent)) return;\n const event = streamEvent ;\n\n if (!RESPONSE_EVENT_TYPES.includes(event.type)) {\n state.eventTypes.push(event.type);\n return;\n }\n\n // Handle output text delta\n if (recordOutputs) {\n // Handle tool call events for Responses API\n if (event.type === 'response.output_item.done' && 'item' in event) {\n state.responsesApiToolCalls.push(event.item);\n }\n\n if (event.type === 'response.output_text.delta' && 'delta' in event && event.delta) {\n state.responseTexts.push(event.delta);\n return;\n }\n }\n\n if ('response' in event) {\n const { response } = event ;\n state.responseId = response.id ?? state.responseId;\n state.responseModel = response.model ?? state.responseModel;\n state.responseTimestamp = response.created_at ?? state.responseTimestamp;\n\n if (response.usage) {\n // For stream responses, the input tokens remain constant across all events in the stream.\n // Output tokens, however, are only finalized in the last event.\n // Since we can't guarantee that the last event will include usage data or even be a typed event,\n // we update the output token values on every event that includes them.\n // This ensures that output token usage is always set, even if the final event lacks it.\n state.promptTokens = response.usage.input_tokens;\n state.completionTokens = response.usage.output_tokens;\n state.totalTokens = response.usage.total_tokens;\n }\n\n if (response.status) {\n state.finishReasons.push(response.status);\n }\n\n if (recordOutputs && response.output_text) {\n state.responseTexts.push(response.output_text);\n }\n }\n}\n\n/**\n * Instruments a stream of OpenAI events, updating the provided span with relevant attributes and\n * optionally recording output text. This function yields each event from the input stream as it is processed.\n *\n * @template T - The type of events in the stream.\n * @param stream - The async iterable stream of events to instrument.\n * @param span - The span to add attributes to and to finish at the end of the stream.\n * @param recordOutputs - Whether to record output text fragments in the span.\n * @returns An async generator yielding each event from the input stream.\n */\nasync function* instrumentStream(\n stream,\n span,\n recordOutputs,\n) {\n const state = {\n eventTypes: [],\n responseTexts: [],\n finishReasons: [],\n responseId: '',\n responseModel: '',\n responseTimestamp: 0,\n promptTokens: undefined,\n completionTokens: undefined,\n totalTokens: undefined,\n chatCompletionToolCalls: {},\n responsesApiToolCalls: [],\n };\n\n try {\n for await (const event of stream) {\n if (isChatCompletionChunk(event)) {\n processChatCompletionChunk(event , state, recordOutputs);\n } else if (isResponsesApiStreamEvent(event)) {\n processResponsesApiEvent(event , state, recordOutputs, span);\n }\n yield event;\n }\n } finally {\n setCommonResponseAttributes(span, state.responseId, state.responseModel, state.responseTimestamp);\n setTokenUsageAttributes(span, state.promptTokens, state.completionTokens, state.totalTokens);\n\n span.setAttributes({\n [GEN_AI_RESPONSE_STREAMING_ATTRIBUTE]: true,\n });\n\n if (state.finishReasons.length) {\n span.setAttributes({\n [GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]: JSON.stringify(state.finishReasons),\n });\n }\n\n if (recordOutputs && state.responseTexts.length) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: state.responseTexts.join(''),\n });\n }\n\n // Set tool calls attribute if any were accumulated\n const chatCompletionToolCallsArray = Object.values(state.chatCompletionToolCalls);\n const allToolCalls = [...chatCompletionToolCallsArray, ...state.responsesApiToolCalls];\n\n if (allToolCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(allToolCalls),\n });\n }\n\n span.end();\n }\n}\n\nexport { instrumentStream };\n//# sourceMappingURL=streaming.js.map\n", - "import { DEBUG_BUILD } from '../../debug-build.js';\nimport { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { debug } from '../../utils/debug-logger.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpanManual, startSpan } from '../trace.js';\nimport { GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, OPENAI_OPERATIONS, GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions, wrapPromiseWithMethods, extractSystemInstructions, getTruncatedJsonString, buildMethodPath } from '../ai/utils.js';\nimport { instrumentStream } from './streaming.js';\nimport { shouldInstrument, getOperationName, getSpanOperation, extractRequestParameters, isChatCompletionResponse, addChatCompletionAttributes, isResponsesApiResponse, addResponsesApiAttributes, isEmbeddingsResponse, addEmbeddingsAttributes, isConversationResponse, addConversationAttributes } from './utils.js';\n\n/**\n * Extract available tools from request parameters\n */\nfunction extractAvailableTools(params) {\n const tools = Array.isArray(params.tools) ? params.tools : [];\n const hasWebSearchOptions = params.web_search_options && typeof params.web_search_options === 'object';\n const webSearchOptions = hasWebSearchOptions\n ? [{ type: 'web_search_options', ...(params.web_search_options ) }]\n : [];\n\n const availableTools = [...tools, ...webSearchOptions];\n if (availableTools.length === 0) {\n return undefined;\n }\n\n try {\n return JSON.stringify(availableTools);\n } catch (error) {\n DEBUG_BUILD && debug.error('Failed to serialize OpenAI tools:', error);\n return undefined;\n }\n}\n\n/**\n * Extract request attributes from method arguments\n */\nfunction extractRequestAttributes(args, methodPath) {\n const attributes = {\n [GEN_AI_SYSTEM_ATTRIBUTE]: 'openai',\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: getOperationName(methodPath),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.openai',\n };\n\n if (args.length > 0 && typeof args[0] === 'object' && args[0] !== null) {\n const params = args[0] ;\n\n const availableTools = extractAvailableTools(params);\n if (availableTools) {\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = availableTools;\n }\n\n Object.assign(attributes, extractRequestParameters(params));\n } else {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = 'unknown';\n }\n\n return attributes;\n}\n\n/**\n * Add response attributes to spans\n * This supports Chat Completion, Responses API, Embeddings, and Conversations API responses\n */\nfunction addResponseAttributes(span, result, recordOutputs) {\n if (!result || typeof result !== 'object') return;\n\n const response = result ;\n\n if (isChatCompletionResponse(response)) {\n addChatCompletionAttributes(span, response, recordOutputs);\n if (recordOutputs && response.choices?.length) {\n const responseTexts = response.choices.map(choice => choice.message?.content || '');\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: JSON.stringify(responseTexts) });\n }\n } else if (isResponsesApiResponse(response)) {\n addResponsesApiAttributes(span, response, recordOutputs);\n if (recordOutputs && response.output_text) {\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: response.output_text });\n }\n } else if (isEmbeddingsResponse(response)) {\n addEmbeddingsAttributes(span, response);\n } else if (isConversationResponse(response)) {\n addConversationAttributes(span, response);\n }\n}\n\n// Extract and record AI request inputs, if present. This is intentionally separate from response attributes.\nfunction addRequestAttributes(span, params, operationName) {\n // Store embeddings input on a separate attribute and do not truncate it\n if (operationName === OPENAI_OPERATIONS.EMBEDDINGS && 'input' in params) {\n const input = params.input;\n\n // No input provided\n if (input == null) {\n return;\n }\n\n // Empty input string\n if (typeof input === 'string' && input.length === 0) {\n return;\n }\n\n // Empty array input\n if (Array.isArray(input) && input.length === 0) {\n return;\n }\n\n // Store strings as-is, arrays/objects as JSON\n span.setAttribute(GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, typeof input === 'string' ? input : JSON.stringify(input));\n return;\n }\n\n const src = 'input' in params ? params.input : 'messages' in params ? params.messages : undefined;\n\n if (!src) {\n return;\n }\n\n if (Array.isArray(src) && src.length === 0) {\n return;\n }\n\n const { systemInstructions, filteredMessages } = extractSystemInstructions(src);\n\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const truncatedInput = getTruncatedJsonString(filteredMessages);\n span.setAttribute(GEN_AI_INPUT_MESSAGES_ATTRIBUTE, truncatedInput);\n\n if (Array.isArray(filteredMessages)) {\n span.setAttribute(GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, filteredMessages.length);\n } else {\n span.setAttribute(GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, 1);\n }\n}\n\n/**\n * Instrument a method with Sentry spans\n * Following Sentry AI Agents Manual Instrumentation conventions\n * @see https://docs.sentry.io/platforms/javascript/guides/node/tracing/instrumentation/ai-agents-module/#manual-instrumentation\n */\nfunction instrumentMethod(\n originalMethod,\n methodPath,\n context,\n options,\n) {\n return function instrumentedMethod(...args) {\n const requestAttributes = extractRequestAttributes(args, methodPath);\n const model = (requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ) || 'unknown';\n const operationName = getOperationName(methodPath);\n\n const params = args[0] ;\n const isStreamRequested = params && typeof params === 'object' && params.stream === true;\n\n const spanConfig = {\n name: `${operationName} ${model}`,\n op: getSpanOperation(methodPath),\n attributes: requestAttributes ,\n };\n\n if (isStreamRequested) {\n let originalResult;\n\n const instrumentedPromise = startSpanManual(spanConfig, (span) => {\n originalResult = originalMethod.apply(context, args);\n\n if (options.recordInputs && params) {\n addRequestAttributes(span, params, operationName);\n }\n\n // Return async processing\n return (async () => {\n try {\n const result = await originalResult;\n return instrumentStream(\n result ,\n span,\n options.recordOutputs ?? false,\n ) ;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.openai.stream',\n data: { function: methodPath },\n },\n });\n span.end();\n throw error;\n }\n })();\n });\n\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, 'auto.ai.openai');\n }\n\n // Non-streaming\n let originalResult;\n\n const instrumentedPromise = startSpan(spanConfig, (span) => {\n // Call synchronously to capture the promise\n originalResult = originalMethod.apply(context, args);\n\n if (options.recordInputs && params) {\n addRequestAttributes(span, params, operationName);\n }\n\n return originalResult.then(\n result => {\n addResponseAttributes(span, result, options.recordOutputs);\n return result;\n },\n error => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.openai',\n data: { function: methodPath },\n },\n });\n throw error;\n },\n );\n });\n\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, 'auto.ai.openai');\n };\n}\n\n/**\n * Create a deep proxy for OpenAI client instrumentation\n */\nfunction createDeepProxy(target, currentPath = '', options) {\n return new Proxy(target, {\n get(obj, prop) {\n const value = (obj )[prop];\n const methodPath = buildMethodPath(currentPath, String(prop));\n\n if (typeof value === 'function' && shouldInstrument(methodPath)) {\n return instrumentMethod(value , methodPath, obj, options);\n }\n\n if (typeof value === 'function') {\n // Bind non-instrumented functions to preserve the original `this` context,\n // which is required for accessing private class fields (e.g. #baseURL) in OpenAI SDK v5.\n return value.bind(obj);\n }\n\n if (value && typeof value === 'object') {\n return createDeepProxy(value, methodPath, options);\n }\n\n return value;\n },\n }) ;\n}\n\n/**\n * Instrument an OpenAI client with Sentry tracing\n * Can be used across Node.js, Cloudflare Workers, and Vercel Edge\n */\nfunction instrumentOpenAiClient(client, options) {\n return createDeepProxy(client, '', resolveAIRecordingOptions(options));\n}\n\nexport { instrumentOpenAiClient };\n//# sourceMappingURL=index.js.map\n", - "const ANTHROPIC_AI_INTEGRATION_NAME = 'Anthropic_AI';\n\n// https://docs.anthropic.com/en/api/messages\n// https://docs.anthropic.com/en/api/models-list\nconst ANTHROPIC_AI_INSTRUMENTED_METHODS = [\n 'messages.create',\n 'messages.stream',\n 'messages.countTokens',\n 'models.get',\n 'completions.create',\n 'models.retrieve',\n 'beta.messages.create',\n] ;\n\nexport { ANTHROPIC_AI_INSTRUMENTED_METHODS, ANTHROPIC_AI_INTEGRATION_NAME };\n//# sourceMappingURL=constants.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { extractSystemInstructions, getTruncatedJsonString } from '../ai/utils.js';\nimport { ANTHROPIC_AI_INSTRUMENTED_METHODS } from './constants.js';\n\n/**\n * Check if a method path should be instrumented\n */\nfunction shouldInstrument(methodPath) {\n return ANTHROPIC_AI_INSTRUMENTED_METHODS.includes(methodPath );\n}\n\n/**\n * Set the messages and messages original length attributes.\n * Extracts system instructions before truncation.\n */\nfunction setMessagesAttribute(span, messages) {\n if (Array.isArray(messages) && messages.length === 0) {\n return;\n }\n\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n\n if (systemInstructions) {\n span.setAttributes({\n [GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE]: systemInstructions,\n });\n }\n\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 1;\n span.setAttributes({\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: getTruncatedJsonString(filteredMessages),\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n });\n}\n\nconst ANTHROPIC_ERROR_TYPE_TO_SPAN_STATUS = {\n invalid_request_error: 'invalid_argument',\n authentication_error: 'unauthenticated',\n permission_error: 'permission_denied',\n not_found_error: 'not_found',\n request_too_large: 'failed_precondition',\n rate_limit_error: 'resource_exhausted',\n api_error: 'internal_error',\n overloaded_error: 'unavailable',\n};\n\n/**\n * Map an Anthropic API error type to a SpanStatusType value.\n * @see https://docs.anthropic.com/en/api/errors#error-shapes\n */\nfunction mapAnthropicErrorToStatusMessage(errorType) {\n if (!errorType) {\n return 'internal_error';\n }\n return ANTHROPIC_ERROR_TYPE_TO_SPAN_STATUS[errorType] || 'internal_error';\n}\n\n/**\n * Capture error information from the response\n * @see https://docs.anthropic.com/en/api/errors#error-shapes\n */\nfunction handleResponseError(span, response) {\n if (response.error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: mapAnthropicErrorToStatusMessage(response.error.type) });\n\n captureException(response.error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.anthropic.anthropic_error',\n },\n });\n }\n}\n\n/**\n * Include the system prompt in the messages list, if available\n */\nfunction messagesFromParams(params) {\n const { system, messages, input } = params;\n\n const systemMessages = typeof system === 'string' ? [{ role: 'system', content: params.system }] : [];\n\n const inputParamMessages = Array.isArray(input) ? input : input != null ? [input] : undefined;\n\n const messagesParamMessages = Array.isArray(messages) ? messages : messages != null ? [messages] : [];\n\n const userMessages = inputParamMessages ?? messagesParamMessages;\n\n return [...systemMessages, ...userMessages];\n}\n\nexport { handleResponseError, mapAnthropicErrorToStatusMessage, messagesFromParams, setMessagesAttribute, shouldInstrument };\n//# sourceMappingURL=utils.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { GEN_AI_RESPONSE_STREAMING_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { setTokenUsageAttributes } from '../ai/utils.js';\nimport { mapAnthropicErrorToStatusMessage } from './utils.js';\n\n/**\n * State object used to accumulate information from a stream of Anthropic AI events.\n */\n\n/**\n * Checks if an event is an error event\n * @param event - The event to process\n * @param state - The state of the streaming process\n * @param recordOutputs - Whether to record outputs\n * @param span - The span to update\n * @returns Whether an error occurred\n */\n\nfunction isErrorEvent(event, span) {\n if ('type' in event && typeof event.type === 'string') {\n // If the event is an error, set the span status and capture the error\n // These error events are not rejected by the API by default, but are sent as metadata of the response\n if (event.type === 'error') {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: mapAnthropicErrorToStatusMessage(event.error?.type) });\n captureException(event.error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.anthropic.anthropic_error',\n },\n });\n return true;\n }\n }\n return false;\n}\n\n/**\n * Processes the message metadata of an event\n * @param event - The event to process\n * @param state - The state of the streaming process\n */\n\nfunction handleMessageMetadata(event, state) {\n // The token counts shown in the usage field of the message_delta event are cumulative.\n // @see https://docs.anthropic.com/en/docs/build-with-claude/streaming#event-types\n if (event.type === 'message_delta' && event.usage) {\n if ('output_tokens' in event.usage && typeof event.usage.output_tokens === 'number') {\n state.completionTokens = event.usage.output_tokens;\n }\n }\n\n if (event.message) {\n const message = event.message;\n\n if (message.id) state.responseId = message.id;\n if (message.model) state.responseModel = message.model;\n if (message.stop_reason) state.finishReasons.push(message.stop_reason);\n\n if (message.usage) {\n if (typeof message.usage.input_tokens === 'number') state.promptTokens = message.usage.input_tokens;\n if (typeof message.usage.cache_creation_input_tokens === 'number')\n state.cacheCreationInputTokens = message.usage.cache_creation_input_tokens;\n if (typeof message.usage.cache_read_input_tokens === 'number')\n state.cacheReadInputTokens = message.usage.cache_read_input_tokens;\n }\n }\n}\n\n/**\n * Handle start of a content block (e.g., tool_use)\n */\nfunction handleContentBlockStart(event, state) {\n if (event.type !== 'content_block_start' || typeof event.index !== 'number' || !event.content_block) return;\n if (event.content_block.type === 'tool_use' || event.content_block.type === 'server_tool_use') {\n state.activeToolBlocks[event.index] = {\n id: event.content_block.id,\n name: event.content_block.name,\n inputJsonParts: [],\n };\n }\n}\n\n/**\n * Handle deltas of a content block, including input_json_delta for tool_use\n */\nfunction handleContentBlockDelta(\n event,\n state,\n recordOutputs,\n) {\n if (event.type !== 'content_block_delta' || !event.delta) return;\n\n // Accumulate tool_use input JSON deltas only when we have an index and an active tool block\n if (\n typeof event.index === 'number' &&\n 'partial_json' in event.delta &&\n typeof event.delta.partial_json === 'string'\n ) {\n const active = state.activeToolBlocks[event.index];\n if (active) {\n active.inputJsonParts.push(event.delta.partial_json);\n }\n }\n\n // Accumulate streamed response text regardless of index\n if (recordOutputs && typeof event.delta.text === 'string') {\n state.responseTexts.push(event.delta.text);\n }\n}\n\n/**\n * Handle stop of a content block; finalize tool_use entries\n */\nfunction handleContentBlockStop(event, state) {\n if (event.type !== 'content_block_stop' || typeof event.index !== 'number') return;\n\n const active = state.activeToolBlocks[event.index];\n if (!active) return;\n\n const raw = active.inputJsonParts.join('');\n let parsedInput;\n\n try {\n parsedInput = raw ? JSON.parse(raw) : {};\n } catch {\n parsedInput = { __unparsed: raw };\n }\n\n state.toolCalls.push({\n type: 'tool_use',\n id: active.id,\n name: active.name,\n input: parsedInput,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete state.activeToolBlocks[event.index];\n}\n\n/**\n * Processes an event\n * @param event - The event to process\n * @param state - The state of the streaming process\n * @param recordOutputs - Whether to record outputs\n * @param span - The span to update\n */\nfunction processEvent(\n event,\n state,\n recordOutputs,\n span,\n) {\n if (!(event && typeof event === 'object')) {\n return;\n }\n\n const isError = isErrorEvent(event, span);\n if (isError) return;\n\n handleMessageMetadata(event, state);\n\n // Tool call events are sent via 3 separate events:\n // - content_block_start (start of the tool call)\n // - content_block_delta (delta aka input of the tool call)\n // - content_block_stop (end of the tool call)\n // We need to handle them all to capture the full tool call.\n handleContentBlockStart(event, state);\n handleContentBlockDelta(event, state, recordOutputs);\n handleContentBlockStop(event, state);\n}\n\n/**\n * Finalizes span attributes when stream processing completes\n */\nfunction finalizeStreamSpan(state, span, recordOutputs) {\n if (!span.isRecording()) {\n return;\n }\n\n // Set common response attributes if available\n if (state.responseId) {\n span.setAttributes({\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: state.responseId,\n });\n }\n if (state.responseModel) {\n span.setAttributes({\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: state.responseModel,\n });\n }\n\n setTokenUsageAttributes(\n span,\n state.promptTokens,\n state.completionTokens,\n state.cacheCreationInputTokens,\n state.cacheReadInputTokens,\n );\n\n span.setAttributes({\n [GEN_AI_RESPONSE_STREAMING_ATTRIBUTE]: true,\n });\n\n if (state.finishReasons.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]: JSON.stringify(state.finishReasons),\n });\n }\n\n if (recordOutputs && state.responseTexts.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: state.responseTexts.join(''),\n });\n }\n\n // Set tool calls if any were captured\n if (recordOutputs && state.toolCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(state.toolCalls),\n });\n }\n\n span.end();\n}\n\n/**\n * Instruments an async iterable stream of Anthropic events, updates the span with\n * streaming attributes and (optionally) the aggregated output text, and yields\n * each event from the input stream unchanged.\n */\nasync function* instrumentAsyncIterableStream(\n stream,\n span,\n recordOutputs,\n) {\n const state = {\n responseTexts: [],\n finishReasons: [],\n responseId: '',\n responseModel: '',\n promptTokens: undefined,\n completionTokens: undefined,\n cacheCreationInputTokens: undefined,\n cacheReadInputTokens: undefined,\n toolCalls: [],\n activeToolBlocks: {},\n };\n\n try {\n for await (const event of stream) {\n processEvent(event, state, recordOutputs, span);\n yield event;\n }\n } finally {\n // Set common response attributes if available\n if (state.responseId) {\n span.setAttributes({\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: state.responseId,\n });\n }\n if (state.responseModel) {\n span.setAttributes({\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: state.responseModel,\n });\n }\n\n setTokenUsageAttributes(\n span,\n state.promptTokens,\n state.completionTokens,\n state.cacheCreationInputTokens,\n state.cacheReadInputTokens,\n );\n\n span.setAttributes({\n [GEN_AI_RESPONSE_STREAMING_ATTRIBUTE]: true,\n });\n\n if (state.finishReasons.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]: JSON.stringify(state.finishReasons),\n });\n }\n\n if (recordOutputs && state.responseTexts.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: state.responseTexts.join(''),\n });\n }\n\n // Set tool calls if any were captured\n if (recordOutputs && state.toolCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(state.toolCalls),\n });\n }\n\n span.end();\n }\n}\n\n/**\n * Instruments a MessageStream by registering event handlers and preserving the original stream API.\n */\nfunction instrumentMessageStream(\n stream,\n span,\n recordOutputs,\n) {\n const state = {\n responseTexts: [],\n finishReasons: [],\n responseId: '',\n responseModel: '',\n promptTokens: undefined,\n completionTokens: undefined,\n cacheCreationInputTokens: undefined,\n cacheReadInputTokens: undefined,\n toolCalls: [],\n activeToolBlocks: {},\n };\n\n stream.on('streamEvent', (event) => {\n processEvent(event , state, recordOutputs, span);\n });\n\n // The event fired when a message is done being streamed by the API. Corresponds to the message_stop SSE event.\n // @see https://github.com/anthropics/anthropic-sdk-typescript/blob/d3be31f5a4e6ebb4c0a2f65dbb8f381ae73a9166/helpers.md?plain=1#L42-L44\n stream.on('message', () => {\n finalizeStreamSpan(state, span, recordOutputs);\n });\n\n stream.on('error', (error) => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.anthropic.stream_error',\n },\n });\n\n if (span.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n span.end();\n }\n });\n\n return stream;\n}\n\nexport { instrumentAsyncIterableStream, instrumentMessageStream };\n//# sourceMappingURL=streaming.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpan, startSpanManual } from '../trace.js';\nimport { GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_REQUEST_TOP_K_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_PROMPT_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, ANTHROPIC_AI_RESPONSE_TIMESTAMP_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions, getFinalOperationName, getSpanOperation, wrapPromiseWithMethods, setTokenUsageAttributes, buildMethodPath } from '../ai/utils.js';\nimport { instrumentAsyncIterableStream, instrumentMessageStream } from './streaming.js';\nimport { shouldInstrument, messagesFromParams, setMessagesAttribute, handleResponseError } from './utils.js';\n\n/**\n * Extract request attributes from method arguments\n */\nfunction extractRequestAttributes(args, methodPath) {\n const attributes = {\n [GEN_AI_SYSTEM_ATTRIBUTE]: 'anthropic',\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: getFinalOperationName(methodPath),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.anthropic',\n };\n\n if (args.length > 0 && typeof args[0] === 'object' && args[0] !== null) {\n const params = args[0] ;\n if (params.tools && Array.isArray(params.tools)) {\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = JSON.stringify(params.tools);\n }\n\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = params.model ?? 'unknown';\n if ('temperature' in params) attributes[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = params.temperature;\n if ('top_p' in params) attributes[GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = params.top_p;\n if ('stream' in params) attributes[GEN_AI_REQUEST_STREAM_ATTRIBUTE] = params.stream;\n if ('top_k' in params) attributes[GEN_AI_REQUEST_TOP_K_ATTRIBUTE] = params.top_k;\n if ('frequency_penalty' in params)\n attributes[GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = params.frequency_penalty;\n if ('max_tokens' in params) attributes[GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE] = params.max_tokens;\n } else {\n if (methodPath === 'models.retrieve' || methodPath === 'models.get') {\n // models.retrieve(model-id) and models.get(model-id)\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = args[0];\n } else {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = 'unknown';\n }\n }\n\n return attributes;\n}\n\n/**\n * Add private request attributes to spans.\n * This is only recorded if recordInputs is true.\n */\nfunction addPrivateRequestAttributes(span, params) {\n const messages = messagesFromParams(params);\n setMessagesAttribute(span, messages);\n\n if ('prompt' in params) {\n span.setAttributes({ [GEN_AI_PROMPT_ATTRIBUTE]: JSON.stringify(params.prompt) });\n }\n}\n\n/**\n * Add content attributes when recordOutputs is enabled\n */\nfunction addContentAttributes(span, response) {\n // Messages.create\n if ('content' in response) {\n if (Array.isArray(response.content)) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: response.content\n .map((item) => item.text)\n .filter(text => !!text)\n .join(''),\n });\n\n const toolCalls = [];\n\n for (const item of response.content) {\n if (item.type === 'tool_use' || item.type === 'server_tool_use') {\n toolCalls.push(item);\n }\n }\n if (toolCalls.length > 0) {\n span.setAttributes({ [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(toolCalls) });\n }\n }\n }\n // Completions.create\n if ('completion' in response) {\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: response.completion });\n }\n // Models.countTokens\n if ('input_tokens' in response) {\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: JSON.stringify(response.input_tokens) });\n }\n}\n\n/**\n * Add basic metadata attributes from the response\n */\nfunction addMetadataAttributes(span, response) {\n if ('id' in response && 'model' in response) {\n span.setAttributes({\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: response.id,\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: response.model,\n });\n\n if ('created' in response && typeof response.created === 'number') {\n span.setAttributes({\n [ANTHROPIC_AI_RESPONSE_TIMESTAMP_ATTRIBUTE]: new Date(response.created * 1000).toISOString(),\n });\n }\n if ('created_at' in response && typeof response.created_at === 'number') {\n span.setAttributes({\n [ANTHROPIC_AI_RESPONSE_TIMESTAMP_ATTRIBUTE]: new Date(response.created_at * 1000).toISOString(),\n });\n }\n\n if ('usage' in response && response.usage) {\n setTokenUsageAttributes(\n span,\n response.usage.input_tokens,\n response.usage.output_tokens,\n response.usage.cache_creation_input_tokens,\n response.usage.cache_read_input_tokens,\n );\n }\n }\n}\n\n/**\n * Add response attributes to spans\n */\nfunction addResponseAttributes(span, response, recordOutputs) {\n if (!response || typeof response !== 'object') return;\n\n // capture error, do not add attributes if error (they shouldn't exist)\n if ('type' in response && response.type === 'error') {\n handleResponseError(span, response);\n return;\n }\n\n // Private response attributes that are only recorded if recordOutputs is true.\n if (recordOutputs) {\n addContentAttributes(span, response);\n }\n\n // Add basic metadata attributes\n addMetadataAttributes(span, response);\n}\n\n/**\n * Handle common error catching and reporting for streaming requests\n */\nfunction handleStreamingError(error, span, methodPath) {\n captureException(error, {\n mechanism: { handled: false, type: 'auto.ai.anthropic', data: { function: methodPath } },\n });\n\n if (span.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n span.end();\n }\n throw error;\n}\n\n/**\n * Handle streaming cases with common logic\n */\nfunction handleStreamingRequest(\n originalMethod,\n target,\n context,\n args,\n requestAttributes,\n operationName,\n methodPath,\n params,\n options,\n isStreamRequested,\n isStreamingMethod,\n) {\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ?? 'unknown';\n const spanConfig = {\n name: `${operationName} ${model}`,\n op: getSpanOperation(methodPath),\n attributes: requestAttributes ,\n };\n\n // messages.stream() always returns a sync MessageStream, even with stream: true param\n if (isStreamRequested && !isStreamingMethod) {\n let originalResult;\n\n const instrumentedPromise = startSpanManual(spanConfig, (span) => {\n originalResult = originalMethod.apply(context, args) ;\n\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params);\n }\n\n return (async () => {\n try {\n const result = await originalResult;\n return instrumentAsyncIterableStream(\n result ,\n span,\n options.recordOutputs ?? false,\n ) ;\n } catch (error) {\n return handleStreamingError(error, span, methodPath);\n }\n })();\n });\n\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, 'auto.ai.anthropic');\n } else {\n return startSpanManual(spanConfig, span => {\n try {\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params);\n }\n const messageStream = target.apply(context, args);\n return instrumentMessageStream(messageStream, span, options.recordOutputs ?? false);\n } catch (error) {\n return handleStreamingError(error, span, methodPath);\n }\n });\n }\n}\n\n/**\n * Instrument a method with Sentry spans\n * Following Sentry AI Agents Manual Instrumentation conventions\n * @see https://docs.sentry.io/platforms/javascript/guides/node/tracing/instrumentation/ai-agents-module/#manual-instrumentation\n */\nfunction instrumentMethod(\n originalMethod,\n methodPath,\n context,\n options,\n) {\n return new Proxy(originalMethod, {\n apply(target, thisArg, args) {\n const requestAttributes = extractRequestAttributes(args, methodPath);\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ?? 'unknown';\n const operationName = getFinalOperationName(methodPath);\n\n const params = typeof args[0] === 'object' ? (args[0] ) : undefined;\n const isStreamRequested = Boolean(params?.stream);\n const isStreamingMethod = methodPath === 'messages.stream';\n\n if (isStreamRequested || isStreamingMethod) {\n return handleStreamingRequest(\n originalMethod,\n target,\n context,\n args,\n requestAttributes,\n operationName,\n methodPath,\n params,\n options,\n isStreamRequested,\n isStreamingMethod,\n );\n }\n\n let originalResult;\n\n const instrumentedPromise = startSpan(\n {\n name: `${operationName} ${model}`,\n op: getSpanOperation(methodPath),\n attributes: requestAttributes ,\n },\n span => {\n originalResult = target.apply(context, args) ;\n\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params);\n }\n\n return originalResult.then(\n result => {\n addResponseAttributes(span, result , options.recordOutputs);\n return result;\n },\n error => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.anthropic',\n data: {\n function: methodPath,\n },\n },\n });\n throw error;\n },\n );\n },\n );\n\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, 'auto.ai.anthropic');\n },\n }) ;\n}\n\n/**\n * Create a deep proxy for Anthropic AI client instrumentation\n */\nfunction createDeepProxy(target, currentPath = '', options) {\n return new Proxy(target, {\n get(obj, prop) {\n const value = (obj )[prop];\n const methodPath = buildMethodPath(currentPath, String(prop));\n\n if (typeof value === 'function' && shouldInstrument(methodPath)) {\n return instrumentMethod(value , methodPath, obj, options);\n }\n\n if (typeof value === 'function') {\n // Bind non-instrumented functions to preserve the original `this` context,\n return value.bind(obj);\n }\n\n if (value && typeof value === 'object') {\n return createDeepProxy(value, methodPath, options);\n }\n\n return value;\n },\n }) ;\n}\n\n/**\n * Instrument an Anthropic AI client with Sentry tracing\n * Can be used across Node.js, Cloudflare Workers, and Vercel Edge\n *\n * @template T - The type of the client that extends object\n * @param client - The Anthropic AI client to instrument\n * @param options - Optional configuration for recording inputs and outputs\n * @returns The instrumented client with the same type as the input\n */\nfunction instrumentAnthropicAiClient(anthropicAiClient, options) {\n return createDeepProxy(anthropicAiClient, '', resolveAIRecordingOptions(options));\n}\n\nexport { instrumentAnthropicAiClient };\n//# sourceMappingURL=index.js.map\n", - "const GOOGLE_GENAI_INTEGRATION_NAME = 'Google_GenAI';\n\n// https://ai.google.dev/api/rest/v1/models/generateContent\n// https://ai.google.dev/api/rest/v1/chats/sendMessage\n// https://googleapis.github.io/js-genai/release_docs/classes/models.Models.html#generatecontentstream\n// https://googleapis.github.io/js-genai/release_docs/classes/chats.Chat.html#sendmessagestream\nconst GOOGLE_GENAI_INSTRUMENTED_METHODS = [\n 'models.generateContent',\n 'models.generateContentStream',\n 'chats.create',\n 'sendMessage',\n 'sendMessageStream',\n] ;\n\n// Constants for internal use\nconst GOOGLE_GENAI_SYSTEM_NAME = 'google_genai';\nconst CHATS_CREATE_METHOD = 'chats.create';\nconst CHAT_PATH = 'chat';\n\nexport { CHATS_CREATE_METHOD, CHAT_PATH, GOOGLE_GENAI_INSTRUMENTED_METHODS, GOOGLE_GENAI_INTEGRATION_NAME, GOOGLE_GENAI_SYSTEM_NAME };\n//# sourceMappingURL=constants.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { GEN_AI_RESPONSE_STREAMING_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\n\n/**\n * State object used to accumulate information from a stream of Google GenAI events.\n */\n\n/**\n * Checks if a response chunk contains an error\n * @param chunk - The response chunk to check\n * @param span - The span to update if error is found\n * @returns Whether an error occurred\n */\nfunction isErrorChunk(chunk, span) {\n const feedback = chunk?.promptFeedback;\n if (feedback?.blockReason) {\n const message = feedback.blockReasonMessage ?? feedback.blockReason;\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(`Content blocked: ${message}`, {\n mechanism: { handled: false, type: 'auto.ai.google_genai' },\n });\n return true;\n }\n return false;\n}\n\n/**\n * Processes response metadata from a chunk\n * @param chunk - The response chunk to process\n * @param state - The state of the streaming process\n */\nfunction handleResponseMetadata(chunk, state) {\n if (typeof chunk.responseId === 'string') state.responseId = chunk.responseId;\n if (typeof chunk.modelVersion === 'string') state.responseModel = chunk.modelVersion;\n\n const usage = chunk.usageMetadata;\n if (usage) {\n if (typeof usage.promptTokenCount === 'number') state.promptTokens = usage.promptTokenCount;\n if (typeof usage.candidatesTokenCount === 'number') state.completionTokens = usage.candidatesTokenCount;\n if (typeof usage.totalTokenCount === 'number') state.totalTokens = usage.totalTokenCount;\n }\n}\n\n/**\n * Processes candidate content from a response chunk\n * @param chunk - The response chunk to process\n * @param state - The state of the streaming process\n * @param recordOutputs - Whether to record outputs\n */\nfunction handleCandidateContent(chunk, state, recordOutputs) {\n if (Array.isArray(chunk.functionCalls)) {\n state.toolCalls.push(...chunk.functionCalls);\n }\n\n for (const candidate of chunk.candidates ?? []) {\n if (candidate?.finishReason && !state.finishReasons.includes(candidate.finishReason)) {\n state.finishReasons.push(candidate.finishReason);\n }\n\n for (const part of candidate?.content?.parts ?? []) {\n if (recordOutputs && part.text) state.responseTexts.push(part.text);\n if (part.functionCall) {\n state.toolCalls.push({\n type: 'function',\n id: part.functionCall.id,\n name: part.functionCall.name,\n arguments: part.functionCall.args,\n });\n }\n }\n }\n}\n\n/**\n * Processes a single chunk from the Google GenAI stream\n * @param chunk - The chunk to process\n * @param state - The state of the streaming process\n * @param recordOutputs - Whether to record outputs\n * @param span - The span to update\n */\nfunction processChunk(chunk, state, recordOutputs, span) {\n if (!chunk || isErrorChunk(chunk, span)) return;\n handleResponseMetadata(chunk, state);\n handleCandidateContent(chunk, state, recordOutputs);\n}\n\n/**\n * Instruments an async iterable stream of Google GenAI response chunks, updates the span with\n * streaming attributes and (optionally) the aggregated output text, and yields\n * each chunk from the input stream unchanged.\n */\nasync function* instrumentStream(\n stream,\n span,\n recordOutputs,\n) {\n const state = {\n responseTexts: [],\n finishReasons: [],\n toolCalls: [],\n };\n\n try {\n for await (const chunk of stream) {\n processChunk(chunk, state, recordOutputs, span);\n yield chunk;\n }\n } finally {\n const attrs = {\n [GEN_AI_RESPONSE_STREAMING_ATTRIBUTE]: true,\n };\n\n if (state.responseId) attrs[GEN_AI_RESPONSE_ID_ATTRIBUTE] = state.responseId;\n if (state.responseModel) attrs[GEN_AI_RESPONSE_MODEL_ATTRIBUTE] = state.responseModel;\n if (state.promptTokens !== undefined) attrs[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] = state.promptTokens;\n if (state.completionTokens !== undefined) attrs[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] = state.completionTokens;\n if (state.totalTokens !== undefined) attrs[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE] = state.totalTokens;\n\n if (state.finishReasons.length) {\n attrs[GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE] = JSON.stringify(state.finishReasons);\n }\n if (recordOutputs && state.responseTexts.length) {\n attrs[GEN_AI_RESPONSE_TEXT_ATTRIBUTE] = state.responseTexts.join('');\n }\n if (recordOutputs && state.toolCalls.length) {\n attrs[GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE] = JSON.stringify(state.toolCalls);\n }\n\n span.setAttributes(attrs);\n span.end();\n }\n}\n\nexport { instrumentStream };\n//# sourceMappingURL=streaming.js.map\n", - "import { GOOGLE_GENAI_INSTRUMENTED_METHODS } from './constants.js';\n\n/**\n * Check if a method path should be instrumented\n */\nfunction shouldInstrument(methodPath) {\n // Check for exact matches first (like 'models.generateContent')\n if (GOOGLE_GENAI_INSTRUMENTED_METHODS.includes(methodPath )) {\n return true;\n }\n\n // Check for method name matches (like 'sendMessage' from chat instances)\n const methodName = methodPath.split('.').pop();\n return GOOGLE_GENAI_INSTRUMENTED_METHODS.includes(methodName );\n}\n\n/**\n * Check if a method is a streaming method\n */\nfunction isStreamingMethod(methodPath) {\n return methodPath.includes('Stream');\n}\n\n// Copied from https://googleapis.github.io/js-genai/release_docs/index.html\n\n/**\n *\n */\nfunction contentUnionToMessages(content, role = 'user') {\n if (typeof content === 'string') {\n return [{ role, content }];\n }\n if (Array.isArray(content)) {\n return content.flatMap(content => contentUnionToMessages(content, role));\n }\n if (typeof content !== 'object' || !content) return [];\n if ('role' in content && typeof content.role === 'string') {\n return [content ];\n }\n if ('parts' in content) {\n return [{ ...content, role } ];\n }\n return [{ role, content }];\n}\n\nexport { contentUnionToMessages, isStreamingMethod, shouldInstrument };\n//# sourceMappingURL=utils.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpanManual, startSpan } from '../trace.js';\nimport { handleCallbackErrors } from '../../utils/handleCallbackErrors.js';\nimport { GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_TOP_K_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { truncateGenAiMessages } from '../ai/messageTruncation.js';\nimport { resolveAIRecordingOptions, buildMethodPath, getFinalOperationName, getSpanOperation, extractSystemInstructions } from '../ai/utils.js';\nimport { CHATS_CREATE_METHOD, CHAT_PATH, GOOGLE_GENAI_SYSTEM_NAME } from './constants.js';\nimport { instrumentStream } from './streaming.js';\nimport { shouldInstrument, isStreamingMethod, contentUnionToMessages } from './utils.js';\n\n/**\n * Extract model from parameters or chat context object\n * For chat instances, the model is available on the chat object as 'model' (older versions) or 'modelVersion' (newer versions)\n */\nfunction extractModel(params, context) {\n if ('model' in params && typeof params.model === 'string') {\n return params.model;\n }\n\n // Try to get model from chat context object (chat instance has model property)\n if (context && typeof context === 'object') {\n const contextObj = context ;\n\n // Check for 'model' property (older versions, and streaming)\n if ('model' in contextObj && typeof contextObj.model === 'string') {\n return contextObj.model;\n }\n\n // Check for 'modelVersion' property (newer versions)\n if ('modelVersion' in contextObj && typeof contextObj.modelVersion === 'string') {\n return contextObj.modelVersion;\n }\n }\n\n return 'unknown';\n}\n\n/**\n * Extract generation config parameters\n */\nfunction extractConfigAttributes(config) {\n const attributes = {};\n\n if ('temperature' in config && typeof config.temperature === 'number') {\n attributes[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = config.temperature;\n }\n if ('topP' in config && typeof config.topP === 'number') {\n attributes[GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = config.topP;\n }\n if ('topK' in config && typeof config.topK === 'number') {\n attributes[GEN_AI_REQUEST_TOP_K_ATTRIBUTE] = config.topK;\n }\n if ('maxOutputTokens' in config && typeof config.maxOutputTokens === 'number') {\n attributes[GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE] = config.maxOutputTokens;\n }\n if ('frequencyPenalty' in config && typeof config.frequencyPenalty === 'number') {\n attributes[GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = config.frequencyPenalty;\n }\n if ('presencePenalty' in config && typeof config.presencePenalty === 'number') {\n attributes[GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE] = config.presencePenalty;\n }\n\n return attributes;\n}\n\n/**\n * Extract request attributes from method arguments\n * Builds the base attributes for span creation including system info, model, and config\n */\nfunction extractRequestAttributes(\n methodPath,\n params,\n context,\n) {\n const attributes = {\n [GEN_AI_SYSTEM_ATTRIBUTE]: GOOGLE_GENAI_SYSTEM_NAME,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: getFinalOperationName(methodPath),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',\n };\n\n if (params) {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = extractModel(params, context);\n\n // Extract generation config parameters\n if ('config' in params && typeof params.config === 'object' && params.config) {\n const config = params.config ;\n Object.assign(attributes, extractConfigAttributes(config));\n\n // Extract available tools from config\n if ('tools' in config && Array.isArray(config.tools)) {\n const functionDeclarations = config.tools.flatMap(\n (tool) => tool.functionDeclarations,\n );\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = JSON.stringify(functionDeclarations);\n }\n }\n } else {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = extractModel({}, context);\n }\n\n return attributes;\n}\n\n/**\n * Add private request attributes to spans.\n * This is only recorded if recordInputs is true.\n * Handles different parameter formats for different Google GenAI methods.\n */\nfunction addPrivateRequestAttributes(span, params) {\n const messages = [];\n\n // config.systemInstruction: ContentUnion\n if (\n 'config' in params &&\n params.config &&\n typeof params.config === 'object' &&\n 'systemInstruction' in params.config &&\n params.config.systemInstruction\n ) {\n messages.push(...contentUnionToMessages(params.config.systemInstruction , 'system'));\n }\n\n // For chats.create: history contains the conversation history\n if ('history' in params) {\n messages.push(...contentUnionToMessages(params.history , 'user'));\n }\n\n // For models.generateContent: ContentListUnion\n if ('contents' in params) {\n messages.push(...contentUnionToMessages(params.contents , 'user'));\n }\n\n // For chat.sendMessage: message can be PartListUnion\n if ('message' in params) {\n messages.push(...contentUnionToMessages(params.message , 'user'));\n }\n\n if (Array.isArray(messages) && messages.length) {\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n span.setAttributes({\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: JSON.stringify(truncateGenAiMessages(filteredMessages )),\n });\n }\n}\n\n/**\n * Add response attributes from the Google GenAI response\n * @see https://github.com/googleapis/js-genai/blob/v1.19.0/src/types.ts#L2313\n */\nfunction addResponseAttributes(span, response, recordOutputs) {\n if (!response || typeof response !== 'object') return;\n\n if (response.modelVersion) {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, response.modelVersion);\n }\n\n // Add usage metadata if present\n if (response.usageMetadata && typeof response.usageMetadata === 'object') {\n const usage = response.usageMetadata;\n if (typeof usage.promptTokenCount === 'number') {\n span.setAttributes({\n [GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE]: usage.promptTokenCount,\n });\n }\n if (typeof usage.candidatesTokenCount === 'number') {\n span.setAttributes({\n [GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: usage.candidatesTokenCount,\n });\n }\n if (typeof usage.totalTokenCount === 'number') {\n span.setAttributes({\n [GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: usage.totalTokenCount,\n });\n }\n }\n\n // Add response text if recordOutputs is enabled\n if (recordOutputs && Array.isArray(response.candidates) && response.candidates.length > 0) {\n const responseTexts = response.candidates\n .map((candidate) => {\n if (candidate.content?.parts && Array.isArray(candidate.content.parts)) {\n return candidate.content.parts\n .map((part) => (typeof part.text === 'string' ? part.text : ''))\n .filter((text) => text.length > 0)\n .join('');\n }\n return '';\n })\n .filter((text) => text.length > 0);\n\n if (responseTexts.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: responseTexts.join(''),\n });\n }\n }\n\n // Add tool calls if recordOutputs is enabled\n if (recordOutputs && response.functionCalls) {\n const functionCalls = response.functionCalls;\n if (Array.isArray(functionCalls) && functionCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(functionCalls),\n });\n }\n }\n}\n\n/**\n * Instrument any async or synchronous genai method with Sentry spans\n * Handles operations like models.generateContent and chat.sendMessage and chats.create\n * @see https://docs.sentry.io/platforms/javascript/guides/node/tracing/instrumentation/ai-agents-module/#manual-instrumentation\n */\nfunction instrumentMethod(\n originalMethod,\n methodPath,\n context,\n options,\n) {\n const isSyncCreate = methodPath === CHATS_CREATE_METHOD;\n\n return new Proxy(originalMethod, {\n apply(target, _, args) {\n const params = args[0] ;\n const requestAttributes = extractRequestAttributes(methodPath, params, context);\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ?? 'unknown';\n const operationName = getFinalOperationName(methodPath);\n\n // Check if this is a streaming method\n if (isStreamingMethod(methodPath)) {\n // Use startSpanManual for streaming methods to control span lifecycle\n return startSpanManual(\n {\n name: `${operationName} ${model}`,\n op: getSpanOperation(methodPath),\n attributes: requestAttributes,\n },\n async (span) => {\n try {\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params);\n }\n const stream = await target.apply(context, args);\n return instrumentStream(stream, span, Boolean(options.recordOutputs)) ;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.google_genai',\n data: { function: methodPath },\n },\n });\n span.end();\n throw error;\n }\n },\n );\n }\n // Single span for both sync and async operations\n return startSpan(\n {\n name: isSyncCreate ? `${operationName} ${model} create` : `${operationName} ${model}`,\n op: getSpanOperation(methodPath),\n attributes: requestAttributes,\n },\n (span) => {\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params);\n }\n\n return handleCallbackErrors(\n () => target.apply(context, args),\n error => {\n captureException(error, {\n mechanism: { handled: false, type: 'auto.ai.google_genai', data: { function: methodPath } },\n });\n },\n () => {},\n result => {\n // Only add response attributes for content-producing methods, not for chats.create\n if (!isSyncCreate) {\n addResponseAttributes(span, result, options.recordOutputs);\n }\n },\n );\n },\n );\n },\n }) ;\n}\n\n/**\n * Create a deep proxy for Google GenAI client instrumentation\n * Recursively instruments methods and handles special cases like chats.create\n */\nfunction createDeepProxy(target, currentPath = '', options) {\n return new Proxy(target, {\n get: (t, prop, receiver) => {\n const value = Reflect.get(t, prop, receiver);\n const methodPath = buildMethodPath(currentPath, String(prop));\n\n if (typeof value === 'function' && shouldInstrument(methodPath)) {\n // Special case: chats.create is synchronous but needs both instrumentation AND result proxying\n if (methodPath === CHATS_CREATE_METHOD) {\n const instrumentedMethod = instrumentMethod(value , methodPath, t, options);\n return function instrumentedAndProxiedCreate(...args) {\n const result = instrumentedMethod(...args);\n // If the result is an object (like a chat instance), proxy it too\n if (result && typeof result === 'object') {\n return createDeepProxy(result, CHAT_PATH, options);\n }\n return result;\n };\n }\n\n return instrumentMethod(value , methodPath, t, options);\n }\n\n if (typeof value === 'function') {\n // Bind non-instrumented functions to preserve the original `this` context\n return value.bind(t);\n }\n\n if (value && typeof value === 'object') {\n return createDeepProxy(value, methodPath, options);\n }\n\n return value;\n },\n });\n}\n\n/**\n * Instrument a Google GenAI client with Sentry tracing\n * Can be used across Node.js, Cloudflare Workers, and Vercel Edge\n *\n * @template T - The type of the client that extends client object\n * @param client - The Google GenAI client to instrument\n * @param options - Optional configuration for recording inputs and outputs\n * @returns The instrumented client with the same type as the input\n *\n * @example\n * ```typescript\n * import { GoogleGenAI } from '@google/genai';\n * import { instrumentGoogleGenAIClient } from '@sentry/core';\n *\n * const genAI = new GoogleGenAI({ apiKey: process.env.GOOGLE_GENAI_API_KEY });\n * const instrumentedClient = instrumentGoogleGenAIClient(genAI);\n *\n * // Now both chats.create and sendMessage will be instrumented\n * const chat = instrumentedClient.chats.create({ model: 'gemini-1.5-pro' });\n * const response = await chat.sendMessage({ message: 'Hello' });\n * ```\n */\nfunction instrumentGoogleGenAIClient(client, options) {\n return createDeepProxy(client, '', resolveAIRecordingOptions(options));\n}\n\nexport { extractModel, instrumentGoogleGenAIClient };\n//# sourceMappingURL=index.js.map\n", - "const LANGCHAIN_INTEGRATION_NAME = 'LangChain';\nconst LANGCHAIN_ORIGIN = 'auto.ai.langchain';\n\nconst ROLE_MAP = {\n human: 'user',\n ai: 'assistant',\n assistant: 'assistant',\n system: 'system',\n function: 'function',\n tool: 'tool',\n};\n\nexport { LANGCHAIN_INTEGRATION_NAME, LANGCHAIN_ORIGIN, ROLE_MAP };\n//# sourceMappingURL=constants.js.map\n", - "import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { isContentMedia, stripInlineMediaFromSingleMessage } from '../ai/mediaStripping.js';\nimport { truncateGenAiMessages } from '../ai/messageTruncation.js';\nimport { extractSystemInstructions } from '../ai/utils.js';\nimport { LANGCHAIN_ORIGIN, ROLE_MAP } from './constants.js';\n\n/**\n * Assigns an attribute only when the value is neither `undefined` nor `null`.\n *\n * We keep this tiny helper because call sites are repetitive and easy to miswrite.\n * It also preserves falsy-but-valid values like `0` and `\"\"`.\n */\nconst setIfDefined = (target, key, value) => {\n if (value != null) target[key] = value ;\n};\n\n/**\n * Like `setIfDefined`, but converts the value with `Number()` and skips only when the\n * result is `NaN`. This ensures numeric 0 makes it through (unlike truthy checks).\n */\nconst setNumberIfDefined = (target, key, value) => {\n const n = Number(value);\n if (!Number.isNaN(n)) target[key] = n;\n};\n\n/**\n * Converts a value to a string. Avoids double-quoted JSON strings where a plain\n * string is desired, but still handles objects/arrays safely.\n */\nfunction asString(v) {\n if (typeof v === 'string') return v;\n try {\n return JSON.stringify(v);\n } catch {\n return String(v);\n }\n}\n\n/**\n * Converts message content to a string, stripping inline media (base64 images, audio, etc.)\n * from multimodal content before stringification so downstream media stripping can't miss it.\n *\n * @example\n * // String content passes through unchanged:\n * normalizeContent(\"Hello\") // => \"Hello\"\n *\n * // Multimodal array content — media is replaced with \"[Blob substitute]\" before JSON.stringify:\n * normalizeContent([\n * { type: \"text\", text: \"What color?\" },\n * { type: \"image_url\", image_url: { url: \"data:image/png;base64,iVBOR...\" } }\n * ])\n * // => '[{\"type\":\"text\",\"text\":\"What color?\"},{\"type\":\"image_url\",\"image_url\":{\"url\":\"[Blob substitute]\"}}]'\n *\n * // Without this, asString() would JSON.stringify the raw array and the base64 blob\n * // would end up in span attributes, since downstream stripping only works on objects.\n */\nfunction normalizeContent(v) {\n if (Array.isArray(v)) {\n try {\n const stripped = v.map(part =>\n part && typeof part === 'object' && isContentMedia(part) ? stripInlineMediaFromSingleMessage(part) : part,\n );\n return JSON.stringify(stripped);\n } catch {\n return String(v);\n }\n }\n return asString(v);\n}\n\n/**\n * Normalizes a single role token to our canonical set.\n *\n * @param role Incoming role value (free-form, any casing)\n * @returns Canonical role: 'user' | 'assistant' | 'system' | 'function' | 'tool' | \n */\nfunction normalizeMessageRole(role) {\n const normalized = role.toLowerCase();\n return ROLE_MAP[normalized] ?? normalized;\n}\n\n/**\n * Infers a role from a LangChain message constructor name.\n *\n * Checks for substrings like \"System\", \"Human\", \"AI\", etc.\n */\nfunction normalizeRoleNameFromCtor(name) {\n if (name.includes('System')) return 'system';\n if (name.includes('Human')) return 'user';\n if (name.includes('AI') || name.includes('Assistant')) return 'assistant';\n if (name.includes('Function')) return 'function';\n if (name.includes('Tool')) return 'tool';\n return 'user';\n}\n\n/**\n * Returns invocation params from a LangChain `tags` object.\n *\n * LangChain often passes runtime parameters (model, temperature, etc.) via the\n * `tags.invocation_params` bag. If `tags` is an array (LangChain sometimes uses\n * string tags), we return `undefined`.\n *\n * @param tags LangChain tags (string[] or record)\n * @returns The `invocation_params` object, if present\n */\nfunction getInvocationParams(tags) {\n if (!tags || Array.isArray(tags)) return undefined;\n return tags.invocation_params ;\n}\n\n/**\n * Normalizes a heterogeneous set of LangChain messages to `{ role, content }`.\n *\n * Why so many branches? LangChain messages can arrive in several shapes:\n * - Message classes with `_getType()` (most reliable)\n * - Classes with meaningful constructor names (e.g. `SystemMessage`)\n * - Plain objects with `type`, or `{ role, content }`\n * - Serialized format with `{ lc: 1, id: [...], kwargs: { content } }`\n * We preserve the prioritization to minimize behavioral drift.\n *\n * @param messages Mixed LangChain messages\n * @returns Array of normalized `{ role, content }`\n */\nfunction normalizeLangChainMessages(messages) {\n return messages.map(message => {\n // 1) Prefer _getType() when present\n const maybeGetType = (message )._getType;\n if (typeof maybeGetType === 'function') {\n const messageType = maybeGetType.call(message);\n return {\n role: normalizeMessageRole(messageType),\n content: normalizeContent(message.content),\n };\n }\n\n // 2) Serialized LangChain format (lc: 1) - check before constructor name\n // This is more reliable than constructor.name which can be lost during serialization\n if (message.lc === 1 && message.kwargs) {\n const id = message.id;\n const messageType = Array.isArray(id) && id.length > 0 ? id[id.length - 1] : '';\n const role = typeof messageType === 'string' ? normalizeRoleNameFromCtor(messageType) : 'user';\n\n return {\n role: normalizeMessageRole(role),\n content: normalizeContent(message.kwargs?.content),\n };\n }\n\n // 3) Then objects with `type`\n if (message.type) {\n const role = String(message.type).toLowerCase();\n return {\n role: normalizeMessageRole(role),\n content: normalizeContent(message.content),\n };\n }\n\n // 4) Then objects with `{ role, content }` - check before constructor name\n // Plain objects have constructor.name=\"Object\" which would incorrectly default to \"user\"\n if (message.role) {\n return {\n role: normalizeMessageRole(String(message.role)),\n content: normalizeContent(message.content),\n };\n }\n\n // 5) Then try constructor name (SystemMessage / HumanMessage / ...)\n // Only use this if we haven't matched a more specific case\n const ctor = (message ).constructor?.name;\n if (ctor && ctor !== 'Object') {\n return {\n role: normalizeMessageRole(normalizeRoleNameFromCtor(ctor)),\n content: normalizeContent(message.content),\n };\n }\n\n // 6) Fallback: treat as user text\n return {\n role: 'user',\n content: normalizeContent(message.content),\n };\n });\n}\n\n/**\n * Extracts request attributes common to both LLM and ChatModel invocations.\n *\n * Source precedence:\n * 1) `invocationParams` (highest)\n * 2) `langSmithMetadata`\n *\n * Numeric values are set even when 0 (e.g. `temperature: 0`), but skipped if `NaN`.\n */\nfunction extractCommonRequestAttributes(\n serialized,\n invocationParams,\n langSmithMetadata,\n) {\n const attrs = {};\n\n // Get kwargs if available (from constructor type)\n const kwargs = 'kwargs' in serialized ? serialized.kwargs : undefined;\n\n const temperature = invocationParams?.temperature ?? langSmithMetadata?.ls_temperature ?? kwargs?.temperature;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, temperature);\n\n const maxTokens = invocationParams?.max_tokens ?? langSmithMetadata?.ls_max_tokens ?? kwargs?.max_tokens;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, maxTokens);\n\n const topP = invocationParams?.top_p ?? kwargs?.top_p;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, topP);\n\n const frequencyPenalty = invocationParams?.frequency_penalty;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, frequencyPenalty);\n\n const presencePenalty = invocationParams?.presence_penalty;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, presencePenalty);\n\n // LangChain uses `stream`. We only set the attribute if the key actually exists\n // (some callbacks report `false` even on streamed requests, this stems from LangChain's callback handler).\n if (invocationParams && 'stream' in invocationParams) {\n setIfDefined(attrs, GEN_AI_REQUEST_STREAM_ATTRIBUTE, Boolean(invocationParams.stream));\n }\n\n return attrs;\n}\n\n/**\n * Small helper to assemble boilerplate attributes shared by both request extractors.\n * Always uses 'chat' as the operation type for all LLM and chat model operations.\n */\nfunction baseRequestAttributes(\n system,\n modelName,\n serialized,\n invocationParams,\n langSmithMetadata,\n) {\n return {\n [GEN_AI_SYSTEM_ATTRIBUTE]: asString(system ?? 'langchain'),\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'chat',\n [GEN_AI_REQUEST_MODEL_ATTRIBUTE]: asString(modelName),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGCHAIN_ORIGIN,\n ...extractCommonRequestAttributes(serialized, invocationParams, langSmithMetadata),\n };\n}\n\n/**\n * Extracts attributes for plain LLM invocations (string prompts).\n *\n * - Operation is tagged as `chat` following OpenTelemetry semantic conventions.\n * LangChain LLM operations are treated as chat operations.\n * - When `recordInputs` is true, string prompts are wrapped into `{role:\"user\"}`\n * messages to align with the chat schema used elsewhere.\n */\nfunction extractLLMRequestAttributes(\n llm,\n prompts,\n recordInputs,\n invocationParams,\n langSmithMetadata,\n) {\n const system = langSmithMetadata?.ls_provider;\n const modelName = invocationParams?.model ?? langSmithMetadata?.ls_model_name ?? 'unknown';\n\n const attrs = baseRequestAttributes(system, modelName, llm, invocationParams, langSmithMetadata);\n\n if (recordInputs && Array.isArray(prompts) && prompts.length > 0) {\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, prompts.length);\n const messages = prompts.map(p => ({ role: 'user', content: p }));\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, asString(messages));\n }\n\n return attrs;\n}\n\n/**\n * Extracts attributes for ChatModel invocations (array-of-arrays of messages).\n *\n * - Operation is tagged as `chat` following OpenTelemetry semantic conventions.\n * LangChain chat model operations are chat operations.\n * - We flatten LangChain's `LangChainMessage[][]` and normalize shapes into a\n * consistent `{ role, content }` array when `recordInputs` is true.\n * - Provider system value falls back to `serialized.id?.[2]`.\n */\nfunction extractChatModelRequestAttributes(\n llm,\n langChainMessages,\n recordInputs,\n invocationParams,\n langSmithMetadata,\n) {\n const system = langSmithMetadata?.ls_provider ?? llm.id?.[2];\n const modelName = invocationParams?.model ?? langSmithMetadata?.ls_model_name ?? 'unknown';\n\n const attrs = baseRequestAttributes(system, modelName, llm, invocationParams, langSmithMetadata);\n\n if (recordInputs && Array.isArray(langChainMessages) && langChainMessages.length > 0) {\n const normalized = normalizeLangChainMessages(langChainMessages.flat());\n\n const { systemInstructions, filteredMessages } = extractSystemInstructions(normalized);\n\n if (systemInstructions) {\n setIfDefined(attrs, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, filteredLength);\n\n const truncated = truncateGenAiMessages(filteredMessages );\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, asString(truncated));\n }\n\n return attrs;\n}\n\n/**\n * Scans generations for Anthropic-style `tool_use` items and records them.\n *\n * LangChain represents some provider messages (e.g., Anthropic) with a `message.content`\n * array that may include objects `{ type: 'tool_use', ... }`. We collect and attach\n * them as a JSON array on `gen_ai.response.tool_calls` for downstream consumers.\n */\nfunction addToolCallsAttributes(generations, attrs) {\n const toolCalls = [];\n const flatGenerations = generations.flat();\n\n for (const gen of flatGenerations) {\n const content = gen.message?.content;\n if (Array.isArray(content)) {\n for (const item of content) {\n const t = item ;\n if (t.type === 'tool_use') toolCalls.push(t);\n }\n }\n }\n\n if (toolCalls.length > 0) {\n setIfDefined(attrs, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, asString(toolCalls));\n }\n}\n\n/**\n * Adds token usage attributes, supporting both OpenAI (`tokenUsage`) and Anthropic (`usage`) formats.\n * - Preserve zero values (0 tokens) by avoiding truthy checks.\n * - Compute a total for Anthropic when not explicitly provided.\n * - Include cache token metrics when present.\n */\nfunction addTokenUsageAttributes(\n llmOutput,\n attrs,\n) {\n if (!llmOutput) return;\n\n const tokenUsage = llmOutput.tokenUsage\n\n;\n const anthropicUsage = llmOutput.usage\n\n;\n\n if (tokenUsage) {\n setNumberIfDefined(attrs, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, tokenUsage.promptTokens);\n setNumberIfDefined(attrs, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, tokenUsage.completionTokens);\n setNumberIfDefined(attrs, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, tokenUsage.totalTokens);\n } else if (anthropicUsage) {\n setNumberIfDefined(attrs, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, anthropicUsage.input_tokens);\n setNumberIfDefined(attrs, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, anthropicUsage.output_tokens);\n\n // Compute total when not provided by the provider.\n const input = Number(anthropicUsage.input_tokens);\n const output = Number(anthropicUsage.output_tokens);\n const total = (Number.isNaN(input) ? 0 : input) + (Number.isNaN(output) ? 0 : output);\n if (total > 0) setNumberIfDefined(attrs, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, total);\n\n // Extra Anthropic cache metrics (present only when caching is enabled)\n if (anthropicUsage.cache_creation_input_tokens !== undefined)\n setNumberIfDefined(\n attrs,\n GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE,\n anthropicUsage.cache_creation_input_tokens,\n );\n if (anthropicUsage.cache_read_input_tokens !== undefined)\n setNumberIfDefined(attrs, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE, anthropicUsage.cache_read_input_tokens);\n }\n}\n\n/**\n * Extracts response-related attributes based on a `LangChainLLMResult`.\n *\n * - Records finish reasons when present on generations (e.g., OpenAI)\n * - When `recordOutputs` is true, captures textual response content and any\n * tool calls.\n * - Also propagates model name (`model_name` or `model`), response `id`, and\n * `stop_reason` (for providers that use it).\n */\nfunction extractLlmResponseAttributes(\n llmResult,\n recordOutputs,\n) {\n if (!llmResult) return;\n\n const attrs = {};\n\n if (Array.isArray(llmResult.generations)) {\n const finishReasons = llmResult.generations\n .flat()\n .map(g => {\n // v1 uses generationInfo.finish_reason\n if (g.generationInfo?.finish_reason) {\n return g.generationInfo.finish_reason;\n }\n // v0.3+ uses generation_info.finish_reason\n if (g.generation_info?.finish_reason) {\n return g.generation_info.finish_reason;\n }\n return null;\n })\n .filter((r) => typeof r === 'string');\n\n if (finishReasons.length > 0) {\n setIfDefined(attrs, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, asString(finishReasons));\n }\n\n // Tool calls metadata (names, IDs) are not PII, so capture them regardless of recordOutputs\n addToolCallsAttributes(llmResult.generations , attrs);\n\n if (recordOutputs) {\n const texts = llmResult.generations\n .flat()\n .map(gen => gen.text ?? gen.message?.content)\n .filter(t => typeof t === 'string');\n\n if (texts.length > 0) {\n setIfDefined(attrs, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, asString(texts));\n }\n }\n }\n\n addTokenUsageAttributes(llmResult.llmOutput, attrs);\n\n const llmOutput = llmResult.llmOutput;\n\n // Extract from v1 generations structure if available\n const firstGeneration = llmResult.generations?.[0]?.[0];\n const v1Message = firstGeneration?.message;\n\n // Provider model identifier: `model_name` (OpenAI-style) or `model` (others)\n // v1 stores this in message.response_metadata.model_name\n const modelName = llmOutput?.model_name ?? llmOutput?.model ?? v1Message?.response_metadata?.model_name;\n if (modelName) setIfDefined(attrs, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, modelName);\n\n // Response ID: v1 stores this in message.id\n const responseId = llmOutput?.id ?? v1Message?.id;\n if (responseId) {\n setIfDefined(attrs, GEN_AI_RESPONSE_ID_ATTRIBUTE, responseId);\n }\n\n // Stop reason: v1 stores this in message.response_metadata.finish_reason\n const stopReason = llmOutput?.stop_reason ?? v1Message?.response_metadata?.finish_reason;\n if (stopReason) {\n setIfDefined(attrs, GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE, asString(stopReason));\n }\n\n return attrs;\n}\n\nexport { extractChatModelRequestAttributes, extractLLMRequestAttributes, extractLlmResponseAttributes, getInvocationParams, normalizeLangChainMessages };\n//# sourceMappingURL=utils.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpanManual } from '../trace.js';\nimport { GEN_AI_TOOL_OUTPUT_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions } from '../ai/utils.js';\nimport { LANGCHAIN_ORIGIN } from './constants.js';\nimport { extractLlmResponseAttributes, getInvocationParams, extractChatModelRequestAttributes, extractLLMRequestAttributes } from './utils.js';\n\n/**\n * Creates a Sentry callback handler for LangChain\n * Returns a plain object that LangChain will call via duck-typing\n *\n * This is a stateful handler that tracks spans across multiple LangChain executions.\n */\nfunction createLangChainCallbackHandler(options = {}) {\n const { recordInputs, recordOutputs } = resolveAIRecordingOptions(options);\n\n // Internal state - single instance tracks all spans\n const spanMap = new Map();\n\n /**\n * Exit a span and clean up\n */\n const exitSpan = (runId) => {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.end();\n spanMap.delete(runId);\n }\n };\n\n /**\n * Handler for LLM Start\n * This handler will be called by LangChain's callback handler when an LLM event is detected.\n */\n const handler = {\n // Required LangChain BaseCallbackHandler properties\n lc_serializable: false,\n lc_namespace: ['langchain_core', 'callbacks', 'sentry'],\n lc_secrets: undefined,\n lc_attributes: undefined,\n lc_aliases: undefined,\n lc_serializable_keys: undefined,\n lc_id: ['langchain_core', 'callbacks', 'sentry'],\n lc_kwargs: {},\n name: 'SentryCallbackHandler',\n\n // BaseCallbackHandlerInput boolean flags\n ignoreLLM: false,\n ignoreChain: false,\n ignoreAgent: false,\n ignoreRetriever: false,\n ignoreCustomEvent: false,\n raiseError: false,\n awaitHandlers: true,\n\n handleLLMStart(\n llm,\n prompts,\n runId,\n _parentRunId,\n _extraParams,\n tags,\n metadata,\n _runName,\n ) {\n const invocationParams = getInvocationParams(tags);\n const attributes = extractLLMRequestAttributes(\n llm ,\n prompts,\n recordInputs,\n invocationParams,\n metadata,\n );\n const modelName = attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE];\n const operationName = attributes[GEN_AI_OPERATION_NAME_ATTRIBUTE];\n\n startSpanManual(\n {\n name: `${operationName} ${modelName}`,\n op: 'gen_ai.chat',\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.chat',\n },\n },\n span => {\n spanMap.set(runId, span);\n return span;\n },\n );\n },\n\n // Chat Model Start Handler\n handleChatModelStart(\n llm,\n messages,\n runId,\n _parentRunId,\n _extraParams,\n tags,\n metadata,\n _runName,\n ) {\n const invocationParams = getInvocationParams(tags);\n const attributes = extractChatModelRequestAttributes(\n llm ,\n messages ,\n recordInputs,\n invocationParams,\n metadata,\n );\n const modelName = attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE];\n const operationName = attributes[GEN_AI_OPERATION_NAME_ATTRIBUTE];\n\n startSpanManual(\n {\n name: `${operationName} ${modelName}`,\n op: 'gen_ai.chat',\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.chat',\n },\n },\n span => {\n spanMap.set(runId, span);\n return span;\n },\n );\n },\n\n // LLM End Handler - note: handleLLMEnd with capital LLM (used by both LLMs and chat models!)\n handleLLMEnd(\n output,\n runId,\n _parentRunId,\n _tags,\n _extraParams,\n ) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n const attributes = extractLlmResponseAttributes(output , recordOutputs);\n if (attributes) {\n span.setAttributes(attributes);\n }\n exitSpan(runId);\n }\n },\n\n // LLM Error Handler - note: handleLLMError with capital LLM\n handleLLMError(error, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n exitSpan(runId);\n }\n\n captureException(error, {\n mechanism: {\n handled: false,\n type: `${LANGCHAIN_ORIGIN}.llm_error_handler`,\n },\n });\n },\n\n // Chain Start Handler\n handleChainStart(\n chain,\n inputs,\n runId,\n _parentRunId,\n _tags,\n _metadata,\n _runType,\n runName,\n ) {\n const chainName = runName || chain.name || 'unknown_chain';\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.langchain',\n 'langchain.chain.name': chainName,\n };\n\n // Add inputs if recordInputs is enabled\n if (recordInputs) {\n attributes['langchain.chain.inputs'] = JSON.stringify(inputs);\n }\n\n startSpanManual(\n {\n name: `chain ${chainName}`,\n op: 'gen_ai.invoke_agent',\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.invoke_agent',\n },\n },\n span => {\n spanMap.set(runId, span);\n return span;\n },\n );\n },\n\n // Chain End Handler\n handleChainEnd(outputs, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n // Add outputs if recordOutputs is enabled\n if (recordOutputs) {\n span.setAttributes({\n 'langchain.chain.outputs': JSON.stringify(outputs),\n });\n }\n exitSpan(runId);\n }\n },\n\n // Chain Error Handler\n handleChainError(error, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n exitSpan(runId);\n }\n\n captureException(error, {\n mechanism: {\n handled: false,\n type: `${LANGCHAIN_ORIGIN}.chain_error_handler`,\n },\n });\n },\n\n // Tool Start Handler\n handleToolStart(tool, input, runId, _parentRunId) {\n const toolName = tool.name || 'unknown_tool';\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGCHAIN_ORIGIN,\n [GEN_AI_TOOL_NAME_ATTRIBUTE]: toolName,\n };\n\n // Add input if recordInputs is enabled\n if (recordInputs) {\n attributes[GEN_AI_TOOL_INPUT_ATTRIBUTE] = input;\n }\n\n startSpanManual(\n {\n name: `execute_tool ${toolName}`,\n op: 'gen_ai.execute_tool',\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.execute_tool',\n },\n },\n span => {\n spanMap.set(runId, span);\n return span;\n },\n );\n },\n\n // Tool End Handler\n handleToolEnd(output, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n // Add output if recordOutputs is enabled\n if (recordOutputs) {\n span.setAttributes({\n [GEN_AI_TOOL_OUTPUT_ATTRIBUTE]: JSON.stringify(output),\n });\n }\n exitSpan(runId);\n }\n },\n\n // Tool Error Handler\n handleToolError(error, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n exitSpan(runId);\n }\n\n captureException(error, {\n mechanism: {\n handled: false,\n type: `${LANGCHAIN_ORIGIN}.tool_error_handler`,\n },\n });\n },\n\n // LangChain BaseCallbackHandler required methods\n copy() {\n return handler;\n },\n\n toJSON() {\n return {\n lc: 1,\n type: 'not_implemented',\n id: handler.lc_id,\n };\n },\n\n toJSONNotImplemented() {\n return {\n lc: 1,\n type: 'not_implemented',\n id: handler.lc_id,\n };\n },\n };\n\n return handler;\n}\n\nexport { createLangChainCallbackHandler };\n//# sourceMappingURL=index.js.map\n", - "const LANGGRAPH_INTEGRATION_NAME = 'LangGraph';\nconst LANGGRAPH_ORIGIN = 'auto.ai.langgraph';\n\nexport { LANGGRAPH_INTEGRATION_NAME, LANGGRAPH_ORIGIN };\n//# sourceMappingURL=constants.js.map\n", - "import { GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { normalizeLangChainMessages } from '../langchain/utils.js';\n\n/**\n * Extract tool calls from messages\n */\nfunction extractToolCalls(messages) {\n if (!messages || messages.length === 0) {\n return null;\n }\n\n const toolCalls = [];\n\n for (const message of messages) {\n if (message && typeof message === 'object') {\n const msgToolCalls = message.tool_calls;\n if (msgToolCalls && Array.isArray(msgToolCalls)) {\n toolCalls.push(...msgToolCalls);\n }\n }\n }\n\n return toolCalls.length > 0 ? toolCalls : null;\n}\n\n/**\n * Extract token usage from a message's usage_metadata or response_metadata\n * Returns token counts without setting span attributes\n */\nfunction extractTokenUsageFromMessage(message)\n\n {\n const msg = message ;\n let inputTokens = 0;\n let outputTokens = 0;\n let totalTokens = 0;\n\n // Extract from usage_metadata (newer format)\n if (msg.usage_metadata && typeof msg.usage_metadata === 'object') {\n const usage = msg.usage_metadata ;\n if (typeof usage.input_tokens === 'number') {\n inputTokens = usage.input_tokens;\n }\n if (typeof usage.output_tokens === 'number') {\n outputTokens = usage.output_tokens;\n }\n if (typeof usage.total_tokens === 'number') {\n totalTokens = usage.total_tokens;\n }\n return { inputTokens, outputTokens, totalTokens };\n }\n\n // Fallback: Extract from response_metadata.tokenUsage\n if (msg.response_metadata && typeof msg.response_metadata === 'object') {\n const metadata = msg.response_metadata ;\n if (metadata.tokenUsage && typeof metadata.tokenUsage === 'object') {\n const tokenUsage = metadata.tokenUsage ;\n if (typeof tokenUsage.promptTokens === 'number') {\n inputTokens = tokenUsage.promptTokens;\n }\n if (typeof tokenUsage.completionTokens === 'number') {\n outputTokens = tokenUsage.completionTokens;\n }\n if (typeof tokenUsage.totalTokens === 'number') {\n totalTokens = tokenUsage.totalTokens;\n }\n }\n }\n\n return { inputTokens, outputTokens, totalTokens };\n}\n\n/**\n * Extract model and finish reason from a message's response_metadata\n */\nfunction extractModelMetadata(span, message) {\n const msg = message ;\n\n if (msg.response_metadata && typeof msg.response_metadata === 'object') {\n const metadata = msg.response_metadata ;\n\n if (metadata.model_name && typeof metadata.model_name === 'string') {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, metadata.model_name);\n }\n\n if (metadata.finish_reason && typeof metadata.finish_reason === 'string') {\n span.setAttribute(GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, [metadata.finish_reason]);\n }\n }\n}\n\n/**\n * Extract tools from compiled graph structure\n *\n * Tools are stored in: compiledGraph.builder.nodes.tools.runnable.tools\n */\nfunction extractToolsFromCompiledGraph(compiledGraph) {\n if (!compiledGraph.builder?.nodes?.tools?.runnable?.tools) {\n return null;\n }\n\n const tools = compiledGraph.builder?.nodes?.tools?.runnable?.tools;\n\n if (!tools || !Array.isArray(tools) || tools.length === 0) {\n return null;\n }\n\n // Extract name, description, and schema from each tool's lc_kwargs\n return tools.map((tool) => ({\n name: tool.lc_kwargs?.name,\n description: tool.lc_kwargs?.description,\n schema: tool.lc_kwargs?.schema,\n }));\n}\n\n/**\n * Set response attributes on the span\n */\nfunction setResponseAttributes(span, inputMessages, result) {\n // Extract messages from result\n const resultObj = result ;\n const outputMessages = resultObj?.messages;\n\n if (!outputMessages || !Array.isArray(outputMessages)) {\n return;\n }\n\n // Get new messages (delta between input and output)\n const inputCount = inputMessages?.length ?? 0;\n const newMessages = outputMessages.length > inputCount ? outputMessages.slice(inputCount) : [];\n\n if (newMessages.length === 0) {\n return;\n }\n\n // Extract and set tool calls from new messages BEFORE normalization\n // (normalization strips tool_calls, so we need to extract them first)\n const toolCalls = extractToolCalls(newMessages );\n if (toolCalls) {\n span.setAttribute(GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, JSON.stringify(toolCalls));\n }\n\n // Normalize the new messages\n const normalizedNewMessages = normalizeLangChainMessages(newMessages);\n span.setAttribute(GEN_AI_RESPONSE_TEXT_ATTRIBUTE, JSON.stringify(normalizedNewMessages));\n\n // Accumulate token usage across all messages\n let totalInputTokens = 0;\n let totalOutputTokens = 0;\n let totalTokens = 0;\n\n // Extract metadata from messages\n for (const message of newMessages) {\n // Accumulate token usage\n const tokens = extractTokenUsageFromMessage(message);\n totalInputTokens += tokens.inputTokens;\n totalOutputTokens += tokens.outputTokens;\n totalTokens += tokens.totalTokens;\n\n // Extract model metadata (last message's metadata wins for model/finish_reason)\n extractModelMetadata(span, message);\n }\n\n // Set accumulated token usage on span\n if (totalInputTokens > 0) {\n span.setAttribute(GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, totalInputTokens);\n }\n if (totalOutputTokens > 0) {\n span.setAttribute(GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, totalOutputTokens);\n }\n if (totalTokens > 0) {\n span.setAttribute(GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, totalTokens);\n }\n}\n\nexport { extractModelMetadata, extractTokenUsageFromMessage, extractToolCalls, extractToolsFromCompiledGraph, setResponseAttributes };\n//# sourceMappingURL=utils.js.map\n", - "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpan } from '../trace.js';\nimport { GEN_AI_AGENT_NAME_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_PIPELINE_NAME_ATTRIBUTE, GEN_AI_CONVERSATION_ID_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { truncateGenAiMessages } from '../ai/messageTruncation.js';\nimport { resolveAIRecordingOptions, extractSystemInstructions } from '../ai/utils.js';\nimport { normalizeLangChainMessages } from '../langchain/utils.js';\nimport { LANGGRAPH_ORIGIN } from './constants.js';\nimport { extractToolsFromCompiledGraph, setResponseAttributes } from './utils.js';\n\n/**\n * Instruments StateGraph's compile method to create spans for agent creation and invocation\n *\n * Wraps the compile() method to:\n * - Create a `gen_ai.create_agent` span when compile() is called\n * - Automatically wrap the invoke() method on the returned compiled graph with a `gen_ai.invoke_agent` span\n *\n */\nfunction instrumentStateGraphCompile(\n originalCompile,\n options,\n) {\n return new Proxy(originalCompile, {\n apply(target, thisArg, args) {\n return startSpan(\n {\n op: 'gen_ai.create_agent',\n name: 'create_agent',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGGRAPH_ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.create_agent',\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'create_agent',\n },\n },\n span => {\n try {\n const compiledGraph = Reflect.apply(target, thisArg, args);\n const compileOptions = args.length > 0 ? (args[0] ) : {};\n\n // Extract graph name\n if (compileOptions?.name && typeof compileOptions.name === 'string') {\n span.setAttribute(GEN_AI_AGENT_NAME_ATTRIBUTE, compileOptions.name);\n span.updateName(`create_agent ${compileOptions.name}`);\n }\n\n // Instrument agent invoke method on the compiled graph\n const originalInvoke = compiledGraph.invoke;\n if (originalInvoke && typeof originalInvoke === 'function') {\n compiledGraph.invoke = instrumentCompiledGraphInvoke(\n originalInvoke.bind(compiledGraph) ,\n compiledGraph,\n compileOptions,\n options,\n ) ;\n }\n\n return compiledGraph;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.langgraph.error',\n },\n });\n throw error;\n }\n },\n );\n },\n }) ;\n}\n\n/**\n * Instruments CompiledGraph's invoke method to create spans for agent invocation\n *\n * Creates a `gen_ai.invoke_agent` span when invoke() is called\n */\nfunction instrumentCompiledGraphInvoke(\n originalInvoke,\n graphInstance,\n compileOptions,\n options,\n) {\n return new Proxy(originalInvoke, {\n apply(target, thisArg, args) {\n return startSpan(\n {\n op: 'gen_ai.invoke_agent',\n name: 'invoke_agent',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGGRAPH_ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'invoke_agent',\n },\n },\n async span => {\n try {\n const graphName = compileOptions?.name;\n\n if (graphName && typeof graphName === 'string') {\n span.setAttribute(GEN_AI_PIPELINE_NAME_ATTRIBUTE, graphName);\n span.setAttribute(GEN_AI_AGENT_NAME_ATTRIBUTE, graphName);\n span.updateName(`invoke_agent ${graphName}`);\n }\n\n // Extract thread_id from the config (second argument)\n // LangGraph uses config.configurable.thread_id for conversation/session linking\n const config = args.length > 1 ? (args[1] ) : undefined;\n const configurable = config?.configurable ;\n const threadId = configurable?.thread_id;\n if (threadId && typeof threadId === 'string') {\n span.setAttribute(GEN_AI_CONVERSATION_ID_ATTRIBUTE, threadId);\n }\n\n // Extract available tools from the graph instance\n const tools = extractToolsFromCompiledGraph(graphInstance);\n if (tools) {\n span.setAttribute(GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, JSON.stringify(tools));\n }\n\n // Parse input messages\n const recordInputs = options.recordInputs;\n const recordOutputs = options.recordOutputs;\n const inputMessages =\n args.length > 0 ? ((args[0] )?.messages ?? []) : [];\n\n if (inputMessages && recordInputs) {\n const normalizedMessages = normalizeLangChainMessages(inputMessages);\n const { systemInstructions, filteredMessages } = extractSystemInstructions(normalizedMessages);\n\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const truncatedMessages = truncateGenAiMessages(filteredMessages );\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n span.setAttributes({\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: JSON.stringify(truncatedMessages),\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n });\n }\n\n // Call original invoke\n const result = await Reflect.apply(target, thisArg, args);\n\n // Set response attributes\n if (recordOutputs) {\n setResponseAttributes(span, inputMessages ?? null, result);\n }\n\n return result;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.langgraph.error',\n },\n });\n throw error;\n }\n },\n );\n },\n }) ;\n}\n\n/**\n * Directly instruments a StateGraph instance to add tracing spans\n *\n * This function can be used to manually instrument LangGraph StateGraph instances\n * in environments where automatic instrumentation is not available or desired.\n *\n * @param stateGraph - The StateGraph instance to instrument\n * @param options - Optional configuration for recording inputs/outputs\n *\n * @example\n * ```typescript\n * import { instrumentLangGraph } from '@sentry/cloudflare';\n * import { StateGraph } from '@langchain/langgraph';\n *\n * const graph = new StateGraph(MessagesAnnotation)\n * .addNode('agent', mockLlm)\n * .addEdge(START, 'agent')\n * .addEdge('agent', END);\n *\n * instrumentLangGraph(graph, { recordInputs: true, recordOutputs: true });\n * const compiled = graph.compile({ name: 'my_agent' });\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction instrumentLangGraph(\n stateGraph,\n options,\n) {\n stateGraph.compile = instrumentStateGraphCompile(stateGraph.compile, resolveAIRecordingOptions(options));\n\n return stateGraph;\n}\n\nexport { instrumentLangGraph, instrumentStateGraphCompile };\n//# sourceMappingURL=index.js.map\n", - "/**\n * Determine a breadcrumb's log level (only `warning` or `error`) based on an HTTP status code.\n */\nfunction getBreadcrumbLogLevelFromHttpStatusCode(statusCode) {\n // NOTE: undefined defaults to 'info' in Sentry\n if (statusCode === undefined) {\n return undefined;\n } else if (statusCode >= 400 && statusCode < 500) {\n return 'warning';\n } else if (statusCode >= 500) {\n return 'error';\n } else {\n return undefined;\n }\n}\n\nexport { getBreadcrumbLogLevelFromHttpStatusCode };\n//# sourceMappingURL=breadcrumb-log-level.js.map\n", - "/**\n * Replaces constructor functions in module exports, handling read-only properties,\n * and both default and named exports by wrapping them with the constructor.\n *\n * @param exports The module exports object to modify\n * @param exportName The name of the export to replace (e.g., 'GoogleGenAI', 'Anthropic', 'OpenAI')\n * @param wrappedConstructor The wrapped constructor function to replace the original with\n * @returns void\n */\nfunction replaceExports(\n exports$1,\n exportName,\n wrappedConstructor,\n) {\n const original = exports$1[exportName];\n\n if (typeof original !== 'function') {\n return;\n }\n\n // Replace the named export - handle read-only properties\n try {\n exports$1[exportName] = wrappedConstructor;\n } catch {\n // If direct assignment fails, override the property descriptor\n Object.defineProperty(exports$1, exportName, {\n value: wrappedConstructor,\n writable: true,\n configurable: true,\n enumerable: true,\n });\n }\n\n // Replace the default export if it points to the original constructor\n if (exports$1.default === original) {\n try {\n exports$1.default = wrappedConstructor;\n } catch {\n Object.defineProperty(exports$1, 'default', {\n value: wrappedConstructor,\n writable: true,\n configurable: true,\n enumerable: true,\n });\n }\n }\n}\n\nexport { replaceExports };\n//# sourceMappingURL=exports.js.map\n", - "import { normalizeStackTracePath, UNKNOWN_FUNCTION } from './stacktrace.js';\n\n/**\n * Does this filename look like it's part of the app code?\n */\nfunction filenameIsInApp(filename, isNative = false) {\n const isInternal =\n isNative ||\n (filename &&\n // It's not internal if it's an absolute linux path\n !filename.startsWith('/') &&\n // It's not internal if it's an absolute windows path\n !filename.match(/^[A-Z]:/) &&\n // It's not internal if the path is starting with a dot\n !filename.startsWith('.') &&\n // It's not internal if the frame has a protocol. In node, this is usually the case if the file got pre-processed with a bundler like webpack\n !filename.match(/^[a-zA-Z]([a-zA-Z0-9.\\-+])*:\\/\\//)); // Schema from: https://stackoverflow.com/a/3641782\n\n // in_app is all that's not an internal Node function or a module within node_modules\n // note that isNative appears to return true even for node core libraries\n // see https://github.com/getsentry/raven-node/issues/176\n\n return !isInternal && filename !== undefined && !filename.includes('node_modules/');\n}\n\n/** Node Stack line parser */\nfunction node(getModule) {\n const FILENAME_MATCH = /^\\s*[-]{4,}$/;\n const FULL_MATCH = /at (?:async )?(?:(.+?)\\s+\\()?(?:(.+):(\\d+):(\\d+)?|([^)]+))\\)?/;\n const DATA_URI_MATCH = /at (?:async )?(.+?) \\(data:(.*?),/;\n\n return (line) => {\n const dataUriMatch = line.match(DATA_URI_MATCH);\n if (dataUriMatch) {\n return {\n filename: ``,\n function: dataUriMatch[1],\n };\n }\n\n const lineMatch = line.match(FULL_MATCH);\n\n if (lineMatch) {\n let object;\n let method;\n let functionName;\n let typeName;\n let methodName;\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n\n let methodStart = functionName.lastIndexOf('.');\n if (functionName[methodStart - 1] === '.') {\n methodStart--;\n }\n\n if (methodStart > 0) {\n object = functionName.slice(0, methodStart);\n method = functionName.slice(methodStart + 1);\n const objectEnd = object.indexOf('.Module');\n if (objectEnd > 0) {\n functionName = functionName.slice(objectEnd + 1);\n object = object.slice(0, objectEnd);\n }\n }\n typeName = undefined;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '') {\n methodName = undefined;\n functionName = undefined;\n }\n\n if (functionName === undefined) {\n methodName = methodName || UNKNOWN_FUNCTION;\n functionName = typeName ? `${typeName}.${methodName}` : methodName;\n }\n\n let filename = normalizeStackTracePath(lineMatch[2]);\n const isNative = lineMatch[5] === 'native';\n\n if (!filename && lineMatch[5] && !isNative) {\n filename = lineMatch[5];\n }\n\n const maybeDecodedFilename = filename ? _safeDecodeURI(filename) : undefined;\n return {\n filename: maybeDecodedFilename ?? filename,\n module: maybeDecodedFilename && getModule?.(maybeDecodedFilename),\n function: functionName,\n lineno: _parseIntOrUndefined(lineMatch[3]),\n colno: _parseIntOrUndefined(lineMatch[4]),\n in_app: filenameIsInApp(filename || '', isNative),\n };\n }\n\n if (line.match(FILENAME_MATCH)) {\n return {\n filename: line,\n };\n }\n\n return undefined;\n };\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/core so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nfunction nodeStackLineParser(getModule) {\n return [90, node(getModule)];\n}\n\nfunction _parseIntOrUndefined(input) {\n return parseInt(input || '', 10) || undefined;\n}\n\nfunction _safeDecodeURI(filename) {\n try {\n return decodeURI(filename);\n } catch {\n return undefined;\n }\n}\n\nexport { filenameIsInApp, node, nodeStackLineParser };\n//# sourceMappingURL=node-stack-trace.js.map\n", - "/** A simple Least Recently Used map */\nclass LRUMap {\n\n constructor( _maxSize) {this._maxSize = _maxSize;\n this._cache = new Map();\n }\n\n /** Get the current size of the cache */\n get size() {\n return this._cache.size;\n }\n\n /** Get an entry or undefined if it was not in the cache. Re-inserts to update the recently used order */\n get(key) {\n const value = this._cache.get(key);\n if (value === undefined) {\n return undefined;\n }\n // Remove and re-insert to update the order\n this._cache.delete(key);\n this._cache.set(key, value);\n return value;\n }\n\n /** Insert an entry and evict an older entry if we've reached maxSize */\n set(key, value) {\n if (this._cache.size >= this._maxSize) {\n // keys() returns an iterator in insertion order so keys().next() gives us the oldest key\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const nextKey = this._cache.keys().next().value;\n this._cache.delete(nextKey);\n }\n this._cache.set(key, value);\n }\n\n /** Remove an entry and return the entry if it was in the cache */\n remove(key) {\n const value = this._cache.get(key);\n if (value) {\n this._cache.delete(key);\n }\n return value;\n }\n\n /** Clear all entries */\n clear() {\n this._cache.clear();\n }\n\n /** Get all the keys */\n keys() {\n return Array.from(this._cache.keys());\n }\n\n /** Get all the values */\n values() {\n const values = [];\n this._cache.forEach(value => values.push(value));\n return values;\n }\n}\n\nexport { LRUMap };\n//# sourceMappingURL=lru.js.map\n", - "import { errorMonitor } from 'node:events';\nimport { SpanKind, context, trace } from '@opentelemetry/api';\nimport { RPCType, setRPCMetadata, isTracingSuppressed, getRPCMetadata } from '@opentelemetry/core';\nimport { SEMATTRS_NET_HOST_IP, SEMATTRS_NET_HOST_PORT, SEMATTRS_NET_PEER_IP, SEMATTRS_HTTP_STATUS_CODE, ATTR_HTTP_ROUTE, ATTR_HTTP_RESPONSE_STATUS_CODE } from '@opentelemetry/semantic-conventions';\nimport { debug, parseStringToURLObject, stripUrlQueryAndFragment, httpHeadersToSpanAttributes, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, getSpanStatusFromHttpCode, SPAN_STATUS_ERROR, getIsolationScope } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { addStartSpanCallback } from './httpServerIntegration.js';\n\nconst INTEGRATION_NAME = 'Http.ServerSpans';\n\n// Tree-shakable guard to remove all code related to tracing\n\nconst _httpServerSpansIntegration = ((options = {}) => {\n const ignoreStaticAssets = options.ignoreStaticAssets ?? true;\n const ignoreIncomingRequests = options.ignoreIncomingRequests;\n const ignoreStatusCodes = options.ignoreStatusCodes ?? [\n [401, 404],\n // 300 and 304 are possibly valid status codes we do not want to filter\n [301, 303],\n [305, 399],\n ];\n\n const { onSpanCreated } = options;\n // eslint-disable-next-line deprecation/deprecation\n const { requestHook, responseHook, applyCustomAttributesOnSpan } = options.instrumentation ?? {};\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n // If no tracing, we can just skip everything here\n if (typeof __SENTRY_TRACING__ !== 'undefined' && !__SENTRY_TRACING__) {\n return;\n }\n\n client.on('httpServerRequest', (_request, _response, normalizedRequest) => {\n // Type-casting this here because we do not want to put the node types into core\n const request = _request ;\n const response = _response ;\n\n const startSpan = (next) => {\n if (\n shouldIgnoreSpansForIncomingRequest(request, {\n ignoreStaticAssets,\n ignoreIncomingRequests,\n })\n ) {\n DEBUG_BUILD && debug.log(INTEGRATION_NAME, 'Skipping span creation for incoming request', request.url);\n return next();\n }\n\n const fullUrl = normalizedRequest.url || request.url || '/';\n const urlObj = parseStringToURLObject(fullUrl);\n\n const headers = request.headers;\n const userAgent = headers['user-agent'];\n const ips = headers['x-forwarded-for'];\n const httpVersion = request.httpVersion;\n const host = headers.host;\n const hostname = host?.replace(/^(.*)(:[0-9]{1,5})/, '$1') || 'localhost';\n\n const tracer = client.tracer;\n const scheme = fullUrl.startsWith('https') ? 'https' : 'http';\n\n const method = normalizedRequest.method || request.method?.toUpperCase() || 'GET';\n const httpTargetWithoutQueryFragment = urlObj ? urlObj.pathname : stripUrlQueryAndFragment(fullUrl);\n const bestEffortTransactionName = `${method} ${httpTargetWithoutQueryFragment}`;\n\n // We use the plain tracer.startSpan here so we can pass the span kind\n const span = tracer.startSpan(bestEffortTransactionName, {\n kind: SpanKind.SERVER,\n attributes: {\n // Sentry specific attributes\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'http.server',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.http',\n 'sentry.http.prefetch': isKnownPrefetchRequest(request) || undefined,\n // Old Semantic Conventions attributes - added for compatibility with what `@opentelemetry/instrumentation-http` output before\n 'http.url': fullUrl,\n 'http.method': normalizedRequest.method,\n 'http.target': urlObj ? `${urlObj.pathname}${urlObj.search}` : httpTargetWithoutQueryFragment,\n 'http.host': host,\n 'net.host.name': hostname,\n 'http.client_ip': typeof ips === 'string' ? ips.split(',')[0] : undefined,\n 'http.user_agent': userAgent,\n 'http.scheme': scheme,\n 'http.flavor': httpVersion,\n 'net.transport': httpVersion?.toUpperCase() === 'QUIC' ? 'ip_udp' : 'ip_tcp',\n ...getRequestContentLengthAttribute(request),\n ...httpHeadersToSpanAttributes(\n normalizedRequest.headers || {},\n client.getOptions().sendDefaultPii ?? false,\n ),\n },\n });\n\n // TODO v11: Remove the following three hooks, only onSpanCreated should remain\n requestHook?.(span, request);\n responseHook?.(span, response);\n applyCustomAttributesOnSpan?.(span, request, response);\n onSpanCreated?.(span, request, response);\n\n const rpcMetadata = {\n type: RPCType.HTTP,\n span,\n };\n\n return context.with(setRPCMetadata(trace.setSpan(context.active(), span), rpcMetadata), () => {\n context.bind(context.active(), request);\n context.bind(context.active(), response);\n\n // Ensure we only end the span once\n // E.g. error can be emitted before close is emitted\n let isEnded = false;\n function endSpan(status) {\n if (isEnded) {\n return;\n }\n\n isEnded = true;\n\n const newAttributes = getIncomingRequestAttributesOnResponse(request, response);\n span.setAttributes(newAttributes);\n span.setStatus(status);\n span.end();\n\n // Update the transaction name if the route has changed\n const route = newAttributes['http.route'];\n if (route) {\n getIsolationScope().setTransactionName(`${request.method?.toUpperCase() || 'GET'} ${route}`);\n }\n }\n\n response.on('close', () => {\n endSpan(getSpanStatusFromHttpCode(response.statusCode));\n });\n response.on(errorMonitor, () => {\n const httpStatus = getSpanStatusFromHttpCode(response.statusCode);\n // Ensure we def. have an error status here\n endSpan(httpStatus.code === SPAN_STATUS_ERROR ? httpStatus : { code: SPAN_STATUS_ERROR });\n });\n\n return next();\n });\n };\n\n addStartSpanCallback(request, startSpan);\n });\n },\n processEvent(event) {\n // Drop transaction if it has a status code that should be ignored\n if (event.type === 'transaction') {\n const statusCode = event.contexts?.trace?.data?.['http.response.status_code'];\n if (typeof statusCode === 'number') {\n const shouldDrop = shouldFilterStatusCode(statusCode, ignoreStatusCodes);\n if (shouldDrop) {\n DEBUG_BUILD && debug.log('Dropping transaction due to status code', statusCode);\n return null;\n }\n }\n }\n\n return event;\n },\n afterAllSetup(client) {\n if (!DEBUG_BUILD) {\n return;\n }\n\n if (client.getIntegrationByName('Http')) {\n debug.warn(\n 'It seems that you have manually added `httpServerSpansIntergation` while `httpIntegration` is also present. Make sure to remove `httpIntegration` when adding `httpServerSpansIntegration`.',\n );\n }\n\n if (!client.getIntegrationByName('Http.Server')) {\n debug.error(\n 'It seems that you have manually added `httpServerSpansIntergation` without adding `httpServerIntegration`. This is a requiement for spans to be created - please add the `httpServerIntegration` integration.',\n );\n }\n },\n };\n}) ;\n\n/**\n * This integration emits spans for incoming requests handled via the node `http` module.\n * It requires the `httpServerIntegration` to be present.\n */\nconst httpServerSpansIntegration = _httpServerSpansIntegration\n\n;\n\nfunction isKnownPrefetchRequest(req) {\n // Currently only handles Next.js prefetch requests but may check other frameworks in the future.\n return req.headers['next-router-prefetch'] === '1';\n}\n\n/**\n * Check if a request is for a common static asset that should be ignored by default.\n *\n * Only exported for tests.\n */\nfunction isStaticAssetRequest(urlPath) {\n const path = stripUrlQueryAndFragment(urlPath);\n // Common static file extensions\n if (path.match(/\\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/)) {\n return true;\n }\n\n // Common metadata files\n if (path.match(/^\\/(robots\\.txt|sitemap\\.xml|manifest\\.json|browserconfig\\.xml)$/)) {\n return true;\n }\n\n return false;\n}\n\nfunction shouldIgnoreSpansForIncomingRequest(\n request,\n {\n ignoreStaticAssets,\n ignoreIncomingRequests,\n }\n\n,\n) {\n if (isTracingSuppressed(context.active())) {\n return true;\n }\n\n // request.url is the only property that holds any information about the url\n // it only consists of the URL path and query string (if any)\n const urlPath = request.url;\n\n const method = request.method?.toUpperCase();\n // We do not capture OPTIONS/HEAD requests as spans\n if (method === 'OPTIONS' || method === 'HEAD' || !urlPath) {\n return true;\n }\n\n // Default static asset filtering\n if (ignoreStaticAssets && method === 'GET' && isStaticAssetRequest(urlPath)) {\n return true;\n }\n\n if (ignoreIncomingRequests?.(urlPath, request)) {\n return true;\n }\n\n return false;\n}\n\nfunction getRequestContentLengthAttribute(request) {\n const length = getContentLength(request.headers);\n if (length == null) {\n return {};\n }\n\n if (isCompressed(request.headers)) {\n return {\n ['http.request_content_length']: length,\n };\n } else {\n return {\n ['http.request_content_length_uncompressed']: length,\n };\n }\n}\n\nfunction getContentLength(headers) {\n const contentLengthHeader = headers['content-length'];\n if (contentLengthHeader === undefined) return null;\n\n const contentLength = parseInt(contentLengthHeader, 10);\n if (isNaN(contentLength)) return null;\n\n return contentLength;\n}\n\nfunction isCompressed(headers) {\n const encoding = headers['content-encoding'];\n\n return !!encoding && encoding !== 'identity';\n}\n\nfunction getIncomingRequestAttributesOnResponse(request, response) {\n // take socket from the request,\n // since it may be detached from the response object in keep-alive mode\n const { socket } = request;\n const { statusCode, statusMessage } = response;\n\n const newAttributes = {\n [ATTR_HTTP_RESPONSE_STATUS_CODE]: statusCode,\n // eslint-disable-next-line deprecation/deprecation\n [SEMATTRS_HTTP_STATUS_CODE]: statusCode,\n 'http.status_text': statusMessage?.toUpperCase(),\n };\n\n const rpcMetadata = getRPCMetadata(context.active());\n if (socket) {\n const { localAddress, localPort, remoteAddress, remotePort } = socket;\n // eslint-disable-next-line deprecation/deprecation\n newAttributes[SEMATTRS_NET_HOST_IP] = localAddress;\n // eslint-disable-next-line deprecation/deprecation\n newAttributes[SEMATTRS_NET_HOST_PORT] = localPort;\n // eslint-disable-next-line deprecation/deprecation\n newAttributes[SEMATTRS_NET_PEER_IP] = remoteAddress;\n newAttributes['net.peer.port'] = remotePort;\n }\n // eslint-disable-next-line deprecation/deprecation\n newAttributes[SEMATTRS_HTTP_STATUS_CODE] = statusCode;\n newAttributes['http.status_text'] = (statusMessage || '').toUpperCase();\n\n if (rpcMetadata?.type === RPCType.HTTP && rpcMetadata.route !== undefined) {\n const routeName = rpcMetadata.route;\n newAttributes[ATTR_HTTP_ROUTE] = routeName;\n }\n\n return newAttributes;\n}\n\n/**\n * If the given status code should be filtered for the given list of status codes/ranges.\n */\nfunction shouldFilterStatusCode(statusCode, dropForStatusCodes) {\n return dropForStatusCodes.some(code => {\n if (typeof code === 'number') {\n return code === statusCode;\n }\n\n const [min, max] = code;\n return statusCode >= min && statusCode <= max;\n });\n}\n\nexport { httpServerSpansIntegration, isStaticAssetRequest };\n//# sourceMappingURL=httpServerSpansIntegration.js.map\n", - "/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n", - "import { subscribe } from 'node:diagnostics_channel';\nimport { createContextKey, context, propagation } from '@opentelemetry/api';\nimport { debug, addNonEnumerableProperty, getClient, getIsolationScope, httpRequestToRequestData, stripUrlQueryAndFragment, withIsolationScope, generateSpanId, _INTERNAL_safeMathRandom, generateTraceId, getCurrentScope } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { patchRequestToCaptureBody } from '../../utils/captureRequestBody.js';\n\nconst HTTP_SERVER_INSTRUMENTED_KEY = createContextKey('sentry_http_server_instrumented');\nconst INTEGRATION_NAME = 'Http.Server';\n\nconst clientToRequestSessionAggregatesMap = new Map\n\n();\n\n// We keep track of emit functions we wrapped, to avoid double wrapping\n// We do this instead of putting a non-enumerable property on the function, because\n// sometimes the property seems to be migrated to forks of the emit function, which we do not want to happen\n// This was the case in the nestjs-distributed-tracing E2E test\nconst wrappedEmitFns = new WeakSet();\n\n/**\n * Add a callback to the request object that will be called when the request is started.\n * The callback will receive the next function to continue processing the request.\n */\nfunction addStartSpanCallback(request, callback) {\n addNonEnumerableProperty(request, '_startSpanCallback', new WeakRef(callback));\n}\n\nconst _httpServerIntegration = ((options = {}) => {\n const _options = {\n sessions: options.sessions ?? true,\n sessionFlushingDelayMS: options.sessionFlushingDelayMS ?? 60000,\n maxRequestBodySize: options.maxRequestBodySize ?? 'medium',\n ignoreRequestBody: options.ignoreRequestBody,\n };\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n const onHttpServerRequestStart = ((_data) => {\n const data = _data ;\n\n instrumentServer(data.server, _options);\n }) ;\n\n subscribe('http.server.request.start', onHttpServerRequestStart);\n },\n afterAllSetup(client) {\n if (DEBUG_BUILD && client.getIntegrationByName('Http')) {\n debug.warn(\n 'It seems that you have manually added `httpServerIntegration` while `httpIntegration` is also present. Make sure to remove `httpServerIntegration` when adding `httpIntegration`.',\n );\n }\n },\n };\n}) ;\n\n/**\n * This integration handles request isolation, trace continuation and other core Sentry functionality around incoming http requests\n * handled via the node `http` module.\n *\n * This version uses OpenTelemetry for context propagation and span management.\n *\n * @see {@link ../../light/integrations/httpServerIntegration.ts} for the lightweight version without OpenTelemetry\n */\nconst httpServerIntegration = _httpServerIntegration\n\n;\n\n/**\n * Instrument a server to capture incoming requests.\n *\n */\nfunction instrumentServer(\n server,\n {\n ignoreRequestBody,\n maxRequestBodySize,\n sessions,\n sessionFlushingDelayMS,\n }\n\n,\n) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const originalEmit = server.emit;\n\n if (wrappedEmitFns.has(originalEmit)) {\n return;\n }\n\n const newEmit = new Proxy(originalEmit, {\n apply(target, thisArg, args) {\n // Only traces request events\n if (args[0] !== 'request') {\n return target.apply(thisArg, args);\n }\n\n const client = getClient();\n\n // Make sure we do not double execute our wrapper code, for edge cases...\n // Without this check, if we double-wrap emit, for whatever reason, you'd get two http.server spans (one the children of the other)\n if (context.active().getValue(HTTP_SERVER_INSTRUMENTED_KEY) || !client) {\n return target.apply(thisArg, args);\n }\n\n DEBUG_BUILD && debug.log(INTEGRATION_NAME, 'Handling incoming request');\n\n const isolationScope = getIsolationScope().clone();\n const request = args[1] ;\n const response = args[2] ;\n\n const normalizedRequest = httpRequestToRequestData(request);\n\n // request.ip is non-standard but some frameworks set this\n const ipAddress = (request ).ip || request.socket?.remoteAddress;\n\n const url = request.url || '/';\n if (maxRequestBodySize !== 'none' && !ignoreRequestBody?.(url, request)) {\n patchRequestToCaptureBody(request, isolationScope, maxRequestBodySize, INTEGRATION_NAME);\n }\n\n // Update the isolation scope, isolate this request\n isolationScope.setSDKProcessingMetadata({ normalizedRequest, ipAddress });\n\n // attempt to update the scope's `transactionName` based on the request URL\n // Ideally, framework instrumentations coming after the HttpInstrumentation\n // update the transactionName once we get a parameterized route.\n const httpMethod = (request.method || 'GET').toUpperCase();\n const httpTargetWithoutQueryFragment = stripUrlQueryAndFragment(url);\n\n const bestEffortTransactionName = `${httpMethod} ${httpTargetWithoutQueryFragment}`;\n\n isolationScope.setTransactionName(bestEffortTransactionName);\n\n if (sessions && client) {\n recordRequestSession(client, {\n requestIsolationScope: isolationScope,\n response,\n sessionFlushingDelayMS: sessionFlushingDelayMS ?? 60000,\n });\n }\n\n return withIsolationScope(isolationScope, () => {\n const newPropagationContext = {\n traceId: generateTraceId(),\n sampleRand: _INTERNAL_safeMathRandom(),\n propagationSpanId: generateSpanId(),\n };\n // - Set a fresh propagation context so each request gets a unique traceId.\n // When there are incoming trace headers, propagation.extract() below sets a remote\n // span on the OTel context which takes precedence in getTraceContextForScope().\n // - We can write directly to the current scope here because it is forked implicitly via\n // `context.with` in `withIsolationScope` (See `SentryContextManager`).\n // - explicitly making a deep copy to avoid mutation of original PC on the other scope\n getCurrentScope().setPropagationContext({ ...newPropagationContext });\n isolationScope.setPropagationContext({ ...newPropagationContext });\n\n const ctx = propagation\n .extract(context.active(), normalizedRequest.headers)\n .setValue(HTTP_SERVER_INSTRUMENTED_KEY, true);\n\n return context.with(ctx, () => {\n // This is used (optionally) by the httpServerSpansIntegration to attach _startSpanCallback to the request object\n client.emit('httpServerRequest', request, response, normalizedRequest);\n\n const callback = (request )._startSpanCallback?.deref();\n if (callback) {\n return callback(() => target.apply(thisArg, args));\n }\n return target.apply(thisArg, args);\n });\n });\n },\n });\n\n wrappedEmitFns.add(newEmit);\n server.emit = newEmit;\n}\n\n/**\n * Starts a session and tracks it in the context of a given isolation scope.\n * When the passed response is finished, the session is put into a task and is\n * aggregated with other sessions that may happen in a certain time window\n * (sessionFlushingDelayMs).\n *\n * The sessions are always aggregated by the client that is on the current scope\n * at the time of ending the response (if there is one).\n */\n// Exported for unit tests\nfunction recordRequestSession(\n client,\n {\n requestIsolationScope,\n response,\n sessionFlushingDelayMS,\n }\n\n,\n) {\n requestIsolationScope.setSDKProcessingMetadata({\n requestSession: { status: 'ok' },\n });\n response.once('close', () => {\n const requestSession = requestIsolationScope.getScopeData().sdkProcessingMetadata.requestSession;\n\n if (client && requestSession) {\n DEBUG_BUILD && debug.log(`Recorded request session with status: ${requestSession.status}`);\n\n const roundedDate = new Date();\n roundedDate.setSeconds(0, 0);\n const dateBucketKey = roundedDate.toISOString();\n\n const existingClientAggregate = clientToRequestSessionAggregatesMap.get(client);\n const bucket = existingClientAggregate?.[dateBucketKey] || { exited: 0, crashed: 0, errored: 0 };\n bucket[({ ok: 'exited', crashed: 'crashed', errored: 'errored' } )[requestSession.status]]++;\n\n if (existingClientAggregate) {\n existingClientAggregate[dateBucketKey] = bucket;\n } else {\n DEBUG_BUILD && debug.log('Opened new request session aggregate.');\n const newClientAggregate = { [dateBucketKey]: bucket };\n clientToRequestSessionAggregatesMap.set(client, newClientAggregate);\n\n const flushPendingClientAggregates = () => {\n clearTimeout(timeout);\n unregisterClientFlushHook();\n clientToRequestSessionAggregatesMap.delete(client);\n\n const aggregatePayload = Object.entries(newClientAggregate).map(\n ([timestamp, value]) => ({\n started: timestamp,\n exited: value.exited,\n errored: value.errored,\n crashed: value.crashed,\n }),\n );\n client.sendSession({ aggregates: aggregatePayload });\n };\n\n const unregisterClientFlushHook = client.on('flush', () => {\n DEBUG_BUILD && debug.log('Sending request session aggregate due to client flush');\n flushPendingClientAggregates();\n });\n const timeout = setTimeout(() => {\n DEBUG_BUILD && debug.log('Sending request session aggregate due to flushing schedule');\n flushPendingClientAggregates();\n }, sessionFlushingDelayMS).unref();\n }\n }\n });\n}\n\nexport { addStartSpanCallback, httpServerIntegration, recordRequestSession };\n//# sourceMappingURL=httpServerIntegration.js.map\n", - "const INSTRUMENTATION_NAME = '@sentry/instrumentation-http';\n\n/** We only want to capture request bodies up to 1mb. */\nconst MAX_BODY_BYTE_LENGTH = 1024 * 1024;\n\nexport { INSTRUMENTATION_NAME, MAX_BODY_BYTE_LENGTH };\n//# sourceMappingURL=constants.js.map\n", - "import { debug } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { MAX_BODY_BYTE_LENGTH } from '../integrations/http/constants.js';\n\n/**\n * This method patches the request object to capture the body.\n * Instead of actually consuming the streamed body ourselves, which has potential side effects,\n * we monkey patch `req.on('data')` to intercept the body chunks.\n * This way, we only read the body if the user also consumes the body, ensuring we do not change any behavior in unexpected ways.\n */\nfunction patchRequestToCaptureBody(\n req,\n isolationScope,\n maxIncomingRequestBodySize,\n integrationName,\n) {\n let bodyByteLength = 0;\n const chunks = [];\n\n DEBUG_BUILD && debug.log(integrationName, 'Patching request.on');\n\n /**\n * We need to keep track of the original callbacks, in order to be able to remove listeners again.\n * Since `off` depends on having the exact same function reference passed in, we need to be able to map\n * original listeners to our wrapped ones.\n */\n const callbackMap = new WeakMap();\n\n const maxBodySize =\n maxIncomingRequestBodySize === 'small'\n ? 1000\n : maxIncomingRequestBodySize === 'medium'\n ? 10000\n : MAX_BODY_BYTE_LENGTH;\n\n try {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n req.on = new Proxy(req.on, {\n apply: (target, thisArg, args) => {\n const [event, listener, ...restArgs] = args;\n\n if (event === 'data') {\n DEBUG_BUILD &&\n debug.log(integrationName, `Handling request.on(\"data\") with maximum body size of ${maxBodySize}b`);\n\n const callback = new Proxy(listener, {\n apply: (target, thisArg, args) => {\n try {\n const chunk = args[0] ;\n const bufferifiedChunk = Buffer.from(chunk);\n\n if (bodyByteLength < maxBodySize) {\n chunks.push(bufferifiedChunk);\n bodyByteLength += bufferifiedChunk.byteLength;\n } else if (DEBUG_BUILD) {\n debug.log(\n integrationName,\n `Dropping request body chunk because maximum body length of ${maxBodySize}b is exceeded.`,\n );\n }\n } catch (_err) {\n DEBUG_BUILD && debug.error(integrationName, 'Encountered error while storing body chunk.');\n }\n\n return Reflect.apply(target, thisArg, args);\n },\n });\n\n callbackMap.set(listener, callback);\n\n return Reflect.apply(target, thisArg, [event, callback, ...restArgs]);\n }\n\n return Reflect.apply(target, thisArg, args);\n },\n });\n\n // Ensure we also remove callbacks correctly\n // eslint-disable-next-line @typescript-eslint/unbound-method\n req.off = new Proxy(req.off, {\n apply: (target, thisArg, args) => {\n const [, listener] = args;\n\n const callback = callbackMap.get(listener);\n if (callback) {\n callbackMap.delete(listener);\n\n const modifiedArgs = args.slice();\n modifiedArgs[1] = callback;\n return Reflect.apply(target, thisArg, modifiedArgs);\n }\n\n return Reflect.apply(target, thisArg, args);\n },\n });\n\n req.on('end', () => {\n try {\n const body = Buffer.concat(chunks).toString('utf-8');\n if (body) {\n // Using Buffer.byteLength here, because the body may contain characters that are not 1 byte long\n const bodyByteLength = Buffer.byteLength(body, 'utf-8');\n const truncatedBody =\n bodyByteLength > maxBodySize\n ? `${Buffer.from(body)\n .subarray(0, maxBodySize - 3)\n .toString('utf-8')}...`\n : body;\n\n isolationScope.setSDKProcessingMetadata({ normalizedRequest: { data: truncatedBody } });\n }\n } catch (error) {\n if (DEBUG_BUILD) {\n debug.error(integrationName, 'Error building captured request body', error);\n }\n }\n });\n } catch (error) {\n if (DEBUG_BUILD) {\n debug.error(integrationName, 'Error patching request to capture body', error);\n }\n }\n}\n\nexport { patchRequestToCaptureBody };\n//# sourceMappingURL=captureRequestBody.js.map\n", - "import { subscribe, unsubscribe } from 'node:diagnostics_channel';\nimport { errorMonitor } from 'node:events';\nimport { context, trace, SpanStatusCode } from '@opentelemetry/api';\nimport { isTracingSuppressed } from '@opentelemetry/core';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { ATTR_URL_FULL, ATTR_USER_AGENT_ORIGINAL, ATTR_NETWORK_PEER_ADDRESS, ATTR_NETWORK_PEER_PORT, SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH, SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED, ATTR_NETWORK_TRANSPORT, ATTR_NETWORK_PROTOCOL_VERSION, ATTR_HTTP_RESPONSE_STATUS_CODE } from '@opentelemetry/semantic-conventions';\nimport { SDK_VERSION, LRUMap, startInactiveSpan, debug, getSpanStatusFromHttpCode, getHttpSpanDetailsFromUrlObject, parseStringToURLObject, SEMANTIC_ATTRIBUTE_SENTRY_OP } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { INSTRUMENTATION_NAME } from './constants.js';\nimport { addRequestBreadcrumb, addTracePropagationHeadersToOutgoingRequest, getRequestOptions, getClientRequestUrl } from '../../utils/outgoingHttpRequest.js';\n\n/**\n * This custom HTTP instrumentation handles outgoing HTTP requests.\n *\n * It provides:\n * - Breadcrumbs for all outgoing requests\n * - Trace propagation headers (when enabled)\n * - Span creation for outgoing requests (when createSpansForOutgoingRequests is enabled)\n *\n * Span creation requires Node 22+ and uses diagnostic channels to avoid monkey-patching.\n * By default, this is only enabled in the node SDK, not in node-core or other runtime SDKs.\n *\n * Important note: Contrary to other OTEL instrumentation, this one cannot be unwrapped.\n *\n * This is heavily inspired & adapted from:\n * https://github.com/open-telemetry/opentelemetry-js/blob/f8ab5592ddea5cba0a3b33bf8d74f27872c0367f/experimental/packages/opentelemetry-instrumentation-http/src/http.ts\n */\nclass SentryHttpInstrumentation extends InstrumentationBase {\n\n constructor(config = {}) {\n super(INSTRUMENTATION_NAME, SDK_VERSION, config);\n\n this._propagationDecisionMap = new LRUMap(100);\n this._ignoreOutgoingRequestsMap = new WeakMap();\n }\n\n /** @inheritdoc */\n init() {\n // We register handlers when either http or https is instrumented\n // but we only want to register them once, whichever is loaded first\n let hasRegisteredHandlers = false;\n\n const onHttpClientResponseFinish = ((_data) => {\n const data = _data ;\n this._onOutgoingRequestFinish(data.request, data.response);\n }) ;\n\n const onHttpClientRequestError = ((_data) => {\n const data = _data ;\n this._onOutgoingRequestFinish(data.request, undefined);\n }) ;\n\n const onHttpClientRequestCreated = ((_data) => {\n const data = _data ;\n this._onOutgoingRequestCreated(data.request);\n }) ;\n\n const wrap = (moduleExports) => {\n if (hasRegisteredHandlers) {\n return moduleExports;\n }\n\n hasRegisteredHandlers = true;\n\n subscribe('http.client.response.finish', onHttpClientResponseFinish);\n\n // When an error happens, we still want to have a breadcrumb\n // In this case, `http.client.response.finish` is not triggered\n subscribe('http.client.request.error', onHttpClientRequestError);\n\n // NOTE: This channel only exists since Node 22.12+\n // Before that, outgoing requests are not patched\n // and trace headers are not propagated, sadly.\n if (this.getConfig().propagateTraceInOutgoingRequests || this.getConfig().createSpansForOutgoingRequests) {\n subscribe('http.client.request.created', onHttpClientRequestCreated);\n }\n return moduleExports;\n };\n\n const unwrap = () => {\n unsubscribe('http.client.response.finish', onHttpClientResponseFinish);\n unsubscribe('http.client.request.error', onHttpClientRequestError);\n unsubscribe('http.client.request.created', onHttpClientRequestCreated);\n };\n\n /**\n * You may be wondering why we register these diagnostics-channel listeners\n * in such a convoluted way (as InstrumentationNodeModuleDefinition...)˝,\n * instead of simply subscribing to the events once in here.\n * The reason for this is timing semantics: These functions are called once the http or https module is loaded.\n * If we'd subscribe before that, there seem to be conflicts with the OTEL native instrumentation in some scenarios,\n * especially the \"import-on-top\" pattern of setting up ESM applications.\n */\n return [\n new InstrumentationNodeModuleDefinition('http', ['*'], wrap, unwrap),\n new InstrumentationNodeModuleDefinition('https', ['*'], wrap, unwrap),\n ];\n }\n\n /**\n * Start a span for an outgoing request.\n * The span wraps the callback of the request, and ends when the response is finished.\n */\n _startSpanForOutgoingRequest(request) {\n // We monkey-patch `req.once('response'), which is used to trigger the callback of the request\n // eslint-disable-next-line @typescript-eslint/unbound-method, deprecation/deprecation\n const originalOnce = request.once;\n\n const [name, attributes] = _getOutgoingRequestSpanData(request);\n\n const span = startInactiveSpan({\n name,\n attributes,\n onlyIfParent: true,\n });\n\n this.getConfig().outgoingRequestHook?.(span, request);\n\n const newOnce = new Proxy(originalOnce, {\n apply(target, thisArg, args) {\n const [event] = args;\n if (event !== 'response') {\n return target.apply(thisArg, args);\n }\n\n const parentContext = context.active();\n const requestContext = trace.setSpan(parentContext, span);\n\n return context.with(requestContext, () => {\n return target.apply(thisArg, args);\n });\n },\n });\n\n // eslint-disable-next-line deprecation/deprecation\n request.once = newOnce;\n\n /**\n * Determines if the request has errored or the response has ended/errored.\n */\n let responseFinished = false;\n\n const endSpan = (status) => {\n if (responseFinished) {\n return;\n }\n responseFinished = true;\n\n span.setStatus(status);\n span.end();\n };\n\n request.prependListener('response', response => {\n if (request.listenerCount('response') <= 1) {\n response.resume();\n }\n\n context.bind(context.active(), response);\n\n const additionalAttributes = _getOutgoingRequestEndedSpanData(response);\n span.setAttributes(additionalAttributes);\n\n this.getConfig().outgoingResponseHook?.(span, response);\n this.getConfig().outgoingRequestApplyCustomAttributes?.(span, request, response);\n\n const endHandler = (forceError = false) => {\n this._diag.debug('outgoingRequest on end()');\n\n const status =\n // eslint-disable-next-line deprecation/deprecation\n forceError || typeof response.statusCode !== 'number' || (response.aborted && !response.complete)\n ? { code: SpanStatusCode.ERROR }\n : getSpanStatusFromHttpCode(response.statusCode);\n\n endSpan(status);\n };\n\n response.on('end', () => {\n endHandler();\n });\n response.on(errorMonitor, error => {\n this._diag.debug('outgoingRequest on response error()', error);\n endHandler(true);\n });\n });\n\n // Fallback if proper response end handling above fails\n request.on('close', () => {\n endSpan({ code: SpanStatusCode.UNSET });\n });\n request.on(errorMonitor, error => {\n this._diag.debug('outgoingRequest on request error()', error);\n endSpan({ code: SpanStatusCode.ERROR });\n });\n\n return span;\n }\n\n /**\n * This is triggered when an outgoing request finishes.\n * It has access to the final request and response objects.\n */\n _onOutgoingRequestFinish(request, response) {\n DEBUG_BUILD && debug.log(INSTRUMENTATION_NAME, 'Handling finished outgoing request');\n\n const _breadcrumbs = this.getConfig().breadcrumbs;\n const breadCrumbsEnabled = typeof _breadcrumbs === 'undefined' ? true : _breadcrumbs;\n\n // Note: We cannot rely on the map being set by `_onOutgoingRequestCreated`, because that is not run in Node <22\n const shouldIgnore = this._ignoreOutgoingRequestsMap.get(request) ?? this._shouldIgnoreOutgoingRequest(request);\n this._ignoreOutgoingRequestsMap.set(request, shouldIgnore);\n\n if (breadCrumbsEnabled && !shouldIgnore) {\n addRequestBreadcrumb(request, response);\n }\n }\n\n /**\n * This is triggered when an outgoing request is created.\n * It creates a span (if enabled) and propagates trace headers within the span's context,\n * so downstream services link to the outgoing HTTP span rather than its parent.\n */\n _onOutgoingRequestCreated(request) {\n DEBUG_BUILD && debug.log(INSTRUMENTATION_NAME, 'Handling outgoing request created');\n\n const shouldIgnore = this._ignoreOutgoingRequestsMap.get(request) ?? this._shouldIgnoreOutgoingRequest(request);\n this._ignoreOutgoingRequestsMap.set(request, shouldIgnore);\n\n if (shouldIgnore) {\n return;\n }\n\n const shouldCreateSpan = this.getConfig().createSpansForOutgoingRequests && (this.getConfig().spans ?? true);\n const shouldPropagate = this.getConfig().propagateTraceInOutgoingRequests;\n\n if (shouldCreateSpan) {\n const span = this._startSpanForOutgoingRequest(request);\n\n // Propagate headers within the span's context so the sentry-trace header\n // contains the outgoing span's ID, not the parent span's ID.\n // Only do this if the span is recording (has a parent) - otherwise the non-recording\n // span would produce all-zero trace IDs instead of using the scope's propagation context.\n if (shouldPropagate && span.isRecording()) {\n const requestContext = trace.setSpan(context.active(), span);\n context.with(requestContext, () => {\n addTracePropagationHeadersToOutgoingRequest(request, this._propagationDecisionMap);\n });\n } else if (shouldPropagate) {\n addTracePropagationHeadersToOutgoingRequest(request, this._propagationDecisionMap);\n }\n } else if (shouldPropagate) {\n addTracePropagationHeadersToOutgoingRequest(request, this._propagationDecisionMap);\n }\n }\n\n /**\n * Check if the given outgoing request should be ignored.\n */\n _shouldIgnoreOutgoingRequest(request) {\n if (isTracingSuppressed(context.active())) {\n return true;\n }\n\n const ignoreOutgoingRequests = this.getConfig().ignoreOutgoingRequests;\n\n if (!ignoreOutgoingRequests) {\n return false;\n }\n\n const options = getRequestOptions(request);\n const url = getClientRequestUrl(request);\n return ignoreOutgoingRequests(url, options);\n }\n}\n\nfunction _getOutgoingRequestSpanData(request) {\n const url = getClientRequestUrl(request);\n\n const [name, attributes] = getHttpSpanDetailsFromUrlObject(\n parseStringToURLObject(url),\n 'client',\n 'auto.http.otel.http',\n request,\n );\n\n const userAgent = request.getHeader('user-agent');\n\n return [\n name,\n {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'http.client',\n 'otel.kind': 'CLIENT',\n [ATTR_USER_AGENT_ORIGINAL]: userAgent,\n [ATTR_URL_FULL]: url,\n 'http.url': url,\n 'http.method': request.method,\n 'http.target': request.path || '/',\n 'net.peer.name': request.host,\n 'http.host': request.getHeader('host'),\n ...attributes,\n },\n ];\n}\n\nfunction _getOutgoingRequestEndedSpanData(response) {\n const { statusCode, statusMessage, httpVersion, socket } = response;\n\n const transport = httpVersion.toUpperCase() !== 'QUIC' ? 'ip_tcp' : 'ip_udp';\n\n const additionalAttributes = {\n [ATTR_HTTP_RESPONSE_STATUS_CODE]: statusCode,\n [ATTR_NETWORK_PROTOCOL_VERSION]: httpVersion,\n 'http.flavor': httpVersion,\n [ATTR_NETWORK_TRANSPORT]: transport,\n 'net.transport': transport,\n ['http.status_text']: statusMessage?.toUpperCase(),\n 'http.status_code': statusCode,\n ...getResponseContentLengthAttributes(response),\n };\n\n if (socket) {\n const { remoteAddress, remotePort } = socket;\n\n additionalAttributes[ATTR_NETWORK_PEER_ADDRESS] = remoteAddress;\n additionalAttributes[ATTR_NETWORK_PEER_PORT] = remotePort;\n additionalAttributes['net.peer.ip'] = remoteAddress;\n additionalAttributes['net.peer.port'] = remotePort;\n }\n\n return additionalAttributes;\n}\n\nfunction getResponseContentLengthAttributes(response) {\n const length = getContentLength(response.headers);\n if (length == null) {\n return {};\n }\n\n if (isCompressed(response.headers)) {\n // eslint-disable-next-line deprecation/deprecation\n return { [SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH]: length };\n } else {\n // eslint-disable-next-line deprecation/deprecation\n return { [SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED]: length };\n }\n}\n\nfunction getContentLength(headers) {\n const contentLengthHeader = headers['content-length'];\n if (typeof contentLengthHeader === 'number') {\n return contentLengthHeader;\n }\n if (typeof contentLengthHeader !== 'string') {\n return undefined;\n }\n\n const contentLength = parseInt(contentLengthHeader, 10);\n if (isNaN(contentLength)) {\n return undefined;\n }\n\n return contentLength;\n}\n\nfunction isCompressed(headers) {\n const encoding = headers['content-encoding'];\n\n return !!encoding && encoding !== 'identity';\n}\n\nexport { SentryHttpInstrumentation };\n//# sourceMappingURL=SentryHttpInstrumentation.js.map\n", - "import { parseBaggageHeader, objectToBaggageHeader } from '@sentry/core';\n\n/**\n * Merge two baggage headers into one.\n * - Sentry-specific entries (keys starting with \"sentry-\") from the new baggage take precedence\n * - Non-Sentry entries from existing baggage take precedence\n * The order of the existing baggage will be preserved, and new entries will be added to the end.\n *\n * This matches the behavior of OTEL's propagation.inject() which uses baggage.setEntry()\n * to overwrite existing entries with the same key.\n */\nfunction mergeBaggageHeaders(\n existing,\n baggage,\n) {\n if (!existing) {\n return baggage;\n }\n\n const existingBaggageEntries = parseBaggageHeader(existing);\n const newBaggageEntries = parseBaggageHeader(baggage);\n\n if (!newBaggageEntries) {\n return existing;\n }\n\n // Start with existing entries, but Sentry entries from new baggage will overwrite\n const mergedBaggageEntries = { ...existingBaggageEntries };\n Object.entries(newBaggageEntries).forEach(([key, value]) => {\n // Sentry-specific keys always take precedence from new baggage\n // Non-Sentry keys only added if not already present\n if (key.startsWith('sentry-') || !mergedBaggageEntries[key]) {\n mergedBaggageEntries[key] = value;\n }\n });\n\n return objectToBaggageHeader(mergedBaggageEntries);\n}\n\nexport { mergeBaggageHeaders };\n//# sourceMappingURL=baggage.js.map\n", - "import { getBreadcrumbLogLevelFromHttpStatusCode, addBreadcrumb, getClient, shouldPropagateTraceForUrl, getTraceData, debug, isError, parseUrl, getSanitizedUrlString } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { mergeBaggageHeaders } from './baggage.js';\n\nconst LOG_PREFIX = '@sentry/instrumentation-http';\n\n/** Add a breadcrumb for outgoing requests. */\nfunction addRequestBreadcrumb(request, response) {\n const data = getBreadcrumbData(request);\n\n const statusCode = response?.statusCode;\n const level = getBreadcrumbLogLevelFromHttpStatusCode(statusCode);\n\n addBreadcrumb(\n {\n category: 'http',\n data: {\n status_code: statusCode,\n ...data,\n },\n type: 'http',\n level,\n },\n {\n event: 'response',\n request,\n response,\n },\n );\n}\n\n/**\n * Add trace propagation headers to an outgoing request.\n * This must be called _before_ the request is sent!\n */\n// eslint-disable-next-line complexity\nfunction addTracePropagationHeadersToOutgoingRequest(\n request,\n propagationDecisionMap,\n) {\n const url = getClientRequestUrl(request);\n\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() || {};\n const headersToAdd = shouldPropagateTraceForUrl(url, tracePropagationTargets, propagationDecisionMap)\n ? getTraceData({ propagateTraceparent })\n : undefined;\n\n if (!headersToAdd) {\n return;\n }\n\n const { 'sentry-trace': sentryTrace, baggage, traceparent } = headersToAdd;\n\n if (sentryTrace && !request.getHeader('sentry-trace')) {\n try {\n request.setHeader('sentry-trace', sentryTrace);\n DEBUG_BUILD && debug.log(LOG_PREFIX, 'Added sentry-trace header to outgoing request');\n } catch (error) {\n DEBUG_BUILD &&\n debug.error(\n LOG_PREFIX,\n 'Failed to add sentry-trace header to outgoing request:',\n isError(error) ? error.message : 'Unknown error',\n );\n }\n }\n\n if (traceparent && !request.getHeader('traceparent')) {\n try {\n request.setHeader('traceparent', traceparent);\n DEBUG_BUILD && debug.log(LOG_PREFIX, 'Added traceparent header to outgoing request');\n } catch (error) {\n DEBUG_BUILD &&\n debug.error(\n LOG_PREFIX,\n 'Failed to add traceparent header to outgoing request:',\n isError(error) ? error.message : 'Unknown error',\n );\n }\n }\n\n if (baggage) {\n const newBaggage = mergeBaggageHeaders(request.getHeader('baggage'), baggage);\n if (newBaggage) {\n try {\n request.setHeader('baggage', newBaggage);\n DEBUG_BUILD && debug.log(LOG_PREFIX, 'Added baggage header to outgoing request');\n } catch (error) {\n DEBUG_BUILD &&\n debug.error(\n LOG_PREFIX,\n 'Failed to add baggage header to outgoing request:',\n isError(error) ? error.message : 'Unknown error',\n );\n }\n }\n }\n}\n\nfunction getBreadcrumbData(request) {\n try {\n // `request.host` does not contain the port, but the host header does\n const host = request.getHeader('host') || request.host;\n const url = new URL(request.path, `${request.protocol}//${host}`);\n const parsedUrl = parseUrl(url.toString());\n\n const data = {\n url: getSanitizedUrlString(parsedUrl),\n 'http.method': request.method || 'GET',\n };\n\n if (parsedUrl.search) {\n data['http.query'] = parsedUrl.search;\n }\n if (parsedUrl.hash) {\n data['http.fragment'] = parsedUrl.hash;\n }\n\n return data;\n } catch {\n return {};\n }\n}\n\n/** Convert an outgoing request to request options. */\nfunction getRequestOptions(request) {\n return {\n method: request.method,\n protocol: request.protocol,\n host: request.host,\n hostname: request.host,\n path: request.path,\n headers: request.getHeaders(),\n };\n}\n\n/**\n *\n */\nfunction getClientRequestUrl(request) {\n const hostname = request.getHeader('host') || request.host;\n const protocol = request.protocol;\n const path = request.path;\n\n return `${protocol}//${hostname}${path}`;\n}\n\nexport { addRequestBreadcrumb, addTracePropagationHeadersToOutgoingRequest, getClientRequestUrl, getRequestOptions };\n//# sourceMappingURL=outgoingHttpRequest.js.map\n", - "import { context } from '@opentelemetry/api';\nimport { isTracingSuppressed } from '@opentelemetry/core';\nimport { InstrumentationBase } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, LRUMap } from '@sentry/core';\nimport * as diagch from 'diagnostics_channel';\nimport { NODE_MAJOR, NODE_MINOR } from '../../nodeVersion.js';\nimport { addTracePropagationHeadersToFetchRequest, addFetchRequestBreadcrumb, getAbsoluteUrl } from '../../utils/outgoingFetchRequest.js';\n\n/**\n * This custom node-fetch instrumentation is used to instrument outgoing fetch requests.\n * It does not emit any spans.\n *\n * The reason this is isolated from the OpenTelemetry instrumentation is that users may overwrite this,\n * which would lead to Sentry not working as expected.\n *\n * This is heavily inspired & adapted from:\n * https://github.com/open-telemetry/opentelemetry-js-contrib/blob/28e209a9da36bc4e1f8c2b0db7360170ed46cb80/plugins/node/instrumentation-undici/src/undici.ts\n */\nclass SentryNodeFetchInstrumentation extends InstrumentationBase {\n // Keep ref to avoid https://github.com/nodejs/node/issues/42170 bug and for\n // unsubscribing.\n\n constructor(config = {}) {\n super('@sentry/instrumentation-node-fetch', SDK_VERSION, config);\n this._channelSubs = [];\n this._propagationDecisionMap = new LRUMap(100);\n this._ignoreOutgoingRequestsMap = new WeakMap();\n }\n\n /** No need to instrument files/modules. */\n init() {\n return undefined;\n }\n\n /** Disable the instrumentation. */\n disable() {\n super.disable();\n this._channelSubs.forEach(sub => sub.unsubscribe());\n this._channelSubs = [];\n }\n\n /** Enable the instrumentation. */\n enable() {\n // \"enabled\" handling is currently a bit messy with InstrumentationBase.\n // If constructed with `{enabled: false}`, this `.enable()` is still called,\n // and `this.getConfig().enabled !== this.isEnabled()`, creating confusion.\n //\n // For now, this class will setup for instrumenting if `.enable()` is\n // called, but use `this.getConfig().enabled` to determine if\n // instrumentation should be generated. This covers the more likely common\n // case of config being given a construction time, rather than later via\n // `instance.enable()`, `.disable()`, or `.setConfig()` calls.\n super.enable();\n\n // This method is called by the super-class constructor before ours is\n // called. So we need to ensure the property is initalized.\n this._channelSubs = this._channelSubs || [];\n\n // Avoid to duplicate subscriptions\n if (this._channelSubs.length > 0) {\n return;\n }\n\n this._subscribeToChannel('undici:request:create', this._onRequestCreated.bind(this));\n this._subscribeToChannel('undici:request:headers', this._onResponseHeaders.bind(this));\n }\n\n /**\n * This method is called when a request is created.\n * You can still mutate the request here before it is sent.\n */\n _onRequestCreated({ request }) {\n const config = this.getConfig();\n const enabled = config.enabled !== false;\n\n if (!enabled) {\n return;\n }\n\n const shouldIgnore = this._shouldIgnoreOutgoingRequest(request);\n // We store this decisision for later so we do not need to re-evaluate it\n // Additionally, the active context is not correct in _onResponseHeaders, so we need to make sure it is evaluated here\n this._ignoreOutgoingRequestsMap.set(request, shouldIgnore);\n\n if (shouldIgnore) {\n return;\n }\n\n if (config.tracePropagation !== false) {\n addTracePropagationHeadersToFetchRequest(request, this._propagationDecisionMap);\n }\n }\n\n /**\n * This method is called when a response is received.\n */\n _onResponseHeaders({ request, response }) {\n const config = this.getConfig();\n const enabled = config.enabled !== false;\n\n if (!enabled) {\n return;\n }\n\n const _breadcrumbs = config.breadcrumbs;\n const breadCrumbsEnabled = typeof _breadcrumbs === 'undefined' ? true : _breadcrumbs;\n\n const shouldIgnore = this._ignoreOutgoingRequestsMap.get(request);\n\n if (breadCrumbsEnabled && !shouldIgnore) {\n addFetchRequestBreadcrumb(request, response);\n }\n }\n\n /** Subscribe to a diagnostics channel. */\n _subscribeToChannel(\n diagnosticChannel,\n onMessage,\n ) {\n // `diagnostics_channel` had a ref counting bug until v18.19.0.\n // https://github.com/nodejs/node/pull/47520\n const useNewSubscribe = NODE_MAJOR > 18 || (NODE_MAJOR === 18 && NODE_MINOR >= 19);\n\n let unsubscribe;\n if (useNewSubscribe) {\n diagch.subscribe?.(diagnosticChannel, onMessage);\n unsubscribe = () => diagch.unsubscribe?.(diagnosticChannel, onMessage);\n } else {\n const channel = diagch.channel(diagnosticChannel);\n channel.subscribe(onMessage);\n unsubscribe = () => channel.unsubscribe(onMessage);\n }\n\n this._channelSubs.push({\n name: diagnosticChannel,\n unsubscribe,\n });\n }\n\n /**\n * Check if the given outgoing request should be ignored.\n */\n _shouldIgnoreOutgoingRequest(request) {\n if (isTracingSuppressed(context.active())) {\n return true;\n }\n\n // Add trace propagation headers\n const url = getAbsoluteUrl(request.origin, request.path);\n const ignoreOutgoingRequests = this.getConfig().ignoreOutgoingRequests;\n\n if (typeof ignoreOutgoingRequests !== 'function' || !url) {\n return false;\n }\n\n return ignoreOutgoingRequests(url);\n }\n}\n\nexport { SentryNodeFetchInstrumentation };\n//# sourceMappingURL=SentryNodeFetchInstrumentation.js.map\n", - "import { parseSemver } from '@sentry/core';\n\nconst NODE_VERSION = parseSemver(process.versions.node) ;\nconst NODE_MAJOR = NODE_VERSION.major;\nconst NODE_MINOR = NODE_VERSION.minor;\n\nexport { NODE_MAJOR, NODE_MINOR, NODE_VERSION };\n//# sourceMappingURL=nodeVersion.js.map\n", - "import { getClient, shouldPropagateTraceForUrl, getTraceData, getBreadcrumbLogLevelFromHttpStatusCode, addBreadcrumb, parseUrl, getSanitizedUrlString } from '@sentry/core';\nimport { mergeBaggageHeaders } from './baggage.js';\n\nconst SENTRY_TRACE_HEADER = 'sentry-trace';\nconst SENTRY_BAGGAGE_HEADER = 'baggage';\n\n// For baggage, we make sure to merge this into a possibly existing header\nconst BAGGAGE_HEADER_REGEX = /baggage: (.*)\\r\\n/;\n\n/**\n * Add trace propagation headers to an outgoing fetch/undici request.\n *\n * Checks if the request URL matches trace propagation targets,\n * then injects sentry-trace, traceparent, and baggage headers.\n */\n// eslint-disable-next-line complexity\nfunction addTracePropagationHeadersToFetchRequest(\n request,\n propagationDecisionMap,\n) {\n const url = getAbsoluteUrl(request.origin, request.path);\n\n // Manually add the trace headers, if it applies\n // Note: We do not use `propagation.inject()` here, because our propagator relies on an active span\n // Which we do not have in this case\n // The propagator _may_ overwrite this, but this should be fine as it is the same data\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() || {};\n const addedHeaders = shouldPropagateTraceForUrl(url, tracePropagationTargets, propagationDecisionMap)\n ? getTraceData({ propagateTraceparent })\n : undefined;\n\n if (!addedHeaders) {\n return;\n }\n\n const { 'sentry-trace': sentryTrace, baggage, traceparent } = addedHeaders;\n\n // We do not want to overwrite existing headers here\n // If the core UndiciInstrumentation is registered, it will already have set the headers\n // We do not want to add any then\n if (Array.isArray(request.headers)) {\n const requestHeaders = request.headers;\n\n // We do not want to overwrite existing header here, if it was already set\n if (sentryTrace && !requestHeaders.includes(SENTRY_TRACE_HEADER)) {\n requestHeaders.push(SENTRY_TRACE_HEADER, sentryTrace);\n }\n\n if (traceparent && !requestHeaders.includes('traceparent')) {\n requestHeaders.push('traceparent', traceparent);\n }\n\n // For baggage, we make sure to merge this into a possibly existing header\n const existingBaggagePos = requestHeaders.findIndex(header => header === SENTRY_BAGGAGE_HEADER);\n if (baggage && existingBaggagePos === -1) {\n requestHeaders.push(SENTRY_BAGGAGE_HEADER, baggage);\n } else if (baggage) {\n const existingBaggage = requestHeaders[existingBaggagePos + 1];\n const merged = mergeBaggageHeaders(existingBaggage, baggage);\n if (merged) {\n requestHeaders[existingBaggagePos + 1] = merged;\n }\n }\n } else {\n const requestHeaders = request.headers;\n // We do not want to overwrite existing header here, if it was already set\n if (sentryTrace && !requestHeaders.includes(`${SENTRY_TRACE_HEADER}:`)) {\n request.headers += `${SENTRY_TRACE_HEADER}: ${sentryTrace}\\r\\n`;\n }\n\n if (traceparent && !requestHeaders.includes('traceparent:')) {\n request.headers += `traceparent: ${traceparent}\\r\\n`;\n }\n\n const existingBaggage = request.headers.match(BAGGAGE_HEADER_REGEX)?.[1];\n if (baggage && !existingBaggage) {\n request.headers += `${SENTRY_BAGGAGE_HEADER}: ${baggage}\\r\\n`;\n } else if (baggage) {\n const merged = mergeBaggageHeaders(existingBaggage, baggage);\n if (merged) {\n request.headers = request.headers.replace(BAGGAGE_HEADER_REGEX, `baggage: ${merged}\\r\\n`);\n }\n }\n }\n}\n\n/** Add a breadcrumb for an outgoing fetch/undici request. */\nfunction addFetchRequestBreadcrumb(request, response) {\n const data = getBreadcrumbData(request);\n\n const statusCode = response.statusCode;\n const level = getBreadcrumbLogLevelFromHttpStatusCode(statusCode);\n\n addBreadcrumb(\n {\n category: 'http',\n data: {\n status_code: statusCode,\n ...data,\n },\n type: 'http',\n level,\n },\n {\n event: 'response',\n request,\n response,\n },\n );\n}\n\nfunction getBreadcrumbData(request) {\n try {\n const url = getAbsoluteUrl(request.origin, request.path);\n const parsedUrl = parseUrl(url);\n\n const data = {\n url: getSanitizedUrlString(parsedUrl),\n 'http.method': request.method || 'GET',\n };\n\n if (parsedUrl.search) {\n data['http.query'] = parsedUrl.search;\n }\n if (parsedUrl.hash) {\n data['http.fragment'] = parsedUrl.hash;\n }\n\n return data;\n } catch {\n return {};\n }\n}\n\n/** Get the absolute URL from an origin and path. */\nfunction getAbsoluteUrl(origin, path = '/') {\n try {\n const url = new URL(path, origin);\n return url.toString();\n } catch {\n // fallback: Construct it on our own\n const url = `${origin}`;\n\n if (url.endsWith('/') && path.startsWith('/')) {\n return `${url}${path.slice(1)}`;\n }\n\n if (!url.endsWith('/') && !path.startsWith('/')) {\n return `${url}/${path}`;\n }\n\n return `${url}${path}`;\n }\n}\n\nexport { addFetchRequestBreadcrumb, addTracePropagationHeadersToFetchRequest, getAbsoluteUrl };\n//# sourceMappingURL=outgoingFetchRequest.js.map\n", - "import { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks';\nimport { wrapContextManagerClass } from '@sentry/opentelemetry';\n\n/**\n * This is a custom ContextManager for OpenTelemetry, which extends the default AsyncLocalStorageContextManager.\n * It ensures that we create a new hub per context, so that the OTEL Context & the Sentry Scopes are always in sync.\n *\n * Note that we currently only support AsyncHooks with this,\n * but since this should work for Node 14+ anyhow that should be good enough.\n */\nconst SentryContextManager = wrapContextManagerClass(AsyncLocalStorageContextManager);\n\nexport { SentryContextManager };\n//# sourceMappingURL=contextManager.js.map\n", - "import { ATTR_URL_FULL, SEMATTRS_HTTP_URL, ATTR_HTTP_REQUEST_METHOD, SEMATTRS_HTTP_METHOD, ATTR_DB_SYSTEM_NAME, SEMATTRS_DB_SYSTEM, SEMATTRS_RPC_SERVICE, SEMATTRS_MESSAGING_SYSTEM, SEMATTRS_FAAS_TRIGGER, SEMATTRS_DB_STATEMENT, SEMATTRS_HTTP_TARGET, ATTR_HTTP_ROUTE, ATTR_HTTP_RESPONSE_STATUS_CODE, SEMATTRS_HTTP_STATUS_CODE, SEMATTRS_RPC_GRPC_STATUS_CODE } from '@opentelemetry/semantic-conventions';\nimport { parseUrl, getSanitizedUrlString, SDK_VERSION, addNonEnumerableProperty, isSentryRequestUrl, getClient, baggageHeaderToDynamicSamplingContext, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, stripUrlQueryAndFragment, spanToJSON, hasSpansEnabled, dynamicSamplingContextToSentryBaggageHeader, LRUMap, debug, shouldPropagateTraceForUrl, parseBaggageHeader, SENTRY_BAGGAGE_KEY_PREFIX, generateSentryTraceHeader, generateTraceparentHeader, getDynamicSamplingContextFromSpan, getCurrentScope, getDynamicSamplingContextFromScope, getIsolationScope, propagationContextFromHeaders, shouldContinueTrace, spanToTraceContext, getTraceContextFromScope, getRootSpan, handleCallbackErrors, getCapturedScopesOnSpan, setAsyncContextStrategy, getDefaultIsolationScope, getDefaultCurrentScope, SPAN_STATUS_OK, SPAN_STATUS_ERROR, getSpanStatusFromHttpCode, _INTERNAL_safeDateNow, debounce, timedEventsToMeasurements, captureEvent, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, convertSpanLinksForEnvelope, getStatusMessage, spanTimeInputToSeconds, addChildSpanToSpan, setCapturedScopesOnSpan, logSpanStart, logSpanEnd, parseSampleRate, _INTERNAL_safeMathRandom, sampleSpan } from '@sentry/core';\nexport { getClient, getDynamicSamplingContextFromSpan, shouldPropagateTraceForUrl } from '@sentry/core';\nimport * as api from '@opentelemetry/api';\nimport { trace, SpanKind, createContextKey, TraceFlags, propagation, INVALID_TRACEID, context, SpanStatusCode, ROOT_CONTEXT, isSpanContextValid } from '@opentelemetry/api';\nimport { TraceState, W3CBaggagePropagator, isTracingSuppressed, suppressTracing as suppressTracing$1 } from '@opentelemetry/core';\nimport { SamplingDecision } from '@opentelemetry/sdk-trace-base';\n\n/** If this attribute is true, it means that the parent is a remote span. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE = 'sentry.parentIsRemote';\n\n// These are not standardized yet, but used by the graphql instrumentation\nconst SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION = 'sentry.graphql.operation';\n\n/**\n * Get the parent span id from a span.\n * In OTel v1, the parent span id is accessed as `parentSpanId`\n * In OTel v2, the parent span id is accessed as `spanId` on the `parentSpanContext`\n */\nfunction getParentSpanId(span) {\n if ('parentSpanId' in span) {\n return span.parentSpanId ;\n } else if ('parentSpanContext' in span) {\n return (span.parentSpanContext )?.spanId;\n }\n\n return undefined;\n}\n\n/**\n * Check if a given span has attributes.\n * This is necessary because the base `Span` type does not have attributes,\n * so in places where we are passed a generic span, we need to check if we want to access them.\n */\nfunction spanHasAttributes(\n span,\n) {\n const castSpan = span ;\n return !!castSpan.attributes && typeof castSpan.attributes === 'object';\n}\n\n/**\n * Check if a given span has a kind.\n * This is necessary because the base `Span` type does not have a kind,\n * so in places where we are passed a generic span, we need to check if we want to access it.\n */\nfunction spanHasKind(span) {\n const castSpan = span ;\n return typeof castSpan.kind === 'number';\n}\n\n/**\n * Check if a given span has a status.\n * This is necessary because the base `Span` type does not have a status,\n * so in places where we are passed a generic span, we need to check if we want to access it.\n */\nfunction spanHasStatus(\n span,\n) {\n const castSpan = span ;\n return !!castSpan.status;\n}\n\n/**\n * Check if a given span has a name.\n * This is necessary because the base `Span` type does not have a name,\n * so in places where we are passed a generic span, we need to check if we want to access it.\n */\nfunction spanHasName(span) {\n const castSpan = span ;\n return !!castSpan.name;\n}\n\n/**\n * Check if a given span has a kind.\n * This is necessary because the base `Span` type does not have a kind,\n * so in places where we are passed a generic span, we need to check if we want to access it.\n */\nfunction spanHasParentId(\n span,\n) {\n const castSpan = span ;\n return !!getParentSpanId(castSpan);\n}\n\n/**\n * Check if a given span has events.\n * This is necessary because the base `Span` type does not have events,\n * so in places where we are passed a generic span, we need to check if we want to access it.\n */\nfunction spanHasEvents(\n span,\n) {\n const castSpan = span ;\n return Array.isArray(castSpan.events);\n}\n\n/**\n * Get sanitizied request data from an OTEL span.\n */\nfunction getRequestSpanData(span) {\n // The base `Span` type has no `attributes`, so we need to guard here against that\n if (!spanHasAttributes(span)) {\n return {};\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const maybeUrlAttribute = (span.attributes[ATTR_URL_FULL] || span.attributes[SEMATTRS_HTTP_URL])\n\n;\n\n const data = {\n url: maybeUrlAttribute,\n // eslint-disable-next-line deprecation/deprecation\n 'http.method': (span.attributes[ATTR_HTTP_REQUEST_METHOD] || span.attributes[SEMATTRS_HTTP_METHOD])\n\n,\n };\n\n // Default to GET if URL is set but method is not\n if (!data['http.method'] && data.url) {\n data['http.method'] = 'GET';\n }\n\n try {\n if (typeof maybeUrlAttribute === 'string') {\n const url = parseUrl(maybeUrlAttribute);\n\n data.url = getSanitizedUrlString(url);\n\n if (url.search) {\n data['http.query'] = url.search;\n }\n if (url.hash) {\n data['http.fragment'] = url.hash;\n }\n }\n } catch {\n // ignore\n }\n\n return data;\n}\n\n// Typescript complains if we do not use `...args: any[]` for the mixin, with:\n// A mixin class must have a constructor with a single rest parameter of type 'any[]'.ts(2545)\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Wrap an Client class with things we need for OpenTelemetry support.\n * Make sure that the Client class passed in is non-abstract!\n *\n * Usage:\n * const OpenTelemetryClient = getWrappedClientClass(NodeClient);\n * const client = new OpenTelemetryClient(options);\n */\nfunction wrapClientClass\n\n(ClientClass) {\n // @ts-expect-error We just assume that this is non-abstract, if you pass in an abstract class this would make it non-abstract\n class OpenTelemetryClient extends ClientClass {\n\n constructor(...args) {\n super(...args);\n }\n\n /** Get the OTEL tracer. */\n get tracer() {\n if (this._tracer) {\n return this._tracer;\n }\n\n const name = '@sentry/opentelemetry';\n const version = SDK_VERSION;\n const tracer = trace.getTracer(name, version);\n this._tracer = tracer;\n\n return tracer;\n }\n\n /**\n * @inheritDoc\n */\n async flush(timeout) {\n const provider = this.traceProvider;\n await provider?.forceFlush();\n return super.flush(timeout);\n }\n }\n\n return OpenTelemetryClient ;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/**\n * Get the span kind from a span.\n * For whatever reason, this is not public API on the generic \"Span\" type,\n * so we need to check if we actually have a `SDKTraceBaseSpan` where we can fetch this from.\n * Otherwise, we fall back to `SpanKind.INTERNAL`.\n */\nfunction getSpanKind(span) {\n if (spanHasKind(span)) {\n return span.kind;\n }\n\n return SpanKind.INTERNAL;\n}\n\nconst SENTRY_TRACE_HEADER = 'sentry-trace';\nconst SENTRY_BAGGAGE_HEADER = 'baggage';\n\nconst SENTRY_TRACE_STATE_DSC = 'sentry.dsc';\nconst SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING = 'sentry.sampled_not_recording';\nconst SENTRY_TRACE_STATE_URL = 'sentry.url';\nconst SENTRY_TRACE_STATE_SAMPLE_RAND = 'sentry.sample_rand';\nconst SENTRY_TRACE_STATE_SAMPLE_RATE = 'sentry.sample_rate';\n\nconst SENTRY_SCOPES_CONTEXT_KEY = createContextKey('sentry_scopes');\n\nconst SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY = createContextKey('sentry_fork_isolation_scope');\n\nconst SENTRY_FORK_SET_SCOPE_CONTEXT_KEY = createContextKey('sentry_fork_set_scope');\n\nconst SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY = createContextKey('sentry_fork_set_isolation_scope');\n\nconst SCOPE_CONTEXT_FIELD = '_scopeContext';\n\n/**\n * Try to get the current scopes from the given OTEL context.\n * This requires a Context Manager that was wrapped with getWrappedContextManager.\n */\nfunction getScopesFromContext(context) {\n return context.getValue(SENTRY_SCOPES_CONTEXT_KEY) ;\n}\n\n/**\n * Set the current scopes on an OTEL context.\n * This will return a forked context with the Propagation Context set.\n */\nfunction setScopesOnContext(context, scopes) {\n return context.setValue(SENTRY_SCOPES_CONTEXT_KEY, scopes);\n}\n\n/**\n * Set the context on the scope so we can later look it up.\n * We need this to get the context from the scope in the `trace` functions.\n */\nfunction setContextOnScope(scope, context) {\n addNonEnumerableProperty(scope, SCOPE_CONTEXT_FIELD, context);\n}\n\n/**\n * Get the context related to a scope.\n */\nfunction getContextFromScope(scope) {\n return (scope )[SCOPE_CONTEXT_FIELD];\n}\n\n/**\n *\n * @param otelSpan Checks whether a given OTEL Span is an http request to sentry.\n * @returns boolean\n */\nfunction isSentryRequestSpan(span) {\n if (!spanHasAttributes(span)) {\n return false;\n }\n\n const { attributes } = span;\n\n // `ATTR_URL_FULL` is the new attribute, but we still support the old one, `ATTR_HTTP_URL`, for now.\n // eslint-disable-next-line deprecation/deprecation\n const httpUrl = attributes[SEMATTRS_HTTP_URL] || attributes[ATTR_URL_FULL];\n\n if (!httpUrl) {\n return false;\n }\n\n return isSentryRequestUrl(httpUrl.toString(), getClient());\n}\n\n/**\n * OpenTelemetry only knows about SAMPLED or NONE decision,\n * but for us it is important to differentiate between unset and unsampled.\n *\n * Both of these are identified as `traceFlags === TracegFlags.NONE`,\n * but we additionally look at a special trace state to differentiate between them.\n */\nfunction getSamplingDecision(spanContext) {\n const { traceFlags, traceState } = spanContext;\n\n const sampledNotRecording = traceState ? traceState.get(SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING) === '1' : false;\n\n // If trace flag is `SAMPLED`, we interpret this as sampled\n // If it is `NONE`, it could mean either it was sampled to be not recorder, or that it was not sampled at all\n // For us this is an important difference, sow e look at the SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING\n // to identify which it is\n if (traceFlags === TraceFlags.SAMPLED) {\n return true;\n }\n\n if (sampledNotRecording) {\n return false;\n }\n\n // Fall back to DSC as a last resort, that may also contain `sampled`...\n const dscString = traceState ? traceState.get(SENTRY_TRACE_STATE_DSC) : undefined;\n const dsc = dscString ? baggageHeaderToDynamicSamplingContext(dscString) : undefined;\n\n if (dsc?.sampled === 'true') {\n return true;\n }\n if (dsc?.sampled === 'false') {\n return false;\n }\n\n return undefined;\n}\n\n/**\n * Infer the op & description for a set of name, attributes and kind of a span.\n */\nfunction inferSpanData(spanName, attributes, kind) {\n // if http.method exists, this is an http request span\n // eslint-disable-next-line deprecation/deprecation\n const httpMethod = attributes[ATTR_HTTP_REQUEST_METHOD] || attributes[SEMATTRS_HTTP_METHOD];\n if (httpMethod) {\n return descriptionForHttpMethod({ attributes, name: spanName, kind }, httpMethod);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const dbSystem = attributes[ATTR_DB_SYSTEM_NAME] || attributes[SEMATTRS_DB_SYSTEM];\n const opIsCache =\n typeof attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] === 'string' &&\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP].startsWith('cache.');\n\n // If db.type exists then this is a database call span\n // If the Redis DB is used as a cache, the span description should not be changed\n if (dbSystem && !opIsCache) {\n return descriptionForDbSystem({ attributes, name: spanName });\n }\n\n const customSourceOrRoute = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === 'custom' ? 'custom' : 'route';\n\n // If rpc.service exists then this is a rpc call span.\n // eslint-disable-next-line deprecation/deprecation\n const rpcService = attributes[SEMATTRS_RPC_SERVICE];\n if (rpcService) {\n return {\n ...getUserUpdatedNameAndSource(spanName, attributes, 'route'),\n op: 'rpc',\n };\n }\n\n // If messaging.system exists then this is a messaging system span.\n // eslint-disable-next-line deprecation/deprecation\n const messagingSystem = attributes[SEMATTRS_MESSAGING_SYSTEM];\n if (messagingSystem) {\n return {\n ...getUserUpdatedNameAndSource(spanName, attributes, customSourceOrRoute),\n op: 'message',\n };\n }\n\n // If faas.trigger exists then this is a function as a service span.\n // eslint-disable-next-line deprecation/deprecation\n const faasTrigger = attributes[SEMATTRS_FAAS_TRIGGER];\n if (faasTrigger) {\n return {\n ...getUserUpdatedNameAndSource(spanName, attributes, customSourceOrRoute),\n op: faasTrigger.toString(),\n };\n }\n\n return { op: undefined, description: spanName, source: 'custom' };\n}\n\n/**\n * Extract better op/description from an otel span.\n *\n * Does not overwrite the span name if the source is already set to custom to ensure\n * that user-updated span names are preserved. In this case, we only adjust the op but\n * leave span description and source unchanged.\n *\n * Based on https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/7422ce2a06337f68a59b552b8c5a2ac125d6bae5/exporter/sentryexporter/sentry_exporter.go#L306\n */\nfunction parseSpanDescription(span) {\n const attributes = spanHasAttributes(span) ? span.attributes : {};\n const name = spanHasName(span) ? span.name : '';\n const kind = getSpanKind(span);\n\n return inferSpanData(name, attributes, kind);\n}\n\nfunction descriptionForDbSystem({ attributes, name }) {\n // if we already have a custom name, we don't overwrite it but only set the op\n const userDefinedName = attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n if (typeof userDefinedName === 'string') {\n return {\n op: 'db',\n description: userDefinedName,\n source: (attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] ) || 'custom',\n };\n }\n\n // if we already have the source set to custom, we don't overwrite the span description but only set the op\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === 'custom') {\n return { op: 'db', description: name, source: 'custom' };\n }\n\n // Use DB statement (Ex \"SELECT * FROM table\") if possible as description.\n // eslint-disable-next-line deprecation/deprecation\n const statement = attributes[SEMATTRS_DB_STATEMENT];\n\n const description = statement ? statement.toString() : name;\n\n return { op: 'db', description, source: 'task' };\n}\n\n/** Only exported for tests. */\nfunction descriptionForHttpMethod(\n { name, kind, attributes },\n httpMethod,\n) {\n const opParts = ['http'];\n\n switch (kind) {\n case SpanKind.CLIENT:\n opParts.push('client');\n break;\n case SpanKind.SERVER:\n opParts.push('server');\n break;\n }\n\n // Spans for HTTP requests we have determined to be prefetch requests will have a `.prefetch` postfix in the op\n if (attributes['sentry.http.prefetch']) {\n opParts.push('prefetch');\n }\n\n const { urlPath, url, query, fragment, hasRoute } = getSanitizedUrl(attributes, kind);\n\n if (!urlPath) {\n return { ...getUserUpdatedNameAndSource(name, attributes), op: opParts.join('.') };\n }\n\n const graphqlOperationsAttribute = attributes[SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION];\n\n // Ex. GET /api/users\n const baseDescription = `${httpMethod} ${urlPath}`;\n\n // When the http span has a graphql operation, append it to the description\n // We add these in the graphqlIntegration\n const inferredDescription = graphqlOperationsAttribute\n ? `${baseDescription} (${getGraphqlOperationNamesFromAttribute(graphqlOperationsAttribute)})`\n : baseDescription;\n\n // If `httpPath` is a root path, then we can categorize the transaction source as route.\n const inferredSource = hasRoute || urlPath === '/' ? 'route' : 'url';\n\n const data = {};\n\n if (url) {\n data.url = url;\n }\n if (query) {\n data['http.query'] = query;\n }\n if (fragment) {\n data['http.fragment'] = fragment;\n }\n\n // If the span kind is neither client nor server, we use the original name\n // this infers that somebody manually started this span, in which case we don't want to overwrite the name\n const isClientOrServerKind = kind === SpanKind.CLIENT || kind === SpanKind.SERVER;\n\n // If the span is an auto-span (=it comes from one of our instrumentations),\n // we always want to infer the name\n // this is necessary because some of the auto-instrumentation we use uses kind=INTERNAL\n const origin = attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] || 'manual';\n const isManualSpan = !`${origin}`.startsWith('auto');\n\n // If users (or in very rare occasions we) set the source to custom, we don't overwrite the name\n const alreadyHasCustomSource = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === 'custom';\n const customSpanName = attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n\n const useInferredDescription =\n !alreadyHasCustomSource && customSpanName == null && (isClientOrServerKind || !isManualSpan);\n\n const { description, source } = useInferredDescription\n ? { description: inferredDescription, source: inferredSource }\n : getUserUpdatedNameAndSource(name, attributes);\n\n return {\n op: opParts.join('.'),\n description,\n source,\n data,\n };\n}\n\nfunction getGraphqlOperationNamesFromAttribute(attr) {\n if (Array.isArray(attr)) {\n // oxlint-disable-next-line typescript/require-array-sort-compare\n const sorted = attr.slice().sort();\n\n // Up to 5 items, we just add all of them\n if (sorted.length <= 5) {\n return sorted.join(', ');\n } else {\n // Else, we add the first 5 and the diff of other operations\n return `${sorted.slice(0, 5).join(', ')}, +${sorted.length - 5}`;\n }\n }\n\n return `${attr}`;\n}\n\n/** Exported for tests only */\nfunction getSanitizedUrl(\n attributes,\n kind,\n)\n\n {\n // This is the relative path of the URL, e.g. /sub\n // eslint-disable-next-line deprecation/deprecation\n const httpTarget = attributes[SEMATTRS_HTTP_TARGET];\n // This is the full URL, including host & query params etc., e.g. https://example.com/sub?foo=bar\n // eslint-disable-next-line deprecation/deprecation\n const httpUrl = attributes[SEMATTRS_HTTP_URL] || attributes[ATTR_URL_FULL];\n // This is the normalized route name - may not always be available!\n const httpRoute = attributes[ATTR_HTTP_ROUTE];\n\n const parsedUrl = typeof httpUrl === 'string' ? parseUrl(httpUrl) : undefined;\n const url = parsedUrl ? getSanitizedUrlString(parsedUrl) : undefined;\n const query = parsedUrl?.search || undefined;\n const fragment = parsedUrl?.hash || undefined;\n\n if (typeof httpRoute === 'string') {\n return { urlPath: httpRoute, url, query, fragment, hasRoute: true };\n }\n\n if (kind === SpanKind.SERVER && typeof httpTarget === 'string') {\n return { urlPath: stripUrlQueryAndFragment(httpTarget), url, query, fragment, hasRoute: false };\n }\n\n if (parsedUrl) {\n return { urlPath: url, url, query, fragment, hasRoute: false };\n }\n\n // fall back to target even for client spans, if no URL is present\n if (typeof httpTarget === 'string') {\n return { urlPath: stripUrlQueryAndFragment(httpTarget), url, query, fragment, hasRoute: false };\n }\n\n return { urlPath: undefined, url, query, fragment, hasRoute: false };\n}\n\n/**\n * Because Otel instrumentation sometimes mutates span names via `span.updateName`, the only way\n * to ensure that a user-set span name is preserved is to store it as a tmp attribute on the span.\n * We delete this attribute once we're done with it when preparing the event envelope.\n *\n * This temp attribute always takes precedence over the original name.\n *\n * We also need to take care of setting the correct source. Users can always update the source\n * after updating the name, so we need to respect that.\n *\n * @internal exported only for testing\n */\nfunction getUserUpdatedNameAndSource(\n originalName,\n attributes,\n fallbackSource = 'custom',\n)\n\n {\n const source = (attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] ) || fallbackSource;\n const description = attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n\n if (description && typeof description === 'string') {\n return {\n description,\n source,\n };\n }\n\n return { description: originalName, source };\n}\n\n/**\n * Setup a DSC handler on the passed client,\n * ensuring that the transaction name is inferred from the span correctly.\n */\nfunction enhanceDscWithOpenTelemetryRootSpanName(client) {\n client.on('createDsc', (dsc, rootSpan) => {\n if (!rootSpan) {\n return;\n }\n\n // We want to overwrite the transaction on the DSC that is created by default in core\n // The reason for this is that we want to infer the span name, not use the initial one\n // Otherwise, we'll get names like \"GET\" instead of e.g. \"GET /foo\"\n // `parseSpanDescription` takes the attributes of the span into account for the name\n // This mutates the passed-in DSC\n\n const jsonSpan = spanToJSON(rootSpan);\n const attributes = jsonSpan.data;\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n const { description } = spanHasName(rootSpan) ? parseSpanDescription(rootSpan) : { description: undefined };\n if (source !== 'url' && description) {\n dsc.transaction = description;\n }\n\n // Also ensure sampling decision is correctly inferred\n // In core, we use `spanIsSampled`, which just looks at the trace flags\n // but in OTEL, we use a slightly more complex logic to be able to differntiate between unsampled and deferred sampling\n if (hasSpansEnabled()) {\n const sampled = getSamplingDecision(rootSpan.spanContext());\n dsc.sampled = sampled == undefined ? undefined : String(sampled);\n }\n });\n}\n\n/**\n * Returns the currently active span.\n */\nfunction getActiveSpan() {\n return trace.getActiveSpan();\n}\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\n/**\n * Generate a TraceState for the given data.\n */\nfunction makeTraceState({\n dsc,\n sampled,\n}\n\n) {\n // We store the DSC as OTEL trace state on the span context\n const dscString = dsc ? dynamicSamplingContextToSentryBaggageHeader(dsc) : undefined;\n\n const traceStateBase = new TraceState();\n\n const traceStateWithDsc = dscString ? traceStateBase.set(SENTRY_TRACE_STATE_DSC, dscString) : traceStateBase;\n\n // We also specifically want to store if this is sampled to be not recording,\n // or unsampled (=could be either sampled or not)\n return sampled === false ? traceStateWithDsc.set(SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING, '1') : traceStateWithDsc;\n}\n\nconst setupElements = new Set();\n\n/** Get all the OpenTelemetry elements that have been set up. */\nfunction openTelemetrySetupCheck() {\n return Array.from(setupElements);\n}\n\n/** Mark an OpenTelemetry element as setup. */\nfunction setIsSetup(element) {\n setupElements.add(element);\n}\n\n/**\n * Injects and extracts `sentry-trace` and `baggage` headers from carriers.\n */\nclass SentryPropagator extends W3CBaggagePropagator {\n /** A map of URLs that have already been checked for if they match tracePropagationTargets. */\n\n constructor() {\n super();\n setIsSetup('SentryPropagator');\n\n // We're caching results so we don't have to recompute regexp every time we create a request.\n this._urlMatchesTargetsMap = new LRUMap(100);\n }\n\n /**\n * @inheritDoc\n */\n inject(context, carrier, setter) {\n if (isTracingSuppressed(context)) {\n DEBUG_BUILD && debug.log('[Tracing] Not injecting trace data for url because tracing is suppressed.');\n return;\n }\n\n const activeSpan = trace.getSpan(context);\n const url = activeSpan && getCurrentURL(activeSpan);\n\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() || {};\n if (!shouldPropagateTraceForUrl(url, tracePropagationTargets, this._urlMatchesTargetsMap)) {\n DEBUG_BUILD &&\n debug.log('[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:', url);\n return;\n }\n\n const existingBaggageHeader = getExistingBaggage(carrier);\n let baggage = propagation.getBaggage(context) || propagation.createBaggage({});\n\n const { dynamicSamplingContext, traceId, spanId, sampled } = getInjectionData(context);\n\n if (existingBaggageHeader) {\n const baggageEntries = parseBaggageHeader(existingBaggageHeader);\n\n if (baggageEntries) {\n Object.entries(baggageEntries).forEach(([key, value]) => {\n baggage = baggage.setEntry(key, { value });\n });\n }\n }\n\n if (dynamicSamplingContext) {\n baggage = Object.entries(dynamicSamplingContext).reduce((b, [dscKey, dscValue]) => {\n if (dscValue) {\n return b.setEntry(`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`, { value: dscValue });\n }\n return b;\n }, baggage);\n }\n\n // We also want to avoid setting the default OTEL trace ID, if we get that for whatever reason\n if (traceId && traceId !== INVALID_TRACEID) {\n setter.set(carrier, SENTRY_TRACE_HEADER, generateSentryTraceHeader(traceId, spanId, sampled));\n\n if (propagateTraceparent) {\n setter.set(carrier, 'traceparent', generateTraceparentHeader(traceId, spanId, sampled));\n }\n }\n\n super.inject(propagation.setBaggage(context, baggage), carrier, setter);\n }\n\n /**\n * @inheritDoc\n */\n extract(context, carrier, getter) {\n const maybeSentryTraceHeader = getter.get(carrier, SENTRY_TRACE_HEADER);\n const baggage = getter.get(carrier, SENTRY_BAGGAGE_HEADER);\n\n const sentryTrace = maybeSentryTraceHeader\n ? Array.isArray(maybeSentryTraceHeader)\n ? maybeSentryTraceHeader[0]\n : maybeSentryTraceHeader\n : undefined;\n\n // Add remote parent span context\n // If there is no incoming trace, this will return the context as-is\n return ensureScopesOnContext(getContextWithRemoteActiveSpan(context, { sentryTrace, baggage }));\n }\n\n /**\n * @inheritDoc\n */\n fields() {\n return [SENTRY_TRACE_HEADER, SENTRY_BAGGAGE_HEADER, 'traceparent'];\n }\n}\n\n/**\n * Get propagation injection data for the given context.\n * The additional options can be passed to override the scope and client that is otherwise derived from the context.\n */\nfunction getInjectionData(\n context,\n options = {},\n)\n\n {\n const span = trace.getSpan(context);\n\n // If we have a remote span, the spanId should be considered as the parentSpanId, not spanId itself\n // Instead, we use a virtual (generated) spanId for propagation\n if (span?.spanContext().isRemote) {\n const spanContext = span.spanContext();\n const dynamicSamplingContext = getDynamicSamplingContextFromSpan(span);\n\n return {\n dynamicSamplingContext,\n traceId: spanContext.traceId,\n spanId: undefined,\n sampled: getSamplingDecision(spanContext), // TODO: Do we need to change something here?\n };\n }\n\n // If we have a local span, we just use this\n if (span) {\n const spanContext = span.spanContext();\n const dynamicSamplingContext = getDynamicSamplingContextFromSpan(span);\n\n return {\n dynamicSamplingContext,\n traceId: spanContext.traceId,\n spanId: spanContext.spanId,\n sampled: getSamplingDecision(spanContext), // TODO: Do we need to change something here?\n };\n }\n\n // Else we try to use the propagation context from the scope\n // The only scenario where this should happen is when we neither have a span, nor an incoming trace\n const scope = options.scope || getScopesFromContext(context)?.scope || getCurrentScope();\n const client = options.client || getClient();\n\n const propagationContext = scope.getPropagationContext();\n const dynamicSamplingContext = client ? getDynamicSamplingContextFromScope(client, scope) : undefined;\n return {\n dynamicSamplingContext,\n traceId: propagationContext.traceId,\n spanId: propagationContext.propagationSpanId,\n sampled: propagationContext.sampled,\n };\n}\n\nfunction getContextWithRemoteActiveSpan(\n ctx,\n { sentryTrace, baggage },\n) {\n const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n\n const { traceId, parentSpanId, sampled, dsc } = propagationContext;\n\n const client = getClient();\n const incomingDsc = baggageHeaderToDynamicSamplingContext(baggage);\n\n // We only want to set the virtual span if we are continuing a concrete trace\n // Otherwise, we ignore the incoming trace here, e.g. if we have no trace headers\n if (!parentSpanId || (client && !shouldContinueTrace(client, incomingDsc?.org_id))) {\n return ctx;\n }\n\n const spanContext = generateRemoteSpanContext({\n traceId,\n spanId: parentSpanId,\n sampled,\n dsc,\n });\n\n return trace.setSpanContext(ctx, spanContext);\n}\n\n/**\n * Takes trace strings and propagates them as a remote active span.\n * This should be used in addition to `continueTrace` in OTEL-powered environments.\n */\nfunction continueTraceAsRemoteSpan(\n ctx,\n options,\n callback,\n) {\n const ctxWithSpanContext = ensureScopesOnContext(getContextWithRemoteActiveSpan(ctx, options));\n\n return context.with(ctxWithSpanContext, callback);\n}\n\nfunction ensureScopesOnContext(ctx) {\n // If there are no scopes yet on the context, ensure we have them\n const scopes = getScopesFromContext(ctx);\n const newScopes = {\n // If we have no scope here, this is most likely either the root context or a context manually derived from it\n // In this case, we want to fork the current scope, to ensure we do not pollute the root scope\n scope: scopes ? scopes.scope : getCurrentScope().clone(),\n isolationScope: scopes ? scopes.isolationScope : getIsolationScope(),\n };\n\n return setScopesOnContext(ctx, newScopes);\n}\n\n/** Try to get the existing baggage header so we can merge this in. */\nfunction getExistingBaggage(carrier) {\n try {\n const baggage = (carrier )[SENTRY_BAGGAGE_HEADER];\n return Array.isArray(baggage) ? baggage.join(',') : baggage;\n } catch {\n return undefined;\n }\n}\n\n/**\n * It is pretty tricky to get access to the outgoing request URL of a request in the propagator.\n * As we only have access to the context of the span to be sent and the carrier (=headers),\n * but the span may be unsampled and thus have no attributes.\n *\n * So we use the following logic:\n * 1. If we have an active span, we check if it has a URL attribute.\n * 2. Else, if the active span has no URL attribute (e.g. it is unsampled), we check a special trace state (which we set in our sampler).\n */\nfunction getCurrentURL(span) {\n const spanData = spanToJSON(span).data;\n // `ATTR_URL_FULL` is the new attribute, but we still support the old one, `SEMATTRS_HTTP_URL`, for now.\n // eslint-disable-next-line deprecation/deprecation\n const urlAttribute = spanData[SEMATTRS_HTTP_URL] || spanData[ATTR_URL_FULL];\n if (typeof urlAttribute === 'string') {\n return urlAttribute;\n }\n\n // Also look at the traceState, which we may set in the sampler even for unsampled spans\n const urlTraceState = span.spanContext().traceState?.get(SENTRY_TRACE_STATE_URL);\n if (urlTraceState) {\n return urlTraceState;\n }\n\n return undefined;\n}\n\nfunction generateRemoteSpanContext({\n spanId,\n traceId,\n sampled,\n dsc,\n}\n\n) {\n // We store the DSC as OTEL trace state on the span context\n const traceState = makeTraceState({\n dsc,\n sampled,\n });\n\n const spanContext = {\n traceId,\n spanId,\n isRemote: true,\n traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE,\n traceState,\n };\n\n return spanContext;\n}\n\n/**\n * Internal helper for starting spans and manual spans. See {@link startSpan} and {@link startSpanManual} for the public APIs.\n * @param options - The span context options\n * @param callback - The callback to execute with the span\n * @param autoEnd - Whether to automatically end the span after the callback completes\n */\nfunction _startSpan(options, callback, autoEnd) {\n const tracer = getTracer();\n\n const { name, parentSpan: customParentSpan } = options;\n\n // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n const wrapper = getActiveSpanWrapper(customParentSpan);\n\n return wrapper(() => {\n const activeCtx = getContext(options.scope, options.forceTransaction);\n const shouldSkipSpan = options.onlyIfParent && !trace.getSpan(activeCtx);\n const ctx = shouldSkipSpan ? suppressTracing$1(activeCtx) : activeCtx;\n\n const spanOptions = getSpanOptions(options);\n\n // If spans are not enabled, ensure we suppress tracing for the span creation\n // but preserve the original context for the callback execution\n // This ensures that we don't create spans when tracing is disabled which\n // would otherwise be a problem for users that don't enable tracing but use\n // custom OpenTelemetry setups.\n if (!hasSpansEnabled()) {\n const suppressedCtx = isTracingSuppressed(ctx) ? ctx : suppressTracing$1(ctx);\n\n return context.with(suppressedCtx, () => {\n return tracer.startActiveSpan(name, spanOptions, suppressedCtx, span => {\n // Restore the original unsuppressed context for the callback execution\n // so that custom OpenTelemetry spans maintain the correct context.\n // We use activeCtx (not ctx) because ctx may be suppressed when onlyIfParent is true\n // and no parent span exists. Using activeCtx ensures custom OTel spans are never\n // inadvertently suppressed.\n return context.with(activeCtx, () => {\n return handleCallbackErrors(\n () => callback(span),\n () => {\n // Only set the span status to ERROR when there wasn't any status set before, in order to avoid stomping useful span statuses\n if (spanToJSON(span).status === undefined) {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n },\n autoEnd ? () => span.end() : undefined,\n );\n });\n });\n });\n }\n\n return tracer.startActiveSpan(name, spanOptions, ctx, span => {\n return handleCallbackErrors(\n () => callback(span),\n () => {\n // Only set the span status to ERROR when there wasn't any status set before, in order to avoid stomping useful span statuses\n if (spanToJSON(span).status === undefined) {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n },\n autoEnd ? () => span.end() : undefined,\n );\n });\n });\n}\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * If you want to create a span that is not set as active, use {@link startInactiveSpan}.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startSpan(options, callback) {\n return _startSpan(options, callback, true);\n}\n\n/**\n * Similar to `Sentry.startSpan`. Wraps a function with a span, but does not finish the span\n * after the function is done automatically. You'll have to call `span.end()` or the `finish` function passed to the callback manually.\n *\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startSpanManual(\n options,\n callback,\n) {\n return _startSpan(options, span => callback(span, () => span.end()), false);\n}\n\n/**\n * Creates a span. This span is not set as active, so will not get automatic instrumentation spans\n * as children or be able to be accessed via `Sentry.getActiveSpan()`.\n *\n * If you want to create a span that is set as active, use {@link startSpan}.\n *\n * This function will always return a span,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startInactiveSpan(options) {\n const tracer = getTracer();\n\n const { name, parentSpan: customParentSpan } = options;\n\n // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n const wrapper = getActiveSpanWrapper(customParentSpan);\n\n return wrapper(() => {\n const activeCtx = getContext(options.scope, options.forceTransaction);\n const shouldSkipSpan = options.onlyIfParent && !trace.getSpan(activeCtx);\n let ctx = shouldSkipSpan ? suppressTracing$1(activeCtx) : activeCtx;\n\n const spanOptions = getSpanOptions(options);\n\n if (!hasSpansEnabled()) {\n ctx = isTracingSuppressed(ctx) ? ctx : suppressTracing$1(ctx);\n }\n\n return tracer.startSpan(name, spanOptions, ctx);\n });\n}\n\n/**\n * Forks the current scope and sets the provided span as active span in the context of the provided callback. Can be\n * passed `null` to start an entirely new span tree.\n *\n * @param span Spans started in the context of the provided callback will be children of this span. If `null` is passed,\n * spans started within the callback will be root spans.\n * @param callback Execution context in which the provided span will be active. Is passed the newly forked scope.\n * @returns the value returned from the provided callback function.\n */\nfunction withActiveSpan(span, callback) {\n const newContextWithActiveSpan = span ? trace.setSpan(context.active(), span) : trace.deleteSpan(context.active());\n return context.with(newContextWithActiveSpan, () => callback(getCurrentScope()));\n}\n\nfunction getTracer() {\n const client = getClient();\n return client?.tracer || trace.getTracer('@sentry/opentelemetry', SDK_VERSION);\n}\n\nfunction getSpanOptions(options) {\n const { startTime, attributes, kind, op, links } = options;\n\n // OTEL expects timestamps in ms, not seconds\n const fixedStartTime = typeof startTime === 'number' ? ensureTimestampInMilliseconds(startTime) : startTime;\n\n return {\n attributes: op\n ? {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n ...attributes,\n }\n : attributes,\n kind,\n links,\n startTime: fixedStartTime,\n };\n}\n\nfunction ensureTimestampInMilliseconds(timestamp) {\n const isMs = timestamp < 9999999999;\n return isMs ? timestamp * 1000 : timestamp;\n}\n\nfunction getContext(scope, forceTransaction) {\n const ctx = getContextForScope(scope);\n const parentSpan = trace.getSpan(ctx);\n\n // In the case that we have no parent span, we start a new trace\n // Note that if we continue a trace, we'll always have a remote parent span here anyhow\n if (!parentSpan) {\n return ctx;\n }\n\n // If we don't want to force a transaction, and we have a parent span, all good, we just return as-is!\n if (!forceTransaction) {\n return ctx;\n }\n\n // Else, if we do have a parent span but want to force a transaction, we have to simulate a \"root\" context\n\n // Else, we need to do two things:\n // 1. Unset the parent span from the context, so we'll create a new root span\n // 2. Ensure the propagation context is correct, so we'll continue from the parent span\n const ctxWithoutSpan = trace.deleteSpan(ctx);\n\n const { spanId, traceId } = parentSpan.spanContext();\n const sampled = getSamplingDecision(parentSpan.spanContext());\n\n // In this case, when we are forcing a transaction, we want to treat this like continuing an incoming trace\n // so we set the traceState according to the root span\n const rootSpan = getRootSpan(parentSpan);\n const dsc = getDynamicSamplingContextFromSpan(rootSpan);\n\n const traceState = makeTraceState({\n dsc,\n sampled,\n });\n\n const spanOptions = {\n traceId,\n spanId,\n isRemote: true,\n traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE,\n traceState,\n };\n\n const ctxWithSpanContext = trace.setSpanContext(ctxWithoutSpan, spanOptions);\n\n return ctxWithSpanContext;\n}\n\nfunction getContextForScope(scope) {\n if (scope) {\n const ctx = getContextFromScope(scope);\n if (ctx) {\n return ctx;\n }\n }\n\n return context.active();\n}\n\n/**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers, or in the browser from ``\n * and `` HTML tags.\n *\n * Spans started with `startSpan`, `startSpanManual` and `startInactiveSpan`, within the callback will automatically\n * be attached to the incoming trace.\n *\n * This is a custom version of `continueTrace` that is used in OTEL-powered environments.\n * It propagates the trace as a remote span, in addition to setting it on the propagation context.\n */\nfunction continueTrace(options, callback) {\n return continueTraceAsRemoteSpan(context.active(), options, callback);\n}\n\n/**\n * Get the trace context for a given scope.\n * We have a custom implementation here because we need an OTEL-specific way to get the span from a scope.\n */\nfunction getTraceContextForScope(\n client,\n scope,\n) {\n const ctx = getContextFromScope(scope);\n const span = ctx && trace.getSpan(ctx);\n\n const traceContext = span ? spanToTraceContext(span) : getTraceContextFromScope(scope);\n\n const dynamicSamplingContext = span\n ? getDynamicSamplingContextFromSpan(span)\n : getDynamicSamplingContextFromScope(client, scope);\n return [dynamicSamplingContext, traceContext];\n}\n\nfunction getActiveSpanWrapper(parentSpan) {\n return parentSpan !== undefined\n ? (callback) => {\n return withActiveSpan(parentSpan, callback);\n }\n : (callback) => callback();\n}\n\n/** Suppress tracing in the given callback, ensuring no spans are generated inside of it. */\nfunction suppressTracing(callback) {\n const ctx = suppressTracing$1(context.active());\n return context.with(ctx, callback);\n}\n\n/** Ensure the `trace` context is set on all events. */\nfunction setupEventContextTrace(client) {\n client.on('preprocessEvent', event => {\n const span = getActiveSpan();\n // For transaction events, this is handled separately\n // Because the active span may not be the span that is actually the transaction event\n if (!span || event.type === 'transaction') {\n return;\n }\n\n // If event has already set `trace` context, use that one.\n event.contexts = {\n trace: spanToTraceContext(span),\n ...event.contexts,\n };\n\n const rootSpan = getRootSpan(span);\n\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(rootSpan),\n ...event.sdkProcessingMetadata,\n };\n\n return event;\n });\n}\n\n/**\n * Otel-specific implementation of `getTraceData`.\n * @see `@sentry/core` version of `getTraceData` for more information\n */\nfunction getTraceData({\n span,\n scope,\n client,\n propagateTraceparent,\n} = {}) {\n let ctx = (scope && getContextFromScope(scope)) ?? api.context.active();\n\n if (span) {\n const { scope } = getCapturedScopesOnSpan(span);\n // fall back to current context if for whatever reason we can't find the one of the span\n ctx = (scope && getContextFromScope(scope)) || api.trace.setSpan(api.context.active(), span);\n }\n\n const { traceId, spanId, sampled, dynamicSamplingContext } = getInjectionData(ctx, { scope, client });\n\n const traceData = {\n 'sentry-trace': generateSentryTraceHeader(traceId, spanId, sampled),\n baggage: dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext),\n };\n\n if (propagateTraceparent) {\n traceData.traceparent = generateTraceparentHeader(traceId, spanId, sampled);\n }\n\n return traceData;\n}\n\n/**\n * Sets the async context strategy to use follow the OTEL context under the hood.\n * We handle forking a hub inside of our custom OTEL Context Manager (./otelContextManager.ts)\n */\nfunction setOpenTelemetryContextAsyncContextStrategy() {\n function getScopes() {\n const ctx = api.context.active();\n const scopes = getScopesFromContext(ctx);\n\n if (scopes) {\n return scopes;\n }\n\n // fallback behavior:\n // if, for whatever reason, we can't find scopes on the context here, we have to fix this somehow\n return {\n scope: getDefaultCurrentScope(),\n isolationScope: getDefaultIsolationScope(),\n };\n }\n\n function withScope(callback) {\n const ctx = api.context.active();\n\n // We depend on the otelContextManager to handle the context/hub\n // We set the `SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY` context value, which is picked up by\n // the OTEL context manager, which uses the presence of this key to determine if it should\n // fork the isolation scope, or not\n // as by default, we don't want to fork this, unless triggered explicitly by `withScope`\n return api.context.with(ctx, () => {\n return callback(getCurrentScope());\n });\n }\n\n function withSetScope(scope, callback) {\n const ctx = getContextFromScope(scope) || api.context.active();\n\n // We depend on the otelContextManager to handle the context/hub\n // We set the `SENTRY_FORK_SET_SCOPE_CONTEXT_KEY` context value, which is picked up by\n // the OTEL context manager, which picks up this scope as the current scope\n return api.context.with(ctx.setValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY, scope), () => {\n return callback(scope);\n });\n }\n\n function withIsolationScope(callback) {\n const ctx = api.context.active();\n\n // We depend on the otelContextManager to handle the context/hub\n // We set the `SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY` context value, which is picked up by\n // the OTEL context manager, which uses the presence of this key to determine if it should\n // fork the isolation scope, or not\n return api.context.with(ctx.setValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY, true), () => {\n return callback(getIsolationScope());\n });\n }\n\n function withSetIsolationScope(isolationScope, callback) {\n const ctx = api.context.active();\n\n // We depend on the otelContextManager to handle the context/hub\n // We set the `SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY` context value, which is picked up by\n // the OTEL context manager, which uses the presence of this key to determine if it should\n // fork the isolation scope, or not\n return api.context.with(ctx.setValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY, isolationScope), () => {\n return callback(getIsolationScope());\n });\n }\n\n function getCurrentScope() {\n return getScopes().scope;\n }\n\n function getIsolationScope() {\n return getScopes().isolationScope;\n }\n\n setAsyncContextStrategy({\n withScope,\n withSetScope,\n withSetIsolationScope,\n withIsolationScope,\n getCurrentScope,\n getIsolationScope,\n startSpan,\n startSpanManual,\n startInactiveSpan,\n getActiveSpan,\n suppressTracing,\n getTraceData,\n continueTrace,\n // The types here don't fully align, because our own `Span` type is narrower\n // than the OTEL one - but this is OK for here, as we now we'll only have OTEL spans passed around\n withActiveSpan: withActiveSpan ,\n });\n}\n\n/**\n * Wrap an OpenTelemetry ContextManager in a way that ensures the context is kept in sync with the Sentry Scope.\n *\n * Usage:\n * import { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks';\n * const SentryContextManager = wrapContextManagerClass(AsyncLocalStorageContextManager);\n * const contextManager = new SentryContextManager();\n */\nfunction wrapContextManagerClass(\n ContextManagerClass,\n) {\n /**\n * This is a custom ContextManager for OpenTelemetry, which extends the default AsyncLocalStorageContextManager.\n * It ensures that we create new scopes per context, so that the OTEL Context & the Sentry Scope are always in sync.\n *\n * Note that we currently only support AsyncHooks with this,\n * but since this should work for Node 14+ anyhow that should be good enough.\n */\n\n // @ts-expect-error TS does not like this, but we know this is fine\n class SentryContextManager extends ContextManagerClass {\n constructor(...args) {\n super(...args);\n setIsSetup('SentryContextManager');\n }\n /**\n * Overwrite with() of the original AsyncLocalStorageContextManager\n * to ensure we also create new scopes per context.\n */\n with(\n context,\n fn,\n thisArg,\n ...args\n ) {\n const currentScopes = getScopesFromContext(context);\n const currentScope = currentScopes?.scope || getCurrentScope();\n const currentIsolationScope = currentScopes?.isolationScope || getIsolationScope();\n\n const shouldForkIsolationScope = context.getValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY) === true;\n const scope = context.getValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY) ;\n const isolationScope = context.getValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY) ;\n\n const newCurrentScope = scope || currentScope.clone();\n const newIsolationScope =\n isolationScope || (shouldForkIsolationScope ? currentIsolationScope.clone() : currentIsolationScope);\n const scopes = { scope: newCurrentScope, isolationScope: newIsolationScope };\n\n const ctx1 = setScopesOnContext(context, scopes);\n\n // Remove the unneeded values again\n const ctx2 = ctx1\n .deleteValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY)\n .deleteValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY)\n .deleteValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY);\n\n setContextOnScope(newCurrentScope, ctx2);\n\n return super.with(ctx2, fn, thisArg, ...args);\n }\n\n /**\n * Gets underlying AsyncLocalStorage and symbol to allow lookup of scope.\n */\n getAsyncLocalStorageLookup() {\n return {\n // @ts-expect-error This is on the base class, but not part of the interface\n asyncLocalStorage: this._asyncLocalStorage,\n contextSymbol: SENTRY_SCOPES_CONTEXT_KEY,\n };\n }\n }\n\n return SentryContextManager ;\n}\n\n/**\n * This function runs through a list of OTEL Spans, and wraps them in an `SpanNode`\n * where each node holds a reference to their parent node.\n */\nfunction groupSpansWithParents(spans) {\n const nodeMap = new Map();\n\n for (const span of spans) {\n createOrUpdateSpanNodeAndRefs(nodeMap, span);\n }\n\n return Array.from(nodeMap, function ([_id, spanNode]) {\n return spanNode;\n });\n}\n\n/**\n * This returns the _local_ parent ID - `parentId` on the span may point to a remote span.\n */\nfunction getLocalParentId(span) {\n const parentIsRemote = span.attributes[SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE] === true;\n // If the parentId is the trace parent ID, we pretend it's undefined\n // As this means the parent exists somewhere else\n return !parentIsRemote ? getParentSpanId(span) : undefined;\n}\n\nfunction createOrUpdateSpanNodeAndRefs(nodeMap, span) {\n const id = span.spanContext().spanId;\n const parentId = getLocalParentId(span);\n\n if (!parentId) {\n createOrUpdateNode(nodeMap, { id, span, children: [] });\n return;\n }\n\n // Else make sure to create parent node as well\n // Note that the parent may not know it's parent _yet_, this may be updated in a later pass\n const parentNode = createOrGetParentNode(nodeMap, parentId);\n const node = createOrUpdateNode(nodeMap, { id, span, parentNode, children: [] });\n parentNode.children.push(node);\n}\n\nfunction createOrGetParentNode(nodeMap, id) {\n const existing = nodeMap.get(id);\n\n if (existing) {\n return existing;\n }\n\n return createOrUpdateNode(nodeMap, { id, children: [] });\n}\n\nfunction createOrUpdateNode(nodeMap, spanNode) {\n const existing = nodeMap.get(spanNode.id);\n\n // If span is already set, nothing to do here\n if (existing?.span) {\n return existing;\n }\n\n // If it exists but span is not set yet, we update it\n if (existing && !existing.span) {\n existing.span = spanNode.span;\n existing.parentNode = spanNode.parentNode;\n return existing;\n }\n\n // Else, we create a new one...\n nodeMap.set(spanNode.id, spanNode);\n return spanNode;\n}\n\n// canonicalCodesGrpcMap maps some GRPC codes to Sentry's span statuses. See description in grpc documentation.\nconst canonicalGrpcErrorCodesMap = {\n '1': 'cancelled',\n '2': 'unknown_error',\n '3': 'invalid_argument',\n '4': 'deadline_exceeded',\n '5': 'not_found',\n '6': 'already_exists',\n '7': 'permission_denied',\n '8': 'resource_exhausted',\n '9': 'failed_precondition',\n '10': 'aborted',\n '11': 'out_of_range',\n '12': 'unimplemented',\n '13': 'internal_error',\n '14': 'unavailable',\n '15': 'data_loss',\n '16': 'unauthenticated',\n} ;\n\nconst isStatusErrorMessageValid = (message) => {\n return Object.values(canonicalGrpcErrorCodesMap).includes(message );\n};\n\n/**\n * Get a Sentry span status from an otel span.\n */\nfunction mapStatus(span) {\n const attributes = spanHasAttributes(span) ? span.attributes : {};\n const status = spanHasStatus(span) ? span.status : undefined;\n\n if (status) {\n // Since span status OK is not set by default, we give it priority: https://opentelemetry.io/docs/concepts/signals/traces/#span-status\n if (status.code === SpanStatusCode.OK) {\n return { code: SPAN_STATUS_OK };\n // If the span is already marked as erroneous we return that exact status\n } else if (status.code === SpanStatusCode.ERROR) {\n if (typeof status.message === 'undefined') {\n const inferredStatus = inferStatusFromAttributes(attributes);\n if (inferredStatus) {\n return inferredStatus;\n }\n }\n\n if (status.message && isStatusErrorMessageValid(status.message)) {\n return { code: SPAN_STATUS_ERROR, message: status.message };\n } else {\n return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n }\n }\n }\n\n // If the span status is UNSET, we try to infer it from HTTP or GRPC status codes.\n const inferredStatus = inferStatusFromAttributes(attributes);\n\n if (inferredStatus) {\n return inferredStatus;\n }\n\n // We default to setting the spans status to ok.\n if (status?.code === SpanStatusCode.UNSET) {\n return { code: SPAN_STATUS_OK };\n } else {\n return { code: SPAN_STATUS_ERROR, message: 'unknown_error' };\n }\n}\n\nfunction inferStatusFromAttributes(attributes) {\n // If the span status is UNSET, we try to infer it from HTTP or GRPC status codes.\n\n // eslint-disable-next-line deprecation/deprecation\n const httpCodeAttribute = attributes[ATTR_HTTP_RESPONSE_STATUS_CODE] || attributes[SEMATTRS_HTTP_STATUS_CODE];\n // eslint-disable-next-line deprecation/deprecation\n const grpcCodeAttribute = attributes[SEMATTRS_RPC_GRPC_STATUS_CODE];\n\n const numberHttpCode =\n typeof httpCodeAttribute === 'number'\n ? httpCodeAttribute\n : typeof httpCodeAttribute === 'string'\n ? parseInt(httpCodeAttribute)\n : undefined;\n\n if (typeof numberHttpCode === 'number') {\n return getSpanStatusFromHttpCode(numberHttpCode);\n }\n\n if (typeof grpcCodeAttribute === 'string') {\n return { code: SPAN_STATUS_ERROR, message: canonicalGrpcErrorCodesMap[grpcCodeAttribute] || 'unknown_error' };\n }\n\n return undefined;\n}\n\nconst MAX_SPAN_COUNT = 1000;\nconst DEFAULT_TIMEOUT = 300; // 5 min\n\n/**\n * A Sentry-specific exporter that converts OpenTelemetry Spans to Sentry Spans & Transactions.\n */\nclass SentrySpanExporter {\n /*\n * A quick explanation on the buckets: We do bucketing of finished spans for efficiency. This span exporter is\n * accumulating spans until a root span is encountered and then it flushes all the spans that are descendants of that\n * root span. Because it is totally in the realm of possibilities that root spans are never finished, and we don't\n * want to accumulate spans indefinitely in memory, we need to periodically evacuate spans. Naively we could simply\n * store the spans in an array and each time a new span comes in we could iterate through the entire array and\n * evacuate all spans that have an end-timestamp that is older than our limit. This could get quite expensive because\n * we would have to iterate a potentially large number of spans every time we evacuate. We want to avoid these large\n * bursts of computation.\n *\n * Instead we go for a bucketing approach and put spans into buckets, based on what second\n * (modulo the time limit) the span was put into the exporter. With buckets, when we decide to evacuate, we can\n * iterate through the bucket entries instead, which have an upper bound of items, making the evacuation much more\n * efficient. Cleaning up also becomes much more efficient since it simply involves de-referencing a bucket within the\n * bucket array, and letting garbage collection take care of the rest.\n */\n\n // Essentially a a set of span ids that are already sent. The values are expiration\n // times in this cache so we don't hold onto them indefinitely.\n\n /* Internally, we use a debounced flush to give some wiggle room to the span processor to accumulate more spans. */\n\n constructor(options\n\n) {\n this._finishedSpanBucketSize = options?.timeout || DEFAULT_TIMEOUT;\n this._finishedSpanBuckets = new Array(this._finishedSpanBucketSize).fill(undefined);\n this._lastCleanupTimestampInS = Math.floor(_INTERNAL_safeDateNow() / 1000);\n this._spansToBucketEntry = new WeakMap();\n this._sentSpans = new Map();\n this._debouncedFlush = debounce(this.flush.bind(this), 1, { maxWait: 100 });\n }\n\n /**\n * Export a single span.\n * This is called by the span processor whenever a span is ended.\n */\n export(span) {\n const currentTimestampInS = Math.floor(_INTERNAL_safeDateNow() / 1000);\n\n if (this._lastCleanupTimestampInS !== currentTimestampInS) {\n let droppedSpanCount = 0;\n this._finishedSpanBuckets.forEach((bucket, i) => {\n if (bucket && bucket.timestampInS <= currentTimestampInS - this._finishedSpanBucketSize) {\n droppedSpanCount += bucket.spans.size;\n this._finishedSpanBuckets[i] = undefined;\n }\n });\n if (droppedSpanCount > 0) {\n DEBUG_BUILD &&\n debug.log(\n `SpanExporter dropped ${droppedSpanCount} spans because they were pending for more than ${this._finishedSpanBucketSize} seconds.`,\n );\n }\n this._lastCleanupTimestampInS = currentTimestampInS;\n }\n\n const currentBucketIndex = currentTimestampInS % this._finishedSpanBucketSize;\n const currentBucket = this._finishedSpanBuckets[currentBucketIndex] || {\n timestampInS: currentTimestampInS,\n spans: new Set(),\n };\n this._finishedSpanBuckets[currentBucketIndex] = currentBucket;\n currentBucket.spans.add(span);\n this._spansToBucketEntry.set(span, currentBucket);\n\n // If the span doesn't have a local parent ID (it's a root span), we're gonna flush all the ended spans\n const localParentId = getLocalParentId(span);\n if (!localParentId || this._sentSpans.has(localParentId)) {\n this._debouncedFlush();\n }\n }\n\n /**\n * Try to flush any pending spans immediately.\n * This is called internally by the exporter (via _debouncedFlush),\n * but can also be triggered externally if we force-flush.\n */\n flush() {\n const finishedSpans = this._finishedSpanBuckets.flatMap(bucket => (bucket ? Array.from(bucket.spans) : []));\n\n this._flushSentSpanCache();\n const sentSpans = this._maybeSend(finishedSpans);\n\n const sentSpanCount = sentSpans.size;\n const remainingOpenSpanCount = finishedSpans.length - sentSpanCount;\n DEBUG_BUILD &&\n debug.log(\n `SpanExporter exported ${sentSpanCount} spans, ${remainingOpenSpanCount} spans are waiting for their parent spans to finish`,\n );\n\n const expirationDate = _INTERNAL_safeDateNow() + DEFAULT_TIMEOUT * 1000;\n\n for (const span of sentSpans) {\n this._sentSpans.set(span.spanContext().spanId, expirationDate);\n const bucketEntry = this._spansToBucketEntry.get(span);\n if (bucketEntry) {\n bucketEntry.spans.delete(span);\n }\n }\n // Cancel a pending debounced flush, if there is one\n // This can be relevant if we directly flush, circumventing the debounce\n // in that case, we want to cancel any pending debounced flush\n this._debouncedFlush.cancel();\n }\n\n /**\n * Clear the exporter.\n * This is called when the span processor is shut down.\n */\n clear() {\n this._finishedSpanBuckets = this._finishedSpanBuckets.fill(undefined);\n this._sentSpans.clear();\n this._debouncedFlush.cancel();\n }\n\n /**\n * Send the given spans, but only if they are part of a finished transaction.\n *\n * Returns the sent spans.\n * Spans remain unsent when their parent span is not yet finished.\n * This will happen regularly, as child spans are generally finished before their parents.\n * But it _could_ also happen because, for whatever reason, a parent span was lost.\n * In this case, we'll eventually need to clean this up.\n */\n _maybeSend(spans) {\n const grouped = groupSpansWithParents(spans);\n const sentSpans = new Set();\n\n const rootNodes = this._getCompletedRootNodes(grouped);\n\n for (const root of rootNodes) {\n const span = root.span;\n sentSpans.add(span);\n const transactionEvent = createTransactionForOtelSpan(span);\n\n // Add an attribute to the transaction event to indicate that this transaction is an orphaned transaction\n if (root.parentNode && this._sentSpans.has(root.parentNode.id)) {\n const traceData = transactionEvent.contexts?.trace?.data;\n if (traceData) {\n traceData['sentry.parent_span_already_sent'] = true;\n }\n }\n\n // We'll recursively add all the child spans to this array\n const spans = transactionEvent.spans || [];\n\n for (const child of root.children) {\n createAndFinishSpanForOtelSpan(child, spans, sentSpans);\n }\n\n // spans.sort() mutates the array, but we do not use this anymore after this point\n // so we can safely mutate it here\n transactionEvent.spans =\n spans.length > MAX_SPAN_COUNT\n ? spans.sort((a, b) => a.start_timestamp - b.start_timestamp).slice(0, MAX_SPAN_COUNT)\n : spans;\n\n const measurements = timedEventsToMeasurements(span.events);\n if (measurements) {\n transactionEvent.measurements = measurements;\n }\n\n captureEvent(transactionEvent);\n }\n\n return sentSpans;\n }\n\n /** Remove \"expired\" span id entries from the _sentSpans cache. */\n _flushSentSpanCache() {\n const currentTimestamp = _INTERNAL_safeDateNow();\n // Note, it is safe to delete items from the map as we go: https://stackoverflow.com/a/35943995/90297\n for (const [spanId, expirationTime] of this._sentSpans.entries()) {\n if (expirationTime <= currentTimestamp) {\n this._sentSpans.delete(spanId);\n }\n }\n }\n\n /** Check if a node is a completed root node or a node whose parent has already been sent */\n _nodeIsCompletedRootNodeOrHasSentParent(node) {\n return !!node.span && (!node.parentNode || this._sentSpans.has(node.parentNode.id));\n }\n\n /** Get all completed root nodes from a list of nodes */\n _getCompletedRootNodes(nodes) {\n // TODO: We should be able to remove the explicit `node is SpanNodeCompleted` type guard\n // once we stop supporting TS < 5.5\n return nodes.filter((node) => this._nodeIsCompletedRootNodeOrHasSentParent(node));\n }\n}\n\nfunction parseSpan(span) {\n const attributes = span.attributes;\n\n const origin = attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] ;\n const op = attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] ;\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] ;\n\n return { origin, op, source };\n}\n\n/** Exported only for tests. */\nfunction createTransactionForOtelSpan(span) {\n const { op, description, data, origin = 'manual', source } = getSpanData(span);\n const capturedSpanScopes = getCapturedScopesOnSpan(span );\n\n const sampleRate = span.attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] ;\n\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: source,\n [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: sampleRate,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: origin,\n ...data,\n ...removeSentryAttributes(span.attributes),\n };\n\n const { links } = span;\n const { traceId: trace_id, spanId: span_id } = span.spanContext();\n\n // If parentSpanIdFromTraceState is defined at all, we want it to take precedence\n // In that case, an empty string should be interpreted as \"no parent span id\",\n // even if `span.parentSpanId` is set\n // this is the case when we are starting a new trace, where we have a virtual span based on the propagationContext\n // We only want to continue the traceId in this case, but ignore the parent span\n const parent_span_id = getParentSpanId(span);\n\n const status = mapStatus(span);\n\n const traceContext = {\n parent_span_id,\n span_id,\n trace_id,\n data: attributes,\n origin,\n op,\n status: getStatusMessage(status), // As per protocol, span status is allowed to be undefined\n links: convertSpanLinksForEnvelope(links),\n };\n\n const statusCode = attributes[ATTR_HTTP_RESPONSE_STATUS_CODE];\n const responseContext = typeof statusCode === 'number' ? { response: { status_code: statusCode } } : undefined;\n\n const transactionEvent = {\n contexts: {\n trace: traceContext,\n otel: {\n resource: span.resource.attributes,\n },\n ...responseContext,\n },\n spans: [],\n start_timestamp: spanTimeInputToSeconds(span.startTime),\n timestamp: spanTimeInputToSeconds(span.endTime),\n transaction: description,\n type: 'transaction',\n sdkProcessingMetadata: {\n capturedSpanScope: capturedSpanScopes.scope,\n capturedSpanIsolationScope: capturedSpanScopes.isolationScope,\n sampleRate,\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span ),\n },\n ...(source && {\n transaction_info: {\n source,\n },\n }),\n };\n\n return transactionEvent;\n}\n\nfunction createAndFinishSpanForOtelSpan(node, spans, sentSpans) {\n const span = node.span;\n\n if (span) {\n sentSpans.add(span);\n }\n\n const shouldDrop = !span;\n\n // If this span should be dropped, we still want to create spans for the children of this\n if (shouldDrop) {\n node.children.forEach(child => {\n createAndFinishSpanForOtelSpan(child, spans, sentSpans);\n });\n return;\n }\n\n const span_id = span.spanContext().spanId;\n const trace_id = span.spanContext().traceId;\n const parentSpanId = getParentSpanId(span);\n\n const { attributes, startTime, endTime, links } = span;\n\n const { op, description, data, origin = 'manual' } = getSpanData(span);\n const allData = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: origin,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n ...removeSentryAttributes(attributes),\n ...data,\n };\n\n const status = mapStatus(span);\n\n const spanJSON = {\n span_id,\n trace_id,\n data: allData,\n description,\n parent_span_id: parentSpanId,\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || undefined,\n status: getStatusMessage(status), // As per protocol, span status is allowed to be undefined\n op,\n origin,\n measurements: timedEventsToMeasurements(span.events),\n links: convertSpanLinksForEnvelope(links),\n };\n\n spans.push(spanJSON);\n\n node.children.forEach(child => {\n createAndFinishSpanForOtelSpan(child, spans, sentSpans);\n });\n}\n\nfunction getSpanData(span)\n\n {\n const { op: definedOp, source: definedSource, origin } = parseSpan(span);\n const { op: inferredOp, description, source: inferredSource, data: inferredData } = parseSpanDescription(span);\n\n const op = definedOp || inferredOp;\n const source = definedSource || inferredSource;\n\n const data = { ...inferredData, ...getData(span) };\n\n return {\n op,\n description,\n source,\n origin,\n data,\n };\n}\n\n/**\n * Remove custom `sentry.` attributes we do not need to send.\n * These are more carrier attributes we use inside of the SDK, we do not need to send them to the API.\n */\nfunction removeSentryAttributes(data) {\n const cleanedData = { ...data };\n\n /* eslint-disable @typescript-eslint/no-dynamic-delete */\n delete cleanedData[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE];\n delete cleanedData[SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE];\n delete cleanedData[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n /* eslint-enable @typescript-eslint/no-dynamic-delete */\n\n return cleanedData;\n}\n\nfunction getData(span) {\n const attributes = span.attributes;\n const data = {};\n\n if (span.kind !== SpanKind.INTERNAL) {\n data['otel.kind'] = SpanKind[span.kind];\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const maybeHttpStatusCodeAttribute = attributes[SEMATTRS_HTTP_STATUS_CODE];\n if (maybeHttpStatusCodeAttribute) {\n data[ATTR_HTTP_RESPONSE_STATUS_CODE] = maybeHttpStatusCodeAttribute ;\n }\n\n const requestData = getRequestSpanData(span);\n\n if (requestData.url) {\n data.url = requestData.url;\n }\n\n if (requestData['http.query']) {\n data['http.query'] = requestData['http.query'].slice(1);\n }\n if (requestData['http.fragment']) {\n data['http.fragment'] = requestData['http.fragment'].slice(1);\n }\n\n return data;\n}\n\nfunction onSpanStart(span, parentContext) {\n // This is a reliable way to get the parent span - because this is exactly how the parent is identified in the OTEL SDK\n const parentSpan = trace.getSpan(parentContext);\n\n let scopes = getScopesFromContext(parentContext);\n\n // We need access to the parent span in order to be able to move up the span tree for breadcrumbs\n if (parentSpan && !parentSpan.spanContext().isRemote) {\n addChildSpanToSpan(parentSpan, span);\n }\n\n // We need this in the span exporter\n if (parentSpan?.spanContext().isRemote) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE, true);\n }\n\n // The root context does not have scopes stored, so we check for this specifically\n // As fallback we attach the global scopes\n if (parentContext === ROOT_CONTEXT) {\n scopes = {\n scope: getDefaultCurrentScope(),\n isolationScope: getDefaultIsolationScope(),\n };\n }\n\n // We need the scope at time of span creation in order to apply it to the event when the span is finished\n if (scopes) {\n setCapturedScopesOnSpan(span, scopes.scope, scopes.isolationScope);\n }\n\n logSpanStart(span);\n\n const client = getClient();\n client?.emit('spanStart', span);\n}\n\nfunction onSpanEnd(span) {\n logSpanEnd(span);\n\n const client = getClient();\n client?.emit('spanEnd', span);\n}\n\n/**\n * Converts OpenTelemetry Spans to Sentry Spans and sends them to Sentry via\n * the Sentry SDK.\n */\nclass SentrySpanProcessor {\n\n constructor(options) {\n setIsSetup('SentrySpanProcessor');\n this._exporter = new SentrySpanExporter(options);\n }\n\n /**\n * @inheritDoc\n */\n async forceFlush() {\n this._exporter.flush();\n }\n\n /**\n * @inheritDoc\n */\n async shutdown() {\n this._exporter.clear();\n }\n\n /**\n * @inheritDoc\n */\n onStart(span, parentContext) {\n onSpanStart(span, parentContext);\n }\n\n /** @inheritDoc */\n onEnd(span) {\n onSpanEnd(span);\n\n this._exporter.export(span);\n }\n}\n\n/**\n * A custom OTEL sampler that uses Sentry sampling rates to make its decision\n */\nclass SentrySampler {\n\n constructor(client) {\n this._client = client;\n setIsSetup('SentrySampler');\n }\n\n /** @inheritDoc */\n shouldSample(\n context,\n traceId,\n spanName,\n spanKind,\n spanAttributes,\n _links,\n ) {\n const options = this._client.getOptions();\n\n const parentSpan = getValidSpan(context);\n const parentContext = parentSpan?.spanContext();\n\n if (!hasSpansEnabled(options)) {\n return wrapSamplingDecision({ decision: undefined, context, spanAttributes });\n }\n\n // `ATTR_HTTP_REQUEST_METHOD` is the new attribute, but we still support the old one, `SEMATTRS_HTTP_METHOD`, for now.\n // eslint-disable-next-line deprecation/deprecation\n const maybeSpanHttpMethod = spanAttributes[SEMATTRS_HTTP_METHOD] || spanAttributes[ATTR_HTTP_REQUEST_METHOD];\n\n // If we have a http.client span that has no local parent, we never want to sample it\n // but we want to leave downstream sampling decisions up to the server\n if (spanKind === SpanKind.CLIENT && maybeSpanHttpMethod && (!parentSpan || parentContext?.isRemote)) {\n return wrapSamplingDecision({ decision: undefined, context, spanAttributes });\n }\n\n const parentSampled = parentSpan ? getParentSampled(parentSpan, traceId, spanName) : undefined;\n const isRootSpan = !parentSpan || parentContext?.isRemote;\n\n // We only sample based on parameters (like tracesSampleRate or tracesSampler) for root spans (which is done in sampleSpan).\n // Non-root-spans simply inherit the sampling decision from their parent.\n if (!isRootSpan) {\n return wrapSamplingDecision({\n decision: parentSampled ? SamplingDecision.RECORD_AND_SAMPLED : SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n });\n }\n\n // We want to pass the inferred name & attributes to the sampler method\n const {\n description: inferredSpanName,\n data: inferredAttributes,\n op,\n } = inferSpanData(spanName, spanAttributes, spanKind);\n\n const mergedAttributes = {\n ...inferredAttributes,\n ...spanAttributes,\n };\n\n if (op) {\n mergedAttributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] = op;\n }\n\n const mutableSamplingDecision = { decision: true };\n this._client.emit(\n 'beforeSampling',\n {\n spanAttributes: mergedAttributes,\n spanName: inferredSpanName,\n parentSampled: parentSampled,\n parentContext: parentContext,\n },\n mutableSamplingDecision,\n );\n if (!mutableSamplingDecision.decision) {\n return wrapSamplingDecision({ decision: undefined, context, spanAttributes });\n }\n\n const { isolationScope } = getScopesFromContext(context) ?? {};\n\n const dscString = parentContext?.traceState ? parentContext.traceState.get(SENTRY_TRACE_STATE_DSC) : undefined;\n const dsc = dscString ? baggageHeaderToDynamicSamplingContext(dscString) : undefined;\n\n const sampleRand = parseSampleRate(dsc?.sample_rand) ?? _INTERNAL_safeMathRandom();\n\n const [sampled, sampleRate, localSampleRateWasApplied] = sampleSpan(\n options,\n {\n name: inferredSpanName,\n attributes: mergedAttributes,\n normalizedRequest: isolationScope?.getScopeData().sdkProcessingMetadata.normalizedRequest,\n parentSampled,\n parentSampleRate: parseSampleRate(dsc?.sample_rate),\n },\n sampleRand,\n );\n\n const method = `${maybeSpanHttpMethod}`.toUpperCase();\n if (method === 'OPTIONS' || method === 'HEAD') {\n DEBUG_BUILD && debug.log(`[Tracing] Not sampling span because HTTP method is '${method}' for ${spanName}`);\n\n return wrapSamplingDecision({\n decision: SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n sampleRand,\n downstreamTraceSampleRate: 0, // we don't want to sample anything in the downstream trace either\n });\n }\n\n if (\n !sampled &&\n // We check for `parentSampled === undefined` because we only want to record client reports for spans that are trace roots (ie. when there was incoming trace)\n parentSampled === undefined\n ) {\n DEBUG_BUILD && debug.log('[Tracing] Discarding root span because its trace was not chosen to be sampled.');\n this._client.recordDroppedEvent('sample_rate', 'transaction');\n }\n\n return {\n ...wrapSamplingDecision({\n decision: sampled ? SamplingDecision.RECORD_AND_SAMPLED : SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n sampleRand,\n downstreamTraceSampleRate: localSampleRateWasApplied ? sampleRate : undefined,\n }),\n attributes: {\n // We set the sample rate on the span when a local sample rate was applied to better understand how traces were sampled in Sentry\n [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: localSampleRateWasApplied ? sampleRate : undefined,\n },\n };\n }\n\n /** Returns the sampler name or short description with the configuration. */\n toString() {\n return 'SentrySampler';\n }\n}\n\nfunction getParentSampled(parentSpan, traceId, spanName) {\n const parentContext = parentSpan.spanContext();\n\n // Only inherit sample rate if `traceId` is the same\n // Note for testing: `isSpanContextValid()` checks the format of the traceId/spanId, so we need to pass valid ones\n if (isSpanContextValid(parentContext) && parentContext.traceId === traceId) {\n if (parentContext.isRemote) {\n const parentSampled = getSamplingDecision(parentSpan.spanContext());\n DEBUG_BUILD &&\n debug.log(`[Tracing] Inheriting remote parent's sampled decision for ${spanName}: ${parentSampled}`);\n return parentSampled;\n }\n\n const parentSampled = getSamplingDecision(parentContext);\n DEBUG_BUILD && debug.log(`[Tracing] Inheriting parent's sampled decision for ${spanName}: ${parentSampled}`);\n return parentSampled;\n }\n\n return undefined;\n}\n\n/**\n * Wrap a sampling decision with data that Sentry needs to work properly with it.\n * If you pass `decision: undefined`, it will be treated as `NOT_RECORDING`, but in contrast to passing `NOT_RECORDING`\n * it will not propagate this decision to downstream Sentry SDKs.\n */\nfunction wrapSamplingDecision({\n decision,\n context,\n spanAttributes,\n sampleRand,\n downstreamTraceSampleRate,\n}\n\n) {\n let traceState = getBaseTraceState(context, spanAttributes);\n\n // We will override the propagated sample rate downstream when\n // - the tracesSampleRate is applied\n // - the tracesSampler is invoked\n // Since unsampled OTEL spans (NonRecordingSpans) cannot hold attributes we need to store this on the (trace)context.\n if (downstreamTraceSampleRate !== undefined) {\n traceState = traceState.set(SENTRY_TRACE_STATE_SAMPLE_RATE, `${downstreamTraceSampleRate}`);\n }\n\n if (sampleRand !== undefined) {\n traceState = traceState.set(SENTRY_TRACE_STATE_SAMPLE_RAND, `${sampleRand}`);\n }\n\n // If the decision is undefined, we treat it as NOT_RECORDING, but we don't propagate this decision to downstream SDKs\n // Which is done by not setting `SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING` traceState\n if (decision == undefined) {\n return { decision: SamplingDecision.NOT_RECORD, traceState };\n }\n\n if (decision === SamplingDecision.NOT_RECORD) {\n return { decision, traceState: traceState.set(SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING, '1') };\n }\n\n return { decision, traceState };\n}\n\nfunction getBaseTraceState(context, spanAttributes) {\n const parentSpan = trace.getSpan(context);\n const parentContext = parentSpan?.spanContext();\n\n let traceState = parentContext?.traceState || new TraceState();\n\n // We always keep the URL on the trace state, so we can access it in the propagator\n // `ATTR_URL_FULL` is the new attribute, but we still support the old one, `ATTR_HTTP_URL`, for now.\n // eslint-disable-next-line deprecation/deprecation\n const url = spanAttributes[SEMATTRS_HTTP_URL] || spanAttributes[ATTR_URL_FULL];\n if (url && typeof url === 'string') {\n traceState = traceState.set(SENTRY_TRACE_STATE_URL, url);\n }\n\n return traceState;\n}\n\n/**\n * If the active span is invalid, we want to ignore it as parent.\n * This aligns with how otel tracers and default samplers handle these cases.\n */\nfunction getValidSpan(context) {\n const span = trace.getSpan(context);\n return span && isSpanContextValid(span.spanContext()) ? span : undefined;\n}\n\nexport { SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, SentryPropagator, SentrySampler, SentrySpanProcessor, continueTrace, enhanceDscWithOpenTelemetryRootSpanName, getActiveSpan, getRequestSpanData, getScopesFromContext, getSpanKind, getTraceContextForScope, isSentryRequestSpan, openTelemetrySetupCheck, setOpenTelemetryContextAsyncContextStrategy, setupEventContextTrace, spanHasAttributes, spanHasEvents, spanHasKind, spanHasName, spanHasParentId, spanHasStatus, startInactiveSpan, startSpan, startSpanManual, suppressTracing, withActiveSpan, wrapClientClass, wrapContextManagerClass, wrapSamplingDecision };\n//# sourceMappingURL=index.js.map\n", - "import { diag, DiagLogLevel } from '@opentelemetry/api';\nimport { debug } from '@sentry/core';\n\n/**\n * Setup the OTEL logger to use our own debug logger.\n */\nfunction setupOpenTelemetryLogger() {\n // Disable diag, to ensure this works even if called multiple times\n diag.disable();\n diag.setLogger(\n {\n error: debug.error,\n warn: debug.warn,\n info: debug.log,\n debug: debug.log,\n verbose: debug.log,\n },\n DiagLogLevel.DEBUG,\n );\n}\n\nexport { setupOpenTelemetryLogger };\n//# sourceMappingURL=logger.js.map\n", - "import { registerInstrumentations } from '@opentelemetry/instrumentation';\n\n/** Exported only for tests. */\nconst INSTRUMENTED = {};\n\n/**\n * Instrument an OpenTelemetry instrumentation once.\n * This will skip running instrumentation again if it was already instrumented.\n */\nfunction generateInstrumentOnce(\n name,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n creatorOrClass,\n optionsCallback,\n) {\n if (optionsCallback) {\n return _generateInstrumentOnceWithOptions(\n name,\n creatorOrClass ,\n optionsCallback,\n );\n }\n\n return _generateInstrumentOnce(name, creatorOrClass );\n}\n\n// The plain version without handling of options\n// Should not be used with custom options that are mutated in the creator!\nfunction _generateInstrumentOnce(\n name,\n creator,\n) {\n return Object.assign(\n (options) => {\n const instrumented = INSTRUMENTED[name] ;\n if (instrumented) {\n // If options are provided, ensure we update them\n if (options) {\n instrumented.setConfig(options);\n }\n return instrumented;\n }\n\n const instrumentation = creator(options);\n INSTRUMENTED[name] = instrumentation;\n\n registerInstrumentations({\n instrumentations: [instrumentation],\n });\n\n return instrumentation;\n },\n { id: name },\n );\n}\n\n// This version handles options properly\nfunction _generateInstrumentOnceWithOptions\n\n(\n name,\n instrumentationClass,\n optionsCallback,\n) {\n return Object.assign(\n (_options) => {\n const options = optionsCallback(_options);\n\n const instrumented = INSTRUMENTED[name] ;\n if (instrumented) {\n // Ensure we update options\n instrumented.setConfig(options);\n return instrumented;\n }\n\n const instrumentation = new instrumentationClass(options) ;\n INSTRUMENTED[name] = instrumentation;\n\n registerInstrumentations({\n instrumentations: [instrumentation],\n });\n\n return instrumentation;\n },\n { id: name },\n );\n}\n\n/**\n * Ensure a given callback is called when the instrumentation is actually wrapping something.\n * This can be used to ensure some logic is only called when the instrumentation is actually active.\n *\n * This function returns a function that can be invoked with a callback.\n * This callback will either be invoked immediately\n * (e.g. if the instrumentation was already wrapped, or if _wrap could not be patched),\n * or once the instrumentation is actually wrapping something.\n *\n * Make sure to call this function right after adding the instrumentation, otherwise it may be too late!\n * The returned callback can be used any time, and also multiple times.\n */\nfunction instrumentWhenWrapped(instrumentation) {\n let isWrapped = false;\n let callbacks = [];\n\n if (!hasWrap(instrumentation)) {\n isWrapped = true;\n } else {\n const originalWrap = instrumentation['_wrap'];\n\n instrumentation['_wrap'] = (...args) => {\n isWrapped = true;\n callbacks.forEach(callback => callback());\n callbacks = [];\n return originalWrap(...args);\n };\n }\n\n const registerCallback = (callback) => {\n if (isWrapped) {\n callback();\n } else {\n callbacks.push(callback);\n }\n };\n\n return registerCallback;\n}\n\nfunction hasWrap(\n instrumentation,\n) {\n return typeof (instrumentation )['_wrap'] === 'function';\n}\n\nexport { INSTRUMENTED, generateInstrumentOnce, instrumentWhenWrapped };\n//# sourceMappingURL=instrument.js.map\n", - "import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport { defineIntegration, addBreadcrumb, captureException } from '@sentry/core';\n\nconst INTEGRATION_NAME = 'ChildProcess';\n\n/**\n * Capture breadcrumbs and events for child processes and worker threads.\n */\nconst childProcessIntegration = defineIntegration((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setup() {\n diagnosticsChannel.channel('child_process').subscribe((event) => {\n if (event && typeof event === 'object' && 'process' in event) {\n captureChildProcessEvents(event.process , options);\n }\n });\n\n diagnosticsChannel.channel('worker_threads').subscribe((event) => {\n if (event && typeof event === 'object' && 'worker' in event) {\n captureWorkerThreadEvents(event.worker , options);\n }\n });\n },\n };\n});\n\nfunction captureChildProcessEvents(child, options) {\n let hasExited = false;\n let data;\n\n child\n .on('spawn', () => {\n // This is Sentry getting macOS OS context\n if (child.spawnfile === '/usr/bin/sw_vers') {\n hasExited = true;\n return;\n }\n\n data = { spawnfile: child.spawnfile };\n if (options.includeChildProcessArgs) {\n data.spawnargs = child.spawnargs;\n }\n })\n .on('exit', code => {\n if (!hasExited) {\n hasExited = true;\n\n // Only log for non-zero exit codes\n if (code !== null && code !== 0) {\n addBreadcrumb({\n category: 'child_process',\n message: `Child process exited with code '${code}'`,\n level: code === 0 ? 'info' : 'warning',\n data,\n });\n }\n }\n })\n .on('error', error => {\n if (!hasExited) {\n hasExited = true;\n\n addBreadcrumb({\n category: 'child_process',\n message: `Child process errored with '${error.message}'`,\n level: 'error',\n data,\n });\n }\n });\n}\n\nfunction captureWorkerThreadEvents(worker, options) {\n let threadId;\n\n worker\n .on('online', () => {\n threadId = worker.threadId;\n })\n .on('error', error => {\n if (options.captureWorkerErrors !== false) {\n captureException(error, {\n mechanism: { type: 'auto.child_process.worker_thread', handled: false, data: { threadId: String(threadId) } },\n });\n } else {\n addBreadcrumb({\n category: 'worker_thread',\n message: `Worker thread errored with '${error.message}'`,\n level: 'error',\n data: { threadId },\n });\n }\n });\n}\n\nexport { childProcessIntegration };\n//# sourceMappingURL=childProcess.js.map\n", - "import { execFile } from 'node:child_process';\nimport { readFile, readdir } from 'node:fs';\nimport * as os from 'node:os';\nimport { join } from 'node:path';\nimport { promisify } from 'node:util';\nimport { defineIntegration } from '@sentry/core';\n\n/* eslint-disable max-lines */\n\n\nconst readFileAsync = promisify(readFile);\nconst readDirAsync = promisify(readdir);\n\n// Process enhanced with methods from Node 18, 20, 22 as @types/node\n// is on `14.18.0` to match minimum version requirements of the SDK\n\nconst INTEGRATION_NAME = 'Context';\n\nconst _nodeContextIntegration = ((options = {}) => {\n let cachedContext;\n\n const _options = {\n app: true,\n os: true,\n device: true,\n culture: true,\n cloudResource: true,\n ...options,\n };\n\n /** Add contexts to the event. Caches the context so we only look it up once. */\n async function addContext(event) {\n if (cachedContext === undefined) {\n cachedContext = _getContexts();\n }\n\n const updatedContext = _updateContext(await cachedContext);\n\n // TODO(v11): conditional with `sendDefaultPii` here?\n event.contexts = {\n ...event.contexts,\n app: { ...updatedContext.app, ...event.contexts?.app },\n os: { ...updatedContext.os, ...event.contexts?.os },\n device: { ...updatedContext.device, ...event.contexts?.device },\n culture: { ...updatedContext.culture, ...event.contexts?.culture },\n cloud_resource: { ...updatedContext.cloud_resource, ...event.contexts?.cloud_resource },\n };\n\n return event;\n }\n\n /** Get the contexts from node. */\n async function _getContexts() {\n const contexts = {};\n\n if (_options.os) {\n contexts.os = await getOsContext();\n }\n\n if (_options.app) {\n contexts.app = getAppContext();\n }\n\n if (_options.device) {\n contexts.device = getDeviceContext(_options.device);\n }\n\n if (_options.culture) {\n const culture = getCultureContext();\n\n if (culture) {\n contexts.culture = culture;\n }\n }\n\n if (_options.cloudResource) {\n contexts.cloud_resource = getCloudResourceContext();\n }\n\n return contexts;\n }\n\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n return addContext(event);\n },\n };\n}) ;\n\n/**\n * Capture context about the environment and the device that the client is running on, to events.\n */\nconst nodeContextIntegration = defineIntegration(_nodeContextIntegration);\n\n/**\n * Updates the context with dynamic values that can change\n */\nfunction _updateContext(contexts) {\n // Only update properties if they exist\n\n if (contexts.app?.app_memory) {\n contexts.app.app_memory = process.memoryUsage().rss;\n }\n\n if (contexts.app?.free_memory && typeof (process ).availableMemory === 'function') {\n const freeMemory = (process ).availableMemory?.();\n if (freeMemory != null) {\n contexts.app.free_memory = freeMemory;\n }\n }\n\n if (contexts.device?.free_memory) {\n contexts.device.free_memory = os.freemem();\n }\n\n return contexts;\n}\n\n/**\n * Returns the operating system context.\n *\n * Based on the current platform, this uses a different strategy to provide the\n * most accurate OS information. Since this might involve spawning subprocesses\n * or accessing the file system, this should only be executed lazily and cached.\n *\n * - On macOS (Darwin), this will execute the `sw_vers` utility. The context\n * has a `name`, `version`, `build` and `kernel_version` set.\n * - On Linux, this will try to load a distribution release from `/etc` and set\n * the `name`, `version` and `kernel_version` fields.\n * - On all other platforms, only a `name` and `version` will be returned. Note\n * that `version` might actually be the kernel version.\n */\nasync function getOsContext() {\n const platformId = os.platform();\n switch (platformId) {\n case 'darwin':\n return getDarwinInfo();\n case 'linux':\n return getLinuxInfo();\n default:\n return {\n name: PLATFORM_NAMES[platformId] || platformId,\n version: os.release(),\n };\n }\n}\n\nfunction getCultureContext() {\n try {\n if (typeof process.versions.icu !== 'string') {\n // Node was built without ICU support\n return;\n }\n\n // Check that node was built with full Intl support. Its possible it was built without support for non-English\n // locales which will make resolvedOptions inaccurate\n //\n // https://nodejs.org/api/intl.html#detecting-internationalization-support\n const january = new Date(9e8);\n const spanish = new Intl.DateTimeFormat('es', { month: 'long' });\n if (spanish.format(january) === 'enero') {\n const options = Intl.DateTimeFormat().resolvedOptions();\n\n return {\n locale: options.locale,\n timezone: options.timeZone,\n };\n }\n } catch {\n //\n }\n\n return;\n}\n\n/**\n * Get app context information from process\n */\nfunction getAppContext() {\n const app_memory = process.memoryUsage().rss;\n // oxlint-disable-next-line sdk/no-unsafe-random-apis\n const app_start_time = new Date(Date.now() - process.uptime() * 1000).toISOString();\n // https://nodejs.org/api/process.html#processavailablememory\n const appContext = { app_start_time, app_memory };\n\n if (typeof (process ).availableMemory === 'function') {\n const freeMemory = (process ).availableMemory?.();\n if (freeMemory != null) {\n appContext.free_memory = freeMemory;\n }\n }\n\n return appContext;\n}\n\n/**\n * Gets device information from os\n */\nfunction getDeviceContext(deviceOpt) {\n const device = {};\n\n // Sometimes os.uptime() throws due to lacking permissions: https://github.com/getsentry/sentry-javascript/issues/8202\n let uptime;\n try {\n uptime = os.uptime();\n } catch {\n // noop\n }\n\n // os.uptime or its return value seem to be undefined in certain environments (e.g. Azure functions).\n // Hence, we only set boot time, if we get a valid uptime value.\n // @see https://github.com/getsentry/sentry-javascript/issues/5856\n if (typeof uptime === 'number') {\n // oxlint-disable-next-line sdk/no-unsafe-random-apis\n device.boot_time = new Date(Date.now() - uptime * 1000).toISOString();\n }\n\n device.arch = os.arch();\n\n if (deviceOpt === true || deviceOpt.memory) {\n device.memory_size = os.totalmem();\n device.free_memory = os.freemem();\n }\n\n if (deviceOpt === true || deviceOpt.cpu) {\n const cpuInfo = os.cpus() ;\n const firstCpu = cpuInfo?.[0];\n if (firstCpu) {\n device.processor_count = cpuInfo.length;\n device.cpu_description = firstCpu.model;\n device.processor_frequency = firstCpu.speed;\n }\n }\n\n return device;\n}\n\n/** Mapping of Node's platform names to actual OS names. */\nconst PLATFORM_NAMES = {\n aix: 'IBM AIX',\n freebsd: 'FreeBSD',\n openbsd: 'OpenBSD',\n sunos: 'SunOS',\n win32: 'Windows',\n ohos: 'OpenHarmony',\n android: 'Android',\n};\n\n/** Linux version file to check for a distribution. */\n\n/** Mapping of linux release files located in /etc to distributions. */\nconst LINUX_DISTROS = [\n { name: 'fedora-release', distros: ['Fedora'] },\n { name: 'redhat-release', distros: ['Red Hat Linux', 'Centos'] },\n { name: 'redhat_version', distros: ['Red Hat Linux'] },\n { name: 'SuSE-release', distros: ['SUSE Linux'] },\n { name: 'lsb-release', distros: ['Ubuntu Linux', 'Arch Linux'] },\n { name: 'debian_version', distros: ['Debian'] },\n { name: 'debian_release', distros: ['Debian'] },\n { name: 'arch-release', distros: ['Arch Linux'] },\n { name: 'gentoo-release', distros: ['Gentoo Linux'] },\n { name: 'novell-release', distros: ['SUSE Linux'] },\n { name: 'alpine-release', distros: ['Alpine Linux'] },\n];\n\n/** Functions to extract the OS version from Linux release files. */\nconst LINUX_VERSIONS\n\n = {\n alpine: content => content,\n arch: content => matchFirst(/distrib_release=(.*)/, content),\n centos: content => matchFirst(/release ([^ ]+)/, content),\n debian: content => content,\n fedora: content => matchFirst(/release (..)/, content),\n mint: content => matchFirst(/distrib_release=(.*)/, content),\n red: content => matchFirst(/release ([^ ]+)/, content),\n suse: content => matchFirst(/VERSION = (.*)\\n/, content),\n ubuntu: content => matchFirst(/distrib_release=(.*)/, content),\n};\n\n/**\n * Executes a regular expression with one capture group.\n *\n * @param regex A regular expression to execute.\n * @param text Content to execute the RegEx on.\n * @returns The captured string if matched; otherwise undefined.\n */\nfunction matchFirst(regex, text) {\n const match = regex.exec(text);\n return match ? match[1] : undefined;\n}\n\n/** Loads the macOS operating system context. */\nasync function getDarwinInfo() {\n // Default values that will be used in case no operating system information\n // can be loaded. The default version is computed via heuristics from the\n // kernel version, but the build ID is missing.\n const darwinInfo = {\n kernel_version: os.release(),\n name: 'Mac OS X',\n version: `10.${Number(os.release().split('.')[0]) - 4}`,\n };\n\n try {\n // We try to load the actual macOS version by executing the `sw_vers` tool.\n // This tool should be available on every standard macOS installation. In\n // case this fails, we stick with the values computed above.\n\n const output = await new Promise((resolve, reject) => {\n execFile('/usr/bin/sw_vers', (error, stdout) => {\n if (error) {\n reject(error);\n return;\n }\n resolve(stdout);\n });\n });\n\n darwinInfo.name = matchFirst(/^ProductName:\\s+(.*)$/m, output);\n darwinInfo.version = matchFirst(/^ProductVersion:\\s+(.*)$/m, output);\n darwinInfo.build = matchFirst(/^BuildVersion:\\s+(.*)$/m, output);\n } catch {\n // ignore\n }\n\n return darwinInfo;\n}\n\n/** Returns a distribution identifier to look up version callbacks. */\nfunction getLinuxDistroId(name) {\n return (name.split(' ') )[0].toLowerCase();\n}\n\n/** Loads the Linux operating system context. */\nasync function getLinuxInfo() {\n // By default, we cannot assume anything about the distribution or Linux\n // version. `os.release()` returns the kernel version and we assume a generic\n // \"Linux\" name, which will be replaced down below.\n const linuxInfo = {\n kernel_version: os.release(),\n name: 'Linux',\n };\n\n try {\n // We start guessing the distribution by listing files in the /etc\n // directory. This is were most Linux distributions (except Knoppix) store\n // release files with certain distribution-dependent meta data. We search\n // for exactly one known file defined in `LINUX_DISTROS` and exit if none\n // are found. In case there are more than one file, we just stick with the\n // first one.\n const etcFiles = await readDirAsync('/etc');\n const distroFile = LINUX_DISTROS.find(file => etcFiles.includes(file.name));\n if (!distroFile) {\n return linuxInfo;\n }\n\n // Once that file is known, load its contents. To make searching in those\n // files easier, we lowercase the file contents. Since these files are\n // usually quite small, this should not allocate too much memory and we only\n // hold on to it for a very short amount of time.\n const distroPath = join('/etc', distroFile.name);\n const contents = (await readFileAsync(distroPath, { encoding: 'utf-8' })).toLowerCase();\n\n // Some Linux distributions store their release information in the same file\n // (e.g. RHEL and Centos). In those cases, we scan the file for an\n // identifier, that basically consists of the first word of the linux\n // distribution name (e.g. \"red\" for Red Hat). In case there is no match, we\n // just assume the first distribution in our list.\n const { distros } = distroFile;\n linuxInfo.name = distros.find(d => contents.indexOf(getLinuxDistroId(d)) >= 0) || distros[0];\n\n // Based on the found distribution, we can now compute the actual version\n // number. This is different for every distribution, so several strategies\n // are computed in `LINUX_VERSIONS`.\n const id = getLinuxDistroId(linuxInfo.name);\n linuxInfo.version = LINUX_VERSIONS[id]?.(contents);\n } catch {\n // ignore\n }\n\n return linuxInfo;\n}\n\n/**\n * Grabs some information about hosting provider based on best effort.\n */\nfunction getCloudResourceContext() {\n if (process.env.VERCEL) {\n // https://vercel.com/docs/concepts/projects/environment-variables/system-environment-variables#system-environment-variables\n return {\n 'cloud.provider': 'vercel',\n 'cloud.region': process.env.VERCEL_REGION,\n };\n } else if (process.env.AWS_REGION) {\n // https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html\n return {\n 'cloud.provider': 'aws',\n 'cloud.region': process.env.AWS_REGION,\n 'cloud.platform': process.env.AWS_EXECUTION_ENV,\n };\n } else if (process.env.GCP_PROJECT) {\n // https://cloud.google.com/composer/docs/how-to/managing/environment-variables#reserved_variables\n return {\n 'cloud.provider': 'gcp',\n };\n } else if (process.env.ALIYUN_REGION_ID) {\n // TODO: find where I found these environment variables - at least gc.github.com returns something\n return {\n 'cloud.provider': 'alibaba_cloud',\n 'cloud.region': process.env.ALIYUN_REGION_ID,\n };\n } else if (process.env.WEBSITE_SITE_NAME && process.env.REGION_NAME) {\n // https://learn.microsoft.com/en-us/azure/app-service/reference-app-settings?tabs=kudu%2Cdotnet#app-environment\n return {\n 'cloud.provider': 'azure',\n 'cloud.region': process.env.REGION_NAME,\n };\n } else if (process.env.IBM_CLOUD_REGION) {\n // TODO: find where I found these environment variables - at least gc.github.com returns something\n return {\n 'cloud.provider': 'ibm_cloud',\n 'cloud.region': process.env.IBM_CLOUD_REGION,\n };\n } else if (process.env.TENCENTCLOUD_REGION) {\n // https://www.tencentcloud.com/document/product/583/32748\n return {\n 'cloud.provider': 'tencent_cloud',\n 'cloud.region': process.env.TENCENTCLOUD_REGION,\n 'cloud.account.id': process.env.TENCENTCLOUD_APPID,\n 'cloud.availability_zone': process.env.TENCENTCLOUD_ZONE,\n };\n } else if (process.env.NETLIFY) {\n // https://docs.netlify.com/configure-builds/environment-variables/#read-only-variables\n return {\n 'cloud.provider': 'netlify',\n };\n } else if (process.env.FLY_REGION) {\n // https://fly.io/docs/reference/runtime-environment/\n return {\n 'cloud.provider': 'fly.io',\n 'cloud.region': process.env.FLY_REGION,\n };\n } else if (process.env.DYNO) {\n // https://devcenter.heroku.com/articles/dynos#local-environment-variables\n return {\n 'cloud.provider': 'heroku',\n };\n } else {\n return undefined;\n }\n}\n\nexport { getAppContext, getDeviceContext, nodeContextIntegration, readDirAsync, readFileAsync };\n//# sourceMappingURL=context.js.map\n", - "import { createReadStream } from 'node:fs';\nimport { createInterface } from 'node:readline';\nimport { LRUMap, defineIntegration, debug, snipLine } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst LRU_FILE_CONTENTS_CACHE = new LRUMap(10);\nconst LRU_FILE_CONTENTS_FS_READ_FAILED = new LRUMap(20);\nconst DEFAULT_LINES_OF_CONTEXT = 7;\nconst INTEGRATION_NAME = 'ContextLines';\n// Determines the upper bound of lineno/colno that we will attempt to read. Large colno values are likely to be\n// minified code while large lineno values are likely to be bundled code.\n// Exported for testing purposes.\nconst MAX_CONTEXTLINES_COLNO = 1000;\nconst MAX_CONTEXTLINES_LINENO = 10000;\n\n/**\n * Get or init map value\n */\nfunction emplace(map, key, contents) {\n const value = map.get(key);\n\n if (value === undefined) {\n map.set(key, contents);\n return contents;\n }\n\n return value;\n}\n\n/**\n * Determines if context lines should be skipped for a file.\n * - .min.(mjs|cjs|js) files are and not useful since they dont point to the original source\n * - node: prefixed modules are part of the runtime and cannot be resolved to a file\n * - data: skip json, wasm and inline js https://nodejs.org/api/esm.html#data-imports\n */\nfunction shouldSkipContextLinesForFile(path) {\n // Test the most common prefix and extension first. These are the ones we\n // are most likely to see in user applications and are the ones we can break out of first.\n if (path.startsWith('node:')) return true;\n if (path.endsWith('.min.js')) return true;\n if (path.endsWith('.min.cjs')) return true;\n if (path.endsWith('.min.mjs')) return true;\n if (path.startsWith('data:')) return true;\n return false;\n}\n\n/**\n * Determines if we should skip contextlines based off the max lineno and colno values.\n */\nfunction shouldSkipContextLinesForFrame(frame) {\n if (frame.lineno !== undefined && frame.lineno > MAX_CONTEXTLINES_LINENO) return true;\n if (frame.colno !== undefined && frame.colno > MAX_CONTEXTLINES_COLNO) return true;\n return false;\n}\n/**\n * Checks if we have all the contents that we need in the cache.\n */\nfunction rangeExistsInContentCache(file, range) {\n const contents = LRU_FILE_CONTENTS_CACHE.get(file);\n if (contents === undefined) return false;\n\n for (let i = range[0]; i <= range[1]; i++) {\n if (contents[i] === undefined) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Creates contiguous ranges of lines to read from a file. In the case where context lines overlap,\n * the ranges are merged to create a single range.\n */\nfunction makeLineReaderRanges(lines, linecontext) {\n if (!lines.length) {\n return [];\n }\n\n let i = 0;\n const line = lines[0];\n\n if (typeof line !== 'number') {\n return [];\n }\n\n let current = makeContextRange(line, linecontext);\n const out = [];\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (i === lines.length - 1) {\n out.push(current);\n break;\n }\n\n // If the next line falls into the current range, extend the current range to lineno + linecontext.\n const next = lines[i + 1];\n if (typeof next !== 'number') {\n break;\n }\n if (next <= current[1]) {\n current[1] = next + linecontext;\n } else {\n out.push(current);\n current = makeContextRange(next, linecontext);\n }\n\n i++;\n }\n\n return out;\n}\n\n/**\n * Extracts lines from a file and stores them in a cache.\n */\nfunction getContextLinesFromFile(path, ranges, output) {\n return new Promise((resolve, _reject) => {\n // It is important *not* to have any async code between createInterface and the 'line' event listener\n // as it will cause the 'line' event to\n // be emitted before the listener is attached.\n const stream = createReadStream(path);\n const lineReaded = createInterface({\n input: stream,\n });\n\n // We need to explicitly destroy the stream to prevent memory leaks,\n // removing the listeners on the readline interface is not enough.\n // See: https://github.com/nodejs/node/issues/9002 and https://github.com/getsentry/sentry-javascript/issues/14892\n function destroyStreamAndResolve() {\n stream.destroy();\n resolve();\n }\n\n // Init at zero and increment at the start of the loop because lines are 1 indexed.\n let lineNumber = 0;\n let currentRangeIndex = 0;\n const range = ranges[currentRangeIndex];\n if (range === undefined) {\n // We should never reach this point, but if we do, we should resolve the promise to prevent it from hanging.\n destroyStreamAndResolve();\n return;\n }\n let rangeStart = range[0];\n let rangeEnd = range[1];\n\n // We use this inside Promise.all, so we need to resolve the promise even if there is an error\n // to prevent Promise.all from short circuiting the rest.\n function onStreamError(e) {\n // Mark file path as failed to read and prevent multiple read attempts.\n LRU_FILE_CONTENTS_FS_READ_FAILED.set(path, 1);\n DEBUG_BUILD && debug.error(`Failed to read file: ${path}. Error: ${e}`);\n lineReaded.close();\n lineReaded.removeAllListeners();\n destroyStreamAndResolve();\n }\n\n // We need to handle the error event to prevent the process from crashing in < Node 16\n // https://github.com/nodejs/node/pull/31603\n stream.on('error', onStreamError);\n lineReaded.on('error', onStreamError);\n lineReaded.on('close', destroyStreamAndResolve);\n\n lineReaded.on('line', line => {\n lineNumber++;\n if (lineNumber < rangeStart) return;\n\n // !Warning: This mutates the cache by storing the snipped line into the cache.\n output[lineNumber] = snipLine(line, 0);\n\n if (lineNumber >= rangeEnd) {\n if (currentRangeIndex === ranges.length - 1) {\n // We need to close the file stream and remove listeners, else the reader will continue to run our listener;\n lineReaded.close();\n lineReaded.removeAllListeners();\n return;\n }\n currentRangeIndex++;\n const range = ranges[currentRangeIndex];\n if (range === undefined) {\n // This should never happen as it means we have a bug in the context.\n lineReaded.close();\n lineReaded.removeAllListeners();\n return;\n }\n rangeStart = range[0];\n rangeEnd = range[1];\n }\n });\n });\n}\n\n/**\n * Adds surrounding (context) lines of the line that an exception occurred on to the event.\n * This is done by reading the file line by line and extracting the lines. The extracted lines are stored in\n * a cache to prevent multiple reads of the same file. Failures to read a file are similarly cached to prevent multiple\n * failing reads from happening.\n */\n/* eslint-disable complexity */\nasync function addSourceContext(event, contextLines) {\n // keep a lookup map of which files we've already enqueued to read,\n // so we don't enqueue the same file multiple times which would cause multiple i/o reads\n const filesToLines = {};\n\n if (contextLines > 0 && event.exception?.values) {\n for (const exception of event.exception.values) {\n if (!exception.stacktrace?.frames?.length) {\n continue;\n }\n\n // Maps preserve insertion order, so we iterate in reverse, starting at the\n // outermost frame and closer to where the exception has occurred (poor mans priority)\n for (let i = exception.stacktrace.frames.length - 1; i >= 0; i--) {\n const frame = exception.stacktrace.frames[i];\n const filename = frame?.filename;\n\n if (\n !frame ||\n typeof filename !== 'string' ||\n typeof frame.lineno !== 'number' ||\n shouldSkipContextLinesForFile(filename) ||\n shouldSkipContextLinesForFrame(frame)\n ) {\n continue;\n }\n\n const filesToLinesOutput = filesToLines[filename];\n if (!filesToLinesOutput) filesToLines[filename] = [];\n // @ts-expect-error this is defined above\n filesToLines[filename].push(frame.lineno);\n }\n }\n }\n\n const files = Object.keys(filesToLines);\n if (files.length == 0) {\n return event;\n }\n\n const readlinePromises = [];\n for (const file of files) {\n // If we failed to read this before, dont try reading it again.\n if (LRU_FILE_CONTENTS_FS_READ_FAILED.get(file)) {\n continue;\n }\n\n const filesToLineRanges = filesToLines[file];\n if (!filesToLineRanges) {\n continue;\n }\n\n // Sort ranges so that they are sorted by line increasing order and match how the file is read.\n filesToLineRanges.sort((a, b) => a - b);\n // Check if the contents are already in the cache and if we can avoid reading the file again.\n const ranges = makeLineReaderRanges(filesToLineRanges, contextLines);\n if (ranges.every(r => rangeExistsInContentCache(file, r))) {\n continue;\n }\n\n const cache = emplace(LRU_FILE_CONTENTS_CACHE, file, {});\n readlinePromises.push(getContextLinesFromFile(file, ranges, cache));\n }\n\n // The promise rejections are caught in order to prevent them from short circuiting Promise.all\n await Promise.all(readlinePromises).catch(() => {\n DEBUG_BUILD && debug.log('Failed to read one or more source files and resolve context lines');\n });\n\n // Perform the same loop as above, but this time we can assume all files are in the cache\n // and attempt to add source context to frames.\n if (contextLines > 0 && event.exception?.values) {\n for (const exception of event.exception.values) {\n if (exception.stacktrace?.frames && exception.stacktrace.frames.length > 0) {\n addSourceContextToFrames(exception.stacktrace.frames, contextLines, LRU_FILE_CONTENTS_CACHE);\n }\n }\n }\n\n return event;\n}\n/* eslint-enable complexity */\n\n/** Adds context lines to frames */\nfunction addSourceContextToFrames(\n frames,\n contextLines,\n cache,\n) {\n for (const frame of frames) {\n // Only add context if we have a filename and it hasn't already been added\n if (frame.filename && frame.context_line === undefined && typeof frame.lineno === 'number') {\n const contents = cache.get(frame.filename);\n if (contents === undefined) {\n continue;\n }\n\n addContextToFrame(frame.lineno, frame, contextLines, contents);\n }\n }\n}\n\n/**\n * Clears the context lines from a frame, used to reset a frame to its original state\n * if we fail to resolve all context lines for it.\n */\nfunction clearLineContext(frame) {\n delete frame.pre_context;\n delete frame.context_line;\n delete frame.post_context;\n}\n\n/**\n * Resolves context lines before and after the given line number and appends them to the frame;\n */\nfunction addContextToFrame(\n lineno,\n frame,\n contextLines,\n contents,\n) {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping.\n // We already check for lineno before calling this, but since StackFrame lineno ism optional, we check it again.\n if (frame.lineno === undefined || contents === undefined) {\n DEBUG_BUILD && debug.error('Cannot resolve context for frame with no lineno or file contents');\n return;\n }\n\n frame.pre_context = [];\n for (let i = makeRangeStart(lineno, contextLines); i < lineno; i++) {\n // We always expect the start context as line numbers cannot be negative. If we dont find a line, then\n // something went wrong somewhere. Clear the context and return without adding any linecontext.\n const line = contents[i];\n if (line === undefined) {\n clearLineContext(frame);\n DEBUG_BUILD && debug.error(`Could not find line ${i} in file ${frame.filename}`);\n return;\n }\n\n frame.pre_context.push(line);\n }\n\n // We should always have the context line. If we dont, something went wrong, so we clear the context and return\n // without adding any linecontext.\n if (contents[lineno] === undefined) {\n clearLineContext(frame);\n DEBUG_BUILD && debug.error(`Could not find line ${lineno} in file ${frame.filename}`);\n return;\n }\n\n frame.context_line = contents[lineno];\n\n const end = makeRangeEnd(lineno, contextLines);\n frame.post_context = [];\n for (let i = lineno + 1; i <= end; i++) {\n // Since we dont track when the file ends, we cant clear the context if we dont find a line as it could\n // just be that we reached the end of the file.\n const line = contents[i];\n if (line === undefined) {\n break;\n }\n frame.post_context.push(line);\n }\n}\n\n// Helper functions for generating line context ranges. They take a line number and the number of lines of context to\n// include before and after the line and generate an inclusive range of indices.\n\n// Compute inclusive end context range\nfunction makeRangeStart(line, linecontext) {\n return Math.max(1, line - linecontext);\n}\n// Compute inclusive start context range\nfunction makeRangeEnd(line, linecontext) {\n return line + linecontext;\n}\n// Determine start and end indices for context range (inclusive);\nfunction makeContextRange(line, linecontext) {\n return [makeRangeStart(line, linecontext), makeRangeEnd(line, linecontext)];\n}\n\n/** Exported only for tests, as a type-safe variant. */\nconst _contextLinesIntegration = ((options = {}) => {\n const contextLines = options.frameContextLines !== undefined ? options.frameContextLines : DEFAULT_LINES_OF_CONTEXT;\n\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n return addSourceContext(event, contextLines);\n },\n };\n}) ;\n\n/**\n * Capture the lines before and after the frame's context.\n */\nconst contextLinesIntegration = defineIntegration(_contextLinesIntegration);\n\nexport { MAX_CONTEXTLINES_COLNO, MAX_CONTEXTLINES_LINENO, _contextLinesIntegration, addContextToFrame, contextLinesIntegration };\n//# sourceMappingURL=contextlines.js.map\n", - "import { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '../../otel/instrument.js';\nimport { httpServerIntegration } from './httpServerIntegration.js';\nimport { httpServerSpansIntegration } from './httpServerSpansIntegration.js';\nimport { SentryHttpInstrumentation } from './SentryHttpInstrumentation.js';\n\nconst INTEGRATION_NAME = 'Http';\n\nconst instrumentSentryHttp = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n options => {\n return new SentryHttpInstrumentation(options);\n },\n);\n\n/**\n * The http integration instruments Node's internal http and https modules.\n * It creates breadcrumbs for outgoing HTTP requests which will be attached to the currently active span.\n */\nconst httpIntegration = defineIntegration((options = {}) => {\n const serverOptions = {\n sessions: options.trackIncomingRequestsAsSessions,\n sessionFlushingDelayMS: options.sessionFlushingDelayMS,\n ignoreRequestBody: options.ignoreIncomingRequestBody,\n maxRequestBodySize: options.maxIncomingRequestBodySize,\n };\n\n const serverSpansOptions = {\n ignoreIncomingRequests: options.ignoreIncomingRequests,\n ignoreStaticAssets: options.ignoreStaticAssets,\n ignoreStatusCodes: options.dropSpansForIncomingRequestStatusCodes,\n };\n\n const httpInstrumentationOptions = {\n breadcrumbs: options.breadcrumbs,\n propagateTraceInOutgoingRequests: options.tracePropagation ?? true,\n ignoreOutgoingRequests: options.ignoreOutgoingRequests,\n };\n\n const server = httpServerIntegration(serverOptions);\n const serverSpans = httpServerSpansIntegration(serverSpansOptions);\n\n // In node-core, for now we disable incoming requests spans by default\n // we may revisit this in a future release\n const spans = options.spans ?? false;\n const disableIncomingRequestSpans = options.disableIncomingRequestSpans ?? false;\n const enabledServerSpans = spans && !disableIncomingRequestSpans;\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n if (enabledServerSpans) {\n serverSpans.setup(client);\n }\n },\n setupOnce() {\n server.setupOnce();\n\n instrumentSentryHttp(httpInstrumentationOptions);\n },\n\n processEvent(event) {\n // Note: We always run this, even if spans are disabled\n // The reason being that e.g. the remix integration disables span creation here but still wants to use the ignore status codes option\n return serverSpans.processEvent(event);\n },\n };\n});\n\nexport { httpIntegration, instrumentSentryHttp };\n//# sourceMappingURL=index.js.map\n", - "import { Worker } from 'node:worker_threads';\nimport { defineIntegration, debug } from '@sentry/core';\nimport { isDebuggerEnabled } from '../../utils/debug.js';\nimport { LOCAL_VARIABLES_KEY, functionNamesMatch } from './common.js';\n\n// This string is a placeholder that gets overwritten with the worker code.\nconst base64WorkerScript = 'LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQ2LjAgKGU1ZmRjOWQpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=';\n\nfunction log(...args) {\n debug.log('[LocalVariables]', ...args);\n}\n\n/**\n * Adds local variables to exception frames\n */\nconst localVariablesAsyncIntegration = defineIntegration(((\n integrationOptions = {},\n) => {\n function addLocalVariablesToException(exception, localVariables) {\n // Filter out frames where the function name is `new Promise` since these are in the error.stack frames\n // but do not appear in the debugger call frames\n const frames = (exception.stacktrace?.frames || []).filter(frame => frame.function !== 'new Promise');\n\n for (let i = 0; i < frames.length; i++) {\n // Sentry frames are in reverse order\n const frameIndex = frames.length - i - 1;\n\n const frameLocalVariables = localVariables[i];\n const frame = frames[frameIndex];\n\n if (!frame || !frameLocalVariables) {\n // Drop out if we run out of frames to match up\n break;\n }\n\n if (\n // We need to have vars to add\n frameLocalVariables.vars === undefined ||\n // Only skip out-of-app frames if includeOutOfAppFrames is not true\n (frame.in_app === false && integrationOptions.includeOutOfAppFrames !== true) ||\n // The function names need to match\n !functionNamesMatch(frame.function, frameLocalVariables.function)\n ) {\n continue;\n }\n\n frame.vars = frameLocalVariables.vars;\n }\n }\n\n function addLocalVariablesToEvent(event, hint) {\n if (\n hint.originalException &&\n typeof hint.originalException === 'object' &&\n LOCAL_VARIABLES_KEY in hint.originalException &&\n Array.isArray(hint.originalException[LOCAL_VARIABLES_KEY])\n ) {\n for (const exception of event.exception?.values || []) {\n addLocalVariablesToException(exception, hint.originalException[LOCAL_VARIABLES_KEY]);\n }\n\n hint.originalException[LOCAL_VARIABLES_KEY] = undefined;\n }\n\n return event;\n }\n\n async function startInspector() {\n // We load inspector dynamically because on some platforms Node is built without inspector support\n const inspector = await import('node:inspector');\n if (!inspector.url()) {\n inspector.open(0);\n }\n }\n\n function startWorker(options) {\n const worker = new Worker(new URL(`data:application/javascript;base64,${base64WorkerScript}`), {\n workerData: options,\n // We don't want any Node args to be passed to the worker\n execArgv: [],\n env: { ...process.env, NODE_OPTIONS: undefined },\n });\n\n process.on('exit', () => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n worker.terminate();\n });\n\n worker.once('error', (err) => {\n log('Worker error', err);\n });\n\n worker.once('exit', (code) => {\n log('Worker exit', code);\n });\n\n // Ensure this thread can't block app exit\n worker.unref();\n }\n\n return {\n name: 'LocalVariablesAsync',\n async setup(client) {\n const clientOptions = client.getOptions();\n\n if (!clientOptions.includeLocalVariables) {\n return;\n }\n\n if (await isDebuggerEnabled()) {\n debug.warn('Local variables capture has been disabled because the debugger was already enabled');\n return;\n }\n\n const options = {\n ...integrationOptions,\n debug: debug.isEnabled(),\n };\n\n startInspector().then(\n () => {\n try {\n startWorker(options);\n } catch (e) {\n debug.error('Failed to start worker', e);\n }\n },\n e => {\n debug.error('Failed to start inspector', e);\n },\n );\n },\n processEvent(event, hint) {\n return addLocalVariablesToEvent(event, hint);\n },\n };\n}) );\n\nexport { base64WorkerScript, localVariablesAsyncIntegration };\n//# sourceMappingURL=local-variables-async.js.map\n", - "let cachedDebuggerEnabled;\n\n/**\n * Was the debugger enabled when this function was first called?\n */\nasync function isDebuggerEnabled() {\n if (cachedDebuggerEnabled === undefined) {\n try {\n // Node can be built without inspector support\n const inspector = await import('node:inspector');\n cachedDebuggerEnabled = !!inspector.url();\n } catch {\n cachedDebuggerEnabled = false;\n }\n }\n\n return cachedDebuggerEnabled;\n}\n\nexport { isDebuggerEnabled };\n//# sourceMappingURL=debug.js.map\n", - "/**\n * The key used to store the local variables on the error object.\n */\nconst LOCAL_VARIABLES_KEY = '__SENTRY_ERROR_LOCAL_VARIABLES__';\n\n/**\n * Creates a rate limiter that will call the disable callback when the rate limit is reached and the enable callback\n * when a timeout has occurred.\n * @param maxPerSecond Maximum number of calls per second\n * @param enable Callback to enable capture\n * @param disable Callback to disable capture\n * @returns A function to call to increment the rate limiter count\n */\nfunction createRateLimiter(\n maxPerSecond,\n enable,\n disable,\n) {\n let count = 0;\n let retrySeconds = 5;\n let disabledTimeout = 0;\n\n setInterval(() => {\n if (disabledTimeout === 0) {\n if (count > maxPerSecond) {\n retrySeconds *= 2;\n disable(retrySeconds);\n\n // Cap at one day\n if (retrySeconds > 86400) {\n retrySeconds = 86400;\n }\n disabledTimeout = retrySeconds;\n }\n } else {\n disabledTimeout -= 1;\n\n if (disabledTimeout === 0) {\n enable();\n }\n }\n\n count = 0;\n }, 1000).unref();\n\n return () => {\n count += 1;\n };\n}\n\n// Add types for the exception event data\n\n/** Could this be an anonymous function? */\nfunction isAnonymous(name) {\n return name !== undefined && (name.length === 0 || name === '?' || name === '');\n}\n\n/** Do the function names appear to match? */\nfunction functionNamesMatch(a, b) {\n return a === b || `Object.${a}` === b || a === `Object.${b}` || (isAnonymous(a) && isAnonymous(b));\n}\n\nexport { LOCAL_VARIABLES_KEY, createRateLimiter, functionNamesMatch, isAnonymous };\n//# sourceMappingURL=common.js.map\n", - "import { defineIntegration, LRUMap, getClient, debug } from '@sentry/core';\nimport { NODE_MAJOR } from '../../nodeVersion.js';\nimport { isDebuggerEnabled } from '../../utils/debug.js';\nimport { createRateLimiter, functionNamesMatch } from './common.js';\n\n/** Creates a unique hash from stack frames */\nfunction hashFrames(frames) {\n if (frames === undefined) {\n return;\n }\n\n // Only hash the 10 most recent frames (ie. the last 10)\n return frames.slice(-10).reduce((acc, frame) => `${acc},${frame.function},${frame.lineno},${frame.colno}`, '');\n}\n\n/**\n * We use the stack parser to create a unique hash from the exception stack trace\n * This is used to lookup vars when the exception passes through the event processor\n */\nfunction hashFromStack(stackParser, stack) {\n if (stack === undefined) {\n return undefined;\n }\n\n return hashFrames(stackParser(stack, 1));\n}\n\n/** Creates a container for callbacks to be called sequentially */\nfunction createCallbackList(complete) {\n // A collection of callbacks to be executed last to first\n let callbacks = [];\n\n let completedCalled = false;\n function checkedComplete(result) {\n callbacks = [];\n if (completedCalled) {\n return;\n }\n completedCalled = true;\n complete(result);\n }\n\n // complete should be called last\n callbacks.push(checkedComplete);\n\n function add(fn) {\n callbacks.push(fn);\n }\n\n function next(result) {\n const popped = callbacks.pop() || checkedComplete;\n\n try {\n popped(result);\n } catch {\n // If there is an error, we still want to call the complete callback\n checkedComplete(result);\n }\n }\n\n return { add, next };\n}\n\n/**\n * Promise API is available as `Experimental` and in Node 19 only.\n *\n * Callback-based API is `Stable` since v14 and `Experimental` since v8.\n * Because of that, we are creating our own `AsyncSession` class.\n *\n * https://nodejs.org/docs/latest-v19.x/api/inspector.html#promises-api\n * https://nodejs.org/docs/latest-v14.x/api/inspector.html\n */\nclass AsyncSession {\n /** Throws if inspector API is not available */\n constructor( _session) {this._session = _session;\n //\n }\n\n static async create(orDefault) {\n if (orDefault) {\n return orDefault;\n }\n\n const inspector = await import('node:inspector');\n return new AsyncSession(new inspector.Session());\n }\n\n /** @inheritdoc */\n configureAndConnect(onPause, captureAll) {\n this._session.connect();\n\n this._session.on('Debugger.paused', event => {\n onPause(event, () => {\n // After the pause work is complete, resume execution or the exception context memory is leaked\n this._session.post('Debugger.resume');\n });\n });\n\n this._session.post('Debugger.enable');\n this._session.post('Debugger.setPauseOnExceptions', { state: captureAll ? 'all' : 'uncaught' });\n }\n\n setPauseOnExceptions(captureAll) {\n this._session.post('Debugger.setPauseOnExceptions', { state: captureAll ? 'all' : 'uncaught' });\n }\n\n /** @inheritdoc */\n getLocalVariables(objectId, complete) {\n this._getProperties(objectId, props => {\n const { add, next } = createCallbackList(complete);\n\n for (const prop of props) {\n if (prop.value?.objectId && prop.value.className === 'Array') {\n const id = prop.value.objectId;\n add(vars => this._unrollArray(id, prop.name, vars, next));\n } else if (prop.value?.objectId && prop.value.className === 'Object') {\n const id = prop.value.objectId;\n add(vars => this._unrollObject(id, prop.name, vars, next));\n } else if (prop.value) {\n add(vars => this._unrollOther(prop, vars, next));\n }\n }\n\n next({});\n });\n }\n\n /**\n * Gets all the PropertyDescriptors of an object\n */\n _getProperties(objectId, next) {\n this._session.post(\n 'Runtime.getProperties',\n {\n objectId,\n ownProperties: true,\n },\n (err, params) => {\n if (err) {\n next([]);\n } else {\n next(params.result);\n }\n },\n );\n }\n\n /**\n * Unrolls an array property\n */\n _unrollArray(objectId, name, vars, next) {\n this._getProperties(objectId, props => {\n vars[name] = props\n .filter(v => v.name !== 'length' && !isNaN(parseInt(v.name, 10)))\n .sort((a, b) => parseInt(a.name, 10) - parseInt(b.name, 10))\n .map(v => v.value?.value);\n\n next(vars);\n });\n }\n\n /**\n * Unrolls an object property\n */\n _unrollObject(objectId, name, vars, next) {\n this._getProperties(objectId, props => {\n vars[name] = props\n .map(v => [v.name, v.value?.value])\n .reduce((obj, [key, val]) => {\n obj[key] = val;\n return obj;\n }, {} );\n\n next(vars);\n });\n }\n\n /**\n * Unrolls other properties\n */\n _unrollOther(prop, vars, next) {\n if (prop.value) {\n if ('value' in prop.value) {\n if (prop.value.value === undefined || prop.value.value === null) {\n vars[prop.name] = `<${prop.value.value}>`;\n } else {\n vars[prop.name] = prop.value.value;\n }\n } else if ('description' in prop.value && prop.value.type !== 'function') {\n vars[prop.name] = `<${prop.value.description}>`;\n } else if (prop.value.type === 'undefined') {\n vars[prop.name] = '';\n }\n }\n\n next(vars);\n }\n}\n\nconst INTEGRATION_NAME = 'LocalVariables';\n\n/**\n * Adds local variables to exception frames\n */\nconst _localVariablesSyncIntegration = ((\n options = {},\n sessionOverride,\n) => {\n const cachedFrames = new LRUMap(20);\n let rateLimiter;\n let shouldProcessEvent = false;\n\n function addLocalVariablesToException(exception) {\n const hash = hashFrames(exception.stacktrace?.frames);\n\n if (hash === undefined) {\n return;\n }\n\n // Check if we have local variables for an exception that matches the hash\n // remove is identical to get but also removes the entry from the cache\n const cachedFrame = cachedFrames.remove(hash);\n\n if (cachedFrame === undefined) {\n return;\n }\n\n // Filter out frames where the function name is `new Promise` since these are in the error.stack frames\n // but do not appear in the debugger call frames\n const frames = (exception.stacktrace?.frames || []).filter(frame => frame.function !== 'new Promise');\n\n for (let i = 0; i < frames.length; i++) {\n // Sentry frames are in reverse order\n const frameIndex = frames.length - i - 1;\n\n const cachedFrameVariable = cachedFrame[i];\n const frameVariable = frames[frameIndex];\n\n // Drop out if we run out of frames to match up\n if (!frameVariable || !cachedFrameVariable) {\n break;\n }\n\n if (\n // We need to have vars to add\n cachedFrameVariable.vars === undefined ||\n // Only skip out-of-app frames if includeOutOfAppFrames is not true\n (frameVariable.in_app === false && options.includeOutOfAppFrames !== true) ||\n // The function names need to match\n !functionNamesMatch(frameVariable.function, cachedFrameVariable.function)\n ) {\n continue;\n }\n\n frameVariable.vars = cachedFrameVariable.vars;\n }\n }\n\n function addLocalVariablesToEvent(event) {\n for (const exception of event.exception?.values || []) {\n addLocalVariablesToException(exception);\n }\n\n return event;\n }\n\n let setupPromise;\n\n async function setup() {\n const client = getClient();\n const clientOptions = client?.getOptions();\n\n if (!clientOptions?.includeLocalVariables) {\n return;\n }\n\n // Only setup this integration if the Node version is >= v18\n // https://github.com/getsentry/sentry-javascript/issues/7697\n const unsupportedNodeVersion = NODE_MAJOR < 18;\n\n if (unsupportedNodeVersion) {\n debug.log('The `LocalVariables` integration is only supported on Node >= v18.');\n return;\n }\n\n if (await isDebuggerEnabled()) {\n debug.warn('Local variables capture has been disabled because the debugger was already enabled');\n return;\n }\n\n try {\n const session = await AsyncSession.create(sessionOverride);\n\n const handlePaused = (\n stackParser,\n { params: { reason, data, callFrames } },\n complete,\n ) => {\n if (reason !== 'exception' && reason !== 'promiseRejection') {\n complete();\n return;\n }\n\n rateLimiter?.();\n\n // data.description contains the original error.stack\n const exceptionHash = hashFromStack(stackParser, data.description);\n\n if (exceptionHash == undefined) {\n complete();\n return;\n }\n\n const { add, next } = createCallbackList(frames => {\n cachedFrames.set(exceptionHash, frames);\n complete();\n });\n\n // Because we're queuing up and making all these calls synchronously, we can potentially overflow the stack\n // For this reason we only attempt to get local variables for the first 5 frames\n for (let i = 0; i < Math.min(callFrames.length, 5); i++) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { scopeChain, functionName, this: obj } = callFrames[i];\n\n const localScope = scopeChain.find(scope => scope.type === 'local');\n\n // obj.className is undefined in ESM modules\n const fn = obj.className === 'global' || !obj.className ? functionName : `${obj.className}.${functionName}`;\n\n if (localScope?.object.objectId === undefined) {\n add(frames => {\n frames[i] = { function: fn };\n next(frames);\n });\n } else {\n const id = localScope.object.objectId;\n add(frames =>\n session.getLocalVariables(id, vars => {\n frames[i] = { function: fn, vars };\n next(frames);\n }),\n );\n }\n }\n\n next([]);\n };\n\n const captureAll = options.captureAllExceptions !== false;\n\n session.configureAndConnect(\n (ev, complete) =>\n handlePaused(clientOptions.stackParser, ev , complete),\n captureAll,\n );\n\n if (captureAll) {\n const max = options.maxExceptionsPerSecond || 50;\n\n rateLimiter = createRateLimiter(\n max,\n () => {\n debug.log('Local variables rate-limit lifted.');\n session.setPauseOnExceptions(true);\n },\n seconds => {\n debug.log(\n `Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${seconds} seconds.`,\n );\n session.setPauseOnExceptions(false);\n },\n );\n }\n\n shouldProcessEvent = true;\n } catch (error) {\n debug.log('The `LocalVariables` integration failed to start.', error);\n }\n }\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n setupPromise = setup();\n },\n async processEvent(event) {\n await setupPromise;\n\n if (shouldProcessEvent) {\n return addLocalVariablesToEvent(event);\n }\n\n return event;\n },\n // These are entirely for testing\n _getCachedFramesCount() {\n return cachedFrames.size;\n },\n _getFirstCachedFrame() {\n return cachedFrames.values()[0];\n },\n };\n}) ;\n\n/**\n * Adds local variables to exception frames.\n */\nconst localVariablesSyncIntegration = defineIntegration(_localVariablesSyncIntegration);\n\nexport { createCallbackList, hashFrames, hashFromStack, localVariablesSyncIntegration };\n//# sourceMappingURL=local-variables-sync.js.map\n", + "const DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n", + "const SDK_VERSION = \"10.63.0\" ;\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n", + "const GLOBAL_OBJ = globalThis;\n\nexport { GLOBAL_OBJ };\n//# sourceMappingURL=worldwide.js.map\n", + "import { SDK_VERSION } from './utils/version.js';\nimport { GLOBAL_OBJ } from './utils/worldwide.js';\n\nfunction getMainCarrier() {\n getSentryCarrier(GLOBAL_OBJ);\n return GLOBAL_OBJ;\n}\nfunction getSentryCarrier(carrier) {\n const __SENTRY__ = carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n __SENTRY__.version = __SENTRY__.version || SDK_VERSION;\n return __SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {};\n}\nfunction getGlobalSingleton(name, creator, obj = GLOBAL_OBJ) {\n const __SENTRY__ = obj.__SENTRY__ = obj.__SENTRY__ || {};\n const carrier = __SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {};\n return carrier[name] || (carrier[name] = creator());\n}\n\nexport { getGlobalSingleton, getMainCarrier, getSentryCarrier };\n//# sourceMappingURL=carrier.js.map\n", + "import { getGlobalSingleton } from '../carrier.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst CONSOLE_LEVELS = [\n \"debug\",\n \"info\",\n \"warn\",\n \"error\",\n \"log\",\n \"assert\",\n \"trace\"\n];\nconst PREFIX = \"Sentry Logger \";\nconst originalConsoleMethods = {};\nfunction consoleSandbox(callback) {\n if (!(\"console\" in GLOBAL_OBJ)) {\n return callback();\n }\n const console = GLOBAL_OBJ.console;\n const wrappedFuncs = {};\n const wrappedLevels = Object.keys(originalConsoleMethods);\n wrappedLevels.forEach((level) => {\n const originalConsoleMethod = originalConsoleMethods[level];\n wrappedFuncs[level] = console[level];\n console[level] = originalConsoleMethod;\n });\n try {\n return callback();\n } finally {\n wrappedLevels.forEach((level) => {\n console[level] = wrappedFuncs[level];\n });\n }\n}\nfunction enable() {\n _getLoggerSettings().enabled = true;\n}\nfunction disable() {\n _getLoggerSettings().enabled = false;\n}\nfunction isEnabled() {\n return _getLoggerSettings().enabled;\n}\nfunction log(...args) {\n _maybeLog(\"log\", ...args);\n}\nfunction warn(...args) {\n _maybeLog(\"warn\", ...args);\n}\nfunction error(...args) {\n _maybeLog(\"error\", ...args);\n}\nfunction _maybeLog(level, ...args) {\n if (!DEBUG_BUILD) {\n return;\n }\n if (isEnabled()) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[level](`${PREFIX}[${level}]:`, ...args);\n });\n }\n}\nfunction _getLoggerSettings() {\n if (!DEBUG_BUILD) {\n return { enabled: false };\n }\n return getGlobalSingleton(\"loggerSettings\", () => ({ enabled: false }));\n}\nconst debug = {\n /** Enable logging. */\n enable,\n /** Disable logging. */\n disable,\n /** Check if logging is enabled. */\n isEnabled,\n /** Log a message. */\n log,\n /** Log a warning. */\n warn,\n /** Log an error. */\n error\n};\n\nexport { CONSOLE_LEVELS, consoleSandbox, debug, originalConsoleMethods };\n//# sourceMappingURL=debug-logger.js.map\n", + "const objectToString = Object.prototype.toString;\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case \"[object Error]\":\n case \"[object Exception]\":\n case \"[object DOMException]\":\n case \"[object WebAssembly.Exception]\":\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\nfunction isBuiltin(wat, className) {\n return objectToString.call(wat) === `[object ${className}]`;\n}\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, \"ErrorEvent\");\n}\nfunction isDOMError(wat) {\n return isBuiltin(wat, \"DOMError\");\n}\nfunction isDOMException(wat) {\n return isBuiltin(wat, \"DOMException\");\n}\nfunction isString(wat) {\n return isBuiltin(wat, \"String\");\n}\nfunction isParameterizedString(wat) {\n return typeof wat === \"object\" && wat !== null && \"__sentry_template_string__\" in wat && \"__sentry_template_values__\" in wat;\n}\nfunction isPrimitive(wat) {\n return wat === null || isParameterizedString(wat) || typeof wat !== \"object\" && typeof wat !== \"function\";\n}\nfunction isPlainObject(wat) {\n return isBuiltin(wat, \"Object\");\n}\nfunction isEvent(wat) {\n return typeof Event !== \"undefined\" && isInstanceOf(wat, Event);\n}\nfunction isElement(wat) {\n return typeof Element !== \"undefined\" && isInstanceOf(wat, Element);\n}\nfunction isRegExp(wat) {\n return isBuiltin(wat, \"RegExp\");\n}\nfunction isThenable(wat) {\n return Boolean(wat?.then && typeof wat.then === \"function\");\n}\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && \"nativeEvent\" in wat && \"preventDefault\" in wat && \"stopPropagation\" in wat;\n}\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch {\n return false;\n }\n}\nfunction isVueViewModel(wat) {\n return !!(typeof wat === \"object\" && wat !== null && (wat.__isVue || wat._isVue || wat.__v_isVNode));\n}\nfunction isRequest(request) {\n return typeof Request !== \"undefined\" && isInstanceOf(request, Request);\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isParameterizedString, isPlainObject, isPrimitive, isRegExp, isRequest, isString, isSyntheticEvent, isThenable, isVueViewModel };\n//# sourceMappingURL=is.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isError, isEvent, isPrimitive } from './is.js';\n\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n const original = source[name];\n if (typeof original !== \"function\") {\n return;\n }\n const wrapped = replacementFactory(original);\n if (typeof wrapped === \"function\") {\n markFunctionWrapped(wrapped, original);\n }\n try {\n source[name] = wrapped;\n } catch {\n DEBUG_BUILD && debug.log(`Failed to replace method \"${name}\" in object`, source);\n }\n}\nfunction addNonEnumerableProperty(obj, name, value) {\n try {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value,\n writable: true,\n configurable: true\n });\n } catch {\n DEBUG_BUILD && debug.log(`Failed to add non-enumerable property \"${String(name)}\" to object`, obj);\n }\n}\nfunction markFunctionWrapped(wrapped, original) {\n try {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, \"__sentry_original__\", original);\n } catch {\n }\n}\nfunction wrapMethod(obj, field, wrapped, enumerable = true) {\n const original = obj[field];\n if (typeof original !== \"function\") {\n throw new Error(`Cannot wrap method: ${field} is not a function`);\n }\n if (getOriginalFunction(original)) {\n throw new Error(`Attempting to wrap method ${field} multiple times`);\n }\n markFunctionWrapped(wrapped, original);\n Object.defineProperty(obj, field, {\n writable: true,\n configurable: true,\n enumerable,\n value: wrapped\n });\n}\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\nfunction convertToPlainObject(value) {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value)\n };\n }\n if (isEvent(value)) {\n const { type, target, currentTarget, detail } = value;\n return {\n type,\n target,\n currentTarget,\n ...detail ? { detail } : {},\n ...getOwnProperties(value)\n };\n }\n return value;\n}\nfunction getOwnProperties(obj) {\n if (typeof obj === \"object\" && obj !== null) {\n return Object.fromEntries(Object.entries(obj));\n }\n return {};\n}\nfunction extractExceptionKeysForMessage(exception) {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n return !keys[0] ? \"[object has no keys]\" : keys.join(\", \");\n}\nfunction dropUndefinedKeys(inputValue) {\n const memoizationMap = /* @__PURE__ */ new Map();\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (inputValue === null || typeof inputValue !== \"object\") {\n return inputValue;\n }\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== void 0) {\n return memoVal;\n }\n if (Array.isArray(inputValue)) {\n const returnValue = [];\n memoizationMap.set(inputValue, returnValue);\n inputValue.forEach((value) => {\n returnValue.push(_dropUndefinedKeys(value, memoizationMap));\n });\n return returnValue;\n }\n if (isPojo(inputValue)) {\n const returnValue = {};\n memoizationMap.set(inputValue, returnValue);\n const keys = Object.keys(inputValue);\n keys.forEach((key) => {\n const val = inputValue[key];\n if (val !== void 0) {\n returnValue[key] = _dropUndefinedKeys(val, memoizationMap);\n }\n });\n return returnValue;\n }\n return inputValue;\n}\nfunction isPojo(input) {\n const constructor = input.constructor;\n return constructor === Object || constructor === void 0;\n}\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n // this will catch both undefined and null\n case wat == void 0:\n objectified = new String(wat);\n break;\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case (typeof wat === \"symbol\" || typeof wat === \"bigint\"):\n objectified = Object(wat);\n break;\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n objectified = new wat.constructor(wat);\n break;\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, wrapMethod };\n//# sourceMappingURL=object.js.map\n", + "import { GLOBAL_OBJ } from './worldwide.js';\n\nfunction makeWeakRef(value) {\n try {\n const WeakRefImpl = GLOBAL_OBJ.WeakRef;\n if (typeof WeakRefImpl === \"function\") {\n return new WeakRefImpl(value);\n }\n } catch {\n }\n return value;\n}\nfunction derefWeakRef(ref) {\n if (!ref) {\n return void 0;\n }\n if (typeof ref === \"object\" && \"deref\" in ref && typeof ref.deref === \"function\") {\n try {\n return ref.deref();\n } catch {\n return void 0;\n }\n }\n return ref;\n}\n\nexport { derefWeakRef, makeWeakRef };\n//# sourceMappingURL=weakRef.js.map\n", + "import { addNonEnumerableProperty } from '../utils/object.js';\nimport { derefWeakRef, makeWeakRef } from '../utils/weakRef.js';\n\nconst SCOPE_ON_START_SPAN_FIELD = \"_sentryScope\";\nconst ISOLATION_SCOPE_ON_START_SPAN_FIELD = \"_sentryIsolationScope\";\nconst OTEL_SOURCE_INFERENCE_SPAN_FIELD = /* @__PURE__ */ Symbol.for(\"sentry.otelSourceInference\");\nfunction setCapturedScopesOnSpan(span, scope, isolationScope) {\n if (span) {\n addNonEnumerableProperty(span, ISOLATION_SCOPE_ON_START_SPAN_FIELD, makeWeakRef(isolationScope));\n addNonEnumerableProperty(span, SCOPE_ON_START_SPAN_FIELD, scope);\n }\n}\nfunction getCapturedScopesOnSpan(span) {\n const spanWithScopes = span;\n return {\n scope: spanWithScopes[SCOPE_ON_START_SPAN_FIELD],\n isolationScope: derefWeakRef(spanWithScopes[ISOLATION_SCOPE_ON_START_SPAN_FIELD])\n };\n}\nfunction markSpanForOtelSourceInference(span) {\n addNonEnumerableProperty(span, OTEL_SOURCE_INFERENCE_SPAN_FIELD, true);\n}\nfunction spanShouldInferOtelSource(span) {\n return span[OTEL_SOURCE_INFERENCE_SPAN_FIELD] === true;\n}\n\nexport { getCapturedScopesOnSpan, markSpanForOtelSourceInference, setCapturedScopesOnSpan, spanShouldInferOtelSource };\n//# sourceMappingURL=utils.js.map\n", + "const SPAN_STATUS_UNSET = 0;\nconst SPAN_STATUS_OK = 1;\nconst SPAN_STATUS_ERROR = 2;\nfunction getSpanStatusFromHttpCode(httpStatus) {\n if (httpStatus < 400 && httpStatus >= 100) {\n return { code: SPAN_STATUS_OK };\n }\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return { code: SPAN_STATUS_ERROR, message: \"unauthenticated\" };\n case 403:\n return { code: SPAN_STATUS_ERROR, message: \"permission_denied\" };\n case 404:\n return { code: SPAN_STATUS_ERROR, message: \"not_found\" };\n case 409:\n return { code: SPAN_STATUS_ERROR, message: \"already_exists\" };\n case 413:\n return { code: SPAN_STATUS_ERROR, message: \"failed_precondition\" };\n case 429:\n return { code: SPAN_STATUS_ERROR, message: \"resource_exhausted\" };\n case 499:\n return { code: SPAN_STATUS_ERROR, message: \"cancelled\" };\n default:\n return { code: SPAN_STATUS_ERROR, message: \"invalid_argument\" };\n }\n }\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return { code: SPAN_STATUS_ERROR, message: \"unimplemented\" };\n case 503:\n return { code: SPAN_STATUS_ERROR, message: \"unavailable\" };\n case 504:\n return { code: SPAN_STATUS_ERROR, message: \"deadline_exceeded\" };\n default:\n return { code: SPAN_STATUS_ERROR, message: \"internal_error\" };\n }\n }\n return { code: SPAN_STATUS_ERROR, message: \"internal_error\" };\n}\nfunction setHttpStatus(span, httpStatus) {\n span.setAttribute(\"http.response.status_code\", httpStatus);\n const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n if (spanStatus.message !== \"unknown_error\") {\n span.setStatus(spanStatus);\n }\n}\n\nexport { SPAN_STATUS_ERROR, SPAN_STATUS_OK, SPAN_STATUS_UNSET, getSpanStatusFromHttpCode, setHttpStatus };\n//# sourceMappingURL=spanstatus.js.map\n", + "import { GLOBAL_OBJ } from './worldwide.js';\n\nlet RESOLVED_RUNNER;\nfunction withRandomSafeContext(cb) {\n if (RESOLVED_RUNNER !== void 0) {\n return RESOLVED_RUNNER ? RESOLVED_RUNNER(cb) : cb();\n }\n const sym = /* @__PURE__ */ Symbol.for(\"__SENTRY_SAFE_RANDOM_ID_WRAPPER__\");\n const globalWithSymbol = GLOBAL_OBJ;\n if (sym in globalWithSymbol && typeof globalWithSymbol[sym] === \"function\") {\n RESOLVED_RUNNER = globalWithSymbol[sym];\n return RESOLVED_RUNNER(cb);\n }\n RESOLVED_RUNNER = null;\n return cb();\n}\nfunction safeMathRandom() {\n return withRandomSafeContext(() => Math.random());\n}\nfunction safeDateNow() {\n return withRandomSafeContext(() => Date.now());\n}\n\nexport { safeDateNow, safeMathRandom, withRandomSafeContext };\n//# sourceMappingURL=randomSafeContext.js.map\n", + "import { addNonEnumerableProperty } from './object.js';\n\nconst SENTRY_SKIP_NORMALIZATION = /* @__PURE__ */ Symbol.for(\"sentry.skipNormalization\");\nconst SENTRY_OVERRIDE_NORMALIZATION_DEPTH = /* @__PURE__ */ Symbol.for(\"sentry.overrideNormalizationDepth\");\nfunction setSkipNormalizationHint(obj) {\n addNonEnumerableProperty(obj, SENTRY_SKIP_NORMALIZATION, true);\n}\nfunction setNormalizationDepthOverrideHint(obj, depth) {\n addNonEnumerableProperty(obj, SENTRY_OVERRIDE_NORMALIZATION_DEPTH, depth);\n}\nfunction hasSkipNormalizationHint(value) {\n return Boolean(value[SENTRY_SKIP_NORMALIZATION]);\n}\nfunction getNormalizationDepthOverrideHint(value) {\n const v = value[SENTRY_OVERRIDE_NORMALIZATION_DEPTH];\n return typeof v === \"number\" ? v : void 0;\n}\n\nexport { getNormalizationDepthOverrideHint, hasSkipNormalizationHint, setNormalizationDepthOverrideHint, setSkipNormalizationHint };\n//# sourceMappingURL=normalizationHints.js.map\n", + "const STACKTRACE_FRAME_LIMIT = 50;\nconst UNKNOWN_FUNCTION = \"?\";\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\nfunction createStackParser(...parsers) {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map((p) => p[1]);\n return (stack, skipFirstLines = 0, framesToPop = 0) => {\n const frames = [];\n const lines = stack.split(\"\\n\");\n for (let i = skipFirstLines; i < lines.length; i++) {\n let line = lines[i];\n if (line.length > 1024) {\n line = line.slice(0, 1024);\n }\n const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, \"$1\") : line;\n if (cleanedLine.includes(\"Error: \")) {\n continue;\n }\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n if (frames.length >= STACKTRACE_FRAME_LIMIT + framesToPop) {\n break;\n }\n }\n return stripSentryFramesAndReverse(frames.slice(framesToPop));\n };\n}\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n const localStack = Array.from(stack);\n if (/sentryWrapped/.test(getLastStackFrame(localStack).function || \"\")) {\n localStack.pop();\n }\n localStack.reverse();\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || \"\")) {\n localStack.pop();\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || \"\")) {\n localStack.pop();\n }\n }\n return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map((frame) => ({\n ...frame,\n filename: frame.filename || getLastStackFrame(localStack).filename,\n function: frame.function || UNKNOWN_FUNCTION\n }));\n}\nfunction getLastStackFrame(arr) {\n return arr[arr.length - 1] || {};\n}\nconst defaultFunctionName = \"\";\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== \"function\") {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch {\n return defaultFunctionName;\n }\n}\nfunction getFramesFromEvent(event) {\n const exception = event.exception;\n if (exception) {\n const frames = [];\n try {\n exception.values.forEach((value) => {\n if (value.stacktrace.frames) {\n frames.push(...value.stacktrace.frames);\n }\n });\n return frames;\n } catch {\n return void 0;\n }\n }\n return void 0;\n}\nfunction normalizeStackTracePath(path) {\n let filename = path?.startsWith(\"file://\") ? path.slice(7) : path;\n if (filename?.match(/\\/[A-Z]:/)) {\n filename = filename.slice(1);\n }\n return filename;\n}\n\nexport { UNKNOWN_FUNCTION, createStackParser, getFramesFromEvent, getFunctionName, normalizeStackTracePath, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n", + "import { hasSkipNormalizationHint, getNormalizationDepthOverrideHint } from './normalizationHints.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\nlet stringifier;\nfunction setNormalizeStringifier(newStringifier) {\n stringifier = newStringifier;\n}\nfunction normalize(input, depth = 100, maxProperties = Infinity) {\n try {\n return visit(\"\", input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\nfunction normalizeToSize(object, depth = 3, maxSize = 100 * 1024) {\n const normalized = normalize(object, depth);\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n return normalized;\n}\nfunction visit(key, value, depth = Infinity, maxProperties = Infinity, memo = memoBuilder()) {\n const [memoize, unmemoize] = memo;\n if (value == null || // this matches null and undefined -> eqeq not eqeqeq\n [\"boolean\", \"string\"].includes(typeof value) || typeof value === \"number\" && Number.isFinite(value)) {\n return value;\n }\n const stringified = stringifyValue(key, value);\n if (!stringified.startsWith(\"[object \")) {\n return stringified;\n }\n if (hasSkipNormalizationHint(value)) {\n return value;\n }\n const overrideDepth = getNormalizationDepthOverrideHint(value);\n const remainingDepth = overrideDepth !== void 0 ? overrideDepth : depth;\n if (remainingDepth === 0) {\n return stringified.replace(\"object \", \"\");\n }\n if (memoize(value)) {\n return \"[Circular ~]\";\n }\n const valueWithToJSON = value;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === \"function\") {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n return visit(\"\", jsonValue, remainingDepth - 1, maxProperties, memo);\n } catch {\n }\n }\n const normalized = Array.isArray(value) ? [] : {};\n let numAdded = 0;\n const visitable = convertToPlainObject(value);\n for (const visitKey in visitable) {\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n if (numAdded >= maxProperties) {\n normalized[visitKey] = \"[MaxProperties ~]\";\n break;\n }\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n numAdded++;\n }\n unmemoize(value);\n return normalized;\n}\nfunction stringifyValue(key, value) {\n try {\n if (stringifier) {\n const stringified = stringifier(value);\n if (stringified) {\n return stringified;\n }\n }\n if (typeof global !== \"undefined\" && value === global) {\n return \"[Global]\";\n }\n if (typeof value === \"number\" && !Number.isFinite(value)) {\n return `[${value}]`;\n }\n if (typeof value === \"function\") {\n return `[Function: ${getFunctionName(value)}]`;\n }\n if (typeof value === \"symbol\") {\n return `[${String(value)}]`;\n }\n if (typeof value === \"bigint\") {\n return `[BigInt: ${String(value)}]`;\n }\n const objName = getConstructorName(value);\n return `[object ${objName}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\nfunction getConstructorName(value) {\n const prototype = Object.getPrototypeOf(value);\n return prototype?.constructor ? prototype.constructor.name : \"null prototype\";\n}\nfunction utf8Length(value) {\n return ~-encodeURI(value).split(/%..|./).length;\n}\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\nfunction normalizeUrlToBase(url, basePath) {\n const escapedBase = basePath.replace(/\\\\/g, \"/\").replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\");\n let newUrl = url;\n try {\n newUrl = decodeURI(url);\n } catch {\n }\n return newUrl.replace(/\\\\/g, \"/\").replace(/webpack:\\/?/g, \"\").replace(new RegExp(`(file://)?/*${escapedBase}/*`, \"ig\"), \"app:///\");\n}\nfunction memoBuilder() {\n const inner = /* @__PURE__ */ new WeakSet();\n function memoize(obj) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n function unmemoize(obj) {\n inner.delete(obj);\n }\n return [memoize, unmemoize];\n}\n\nexport { normalize, normalizeToSize, normalizeUrlToBase, setNormalizeStringifier, stringifyValue };\n//# sourceMappingURL=normalize.js.map\n", + "import { isString, isRegExp, isPrimitive } from './is.js';\nimport { stringifyValue } from './normalize.js';\n\nfunction truncate(str, max = 0) {\n if (typeof str !== \"string\" || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\nfunction snipLine(line, colno) {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n colno = lineLength;\n }\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += \" {snip}\";\n }\n return newLine;\n}\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return \"\";\n }\n const output = [];\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n if (isPrimitive(value)) {\n output.push(String(value));\n } else if (value instanceof Error) {\n output.push(value.message ? `${value.name}: ${value.message}` : value.name);\n } else {\n output.push(stringifyValue(void 0, value));\n }\n }\n return output.join(delimiter);\n}\nfunction isMatchingPattern(value, pattern, requireExactStringMatch = false) {\n if (!isString(value)) {\n return false;\n }\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n if (typeof pattern === \"function\") {\n return pattern(value);\n }\n return false;\n}\nfunction stringMatchesSomePattern(testString, patterns = [], requireExactStringMatch = false) {\n for (const pattern of patterns) {\n if (isMatchingPattern(testString, pattern, requireExactStringMatch)) {\n return true;\n }\n }\n return false;\n}\n\nexport { isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, truncate };\n//# sourceMappingURL=string.js.map\n", + "import { addNonEnumerableProperty } from './object.js';\nimport { withRandomSafeContext, safeMathRandom } from './randomSafeContext.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nfunction getCrypto() {\n const gbl = GLOBAL_OBJ;\n return gbl.crypto || gbl.msCrypto;\n}\nlet emptyUuid;\nfunction getRandomByte() {\n return safeMathRandom() * 16;\n}\nfunction uuid4(crypto = getCrypto()) {\n try {\n if (crypto?.randomUUID) {\n return withRandomSafeContext(() => crypto.randomUUID()).replace(/-/g, \"\");\n }\n } catch {\n }\n if (!emptyUuid) {\n emptyUuid = \"10000000100040008000\" + 1e11;\n }\n return emptyUuid.replace(\n /[018]/g,\n (c) => (\n // eslint-disable-next-line no-bitwise\n (c ^ (getRandomByte() & 15) >> c / 4).toString(16)\n )\n );\n}\nfunction getFirstException(event) {\n return event.exception?.values?.[0];\n}\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || \"\";\n }\n return eventId || \"\";\n}\nfunction addExceptionTypeValue(event, value, type) {\n const exception = event.exception = event.exception || {};\n const values = exception.values = exception.values || [];\n const firstException = values[0] = values[0] || {};\n if (!firstException.value) {\n firstException.value = value || \"\";\n }\n if (!firstException.type) {\n firstException.type = type || \"Error\";\n }\n}\nfunction addExceptionMechanism(event, newMechanism) {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n const defaultMechanism = { type: \"generic\", handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n if (newMechanism && \"data\" in newMechanism) {\n const mergedData = { ...currentMechanism?.data, ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\nconst SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nfunction _parseInt(input) {\n return parseInt(input || \"\", 10);\n}\nfunction parseSemver(input) {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = _parseInt(match[1]);\n const minor = _parseInt(match[2]);\n const patch = _parseInt(match[3]);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? void 0 : major,\n minor: isNaN(minor) ? void 0 : minor,\n patch: isNaN(patch) ? void 0 : patch,\n prerelease: match[4]\n };\n}\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n if (frame.lineno === void 0) {\n return;\n }\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n frame.pre_context = lines.slice(Math.max(0, sourceLine - linesOfContext), sourceLine).map((line) => snipLine(line, 0));\n const lineIndex = Math.min(maxLines - 1, sourceLine);\n frame.context_line = snipLine(lines[lineIndex], frame.colno || 0);\n frame.post_context = lines.slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext).map((line) => snipLine(line, 0));\n}\nfunction checkOrSetAlreadyCaught(exception) {\n if (isAlreadyCaptured(exception)) {\n return true;\n }\n try {\n addNonEnumerableProperty(exception, \"__sentry_captured__\", true);\n } catch {\n }\n return false;\n}\nfunction isAlreadyCaptured(exception) {\n try {\n return exception.__sentry_captured__;\n } catch {\n }\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, checkOrSetAlreadyCaught, getEventDescription, isAlreadyCaptured, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n", + "import { safeDateNow, withRandomSafeContext } from './randomSafeContext.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst ONE_SECOND_IN_MS = 1e3;\nfunction dateTimestampInSeconds() {\n return safeDateNow() / ONE_SECOND_IN_MS;\n}\nfunction createUnixTimestampInSecondsFunc() {\n const { performance } = GLOBAL_OBJ;\n if (!performance?.now || !performance.timeOrigin) {\n return dateTimestampInSeconds;\n }\n const timeOrigin = performance.timeOrigin;\n return () => {\n return (timeOrigin + withRandomSafeContext(() => performance.now())) / ONE_SECOND_IN_MS;\n };\n}\nlet _cachedTimestampInSeconds;\nfunction timestampInSeconds() {\n const func = _cachedTimestampInSeconds ?? (_cachedTimestampInSeconds = createUnixTimestampInSecondsFunc());\n return func();\n}\nlet cachedTimeOrigin = null;\nfunction getBrowserTimeOrigin() {\n const { performance } = GLOBAL_OBJ;\n if (!performance?.now) {\n return void 0;\n }\n const threshold = 3e5;\n const performanceNow = withRandomSafeContext(() => performance.now());\n const dateNow = safeDateNow();\n const timeOrigin = performance.timeOrigin;\n if (typeof timeOrigin === \"number\") {\n const timeOriginDelta = Math.abs(timeOrigin + performanceNow - dateNow);\n if (timeOriginDelta < threshold) {\n return timeOrigin;\n }\n }\n const navigationStart = performance.timing?.navigationStart;\n if (typeof navigationStart === \"number\") {\n const navigationStartDelta = Math.abs(navigationStart + performanceNow - dateNow);\n if (navigationStartDelta < threshold) {\n return navigationStart;\n }\n }\n return dateNow - performanceNow;\n}\nfunction browserPerformanceTimeOrigin() {\n if (cachedTimeOrigin === null) {\n cachedTimeOrigin = getBrowserTimeOrigin();\n }\n return cachedTimeOrigin;\n}\n\nexport { browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds };\n//# sourceMappingURL=time.js.map\n", + "import { uuid4 } from './utils/misc.js';\nimport { timestampInSeconds } from './utils/time.js';\n\nfunction makeSession(context) {\n const startingTime = timestampInSeconds();\n const session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: \"ok\",\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session)\n };\n if (context) {\n updateSession(session, context);\n }\n return session;\n}\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n session.timestamp = context.timestamp || timestampInSeconds();\n if (context.abnormal_mechanism) {\n session.abnormal_mechanism = context.abnormal_mechanism;\n }\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== void 0) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === \"number\") {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = void 0;\n } else if (typeof context.duration === \"number\") {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === \"number\") {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === \"ok\") {\n context = { status: \"exited\" };\n }\n updateSession(session, context);\n}\nfunction sessionToJSON(session) {\n return {\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1e3).toISOString(),\n timestamp: new Date(session.timestamp * 1e3).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === \"number\" || typeof session.did === \"string\" ? `${session.did}` : void 0,\n duration: session.duration,\n abnormal_mechanism: session.abnormal_mechanism,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent\n }\n };\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n", + "function merge(initialObj, mergeObj, levels = 2) {\n if (!mergeObj || typeof mergeObj !== \"object\" || levels <= 0) {\n return mergeObj;\n }\n if (initialObj && Object.keys(mergeObj).length === 0) {\n return initialObj;\n }\n const output = { ...initialObj };\n for (const key in mergeObj) {\n if (Object.prototype.hasOwnProperty.call(mergeObj, key)) {\n output[key] = merge(output[key], mergeObj[key], levels - 1);\n }\n }\n return output;\n}\n\nexport { merge };\n//# sourceMappingURL=merge.js.map\n", + "import { uuid4 } from './misc.js';\n\nfunction generateTraceId() {\n return uuid4();\n}\nfunction generateSpanId() {\n return uuid4().substring(16);\n}\n\nexport { generateSpanId, generateTraceId };\n//# sourceMappingURL=propagationContext.js.map\n", + "import { addNonEnumerableProperty } from './object.js';\nimport { makeWeakRef, derefWeakRef } from './weakRef.js';\n\nconst SCOPE_SPAN_FIELD = \"_sentrySpan\";\nfunction _setSpanForScope(scope, span) {\n if (span) {\n addNonEnumerableProperty(scope, SCOPE_SPAN_FIELD, makeWeakRef(span));\n } else {\n delete scope[SCOPE_SPAN_FIELD];\n }\n}\nfunction _getSpanForScope(scope) {\n return derefWeakRef(scope[SCOPE_SPAN_FIELD]);\n}\n\nexport { _getSpanForScope, _setSpanForScope };\n//# sourceMappingURL=spanOnScope.js.map\n", + "import { DEBUG_BUILD } from './debug-build.js';\nimport { updateSession } from './session.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isPlainObject } from './utils/is.js';\nimport { merge } from './utils/merge.js';\nimport { uuid4 } from './utils/misc.js';\nimport { generateTraceId } from './utils/propagationContext.js';\nimport { safeMathRandom } from './utils/randomSafeContext.js';\nimport { _setSpanForScope, _getSpanForScope } from './utils/spanOnScope.js';\nimport { truncate } from './utils/string.js';\nimport { dateTimestampInSeconds } from './utils/time.js';\n\nconst DEFAULT_MAX_BREADCRUMBS = 100;\nclass Scope {\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._attributes = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n this._propagationContext = {\n traceId: generateTraceId(),\n sampleRand: safeMathRandom()\n };\n }\n /**\n * Clone all data from this scope into a new scope.\n */\n clone() {\n const newScope = new Scope();\n newScope._breadcrumbs = [...this._breadcrumbs];\n newScope._tags = { ...this._tags };\n newScope._attributes = { ...this._attributes };\n newScope._extra = { ...this._extra };\n newScope._contexts = { ...this._contexts };\n if (this._contexts.flags) {\n newScope._contexts.flags = {\n values: [...this._contexts.flags.values]\n };\n }\n newScope._user = this._user;\n newScope._level = this._level;\n newScope._session = this._session;\n newScope._transactionName = this._transactionName;\n newScope._fingerprint = this._fingerprint;\n newScope._eventProcessors = [...this._eventProcessors];\n newScope._attachments = [...this._attachments];\n newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n newScope._propagationContext = { ...this._propagationContext };\n newScope._client = this._client;\n newScope._lastEventId = this._lastEventId;\n newScope._conversationId = this._conversationId;\n _setSpanForScope(newScope, _getSpanForScope(this));\n return newScope;\n }\n /**\n * Update the client assigned to this scope.\n * Note that not every scope will have a client assigned - isolation scopes & the global scope will generally not have a client,\n * as well as manually created scopes.\n */\n setClient(client) {\n this._client = client;\n }\n /**\n * Set the ID of the last captured error event.\n * This is generally only captured on the isolation scope.\n */\n setLastEventId(lastEventId) {\n this._lastEventId = lastEventId;\n }\n /**\n * Get the client assigned to this scope.\n */\n getClient() {\n return this._client;\n }\n /**\n * Get the ID of the last captured error event.\n * This is generally only available on the isolation scope.\n */\n lastEventId() {\n return this._lastEventId;\n }\n /**\n * @inheritDoc\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n /**\n * Add an event processor that will be called before an event is sent.\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n /**\n * Set the user for this scope.\n * Set to `null` to unset the user.\n */\n setUser(user) {\n this._user = user || {\n email: void 0,\n id: void 0,\n ip_address: void 0,\n username: void 0\n };\n if (this._session) {\n updateSession(this._session, { user });\n }\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Get the user from this scope.\n */\n getUser() {\n return this._user;\n }\n /**\n * Set the conversation ID for this scope.\n * Set to `null` to unset the conversation ID.\n */\n setConversationId(conversationId) {\n this._conversationId = conversationId || void 0;\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Set an object that will be merged into existing tags on the scope,\n * and will be sent as tags data with the event.\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags\n };\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Set a single tag that will be sent as tags data with the event.\n */\n setTag(key, value) {\n return this.setTags({ [key]: value });\n }\n /**\n * Sets attributes onto the scope.\n *\n * These attributes are applied to logs, metrics and streamed spans.\n *\n * Supported attribute value types are `string`, `number`, `boolean`, `string[]`, `number[]` and `boolean[]`.\n *\n * @param newAttributes - The attributes to set on the scope, as key-value pairs.\n *\n * @example\n * ```typescript\n * scope.setAttributes({\n * is_admin: true,\n * payment_selection: 'credit_card',\n * render_duration: 150,\n * });\n * ```\n */\n setAttributes(newAttributes) {\n this._attributes = {\n ...this._attributes,\n ...newAttributes\n };\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Sets an attribute onto the scope.\n *\n * These attributes are applied to logs, metrics and streamed spans.\n *\n * Supported attribute value types are `string`, `number`, `boolean`, `string[]`, `number[]` and `boolean[]`.\n *\n * @param key - The attribute key.\n * @param value - The attribute value.\n *\n * @example\n * ```typescript\n * scope.setAttribute('is_admin', true);\n * scope.setAttribute('render_duration', 150);\n * ```\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setAttribute(key, value) {\n return this.setAttributes({ [key]: value });\n }\n /**\n * Removes the attribute with the given key from the scope.\n *\n * @param key - The attribute key.\n *\n * @example\n * ```typescript\n * scope.removeAttribute('is_admin');\n * ```\n */\n removeAttribute(key) {\n if (key in this._attributes) {\n delete this._attributes[key];\n this._notifyScopeListeners();\n }\n return this;\n }\n /**\n * Set an object that will be merged into existing extra on the scope,\n * and will be sent as extra data with the event.\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras\n };\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Set a single key:value extra entry that will be sent as extra data with the event.\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Sets the fingerprint on the scope to send with the events.\n * @param {string[]} fingerprint Fingerprint to group events in Sentry.\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Sets the level on the scope for future events.\n */\n setLevel(level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Sets the transaction name on the scope so that the name of e.g. taken server route or\n * the page location is attached to future events.\n *\n * IMPORTANT: Calling this function does NOT change the name of the currently active\n * root span. If you want to change the name of the active root span, use\n * `Sentry.updateSpanName(rootSpan, 'new name')` instead.\n *\n * By default, the SDK updates the scope's transaction name automatically on sensible\n * occasions, such as a page navigation or when handling a new request on the server.\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Sets context data with the given name.\n * Data passed as context will be normalized. You can also pass `null` to unset the context.\n * Note that context data will not be merged - calling `setContext` will overwrite an existing context with the same key.\n */\n setContext(key, context) {\n if (context === null) {\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Set the session for the scope.\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Get the session from the scope.\n */\n getSession() {\n return this._session;\n }\n /**\n * Updates the scope with provided data. Can work in three variations:\n * - plain object containing updatable attributes\n * - Scope instance that'll extract the attributes from\n * - callback function that'll receive the current scope as an argument and allow for modifications\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n const scopeToMerge = typeof captureContext === \"function\" ? captureContext(this) : captureContext;\n const scopeInstance = scopeToMerge instanceof Scope ? scopeToMerge.getScopeData() : isPlainObject(scopeToMerge) ? captureContext : void 0;\n const {\n tags,\n attributes,\n extra,\n user,\n contexts,\n level,\n fingerprint = [],\n propagationContext,\n conversationId\n } = scopeInstance || {};\n this._tags = { ...this._tags, ...tags };\n this._attributes = { ...this._attributes, ...attributes };\n this._extra = { ...this._extra, ...extra };\n this._contexts = { ...this._contexts, ...contexts };\n if (user && Object.keys(user).length) {\n this._user = user;\n }\n if (level) {\n this._level = level;\n }\n if (fingerprint.length) {\n this._fingerprint = fingerprint;\n }\n if (propagationContext) {\n this._propagationContext = propagationContext;\n }\n if (conversationId) {\n this._conversationId = conversationId;\n }\n return this;\n }\n /**\n * Clears the current scope and resets its properties.\n * Note: The client will not be cleared.\n */\n clear() {\n this._breadcrumbs = [];\n this._tags = {};\n this._attributes = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = void 0;\n this._transactionName = void 0;\n this._fingerprint = void 0;\n this._session = void 0;\n this._conversationId = void 0;\n _setSpanForScope(this, void 0);\n this._attachments = [];\n this.setPropagationContext({\n traceId: generateTraceId(),\n sampleRand: safeMathRandom()\n });\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Adds a breadcrumb to the scope.\n * By default, the last 100 breadcrumbs are kept.\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n const maxCrumbs = typeof maxBreadcrumbs === \"number\" ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n if (maxCrumbs <= 0) {\n return this;\n }\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n // Breadcrumb messages can theoretically be infinitely large and they're held in memory so we truncate them not to leak (too much) memory\n message: breadcrumb.message ? truncate(breadcrumb.message, 2048) : breadcrumb.message\n };\n this._breadcrumbs.push(mergedBreadcrumb);\n if (this._breadcrumbs.length > maxCrumbs) {\n this._breadcrumbs = this._breadcrumbs.slice(-maxCrumbs);\n this._client?.recordDroppedEvent(\"buffer_overflow\", \"log_item\");\n }\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Get the last breadcrumb of the scope.\n */\n getLastBreadcrumb() {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n /**\n * Clear all breadcrumbs from the scope.\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n /**\n * Add an attachment to the scope.\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n /**\n * Clear all attachments from the scope.\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n /**\n * Get the data of this scope, which should be applied to an event during processing.\n */\n getScopeData() {\n return {\n breadcrumbs: this._breadcrumbs,\n attachments: this._attachments,\n contexts: this._contexts,\n tags: this._tags,\n attributes: this._attributes,\n extra: this._extra,\n user: this._user,\n level: this._level,\n fingerprint: this._fingerprint || [],\n eventProcessors: this._eventProcessors,\n propagationContext: this._propagationContext,\n sdkProcessingMetadata: this._sdkProcessingMetadata,\n transactionName: this._transactionName,\n span: _getSpanForScope(this),\n conversationId: this._conversationId\n };\n }\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry.\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = merge(this._sdkProcessingMetadata, newData, 2);\n return this;\n }\n /**\n * Add propagation context to the scope, used for distributed tracing\n */\n setPropagationContext(context) {\n this._propagationContext = context;\n return this;\n }\n /**\n * Get propagation context from the scope, used for distributed tracing\n */\n getPropagationContext() {\n return this._propagationContext;\n }\n /**\n * Capture an exception for this scope.\n *\n * @returns {string} The id of the captured Sentry event.\n */\n captureException(exception, hint) {\n const eventId = hint?.event_id || uuid4();\n if (!this._client) {\n DEBUG_BUILD && debug.warn(\"No client configured on scope - will not capture exception!\");\n return eventId;\n }\n const syntheticException = new Error(\"Sentry syntheticException\");\n this._client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId\n },\n this\n );\n return eventId;\n }\n /**\n * Capture a message for this scope.\n *\n * @returns {string} The id of the captured message.\n */\n captureMessage(message, level, hint) {\n const eventId = hint?.event_id || uuid4();\n if (!this._client) {\n DEBUG_BUILD && debug.warn(\"No client configured on scope - will not capture message!\");\n return eventId;\n }\n const syntheticException = hint?.syntheticException ?? new Error(message);\n this._client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId\n },\n this\n );\n return eventId;\n }\n /**\n * Capture a Sentry event for this scope.\n *\n * @returns {string} The id of the captured event.\n */\n captureEvent(event, hint) {\n const eventId = event.event_id || hint?.event_id || uuid4();\n if (!this._client) {\n DEBUG_BUILD && debug.warn(\"No client configured on scope - will not capture event!\");\n return eventId;\n }\n this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n return eventId;\n }\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach((callback) => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n}\n\nexport { Scope };\n//# sourceMappingURL=scope.js.map\n", + "import { getGlobalSingleton } from './carrier.js';\nimport { Scope } from './scope.js';\n\nfunction getDefaultCurrentScope() {\n return getGlobalSingleton(\"defaultCurrentScope\", () => new Scope());\n}\nfunction getDefaultIsolationScope() {\n return getGlobalSingleton(\"defaultIsolationScope\", () => new Scope());\n}\n\nexport { getDefaultCurrentScope, getDefaultIsolationScope };\n//# sourceMappingURL=defaultScopes.js.map\n", + "const isActualPromise = (p) => p instanceof Promise && !p[kChainedCopy];\nconst kChainedCopy = /* @__PURE__ */ Symbol(\"chained PromiseLike\");\nconst chainAndCopyPromiseLike = (original, onSuccess, onError) => {\n const chained = original.then(\n (value) => {\n onSuccess(value);\n return value;\n },\n (err) => {\n onError(err);\n throw err;\n }\n );\n return isActualPromise(chained) && isActualPromise(original) ? chained : copyProps(original, chained);\n};\nconst copyProps = (original, chained) => {\n if (!chained) return original;\n let mutated = false;\n for (const key in original) {\n if (key in chained) continue;\n mutated = true;\n const value = original[key];\n if (typeof value === \"function\") {\n Object.defineProperty(chained, key, {\n value: (...args) => value.apply(original, args),\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n chained[key] = value;\n }\n }\n if (mutated) Object.assign(chained, { [kChainedCopy]: true });\n return chained;\n};\n\nexport { chainAndCopyPromiseLike };\n//# sourceMappingURL=chain-and-copy-promiselike.js.map\n", + "import { getDefaultCurrentScope, getDefaultIsolationScope } from '../defaultScopes.js';\nimport { Scope } from '../scope.js';\nimport { chainAndCopyPromiseLike } from '../utils/chain-and-copy-promiselike.js';\nimport { isThenable } from '../utils/is.js';\nimport { getMainCarrier, getSentryCarrier } from '../carrier.js';\n\nclass AsyncContextStack {\n constructor(scope, isolationScope) {\n let assignedScope;\n if (!scope) {\n assignedScope = new Scope();\n } else {\n assignedScope = scope;\n }\n let assignedIsolationScope;\n if (!isolationScope) {\n assignedIsolationScope = new Scope();\n } else {\n assignedIsolationScope = isolationScope;\n }\n this._stack = [{ scope: assignedScope }];\n this._isolationScope = assignedIsolationScope;\n }\n /**\n * Fork a scope for the stack.\n */\n withScope(callback) {\n const scope = this._pushScope();\n let maybePromiseResult;\n try {\n maybePromiseResult = callback(scope);\n } catch (e) {\n this._popScope();\n throw e;\n }\n if (isThenable(maybePromiseResult)) {\n return chainAndCopyPromiseLike(\n maybePromiseResult,\n () => this._popScope(),\n () => this._popScope()\n );\n }\n this._popScope();\n return maybePromiseResult;\n }\n /**\n * Get the client of the stack.\n */\n getClient() {\n return this.getStackTop().client;\n }\n /**\n * Returns the scope of the top stack.\n */\n getScope() {\n return this.getStackTop().scope;\n }\n /**\n * Get the isolation scope for the stack.\n */\n getIsolationScope() {\n return this._isolationScope;\n }\n /**\n * Returns the topmost scope layer in the order domain > local > process.\n */\n getStackTop() {\n return this._stack[this._stack.length - 1];\n }\n /**\n * Push a scope to the stack.\n */\n _pushScope() {\n const scope = this.getScope().clone();\n this._stack.push({\n client: this.getClient(),\n scope\n });\n return scope;\n }\n /**\n * Pop a scope from the stack.\n */\n _popScope() {\n if (this._stack.length <= 1) return false;\n return !!this._stack.pop();\n }\n}\nfunction getAsyncContextStack() {\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n return sentry.stack = sentry.stack || new AsyncContextStack(getDefaultCurrentScope(), getDefaultIsolationScope());\n}\nfunction withScope(callback) {\n return getAsyncContextStack().withScope(callback);\n}\nfunction withSetScope(scope, callback) {\n const stack = getAsyncContextStack();\n return stack.withScope(() => {\n stack.getStackTop().scope = scope;\n return callback(scope);\n });\n}\nfunction withIsolationScope(callback) {\n return getAsyncContextStack().withScope(() => {\n return callback(getAsyncContextStack().getIsolationScope());\n });\n}\nfunction getStackAsyncContextStrategy() {\n return {\n withIsolationScope,\n withScope,\n withSetScope,\n withSetIsolationScope: (_isolationScope, callback) => {\n return withIsolationScope(callback);\n },\n getCurrentScope: () => getAsyncContextStack().getScope(),\n getIsolationScope: () => getAsyncContextStack().getIsolationScope()\n };\n}\n\nexport { AsyncContextStack, getStackAsyncContextStrategy };\n//# sourceMappingURL=stackStrategy.js.map\n", + "import { getSentryCarrier, getMainCarrier } from '../carrier.js';\nimport { getStackAsyncContextStrategy } from './stackStrategy.js';\n\nfunction setAsyncContextStrategy(strategy) {\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n sentry.acs = strategy;\n}\nfunction getAsyncContextStrategy(carrier) {\n const sentry = getSentryCarrier(carrier);\n if (sentry.acs) {\n return sentry.acs;\n }\n return getStackAsyncContextStrategy();\n}\n\nexport { getAsyncContextStrategy, setAsyncContextStrategy };\n//# sourceMappingURL=index.js.map\n", + "import { getAsyncContextStrategy } from './asyncContext/index.js';\nimport { getMainCarrier, getGlobalSingleton } from './carrier.js';\nimport { Scope } from './scope.js';\nimport { generateSpanId } from './utils/propagationContext.js';\n\nlet _externalPropagationContextProvider;\nfunction registerExternalPropagationContext(fn) {\n _externalPropagationContextProvider = fn;\n}\nfunction getExternalPropagationContext() {\n return _externalPropagationContextProvider?.();\n}\nfunction hasExternalPropagationContext() {\n return _externalPropagationContextProvider !== void 0;\n}\nfunction getCurrentScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getCurrentScope();\n}\nfunction getIsolationScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getIsolationScope();\n}\nfunction getGlobalScope() {\n return getGlobalSingleton(\"globalScope\", () => new Scope());\n}\nfunction withScope(...rest) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (rest.length === 2) {\n const [scope, callback] = rest;\n if (!scope) {\n return acs.withScope(callback);\n }\n return acs.withSetScope(scope, callback);\n }\n return acs.withScope(rest[0]);\n}\nfunction withIsolationScope(...rest) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (rest.length === 2) {\n const [isolationScope, callback] = rest;\n if (!isolationScope) {\n return acs.withIsolationScope(callback);\n }\n return acs.withSetIsolationScope(isolationScope, callback);\n }\n return acs.withIsolationScope(rest[0]);\n}\nfunction getClient() {\n return getCurrentScope().getClient();\n}\nfunction getTraceContextFromScope(scope) {\n const externalContext = getExternalPropagationContext();\n if (externalContext) {\n return { trace_id: externalContext.traceId, span_id: externalContext.spanId };\n }\n const propagationContext = scope.getPropagationContext();\n const { traceId, parentSpanId, propagationSpanId } = propagationContext;\n const traceContext = {\n trace_id: traceId,\n span_id: propagationSpanId || generateSpanId()\n };\n if (parentSpanId) {\n traceContext.parent_span_id = parentSpanId;\n }\n return traceContext;\n}\n\nexport { getClient, getCurrentScope, getExternalPropagationContext, getGlobalScope, getIsolationScope, getTraceContextFromScope, hasExternalPropagationContext, registerExternalPropagationContext, withIsolationScope, withScope };\n//# sourceMappingURL=currentScopes.js.map\n", + "const SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = \"sentry.source\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = \"sentry.sample_rate\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE = \"sentry.previous_trace_sample_rate\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_OP = \"sentry.op\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = \"sentry.origin\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE = \"sentry.status.message\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON = \"sentry.idle_span_finish_reason\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT = \"sentry.measurement_unit\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE = \"sentry.measurement_value\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_RELEASE = \"sentry.release\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT = \"sentry.environment\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_NAME = \"sentry.segment.name\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_ID = \"sentry.segment.id\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SDK_NAME = \"sentry.sdk.name\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SDK_VERSION = \"sentry.sdk.version\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS = \"sentry.sdk.integrations\";\nconst SEMANTIC_ATTRIBUTE_USER_ID = \"user.id\";\nconst SEMANTIC_ATTRIBUTE_USER_EMAIL = \"user.email\";\nconst SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS = \"user.ip_address\";\nconst SEMANTIC_ATTRIBUTE_USER_USERNAME = \"user.name\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME = \"sentry.custom_span_name\";\nconst SEMANTIC_ATTRIBUTE_PROFILE_ID = \"sentry.profile_id\";\nconst SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME = \"sentry.exclusive_time\";\nconst SEMANTIC_ATTRIBUTE_CACHE_HIT = \"cache.hit\";\nconst SEMANTIC_ATTRIBUTE_CACHE_KEY = \"cache.key\";\nconst SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE = \"cache.item_size\";\nconst SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD = \"http.request.method\";\nconst SEMANTIC_ATTRIBUTE_URL_FULL = \"url.full\";\nconst SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE = \"sentry.link.type\";\nconst GEN_AI_CONVERSATION_ID_ATTRIBUTE = \"gen_ai.conversation.id\";\n\nexport { GEN_AI_CONVERSATION_ID_ATTRIBUTE, SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_RELEASE, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS, SEMANTIC_ATTRIBUTE_SENTRY_SDK_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SDK_VERSION, SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_ID, SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE, SEMANTIC_ATTRIBUTE_URL_FULL, SEMANTIC_ATTRIBUTE_USER_EMAIL, SEMANTIC_ATTRIBUTE_USER_ID, SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS, SEMANTIC_ATTRIBUTE_USER_USERNAME, SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE };\n//# sourceMappingURL=semanticAttributes.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isString } from './is.js';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX = \"sentry-\";\nconst SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\nconst MAX_BAGGAGE_STRING_LENGTH = 8192;\nfunction baggageHeaderToDynamicSamplingContext(baggageHeader) {\n const baggageObject = parseBaggageHeader(baggageHeader);\n if (!baggageObject) {\n return void 0;\n }\n const dynamicSamplingContext = Object.entries(baggageObject).reduce((acc, [key, value]) => {\n if (key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n acc[nonPrefixedKey] = value;\n }\n return acc;\n }, {});\n if (Object.keys(dynamicSamplingContext).length > 0) {\n return dynamicSamplingContext;\n } else {\n return void 0;\n }\n}\nfunction dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext) {\n if (!dynamicSamplingContext) {\n return void 0;\n }\n const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce(\n (acc, [dscKey, dscValue]) => {\n if (dscValue) {\n acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n }\n return acc;\n },\n {}\n );\n return objectToBaggageHeader(sentryPrefixedDSC);\n}\nfunction parseBaggageHeader(baggageHeader) {\n if (!baggageHeader || !isString(baggageHeader) && !Array.isArray(baggageHeader)) {\n return void 0;\n }\n if (Array.isArray(baggageHeader)) {\n return baggageHeader.reduce((acc, curr) => {\n const currBaggageObject = baggageHeaderToObject(curr);\n Object.entries(currBaggageObject).forEach(([key, value]) => {\n acc[key] = value;\n });\n return acc;\n }, {});\n }\n return baggageHeaderToObject(baggageHeader);\n}\nfunction baggageHeaderToObject(baggageHeader) {\n return baggageHeader.split(\",\").map((baggageEntry) => {\n const eqIdx = baggageEntry.indexOf(\"=\");\n if (eqIdx === -1) {\n return [];\n }\n const key = baggageEntry.slice(0, eqIdx);\n const value = baggageEntry.slice(eqIdx + 1);\n return [key, value].map((keyOrValue) => {\n try {\n return decodeURIComponent(keyOrValue.trim());\n } catch {\n return;\n }\n });\n }).reduce((acc, [key, value]) => {\n if (key && value) {\n acc[key] = value;\n }\n return acc;\n }, {});\n}\nfunction objectToBaggageHeader(object) {\n if (Object.keys(object).length === 0) {\n return void 0;\n }\n return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n DEBUG_BUILD && debug.warn(\n `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`\n );\n return baggageHeader;\n } else {\n return newBaggageHeader;\n }\n }, \"\");\n}\nfunction mergeBaggageHeaders(existing, incoming) {\n if (!existing) {\n return incoming;\n }\n const existingEntries = parseBaggageHeader(existing);\n const incomingEntries = parseBaggageHeader(incoming);\n if (!incomingEntries) {\n return existing;\n }\n const merged = {};\n let hasNewSentryEntries = false;\n const newSentryEntries = {};\n const newNonSentryEntries = {};\n for (const [key, value] of Object.entries(incomingEntries)) {\n if (key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n newSentryEntries[key] = value;\n hasNewSentryEntries = true;\n } else {\n newNonSentryEntries[key] = value;\n }\n }\n if (existingEntries) {\n for (const [key, value] of Object.entries(existingEntries)) {\n if (!hasNewSentryEntries || !key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n merged[key] = value;\n }\n }\n }\n if (hasNewSentryEntries) {\n Object.assign(merged, newSentryEntries);\n }\n for (const [key, value] of Object.entries(newNonSentryEntries)) {\n merged[key] ?? (merged[key] = value);\n }\n return objectToBaggageHeader(merged);\n}\n\nexport { MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, mergeBaggageHeaders, objectToBaggageHeader, parseBaggageHeader };\n//# sourceMappingURL=baggage.js.map\n", + "import { chainAndCopyPromiseLike } from './chain-and-copy-promiselike.js';\nimport { isThenable } from './is.js';\n\nfunction handleCallbackErrors(fn, onError, onFinally = () => {\n}, onSuccess = () => {\n}) {\n let maybePromiseResult;\n try {\n maybePromiseResult = fn();\n } catch (e) {\n onError(e);\n onFinally();\n throw e;\n }\n return maybeHandlePromiseRejection(maybePromiseResult, onError, onFinally, onSuccess);\n}\nfunction maybeHandlePromiseRejection(value, onError, onFinally, onSuccess) {\n if (isThenable(value)) {\n return chainAndCopyPromiseLike(\n value,\n (result) => {\n onFinally();\n onSuccess(result);\n },\n (err) => {\n onError(err);\n onFinally();\n }\n );\n }\n onFinally();\n onSuccess(value);\n return value;\n}\n\nexport { handleCallbackErrors };\n//# sourceMappingURL=handleCallbackErrors.js.map\n", + "import { getClient } from '../currentScopes.js';\n\nfunction hasSpansEnabled(maybeOptions) {\n if (typeof __SENTRY_TRACING__ === \"boolean\" && !__SENTRY_TRACING__) {\n return false;\n }\n const options = maybeOptions || getClient()?.getOptions();\n return !!options && // Note: This check is `!= null`, meaning \"nullish\". `0` is not \"nullish\", `undefined` and `null` are. (This comment was brought to you by 15 minutes of questioning life)\n (options.tracesSampleRate != null || !!options.tracesSampler);\n}\n\nexport { hasSpansEnabled };\n//# sourceMappingURL=hasSpansEnabled.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isMatchingPattern } from './string.js';\n\nfunction logIgnoredSpan(droppedSpan) {\n debug.log(`Ignoring span ${droppedSpan.op} - ${droppedSpan.description} because it matches \\`ignoreSpans\\`.`);\n}\nfunction shouldIgnoreSpan(span, ignoreSpans) {\n if (!ignoreSpans?.length) {\n return false;\n }\n for (const pattern of ignoreSpans) {\n if (isStringOrRegExp(pattern)) {\n if (span.description && isMatchingPattern(span.description, pattern)) {\n DEBUG_BUILD && logIgnoredSpan(span);\n return true;\n }\n continue;\n }\n const hasAttributes = !!pattern.attributes && Object.keys(pattern.attributes).length > 0;\n if (!pattern.name && !pattern.op && !hasAttributes) {\n continue;\n }\n const nameMatches = pattern.name ? span.description && isMatchingPattern(span.description, pattern.name) : true;\n const opMatches = pattern.op ? span.op && isMatchingPattern(span.op, pattern.op) : true;\n const attrsMatch = pattern.attributes ? Object.entries(pattern.attributes).every(\n ([key, valuePattern]) => _matchesAttributeValue(span.attributes?.[key], valuePattern)\n ) : true;\n if (nameMatches && opMatches && attrsMatch) {\n DEBUG_BUILD && logIgnoredSpan(span);\n return true;\n }\n }\n return false;\n}\nfunction _matchesAttributeValue(actual, pat) {\n if (typeof actual === \"string\" && (typeof pat === \"string\" || pat instanceof RegExp)) {\n return isMatchingPattern(actual, pat);\n }\n if (Array.isArray(actual) && Array.isArray(pat)) {\n return actual.length === pat.length && actual.every((v, i) => v === pat[i]);\n }\n return actual === pat;\n}\nfunction reparentChildSpans(spans, dropSpan) {\n const droppedSpanParentId = dropSpan.parent_span_id;\n const droppedSpanId = dropSpan.span_id;\n if (!droppedSpanParentId) {\n return;\n }\n for (const span of spans) {\n if (span.parent_span_id === droppedSpanId) {\n span.parent_span_id = droppedSpanParentId;\n }\n }\n}\nfunction isStringOrRegExp(value) {\n return typeof value === \"string\" || value instanceof RegExp;\n}\n\nexport { reparentChildSpans, shouldIgnoreSpan };\n//# sourceMappingURL=should-ignore-span.js.map\n", + "function hasSpanStreamingEnabled(client) {\n return client.getOptions().traceLifecycle === \"stream\";\n}\n\nexport { hasSpanStreamingEnabled };\n//# sourceMappingURL=hasSpanStreamingEnabled.js.map\n", + "function parseSampleRate(sampleRate) {\n if (typeof sampleRate === \"boolean\") {\n return Number(sampleRate);\n }\n const rate = typeof sampleRate === \"string\" ? parseFloat(sampleRate) : sampleRate;\n if (typeof rate !== \"number\" || isNaN(rate) || rate < 0 || rate > 1) {\n return void 0;\n }\n return rate;\n}\n\nexport { parseSampleRate };\n//# sourceMappingURL=parseSampleRate.js.map\n", + "import { isPrimitive } from './utils/is.js';\n\nfunction isAttributeObject(maybeObj) {\n return typeof maybeObj === \"object\" && maybeObj != null && !Array.isArray(maybeObj) && Object.keys(maybeObj).includes(\"value\");\n}\nfunction attributeValueToTypedAttributeValue(rawValue, useFallback) {\n const { value, unit } = isAttributeObject(rawValue) ? rawValue : { value: rawValue, unit: void 0 };\n const attributeValue = getTypedAttributeValue(value);\n const checkedUnit = unit && typeof unit === \"string\" ? { unit } : {};\n if (attributeValue) {\n return { ...attributeValue, ...checkedUnit };\n }\n if (!useFallback || useFallback === \"skip-undefined\" && value === void 0) {\n return;\n }\n let stringValue = \"\";\n try {\n stringValue = JSON.stringify(value) ?? \"\";\n } catch {\n }\n return {\n value: stringValue,\n type: \"string\",\n ...checkedUnit\n };\n}\nfunction serializeAttributes(attributes, fallback = false) {\n const serializedAttributes = {};\n for (const [key, value] of Object.entries(attributes ?? {})) {\n const typedValue = attributeValueToTypedAttributeValue(value, fallback);\n if (typedValue) {\n serializedAttributes[key] = typedValue;\n }\n }\n return serializedAttributes;\n}\nfunction estimateTypedAttributesSizeInBytes(attributes) {\n if (!attributes) {\n return 0;\n }\n let weight = 0;\n for (const [key, attr] of Object.entries(attributes)) {\n weight += key.length * 2;\n weight += attr.type.length * 2;\n weight += (attr.unit?.length ?? 0) * 2;\n const val = attr.value;\n if (Array.isArray(val)) {\n weight += estimatePrimitiveSizeInBytes(val[0]) * val.length;\n } else if (isPrimitive(val)) {\n weight += estimatePrimitiveSizeInBytes(val);\n } else {\n weight += 100;\n }\n }\n return weight;\n}\nfunction estimatePrimitiveSizeInBytes(value) {\n if (typeof value === \"string\") {\n return value.length * 2;\n } else if (typeof value === \"boolean\") {\n return 4;\n } else if (typeof value === \"number\") {\n return 8;\n }\n return 0;\n}\nfunction getTypedAttributeValue(value) {\n if (Array.isArray(value)) {\n return { value, type: \"array\" };\n }\n const primitiveType = typeof value === \"string\" ? \"string\" : typeof value === \"boolean\" ? \"boolean\" : typeof value === \"number\" && !Number.isNaN(value) ? Number.isInteger(value) ? \"integer\" : \"double\" : null;\n if (primitiveType) {\n return { value, type: primitiveType };\n }\n}\n\nexport { attributeValueToTypedAttributeValue, estimateTypedAttributesSizeInBytes, isAttributeObject, serializeAttributes };\n//# sourceMappingURL=attributes.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { consoleSandbox, debug } from './debug-logger.js';\n\nconst ORG_ID_REGEX = /^o(\\d+)\\./;\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)((?:\\[[:.%\\w]+\\]|[\\w.-]+))(?::(\\d+))?\\/(.+)/;\nfunction isValidProtocol(protocol) {\n return protocol === \"http\" || protocol === \"https\";\n}\nfunction dsnToString(dsn, withPassword = false) {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : \"\"}@${host}${port ? `:${port}` : \"\"}/${path ? `${path}/` : path}${projectId}`;\n}\nfunction dsnFromString(str) {\n const match = DSN_REGEX.exec(str);\n if (!match) {\n consoleSandbox(() => {\n console.error(`Invalid Sentry Dsn: ${str}`);\n });\n return void 0;\n }\n const [protocol, publicKey, pass = \"\", host = \"\", port = \"\", lastPath = \"\"] = match.slice(1);\n let path = \"\";\n let projectId = lastPath;\n const split = projectId.split(\"/\");\n if (split.length > 1) {\n path = split.slice(0, -1).join(\"/\");\n projectId = split.pop();\n }\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n return dsnFromComponents({ host, pass, path, projectId, port, protocol, publicKey });\n}\nfunction dsnFromComponents(components) {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || \"\",\n pass: components.pass || \"\",\n host: components.host,\n port: components.port || \"\",\n path: components.path || \"\",\n projectId: components.projectId\n };\n}\nfunction validateDsn(dsn) {\n if (!DEBUG_BUILD) {\n return true;\n }\n const { port, projectId, protocol } = dsn;\n const requiredComponents = [\"protocol\", \"publicKey\", \"host\", \"projectId\"];\n const hasMissingRequiredComponent = requiredComponents.find((component) => {\n if (!dsn[component]) {\n debug.error(`Invalid Sentry Dsn: ${component} missing`);\n return true;\n }\n return false;\n });\n if (hasMissingRequiredComponent) {\n return false;\n }\n if (!projectId.match(/^\\d+$/)) {\n debug.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n return false;\n }\n if (!isValidProtocol(protocol)) {\n debug.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n return false;\n }\n if (port && isNaN(parseInt(port, 10))) {\n debug.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n return false;\n }\n return true;\n}\nfunction extractOrgIdFromDsnHost(host) {\n const match = host.match(ORG_ID_REGEX);\n return match?.[1];\n}\nfunction extractOrgIdFromClient(client) {\n const options = client.getOptions();\n const { host } = client.getDsn() || {};\n let org_id;\n if (options.orgId) {\n org_id = String(options.orgId);\n } else if (host) {\n org_id = extractOrgIdFromDsnHost(host);\n }\n return org_id;\n}\nfunction makeDsn(from) {\n const components = typeof from === \"string\" ? dsnFromString(from) : dsnFromComponents(from);\n if (!components || !validateDsn(components)) {\n return void 0;\n }\n return components;\n}\n\nexport { dsnFromString, dsnToString, extractOrgIdFromClient, extractOrgIdFromDsnHost, makeDsn };\n//# sourceMappingURL=dsn.js.map\n", + "import { debug } from './debug-logger.js';\nimport { baggageHeaderToDynamicSamplingContext } from './baggage.js';\nimport { extractOrgIdFromClient } from './dsn.js';\nimport { parseSampleRate } from './parseSampleRate.js';\nimport { generateTraceId, generateSpanId } from './propagationContext.js';\nimport { safeMathRandom } from './randomSafeContext.js';\n\nconst TRACEPARENT_REGEXP = new RegExp(\n \"^[ \\\\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\\\t]*$\"\n // whitespace\n);\nfunction extractTraceparentData(traceparent) {\n if (!traceparent) {\n return void 0;\n }\n const matches = traceparent.match(TRACEPARENT_REGEXP);\n if (!matches) {\n return void 0;\n }\n let parentSampled;\n if (matches[3] === \"1\") {\n parentSampled = true;\n } else if (matches[3] === \"0\") {\n parentSampled = false;\n }\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2]\n };\n}\nfunction propagationContextFromHeaders(sentryTrace, baggage) {\n const traceparentData = extractTraceparentData(sentryTrace);\n const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n if (!traceparentData?.traceId) {\n return {\n traceId: generateTraceId(),\n sampleRand: safeMathRandom()\n };\n }\n const sampleRand = getSampleRandFromTraceparentAndDsc(traceparentData, dynamicSamplingContext);\n if (dynamicSamplingContext) {\n dynamicSamplingContext.sample_rand = sampleRand.toString();\n }\n const { traceId, parentSpanId, parentSampled } = traceparentData;\n return {\n traceId,\n parentSpanId,\n sampled: parentSampled,\n dsc: dynamicSamplingContext || {},\n // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n sampleRand\n };\n}\nfunction generateSentryTraceHeader(traceId = generateTraceId(), spanId = generateSpanId(), sampled) {\n let sampledString = \"\";\n if (sampled !== void 0) {\n sampledString = sampled ? \"-1\" : \"-0\";\n }\n return `${traceId}-${spanId}${sampledString}`;\n}\nfunction generateTraceparentHeader(traceId = generateTraceId(), spanId = generateSpanId(), sampled) {\n return `00-${traceId}-${spanId}-${sampled ? \"01\" : \"00\"}`;\n}\nfunction getSampleRandFromTraceparentAndDsc(traceparentData, dsc) {\n const parsedSampleRand = parseSampleRate(dsc?.sample_rand);\n if (parsedSampleRand !== void 0) {\n return parsedSampleRand;\n }\n const parsedSampleRate = parseSampleRate(dsc?.sample_rate);\n if (parsedSampleRate && traceparentData?.parentSampled !== void 0) {\n return traceparentData.parentSampled ? (\n // Returns a sample rand with positive sampling decision [0, sampleRate)\n safeMathRandom() * parsedSampleRate\n ) : (\n // Returns a sample rand with negative sampling decision [sampleRate, 1)\n parsedSampleRate + safeMathRandom() * (1 - parsedSampleRate)\n );\n } else {\n return safeMathRandom();\n }\n}\nfunction shouldContinueTrace(client, baggageOrgId) {\n const clientOrgId = extractOrgIdFromClient(client);\n if (baggageOrgId && clientOrgId && baggageOrgId !== clientOrgId) {\n debug.log(\n `Won't continue trace because org IDs don't match (incoming baggage: ${baggageOrgId}, SDK options: ${clientOrgId})`\n );\n return false;\n }\n const strictTraceContinuation = client.getOptions().strictTraceContinuation || false;\n if (strictTraceContinuation) {\n if (baggageOrgId && !clientOrgId || !baggageOrgId && clientOrgId) {\n debug.log(\n `Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${baggageOrgId}, Sentry client: ${clientOrgId})`\n );\n return false;\n }\n }\n return true;\n}\n\nexport { TRACEPARENT_REGEXP, extractTraceparentData, generateSentryTraceHeader, generateTraceparentHeader, propagationContextFromHeaders, shouldContinueTrace };\n//# sourceMappingURL=tracing.js.map\n", + "import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { serializeAttributes } from '../attributes.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getCurrentScope } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE } from '../semanticAttributes.js';\nimport { SPAN_STATUS_UNSET, SPAN_STATUS_OK } from '../tracing/spanstatus.js';\nimport { getCapturedScopesOnSpan } from '../tracing/utils.js';\nimport { addNonEnumerableProperty } from './object.js';\nimport { generateSpanId } from './propagationContext.js';\nimport { timestampInSeconds } from './time.js';\nimport { generateSentryTraceHeader, generateTraceparentHeader } from './tracing.js';\nimport { consoleSandbox } from './debug-logger.js';\nimport { _getSpanForScope } from './spanOnScope.js';\n\nconst TRACE_FLAG_NONE = 0;\nconst TRACE_FLAG_SAMPLED = 1;\nlet hasShownSpanDropWarning = false;\nfunction spanToTransactionTraceContext(span) {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { data, op, parent_span_id, status, origin, links } = spanToJSON(span);\n return {\n parent_span_id,\n span_id,\n trace_id,\n data,\n op,\n status,\n origin,\n links\n };\n}\nfunction spanToTraceContext(span) {\n const { spanId, traceId: trace_id, isRemote } = span.spanContext();\n const parent_span_id = isRemote ? spanId : spanToJSON(span).parent_span_id;\n const scope = getCapturedScopesOnSpan(span).scope;\n const span_id = isRemote ? scope?.getPropagationContext().propagationSpanId || generateSpanId() : spanId;\n return {\n parent_span_id,\n span_id,\n trace_id\n };\n}\nfunction spanToTraceHeader(span) {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateSentryTraceHeader(traceId, spanId, sampled);\n}\nfunction spanToTraceparentHeader(span) {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateTraceparentHeader(traceId, spanId, sampled);\n}\nfunction convertSpanLinksForEnvelope(links) {\n if (links && links.length > 0) {\n return links.map(({ context: { spanId, traceId, traceFlags, ...restContext }, attributes }) => ({\n span_id: spanId,\n trace_id: traceId,\n sampled: traceFlags === TRACE_FLAG_SAMPLED,\n attributes,\n ...restContext\n }));\n } else {\n return void 0;\n }\n}\nfunction getStreamedSpanLinks(links) {\n if (links?.length) {\n return links.map(({ context: { spanId, traceId, traceFlags }, attributes }) => ({\n span_id: spanId,\n trace_id: traceId,\n sampled: traceFlags === TRACE_FLAG_SAMPLED,\n attributes\n }));\n } else {\n return void 0;\n }\n}\nfunction spanTimeInputToSeconds(input) {\n if (typeof input === \"number\") {\n return ensureTimestampInSeconds(input);\n }\n if (Array.isArray(input)) {\n return input[0] + input[1] / 1e9;\n }\n if (input instanceof Date) {\n return ensureTimestampInSeconds(input.getTime());\n }\n return timestampInSeconds();\n}\nfunction ensureTimestampInSeconds(timestamp) {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1e3 : timestamp;\n}\nfunction spanToJSON(span) {\n if (spanIsSentrySpan(span)) {\n return span.getSpanJSON();\n }\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n const { attributes, startTime, name, endTime, status, links } = span;\n return {\n span_id,\n trace_id,\n data: attributes,\n description: name,\n parent_span_id: getOtelParentSpanId(span),\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || void 0,\n status: getStatusMessage(status),\n op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN],\n links: convertSpanLinksForEnvelope(links)\n };\n }\n return {\n span_id,\n trace_id,\n start_timestamp: 0,\n data: {}\n };\n}\nfunction spanToStreamedSpanJSON(span) {\n if (spanIsSentrySpan(span)) {\n return span.getStreamedSpanJSON();\n }\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n const { attributes, startTime, name, endTime, status, links } = span;\n return {\n name,\n span_id,\n trace_id,\n parent_span_id: getOtelParentSpanId(span),\n start_timestamp: spanTimeInputToSeconds(startTime),\n end_timestamp: spanTimeInputToSeconds(endTime),\n is_segment: span === INTERNAL_getSegmentSpan(span),\n status: getSimpleStatus(status),\n attributes: addStatusMessageAttribute(attributes, status),\n links: getStreamedSpanLinks(links)\n };\n }\n return {\n span_id,\n trace_id,\n start_timestamp: 0,\n name: \"\",\n end_timestamp: 0,\n status: \"ok\",\n is_segment: span === INTERNAL_getSegmentSpan(span)\n };\n}\nfunction getOtelParentSpanId(span) {\n return \"parentSpanId\" in span ? span.parentSpanId : \"parentSpanContext\" in span ? span.parentSpanContext?.spanId : void 0;\n}\nfunction streamedSpanJsonToSerializedSpan(spanJson) {\n return {\n ...spanJson,\n attributes: serializeAttributes(spanJson.attributes),\n links: spanJson.links?.map((link) => ({\n ...link,\n attributes: serializeAttributes(link.attributes)\n }))\n };\n}\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span) {\n const castSpan = span;\n return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\nfunction spanIsSentrySpan(span) {\n return typeof span.getSpanJSON === \"function\";\n}\nfunction spanIsSampled(span) {\n const { traceFlags } = span.spanContext();\n return traceFlags === TRACE_FLAG_SAMPLED;\n}\nfunction getStatusMessage(status) {\n if (!status || status.code === SPAN_STATUS_UNSET) {\n return void 0;\n }\n if (status.code === SPAN_STATUS_OK) {\n return \"ok\";\n }\n return status.message || \"internal_error\";\n}\nfunction getSimpleStatus(status) {\n return !status || status.code === SPAN_STATUS_OK || status.code === SPAN_STATUS_UNSET || status.message === \"cancelled\" ? \"ok\" : \"error\";\n}\nfunction addStatusMessageAttribute(attributes, status) {\n const statusMessage = getSimpleStatus(status) === \"error\" ? status?.message : void 0;\n return {\n ...statusMessage && { [SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE]: statusMessage },\n ...attributes\n };\n}\nconst CHILD_SPANS_FIELD = \"_sentryChildSpans\";\nconst ROOT_SPAN_FIELD = \"_sentryRootSpan\";\nfunction addChildSpanToSpan(span, childSpan) {\n const rootSpan = span[ROOT_SPAN_FIELD] || span;\n addNonEnumerableProperty(childSpan, ROOT_SPAN_FIELD, rootSpan);\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].add(childSpan);\n } else {\n addNonEnumerableProperty(span, CHILD_SPANS_FIELD, /* @__PURE__ */ new Set([childSpan]));\n }\n}\nfunction removeChildSpanFromSpan(span, childSpan) {\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].delete(childSpan);\n }\n}\nfunction getSpanDescendants(span) {\n const resultSet = /* @__PURE__ */ new Set();\n function addSpanChildren(span2) {\n if (resultSet.has(span2)) {\n return;\n } else if (spanIsSampled(span2)) {\n resultSet.add(span2);\n const childSpans = span2[CHILD_SPANS_FIELD] ? Array.from(span2[CHILD_SPANS_FIELD]) : [];\n for (const childSpan of childSpans) {\n addSpanChildren(childSpan);\n }\n }\n }\n addSpanChildren(span);\n return Array.from(resultSet);\n}\nconst getRootSpan = INTERNAL_getSegmentSpan;\nfunction INTERNAL_getSegmentSpan(span) {\n return span[ROOT_SPAN_FIELD] || span;\n}\nfunction getActiveSpan() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getActiveSpan) {\n return acs.getActiveSpan();\n }\n return _getSpanForScope(getCurrentScope());\n}\nfunction showSpanDropWarning() {\n if (!hasShownSpanDropWarning) {\n consoleSandbox(() => {\n console.warn(\n \"[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.\"\n );\n });\n hasShownSpanDropWarning = true;\n }\n}\nfunction updateSpanName(span, name) {\n span.updateName(name);\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: \"custom\",\n [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: name\n });\n}\n\nexport { INTERNAL_getSegmentSpan, TRACE_FLAG_NONE, TRACE_FLAG_SAMPLED, addChildSpanToSpan, addStatusMessageAttribute, convertSpanLinksForEnvelope, getActiveSpan, getRootSpan, getSimpleStatus, getSpanDescendants, getStatusMessage, getStreamedSpanLinks, removeChildSpanFromSpan, showSpanDropWarning, spanIsSampled, spanTimeInputToSeconds, spanToJSON, spanToStreamedSpanJSON, spanToTraceContext, spanToTraceHeader, spanToTraceparentHeader, spanToTransactionTraceContext, streamedSpanJsonToSerializedSpan, updateSpanName };\n//# sourceMappingURL=spanUtils.js.map\n", + "const DEFAULT_ENVIRONMENT = \"production\";\nconst DEV_ENVIRONMENT = \"development\";\n\nexport { DEFAULT_ENVIRONMENT, DEV_ENVIRONMENT };\n//# sourceMappingURL=constants.js.map\n", + "import { addNonEnumerableProperty } from '../utils/object.js';\nimport { generateTraceId, generateSpanId } from '../utils/propagationContext.js';\nimport { TRACE_FLAG_NONE } from '../utils/spanUtils.js';\n\nconst NON_RECORDING_SPAN_FIELD = /* @__PURE__ */ Symbol.for(\"sentry.nonRecordingSpan\");\nclass SentryNonRecordingSpan {\n constructor(spanContext = {}) {\n this._traceId = spanContext.traceId || generateTraceId();\n this._spanId = spanContext.spanId || generateSpanId();\n this.dropReason = spanContext.dropReason;\n addNonEnumerableProperty(this, NON_RECORDING_SPAN_FIELD, true);\n }\n /** @inheritdoc */\n spanContext() {\n return {\n spanId: this._spanId,\n traceId: this._traceId,\n traceFlags: TRACE_FLAG_NONE\n };\n }\n /** @inheritdoc */\n end(_timestamp) {\n }\n /** @inheritdoc */\n setAttribute(_key, _value) {\n return this;\n }\n /** @inheritdoc */\n setAttributes(_values) {\n return this;\n }\n /** @inheritdoc */\n setStatus(_status) {\n return this;\n }\n /** @inheritdoc */\n updateName(_name) {\n return this;\n }\n /** @inheritdoc */\n isRecording() {\n return false;\n }\n /** @inheritdoc */\n addEvent(_name, _attributesOrStartTime, _startTime) {\n return this;\n }\n /** @inheritDoc */\n addLink(_link) {\n return this;\n }\n /** @inheritDoc */\n addLinks(_links) {\n return this;\n }\n /**\n * This should generally not be used,\n * but we need it for being compliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n recordException(_exception, _time) {\n }\n}\nfunction spanIsNonRecordingSpan(span) {\n return !!span && span[NON_RECORDING_SPAN_FIELD] === true;\n}\n\nexport { SentryNonRecordingSpan, spanIsNonRecordingSpan };\n//# sourceMappingURL=sentryNonRecordingSpan.js.map\n", + "import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getClient } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader } from '../utils/baggage.js';\nimport { extractOrgIdFromClient } from '../utils/dsn.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { addNonEnumerableProperty } from '../utils/object.js';\nimport { getRootSpan, spanToJSON, spanIsSampled } from '../utils/spanUtils.js';\nimport { spanIsNonRecordingSpan } from './sentryNonRecordingSpan.js';\nimport { getCapturedScopesOnSpan } from './utils.js';\n\nconst FROZEN_DSC_FIELD = \"_frozenDsc\";\nfunction freezeDscOnSpan(span, dsc) {\n const spanWithMaybeDsc = span;\n addNonEnumerableProperty(spanWithMaybeDsc, FROZEN_DSC_FIELD, dsc);\n}\nfunction getDynamicSamplingContextFromClient(trace_id, client) {\n const options = client.getOptions();\n const { publicKey: public_key } = client.getDsn() || {};\n const dsc = {\n environment: options.environment || DEFAULT_ENVIRONMENT,\n release: options.release,\n public_key,\n trace_id,\n org_id: extractOrgIdFromClient(client)\n };\n client.emit(\"createDsc\", dsc);\n return dsc;\n}\nfunction getDynamicSamplingContextFromScope(client, scope) {\n const propagationContext = scope.getPropagationContext();\n return propagationContext.dsc || getDynamicSamplingContextFromClient(propagationContext.traceId, client);\n}\nfunction getDynamicSamplingContextFromSpan(span) {\n const client = getClient();\n if (!client) {\n return {};\n }\n const rootSpan = getRootSpan(span);\n const rootSpanJson = spanToJSON(rootSpan);\n const rootSpanAttributes = rootSpanJson.data;\n const traceState = rootSpan.spanContext().traceState;\n const rootSpanSampleRate = traceState?.get(\"sentry.sample_rate\") ?? rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] ?? rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE];\n function applyLocalSampleRateToDsc(dsc2) {\n if (typeof rootSpanSampleRate === \"number\" || typeof rootSpanSampleRate === \"string\") {\n dsc2.sample_rate = `${rootSpanSampleRate}`;\n }\n return dsc2;\n }\n const frozenDsc = rootSpan[FROZEN_DSC_FIELD];\n if (frozenDsc) {\n return applyLocalSampleRateToDsc(frozenDsc);\n }\n if (spanIsNonRecordingSpan(rootSpan) && !hasSpansEnabled(client.getOptions())) {\n const capturedScope = getCapturedScopesOnSpan(rootSpan).scope;\n if (capturedScope) {\n return applyLocalSampleRateToDsc({ ...getDynamicSamplingContextFromScope(client, capturedScope) });\n }\n }\n const traceStateDsc = traceState?.get(\"sentry.dsc\");\n const dscOnTraceState = traceStateDsc && baggageHeaderToDynamicSamplingContext(traceStateDsc);\n if (dscOnTraceState) {\n return applyLocalSampleRateToDsc(dscOnTraceState);\n }\n const dsc = getDynamicSamplingContextFromClient(span.spanContext().traceId, client);\n const source = rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] ?? rootSpanAttributes[\"sentry.span.source\"];\n const name = rootSpanJson.description;\n if (source !== \"url\" && name) {\n dsc.transaction = name;\n }\n if (hasSpansEnabled()) {\n dsc.sampled = String(spanIsSampled(rootSpan));\n dsc.sample_rand = // In OTEL we store the sample rand on the trace state because we cannot access scopes for NonRecordingSpans\n // The Sentry OTEL SpanSampler takes care of writing the sample rand on the root span\n traceState?.get(\"sentry.sample_rand\") ?? // On all other platforms we can actually get the scopes from a root span (we use this as a fallback)\n getCapturedScopesOnSpan(rootSpan).scope?.getPropagationContext().sampleRand.toString();\n }\n applyLocalSampleRateToDsc(dsc);\n client.emit(\"createDsc\", dsc, rootSpan);\n return dsc;\n}\nfunction spanToBaggageHeader(span) {\n const dsc = getDynamicSamplingContextFromSpan(span);\n return dynamicSamplingContextToSentryBaggageHeader(dsc);\n}\n\nexport { freezeDscOnSpan, getDynamicSamplingContextFromClient, getDynamicSamplingContextFromScope, getDynamicSamplingContextFromSpan, spanToBaggageHeader };\n//# sourceMappingURL=dynamicSamplingContext.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { spanToJSON, getRootSpan, spanIsSampled } from '../utils/spanUtils.js';\n\nfunction logSpanStart(span) {\n if (!DEBUG_BUILD) return;\n const { description = \"< unknown name >\", op = \"< unknown op >\", parent_span_id: parentSpanId } = spanToJSON(span);\n const { spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n const rootSpan = getRootSpan(span);\n const isRootSpan = rootSpan === span;\n const header = `[Tracing] Starting ${sampled ? \"sampled\" : \"unsampled\"} ${isRootSpan ? \"root \" : \"\"}span`;\n const infoParts = [`op: ${op}`, `name: ${description}`, `ID: ${spanId}`];\n if (parentSpanId) {\n infoParts.push(`parent ID: ${parentSpanId}`);\n }\n if (!isRootSpan) {\n const { op: op2, description: description2 } = spanToJSON(rootSpan);\n infoParts.push(`root ID: ${rootSpan.spanContext().spanId}`);\n if (op2) {\n infoParts.push(`root op: ${op2}`);\n }\n if (description2) {\n infoParts.push(`root description: ${description2}`);\n }\n }\n debug.log(`${header}\n ${infoParts.join(\"\\n \")}`);\n}\nfunction logSpanEnd(span) {\n if (!DEBUG_BUILD) return;\n const { description = \"< unknown name >\", op = \"< unknown op >\" } = spanToJSON(span);\n const { spanId } = span.spanContext();\n const rootSpan = getRootSpan(span);\n const isRootSpan = rootSpan === span;\n const msg = `[Tracing] Finishing \"${op}\" ${isRootSpan ? \"root \" : \"\"}span \"${description}\" with ID ${spanId}`;\n debug.log(msg);\n}\n\nexport { logSpanEnd, logSpanStart };\n//# sourceMappingURL=logSpans.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { parseSampleRate } from '../utils/parseSampleRate.js';\n\nfunction sampleSpan(options, samplingContext, sampleRand) {\n if (!hasSpansEnabled(options)) {\n return [false];\n }\n let localSampleRateWasApplied = void 0;\n let sampleRate;\n if (typeof options.tracesSampler === \"function\") {\n sampleRate = options.tracesSampler({\n ...samplingContext,\n inheritOrSampleWith: (fallbackSampleRate) => {\n if (typeof samplingContext.parentSampleRate === \"number\") {\n return samplingContext.parentSampleRate;\n }\n if (typeof samplingContext.parentSampled === \"boolean\") {\n return Number(samplingContext.parentSampled);\n }\n return fallbackSampleRate;\n }\n });\n localSampleRateWasApplied = true;\n } else if (samplingContext.parentSampled !== void 0) {\n sampleRate = samplingContext.parentSampled;\n } else if (typeof options.tracesSampleRate !== \"undefined\") {\n sampleRate = options.tracesSampleRate;\n localSampleRateWasApplied = true;\n }\n const parsedSampleRate = parseSampleRate(sampleRate);\n if (parsedSampleRate === void 0) {\n DEBUG_BUILD && debug.warn(\n `[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n sampleRate\n )} of type ${JSON.stringify(typeof sampleRate)}.`\n );\n return [false];\n }\n if (!parsedSampleRate) {\n DEBUG_BUILD && debug.log(\n `[Tracing] Discarding transaction because ${typeof options.tracesSampler === \"function\" ? \"tracesSampler returned 0 or false\" : \"a negative sampling decision was inherited or tracesSampleRate is set to 0\"}`\n );\n return [false, parsedSampleRate, localSampleRateWasApplied];\n }\n const shouldSample = sampleRand < parsedSampleRate;\n if (!shouldSample) {\n DEBUG_BUILD && debug.log(\n `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n sampleRate\n )})`\n );\n }\n return [shouldSample, parsedSampleRate, localSampleRateWasApplied];\n}\n\nexport { sampleSpan };\n//# sourceMappingURL=sampling.js.map\n", + "import { addNonEnumerableProperty } from '../../utils/object.js';\n\nfunction withStreamedSpan(callback) {\n addNonEnumerableProperty(callback, \"_streamed\", true);\n return callback;\n}\nfunction isStreamedBeforeSendSpanCallback(callback) {\n return !!callback && typeof callback === \"function\" && \"_streamed\" in callback && !!callback._streamed;\n}\n\nexport { isStreamedBeforeSendSpanCallback, withStreamedSpan };\n//# sourceMappingURL=beforeSendSpan.js.map\n", + "import { getSentryCarrier } from '../carrier.js';\nimport { dsnToString } from './dsn.js';\nimport { normalize } from './normalize.js';\nimport { safeDateNow } from './randomSafeContext.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nfunction createEnvelope(headers, items = []) {\n return [headers, items];\n}\nfunction addItemToEnvelope(envelope, newItem) {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]];\n}\nfunction forEachEnvelopeItem(envelope, callback) {\n const envelopeItems = envelope[1];\n for (const envelopeItem of envelopeItems) {\n const envelopeItemType = envelopeItem[0].type;\n const result = callback(envelopeItem, envelopeItemType);\n if (result) {\n return true;\n }\n }\n return false;\n}\nfunction envelopeContainsItemType(envelope, types) {\n return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\nfunction encodeUTF8(input) {\n const carrier = getSentryCarrier(GLOBAL_OBJ);\n return carrier.encodePolyfill ? carrier.encodePolyfill(input) : new TextEncoder().encode(input);\n}\nfunction decodeUTF8(input) {\n const carrier = getSentryCarrier(GLOBAL_OBJ);\n return carrier.decodePolyfill ? carrier.decodePolyfill(input) : new TextDecoder().decode(input);\n}\nfunction serializeEnvelope(envelope) {\n const [envHeaders, items] = envelope;\n let parts = JSON.stringify(envHeaders);\n function append(next) {\n if (typeof parts === \"string\") {\n parts = typeof next === \"string\" ? parts + next : [encodeUTF8(parts), next];\n } else {\n parts.push(typeof next === \"string\" ? encodeUTF8(next) : next);\n }\n }\n for (const item of items) {\n const [itemHeaders, payload] = item;\n append(`\n${JSON.stringify(itemHeaders)}\n`);\n if (typeof payload === \"string\" || payload instanceof Uint8Array) {\n append(payload);\n } else {\n let stringifiedPayload;\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch {\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n append(stringifiedPayload);\n }\n }\n return typeof parts === \"string\" ? parts : concatBuffers(parts);\n}\nfunction concatBuffers(buffers) {\n const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n const merged = new Uint8Array(totalLength);\n let offset = 0;\n for (const buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n return merged;\n}\nfunction parseEnvelope(env) {\n let buffer = typeof env === \"string\" ? encodeUTF8(env) : env;\n function readBinary(length) {\n const bin = buffer.subarray(0, length);\n buffer = buffer.subarray(length + 1);\n return bin;\n }\n function readJson() {\n let i = buffer.indexOf(10);\n if (i < 0) {\n i = buffer.length;\n }\n return JSON.parse(decodeUTF8(readBinary(i)));\n }\n const envelopeHeader = readJson();\n const items = [];\n while (buffer.length) {\n const itemHeader = readJson();\n const binaryLength = typeof itemHeader.length === \"number\" ? itemHeader.length : void 0;\n items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n }\n return [envelopeHeader, items];\n}\nfunction createSpanEnvelopeItem(spanJson) {\n const spanHeaders = {\n type: \"span\"\n };\n return [spanHeaders, spanJson];\n}\nfunction createAttachmentEnvelopeItem(attachment) {\n const buffer = typeof attachment.data === \"string\" ? encodeUTF8(attachment.data) : attachment.data;\n return [\n {\n type: \"attachment\",\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType\n },\n buffer\n ];\n}\nconst DATA_CATEGORY_OVERRIDES = {\n sessions: \"session\",\n event: \"error\",\n client_report: \"internal\",\n user_report: \"default\",\n profile_chunk: \"profile\",\n replay_event: \"replay\",\n replay_recording: \"replay\",\n check_in: \"monitor\",\n raw_security: \"security\",\n log: \"log_item\",\n trace_metric: \"metric\"\n};\nfunction _isOverriddenType(type) {\n return type in DATA_CATEGORY_OVERRIDES;\n}\nfunction envelopeItemTypeToDataCategory(type) {\n return _isOverriddenType(type) ? DATA_CATEGORY_OVERRIDES[type] : type;\n}\nfunction getSdkMetadataForEnvelopeHeader(metadataOrEvent) {\n if (!metadataOrEvent?.sdk) {\n return;\n }\n const { name, version } = metadataOrEvent.sdk;\n return { name, version };\n}\nfunction createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn) {\n const dynamicSamplingContext = event.sdkProcessingMetadata?.dynamicSamplingContext;\n return {\n event_id: event.event_id,\n sent_at: new Date(safeDateNow()).toISOString(),\n ...sdkInfo && { sdk: sdkInfo },\n ...!!tunnel && dsn && { dsn: dsnToString(dsn) },\n ...dynamicSamplingContext && {\n trace: dynamicSamplingContext\n }\n };\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, createEventEnvelopeHeaders, createSpanEnvelopeItem, envelopeContainsItemType, envelopeItemTypeToDataCategory, forEachEnvelopeItem, getSdkMetadataForEnvelopeHeader, parseEnvelope, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n", + "import { getDynamicSamplingContextFromSpan } from './tracing/dynamicSamplingContext.js';\nimport { isStreamedBeforeSendSpanCallback } from './tracing/spans/beforeSendSpan.js';\nimport { dsnToString } from './utils/dsn.js';\nimport { getSdkMetadataForEnvelopeHeader, createEventEnvelopeHeaders, createEnvelope, createSpanEnvelopeItem } from './utils/envelope.js';\nimport { safeDateNow } from './utils/randomSafeContext.js';\nimport { shouldIgnoreSpan } from './utils/should-ignore-span.js';\nimport { spanToJSON, showSpanDropWarning } from './utils/spanUtils.js';\n\nfunction _enhanceEventWithSdkInfo(event, newSdkInfo) {\n if (!newSdkInfo) {\n return event;\n }\n const eventSdkInfo = event.sdk || {};\n event.sdk = {\n ...eventSdkInfo,\n name: eventSdkInfo.name || newSdkInfo.name,\n version: eventSdkInfo.version || newSdkInfo.version,\n integrations: [...event.sdk?.integrations || [], ...newSdkInfo.integrations || []],\n packages: [...event.sdk?.packages || [], ...newSdkInfo.packages || []],\n settings: event.sdk?.settings || newSdkInfo.settings ? {\n ...event.sdk?.settings,\n ...newSdkInfo.settings\n } : void 0\n };\n return event;\n}\nfunction createSessionEnvelope(session, dsn, metadata, tunnel) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const envelopeHeaders = {\n sent_at: new Date(safeDateNow()).toISOString(),\n ...sdkInfo && { sdk: sdkInfo },\n ...!!tunnel && dsn && { dsn: dsnToString(dsn) }\n };\n const envelopeItem = \"aggregates\" in session ? [{ type: \"sessions\" }, session] : [{ type: \"session\" }, session.toJSON()];\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\nfunction createEventEnvelope(event, dsn, metadata, tunnel) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const eventType = event.type && event.type !== \"replay_event\" ? event.type : \"event\";\n _enhanceEventWithSdkInfo(event, metadata?.sdk);\n const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n delete event.sdkProcessingMetadata;\n const eventItem = [{ type: eventType }, event];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\nfunction createSpanEnvelope(spans, client) {\n function dscHasRequiredProps(dsc2) {\n return !!dsc2.trace_id && !!dsc2.public_key;\n }\n const dsc = getDynamicSamplingContextFromSpan(spans[0]);\n const dsn = client?.getDsn();\n const tunnel = client?.getOptions().tunnel;\n const headers = {\n sent_at: new Date(safeDateNow()).toISOString(),\n ...dscHasRequiredProps(dsc) && { trace: dsc },\n ...!!tunnel && dsn && { dsn: dsnToString(dsn) }\n };\n const { beforeSendSpan, ignoreSpans } = client?.getOptions() || {};\n const filteredSpans = ignoreSpans?.length ? spans.filter((span) => {\n const json = spanToJSON(span);\n return !shouldIgnoreSpan({ description: json.description, op: json.op, attributes: json.data }, ignoreSpans);\n }) : spans;\n const droppedSpans = spans.length - filteredSpans.length;\n if (droppedSpans) {\n client?.recordDroppedEvent(\"before_send\", \"span\", droppedSpans);\n }\n const convertToSpanJSON = beforeSendSpan ? (span) => {\n const spanJson = spanToJSON(span);\n const processedSpan = !isStreamedBeforeSendSpanCallback(beforeSendSpan) ? beforeSendSpan(spanJson) : spanJson;\n if (!processedSpan) {\n showSpanDropWarning();\n return spanJson;\n }\n return processedSpan;\n } : spanToJSON;\n const items = [];\n for (const span of filteredSpans) {\n const spanJson = convertToSpanJSON(span);\n if (spanJson) {\n items.push(createSpanEnvelopeItem(spanJson));\n }\n }\n return createEnvelope(headers, items);\n}\n\nexport { _enhanceEventWithSdkInfo, createEventEnvelope, createSessionEnvelope, createSpanEnvelope };\n//# sourceMappingURL=envelope.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE } from '../semanticAttributes.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getRootSpan, getActiveSpan } from '../utils/spanUtils.js';\n\nfunction setMeasurement(name, value, unit, activeSpan = getActiveSpan()) {\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n if (rootSpan) {\n DEBUG_BUILD && debug.log(`[Measurement] Setting measurement on root span: ${name} = ${value} ${unit}`);\n rootSpan.addEvent(name, {\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: value,\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: unit\n });\n }\n}\nfunction timedEventsToMeasurements(events) {\n if (!events || events.length === 0) {\n return void 0;\n }\n const measurements = {};\n events.forEach((event) => {\n const attributes = event.attributes || {};\n const unit = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT];\n const value = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE];\n if (typeof unit === \"string\" && typeof value === \"number\") {\n measurements[event.name] = { value, unit };\n }\n });\n return measurements;\n}\n\nexport { setMeasurement, timedEventsToMeasurements };\n//# sourceMappingURL=measurement.js.map\n", + "import { getClient, getCurrentScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { createSpanEnvelope } from '../envelope.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME } from '../semanticAttributes.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { generateTraceId, generateSpanId } from '../utils/propagationContext.js';\nimport { TRACE_FLAG_SAMPLED, TRACE_FLAG_NONE, spanTimeInputToSeconds, convertSpanLinksForEnvelope, getRootSpan, getStatusMessage, getStreamedSpanLinks, addStatusMessageAttribute, getSimpleStatus, spanToJSON, getSpanDescendants, spanToTransactionTraceContext } from '../utils/spanUtils.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getDynamicSamplingContextFromSpan } from './dynamicSamplingContext.js';\nimport { logSpanEnd } from './logSpans.js';\nimport { timedEventsToMeasurements } from './measurement.js';\nimport { hasSpanStreamingEnabled } from './spans/hasSpanStreamingEnabled.js';\nimport { spanShouldInferOtelSource, getCapturedScopesOnSpan } from './utils.js';\n\nconst MAX_SPAN_COUNT = 1e3;\nclass SentrySpan {\n /**\n * You should never call the constructor manually, always use `Sentry.startSpan()`\n * or other span methods.\n * @internal\n * @hideconstructor\n * @hidden\n */\n constructor(spanContext = {}) {\n this._traceId = spanContext.traceId || generateTraceId();\n this._spanId = spanContext.spanId || generateSpanId();\n this._startTime = spanContext.startTimestamp || timestampInSeconds();\n this._links = spanContext.links;\n this._attributes = {};\n this.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"manual\",\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: spanContext.op,\n ...spanContext.attributes\n });\n this._name = spanContext.name;\n if (spanContext.parentSpanId) {\n this._parentSpanId = spanContext.parentSpanId;\n }\n if (\"sampled\" in spanContext) {\n this._sampled = spanContext.sampled;\n }\n if (spanContext.endTimestamp) {\n this._endTime = spanContext.endTimestamp;\n }\n this._events = [];\n this._isStandaloneSpan = spanContext.isStandalone;\n if (this._endTime) {\n this._onSpanEnded();\n }\n }\n /** @inheritDoc */\n addLink(link) {\n if (this._links) {\n this._links.push(link);\n } else {\n this._links = [link];\n }\n return this;\n }\n /** @inheritDoc */\n addLinks(links) {\n if (this._links) {\n this._links.push(...links);\n } else {\n this._links = links;\n }\n return this;\n }\n /**\n * This should generally not be used,\n * but it is needed for being compliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n recordException(_exception, _time) {\n }\n /** @inheritdoc */\n spanContext() {\n const { _spanId: spanId, _traceId: traceId, _sampled: sampled } = this;\n return {\n spanId,\n traceId,\n traceFlags: sampled ? TRACE_FLAG_SAMPLED : TRACE_FLAG_NONE\n };\n }\n /** @inheritdoc */\n setAttribute(key, value) {\n if (value === void 0) {\n delete this._attributes[key];\n } else {\n this._attributes[key] = value;\n }\n return this;\n }\n /** @inheritdoc */\n setAttributes(attributes) {\n Object.keys(attributes).forEach((key) => this.setAttribute(key, attributes[key]));\n return this;\n }\n /**\n * This should generally not be used,\n * but we need it for browser tracing where we want to adjust the start time afterwards.\n * USE THIS WITH CAUTION!\n *\n * @hidden\n * @internal\n */\n updateStartTime(timeInput) {\n this._startTime = spanTimeInputToSeconds(timeInput);\n }\n /**\n * @inheritDoc\n */\n setStatus(value) {\n this._status = value;\n return this;\n }\n /**\n * @inheritDoc\n */\n updateName(name) {\n this._name = name;\n if (!spanShouldInferOtelSource(this)) {\n this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, \"custom\");\n }\n return this;\n }\n /** @inheritdoc */\n end(endTimestamp) {\n if (this._endTime) {\n return;\n }\n this._endTime = spanTimeInputToSeconds(endTimestamp);\n logSpanEnd(this);\n this._onSpanEnded();\n }\n /**\n * Get JSON representation of this span.\n *\n * @hidden\n * @internal This method is purely for internal purposes and should not be used outside\n * of SDK code. If you need to get a JSON representation of a span,\n * use `spanToJSON(span)` instead.\n */\n getSpanJSON() {\n return {\n data: this._attributes,\n description: this._name,\n op: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n parent_span_id: this._parentSpanId,\n span_id: this._spanId,\n start_timestamp: this._startTime,\n status: getStatusMessage(this._status),\n timestamp: this._endTime,\n trace_id: this._traceId,\n origin: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN],\n profile_id: this._attributes[SEMANTIC_ATTRIBUTE_PROFILE_ID],\n exclusive_time: this._attributes[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME],\n measurements: timedEventsToMeasurements(this._events),\n is_segment: this._isStandaloneSpan && getRootSpan(this) === this || void 0,\n segment_id: this._isStandaloneSpan ? getRootSpan(this).spanContext().spanId : void 0,\n links: convertSpanLinksForEnvelope(this._links)\n };\n }\n /**\n * Get {@link StreamedSpanJSON} representation of this span.\n *\n * @hidden\n * @internal This method is purely for internal purposes and should not be used outside\n * of SDK code. If you need to get a JSON representation of a span,\n * use `spanToStreamedSpanJSON(span)` instead.\n */\n getStreamedSpanJSON() {\n return {\n name: this._name ?? \"\",\n span_id: this._spanId,\n trace_id: this._traceId,\n parent_span_id: this._parentSpanId,\n start_timestamp: this._startTime,\n // just in case _endTime is not set, we use the start time (i.e. duration 0)\n end_timestamp: this._endTime ?? this._startTime,\n is_segment: this._isStandaloneSpan || this === getRootSpan(this),\n status: getSimpleStatus(this._status),\n attributes: addStatusMessageAttribute(this._attributes, this._status),\n links: getStreamedSpanLinks(this._links)\n };\n }\n /** @inheritdoc */\n isRecording() {\n return !this._endTime && !!this._sampled;\n }\n /**\n * @inheritdoc\n */\n addEvent(name, attributesOrStartTime, startTime) {\n DEBUG_BUILD && debug.log(\"[Tracing] Adding an event to span:\", name);\n const time = isSpanTimeInput(attributesOrStartTime) ? attributesOrStartTime : startTime || timestampInSeconds();\n const attributes = isSpanTimeInput(attributesOrStartTime) ? {} : attributesOrStartTime || {};\n const event = {\n name,\n time: spanTimeInputToSeconds(time),\n attributes\n };\n this._events.push(event);\n return this;\n }\n /**\n * This method should generally not be used,\n * but for now we need a way to publicly check if the `_isStandaloneSpan` flag is set.\n * USE THIS WITH CAUTION!\n * @internal\n * @hidden\n * @experimental\n */\n isStandaloneSpan() {\n return !!this._isStandaloneSpan;\n }\n /** Emit `spanEnd` when the span is ended. */\n _onSpanEnded() {\n const client = getClient();\n if (client) {\n client.emit(\"spanEnd\", this);\n if (!this._isStandaloneSpan) {\n client.emit(\"afterSpanEnd\", this);\n }\n }\n const isSegmentSpan = this._isStandaloneSpan || this === getRootSpan(this);\n if (!isSegmentSpan) {\n return;\n }\n if (this._isStandaloneSpan) {\n if (this._sampled) {\n sendSpanEnvelope(createSpanEnvelope([this], client));\n } else {\n DEBUG_BUILD && debug.log(\"[Tracing] Discarding standalone span because its trace was not chosen to be sampled.\");\n if (client) {\n client.recordDroppedEvent(\"sample_rate\", \"span\");\n }\n }\n return;\n } else if (client && hasSpanStreamingEnabled(client)) {\n client.emit(\"afterSegmentSpanEnd\", this);\n return;\n }\n const transactionEvent = this._convertSpanToTransaction();\n if (transactionEvent) {\n const scope = getCapturedScopesOnSpan(this).scope || getCurrentScope();\n scope.captureEvent(transactionEvent);\n }\n }\n /**\n * Finish the transaction & prepare the event to send to Sentry.\n */\n _convertSpanToTransaction() {\n if (!isFullFinishedSpan(spanToJSON(this))) {\n return void 0;\n }\n if (!this._name) {\n DEBUG_BUILD && debug.warn(\"Transaction has no name, falling back to ``.\");\n this._name = \"\";\n }\n const { scope: capturedSpanScope, isolationScope: capturedSpanIsolationScope } = getCapturedScopesOnSpan(this);\n const normalizedRequest = capturedSpanScope?.getScopeData().sdkProcessingMetadata?.normalizedRequest;\n if (this._sampled !== true) {\n return void 0;\n }\n const finishedSpans = getSpanDescendants(this).filter((span) => span !== this && !isStandaloneSpan(span));\n const spans = finishedSpans.map((span) => spanToJSON(span)).filter(isFullFinishedSpan);\n const source = this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n delete this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n let hasGenAiSpans = false;\n spans.forEach((span) => {\n delete span.data[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n if (span.op?.startsWith(\"gen_ai.\")) {\n hasGenAiSpans = true;\n }\n });\n const transaction = {\n contexts: {\n trace: spanToTransactionTraceContext(this)\n },\n spans: (\n // spans.sort() mutates the array, but `spans` is already a copy so we can safely do this here\n // we do not use spans anymore after this point\n spans.length > MAX_SPAN_COUNT ? spans.sort((a, b) => a.start_timestamp - b.start_timestamp).slice(0, MAX_SPAN_COUNT) : spans\n ),\n start_timestamp: this._startTime,\n timestamp: this._endTime,\n transaction: this._name,\n type: \"transaction\",\n sdkProcessingMetadata: {\n capturedSpanScope,\n capturedSpanIsolationScope,\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(this),\n hasGenAiSpans\n },\n request: normalizedRequest,\n ...source && {\n transaction_info: {\n source\n }\n }\n };\n const measurements = timedEventsToMeasurements(this._events);\n const hasMeasurements = measurements && Object.keys(measurements).length;\n if (hasMeasurements) {\n DEBUG_BUILD && debug.log(\n \"[Measurements] Adding measurements to transaction event\",\n JSON.stringify(measurements, void 0, 2)\n );\n transaction.measurements = measurements;\n }\n return transaction;\n }\n}\nfunction isSpanTimeInput(value) {\n return value && typeof value === \"number\" || value instanceof Date || Array.isArray(value);\n}\nfunction isFullFinishedSpan(input) {\n return !!input.start_timestamp && !!input.timestamp && !!input.span_id && !!input.trace_id;\n}\nfunction isStandaloneSpan(span) {\n return span instanceof SentrySpan && span.isStandaloneSpan();\n}\nfunction sendSpanEnvelope(envelope) {\n const client = getClient();\n if (!client) {\n return;\n }\n const spanItems = envelope[1];\n if (!spanItems || spanItems.length === 0) {\n client.recordDroppedEvent(\"before_send\", \"span\");\n return;\n }\n client.sendEnvelope(envelope);\n}\n\nexport { SentrySpan };\n//# sourceMappingURL=sentrySpan.js.map\n", + "import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getClient, withScope, getCurrentScope, getIsolationScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { baggageHeaderToDynamicSamplingContext } from '../utils/baggage.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { handleCallbackErrors } from '../utils/handleCallbackErrors.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { shouldIgnoreSpan } from '../utils/should-ignore-span.js';\nimport { hasSpanStreamingEnabled } from './spans/hasSpanStreamingEnabled.js';\nimport { parseSampleRate } from '../utils/parseSampleRate.js';\nimport { generateTraceId } from '../utils/propagationContext.js';\nimport { safeMathRandom } from '../utils/randomSafeContext.js';\nimport { _getSpanForScope, _setSpanForScope } from '../utils/spanOnScope.js';\nimport { spanTimeInputToSeconds, getRootSpan, addChildSpanToSpan, spanIsSampled, spanToJSON } from '../utils/spanUtils.js';\nimport { shouldContinueTrace, propagationContextFromHeaders } from '../utils/tracing.js';\nimport { getDynamicSamplingContextFromSpan, freezeDscOnSpan } from './dynamicSamplingContext.js';\nimport { logSpanStart } from './logSpans.js';\nimport { sampleSpan } from './sampling.js';\nimport { SentryNonRecordingSpan, spanIsNonRecordingSpan } from './sentryNonRecordingSpan.js';\nimport { SentrySpan } from './sentrySpan.js';\nimport { SPAN_STATUS_ERROR } from './spanstatus.js';\nimport { setCapturedScopesOnSpan } from './utils.js';\n\nconst SUPPRESS_TRACING_KEY = \"__SENTRY_SUPPRESS_TRACING__\";\nfunction startSpan(options, callback) {\n const acs = getAcs();\n if (acs.startSpan) {\n return acs.startSpan(options, callback);\n }\n const spanArguments = parseSentrySpanArguments(options);\n const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n const customForkedScope = customScope?.clone();\n return withScope(customForkedScope, () => {\n const wrapper = getActiveSpanWrapper(customParentSpan);\n return wrapper(() => {\n const scope = getCurrentScope();\n const parentSpan = getParentSpan(scope, customParentSpan);\n const client = getClient();\n const missingRequiredParent = options.onlyIfParent && !parentSpan;\n const activeSpan = missingRequiredParent ? startMissingRequiredParentSpan(scope, client) : createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope\n });\n if (!_isIgnoredSpan(activeSpan) || !parentSpan) {\n _setSpanForScope(scope, activeSpan);\n }\n return handleCallbackErrors(\n () => callback(activeSpan),\n () => {\n const { status } = spanToJSON(activeSpan);\n if (activeSpan.isRecording() && (!status || status === \"ok\")) {\n activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n }\n },\n () => {\n activeSpan.end();\n }\n );\n });\n });\n}\nfunction startSpanManual(options, callback) {\n const acs = getAcs();\n if (acs.startSpanManual) {\n return acs.startSpanManual(options, callback);\n }\n const spanArguments = parseSentrySpanArguments(options);\n const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n const customForkedScope = customScope?.clone();\n return withScope(customForkedScope, () => {\n const wrapper = getActiveSpanWrapper(customParentSpan);\n return wrapper(() => {\n const scope = getCurrentScope();\n const parentSpan = getParentSpan(scope, customParentSpan);\n const missingRequiredParent = options.onlyIfParent && !parentSpan;\n const activeSpan = missingRequiredParent ? startMissingRequiredParentSpan(scope, getClient()) : createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope\n });\n if (!_isIgnoredSpan(activeSpan) || !parentSpan) {\n _setSpanForScope(scope, activeSpan);\n }\n return handleCallbackErrors(\n // We pass the `finish` function to the callback, so the user can finish the span manually\n // this is mainly here for historic purposes because previously, we instructed users to call\n // `finish` instead of `span.end()` to also clean up the scope. Nowadays, calling `span.end()`\n // or `finish` has the same effect and we simply leave it here to avoid breaking user code.\n () => callback(activeSpan, () => activeSpan.end()),\n () => {\n const { status } = spanToJSON(activeSpan);\n if (activeSpan.isRecording() && (!status || status === \"ok\")) {\n activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n }\n }\n );\n });\n });\n}\nfunction startInactiveSpan(options) {\n const acs = getAcs();\n if (acs.startInactiveSpan) {\n return acs.startInactiveSpan(options);\n }\n const spanArguments = parseSentrySpanArguments(options);\n const { forceTransaction, parentSpan: customParentSpan } = options;\n const wrapper = options.scope ? (callback) => withScope(options.scope, callback) : customParentSpan !== void 0 ? (callback) => withActiveSpan(customParentSpan, callback) : (callback) => callback();\n return wrapper(() => {\n const scope = getCurrentScope();\n const parentSpan = getParentSpan(scope, customParentSpan);\n const client = getClient();\n const missingRequiredParent = options.onlyIfParent && !parentSpan;\n if (missingRequiredParent) {\n return startMissingRequiredParentSpan(scope, client);\n }\n return createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope\n });\n });\n}\nconst continueTrace = (options, callback) => {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.continueTrace) {\n return acs.continueTrace(options, callback);\n }\n const { sentryTrace, baggage } = options;\n const client = getClient();\n const incomingDsc = baggageHeaderToDynamicSamplingContext(baggage);\n if (client && !shouldContinueTrace(client, incomingDsc?.org_id)) {\n return startNewTrace(callback);\n }\n return withScope((scope) => {\n const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n scope.setPropagationContext(propagationContext);\n _setSpanForScope(scope, void 0);\n return callback();\n });\n};\nfunction withActiveSpan(span, callback) {\n const acs = getAcs();\n if (acs.withActiveSpan) {\n return acs.withActiveSpan(span, callback);\n }\n return withScope((scope) => {\n _setSpanForScope(scope, span || void 0);\n return callback(scope);\n });\n}\nfunction suppressTracing(callback) {\n const acs = getAcs();\n if (acs.suppressTracing) {\n return acs.suppressTracing(callback);\n }\n return withScope((scope) => {\n scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: true });\n const res = callback();\n scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: void 0 });\n return res;\n });\n}\nfunction isTracingSuppressed(scope = getCurrentScope()) {\n const acs = getAcs();\n if (acs.isTracingSuppressed) {\n return acs.isTracingSuppressed(scope);\n }\n return scope.getScopeData().sdkProcessingMetadata[SUPPRESS_TRACING_KEY] === true;\n}\nfunction startNewTrace(callback) {\n const acs = getAcs();\n if (acs.startNewTrace) {\n return acs.startNewTrace(callback);\n }\n return withScope((scope) => {\n scope.setPropagationContext({\n traceId: generateTraceId(),\n sampleRand: safeMathRandom()\n });\n DEBUG_BUILD && debug.log(`Starting a new trace with id ${scope.getPropagationContext().traceId}`);\n return withActiveSpan(null, callback);\n });\n}\nfunction startMissingRequiredParentSpan(scope, client) {\n client?.recordDroppedEvent(\"no_parent_span\", \"span\");\n const span = new SentryNonRecordingSpan({ traceId: scope.getPropagationContext().traceId });\n setCapturedScopesOnSpan(span, scope, getIsolationScope());\n return span;\n}\nfunction createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope\n}) {\n const isolationScope = getIsolationScope();\n if (!hasSpansEnabled()) {\n const scopePropagationContext = { ...isolationScope.getPropagationContext(), ...scope.getPropagationContext() };\n const traceId = parentSpan ? parentSpan.spanContext().traceId : scopePropagationContext.traceId;\n const span2 = new SentryNonRecordingSpan({ traceId });\n if (parentSpan && !forceTransaction) {\n addChildSpanToSpan(parentSpan, span2);\n }\n setCapturedScopesOnSpan(span2, scope, isolationScope);\n return span2;\n }\n const client = getClient();\n if (_shouldIgnoreStreamedSpan(client, spanArguments)) {\n if (!isTracingSuppressed(scope)) {\n client?.recordDroppedEvent(\"ignored\", \"span\");\n }\n const ignoredSpan = new SentryNonRecordingSpan({\n dropReason: \"ignored\",\n traceId: parentSpan?.spanContext().traceId ?? scope.getPropagationContext().traceId\n });\n setCapturedScopesOnSpan(ignoredSpan, scope, isolationScope);\n return ignoredSpan;\n }\n let span;\n if (parentSpan && !forceTransaction) {\n span = _startChildSpan(parentSpan, scope, spanArguments, isolationScope);\n addChildSpanToSpan(parentSpan, span);\n } else if (parentSpan) {\n const dsc = getDynamicSamplingContextFromSpan(parentSpan);\n const { traceId, spanId: parentSpanId } = parentSpan.spanContext();\n const parentSampled = spanIsSampled(parentSpan);\n span = _startRootSpan(\n {\n traceId,\n parentSpanId,\n ...spanArguments\n },\n scope,\n isolationScope,\n parentSampled\n );\n freezeDscOnSpan(span, dsc);\n } else {\n const {\n traceId,\n dsc,\n parentSpanId,\n sampled: parentSampled\n } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext()\n };\n span = _startRootSpan(\n {\n traceId,\n parentSpanId,\n ...spanArguments\n },\n scope,\n isolationScope,\n parentSampled\n );\n if (dsc) {\n freezeDscOnSpan(span, dsc);\n }\n }\n logSpanStart(span);\n return span;\n}\nfunction parseSentrySpanArguments(options) {\n const exp = options.experimental || {};\n const initialCtx = {\n isStandalone: exp.standalone,\n ...options\n };\n if (options.startTime) {\n const ctx = { ...initialCtx };\n ctx.startTimestamp = spanTimeInputToSeconds(options.startTime);\n delete ctx.startTime;\n return ctx;\n }\n return initialCtx;\n}\nfunction getAcs() {\n const carrier = getMainCarrier();\n return getAsyncContextStrategy(carrier);\n}\nfunction _startRootSpan(spanArguments, scope, isolationScope, parentSampled) {\n const client = getClient();\n const options = client?.getOptions() || {};\n const { name = \"\" } = spanArguments;\n const mutableSpanSamplingData = { spanAttributes: { ...spanArguments.attributes }, spanName: name, parentSampled };\n client?.emit(\"beforeSampling\", mutableSpanSamplingData, { decision: false });\n const finalParentSampled = mutableSpanSamplingData.parentSampled ?? parentSampled;\n const finalAttributes = mutableSpanSamplingData.spanAttributes;\n const currentPropagationContext = scope.getPropagationContext();\n const _isTracingSuppressed = isTracingSuppressed(scope);\n const [sampled, sampleRate, localSampleRateWasApplied] = _isTracingSuppressed ? [false] : sampleSpan(\n options,\n {\n name,\n parentSampled: finalParentSampled,\n attributes: finalAttributes,\n normalizedRequest: isolationScope.getScopeData().sdkProcessingMetadata.normalizedRequest,\n parentSampleRate: parseSampleRate(currentPropagationContext.dsc?.sample_rate)\n },\n currentPropagationContext.sampleRand\n );\n const rootSpan = new SentrySpan({\n ...spanArguments,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: \"custom\",\n [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: sampleRate !== void 0 && localSampleRateWasApplied ? sampleRate : void 0,\n ...finalAttributes\n },\n sampled\n });\n if (!sampled && client && !_isTracingSuppressed) {\n DEBUG_BUILD && debug.log(\"[Tracing] Discarding root span because its trace was not chosen to be sampled.\");\n client.recordDroppedEvent(\"sample_rate\", hasSpanStreamingEnabled(client) ? \"span\" : \"transaction\");\n }\n setCapturedScopesOnSpan(rootSpan, scope, isolationScope);\n if (client) {\n client.emit(\"spanStart\", rootSpan);\n }\n return rootSpan;\n}\nfunction _startChildSpan(parentSpan, scope, spanArguments, isolationScope) {\n const { spanId, traceId } = parentSpan.spanContext();\n const _isTracingSuppressed = isTracingSuppressed(scope);\n const sampled = _isTracingSuppressed ? false : spanIsSampled(parentSpan);\n const childSpan = sampled ? new SentrySpan({\n ...spanArguments,\n parentSpanId: spanId,\n traceId,\n sampled\n }) : new SentryNonRecordingSpan({ traceId });\n addChildSpanToSpan(parentSpan, childSpan);\n setCapturedScopesOnSpan(childSpan, scope, isolationScope);\n const client = getClient();\n if (!client) {\n return childSpan;\n }\n if (hasSpanStreamingEnabled(client) && spanIsNonRecordingSpan(childSpan)) {\n if (spanIsNonRecordingSpan(parentSpan) && parentSpan.dropReason) {\n childSpan.dropReason = parentSpan.dropReason;\n client.recordDroppedEvent(parentSpan.dropReason, \"span\");\n } else if (!_isTracingSuppressed) {\n childSpan.dropReason = \"sample_rate\";\n client.recordDroppedEvent(\"sample_rate\", \"span\");\n }\n }\n client.emit(\"spanStart\", childSpan);\n if (spanArguments.endTimestamp) {\n client.emit(\"spanEnd\", childSpan);\n client.emit(\"afterSpanEnd\", childSpan);\n }\n return childSpan;\n}\nfunction getParentSpan(scope, customParentSpan) {\n if (customParentSpan) {\n return customParentSpan;\n }\n if (customParentSpan === null) {\n return void 0;\n }\n const span = _getSpanForScope(scope);\n if (!span) {\n return void 0;\n }\n const client = getClient();\n const options = client ? client.getOptions() : {};\n if (options.parentSpanIsAlwaysRootSpan) {\n return getRootSpan(span);\n }\n return span;\n}\nfunction getActiveSpanWrapper(parentSpan) {\n return parentSpan !== void 0 ? (callback) => {\n return withActiveSpan(parentSpan, callback);\n } : (callback) => callback();\n}\nfunction _shouldIgnoreStreamedSpan(client, spanArguments) {\n const ignoreSpans = client?.getOptions().ignoreSpans;\n if (!client || !hasSpanStreamingEnabled(client) || !ignoreSpans?.length) {\n return false;\n }\n return shouldIgnoreSpan(\n {\n description: spanArguments.name || \"\",\n op: spanArguments.attributes?.[SEMANTIC_ATTRIBUTE_SENTRY_OP] || spanArguments.op,\n attributes: spanArguments.attributes\n },\n ignoreSpans\n );\n}\nfunction _isIgnoredSpan(span) {\n return spanIsNonRecordingSpan(span) && span.dropReason === \"ignored\";\n}\n\nexport { SUPPRESS_TRACING_KEY, continueTrace, isTracingSuppressed, startInactiveSpan, startNewTrace, startSpan, startSpanManual, suppressTracing, withActiveSpan };\n//# sourceMappingURL=trace.js.map\n", + "import { getCurrentScope, withScope } from '../currentScopes.js';\n\nconst ADD_LISTENER_METHODS = [\n \"addListener\",\n \"on\",\n \"once\",\n \"prependListener\",\n \"prependOnceListener\",\n \"addEventListener\"\n];\nconst REMOVE_LISTENER_METHODS = [\"removeListener\", \"off\", \"removeEventListener\"];\nconst SCOPE_BOUND_LISTENERS = /* @__PURE__ */ Symbol(\"SentryScopeBoundListeners\");\nlet registeringWrapper;\nfunction isReentrantWrapperRegistration(listener) {\n return registeringWrapper !== void 0 && (listener === registeringWrapper || listener.listener === registeringWrapper);\n}\nfunction bindScopeToEmitter(emitter, scope = getCurrentScope()) {\n const ee = emitter;\n if (getPatchMap(ee)) {\n return emitter;\n }\n createPatchMap(ee);\n for (const methodName of ADD_LISTENER_METHODS) {\n if (typeof ee[methodName] !== \"function\") {\n continue;\n }\n ee[methodName] = patchAddListener(ee, ee[methodName], scope);\n }\n for (const methodName of REMOVE_LISTENER_METHODS) {\n if (typeof ee[methodName] !== \"function\") {\n continue;\n }\n ee[methodName] = patchRemoveListener(ee, ee[methodName]);\n }\n if (typeof ee.removeAllListeners === \"function\") {\n ee.removeAllListeners = patchRemoveAllListeners(ee, ee.removeAllListeners);\n }\n return emitter;\n}\nfunction bindListenerToScope(listener, scope) {\n return function(...args) {\n return withScope(scope, () => listener.apply(this, args));\n };\n}\nfunction isBoundListener(listener) {\n return typeof listener === \"function\";\n}\nfunction patchAddListener(ee, original, scope) {\n return function(...args) {\n const event = args[0];\n const listener = args[1];\n const rest = args.slice(2);\n if (!isBoundListener(listener) || isReentrantWrapperRegistration(listener)) {\n return original.apply(this, args);\n }\n const map = getPatchMap(ee) || createPatchMap(ee);\n let listeners = map.get(event);\n if (!listeners) {\n listeners = /* @__PURE__ */ new WeakMap();\n map.set(event, listeners);\n }\n let boundListener = listeners.get(listener);\n if (!boundListener) {\n boundListener = bindListenerToScope(listener, scope);\n listeners.set(listener, boundListener);\n }\n const previous = registeringWrapper;\n registeringWrapper = boundListener;\n try {\n return original.call(this, event, boundListener, ...rest);\n } finally {\n registeringWrapper = previous;\n }\n };\n}\nfunction patchRemoveListener(ee, original) {\n return function(...args) {\n const event = args[0];\n const listener = args[1];\n const rest = args.slice(2);\n const boundListener = isBoundListener(listener) ? getPatchMap(ee)?.get(event)?.get(listener) : void 0;\n if (!boundListener) {\n return original.apply(this, args);\n }\n return original.call(this, event, boundListener, ...rest);\n };\n}\nfunction patchRemoveAllListeners(ee, original) {\n return function(...args) {\n const map = getPatchMap(ee);\n if (map) {\n if (args.length === 0) {\n createPatchMap(ee);\n } else {\n const event = args[0];\n map.delete(event);\n }\n }\n return original.apply(this, args);\n };\n}\nfunction createPatchMap(ee) {\n const map = /* @__PURE__ */ new Map();\n ee[SCOPE_BOUND_LISTENERS] = map;\n return map;\n}\nfunction getPatchMap(ee) {\n return ee[SCOPE_BOUND_LISTENERS];\n}\n\nexport { bindScopeToEmitter };\n//# sourceMappingURL=bindScopeToEmitter.js.map\n", + "import { getGlobalScope } from '../currentScopes.js';\nimport { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext.js';\nimport { merge } from './merge.js';\nimport { spanToTraceContext, getRootSpan, spanToJSON } from './spanUtils.js';\n\nfunction applyScopeDataToEvent(event, data) {\n const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n applyDataToEvent(event, data);\n if (span) {\n applySpanToEvent(event, span);\n }\n applyFingerprintToEvent(event, fingerprint);\n applyBreadcrumbsToEvent(event, breadcrumbs);\n applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\nfunction mergeScopeData(data, mergeData) {\n const {\n extra,\n tags,\n attributes,\n user,\n contexts,\n level,\n sdkProcessingMetadata,\n breadcrumbs,\n fingerprint,\n eventProcessors,\n attachments,\n propagationContext,\n transactionName,\n span\n } = mergeData;\n mergeAndOverwriteScopeData(data, \"extra\", extra);\n mergeAndOverwriteScopeData(data, \"tags\", tags);\n mergeAndOverwriteScopeData(data, \"attributes\", attributes);\n mergeAndOverwriteScopeData(data, \"user\", user);\n mergeAndOverwriteScopeData(data, \"contexts\", contexts);\n data.sdkProcessingMetadata = merge(data.sdkProcessingMetadata, sdkProcessingMetadata, 2);\n if (level) {\n data.level = level;\n }\n if (transactionName) {\n data.transactionName = transactionName;\n }\n if (span) {\n data.span = span;\n }\n if (breadcrumbs.length) {\n data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n }\n if (fingerprint.length) {\n data.fingerprint = [...data.fingerprint, ...fingerprint];\n }\n if (eventProcessors.length) {\n data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n }\n if (attachments.length) {\n data.attachments = [...data.attachments, ...attachments];\n }\n data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\nfunction mergeAndOverwriteScopeData(data, prop, mergeVal) {\n data[prop] = merge(data[prop], mergeVal, 1);\n}\nfunction getCombinedScopeData(isolationScope, currentScope) {\n const scopeData = getGlobalScope().getScopeData();\n isolationScope && mergeScopeData(scopeData, isolationScope.getScopeData());\n currentScope && mergeScopeData(scopeData, currentScope.getScopeData());\n return scopeData;\n}\nfunction applyDataToEvent(event, data) {\n const { extra, tags, user, contexts, level, transactionName } = data;\n if (Object.keys(extra).length) {\n event.extra = { ...extra, ...event.extra };\n }\n if (Object.keys(tags).length) {\n event.tags = { ...tags, ...event.tags };\n }\n if (Object.keys(user).length) {\n event.user = { ...user, ...event.user };\n }\n if (Object.keys(contexts).length) {\n event.contexts = { ...contexts, ...event.contexts };\n }\n if (level) {\n event.level = level;\n }\n if (transactionName && event.type !== \"transaction\") {\n event.transaction = transactionName;\n }\n}\nfunction applyBreadcrumbsToEvent(event, breadcrumbs) {\n const mergedBreadcrumbs = [...event.breadcrumbs || [], ...breadcrumbs];\n event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : void 0;\n}\nfunction applySdkMetadataToEvent(event, sdkProcessingMetadata) {\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n ...sdkProcessingMetadata\n };\n}\nfunction applySpanToEvent(event, span) {\n event.contexts = {\n trace: spanToTraceContext(span),\n ...event.contexts\n };\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n ...event.sdkProcessingMetadata\n };\n const rootSpan = getRootSpan(span);\n const transactionName = spanToJSON(rootSpan).description;\n if (transactionName && !event.transaction && event.type === \"transaction\") {\n event.transaction = transactionName;\n }\n}\nfunction applyFingerprintToEvent(event, fingerprint) {\n event.fingerprint = event.fingerprint ? Array.isArray(event.fingerprint) ? event.fingerprint : [event.fingerprint] : [];\n if (fingerprint) {\n event.fingerprint = event.fingerprint.concat(fingerprint);\n }\n if (!event.fingerprint.length) {\n delete event.fingerprint;\n }\n}\n\nexport { applyScopeDataToEvent, getCombinedScopeData, mergeAndOverwriteScopeData, mergeScopeData };\n//# sourceMappingURL=scopeData.js.map\n", + "function scopeContextsToSpanAttributes(contexts) {\n const attrs = {};\n const { response, profile, cloud_resource, culture, state } = contexts;\n if (response) {\n if (response.status_code != null) {\n attrs[\"http.response.status_code\"] = response.status_code;\n }\n if (response.body_size != null) {\n attrs[\"http.response.body.size\"] = response.body_size;\n }\n }\n if (profile) {\n if (profile.profile_id) {\n attrs[\"sentry.profile_id\"] = profile.profile_id;\n }\n if (profile.profiler_id) {\n attrs[\"sentry.profiler_id\"] = profile.profiler_id;\n }\n }\n if (cloud_resource) {\n for (const [key, value] of Object.entries(cloud_resource)) {\n if (value != null) {\n attrs[key] = value;\n }\n }\n }\n if (culture) {\n if (culture.locale) {\n attrs[\"culture.locale\"] = culture.locale;\n }\n if (culture.timezone) {\n attrs[\"culture.timezone\"] = culture.timezone;\n }\n }\n if (state?.state && typeof state.state.type === \"string\") {\n attrs[\"state.type\"] = state.state.type;\n }\n const angular = contexts[\"angular\"];\n if (angular) {\n const version = angular[\"version\"];\n if (typeof version === \"string\" || typeof version === \"number\") {\n attrs[\"angular.version\"] = version;\n }\n }\n const react = contexts[\"react\"];\n if (react) {\n const version = react[\"version\"];\n if (typeof version === \"string\" || typeof version === \"number\") {\n attrs[\"react.version\"] = version;\n }\n }\n return attrs;\n}\n\nexport { scopeContextsToSpanAttributes };\n//# sourceMappingURL=scopeContextAttributes.js.map\n", + "import { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_USER_USERNAME, SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS, SEMANTIC_ATTRIBUTE_USER_EMAIL, SEMANTIC_ATTRIBUTE_USER_ID, SEMANTIC_ATTRIBUTE_SENTRY_SDK_VERSION, SEMANTIC_ATTRIBUTE_SENTRY_SDK_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_ID, SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_NAME, SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT, SEMANTIC_ATTRIBUTE_SENTRY_RELEASE, SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS } from '../../semanticAttributes.js';\nimport { getCombinedScopeData } from '../../utils/scopeData.js';\nimport { spanToStreamedSpanJSON, INTERNAL_getSegmentSpan, streamedSpanJsonToSerializedSpan, showSpanDropWarning } from '../../utils/spanUtils.js';\nimport { getCapturedScopesOnSpan } from '../utils.js';\nimport { isStreamedBeforeSendSpanCallback } from './beforeSendSpan.js';\nimport { scopeContextsToSpanAttributes } from './scopeContextAttributes.js';\nimport { DEFAULT_ENVIRONMENT } from '../../constants.js';\n\nfunction captureSpan(span, client) {\n const spanJSON = spanToStreamedSpanJSON(span);\n const segmentSpan = INTERNAL_getSegmentSpan(span);\n const serializedSegmentSpan = spanToStreamedSpanJSON(segmentSpan);\n const { isolationScope: spanIsolationScope, scope: spanScope } = getCapturedScopesOnSpan(span);\n const finalScopeData = getCombinedScopeData(spanIsolationScope, spanScope);\n applyCommonSpanAttributes(spanJSON, serializedSegmentSpan, client, finalScopeData);\n const spanKind = span.kind;\n client.emit(\"preprocessSpan\", spanJSON, { spanKind });\n if (spanJSON.is_segment) {\n applyScopeToSegmentSpan(spanJSON, finalScopeData);\n applySdkMetadataToSegmentSpan(spanJSON, client);\n client.emit(\"processSegmentSpan\", spanJSON);\n }\n client.emit(\"processSpan\", spanJSON);\n const { beforeSendSpan } = client.getOptions();\n const processedSpan = beforeSendSpan && isStreamedBeforeSendSpanCallback(beforeSendSpan) ? applyBeforeSendSpanCallback(spanJSON, beforeSendSpan) : spanJSON;\n const spanNameSource = processedSpan.attributes?.[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n if (spanNameSource) {\n safeSetSpanJSONAttributes(processedSpan, {\n // Purposefully not using a constant defined here like in other attributes:\n // This will be the name for SEMANTIC_ATTRIBUTE_SENTRY_SOURCE in v11\n \"sentry.span.source\": spanNameSource\n });\n }\n return {\n ...streamedSpanJsonToSerializedSpan(processedSpan),\n _segmentSpan: segmentSpan\n };\n}\nfunction applyScopeToSegmentSpan(segmentSpanJSON, scopeData) {\n const contextAttributes = scopeContextsToSpanAttributes(scopeData.contexts);\n safeSetSpanJSONAttributes(segmentSpanJSON, contextAttributes);\n}\nfunction safeSetSpanJSONAttributes(spanJSON, newAttributes) {\n const originalAttributes = spanJSON.attributes ?? (spanJSON.attributes = {});\n Object.entries(newAttributes).forEach(([key, value]) => {\n if (value != null && !(key in originalAttributes)) {\n originalAttributes[key] = value;\n }\n });\n}\nfunction applySdkMetadataToSegmentSpan(segmentSpanJSON, client) {\n const integrationNames = client.getIntegrationNames();\n if (!integrationNames.length) return;\n safeSetSpanJSONAttributes(segmentSpanJSON, {\n [SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS]: integrationNames\n });\n}\nfunction applyCommonSpanAttributes(spanJSON, serializedSegmentSpan, client, scopeData) {\n const sdk = client.getSdkMetadata();\n const { release, environment } = client.getOptions();\n safeSetSpanJSONAttributes(spanJSON, {\n [SEMANTIC_ATTRIBUTE_SENTRY_RELEASE]: release,\n [SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT]: environment || DEFAULT_ENVIRONMENT,\n [SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_NAME]: serializedSegmentSpan.name,\n [SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_ID]: serializedSegmentSpan.span_id,\n [SEMANTIC_ATTRIBUTE_SENTRY_SDK_NAME]: sdk?.sdk?.name,\n [SEMANTIC_ATTRIBUTE_SENTRY_SDK_VERSION]: sdk?.sdk?.version,\n [SEMANTIC_ATTRIBUTE_USER_ID]: scopeData.user?.id,\n [SEMANTIC_ATTRIBUTE_USER_EMAIL]: scopeData.user?.email,\n [SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS]: scopeData.user?.ip_address,\n [SEMANTIC_ATTRIBUTE_USER_USERNAME]: scopeData.user?.username,\n ...scopeData.attributes\n });\n}\nfunction applyBeforeSendSpanCallback(span, beforeSendSpan) {\n const modifedSpan = beforeSendSpan(span);\n if (!modifedSpan) {\n showSpanDropWarning();\n return span;\n }\n return modifedSpan;\n}\n\nexport { applyBeforeSendSpanCallback, captureSpan, safeSetSpanJSONAttributes };\n//# sourceMappingURL=captureSpan.js.map\n", + "import { isThenable } from './is.js';\n\nconst STATE_PENDING = 0;\nconst STATE_RESOLVED = 1;\nconst STATE_REJECTED = 2;\nfunction resolvedSyncPromise(value) {\n return new SyncPromise((resolve) => {\n resolve(value);\n });\n}\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\nclass SyncPromise {\n constructor(executor) {\n this._state = STATE_PENDING;\n this._handlers = [];\n this._runExecutor(executor);\n }\n /** @inheritdoc */\n then(onfulfilled, onrejected) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n (result) => {\n if (!onfulfilled) {\n resolve(result);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n (reason) => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n }\n ]);\n this._executeHandlers();\n });\n }\n /** @inheritdoc */\n catch(onrejected) {\n return this.then((val) => val, onrejected);\n }\n /** @inheritdoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n return this.then(\n (value) => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n (reason) => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n }\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n resolve(val);\n });\n });\n }\n /** Excute the resolve/reject handlers. */\n _executeHandlers() {\n if (this._state === STATE_PENDING) {\n return;\n }\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n cachedHandlers.forEach((handler) => {\n if (handler[0]) {\n return;\n }\n if (this._state === STATE_RESOLVED) {\n handler[1](this._value);\n }\n if (this._state === STATE_REJECTED) {\n handler[2](this._value);\n }\n handler[0] = true;\n });\n }\n /** Run the executor for the SyncPromise. */\n _runExecutor(executor) {\n const setResult = (state, value) => {\n if (this._state !== STATE_PENDING) {\n return;\n }\n if (isThenable(value)) {\n void value.then(resolve, reject);\n return;\n }\n this._state = state;\n this._value = value;\n this._executeHandlers();\n };\n const resolve = (value) => {\n setResult(STATE_RESOLVED, value);\n };\n const reject = (reason) => {\n setResult(STATE_REJECTED, reason);\n };\n try {\n executor(resolve, reject);\n } catch (e) {\n reject(e);\n }\n }\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n", + "import { DEBUG_BUILD } from './debug-build.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isThenable } from './utils/is.js';\nimport { resolvedSyncPromise, rejectedSyncPromise } from './utils/syncpromise.js';\n\nfunction notifyEventProcessors(processors, event, hint, index = 0) {\n try {\n const result = _notifyEventProcessors(event, hint, processors, index);\n return isThenable(result) ? result : resolvedSyncPromise(result);\n } catch (error) {\n return rejectedSyncPromise(error);\n }\n}\nfunction _notifyEventProcessors(event, hint, processors, index) {\n const processor = processors[index];\n if (!event || !processor) {\n return event;\n }\n const result = processor({ ...event }, hint);\n DEBUG_BUILD && result === null && debug.log(`Event processor \"${processor.id || \"?\"}\" dropped event`);\n if (isThenable(result)) {\n return result.then((final) => _notifyEventProcessors(final, hint, processors, index + 1));\n }\n return _notifyEventProcessors(result, hint, processors, index + 1);\n}\n\nexport { notifyEventProcessors };\n//# sourceMappingURL=eventProcessors.js.map\n", + "import { normalizeStackTracePath } from './stacktrace.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nlet parsedStackResults;\nlet lastSentryKeysCount;\nlet lastNativeKeysCount;\nlet cachedFilenameDebugIds;\nfunction getFilenameToDebugIdMap(stackParser) {\n const sentryDebugIdMap = GLOBAL_OBJ._sentryDebugIds;\n const nativeDebugIdMap = GLOBAL_OBJ._debugIds;\n if (!sentryDebugIdMap && !nativeDebugIdMap) {\n return {};\n }\n const sentryDebugIdKeys = sentryDebugIdMap ? Object.keys(sentryDebugIdMap) : [];\n const nativeDebugIdKeys = nativeDebugIdMap ? Object.keys(nativeDebugIdMap) : [];\n if (cachedFilenameDebugIds && sentryDebugIdKeys.length === lastSentryKeysCount && nativeDebugIdKeys.length === lastNativeKeysCount) {\n return cachedFilenameDebugIds;\n }\n lastSentryKeysCount = sentryDebugIdKeys.length;\n lastNativeKeysCount = nativeDebugIdKeys.length;\n cachedFilenameDebugIds = {};\n if (!parsedStackResults) {\n parsedStackResults = {};\n }\n const processDebugIds = (debugIdKeys, debugIdMap) => {\n for (const key of debugIdKeys) {\n const debugId = debugIdMap[key];\n const result = parsedStackResults?.[key];\n if (result && cachedFilenameDebugIds && debugId) {\n cachedFilenameDebugIds[result[0]] = debugId;\n if (parsedStackResults) {\n parsedStackResults[key] = [result[0], debugId];\n }\n } else if (debugId) {\n const parsedStack = stackParser(key);\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n const stackFrame = parsedStack[i];\n const filename = stackFrame?.filename;\n if (filename && cachedFilenameDebugIds && parsedStackResults) {\n cachedFilenameDebugIds[filename] = debugId;\n parsedStackResults[key] = [filename, debugId];\n break;\n }\n }\n }\n }\n };\n if (sentryDebugIdMap) {\n processDebugIds(sentryDebugIdKeys, sentryDebugIdMap);\n }\n if (nativeDebugIdMap) {\n processDebugIds(nativeDebugIdKeys, nativeDebugIdMap);\n }\n return cachedFilenameDebugIds;\n}\nfunction getDebugImagesForResources(stackParser, resource_paths) {\n const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n if (!filenameDebugIdMap) {\n return [];\n }\n const images = [];\n for (const path of resource_paths) {\n const normalizedPath = normalizeStackTracePath(path);\n if (normalizedPath && filenameDebugIdMap[normalizedPath]) {\n images.push({\n type: \"sourcemap\",\n code_file: path,\n debug_id: filenameDebugIdMap[normalizedPath]\n });\n }\n }\n return images;\n}\n\nexport { getDebugImagesForResources, getFilenameToDebugIdMap };\n//# sourceMappingURL=debug-ids.js.map\n", + "import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { notifyEventProcessors } from '../eventProcessors.js';\nimport { Scope } from '../scope.js';\nimport { getFilenameToDebugIdMap } from './debug-ids.js';\nimport { uuid4, addExceptionMechanism } from './misc.js';\nimport { normalize } from './normalize.js';\nimport { getCombinedScopeData, applyScopeDataToEvent } from './scopeData.js';\nimport { truncate } from './string.js';\nimport { resolvedSyncPromise } from './syncpromise.js';\nimport { dateTimestampInSeconds } from './time.js';\n\nfunction prepareEvent(options, event, hint, scope, client, isolationScope) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1e3 } = options;\n const prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds()\n };\n const integrations = hint.integrations || options.integrations.map((i) => i.name);\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(prepared, integrations);\n if (client) {\n client.emit(\"applyFrameMetadata\", event);\n }\n if (event.type === void 0) {\n applyDebugIds(prepared, options.stackParser);\n }\n const finalScope = getFinalScope(scope, hint.captureContext);\n if (hint.mechanism) {\n addExceptionMechanism(prepared, hint.mechanism);\n }\n const clientEventProcessors = client ? client.getEventProcessors() : [];\n const data = getCombinedScopeData(isolationScope, finalScope);\n const attachments = [...hint.attachments || [], ...data.attachments];\n if (attachments.length) {\n hint.attachments = attachments;\n }\n applyScopeDataToEvent(prepared, data);\n const eventProcessors = [\n ...clientEventProcessors,\n // Run scope event processors _after_ all other processors\n ...data.eventProcessors\n ];\n const isInternalException = hint.data && hint.data.__sentry__ === true;\n const result = isInternalException ? resolvedSyncPromise(prepared) : notifyEventProcessors(eventProcessors, prepared, hint);\n return result.then((evt) => {\n if (evt) {\n applyDebugMeta(evt);\n }\n if (typeof normalizeDepth === \"number\" && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\nfunction applyClientOptions(event, options) {\n const { environment, release, dist, maxValueLength } = options;\n event.environment = event.environment || environment || DEFAULT_ENVIRONMENT;\n if (!event.release && release) {\n event.release = release;\n }\n if (!event.dist && dist) {\n event.dist = dist;\n }\n const request = event.request;\n if (request?.url && maxValueLength) {\n request.url = truncate(request.url, maxValueLength);\n }\n if (maxValueLength) {\n event.exception?.values?.forEach((exception) => {\n if (exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n });\n }\n}\nfunction applyDebugIds(event, stackParser) {\n const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n event.exception?.values?.forEach((exception) => {\n exception.stacktrace?.frames?.forEach((frame) => {\n if (frame.filename) {\n frame.debug_id = filenameDebugIdMap[frame.filename];\n }\n });\n });\n}\nfunction applyDebugMeta(event) {\n const filenameDebugIdMap = {};\n event.exception?.values?.forEach((exception) => {\n exception.stacktrace?.frames?.forEach((frame) => {\n if (frame.debug_id) {\n if (frame.abs_path) {\n filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n } else if (frame.filename) {\n filenameDebugIdMap[frame.filename] = frame.debug_id;\n }\n delete frame.debug_id;\n }\n });\n });\n if (Object.keys(filenameDebugIdMap).length === 0) {\n return;\n }\n event.debug_meta = event.debug_meta || {};\n event.debug_meta.images = event.debug_meta.images || [];\n const images = event.debug_meta.images;\n Object.entries(filenameDebugIdMap).forEach(([filename, debug_id]) => {\n images.push({\n type: \"sourcemap\",\n code_file: filename,\n debug_id\n });\n });\n}\nfunction applyIntegrationsMetadata(event, integrationNames) {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...event.sdk.integrations || [], ...integrationNames];\n }\n}\nfunction normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n const normalized = {\n ...event,\n ...event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map((b) => ({\n ...b,\n ...b.data && {\n data: normalize(b.data, depth, maxBreadth)\n }\n }))\n },\n ...event.user && {\n user: normalize(event.user, depth, maxBreadth)\n },\n ...event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth)\n },\n ...event.extra && {\n extra: normalize(event.extra, depth, maxBreadth)\n }\n };\n if (event.contexts?.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n if (event.spans) {\n normalized.spans = event.spans.map((span) => {\n return {\n ...span,\n ...span.data && {\n data: normalize(span.data, depth, maxBreadth)\n }\n };\n });\n }\n if (event.contexts?.flags && normalized.contexts) {\n normalized.contexts.flags = normalize(event.contexts.flags, 3, maxBreadth);\n }\n return normalized;\n}\nfunction getFinalScope(scope, captureContext) {\n if (!captureContext) {\n return scope;\n }\n const finalScope = scope ? scope.clone() : new Scope();\n finalScope.update(captureContext);\n return finalScope;\n}\nfunction parseEventHintOrCaptureContext(hint) {\n if (!hint) {\n return void 0;\n }\n if (hintIsScopeOrFunction(hint)) {\n return { captureContext: hint };\n }\n if (hintIsScopeContext(hint)) {\n return {\n captureContext: hint\n };\n }\n return hint;\n}\nfunction hintIsScopeOrFunction(hint) {\n return hint instanceof Scope || typeof hint === \"function\";\n}\nconst captureContextKeys = [\n \"user\",\n \"level\",\n \"extra\",\n \"contexts\",\n \"tags\",\n \"fingerprint\",\n \"propagationContext\"\n];\nfunction hintIsScopeContext(hint) {\n return Object.keys(hint).some((key) => captureContextKeys.includes(key));\n}\n\nexport { applyClientOptions, applyDebugIds, applyDebugMeta, parseEventHintOrCaptureContext, prepareEvent };\n//# sourceMappingURL=prepareEvent.js.map\n", + "import { getIsolationScope, getCurrentScope, getClient, withIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\nimport { startNewTrace } from './tracing/trace.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isThenable } from './utils/is.js';\nimport { uuid4 } from './utils/misc.js';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent.js';\nimport { getCombinedScopeData } from './utils/scopeData.js';\nimport { timestampInSeconds } from './utils/time.js';\nimport { GLOBAL_OBJ } from './utils/worldwide.js';\n\nfunction captureException(exception, hint) {\n return getCurrentScope().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\nfunction captureMessage(message, captureContext) {\n const level = typeof captureContext === \"string\" ? captureContext : void 0;\n const hint = typeof captureContext !== \"string\" ? { captureContext } : void 0;\n return getCurrentScope().captureMessage(message, level, hint);\n}\nfunction captureEvent(event, hint) {\n return getCurrentScope().captureEvent(event, hint);\n}\nfunction setContext(name, context) {\n getIsolationScope().setContext(name, context);\n}\nfunction setExtras(extras) {\n getIsolationScope().setExtras(extras);\n}\nfunction setExtra(key, extra) {\n getIsolationScope().setExtra(key, extra);\n}\nfunction setTags(tags) {\n getIsolationScope().setTags(tags);\n}\nfunction setTag(key, value) {\n getIsolationScope().setTag(key, value);\n}\nfunction setAttributes(attributes) {\n getIsolationScope().setAttributes(attributes);\n}\nfunction setAttribute(key, value) {\n getIsolationScope().setAttribute(key, value);\n}\nfunction setUser(user) {\n getIsolationScope().setUser(user);\n}\nfunction setConversationId(conversationId) {\n getIsolationScope().setConversationId(conversationId);\n}\nfunction lastEventId() {\n return getIsolationScope().lastEventId();\n}\nfunction captureCheckIn(checkIn, upsertMonitorConfig) {\n const scope = getCurrentScope();\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && debug.warn(\"Cannot capture check-in. No client defined.\");\n } else if (!client.captureCheckIn) {\n DEBUG_BUILD && debug.warn(\"Cannot capture check-in. Client does not support sending check-ins.\");\n } else {\n return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n }\n return uuid4();\n}\nfunction withMonitor(monitorSlug, callback, upsertMonitorConfig) {\n function runCallback() {\n const checkInId = captureCheckIn({ monitorSlug, status: \"in_progress\" }, upsertMonitorConfig);\n const now = timestampInSeconds();\n function finishCheckIn(status) {\n captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n }\n let maybePromiseResult;\n try {\n maybePromiseResult = callback();\n } catch (e) {\n finishCheckIn(\"error\");\n throw e;\n }\n if (isThenable(maybePromiseResult)) {\n return maybePromiseResult.then(\n (r) => {\n finishCheckIn(\"ok\");\n return r;\n },\n (e) => {\n finishCheckIn(\"error\");\n throw e;\n }\n );\n }\n finishCheckIn(\"ok\");\n return maybePromiseResult;\n }\n return withIsolationScope(() => upsertMonitorConfig?.isolateTrace ? startNewTrace(runCallback) : runCallback());\n}\nasync function flush(timeout) {\n const client = getClient();\n if (client) {\n return client.flush(timeout);\n }\n DEBUG_BUILD && debug.warn(\"Cannot flush events. No client defined.\");\n return Promise.resolve(false);\n}\nasync function close(timeout) {\n const client = getClient();\n if (client) {\n return client.close(timeout);\n }\n DEBUG_BUILD && debug.warn(\"Cannot flush events and disable SDK. No client defined.\");\n return Promise.resolve(false);\n}\nfunction isInitialized() {\n return !!getClient();\n}\nfunction isEnabled() {\n const client = getClient();\n return client?.getOptions().enabled !== false && !!client?.getTransport();\n}\nfunction addEventProcessor(callback) {\n getIsolationScope().addEventProcessor(callback);\n}\nfunction startSession(context) {\n const isolationScope = getIsolationScope();\n const { user } = getCombinedScopeData(isolationScope, getCurrentScope());\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n const session = makeSession({\n user,\n ...userAgent && { userAgent },\n ...context\n });\n const currentSession = isolationScope.getSession();\n if (currentSession?.status === \"ok\") {\n updateSession(currentSession, { status: \"exited\" });\n }\n endSession();\n isolationScope.setSession(session);\n return session;\n}\nfunction endSession() {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session) {\n closeSession(session);\n }\n _sendSessionUpdate();\n isolationScope.setSession();\n}\nfunction _sendSessionUpdate() {\n const isolationScope = getIsolationScope();\n const client = getClient();\n const session = isolationScope.getSession();\n if (session && client) {\n client.captureSession(session);\n }\n}\nfunction captureSession(end = false) {\n if (end) {\n endSession();\n return;\n }\n _sendSessionUpdate();\n}\n\nexport { addEventProcessor, captureCheckIn, captureEvent, captureException, captureMessage, captureSession, close, endSession, flush, isEnabled, isInitialized, lastEventId, setAttribute, setAttributes, setContext, setConversationId, setExtra, setExtras, setTag, setTags, setUser, startSession, withMonitor };\n//# sourceMappingURL=exports.js.map\n", + "function safeUnref(timer) {\n if (typeof timer === \"object\" && typeof timer.unref === \"function\") {\n timer.unref();\n }\n return timer;\n}\n\nexport { safeUnref };\n//# sourceMappingURL=timer.js.map\n", + "import { getMainCarrier } from '../carrier.js';\nimport { _setSpanForScope } from '../utils/spanOnScope.js';\nimport { safeUnref } from '../utils/timer.js';\nimport { getAsyncContextStrategy } from './index.js';\n\nfunction waitForTracingChannelBinding(callback, retries = 1) {\n const binding = getAsyncContextStrategy(getMainCarrier()).getTracingChannelBinding?.();\n if (binding) {\n callback();\n return;\n }\n if (!retries) {\n return;\n }\n safeUnref(\n setTimeout(() => {\n waitForTracingChannelBinding(callback, retries - 1);\n }, 1)\n );\n}\nfunction _INTERNAL_createTracingChannelBinding(asyncLocalStorage, getScopes) {\n return {\n asyncLocalStorage,\n getStoreWithActiveSpan: (span) => {\n const { scope, isolationScope } = getScopes();\n const activeScope = scope.clone();\n _setSpanForScope(activeScope, span);\n return { scope: activeScope, isolationScope };\n }\n };\n}\n\nexport { _INTERNAL_createTracingChannelBinding, waitForTracingChannelBinding };\n//# sourceMappingURL=tracing-channel-binding.js.map\n", + "import { resolvedSyncPromise, rejectedSyncPromise } from './syncpromise.js';\nimport { safeUnref } from './timer.js';\n\nconst SENTRY_BUFFER_FULL_ERROR = /* @__PURE__ */ Symbol.for(\"SentryBufferFullError\");\nfunction makePromiseBuffer(limit = 100) {\n const buffer = /* @__PURE__ */ new Set();\n function isReady() {\n return buffer.size < limit;\n }\n function remove(task) {\n buffer.delete(task);\n }\n function add(taskProducer) {\n if (!isReady()) {\n return rejectedSyncPromise(SENTRY_BUFFER_FULL_ERROR);\n }\n const task = taskProducer();\n buffer.add(task);\n void task.then(\n () => remove(task),\n () => remove(task)\n );\n return task;\n }\n function drain(timeout) {\n if (!buffer.size) {\n return resolvedSyncPromise(true);\n }\n const drainPromise = Promise.allSettled(Array.from(buffer)).then(() => true);\n if (!timeout) {\n return drainPromise;\n }\n const promises = [\n drainPromise,\n new Promise((resolve) => safeUnref(setTimeout(() => resolve(false), timeout)))\n ];\n return Promise.race(promises);\n }\n return {\n get $() {\n return Array.from(buffer);\n },\n add,\n drain\n };\n}\n\nexport { SENTRY_BUFFER_FULL_ERROR, makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n", + "import { safeDateNow } from './randomSafeContext.js';\n\nconst DEFAULT_RETRY_AFTER = 60 * 1e3;\nfunction parseRetryAfterHeader(header, now = safeDateNow()) {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1e3;\n }\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n return DEFAULT_RETRY_AFTER;\n}\nfunction disabledUntil(limits, dataCategory) {\n return limits[dataCategory] || limits.all || 0;\n}\nfunction isRateLimited(limits, dataCategory, now = safeDateNow()) {\n return disabledUntil(limits, dataCategory) > now;\n}\nfunction updateRateLimits(limits, { statusCode, headers }, now = safeDateNow()) {\n const updatedRateLimits = {\n ...limits\n };\n const rateLimitHeader = headers?.[\"x-sentry-rate-limits\"];\n const retryAfterHeader = headers?.[\"retry-after\"];\n if (rateLimitHeader) {\n for (const limit of rateLimitHeader.trim().split(\",\")) {\n const [retryAfter, categories, , , namespaces] = limit.split(\":\", 5);\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1e3;\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(\";\")) {\n if (category === \"metric_bucket\") {\n if (!namespaces || namespaces.split(\";\").includes(\"custom\")) {\n updatedRateLimits[category] = now + delay;\n }\n } else {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1e3;\n }\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { forEachEnvelopeItem, envelopeItemTypeToDataCategory, createEnvelope, serializeEnvelope, envelopeContainsItemType } from '../utils/envelope.js';\nimport { makePromiseBuffer, SENTRY_BUFFER_FULL_ERROR } from '../utils/promisebuffer.js';\nimport { isRateLimited, updateRateLimits } from '../utils/ratelimit.js';\n\nconst DEFAULT_TRANSPORT_BUFFER_SIZE = 64;\nfunction createTransport(options, makeRequest, buffer = makePromiseBuffer(\n options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE\n)) {\n let rateLimits = {};\n const flush = (timeout) => buffer.drain(timeout);\n function send(envelope) {\n const filteredEnvelopeItems = [];\n forEachEnvelopeItem(envelope, (item, type) => {\n const dataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, dataCategory)) {\n options.recordDroppedEvent(\"ratelimit_backoff\", dataCategory);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n if (filteredEnvelopeItems.length === 0) {\n return Promise.resolve({});\n }\n const filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems);\n const recordEnvelopeLoss = (reason) => {\n if (envelopeContainsItemType(filteredEnvelope, [\"client_report\"])) {\n DEBUG_BUILD && debug.warn(`Dropping client report. Will not send outcomes (reason: ${reason}).`);\n return;\n }\n forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n });\n };\n const requestTask = () => makeRequest({ body: serializeEnvelope(filteredEnvelope) }).then(\n (response) => {\n if (response.statusCode === 413) {\n DEBUG_BUILD && debug.error(\n \"Sentry responded with status code 413. Envelope was discarded due to exceeding size limits.\"\n );\n recordEnvelopeLoss(\"send_error\");\n return response;\n }\n if (DEBUG_BUILD && response.statusCode !== void 0 && (response.statusCode < 200 || response.statusCode >= 300)) {\n debug.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n rateLimits = updateRateLimits(rateLimits, response);\n return response;\n },\n (error) => {\n recordEnvelopeLoss(\"network_error\");\n DEBUG_BUILD && debug.error(\"Encountered error running transport request:\", error);\n throw error;\n }\n );\n return buffer.add(requestTask).then(\n (result) => result,\n (error) => {\n if (error === SENTRY_BUFFER_FULL_ERROR) {\n DEBUG_BUILD && debug.error(\"Skipped sending event because buffer is full.\");\n recordEnvelopeLoss(\"queue_overflow\");\n return Promise.resolve({});\n } else {\n throw error;\n }\n }\n );\n }\n return {\n send,\n flush\n };\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n", + "import { getClient } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { debug } from './utils/debug-logger.js';\n\nconst installedIntegrations = [];\nfunction filterDuplicates(integrations) {\n const integrationsByName = {};\n integrations.forEach((currentInstance) => {\n const { name } = currentInstance;\n const existingInstance = integrationsByName[name];\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n integrationsByName[name] = currentInstance;\n });\n return Object.values(integrationsByName);\n}\nfunction getIntegrationsToSetup(options) {\n const defaultIntegrations = options.defaultIntegrations || [];\n const userIntegrations = options.integrations;\n defaultIntegrations.forEach((integration) => {\n integration.isDefaultInstance = true;\n });\n let integrations;\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === \"function\") {\n const resolvedUserIntegrations = userIntegrations(defaultIntegrations);\n integrations = Array.isArray(resolvedUserIntegrations) ? resolvedUserIntegrations : [resolvedUserIntegrations];\n } else {\n integrations = defaultIntegrations;\n }\n return filterDuplicates(integrations);\n}\nfunction setupIntegrations(client, integrations) {\n const integrationIndex = {};\n integrations.forEach((integration) => {\n if (integration?.beforeSetup) {\n integration.beforeSetup(client);\n }\n });\n integrations.forEach((integration) => {\n if (integration) {\n setupIntegration(client, integration, integrationIndex);\n }\n });\n return integrationIndex;\n}\nfunction afterSetupIntegrations(client, integrations) {\n for (const integration of integrations) {\n if (integration?.afterAllSetup) {\n integration.afterAllSetup(client);\n }\n }\n}\nfunction setupIntegration(client, integration, integrationIndex) {\n if (integrationIndex[integration.name]) {\n DEBUG_BUILD && debug.log(`Integration skipped because it was already installed: ${integration.name}`);\n return;\n }\n integrationIndex[integration.name] = integration;\n if (!installedIntegrations.includes(integration.name) && typeof integration.setupOnce === \"function\") {\n integration.setupOnce();\n installedIntegrations.push(integration.name);\n }\n if (integration.setup && typeof integration.setup === \"function\") {\n integration.setup(client);\n }\n if (typeof integration.preprocessEvent === \"function\") {\n const callback = integration.preprocessEvent.bind(integration);\n client.on(\"preprocessEvent\", (event, hint) => callback(event, hint, client));\n }\n if (typeof integration.processEvent === \"function\") {\n const callback = integration.processEvent.bind(integration);\n const processor = Object.assign((event, hint) => callback(event, hint, client), {\n id: integration.name\n });\n client.addEventProcessor(processor);\n }\n [\"processSpan\", \"processSegmentSpan\"].forEach((hook) => {\n const callback = integration[hook];\n if (typeof callback === \"function\") {\n client.on(hook, (span) => callback.call(integration, span, client));\n }\n });\n DEBUG_BUILD && debug.log(`Integration installed: ${integration.name}`);\n}\nfunction addIntegration(integration) {\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && debug.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n return;\n }\n client.addIntegration(integration);\n}\nfunction defineIntegration(fn) {\n return fn;\n}\nfunction extendIntegration(integration, extendedIntegration) {\n const wrappedIntegration = {\n ...integration,\n ...extendedIntegration\n };\n for (const key in extendedIntegration) {\n const baseValue = integration[key];\n const extendedValue = extendedIntegration[key];\n if (typeof baseValue === \"function\" && typeof extendedValue === \"function\") {\n const wrappedFunction = new Proxy(baseValue, {\n apply: (target, thisArg, args) => {\n Reflect.apply(target, thisArg, args);\n return Reflect.apply(extendedValue, thisArg, args);\n }\n });\n wrappedIntegration[key] = wrappedFunction;\n }\n }\n return wrappedIntegration;\n}\n\nexport { addIntegration, afterSetupIntegrations, defineIntegration, extendIntegration, getIntegrationsToSetup, installedIntegrations, setupIntegration, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n", + "import { DEBUG_BUILD } from '../../debug-build.js';\nimport { debug } from '../debug-logger.js';\n\nconst SKIPPED_AI_PROVIDERS = /* @__PURE__ */ new Set();\nfunction _INTERNAL_skipAiProviderWrapping(modules) {\n modules.forEach((module) => {\n SKIPPED_AI_PROVIDERS.add(module);\n DEBUG_BUILD && debug.log(`AI provider \"${module}\" wrapping will be skipped`);\n });\n}\nfunction _INTERNAL_shouldSkipAiProviderWrapping(module) {\n return SKIPPED_AI_PROVIDERS.has(module);\n}\nfunction _INTERNAL_clearAiProviderSkips() {\n SKIPPED_AI_PROVIDERS.clear();\n DEBUG_BUILD && debug.log(\"Cleared AI provider skip registrations\");\n}\n\nexport { _INTERNAL_clearAiProviderSkips, _INTERNAL_shouldSkipAiProviderWrapping, _INTERNAL_skipAiProviderWrapping };\n//# sourceMappingURL=providerSkip.js.map\n", + "const FALSY_ENV_VALUES = /* @__PURE__ */ new Set([\"false\", \"f\", \"n\", \"no\", \"off\", \"0\"]);\nconst TRUTHY_ENV_VALUES = /* @__PURE__ */ new Set([\"true\", \"t\", \"y\", \"yes\", \"on\", \"1\"]);\nfunction envToBool(value, options) {\n const normalized = String(value).toLowerCase();\n if (FALSY_ENV_VALUES.has(normalized)) {\n return false;\n }\n if (TRUTHY_ENV_VALUES.has(normalized)) {\n return true;\n }\n return options?.strict ? null : Boolean(value);\n}\n\nexport { FALSY_ENV_VALUES, TRUTHY_ENV_VALUES, envToBool };\n//# sourceMappingURL=envToBool.js.map\n", + "import { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_URL_FULL, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes.js';\n\nconst DEFAULT_BASE_URL = \"thismessage:/\";\nfunction isURLObjectRelative(url) {\n return \"isRelative\" in url;\n}\nfunction parseStringToURLObject(url, urlBase) {\n const isRelative = url.indexOf(\"://\") <= 0 && url.indexOf(\"//\") !== 0;\n const base = urlBase ?? (isRelative ? DEFAULT_BASE_URL : void 0);\n try {\n if (\"canParse\" in URL && !URL.canParse(url, base)) {\n return void 0;\n }\n const fullUrlObject = new URL(url, base);\n if (isRelative) {\n return {\n isRelative,\n pathname: fullUrlObject.pathname,\n search: fullUrlObject.search,\n hash: fullUrlObject.hash\n };\n }\n return fullUrlObject;\n } catch {\n }\n return void 0;\n}\nfunction getSanitizedUrlStringFromUrlObject(url) {\n if (isURLObjectRelative(url)) {\n return url.pathname;\n }\n const newUrl = new URL(url);\n newUrl.search = \"\";\n newUrl.hash = \"\";\n if ([\"80\", \"443\"].includes(newUrl.port)) {\n newUrl.port = \"\";\n }\n if (newUrl.password) {\n newUrl.password = \"%filtered%\";\n }\n if (newUrl.username) {\n newUrl.username = \"%filtered%\";\n }\n return newUrl.toString();\n}\nfunction getHttpSpanNameFromUrlObject(urlObject, kind, request, routeName) {\n const method = request?.method?.toUpperCase() ?? \"GET\";\n const route = routeName ? routeName : urlObject ? kind === \"client\" ? getSanitizedUrlStringFromUrlObject(urlObject) : urlObject.pathname : \"/\";\n return `${method} ${route}`;\n}\nfunction getHttpSpanDetailsFromUrlObject(urlObject, kind, spanOrigin, request, routeName) {\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin,\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: \"url\"\n };\n if (routeName) {\n attributes[kind === \"server\" ? \"http.route\" : \"url.template\"] = routeName;\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = \"route\";\n }\n if (request?.method) {\n attributes[SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD] = request.method.toUpperCase();\n }\n if (urlObject) {\n if (urlObject.search) {\n attributes[\"url.query\"] = urlObject.search;\n }\n if (urlObject.hash) {\n attributes[\"url.fragment\"] = urlObject.hash;\n }\n if (urlObject.pathname) {\n attributes[\"url.path\"] = urlObject.pathname;\n if (urlObject.pathname === \"/\") {\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = \"route\";\n }\n }\n if (!isURLObjectRelative(urlObject)) {\n attributes[SEMANTIC_ATTRIBUTE_URL_FULL] = urlObject.href;\n if (urlObject.port) {\n attributes[\"url.port\"] = urlObject.port;\n }\n if (urlObject.protocol) {\n attributes[\"url.scheme\"] = urlObject.protocol;\n }\n if (urlObject.hostname) {\n attributes[kind === \"server\" ? \"server.address\" : \"url.domain\"] = urlObject.hostname;\n }\n }\n }\n return [getHttpSpanNameFromUrlObject(urlObject, kind, request, routeName), attributes];\n}\nfunction parseUrl(url) {\n if (!url) {\n return {};\n }\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) {\n return {};\n }\n const query = match[6] || \"\";\n const fragment = match[8] || \"\";\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n search: query,\n hash: fragment,\n relative: match[5] + query + fragment\n // everything minus origin\n };\n}\nfunction stripUrlQueryAndFragment(urlPath) {\n return urlPath.split(/[?#]/, 1)[0];\n}\nfunction getSanitizedUrlString(url) {\n const { protocol, host, path } = url;\n const filteredHost = host?.replace(/^.*@/, \"[filtered]:[filtered]@\").replace(/(:80)$/, \"\").replace(/(:443)$/, \"\") || \"\";\n return `${protocol ? `${protocol}://` : \"\"}${filteredHost}${path}`;\n}\nfunction stripDataUrlContent(url, includeDataPrefix = true) {\n if (url.startsWith(\"data:\")) {\n const match = url.match(/^data:([^;,]+)/);\n const mimeType = match ? match[1] : \"text/plain\";\n const isBase64 = url.includes(\";base64,\");\n const dataStart = url.indexOf(\",\");\n let dataPrefix = \"\";\n if (includeDataPrefix && dataStart !== -1) {\n const data = url.slice(dataStart + 1);\n dataPrefix = data.length > 10 ? `${data.slice(0, 10)}... [truncated]` : data;\n }\n return `data:${mimeType}${isBase64 ? \",base64\" : \"\"}${dataPrefix ? `,${dataPrefix}` : \"\"}`;\n }\n return url;\n}\n\nexport { getHttpSpanDetailsFromUrlObject, getSanitizedUrlString, getSanitizedUrlStringFromUrlObject, isURLObjectRelative, parseStringToURLObject, parseUrl, stripDataUrlContent, stripUrlQueryAndFragment };\n//# sourceMappingURL=url.js.map\n", + "import { SDK_VERSION } from './version.js';\n\nfunction applySdkMetadata(options, name, names = [name], source = \"npm\") {\n const sdk = (options._metadata = options._metadata || {}).sdk = options._metadata.sdk || {};\n if (!sdk.name) {\n sdk.name = `sentry.javascript.${name}`;\n sdk.packages = names.map((name2) => ({\n name: `${source}:@sentry/${name2}`,\n version: SDK_VERSION\n }));\n sdk.version = SDK_VERSION;\n }\n}\n\nexport { applySdkMetadata };\n//# sourceMappingURL=sdkMetadata.js.map\n", + "import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getClient, getCurrentScope, hasExternalPropagationContext } from '../currentScopes.js';\nimport { isEnabled } from '../exports.js';\nimport { debug } from './debug-logger.js';\nimport { getActiveSpan, spanToTraceHeader, spanToTraceparentHeader } from './spanUtils.js';\nimport { hasSpansEnabled } from './hasSpansEnabled.js';\nimport { spanIsNonRecordingSpan } from '../tracing/sentryNonRecordingSpan.js';\nimport { getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromScope } from '../tracing/dynamicSamplingContext.js';\nimport { dynamicSamplingContextToSentryBaggageHeader } from './baggage.js';\nimport { TRACEPARENT_REGEXP, generateSentryTraceHeader, generateTraceparentHeader } from './tracing.js';\n\nfunction getTraceData(options = {}) {\n const client = options.client || getClient();\n if (!isEnabled() || !client) {\n return {};\n }\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getTraceData) {\n return acs.getTraceData(options);\n }\n const scope = options.scope || getCurrentScope();\n const span = options.span || getActiveSpan();\n const isTwpPlaceholder = spanIsNonRecordingSpan(span) && !hasSpansEnabled(client.getOptions());\n if (!span && hasExternalPropagationContext()) {\n return {};\n }\n const sentryTrace = span && !isTwpPlaceholder ? spanToTraceHeader(span) : scopeToTraceHeader(scope);\n const dsc = span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromScope(client, scope);\n const baggage = dynamicSamplingContextToSentryBaggageHeader(dsc);\n const isValidSentryTraceHeader = TRACEPARENT_REGEXP.test(sentryTrace);\n if (!isValidSentryTraceHeader) {\n debug.warn(\"Invalid sentry-trace data. Cannot generate trace data\");\n return {};\n }\n const traceData = {\n \"sentry-trace\": sentryTrace,\n baggage\n };\n if (options.propagateTraceparent) {\n traceData.traceparent = span && !isTwpPlaceholder ? spanToTraceparentHeader(span) : scopeToTraceparentHeader(scope);\n }\n return traceData;\n}\nfunction scopeToTraceHeader(scope) {\n const { traceId, sampled, propagationSpanId } = scope.getPropagationContext();\n return generateSentryTraceHeader(traceId, propagationSpanId, sampled);\n}\nfunction scopeToTraceparentHeader(scope) {\n const { traceId, sampled, propagationSpanId } = scope.getPropagationContext();\n return generateTraceparentHeader(traceId, propagationSpanId, sampled);\n}\n\nexport { getTraceData };\n//# sourceMappingURL=traceData.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { stringMatchesSomePattern } from './string.js';\n\nconst NOT_PROPAGATED_MESSAGE = \"[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:\";\nfunction shouldPropagateTraceForUrl(url, tracePropagationTargets, decisionMap) {\n if (typeof url !== \"string\" || !tracePropagationTargets) {\n return true;\n }\n const cachedDecision = decisionMap?.get(url);\n if (cachedDecision !== void 0) {\n DEBUG_BUILD && !cachedDecision && debug.log(NOT_PROPAGATED_MESSAGE, url);\n return cachedDecision;\n }\n const decision = stringMatchesSomePattern(url, tracePropagationTargets);\n decisionMap?.set(url, decision);\n DEBUG_BUILD && !decision && debug.log(NOT_PROPAGATED_MESSAGE, url);\n return decision;\n}\n\nexport { shouldPropagateTraceForUrl };\n//# sourceMappingURL=tracePropagationTargets.js.map\n", + "function debounce(func, wait, options) {\n let callbackReturnValue;\n let timerId;\n let maxTimerId;\n const maxWait = options?.maxWait ? Math.max(options.maxWait, wait) : 0;\n const setTimeoutImpl = options?.setTimeoutImpl || setTimeout;\n function invokeFunc() {\n cancelTimers();\n callbackReturnValue = func();\n return callbackReturnValue;\n }\n function cancelTimers() {\n timerId !== void 0 && clearTimeout(timerId);\n maxTimerId !== void 0 && clearTimeout(maxTimerId);\n timerId = maxTimerId = void 0;\n }\n function flush() {\n if (timerId !== void 0 || maxTimerId !== void 0) {\n return invokeFunc();\n }\n return callbackReturnValue;\n }\n function debounced() {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeoutImpl(invokeFunc, wait);\n if (maxWait && maxTimerId === void 0) {\n maxTimerId = setTimeoutImpl(invokeFunc, maxWait);\n }\n return callbackReturnValue;\n }\n debounced.cancel = cancelTimers;\n debounced.flush = flush;\n return debounced;\n}\n\nexport { debounce };\n//# sourceMappingURL=debounce.js.map\n", + "const FILTERED_VALUE = \"[Filtered]\";\nconst PII_HEADER_SNIPPETS = [\"forwarded\", \"-ip\", \"remote-\", \"via\", \"-user\"];\nconst SENSITIVE_KEY_SNIPPETS = [\n \"auth\",\n \"token\",\n \"secret\",\n \"session\",\n // for the user_session cookie\n \"password\",\n \"passwd\",\n \"pwd\",\n \"key\",\n \"jwt\",\n \"bearer\",\n \"sso\",\n \"saml\",\n \"csrf\",\n \"xsrf\",\n \"credentials\",\n \"sid\",\n \"identity\",\n // Always treat cookie headers as sensitive in case individual key-value cookie pairs cannot properly be extracted\n \"set-cookie\",\n \"cookie\"\n];\nconst SENSITIVE_COOKIE_NAME_SNIPPETS = [\n // Express / Connect default session cookie\n \".sid\",\n // Opaque session ids (PHPSESSID, ASPSESSIONID*, BIGipServer*, *sessid*, …)\n \"sessid\",\n // Laravel etc. \"remember me\" tokens\n \"remember\",\n // OIDC / OAuth auxiliary (`oauth*` covered by header snippet `auth`)\n \"oidc\",\n \"pkce\",\n \"nonce\",\n // RFC 6265bis high-security cookie name prefixes\n \"__secure-\",\n \"__host-\",\n // Load balancer / CDN sticky-session cookies (opaque routing tokens)\n \"awsalb\",\n \"awselb\",\n \"akamai\",\n // BaaS / IdP session cookies (names often omit \"session\")\n \"__stripe\",\n \"cognito\",\n \"firebase\",\n \"supabase\",\n \"sb-\",\n // Step-up / MFA cookies\n \"mfa\",\n \"2fa\"\n];\n\nexport { FILTERED_VALUE, PII_HEADER_SNIPPETS, SENSITIVE_COOKIE_NAME_SNIPPETS, SENSITIVE_KEY_SNIPPETS };\n//# sourceMappingURL=filtering-snippets.js.map\n", + "import { PII_HEADER_SNIPPETS } from './filtering-snippets.js';\n\nfunction defaultPiiToCollectionOptions(sendDefaultPii) {\n return sendDefaultPii === true ? {\n userInfo: true,\n cookies: true,\n httpHeaders: { request: true, response: true },\n httpBodies: [\"incomingRequest\", \"outgoingRequest\", \"incomingResponse\", \"outgoingResponse\"],\n queryParams: true,\n genAI: { inputs: true, outputs: true },\n stackFrameVariables: true,\n frameContextLines: 7\n // default should be 5, but ContextLines integration uses 7\n } : {\n userInfo: false,\n cookies: { deny: PII_HEADER_SNIPPETS },\n httpHeaders: { request: { deny: PII_HEADER_SNIPPETS }, response: { deny: PII_HEADER_SNIPPETS } },\n httpBodies: [],\n queryParams: { deny: PII_HEADER_SNIPPETS },\n genAI: { inputs: false, outputs: false },\n stackFrameVariables: true,\n frameContextLines: 7\n // default should be 5, but ContextLines integration uses 7\n };\n}\n\nexport { defaultPiiToCollectionOptions };\n//# sourceMappingURL=defaultPiiToCollectionOptions.js.map\n", + "import { SENSITIVE_KEY_SNIPPETS, FILTERED_VALUE } from './filtering-snippets.js';\n\nfunction isSensitiveKey(lower, denySnippets) {\n return denySnippets.some((snippet) => lower.includes(snippet));\n}\nfunction filterKeyValueData(data, behavior, additionalDenyTerms) {\n if (behavior === false) {\n return {};\n }\n const denySnippets = additionalDenyTerms != null ? [...SENSITIVE_KEY_SNIPPETS, ...additionalDenyTerms] : SENSITIVE_KEY_SNIPPETS;\n const result = {};\n if (behavior === true) {\n for (const key of Object.keys(data)) {\n result[key] = isSensitiveKey(key.toLowerCase(), denySnippets) ? FILTERED_VALUE : data[key];\n }\n return result;\n }\n if (\"deny\" in behavior) {\n const lowerTerms2 = behavior.deny.map((t) => t.toLowerCase());\n for (const key of Object.keys(data)) {\n const lower = key.toLowerCase();\n const isDenied = isSensitiveKey(lower, denySnippets) || lowerTerms2.some((term) => lower.includes(term));\n result[key] = isDenied ? FILTERED_VALUE : data[key];\n }\n return result;\n }\n const lowerTerms = behavior.allow.map((t) => t.toLowerCase());\n for (const key of Object.keys(data)) {\n const lower = key.toLowerCase();\n if (isSensitiveKey(lower, denySnippets)) {\n result[key] = FILTERED_VALUE;\n } else {\n const isAllowed = lowerTerms.some((term) => lower.includes(term));\n result[key] = isAllowed ? data[key] : FILTERED_VALUE;\n }\n }\n return result;\n}\n\nexport { filterKeyValueData };\n//# sourceMappingURL=filterKeyValueData.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { defaultPiiToCollectionOptions } from './data-collection/defaultPiiToCollectionOptions.js';\nimport { SENSITIVE_COOKIE_NAME_SNIPPETS, FILTERED_VALUE } from './data-collection/filtering-snippets.js';\nimport { filterKeyValueData } from './data-collection/filterKeyValueData.js';\nimport { safeUnref } from './timer.js';\n\nconst MAX_BODY_BYTE_LENGTH = 1024 * 1024;\nconst TEXT_CONTENT_TYPES = [\n \"text/\",\n \"application/json\",\n \"application/x-www-form-urlencoded\",\n \"application/xml\",\n \"application/graphql\"\n];\nfunction getMaxBodyByteLength(maxRequestBodySize) {\n if (maxRequestBodySize === \"small\") return 1e3;\n if (maxRequestBodySize === \"medium\") return 1e4;\n return MAX_BODY_BYTE_LENGTH;\n}\nfunction winterCGHeadersToDict(winterCGHeaders) {\n const headers = {};\n try {\n winterCGHeaders.forEach((value, key) => {\n if (typeof value === \"string\") {\n headers[key] = value;\n }\n });\n } catch {\n }\n return headers;\n}\nfunction headersToDict(reqHeaders) {\n const headers = /* @__PURE__ */ Object.create(null);\n try {\n Object.entries(reqHeaders).forEach(([key, value]) => {\n if (typeof value === \"string\") {\n headers[key] = value;\n } else if (typeof value === \"number\") {\n headers[key] = String(value);\n }\n });\n } catch {\n }\n return headers;\n}\nfunction winterCGRequestToRequestData(req) {\n const headers = winterCGHeadersToDict(req.headers);\n return {\n method: req.method,\n url: req.url,\n query_string: extractQueryParamsFromUrl(req.url),\n headers\n // TODO: Can we extract body data from the request?\n };\n}\nfunction isTextualContentType(contentType) {\n if (!contentType) {\n return false;\n }\n const lowerContentType = contentType.toLowerCase();\n return TEXT_CONTENT_TYPES.some((type) => lowerContentType.includes(type));\n}\nasync function captureBodyFromWinterCGRequest(request, isolationScope, maxRequestBodySize) {\n try {\n const contentType = request.headers.get(\"content-type\");\n if (!isTextualContentType(contentType)) {\n DEBUG_BUILD && debug.log(\"Skipping body capture for non-textual content type:\", contentType);\n return;\n }\n if (!request.body) {\n return;\n }\n const contentLength = request.headers.get(\"content-length\");\n const maxBodySize = getMaxBodyByteLength(maxRequestBodySize);\n if (contentLength) {\n const length = parseInt(contentLength, 10);\n if (!isNaN(length) && length > MAX_BODY_BYTE_LENGTH) {\n DEBUG_BUILD && debug.log(\"Skipping body capture: body too large\", length);\n return;\n }\n }\n const clonedRequest = request.clone();\n const bodyPromise = clonedRequest.text();\n const timeoutPromise = new Promise((resolve) => {\n safeUnref(setTimeout(() => resolve(null), 2e3));\n });\n const body = await Promise.race([bodyPromise, timeoutPromise]);\n if (body === null) {\n DEBUG_BUILD && debug.log(\"Timeout reading request body\");\n return;\n }\n if (!body) {\n return;\n }\n const encoder = new TextEncoder();\n const bytes = encoder.encode(body);\n const bodyByteLength = bytes.length;\n let truncatedBody;\n if (bodyByteLength > maxBodySize) {\n const decoder = new TextDecoder();\n truncatedBody = `${decoder.decode(bytes.slice(0, maxBodySize - 3))}...`;\n } else {\n truncatedBody = body;\n }\n isolationScope.setSDKProcessingMetadata({ normalizedRequest: { data: truncatedBody } });\n DEBUG_BUILD && debug.log(\"Captured request body:\", bodyByteLength, \"bytes\");\n } catch (error) {\n DEBUG_BUILD && debug.error(\"Error capturing request body:\", error);\n }\n}\nfunction httpRequestToRequestData(request) {\n const headers = request.headers || {};\n const forwardedHost = typeof headers[\"x-forwarded-host\"] === \"string\" ? headers[\"x-forwarded-host\"] : void 0;\n const host = forwardedHost || (typeof headers.host === \"string\" ? headers.host : void 0);\n const forwardedProto = typeof headers[\"x-forwarded-proto\"] === \"string\" ? headers[\"x-forwarded-proto\"] : void 0;\n const protocol = forwardedProto || request.protocol || (request.socket?.encrypted ? \"https\" : \"http\");\n const url = request.url || \"\";\n const absoluteUrl = getAbsoluteUrl({\n url,\n host,\n protocol\n });\n const data = request.body || void 0;\n const cookies = request.cookies;\n return {\n url: absoluteUrl,\n method: request.method,\n query_string: extractQueryParamsFromUrl(url),\n headers: headersToDict(headers),\n cookies,\n data\n };\n}\nfunction getAbsoluteUrl({\n url,\n protocol,\n host\n}) {\n if (url?.startsWith(\"http\")) {\n return url;\n }\n if (url && host) {\n return `${protocol}://${host}${url}`;\n }\n return void 0;\n}\nfunction httpHeadersToSpanAttributes(headers, dataCollection = false, lifecycle = \"request\") {\n const resolvedDataCollection = typeof dataCollection === \"boolean\" ? defaultPiiToCollectionOptions(dataCollection) : dataCollection;\n const headerBehavior = lifecycle === \"request\" ? resolvedDataCollection.httpHeaders.request : resolvedDataCollection.httpHeaders.response;\n const cookieBehavior = resolvedDataCollection.cookies;\n const prefix = `http.${lifecycle}.header.`;\n const spanAttributes = {};\n try {\n const regularHeaders = {};\n for (const [key, value] of Object.entries(headers)) {\n if (value == null) {\n continue;\n }\n const lowerKey = key.toLowerCase();\n const isCookieHeader = lowerKey === \"cookie\" || lowerKey === \"set-cookie\";\n if (isCookieHeader) {\n if (cookieBehavior === false) {\n continue;\n }\n if (typeof value === \"string\" && value !== \"\") {\n const parsed = parseCookieHeader(value, lowerKey === \"set-cookie\");\n const filtered = filterKeyValueData(parsed, cookieBehavior, SENSITIVE_COOKIE_NAME_SNIPPETS);\n for (const [cookieKey, cookieValue] of Object.entries(filtered)) {\n spanAttributes[`${prefix}${normalizeAttributeKey(lowerKey)}.${normalizeAttributeKey(cookieKey)}`] = cookieValue;\n }\n } else {\n spanAttributes[`${prefix}${normalizeAttributeKey(lowerKey)}`] = FILTERED_VALUE;\n }\n } else {\n if (headerBehavior === false) {\n continue;\n }\n if (Array.isArray(value)) {\n regularHeaders[lowerKey] = value.map((v) => v != null ? String(v) : v).join(\";\");\n } else if (typeof value === \"string\") {\n regularHeaders[lowerKey] = value;\n }\n }\n }\n if (headerBehavior !== false) {\n const filtered = filterKeyValueData(regularHeaders, headerBehavior);\n for (const [headerKey, headerValue] of Object.entries(filtered)) {\n spanAttributes[`${prefix}${normalizeAttributeKey(headerKey)}`] = headerValue;\n }\n }\n } catch {\n }\n return spanAttributes;\n}\nfunction normalizeAttributeKey(key) {\n return key.replace(/-/g, \"_\");\n}\nfunction parseCookieHeader(value, isSetCookie) {\n const semicolonIndex = value.indexOf(\";\");\n const cookieString = isSetCookie && semicolonIndex !== -1 ? value.substring(0, semicolonIndex) : value;\n const cookies = isSetCookie ? [cookieString] : cookieString.split(\"; \");\n const result = {};\n for (const cookie of cookies) {\n const equalSignIndex = cookie.indexOf(\"=\");\n const cookieKey = (equalSignIndex !== -1 ? cookie.substring(0, equalSignIndex) : cookie).toLowerCase();\n const cookieValue = equalSignIndex !== -1 ? cookie.substring(equalSignIndex + 1) : \"\";\n result[cookieKey] = cookieValue;\n }\n return result;\n}\nfunction extractQueryParamsFromUrl(url) {\n if (!url) {\n return;\n }\n try {\n const queryParams = new URL(url, \"http://s.io\").search.slice(1);\n return queryParams.length ? queryParams : void 0;\n } catch {\n return void 0;\n }\n}\n\nexport { MAX_BODY_BYTE_LENGTH, captureBodyFromWinterCGRequest, extractQueryParamsFromUrl, getMaxBodyByteLength, headersToDict, httpHeadersToSpanAttributes, httpRequestToRequestData, winterCGHeadersToDict, winterCGRequestToRequestData };\n//# sourceMappingURL=request.js.map\n", + "const SPAN_KIND = {\n INTERNAL: 0,\n SERVER: 1,\n CLIENT: 2,\n PRODUCER: 3,\n CONSUMER: 4\n};\nconst SPAN_KIND_NAME = {\n [SPAN_KIND.INTERNAL]: \"INTERNAL\",\n [SPAN_KIND.SERVER]: \"SERVER\",\n [SPAN_KIND.CLIENT]: \"CLIENT\",\n [SPAN_KIND.PRODUCER]: \"PRODUCER\",\n [SPAN_KIND.CONSUMER]: \"CONSUMER\"\n};\nfunction spanKindToName(kind) {\n return SPAN_KIND_NAME[kind];\n}\n\nexport { SPAN_KIND, spanKindToName };\n//# sourceMappingURL=spanKind.js.map\n", + "import { getClient, getIsolationScope } from './currentScopes.js';\nimport { consoleSandbox } from './utils/debug-logger.js';\nimport { dateTimestampInSeconds } from './utils/time.js';\n\nconst DEFAULT_BREADCRUMBS = 100;\nfunction addBreadcrumb(breadcrumb, hint) {\n const client = getClient();\n const isolationScope = getIsolationScope();\n if (!client) return;\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } = client.getOptions();\n if (maxBreadcrumbs <= 0) return;\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb ? consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) : mergedBreadcrumb;\n if (finalBreadcrumb === null) return;\n if (client.emit) {\n client.emit(\"beforeAddBreadcrumb\", finalBreadcrumb, hint);\n }\n isolationScope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n}\n\nexport { addBreadcrumb };\n//# sourceMappingURL=breadcrumbs.js.map\n", + "import { getClient } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\nimport { getOriginalFunction } from '../utils/object.js';\n\nlet originalFunctionToString;\nconst INTEGRATION_NAME = \"FunctionToString\";\nconst SETUP_CLIENTS = /* @__PURE__ */ new WeakMap();\nconst _functionToStringIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n originalFunctionToString = Function.prototype.toString;\n try {\n Function.prototype.toString = function(...args) {\n const originalFunction = getOriginalFunction(this);\n const context = SETUP_CLIENTS.has(getClient()) && originalFunction !== void 0 ? originalFunction : this;\n return originalFunctionToString.apply(context, args);\n };\n } catch {\n }\n },\n setup(client) {\n SETUP_CLIENTS.set(client, true);\n }\n };\n});\nconst functionToStringIntegration = defineIntegration(_functionToStringIntegration);\n\nexport { functionToStringIntegration };\n//# sourceMappingURL=functiontostring.js.map\n", + "function getPossibleEventMessages(event) {\n const possibleMessages = [];\n if (event.message) {\n possibleMessages.push(event.message);\n }\n try {\n const lastException = event.exception.values[event.exception.values.length - 1];\n if (lastException?.value) {\n possibleMessages.push(lastException.value);\n if (lastException.type) {\n possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n }\n }\n } catch {\n }\n return possibleMessages;\n}\n\nexport { getPossibleEventMessages };\n//# sourceMappingURL=eventUtils.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { defineIntegration } from '../integration.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getPossibleEventMessages } from '../utils/eventUtils.js';\nimport { getEventDescription } from '../utils/misc.js';\nimport { stringMatchesSomePattern } from '../utils/string.js';\n\nconst DEFAULT_IGNORE_ERRORS = [\n /^Script error\\.?$/,\n /^Javascript error: Script error\\.? on line 0$/,\n /^ResizeObserver loop completed with undelivered notifications.$/,\n // The browser logs this when a ResizeObserver handler takes a bit longer. Usually this is not an actual issue though. It indicates slowness.\n /^Cannot redefine property: googletag$/,\n // This is thrown when google tag manager is used in combination with an ad blocker\n /^Can't find variable: gmo$/,\n // Error from Google Search App https://issuetracker.google.com/issues/396043331\n /^undefined is not an object \\(evaluating 'a\\.[A-Z]'\\)$/,\n // Random error that happens but not actionable or noticeable to end-users.\n /can't redefine non-configurable property \"solana\"/,\n // Probably a browser extension or custom browser (Brave) throwing this error\n /vv\\(\\)\\.getRestrictions is not a function/,\n // Error thrown by GTM, seemingly not affecting end-users\n /Can't find variable: _AutofillCallbackHandler/,\n // Unactionable error in instagram webview https://developers.facebook.com/community/threads/320013549791141/\n /Object Not Found Matching Id:\\d+, MethodName:simulateEvent/,\n // unactionable error from CEFSharp, a .NET library that embeds chromium in .NET apps\n /^Java exception was raised during method invocation$/\n // error from Facebook Mobile browser (https://github.com/getsentry/sentry-javascript/issues/15065)\n];\nconst INTEGRATION_NAME = \"EventFilters\";\nconst eventFiltersIntegration = defineIntegration((options = {}) => {\n let mergedOptions;\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n const clientOptions = client.getOptions();\n mergedOptions = _mergeOptions(options, clientOptions);\n },\n processEvent(event, _hint, client) {\n if (!mergedOptions) {\n const clientOptions = client.getOptions();\n mergedOptions = _mergeOptions(options, clientOptions);\n }\n return _shouldDropEvent(event, mergedOptions) ? null : event;\n }\n };\n});\nconst inboundFiltersIntegration = defineIntegration(((options = {}) => {\n return {\n ...eventFiltersIntegration(options),\n name: \"InboundFilters\"\n };\n}));\nfunction _mergeOptions(internalOptions = {}, clientOptions = {}) {\n return {\n allowUrls: [...internalOptions.allowUrls || [], ...clientOptions.allowUrls || []],\n denyUrls: [...internalOptions.denyUrls || [], ...clientOptions.denyUrls || []],\n ignoreErrors: [\n ...internalOptions.ignoreErrors || [],\n ...clientOptions.ignoreErrors || [],\n ...internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS\n ],\n ignoreTransactions: [...internalOptions.ignoreTransactions || [], ...clientOptions.ignoreTransactions || []]\n };\n}\nfunction _shouldDropEvent(event, options) {\n if (!event.type) {\n if (_isIgnoredError(event, options.ignoreErrors)) {\n DEBUG_BUILD && debug.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\nEvent: ${getEventDescription(event)}`\n );\n return true;\n }\n if (_isUselessError(event)) {\n DEBUG_BUILD && debug.warn(\n `Event dropped due to not having an error message, error type or stacktrace.\nEvent: ${getEventDescription(\n event\n )}`\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n DEBUG_BUILD && debug.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\nEvent: ${getEventDescription(\n event\n )}.\nUrl: ${_getEventFilterUrl(event)}`\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n DEBUG_BUILD && debug.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\nEvent: ${getEventDescription(\n event\n )}.\nUrl: ${_getEventFilterUrl(event)}`\n );\n return true;\n }\n } else if (event.type === \"transaction\") {\n if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n DEBUG_BUILD && debug.warn(\n `Event dropped due to being matched by \\`ignoreTransactions\\` option.\nEvent: ${getEventDescription(event)}`\n );\n return true;\n }\n }\n return false;\n}\nfunction _isIgnoredError(event, ignoreErrors) {\n if (!ignoreErrors?.length) {\n return false;\n }\n return getPossibleEventMessages(event).some((message) => stringMatchesSomePattern(message, ignoreErrors));\n}\nfunction _isIgnoredTransaction(event, ignoreTransactions) {\n if (!ignoreTransactions?.length) {\n return false;\n }\n const name = event.transaction;\n return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\nfunction _isDeniedUrl(event, denyUrls) {\n if (!denyUrls?.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\nfunction _isAllowedUrl(event, allowUrls) {\n if (!allowUrls?.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n if (frame && frame.filename !== \"\" && frame.filename !== \"[native code]\") {\n return frame.filename || null;\n }\n }\n return null;\n}\nfunction _getEventFilterUrl(event) {\n try {\n const rootException = [...event.exception?.values ?? []].reverse().find((value) => value.mechanism?.parent_id === void 0 && value.stacktrace?.frames?.length);\n const frames = rootException?.stacktrace?.frames;\n return frames ? _getLastValidUrl(frames) : null;\n } catch {\n DEBUG_BUILD && debug.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\nfunction _isUselessError(event) {\n if (!event.exception?.values?.length) {\n return false;\n }\n return (\n // No top-level message\n !event.message && // There are no exception values that have a stacktrace, a non-generic-Error type or value\n !event.exception.values.some((value) => value.stacktrace || value.type && value.type !== \"Error\" || value.value)\n );\n}\n\nexport { eventFiltersIntegration, inboundFiltersIntegration };\n//# sourceMappingURL=eventFilters.js.map\n", + "import { isInstanceOf } from './is.js';\n\nfunction applyAggregateErrorsToEvent(exceptionFromErrorImplementation, parser, key, limit, event, hint) {\n if (!event.exception?.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return;\n }\n const originalException = event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : void 0;\n if (originalException) {\n event.exception.values = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n hint.originalException,\n key,\n event.exception.values,\n originalException,\n 0\n );\n }\n}\nfunction aggregateExceptionsFromError(exceptionFromErrorImplementation, parser, limit, error, key, prevExceptions, exception, exceptionId) {\n if (prevExceptions.length >= limit + 1) {\n return prevExceptions;\n }\n let newExceptions = [...prevExceptions];\n if (isInstanceOf(error[key], Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId, error);\n const newException = exceptionFromErrorImplementation(parser, error[key]);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error[key],\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId\n );\n }\n if (isExceptionGroup(error)) {\n error.errors.forEach((childError, i) => {\n if (isInstanceOf(childError, Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId, error);\n const newException = exceptionFromErrorImplementation(parser, childError);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n childError,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId\n );\n }\n });\n }\n return newExceptions;\n}\nfunction isExceptionGroup(error) {\n return Array.isArray(error.errors);\n}\nfunction applyExceptionGroupFieldsForParentException(exception, exceptionId, error) {\n exception.mechanism = {\n handled: true,\n type: \"auto.core.linked_errors\",\n ...isExceptionGroup(error) && { is_exception_group: true },\n ...exception.mechanism,\n exception_id: exceptionId\n };\n}\nfunction applyExceptionGroupFieldsForChildException(exception, source, exceptionId, parentId) {\n exception.mechanism = {\n handled: true,\n ...exception.mechanism,\n type: \"chained\",\n source,\n exception_id: exceptionId,\n parent_id: parentId\n };\n}\n\nexport { applyAggregateErrorsToEvent };\n//# sourceMappingURL=aggregate-errors.js.map\n", + "import { isParameterizedString, isError, isPlainObject, isErrorEvent } from './is.js';\nimport { addExceptionMechanism, addExceptionTypeValue } from './misc.js';\nimport { normalizeToSize } from './normalize.js';\nimport { extractExceptionKeysForMessage } from './object.js';\n\nfunction parseStackFrames(stackParser, error) {\n return stackParser(error.stack || \"\", 1);\n}\nfunction hasSentryFetchUrlHost(error) {\n return isError(error) && \"__sentry_fetch_url_host__\" in error && typeof error.__sentry_fetch_url_host__ === \"string\";\n}\nfunction _enhanceErrorWithSentryInfo(error) {\n if (hasSentryFetchUrlHost(error)) {\n return `${error.message} (${error.__sentry_fetch_url_host__})`;\n }\n return error.message;\n}\nfunction exceptionFromError(stackParser, error) {\n const exception = {\n type: error.name || error.constructor.name,\n value: _enhanceErrorWithSentryInfo(error)\n };\n const frames = parseStackFrames(stackParser, error);\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n return exception;\n}\nfunction getErrorPropertyFromObject(obj) {\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n const value = obj[prop];\n if (value instanceof Error) {\n return value;\n }\n }\n }\n return void 0;\n}\nfunction getMessageForObject(exception) {\n if (\"name\" in exception && typeof exception.name === \"string\") {\n let message = `'${exception.name}' captured as exception`;\n if (\"message\" in exception && typeof exception.message === \"string\") {\n message += ` with message '${exception.message}'`;\n }\n return message;\n } else if (\"message\" in exception && typeof exception.message === \"string\") {\n return exception.message;\n }\n const keys = extractExceptionKeysForMessage(exception);\n if (isErrorEvent(exception)) {\n return `Event \\`ErrorEvent\\` captured as exception with message \\`${exception.message}\\``;\n }\n const className = getObjectClassName(exception);\n return `${className && className !== \"Object\" ? `'${className}'` : \"Object\"} captured as exception with keys: ${keys}`;\n}\nfunction getObjectClassName(obj) {\n try {\n const prototype = Object.getPrototypeOf(obj);\n return prototype ? prototype.constructor.name : void 0;\n } catch {\n }\n}\nfunction getException(client, mechanism, exception, hint) {\n if (isError(exception)) {\n return [exception, void 0];\n }\n mechanism.synthetic = true;\n if (isPlainObject(exception)) {\n const normalizeDepth = client?.getOptions().normalizeDepth;\n const extras = { [\"__serialized__\"]: normalizeToSize(exception, normalizeDepth) };\n const errorFromProp = getErrorPropertyFromObject(exception);\n if (errorFromProp) {\n return [errorFromProp, extras];\n }\n const message = getMessageForObject(exception);\n const ex2 = hint?.syntheticException || new Error(message);\n ex2.message = message;\n return [ex2, extras];\n }\n const ex = hint?.syntheticException || new Error(exception);\n ex.message = `${exception}`;\n return [ex, void 0];\n}\nfunction eventFromUnknownInput(client, stackParser, exception, hint) {\n const providedMechanism = hint?.data && hint.data.mechanism;\n const mechanism = providedMechanism || {\n handled: true,\n type: \"generic\"\n };\n const [ex, extras] = getException(client, mechanism, exception, hint);\n const event = {\n exception: {\n values: [exceptionFromError(stackParser, ex)]\n }\n };\n if (extras) {\n event.extra = extras;\n }\n addExceptionTypeValue(event, void 0, void 0);\n addExceptionMechanism(event, mechanism);\n return {\n ...event,\n event_id: hint?.event_id\n };\n}\nfunction eventFromMessage(stackParser, message, level = \"info\", hint, attachStacktrace) {\n const event = {\n event_id: hint?.event_id,\n level\n };\n if (attachStacktrace && hint?.syntheticException) {\n const frames = parseStackFrames(stackParser, hint.syntheticException);\n if (frames.length) {\n event.exception = {\n values: [\n {\n value: message,\n stacktrace: { frames }\n }\n ]\n };\n addExceptionMechanism(event, { synthetic: true });\n }\n }\n if (isParameterizedString(message)) {\n const { __sentry_template_string__, __sentry_template_values__ } = message;\n event.logentry = {\n message: __sentry_template_string__,\n params: __sentry_template_values__\n };\n return event;\n }\n event.message = message;\n return event;\n}\n\nexport { _enhanceErrorWithSentryInfo, eventFromMessage, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n", + "import { defineIntegration } from '../integration.js';\nimport { applyAggregateErrorsToEvent } from '../utils/aggregate-errors.js';\nimport { exceptionFromError } from '../utils/eventbuilder.js';\n\nconst DEFAULT_KEY = \"cause\";\nconst DEFAULT_LIMIT = 5;\nconst INTEGRATION_NAME = \"LinkedErrors\";\nconst _linkedErrorsIntegration = ((options = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n const key = options.key || DEFAULT_KEY;\n return {\n name: INTEGRATION_NAME,\n preprocessEvent(event, hint, client) {\n const options2 = client.getOptions();\n applyAggregateErrorsToEvent(exceptionFromError, options2.stackParser, key, limit, event, hint);\n }\n };\n});\nconst linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n\nexport { linkedErrorsIntegration };\n//# sourceMappingURL=linkederrors.js.map\n", + "function parseCookie(str) {\n const obj = {};\n let index = 0;\n while (index < str.length) {\n const eqIdx = str.indexOf(\"=\", index);\n if (eqIdx === -1) {\n break;\n }\n let endIdx = str.indexOf(\";\", index);\n if (endIdx === -1) {\n endIdx = str.length;\n } else if (endIdx < eqIdx) {\n index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n continue;\n }\n const key = str.slice(index, eqIdx).trim();\n if (void 0 === obj[key]) {\n let val = str.slice(eqIdx + 1, endIdx).trim();\n if (val.charCodeAt(0) === 34) {\n val = val.slice(1, -1);\n }\n try {\n obj[key] = val.indexOf(\"%\") !== -1 ? decodeURIComponent(val) : val;\n } catch {\n obj[key] = val;\n }\n }\n index = endIdx + 1;\n }\n return obj;\n}\n\nexport { parseCookie };\n//# sourceMappingURL=cookie.js.map\n", + "const ipHeaderNames = [\n \"X-Client-IP\",\n \"X-Forwarded-For\",\n \"Fly-Client-IP\",\n \"CF-Connecting-IP\",\n \"Fastly-Client-Ip\",\n \"True-Client-Ip\",\n \"X-Real-IP\",\n \"X-Cluster-Client-IP\",\n \"X-Forwarded\",\n \"Forwarded-For\",\n \"Forwarded\",\n \"X-Vercel-Forwarded-For\"\n];\nfunction getClientIPAddress(headers) {\n const lowerCaseHeaders = {};\n for (const key of Object.keys(headers)) {\n lowerCaseHeaders[key.toLowerCase()] = headers[key];\n }\n const headerValues = ipHeaderNames.map((headerName) => {\n const rawValue = lowerCaseHeaders[headerName.toLowerCase()];\n const value = Array.isArray(rawValue) ? rawValue.join(\";\") : rawValue;\n if (headerName === \"Forwarded\") {\n return parseForwardedHeader(value);\n }\n return value?.split(\",\").map((v) => v.trim());\n });\n const flattenedHeaderValues = headerValues.reduce((acc, val) => {\n if (!val) {\n return acc;\n }\n return acc.concat(val);\n }, []);\n const ipAddress = flattenedHeaderValues.find((ip) => ip !== null && isIP(ip));\n return ipAddress || null;\n}\nfunction parseForwardedHeader(value) {\n if (!value) {\n return null;\n }\n for (const part of value.split(\";\")) {\n if (part.startsWith(\"for=\")) {\n return part.slice(4);\n }\n }\n return null;\n}\nfunction isIP(str) {\n const regex = /(?:^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$)|(?:^(?:(?:[a-fA-F\\d]{1,4}:){7}(?:[a-fA-F\\d]{1,4}|:)|(?:[a-fA-F\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-fA-F\\d]{1,4}|:)|(?:[a-fA-F\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,2}|:)|(?:[a-fA-F\\d]{1,4}:){4}(?:(?::[a-fA-F\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,3}|:)|(?:[a-fA-F\\d]{1,4}:){3}(?:(?::[a-fA-F\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,4}|:)|(?:[a-fA-F\\d]{1,4}:){2}(?:(?::[a-fA-F\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,5}|:)|(?:[a-fA-F\\d]{1,4}:){1}(?:(?::[a-fA-F\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/;\n return regex.test(str);\n}\n\nexport { getClientIPAddress, ipHeaderNames };\n//# sourceMappingURL=getIpAddress.js.map\n", + "import { getIsolationScope } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\nimport { SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS } from '../semanticAttributes.js';\nimport { parseCookie } from '../utils/cookie.js';\nimport { httpHeadersToSpanAttributes } from '../utils/request.js';\nimport { getClientIPAddress, ipHeaderNames } from '../vendor/getIpAddress.js';\nimport { safeSetSpanJSONAttributes } from '../tracing/spans/captureSpan.js';\n\nconst INTEGRATION_NAME = \"RequestData\";\nconst _requestDataIntegration = ((options = {}) => {\n function resolveIncludeAndDataCollection(client) {\n const dc = client.getDataCollectionOptions();\n const dataCollection = {\n ...dc,\n ...options.include?.cookies === true && dc.cookies === false && { cookies: true },\n ...options.include?.headers === true && dc.httpHeaders.request === false && {\n httpHeaders: { ...dc.httpHeaders, request: true }\n }\n };\n return {\n dataCollection,\n include: {\n cookies: dataCollection.cookies !== false,\n // Always attach body data that's already on the scope — dataCollection.httpBodies gates write-time, not read-time\n data: true,\n headers: dataCollection.httpHeaders.request !== false,\n ip: dataCollection.userInfo,\n query_string: dataCollection.queryParams !== false,\n // No dataCollection equivalent — URL is always included\n url: true,\n ...options.include\n }\n };\n }\n return {\n name: INTEGRATION_NAME,\n processEvent(event, _hint, client) {\n const { sdkProcessingMetadata = {} } = event;\n const { normalizedRequest, ipAddress } = sdkProcessingMetadata;\n const { include } = resolveIncludeAndDataCollection(client);\n if (normalizedRequest) {\n addNormalizedRequestDataToEvent(event, normalizedRequest, { ipAddress }, include);\n }\n return event;\n },\n processSegmentSpan(span, client) {\n const { sdkProcessingMetadata = {} } = getIsolationScope().getScopeData();\n const { normalizedRequest, ipAddress } = sdkProcessingMetadata;\n if (!normalizedRequest) {\n return;\n }\n const { include, dataCollection } = resolveIncludeAndDataCollection(client);\n addNormalizedRequestDataToSpan(span, normalizedRequest, ipAddress, include, dataCollection);\n }\n };\n});\nconst requestDataIntegration = defineIntegration(_requestDataIntegration);\nfunction addNormalizedRequestDataToEvent(event, req, additionalData, include) {\n event.request = {\n ...event.request,\n ...extractNormalizedRequestData(req, include)\n };\n if (include.ip) {\n const ip = req.headers && getClientIPAddress(req.headers) || additionalData.ipAddress;\n if (ip) {\n event.user = {\n ...event.user,\n ip_address: ip\n };\n }\n }\n}\nfunction addNormalizedRequestDataToSpan(span, normalizedRequest, ipAddress, include, dataCollection) {\n const requestData = extractNormalizedRequestData(normalizedRequest, include);\n const attributes = {};\n if (requestData.url) {\n attributes[\"url.full\"] = requestData.url;\n }\n if (requestData.method) {\n attributes[\"http.request.method\"] = requestData.method;\n }\n if (requestData.query_string) {\n attributes[\"url.query\"] = normalizeQueryString(requestData.query_string);\n }\n safeSetSpanJSONAttributes(span, attributes);\n if (requestData.cookies && Object.keys(requestData.cookies).length > 0) {\n const cookieString = Object.entries(requestData.cookies).map(([name, value]) => `${name}=${value}`).join(\"; \");\n const cookieAttributes = httpHeadersToSpanAttributes({ cookie: cookieString }, dataCollection, \"request\");\n safeSetSpanJSONAttributes(span, cookieAttributes);\n }\n if (requestData.headers) {\n const headerAttributes = httpHeadersToSpanAttributes(requestData.headers, dataCollection, \"request\");\n safeSetSpanJSONAttributes(span, headerAttributes);\n }\n if (requestData.data != null) {\n const serialized = typeof requestData.data === \"string\" ? requestData.data : JSON.stringify(requestData.data);\n if (serialized) {\n safeSetSpanJSONAttributes(span, { \"http.request.body.data\": serialized });\n }\n }\n if (include.ip) {\n const ip = normalizedRequest.headers && getClientIPAddress(normalizedRequest.headers) || ipAddress || void 0;\n if (ip) {\n safeSetSpanJSONAttributes(span, { [SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS]: ip });\n }\n }\n}\nfunction extractNormalizedRequestData(normalizedRequest, include) {\n const requestData = {};\n const headers = { ...normalizedRequest.headers };\n if (include.headers) {\n requestData.headers = headers;\n if (!include.cookies) {\n delete headers.cookie;\n }\n if (!include.ip) {\n const ipHeaderNamesLower = new Set(ipHeaderNames.map((name) => name.toLowerCase()));\n for (const key of Object.keys(headers)) {\n if (ipHeaderNamesLower.has(key.toLowerCase())) {\n delete headers[key];\n }\n }\n }\n }\n requestData.method = normalizedRequest.method;\n if (include.url) {\n requestData.url = normalizedRequest.url;\n }\n if (include.cookies) {\n const cookies = normalizedRequest.cookies || (headers?.cookie ? parseCookie(headers.cookie) : void 0);\n requestData.cookies = cookies || {};\n }\n if (include.query_string) {\n requestData.query_string = normalizedRequest.query_string;\n }\n if (include.data) {\n requestData.data = normalizedRequest.data;\n }\n return requestData;\n}\nfunction normalizeQueryString(queryString) {\n if (typeof queryString === \"string\") {\n return queryString || void 0;\n }\n const pairs = Array.isArray(queryString) ? queryString : Object.entries(queryString);\n const result = pairs.map(([key, value]) => `${key}=${value}`).join(\"&\");\n return result || void 0;\n}\n\nexport { requestDataIntegration };\n//# sourceMappingURL=requestdata.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getFunctionName } from '../utils/stacktrace.js';\n\nconst handlers = {};\nconst instrumented = {};\nfunction addHandler(type, handler) {\n handlers[type] = handlers[type] || [];\n handlers[type].push(handler);\n return () => {\n const typeHandlers = handlers[type];\n if (typeHandlers) {\n const index = typeHandlers.indexOf(handler);\n if (index !== -1) {\n typeHandlers.splice(index, 1);\n }\n }\n };\n}\nfunction resetInstrumentationHandlers() {\n Object.keys(handlers).forEach((key) => {\n handlers[key] = void 0;\n });\n}\nfunction maybeInstrument(type, instrumentFn) {\n if (!instrumented[type]) {\n instrumented[type] = true;\n try {\n instrumentFn();\n } catch (e) {\n DEBUG_BUILD && debug.error(`Error while instrumenting ${type}`, e);\n }\n }\n}\nfunction triggerHandlers(type, data) {\n const typeHandlers = type && handlers[type];\n if (!typeHandlers) {\n return;\n }\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD && debug.error(\n `Error while triggering instrumentation handler.\nType: ${type}\nName: ${getFunctionName(handler)}\nError:`,\n e\n );\n }\n }\n}\n\nexport { addHandler, maybeInstrument, resetInstrumentationHandlers, triggerHandlers };\n//# sourceMappingURL=handlers.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { CONSOLE_LEVELS, originalConsoleMethods, debug } from '../utils/debug-logger.js';\nimport { fill } from '../utils/object.js';\nimport { stringMatchesSomePattern } from '../utils/string.js';\nimport { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nconst _filter = /* @__PURE__ */ new Set([]);\nfunction addConsoleInstrumentationHandler(handler) {\n const type = \"console\";\n const removeHandler = addHandler(type, handler);\n maybeInstrument(type, instrumentConsole);\n return removeHandler;\n}\nfunction addConsoleInstrumentationFilter(filter) {\n for (const f of filter) {\n _filter.add(f);\n }\n return () => {\n for (const f of filter) {\n _filter.delete(f);\n }\n };\n}\nfunction instrumentConsole() {\n if (!(\"console\" in GLOBAL_OBJ)) {\n return;\n }\n CONSOLE_LEVELS.forEach(function(level) {\n if (!(level in GLOBAL_OBJ.console)) {\n return;\n }\n fill(GLOBAL_OBJ.console, level, function(originalConsoleMethod) {\n originalConsoleMethods[level] = originalConsoleMethod;\n return function(...args) {\n const firstArg = args[0];\n const log = originalConsoleMethods[level];\n const isFiltered = _filter.size && typeof firstArg === \"string\" && stringMatchesSomePattern(firstArg, _filter);\n if (!isFiltered) {\n triggerHandlers(\"console\", { args, level });\n }\n if (!isFiltered || DEBUG_BUILD && debug.isEnabled()) {\n log?.apply(GLOBAL_OBJ.console, args);\n }\n };\n });\n });\n}\n\nexport { addConsoleInstrumentationFilter, addConsoleInstrumentationHandler };\n//# sourceMappingURL=console.js.map\n", + "function severityLevelFromString(level) {\n return level === \"warn\" ? \"warning\" : [\"fatal\", \"error\", \"warning\", \"log\", \"info\", \"debug\"].includes(level) ? level : \"log\";\n}\n\nexport { severityLevelFromString };\n//# sourceMappingURL=severity.js.map\n", + "function normalizeArray(parts, allowAboveRoot) {\n let up = 0;\n for (let i = parts.length - 1; i >= 0; i--) {\n const last = parts[i];\n if (last === \".\") {\n parts.splice(i, 1);\n } else if (last === \"..\") {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift(\"..\");\n }\n }\n return parts;\n}\nconst splitPathRe = /^(\\S+:\\\\|\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^/\\\\]+?|)(\\.[^./\\\\]*|))(?:[/\\\\]*)$/;\nfunction splitPath(filename) {\n const truncated = filename.length > 1024 ? `${filename.slice(-1024)}` : filename;\n const parts = splitPathRe.exec(truncated);\n return parts ? parts.slice(1) : [];\n}\nfunction resolve(...args) {\n let resolvedPath = \"\";\n let resolvedAbsolute = false;\n for (let i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n const path = i >= 0 ? args[i] : \"/\";\n if (!path) {\n continue;\n }\n resolvedPath = `${path}/${resolvedPath}`;\n resolvedAbsolute = path.charAt(0) === \"/\";\n }\n resolvedPath = normalizeArray(\n resolvedPath.split(\"/\").filter((p) => !!p),\n !resolvedAbsolute\n ).join(\"/\");\n return (resolvedAbsolute ? \"/\" : \"\") + resolvedPath || \".\";\n}\nfunction trim(arr) {\n let start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== \"\") {\n break;\n }\n }\n let end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== \"\") {\n break;\n }\n }\n if (start > end) {\n return [];\n }\n return arr.slice(start, end - start + 1);\n}\nfunction relative(from, to) {\n from = resolve(from).slice(1);\n to = resolve(to).slice(1);\n const fromParts = trim(from.split(\"/\"));\n const toParts = trim(to.split(\"/\"));\n const length = Math.min(fromParts.length, toParts.length);\n let samePartsLength = length;\n for (let i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n let outputParts = [];\n for (let i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push(\"..\");\n }\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join(\"/\");\n}\nfunction normalizePath(path) {\n const isPathAbsolute = isAbsolute(path);\n const trailingSlash = path.slice(-1) === \"/\";\n let normalizedPath = normalizeArray(\n path.split(\"/\").filter((p) => !!p),\n !isPathAbsolute\n ).join(\"/\");\n if (!normalizedPath && !isPathAbsolute) {\n normalizedPath = \".\";\n }\n if (normalizedPath && trailingSlash) {\n normalizedPath += \"/\";\n }\n return (isPathAbsolute ? \"/\" : \"\") + normalizedPath;\n}\nfunction isAbsolute(path) {\n return path.charAt(0) === \"/\";\n}\nfunction join(...args) {\n return normalizePath(args.join(\"/\"));\n}\nfunction dirname(path) {\n const result = splitPath(path);\n const root = result[0] || \"\";\n let dir = result[1];\n if (!root && !dir) {\n return \".\";\n }\n if (dir) {\n dir = dir.slice(0, dir.length - 1);\n }\n return root + dir;\n}\nfunction basename(path, ext) {\n let f = splitPath(path)[2] || \"\";\n if (ext && f.slice(ext.length * -1) === ext) {\n f = f.slice(0, f.length - ext.length);\n }\n return f;\n}\n\nexport { basename, dirname, isAbsolute, join, normalizePath, relative, resolve };\n//# sourceMappingURL=path.js.map\n", + "import { addBreadcrumb } from '../breadcrumbs.js';\nimport { getClient } from '../currentScopes.js';\nimport { addConsoleInstrumentationHandler, addConsoleInstrumentationFilter } from '../instrument/console.js';\nimport { defineIntegration } from '../integration.js';\nimport { CONSOLE_LEVELS } from '../utils/debug-logger.js';\nimport { severityLevelFromString } from '../utils/severity.js';\nimport { safeJoin } from '../utils/string.js';\nimport { GLOBAL_OBJ } from '../utils/worldwide.js';\n\nconst INTEGRATION_NAME = \"Console\";\nconst consoleIntegration = defineIntegration((options = {}) => {\n const levels = new Set(options.levels || CONSOLE_LEVELS);\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n const unsubscribe = addConsoleInstrumentationHandler(({ args, level }) => {\n if (getClient() !== client || !levels.has(level)) {\n return;\n }\n addConsoleBreadcrumb(level, args);\n });\n client.registerCleanup(unsubscribe);\n if (options.filter) {\n const unsubscribe2 = addConsoleInstrumentationFilter(options.filter);\n client.registerCleanup(unsubscribe2);\n }\n }\n };\n});\nfunction addConsoleBreadcrumb(level, args) {\n const breadcrumb = {\n category: \"console\",\n data: {\n arguments: args,\n logger: \"console\"\n },\n level: severityLevelFromString(level),\n message: formatConsoleArgs(args)\n };\n if (level === \"assert\") {\n if (args[0] === false) {\n const assertionArgs = args.slice(1);\n breadcrumb.message = assertionArgs.length > 0 ? `Assertion failed: ${formatConsoleArgs(assertionArgs)}` : \"Assertion failed\";\n breadcrumb.data.arguments = assertionArgs;\n } else {\n return;\n }\n }\n addBreadcrumb(breadcrumb, {\n input: args,\n level\n });\n}\nfunction formatConsoleArgs(values) {\n return \"util\" in GLOBAL_OBJ && typeof GLOBAL_OBJ.util.format === \"function\" ? GLOBAL_OBJ.util.format(...values) : safeJoin(values, \" \");\n}\n\nexport { addConsoleBreadcrumb, consoleIntegration };\n//# sourceMappingURL=console.js.map\n", + "import { getCurrentScope, getIsolationScope } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\nimport { GEN_AI_CONVERSATION_ID_ATTRIBUTE } from '../semanticAttributes.js';\nimport { spanToJSON } from '../utils/spanUtils.js';\n\nconst INTEGRATION_NAME = \"ConversationId\";\nconst _conversationIdIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n client.on(\"spanStart\", (span) => {\n const scopeData = getCurrentScope().getScopeData();\n const isolationScopeData = getIsolationScope().getScopeData();\n const conversationId = scopeData.conversationId || isolationScopeData.conversationId;\n if (conversationId) {\n const { op, data: attributes, description: name } = spanToJSON(span);\n if (!op?.startsWith(\"gen_ai.\") && !attributes[\"ai.operationId\"] && !name?.startsWith(\"ai.\")) {\n return;\n }\n span.setAttribute(GEN_AI_CONVERSATION_ID_ATTRIBUTE, conversationId);\n }\n });\n }\n };\n});\nconst conversationIdIntegration = defineIntegration(_conversationIdIntegration);\n\nexport { conversationIdIntegration };\n//# sourceMappingURL=conversationId.js.map\n", + "const SEQUENCE_ATTR_KEY = \"sentry.timestamp.sequence\";\nlet _sequenceNumber = 0;\nlet _previousTimestampMs;\nfunction getSequenceAttribute(timestampInSeconds) {\n const nowMs = Math.floor(timestampInSeconds * 1e3);\n if (_previousTimestampMs !== void 0 && nowMs !== _previousTimestampMs) {\n _sequenceNumber = 0;\n }\n const value = _sequenceNumber;\n _sequenceNumber++;\n _previousTimestampMs = nowMs;\n return {\n key: SEQUENCE_ATTR_KEY,\n value: { value, type: \"integer\" }\n };\n}\n\nexport { getSequenceAttribute };\n//# sourceMappingURL=timestampSequence.js.map\n", + "import { withScope, getTraceContextFromScope } from '../currentScopes.js';\nimport { getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromScope } from '../tracing/dynamicSamplingContext.js';\nimport { getActiveSpan, spanToTraceContext } from './spanUtils.js';\n\nfunction _getTraceInfoFromScope(client, scope) {\n if (!scope) {\n return [void 0, void 0];\n }\n return withScope(scope, () => {\n const span = getActiveSpan();\n const traceContext = span ? spanToTraceContext(span) : getTraceContextFromScope(scope);\n const dynamicSamplingContext = span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromScope(client, scope);\n return [dynamicSamplingContext, traceContext];\n });\n}\n\nexport { _getTraceInfoFromScope };\n//# sourceMappingURL=trace-info.js.map\n", + "function isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== \"undefined\" && !!__SENTRY_BROWSER_BUNDLE__;\n}\nfunction getSDKSource() {\n /*! __SENTRY_SDK_SOURCE__ */\n return \"npm\";\n}\n\nexport { getSDKSource, isBrowserBundle };\n//# sourceMappingURL=env.js.map\n", + "import { isBrowserBundle } from './env.js';\n\nfunction isNodeEnv() {\n return !isBrowserBundle() && Object.prototype.toString.call(typeof process !== \"undefined\" ? process : 0) === \"[object process]\";\n}\nfunction dynamicRequire(mod, request) {\n return mod.require(request);\n}\nfunction loadModule(moduleName, existingModule = module) {\n let mod;\n try {\n mod = dynamicRequire(existingModule, moduleName);\n } catch {\n }\n if (!mod) {\n try {\n const { cwd } = dynamicRequire(existingModule, \"process\");\n mod = dynamicRequire(existingModule, `${cwd()}/node_modules/${moduleName}`);\n } catch {\n }\n }\n return mod;\n}\n\nexport { isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n", + "import { isNodeEnv } from './node.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nfunction isBrowser() {\n return typeof window !== \"undefined\" && (!isNodeEnv() || isElectronNodeRenderer());\n}\nfunction isElectronNodeRenderer() {\n const process = GLOBAL_OBJ.process;\n return process?.type === \"renderer\";\n}\n\nexport { isBrowser };\n//# sourceMappingURL=isBrowser.js.map\n", + "import { dsnToString } from '../utils/dsn.js';\nimport { createEnvelope } from '../utils/envelope.js';\nimport { isBrowser } from '../utils/isBrowser.js';\n\nfunction createLogContainerEnvelopeItem(items, inferUserData) {\n const inferSetting = inferUserData ? \"auto\" : \"never\";\n return [\n {\n type: \"log\",\n item_count: items.length,\n content_type: \"application/vnd.sentry.items.log+json\"\n },\n {\n version: 2,\n ...isBrowser() && {\n ingest_settings: { infer_ip: inferSetting, infer_user_agent: inferSetting }\n },\n items\n }\n ];\n}\nfunction createLogEnvelope(logs, metadata, tunnel, dsn, inferUserData) {\n const headers = {};\n if (metadata?.sdk) {\n headers.sdk = {\n name: metadata.sdk.name,\n version: metadata.sdk.version\n };\n }\n if (!!tunnel && !!dsn) {\n headers.dsn = dsnToString(dsn);\n }\n return createEnvelope(headers, [createLogContainerEnvelopeItem(logs, inferUserData)]);\n}\n\nexport { createLogContainerEnvelopeItem, createLogEnvelope };\n//# sourceMappingURL=envelope.js.map\n", + "import { serializeAttributes } from '../attributes.js';\nimport { getGlobalSingleton } from '../carrier.js';\nimport { getClient, getIsolationScope, getCurrentScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { debug, consoleSandbox } from '../utils/debug-logger.js';\nimport { isParameterizedString } from '../utils/is.js';\nimport { getCombinedScopeData } from '../utils/scopeData.js';\nimport { _getSpanForScope } from '../utils/spanOnScope.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getSequenceAttribute } from '../utils/timestampSequence.js';\nimport { _getTraceInfoFromScope } from '../utils/trace-info.js';\nimport { SEVERITY_TEXT_TO_SEVERITY_NUMBER } from './constants.js';\nimport { createLogEnvelope } from './envelope.js';\n\nconst MAX_LOG_BUFFER_SIZE = 100;\nfunction setLogAttribute(logAttributes, key, value, setEvenIfPresent = true) {\n if (value && (!logAttributes[key] || setEvenIfPresent)) {\n logAttributes[key] = value;\n }\n}\nfunction _INTERNAL_captureSerializedLog(client, serializedLog) {\n const bufferMap = _getBufferMap();\n const logBuffer = _INTERNAL_getLogBuffer(client);\n if (logBuffer === void 0) {\n bufferMap.set(client, [serializedLog]);\n } else {\n if (logBuffer.length >= MAX_LOG_BUFFER_SIZE) {\n _INTERNAL_flushLogsBuffer(client, logBuffer);\n bufferMap.set(client, [serializedLog]);\n } else {\n bufferMap.set(client, [...logBuffer, serializedLog]);\n }\n }\n}\nfunction _INTERNAL_captureLog(beforeLog, currentScope = getCurrentScope(), captureSerializedLog = _INTERNAL_captureSerializedLog) {\n const client = currentScope?.getClient() ?? getClient();\n if (!client) {\n DEBUG_BUILD && debug.warn(\"No client available to capture log.\");\n return;\n }\n const { release, environment, enableLogs = false, beforeSendLog } = client.getOptions();\n if (!enableLogs) {\n DEBUG_BUILD && debug.warn(\"logging option not enabled, log will not be captured.\");\n return;\n }\n const [, traceContext] = _getTraceInfoFromScope(client, currentScope);\n const processedLogAttributes = {\n ...beforeLog.attributes\n };\n const {\n user: { id, email, username },\n attributes: scopeAttributes = {}\n } = getCombinedScopeData(getIsolationScope(), currentScope);\n setLogAttribute(processedLogAttributes, \"user.id\", id, false);\n setLogAttribute(processedLogAttributes, \"user.email\", email, false);\n setLogAttribute(processedLogAttributes, \"user.name\", username, false);\n setLogAttribute(processedLogAttributes, \"sentry.release\", release);\n setLogAttribute(processedLogAttributes, \"sentry.environment\", environment);\n const { name, version } = client.getSdkMetadata()?.sdk ?? {};\n setLogAttribute(processedLogAttributes, \"sentry.sdk.name\", name);\n setLogAttribute(processedLogAttributes, \"sentry.sdk.version\", version);\n const replay = client.getIntegrationByName(\"Replay\");\n const replayId = replay?.getReplayId(true);\n setLogAttribute(processedLogAttributes, \"sentry.replay_id\", replayId);\n if (replayId && replay?.getRecordingMode() === \"buffer\") {\n setLogAttribute(processedLogAttributes, \"sentry._internal.replay_is_buffering\", true);\n }\n const beforeLogMessage = beforeLog.message;\n if (isParameterizedString(beforeLogMessage)) {\n const { __sentry_template_string__, __sentry_template_values__ = [] } = beforeLogMessage;\n if (__sentry_template_values__?.length) {\n processedLogAttributes[\"sentry.message.template\"] = __sentry_template_string__;\n }\n __sentry_template_values__.forEach((param, index) => {\n processedLogAttributes[`sentry.message.parameter.${index}`] = param;\n });\n }\n const span = _getSpanForScope(currentScope);\n setLogAttribute(processedLogAttributes, \"sentry.trace.parent_span_id\", span?.spanContext().spanId);\n const processedLog = { ...beforeLog, attributes: processedLogAttributes };\n client.emit(\"beforeCaptureLog\", processedLog);\n const log = beforeSendLog ? consoleSandbox(() => beforeSendLog(processedLog)) : processedLog;\n if (!log) {\n client.recordDroppedEvent(\"before_send\", \"log_item\", 1);\n DEBUG_BUILD && debug.warn(\"beforeSendLog returned null, log will not be captured.\");\n return;\n }\n const { level, message, attributes: logAttributes = {}, severityNumber } = log;\n const timestamp = timestampInSeconds();\n const sequenceAttr = getSequenceAttribute(timestamp);\n const serializedLog = {\n timestamp,\n level,\n body: _removeLoneSurrogates(String(message)),\n trace_id: traceContext?.trace_id,\n severity_number: severityNumber ?? SEVERITY_TEXT_TO_SEVERITY_NUMBER[level],\n attributes: sanitizeLogAttributes({\n ...serializeAttributes(scopeAttributes),\n ...serializeAttributes(logAttributes, true),\n [sequenceAttr.key]: sequenceAttr.value\n })\n };\n captureSerializedLog(client, serializedLog);\n client.emit(\"afterCaptureLog\", log);\n}\nfunction _INTERNAL_flushLogsBuffer(client, maybeLogBuffer) {\n const logBuffer = maybeLogBuffer ?? _INTERNAL_getLogBuffer(client) ?? [];\n if (logBuffer.length === 0) {\n return;\n }\n const clientOptions = client.getOptions();\n const envelope = createLogEnvelope(\n logBuffer,\n clientOptions._metadata,\n clientOptions.tunnel,\n client.getDsn(),\n client.getDataCollectionOptions().userInfo\n );\n _getBufferMap().set(client, []);\n client.emit(\"flushLogs\");\n client.sendEnvelope(envelope);\n}\nfunction _INTERNAL_getLogBuffer(client) {\n return _getBufferMap().get(client);\n}\nfunction _getBufferMap() {\n return getGlobalSingleton(\"clientToLogBufferMap\", () => /* @__PURE__ */ new WeakMap());\n}\nfunction sanitizeLogAttributes(attributes) {\n const sanitized = {};\n for (const [key, attr] of Object.entries(attributes)) {\n const sanitizedKey = _removeLoneSurrogates(key);\n if (attr.type === \"string\") {\n sanitized[sanitizedKey] = { ...attr, value: _removeLoneSurrogates(attr.value) };\n } else {\n sanitized[sanitizedKey] = attr;\n }\n }\n return sanitized;\n}\nfunction _removeLoneSurrogates(str) {\n const strObj = Object(str);\n const isWellFormed = strObj[\"isWellFormed\"];\n const toWellFormed = strObj[\"toWellFormed\"];\n if (typeof isWellFormed === \"function\" && typeof toWellFormed === \"function\") {\n return isWellFormed.call(str) ? str : toWellFormed.call(str);\n }\n return str;\n}\n\nexport { _INTERNAL_captureLog, _INTERNAL_captureSerializedLog, _INTERNAL_flushLogsBuffer, _INTERNAL_getLogBuffer, _removeLoneSurrogates };\n//# sourceMappingURL=internal.js.map\n", + "import { dsnToString } from '../utils/dsn.js';\nimport { createEnvelope } from '../utils/envelope.js';\nimport { isBrowser } from '../utils/isBrowser.js';\n\nfunction createMetricContainerEnvelopeItem(items, inferUserData) {\n const inferSetting = inferUserData ? \"auto\" : \"never\";\n return [\n {\n type: \"trace_metric\",\n item_count: items.length,\n content_type: \"application/vnd.sentry.items.trace-metric+json\"\n },\n {\n version: 2,\n ...isBrowser() && {\n ingest_settings: { infer_ip: inferSetting, infer_user_agent: inferSetting }\n },\n items\n }\n ];\n}\nfunction createMetricEnvelope(metrics, metadata, tunnel, dsn, inferUserData) {\n const headers = {};\n if (metadata?.sdk) {\n headers.sdk = {\n name: metadata.sdk.name,\n version: metadata.sdk.version\n };\n }\n if (!!tunnel && !!dsn) {\n headers.dsn = dsnToString(dsn);\n }\n return createEnvelope(headers, [createMetricContainerEnvelopeItem(metrics, inferUserData)]);\n}\n\nexport { createMetricContainerEnvelopeItem, createMetricEnvelope };\n//# sourceMappingURL=envelope.js.map\n", + "import { serializeAttributes } from '../attributes.js';\nimport { getGlobalSingleton } from '../carrier.js';\nimport { getCurrentScope, getClient, getIsolationScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getCombinedScopeData } from '../utils/scopeData.js';\nimport { _getSpanForScope } from '../utils/spanOnScope.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getSequenceAttribute } from '../utils/timestampSequence.js';\nimport { _getTraceInfoFromScope } from '../utils/trace-info.js';\nimport { createMetricEnvelope } from './envelope.js';\n\nconst MAX_METRIC_BUFFER_SIZE = 1e3;\nfunction setMetricAttribute(metricAttributes, key, value, setEvenIfPresent = true) {\n if (value && (setEvenIfPresent || !(key in metricAttributes))) {\n metricAttributes[key] = value;\n }\n}\nfunction _INTERNAL_captureSerializedMetric(client, serializedMetric) {\n const bufferMap = _getBufferMap();\n const metricBuffer = _INTERNAL_getMetricBuffer(client);\n if (metricBuffer === void 0) {\n bufferMap.set(client, [serializedMetric]);\n } else {\n if (metricBuffer.length >= MAX_METRIC_BUFFER_SIZE) {\n _INTERNAL_flushMetricsBuffer(client, metricBuffer);\n bufferMap.set(client, [serializedMetric]);\n } else {\n bufferMap.set(client, [...metricBuffer, serializedMetric]);\n }\n }\n}\nfunction _enrichMetricAttributes(beforeMetric, client, user) {\n const { release, environment } = client.getOptions();\n const processedMetricAttributes = {\n ...beforeMetric.attributes\n };\n setMetricAttribute(processedMetricAttributes, \"user.id\", user.id, false);\n setMetricAttribute(processedMetricAttributes, \"user.email\", user.email, false);\n setMetricAttribute(processedMetricAttributes, \"user.name\", user.username, false);\n setMetricAttribute(processedMetricAttributes, \"sentry.release\", release);\n setMetricAttribute(processedMetricAttributes, \"sentry.environment\", environment);\n const { name, version } = client.getSdkMetadata()?.sdk ?? {};\n setMetricAttribute(processedMetricAttributes, \"sentry.sdk.name\", name);\n setMetricAttribute(processedMetricAttributes, \"sentry.sdk.version\", version);\n const replay = client.getIntegrationByName(\"Replay\");\n const replayId = replay?.getReplayId(true);\n setMetricAttribute(processedMetricAttributes, \"sentry.replay_id\", replayId);\n if (replayId && replay?.getRecordingMode() === \"buffer\") {\n setMetricAttribute(processedMetricAttributes, \"sentry._internal.replay_is_buffering\", true);\n }\n return {\n ...beforeMetric,\n attributes: processedMetricAttributes\n };\n}\nfunction _buildSerializedMetric(metric, client, currentScope, scopeAttributes) {\n const [, traceContext] = _getTraceInfoFromScope(client, currentScope);\n const span = _getSpanForScope(currentScope);\n const traceId = span ? span.spanContext().traceId : traceContext?.trace_id;\n const spanId = span ? span.spanContext().spanId : void 0;\n const timestamp = timestampInSeconds();\n const sequenceAttr = getSequenceAttribute(timestamp);\n return {\n timestamp,\n trace_id: traceId ?? \"\",\n span_id: spanId,\n name: metric.name,\n type: metric.type,\n unit: metric.unit,\n value: metric.value,\n attributes: {\n ...serializeAttributes(scopeAttributes),\n ...serializeAttributes(metric.attributes, \"skip-undefined\"),\n [sequenceAttr.key]: sequenceAttr.value\n }\n };\n}\nfunction _INTERNAL_captureMetric(beforeMetric, options) {\n const currentScope = options?.scope ?? getCurrentScope();\n const captureSerializedMetric = options?.captureSerializedMetric ?? _INTERNAL_captureSerializedMetric;\n const client = currentScope?.getClient() ?? getClient();\n if (!client) {\n DEBUG_BUILD && debug.warn(\"No client available to capture metric.\");\n return;\n }\n const { _experiments, enableMetrics, beforeSendMetric } = client.getOptions();\n const metricsEnabled = enableMetrics ?? _experiments?.enableMetrics ?? true;\n if (!metricsEnabled) {\n DEBUG_BUILD && debug.warn(\"metrics option not enabled, metric will not be captured.\");\n return;\n }\n const { user, attributes: scopeAttributes } = getCombinedScopeData(getIsolationScope(), currentScope);\n const enrichedMetric = _enrichMetricAttributes(beforeMetric, client, user);\n client.emit(\"processMetric\", enrichedMetric);\n const beforeSendCallback = beforeSendMetric || _experiments?.beforeSendMetric;\n const processedMetric = beforeSendCallback ? beforeSendCallback(enrichedMetric) : enrichedMetric;\n if (!processedMetric) {\n DEBUG_BUILD && debug.log(\"`beforeSendMetric` returned `null`, will not send metric.\");\n return;\n }\n const serializedMetric = _buildSerializedMetric(processedMetric, client, currentScope, scopeAttributes);\n DEBUG_BUILD && debug.log(\"[Metric]\", serializedMetric);\n captureSerializedMetric(client, serializedMetric);\n client.emit(\"afterCaptureMetric\", processedMetric);\n}\nfunction _INTERNAL_flushMetricsBuffer(client, maybeMetricBuffer) {\n const metricBuffer = maybeMetricBuffer ?? _INTERNAL_getMetricBuffer(client) ?? [];\n if (metricBuffer.length === 0) {\n return;\n }\n const clientOptions = client.getOptions();\n const envelope = createMetricEnvelope(\n metricBuffer,\n clientOptions._metadata,\n clientOptions.tunnel,\n client.getDsn(),\n client.getDataCollectionOptions().userInfo\n );\n _getBufferMap().set(client, []);\n client.emit(\"flushMetrics\");\n client.sendEnvelope(envelope);\n}\nfunction _INTERNAL_getMetricBuffer(client) {\n return _getBufferMap().get(client);\n}\nfunction _getBufferMap() {\n return getGlobalSingleton(\"clientToMetricBufferMap\", () => /* @__PURE__ */ new WeakMap());\n}\n\nexport { _INTERNAL_captureMetric, _INTERNAL_captureSerializedMetric, _INTERNAL_flushMetricsBuffer, _INTERNAL_getMetricBuffer };\n//# sourceMappingURL=internal.js.map\n", + "import { _INTERNAL_captureMetric } from './internal.js';\n\nfunction captureMetric(type, name, value, options) {\n _INTERNAL_captureMetric(\n { type, name, value, unit: options?.unit, attributes: options?.attributes },\n { scope: options?.scope }\n );\n}\nfunction count(name, value = 1, options) {\n captureMetric(\"counter\", name, value, options);\n}\nfunction gauge(name, value, options) {\n captureMetric(\"gauge\", name, value, options);\n}\nfunction distribution(name, value, options) {\n captureMetric(\"distribution\", name, value, options);\n}\n\nexport { count, distribution, gauge };\n//# sourceMappingURL=public-api.js.map\n", + "const GEN_AI_PROMPT_ATTRIBUTE = \"gen_ai.prompt\";\nconst GEN_AI_SYSTEM_ATTRIBUTE = \"gen_ai.system\";\nconst GEN_AI_REQUEST_MODEL_ATTRIBUTE = \"gen_ai.request.model\";\nconst GEN_AI_REQUEST_STREAM_ATTRIBUTE = \"gen_ai.request.stream\";\nconst GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE = \"gen_ai.request.temperature\";\nconst GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE = \"gen_ai.request.max_tokens\";\nconst GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE = \"gen_ai.request.frequency_penalty\";\nconst GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE = \"gen_ai.request.presence_penalty\";\nconst GEN_AI_REQUEST_TOP_P_ATTRIBUTE = \"gen_ai.request.top_p\";\nconst GEN_AI_REQUEST_TOP_K_ATTRIBUTE = \"gen_ai.request.top_k\";\nconst GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE = \"gen_ai.request.encoding_format\";\nconst GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE = \"gen_ai.request.dimensions\";\nconst GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE = \"gen_ai.response.finish_reasons\";\nconst GEN_AI_RESPONSE_MODEL_ATTRIBUTE = \"gen_ai.response.model\";\nconst GEN_AI_RESPONSE_ID_ATTRIBUTE = \"gen_ai.response.id\";\nconst GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE = \"gen_ai.response.stop_reason\";\nconst GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE = \"gen_ai.usage.input_tokens\";\nconst GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE = \"gen_ai.usage.output_tokens\";\nconst GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE = \"gen_ai.usage.total_tokens\";\nconst GEN_AI_OPERATION_NAME_ATTRIBUTE = \"gen_ai.operation.name\";\nconst GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE = \"sentry.sdk_meta.gen_ai.input.messages.original_length\";\nconst GEN_AI_INPUT_MESSAGES_ATTRIBUTE = \"gen_ai.input.messages\";\nconst GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE = \"gen_ai.output.messages\";\nconst GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE = \"gen_ai.system_instructions\";\nconst GEN_AI_RESPONSE_TEXT_ATTRIBUTE = \"gen_ai.response.text\";\nconst GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE = \"gen_ai.request.available_tools\";\nconst GEN_AI_RESPONSE_STREAMING_ATTRIBUTE = \"gen_ai.response.streaming\";\nconst GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE = \"gen_ai.response.tool_calls\";\nconst GEN_AI_AGENT_NAME_ATTRIBUTE = \"gen_ai.agent.name\";\nconst GEN_AI_PIPELINE_NAME_ATTRIBUTE = \"gen_ai.pipeline.name\";\nconst GEN_AI_CONVERSATION_ID_ATTRIBUTE = \"gen_ai.conversation.id\";\nconst GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE = \"gen_ai.usage.cache_creation_input_tokens\";\nconst GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE = \"gen_ai.usage.cache_read_input_tokens\";\nconst GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE = \"gen_ai.usage.input_tokens.cache_write\";\nconst GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE = \"gen_ai.usage.input_tokens.cached\";\nconst GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE = \"gen_ai.invoke_agent\";\nconst GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE = \"gen_ai.embeddings.input\";\nconst GEN_AI_EMBEDDINGS_OPERATION_ATTRIBUTE = \"gen_ai.embeddings\";\nconst GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE = \"gen_ai.execute_tool\";\nconst GEN_AI_TOOL_NAME_ATTRIBUTE = \"gen_ai.tool.name\";\nconst GEN_AI_TOOL_CALL_ID_ATTRIBUTE = \"gen_ai.tool.call.id\";\nconst GEN_AI_TOOL_TYPE_ATTRIBUTE = \"gen_ai.tool.type\";\nconst GEN_AI_TOOL_INPUT_ATTRIBUTE = \"gen_ai.tool.input\";\nconst GEN_AI_TOOL_OUTPUT_ATTRIBUTE = \"gen_ai.tool.output\";\nconst GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE = \"gen_ai.tool.description\";\n\nexport { GEN_AI_AGENT_NAME_ATTRIBUTE, GEN_AI_CONVERSATION_ID_ATTRIBUTE, GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_EMBEDDINGS_OPERATION_ATTRIBUTE, GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE, GEN_AI_PIPELINE_NAME_ATTRIBUTE, GEN_AI_PROMPT_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE, GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_K_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE, GEN_AI_RESPONSE_STREAMING_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_TOOL_CALL_ID_ATTRIBUTE, GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_TOOL_OUTPUT_ATTRIBUTE, GEN_AI_TOOL_TYPE_ATTRIBUTE, GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE };\n//# sourceMappingURL=gen-ai-attributes.js.map\n", + "function isContentMedia(part) {\n if (!part || typeof part !== \"object\") return false;\n return isContentMediaSource(part) || hasInlineData(part) || hasImageUrl(part) || hasInputAudio(part) || hasFileData(part) || hasMediaTypeData(part) || hasVercelFileData(part) || hasVercelImageData(part) || hasBlobOrBase64Type(part) || hasB64Json(part) || hasImageGenerationResult(part) || hasDataUri(part);\n}\nfunction hasImageUrl(part) {\n if (!(\"image_url\" in part)) return false;\n if (typeof part.image_url === \"string\") return part.image_url.startsWith(\"data:\");\n return hasNestedImageUrl(part);\n}\nfunction hasNestedImageUrl(part) {\n return \"image_url\" in part && !!part.image_url && typeof part.image_url === \"object\" && \"url\" in part.image_url && typeof part.image_url.url === \"string\" && part.image_url.url.startsWith(\"data:\");\n}\nfunction isContentMediaSource(part) {\n return \"type\" in part && typeof part.type === \"string\" && \"source\" in part && isContentMedia(part.source);\n}\nfunction hasInlineData(part) {\n return \"inlineData\" in part && !!part.inlineData && typeof part.inlineData === \"object\" && \"data\" in part.inlineData && typeof part.inlineData.data === \"string\";\n}\nfunction hasInputAudio(part) {\n return \"type\" in part && part.type === \"input_audio\" && \"input_audio\" in part && !!part.input_audio && typeof part.input_audio === \"object\" && \"data\" in part.input_audio && typeof part.input_audio.data === \"string\";\n}\nfunction hasFileData(part) {\n return \"type\" in part && part.type === \"file\" && \"file\" in part && !!part.file && typeof part.file === \"object\" && \"file_data\" in part.file && typeof part.file.file_data === \"string\";\n}\nfunction hasMediaTypeData(part) {\n return \"media_type\" in part && typeof part.media_type === \"string\" && \"data\" in part;\n}\nfunction hasVercelFileData(part) {\n return \"type\" in part && part.type === \"file\" && \"mediaType\" in part && typeof part.mediaType === \"string\" && \"data\" in part && typeof part.data === \"string\" && // Only strip base64/binary data, not HTTP/HTTPS URLs which should be preserved as references\n !part.data.startsWith(\"http://\") && !part.data.startsWith(\"https://\");\n}\nfunction hasVercelImageData(part) {\n return \"type\" in part && part.type === \"image\" && \"image\" in part && typeof part.image === \"string\" && // Only strip base64/data URIs, not HTTP/HTTPS URLs which should be preserved as references\n !part.image.startsWith(\"http://\") && !part.image.startsWith(\"https://\");\n}\nfunction hasBlobOrBase64Type(part) {\n return \"type\" in part && (part.type === \"blob\" || part.type === \"base64\");\n}\nfunction hasB64Json(part) {\n return \"b64_json\" in part;\n}\nfunction hasImageGenerationResult(part) {\n return \"type\" in part && \"result\" in part && part.type === \"image_generation\";\n}\nfunction hasDataUri(part) {\n return \"uri\" in part && typeof part.uri === \"string\" && part.uri.startsWith(\"data:\");\n}\nconst REMOVED_STRING = \"[Blob substitute]\";\nconst MEDIA_FIELDS = [\"image_url\", \"data\", \"content\", \"b64_json\", \"result\", \"uri\", \"image\"];\nfunction stripInlineMediaFromSingleMessage(part) {\n const strip = { ...part };\n if (isContentMedia(strip.source)) {\n strip.source = stripInlineMediaFromSingleMessage(strip.source);\n }\n if (hasInlineData(part)) {\n strip.inlineData = { ...part.inlineData, data: REMOVED_STRING };\n }\n if (hasNestedImageUrl(part)) {\n strip.image_url = { ...part.image_url, url: REMOVED_STRING };\n }\n if (hasInputAudio(part)) {\n strip.input_audio = { ...part.input_audio, data: REMOVED_STRING };\n }\n if (hasFileData(part)) {\n strip.file = { ...part.file, file_data: REMOVED_STRING };\n }\n for (const field of MEDIA_FIELDS) {\n if (typeof strip[field] === \"string\") strip[field] = REMOVED_STRING;\n }\n return strip;\n}\n\nexport { isContentMedia, stripInlineMediaFromSingleMessage };\n//# sourceMappingURL=mediaStripping.js.map\n", + "import { isContentMedia, stripInlineMediaFromSingleMessage } from './mediaStripping.js';\n\nconst DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT = 2e4;\nconst utf8Bytes = (text) => {\n return new TextEncoder().encode(text).length;\n};\nconst jsonBytes = (value) => {\n return utf8Bytes(JSON.stringify(value));\n};\nfunction truncateTextByBytes(text, maxBytes) {\n if (utf8Bytes(text) <= maxBytes) {\n return text;\n }\n let low = 0;\n let high = text.length;\n let bestFit = \"\";\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n const candidate = text.slice(0, mid);\n const byteSize = utf8Bytes(candidate);\n if (byteSize <= maxBytes) {\n bestFit = candidate;\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n return bestFit;\n}\nfunction getItemText(item) {\n if (typeof item === \"string\") {\n return item;\n }\n if (\"text\" in item && typeof item.text === \"string\") {\n return item.text;\n }\n return \"\";\n}\nfunction withItemText(item, text) {\n if (typeof item === \"string\") {\n return text;\n }\n return { ...item, text };\n}\nfunction isContentMessage(message) {\n return message !== null && typeof message === \"object\" && \"content\" in message && typeof message.content === \"string\";\n}\nfunction isContentArrayMessage(message) {\n return message !== null && typeof message === \"object\" && \"content\" in message && Array.isArray(message.content);\n}\nfunction isPartsMessage(message) {\n return message !== null && typeof message === \"object\" && \"parts\" in message && Array.isArray(message.parts) && message.parts.length > 0;\n}\nfunction truncateContentMessage(message, maxBytes) {\n const emptyMessage = { ...message, content: \"\" };\n const overhead = jsonBytes(emptyMessage);\n const availableForContent = maxBytes - overhead;\n if (availableForContent <= 0) {\n return [];\n }\n const truncatedContent = truncateTextByBytes(message.content, availableForContent);\n return [{ ...message, content: truncatedContent }];\n}\nfunction getArrayItems(message) {\n if (\"parts\" in message && Array.isArray(message.parts)) {\n return { key: \"parts\", items: message.parts };\n }\n if (\"content\" in message && Array.isArray(message.content)) {\n return { key: \"content\", items: message.content };\n }\n return { key: null, items: [] };\n}\nfunction truncateArrayMessage(message, maxBytes) {\n const { key, items } = getArrayItems(message);\n if (key === null || items.length === 0) {\n return [];\n }\n const emptyItems = items.map((item) => withItemText(item, \"\"));\n const overhead = jsonBytes({ ...message, [key]: emptyItems });\n let remainingBytes = maxBytes - overhead;\n if (remainingBytes <= 0) {\n return [];\n }\n const includedItems = [];\n for (const item of items) {\n const text = getItemText(item);\n const textSize = utf8Bytes(text);\n if (textSize <= remainingBytes) {\n includedItems.push(item);\n remainingBytes -= textSize;\n } else if (includedItems.length === 0) {\n const truncated = truncateTextByBytes(text, remainingBytes);\n if (truncated) {\n includedItems.push(withItemText(item, truncated));\n }\n break;\n } else {\n break;\n }\n }\n if (includedItems.length <= 0) {\n return [];\n } else {\n return [{ ...message, [key]: includedItems }];\n }\n}\nfunction truncateSingleMessage(message, maxBytes) {\n if (!message) return [];\n if (typeof message === \"string\") {\n const truncated = truncateTextByBytes(message, maxBytes);\n return truncated ? [truncated] : [];\n }\n if (typeof message !== \"object\") {\n return [];\n }\n if (isContentMessage(message)) {\n return truncateContentMessage(message, maxBytes);\n }\n if (isContentArrayMessage(message) || isPartsMessage(message)) {\n return truncateArrayMessage(message, maxBytes);\n }\n return [];\n}\nfunction stripInlineMediaFromMessages(messages) {\n const stripped = messages.map((message) => {\n let newMessage = void 0;\n if (!!message && typeof message === \"object\") {\n if (isContentArrayMessage(message)) {\n newMessage = {\n ...message,\n content: stripInlineMediaFromMessages(message.content)\n };\n } else if (\"content\" in message && isContentMedia(message.content)) {\n newMessage = {\n ...message,\n content: stripInlineMediaFromSingleMessage(message.content)\n };\n }\n if (isPartsMessage(message)) {\n newMessage = {\n // might have to strip content AND parts\n ...newMessage ?? message,\n parts: stripInlineMediaFromMessages(message.parts)\n };\n }\n if (isContentMedia(newMessage)) {\n newMessage = stripInlineMediaFromSingleMessage(newMessage);\n } else if (isContentMedia(message)) {\n newMessage = stripInlineMediaFromSingleMessage(message);\n }\n }\n return newMessage ?? message;\n });\n return stripped;\n}\nfunction truncateMessagesByBytes(messages, maxBytes) {\n if (!Array.isArray(messages) || messages.length === 0) {\n return messages;\n }\n const effectiveMaxBytes = maxBytes - 2;\n const lastMessage = messages[messages.length - 1];\n const stripped = stripInlineMediaFromMessages([lastMessage]);\n const strippedMessage = stripped[0];\n const messageBytes = jsonBytes(strippedMessage);\n if (messageBytes <= effectiveMaxBytes) {\n return stripped;\n }\n return truncateSingleMessage(strippedMessage, effectiveMaxBytes);\n}\nfunction truncateGenAiMessages(messages) {\n return truncateMessagesByBytes(messages, DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT);\n}\nfunction truncateGenAiStringInput(input) {\n return truncateTextByBytes(input, DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT);\n}\n\nexport { DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT, truncateGenAiMessages, truncateGenAiStringInput };\n//# sourceMappingURL=messageTruncation.js.map\n", + "import { captureException } from '../../exports.js';\nimport { getClient } from '../../currentScopes.js';\nimport { hasSpanStreamingEnabled } from '../spans/hasSpanStreamingEnabled.js';\nimport { isThenable } from '../../utils/is.js';\nimport { GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_RESPONSE_STREAMING_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE } from './gen-ai-attributes.js';\nimport { truncateGenAiStringInput, truncateGenAiMessages } from './messageTruncation.js';\n\nfunction resolveAIRecordingOptions(options) {\n const genAI = getClient()?.getDataCollectionOptions().genAI;\n return {\n ...options,\n recordInputs: options?.recordInputs ?? genAI?.inputs ?? false,\n recordOutputs: options?.recordOutputs ?? genAI?.outputs ?? false\n };\n}\nfunction shouldEnableTruncation(enableTruncation) {\n if (enableTruncation !== void 0) {\n return enableTruncation;\n }\n const client = getClient();\n if (!client) {\n return true;\n }\n return !hasSpanStreamingEnabled(client) && client.getOptions().streamGenAiSpans === false;\n}\nfunction buildMethodPath(currentPath, prop) {\n return currentPath ? `${currentPath}.${prop}` : prop;\n}\nfunction setTokenUsageAttributes(span, promptTokens, completionTokens, cachedInputTokens, cachedOutputTokens) {\n if (promptTokens !== void 0) {\n span.setAttributes({\n [GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE]: promptTokens\n });\n }\n if (completionTokens !== void 0) {\n span.setAttributes({\n [GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: completionTokens\n });\n }\n if (promptTokens !== void 0 || completionTokens !== void 0 || cachedInputTokens !== void 0 || cachedOutputTokens !== void 0) {\n const totalTokens = (promptTokens ?? 0) + (completionTokens ?? 0) + (cachedInputTokens ?? 0) + (cachedOutputTokens ?? 0);\n span.setAttributes({\n [GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: totalTokens\n });\n }\n}\nfunction endStreamSpan(span, state, recordOutputs) {\n if (!span.isRecording()) {\n return;\n }\n const attrs = {\n [GEN_AI_RESPONSE_STREAMING_ATTRIBUTE]: true\n };\n if (state.responseId) attrs[GEN_AI_RESPONSE_ID_ATTRIBUTE] = state.responseId;\n if (state.responseModel) attrs[GEN_AI_RESPONSE_MODEL_ATTRIBUTE] = state.responseModel;\n if (state.promptTokens !== void 0) attrs[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] = state.promptTokens;\n if (state.completionTokens !== void 0) attrs[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] = state.completionTokens;\n if (state.totalTokens !== void 0) {\n attrs[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE] = state.totalTokens;\n } else if (state.promptTokens !== void 0 || state.completionTokens !== void 0 || state.cacheCreationInputTokens !== void 0 || state.cacheReadInputTokens !== void 0) {\n attrs[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE] = (state.promptTokens ?? 0) + (state.completionTokens ?? 0) + (state.cacheCreationInputTokens ?? 0) + (state.cacheReadInputTokens ?? 0);\n }\n if (state.finishReasons.length) {\n attrs[GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE] = JSON.stringify(state.finishReasons);\n }\n if (recordOutputs && state.responseTexts.length) {\n attrs[GEN_AI_RESPONSE_TEXT_ATTRIBUTE] = state.responseTexts.join(\"\");\n }\n if (recordOutputs && state.toolCalls.length) {\n attrs[GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE] = JSON.stringify(state.toolCalls);\n }\n span.setAttributes(attrs);\n span.end();\n}\nfunction getJsonString(value) {\n if (typeof value === \"string\") {\n return value;\n }\n return JSON.stringify(value);\n}\nfunction getTruncatedJsonString(value) {\n if (typeof value === \"string\") {\n return truncateGenAiStringInput(value);\n }\n if (Array.isArray(value)) {\n const truncatedMessages = truncateGenAiMessages(value);\n return JSON.stringify(truncatedMessages);\n }\n return JSON.stringify(value);\n}\nfunction extractSystemInstructions(messages) {\n if (!Array.isArray(messages)) {\n return { systemInstructions: void 0, filteredMessages: messages };\n }\n const systemMessageIndex = messages.findIndex(\n (msg) => msg && typeof msg === \"object\" && \"role\" in msg && msg.role === \"system\"\n );\n if (systemMessageIndex === -1) {\n return { systemInstructions: void 0, filteredMessages: messages };\n }\n const systemMessage = messages[systemMessageIndex];\n const systemContent = typeof systemMessage.content === \"string\" ? systemMessage.content : systemMessage.content !== void 0 ? JSON.stringify(systemMessage.content) : void 0;\n if (!systemContent) {\n return { systemInstructions: void 0, filteredMessages: messages };\n }\n const systemInstructions = JSON.stringify([{ type: \"text\", content: systemContent }]);\n const filteredMessages = [...messages.slice(0, systemMessageIndex), ...messages.slice(systemMessageIndex + 1)];\n return { systemInstructions, filteredMessages };\n}\nasync function createWithResponseWrapper(originalWithResponse, instrumentedPromise, mechanismType) {\n const safeOriginalWithResponse = originalWithResponse.catch((error) => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: mechanismType\n }\n });\n throw error;\n });\n const instrumentedResult = await instrumentedPromise;\n const originalWrapper = await safeOriginalWithResponse;\n if (originalWrapper && typeof originalWrapper === \"object\" && \"data\" in originalWrapper) {\n return {\n ...originalWrapper,\n data: instrumentedResult\n };\n }\n return instrumentedResult;\n}\nfunction wrapPromiseWithMethods(originalPromiseLike, instrumentedPromise, mechanismType) {\n if (!isThenable(originalPromiseLike)) {\n return instrumentedPromise;\n }\n return new Proxy(originalPromiseLike, {\n get(target, prop) {\n const useInstrumentedPromise = prop in Promise.prototype || prop === Symbol.toStringTag;\n const source = useInstrumentedPromise ? instrumentedPromise : target;\n const value = Reflect.get(source, prop);\n if (prop === \"withResponse\" && typeof value === \"function\") {\n return function wrappedWithResponse() {\n const originalWithResponse = value.call(target);\n return createWithResponseWrapper(originalWithResponse, instrumentedPromise, mechanismType);\n };\n }\n return typeof value === \"function\" ? value.bind(source) : value;\n }\n });\n}\n\nexport { buildMethodPath, endStreamSpan, extractSystemInstructions, getJsonString, getTruncatedJsonString, resolveAIRecordingOptions, setTokenUsageAttributes, shouldEnableTruncation, wrapPromiseWithMethods };\n//# sourceMappingURL=utils.js.map\n", + "const toolCallSpanContextMap = /* @__PURE__ */ new Map();\nconst toolDescriptionMap = /* @__PURE__ */ new Map();\nconst SPAN_TO_OPERATION_NAME = /* @__PURE__ */ new Map([\n [\"ai.generateText\", \"invoke_agent\"],\n [\"ai.streamText\", \"invoke_agent\"],\n [\"ai.generateObject\", \"invoke_agent\"],\n [\"ai.streamObject\", \"invoke_agent\"],\n [\"ai.generateText.doGenerate\", \"generate_content\"],\n [\"ai.streamText.doStream\", \"generate_content\"],\n [\"ai.generateObject.doGenerate\", \"generate_content\"],\n [\"ai.streamObject.doStream\", \"generate_content\"],\n [\"ai.embed.doEmbed\", \"embeddings\"],\n [\"ai.embedMany.doEmbed\", \"embeddings\"],\n [\"ai.rerank.doRerank\", \"rerank\"],\n [\"ai.toolCall\", \"execute_tool\"]\n]);\n\nexport { SPAN_TO_OPERATION_NAME, toolCallSpanContextMap, toolDescriptionMap };\n//# sourceMappingURL=constants.js.map\n", + "const OPERATION_NAME_ATTRIBUTE = \"operation.name\";\nconst AI_OPERATION_ID_ATTRIBUTE = \"ai.operationId\";\nconst AI_PROMPT_ATTRIBUTE = \"ai.prompt\";\nconst AI_SCHEMA_ATTRIBUTE = \"ai.schema\";\nconst AI_RESPONSE_OBJECT_ATTRIBUTE = \"ai.response.object\";\nconst AI_VALUES_ATTRIBUTE = \"ai.values\";\nconst AI_RESPONSE_TEXT_ATTRIBUTE = \"ai.response.text\";\nconst AI_RESPONSE_TOOL_CALLS_ATTRIBUTE = \"ai.response.toolCalls\";\nconst AI_RESPONSE_FINISH_REASON_ATTRIBUTE = \"ai.response.finishReason\";\nconst AI_PROMPT_MESSAGES_ATTRIBUTE = \"ai.prompt.messages\";\nconst AI_PROMPT_TOOLS_ATTRIBUTE = \"ai.prompt.tools\";\nconst AI_MODEL_ID_ATTRIBUTE = \"ai.model.id\";\nconst AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE = \"ai.response.providerMetadata\";\nconst AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE = \"ai.usage.cachedInputTokens\";\nconst AI_USAGE_INPUT_TOKEN_DETAILS_ATTRIBUTE_PREFIX = \"ai.usage.inputTokenDetails.\";\nconst AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE = \"ai.telemetry.functionId\";\nconst AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE = \"ai.usage.completionTokens\";\nconst AI_USAGE_PROMPT_TOKENS_ATTRIBUTE = \"ai.usage.promptTokens\";\nconst AI_USAGE_TOKENS_ATTRIBUTE = \"ai.usage.tokens\";\nconst AI_TOOL_CALL_NAME_ATTRIBUTE = \"ai.toolCall.name\";\nconst AI_TOOL_CALL_ID_ATTRIBUTE = \"ai.toolCall.id\";\nconst AI_TOOL_CALL_ARGS_ATTRIBUTE = \"ai.toolCall.args\";\nconst AI_TOOL_CALL_RESULT_ATTRIBUTE = \"ai.toolCall.result\";\n\nexport { AI_MODEL_ID_ATTRIBUTE, AI_OPERATION_ID_ATTRIBUTE, AI_PROMPT_ATTRIBUTE, AI_PROMPT_MESSAGES_ATTRIBUTE, AI_PROMPT_TOOLS_ATTRIBUTE, AI_RESPONSE_FINISH_REASON_ATTRIBUTE, AI_RESPONSE_OBJECT_ATTRIBUTE, AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE, AI_RESPONSE_TEXT_ATTRIBUTE, AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, AI_SCHEMA_ATTRIBUTE, AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE, AI_TOOL_CALL_ARGS_ATTRIBUTE, AI_TOOL_CALL_ID_ATTRIBUTE, AI_TOOL_CALL_NAME_ATTRIBUTE, AI_TOOL_CALL_RESULT_ATTRIBUTE, AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE, AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, AI_USAGE_INPUT_TOKEN_DETAILS_ATTRIBUTE_PREFIX, AI_USAGE_PROMPT_TOKENS_ATTRIBUTE, AI_USAGE_TOKENS_ATTRIBUTE, AI_VALUES_ATTRIBUTE, OPERATION_NAME_ATTRIBUTE };\n//# sourceMappingURL=vercel-ai-attributes.js.map\n", + "import { GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { extractSystemInstructions, getTruncatedJsonString, getJsonString } from '../ai/utils.js';\nimport { toolCallSpanContextMap } from './constants.js';\nimport { AI_PROMPT_ATTRIBUTE, AI_PROMPT_MESSAGES_ATTRIBUTE } from './vercel-ai-attributes.js';\n\nfunction accumulateTokensForParent(span, tokenAccumulator) {\n const parentSpanId = span.parent_span_id;\n if (!parentSpanId) {\n return;\n }\n const inputTokens = span.data[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE];\n const outputTokens = span.data[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE];\n if (typeof inputTokens === \"number\" || typeof outputTokens === \"number\") {\n const existing = tokenAccumulator.get(parentSpanId) || { inputTokens: 0, outputTokens: 0 };\n if (typeof inputTokens === \"number\") {\n existing.inputTokens += inputTokens;\n }\n if (typeof outputTokens === \"number\") {\n existing.outputTokens += outputTokens;\n }\n tokenAccumulator.set(parentSpanId, existing);\n }\n}\nfunction applyAccumulatedTokens(spanOrTrace, tokenAccumulator) {\n const accumulated = tokenAccumulator.get(spanOrTrace.span_id);\n if (!accumulated || !spanOrTrace.data) {\n return;\n }\n if (accumulated.inputTokens > 0) {\n spanOrTrace.data[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] = accumulated.inputTokens;\n }\n if (accumulated.outputTokens > 0) {\n spanOrTrace.data[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] = accumulated.outputTokens;\n }\n if (accumulated.inputTokens > 0 || accumulated.outputTokens > 0) {\n spanOrTrace.data[\"gen_ai.usage.total_tokens\"] = accumulated.inputTokens + accumulated.outputTokens;\n }\n}\nfunction buildToolDescriptionMap(spans) {\n const toolDescriptions = /* @__PURE__ */ new Map();\n for (const span of spans) {\n const availableTools = span.data[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE];\n if (typeof availableTools !== \"string\") {\n continue;\n }\n try {\n const tools = JSON.parse(availableTools);\n for (const tool of tools) {\n if (tool.name && tool.description && !toolDescriptions.has(tool.name)) {\n toolDescriptions.set(tool.name, tool.description);\n }\n }\n } catch {\n }\n }\n return toolDescriptions;\n}\nfunction applyToolDescriptionsAndTokens(spans, tokenAccumulator) {\n const toolDescriptions = buildToolDescriptionMap(spans);\n for (const span of spans) {\n if (span.op === \"gen_ai.execute_tool\") {\n const toolName = span.data[GEN_AI_TOOL_NAME_ATTRIBUTE];\n if (typeof toolName === \"string\") {\n const description = toolDescriptions.get(toolName);\n if (description) {\n span.data[GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE] = description;\n }\n }\n }\n if (span.op === \"gen_ai.invoke_agent\") {\n applyAccumulatedTokens(span, tokenAccumulator);\n }\n }\n}\nfunction _INTERNAL_getSpanContextForToolCallId(toolCallId) {\n return toolCallSpanContextMap.get(toolCallId);\n}\nfunction _INTERNAL_cleanupToolCallSpanContext(toolCallId) {\n toolCallSpanContextMap.delete(toolCallId);\n}\nfunction convertAvailableToolsToJsonString(tools) {\n const toolObjects = tools.map((tool) => {\n if (typeof tool === \"string\") {\n try {\n return JSON.parse(tool);\n } catch {\n return tool;\n }\n }\n return tool;\n });\n return JSON.stringify(toolObjects);\n}\nfunction filterMessagesArray(input) {\n return input.filter(\n (m) => !!m && typeof m === \"object\" && \"role\" in m && \"content\" in m\n );\n}\nfunction convertUserInputToMessagesFormat(userInput) {\n try {\n const p = JSON.parse(userInput);\n if (!!p && typeof p === \"object\") {\n let { messages } = p;\n const { prompt, system } = p;\n const result = [];\n if (typeof system === \"string\") {\n result.push({ role: \"system\", content: system });\n }\n if (typeof messages === \"string\") {\n try {\n messages = JSON.parse(messages);\n } catch {\n }\n }\n if (Array.isArray(messages)) {\n result.push(...filterMessagesArray(messages));\n return result;\n }\n if (Array.isArray(prompt)) {\n result.push(...filterMessagesArray(prompt));\n return result;\n }\n if (typeof prompt === \"string\") {\n result.push({ role: \"user\", content: prompt });\n }\n if (result.length > 0) {\n return result;\n }\n }\n } catch {\n }\n return [];\n}\nfunction requestMessagesFromPrompt(span, attributes, enableTruncation) {\n if (typeof attributes[AI_PROMPT_ATTRIBUTE] === \"string\" && !attributes[GEN_AI_INPUT_MESSAGES_ATTRIBUTE] && !attributes[AI_PROMPT_MESSAGES_ATTRIBUTE]) {\n const userInput = attributes[AI_PROMPT_ATTRIBUTE];\n const messages = convertUserInputToMessagesFormat(userInput);\n if (messages.length) {\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n const messagesJson = enableTruncation ? getTruncatedJsonString(filteredMessages) : getJsonString(filteredMessages);\n span.setAttributes({\n [AI_PROMPT_ATTRIBUTE]: messagesJson,\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: messagesJson,\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength\n });\n }\n } else if (typeof attributes[AI_PROMPT_MESSAGES_ATTRIBUTE] === \"string\") {\n const originalMessagesJson = attributes[AI_PROMPT_MESSAGES_ATTRIBUTE];\n try {\n const messages = JSON.parse(originalMessagesJson);\n if (Array.isArray(messages)) {\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n const messagesJson = !enableTruncation && filteredMessages === messages ? originalMessagesJson : enableTruncation ? getTruncatedJsonString(filteredMessages) : getJsonString(filteredMessages);\n span.setAttributes({\n [AI_PROMPT_MESSAGES_ATTRIBUTE]: messagesJson,\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: messagesJson,\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength\n });\n }\n } catch {\n }\n }\n}\n\nexport { _INTERNAL_cleanupToolCallSpanContext, _INTERNAL_getSpanContextForToolCallId, accumulateTokensForParent, applyAccumulatedTokens, applyToolDescriptionsAndTokens, convertAvailableToolsToJsonString, convertUserInputToMessagesFormat, requestMessagesFromPrompt };\n//# sourceMappingURL=utils.js.map\n", + "import { getClient } from '../../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP } from '../../semanticAttributes.js';\nimport { shouldEnableTruncation } from '../ai/utils.js';\nimport { spanToJSON } from '../../utils/spanUtils.js';\nimport { GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE, GEN_AI_CONVERSATION_ID_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_TOOL_CALL_ID_ATTRIBUTE, GEN_AI_TOOL_TYPE_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE, GEN_AI_TOOL_OUTPUT_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { toolDescriptionMap, toolCallSpanContextMap, SPAN_TO_OPERATION_NAME } from './constants.js';\nimport { hasSpanStreamingEnabled } from '../spans/hasSpanStreamingEnabled.js';\nimport { accumulateTokensForParent, applyToolDescriptionsAndTokens, applyAccumulatedTokens, requestMessagesFromPrompt, convertAvailableToolsToJsonString } from './utils.js';\nimport { AI_TOOL_CALL_NAME_ATTRIBUTE, AI_TOOL_CALL_ID_ATTRIBUTE, AI_OPERATION_ID_ATTRIBUTE, AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE, AI_MODEL_ID_ATTRIBUTE, AI_PROMPT_TOOLS_ATTRIBUTE, AI_USAGE_INPUT_TOKEN_DETAILS_ATTRIBUTE_PREFIX, OPERATION_NAME_ATTRIBUTE, AI_VALUES_ATTRIBUTE, AI_RESPONSE_TEXT_ATTRIBUTE, AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, AI_RESPONSE_FINISH_REASON_ATTRIBUTE, AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE, AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, AI_USAGE_PROMPT_TOKENS_ATTRIBUTE, AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE, AI_USAGE_TOKENS_ATTRIBUTE, AI_PROMPT_MESSAGES_ATTRIBUTE, AI_RESPONSE_OBJECT_ATTRIBUTE, AI_TOOL_CALL_ARGS_ATTRIBUTE, AI_TOOL_CALL_RESULT_ATTRIBUTE, AI_SCHEMA_ATTRIBUTE } from './vercel-ai-attributes.js';\n\nfunction onVercelAiSpanStart(span) {\n const { data: attributes, description: name } = spanToJSON(span);\n if (!name) {\n return;\n }\n if (attributes[AI_TOOL_CALL_NAME_ATTRIBUTE] && attributes[AI_TOOL_CALL_ID_ATTRIBUTE] && name === \"ai.toolCall\") {\n processToolCallSpan(span, attributes);\n return;\n }\n if (!attributes[AI_OPERATION_ID_ATTRIBUTE] && !name.startsWith(\"ai.\")) {\n return;\n }\n const client = getClient();\n const integration = client?.getIntegrationByName(\"VercelAI\");\n const enableTruncation = shouldEnableTruncation(integration?.options?.enableTruncation);\n processGenerateSpan(span, name, attributes, enableTruncation);\n}\nfunction vercelAiEventProcessor(event) {\n if (event.type === \"transaction\" && event.spans) {\n const tokenAccumulator = /* @__PURE__ */ new Map();\n for (const span of event.spans) {\n processEndedVercelAiSpan(span);\n accumulateTokensForParent(span, tokenAccumulator);\n }\n applyToolDescriptionsAndTokens(event.spans, tokenAccumulator);\n const trace = event.contexts?.trace;\n if (trace?.op === \"gen_ai.invoke_agent\") {\n applyAccumulatedTokens(trace, tokenAccumulator);\n }\n }\n return event;\n}\nfunction normalizeFinishReason(finishReason) {\n if (typeof finishReason !== \"string\") {\n return \"stop\";\n }\n switch (finishReason) {\n case \"tool-calls\":\n return \"tool_call\";\n case \"stop\":\n case \"length\":\n case \"content_filter\":\n case \"error\":\n return finishReason;\n default:\n return finishReason;\n }\n}\nfunction buildOutputMessages(attributes) {\n const responseText = attributes[AI_RESPONSE_TEXT_ATTRIBUTE];\n const responseToolCalls = attributes[AI_RESPONSE_TOOL_CALLS_ATTRIBUTE];\n const finishReason = attributes[AI_RESPONSE_FINISH_REASON_ATTRIBUTE];\n if (responseText == null && responseToolCalls == null) {\n return;\n }\n const parts = [];\n if (typeof responseText === \"string\" && responseText.length > 0) {\n parts.push({\n type: \"text\",\n content: responseText\n });\n }\n if (responseToolCalls != null) {\n try {\n const toolCalls = typeof responseToolCalls === \"string\" ? JSON.parse(responseToolCalls) : responseToolCalls;\n if (Array.isArray(toolCalls)) {\n for (const toolCall of toolCalls) {\n const args = toolCall.input ?? toolCall.args;\n parts.push({\n type: \"tool_call\",\n id: toolCall.toolCallId,\n name: toolCall.toolName,\n // Handle undefined args: JSON.stringify(undefined) returns undefined, not a string,\n // which would cause the property to be omitted from the final JSON output\n arguments: typeof args === \"string\" ? args : JSON.stringify(args ?? {})\n });\n }\n delete attributes[AI_RESPONSE_TOOL_CALLS_ATTRIBUTE];\n }\n } catch {\n }\n }\n if (parts.length > 0) {\n const outputMessage = {\n role: \"assistant\",\n parts,\n finish_reason: normalizeFinishReason(finishReason)\n };\n attributes[GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE] = JSON.stringify([outputMessage]);\n delete attributes[AI_RESPONSE_TEXT_ATTRIBUTE];\n }\n}\nfunction processVercelAiSpanAttributes(attributes) {\n renameAttributeKey(attributes, AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, AI_USAGE_PROMPT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE);\n renameAttributeKey(attributes, \"ai.usage.inputTokens\", GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, \"ai.usage.outputTokens\", GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, AI_USAGE_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, \"ai.response.avgOutputTokensPerSecond\", \"ai.response.avgCompletionTokensPerSecond\");\n const inputTokensAreCacheInclusive = Object.keys(attributes).some(\n (key) => key.startsWith(AI_USAGE_INPUT_TOKEN_DETAILS_ATTRIBUTE_PREFIX)\n );\n if (!inputTokensAreCacheInclusive && typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] === \"number\" && typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE] === \"number\") {\n attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] = attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] + attributes[GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE];\n }\n if (typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] === \"number\") {\n const outputTokens = typeof attributes[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] === \"number\" ? attributes[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] : 0;\n attributes[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE] = outputTokens + attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE];\n }\n if (attributes[AI_PROMPT_TOOLS_ATTRIBUTE] && Array.isArray(attributes[AI_PROMPT_TOOLS_ATTRIBUTE])) {\n attributes[AI_PROMPT_TOOLS_ATTRIBUTE] = convertAvailableToolsToJsonString(\n attributes[AI_PROMPT_TOOLS_ATTRIBUTE]\n );\n }\n if (attributes[OPERATION_NAME_ATTRIBUTE]) {\n const rawOperationName = attributes[AI_OPERATION_ID_ATTRIBUTE] ? attributes[AI_OPERATION_ID_ATTRIBUTE] : attributes[OPERATION_NAME_ATTRIBUTE];\n const operationName = SPAN_TO_OPERATION_NAME.get(rawOperationName) ?? rawOperationName;\n attributes[GEN_AI_OPERATION_NAME_ATTRIBUTE] = operationName;\n delete attributes[OPERATION_NAME_ATTRIBUTE];\n }\n renameAttributeKey(attributes, AI_PROMPT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE);\n buildOutputMessages(attributes);\n renameAttributeKey(attributes, AI_RESPONSE_OBJECT_ATTRIBUTE, \"gen_ai.response.object\");\n renameAttributeKey(attributes, AI_PROMPT_TOOLS_ATTRIBUTE, \"gen_ai.request.available_tools\");\n renameAttributeKey(attributes, AI_TOOL_CALL_ARGS_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE);\n renameAttributeKey(attributes, AI_TOOL_CALL_RESULT_ATTRIBUTE, GEN_AI_TOOL_OUTPUT_ATTRIBUTE);\n renameAttributeKey(attributes, AI_SCHEMA_ATTRIBUTE, \"gen_ai.request.schema\");\n renameAttributeKey(attributes, AI_MODEL_ID_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE);\n if (Array.isArray(attributes[AI_VALUES_ATTRIBUTE])) {\n const parsed = attributes[AI_VALUES_ATTRIBUTE].map((v) => {\n try {\n return JSON.parse(v);\n } catch {\n return v;\n }\n });\n attributes[GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE] = parsed.length === 1 ? parsed[0] : JSON.stringify(parsed);\n }\n addProviderMetadataToAttributes(attributes);\n for (const key of Object.keys(attributes)) {\n if (Array.isArray(attributes[key])) {\n attributes[key] = JSON.stringify(attributes[key]);\n }\n if (key.startsWith(\"ai.\")) {\n renameAttributeKey(attributes, key, `vercel.${key}`);\n }\n }\n}\nfunction processEndedVercelAiSpan(span) {\n const { data: attributes, origin } = span;\n if (origin !== \"auto.vercelai.otel\") {\n return;\n }\n if (span.status && span.status !== \"ok\") {\n span.status = \"internal_error\";\n }\n processVercelAiSpanAttributes(attributes);\n}\nfunction processVercelAiStreamedSpan(span) {\n const attributes = span.attributes;\n if (attributes?.[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] !== \"auto.vercelai.otel\") {\n return;\n }\n processVercelAiSpanAttributes(attributes);\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] === \"gen_ai.execute_tool\" && span.parent_span_id) {\n const descriptions = toolDescriptionMap.get(span.parent_span_id);\n if (descriptions) {\n const toolName = attributes[GEN_AI_TOOL_NAME_ATTRIBUTE];\n if (typeof toolName === \"string\") {\n const desc = descriptions.get(toolName);\n if (desc) {\n attributes[GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE] = desc;\n }\n }\n }\n }\n toolDescriptionMap.delete(span.span_id);\n}\nfunction renameAttributeKey(attributes, oldKey, newKey) {\n if (attributes[oldKey] != null) {\n attributes[newKey] = attributes[oldKey];\n delete attributes[oldKey];\n }\n}\nfunction processToolCallSpan(span, attributes) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, \"auto.vercelai.otel\");\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, \"gen_ai.execute_tool\");\n span.setAttribute(GEN_AI_OPERATION_NAME_ATTRIBUTE, \"execute_tool\");\n renameAttributeKey(attributes, AI_TOOL_CALL_NAME_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE);\n renameAttributeKey(attributes, AI_TOOL_CALL_ID_ATTRIBUTE, GEN_AI_TOOL_CALL_ID_ATTRIBUTE);\n const toolCallId = attributes[GEN_AI_TOOL_CALL_ID_ATTRIBUTE];\n if (typeof toolCallId === \"string\") {\n toolCallSpanContextMap.set(toolCallId, span.spanContext());\n }\n if (!attributes[GEN_AI_TOOL_TYPE_ATTRIBUTE]) {\n span.setAttribute(GEN_AI_TOOL_TYPE_ATTRIBUTE, \"function\");\n }\n const toolName = attributes[GEN_AI_TOOL_NAME_ATTRIBUTE];\n if (toolName) {\n span.updateName(`execute_tool ${toolName}`);\n }\n}\nfunction processGenerateSpan(span, name, attributes, enableTruncation) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, \"auto.vercelai.otel\");\n const nameWthoutAi = name.replace(\"ai.\", \"\");\n span.setAttribute(\"ai.pipeline.name\", nameWthoutAi);\n span.updateName(nameWthoutAi);\n const functionId = attributes[AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE];\n if (functionId && typeof functionId === \"string\") {\n span.setAttribute(\"gen_ai.function_id\", functionId);\n }\n requestMessagesFromPrompt(span, attributes, enableTruncation);\n if (attributes[AI_MODEL_ID_ATTRIBUTE] && !attributes[GEN_AI_RESPONSE_MODEL_ATTRIBUTE]) {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, attributes[AI_MODEL_ID_ATTRIBUTE]);\n }\n span.setAttribute(\"ai.streaming\", name.includes(\"stream\"));\n const operationName = SPAN_TO_OPERATION_NAME.get(name);\n if (operationName) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, `gen_ai.${operationName}`);\n } else if (name.startsWith(\"ai.stream\")) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, \"ai.run\");\n }\n if (operationName === \"invoke_agent\") {\n if (functionId && typeof functionId === \"string\") {\n span.updateName(`invoke_agent ${functionId}`);\n } else {\n span.updateName(\"invoke_agent\");\n }\n return;\n }\n const modelId = attributes[AI_MODEL_ID_ATTRIBUTE];\n if (modelId && operationName) {\n span.updateName(`${operationName} ${modelId}`);\n }\n const client = getClient();\n if (client && hasSpanStreamingEnabled(client) && attributes[AI_PROMPT_TOOLS_ATTRIBUTE] && Array.isArray(attributes[AI_PROMPT_TOOLS_ATTRIBUTE])) {\n const descriptions = /* @__PURE__ */ new Map();\n for (const toolStr of attributes[AI_PROMPT_TOOLS_ATTRIBUTE]) {\n try {\n const parsed = typeof toolStr === \"string\" ? JSON.parse(toolStr) : toolStr;\n if (parsed?.name && parsed?.description) {\n descriptions.set(parsed.name, parsed.description);\n }\n } catch {\n }\n }\n if (descriptions.size > 0) {\n const parentSpanId = spanToJSON(span).parent_span_id;\n if (parentSpanId) {\n toolDescriptionMap.set(parentSpanId, descriptions);\n }\n }\n }\n}\nfunction addVercelAiProcessors(client) {\n client.on(\"spanStart\", onVercelAiSpanStart);\n client.addEventProcessor(Object.assign(vercelAiEventProcessor, { id: \"VercelAiEventProcessor\" }));\n client.on(\"processSpan\", (span) => {\n processVercelAiStreamedSpan(span);\n });\n}\nfunction getProviderMetadataAttributes(providerMetadata) {\n const attributes = {};\n if (!providerMetadata || typeof providerMetadata !== \"object\") {\n return attributes;\n }\n const metadata = providerMetadata;\n const openaiMetadata = metadata.openai ?? metadata.azure;\n if (openaiMetadata) {\n setAttributeIfDefined(attributes, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE, openaiMetadata.cachedPromptTokens);\n setAttributeIfDefined(attributes, \"gen_ai.usage.output_tokens.reasoning\", openaiMetadata.reasoningTokens);\n setAttributeIfDefined(\n attributes,\n \"gen_ai.usage.output_tokens.prediction_accepted\",\n openaiMetadata.acceptedPredictionTokens\n );\n setAttributeIfDefined(\n attributes,\n \"gen_ai.usage.output_tokens.prediction_rejected\",\n openaiMetadata.rejectedPredictionTokens\n );\n setAttributeIfDefined(attributes, GEN_AI_CONVERSATION_ID_ATTRIBUTE, openaiMetadata.responseId);\n }\n if (metadata.anthropic) {\n const cachedInputTokens = metadata.anthropic.usage?.cache_read_input_tokens ?? metadata.anthropic.cacheReadInputTokens;\n setAttributeIfDefined(attributes, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE, cachedInputTokens);\n const cacheWriteInputTokens = metadata.anthropic.usage?.cache_creation_input_tokens ?? metadata.anthropic.cacheCreationInputTokens;\n setAttributeIfDefined(attributes, GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE, cacheWriteInputTokens);\n }\n if (metadata.bedrock?.usage) {\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE,\n metadata.bedrock.usage.cacheReadInputTokens\n );\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE,\n metadata.bedrock.usage.cacheWriteInputTokens\n );\n }\n if (metadata.deepseek) {\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE,\n metadata.deepseek.promptCacheHitTokens\n );\n setAttributeIfDefined(attributes, \"gen_ai.usage.input_tokens.cache_miss\", metadata.deepseek.promptCacheMissTokens);\n }\n return attributes;\n}\nfunction addProviderMetadataToAttributes(attributes) {\n const providerMetadata = attributes[AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE];\n if (!providerMetadata) {\n return;\n }\n try {\n const derived = getProviderMetadataAttributes(JSON.parse(providerMetadata));\n for (const [key, value] of Object.entries(derived)) {\n if (key === GEN_AI_CONVERSATION_ID_ATTRIBUTE && attributes[key]) {\n continue;\n }\n attributes[key] = value;\n }\n } catch {\n }\n}\nfunction setAttributeIfDefined(attributes, key, value) {\n if (value != null) {\n attributes[key] = value;\n }\n}\n\nexport { addVercelAiProcessors, getProviderMetadataAttributes, processVercelAiSpanAttributes };\n//# sourceMappingURL=index.js.map\n", + "const OPENAI_INTEGRATION_NAME = \"OpenAI\";\nconst OPENAI_METHOD_REGISTRY = {\n \"responses.create\": { operation: \"chat\" },\n \"chat.completions.create\": { operation: \"chat\" },\n \"embeddings.create\": { operation: \"embeddings\" },\n // Conversations API - for conversation state management\n // https://platform.openai.com/docs/guides/conversation-state\n \"conversations.create\": { operation: \"chat\" }\n};\nconst RESPONSES_TOOL_CALL_EVENT_TYPES = [\n \"response.output_item.added\",\n \"response.function_call_arguments.delta\",\n \"response.function_call_arguments.done\",\n \"response.output_item.done\"\n];\nconst RESPONSE_EVENT_TYPES = [\n \"response.created\",\n \"response.in_progress\",\n \"response.failed\",\n \"response.completed\",\n \"response.incomplete\",\n \"response.queued\",\n \"response.output_text.delta\",\n ...RESPONSES_TOOL_CALL_EVENT_TYPES\n];\n\nexport { OPENAI_INTEGRATION_NAME, OPENAI_METHOD_REGISTRY, RESPONSES_TOOL_CALL_EVENT_TYPES, RESPONSE_EVENT_TYPES };\n//# sourceMappingURL=constants.js.map\n", + "import { GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE, GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE, GEN_AI_CONVERSATION_ID_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\n\nfunction isResponsesApiStreamEvent(event) {\n return event !== null && typeof event === \"object\" && \"type\" in event && typeof event.type === \"string\" && event.type.startsWith(\"response.\");\n}\nfunction isChatCompletionChunk(event) {\n return event !== null && typeof event === \"object\" && \"object\" in event && event.object === \"chat.completion.chunk\";\n}\nfunction addResponseAttributes(span, result, recordOutputs) {\n if (!result || typeof result !== \"object\") return;\n const response = result;\n const attrs = {};\n if (typeof response.id === \"string\") {\n attrs[GEN_AI_RESPONSE_ID_ATTRIBUTE] = response.id;\n }\n if (typeof response.model === \"string\") {\n attrs[GEN_AI_RESPONSE_MODEL_ATTRIBUTE] = response.model;\n }\n if (response.object === \"conversation\" && typeof response.id === \"string\") {\n attrs[GEN_AI_CONVERSATION_ID_ATTRIBUTE] = response.id;\n }\n if (response.usage && typeof response.usage === \"object\") {\n const usage = response.usage;\n const inputTokens = usage.prompt_tokens ?? usage.input_tokens;\n if (typeof inputTokens === \"number\") {\n attrs[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] = inputTokens;\n }\n const outputTokens = usage.completion_tokens ?? usage.output_tokens;\n if (typeof outputTokens === \"number\") {\n attrs[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] = outputTokens;\n }\n if (typeof usage.total_tokens === \"number\") {\n attrs[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE] = usage.total_tokens;\n }\n }\n if (Array.isArray(response.choices)) {\n const choices = response.choices;\n const finishReasons = choices.map((choice) => choice.finish_reason).filter((reason) => typeof reason === \"string\");\n if (finishReasons.length > 0) {\n attrs[GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE] = JSON.stringify(finishReasons);\n }\n if (recordOutputs) {\n const responseTexts = choices.map((choice) => {\n const message = choice.message;\n return message?.content || \"\";\n });\n attrs[GEN_AI_RESPONSE_TEXT_ATTRIBUTE] = JSON.stringify(responseTexts);\n const toolCalls = choices.map((choice) => {\n const message = choice.message;\n return message?.tool_calls;\n }).filter((calls) => Array.isArray(calls) && calls.length > 0).flat();\n if (toolCalls.length > 0) {\n attrs[GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE] = JSON.stringify(toolCalls);\n }\n }\n }\n if (typeof response.status === \"string\") {\n if (!attrs[GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]) {\n attrs[GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE] = JSON.stringify([response.status]);\n }\n }\n if (recordOutputs) {\n if (typeof response.output_text === \"string\" && !attrs[GEN_AI_RESPONSE_TEXT_ATTRIBUTE]) {\n attrs[GEN_AI_RESPONSE_TEXT_ATTRIBUTE] = response.output_text;\n }\n if (Array.isArray(response.output) && response.output.length > 0 && !attrs[GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]) {\n const functionCalls = response.output.filter(\n (item) => item?.type === \"function_call\"\n );\n if (functionCalls.length > 0) {\n attrs[GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE] = JSON.stringify(functionCalls);\n }\n }\n }\n span.setAttributes(attrs);\n}\nfunction extractConversationId(params) {\n if (\"conversation\" in params && typeof params.conversation === \"string\") {\n return params.conversation;\n }\n if (\"previous_response_id\" in params && typeof params.previous_response_id === \"string\") {\n return params.previous_response_id;\n }\n return void 0;\n}\nfunction extractRequestParameters(params) {\n const attributes = {\n [GEN_AI_REQUEST_MODEL_ATTRIBUTE]: params.model ?? \"unknown\"\n };\n if (\"temperature\" in params) attributes[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = params.temperature;\n if (\"top_p\" in params) attributes[GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = params.top_p;\n if (\"frequency_penalty\" in params) attributes[GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = params.frequency_penalty;\n if (\"presence_penalty\" in params) attributes[GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE] = params.presence_penalty;\n if (\"stream\" in params) attributes[GEN_AI_REQUEST_STREAM_ATTRIBUTE] = params.stream;\n if (\"encoding_format\" in params) attributes[GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE] = params.encoding_format;\n if (\"dimensions\" in params) attributes[GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE] = params.dimensions;\n const conversationId = extractConversationId(params);\n if (conversationId) {\n attributes[GEN_AI_CONVERSATION_ID_ATTRIBUTE] = conversationId;\n }\n return attributes;\n}\n\nexport { addResponseAttributes, extractRequestParameters, isChatCompletionChunk, isResponsesApiStreamEvent };\n//# sourceMappingURL=utils.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { endStreamSpan } from '../ai/utils.js';\nimport { RESPONSE_EVENT_TYPES } from './constants.js';\nimport { isChatCompletionChunk, isResponsesApiStreamEvent } from './utils.js';\n\nfunction processChatCompletionToolCalls(toolCalls, state) {\n for (const toolCall of toolCalls) {\n const index = toolCall.index;\n if (index === void 0 || !toolCall.function) continue;\n if (!(index in state.chatCompletionToolCalls)) {\n state.chatCompletionToolCalls[index] = {\n ...toolCall,\n function: {\n name: toolCall.function.name,\n arguments: toolCall.function.arguments || \"\"\n }\n };\n } else {\n const existingToolCall = state.chatCompletionToolCalls[index];\n if (toolCall.function.arguments && existingToolCall?.function) {\n existingToolCall.function.arguments += toolCall.function.arguments;\n }\n }\n }\n}\nfunction processChatCompletionChunk(chunk, state, recordOutputs) {\n state.responseId = chunk.id ?? state.responseId;\n state.responseModel = chunk.model ?? state.responseModel;\n if (chunk.usage) {\n state.promptTokens = chunk.usage.prompt_tokens;\n state.completionTokens = chunk.usage.completion_tokens;\n state.totalTokens = chunk.usage.total_tokens;\n }\n for (const choice of chunk.choices ?? []) {\n if (recordOutputs) {\n if (choice.delta?.content) {\n state.responseTexts.push(choice.delta.content);\n }\n if (choice.delta?.tool_calls) {\n processChatCompletionToolCalls(choice.delta.tool_calls, state);\n }\n }\n if (choice.finish_reason) {\n state.finishReasons.push(choice.finish_reason);\n }\n }\n}\nfunction processResponsesApiEvent(streamEvent, state, recordOutputs, span) {\n if (!(streamEvent && typeof streamEvent === \"object\")) {\n state.eventTypes.push(\"unknown:non-object\");\n return;\n }\n if (streamEvent instanceof Error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n captureException(streamEvent, {\n mechanism: {\n handled: false,\n type: \"auto.ai.openai.stream-response\"\n }\n });\n return;\n }\n if (!(\"type\" in streamEvent)) return;\n const event = streamEvent;\n if (!RESPONSE_EVENT_TYPES.includes(event.type)) {\n state.eventTypes.push(event.type);\n return;\n }\n if (recordOutputs) {\n if (event.type === \"response.output_item.done\" && \"item\" in event) {\n state.responsesApiToolCalls.push(event.item);\n }\n if (event.type === \"response.output_text.delta\" && \"delta\" in event && event.delta) {\n state.responseTexts.push(event.delta);\n return;\n }\n }\n if (\"response\" in event) {\n const { response } = event;\n state.responseId = response.id ?? state.responseId;\n state.responseModel = response.model ?? state.responseModel;\n if (response.usage) {\n state.promptTokens = response.usage.input_tokens;\n state.completionTokens = response.usage.output_tokens;\n state.totalTokens = response.usage.total_tokens;\n }\n if (response.status) {\n state.finishReasons.push(response.status);\n }\n if (recordOutputs && response.output_text) {\n state.responseTexts.push(response.output_text);\n }\n }\n}\nasync function* instrumentStream(stream, span, recordOutputs) {\n const state = {\n eventTypes: [],\n responseTexts: [],\n finishReasons: [],\n responseId: \"\",\n responseModel: \"\",\n promptTokens: void 0,\n completionTokens: void 0,\n totalTokens: void 0,\n chatCompletionToolCalls: {},\n responsesApiToolCalls: []\n };\n try {\n for await (const event of stream) {\n if (isChatCompletionChunk(event)) {\n processChatCompletionChunk(event, state, recordOutputs);\n } else if (isResponsesApiStreamEvent(event)) {\n processResponsesApiEvent(event, state, recordOutputs, span);\n }\n yield event;\n }\n } finally {\n const allToolCalls = [...Object.values(state.chatCompletionToolCalls), ...state.responsesApiToolCalls];\n endStreamSpan(span, { ...state, toolCalls: allToolCalls }, recordOutputs);\n }\n}\n\nexport { instrumentStream };\n//# sourceMappingURL=streaming.js.map\n", + "import { DEBUG_BUILD } from '../../debug-build.js';\nimport { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { debug } from '../../utils/debug-logger.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpanManual, startSpan } from '../trace.js';\nimport { GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions, shouldEnableTruncation, wrapPromiseWithMethods, buildMethodPath, extractSystemInstructions, getTruncatedJsonString, getJsonString } from '../ai/utils.js';\nimport { OPENAI_METHOD_REGISTRY } from './constants.js';\nimport { instrumentStream } from './streaming.js';\nimport { addResponseAttributes, extractRequestParameters } from './utils.js';\n\nfunction extractAvailableTools(params) {\n const tools = Array.isArray(params.tools) ? params.tools : [];\n const hasWebSearchOptions = params.web_search_options && typeof params.web_search_options === \"object\";\n const webSearchOptions = hasWebSearchOptions ? [{ type: \"web_search_options\", ...params.web_search_options }] : [];\n const availableTools = [...tools, ...webSearchOptions];\n if (availableTools.length === 0) {\n return void 0;\n }\n try {\n return JSON.stringify(availableTools);\n } catch (error) {\n DEBUG_BUILD && debug.error(\"Failed to serialize OpenAI tools:\", error);\n return void 0;\n }\n}\nfunction extractRequestAttributes(args, operationName) {\n const attributes = {\n [GEN_AI_SYSTEM_ATTRIBUTE]: \"openai\",\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: operationName,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.ai.openai\"\n };\n if (args.length > 0 && typeof args[0] === \"object\" && args[0] !== null) {\n const params = args[0];\n const availableTools = extractAvailableTools(params);\n if (availableTools) {\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = availableTools;\n }\n Object.assign(attributes, extractRequestParameters(params));\n } else {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = \"unknown\";\n }\n return attributes;\n}\nfunction addRequestAttributes(span, params, operationName, enableTruncation) {\n if (operationName === \"embeddings\" && \"input\" in params) {\n const input = params.input;\n if (input == null) {\n return;\n }\n if (typeof input === \"string\" && input.length === 0) {\n return;\n }\n if (Array.isArray(input) && input.length === 0) {\n return;\n }\n span.setAttribute(GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, typeof input === \"string\" ? input : JSON.stringify(input));\n return;\n }\n const src = \"input\" in params ? params.input : \"messages\" in params ? params.messages : void 0;\n if (!src) {\n return;\n }\n if (Array.isArray(src) && src.length === 0) {\n return;\n }\n const { systemInstructions, filteredMessages } = extractSystemInstructions(src);\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n span.setAttribute(\n GEN_AI_INPUT_MESSAGES_ATTRIBUTE,\n enableTruncation ? getTruncatedJsonString(filteredMessages) : getJsonString(filteredMessages)\n );\n if (Array.isArray(filteredMessages)) {\n span.setAttribute(GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, filteredMessages.length);\n } else {\n span.setAttribute(GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, 1);\n }\n}\nfunction instrumentMethod(originalMethod, methodPath, instrumentedMethod, context, options) {\n return function instrumentedCall(...args) {\n const operationName = instrumentedMethod.operation || \"unknown\";\n const requestAttributes = extractRequestAttributes(args, operationName);\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] || \"unknown\";\n const params = args[0];\n const isStreamRequested = params && typeof params === \"object\" && params.stream === true;\n const spanConfig = {\n name: `${operationName} ${model}`,\n op: `gen_ai.${operationName}`,\n attributes: requestAttributes\n };\n if (isStreamRequested) {\n let originalResult2;\n const instrumentedPromise2 = startSpanManual(spanConfig, (span) => {\n originalResult2 = originalMethod.apply(context, args);\n if (options.recordInputs && params) {\n addRequestAttributes(span, params, operationName, shouldEnableTruncation(options.enableTruncation));\n }\n return (async () => {\n try {\n const result = await originalResult2;\n return instrumentStream(\n result,\n span,\n options.recordOutputs ?? false\n );\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.openai.stream\",\n data: { function: methodPath }\n }\n });\n span.end();\n throw error;\n }\n })();\n });\n return wrapPromiseWithMethods(originalResult2, instrumentedPromise2, \"auto.ai.openai\");\n }\n let originalResult;\n const instrumentedPromise = startSpan(spanConfig, (span) => {\n originalResult = originalMethod.apply(context, args);\n if (options.recordInputs && params) {\n addRequestAttributes(span, params, operationName, shouldEnableTruncation(options.enableTruncation));\n }\n return originalResult.then(\n (result) => {\n addResponseAttributes(span, result, options.recordOutputs);\n return result;\n },\n (error) => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.openai\",\n data: { function: methodPath }\n }\n });\n throw error;\n }\n );\n });\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, \"auto.ai.openai\");\n };\n}\nfunction createDeepProxy(target, currentPath = \"\", options) {\n return new Proxy(target, {\n get(obj, prop) {\n const value = obj[prop];\n const methodPath = buildMethodPath(currentPath, String(prop));\n const instrumentedMethod = OPENAI_METHOD_REGISTRY[methodPath];\n if (typeof value === \"function\" && instrumentedMethod) {\n return instrumentMethod(\n value,\n methodPath,\n instrumentedMethod,\n obj,\n options\n );\n }\n if (typeof value === \"function\") {\n return value.bind(obj);\n }\n if (value && typeof value === \"object\") {\n return createDeepProxy(value, methodPath, options);\n }\n return value;\n }\n });\n}\nfunction instrumentOpenAiClient(client, options) {\n return createDeepProxy(client, \"\", resolveAIRecordingOptions(options));\n}\n\nexport { instrumentOpenAiClient };\n//# sourceMappingURL=index.js.map\n", + "const ANTHROPIC_AI_INTEGRATION_NAME = \"Anthropic_AI\";\nconst ANTHROPIC_METHOD_REGISTRY = {\n \"messages.create\": { operation: \"chat\" },\n \"messages.stream\": { operation: \"chat\", streaming: true },\n \"messages.countTokens\": { operation: \"chat\" },\n \"models.get\": { operation: \"models\" },\n \"completions.create\": { operation: \"chat\" },\n \"models.retrieve\": { operation: \"models\" },\n \"beta.messages.create\": { operation: \"chat\" }\n};\n\nexport { ANTHROPIC_AI_INTEGRATION_NAME, ANTHROPIC_METHOD_REGISTRY };\n//# sourceMappingURL=constants.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { extractSystemInstructions, getTruncatedJsonString, getJsonString } from '../ai/utils.js';\n\nfunction setMessagesAttribute(span, messages, enableTruncation) {\n if (Array.isArray(messages) && messages.length === 0) {\n return;\n }\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n if (systemInstructions) {\n span.setAttributes({\n [GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE]: systemInstructions\n });\n }\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 1;\n span.setAttributes({\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: enableTruncation ? getTruncatedJsonString(filteredMessages) : getJsonString(filteredMessages),\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength\n });\n}\nconst ANTHROPIC_ERROR_TYPE_TO_SPAN_STATUS = {\n invalid_request_error: \"invalid_argument\",\n authentication_error: \"unauthenticated\",\n permission_error: \"permission_denied\",\n not_found_error: \"not_found\",\n request_too_large: \"failed_precondition\",\n rate_limit_error: \"resource_exhausted\",\n api_error: \"internal_error\",\n overloaded_error: \"unavailable\"\n};\nfunction mapAnthropicErrorToStatusMessage(errorType) {\n if (!errorType) {\n return \"internal_error\";\n }\n return ANTHROPIC_ERROR_TYPE_TO_SPAN_STATUS[errorType] || \"internal_error\";\n}\nfunction handleResponseError(span, response) {\n if (response.error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: mapAnthropicErrorToStatusMessage(response.error.type) });\n captureException(response.error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.anthropic.anthropic_error\"\n }\n });\n }\n}\nfunction messagesFromParams(params) {\n const { system, messages, input } = params;\n const systemMessages = typeof system === \"string\" ? [{ role: \"system\", content: params.system }] : [];\n const inputParamMessages = Array.isArray(input) ? input : input != null ? [input] : void 0;\n const messagesParamMessages = Array.isArray(messages) ? messages : messages != null ? [messages] : [];\n const userMessages = inputParamMessages ?? messagesParamMessages;\n return [...systemMessages, ...userMessages];\n}\n\nexport { handleResponseError, mapAnthropicErrorToStatusMessage, messagesFromParams, setMessagesAttribute };\n//# sourceMappingURL=utils.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { endStreamSpan } from '../ai/utils.js';\nimport { mapAnthropicErrorToStatusMessage } from './utils.js';\n\nfunction isErrorEvent(event, span) {\n if (\"type\" in event && typeof event.type === \"string\") {\n if (event.type === \"error\") {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: mapAnthropicErrorToStatusMessage(event.error?.type) });\n captureException(event.error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.anthropic.anthropic_error\"\n }\n });\n return true;\n }\n }\n return false;\n}\nfunction handleMessageMetadata(event, state) {\n if (event.type === \"message_delta\" && event.usage) {\n if (\"output_tokens\" in event.usage && typeof event.usage.output_tokens === \"number\") {\n state.completionTokens = event.usage.output_tokens;\n }\n }\n if (event.message) {\n const message = event.message;\n if (message.id) state.responseId = message.id;\n if (message.model) state.responseModel = message.model;\n if (message.stop_reason) state.finishReasons.push(message.stop_reason);\n if (message.usage) {\n if (typeof message.usage.input_tokens === \"number\") state.promptTokens = message.usage.input_tokens;\n if (typeof message.usage.cache_creation_input_tokens === \"number\")\n state.cacheCreationInputTokens = message.usage.cache_creation_input_tokens;\n if (typeof message.usage.cache_read_input_tokens === \"number\")\n state.cacheReadInputTokens = message.usage.cache_read_input_tokens;\n }\n }\n}\nfunction handleContentBlockStart(event, state) {\n if (event.type !== \"content_block_start\" || typeof event.index !== \"number\" || !event.content_block) return;\n if (event.content_block.type === \"tool_use\" || event.content_block.type === \"server_tool_use\") {\n state.activeToolBlocks[event.index] = {\n id: event.content_block.id,\n name: event.content_block.name,\n inputJsonParts: []\n };\n }\n}\nfunction handleContentBlockDelta(event, state, recordOutputs) {\n if (event.type !== \"content_block_delta\" || !event.delta) return;\n if (typeof event.index === \"number\" && \"partial_json\" in event.delta && typeof event.delta.partial_json === \"string\") {\n const active = state.activeToolBlocks[event.index];\n if (active) {\n active.inputJsonParts.push(event.delta.partial_json);\n }\n }\n if (recordOutputs && typeof event.delta.text === \"string\") {\n state.responseTexts.push(event.delta.text);\n }\n}\nfunction handleContentBlockStop(event, state) {\n if (event.type !== \"content_block_stop\" || typeof event.index !== \"number\") return;\n const active = state.activeToolBlocks[event.index];\n if (!active) return;\n const raw = active.inputJsonParts.join(\"\");\n let parsedInput;\n try {\n parsedInput = raw ? JSON.parse(raw) : {};\n } catch {\n parsedInput = { __unparsed: raw };\n }\n state.toolCalls.push({\n type: \"tool_use\",\n id: active.id,\n name: active.name,\n input: parsedInput\n });\n delete state.activeToolBlocks[event.index];\n}\nfunction processEvent(event, state, recordOutputs, span) {\n if (!(event && typeof event === \"object\")) {\n return;\n }\n const isError = isErrorEvent(event, span);\n if (isError) return;\n handleMessageMetadata(event, state);\n handleContentBlockStart(event, state);\n handleContentBlockDelta(event, state, recordOutputs);\n handleContentBlockStop(event, state);\n}\nasync function* instrumentAsyncIterableStream(stream, span, recordOutputs) {\n const state = {\n responseTexts: [],\n finishReasons: [],\n responseId: \"\",\n responseModel: \"\",\n promptTokens: void 0,\n completionTokens: void 0,\n cacheCreationInputTokens: void 0,\n cacheReadInputTokens: void 0,\n toolCalls: [],\n activeToolBlocks: {}\n };\n try {\n for await (const event of stream) {\n processEvent(event, state, recordOutputs, span);\n yield event;\n }\n } finally {\n endStreamSpan(span, state, recordOutputs);\n }\n}\nfunction instrumentMessageStream(stream, span, recordOutputs) {\n const state = {\n responseTexts: [],\n finishReasons: [],\n responseId: \"\",\n responseModel: \"\",\n promptTokens: void 0,\n completionTokens: void 0,\n cacheCreationInputTokens: void 0,\n cacheReadInputTokens: void 0,\n toolCalls: [],\n activeToolBlocks: {}\n };\n stream.on(\"streamEvent\", (event) => {\n processEvent(event, state, recordOutputs, span);\n });\n stream.on(\"message\", () => {\n endStreamSpan(span, state, recordOutputs);\n });\n stream.on(\"error\", (error) => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.anthropic.stream_error\"\n }\n });\n if (span.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n span.end();\n }\n });\n return stream;\n}\n\nexport { instrumentAsyncIterableStream, instrumentMessageStream };\n//# sourceMappingURL=streaming.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpan, startSpanManual } from '../trace.js';\nimport { GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_REQUEST_TOP_K_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_PROMPT_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions, shouldEnableTruncation, wrapPromiseWithMethods, buildMethodPath, setTokenUsageAttributes } from '../ai/utils.js';\nimport { ANTHROPIC_METHOD_REGISTRY } from './constants.js';\nimport { instrumentAsyncIterableStream, instrumentMessageStream } from './streaming.js';\nimport { messagesFromParams, setMessagesAttribute, handleResponseError } from './utils.js';\n\nfunction extractRequestAttributes(args, methodPath, operationName) {\n const attributes = {\n [GEN_AI_SYSTEM_ATTRIBUTE]: \"anthropic\",\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: operationName,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.ai.anthropic\"\n };\n if (args.length > 0 && typeof args[0] === \"object\" && args[0] !== null) {\n const params = args[0];\n if (params.tools && Array.isArray(params.tools)) {\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = JSON.stringify(params.tools);\n }\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = params.model ?? \"unknown\";\n if (\"temperature\" in params) attributes[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = params.temperature;\n if (\"top_p\" in params) attributes[GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = params.top_p;\n if (\"stream\" in params) attributes[GEN_AI_REQUEST_STREAM_ATTRIBUTE] = params.stream;\n if (\"top_k\" in params) attributes[GEN_AI_REQUEST_TOP_K_ATTRIBUTE] = params.top_k;\n if (\"frequency_penalty\" in params)\n attributes[GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = params.frequency_penalty;\n if (\"max_tokens\" in params) attributes[GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE] = params.max_tokens;\n } else {\n if (methodPath === \"models.retrieve\" || methodPath === \"models.get\") {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = args[0];\n } else {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = \"unknown\";\n }\n }\n return attributes;\n}\nfunction addPrivateRequestAttributes(span, params, enableTruncation) {\n const messages = messagesFromParams(params);\n setMessagesAttribute(span, messages, enableTruncation);\n if (\"prompt\" in params) {\n span.setAttributes({ [GEN_AI_PROMPT_ATTRIBUTE]: JSON.stringify(params.prompt) });\n }\n}\nfunction addContentAttributes(span, response) {\n if (\"content\" in response) {\n if (Array.isArray(response.content)) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: response.content.map((item) => item.text).filter((text) => !!text).join(\"\")\n });\n const toolCalls = [];\n for (const item of response.content) {\n if (item.type === \"tool_use\" || item.type === \"server_tool_use\") {\n toolCalls.push(item);\n }\n }\n if (toolCalls.length > 0) {\n span.setAttributes({ [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(toolCalls) });\n }\n }\n }\n if (\"completion\" in response) {\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: response.completion });\n }\n if (\"input_tokens\" in response) {\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: JSON.stringify(response.input_tokens) });\n }\n}\nfunction addMetadataAttributes(span, response) {\n if (\"id\" in response && \"model\" in response) {\n span.setAttributes({\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: response.id,\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: response.model\n });\n if (\"usage\" in response && response.usage) {\n setTokenUsageAttributes(\n span,\n response.usage.input_tokens,\n response.usage.output_tokens,\n response.usage.cache_creation_input_tokens,\n response.usage.cache_read_input_tokens\n );\n }\n }\n}\nfunction addResponseAttributes(span, response, recordOutputs) {\n if (!response || typeof response !== \"object\") return;\n if (\"type\" in response && response.type === \"error\") {\n handleResponseError(span, response);\n return;\n }\n if (recordOutputs) {\n addContentAttributes(span, response);\n }\n addMetadataAttributes(span, response);\n}\nfunction handleStreamingError(error, span, methodPath) {\n captureException(error, {\n mechanism: { handled: false, type: \"auto.ai.anthropic\", data: { function: methodPath } }\n });\n if (span.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n span.end();\n }\n throw error;\n}\nfunction handleStreamingRequest(originalMethod, target, context, args, requestAttributes, operationName, methodPath, params, options, isStreamRequested, isStreamingMethod) {\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ?? \"unknown\";\n const spanConfig = {\n name: `${operationName} ${model}`,\n op: `gen_ai.${operationName}`,\n attributes: requestAttributes\n };\n if (isStreamRequested && !isStreamingMethod) {\n let originalResult;\n const instrumentedPromise = startSpanManual(spanConfig, (span) => {\n originalResult = originalMethod.apply(context, args);\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params, shouldEnableTruncation(options.enableTruncation));\n }\n return (async () => {\n try {\n const result = await originalResult;\n return instrumentAsyncIterableStream(\n result,\n span,\n options.recordOutputs ?? false\n );\n } catch (error) {\n return handleStreamingError(error, span, methodPath);\n }\n })();\n });\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, \"auto.ai.anthropic\");\n } else {\n return startSpanManual(spanConfig, (span) => {\n try {\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params, shouldEnableTruncation(options.enableTruncation));\n }\n const messageStream = target.apply(context, args);\n return instrumentMessageStream(messageStream, span, options.recordOutputs ?? false);\n } catch (error) {\n return handleStreamingError(error, span, methodPath);\n }\n });\n }\n}\nfunction instrumentMethod(originalMethod, methodPath, instrumentedMethod, context, options) {\n return new Proxy(originalMethod, {\n apply(target, thisArg, args) {\n const operationName = instrumentedMethod.operation || \"unknown\";\n const requestAttributes = extractRequestAttributes(args, methodPath, operationName);\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ?? \"unknown\";\n const params = typeof args[0] === \"object\" ? args[0] : void 0;\n const isStreamRequested = Boolean(params?.stream);\n const isStreamingMethod = instrumentedMethod.streaming === true;\n if (isStreamRequested || isStreamingMethod) {\n return handleStreamingRequest(\n originalMethod,\n target,\n context,\n args,\n requestAttributes,\n operationName,\n methodPath,\n params,\n options,\n isStreamRequested,\n isStreamingMethod\n );\n }\n let originalResult;\n const instrumentedPromise = startSpan(\n {\n name: `${operationName} ${model}`,\n op: `gen_ai.${operationName}`,\n attributes: requestAttributes\n },\n (span) => {\n originalResult = target.apply(context, args);\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params, shouldEnableTruncation(options.enableTruncation));\n }\n return originalResult.then(\n (result) => {\n addResponseAttributes(span, result, options.recordOutputs);\n return result;\n },\n (error) => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.anthropic\",\n data: {\n function: methodPath\n }\n }\n });\n throw error;\n }\n );\n }\n );\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, \"auto.ai.anthropic\");\n }\n });\n}\nfunction createDeepProxy(target, currentPath = \"\", options) {\n return new Proxy(target, {\n get(obj, prop) {\n const value = obj[prop];\n const methodPath = buildMethodPath(currentPath, String(prop));\n const instrumentedMethod = ANTHROPIC_METHOD_REGISTRY[methodPath];\n if (typeof value === \"function\" && instrumentedMethod) {\n return instrumentMethod(\n value,\n methodPath,\n instrumentedMethod,\n obj,\n options\n );\n }\n if (typeof value === \"function\") {\n return value.bind(obj);\n }\n if (value && typeof value === \"object\") {\n return createDeepProxy(value, methodPath, options);\n }\n return value;\n }\n });\n}\nfunction instrumentAnthropicAiClient(anthropicAiClient, options) {\n return createDeepProxy(anthropicAiClient, \"\", resolveAIRecordingOptions(options));\n}\n\nexport { instrumentAnthropicAiClient };\n//# sourceMappingURL=index.js.map\n", + "const GOOGLE_GENAI_INTEGRATION_NAME = \"Google_GenAI\";\nconst GOOGLE_GENAI_METHOD_REGISTRY = {\n \"models.generateContent\": { operation: \"generate_content\" },\n \"models.generateContentStream\": { operation: \"generate_content\", streaming: true },\n \"models.embedContent\": { operation: \"embeddings\" },\n \"chats.create\": { proxyResultPath: \"chat\" },\n \"chat.sendMessage\": { operation: \"chat\" },\n \"chat.sendMessageStream\": { operation: \"chat\", streaming: true }\n};\nconst GOOGLE_GENAI_SYSTEM_NAME = \"google_genai\";\n\nexport { GOOGLE_GENAI_INTEGRATION_NAME, GOOGLE_GENAI_METHOD_REGISTRY, GOOGLE_GENAI_SYSTEM_NAME };\n//# sourceMappingURL=constants.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { endStreamSpan } from '../ai/utils.js';\n\nfunction isErrorChunk(chunk, span) {\n const feedback = chunk?.promptFeedback;\n if (feedback?.blockReason) {\n const message = feedback.blockReasonMessage ?? feedback.blockReason;\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n captureException(`Content blocked: ${message}`, {\n mechanism: { handled: false, type: \"auto.ai.google_genai\" }\n });\n return true;\n }\n return false;\n}\nfunction handleResponseMetadata(chunk, state) {\n if (typeof chunk.responseId === \"string\") state.responseId = chunk.responseId;\n if (typeof chunk.modelVersion === \"string\") state.responseModel = chunk.modelVersion;\n const usage = chunk.usageMetadata;\n if (usage) {\n if (typeof usage.promptTokenCount === \"number\") state.promptTokens = usage.promptTokenCount;\n if (typeof usage.candidatesTokenCount === \"number\") state.completionTokens = usage.candidatesTokenCount;\n if (typeof usage.totalTokenCount === \"number\") state.totalTokens = usage.totalTokenCount;\n }\n}\nfunction handleCandidateContent(chunk, state, recordOutputs) {\n if (Array.isArray(chunk.functionCalls)) {\n state.toolCalls.push(...chunk.functionCalls);\n }\n for (const candidate of chunk.candidates ?? []) {\n if (candidate?.finishReason && !state.finishReasons.includes(candidate.finishReason)) {\n state.finishReasons.push(candidate.finishReason);\n }\n for (const part of candidate?.content?.parts ?? []) {\n if (recordOutputs && part.text) state.responseTexts.push(part.text);\n if (part.functionCall) {\n state.toolCalls.push({\n type: \"function\",\n id: part.functionCall.id,\n name: part.functionCall.name,\n arguments: part.functionCall.args\n });\n }\n }\n }\n}\nfunction processChunk(chunk, state, recordOutputs, span) {\n if (!chunk || isErrorChunk(chunk, span)) return;\n handleResponseMetadata(chunk, state);\n handleCandidateContent(chunk, state, recordOutputs);\n}\nasync function* instrumentStream(stream, span, recordOutputs) {\n const state = {\n responseTexts: [],\n finishReasons: [],\n toolCalls: []\n };\n try {\n for await (const chunk of stream) {\n processChunk(chunk, state, recordOutputs, span);\n yield chunk;\n }\n } finally {\n endStreamSpan(span, state, recordOutputs);\n }\n}\n\nexport { instrumentStream };\n//# sourceMappingURL=streaming.js.map\n", + "function contentUnionToMessages(content, role = \"user\") {\n if (typeof content === \"string\") {\n return [{ role, content }];\n }\n if (Array.isArray(content)) {\n return content.flatMap((content2) => contentUnionToMessages(content2, role));\n }\n if (typeof content !== \"object\" || !content) return [];\n if (\"role\" in content && typeof content.role === \"string\") {\n return [content];\n }\n if (\"parts\" in content) {\n return [{ ...content, role }];\n }\n return [{ role, content }];\n}\n\nexport { contentUnionToMessages };\n//# sourceMappingURL=utils.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpanManual, startSpan } from '../trace.js';\nimport { handleCallbackErrors } from '../../utils/handleCallbackErrors.js';\nimport { GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_TOP_K_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions, shouldEnableTruncation, buildMethodPath, extractSystemInstructions, getTruncatedJsonString, getJsonString } from '../ai/utils.js';\nimport { GOOGLE_GENAI_METHOD_REGISTRY, GOOGLE_GENAI_SYSTEM_NAME } from './constants.js';\nimport { instrumentStream } from './streaming.js';\nimport { contentUnionToMessages } from './utils.js';\n\nfunction extractModel(params, context) {\n if (\"model\" in params && typeof params.model === \"string\") {\n return params.model;\n }\n if (context && typeof context === \"object\") {\n const contextObj = context;\n if (\"model\" in contextObj && typeof contextObj.model === \"string\") {\n return contextObj.model;\n }\n if (\"modelVersion\" in contextObj && typeof contextObj.modelVersion === \"string\") {\n return contextObj.modelVersion;\n }\n }\n return \"unknown\";\n}\nfunction extractConfigAttributes(config) {\n const attributes = {};\n if (\"temperature\" in config && typeof config.temperature === \"number\") {\n attributes[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = config.temperature;\n }\n if (\"topP\" in config && typeof config.topP === \"number\") {\n attributes[GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = config.topP;\n }\n if (\"topK\" in config && typeof config.topK === \"number\") {\n attributes[GEN_AI_REQUEST_TOP_K_ATTRIBUTE] = config.topK;\n }\n if (\"maxOutputTokens\" in config && typeof config.maxOutputTokens === \"number\") {\n attributes[GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE] = config.maxOutputTokens;\n }\n if (\"frequencyPenalty\" in config && typeof config.frequencyPenalty === \"number\") {\n attributes[GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = config.frequencyPenalty;\n }\n if (\"presencePenalty\" in config && typeof config.presencePenalty === \"number\") {\n attributes[GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE] = config.presencePenalty;\n }\n return attributes;\n}\nfunction extractRequestAttributes(operationName, params, context) {\n const attributes = {\n [GEN_AI_SYSTEM_ATTRIBUTE]: GOOGLE_GENAI_SYSTEM_NAME,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: operationName,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.ai.google_genai\"\n };\n if (params) {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = extractModel(params, context);\n if (\"config\" in params && typeof params.config === \"object\" && params.config) {\n const config = params.config;\n Object.assign(attributes, extractConfigAttributes(config));\n if (\"tools\" in config && Array.isArray(config.tools)) {\n const functionDeclarations = config.tools.flatMap(\n (tool) => tool.functionDeclarations\n );\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = JSON.stringify(functionDeclarations);\n }\n }\n } else {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = extractModel({}, context);\n }\n return attributes;\n}\nfunction addPrivateRequestAttributes(span, params, isEmbeddings, enableTruncation) {\n if (isEmbeddings) {\n const contents = params.contents;\n if (contents != null) {\n span.setAttribute(\n GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE,\n typeof contents === \"string\" ? contents : JSON.stringify(contents)\n );\n }\n return;\n }\n const messages = [];\n if (\"config\" in params && params.config && typeof params.config === \"object\" && \"systemInstruction\" in params.config && params.config.systemInstruction) {\n messages.push(...contentUnionToMessages(params.config.systemInstruction, \"system\"));\n }\n if (\"history\" in params) {\n messages.push(...contentUnionToMessages(params.history, \"user\"));\n }\n if (\"contents\" in params) {\n messages.push(...contentUnionToMessages(params.contents, \"user\"));\n }\n if (\"message\" in params) {\n messages.push(...contentUnionToMessages(params.message, \"user\"));\n }\n if (Array.isArray(messages) && messages.length) {\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n span.setAttributes({\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: enableTruncation ? getTruncatedJsonString(filteredMessages) : getJsonString(filteredMessages)\n });\n }\n}\nfunction addResponseAttributes(span, response, recordOutputs) {\n if (!response || typeof response !== \"object\") return;\n if (response.modelVersion) {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, response.modelVersion);\n }\n if (response.usageMetadata && typeof response.usageMetadata === \"object\") {\n const usage = response.usageMetadata;\n if (typeof usage.promptTokenCount === \"number\") {\n span.setAttributes({\n [GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE]: usage.promptTokenCount\n });\n }\n if (typeof usage.candidatesTokenCount === \"number\") {\n span.setAttributes({\n [GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: usage.candidatesTokenCount\n });\n }\n if (typeof usage.totalTokenCount === \"number\") {\n span.setAttributes({\n [GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: usage.totalTokenCount\n });\n }\n }\n if (recordOutputs && Array.isArray(response.candidates) && response.candidates.length > 0) {\n const responseTexts = response.candidates.map((candidate) => {\n if (candidate.content?.parts && Array.isArray(candidate.content.parts)) {\n return candidate.content.parts.map((part) => typeof part.text === \"string\" ? part.text : \"\").filter((text) => text.length > 0).join(\"\");\n }\n return \"\";\n }).filter((text) => text.length > 0);\n if (responseTexts.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: responseTexts.join(\"\")\n });\n }\n }\n if (recordOutputs && response.functionCalls) {\n const functionCalls = response.functionCalls;\n if (Array.isArray(functionCalls) && functionCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(functionCalls)\n });\n }\n }\n}\nfunction instrumentMethod(originalMethod, methodPath, instrumentedMethod, context, options) {\n const isEmbeddings = instrumentedMethod.operation === \"embeddings\";\n return new Proxy(originalMethod, {\n apply(target, _, args) {\n const operationName = instrumentedMethod.operation || \"unknown\";\n const params = args[0];\n const requestAttributes = extractRequestAttributes(operationName, params, context);\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ?? \"unknown\";\n if (instrumentedMethod.streaming) {\n return startSpanManual(\n {\n name: `${operationName} ${model}`,\n op: `gen_ai.${operationName}`,\n attributes: requestAttributes\n },\n async (span) => {\n try {\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(\n span,\n params,\n isEmbeddings,\n shouldEnableTruncation(options.enableTruncation)\n );\n }\n const stream = await target.apply(context, args);\n return instrumentStream(stream, span, Boolean(options.recordOutputs));\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.google_genai\",\n data: { function: methodPath }\n }\n });\n span.end();\n throw error;\n }\n }\n );\n }\n return startSpan(\n {\n name: `${operationName} ${model}`,\n op: `gen_ai.${operationName}`,\n attributes: requestAttributes\n },\n (span) => {\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params, isEmbeddings, shouldEnableTruncation(options.enableTruncation));\n }\n return handleCallbackErrors(\n () => target.apply(context, args),\n (error) => {\n captureException(error, {\n mechanism: { handled: false, type: \"auto.ai.google_genai\", data: { function: methodPath } }\n });\n },\n () => {\n },\n (result) => {\n if (!isEmbeddings) {\n addResponseAttributes(span, result, options.recordOutputs);\n }\n }\n );\n }\n );\n }\n });\n}\nfunction createDeepProxy(target, currentPath = \"\", options) {\n return new Proxy(target, {\n get: (t, prop, receiver) => {\n const value = Reflect.get(t, prop, receiver);\n const methodPath = buildMethodPath(currentPath, String(prop));\n const instrumentedMethod = GOOGLE_GENAI_METHOD_REGISTRY[methodPath];\n if (typeof value === \"function\" && instrumentedMethod) {\n const wrappedMethod = instrumentedMethod.operation ? instrumentMethod(value, methodPath, instrumentedMethod, t, options) : value.bind(t);\n if (!instrumentedMethod.proxyResultPath) {\n return wrappedMethod;\n }\n return function(...args) {\n const result = wrappedMethod(...args);\n if (result && typeof result === \"object\") {\n return createDeepProxy(result, instrumentedMethod.proxyResultPath, options);\n }\n return result;\n };\n }\n if (typeof value === \"function\") {\n return value.bind(t);\n }\n if (value && typeof value === \"object\") {\n return createDeepProxy(value, methodPath, options);\n }\n return value;\n }\n });\n}\nfunction instrumentGoogleGenAIClient(client, options) {\n return createDeepProxy(client, \"\", resolveAIRecordingOptions(options));\n}\n\nexport { extractModel, instrumentGoogleGenAIClient };\n//# sourceMappingURL=index.js.map\n", + "const LANGCHAIN_INTEGRATION_NAME = \"LangChain\";\nconst LANGCHAIN_ORIGIN = \"auto.ai.langchain\";\nconst ROLE_MAP = {\n human: \"user\",\n ai: \"assistant\",\n assistant: \"assistant\",\n system: \"system\",\n function: \"function\",\n tool: \"tool\"\n};\n\nexport { LANGCHAIN_INTEGRATION_NAME, LANGCHAIN_ORIGIN, ROLE_MAP };\n//# sourceMappingURL=constants.js.map\n", + "import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_ID_ATTRIBUTE, GEN_AI_AGENT_NAME_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { isContentMedia, stripInlineMediaFromSingleMessage } from '../ai/mediaStripping.js';\nimport { extractSystemInstructions, getTruncatedJsonString, getJsonString } from '../ai/utils.js';\nimport { LANGCHAIN_ORIGIN, ROLE_MAP } from './constants.js';\n\nconst setIfDefined = (target, key, value) => {\n if (value != null) target[key] = value;\n};\nconst setNumberIfDefined = (target, key, value) => {\n const n = Number(value);\n if (!Number.isNaN(n)) target[key] = n;\n};\nfunction asString(v) {\n if (typeof v === \"string\") return v;\n try {\n return JSON.stringify(v);\n } catch {\n return String(v);\n }\n}\nfunction normalizeContent(v) {\n if (Array.isArray(v)) {\n try {\n const stripped = v.map(\n (part) => part && typeof part === \"object\" && isContentMedia(part) ? stripInlineMediaFromSingleMessage(part) : part\n );\n return JSON.stringify(stripped);\n } catch {\n return String(v);\n }\n }\n return asString(v);\n}\nfunction normalizeMessageRole(role) {\n const normalized = role.toLowerCase();\n return ROLE_MAP[normalized] ?? normalized;\n}\nfunction normalizeRoleNameFromCtor(name) {\n if (name.includes(\"System\")) return \"system\";\n if (name.includes(\"Human\")) return \"user\";\n if (name.includes(\"AI\") || name.includes(\"Assistant\")) return \"assistant\";\n if (name.includes(\"Function\")) return \"function\";\n if (name.includes(\"Tool\")) return \"tool\";\n return \"user\";\n}\nfunction getInvocationParams(tags) {\n if (!tags || Array.isArray(tags)) return void 0;\n return tags.invocation_params;\n}\nfunction normalizeLangChainMessages(messages) {\n return messages.map((message) => {\n const maybeGetType = message._getType;\n if (typeof maybeGetType === \"function\") {\n const messageType = maybeGetType.call(message);\n return {\n role: normalizeMessageRole(messageType),\n content: normalizeContent(message.content)\n };\n }\n if (message.lc === 1 && message.kwargs) {\n const id = message.id;\n const messageType = Array.isArray(id) && id.length > 0 ? id[id.length - 1] : \"\";\n const role = typeof messageType === \"string\" ? normalizeRoleNameFromCtor(messageType) : \"user\";\n return {\n role: normalizeMessageRole(role),\n content: normalizeContent(message.kwargs?.content)\n };\n }\n if (message.type) {\n const role = String(message.type).toLowerCase();\n return {\n role: normalizeMessageRole(role),\n content: normalizeContent(message.content)\n };\n }\n if (message.role) {\n return {\n role: normalizeMessageRole(String(message.role)),\n content: normalizeContent(message.content)\n };\n }\n const ctor = message.constructor?.name;\n if (ctor && ctor !== \"Object\") {\n return {\n role: normalizeMessageRole(normalizeRoleNameFromCtor(ctor)),\n content: normalizeContent(message.content)\n };\n }\n return {\n role: \"user\",\n content: normalizeContent(message.content)\n };\n });\n}\nfunction extractCommonRequestAttributes(serialized, invocationParams, langSmithMetadata) {\n const attrs = {};\n const kwargs = \"kwargs\" in serialized ? serialized.kwargs : void 0;\n const temperature = invocationParams?.temperature ?? langSmithMetadata?.ls_temperature ?? kwargs?.temperature;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, temperature);\n const maxTokens = invocationParams?.max_tokens ?? langSmithMetadata?.ls_max_tokens ?? kwargs?.max_tokens;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, maxTokens);\n const topP = invocationParams?.top_p ?? kwargs?.top_p;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, topP);\n const frequencyPenalty = invocationParams?.frequency_penalty;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, frequencyPenalty);\n const presencePenalty = invocationParams?.presence_penalty;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, presencePenalty);\n if (invocationParams && \"stream\" in invocationParams) {\n setIfDefined(attrs, GEN_AI_REQUEST_STREAM_ATTRIBUTE, Boolean(invocationParams.stream));\n }\n return attrs;\n}\nfunction baseRequestAttributes(system, modelName, serialized, invocationParams, langSmithMetadata) {\n return {\n [GEN_AI_SYSTEM_ATTRIBUTE]: asString(system ?? \"langchain\"),\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: \"chat\",\n [GEN_AI_REQUEST_MODEL_ATTRIBUTE]: asString(modelName),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGCHAIN_ORIGIN,\n ...extractCommonRequestAttributes(serialized, invocationParams, langSmithMetadata)\n };\n}\nfunction extractLLMRequestAttributes(llm, prompts, recordInputs, enableTruncation, invocationParams, langSmithMetadata) {\n const system = langSmithMetadata?.ls_provider;\n const modelName = invocationParams?.model ?? langSmithMetadata?.ls_model_name ?? \"unknown\";\n const attrs = baseRequestAttributes(system, modelName, llm, invocationParams, langSmithMetadata);\n if (recordInputs && Array.isArray(prompts) && prompts.length > 0) {\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, prompts.length);\n const messages = prompts.map((p) => ({ role: \"user\", content: p }));\n setIfDefined(\n attrs,\n GEN_AI_INPUT_MESSAGES_ATTRIBUTE,\n enableTruncation ? getTruncatedJsonString(messages) : getJsonString(messages)\n );\n }\n return attrs;\n}\nfunction extractChatModelRequestAttributes(llm, langChainMessages, recordInputs, enableTruncation, invocationParams, langSmithMetadata) {\n const system = langSmithMetadata?.ls_provider ?? llm.id?.[2];\n const modelName = invocationParams?.model ?? langSmithMetadata?.ls_model_name ?? \"unknown\";\n const attrs = baseRequestAttributes(system, modelName, llm, invocationParams, langSmithMetadata);\n if (recordInputs && Array.isArray(langChainMessages) && langChainMessages.length > 0) {\n const normalized = normalizeLangChainMessages(langChainMessages.flat());\n const { systemInstructions, filteredMessages } = extractSystemInstructions(normalized);\n if (systemInstructions) {\n setIfDefined(attrs, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, filteredLength);\n setIfDefined(\n attrs,\n GEN_AI_INPUT_MESSAGES_ATTRIBUTE,\n enableTruncation ? getTruncatedJsonString(filteredMessages) : getJsonString(filteredMessages)\n );\n }\n return attrs;\n}\nfunction addToolCallsAttributes(generations, attrs) {\n const toolCalls = [];\n const flatGenerations = generations.flat();\n for (const gen of flatGenerations) {\n const msg = gen.message;\n const msgToolCalls = msg?.tool_calls;\n if (Array.isArray(msgToolCalls) && msgToolCalls.length > 0) {\n toolCalls.push(...msgToolCalls);\n } else {\n const content = gen.message?.content;\n if (Array.isArray(content)) {\n for (const item of content) {\n const t = item;\n if (t.type === \"tool_use\") toolCalls.push(t);\n }\n }\n }\n }\n if (toolCalls.length > 0) {\n setIfDefined(attrs, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, asString(toolCalls));\n }\n}\nfunction addTokenUsageAttributes(llmOutput, attrs) {\n if (!llmOutput) return;\n const tokenUsage = llmOutput.tokenUsage;\n const anthropicUsage = llmOutput.usage;\n if (tokenUsage) {\n setNumberIfDefined(attrs, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, tokenUsage.promptTokens);\n setNumberIfDefined(attrs, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, tokenUsage.completionTokens);\n setNumberIfDefined(attrs, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, tokenUsage.totalTokens);\n } else if (anthropicUsage) {\n setNumberIfDefined(attrs, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, anthropicUsage.input_tokens);\n setNumberIfDefined(attrs, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, anthropicUsage.output_tokens);\n const input = Number(anthropicUsage.input_tokens);\n const output = Number(anthropicUsage.output_tokens);\n const total = (Number.isNaN(input) ? 0 : input) + (Number.isNaN(output) ? 0 : output);\n if (total > 0) setNumberIfDefined(attrs, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, total);\n if (anthropicUsage.cache_creation_input_tokens !== void 0)\n setNumberIfDefined(\n attrs,\n GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE,\n anthropicUsage.cache_creation_input_tokens\n );\n if (anthropicUsage.cache_read_input_tokens !== void 0)\n setNumberIfDefined(attrs, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE, anthropicUsage.cache_read_input_tokens);\n }\n}\nfunction extractLlmResponseAttributes(llmResult, recordOutputs) {\n if (!llmResult) return;\n const attrs = {};\n if (Array.isArray(llmResult.generations)) {\n const finishReasons = llmResult.generations.flat().map((g) => {\n if (g.generationInfo?.finish_reason) {\n return g.generationInfo.finish_reason;\n }\n if (g.generation_info?.finish_reason) {\n return g.generation_info.finish_reason;\n }\n return null;\n }).filter((r) => typeof r === \"string\");\n if (finishReasons.length > 0) {\n setIfDefined(attrs, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, asString(finishReasons));\n }\n addToolCallsAttributes(llmResult.generations, attrs);\n if (recordOutputs) {\n const texts = llmResult.generations.flat().map((gen) => gen.text ?? gen.message?.content).filter((t) => typeof t === \"string\");\n if (texts.length > 0) {\n setIfDefined(attrs, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, asString(texts));\n }\n }\n }\n addTokenUsageAttributes(llmResult.llmOutput, attrs);\n const llmOutput = llmResult.llmOutput;\n const firstGeneration = llmResult.generations?.[0]?.[0];\n const v1Message = firstGeneration?.message;\n const modelName = llmOutput?.model_name ?? llmOutput?.model ?? v1Message?.response_metadata?.model_name;\n if (modelName) setIfDefined(attrs, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, modelName);\n const responseId = llmOutput?.id ?? v1Message?.id;\n if (responseId) {\n setIfDefined(attrs, GEN_AI_RESPONSE_ID_ATTRIBUTE, responseId);\n }\n const stopReason = llmOutput?.stop_reason ?? v1Message?.response_metadata?.finish_reason;\n if (stopReason) {\n setIfDefined(attrs, GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE, asString(stopReason));\n }\n return attrs;\n}\nfunction getAgentNameFromMetadata(metadata) {\n const attrs = {};\n const agentName = metadata?.lc_agent_name;\n if (typeof agentName === \"string\") {\n attrs[GEN_AI_AGENT_NAME_ATTRIBUTE] = agentName;\n }\n return attrs;\n}\nfunction extractToolDefinitions(extraParams) {\n const tools = extraParams?.invocation_params?.tools ?? extraParams?.options?.tools;\n if (!Array.isArray(tools) || tools.length === 0) return void 0;\n const toolDefs = tools.map((tool) => {\n const fn = tool.function;\n return {\n type: \"function\",\n name: tool.name ?? fn?.name ?? \"\",\n description: tool.description ?? fn?.description\n };\n });\n return JSON.stringify(toolDefs);\n}\nfunction isCallbackManager(value) {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n const candidate = value;\n return typeof candidate.addHandler === \"function\" && typeof candidate.copy === \"function\";\n}\nfunction isSentryHandler(handler) {\n return typeof handler === \"object\" && handler?.name === \"SentryCallbackHandler\";\n}\nfunction containsSentryHandler(handlers) {\n return handlers.some(isSentryHandler);\n}\nfunction _INTERNAL_mergeLangChainCallbackHandler(existing, sentryHandler) {\n if (!existing) {\n return [sentryHandler];\n }\n if (isCallbackManager(existing)) {\n if (containsSentryHandler(existing.handlers ?? [])) {\n return existing;\n }\n const copied = existing.copy();\n copied.addHandler(sentryHandler, true);\n return copied;\n }\n const handlers = Array.isArray(existing) ? existing : [existing];\n if (containsSentryHandler(handlers)) {\n return existing;\n }\n return [...handlers, sentryHandler];\n}\n\nexport { _INTERNAL_mergeLangChainCallbackHandler, extractChatModelRequestAttributes, extractLLMRequestAttributes, extractLlmResponseAttributes, extractToolDefinitions, getAgentNameFromMetadata, getInvocationParams, normalizeLangChainMessages };\n//# sourceMappingURL=utils.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpanManual } from '../trace.js';\nimport { GEN_AI_TOOL_OUTPUT_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions, shouldEnableTruncation } from '../ai/utils.js';\nimport { LANGCHAIN_ORIGIN } from './constants.js';\nimport { getAgentNameFromMetadata, extractLlmResponseAttributes, getInvocationParams, extractChatModelRequestAttributes, extractToolDefinitions, extractLLMRequestAttributes } from './utils.js';\n\nfunction createLangChainCallbackHandler(options = {}) {\n const { recordInputs, recordOutputs } = resolveAIRecordingOptions(options);\n const enableTruncation = shouldEnableTruncation(options.enableTruncation);\n const spanMap = /* @__PURE__ */ new Map();\n const exitSpan = (runId) => {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.end();\n spanMap.delete(runId);\n }\n };\n const handler = {\n // Required LangChain BaseCallbackHandler properties\n lc_serializable: false,\n lc_namespace: [\"langchain_core\", \"callbacks\", \"sentry\"],\n lc_secrets: void 0,\n lc_attributes: void 0,\n lc_aliases: void 0,\n lc_serializable_keys: void 0,\n lc_id: [\"langchain_core\", \"callbacks\", \"sentry\"],\n lc_kwargs: {},\n name: \"SentryCallbackHandler\",\n // BaseCallbackHandlerInput boolean flags\n ignoreLLM: false,\n ignoreChain: false,\n ignoreAgent: false,\n ignoreRetriever: false,\n ignoreCustomEvent: false,\n raiseError: false,\n awaitHandlers: true,\n handleLLMStart(llm, prompts, runId, _parentRunId, _extraParams, tags, metadata, _runName) {\n const invocationParams = getInvocationParams(tags);\n const attributes = extractLLMRequestAttributes(\n llm,\n prompts,\n recordInputs,\n enableTruncation,\n invocationParams,\n metadata\n );\n const modelName = attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE];\n const operationName = attributes[GEN_AI_OPERATION_NAME_ATTRIBUTE];\n startSpanManual(\n {\n name: `${operationName} ${modelName}`,\n op: \"gen_ai.chat\",\n attributes: {\n ...getAgentNameFromMetadata(metadata),\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"gen_ai.chat\"\n }\n },\n (span) => {\n spanMap.set(runId, span);\n return span;\n }\n );\n },\n // Chat Model Start Handler\n handleChatModelStart(llm, messages, runId, _parentRunId, extraParams, tags, metadata, _runName) {\n const invocationParams = getInvocationParams(tags);\n const attributes = extractChatModelRequestAttributes(\n llm,\n messages,\n recordInputs,\n enableTruncation,\n invocationParams,\n metadata\n );\n const toolDefsJson = extractToolDefinitions(extraParams);\n if (toolDefsJson) {\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = toolDefsJson;\n }\n const modelName = attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE];\n const operationName = attributes[GEN_AI_OPERATION_NAME_ATTRIBUTE];\n startSpanManual(\n {\n name: `${operationName} ${modelName}`,\n op: \"gen_ai.chat\",\n attributes: {\n ...getAgentNameFromMetadata(metadata),\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"gen_ai.chat\"\n }\n },\n (span) => {\n spanMap.set(runId, span);\n return span;\n }\n );\n },\n // LLM End Handler - note: handleLLMEnd with capital LLM (used by both LLMs and chat models!)\n handleLLMEnd(output, runId, _parentRunId, _tags, _extraParams) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n const attributes = extractLlmResponseAttributes(output, recordOutputs);\n if (attributes) {\n span.setAttributes(attributes);\n }\n exitSpan(runId);\n }\n },\n // LLM Error Handler - note: handleLLMError with capital LLM\n handleLLMError(error, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n exitSpan(runId);\n }\n captureException(error, {\n mechanism: {\n handled: false,\n type: `${LANGCHAIN_ORIGIN}.llm_error_handler`\n }\n });\n },\n // Chain Start Handler\n handleChainStart(chain, inputs, runId, _parentRunId, _tags, metadata, _runType, runName) {\n if (metadata?.__sentry_langgraph__) {\n return;\n }\n const chainName = runName || chain.name || \"unknown_chain\";\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.ai.langchain\",\n \"langchain.chain.name\": chainName\n };\n if (recordInputs) {\n attributes[\"langchain.chain.inputs\"] = JSON.stringify(inputs);\n }\n startSpanManual(\n {\n name: `chain ${chainName}`,\n op: \"gen_ai.invoke_agent\",\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"gen_ai.invoke_agent\"\n }\n },\n (span) => {\n spanMap.set(runId, span);\n return span;\n }\n );\n },\n // Chain End Handler\n handleChainEnd(outputs, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n if (recordOutputs) {\n span.setAttributes({\n \"langchain.chain.outputs\": JSON.stringify(outputs)\n });\n }\n exitSpan(runId);\n }\n },\n // Chain Error Handler\n handleChainError(error, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n exitSpan(runId);\n }\n captureException(error, {\n mechanism: {\n handled: false,\n type: `${LANGCHAIN_ORIGIN}.chain_error_handler`\n }\n });\n },\n // Tool Start Handler\n handleToolStart(tool, input, runId, _parentRunId, _tags, metadata, runName) {\n if (metadata?.__sentry_langgraph__) {\n return;\n }\n const toolName = runName || tool.name || \"unknown_tool\";\n const attributes = {\n ...getAgentNameFromMetadata(metadata),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGCHAIN_ORIGIN,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: \"execute_tool\",\n [GEN_AI_TOOL_NAME_ATTRIBUTE]: toolName\n };\n if (recordInputs) {\n attributes[GEN_AI_TOOL_INPUT_ATTRIBUTE] = input;\n }\n startSpanManual(\n {\n name: `execute_tool ${toolName}`,\n op: \"gen_ai.execute_tool\",\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"gen_ai.execute_tool\"\n }\n },\n (span) => {\n spanMap.set(runId, span);\n return span;\n }\n );\n },\n // Tool End Handler\n handleToolEnd(output, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n if (recordOutputs) {\n const outputObj = output;\n const content = outputObj && typeof outputObj === \"object\" && \"content\" in outputObj ? outputObj.content : output;\n span.setAttributes({\n [GEN_AI_TOOL_OUTPUT_ATTRIBUTE]: typeof content === \"string\" ? content : JSON.stringify(content)\n });\n }\n exitSpan(runId);\n }\n },\n // Tool Error Handler\n handleToolError(error, runId) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n exitSpan(runId);\n }\n captureException(error, {\n mechanism: {\n handled: false,\n type: `${LANGCHAIN_ORIGIN}.tool_error_handler`\n }\n });\n },\n // LangChain BaseCallbackHandler required methods\n copy() {\n return handler;\n },\n toJSON() {\n return {\n lc: 1,\n type: \"not_implemented\",\n id: handler.lc_id\n };\n },\n toJSONNotImplemented() {\n return {\n lc: 1,\n type: \"not_implemented\",\n id: handler.lc_id\n };\n }\n };\n return handler;\n}\n\nexport { createLangChainCallbackHandler };\n//# sourceMappingURL=index.js.map\n", + "const LANGGRAPH_INTEGRATION_NAME = \"LangGraph\";\nconst LANGGRAPH_ORIGIN = \"auto.ai.langgraph\";\n\nexport { LANGGRAPH_INTEGRATION_NAME, LANGGRAPH_ORIGIN };\n//# sourceMappingURL=constants.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpan } from '../trace.js';\nimport { GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE, GEN_AI_TOOL_OUTPUT_ATTRIBUTE, GEN_AI_TOOL_TYPE_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE, GEN_AI_AGENT_NAME_ATTRIBUTE, GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE, GEN_AI_TOOL_CALL_ID_ATTRIBUTE, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { normalizeLangChainMessages } from '../langchain/utils.js';\nimport { LANGGRAPH_ORIGIN } from './constants.js';\n\nfunction extractLLMFromParams(args) {\n const arg = args[0];\n if (typeof arg !== \"object\" || !arg || !(\"llm\" in arg) || !arg.llm || typeof arg.llm !== \"object\") {\n return null;\n }\n const llm = arg.llm;\n if (typeof llm.modelName !== \"string\" && typeof llm.model !== \"string\") {\n return null;\n }\n return llm;\n}\nfunction extractAgentNameFromParams(args) {\n const arg = args[0];\n if (typeof arg === \"object\" && !!arg && \"name\" in arg && typeof arg.name === \"string\") {\n return arg.name;\n }\n return null;\n}\nfunction wrapToolsWithSpans(tools, options, agentName) {\n const SENTRY_WRAPPED = \"__sentry_tool_wrapped__\";\n for (const tool of tools) {\n if (!tool || typeof tool !== \"object\") {\n continue;\n }\n const t = tool;\n const originalInvoke = t.invoke;\n if (typeof originalInvoke !== \"function\" || Object.prototype.hasOwnProperty.call(t, SENTRY_WRAPPED)) {\n continue;\n }\n const toolName = typeof t.name === \"string\" ? t.name : \"unknown_tool\";\n const toolDescription = typeof t.description === \"string\" ? t.description : void 0;\n const wrappedInvoke = new Proxy(originalInvoke, {\n apply(target, thisArg, args) {\n const spanAttributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGGRAPH_ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: \"execute_tool\",\n [GEN_AI_TOOL_NAME_ATTRIBUTE]: toolName,\n [GEN_AI_TOOL_TYPE_ATTRIBUTE]: \"function\"\n };\n const callConfig = args[1];\n const callAgentName = callConfig?.metadata?.lc_agent_name ?? agentName;\n if (typeof callAgentName === \"string\") {\n spanAttributes[GEN_AI_AGENT_NAME_ATTRIBUTE] = callAgentName;\n }\n if (toolDescription) {\n spanAttributes[GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE] = toolDescription;\n }\n const input = args[0];\n if (typeof input === \"object\" && !!input) {\n if (\"id\" in input && typeof input.id === \"string\") {\n spanAttributes[GEN_AI_TOOL_CALL_ID_ATTRIBUTE] = input.id;\n }\n if (options.recordInputs) {\n const toolArgs = \"args\" in input && typeof input.args === \"object\" ? input.args : input;\n try {\n spanAttributes[GEN_AI_TOOL_INPUT_ATTRIBUTE] = JSON.stringify(toolArgs);\n } catch {\n }\n }\n }\n return startSpan(\n {\n op: GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE,\n name: `execute_tool ${toolName}`,\n attributes: spanAttributes\n },\n async (span) => {\n try {\n const result = await Reflect.apply(target, thisArg, args);\n if (options.recordOutputs) {\n try {\n const resultObj = result;\n const content = resultObj && typeof resultObj === \"object\" && \"content\" in resultObj ? resultObj.content : result;\n span.setAttribute(\n GEN_AI_TOOL_OUTPUT_ATTRIBUTE,\n typeof content === \"string\" ? content : JSON.stringify(content)\n );\n } catch {\n }\n }\n return result;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.langgraph.error\"\n }\n });\n throw error;\n }\n }\n );\n }\n });\n t.invoke = wrappedInvoke;\n Object.defineProperty(t, SENTRY_WRAPPED, { value: true, enumerable: false });\n }\n return tools;\n}\nfunction extractToolCalls(messages) {\n if (!messages || messages.length === 0) {\n return null;\n }\n const toolCalls = [];\n for (const message of messages) {\n if (message && typeof message === \"object\") {\n const msgToolCalls = message.tool_calls;\n if (msgToolCalls && Array.isArray(msgToolCalls)) {\n toolCalls.push(...msgToolCalls);\n }\n }\n }\n return toolCalls.length > 0 ? toolCalls : null;\n}\nfunction extractTokenUsageFromMessage(message) {\n const msg = message;\n let inputTokens = 0;\n let outputTokens = 0;\n let totalTokens = 0;\n if (msg.usage_metadata && typeof msg.usage_metadata === \"object\") {\n const usage = msg.usage_metadata;\n if (typeof usage.input_tokens === \"number\") {\n inputTokens = usage.input_tokens;\n }\n if (typeof usage.output_tokens === \"number\") {\n outputTokens = usage.output_tokens;\n }\n if (typeof usage.total_tokens === \"number\") {\n totalTokens = usage.total_tokens;\n }\n return { inputTokens, outputTokens, totalTokens };\n }\n if (msg.response_metadata && typeof msg.response_metadata === \"object\") {\n const metadata = msg.response_metadata;\n if (metadata.tokenUsage && typeof metadata.tokenUsage === \"object\") {\n const tokenUsage = metadata.tokenUsage;\n if (typeof tokenUsage.promptTokens === \"number\") {\n inputTokens = tokenUsage.promptTokens;\n }\n if (typeof tokenUsage.completionTokens === \"number\") {\n outputTokens = tokenUsage.completionTokens;\n }\n if (typeof tokenUsage.totalTokens === \"number\") {\n totalTokens = tokenUsage.totalTokens;\n }\n }\n }\n return { inputTokens, outputTokens, totalTokens };\n}\nfunction extractModelMetadata(span, message) {\n const msg = message;\n if (msg.response_metadata && typeof msg.response_metadata === \"object\") {\n const metadata = msg.response_metadata;\n if (metadata.model_name && typeof metadata.model_name === \"string\") {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, metadata.model_name);\n }\n if (metadata.finish_reason && typeof metadata.finish_reason === \"string\") {\n span.setAttribute(GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, [metadata.finish_reason]);\n }\n }\n}\nfunction extractToolsFromCompiledGraph(compiledGraph) {\n if (!compiledGraph.builder?.nodes?.tools?.runnable?.tools) {\n return null;\n }\n const tools = compiledGraph.builder?.nodes?.tools?.runnable?.tools;\n if (!tools || !Array.isArray(tools) || tools.length === 0) {\n return null;\n }\n return tools.map((tool) => ({\n name: tool.lc_kwargs?.name,\n description: tool.lc_kwargs?.description,\n schema: tool.lc_kwargs?.schema\n }));\n}\nfunction setResponseAttributes(span, inputMessages, result) {\n const resultObj = result;\n const outputMessages = resultObj?.messages;\n if (!outputMessages || !Array.isArray(outputMessages)) {\n return;\n }\n const inputCount = inputMessages?.length ?? 0;\n const newMessages = outputMessages.length > inputCount ? outputMessages.slice(inputCount) : [];\n if (newMessages.length === 0) {\n return;\n }\n const toolCalls = extractToolCalls(newMessages);\n if (toolCalls) {\n span.setAttribute(GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, JSON.stringify(toolCalls));\n }\n const normalizedNewMessages = normalizeLangChainMessages(newMessages);\n span.setAttribute(GEN_AI_RESPONSE_TEXT_ATTRIBUTE, JSON.stringify(normalizedNewMessages));\n let totalInputTokens = 0;\n let totalOutputTokens = 0;\n let totalTokens = 0;\n for (const message of newMessages) {\n const tokens = extractTokenUsageFromMessage(message);\n totalInputTokens += tokens.inputTokens;\n totalOutputTokens += tokens.outputTokens;\n totalTokens += tokens.totalTokens;\n extractModelMetadata(span, message);\n }\n if (totalInputTokens > 0) {\n span.setAttribute(GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, totalInputTokens);\n }\n if (totalOutputTokens > 0) {\n span.setAttribute(GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, totalOutputTokens);\n }\n if (totalTokens > 0) {\n span.setAttribute(GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, totalTokens);\n }\n}\n\nexport { extractAgentNameFromParams, extractLLMFromParams, extractModelMetadata, extractTokenUsageFromMessage, extractToolCalls, extractToolsFromCompiledGraph, setResponseAttributes, wrapToolsWithSpans };\n//# sourceMappingURL=utils.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { SPAN_STATUS_ERROR } from '../spanstatus.js';\nimport { startSpan } from '../trace.js';\nimport { GEN_AI_PIPELINE_NAME_ATTRIBUTE, GEN_AI_AGENT_NAME_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_CONVERSATION_ID_ATTRIBUTE, GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions, extractSystemInstructions, shouldEnableTruncation, getTruncatedJsonString, getJsonString } from '../ai/utils.js';\nimport { createLangChainCallbackHandler } from '../langchain/index.js';\nimport { _INTERNAL_mergeLangChainCallbackHandler, normalizeLangChainMessages } from '../langchain/utils.js';\nimport { LANGGRAPH_ORIGIN } from './constants.js';\nimport { extractLLMFromParams, extractAgentNameFromParams, wrapToolsWithSpans, extractToolsFromCompiledGraph, setResponseAttributes } from './utils.js';\n\nlet _insideCreateReactAgent = false;\nconst SENTRY_PATCHED = \"__sentry_patched__\";\nfunction instrumentStateGraphCompile(originalCompile, options) {\n if (Object.prototype.hasOwnProperty.call(originalCompile, SENTRY_PATCHED)) {\n return originalCompile;\n }\n const sentryHandler = createLangChainCallbackHandler(options);\n const wrapped = new Proxy(originalCompile, {\n apply(target, thisArg, args) {\n if (_insideCreateReactAgent) {\n return Reflect.apply(target, thisArg, args);\n }\n return startSpan(\n {\n op: \"gen_ai.create_agent\",\n name: \"create_agent\",\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGGRAPH_ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"gen_ai.create_agent\",\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: \"create_agent\"\n }\n },\n (span) => {\n try {\n const compiledGraph = Reflect.apply(target, thisArg, args);\n const compileOptions = args.length > 0 ? args[0] : {};\n if (compileOptions?.name && typeof compileOptions.name === \"string\") {\n span.setAttribute(GEN_AI_AGENT_NAME_ATTRIBUTE, compileOptions.name);\n span.updateName(`create_agent ${compileOptions.name}`);\n }\n const originalInvoke = compiledGraph.invoke;\n if (originalInvoke && typeof originalInvoke === \"function\") {\n compiledGraph.invoke = instrumentCompiledGraphInvoke(\n originalInvoke.bind(compiledGraph),\n compiledGraph,\n compileOptions,\n options,\n void 0,\n sentryHandler\n );\n }\n return compiledGraph;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.langgraph.error\"\n }\n });\n throw error;\n }\n }\n );\n }\n });\n Object.defineProperty(wrapped, SENTRY_PATCHED, { value: true, enumerable: false });\n return wrapped;\n}\nfunction instrumentCompiledGraphInvoke(originalInvoke, graphInstance, compileOptions, options, llm, sentryCallbackHandler) {\n return new Proxy(originalInvoke, {\n apply(target, thisArg, args) {\n const modelName = llm?.modelName ?? llm?.model;\n return startSpan(\n {\n op: \"gen_ai.invoke_agent\",\n name: \"invoke_agent\",\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGGRAPH_ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: \"invoke_agent\"\n }\n },\n async (span) => {\n try {\n const graphName = compileOptions?.name;\n if (graphName && typeof graphName === \"string\") {\n span.setAttribute(GEN_AI_PIPELINE_NAME_ATTRIBUTE, graphName);\n span.setAttribute(GEN_AI_AGENT_NAME_ATTRIBUTE, graphName);\n span.updateName(`invoke_agent ${graphName}`);\n }\n if (modelName) {\n span.setAttribute(GEN_AI_REQUEST_MODEL_ATTRIBUTE, modelName);\n }\n const config = args.length > 1 ? args[1] : void 0;\n const configurable = config?.configurable;\n const threadId = configurable?.thread_id;\n if (threadId && typeof threadId === \"string\") {\n span.setAttribute(GEN_AI_CONVERSATION_ID_ATTRIBUTE, threadId);\n }\n if (sentryCallbackHandler) {\n const invokeConfig = args[1] ?? {};\n args[1] = invokeConfig;\n const existingMetadata = invokeConfig.metadata ?? {};\n invokeConfig.metadata = {\n ...existingMetadata,\n __sentry_langgraph__: true,\n ...typeof graphName === \"string\" ? { lc_agent_name: graphName } : {}\n };\n invokeConfig.callbacks = _INTERNAL_mergeLangChainCallbackHandler(\n invokeConfig.callbacks,\n sentryCallbackHandler\n );\n }\n const tools = extractToolsFromCompiledGraph(graphInstance);\n if (tools) {\n span.setAttribute(GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, JSON.stringify(tools));\n }\n const recordInputs = options.recordInputs;\n const recordOutputs = options.recordOutputs;\n const inputMessages = args.length > 0 ? args[0]?.messages ?? [] : [];\n if (inputMessages && recordInputs) {\n const normalizedMessages = normalizeLangChainMessages(inputMessages);\n const { systemInstructions, filteredMessages } = extractSystemInstructions(normalizedMessages);\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n const enableTruncation = shouldEnableTruncation(options.enableTruncation);\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n span.setAttributes({\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: enableTruncation ? getTruncatedJsonString(filteredMessages) : getJsonString(filteredMessages),\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength\n });\n }\n const result = await Reflect.apply(target, thisArg, args);\n if (recordOutputs) {\n setResponseAttributes(span, inputMessages ?? null, result);\n }\n return result;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.ai.langgraph.error\"\n }\n });\n throw error;\n }\n }\n );\n }\n });\n}\nfunction instrumentCreateReactAgent(originalCreateReactAgent, options) {\n if (Object.prototype.hasOwnProperty.call(originalCreateReactAgent, SENTRY_PATCHED)) {\n return originalCreateReactAgent;\n }\n const resolvedOptions = resolveAIRecordingOptions(options);\n const sentryHandler = createLangChainCallbackHandler(resolvedOptions);\n const wrapped = new Proxy(originalCreateReactAgent, {\n apply(target, thisArg, args) {\n const llm = extractLLMFromParams(args);\n const agentName = extractAgentNameFromParams(args);\n const params = args[0];\n if (params && Array.isArray(params.tools) && params.tools.length > 0) {\n wrapToolsWithSpans(params.tools, resolvedOptions, agentName ?? void 0);\n }\n _insideCreateReactAgent = true;\n let compiledGraph;\n try {\n compiledGraph = Reflect.apply(target, thisArg, args);\n } finally {\n _insideCreateReactAgent = false;\n }\n const originalInvoke = compiledGraph.invoke;\n if (originalInvoke && typeof originalInvoke === \"function\") {\n const compileOptions = {};\n if (agentName) {\n compileOptions.name = agentName;\n }\n compiledGraph.invoke = instrumentCompiledGraphInvoke(\n originalInvoke.bind(compiledGraph),\n compiledGraph,\n compileOptions,\n resolvedOptions,\n llm,\n sentryHandler\n );\n }\n return compiledGraph;\n }\n });\n Object.defineProperty(wrapped, SENTRY_PATCHED, { value: true, enumerable: false });\n return wrapped;\n}\nfunction instrumentLangGraph(stateGraph, options) {\n stateGraph.compile = instrumentStateGraphCompile(stateGraph.compile, resolveAIRecordingOptions(options));\n return stateGraph;\n}\n\nexport { instrumentCreateReactAgent, instrumentLangGraph, instrumentStateGraphCompile };\n//# sourceMappingURL=index.js.map\n", + "import { dsnToString } from '../../utils/dsn.js';\nimport { getSdkMetadataForEnvelopeHeader, createEnvelope } from '../../utils/envelope.js';\nimport { isBrowser } from '../../utils/isBrowser.js';\nimport { safeDateNow } from '../../utils/randomSafeContext.js';\n\nfunction createStreamedSpanEnvelope(serializedSpans, dsc, client) {\n const options = client.getOptions();\n const dsn = client.getDsn();\n const tunnel = options.tunnel;\n const sdk = getSdkMetadataForEnvelopeHeader(options._metadata);\n const headers = {\n sent_at: new Date(safeDateNow()).toISOString(),\n ...dscHasRequiredProps(dsc) && { trace: dsc },\n ...sdk && { sdk },\n ...!!tunnel && dsn && { dsn: dsnToString(dsn) }\n };\n const inferSetting = client.getDataCollectionOptions().userInfo ? \"auto\" : \"never\";\n const spanContainer = [\n { type: \"span\", item_count: serializedSpans.length, content_type: \"application/vnd.sentry.items.span.v2+json\" },\n {\n version: 2,\n ...isBrowser() && {\n ingest_settings: { infer_ip: inferSetting, infer_user_agent: inferSetting }\n },\n items: serializedSpans\n }\n ];\n return createEnvelope(headers, [spanContainer]);\n}\nfunction dscHasRequiredProps(dsc) {\n return !!dsc.trace_id && !!dsc.public_key;\n}\n\nexport { createStreamedSpanEnvelope };\n//# sourceMappingURL=envelope.js.map\n", + "import { estimateTypedAttributesSizeInBytes } from '../../attributes.js';\n\nfunction estimateSerializedSpanSizeInBytes(span) {\n let weight = 156;\n weight += span.name.length * 2;\n weight += estimateTypedAttributesSizeInBytes(span.attributes);\n if (span.links && span.links.length > 0) {\n const firstLink = span.links[0];\n const attributes = firstLink?.attributes;\n const linkWeight = 100 + (attributes ? estimateTypedAttributesSizeInBytes(attributes) : 0);\n weight += linkWeight * span.links.length;\n }\n return weight;\n}\n\nexport { estimateSerializedSpanSizeInBytes };\n//# sourceMappingURL=estimateSize.js.map\n", + "import { DEBUG_BUILD } from '../../debug-build.js';\nimport { debug } from '../../utils/debug-logger.js';\nimport { safeUnref } from '../../utils/timer.js';\nimport { getDynamicSamplingContextFromSpan } from '../dynamicSamplingContext.js';\nimport { createStreamedSpanEnvelope } from './envelope.js';\nimport { estimateSerializedSpanSizeInBytes } from './estimateSize.js';\n\nconst MAX_SPANS_PER_ENVELOPE = 1e3;\nconst MAX_TRACE_WEIGHT_IN_BYTES = 5e6;\nclass SpanBuffer {\n constructor(client, options) {\n this._traceBuckets = /* @__PURE__ */ new Map();\n this._client = client;\n const { maxSpanLimit, flushInterval, maxTraceWeightInBytes } = options ?? {};\n this._maxSpanLimit = maxSpanLimit && maxSpanLimit > 0 && maxSpanLimit <= MAX_SPANS_PER_ENVELOPE ? maxSpanLimit : MAX_SPANS_PER_ENVELOPE;\n this._flushInterval = flushInterval && flushInterval > 0 ? flushInterval : 5e3;\n this._maxTraceWeight = maxTraceWeightInBytes && maxTraceWeightInBytes > 0 ? maxTraceWeightInBytes : MAX_TRACE_WEIGHT_IN_BYTES;\n this._client.on(\"flush\", () => {\n this.drain();\n });\n this._client.on(\"close\", () => {\n this._traceBuckets.forEach((bucket) => {\n clearTimeout(bucket.timeout);\n });\n this._traceBuckets.clear();\n });\n }\n /**\n * Add a span to the buffer.\n */\n add(spanJSON) {\n const traceId = spanJSON.trace_id;\n let bucket = this._traceBuckets.get(traceId);\n if (!bucket) {\n bucket = {\n spans: /* @__PURE__ */ new Set(),\n size: 0,\n timeout: safeUnref(\n setTimeout(() => {\n this.flush(traceId);\n }, this._flushInterval)\n )\n };\n this._traceBuckets.set(traceId, bucket);\n }\n bucket.spans.add(spanJSON);\n bucket.size += estimateSerializedSpanSizeInBytes(spanJSON);\n if (bucket.spans.size >= this._maxSpanLimit || bucket.size >= this._maxTraceWeight) {\n this.flush(traceId);\n }\n }\n /**\n * Drain and flush all buffered traces.\n */\n drain() {\n if (!this._traceBuckets.size) {\n return;\n }\n DEBUG_BUILD && debug.log(`Flushing span tree map with ${this._traceBuckets.size} traces`);\n this._traceBuckets.forEach((_, traceId) => {\n this.flush(traceId);\n });\n }\n /**\n * Flush spans of a specific trace.\n * In contrast to {@link SpanBuffer.drain}, this method does not flush all traces, but only the one with the given traceId.\n */\n flush(traceId) {\n const bucket = this._traceBuckets.get(traceId);\n if (!bucket) {\n return;\n }\n if (!bucket.spans.size) {\n this._removeTrace(traceId);\n return;\n }\n const spans = Array.from(bucket.spans);\n const segmentSpan = spans[0]?._segmentSpan;\n if (!segmentSpan) {\n DEBUG_BUILD && debug.warn(\"No segment span reference found on span JSON, cannot compute DSC\");\n this._removeTrace(traceId);\n return;\n }\n const dsc = getDynamicSamplingContextFromSpan(segmentSpan);\n const cleanedSpans = spans.map((spanJSON) => {\n const { _segmentSpan, ...cleanSpanJSON } = spanJSON;\n return cleanSpanJSON;\n });\n const envelope = createStreamedSpanEnvelope(cleanedSpans, dsc, this._client);\n DEBUG_BUILD && debug.log(`Sending span envelope for trace ${traceId} with ${cleanedSpans.length} spans`);\n this._client.sendEnvelope(envelope).then(null, (reason) => {\n DEBUG_BUILD && debug.error(\"Error while sending streamed span envelope:\", reason);\n });\n this._removeTrace(traceId);\n }\n _removeTrace(traceId) {\n const bucket = this._traceBuckets.get(traceId);\n if (bucket) {\n clearTimeout(bucket.timeout);\n }\n this._traceBuckets.delete(traceId);\n }\n}\n\nexport { SpanBuffer };\n//# sourceMappingURL=spanBuffer.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { defineIntegration } from '../integration.js';\nimport { isStreamedBeforeSendSpanCallback } from '../tracing/spans/beforeSendSpan.js';\nimport { captureSpan } from '../tracing/spans/captureSpan.js';\nimport { hasSpanStreamingEnabled } from '../tracing/spans/hasSpanStreamingEnabled.js';\nimport { SpanBuffer } from '../tracing/spans/spanBuffer.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { spanIsSampled } from '../utils/spanUtils.js';\n\nconst spanStreamingIntegration = defineIntegration(() => {\n return {\n name: \"SpanStreaming\",\n setup(client) {\n const initialMessage = \"SpanStreaming integration requires\";\n const fallbackMsg = \"Falling back to static trace lifecycle.\";\n const clientOptions = client.getOptions();\n if (!hasSpanStreamingEnabled(client)) {\n clientOptions.traceLifecycle = \"static\";\n DEBUG_BUILD && debug.warn(`${initialMessage} \\`traceLifecycle\\` to be set to \"stream\"! ${fallbackMsg}`);\n return;\n }\n const beforeSendSpan = clientOptions.beforeSendSpan;\n if (beforeSendSpan && !isStreamedBeforeSendSpanCallback(beforeSendSpan)) {\n clientOptions.traceLifecycle = \"static\";\n DEBUG_BUILD && debug.warn(`${initialMessage} a beforeSendSpan callback using \\`withStreamedSpan\\`! ${fallbackMsg}`);\n return;\n }\n const buffer = new SpanBuffer(client);\n client.on(\"afterSpanEnd\", (span) => {\n if (!spanIsSampled(span)) {\n return;\n }\n buffer.add(captureSpan(span, client));\n });\n }\n };\n});\n\nexport { spanStreamingIntegration };\n//# sourceMappingURL=spanStreaming.js.map\n", + "function getBreadcrumbLogLevelFromHttpStatusCode(statusCode) {\n if (statusCode === void 0) {\n return void 0;\n } else if (statusCode >= 400 && statusCode < 500) {\n return \"warning\";\n } else if (statusCode >= 500) {\n return \"error\";\n } else {\n return void 0;\n }\n}\n\nexport { getBreadcrumbLogLevelFromHttpStatusCode };\n//# sourceMappingURL=breadcrumb-log-level.js.map\n", + "function replaceExports(exports, exportName, wrappedConstructor) {\n const original = exports[exportName];\n if (typeof original !== \"function\") {\n return;\n }\n try {\n exports[exportName] = wrappedConstructor;\n } catch {\n Object.defineProperty(exports, exportName, {\n value: wrappedConstructor,\n writable: true,\n configurable: true,\n enumerable: true\n });\n }\n if (exports.default === original) {\n try {\n exports.default = wrappedConstructor;\n } catch {\n Object.defineProperty(exports, \"default\", {\n value: wrappedConstructor,\n writable: true,\n configurable: true,\n enumerable: true\n });\n }\n }\n}\n\nexport { replaceExports };\n//# sourceMappingURL=exports.js.map\n", + "class LRUMap {\n constructor(_maxSize) {\n this._maxSize = _maxSize;\n this._cache = /* @__PURE__ */ new Map();\n }\n /** Get the current size of the cache */\n get size() {\n return this._cache.size;\n }\n /** Get an entry or undefined if it was not in the cache. Re-inserts to update the recently used order */\n get(key) {\n const value = this._cache.get(key);\n if (value === void 0) {\n return void 0;\n }\n this._cache.delete(key);\n this._cache.set(key, value);\n return value;\n }\n /** Insert an entry and evict an older entry if we've reached maxSize */\n set(key, value) {\n if (this._cache.size >= this._maxSize) {\n const nextKey = this._cache.keys().next().value;\n this._cache.delete(nextKey);\n }\n this._cache.set(key, value);\n }\n /** Remove an entry and return the entry if it was in the cache */\n remove(key) {\n const value = this._cache.get(key);\n if (value) {\n this._cache.delete(key);\n }\n return value;\n }\n /** Clear all entries */\n clear() {\n this._cache.clear();\n }\n /** Get all the keys */\n keys() {\n return Array.from(this._cache.keys());\n }\n /** Get all the values */\n values() {\n const values = [];\n this._cache.forEach((value) => values.push(value));\n return values;\n }\n}\n\nexport { LRUMap };\n//# sourceMappingURL=lru.js.map\n", + "import { dsnToString } from './utils/dsn.js';\nimport { createEnvelope } from './utils/envelope.js';\nimport { safeDateNow } from './utils/randomSafeContext.js';\n\nfunction createCheckInEnvelope(checkIn, dynamicSamplingContext, metadata, tunnel, dsn) {\n const headers = {\n sent_at: new Date(safeDateNow()).toISOString()\n };\n if (metadata?.sdk) {\n headers.sdk = {\n name: metadata.sdk.name,\n version: metadata.sdk.version\n };\n }\n if (!!tunnel && !!dsn) {\n headers.dsn = dsnToString(dsn);\n }\n if (dynamicSamplingContext) {\n headers.trace = dynamicSamplingContext;\n }\n const item = createCheckInEnvelopeItem(checkIn);\n return createEnvelope(headers, [item]);\n}\nfunction createCheckInEnvelopeItem(checkIn) {\n const checkInHeaders = {\n type: \"check_in\"\n };\n return [checkInHeaders, checkIn];\n}\n\nexport { createCheckInEnvelope };\n//# sourceMappingURL=checkin.js.map\n", + "import { makeDsn, dsnToString } from './utils/dsn.js';\n\nconst SENTRY_API_VERSION = \"7\";\nfunction getBaseApiEndpoint(dsn) {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : \"\";\n const port = dsn.port ? `:${dsn.port}` : \"\";\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : \"\"}/api/`;\n}\nfunction _getIngestEndpoint(dsn) {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\nfunction _encodedAuth(dsn, sdkInfo) {\n const params = {\n sentry_version: SENTRY_API_VERSION\n };\n if (dsn.publicKey) {\n params.sentry_key = dsn.publicKey;\n }\n if (sdkInfo) {\n params.sentry_client = `${sdkInfo.name}/${sdkInfo.version}`;\n }\n return new URLSearchParams(params).toString();\n}\nfunction getEnvelopeEndpointWithUrlEncodedAuth(dsn, tunnel, sdkInfo) {\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\nfunction getReportDialogEndpoint(dsnLike, dialogOptions) {\n const dsn = makeDsn(dsnLike);\n if (!dsn) {\n return \"\";\n }\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === \"dsn\") {\n continue;\n }\n if (key === \"onClose\") {\n continue;\n }\n if (key === \"user\") {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key])}`;\n }\n }\n return `${endpoint}?${encodedOptions}`;\n}\n\nexport { SENTRY_API_VERSION, getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n", + "import { streamedSpanJsonToSerializedSpan } from '../../utils/spanUtils.js';\n\nfunction spanJsonToSerializedStreamedSpan(span) {\n const streamedSpan = {\n trace_id: span.trace_id,\n span_id: span.span_id,\n parent_span_id: span.parent_span_id,\n name: span.description || \"\",\n start_timestamp: span.start_timestamp,\n end_timestamp: span.timestamp || span.start_timestamp,\n status: !span.status || span.status === \"ok\" || span.status === \"cancelled\" ? \"ok\" : \"error\",\n is_segment: false,\n attributes: { ...span.data },\n links: span.links\n };\n return streamedSpanJsonToSerializedSpan(streamedSpan);\n}\n\nexport { spanJsonToSerializedStreamedSpan };\n//# sourceMappingURL=spanJsonToStreamedSpan.js.map\n", + "import { isBrowser } from '../../utils/isBrowser.js';\nimport { hasSpanStreamingEnabled } from './hasSpanStreamingEnabled.js';\nimport { spanJsonToSerializedStreamedSpan } from './spanJsonToStreamedSpan.js';\n\nfunction extractGenAiSpansFromEvent(event, client) {\n if (event.type !== \"transaction\" || !event.spans?.length || !event.sdkProcessingMetadata?.hasGenAiSpans || client.getOptions().streamGenAiSpans === false || hasSpanStreamingEnabled(client)) {\n return void 0;\n }\n const genAiSpans = [];\n const remainingSpans = [];\n for (const span of event.spans) {\n if (span.op?.startsWith(\"gen_ai.\")) {\n genAiSpans.push(spanJsonToSerializedStreamedSpan(span));\n } else {\n remainingSpans.push(span);\n }\n }\n if (genAiSpans.length === 0) {\n return void 0;\n }\n event.spans = remainingSpans;\n const inferSetting = client.getDataCollectionOptions().userInfo ? \"auto\" : \"never\";\n return [\n { type: \"span\", item_count: genAiSpans.length, content_type: \"application/vnd.sentry.items.span.v2+json\" },\n {\n version: 2,\n ...isBrowser() && {\n ingest_settings: { infer_ip: inferSetting, infer_user_agent: inferSetting }\n },\n items: genAiSpans\n }\n ];\n}\n\nexport { extractGenAiSpansFromEvent };\n//# sourceMappingURL=extractGenAiSpans.js.map\n", + "import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\nfunction createClientReportEnvelope(discarded_events, dsn, timestamp) {\n const clientReportItem = [\n { type: \"client_report\" },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events\n }\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n", + "import { SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_PROFILE_ID } from '../semanticAttributes.js';\n\nfunction convertTransactionEventToSpanJson(event) {\n const { trace_id, parent_span_id, span_id, status, origin, data, op } = event.contexts?.trace ?? {};\n return {\n data: data ?? {},\n description: event.transaction,\n op,\n parent_span_id,\n span_id: span_id ?? \"\",\n start_timestamp: event.start_timestamp ?? 0,\n status,\n timestamp: event.timestamp,\n trace_id: trace_id ?? \"\",\n origin,\n profile_id: data?.[SEMANTIC_ATTRIBUTE_PROFILE_ID],\n exclusive_time: data?.[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME],\n measurements: event.measurements,\n is_segment: true\n };\n}\nfunction convertSpanJsonToTransactionEvent(span) {\n return {\n type: \"transaction\",\n timestamp: span.timestamp,\n start_timestamp: span.start_timestamp,\n transaction: span.description,\n contexts: {\n trace: {\n trace_id: span.trace_id,\n span_id: span.span_id,\n parent_span_id: span.parent_span_id,\n op: span.op,\n status: span.status,\n origin: span.origin,\n data: {\n ...span.data,\n ...span.profile_id && { [SEMANTIC_ATTRIBUTE_PROFILE_ID]: span.profile_id },\n ...span.exclusive_time && { [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: span.exclusive_time }\n }\n }\n },\n measurements: span.measurements\n };\n}\n\nexport { convertSpanJsonToTransactionEvent, convertTransactionEventToSpanJson };\n//# sourceMappingURL=transactionEvent.js.map\n", + "import { defaultPiiToCollectionOptions } from './defaultPiiToCollectionOptions.js';\n\nconst DEFAULTS = {\n userInfo: true,\n cookies: true,\n httpHeaders: { request: true, response: true },\n httpBodies: [\"incomingRequest\", \"outgoingRequest\", \"incomingResponse\", \"outgoingResponse\"],\n queryParams: true,\n genAI: { inputs: true, outputs: true },\n stackFrameVariables: true,\n frameContextLines: 5\n};\nfunction resolveDataCollectionOptions(options) {\n const base = options.dataCollection != null ? DEFAULTS : defaultPiiToCollectionOptions(options.sendDefaultPii);\n const dc = options.dataCollection ?? {};\n return {\n userInfo: dc.userInfo ?? base.userInfo,\n cookies: dc.cookies ?? base.cookies,\n httpHeaders: {\n request: dc.httpHeaders?.request ?? base.httpHeaders.request,\n response: dc.httpHeaders?.response ?? base.httpHeaders.response\n },\n httpBodies: dc.httpBodies ?? base.httpBodies,\n queryParams: dc.queryParams ?? base.queryParams,\n genAI: {\n inputs: dc.genAI?.inputs ?? base.genAI.inputs,\n outputs: dc.genAI?.outputs ?? base.genAI.outputs\n },\n stackFrameVariables: dc.stackFrameVariables ?? base.stackFrameVariables,\n frameContextLines: dc.frameContextLines ?? base.frameContextLines\n };\n}\n\nexport { resolveDataCollectionOptions };\n//# sourceMappingURL=resolveDataCollectionOptions.js.map\n", + "import { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { DEFAULT_ENVIRONMENT } from './constants.js';\nimport { getTraceContextFromScope, getCurrentScope, getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegration, afterSetupIntegrations, setupIntegrations } from './integration.js';\nimport { _INTERNAL_flushLogsBuffer } from './logs/internal.js';\nimport { _INTERNAL_flushMetricsBuffer } from './metrics/internal.js';\nimport { updateSession } from './session.js';\nimport { getDynamicSamplingContextFromScope } from './tracing/dynamicSamplingContext.js';\nimport { isStreamedBeforeSendSpanCallback } from './tracing/spans/beforeSendSpan.js';\nimport { extractGenAiSpansFromEvent } from './tracing/spans/extractGenAiSpans.js';\nimport { DEFAULT_TRANSPORT_BUFFER_SIZE } from './transports/base.js';\nimport { createClientReportEnvelope } from './utils/clientreport.js';\nimport { debug } from './utils/debug-logger.js';\nimport { makeDsn, dsnToString } from './utils/dsn.js';\nimport { addItemToEnvelope, createAttachmentEnvelopeItem } from './utils/envelope.js';\nimport { getPossibleEventMessages } from './utils/eventUtils.js';\nimport { isParameterizedString, isPrimitive, isThenable, isPlainObject } from './utils/is.js';\nimport { merge } from './utils/merge.js';\nimport { uuid4, checkOrSetAlreadyCaught } from './utils/misc.js';\nimport { parseSampleRate } from './utils/parseSampleRate.js';\nimport { prepareEvent } from './utils/prepareEvent.js';\nimport { makePromiseBuffer, SENTRY_BUFFER_FULL_ERROR } from './utils/promisebuffer.js';\nimport { safeMathRandom } from './utils/randomSafeContext.js';\nimport { shouldIgnoreSpan, reparentChildSpans } from './utils/should-ignore-span.js';\nimport { showSpanDropWarning } from './utils/spanUtils.js';\nimport { rejectedSyncPromise } from './utils/syncpromise.js';\nimport { safeUnref } from './utils/timer.js';\nimport { convertTransactionEventToSpanJson, convertSpanJsonToTransactionEvent } from './utils/transactionEvent.js';\nimport { resolveDataCollectionOptions } from './utils/data-collection/resolveDataCollectionOptions.js';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\nconst MISSING_RELEASE_FOR_SESSION_ERROR = \"Discarded session because of missing or non-string release\";\nconst INTERNAL_ERROR_SYMBOL = /* @__PURE__ */ Symbol.for(\"SentryInternalError\");\nconst DO_NOT_SEND_EVENT_SYMBOL = /* @__PURE__ */ Symbol.for(\"SentryDoNotSendEventError\");\nconst DEFAULT_FLUSH_INTERVAL = 5e3;\nfunction _makeInternalError(message) {\n return {\n message,\n [INTERNAL_ERROR_SYMBOL]: true\n };\n}\nfunction _makeDoNotSendEventError(message) {\n return {\n message,\n [DO_NOT_SEND_EVENT_SYMBOL]: true\n };\n}\nfunction _isInternalError(error) {\n return !!error && typeof error === \"object\" && INTERNAL_ERROR_SYMBOL in error;\n}\nfunction _isDoNotSendEventError(error) {\n return !!error && typeof error === \"object\" && DO_NOT_SEND_EVENT_SYMBOL in error;\n}\nfunction setupWeightBasedFlushing(client, afterCaptureHook, flushHook, estimateSizeFn, flushFn) {\n let weight = 0;\n let flushTimeout;\n let isTimerActive = false;\n client.on(flushHook, () => {\n weight = 0;\n clearTimeout(flushTimeout);\n isTimerActive = false;\n });\n client.on(afterCaptureHook, (item) => {\n weight += estimateSizeFn(item);\n if (weight >= 8e5) {\n flushFn(client);\n } else if (!isTimerActive) {\n const flushInterval = client.getOptions()._flushInterval ?? DEFAULT_FLUSH_INTERVAL;\n if (flushInterval > 0) {\n isTimerActive = true;\n flushTimeout = safeUnref(\n setTimeout(() => {\n flushFn(client);\n }, flushInterval)\n );\n }\n }\n });\n client.on(\"flush\", () => {\n flushFn(client);\n });\n}\nclass Client {\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {\n this._options = options;\n this._integrations = {};\n this._numProcessing = 0;\n this._outcomes = {};\n this._hooks = {};\n this._eventProcessors = [];\n this._promiseBuffer = makePromiseBuffer(options.transportOptions?.bufferSize ?? DEFAULT_TRANSPORT_BUFFER_SIZE);\n this._dataCollection = resolveDataCollectionOptions(options);\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n } else {\n DEBUG_BUILD && debug.warn(\"No DSN provided, client will not send events.\");\n }\n if (this._dsn) {\n const url = getEnvelopeEndpointWithUrlEncodedAuth(\n this._dsn,\n options.tunnel,\n options._metadata ? options._metadata.sdk : void 0\n );\n this._transport = options.transport({\n tunnel: this._options.tunnel,\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url\n });\n }\n this._options.enableLogs = this._options.enableLogs ?? this._options._experiments?.enableLogs;\n if (this._options.enableLogs) {\n setupWeightBasedFlushing(this, \"afterCaptureLog\", \"flushLogs\", estimateLogSizeInBytes, _INTERNAL_flushLogsBuffer);\n }\n const enableMetrics = this._options.enableMetrics ?? this._options._experiments?.enableMetrics ?? true;\n if (enableMetrics) {\n setupWeightBasedFlushing(\n this,\n \"afterCaptureMetric\",\n \"flushMetrics\",\n estimateMetricSizeInBytes,\n _INTERNAL_flushMetricsBuffer\n );\n }\n }\n /**\n * Captures an exception event and sends it to Sentry.\n *\n * Unlike `captureException` exported from every SDK, this method requires that you pass it the current scope.\n */\n captureException(exception, hint, scope) {\n const eventId = uuid4();\n if (checkOrSetAlreadyCaught(exception)) {\n DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n const hintWithEventId = {\n event_id: eventId,\n ...hint\n };\n this._process(\n () => this.eventFromException(exception, hintWithEventId).then((event) => this._captureEvent(event, hintWithEventId, scope)).then((res) => res),\n \"error\"\n );\n return hintWithEventId.event_id;\n }\n /**\n * Captures a message event and sends it to Sentry.\n *\n * Unlike `captureMessage` exported from every SDK, this method requires that you pass it the current scope.\n */\n captureMessage(message, level, hint, currentScope) {\n const hintWithEventId = {\n event_id: uuid4(),\n ...hint\n };\n const eventMessage = isParameterizedString(message) ? message : String(message);\n const isMessage = isPrimitive(message);\n const promisedEvent = isMessage ? this.eventFromMessage(eventMessage, level, hintWithEventId) : this.eventFromException(message, hintWithEventId);\n this._process(\n () => promisedEvent.then((event) => this._captureEvent(event, hintWithEventId, currentScope)),\n isMessage ? \"unknown\" : \"error\"\n );\n return hintWithEventId.event_id;\n }\n /**\n * Captures a manually created event and sends it to Sentry.\n *\n * Unlike `captureEvent` exported from every SDK, this method requires that you pass it the current scope.\n */\n captureEvent(event, hint, currentScope) {\n const eventId = uuid4();\n if (hint?.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n const hintWithEventId = {\n event_id: eventId,\n ...hint\n };\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanScope = sdkProcessingMetadata.capturedSpanScope;\n const capturedSpanIsolationScope = sdkProcessingMetadata.capturedSpanIsolationScope;\n const dataCategory = getDataCategoryByType(event.type);\n this._process(\n () => this._captureEvent(event, hintWithEventId, capturedSpanScope || currentScope, capturedSpanIsolationScope),\n dataCategory\n );\n return hintWithEventId.event_id;\n }\n /**\n * Captures a session.\n */\n captureSession(session) {\n this.sendSession(session);\n updateSession(session, { init: false });\n }\n /**\n * Get the current Dsn.\n */\n getDsn() {\n return this._dsn;\n }\n /**\n * Get the current options.\n */\n getOptions() {\n return this._options;\n }\n /**\n * Get the resolved data collection configuration.\n */\n getDataCollectionOptions() {\n return this._dataCollection;\n }\n /**\n * Get the SDK metadata.\n * @see SdkMetadata\n */\n getSdkMetadata() {\n return this._options._metadata;\n }\n /**\n * Returns the transport that is used by the client.\n * Please note that the transport gets lazy initialized so it will only be there once the first event has been sent.\n */\n getTransport() {\n return this._transport;\n }\n /**\n * Wait for all events to be sent or the timeout to expire, whichever comes first.\n *\n * @param timeout Maximum time in ms the client should wait for events to be flushed. Omitting this parameter will\n * cause the client to wait until all events are sent before resolving the promise.\n * @returns A promise that will resolve with `true` if all events are sent before the timeout, or `false` if there are\n * still events in the queue when the timeout is reached.\n */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async flush(timeout) {\n const transport = this._transport;\n this.emit(\"flush\");\n if (!transport) {\n return true;\n }\n const clientFinished = await this._isClientDoneProcessing(timeout);\n const transportFlushed = await transport.flush(timeout);\n return clientFinished && transportFlushed;\n }\n /**\n * Flush the event queue and set the client to `enabled = false`. See {@link Client.flush}.\n *\n * @param {number} timeout Maximum time in ms the client should wait before shutting down. Omitting this parameter will cause\n * the client to wait until all events are sent before disabling itself.\n * @returns {Promise} A promise which resolves to `true` if the flush completes successfully before the timeout, or `false` if\n * it doesn't.\n */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async close(timeout) {\n _INTERNAL_flushLogsBuffer(this);\n const result = await this.flush(timeout);\n this.getOptions().enabled = false;\n this.emit(\"close\");\n return result;\n }\n /**\n * Get all installed event processors.\n */\n getEventProcessors() {\n return this._eventProcessors;\n }\n /**\n * Adds an event processor that applies to any event processed by this client.\n */\n addEventProcessor(eventProcessor) {\n this._eventProcessors.push(eventProcessor);\n }\n /**\n * Initialize this client.\n * Call this after the client was set on a scope.\n */\n init() {\n if (this._isEnabled() || // Force integrations to be setup even if no DSN was set when we have\n // Spotlight enabled. This is particularly important for browser as we\n // don't support the `spotlight` option there and rely on the users\n // adding the `spotlightBrowserIntegration()` to their integrations which\n // wouldn't get initialized with the check below when there's no DSN set.\n this._options.integrations.some(({ name }) => name.startsWith(\"Spotlight\"))) {\n this._setupIntegrations();\n }\n }\n /**\n * Gets an installed integration by its name.\n *\n * @returns {Integration|undefined} The installed integration or `undefined` if no integration with that `name` was installed.\n */\n getIntegrationByName(integrationName) {\n return this._integrations[integrationName];\n }\n /**\n * Returns the names of all installed integrations.\n */\n getIntegrationNames() {\n return Object.keys(this._integrations);\n }\n /**\n * Add an integration to the client.\n * This can be used to e.g. lazy load integrations.\n * In most cases, this should not be necessary,\n * and you're better off just passing the integrations via `integrations: []` at initialization time.\n * However, if you find the need to conditionally load & add an integration, you can use `addIntegration` to do so.\n */\n addIntegration(integration) {\n const isAlreadyInstalled = this._integrations[integration.name];\n if (!isAlreadyInstalled && integration.beforeSetup) {\n integration.beforeSetup(this);\n }\n setupIntegration(this, integration, this._integrations);\n if (!isAlreadyInstalled) {\n afterSetupIntegrations(this, [integration]);\n }\n }\n /**\n * Send a fully prepared event to Sentry.\n */\n sendEvent(event, hint = {}) {\n this.emit(\"beforeSendEvent\", event, hint);\n const genAiSpanItem = extractGenAiSpansFromEvent(event, this);\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(env, createAttachmentEnvelopeItem(attachment));\n }\n if (genAiSpanItem) {\n env = addItemToEnvelope(env, genAiSpanItem);\n }\n this.sendEnvelope(env).then((sendResponse) => this.emit(\"afterSendEvent\", event, sendResponse));\n }\n /**\n * Send a session or session aggregrates to Sentry.\n */\n sendSession(session) {\n const { release: clientReleaseOption, environment: clientEnvironmentOption = DEFAULT_ENVIRONMENT } = this._options;\n if (\"aggregates\" in session) {\n const sessionAttrs = session.attrs || {};\n if (!sessionAttrs.release && !clientReleaseOption) {\n DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n return;\n }\n sessionAttrs.release = sessionAttrs.release || clientReleaseOption;\n sessionAttrs.environment = sessionAttrs.environment || clientEnvironmentOption;\n session.attrs = sessionAttrs;\n } else {\n if (!session.release && !clientReleaseOption) {\n DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n return;\n }\n session.release = session.release || clientReleaseOption;\n session.environment = session.environment || clientEnvironmentOption;\n }\n this.emit(\"beforeSendSession\", session);\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n this.sendEnvelope(env);\n }\n /**\n * Record on the client that an event got dropped (ie, an event that will not be sent to Sentry).\n */\n recordDroppedEvent(reason, category, count = 1) {\n if (this._options.sendClientReports) {\n const key = `${reason}:${category}`;\n DEBUG_BUILD && debug.log(`Recording outcome: \"${key}\"${count > 1 ? ` (${count} times)` : \"\"}`);\n this._outcomes[key] = (this._outcomes[key] || 0) + count;\n }\n }\n /**\n * Register a hook on this client.\n */\n on(hook, callback) {\n const hookCallbacks = this._hooks[hook] = this._hooks[hook] || /* @__PURE__ */ new Set();\n const uniqueCallback = (...args) => callback(...args);\n hookCallbacks.add(uniqueCallback);\n return () => {\n hookCallbacks.delete(uniqueCallback);\n };\n }\n /**\n * Emit a hook that was previously registered via `on()`.\n */\n emit(hook, ...rest) {\n const callbacks = this._hooks[hook];\n if (callbacks) {\n callbacks.forEach((callback) => callback(...rest));\n }\n }\n /**\n * Send an envelope to Sentry.\n */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async sendEnvelope(envelope) {\n this.emit(\"beforeEnvelope\", envelope);\n if (this._isEnabled() && this._transport) {\n try {\n return await this._transport.send(envelope);\n } catch (reason) {\n DEBUG_BUILD && debug.error(\"Error while sending envelope:\", reason);\n return {};\n }\n }\n DEBUG_BUILD && debug.error(\"Transport disabled\");\n return {};\n }\n /**\n * Register a cleanup function to be called when the client is disposed.\n * This is useful for integrations that need to clean up global state.\n *\n * NOTE: This is a no-op in the base `Client` class. Subclasses like `ServerRuntimeClient`\n * override this method to actually register and execute cleanup callbacks.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n registerCleanup(callback) {\n }\n /**\n * Disposes of the client and releases all resources.\n *\n * Subclasses should override this method to clean up their own resources, including invoking\n * any callbacks registered via {@link Client.registerCleanup}. The base implementation is a\n * no-op and does NOT execute registered cleanup callbacks.\n *\n * After calling dispose(), the client should not be used anymore.\n */\n dispose() {\n }\n /* eslint-enable @typescript-eslint/unified-signatures */\n /** Setup integrations for this client. */\n _setupIntegrations() {\n const { integrations } = this._options;\n this._integrations = setupIntegrations(this, integrations);\n afterSetupIntegrations(this, integrations);\n }\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n let crashed = event.level === \"fatal\";\n let errored = false;\n const exceptions = event.exception?.values;\n if (exceptions) {\n errored = true;\n crashed = false;\n for (const ex of exceptions) {\n if (ex.mechanism?.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n const sessionNonTerminal = session.status === \"ok\";\n const shouldUpdateAndSend = sessionNonTerminal && session.errors === 0 || sessionNonTerminal && crashed;\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...crashed && { status: \"crashed\" },\n errors: session.errors || Number(errored || crashed)\n });\n this.captureSession(session);\n }\n }\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n async _isClientDoneProcessing(timeout) {\n let ticked = 0;\n while (!timeout || ticked < timeout) {\n await new Promise((resolve) => setTimeout(resolve, 1));\n if (!this._numProcessing) {\n return true;\n }\n ticked++;\n }\n return false;\n }\n /** Determines whether this SDK is enabled and a transport is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._transport !== void 0;\n }\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A new event with more information.\n */\n _prepareEvent(event, hint, currentScope, isolationScope) {\n const options = this.getOptions();\n const integrations = this.getIntegrationNames();\n if (!hint.integrations && integrations.length) {\n hint.integrations = integrations;\n }\n this.emit(\"preprocessEvent\", event, hint);\n if (!event.type) {\n isolationScope.setLastEventId(event.event_id || hint.event_id);\n }\n return prepareEvent(options, event, hint, currentScope, this, isolationScope).then((evt) => {\n if (evt === null) {\n return evt;\n }\n this.emit(\"postprocessEvent\", evt, hint);\n evt.contexts = {\n trace: { ...evt.contexts?.trace, ...getTraceContextFromScope(currentScope) },\n ...evt.contexts\n };\n const dynamicSamplingContext = getDynamicSamplingContextFromScope(this, currentScope);\n evt.sdkProcessingMetadata = {\n dynamicSamplingContext,\n ...evt.sdkProcessingMetadata\n };\n return evt;\n });\n }\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(event, hint = {}, currentScope = getCurrentScope(), isolationScope = getIsolationScope()) {\n if (DEBUG_BUILD && isErrorEvent(event)) {\n debug.log(`Captured error event \\`${getPossibleEventMessages(event)[0] || \"\"}\\``);\n }\n return this._processEvent(event, hint, currentScope, isolationScope).then(\n (finalEvent) => {\n return finalEvent.event_id;\n },\n (reason) => {\n if (DEBUG_BUILD) {\n if (_isDoNotSendEventError(reason)) {\n debug.log(reason.message);\n } else if (_isInternalError(reason)) {\n debug.warn(reason.message);\n } else {\n debug.warn(reason);\n }\n }\n return void 0;\n }\n );\n }\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n _processEvent(event, hint, currentScope, isolationScope) {\n const options = this.getOptions();\n const { sampleRate } = options;\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || \"error\";\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n const parsedSampleRate = typeof sampleRate === \"undefined\" ? void 0 : parseSampleRate(sampleRate);\n if (isError && typeof parsedSampleRate === \"number\" && safeMathRandom() > parsedSampleRate) {\n this.recordDroppedEvent(\"sample_rate\", \"error\");\n return rejectedSyncPromise(\n _makeDoNotSendEventError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`\n )\n );\n }\n const dataCategory = getDataCategoryByType(event.type);\n return this._prepareEvent(event, hint, currentScope, isolationScope).then((prepared) => {\n if (prepared === null) {\n this.recordDroppedEvent(\"event_processor\", dataCategory);\n throw _makeDoNotSendEventError(\"An event processor returned `null`, will not send event.\");\n }\n const isInternalException = hint.data?.__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n const result = processBeforeSend(this, options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n }).then((processedEvent) => {\n if (processedEvent === null) {\n this.recordDroppedEvent(\"before_send\", dataCategory);\n if (isTransaction) {\n const spans = event.spans || [];\n const spanCount = 1 + spans.length;\n this.recordDroppedEvent(\"before_send\", \"span\", spanCount);\n }\n throw _makeDoNotSendEventError(`${beforeSendLabel} returned \\`null\\`, will not send event.`);\n }\n const session = currentScope.getSession() || isolationScope.getSession();\n if (isError && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n if (isTransaction) {\n const spanCountBefore = processedEvent.sdkProcessingMetadata?.spanCountBeforeProcessing || 0;\n const spanCountAfter = processedEvent.spans ? processedEvent.spans.length : 0;\n const droppedSpanCount = spanCountBefore - spanCountAfter;\n if (droppedSpanCount > 0) {\n this.recordDroppedEvent(\"before_send\", \"span\", droppedSpanCount);\n }\n }\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = \"custom\";\n processedEvent.transaction_info = {\n ...transactionInfo,\n source\n };\n }\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n }).then(null, (reason) => {\n if (_isDoNotSendEventError(reason) || _isInternalError(reason)) {\n throw reason;\n }\n this.captureException(reason, {\n mechanism: {\n handled: false,\n type: \"internal\"\n },\n data: {\n __sentry__: true\n },\n originalException: reason\n });\n throw _makeInternalError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${reason}`\n );\n });\n }\n /**\n * Occupies the client with processing and event\n */\n _process(taskProducer, dataCategory) {\n this._numProcessing++;\n void this._promiseBuffer.add(taskProducer).then(\n (value) => {\n this._numProcessing--;\n return value;\n },\n (reason) => {\n this._numProcessing--;\n if (reason === SENTRY_BUFFER_FULL_ERROR) {\n this.recordDroppedEvent(\"queue_overflow\", dataCategory);\n }\n return reason;\n }\n );\n }\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.entries(outcomes).map(([key, quantity]) => {\n const [reason, category] = key.split(\":\");\n return {\n reason,\n category,\n quantity\n };\n });\n }\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n DEBUG_BUILD && debug.log(\"Flushing outcomes...\");\n const outcomes = this._clearOutcomes();\n if (outcomes.length === 0) {\n DEBUG_BUILD && debug.log(\"No outcomes to send\");\n return;\n }\n if (!this._dsn) {\n DEBUG_BUILD && debug.log(\"No dsn provided, will not send outcomes\");\n return;\n }\n DEBUG_BUILD && debug.log(\"Sending outcomes:\", outcomes);\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n this.sendEnvelope(envelope);\n }\n}\nfunction getDataCategoryByType(type) {\n return type === \"replay_event\" ? \"replay\" : type || \"error\";\n}\nfunction _validateBeforeSendResult(beforeSendResult, beforeSendLabel) {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n (event) => {\n if (!isPlainObject(event) && event !== null) {\n throw _makeInternalError(invalidValueError);\n }\n return event;\n },\n (e) => {\n throw _makeInternalError(`${beforeSendLabel} rejected with ${e}`);\n }\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw _makeInternalError(invalidValueError);\n }\n return beforeSendResult;\n}\nfunction processBeforeSend(client, options, event, hint) {\n const { beforeSend, beforeSendTransaction, ignoreSpans } = options;\n const beforeSendSpan = !isStreamedBeforeSendSpanCallback(options.beforeSendSpan) && options.beforeSendSpan;\n let processedEvent = event;\n if (isErrorEvent(processedEvent) && beforeSend) {\n return beforeSend(processedEvent, hint);\n }\n if (isTransactionEvent(processedEvent)) {\n if (beforeSendSpan || ignoreSpans) {\n const rootSpanJson = convertTransactionEventToSpanJson(processedEvent);\n if (ignoreSpans?.length && shouldIgnoreSpan(\n { description: rootSpanJson.description, op: rootSpanJson.op, attributes: rootSpanJson.data },\n ignoreSpans\n )) {\n return null;\n }\n if (beforeSendSpan) {\n const processedRootSpanJson = beforeSendSpan(rootSpanJson);\n if (!processedRootSpanJson) {\n showSpanDropWarning();\n } else {\n processedEvent = merge(event, convertSpanJsonToTransactionEvent(processedRootSpanJson));\n }\n }\n if (processedEvent.spans) {\n const processedSpans = [];\n const initialSpans = processedEvent.spans;\n for (const span of initialSpans) {\n if (ignoreSpans?.length && shouldIgnoreSpan({ description: span.description, op: span.op, attributes: span.data }, ignoreSpans)) {\n reparentChildSpans(initialSpans, span);\n continue;\n }\n if (beforeSendSpan) {\n const processedSpan = beforeSendSpan(span);\n if (!processedSpan) {\n showSpanDropWarning();\n processedSpans.push(span);\n } else {\n processedSpans.push(processedSpan);\n }\n } else {\n processedSpans.push(span);\n }\n }\n const droppedSpans = processedEvent.spans.length - processedSpans.length;\n if (droppedSpans) {\n client.recordDroppedEvent(\"before_send\", \"span\", droppedSpans);\n }\n processedEvent.spans = processedSpans;\n }\n }\n if (beforeSendTransaction) {\n if (processedEvent.spans) {\n const spanCountBefore = processedEvent.spans.length;\n processedEvent.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n spanCountBeforeProcessing: spanCountBefore\n };\n }\n return beforeSendTransaction(processedEvent, hint);\n }\n }\n return processedEvent;\n}\nfunction isErrorEvent(event) {\n return event.type === void 0;\n}\nfunction isTransactionEvent(event) {\n return event.type === \"transaction\";\n}\nfunction estimateMetricSizeInBytes(metric) {\n let weight = 0;\n if (metric.name) {\n weight += metric.name.length * 2;\n }\n weight += 8;\n return weight + estimateAttributesSizeInBytes(metric.attributes);\n}\nfunction estimateLogSizeInBytes(log) {\n let weight = 0;\n if (log.message) {\n weight += log.message.length * 2;\n }\n return weight + estimateAttributesSizeInBytes(log.attributes);\n}\nfunction estimateAttributesSizeInBytes(attributes) {\n if (!attributes) {\n return 0;\n }\n let weight = 0;\n Object.values(attributes).forEach((value) => {\n if (Array.isArray(value)) {\n weight += value.length * estimatePrimitiveSizeInBytes(value[0]);\n } else if (isPrimitive(value)) {\n weight += estimatePrimitiveSizeInBytes(value);\n } else {\n weight += 100;\n }\n });\n return weight;\n}\nfunction estimatePrimitiveSizeInBytes(value) {\n if (typeof value === \"string\") {\n return value.length * 2;\n } else if (typeof value === \"number\") {\n return 8;\n } else if (typeof value === \"boolean\") {\n return 4;\n }\n return 0;\n}\n\nexport { Client };\n//# sourceMappingURL=client.js.map\n", + "function addUserAgentToTransportHeaders(options) {\n const sdkMetadata = options._metadata?.sdk;\n const sdkUserAgent = sdkMetadata?.name && sdkMetadata?.version ? `${sdkMetadata?.name}/${sdkMetadata?.version}` : void 0;\n options.transportOptions = {\n ...options.transportOptions,\n headers: {\n ...sdkUserAgent && { \"user-agent\": sdkUserAgent },\n ...options.transportOptions?.headers\n }\n };\n}\n\nexport { addUserAgentToTransportHeaders };\n//# sourceMappingURL=userAgent.js.map\n", + "import { createCheckInEnvelope } from './checkin.js';\nimport { Client } from './client.js';\nimport { getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { spanStreamingIntegration } from './integrations/spanStreaming.js';\nimport { DEFAULT_TRANSPORT_BUFFER_SIZE } from './transports/base.js';\nimport { addUserAgentToTransportHeaders } from './transports/userAgent.js';\nimport { debug } from './utils/debug-logger.js';\nimport { eventFromUnknownInput, eventFromMessage } from './utils/eventbuilder.js';\nimport { uuid4 } from './utils/misc.js';\nimport { makePromiseBuffer } from './utils/promisebuffer.js';\nimport { resolvedSyncPromise } from './utils/syncpromise.js';\nimport { _getTraceInfoFromScope } from './utils/trace-info.js';\n\nclass ServerRuntimeClient extends Client {\n /**\n * Creates a new Edge SDK instance.\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n addUserAgentToTransportHeaders(options);\n if (options.traceLifecycle === \"stream\" && !options.integrations.some((i) => i.name === \"SpanStreaming\")) {\n options.integrations.push(spanStreamingIntegration());\n }\n super(options);\n this._disposeCallbacks = [];\n this._setUpMetricsProcessing();\n }\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n const event = eventFromUnknownInput(this, this._options.stackParser, exception, hint);\n event.level = \"error\";\n return resolvedSyncPromise(event);\n }\n /**\n * @inheritDoc\n */\n eventFromMessage(message, level = \"info\", hint) {\n return resolvedSyncPromise(\n eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace)\n );\n }\n /**\n * @inheritDoc\n */\n captureException(exception, hint, scope) {\n setCurrentRequestSessionErroredOrCrashed(hint);\n return super.captureException(exception, hint, scope);\n }\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, scope) {\n const isException = !event.type && event.exception?.values && event.exception.values.length > 0;\n if (isException) {\n setCurrentRequestSessionErroredOrCrashed(hint);\n }\n return super.captureEvent(event, hint, scope);\n }\n /**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\n captureCheckIn(checkIn, monitorConfig, scope) {\n const id = \"checkInId\" in checkIn && checkIn.checkInId ? checkIn.checkInId : uuid4();\n if (!this._isEnabled()) {\n DEBUG_BUILD && debug.warn(\"SDK not enabled, will not capture check-in.\");\n return id;\n }\n const options = this.getOptions();\n const { release, environment, tunnel } = options;\n const serializedCheckIn = {\n check_in_id: id,\n monitor_slug: checkIn.monitorSlug,\n status: checkIn.status,\n release,\n environment\n };\n if (\"duration\" in checkIn) {\n serializedCheckIn.duration = checkIn.duration;\n }\n if (monitorConfig) {\n serializedCheckIn.monitor_config = {\n schedule: monitorConfig.schedule,\n checkin_margin: monitorConfig.checkinMargin,\n max_runtime: monitorConfig.maxRuntime,\n timezone: monitorConfig.timezone,\n failure_issue_threshold: monitorConfig.failureIssueThreshold,\n recovery_threshold: monitorConfig.recoveryThreshold\n };\n }\n const [dynamicSamplingContext, traceContext] = _getTraceInfoFromScope(this, scope);\n if (traceContext) {\n serializedCheckIn.contexts = {\n trace: traceContext\n };\n }\n const envelope = createCheckInEnvelope(\n serializedCheckIn,\n dynamicSamplingContext,\n this.getSdkMetadata(),\n tunnel,\n this.getDsn()\n );\n DEBUG_BUILD && debug.log(\"Sending checkin:\", checkIn.monitorSlug, checkIn.status);\n this.sendEnvelope(envelope);\n return id;\n }\n /**\n * @inheritDoc\n */\n registerCleanup(callback) {\n this._disposeCallbacks.push(callback);\n }\n /**\n * Disposes of the client and releases all resources.\n *\n * This method clears all internal state to allow the client to be garbage collected.\n * It clears hooks, event processors, integrations, transport, and other internal references.\n *\n * Call this method after flushing to allow the client to be garbage collected.\n * After calling dispose(), the client should not be used anymore.\n *\n * Subclasses should override this method to clean up their own resources and call `super.dispose()`.\n */\n dispose() {\n DEBUG_BUILD && debug.log(\"Disposing client...\");\n for (const callback of this._disposeCallbacks) {\n try {\n callback();\n } catch {\n }\n }\n this._disposeCallbacks.length = 0;\n for (const hookName of Object.keys(this._hooks)) {\n this._hooks[hookName]?.clear();\n }\n this._hooks = {};\n this._eventProcessors.length = 0;\n this._integrations = {};\n this._outcomes = {};\n this._transport = void 0;\n this._promiseBuffer = makePromiseBuffer(DEFAULT_TRANSPORT_BUFFER_SIZE);\n }\n /**\n * @inheritDoc\n */\n _prepareEvent(event, hint, currentScope, isolationScope) {\n if (this._options.platform) {\n event.platform = event.platform || this._options.platform;\n }\n if (this._options.runtime) {\n event.contexts = {\n ...event.contexts,\n runtime: event.contexts?.runtime || this._options.runtime\n };\n }\n if (this._options.serverName) {\n event.server_name = event.server_name || this._options.serverName;\n }\n return super._prepareEvent(event, hint, currentScope, isolationScope);\n }\n /**\n * Process a server-side metric before it is captured.\n */\n _setUpMetricsProcessing() {\n this.on(\"processMetric\", (metric) => {\n if (this._options.serverName) {\n metric.attributes = {\n \"server.address\": this._options.serverName,\n ...metric.attributes\n };\n }\n });\n }\n}\nfunction setCurrentRequestSessionErroredOrCrashed(eventHint) {\n const requestSession = getIsolationScope().getScopeData().sdkProcessingMetadata.requestSession;\n if (requestSession) {\n const isHandledException = eventHint?.mechanism?.handled ?? true;\n if (isHandledException && requestSession.status !== \"crashed\") {\n requestSession.status = \"errored\";\n } else if (!isHandledException) {\n requestSession.status = \"crashed\";\n }\n }\n}\n\nexport { ServerRuntimeClient };\n//# sourceMappingURL=server-runtime-client.js.map\n", + "import { normalizeStackTracePath, UNKNOWN_FUNCTION } from './stacktrace.js';\n\nfunction filenameIsInApp(filename, isNative = false) {\n const isInternal = isNative || filename && // It's not internal if it's an absolute linux path\n !filename.startsWith(\"/\") && // It's not internal if it's an absolute windows path\n !filename.match(/^[A-Z]:/) && // It's not internal if the path is starting with a dot\n !filename.startsWith(\".\") && // It's not internal if the frame has a protocol. In node, this is usually the case if the file got pre-processed with a bundler like webpack\n !filename.match(/^[a-zA-Z]([a-zA-Z0-9.\\-+])*:\\/\\//);\n return !isInternal && filename !== void 0 && !filename.includes(\"node_modules/\");\n}\nfunction node(getModule) {\n const FILENAME_MATCH = /^\\s*[-]{4,}$/;\n const FULL_MATCH = /at (?:async )?(?:(.+?)\\s+\\()?(?:(.+):(\\d+):(\\d+)?|([^)]+))\\)?/;\n const DATA_URI_MATCH = /at (?:async )?(.+?) \\(data:(.*?),/;\n return (line) => {\n const dataUriMatch = line.match(DATA_URI_MATCH);\n if (dataUriMatch) {\n return {\n filename: ``,\n function: dataUriMatch[1]\n };\n }\n const lineMatch = line.match(FULL_MATCH);\n if (lineMatch) {\n let object;\n let method;\n let functionName;\n let typeName;\n let methodName;\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n let methodStart = functionName.lastIndexOf(\".\");\n if (functionName[methodStart - 1] === \".\") {\n methodStart--;\n }\n if (methodStart > 0) {\n object = functionName.slice(0, methodStart);\n method = functionName.slice(methodStart + 1);\n const objectEnd = object.indexOf(\".Module\");\n if (objectEnd > 0) {\n functionName = functionName.slice(objectEnd + 1);\n object = object.slice(0, objectEnd);\n }\n }\n typeName = void 0;\n }\n if (method) {\n typeName = object;\n methodName = method;\n }\n if (method === \"\") {\n methodName = void 0;\n functionName = void 0;\n }\n if (functionName === void 0) {\n methodName = methodName || UNKNOWN_FUNCTION;\n functionName = typeName ? `${typeName}.${methodName}` : methodName;\n }\n let filename = normalizeStackTracePath(lineMatch[2]);\n const isNative = lineMatch[5] === \"native\";\n if (!filename && lineMatch[5] && !isNative) {\n filename = lineMatch[5];\n }\n const maybeDecodedFilename = filename ? _safeDecodeURI(filename) : void 0;\n return {\n filename: maybeDecodedFilename ?? filename,\n module: maybeDecodedFilename && getModule?.(maybeDecodedFilename),\n function: functionName,\n lineno: _parseIntOrUndefined(lineMatch[3]),\n colno: _parseIntOrUndefined(lineMatch[4]),\n in_app: filenameIsInApp(filename || \"\", isNative)\n };\n }\n if (line.match(FILENAME_MATCH)) {\n return {\n filename: line\n };\n }\n return void 0;\n };\n}\nfunction nodeStackLineParser(getModule) {\n return [90, node(getModule)];\n}\nfunction _parseIntOrUndefined(input) {\n return parseInt(input || \"\", 10) || void 0;\n}\nfunction _safeDecodeURI(filename) {\n try {\n return decodeURI(filename);\n } catch {\n return void 0;\n }\n}\n\nexport { filenameIsInApp, node, nodeStackLineParser };\n//# sourceMappingURL=node-stack-trace.js.map\n", + "const requestLayerStore = /* @__PURE__ */ new WeakMap();\nconst storeLayer = (req, layer) => {\n const store = requestLayerStore.get(req);\n if (!store) {\n requestLayerStore.set(req, [layer]);\n } else {\n store.push(layer);\n }\n};\nconst getStoredLayers = (req) => {\n let store = requestLayerStore.get(req);\n if (!store) {\n store = [];\n requestLayerStore.set(req, store);\n }\n return store;\n};\n\nexport { getStoredLayers, storeLayer };\n//# sourceMappingURL=request-layer-store.js.map\n", + "const ATTR_EXPRESS_NAME = \"express.name\";\nconst ATTR_HTTP_ROUTE = \"http.route\";\nconst ATTR_EXPRESS_TYPE = \"express.type\";\nconst ExpressLayerType_ROUTER = \"router\";\nconst ExpressLayerType_MIDDLEWARE = \"middleware\";\nconst ExpressLayerType_REQUEST_HANDLER = \"request_handler\";\n\nexport { ATTR_EXPRESS_NAME, ATTR_EXPRESS_TYPE, ATTR_HTTP_ROUTE, ExpressLayerType_MIDDLEWARE, ExpressLayerType_REQUEST_HANDLER, ExpressLayerType_ROUTER };\n//# sourceMappingURL=types.js.map\n", + "import { getStoredLayers } from './request-layer-store.js';\nimport { ExpressLayerType_ROUTER, ATTR_EXPRESS_TYPE, ATTR_EXPRESS_NAME, ExpressLayerType_REQUEST_HANDLER, ExpressLayerType_MIDDLEWARE } from './types.js';\nimport { stringMatchesSomePattern } from '../../utils/string.js';\n\nconst asErrorAndMessage = (error) => error instanceof Error ? [error, error.message] : [String(error), String(error)];\nfunction isRoutePattern(route) {\n return route.includes(\":\") || route.includes(\"*\");\n}\nconst getLayerMetadata = (route, layer, layerPath) => {\n if (layer.name === \"router\") {\n const maybeRouterPath = getRouterPath(\"\", layer);\n const extractedRouterPath = maybeRouterPath ? maybeRouterPath : layerPath || route || \"/\";\n return {\n attributes: {\n [ATTR_EXPRESS_NAME]: extractedRouterPath,\n [ATTR_EXPRESS_TYPE]: ExpressLayerType_ROUTER\n },\n name: `router - ${extractedRouterPath}`\n };\n } else if (layer.name === \"bound dispatch\" || layer.name === \"handle\") {\n return {\n attributes: {\n [ATTR_EXPRESS_NAME]: (route || layerPath) ?? \"request handler\",\n [ATTR_EXPRESS_TYPE]: ExpressLayerType_REQUEST_HANDLER\n },\n name: `request handler${layer.path ? ` - ${route || layerPath}` : \"\"}`\n };\n } else {\n return {\n attributes: {\n [ATTR_EXPRESS_NAME]: layer.name,\n [ATTR_EXPRESS_TYPE]: ExpressLayerType_MIDDLEWARE\n },\n name: `middleware - ${layer.name}`\n };\n }\n};\nconst getRouterPath = (path, layer) => {\n const stackLayer = Array.isArray(layer.handle?.stack) ? layer.handle?.stack?.[0] : void 0;\n if (stackLayer?.route?.path) {\n return `${path}${stackLayer.route.path}`;\n }\n if (stackLayer && Array.isArray(stackLayer?.handle?.stack)) {\n return getRouterPath(path, stackLayer);\n }\n return path;\n};\nconst isLayerIgnored = (name, type, config) => {\n if (Array.isArray(config?.ignoreLayersType) && config?.ignoreLayersType?.includes(type)) {\n return true;\n }\n if (!Array.isArray(config?.ignoreLayers)) {\n return false;\n }\n try {\n return stringMatchesSomePattern(name, config.ignoreLayers, true);\n } catch {\n }\n return false;\n};\nfunction getActualMatchedRoute(req, constructedRoute) {\n const layersStore = getStoredLayers(req);\n if (layersStore.length === 0) {\n return void 0;\n }\n if (layersStore.every((path) => path === \"/\")) {\n return req.originalUrl === \"/\" ? \"/\" : void 0;\n }\n if (constructedRoute === \"*\") {\n return constructedRoute;\n }\n if (constructedRoute.includes(\"/\") && (constructedRoute.includes(\",\") || constructedRoute.includes(\"\\\\\") || constructedRoute.includes(\"*\") || constructedRoute.includes(\"[\"))) {\n return constructedRoute;\n }\n const normalizedRoute = constructedRoute.startsWith(\"/\") ? constructedRoute : `/${constructedRoute}`;\n const isValidRoute = normalizedRoute.length > 0 && (req.originalUrl === normalizedRoute || req.originalUrl.startsWith(normalizedRoute) || isRoutePattern(normalizedRoute));\n return isValidRoute ? normalizedRoute : void 0;\n}\nfunction getConstructedRoute(req) {\n const layersStore = getStoredLayers(req);\n let constructedRoute = \"\";\n for (const path of layersStore) {\n if (path === \"/\" || path === \"/*\") {\n continue;\n }\n constructedRoute += !constructedRoute || constructedRoute.endsWith(\"/\") ? path : `/${path}`;\n }\n return constructedRoute.replace(/\\/{2,}/g, \"/\");\n}\nconst getLayerPath = (args) => {\n const firstArg = args[0];\n if (Array.isArray(firstArg)) {\n return firstArg.map((arg) => extractLayerPathSegment(arg) || \"\").join(\",\");\n }\n return extractLayerPathSegment(firstArg);\n};\nconst extractLayerPathSegment = (arg) => typeof arg === \"string\" ? arg : arg instanceof RegExp || typeof arg === \"number\" ? String(arg) : void 0;\nconst isExpressWithRouterPrototype = (express) => isExpressRouterPrototype(express?.Router?.prototype);\nconst isExpressRouterPrototype = (routerProto) => (typeof routerProto === \"object\" || typeof routerProto === \"function\") && !!routerProto && \"route\" in routerProto && typeof routerProto.route === \"function\";\nconst isExpressWithoutRouterPrototype = (express) => isExpressRouterPrototype(express.Router) && !isExpressWithRouterPrototype(express);\nfunction getStatusCodeFromResponse(error) {\n const statusCode = error.status || error.statusCode || error.status_code || error.output?.statusCode;\n return statusCode ? parseInt(statusCode, 10) : 500;\n}\nfunction defaultShouldHandleError(error) {\n const status = getStatusCodeFromResponse(error);\n return status >= 500;\n}\n\nexport { asErrorAndMessage, defaultShouldHandleError, getActualMatchedRoute, getConstructedRoute, getLayerMetadata, getLayerPath, getRouterPath, isExpressWithRouterPrototype, isExpressWithoutRouterPrototype, isLayerIgnored, isRoutePattern };\n//# sourceMappingURL=utils.js.map\n", + "import { getIsolationScope } from '../../currentScopes.js';\nimport { httpRequestToRequestData } from '../../utils/request.js';\n\nfunction setSDKProcessingMetadata(request) {\n const sdkProcMeta = getIsolationScope()?.getScopeData()?.sdkProcessingMetadata;\n if (!sdkProcMeta?.normalizedRequest) {\n const normalizedRequest = httpRequestToRequestData(request);\n getIsolationScope().setSDKProcessingMetadata({ normalizedRequest });\n }\n}\n\nexport { setSDKProcessingMetadata };\n//# sourceMappingURL=set-sdk-processing-metadata.js.map\n", + "import { DEBUG_BUILD } from '../../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { debug } from '../../utils/debug-logger.js';\nimport { getActiveSpan } from '../../utils/spanUtils.js';\nimport { SPAN_STATUS_ERROR } from '../../tracing/spanstatus.js';\nimport { getOriginalFunction, markFunctionWrapped } from '../../utils/object.js';\nimport { getIsolationScope } from '../../currentScopes.js';\nimport { startSpanManual, withActiveSpan } from '../../tracing/trace.js';\nimport { storeLayer, getStoredLayers } from './request-layer-store.js';\nimport { ATTR_EXPRESS_NAME, ATTR_EXPRESS_TYPE, ATTR_HTTP_ROUTE, ExpressLayerType_ROUTER } from './types.js';\nimport { getConstructedRoute, getActualMatchedRoute, getLayerMetadata, isLayerIgnored, asErrorAndMessage } from './utils.js';\nimport { getDefaultIsolationScope } from '../../defaultScopes.js';\nimport { setSDKProcessingMetadata } from './set-sdk-processing-metadata.js';\n\nfunction patchLayer(getOptions, maybeLayer, layerPath) {\n if (!maybeLayer?.handle) {\n return;\n }\n const layer = maybeLayer;\n const layerHandleOriginal = layer.handle;\n if (getOriginalFunction(layerHandleOriginal)) {\n return;\n }\n if (layerHandleOriginal.length === 4) {\n return;\n }\n function layerHandlePatched(req, res, ...otherArgs) {\n const options = getOptions();\n setSDKProcessingMetadata(req);\n const parentSpan = getActiveSpan();\n if (!parentSpan) {\n return layerHandleOriginal.apply(this, [req, res, ...otherArgs]);\n }\n if (layerPath) {\n storeLayer(req, layerPath);\n }\n const storedLayers = getStoredLayers(req);\n const isLayerPathStored = !!layerPath;\n const constructedRoute = getConstructedRoute(req);\n const actualMatchedRoute = getActualMatchedRoute(req, constructedRoute);\n options.onRouteResolved?.(actualMatchedRoute);\n const metadata = getLayerMetadata(constructedRoute, layer, layerPath);\n const name = metadata.attributes[ATTR_EXPRESS_NAME];\n const type = metadata.attributes[ATTR_EXPRESS_TYPE];\n const attributes = Object.assign(metadata.attributes, {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.express\",\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.express`\n });\n if (actualMatchedRoute) {\n attributes[ATTR_HTTP_ROUTE] = actualMatchedRoute;\n }\n if (isLayerIgnored(metadata.attributes[ATTR_EXPRESS_NAME], type, options)) {\n if (isLayerPathStored) {\n storedLayers.pop();\n }\n return layerHandleOriginal.apply(this, [req, res, ...otherArgs]);\n }\n const currentScope = getIsolationScope();\n if (currentScope !== getDefaultIsolationScope()) {\n if (type === \"request_handler\") {\n const method = req.method ? req.method.toUpperCase() : \"GET\";\n currentScope.setTransactionName(`${method} ${constructedRoute}`);\n }\n } else {\n DEBUG_BUILD && debug.warn(\"Isolation scope is still default isolation scope - skipping setting transactionName\");\n }\n return startSpanManual({ name, attributes }, (span) => {\n let spanHasEnded = false;\n if (metadata.attributes[ATTR_EXPRESS_TYPE] === ExpressLayerType_ROUTER) {\n span.end();\n spanHasEnded = true;\n }\n const onResponseFinish = () => {\n if (!spanHasEnded) {\n spanHasEnded = true;\n span.end();\n }\n };\n for (let i = 0; i < otherArgs.length; i++) {\n const callback = otherArgs[i];\n if (typeof callback !== \"function\") {\n continue;\n }\n otherArgs[i] = function(...args) {\n const maybeError = args[0];\n const isError = !!maybeError && maybeError !== \"route\" && maybeError !== \"router\";\n if (!spanHasEnded && isError) {\n const [_, message] = asErrorAndMessage(maybeError);\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message\n });\n }\n if (!spanHasEnded) {\n spanHasEnded = true;\n res.removeListener(\"finish\", onResponseFinish);\n span.end();\n }\n if (!(req.route && isError) && isLayerPathStored) {\n storedLayers.pop();\n }\n return withActiveSpan(parentSpan, () => callback.apply(this, args));\n };\n break;\n }\n try {\n return layerHandleOriginal.apply(this, [req, res, ...otherArgs]);\n } catch (anyError) {\n const [_, message] = asErrorAndMessage(anyError);\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message\n });\n throw anyError;\n } finally {\n if (!spanHasEnded) {\n res.once(\"finish\", onResponseFinish);\n }\n }\n });\n }\n for (const key in layerHandleOriginal) {\n if (key in layerHandlePatched) {\n continue;\n }\n Object.defineProperty(layerHandlePatched, key, {\n get() {\n return layerHandleOriginal[key];\n },\n set(value) {\n layerHandleOriginal[key] = value;\n }\n });\n }\n markFunctionWrapped(layerHandlePatched, layerHandleOriginal);\n Object.defineProperty(layer, \"handle\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: layerHandlePatched\n });\n}\n\nexport { patchLayer };\n//# sourceMappingURL=patch-layer.js.map\n", + "function getDefaultExport(moduleExport) {\n return !!moduleExport && typeof moduleExport === \"object\" && \"default\" in moduleExport && moduleExport.default || moduleExport;\n}\n\nexport { getDefaultExport };\n//# sourceMappingURL=get-default-export.js.map\n", + "import { debug } from '../../utils/debug-logger.js';\nimport { captureException } from '../../exports.js';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { defaultShouldHandleError, isExpressWithRouterPrototype, isExpressWithoutRouterPrototype, getLayerPath } from './utils.js';\nimport { wrapMethod } from '../../utils/object.js';\nimport { patchLayer } from './patch-layer.js';\nimport { setSDKProcessingMetadata } from './set-sdk-processing-metadata.js';\nimport { getDefaultExport } from '../../utils/get-default-export.js';\n\nfunction isLegacyOptions(options) {\n return !!options.express;\n}\nlet didLegacyDeprecationWarning = false;\nfunction deprecationWarning() {\n if (!didLegacyDeprecationWarning) {\n didLegacyDeprecationWarning = true;\n DEBUG_BUILD && debug.warn(\n \"[Express] `patchExpressModule(options)` is deprecated. Use `patchExpressModule(moduleExports, getOptions)` instead.\"\n );\n }\n}\nfunction patchExpressModule(optionsOrExports, maybeGetOptions) {\n let getOptions;\n let moduleExports;\n if (!maybeGetOptions && isLegacyOptions(optionsOrExports)) {\n const { express: express2, ...options } = optionsOrExports;\n moduleExports = express2;\n getOptions = () => options;\n deprecationWarning();\n } else if (typeof maybeGetOptions !== \"function\") {\n throw new TypeError(\"`patchExpressModule(moduleExports, getOptions)` requires a `getOptions` callback\");\n } else {\n getOptions = maybeGetOptions;\n moduleExports = optionsOrExports;\n }\n const express = getDefaultExport(moduleExports);\n const routerProto = isExpressWithRouterPrototype(express) ? express.Router.prototype : isExpressWithoutRouterPrototype(express) ? express.Router : void 0;\n if (!routerProto) {\n throw new TypeError(\"no valid Express route function to instrument\");\n }\n const originalRouteMethod = routerProto.route;\n try {\n wrapMethod(\n routerProto,\n \"route\",\n function routeTrace(...args) {\n const route = originalRouteMethod.apply(this, args);\n const layer = this.stack[this.stack.length - 1];\n patchLayer(getOptions, layer, getLayerPath(args));\n return route;\n }\n );\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Failed to patch express route method:\", e);\n }\n const originalRouterUse = routerProto.use;\n try {\n wrapMethod(\n routerProto,\n \"use\",\n function useTrace(...args) {\n const route = originalRouterUse.apply(this, args);\n const layer = this.stack[this.stack.length - 1];\n if (!layer) {\n return route;\n }\n patchLayer(getOptions, layer, getLayerPath(args));\n return route;\n }\n );\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Failed to patch express use method:\", e);\n }\n const { application } = express;\n const originalApplicationUse = application.use;\n try {\n wrapMethod(\n application,\n \"use\",\n function appUseTrace(...args) {\n const route = originalApplicationUse.apply(this, args);\n const router = isExpressWithRouterPrototype(express) ? this.router : this._router;\n if (router) {\n const layer = router.stack[router.stack.length - 1];\n if (layer) {\n patchLayer(getOptions, layer, getLayerPath(args));\n }\n }\n return route;\n }\n );\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Failed to patch express application.use method:\", e);\n }\n return express;\n}\nfunction expressErrorHandler(options) {\n return function sentryErrorMiddleware(error, request, res, next) {\n setSDKProcessingMetadata(request);\n const shouldHandleError = options?.shouldHandleError || defaultShouldHandleError;\n if (shouldHandleError(error)) {\n const eventId = captureException(error, {\n mechanism: { type: \"auto.middleware.express\", handled: false }\n });\n res.sentry = eventId;\n }\n next(error);\n };\n}\nfunction setupExpressErrorHandler(app, options) {\n app.use(expressRequestHandler());\n app.use(expressErrorHandler(options));\n}\nfunction expressRequestHandler() {\n return function sentryRequestMiddleware(request, _res, next) {\n setSDKProcessingMetadata(request);\n next();\n };\n}\n\nexport { expressErrorHandler, patchExpressModule, setupExpressErrorHandler };\n//# sourceMappingURL=index.js.map\n", + "import { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getActiveSpan } from '../utils/spanUtils.js';\nimport { SPAN_STATUS_ERROR } from '../tracing/spanstatus.js';\nimport { startSpanManual } from '../tracing/trace.js';\n\nconst SQL_OPERATION_REGEX = /^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i;\nconst CONNECTION_CONTEXT_SYMBOL = /* @__PURE__ */ Symbol(\"sentryPostgresConnectionContext\");\nconst INSTRUMENTED_MARKER = /* @__PURE__ */ Symbol.for(\"sentry.instrumented.postgresjs\");\nconst QUERY_FROM_INSTRUMENTED_SQL = /* @__PURE__ */ Symbol.for(\"sentry.query.from.instrumented.sql\");\nfunction instrumentPostgresJsSql(sql, options) {\n if (!sql || typeof sql !== \"function\") {\n DEBUG_BUILD && debug.warn(\"instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance\");\n return sql;\n }\n return _instrumentSqlInstance(sql, { requireParentSpan: true, ...options });\n}\nfunction _instrumentSqlInstance(sql, options, parentConnectionContext) {\n if (sql[INSTRUMENTED_MARKER]) {\n return sql;\n }\n const proxiedSql = new Proxy(sql, {\n apply(target, thisArg, argumentsList) {\n const query = Reflect.apply(target, thisArg, argumentsList);\n if (query && typeof query === \"object\" && \"handle\" in query) {\n _wrapSingleQueryHandle(query, proxiedSql, options);\n }\n return query;\n },\n get(target, prop) {\n const original = target[prop];\n if (typeof prop !== \"string\" || typeof original !== \"function\") {\n return original;\n }\n if (prop === \"unsafe\" || prop === \"file\") {\n return _wrapQueryMethod(original, target, proxiedSql, options);\n }\n if (prop === \"begin\" || prop === \"reserve\") {\n return _wrapCallbackMethod(original, target, proxiedSql, options);\n }\n return original;\n }\n });\n if (parentConnectionContext) {\n proxiedSql[CONNECTION_CONTEXT_SYMBOL] = parentConnectionContext;\n } else {\n _attachConnectionContext(sql, proxiedSql);\n }\n sql[INSTRUMENTED_MARKER] = true;\n proxiedSql[INSTRUMENTED_MARKER] = true;\n return proxiedSql;\n}\nfunction _wrapQueryMethod(original, target, proxiedSql, options) {\n return function(...args) {\n const query = Reflect.apply(original, target, args);\n if (query && typeof query === \"object\" && \"handle\" in query) {\n _wrapSingleQueryHandle(query, proxiedSql, options);\n }\n return query;\n };\n}\nfunction _wrapCallbackMethod(original, target, parentSqlInstance, options) {\n return function(...args) {\n const parentContext = parentSqlInstance[CONNECTION_CONTEXT_SYMBOL];\n const isCallbackBased = typeof args[args.length - 1] === \"function\";\n if (!isCallbackBased) {\n const result = Reflect.apply(original, target, args);\n if (result && typeof result.then === \"function\") {\n return result.then((sqlInstance) => {\n return _instrumentSqlInstance(sqlInstance, options, parentContext);\n });\n }\n return result;\n }\n const callback = args.length === 1 ? args[0] : args[1];\n const wrappedCallback = function(sqlInstance) {\n const instrumentedSql = _instrumentSqlInstance(sqlInstance, options, parentContext);\n return callback(instrumentedSql);\n };\n const newArgs = args.length === 1 ? [wrappedCallback] : [args[0], wrappedCallback];\n return Reflect.apply(original, target, newArgs);\n };\n}\nfunction _wrapSingleQueryHandle(query, sqlInstance, options) {\n if (query.handle?.__sentryWrapped) {\n return;\n }\n query[QUERY_FROM_INSTRUMENTED_SQL] = true;\n const originalHandle = query.handle;\n const wrappedHandle = async function(...args) {\n if (this.executed || !_shouldCreateSpans(options)) {\n return originalHandle.apply(this, args);\n }\n const fullQuery = _reconstructQuery(query.strings);\n const sanitizedSqlQuery = _sanitizeSqlQuery(fullQuery);\n return startSpanManual(\n {\n name: sanitizedSqlQuery || \"postgresjs.query\",\n op: \"db\"\n },\n (span) => {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, \"auto.db.postgresjs\");\n span.setAttributes({\n \"db.system.name\": \"postgres\",\n \"db.query.text\": sanitizedSqlQuery\n });\n const connectionContext = sqlInstance ? sqlInstance[CONNECTION_CONTEXT_SYMBOL] : void 0;\n _setConnectionAttributes(span, connectionContext);\n if (options.requestHook) {\n try {\n options.requestHook(span, sanitizedSqlQuery, connectionContext);\n } catch (e) {\n span.setAttribute(\"sentry.hook.error\", \"requestHook failed\");\n DEBUG_BUILD && debug.error(\"Error in requestHook for PostgresJs instrumentation:\", e);\n }\n }\n const queryWithCallbacks = this;\n queryWithCallbacks.resolve = new Proxy(queryWithCallbacks.resolve, {\n apply: (resolveTarget, resolveThisArg, resolveArgs) => {\n try {\n _setOperationName(span, sanitizedSqlQuery, resolveArgs?.[0]?.command);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Error ending span in resolve callback:\", e);\n }\n return Reflect.apply(resolveTarget, resolveThisArg, resolveArgs);\n }\n });\n queryWithCallbacks.reject = new Proxy(queryWithCallbacks.reject, {\n apply: (rejectTarget, rejectThisArg, rejectArgs) => {\n try {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: rejectArgs?.[0]?.message || \"unknown_error\"\n });\n span.setAttribute(\"db.response.status_code\", rejectArgs?.[0]?.code || \"unknown\");\n span.setAttribute(\"error.type\", rejectArgs?.[0]?.name || \"unknown\");\n _setOperationName(span, sanitizedSqlQuery);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Error ending span in reject callback:\", e);\n }\n return Reflect.apply(rejectTarget, rejectThisArg, rejectArgs);\n }\n });\n try {\n return originalHandle.apply(this, args);\n } catch (e) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: e instanceof Error ? e.message : \"unknown_error\"\n });\n span.end();\n throw e;\n }\n }\n );\n };\n wrappedHandle.__sentryWrapped = true;\n query.handle = wrappedHandle;\n}\nfunction _shouldCreateSpans(options) {\n const hasParentSpan = getActiveSpan() !== void 0;\n return hasParentSpan || !options.requireParentSpan;\n}\nfunction _reconstructQuery(strings) {\n if (!strings?.length) {\n return void 0;\n }\n if (strings.length === 1) {\n return strings[0] || void 0;\n }\n return strings.reduce((acc, str, i) => i === 0 ? str : `${acc}$${i}${str}`, \"\");\n}\nlet integerLiteralRE;\nfunction _sanitizeSqlQuery(sqlQuery) {\n if (!sqlQuery) {\n return \"Unknown SQL Query\";\n }\n if (!integerLiteralRE) {\n integerLiteralRE = new RegExp(\"(?= 0 ? encoding && encoding !== \"identity\" ? { \"http.response_content_length\": length } : { \"http.response_content_length_uncompressed\": length } : {};\n}\n\nexport { getOutgoingRequestSpanData, setIncomingResponseSpanData };\n//# sourceMappingURL=get-outgoing-span-data.js.map\n", + "import { getClient } from '../../currentScopes.js';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { debug } from '../../utils/debug-logger.js';\nimport { isError } from '../../utils/is.js';\nimport { getTraceData } from '../../utils/traceData.js';\nimport { shouldPropagateTraceForUrl } from '../../utils/tracePropagationTargets.js';\nimport { LOG_PREFIX } from './constants.js';\nimport { getRequestUrlFromClientRequest } from './get-request-url.js';\nimport { mergeBaggageHeaders } from '../../utils/baggage.js';\n\nfunction injectTracePropagationHeaders(request, propagationDecisionMap) {\n const url = getRequestUrlFromClientRequest(request);\n const clientOptions = getClient()?.getOptions();\n const { tracePropagationTargets, propagateTraceparent } = clientOptions ?? {};\n if (!shouldPropagateTraceForUrl(url, tracePropagationTargets, propagationDecisionMap)) {\n return;\n }\n const hasExistingSentryTraceHeader = !!request.getHeader(\"sentry-trace\");\n if (hasExistingSentryTraceHeader) {\n return;\n }\n const traceData = getTraceData({ propagateTraceparent });\n if (!traceData) return;\n const { \"sentry-trace\": sentryTrace, baggage, traceparent } = traceData;\n if (sentryTrace) {\n try {\n request.setHeader(\"sentry-trace\", sentryTrace);\n DEBUG_BUILD && debug.log(LOG_PREFIX, \"Added sentry-trace header\");\n } catch (e) {\n DEBUG_BUILD && debug.error(LOG_PREFIX, \"Failed to set sentry-trace header:\", isError(e) ? e.message : \"Unknown error\");\n }\n }\n if (traceparent && !request.getHeader(\"traceparent\")) {\n try {\n request.setHeader(\"traceparent\", traceparent);\n DEBUG_BUILD && debug.log(LOG_PREFIX, \"Added traceparent header\");\n } catch (e) {\n DEBUG_BUILD && debug.error(LOG_PREFIX, \"Failed to set traceparent header:\", isError(e) ? e.message : \"Unknown error\");\n }\n }\n if (baggage) {\n const merged = mergeBaggageHeaders(request.getHeader(\"baggage\"), baggage);\n if (merged) {\n try {\n request.setHeader(\"baggage\", merged);\n DEBUG_BUILD && debug.log(LOG_PREFIX, \"Added baggage header\");\n } catch (e) {\n DEBUG_BUILD && debug.error(LOG_PREFIX, \"Failed to set baggage header:\", isError(e) ? e.message : \"Unknown error\");\n }\n }\n }\n}\n\nexport { injectTracePropagationHeaders };\n//# sourceMappingURL=inject-trace-propagation-headers.js.map\n", + "import { DEBUG_BUILD } from '../../debug-build.js';\nimport { debug } from '../../utils/debug-logger.js';\n\nconst isOtelWrapped = (fn) => typeof fn.__unwrap === \"function\";\nconst warning = \"Double-wrapped http.client detected. Either disable spans in Sentry.httpIntegration, or disable the OpenTelemetry HTTP instrumentation. See: https://docs.sentry.io/platforms/javascript/guides/express/opentelemetry/custom-setup/#custom-http-instrumentation\";\nlet didDoubleWrapWarning = false;\nconst doubleWrapWarning = DEBUG_BUILD ? (http) => {\n if (!didDoubleWrapWarning) {\n if (isOtelWrapped(http.request) || isOtelWrapped(http.get)) {\n didDoubleWrapWarning = true;\n debug.warn(warning);\n }\n }\n} : () => {\n};\n\nexport { doubleWrapWarning, warning };\n//# sourceMappingURL=double-wrap-warning.js.map\n", + "import { addOutgoingRequestBreadcrumb } from './add-outgoing-request-breadcrumb.js';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { debug } from '../../utils/debug-logger.js';\nimport { getCurrentScope, getClient } from '../../currentScopes.js';\nimport { getSpanStatusFromHttpCode, SPAN_STATUS_ERROR, SPAN_STATUS_UNSET } from '../../tracing/spanstatus.js';\nimport { hasSpansEnabled } from '../../utils/hasSpansEnabled.js';\nimport { SUPPRESS_TRACING_KEY, startInactiveSpan, withActiveSpan } from '../../tracing/trace.js';\nimport { LRUMap } from '../../utils/lru.js';\nimport { getOutgoingRequestSpanData, setIncomingResponseSpanData } from './get-outgoing-span-data.js';\nimport { getRequestUrlFromClientRequest } from './get-request-url.js';\nimport { injectTracePropagationHeaders } from './inject-trace-propagation-headers.js';\nimport { HTTP_ON_CLIENT_REQUEST, LOG_PREFIX } from './constants.js';\nimport { doubleWrapWarning } from './double-wrap-warning.js';\n\nfunction getHttpClientSubscriptions(options) {\n const propagationDecisionMap = new LRUMap(100);\n const getConfig = () => getClient()?.getOptions();\n const onHttpClientRequestCreated = (data) => {\n if (getCurrentScope().getScopeData().sdkProcessingMetadata[SUPPRESS_TRACING_KEY] === true) {\n return;\n }\n const clientOptions = getConfig();\n const {\n errorMonitor = \"error\",\n spans: createSpans = clientOptions ? hasSpansEnabled(clientOptions) : true,\n propagateTrace = false,\n breadcrumbs = true,\n http,\n https,\n suppressOtelWarning = false\n } = options;\n const { request } = data;\n if (options.ignoreOutgoingRequests?.(getRequestUrlFromClientRequest(request), request)) {\n return;\n }\n let addedBreadcrumbs = false;\n function addBreadcrumbs(request2, response) {\n if (!addedBreadcrumbs) {\n addedBreadcrumbs = true;\n addOutgoingRequestBreadcrumb(request2, response);\n }\n }\n function breadcrumbsOnly(request2) {\n request2.on(errorMonitor, () => addBreadcrumbs(request2, void 0));\n request2.prependListener(\"response\", (response) => {\n if (request2.listenerCount(\"response\") <= 1) {\n response.resume();\n }\n response.on(\"end\", () => addBreadcrumbs(request2, response));\n response.on(errorMonitor, () => addBreadcrumbs(request2, response));\n });\n }\n if (!createSpans) {\n if (breadcrumbs) {\n breadcrumbsOnly(request);\n }\n if (propagateTrace) {\n injectTracePropagationHeaders(request, propagationDecisionMap);\n }\n return;\n }\n if (!suppressOtelWarning) {\n if (http) doubleWrapWarning(http);\n if (https) doubleWrapWarning(https);\n }\n const span = startInactiveSpan(getOutgoingRequestSpanData(request));\n options.outgoingRequestHook?.(span, request);\n if (propagateTrace) {\n if (span.isRecording()) {\n withActiveSpan(span, () => {\n injectTracePropagationHeaders(request, propagationDecisionMap);\n });\n } else {\n injectTracePropagationHeaders(request, propagationDecisionMap);\n }\n }\n let spanEnded = false;\n function endSpan(status) {\n if (!spanEnded) {\n spanEnded = true;\n span.setStatus(status);\n span.end();\n }\n }\n const requestOnClose = () => endSpan({ code: SPAN_STATUS_UNSET });\n request.on(\"close\", requestOnClose);\n request.on(errorMonitor, (error) => {\n DEBUG_BUILD && debug.log(LOG_PREFIX, \"outgoingRequest on request error()\", error);\n if (breadcrumbs) {\n addBreadcrumbs(request, void 0);\n }\n endSpan({ code: SPAN_STATUS_ERROR });\n });\n request.prependListener(\"response\", (response) => {\n request.removeListener(\"close\", requestOnClose);\n if (request.listenerCount(\"response\") <= 1) {\n response.resume();\n }\n setIncomingResponseSpanData(response, span);\n options.outgoingResponseHook?.(span, response);\n let finished = false;\n function finishWithResponse(error) {\n if (!finished) {\n finished = true;\n if (error) {\n DEBUG_BUILD && debug.log(LOG_PREFIX, \"outgoingRequest on response error()\", error);\n }\n if (breadcrumbs) {\n addBreadcrumbs(request, response);\n }\n const aborted = response.aborted && !response.complete;\n const status = error || typeof response.statusCode !== \"number\" || aborted ? { code: SPAN_STATUS_ERROR } : getSpanStatusFromHttpCode(response.statusCode);\n options.applyCustomAttributesOnSpan?.(span, request, response);\n endSpan(status);\n }\n }\n response.on(\"end\", () => finishWithResponse());\n response.on(errorMonitor, finishWithResponse);\n });\n };\n return {\n [HTTP_ON_CLIENT_REQUEST]: onHttpClientRequestCreated\n };\n}\n\nexport { getHttpClientSubscriptions };\n//# sourceMappingURL=client-subscriptions.js.map\n", + "import { getDefaultExport } from '../../utils/get-default-export.js';\nimport { HTTP_ON_CLIENT_REQUEST } from './constants.js';\nimport { getOriginalFunction, wrapMethod } from '../../utils/object.js';\nimport { getHttpClientSubscriptions } from './client-subscriptions.js';\n\nfunction patchHttpRequest(httpModule, options) {\n if (!getOriginalFunction(httpModule.request)) {\n const { [HTTP_ON_CLIENT_REQUEST]: onHttpClientRequestCreated } = getHttpClientSubscriptions({\n ...options,\n http: httpModule\n });\n const originalRequest = httpModule.request;\n wrapMethod(httpModule, \"request\", function patchedRequest(...args) {\n const request = originalRequest.apply(this, args);\n onHttpClientRequestCreated({ request }, HTTP_ON_CLIENT_REQUEST);\n return request;\n });\n }\n}\nfunction patchHttpGet(httpModule) {\n if (!getOriginalFunction(httpModule.get)) {\n wrapMethod(httpModule, \"get\", function patchedGet(input, options, cb) {\n const request = httpModule.request.call(this, input, options, cb);\n request.end();\n return request;\n });\n }\n}\nfunction patchModule(httpModuleExport, options = {}) {\n const httpDefault = getDefaultExport(httpModuleExport);\n const httpModule = httpModuleExport;\n if (httpDefault !== httpModuleExport) {\n patchModule(httpDefault, options);\n for (const method of [\"get\", \"request\"]) {\n const desc = Object.getOwnPropertyDescriptor(httpDefault, method);\n if (desc) {\n Object.defineProperty(httpModule, method, desc);\n }\n }\n return httpModule;\n }\n patchHttpRequest(httpModule, options);\n patchHttpGet(httpModule);\n return httpModuleExport;\n}\nconst patchHttpModuleClient = (httpModuleExport, options = {}) => patchModule(httpModuleExport, options);\n\nexport { patchHttpModuleClient };\n//# sourceMappingURL=client-patch.js.map\n", + "import { debug } from '../../utils/debug-logger.js';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { getMaxBodyByteLength } from '../../utils/request.js';\n\nfunction patchRequestToCaptureBody(req, isolationScope, maxIncomingRequestBodySize, integrationName) {\n let bodyByteLength = 0;\n const chunks = [];\n DEBUG_BUILD && debug.log(integrationName, \"Patching request.on\");\n const callbackMap = /* @__PURE__ */ new WeakMap();\n const maxBodySize = getMaxBodyByteLength(maxIncomingRequestBodySize);\n try {\n req.on = req.addListener = new Proxy(req.on, {\n apply: (target, thisArg, args) => {\n const [event, listener, ...restArgs] = args;\n if (event === \"data\") {\n DEBUG_BUILD && debug.log(integrationName, `Handling request.on(\"data\") with maximum body size of ${maxBodySize}b`);\n const callback = new Proxy(listener, {\n apply: (target2, thisArg2, args2) => {\n try {\n const chunk = args2[0];\n const bufferifiedChunk = Buffer.from(chunk);\n if (bodyByteLength < maxBodySize) {\n chunks.push(bufferifiedChunk);\n bodyByteLength += bufferifiedChunk.byteLength;\n } else if (DEBUG_BUILD) {\n debug.log(\n integrationName,\n `Dropping request body chunk because maximum body length of ${maxBodySize}b is exceeded.`\n );\n }\n } catch (_err) {\n DEBUG_BUILD && debug.error(integrationName, \"Encountered error while storing body chunk.\");\n }\n return Reflect.apply(target2, thisArg2, args2);\n }\n });\n callbackMap.set(listener, callback);\n return Reflect.apply(target, thisArg, [event, callback, ...restArgs]);\n }\n return Reflect.apply(target, thisArg, args);\n }\n });\n req.off = req.removeListener = new Proxy(req.off, {\n apply: (target, thisArg, args) => {\n const [, listener] = args;\n const callback = callbackMap.get(listener);\n if (callback) {\n callbackMap.delete(listener);\n const modifiedArgs = args.slice();\n modifiedArgs[1] = callback;\n return Reflect.apply(target, thisArg, modifiedArgs);\n }\n return Reflect.apply(target, thisArg, args);\n }\n });\n req.on(\"end\", () => {\n try {\n const body = Buffer.concat(chunks).toString(\"utf-8\");\n if (body) {\n const bodyByteLength2 = Buffer.byteLength(body, \"utf-8\");\n const truncatedBody = bodyByteLength2 > maxBodySize ? `${Buffer.from(body).subarray(0, maxBodySize - 3).toString(\"utf-8\")}...` : body;\n isolationScope.setSDKProcessingMetadata({ normalizedRequest: { data: truncatedBody } });\n }\n } catch (error) {\n if (DEBUG_BUILD) {\n debug.error(integrationName, \"Error building captured request body\", error);\n }\n }\n });\n } catch (error) {\n if (DEBUG_BUILD) {\n debug.error(integrationName, \"Error patching request to capture body\", error);\n }\n }\n}\n\nexport { patchRequestToCaptureBody };\n//# sourceMappingURL=patch-request-to-capture-body.js.map\n", + "import { debug } from '../../utils/debug-logger.js';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { safeDateNow } from '../../utils/randomSafeContext.js';\nimport { safeUnref } from '../../utils/timer.js';\n\nconst clientToRequestSessionAggregatesMap = /* @__PURE__ */ new WeakMap();\nfunction recordRequestSession(client, {\n requestIsolationScope,\n response,\n sessionFlushingDelayMS\n}) {\n requestIsolationScope.setSDKProcessingMetadata({\n requestSession: { status: \"ok\" }\n });\n response.once(\"close\", () => {\n const requestSession = requestIsolationScope.getScopeData().sdkProcessingMetadata.requestSession;\n if (client && requestSession) {\n DEBUG_BUILD && debug.log(`Recorded request session with status: ${requestSession.status}`);\n const roundedDate = new Date(safeDateNow());\n roundedDate.setSeconds(0, 0);\n const dateBucketKey = roundedDate.toISOString();\n const existingClientAggregate = clientToRequestSessionAggregatesMap.get(client);\n const bucket = existingClientAggregate?.[dateBucketKey] || { exited: 0, crashed: 0, errored: 0 };\n bucket[{ ok: \"exited\", crashed: \"crashed\", errored: \"errored\" }[requestSession.status]]++;\n if (existingClientAggregate) {\n existingClientAggregate[dateBucketKey] = bucket;\n } else {\n DEBUG_BUILD && debug.log(\"Opened new request session aggregate.\");\n const newClientAggregate = { [dateBucketKey]: bucket };\n clientToRequestSessionAggregatesMap.set(client, newClientAggregate);\n const flushPendingClientAggregates = () => {\n clearTimeout(timeout);\n unregisterClientFlushHook();\n clientToRequestSessionAggregatesMap.delete(client);\n const aggregatePayload = Object.entries(newClientAggregate).map(\n ([timestamp, value]) => ({\n started: timestamp,\n exited: value.exited,\n errored: value.errored,\n crashed: value.crashed\n })\n );\n client.sendSession({ aggregates: aggregatePayload });\n };\n const unregisterClientFlushHook = client.on(\"flush\", () => {\n DEBUG_BUILD && debug.log(\"Sending request session aggregate due to client flush\");\n flushPendingClientAggregates();\n });\n const timeout = setTimeout(() => {\n DEBUG_BUILD && debug.log(\"Sending request session aggregate due to flushing schedule\");\n flushPendingClientAggregates();\n }, sessionFlushingDelayMS);\n safeUnref(timeout);\n }\n }\n });\n}\n\nexport { recordRequestSession };\n//# sourceMappingURL=record-request-session.js.map\n", + "import { HTTP_ON_SERVER_REQUEST } from './constants.js';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { debug } from '../../utils/debug-logger.js';\nimport { getIsolationScope, getClient, withIsolationScope, getCurrentScope } from '../../currentScopes.js';\nimport { hasSpansEnabled } from '../../utils/hasSpansEnabled.js';\nimport { httpHeadersToSpanAttributes, headersToDict, httpRequestToRequestData } from '../../utils/request.js';\nimport { patchRequestToCaptureBody } from './patch-request-to-capture-body.js';\nimport { stripUrlQueryAndFragment, parseStringToURLObject } from '../../utils/url.js';\nimport { recordRequestSession } from './record-request-session.js';\nimport { generateSpanId, generateTraceId } from '../../utils/propagationContext.js';\nimport { startSpanManual, continueTrace } from '../../tracing/trace.js';\nimport { safeMathRandom } from '../../utils/randomSafeContext.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP } from '../../semanticAttributes.js';\nimport { getSpanStatusFromHttpCode, SPAN_STATUS_ERROR } from '../../tracing/spanstatus.js';\nimport { SPAN_KIND } from '../../spanKind.js';\n\nconst INTEGRATION_NAME = \"Http.Server\";\nconst SPANS_INTEGRATION_NAME = \"Http.SentryServerSpans\";\nconst lastSentryEmitMap = /* @__PURE__ */ new WeakMap();\nconst kRequestMark = /* @__PURE__ */ Symbol.for(\"sentry_http_server_instrumented\");\nfunction markRequest(request) {\n return !request[kRequestMark] && (request[kRequestMark] = true);\n}\nfunction instrumentServer(options, server) {\n const currentEmit = server.emit;\n const instrumentedEmit = lastSentryEmitMap.get(server);\n if (currentEmit === instrumentedEmit) {\n return;\n }\n const newEmit = new Proxy(currentEmit, {\n apply(target, thisArg, args) {\n const [event, ...data] = args;\n if (event !== \"request\") {\n return target.apply(thisArg, args);\n }\n const client = getClient();\n const [request, response] = data;\n if (!client || !markRequest(request)) {\n return target.apply(thisArg, args);\n }\n DEBUG_BUILD && debug.log(INTEGRATION_NAME, \"Handling incoming request\");\n const isolationScope = getIsolationScope().clone();\n isolationScope.setClient(client);\n const ipAddress = request.socket?.remoteAddress;\n const url = request.url || \"/\";\n const normalizedRequest = httpRequestToRequestData(request);\n const {\n maxRequestBodySize = \"medium\",\n ignoreRequestBody,\n sessions = true,\n sessionFlushingDelayMS = 6e4\n } = options;\n if (maxRequestBodySize !== \"none\" && !ignoreRequestBody?.(url, request)) {\n patchRequestToCaptureBody(request, isolationScope, maxRequestBodySize, INTEGRATION_NAME);\n }\n isolationScope.setSDKProcessingMetadata({ normalizedRequest, ipAddress });\n const httpMethod = (request.method || \"GET\").toUpperCase();\n const httpTargetWithoutQueryFragment = stripUrlQueryAndFragment(url);\n const bestEffortTransactionName = `${httpMethod} ${httpTargetWithoutQueryFragment}`;\n isolationScope.setTransactionName(bestEffortTransactionName);\n if (sessions) {\n recordRequestSession(client, {\n requestIsolationScope: isolationScope,\n response,\n sessionFlushingDelayMS: sessionFlushingDelayMS ?? 6e4\n });\n }\n return withIsolationScope(isolationScope, () => {\n const sentryTrace = normalizedRequest.headers?.[\"sentry-trace\"];\n const baggage = normalizedRequest.headers?.[\"baggage\"];\n const sentryTraceValue = Array.isArray(sentryTrace) ? sentryTrace[0] : sentryTrace;\n return continueTrace(\n {\n sentryTrace: sentryTraceValue,\n baggage: Array.isArray(baggage) ? baggage[0] : baggage\n },\n () => {\n const propagationContext = getCurrentScope().getPropagationContext();\n propagationContext.propagationSpanId = generateSpanId();\n if (!sentryTraceValue) {\n propagationContext.traceId = generateTraceId();\n propagationContext.sampleRand = safeMathRandom();\n }\n response.once(\"close\", () => {\n isolationScope.setContext(\"response\", {\n status_code: response.statusCode\n });\n });\n const wrap = options.wrapServerEmitRequest;\n let emitResult = false;\n if (wrap) {\n wrap(request, response, normalizedRequest, () => {\n emitResult = target.apply(thisArg, args);\n });\n } else {\n emitResult = target.apply(thisArg, args);\n }\n return emitResult;\n }\n );\n });\n }\n });\n lastSentryEmitMap.set(server, newEmit);\n server.emit = newEmit;\n}\nfunction getHttpServerSubscriptions(options) {\n const userWrap = options.wrapServerEmitRequest;\n const spanWrap = buildServerSpanWrap(options);\n const effectiveOptions = {\n ...options,\n wrapServerEmitRequest(request, response, normalizedRequest, next) {\n const clientOptions = getClient()?.getOptions();\n const createSpans = options.spans ?? (clientOptions ? hasSpansEnabled(clientOptions) : false);\n if (createSpans) {\n spanWrap(request, response, normalizedRequest, next);\n } else if (userWrap) {\n userWrap(request, response, normalizedRequest, next);\n } else {\n next();\n }\n }\n };\n const onHttpServerRequest = (data) => {\n const { server } = data;\n instrumentServer(effectiveOptions, server);\n };\n return { [HTTP_ON_SERVER_REQUEST]: onHttpServerRequest };\n}\nfunction buildServerSpanWrap(options) {\n const {\n wrapServerEmitRequest: userWrap,\n ignoreIncomingRequests,\n ignoreStaticAssets = true,\n onSpanCreated,\n errorMonitor = \"error\",\n onSpanEnd\n } = options;\n return (request, response, normalizedRequest, next) => {\n if (typeof __SENTRY_TRACING__ !== \"undefined\" && !__SENTRY_TRACING__) {\n return next();\n }\n return userWrap ? userWrap(request, response, normalizedRequest, createSpan) : createSpan();\n function createSpan() {\n const isolationScope = getIsolationScope();\n const client = isolationScope.getClient();\n if (!client) {\n return next();\n }\n if (shouldIgnoreSpansForIncomingRequest(request, {\n ignoreStaticAssets,\n ignoreIncomingRequests\n })) {\n DEBUG_BUILD && debug.log(SPANS_INTEGRATION_NAME, \"Skipping span creation for incoming request\", request.url);\n return next();\n }\n const fullUrl = normalizedRequest.url || request.url || \"/\";\n const urlObj = parseStringToURLObject(fullUrl);\n const httpTargetWithoutQueryFragment = urlObj ? urlObj.pathname : stripUrlQueryAndFragment(fullUrl);\n const method = (request.method || \"GET\").toUpperCase();\n const name = `${method} ${httpTargetWithoutQueryFragment}`;\n const headers = request.headers;\n const userAgent = headers[\"user-agent\"];\n const ips = headers[\"x-forwarded-for\"];\n const httpVersion = request.httpVersion;\n const host = headers.host;\n const hostname = host?.replace(/^(.*)(:[0-9]{1,5})/, \"$1\") || \"localhost\";\n const scheme = fullUrl.startsWith(\"https\") ? \"https\" : \"http\";\n const { socket } = request;\n const { localAddress, localPort, remoteAddress, remotePort } = socket ?? {};\n return startSpanManual(\n {\n name,\n // Pass SERVER so the OTel sampler infers op='http.server' rather than\n // 'http', which it does for the INTERNAL default.\n kind: SPAN_KIND.SERVER,\n attributes: {\n // Sentry-specific attributes\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"http.server\",\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.server\",\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: \"url\",\n // Set http.route to the URL path as a best-effort route name.\n // Framework integrations (Express, etc.) update this via onSpanEnd.\n \"http.route\": httpTargetWithoutQueryFragment,\n // OTel kind (explicit attribute so it appears in span data)\n \"otel.kind\": \"SERVER\",\n // Network attributes\n \"net.host.ip\": localAddress,\n \"net.host.port\": localPort,\n \"net.peer.ip\": remoteAddress,\n \"net.peer.port\": remotePort,\n \"sentry.http.prefetch\": isKnownPrefetchRequest(request) || void 0,\n // Old Semantic Conventions attributes for compatibility\n \"http.url\": fullUrl,\n \"http.method\": method,\n \"http.target\": urlObj ? `${urlObj.pathname}${urlObj.search}` : httpTargetWithoutQueryFragment,\n \"http.host\": host,\n \"net.host.name\": hostname,\n \"http.client_ip\": typeof ips === \"string\" ? ips.split(\",\")[0] : void 0,\n \"http.user_agent\": userAgent,\n \"http.scheme\": scheme,\n \"http.flavor\": httpVersion,\n \"net.transport\": httpVersion?.toUpperCase() === \"QUIC\" ? \"ip_udp\" : \"ip_tcp\",\n ...getRequestContentLengthAttribute(request),\n ...httpHeadersToSpanAttributes(normalizedRequest.headers || {}, client.getDataCollectionOptions())\n }\n },\n (span) => {\n onSpanCreated?.(span, request, response);\n let isEnded = false;\n function endSpan(status) {\n if (isEnded) {\n return;\n }\n isEnded = true;\n span.setAttributes({\n \"http.status_text\": response.statusMessage?.toUpperCase(),\n \"http.response.status_code\": response.statusCode,\n \"http.status_code\": response.statusCode,\n ...httpHeadersToSpanAttributes(\n headersToDict(response.headers),\n client?.getDataCollectionOptions() ?? false,\n \"response\"\n )\n });\n span.setStatus(status);\n onSpanEnd?.(span, request, response);\n span.end();\n }\n response.once(\"close\", () => {\n endSpan(getSpanStatusFromHttpCode(response.statusCode));\n });\n response.once(errorMonitor, () => {\n const httpStatus = getSpanStatusFromHttpCode(response.statusCode);\n endSpan(httpStatus.code === SPAN_STATUS_ERROR ? httpStatus : { code: SPAN_STATUS_ERROR });\n });\n next();\n }\n );\n }\n };\n}\nfunction shouldIgnoreSpansForIncomingRequest(request, {\n ignoreStaticAssets,\n ignoreIncomingRequests\n}) {\n const urlPath = request.url;\n const method = request.method?.toUpperCase();\n if (method === \"OPTIONS\" || method === \"HEAD\" || !urlPath) {\n return true;\n }\n if (ignoreStaticAssets && method === \"GET\" && isStaticAssetRequest(urlPath)) {\n return true;\n }\n if (ignoreIncomingRequests?.(urlPath, request)) {\n return true;\n }\n return false;\n}\nfunction isStaticAssetRequest(urlPath) {\n const path = stripUrlQueryAndFragment(urlPath);\n if (path.match(/\\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/)) {\n return true;\n }\n if (path.match(/^\\/(robots\\.txt|sitemap\\.xml|manifest\\.json|browserconfig\\.xml)$/)) {\n return true;\n }\n return false;\n}\nfunction isKnownPrefetchRequest(req) {\n return req.headers[\"next-router-prefetch\"] === \"1\";\n}\nfunction getRequestContentLengthAttribute(request) {\n const { headers } = request;\n const contentLengthHeader = headers[\"content-length\"];\n const length = contentLengthHeader ? parseInt(String(contentLengthHeader), 10) : -1;\n const encoding = headers[\"content-encoding\"];\n return length >= 0 ? encoding && encoding !== \"identity\" ? { \"http.request_content_length\": length } : { \"http.request_content_length_uncompressed\": length } : {};\n}\n\nexport { getHttpServerSubscriptions, instrumentServer, isStaticAssetRequest };\n//# sourceMappingURL=server-subscription.js.map\n", + "import { captureException } from '../../exports.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes.js';\nimport { startSpan } from '../trace.js';\nimport { GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, GEN_AI_EMBEDDINGS_OPERATION_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE, GEN_AI_SYSTEM_ATTRIBUTE, GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE, GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE, GEN_AI_OPERATION_NAME_ATTRIBUTE } from '../ai/gen-ai-attributes.js';\nimport { resolveAIRecordingOptions } from '../ai/utils.js';\nimport { LANGCHAIN_ORIGIN } from './constants.js';\n\nfunction inferSystemFromInstance(instance) {\n const name = instance.constructor?.name ?? \"\";\n if (name.includes(\"OpenAI\")) return \"openai\";\n if (name.includes(\"Google\")) return \"google_genai\";\n if (name.includes(\"Mistral\")) return \"mistralai\";\n if (name.includes(\"Vertex\")) return \"google_vertexai\";\n if (name.includes(\"Bedrock\")) return \"aws_bedrock\";\n if (name.includes(\"Ollama\")) return \"ollama\";\n if (name.includes(\"Cloudflare\")) return \"cloudflare\";\n if (name.includes(\"Cohere\")) return \"cohere\";\n return \"langchain\";\n}\nfunction extractEmbeddingAttributes(instance) {\n const embeddingsInstance = instance ?? {};\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGCHAIN_ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: GEN_AI_EMBEDDINGS_OPERATION_ATTRIBUTE,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: \"embeddings\",\n [GEN_AI_REQUEST_MODEL_ATTRIBUTE]: embeddingsInstance.model ?? \"unknown\"\n };\n attributes[GEN_AI_SYSTEM_ATTRIBUTE] = inferSystemFromInstance(embeddingsInstance);\n if (\"dimensions\" in embeddingsInstance) {\n attributes[GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE] = embeddingsInstance.dimensions;\n }\n if (\"encodingFormat\" in embeddingsInstance) {\n attributes[GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE] = embeddingsInstance.encodingFormat;\n }\n return attributes;\n}\nfunction instrumentEmbeddingMethod(originalMethod, options = {}) {\n const { recordInputs } = resolveAIRecordingOptions(options);\n return new Proxy(originalMethod, {\n apply(target, thisArg, args) {\n const attributes = extractEmbeddingAttributes(thisArg);\n const modelName = attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] || \"unknown\";\n if (recordInputs) {\n const input = args[0];\n if (input != null) {\n attributes[GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE] = typeof input === \"string\" ? input : JSON.stringify(input);\n }\n }\n return startSpan(\n {\n name: `embeddings ${modelName}`,\n op: GEN_AI_EMBEDDINGS_OPERATION_ATTRIBUTE,\n attributes\n },\n () => {\n return Reflect.apply(target, thisArg, args).then(void 0, (error) => {\n captureException(error, {\n mechanism: { handled: false, type: \"auto.ai.langchain\" }\n });\n throw error;\n });\n }\n );\n }\n });\n}\nfunction instrumentLangChainEmbeddings(instance, options) {\n const embeddingsInstance = instance;\n if (typeof embeddingsInstance.embedQuery === \"function\") {\n embeddingsInstance.embedQuery = instrumentEmbeddingMethod(\n embeddingsInstance.embedQuery,\n options\n );\n }\n if (typeof embeddingsInstance.embedDocuments === \"function\") {\n embeddingsInstance.embedDocuments = instrumentEmbeddingMethod(\n embeddingsInstance.embedDocuments,\n options\n );\n }\n return instance;\n}\n\nexport { instrumentEmbeddingMethod, instrumentLangChainEmbeddings };\n//# sourceMappingURL=embeddings.js.map\n", + "import { errorMonitor } from 'node:events';\nimport { SpanKind, context, trace } from '@opentelemetry/api';\nimport { RPCType, setRPCMetadata, getRPCMetadata } from '@opentelemetry/core';\nimport { NET_HOST_IP, NET_HOST_PORT, NET_PEER_IP, HTTP_STATUS_CODE, HTTP_ROUTE, HTTP_RESPONSE_STATUS_CODE } from '@sentry/conventions/attributes';\nimport { debug, parseStringToURLObject, stripUrlQueryAndFragment, httpHeadersToSpanAttributes, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, getSpanStatusFromHttpCode, SPAN_STATUS_ERROR, isTracingSuppressed, getIsolationScope } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { addStartSpanCallback } from './httpServerIntegration.js';\n\nconst INTEGRATION_NAME = \"Http.ServerSpans\";\nconst _httpServerSpansIntegration = ((options = {}) => {\n const ignoreStaticAssets = options.ignoreStaticAssets ?? true;\n const ignoreIncomingRequests = options.ignoreIncomingRequests;\n const ignoreStatusCodes = options.ignoreStatusCodes ?? [\n [401, 404],\n // 300 and 304 are possibly valid status codes we do not want to filter\n [301, 303],\n [305, 399]\n ];\n const { onSpanCreated } = options;\n const { requestHook, responseHook, applyCustomAttributesOnSpan } = options.instrumentation ?? {};\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n if (typeof __SENTRY_TRACING__ !== \"undefined\" && !__SENTRY_TRACING__) {\n return;\n }\n client.on(\"httpServerRequest\", (_request, _response, normalizedRequest) => {\n const request = _request;\n const response = _response;\n const startSpan = (next) => {\n if (shouldIgnoreSpansForIncomingRequest(request, {\n ignoreStaticAssets,\n ignoreIncomingRequests\n })) {\n DEBUG_BUILD && debug.log(INTEGRATION_NAME, \"Skipping span creation for incoming request\", request.url);\n return next();\n }\n const fullUrl = normalizedRequest.url || request.url || \"/\";\n const urlObj = parseStringToURLObject(fullUrl);\n const headers = request.headers;\n const userAgent = headers[\"user-agent\"];\n const ips = headers[\"x-forwarded-for\"];\n const httpVersion = request.httpVersion;\n const host = headers.host;\n const hostname = host?.replace(/^(.*)(:[0-9]{1,5})/, \"$1\") || \"localhost\";\n const tracer = client.tracer;\n const scheme = fullUrl.startsWith(\"https\") ? \"https\" : \"http\";\n const method = normalizedRequest.method || request.method?.toUpperCase() || \"GET\";\n const httpTargetWithoutQueryFragment = urlObj ? urlObj.pathname : stripUrlQueryAndFragment(fullUrl);\n const bestEffortTransactionName = `${method} ${httpTargetWithoutQueryFragment}`;\n const span = tracer.startSpan(bestEffortTransactionName, {\n kind: SpanKind.SERVER,\n attributes: {\n // Sentry specific attributes\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"http.server\",\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.http\",\n \"sentry.http.prefetch\": isKnownPrefetchRequest(request) || void 0,\n // Old Semantic Conventions attributes - added for compatibility with what `@opentelemetry/instrumentation-http` output before\n \"http.url\": fullUrl,\n \"http.method\": normalizedRequest.method,\n \"http.target\": urlObj ? `${urlObj.pathname}${urlObj.search}` : httpTargetWithoutQueryFragment,\n \"http.host\": host,\n \"net.host.name\": hostname,\n \"http.client_ip\": typeof ips === \"string\" ? ips.split(\",\")[0] : void 0,\n \"http.user_agent\": userAgent,\n \"http.scheme\": scheme,\n \"http.flavor\": httpVersion,\n \"net.transport\": httpVersion?.toUpperCase() === \"QUIC\" ? \"ip_udp\" : \"ip_tcp\",\n ...getRequestContentLengthAttribute(request),\n ...httpHeadersToSpanAttributes(normalizedRequest.headers || {}, client.getDataCollectionOptions())\n }\n });\n requestHook?.(span, request);\n responseHook?.(span, response);\n applyCustomAttributesOnSpan?.(span, request, response);\n onSpanCreated?.(span, request, response);\n const rpcMetadata = {\n type: RPCType.HTTP,\n span\n };\n return context.with(setRPCMetadata(trace.setSpan(context.active(), span), rpcMetadata), () => {\n context.bind(context.active(), request);\n context.bind(context.active(), response);\n let isEnded = false;\n function endSpan(status) {\n if (isEnded) {\n return;\n }\n isEnded = true;\n const newAttributes = getIncomingRequestAttributesOnResponse(request, response);\n span.setAttributes(newAttributes);\n span.setStatus(status);\n span.end();\n const route = newAttributes[\"http.route\"];\n if (route) {\n getIsolationScope().setTransactionName(`${request.method?.toUpperCase() || \"GET\"} ${route}`);\n }\n }\n response.on(\"close\", () => {\n endSpan(getSpanStatusFromHttpCode(response.statusCode));\n });\n response.on(errorMonitor, () => {\n const httpStatus = getSpanStatusFromHttpCode(response.statusCode);\n endSpan(httpStatus.code === SPAN_STATUS_ERROR ? httpStatus : { code: SPAN_STATUS_ERROR });\n });\n return next();\n });\n };\n addStartSpanCallback(request, startSpan);\n });\n },\n processEvent(event) {\n if (event.type === \"transaction\") {\n const statusCode = event.contexts?.trace?.data?.[\"http.response.status_code\"];\n if (typeof statusCode === \"number\") {\n const shouldDrop = shouldFilterStatusCode(statusCode, ignoreStatusCodes);\n if (shouldDrop) {\n DEBUG_BUILD && debug.log(\"Dropping transaction due to status code\", statusCode);\n return null;\n }\n }\n }\n return event;\n },\n afterAllSetup(client) {\n if (!DEBUG_BUILD) {\n return;\n }\n if (client.getIntegrationByName(\"Http\")) {\n debug.warn(\n \"It seems that you have manually added `httpServerSpansIntegration` while `httpIntegration` is also present. Make sure to remove `httpIntegration` when adding `httpServerSpansIntegration`.\"\n );\n }\n if (!client.getIntegrationByName(\"Http.Server\")) {\n debug.error(\n \"It seems that you have manually added `httpServerSpansIntegration` without adding `httpServerIntegration`. This is a requiement for spans to be created - please add the `httpServerIntegration` integration.\"\n );\n }\n }\n };\n});\nconst httpServerSpansIntegration = _httpServerSpansIntegration;\nfunction isKnownPrefetchRequest(req) {\n return req.headers[\"next-router-prefetch\"] === \"1\";\n}\nfunction isStaticAssetRequest(urlPath) {\n const path = stripUrlQueryAndFragment(urlPath);\n if (path.match(/\\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/)) {\n return true;\n }\n if (path.match(/^\\/(robots\\.txt|sitemap\\.xml|manifest\\.json|browserconfig\\.xml)$/)) {\n return true;\n }\n return false;\n}\nfunction shouldIgnoreSpansForIncomingRequest(request, {\n ignoreStaticAssets,\n ignoreIncomingRequests\n}) {\n if (isTracingSuppressed()) {\n return true;\n }\n const urlPath = request.url;\n const method = request.method?.toUpperCase();\n if (method === \"OPTIONS\" || method === \"HEAD\" || !urlPath) {\n return true;\n }\n if (ignoreStaticAssets && method === \"GET\" && isStaticAssetRequest(urlPath)) {\n return true;\n }\n if (ignoreIncomingRequests?.(urlPath, request)) {\n return true;\n }\n return false;\n}\nfunction getRequestContentLengthAttribute(request) {\n const length = getContentLength(request.headers);\n if (length == null) {\n return {};\n }\n if (isCompressed(request.headers)) {\n return {\n [\"http.request_content_length\"]: length\n };\n } else {\n return {\n [\"http.request_content_length_uncompressed\"]: length\n };\n }\n}\nfunction getContentLength(headers) {\n const contentLengthHeader = headers[\"content-length\"];\n if (contentLengthHeader === void 0) return null;\n const contentLength = parseInt(contentLengthHeader, 10);\n if (isNaN(contentLength)) return null;\n return contentLength;\n}\nfunction isCompressed(headers) {\n const encoding = headers[\"content-encoding\"];\n return !!encoding && encoding !== \"identity\";\n}\nfunction getIncomingRequestAttributesOnResponse(request, response) {\n const { socket } = request;\n const { statusCode, statusMessage } = response;\n const newAttributes = {\n [HTTP_RESPONSE_STATUS_CODE]: statusCode,\n // eslint-disable-next-line typescript/no-deprecated\n [HTTP_STATUS_CODE]: statusCode,\n \"http.status_text\": statusMessage?.toUpperCase()\n };\n const rpcMetadata = getRPCMetadata(context.active());\n if (socket) {\n const { localAddress, localPort, remoteAddress, remotePort } = socket;\n newAttributes[NET_HOST_IP] = localAddress;\n newAttributes[NET_HOST_PORT] = localPort;\n newAttributes[NET_PEER_IP] = remoteAddress;\n newAttributes[\"net.peer.port\"] = remotePort;\n }\n newAttributes[HTTP_STATUS_CODE] = statusCode;\n newAttributes[\"http.status_text\"] = (statusMessage || \"\").toUpperCase();\n if (rpcMetadata?.type === RPCType.HTTP && rpcMetadata.route !== void 0) {\n const routeName = rpcMetadata.route;\n newAttributes[HTTP_ROUTE] = routeName;\n }\n return newAttributes;\n}\nfunction shouldFilterStatusCode(statusCode, dropForStatusCodes) {\n return dropForStatusCodes.some((code) => {\n if (typeof code === \"number\") {\n return code === statusCode;\n }\n const [min, max] = code;\n return statusCode >= min && statusCode <= max;\n });\n}\n\nexport { httpServerSpansIntegration, isStaticAssetRequest };\n//# sourceMappingURL=httpServerSpansIntegration.js.map\n", + "const Rs=\"ai.citations\",g=\"ai.completion_tokens.used\",Ss=\"ai.documents\",se=\"ai.finish_reason\",re=\"ai.frequency_penalty\",d=\"ai.function_call\",ne=\"ai.generation_id\",ae=\"ai.input_messages\",xs=\"ai.is_search_required\",Ns=\"ai.metadata\",oe=\"ai.model_id\",u=\"ai.model.provider\",le=\"ai.pipeline.name\",pe=\"ai.preamble\",ce=\"ai.presence_penalty\",m=\"ai.prompt_tokens.used\",Cs=\"ai.raw_prompting\",ws=\"ai.responses\",Ls=\"ai.response_format\",Ds=\"ai.search_queries\",Ms=\"ai.search_results\",be=\"ai.seed\",ge=\"ai.streaming\",Us=\"ai.tags\",de=\"ai.temperature\",ue=\"ai.texts\",ks=\"ai.tools\",Gs=\"ai.tool_calls\",me=\"ai.top_k\",he=\"ai.top_p\",ye=\"ai.total_cost\",fe=\"ai.total_tokens.used\",qs=\"ai.warnings\",Vs=\"angular.version\",ve=\"app.app_build\",_e=\"app.app_identifier\",Ee=\"app.app_name\",Te=\"app.app_start_time\",Ie=\"app.app_version\",Oe=\"app.build\",Pe=\"app.identifier\",Ys=\"app.in_foreground\",Ae=\"app.name\",Re=\"app_start_cold\",Se=\"app.start_time\",xe=\"app_start_type\",Ne=\"app_start_warm\",Ce=\"app.version\",we=\"app.vitals.frames.delay.value\",Le=\"app.vitals.frames.frozen.count\",De=\"app.vitals.frames.slow.count\",Me=\"app.vitals.frames.total.count\",Ue=\"app.vitals.start.cold.value\",Fs=\"app.vitals.start.prewarmed\",Hs=\"app.vitals.start.reason\",Ws=\"app.vitals.start.screen\",ke=\"app.vitals.start.type\",Ge=\"app.vitals.start.warm.value\",qe=\"app.vitals.ttfd.value\",Ve=\"app.vitals.ttid.value\",Bs=\"art.gc.blocking_count\",Ks=\"art.gc.blocking_time\",zs=\"art.gc.pre_oome_count\",js=\"art.gc.total_count\",Qs=\"art.gc.total_time\",Xs=\"art.gc.waiting_time\",Js=\"art.memory.free\",Zs=\"art.memory.free_until_gc\",$s=\"art.memory.free_until_oome\",er=\"art.memory.max\",ir=\"art.memory.total\",tr=\"aws.cloudwatch.logs.log_group\",sr=\"aws.cloudwatch.logs.log_stream\",rr=\"aws.cloudwatch.logs.url\",Ye=\"aws.lambda.aws_request_id\",nr=\"aws.lambda.execution_duration_in_millis\",Fe=\"aws.lambda.function_name\",He=\"aws.lambda.function_version\",We=\"aws.lambda.invoked_arn\",Be=\"aws.lambda.invoked_function_arn\",ar=\"aws.lambda.remaining_time_in_millis\",or=\"aws.log.group.names\",lr=\"aws.log.stream.names\",pr=\"blocked_main_thread\",Ke=\"browser.name\",ze=\"browser.performance.navigation.activation_start\",je=\"browser.performance.time_origin\",cr=\"browser.report.type\",br=\"browser.script.invoker\",gr=\"browser.script.invoker_type\",dr=\"browser.script.source_char_position\",Qe=\"browser.version\",ur=\"browser.web_vital.cls.report_event\",Xe=\"browser.web_vital.cls.source.\",Je=\"browser.web_vital.cls.value\",Ze=\"browser.web_vital.fcp.value\",$e=\"browser.web_vital.fp.value\",ei=\"browser.web_vital.inp.value\",ii=\"browser.web_vital.lcp.element\",ti=\"browser.web_vital.lcp.id\",si=\"browser.web_vital.lcp.load_time\",ri=\"browser.web_vital.lcp.render_time\",mr=\"browser.web_vital.lcp.report_event\",ni=\"browser.web_vital.lcp.size\",ai=\"browser.web_vital.lcp.url\",oi=\"browser.web_vital.lcp.value\",li=\"browser.web_vital.ttfb.request_time\",pi=\"browser.web_vital.ttfb.value\",hr=\"cache.hit\",yr=\"cache.item_size\",fr=\"cache.key\",vr=\"cache.operation\",_r=\"cache.ttl\",Er=\"cache.write\",Tr=\"channel\",h=\"client.address\",Ir=\"client.port\",Or=\"cloudflare.d1.duration\",y=\"cloudflare.d1.query_type\",Pr=\"cloudflare.d1.rows_read\",Ar=\"cloudflare.d1.rows_written\",Rr=\"cloudflare.r2.bucket\",Sr=\"cloudflare.r2.operation\",xr=\"cloudflare.r2.request.delimiter\",Nr=\"cloudflare.r2.request.key\",Cr=\"cloudflare.r2.request.part_number\",wr=\"cloudflare.r2.request.prefix\",Lr=\"cloudflare.workflow.attempt\",Dr=\"cloudflare.workflow.retries.backoff\",Mr=\"cloudflare.workflow.retries.delay\",Ur=\"cloudflare.workflow.retries.limit\",kr=\"cloudflare.workflow.timeout\",Gr=\"cloud.account.id\",qr=\"cloud.availability_zone\",Vr=\"cloud.platform\",Yr=\"cloud.provider\",Fr=\"cloud.region\",Hr=\"cloud.resource_id\",ci=\"cls\",bi=\"cls.source.\",gi=\"code.filepath\",di=\"code.file.path\",ui=\"code.function\",mi=\"code.function.name\",hi=\"code.lineno\",yi=\"code.line.number\",Wr=\"code.namespace\",f=\"connectionType\",fi=\"connection.rtt\",Br=\"culture.calendar\",Kr=\"culture.display_name\",zr=\"culture.is_24_hour_format\",jr=\"culture.locale\",Qr=\"culture.timezone\",Xr=\"db.collection.name\",Jr=\"db.driver.name\",vi=\"db.name\",_i=\"db.namespace\",v=\"db.operation\",Zr=\"db.operation.batch.size\",_=\"db.operation.name\",$r=\"db.query.parameter.\",en=\"db.query.summary\",Ei=\"db.query.text\",tn=\"db.redis.connection\",sn=\"db.redis.key\",rn=\"db.redis.parameters\",nn=\"db.sql.bindings\",Ti=\"db.statement\",an=\"db.stored_procedure.name\",Ii=\"db.system\",Oi=\"db.system.name\",on=\"db.user\",Pi=\"deviceMemory\",ln=\"device.archs\",pn=\"device.battery_level\",cn=\"device.battery_temperature\",bn=\"device.boot_time\",gn=\"device.brand\",dn=\"device.charging\",un=\"device.chipset\",mn=\"device.class\",E=\"device.connection_type\",hn=\"device.cpu_description\",yn=\"device.external_free_storage\",fn=\"device.external_storage_size\",vn=\"device.family\",_n=\"device.free_memory\",En=\"device.free_storage\",Tn=\"device.id\",In=\"device.locale\",On=\"device.low_memory\",Pn=\"device.low_power_mode\",An=\"device.manufacturer\",Ai=\"device.memory.estimated_capacity\",Rn=\"device.memory_size\",Sn=\"device.model\",xn=\"device.model_id\",Nn=\"device.name\",Cn=\"device.online\",wn=\"device.orientation\",Ri=\"device.processor_count\",Ln=\"device.processor_frequency\",Dn=\"device.screen_density\",Mn=\"device.screen_dpi\",Un=\"device.screen_height_pixels\",kn=\"device.screen_width_pixels\",Gn=\"device.simulator\",qn=\"device.storage_size\",Vn=\"device.thermal_state\",Yn=\"device.timezone\",Fn=\"device.usable_memory\",Si=\"effectiveConnectionType\",xi=\"environment\",Hn=\"error.type\",Wn=\"event.id\",Bn=\"event.name\",Kn=\"exception.escaped\",zn=\"exception.message\",jn=\"exception.stacktrace\",Qn=\"exception.type\",Xn=\"faas.coldstart\",Jn=\"faas.cron\",Zn=\"faas.duration_in_ms\",$n=\"faas.entry_point\",ea=\"faas.identity\",Ni=\"faas.invocation_id\",Ci=\"faas.name\",ia=\"faas.time\",ta=\"faas.trigger\",wi=\"faas.version\",Li=\"fcp\",sa=\"flag.evaluation.\",Di=\"fp\",Mi=\"frames.delay\",Ui=\"frames.frozen\",ra=\"frames_frozen_rate\",ki=\"frames.slow\",na=\"frames_slow_rate\",Gi=\"frames.total\",aa=\"fs_error\",oa=\"gcp.function.context.event_id\",la=\"gcp.function.context.event_type\",pa=\"gcp.function.context.id\",ca=\"gcp.function.context.resource\",ba=\"gcp.function.context.source\",ga=\"gcp.function.context.specversion\",da=\"gcp.function.context.time\",ua=\"gcp.function.context.timestamp\",ma=\"gcp.function.context.type\",ha=\"gcp.project.id\",ya=\"gen_ai.agent.name\",fa=\"gen_ai.context.utilization\",va=\"gen_ai.context.window_size\",_a=\"gen_ai.conversation.id\",Ea=\"gen_ai.cost.input_tokens\",Ta=\"gen_ai.cost.output_tokens\",qi=\"gen_ai.cost.total_tokens\",Ia=\"gen_ai.embeddings.input\",Oa=\"gen_ai.function_id\",Vi=\"gen_ai.input.messages\",Pa=\"gen_ai.operation.name\",Aa=\"gen_ai.operation.type\",Ra=\"gen_ai.output.messages\",Yi=\"gen_ai.pipeline.name\",Sa=\"gen_ai.prompt\",Fi=\"gen_ai.prompt.name\",T=\"gen_ai.provider.name\",xa=\"gen_ai.request.available_tools\",Hi=\"gen_ai.request.frequency_penalty\",Na=\"gen_ai.request.max_tokens\",Wi=\"gen_ai.request.messages\",Ca=\"gen_ai.request.model\",Bi=\"gen_ai.request.presence_penalty\",Ki=\"gen_ai.request.seed\",zi=\"gen_ai.request.temperature\",ji=\"gen_ai.request.top_k\",Qi=\"gen_ai.request.top_p\",Xi=\"gen_ai.response.finish_reasons\",Ji=\"gen_ai.response.id\",Zi=\"gen_ai.response.model\",$i=\"gen_ai.response.streaming\",wa=\"gen_ai.response.text\",et=\"gen_ai.response.time_to_first_chunk\",it=\"gen_ai.response.time_to_first_token\",La=\"gen_ai.response.tokens_per_second\",Da=\"gen_ai.response.tool_calls\",I=\"gen_ai.system\",tt=\"gen_ai.system_instructions\",Ma=\"gen_ai.system.message\",st=\"gen_ai.tool.call.arguments\",e=\"gen_ai.tool.call.result\",Ua=\"gen_ai.tool.definitions\",ka=\"gen_ai.tool.description\",rt=\"gen_ai.tool.input\",i=\"gen_ai.tool.message\",O=\"gen_ai.tool.name\",t=\"gen_ai.tool.output\",Ga=\"gen_ai.tool.type\",nt=\"gen_ai.usage.cache_creation.input_tokens\",at=\"gen_ai.usage.cache_read.input_tokens\",P=\"gen_ai.usage.completion_tokens\",A=\"gen_ai.usage.input_tokens\",ot=\"gen_ai.usage.input_tokens.cached\",lt=\"gen_ai.usage.input_tokens.cache_write\",R=\"gen_ai.usage.output_tokens\",pt=\"gen_ai.usage.output_tokens.reasoning\",S=\"gen_ai.usage.prompt_tokens\",ct=\"gen_ai.usage.reasoning.output_tokens\",bt=\"gen_ai.usage.total_tokens\",qa=\"graphql.document\",Va=\"graphql.operation.name\",Ya=\"graphql.operation.type\",gt=\"hardwareConcurrency\",dt=\"http.client_ip\",Fa=\"http.decoded_response_content_length\",x=\"http.flavor\",Ha=\"http.fragment\",s=\"http.host\",r=\"http.method\",Wa=\"http.query\",Ba=\"http.request.body.data\",Ka=\"http.request.connection_end\",za=\"http.request.connect_start\",ja=\"http.request.domain_lookup_end\",Qa=\"http.request.domain_lookup_start\",Xa=\"http.request.fetch_start\",Ja=\"http.request.header.\",n=\"http.request.method\",a=\"http.request_method\",Za=\"http.request.redirect_end\",$a=\"http.request.redirect_start\",eo=\"http.request.request_start\",io=\"http.request.resend_count\",to=\"http.request.response_end\",so=\"http.request.response_start\",ro=\"http.request.secure_connection_start\",no=\"http.request.time_to_first_byte\",ao=\"http.request.worker_start\",N=\"http.response.body.size\",C=\"http.response_content_length\",w=\"http.response.header.content-length\",oo=\"http.response.header.\",ut=\"http.response.size\",mt=\"http.response.status_code\",ht=\"http.response_transfer_size\",L=\"http.route\",yt=\"http.scheme\",o=\"http.server_name\",lo=\"http.server.request.time_in_queue\",ft=\"http.status_code\",po=\"http.target\",D=\"http.url\",vt=\"http.user_agent\",co=\"id\",_t=\"inp\",bo=\"jsonrpc.protocol.version\",Et=\"jsonrpc.request.id\",go=\"jvm.gc.action\",uo=\"jvm.gc.name\",mo=\"jvm.memory.pool.name\",ho=\"jvm.memory.type\",yo=\"jvm.thread.daemon\",fo=\"jvm.thread.state\",Tt=\"lcp\",It=\"lcp.element\",Ot=\"lcp.id\",Pt=\"lcp.loadTime\",At=\"lcp.renderTime\",Rt=\"lcp.size\",St=\"lcp.url\",vo=\"logger.name\",_o=\"mcp.cancelled.reason\",Eo=\"mcp.cancelled.request_id\",To=\"mcp.client.name\",Io=\"mcp.client.title\",Oo=\"mcp.client.version\",Po=\"mcp.lifecycle.phase\",Ao=\"mcp.logging.data_type\",Ro=\"mcp.logging.level\",So=\"mcp.logging.logger\",xo=\"mcp.logging.message\",No=\"mcp.method.name\",Co=\"mcp.progress.current\",wo=\"mcp.progress.message\",Lo=\"mcp.progress.percentage\",Do=\"mcp.progress.token\",Mo=\"mcp.progress.total\",xt=\"mcp.prompt.name\",Uo=\"mcp.prompt.result.description\",ko=\"mcp.prompt.result.message_content\",Go=\"mcp.prompt.result.message_count\",qo=\"mcp.prompt.result.message_role\",Vo=\"mcp.protocol.ready\",Yo=\"mcp.protocol.version\",Fo=\"mcp.request.argument.\",Ho=\"mcp.request.argument.name\",Wo=\"mcp.request.argument.uri\",Nt=\"mcp.request.id\",M=\"mcp.resource.protocol\",Bo=\"mcp.resource.uri\",Ko=\"mcp.server.name\",zo=\"mcp.server.title\",jo=\"mcp.server.version\",Qo=\"mcp.session.id\",U=\"mcp.tool.name\",l=\"mcp.tool.result.content\",Xo=\"mcp.tool.result.content_count\",Jo=\"mcp.tool.result.is_error\",k=\"mcp.transport\",Zo=\"mdc.\",$o=\"messaging.batch.message_count\",el=\"messaging.destination.connection\",il=\"messaging.destination.name\",tl=\"messaging.message.body.size\",sl=\"messaging.message.envelope.size\",rl=\"messaging.message.id\",nl=\"messaging.message.receive.latency\",al=\"messaging.message.retry.count\",ol=\"messaging.operation.name\",ll=\"messaging.operation.type\",pl=\"messaging.system\",p=\"method\",cl=\"middleware.name\",bl=\"navigation.type\",gl=\"nel.elapsed_time\",dl=\"nel.phase\",ul=\"nel.referrer\",ml=\"nel.sampling_function\",hl=\"nel.type\",Ct=\"network.connection.effective_type\",wt=\"network.connection.rtt\",G=\"network.connection.type\",q=\"network.local.address\",Lt=\"network.local.port\",V=\"network.peer.address\",yl=\"network.peer.port\",Y=\"network.protocol.name\",F=\"network.protocol.version\",H=\"network.transport\",fl=\"network.type\",W=\"net.host.ip\",c=\"net.host.name\",Dt=\"net.host.port\",B=\"net.peer.ip\",vl=\"net.peer.name\",_l=\"net.peer.port\",K=\"net.protocol.name\",z=\"net.protocol.version\",El=\"net.sock.family\",j=\"net.sock.host.addr\",Mt=\"net.sock.host.port\",Q=\"net.sock.peer.addr\",Tl=\"net.sock.peer.name\",Il=\"net.sock.peer.port\",X=\"net.transport\",Ut=\"os.build\",kt=\"os.build_id\",Ol=\"os.description\",Pl=\"os.kernel_version\",Al=\"os.name\",Rl=\"os.raw_description\",Sl=\"os.rooted\",xl=\"os.theme\",Nl=\"os.type\",Cl=\"os.version\",wl=\"otel.scope.name\",Ll=\"otel.scope.version\",Dl=\"otel.status_code\",Ml=\"otel.status_description\",Gt=\"params.\",qt=\"performance.activationStart\",Vt=\"performance.timeOrigin\",Ul=\"previous_route\",kl=\"process.command_args\",Gl=\"process.executable.name\",ql=\"process.pid\",Yt=\"process.runtime.description\",Vl=\"process.runtime.engine.name\",Yl=\"process.runtime.engine.version\",Ft=\"process.runtime.name\",Ht=\"process.runtime.version\",Fl=\"query.\",Hl=\"react.version\",Wt=\"release\",Wl=\"remix.action_form_data.\",Bt=\"replay_id\",Bl=\"resource.deployment.environment\",Kl=\"resource.deployment.environment.name\",zl=\"resource.render_blocking_status\",jl=\"route\",Ql=\"rpc.grpc.status_code\",Xl=\"rpc.method\",Jl=\"rpc.response.status_code\",Zl=\"rpc.service\",$l=\"runtime.build\",Kt=\"runtime.name\",zt=\"runtime.raw_description\",jt=\"runtime.version\",ep=\"score.\",ip=\"score.ratio.\",tp=\"score.total\",sp=\"score.weight.\",rp=\"sentry.action\",Qt=\"sentry.browser.name\",Xt=\"sentry.browser.version\",np=\"sentry.cancellation_reason\",ap=\"sentry.category\",op=\"sentry.client_sample_rate\",lp=\"sentry.description\",pp=\"sentry.dist\",cp=\"sentry.domain\",bp=\"sentry.dsc.environment\",gp=\"sentry.dsc.project_id\",dp=\"sentry.dsc.public_key\",up=\"sentry.dsc.release\",mp=\"sentry.dsc.sampled\",hp=\"sentry.dsc.sample_rate\",yp=\"sentry.dsc.trace_id\",fp=\"sentry.dsc.transaction\",Jt=\"sentry.environment\",vp=\"sentry.exclusive_time\",_p=\"sentry.graphql.operation\",Ep=\"sentry.group\",Tp=\"sentry.http.prefetch\",Ip=\"sentry.idle_span_finish_reason\",Op=\"sentry.is_remote\",Pp=\"sentry.kind\",Ap=\"sentry.main_thread\",Rp=\"sentry.message.parameter.\",Sp=\"sentry.message.template\",xp=\"sentry.mobile\",Np=\"sentry.module.\",Cp=\"sentry.nextjs.ssr.function.route\",wp=\"sentry.nextjs.ssr.function.type\",Lp=\"sentry.normalized_db_query\",Dp=\"sentry.normalized_db_query.hash\",Mp=\"sentry.normalized_description\",Up=\"sentry.observed_timestamp_nanos\",kp=\"sentry.op\",Gp=\"sentry.origin\",qp=\"sentry.platform\",Vp=\"sentry.profiler_id\",Yp=\"sentry.profile_id\",J=\"sentry.release\",Zt=\"sentry.replay_id\",Fp=\"sentry.replay_is_buffering\",Hp=\"sentry.report_event\",Wp=\"sentry.sdk.integrations\",Bp=\"sentry.sdk.name\",Kp=\"sentry.sdk.version\",$t=\"sentry.segment.id\",es=\"sentry.segment_id\",Z=\"sentry.segment.name\",zp=\"sentry.server_sample_rate\",jp=\"sentry.source\",Qp=\"sentry.span.source\",Xp=\"sentry.status_code\",Jp=\"sentry.status.message\",Zp=\"sentry.timestamp.sequence\",$p=\"sentry.trace.parent_span_id\",$=\"sentry.transaction\",is=\"sentry.user.email\",ts=\"sentry.user.geo.city\",ss=\"sentry.user.geo.country_code\",rs=\"sentry.user.geo.region\",ns=\"sentry.user.geo.subdivision\",as=\"sentry.user.id\",os=\"sentry.user.ip\",ls=\"sentry.user.username\",b=\"server.address\",ps=\"server.port\",ec=\"service.name\",cs=\"service.version\",ic=\"session.id\",tc=\"stall_percentage\",sc=\"stall_total_time\",rc=\"state.type\",nc=\"thread.id\",ac=\"thread.name\",oc=\"timber.tag\",bs=\"time_to_full_display\",gs=\"time_to_initial_display\",ee=\"transaction\",lc=\"trpc.procedure_path\",pc=\"trpc.procedure_type\",ds=\"ttfb\",us=\"ttfb.requestTime\",cc=\"type\",bc=\"ui.component_name\",gc=\"ui.contributes_to_ttfd\",dc=\"ui.contributes_to_ttid\",uc=\"ui.element.height\",mc=\"ui.element.id\",hc=\"ui.element.identifier\",yc=\"ui.element.load_time\",fc=\"ui.element.paint_type\",vc=\"ui.element.render_time\",_c=\"ui.element.type\",Ec=\"ui.element.url\",Tc=\"ui.element.width\",ie=\"url\",Ic=\"url.domain\",Oc=\"url.fragment\",te=\"url.full\",Pc=\"url.path\",ms=\"url.path.parameter.\",Ac=\"url.port\",Rc=\"url.query\",hs=\"url.scheme\",ys=\"url.template\",fs=\"user_agent.original\",vs=\"user.email\",Sc=\"user.full_name\",_s=\"user.geo.city\",Es=\"user.geo.country_code\",Ts=\"user.geo.region\",Is=\"user.geo.subdivision\",xc=\"user.hash\",Os=\"user.id\",Ps=\"user.ip_address\",As=\"user.name\",Nc=\"user.roles\",Cc=\"vercel.branch\",wc=\"vercel.build_id\",Lc=\"vercel.deployment_id\",Dc=\"vercel.destination\",Mc=\"vercel.edge_type\",Uc=\"vercel.entrypoint\",kc=\"vercel.execution_region\",Gc=\"vercel.id\",qc=\"vercel.ja3_digest\",Vc=\"vercel.ja4_digest\",Yc=\"vercel.log_type\",Fc=\"vercel.path\",Hc=\"vercel.project_id\",Wc=\"vercel.project_name\",Bc=\"vercel.proxy.cache_id\",Kc=\"vercel.proxy.client_ip\",zc=\"vercel.proxy.host\",jc=\"vercel.proxy.lambda_region\",Qc=\"vercel.proxy.method\",Xc=\"vercel.proxy.path\",Jc=\"vercel.proxy.path_type\",Zc=\"vercel.proxy.path_type_variant\",$c=\"vercel.proxy.referer\",eb=\"vercel.proxy.region\",ib=\"vercel.proxy.response_byte_size\",tb=\"vercel.proxy.scheme\",sb=\"vercel.proxy.status_code\",rb=\"vercel.proxy.timestamp\",nb=\"vercel.proxy.user_agent\",ab=\"vercel.proxy.vercel_cache\",ob=\"vercel.proxy.vercel_id\",lb=\"vercel.proxy.waf_action\",pb=\"vercel.proxy.waf_rule_id\",cb=\"vercel.request_id\",bb=\"vercel.source\",gb=\"vercel.status_code\",db={[Rs]:\"string[]\",[g]:\"integer\",[Ss]:\"string[]\",[se]:\"string\",[re]:\"double\",[d]:\"string\",[ne]:\"string\",[ae]:\"string\",[xs]:\"boolean\",[Ns]:\"string\",[oe]:\"string\",[u]:\"string\",[le]:\"string\",[pe]:\"string\",[ce]:\"double\",[m]:\"integer\",[Cs]:\"boolean\",[ws]:\"string[]\",[Ls]:\"string\",[Ds]:\"string[]\",[Ms]:\"string[]\",[be]:\"string\",[ge]:\"boolean\",[Us]:\"string\",[de]:\"double\",[ue]:\"string[]\",[ks]:\"string[]\",[Gs]:\"string[]\",[me]:\"integer\",[he]:\"double\",[ye]:\"double\",[fe]:\"integer\",[qs]:\"string[]\",[Vs]:\"string\",[ve]:\"string\",[_e]:\"string\",[Ee]:\"string\",[Te]:\"string\",[Ie]:\"string\",[Oe]:\"string\",[Pe]:\"string\",[Ys]:\"boolean\",[Ae]:\"string\",[Re]:\"double\",[Se]:\"string\",[xe]:\"string\",[Ne]:\"double\",[Ce]:\"string\",[we]:\"integer\",[Le]:\"integer\",[De]:\"integer\",[Me]:\"integer\",[Ue]:\"double\",[Fs]:\"boolean\",[Hs]:\"string\",[Ws]:\"string\",[ke]:\"string\",[Ge]:\"double\",[qe]:\"double\",[Ve]:\"double\",[Bs]:\"integer\",[Ks]:\"double\",[zs]:\"integer\",[js]:\"integer\",[Qs]:\"double\",[Xs]:\"double\",[Js]:\"integer\",[Zs]:\"integer\",[$s]:\"integer\",[er]:\"integer\",[ir]:\"integer\",[tr]:\"string\",[sr]:\"string\",[rr]:\"string\",[Ye]:\"string\",[nr]:\"double\",[Fe]:\"string\",[He]:\"string\",[We]:\"string\",[Be]:\"string\",[ar]:\"double\",[or]:\"string[]\",[lr]:\"string[]\",[pr]:\"boolean\",[Ke]:\"string\",[ze]:\"double\",[je]:\"double\",[cr]:\"string\",[br]:\"string\",[gr]:\"string\",[dr]:\"integer\",[Qe]:\"string\",[ur]:\"string\",[Xe]:\"string\",[Je]:\"double\",[Ze]:\"double\",[$e]:\"double\",[ei]:\"double\",[ii]:\"string\",[ti]:\"string\",[si]:\"integer\",[ri]:\"integer\",[mr]:\"string\",[ni]:\"integer\",[ai]:\"string\",[oi]:\"double\",[li]:\"double\",[pi]:\"double\",[hr]:\"boolean\",[yr]:\"integer\",[fr]:\"string[]\",[vr]:\"string\",[_r]:\"integer\",[Er]:\"boolean\",[Tr]:\"string\",[h]:\"string\",[Ir]:\"integer\",[Or]:\"integer\",[y]:\"string\",[Pr]:\"integer\",[Ar]:\"integer\",[Rr]:\"string\",[Sr]:\"string\",[xr]:\"string\",[Nr]:\"string\",[Cr]:\"integer\",[wr]:\"string\",[Lr]:\"integer\",[Dr]:\"string\",[Mr]:\"string\",[Ur]:\"integer\",[kr]:\"string\",[Gr]:\"string\",[qr]:\"string\",[Vr]:\"string\",[Yr]:\"string\",[Fr]:\"string\",[Hr]:\"string\",[ci]:\"double\",[bi]:\"string\",[gi]:\"string\",[di]:\"string\",[ui]:\"string\",[mi]:\"string\",[hi]:\"integer\",[yi]:\"integer\",[Wr]:\"string\",[f]:\"string\",[fi]:\"integer\",[Br]:\"string\",[Kr]:\"string\",[zr]:\"boolean\",[jr]:\"string\",[Qr]:\"string\",[Xr]:\"string\",[Jr]:\"string\",[vi]:\"string\",[_i]:\"string\",[v]:\"string\",[Zr]:\"integer\",[_]:\"string\",[$r]:\"string\",[en]:\"string\",[Ei]:\"string\",[tn]:\"string\",[sn]:\"string\",[rn]:\"string[]\",[nn]:\"string[]\",[Ti]:\"string\",[an]:\"string\",[Ii]:\"string\",[Oi]:\"string\",[on]:\"string\",[Pi]:\"string\",[ln]:\"string[]\",[pn]:\"double\",[cn]:\"double\",[bn]:\"string\",[gn]:\"string\",[dn]:\"boolean\",[un]:\"string\",[mn]:\"string\",[E]:\"string\",[hn]:\"string\",[yn]:\"integer\",[fn]:\"integer\",[vn]:\"string\",[_n]:\"integer\",[En]:\"integer\",[Tn]:\"string\",[In]:\"string\",[On]:\"boolean\",[Pn]:\"boolean\",[An]:\"string\",[Ai]:\"integer\",[Rn]:\"integer\",[Sn]:\"string\",[xn]:\"string\",[Nn]:\"string\",[Cn]:\"boolean\",[wn]:\"string\",[Ri]:\"integer\",[Ln]:\"double\",[Dn]:\"double\",[Mn]:\"integer\",[Un]:\"integer\",[kn]:\"integer\",[Gn]:\"boolean\",[qn]:\"integer\",[Vn]:\"string\",[Yn]:\"string\",[Fn]:\"integer\",[Si]:\"string\",[xi]:\"string\",[Hn]:\"string\",[Wn]:\"integer\",[Bn]:\"string\",[Kn]:\"boolean\",[zn]:\"string\",[jn]:\"string\",[Qn]:\"string\",[Xn]:\"boolean\",[Jn]:\"string\",[Zn]:\"integer\",[$n]:\"string\",[ea]:\"string\",[Ni]:\"string\",[Ci]:\"string\",[ia]:\"string\",[ta]:\"string\",[wi]:\"string\",[Li]:\"double\",[sa]:\"boolean\",[Di]:\"double\",[Mi]:\"integer\",[Ui]:\"integer\",[ra]:\"double\",[ki]:\"integer\",[na]:\"double\",[Gi]:\"integer\",[aa]:\"string\",[oa]:\"string\",[la]:\"string\",[pa]:\"string\",[ca]:\"string\",[ba]:\"string\",[ga]:\"string\",[da]:\"string\",[ua]:\"string\",[ma]:\"string\",[ha]:\"string\",[ya]:\"string\",[fa]:\"double\",[va]:\"integer\",[_a]:\"string\",[Ea]:\"double\",[Ta]:\"double\",[qi]:\"double\",[Ia]:\"string\",[Oa]:\"string\",[Vi]:\"string\",[Pa]:\"string\",[Aa]:\"string\",[Ra]:\"string\",[Yi]:\"string\",[Sa]:\"string\",[Fi]:\"string\",[T]:\"string\",[xa]:\"string\",[Hi]:\"double\",[Na]:\"integer\",[Wi]:\"string\",[Ca]:\"string\",[Bi]:\"double\",[Ki]:\"string\",[zi]:\"double\",[ji]:\"integer\",[Qi]:\"double\",[Xi]:\"string\",[Ji]:\"string\",[Zi]:\"string\",[$i]:\"boolean\",[wa]:\"string\",[et]:\"double\",[it]:\"double\",[La]:\"double\",[Da]:\"string\",[I]:\"string\",[tt]:\"string\",[Ma]:\"string\",[st]:\"string\",[e]:\"string\",[Ua]:\"string\",[ka]:\"string\",[rt]:\"string\",[i]:\"string\",[O]:\"string\",[t]:\"string\",[Ga]:\"string\",[nt]:\"integer\",[at]:\"integer\",[P]:\"integer\",[A]:\"integer\",[ot]:\"integer\",[lt]:\"integer\",[R]:\"integer\",[pt]:\"integer\",[S]:\"integer\",[ct]:\"integer\",[bt]:\"integer\",[qa]:\"string\",[Va]:\"string\",[Ya]:\"string\",[gt]:\"string\",[dt]:\"string\",[Fa]:\"integer\",[x]:\"string\",[Ha]:\"string\",[s]:\"string\",[r]:\"string\",[Wa]:\"string\",[Ba]:\"string\",[Ka]:\"double\",[za]:\"double\",[ja]:\"double\",[Qa]:\"double\",[Xa]:\"double\",[Ja]:\"string[]\",[n]:\"string\",[a]:\"string\",[Za]:\"double\",[$a]:\"double\",[eo]:\"double\",[io]:\"integer\",[to]:\"double\",[so]:\"double\",[ro]:\"double\",[no]:\"double\",[ao]:\"double\",[N]:\"integer\",[C]:\"integer\",[w]:\"string\",[oo]:\"string[]\",[ut]:\"integer\",[mt]:\"integer\",[ht]:\"integer\",[L]:\"string\",[yt]:\"string\",[o]:\"string\",[lo]:\"double\",[ft]:\"integer\",[po]:\"string\",[D]:\"string\",[vt]:\"string\",[co]:\"string\",[_t]:\"double\",[bo]:\"string\",[Et]:\"string\",[go]:\"string\",[uo]:\"string\",[mo]:\"string\",[ho]:\"string\",[yo]:\"boolean\",[fo]:\"string\",[Tt]:\"double\",[It]:\"string\",[Ot]:\"string\",[Pt]:\"integer\",[At]:\"integer\",[Rt]:\"integer\",[St]:\"string\",[vo]:\"string\",[_o]:\"string\",[Eo]:\"string\",[To]:\"string\",[Io]:\"string\",[Oo]:\"string\",[Po]:\"string\",[Ao]:\"string\",[Ro]:\"string\",[So]:\"string\",[xo]:\"string\",[No]:\"string\",[Co]:\"integer\",[wo]:\"string\",[Lo]:\"double\",[Do]:\"string\",[Mo]:\"integer\",[xt]:\"string\",[Uo]:\"string\",[ko]:\"string\",[Go]:\"integer\",[qo]:\"string\",[Vo]:\"integer\",[Yo]:\"string\",[Fo]:\"string\",[Ho]:\"string\",[Wo]:\"string\",[Nt]:\"string\",[M]:\"string\",[Bo]:\"string\",[Ko]:\"string\",[zo]:\"string\",[jo]:\"string\",[Qo]:\"string\",[U]:\"string\",[l]:\"string\",[Xo]:\"integer\",[Jo]:\"boolean\",[k]:\"string\",[Zo]:\"string\",[$o]:\"integer\",[el]:\"string\",[il]:\"string\",[tl]:\"integer\",[sl]:\"integer\",[rl]:\"string\",[nl]:\"integer\",[al]:\"integer\",[ol]:\"string\",[ll]:\"string\",[pl]:\"string\",[p]:\"string\",[cl]:\"string\",[bl]:\"string\",[gl]:\"integer\",[dl]:\"string\",[ul]:\"string\",[ml]:\"double\",[hl]:\"string\",[Ct]:\"string\",[wt]:\"integer\",[G]:\"string\",[q]:\"string\",[Lt]:\"integer\",[V]:\"string\",[yl]:\"integer\",[Y]:\"string\",[F]:\"string\",[H]:\"string\",[fl]:\"string\",[W]:\"string\",[c]:\"string\",[Dt]:\"integer\",[B]:\"string\",[vl]:\"string\",[_l]:\"integer\",[K]:\"string\",[z]:\"string\",[El]:\"string\",[j]:\"string\",[Mt]:\"integer\",[Q]:\"string\",[Tl]:\"string\",[Il]:\"integer\",[X]:\"string\",[Ut]:\"string\",[kt]:\"string\",[Ol]:\"string\",[Pl]:\"string\",[Al]:\"string\",[Rl]:\"string\",[Sl]:\"boolean\",[xl]:\"string\",[Nl]:\"string\",[Cl]:\"string\",[wl]:\"string\",[Ll]:\"string\",[Dl]:\"string\",[Ml]:\"string\",[Gt]:\"string\",[qt]:\"double\",[Vt]:\"double\",[Ul]:\"string\",[kl]:\"string[]\",[Gl]:\"string\",[ql]:\"integer\",[Yt]:\"string\",[Vl]:\"string\",[Yl]:\"string\",[Ft]:\"string\",[Ht]:\"string\",[Fl]:\"string\",[Hl]:\"string\",[Wt]:\"string\",[Wl]:\"string\",[Bt]:\"string\",[Bl]:\"string\",[Kl]:\"string\",[zl]:\"string\",[jl]:\"string\",[Ql]:\"integer\",[Xl]:\"string\",[Jl]:\"string\",[Zl]:\"string\",[$l]:\"string\",[Kt]:\"string\",[zt]:\"string\",[jt]:\"string\",[ep]:\"double\",[ip]:\"double\",[tp]:\"double\",[sp]:\"double\",[rp]:\"string\",[Qt]:\"string\",[Xt]:\"string\",[np]:\"string\",[ap]:\"string\",[op]:\"double\",[lp]:\"string\",[pp]:\"string\",[cp]:\"string\",[bp]:\"string\",[gp]:\"string\",[dp]:\"string\",[up]:\"string\",[mp]:\"boolean\",[hp]:\"string\",[yp]:\"string\",[fp]:\"string\",[Jt]:\"string\",[vp]:\"double\",[_p]:\"string\",[Ep]:\"string\",[Tp]:\"boolean\",[Ip]:\"string\",[Op]:\"boolean\",[Pp]:\"string\",[Ap]:\"boolean\",[Rp]:\"string\",[Sp]:\"string\",[xp]:\"boolean\",[Np]:\"string\",[Cp]:\"string\",[wp]:\"string\",[Lp]:\"string\",[Dp]:\"string\",[Mp]:\"string\",[Up]:\"string\",[kp]:\"string\",[Gp]:\"string\",[qp]:\"string\",[Vp]:\"string\",[Yp]:\"string\",[J]:\"string\",[Zt]:\"string\",[Fp]:\"boolean\",[Hp]:\"string\",[Wp]:\"string[]\",[Bp]:\"string\",[Kp]:\"string\",[$t]:\"string\",[es]:\"string\",[Z]:\"string\",[zp]:\"double\",[jp]:\"string\",[Qp]:\"string\",[Xp]:\"integer\",[Jp]:\"string\",[Zp]:\"integer\",[$p]:\"string\",[$]:\"string\",[is]:\"string\",[ts]:\"string\",[ss]:\"string\",[rs]:\"string\",[ns]:\"string\",[as]:\"string\",[os]:\"string\",[ls]:\"string\",[b]:\"string\",[ps]:\"integer\",[ec]:\"string\",[cs]:\"string\",[ic]:\"string\",[tc]:\"double\",[sc]:\"double\",[rc]:\"string\",[nc]:\"integer\",[ac]:\"string\",[oc]:\"string\",[bs]:\"double\",[gs]:\"double\",[ee]:\"string\",[lc]:\"string\",[pc]:\"string\",[ds]:\"double\",[us]:\"double\",[cc]:\"string\",[bc]:\"string\",[gc]:\"boolean\",[dc]:\"boolean\",[uc]:\"integer\",[mc]:\"string\",[hc]:\"string\",[yc]:\"double\",[fc]:\"string\",[vc]:\"double\",[_c]:\"string\",[Ec]:\"string\",[Tc]:\"integer\",[ie]:\"string\",[Ic]:\"string\",[Oc]:\"string\",[te]:\"string\",[Pc]:\"string\",[ms]:\"string\",[Ac]:\"integer\",[Rc]:\"string\",[hs]:\"string\",[ys]:\"string\",[fs]:\"string\",[vs]:\"string\",[Sc]:\"string\",[_s]:\"string\",[Es]:\"string\",[Ts]:\"string\",[Is]:\"string\",[xc]:\"string\",[Os]:\"string\",[Ps]:\"string\",[As]:\"string\",[Nc]:\"string[]\",[Cc]:\"string\",[wc]:\"string\",[Lc]:\"string\",[Dc]:\"string\",[Mc]:\"string\",[Uc]:\"string\",[kc]:\"string\",[Gc]:\"string\",[qc]:\"string\",[Vc]:\"string\",[Yc]:\"string\",[Fc]:\"string\",[Hc]:\"string\",[Wc]:\"string\",[Bc]:\"string\",[Kc]:\"string\",[zc]:\"string\",[jc]:\"string\",[Qc]:\"string\",[Xc]:\"string\",[Jc]:\"string\",[Zc]:\"string\",[$c]:\"string\",[eb]:\"string\",[ib]:\"integer\",[tb]:\"string\",[sb]:\"integer\",[rb]:\"integer\",[nb]:\"string[]\",[ab]:\"string\",[ob]:\"string\",[lb]:\"string\",[pb]:\"string\",[cb]:\"string\",[bb]:\"string\",[gb]:\"integer\"},ub={[Rs]:{brief:\"References or sources cited by the AI model in its response.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"Citation 1\",\"Citation 2\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[g]:{brief:\"The number of tokens used to respond to the message.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:10,deprecation:{replacement:\"gen_ai.usage.output_tokens\"},aliases:[R,P],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57,61]},{version:\"0.0.0\"}]},[Ss]:{brief:\"Documents or content chunks used as context for the AI model.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"document1.txt\",\"document2.pdf\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[se]:{brief:\"The reason why the model stopped generating.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"COMPLETE\",deprecation:{replacement:\"gen_ai.response.finish_reasons\"},aliases:[Xi],changelog:[{version:\"0.1.0\",prs:[55,57,61,108,127]}]},[re]:{brief:\"Used to reduce repetitiveness of generated tokens. The higher the value, the stronger a penalty is applied to previously present tokens, proportional to how many times they have already appeared in the prompt or prior generation.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.5,deprecation:{replacement:\"gen_ai.request.frequency_penalty\"},aliases:[Hi],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},[d]:{brief:\"For an AI model call, the function that was called. This is deprecated for OpenAI, and replaced by tool_calls\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"function_name\",deprecation:{replacement:\"gen_ai.tool.name\"},aliases:[O,U],changelog:[{version:\"0.1.0\",prs:[55,57,61,108]}]},[ne]:{brief:\"Unique identifier for the completion.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"gen_123abc\",deprecation:{replacement:\"gen_ai.response.id\"},aliases:[Ji],changelog:[{version:\"0.1.0\",prs:[55,57,61,108,127]}]},[ae]:{brief:\"The input messages sent to the model\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'[{\"role\": \"user\", \"message\": \"hello\"}]',deprecation:{replacement:\"gen_ai.input.messages\"},aliases:[Wi],changelog:[{version:\"0.1.0\",prs:[65,119]},{version:\"0.0.0\"}]},[xs]:{brief:\"Boolean indicating if the model needs to perform a search.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!1,deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[Ns]:{brief:\"Extra metadata passed to an AI pipeline step.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'{\"user_id\": 123, \"session_id\": \"abc123\"}',deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55,127]}]},[oe]:{brief:\"The vendor-specific ID of the model used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"gpt-4\",deprecation:{replacement:\"gen_ai.response.model\"},aliases:[Zi],changelog:[{version:\"0.1.0\",prs:[57,61,127]},{version:\"0.0.0\"}]},[u]:{brief:\"The provider of the model.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"openai\",deprecation:{replacement:\"gen_ai.provider.name\"},aliases:[T,I],changelog:[{version:\"0.4.0\",prs:[253]},{version:\"0.1.0\",prs:[57,61,108,127]}]},[le]:{brief:\"The name of the AI pipeline.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Autofix Pipeline\",deprecation:{replacement:\"gen_ai.pipeline.name\"},aliases:[Yi],changelog:[{version:\"0.1.0\",prs:[53,76,108,127]}]},[pe]:{brief:\"For an AI model call, the preamble parameter. Preambles are a part of the prompt used to adjust the model's overall behavior and conversation style.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"You are now a clown.\",deprecation:{replacement:\"gen_ai.system_instructions\"},aliases:[tt],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[ce]:{brief:\"Used to reduce repetitiveness of generated tokens. Similar to frequency_penalty, except that this penalty is applied equally to all tokens that have already appeared, regardless of their exact frequencies.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.5,deprecation:{replacement:\"gen_ai.request.presence_penalty\"},aliases:[Bi],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},[m]:{brief:\"The number of tokens used to process just the prompt.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:20,deprecation:{replacement:\"gen_ai.usage.input_tokens\"},aliases:[S,A],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57,61]},{version:\"0.0.0\"}]},[Cs]:{brief:\"When enabled, the user\\u2019s prompt will be sent to the model without any pre-processing.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[ws]:{brief:\"The response messages sent back by the AI model.\",type:\"string[]\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:[\"hello\",\"world\"],deprecation:{replacement:\"gen_ai.output.messages\"},changelog:[{version:\"0.1.0\",prs:[65,127]},{version:\"0.0.0\"}]},[Ls]:{brief:\"For an AI model call, the format of the response\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"json_object\",deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55,127]}]},[Ds]:{brief:\"Queries used to search for relevant context or documents.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"climate change effects\",\"renewable energy\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[Ms]:{brief:\"Results returned from search queries for context.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"search_result_1, search_result_2\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[be]:{brief:\"The seed, ideally models given the same seed and same other parameters will produce the exact same output.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",deprecation:{replacement:\"gen_ai.request.seed\"},aliases:[Ki],changelog:[{version:\"0.1.0\",prs:[55,57,61,108,127]}]},[ge]:{brief:\"Whether the request was streamed back.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,deprecation:{replacement:\"gen_ai.response.streaming\"},aliases:[$i],changelog:[{version:\"0.1.0\",prs:[76,108]},{version:\"0.0.0\"}]},[Us]:{brief:\"Tags that describe an AI pipeline step.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'{\"executed_function\": \"add_integers\"}',deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55,127]}]},[de]:{brief:\"For an AI model call, the temperature parameter. Temperature essentially means how random the output will be.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.1,deprecation:{replacement:\"gen_ai.request.temperature\"},aliases:[zi],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},[ue]:{brief:\"Raw text inputs provided to the model.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"Hello, how are you?\",\"What is the capital of France?\"],deprecation:{replacement:\"gen_ai.input.messages\"},aliases:[Vi],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[ks]:{brief:\"For an AI model call, the functions that are available\",type:\"string[]\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:[\"function_1\",\"function_2\"],deprecation:{replacement:\"gen_ai.tool.definitions\"},changelog:[{version:\"0.1.0\",prs:[55,65,127]}]},[Gs]:{brief:\"For an AI model call, the tool calls that were made.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"tool_call_1\",\"tool_call_2\"],deprecation:{replacement:\"gen_ai.output.messages\"},changelog:[{version:\"0.1.0\",prs:[55,65]}]},[me]:{brief:\"Limits the model to only consider the K most likely next tokens, where K is an integer (e.g., top_k=20 means only the 20 highest probability tokens are considered).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:35,deprecation:{replacement:\"gen_ai.request.top_k\"},aliases:[ji],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},[he]:{brief:\"Limits the model to only consider tokens whose cumulative probability mass adds up to p, where p is a float between 0 and 1 (e.g., top_p=0.7 means only tokens that sum up to 70% of the probability mass are considered).\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.7,deprecation:{replacement:\"gen_ai.request.top_p\"},aliases:[Qi],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},[ye]:{brief:\"The total cost for the tokens used.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:12.34,deprecation:{replacement:\"gen_ai.cost.total_tokens\"},aliases:[qi],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[53]}]},[fe]:{brief:\"The total number of tokens used to process the prompt.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:30,deprecation:{replacement:\"gen_ai.usage.total_tokens\"},aliases:[bt],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57,61,108]},{version:\"0.0.0\"}]},[qs]:{brief:\"Warning messages generated during model execution.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"Token limit exceeded\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},[Vs]:{brief:\"The version of the Angular framework\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"17.1.0\",changelog:[{version:\"0.7.0\",prs:[367],description:\"Added angular.version attribute\"}]},[ve]:{brief:\"Internal build identifier, as it appears on the platform.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1\",deprecation:{replacement:\"app.build\",reason:\"Deprecated in favor of app.build\"},aliases:[Oe],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_build in favor of app.build\"}]},[_e]:{brief:\"Version-independent application identifier, often a dotted bundle ID.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"com.example.myapp\",deprecation:{replacement:\"app.identifier\",reason:\"Deprecated in favor of app.identifier\"},aliases:[Pe],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_identifier in favor of app.identifier\"}]},[Ee]:{brief:\"Human readable application name, as it appears on the platform.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"My App\",deprecation:{replacement:\"app.name\",reason:\"Deprecated in favor of app.name\"},aliases:[Ae],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_name in favor of app.name\"}]},[Te]:{brief:\"Formatted UTC timestamp when the user started the application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"2025-01-01T00:00:00.000Z\",deprecation:{replacement:\"app.start_time\",reason:\"Deprecated in favor of app.start_time\"},aliases:[Se],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_start_time in favor of app.start_time\"}]},[Ie]:{brief:\"Human readable application version, as it appears on the platform.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1.0.0\",deprecation:{replacement:\"app.version\",reason:\"Deprecated in favor of app.version\"},aliases:[Ce],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_version in favor of app.version\"}]},[Oe]:{brief:\"Internal build identifier, as it appears on the platform.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1\",aliases:[ve],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.build attribute\"}]},[Pe]:{brief:\"Version-independent application identifier, often a dotted bundle ID.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"com.example.myapp\",aliases:[_e],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.identifier attribute\"}]},[Ys]:{brief:\"Whether the application is currently in the foreground.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.in_foreground attribute\"}]},[Ae]:{brief:\"Human readable application name, as it appears on the platform.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"My App\",aliases:[Ee],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.name attribute\"}]},[Re]:{brief:\"The duration of a cold app start in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.start.cold.value\",reason:\"Replaced by app.vitals.start.cold.value to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[Ue],changelog:[{version:\"0.5.0\",prs:[323],description:\"Added and deprecated in favor of app.vitals.start.cold.value\"}]},[Se]:{brief:\"Formatted UTC timestamp when the user started the application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"2025-01-01T00:00:00.000Z\",aliases:[Te],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.start_time attribute\"}]},[xe]:{brief:\"Mobile app start variant. Either cold or warm.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"cold\",deprecation:{replacement:\"app.vitals.start.type\",reason:\"Replaced by app.vitals.start.type to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[ke],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.start.type\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ne]:{brief:\"The duration of a warm app start in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.start.warm.value\",reason:\"Replaced by app.vitals.start.warm.value to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[Ge],changelog:[{version:\"0.5.0\",prs:[323],description:\"Added and deprecated in favor of app.vitals.start.warm.value\"}]},[Ce]:{brief:\"Human readable application version, as it appears on the platform.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1.0.0\",aliases:[Ie],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.version attribute\"}]},[we]:{brief:\"The sum of all delayed frame durations in seconds during the lifetime of the span. For more information see [frames delay](https://develop.sentry.dev/sdk/performance/frames-delay/).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:5,aliases:[Mi],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.delay.value to replace frames.delay\"}]},[Le]:{brief:\"The number of frozen frames rendered during the lifetime of the span.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:3,aliases:[Ui],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.frozen.count to replace frames.frozen\"}]},[De]:{brief:\"The number of slow frames rendered during the lifetime of the span.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,aliases:[ki],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.slow.count to replace frames.slow\"}]},[Me]:{brief:\"The number of total frames rendered during the lifetime of the span.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:60,aliases:[Gi],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.total.count to replace frames.total\"}]},[Ue]:{brief:\"The duration of a cold app start in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[Re],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.start.cold.value attribute\"}]},[Fs]:{brief:\"Whether the app start was prewarmed.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.11.0\",prs:[379],description:\"Added app.vitals.start.prewarmed attribute\"}]},[Hs]:{brief:\"The reason that triggered the app start.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"push\",changelog:[{version:\"0.7.0\",prs:[353],description:\"Added app.vitals.start.reason attribute\"}]},[Ws]:{brief:\"The screen that is rendered when the app start is complete. This is the screen the user first sees and can interact with after launch. The absence of this attribute on the app start span indicates a background app start where no UI was rendered.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"MainActivity\",changelog:[{version:\"0.7.0\",prs:[353],description:\"Added app.vitals.start.screen attribute\"}]},[ke]:{brief:\"The type of app start, for example `cold` or `warm`\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"cold\",aliases:[xe],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.start.type attribute\"}]},[Ge]:{brief:\"The duration of a warm app start in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[Ne],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.start.warm.value attribute\"}]},[qe]:{brief:\"The duration of time to full display in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[bs],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.ttfd.value attribute\"}]},[Ve]:{brief:\"The duration of time to initial display in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[gs],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.ttid.value attribute\"}]},[Bs]:{brief:\"Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.blocking_count attribute\"}]},[Ks]:{brief:\"Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:11.873,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.blocking_time attribute\"}]},[zs]:{brief:\"Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:0,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.pre_oome_count attribute\"}]},[js]:{brief:\"Total number of garbage collections performed by the Android Runtime\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.total_count attribute\"}]},[Qs]:{brief:\"Total time spent in garbage collection by the Android Runtime, in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:11.807,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.total_time attribute\"}]},[Xs]:{brief:\"Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:8.054,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.waiting_time attribute\"}]},[Js]:{brief:\"Free memory available to the process as reported by the Android Runtime, in bytes\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:3181568,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.free attribute\"}]},[Zs]:{brief:\"Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:3181568,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.free_until_gc attribute\"}]},[$s]:{brief:\"Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:196083712,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.free_until_oome attribute\"}]},[er]:{brief:\"Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:201326592,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.max attribute\"}]},[ir]:{brief:\"Total memory currently allocated to the process by the Android Runtime, in bytes\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:7774208,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.total attribute\"}]},[tr]:{brief:\"The name of the CloudWatch Logs log group\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"/aws/lambda/my-function\",changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.cloudwatch.logs.log_group attribute\"}]},[sr]:{brief:\"The name of the CloudWatch Logs log stream\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"2024/01/01/[$LATEST]abcdef1234567890\",changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.cloudwatch.logs.log_stream attribute\"}]},[rr]:{brief:\"The URL to the CloudWatch Logs log group\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logsV2:log-groups/log-group/my-log-group\",changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.cloudwatch.logs.url attribute\"}]},[Ye]:{brief:\"The AWS request ID as received by the Lambda function runtime\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"8476a536-e9f4-11e8-9739-2dfe598c3fcd\",deprecation:{replacement:\"faas.invocation_id\",reason:\"This attribute is being deprecated in favor of faas.invocation_id\"},aliases:[Ni],changelog:[{version:\"0.11.1\",prs:[414,424],description:\"Deprecated aws.lambda.aws_request_id in favor of faas.invocation_id\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.aws_request_id attribute\"}]},[nr]:{brief:\"The execution duration of the Lambda function invocation in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.execution_duration_in_millis attribute\"}]},[Fe]:{brief:\"The name of the Lambda function\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"my-function\",deprecation:{replacement:\"faas.name\",reason:\"Use the OTel-aligned faas.name attribute instead\"},aliases:[Ci],changelog:[{version:\"0.11.1\",prs:[414],description:\"Deprecated aws.lambda.function_name in favor of faas.name\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.function_name attribute\"}]},[He]:{brief:\"The version of the Lambda function\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"$LATEST\",deprecation:{replacement:\"faas.version\",reason:\"Use the OTel-aligned faas.version attribute instead\"},aliases:[wi],changelog:[{version:\"0.11.1\",prs:[414,424],description:\"Deprecated aws.lambda.function_version in favor of faas.version\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.function_version attribute\"}]},[We]:{brief:\"The full ARN of the Lambda function that was invoked\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:lambda:us-east-1:123456789012:function:my-function\",aliases:[Be],changelog:[{version:\"0.11.1\",prs:[414]}]},[Be]:{brief:\"The full ARN of the Lambda function that was invoked\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"arn:aws:lambda:us-east-1:123456789012:function:my-function\",deprecation:{replacement:\"aws.lambda.invoked_arn\",reason:\"This attribute is being deprecated in favor of aws.lambda.invoked_arn\"},aliases:[We],changelog:[{version:\"0.11.1\",prs:[414],description:\"Deprecated aws.lambda.invoked_function_arn in favor of aws.lambda.invoked_arn\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.invoked_function_arn attribute\"}]},[ar]:{brief:\"The remaining time in milliseconds before the Lambda function times out\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:5e3,changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.remaining_time_in_millis attribute\"}]},[or]:{brief:\"The name(s) of the AWS log group(s) an application is writing to.\",type:\"string[]\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:[\"/aws/lambda/my-function\",\"opentelemetry-service\"],changelog:[{version:\"0.11.1\",prs:[414]}]},[lr]:{brief:\"The name(s) of the AWS log stream(s) an application is writing to.\",type:\"string[]\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:[\"logs/main/10838bed-421f-43ef-870a-f43feacbbb5b\"],changelog:[{version:\"0.11.1\",prs:[414]}]},[pr]:{brief:\"Whether the main thread was blocked by the span.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[Ke]:{brief:\"The name of the browser.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Chrome\",aliases:[Qt],changelog:[{version:\"0.1.0\",prs:[127,139]},{version:\"0.0.0\"}]},[ze]:{brief:\"The time between initiating a navigation to a page and the browser activating the page\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1.983,aliases:[qt],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added browser.performance.navigation.activation_start attribute\"}]},[je]:{brief:\"The browser's performance.timeOrigin timestamp representing the time when the pageload was initiated\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1776185678886e-3,aliases:[Vt],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added browser.performance.time_origin attribute attribute\"}]},[cr]:{brief:\"A browser report sent via reporting API..\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"network-error\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},[br]:{brief:\"How a script was called in the browser.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Window.requestAnimationFrame\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[gr]:{brief:\"Browser script entry point type.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"event-listener\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[dr]:{brief:\"A number representing the script character position of the script.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:678,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Qe]:{brief:\"The version of the browser.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"120.0.6099.130\",aliases:[Xt],changelog:[{version:\"0.1.0\",prs:[59,127,139]}]},[ur]:{brief:\"The event that caused the SDK to report CLS (pagehide or navigation)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"navigation\",changelog:[{version:\"0.5.0\",prs:[319],description:\"Added browser.web_vital.cls.report_event attribute\"}]},[Xe]:{brief:\"The HTML elements or components responsible for the layout shift. is a numeric index from 1 to N\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"body > div#app\",aliases:[bi],changelog:[{version:\"0.5.0\",prs:[234]}]},[Je]:{brief:\"The value of the recorded Cumulative Layout Shift (CLS) web vital\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.2361,aliases:[ci],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added browser.web_vital.cls.value attribute\"}]},[Ze]:{brief:\"The time it takes for the browser to render the first piece of meaningful content on the screen\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:547.6951,aliases:[Li],changelog:[{version:\"0.5.0\",prs:[235]}]},[$e]:{brief:\"The time in milliseconds it takes for the browser to render the first pixel on the screen\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:477.1926,aliases:[Di],changelog:[{version:\"0.5.0\",prs:[235]}]},[ei]:{brief:\"The value of the recorded Interaction to Next Paint (INP) web vital\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:200,aliases:[_t],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added browser.web_vital.inp.value attribute\"}]},[ii]:{brief:\"The HTML element selector or component name for which LCP was reported\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"body > div#app > div#container > div\",aliases:[It],changelog:[{version:\"0.5.0\",prs:[233]}]},[ti]:{brief:\"The id of the dom element responsible for the largest contentful paint\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"#gero\",aliases:[Ot],changelog:[{version:\"0.5.0\",prs:[233]}]},[si]:{brief:\"The time it took for the LCP element to be loaded\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1402,aliases:[Pt],changelog:[{version:\"0.5.0\",prs:[233]}]},[ri]:{brief:\"The time it took for the LCP element to be rendered\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1685,aliases:[At],changelog:[{version:\"0.5.0\",prs:[233]}]},[mr]:{brief:\"The event that caused the SDK to report LCP (pagehide or navigation)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"pagehide\",changelog:[{version:\"0.5.0\",prs:[319],description:\"Added browser.web_vital.lcp.report_event attribute\"}]},[ni]:{brief:\"The size of the largest contentful paint element\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1024,aliases:[Rt],changelog:[{version:\"0.5.0\",prs:[233]}]},[ai]:{brief:\"The url of the dom element responsible for the largest contentful paint\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com/static/img.png\",aliases:[St],changelog:[{version:\"0.5.0\",prs:[233]}]},[oi]:{brief:\"The value of the recorded Largest Contentful Paint (LCP) web vital\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2500,aliases:[Tt],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added browser.web_vital.lcp.value attribute\"}]},[li]:{brief:\"The time it takes for the server to process the initial request and send the first byte of a response to the user's browser\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1554.5814,aliases:[us],changelog:[{version:\"0.5.0\",prs:[235]}]},[pi]:{brief:\"The value of the recorded Time To First Byte (TTFB) web vital in Milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:194.3322,aliases:[ds],changelog:[{version:\"0.5.0\",prs:[235]}]},[hr]:{brief:\"If the cache was hit during this span.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[yr]:{brief:\"The size of the requested item in the cache. In bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:58,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[fr]:{brief:\"The key of the cache accessed.\",type:\"string[]\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:[\"my-cache-key\",\"my-other-cache-key\"],changelog:[{version:\"0.0.0\"}]},[vr]:{brief:\"The operation being performed on the cache.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"get\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[_r]:{brief:\"The ttl of the cache in seconds\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:120,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Er]:{brief:\"If the cache operation resulted in a write to the cache.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\"}]},[Tr]:{brief:\"The channel name that is being used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"mail\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[h]:{brief:\"Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",aliases:[dt],changelog:[{version:\"0.1.0\",prs:[106,127]},{version:\"0.0.0\"}]},[Ir]:{brief:\"Client port number.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:5432,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Or]:{brief:\"The duration of a Cloudflare D1 operation.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:543,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[y]:{brief:\"The type of query executed in a Cloudflare D1 operation\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"run\",deprecation:{replacement:\"db.operation.name\"},aliases:[_,v],changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.d1.query_type attribute\"}]},[Pr]:{brief:\"The number of rows read in a Cloudflare D1 operation.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:12,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Ar]:{brief:\"The number of rows written in a Cloudflare D1 operation.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:12,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Rr]:{brief:\"The name of the Cloudflare R2 bucket binding\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"MY_BUCKET\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.bucket attribute\"}]},[Sr]:{brief:\"The R2 API operation being performed\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"GetObject\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.operation attribute\"}]},[xr]:{brief:\"The delimiter used to group objects in an R2 list operation\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"/\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.delimiter attribute\"}]},[Nr]:{brief:\"The object key used in the R2 operation\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"my-file.txt\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.key attribute\"}]},[Cr]:{brief:\"The part number in a multipart upload operation\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.part_number attribute\"}]},[wr]:{brief:\"The prefix used to filter objects in an R2 list operation\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"images/\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.prefix attribute\"}]},[Lr]:{brief:\"The current attempt number for a Cloudflare Workflow step\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.attempt attribute\"}]},[Dr]:{brief:\"The backoff strategy for Cloudflare Workflow step retries\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"exponential\",changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.retries.backoff attribute\"}]},[Mr]:{brief:\"The delay between Cloudflare Workflow step retries\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"5 seconds\",changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.retries.delay attribute\"}]},[Ur]:{brief:\"The maximum number of retries for a Cloudflare Workflow step\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:3,changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.retries.limit attribute\"}]},[kr]:{brief:\"The timeout duration for a Cloudflare Workflow step\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1 minute\",changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.timeout attribute\"}]},[Gr]:{brief:\"The cloud account ID the resource is assigned to\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"123456789012\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.account.id attribute\"}]},[qr]:{brief:\"Cloud regions often have multiple, isolated locations known as zones to increase availability\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"us-east-1c\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.availability_zone attribute\"}]},[Vr]:{brief:\"The cloud platform in use\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"aws_lambda\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.platform attribute\"}]},[Yr]:{brief:\"Name of the cloud provider\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"aws\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.provider attribute\"}]},[Fr]:{brief:\"The geographical region the resource is running\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"us-east-1\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.region attribute\"}]},[Hr]:{brief:\"Cloud provider-specific native identifier of the monitored cloud resource\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function\",changelog:[{version:\"0.11.1\",prs:[414]}],additionalContext:[\"This can be an identifier for a resource in AWS, GCP, or Azure. There may be some overlap in values found here with other attributes. For instance, an AWS lambda ARN may be found here as well as in `aws.lambda.invoked_arn`. OTEL recommends setting them alongside each other.\"]},[ci]:{brief:\"The value of the recorded Cumulative Layout Shift (CLS) web vital\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.2361,deprecation:{replacement:\"browser.web_vital.cls.value\",reason:\"The CLS web vital is now recorded as a browser.web_vital.cls.value attribute.\"},aliases:[Je],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[bi]:{brief:\"The HTML elements or components responsible for the layout shift. is a numeric index from 1 to N\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"body > div#app\",deprecation:{replacement:\"browser.web_vital.cls.source.\",reason:\"The CLS source is now recorded as a browser.web_vital.cls.source. attribute.\"},aliases:[Xe],changelog:[{version:\"0.5.0\",prs:[234]}]},[gi]:{brief:\"The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"/app/myapplication/http/handler/server.py\",deprecation:{replacement:\"code.file.path\"},aliases:[di],changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[di]:{brief:\"The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"/app/myapplication/http/handler/server.py\",aliases:[gi],changelog:[{version:\"0.0.0\"}]},[ui]:{brief:\"The method or function name, or equivalent (usually rightmost part of the code unit's name).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"server_request\",aliases:[mi],changelog:[{version:\"0.1.0\",prs:[61,74]},{version:\"0.0.0\"}]},[mi]:{brief:\"The method or function fully-qualified name without arguments.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"server_request\",aliases:[ui],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[hi]:{brief:\"The line number in code.filepath best representing the operation. It SHOULD point within the code unit named in code.function\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:42,deprecation:{replacement:\"code.line.number\"},aliases:[yi],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61,108]},{version:\"0.0.0\"}]},[yi]:{brief:\"The line number in code.filepath best representing the operation. It SHOULD point within the code unit named in code.function\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:42,aliases:[hi],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Wr]:{brief:\"The 'namespace' within which code.function is defined. Usually the qualified class or module name, such that code.namespace + some separator + code.function form a unique identifier for the code unit.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"http.handler\",changelog:[{version:\"0.1.0\",prs:[61,74]},{version:\"0.0.0\"}]},[f]:{brief:\"Specifies the type of the current connection (e.g. wifi, ethernet, cellular , etc).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"wifi\",deprecation:{replacement:\"network.connection.type\",reason:\"Old namespace-less attribute, to be replaced with network.connection.type for span-first future\"},aliases:[G,E],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[fi]:{brief:\"Specifies the estimated effective round-trip time of the current connection, in milliseconds.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:100,deprecation:{replacement:\"network.connection.rtt\",reason:\"Old attribute name (no official namespace), to be replaced with network.connection.rtt for span-first future\"},aliases:[wt],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[Br]:{brief:\"The calendar system used by the culture.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"GregorianCalendar\",changelog:[{version:\"0.4.0\",prs:[243]}]},[Kr]:{brief:\"Human readable name of the culture.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"English (United States)\",changelog:[{version:\"0.4.0\",prs:[243]}]},[zr]:{brief:\"Whether the culture uses 24-hour time format.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.4.0\",prs:[243]}]},[jr]:{brief:\"The locale identifier following RFC 4646.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"en-US\",changelog:[{version:\"0.4.0\",prs:[243]}]},[Qr]:{brief:\"The timezone of the culture, as a geographic timezone identifier.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Europe/Vienna\",changelog:[{version:\"0.4.0\",prs:[243]}]},[Xr]:{brief:\"The name of a collection (table, container) within the database.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"users\",changelog:[{version:\"0.1.0\",prs:[106,127]},{version:\"0.0.0\"}]},[Jr]:{brief:\"The name of the driver used for the database connection.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"psycopg2\",changelog:[{version:\"0.5.0\",prs:[297],description:\"Added db.driver.name attribute\"}]},[vi]:{brief:\"The name of the database being accessed.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"customers\",deprecation:{replacement:\"db.namespace\"},aliases:[_i],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[_i]:{brief:\"The name of the database being accessed.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"customers\",aliases:[vi],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[v]:{brief:\"The name of the operation being executed.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"SELECT\",deprecation:{replacement:\"db.operation.name\"},aliases:[_,y],changelog:[{version:\"0.4.0\",prs:[199]},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[Zr]:{brief:\"The number of queries included in a batch operation. Operations are only considered batches when they contain two or more operations, and so db.operation.batch.size SHOULD never be 1.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:3,changelog:[{version:\"0.11.0\",prs:[407],description:\"Added db.operation.batch.size attribute\"}]},[_]:{brief:\"The name of the operation being executed.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"SELECT\",aliases:[v,y],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[$r]:{brief:\"A query parameter used in db.query.text, with being the parameter name, and the attribute value being a string representation of the parameter value.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",hasDynamicSuffix:!0,example:\"db.query.parameter.foo='123'\",changelog:[{version:\"0.1.0\",prs:[103,127]}]},[en]:{brief:\"A shortened representation of operation(s) in the full query. This attribute must be low-cardinality and should only contain the operation table names.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"SELECT users;\",changelog:[{version:\"0.4.0\",prs:[208]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ei]:{brief:\"The database parameterized query being executed. Any parameter values (filters, insertion values, etc) should be replaced with parameter placeholders. If applicable, use `db.query.parameter.` to add the parameter value.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"SELECT * FROM users WHERE id = $1\",aliases:[Ti],changelog:[{version:\"0.4.0\",prs:[208]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[tn]:{brief:\"The redis connection name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"my-redis-instance\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[sn]:{brief:\"The key the Redis command is operating on.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"user:2047:city\",changelog:[{version:\"0.6.0\",prs:[326],description:\"Added db.redis.key attribute\"}]},[rn]:{brief:\"The array of command parameters given to a redis command.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"test\",\"*\"],changelog:[{version:\"0.0.0\"}]},[nn]:{brief:\"The array of query bindings.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:[\"1\",\"foo\"],deprecation:{replacement:\"db.query.parameter.\",reason:\"Instead of adding every binding in the db.sql.bindings attribute, add them as individual entires with db.query.parameter..\"},changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[Ti]:{brief:\"The database statement being executed.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"SELECT * FROM users\",deprecation:{replacement:\"db.query.text\"},aliases:[Ei],changelog:[{version:\"0.4.0\",prs:[199]},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[an]:{brief:\"The name of a stored procedure being called.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"GetUserById\",changelog:[{version:\"0.11.0\",prs:[398]}]},[Ii]:{brief:\"An identifier for the database management system (DBMS) product being used. See [OpenTelemetry docs](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/database/database-spans.md#notes-and-well-known-identifiers-for-dbsystem) for a list of well-known identifiers.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"postgresql\",deprecation:{replacement:\"db.system.name\"},aliases:[Oi],changelog:[{version:\"0.4.0\",prs:[199,224]},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[Oi]:{brief:\"An identifier for the database management system (DBMS) product being used. See [OpenTelemetry docs](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/database/database-spans.md#notes-and-well-known-identifiers-for-dbsystem) for a list of well-known identifiers.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"postgresql\",aliases:[Ii],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[on]:{brief:\"The database user.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"fancy_user\",changelog:[{version:\"0.0.0\"}]},[Pi]:{brief:\"The estimated total memory capacity of the device, only a rough estimation in gigabytes.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"8 GB\",deprecation:{replacement:\"device.memory.estimated_capacity\",reason:\"Old namespace-less attribute, to be replaced with device.memory.estimated_capacity for span-first future\"},aliases:[Ai],changelog:[{version:\"0.5.0\",prs:[281],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[ln]:{brief:\"The CPU architectures of the device.\",type:\"string[]\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:[\"arm64-v8a\",\"armeabi-v7a\",\"armeabi\"],changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.archs attribute\"}]},[pn]:{brief:\"The battery level of the device as a percentage (0-100).\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:100,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.battery_level attribute\"}]},[cn]:{brief:\"The battery temperature of the device in Celsius.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:25,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.battery_temperature attribute\"}]},[bn]:{brief:\"A formatted UTC timestamp when the system was booted.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"2018-02-08T12:52:12Z\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.boot_time attribute\"}]},[gn]:{brief:\"The brand of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Apple\",changelog:[{version:\"0.1.0\",prs:[116,127]}]},[dn]:{brief:\"Whether the device was charging or not.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!1,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.charging attribute\"}]},[un]:{brief:\"The chipset of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Qualcomm SM8550\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.chipset attribute\"}]},[mn]:{brief:\"The classification of the device. For example, `low`, `medium`, or `high`. Typically inferred by Relay - SDKs generally do not need to set this directly.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"medium\",changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.class attribute\"}]},[E]:{brief:\"The internet connection type currently being used by the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"wifi\",deprecation:{replacement:\"network.connection.type\",reason:\"This attribute is being deprecated in favor of network.connection.type\"},aliases:[G,f],changelog:[{version:\"0.5.0\",prs:[303],description:\"Added and deprecated device.connection_type in favor of network.connection.type\"}]},[hn]:{brief:\"A description of the CPU of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.cpu_description attribute\"}]},[yn]:{brief:\"External storage free size in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:67108864e3,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.external_free_storage attribute\"}]},[fn]:{brief:\"External storage total size in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:134217728e3,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.external_storage_size attribute\"}]},[vn]:{brief:\"The family of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"iPhone\",changelog:[{version:\"0.1.0\",prs:[116,127]}]},[_n]:{brief:\"Free system memory in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2147483648,changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.free_memory attribute\"}]},[En]:{brief:\"Free device storage in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:107374182400,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.free_storage attribute\"}]},[Tn]:{brief:\"Unique device identifier.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.id attribute\"}]},[In]:{brief:\"The locale of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"en-US\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.locale attribute\"}]},[On]:{brief:\"Whether the device was low on memory.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!1,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.low_memory attribute\"}]},[Pn]:{brief:\"Whether the device is in Low Power Mode.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.6.0\",prs:[314],description:\"Added device.low_power_mode attribute\"}]},[An]:{brief:\"The manufacturer of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Google\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.manufacturer attribute\"}]},[Ai]:{brief:\"The estimated total memory capacity of the device, only a rough estimation in gigabytes. Browsers report estimations in buckets of powers of 2, mostly capped at 8 GB\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:8,aliases:[Pi],changelog:[{version:\"0.5.0\",prs:[281],description:\"Added attribute device.memory.estimated_capacity to be used instead of deviceMemory\"}]},[Rn]:{brief:\"Total system memory available in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:17179869184,changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.memory_size attribute\"}]},[Sn]:{brief:\"The model of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"iPhone 15 Pro Max\",changelog:[{version:\"0.1.0\",prs:[116,127]}]},[xn]:{brief:\"An internal hardware revision to identify the device exactly.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"N861AP\",changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.model_id attribute\"}]},[Nn]:{brief:\"The name of the device. On mobile, this is the user-assigned device name. On servers and desktops, this is typically the hostname.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"localhost\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.name attribute\"}]},[Cn]:{brief:\"Whether the device was online or not.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.online attribute\"}]},[wn]:{brief:'The orientation of the device, either \"portrait\" or \"landscape\".',type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"portrait\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.orientation attribute\"}]},[Ri]:{brief:'Number of \"logical processors\".',type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:8,aliases:[gt],changelog:[{version:\"0.5.0\",prs:[300],description:\"Added and deprecated attribute device.processor_count in favor of device.cpu.logical_core_count\"}]},[Ln]:{brief:\"Processor frequency in MHz.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2400,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.processor_frequency attribute\"}]},[Dn]:{brief:\"The screen density of the device.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2.625,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_density attribute\"}]},[Mn]:{brief:\"The screen density in dots-per-inch (DPI) of the device.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:420,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_dpi attribute\"}]},[Un]:{brief:\"The height of the device screen in pixels.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2400,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_height_pixels attribute\"}]},[kn]:{brief:\"The width of the device screen in pixels.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1080,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_width_pixels attribute\"}]},[Gn]:{brief:\"Whether the device is a simulator or an actual device.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!1,changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.simulator attribute\"}]},[qn]:{brief:\"Total device storage in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:274877906944,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.storage_size attribute\"}]},[Vn]:{brief:\"The thermal state of the device. Based on Apple's `ProcessInfo.ThermalState` enum: `nominal`, `fair`, `serious`, or `critical`.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"nominal\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.thermal_state attribute\"}]},[Yn]:{brief:\"The timezone of the device.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Europe/Vienna\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.timezone attribute\"}]},[Fn]:{brief:\"Memory usable for the app in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2147483648,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.usable_memory attribute\"}]},[Si]:{brief:\"Specifies the estimated effective type of the current connection (e.g. slow-2g, 2g, 3g, 4g).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"4g\",deprecation:{replacement:\"network.connection.effective_type\",reason:\"Old namespace-less attribute, to be replaced with network.connection.effective_type for span-first future\"},aliases:[Ct],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[xi]:{brief:\"The sentry environment.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.environment\"},aliases:[Jt],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[Hn]:{brief:\"Describes a class of error the operation ended with.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"timeout\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Wn]:{brief:\"The unique identifier for this event (log record)\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234567890,changelog:[{version:\"0.1.0\",prs:[101]}]},[Bn]:{brief:\"The name that uniquely identifies this event (log record)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Process Payload\",changelog:[{version:\"0.1.0\",prs:[101,127]}]},[Kn]:{brief:\"SHOULD be set to true if the exception event is recorded at a point where it is known that the exception is escaping the scope of the span.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[zn]:{brief:\"The error message.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"ENOENT: no such file or directory\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[jn]:{brief:\"A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:`Exception in thread \"main\" java.lang.RuntimeException: Test exception\n at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n at com.example.GenerateTrace.main(GenerateTrace.java:5)`,changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Qn]:{brief:\"The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"OSError\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Xn]:{brief:\"A boolean that is true if the serverless function is executed for the first time (aka cold-start).\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[Jn]:{brief:\"A string containing the schedule period as Cron Expression.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"0/5 * * * ? *\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Zn]:{brief:\"The duration a function took to run, in milliseconds.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:120,changelog:[{version:\"0.11.0\",prs:[403]}]},[$n]:{brief:\"The code that's run when the cloud provider invokes your function.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"my_main_function\",changelog:[{version:\"0.11.0\",prs:[403,415]}]},[ea]:{brief:\"The Service Account (GCP), IAM Execution Role (AWS), or Managed Identity (Azure) used by the serverless function when interacting with other cloud services\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"name@project.iam.gserviceaccount.com (GCP), arn:aws:iam::123456789012:role/role-name (AWS), 00000000-0000-0000-0000-000000000000 (Azure)\",changelog:[{version:\"0.11.0\",prs:[403]}]},[Ni]:{brief:\"The invocation ID of the current function invocation.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"af9d5aa4-a685-4c5f-a22b-444f80b3cc28\",aliases:[Ye],changelog:[{version:\"0.11.1\",prs:[414,424]}]},[Ci]:{brief:\"The name of the serverless function\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"my_function\",aliases:[Fe],changelog:[{version:\"0.11.0\",prs:[403,415]}]},[ia]:{brief:\"A string containing the function invocation time in the ISO 8601 format expressed in UTC.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"2020-01-23T13:47:06Z\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[ta]:{brief:\"Type of the trigger which caused this function invocation.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"timer\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[wi]:{brief:\"The version of the function that was invoked\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"$LATEST\",aliases:[He],changelog:[{version:\"0.11.1\",prs:[414,424]}]},[Li]:{brief:\"The time it takes for the browser to render the first piece of meaningful content on the screen\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:547.6951,deprecation:{replacement:\"browser.web_vital.fcp.value\",reason:\"This attribute is being deprecated in favor of browser.web_vital.fcp.value\"},aliases:[Ze],changelog:[{version:\"0.5.0\",prs:[235]}]},[sa]:{brief:\"An instance of a feature flag evaluation. The value of this attribute is the boolean representing the evaluation result. The suffix is the name of the feature flag.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"flag.evaluation.is_new_ui=true\",changelog:[{version:\"0.1.0\",prs:[103]}]},[Di]:{brief:\"The time it takes for the browser to render the first pixel on the screen\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:477.1926,deprecation:{replacement:\"browser.web_vital.fp.value\",reason:\"This attribute is being deprecated in favor of browser.web_vital.fp.value\"},aliases:[$e],changelog:[{version:\"0.5.0\",prs:[235]}]},[Mi]:{brief:\"The sum of all delayed frame durations in seconds during the lifetime of the span. For more information see [frames delay](https://develop.sentry.dev/sdk/performance/frames-delay/).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:5,deprecation:{replacement:\"app.vitals.frames.delay.value\",reason:\"Replaced by app.vitals.frames.delay.value to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[we],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.delay.value\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Ui]:{brief:\"The number of frozen frames rendered during the lifetime of the span.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:3,deprecation:{replacement:\"app.vitals.frames.frozen.count\",reason:\"Replaced by app.vitals.frames.frozen.count to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[Le],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.frozen.count\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[ra]:{brief:\"The rate of frozen frames, or `app_vitals.frames.frozen.count` divided by `app_vitals.frames.total.count`. This is computed by Relay.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[362],description:\"Added frames_frozen_rate attribute\"}]},[ki]:{brief:\"The number of slow frames rendered during the lifetime of the span.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,deprecation:{replacement:\"app.vitals.frames.slow.count\",reason:\"Replaced by app.vitals.frames.slow.count to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[De],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.slow.count\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[na]:{brief:\"The rate of slow frames, or `app_vitals.frames.slow.count` divided by `app_vitals.frames.total.count`. This is computed by Relay.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[362],description:\"Added frames_slow_rate attribute\"}]},[Gi]:{brief:\"The number of total frames rendered during the lifetime of the span.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:60,deprecation:{replacement:\"app.vitals.frames.total.count\",reason:\"Replaced by app.vitals.frames.total.count to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[Me],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.total.count\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[aa]:{brief:\"The error message of a file system error.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"ENOENT: no such file or directory\",deprecation:{replacement:\"error.type\",reason:\"This attribute is not part of the OpenTelemetry specification and error.type fits much better.\"},changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[oa]:{brief:\"The event ID from the legacy GCP Cloud Function context (1st gen)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.event_id attribute\"}]},[la]:{brief:\"The type of the GCP Cloud Function event\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"google.pubsub.topic.publish\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.event_type attribute\"}]},[pa]:{brief:\"The unique event ID from the GCP CloudEvents context (2nd gen Cloud Functions)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.id attribute\"}]},[ca]:{brief:\"The resource that triggered the GCP Cloud Function event\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"projects/my-project/topics/my-topic\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.resource attribute\"}]},[ba]:{brief:\"The source of the GCP Cloud Function event\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"//pubsub.googleapis.com/projects/my-project/topics/my-topic\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.source attribute\"}]},[ga]:{brief:\"The CloudEvents specification version of the GCP Cloud Function event\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1.0\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.specversion attribute\"}]},[da]:{brief:\"The timestamp of the GCP Cloud Function event\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"2024-01-01T00:00:00.000Z\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.time attribute\"}]},[ua]:{brief:\"The legacy timestamp of the GCP Cloud Function event\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"2024-01-01T00:00:00.000Z\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.timestamp attribute\"}]},[ma]:{brief:\"The type of the GCP Cloud Function event context\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"cloud_functions.context\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.type attribute\"}]},[ha]:{brief:\"The ID of the project in GCP that this resource is associated with\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"my-project-123\",changelog:[{version:\"0.11.0\",prs:[403]}]},[ya]:{brief:\"The name of the agent being used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"ResearchAssistant\",changelog:[{version:\"0.1.0\",prs:[62,127]}]},[fa]:{brief:\"The fraction of the model context window utilized by this generation.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.75,changelog:[{version:\"0.5.0\",prs:[315],description:\"Added gen_ai.context.utilization attribute\"}]},[va]:{brief:\"The maximum context window size supported by the model for this generation.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:128e3,changelog:[{version:\"0.5.0\",prs:[315],description:\"Added gen_ai.context.window_size attribute\"}]},[_a]:{brief:\"The unique identifier for a conversation (session, thread), used to store and correlate messages within this conversation.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"conv_5j66UpCpwteGg4YSxUnt7lPY\",changelog:[{version:\"0.4.0\",prs:[250]}]},[Ea]:{brief:\"The cost of tokens used to process the AI input (prompt) in USD (without cached input tokens).\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:123.45,changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.input_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.input_tokens.\",\"This is the cost of non-cached input tokens only. The cost of cached tokens is excluded from this value.\"]},[Ta]:{brief:\"The cost of tokens used for creating the AI output in USD (without reasoning tokens).\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:123.45,changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.output_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.output_tokens.\",\"This is the cost of non-reasoning output tokens only. The cost of reasoning tokens is excluded from this value.\"]},[qi]:{brief:\"The total cost for the tokens used.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:12.34,aliases:[ye],changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[126]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.total_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.total_tokens.\"]},[Ia]:{brief:\"The input to the embeddings model.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"What's the weather in Paris?\",changelog:[{version:\"0.3.1\",prs:[195]}]},[Oa]:{brief:\"Framework-specific tracing label for the execution of a function or other unit of execution in a generative AI system.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"my-awesome-function\",changelog:[{version:\"0.5.0\",prs:[308],description:\"Added gen_ai.function_id attribute\"}]},[Vi]:{brief:'The messages passed to the model. It has to be a stringified version of an array of objects. The `role` attribute of each object must be `\"user\"`, `\"assistant\"`, `\"tool\"`, or `\"system\"`. For messages of the role `\"tool\"`, the `content` can be a string or an arbitrary object with information about the tool call. For other messages the `content` can be either a string or a list of objects in the format `{type: \"text\", text:\"...\"}`.',type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:'[{\"role\": \"user\", \"parts\": [{\"type\": \"text\", \"content\": \"Weather in Paris?\"}]}, {\"role\": \"assistant\", \"parts\": [{\"type\": \"tool_call\", \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\", \"name\": \"get_weather\", \"arguments\": {\"location\": \"Paris\"}}]}, {\"role\": \"tool\", \"parts\": [{\"type\": \"tool_call_response\", \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\", \"result\": \"rainy, 57\\xB0F\"}]}]',aliases:[ue],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[221]}]},[Pa]:{brief:\"The name of the operation being performed. It has the following list of well-known values: 'chat', 'create_agent', 'embeddings', 'execute_tool', 'generate_content', 'invoke_agent', 'text_completion'. If one of them applies, then that value MUST be used. Otherwise a custom value MAY be used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"chat\",changelog:[{version:\"0.4.0\",prs:[225]},{version:\"0.1.0\",prs:[62,127]}]},[Aa]:{brief:\"The type of AI operation. Must be one of 'agent' (invoke_agent and create_agent spans), 'ai_client' (any LLM call), 'tool' (execute_tool spans), 'handoff' (handoff spans), 'other' (input and output processors, skill loading, guardrails etc.) . Added during ingestion based on span.op and gen_ai.operation.type. Used to filter and aggregate data in the UI\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"tool\",changelog:[{version:\"0.4.0\",prs:[257]},{version:\"0.1.0\",prs:[113,127]}]},[Ra]:{brief:\"The model's response messages. It has to be a stringified version of an array of message objects, which can include text responses and tool calls.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:'[{\"role\": \"assistant\", \"parts\": [{\"type\": \"text\", \"content\": \"The weather in Paris is currently rainy with a temperature of 57\\xB0F.\"}], \"finish_reason\": \"stop\"}]',changelog:[{version:\"0.4.0\",prs:[221]}]},[Yi]:{brief:\"Name of the AI pipeline or chain being executed.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Autofix Pipeline\",aliases:[le],changelog:[{version:\"0.1.0\",prs:[76,127]}]},[Sa]:{brief:\"The input messages sent to the model\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:'[{\"role\": \"user\", \"message\": \"hello\"}]',deprecation:{reason:\"Deprecated from OTEL, use gen_ai.input.messages with the new format instead.\"},changelog:[{version:\"0.1.0\",prs:[74,108,119]},{version:\"0.0.0\"}]},[Fi]:{brief:\"The name of the prompt that uniquely identifies it.\",type:\"string\",pii:{isPii:\"maybe\",reason:\"Prompt names may reveal user behavior patterns or sensitive operations\"},isInOtel:!0,visibility:\"public\",example:\"summarize_text\",aliases:[xt],changelog:[{version:\"0.12.0\",prs:[420],description:\"Added gen_ai.prompt.name attribute\"}]},[T]:{brief:\"The Generative AI provider as identified by the client or server instrumentation.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"openai\",aliases:[u,I],changelog:[{version:\"0.4.0\",prs:[253]}]},[xa]:{brief:\"The available tools for the model. It has to be a stringified version of an array of objects.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'[{\"name\": \"get_weather\", \"description\": \"Get the weather for a given location\"}, {\"name\": \"get_news\", \"description\": \"Get the news for a given topic\"}]',deprecation:{replacement:\"gen_ai.tool.definitions\"},changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,127]}]},[Hi]:{brief:\"Used to reduce repetitiveness of generated tokens. The higher the value, the stronger a penalty is applied to previously present tokens, proportional to how many times they have already appeared in the prompt or prior generation.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:.5,aliases:[re],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},[Na]:{brief:\"The maximum number of tokens to generate in the response.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:2048,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[62]}]},[Wi]:{brief:'The messages passed to the model. It has to be a stringified version of an array of objects. The `role` attribute of each object must be `\"user\"`, `\"assistant\"`, `\"tool\"`, or `\"system\"`. For messages of the role `\"tool\"`, the `content` can be a string or an arbitrary object with information about the tool call. For other messages the `content` can be either a string or a list of objects in the format `{type: \"text\", text:\"...\"}`.',type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'[{\"role\": \"system\", \"content\": \"Generate a random number.\"}, {\"role\": \"user\", \"content\": [{\"text\": \"Generate a random number between 0 and 10.\", \"type\": \"text\"}]}, {\"role\": \"tool\", \"content\": {\"toolCallId\": \"1\", \"toolName\": \"Weather\", \"output\": \"rainy\"}}]',deprecation:{replacement:\"gen_ai.input.messages\"},aliases:[ae],changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,74,108,119,122]}]},[Ca]:{brief:\"The model identifier being used for the request.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"gpt-4-turbo-preview\",changelog:[{version:\"0.1.0\",prs:[62,127]}]},[Bi]:{brief:\"Used to reduce repetitiveness of generated tokens. Similar to frequency_penalty, except that this penalty is applied equally to all tokens that have already appeared, regardless of their exact frequencies.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:.5,aliases:[ce],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},[Ki]:{brief:\"The seed, ideally models given the same seed and same other parameters will produce the exact same output.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"1234567890\",aliases:[be],changelog:[{version:\"0.1.0\",prs:[57,127]}]},[zi]:{brief:\"For an AI model call, the temperature parameter. Temperature essentially means how random the output will be.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:.1,aliases:[de],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},[ji]:{brief:\"Limits the model to only consider the K most likely next tokens, where K is an integer (e.g., top_k=20 means only the 20 highest probability tokens are considered).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:35,aliases:[me],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},[Qi]:{brief:\"Limits the model to only consider tokens whose cumulative probability mass adds up to p, where p is a float between 0 and 1 (e.g., top_p=0.7 means only tokens that sum up to 70% of the probability mass are considered).\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:.7,aliases:[he],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},[Xi]:{brief:\"The reason why the model stopped generating.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"COMPLETE\",aliases:[se],changelog:[{version:\"0.1.0\",prs:[57,127]}]},[Ji]:{brief:\"Unique identifier for the completion.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"gen_123abc\",aliases:[ne],changelog:[{version:\"0.1.0\",prs:[57,127]}]},[Zi]:{brief:\"The vendor-specific ID of the model used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"gpt-4\",aliases:[oe],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[$i]:{brief:\"Whether or not the AI model call's response was streamed back asynchronously\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,aliases:[ge],changelog:[{version:\"0.1.0\",prs:[76]}]},[wa]:{brief:\"The model's response text messages. It has to be a stringified version of an array of response text messages.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'[\"The weather in Paris is rainy and overcast, with temperatures around 57\\xB0F\", \"The weather in London is sunny and warm, with temperatures around 65\\xB0F\"]',deprecation:{replacement:\"gen_ai.output.messages\"},changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,74]}]},[et]:{brief:\"Time in seconds when the first response content chunk arrived in streaming responses.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:.6853435,aliases:[it],changelog:[{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.response.time_to_first_chunk attribute\"}]},[it]:{brief:\"Time in seconds when the first response content chunk arrived in streaming responses.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.6853435,deprecation:{replacement:\"gen_ai.response.time_to_first_chunk\"},aliases:[et],changelog:[{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.response.time_to_first_chunk\"},{version:\"0.4.0\",prs:[227]}]},[La]:{brief:\"The total output tokens per seconds throughput\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:12345.67,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[66]}]},[Da]:{brief:\"The tool calls in the model's response. It has to be a stringified version of an array of objects.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'[{\"name\": \"get_weather\", \"arguments\": {\"location\": \"Paris\"}}]',deprecation:{replacement:\"gen_ai.output.messages\"},changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,74]}]},[I]:{brief:\"The provider of the model.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"openai\",deprecation:{replacement:\"gen_ai.provider.name\"},aliases:[u,T],changelog:[{version:\"0.4.0\",prs:[253]},{version:\"0.1.0\",prs:[57,127]}]},[tt]:{brief:\"The system instructions passed to the model.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"You are a helpful assistant\",aliases:[pe],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[221]}]},[Ma]:{brief:\"The system instructions passed to the model.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"You are a helpful assistant\",deprecation:{replacement:\"gen_ai.system_instructions\"},changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[62]}]},[st]:{brief:\"The arguments of the tool call. It has to be a stringified version of the arguments to the tool.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:'{\"location\": \"Paris\"}',aliases:[rt],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.4.0\",prs:[221]}]},[e]:{brief:\"The result of the tool call. It has to be a stringified version of the result of the tool.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"rainy, 57\\xB0F\",aliases:[t,i,l],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.4.0\",prs:[221]}]},[Ua]:{brief:\"The list of source system tool definitions available to the GenAI agent or model.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:'[{\"type\": \"function\", \"name\": \"get_current_weather\", \"description\": \"Get the current weather in a given location\", \"parameters\": {\"type\": \"object\", \"properties\": {\"location\": {\"type\": \"string\", \"description\": \"The city and state, e.g. San Francisco, CA\"}, \"unit\": {\"type\": \"string\", \"enum\": [\"celsius\", \"fahrenheit\"]}}, \"required\": [\"location\", \"unit\"]}}]',changelog:[{version:\"0.4.0\",prs:[221]}]},[ka]:{brief:\"The description of the tool being used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Searches the web for current information about a topic\",changelog:[{version:\"0.1.0\",prs:[62,127]}]},[rt]:{brief:\"The input of the tool being used. It has to be a stringified version of the input to the tool.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:'{\"location\": \"Paris\"}',deprecation:{replacement:\"gen_ai.tool.call.arguments\"},aliases:[st],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.1.0\",prs:[63,74]}]},[i]:{brief:\"The response from a tool or function call passed to the model.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"rainy, 57\\xB0F\",deprecation:{replacement:\"gen_ai.tool.call.result\"},aliases:[e,t,l],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.1.0\",prs:[62]}]},[O]:{brief:\"Name of the tool utilized by the agent.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Flights\",aliases:[d,U],changelog:[{version:\"0.1.0\",prs:[57,127]}]},[t]:{brief:\"The output of the tool being used. It has to be a stringified version of the output of the tool.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"rainy, 57\\xB0F\",deprecation:{replacement:\"gen_ai.tool.call.result\"},aliases:[e,i,l],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.1.0\",prs:[63,74]}]},[Ga]:{brief:\"The type of tool being used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"function\",deprecation:{reason:\"The gen_ai.tool.type attribute is deprecated and should no longer be set.\"},changelog:[{version:\"0.1.0\",prs:[62,127]}]},[nt]:{brief:\"The number of tokens written to the cache when processing the AI input (prompt).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:100,aliases:[lt],changelog:[{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.usage.cache_creation.input_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},[at]:{brief:\"The number of cached tokens used to process the AI input (prompt).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:50,aliases:[ot],changelog:[{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.usage.cache_read.input_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.input_tokens, not an independent count. Do not sum this with gen_ai.usage.input_tokens \\u2014 it is already included.\"]},[P]:{brief:\"The number of tokens used in the GenAI response (completion).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:10,deprecation:{replacement:\"gen_ai.usage.output_tokens\"},aliases:[g,R],changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},[A]:{brief:\"The number of tokens used to process the AI input (prompt) including cached input tokens.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:10,aliases:[m,S],changelog:[{version:\"0.11.0\",prs:[418],description:\"Update additional_context to reference gen_ai.usage.cache_read.input_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.5.0\",prs:[261]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This count includes cached input tokens. gen_ai.usage.cache_read.input_tokens is a subset of this value, not an independent count \\u2014 do not sum them together.\"]},[ot]:{brief:\"The number of cached tokens used to process the AI input (prompt).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:50,deprecation:{replacement:\"gen_ai.usage.cache_read.input_tokens\"},aliases:[at],changelog:[{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.usage.cache_read.input_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[62,112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.input_tokens, not an independent count. Do not sum this with gen_ai.usage.input_tokens \\u2014 it is already included.\"]},[lt]:{brief:\"The number of tokens written to the cache when processing the AI input (prompt).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:100,deprecation:{replacement:\"gen_ai.usage.cache_creation.input_tokens\"},aliases:[nt],changelog:[{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.usage.cache_creation.input_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[217,228]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},[R]:{brief:\"The number of tokens used for creating the AI output (including reasoning tokens).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:10,aliases:[g,P],changelog:[{version:\"0.11.0\",prs:[418],description:\"Update additional_context to reference gen_ai.usage.reasoning.output_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.5.0\",prs:[261]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This count includes reasoning tokens. gen_ai.usage.reasoning.output_tokens is a subset of this value, not an independent count \\u2014 do not sum them together.\"]},[pt]:{brief:\"The number of tokens used for reasoning to create the AI output.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:75,deprecation:{replacement:\"gen_ai.usage.reasoning.output_tokens\"},aliases:[ct],changelog:[{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.usage.reasoning.output_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[62,112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.output_tokens, not an independent count. Do not sum this with gen_ai.usage.output_tokens \\u2014 it is already included.\"]},[S]:{brief:\"The number of tokens used in the GenAI input (prompt).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:20,deprecation:{replacement:\"gen_ai.usage.input_tokens\"},aliases:[m,A],changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},[ct]:{brief:\"The number of tokens used for reasoning to create the AI output.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:75,aliases:[pt],changelog:[{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.usage.reasoning.output_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.output_tokens, not an independent count. Do not sum this with gen_ai.usage.output_tokens \\u2014 it is already included.\"]},[bt]:{brief:\"The total number of tokens used to process the prompt. (input tokens plus output todkens)\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:20,aliases:[fe],changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is the sum of gen_ai.usage.input_tokens and gen_ai.usage.output_tokens. Do not sum this with either of them \\u2014 they are already included.\"]},[qa]:{brief:\"The GraphQL document being executed.\",type:\"string\",pii:{isPii:\"true\",reason:\"The document may contain sensitive information in arguments or variables. Instrumentation should redact sensitive information when possible.\"},isInOtel:!0,visibility:\"public\",example:\"query findBookById { bookById(id: ?) { name } }\",changelog:[{version:\"0.7.0\",description:\"Adds the `graphql.document` attribute to track the GraphQL document being executed.\"}]},[Va]:{brief:\"The name of the operation being executed.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"findBookById\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ya]:{brief:\"The type of the operation being executed.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"query\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[gt]:{brief:\"The number of logical CPU cores available.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"14\",deprecation:{replacement:\"device.processor_count\",reason:\"Old namespace-less attribute, to be replaced with device.processor_count for span-first future\"},aliases:[Ri],changelog:[{version:\"0.5.0\",prs:[281,300],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[dt]:{brief:\"Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"client.address\"},aliases:[h],changelog:[{version:\"0.1.0\",prs:[61,106,127]},{version:\"0.0.0\"}]},[Fa]:{brief:\"The decoded body size of the response (in bytes).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:456,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[x]:{brief:\"The actual version of the protocol used for network communication.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"1.1\",deprecation:{replacement:\"network.protocol.version\"},aliases:[F,z],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[Ha]:{brief:\"The fragments present in the URI. Note that this contains the leading # character, while the `url.fragment` attribute does not.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"#details\",changelog:[{version:\"0.0.0\"}]},[s]:{brief:\"The domain name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\",reason:\"Deprecated, use one of `server.address` or `client.address`, depending on the usage\"},aliases:[b,h,o,c],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[r]:{brief:\"The HTTP method used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"GET\",deprecation:{replacement:\"http.request.method\"},aliases:[n,a,p],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[Wa]:{brief:\"The query string present in the URL. Note that this contains the leading ? character, while the `url.query` attribute does not.\",type:\"string\",pii:{isPii:\"true\",reason:\"Query string values can contain sensitive information. Clients should attempt to scrub parameters that might contain sensitive information.\"},isInOtel:!1,visibility:\"public\",example:\"?foo=bar&bar=baz\",changelog:[{version:\"0.0.0\"}]},[Ba]:{brief:\"HTTP request body data. Can be given as string or structural data of any format.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:'[{\"role\": \"user\", \"message\": \"hello\"}]',changelog:[{version:\"0.6.0\",prs:[336],description:\"Added http.request.body.data attribute\"}]},[Ka]:{brief:\"The UNIX timestamp representing the time immediately after the browser finishes establishing the connection to the server to retrieve the resource. The timestamp value includes the time interval to establish the transport connection, as well as other time intervals such as TLS handshake and SOCKS authentication.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:173282955515e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[za]:{brief:\"The UNIX timestamp representing the time immediately before the user agent starts establishing the connection to the server to retrieve the resource.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1732829555111e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[ja]:{brief:\"The UNIX timestamp representing the time immediately after the browser finishes the domain-name lookup for the resource.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1732829555201e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[Qa]:{brief:\"The UNIX timestamp representing the time immediately before the browser starts the domain name lookup for the resource.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1732829555322e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[Xa]:{brief:\"The UNIX timestamp representing the time immediately before the browser starts to fetch the resource.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1732829555389e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[Ja]:{brief:\"HTTP request headers, being the normalized HTTP Header name (lowercase), the value being the header values.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",hasDynamicSuffix:!0,example:\"http.request.header.custom-header=['foo', 'bar']\",changelog:[{version:\"0.4.0\",prs:[201,204]},{version:\"0.1.0\",prs:[103]}]},[n]:{brief:\"The HTTP method used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"GET\",aliases:[p,r,a],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[a]:{brief:\"The HTTP method used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"GET\",deprecation:{replacement:\"http.request.method\"},aliases:[p,r,n],changelog:[{version:\"0.6.0\",prs:[343],description:\"Added http.request_method attribute\"}]},[Za]:{brief:\"The UNIX timestamp representing the timestamp immediately after receiving the last byte of the response of the last redirect\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1732829558502e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[130,134]}]},[$a]:{brief:\"The UNIX timestamp representing the start time of the fetch which that initiates the redirect.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1732829555495e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[eo]:{brief:\"The UNIX timestamp representing the time immediately before the browser starts requesting the resource from the server, cache, or local resource. If the transport connection fails and the browser retires the request, the value returned will be the start of the retry request.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:173282955551e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[io]:{brief:\"The ordinal number of request resending attempt (for any reason, including redirects).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[to]:{brief:\"The UNIX timestamp representing the time immediately after the browser receives the last byte of the resource or immediately before the transport connection is closed, whichever comes first.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:173282955589e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[so]:{brief:\"The UNIX timestamp representing the time immediately before the browser starts requesting the resource from the server, cache, or local resource. If the transport connection fails and the browser retires the request, the value returned will be the start of the retry request.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:17328295557e-1,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[ro]:{brief:\"The UNIX timestamp representing the time immediately before the browser starts the handshake process to secure the current connection. If a secure connection is not used, the property returns zero.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:173282955573e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},[no]:{brief:\"The time in seconds from the browser's timeorigin to when the first byte of the request's response was received. See https://web.dev/articles/ttfb#measure-resource-requests\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1.032,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[131]}]},[ao]:{brief:\"The UNIX timestamp representing the timestamp immediately before dispatching the FetchEvent if a Service Worker thread is already running, or immediately before starting the Service Worker thread if it is not already running.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:173282955368e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[130,134]}]},[N]:{brief:\"The encoded body size of the response (in bytes).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:123,aliases:[C,w],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[106]},{version:\"0.0.0\"}]},[C]:{brief:\"The encoded body size of the response (in bytes).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:123,deprecation:{replacement:\"http.response.body.size\"},aliases:[N,w],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61,106]},{version:\"0.0.0\"}]},[w]:{brief:\"The size of the message body sent to the recipient (in bytes)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"http.response.header.custom-header=['foo', 'bar']\",aliases:[C,N],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[oo]:{brief:\"HTTP response headers, being the normalized HTTP Header name (lowercase), the value being the header values.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",hasDynamicSuffix:!0,example:\"http.response.header.custom-header=['foo', 'bar']\",changelog:[{version:\"0.4.0\",prs:[201,204]},{version:\"0.1.0\",prs:[103]}]},[ut]:{brief:\"The transfer size of the response (in bytes).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:456,aliases:[ht],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[mt]:{brief:\"The status code of the HTTP response.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:404,aliases:[ft],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[ht]:{brief:\"The transfer size of the response (in bytes).\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:456,deprecation:{replacement:\"http.response.size\"},aliases:[ut],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[L]:{brief:\"The matched route, that is, the path template in the format used by the respective server framework.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"/users/:id\",aliases:[ys],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[yt]:{brief:\"The URI scheme component identifying the used protocol.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"https\",deprecation:{replacement:\"url.scheme\"},aliases:[hs],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[o]:{brief:\"The server domain name\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\"},aliases:[b,c,s],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[lo]:{brief:\"The time in milliseconds the request spent in the server queue before processing began. Measured from the X-Request-Start header set by reverse proxies (e.g., Nginx, HAProxy, Heroku) to when the application started handling the request.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:50,changelog:[{version:\"0.5.0\",prs:[267]}]},[ft]:{brief:\"The status code of the HTTP response.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:404,deprecation:{replacement:\"http.response.status_code\"},aliases:[mt],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[po]:{brief:\"The pathname and query string of the URL.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"/test?foo=bar#buzz\",deprecation:{replacement:\"url.path\",reason:\"This attribute is being deprecated in favor of url.path and url.query\"},changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[D]:{brief:\"The URL of the resource that was fetched.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"https://example.com/test?foo=bar#buzz\",deprecation:{replacement:\"url.full\"},aliases:[te,ie],changelog:[{version:\"0.1.0\",prs:[61,108]},{version:\"0.0.0\"}]},[vt]:{brief:\"Value of the HTTP User-Agent header sent by the client.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1\",deprecation:{replacement:\"user_agent.original\"},aliases:[fs],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[co]:{brief:\"A unique identifier for the span.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"f47ac10b58cc4372a5670e02b2c3d479\",changelog:[{version:\"0.0.0\"}]},[_t]:{brief:\"The value of the recorded Interaction to Next Paint (INP) web vital\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:200,deprecation:{replacement:\"browser.web_vital.inp.value\",reason:\"The INP web vital is now recorded as a browser.web_vital.inp.value attribute.\"},aliases:[ei],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[bo]:{brief:\"The version of the JSON-RPC protocol used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"2.0\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Added jsonrpc.protocol.version attribute\"}]},[Et]:{brief:\"The JSON-RPC request identifier. Unique within the session.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"1\",aliases:[Nt],changelog:[{version:\"0.12.0\",prs:[420],description:\"Added jsonrpc.request.id attribute\"}]},[go]:{brief:\"Name of the garbage collector action.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"end of minor GC\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[uo]:{brief:\"Name of the garbage collector.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"G1 Young Generation\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[mo]:{brief:\"Name of the memory pool.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"G1 Old Gen\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[ho]:{brief:\"Name of the memory pool.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"G1 Old Gen\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[yo]:{brief:\"Whether the thread is daemon or not.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[fo]:{brief:\"State of the thread.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"blocked\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Tt]:{brief:\"The value of the recorded Largest Contentful Paint (LCP) web vital\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2500,deprecation:{replacement:\"browser.web_vital.lcp.value\",reason:\"The LCP web vital is now recorded as a browser.web_vital.lcp.value attribute.\"},aliases:[oi],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},[It]:{brief:\"The dom element responsible for the largest contentful paint.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"img\",deprecation:{replacement:\"browser.web_vital.lcp.element\",reason:\"The LCP element is now recorded as a browser.web_vital.lcp.element attribute.\"},aliases:[ii],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ot]:{brief:\"The id of the dom element responsible for the largest contentful paint.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"#hero\",deprecation:{replacement:\"browser.web_vital.lcp.id\",reason:\"The LCP id is now recorded as a browser.web_vital.lcp.id attribute.\"},aliases:[ti],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Pt]:{brief:\"The time it took for the LCP element to be loaded\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1402,deprecation:{replacement:\"browser.web_vital.lcp.load_time\",reason:\"The LCP load time is now recorded as a browser.web_vital.lcp.load_time attribute.\"},aliases:[si],changelog:[{version:\"0.5.0\",prs:[233]}]},[At]:{brief:\"The time it took for the LCP element to be rendered\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1685,deprecation:{replacement:\"browser.web_vital.lcp.render_time\",reason:\"The LCP render time is now recorded as a browser.web_vital.lcp.render_time attribute.\"},aliases:[ri],changelog:[{version:\"0.5.0\",prs:[233]}]},[Rt]:{brief:\"The size of the largest contentful paint element.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234,deprecation:{replacement:\"browser.web_vital.lcp.size\",reason:\"The LCP size is now recorded as a browser.web_vital.lcp.size attribute.\"},aliases:[ni],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[St]:{brief:\"The url of the dom element responsible for the largest contentful paint.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com\",deprecation:{replacement:\"browser.web_vital.lcp.url\",reason:\"The LCP url is now recorded as a browser.web_vital.lcp.url attribute.\"},aliases:[ai],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[vo]:{brief:\"The name of the logger that generated this event.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"myLogger\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[_o]:{brief:\"Reason for the cancellation of an MCP operation.\",type:\"string\",pii:{isPii:\"maybe\",reason:\"Cancellation reasons may contain user-specific or sensitive information\"},isInOtel:!1,visibility:\"public\",example:\"User cancelled the request\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Eo]:{brief:\"Request ID of the cancelled MCP operation.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"123\",changelog:[{version:\"0.3.0\",prs:[171]}]},[To]:{brief:\"Name of the MCP client application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"claude-desktop\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Io]:{brief:\"Display title of the MCP client application.\",type:\"string\",pii:{isPii:\"maybe\",reason:\"Client titles may reveal user-specific application configurations or custom setups\"},isInOtel:!1,visibility:\"public\",example:\"Claude Desktop\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Oo]:{brief:\"Version of the MCP client application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1.0.0\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Po]:{brief:\"Lifecycle phase indicator for MCP operations.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"initialization_complete\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Ao]:{brief:\"Data type of the logged message content.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"string\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Ro]:{brief:\"Log level for MCP logging operations.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"info\",changelog:[{version:\"0.3.0\",prs:[171]}]},[So]:{brief:\"Logger name for MCP logging operations.\",type:\"string\",pii:{isPii:\"maybe\",reason:\"Logger names may be user-defined and could contain sensitive information\"},isInOtel:!1,visibility:\"public\",example:\"mcp_server\",changelog:[{version:\"0.3.0\",prs:[171]}]},[xo]:{brief:\"Log message content from MCP logging operations.\",type:\"string\",pii:{isPii:\"true\",reason:\"Log messages can contain user data\"},isInOtel:!1,visibility:\"public\",example:\"Tool execution completed successfully\",changelog:[{version:\"0.3.0\",prs:[171]}]},[No]:{brief:\"The name of the MCP request or notification method being called.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"tools/call\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},[Co]:{brief:\"Current progress value of an MCP operation.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:50,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},[wo]:{brief:\"Progress message describing the current state of an MCP operation.\",type:\"string\",pii:{isPii:\"maybe\",reason:\"Progress messages may contain user-specific or sensitive information\"},isInOtel:!1,visibility:\"public\",example:\"Processing 50 of 100 items\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Lo]:{brief:\"Calculated progress percentage of an MCP operation. Computed from current/total * 100.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:50,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},[Do]:{brief:\"Token for tracking progress of an MCP operation.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"progress-token-123\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Mo]:{brief:\"Total progress target value of an MCP operation.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:100,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},[xt]:{brief:\"Name of the MCP prompt template being used.\",type:\"string\",pii:{isPii:\"maybe\",reason:\"Prompt names may reveal user behavior patterns or sensitive operations\"},isInOtel:!1,visibility:\"public\",example:\"summarize\",deprecation:{replacement:\"gen_ai.prompt.name\",reason:\"OTel uses gen_ai.prompt.name for MCP prompt names\"},aliases:[Fi],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of gen_ai.prompt.name\"},{version:\"0.3.0\",prs:[171]}]},[Uo]:{brief:\"Description of the prompt result.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"A summary of the requested information\",changelog:[{version:\"0.3.0\",prs:[171]}]},[ko]:{brief:\"Content of the message in the prompt result. Used for single message results only.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"Please provide a summary of the document\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Go]:{brief:\"Number of messages in the prompt result.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},[qo]:{brief:\"Role of the message in the prompt result. Used for single message results only.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"user\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Vo]:{brief:\"Protocol readiness indicator for MCP session. Non-zero value indicates the protocol is ready.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},[Yo]:{brief:\"MCP protocol version used in the session.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"2024-11-05\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},[Fo]:{brief:\"MCP request argument with dynamic key suffix. The is replaced with the actual argument name. The value is a JSON-stringified representation of the argument value.\",type:\"string\",pii:{isPii:\"true\",reason:\"Arguments contain user input\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"mcp.request.argument.query='weather in Paris'\",changelog:[{version:\"0.3.0\",prs:[176]}]},[Ho]:{brief:\"Name argument from prompts/get MCP request.\",type:\"string\",pii:{isPii:\"true\",reason:\"Prompt names can contain user input\"},isInOtel:!1,visibility:\"public\",example:\"summarize\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Wo]:{brief:\"URI argument from resources/read MCP request.\",type:\"string\",pii:{isPii:\"true\",reason:\"URIs can contain user file paths\"},isInOtel:!1,visibility:\"public\",example:\"file:///path/to/resource\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Nt]:{brief:\"JSON-RPC request identifier for the MCP request. Unique within the MCP session.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1\",deprecation:{replacement:\"jsonrpc.request.id\",reason:\"OTel models MCP as JSON-RPC, uses jsonrpc.request.id\"},aliases:[Et],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of jsonrpc.request.id\"},{version:\"0.3.0\",prs:[171]}]},[M]:{brief:\"Protocol of the resource URI being accessed, extracted from the URI.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"file\",deprecation:{replacement:\"network.protocol.name\",reason:\"OTel uses the generic network.protocol.name attribute\"},aliases:[Y,K],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of network.protocol.name\"},{version:\"0.3.0\",prs:[171]}]},[Bo]:{brief:\"The resource URI being accessed in an MCP operation.\",type:\"string\",pii:{isPii:\"true\",reason:\"URIs can contain sensitive file paths\"},isInOtel:!0,visibility:\"public\",example:\"file:///path/to/file.txt\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},[Ko]:{brief:\"Name of the MCP server application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"sentry-mcp-server\",changelog:[{version:\"0.3.0\",prs:[171]}]},[zo]:{brief:\"Display title of the MCP server application.\",type:\"string\",pii:{isPii:\"maybe\",reason:\"Server titles may reveal user-specific application configurations or custom setups\"},isInOtel:!1,visibility:\"public\",example:\"Sentry MCP Server\",changelog:[{version:\"0.3.0\",prs:[171]}]},[jo]:{brief:\"Version of the MCP server application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"0.1.0\",changelog:[{version:\"0.3.0\",prs:[171]}]},[Qo]:{brief:\"Identifier for the MCP session.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"550e8400-e29b-41d4-a716-446655440000\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},[U]:{brief:\"Name of the MCP tool being called.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"calculator\",deprecation:{replacement:\"gen_ai.tool.name\",reason:\"OTel uses gen_ai.tool.name for MCP tool names\"},aliases:[O,d],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of gen_ai.tool.name\"},{version:\"0.3.0\",prs:[171]}]},[l]:{brief:\"The content of the tool result.\",type:\"string\",pii:{isPii:\"true\",reason:\"Tool results can contain user data\"},isInOtel:!1,visibility:\"public\",example:'{\"output\": \"rainy\", \"toolCallId\": \"1\"}',deprecation:{replacement:\"gen_ai.tool.call.result\",reason:\"OTel uses gen_ai.tool.call.result for MCP tool results\"},aliases:[e,i,t],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of gen_ai.tool.call.result\"},{version:\"0.3.0\",prs:[171]},{version:\"0.2.0\",prs:[164]}]},[Xo]:{brief:\"Number of content items in the tool result.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},[Jo]:{brief:\"Whether a tool execution resulted in an error.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!1,deprecation:{replacement:\"error.type\",reason:\"OTel uses error.type set to 'tool_error' when isError is true. Cannot be automatically backfilled due to type mismatch (boolean vs string).\"},changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of error.type\"},{version:\"0.3.0\",prs:[171]}]},[k]:{brief:\"Transport method used for MCP communication.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"stdio\",deprecation:{replacement:\"network.transport\",reason:\"OTel uses the generic network.transport attribute\"},aliases:[H,X],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of network.transport\"},{version:\"0.3.0\",prs:[171]}]},[Zo]:{brief:\"Attributes from the Mapped Diagnostic Context (MDC) present at the moment the log record was created. The MDC is supported by all the most popular logging solutions in the Java ecosystem, and it's usually implemented as a thread-local map that stores context for e.g. a specific request.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"mdc.some_key='some_value'\",changelog:[{version:\"0.3.0\",prs:[176]}]},[$o]:{brief:\"The number of messages sent, received, or processed in the scope of the batching operation.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:10,changelog:[{version:\"0.6.0\",prs:[341],description:\"Added messaging.batch.message_count attribute\"}]},[el]:{brief:\"The message destination connection.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"BestTopic\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[il]:{brief:\"The message destination name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"BestTopic\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[tl]:{brief:\"The size of the message body in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:839,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[sl]:{brief:\"The size of the message body and metadata in bytes.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:1045,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[rl]:{brief:\"A value used by the messaging system as an identifier for the message, represented as a string.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"f47ac10b58cc4372a5670e02b2c3d479\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[nl]:{brief:\"The latency between when the message was published and received.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1732847252,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[al]:{brief:\"The amount of attempts to send the message.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[ol]:{brief:\"The name of the messaging operation being performed\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"send\",changelog:[{version:\"0.11.0\",prs:[392],description:\"Added messaging.operation.name attribute\"}]},[ll]:{brief:\"A string identifying the type of the messaging operation\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"create\",changelog:[{version:\"0.1.0\",prs:[51,127]}]},[pl]:{brief:\"The messaging system as identified by the client instrumentation.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"activemq\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[p]:{brief:\"The HTTP method used.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"GET\",deprecation:{replacement:\"http.request.method\"},aliases:[n,a,r],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[cl]:{brief:\"The name of the middleware.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"AuthenticationMiddleware\",changelog:[{version:\"0.6.0\",prs:[336],description:\"Added middleware.name attribute\"}]},[bl]:{brief:\"The type of navigation done by a client-side router.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"router.push\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[gl]:{brief:\"The elapsed number of milliseconds between the start of the resource fetch and when it was completed or aborted by the user agent.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:100,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[68]}]},[dl]:{brief:'If request failed, the phase of its network error. If request succeeded, \"application\".',type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"application\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},[ul]:{brief:\"request's referrer, as determined by the referrer policy associated with its client.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com/foo?bar=baz\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},[ml]:{brief:\"The sampling function used to determine if the request should be sampled.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:.5,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[68]}]},[hl]:{brief:'If request failed, the type of its network error. If request succeeded, \"ok\".',type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"dns.unreachable\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},[Ct]:{brief:\"Specifies the effective type of the current connection (e.g. slow-2g, 2g, 3g, 4g).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"4g\",aliases:[Si],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added attribute network.connection.effective_type to be used instead of effectiveConnectionType\"}]},[wt]:{brief:\"Specifies the estimated effective round-trip time of the current connection, in milliseconds.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:100,aliases:[fi],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added attribute network.connection.rtt to be used instead of connection.rtt\"}]},[G]:{brief:\"Specifies the type of the current connection (e.g. wifi, ethernet, cellular , etc).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"wifi\",aliases:[E,f],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added attribute network.connection.type to be used instead of connectionType\"}]},[q]:{brief:\"Local address of the network connection - IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"10.1.2.80\",aliases:[W,j],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Lt]:{brief:\"Local port number of the network connection.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:65400,aliases:[Mt],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[V]:{brief:\"Peer address of the network connection - IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"10.1.2.80\",aliases:[B,Q],changelog:[{version:\"0.1.0\",prs:[108,127]},{version:\"0.0.0\"}]},[yl]:{brief:\"Peer port number of the network connection.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:65400,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Y]:{brief:\"OSI application layer or non-OSI equivalent.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"http\",aliases:[K,M],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[F]:{brief:\"The actual version of the protocol used for network communication.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"1.1\",aliases:[x,z],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[H]:{brief:\"OSI transport layer or inter-process communication method.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"tcp\",aliases:[X,k],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[fl]:{brief:\"OSI network layer or non-OSI equivalent.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"ipv4\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[W]:{brief:\"Local address of the network connection - IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"192.168.0.1\",deprecation:{replacement:\"network.local.address\"},aliases:[q,j],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[c]:{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\"},aliases:[b,o,s],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[Dt]:{brief:\"Server port number.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:1337,deprecation:{replacement:\"server.port\"},aliases:[ps],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[B]:{brief:\"Peer address of the network connection - IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"192.168.0.1\",deprecation:{replacement:\"network.peer.address\"},aliases:[V,Q],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[vl]:{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\",reason:\"Deprecated, use server.address on client spans and client.address on server spans.\"},changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[_l]:{brief:\"Peer port number.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:1337,deprecation:{replacement:\"server.port\",reason:\"Deprecated, use server.port on client spans and client.port on server spans.\"},changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[K]:{brief:\"OSI application layer or non-OSI equivalent.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"http\",deprecation:{replacement:\"network.protocol.name\"},aliases:[Y,M],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[z]:{brief:\"The actual version of the protocol used for network communication.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"1.1\",deprecation:{replacement:\"network.protocol.version\"},aliases:[F,x],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[El]:{brief:\"OSI transport and network layer\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"inet\",deprecation:{replacement:\"network.transport\",reason:\"Deprecated, use network.transport and network.type.\"},changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[j]:{brief:\"Local address of the network connection mapping to Unix domain socket name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"/var/my.sock\",deprecation:{replacement:\"network.local.address\"},aliases:[q,W],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[Mt]:{brief:\"Local port number of the network connection.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:8080,deprecation:{replacement:\"network.local.port\"},aliases:[Lt],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[Q]:{brief:\"Peer address of the network connection - IP address\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"192.168.0.1\",deprecation:{replacement:\"network.peer.address\"},aliases:[V,B],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},[Tl]:{brief:\"Peer address of the network connection - Unix domain socket name\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"/var/my.sock\",deprecation:{reason:\"Deprecated from OTEL, no replacement at this time\"},changelog:[{version:\"0.1.0\",prs:[61,119,127]},{version:\"0.0.0\"}]},[Il]:{brief:\"Peer port number of the network connection.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:8080,deprecation:{replacement:\"network.peer.port\"},changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[X]:{brief:\"OSI transport layer or inter-process communication method.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"tcp\",deprecation:{replacement:\"network.transport\"},aliases:[H,k],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[Ut]:{brief:\"The build ID of the operating system.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",deprecation:{replacement:\"os.build_id\"},aliases:[kt],changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.build attribute, deprecated in favor of os.build_id\"}]},[kt]:{brief:\"The build ID of the operating system.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"1234567890\",aliases:[Ut],changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.build as alias\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ol]:{brief:\"Human readable (not intended to be parsed) OS version information, like e.g. reported by ver or lsb_release -a commands.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Ubuntu 18.04.1 LTS\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Pl]:{brief:\"An independent kernel version string. Typically the entire output of the `uname` syscall.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"20.2.0\",changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.kernel_version attribute\"}]},[Al]:{brief:\"Human readable operating system name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Ubuntu\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Rl]:{brief:\"An unprocessed description string obtained by the operating system. For some well-known runtimes, Sentry will attempt to parse `name` and `version` from this string, if they are not explicitly given.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Ubuntu 22.04.4 LTS (Jammy Jellyfish)\",changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.raw_description attribute\"}]},[Sl]:{brief:\"Whether the operating system has been jailbroken or rooted.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.rooted attribute\"}]},[xl]:{brief:\"Whether the OS runs in dark mode or light mode.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"dark\",changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.theme attribute\"}]},[Nl]:{brief:\"The operating system type.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"linux\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Cl]:{brief:\"The version of the operating system.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"18.04.2\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[wl]:{brief:\"The name of the instrumentation scope - (InstrumentationScope.Name in OTLP).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"io.opentelemetry.contrib.mongodb\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ll]:{brief:\"The version of the instrumentation scope - (InstrumentationScope.Version in OTLP).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"2.4.5\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Dl]:{brief:\"Name of the code, either \\u201COK\\u201D or \\u201CERROR\\u201D. MUST NOT be set if the status code is UNSET.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"OK\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ml]:{brief:\"Description of the Status if it has a value, otherwise not set.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"resource not found\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Gt]:{brief:\"Decoded parameters extracted from a URL path. Usually added by client-side routing frameworks like vue-router.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"params.id='123'\",aliases:[ms],changelog:[{version:\"0.1.0\",prs:[103]}]},[qt]:{brief:\"The time between initiating a navigation to a page and the browser activating the page\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1.983,deprecation:{replacement:\"browser.performance.navigation.activation_start\",reason:\"The activationStart is now recorded as the browser.performance.navigation.activation_start attribute.\"},aliases:[ze],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added performance.activationStart attribute\"}]},[Vt]:{brief:\"The browser's performance.timeOrigin timestamp representing the time when the pageload was initiated\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1776185678886e-3,deprecation:{replacement:\"browser.performance.time_origin\",reason:\"The timeOrigin is now recorded as the browser.performance.time_origin attribute.\"},aliases:[je],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added performance.timeOrigin attribute\"}]},[Ul]:{brief:\"Also used by mobile SDKs to indicate the previous route in the application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"HomeScreen\",changelog:[{version:\"0.1.0\",prs:[74]},{version:\"0.0.0\"}]},[kl]:{brief:\"All the command arguments (including the command/executable itself) as received by the process.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:[\"cmd/otecol\",\"--config=config.yaml\"],changelog:[{version:\"0.6.0\",prs:[327],description:\"Added process.command_args attribute\"}]},[Gl]:{brief:\"The name of the executable that started the process.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"getsentry\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[ql]:{brief:\"The process ID of the running process.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:12345,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Yt]:{brief:\"An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment. Equivalent to `raw_description` in the Sentry runtime context.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Eclipse OpenJ9 VM openj9-0.21.0\",aliases:[zt],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Vl]:{brief:\"The name of the runtime engine.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"v8\",changelog:[{version:\"0.0.0\"}]},[Yl]:{brief:\"The version of the runtime engine.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"12.9.202.13-rusty\",changelog:[{version:\"0.0.0\"}]},[Ft]:{brief:\"The name of the runtime. Equivalent to `name` in the Sentry runtime context.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"node\",aliases:[Kt],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Ht]:{brief:\"The version of the runtime of this process, as returned by the runtime without modification. Equivalent to `version` in the Sentry runtime context.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"18.04.2\",aliases:[jt],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Fl]:{brief:\"An item in a query string. Usually added by client-side routing frameworks like vue-router.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"query.id='123'\",deprecation:{replacement:\"url.query\",reason:\"Instead of sending items individually in query., they should be sent all together with url.query.\"},changelog:[{version:\"0.1.0\",prs:[103]}]},[Hl]:{brief:\"The version of the React framework\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"18.2.0\",changelog:[{version:\"0.7.0\",prs:[368],description:\"Added react.version attribute\"}]},[Wt]:{brief:\"The sentry release.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.release\"},aliases:[J],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[Wl]:{brief:\"Remix form data, being the form data key, the value being the form data value.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"http.response.header.text='test'\",changelog:[{version:\"0.1.0\",prs:[103]}]},[Bt]:{brief:\"The id of the sentry replay.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"123e4567e89b12d3a456426614174000\",deprecation:{replacement:\"sentry.replay_id\"},aliases:[Zt],changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[Bl]:{brief:\"The software deployment environment name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.environment\"},changelog:[{version:\"0.5.0\",prs:[266]}]},[Kl]:{brief:\"The software deployment environment name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.environment\"},changelog:[{version:\"0.3.1\",prs:[196]}]},[zl]:{brief:\"The render blocking status of the resource.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"non-blocking\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[jl]:{brief:\"The matched route, that is, the path template in the format used by the respective server framework. Also used by mobile SDKs to indicate the current route in the application.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"App\\\\Controller::indexAction\",deprecation:{replacement:\"http.route\"},aliases:[L],changelog:[{version:\"0.1.0\",prs:[61,74]},{version:\"0.0.0\"}]},[Ql]:{brief:\"The numeric status code of the gRPC request.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Xl]:{brief:\"The fully-qualified logical name of the method from the RPC interface perspective.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"com.example.ExampleService/exampleMethod\",changelog:[{version:\"0.7.0\",prs:[351],description:\"Added rpc.method attribute\"}]},[Jl]:{brief:\"Status code of the RPC returned by the RPC server or generated by the client.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"DEADLINE_EXCEEDED\",changelog:[{version:\"0.7.0\",prs:[352],description:\"Added rpc.response.status_code attribute\"}]},[Zl]:{brief:\"The full (logical) name of the service being called, including its package name, if applicable.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"myService.BestService\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[$l]:{brief:\"The application build string, when it is separate from the version.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"stable\",deprecation:{reason:\"The runtime.* namespace is deprecated in favor of process.runtime.*. No direct OTel equivalent exists for this attribute.\"},changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.build attribute\"}]},[Kt]:{brief:\"The name of the runtime. For example node, CPython, or rustc.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"node\",deprecation:{replacement:\"process.runtime.name\",reason:\"Prefer OTel-aligned process.runtime.name\"},aliases:[Ft],changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.name attribute in favor of process.runtime.name\"}]},[zt]:{brief:\"Unprocessed description string as obtained from the runtime. Used to extract name and version for well-known runtimes.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Eclipse OpenJ9 VM openj9-0.21.0\",deprecation:{replacement:\"process.runtime.description\",reason:\"Prefer OTel-aligned process.runtime.description\"},aliases:[Yt],changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.raw_description attribute in favor of process.runtime.description\"}]},[jt]:{brief:\"The version of the runtime.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"18.04.2\",deprecation:{replacement:\"process.runtime.version\",reason:\"Prefer OTel-aligned process.runtime.version\"},aliases:[Ht],changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.version attribute in favor of process.runtime.version\"}]},[ep]:{brief:\"The weighted performance score for a web vital. This is defined as `score.weight.` * `score.ratio.`.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"score.cls=0.1723\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score. attribute\"}]},[ip]:{brief:\"The score for a web vital, normalized to a number between 0 and 1.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"score.ratio.inp=0.7748\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score.ratio. attribute\"}]},[tp]:{brief:\"The total performance score of a span. This is the sum of individual weighted web vital scores (see `score.`).\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score.total attribute\"}]},[sp]:{brief:\"The relative weight of a web vital in a span's performance score.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"score.weight.fcp=0.25\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score.weight. attribute\"}]},[rp]:{brief:\"Used as a generic attribute representing the action depending on the type of span. For instance, this is the database query operation for DB spans, and the request method for HTTP spans.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"SELECT\",changelog:[{version:\"0.4.0\",prs:[212]}]},[Qt]:{brief:\"The name of the browser.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Chrome\",deprecation:{replacement:\"browser.name\"},aliases:[Ke],changelog:[{version:\"0.1.0\",prs:[139]}]},[Xt]:{brief:\"The version of the browser.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"120.0.6099.130\",deprecation:{replacement:\"browser.version\"},aliases:[Qe],changelog:[{version:\"0.1.0\",prs:[139]}]},[np]:{brief:\"The reason why a span ended early.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"document.hidden\",changelog:[{version:\"0.0.0\"}]},[ap]:{brief:\"The high-level category of a span, derived from the span operation or span attributes. This categorizes spans by their general purpose (e.g., database, HTTP, UI). Known values include: 'ai', 'ai.pipeline', 'app', 'browser', 'cache', 'console', 'db', 'event', 'file', 'function.aws', 'function.azure', 'function.gcp', 'function.nextjs', 'function.remix', 'graphql', 'grpc', 'http', 'measure', 'middleware', 'navigation', 'pageload', 'queue', 'resource', 'rpc', 'serialize', 'subprocess', 'template', 'topic', 'ui', 'ui.angular', 'ui.ember', 'ui.react', 'ui.svelte', 'ui.vue', 'view', 'websocket'.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"db\",changelog:[{version:\"0.4.0\",prs:[218]}]},[op]:{brief:\"Rate at which a span was sampled in the SDK.\",type:\"double\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:.5,changelog:[{version:\"0.1.0\",prs:[102]}]},[lp]:{brief:\"The human-readable description of a span.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"index view query\",changelog:[{version:\"0.1.0\",prs:[135]}]},[pp]:{brief:\"The sentry dist.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"1.0\",changelog:[{version:\"0.0.0\"}]},[cp]:{brief:\"Used as a generic attribute representing the domain depending on the type of span. For instance, this is the collection/table name for database spans, and the server address for HTTP spans.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"example.com\",changelog:[{version:\"0.4.0\",prs:[212]}]},[bp]:{brief:\"The environment from the dynamic sampling context.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"internal\",example:\"prod\",changelog:[{version:\"0.3.0\",prs:[185]}]},[gp]:{brief:\"The ID of the project where the trace originated (i.e. the project of the SDK that started the trace). Propagated through the dynamic sampling context and set by Relay during ingestion.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"internal\",example:\"12345\",changelog:[{version:\"0.7.0\",prs:[358],description:\"Add sentry.dsc.project_id as an attribute\"}]},[dp]:{brief:\"The public key from the dynamic sampling context.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"internal\",example:\"c51734c603c4430eb57cb0a5728a479d\",changelog:[{version:\"0.3.0\",prs:[185]}]},[up]:{brief:\"The release identifier from the dynamic sampling context.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"internal\",example:\"frontend@e8211be71b214afab5b85de4b4c54be3714952bb\",changelog:[{version:\"0.3.0\",prs:[185]}]},[mp]:{brief:\"Whether the event was sampled according to the dynamic sampling context.\",type:\"boolean\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"internal\",example:!0,changelog:[{version:\"0.3.0\",prs:[185]}]},[hp]:{brief:\"The sample rate from the dynamic sampling context.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"internal\",example:\"1.0\",changelog:[{version:\"0.3.0\",prs:[185]}]},[yp]:{brief:\"The trace ID from the dynamic sampling context.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"internal\",example:\"047372980460430cbc78d9779df33a46\",changelog:[{version:\"0.3.0\",prs:[185]}]},[fp]:{brief:\"The transaction name from the dynamic sampling context.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"internal\",example:\"/issues/errors-outages/\",changelog:[{version:\"0.3.0\",prs:[185]}]},[Jt]:{brief:\"The sentry environment.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"production\",aliases:[xi],changelog:[{version:\"0.0.0\"}]},[vp]:{brief:\"The exclusive time duration of the span in milliseconds.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[160]},{version:\"0.0.0\"}]},[_p]:{brief:\"Indicates the type of graphql operation, emitted by the Javascript SDK.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"getUserById\",changelog:[{version:\"0.3.1\",prs:[190]}]},[Ep]:{brief:\"Stores the hash of `sentry.normalized_description`. This is primarily used for grouping spans in the product end.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.4.0\",prs:[212]}]},[Tp]:{brief:\"If an http request was a prefetch request.\",type:\"boolean\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[Ip]:{brief:\"The reason why an idle span ended early.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"idleTimeout\",changelog:[{version:\"0.0.0\"}]},[Op]:{brief:\"Indicates whether a span's parent is remote.\",type:\"boolean\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.3.1\",prs:[190]}]},[Pp]:{brief:\"Used to clarify the relationship between parents and children, or to distinguish between spans, e.g. a `server` and `client` span with the same name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"server\",changelog:[{version:\"0.3.1\",prs:[190]}]},[Ap]:{brief:\"Whether the span or event occurred on the main thread. Computed by Relay and should not be set by SDKs.\",type:\"boolean\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\"}]},[Rp]:{brief:\"A parameter used in the message template. can either be the number that represent the parameter's position in the template string (sentry.message.parameter.0, sentry.message.parameter.1, etc) or the parameter's name (sentry.message.parameter.item_id, sentry.message.parameter.user_id, etc)\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"sentry.message.parameter.0='123'\",changelog:[{version:\"0.1.0\",prs:[116]}]},[Sp]:{brief:\"The parameterized template string.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Hello, {name}!\",changelog:[{version:\"0.1.0\",prs:[116]}]},[xp]:{brief:\"Whether the application is using a mobile SDK. Computed by Relay and should not be set by SDKs.\",type:\"boolean\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\"}]},[Np]:{brief:\"A module that was loaded in the process. The key is the name of the module.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"sentry.module.brianium/paratest='v7.7.0'\",changelog:[{version:\"0.1.0\",prs:[103]}]},[Cp]:{brief:\"A parameterized route for a function in Next.js that contributes to Server-Side Rendering. Should be present on spans that track such functions when the file location of the function is known.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"/posts/[id]/layout\",changelog:[{version:\"0.1.0\",prs:[54,106]}]},[wp]:{brief:\"A descriptor for a for a function in Next.js that contributes to Server-Side Rendering. Should be present on spans that track such functions.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"generateMetadata\",changelog:[{version:\"0.1.0\",prs:[54,106]}]},[Lp]:{brief:\"The normalized version of `db.query.text`.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"SELECT .. FROM sentry_project WHERE (project_id = %s)\",changelog:[{version:\"0.3.1\",prs:[194]}]},[Dp]:{brief:\"The hash of `sentry.normalized_db_query`.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.4.0\",prs:[200]}]},[Mp]:{brief:\"Used as a generic attribute representing the normalized `sentry.description`. This refers to the legacy use case of `sentry.description` where it holds relevant data depending on the type of span (e.g. database query, resource url, http request description, etc).\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"SELECT .. FROM sentry_project WHERE (project_id = %s)\",changelog:[{version:\"0.4.0\",prs:[212]}]},[Up]:{brief:\"The timestamp at which an envelope was received by Relay, in nanoseconds.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"1544712660300000000\",changelog:[{version:\"0.3.0\",prs:[174]},{version:\"0.2.0\",prs:[137]}]},[kp]:{brief:\"The operation of a span.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"http.client\",changelog:[{version:\"0.0.0\"}]},[Gp]:{brief:\"The origin of the instrumentation (e.g. span, log, etc.)\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"auto.http.otel.fastify\",changelog:[{version:\"0.1.0\",prs:[68]},{version:\"0.0.0\"}]},[qp]:{brief:\"The sdk platform that generated the event.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"php\",changelog:[{version:\"0.0.0\"}]},[Vp]:{brief:\"The id of the currently running profiler (continuous profiling)\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"18779b64dd35d1a538e7ce2dd2d3fad3\",changelog:[{version:\"0.4.0\",prs:[242]}]},[Yp]:{brief:\"The ID of the Sentry profile the span is associated with. This is only meaningful for transaction-based profiling.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"123e4567e89b12d3a456426614174000\",changelog:[{version:\"0.6.0\",prs:[344],description:\"Added sentry.profile_id attribute\"}]},[J]:{brief:\"The sentry release.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"7.0.0\",aliases:[cs,Wt],changelog:[{version:\"0.0.0\"}]},[Zt]:{brief:\"The id of the sentry replay.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"123e4567e89b12d3a456426614174000\",aliases:[Bt],changelog:[{version:\"0.0.0\"}]},[Fp]:{brief:\"A sentinel attribute on log events indicating whether the current Session Replay is being buffered (onErrorSampleRate).\",type:\"boolean\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.3.0\",prs:[185]}]},[Hp]:{brief:\"(Deprecated) The event that caused the SDK to report CLS or LCP (pagehide or navigation)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"pagehide\",deprecation:{reason:\"The report event is now recorded as a browser.web_vital.lcp.report_event or browser.web_vital.cls.report_event attribute. No backfill required.\"},changelog:[{version:\"0.5.0\",prs:[320],description:\"Added sentry.report_event attribute\"}]},[Wp]:{brief:\"A list of names identifying enabled integrations. The list shouldhave all enabled integrations, including default integrations. Defaultintegrations are included because different SDK releases may contain differentdefault integrations.\",type:\"string[]\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:[\"InboundFilters\",\"FunctionToString\",\"BrowserApiErrors\",\"Breadcrumbs\"],changelog:[{version:\"0.0.0\",prs:[42]}]},[Bp]:{brief:\"The sentry sdk name.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"@sentry/react\",changelog:[{version:\"0.0.0\"}]},[Kp]:{brief:\"The sentry sdk version.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"7.0.0\",changelog:[{version:\"0.0.0\"}]},[$t]:{brief:\"The segment ID of a span\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"051581bf3cb55c13\",aliases:[es],changelog:[{version:\"0.1.0\",prs:[107,124]}]},[es]:{brief:\"The segment ID of a span\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"051581bf3cb55c13\",deprecation:{replacement:\"sentry.segment.id\"},aliases:[$t],changelog:[{version:\"0.1.0\",prs:[124]}]},[Z]:{brief:\"The segment name of a span\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"GET /user\",aliases:[$,ee],changelog:[{version:\"0.6.0\",prs:[345],description:\"Added sentry.transaction and transaction aliases\"},{version:\"0.1.0\",prs:[104]}]},[zp]:{brief:\"Rate at which a span was sampled in Relay.\",type:\"double\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:.5,changelog:[{version:\"0.1.0\",prs:[102]}]},[jp]:{brief:\"The source of a span, also referred to as transaction source. Known values are: `'custom'`, `'url'`, `'route'`, `'component'`, `'view'`, `'task'`. '`source`' describes a parametrized route, while `'url'` describes the full URL, potentially containing identifiers.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"route\",deprecation:{replacement:\"sentry.span.source\",reason:\"This attribute is being deprecated in favor of sentry.span.source\"},changelog:[{version:\"0.5.0\"}]},[Qp]:{brief:\"The source of a span, also referred to as transaction source. Known values are: `'custom'`, `'url'`, `'route'`, `'component'`, `'view'`, `'task'`. '`source`' describes a parametrized route, while `'url'` describes the full URL, potentially containing identifiers.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"route\",changelog:[{version:\"0.4.0\",prs:[214]},{version:\"0.0.0\"}]},[Xp]:{brief:\"The HTTP status code used in Sentry Insights. Typically set by Sentry during ingestion, rather than by clients.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:200,changelog:[{version:\"0.4.0\",prs:[223,228]}]},[Jp]:{brief:\"The from OTLP extracted status message.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"foobar\",changelog:[{version:\"0.3.1\",prs:[190]}]},[Zp]:{brief:\"A sequencing counter for deterministic ordering of logs or metrics when timestamps share the same integer millisecond. Starts at 0 on SDK initialization, increments by 1 for each captured item, and resets to 0 when the integer millisecond of the current item differs from the previous one.\",type:\"integer\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:0,changelog:[{version:\"0.5.0\",prs:[262]}]},[$p]:{brief:\"The span id of the span that was active when the log was collected. This should not be set if there was no active span.\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"b0e6f15b45c36b12\",deprecation:{},changelog:[{version:\"0.5.0\",prs:[287],description:\"Deprecate `sentry.trace.parent_span_id`\"},{version:\"0.1.0\",prs:[116]}]},[$]:{brief:\"The sentry transaction (segment name).\",type:\"string\",pii:{isPii:\"false\"},isInOtel:!1,visibility:\"public\",example:\"GET /\",deprecation:{replacement:\"sentry.segment.name\",reason:\"This attribute is being deprecated in favor of sentry.segment.name\"},aliases:[Z,ee],changelog:[{version:\"0.6.0\",prs:[345],description:\"Deprecated sentry.transaction in favor of sentry.segment.name\"},{version:\"0.0.0\"}]},[is]:{brief:\"User email address.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.email\"},aliases:[vs],changelog:[{version:\"0.10.0\",prs:[406]}]},[ts]:{brief:\"Human readable city name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.city\"},aliases:[_s],changelog:[{version:\"0.10.0\",prs:[406]}]},[ss]:{brief:\"Two-letter country code (ISO 3166-1 alpha-2).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.country_code\"},aliases:[Es],changelog:[{version:\"0.10.0\",prs:[406]}]},[rs]:{brief:\"Human readable region name or code.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.region\"},aliases:[Ts],changelog:[{version:\"0.10.0\",prs:[406]}]},[ns]:{brief:\"Human readable subdivision name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.subdivision\"},aliases:[Is],changelog:[{version:\"0.10.0\",prs:[406]}]},[as]:{brief:\"Unique identifier of the user.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.id\"},aliases:[Os],changelog:[{version:\"0.10.0\",prs:[406]}]},[os]:{brief:\"The IP address of the user.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.ip_address\"},aliases:[Ps],changelog:[{version:\"0.10.0\",prs:[406]}]},[ls]:{brief:\"Short name or login/username of the user.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.name\"},aliases:[As],changelog:[{version:\"0.10.0\",prs:[406]}]},[b]:{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",aliases:[o,c,s],changelog:[{version:\"0.1.0\",prs:[108,127]},{version:\"0.0.0\"}]},[ps]:{brief:\"Server port number.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:1337,aliases:[Dt],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[ec]:{brief:\"Logical name of the service.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"omegastar\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[cs]:{brief:\"The version string of the service API or implementation. The format is not defined by these conventions.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"5.0.0\",aliases:[J],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[ic]:{brief:\"A unique id identifying the active session at the time of setting this attribute\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"00112233-4455-6677-8899-aabbccddeeff\",changelog:[{version:\"0.11.0\",prs:[412],description:\"Added session.id attribute\"}]},[tc]:{brief:\"The fraction of time the app was stalled. Only applies to React Native. This is computed by Relay.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[362],description:\"Added stall_percentage attribute\"}]},[sc]:{brief:\"The combined duration of all stalls in milliseconds. Only applies to React Native. This is computed by Relay.\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[362],description:\"Added stall_total_time attribute\"}]},[rc]:{brief:\"The type of state management library\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"redux\",changelog:[{version:\"0.7.0\",prs:[365],description:\"Added state.type attribute\"}]},[nc]:{brief:\"Current \\u201Cmanaged\\u201D thread ID.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:56,changelog:[{version:\"0.0.0\"}]},[ac]:{brief:\"Current thread name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"main\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[oc]:{brief:\"The log tag provided by the timber logging framework.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"MyTag\",changelog:[{version:\"0.3.0\",prs:[183]}]},[bs]:{brief:\"The duration of time to full display in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.ttfd.value\",reason:\"Replaced by app.vitals.ttfd.value to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[qe],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added and deprecated in favor of app.vitals.ttfd.value\"}]},[gs]:{brief:\"The duration of time to initial display in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.ttid.value\",reason:\"Replaced by app.vitals.ttid.value to align with the app.vitals.* namespace for mobile performance attributes\"},aliases:[Ve],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added and deprecated in favor of app.vitals.ttid.value\"}]},[ee]:{brief:\"The sentry transaction (segment name).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"GET /\",deprecation:{replacement:\"sentry.segment.name\"},aliases:[Z,$],changelog:[{version:\"0.6.0\",prs:[345],description:\"Updated transaction deprecation replacement to sentry.segment.name\"},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},[lc]:{brief:\"The path of the tRPC procedure being called\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"user.getById\",changelog:[{version:\"0.7.0\",prs:[370],description:\"Added trpc.procedure_path attribute\"}]},[pc]:{brief:\"The type of the tRPC procedure\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"query\",changelog:[{version:\"0.7.0\",prs:[370],description:\"Added trpc.procedure_type attribute\"}]},[ds]:{brief:\"The value of the recorded Time To First Byte (TTFB) web vital in milliseconds\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:194,deprecation:{replacement:\"browser.web_vital.ttfb.value\",reason:\"This attribute is being deprecated in favor of browser.web_vital.ttfb.value\"},aliases:[pi],changelog:[{version:\"0.5.0\",prs:[235]}]},[us]:{brief:\"The time it takes for the server to process the initial request and send the first byte of a response to the user's browser\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1554.5814,deprecation:{replacement:\"browser.web_vital.ttfb.request_time\",reason:\"This attribute is being deprecated in favor of browser.web_vital.ttfb.request_time\"},aliases:[li],changelog:[{version:\"0.5.0\",prs:[235]}]},[cc]:{brief:\"More granular type of the operation happening.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"fetch\",changelog:[{version:\"0.0.0\"}]},[bc]:{brief:\"The name of the associated component.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"HomeButton\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[gc]:{brief:\"Whether the span execution contributed to the TTFD (time to fully drawn) metric.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[dc]:{brief:\"Whether the span execution contributed to the TTID (time to initial display) metric.\",type:\"boolean\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},[uc]:{brief:\"The height of the UI element (for Html in pixels)\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:256,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.height attribute\"}]},[mc]:{brief:\"The id of the UI element\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"btn-login\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.id attribute\"}]},[hc]:{brief:\"The identifier used to measure the UI element timing\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"heroImage\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.identifier attribute\"}]},[yc]:{brief:\"The loading time of a UI element (from time origin to finished loading)\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:998.2234,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.load_time attribute\"}]},[fc]:{brief:\"The type of element paint. Can either be 'image-paint' or 'text-paint'\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"image-paint\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.paint_type attribute\"}]},[vc]:{brief:\"The rendering time of the UI element (from time origin to finished rendering)\",type:\"double\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1023.1124,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.render_time attribute\"}]},[_c]:{brief:\"type of the UI element\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"img\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.type attribute\"}]},[Ec]:{brief:\"The URL of the UI element (e.g. an img src)\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"https://assets.myapp.com/hero.png\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.url attribute\"}]},[Tc]:{brief:\"The width of the UI element (for HTML in pixels)\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:512,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.width attribute\"}]},[ie]:{brief:\"The URL of the resource that was fetched.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com/test?foo=bar#buzz\",deprecation:{replacement:\"url.full\"},aliases:[te,D],changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},[Ic]:{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[Oc]:{brief:\"The fragments present in the URI. Note that this does not contain the leading # character, while the `http.fragment` attribute does.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"details\",changelog:[{version:\"0.0.0\"}]},[te]:{brief:\"The URL of the resource that was fetched.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"https://example.com/test?foo=bar#buzz\",aliases:[D,ie],changelog:[{version:\"0.1.0\",prs:[108]},{version:\"0.0.0\"}]},[Pc]:{brief:\"The URI path component.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"/foo\",changelog:[{version:\"0.0.0\"}]},[ms]:{brief:\"Decoded parameters extracted from a URL path. Usually added by client-side routing frameworks like vue-router.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"url.path.parameter.id='123'\",aliases:[Gt],changelog:[{version:\"0.1.0\",prs:[103]}]},[Ac]:{brief:\"Server port number.\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:1337,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},[Rc]:{brief:\"The query string present in the URL. Note that this does not contain the leading ? character, while the `http.query` attribute does.\",type:\"string\",pii:{isPii:\"true\",reason:\"Query string values can contain sensitive information. Clients should attempt to scrub parameters that might contain sensitive information.\"},isInOtel:!0,visibility:\"public\",example:\"foo=bar&bar=baz\",changelog:[{version:\"0.0.0\"}]},[hs]:{brief:\"The URI scheme component identifying the used protocol.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"https\",aliases:[yt],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[ys]:{brief:\"The low-cardinality template of an absolute path reference.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"/users/:id\",aliases:[L],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[fs]:{brief:\"Value of the HTTP User-Agent header sent by the client.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!0,visibility:\"public\",example:\"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1\",aliases:[vt],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},[vs]:{brief:\"User email address.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"test@example.com\",aliases:[is],changelog:[{version:\"0.0.0\"}]},[Sc]:{brief:\"User's full name.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"John Smith\",changelog:[{version:\"0.0.0\"}]},[_s]:{brief:\"Human readable city name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Toronto\",aliases:[ts],changelog:[{version:\"0.0.0\"}]},[Es]:{brief:\"Two-letter country code (ISO 3166-1 alpha-2).\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"CA\",aliases:[ss],changelog:[{version:\"0.0.0\"}]},[Ts]:{brief:\"Human readable region name or code.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Canada\",aliases:[rs],changelog:[{version:\"0.0.0\"}]},[Is]:{brief:\"Human readable subdivision name.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"Ontario\",aliases:[ns],changelog:[{version:\"0.0.0\"}]},[xc]:{brief:\"Unique user hash to correlate information for a user in anonymized form.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"8ae4c2993e0f4f3b8b2d1b1f3b5e8f4d\",changelog:[{version:\"0.0.0\"}]},[Os]:{brief:\"Unique identifier of the user.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"S-1-5-21-202424912787-2692429404-2351956786-1000\",aliases:[as],changelog:[{version:\"0.0.0\"}]},[Ps]:{brief:\"The IP address of the user.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"192.168.1.1\",aliases:[os],changelog:[{version:\"0.1.0\",prs:[75]}]},[As]:{brief:\"Short name or login/username of the user.\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:\"j.smith\",aliases:[ls],changelog:[{version:\"0.0.0\"}]},[Nc]:{brief:\"Array of user roles at the time of the event.\",type:\"string[]\",pii:{isPii:\"true\"},isInOtel:!0,visibility:\"public\",example:[\"admin\",\"editor\"],changelog:[{version:\"0.0.0\"}]},[Cc]:{brief:\"Git branch name for Vercel project\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"main\",changelog:[{version:\"0.2.0\",prs:[163]}]},[wc]:{brief:\"Identifier for the Vercel build (only present on build logs)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"bld_cotnkcr76\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Lc]:{brief:\"Identifier for the Vercel deployment\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"dpl_233NRGRjVZX1caZrXWtz5g1TAksD\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Dc]:{brief:\"Origin of the external content in Vercel (only on external logs)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"https://vitals.vercel-insights.com/v1\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Mc]:{brief:\"Type of edge runtime in Vercel\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"edge-function\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Uc]:{brief:\"Entrypoint for the request in Vercel\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"api/index.js\",changelog:[{version:\"0.2.0\",prs:[163]}]},[kc]:{brief:\"Region where the request is executed\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"sfo1\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Gc]:{brief:\"Unique identifier for the log entry in Vercel\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"1573817187330377061717300000\",changelog:[{version:\"0.2.0\",prs:[163]}]},[qc]:{brief:\"JA3 fingerprint digest of Vercel request\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"769,47-53-5-10-49161-49162-49171-49172-50-56-19-4,0-10-11,23-24-25,0\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Vc]:{brief:\"JA4 fingerprint digest\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"t13d1516h2_8daaf6152771_02713d6af862\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Yc]:{brief:\"Vercel log output type\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"stdout\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Fc]:{brief:\"Function or dynamic path of the request in Vercel.\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"/dynamic/[route].json\",changelog:[{version:\"0.6.0\",prs:[349],description:\"Added vercel.path attribute\"}]},[Hc]:{brief:\"Identifier for the Vercel project\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"gdufoJxB6b9b1fEqr1jUtFkyavUU\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Wc]:{brief:\"Name of the Vercel project\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"my-app\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Bc]:{brief:\"Original request ID when request is served from cache\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"pdx1::v8g4b-1744143786684-93dafbc0f70d\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Kc]:{brief:\"Client IP address\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"120.75.16.101\",changelog:[{version:\"0.2.0\",prs:[163]}]},[zc]:{brief:\"Hostname of the request\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"test.vercel.app\",changelog:[{version:\"0.2.0\",prs:[163]}]},[jc]:{brief:\"Region where lambda function executed\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"sfo1\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Qc]:{brief:\"HTTP method of the request\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"GET\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Xc]:{brief:\"Request path with query parameters\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"/dynamic/some-value.json?route=some-value\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Jc]:{brief:\"How the request was served based on its path and project configuration\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"func\",changelog:[{version:\"0.2.0\",prs:[163]}]},[Zc]:{brief:\"Variant of the path type\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"api\",changelog:[{version:\"0.2.0\",prs:[163]}]},[$c]:{brief:\"Referer of the request\",type:\"string\",pii:{isPii:\"true\"},isInOtel:!1,visibility:\"public\",example:\"*.vercel.app\",changelog:[{version:\"0.2.0\",prs:[163]}]},[eb]:{brief:\"Region where the request is processed\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"sfo1\",changelog:[{version:\"0.2.0\",prs:[163]}]},[ib]:{brief:\"Size of the response in bytes\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1024,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]},[tb]:{brief:\"Protocol of the request\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"https\",changelog:[{version:\"0.2.0\",prs:[163]}]},[sb]:{brief:\"HTTP status code of the proxy request\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:200,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]},[rb]:{brief:\"Unix timestamp when the proxy request was made\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:1573817250172,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]},[nb]:{brief:\"User agent strings of the request\",type:\"string[]\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:[\"Mozilla/5.0...\"],changelog:[{version:\"0.2.0\",prs:[163]}]},[ab]:{brief:\"Cache status sent to the browser\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"REVALIDATED\",changelog:[{version:\"0.2.0\",prs:[163]}]},[ob]:{brief:\"Vercel-specific identifier\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"sfo1::abc123\",changelog:[{version:\"0.2.0\",prs:[163]}]},[lb]:{brief:\"Action taken by firewall rules\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"deny\",changelog:[{version:\"0.2.0\",prs:[163]}]},[pb]:{brief:\"ID of the firewall rule that matched\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"rule_gAHz8jtSB1Gy\",changelog:[{version:\"0.2.0\",prs:[163]}]},[cb]:{brief:\"Identifier of the Vercel request\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"643af4e3-975a-4cc7-9e7a-1eda11539d90\",changelog:[{version:\"0.2.0\",prs:[163]}]},[bb]:{brief:\"Origin of the Vercel log (build, edge, lambda, static, external, or firewall)\",type:\"string\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:\"build\",changelog:[{version:\"0.2.0\",prs:[163]}]},[gb]:{brief:\"HTTP status code of the request (-1 means no response returned and the lambda crashed)\",type:\"integer\",pii:{isPii:\"maybe\"},isInOtel:!1,visibility:\"public\",example:200,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]}};export{Rs as AI_CITATIONS,g as AI_COMPLETION_TOKENS_USED,Ss as AI_DOCUMENTS,se as AI_FINISH_REASON,re as AI_FREQUENCY_PENALTY,d as AI_FUNCTION_CALL,ne as AI_GENERATION_ID,ae as AI_INPUT_MESSAGES,xs as AI_IS_SEARCH_REQUIRED,Ns as AI_METADATA,oe as AI_MODEL_ID,u as AI_MODEL_PROVIDER,le as AI_PIPELINE_NAME,pe as AI_PREAMBLE,ce as AI_PRESENCE_PENALTY,m as AI_PROMPT_TOKENS_USED,Cs as AI_RAW_PROMPTING,ws as AI_RESPONSES,Ls as AI_RESPONSE_FORMAT,Ds as AI_SEARCH_QUERIES,Ms as AI_SEARCH_RESULTS,be as AI_SEED,ge as AI_STREAMING,Us as AI_TAGS,de as AI_TEMPERATURE,ue as AI_TEXTS,ks as AI_TOOLS,Gs as AI_TOOL_CALLS,me as AI_TOP_K,he as AI_TOP_P,ye as AI_TOTAL_COST,fe as AI_TOTAL_TOKENS_USED,qs as AI_WARNINGS,Vs as ANGULAR_VERSION,ve as APP_APP_BUILD,_e as APP_APP_IDENTIFIER,Ee as APP_APP_NAME,Te as APP_APP_START_TIME,Ie as APP_APP_VERSION,Oe as APP_BUILD,Pe as APP_IDENTIFIER,Ys as APP_IN_FOREGROUND,Ae as APP_NAME,Re as APP_START_COLD,Se as APP_START_TIME,xe as APP_START_TYPE,Ne as APP_START_WARM,Ce as APP_VERSION,we as APP_VITALS_FRAMES_DELAY_VALUE,Le as APP_VITALS_FRAMES_FROZEN_COUNT,De as APP_VITALS_FRAMES_SLOW_COUNT,Me as APP_VITALS_FRAMES_TOTAL_COUNT,Ue as APP_VITALS_START_COLD_VALUE,Fs as APP_VITALS_START_PREWARMED,Hs as APP_VITALS_START_REASON,Ws as APP_VITALS_START_SCREEN,ke as APP_VITALS_START_TYPE,Ge as APP_VITALS_START_WARM_VALUE,qe as APP_VITALS_TTFD_VALUE,Ve as APP_VITALS_TTID_VALUE,Bs as ART_GC_BLOCKING_COUNT,Ks as ART_GC_BLOCKING_TIME,zs as ART_GC_PRE_OOME_COUNT,js as ART_GC_TOTAL_COUNT,Qs as ART_GC_TOTAL_TIME,Xs as ART_GC_WAITING_TIME,Js as ART_MEMORY_FREE,Zs as ART_MEMORY_FREE_UNTIL_GC,$s as ART_MEMORY_FREE_UNTIL_OOME,er as ART_MEMORY_MAX,ir as ART_MEMORY_TOTAL,ub as ATTRIBUTE_METADATA,db as ATTRIBUTE_TYPE,tr as AWS_CLOUDWATCH_LOGS_LOG_GROUP,sr as AWS_CLOUDWATCH_LOGS_LOG_STREAM,rr as AWS_CLOUDWATCH_LOGS_URL,Ye as AWS_LAMBDA_AWS_REQUEST_ID,nr as AWS_LAMBDA_EXECUTION_DURATION_IN_MILLIS,Fe as AWS_LAMBDA_FUNCTION_NAME,He as AWS_LAMBDA_FUNCTION_VERSION,We as AWS_LAMBDA_INVOKED_ARN,Be as AWS_LAMBDA_INVOKED_FUNCTION_ARN,ar as AWS_LAMBDA_REMAINING_TIME_IN_MILLIS,or as AWS_LOG_GROUP_NAMES,lr as AWS_LOG_STREAM_NAMES,pr as BLOCKED_MAIN_THREAD,Ke as BROWSER_NAME,ze as BROWSER_PERFORMANCE_NAVIGATION_ACTIVATION_START,je as BROWSER_PERFORMANCE_TIME_ORIGIN,cr as BROWSER_REPORT_TYPE,br as BROWSER_SCRIPT_INVOKER,gr as BROWSER_SCRIPT_INVOKER_TYPE,dr as BROWSER_SCRIPT_SOURCE_CHAR_POSITION,Qe as BROWSER_VERSION,ur as BROWSER_WEB_VITAL_CLS_REPORT_EVENT,Xe as BROWSER_WEB_VITAL_CLS_SOURCE_KEY,Je as BROWSER_WEB_VITAL_CLS_VALUE,Ze as BROWSER_WEB_VITAL_FCP_VALUE,$e as BROWSER_WEB_VITAL_FP_VALUE,ei as BROWSER_WEB_VITAL_INP_VALUE,ii as BROWSER_WEB_VITAL_LCP_ELEMENT,ti as BROWSER_WEB_VITAL_LCP_ID,si as BROWSER_WEB_VITAL_LCP_LOAD_TIME,ri as BROWSER_WEB_VITAL_LCP_RENDER_TIME,mr as BROWSER_WEB_VITAL_LCP_REPORT_EVENT,ni as BROWSER_WEB_VITAL_LCP_SIZE,ai as BROWSER_WEB_VITAL_LCP_URL,oi as BROWSER_WEB_VITAL_LCP_VALUE,li as BROWSER_WEB_VITAL_TTFB_REQUEST_TIME,pi as BROWSER_WEB_VITAL_TTFB_VALUE,hr as CACHE_HIT,yr as CACHE_ITEM_SIZE,fr as CACHE_KEY,vr as CACHE_OPERATION,_r as CACHE_TTL,Er as CACHE_WRITE,Tr as CHANNEL,h as CLIENT_ADDRESS,Ir as CLIENT_PORT,Or as CLOUDFLARE_D1_DURATION,y as CLOUDFLARE_D1_QUERY_TYPE,Pr as CLOUDFLARE_D1_ROWS_READ,Ar as CLOUDFLARE_D1_ROWS_WRITTEN,Rr as CLOUDFLARE_R2_BUCKET,Sr as CLOUDFLARE_R2_OPERATION,xr as CLOUDFLARE_R2_REQUEST_DELIMITER,Nr as CLOUDFLARE_R2_REQUEST_KEY,Cr as CLOUDFLARE_R2_REQUEST_PART_NUMBER,wr as CLOUDFLARE_R2_REQUEST_PREFIX,Lr as CLOUDFLARE_WORKFLOW_ATTEMPT,Dr as CLOUDFLARE_WORKFLOW_RETRIES_BACKOFF,Mr as CLOUDFLARE_WORKFLOW_RETRIES_DELAY,Ur as CLOUDFLARE_WORKFLOW_RETRIES_LIMIT,kr as CLOUDFLARE_WORKFLOW_TIMEOUT,Gr as CLOUD_ACCOUNT_ID,qr as CLOUD_AVAILABILITY_ZONE,Vr as CLOUD_PLATFORM,Yr as CLOUD_PROVIDER,Fr as CLOUD_REGION,Hr as CLOUD_RESOURCE_ID,ci as CLS,bi as CLS_SOURCE_KEY,gi as CODE_FILEPATH,di as CODE_FILE_PATH,ui as CODE_FUNCTION,mi as CODE_FUNCTION_NAME,hi as CODE_LINENO,yi as CODE_LINE_NUMBER,Wr as CODE_NAMESPACE,f as CONNECTIONTYPE,fi as CONNECTION_RTT,Br as CULTURE_CALENDAR,Kr as CULTURE_DISPLAY_NAME,zr as CULTURE_IS_24_HOUR_FORMAT,jr as CULTURE_LOCALE,Qr as CULTURE_TIMEZONE,Xr as DB_COLLECTION_NAME,Jr as DB_DRIVER_NAME,vi as DB_NAME,_i as DB_NAMESPACE,v as DB_OPERATION,Zr as DB_OPERATION_BATCH_SIZE,_ as DB_OPERATION_NAME,$r as DB_QUERY_PARAMETER_KEY,en as DB_QUERY_SUMMARY,Ei as DB_QUERY_TEXT,tn as DB_REDIS_CONNECTION,sn as DB_REDIS_KEY,rn as DB_REDIS_PARAMETERS,nn as DB_SQL_BINDINGS,Ti as DB_STATEMENT,an as DB_STORED_PROCEDURE_NAME,Ii as DB_SYSTEM,Oi as DB_SYSTEM_NAME,on as DB_USER,Pi as DEVICEMEMORY,ln as DEVICE_ARCHS,pn as DEVICE_BATTERY_LEVEL,cn as DEVICE_BATTERY_TEMPERATURE,bn as DEVICE_BOOT_TIME,gn as DEVICE_BRAND,dn as DEVICE_CHARGING,un as DEVICE_CHIPSET,mn as DEVICE_CLASS,E as DEVICE_CONNECTION_TYPE,hn as DEVICE_CPU_DESCRIPTION,yn as DEVICE_EXTERNAL_FREE_STORAGE,fn as DEVICE_EXTERNAL_STORAGE_SIZE,vn as DEVICE_FAMILY,_n as DEVICE_FREE_MEMORY,En as DEVICE_FREE_STORAGE,Tn as DEVICE_ID,In as DEVICE_LOCALE,On as DEVICE_LOW_MEMORY,Pn as DEVICE_LOW_POWER_MODE,An as DEVICE_MANUFACTURER,Ai as DEVICE_MEMORY_ESTIMATED_CAPACITY,Rn as DEVICE_MEMORY_SIZE,Sn as DEVICE_MODEL,xn as DEVICE_MODEL_ID,Nn as DEVICE_NAME,Cn as DEVICE_ONLINE,wn as DEVICE_ORIENTATION,Ri as DEVICE_PROCESSOR_COUNT,Ln as DEVICE_PROCESSOR_FREQUENCY,Dn as DEVICE_SCREEN_DENSITY,Mn as DEVICE_SCREEN_DPI,Un as DEVICE_SCREEN_HEIGHT_PIXELS,kn as DEVICE_SCREEN_WIDTH_PIXELS,Gn as DEVICE_SIMULATOR,qn as DEVICE_STORAGE_SIZE,Vn as DEVICE_THERMAL_STATE,Yn as DEVICE_TIMEZONE,Fn as DEVICE_USABLE_MEMORY,Si as EFFECTIVECONNECTIONTYPE,xi as ENVIRONMENT,Hn as ERROR_TYPE,Wn as EVENT_ID,Bn as EVENT_NAME,Kn as EXCEPTION_ESCAPED,zn as EXCEPTION_MESSAGE,jn as EXCEPTION_STACKTRACE,Qn as EXCEPTION_TYPE,Xn as FAAS_COLDSTART,Jn as FAAS_CRON,Zn as FAAS_DURATION_IN_MS,$n as FAAS_ENTRY_POINT,ea as FAAS_IDENTITY,Ni as FAAS_INVOCATION_ID,Ci as FAAS_NAME,ia as FAAS_TIME,ta as FAAS_TRIGGER,wi as FAAS_VERSION,Li as FCP,sa as FLAG_EVALUATION_KEY,Di as FP,Mi as FRAMES_DELAY,Ui as FRAMES_FROZEN,ra as FRAMES_FROZEN_RATE,ki as FRAMES_SLOW,na as FRAMES_SLOW_RATE,Gi as FRAMES_TOTAL,aa as FS_ERROR,oa as GCP_FUNCTION_CONTEXT_EVENT_ID,la as GCP_FUNCTION_CONTEXT_EVENT_TYPE,pa as GCP_FUNCTION_CONTEXT_ID,ca as GCP_FUNCTION_CONTEXT_RESOURCE,ba as GCP_FUNCTION_CONTEXT_SOURCE,ga as GCP_FUNCTION_CONTEXT_SPECVERSION,da as GCP_FUNCTION_CONTEXT_TIME,ua as GCP_FUNCTION_CONTEXT_TIMESTAMP,ma as GCP_FUNCTION_CONTEXT_TYPE,ha as GCP_PROJECT_ID,ya as GEN_AI_AGENT_NAME,fa as GEN_AI_CONTEXT_UTILIZATION,va as GEN_AI_CONTEXT_WINDOW_SIZE,_a as GEN_AI_CONVERSATION_ID,Ea as GEN_AI_COST_INPUT_TOKENS,Ta as GEN_AI_COST_OUTPUT_TOKENS,qi as GEN_AI_COST_TOTAL_TOKENS,Ia as GEN_AI_EMBEDDINGS_INPUT,Oa as GEN_AI_FUNCTION_ID,Vi as GEN_AI_INPUT_MESSAGES,Pa as GEN_AI_OPERATION_NAME,Aa as GEN_AI_OPERATION_TYPE,Ra as GEN_AI_OUTPUT_MESSAGES,Yi as GEN_AI_PIPELINE_NAME,Sa as GEN_AI_PROMPT,Fi as GEN_AI_PROMPT_NAME,T as GEN_AI_PROVIDER_NAME,xa as GEN_AI_REQUEST_AVAILABLE_TOOLS,Hi as GEN_AI_REQUEST_FREQUENCY_PENALTY,Na as GEN_AI_REQUEST_MAX_TOKENS,Wi as GEN_AI_REQUEST_MESSAGES,Ca as GEN_AI_REQUEST_MODEL,Bi as GEN_AI_REQUEST_PRESENCE_PENALTY,Ki as GEN_AI_REQUEST_SEED,zi as GEN_AI_REQUEST_TEMPERATURE,ji as GEN_AI_REQUEST_TOP_K,Qi as GEN_AI_REQUEST_TOP_P,Xi as GEN_AI_RESPONSE_FINISH_REASONS,Ji as GEN_AI_RESPONSE_ID,Zi as GEN_AI_RESPONSE_MODEL,$i as GEN_AI_RESPONSE_STREAMING,wa as GEN_AI_RESPONSE_TEXT,et as GEN_AI_RESPONSE_TIME_TO_FIRST_CHUNK,it as GEN_AI_RESPONSE_TIME_TO_FIRST_TOKEN,La as GEN_AI_RESPONSE_TOKENS_PER_SECOND,Da as GEN_AI_RESPONSE_TOOL_CALLS,I as GEN_AI_SYSTEM,tt as GEN_AI_SYSTEM_INSTRUCTIONS,Ma as GEN_AI_SYSTEM_MESSAGE,st as GEN_AI_TOOL_CALL_ARGUMENTS,e as GEN_AI_TOOL_CALL_RESULT,Ua as GEN_AI_TOOL_DEFINITIONS,ka as GEN_AI_TOOL_DESCRIPTION,rt as GEN_AI_TOOL_INPUT,i as GEN_AI_TOOL_MESSAGE,O as GEN_AI_TOOL_NAME,t as GEN_AI_TOOL_OUTPUT,Ga as GEN_AI_TOOL_TYPE,nt as GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS,at as GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS,P as GEN_AI_USAGE_COMPLETION_TOKENS,A as GEN_AI_USAGE_INPUT_TOKENS,ot as GEN_AI_USAGE_INPUT_TOKENS_CACHED,lt as GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE,R as GEN_AI_USAGE_OUTPUT_TOKENS,pt as GEN_AI_USAGE_OUTPUT_TOKENS_REASONING,S as GEN_AI_USAGE_PROMPT_TOKENS,ct as GEN_AI_USAGE_REASONING_OUTPUT_TOKENS,bt as GEN_AI_USAGE_TOTAL_TOKENS,qa as GRAPHQL_DOCUMENT,Va as GRAPHQL_OPERATION_NAME,Ya as GRAPHQL_OPERATION_TYPE,gt as HARDWARECONCURRENCY,dt as HTTP_CLIENT_IP,Fa as HTTP_DECODED_RESPONSE_CONTENT_LENGTH,x as HTTP_FLAVOR,Ha as HTTP_FRAGMENT,s as HTTP_HOST,r as HTTP_METHOD,Wa as HTTP_QUERY,Ba as HTTP_REQUEST_BODY_DATA,Ka as HTTP_REQUEST_CONNECTION_END,za as HTTP_REQUEST_CONNECT_START,ja as HTTP_REQUEST_DOMAIN_LOOKUP_END,Qa as HTTP_REQUEST_DOMAIN_LOOKUP_START,Xa as HTTP_REQUEST_FETCH_START,Ja as HTTP_REQUEST_HEADER_KEY,n as HTTP_REQUEST_METHOD,Za as HTTP_REQUEST_REDIRECT_END,$a as HTTP_REQUEST_REDIRECT_START,eo as HTTP_REQUEST_REQUEST_START,io as HTTP_REQUEST_RESEND_COUNT,to as HTTP_REQUEST_RESPONSE_END,so as HTTP_REQUEST_RESPONSE_START,ro as HTTP_REQUEST_SECURE_CONNECTION_START,no as HTTP_REQUEST_TIME_TO_FIRST_BYTE,ao as HTTP_REQUEST_WORKER_START,N as HTTP_RESPONSE_BODY_SIZE,C as HTTP_RESPONSE_CONTENT_LENGTH,w as HTTP_RESPONSE_HEADER_CONTENT_LENGTH,oo as HTTP_RESPONSE_HEADER_KEY,ut as HTTP_RESPONSE_SIZE,mt as HTTP_RESPONSE_STATUS_CODE,ht as HTTP_RESPONSE_TRANSFER_SIZE,L as HTTP_ROUTE,yt as HTTP_SCHEME,o as HTTP_SERVER_NAME,lo as HTTP_SERVER_REQUEST_TIME_IN_QUEUE,ft as HTTP_STATUS_CODE,po as HTTP_TARGET,D as HTTP_URL,vt as HTTP_USER_AGENT,co as ID,_t as INP,bo as JSONRPC_PROTOCOL_VERSION,Et as JSONRPC_REQUEST_ID,go as JVM_GC_ACTION,uo as JVM_GC_NAME,mo as JVM_MEMORY_POOL_NAME,ho as JVM_MEMORY_TYPE,yo as JVM_THREAD_DAEMON,fo as JVM_THREAD_STATE,Tt as LCP,It as LCP_ELEMENT,Ot as LCP_ID,Pt as LCP_LOADTIME,At as LCP_RENDERTIME,Rt as LCP_SIZE,St as LCP_URL,vo as LOGGER_NAME,_o as MCP_CANCELLED_REASON,Eo as MCP_CANCELLED_REQUEST_ID,To as MCP_CLIENT_NAME,Io as MCP_CLIENT_TITLE,Oo as MCP_CLIENT_VERSION,Po as MCP_LIFECYCLE_PHASE,Ao as MCP_LOGGING_DATA_TYPE,Ro as MCP_LOGGING_LEVEL,So as MCP_LOGGING_LOGGER,xo as MCP_LOGGING_MESSAGE,No as MCP_METHOD_NAME,Co as MCP_PROGRESS_CURRENT,wo as MCP_PROGRESS_MESSAGE,Lo as MCP_PROGRESS_PERCENTAGE,Do as MCP_PROGRESS_TOKEN,Mo as MCP_PROGRESS_TOTAL,xt as MCP_PROMPT_NAME,Uo as MCP_PROMPT_RESULT_DESCRIPTION,ko as MCP_PROMPT_RESULT_MESSAGE_CONTENT,Go as MCP_PROMPT_RESULT_MESSAGE_COUNT,qo as MCP_PROMPT_RESULT_MESSAGE_ROLE,Vo as MCP_PROTOCOL_READY,Yo as MCP_PROTOCOL_VERSION,Fo as MCP_REQUEST_ARGUMENT_KEY,Ho as MCP_REQUEST_ARGUMENT_NAME,Wo as MCP_REQUEST_ARGUMENT_URI,Nt as MCP_REQUEST_ID,M as MCP_RESOURCE_PROTOCOL,Bo as MCP_RESOURCE_URI,Ko as MCP_SERVER_NAME,zo as MCP_SERVER_TITLE,jo as MCP_SERVER_VERSION,Qo as MCP_SESSION_ID,U as MCP_TOOL_NAME,l as MCP_TOOL_RESULT_CONTENT,Xo as MCP_TOOL_RESULT_CONTENT_COUNT,Jo as MCP_TOOL_RESULT_IS_ERROR,k as MCP_TRANSPORT,Zo as MDC_KEY,$o as MESSAGING_BATCH_MESSAGE_COUNT,el as MESSAGING_DESTINATION_CONNECTION,il as MESSAGING_DESTINATION_NAME,tl as MESSAGING_MESSAGE_BODY_SIZE,sl as MESSAGING_MESSAGE_ENVELOPE_SIZE,rl as MESSAGING_MESSAGE_ID,nl as MESSAGING_MESSAGE_RECEIVE_LATENCY,al as MESSAGING_MESSAGE_RETRY_COUNT,ol as MESSAGING_OPERATION_NAME,ll as MESSAGING_OPERATION_TYPE,pl as MESSAGING_SYSTEM,p as METHOD,cl as MIDDLEWARE_NAME,bl as NAVIGATION_TYPE,gl as NEL_ELAPSED_TIME,dl as NEL_PHASE,ul as NEL_REFERRER,ml as NEL_SAMPLING_FUNCTION,hl as NEL_TYPE,Ct as NETWORK_CONNECTION_EFFECTIVE_TYPE,wt as NETWORK_CONNECTION_RTT,G as NETWORK_CONNECTION_TYPE,q as NETWORK_LOCAL_ADDRESS,Lt as NETWORK_LOCAL_PORT,V as NETWORK_PEER_ADDRESS,yl as NETWORK_PEER_PORT,Y as NETWORK_PROTOCOL_NAME,F as NETWORK_PROTOCOL_VERSION,H as NETWORK_TRANSPORT,fl as NETWORK_TYPE,W as NET_HOST_IP,c as NET_HOST_NAME,Dt as NET_HOST_PORT,B as NET_PEER_IP,vl as NET_PEER_NAME,_l as NET_PEER_PORT,K as NET_PROTOCOL_NAME,z as NET_PROTOCOL_VERSION,El as NET_SOCK_FAMILY,j as NET_SOCK_HOST_ADDR,Mt as NET_SOCK_HOST_PORT,Q as NET_SOCK_PEER_ADDR,Tl as NET_SOCK_PEER_NAME,Il as NET_SOCK_PEER_PORT,X as NET_TRANSPORT,Ut as OS_BUILD,kt as OS_BUILD_ID,Ol as OS_DESCRIPTION,Pl as OS_KERNEL_VERSION,Al as OS_NAME,Rl as OS_RAW_DESCRIPTION,Sl as OS_ROOTED,xl as OS_THEME,Nl as OS_TYPE,Cl as OS_VERSION,wl as OTEL_SCOPE_NAME,Ll as OTEL_SCOPE_VERSION,Dl as OTEL_STATUS_CODE,Ml as OTEL_STATUS_DESCRIPTION,Gt as PARAMS_KEY,qt as PERFORMANCE_ACTIVATIONSTART,Vt as PERFORMANCE_TIMEORIGIN,Ul as PREVIOUS_ROUTE,kl as PROCESS_COMMAND_ARGS,Gl as PROCESS_EXECUTABLE_NAME,ql as PROCESS_PID,Yt as PROCESS_RUNTIME_DESCRIPTION,Vl as PROCESS_RUNTIME_ENGINE_NAME,Yl as PROCESS_RUNTIME_ENGINE_VERSION,Ft as PROCESS_RUNTIME_NAME,Ht as PROCESS_RUNTIME_VERSION,Fl as QUERY_KEY,Hl as REACT_VERSION,Wt as RELEASE,Wl as REMIX_ACTION_FORM_DATA_KEY,Bt as REPLAY_ID,Bl as RESOURCE_DEPLOYMENT_ENVIRONMENT,Kl as RESOURCE_DEPLOYMENT_ENVIRONMENT_NAME,zl as RESOURCE_RENDER_BLOCKING_STATUS,jl as ROUTE,Ql as RPC_GRPC_STATUS_CODE,Xl as RPC_METHOD,Jl as RPC_RESPONSE_STATUS_CODE,Zl as RPC_SERVICE,$l as RUNTIME_BUILD,Kt as RUNTIME_NAME,zt as RUNTIME_RAW_DESCRIPTION,jt as RUNTIME_VERSION,ep as SCORE_KEY,ip as SCORE_RATIO_KEY,tp as SCORE_TOTAL,sp as SCORE_WEIGHT_KEY,rp as SENTRY_ACTION,Qt as SENTRY_BROWSER_NAME,Xt as SENTRY_BROWSER_VERSION,np as SENTRY_CANCELLATION_REASON,ap as SENTRY_CATEGORY,op as SENTRY_CLIENT_SAMPLE_RATE,lp as SENTRY_DESCRIPTION,pp as SENTRY_DIST,cp as SENTRY_DOMAIN,bp as SENTRY_DSC_ENVIRONMENT,gp as SENTRY_DSC_PROJECT_ID,dp as SENTRY_DSC_PUBLIC_KEY,up as SENTRY_DSC_RELEASE,mp as SENTRY_DSC_SAMPLED,hp as SENTRY_DSC_SAMPLE_RATE,yp as SENTRY_DSC_TRACE_ID,fp as SENTRY_DSC_TRANSACTION,Jt as SENTRY_ENVIRONMENT,vp as SENTRY_EXCLUSIVE_TIME,_p as SENTRY_GRAPHQL_OPERATION,Ep as SENTRY_GROUP,Tp as SENTRY_HTTP_PREFETCH,Ip as SENTRY_IDLE_SPAN_FINISH_REASON,Op as SENTRY_IS_REMOTE,Pp as SENTRY_KIND,Ap as SENTRY_MAIN_THREAD,Rp as SENTRY_MESSAGE_PARAMETER_KEY,Sp as SENTRY_MESSAGE_TEMPLATE,xp as SENTRY_MOBILE,Np as SENTRY_MODULE_KEY,Cp as SENTRY_NEXTJS_SSR_FUNCTION_ROUTE,wp as SENTRY_NEXTJS_SSR_FUNCTION_TYPE,Lp as SENTRY_NORMALIZED_DB_QUERY,Dp as SENTRY_NORMALIZED_DB_QUERY_HASH,Mp as SENTRY_NORMALIZED_DESCRIPTION,Up as SENTRY_OBSERVED_TIMESTAMP_NANOS,kp as SENTRY_OP,Gp as SENTRY_ORIGIN,qp as SENTRY_PLATFORM,Vp as SENTRY_PROFILER_ID,Yp as SENTRY_PROFILE_ID,J as SENTRY_RELEASE,Zt as SENTRY_REPLAY_ID,Fp as SENTRY_REPLAY_IS_BUFFERING,Hp as SENTRY_REPORT_EVENT,Wp as SENTRY_SDK_INTEGRATIONS,Bp as SENTRY_SDK_NAME,Kp as SENTRY_SDK_VERSION,$t as SENTRY_SEGMENT_ID,Z as SENTRY_SEGMENT_NAME,zp as SENTRY_SERVER_SAMPLE_RATE,jp as SENTRY_SOURCE,Qp as SENTRY_SPAN_SOURCE,Xp as SENTRY_STATUS_CODE,Jp as SENTRY_STATUS_MESSAGE,Zp as SENTRY_TIMESTAMP_SEQUENCE,$p as SENTRY_TRACE_PARENT_SPAN_ID,$ as SENTRY_TRANSACTION,is as SENTRY_USER_EMAIL,ts as SENTRY_USER_GEO_CITY,ss as SENTRY_USER_GEO_COUNTRY_CODE,rs as SENTRY_USER_GEO_REGION,ns as SENTRY_USER_GEO_SUBDIVISION,as as SENTRY_USER_ID,os as SENTRY_USER_IP,ls as SENTRY_USER_USERNAME,b as SERVER_ADDRESS,ps as SERVER_PORT,ec as SERVICE_NAME,cs as SERVICE_VERSION,ic as SESSION_ID,tc as STALL_PERCENTAGE,sc as STALL_TOTAL_TIME,rc as STATE_TYPE,nc as THREAD_ID,ac as THREAD_NAME,oc as TIMBER_TAG,bs as TIME_TO_FULL_DISPLAY,gs as TIME_TO_INITIAL_DISPLAY,ee as TRANSACTION,lc as TRPC_PROCEDURE_PATH,pc as TRPC_PROCEDURE_TYPE,ds as TTFB,us as TTFB_REQUESTTIME,cc as TYPE,bc as UI_COMPONENT_NAME,gc as UI_CONTRIBUTES_TO_TTFD,dc as UI_CONTRIBUTES_TO_TTID,uc as UI_ELEMENT_HEIGHT,mc as UI_ELEMENT_ID,hc as UI_ELEMENT_IDENTIFIER,yc as UI_ELEMENT_LOAD_TIME,fc as UI_ELEMENT_PAINT_TYPE,vc as UI_ELEMENT_RENDER_TIME,_c as UI_ELEMENT_TYPE,Ec as UI_ELEMENT_URL,Tc as UI_ELEMENT_WIDTH,ie as URL,Ic as URL_DOMAIN,Oc as URL_FRAGMENT,te as URL_FULL,Pc as URL_PATH,ms as URL_PATH_PARAMETER_KEY,Ac as URL_PORT,Rc as URL_QUERY,hs as URL_SCHEME,ys as URL_TEMPLATE,fs as USER_AGENT_ORIGINAL,vs as USER_EMAIL,Sc as USER_FULL_NAME,_s as USER_GEO_CITY,Es as USER_GEO_COUNTRY_CODE,Ts as USER_GEO_REGION,Is as USER_GEO_SUBDIVISION,xc as USER_HASH,Os as USER_ID,Ps as USER_IP_ADDRESS,As as USER_NAME,Nc as USER_ROLES,Cc as VERCEL_BRANCH,wc as VERCEL_BUILD_ID,Lc as VERCEL_DEPLOYMENT_ID,Dc as VERCEL_DESTINATION,Mc as VERCEL_EDGE_TYPE,Uc as VERCEL_ENTRYPOINT,kc as VERCEL_EXECUTION_REGION,Gc as VERCEL_ID,qc as VERCEL_JA3_DIGEST,Vc as VERCEL_JA4_DIGEST,Yc as VERCEL_LOG_TYPE,Fc as VERCEL_PATH,Hc as VERCEL_PROJECT_ID,Wc as VERCEL_PROJECT_NAME,Bc as VERCEL_PROXY_CACHE_ID,Kc as VERCEL_PROXY_CLIENT_IP,zc as VERCEL_PROXY_HOST,jc as VERCEL_PROXY_LAMBDA_REGION,Qc as VERCEL_PROXY_METHOD,Xc as VERCEL_PROXY_PATH,Jc as VERCEL_PROXY_PATH_TYPE,Zc as VERCEL_PROXY_PATH_TYPE_VARIANT,$c as VERCEL_PROXY_REFERER,eb as VERCEL_PROXY_REGION,ib as VERCEL_PROXY_RESPONSE_BYTE_SIZE,tb as VERCEL_PROXY_SCHEME,sb as VERCEL_PROXY_STATUS_CODE,rb as VERCEL_PROXY_TIMESTAMP,nb as VERCEL_PROXY_USER_AGENT,ab as VERCEL_PROXY_VERCEL_CACHE,ob as VERCEL_PROXY_VERCEL_ID,lb as VERCEL_PROXY_WAF_ACTION,pb as VERCEL_PROXY_WAF_RULE_ID,cb as VERCEL_REQUEST_ID,bb as VERCEL_SOURCE,gb as VERCEL_STATUS_CODE,a as _HTTP_REQUEST_METHOD,es as _SENTRY_SEGMENT_ID};\n//# sourceMappingURL=attributes.mjs.map\n", + "const DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n", + "import { subscribe } from 'node:diagnostics_channel';\nimport { createContextKey, context, propagation } from '@opentelemetry/api';\nimport { debug, getHttpServerSubscriptions, HTTP_ON_SERVER_REQUEST, getClient, addNonEnumerableProperty } from '@sentry/core';\nexport { recordRequestSession } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\n\nconst HTTP_SERVER_INSTRUMENTED_KEY = createContextKey(\"sentry_http_server_instrumented\");\nconst INTEGRATION_NAME = \"Http.Server\";\nfunction addStartSpanCallback(request, callback) {\n addNonEnumerableProperty(request, \"_startSpanCallback\", new WeakRef(callback));\n}\nconst _httpServerIntegration = ((options = {}) => {\n const _options = {\n sessions: options.sessions ?? true,\n sessionFlushingDelayMS: options.sessionFlushingDelayMS ?? 6e4,\n maxRequestBodySize: options.maxRequestBodySize ?? \"medium\",\n // Server spans are created by `httpServerSpansIntegration` via the\n // `httpServerRequest` client event + `_startSpanCallback`, not by the\n // core subscription helper. Explicitly opt out so the helper does not\n // double-create spans when the client has tracing enabled.\n spans: false,\n // Cast: core uses HttpIncomingMessage; node consumers pass\n // RequestOptions-typed callbacks.\n // The two are structurally compatible for the fields the callback reads\n // (url, method, headers).\n ignoreRequestBody: options.ignoreRequestBody,\n /**\n * Hook called by core's `instrumentServer` to wrap the upstream\n * `emit('request')` call.\n *\n * We use it to extract OTel context from request headers and re-enter\n * the OTel context before the framework sees the request, so subsequent\n * spans (eg from `httpServerSpansIntegration`) attach to the right trace.\n */\n wrapServerEmitRequest(request, response, normalizedRequest, next) {\n const client = getClient();\n if (!client) return next();\n if (context.active().getValue(HTTP_SERVER_INSTRUMENTED_KEY)) {\n return next();\n }\n const ctx = propagation.extract(context.active(), normalizedRequest.headers).setValue(HTTP_SERVER_INSTRUMENTED_KEY, true);\n context.with(ctx, () => {\n client.emit(\"httpServerRequest\", request, response, normalizedRequest);\n const callback = request._startSpanCallback?.deref();\n if (callback) {\n callback(() => {\n next();\n return true;\n });\n } else {\n next();\n }\n });\n }\n };\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n const { [HTTP_ON_SERVER_REQUEST]: onHttpServerRequestStart } = getHttpServerSubscriptions(_options);\n subscribe(HTTP_ON_SERVER_REQUEST, onHttpServerRequestStart);\n },\n afterAllSetup(client) {\n if (DEBUG_BUILD && client.getIntegrationByName(\"Http\")) {\n debug.warn(\n \"It seems that you have manually added `httpServerIntegration` while `httpIntegration` is also present. Make sure to remove `httpServerIntegration` when adding `httpIntegration`.\"\n );\n }\n }\n };\n});\nconst httpServerIntegration = _httpServerIntegration;\n\nexport { addStartSpanCallback, httpServerIntegration };\n//# sourceMappingURL=httpServerIntegration.js.map\n", + "import { subscribe } from 'node:diagnostics_channel';\nimport { context, trace } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, getHttpClientSubscriptions, HTTP_ON_CLIENT_REQUEST, isTracingSuppressed, getRequestOptions, patchHttpModuleClient } from '@sentry/core';\nimport { INSTRUMENTATION_NAME } from './constants.js';\nimport { NODE_VERSION } from '../../nodeVersion.js';\nimport { errorMonitor } from 'node:events';\nimport * as http from 'node:http';\nimport * as https from 'node:https';\n\nconst FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL = NODE_VERSION.major === 22 && NODE_VERSION.minor >= 12 || NODE_VERSION.major === 23 && NODE_VERSION.minor >= 2 || NODE_VERSION.major >= 24;\nclass SentryHttpInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(INSTRUMENTATION_NAME, SDK_VERSION, config);\n }\n /** @inheritdoc */\n init() {\n const { outgoingRequestApplyCustomAttributes: applyCustomAttributesOnSpan, ...options } = this.getConfig();\n const patchOptions = {\n propagateTrace: options.propagateTraceInOutgoingRequests,\n applyCustomAttributesOnSpan,\n ...options,\n spans: options.createSpansForOutgoingRequests && (options.spans ?? true),\n ignoreOutgoingRequests(url, request) {\n return isTracingSuppressed() || !!options.ignoreOutgoingRequests?.(url, getRequestOptions(request));\n },\n outgoingRequestHook(span, request) {\n options.outgoingRequestHook?.(span, request);\n const originalOnce = request.once;\n const newOnce = new Proxy(originalOnce, {\n apply(target, thisArg, args) {\n const [event] = args;\n if (event !== \"response\") {\n return target.apply(thisArg, args);\n }\n const parentContext = context.active();\n const requestContext = trace.setSpan(parentContext, span);\n return context.with(requestContext, () => {\n return target.apply(thisArg, args);\n });\n }\n });\n request.once = newOnce;\n },\n outgoingResponseHook(span, response) {\n options.outgoingResponseHook?.(span, response);\n context.bind(context.active(), response);\n },\n errorMonitor,\n // Pass these in to detect OTel double-wrapping if we're enabling spans\n http,\n https\n };\n const { [HTTP_ON_CLIENT_REQUEST]: onHttpClientRequestCreated } = FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL ? getHttpClientSubscriptions(patchOptions) : {};\n let hasRegisteredHandlers = false;\n const sub = onHttpClientRequestCreated ? (moduleExports) => {\n if (!hasRegisteredHandlers && onHttpClientRequestCreated) {\n hasRegisteredHandlers = true;\n subscribe(HTTP_ON_CLIENT_REQUEST, onHttpClientRequestCreated);\n }\n return moduleExports;\n } : void 0;\n const wrapHttp = sub ?? ((moduleExports) => patchHttpModuleClient(moduleExports, patchOptions));\n const wrapHttps = sub ?? ((moduleExports) => patchHttpModuleClient(moduleExports, patchOptions));\n return [\n new InstrumentationNodeModuleDefinition(\"http\", [\"*\"], wrapHttp),\n new InstrumentationNodeModuleDefinition(\"https\", [\"*\"], wrapHttps)\n ];\n }\n}\n\nexport { SentryHttpInstrumentation };\n//# sourceMappingURL=SentryHttpInstrumentation.js.map\n", + "const INSTRUMENTATION_NAME = \"@sentry/instrumentation-http\";\n\nexport { INSTRUMENTATION_NAME };\n//# sourceMappingURL=constants.js.map\n", + "import { parseSemver } from '@sentry/core';\n\nconst NODE_VERSION = parseSemver(process.versions.node);\nconst NODE_MAJOR = NODE_VERSION.major;\nconst NODE_MINOR = NODE_VERSION.minor;\n\nexport { NODE_MAJOR, NODE_MINOR, NODE_VERSION };\n//# sourceMappingURL=nodeVersion.js.map\n", + "import { InstrumentationBase } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, LRUMap, isTracingSuppressed } from '@sentry/core';\nimport * as diagch from 'diagnostics_channel';\nimport { NODE_MAJOR, NODE_MINOR } from '../../nodeVersion.js';\nimport { addTracePropagationHeadersToFetchRequest, addFetchRequestBreadcrumb, getAbsoluteUrl } from '../../utils/outgoingFetchRequest.js';\n\nclass SentryNodeFetchInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-node-fetch\", SDK_VERSION, config);\n this._channelSubs = [];\n this._propagationDecisionMap = new LRUMap(100);\n this._ignoreOutgoingRequestsMap = /* @__PURE__ */ new WeakMap();\n }\n /** No need to instrument files/modules. */\n init() {\n return void 0;\n }\n /** Disable the instrumentation. */\n disable() {\n super.disable();\n this._channelSubs.forEach((sub) => sub.unsubscribe());\n this._channelSubs = [];\n }\n /** Enable the instrumentation. */\n enable() {\n super.enable();\n this._channelSubs = this._channelSubs || [];\n if (this._channelSubs.length > 0) {\n return;\n }\n this._subscribeToChannel(\"undici:request:create\", this._onRequestCreated.bind(this));\n this._subscribeToChannel(\"undici:request:headers\", this._onResponseHeaders.bind(this));\n }\n /**\n * This method is called when a request is created.\n * You can still mutate the request here before it is sent.\n */\n _onRequestCreated({ request }) {\n const config = this.getConfig();\n const enabled = config.enabled !== false;\n if (!enabled) {\n return;\n }\n const shouldIgnore = this._shouldIgnoreOutgoingRequest(request);\n this._ignoreOutgoingRequestsMap.set(request, shouldIgnore);\n if (shouldIgnore) {\n return;\n }\n if (config.tracePropagation !== false) {\n addTracePropagationHeadersToFetchRequest(request, this._propagationDecisionMap);\n }\n }\n /**\n * This method is called when a response is received.\n */\n _onResponseHeaders({ request, response }) {\n const config = this.getConfig();\n const enabled = config.enabled !== false;\n if (!enabled) {\n return;\n }\n const _breadcrumbs = config.breadcrumbs;\n const breadCrumbsEnabled = typeof _breadcrumbs === \"undefined\" ? true : _breadcrumbs;\n const shouldIgnore = this._ignoreOutgoingRequestsMap.get(request);\n if (breadCrumbsEnabled && !shouldIgnore) {\n addFetchRequestBreadcrumb(request, response);\n }\n }\n /** Subscribe to a diagnostics channel. */\n _subscribeToChannel(diagnosticChannel, onMessage) {\n const useNewSubscribe = NODE_MAJOR > 18 || NODE_MAJOR === 18 && NODE_MINOR >= 19;\n let unsubscribe;\n if (useNewSubscribe) {\n diagch.subscribe?.(diagnosticChannel, onMessage);\n unsubscribe = () => diagch.unsubscribe?.(diagnosticChannel, onMessage);\n } else {\n const channel = diagch.channel(diagnosticChannel);\n channel.subscribe(onMessage);\n unsubscribe = () => channel.unsubscribe(onMessage);\n }\n this._channelSubs.push({\n name: diagnosticChannel,\n unsubscribe\n });\n }\n /**\n * Check if the given outgoing request should be ignored.\n */\n _shouldIgnoreOutgoingRequest(request) {\n if (isTracingSuppressed()) {\n return true;\n }\n const url = getAbsoluteUrl(request.origin, request.path);\n const ignoreOutgoingRequests = this.getConfig().ignoreOutgoingRequests;\n if (typeof ignoreOutgoingRequests !== \"function\" || !url) {\n return false;\n }\n return ignoreOutgoingRequests(url);\n }\n}\n\nexport { SentryNodeFetchInstrumentation };\n//# sourceMappingURL=SentryNodeFetchInstrumentation.js.map\n", + "import { getClient, shouldPropagateTraceForUrl, getTraceData, mergeBaggageHeaders, getBreadcrumbLogLevelFromHttpStatusCode, addBreadcrumb, debug, parseUrl, getSanitizedUrlString } from '@sentry/core';\n\nconst SENTRY_TRACE_HEADER = \"sentry-trace\";\nconst SENTRY_BAGGAGE_HEADER = \"baggage\";\nconst W3C_TRACEPARENT_HEADER = \"traceparent\";\nfunction addTracePropagationHeadersToFetchRequest(request, propagationDecisionMap) {\n const url = getAbsoluteUrl(request.origin, request.path);\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() || {};\n const addedHeaders = shouldPropagateTraceForUrl(url, tracePropagationTargets, propagationDecisionMap) ? getTraceData({ propagateTraceparent }) : void 0;\n if (!addedHeaders) {\n return;\n }\n const { \"sentry-trace\": sentryTrace, baggage, traceparent } = addedHeaders;\n const requestHeaders = Array.isArray(request.headers) ? normalizeUndiciHeaderPairs(request.headers) : stringToArrayHeaders(request.headers);\n _deduplicateArrayHeader(requestHeaders, SENTRY_TRACE_HEADER);\n _deduplicateArrayHeader(requestHeaders, SENTRY_BAGGAGE_HEADER);\n if (propagateTraceparent) {\n _deduplicateArrayHeader(requestHeaders, W3C_TRACEPARENT_HEADER);\n }\n const hasExistingSentryTraceHeader = _findExistingHeaderIndex(requestHeaders, SENTRY_TRACE_HEADER) !== -1;\n if (!hasExistingSentryTraceHeader) {\n if (sentryTrace) {\n requestHeaders.push(SENTRY_TRACE_HEADER, sentryTrace);\n }\n if (traceparent && _findExistingHeaderIndex(requestHeaders, \"traceparent\") === -1) {\n requestHeaders.push(\"traceparent\", traceparent);\n }\n const existingBaggageIndex = _findExistingHeaderIndex(requestHeaders, SENTRY_BAGGAGE_HEADER);\n if (baggage && existingBaggageIndex === -1) {\n requestHeaders.push(SENTRY_BAGGAGE_HEADER, baggage);\n } else if (baggage) {\n const existingBaggageValue = requestHeaders[existingBaggageIndex + 1];\n const merged = mergeBaggageHeaders(existingBaggageValue, baggage);\n if (merged) {\n requestHeaders[existingBaggageIndex + 1] = merged;\n }\n }\n }\n if (Array.isArray(request.headers)) {\n request.headers.splice(0, request.headers.length, ...requestHeaders);\n } else {\n request.headers = arrayToStringHeaders(requestHeaders);\n }\n}\nfunction normalizeUndiciHeaderPairs(headers) {\n const out = [];\n for (let i = 0; i < headers.length; i++) {\n const entry = headers[i];\n if (i % 2 === 0) {\n out.push(typeof entry === \"string\" ? entry : String(entry));\n } else {\n out.push(Array.isArray(entry) ? entry.join(\", \") : entry ?? \"\");\n }\n }\n return out;\n}\nfunction stringToArrayHeaders(requestHeaders) {\n const headersArray = requestHeaders.split(\"\\r\\n\");\n const headers = [];\n for (const header of headersArray) {\n try {\n const colonIndex = header.indexOf(\":\");\n if (colonIndex === -1) {\n continue;\n }\n const key = header.slice(0, colonIndex).trim();\n const value = header.slice(colonIndex + 1).trim();\n if (key) {\n headers.push(key, value);\n }\n } catch {\n debug.warn(`Failed to convert string request header to array header: ${header}`);\n }\n }\n return headers;\n}\nfunction arrayToStringHeaders(headers) {\n const headerPairs = [];\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i];\n const value = headers[i + 1];\n if (!key || value == null) {\n continue;\n }\n headerPairs.push(`${key}: ${value}`);\n }\n if (!headerPairs.length) {\n return \"\";\n }\n return headerPairs.join(\"\\r\\n\").concat(\"\\r\\n\");\n}\nfunction _deduplicateArrayHeader(headers, headerName) {\n let firstIndex = -1;\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i] !== headerName) {\n continue;\n }\n if (firstIndex === -1) {\n firstIndex = i;\n continue;\n }\n const firstHeaderValue = headers[firstIndex + 1];\n if (headerName === SENTRY_BAGGAGE_HEADER && firstHeaderValue) {\n const merged = mergeBaggageHeaders(headers[i + 1], firstHeaderValue);\n if (merged) {\n headers[firstIndex + 1] = merged;\n }\n }\n headers.splice(i, 2);\n i -= 2;\n }\n}\nfunction _findExistingHeaderIndex(headers, name) {\n return headers.findIndex((header, i) => i % 2 === 0 && header === name);\n}\nfunction addFetchRequestBreadcrumb(request, response) {\n const data = getBreadcrumbData(request);\n const statusCode = response.statusCode;\n const level = getBreadcrumbLogLevelFromHttpStatusCode(statusCode);\n addBreadcrumb(\n {\n category: \"http\",\n data: {\n status_code: statusCode,\n ...data\n },\n type: \"http\",\n level\n },\n {\n event: \"response\",\n request,\n response\n }\n );\n}\nfunction getBreadcrumbData(request) {\n try {\n const url = getAbsoluteUrl(request.origin, request.path);\n const parsedUrl = parseUrl(url);\n const data = {\n url: getSanitizedUrlString(parsedUrl),\n \"http.method\": request.method || \"GET\"\n };\n if (parsedUrl.search) {\n data[\"http.query\"] = parsedUrl.search;\n }\n if (parsedUrl.hash) {\n data[\"http.fragment\"] = parsedUrl.hash;\n }\n return data;\n } catch {\n return {};\n }\n}\nfunction getAbsoluteUrl(origin, path = \"/\") {\n try {\n const url = new URL(path, origin);\n return url.toString();\n } catch {\n const url = `${origin}`;\n if (url.endsWith(\"/\") && path.startsWith(\"/\")) {\n return `${url}${path.slice(1)}`;\n }\n if (!url.endsWith(\"/\") && !path.startsWith(\"/\")) {\n return `${url}/${path}`;\n }\n return `${url}${path}`;\n }\n}\n\nexport { addFetchRequestBreadcrumb, addTracePropagationHeadersToFetchRequest, getAbsoluteUrl };\n//# sourceMappingURL=outgoingFetchRequest.js.map\n", + "import * as api from '@opentelemetry/api';\nimport { trace, SpanKind, createContextKey, TraceFlags, propagation, INVALID_TRACEID, context, SpanStatusCode, ROOT_CONTEXT, isSpanContextValid } from '@opentelemetry/api';\nimport { parseUrl, getSanitizedUrlString, SDK_VERSION, derefWeakRef, addNonEnumerableProperty, makeWeakRef, isSentryRequestUrl, getClient, baggageHeaderToDynamicSamplingContext, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, stripUrlQueryAndFragment, spanToJSON, hasSpansEnabled, dynamicSamplingContextToSentryBaggageHeader, LRUMap, debug, shouldPropagateTraceForUrl, parseBaggageHeader, SENTRY_BAGGAGE_KEY_PREFIX, generateSentryTraceHeader, generateTraceparentHeader, getDynamicSamplingContextFromSpan, getCurrentScope, getDynamicSamplingContextFromScope, getIsolationScope, propagationContextFromHeaders, shouldContinueTrace, spanToTraceContext, getTraceContextFromScope, getRootSpan, handleCallbackErrors, generateTraceId, generateSpanId, _INTERNAL_safeMathRandom, SPAN_STATUS_OK, SPAN_STATUS_ERROR, getSpanStatusFromHttpCode, _INTERNAL_safeDateNow, debounce, timedEventsToMeasurements, captureEvent, getCapturedScopesOnSpan, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, convertSpanLinksForEnvelope, getStatusMessage, spanTimeInputToSeconds, hasSpanStreamingEnabled, addChildSpanToSpan, getDefaultIsolationScope, getDefaultCurrentScope, setCapturedScopesOnSpan, logSpanStart, logSpanEnd, SPAN_KIND, safeSetSpanJSONAttributes, spanKindToName, shouldIgnoreSpan, parseSampleRate, sampleSpan, setAsyncContextStrategy } from '@sentry/core';\nimport { URL_FULL, HTTP_URL, HTTP_REQUEST_METHOD, HTTP_METHOD, DB_SYSTEM_NAME, DB_SYSTEM, RPC_SERVICE, MESSAGING_SYSTEM, FAAS_TRIGGER, DB_STATEMENT, HTTP_TARGET, HTTP_ROUTE, HTTP_RESPONSE_STATUS_CODE, HTTP_STATUS_CODE, RPC_GRPC_STATUS_CODE, SERVICE_VERSION, SERVICE_NAME } from '@sentry/conventions/attributes';\nimport { SamplingDecision } from '@opentelemetry/sdk-trace-base';\nimport { W3CBaggagePropagator, isTracingSuppressed as isTracingSuppressed$1, suppressTracing as suppressTracing$1, SDK_INFO } from '@opentelemetry/core';\n\nconst SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE = \"sentry.parentIsRemote\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION = \"sentry.graphql.operation\";\n\nfunction getParentSpanId(span) {\n if (\"parentSpanId\" in span) {\n return span.parentSpanId;\n } else if (\"parentSpanContext\" in span) {\n return span.parentSpanContext?.spanId;\n }\n return void 0;\n}\n\nfunction spanHasAttributes(span) {\n const castSpan = span;\n return !!castSpan.attributes && typeof castSpan.attributes === \"object\";\n}\nfunction spanHasKind(span) {\n const castSpan = span;\n return typeof castSpan.kind === \"number\";\n}\nfunction spanHasStatus(span) {\n const castSpan = span;\n return !!castSpan.status;\n}\nfunction spanHasName(span) {\n const castSpan = span;\n return !!castSpan.name;\n}\nfunction spanHasParentId(span) {\n const castSpan = span;\n return !!getParentSpanId(castSpan);\n}\nfunction spanHasEvents(span) {\n const castSpan = span;\n return Array.isArray(castSpan.events);\n}\n\nfunction getRequestSpanData(span) {\n if (!spanHasAttributes(span)) {\n return {};\n }\n const maybeUrlAttribute = span.attributes[URL_FULL] || span.attributes[HTTP_URL];\n const data = {\n url: maybeUrlAttribute,\n // eslint-disable-next-line typescript/no-deprecated\n \"http.method\": span.attributes[HTTP_REQUEST_METHOD] || span.attributes[HTTP_METHOD]\n };\n if (!data[\"http.method\"] && data.url) {\n data[\"http.method\"] = \"GET\";\n }\n try {\n if (typeof maybeUrlAttribute === \"string\") {\n const url = parseUrl(maybeUrlAttribute);\n data.url = getSanitizedUrlString(url);\n if (url.search) {\n data[\"http.query\"] = url.search;\n }\n if (url.hash) {\n data[\"http.fragment\"] = url.hash;\n }\n }\n } catch {\n }\n return data;\n}\n\nfunction wrapClientClass(ClientClass) {\n class OpenTelemetryClient extends ClientClass {\n constructor(...args) {\n super(...args);\n }\n /** Get the OTEL tracer. */\n get tracer() {\n if (this._tracer) {\n return this._tracer;\n }\n const name = \"@sentry/opentelemetry\";\n const version = SDK_VERSION;\n const tracer = trace.getTracer(name, version);\n this._tracer = tracer;\n return tracer;\n }\n /**\n * @inheritDoc\n */\n async flush(timeout) {\n const provider = this.traceProvider;\n await provider?.forceFlush();\n return super.flush(timeout);\n }\n }\n return OpenTelemetryClient;\n}\n\nfunction getSpanKind(span) {\n if (spanHasKind(span)) {\n return span.kind;\n }\n return SpanKind.INTERNAL;\n}\n\nconst SENTRY_TRACE_HEADER = \"sentry-trace\";\nconst SENTRY_BAGGAGE_HEADER = \"baggage\";\nconst SENTRY_TRACE_STATE_DSC = \"sentry.dsc\";\nconst SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING = \"sentry.sampled_not_recording\";\nconst SENTRY_TRACE_STATE_URL = \"sentry.url\";\nconst SENTRY_TRACE_STATE_SAMPLE_RAND = \"sentry.sample_rand\";\nconst SENTRY_TRACE_STATE_SAMPLE_RATE = \"sentry.sample_rate\";\nconst SENTRY_TRACE_STATE_CHILD_IGNORED = \"sentry.ignored\";\nconst SENTRY_TRACE_STATE_SEGMENT_IGNORED = \"sentry.segment_ignored\";\nconst SENTRY_SCOPES_CONTEXT_KEY = createContextKey(\"sentry_scopes\");\nconst SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY = createContextKey(\"sentry_fork_isolation_scope\");\nconst SENTRY_FORK_SET_SCOPE_CONTEXT_KEY = createContextKey(\"sentry_fork_set_scope\");\nconst SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY = createContextKey(\"sentry_fork_set_isolation_scope\");\n\nconst SCOPE_CONTEXT_FIELD = \"_scopeContext\";\nfunction getScopesFromContext(context) {\n return context.getValue(SENTRY_SCOPES_CONTEXT_KEY);\n}\nfunction setScopesOnContext(context, scopes) {\n return context.setValue(SENTRY_SCOPES_CONTEXT_KEY, scopes);\n}\nfunction setContextOnScope(scope, context) {\n addNonEnumerableProperty(scope, SCOPE_CONTEXT_FIELD, makeWeakRef(context));\n}\nfunction getContextFromScope(scope) {\n return derefWeakRef(scope[SCOPE_CONTEXT_FIELD]);\n}\n\nfunction isSentryRequestSpan(span) {\n if (!spanHasAttributes(span)) {\n return false;\n }\n const { attributes } = span;\n const httpUrl = attributes[HTTP_URL] || attributes[URL_FULL];\n if (!httpUrl) {\n return false;\n }\n return isSentryRequestUrl(httpUrl.toString(), getClient());\n}\n\nfunction getSamplingDecision(spanContext) {\n const { traceFlags, traceState } = spanContext;\n const sampledNotRecording = traceState ? traceState.get(SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING) === \"1\" : false;\n if (traceFlags === TraceFlags.SAMPLED) {\n return true;\n }\n if (sampledNotRecording) {\n return false;\n }\n const dscString = traceState ? traceState.get(SENTRY_TRACE_STATE_DSC) : void 0;\n const dsc = dscString ? baggageHeaderToDynamicSamplingContext(dscString) : void 0;\n if (dsc?.sampled === \"true\") {\n return true;\n }\n if (dsc?.sampled === \"false\") {\n return false;\n }\n return void 0;\n}\n\nfunction inferSpanData(spanName, attributes, kind) {\n const httpMethod = attributes[HTTP_REQUEST_METHOD] || attributes[HTTP_METHOD];\n if (httpMethod) {\n return descriptionForHttpMethod({ attributes, name: spanName, kind }, httpMethod);\n }\n const dbSystem = attributes[DB_SYSTEM_NAME] || attributes[DB_SYSTEM];\n const opIsCache = typeof attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] === \"string\" && attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP].startsWith(\"cache.\");\n if (dbSystem && !opIsCache) {\n return descriptionForDbSystem({ attributes, name: spanName });\n }\n const customSourceOrRoute = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === \"custom\" ? \"custom\" : \"route\";\n const rpcService = attributes[RPC_SERVICE];\n if (rpcService) {\n return {\n ...getUserUpdatedNameAndSource(spanName, attributes, \"route\"),\n op: \"rpc\"\n };\n }\n const messagingSystem = attributes[MESSAGING_SYSTEM];\n if (messagingSystem) {\n return {\n ...getUserUpdatedNameAndSource(spanName, attributes, customSourceOrRoute),\n op: \"message\"\n };\n }\n const faasTrigger = attributes[FAAS_TRIGGER];\n if (faasTrigger) {\n return {\n ...getUserUpdatedNameAndSource(spanName, attributes, customSourceOrRoute),\n op: faasTrigger.toString()\n };\n }\n return { op: void 0, description: spanName, source: \"custom\" };\n}\nfunction parseSpanDescription(span) {\n const attributes = spanHasAttributes(span) ? span.attributes : {};\n const name = spanHasName(span) ? span.name : \"\";\n const kind = getSpanKind(span);\n return inferSpanData(name, attributes, kind);\n}\nfunction descriptionForDbSystem({ attributes, name }) {\n const userDefinedName = attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n if (typeof userDefinedName === \"string\") {\n return {\n op: \"db\",\n description: userDefinedName,\n source: attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] || \"custom\"\n };\n }\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === \"custom\") {\n return { op: \"db\", description: name, source: \"custom\" };\n }\n const statement = attributes[DB_STATEMENT];\n const description = statement ? statement.toString() : name;\n return { op: \"db\", description, source: \"task\" };\n}\nfunction descriptionForHttpMethod({ name, kind, attributes }, httpMethod) {\n const opParts = [\"http\"];\n switch (kind) {\n case SpanKind.CLIENT:\n opParts.push(\"client\");\n break;\n case SpanKind.SERVER:\n opParts.push(\"server\");\n break;\n }\n if (attributes[\"sentry.http.prefetch\"]) {\n opParts.push(\"prefetch\");\n }\n const { urlPath, url, query, fragment, hasRoute } = getSanitizedUrl(attributes, kind);\n if (!urlPath) {\n return { ...getUserUpdatedNameAndSource(name, attributes), op: opParts.join(\".\") };\n }\n const graphqlOperationsAttribute = attributes[SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION];\n const baseDescription = `${httpMethod} ${urlPath}`;\n const inferredDescription = graphqlOperationsAttribute ? `${baseDescription} (${getGraphqlOperationNamesFromAttribute(graphqlOperationsAttribute)})` : baseDescription;\n const inferredSource = hasRoute || urlPath === \"/\" ? \"route\" : \"url\";\n const data = {};\n if (url) {\n data.url = url;\n }\n if (query) {\n data[\"http.query\"] = query.slice(1);\n }\n if (fragment) {\n data[\"http.fragment\"] = fragment.slice(1);\n }\n const isClientOrServerKind = kind === SpanKind.CLIENT || kind === SpanKind.SERVER;\n const origin = attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] || \"manual\";\n const isManualSpan = !`${origin}`.startsWith(\"auto\");\n const alreadyHasCustomSource = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === \"custom\";\n const customSpanName = attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n const useInferredDescription = !alreadyHasCustomSource && customSpanName == null && (isClientOrServerKind || !isManualSpan);\n const { description, source } = useInferredDescription ? { description: inferredDescription, source: inferredSource } : getUserUpdatedNameAndSource(name, attributes);\n return {\n op: opParts.join(\".\"),\n description,\n source,\n data\n };\n}\nfunction getGraphqlOperationNamesFromAttribute(attr) {\n if (Array.isArray(attr)) {\n const sorted = attr.slice().sort();\n if (sorted.length <= 5) {\n return sorted.join(\", \");\n } else {\n return `${sorted.slice(0, 5).join(\", \")}, +${sorted.length - 5}`;\n }\n }\n return `${attr}`;\n}\nfunction getSanitizedUrl(attributes, kind) {\n const httpTarget = attributes[HTTP_TARGET];\n const httpUrl = attributes[HTTP_URL] || attributes[URL_FULL];\n const httpRoute = attributes[HTTP_ROUTE];\n const parsedUrl = typeof httpUrl === \"string\" ? parseUrl(httpUrl) : void 0;\n const url = parsedUrl ? getSanitizedUrlString(parsedUrl) : void 0;\n const query = parsedUrl?.search || void 0;\n const fragment = parsedUrl?.hash || void 0;\n if (typeof httpRoute === \"string\") {\n return { urlPath: httpRoute, url, query, fragment, hasRoute: true };\n }\n if (kind === SpanKind.SERVER && typeof httpTarget === \"string\") {\n return { urlPath: stripUrlQueryAndFragment(httpTarget), url, query, fragment, hasRoute: false };\n }\n if (parsedUrl) {\n return { urlPath: url, url, query, fragment, hasRoute: false };\n }\n if (typeof httpTarget === \"string\") {\n return { urlPath: stripUrlQueryAndFragment(httpTarget), url, query, fragment, hasRoute: false };\n }\n return { urlPath: void 0, url, query, fragment, hasRoute: false };\n}\nfunction getUserUpdatedNameAndSource(originalName, attributes, fallbackSource = \"custom\") {\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] || fallbackSource;\n const description = attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n if (description && typeof description === \"string\") {\n return {\n description,\n source\n };\n }\n return { description: originalName, source };\n}\n\nfunction enhanceDscWithOpenTelemetryRootSpanName(client) {\n client.on(\"createDsc\", (dsc, rootSpan) => {\n if (!rootSpan) {\n return;\n }\n const jsonSpan = spanToJSON(rootSpan);\n const attributes = jsonSpan.data;\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n const { description } = spanHasName(rootSpan) ? parseSpanDescription(rootSpan) : { description: void 0 };\n if (source !== \"url\" && description) {\n dsc.transaction = description;\n }\n if (hasSpansEnabled()) {\n const sampled = getSamplingDecision(rootSpan.spanContext());\n dsc.sampled = sampled == void 0 ? void 0 : String(sampled);\n }\n });\n}\n\nfunction getActiveSpan() {\n return trace.getActiveSpan();\n}\n\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nclass TraceState {\n constructor() {\n this._internalState = /* @__PURE__ */ new Map();\n }\n /** @inheritDoc */\n set(key, value) {\n const next = this._clone();\n if (next._internalState.has(key)) {\n next._internalState.delete(key);\n }\n next._internalState.set(key, value);\n return next;\n }\n /** @inheritDoc */\n unset(key) {\n const next = this._clone();\n next._internalState.delete(key);\n return next;\n }\n /** @inheritDoc */\n get(key) {\n return this._internalState.get(key);\n }\n /** @inheritDoc */\n serialize() {\n return Array.from(this._internalState.keys()).reverse().map((key) => `${key}=${this._internalState.get(key)}`).join(\",\");\n }\n _clone() {\n const next = new TraceState();\n next._internalState = new Map(this._internalState);\n return next;\n }\n}\n\nfunction makeTraceState({\n dsc,\n sampled\n}) {\n const dscString = dsc ? dynamicSamplingContextToSentryBaggageHeader(dsc) : void 0;\n const traceStateBase = new TraceState();\n const traceStateWithDsc = dscString ? traceStateBase.set(SENTRY_TRACE_STATE_DSC, dscString) : traceStateBase;\n return sampled === false ? traceStateWithDsc.set(SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING, \"1\") : traceStateWithDsc;\n}\n\nconst setupElements = /* @__PURE__ */ new Set();\nfunction openTelemetrySetupCheck() {\n return Array.from(setupElements);\n}\nfunction setIsSetup(element) {\n setupElements.add(element);\n}\n\nclass SentryPropagator extends W3CBaggagePropagator {\n constructor() {\n super();\n setIsSetup(\"SentryPropagator\");\n this._urlMatchesTargetsMap = new LRUMap(100);\n }\n /**\n * @inheritDoc\n */\n inject(context2, carrier, setter) {\n if (isTracingSuppressed$1(context2)) {\n DEBUG_BUILD && debug.log(\"[Tracing] Not injecting trace data for url because tracing is suppressed.\");\n return;\n }\n const activeSpan = trace.getSpan(context2);\n const url = activeSpan && getCurrentURL(activeSpan);\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() || {};\n if (!shouldPropagateTraceForUrl(url, tracePropagationTargets, this._urlMatchesTargetsMap)) {\n DEBUG_BUILD && debug.log(\"[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:\", url);\n return;\n }\n const existingBaggageHeader = getExistingBaggage(carrier);\n const existingSentryTraceHeader = getExistingSentryTrace(carrier);\n let baggage = propagation.getBaggage(context2) || propagation.createBaggage({});\n const { dynamicSamplingContext, traceId, spanId, sampled } = getInjectionData(context2);\n if (existingBaggageHeader) {\n const baggageEntries = parseBaggageHeader(existingBaggageHeader);\n if (baggageEntries) {\n Object.entries(baggageEntries).forEach(([key, value]) => {\n if (!existingSentryTraceHeader && key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n return;\n }\n baggage = baggage.setEntry(key, { value });\n });\n }\n }\n if (!existingSentryTraceHeader && dynamicSamplingContext) {\n baggage = Object.entries(dynamicSamplingContext).reduce((b, [dscKey, dscValue]) => {\n if (dscValue) {\n return b.setEntry(`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`, { value: dscValue });\n }\n return b;\n }, baggage);\n }\n if (!existingSentryTraceHeader && traceId && traceId !== INVALID_TRACEID) {\n setter.set(carrier, SENTRY_TRACE_HEADER, generateSentryTraceHeader(traceId, spanId, sampled));\n if (propagateTraceparent) {\n setter.set(carrier, \"traceparent\", generateTraceparentHeader(traceId, spanId, sampled));\n }\n }\n super.inject(propagation.setBaggage(context2, baggage), carrier, setter);\n }\n /**\n * @inheritDoc\n */\n extract(context2, carrier, getter) {\n const maybeSentryTraceHeader = getter.get(carrier, SENTRY_TRACE_HEADER);\n const baggage = getter.get(carrier, SENTRY_BAGGAGE_HEADER);\n const sentryTrace = maybeSentryTraceHeader ? Array.isArray(maybeSentryTraceHeader) ? maybeSentryTraceHeader[0] : maybeSentryTraceHeader : void 0;\n return ensureScopesOnContext(getContextWithRemoteActiveSpan(context2, { sentryTrace, baggage }));\n }\n /**\n * @inheritDoc\n */\n fields() {\n return [SENTRY_TRACE_HEADER, SENTRY_BAGGAGE_HEADER, \"traceparent\"];\n }\n}\nfunction getInjectionData(context2, options = {}) {\n const span = trace.getSpan(context2);\n if (span?.spanContext().isRemote) {\n const spanContext = span.spanContext();\n const dynamicSamplingContext2 = getDynamicSamplingContextFromSpan(span);\n return {\n dynamicSamplingContext: dynamicSamplingContext2,\n traceId: spanContext.traceId,\n spanId: void 0,\n sampled: getSamplingDecision(spanContext)\n // TODO: Do we need to change something here?\n };\n }\n if (span) {\n const spanContext = span.spanContext();\n const dynamicSamplingContext2 = getDynamicSamplingContextFromSpan(span);\n return {\n dynamicSamplingContext: dynamicSamplingContext2,\n traceId: spanContext.traceId,\n spanId: spanContext.spanId,\n sampled: getSamplingDecision(spanContext)\n // TODO: Do we need to change something here?\n };\n }\n const scope = options.scope || getScopesFromContext(context2)?.scope || getCurrentScope();\n const client = options.client || getClient();\n const propagationContext = scope.getPropagationContext();\n const dynamicSamplingContext = client ? getDynamicSamplingContextFromScope(client, scope) : void 0;\n return {\n dynamicSamplingContext,\n traceId: propagationContext.traceId,\n spanId: propagationContext.propagationSpanId,\n sampled: propagationContext.sampled\n };\n}\nfunction getContextWithRemoteActiveSpan(ctx, { sentryTrace, baggage }) {\n const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n const { traceId, parentSpanId, sampled, dsc } = propagationContext;\n const client = getClient();\n const incomingDsc = baggageHeaderToDynamicSamplingContext(baggage);\n if (!parentSpanId || client && !shouldContinueTrace(client, incomingDsc?.org_id)) {\n return ctx;\n }\n const spanContext = generateRemoteSpanContext({\n traceId,\n spanId: parentSpanId,\n sampled,\n dsc\n });\n return trace.setSpanContext(ctx, spanContext);\n}\nfunction continueTraceAsRemoteSpan(ctx, options, callback) {\n const ctxWithSpanContext = ensureScopesOnContext(getContextWithRemoteActiveSpan(ctx, options));\n return context.with(ctxWithSpanContext, callback);\n}\nfunction ensureScopesOnContext(ctx) {\n const scopes = getScopesFromContext(ctx);\n const newScopes = {\n // If we have no scope here, this is most likely either the root context or a context manually derived from it\n // In this case, we want to fork the current scope, to ensure we do not pollute the root scope\n scope: scopes ? scopes.scope : getCurrentScope().clone(),\n isolationScope: scopes ? scopes.isolationScope : getIsolationScope()\n };\n return setScopesOnContext(ctx, newScopes);\n}\nfunction getExistingBaggage(carrier) {\n try {\n const baggage = carrier[SENTRY_BAGGAGE_HEADER];\n return Array.isArray(baggage) ? baggage.join(\",\") : baggage;\n } catch {\n return void 0;\n }\n}\nfunction getExistingSentryTrace(carrier) {\n try {\n return carrier[SENTRY_TRACE_HEADER];\n } catch {\n return void 0;\n }\n}\nfunction getCurrentURL(span) {\n const spanData = spanToJSON(span).data;\n const urlAttribute = spanData[HTTP_URL] || spanData[URL_FULL];\n if (typeof urlAttribute === \"string\") {\n return urlAttribute;\n }\n const urlTraceState = span.spanContext().traceState?.get(SENTRY_TRACE_STATE_URL);\n if (urlTraceState) {\n return urlTraceState;\n }\n return void 0;\n}\nfunction generateRemoteSpanContext({\n spanId,\n traceId,\n sampled,\n dsc\n}) {\n const traceState = makeTraceState({\n dsc,\n sampled\n });\n const spanContext = {\n traceId,\n spanId,\n isRemote: true,\n traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE,\n traceState\n };\n return spanContext;\n}\n\nfunction _startSpan(options, callback, autoEnd) {\n const tracer = getTracer();\n const { name, parentSpan: customParentSpan } = options;\n const wrapper = getActiveSpanWrapper(customParentSpan);\n return wrapper(() => {\n const activeCtx = getContext(options.scope, options.forceTransaction);\n const missingRequiredParent = options.onlyIfParent && !trace.getSpan(activeCtx);\n const ctx = missingRequiredParent ? suppressTracing$1(activeCtx) : activeCtx;\n if (missingRequiredParent) {\n getClient()?.recordDroppedEvent(\"no_parent_span\", \"span\");\n }\n const spanOptions = getSpanOptions(options);\n if (!hasSpansEnabled()) {\n const suppressedCtx = isTracingSuppressed$1(ctx) ? ctx : suppressTracing$1(ctx);\n return context.with(suppressedCtx, () => {\n return tracer.startActiveSpan(name, spanOptions, suppressedCtx, (span) => {\n patchSpanEnd(span);\n return context.with(activeCtx, () => {\n return handleCallbackErrors(\n () => callback(span),\n () => {\n if (spanToJSON(span).status === void 0) {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n },\n autoEnd ? () => span.end() : void 0\n );\n });\n });\n });\n }\n return tracer.startActiveSpan(name, spanOptions, ctx, (span) => {\n patchSpanEnd(span);\n return handleCallbackErrors(\n () => callback(span),\n () => {\n if (spanToJSON(span).status === void 0) {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n },\n autoEnd ? () => span.end() : void 0\n );\n });\n });\n}\nfunction startSpan(options, callback) {\n return _startSpan(options, callback, true);\n}\nfunction startSpanManual(options, callback) {\n return _startSpan(options, (span) => callback(span, () => span.end()), false);\n}\nfunction startInactiveSpan(options) {\n const tracer = getTracer();\n const { name, parentSpan: customParentSpan } = options;\n const wrapper = getActiveSpanWrapper(customParentSpan);\n return wrapper(() => {\n const activeCtx = getContext(options.scope, options.forceTransaction);\n const missingRequiredParent = options.onlyIfParent && !trace.getSpan(activeCtx);\n let ctx = missingRequiredParent ? suppressTracing$1(activeCtx) : activeCtx;\n if (missingRequiredParent) {\n getClient()?.recordDroppedEvent(\"no_parent_span\", \"span\");\n }\n const spanOptions = getSpanOptions(options);\n if (!hasSpansEnabled()) {\n ctx = isTracingSuppressed$1(ctx) ? ctx : suppressTracing$1(ctx);\n }\n const span = tracer.startSpan(name, spanOptions, ctx);\n patchSpanEnd(span);\n return span;\n });\n}\nfunction withActiveSpan(span, callback) {\n const newContextWithActiveSpan = span ? trace.setSpan(context.active(), span) : trace.deleteSpan(context.active());\n return context.with(newContextWithActiveSpan, () => callback(getCurrentScope()));\n}\nfunction getTracer() {\n const client = getClient();\n return client?.tracer || trace.getTracer(\"@sentry/opentelemetry\", SDK_VERSION);\n}\nfunction getSpanOptions(options) {\n const { startTime, attributes, kind, op, links } = options;\n const fixedStartTime = typeof startTime === \"number\" ? ensureTimestampInMilliseconds(startTime) : startTime;\n return {\n attributes: op ? {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n ...attributes\n } : attributes,\n kind,\n links,\n startTime: fixedStartTime\n };\n}\nfunction ensureTimestampInMilliseconds(timestamp) {\n const isMs = timestamp < 9999999999;\n return isMs ? timestamp * 1e3 : timestamp;\n}\nfunction patchSpanEnd(span) {\n const originalEnd = span.end.bind(span);\n span.end = (endTime) => {\n return originalEnd(typeof endTime === \"number\" ? ensureTimestampInMilliseconds(endTime) : endTime);\n };\n}\nfunction getContext(scope, forceTransaction) {\n const ctx = getContextForScope(scope);\n const parentSpan = trace.getSpan(ctx);\n if (!parentSpan) {\n return ctx;\n }\n if (!forceTransaction) {\n return ctx;\n }\n const ctxWithoutSpan = trace.deleteSpan(ctx);\n const { spanId, traceId } = parentSpan.spanContext();\n const sampled = getSamplingDecision(parentSpan.spanContext());\n const rootSpan = getRootSpan(parentSpan);\n const dsc = getDynamicSamplingContextFromSpan(rootSpan);\n const traceState = makeTraceState({\n dsc,\n sampled\n });\n const spanOptions = {\n traceId,\n spanId,\n isRemote: true,\n traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE,\n traceState\n };\n const ctxWithSpanContext = trace.setSpanContext(ctxWithoutSpan, spanOptions);\n return ctxWithSpanContext;\n}\nfunction getContextForScope(scope) {\n if (scope) {\n const ctx = getContextFromScope(scope);\n if (ctx) {\n return ctx;\n }\n }\n return context.active();\n}\nfunction continueTrace(options, callback) {\n return continueTraceAsRemoteSpan(context.active(), options, callback);\n}\nfunction startNewTrace(callback) {\n const traceId = generateTraceId();\n const spanId = generateSpanId();\n const spanContext = {\n traceId,\n spanId,\n isRemote: true,\n traceFlags: TraceFlags.NONE\n };\n const ctxWithTrace = trace.setSpanContext(context.active(), spanContext);\n return context.with(ctxWithTrace, () => {\n getCurrentScope().setPropagationContext({\n traceId,\n sampleRand: _INTERNAL_safeMathRandom()\n });\n return callback();\n });\n}\nfunction getTraceContextForScope(client, scope) {\n const ctx = getContextFromScope(scope);\n const span = ctx && trace.getSpan(ctx);\n const traceContext = span ? spanToTraceContext(span) : getTraceContextFromScope(scope);\n const dynamicSamplingContext = span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromScope(client, scope);\n return [dynamicSamplingContext, traceContext];\n}\nfunction getActiveSpanWrapper(parentSpan) {\n return parentSpan !== void 0 ? (callback) => {\n return withActiveSpan(parentSpan, callback);\n } : (callback) => callback();\n}\n\nfunction suppressTracing(callback) {\n const ctx = suppressTracing$1(context.active());\n return context.with(ctx, callback);\n}\nfunction isTracingSuppressed(scope) {\n const ctx = scope ? getContextFromScope(scope) : context.active();\n return ctx ? isTracingSuppressed$1(ctx) : false;\n}\n\nfunction setupEventContextTrace(client) {\n client.on(\"preprocessEvent\", (event) => {\n const span = getActiveSpan();\n if (!span || event.type === \"transaction\") {\n return;\n }\n event.contexts = {\n trace: spanToTraceContext(span),\n ...event.contexts\n };\n const rootSpan = getRootSpan(span);\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(rootSpan),\n ...event.sdkProcessingMetadata\n };\n return event;\n });\n}\n\nfunction buildContextWithSentryScopes(context, activeContext) {\n const span = trace.getSpan(context);\n let effectiveContext;\n if (span?.spanContext().traceState?.get(SENTRY_TRACE_STATE_CHILD_IGNORED) === \"1\") {\n const contextWithoutSpan = trace.deleteSpan(context);\n const parentSpan = trace.getSpan(activeContext);\n effectiveContext = parentSpan ? trace.setSpan(contextWithoutSpan, parentSpan) : contextWithoutSpan;\n } else {\n effectiveContext = context;\n }\n const currentScopes = getScopesFromContext(effectiveContext);\n const currentScope = currentScopes?.scope || getCurrentScope();\n const currentIsolationScope = currentScopes?.isolationScope || getIsolationScope();\n const shouldForkIsolationScope = effectiveContext.getValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY) === true;\n const scope = effectiveContext.getValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY);\n const isolationScope = effectiveContext.getValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY);\n const newCurrentScope = scope || currentScope.clone();\n const newIsolationScope = isolationScope || (shouldForkIsolationScope ? currentIsolationScope.clone() : currentIsolationScope);\n const scopes = { scope: newCurrentScope, isolationScope: newIsolationScope };\n const ctx1 = setScopesOnContext(effectiveContext, scopes);\n const ctx2 = ctx1.deleteValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY).deleteValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY).deleteValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY);\n setContextOnScope(newCurrentScope, ctx2);\n return ctx2;\n}\n\nfunction wrapContextManagerClass(ContextManagerClass) {\n class SentryContextManager extends ContextManagerClass {\n constructor(...args) {\n super(...args);\n setIsSetup(\"SentryContextManager\");\n }\n /**\n * Overwrite with() of the original AsyncLocalStorageContextManager\n * to ensure we also create new scopes per context.\n */\n with(context, fn, thisArg, ...args) {\n const ctx2 = buildContextWithSentryScopes(context, this.active());\n return super.with(ctx2, fn, thisArg, ...args);\n }\n /**\n * Gets underlying AsyncLocalStorage and symbol to allow lookup of scope.\n */\n getAsyncLocalStorageLookup() {\n return {\n // @ts-expect-error This is on the base class, but not part of the interface\n asyncLocalStorage: this._asyncLocalStorage,\n contextSymbol: SENTRY_SCOPES_CONTEXT_KEY\n };\n }\n }\n return SentryContextManager;\n}\n\nfunction groupSpansWithParents(spans) {\n const nodeMap = /* @__PURE__ */ new Map();\n for (const span of spans) {\n createOrUpdateSpanNodeAndRefs(nodeMap, span);\n }\n return Array.from(nodeMap, function([_id, spanNode]) {\n return spanNode;\n });\n}\nfunction getLocalParentId(span) {\n const parentIsRemote = span.attributes[SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE] === true;\n return !parentIsRemote ? getParentSpanId(span) : void 0;\n}\nfunction createOrUpdateSpanNodeAndRefs(nodeMap, span) {\n const id = span.spanContext().spanId;\n const parentId = getLocalParentId(span);\n if (!parentId) {\n createOrUpdateNode(nodeMap, { id, span, children: [] });\n return;\n }\n const parentNode = createOrGetParentNode(nodeMap, parentId);\n const node = createOrUpdateNode(nodeMap, { id, span, parentNode, children: [] });\n parentNode.children.push(node);\n}\nfunction createOrGetParentNode(nodeMap, id) {\n const existing = nodeMap.get(id);\n if (existing) {\n return existing;\n }\n return createOrUpdateNode(nodeMap, { id, children: [] });\n}\nfunction createOrUpdateNode(nodeMap, spanNode) {\n const existing = nodeMap.get(spanNode.id);\n if (existing?.span) {\n return existing;\n }\n if (existing && !existing.span) {\n existing.span = spanNode.span;\n existing.parentNode = spanNode.parentNode;\n return existing;\n }\n nodeMap.set(spanNode.id, spanNode);\n return spanNode;\n}\n\nconst canonicalGrpcErrorCodesMap = {\n \"1\": \"cancelled\",\n \"2\": \"unknown_error\",\n \"3\": \"invalid_argument\",\n \"4\": \"deadline_exceeded\",\n \"5\": \"not_found\",\n \"6\": \"already_exists\",\n \"7\": \"permission_denied\",\n \"8\": \"resource_exhausted\",\n \"9\": \"failed_precondition\",\n \"10\": \"aborted\",\n \"11\": \"out_of_range\",\n \"12\": \"unimplemented\",\n \"13\": \"internal_error\",\n \"14\": \"unavailable\",\n \"15\": \"data_loss\",\n \"16\": \"unauthenticated\"\n};\nconst isStatusErrorMessageValid = (message) => {\n return Object.values(canonicalGrpcErrorCodesMap).includes(message);\n};\nfunction mapStatus(span) {\n const attributes = spanHasAttributes(span) ? span.attributes : {};\n const status = spanHasStatus(span) ? span.status : void 0;\n if (status) {\n if (status.code === SpanStatusCode.OK) {\n return { code: SPAN_STATUS_OK };\n } else if (status.code === SpanStatusCode.ERROR) {\n if (typeof status.message === \"undefined\") {\n const inferredStatus2 = inferStatusFromAttributes(attributes);\n if (inferredStatus2) {\n return inferredStatus2;\n }\n }\n if (status.message && isStatusErrorMessageValid(status.message)) {\n return { code: SPAN_STATUS_ERROR, message: status.message };\n } else {\n return { code: SPAN_STATUS_ERROR, message: \"internal_error\" };\n }\n }\n }\n const inferredStatus = inferStatusFromAttributes(attributes);\n if (inferredStatus) {\n return inferredStatus;\n }\n if (status?.code === SpanStatusCode.UNSET) {\n return { code: SPAN_STATUS_OK };\n } else {\n return { code: SPAN_STATUS_ERROR, message: \"unknown_error\" };\n }\n}\nfunction inferStatusFromAttributes(attributes) {\n const httpCodeAttribute = attributes[HTTP_RESPONSE_STATUS_CODE] || attributes[HTTP_STATUS_CODE];\n const grpcCodeAttribute = attributes[RPC_GRPC_STATUS_CODE];\n const numberHttpCode = typeof httpCodeAttribute === \"number\" ? httpCodeAttribute : typeof httpCodeAttribute === \"string\" ? parseInt(httpCodeAttribute) : void 0;\n if (typeof numberHttpCode === \"number\") {\n return getSpanStatusFromHttpCode(numberHttpCode);\n }\n if (typeof grpcCodeAttribute === \"string\") {\n return { code: SPAN_STATUS_ERROR, message: canonicalGrpcErrorCodesMap[grpcCodeAttribute] || \"unknown_error\" };\n }\n return void 0;\n}\n\nconst MAX_SPAN_COUNT = 1e3;\nconst DEFAULT_TIMEOUT = 300;\nconst SENT_SPANS_MAX_SIZE = 1e4;\nclass SentrySpanExporter {\n constructor(options) {\n this._finishedSpanBucketSize = options?.timeout || DEFAULT_TIMEOUT;\n this._finishedSpanBuckets = new Array(this._finishedSpanBucketSize).fill(void 0);\n this._lastCleanupTimestampInS = Math.floor(_INTERNAL_safeDateNow() / 1e3);\n this._spansToBucketEntry = /* @__PURE__ */ new WeakMap();\n this._sentSpans = new LRUMap(SENT_SPANS_MAX_SIZE);\n this._debouncedFlush = debounce(this.flush.bind(this), 1, { maxWait: 100 });\n }\n /**\n * Export a single span.\n * This is called by the span processor whenever a span is ended.\n */\n export(span) {\n const currentTimestampInS = Math.floor(_INTERNAL_safeDateNow() / 1e3);\n if (this._lastCleanupTimestampInS !== currentTimestampInS) {\n let droppedSpanCount = 0;\n this._finishedSpanBuckets.forEach((bucket, i) => {\n if (bucket && bucket.timestampInS <= currentTimestampInS - this._finishedSpanBucketSize) {\n droppedSpanCount += bucket.spans.size;\n this._finishedSpanBuckets[i] = void 0;\n }\n });\n if (droppedSpanCount > 0) {\n DEBUG_BUILD && debug.log(\n `SpanExporter dropped ${droppedSpanCount} spans because they were pending for more than ${this._finishedSpanBucketSize} seconds.`\n );\n }\n this._lastCleanupTimestampInS = currentTimestampInS;\n }\n const currentBucketIndex = currentTimestampInS % this._finishedSpanBucketSize;\n const currentBucket = this._finishedSpanBuckets[currentBucketIndex] || {\n timestampInS: currentTimestampInS,\n spans: /* @__PURE__ */ new Set()\n };\n this._finishedSpanBuckets[currentBucketIndex] = currentBucket;\n currentBucket.spans.add(span);\n this._spansToBucketEntry.set(span, currentBucket);\n const localParentId = getLocalParentId(span);\n if (!localParentId || this._sentSpans.get(localParentId)) {\n this._debouncedFlush();\n }\n }\n /**\n * Try to flush any pending spans immediately.\n * This is called internally by the exporter (via _debouncedFlush),\n * but can also be triggered externally if we force-flush.\n */\n flush() {\n const finishedSpans = this._finishedSpanBuckets.flatMap((bucket) => bucket ? Array.from(bucket.spans) : []);\n const sentSpans = this._maybeSend(finishedSpans);\n const sentSpanCount = sentSpans.size;\n const remainingOpenSpanCount = finishedSpans.length - sentSpanCount;\n DEBUG_BUILD && debug.log(\n `SpanExporter exported ${sentSpanCount} spans, ${remainingOpenSpanCount} spans are waiting for their parent spans to finish`\n );\n for (const span of sentSpans) {\n this._sentSpans.set(span.spanContext().spanId, 1);\n const bucketEntry = this._spansToBucketEntry.get(span);\n if (bucketEntry) {\n bucketEntry.spans.delete(span);\n }\n }\n this._debouncedFlush.cancel();\n }\n /**\n * Clear the exporter.\n * This is called when the span processor is shut down.\n */\n clear() {\n this._finishedSpanBuckets = this._finishedSpanBuckets.fill(void 0);\n this._sentSpans.clear();\n this._debouncedFlush.cancel();\n }\n /**\n * Send the given spans, but only if they are part of a finished transaction.\n *\n * Returns the sent spans.\n * Spans remain unsent when their parent span is not yet finished.\n * This will happen regularly, as child spans are generally finished before their parents.\n * But it _could_ also happen because, for whatever reason, a parent span was lost.\n * In this case, we'll eventually need to clean this up.\n */\n _maybeSend(spans) {\n const grouped = groupSpansWithParents(spans);\n const sentSpans = /* @__PURE__ */ new Set();\n const rootNodes = this._getCompletedRootNodes(grouped);\n for (const root of rootNodes) {\n const span = root.span;\n sentSpans.add(span);\n const transactionEvent = createTransactionForOtelSpan(span);\n if (root.parentNode && this._sentSpans.get(root.parentNode.id)) {\n const traceData = transactionEvent.contexts?.trace?.data;\n if (traceData) {\n traceData[\"sentry.parent_span_already_sent\"] = true;\n }\n }\n const spans2 = transactionEvent.spans || [];\n let hasGenAiSpans = false;\n for (const child of root.children) {\n if (createAndFinishSpanForOtelSpan(child, spans2, sentSpans)) {\n hasGenAiSpans = true;\n }\n }\n transactionEvent.spans = spans2.length > MAX_SPAN_COUNT ? spans2.sort((a, b) => a.start_timestamp - b.start_timestamp).slice(0, MAX_SPAN_COUNT) : spans2;\n if (hasGenAiSpans) {\n transactionEvent.sdkProcessingMetadata = {\n ...transactionEvent.sdkProcessingMetadata,\n hasGenAiSpans: true\n };\n }\n const measurements = timedEventsToMeasurements(span.events);\n if (measurements) {\n transactionEvent.measurements = measurements;\n }\n captureEvent(transactionEvent);\n }\n return sentSpans;\n }\n /** Check if a node is a completed root node or a node whose parent has already been sent */\n _nodeIsCompletedRootNodeOrHasSentParent(node) {\n return !!node.span && (!node.parentNode || !!this._sentSpans.get(node.parentNode.id));\n }\n /** Get all completed root nodes from a list of nodes */\n _getCompletedRootNodes(nodes) {\n return nodes.filter((node) => this._nodeIsCompletedRootNodeOrHasSentParent(node));\n }\n}\nfunction parseSpan(span) {\n const attributes = span.attributes;\n const origin = attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN];\n const op = attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP];\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n return { origin, op, source };\n}\nfunction createTransactionForOtelSpan(span) {\n const { op, description, data, origin = \"manual\", source } = getSpanData(span);\n const capturedSpanScopes = getCapturedScopesOnSpan(span);\n const sampleRate = span.attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE];\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: source,\n [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: sampleRate,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: origin,\n ...data,\n ...removeSentryAttributes(span.attributes)\n };\n const { links } = span;\n const { traceId: trace_id, spanId: span_id } = span.spanContext();\n const parent_span_id = getParentSpanId(span);\n const status = mapStatus(span);\n const traceContext = {\n parent_span_id,\n span_id,\n trace_id,\n data: attributes,\n origin,\n op,\n status: getStatusMessage(status),\n // As per protocol, span status is allowed to be undefined\n links: convertSpanLinksForEnvelope(links)\n };\n const statusCode = attributes[HTTP_RESPONSE_STATUS_CODE];\n const responseContext = typeof statusCode === \"number\" ? { response: { status_code: statusCode } } : void 0;\n const transactionEvent = {\n contexts: {\n trace: traceContext,\n otel: {\n resource: span.resource.attributes\n },\n ...responseContext\n },\n spans: [],\n start_timestamp: spanTimeInputToSeconds(span.startTime),\n timestamp: spanTimeInputToSeconds(span.endTime),\n transaction: description,\n type: \"transaction\",\n sdkProcessingMetadata: {\n capturedSpanScope: capturedSpanScopes.scope,\n capturedSpanIsolationScope: capturedSpanScopes.isolationScope,\n sampleRate,\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span)\n },\n ...source && {\n transaction_info: {\n source\n }\n }\n };\n return transactionEvent;\n}\nfunction createAndFinishSpanForOtelSpan(node, spans, sentSpans) {\n const span = node.span;\n if (span) {\n sentSpans.add(span);\n }\n const shouldDrop = !span;\n if (shouldDrop) {\n let hasGenAiSpans2 = false;\n node.children.forEach((child) => {\n if (createAndFinishSpanForOtelSpan(child, spans, sentSpans)) {\n hasGenAiSpans2 = true;\n }\n });\n return hasGenAiSpans2;\n }\n const span_id = span.spanContext().spanId;\n const trace_id = span.spanContext().traceId;\n const parentSpanId = getParentSpanId(span);\n const { attributes, startTime, endTime, links } = span;\n const { op, description, data, origin = \"manual\" } = getSpanData(span);\n const allData = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: origin,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n ...removeSentryAttributes(attributes),\n ...data\n };\n const status = mapStatus(span);\n const spanJSON = {\n span_id,\n trace_id,\n data: allData,\n description,\n parent_span_id: parentSpanId,\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || void 0,\n status: getStatusMessage(status),\n // As per protocol, span status is allowed to be undefined\n op,\n origin,\n measurements: timedEventsToMeasurements(span.events),\n links: convertSpanLinksForEnvelope(links)\n };\n spans.push(spanJSON);\n let hasGenAiSpans = !!op?.startsWith(\"gen_ai.\");\n node.children.forEach((child) => {\n if (createAndFinishSpanForOtelSpan(child, spans, sentSpans)) {\n hasGenAiSpans = true;\n }\n });\n return hasGenAiSpans;\n}\nfunction getSpanData(span) {\n const { op: definedOp, source: definedSource, origin } = parseSpan(span);\n const { op: inferredOp, description, source: inferredSource, data: inferredData } = parseSpanDescription(span);\n const op = definedOp || inferredOp;\n const source = definedSource || inferredSource;\n const data = { ...inferredData, ...getData(span) };\n return {\n op,\n description,\n source,\n origin,\n data\n };\n}\nfunction removeSentryAttributes(data) {\n const cleanedData = { ...data };\n delete cleanedData[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE];\n delete cleanedData[SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE];\n delete cleanedData[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n return cleanedData;\n}\nfunction getData(span) {\n const attributes = span.attributes;\n const data = {};\n if (span.kind !== SpanKind.INTERNAL) {\n data[\"otel.kind\"] = SpanKind[span.kind];\n }\n const maybeHttpStatusCodeAttribute = attributes[HTTP_STATUS_CODE];\n if (maybeHttpStatusCodeAttribute) {\n data[HTTP_RESPONSE_STATUS_CODE] = maybeHttpStatusCodeAttribute;\n }\n const requestData = getRequestSpanData(span);\n if (requestData.url) {\n data.url = requestData.url;\n }\n if (requestData[\"http.query\"]) {\n data[\"http.query\"] = requestData[\"http.query\"].slice(1);\n }\n if (requestData[\"http.fragment\"]) {\n data[\"http.fragment\"] = requestData[\"http.fragment\"].slice(1);\n }\n return data;\n}\n\nclass SentrySpanProcessor {\n constructor(options) {\n this._unsubscribePreprocessSpan = void 0;\n setIsSetup(\"SentrySpanProcessor\");\n this._exporter = new SentrySpanExporter(options);\n this._client = options?.client ?? getClient();\n if (this._client && hasSpanStreamingEnabled(this._client)) {\n this._unsubscribePreprocessSpan = this._client.on(\"preprocessSpan\", backfillStreamedSpanDataFromOtel);\n }\n }\n /**\n * @inheritDoc\n */\n async forceFlush() {\n this._exporter.flush();\n }\n /**\n * @inheritDoc\n */\n async shutdown() {\n this._unsubscribePreprocessSpan?.();\n this._exporter.clear();\n }\n /**\n * @inheritDoc\n */\n onStart(span, parentContext) {\n const parentSpan = trace.getSpan(parentContext);\n let scopes = getScopesFromContext(parentContext);\n if (parentSpan && !parentSpan.spanContext().isRemote) {\n addChildSpanToSpan(parentSpan, span);\n }\n if (parentSpan?.spanContext().isRemote) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE, true);\n }\n if (parentContext === ROOT_CONTEXT) {\n scopes = {\n scope: getDefaultCurrentScope(),\n isolationScope: getDefaultIsolationScope()\n };\n }\n if (scopes) {\n setCapturedScopesOnSpan(span, scopes.scope, scopes.isolationScope);\n }\n logSpanStart(span);\n this._client?.emit(\"spanStart\", span);\n }\n /** @inheritDoc */\n onEnd(span) {\n logSpanEnd(span);\n this._client?.emit(\"spanEnd\", span);\n if (this._client && hasSpanStreamingEnabled(this._client)) {\n this._client.emit(\"afterSpanEnd\", span);\n } else {\n this._exporter.export(span);\n }\n }\n}\nfunction backfillStreamedSpanDataFromOtel(spanJSON, hint) {\n const attributes = spanJSON.attributes;\n if (!attributes) {\n return;\n }\n const kind = hint?.spanKind ?? SPAN_KIND.INTERNAL;\n const { op, description, source, data } = inferSpanData(spanJSON.name, attributes, kind);\n spanJSON.name = description;\n safeSetSpanJSONAttributes(spanJSON, {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: source,\n ...data\n });\n if (kind !== SPAN_KIND.INTERNAL) {\n safeSetSpanJSONAttributes(spanJSON, {\n \"otel.kind\": spanKindToName(kind)\n });\n }\n}\n\nclass SentrySampler {\n constructor(client) {\n this._client = client;\n this._isSpanStreaming = hasSpanStreamingEnabled(client);\n setIsSetup(\"SentrySampler\");\n }\n /** @inheritDoc */\n shouldSample(context, traceId, spanName, spanKind, spanAttributes, _links) {\n const options = this._client.getOptions();\n const { ignoreSpans } = options;\n const parentSpan = getValidSpan(context);\n const parentContext = parentSpan?.spanContext();\n if (!hasSpansEnabled(options)) {\n return wrapSamplingDecision({ decision: void 0, context, spanAttributes });\n }\n const maybeSpanHttpMethod = spanAttributes[HTTP_METHOD] || spanAttributes[HTTP_REQUEST_METHOD];\n if (spanKind === SpanKind.CLIENT && maybeSpanHttpMethod && (!parentSpan || parentContext?.isRemote)) {\n if (!this._isSpanStreaming) {\n this._client.recordDroppedEvent(\"no_parent_span\", \"span\");\n return wrapSamplingDecision({ decision: void 0, context, spanAttributes });\n }\n }\n const parentSampled = parentSpan ? getParentSampled(parentSpan, traceId, spanName) : void 0;\n const isRootSpan = !parentSpan || parentContext?.isRemote;\n if (!isRootSpan) {\n if (this._isSpanStreaming) {\n if (parentSampled) {\n if (ignoreSpans?.length) {\n const { description: inferredChildName, op: childOp } = inferSpanData(spanName, spanAttributes, spanKind);\n if (shouldIgnoreSpan(\n {\n description: inferredChildName,\n op: spanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] ?? childOp,\n attributes: spanAttributes\n },\n ignoreSpans\n )) {\n this._client.recordDroppedEvent(\"ignored\", \"span\");\n return wrapSamplingDecision({\n decision: SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n ignoredChildSpan: true\n });\n }\n }\n }\n if (!parentSampled) {\n const parentSegmentIgnored = parentContext?.traceState?.get(SENTRY_TRACE_STATE_SEGMENT_IGNORED) === \"1\";\n this._client.recordDroppedEvent(parentSegmentIgnored ? \"ignored\" : \"sample_rate\", \"span\");\n }\n }\n return wrapSamplingDecision({\n decision: parentSampled ? SamplingDecision.RECORD_AND_SAMPLED : SamplingDecision.NOT_RECORD,\n context,\n spanAttributes\n });\n }\n const {\n description: inferredSpanName,\n data: inferredAttributes,\n op\n } = inferSpanData(spanName, spanAttributes, spanKind);\n const mergedAttributes = {\n ...inferredAttributes,\n ...spanAttributes\n };\n if (op) {\n mergedAttributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] = op;\n }\n if (this._isSpanStreaming && ignoreSpans?.length && shouldIgnoreSpan(\n {\n description: inferredSpanName,\n op: mergedAttributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] ?? op,\n attributes: mergedAttributes\n },\n ignoreSpans\n )) {\n this._client.recordDroppedEvent(\"ignored\", \"span\");\n return wrapSamplingDecision({\n decision: SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n ignoredSegmentSpan: true\n });\n }\n const mutableSamplingDecision = { decision: true };\n this._client.emit(\n \"beforeSampling\",\n {\n spanAttributes: mergedAttributes,\n spanName: inferredSpanName,\n parentSampled,\n parentContext\n },\n mutableSamplingDecision\n );\n if (!mutableSamplingDecision.decision) {\n return wrapSamplingDecision({ decision: void 0, context, spanAttributes });\n }\n const { isolationScope } = getScopesFromContext(context) ?? {};\n const dscString = parentContext?.traceState ? parentContext.traceState.get(SENTRY_TRACE_STATE_DSC) : void 0;\n const dsc = dscString ? baggageHeaderToDynamicSamplingContext(dscString) : void 0;\n const sampleRand = parseSampleRate(dsc?.sample_rand) ?? _INTERNAL_safeMathRandom();\n const [sampled, sampleRate, localSampleRateWasApplied] = sampleSpan(\n options,\n {\n name: inferredSpanName,\n attributes: mergedAttributes,\n normalizedRequest: isolationScope?.getScopeData().sdkProcessingMetadata.normalizedRequest,\n parentSampled,\n parentSampleRate: parseSampleRate(dsc?.sample_rate)\n },\n sampleRand\n );\n const method = `${maybeSpanHttpMethod}`.toUpperCase();\n if (method === \"OPTIONS\" || method === \"HEAD\") {\n DEBUG_BUILD && debug.log(`[Tracing] Not sampling span because HTTP method is '${method}' for ${spanName}`);\n return wrapSamplingDecision({\n decision: SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n sampleRand,\n downstreamTraceSampleRate: 0\n // we don't want to sample anything in the downstream trace either\n });\n }\n if (!sampled && // We check for `parentSampled === undefined` because we only want to record client reports for spans that are trace roots (ie. when there was incoming trace)\n parentSampled === void 0) {\n DEBUG_BUILD && debug.log(\"[Tracing] Discarding root span because its trace was not chosen to be sampled.\");\n this._client.recordDroppedEvent(\"sample_rate\", this._isSpanStreaming ? \"span\" : \"transaction\");\n }\n return {\n ...wrapSamplingDecision({\n decision: sampled ? SamplingDecision.RECORD_AND_SAMPLED : SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n sampleRand,\n downstreamTraceSampleRate: localSampleRateWasApplied ? sampleRate : void 0\n }),\n attributes: {\n // We set the sample rate on the span when a local sample rate was applied to better understand how traces were sampled in Sentry\n [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: localSampleRateWasApplied ? sampleRate : void 0\n }\n };\n }\n /** Returns the sampler name or short description with the configuration. */\n toString() {\n return \"SentrySampler\";\n }\n}\nfunction getParentSampled(parentSpan, traceId, spanName) {\n const parentContext = parentSpan.spanContext();\n if (isSpanContextValid(parentContext) && parentContext.traceId === traceId) {\n if (parentContext.isRemote) {\n const parentSampled2 = getSamplingDecision(parentSpan.spanContext());\n DEBUG_BUILD && debug.log(`[Tracing] Inheriting remote parent's sampled decision for ${spanName}: ${parentSampled2}`);\n return parentSampled2;\n }\n const parentSampled = getSamplingDecision(parentContext);\n DEBUG_BUILD && debug.log(`[Tracing] Inheriting parent's sampled decision for ${spanName}: ${parentSampled}`);\n return parentSampled;\n }\n return void 0;\n}\nfunction wrapSamplingDecision({\n decision,\n context,\n spanAttributes,\n sampleRand,\n downstreamTraceSampleRate,\n ignoredChildSpan,\n ignoredSegmentSpan\n}) {\n let traceState = getBaseTraceState(context, spanAttributes);\n if (downstreamTraceSampleRate !== void 0) {\n traceState = traceState.set(SENTRY_TRACE_STATE_SAMPLE_RATE, `${downstreamTraceSampleRate}`);\n }\n if (sampleRand !== void 0) {\n traceState = traceState.set(SENTRY_TRACE_STATE_SAMPLE_RAND, `${sampleRand}`);\n }\n if (ignoredChildSpan) {\n traceState = traceState.set(SENTRY_TRACE_STATE_CHILD_IGNORED, \"1\");\n }\n if (ignoredSegmentSpan) {\n traceState = traceState.set(SENTRY_TRACE_STATE_SEGMENT_IGNORED, \"1\");\n }\n if (decision == void 0) {\n return { decision: SamplingDecision.NOT_RECORD, traceState };\n }\n if (decision === SamplingDecision.NOT_RECORD) {\n return { decision, traceState: traceState.set(SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING, \"1\") };\n }\n return { decision, traceState };\n}\nfunction getBaseTraceState(context, spanAttributes) {\n const parentSpan = trace.getSpan(context);\n const parentContext = parentSpan?.spanContext();\n let traceState = parentContext?.traceState || new TraceState();\n const url = spanAttributes[HTTP_URL] || spanAttributes[URL_FULL];\n if (url && typeof url === \"string\") {\n traceState = traceState.set(SENTRY_TRACE_STATE_URL, url);\n }\n return traceState;\n}\nfunction getValidSpan(context) {\n const span = trace.getSpan(context);\n return span && isSpanContextValid(span.spanContext()) ? span : void 0;\n}\n\nconst ATTR_TELEMETRY_SDK_LANGUAGE = \"telemetry.sdk.language\";\nconst ATTR_TELEMETRY_SDK_NAME = \"telemetry.sdk.name\";\nconst ATTR_TELEMETRY_SDK_VERSION = \"telemetry.sdk.version\";\nconst SEMRESATTRS_SERVICE_NAMESPACE = \"service.namespace\";\nclass SentryResource {\n constructor(attributes) {\n this._attributes = attributes;\n }\n get attributes() {\n return this._attributes;\n }\n merge(other) {\n if (!other) {\n return this;\n }\n return new SentryResource({ ...this._attributes, ...other.attributes });\n }\n getRawAttributes() {\n return Object.entries(this._attributes);\n }\n}\nfunction parseOtelResourceAttributes(raw) {\n if (!raw) {\n return {};\n }\n const result = {};\n for (const pair of raw.split(\",\")) {\n const eq = pair.indexOf(\"=\");\n if (eq === -1) {\n continue;\n }\n const key = pair.substring(0, eq).trim();\n const value = pair.substring(eq + 1).trim();\n if (key) {\n try {\n result[key] = decodeURIComponent(value);\n } catch {\n result[key] = value;\n }\n }\n }\n return result;\n}\nfunction getSentryResource(serviceNameFallback) {\n const env = typeof process !== \"undefined\" ? process.env : {};\n const otelServiceName = env.OTEL_SERVICE_NAME;\n const otelResourceAttrs = parseOtelResourceAttributes(env.OTEL_RESOURCE_ATTRIBUTES);\n return new SentryResource({\n // Lowest priority: Sentry defaults\n // eslint-disable-next-line typescript/no-deprecated\n [SEMRESATTRS_SERVICE_NAMESPACE]: \"sentry\",\n [SERVICE_NAME]: serviceNameFallback,\n // OTEL_RESOURCE_ATTRIBUTES overrides defaults (including service.name and service.namespace)\n ...otelResourceAttrs,\n // OTEL_SERVICE_NAME explicitly overrides service.name\n ...otelServiceName ? { [SERVICE_NAME]: otelServiceName } : {},\n // Highest priority: Sentry SDK telemetry attrs (cannot be overridden by env vars)\n [SERVICE_VERSION]: SDK_VERSION,\n [ATTR_TELEMETRY_SDK_LANGUAGE]: SDK_INFO[ATTR_TELEMETRY_SDK_LANGUAGE],\n [ATTR_TELEMETRY_SDK_NAME]: SDK_INFO[ATTR_TELEMETRY_SDK_NAME],\n [ATTR_TELEMETRY_SDK_VERSION]: SDK_INFO[ATTR_TELEMETRY_SDK_VERSION]\n });\n}\n\nfunction getTraceData({\n span,\n scope,\n client,\n propagateTraceparent\n} = {}) {\n let ctx = (scope && getContextFromScope(scope)) ?? api.context.active();\n if (span) {\n const { scope: scope2 } = getCapturedScopesOnSpan(span);\n ctx = scope2 && getContextFromScope(scope2) || api.trace.setSpan(api.context.active(), span);\n }\n const { traceId, spanId, sampled, dynamicSamplingContext } = getInjectionData(ctx, { scope, client });\n const traceData = {\n \"sentry-trace\": generateSentryTraceHeader(traceId, spanId, sampled),\n baggage: dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext)\n };\n if (propagateTraceparent) {\n traceData.traceparent = generateTraceparentHeader(traceId, spanId, sampled);\n }\n return traceData;\n}\n\nfunction setOpenTelemetryContextAsyncContextStrategy(options) {\n function getScopes() {\n const ctx = api.context.active();\n const scopes = getScopesFromContext(ctx);\n if (scopes) {\n return scopes;\n }\n return {\n scope: getDefaultCurrentScope(),\n isolationScope: getDefaultIsolationScope()\n };\n }\n function withScope(callback) {\n const ctx = api.context.active();\n return api.context.with(ctx, () => {\n return callback(getCurrentScope());\n });\n }\n function withSetScope(scope, callback) {\n const ctx = getContextFromScope(scope) || api.context.active();\n return api.context.with(ctx.setValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY, scope), () => {\n return callback(scope);\n });\n }\n function withIsolationScope(callback) {\n const ctx = api.context.active();\n return api.context.with(ctx.setValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY, true), () => {\n return callback(getIsolationScope());\n });\n }\n function withSetIsolationScope(isolationScope, callback) {\n const ctx = api.context.active();\n return api.context.with(ctx.setValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY, isolationScope), () => {\n return callback(getIsolationScope());\n });\n }\n function getCurrentScope() {\n return getScopes().scope;\n }\n function getIsolationScope() {\n return getScopes().isolationScope;\n }\n setAsyncContextStrategy({\n withScope,\n withSetScope,\n withSetIsolationScope,\n withIsolationScope,\n getCurrentScope,\n getIsolationScope,\n startSpan,\n startSpanManual,\n startInactiveSpan,\n getActiveSpan,\n suppressTracing,\n isTracingSuppressed,\n getTraceData,\n continueTrace,\n startNewTrace,\n // The types here don't fully align, because our own `Span` type is narrower\n // than the OTEL one - but this is OK for here, as we now we'll only have OTEL spans passed around\n withActiveSpan,\n getTracingChannelBinding: options?.getTracingChannelBinding\n });\n}\n\nexport { startSpanManual as A, suppressTracing as B, withActiveSpan as C, wrapClientClass as D, wrapContextManagerClass as E, wrapSamplingDecision as F, SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION as S, SENTRY_SCOPES_CONTEXT_KEY as a, SentryPropagator as b, SentrySampler as c, SentrySpanProcessor as d, buildContextWithSentryScopes as e, continueTrace as f, enhanceDscWithOpenTelemetryRootSpanName as g, getActiveSpan as h, getRequestSpanData as i, getScopesFromContext as j, getSentryResource as k, getSpanKind as l, getTraceContextForScope as m, isSentryRequestSpan as n, openTelemetrySetupCheck as o, setOpenTelemetryContextAsyncContextStrategy as p, setupEventContextTrace as q, spanHasAttributes as r, setIsSetup as s, spanHasEvents as t, spanHasKind as u, spanHasName as v, spanHasParentId as w, spanHasStatus as x, startInactiveSpan as y, startSpan as z };\n//# sourceMappingURL=asyncContextStrategy-DfM95hx5.js.map\n", + "import { s as setIsSetup, e as buildContextWithSentryScopes, a as SENTRY_SCOPES_CONTEXT_KEY, p as setOpenTelemetryContextAsyncContextStrategy } from './asyncContextStrategy-DfM95hx5.js';\nexport { S as SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, b as SentryPropagator, c as SentrySampler, d as SentrySpanProcessor, f as continueTrace, g as enhanceDscWithOpenTelemetryRootSpanName, h as getActiveSpan, i as getRequestSpanData, j as getScopesFromContext, k as getSentryResource, l as getSpanKind, m as getTraceContextForScope, n as isSentryRequestSpan, o as openTelemetrySetupCheck, q as setupEventContextTrace, r as spanHasAttributes, t as spanHasEvents, u as spanHasKind, v as spanHasName, w as spanHasParentId, x as spanHasStatus, y as startInactiveSpan, z as startSpan, A as startSpanManual, B as suppressTracing, C as withActiveSpan, D as wrapClientClass, E as wrapContextManagerClass, F as wrapSamplingDecision } from './asyncContextStrategy-DfM95hx5.js';\nimport { getAsyncContextStrategy, getMainCarrier } from '@sentry/core';\nexport { getClient, getDynamicSamplingContextFromSpan, shouldPropagateTraceForUrl, withStreamedSpan } from '@sentry/core';\nimport * as api from '@opentelemetry/api';\nimport { ROOT_CONTEXT } from '@opentelemetry/api';\nimport { AsyncLocalStorage } from 'node:async_hooks';\nimport { EventEmitter } from 'node:events';\n\nconst ADD_LISTENER_METHODS = [\"addListener\", \"on\", \"once\", \"prependListener\", \"prependOnceListener\"];\nclass SentryAsyncLocalStorageContextManager {\n constructor() {\n this._kOtListeners = /* @__PURE__ */ Symbol(\"OtListeners\");\n this._wrapped = false;\n setIsSetup(\"SentryContextManager\");\n this._asyncLocalStorage = getAsyncContextStrategy(getMainCarrier()).getTracingChannelBinding?.()?.asyncLocalStorage ?? new AsyncLocalStorage();\n }\n active() {\n return this._asyncLocalStorage.getStore() ?? ROOT_CONTEXT;\n }\n with(context, fn, thisArg, ...args) {\n const ctx2 = buildContextWithSentryScopes(context, this.active());\n const cb = thisArg == null ? fn : fn.bind(thisArg);\n return this._asyncLocalStorage.run(ctx2, cb, ...args);\n }\n enable() {\n return this;\n }\n disable() {\n this._asyncLocalStorage.disable();\n return this;\n }\n bind(context, target) {\n if (target instanceof EventEmitter) {\n return this._bindEventEmitter(context, target);\n }\n if (typeof target === \"function\") {\n return this._bindFunction(context, target);\n }\n return target;\n }\n /**\n * Gets underlying AsyncLocalStorage and symbol to allow lookup of scope.\n * This is Sentry-specific.\n */\n getAsyncLocalStorageLookup() {\n return {\n asyncLocalStorage: this._asyncLocalStorage,\n contextSymbol: SENTRY_SCOPES_CONTEXT_KEY\n };\n }\n _bindFunction(context, target) {\n const managerWith = this.with.bind(this);\n const contextWrapper = function(...args) {\n return managerWith(context, () => target.apply(this, args));\n };\n Object.defineProperty(contextWrapper, \"length\", {\n enumerable: false,\n configurable: true,\n writable: false,\n value: target.length\n });\n return contextWrapper;\n }\n _bindEventEmitter(context, ee) {\n if (this._getPatchMap(ee) !== void 0) {\n return ee;\n }\n this._createPatchMap(ee);\n for (const methodName of ADD_LISTENER_METHODS) {\n if (ee[methodName] === void 0) continue;\n ee[methodName] = this._patchAddListener(\n ee,\n ee[methodName],\n context\n );\n }\n if (typeof ee.removeListener === \"function\") {\n ee.removeListener = this._patchRemoveListener(ee, ee.removeListener);\n }\n if (typeof ee.off === \"function\") {\n ee.off = this._patchRemoveListener(ee, ee.off);\n }\n if (typeof ee.removeAllListeners === \"function\") {\n ee.removeAllListeners = this._patchRemoveAllListeners(\n ee,\n // oxlint-disable-next-line @typescript-eslint/unbound-method\n ee.removeAllListeners\n );\n }\n return ee;\n }\n _patchRemoveListener(ee, original) {\n const contextManager = this;\n return function(event, listener) {\n const events = contextManager._getPatchMap(ee)?.[event];\n if (events === void 0) {\n return original.call(this, event, listener);\n }\n const patchedListener = events.get(listener);\n return original.call(this, event, patchedListener || listener);\n };\n }\n _patchRemoveAllListeners(ee, original) {\n const contextManager = this;\n return function(event) {\n const map = contextManager._getPatchMap(ee);\n if (map !== void 0) {\n if (arguments.length === 0) {\n contextManager._createPatchMap(ee);\n } else if (event !== void 0 && map[event] !== void 0) {\n delete map[event];\n }\n }\n return original.apply(this, arguments);\n };\n }\n _patchAddListener(ee, original, context) {\n const contextManager = this;\n return function(event, listener) {\n if (contextManager._wrapped) {\n return original.call(this, event, listener);\n }\n let map = contextManager._getPatchMap(ee);\n if (map === void 0) {\n map = contextManager._createPatchMap(ee);\n }\n let listeners = map[event];\n if (listeners === void 0) {\n listeners = /* @__PURE__ */ new WeakMap();\n map[event] = listeners;\n }\n const patchedListener = contextManager.bind(context, listener);\n listeners.set(listener, patchedListener);\n contextManager._wrapped = true;\n try {\n return original.call(this, event, patchedListener);\n } finally {\n contextManager._wrapped = false;\n }\n };\n }\n _createPatchMap(ee) {\n const map = /* @__PURE__ */ Object.create(null);\n ee[this._kOtListeners] = map;\n return map;\n }\n _getPatchMap(ee) {\n return ee[this._kOtListeners];\n }\n}\n\nfunction setNodeOpenTelemetryContextAsyncContextStrategy(options) {\n setOpenTelemetryContextAsyncContextStrategy({\n getTracingChannelBinding: !options?.skipOpenTelemetrySetup ? getDefaultAsyncLocalStorageFactory() : getCustomAsyncLocalStorageFactory()\n });\n}\nfunction getDefaultAsyncLocalStorageFactory() {\n const defaultAsyncLocalStorage = new AsyncLocalStorage();\n return () => {\n return {\n asyncLocalStorage: defaultAsyncLocalStorage,\n getStoreWithActiveSpan: (span) => api.trace.setSpan(api.context.active(), span)\n };\n };\n}\nfunction getCustomAsyncLocalStorageFactory() {\n return () => {\n try {\n const contextManager = api.context._getContextManager();\n const asyncLocalStorage = contextManager?.getAsyncLocalStorageLookup().asyncLocalStorage;\n return asyncLocalStorage ? {\n asyncLocalStorage,\n getStoreWithActiveSpan: (span) => api.trace.setSpan(api.context.active(), span)\n } : void 0;\n } catch {\n return void 0;\n }\n };\n}\n\nexport { SentryAsyncLocalStorageContextManager, setNodeOpenTelemetryContextAsyncContextStrategy as setOpenTelemetryContextAsyncContextStrategy };\n//# sourceMappingURL=index.js.map\n", + "import { SentryAsyncLocalStorageContextManager } from '@sentry/opentelemetry';\n\nconst SentryContextManager = SentryAsyncLocalStorageContextManager;\n\nexport { SentryContextManager };\n//# sourceMappingURL=contextManager.js.map\n", + "import { diag, DiagLogLevel } from '@opentelemetry/api';\nimport { debug } from '@sentry/core';\n\nfunction setupOpenTelemetryLogger() {\n diag.disable();\n diag.setLogger(\n {\n error: debug.error,\n warn: debug.warn,\n info: debug.log,\n debug: debug.log,\n verbose: debug.log\n },\n DiagLogLevel.DEBUG\n );\n}\n\nexport { setupOpenTelemetryLogger };\n//# sourceMappingURL=logger.js.map\n", + "import { registerInstrumentations } from '@opentelemetry/instrumentation';\n\nconst INSTRUMENTED = {};\nfunction generateInstrumentOnce(name, creatorOrClass, optionsCallback) {\n if (optionsCallback) {\n return _generateInstrumentOnceWithOptions(\n name,\n creatorOrClass,\n optionsCallback\n );\n }\n return _generateInstrumentOnce(name, creatorOrClass);\n}\nfunction _generateInstrumentOnce(name, creator) {\n return Object.assign(\n (options) => {\n const instrumented = INSTRUMENTED[name];\n if (instrumented) {\n if (options) {\n instrumented.setConfig(options);\n }\n return instrumented;\n }\n const instrumentation = creator(options);\n INSTRUMENTED[name] = instrumentation;\n registerInstrumentations({\n instrumentations: [instrumentation]\n });\n return instrumentation;\n },\n { id: name }\n );\n}\nfunction _generateInstrumentOnceWithOptions(name, instrumentationClass, optionsCallback) {\n return Object.assign(\n (_options) => {\n const options = optionsCallback(_options);\n const instrumented = INSTRUMENTED[name];\n if (instrumented) {\n instrumented.setConfig(options);\n return instrumented;\n }\n const instrumentation = new instrumentationClass(options);\n INSTRUMENTED[name] = instrumentation;\n registerInstrumentations({\n instrumentations: [instrumentation]\n });\n return instrumentation;\n },\n { id: name }\n );\n}\nfunction instrumentWhenWrapped(instrumentation) {\n let isWrapped = false;\n let callbacks = [];\n if (!hasWrap(instrumentation)) {\n isWrapped = true;\n } else {\n const originalWrap = instrumentation[\"_wrap\"];\n instrumentation[\"_wrap\"] = (...args) => {\n isWrapped = true;\n callbacks.forEach((callback) => callback());\n callbacks = [];\n return originalWrap(...args);\n };\n }\n const registerCallback = (callback) => {\n if (isWrapped) {\n callback();\n } else {\n callbacks.push(callback);\n }\n };\n return registerCallback;\n}\nfunction hasWrap(instrumentation) {\n return typeof instrumentation[\"_wrap\"] === \"function\";\n}\n\nexport { INSTRUMENTED, generateInstrumentOnce, instrumentWhenWrapped };\n//# sourceMappingURL=instrument.js.map\n", + "import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport { defineIntegration, addBreadcrumb, captureException } from '@sentry/core';\n\nconst INTEGRATION_NAME = \"ChildProcess\";\nconst childProcessIntegration = defineIntegration((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setup() {\n diagnosticsChannel.channel(\"child_process\").subscribe((event) => {\n if (event && typeof event === \"object\" && \"process\" in event) {\n captureChildProcessEvents(event.process, options);\n }\n });\n diagnosticsChannel.channel(\"worker_threads\").subscribe((event) => {\n if (event && typeof event === \"object\" && \"worker\" in event) {\n captureWorkerThreadEvents(event.worker, options);\n }\n });\n }\n };\n});\nfunction captureChildProcessEvents(child, options) {\n let hasExited = false;\n let data;\n child.on(\"spawn\", () => {\n if (child.spawnfile === \"/usr/bin/sw_vers\") {\n hasExited = true;\n return;\n }\n data = { spawnfile: child.spawnfile };\n if (options.includeChildProcessArgs) {\n data.spawnargs = child.spawnargs;\n }\n }).on(\"exit\", (code) => {\n if (!hasExited) {\n hasExited = true;\n if (code !== null && code !== 0) {\n addBreadcrumb({\n category: \"child_process\",\n message: `Child process exited with code '${code}'`,\n level: code === 0 ? \"info\" : \"warning\",\n data\n });\n }\n }\n }).on(\"error\", (error) => {\n if (!hasExited) {\n hasExited = true;\n addBreadcrumb({\n category: \"child_process\",\n message: `Child process errored with '${error.message}'`,\n level: \"error\",\n data\n });\n }\n });\n}\nfunction captureWorkerThreadEvents(worker, options) {\n let threadId;\n worker.on(\"online\", () => {\n threadId = worker.threadId;\n }).on(\"error\", (error) => {\n if (options.captureWorkerErrors !== false) {\n captureException(error, {\n mechanism: { type: \"auto.child_process.worker_thread\", handled: false, data: { threadId: String(threadId) } }\n });\n } else {\n addBreadcrumb({\n category: \"worker_thread\",\n message: `Worker thread errored with '${error.message}'`,\n level: \"error\",\n data: { threadId }\n });\n }\n });\n}\n\nexport { childProcessIntegration };\n//# sourceMappingURL=childProcess.js.map\n", + "import { execFile } from 'node:child_process';\nimport { readFile, readdir } from 'node:fs';\nimport * as os from 'node:os';\nimport { join } from 'node:path';\nimport { promisify } from 'node:util';\nimport { defineIntegration, safeSetSpanJSONAttributes } from '@sentry/core';\n\nconst readFileAsync = promisify(readFile);\nconst readDirAsync = promisify(readdir);\nconst INTEGRATION_NAME = \"Context\";\nconst _nodeContextIntegration = ((options = {}) => {\n const _options = {\n app: true,\n os: true,\n device: true,\n culture: true,\n cloudResource: true,\n ...options\n };\n const appContext = _options.app ? getAppContext() : void 0;\n const deviceContext = _options.device ? getDeviceContext(_options.device) : void 0;\n const cultureContext = _options.culture ? getCultureContext() : void 0;\n const cloudResourceContext = _options.cloudResource ? getCloudResourceContext() : void 0;\n const osContextPromise = _options.os ? getOsContext() : void 0;\n const cachedSpanAttributes = {\n \"process.runtime.engine.name\": \"v8\",\n \"process.runtime.engine.version\": process.versions.v8,\n ...contextsToSpanAttributes({\n app: appContext,\n device: deviceContext,\n culture: cultureContext,\n cloud_resource: cloudResourceContext\n })\n };\n if (osContextPromise) {\n osContextPromise.then((osCtx) => Object.assign(cachedSpanAttributes, contextsToSpanAttributes({ os: osCtx }))).catch(() => {\n });\n }\n const contextsPromise = (async () => {\n const contexts = {};\n if (osContextPromise) {\n contexts.os = await osContextPromise;\n }\n if (appContext) {\n contexts.app = appContext;\n }\n if (deviceContext) {\n contexts.device = deviceContext;\n }\n if (cultureContext) {\n contexts.culture = cultureContext;\n }\n if (cloudResourceContext) {\n contexts.cloud_resource = cloudResourceContext;\n }\n return contexts;\n })();\n async function addContext(event) {\n const updatedContext = _updateContext(await contextsPromise);\n event.contexts = {\n ...event.contexts,\n app: { ...updatedContext.app, ...event.contexts?.app },\n os: { ...updatedContext.os, ...event.contexts?.os },\n device: { ...updatedContext.device, ...event.contexts?.device },\n culture: { ...updatedContext.culture, ...event.contexts?.culture },\n cloud_resource: { ...updatedContext.cloud_resource, ...event.contexts?.cloud_resource }\n };\n return event;\n }\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n return addContext(event);\n },\n processSegmentSpan(span) {\n safeSetSpanJSONAttributes(span, cachedSpanAttributes);\n safeSetSpanJSONAttributes(span, getDynamicSpanAttributes(appContext, deviceContext));\n }\n };\n});\nconst nodeContextIntegration = defineIntegration(_nodeContextIntegration);\nfunction _updateContext(contexts) {\n if (contexts.app?.app_memory) {\n contexts.app.app_memory = process.memoryUsage().rss;\n }\n if (contexts.app?.free_memory && typeof process.availableMemory === \"function\") {\n const freeMemory = process.availableMemory?.();\n if (freeMemory != null) {\n contexts.app.free_memory = freeMemory;\n }\n }\n if (contexts.device?.free_memory) {\n contexts.device.free_memory = os.freemem();\n }\n return contexts;\n}\nfunction contextsToSpanAttributes(contexts) {\n const attrs = {};\n const { app, device, os: osCtx, culture, cloud_resource } = contexts;\n if (app) {\n if (app.app_start_time) {\n attrs[\"app.start_time\"] = app.app_start_time;\n }\n }\n if (device) {\n if (device.arch) {\n attrs[\"device.archs\"] = [device.arch];\n }\n if (device.boot_time) {\n attrs[\"device.boot_time\"] = device.boot_time;\n }\n if (device.memory_size != null) {\n attrs[\"device.memory_size\"] = device.memory_size;\n }\n if (device.processor_count != null) {\n attrs[\"device.processor_count\"] = device.processor_count;\n }\n if (device.cpu_description) {\n attrs[\"device.cpu_description\"] = device.cpu_description;\n }\n if (device.processor_frequency != null) {\n attrs[\"device.processor_frequency\"] = device.processor_frequency;\n }\n }\n if (osCtx) {\n if (osCtx.name) {\n attrs[\"os.name\"] = osCtx.name;\n }\n if (osCtx.version) {\n attrs[\"os.version\"] = osCtx.version;\n }\n if (osCtx.kernel_version) {\n attrs[\"os.kernel_version\"] = osCtx.kernel_version;\n }\n if (osCtx.build) {\n attrs[\"os.build\"] = osCtx.build;\n }\n }\n if (culture) {\n if (culture.locale) {\n attrs[\"culture.locale\"] = culture.locale;\n }\n if (culture.timezone) {\n attrs[\"culture.timezone\"] = culture.timezone;\n }\n }\n if (cloud_resource) {\n for (const [key, value] of Object.entries(cloud_resource)) {\n if (value != null) {\n attrs[key] = value;\n }\n }\n }\n return attrs;\n}\nfunction getDynamicSpanAttributes(appContext, deviceContext) {\n const attrs = {};\n if (appContext) {\n attrs[\"app.memory\"] = process.memoryUsage().rss;\n if (typeof process.availableMemory === \"function\") {\n const freeMemory = process.availableMemory?.();\n if (freeMemory != null) {\n attrs[\"app.free_memory\"] = freeMemory;\n }\n }\n }\n if (deviceContext?.free_memory != null) {\n attrs[\"device.free_memory\"] = os.freemem();\n }\n return attrs;\n}\nasync function getOsContext() {\n const platformId = os.platform();\n switch (platformId) {\n case \"darwin\":\n return getDarwinInfo();\n case \"linux\":\n return getLinuxInfo();\n default:\n return {\n name: PLATFORM_NAMES[platformId] || platformId,\n version: os.release()\n };\n }\n}\nfunction getCultureContext() {\n try {\n if (typeof process.versions.icu !== \"string\") {\n return;\n }\n const january = /* @__PURE__ */ new Date(9e8);\n const spanish = new Intl.DateTimeFormat(\"es\", { month: \"long\" });\n if (spanish.format(january) === \"enero\") {\n const options = Intl.DateTimeFormat().resolvedOptions();\n return {\n locale: options.locale,\n timezone: options.timeZone\n };\n }\n } catch {\n }\n return;\n}\nfunction getAppContext() {\n const app_memory = process.memoryUsage().rss;\n const app_start_time = new Date(Date.now() - process.uptime() * 1e3).toISOString();\n const appContext = { app_start_time, app_memory };\n if (typeof process.availableMemory === \"function\") {\n const freeMemory = process.availableMemory?.();\n if (freeMemory != null) {\n appContext.free_memory = freeMemory;\n }\n }\n return appContext;\n}\nfunction getDeviceContext(deviceOpt) {\n const device = {};\n let uptime;\n try {\n uptime = os.uptime();\n } catch {\n }\n if (typeof uptime === \"number\") {\n device.boot_time = new Date(Date.now() - uptime * 1e3).toISOString();\n }\n device.arch = os.arch();\n if (deviceOpt === true || deviceOpt.memory) {\n device.memory_size = os.totalmem();\n device.free_memory = os.freemem();\n }\n if (deviceOpt === true || deviceOpt.cpu) {\n const cpuInfo = os.cpus();\n const firstCpu = cpuInfo?.[0];\n if (firstCpu) {\n device.processor_count = cpuInfo.length;\n device.cpu_description = firstCpu.model;\n device.processor_frequency = firstCpu.speed;\n }\n }\n return device;\n}\nconst PLATFORM_NAMES = {\n aix: \"IBM AIX\",\n freebsd: \"FreeBSD\",\n openbsd: \"OpenBSD\",\n sunos: \"SunOS\",\n win32: \"Windows\",\n ohos: \"OpenHarmony\",\n android: \"Android\"\n};\nconst LINUX_DISTROS = [\n { name: \"fedora-release\", distros: [\"Fedora\"] },\n { name: \"redhat-release\", distros: [\"Red Hat Linux\", \"Centos\"] },\n { name: \"redhat_version\", distros: [\"Red Hat Linux\"] },\n { name: \"SuSE-release\", distros: [\"SUSE Linux\"] },\n { name: \"lsb-release\", distros: [\"Ubuntu Linux\", \"Arch Linux\"] },\n { name: \"debian_version\", distros: [\"Debian\"] },\n { name: \"debian_release\", distros: [\"Debian\"] },\n { name: \"arch-release\", distros: [\"Arch Linux\"] },\n { name: \"gentoo-release\", distros: [\"Gentoo Linux\"] },\n { name: \"novell-release\", distros: [\"SUSE Linux\"] },\n { name: \"alpine-release\", distros: [\"Alpine Linux\"] }\n];\nconst LINUX_VERSIONS = {\n alpine: (content) => content,\n arch: (content) => matchFirst(/distrib_release=(.*)/, content),\n centos: (content) => matchFirst(/release ([^ ]+)/, content),\n debian: (content) => content,\n fedora: (content) => matchFirst(/release (..)/, content),\n mint: (content) => matchFirst(/distrib_release=(.*)/, content),\n red: (content) => matchFirst(/release ([^ ]+)/, content),\n suse: (content) => matchFirst(/VERSION = (.*)\\n/, content),\n ubuntu: (content) => matchFirst(/distrib_release=(.*)/, content)\n};\nfunction matchFirst(regex, text) {\n const match = regex.exec(text);\n return match ? match[1] : void 0;\n}\nasync function getDarwinInfo() {\n const darwinInfo = {\n kernel_version: os.release(),\n name: \"Mac OS X\",\n version: `10.${Number(os.release().split(\".\")[0]) - 4}`\n };\n try {\n const output = await new Promise((resolve, reject) => {\n execFile(\"/usr/bin/sw_vers\", (error, stdout) => {\n if (error) {\n reject(error);\n return;\n }\n resolve(stdout);\n });\n });\n darwinInfo.name = matchFirst(/^ProductName:\\s+(.*)$/m, output);\n darwinInfo.version = matchFirst(/^ProductVersion:\\s+(.*)$/m, output);\n darwinInfo.build = matchFirst(/^BuildVersion:\\s+(.*)$/m, output);\n } catch {\n }\n return darwinInfo;\n}\nfunction getLinuxDistroId(name) {\n return name.split(\" \")[0].toLowerCase();\n}\nasync function getLinuxInfo() {\n const linuxInfo = {\n kernel_version: os.release(),\n name: \"Linux\"\n };\n try {\n const etcFiles = await readDirAsync(\"/etc\");\n const distroFile = LINUX_DISTROS.find((file) => etcFiles.includes(file.name));\n if (!distroFile) {\n return linuxInfo;\n }\n const distroPath = join(\"/etc\", distroFile.name);\n const contents = (await readFileAsync(distroPath, { encoding: \"utf-8\" })).toLowerCase();\n const { distros } = distroFile;\n linuxInfo.name = distros.find((d) => contents.indexOf(getLinuxDistroId(d)) >= 0) || distros[0];\n const id = getLinuxDistroId(linuxInfo.name);\n linuxInfo.version = LINUX_VERSIONS[id]?.(contents);\n } catch {\n }\n return linuxInfo;\n}\nfunction getCloudResourceContext() {\n if (process.env.VERCEL) {\n return {\n \"cloud.provider\": \"vercel\",\n \"cloud.region\": process.env.VERCEL_REGION\n };\n } else if (process.env.AWS_REGION) {\n return {\n \"cloud.provider\": \"aws\",\n \"cloud.region\": process.env.AWS_REGION,\n \"cloud.platform\": process.env.AWS_EXECUTION_ENV\n };\n } else if (process.env.GCP_PROJECT) {\n return {\n \"cloud.provider\": \"gcp\"\n };\n } else if (process.env.ALIYUN_REGION_ID) {\n return {\n \"cloud.provider\": \"alibaba_cloud\",\n \"cloud.region\": process.env.ALIYUN_REGION_ID\n };\n } else if (process.env.WEBSITE_SITE_NAME && process.env.REGION_NAME) {\n return {\n \"cloud.provider\": \"azure\",\n \"cloud.region\": process.env.REGION_NAME\n };\n } else if (process.env.IBM_CLOUD_REGION) {\n return {\n \"cloud.provider\": \"ibm_cloud\",\n \"cloud.region\": process.env.IBM_CLOUD_REGION\n };\n } else if (process.env.TENCENTCLOUD_REGION) {\n return {\n \"cloud.provider\": \"tencent_cloud\",\n \"cloud.region\": process.env.TENCENTCLOUD_REGION,\n \"cloud.account.id\": process.env.TENCENTCLOUD_APPID,\n \"cloud.availability_zone\": process.env.TENCENTCLOUD_ZONE\n };\n } else if (process.env.NETLIFY) {\n return {\n \"cloud.provider\": \"netlify\"\n };\n } else if (process.env.FLY_REGION) {\n return {\n \"cloud.provider\": \"fly.io\",\n \"cloud.region\": process.env.FLY_REGION\n };\n } else if (process.env.DYNO) {\n return {\n \"cloud.provider\": \"heroku\"\n };\n } else {\n return void 0;\n }\n}\n\nexport { contextsToSpanAttributes, getAppContext, getDeviceContext, getDynamicSpanAttributes, nodeContextIntegration, readDirAsync, readFileAsync };\n//# sourceMappingURL=context.js.map\n", + "import { createReadStream } from 'node:fs';\nimport { createInterface } from 'node:readline';\nimport { LRUMap, defineIntegration, debug, snipLine } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst LRU_FILE_CONTENTS_CACHE = new LRUMap(10);\nconst LRU_FILE_CONTENTS_FS_READ_FAILED = new LRUMap(20);\nconst DEFAULT_LINES_OF_CONTEXT = 7;\nconst INTEGRATION_NAME = \"ContextLines\";\nconst MAX_CONTEXTLINES_COLNO = 1e3;\nconst MAX_CONTEXTLINES_LINENO = 1e4;\nfunction emplace(map, key, contents) {\n const value = map.get(key);\n if (value === void 0) {\n map.set(key, contents);\n return contents;\n }\n return value;\n}\nfunction shouldSkipContextLinesForFile(path) {\n if (path.startsWith(\"node:\")) return true;\n if (path.endsWith(\".min.js\")) return true;\n if (path.endsWith(\".min.cjs\")) return true;\n if (path.endsWith(\".min.mjs\")) return true;\n if (path.startsWith(\"data:\")) return true;\n return false;\n}\nfunction shouldSkipContextLinesForFrame(frame) {\n if (frame.lineno !== void 0 && frame.lineno > MAX_CONTEXTLINES_LINENO) return true;\n if (frame.colno !== void 0 && frame.colno > MAX_CONTEXTLINES_COLNO) return true;\n return false;\n}\nfunction rangeExistsInContentCache(file, range) {\n const contents = LRU_FILE_CONTENTS_CACHE.get(file);\n if (contents === void 0) return false;\n for (let i = range[0]; i <= range[1]; i++) {\n if (contents[i] === void 0) {\n return false;\n }\n }\n return true;\n}\nfunction makeLineReaderRanges(lines, linecontext) {\n if (!lines.length) {\n return [];\n }\n let i = 0;\n const line = lines[0];\n if (typeof line !== \"number\") {\n return [];\n }\n let current = makeContextRange(line, linecontext);\n const out = [];\n while (true) {\n if (i === lines.length - 1) {\n out.push(current);\n break;\n }\n const next = lines[i + 1];\n if (typeof next !== \"number\") {\n break;\n }\n if (next <= current[1]) {\n current[1] = next + linecontext;\n } else {\n out.push(current);\n current = makeContextRange(next, linecontext);\n }\n i++;\n }\n return out;\n}\nfunction getContextLinesFromFile(path, ranges, output) {\n return new Promise((resolve, _reject) => {\n const stream = createReadStream(path);\n const lineReaded = createInterface({\n input: stream\n });\n function destroyStreamAndResolve() {\n stream.destroy();\n resolve();\n }\n let lineNumber = 0;\n let currentRangeIndex = 0;\n const range = ranges[currentRangeIndex];\n if (range === void 0) {\n destroyStreamAndResolve();\n return;\n }\n let rangeStart = range[0];\n let rangeEnd = range[1];\n function onStreamError(e) {\n LRU_FILE_CONTENTS_FS_READ_FAILED.set(path, 1);\n DEBUG_BUILD && debug.error(`Failed to read file: ${path}. Error: ${e}`);\n lineReaded.close();\n lineReaded.removeAllListeners();\n destroyStreamAndResolve();\n }\n stream.on(\"error\", onStreamError);\n lineReaded.on(\"error\", onStreamError);\n lineReaded.on(\"close\", destroyStreamAndResolve);\n lineReaded.on(\"line\", (line) => {\n lineNumber++;\n if (lineNumber < rangeStart) return;\n output[lineNumber] = snipLine(line, 0);\n if (lineNumber >= rangeEnd) {\n if (currentRangeIndex === ranges.length - 1) {\n lineReaded.close();\n lineReaded.removeAllListeners();\n return;\n }\n currentRangeIndex++;\n const range2 = ranges[currentRangeIndex];\n if (range2 === void 0) {\n lineReaded.close();\n lineReaded.removeAllListeners();\n return;\n }\n rangeStart = range2[0];\n rangeEnd = range2[1];\n }\n });\n });\n}\nasync function addSourceContext(event, contextLines) {\n const filesToLines = {};\n if (contextLines > 0 && event.exception?.values) {\n for (const exception of event.exception.values) {\n if (!exception.stacktrace?.frames?.length) {\n continue;\n }\n for (let i = exception.stacktrace.frames.length - 1; i >= 0; i--) {\n const frame = exception.stacktrace.frames[i];\n const filename = frame?.filename;\n if (!frame || typeof filename !== \"string\" || typeof frame.lineno !== \"number\" || shouldSkipContextLinesForFile(filename) || shouldSkipContextLinesForFrame(frame)) {\n continue;\n }\n const filesToLinesOutput = filesToLines[filename];\n if (!filesToLinesOutput) filesToLines[filename] = [];\n filesToLines[filename].push(frame.lineno);\n }\n }\n }\n const files = Object.keys(filesToLines);\n if (files.length == 0) {\n return event;\n }\n const readlinePromises = [];\n for (const file of files) {\n if (LRU_FILE_CONTENTS_FS_READ_FAILED.get(file)) {\n continue;\n }\n const filesToLineRanges = filesToLines[file];\n if (!filesToLineRanges) {\n continue;\n }\n filesToLineRanges.sort((a, b) => a - b);\n const ranges = makeLineReaderRanges(filesToLineRanges, contextLines);\n if (ranges.every((r) => rangeExistsInContentCache(file, r))) {\n continue;\n }\n const cache = emplace(LRU_FILE_CONTENTS_CACHE, file, {});\n readlinePromises.push(getContextLinesFromFile(file, ranges, cache));\n }\n await Promise.all(readlinePromises).catch(() => {\n DEBUG_BUILD && debug.log(\"Failed to read one or more source files and resolve context lines\");\n });\n if (contextLines > 0 && event.exception?.values) {\n for (const exception of event.exception.values) {\n if (exception.stacktrace?.frames && exception.stacktrace.frames.length > 0) {\n addSourceContextToFrames(exception.stacktrace.frames, contextLines, LRU_FILE_CONTENTS_CACHE);\n }\n }\n }\n return event;\n}\nfunction addSourceContextToFrames(frames, contextLines, cache) {\n for (const frame of frames) {\n if (frame.filename && frame.context_line === void 0 && typeof frame.lineno === \"number\") {\n const contents = cache.get(frame.filename);\n if (contents === void 0) {\n continue;\n }\n addContextToFrame(frame.lineno, frame, contextLines, contents);\n }\n }\n}\nfunction clearLineContext(frame) {\n delete frame.pre_context;\n delete frame.context_line;\n delete frame.post_context;\n}\nfunction addContextToFrame(lineno, frame, contextLines, contents) {\n if (frame.lineno === void 0 || contents === void 0) {\n DEBUG_BUILD && debug.error(\"Cannot resolve context for frame with no lineno or file contents\");\n return;\n }\n frame.pre_context = [];\n for (let i = makeRangeStart(lineno, contextLines); i < lineno; i++) {\n const line = contents[i];\n if (line === void 0) {\n clearLineContext(frame);\n DEBUG_BUILD && debug.error(`Could not find line ${i} in file ${frame.filename}`);\n return;\n }\n frame.pre_context.push(line);\n }\n if (contents[lineno] === void 0) {\n clearLineContext(frame);\n DEBUG_BUILD && debug.error(`Could not find line ${lineno} in file ${frame.filename}`);\n return;\n }\n frame.context_line = contents[lineno];\n const end = makeRangeEnd(lineno, contextLines);\n frame.post_context = [];\n for (let i = lineno + 1; i <= end; i++) {\n const line = contents[i];\n if (line === void 0) {\n break;\n }\n frame.post_context.push(line);\n }\n}\nfunction makeRangeStart(line, linecontext) {\n return Math.max(1, line - linecontext);\n}\nfunction makeRangeEnd(line, linecontext) {\n return line + linecontext;\n}\nfunction makeContextRange(line, linecontext) {\n return [makeRangeStart(line, linecontext), makeRangeEnd(line, linecontext)];\n}\nconst _contextLinesIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n processEvent(event, _hint, client) {\n const contextLines = options.frameContextLines ?? client?.getDataCollectionOptions().frameContextLines ?? DEFAULT_LINES_OF_CONTEXT;\n return addSourceContext(event, contextLines);\n }\n };\n});\nconst contextLinesIntegration = defineIntegration(_contextLinesIntegration);\n\nexport { MAX_CONTEXTLINES_COLNO, MAX_CONTEXTLINES_LINENO, _contextLinesIntegration, addContextToFrame, contextLinesIntegration };\n//# sourceMappingURL=contextlines.js.map\n", + "import { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '../../otel/instrument.js';\nimport { httpServerIntegration } from './httpServerIntegration.js';\nimport { httpServerSpansIntegration } from './httpServerSpansIntegration.js';\nimport { SentryHttpInstrumentation } from './SentryHttpInstrumentation.js';\n\nconst INTEGRATION_NAME = \"Http\";\nconst instrumentSentryHttp = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n (options) => {\n return new SentryHttpInstrumentation(options);\n }\n);\nconst httpIntegration = defineIntegration((options = {}) => {\n const serverOptions = {\n sessions: options.trackIncomingRequestsAsSessions,\n sessionFlushingDelayMS: options.sessionFlushingDelayMS,\n ignoreRequestBody: options.ignoreIncomingRequestBody,\n maxRequestBodySize: options.maxIncomingRequestBodySize\n };\n const serverSpansOptions = {\n ignoreIncomingRequests: options.ignoreIncomingRequests,\n ignoreStaticAssets: options.ignoreStaticAssets,\n ignoreStatusCodes: options.dropSpansForIncomingRequestStatusCodes\n };\n const httpInstrumentationOptions = {\n breadcrumbs: options.breadcrumbs,\n propagateTraceInOutgoingRequests: options.tracePropagation ?? true,\n ignoreOutgoingRequests: options.ignoreOutgoingRequests\n };\n const server = httpServerIntegration(serverOptions);\n const serverSpans = httpServerSpansIntegration(serverSpansOptions);\n const spans = options.spans ?? false;\n const disableIncomingRequestSpans = options.disableIncomingRequestSpans ?? false;\n const enabledServerSpans = spans && !disableIncomingRequestSpans;\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n if (enabledServerSpans) {\n serverSpans.setup(client);\n }\n },\n setupOnce() {\n server.setupOnce();\n instrumentSentryHttp(httpInstrumentationOptions);\n },\n processEvent(event) {\n return serverSpans.processEvent(event);\n }\n };\n});\n\nexport { httpIntegration, instrumentSentryHttp };\n//# sourceMappingURL=index.js.map\n", + "import { Worker } from 'node:worker_threads';\nimport { defineIntegration, debug } from '@sentry/core';\nimport { isDebuggerEnabled } from '../../utils/debug.js';\nimport { LOCAL_VARIABLES_KEY, functionNamesMatch } from './common.js';\n\nconst base64WorkerScript = \"LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjYzLjAgKDIzNjJlOWYpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=\";\nfunction log(...args) {\n debug.log(\"[LocalVariables]\", ...args);\n}\nconst localVariablesAsyncIntegration = defineIntegration(((integrationOptions = {}) => {\n function addLocalVariablesToException(exception, localVariables) {\n const frames = (exception.stacktrace?.frames || []).filter((frame) => frame.function !== \"new Promise\");\n for (let i = 0; i < frames.length; i++) {\n const frameIndex = frames.length - i - 1;\n const frameLocalVariables = localVariables[i];\n const frame = frames[frameIndex];\n if (!frame || !frameLocalVariables) {\n break;\n }\n if (\n // We need to have vars to add\n frameLocalVariables.vars === void 0 || // Only skip out-of-app frames if includeOutOfAppFrames is not true\n frame.in_app === false && integrationOptions.includeOutOfAppFrames !== true || // The function names need to match\n !functionNamesMatch(frame.function, frameLocalVariables.function)\n ) {\n continue;\n }\n frame.vars = frameLocalVariables.vars;\n }\n }\n function addLocalVariablesToEvent(event, hint) {\n if (hint.originalException && typeof hint.originalException === \"object\" && LOCAL_VARIABLES_KEY in hint.originalException && Array.isArray(hint.originalException[LOCAL_VARIABLES_KEY])) {\n for (const exception of event.exception?.values || []) {\n addLocalVariablesToException(exception, hint.originalException[LOCAL_VARIABLES_KEY]);\n }\n hint.originalException[LOCAL_VARIABLES_KEY] = void 0;\n }\n return event;\n }\n async function startInspector() {\n const inspector = await import('node:inspector');\n if (!inspector.url()) {\n inspector.open(0);\n }\n }\n function startWorker(options) {\n const worker = new Worker(new URL(`data:application/javascript;base64,${base64WorkerScript}`), {\n workerData: options,\n // We don't want any Node args to be passed to the worker\n execArgv: [],\n env: { ...process.env, NODE_OPTIONS: void 0 }\n });\n process.on(\"exit\", () => {\n worker.terminate();\n });\n worker.once(\"error\", (err) => {\n log(\"Worker error\", err);\n });\n worker.once(\"exit\", (code) => {\n log(\"Worker exit\", code);\n });\n worker.unref();\n }\n return {\n name: \"LocalVariablesAsync\",\n async setup(client) {\n const clientOptions = client.getOptions();\n if (!clientOptions.includeLocalVariables) {\n return;\n }\n if (await isDebuggerEnabled()) {\n debug.warn(\"Local variables capture has been disabled because the debugger was already enabled\");\n return;\n }\n const options = {\n ...integrationOptions,\n debug: debug.isEnabled()\n };\n startInspector().then(\n () => {\n try {\n startWorker(options);\n } catch (e) {\n debug.error(\"Failed to start worker\", e);\n }\n },\n (e) => {\n debug.error(\"Failed to start inspector\", e);\n }\n );\n },\n processEvent(event, hint) {\n return addLocalVariablesToEvent(event, hint);\n }\n };\n}));\n\nexport { base64WorkerScript, localVariablesAsyncIntegration };\n//# sourceMappingURL=local-variables-async.js.map\n", + "let cachedDebuggerEnabled;\nasync function isDebuggerEnabled() {\n if (cachedDebuggerEnabled === void 0) {\n try {\n const inspector = await import('node:inspector');\n cachedDebuggerEnabled = !!inspector.url();\n } catch {\n cachedDebuggerEnabled = false;\n }\n }\n return cachedDebuggerEnabled;\n}\n\nexport { isDebuggerEnabled };\n//# sourceMappingURL=debug.js.map\n", + "const LOCAL_VARIABLES_KEY = \"__SENTRY_ERROR_LOCAL_VARIABLES__\";\nfunction createRateLimiter(maxPerSecond, enable, disable) {\n let count = 0;\n let retrySeconds = 5;\n let disabledTimeout = 0;\n setInterval(() => {\n if (disabledTimeout === 0) {\n if (count > maxPerSecond) {\n retrySeconds *= 2;\n disable(retrySeconds);\n if (retrySeconds > 86400) {\n retrySeconds = 86400;\n }\n disabledTimeout = retrySeconds;\n }\n } else {\n disabledTimeout -= 1;\n if (disabledTimeout === 0) {\n enable();\n }\n }\n count = 0;\n }, 1e3).unref();\n return () => {\n count += 1;\n };\n}\nfunction isAnonymous(name) {\n return name !== void 0 && (name.length === 0 || name === \"?\" || name === \"\");\n}\nfunction functionNamesMatch(a, b) {\n return a === b || `Object.${a}` === b || a === `Object.${b}` || isAnonymous(a) && isAnonymous(b);\n}\n\nexport { LOCAL_VARIABLES_KEY, createRateLimiter, functionNamesMatch, isAnonymous };\n//# sourceMappingURL=common.js.map\n", + "import { defineIntegration, LRUMap, getClient, debug } from '@sentry/core';\nimport { NODE_MAJOR } from '../../nodeVersion.js';\nimport { isDebuggerEnabled } from '../../utils/debug.js';\nimport { createRateLimiter, functionNamesMatch } from './common.js';\n\nfunction hashFrames(frames) {\n if (frames === void 0) {\n return;\n }\n return frames.slice(-10).reduce((acc, frame) => `${acc},${frame.function},${frame.lineno},${frame.colno}`, \"\");\n}\nfunction hashFromStack(stackParser, stack) {\n if (stack === void 0) {\n return void 0;\n }\n return hashFrames(stackParser(stack, 1));\n}\nfunction createCallbackList(complete) {\n let callbacks = [];\n let completedCalled = false;\n function checkedComplete(result) {\n callbacks = [];\n if (completedCalled) {\n return;\n }\n completedCalled = true;\n complete(result);\n }\n callbacks.push(checkedComplete);\n function add(fn) {\n callbacks.push(fn);\n }\n function next(result) {\n const popped = callbacks.pop() || checkedComplete;\n try {\n popped(result);\n } catch {\n checkedComplete(result);\n }\n }\n return { add, next };\n}\nclass AsyncSession {\n /** Throws if inspector API is not available */\n constructor(_session) {\n this._session = _session;\n }\n static async create(orDefault) {\n if (orDefault) {\n return orDefault;\n }\n const inspector = await import('node:inspector');\n return new AsyncSession(new inspector.Session());\n }\n /** @inheritdoc */\n configureAndConnect(onPause, captureAll) {\n this._session.connect();\n this._session.on(\"Debugger.paused\", (event) => {\n onPause(event, () => {\n this._session.post(\"Debugger.resume\");\n });\n });\n this._session.post(\"Debugger.enable\");\n this._session.post(\"Debugger.setPauseOnExceptions\", { state: captureAll ? \"all\" : \"uncaught\" });\n }\n setPauseOnExceptions(captureAll) {\n this._session.post(\"Debugger.setPauseOnExceptions\", { state: captureAll ? \"all\" : \"uncaught\" });\n }\n /** @inheritdoc */\n getLocalVariables(objectId, complete) {\n this._getProperties(objectId, (props) => {\n const { add, next } = createCallbackList(complete);\n for (const prop of props) {\n if (prop.value?.objectId && prop.value.className === \"Array\") {\n const id = prop.value.objectId;\n add((vars) => this._unrollArray(id, prop.name, vars, next));\n } else if (prop.value?.objectId && prop.value.className === \"Object\") {\n const id = prop.value.objectId;\n add((vars) => this._unrollObject(id, prop.name, vars, next));\n } else if (prop.value) {\n add((vars) => this._unrollOther(prop, vars, next));\n }\n }\n next({});\n });\n }\n /**\n * Gets all the PropertyDescriptors of an object\n */\n _getProperties(objectId, next) {\n this._session.post(\n \"Runtime.getProperties\",\n {\n objectId,\n ownProperties: true\n },\n (err, params) => {\n if (err) {\n next([]);\n } else {\n next(params.result);\n }\n }\n );\n }\n /**\n * Unrolls an array property\n */\n _unrollArray(objectId, name, vars, next) {\n this._getProperties(objectId, (props) => {\n vars[name] = props.filter((v) => v.name !== \"length\" && !isNaN(parseInt(v.name, 10))).sort((a, b) => parseInt(a.name, 10) - parseInt(b.name, 10)).map((v) => v.value?.value);\n next(vars);\n });\n }\n /**\n * Unrolls an object property\n */\n _unrollObject(objectId, name, vars, next) {\n this._getProperties(objectId, (props) => {\n vars[name] = props.map((v) => [v.name, v.value?.value]).reduce((obj, [key, val]) => {\n obj[key] = val;\n return obj;\n }, {});\n next(vars);\n });\n }\n /**\n * Unrolls other properties\n */\n _unrollOther(prop, vars, next) {\n if (prop.value) {\n if (\"value\" in prop.value) {\n if (prop.value.value === void 0 || prop.value.value === null) {\n vars[prop.name] = `<${prop.value.value}>`;\n } else {\n vars[prop.name] = prop.value.value;\n }\n } else if (\"description\" in prop.value && prop.value.type !== \"function\") {\n vars[prop.name] = `<${prop.value.description}>`;\n } else if (prop.value.type === \"undefined\") {\n vars[prop.name] = \"\";\n }\n }\n next(vars);\n }\n}\nconst INTEGRATION_NAME = \"LocalVariables\";\nconst _localVariablesSyncIntegration = ((options = {}, sessionOverride) => {\n const cachedFrames = new LRUMap(20);\n let rateLimiter;\n let shouldProcessEvent = false;\n function addLocalVariablesToException(exception) {\n const hash = hashFrames(exception.stacktrace?.frames);\n if (hash === void 0) {\n return;\n }\n const cachedFrame = cachedFrames.remove(hash);\n if (cachedFrame === void 0) {\n return;\n }\n const frames = (exception.stacktrace?.frames || []).filter((frame) => frame.function !== \"new Promise\");\n for (let i = 0; i < frames.length; i++) {\n const frameIndex = frames.length - i - 1;\n const cachedFrameVariable = cachedFrame[i];\n const frameVariable = frames[frameIndex];\n if (!frameVariable || !cachedFrameVariable) {\n break;\n }\n if (\n // We need to have vars to add\n cachedFrameVariable.vars === void 0 || // Only skip out-of-app frames if includeOutOfAppFrames is not true\n frameVariable.in_app === false && options.includeOutOfAppFrames !== true || // The function names need to match\n !functionNamesMatch(frameVariable.function, cachedFrameVariable.function)\n ) {\n continue;\n }\n frameVariable.vars = cachedFrameVariable.vars;\n }\n }\n function addLocalVariablesToEvent(event) {\n for (const exception of event.exception?.values || []) {\n addLocalVariablesToException(exception);\n }\n return event;\n }\n let setupPromise;\n async function setup() {\n const client = getClient();\n const clientOptions = client?.getOptions();\n if (!clientOptions?.includeLocalVariables) {\n return;\n }\n const unsupportedNodeVersion = NODE_MAJOR < 18;\n if (unsupportedNodeVersion) {\n debug.log(\"The `LocalVariables` integration is only supported on Node >= v18.\");\n return;\n }\n if (await isDebuggerEnabled()) {\n debug.warn(\"Local variables capture has been disabled because the debugger was already enabled\");\n return;\n }\n try {\n const session = await AsyncSession.create(sessionOverride);\n const handlePaused = (stackParser, { params: { reason, data, callFrames } }, complete) => {\n if (reason !== \"exception\" && reason !== \"promiseRejection\") {\n complete();\n return;\n }\n rateLimiter?.();\n const exceptionHash = hashFromStack(stackParser, data.description);\n if (exceptionHash == void 0) {\n complete();\n return;\n }\n const { add, next } = createCallbackList((frames) => {\n cachedFrames.set(exceptionHash, frames);\n complete();\n });\n for (let i = 0; i < Math.min(callFrames.length, 5); i++) {\n const { scopeChain, functionName, this: obj } = callFrames[i];\n const localScope = scopeChain.find((scope) => scope.type === \"local\");\n const fn = obj.className === \"global\" || !obj.className ? functionName : `${obj.className}.${functionName}`;\n if (localScope?.object.objectId === void 0) {\n add((frames) => {\n frames[i] = { function: fn };\n next(frames);\n });\n } else {\n const id = localScope.object.objectId;\n add(\n (frames) => session.getLocalVariables(id, (vars) => {\n frames[i] = { function: fn, vars };\n next(frames);\n })\n );\n }\n }\n next([]);\n };\n const captureAll = options.captureAllExceptions !== false;\n session.configureAndConnect(\n (ev, complete) => handlePaused(clientOptions.stackParser, ev, complete),\n captureAll\n );\n if (captureAll) {\n const max = options.maxExceptionsPerSecond || 50;\n rateLimiter = createRateLimiter(\n max,\n () => {\n debug.log(\"Local variables rate-limit lifted.\");\n session.setPauseOnExceptions(true);\n },\n (seconds) => {\n debug.log(\n `Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${seconds} seconds.`\n );\n session.setPauseOnExceptions(false);\n }\n );\n }\n shouldProcessEvent = true;\n } catch (error) {\n debug.log(\"The `LocalVariables` integration failed to start.\", error);\n }\n }\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n setupPromise = setup();\n },\n async processEvent(event) {\n await setupPromise;\n if (shouldProcessEvent) {\n return addLocalVariablesToEvent(event);\n }\n return event;\n },\n // These are entirely for testing\n _getCachedFramesCount() {\n return cachedFrames.size;\n },\n _getFirstCachedFrame() {\n return cachedFrames.values()[0];\n }\n };\n});\nconst localVariablesSyncIntegration = defineIntegration(_localVariablesSyncIntegration);\n\nexport { createCallbackList, hashFrames, hashFromStack, localVariablesSyncIntegration };\n//# sourceMappingURL=local-variables-sync.js.map\n", "import { NODE_VERSION } from '../../nodeVersion.js';\nimport { localVariablesAsyncIntegration } from './local-variables-async.js';\nimport { localVariablesSyncIntegration } from './local-variables-sync.js';\n\nconst localVariablesIntegration = (options = {}) => {\n return NODE_VERSION.major < 19 ? localVariablesSyncIntegration(options) : localVariablesAsyncIntegration(options);\n};\n\nexport { localVariablesIntegration };\n//# sourceMappingURL=index.js.map\n", - "import { existsSync, readFileSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport { isCjs } from '../utils/detection.js';\n\nlet moduleCache;\n\nconst INTEGRATION_NAME = 'Modules';\n\n/**\n * `__SENTRY_SERVER_MODULES__` can be replaced at build time with the modules loaded by the server.\n * Right now, we leverage this in Next.js to circumvent the problem that we do not get access to these things at runtime.\n */\nconst SERVER_MODULES = typeof __SENTRY_SERVER_MODULES__ === 'undefined' ? {} : __SENTRY_SERVER_MODULES__;\n\nconst _modulesIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n event.modules = {\n ...event.modules,\n ..._getModules(),\n };\n\n return event;\n },\n getModules: _getModules,\n };\n}) ;\n\n/**\n * Add node modules / packages to the event.\n * For this, multiple sources are used:\n * - They can be injected at build time into the __SENTRY_SERVER_MODULES__ variable (e.g. in Next.js)\n * - They are extracted from the dependencies & devDependencies in the package.json file\n * - They are extracted from the require.cache (CJS only)\n */\nconst modulesIntegration = _modulesIntegration;\n\nfunction getRequireCachePaths() {\n try {\n return require.cache ? Object.keys(require.cache ) : [];\n } catch {\n return [];\n }\n}\n\n/** Extract information about package.json modules */\nfunction collectModules() {\n return {\n ...SERVER_MODULES,\n ...getModulesFromPackageJson(),\n ...(isCjs() ? collectRequireModules() : {}),\n };\n}\n\n/** Extract information about package.json modules from require.cache */\nfunction collectRequireModules() {\n const mainPaths = require.main?.paths || [];\n const paths = getRequireCachePaths();\n\n // We start with the modules from package.json (if possible)\n // These may be overwritten by more specific versions from the require.cache\n const infos = {};\n const seen = new Set();\n\n paths.forEach(path => {\n let dir = path;\n\n /** Traverse directories upward in the search of package.json file */\n const updir = () => {\n const orig = dir;\n dir = dirname(orig);\n\n if (!dir || orig === dir || seen.has(orig)) {\n return undefined;\n }\n if (mainPaths.indexOf(dir) < 0) {\n return updir();\n }\n\n const pkgfile = join(orig, 'package.json');\n seen.add(orig);\n\n if (!existsSync(pkgfile)) {\n return updir();\n }\n\n try {\n const info = JSON.parse(readFileSync(pkgfile, 'utf8'))\n\n;\n infos[info.name] = info.version;\n } catch {\n // no-empty\n }\n };\n\n updir();\n });\n\n return infos;\n}\n\n/** Fetches the list of modules and the versions loaded by the entry file for your node.js app. */\nfunction _getModules() {\n if (!moduleCache) {\n moduleCache = collectModules();\n }\n return moduleCache;\n}\n\nfunction getPackageJson() {\n try {\n const filePath = join(process.cwd(), 'package.json');\n const packageJson = JSON.parse(readFileSync(filePath, 'utf8')) ;\n\n return packageJson;\n } catch {\n return {};\n }\n}\n\nfunction getModulesFromPackageJson() {\n const packageJson = getPackageJson();\n\n return {\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n };\n}\n\nexport { modulesIntegration };\n//# sourceMappingURL=modules.js.map\n", - "import { consoleSandbox } from '@sentry/core';\nimport { NODE_MAJOR, NODE_MINOR } from '../nodeVersion.js';\n\n/** Detect CommonJS. */\nfunction isCjs() {\n try {\n // oxlint-disable-next-line typescript/prefer-optional-chain\n return typeof module !== 'undefined' && typeof module.exports !== 'undefined';\n } catch {\n return false;\n }\n}\n\nlet hasWarnedAboutNodeVersion;\n\n/**\n * Check if the current Node.js version supports module.register\n */\nfunction supportsEsmLoaderHooks() {\n if (isCjs()) {\n return false;\n }\n\n if (NODE_MAJOR >= 21 || (NODE_MAJOR === 20 && NODE_MINOR >= 6) || (NODE_MAJOR === 18 && NODE_MINOR >= 19)) {\n return true;\n }\n\n if (!hasWarnedAboutNodeVersion) {\n hasWarnedAboutNodeVersion = true;\n\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n `[Sentry] You are using Node.js v${process.versions.node} in ESM mode (\"import syntax\"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS (\"require() syntax\"), or upgrade your Node.js version.`,\n );\n });\n }\n\n return false;\n}\n\nexport { isCjs, supportsEsmLoaderHooks };\n//# sourceMappingURL=detection.js.map\n", - "import { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '../../otel/instrument.js';\nimport { SentryNodeFetchInstrumentation } from './SentryNodeFetchInstrumentation.js';\n\nconst INTEGRATION_NAME = 'NodeFetch';\n\nconst instrumentSentryNodeFetch = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n SentryNodeFetchInstrumentation,\n (options) => {\n return options;\n },\n);\n\nconst _nativeNodeFetchIntegration = ((options = {}) => {\n return {\n name: 'NodeFetch',\n setupOnce() {\n instrumentSentryNodeFetch(options);\n },\n };\n}) ;\n\nconst nativeNodeFetchIntegration = defineIntegration(_nativeNodeFetchIntegration);\n\nexport { nativeNodeFetchIntegration };\n//# sourceMappingURL=index.js.map\n", - "import { defineIntegration, getClient, captureException, debug } from '@sentry/core';\nimport { isMainThread } from 'worker_threads';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { logAndExitProcess } from '../utils/errorhandling.js';\n\nconst INTEGRATION_NAME = 'OnUncaughtException';\n\n/**\n * Add a global exception handler.\n */\nconst onUncaughtExceptionIntegration = defineIntegration((options = {}) => {\n const optionsWithDefaults = {\n exitEvenIfOtherHandlersAreRegistered: false,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n // errors in worker threads are already handled by the childProcessIntegration\n // also we don't want to exit the Node process on worker thread errors\n if (!isMainThread) {\n return;\n }\n\n global.process.on('uncaughtException', makeErrorHandler(client, optionsWithDefaults));\n },\n };\n});\n\n/** Exported only for tests */\nfunction makeErrorHandler(client, options) {\n const timeout = 2000;\n let caughtFirstError = false;\n let caughtSecondError = false;\n let calledFatalError = false;\n let firstError;\n\n const clientOptions = client.getOptions();\n\n return Object.assign(\n (error) => {\n let onFatalError = logAndExitProcess;\n\n if (options.onFatalError) {\n onFatalError = options.onFatalError;\n } else if (clientOptions.onFatalError) {\n onFatalError = clientOptions.onFatalError ;\n }\n\n // Attaching a listener to `uncaughtException` will prevent the node process from exiting. We generally do not\n // want to alter this behaviour so we check for other listeners that users may have attached themselves and adjust\n // exit behaviour of the SDK accordingly:\n // - If other listeners are attached, do not exit.\n // - If the only listener attached is ours, exit.\n const userProvidedListenersCount = (global.process.listeners('uncaughtException') ).filter(\n listener => {\n // There are 3 listeners we ignore:\n return (\n // as soon as we're using domains this listener is attached by node itself\n listener.name !== 'domainUncaughtExceptionClear' &&\n // the handler we register for tracing\n listener.tag !== 'sentry_tracingErrorCallback' &&\n // the handler we register in this integration\n (listener )._errorHandler !== true\n );\n },\n ).length;\n\n const processWouldExit = userProvidedListenersCount === 0;\n const shouldApplyFatalHandlingLogic = options.exitEvenIfOtherHandlersAreRegistered || processWouldExit;\n\n if (!caughtFirstError) {\n // this is the first uncaught error and the ultimate reason for shutting down\n // we want to do absolutely everything possible to ensure it gets captured\n // also we want to make sure we don't go recursion crazy if more errors happen after this one\n firstError = error;\n caughtFirstError = true;\n\n if (getClient() === client) {\n captureException(error, {\n originalException: error,\n captureContext: {\n level: 'fatal',\n },\n mechanism: {\n handled: false,\n type: 'auto.node.onuncaughtexception',\n },\n });\n }\n\n if (!calledFatalError && shouldApplyFatalHandlingLogic) {\n calledFatalError = true;\n onFatalError(error);\n }\n } else {\n if (shouldApplyFatalHandlingLogic) {\n if (calledFatalError) {\n // we hit an error *after* calling onFatalError - pretty boned at this point, just shut it down\n DEBUG_BUILD &&\n debug.warn(\n 'uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown',\n );\n logAndExitProcess(error);\n } else if (!caughtSecondError) {\n // two cases for how we can hit this branch:\n // - capturing of first error blew up and we just caught the exception from that\n // - quit trying to capture, proceed with shutdown\n // - a second independent error happened while waiting for first error to capture\n // - want to avoid causing premature shutdown before first error capture finishes\n // it's hard to immediately tell case 1 from case 2 without doing some fancy/questionable domain stuff\n // so let's instead just delay a bit before we proceed with our action here\n // in case 1, we just wait a bit unnecessarily but ultimately do the same thing\n // in case 2, the delay hopefully made us wait long enough for the capture to finish\n // two potential nonideal outcomes:\n // nonideal case 1: capturing fails fast, we sit around for a few seconds unnecessarily before proceeding correctly by calling onFatalError\n // nonideal case 2: case 2 happens, 1st error is captured but slowly, timeout completes before capture and we treat second error as the sendErr of (nonexistent) failure from trying to capture first error\n // note that after hitting this branch, we might catch more errors where (caughtSecondError && !calledFatalError)\n // we ignore them - they don't matter to us, we're just waiting for the second error timeout to finish\n caughtSecondError = true;\n setTimeout(() => {\n if (!calledFatalError) {\n // it was probably case 1, let's treat err as the sendErr and call onFatalError\n calledFatalError = true;\n onFatalError(firstError, error);\n }\n }, timeout); // capturing could take at least sendTimeout to fail, plus an arbitrary second for how long it takes to collect surrounding source etc\n }\n }\n }\n },\n { _errorHandler: true },\n );\n}\n\nexport { makeErrorHandler, onUncaughtExceptionIntegration };\n//# sourceMappingURL=onuncaughtexception.js.map\n", - "import { consoleSandbox, getClient, debug } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst DEFAULT_SHUTDOWN_TIMEOUT = 2000;\n\n/**\n * @hidden\n */\nfunction logAndExitProcess(error) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(error);\n });\n\n const client = getClient();\n\n if (client === undefined) {\n DEBUG_BUILD && debug.warn('No NodeClient was defined, we are exiting the process now.');\n global.process.exit(1);\n return;\n }\n\n const options = client.getOptions();\n const timeout =\n options?.shutdownTimeout && options.shutdownTimeout > 0 ? options.shutdownTimeout : DEFAULT_SHUTDOWN_TIMEOUT;\n client.close(timeout).then(\n (result) => {\n if (!result) {\n DEBUG_BUILD && debug.warn('We reached the timeout for emptying the request buffer, still exiting now!');\n }\n global.process.exit(1);\n },\n error => {\n DEBUG_BUILD && debug.error(error);\n },\n );\n}\n\nexport { logAndExitProcess };\n//# sourceMappingURL=errorhandling.js.map\n", - "import { defineIntegration, getClient, withActiveSpan, consoleSandbox, captureException, isMatchingPattern } from '@sentry/core';\nimport { logAndExitProcess } from '../utils/errorhandling.js';\n\nconst INTEGRATION_NAME = 'OnUnhandledRejection';\n\nconst DEFAULT_IGNORES = [\n {\n name: 'AI_NoOutputGeneratedError', // When stream aborts in Vercel AI SDK V5, Vercel flush() fails with an error\n },\n {\n name: 'AbortError', // When stream aborts in Vercel AI SDK V6\n },\n];\n\nconst _onUnhandledRejectionIntegration = ((options = {}) => {\n const opts = {\n mode: options.mode ?? 'warn',\n ignore: [...DEFAULT_IGNORES, ...(options.ignore ?? [])],\n };\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n global.process.on('unhandledRejection', makeUnhandledPromiseHandler(client, opts));\n },\n };\n}) ;\n\nconst onUnhandledRejectionIntegration = defineIntegration(_onUnhandledRejectionIntegration);\n\n/** Extract error info safely */\nfunction extractErrorInfo(reason) {\n // Check if reason is an object (including Error instances, not just plain objects)\n if (typeof reason !== 'object' || reason === null) {\n return { name: '', message: String(reason ?? '') };\n }\n\n const errorLike = reason ;\n const name = typeof errorLike.name === 'string' ? errorLike.name : '';\n const message = typeof errorLike.message === 'string' ? errorLike.message : String(reason);\n\n return { name, message };\n}\n\n/** Check if a matcher matches the reason */\nfunction isMatchingReason(matcher, errorInfo) {\n // name/message matcher\n const nameMatches = matcher.name === undefined || isMatchingPattern(errorInfo.name, matcher.name, true);\n\n const messageMatches = matcher.message === undefined || isMatchingPattern(errorInfo.message, matcher.message);\n\n return nameMatches && messageMatches;\n}\n\n/** Match helper */\nfunction matchesIgnore(list, reason) {\n const errorInfo = extractErrorInfo(reason);\n return list.some(matcher => isMatchingReason(matcher, errorInfo));\n}\n\n/** Core handler */\nfunction makeUnhandledPromiseHandler(\n client,\n options,\n) {\n return function sendUnhandledPromise(reason, promise) {\n // Only handle for the active client\n if (getClient() !== client) {\n return;\n }\n\n // Skip if configured to ignore\n if (matchesIgnore(options.ignore ?? [], reason)) {\n return;\n }\n\n const level = options.mode === 'strict' ? 'fatal' : 'error';\n\n // this can be set in places where we cannot reliably get access to the active span/error\n // when the error bubbles up to this handler, we can use this to set the active span\n const activeSpanForError =\n reason && typeof reason === 'object' ? (reason )._sentry_active_span : undefined;\n\n const activeSpanWrapper = activeSpanForError\n ? (fn) => withActiveSpan(activeSpanForError, fn)\n : (fn) => fn();\n\n activeSpanWrapper(() => {\n captureException(reason, {\n originalException: promise,\n captureContext: {\n extra: { unhandledPromiseRejection: true },\n level,\n },\n mechanism: {\n handled: false,\n type: 'auto.node.onunhandledrejection',\n },\n });\n });\n\n handleRejection(reason, options.mode);\n };\n}\n\n/**\n * Handler for `mode` option\n */\nfunction handleRejection(reason, mode) {\n // https://github.com/nodejs/node/blob/7cf6f9e964aa00772965391c23acda6d71972a9a/lib/internal/process/promises.js#L234-L240\n const rejectionWarning =\n 'This error originated either by ' +\n 'throwing inside of an async function without a catch block, ' +\n 'or by rejecting a promise which was not handled with .catch().' +\n ' The promise rejected with the reason:';\n\n /* eslint-disable no-console */\n if (mode === 'warn') {\n consoleSandbox(() => {\n console.warn(rejectionWarning);\n console.error(reason && typeof reason === 'object' && 'stack' in reason ? reason.stack : reason);\n });\n } else if (mode === 'strict') {\n consoleSandbox(() => {\n console.warn(rejectionWarning);\n });\n logAndExitProcess(reason);\n }\n /* eslint-enable no-console */\n}\n\nexport { makeUnhandledPromiseHandler, onUnhandledRejectionIntegration };\n//# sourceMappingURL=onunhandledrejection.js.map\n", - "import { defineIntegration, startSession, getIsolationScope, endSession } from '@sentry/core';\n\nconst INTEGRATION_NAME = 'ProcessSession';\n\n/**\n * Records a Session for the current process to track release health.\n */\nconst processSessionIntegration = defineIntegration(() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n startSession();\n\n // Emitted in the case of healthy sessions, error of `mechanism.handled: true` and unhandledrejections because\n // The 'beforeExit' event is not emitted for conditions causing explicit termination,\n // such as calling process.exit() or uncaught exceptions.\n // Ref: https://nodejs.org/api/process.html#process_event_beforeexit\n process.on('beforeExit', () => {\n const session = getIsolationScope().getSession();\n\n // Only call endSession, if the Session exists on Scope and SessionStatus is not a\n // Terminal Status i.e. Exited or Crashed because\n // \"When a session is moved away from ok it must not be updated anymore.\"\n // Ref: https://develop.sentry.dev/sdk/sessions/\n if (session?.status !== 'ok') {\n endSession();\n }\n });\n },\n };\n});\n\nexport { processSessionIntegration };\n//# sourceMappingURL=processSession.js.map\n", - "import * as http from 'node:http';\nimport { defineIntegration, debug, serializeEnvelope, suppressTracing } from '@sentry/core';\n\nconst INTEGRATION_NAME = 'Spotlight';\n\nconst _spotlightIntegration = ((options = {}) => {\n const _options = {\n sidecarUrl: options.sidecarUrl || 'http://localhost:8969/stream',\n };\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n try {\n if (process.env.NODE_ENV && process.env.NODE_ENV !== 'development') {\n debug.warn(\"[Spotlight] It seems you're not in dev mode. Do you really want to have Spotlight enabled?\");\n }\n } catch {\n // ignore\n }\n connectToSpotlight(client, _options);\n },\n };\n}) ;\n\n/**\n * Use this integration to send errors and transactions to Spotlight.\n *\n * Learn more about spotlight at https://spotlightjs.com\n *\n * Important: This integration only works with Node 18 or newer.\n */\nconst spotlightIntegration = defineIntegration(_spotlightIntegration);\n\nfunction connectToSpotlight(client, options) {\n const spotlightUrl = parseSidecarUrl(options.sidecarUrl);\n if (!spotlightUrl) {\n return;\n }\n\n let failedRequests = 0;\n\n client.on('beforeEnvelope', (envelope) => {\n if (failedRequests > 3) {\n debug.warn('[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests');\n return;\n }\n\n const serializedEnvelope = serializeEnvelope(envelope);\n suppressTracing(() => {\n const req = http.request(\n {\n method: 'POST',\n path: spotlightUrl.pathname,\n hostname: spotlightUrl.hostname,\n port: spotlightUrl.port,\n headers: {\n 'Content-Type': 'application/x-sentry-envelope',\n },\n },\n res => {\n if (res.statusCode && res.statusCode >= 200 && res.statusCode < 400) {\n // Reset failed requests counter on success\n failedRequests = 0;\n }\n res.on('data', () => {\n // Drain socket\n });\n\n res.on('end', () => {\n // Drain socket\n });\n res.setEncoding('utf8');\n },\n );\n\n req.on('error', () => {\n failedRequests++;\n debug.warn('[Spotlight] Failed to send envelope to Spotlight Sidecar');\n });\n req.write(serializedEnvelope);\n req.end();\n });\n });\n}\n\nfunction parseSidecarUrl(url) {\n try {\n return new URL(`${url}`);\n } catch {\n debug.warn(`[Spotlight] Invalid sidecar URL: ${url}`);\n return undefined;\n }\n}\n\nexport { INTEGRATION_NAME, spotlightIntegration };\n//# sourceMappingURL=spotlight.js.map\n", - "import * as util from 'node:util';\nimport { defineIntegration } from '@sentry/core';\n\nconst INTEGRATION_NAME = 'NodeSystemError';\n\nfunction isSystemError(error) {\n if (!(error instanceof Error)) {\n return false;\n }\n\n if (!('errno' in error) || typeof error.errno !== 'number') {\n return false;\n }\n\n // Appears this is the recommended way to check for Node.js SystemError\n // https://github.com/nodejs/node/issues/46869\n return util.getSystemErrorMap().has(error.errno);\n}\n\n/**\n * Captures context for Node.js SystemError errors.\n */\nconst systemErrorIntegration = defineIntegration((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n processEvent: (event, hint, client) => {\n if (!isSystemError(hint.originalException)) {\n return event;\n }\n\n const error = hint.originalException;\n\n const errorContext = {\n ...(error ),\n };\n\n if (!client.getOptions().sendDefaultPii && options.includePaths !== true) {\n delete errorContext.path;\n delete errorContext.dest;\n }\n\n event.contexts = {\n ...event.contexts,\n node_system_error: errorContext,\n };\n\n for (const exception of event.exception?.values || []) {\n if (exception.value) {\n if (error.path && exception.value.includes(error.path)) {\n exception.value = exception.value.replace(`'${error.path}'`, '').trim();\n }\n if (error.dest && exception.value.includes(error.dest)) {\n exception.value = exception.value.replace(`'${error.dest}'`, '').trim();\n }\n }\n }\n\n return event;\n },\n };\n});\n\nexport { systemErrorIntegration };\n//# sourceMappingURL=systemError.js.map\n", - "import * as http from 'node:http';\nimport * as https from 'node:https';\nimport { Readable } from 'node:stream';\nimport { createGzip } from 'node:zlib';\nimport { consoleSandbox, createTransport, suppressTracing } from '@sentry/core';\nimport { HttpsProxyAgent } from '../proxy/index.js';\n\n// Estimated maximum size for reasonable standalone event\nconst GZIP_THRESHOLD = 1024 * 32;\n\n/**\n * Gets a stream from a Uint8Array or string\n * Readable.from is ideal but was added in node.js v12.3.0 and v10.17.0\n */\nfunction streamFromBody(body) {\n return new Readable({\n read() {\n this.push(body);\n this.push(null);\n },\n });\n}\n\n/**\n * Creates a Transport that uses native the native 'http' and 'https' modules to send events to Sentry.\n */\nfunction makeNodeTransport(options) {\n let urlSegments;\n\n try {\n urlSegments = new URL(options.url);\n } catch (_e) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.',\n );\n });\n return createTransport(options, () => Promise.resolve({}));\n }\n\n const isHttps = urlSegments.protocol === 'https:';\n\n // Proxy prioritization: http => `options.proxy` | `process.env.http_proxy`\n // Proxy prioritization: https => `options.proxy` | `process.env.https_proxy` | `process.env.http_proxy`\n const proxy = applyNoProxyOption(\n urlSegments,\n options.proxy || (isHttps ? process.env.https_proxy : undefined) || process.env.http_proxy,\n );\n\n const nativeHttpModule = isHttps ? https : http;\n const keepAlive = options.keepAlive === undefined ? false : options.keepAlive;\n\n // TODO(v11): Evaluate if we can set keepAlive to true. This would involve testing for memory leaks in older node\n // versions(>= 8) as they had memory leaks when using it: #2555\n const agent = proxy\n ? (new HttpsProxyAgent(proxy) )\n : new nativeHttpModule.Agent({ keepAlive, maxSockets: 30, timeout: 2000 });\n\n const requestExecutor = createRequestExecutor(options, options.httpModule ?? nativeHttpModule, agent);\n return createTransport(options, requestExecutor);\n}\n\n/**\n * Honors the `no_proxy` env variable with the highest priority to allow for hosts exclusion.\n *\n * @param transportUrl The URL the transport intends to send events to.\n * @param proxy The client configured proxy.\n * @returns A proxy the transport should use.\n */\nfunction applyNoProxyOption(transportUrlSegments, proxy) {\n const { no_proxy } = process.env;\n\n const urlIsExemptFromProxy = no_proxy\n ?.split(',')\n .some(\n exemption => transportUrlSegments.host.endsWith(exemption) || transportUrlSegments.hostname.endsWith(exemption),\n );\n\n if (urlIsExemptFromProxy) {\n return undefined;\n } else {\n return proxy;\n }\n}\n\n/**\n * Creates a RequestExecutor to be used with `createTransport`.\n */\nfunction createRequestExecutor(\n options,\n httpModule,\n agent,\n) {\n const { hostname, pathname, port, protocol, search } = new URL(options.url);\n return function makeRequest(request) {\n return new Promise((resolve, reject) => {\n // This ensures we do not generate any spans in OpenTelemetry for the transport\n suppressTracing(() => {\n let body = streamFromBody(request.body);\n\n const headers = { ...options.headers };\n\n if (request.body.length > GZIP_THRESHOLD) {\n headers['content-encoding'] = 'gzip';\n body = body.pipe(createGzip());\n }\n\n const hostnameIsIPv6 = hostname.startsWith('[');\n\n const req = httpModule.request(\n {\n method: 'POST',\n agent,\n headers,\n // Remove \"[\" and \"]\" from IPv6 hostnames\n hostname: hostnameIsIPv6 ? hostname.slice(1, -1) : hostname,\n path: `${pathname}${search}`,\n port,\n protocol,\n ca: options.caCerts,\n },\n res => {\n res.on('data', () => {\n // Drain socket\n });\n\n res.on('end', () => {\n // Drain socket\n });\n\n res.setEncoding('utf8');\n\n // \"Key-value pairs of header names and values. Header names are lower-cased.\"\n // https://nodejs.org/api/http.html#http_message_headers\n const retryAfterHeader = res.headers['retry-after'] ?? null;\n const rateLimitsHeader = res.headers['x-sentry-rate-limits'] ?? null;\n\n resolve({\n statusCode: res.statusCode,\n headers: {\n 'retry-after': retryAfterHeader,\n 'x-sentry-rate-limits': Array.isArray(rateLimitsHeader)\n ? rateLimitsHeader[0] || null\n : rateLimitsHeader,\n },\n });\n },\n );\n\n req.on('error', reject);\n body.pipe(req);\n });\n });\n };\n}\n\nexport { makeNodeTransport };\n//# sourceMappingURL=http.js.map\n", - "import * as net from 'node:net';\nimport * as tls from 'node:tls';\nimport { debug } from '@sentry/core';\nimport { Agent } from './base.js';\nimport { parseProxyResponse } from './parse-proxy-response.js';\n\nfunction debugLog(...args) {\n debug.log('[https-proxy-agent]', ...args);\n}\n\n/**\n * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to\n * the specified \"HTTP(s) proxy server\" in order to proxy HTTPS requests.\n *\n * Outgoing HTTP requests are first tunneled through the proxy server using the\n * `CONNECT` HTTP request method to establish a connection to the proxy server,\n * and then the proxy server connects to the destination target and issues the\n * HTTP request from the proxy server.\n *\n * `https:` requests have their socket connection upgraded to TLS once\n * the connection to the proxy server has been established.\n */\nclass HttpsProxyAgent extends Agent {\n static __initStatic() {this.protocols = ['http', 'https']; }\n\n constructor(proxy, opts) {\n super(opts);\n this.options = {};\n this.proxy = typeof proxy === 'string' ? new URL(proxy) : proxy;\n this.proxyHeaders = opts?.headers ?? {};\n debugLog('Creating new HttpsProxyAgent instance: %o', this.proxy.href);\n\n // Trim off the brackets from IPv6 addresses\n const host = (this.proxy.hostname || this.proxy.host).replace(/^\\[|\\]$/g, '');\n const port = this.proxy.port ? parseInt(this.proxy.port, 10) : this.proxy.protocol === 'https:' ? 443 : 80;\n this.connectOpts = {\n // Attempt to negotiate http/1.1 for proxy servers that support http/2\n ALPNProtocols: ['http/1.1'],\n ...(opts ? omit(opts, 'headers') : null),\n host,\n port,\n };\n }\n\n /**\n * Called when the node-core HTTP client library is creating a\n * new HTTP request.\n */\n async connect(req, opts) {\n const { proxy } = this;\n\n if (!opts.host) {\n throw new TypeError('No \"host\" provided');\n }\n\n // Create a socket connection to the proxy server.\n let socket;\n if (proxy.protocol === 'https:') {\n debugLog('Creating `tls.Socket`: %o', this.connectOpts);\n const servername = this.connectOpts.servername || this.connectOpts.host;\n socket = tls.connect({\n ...this.connectOpts,\n servername: servername && net.isIP(servername) ? undefined : servername,\n });\n } else {\n debugLog('Creating `net.Socket`: %o', this.connectOpts);\n socket = net.connect(this.connectOpts);\n }\n\n const headers =\n typeof this.proxyHeaders === 'function' ? this.proxyHeaders() : { ...this.proxyHeaders };\n const host = net.isIPv6(opts.host) ? `[${opts.host}]` : opts.host;\n let payload = `CONNECT ${host}:${opts.port} HTTP/1.1\\r\\n`;\n\n // Inject the `Proxy-Authorization` header if necessary.\n if (proxy.username || proxy.password) {\n const auth = `${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`;\n headers['Proxy-Authorization'] = `Basic ${Buffer.from(auth).toString('base64')}`;\n }\n\n headers.Host = `${host}:${opts.port}`;\n\n if (!headers['Proxy-Connection']) {\n headers['Proxy-Connection'] = this.keepAlive ? 'Keep-Alive' : 'close';\n }\n for (const name of Object.keys(headers)) {\n payload += `${name}: ${headers[name]}\\r\\n`;\n }\n\n const proxyResponsePromise = parseProxyResponse(socket);\n\n socket.write(`${payload}\\r\\n`);\n\n const { connect, buffered } = await proxyResponsePromise;\n req.emit('proxyConnect', connect);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore Not EventEmitter in Node types\n this.emit('proxyConnect', connect, req);\n\n if (connect.statusCode === 200) {\n req.once('socket', resume);\n\n if (opts.secureEndpoint) {\n // The proxy is connecting to a TLS server, so upgrade\n // this socket connection to a TLS connection.\n debugLog('Upgrading socket connection to TLS');\n const servername = opts.servername || opts.host;\n return tls.connect({\n ...omit(opts, 'host', 'path', 'port'),\n socket,\n servername: net.isIP(servername) ? undefined : servername,\n });\n }\n\n return socket;\n }\n\n // Some other status code that's not 200... need to re-play the HTTP\n // header \"data\" events onto the socket once the HTTP machinery is\n // attached so that the node core `http` can parse and handle the\n // error status code.\n\n // Close the original socket, and a new \"fake\" socket is returned\n // instead, so that the proxy doesn't get the HTTP request\n // written to it (which may contain `Authorization` headers or other\n // sensitive data).\n //\n // See: https://hackerone.com/reports/541502\n socket.destroy();\n\n const fakeSocket = new net.Socket({ writable: false });\n fakeSocket.readable = true;\n\n // Need to wait for the \"socket\" event to re-play the \"data\" events.\n req.once('socket', (s) => {\n debugLog('Replaying proxy buffer for failed request');\n // Replay the \"buffered\" Buffer onto the fake `socket`, since at\n // this point the HTTP module machinery has been hooked up for\n // the user.\n s.push(buffered);\n s.push(null);\n });\n\n return fakeSocket;\n }\n} HttpsProxyAgent.__initStatic();\n\nfunction resume(socket) {\n socket.resume();\n}\n\nfunction omit(\n obj,\n ...keys\n)\n\n {\n const ret = {}\n\n;\n let key;\n for (key in obj) {\n if (!keys.includes(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n}\n\nexport { HttpsProxyAgent };\n//# sourceMappingURL=index.js.map\n", - "import * as http from 'node:http';\nimport 'node:https';\n\n/**\n * This code was originally forked from https://github.com/TooTallNate/proxy-agents/tree/b133295fd16f6475578b6b15bd9b4e33ecb0d0b7\n * With the following LICENSE:\n *\n * (The MIT License)\n *\n * Copyright (c) 2013 Nathan Rajlich *\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:*\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.*\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n\nconst INTERNAL = Symbol('AgentBaseInternalState');\n\nclass Agent extends http.Agent {\n\n // Set by `http.Agent` - missing from `@types/node`\n\n constructor(opts) {\n super(opts);\n this[INTERNAL] = {};\n }\n\n /**\n * Determine whether this is an `http` or `https` request.\n */\n isSecureEndpoint(options) {\n if (options) {\n // First check the `secureEndpoint` property explicitly, since this\n // means that a parent `Agent` is \"passing through\" to this instance.\n if (typeof (options ).secureEndpoint === 'boolean') {\n return options.secureEndpoint;\n }\n\n // If no explicit `secure` endpoint, check if `protocol` property is\n // set. This will usually be the case since using a full string URL\n // or `URL` instance should be the most common usage.\n if (typeof options.protocol === 'string') {\n return options.protocol === 'https:';\n }\n }\n\n // Finally, if no `protocol` property was set, then fall back to\n // checking the stack trace of the current call stack, and try to\n // detect the \"https\" module.\n const { stack } = new Error();\n if (typeof stack !== 'string') return false;\n return stack.split('\\n').some(l => l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1);\n }\n\n createSocket(req, options, cb) {\n const connectOpts = {\n ...options,\n secureEndpoint: this.isSecureEndpoint(options),\n };\n Promise.resolve()\n .then(() => this.connect(req, connectOpts))\n .then(socket => {\n if (socket instanceof http.Agent) {\n // @ts-expect-error `addRequest()` isn't defined in `@types/node`\n return socket.addRequest(req, connectOpts);\n }\n this[INTERNAL].currentSocket = socket;\n // @ts-expect-error `createSocket()` isn't defined in `@types/node`\n super.createSocket(req, options, cb);\n }, cb);\n }\n\n createConnection() {\n const socket = this[INTERNAL].currentSocket;\n this[INTERNAL].currentSocket = undefined;\n if (!socket) {\n throw new Error('No socket was returned in the `connect()` function');\n }\n return socket;\n }\n\n get defaultPort() {\n return this[INTERNAL].defaultPort ?? (this.protocol === 'https:' ? 443 : 80);\n }\n\n set defaultPort(v) {\n if (this[INTERNAL]) {\n this[INTERNAL].defaultPort = v;\n }\n }\n\n get protocol() {\n return this[INTERNAL].protocol ?? (this.isSecureEndpoint() ? 'https:' : 'http:');\n }\n\n set protocol(v) {\n if (this[INTERNAL]) {\n this[INTERNAL].protocol = v;\n }\n }\n}\n\nexport { Agent };\n//# sourceMappingURL=base.js.map\n", - "import { debug } from '@sentry/core';\n\nfunction debugLog(...args) {\n debug.log('[https-proxy-agent:parse-proxy-response]', ...args);\n}\n\nfunction parseProxyResponse(socket) {\n return new Promise((resolve, reject) => {\n // we need to buffer any HTTP traffic that happens with the proxy before we get\n // the CONNECT response, so that if the response is anything other than an \"200\"\n // response code, then we can re-play the \"data\" events on the socket once the\n // HTTP parser is hooked up...\n let buffersLength = 0;\n const buffers = [];\n\n function read() {\n const b = socket.read();\n if (b) ondata(b);\n else socket.once('readable', read);\n }\n\n function cleanup() {\n socket.removeListener('end', onend);\n socket.removeListener('error', onerror);\n socket.removeListener('readable', read);\n }\n\n function onend() {\n cleanup();\n debugLog('onend');\n reject(new Error('Proxy connection ended before receiving CONNECT response'));\n }\n\n function onerror(err) {\n cleanup();\n debugLog('onerror %o', err);\n reject(err);\n }\n\n function ondata(b) {\n buffers.push(b);\n buffersLength += b.length;\n\n const buffered = Buffer.concat(buffers, buffersLength);\n const endOfHeaders = buffered.indexOf('\\r\\n\\r\\n');\n\n if (endOfHeaders === -1) {\n // keep buffering\n debugLog('have not received end of HTTP headers yet...');\n read();\n return;\n }\n\n const headerParts = buffered.subarray(0, endOfHeaders).toString('ascii').split('\\r\\n');\n const firstLine = headerParts.shift();\n if (!firstLine) {\n socket.destroy();\n return reject(new Error('No header received from proxy CONNECT response'));\n }\n const firstLineParts = firstLine.split(' ');\n const statusCode = +(firstLineParts[1] || 0);\n const statusText = firstLineParts.slice(2).join(' ');\n const headers = {};\n for (const header of headerParts) {\n if (!header) continue;\n const firstColon = header.indexOf(':');\n if (firstColon === -1) {\n socket.destroy();\n return reject(new Error(`Invalid header from proxy CONNECT response: \"${header}\"`));\n }\n const key = header.slice(0, firstColon).toLowerCase();\n const value = header.slice(firstColon + 1).trimStart();\n const current = headers[key];\n if (typeof current === 'string') {\n headers[key] = [current, value];\n } else if (Array.isArray(current)) {\n current.push(value);\n } else {\n headers[key] = value;\n }\n }\n debugLog('got proxy server response: %o %o', firstLine, headers);\n cleanup();\n resolve({\n connect: {\n statusCode,\n statusText,\n headers,\n },\n buffered,\n });\n }\n\n socket.on('error', onerror);\n socket.on('end', onend);\n\n read();\n });\n}\n\nexport { parseProxyResponse };\n//# sourceMappingURL=parse-proxy-response.js.map\n", - "import { envToBool } from '@sentry/core';\n\n/**\n * Parse the spotlight option with proper precedence:\n * - `false` or explicit string from options: use as-is\n * - `true`: enable spotlight, but prefer a custom URL from the env var if set\n * - `undefined`: defer entirely to the env var (bool or URL)\n */\nfunction getSpotlightConfig(optionsSpotlight) {\n if (optionsSpotlight === false) {\n return false;\n }\n\n if (typeof optionsSpotlight === 'string') {\n return optionsSpotlight;\n }\n\n // optionsSpotlight is true or undefined\n const envBool = envToBool(process.env.SENTRY_SPOTLIGHT, { strict: true });\n const envUrl = envBool === null && process.env.SENTRY_SPOTLIGHT ? process.env.SENTRY_SPOTLIGHT : undefined;\n\n return optionsSpotlight === true\n ? (envUrl ?? true) // true: use env URL if present, otherwise true\n : (envBool ?? envUrl); // undefined: use env var (bool or URL)\n}\n\nexport { getSpotlightConfig };\n//# sourceMappingURL=spotlight.js.map\n", - "import { posix, sep } from 'node:path';\nimport { dirname } from '@sentry/core';\n\n/** normalizes Windows paths */\nfunction normalizeWindowsPath(path) {\n return path\n .replace(/^[A-Z]:/, '') // remove Windows-style prefix\n .replace(/\\\\/g, '/'); // replace all `\\` instances with `/`\n}\n\n/** Creates a function that gets the module name from a filename */\nfunction createGetModuleFromFilename(\n basePath = process.argv[1] ? dirname(process.argv[1]) : process.cwd(),\n isWindows = sep === '\\\\',\n) {\n const normalizedBase = isWindows ? normalizeWindowsPath(basePath) : basePath;\n\n return (filename) => {\n if (!filename) {\n return;\n }\n\n const normalizedFilename = isWindows ? normalizeWindowsPath(filename) : filename;\n\n // eslint-disable-next-line prefer-const\n let { dir, base: file, ext } = posix.parse(normalizedFilename);\n\n if (ext === '.js' || ext === '.mjs' || ext === '.cjs') {\n file = file.slice(0, ext.length * -1);\n }\n\n // The file name might be URI-encoded which we want to decode to\n // the original file name.\n const decodedFile = decodeURIComponent(file);\n\n if (!dir) {\n // No dirname whatsoever\n dir = '.';\n }\n\n const n = dir.lastIndexOf('/node_modules');\n if (n > -1) {\n return `${dir.slice(n + 14).replace(/\\//g, '.')}:${decodedFile}`;\n }\n\n // Let's see if it's a part of the main module\n // To be a part of main module, it has to share the same base\n if (dir.startsWith(normalizedBase)) {\n const moduleName = dir.slice(normalizedBase.length + 1).replace(/\\//g, '.');\n return moduleName ? `${moduleName}:${decodedFile}` : decodedFile;\n }\n\n return decodedFile;\n };\n}\n\nexport { createGetModuleFromFilename };\n//# sourceMappingURL=module.js.map\n", - "import { createStackParser, nodeStackLineParser, GLOBAL_OBJ } from '@sentry/core';\nimport { createGetModuleFromFilename } from '../utils/module.js';\n\n/**\n * Returns a release dynamically from environment variables.\n */\n// eslint-disable-next-line complexity\nfunction getSentryRelease(fallback) {\n // Always read first as Sentry takes this as precedence\n if (process.env.SENTRY_RELEASE) {\n return process.env.SENTRY_RELEASE;\n }\n\n // This supports the variable that sentry-webpack-plugin injects\n if (GLOBAL_OBJ.SENTRY_RELEASE?.id) {\n return GLOBAL_OBJ.SENTRY_RELEASE.id;\n }\n\n // This list is in approximate alpha order, separated into 3 categories:\n // 1. Git providers\n // 2. CI providers with specific environment variables (has the provider name in the variable name)\n // 3. CI providers with generic environment variables (checked for last to prevent possible false positives)\n\n const possibleReleaseNameOfGitProvider =\n // GitHub Actions - https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables#default-environment-variables\n process.env['GITHUB_SHA'] ||\n // GitLab CI - https://docs.gitlab.com/ee/ci/variables/predefined_variables.html\n process.env['CI_MERGE_REQUEST_SOURCE_BRANCH_SHA'] ||\n process.env['CI_BUILD_REF'] ||\n process.env['CI_COMMIT_SHA'] ||\n // Bitbucket - https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/\n process.env['BITBUCKET_COMMIT'];\n\n const possibleReleaseNameOfCiProvidersWithSpecificEnvVar =\n // AppVeyor - https://www.appveyor.com/docs/environment-variables/\n process.env['APPVEYOR_PULL_REQUEST_HEAD_COMMIT'] ||\n process.env['APPVEYOR_REPO_COMMIT'] ||\n // AWS CodeBuild - https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html\n process.env['CODEBUILD_RESOLVED_SOURCE_VERSION'] ||\n // AWS Amplify - https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html\n process.env['AWS_COMMIT_ID'] ||\n // Azure Pipelines - https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml\n process.env['BUILD_SOURCEVERSION'] ||\n // Bitrise - https://devcenter.bitrise.io/builds/available-environment-variables/\n process.env['GIT_CLONE_COMMIT_HASH'] ||\n // Buddy CI - https://buddy.works/docs/pipelines/environment-variables#default-environment-variables\n process.env['BUDDY_EXECUTION_REVISION'] ||\n // Builtkite - https://buildkite.com/docs/pipelines/environment-variables\n process.env['BUILDKITE_COMMIT'] ||\n // CircleCI - https://circleci.com/docs/variables/\n process.env['CIRCLE_SHA1'] ||\n // Cirrus CI - https://cirrus-ci.org/guide/writing-tasks/#environment-variables\n process.env['CIRRUS_CHANGE_IN_REPO'] ||\n // Codefresh - https://codefresh.io/docs/docs/codefresh-yaml/variables/\n process.env['CF_REVISION'] ||\n // Codemagic - https://docs.codemagic.io/yaml-basic-configuration/environment-variables/\n process.env['CM_COMMIT'] ||\n // Cloudflare Pages - https://developers.cloudflare.com/pages/platform/build-configuration/#environment-variables\n process.env['CF_PAGES_COMMIT_SHA'] ||\n // Drone - https://docs.drone.io/pipeline/environment/reference/\n process.env['DRONE_COMMIT_SHA'] ||\n // Flightcontrol - https://www.flightcontrol.dev/docs/guides/flightcontrol/environment-variables#built-in-environment-variables\n process.env['FC_GIT_COMMIT_SHA'] ||\n // Heroku #1 https://devcenter.heroku.com/articles/heroku-ci\n process.env['HEROKU_TEST_RUN_COMMIT_VERSION'] ||\n // Heroku #2 https://devcenter.heroku.com/articles/dyno-metadata#dyno-metadata\n process.env['HEROKU_BUILD_COMMIT'] ||\n // Heroku #3 (deprecated by Heroku, kept for backward compatibility)\n process.env['HEROKU_SLUG_COMMIT'] ||\n // Railway - https://docs.railway.app/reference/variables#git-variables\n process.env['RAILWAY_GIT_COMMIT_SHA'] ||\n // Render - https://render.com/docs/environment-variables\n process.env['RENDER_GIT_COMMIT'] ||\n // Semaphore CI - https://docs.semaphoreci.com/ci-cd-environment/environment-variables\n process.env['SEMAPHORE_GIT_SHA'] ||\n // TravisCI - https://docs.travis-ci.com/user/environment-variables/#default-environment-variables\n process.env['TRAVIS_PULL_REQUEST_SHA'] ||\n // Vercel - https://vercel.com/docs/v2/build-step#system-environment-variables\n process.env['VERCEL_GIT_COMMIT_SHA'] ||\n process.env['VERCEL_GITHUB_COMMIT_SHA'] ||\n process.env['VERCEL_GITLAB_COMMIT_SHA'] ||\n process.env['VERCEL_BITBUCKET_COMMIT_SHA'] ||\n // Zeit (now known as Vercel)\n process.env['ZEIT_GITHUB_COMMIT_SHA'] ||\n process.env['ZEIT_GITLAB_COMMIT_SHA'] ||\n process.env['ZEIT_BITBUCKET_COMMIT_SHA'];\n\n const possibleReleaseNameOfCiProvidersWithGenericEnvVar =\n // CloudBees CodeShip - https://docs.cloudbees.com/docs/cloudbees-codeship/latest/pro-builds-and-configuration/environment-variables\n process.env['CI_COMMIT_ID'] ||\n // Coolify - https://coolify.io/docs/knowledge-base/environment-variables\n process.env['SOURCE_COMMIT'] ||\n // Heroku #3 https://devcenter.heroku.com/changelog-items/630\n process.env['SOURCE_VERSION'] ||\n // Jenkins - https://plugins.jenkins.io/git/#environment-variables\n process.env['GIT_COMMIT'] ||\n // Netlify - https://docs.netlify.com/configure-builds/environment-variables/#build-metadata\n process.env['COMMIT_REF'] ||\n // TeamCity - https://www.jetbrains.com/help/teamcity/predefined-build-parameters.html\n process.env['BUILD_VCS_NUMBER'] ||\n // Woodpecker CI - https://woodpecker-ci.org/docs/usage/environment\n process.env['CI_COMMIT_SHA'];\n\n return (\n possibleReleaseNameOfGitProvider ||\n possibleReleaseNameOfCiProvidersWithSpecificEnvVar ||\n possibleReleaseNameOfCiProvidersWithGenericEnvVar ||\n fallback\n );\n}\n\n/** Node.js stack parser */\nconst defaultStackParser = createStackParser(nodeStackLineParser(createGetModuleFromFilename()));\n\nexport { defaultStackParser, getSentryRelease };\n//# sourceMappingURL=api.js.map\n", - "import * as os from 'node:os';\nimport { trace } from '@opentelemetry/api';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { ServerRuntimeClient, applySdkMetadata, debug, _INTERNAL_flushLogsBuffer, SDK_VERSION, _INTERNAL_clearAiProviderSkips } from '@sentry/core';\nimport { getTraceContextForScope } from '@sentry/opentelemetry';\nimport { threadId, isMainThread } from 'worker_threads';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst DEFAULT_CLIENT_REPORT_FLUSH_INTERVAL_MS = 60000; // 60s was chosen arbitrarily\n\n/** A client for using Sentry with Node & OpenTelemetry. */\nclass NodeClient extends ServerRuntimeClient {\n\n constructor(options) {\n const serverName =\n options.includeServerName === false\n ? undefined\n : options.serverName || global.process.env.SENTRY_NAME || os.hostname();\n\n const clientOptions = {\n ...options,\n platform: 'node',\n // Use provided runtime or default to 'node' with current process version\n runtime: options.runtime || { name: 'node', version: global.process.version },\n serverName,\n };\n\n if (options.openTelemetryInstrumentations) {\n registerInstrumentations({\n instrumentations: options.openTelemetryInstrumentations,\n });\n }\n\n applySdkMetadata(clientOptions, 'node');\n\n debug.log(`Initializing Sentry: process: ${process.pid}, thread: ${isMainThread ? 'main' : `worker-${threadId}`}.`);\n\n super(clientOptions);\n\n if (this.getOptions().enableLogs) {\n this._logOnExitFlushListener = () => {\n _INTERNAL_flushLogsBuffer(this);\n };\n\n if (serverName) {\n this.on('beforeCaptureLog', log => {\n log.attributes = {\n ...log.attributes,\n 'server.address': serverName,\n };\n });\n }\n\n process.on('beforeExit', this._logOnExitFlushListener);\n }\n }\n\n /** Get the OTEL tracer. */\n get tracer() {\n if (this._tracer) {\n return this._tracer;\n }\n\n const name = '@sentry/node';\n const version = SDK_VERSION;\n const tracer = trace.getTracer(name, version);\n this._tracer = tracer;\n\n return tracer;\n }\n\n /** @inheritDoc */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async flush(timeout) {\n await this.traceProvider?.forceFlush();\n\n if (this.getOptions().sendClientReports) {\n this._flushOutcomes();\n }\n\n return super.flush(timeout);\n }\n\n /** @inheritDoc */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async close(timeout) {\n if (this._clientReportInterval) {\n clearInterval(this._clientReportInterval);\n }\n\n if (this._clientReportOnExitFlushListener) {\n process.off('beforeExit', this._clientReportOnExitFlushListener);\n }\n\n if (this._logOnExitFlushListener) {\n process.off('beforeExit', this._logOnExitFlushListener);\n }\n\n const allEventsSent = await super.close(timeout);\n if (this.traceProvider) {\n await this.traceProvider.shutdown();\n }\n\n return allEventsSent;\n }\n\n /**\n * Will start tracking client reports for this client.\n *\n * NOTICE: This method will create an interval that is periodically called and attach a `process.on('beforeExit')`\n * hook. To clean up these resources, call `.close()` when you no longer intend to use the client. Not doing so will\n * result in a memory leak.\n */\n // The reason client reports need to be manually activated with this method instead of just enabling them in a\n // constructor, is that if users periodically and unboundedly create new clients, we will create more and more\n // intervals and beforeExit listeners, thus leaking memory. In these situations, users are required to call\n // `client.close()` in order to dispose of the acquired resources.\n // We assume that calling this method in Sentry.init() is a sensible default, because calling Sentry.init() over and\n // over again would also result in memory leaks.\n // Note: We have experimented with using `FinalizationRegisty` to clear the interval when the client is garbage\n // collected, but it did not work, because the cleanup function never got called.\n startClientReportTracking() {\n const clientOptions = this.getOptions();\n if (clientOptions.sendClientReports) {\n this._clientReportOnExitFlushListener = () => {\n this._flushOutcomes();\n };\n\n this._clientReportInterval = setInterval(() => {\n DEBUG_BUILD && debug.log('Flushing client reports based on interval.');\n this._flushOutcomes();\n }, clientOptions.clientReportFlushInterval ?? DEFAULT_CLIENT_REPORT_FLUSH_INTERVAL_MS)\n // Unref is critical for not preventing the process from exiting because the interval is active.\n .unref();\n\n process.on('beforeExit', this._clientReportOnExitFlushListener);\n }\n }\n\n /** @inheritDoc */\n _setupIntegrations() {\n // Clear AI provider skip registrations before setting up integrations\n // This ensures a clean state between different client initializations\n // (e.g., when LangChain skips OpenAI in one client, but a subsequent client uses OpenAI standalone)\n _INTERNAL_clearAiProviderSkips();\n super._setupIntegrations();\n }\n\n /** Custom implementation for OTEL, so we can handle scope-span linking. */\n _getTraceInfoFromScope(\n scope,\n ) {\n if (!scope) {\n return [undefined, undefined];\n }\n\n return getTraceContextForScope(this, scope);\n }\n}\n\nexport { NodeClient };\n//# sourceMappingURL=client.js.map\n", - "import { GLOBAL_OBJ, debug } from '@sentry/core';\nimport { createAddHookMessageChannel } from 'import-in-the-middle';\nimport * as moduleModule from 'module';\nimport { supportsEsmLoaderHooks } from '../utils/detection.js';\n\n/**\n * Initialize the ESM loader - This method is private and not part of the public\n * API.\n *\n * @ignore\n */\nfunction initializeEsmLoader() {\n if (!supportsEsmLoaderHooks()) {\n return;\n }\n\n if (!GLOBAL_OBJ._sentryEsmLoaderHookRegistered) {\n GLOBAL_OBJ._sentryEsmLoaderHookRegistered = true;\n\n try {\n const { addHookMessagePort } = createAddHookMessageChannel();\n // @ts-expect-error register is available in these versions\n moduleModule.register('import-in-the-middle/hook.mjs', import.meta.url, {\n data: { addHookMessagePort, include: [] },\n transferList: [addHookMessagePort],\n });\n } catch (error) {\n debug.warn(\"Failed to register 'import-in-the-middle' hook\", error);\n }\n }\n}\n\nexport { initializeEsmLoader };\n//# sourceMappingURL=esmLoader.js.map\n", - "import { debug, consoleSandbox, getCurrentScope, applySdkMetadata, envToBool, stackParserFromStackParserOptions, getIntegrationsToSetup, propagationContextFromHeaders, inboundFiltersIntegration, functionToStringIntegration, linkedErrorsIntegration, requestDataIntegration, conversationIdIntegration, consoleIntegration, hasSpansEnabled } from '@sentry/core';\nimport { setOpenTelemetryContextAsyncContextStrategy, enhanceDscWithOpenTelemetryRootSpanName, setupEventContextTrace, openTelemetrySetupCheck } from '@sentry/opentelemetry';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { childProcessIntegration } from '../integrations/childProcess.js';\nimport { nodeContextIntegration } from '../integrations/context.js';\nimport { contextLinesIntegration } from '../integrations/contextlines.js';\nimport { httpIntegration } from '../integrations/http/index.js';\nimport { localVariablesIntegration } from '../integrations/local-variables/index.js';\nimport { modulesIntegration } from '../integrations/modules.js';\nimport { nativeNodeFetchIntegration } from '../integrations/node-fetch/index.js';\nimport { onUncaughtExceptionIntegration } from '../integrations/onuncaughtexception.js';\nimport { onUnhandledRejectionIntegration } from '../integrations/onunhandledrejection.js';\nimport { processSessionIntegration } from '../integrations/processSession.js';\nimport { INTEGRATION_NAME, spotlightIntegration } from '../integrations/spotlight.js';\nimport { systemErrorIntegration } from '../integrations/systemError.js';\nimport { makeNodeTransport } from '../transports/http.js';\nimport { isCjs } from '../utils/detection.js';\nimport { getSpotlightConfig } from '../utils/spotlight.js';\nimport { defaultStackParser, getSentryRelease } from './api.js';\nimport { NodeClient } from './client.js';\nimport { initializeEsmLoader } from './esmLoader.js';\n\n/**\n * Get default integrations for the Node-Core SDK.\n */\nfunction getDefaultIntegrations() {\n return [\n // Common\n // TODO(v11): Replace with `eventFiltersIntegration` once we remove the deprecated `inboundFiltersIntegration`\n // eslint-disable-next-line deprecation/deprecation\n inboundFiltersIntegration(),\n functionToStringIntegration(),\n linkedErrorsIntegration(),\n requestDataIntegration(),\n systemErrorIntegration(),\n conversationIdIntegration(),\n // Native Wrappers\n consoleIntegration(),\n httpIntegration(),\n nativeNodeFetchIntegration(),\n // Global Handlers\n onUncaughtExceptionIntegration(),\n onUnhandledRejectionIntegration(),\n // Event Info\n contextLinesIntegration(),\n localVariablesIntegration(),\n nodeContextIntegration(),\n childProcessIntegration(),\n processSessionIntegration(),\n modulesIntegration(),\n ];\n}\n\n/**\n * Initialize Sentry for Node.\n */\nfunction init(options = {}) {\n return _init(options, getDefaultIntegrations);\n}\n\n/**\n * Initialize Sentry for Node, without any integrations added by default.\n */\nfunction initWithoutDefaultIntegrations(options = {}) {\n return _init(options, () => []);\n}\n\n/**\n * Initialize Sentry for Node, without performance instrumentation.\n */\nfunction _init(\n _options = {},\n getDefaultIntegrationsImpl,\n) {\n const options = getClientOptions(_options, getDefaultIntegrationsImpl);\n\n if (options.debug === true) {\n if (DEBUG_BUILD) {\n debug.enable();\n } else {\n // use `console.warn` rather than `debug.warn` since by non-debug bundles have all `debug.x` statements stripped\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n });\n }\n }\n\n if (options.registerEsmLoaderHooks !== false) {\n initializeEsmLoader();\n }\n\n setOpenTelemetryContextAsyncContextStrategy();\n\n const scope = getCurrentScope();\n scope.update(options.initialScope);\n\n if (options.spotlight && !options.integrations.some(({ name }) => name === INTEGRATION_NAME)) {\n options.integrations.push(\n spotlightIntegration({\n sidecarUrl: typeof options.spotlight === 'string' ? options.spotlight : undefined,\n }),\n );\n }\n\n applySdkMetadata(options, 'node-core');\n\n const client = new NodeClient(options);\n // The client is on the current scope, from where it generally is inherited\n getCurrentScope().setClient(client);\n\n client.init();\n\n debug.log(`SDK initialized from ${isCjs() ? 'CommonJS' : 'ESM'}`);\n\n client.startClientReportTracking();\n\n updateScopeFromEnvVariables();\n\n enhanceDscWithOpenTelemetryRootSpanName(client);\n setupEventContextTrace(client);\n\n // Ensure we flush events when vercel functions are ended\n // See: https://vercel.com/docs/functions/functions-api-reference#sigterm-signal\n if (process.env.VERCEL) {\n process.on('SIGTERM', async () => {\n // We have 500ms for processing here, so we try to make sure to have enough time to send the events\n await client.flush(200);\n });\n }\n\n return client;\n}\n\n/**\n * Validate that your OpenTelemetry setup is correct.\n */\nfunction validateOpenTelemetrySetup() {\n if (!DEBUG_BUILD) {\n return;\n }\n\n const setup = openTelemetrySetupCheck();\n\n const required = ['SentryContextManager', 'SentryPropagator'];\n\n if (hasSpansEnabled()) {\n required.push('SentrySpanProcessor');\n }\n\n for (const k of required) {\n if (!setup.includes(k)) {\n debug.error(\n `You have to set up the ${k}. Without this, the OpenTelemetry & Sentry integration will not work properly.`,\n );\n }\n }\n\n if (!setup.includes('SentrySampler')) {\n debug.warn(\n 'You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.',\n );\n }\n}\n\nfunction getClientOptions(\n options,\n getDefaultIntegrationsImpl,\n) {\n const release = getRelease(options.release);\n\n const spotlight = getSpotlightConfig(options.spotlight);\n\n const tracesSampleRate = getTracesSampleRate(options.tracesSampleRate);\n\n const mergedOptions = {\n ...options,\n dsn: options.dsn ?? process.env.SENTRY_DSN,\n environment: options.environment ?? process.env.SENTRY_ENVIRONMENT,\n sendClientReports: options.sendClientReports ?? true,\n transport: options.transport ?? makeNodeTransport,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n release,\n tracesSampleRate,\n spotlight,\n debug: envToBool(options.debug ?? process.env.SENTRY_DEBUG),\n };\n\n const integrations = options.integrations;\n const defaultIntegrations = options.defaultIntegrations ?? getDefaultIntegrationsImpl(mergedOptions);\n\n return {\n ...mergedOptions,\n integrations: getIntegrationsToSetup({\n defaultIntegrations,\n integrations,\n }),\n };\n}\n\nfunction getRelease(release) {\n if (release !== undefined) {\n return release;\n }\n\n const detectedRelease = getSentryRelease();\n if (detectedRelease !== undefined) {\n return detectedRelease;\n }\n\n return undefined;\n}\n\nfunction getTracesSampleRate(tracesSampleRate) {\n if (tracesSampleRate !== undefined) {\n return tracesSampleRate;\n }\n\n const sampleRateFromEnv = process.env.SENTRY_TRACES_SAMPLE_RATE;\n if (!sampleRateFromEnv) {\n return undefined;\n }\n\n const parsed = parseFloat(sampleRateFromEnv);\n return isFinite(parsed) ? parsed : undefined;\n}\n\n/**\n * Update scope and propagation context based on environmental variables.\n *\n * See https://github.com/getsentry/rfcs/blob/main/text/0071-continue-trace-over-process-boundaries.md\n * for more details.\n */\nfunction updateScopeFromEnvVariables() {\n if (envToBool(process.env.SENTRY_USE_ENVIRONMENT) !== false) {\n const sentryTraceEnv = process.env.SENTRY_TRACE;\n const baggageEnv = process.env.SENTRY_BAGGAGE;\n const propagationContext = propagationContextFromHeaders(sentryTraceEnv, baggageEnv);\n getCurrentScope().setPropagationContext(propagationContext);\n }\n}\n\nexport { getDefaultIntegrations, init, initWithoutDefaultIntegrations, validateOpenTelemetrySetup };\n//# sourceMappingURL=index.js.map\n", - "import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\n\n/** Adds an origin to an OTEL Span. */\nfunction addOriginToSpan(span, origin) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, origin);\n}\n\nexport { addOriginToSpan };\n//# sourceMappingURL=addOriginToSpan.js.map\n", - "/** Build a full URL from request options or a ClientRequest. */\nfunction getRequestUrl(requestOptions\n\n) {\n const protocol = requestOptions.protocol || '';\n const hostname = requestOptions.hostname || requestOptions.host || '';\n // Don't log standard :80 (http) and :443 (https) ports to reduce the noise\n // Also don't add port if the hostname already includes a port\n const port =\n !requestOptions.port || requestOptions.port === 80 || requestOptions.port === 443 || /^(.*):(\\d+)$/.test(hostname)\n ? ''\n : `:${requestOptions.port}`;\n const path = requestOptions.path ? requestOptions.path : '/';\n return `${protocol}//${hostname}${port}${path}`;\n}\n\nexport { getRequestUrl };\n//# sourceMappingURL=getRequestUrl.js.map\n", - "import { UndiciInstrumentation } from '@opentelemetry/instrumentation-undici';\nimport { defineIntegration, stripDataUrlContent, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_URL_FULL, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getClient, hasSpansEnabled } from '@sentry/core';\nimport { generateInstrumentOnce, SentryNodeFetchInstrumentation } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'NodeFetch';\n\nconst instrumentOtelNodeFetch = generateInstrumentOnce(\n INTEGRATION_NAME,\n UndiciInstrumentation,\n (options) => {\n return _getConfigWithDefaults(options);\n },\n);\n\nconst instrumentSentryNodeFetch = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n SentryNodeFetchInstrumentation,\n (options) => {\n return options;\n },\n);\n\nconst _nativeNodeFetchIntegration = ((options = {}) => {\n return {\n name: 'NodeFetch',\n setupOnce() {\n const instrumentSpans = _shouldInstrumentSpans(options, getClient()?.getOptions());\n\n // This is the \"regular\" OTEL instrumentation that emits spans\n if (instrumentSpans) {\n instrumentOtelNodeFetch(options);\n }\n\n // This is the Sentry-specific instrumentation that creates breadcrumbs & propagates traces\n // This must be registered after the OTEL one, to ensure that the core trace propagation logic takes presedence\n // Otherwise, the sentry-trace header may be set multiple times\n instrumentSentryNodeFetch(options);\n },\n };\n}) ;\n\nconst nativeNodeFetchIntegration = defineIntegration(_nativeNodeFetchIntegration);\n\n// Matching the behavior of the base instrumentation\nfunction getAbsoluteUrl(origin, path = '/') {\n const url = `${origin}`;\n\n if (url.endsWith('/') && path.startsWith('/')) {\n return `${url}${path.slice(1)}`;\n }\n\n if (!url.endsWith('/') && !path.startsWith('/')) {\n return `${url}/${path}`;\n }\n\n return `${url}${path}`;\n}\n\nfunction _shouldInstrumentSpans(options, clientOptions = {}) {\n // If `spans` is passed in, it takes precedence\n // Else, we by default emit spans, unless `skipOpenTelemetrySetup` is set to `true` or spans are not enabled\n return typeof options.spans === 'boolean'\n ? options.spans\n : !clientOptions.skipOpenTelemetrySetup && hasSpansEnabled(clientOptions);\n}\n\n/** Exported only for tests. */\nfunction _getConfigWithDefaults(options = {}) {\n const instrumentationConfig = {\n requireParentforSpans: false,\n ignoreRequestHook: request => {\n const url = getAbsoluteUrl(request.origin, request.path);\n const _ignoreOutgoingRequests = options.ignoreOutgoingRequests;\n const shouldIgnore = _ignoreOutgoingRequests && url && _ignoreOutgoingRequests(url);\n\n return !!shouldIgnore;\n },\n startSpanHook: request => {\n const url = getAbsoluteUrl(request.origin, request.path);\n\n // Sanitize data URLs to prevent long base64 strings in span attributes\n if (url.startsWith('data:')) {\n const sanitizedUrl = stripDataUrlContent(url);\n return {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.node_fetch',\n 'http.url': sanitizedUrl,\n [SEMANTIC_ATTRIBUTE_URL_FULL]: sanitizedUrl,\n [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: `${request.method || 'GET'} ${sanitizedUrl}`,\n };\n }\n\n return {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.node_fetch',\n };\n },\n requestHook: options.requestHook,\n responseHook: options.responseHook,\n headersToSpanAttributes: options.headersToSpanAttributes,\n } ;\n\n return instrumentationConfig;\n}\n\nexport { _getConfigWithDefaults, nativeNodeFetchIntegration };\n//# sourceMappingURL=node-fetch.js.map\n", - "import { ExpressInstrumentation } from '@opentelemetry/instrumentation-express';\nimport { defineIntegration, getIsolationScope, getDefaultIsolationScope, debug, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, httpRequestToRequestData, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan, ensureIsWrapped } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\n\nconst INTEGRATION_NAME = 'Express';\n\nfunction requestHook(span) {\n addOriginToSpan(span, 'auto.http.otel.express');\n\n const attributes = spanToJSON(span).data;\n // this is one of: middleware, request_handler, router\n const type = attributes['express.type'];\n\n if (type) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, `${type}.express`);\n }\n\n // Also update the name, we don't need to \"middleware - \" prefix\n const name = attributes['express.name'];\n if (typeof name === 'string') {\n span.updateName(name);\n }\n}\n\nfunction spanNameHook(info, defaultName) {\n if (getIsolationScope() === getDefaultIsolationScope()) {\n DEBUG_BUILD && debug.warn('Isolation scope is still default isolation scope - skipping setting transactionName');\n return defaultName;\n }\n if (info.layerType === 'request_handler') {\n // type cast b/c Otel unfortunately types info.request as any :(\n const req = info.request ;\n const method = req.method ? req.method.toUpperCase() : 'GET';\n getIsolationScope().setTransactionName(`${method} ${info.route}`);\n }\n return defaultName;\n}\n\nconst instrumentExpress = generateInstrumentOnce(\n INTEGRATION_NAME,\n () =>\n new ExpressInstrumentation({\n requestHook: span => requestHook(span),\n spanNameHook: (info, defaultName) => spanNameHook(info, defaultName),\n }),\n);\n\nconst _expressIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentExpress();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for [Express](https://expressjs.com/).\n *\n * If you also want to capture errors, you need to call `setupExpressErrorHandler(app)` after you set up your Express server.\n *\n * For more information, see the [express documentation](https://docs.sentry.io/platforms/javascript/guides/express/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.expressIntegration()],\n * })\n * ```\n */\nconst expressIntegration = defineIntegration(_expressIntegration);\n\n/**\n * An Express-compatible error handler.\n */\nfunction expressErrorHandler(options) {\n return function sentryErrorMiddleware(\n error,\n request,\n res,\n next,\n ) {\n const normalizedRequest = httpRequestToRequestData(request);\n // Ensure we use the express-enhanced request here, instead of the plain HTTP one\n // When an error happens, the `expressRequestHandler` middleware does not run, so we set it here too\n getIsolationScope().setSDKProcessingMetadata({ normalizedRequest });\n\n const shouldHandleError = options?.shouldHandleError || defaultShouldHandleError;\n\n if (shouldHandleError(error)) {\n const eventId = captureException(error, { mechanism: { type: 'auto.middleware.express', handled: false } });\n (res ).sentry = eventId;\n }\n\n next(error);\n };\n}\n\nfunction expressRequestHandler() {\n return function sentryRequestMiddleware(\n request,\n _res,\n next,\n ) {\n const normalizedRequest = httpRequestToRequestData(request);\n // Ensure we use the express-enhanced request here, instead of the plain HTTP one\n getIsolationScope().setSDKProcessingMetadata({ normalizedRequest });\n\n next();\n };\n}\n\n/**\n * Add an Express error handler to capture errors to Sentry.\n *\n * The error handler must be before any other middleware and after all controllers.\n *\n * @param app The Express instances\n * @param options {ExpressHandlerOptions} Configuration options for the handler\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const express = require(\"express\");\n *\n * const app = express();\n *\n * // Add your routes, etc.\n *\n * // Add this after all routes,\n * // but before any and other error-handling middlewares are defined\n * Sentry.setupExpressErrorHandler(app);\n *\n * app.listen(3000);\n * ```\n */\nfunction setupExpressErrorHandler(\n app,\n options,\n) {\n app.use(expressRequestHandler());\n app.use(expressErrorHandler(options));\n ensureIsWrapped(app.use, 'express');\n}\n\nfunction getStatusCodeFromResponse(error) {\n const statusCode = error.status || error.statusCode || error.status_code || error.output?.statusCode;\n return statusCode ? parseInt(statusCode , 10) : 500;\n}\n\n/** Returns true if response code is internal server error */\nfunction defaultShouldHandleError(error) {\n const status = getStatusCodeFromResponse(error);\n return status >= 500;\n}\n\nexport { expressErrorHandler, expressIntegration, instrumentExpress, setupExpressErrorHandler };\n//# sourceMappingURL=express.js.map\n", - "/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n", - "import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport { FastifyOtelInstrumentation } from '@fastify/otel';\nimport { debug, defineIntegration, getClient, getIsolationScope, captureException, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../../debug-build.js';\nimport { FastifyInstrumentationV3 } from './v3/instrumentation.js';\n\n/**\n * Options for the Fastify integration.\n *\n * `shouldHandleError` - Callback method deciding whether error should be captured and sent to Sentry\n * This is used on Fastify v5 where Sentry handles errors in the diagnostics channel.\n * Fastify v3 and v4 use `setupFastifyErrorHandler` instead.\n *\n * @example\n *\n * ```javascript\n * Sentry.init({\n * integrations: [\n * Sentry.fastifyIntegration({\n * shouldHandleError(_error, _request, reply) {\n * return reply.statusCode >= 500;\n * },\n * });\n * },\n * });\n * ```\n *\n */\n\nconst INTEGRATION_NAME = 'Fastify';\n\nconst instrumentFastifyV3 = generateInstrumentOnce(\n `${INTEGRATION_NAME}.v3`,\n () => new FastifyInstrumentationV3(),\n);\n\nfunction getFastifyIntegration() {\n const client = getClient();\n if (!client) {\n return undefined;\n } else {\n return client.getIntegrationByName(INTEGRATION_NAME);\n }\n}\n\nfunction handleFastifyError(\n\n error,\n request,\n reply,\n handlerOrigin,\n) {\n const shouldHandleError = getFastifyIntegration()?.getShouldHandleError() || defaultShouldHandleError;\n // Diagnostics channel runs before the onError hook, so we can use it to check if the handler was already registered\n if (handlerOrigin === 'diagnostics-channel') {\n this.diagnosticsChannelExists = true;\n }\n\n if (this.diagnosticsChannelExists && handlerOrigin === 'onError-hook') {\n DEBUG_BUILD &&\n debug.warn(\n 'Fastify error handler was already registered via diagnostics channel.',\n 'You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.',\n );\n\n // If the diagnostics channel already exists, we don't need to handle the error again\n return;\n }\n\n if (shouldHandleError(error, request, reply)) {\n captureException(error, { mechanism: { handled: false, type: 'auto.function.fastify' } });\n }\n}\n\nconst instrumentFastify = generateInstrumentOnce(`${INTEGRATION_NAME}.v5`, () => {\n const fastifyOtelInstrumentationInstance = new FastifyOtelInstrumentation();\n const plugin = fastifyOtelInstrumentationInstance.plugin();\n\n // This message handler works for Fastify versions 3, 4 and 5\n diagnosticsChannel.subscribe('fastify.initialization', message => {\n const fastifyInstance = (message ).fastify;\n\n fastifyInstance?.register(plugin).after(err => {\n if (err) {\n DEBUG_BUILD && debug.error('Failed to setup Fastify instrumentation', err);\n } else {\n instrumentClient();\n\n if (fastifyInstance) {\n instrumentOnRequest(fastifyInstance);\n }\n }\n });\n });\n\n // This diagnostics channel only works on Fastify version 5\n // For versions 3 and 4, we use `setupFastifyErrorHandler` instead\n diagnosticsChannel.subscribe('tracing:fastify.request.handler:error', message => {\n const { error, request, reply } = message\n\n;\n\n handleFastifyError.call(handleFastifyError, error, request, reply, 'diagnostics-channel');\n });\n\n // Returning this as Instrumentation to avoid leaking @fastify/otel types into the public API\n return fastifyOtelInstrumentationInstance ;\n});\n\nconst _fastifyIntegration = (({ shouldHandleError }) => {\n let _shouldHandleError;\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n _shouldHandleError = shouldHandleError || defaultShouldHandleError;\n\n instrumentFastifyV3();\n instrumentFastify();\n },\n getShouldHandleError() {\n return _shouldHandleError;\n },\n setShouldHandleError(fn) {\n _shouldHandleError = fn;\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for [Fastify](https://fastify.dev/).\n *\n * If you also want to capture errors, you need to call `setupFastifyErrorHandler(app)` after you set up your Fastify server.\n *\n * For more information, see the [fastify documentation](https://docs.sentry.io/platforms/javascript/guides/fastify/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.fastifyIntegration()],\n * })\n * ```\n */\nconst fastifyIntegration = defineIntegration((options = {}) =>\n _fastifyIntegration(options),\n);\n\n/**\n * Default function to determine if an error should be sent to Sentry\n *\n * 3xx and 4xx errors are not sent by default.\n */\nfunction defaultShouldHandleError(_error, _request, reply) {\n const statusCode = reply.statusCode;\n // 3xx and 4xx errors are not sent by default.\n return statusCode >= 500 || statusCode <= 299;\n}\n\n/**\n * Add an Fastify error handler to capture errors to Sentry.\n *\n * @param fastify The Fastify instance to which to add the error handler\n * @param options Configuration options for the handler\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const Fastify = require(\"fastify\");\n *\n * const app = Fastify();\n *\n * Sentry.setupFastifyErrorHandler(app);\n *\n * // Add your routes, etc.\n *\n * app.listen({ port: 3000 });\n * ```\n */\nfunction setupFastifyErrorHandler(fastify, options) {\n if (options?.shouldHandleError) {\n getFastifyIntegration()?.setShouldHandleError(options.shouldHandleError);\n }\n\n const plugin = Object.assign(\n function (fastify, _options, done) {\n fastify.addHook('onError', async (request, reply, error) => {\n handleFastifyError.call(handleFastifyError, error, request, reply, 'onError-hook');\n });\n done();\n },\n {\n [Symbol.for('skip-override')]: true,\n [Symbol.for('fastify.display-name')]: 'sentry-fastify-error-handler',\n },\n );\n\n fastify.register(plugin);\n}\n\nfunction addFastifySpanAttributes(span) {\n const spanJSON = spanToJSON(span);\n const spanName = spanJSON.description;\n const attributes = spanJSON.data;\n\n const type = attributes['fastify.type'];\n\n const isHook = type === 'hook';\n const isHandler = type === spanName?.startsWith('handler -');\n // In @fastify/otel `request-handler` is separated by dash, not underscore\n const isRequestHandler = spanName === 'request' || type === 'request-handler';\n\n // If this is already set, or we have no fastify span, no need to process again...\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || (!isHandler && !isRequestHandler && !isHook)) {\n return;\n }\n\n const opPrefix = isHook ? 'hook' : isHandler ? 'middleware' : isRequestHandler ? 'request_handler' : '';\n\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.fastify',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${opPrefix}.fastify`,\n });\n\n const attrName = attributes['fastify.name'] || attributes['plugin.name'] || attributes['hook.name'];\n if (typeof attrName === 'string') {\n // Try removing `fastify -> ` and `@fastify/otel -> ` prefixes\n // This is a bit of a hack, and not always working for all spans\n // But it's the best we can do without a proper API\n const updatedName = attrName.replace(/^fastify -> /, '').replace(/^@fastify\\/otel -> /, '');\n\n span.updateName(updatedName);\n }\n}\n\nfunction instrumentClient() {\n const client = getClient();\n if (client) {\n client.on('spanStart', (span) => {\n addFastifySpanAttributes(span);\n });\n }\n}\n\nfunction instrumentOnRequest(fastify) {\n fastify.addHook('onRequest', async (request, _reply) => {\n if (request.opentelemetry) {\n const { span } = request.opentelemetry();\n\n if (span) {\n addFastifySpanAttributes(span);\n }\n }\n\n const routeName = request.routeOptions?.url;\n const method = request.method || 'GET';\n\n getIsolationScope().setTransactionName(`${method} ${routeName}`);\n });\n}\n\nexport { fastifyIntegration, instrumentFastify, instrumentFastifyV3, setupFastifyErrorHandler };\n//# sourceMappingURL=index.js.map\n", - "import { context, trace, SpanStatusCode } from '@opentelemetry/api';\nimport { getRPCMetadata, RPCType } from '@opentelemetry/core';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\nimport { SEMATTRS_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport { getIsolationScope, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getClient } from '@sentry/core';\nimport { FastifyNames, AttributeNames, FastifyTypes } from './enums/AttributeNames.js';\nimport { startSpan, endSpan, safeExecuteInTheMiddleMaybePromise } from './utils.js';\n\n// Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/blob/407f61591ba69a39a6908264379d4d98a48dbec4/plugins/node/opentelemetry-instrumentation-fastify/src/instrumentation.ts\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-this-alias */\n/* eslint-disable jsdoc/require-jsdoc */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/** @knipignore */\n\nconst PACKAGE_VERSION = '0.1.0';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-fastify-v3';\nconst ANONYMOUS_NAME = 'anonymous';\n\n// The instrumentation creates a span for invocations of lifecycle hook handlers\n// that take `(request, reply, ...[, done])` arguments. Currently this is all\n// lifecycle hooks except `onRequestAbort`.\n// https://fastify.dev/docs/latest/Reference/Hooks\nconst hooksNamesToWrap = new Set([\n 'onTimeout',\n 'onRequest',\n 'preParsing',\n 'preValidation',\n 'preSerialization',\n 'preHandler',\n 'onSend',\n 'onResponse',\n 'onError',\n]);\n\n/**\n * Fastify instrumentation for OpenTelemetry\n */\nclass FastifyInstrumentationV3 extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, PACKAGE_VERSION, config);\n }\n\n init() {\n return [\n new InstrumentationNodeModuleDefinition('fastify', ['>=3.0.0 <4'], moduleExports => {\n return this._patchConstructor(moduleExports);\n }),\n ];\n }\n\n _hookOnRequest() {\n const instrumentation = this;\n\n return function onRequest(request, reply, done) {\n if (!instrumentation.isEnabled()) {\n return done();\n }\n instrumentation._wrap(reply, 'send', instrumentation._patchSend());\n\n const anyRequest = request ;\n\n const rpcMetadata = getRPCMetadata(context.active());\n const routeName = anyRequest.routeOptions\n ? anyRequest.routeOptions.url // since fastify@4.10.0\n : request.routerPath;\n if (routeName && rpcMetadata?.type === RPCType.HTTP) {\n rpcMetadata.route = routeName;\n }\n\n const method = request.method || 'GET';\n\n getIsolationScope().setTransactionName(`${method} ${routeName}`);\n done();\n };\n }\n\n _wrapHandler(\n pluginName,\n hookName,\n original,\n syncFunctionWithDone,\n ) {\n const instrumentation = this;\n this._diag.debug('Patching fastify route.handler function');\n\n return function ( ...args) {\n if (!instrumentation.isEnabled()) {\n return original.apply(this, args);\n }\n\n const name = original.name || pluginName || ANONYMOUS_NAME;\n const spanName = `${FastifyNames.MIDDLEWARE} - ${name}`;\n\n const reply = args[1] ;\n\n const span = startSpan(reply, instrumentation.tracer, spanName, {\n [AttributeNames.FASTIFY_TYPE]: FastifyTypes.MIDDLEWARE,\n [AttributeNames.PLUGIN_NAME]: pluginName,\n [AttributeNames.HOOK_NAME]: hookName,\n });\n\n const origDone = syncFunctionWithDone && (args[args.length - 1] );\n if (origDone) {\n args[args.length - 1] = function (...doneArgs) {\n endSpan(reply);\n origDone.apply(this, doneArgs);\n };\n }\n\n return context.with(trace.setSpan(context.active(), span), () => {\n return safeExecuteInTheMiddleMaybePromise(\n () => {\n return original.apply(this, args);\n },\n err => {\n if (err instanceof Error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: err.message,\n });\n span.recordException(err);\n }\n // async hooks should end the span as soon as the promise is resolved\n if (!syncFunctionWithDone) {\n endSpan(reply);\n }\n },\n );\n });\n };\n }\n\n _wrapAddHook() {\n const instrumentation = this;\n this._diag.debug('Patching fastify server.addHook function');\n\n // biome-ignore lint/complexity/useArrowFunction: \n return function (original) {\n return function wrappedAddHook( ...args) {\n const name = args[0] ;\n const handler = args[1] ;\n const pluginName = this.pluginName;\n if (!hooksNamesToWrap.has(name)) {\n return original.apply(this, args);\n }\n\n const syncFunctionWithDone =\n typeof args[args.length - 1] === 'function' && handler.constructor.name !== 'AsyncFunction';\n\n return original.apply(this, [\n name,\n instrumentation._wrapHandler(pluginName, name, handler, syncFunctionWithDone),\n ] );\n };\n };\n }\n\n _patchConstructor(moduleExports\n\n) {\n const instrumentation = this;\n\n function fastify( ...args) {\n const app = moduleExports.fastify.apply(this, args);\n app.addHook('onRequest', instrumentation._hookOnRequest());\n app.addHook('preHandler', instrumentation._hookPreHandler());\n\n instrumentClient();\n\n instrumentation._wrap(app, 'addHook', instrumentation._wrapAddHook());\n\n return app;\n }\n\n if (moduleExports.errorCodes !== undefined) {\n fastify.errorCodes = moduleExports.errorCodes;\n }\n fastify.fastify = fastify;\n fastify.default = fastify;\n return fastify;\n }\n\n _patchSend() {\n const instrumentation = this;\n this._diag.debug('Patching fastify reply.send function');\n\n return function patchSend(original) {\n return function send( ...args) {\n const maybeError = args[0];\n\n if (!instrumentation.isEnabled()) {\n return original.apply(this, args);\n }\n\n return safeExecuteInTheMiddle(\n () => {\n return original.apply(this, args);\n },\n err => {\n if (!err && maybeError instanceof Error) {\n // eslint-disable-next-line no-param-reassign\n err = maybeError;\n }\n endSpan(this, err);\n },\n );\n };\n };\n }\n\n _hookPreHandler() {\n const instrumentation = this;\n this._diag.debug('Patching fastify preHandler function');\n\n return function preHandler( request, reply, done) {\n if (!instrumentation.isEnabled()) {\n return done();\n }\n const anyRequest = request ;\n\n const handler = anyRequest.routeOptions?.handler || anyRequest.context?.handler;\n const handlerName = handler?.name.startsWith('bound ') ? handler.name.substring(6) : handler?.name;\n const spanName = `${FastifyNames.REQUEST_HANDLER} - ${handlerName || this.pluginName || ANONYMOUS_NAME}`;\n\n const spanAttributes = {\n [AttributeNames.PLUGIN_NAME]: this.pluginName,\n [AttributeNames.FASTIFY_TYPE]: FastifyTypes.REQUEST_HANDLER,\n // eslint-disable-next-line deprecation/deprecation\n [SEMATTRS_HTTP_ROUTE]: anyRequest.routeOptions\n ? anyRequest.routeOptions.url // since fastify@4.10.0\n : request.routerPath,\n };\n if (handlerName) {\n spanAttributes[AttributeNames.FASTIFY_NAME] = handlerName;\n }\n const span = startSpan(reply, instrumentation.tracer, spanName, spanAttributes);\n\n addFastifyV3SpanAttributes(span);\n\n const { requestHook } = instrumentation.getConfig();\n if (requestHook) {\n safeExecuteInTheMiddle(\n () => requestHook(span, { request }),\n e => {\n if (e) {\n instrumentation._diag.error('request hook failed', e);\n }\n },\n true,\n );\n }\n\n return context.with(trace.setSpan(context.active(), span), () => {\n done();\n });\n };\n }\n}\n\nfunction instrumentClient() {\n const client = getClient();\n if (client) {\n client.on('spanStart', (span) => {\n addFastifyV3SpanAttributes(span);\n });\n }\n}\n\nfunction addFastifyV3SpanAttributes(span) {\n const attributes = spanToJSON(span).data;\n\n // this is one of: middleware, request_handler\n const type = attributes['fastify.type'];\n\n // If this is already set, or we have no fastify span, no need to process again...\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n return;\n }\n\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.fastify',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.fastify`,\n });\n\n // Also update the name, we don't need to \"middleware - \" prefix\n const name = attributes['fastify.name'] || attributes['plugin.name'] || attributes['hook.name'];\n if (typeof name === 'string') {\n // Try removing `fastify -> ` and `@fastify/otel -> ` prefixes\n // This is a bit of a hack, and not always working for all spans\n // But it's the best we can do without a proper API\n const updatedName = name.replace(/^fastify -> /, '').replace(/^@fastify\\/otel -> /, '');\n\n span.updateName(updatedName);\n }\n}\n\nexport { FastifyInstrumentationV3 };\n//# sourceMappingURL=instrumentation.js.map\n", - "// Vendored from https://github.com/open-telemetry/opentelemetry-js-contrib/blob/407f61591ba69a39a6908264379d4d98a48dbec4/plugins/node/opentelemetry-instrumentation-fastify/src/enums/AttributeNames.ts\n//\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar AttributeNames; (function (AttributeNames) {\n const FASTIFY_NAME = 'fastify.name'; AttributeNames[\"FASTIFY_NAME\"] = FASTIFY_NAME;\n const FASTIFY_TYPE = 'fastify.type'; AttributeNames[\"FASTIFY_TYPE\"] = FASTIFY_TYPE;\n const HOOK_NAME = 'hook.name'; AttributeNames[\"HOOK_NAME\"] = HOOK_NAME;\n const PLUGIN_NAME = 'plugin.name'; AttributeNames[\"PLUGIN_NAME\"] = PLUGIN_NAME;\n})(AttributeNames || (AttributeNames = {}));\n\nvar FastifyTypes; (function (FastifyTypes) {\n const MIDDLEWARE = 'middleware'; FastifyTypes[\"MIDDLEWARE\"] = MIDDLEWARE;\n const REQUEST_HANDLER = 'request_handler'; FastifyTypes[\"REQUEST_HANDLER\"] = REQUEST_HANDLER;\n})(FastifyTypes || (FastifyTypes = {}));\n\nvar FastifyNames; (function (FastifyNames) {\n const MIDDLEWARE = 'middleware'; FastifyNames[\"MIDDLEWARE\"] = MIDDLEWARE;\n const REQUEST_HANDLER = 'request handler'; FastifyNames[\"REQUEST_HANDLER\"] = REQUEST_HANDLER;\n})(FastifyNames || (FastifyNames = {}));\n\nexport { AttributeNames, FastifyNames, FastifyTypes };\n//# sourceMappingURL=AttributeNames.js.map\n", - "import { SpanStatusCode } from '@opentelemetry/api';\nimport { spanRequestSymbol } from './constants.js';\n\n// Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/blob/407f61591ba69a39a6908264379d4d98a48dbec4/plugins/node/opentelemetry-instrumentation-fastify/src/utils.ts\n/* eslint-disable jsdoc/require-jsdoc */\n/* eslint-disable @typescript-eslint/no-dynamic-delete */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * Starts Span\n * @param reply - reply function\n * @param tracer - tracer\n * @param spanName - span name\n * @param spanAttributes - span attributes\n */\nfunction startSpan(\n reply,\n tracer,\n spanName,\n spanAttributes = {},\n) {\n const span = tracer.startSpan(spanName, { attributes: spanAttributes });\n\n const spans = reply[spanRequestSymbol] || [];\n spans.push(span);\n\n Object.defineProperty(reply, spanRequestSymbol, {\n enumerable: false,\n configurable: true,\n value: spans,\n });\n\n return span;\n}\n\n/**\n * Ends span\n * @param reply - reply function\n * @param err - error\n */\nfunction endSpan(reply, err) {\n const spans = reply[spanRequestSymbol] || [];\n // there is no active span, or it has already ended\n if (!spans.length) {\n return;\n }\n // biome-ignore lint/complexity/noForEach: \n spans.forEach((span) => {\n if (err) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: err.message,\n });\n span.recordException(err);\n }\n span.end();\n });\n delete reply[spanRequestSymbol];\n}\n\n// @TODO after approve add this to instrumentation package and replace usage\n// when it will be released\n\n/**\n * This function handles the missing case from instrumentation package when\n * execute can either return a promise or void. And using async is not an\n * option as it is producing unwanted side effects.\n * @param execute - function to be executed\n * @param onFinish - function called when function executed\n * @param preventThrowingError - prevent to throw error when execute\n * function fails\n */\n\nfunction safeExecuteInTheMiddleMaybePromise(\n execute,\n onFinish,\n preventThrowingError,\n) {\n let error;\n let result = undefined;\n try {\n result = execute();\n\n if (isPromise(result)) {\n result.then(\n res => onFinish(undefined, res),\n err => onFinish(err),\n );\n }\n } catch (e) {\n error = e;\n } finally {\n if (!isPromise(result)) {\n onFinish(error, result);\n if (error && true) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n }\n // eslint-disable-next-line no-unsafe-finally\n return result;\n }\n}\n\nfunction isPromise(val) {\n return (\n (typeof val === 'object' && val && typeof Object.getOwnPropertyDescriptor(val, 'then')?.value === 'function') ||\n false\n );\n}\n\nexport { endSpan, safeExecuteInTheMiddleMaybePromise, startSpan };\n//# sourceMappingURL=utils.js.map\n", - "// Vendored from https://github.com/open-telemetry/opentelemetry-js-contrib/blob/407f61591ba69a39a6908264379d4d98a48dbec4/plugins/node/opentelemetry-instrumentation-fastify/src/constants.ts\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst spanRequestSymbol = Symbol('opentelemetry.instrumentation.fastify.request_active_span');\n\nexport { spanRequestSymbol };\n//# sourceMappingURL=constants.js.map\n", - "import { SpanStatusCode } from '@opentelemetry/api';\nimport { GraphQLInstrumentation } from '@opentelemetry/instrumentation-graphql';\nimport { spanToJSON, getRootSpan, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION } from '@sentry/opentelemetry';\n\nconst INTEGRATION_NAME = 'Graphql';\n\nconst instrumentGraphql = generateInstrumentOnce(\n INTEGRATION_NAME,\n GraphQLInstrumentation,\n (_options) => {\n const options = getOptionsWithDefaults(_options);\n\n return {\n ...options,\n responseHook(span, result) {\n addOriginToSpan(span, 'auto.graphql.otel.graphql');\n\n // We want to ensure spans are marked as errored if there are errors in the result\n // We only do that if the span is not already marked with a status\n const resultWithMaybeError = result ;\n if (resultWithMaybeError.errors?.length && !spanToJSON(span).status) {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n\n const attributes = spanToJSON(span).data;\n\n // If operation.name is not set, we fall back to use operation.type only\n const operationType = attributes['graphql.operation.type'];\n const operationName = attributes['graphql.operation.name'];\n\n if (options.useOperationNameForRootSpan && operationType) {\n const rootSpan = getRootSpan(span);\n const rootSpanAttributes = spanToJSON(rootSpan).data;\n\n const existingOperations = rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION] || [];\n\n const newOperation = operationName ? `${operationType} ${operationName}` : `${operationType}`;\n\n // We keep track of each operation on the root span\n // This can either be a string, or an array of strings (if there are multiple operations)\n if (Array.isArray(existingOperations)) {\n (existingOperations ).push(newOperation);\n rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, existingOperations);\n } else if (typeof existingOperations === 'string') {\n rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, [existingOperations, newOperation]);\n } else {\n rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, newOperation);\n }\n\n if (!spanToJSON(rootSpan).data['original-description']) {\n rootSpan.setAttribute('original-description', spanToJSON(rootSpan).description);\n }\n // Important for e.g. @sentry/aws-serverless because this would otherwise overwrite the name again\n rootSpan.updateName(\n `${spanToJSON(rootSpan).data['original-description']} (${getGraphqlOperationNamesFromAttribute(\n existingOperations,\n )})`,\n );\n }\n },\n };\n },\n);\n\nconst _graphqlIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // We set defaults here, too, because otherwise we'd update the instrumentation config\n // to the config without defaults, as `generateInstrumentOnce` automatically calls `setConfig(options)`\n // when being called the second time\n instrumentGraphql(getOptionsWithDefaults(options));\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [graphql](https://www.npmjs.com/package/graphql) library.\n *\n * For more information, see the [`graphqlIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/graphql/).\n *\n * @param {GraphqlOptions} options Configuration options for the GraphQL integration.\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.graphqlIntegration()],\n * });\n */\nconst graphqlIntegration = defineIntegration(_graphqlIntegration);\n\nfunction getOptionsWithDefaults(options) {\n return {\n ignoreResolveSpans: true,\n ignoreTrivialResolveSpans: true,\n useOperationNameForRootSpan: true,\n ...options,\n };\n}\n\n// copy from packages/opentelemetry/utils\nfunction getGraphqlOperationNamesFromAttribute(attr) {\n if (Array.isArray(attr)) {\n // oxlint-disable-next-line typescript/require-array-sort-compare\n const sorted = attr.slice().sort();\n\n // Up to 5 items, we just add all of them\n if (sorted.length <= 5) {\n return sorted.join(', ');\n } else {\n // Else, we add the first 5 and the diff of other operations\n return `${sorted.slice(0, 5).join(', ')}, +${sorted.length - 5}`;\n }\n }\n\n return `${attr}`;\n}\n\nexport { graphqlIntegration, instrumentGraphql };\n//# sourceMappingURL=graphql.js.map\n", - "import { KafkaJsInstrumentation } from '@opentelemetry/instrumentation-kafkajs';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Kafka';\n\nconst instrumentKafka = generateInstrumentOnce(\n INTEGRATION_NAME,\n () =>\n new KafkaJsInstrumentation({\n consumerHook(span) {\n addOriginToSpan(span, 'auto.kafkajs.otel.consumer');\n },\n producerHook(span) {\n addOriginToSpan(span, 'auto.kafkajs.otel.producer');\n },\n }),\n);\n\nconst _kafkaIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentKafka();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [kafkajs](https://www.npmjs.com/package/kafkajs) library.\n *\n * For more information, see the [`kafkaIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/kafka/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.kafkaIntegration()],\n * });\n */\nconst kafkaIntegration = defineIntegration(_kafkaIntegration);\n\nexport { instrumentKafka, kafkaIntegration };\n//# sourceMappingURL=kafka.js.map\n", - "import { LruMemoizerInstrumentation } from '@opentelemetry/instrumentation-lru-memoizer';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'LruMemoizer';\n\nconst instrumentLruMemoizer = generateInstrumentOnce(INTEGRATION_NAME, () => new LruMemoizerInstrumentation());\n\nconst _lruMemoizerIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentLruMemoizer();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [lru-memoizer](https://www.npmjs.com/package/lru-memoizer) library.\n *\n * For more information, see the [`lruMemoizerIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/lrumemoizer/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.lruMemoizerIntegration()],\n * });\n */\nconst lruMemoizerIntegration = defineIntegration(_lruMemoizerIntegration);\n\nexport { instrumentLruMemoizer, lruMemoizerIntegration };\n//# sourceMappingURL=lrumemoizer.js.map\n", - "import { MongoDBInstrumentation } from '@opentelemetry/instrumentation-mongodb';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Mongo';\n\nconst instrumentMongo = generateInstrumentOnce(\n INTEGRATION_NAME,\n () =>\n new MongoDBInstrumentation({\n dbStatementSerializer: _defaultDbStatementSerializer,\n responseHook(span) {\n addOriginToSpan(span, 'auto.db.otel.mongo');\n },\n }),\n);\n\n/**\n * Replaces values in document with '?', hiding PII and helping grouping.\n */\nfunction _defaultDbStatementSerializer(commandObj) {\n const resultObj = _scrubStatement(commandObj);\n return JSON.stringify(resultObj);\n}\n\nfunction _scrubStatement(value) {\n if (Array.isArray(value)) {\n return value.map(element => _scrubStatement(element));\n }\n\n if (isCommandObj(value)) {\n const initial = {};\n return Object.entries(value)\n .map(([key, element]) => [key, _scrubStatement(element)])\n .reduce((prev, current) => {\n if (isCommandEntry(current)) {\n prev[current[0]] = current[1];\n }\n return prev;\n }, initial);\n }\n\n // A value like string or number, possible contains PII, scrub it\n return '?';\n}\n\nfunction isCommandObj(value) {\n return typeof value === 'object' && value !== null && !isBuffer(value);\n}\n\nfunction isBuffer(value) {\n let isBuffer = false;\n if (typeof Buffer !== 'undefined') {\n isBuffer = Buffer.isBuffer(value);\n }\n return isBuffer;\n}\n\nfunction isCommandEntry(value) {\n return Array.isArray(value);\n}\n\nconst _mongoIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMongo();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [mongodb](https://www.npmjs.com/package/mongodb) library.\n *\n * For more information, see the [`mongoIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mongo/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.mongoIntegration()],\n * });\n * ```\n */\nconst mongoIntegration = defineIntegration(_mongoIntegration);\n\nexport { _defaultDbStatementSerializer, instrumentMongo, mongoIntegration };\n//# sourceMappingURL=mongo.js.map\n", - "import { MongooseInstrumentation } from '@opentelemetry/instrumentation-mongoose';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Mongoose';\n\nconst instrumentMongoose = generateInstrumentOnce(\n INTEGRATION_NAME,\n () =>\n new MongooseInstrumentation({\n responseHook(span) {\n addOriginToSpan(span, 'auto.db.otel.mongoose');\n },\n }),\n);\n\nconst _mongooseIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMongoose();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [mongoose](https://www.npmjs.com/package/mongoose) library.\n *\n * For more information, see the [`mongooseIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mongoose/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.mongooseIntegration()],\n * });\n * ```\n */\nconst mongooseIntegration = defineIntegration(_mongooseIntegration);\n\nexport { instrumentMongoose, mongooseIntegration };\n//# sourceMappingURL=mongoose.js.map\n", - "import { MySQLInstrumentation } from '@opentelemetry/instrumentation-mysql';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Mysql';\n\nconst instrumentMysql = generateInstrumentOnce(INTEGRATION_NAME, () => new MySQLInstrumentation({}));\n\nconst _mysqlIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMysql();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [mysql](https://www.npmjs.com/package/mysql) library.\n *\n * For more information, see the [`mysqlIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mysql/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.mysqlIntegration()],\n * });\n * ```\n */\nconst mysqlIntegration = defineIntegration(_mysqlIntegration);\n\nexport { instrumentMysql, mysqlIntegration };\n//# sourceMappingURL=mysql.js.map\n", - "import { MySQL2Instrumentation } from '@opentelemetry/instrumentation-mysql2';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Mysql2';\n\nconst instrumentMysql2 = generateInstrumentOnce(\n INTEGRATION_NAME,\n () =>\n new MySQL2Instrumentation({\n responseHook(span) {\n addOriginToSpan(span, 'auto.db.otel.mysql2');\n },\n }),\n);\n\nconst _mysql2Integration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMysql2();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [mysql2](https://www.npmjs.com/package/mysql2) library.\n *\n * For more information, see the [`mysql2Integration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mysql2/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.mysqlIntegration()],\n * });\n * ```\n */\nconst mysql2Integration = defineIntegration(_mysql2Integration);\n\nexport { instrumentMysql2, mysql2Integration };\n//# sourceMappingURL=mysql2.js.map\n", - "import { IORedisInstrumentation } from '@opentelemetry/instrumentation-ioredis';\nimport { RedisInstrumentation } from '@opentelemetry/instrumentation-redis';\nimport { defineIntegration, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, spanToJSON, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_SENTRY_OP, truncate } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { getCacheKeySafely, getCacheOperation, shouldConsiderForCache, calculateCacheItemSize, isInCommands, GET_COMMANDS } from '../../utils/redisCache.js';\n\nconst INTEGRATION_NAME = 'Redis';\n\n/* Only exported for testing purposes */\nlet _redisOptions = {};\n\n/* Only exported for testing purposes */\nconst cacheResponseHook = (\n span,\n redisCommand,\n cmdArgs,\n response,\n) => {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.redis');\n\n const safeKey = getCacheKeySafely(redisCommand, cmdArgs);\n const cacheOperation = getCacheOperation(redisCommand);\n\n if (\n !safeKey ||\n !cacheOperation ||\n !_redisOptions.cachePrefixes ||\n !shouldConsiderForCache(redisCommand, safeKey, _redisOptions.cachePrefixes)\n ) {\n // not relevant for cache\n return;\n }\n\n // otel/ioredis seems to be using the old standard, as there was a change to those params: https://github.com/open-telemetry/opentelemetry-specification/issues/3199\n // We are using params based on the docs: https://opentelemetry.io/docs/specs/semconv/attributes-registry/network/\n const networkPeerAddress = spanToJSON(span).data['net.peer.name'];\n const networkPeerPort = spanToJSON(span).data['net.peer.port'];\n if (networkPeerPort && networkPeerAddress) {\n span.setAttributes({ 'network.peer.address': networkPeerAddress, 'network.peer.port': networkPeerPort });\n }\n\n const cacheItemSize = calculateCacheItemSize(response);\n\n if (cacheItemSize) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, cacheItemSize);\n }\n\n if (isInCommands(GET_COMMANDS, redisCommand) && cacheItemSize !== undefined) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_CACHE_HIT, cacheItemSize > 0);\n }\n\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: cacheOperation,\n [SEMANTIC_ATTRIBUTE_CACHE_KEY]: safeKey,\n });\n\n // todo: change to string[] once EAP supports it\n const spanDescription = safeKey.join(', ');\n\n span.updateName(\n _redisOptions.maxCacheKeyLength ? truncate(spanDescription, _redisOptions.maxCacheKeyLength) : spanDescription,\n );\n};\n\nconst instrumentIORedis = generateInstrumentOnce(`${INTEGRATION_NAME}.IORedis`, () => {\n return new IORedisInstrumentation({\n responseHook: cacheResponseHook,\n });\n});\n\nconst instrumentRedisModule = generateInstrumentOnce(`${INTEGRATION_NAME}.Redis`, () => {\n return new RedisInstrumentation({\n responseHook: cacheResponseHook,\n });\n});\n\n/** To be able to preload all Redis OTel instrumentations with just one ID (\"Redis\"), all the instrumentations are generated in this one function */\nconst instrumentRedis = Object.assign(\n () => {\n instrumentIORedis();\n instrumentRedisModule();\n\n // todo: implement them gradually\n // new LegacyRedisInstrumentation({}),\n },\n { id: INTEGRATION_NAME },\n);\n\nconst _redisIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n _redisOptions = options;\n instrumentRedis();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [redis](https://www.npmjs.com/package/redis) and\n * [ioredis](https://www.npmjs.com/package/ioredis) libraries.\n *\n * For more information, see the [`redisIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/redis/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.redisIntegration()],\n * });\n * ```\n */\nconst redisIntegration = defineIntegration(_redisIntegration);\n\nexport { _redisOptions, cacheResponseHook, instrumentRedis, redisIntegration };\n//# sourceMappingURL=redis.js.map\n", - "const SINGLE_ARG_COMMANDS = ['get', 'set', 'setex'];\n\nconst GET_COMMANDS = ['get', 'mget'];\nconst SET_COMMANDS = ['set', 'setex'];\n// todo: del, expire\n\n/** Checks if a given command is in the list of redis commands.\n * Useful because commands can come in lowercase or uppercase (depending on the library). */\nfunction isInCommands(redisCommands, command) {\n return redisCommands.includes(command.toLowerCase());\n}\n\n/** Determine cache operation based on redis statement */\nfunction getCacheOperation(\n command,\n) {\n if (isInCommands(GET_COMMANDS, command)) {\n return 'cache.get';\n } else if (isInCommands(SET_COMMANDS, command)) {\n return 'cache.put';\n } else {\n return undefined;\n }\n}\n\nfunction keyHasPrefix(key, prefixes) {\n return prefixes.some(prefix => key.startsWith(prefix));\n}\n\n/** Safely converts a redis key to a string (comma-separated if there are multiple keys) */\nfunction getCacheKeySafely(redisCommand, cmdArgs) {\n try {\n if (cmdArgs.length === 0) {\n return undefined;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const processArg = (arg) => {\n if (typeof arg === 'string' || typeof arg === 'number' || Buffer.isBuffer(arg)) {\n return [arg.toString()];\n } else if (Array.isArray(arg)) {\n return flatten(arg.map(arg => processArg(arg)));\n } else {\n return [''];\n }\n };\n\n const firstArg = cmdArgs[0];\n if (isInCommands(SINGLE_ARG_COMMANDS, redisCommand) && firstArg != null) {\n return processArg(firstArg);\n }\n\n return flatten(cmdArgs.map(arg => processArg(arg)));\n } catch {\n return undefined;\n }\n}\n\n/** Determines whether a redis operation should be considered as \"cache operation\" by checking if a key is prefixed.\n * We only support certain commands (such as 'set', 'get', 'mget'). */\nfunction shouldConsiderForCache(redisCommand, keys, prefixes) {\n if (!getCacheOperation(redisCommand)) {\n return false;\n }\n\n for (const key of keys) {\n if (keyHasPrefix(key, prefixes)) {\n return true;\n }\n }\n return false;\n}\n\n/** Calculates size based on the cache response value */\nfunction calculateCacheItemSize(response) {\n const getSize = (value) => {\n try {\n if (Buffer.isBuffer(value)) return value.byteLength;\n else if (typeof value === 'string') return value.length;\n else if (typeof value === 'number') return value.toString().length;\n else if (value === null || value === undefined) return 0;\n return JSON.stringify(value).length;\n } catch {\n return undefined;\n }\n };\n\n return Array.isArray(response)\n ? response.reduce((acc, curr) => {\n const size = getSize(curr);\n return typeof size === 'number' ? (acc !== undefined ? acc + size : size) : acc;\n }, 0)\n : getSize(response);\n}\n\nfunction flatten(input) {\n const result = [];\n\n const flattenHelper = (input) => {\n input.forEach((el) => {\n if (Array.isArray(el)) {\n flattenHelper(el);\n } else {\n result.push(el);\n }\n });\n };\n\n flattenHelper(input);\n return result;\n}\n\nexport { GET_COMMANDS, SET_COMMANDS, calculateCacheItemSize, getCacheKeySafely, getCacheOperation, isInCommands, shouldConsiderForCache };\n//# sourceMappingURL=redisCache.js.map\n", - "import { PgInstrumentation } from '@opentelemetry/instrumentation-pg';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Postgres';\n\nconst instrumentPostgres = generateInstrumentOnce(\n INTEGRATION_NAME,\n PgInstrumentation,\n (options) => ({\n requireParentSpan: true,\n requestHook(span) {\n addOriginToSpan(span, 'auto.db.otel.postgres');\n },\n ignoreConnectSpans: options?.ignoreConnectSpans ?? false,\n }),\n);\n\nconst _postgresIntegration = ((options) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentPostgres(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [pg](https://www.npmjs.com/package/pg) library.\n *\n * For more information, see the [`postgresIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/postgres/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.postgresIntegration()],\n * });\n * ```\n */\nconst postgresIntegration = defineIntegration(_postgresIntegration);\n\nexport { instrumentPostgres, postgresIntegration };\n//# sourceMappingURL=postgres.js.map\n", - "import { trace, context } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, InstrumentationNodeModuleFile, safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\nimport { ATTR_DB_OPERATION_NAME, ATTR_DB_QUERY_TEXT, ATTR_DB_SYSTEM_NAME, ATTR_DB_RESPONSE_STATUS_CODE, ATTR_ERROR_TYPE } from '@opentelemetry/semantic-conventions';\nimport { SDK_VERSION, debug, replaceExports, startSpanManual, SPAN_STATUS_ERROR, defineIntegration, instrumentPostgresJsSql } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\n\n// Instrumentation for https://github.com/porsager/postgres\n\n\nconst INTEGRATION_NAME = 'PostgresJs';\nconst SUPPORTED_VERSIONS = ['>=3.0.0 <4'];\nconst SQL_OPERATION_REGEX = /^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i;\n\n// Marker to track if a query was created from an instrumented sql instance\n// This prevents double-spanning when both wrapper and prototype patches are active\nconst QUERY_FROM_INSTRUMENTED_SQL = Symbol.for('sentry.query.from.instrumented.sql');\n\nconst instrumentPostgresJs = generateInstrumentOnce(\n INTEGRATION_NAME,\n (options) =>\n new PostgresJsInstrumentation({\n requireParentSpan: options?.requireParentSpan ?? true,\n requestHook: options?.requestHook,\n }),\n);\n\n/**\n * Instrumentation for the [postgres](https://www.npmjs.com/package/postgres) library.\n * This instrumentation captures postgresjs queries and their attributes.\n *\n * Uses internal Sentry patching patterns to support both CommonJS and ESM environments.\n */\nclass PostgresJsInstrumentation extends InstrumentationBase {\n constructor(config) {\n super('sentry-postgres-js', SDK_VERSION, config);\n }\n\n /**\n * Initializes the instrumentation by patching the postgres module.\n * Uses two complementary approaches:\n * 1. Main function wrapper: instruments sql instances created AFTER instrumentation is set up (CJS + ESM)\n * 2. Query.prototype patch: fallback for sql instances created BEFORE instrumentation (CJS only)\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n 'postgres',\n SUPPORTED_VERSIONS,\n exports$1 => {\n try {\n return this._patchPostgres(exports$1);\n } catch (e) {\n DEBUG_BUILD && debug.error('Failed to patch postgres module:', e);\n return exports$1;\n }\n },\n exports$1 => exports$1,\n );\n\n // Add fallback Query.prototype patching for pre-existing sql instances (CJS only)\n // This catches queries from sql instances created before Sentry was initialized\n ['src', 'cf/src', 'cjs/src'].forEach(path => {\n module.files.push(\n new InstrumentationNodeModuleFile(\n `postgres/${path}/query.js`,\n SUPPORTED_VERSIONS,\n this._patchQueryPrototype.bind(this),\n this._unpatchQueryPrototype.bind(this),\n ),\n );\n });\n\n return module;\n }\n\n /**\n * Patches the postgres module by wrapping the main export function.\n * This intercepts the creation of sql instances and instruments them.\n */\n _patchPostgres(exports$1) {\n // In CJS: exports is the function itself\n // In ESM: exports.default is the function\n const isFunction = typeof exports$1 === 'function';\n const Original = isFunction ? exports$1 : exports$1.default;\n\n if (typeof Original !== 'function') {\n DEBUG_BUILD && debug.warn('postgres module does not export a function. Skipping instrumentation.');\n return exports$1;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n\n const WrappedPostgres = function ( ...args) {\n const sql = Reflect.construct(Original , args);\n\n // Validate that construction succeeded and returned a valid function object\n if (!sql || typeof sql !== 'function') {\n DEBUG_BUILD && debug.warn('postgres() did not return a valid instance');\n return sql;\n }\n\n // Delegate to the portable instrumentation from @sentry/core\n const config = self.getConfig();\n return instrumentPostgresJsSql(sql, {\n requireParentSpan: config.requireParentSpan,\n requestHook: config.requestHook,\n });\n };\n\n Object.setPrototypeOf(WrappedPostgres, Original);\n Object.setPrototypeOf(WrappedPostgres.prototype, (Original ).prototype);\n\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (!['length', 'name', 'prototype'].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedPostgres, key, descriptor);\n }\n }\n }\n\n // For CJS: the exports object IS the function, so return the wrapped function\n // For ESM: replace the default export\n if (isFunction) {\n return WrappedPostgres ;\n } else {\n replaceExports(exports$1, 'default', WrappedPostgres);\n return exports$1;\n }\n }\n\n /**\n * Determines whether a span should be created based on the current context.\n * If `requireParentSpan` is set to true in the configuration, a span will\n * only be created if there is a parent span available.\n */\n _shouldCreateSpans() {\n const config = this.getConfig();\n const hasParentSpan = trace.getSpan(context.active()) !== undefined;\n return hasParentSpan || !config.requireParentSpan;\n }\n\n /**\n * Extracts DB operation name from SQL query and sets it on the span.\n */\n _setOperationName(span, sanitizedQuery, command) {\n if (command) {\n span.setAttribute(ATTR_DB_OPERATION_NAME, command);\n return;\n }\n // Fallback: extract operation from the SQL query\n const operationMatch = sanitizedQuery?.match(SQL_OPERATION_REGEX);\n if (operationMatch?.[1]) {\n span.setAttribute(ATTR_DB_OPERATION_NAME, operationMatch[1].toUpperCase());\n }\n }\n\n /**\n * Reconstructs the full SQL query from template strings with PostgreSQL placeholders.\n *\n * For sql`SELECT * FROM users WHERE id = ${123} AND name = ${'foo'}`:\n * strings = [\"SELECT * FROM users WHERE id = \", \" AND name = \", \"\"]\n * returns: \"SELECT * FROM users WHERE id = $1 AND name = $2\"\n */\n _reconstructQuery(strings) {\n if (!strings?.length) {\n return undefined;\n }\n if (strings.length === 1) {\n return strings[0] || undefined;\n }\n // Join template parts with PostgreSQL placeholders ($1, $2, etc.)\n return strings.reduce((acc, str, i) => (i === 0 ? str : `${acc}$${i}${str}`), '');\n }\n\n /**\n * Sanitize SQL query as per the OTEL semantic conventions\n * https://opentelemetry.io/docs/specs/semconv/database/database-spans/#sanitization-of-dbquerytext\n *\n * PostgreSQL $n placeholders are preserved per OTEL spec - they're parameterized queries,\n * not sensitive literals. Only actual values (strings, numbers, booleans) are sanitized.\n */\n _sanitizeSqlQuery(sqlQuery) {\n if (!sqlQuery) {\n return 'Unknown SQL Query';\n }\n\n return (\n sqlQuery\n // Remove comments first (they may contain newlines and extra spaces)\n .replace(/--.*$/gm, '') // Single line comments (multiline mode)\n .replace(/\\/\\*[\\s\\S]*?\\*\\//g, '') // Multi-line comments\n .replace(/;\\s*$/, '') // Remove trailing semicolons\n // Collapse whitespace to a single space (after removing comments)\n .replace(/\\s+/g, ' ')\n .trim() // Remove extra spaces and trim\n // Sanitize hex/binary literals before string literals\n .replace(/\\bX'[0-9A-Fa-f]*'/gi, '?') // Hex string literals\n .replace(/\\bB'[01]*'/gi, '?') // Binary string literals\n // Sanitize string literals (handles escaped quotes)\n .replace(/'(?:[^']|'')*'/g, '?')\n // Sanitize hex numbers\n .replace(/\\b0x[0-9A-Fa-f]+/gi, '?')\n // Sanitize boolean literals\n .replace(/\\b(?:TRUE|FALSE)\\b/gi, '?')\n // Sanitize numeric literals (preserve $n placeholders via negative lookbehind)\n .replace(/-?\\b\\d+\\.?\\d*[eE][+-]?\\d+\\b/g, '?') // Scientific notation\n .replace(/-?\\b\\d+\\.\\d+\\b/g, '?') // Decimals\n .replace(/-?\\.\\d+\\b/g, '?') // Decimals starting with dot\n .replace(/(? {\n addOriginToSpan(span, 'auto.db.postgresjs');\n\n span.setAttributes({\n [ATTR_DB_SYSTEM_NAME]: 'postgres',\n [ATTR_DB_QUERY_TEXT]: sanitizedSqlQuery,\n });\n\n // Note: No connection context available for pre-existing instances\n // because the sql instance wasn't created through our instrumented wrapper\n\n const config = self.getConfig();\n const { requestHook } = config;\n if (requestHook) {\n safeExecuteInTheMiddle(\n () => requestHook(span, sanitizedSqlQuery, undefined),\n e => {\n if (e) {\n span.setAttribute('sentry.hook.error', 'requestHook failed');\n DEBUG_BUILD && debug.error(`Error in requestHook for ${INTEGRATION_NAME} integration:`, e);\n }\n },\n true,\n );\n }\n\n // Wrap resolve to end span on success\n const originalResolve = this.resolve;\n this.resolve = new Proxy(originalResolve , {\n apply: (resolveTarget, resolveThisArg, resolveArgs) => {\n try {\n self._setOperationName(span, sanitizedSqlQuery, resolveArgs?.[0]?.command);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error('Error ending span in resolve callback:', e);\n }\n return Reflect.apply(resolveTarget, resolveThisArg, resolveArgs);\n },\n });\n\n // Wrap reject to end span on error\n const originalReject = this.reject;\n this.reject = new Proxy(originalReject , {\n apply: (rejectTarget, rejectThisArg, rejectArgs) => {\n try {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: rejectArgs?.[0]?.message || 'unknown_error',\n });\n span.setAttribute(ATTR_DB_RESPONSE_STATUS_CODE, rejectArgs?.[0]?.code || 'unknown');\n span.setAttribute(ATTR_ERROR_TYPE, rejectArgs?.[0]?.name || 'unknown');\n self._setOperationName(span, sanitizedSqlQuery);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error('Error ending span in reject callback:', e);\n }\n return Reflect.apply(rejectTarget, rejectThisArg, rejectArgs);\n },\n });\n\n try {\n return originalHandle.apply(this, args);\n } catch (e) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: e instanceof Error ? e.message : 'unknown_error',\n });\n span.end();\n throw e;\n }\n },\n );\n };\n\n // Store original for unpatch - must be set on the NEW patched function\n moduleExports.Query.prototype.handle.__sentry_original__ = originalHandle;\n\n return moduleExports;\n }\n\n /**\n * Restores the original Query.prototype.handle method.\n */\n _unpatchQueryPrototype(moduleExports\n\n) {\n if (moduleExports.Query.prototype.handle.__sentry_original__) {\n moduleExports.Query.prototype.handle = moduleExports.Query.prototype.handle.__sentry_original__;\n }\n return moduleExports;\n }\n}\n\nconst _postgresJsIntegration = ((options) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentPostgresJs(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [postgres](https://www.npmjs.com/package/postgres) library.\n *\n * For more information, see the [`postgresIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/postgres/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.postgresJsIntegration()],\n * });\n * ```\n */\n\nconst postgresJsIntegration = defineIntegration(_postgresJsIntegration);\n\nexport { PostgresJsInstrumentation, instrumentPostgresJs, postgresJsIntegration };\n//# sourceMappingURL=postgresjs.js.map\n", - "import { trace, TraceFlags, context, SpanKind } from '@opentelemetry/api';\nimport { PrismaInstrumentation } from '@prisma/instrumentation';\nimport { defineIntegration, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, consoleSandbox } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Prisma';\n\nfunction isPrismaV6TracingHelper(helper) {\n return !!helper && typeof helper === 'object' && 'dispatchEngineSpans' in helper;\n}\n\nfunction getPrismaTracingHelper() {\n const prismaInstrumentationObject = (globalThis ).PRISMA_INSTRUMENTATION;\n const prismaTracingHelper =\n prismaInstrumentationObject &&\n typeof prismaInstrumentationObject === 'object' &&\n 'helper' in prismaInstrumentationObject\n ? prismaInstrumentationObject.helper\n : undefined;\n\n return prismaTracingHelper;\n}\n\nclass SentryPrismaInteropInstrumentation extends PrismaInstrumentation {\n constructor(options) {\n super(options?.instrumentationConfig);\n }\n\n enable() {\n super.enable();\n\n // The PrismaIntegration (super class) defines a global variable `global[\"PRISMA_INSTRUMENTATION\"]` when `enable()` is called. This global variable holds a \"TracingHelper\" which Prisma uses internally to create tracing data. It's their way of not depending on OTEL with their main package. The sucky thing is, prisma broke the interface of the tracing helper with the v6 major update. This means that if you use Prisma 5 with the v6 instrumentation (or vice versa) Prisma just blows up, because tries to call methods on the helper that no longer exist.\n // Because we actually want to use the v6 instrumentation and not blow up in Prisma 5 user's faces, what we're doing here is backfilling the v5 method (`createEngineSpan`) with a noop so that no longer crashes when it attempts to call that function.\n const prismaTracingHelper = getPrismaTracingHelper();\n\n if (isPrismaV6TracingHelper(prismaTracingHelper)) {\n // Inspired & adjusted from https://github.com/prisma/prisma/tree/5.22.0/packages/instrumentation\n (prismaTracingHelper ).createEngineSpan = (\n engineSpanEvent,\n ) => {\n const tracer = trace.getTracer('prismaV5Compatibility') ;\n\n // Prisma v5 relies on being able to create spans with a specific span & trace ID\n // this is no longer possible in OTEL v2, there is no public API to do this anymore\n // So in order to kind of hack this possibility, we rely on the internal `_idGenerator` property\n // This is used to generate the random IDs, and we overwrite this temporarily to generate static IDs\n // This is flawed and may not work, e.g. if the code is bundled and the private property is renamed\n // in such cases, these spans will not be captured and some Prisma spans will be missing\n const initialIdGenerator = tracer._idGenerator;\n\n if (!initialIdGenerator) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!',\n );\n });\n\n return;\n }\n\n try {\n engineSpanEvent.spans.forEach(engineSpan => {\n const kind = engineSpanKindToOTELSpanKind(engineSpan.kind);\n\n const parentSpanId = engineSpan.parent_span_id;\n const spanId = engineSpan.span_id;\n const traceId = engineSpan.trace_id;\n\n const links = engineSpan.links?.map(link => {\n return {\n context: {\n traceId: link.trace_id,\n spanId: link.span_id,\n traceFlags: TraceFlags.SAMPLED,\n },\n };\n });\n\n const ctx = trace.setSpanContext(context.active(), {\n traceId,\n spanId: parentSpanId,\n traceFlags: TraceFlags.SAMPLED,\n });\n\n context.with(ctx, () => {\n const temporaryIdGenerator = {\n generateTraceId: () => {\n return traceId;\n },\n generateSpanId: () => {\n return spanId;\n },\n };\n\n tracer._idGenerator = temporaryIdGenerator;\n\n const span = tracer.startSpan(engineSpan.name, {\n kind,\n links,\n startTime: engineSpan.start_time,\n attributes: engineSpan.attributes,\n });\n\n span.end(engineSpan.end_time);\n\n tracer._idGenerator = initialIdGenerator;\n });\n });\n } finally {\n // Ensure we always restore this at the end, even if something errors\n tracer._idGenerator = initialIdGenerator;\n }\n };\n }\n }\n}\n\nfunction engineSpanKindToOTELSpanKind(engineSpanKind) {\n switch (engineSpanKind) {\n case 'client':\n return SpanKind.CLIENT;\n case 'internal':\n default: // Other span kinds aren't currently supported\n return SpanKind.INTERNAL;\n }\n}\n\nconst instrumentPrisma = generateInstrumentOnce(INTEGRATION_NAME, options => {\n return new SentryPrismaInteropInstrumentation(options);\n});\n\n/**\n * Adds Sentry tracing instrumentation for the [prisma](https://www.npmjs.com/package/prisma) library.\n * For more information, see the [`prismaIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/prisma/).\n *\n * NOTE: By default, this integration works with Prisma version 6.\n * To get performance instrumentation for other Prisma versions,\n * 1. Install the `@prisma/instrumentation` package with the desired version.\n * 1. Pass a `new PrismaInstrumentation()` instance as exported from `@prisma/instrumentation` to the `prismaInstrumentation` option of this integration:\n *\n * ```js\n * import { PrismaInstrumentation } from '@prisma/instrumentation'\n *\n * Sentry.init({\n * integrations: [\n * prismaIntegration({\n * // Override the default instrumentation that Sentry uses\n * prismaInstrumentation: new PrismaInstrumentation()\n * })\n * ]\n * })\n * ```\n *\n * The passed instrumentation instance will override the default instrumentation instance the integration would use, while the `prismaIntegration` will still ensure data compatibility for the various Prisma versions.\n * 1. Depending on your Prisma version (prior to version 6), add `previewFeatures = [\"tracing\"]` to the client generator block of your Prisma schema:\n *\n * ```\n * generator client {\n * provider = \"prisma-client-js\"\n * previewFeatures = [\"tracing\"]\n * }\n * ```\n */\nconst prismaIntegration = defineIntegration((options) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentPrisma(options);\n },\n setup(client) {\n // If no tracing helper exists, we skip any work here\n // this means that prisma is not being used\n if (!getPrismaTracingHelper()) {\n return;\n }\n\n client.on('spanStart', span => {\n const spanJSON = spanToJSON(span);\n if (spanJSON.description?.startsWith('prisma:')) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.prisma');\n }\n\n // Make sure we use the query text as the span name, for ex. SELECT * FROM \"User\" WHERE \"id\" = $1\n if (spanJSON.description === 'prisma:engine:db_query' && spanJSON.data['db.query.text']) {\n span.updateName(spanJSON.data['db.query.text'] );\n }\n\n // In Prisma v5.22+, the `db.system` attribute is automatically set\n // On older versions, this is missing, so we add it here\n if (spanJSON.description === 'prisma:engine:db_query' && !spanJSON.data['db.system']) {\n span.setAttribute('db.system', 'prisma');\n }\n });\n },\n };\n});\n\nexport { instrumentPrisma, prismaIntegration };\n//# sourceMappingURL=prisma.js.map\n", - "// src/PrismaInstrumentation.ts\nimport { trace as trace2 } from \"@opentelemetry/api\";\nimport {\n InstrumentationBase,\n InstrumentationNodeModuleDefinition\n} from \"@opentelemetry/instrumentation\";\n\n// ../instrumentation-contract/dist/index.mjs\nvar package_default = {\n name: \"@prisma/instrumentation-contract\",\n version: \"7.4.2\",\n description: \"Shared types and utilities for Prisma instrumentation\",\n main: \"dist/index.js\",\n module: \"dist/index.mjs\",\n types: \"dist/index.d.ts\",\n exports: {\n \".\": {\n require: {\n types: \"./dist/index.d.ts\",\n default: \"./dist/index.js\"\n },\n import: {\n types: \"./dist/index.d.mts\",\n default: \"./dist/index.mjs\"\n }\n }\n },\n license: \"Apache-2.0\",\n homepage: \"https://www.prisma.io\",\n repository: {\n type: \"git\",\n url: \"https://github.com/prisma/prisma.git\",\n directory: \"packages/instrumentation-contract\"\n },\n bugs: \"https://github.com/prisma/prisma/issues\",\n scripts: {\n dev: \"DEV=true tsx helpers/build.ts\",\n build: \"tsx helpers/build.ts\",\n prepublishOnly: \"pnpm run build\",\n test: \"vitest run\"\n },\n files: [\n \"dist\"\n ],\n sideEffects: false,\n devDependencies: {\n \"@opentelemetry/api\": \"1.9.0\"\n },\n peerDependencies: {\n \"@opentelemetry/api\": \"^1.8\"\n }\n};\nvar majorVersion = package_default.version.split(\".\")[0];\nvar GLOBAL_INSTRUMENTATION_KEY = \"PRISMA_INSTRUMENTATION\";\nvar GLOBAL_VERSIONED_INSTRUMENTATION_KEY = `V${majorVersion}_PRISMA_INSTRUMENTATION`;\nvar globalThisWithPrismaInstrumentation = globalThis;\nfunction getGlobalTracingHelper() {\n const versionedGlobal = globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY];\n if (versionedGlobal?.helper) {\n return versionedGlobal.helper;\n }\n const fallbackGlobal = globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY];\n return fallbackGlobal?.helper;\n}\nfunction setGlobalTracingHelper(helper) {\n const globalValue = { helper };\n globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY] = globalValue;\n globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY] = globalValue;\n}\nfunction clearGlobalTracingHelper() {\n delete globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY];\n delete globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY];\n}\n\n// src/ActiveTracingHelper.ts\nimport {\n context as _context,\n SpanKind,\n trace\n} from \"@opentelemetry/api\";\nvar showAllTraces = process.env.PRISMA_SHOW_ALL_TRACES === \"true\";\nvar nonSampledTraceParent = `00-10-10-00`;\nfunction engineSpanKindToOtelSpanKind(engineSpanKind) {\n switch (engineSpanKind) {\n case \"client\":\n return SpanKind.CLIENT;\n case \"internal\":\n default:\n return SpanKind.INTERNAL;\n }\n}\nvar ActiveTracingHelper = class {\n tracerProvider;\n ignoreSpanTypes;\n constructor({ tracerProvider, ignoreSpanTypes }) {\n this.tracerProvider = tracerProvider;\n this.ignoreSpanTypes = ignoreSpanTypes;\n }\n isEnabled() {\n return true;\n }\n getTraceParent(context) {\n const span = trace.getSpanContext(context ?? _context.active());\n if (span) {\n return `00-${span.traceId}-${span.spanId}-0${span.traceFlags}`;\n }\n return nonSampledTraceParent;\n }\n dispatchEngineSpans(spans) {\n const tracer = this.tracerProvider.getTracer(\"prisma\");\n const linkIds = /* @__PURE__ */ new Map();\n const roots = spans.filter((span) => span.parentId === null);\n for (const root of roots) {\n dispatchEngineSpan(tracer, root, spans, linkIds, this.ignoreSpanTypes);\n }\n }\n getActiveContext() {\n return _context.active();\n }\n runInChildSpan(options, callback) {\n if (typeof options === \"string\") {\n options = { name: options };\n }\n if (options.internal && !showAllTraces) {\n return callback();\n }\n const tracer = this.tracerProvider.getTracer(\"prisma\");\n const context = options.context ?? this.getActiveContext();\n const name = `prisma:client:${options.name}`;\n if (shouldIgnoreSpan(name, this.ignoreSpanTypes)) {\n return callback();\n }\n if (options.active === false) {\n const span = tracer.startSpan(name, options, context);\n return endSpan(span, callback(span, context));\n }\n return tracer.startActiveSpan(name, options, (span) => endSpan(span, callback(span, context)));\n }\n};\nfunction dispatchEngineSpan(tracer, engineSpan, allSpans, linkIds, ignoreSpanTypes) {\n if (shouldIgnoreSpan(engineSpan.name, ignoreSpanTypes)) return;\n const spanOptions = {\n attributes: engineSpan.attributes,\n kind: engineSpanKindToOtelSpanKind(engineSpan.kind),\n startTime: engineSpan.startTime\n };\n tracer.startActiveSpan(engineSpan.name, spanOptions, (span) => {\n linkIds.set(engineSpan.id, span.spanContext().spanId);\n if (engineSpan.links) {\n span.addLinks(\n engineSpan.links.flatMap((link) => {\n const linkedId = linkIds.get(link);\n if (!linkedId) {\n return [];\n }\n return {\n context: {\n spanId: linkedId,\n traceId: span.spanContext().traceId,\n traceFlags: span.spanContext().traceFlags\n }\n };\n })\n );\n }\n const children = allSpans.filter((s) => s.parentId === engineSpan.id);\n for (const child of children) {\n dispatchEngineSpan(tracer, child, allSpans, linkIds, ignoreSpanTypes);\n }\n span.end(engineSpan.endTime);\n });\n}\nfunction endSpan(span, result) {\n if (isPromiseLike(result)) {\n return result.then(\n (value) => {\n span.end();\n return value;\n },\n (reason) => {\n span.end();\n throw reason;\n }\n );\n }\n span.end();\n return result;\n}\nfunction isPromiseLike(value) {\n return value != null && typeof value[\"then\"] === \"function\";\n}\nfunction shouldIgnoreSpan(spanName, ignoreSpanTypes) {\n return ignoreSpanTypes.some(\n (pattern) => typeof pattern === \"string\" ? pattern === spanName : pattern.test(spanName)\n );\n}\n\n// package.json\nvar package_default2 = {\n name: \"@prisma/instrumentation\",\n version: \"7.4.2\",\n description: \"OpenTelemetry compliant instrumentation for Prisma Client\",\n main: \"dist/index.js\",\n module: \"dist/index.mjs\",\n types: \"dist/index.d.ts\",\n exports: {\n \".\": {\n require: {\n types: \"./dist/index.d.ts\",\n default: \"./dist/index.js\"\n },\n import: {\n types: \"./dist/index.d.ts\",\n default: \"./dist/index.mjs\"\n }\n }\n },\n license: \"Apache-2.0\",\n homepage: \"https://www.prisma.io\",\n repository: {\n type: \"git\",\n url: \"https://github.com/prisma/prisma.git\",\n directory: \"packages/instrumentation\"\n },\n bugs: \"https://github.com/prisma/prisma/issues\",\n devDependencies: {\n \"@opentelemetry/api\": \"1.9.0\",\n \"@prisma/instrumentation-contract\": \"workspace:*\",\n \"@types/node\": \"~20.19.24\",\n typescript: \"5.4.5\"\n },\n dependencies: {\n \"@opentelemetry/instrumentation\": \"^0.207.0\"\n },\n peerDependencies: {\n \"@opentelemetry/api\": \"^1.8\"\n },\n files: [\n \"dist\"\n ],\n keywords: [\n \"prisma\",\n \"instrumentation\",\n \"opentelemetry\",\n \"otel\"\n ],\n scripts: {\n dev: \"DEV=true tsx helpers/build.ts\",\n build: \"tsx helpers/build.ts\",\n prepublishOnly: \"pnpm run build\",\n test: \"vitest run\"\n },\n sideEffects: false\n};\n\n// src/constants.ts\nvar VERSION = package_default2.version;\nvar NAME = package_default2.name;\nvar MODULE_NAME = \"@prisma/client\";\n\n// src/PrismaInstrumentation.ts\nvar PrismaInstrumentation = class extends InstrumentationBase {\n tracerProvider;\n constructor(config = {}) {\n super(NAME, VERSION, config);\n }\n setTracerProvider(tracerProvider) {\n this.tracerProvider = tracerProvider;\n }\n init() {\n const module = new InstrumentationNodeModuleDefinition(MODULE_NAME, [VERSION]);\n return [module];\n }\n enable() {\n const config = this._config;\n setGlobalTracingHelper(\n new ActiveTracingHelper({\n tracerProvider: this.tracerProvider ?? trace2.getTracerProvider(),\n ignoreSpanTypes: config.ignoreSpanTypes ?? []\n })\n );\n }\n disable() {\n clearGlobalTracingHelper();\n }\n isEnabled() {\n return getGlobalTracingHelper() !== void 0;\n }\n};\n\n// src/index.ts\nimport { registerInstrumentations } from \"@opentelemetry/instrumentation\";\nexport {\n PrismaInstrumentation,\n registerInstrumentations\n};\n", - "import { HapiInstrumentation } from '@opentelemetry/instrumentation-hapi';\nimport { defineIntegration, SDK_VERSION, getClient, getIsolationScope, getDefaultIsolationScope, debug, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../../debug-build.js';\n\nconst INTEGRATION_NAME = 'Hapi';\n\nconst instrumentHapi = generateInstrumentOnce(INTEGRATION_NAME, () => new HapiInstrumentation());\n\nconst _hapiIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentHapi();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for [Hapi](https://hapi.dev/).\n *\n * If you also want to capture errors, you need to call `setupHapiErrorHandler(server)` after you set up your server.\n *\n * For more information, see the [hapi documentation](https://docs.sentry.io/platforms/javascript/guides/hapi/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.hapiIntegration()],\n * })\n * ```\n */\nconst hapiIntegration = defineIntegration(_hapiIntegration);\n\nfunction isErrorEvent(event) {\n return !!(event && typeof event === 'object' && 'error' in event && event.error);\n}\n\nfunction sendErrorToSentry(errorData) {\n captureException(errorData, {\n mechanism: {\n type: 'auto.function.hapi',\n handled: false,\n },\n });\n}\n\nconst hapiErrorPlugin = {\n name: 'SentryHapiErrorPlugin',\n version: SDK_VERSION,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register: async function (serverArg) {\n const server = serverArg ;\n\n server.events.on({ name: 'request', channels: ['error'] }, (request, event) => {\n if (getIsolationScope() !== getDefaultIsolationScope()) {\n const route = request.route;\n if (route.path) {\n getIsolationScope().setTransactionName(`${route.method.toUpperCase()} ${route.path}`);\n }\n } else {\n DEBUG_BUILD &&\n debug.warn('Isolation scope is still the default isolation scope - skipping setting transactionName');\n }\n\n if (isErrorEvent(event)) {\n sendErrorToSentry(event.error);\n }\n });\n },\n};\n\n/**\n * Add a Hapi plugin to capture errors to Sentry.\n *\n * @param server The Hapi server to attach the error handler to\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const Hapi = require('@hapi/hapi');\n *\n * const init = async () => {\n * const server = Hapi.server();\n *\n * // all your routes here\n *\n * await Sentry.setupHapiErrorHandler(server);\n *\n * await server.start();\n * };\n * ```\n */\nasync function setupHapiErrorHandler(server) {\n await server.register(hapiErrorPlugin);\n\n // Sadly, middleware spans do not go through `requestHook`, so we handle those here\n // We register this hook in this method, because if we register it in the integration `setup`,\n // it would always run even for users that are not even using hapi\n const client = getClient();\n if (client) {\n client.on('spanStart', span => {\n addHapiSpanAttributes(span);\n });\n }\n\n ensureIsWrapped(server.register, 'hapi');\n}\n\nfunction addHapiSpanAttributes(span) {\n const attributes = spanToJSON(span).data;\n\n // this is one of: router, plugin, server.ext\n const type = attributes['hapi.type'];\n\n // If this is already set, or we have no Hapi span, no need to process again...\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n return;\n }\n\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.hapi',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.hapi`,\n });\n}\n\nexport { hapiErrorPlugin, hapiIntegration, instrumentHapi, setupHapiErrorHandler };\n//# sourceMappingURL=index.js.map\n", - "import { ATTR_HTTP_ROUTE, ATTR_HTTP_REQUEST_METHOD } from '@opentelemetry/semantic-conventions';\nimport { defineIntegration, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getIsolationScope, getDefaultIsolationScope, debug, httpRequestToRequestData, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../../debug-build.js';\nimport { AttributeNames } from './constants.js';\nimport { HonoInstrumentation } from './instrumentation.js';\n\nconst INTEGRATION_NAME = 'Hono';\n\nfunction addHonoSpanAttributes(span) {\n const attributes = spanToJSON(span).data;\n const type = attributes[AttributeNames.HONO_TYPE];\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n return;\n }\n\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.hono',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.hono`,\n });\n\n const name = attributes[AttributeNames.HONO_NAME];\n if (typeof name === 'string') {\n span.updateName(name);\n }\n\n if (getIsolationScope() === getDefaultIsolationScope()) {\n DEBUG_BUILD && debug.warn('Isolation scope is default isolation scope - skipping setting transactionName');\n return;\n }\n\n const route = attributes[ATTR_HTTP_ROUTE];\n const method = attributes[ATTR_HTTP_REQUEST_METHOD];\n if (typeof route === 'string' && typeof method === 'string') {\n getIsolationScope().setTransactionName(`${method} ${route}`);\n }\n}\n\nconst instrumentHono = generateInstrumentOnce(\n INTEGRATION_NAME,\n () =>\n new HonoInstrumentation({\n responseHook: span => {\n addHonoSpanAttributes(span);\n },\n }),\n);\n\nconst _honoIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentHono();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for [Hono](https://hono.dev/).\n *\n * If you also want to capture errors, you need to call `setupHonoErrorHandler(app)` after you set up your Hono server.\n *\n * For more information, see the [hono documentation](https://docs.sentry.io/platforms/javascript/guides/hono/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.honoIntegration()],\n * })\n * ```\n */\nconst honoIntegration = defineIntegration(_honoIntegration);\n\nfunction honoRequestHandler() {\n return async function sentryRequestMiddleware(context, next) {\n const normalizedRequest = httpRequestToRequestData(context.req);\n getIsolationScope().setSDKProcessingMetadata({ normalizedRequest });\n await next();\n };\n}\n\nfunction defaultShouldHandleError(context) {\n const statusCode = context.res.status;\n return statusCode >= 500;\n}\n\nfunction honoErrorHandler(options) {\n return async function sentryErrorMiddleware(context, next) {\n await next();\n\n const shouldHandleError = options?.shouldHandleError || defaultShouldHandleError;\n if (shouldHandleError(context)) {\n (context.res ).sentry = captureException(context.error, {\n mechanism: {\n type: 'auto.middleware.hono',\n handled: false,\n },\n });\n }\n };\n}\n\n/**\n * Add a Hono error handler to capture errors to Sentry.\n *\n * @param app The Hono instances\n * @param options Configuration options for the handler\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const { Hono } = require(\"hono\");\n *\n * const app = new Hono();\n *\n * Sentry.setupHonoErrorHandler(app);\n *\n * // Add your routes, etc.\n * ```\n */\nfunction setupHonoErrorHandler(\n app,\n options,\n) {\n app.use(honoRequestHandler());\n app.use(honoErrorHandler(options));\n ensureIsWrapped(app.use, 'hono');\n}\n\nexport { honoIntegration, instrumentHono, setupHonoErrorHandler };\n//# sourceMappingURL=index.js.map\n", - "const AttributeNames = {\n HONO_TYPE: 'hono.type',\n HONO_NAME: 'hono.name',\n} ;\n\nconst HonoTypes = {\n MIDDLEWARE: 'middleware',\n REQUEST_HANDLER: 'request_handler',\n} ;\n\nexport { AttributeNames, HonoTypes };\n//# sourceMappingURL=constants.js.map\n", - "import { context, trace, SpanStatusCode } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { isThenable } from '@sentry/core';\nimport { AttributeNames, HonoTypes } from './constants.js';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-hono';\nconst PACKAGE_VERSION = '0.0.1';\n\n/**\n * Hono instrumentation for OpenTelemetry\n */\nclass HonoInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, PACKAGE_VERSION, config);\n }\n\n /**\n * Initialize the instrumentation.\n */\n init() {\n return [\n new InstrumentationNodeModuleDefinition('hono', ['>=4.0.0 <5'], moduleExports => this._patch(moduleExports)),\n ];\n }\n\n /**\n * Patches the module exports to instrument Hono.\n */\n _patch(moduleExports) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const instrumentation = this;\n\n class WrappedHono extends moduleExports.Hono {\n constructor(...args) {\n super(...args);\n\n instrumentation._wrap(this, 'get', instrumentation._patchHandler());\n instrumentation._wrap(this, 'post', instrumentation._patchHandler());\n instrumentation._wrap(this, 'put', instrumentation._patchHandler());\n instrumentation._wrap(this, 'delete', instrumentation._patchHandler());\n instrumentation._wrap(this, 'options', instrumentation._patchHandler());\n instrumentation._wrap(this, 'patch', instrumentation._patchHandler());\n instrumentation._wrap(this, 'all', instrumentation._patchHandler());\n instrumentation._wrap(this, 'on', instrumentation._patchOnHandler());\n instrumentation._wrap(this, 'use', instrumentation._patchMiddlewareHandler());\n }\n }\n\n try {\n moduleExports.Hono = WrappedHono;\n } catch {\n // This is a workaround for environments where direct assignment is not allowed.\n return { ...moduleExports, Hono: WrappedHono };\n }\n\n return moduleExports;\n }\n\n /**\n * Patches the route handler to instrument it.\n */\n _patchHandler() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const instrumentation = this;\n\n return function (original) {\n return function wrappedHandler( ...args) {\n if (typeof args[0] === 'string') {\n const path = args[0];\n if (args.length === 1) {\n return original.apply(this, [path]);\n }\n\n const handlers = args.slice(1);\n return original.apply(this, [\n path,\n ...handlers.map(handler => instrumentation._wrapHandler(handler )),\n ]);\n }\n\n return original.apply(\n this,\n args.map(handler => instrumentation._wrapHandler(handler )),\n );\n };\n };\n }\n\n /**\n * Patches the 'on' handler to instrument it.\n */\n _patchOnHandler() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const instrumentation = this;\n\n return function (original) {\n return function wrappedHandler( ...args) {\n const handlers = args.slice(2);\n return original.apply(this, [\n ...args.slice(0, 2),\n ...handlers.map(handler => instrumentation._wrapHandler(handler )),\n ]);\n };\n };\n }\n\n /**\n * Patches the middleware handler to instrument it.\n */\n _patchMiddlewareHandler() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const instrumentation = this;\n\n return function (original) {\n return function wrappedHandler( ...args) {\n if (typeof args[0] === 'string') {\n const path = args[0];\n if (args.length === 1) {\n return original.apply(this, [path]);\n }\n\n const handlers = args.slice(1);\n return original.apply(this, [\n path,\n ...handlers.map(handler => instrumentation._wrapHandler(handler )),\n ]);\n }\n\n return original.apply(\n this,\n args.map(handler => instrumentation._wrapHandler(handler )),\n );\n };\n };\n }\n\n /**\n * Wraps a handler or middleware handler to apply instrumentation.\n */\n _wrapHandler(handler) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const instrumentation = this;\n\n return function ( c, next) {\n if (!instrumentation.isEnabled()) {\n return handler.apply(this, [c, next]);\n }\n\n const path = c.req.path;\n const span = instrumentation.tracer.startSpan(path);\n\n return context.with(trace.setSpan(context.active(), span), () => {\n return instrumentation._safeExecute(\n () => {\n const result = handler.apply(this, [c, next]);\n if (isThenable(result)) {\n return result.then(result => {\n const type = instrumentation._determineHandlerType(result);\n span.setAttributes({\n [AttributeNames.HONO_TYPE]: type,\n [AttributeNames.HONO_NAME]: type === HonoTypes.REQUEST_HANDLER ? path : handler.name || 'anonymous',\n });\n instrumentation.getConfig().responseHook?.(span);\n return result;\n });\n } else {\n const type = instrumentation._determineHandlerType(result);\n span.setAttributes({\n [AttributeNames.HONO_TYPE]: type,\n [AttributeNames.HONO_NAME]: type === HonoTypes.REQUEST_HANDLER ? path : handler.name || 'anonymous',\n });\n instrumentation.getConfig().responseHook?.(span);\n return result;\n }\n },\n () => span.end(),\n error => {\n instrumentation._handleError(span, error);\n span.end();\n },\n );\n });\n };\n }\n\n /**\n * Safely executes a function and handles errors.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _safeExecute(execute, onSuccess, onFailure) {\n try {\n const result = execute();\n\n if (isThenable(result)) {\n result.then(\n () => onSuccess(),\n (error) => onFailure(error),\n );\n } else {\n onSuccess();\n }\n\n return result;\n } catch (error) {\n onFailure(error);\n throw error;\n }\n }\n\n /**\n * Determines the handler type based on the result.\n * @param result\n * @private\n */\n _determineHandlerType(result) {\n return result === undefined ? HonoTypes.MIDDLEWARE : HonoTypes.REQUEST_HANDLER;\n }\n\n /**\n * Handles errors by setting the span status and recording the exception.\n */\n _handleError(span, error) {\n if (error instanceof Error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error.message,\n });\n span.recordException(error);\n }\n }\n}\n\nexport { HonoInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", - "import { KoaInstrumentation } from '@opentelemetry/instrumentation-koa';\nimport { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport { spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, getIsolationScope, getDefaultIsolationScope, debug, defineIntegration, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan, ensureIsWrapped } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\n\nconst INTEGRATION_NAME = 'Koa';\n\nconst instrumentKoa = generateInstrumentOnce(\n INTEGRATION_NAME,\n KoaInstrumentation,\n (options = {}) => {\n return {\n ignoreLayersType: options.ignoreLayersType ,\n requestHook(span, info) {\n addOriginToSpan(span, 'auto.http.otel.koa');\n\n const attributes = spanToJSON(span).data;\n\n // this is one of: middleware, router\n const type = attributes['koa.type'];\n if (type) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, `${type}.koa`);\n }\n\n // Also update the name\n const name = attributes['koa.name'];\n if (typeof name === 'string') {\n // Somehow, name is sometimes `''` for middleware spans\n // See: https://github.com/open-telemetry/opentelemetry-js-contrib/issues/2220\n span.updateName(name || '< unknown >');\n }\n\n if (getIsolationScope() === getDefaultIsolationScope()) {\n DEBUG_BUILD && debug.warn('Isolation scope is default isolation scope - skipping setting transactionName');\n return;\n }\n const route = attributes[ATTR_HTTP_ROUTE];\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const method = info.context?.request?.method?.toUpperCase() || 'GET';\n if (route) {\n getIsolationScope().setTransactionName(`${method} ${route}`);\n }\n },\n } ;\n },\n);\n\nconst _koaIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentKoa(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for [Koa](https://koajs.com/).\n *\n * If you also want to capture errors, you need to call `setupKoaErrorHandler(app)` after you set up your Koa server.\n *\n * For more information, see the [koa documentation](https://docs.sentry.io/platforms/javascript/guides/koa/).\n *\n * @param {KoaOptions} options Configuration options for the Koa integration.\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.koaIntegration()],\n * })\n * ```\n *\n * @example\n * ```javascript\n * // To ignore middleware spans\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [\n * Sentry.koaIntegration({\n * ignoreLayersType: ['middleware']\n * })\n * ],\n * })\n * ```\n */\nconst koaIntegration = defineIntegration(_koaIntegration);\n\n/**\n * Add an Koa error handler to capture errors to Sentry.\n *\n * The error handler must be before any other middleware and after all controllers.\n *\n * @param app The Express instances\n * @param options {ExpressHandlerOptions} Configuration options for the handler\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const Koa = require(\"koa\");\n *\n * const app = new Koa();\n *\n * Sentry.setupKoaErrorHandler(app);\n *\n * // Add your routes, etc.\n *\n * app.listen(3000);\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst setupKoaErrorHandler = (app) => {\n app.use(async (ctx, next) => {\n try {\n await next();\n } catch (error) {\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.middleware.koa',\n },\n });\n throw error;\n }\n });\n\n ensureIsWrapped(app.use, 'koa');\n};\n\nexport { instrumentKoa, koaIntegration, setupKoaErrorHandler };\n//# sourceMappingURL=koa.js.map\n", - "import { ConnectInstrumentation } from '@opentelemetry/instrumentation-connect';\nimport { defineIntegration, getClient, captureException, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Connect';\n\nconst instrumentConnect = generateInstrumentOnce(INTEGRATION_NAME, () => new ConnectInstrumentation());\n\nconst _connectIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentConnect();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for [Connect](https://github.com/senchalabs/connect/).\n *\n * If you also want to capture errors, you need to call `setupConnectErrorHandler(app)` after you initialize your connect app.\n *\n * For more information, see the [connect documentation](https://docs.sentry.io/platforms/javascript/guides/connect/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.connectIntegration()],\n * })\n * ```\n */\nconst connectIntegration = defineIntegration(_connectIntegration);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction connectErrorMiddleware(err, req, res, next) {\n captureException(err, {\n mechanism: {\n handled: false,\n type: 'auto.middleware.connect',\n },\n });\n next(err);\n}\n\n/**\n * Add a Connect middleware to capture errors to Sentry.\n *\n * @param app The Connect app to attach the error handler to\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const connect = require(\"connect\");\n *\n * const app = connect();\n *\n * Sentry.setupConnectErrorHandler(app);\n *\n * // Add you connect routes here\n *\n * app.listen(3000);\n * ```\n */\nconst setupConnectErrorHandler = (app) => {\n app.use(connectErrorMiddleware);\n\n // Sadly, ConnectInstrumentation has no requestHook, so we need to add the attributes here\n // We register this hook in this method, because if we register it in the integration `setup`,\n // it would always run even for users that are not even using connect\n const client = getClient();\n if (client) {\n client.on('spanStart', span => {\n addConnectSpanAttributes(span);\n });\n }\n\n ensureIsWrapped(app.use, 'connect');\n};\n\nfunction addConnectSpanAttributes(span) {\n const attributes = spanToJSON(span).data;\n\n // this is one of: middleware, request_handler\n const type = attributes['connect.type'];\n\n // If this is already set, or we have no connect span, no need to process again...\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n return;\n }\n\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.connect',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.connect`,\n });\n\n // Also update the name, we don't need the \"middleware - \" prefix\n const name = attributes['connect.name'];\n if (typeof name === 'string') {\n span.updateName(name);\n }\n}\n\nexport { connectIntegration, instrumentConnect, setupConnectErrorHandler };\n//# sourceMappingURL=connect.js.map\n", - "import { TediousInstrumentation } from '@opentelemetry/instrumentation-tedious';\nimport { defineIntegration, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { generateInstrumentOnce, instrumentWhenWrapped } from '@sentry/node-core';\n\nconst TEDIUS_INSTRUMENTED_METHODS = new Set([\n 'callProcedure',\n 'execSql',\n 'execSqlBatch',\n 'execBulkLoad',\n 'prepare',\n 'execute',\n]);\n\nconst INTEGRATION_NAME = 'Tedious';\n\nconst instrumentTedious = generateInstrumentOnce(INTEGRATION_NAME, () => new TediousInstrumentation({}));\n\nconst _tediousIntegration = (() => {\n let instrumentationWrappedCallback;\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n const instrumentation = instrumentTedious();\n instrumentationWrappedCallback = instrumentWhenWrapped(instrumentation);\n },\n\n setup(client) {\n instrumentationWrappedCallback?.(() =>\n client.on('spanStart', span => {\n const { description, data } = spanToJSON(span);\n // Tedius integration always set a span name and `db.system` attribute to `mssql`.\n if (!description || data['db.system'] !== 'mssql') {\n return;\n }\n\n const operation = description.split(' ')[0] || '';\n if (TEDIUS_INSTRUMENTED_METHODS.has(operation)) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.tedious');\n }\n }),\n );\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [tedious](https://www.npmjs.com/package/tedious) library.\n *\n * For more information, see the [`tediousIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/tedious/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.tediousIntegration()],\n * });\n * ```\n */\nconst tediousIntegration = defineIntegration(_tediousIntegration);\n\nexport { instrumentTedious, tediousIntegration };\n//# sourceMappingURL=tedious.js.map\n", - "import { GenericPoolInstrumentation } from '@opentelemetry/instrumentation-generic-pool';\nimport { defineIntegration, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { generateInstrumentOnce, instrumentWhenWrapped } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'GenericPool';\n\nconst instrumentGenericPool = generateInstrumentOnce(INTEGRATION_NAME, () => new GenericPoolInstrumentation({}));\n\nconst _genericPoolIntegration = (() => {\n let instrumentationWrappedCallback;\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n const instrumentation = instrumentGenericPool();\n instrumentationWrappedCallback = instrumentWhenWrapped(instrumentation);\n },\n\n setup(client) {\n instrumentationWrappedCallback?.(() =>\n client.on('spanStart', span => {\n const spanJSON = spanToJSON(span);\n\n const spanDescription = spanJSON.description;\n\n // typo in emitted span for version <= 0.38.0 of @opentelemetry/instrumentation-generic-pool\n const isGenericPoolSpan =\n spanDescription === 'generic-pool.aquire' || spanDescription === 'generic-pool.acquire';\n\n if (isGenericPoolSpan) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.generic_pool');\n }\n }),\n );\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [generic-pool](https://www.npmjs.com/package/generic-pool) library.\n *\n * For more information, see the [`genericPoolIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/genericpool/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.genericPoolIntegration()],\n * });\n * ```\n */\nconst genericPoolIntegration = defineIntegration(_genericPoolIntegration);\n\nexport { genericPoolIntegration, instrumentGenericPool };\n//# sourceMappingURL=genericPool.js.map\n", - "import { AmqplibInstrumentation } from '@opentelemetry/instrumentation-amqplib';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Amqplib';\n\nconst config = {\n consumeEndHook: (span) => {\n addOriginToSpan(span, 'auto.amqplib.otel.consumer');\n },\n publishHook: (span) => {\n addOriginToSpan(span, 'auto.amqplib.otel.publisher');\n },\n};\n\nconst instrumentAmqplib = generateInstrumentOnce(INTEGRATION_NAME, () => new AmqplibInstrumentation(config));\n\nconst _amqplibIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentAmqplib();\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [amqplib](https://www.npmjs.com/package/amqplib) library.\n *\n * For more information, see the [`amqplibIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/amqplib/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.amqplibIntegration()],\n * });\n * ```\n */\nconst amqplibIntegration = defineIntegration(_amqplibIntegration);\n\nexport { amqplibIntegration, instrumentAmqplib };\n//# sourceMappingURL=amqplib.js.map\n", - "const INTEGRATION_NAME = 'VercelAI';\n\nexport { INTEGRATION_NAME };\n//# sourceMappingURL=constants.js.map\n", - "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, getClient, handleCallbackErrors, addNonEnumerableProperty, getActiveSpan, _INTERNAL_getSpanContextForToolCallId, withScope, captureException, _INTERNAL_cleanupToolCallSpanContext } from '@sentry/core';\nimport { INTEGRATION_NAME } from './constants.js';\n\nconst SUPPORTED_VERSIONS = ['>=3.0.0 <7'];\n\n// List of patched methods\n// From: https://sdk.vercel.ai/docs/ai-sdk-core/telemetry#collected-data\nconst INSTRUMENTED_METHODS = [\n 'generateText',\n 'streamText',\n 'generateObject',\n 'streamObject',\n 'embed',\n 'embedMany',\n 'rerank',\n] ;\n\nfunction isToolError(obj) {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n\n const candidate = obj ;\n return (\n 'type' in candidate &&\n 'error' in candidate &&\n 'toolName' in candidate &&\n 'toolCallId' in candidate &&\n candidate.type === 'tool-error' &&\n candidate.error instanceof Error\n );\n}\n\n/**\n * Process tool call results: capture tool errors and clean up span context mappings.\n *\n * Error checking runs first (needs span context for linking), then cleanup removes all entries.\n * Tool errors are not rejected in Vercel AI V5 — they appear as metadata in the result content.\n */\nfunction processToolCallResults(result) {\n if (typeof result !== 'object' || result === null || !('content' in result)) {\n return;\n }\n\n const resultObj = result ;\n if (!Array.isArray(resultObj.content)) {\n return;\n }\n\n captureToolErrors(resultObj.content);\n cleanupToolCallSpanContexts(resultObj.content);\n}\n\nfunction captureToolErrors(content) {\n for (const item of content) {\n if (!isToolError(item)) {\n continue;\n }\n\n // Try to get the span context associated with this tool call ID\n const spanContext = _INTERNAL_getSpanContextForToolCallId(item.toolCallId);\n\n if (spanContext) {\n // We have the span context, so link the error using span and trace IDs\n withScope(scope => {\n scope.setContext('trace', {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n });\n\n scope.setTag('vercel.ai.tool.name', item.toolName);\n scope.setTag('vercel.ai.tool.callId', item.toolCallId);\n scope.setLevel('error');\n\n captureException(item.error, {\n mechanism: {\n type: 'auto.vercelai.otel',\n handled: false,\n },\n });\n });\n } else {\n // Fallback: capture without span linking\n withScope(scope => {\n scope.setTag('vercel.ai.tool.name', item.toolName);\n scope.setTag('vercel.ai.tool.callId', item.toolCallId);\n scope.setLevel('error');\n\n captureException(item.error, {\n mechanism: {\n type: 'auto.vercelai.otel',\n handled: false,\n },\n });\n });\n }\n }\n}\n\n/**\n * Remove span context entries for all completed tool calls in the content array.\n */\nfunction cleanupToolCallSpanContexts(content) {\n for (const item of content) {\n if (\n typeof item === 'object' &&\n item !== null &&\n 'toolCallId' in item &&\n typeof (item ).toolCallId === 'string'\n ) {\n _INTERNAL_cleanupToolCallSpanContext((item ).toolCallId );\n }\n }\n}\n\n/**\n * Determines whether to record inputs and outputs for Vercel AI telemetry based on the configuration hierarchy.\n *\n * The order of precedence is:\n * 1. The vercel ai integration options\n * 2. The experimental_telemetry options in the vercel ai method calls\n * 3. When telemetry is explicitly enabled (isEnabled: true), default to recording\n * 4. Otherwise, use the sendDefaultPii option from client options\n */\nfunction determineRecordingSettings(\n integrationRecordingOptions,\n methodTelemetryOptions,\n telemetryExplicitlyEnabled,\n defaultRecordingEnabled,\n) {\n const recordInputs =\n integrationRecordingOptions?.recordInputs !== undefined\n ? integrationRecordingOptions.recordInputs\n : methodTelemetryOptions.recordInputs !== undefined\n ? methodTelemetryOptions.recordInputs\n : telemetryExplicitlyEnabled === true\n ? true // When telemetry is explicitly enabled, default to recording inputs\n : defaultRecordingEnabled;\n\n const recordOutputs =\n integrationRecordingOptions?.recordOutputs !== undefined\n ? integrationRecordingOptions.recordOutputs\n : methodTelemetryOptions.recordOutputs !== undefined\n ? methodTelemetryOptions.recordOutputs\n : telemetryExplicitlyEnabled === true\n ? true // When telemetry is explicitly enabled, default to recording inputs\n : defaultRecordingEnabled;\n\n return { recordInputs, recordOutputs };\n}\n\n/**\n * This detects is added by the Sentry Vercel AI Integration to detect if the integration should\n * be enabled.\n *\n * It also patches the `ai` module to enable Vercel AI telemetry automatically for all methods.\n */\nclass SentryVercelAiInstrumentation extends InstrumentationBase {\n __init() {this._isPatched = false;}\n __init2() {this._callbacks = [];}\n\n constructor(config = {}) {\n super('@sentry/instrumentation-vercel-ai', SDK_VERSION, config);SentryVercelAiInstrumentation.prototype.__init.call(this);SentryVercelAiInstrumentation.prototype.__init2.call(this); }\n\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition('ai', SUPPORTED_VERSIONS, this._patch.bind(this));\n return module;\n }\n\n /**\n * Call the provided callback when the module is patched.\n * If it has already been patched, the callback will be called immediately.\n */\n callWhenPatched(callback) {\n if (this._isPatched) {\n callback();\n } else {\n this._callbacks.push(callback);\n }\n }\n\n /**\n * Patches module exports to enable Vercel AI telemetry.\n */\n _patch(moduleExports) {\n this._isPatched = true;\n\n this._callbacks.forEach(callback => callback());\n this._callbacks = [];\n\n const generatePatch = (originalMethod) => {\n return new Proxy(originalMethod, {\n apply: (target, thisArg, args) => {\n const existingExperimentalTelemetry = args[0].experimental_telemetry || {};\n const isEnabled = existingExperimentalTelemetry.isEnabled;\n\n const client = getClient();\n const integration = client?.getIntegrationByName(INTEGRATION_NAME);\n const integrationOptions = integration?.options;\n const shouldRecordInputsAndOutputs = integration ? Boolean(client?.getOptions().sendDefaultPii) : false;\n\n const { recordInputs, recordOutputs } = determineRecordingSettings(\n integrationOptions,\n existingExperimentalTelemetry,\n isEnabled,\n shouldRecordInputsAndOutputs,\n );\n\n args[0].experimental_telemetry = {\n ...existingExperimentalTelemetry,\n isEnabled: isEnabled !== undefined ? isEnabled : true,\n recordInputs,\n recordOutputs,\n };\n\n return handleCallbackErrors(\n () => Reflect.apply(target, thisArg, args),\n error => {\n // This error bubbles up to unhandledrejection handler (if not handled before),\n // where we do not know the active span anymore\n // So to circumvent this, we set the active span on the error object\n // which is picked up by the unhandledrejection handler\n if (error && typeof error === 'object') {\n addNonEnumerableProperty(error, '_sentry_active_span', getActiveSpan());\n }\n },\n () => {},\n result => {\n processToolCallResults(result);\n },\n );\n },\n });\n };\n\n // Is this an ESM module?\n // https://tc39.es/ecma262/#sec-module-namespace-objects\n if (Object.prototype.toString.call(moduleExports) === '[object Module]') {\n // In ESM we take the usual route and just replace the exports we want to instrument\n for (const method of INSTRUMENTED_METHODS) {\n // Skip methods that don't exist in this version of the AI SDK (e.g., rerank was added in v6)\n if (moduleExports[method] != null) {\n moduleExports[method] = generatePatch(moduleExports[method]);\n }\n }\n\n return moduleExports;\n } else {\n // In CJS we can't replace the exports in the original module because they\n // don't have setters, so we create a new object with the same properties\n const patchedModuleExports = INSTRUMENTED_METHODS.reduce((acc, curr) => {\n // Skip methods that don't exist in this version of the AI SDK (e.g., rerank was added in v6)\n if (moduleExports[curr] != null) {\n acc[curr] = generatePatch(moduleExports[curr]);\n }\n return acc;\n }, {} );\n\n return { ...moduleExports, ...patchedModuleExports };\n }\n }\n}\n\nexport { SentryVercelAiInstrumentation, cleanupToolCallSpanContexts, determineRecordingSettings, processToolCallResults };\n//# sourceMappingURL=instrumentation.js.map\n", - "import { defineIntegration, addVercelAiProcessors } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { INTEGRATION_NAME } from './constants.js';\nimport { SentryVercelAiInstrumentation } from './instrumentation.js';\n\nconst instrumentVercelAi = generateInstrumentOnce(INTEGRATION_NAME, () => new SentryVercelAiInstrumentation({}));\n\n/**\n * Determines if the integration should be forced based on environment and package availability.\n * Returns true if the 'ai' package is available.\n */\nfunction shouldForceIntegration(client) {\n const modules = client.getIntegrationByName('Modules');\n return !!modules?.getModules?.()?.ai;\n}\n\nconst _vercelAIIntegration = ((options = {}) => {\n let instrumentation;\n\n return {\n name: INTEGRATION_NAME,\n options,\n setupOnce() {\n instrumentation = instrumentVercelAi();\n },\n afterAllSetup(client) {\n // Auto-detect if we should force the integration when running with 'ai' package available\n // Note that this can only be detected if the 'Modules' integration is available, and running in CJS mode\n const shouldForce = options.force ?? shouldForceIntegration(client);\n\n if (shouldForce) {\n addVercelAiProcessors(client);\n } else {\n instrumentation?.callWhenPatched(() => addVercelAiProcessors(client));\n }\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the [ai](https://www.npmjs.com/package/ai) library.\n * This integration is not enabled by default, you need to manually add it.\n *\n * For more information, see the [`ai` documentation](https://sdk.vercel.ai/docs/ai-sdk-core/telemetry).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.vercelAIIntegration()],\n * });\n * ```\n *\n * This integration adds tracing support to all `ai` function calls.\n * You need to opt-in to collecting spans for a specific call,\n * you can do so by setting `experimental_telemetry.isEnabled` to `true` in the first argument of the function call.\n *\n * ```javascript\n * const result = await generateText({\n * model: openai('gpt-4-turbo'),\n * experimental_telemetry: { isEnabled: true },\n * });\n * ```\n *\n * If you want to collect inputs and outputs for a specific call, you must specifically opt-in to each\n * function call by setting `experimental_telemetry.recordInputs` and `experimental_telemetry.recordOutputs`\n * to `true`.\n *\n * ```javascript\n * const result = await generateText({\n * model: openai('gpt-4-turbo'),\n * experimental_telemetry: { isEnabled: true, recordInputs: true, recordOutputs: true },\n * });\n */\nconst vercelAIIntegration = defineIntegration(_vercelAIIntegration);\n\nexport { instrumentVercelAi, vercelAIIntegration };\n//# sourceMappingURL=index.js.map\n", - "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, _INTERNAL_shouldSkipAiProviderWrapping, OPENAI_INTEGRATION_NAME, instrumentOpenAiClient } from '@sentry/core';\n\nconst supportedVersions = ['>=4.0.0 <7'];\n\n/**\n * Sentry OpenAI instrumentation using OpenTelemetry.\n */\nclass SentryOpenAiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super('@sentry/instrumentation-openai', SDK_VERSION, config);\n }\n\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition('openai', supportedVersions, this._patch.bind(this));\n return module;\n }\n\n /**\n * Core patch logic applying instrumentation to the OpenAI and AzureOpenAI client constructors.\n */\n _patch(exports$1) {\n let result = exports$1;\n result = this._patchClient(result, 'OpenAI');\n result = this._patchClient(result, 'AzureOpenAI');\n return result;\n }\n\n /**\n * Patch logic applying instrumentation to the specified client constructor.\n */\n _patchClient(exports$1, exportKey) {\n const Original = exports$1[exportKey];\n if (!Original) {\n return exports$1;\n }\n\n const config = this.getConfig();\n\n const WrappedOpenAI = function ( ...args) {\n // Check if wrapping should be skipped (e.g., when LangChain is handling instrumentation)\n if (_INTERNAL_shouldSkipAiProviderWrapping(OPENAI_INTEGRATION_NAME)) {\n return Reflect.construct(Original, args) ;\n }\n\n const instance = Reflect.construct(Original, args);\n\n return instrumentOpenAiClient(instance , config);\n } ;\n\n // Preserve static and prototype chains\n Object.setPrototypeOf(WrappedOpenAI, Original);\n Object.setPrototypeOf(WrappedOpenAI.prototype, Original.prototype);\n\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (!['length', 'name', 'prototype'].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedOpenAI, key, descriptor);\n }\n }\n }\n\n // Constructor replacement - handle read-only properties\n // The OpenAI property might have only a getter, so use defineProperty\n try {\n exports$1[exportKey] = WrappedOpenAI;\n } catch {\n // If direct assignment fails, override the property descriptor\n Object.defineProperty(exports$1, exportKey, {\n value: WrappedOpenAI,\n writable: true,\n configurable: true,\n enumerable: true,\n });\n }\n\n // Wrap the default export if it points to the original constructor\n // Constructor replacement - handle read-only properties\n // The OpenAI property might have only a getter, so use defineProperty\n if (exports$1.default === Original) {\n try {\n exports$1.default = WrappedOpenAI;\n } catch {\n // If direct assignment fails, override the property descriptor\n Object.defineProperty(exports$1, 'default', {\n value: WrappedOpenAI,\n writable: true,\n configurable: true,\n enumerable: true,\n });\n }\n }\n return exports$1;\n }\n}\n\nexport { SentryOpenAiInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", - "import { OPENAI_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryOpenAiInstrumentation } from './instrumentation.js';\n\nconst instrumentOpenAi = generateInstrumentOnce(\n OPENAI_INTEGRATION_NAME,\n options => new SentryOpenAiInstrumentation(options),\n);\n\nconst _openAiIntegration = ((options = {}) => {\n return {\n name: OPENAI_INTEGRATION_NAME,\n setupOnce() {\n instrumentOpenAi(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the OpenAI SDK.\n *\n * This integration is enabled by default.\n *\n * When configured, this integration automatically instruments OpenAI SDK client instances\n * to capture telemetry data following OpenTelemetry Semantic Conventions for Generative AI.\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n * integrations: [Sentry.openAIIntegration()],\n * });\n * ```\n *\n * ## Options\n *\n * - `recordInputs`: Whether to record prompt messages (default: respects `sendDefaultPii` client option)\n * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)\n *\n * ### Default Behavior\n *\n * By default, the integration will:\n * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options\n * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled\n *\n * @example\n * ```javascript\n * // Record inputs and outputs when sendDefaultPii is false\n * Sentry.init({\n * integrations: [\n * Sentry.openAIIntegration({\n * recordInputs: true,\n * recordOutputs: true\n * })\n * ],\n * });\n *\n * // Never record inputs/outputs regardless of sendDefaultPii\n * Sentry.init({\n * sendDefaultPii: true,\n * integrations: [\n * Sentry.openAIIntegration({\n * recordInputs: false,\n * recordOutputs: false\n * })\n * ],\n * });\n * ```\n *\n */\nconst openAIIntegration = defineIntegration(_openAiIntegration);\n\nexport { instrumentOpenAi, openAIIntegration };\n//# sourceMappingURL=index.js.map\n", - "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, _INTERNAL_shouldSkipAiProviderWrapping, ANTHROPIC_AI_INTEGRATION_NAME, instrumentAnthropicAiClient } from '@sentry/core';\n\nconst supportedVersions = ['>=0.19.2 <1.0.0'];\n\n/**\n * Sentry Anthropic AI instrumentation using OpenTelemetry.\n */\nclass SentryAnthropicAiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super('@sentry/instrumentation-anthropic-ai', SDK_VERSION, config);\n }\n\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n '@anthropic-ai/sdk',\n supportedVersions,\n this._patch.bind(this),\n );\n return module;\n }\n\n /**\n * Core patch logic applying instrumentation to the Anthropic AI client constructor.\n */\n _patch(exports$1) {\n const Original = exports$1.Anthropic;\n\n const config = this.getConfig();\n\n const WrappedAnthropic = function ( ...args) {\n // Check if wrapping should be skipped (e.g., when LangChain is handling instrumentation)\n if (_INTERNAL_shouldSkipAiProviderWrapping(ANTHROPIC_AI_INTEGRATION_NAME)) {\n return Reflect.construct(Original, args) ;\n }\n\n const instance = Reflect.construct(Original, args);\n\n return instrumentAnthropicAiClient(instance , config);\n } ;\n\n // Preserve static and prototype chains\n Object.setPrototypeOf(WrappedAnthropic, Original);\n Object.setPrototypeOf(WrappedAnthropic.prototype, Original.prototype);\n\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (!['length', 'name', 'prototype'].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedAnthropic, key, descriptor);\n }\n }\n }\n\n // Constructor replacement - handle read-only properties\n // The Anthropic property might have only a getter, so use defineProperty\n try {\n exports$1.Anthropic = WrappedAnthropic;\n } catch {\n // If direct assignment fails, override the property descriptor\n Object.defineProperty(exports$1, 'Anthropic', {\n value: WrappedAnthropic,\n writable: true,\n configurable: true,\n enumerable: true,\n });\n }\n\n // Wrap the default export if it points to the original constructor\n // Constructor replacement - handle read-only properties\n // The Anthropic property might have only a getter, so use defineProperty\n if (exports$1.default === Original) {\n try {\n exports$1.default = WrappedAnthropic;\n } catch {\n // If direct assignment fails, override the property descriptor\n Object.defineProperty(exports$1, 'default', {\n value: WrappedAnthropic,\n writable: true,\n configurable: true,\n enumerable: true,\n });\n }\n }\n return exports$1;\n }\n}\n\nexport { SentryAnthropicAiInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", - "import { ANTHROPIC_AI_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryAnthropicAiInstrumentation } from './instrumentation.js';\n\nconst instrumentAnthropicAi = generateInstrumentOnce(\n ANTHROPIC_AI_INTEGRATION_NAME,\n options => new SentryAnthropicAiInstrumentation(options),\n);\n\nconst _anthropicAIIntegration = ((options = {}) => {\n return {\n name: ANTHROPIC_AI_INTEGRATION_NAME,\n options,\n setupOnce() {\n instrumentAnthropicAi(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the Anthropic AI SDK.\n *\n * This integration is enabled by default.\n *\n * When configured, this integration automatically instruments Anthropic AI SDK client instances\n * to capture telemetry data following OpenTelemetry Semantic Conventions for Generative AI.\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n * integrations: [Sentry.anthropicAIIntegration()],\n * });\n * ```\n *\n * ## Options\n *\n * - `recordInputs`: Whether to record prompt messages (default: respects `sendDefaultPii` client option)\n * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)\n *\n * ### Default Behavior\n *\n * By default, the integration will:\n * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options\n * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled\n *\n * @example\n * ```javascript\n * // Record inputs and outputs when sendDefaultPii is false\n * Sentry.init({\n * integrations: [\n * Sentry.anthropicAIIntegration({\n * recordInputs: true,\n * recordOutputs: true\n * })\n * ],\n * });\n *\n * // Never record inputs/outputs regardless of sendDefaultPii\n * Sentry.init({\n * sendDefaultPii: true,\n * integrations: [\n * Sentry.anthropicAIIntegration({\n * recordInputs: false,\n * recordOutputs: false\n * })\n * ],\n * });\n * ```\n *\n */\nconst anthropicAIIntegration = defineIntegration(_anthropicAIIntegration);\n\nexport { anthropicAIIntegration, instrumentAnthropicAi };\n//# sourceMappingURL=index.js.map\n", - "import { InstrumentationBase, InstrumentationNodeModuleDefinition, InstrumentationNodeModuleFile } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, replaceExports, _INTERNAL_shouldSkipAiProviderWrapping, GOOGLE_GENAI_INTEGRATION_NAME, instrumentGoogleGenAIClient } from '@sentry/core';\n\nconst supportedVersions = ['>=0.10.0 <2'];\n\n/**\n * Represents the patched shape of the Google GenAI module export.\n */\n\n/**\n * Sentry Google GenAI instrumentation using OpenTelemetry.\n */\nclass SentryGoogleGenAiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super('@sentry/instrumentation-google-genai', SDK_VERSION, config);\n }\n\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n '@google/genai',\n supportedVersions,\n exports$1 => this._patch(exports$1),\n exports$1 => exports$1,\n // In CJS, @google/genai re-exports from (dist/node/index.cjs) file.\n // Patching only the root module sometimes misses the real implementation or\n // gets overwritten when that file is loaded. We add a file-level patch so that\n // _patch runs again on the concrete implementation\n [\n new InstrumentationNodeModuleFile(\n '@google/genai/dist/node/index.cjs',\n supportedVersions,\n exports$1 => this._patch(exports$1),\n exports$1 => exports$1,\n ),\n ],\n );\n return module;\n }\n\n /**\n * Core patch logic applying instrumentation to the Google GenAI client constructor.\n */\n _patch(exports$1) {\n const Original = exports$1.GoogleGenAI;\n const config = this.getConfig();\n\n if (typeof Original !== 'function') {\n return exports$1;\n }\n\n const WrappedGoogleGenAI = function ( ...args) {\n // Check if wrapping should be skipped (e.g., when LangChain is handling instrumentation)\n if (_INTERNAL_shouldSkipAiProviderWrapping(GOOGLE_GENAI_INTEGRATION_NAME)) {\n return Reflect.construct(Original, args) ;\n }\n\n const instance = Reflect.construct(Original, args);\n\n return instrumentGoogleGenAIClient(instance, config);\n };\n\n // Preserve static and prototype chains\n Object.setPrototypeOf(WrappedGoogleGenAI, Original);\n Object.setPrototypeOf(WrappedGoogleGenAI.prototype, Original.prototype);\n\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (!['length', 'name', 'prototype'].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedGoogleGenAI, key, descriptor);\n }\n }\n }\n\n // Replace google genai exports with the wrapped constructor\n replaceExports(exports$1, 'GoogleGenAI', WrappedGoogleGenAI);\n\n return exports$1;\n }\n}\n\nexport { SentryGoogleGenAiInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", - "import { GOOGLE_GENAI_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryGoogleGenAiInstrumentation } from './instrumentation.js';\n\nconst instrumentGoogleGenAI = generateInstrumentOnce(\n GOOGLE_GENAI_INTEGRATION_NAME,\n options => new SentryGoogleGenAiInstrumentation(options),\n);\n\nconst _googleGenAIIntegration = ((options = {}) => {\n return {\n name: GOOGLE_GENAI_INTEGRATION_NAME,\n setupOnce() {\n instrumentGoogleGenAI(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for the Google Generative AI SDK.\n *\n * This integration is enabled by default.\n *\n * When configured, this integration automatically instruments Google GenAI SDK client instances\n * to capture telemetry data following OpenTelemetry Semantic Conventions for Generative AI.\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n * integrations: [Sentry.googleGenAiIntegration()],\n * });\n * ```\n *\n * ## Options\n *\n * - `recordInputs`: Whether to record prompt messages (default: respects `sendDefaultPii` client option)\n * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)\n *\n * ### Default Behavior\n *\n * By default, the integration will:\n * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options\n * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled\n *\n * @example\n * ```javascript\n * // Record inputs and outputs when sendDefaultPii is false\n * Sentry.init({\n * integrations: [\n * Sentry.googleGenAiIntegration({\n * recordInputs: true,\n * recordOutputs: true\n * })\n * ],\n * });\n *\n * // Never record inputs/outputs regardless of sendDefaultPii\n * Sentry.init({\n * sendDefaultPii: true,\n * integrations: [\n * Sentry.googleGenAiIntegration({\n * recordInputs: false,\n * recordOutputs: false\n * })\n * ],\n * });\n * ```\n *\n */\nconst googleGenAIIntegration = defineIntegration(_googleGenAIIntegration);\n\nexport { googleGenAIIntegration, instrumentGoogleGenAI };\n//# sourceMappingURL=index.js.map\n", - "import { InstrumentationBase, InstrumentationNodeModuleDefinition, InstrumentationNodeModuleFile } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, _INTERNAL_skipAiProviderWrapping, OPENAI_INTEGRATION_NAME, ANTHROPIC_AI_INTEGRATION_NAME, GOOGLE_GENAI_INTEGRATION_NAME, createLangChainCallbackHandler } from '@sentry/core';\n\nconst supportedVersions = ['>=0.1.0 <2.0.0'];\n\n/**\n * Augments a callback handler list with Sentry's handler if not already present\n */\nfunction augmentCallbackHandlers(handlers, sentryHandler) {\n // Handle null/undefined - return array with just our handler\n if (!handlers) {\n return [sentryHandler];\n }\n\n // If handlers is already an array\n if (Array.isArray(handlers)) {\n // Check if our handler is already in the list\n if (handlers.includes(sentryHandler)) {\n return handlers;\n }\n // Add our handler to the list\n return [...handlers, sentryHandler];\n }\n\n // If it's a single handler object, convert to array\n if (typeof handlers === 'object') {\n return [handlers, sentryHandler];\n }\n\n // Unknown type - return original\n return handlers;\n}\n\n/**\n * Wraps Runnable methods (invoke, stream, batch) to inject Sentry callbacks at request time\n * Uses a Proxy to intercept method calls and augment the options.callbacks\n */\nfunction wrapRunnableMethod(\n originalMethod,\n sentryHandler,\n _methodName,\n) {\n return new Proxy(originalMethod, {\n apply(target, thisArg, args) {\n // LangChain Runnable method signatures:\n // invoke(input, options?) - options contains callbacks\n // stream(input, options?) - options contains callbacks\n // batch(inputs, options?) - options contains callbacks\n\n // Options is typically the second argument\n const optionsIndex = 1;\n let options = args[optionsIndex] ;\n\n // If options don't exist or aren't an object, create them\n if (!options || typeof options !== 'object' || Array.isArray(options)) {\n options = {};\n args[optionsIndex] = options;\n }\n\n // Inject our callback handler into options.callbacks (request time callbacks)\n const existingCallbacks = options.callbacks;\n const augmentedCallbacks = augmentCallbackHandlers(existingCallbacks, sentryHandler);\n options.callbacks = augmentedCallbacks;\n\n // Call original method with augmented options\n return Reflect.apply(target, thisArg, args);\n },\n }) ;\n}\n\n/**\n * Sentry LangChain instrumentation using OpenTelemetry.\n */\nclass SentryLangChainInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super('@sentry/instrumentation-langchain', SDK_VERSION, config);\n }\n\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n * We patch the BaseChatModel class methods to inject callbacks\n *\n * We hook into provider packages (@langchain/anthropic, @langchain/openai, etc.)\n * because @langchain/core is often bundled and not loaded as a separate module\n */\n init() {\n const modules = [];\n\n // Hook into common LangChain provider packages\n const providerPackages = [\n '@langchain/anthropic',\n '@langchain/openai',\n '@langchain/google-genai',\n '@langchain/mistralai',\n '@langchain/google-vertexai',\n '@langchain/groq',\n ];\n\n for (const packageName of providerPackages) {\n // In CJS, LangChain packages re-export from dist/index.cjs files.\n // Patching only the root module sometimes misses the real implementation or\n // gets overwritten when that file is loaded. We add a file-level patch so that\n // _patch runs again on the concrete implementation\n modules.push(\n new InstrumentationNodeModuleDefinition(\n packageName,\n supportedVersions,\n this._patch.bind(this),\n exports$1 => exports$1,\n [\n new InstrumentationNodeModuleFile(\n `${packageName}/dist/index.cjs`,\n supportedVersions,\n this._patch.bind(this),\n exports$1 => exports$1,\n ),\n ],\n ),\n );\n }\n\n // Hook into main 'langchain' package to catch initChatModel (v1+)\n modules.push(\n new InstrumentationNodeModuleDefinition(\n 'langchain',\n supportedVersions,\n this._patch.bind(this),\n exports$1 => exports$1,\n [\n // To catch the CJS build that contains ConfigurableModel / initChatModel for v1\n new InstrumentationNodeModuleFile(\n 'langchain/dist/chat_models/universal.cjs',\n supportedVersions,\n this._patch.bind(this),\n exports$1 => exports$1,\n ),\n ],\n ),\n );\n\n return modules;\n }\n\n /**\n * Core patch logic - patches chat model methods to inject Sentry callbacks\n * This is called when a LangChain provider package is loaded\n */\n _patch(exports$1) {\n // Skip AI provider wrapping now that LangChain is actually being used\n // This prevents duplicate spans from Anthropic/OpenAI/GoogleGenAI standalone integrations\n _INTERNAL_skipAiProviderWrapping([\n OPENAI_INTEGRATION_NAME,\n ANTHROPIC_AI_INTEGRATION_NAME,\n GOOGLE_GENAI_INTEGRATION_NAME,\n ]);\n\n // Create a shared handler instance\n const sentryHandler = createLangChainCallbackHandler(this.getConfig());\n\n // Patch Runnable methods to inject callbacks at request time\n // This directly manipulates options.callbacks that LangChain uses\n this._patchRunnableMethods(exports$1, sentryHandler);\n\n return exports$1;\n }\n\n /**\n * Patches chat model methods (invoke, stream, batch) to inject Sentry callbacks\n * Finds a chat model class from the provider package exports and patches its prototype methods\n */\n _patchRunnableMethods(exports$1, sentryHandler) {\n // Known chat model class names for each provider\n const knownChatModelNames = [\n 'ChatAnthropic',\n 'ChatOpenAI',\n 'ChatGoogleGenerativeAI',\n 'ChatMistralAI',\n 'ChatVertexAI',\n 'ChatGroq',\n 'ConfigurableModel',\n ];\n\n const exportsToPatch = (exports$1.universal_exports ?? exports$1) ;\n\n const chatModelClass = Object.values(exportsToPatch).find(exp => {\n return typeof exp === 'function' && knownChatModelNames.includes(exp.name);\n }) ;\n\n if (!chatModelClass) {\n return;\n }\n\n // Patch directly on chatModelClass.prototype\n const targetProto = chatModelClass.prototype ;\n\n // Skip if already patched (both file-level and module-level hooks resolve to the same prototype)\n if (targetProto.__sentry_patched__) {\n return;\n }\n targetProto.__sentry_patched__ = true;\n\n // Patch the methods (invoke, stream, batch)\n // All chat model instances will inherit these patched methods\n const methodsToPatch = ['invoke', 'stream', 'batch'] ;\n\n for (const methodName of methodsToPatch) {\n const method = targetProto[methodName];\n if (typeof method === 'function') {\n targetProto[methodName] = wrapRunnableMethod(\n method ,\n sentryHandler);\n }\n }\n }\n}\n\nexport { SentryLangChainInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", - "import { LANGCHAIN_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryLangChainInstrumentation } from './instrumentation.js';\n\nconst instrumentLangChain = generateInstrumentOnce(\n LANGCHAIN_INTEGRATION_NAME,\n options => new SentryLangChainInstrumentation(options),\n);\n\nconst _langChainIntegration = ((options = {}) => {\n return {\n name: LANGCHAIN_INTEGRATION_NAME,\n setupOnce() {\n instrumentLangChain(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for LangChain.\n *\n * This integration is enabled by default.\n *\n * When configured, this integration automatically instruments LangChain runnable instances\n * to capture telemetry data by injecting Sentry callback handlers into all LangChain calls.\n *\n * **Important:** This integration automatically skips wrapping the OpenAI, Anthropic, and Google GenAI\n * providers to prevent duplicate spans when using LangChain with these AI providers.\n * LangChain handles the instrumentation for all underlying AI providers.\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n * import { ChatOpenAI } from '@langchain/openai';\n *\n * Sentry.init({\n * integrations: [Sentry.langChainIntegration()],\n * sendDefaultPii: true, // Enable to record inputs/outputs\n * });\n *\n * // LangChain calls are automatically instrumented\n * const model = new ChatOpenAI();\n * await model.invoke(\"What is the capital of France?\");\n * ```\n *\n * ## Manual Callback Handler\n *\n * You can also manually add the Sentry callback handler alongside other callbacks:\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n * import { ChatOpenAI } from '@langchain/openai';\n *\n * const sentryHandler = Sentry.createLangChainCallbackHandler({\n * recordInputs: true,\n * recordOutputs: true\n * });\n *\n * const model = new ChatOpenAI();\n * await model.invoke(\n * \"What is the capital of France?\",\n * { callbacks: [sentryHandler, myOtherCallback] }\n * );\n * ```\n *\n * ## Options\n *\n * - `recordInputs`: Whether to record input messages/prompts (default: respects `sendDefaultPii` client option)\n * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)\n *\n * ### Default Behavior\n *\n * By default, the integration will:\n * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options\n * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled\n *\n * @example\n * ```javascript\n * // Record inputs and outputs when sendDefaultPii is false\n * Sentry.init({\n * integrations: [\n * Sentry.langChainIntegration({\n * recordInputs: true,\n * recordOutputs: true\n * })\n * ],\n * });\n *\n * // Never record inputs/outputs regardless of sendDefaultPii\n * Sentry.init({\n * sendDefaultPii: true,\n * integrations: [\n * Sentry.langChainIntegration({\n * recordInputs: false,\n * recordOutputs: false\n * })\n * ],\n * });\n * ```\n *\n * ## Supported Events\n *\n * The integration captures the following LangChain lifecycle events:\n * - LLM/Chat Model: start, end, error\n * - Chain: start, end, error\n * - Tool: start, end, error\n *\n */\nconst langChainIntegration = defineIntegration(_langChainIntegration);\n\nexport { instrumentLangChain, langChainIntegration };\n//# sourceMappingURL=index.js.map\n", - "import { InstrumentationBase, InstrumentationNodeModuleDefinition, InstrumentationNodeModuleFile } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, instrumentLangGraph } from '@sentry/core';\n\nconst supportedVersions = ['>=0.0.0 <2.0.0'];\n\n/**\n * Sentry LangGraph instrumentation using OpenTelemetry.\n */\nclass SentryLangGraphInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super('@sentry/instrumentation-langgraph', SDK_VERSION, config);\n }\n\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n '@langchain/langgraph',\n supportedVersions,\n this._patch.bind(this),\n exports$1 => exports$1,\n [\n new InstrumentationNodeModuleFile(\n /**\n * In CJS, LangGraph packages re-export from dist/index.cjs files.\n * Patching only the root module sometimes misses the real implementation or\n * gets overwritten when that file is loaded. We add a file-level patch so that\n * _patch runs again on the concrete implementation\n */\n '@langchain/langgraph/dist/index.cjs',\n supportedVersions,\n this._patch.bind(this),\n exports$1 => exports$1,\n ),\n ],\n );\n return module;\n }\n\n /**\n * Core patch logic applying instrumentation to the LangGraph module.\n */\n _patch(exports$1) {\n // Patch StateGraph.compile to instrument both compile() and invoke()\n if (exports$1.StateGraph && typeof exports$1.StateGraph === 'function') {\n instrumentLangGraph(\n exports$1.StateGraph.prototype ,\n this.getConfig(),\n );\n }\n\n return exports$1;\n }\n}\n\nexport { SentryLangGraphInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", - "import { LANGGRAPH_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryLangGraphInstrumentation } from './instrumentation.js';\n\nconst instrumentLangGraph = generateInstrumentOnce(\n LANGGRAPH_INTEGRATION_NAME,\n options => new SentryLangGraphInstrumentation(options),\n);\n\nconst _langGraphIntegration = ((options = {}) => {\n return {\n name: LANGGRAPH_INTEGRATION_NAME,\n setupOnce() {\n instrumentLangGraph(options);\n },\n };\n}) ;\n\n/**\n * Adds Sentry tracing instrumentation for LangGraph.\n *\n * This integration is enabled by default.\n *\n * When configured, this integration automatically instruments LangGraph StateGraph and compiled graph instances\n * to capture telemetry data following OpenTelemetry Semantic Conventions for Generative AI.\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n * integrations: [Sentry.langGraphIntegration()],\n * });\n * ```\n *\n * ## Options\n *\n * - `recordInputs`: Whether to record input messages (default: respects `sendDefaultPii` client option)\n * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)\n *\n * ### Default Behavior\n *\n * By default, the integration will:\n * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options\n * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled\n *\n * @example\n * ```javascript\n * // Record inputs and outputs when sendDefaultPii is false\n * Sentry.init({\n * integrations: [\n * Sentry.langGraphIntegration({\n * recordInputs: true,\n * recordOutputs: true\n * })\n * ],\n * });\n *\n * // Never record inputs/outputs regardless of sendDefaultPii\n * Sentry.init({\n * sendDefaultPii: true,\n * integrations: [\n * Sentry.langGraphIntegration({\n * recordInputs: false,\n * recordOutputs: false\n * })\n * ],\n * });\n * ```\n *\n * ## Captured Operations\n *\n * The integration captures the following LangGraph operations:\n * - **Agent Creation** (`StateGraph.compile()`) - Creates a `gen_ai.create_agent` span\n * - **Agent Invocation** (`CompiledGraph.invoke()`) - Creates a `gen_ai.invoke_agent` span\n *\n * ## Captured Data\n *\n * When `recordInputs` and `recordOutputs` are enabled, the integration captures:\n * - Input messages from the graph state\n * - Output messages and LLM responses\n * - Tool calls made during agent execution\n * - Agent and graph names\n * - Available tools configured in the graph\n *\n */\nconst langGraphIntegration = defineIntegration(_langGraphIntegration);\n\nexport { instrumentLangGraph, langGraphIntegration };\n//# sourceMappingURL=index.js.map\n", - "import { InstrumentationBase } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION } from '@sentry/core';\nimport { patchFirestore } from './patches/firestore.js';\nimport { patchFunctions } from './patches/functions.js';\n\nconst DefaultFirebaseInstrumentationConfig = {};\nconst firestoreSupportedVersions = ['>=3.0.0 <5']; // firebase 9+\nconst functionsSupportedVersions = ['>=6.0.0 <7']; // firebase-functions v2\n\n/**\n * Instrumentation for Firebase services, specifically Firestore.\n */\nclass FirebaseInstrumentation extends InstrumentationBase {\n constructor(config = DefaultFirebaseInstrumentationConfig) {\n super('@sentry/instrumentation-firebase', SDK_VERSION, config);\n }\n\n /**\n * sets config\n * @param config\n */\n setConfig(config = {}) {\n super.setConfig({ ...DefaultFirebaseInstrumentationConfig, ...config });\n }\n\n /**\n *\n * @protected\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n init() {\n const modules = [];\n\n modules.push(patchFirestore(this.tracer, firestoreSupportedVersions, this._wrap, this._unwrap, this.getConfig()));\n modules.push(patchFunctions(this.tracer, functionsSupportedVersions, this._wrap, this._unwrap, this.getConfig()));\n\n return modules;\n }\n}\n\nexport { FirebaseInstrumentation };\n//# sourceMappingURL=firebaseInstrumentation.js.map\n", - "import * as net from 'node:net';\nimport { SpanKind, context, trace, diag } from '@opentelemetry/api';\nimport { InstrumentationNodeModuleDefinition, InstrumentationNodeModuleFile, isWrapped, safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\nimport { ATTR_DB_OPERATION_NAME, ATTR_DB_NAMESPACE, ATTR_DB_COLLECTION_NAME, ATTR_DB_SYSTEM_NAME, ATTR_SERVER_ADDRESS, ATTR_SERVER_PORT } from '@opentelemetry/semantic-conventions';\n\n// Inline minimal types used from `shimmer` to avoid importing shimmer's types directly.\n// We only need the shape for `wrap` and `unwrap` used in this file.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n/**\n *\n * @param tracer - Opentelemetry Tracer\n * @param firestoreSupportedVersions - supported version of firebase/firestore\n * @param wrap - reference to native instrumentation wrap function\n * @param unwrap - reference to native instrumentation wrap function\n */\nfunction patchFirestore(\n tracer,\n firestoreSupportedVersions,\n wrap,\n unwrap,\n config,\n) {\n const defaultFirestoreSpanCreationHook = () => {};\n\n let firestoreSpanCreationHook = defaultFirestoreSpanCreationHook;\n const configFirestoreSpanCreationHook = config.firestoreSpanCreationHook;\n\n if (typeof configFirestoreSpanCreationHook === 'function') {\n firestoreSpanCreationHook = (span) => {\n safeExecuteInTheMiddle(\n () => configFirestoreSpanCreationHook(span),\n error => {\n if (!error) {\n return;\n }\n diag.error(error?.message);\n },\n true,\n );\n };\n }\n\n const moduleFirestoreCJS = new InstrumentationNodeModuleDefinition(\n '@firebase/firestore',\n firestoreSupportedVersions,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (moduleExports) => wrapMethods(moduleExports, wrap, unwrap, tracer, firestoreSpanCreationHook),\n );\n const files = [\n '@firebase/firestore/dist/lite/index.node.cjs.js',\n '@firebase/firestore/dist/lite/index.node.mjs.js',\n '@firebase/firestore/dist/lite/index.rn.esm2017.js',\n '@firebase/firestore/dist/lite/index.cjs.js',\n ];\n\n for (const file of files) {\n moduleFirestoreCJS.files.push(\n new InstrumentationNodeModuleFile(\n file,\n firestoreSupportedVersions,\n moduleExports => wrapMethods(moduleExports, wrap, unwrap, tracer, firestoreSpanCreationHook),\n moduleExports => unwrapMethods(moduleExports, unwrap),\n ),\n );\n }\n\n return moduleFirestoreCJS;\n}\n\nfunction wrapMethods(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n moduleExports,\n wrap,\n unwrap,\n tracer,\n firestoreSpanCreationHook,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n unwrapMethods(moduleExports, unwrap);\n\n wrap(moduleExports, 'addDoc', patchAddDoc(tracer, firestoreSpanCreationHook));\n wrap(moduleExports, 'getDocs', patchGetDocs(tracer, firestoreSpanCreationHook));\n wrap(moduleExports, 'setDoc', patchSetDoc(tracer, firestoreSpanCreationHook));\n wrap(moduleExports, 'deleteDoc', patchDeleteDoc(tracer, firestoreSpanCreationHook));\n\n return moduleExports;\n}\n\nfunction unwrapMethods(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n moduleExports,\n unwrap,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n for (const method of ['addDoc', 'getDocs', 'setDoc', 'deleteDoc']) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isWrapped(moduleExports[method])) {\n unwrap(moduleExports, method);\n }\n }\n return moduleExports;\n}\n\nfunction patchAddDoc(\n tracer,\n firestoreSpanCreationHook,\n)\n\n {\n return function addDoc(original) {\n return function (\n reference,\n data,\n ) {\n const span = startDBSpan(tracer, 'addDoc', reference);\n firestoreSpanCreationHook(span);\n return executeContextWithSpan(span, () => {\n return original(reference, data);\n });\n };\n };\n}\n\nfunction patchDeleteDoc(\n tracer,\n firestoreSpanCreationHook,\n)\n\n {\n return function deleteDoc(original) {\n return function (reference) {\n const span = startDBSpan(tracer, 'deleteDoc', reference.parent || reference);\n firestoreSpanCreationHook(span);\n return executeContextWithSpan(span, () => {\n return original(reference);\n });\n };\n };\n}\n\nfunction patchGetDocs(\n tracer,\n firestoreSpanCreationHook,\n)\n\n {\n return function getDocs(original) {\n return function (\n reference,\n ) {\n const span = startDBSpan(tracer, 'getDocs', reference);\n firestoreSpanCreationHook(span);\n return executeContextWithSpan(span, () => {\n return original(reference);\n });\n };\n };\n}\n\nfunction patchSetDoc(\n tracer,\n firestoreSpanCreationHook,\n)\n\n {\n return function setDoc(original) {\n return function (\n reference,\n data,\n options,\n ) {\n const span = startDBSpan(tracer, 'setDoc', reference.parent || reference);\n firestoreSpanCreationHook(span);\n\n return executeContextWithSpan(span, () => {\n return typeof options !== 'undefined' ? original(reference, data, options) : original(reference, data);\n });\n };\n };\n}\n\nfunction executeContextWithSpan(span, callback) {\n return context.with(trace.setSpan(context.active(), span), () => {\n return safeExecuteInTheMiddle(\n () => {\n return callback();\n },\n err => {\n if (err) {\n span.recordException(err);\n }\n span.end();\n },\n true,\n );\n });\n}\n\nfunction startDBSpan(\n tracer,\n spanName,\n reference,\n) {\n const span = tracer.startSpan(`${spanName} ${reference.path}`, { kind: SpanKind.CLIENT });\n addAttributes(span, reference);\n span.setAttribute(ATTR_DB_OPERATION_NAME, spanName);\n return span;\n}\n\n/**\n * Gets the server address and port attributes from the Firestore settings.\n * It's best effort to extract the address and port from the settings, especially for IPv6.\n * @param span - The span to set attributes on.\n * @param settings - The Firestore settings containing host information.\n */\nfunction getPortAndAddress(settings)\n\n {\n let address;\n let port;\n\n if (typeof settings.host === 'string') {\n if (settings.host.startsWith('[')) {\n // IPv6 addresses can be enclosed in square brackets, e.g., [2001:db8::1]:8080\n if (settings.host.endsWith(']')) {\n // IPv6 with square brackets without port\n address = settings.host.replace(/^\\[|\\]$/g, '');\n } else if (settings.host.includes(']:')) {\n // IPv6 with square brackets with port\n const lastColonIndex = settings.host.lastIndexOf(':');\n if (lastColonIndex !== -1) {\n address = settings.host.slice(1, lastColonIndex).replace(/^\\[|\\]$/g, '');\n port = settings.host.slice(lastColonIndex + 1);\n }\n }\n } else {\n // IPv4 or IPv6 without square brackets\n // If it's an IPv6 address without square brackets, we assume it does not have a port.\n if (net.isIPv6(settings.host)) {\n address = settings.host;\n }\n // If it's an IPv4 address, we can extract the port if it exists.\n else {\n const lastColonIndex = settings.host.lastIndexOf(':');\n if (lastColonIndex !== -1) {\n address = settings.host.slice(0, lastColonIndex);\n port = settings.host.slice(lastColonIndex + 1);\n } else {\n address = settings.host;\n }\n }\n }\n }\n return {\n address: address,\n port: port ? parseInt(port, 10) : undefined,\n };\n}\n\nfunction addAttributes(\n span,\n reference,\n) {\n const firestoreApp = reference.firestore.app;\n const firestoreOptions = firestoreApp.options;\n const json = reference.firestore.toJSON() || {};\n const settings = json.settings || {};\n\n const attributes = {\n [ATTR_DB_COLLECTION_NAME]: reference.path,\n [ATTR_DB_NAMESPACE]: firestoreApp.name,\n [ATTR_DB_SYSTEM_NAME]: 'firebase.firestore',\n 'firebase.firestore.type': reference.type,\n 'firebase.firestore.options.projectId': firestoreOptions.projectId,\n 'firebase.firestore.options.appId': firestoreOptions.appId,\n 'firebase.firestore.options.messagingSenderId': firestoreOptions.messagingSenderId,\n 'firebase.firestore.options.storageBucket': firestoreOptions.storageBucket,\n };\n\n const { address, port } = getPortAndAddress(settings);\n\n if (address) {\n attributes[ATTR_SERVER_ADDRESS] = address;\n }\n if (port) {\n attributes[ATTR_SERVER_PORT] = port;\n }\n\n span.setAttributes(attributes);\n}\n\nexport { getPortAndAddress, patchFirestore };\n//# sourceMappingURL=firestore.js.map\n", - "import { SpanKind, context, trace, diag } from '@opentelemetry/api';\nimport { InstrumentationNodeModuleDefinition, InstrumentationNodeModuleFile, isWrapped, safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\n\n/**\n * Patches Firebase Functions v2 to add OpenTelemetry instrumentation\n * @param tracer - Opentelemetry Tracer\n * @param functionsSupportedVersions - supported versions of firebase-functions\n * @param wrap - reference to native instrumentation wrap function\n * @param unwrap - reference to native instrumentation unwrap function\n * @param config - Firebase instrumentation config\n */\nfunction patchFunctions(\n tracer,\n functionsSupportedVersions,\n wrap,\n unwrap,\n config,\n) {\n let requestHook = () => {};\n let responseHook = () => {};\n const errorHook = config.functions?.errorHook;\n const configRequestHook = config.functions?.requestHook;\n const configResponseHook = config.functions?.responseHook;\n\n if (typeof configResponseHook === 'function') {\n responseHook = (span, err) => {\n safeExecuteInTheMiddle(\n () => configResponseHook(span, err),\n error => {\n if (!error) {\n return;\n }\n diag.error(error?.message);\n },\n true,\n );\n };\n }\n if (typeof configRequestHook === 'function') {\n requestHook = (span) => {\n safeExecuteInTheMiddle(\n () => configRequestHook(span),\n error => {\n if (!error) {\n return;\n }\n diag.error(error?.message);\n },\n true,\n );\n };\n }\n\n const moduleFunctionsCJS = new InstrumentationNodeModuleDefinition('firebase-functions', functionsSupportedVersions);\n const modulesToInstrument = [\n { name: 'firebase-functions/lib/v2/providers/https.js', triggerType: 'function' },\n { name: 'firebase-functions/lib/v2/providers/firestore.js', triggerType: 'firestore' },\n { name: 'firebase-functions/lib/v2/providers/scheduler.js', triggerType: 'scheduler' },\n { name: 'firebase-functions/lib/v2/storage.js', triggerType: 'storage' },\n ] ;\n\n modulesToInstrument.forEach(({ name, triggerType }) => {\n moduleFunctionsCJS.files.push(\n new InstrumentationNodeModuleFile(\n name,\n functionsSupportedVersions,\n moduleExports =>\n wrapCommonFunctions(\n moduleExports,\n wrap,\n unwrap,\n tracer,\n { requestHook, responseHook, errorHook },\n triggerType,\n ),\n moduleExports => unwrapCommonFunctions(moduleExports, unwrap),\n ),\n );\n });\n\n return moduleFunctionsCJS;\n}\n\n/**\n * Patches Cloud Functions for Firebase (v2) to add OpenTelemetry instrumentation\n *\n * @param tracer - Opentelemetry Tracer\n * @param functionsConfig - Firebase instrumentation config\n * @param triggerType - Type of trigger\n * @returns A function that patches the function\n */\nfunction patchV2Functions(\n tracer,\n functionsConfig,\n triggerType,\n) {\n return function v2FunctionsWrapper(original) {\n return function ( ...args) {\n const handler = typeof args[0] === 'function' ? args[0] : args[1];\n const documentOrOptions = typeof args[0] === 'function' ? undefined : args[0];\n\n if (!handler) {\n return original.call(this, ...args);\n }\n\n const wrappedHandler = async function ( ...handlerArgs) {\n const functionName = process.env.FUNCTION_TARGET || process.env.K_SERVICE || 'unknown';\n const span = tracer.startSpan(`firebase.function.${triggerType}`, {\n kind: SpanKind.SERVER,\n });\n\n const attributes = {\n 'faas.name': functionName,\n 'faas.trigger': triggerType,\n 'faas.provider': 'firebase',\n };\n\n if (process.env.GCLOUD_PROJECT) {\n attributes['cloud.project_id'] = process.env.GCLOUD_PROJECT;\n }\n\n if (process.env.EVENTARC_CLOUD_EVENT_SOURCE) {\n attributes['cloud.event_source'] = process.env.EVENTARC_CLOUD_EVENT_SOURCE;\n }\n\n span.setAttributes(attributes);\n functionsConfig?.requestHook?.(span);\n\n // Can be changed to safeExecuteInTheMiddleAsync once following is merged and released\n // https://github.com/open-telemetry/opentelemetry-js/pull/6032\n return context.with(trace.setSpan(context.active(), span), async () => {\n let error;\n let result;\n\n try {\n result = await handler.apply(this, handlerArgs);\n } catch (e) {\n error = e ;\n }\n\n functionsConfig?.responseHook?.(span, error);\n\n if (error) {\n span.recordException(error);\n }\n\n span.end();\n\n if (error) {\n await functionsConfig?.errorHook?.(span, error);\n throw error;\n }\n\n return result;\n });\n };\n\n if (documentOrOptions) {\n return original.call(this, documentOrOptions, wrappedHandler);\n } else {\n return original.call(this, wrappedHandler);\n }\n };\n };\n}\n\nfunction wrapCommonFunctions(\n moduleExports,\n wrap,\n unwrap,\n tracer,\n functionsConfig,\n triggerType,\n) {\n unwrapCommonFunctions(moduleExports, unwrap);\n\n switch (triggerType) {\n case 'function':\n wrap(moduleExports, 'onRequest', patchV2Functions(tracer, functionsConfig, 'http.request'));\n wrap(moduleExports, 'onCall', patchV2Functions(tracer, functionsConfig, 'http.call'));\n break;\n\n case 'firestore':\n wrap(moduleExports, 'onDocumentCreated', patchV2Functions(tracer, functionsConfig, 'firestore.document.created'));\n wrap(moduleExports, 'onDocumentUpdated', patchV2Functions(tracer, functionsConfig, 'firestore.document.updated'));\n wrap(moduleExports, 'onDocumentDeleted', patchV2Functions(tracer, functionsConfig, 'firestore.document.deleted'));\n wrap(moduleExports, 'onDocumentWritten', patchV2Functions(tracer, functionsConfig, 'firestore.document.written'));\n wrap(\n moduleExports,\n 'onDocumentCreatedWithAuthContext',\n patchV2Functions(tracer, functionsConfig, 'firestore.document.created'),\n );\n wrap(\n moduleExports,\n 'onDocumentUpdatedWithAuthContext',\n patchV2Functions(tracer, functionsConfig, 'firestore.document.updated'),\n );\n\n wrap(\n moduleExports,\n 'onDocumentDeletedWithAuthContext',\n patchV2Functions(tracer, functionsConfig, 'firestore.document.deleted'),\n );\n\n wrap(\n moduleExports,\n 'onDocumentWrittenWithAuthContext',\n patchV2Functions(tracer, functionsConfig, 'firestore.document.written'),\n );\n break;\n\n case 'scheduler':\n wrap(moduleExports, 'onSchedule', patchV2Functions(tracer, functionsConfig, 'scheduler.scheduled'));\n break;\n\n case 'storage':\n wrap(moduleExports, 'onObjectFinalized', patchV2Functions(tracer, functionsConfig, 'storage.object.finalized'));\n wrap(moduleExports, 'onObjectArchived', patchV2Functions(tracer, functionsConfig, 'storage.object.archived'));\n wrap(moduleExports, 'onObjectDeleted', patchV2Functions(tracer, functionsConfig, 'storage.object.deleted'));\n wrap(\n moduleExports,\n 'onObjectMetadataUpdated',\n patchV2Functions(tracer, functionsConfig, 'storage.object.metadataUpdated'),\n );\n break;\n }\n\n return moduleExports;\n}\n\nfunction unwrapCommonFunctions(\n moduleExports,\n unwrap,\n) {\n const methods = [\n 'onSchedule',\n 'onRequest',\n 'onCall',\n 'onObjectFinalized',\n 'onObjectArchived',\n 'onObjectDeleted',\n 'onObjectMetadataUpdated',\n 'onDocumentCreated',\n 'onDocumentUpdated',\n 'onDocumentDeleted',\n 'onDocumentWritten',\n 'onDocumentCreatedWithAuthContext',\n 'onDocumentUpdatedWithAuthContext',\n 'onDocumentDeletedWithAuthContext',\n 'onDocumentWrittenWithAuthContext',\n ];\n\n for (const method of methods) {\n if (isWrapped(moduleExports[method])) {\n unwrap(moduleExports, method);\n }\n }\n return moduleExports;\n}\n\nexport { patchFunctions, patchV2Functions };\n//# sourceMappingURL=functions.js.map\n", - "import { defineIntegration, captureException, flush, SEMANTIC_ATTRIBUTE_SENTRY_OP } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\nimport { FirebaseInstrumentation } from './otel/firebaseInstrumentation.js';\n\nconst INTEGRATION_NAME = 'Firebase';\n\nconst config = {\n firestoreSpanCreationHook: span => {\n addOriginToSpan(span, 'auto.firebase.otel.firestore');\n\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'db.query');\n },\n functions: {\n requestHook: span => {\n addOriginToSpan(span, 'auto.firebase.otel.functions');\n\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'http.request');\n },\n errorHook: async (_, error) => {\n if (error) {\n captureException(error, {\n mechanism: {\n type: 'auto.firebase.otel.functions',\n handled: false,\n },\n });\n await flush(2000);\n }\n },\n },\n};\n\nconst instrumentFirebase = generateInstrumentOnce(INTEGRATION_NAME, () => new FirebaseInstrumentation(config));\n\nconst _firebaseIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentFirebase();\n },\n };\n}) ;\n\nconst firebaseIntegration = defineIntegration(_firebaseIntegration);\n\nexport { firebaseIntegration, instrumentFirebase };\n//# sourceMappingURL=firebase.js.map\n", - "import { instrumentSentryHttp, instrumentOtelHttp } from '../http.js';\nimport { instrumentAmqplib, amqplibIntegration } from './amqplib.js';\nimport { instrumentAnthropicAi, anthropicAIIntegration } from './anthropic-ai/index.js';\nimport { instrumentConnect, connectIntegration } from './connect.js';\nimport { instrumentExpress, expressIntegration } from './express.js';\nimport { instrumentFastify, instrumentFastifyV3, fastifyIntegration } from './fastify/index.js';\nimport { instrumentFirebase, firebaseIntegration } from './firebase/firebase.js';\nimport { instrumentGenericPool, genericPoolIntegration } from './genericPool.js';\nimport { instrumentGoogleGenAI, googleGenAIIntegration } from './google-genai/index.js';\nimport { instrumentGraphql, graphqlIntegration } from './graphql.js';\nimport { instrumentHapi, hapiIntegration } from './hapi/index.js';\nimport { instrumentHono, honoIntegration } from './hono/index.js';\nimport { instrumentKafka, kafkaIntegration } from './kafka.js';\nimport { instrumentKoa, koaIntegration } from './koa.js';\nimport { instrumentLangChain, langChainIntegration } from './langchain/index.js';\nimport { instrumentLangGraph, langGraphIntegration } from './langgraph/index.js';\nimport { instrumentLruMemoizer, lruMemoizerIntegration } from './lrumemoizer.js';\nimport { instrumentMongo, mongoIntegration } from './mongo.js';\nimport { instrumentMongoose, mongooseIntegration } from './mongoose.js';\nimport { instrumentMysql, mysqlIntegration } from './mysql.js';\nimport { instrumentMysql2, mysql2Integration } from './mysql2.js';\nimport { instrumentOpenAi, openAIIntegration } from './openai/index.js';\nimport { instrumentPostgres, postgresIntegration } from './postgres.js';\nimport { instrumentPostgresJs, postgresJsIntegration } from './postgresjs.js';\nimport { prismaIntegration } from './prisma.js';\nimport { instrumentRedis, redisIntegration } from './redis.js';\nimport { instrumentTedious, tediousIntegration } from './tedious.js';\nimport { instrumentVercelAi, vercelAIIntegration } from './vercelai/index.js';\n\n/**\n * With OTEL, all performance integrations will be added, as OTEL only initializes them when the patched package is actually required.\n */\nfunction getAutoPerformanceIntegrations() {\n return [\n expressIntegration(),\n fastifyIntegration(),\n graphqlIntegration(),\n honoIntegration(),\n mongoIntegration(),\n mongooseIntegration(),\n mysqlIntegration(),\n mysql2Integration(),\n redisIntegration(),\n postgresIntegration(),\n prismaIntegration(),\n hapiIntegration(),\n koaIntegration(),\n connectIntegration(),\n tediousIntegration(),\n genericPoolIntegration(),\n kafkaIntegration(),\n amqplibIntegration(),\n lruMemoizerIntegration(),\n // AI providers\n // LangChain must come first to disable AI provider integrations before they instrument\n langChainIntegration(),\n langGraphIntegration(),\n vercelAIIntegration(),\n openAIIntegration(),\n anthropicAIIntegration(),\n googleGenAIIntegration(),\n postgresJsIntegration(),\n firebaseIntegration(),\n ];\n}\n\n/**\n * Get a list of methods to instrument OTEL, when preload instrumentation.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getOpenTelemetryInstrumentationToPreload() {\n return [\n instrumentSentryHttp,\n instrumentOtelHttp,\n instrumentExpress,\n instrumentConnect,\n instrumentFastify,\n instrumentFastifyV3,\n instrumentHapi,\n instrumentHono,\n instrumentKafka,\n instrumentKoa,\n instrumentLruMemoizer,\n instrumentMongo,\n instrumentMongoose,\n instrumentMysql,\n instrumentMysql2,\n instrumentPostgres,\n instrumentHapi,\n instrumentGraphql,\n instrumentRedis,\n instrumentTedious,\n instrumentGenericPool,\n instrumentAmqplib,\n instrumentLangChain,\n instrumentVercelAi,\n instrumentOpenAi,\n instrumentPostgresJs,\n instrumentFirebase,\n instrumentAnthropicAi,\n instrumentGoogleGenAI,\n instrumentLangGraph,\n ];\n}\n\nexport { getAutoPerformanceIntegrations, getOpenTelemetryInstrumentationToPreload };\n//# sourceMappingURL=index.js.map\n", - "import { trace, propagation, context } from '@opentelemetry/api';\nimport { defaultResource, resourceFromAttributes } from '@opentelemetry/resources';\nimport { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';\nimport { ATTR_SERVICE_VERSION, SEMRESATTRS_SERVICE_NAMESPACE, ATTR_SERVICE_NAME } from '@opentelemetry/semantic-conventions';\nimport { SDK_VERSION, debug } from '@sentry/core';\nimport { setupOpenTelemetryLogger, SentryContextManager, initializeEsmLoader } from '@sentry/node-core';\nimport { SentrySpanProcessor, SentrySampler, SentryPropagator } from '@sentry/opentelemetry';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { getOpenTelemetryInstrumentationToPreload } from '../integrations/tracing/index.js';\n\n// About 277h - this must fit into new Array(len)!\nconst MAX_MAX_SPAN_WAIT_DURATION = 1000000;\n\n/**\n * Initialize OpenTelemetry for Node.\n */\nfunction initOpenTelemetry(client, options = {}) {\n if (client.getOptions().debug) {\n setupOpenTelemetryLogger();\n }\n\n const [provider, asyncLocalStorageLookup] = setupOtel(client, options);\n client.traceProvider = provider;\n client.asyncLocalStorageLookup = asyncLocalStorageLookup;\n}\n\n/**\n * Preload OpenTelemetry for Node.\n * This can be used to preload instrumentation early, but set up Sentry later.\n * By preloading the OTEL instrumentation wrapping still happens early enough that everything works.\n */\nfunction preloadOpenTelemetry(options = {}) {\n const { debug: debug$1 } = options;\n\n if (debug$1) {\n debug.enable();\n }\n\n initializeEsmLoader();\n\n // These are all integrations that we need to pre-load to ensure they are set up before any other code runs\n getPreloadMethods(options.integrations).forEach(fn => {\n fn();\n\n if (debug$1) {\n debug.log(`[Sentry] Preloaded ${fn.id} instrumentation`);\n }\n });\n}\n\nfunction getPreloadMethods(integrationNames) {\n const instruments = getOpenTelemetryInstrumentationToPreload();\n\n if (!integrationNames) {\n return instruments;\n }\n\n // We match exact matches of instrumentation, but also match prefixes, e.g. \"Fastify.v5\" will match \"Fastify\"\n return instruments.filter(instrumentation => {\n const id = instrumentation.id;\n return integrationNames.some(integrationName => id === integrationName || id.startsWith(`${integrationName}.`));\n });\n}\n\n/** Just exported for tests. */\nfunction setupOtel(\n client,\n options = {},\n) {\n // Create and configure NodeTracerProvider\n const provider = new BasicTracerProvider({\n sampler: new SentrySampler(client),\n resource: defaultResource().merge(\n resourceFromAttributes({\n [ATTR_SERVICE_NAME]: 'node',\n // eslint-disable-next-line deprecation/deprecation\n [SEMRESATTRS_SERVICE_NAMESPACE]: 'sentry',\n [ATTR_SERVICE_VERSION]: SDK_VERSION,\n }),\n ),\n forceFlushTimeoutMillis: 500,\n spanProcessors: [\n new SentrySpanProcessor({\n timeout: _clampSpanProcessorTimeout(client.getOptions().maxSpanWaitDuration),\n }),\n ...(options.spanProcessors || []),\n ],\n });\n\n // Register as globals\n trace.setGlobalTracerProvider(provider);\n propagation.setGlobalPropagator(new SentryPropagator());\n\n const ctxManager = new SentryContextManager();\n context.setGlobalContextManager(ctxManager);\n\n return [provider, ctxManager.getAsyncLocalStorageLookup()];\n}\n\n/** Just exported for tests. */\nfunction _clampSpanProcessorTimeout(maxSpanWaitDuration) {\n if (maxSpanWaitDuration == null) {\n return undefined;\n }\n\n // We guard for a max. value here, because we create an array with this length\n // So if this value is too large, this would fail\n if (maxSpanWaitDuration > MAX_MAX_SPAN_WAIT_DURATION) {\n DEBUG_BUILD &&\n debug.warn(`\\`maxSpanWaitDuration\\` is too high, using the maximum value of ${MAX_MAX_SPAN_WAIT_DURATION}`);\n return MAX_MAX_SPAN_WAIT_DURATION;\n } else if (maxSpanWaitDuration <= 0 || Number.isNaN(maxSpanWaitDuration)) {\n DEBUG_BUILD && debug.warn('`maxSpanWaitDuration` must be a positive number, using default value instead.');\n return undefined;\n }\n\n return maxSpanWaitDuration;\n}\n\nexport { _clampSpanProcessorTimeout, initOpenTelemetry, preloadOpenTelemetry, setupOtel };\n//# sourceMappingURL=initOtel.js.map\n", - "import { applySdkMetadata, hasSpansEnabled } from '@sentry/core';\nimport { init as init$1, validateOpenTelemetrySetup, getDefaultIntegrations as getDefaultIntegrations$1 } from '@sentry/node-core';\nimport { httpIntegration } from '../integrations/http.js';\nimport { nativeNodeFetchIntegration } from '../integrations/node-fetch.js';\nimport { getAutoPerformanceIntegrations } from '../integrations/tracing/index.js';\nimport { initOpenTelemetry } from './initOtel.js';\n\n/**\n * Get default integrations, excluding performance.\n */\nfunction getDefaultIntegrationsWithoutPerformance() {\n const nodeCoreIntegrations = getDefaultIntegrations$1();\n\n // Filter out the node-core HTTP and NodeFetch integrations and replace them with Node SDK's composite versions\n return nodeCoreIntegrations\n .filter(integration => integration.name !== 'Http' && integration.name !== 'NodeFetch')\n .concat(httpIntegration(), nativeNodeFetchIntegration());\n}\n\n/** Get the default integrations for the Node SDK. */\nfunction getDefaultIntegrations(options) {\n return [\n ...getDefaultIntegrationsWithoutPerformance(),\n // We only add performance integrations if tracing is enabled\n // Note that this means that without tracing enabled, e.g. `expressIntegration()` will not be added\n // This means that generally request isolation will work (because that is done by httpIntegration)\n // But `transactionName` will not be set automatically\n ...(hasSpansEnabled(options) ? getAutoPerformanceIntegrations() : []),\n ];\n}\n\n/**\n * Initialize Sentry for Node.\n */\nfunction init(options = {}) {\n return _init(options, getDefaultIntegrations);\n}\n\n/**\n * Internal initialization function.\n */\nfunction _init(\n options = {},\n getDefaultIntegrationsImpl,\n) {\n applySdkMetadata(options, 'node');\n\n const client = init$1({\n ...options,\n // Only use Node SDK defaults if none provided\n defaultIntegrations: options.defaultIntegrations ?? getDefaultIntegrationsImpl(options),\n });\n\n // Add Node SDK specific OpenTelemetry setup\n if (client && !options.skipOpenTelemetrySetup) {\n initOpenTelemetry(client, {\n spanProcessors: options.openTelemetrySpanProcessors,\n });\n validateOpenTelemetrySetup();\n }\n\n return client;\n}\n\n/**\n * Initialize Sentry for Node, without any integrations added by default.\n */\nfunction initWithoutDefaultIntegrations(options = {}) {\n return _init(options, () => []);\n}\n\nexport { getDefaultIntegrations, getDefaultIntegrationsWithoutPerformance, init, initWithoutDefaultIntegrations };\n//# sourceMappingURL=index.js.map\n", + "import { readFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { GLOBAL_OBJ } from '@sentry/core';\nimport '../nodeVersion.js';\n\nlet moduleCache;\nconst INTEGRATION_NAME = \"Modules\";\nfunction getServerModules() {\n if (typeof __SENTRY_SERVER_MODULES__ !== \"undefined\") {\n return __SENTRY_SERVER_MODULES__;\n }\n return GLOBAL_OBJ.__SENTRY_SERVER_MODULES__ ?? {};\n}\nconst _modulesIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n event.modules = {\n ...event.modules,\n ..._getModules()\n };\n return event;\n },\n getModules: _getModules\n };\n});\nconst modulesIntegration = _modulesIntegration;\nfunction collectModules() {\n return {\n ...getServerModules(),\n ...getModulesFromPackageJson(),\n ...{}\n };\n}\nfunction _getModules() {\n if (!moduleCache) {\n moduleCache = collectModules();\n }\n return moduleCache;\n}\nfunction getPackageJson() {\n try {\n const filePath = join(process.cwd(), \"package.json\");\n const packageJson = JSON.parse(readFileSync(filePath, \"utf8\"));\n return packageJson;\n } catch {\n return {};\n }\n}\nfunction getModulesFromPackageJson() {\n const packageJson = getPackageJson();\n return {\n ...packageJson.dependencies,\n ...packageJson.devDependencies\n };\n}\n\nexport { modulesIntegration };\n//# sourceMappingURL=modules.js.map\n", + "import { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '../../otel/instrument.js';\nimport { SentryNodeFetchInstrumentation } from './SentryNodeFetchInstrumentation.js';\n\nconst INTEGRATION_NAME = \"NodeFetch\";\nconst instrumentSentryNodeFetch = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n SentryNodeFetchInstrumentation,\n (options) => {\n return options;\n }\n);\nconst _nativeNodeFetchIntegration = ((options = {}) => {\n return {\n name: \"NodeFetch\",\n setupOnce() {\n instrumentSentryNodeFetch(options);\n }\n };\n});\nconst nativeNodeFetchIntegration = defineIntegration(_nativeNodeFetchIntegration);\n\nexport { nativeNodeFetchIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { defineIntegration, getClient, captureException, debug } from '@sentry/core';\nimport { isMainThread } from 'worker_threads';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { logAndExitProcess } from '../utils/errorhandling.js';\n\nconst INTEGRATION_NAME = \"OnUncaughtException\";\nconst onUncaughtExceptionIntegration = defineIntegration((options = {}) => {\n const optionsWithDefaults = {\n exitEvenIfOtherHandlersAreRegistered: false,\n ...options\n };\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n if (!isMainThread) {\n return;\n }\n global.process.on(\"uncaughtException\", makeErrorHandler(client, optionsWithDefaults));\n }\n };\n});\nfunction makeErrorHandler(client, options) {\n const timeout = 2e3;\n let caughtFirstError = false;\n let caughtSecondError = false;\n let calledFatalError = false;\n let firstError;\n const clientOptions = client.getOptions();\n return Object.assign(\n (error) => {\n let onFatalError = logAndExitProcess;\n if (options.onFatalError) {\n onFatalError = options.onFatalError;\n } else if (clientOptions.onFatalError) {\n onFatalError = clientOptions.onFatalError;\n }\n const userProvidedListenersCount = global.process.listeners(\"uncaughtException\").filter((listener) => {\n return (\n // as soon as we're using domains this listener is attached by node itself\n listener.name !== \"domainUncaughtExceptionClear\" && // the handler we register in this integration\n listener._errorHandler !== true\n );\n }).length;\n const processWouldExit = userProvidedListenersCount === 0;\n const shouldApplyFatalHandlingLogic = options.exitEvenIfOtherHandlersAreRegistered || processWouldExit;\n if (!caughtFirstError) {\n firstError = error;\n caughtFirstError = true;\n if (getClient() === client) {\n captureException(error, {\n originalException: error,\n captureContext: {\n level: \"fatal\"\n },\n mechanism: {\n handled: false,\n type: \"auto.node.onuncaughtexception\"\n }\n });\n }\n if (!calledFatalError && shouldApplyFatalHandlingLogic) {\n calledFatalError = true;\n onFatalError(error);\n }\n } else {\n if (shouldApplyFatalHandlingLogic) {\n if (calledFatalError) {\n DEBUG_BUILD && debug.warn(\n \"uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown\"\n );\n logAndExitProcess(error);\n } else if (!caughtSecondError) {\n caughtSecondError = true;\n setTimeout(() => {\n if (!calledFatalError) {\n calledFatalError = true;\n onFatalError(firstError, error);\n }\n }, timeout);\n }\n }\n }\n },\n { _errorHandler: true }\n );\n}\n\nexport { makeErrorHandler, onUncaughtExceptionIntegration };\n//# sourceMappingURL=onuncaughtexception.js.map\n", + "import { consoleSandbox, getClient, debug } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst DEFAULT_SHUTDOWN_TIMEOUT = 2e3;\nfunction logAndExitProcess(error) {\n consoleSandbox(() => {\n console.error(error);\n });\n const client = getClient();\n if (client === void 0) {\n DEBUG_BUILD && debug.warn(\"No NodeClient was defined, we are exiting the process now.\");\n global.process.exit(1);\n return;\n }\n const options = client.getOptions();\n const timeout = options?.shutdownTimeout && options.shutdownTimeout > 0 ? options.shutdownTimeout : DEFAULT_SHUTDOWN_TIMEOUT;\n client.close(timeout).then(\n (result) => {\n if (!result) {\n DEBUG_BUILD && debug.warn(\"We reached the timeout for emptying the request buffer, still exiting now!\");\n }\n global.process.exit(1);\n },\n (error2) => {\n DEBUG_BUILD && debug.error(error2);\n }\n );\n}\n\nexport { logAndExitProcess };\n//# sourceMappingURL=errorhandling.js.map\n", + "import { defineIntegration, getClient, withActiveSpan, consoleSandbox, captureException, isMatchingPattern } from '@sentry/core';\nimport { logAndExitProcess } from '../utils/errorhandling.js';\n\nconst INTEGRATION_NAME = \"OnUnhandledRejection\";\nconst DEFAULT_IGNORES = [\n {\n name: \"AI_NoOutputGeneratedError\"\n // When stream aborts in Vercel AI SDK V5, Vercel flush() fails with an error\n },\n {\n name: \"AbortError\"\n // When stream aborts in Vercel AI SDK V6\n }\n];\nconst _onUnhandledRejectionIntegration = ((options = {}) => {\n const opts = {\n mode: options.mode ?? \"warn\",\n ignore: [...DEFAULT_IGNORES, ...options.ignore ?? []]\n };\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n global.process.on(\"unhandledRejection\", makeUnhandledPromiseHandler(client, opts));\n }\n };\n});\nconst onUnhandledRejectionIntegration = defineIntegration(_onUnhandledRejectionIntegration);\nfunction extractErrorInfo(reason) {\n if (typeof reason !== \"object\" || reason === null) {\n return { name: \"\", message: String(reason ?? \"\") };\n }\n const errorLike = reason;\n const name = typeof errorLike.name === \"string\" ? errorLike.name : \"\";\n const message = typeof errorLike.message === \"string\" ? errorLike.message : String(reason);\n return { name, message };\n}\nfunction isMatchingReason(matcher, errorInfo) {\n const nameMatches = matcher.name === void 0 || isMatchingPattern(errorInfo.name, matcher.name, true);\n const messageMatches = matcher.message === void 0 || isMatchingPattern(errorInfo.message, matcher.message);\n return nameMatches && messageMatches;\n}\nfunction matchesIgnore(list, reason) {\n const errorInfo = extractErrorInfo(reason);\n return list.some((matcher) => isMatchingReason(matcher, errorInfo));\n}\nfunction makeUnhandledPromiseHandler(client, options) {\n return function sendUnhandledPromise(reason, _promise) {\n if (getClient() !== client) {\n return;\n }\n if (matchesIgnore(options.ignore ?? [], reason)) {\n return;\n }\n const level = options.mode === \"strict\" ? \"fatal\" : \"error\";\n const activeSpanForError = reason && typeof reason === \"object\" ? reason._sentry_active_span : void 0;\n const activeSpanWrapper = activeSpanForError ? (fn) => withActiveSpan(activeSpanForError, fn) : (fn) => fn();\n activeSpanWrapper(() => {\n captureException(reason, {\n originalException: reason,\n captureContext: {\n extra: { unhandledPromiseRejection: true },\n level\n },\n mechanism: {\n handled: false,\n type: \"auto.node.onunhandledrejection\"\n }\n });\n });\n handleRejection(reason, options.mode);\n };\n}\nfunction handleRejection(reason, mode) {\n const rejectionWarning = \"This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:\";\n if (mode === \"warn\") {\n consoleSandbox(() => {\n console.warn(rejectionWarning);\n console.error(reason && typeof reason === \"object\" && \"stack\" in reason ? reason.stack : reason);\n });\n } else if (mode === \"strict\") {\n consoleSandbox(() => {\n console.warn(rejectionWarning);\n });\n logAndExitProcess(reason);\n }\n}\n\nexport { makeUnhandledPromiseHandler, onUnhandledRejectionIntegration };\n//# sourceMappingURL=onunhandledrejection.js.map\n", + "import { defineIntegration, startSession, getIsolationScope, endSession } from '@sentry/core';\n\nconst INTEGRATION_NAME = \"ProcessSession\";\nconst processSessionIntegration = defineIntegration(() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n startSession();\n process.on(\"beforeExit\", () => {\n const session = getIsolationScope().getSession();\n if (session?.status !== \"ok\") {\n endSession();\n }\n });\n }\n };\n});\n\nexport { processSessionIntegration };\n//# sourceMappingURL=processSession.js.map\n", + "import * as http from 'node:http';\nimport { defineIntegration, debug, serializeEnvelope, suppressTracing } from '@sentry/core';\n\nconst INTEGRATION_NAME = \"Spotlight\";\nconst _spotlightIntegration = ((options = {}) => {\n const _options = {\n sidecarUrl: options.sidecarUrl || \"http://localhost:8969/stream\"\n };\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n try {\n if (process.env.NODE_ENV && process.env.NODE_ENV !== \"development\") {\n debug.warn(\"[Spotlight] It seems you're not in dev mode. Do you really want to have Spotlight enabled?\");\n }\n } catch {\n }\n connectToSpotlight(client, _options);\n }\n };\n});\nconst spotlightIntegration = defineIntegration(_spotlightIntegration);\nfunction connectToSpotlight(client, options) {\n const spotlightUrl = parseSidecarUrl(options.sidecarUrl);\n if (!spotlightUrl) {\n return;\n }\n let failedRequests = 0;\n client.on(\"beforeEnvelope\", (envelope) => {\n if (failedRequests > 3) {\n debug.warn(\"[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests\");\n return;\n }\n const serializedEnvelope = serializeEnvelope(envelope);\n suppressTracing(() => {\n const req = http.request(\n {\n method: \"POST\",\n path: spotlightUrl.pathname,\n hostname: spotlightUrl.hostname,\n port: spotlightUrl.port,\n headers: {\n \"Content-Type\": \"application/x-sentry-envelope\"\n }\n },\n (res) => {\n if (res.statusCode && res.statusCode >= 200 && res.statusCode < 400) {\n failedRequests = 0;\n }\n res.on(\"data\", () => {\n });\n res.on(\"end\", () => {\n });\n res.setEncoding(\"utf8\");\n }\n );\n req.on(\"error\", () => {\n failedRequests++;\n debug.warn(\"[Spotlight] Failed to send envelope to Spotlight Sidecar\");\n });\n req.write(serializedEnvelope);\n req.end();\n });\n });\n}\nfunction parseSidecarUrl(url) {\n try {\n return new URL(`${url}`);\n } catch {\n debug.warn(`[Spotlight] Invalid sidecar URL: ${url}`);\n return void 0;\n }\n}\n\nexport { INTEGRATION_NAME, spotlightIntegration };\n//# sourceMappingURL=spotlight.js.map\n", + "import { defineIntegration, maybeInstrument, consoleIntegration as consoleIntegration$1, GLOBAL_OBJ, CONSOLE_LEVELS, originalConsoleMethods, markFunctionWrapped, fill, triggerHandlers } from '@sentry/core';\n\nconst consoleIntegration = defineIntegration((options = {}) => {\n return {\n name: \"Console\",\n setup(client) {\n if (process.env.LAMBDA_TASK_ROOT) {\n maybeInstrument(\"console\", instrumentConsoleLambda);\n }\n const core = consoleIntegration$1({\n ...options,\n filter: [\n ...options.filter || [],\n // Deprecation on Node 26 for module.require(), which is used by IITM\n \"[DEP0205] DeprecationWarning\"\n ]\n });\n core.setup?.(client);\n }\n };\n});\nfunction instrumentConsoleLambda() {\n const consoleObj = GLOBAL_OBJ?.console;\n if (!consoleObj) {\n return;\n }\n CONSOLE_LEVELS.forEach((level) => {\n if (level in consoleObj) {\n patchWithDefineProperty(consoleObj, level);\n }\n });\n}\nfunction patchWithDefineProperty(consoleObj, level) {\n const nativeMethod = consoleObj[level];\n originalConsoleMethods[level] = nativeMethod;\n let delegate = nativeMethod;\n let savedDelegate;\n let isExecuting = false;\n const wrapper = function(...args) {\n if (isExecuting) {\n nativeMethod.apply(consoleObj, args);\n return;\n }\n isExecuting = true;\n try {\n triggerHandlers(\"console\", { args, level });\n delegate.apply(consoleObj, args);\n } finally {\n isExecuting = false;\n }\n };\n markFunctionWrapped(wrapper, nativeMethod);\n const sandboxBypass = nativeMethod.bind(consoleObj);\n originalConsoleMethods[level] = sandboxBypass;\n try {\n let current = wrapper;\n Object.defineProperty(consoleObj, level, {\n configurable: true,\n enumerable: true,\n get() {\n return current;\n },\n set(newValue) {\n if (newValue === wrapper) {\n if (savedDelegate !== void 0) {\n delegate = savedDelegate;\n savedDelegate = void 0;\n }\n current = wrapper;\n } else if (newValue === sandboxBypass) {\n savedDelegate = delegate;\n current = sandboxBypass;\n } else if (typeof newValue === \"function\" && !newValue.__sentry_original__) {\n delegate = newValue;\n current = wrapper;\n } else {\n current = newValue;\n }\n }\n });\n } catch {\n fill(consoleObj, level, function(originalConsoleMethod) {\n originalConsoleMethods[level] = originalConsoleMethod;\n return function(...args) {\n triggerHandlers(\"console\", { args, level });\n originalConsoleMethods[level]?.apply(this, args);\n };\n });\n }\n}\n\nexport { consoleIntegration };\n//# sourceMappingURL=console.js.map\n", + "import * as util from 'node:util';\nimport { defineIntegration } from '@sentry/core';\n\nconst INTEGRATION_NAME = \"NodeSystemError\";\nfunction isSystemError(error) {\n if (!(error instanceof Error)) {\n return false;\n }\n if (!(\"errno\" in error) || typeof error.errno !== \"number\") {\n return false;\n }\n if (typeof util.getSystemErrorMap !== \"function\") {\n return false;\n }\n return util.getSystemErrorMap().has(error.errno);\n}\nconst systemErrorIntegration = defineIntegration((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n processEvent: (event, hint, client) => {\n if (!isSystemError(hint.originalException)) {\n return event;\n }\n const error = hint.originalException;\n const errorContext = {\n ...error\n };\n if (!client.getDataCollectionOptions().userInfo && options.includePaths !== true) {\n delete errorContext.path;\n delete errorContext.dest;\n }\n event.contexts = {\n ...event.contexts,\n node_system_error: errorContext\n };\n for (const exception of event.exception?.values || []) {\n if (exception.value) {\n if (error.path && exception.value.includes(error.path)) {\n exception.value = exception.value.replace(`'${error.path}'`, \"\").trim();\n }\n if (error.dest && exception.value.includes(error.dest)) {\n exception.value = exception.value.replace(`'${error.dest}'`, \"\").trim();\n }\n }\n }\n return event;\n }\n };\n});\n\nexport { systemErrorIntegration };\n//# sourceMappingURL=systemError.js.map\n", + "import * as http from 'node:http';\nimport * as https from 'node:https';\nimport { Readable } from 'node:stream';\nimport { createGzip } from 'node:zlib';\nimport { consoleSandbox, createTransport, suppressTracing } from '@sentry/core';\nimport { HttpsProxyAgent } from '../proxy/index.js';\n\nconst GZIP_THRESHOLD = 1024 * 32;\nfunction streamFromBody(body) {\n return new Readable({\n read() {\n this.push(body);\n this.push(null);\n }\n });\n}\nfunction makeNodeTransport(options) {\n let urlSegments;\n try {\n urlSegments = new URL(options.url);\n } catch (_e) {\n consoleSandbox(() => {\n console.warn(\n \"[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.\"\n );\n });\n return createTransport(options, () => Promise.resolve({}));\n }\n const isHttps = urlSegments.protocol === \"https:\";\n const proxy = applyNoProxyOption(\n urlSegments,\n options.proxy || (isHttps ? process.env.https_proxy : void 0) || process.env.http_proxy\n );\n const nativeHttpModule = isHttps ? https : http;\n const keepAlive = options.keepAlive === void 0 ? false : options.keepAlive;\n const agent = proxy ? new HttpsProxyAgent(proxy) : new nativeHttpModule.Agent({ keepAlive, maxSockets: 30, timeout: 2e3 });\n const requestExecutor = createRequestExecutor(options, options.httpModule ?? nativeHttpModule, agent);\n return createTransport(options, requestExecutor);\n}\nfunction applyNoProxyOption(transportUrlSegments, proxy) {\n const { no_proxy } = process.env;\n const urlIsExemptFromProxy = no_proxy?.split(\",\").some(\n (exemption) => transportUrlSegments.host.endsWith(exemption) || transportUrlSegments.hostname.endsWith(exemption)\n );\n if (urlIsExemptFromProxy) {\n return void 0;\n } else {\n return proxy;\n }\n}\nfunction createRequestExecutor(options, httpModule, agent) {\n const { hostname, pathname, port, protocol, search } = new URL(options.url);\n return function makeRequest(request) {\n return new Promise((resolve, reject) => {\n suppressTracing(() => {\n let body = streamFromBody(request.body);\n const headers = { ...options.headers };\n if (request.body.length > GZIP_THRESHOLD) {\n headers[\"content-encoding\"] = \"gzip\";\n body = body.pipe(createGzip());\n }\n const hostnameIsIPv6 = hostname.startsWith(\"[\");\n const req = httpModule.request(\n {\n method: \"POST\",\n agent,\n headers,\n // Remove \"[\" and \"]\" from IPv6 hostnames\n hostname: hostnameIsIPv6 ? hostname.slice(1, -1) : hostname,\n path: `${pathname}${search}`,\n port,\n protocol,\n ca: options.caCerts\n },\n (res) => {\n res.on(\"data\", () => {\n });\n res.on(\"end\", () => {\n });\n res.setEncoding(\"utf8\");\n const retryAfterHeader = res.headers[\"retry-after\"] ?? null;\n const rateLimitsHeader = res.headers[\"x-sentry-rate-limits\"] ?? null;\n resolve({\n statusCode: res.statusCode,\n headers: {\n \"retry-after\": retryAfterHeader,\n \"x-sentry-rate-limits\": Array.isArray(rateLimitsHeader) ? rateLimitsHeader[0] || null : rateLimitsHeader\n }\n });\n }\n );\n req.on(\"error\", reject);\n body.pipe(req);\n });\n });\n };\n}\n\nexport { makeNodeTransport };\n//# sourceMappingURL=http.js.map\n", + "import * as net from 'node:net';\nimport * as tls from 'node:tls';\nimport { debug } from '@sentry/core';\nimport { Agent } from './base.js';\nimport { parseProxyResponse } from './parse-proxy-response.js';\n\nfunction debugLog(...args) {\n debug.log(\"[https-proxy-agent]\", ...args);\n}\nclass HttpsProxyAgent extends Agent {\n constructor(proxy, opts) {\n super(opts);\n this.options = {};\n this.proxy = typeof proxy === \"string\" ? new URL(proxy) : proxy;\n this.proxyHeaders = opts?.headers ?? {};\n debugLog(\"Creating new HttpsProxyAgent instance: %o\", this.proxy.href);\n const host = (this.proxy.hostname || this.proxy.host).replace(/^\\[|\\]$/g, \"\");\n const port = this.proxy.port ? parseInt(this.proxy.port, 10) : this.proxy.protocol === \"https:\" ? 443 : 80;\n this.connectOpts = {\n // Attempt to negotiate http/1.1 for proxy servers that support http/2\n ALPNProtocols: [\"http/1.1\"],\n ...opts ? omit(opts, \"headers\") : null,\n host,\n port\n };\n }\n /**\n * Called when the node-core HTTP client library is creating a\n * new HTTP request.\n */\n async connect(req, opts) {\n const { proxy } = this;\n if (!opts.host) {\n throw new TypeError('No \"host\" provided');\n }\n let socket;\n if (proxy.protocol === \"https:\") {\n debugLog(\"Creating `tls.Socket`: %o\", this.connectOpts);\n const servername = this.connectOpts.servername || this.connectOpts.host;\n socket = tls.connect({\n ...this.connectOpts,\n servername: servername && net.isIP(servername) ? void 0 : servername\n });\n } else {\n debugLog(\"Creating `net.Socket`: %o\", this.connectOpts);\n socket = net.connect(this.connectOpts);\n }\n const headers = typeof this.proxyHeaders === \"function\" ? this.proxyHeaders() : { ...this.proxyHeaders };\n const host = net.isIPv6(opts.host) ? `[${opts.host}]` : opts.host;\n let payload = `CONNECT ${host}:${opts.port} HTTP/1.1\\r\n`;\n if (proxy.username || proxy.password) {\n const auth = `${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`;\n headers[\"Proxy-Authorization\"] = `Basic ${Buffer.from(auth).toString(\"base64\")}`;\n }\n headers.Host = `${host}:${opts.port}`;\n if (!headers[\"Proxy-Connection\"]) {\n headers[\"Proxy-Connection\"] = this.keepAlive ? \"Keep-Alive\" : \"close\";\n }\n for (const name of Object.keys(headers)) {\n payload += `${name}: ${headers[name]}\\r\n`;\n }\n const proxyResponsePromise = parseProxyResponse(socket);\n socket.write(`${payload}\\r\n`);\n const { connect, buffered } = await proxyResponsePromise;\n req.emit(\"proxyConnect\", connect);\n this.emit(\"proxyConnect\", connect, req);\n if (connect.statusCode === 200) {\n req.once(\"socket\", resume);\n if (opts.secureEndpoint) {\n debugLog(\"Upgrading socket connection to TLS\");\n const servername = opts.servername || opts.host;\n return tls.connect({\n ...omit(opts, \"host\", \"path\", \"port\"),\n socket,\n servername: net.isIP(servername) ? void 0 : servername\n });\n }\n return socket;\n }\n socket.destroy();\n const fakeSocket = new net.Socket({ writable: false });\n fakeSocket.readable = true;\n req.once(\"socket\", (s) => {\n debugLog(\"Replaying proxy buffer for failed request\");\n s.push(buffered);\n s.push(null);\n });\n return fakeSocket;\n }\n}\nHttpsProxyAgent.protocols = [\"http\", \"https\"];\nfunction resume(socket) {\n socket.resume();\n}\nfunction omit(obj, ...keys) {\n const ret = {};\n let key;\n for (key in obj) {\n if (!keys.includes(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n}\n\nexport { HttpsProxyAgent };\n//# sourceMappingURL=index.js.map\n", + "import * as http from 'node:http';\nimport 'node:https';\n\nvar _a;\nconst INTERNAL = /* @__PURE__ */ Symbol(\"AgentBaseInternalState\");\nclass Agent extends (_a = http.Agent, _a) {\n constructor(opts) {\n super(opts);\n this[INTERNAL] = {};\n }\n /**\n * Determine whether this is an `http` or `https` request.\n */\n isSecureEndpoint(options) {\n if (options) {\n if (typeof options.secureEndpoint === \"boolean\") {\n return options.secureEndpoint;\n }\n if (typeof options.protocol === \"string\") {\n return options.protocol === \"https:\";\n }\n }\n const { stack } = new Error();\n if (typeof stack !== \"string\") return false;\n return stack.split(\"\\n\").some((l) => l.indexOf(\"(https.js:\") !== -1 || l.indexOf(\"node:https:\") !== -1);\n }\n createSocket(req, options, cb) {\n const connectOpts = {\n ...options,\n secureEndpoint: this.isSecureEndpoint(options)\n };\n Promise.resolve().then(() => this.connect(req, connectOpts)).then((socket) => {\n if (socket instanceof http.Agent) {\n return socket.addRequest(req, connectOpts);\n }\n this[INTERNAL].currentSocket = socket;\n super.createSocket(req, options, cb);\n }, cb);\n }\n createConnection() {\n const socket = this[INTERNAL].currentSocket;\n this[INTERNAL].currentSocket = void 0;\n if (!socket) {\n throw new Error(\"No socket was returned in the `connect()` function\");\n }\n return socket;\n }\n get defaultPort() {\n return this[INTERNAL].defaultPort ?? (this.protocol === \"https:\" ? 443 : 80);\n }\n set defaultPort(v) {\n if (this[INTERNAL]) {\n this[INTERNAL].defaultPort = v;\n }\n }\n get protocol() {\n return this[INTERNAL].protocol ?? (this.isSecureEndpoint() ? \"https:\" : \"http:\");\n }\n set protocol(v) {\n if (this[INTERNAL]) {\n this[INTERNAL].protocol = v;\n }\n }\n}\n\nexport { Agent };\n//# sourceMappingURL=base.js.map\n", + "import { debug } from '@sentry/core';\n\nfunction debugLog(...args) {\n debug.log(\"[https-proxy-agent:parse-proxy-response]\", ...args);\n}\nfunction parseProxyResponse(socket) {\n return new Promise((resolve, reject) => {\n let buffersLength = 0;\n const buffers = [];\n function read() {\n const b = socket.read();\n if (b) ondata(b);\n else socket.once(\"readable\", read);\n }\n function cleanup() {\n socket.removeListener(\"end\", onend);\n socket.removeListener(\"error\", onerror);\n socket.removeListener(\"readable\", read);\n }\n function onend() {\n cleanup();\n debugLog(\"onend\");\n reject(new Error(\"Proxy connection ended before receiving CONNECT response\"));\n }\n function onerror(err) {\n cleanup();\n debugLog(\"onerror %o\", err);\n reject(err);\n }\n function ondata(b) {\n buffers.push(b);\n buffersLength += b.length;\n const buffered = Buffer.concat(buffers, buffersLength);\n const endOfHeaders = buffered.indexOf(\"\\r\\n\\r\\n\");\n if (endOfHeaders === -1) {\n debugLog(\"have not received end of HTTP headers yet...\");\n read();\n return;\n }\n const headerParts = buffered.subarray(0, endOfHeaders).toString(\"ascii\").split(\"\\r\\n\");\n const firstLine = headerParts.shift();\n if (!firstLine) {\n socket.destroy();\n return reject(new Error(\"No header received from proxy CONNECT response\"));\n }\n const firstLineParts = firstLine.split(\" \");\n const statusCode = +(firstLineParts[1] || 0);\n const statusText = firstLineParts.slice(2).join(\" \");\n const headers = {};\n for (const header of headerParts) {\n if (!header) continue;\n const firstColon = header.indexOf(\":\");\n if (firstColon === -1) {\n socket.destroy();\n return reject(new Error(`Invalid header from proxy CONNECT response: \"${header}\"`));\n }\n const key = header.slice(0, firstColon).toLowerCase();\n const value = header.slice(firstColon + 1).trimStart();\n const current = headers[key];\n if (typeof current === \"string\") {\n headers[key] = [current, value];\n } else if (Array.isArray(current)) {\n current.push(value);\n } else {\n headers[key] = value;\n }\n }\n debugLog(\"got proxy server response: %o %o\", firstLine, headers);\n cleanup();\n resolve({\n connect: {\n statusCode,\n statusText,\n headers\n },\n buffered\n });\n }\n socket.on(\"error\", onerror);\n socket.on(\"end\", onend);\n read();\n });\n}\n\nexport { parseProxyResponse };\n//# sourceMappingURL=parse-proxy-response.js.map\n", + "import { envToBool } from '@sentry/core';\n\nfunction getSpotlightConfig(optionsSpotlight) {\n if (optionsSpotlight === false) {\n return false;\n }\n if (typeof optionsSpotlight === \"string\") {\n return optionsSpotlight;\n }\n const envBool = envToBool(process.env.SENTRY_SPOTLIGHT, { strict: true });\n const envUrl = envBool === null && process.env.SENTRY_SPOTLIGHT ? process.env.SENTRY_SPOTLIGHT : void 0;\n return optionsSpotlight === true ? envUrl ?? true : envBool ?? envUrl;\n}\n\nexport { getSpotlightConfig };\n//# sourceMappingURL=spotlight.js.map\n", + "import { posix, sep } from 'node:path';\nimport { dirname } from '@sentry/core';\n\nfunction normalizeWindowsPath(path) {\n return path.replace(/^[A-Z]:/, \"\").replace(/\\\\/g, \"/\");\n}\nfunction createGetModuleFromFilename(basePath = process.argv[1] ? dirname(process.argv[1]) : process.cwd(), isWindows = sep === \"\\\\\") {\n const normalizedBase = isWindows ? normalizeWindowsPath(basePath) : basePath;\n return (filename) => {\n if (!filename) {\n return;\n }\n const normalizedFilename = isWindows ? normalizeWindowsPath(filename) : filename;\n let { dir, base: file, ext } = posix.parse(normalizedFilename);\n if (ext === \".js\" || ext === \".mjs\" || ext === \".cjs\") {\n file = file.slice(0, ext.length * -1);\n }\n const decodedFile = decodeURIComponent(file);\n if (!dir) {\n dir = \".\";\n }\n const n = dir.lastIndexOf(\"/node_modules\");\n if (n > -1) {\n return `${dir.slice(n + 14).replace(/\\//g, \".\")}:${decodedFile}`;\n }\n if (dir.startsWith(normalizedBase)) {\n const moduleName = dir.slice(normalizedBase.length + 1).replace(/\\//g, \".\");\n return moduleName ? `${moduleName}:${decodedFile}` : decodedFile;\n }\n return decodedFile;\n };\n}\n\nexport { createGetModuleFromFilename };\n//# sourceMappingURL=module.js.map\n", + "import { createStackParser, nodeStackLineParser, GLOBAL_OBJ } from '@sentry/core';\nimport { createGetModuleFromFilename } from '../utils/module.js';\n\nfunction getSentryRelease(fallback) {\n if (process.env.SENTRY_RELEASE) {\n return process.env.SENTRY_RELEASE;\n }\n if (GLOBAL_OBJ.SENTRY_RELEASE?.id) {\n return GLOBAL_OBJ.SENTRY_RELEASE.id;\n }\n const possibleReleaseNameOfGitProvider = (\n // GitHub Actions - https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables#default-environment-variables\n process.env[\"GITHUB_SHA\"] || // GitLab CI - https://docs.gitlab.com/ee/ci/variables/predefined_variables.html\n process.env[\"CI_MERGE_REQUEST_SOURCE_BRANCH_SHA\"] || process.env[\"CI_BUILD_REF\"] || process.env[\"CI_COMMIT_SHA\"] || // Bitbucket - https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/\n process.env[\"BITBUCKET_COMMIT\"]\n );\n const possibleReleaseNameOfCiProvidersWithSpecificEnvVar = (\n // AppVeyor - https://www.appveyor.com/docs/environment-variables/\n process.env[\"APPVEYOR_PULL_REQUEST_HEAD_COMMIT\"] || process.env[\"APPVEYOR_REPO_COMMIT\"] || // AWS CodeBuild - https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html\n process.env[\"CODEBUILD_RESOLVED_SOURCE_VERSION\"] || // AWS Amplify - https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html\n process.env[\"AWS_COMMIT_ID\"] || // Azure Pipelines - https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml\n process.env[\"BUILD_SOURCEVERSION\"] || // Bitrise - https://devcenter.bitrise.io/builds/available-environment-variables/\n process.env[\"GIT_CLONE_COMMIT_HASH\"] || // Buddy CI - https://buddy.works/docs/pipelines/environment-variables#default-environment-variables\n process.env[\"BUDDY_EXECUTION_REVISION\"] || // Builtkite - https://buildkite.com/docs/pipelines/environment-variables\n process.env[\"BUILDKITE_COMMIT\"] || // CircleCI - https://circleci.com/docs/variables/\n process.env[\"CIRCLE_SHA1\"] || // Cirrus CI - https://cirrus-ci.org/guide/writing-tasks/#environment-variables\n process.env[\"CIRRUS_CHANGE_IN_REPO\"] || // Codefresh - https://codefresh.io/docs/docs/codefresh-yaml/variables/\n process.env[\"CF_REVISION\"] || // Codemagic - https://docs.codemagic.io/yaml-basic-configuration/environment-variables/\n process.env[\"CM_COMMIT\"] || // Cloudflare Pages - https://developers.cloudflare.com/pages/platform/build-configuration/#environment-variables\n process.env[\"CF_PAGES_COMMIT_SHA\"] || // Drone - https://docs.drone.io/pipeline/environment/reference/\n process.env[\"DRONE_COMMIT_SHA\"] || // Flightcontrol - https://www.flightcontrol.dev/docs/guides/flightcontrol/environment-variables#built-in-environment-variables\n process.env[\"FC_GIT_COMMIT_SHA\"] || // Heroku #1 https://devcenter.heroku.com/articles/heroku-ci\n process.env[\"HEROKU_TEST_RUN_COMMIT_VERSION\"] || // Heroku #2 https://devcenter.heroku.com/articles/dyno-metadata#dyno-metadata\n process.env[\"HEROKU_BUILD_COMMIT\"] || // Heroku #3 (deprecated by Heroku, kept for backward compatibility)\n process.env[\"HEROKU_SLUG_COMMIT\"] || // Railway - https://docs.railway.app/reference/variables#git-variables\n process.env[\"RAILWAY_GIT_COMMIT_SHA\"] || // Render - https://render.com/docs/environment-variables\n process.env[\"RENDER_GIT_COMMIT\"] || // Semaphore CI - https://docs.semaphoreci.com/ci-cd-environment/environment-variables\n process.env[\"SEMAPHORE_GIT_SHA\"] || // TravisCI - https://docs.travis-ci.com/user/environment-variables/#default-environment-variables\n process.env[\"TRAVIS_PULL_REQUEST_SHA\"] || // Vercel - https://vercel.com/docs/v2/build-step#system-environment-variables\n process.env[\"VERCEL_GIT_COMMIT_SHA\"] || process.env[\"VERCEL_GITHUB_COMMIT_SHA\"] || process.env[\"VERCEL_GITLAB_COMMIT_SHA\"] || process.env[\"VERCEL_BITBUCKET_COMMIT_SHA\"] || // Zeit (now known as Vercel)\n process.env[\"ZEIT_GITHUB_COMMIT_SHA\"] || process.env[\"ZEIT_GITLAB_COMMIT_SHA\"] || process.env[\"ZEIT_BITBUCKET_COMMIT_SHA\"]\n );\n const possibleReleaseNameOfCiProvidersWithGenericEnvVar = (\n // CloudBees CodeShip - https://docs.cloudbees.com/docs/cloudbees-codeship/latest/pro-builds-and-configuration/environment-variables\n process.env[\"CI_COMMIT_ID\"] || // Coolify - https://coolify.io/docs/knowledge-base/environment-variables\n process.env[\"SOURCE_COMMIT\"] || // Heroku #3 https://devcenter.heroku.com/changelog-items/630\n process.env[\"SOURCE_VERSION\"] || // Jenkins - https://plugins.jenkins.io/git/#environment-variables\n process.env[\"GIT_COMMIT\"] || // Netlify - https://docs.netlify.com/configure-builds/environment-variables/#build-metadata\n process.env[\"COMMIT_REF\"] || // TeamCity - https://www.jetbrains.com/help/teamcity/predefined-build-parameters.html\n process.env[\"BUILD_VCS_NUMBER\"] || // Woodpecker CI - https://woodpecker-ci.org/docs/usage/environment\n process.env[\"CI_COMMIT_SHA\"]\n );\n return possibleReleaseNameOfGitProvider || possibleReleaseNameOfCiProvidersWithSpecificEnvVar || possibleReleaseNameOfCiProvidersWithGenericEnvVar || fallback;\n}\nconst defaultStackParser = createStackParser(nodeStackLineParser(createGetModuleFromFilename()));\n\nexport { defaultStackParser, getSentryRelease };\n//# sourceMappingURL=api.js.map\n", + "import * as os from 'node:os';\nimport { trace } from '@opentelemetry/api';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { ServerRuntimeClient, applySdkMetadata, debug, _INTERNAL_flushLogsBuffer, SDK_VERSION, _INTERNAL_clearAiProviderSkips } from '@sentry/core';\nimport { getTraceContextForScope } from '@sentry/opentelemetry';\nimport { threadId, isMainThread } from 'worker_threads';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst DEFAULT_CLIENT_REPORT_FLUSH_INTERVAL_MS = 6e4;\nclass NodeClient extends ServerRuntimeClient {\n constructor(options) {\n const serverName = options.includeServerName === false ? void 0 : options.serverName || global.process.env.SENTRY_NAME || os.hostname();\n const clientOptions = {\n ...options,\n platform: \"node\",\n // Use provided runtime or default to 'node' with current process version\n runtime: options.runtime || { name: \"node\", version: global.process.version },\n serverName\n };\n if (options.openTelemetryInstrumentations) {\n registerInstrumentations({\n instrumentations: options.openTelemetryInstrumentations\n });\n }\n applySdkMetadata(clientOptions, \"node\");\n debug.log(`Initializing Sentry: process: ${process.pid}, thread: ${isMainThread ? \"main\" : `worker-${threadId}`}.`);\n super(clientOptions);\n if (this.getOptions().enableLogs) {\n this._logOnExitFlushListener = () => {\n _INTERNAL_flushLogsBuffer(this);\n };\n if (serverName) {\n this.on(\"beforeCaptureLog\", (log) => {\n log.attributes = {\n ...log.attributes,\n \"server.address\": serverName\n };\n });\n }\n process.on(\"beforeExit\", this._logOnExitFlushListener);\n }\n }\n /** Get the OTEL tracer. */\n get tracer() {\n if (this._tracer) {\n return this._tracer;\n }\n const name = \"@sentry/node\";\n const version = SDK_VERSION;\n const tracer = trace.getTracer(name, version);\n this._tracer = tracer;\n return tracer;\n }\n /** @inheritDoc */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async flush(timeout) {\n await this.traceProvider?.forceFlush();\n if (this.getOptions().sendClientReports) {\n this._flushOutcomes();\n }\n return super.flush(timeout);\n }\n /** @inheritDoc */\n // @ts-expect-error - PromiseLike is a subset of Promise\n async close(timeout) {\n if (this._clientReportInterval) {\n clearInterval(this._clientReportInterval);\n }\n if (this._clientReportOnExitFlushListener) {\n process.off(\"beforeExit\", this._clientReportOnExitFlushListener);\n }\n if (this._logOnExitFlushListener) {\n process.off(\"beforeExit\", this._logOnExitFlushListener);\n }\n const allEventsSent = await super.close(timeout);\n if (this.traceProvider) {\n await this.traceProvider.shutdown();\n }\n return allEventsSent;\n }\n /**\n * Will start tracking client reports for this client.\n *\n * NOTICE: This method will create an interval that is periodically called and attach a `process.on('beforeExit')`\n * hook. To clean up these resources, call `.close()` when you no longer intend to use the client. Not doing so will\n * result in a memory leak.\n */\n // The reason client reports need to be manually activated with this method instead of just enabling them in a\n // constructor, is that if users periodically and unboundedly create new clients, we will create more and more\n // intervals and beforeExit listeners, thus leaking memory. In these situations, users are required to call\n // `client.close()` in order to dispose of the acquired resources.\n // We assume that calling this method in Sentry.init() is a sensible default, because calling Sentry.init() over and\n // over again would also result in memory leaks.\n // Note: We have experimented with using `FinalizationRegisty` to clear the interval when the client is garbage\n // collected, but it did not work, because the cleanup function never got called.\n startClientReportTracking() {\n const clientOptions = this.getOptions();\n if (clientOptions.sendClientReports) {\n this._clientReportOnExitFlushListener = () => {\n this._flushOutcomes();\n };\n this._clientReportInterval = setInterval(() => {\n DEBUG_BUILD && debug.log(\"Flushing client reports based on interval.\");\n this._flushOutcomes();\n }, clientOptions.clientReportFlushInterval ?? DEFAULT_CLIENT_REPORT_FLUSH_INTERVAL_MS).unref();\n process.on(\"beforeExit\", this._clientReportOnExitFlushListener);\n }\n }\n /** @inheritDoc */\n _setupIntegrations() {\n _INTERNAL_clearAiProviderSkips();\n super._setupIntegrations();\n }\n /** Custom implementation for OTEL, so we can handle scope-span linking. */\n _getTraceInfoFromScope(scope) {\n if (!scope) {\n return [void 0, void 0];\n }\n return getTraceContextForScope(this, scope);\n }\n}\n\nexport { NodeClient };\n//# sourceMappingURL=client.js.map\n", + "import { GLOBAL_OBJ, debug } from '@sentry/core';\nimport { createAddHookMessageChannel } from 'import-in-the-middle';\nimport * as moduleModule from 'module';\nimport { supportsEsmLoaderHooks } from '../utils/detection.js';\n\nfunction initializeEsmLoader() {\n if (!supportsEsmLoaderHooks()) {\n return;\n }\n if (!GLOBAL_OBJ._sentryEsmLoaderHookRegistered) {\n GLOBAL_OBJ._sentryEsmLoaderHookRegistered = true;\n try {\n const { addHookMessagePort } = createAddHookMessageChannel();\n moduleModule.register(\"import-in-the-middle/hook.mjs\", import.meta.url, {\n data: { addHookMessagePort, include: [] },\n transferList: [addHookMessagePort]\n });\n } catch (error) {\n debug.warn(\"Failed to register 'import-in-the-middle' hook\", error);\n }\n }\n}\n\nexport { initializeEsmLoader };\n//# sourceMappingURL=esmLoader.js.map\n", + "import { consoleSandbox } from '@sentry/core';\nimport { NODE_MAJOR, NODE_MINOR } from '../nodeVersion.js';\n\nfunction isCjs() {\n return false;\n}\nlet hasWarnedAboutNodeVersion;\nfunction supportsEsmLoaderHooks() {\n if (NODE_MAJOR >= 21 || NODE_MAJOR === 20 && NODE_MINOR >= 6 || NODE_MAJOR === 18 && NODE_MINOR >= 19) {\n return true;\n }\n if (!hasWarnedAboutNodeVersion) {\n hasWarnedAboutNodeVersion = true;\n consoleSandbox(() => {\n console.warn(\n `[Sentry] You are using Node.js v${process.versions.node} in ESM mode (\"import syntax\"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS (\"require() syntax\"), or upgrade your Node.js version.`\n );\n });\n }\n return false;\n}\n\nexport { isCjs, supportsEsmLoaderHooks };\n//# sourceMappingURL=detection.js.map\n", + "import { debug, consoleSandbox, getCurrentScope, applySdkMetadata, envToBool, stackParserFromStackParserOptions, getIntegrationsToSetup, propagationContextFromHeaders, inboundFiltersIntegration, functionToStringIntegration, linkedErrorsIntegration, requestDataIntegration, conversationIdIntegration, hasSpansEnabled } from '@sentry/core';\nimport { setOpenTelemetryContextAsyncContextStrategy, enhanceDscWithOpenTelemetryRootSpanName, setupEventContextTrace, openTelemetrySetupCheck } from '@sentry/opentelemetry';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { childProcessIntegration } from '../integrations/childProcess.js';\nimport { nodeContextIntegration } from '../integrations/context.js';\nimport { contextLinesIntegration } from '../integrations/contextlines.js';\nimport { httpIntegration } from '../integrations/http/index.js';\nimport { localVariablesIntegration } from '../integrations/local-variables/index.js';\nimport { modulesIntegration } from '../integrations/modules.js';\nimport { nativeNodeFetchIntegration } from '../integrations/node-fetch/index.js';\nimport { onUncaughtExceptionIntegration } from '../integrations/onuncaughtexception.js';\nimport { onUnhandledRejectionIntegration } from '../integrations/onunhandledrejection.js';\nimport { processSessionIntegration } from '../integrations/processSession.js';\nimport { INTEGRATION_NAME, spotlightIntegration } from '../integrations/spotlight.js';\nimport { consoleIntegration } from '../integrations/console.js';\nimport { systemErrorIntegration } from '../integrations/systemError.js';\nimport { makeNodeTransport } from '../transports/http.js';\nimport '../nodeVersion.js';\nimport { getSpotlightConfig } from '../utils/spotlight.js';\nimport { defaultStackParser, getSentryRelease } from './api.js';\nimport { NodeClient } from './client.js';\nimport { initializeEsmLoader } from './esmLoader.js';\n\nfunction getDefaultIntegrations() {\n return [\n // Common\n // TODO(v11): Replace with `eventFiltersIntegration` once we remove the deprecated `inboundFiltersIntegration`\n // eslint-disable-next-line typescript/no-deprecated\n inboundFiltersIntegration(),\n functionToStringIntegration(),\n linkedErrorsIntegration(),\n requestDataIntegration(),\n systemErrorIntegration(),\n conversationIdIntegration(),\n // Native Wrappers\n consoleIntegration(),\n httpIntegration(),\n nativeNodeFetchIntegration(),\n // Global Handlers\n onUncaughtExceptionIntegration(),\n onUnhandledRejectionIntegration(),\n // Event Info\n contextLinesIntegration(),\n localVariablesIntegration(),\n nodeContextIntegration(),\n childProcessIntegration(),\n processSessionIntegration(),\n modulesIntegration()\n ];\n}\nfunction init(options = {}) {\n return _init(options, getDefaultIntegrations);\n}\nfunction initWithoutDefaultIntegrations(options = {}) {\n return _init(options, () => []);\n}\nfunction _init(_options = {}, getDefaultIntegrationsImpl) {\n const options = getClientOptions(_options, getDefaultIntegrationsImpl);\n if (options.debug === true) {\n if (DEBUG_BUILD) {\n debug.enable();\n } else {\n consoleSandbox(() => {\n console.warn(\"[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.\");\n });\n }\n }\n if (options.registerEsmLoaderHooks !== false) {\n initializeEsmLoader();\n }\n setOpenTelemetryContextAsyncContextStrategy(options);\n const scope = getCurrentScope();\n scope.update(options.initialScope);\n if (options.spotlight && !options.integrations.some(({ name }) => name === INTEGRATION_NAME)) {\n options.integrations.push(\n spotlightIntegration({\n sidecarUrl: typeof options.spotlight === \"string\" ? options.spotlight : void 0\n })\n );\n }\n applySdkMetadata(options, \"node-core\");\n const client = new NodeClient(options);\n getCurrentScope().setClient(client);\n client.init();\n debug.log(`SDK initialized from ${\"ESM\"}`);\n client.startClientReportTracking();\n updateScopeFromEnvVariables();\n enhanceDscWithOpenTelemetryRootSpanName(client);\n setupEventContextTrace(client);\n if (process.env.VERCEL) {\n process.on(\"SIGTERM\", async () => {\n await client.flush(200);\n });\n }\n return client;\n}\nfunction validateOpenTelemetrySetup() {\n if (!DEBUG_BUILD) {\n return;\n }\n const setup = openTelemetrySetupCheck();\n const required = [\"SentryContextManager\", \"SentryPropagator\"];\n if (hasSpansEnabled()) {\n required.push(\"SentrySpanProcessor\");\n }\n for (const k of required) {\n if (!setup.includes(k)) {\n debug.error(\n `You have to set up the ${k}. Without this, the OpenTelemetry & Sentry integration will not work properly.`\n );\n }\n }\n if (!setup.includes(\"SentrySampler\")) {\n debug.warn(\n \"You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.\"\n );\n }\n}\nfunction getClientOptions(options, getDefaultIntegrationsImpl) {\n const release = getRelease(options.release);\n const spotlight = getSpotlightConfig(options.spotlight);\n const tracesSampleRate = getTracesSampleRate(options.tracesSampleRate);\n const mergedOptions = {\n ...options,\n dsn: options.dsn ?? process.env.SENTRY_DSN,\n environment: options.environment ?? process.env.SENTRY_ENVIRONMENT,\n sendClientReports: options.sendClientReports ?? true,\n transport: options.transport ?? makeNodeTransport,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n release,\n tracesSampleRate,\n spotlight,\n debug: envToBool(options.debug ?? process.env.SENTRY_DEBUG)\n };\n const integrations = options.integrations;\n const defaultIntegrations = options.defaultIntegrations ?? getDefaultIntegrationsImpl(mergedOptions);\n const resolvedIntegrations = getIntegrationsToSetup({\n defaultIntegrations,\n integrations\n });\n return {\n ...mergedOptions,\n integrations: resolvedIntegrations\n };\n}\nfunction getRelease(release) {\n if (release !== void 0) {\n return release;\n }\n const detectedRelease = getSentryRelease();\n if (detectedRelease !== void 0) {\n return detectedRelease;\n }\n return void 0;\n}\nfunction getTracesSampleRate(tracesSampleRate) {\n if (tracesSampleRate !== void 0) {\n return tracesSampleRate;\n }\n const sampleRateFromEnv = process.env.SENTRY_TRACES_SAMPLE_RATE;\n if (!sampleRateFromEnv) {\n return void 0;\n }\n const parsed = parseFloat(sampleRateFromEnv);\n return isFinite(parsed) ? parsed : void 0;\n}\nfunction updateScopeFromEnvVariables() {\n if (envToBool(process.env.SENTRY_USE_ENVIRONMENT) !== false) {\n const sentryTraceEnv = process.env.SENTRY_TRACE;\n const baggageEnv = process.env.SENTRY_BAGGAGE;\n const propagationContext = propagationContextFromHeaders(sentryTraceEnv, baggageEnv);\n getCurrentScope().setPropagationContext(propagationContext);\n }\n}\n\nexport { getDefaultIntegrations, init, initWithoutDefaultIntegrations, validateOpenTelemetrySetup };\n//# sourceMappingURL=index.js.map\n", + "import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\n\nfunction addOriginToSpan(span, origin) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, origin);\n}\n\nexport { addOriginToSpan };\n//# sourceMappingURL=addOriginToSpan.js.map\n", + "import { defineIntegration, hasSpansEnabled, getRequestUrlFromClientRequest, stripDataUrlContent, SEMANTIC_ATTRIBUTE_URL_FULL } from '@sentry/core';\nimport { generateInstrumentOnce, SentryHttpInstrumentation, httpServerIntegration, httpServerSpansIntegration } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Http\";\nconst instrumentSentryHttp = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n (options) => {\n return new SentryHttpInstrumentation(options);\n }\n);\nconst httpIntegration = defineIntegration((options = {}) => {\n const spans = options.spans ?? true;\n const disableIncomingRequestSpans = options.disableIncomingRequestSpans;\n const enableServerSpans = spans && !disableIncomingRequestSpans;\n const serverOptions = {\n sessions: options.trackIncomingRequestsAsSessions,\n sessionFlushingDelayMS: options.sessionFlushingDelayMS,\n ignoreRequestBody: options.ignoreIncomingRequestBody,\n maxRequestBodySize: options.maxIncomingRequestBodySize\n };\n const serverSpansOptions = {\n ignoreIncomingRequests: options.ignoreIncomingRequests,\n ignoreStaticAssets: options.ignoreStaticAssets,\n ignoreStatusCodes: options.dropSpansForIncomingRequestStatusCodes,\n instrumentation: options.instrumentation,\n onSpanCreated: options.incomingRequestSpanHook\n };\n const server = httpServerIntegration(serverOptions);\n const serverSpans = httpServerSpansIntegration(serverSpansOptions);\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n const clientOptions = client.getOptions();\n if (enableServerSpans && hasSpansEnabled(clientOptions)) {\n serverSpans.setup(client);\n }\n },\n setupOnce() {\n server.setupOnce();\n const sentryHttpInstrumentationOptions = {\n breadcrumbs: options.breadcrumbs,\n spans,\n propagateTraceInOutgoingRequests: options.tracePropagation ?? true,\n createSpansForOutgoingRequests: spans,\n ignoreOutgoingRequests: options.ignoreOutgoingRequests,\n outgoingRequestHook: (span, request) => {\n const url = getRequestUrlFromClientRequest(request);\n if (url.startsWith(\"data:\")) {\n const sanitizedUrl = stripDataUrlContent(url);\n span.setAttribute(\"http.url\", sanitizedUrl);\n span.setAttribute(SEMANTIC_ATTRIBUTE_URL_FULL, sanitizedUrl);\n span.updateName(`${request.method || \"GET\"} ${sanitizedUrl}`);\n }\n options.instrumentation?.requestHook?.(span, request);\n },\n outgoingResponseHook: options.instrumentation?.responseHook,\n outgoingRequestApplyCustomAttributes: options.instrumentation?.applyCustomAttributesOnSpan\n };\n instrumentSentryHttp(sentryHttpInstrumentationOptions);\n },\n processEvent(event) {\n return serverSpans.processEvent(event);\n }\n };\n});\n\nexport { httpIntegration, instrumentSentryHttp };\n//# sourceMappingURL=http.js.map\n", + "import * as diagch from 'diagnostics_channel';\nimport { URL } from 'url';\nimport { LRUMap, debug, stripDataUrlContent, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, startInactiveSpan, SPAN_KIND, SPAN_STATUS_ERROR, getClient, shouldPropagateTraceForUrl, withActiveSpan, getTraceData, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { URL_QUERY, URL_PATH, URL_FULL, SERVER_ADDRESS, SERVER_PORT, USER_AGENT_ORIGINAL, HTTP_RESPONSE_STATUS_CODE, URL_SCHEME, HTTP_REQUEST_METHOD, NETWORK_PEER_PORT, NETWORK_PEER_ADDRESS } from '@sentry/conventions/attributes';\nimport { DEBUG_BUILD } from '../../debug-build.js';\n\nconst ATTR_HTTP_REQUEST_METHOD_ORIGINAL = \"http.request.method_original\";\nconst _channelSubs = [];\nconst spanFromReq = /* @__PURE__ */ new WeakMap();\nconst propagationDecisionMap = new LRUMap(100);\nfunction instrumentUndici(config = {}) {\n if (_channelSubs.length) {\n return;\n }\n subscribeToChannel(\"undici:request:create\", (message) => onRequestCreated(config, message));\n subscribeToChannel(\n \"undici:client:sendHeaders\",\n (message) => onRequestHeaders(config, message)\n );\n subscribeToChannel(\"undici:request:headers\", (message) => onResponseHeaders(config, message));\n subscribeToChannel(\"undici:request:trailers\", (message) => onDone(message));\n subscribeToChannel(\"undici:request:error\", (message) => onError(message));\n}\nfunction safeExecute(fn, onError2) {\n try {\n return fn();\n } catch (error) {\n onError2(error);\n return void 0;\n }\n}\nfunction subscribeToChannel(diagnosticChannel, onMessage) {\n const [major = 0, minor = 0] = process.version.replace(\"v\", \"\").split(\".\").map((n) => Number(n));\n const useNewSubscribe = major > 18 || major === 18 && minor >= 19;\n if (useNewSubscribe) {\n _channelSubs.push(diagch.subscribe?.(diagnosticChannel, onMessage));\n } else {\n _channelSubs.push(diagch.channel(diagnosticChannel).subscribe(onMessage));\n }\n}\nfunction parseRequestHeaders(request) {\n const result = /* @__PURE__ */ new Map();\n if (Array.isArray(request.headers)) {\n for (let i = 0; i < request.headers.length; i += 2) {\n const key = request.headers[i];\n const value = request.headers[i + 1];\n if (typeof key === \"string\" && value !== void 0) {\n result.set(key.toLowerCase(), value);\n }\n }\n } else if (typeof request.headers === \"string\") {\n const headers = request.headers.split(\"\\r\\n\");\n for (const line of headers) {\n if (!line) {\n continue;\n }\n const colonIndex = line.indexOf(\":\");\n if (colonIndex === -1) {\n continue;\n }\n const key = line.substring(0, colonIndex).toLowerCase();\n const value = line.substring(colonIndex + 1).trim();\n const allValues = result.get(key);\n if (allValues && Array.isArray(allValues)) {\n allValues.push(value);\n } else if (allValues) {\n result.set(key, [allValues, value]);\n } else {\n result.set(key, value);\n }\n }\n }\n return result;\n}\nfunction onRequestCreated(config, { request }) {\n const url = getAbsoluteUrl(request.origin, request.path);\n const shouldIgnoreReq = safeExecute(\n () => request.method === \"CONNECT\" || !!config.ignoreOutgoingRequests?.(url),\n (e) => e && DEBUG_BUILD && debug.error(\"caught ignoreOutgoingRequests error: \", e)\n );\n if (shouldIgnoreReq) {\n return;\n }\n let requestUrl;\n try {\n requestUrl = new URL(request.path, request.origin);\n } catch (err) {\n DEBUG_BUILD && debug.warn(\"could not determine url.full:\", err);\n return;\n }\n const urlScheme = requestUrl.protocol.replace(\":\", \"\");\n const requestMethod = getRequestMethod(request.method);\n const attributes = {\n [HTTP_REQUEST_METHOD]: requestMethod,\n [ATTR_HTTP_REQUEST_METHOD_ORIGINAL]: request.method,\n [URL_FULL]: requestUrl.toString(),\n [URL_PATH]: requestUrl.pathname,\n [URL_QUERY]: requestUrl.search,\n [URL_SCHEME]: urlScheme,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.node_fetch\"\n };\n if (url.startsWith(\"data:\")) {\n const sanitizedUrl = stripDataUrlContent(url);\n attributes[\"http.url\"] = sanitizedUrl;\n attributes[URL_FULL] = sanitizedUrl;\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME] = `${request.method || \"GET\"} ${sanitizedUrl}`;\n }\n const schemePorts = { https: \"443\", http: \"80\" };\n const serverAddress = requestUrl.hostname;\n const serverPort = requestUrl.port || schemePorts[urlScheme];\n attributes[SERVER_ADDRESS] = serverAddress;\n if (serverPort && !isNaN(Number(serverPort))) {\n attributes[SERVER_PORT] = Number(serverPort);\n }\n const headersMap = parseRequestHeaders(request);\n const userAgentValues = headersMap.get(\"user-agent\");\n if (userAgentValues) {\n const userAgent = Array.isArray(userAgentValues) ? userAgentValues[userAgentValues.length - 1] : userAgentValues;\n attributes[USER_AGENT_ORIGINAL] = userAgent;\n }\n const span = startInactiveSpan({\n name: requestMethod === \"_OTHER\" ? \"HTTP\" : requestMethod,\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n safeExecute(\n () => config.requestHook?.(span, request),\n (e) => e && DEBUG_BUILD && debug.error(\"caught requestHook error: \", e)\n );\n injectTracePropagationHeaders(span, request, requestUrl.toString());\n spanFromReq.set(request, span);\n}\nfunction onRequestHeaders(config, { request, socket }) {\n const span = spanFromReq.get(request);\n if (!span) {\n return;\n }\n const { remoteAddress, remotePort } = socket;\n const spanAttributes = {\n [NETWORK_PEER_ADDRESS]: remoteAddress,\n [NETWORK_PEER_PORT]: remotePort\n };\n if (config.headersToSpanAttributes?.requestHeaders) {\n const headersToAttribs = new Set(config.headersToSpanAttributes.requestHeaders.map((n) => n.toLowerCase()));\n const headersMap = parseRequestHeaders(request);\n for (const [name, value] of headersMap.entries()) {\n if (headersToAttribs.has(name)) {\n const attrValue = Array.isArray(value) ? value : [value];\n spanAttributes[`http.request.header.${name}`] = attrValue;\n }\n }\n }\n span.setAttributes(spanAttributes);\n}\nfunction onResponseHeaders(config, { request, response }) {\n const span = spanFromReq.get(request);\n if (!span) {\n return;\n }\n const spanAttributes = {\n [HTTP_RESPONSE_STATUS_CODE]: response.statusCode\n };\n safeExecute(\n () => config.responseHook?.(span, { request, response }),\n (e) => e && DEBUG_BUILD && debug.error(\"caught responseHook error: \", e)\n );\n if (config.headersToSpanAttributes?.responseHeaders) {\n const headersToAttribs = /* @__PURE__ */ new Set();\n config.headersToSpanAttributes?.responseHeaders.forEach((name) => headersToAttribs.add(name.toLowerCase()));\n for (let idx = 0; idx < response.headers.length; idx = idx + 2) {\n const nameBuf = response.headers[idx];\n const valueBuf = response.headers[idx + 1];\n if (nameBuf === void 0 || valueBuf === void 0) {\n continue;\n }\n const name = nameBuf.toString().toLowerCase();\n const value = valueBuf;\n if (headersToAttribs.has(name)) {\n const attrName = `http.response.header.${name}`;\n if (!Object.prototype.hasOwnProperty.call(spanAttributes, attrName)) {\n spanAttributes[attrName] = [value.toString()];\n } else {\n spanAttributes[attrName].push(value.toString());\n }\n }\n }\n }\n span.setAttributes(spanAttributes);\n if (response.statusCode >= 400) {\n span.setStatus({ code: SPAN_STATUS_ERROR });\n }\n}\nfunction onDone({ request }) {\n const span = spanFromReq.get(request);\n if (!span) {\n return;\n }\n span.end();\n spanFromReq.delete(request);\n}\nfunction onError({ request, error }) {\n const span = spanFromReq.get(request);\n if (!span) {\n return;\n }\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: error.message\n });\n span.end();\n spanFromReq.delete(request);\n}\nfunction injectTracePropagationHeaders(span, request, url) {\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() ?? {};\n if (!shouldPropagateTraceForUrl(url, tracePropagationTargets, propagationDecisionMap)) {\n return;\n }\n const addedHeaders = withActiveSpan(span, () => getTraceData({ propagateTraceparent }));\n for (const [k, v] of Object.entries(addedHeaders)) {\n if (!v) {\n continue;\n }\n if (typeof request.addHeader === \"function\") {\n request.addHeader(k, v);\n } else if (typeof request.headers === \"string\") {\n request.headers += `${k}: ${v}\\r\n`;\n } else if (Array.isArray(request.headers)) {\n request.headers.push(k, v);\n }\n }\n}\nfunction getRequestMethod(original) {\n const knownMethods = {\n CONNECT: true,\n OPTIONS: true,\n HEAD: true,\n GET: true,\n POST: true,\n PUT: true,\n PATCH: true,\n DELETE: true,\n TRACE: true,\n // QUERY from https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/\n QUERY: true\n };\n if (original.toUpperCase() in knownMethods) {\n return original.toUpperCase();\n }\n return \"_OTHER\";\n}\nfunction getAbsoluteUrl(origin, path = \"/\") {\n const url = `${origin}`;\n if (url.endsWith(\"/\") && path.startsWith(\"/\")) {\n return `${url}${path.slice(1)}`;\n }\n if (!url.endsWith(\"/\") && !path.startsWith(\"/\")) {\n return `${url}/${path}`;\n }\n return `${url}${path}`;\n}\n\nexport { instrumentUndici };\n//# sourceMappingURL=undici-instrumentation.js.map\n", + "const DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n", + "import { instrumentUndici } from './undici-instrumentation.js';\nimport { defineIntegration, getClient, hasSpansEnabled } from '@sentry/core';\nimport { generateInstrumentOnce, SentryNodeFetchInstrumentation } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"NodeFetch\";\nconst instrumentSentryNodeFetch = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n SentryNodeFetchInstrumentation,\n (options) => {\n return options;\n }\n);\nconst _nativeNodeFetchIntegration = ((options = {}) => {\n return {\n name: \"NodeFetch\",\n setupOnce() {\n const instrumentSpans = _shouldInstrumentSpans(options, getClient()?.getOptions());\n if (instrumentSpans) {\n instrumentUndici({\n ignoreOutgoingRequests: options.ignoreOutgoingRequests,\n requestHook: options.requestHook,\n responseHook: options.responseHook,\n headersToSpanAttributes: options.headersToSpanAttributes\n });\n }\n instrumentSentryNodeFetch(options);\n }\n };\n});\nconst nativeNodeFetchIntegration = defineIntegration(_nativeNodeFetchIntegration);\nfunction _shouldInstrumentSpans(options, clientOptions = {}) {\n return typeof options.spans === \"boolean\" ? options.spans : !clientOptions.skipOpenTelemetrySetup && hasSpansEnabled(clientOptions);\n}\n\nexport { nativeNodeFetchIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\nimport { SDK_VERSION, patchExpressModule, debug, defineIntegration, setupExpressErrorHandler as setupExpressErrorHandler$1 } from '@sentry/core';\nexport { expressErrorHandler } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\nimport { setHttpServerSpanRouteAttribute } from '../../utils/setHttpServerSpanRouteAttribute.js';\n\nconst INTEGRATION_NAME = \"Express\";\nconst SUPPORTED_VERSIONS = [\">=4.0.0 <6\"];\nfunction setupExpressErrorHandler(app, options) {\n setupExpressErrorHandler$1(app, options);\n ensureIsWrapped(app.use, \"express\");\n}\nconst instrumentExpress = generateInstrumentOnce(\n INTEGRATION_NAME,\n (options) => new ExpressInstrumentation(options)\n);\nclass ExpressInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"sentry-express\", SDK_VERSION, config);\n }\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n \"express\",\n SUPPORTED_VERSIONS,\n (express) => {\n try {\n patchExpressModule(express, () => ({\n ...this.getConfig(),\n onRouteResolved(route) {\n if (route) {\n setHttpServerSpanRouteAttribute(route);\n }\n }\n }));\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Failed to patch express module:\", e);\n }\n return express;\n },\n // we do not ever actually unpatch in our SDKs\n (express) => express\n );\n return module;\n }\n}\nconst _expressIntegration = ((options) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentExpress(options);\n }\n };\n});\nconst expressIntegration = defineIntegration(_expressIntegration);\n\nexport { ExpressInstrumentation, expressIntegration, instrumentExpress, setupExpressErrorHandler };\n//# sourceMappingURL=express.js.map\n", + "import { getActiveSpan, getRootSpan, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP } from '@sentry/core';\n\nfunction setHttpServerSpanRouteAttribute(route) {\n const activeSpan = getActiveSpan();\n if (!activeSpan) {\n return;\n }\n const rootSpan = getRootSpan(activeSpan);\n if (!rootSpan) {\n return;\n }\n if (spanToJSON(rootSpan).data[SEMANTIC_ATTRIBUTE_SENTRY_OP] !== \"http.server\") {\n return;\n }\n rootSpan.setAttribute(\"http.route\", route);\n}\n\nexport { setHttpServerSpanRouteAttribute };\n//# sourceMappingURL=setHttpServerSpanRouteAttribute.js.map\n", + "import { context, trace, SpanStatusCode } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\nimport { SEMATTRS_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport { SDK_VERSION, getIsolationScope, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getClient } from '@sentry/core';\nimport { setHttpServerSpanRouteAttribute } from '../../../../utils/setHttpServerSpanRouteAttribute.js';\nimport { FastifyNames, AttributeNames, FastifyTypes } from './enums/AttributeNames.js';\nimport { startSpan, endSpan, safeExecuteInTheMiddleMaybePromise } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-fastify-v3\";\nconst ANONYMOUS_NAME = \"anonymous\";\nconst hooksNamesToWrap = /* @__PURE__ */ new Set([\n \"onTimeout\",\n \"onRequest\",\n \"preParsing\",\n \"preValidation\",\n \"preSerialization\",\n \"preHandler\",\n \"onSend\",\n \"onResponse\",\n \"onError\"\n]);\nclass FastifyInstrumentationV3 extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\"fastify\", [\">=3.0.0 <3.21.0\"], (moduleExports) => {\n return this._patchConstructor(moduleExports);\n })\n ];\n }\n _hookOnRequest() {\n const instrumentation = this;\n return function onRequest(request, reply, done) {\n if (!instrumentation.isEnabled()) {\n return done();\n }\n instrumentation._wrap(reply, \"send\", instrumentation._patchSend());\n const anyRequest = request;\n const routeName = anyRequest.routeOptions ? anyRequest.routeOptions.url : request.routerPath;\n if (routeName) {\n setHttpServerSpanRouteAttribute(routeName);\n }\n const method = request.method || \"GET\";\n getIsolationScope().setTransactionName(`${method} ${routeName}`);\n done();\n };\n }\n _wrapHandler(pluginName, hookName, original, syncFunctionWithDone) {\n const instrumentation = this;\n this._diag.debug(\"Patching fastify route.handler function\");\n return function(...args) {\n if (!instrumentation.isEnabled()) {\n return original.apply(this, args);\n }\n const name = original.name || pluginName || ANONYMOUS_NAME;\n const spanName = `${FastifyNames.MIDDLEWARE} - ${name}`;\n const reply = args[1];\n const span = startSpan(reply, instrumentation.tracer, spanName, {\n [AttributeNames.FASTIFY_TYPE]: FastifyTypes.MIDDLEWARE,\n [AttributeNames.PLUGIN_NAME]: pluginName,\n [AttributeNames.HOOK_NAME]: hookName\n });\n const origDone = syncFunctionWithDone && args[args.length - 1];\n if (origDone) {\n args[args.length - 1] = function(...doneArgs) {\n endSpan(reply);\n origDone.apply(this, doneArgs);\n };\n }\n return context.with(trace.setSpan(context.active(), span), () => {\n return safeExecuteInTheMiddleMaybePromise(\n () => {\n return original.apply(this, args);\n },\n (err) => {\n if (err instanceof Error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: err.message\n });\n span.recordException(err);\n }\n if (!syncFunctionWithDone) {\n endSpan(reply);\n }\n }\n );\n });\n };\n }\n _wrapAddHook() {\n const instrumentation = this;\n this._diag.debug(\"Patching fastify server.addHook function\");\n return function(original) {\n return function wrappedAddHook(...args) {\n const name = args[0];\n const handler = args[1];\n const pluginName = this.pluginName;\n if (!hooksNamesToWrap.has(name)) {\n return original.apply(this, args);\n }\n const syncFunctionWithDone = typeof args[args.length - 1] === \"function\" && handler.constructor.name !== \"AsyncFunction\";\n return original.apply(this, [\n name,\n instrumentation._wrapHandler(pluginName, name, handler, syncFunctionWithDone)\n ]);\n };\n };\n }\n _patchConstructor(moduleExports) {\n const instrumentation = this;\n function fastify(...args) {\n const app = moduleExports.fastify.apply(this, args);\n app.addHook(\"onRequest\", instrumentation._hookOnRequest());\n app.addHook(\"preHandler\", instrumentation._hookPreHandler());\n instrumentClient();\n instrumentation._wrap(app, \"addHook\", instrumentation._wrapAddHook());\n return app;\n }\n if (moduleExports.errorCodes !== void 0) {\n fastify.errorCodes = moduleExports.errorCodes;\n }\n fastify.fastify = fastify;\n fastify.default = fastify;\n return fastify;\n }\n _patchSend() {\n const instrumentation = this;\n this._diag.debug(\"Patching fastify reply.send function\");\n return function patchSend(original) {\n return function send(...args) {\n const maybeError = args[0];\n if (!instrumentation.isEnabled()) {\n return original.apply(this, args);\n }\n return safeExecuteInTheMiddle(\n () => {\n return original.apply(this, args);\n },\n (err) => {\n if (!err && maybeError instanceof Error) {\n err = maybeError;\n }\n endSpan(this, err);\n }\n );\n };\n };\n }\n _hookPreHandler() {\n const instrumentation = this;\n this._diag.debug(\"Patching fastify preHandler function\");\n return function preHandler(request, reply, done) {\n if (!instrumentation.isEnabled()) {\n return done();\n }\n const anyRequest = request;\n const handler = anyRequest.routeOptions?.handler || anyRequest.context?.handler;\n const handlerName = handler?.name.startsWith(\"bound \") ? handler.name.substring(6) : handler?.name;\n const spanName = `${FastifyNames.REQUEST_HANDLER} - ${handlerName || this.pluginName || ANONYMOUS_NAME}`;\n const spanAttributes = {\n [AttributeNames.PLUGIN_NAME]: this.pluginName,\n [AttributeNames.FASTIFY_TYPE]: FastifyTypes.REQUEST_HANDLER,\n // eslint-disable-next-line typescript/no-deprecated\n [SEMATTRS_HTTP_ROUTE]: anyRequest.routeOptions ? anyRequest.routeOptions.url : request.routerPath\n };\n if (handlerName) {\n spanAttributes[AttributeNames.FASTIFY_NAME] = handlerName;\n }\n const span = startSpan(reply, instrumentation.tracer, spanName, spanAttributes);\n addFastifyV3SpanAttributes(span);\n const { requestHook } = instrumentation.getConfig();\n if (requestHook) {\n safeExecuteInTheMiddle(\n () => requestHook(span, { request }),\n (e) => {\n if (e) {\n instrumentation._diag.error(\"request hook failed\", e);\n }\n },\n true\n );\n }\n return context.with(trace.setSpan(context.active(), span), () => {\n done();\n });\n };\n }\n}\nfunction instrumentClient() {\n const client = getClient();\n if (client) {\n client.on(\"spanStart\", (span) => {\n addFastifyV3SpanAttributes(span);\n });\n }\n}\nfunction addFastifyV3SpanAttributes(span) {\n const attributes = spanToJSON(span).data;\n const type = attributes[\"fastify.type\"];\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n return;\n }\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.fastify\",\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.fastify`\n });\n const name = attributes[\"fastify.name\"] || attributes[\"plugin.name\"] || attributes[\"hook.name\"];\n if (typeof name === \"string\") {\n const updatedName = name.replace(/^fastify -> /, \"\").replace(/^@fastify\\/otel -> /, \"\");\n span.updateName(updatedName);\n }\n}\n\nexport { FastifyInstrumentationV3 };\n//# sourceMappingURL=instrumentation.js.map\n", + "var AttributeNames = /* @__PURE__ */ ((AttributeNames2) => {\n AttributeNames2[\"FASTIFY_NAME\"] = \"fastify.name\";\n AttributeNames2[\"FASTIFY_TYPE\"] = \"fastify.type\";\n AttributeNames2[\"HOOK_NAME\"] = \"hook.name\";\n AttributeNames2[\"PLUGIN_NAME\"] = \"plugin.name\";\n return AttributeNames2;\n})(AttributeNames || {});\nvar FastifyTypes = /* @__PURE__ */ ((FastifyTypes2) => {\n FastifyTypes2[\"MIDDLEWARE\"] = \"middleware\";\n FastifyTypes2[\"REQUEST_HANDLER\"] = \"request_handler\";\n return FastifyTypes2;\n})(FastifyTypes || {});\nvar FastifyNames = /* @__PURE__ */ ((FastifyNames2) => {\n FastifyNames2[\"MIDDLEWARE\"] = \"middleware\";\n FastifyNames2[\"REQUEST_HANDLER\"] = \"request handler\";\n return FastifyNames2;\n})(FastifyNames || {});\n\nexport { AttributeNames, FastifyNames, FastifyTypes };\n//# sourceMappingURL=AttributeNames.js.map\n", + "import { SpanStatusCode } from '@opentelemetry/api';\nimport { spanRequestSymbol } from './constants.js';\n\nfunction startSpan(reply, tracer, spanName, spanAttributes = {}) {\n const span = tracer.startSpan(spanName, { attributes: spanAttributes });\n const spans = reply[spanRequestSymbol] || [];\n spans.push(span);\n Object.defineProperty(reply, spanRequestSymbol, {\n enumerable: false,\n configurable: true,\n value: spans\n });\n return span;\n}\nfunction endSpan(reply, err) {\n const spans = reply[spanRequestSymbol] || [];\n if (!spans.length) {\n return;\n }\n spans.forEach((span) => {\n if (err) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: err.message\n });\n span.recordException(err);\n }\n span.end();\n });\n delete reply[spanRequestSymbol];\n}\nfunction safeExecuteInTheMiddleMaybePromise(execute, onFinish, preventThrowingError) {\n let error;\n let result = void 0;\n try {\n result = execute();\n if (isPromise(result)) {\n result.then(\n (res) => onFinish(void 0, res),\n (err) => onFinish(err)\n );\n }\n } catch (e) {\n error = e;\n } finally {\n if (!isPromise(result)) {\n onFinish(error, result);\n if (error && true) {\n throw error;\n }\n }\n return result;\n }\n}\nfunction isPromise(val) {\n return typeof val === \"object\" && val && typeof Object.getOwnPropertyDescriptor(val, \"then\")?.value === \"function\" || false;\n}\n\nexport { endSpan, safeExecuteInTheMiddleMaybePromise, startSpan };\n//# sourceMappingURL=utils.js.map\n", + "const spanRequestSymbol = /* @__PURE__ */ Symbol(\"opentelemetry.instrumentation.fastify.request_active_span\");\n\nexport { spanRequestSymbol };\n//# sourceMappingURL=constants.js.map\n", + "const DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n", + "import { getAsyncContextStrategy, getMainCarrier, debug, captureException, SPAN_STATUS_ERROR } from '@sentry/core';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { ERROR_TYPE } from '@sentry/conventions/attributes';\n\nconst NOOP = () => {\n};\nfunction bindTracingChannelToSpan(channel, getSpan, opts) {\n const handle = bindSpanToChannelStore(channel, getSpan);\n const beforeSpanEnd = opts?.beforeSpanEnd;\n const deferSpanEnd = opts?.deferSpanEnd;\n const getErrorHint = (e) => {\n if (typeof opts?.captureError === \"function\") {\n return opts.captureError(e);\n }\n return {\n mechanism: {\n type: \"auto.diagnostic_channels.bind_span\",\n handled: false\n }\n };\n };\n const annotateSpanError = (span, error) => {\n if (opts?.captureError) {\n captureException(error, getErrorHint(error));\n }\n const { message, attributes } = getErrorInfo(error);\n span.setStatus({ code: SPAN_STATUS_ERROR, message });\n span.setAttributes(attributes);\n };\n const makeDeferredEnd = (span, data) => {\n let ended = false;\n return (error) => {\n if (ended) {\n return;\n }\n ended = true;\n if (error !== void 0) {\n annotateSpanError(span, error);\n }\n endBoundSpan(data, beforeSpanEnd);\n };\n };\n const subscribers = {\n start: NOOP,\n asyncStart: NOOP,\n end(data) {\n if (\"error\" in data || \"result\" in data) {\n const span = data._sentrySpan;\n if (span && deferSpanEnd?.({ span, data, end: makeDeferredEnd(span, data) })) {\n return;\n }\n endBoundSpan(data, beforeSpanEnd);\n }\n },\n error(data) {\n const span = data._sentrySpan;\n if (!span) {\n return;\n }\n annotateSpanError(span, data.error);\n },\n asyncEnd(data) {\n const span = data._sentrySpan;\n if (span && deferSpanEnd?.({ span, data, end: makeDeferredEnd(span, data) })) {\n return;\n }\n endBoundSpan(data, beforeSpanEnd);\n }\n };\n handle.channel.subscribe(subscribers);\n return {\n channel: handle.channel,\n unbind: () => {\n handle.channel.unsubscribe(subscribers);\n handle.unbind();\n }\n };\n}\nfunction bindSpanToChannelStore(channel, getSpan) {\n const binding = getAsyncContextStrategy(getMainCarrier()).getTracingChannelBinding?.();\n if (!binding) {\n DEBUG_BUILD && debug.log(\"[TracingChannel] Could not access async context binding.\");\n return {\n channel,\n unbind: NOOP\n };\n }\n const asyncLocalStorage = binding.asyncLocalStorage;\n channel.start.bindStore(asyncLocalStorage, (data) => {\n data._sentryCallerStore = asyncLocalStorage.getStore();\n const span = getSpan(data);\n if (!span) {\n return data._sentryCallerStore;\n }\n data._sentrySpan = span;\n return binding.getStoreWithActiveSpan(span);\n });\n channel.asyncStart.bindStore(asyncLocalStorage, (data) => {\n return data._sentryCallerStore;\n });\n return {\n channel,\n unbind: () => {\n channel.start.unbindStore(asyncLocalStorage);\n channel.asyncStart.unbindStore(asyncLocalStorage);\n }\n };\n}\nfunction endBoundSpan(data, beforeSpanEnd) {\n const span = data._sentrySpan;\n if (!span) {\n return;\n }\n beforeSpanEnd?.(span, data);\n span.end();\n}\nfunction getErrorInfo(error) {\n const isObject = !!error && typeof error === \"object\";\n const raw = isObject ? \"message\" in error ? error.message : void 0 : error;\n const message = raw ? String(raw) : \"unknown_error\";\n const type = isObject && \"name\" in error ? String(error.name) : \"unknown\";\n return {\n message,\n attributes: {\n [ERROR_TYPE]: type\n }\n };\n}\n\nexport { bindTracingChannelToSpan };\n//# sourceMappingURL=tracing-channel.js.map\n", + "import { SERVER_PORT, SERVER_ADDRESS, DB_QUERY_TEXT, DB_SYSTEM_NAME, DB_OPERATION_BATCH_SIZE } from '@sentry/conventions/attributes';\nimport { debug, startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { bindTracingChannelToSpan } from '../tracing-channel.js';\n\nconst REDIS_DC_CHANNEL_COMMAND = \"node-redis:command\";\nconst REDIS_DC_CHANNEL_BATCH = \"node-redis:batch\";\nconst REDIS_DC_CHANNEL_CONNECT = \"node-redis:connect\";\nconst IOREDIS_DC_CHANNEL_COMMAND = \"ioredis:command\";\nconst IOREDIS_DC_CHANNEL_CONNECT = \"ioredis:connect\";\nconst ORIGIN = \"auto.db.redis.diagnostic_channel\";\nconst DB_SYSTEM_NAME_VALUE_REDIS = \"redis\";\nlet subscribed = false;\nlet currentResponseHook;\nlet activeUnbinds = [];\nfunction subscribeRedisDiagnosticChannels(tracingChannel, responseHook) {\n currentResponseHook = responseHook;\n if (subscribed) return;\n subscribed = true;\n try {\n activeUnbinds.push(\n setupCommandChannel(tracingChannel, REDIS_DC_CHANNEL_COMMAND, (data) => data.args.slice(1)),\n setupBatchChannel(\n tracingChannel,\n REDIS_DC_CHANNEL_BATCH,\n (data) => data.batchMode === \"PIPELINE\" ? \"PIPELINE\" : \"MULTI\"\n ),\n setupConnectChannel(tracingChannel, REDIS_DC_CHANNEL_CONNECT),\n // ioredis: args already exclude the command name; no slicing needed. And\n // ioredis has no separate batch channel — pipeline/MULTI metadata rides\n // on the per-command payload via `batchMode`/`batchSize`.\n setupCommandChannel(tracingChannel, IOREDIS_DC_CHANNEL_COMMAND, (data) => data.args),\n setupConnectChannel(tracingChannel, IOREDIS_DC_CHANNEL_CONNECT)\n );\n } catch {\n DEBUG_BUILD && debug.log(\"Redis node:diagnostics_channel subscription failed.\");\n }\n}\nfunction setupCommandChannel(tracingChannel, channelName, getCommandArgs) {\n return bindTracingChannelToSpan(\n tracingChannel(channelName),\n (data) => {\n const args = getCommandArgs(data);\n const statement = args.length ? `${data.command} ${args.join(\" \")}` : data.command;\n return startInactiveSpan({\n name: `redis-${data.command}`,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"db.redis\",\n [DB_SYSTEM_NAME]: DB_SYSTEM_NAME_VALUE_REDIS,\n [DB_QUERY_TEXT]: statement,\n ...data.serverAddress != null ? { [SERVER_ADDRESS]: data.serverAddress } : {},\n ...data.serverPort != null ? { [SERVER_PORT]: data.serverPort } : {}\n }\n });\n },\n {\n // Command failures are surfaced to (and usually handled by) the caller; only annotate the\n // span so we don't emit a duplicate error event for every failed command.\n captureError: false,\n beforeSpanEnd(span, data) {\n if (\"error\" in data) return;\n runResponseHook(span, data.command, getCommandArgs(data), data.result);\n }\n }\n ).unbind;\n}\nfunction setupBatchChannel(tracingChannel, channelName, getOperationName) {\n return bindTracingChannelToSpan(\n tracingChannel(channelName),\n (data) => {\n return startInactiveSpan({\n name: getOperationName(data),\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"db.redis\",\n [DB_SYSTEM_NAME]: DB_SYSTEM_NAME_VALUE_REDIS,\n // should only include batch size greater than 1,\n // or else it isn't properly considered a \"batch\"\n ...Number(data.batchSize) > 1 ? { [DB_OPERATION_BATCH_SIZE]: data.batchSize } : {},\n ...data.serverAddress != null ? { [SERVER_ADDRESS]: data.serverAddress } : {},\n ...data.serverPort != null ? { [SERVER_PORT]: data.serverPort } : {}\n }\n });\n },\n { captureError: false }\n ).unbind;\n}\nfunction setupConnectChannel(tracingChannel, channelName) {\n return bindTracingChannelToSpan(\n tracingChannel(channelName),\n (data) => {\n return startInactiveSpan({\n name: \"redis-connect\",\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: \"db.redis.connect\",\n [DB_SYSTEM_NAME]: DB_SYSTEM_NAME_VALUE_REDIS,\n ...data.serverAddress != null ? { [SERVER_ADDRESS]: data.serverAddress } : {},\n ...data.serverPort != null ? { [SERVER_PORT]: data.serverPort } : {}\n }\n });\n },\n { captureError: false }\n ).unbind;\n}\nfunction runResponseHook(span, command, args, result) {\n const hook = currentResponseHook;\n if (!hook) return;\n try {\n hook(span, command, args, result);\n } catch {\n }\n}\n\nexport { IOREDIS_DC_CHANNEL_COMMAND, IOREDIS_DC_CHANNEL_CONNECT, REDIS_DC_CHANNEL_BATCH, REDIS_DC_CHANNEL_COMMAND, REDIS_DC_CHANNEL_CONNECT, subscribeRedisDiagnosticChannels };\n//# sourceMappingURL=redis-dc-subscriber.js.map\n", + "const _=\"pageload\",E=\"navigation\",P=\"resource\",S=\"resource.script\",R=\"resource.link\",O=\"resource.img\",A=\"resource.css\",N=\"resource.other\",e=\"browser\",B=\"browser.paint\",I=\"ui\",W=\"ui.task\",i=\"ui.render\",r=\"ui.action\",T=\"ui.action.click\",t=\"ui.react\",c=\"ui.react.mount\",u=\"ui.react.render\",U=\"ui.react.update\",C=\"ui.vue\",n=\"ui.svelte\",o=\"ui.angular\",a=\"ui.ember\",V=\"ui.livewire\",s=\"db\",L=\"db.query\",p=\"cache\",l=\"http\",F=\"grpc\",G=\"function.gcp\",M=\"function.aws\",D=\"function.azure\",f=\"chat\",g=\"execute_tool\",h=\"handoff\",H=\"invoke_agent\",d=\"mark\",v=\"function\",b=\"app\",m=\"ui\",w=\"navigation\",k=\"file\",K=\"serialize\",x=\"http\",z=\"http\",X=\"http.client\",Z=\"http.server\",q=\"websocket\",Q=\"rpc\",j=\"grpc\",y=\"graphql\",J=\"subprocess\",Y=\"middleware\",$=\"view\",__=\"template\",E_=\"function\",P_=\"function.remix\",S_=\"function.nextjs\",R_=\"serialize\",O_=\"console\",A_=\"file\",N_=\"app\";export{B as BROWSER_BROWSER_PAINT_SPAN_OP,e as BROWSER_BROWSER_SPAN_OP,E as BROWSER_NAVIGATION_SPAN_OP,_ as BROWSER_PAGELOAD_SPAN_OP,A as BROWSER_RESOURCE_CSS_SPAN_OP,O as BROWSER_RESOURCE_IMG_SPAN_OP,R as BROWSER_RESOURCE_LINK_SPAN_OP,N as BROWSER_RESOURCE_OTHER_SPAN_OP,S as BROWSER_RESOURCE_SCRIPT_SPAN_OP,P as BROWSER_RESOURCE_SPAN_OP,T as BROWSER_UI_ACTION_CLICK_SPAN_OP,r as BROWSER_UI_ACTION_SPAN_OP,o as BROWSER_UI_ANGULAR_SPAN_OP,a as BROWSER_UI_EMBER_SPAN_OP,V as BROWSER_UI_LIVEWIRE_SPAN_OP,c as BROWSER_UI_REACT_MOUNT_SPAN_OP,u as BROWSER_UI_REACT_RENDER_SPAN_OP,t as BROWSER_UI_REACT_SPAN_OP,U as BROWSER_UI_REACT_UPDATE_SPAN_OP,i as BROWSER_UI_RENDER_SPAN_OP,I as BROWSER_UI_SPAN_OP,n as BROWSER_UI_SVELTE_SPAN_OP,W as BROWSER_UI_TASK_SPAN_OP,C as BROWSER_UI_VUE_SPAN_OP,p as DATABASE_CACHE_SPAN_OP,L as DATABASE_DB_QUERY_SPAN_OP,s as DATABASE_DB_SPAN_OP,M as FAAS_FUNCTION_AWS_SPAN_OP,D as FAAS_FUNCTION_AZURE_SPAN_OP,G as FAAS_FUNCTION_GCP_SPAN_OP,F as FAAS_GRPC_SPAN_OP,l as FAAS_HTTP_SPAN_OP,v as GENERAL_FUNCTION_SPAN_OP,d as GENERAL_MARK_SPAN_OP,f as GEN_AI_CHAT_SPAN_OP,g as GEN_AI_EXECUTE_TOOL_SPAN_OP,h as GEN_AI_HANDOFF_SPAN_OP,H as GEN_AI_INVOKE_AGENT_SPAN_OP,b as MOBILE_APP_SPAN_OP,k as MOBILE_FILE_SPAN_OP,x as MOBILE_HTTP_SPAN_OP,w as MOBILE_NAVIGATION_SPAN_OP,K as MOBILE_SERIALIZE_SPAN_OP,m as MOBILE_UI_SPAN_OP,N_ as WEB_SERVER_APP_SPAN_OP,O_ as WEB_SERVER_CONSOLE_SPAN_OP,A_ as WEB_SERVER_FILE_SPAN_OP,S_ as WEB_SERVER_FUNCTION_NEXTJS_SPAN_OP,P_ as WEB_SERVER_FUNCTION_REMIX_SPAN_OP,E_ as WEB_SERVER_FUNCTION_SPAN_OP,y as WEB_SERVER_GRAPHQL_SPAN_OP,j as WEB_SERVER_GRPC_SPAN_OP,X as WEB_SERVER_HTTP_CLIENT_SPAN_OP,Z as WEB_SERVER_HTTP_SERVER_SPAN_OP,z as WEB_SERVER_HTTP_SPAN_OP,Y as WEB_SERVER_MIDDLEWARE_SPAN_OP,Q as WEB_SERVER_RPC_SPAN_OP,R_ as WEB_SERVER_SERIALIZE_SPAN_OP,J as WEB_SERVER_SUBPROCESS_SPAN_OP,__ as WEB_SERVER_TEMPLATE_SPAN_OP,$ as WEB_SERVER_VIEW_SPAN_OP,q as WEB_SERVER_WEBSOCKET_SPAN_OP};\n//# sourceMappingURL=op.mjs.map\n", + "import { GEN_AI_EMBEDDINGS_INPUT, GEN_AI_OPERATION_NAME, GEN_AI_FUNCTION_ID, GEN_AI_RESPONSE_STREAMING, GEN_AI_REQUEST_AVAILABLE_TOOLS, GEN_AI_TOOL_INPUT, GEN_AI_TOOL_NAME, GEN_AI_TOOL_TYPE, GEN_AI_TOOL_OUTPUT, GEN_AI_USAGE_INPUT_TOKENS, GEN_AI_USAGE_OUTPUT_TOKENS, GEN_AI_USAGE_TOTAL_TOKENS, GEN_AI_RESPONSE_FINISH_REASONS, GEN_AI_RESPONSE_ID, GEN_AI_RESPONSE_MODEL, GEN_AI_OUTPUT_MESSAGES, GEN_AI_INPUT_MESSAGES, GEN_AI_REQUEST_MODEL, GEN_AI_SYSTEM } from '@sentry/conventions/attributes';\nimport { GEN_AI_INVOKE_AGENT_SPAN_OP, GEN_AI_EXECUTE_TOOL_SPAN_OP } from '@sentry/conventions/op';\nimport { startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getProviderMetadataAttributes, GEN_AI_CONVERSATION_ID_ATTRIBUTE, spanToJSON, SPAN_STATUS_ERROR, withScope, spanToTraceContext, captureException, getClient, shouldEnableTruncation, getTruncatedJsonString, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE } from '@sentry/core';\nimport { bindTracingChannelToSpan } from '../tracing-channel.js';\n\nconst AI_SDK_TELEMETRY_TRACING_CHANNEL = \"ai:telemetry\";\nconst ORIGIN = \"auto.vercelai.channel\";\nconst GEN_AI_TOOL_CALL_ID_ATTRIBUTE = \"gen_ai.tool.call.id\";\nconst GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE = \"gen_ai.tool.description\";\nconst GEN_AI_EMBEDDINGS_OPERATION = \"embeddings\";\nconst GEN_AI_RERANK_OPERATION = \"rerank\";\nconst GEN_AI_GENERATE_CONTENT_OPERATION = \"generate_content\";\nconst VERCEL_AI_OPERATION_ID_ATTRIBUTE = \"vercel.ai.operationId\";\nconst VERCEL_AI_MODEL_PROVIDER_ATTRIBUTE = \"vercel.ai.model.provider\";\nconst VERCEL_AI_SETTINGS_MAX_RETRIES_ATTRIBUTE = \"vercel.ai.settings.maxRetries\";\nconst operationIdByCallId = /* @__PURE__ */ new Map();\nconst toolDescriptionsByCallId = /* @__PURE__ */ new Map();\nconst ROOT_OPERATION_TYPES = /* @__PURE__ */ new Set([\"generateText\", \"streamText\", \"embed\", \"rerank\"]);\nfunction clearOperationId(data) {\n if (!ROOT_OPERATION_TYPES.has(data.type)) {\n return;\n }\n const callId = asString(data.event.callId);\n if (callId) {\n operationIdByCallId.delete(callId);\n toolDescriptionsByCallId.delete(callId);\n }\n}\nfunction recordToolDescriptions(callId, tools) {\n if (!callId || !Array.isArray(tools)) {\n return;\n }\n let descriptions = toolDescriptionsByCallId.get(callId);\n for (const tool of tools) {\n if (isRecord(tool) && typeof tool.name === \"string\" && typeof tool.description === \"string\") {\n descriptions = descriptions ?? /* @__PURE__ */ new Map();\n if (!descriptions.has(tool.name)) {\n descriptions.set(tool.name, tool.description);\n }\n }\n }\n if (descriptions) {\n toolDescriptionsByCallId.set(callId, descriptions);\n }\n}\nfunction resolveToolDescription(callId, toolName, tools) {\n const fromMap = callId ? toolDescriptionsByCallId.get(callId)?.get(toolName) : void 0;\n if (fromMap) {\n return fromMap;\n }\n if (Array.isArray(tools)) {\n const match = tools.find((tool) => isRecord(tool) && tool.name === toolName);\n return isRecord(match) ? asString(match.description) : void 0;\n }\n if (isRecord(tools)) {\n const tool = tools[toolName];\n return isRecord(tool) ? asString(tool.description) : void 0;\n }\n return void 0;\n}\nlet subscribed = false;\nfunction subscribeVercelAiTracingChannel(tracingChannel, options = {}) {\n if (subscribed) {\n return;\n }\n subscribed = true;\n bindTracingChannelToSpan(\n tracingChannel(AI_SDK_TELEMETRY_TRACING_CHANNEL),\n (data) => createSpanFromMessage(data, options),\n {\n // The helper ends the span; we enrich it from the settled result first (tokens, output messages,\n // finish reasons, response model/id, provider metadata) and drop the per-operation `callId` maps.\n beforeSpanEnd: (span, data) => {\n enrichSpanOnEnd(span, data, options);\n clearOperationId(data);\n }\n }\n );\n}\nfunction createSpanFromMessage(data, channelOptions) {\n const { type, event } = data;\n if (type === \"step\" || !event || typeof event !== \"object\") {\n return void 0;\n }\n const { recordInputs, enableTruncation } = getRecordingOptions(event, channelOptions);\n const provider = asString(event.provider);\n const modelId = asString(event.modelId);\n const callId = asString(event.callId);\n const maxRetries = asNumber(event.maxRetries);\n if (recordInputs) {\n recordToolDescriptions(callId, event.tools);\n }\n const baseAttributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n ...provider ? { [GEN_AI_SYSTEM]: provider, [VERCEL_AI_MODEL_PROVIDER_ATTRIBUTE]: provider } : {},\n ...modelId ? { [GEN_AI_REQUEST_MODEL]: modelId } : {},\n ...maxRetries !== void 0 ? { [VERCEL_AI_SETTINGS_MAX_RETRIES_ATTRIBUTE]: maxRetries } : {}\n };\n switch (type) {\n case \"generateText\":\n case \"streamText\":\n return buildInvokeAgentSpan(event, baseAttributes, recordInputs, enableTruncation, callId, type === \"streamText\");\n case \"languageModelCall\":\n return buildModelCallSpan(event, baseAttributes, recordInputs, enableTruncation, callId, modelId);\n case \"executeTool\":\n return buildToolSpan(event, recordInputs);\n case \"embed\":\n return startGenAiSpan(GEN_AI_EMBEDDINGS_OPERATION, modelId, {\n ...baseAttributes,\n ...recordInputs && event.value !== void 0 ? { [GEN_AI_EMBEDDINGS_INPUT]: safeStringify(event.value) } : {}\n });\n case \"rerank\":\n return startGenAiSpan(GEN_AI_RERANK_OPERATION, modelId, baseAttributes);\n default:\n return void 0;\n }\n}\nfunction startGenAiSpan(operation, suffix, attributes) {\n return startInactiveSpan({\n name: suffix ? `${operation} ${suffix}` : operation,\n op: `gen_ai.${operation}`,\n attributes: { [GEN_AI_OPERATION_NAME]: operation, ...attributes }\n });\n}\nfunction buildInvokeAgentSpan(event, baseAttributes, recordInputs, enableTruncation, callId, isStream) {\n const functionId = asString(event.functionId);\n const operationId = asString(event.operationId) ?? (isStream ? \"ai.streamText\" : \"ai.generateText\");\n if (callId) {\n operationIdByCallId.set(callId, { operationId, isStream });\n }\n return startGenAiSpan(GEN_AI_INVOKE_AGENT_SPAN_OP, functionId, {\n ...baseAttributes,\n [VERCEL_AI_OPERATION_ID_ATTRIBUTE]: operationId,\n [GEN_AI_RESPONSE_STREAMING]: isStream,\n ...functionId ? { [GEN_AI_FUNCTION_ID]: functionId } : {},\n ...recordInputs ? buildInputMessageAttributes(event, enableTruncation) : {}\n });\n}\nfunction buildModelCallSpan(event, baseAttributes, recordInputs, enableTruncation, callId, modelId) {\n const parent = callId ? operationIdByCallId.get(callId) : void 0;\n const operationId = parent ? `${parent.operationId}.${parent.isStream ? \"doStream\" : \"doGenerate\"}` : \"ai.generateText.doGenerate\";\n return startGenAiSpan(GEN_AI_GENERATE_CONTENT_OPERATION, modelId, {\n ...baseAttributes,\n [VERCEL_AI_OPERATION_ID_ATTRIBUTE]: operationId,\n ...recordInputs ? buildInputMessageAttributes(event, enableTruncation) : {},\n ...recordInputs && Array.isArray(event.tools) ? { [GEN_AI_REQUEST_AVAILABLE_TOOLS]: safeStringify(event.tools) } : {}\n });\n}\nfunction buildToolSpan(event, recordInputs) {\n const toolCall = isRecord(event.toolCall) ? event.toolCall : {};\n const toolName = asString(toolCall.toolName);\n const toolCallId = asString(event.toolCallId) ?? asString(toolCall.toolCallId);\n const toolInput = toolCall.input ?? toolCall.args;\n const description = recordInputs && toolName ? resolveToolDescription(asString(event.callId), toolName, event.tools) : void 0;\n return startGenAiSpan(GEN_AI_EXECUTE_TOOL_SPAN_OP, toolName, {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [GEN_AI_TOOL_TYPE]: \"function\",\n ...toolName ? { [GEN_AI_TOOL_NAME]: toolName } : {},\n ...toolCallId ? { [GEN_AI_TOOL_CALL_ID_ATTRIBUTE]: toolCallId } : {},\n ...description ? { [GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE]: description } : {},\n ...recordInputs && toolInput !== void 0 ? { [GEN_AI_TOOL_INPUT]: safeStringify(toolInput) } : {}\n });\n}\nfunction enrichSpanOnEnd(span, data, channelOptions) {\n const { type, result } = data;\n if (!isRecord(result)) {\n return;\n }\n const { recordOutputs } = getRecordingOptions(data.event, channelOptions);\n if (type === \"executeTool\") {\n if (recordOutputs) {\n span.setAttribute(GEN_AI_TOOL_OUTPUT, safeStringify(result.output ?? result));\n }\n const output = isRecord(result.output) ? result.output : void 0;\n if (output?.type === \"tool-error\") {\n captureToolError(span, data, output.error);\n }\n return;\n }\n const usage = isRecord(result.usage) ? result.usage : void 0;\n if (usage) {\n const inputTokens = tokenCount(usage.inputTokens) ?? tokenCount(usage.tokens);\n const outputTokens = tokenCount(usage.outputTokens);\n const totalTokens = tokenCount(usage.totalTokens) ?? sum(inputTokens, outputTokens);\n if (inputTokens !== void 0) {\n span.setAttribute(GEN_AI_USAGE_INPUT_TOKENS, inputTokens);\n }\n if (outputTokens !== void 0) {\n span.setAttribute(GEN_AI_USAGE_OUTPUT_TOKENS, outputTokens);\n }\n if (totalTokens !== void 0) {\n span.setAttribute(GEN_AI_USAGE_TOTAL_TOKENS, totalTokens);\n }\n }\n const finishReason = getFinishReason(result);\n if (finishReason && type === \"languageModelCall\") {\n span.setAttribute(GEN_AI_RESPONSE_FINISH_REASONS, safeStringify([finishReason]));\n }\n const response = isRecord(result.response) ? result.response : void 0;\n const responseId = asString(response?.id) ?? asString(result.responseId);\n if (responseId) {\n span.setAttribute(GEN_AI_RESPONSE_ID, responseId);\n }\n const responseModel = asString(response?.modelId) ?? asString(data.event.modelId);\n if (responseModel) {\n span.setAttribute(GEN_AI_RESPONSE_MODEL, responseModel);\n }\n const providerMetadata = result.providerMetadata;\n const providerAttributes = getProviderMetadataAttributes(providerMetadata);\n if (GEN_AI_CONVERSATION_ID_ATTRIBUTE in providerAttributes && spanToJSON(span).data[GEN_AI_CONVERSATION_ID_ATTRIBUTE]) {\n delete providerAttributes[GEN_AI_CONVERSATION_ID_ATTRIBUTE];\n }\n span.setAttributes(providerAttributes);\n if (recordOutputs) {\n const parts = type === \"languageModelCall\" && Array.isArray(result.content) ? partsFromContent(result.content) : partsFromTextAndToolCalls(result.text, result.toolCalls);\n const outputMessages = buildOutputMessages(parts, finishReason);\n if (outputMessages) {\n span.setAttribute(GEN_AI_OUTPUT_MESSAGES, outputMessages);\n }\n }\n}\nfunction normalizeFinishReason(finishReason) {\n return finishReason === \"tool-calls\" ? \"tool_call\" : finishReason ?? \"stop\";\n}\nfunction getFinishReason(result) {\n const finishReason = result.finishReason;\n if (typeof finishReason === \"string\") {\n return finishReason;\n }\n return isRecord(finishReason) ? asString(finishReason.unified) : void 0;\n}\nfunction tokenCount(value) {\n return asNumber(value) ?? (isRecord(value) ? asNumber(value.total) : void 0);\n}\nfunction buildOutputMessages(parts, finishReason) {\n if (!parts.length) {\n return void 0;\n }\n return safeStringify([{ role: \"assistant\", parts, finish_reason: normalizeFinishReason(finishReason) }]);\n}\nfunction toolCallPart(toolCall) {\n const args = toolCall.input ?? toolCall.args;\n return {\n type: \"tool_call\",\n id: asString(toolCall.toolCallId),\n name: asString(toolCall.toolName),\n arguments: typeof args === \"string\" ? args : safeStringify(args ?? {})\n };\n}\nfunction partsFromContent(content) {\n const parts = [];\n for (const item of content) {\n if (!isRecord(item)) {\n continue;\n }\n if (item.type === \"text\" && typeof item.text === \"string\") {\n parts.push({ type: \"text\", content: item.text });\n } else if (item.type === \"tool-call\") {\n parts.push(toolCallPart(item));\n }\n }\n return parts;\n}\nfunction partsFromTextAndToolCalls(text, toolCalls) {\n const parts = [];\n if (typeof text === \"string\" && text.length) {\n parts.push({ type: \"text\", content: text });\n }\n if (Array.isArray(toolCalls)) {\n for (const toolCall of toolCalls) {\n if (isRecord(toolCall)) {\n parts.push(toolCallPart(toolCall));\n }\n }\n }\n return parts;\n}\nfunction captureToolError(span, data, error) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: error instanceof Error ? error.message : \"tool_error\"\n });\n const toolCall = isRecord(data.event.toolCall) ? data.event.toolCall : {};\n const toolName = asString(toolCall.toolName);\n const toolCallId = asString(data.event.toolCallId) ?? asString(toolCall.toolCallId);\n withScope((scope) => {\n scope.setContext(\"trace\", spanToTraceContext(span));\n if (toolName) {\n scope.setTag(\"vercel.ai.tool.name\", toolName);\n }\n if (toolCallId) {\n scope.setTag(\"vercel.ai.tool.callId\", toolCallId);\n }\n scope.setLevel(\"error\");\n captureException(\n error instanceof Error ? error : new Error(typeof error === \"string\" ? error : \"Tool execution failed\"),\n {\n mechanism: { type: \"auto.vercelai.channel\", handled: false }\n }\n );\n });\n}\nfunction getRecordingOptions(event, channelOptions) {\n const genAI = getClient()?.getDataCollectionOptions().genAI;\n return {\n recordInputs: resolveRecording(channelOptions.recordInputs, event.recordInputs, genAI?.inputs),\n recordOutputs: resolveRecording(channelOptions.recordOutputs, event.recordOutputs, genAI?.outputs),\n enableTruncation: shouldEnableTruncation(channelOptions.enableTruncation)\n };\n}\nfunction resolveRecording(integrationOption, perCallOption, globalDefault) {\n if (typeof integrationOption === \"boolean\") {\n return integrationOption;\n }\n if (typeof perCallOption === \"boolean\") {\n return perCallOption;\n }\n return globalDefault === true;\n}\nfunction buildInputMessageAttributes(event, enableTruncation) {\n const attributes = {};\n const instructions = asString(event.instructions);\n if (instructions) {\n attributes[GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE] = safeStringify([{ type: \"text\", content: instructions }]);\n }\n const messages = event.messages ?? event.prompt;\n if (messages !== void 0) {\n attributes[GEN_AI_INPUT_MESSAGES] = enableTruncation ? getTruncatedJsonString(messages) : safeStringify(messages);\n attributes[GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE] = Array.isArray(messages) ? messages.length : 1;\n }\n return attributes;\n}\nfunction asString(value) {\n return typeof value === \"string\" ? value : void 0;\n}\nfunction asNumber(value) {\n return typeof value === \"number\" && !isNaN(value) ? value : void 0;\n}\nfunction sum(a, b) {\n return a === void 0 && b === void 0 ? void 0 : (a ?? 0) + (b ?? 0);\n}\nfunction isRecord(value) {\n return typeof value === \"object\" && value !== null;\n}\nfunction safeStringify(value) {\n if (typeof value === \"string\") {\n return value;\n }\n try {\n return JSON.stringify(value);\n } catch {\n return \"[unserializable]\";\n }\n}\n\nexport { clearOperationId, createSpanFromMessage, enrichSpanOnEnd, subscribeVercelAiTracingChannel };\n//# sourceMappingURL=vercel-ai-dc-subscriber.js.map\n", + "import { defineIntegration, waitForTracingChannelBinding } from '@sentry/core';\nimport { subscribeVercelAiTracingChannel } from './vercel-ai-dc-subscriber.js';\nimport * as diagnosticsChannel from 'node:diagnostics_channel';\n\nconst _vercelAiIntegration = ((options = {}) => {\n return {\n name: \"VercelAI\",\n setupOnce() {\n if (!diagnosticsChannel.tracingChannel) {\n return;\n }\n waitForTracingChannelBinding(() => {\n subscribeVercelAiTracingChannel(diagnosticsChannel.tracingChannel, options);\n });\n }\n };\n});\nconst vercelAiIntegration = defineIntegration(_vercelAiIntegration);\n\nexport { vercelAiIntegration };\n//# sourceMappingURL=index.js.map\n", + "import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport { HTTP_ROUTE, URL_PATH, HTTP_REQUEST_METHOD, HTTP_RESPONSE_STATUS_CODE } from '@sentry/conventions/attributes';\nimport { debug, getIsolationScope, getActiveSpan, getRootSpan, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, startInactiveSpan, withActiveSpan, startSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../../debug-build.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-fastify\";\nconst SUPPORTED_VERSIONS = \">=3.21.0 <6\";\nconst ORIGIN = \"auto.http.otel.fastify\";\nconst HOOK_OP = \"hook.fastify\";\nconst REQUEST_HANDLER_OP = \"request_handler.fastify\";\nconst FASTIFY_HOOKS = [\n \"onRequest\",\n \"preParsing\",\n \"preValidation\",\n \"preHandler\",\n \"preSerialization\",\n \"onSend\",\n \"onResponse\",\n \"onError\"\n];\nconst ATTRIBUTE_HOOK_NAME = \"hook.name\";\nconst ATTRIBUTE_FASTIFY_TYPE = \"fastify.type\";\nconst ATTRIBUTE_HOOK_CALLBACK_NAME = \"hook.callback.name\";\nconst ATTRIBUTE_FASTIFY_ROOT = \"fastify.root\";\nconst HOOK_TYPE_ROUTE = \"route-hook\";\nconst HOOK_TYPE_INSTANCE = \"hook\";\nconst HOOK_TYPE_HANDLER = \"request-handler\";\nconst ANONYMOUS_FUNCTION_NAME = \"anonymous\";\nconst kRequestSpan = /* @__PURE__ */ Symbol(\"sentry fastify request span\");\nconst kAddHookOriginal = /* @__PURE__ */ Symbol(\"sentry fastify addHook original\");\nconst kSetNotFoundOriginal = /* @__PURE__ */ Symbol(\"sentry fastify setNotFoundHandler original\");\nfunction getRequestRouteUrl(request) {\n return request.routeOptions?.url ?? request.routerPath;\n}\nfunction getRequestRouteConfig(request) {\n return request.routeOptions?.config ?? request.routeConfig;\n}\nfunction isFastifyRequest(arg) {\n return !!arg && typeof arg === \"object\" && !!arg.method && !!arg.url && (!!arg.routeOptions || \"routerPath\" in arg);\n}\nfunction fastifyOtelPlugin(instance, _opts, done) {\n instance.decorate(kAddHookOriginal, instance.addHook);\n instance.decorate(kSetNotFoundOriginal, instance.setNotFoundHandler);\n instance.decorateRequest(\"opentelemetry\", function opentelemetry() {\n return { span: this[kRequestSpan] };\n });\n instance.decorateRequest(kRequestSpan, null);\n instance.addHook(\"onRoute\", otelWireRoute);\n instance.addHook(\"onRequest\", startRequestSpanHook);\n instance.addHook(\"onResponse\", finalizeNotFoundSpanHook);\n instance.addHook = addHookPatched;\n instance.setNotFoundHandler = setNotFoundHandlerPatched;\n done();\n}\nconst pluginSymbols = fastifyOtelPlugin;\npluginSymbols[/* @__PURE__ */ Symbol.for(\"skip-override\")] = true;\npluginSymbols[/* @__PURE__ */ Symbol.for(\"fastify.display-name\")] = PACKAGE_NAME;\npluginSymbols[/* @__PURE__ */ Symbol.for(\"plugin-meta\")] = {\n fastify: SUPPORTED_VERSIONS,\n name: PACKAGE_NAME\n};\nfunction otelWireRoute(routeOptions) {\n if (routeOptions.config?.otel === false) {\n return;\n }\n for (const hook of FASTIFY_HOOKS) {\n const handlerLike = routeOptions[hook];\n if (typeof handlerLike === \"function\") {\n routeOptions[hook] = handlerWrapper(\n handlerLike,\n hook,\n routeHookAttributes(this.pluginName, hook, handlerLike, routeOptions.url)\n );\n } else if (Array.isArray(handlerLike)) {\n routeOptions[hook] = handlerLike.map(\n (handler) => handlerWrapper(handler, hook, routeHookAttributes(this.pluginName, hook, handler, routeOptions.url))\n );\n }\n }\n routeOptions.onSend = appendRouteHook(routeOptions.onSend, finalizeResponseSpanHook);\n routeOptions.onError = appendRouteHook(routeOptions.onError, recordErrorInSpanHook);\n routeOptions.handler = handlerWrapper(routeOptions.handler, \"handler\", {\n [ATTRIBUTE_HOOK_NAME]: `${this.pluginName} - route-handler`,\n [ATTRIBUTE_FASTIFY_TYPE]: HOOK_TYPE_HANDLER,\n [HTTP_ROUTE]: routeOptions.url,\n [ATTRIBUTE_HOOK_CALLBACK_NAME]: routeOptions.handler.name.length > 0 ? routeOptions.handler.name : ANONYMOUS_FUNCTION_NAME\n });\n}\nfunction routeHookAttributes(pluginName, hook, handler, url) {\n return {\n [ATTRIBUTE_HOOK_NAME]: `${pluginName} - route -> ${hook}`,\n [ATTRIBUTE_FASTIFY_TYPE]: HOOK_TYPE_ROUTE,\n [HTTP_ROUTE]: url,\n [ATTRIBUTE_HOOK_CALLBACK_NAME]: handler.name?.length > 0 ? handler.name : ANONYMOUS_FUNCTION_NAME\n };\n}\nfunction appendRouteHook(existing, hook) {\n if (existing == null) {\n return hook;\n }\n return Array.isArray(existing) ? [...existing, hook] : [existing, hook];\n}\nfunction startRequestSpanHook(request, _reply, hookDone) {\n if (getRequestRouteConfig(request)?.otel === false) {\n return hookDone();\n }\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [ATTRIBUTE_FASTIFY_ROOT]: PACKAGE_NAME,\n [HTTP_REQUEST_METHOD]: request.method,\n [URL_PATH]: request.url\n };\n const route = getRequestRouteUrl(request);\n if (route != null) {\n attributes[HTTP_ROUTE] = route;\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n if (rootSpan && spanToJSON(rootSpan).data[SEMANTIC_ATTRIBUTE_SENTRY_OP] === \"http.server\") {\n rootSpan.setAttribute(HTTP_ROUTE, route);\n }\n }\n const requestSpan = startInactiveSpan({ name: \"request\", op: REQUEST_HANDLER_OP, attributes });\n request[kRequestSpan] = requestSpan;\n withActiveSpan(requestSpan, () => {\n hookDone();\n });\n}\nfunction finalizeNotFoundSpanHook(request, reply, hookDone) {\n const span = request[kRequestSpan];\n if (span != null) {\n span.setAttributes({ [HTTP_RESPONSE_STATUS_CODE]: reply.statusCode });\n span.end();\n }\n request[kRequestSpan] = null;\n hookDone();\n}\nfunction finalizeResponseSpanHook(request, reply, payload, hookDone) {\n const span = request[kRequestSpan];\n if (span != null) {\n if (reply.statusCode >= 500) {\n span.setStatus({ code: SPAN_STATUS_ERROR });\n }\n span.setAttributes({ [HTTP_RESPONSE_STATUS_CODE]: reply.statusCode });\n span.end();\n }\n request[kRequestSpan] = null;\n hookDone(null, payload);\n}\nfunction recordErrorInSpanHook(request, _reply, error, hookDone) {\n const span = request[kRequestSpan];\n if (span != null) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: error.message });\n }\n hookDone();\n}\nfunction addHookPatched(name, hook) {\n const addHookOriginal = this[kAddHookOriginal];\n if (FASTIFY_HOOKS.includes(name)) {\n return addHookOriginal.call(\n this,\n name,\n handlerWrapper(hook, name, {\n [ATTRIBUTE_HOOK_NAME]: `${this.pluginName} - ${name}`,\n [ATTRIBUTE_FASTIFY_TYPE]: HOOK_TYPE_INSTANCE,\n [ATTRIBUTE_HOOK_CALLBACK_NAME]: hook.name?.length > 0 ? hook.name : ANONYMOUS_FUNCTION_NAME\n })\n );\n }\n return addHookOriginal.call(this, name, hook);\n}\nfunction setNotFoundHandlerPatched(hooks, handler) {\n const setNotFoundHandlerOriginal = this[kSetNotFoundOriginal];\n if (typeof hooks === \"function\") {\n setNotFoundHandlerOriginal.call(\n this,\n handlerWrapper(hooks, \"notFoundHandler\", {\n [ATTRIBUTE_HOOK_NAME]: `${this.pluginName} - not-found-handler`,\n [ATTRIBUTE_FASTIFY_TYPE]: HOOK_TYPE_INSTANCE,\n [ATTRIBUTE_HOOK_CALLBACK_NAME]: hooks.name?.length > 0 ? hooks.name : ANONYMOUS_FUNCTION_NAME\n })\n );\n return;\n }\n if (hooks.preValidation != null) {\n hooks.preValidation = handlerWrapper(hooks.preValidation, \"notFoundHandler - preValidation\", {\n [ATTRIBUTE_HOOK_NAME]: `${this.pluginName} - not-found-handler - preValidation`,\n [ATTRIBUTE_FASTIFY_TYPE]: HOOK_TYPE_INSTANCE,\n [ATTRIBUTE_HOOK_CALLBACK_NAME]: hooks.preValidation.name?.length > 0 ? hooks.preValidation.name : ANONYMOUS_FUNCTION_NAME\n });\n }\n if (hooks.preHandler != null) {\n hooks.preHandler = handlerWrapper(hooks.preHandler, \"notFoundHandler - preHandler\", {\n [ATTRIBUTE_HOOK_NAME]: `${this.pluginName} - not-found-handler - preHandler`,\n [ATTRIBUTE_FASTIFY_TYPE]: HOOK_TYPE_INSTANCE,\n [ATTRIBUTE_HOOK_CALLBACK_NAME]: hooks.preHandler.name?.length > 0 ? hooks.preHandler.name : ANONYMOUS_FUNCTION_NAME\n });\n }\n if (handler == null) {\n setNotFoundHandlerOriginal.call(this, hooks);\n return;\n }\n setNotFoundHandlerOriginal.call(\n this,\n hooks,\n handlerWrapper(handler, \"notFoundHandler\", {\n [ATTRIBUTE_HOOK_NAME]: `${this.pluginName} - not-found-handler`,\n [ATTRIBUTE_FASTIFY_TYPE]: HOOK_TYPE_INSTANCE,\n [ATTRIBUTE_HOOK_CALLBACK_NAME]: handler.name?.length > 0 ? handler.name : ANONYMOUS_FUNCTION_NAME\n })\n );\n}\nfunction getRequestFromArgs(args) {\n for (const arg of args) {\n if (isFastifyRequest(arg)) {\n return arg;\n }\n }\n return null;\n}\nfunction handlerWrapper(handler, hookName, spanAttributes = {}) {\n return function handlerWrapped(...args) {\n const request = getRequestFromArgs(args);\n if (request === null || getRequestRouteConfig(request)?.otel === false) {\n return handler.call(this, ...args);\n }\n const parentSpan = request[kRequestSpan] ?? void 0;\n const handlerName = handler.name?.length > 0 ? handler.name : this.pluginName ?? ANONYMOUS_FUNCTION_NAME;\n const hookType = spanAttributes[ATTRIBUTE_FASTIFY_TYPE];\n const op = hookType === HOOK_TYPE_INSTANCE ? HOOK_OP : hookType === HOOK_TYPE_HANDLER ? REQUEST_HANDLER_OP : void 0;\n const name = op ? stripFastifyPrefix(spanAttributes[ATTRIBUTE_HOOK_NAME]) : `${hookName} - ${handlerName}`;\n return startSpan(\n {\n name,\n op,\n attributes: {\n ...spanAttributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n },\n parentSpan\n },\n () => handler.call(this, ...args)\n );\n };\n}\nfunction stripFastifyPrefix(hookName = \"\") {\n return hookName.replace(/^fastify -> /, \"\").replace(/^@fastify\\/otel -> /, \"\").replace(/^@sentry\\/instrumentation-fastify -> /, \"\");\n}\nfunction instrumentOnRequest(fastify) {\n fastify.addHook(\"onRequest\", async (request, _reply) => {\n const routeName = getRequestRouteUrl(request);\n const method = request.method || \"GET\";\n getIsolationScope().setTransactionName(`${method} ${routeName}`);\n });\n}\nlet _isInstrumented = false;\nconst instrumentFastify = Object.assign(\n function instrumentFastify2() {\n if (_isInstrumented) {\n return;\n }\n _isInstrumented = true;\n diagnosticsChannel.subscribe(\"fastify.initialization\", (message) => {\n const fastifyInstance = message.fastify;\n fastifyInstance?.register(fastifyOtelPlugin).after((err) => {\n if (err) {\n DEBUG_BUILD && debug.error(\"Failed to setup Fastify instrumentation\", err);\n } else if (fastifyInstance) {\n instrumentOnRequest(fastifyInstance);\n }\n });\n });\n },\n { id: \"Fastify.v5\" }\n);\n\nexport { instrumentFastify };\n//# sourceMappingURL=instrumentation.js.map\n", + "const INTEGRATION_NAME = \"Fastify\";\nfunction defaultShouldHandleError(_error, _request, reply) {\n const statusCode = reply.statusCode;\n return statusCode >= 500 || statusCode <= 299;\n}\n\nexport { INTEGRATION_NAME, defaultShouldHandleError };\n//# sourceMappingURL=utils.js.map\n", + "import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport { DEBUG_BUILD } from '../../../debug-build.js';\nimport { debug, captureException, getClient } from '@sentry/core';\nimport { defaultShouldHandleError, INTEGRATION_NAME } from './utils.js';\n\nfunction getFastifyIntegration() {\n const client = getClient();\n return client?.getIntegrationByName(INTEGRATION_NAME);\n}\nfunction subscribeToFastifyErrorChannel() {\n diagnosticsChannel.subscribe(\"tracing:fastify.request.handler:error\", (message) => {\n const { error, request, reply } = message;\n handleFastifyError.call(handleFastifyError, error, request, reply, \"diagnostics-channel\");\n });\n}\nfunction handleFastifyError(error, request, reply, handlerOrigin) {\n const shouldHandleError = getFastifyIntegration()?.getShouldHandleError() || defaultShouldHandleError;\n if (handlerOrigin === \"diagnostics-channel\") {\n this.diagnosticsChannelExists = true;\n }\n if (this.diagnosticsChannelExists && handlerOrigin === \"onError-hook\") {\n DEBUG_BUILD && debug.warn(\n \"Fastify error handler was already registered via diagnostics channel.\",\n \"You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.\"\n );\n return;\n }\n if (shouldHandleError(error, request, reply)) {\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.function.fastify\"\n }\n });\n }\n}\n\nexport { handleFastifyError, subscribeToFastifyErrorChannel };\n//# sourceMappingURL=errors.js.map\n", + "import { defineIntegration } from '@sentry/core';\nimport { instrumentFastify as instrumentFastify$1 } from './instrumentation.js';\nimport { INTEGRATION_NAME, defaultShouldHandleError } from './utils.js';\nimport { subscribeToFastifyErrorChannel, handleFastifyError as handleFastifyError$1 } from './errors.js';\n\nconst _fastifyIntegration = (({ shouldHandleError }) => {\n let _shouldHandleError;\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n _shouldHandleError = shouldHandleError || defaultShouldHandleError;\n subscribeToFastifyErrorChannel();\n instrumentFastify$1();\n },\n getShouldHandleError() {\n return _shouldHandleError;\n },\n setShouldHandleError(shouldHandleError2) {\n _shouldHandleError = shouldHandleError2;\n }\n };\n});\nconst fastifyIntegration = defineIntegration(\n (options = {}) => _fastifyIntegration(options)\n);\nconst instrumentFastify = instrumentFastify$1;\nconst handleFastifyError = handleFastifyError$1;\n\nexport { fastifyIntegration, handleFastifyError, instrumentFastify };\n//# sourceMappingURL=index.js.map\n", + "import { defineIntegration, extendIntegration, getClient } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { FastifyInstrumentationV3 } from './v3/instrumentation.js';\nimport { fastifyIntegration as fastifyIntegration$1, handleFastifyError } from '@sentry/server-utils';\nexport { instrumentFastify } from '@sentry/server-utils';\n\nconst INTEGRATION_NAME = \"Fastify\";\nconst instrumentFastifyV3 = generateInstrumentOnce(\n `${INTEGRATION_NAME}.v3`,\n () => new FastifyInstrumentationV3()\n);\nfunction getFastifyIntegration() {\n const client = getClient();\n if (!client) {\n return void 0;\n } else {\n return client.getIntegrationByName(INTEGRATION_NAME);\n }\n}\nconst _fastifyIntegration = ((options) => {\n const parentIntegration = fastifyIntegration$1(options);\n return extendIntegration(parentIntegration, {\n setupOnce() {\n instrumentFastifyV3();\n }\n });\n});\nconst fastifyIntegration = defineIntegration(\n (options = {}) => _fastifyIntegration(options)\n);\nfunction setupFastifyErrorHandler(fastify, options) {\n if (options?.shouldHandleError) {\n getFastifyIntegration()?.setShouldHandleError(options.shouldHandleError);\n }\n const plugin = Object.assign(\n function(fastify2, _options, done) {\n fastify2.addHook(\"onError\", async (request, reply, error) => {\n handleFastifyError.call(handleFastifyError, error, request, reply, \"onError-hook\");\n });\n done();\n },\n {\n [/* @__PURE__ */ Symbol.for(\"skip-override\")]: true,\n [/* @__PURE__ */ Symbol.for(\"fastify.display-name\")]: \"sentry-fastify-error-handler\"\n }\n );\n fastify.register(plugin);\n}\n\nexport { fastifyIntegration, instrumentFastifyV3, setupFastifyErrorHandler };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped, safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile.js';\nimport { SpanNames } from './enum.js';\nimport { AttributeNames } from './enums/AttributeNames.js';\nimport { OTEL_GRAPHQL_DATA_SYMBOL } from './symbols.js';\nimport { OPERATION_NOT_SUPPORTED } from './internal-types.js';\nimport { getOperation, endSpan, isPromise, addSpanSource, wrapFieldResolver, wrapFields } from './utils.js';\nimport { SDK_VERSION, withActiveSpan, spanToJSON, SPAN_STATUS_ERROR, getRootSpan, startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION } from '@sentry/opentelemetry';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-graphql\";\nconst ORIGIN = \"auto.graphql.otel.graphql\";\nconst DEFAULT_CONFIG = {\n ignoreResolveSpans: false\n};\nconst supportedVersions = [\">=14.0.0 <17\"];\nclass GraphQLInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, { ...DEFAULT_CONFIG, ...config });\n }\n setConfig(config = {}) {\n super.setConfig({ ...DEFAULT_CONFIG, ...config });\n }\n init() {\n const module = new InstrumentationNodeModuleDefinition(\"graphql\", supportedVersions);\n module.files.push(this._addPatchingExecute());\n module.files.push(this._addPatchingParser());\n module.files.push(this._addPatchingValidate());\n return module;\n }\n _addPatchingExecute() {\n return new InstrumentationNodeModuleFile(\n \"graphql/execution/execute.js\",\n supportedVersions,\n // cannot make it work with appropriate type as execute function has 2\n //types and/cannot import function but only types\n (moduleExports) => {\n if (isWrapped(moduleExports.execute)) {\n this._unwrap(moduleExports, \"execute\");\n }\n this._wrap(moduleExports, \"execute\", this._patchExecute(moduleExports.defaultFieldResolver));\n return moduleExports;\n },\n (moduleExports) => {\n if (moduleExports) {\n this._unwrap(moduleExports, \"execute\");\n }\n }\n );\n }\n _addPatchingParser() {\n return new InstrumentationNodeModuleFile(\n \"graphql/language/parser.js\",\n supportedVersions,\n (moduleExports) => {\n if (isWrapped(moduleExports.parse)) {\n this._unwrap(moduleExports, \"parse\");\n }\n this._wrap(moduleExports, \"parse\", this._patchParse());\n return moduleExports;\n },\n (moduleExports) => {\n if (moduleExports) {\n this._unwrap(moduleExports, \"parse\");\n }\n }\n );\n }\n _addPatchingValidate() {\n return new InstrumentationNodeModuleFile(\n \"graphql/validation/validate.js\",\n supportedVersions,\n (moduleExports) => {\n if (isWrapped(moduleExports.validate)) {\n this._unwrap(moduleExports, \"validate\");\n }\n this._wrap(moduleExports, \"validate\", this._patchValidate());\n return moduleExports;\n },\n (moduleExports) => {\n if (moduleExports) {\n this._unwrap(moduleExports, \"validate\");\n }\n }\n );\n }\n _patchExecute(defaultFieldResolved) {\n const instrumentation = this;\n return function execute(original) {\n return function patchExecute() {\n let processedArgs;\n if (arguments.length >= 2) {\n const args = arguments;\n processedArgs = instrumentation._wrapExecuteArgs(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5],\n args[6],\n args[7],\n defaultFieldResolved\n );\n } else {\n const args = arguments[0];\n processedArgs = instrumentation._wrapExecuteArgs(\n args.schema,\n args.document,\n args.rootValue,\n args.contextValue,\n args.variableValues,\n args.operationName,\n args.fieldResolver,\n args.typeResolver,\n defaultFieldResolved\n );\n }\n const operation = getOperation(processedArgs.document, processedArgs.operationName);\n const span = instrumentation._createExecuteSpan(operation, processedArgs);\n processedArgs.contextValue[OTEL_GRAPHQL_DATA_SYMBOL] = {\n source: processedArgs.document ? processedArgs.document || processedArgs.document[OTEL_GRAPHQL_DATA_SYMBOL] : void 0,\n span,\n fields: {}\n };\n return withActiveSpan(span, () => {\n return safeExecuteInTheMiddle(\n () => {\n return original.apply(this, [processedArgs]);\n },\n (err, result) => {\n instrumentation._handleExecutionResult(span, err, result);\n }\n );\n });\n };\n };\n }\n _handleExecutionResult(span, err, result) {\n if (result === void 0 || err) {\n endSpan(span, err);\n return;\n }\n if (isPromise(result)) {\n result.then(\n (resultData) => {\n this._updateSpanFromResult(span, resultData);\n endSpan(span);\n },\n (error) => {\n endSpan(span, error);\n }\n );\n } else {\n this._updateSpanFromResult(span, result);\n endSpan(span);\n }\n }\n /**\n * Applies Sentry-specific span mutations based on the GraphQL execution result:\n * - Marks the execute span as errored if the result contains errors (and no status was set yet)\n * - Optionally renames the containing root span to include the GraphQL operation name(s)\n */\n _updateSpanFromResult(span, result) {\n if (result.errors?.length && !spanToJSON(span).status) {\n span.setStatus({ code: SPAN_STATUS_ERROR });\n }\n if (!this.getConfig().useOperationNameForRootSpan) {\n return;\n }\n const attributes = spanToJSON(span).data;\n const operationType = attributes[AttributeNames.OPERATION_TYPE];\n const operationName = attributes[AttributeNames.OPERATION_NAME];\n if (!operationType) {\n return;\n }\n const rootSpan = getRootSpan(span);\n const rootSpanAttributes = spanToJSON(rootSpan).data;\n const existingOperations = rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION] || [];\n const newOperation = operationName ? `${operationType} ${operationName}` : `${operationType}`;\n if (Array.isArray(existingOperations)) {\n existingOperations.push(newOperation);\n rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, existingOperations);\n } else if (typeof existingOperations === \"string\") {\n rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, [existingOperations, newOperation]);\n } else {\n rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, newOperation);\n }\n if (!spanToJSON(rootSpan).data[\"original-description\"]) {\n rootSpan.setAttribute(\"original-description\", spanToJSON(rootSpan).description);\n }\n rootSpan.updateName(\n `${spanToJSON(rootSpan).data[\"original-description\"]} (${getGraphqlOperationNamesFromAttribute(\n existingOperations\n )})`\n );\n }\n _patchParse() {\n const instrumentation = this;\n return function parse(original) {\n return function patchParse(source, options) {\n return instrumentation._parse(this, original, source, options);\n };\n };\n }\n _patchValidate() {\n const instrumentation = this;\n return function validate(original) {\n return function patchValidate(schema, documentAST, rules, options, typeInfo) {\n return instrumentation._validate(this, original, schema, documentAST, rules, typeInfo, options);\n };\n };\n }\n _parse(obj, original, source, options) {\n const span = startInactiveSpan({ name: SpanNames.PARSE });\n return withActiveSpan(span, () => {\n return safeExecuteInTheMiddle(\n () => {\n return original.call(obj, source, options);\n },\n (err, result) => {\n if (result) {\n const operation = getOperation(result);\n if (!operation) {\n span.updateName(SpanNames.SCHEMA_PARSE);\n } else if (result.loc) {\n addSpanSource(span, result.loc);\n }\n }\n endSpan(span, err);\n }\n );\n });\n }\n _validate(obj, original, schema, documentAST, rules, typeInfo, options) {\n const span = startInactiveSpan({ name: SpanNames.VALIDATE });\n return withActiveSpan(span, () => {\n return safeExecuteInTheMiddle(\n () => {\n return original.call(obj, schema, documentAST, rules, options, typeInfo);\n },\n (err, _errors) => {\n if (!documentAST.loc) {\n span.updateName(SpanNames.SCHEMA_VALIDATE);\n }\n endSpan(span, err);\n }\n );\n });\n }\n _createExecuteSpan(operation, processedArgs) {\n const span = startInactiveSpan({\n name: SpanNames.EXECUTE,\n attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN }\n });\n if (operation) {\n const { operation: operationType, name: nameNode } = operation;\n span.setAttribute(AttributeNames.OPERATION_TYPE, operationType);\n const operationName = nameNode?.value;\n if (operationName) {\n span.setAttribute(AttributeNames.OPERATION_NAME, operationName);\n span.updateName(`${operationType} ${operationName}`);\n } else {\n span.updateName(operationType);\n }\n } else {\n let operationName = \" \";\n if (processedArgs.operationName) {\n operationName = ` \"${processedArgs.operationName}\" `;\n }\n operationName = OPERATION_NOT_SUPPORTED.replace(\"$operationName$\", operationName);\n span.setAttribute(AttributeNames.OPERATION_NAME, operationName);\n }\n if (processedArgs.document?.loc) {\n addSpanSource(span, processedArgs.document.loc);\n }\n return span;\n }\n _wrapExecuteArgs(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver, defaultFieldResolved) {\n if (!contextValue) {\n contextValue = {};\n }\n if (contextValue[OTEL_GRAPHQL_DATA_SYMBOL] || this.getConfig().ignoreResolveSpans) {\n return {\n schema,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver\n };\n }\n const isUsingDefaultResolver = fieldResolver == null;\n const fieldResolverForExecute = fieldResolver ?? defaultFieldResolved;\n fieldResolver = wrapFieldResolver(() => this.getConfig(), fieldResolverForExecute, isUsingDefaultResolver);\n if (schema) {\n wrapFields(schema.getQueryType(), () => this.getConfig());\n wrapFields(schema.getMutationType(), () => this.getConfig());\n }\n return {\n schema,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver\n };\n }\n}\nfunction getGraphqlOperationNamesFromAttribute(attr) {\n if (Array.isArray(attr)) {\n const sorted = attr.slice().sort();\n if (sorted.length <= 5) {\n return sorted.join(\", \");\n } else {\n return `${sorted.slice(0, 5).join(\", \")}, +${sorted.length - 5}`;\n }\n }\n return `${attr}`;\n}\n\nexport { GraphQLInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { normalize } from 'path';\n\nclass InstrumentationNodeModuleFile {\n constructor(name, supportedVersions, patch, unpatch) {\n this.name = normalize(name);\n this.supportedVersions = supportedVersions;\n this.patch = patch;\n this.unpatch = unpatch;\n }\n}\n\nexport { InstrumentationNodeModuleFile };\n//# sourceMappingURL=InstrumentationNodeModuleFile.js.map\n", + "var AllowedOperationTypes = /* @__PURE__ */ ((AllowedOperationTypes2) => {\n AllowedOperationTypes2[\"QUERY\"] = \"query\";\n AllowedOperationTypes2[\"MUTATION\"] = \"mutation\";\n AllowedOperationTypes2[\"SUBSCRIPTION\"] = \"subscription\";\n return AllowedOperationTypes2;\n})(AllowedOperationTypes || {});\nvar TokenKind = /* @__PURE__ */ ((TokenKind2) => {\n TokenKind2[\"SOF\"] = \"\";\n TokenKind2[\"EOF\"] = \"\";\n TokenKind2[\"BANG\"] = \"!\";\n TokenKind2[\"DOLLAR\"] = \"$\";\n TokenKind2[\"AMP\"] = \"&\";\n TokenKind2[\"PAREN_L\"] = \"(\";\n TokenKind2[\"PAREN_R\"] = \")\";\n TokenKind2[\"SPREAD\"] = \"...\";\n TokenKind2[\"COLON\"] = \":\";\n TokenKind2[\"EQUALS\"] = \"=\";\n TokenKind2[\"AT\"] = \"@\";\n TokenKind2[\"BRACKET_L\"] = \"[\";\n TokenKind2[\"BRACKET_R\"] = \"]\";\n TokenKind2[\"BRACE_L\"] = \"{\";\n TokenKind2[\"PIPE\"] = \"|\";\n TokenKind2[\"BRACE_R\"] = \"}\";\n TokenKind2[\"NAME\"] = \"Name\";\n TokenKind2[\"INT\"] = \"Int\";\n TokenKind2[\"FLOAT\"] = \"Float\";\n TokenKind2[\"STRING\"] = \"String\";\n TokenKind2[\"BLOCK_STRING\"] = \"BlockString\";\n TokenKind2[\"COMMENT\"] = \"Comment\";\n return TokenKind2;\n})(TokenKind || {});\nvar SpanNames = /* @__PURE__ */ ((SpanNames2) => {\n SpanNames2[\"EXECUTE\"] = \"graphql.execute\";\n SpanNames2[\"PARSE\"] = \"graphql.parse\";\n SpanNames2[\"RESOLVE\"] = \"graphql.resolve\";\n SpanNames2[\"VALIDATE\"] = \"graphql.validate\";\n SpanNames2[\"SCHEMA_VALIDATE\"] = \"graphql.validateSchema\";\n SpanNames2[\"SCHEMA_PARSE\"] = \"graphql.parseSchema\";\n return SpanNames2;\n})(SpanNames || {});\n\nexport { AllowedOperationTypes, SpanNames, TokenKind };\n//# sourceMappingURL=enum.js.map\n", + "var AttributeNames = /* @__PURE__ */ ((AttributeNames2) => {\n AttributeNames2[\"SOURCE\"] = \"graphql.source\";\n AttributeNames2[\"FIELD_NAME\"] = \"graphql.field.name\";\n AttributeNames2[\"FIELD_PATH\"] = \"graphql.field.path\";\n AttributeNames2[\"FIELD_TYPE\"] = \"graphql.field.type\";\n AttributeNames2[\"PARENT_NAME\"] = \"graphql.parent.name\";\n AttributeNames2[\"OPERATION_TYPE\"] = \"graphql.operation.type\";\n AttributeNames2[\"OPERATION_NAME\"] = \"graphql.operation.name\";\n return AttributeNames2;\n})(AttributeNames || {});\n\nexport { AttributeNames };\n//# sourceMappingURL=AttributeNames.js.map\n", + "const OTEL_PATCHED_SYMBOL = /* @__PURE__ */ Symbol.for(\"opentelemetry.patched\");\nconst OTEL_GRAPHQL_DATA_SYMBOL = /* @__PURE__ */ Symbol.for(\"opentelemetry.graphql_data\");\n\nexport { OTEL_GRAPHQL_DATA_SYMBOL, OTEL_PATCHED_SYMBOL };\n//# sourceMappingURL=symbols.js.map\n", + "const OPERATION_NOT_SUPPORTED = \"Operation$operationName$not supported\";\n\nexport { OPERATION_NOT_SUPPORTED };\n//# sourceMappingURL=internal-types.js.map\n", + "import { SPAN_STATUS_ERROR, withActiveSpan, startInactiveSpan } from '@sentry/core';\nimport { AllowedOperationTypes, TokenKind, SpanNames } from './enum.js';\nimport { AttributeNames } from './enums/AttributeNames.js';\nimport { OTEL_PATCHED_SYMBOL, OTEL_GRAPHQL_DATA_SYMBOL } from './symbols.js';\n\nconst OPERATION_VALUES = Object.values(AllowedOperationTypes);\nconst isPromise = (value) => {\n return typeof value?.then === \"function\";\n};\nconst isObjectLike = (value) => {\n return typeof value == \"object\" && value !== null;\n};\nfunction addSpanSource(span, loc, start, end) {\n const source = getSourceFromLocation(loc, start, end);\n span.setAttribute(AttributeNames.SOURCE, source);\n}\nfunction createFieldIfNotExists(contextValue, info, path) {\n let field = getField(contextValue, path);\n if (field) {\n return { field, spanAdded: false };\n }\n const parentSpan = getParentFieldSpan(contextValue, path);\n field = {\n span: createResolverSpan(contextValue, info, path, parentSpan)\n };\n addField(contextValue, path, field);\n return { field, spanAdded: true };\n}\nfunction createResolverSpan(contextValue, info, path, parentSpan) {\n const attributes = {\n [AttributeNames.FIELD_NAME]: info.fieldName,\n [AttributeNames.FIELD_PATH]: path.join(\".\"),\n [AttributeNames.FIELD_TYPE]: info.returnType.toString(),\n [AttributeNames.PARENT_NAME]: info.parentType.name\n };\n const span = startInactiveSpan({\n name: `${SpanNames.RESOLVE} ${attributes[AttributeNames.FIELD_PATH]}`,\n attributes,\n parentSpan\n });\n const document = contextValue[OTEL_GRAPHQL_DATA_SYMBOL].source;\n const fieldNode = info.fieldNodes.find((fieldNode2) => fieldNode2.kind === \"Field\");\n if (fieldNode) {\n addSpanSource(span, document.loc, fieldNode.loc?.start, fieldNode.loc?.end);\n }\n return span;\n}\nfunction endSpan(span, error) {\n if (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: error.message });\n }\n span.end();\n}\nfunction getOperation(document, operationName) {\n if (!document || !Array.isArray(document.definitions)) {\n return void 0;\n }\n if (operationName) {\n return document.definitions.filter((definition) => OPERATION_VALUES.indexOf(definition?.operation) !== -1).find((definition) => operationName === definition?.name?.value);\n } else {\n return document.definitions.find((definition) => OPERATION_VALUES.indexOf(definition?.operation) !== -1);\n }\n}\nfunction addField(contextValue, path, field) {\n return contextValue[OTEL_GRAPHQL_DATA_SYMBOL].fields[path.join(\".\")] = field;\n}\nfunction getField(contextValue, path) {\n return contextValue[OTEL_GRAPHQL_DATA_SYMBOL].fields[path.join(\".\")];\n}\nfunction getParentFieldSpan(contextValue, path) {\n for (let i = path.length - 1; i > 0; i--) {\n const field = getField(contextValue, path.slice(0, i));\n if (field) {\n return field.span;\n }\n }\n return getRootSpan(contextValue);\n}\nfunction getRootSpan(contextValue) {\n return contextValue[OTEL_GRAPHQL_DATA_SYMBOL].span;\n}\nfunction pathToArray(path) {\n const flattened = [];\n let curr = path;\n while (curr) {\n flattened.push(String(curr.key));\n curr = curr.prev;\n }\n return flattened.reverse();\n}\nfunction repeatBreak(i) {\n return repeatChar(\"\\n\", i);\n}\nfunction repeatSpace(i) {\n return repeatChar(\" \", i);\n}\nfunction repeatChar(char, to) {\n let text = \"\";\n for (let i = 0; i < to; i++) {\n text += char;\n }\n return text;\n}\nconst KindsToBeRemoved = [TokenKind.FLOAT, TokenKind.STRING, TokenKind.INT, TokenKind.BLOCK_STRING];\nfunction getSourceFromLocation(loc, inputStart, inputEnd) {\n let source = \"\";\n if (loc?.startToken) {\n const start = typeof inputStart === \"number\" ? inputStart : loc.start;\n const end = typeof inputEnd === \"number\" ? inputEnd : loc.end;\n let next = loc.startToken.next;\n let previousLine = 1;\n while (next) {\n if (next.start < start) {\n next = next.next;\n previousLine = next?.line;\n continue;\n }\n if (next.end > end) {\n next = next.next;\n previousLine = next?.line;\n continue;\n }\n let value = next.value || next.kind;\n let space = \"\";\n if (KindsToBeRemoved.indexOf(next.kind) >= 0) {\n value = \"*\";\n }\n if (next.kind === TokenKind.STRING) {\n value = `\"${value}\"`;\n }\n if (next.kind === TokenKind.EOF) {\n value = \"\";\n }\n if (next.line > previousLine) {\n source += repeatBreak(next.line - previousLine);\n previousLine = next.line;\n space = repeatSpace(next.column - 1);\n } else {\n if (next.line === next.prev?.line) {\n space = repeatSpace(next.start - (next.prev?.end || 0));\n }\n }\n source += space + value;\n if (next) {\n next = next.next;\n }\n }\n }\n return source;\n}\nfunction wrapFields(type, getConfig) {\n if (!type || type[OTEL_PATCHED_SYMBOL]) {\n return;\n }\n const fields = type.getFields();\n type[OTEL_PATCHED_SYMBOL] = true;\n Object.keys(fields).forEach((key) => {\n const field = fields[key];\n if (!field) {\n return;\n }\n if (field.resolve) {\n field.resolve = wrapFieldResolver(getConfig, field.resolve);\n }\n if (field.type) {\n const unwrappedTypes = unwrapType(field.type);\n for (const unwrappedType of unwrappedTypes) {\n wrapFields(unwrappedType, getConfig);\n }\n }\n });\n}\nfunction unwrapType(type) {\n if (\"ofType\" in type) {\n return unwrapType(type.ofType);\n }\n if (isGraphQLUnionType(type)) {\n return type.getTypes();\n }\n if (isGraphQLObjectType(type)) {\n return [type];\n }\n return [];\n}\nfunction isGraphQLUnionType(type) {\n return \"getTypes\" in type && typeof type.getTypes === \"function\";\n}\nfunction isGraphQLObjectType(type) {\n return \"getFields\" in type && typeof type.getFields === \"function\";\n}\nconst handleResolveSpanError = (resolveSpan, err, shouldEndSpan) => {\n if (!shouldEndSpan) {\n return;\n }\n resolveSpan.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err.message\n });\n resolveSpan.end();\n};\nconst handleResolveSpanSuccess = (resolveSpan, shouldEndSpan) => {\n if (!shouldEndSpan) {\n return;\n }\n resolveSpan.end();\n};\nfunction wrapFieldResolver(getConfig, fieldResolver, isDefaultResolver = false) {\n if (wrappedFieldResolver[OTEL_PATCHED_SYMBOL] || typeof fieldResolver !== \"function\") {\n return fieldResolver;\n }\n function wrappedFieldResolver(source, args, contextValue, info) {\n if (!fieldResolver) {\n return void 0;\n }\n const config = getConfig();\n if (config.ignoreTrivialResolveSpans && isDefaultResolver && (isObjectLike(source) || typeof source === \"function\")) {\n const property = source[info.fieldName];\n if (typeof property !== \"function\") {\n return fieldResolver.call(this, source, args, contextValue, info);\n }\n }\n if (!contextValue[OTEL_GRAPHQL_DATA_SYMBOL]) {\n return fieldResolver.call(this, source, args, contextValue, info);\n }\n const path = pathToArray(info?.path);\n const { field, spanAdded } = createFieldIfNotExists(contextValue, info, path);\n const span = field.span;\n const shouldEndSpan = spanAdded;\n return withActiveSpan(span, () => {\n try {\n const res = fieldResolver.call(this, source, args, contextValue, info);\n if (isPromise(res)) {\n return res.then(\n (r) => {\n handleResolveSpanSuccess(span, shouldEndSpan);\n return r;\n },\n (err) => {\n handleResolveSpanError(span, err, shouldEndSpan);\n throw err;\n }\n );\n } else {\n handleResolveSpanSuccess(span, shouldEndSpan);\n return res;\n }\n } catch (err) {\n handleResolveSpanError(span, err, shouldEndSpan);\n throw err;\n }\n });\n }\n wrappedFieldResolver[OTEL_PATCHED_SYMBOL] = true;\n return wrappedFieldResolver;\n}\n\nexport { addSpanSource, endSpan, getOperation, getSourceFromLocation, isPromise, wrapFieldResolver, wrapFields };\n//# sourceMappingURL=utils.js.map\n", + "import { GraphQLInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Graphql\";\nconst instrumentGraphql = generateInstrumentOnce(\n INTEGRATION_NAME,\n GraphQLInstrumentation,\n (_options) => getOptionsWithDefaults(_options)\n);\nconst _graphqlIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentGraphql(getOptionsWithDefaults(options));\n }\n };\n});\nconst graphqlIntegration = defineIntegration(_graphqlIntegration);\nfunction getOptionsWithDefaults(options) {\n return {\n ignoreResolveSpans: true,\n ignoreTrivialResolveSpans: true,\n useOperationNameForRootSpan: true,\n ...options\n };\n}\n\nexport { graphqlIntegration, instrumentGraphql };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, continueTrace, withActiveSpan, startNewTrace, startInactiveSpan, SPAN_STATUS_ERROR, SPAN_STATUS_OK } from '@sentry/core';\nimport { ATTR_MESSAGING_DESTINATION_PARTITION_ID, ATTR_MESSAGING_BATCH_MESSAGE_COUNT, MESSAGING_OPERATION_TYPE_VALUE_PROCESS, MESSAGING_OPERATION_TYPE_VALUE_RECEIVE } from './semconv.js';\nimport { getHeaderAsString, startConsumerSpan, endSpansOnPromise, getLinksFromHeaders, startProducerSpan } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-kafkajs\";\nclass KafkaJsInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n const unpatch = (moduleExports) => {\n if (isWrapped(moduleExports?.Kafka?.prototype.producer)) {\n this._unwrap(moduleExports.Kafka.prototype, \"producer\");\n }\n if (isWrapped(moduleExports?.Kafka?.prototype.consumer)) {\n this._unwrap(moduleExports.Kafka.prototype, \"consumer\");\n }\n };\n const module = new InstrumentationNodeModuleDefinition(\n \"kafkajs\",\n [\">=0.3.0 <3\"],\n (moduleExports) => {\n unpatch(moduleExports);\n this._wrap(moduleExports?.Kafka?.prototype, \"producer\", this._getProducerPatch());\n this._wrap(moduleExports?.Kafka?.prototype, \"consumer\", this._getConsumerPatch());\n return moduleExports;\n },\n unpatch\n );\n return module;\n }\n _getConsumerPatch() {\n const instrumentation = this;\n return (original) => {\n return function consumer(...args) {\n const newConsumer = original.apply(this, args);\n if (isWrapped(newConsumer.run)) {\n instrumentation._unwrap(newConsumer, \"run\");\n }\n instrumentation._wrap(newConsumer, \"run\", instrumentation._getConsumerRunPatch());\n return newConsumer;\n };\n };\n }\n _getProducerPatch() {\n const instrumentation = this;\n return (original) => {\n return function consumer(...args) {\n const newProducer = original.apply(this, args);\n if (isWrapped(newProducer.sendBatch)) {\n instrumentation._unwrap(newProducer, \"sendBatch\");\n }\n instrumentation._wrap(newProducer, \"sendBatch\", instrumentation._getSendBatchPatch());\n if (isWrapped(newProducer.send)) {\n instrumentation._unwrap(newProducer, \"send\");\n }\n instrumentation._wrap(newProducer, \"send\", instrumentation._getSendPatch());\n if (isWrapped(newProducer.transaction)) {\n instrumentation._unwrap(newProducer, \"transaction\");\n }\n instrumentation._wrap(newProducer, \"transaction\", instrumentation._getProducerTransactionPatch());\n return newProducer;\n };\n };\n }\n _getConsumerRunPatch() {\n const instrumentation = this;\n return (original) => {\n return function run(...args) {\n const config = args[0];\n if (config?.eachMessage) {\n if (isWrapped(config.eachMessage)) {\n instrumentation._unwrap(config, \"eachMessage\");\n }\n instrumentation._wrap(config, \"eachMessage\", instrumentation._getConsumerEachMessagePatch());\n }\n if (config?.eachBatch) {\n if (isWrapped(config.eachBatch)) {\n instrumentation._unwrap(config, \"eachBatch\");\n }\n instrumentation._wrap(config, \"eachBatch\", instrumentation._getConsumerEachBatchPatch());\n }\n return original.call(this, config);\n };\n };\n }\n _getConsumerEachMessagePatch() {\n return (original) => {\n return function eachMessage(...args) {\n const payload = args[0];\n const sentryTrace = getHeaderAsString(payload.message.headers, \"sentry-trace\");\n const baggage = getHeaderAsString(payload.message.headers, \"baggage\");\n return continueTrace({ sentryTrace, baggage }, () => {\n const span = startConsumerSpan({\n topic: payload.topic,\n message: payload.message,\n operationType: MESSAGING_OPERATION_TYPE_VALUE_PROCESS,\n attributes: {\n [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.partition)\n }\n });\n const eachMessagePromise = withActiveSpan(span, () => {\n return original.apply(this, args);\n });\n return endSpansOnPromise([span], eachMessagePromise);\n });\n };\n };\n }\n _getConsumerEachBatchPatch() {\n return (original) => {\n return function eachBatch(...args) {\n const payload = args[0];\n const receivingSpan = startNewTrace(\n () => startConsumerSpan({\n topic: payload.batch.topic,\n message: void 0,\n operationType: MESSAGING_OPERATION_TYPE_VALUE_RECEIVE,\n attributes: {\n [ATTR_MESSAGING_BATCH_MESSAGE_COUNT]: payload.batch.messages.length,\n [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.batch.partition)\n }\n })\n );\n return withActiveSpan(receivingSpan, () => {\n const spans = [receivingSpan];\n payload.batch.messages.forEach((message) => {\n spans.push(\n startConsumerSpan({\n topic: payload.batch.topic,\n message,\n operationType: MESSAGING_OPERATION_TYPE_VALUE_PROCESS,\n links: getLinksFromHeaders(message.headers),\n attributes: {\n [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(payload.batch.partition)\n }\n })\n );\n });\n const batchMessagePromise = original.apply(this, args);\n return endSpansOnPromise(spans, batchMessagePromise);\n });\n };\n };\n }\n _getProducerTransactionPatch() {\n const instrumentation = this;\n return (original) => {\n return function transaction(...args) {\n const transactionSpan = startInactiveSpan({ name: \"transaction\" });\n const transactionPromise = original.apply(this, args);\n transactionPromise.then((transaction2) => {\n const originalSend = transaction2.send;\n transaction2.send = function send(...args2) {\n return withActiveSpan(transactionSpan, () => {\n const patched = instrumentation._getSendPatch()(originalSend);\n return patched.apply(this, args2).catch((err) => {\n transactionSpan.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err?.message\n });\n throw err;\n });\n });\n };\n const originalSendBatch = transaction2.sendBatch;\n transaction2.sendBatch = function sendBatch(...args2) {\n return withActiveSpan(transactionSpan, () => {\n const patched = instrumentation._getSendBatchPatch()(originalSendBatch);\n return patched.apply(this, args2).catch((err) => {\n transactionSpan.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err?.message\n });\n throw err;\n });\n });\n };\n const originalCommit = transaction2.commit;\n transaction2.commit = function commit(...args2) {\n const originCommitPromise = originalCommit.apply(this, args2).then(() => {\n transactionSpan.setStatus({ code: SPAN_STATUS_OK });\n });\n return endSpansOnPromise([transactionSpan], originCommitPromise);\n };\n const originalAbort = transaction2.abort;\n transaction2.abort = function abort(...args2) {\n const originAbortPromise = originalAbort.apply(this, args2);\n return endSpansOnPromise([transactionSpan], originAbortPromise);\n };\n }).catch((err) => {\n transactionSpan.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err?.message\n });\n transactionSpan.end();\n });\n return transactionPromise;\n };\n };\n }\n _getSendBatchPatch() {\n return (original) => {\n return function sendBatch(...args) {\n const batch = args[0];\n const messages = batch.topicMessages || [];\n const spans = [];\n messages.forEach((topicMessage) => {\n topicMessage.messages.forEach((message) => {\n spans.push(startProducerSpan(topicMessage.topic, message));\n });\n });\n const origSendResult = original.apply(this, args);\n return endSpansOnPromise(spans, origSendResult);\n };\n };\n }\n _getSendPatch() {\n return (original) => {\n return function send(...args) {\n const record = args[0];\n const spans = record.messages.map((message) => {\n return startProducerSpan(record.topic, message);\n });\n const origSendResult = original.apply(this, args);\n return endSpansOnPromise(spans, origSendResult);\n };\n };\n }\n}\n\nexport { KafkaJsInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "const ATTR_MESSAGING_BATCH_MESSAGE_COUNT = \"messaging.batch.message_count\";\nconst ATTR_MESSAGING_DESTINATION_NAME = \"messaging.destination.name\";\nconst ATTR_MESSAGING_DESTINATION_PARTITION_ID = \"messaging.destination.partition.id\";\nconst ATTR_MESSAGING_KAFKA_MESSAGE_KEY = \"messaging.kafka.message.key\";\nconst ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE = \"messaging.kafka.message.tombstone\";\nconst ATTR_MESSAGING_KAFKA_OFFSET = \"messaging.kafka.offset\";\nconst ATTR_MESSAGING_OPERATION_NAME = \"messaging.operation.name\";\nconst ATTR_MESSAGING_OPERATION_TYPE = \"messaging.operation.type\";\nconst ATTR_MESSAGING_SYSTEM = \"messaging.system\";\nconst MESSAGING_OPERATION_TYPE_VALUE_PROCESS = \"process\";\nconst MESSAGING_OPERATION_TYPE_VALUE_RECEIVE = \"receive\";\nconst MESSAGING_OPERATION_TYPE_VALUE_SEND = \"send\";\nconst MESSAGING_SYSTEM_VALUE_KAFKA = \"kafka\";\nconst ATTR_ERROR_TYPE = \"error.type\";\nconst ERROR_TYPE_VALUE_OTHER = \"_OTHER\";\n\nexport { ATTR_ERROR_TYPE, ATTR_MESSAGING_BATCH_MESSAGE_COUNT, ATTR_MESSAGING_DESTINATION_NAME, ATTR_MESSAGING_DESTINATION_PARTITION_ID, ATTR_MESSAGING_KAFKA_MESSAGE_KEY, ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE, ATTR_MESSAGING_KAFKA_OFFSET, ATTR_MESSAGING_OPERATION_NAME, ATTR_MESSAGING_OPERATION_TYPE, ATTR_MESSAGING_SYSTEM, ERROR_TYPE_VALUE_OTHER, MESSAGING_OPERATION_TYPE_VALUE_PROCESS, MESSAGING_OPERATION_TYPE_VALUE_RECEIVE, MESSAGING_OPERATION_TYPE_VALUE_SEND, MESSAGING_SYSTEM_VALUE_KAFKA };\n//# sourceMappingURL=semconv.js.map\n", + "import { TraceFlags } from '@opentelemetry/api';\nimport { startInactiveSpan, SPAN_KIND, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR, propagationContextFromHeaders, getTraceData } from '@sentry/core';\nimport { MESSAGING_SYSTEM_VALUE_KAFKA, ATTR_MESSAGING_KAFKA_OFFSET, ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE, ATTR_MESSAGING_KAFKA_MESSAGE_KEY, ATTR_MESSAGING_OPERATION_NAME, ATTR_MESSAGING_OPERATION_TYPE, ATTR_MESSAGING_DESTINATION_NAME, ATTR_MESSAGING_SYSTEM, MESSAGING_OPERATION_TYPE_VALUE_RECEIVE, ATTR_ERROR_TYPE, ERROR_TYPE_VALUE_OTHER, MESSAGING_OPERATION_TYPE_VALUE_SEND, ATTR_MESSAGING_DESTINATION_PARTITION_ID } from './semconv.js';\n\nconst PRODUCER_ORIGIN = \"auto.kafkajs.otel.producer\";\nconst CONSUMER_ORIGIN = \"auto.kafkajs.otel.consumer\";\nfunction getHeaderAsString(headers, key) {\n const value = headers?.[key];\n if (value == null) {\n return void 0;\n }\n return Array.isArray(value) ? value[0]?.toString() : value.toString();\n}\nfunction getLinksFromHeaders(headers) {\n const sentryTrace = getHeaderAsString(headers, \"sentry-trace\");\n if (!sentryTrace) {\n return void 0;\n }\n const { traceId, parentSpanId, sampled } = propagationContextFromHeaders(\n sentryTrace,\n getHeaderAsString(headers, \"baggage\")\n );\n if (!parentSpanId) {\n return void 0;\n }\n return [\n {\n context: {\n traceId,\n spanId: parentSpanId,\n isRemote: true,\n traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE\n }\n }\n ];\n}\nfunction startConsumerSpan({ topic, message, operationType, links, attributes }) {\n const operationName = operationType === MESSAGING_OPERATION_TYPE_VALUE_RECEIVE ? \"poll\" : operationType;\n return startInactiveSpan({\n name: `${operationName} ${topic}`,\n kind: operationType === MESSAGING_OPERATION_TYPE_VALUE_RECEIVE ? SPAN_KIND.CLIENT : SPAN_KIND.CONSUMER,\n links,\n attributes: {\n ...attributes,\n [ATTR_MESSAGING_SYSTEM]: MESSAGING_SYSTEM_VALUE_KAFKA,\n [ATTR_MESSAGING_DESTINATION_NAME]: topic,\n [ATTR_MESSAGING_OPERATION_TYPE]: operationType,\n [ATTR_MESSAGING_OPERATION_NAME]: operationName,\n [ATTR_MESSAGING_KAFKA_MESSAGE_KEY]: message?.key ? String(message.key) : void 0,\n [ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]: message?.key && message.value === null ? true : void 0,\n [ATTR_MESSAGING_KAFKA_OFFSET]: message?.offset,\n // Mirror the upstream behavior of only tagging per-message processing spans (not the batch\n // receiving span, which carries no message) with the auto origin.\n ...message ? { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: CONSUMER_ORIGIN } : {}\n }\n });\n}\nfunction startProducerSpan(topic, message) {\n const span = startInactiveSpan({\n name: `send ${topic}`,\n kind: SPAN_KIND.PRODUCER,\n attributes: {\n [ATTR_MESSAGING_SYSTEM]: MESSAGING_SYSTEM_VALUE_KAFKA,\n [ATTR_MESSAGING_DESTINATION_NAME]: topic,\n [ATTR_MESSAGING_KAFKA_MESSAGE_KEY]: message.key ? String(message.key) : void 0,\n [ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]: message.key && message.value === null ? true : void 0,\n [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: message.partition !== void 0 ? String(message.partition) : void 0,\n [ATTR_MESSAGING_OPERATION_NAME]: \"send\",\n [ATTR_MESSAGING_OPERATION_TYPE]: MESSAGING_OPERATION_TYPE_VALUE_SEND,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: PRODUCER_ORIGIN\n }\n });\n message.headers = message.headers ?? {};\n const traceData = getTraceData({ span });\n if (traceData[\"sentry-trace\"]) {\n message.headers[\"sentry-trace\"] = traceData[\"sentry-trace\"];\n }\n if (traceData.baggage) {\n message.headers[\"baggage\"] = traceData.baggage;\n }\n return span;\n}\nfunction endSpansOnPromise(spans, sendPromise) {\n return Promise.resolve(sendPromise).catch((reason) => {\n let errorMessage;\n let errorType = ERROR_TYPE_VALUE_OTHER;\n if (typeof reason === \"string\" || reason === void 0) {\n errorMessage = reason;\n } else if (typeof reason === \"object\" && Object.prototype.hasOwnProperty.call(reason, \"message\")) {\n errorMessage = reason.message;\n errorType = reason.constructor.name;\n }\n spans.forEach((span) => {\n span.setAttribute(ATTR_ERROR_TYPE, errorType);\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: errorMessage\n });\n });\n throw reason;\n }).finally(() => {\n spans.forEach((span) => span.end());\n });\n}\n\nexport { endSpansOnPromise, getHeaderAsString, getLinksFromHeaders, startConsumerSpan, startProducerSpan };\n//# sourceMappingURL=utils.js.map\n", + "import { KafkaJsInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Kafka\";\nconst instrumentKafka = generateInstrumentOnce(INTEGRATION_NAME, () => new KafkaJsInstrumentation());\nconst _kafkaIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentKafka();\n }\n };\n});\nconst kafkaIntegration = defineIntegration(_kafkaIntegration);\n\nexport { instrumentKafka, kafkaIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, getCurrentScope, withScope } from '@sentry/core';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-lru-memoizer\";\nclass LruMemoizerInstrumentation extends InstrumentationBase {\n constructor() {\n super(PACKAGE_NAME, SDK_VERSION, {});\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n \"lru-memoizer\",\n [\">=1.3 <4\"],\n (moduleExports) => {\n const asyncMemoizer = function(...args) {\n const origMemoizer = moduleExports.apply(this, args);\n return function(...memoizerArgs) {\n const origCallback = memoizerArgs.pop();\n const scope = getCurrentScope();\n const callbackWithContext = typeof origCallback === \"function\" ? function(...callbackArgs) {\n return withScope(scope, () => origCallback.apply(this, callbackArgs));\n } : origCallback;\n return origMemoizer.apply(this, [...memoizerArgs, callbackWithContext]);\n };\n };\n return Object.assign(asyncMemoizer, { sync: moduleExports.sync });\n },\n void 0\n // no need to disable as this instrumentation does not create any spans\n )\n ];\n }\n}\n\nexport { LruMemoizerInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { LruMemoizerInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"LruMemoizer\";\nconst instrumentLruMemoizer = generateInstrumentOnce(INTEGRATION_NAME, () => new LruMemoizerInstrumentation());\nconst _lruMemoizerIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentLruMemoizer();\n }\n };\n});\nconst lruMemoizerIntegration = defineIntegration(_lruMemoizerIntegration);\n\nexport { instrumentLruMemoizer, lruMemoizerIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION } from '@sentry/core';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile.js';\nimport { getV3PatchOperation, getV3PatchCommand, getV3PatchFind, getV3PatchCursor, getV4ConnectionPoolCheckOut, getV4PatchCommandPromise, getV4PatchCommandCallback } from './patches.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-mongodb\";\nclass MongoDBInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n const { v3PatchConnection, v3UnpatchConnection } = this._getV3ConnectionPatches();\n const { v4PatchConnectionCallback, v4PatchConnectionPromise, v4UnpatchConnection } = this._getV4ConnectionPatches();\n const { v4PatchConnectionPool, v4UnpatchConnectionPool } = this._getV4ConnectionPoolPatches();\n return [\n new InstrumentationNodeModuleDefinition(\"mongodb\", [\">=3.3.0 <4\"], void 0, void 0, [\n new InstrumentationNodeModuleFile(\n \"mongodb/lib/core/wireprotocol/index.js\",\n [\">=3.3.0 <4\"],\n v3PatchConnection,\n v3UnpatchConnection\n )\n ]),\n new InstrumentationNodeModuleDefinition(\"mongodb\", [\">=4.0.0 <8\"], void 0, void 0, [\n new InstrumentationNodeModuleFile(\n \"mongodb/lib/cmap/connection.js\",\n [\">=4.0.0 <6.4\"],\n v4PatchConnectionCallback,\n v4UnpatchConnection\n ),\n new InstrumentationNodeModuleFile(\n \"mongodb/lib/cmap/connection.js\",\n [\">=6.4.0 <8\"],\n v4PatchConnectionPromise,\n v4UnpatchConnection\n ),\n new InstrumentationNodeModuleFile(\n \"mongodb/lib/cmap/connection_pool.js\",\n [\">=4.0.0 <6.4\"],\n v4PatchConnectionPool,\n v4UnpatchConnectionPool\n )\n ])\n ];\n }\n _getV3ConnectionPatches() {\n return {\n v3PatchConnection: (moduleExports) => {\n if (isWrapped(moduleExports.insert)) {\n this._unwrap(moduleExports, \"insert\");\n }\n this._wrap(moduleExports, \"insert\", getV3PatchOperation(\"insert\"));\n if (isWrapped(moduleExports.remove)) {\n this._unwrap(moduleExports, \"remove\");\n }\n this._wrap(moduleExports, \"remove\", getV3PatchOperation(\"remove\"));\n if (isWrapped(moduleExports.update)) {\n this._unwrap(moduleExports, \"update\");\n }\n this._wrap(moduleExports, \"update\", getV3PatchOperation(\"update\"));\n if (isWrapped(moduleExports.command)) {\n this._unwrap(moduleExports, \"command\");\n }\n this._wrap(moduleExports, \"command\", getV3PatchCommand());\n if (isWrapped(moduleExports.query)) {\n this._unwrap(moduleExports, \"query\");\n }\n this._wrap(moduleExports, \"query\", getV3PatchFind());\n if (isWrapped(moduleExports.getMore)) {\n this._unwrap(moduleExports, \"getMore\");\n }\n this._wrap(moduleExports, \"getMore\", getV3PatchCursor());\n return moduleExports;\n },\n v3UnpatchConnection: (moduleExports) => {\n if (moduleExports === void 0) return;\n this._unwrap(moduleExports, \"insert\");\n this._unwrap(moduleExports, \"remove\");\n this._unwrap(moduleExports, \"update\");\n this._unwrap(moduleExports, \"command\");\n this._unwrap(moduleExports, \"query\");\n this._unwrap(moduleExports, \"getMore\");\n }\n };\n }\n _getV4ConnectionPoolPatches() {\n return {\n v4PatchConnectionPool: (moduleExports) => {\n const poolPrototype = moduleExports.ConnectionPool.prototype;\n if (isWrapped(poolPrototype.checkOut)) {\n this._unwrap(poolPrototype, \"checkOut\");\n }\n this._wrap(poolPrototype, \"checkOut\", getV4ConnectionPoolCheckOut());\n return moduleExports;\n },\n v4UnpatchConnectionPool: (moduleExports) => {\n if (moduleExports === void 0) return;\n this._unwrap(moduleExports.ConnectionPool.prototype, \"checkOut\");\n }\n };\n }\n _getV4ConnectionPatches() {\n return {\n v4PatchConnectionCallback: (moduleExports) => {\n if (isWrapped(moduleExports.Connection.prototype.command)) {\n this._unwrap(moduleExports.Connection.prototype, \"command\");\n }\n this._wrap(moduleExports.Connection.prototype, \"command\", getV4PatchCommandCallback());\n return moduleExports;\n },\n v4PatchConnectionPromise: (moduleExports) => {\n if (isWrapped(moduleExports.Connection.prototype.command)) {\n this._unwrap(moduleExports.Connection.prototype, \"command\");\n }\n this._wrap(moduleExports.Connection.prototype, \"command\", getV4PatchCommandPromise());\n return moduleExports;\n },\n v4UnpatchConnection: (moduleExports) => {\n if (moduleExports === void 0) return;\n this._unwrap(moduleExports.Connection.prototype, \"command\");\n }\n };\n }\n}\n\nexport { MongoDBInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "var MongodbCommandType = /* @__PURE__ */ ((MongodbCommandType2) => {\n MongodbCommandType2[\"CREATE_INDEXES\"] = \"createIndexes\";\n MongodbCommandType2[\"FIND_AND_MODIFY\"] = \"findAndModify\";\n MongodbCommandType2[\"IS_MASTER\"] = \"isMaster\";\n MongodbCommandType2[\"COUNT\"] = \"count\";\n MongodbCommandType2[\"AGGREGATE\"] = \"aggregate\";\n MongodbCommandType2[\"UNKNOWN\"] = \"unknown\";\n return MongodbCommandType2;\n})(MongodbCommandType || {});\n\nexport { MongodbCommandType };\n//# sourceMappingURL=internal-types.js.map\n", + "const ATTR_DB_CONNECTION_STRING = \"db.connection_string\";\nconst ATTR_DB_MONGODB_COLLECTION = \"db.mongodb.collection\";\nconst ATTR_DB_NAME = \"db.name\";\nconst ATTR_DB_OPERATION = \"db.operation\";\nconst ATTR_DB_STATEMENT = \"db.statement\";\nconst ATTR_DB_SYSTEM = \"db.system\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\nconst DB_SYSTEM_VALUE_MONGODB = \"mongodb\";\n\nexport { ATTR_DB_CONNECTION_STRING, ATTR_DB_MONGODB_COLLECTION, ATTR_DB_NAME, ATTR_DB_OPERATION, ATTR_DB_STATEMENT, ATTR_DB_SYSTEM, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, DB_SYSTEM_VALUE_MONGODB };\n//# sourceMappingURL=semconv.js.map\n", + "import { getActiveSpan, startInactiveSpan, SPAN_KIND, SPAN_STATUS_ERROR, withActiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { ATTR_DB_OPERATION, DB_SYSTEM_VALUE_MONGODB, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, ATTR_DB_STATEMENT, ATTR_DB_CONNECTION_STRING, ATTR_DB_MONGODB_COLLECTION, ATTR_DB_NAME, ATTR_DB_SYSTEM } from './semconv.js';\nimport { MongodbCommandType } from './internal-types.js';\n\nconst ORIGIN = \"auto.db.otel.mongo\";\nfunction serializeDbStatement(commandObj) {\n return JSON.stringify(scrubStatement(commandObj));\n}\nfunction scrubStatement(value) {\n if (Array.isArray(value)) {\n return value.map((element) => scrubStatement(element));\n }\n if (isCommandObj(value)) {\n const initial = {};\n return Object.entries(value).map(([key, element]) => [key, scrubStatement(element)]).reduce((prev, current) => {\n if (isCommandEntry(current)) {\n prev[current[0]] = current[1];\n }\n return prev;\n }, initial);\n }\n return \"?\";\n}\nfunction isCommandObj(value) {\n return typeof value === \"object\" && value !== null && !isBuffer(value);\n}\nfunction isBuffer(value) {\n return typeof Buffer !== \"undefined\" && Buffer.isBuffer(value);\n}\nfunction isCommandEntry(value) {\n return Array.isArray(value);\n}\nfunction getCommandType(command) {\n if (command.createIndexes !== void 0) {\n return MongodbCommandType.CREATE_INDEXES;\n } else if (command.findandmodify !== void 0) {\n return MongodbCommandType.FIND_AND_MODIFY;\n } else if (command.ismaster !== void 0) {\n return MongodbCommandType.IS_MASTER;\n } else if (command.count !== void 0) {\n return MongodbCommandType.COUNT;\n } else if (command.aggregate !== void 0) {\n return MongodbCommandType.AGGREGATE;\n } else {\n return MongodbCommandType.UNKNOWN;\n }\n}\nfunction getV4SpanAttributes(connectionCtx, ns, command, operation) {\n let host, port;\n if (connectionCtx) {\n const hostParts = typeof connectionCtx.address === \"string\" ? connectionCtx.address.split(\":\") : \"\";\n if (hostParts.length === 2) {\n host = hostParts[0];\n port = hostParts[1];\n }\n }\n let commandObj;\n if (command?.documents && command.documents[0]) {\n commandObj = command.documents[0];\n } else if (command?.cursors) {\n commandObj = command.cursors;\n } else {\n commandObj = command;\n }\n return getSpanAttributes(ns.db, ns.collection, host, port, commandObj, operation);\n}\nfunction getV3SpanAttributes(ns, topology, command, operation) {\n let host;\n let port;\n if (topology?.s) {\n host = topology.s.options?.host ?? topology.s.host;\n port = (topology.s.options?.port ?? topology.s.port)?.toString();\n if (host == null || port == null) {\n const address = topology.description?.address;\n if (address) {\n const addressSegments = address.split(\":\");\n host = addressSegments[0];\n port = addressSegments[1];\n }\n }\n }\n const [dbName, dbCollection] = ns.toString().split(\".\");\n const commandObj = command?.query ?? command?.q ?? command;\n return getSpanAttributes(dbName, dbCollection, host, port, commandObj, operation);\n}\nfunction getSpanAttributes(dbName, dbCollection, host, port, commandObj, operation) {\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_MONGODB,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_NAME]: dbName,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_MONGODB_COLLECTION]: dbCollection,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_OPERATION]: operation,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_CONNECTION_STRING]: `mongodb://${host}:${port}/${dbName}`\n };\n if (host && port) {\n attributes[ATTR_NET_PEER_NAME] = host;\n const portNumber = parseInt(port, 10);\n if (!isNaN(portNumber)) {\n attributes[ATTR_NET_PEER_PORT] = portNumber;\n }\n }\n if (commandObj) {\n try {\n attributes[ATTR_DB_STATEMENT] = serializeDbStatement(commandObj);\n } catch {\n }\n }\n return attributes;\n}\nfunction startMongoSpan(attributes) {\n return startInactiveSpan({\n // eslint-disable-next-line typescript/no-deprecated\n name: `mongodb.${attributes[ATTR_DB_OPERATION] || \"command\"}`,\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n}\nfunction patchEnd(span, resultHandler) {\n const parentSpan = getActiveSpan();\n let spanEnded = false;\n return function patchedEnd(...args) {\n if (!spanEnded) {\n spanEnded = true;\n const error = args[0];\n if (span) {\n if (error instanceof Error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: error.message });\n }\n span.end();\n }\n }\n return withActiveSpan(parentSpan ?? null, () => resultHandler.apply(this, args));\n };\n}\nfunction shouldSkipInstrumentation() {\n return !getActiveSpan();\n}\n\nexport { getCommandType, getV3SpanAttributes, getV4SpanAttributes, patchEnd, shouldSkipInstrumentation, startMongoSpan };\n//# sourceMappingURL=utils.js.map\n", + "import { getActiveSpan, withActiveSpan } from '@sentry/core';\nimport { MongodbCommandType } from './internal-types.js';\nimport { shouldSkipInstrumentation, startMongoSpan, getV3SpanAttributes, patchEnd, getCommandType, getV4SpanAttributes } from './utils.js';\n\nfunction getV3PatchOperation(operationName) {\n return (original) => {\n return function patchedServerCommand(server, ns, ops, options, callback) {\n const resultHandler = typeof options === \"function\" ? options : callback;\n if (shouldSkipInstrumentation() || typeof resultHandler !== \"function\" || typeof ops !== \"object\") {\n if (typeof options === \"function\") {\n return original.call(this, server, ns, ops, options);\n } else {\n return original.call(this, server, ns, ops, options, callback);\n }\n }\n const span = startMongoSpan(getV3SpanAttributes(ns, server, ops[0], operationName));\n const patchedCallback = patchEnd(span, resultHandler);\n if (typeof options === \"function\") {\n return original.call(this, server, ns, ops, patchedCallback);\n } else {\n return original.call(this, server, ns, ops, options, patchedCallback);\n }\n };\n };\n}\nfunction getV3PatchCommand() {\n return (original) => {\n return function patchedServerCommand(server, ns, cmd, options, callback) {\n const resultHandler = typeof options === \"function\" ? options : callback;\n if (shouldSkipInstrumentation() || typeof resultHandler !== \"function\" || typeof cmd !== \"object\") {\n if (typeof options === \"function\") {\n return original.call(this, server, ns, cmd, options);\n } else {\n return original.call(this, server, ns, cmd, options, callback);\n }\n }\n const commandType = getCommandType(cmd);\n const operationName = commandType === MongodbCommandType.UNKNOWN ? void 0 : commandType;\n const span = startMongoSpan(getV3SpanAttributes(ns, server, cmd, operationName));\n const patchedCallback = patchEnd(span, resultHandler);\n if (typeof options === \"function\") {\n return original.call(this, server, ns, cmd, patchedCallback);\n } else {\n return original.call(this, server, ns, cmd, options, patchedCallback);\n }\n };\n };\n}\nfunction getV4PatchCommandCallback() {\n return (original) => {\n return function patchedV4ServerCommand(ns, cmd, options, callback) {\n const resultHandler = callback;\n const commandType = Object.keys(cmd)[0];\n if (typeof cmd !== \"object\" || cmd.ismaster || cmd.hello) {\n return original.call(this, ns, cmd, options, callback);\n }\n let span = void 0;\n if (!shouldSkipInstrumentation()) {\n span = startMongoSpan(getV4SpanAttributes(this, ns, cmd, commandType));\n }\n const patchedCallback = patchEnd(span, resultHandler);\n return original.call(this, ns, cmd, options, patchedCallback);\n };\n };\n}\nfunction getV4PatchCommandPromise() {\n return (original) => {\n return function patchedV4ServerCommand(...args) {\n const [ns, cmd] = args;\n const commandType = Object.keys(cmd)[0];\n const resultHandler = () => void 0;\n if (typeof cmd !== \"object\" || cmd.ismaster || cmd.hello) {\n return original.apply(this, args);\n }\n let span = void 0;\n if (!shouldSkipInstrumentation()) {\n span = startMongoSpan(getV4SpanAttributes(this, ns, cmd, commandType));\n }\n const patchedCallback = patchEnd(span, resultHandler);\n const result = original.apply(this, args);\n result.then(\n (res) => patchedCallback(null, res),\n (err) => patchedCallback(err)\n );\n return result;\n };\n };\n}\nfunction getV3PatchFind() {\n return (original) => {\n return function patchedServerCommand(server, ns, cmd, cursorState, options, callback) {\n const resultHandler = typeof options === \"function\" ? options : callback;\n if (shouldSkipInstrumentation() || typeof resultHandler !== \"function\" || typeof cmd !== \"object\") {\n if (typeof options === \"function\") {\n return original.call(this, server, ns, cmd, cursorState, options);\n } else {\n return original.call(this, server, ns, cmd, cursorState, options, callback);\n }\n }\n const span = startMongoSpan(getV3SpanAttributes(ns, server, cmd, \"find\"));\n const patchedCallback = patchEnd(span, resultHandler);\n if (typeof options === \"function\") {\n return original.call(this, server, ns, cmd, cursorState, patchedCallback);\n } else {\n return original.call(this, server, ns, cmd, cursorState, options, patchedCallback);\n }\n };\n };\n}\nfunction getV3PatchCursor() {\n return (original) => {\n return function patchedServerCommand(server, ns, cursorState, batchSize, options, callback) {\n const resultHandler = typeof options === \"function\" ? options : callback;\n if (shouldSkipInstrumentation() || typeof resultHandler !== \"function\") {\n if (typeof options === \"function\") {\n return original.call(this, server, ns, cursorState, batchSize, options);\n } else {\n return original.call(this, server, ns, cursorState, batchSize, options, callback);\n }\n }\n const span = startMongoSpan(getV3SpanAttributes(ns, server, cursorState.cmd, \"getMore\"));\n const patchedCallback = patchEnd(span, resultHandler);\n if (typeof options === \"function\") {\n return original.call(this, server, ns, cursorState, batchSize, patchedCallback);\n } else {\n return original.call(this, server, ns, cursorState, batchSize, options, patchedCallback);\n }\n };\n };\n}\nfunction getV4ConnectionPoolCheckOut() {\n return (original) => {\n return function patchedCheckout(callback) {\n const parentSpan = getActiveSpan();\n return original.call(this, function(...args) {\n return withActiveSpan(parentSpan ?? null, () => callback.apply(this, args));\n });\n };\n };\n}\n\nexport { getV3PatchCommand, getV3PatchCursor, getV3PatchFind, getV3PatchOperation, getV4ConnectionPoolCheckOut, getV4PatchCommandCallback, getV4PatchCommandPromise };\n//# sourceMappingURL=patches.js.map\n", + "import { MongoDBInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Mongo\";\nconst instrumentMongo = generateInstrumentOnce(INTEGRATION_NAME, () => new MongoDBInstrumentation());\nconst _mongoIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMongo();\n }\n };\n});\nconst mongoIntegration = defineIntegration(_mongoIntegration);\n\nexport { instrumentMongo, mongoIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, getActiveSpan, startInactiveSpan, SPAN_KIND, withActiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { ATTR_DB_SYSTEM, ATTR_DB_OPERATION } from './semconv.js';\nimport { getAttributesFromCollection, handleCallbackResponse, handlePromiseResponse } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-mongoose\";\nconst ORIGIN = \"auto.db.otel.mongoose\";\nconst contextCaptureFunctionsCommon = [\n \"deleteOne\",\n \"deleteMany\",\n \"find\",\n \"findOne\",\n \"estimatedDocumentCount\",\n \"countDocuments\",\n \"distinct\",\n \"where\",\n \"$where\",\n \"findOneAndUpdate\",\n \"findOneAndDelete\",\n \"findOneAndReplace\"\n];\nconst contextCaptureFunctions6 = [\"remove\", \"count\", \"findOneAndRemove\", ...contextCaptureFunctionsCommon];\nconst contextCaptureFunctions7 = [\"count\", \"findOneAndRemove\", ...contextCaptureFunctionsCommon];\nconst contextCaptureFunctions8 = [...contextCaptureFunctionsCommon];\nfunction getContextCaptureFunctions(moduleVersion) {\n if (!moduleVersion) {\n return contextCaptureFunctionsCommon;\n } else if (moduleVersion.startsWith(\"6.\") || moduleVersion.startsWith(\"5.\")) {\n return contextCaptureFunctions6;\n } else if (moduleVersion.startsWith(\"7.\")) {\n return contextCaptureFunctions7;\n } else {\n return contextCaptureFunctions8;\n }\n}\nfunction instrumentRemove(moduleVersion) {\n return moduleVersion && (moduleVersion.startsWith(\"5.\") || moduleVersion.startsWith(\"6.\")) || false;\n}\nfunction needsDocumentMethodPatch(moduleVersion) {\n if (!moduleVersion || !moduleVersion.startsWith(\"8.\")) {\n return false;\n }\n const minor = parseInt(moduleVersion.split(\".\")[1], 10);\n return minor >= 21;\n}\nconst _STORED_PARENT_SPAN = /* @__PURE__ */ Symbol(\"stored-parent-span\");\nconst _ALREADY_INSTRUMENTED = /* @__PURE__ */ Symbol(\"already-instrumented\");\nclass MongooseInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n \"mongoose\",\n [\">=5.9.7 <10\"],\n this.patch.bind(this),\n this.unpatch.bind(this)\n );\n return module;\n }\n patch(module, moduleVersion) {\n const moduleExports = module[Symbol.toStringTag] === \"Module\" && module.default ? module.default : module;\n this._wrap(moduleExports.Model.prototype, \"save\", this.patchOnModelMethods(\"save\"));\n moduleExports.Model.prototype.$save = moduleExports.Model.prototype.save;\n if (instrumentRemove(moduleVersion)) {\n this._wrap(moduleExports.Model.prototype, \"remove\", this.patchOnModelMethods(\"remove\"));\n }\n if (needsDocumentMethodPatch(moduleVersion)) {\n this._wrap(moduleExports.Model.prototype, \"updateOne\", this._patchDocumentUpdateMethods(\"updateOne\"));\n this._wrap(moduleExports.Model.prototype, \"deleteOne\", this._patchDocumentUpdateMethods(\"deleteOne\"));\n }\n this._wrap(moduleExports.Query.prototype, \"exec\", this.patchQueryExec());\n this._wrap(moduleExports.Aggregate.prototype, \"exec\", this.patchAggregateExec());\n const contextCaptureFunctions = getContextCaptureFunctions(moduleVersion);\n contextCaptureFunctions.forEach((funcName) => {\n this._wrap(moduleExports.Query.prototype, funcName, this.patchAndCaptureSpanContext(funcName));\n });\n this._wrap(moduleExports.Model, \"aggregate\", this.patchModelAggregate());\n this._wrap(moduleExports.Model, \"insertMany\", this.patchModelStatic(\"insertMany\"));\n this._wrap(moduleExports.Model, \"bulkWrite\", this.patchModelStatic(\"bulkWrite\"));\n return moduleExports;\n }\n unpatch(module, moduleVersion) {\n const moduleExports = module[Symbol.toStringTag] === \"Module\" && module.default ? module.default : module;\n const contextCaptureFunctions = getContextCaptureFunctions(moduleVersion);\n this._unwrap(moduleExports.Model.prototype, \"save\");\n moduleExports.Model.prototype.$save = moduleExports.Model.prototype.save;\n if (instrumentRemove(moduleVersion)) {\n this._unwrap(moduleExports.Model.prototype, \"remove\");\n }\n if (needsDocumentMethodPatch(moduleVersion)) {\n this._unwrap(moduleExports.Model.prototype, \"updateOne\");\n this._unwrap(moduleExports.Model.prototype, \"deleteOne\");\n }\n this._unwrap(moduleExports.Query.prototype, \"exec\");\n this._unwrap(moduleExports.Aggregate.prototype, \"exec\");\n contextCaptureFunctions.forEach((funcName) => {\n this._unwrap(moduleExports.Query.prototype, funcName);\n });\n this._unwrap(moduleExports.Model, \"aggregate\");\n this._unwrap(moduleExports.Model, \"insertMany\");\n this._unwrap(moduleExports.Model, \"bulkWrite\");\n }\n patchAggregateExec() {\n const self = this;\n return (originalAggregate) => {\n return function exec(callback) {\n const parentSpan = this[_STORED_PARENT_SPAN];\n const span = self._startSpan(this._model.collection, this._model?.modelName, \"aggregate\", parentSpan);\n return self._handleResponse(span, originalAggregate, this, arguments, callback);\n };\n };\n }\n patchQueryExec() {\n const self = this;\n return (originalExec) => {\n return function exec(callback) {\n if (this[_ALREADY_INSTRUMENTED]) {\n return originalExec.apply(this, arguments);\n }\n const parentSpan = this[_STORED_PARENT_SPAN];\n const span = self._startSpan(this.mongooseCollection, this.model.modelName, this.op, parentSpan);\n return self._handleResponse(span, originalExec, this, arguments, callback);\n };\n };\n }\n patchOnModelMethods(op) {\n const self = this;\n return (originalOnModelFunction) => {\n return function method(options, callback) {\n const span = self._startSpan(this.constructor.collection, this.constructor.modelName, op);\n if (options instanceof Function) {\n callback = options;\n }\n return self._handleResponse(span, originalOnModelFunction, this, arguments, callback);\n };\n };\n }\n // Patch document instance methods (doc.updateOne/deleteOne) for Mongoose 8.21.0+.\n _patchDocumentUpdateMethods(op) {\n const self = this;\n return (originalMethod) => {\n return function method(update, options, callback) {\n let actualCallback = callback;\n if (typeof update === \"function\") {\n actualCallback = update;\n } else if (typeof options === \"function\") {\n actualCallback = options;\n }\n const span = self._startSpan(this.constructor.collection, this.constructor.modelName, op);\n const result = self._handleResponse(span, originalMethod, this, arguments, actualCallback);\n if (result && typeof result === \"object\") {\n result[_ALREADY_INSTRUMENTED] = true;\n }\n return result;\n };\n };\n }\n patchModelStatic(op) {\n const self = this;\n return (original) => {\n return function patchedStatic(docsOrOps, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n }\n const span = self._startSpan(this.collection, this.modelName, op);\n return self._handleResponse(span, original, this, arguments, callback);\n };\n };\n }\n // we want to capture the otel span on the object which is calling exec.\n // in the special case of aggregate, we need have no function to path\n // on the Aggregate object to capture the context on, so we patch\n // the aggregate of Model, and set the context on the Aggregate object\n patchModelAggregate() {\n return (original) => {\n return function captureSpanContext() {\n const currentSpan = getActiveSpan();\n const aggregate = original.apply(this, arguments);\n if (aggregate) aggregate[_STORED_PARENT_SPAN] = currentSpan;\n return aggregate;\n };\n };\n }\n patchAndCaptureSpanContext(_funcName) {\n return (original) => {\n return function captureSpanContext() {\n this[_STORED_PARENT_SPAN] = getActiveSpan();\n return original.apply(this, arguments);\n };\n };\n }\n _startSpan(collection, modelName, operation, parentSpan) {\n const attributes = {\n ...getAttributesFromCollection(collection),\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_OPERATION]: operation,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_SYSTEM]: \"mongoose\",\n // keep for backwards compatibility\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n };\n return startInactiveSpan({\n name: `mongoose.${modelName}.${operation}`,\n kind: SPAN_KIND.CLIENT,\n attributes,\n parentSpan\n });\n }\n _handleResponse(span, exec, originalThis, args, callback) {\n return withActiveSpan(span, () => {\n if (callback instanceof Function) {\n return handleCallbackResponse(callback, exec, originalThis, span, args);\n } else {\n const response = exec.apply(originalThis, args);\n return handlePromiseResponse(response, span);\n }\n });\n }\n}\n\nexport { MongooseInstrumentation, _ALREADY_INSTRUMENTED, _STORED_PARENT_SPAN };\n//# sourceMappingURL=mongoose.js.map\n", + "const ATTR_DB_MONGODB_COLLECTION = \"db.mongodb.collection\";\nconst ATTR_DB_NAME = \"db.name\";\nconst ATTR_DB_OPERATION = \"db.operation\";\nconst ATTR_DB_SYSTEM = \"db.system\";\nconst ATTR_DB_USER = \"db.user\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\n\nexport { ATTR_DB_MONGODB_COLLECTION, ATTR_DB_NAME, ATTR_DB_OPERATION, ATTR_DB_SYSTEM, ATTR_DB_USER, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT };\n//# sourceMappingURL=semconv.js.map\n", + "import { SPAN_STATUS_ERROR } from '@sentry/core';\nimport { ATTR_NET_PEER_PORT, ATTR_NET_PEER_NAME, ATTR_DB_USER, ATTR_DB_NAME, ATTR_DB_MONGODB_COLLECTION } from './semconv.js';\n\nfunction getAttributesFromCollection(collection) {\n return {\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_MONGODB_COLLECTION]: collection.name,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_NAME]: collection.conn.name,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_USER]: collection.conn.user,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_NET_PEER_NAME]: collection.conn.host,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_NET_PEER_PORT]: collection.conn.port\n };\n}\nfunction setErrorStatus(span, error) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: `${error.message} ${error.code ? `\nMongoose Error Code: ${error.code}` : \"\"}`\n });\n}\nfunction handlePromiseResponse(execResponse, span) {\n if (!(execResponse instanceof Promise)) {\n span.end();\n return execResponse;\n }\n return execResponse.catch((err) => {\n setErrorStatus(span, err);\n throw err;\n }).finally(() => span.end());\n}\nfunction handleCallbackResponse(callback, exec, originalThis, span, args) {\n let callbackArgumentIndex = 0;\n if (args.length === 2) {\n callbackArgumentIndex = 1;\n } else if (args.length === 3) {\n callbackArgumentIndex = 2;\n }\n args[callbackArgumentIndex] = (err, response) => {\n if (err) {\n setErrorStatus(span, err);\n }\n span.end();\n return callback(err, response);\n };\n return exec.apply(originalThis, args);\n}\n\nexport { getAttributesFromCollection, handleCallbackResponse, handlePromiseResponse };\n//# sourceMappingURL=utils.js.map\n", + "import { MongooseInstrumentation } from './vendored/mongoose.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Mongoose\";\nconst instrumentMongoose = generateInstrumentOnce(INTEGRATION_NAME, () => new MongooseInstrumentation());\nconst _mongooseIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMongoose();\n }\n };\n});\nconst mongooseIntegration = defineIntegration(_mongooseIntegration);\n\nexport { instrumentMongoose, mongooseIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, getCurrentScope, withScope, startInactiveSpan, SPAN_KIND, withActiveSpan, bindScopeToEmitter, SPAN_STATUS_ERROR, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { ATTR_DB_STATEMENT, DB_SYSTEM_VALUE_MYSQL, ATTR_NET_PEER_NAME, ATTR_DB_USER, ATTR_DB_NAME, ATTR_DB_CONNECTION_STRING, ATTR_DB_SYSTEM, ATTR_NET_PEER_PORT } from './semconv.js';\nimport { getConfig, getDbQueryText, getSpanName, getJDBCString } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-mysql\";\nconst ORIGIN = \"auto.db.otel.mysql\";\nclass MySQLInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n \"mysql\",\n [\">=2.0.0 <3\"],\n (moduleExports) => {\n if (isWrapped(moduleExports.createConnection)) {\n this._unwrap(moduleExports, \"createConnection\");\n }\n this._wrap(moduleExports, \"createConnection\", this._patchCreateConnection());\n if (isWrapped(moduleExports.createPool)) {\n this._unwrap(moduleExports, \"createPool\");\n }\n this._wrap(moduleExports, \"createPool\", this._patchCreatePool());\n if (isWrapped(moduleExports.createPoolCluster)) {\n this._unwrap(moduleExports, \"createPoolCluster\");\n }\n this._wrap(moduleExports, \"createPoolCluster\", this._patchCreatePoolCluster());\n return moduleExports;\n },\n (moduleExports) => {\n if (moduleExports === void 0) return;\n this._unwrap(moduleExports, \"createConnection\");\n this._unwrap(moduleExports, \"createPool\");\n this._unwrap(moduleExports, \"createPoolCluster\");\n }\n )\n ];\n }\n // global export function\n _patchCreateConnection() {\n return (originalCreateConnection) => {\n const thisPlugin = this;\n return function createConnection(_connectionUri) {\n const originalResult = originalCreateConnection(...arguments);\n thisPlugin._wrap(originalResult, \"query\", thisPlugin._patchQuery(originalResult));\n return originalResult;\n };\n };\n }\n // global export function\n _patchCreatePool() {\n return (originalCreatePool) => {\n const thisPlugin = this;\n return function createPool(_config) {\n const pool = originalCreatePool(...arguments);\n thisPlugin._wrap(pool, \"query\", thisPlugin._patchQuery(pool));\n thisPlugin._wrap(pool, \"getConnection\", thisPlugin._patchGetConnection(pool));\n return pool;\n };\n };\n }\n // global export function\n _patchCreatePoolCluster() {\n return (originalCreatePoolCluster) => {\n const thisPlugin = this;\n return function createPool(_config) {\n const cluster = originalCreatePoolCluster(...arguments);\n thisPlugin._wrap(cluster, \"getConnection\", thisPlugin._patchGetConnection(cluster));\n return cluster;\n };\n };\n }\n // method on cluster or pool\n _patchGetConnection(pool) {\n return (originalGetConnection) => {\n const thisPlugin = this;\n return function getConnection(arg1, arg2, arg3) {\n if (!thisPlugin[\"_enabled\"]) {\n thisPlugin._unwrap(pool, \"getConnection\");\n return originalGetConnection.apply(pool, arguments);\n }\n if (arguments.length === 1 && typeof arg1 === \"function\") {\n const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg1);\n return originalGetConnection.call(pool, patchFn);\n }\n if (arguments.length === 2 && typeof arg2 === \"function\") {\n const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg2);\n return originalGetConnection.call(pool, arg1, patchFn);\n }\n if (arguments.length === 3 && typeof arg3 === \"function\") {\n const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg3);\n return originalGetConnection.call(pool, arg1, arg2, patchFn);\n }\n return originalGetConnection.apply(pool, arguments);\n };\n };\n }\n _getConnectionCallbackPatchFn(cb) {\n const thisPlugin = this;\n const scope = getCurrentScope();\n return function(err, connection) {\n if (connection) {\n if (!isWrapped(connection.query)) {\n thisPlugin._wrap(connection, \"query\", thisPlugin._patchQuery(connection));\n }\n }\n if (typeof cb === \"function\") {\n withScope(scope, () => cb.call(this, err, connection));\n }\n };\n }\n _patchQuery(connection) {\n return (originalQuery) => {\n const thisPlugin = this;\n return function query(query, _valuesOrCallback, _callback) {\n if (!thisPlugin[\"_enabled\"]) {\n thisPlugin._unwrap(connection, \"query\");\n return originalQuery.apply(connection, arguments);\n }\n const { host, port, database, user } = getConfig(connection.config);\n const portNumber = parseInt(String(port), 10);\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_MYSQL,\n [ATTR_DB_CONNECTION_STRING]: getJDBCString(host, port, database),\n [ATTR_DB_NAME]: database,\n [ATTR_DB_USER]: user,\n [ATTR_DB_STATEMENT]: getDbQueryText(query),\n [ATTR_NET_PEER_NAME]: host\n };\n if (!isNaN(portNumber)) {\n attributes[ATTR_NET_PEER_PORT] = portNumber;\n }\n const span = startInactiveSpan({\n name: getSpanName(query),\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n const cbIndex = Array.from(arguments).findIndex((arg) => typeof arg === \"function\");\n const scope = getCurrentScope();\n if (cbIndex === -1) {\n const streamableQuery = withActiveSpan(span, () => {\n return originalQuery.apply(connection, arguments);\n });\n bindScopeToEmitter(streamableQuery, scope);\n return streamableQuery.on(\"error\", (err) => {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err.message\n });\n }).on(\"end\", () => {\n span.end();\n });\n } else {\n thisPlugin._wrap(arguments, cbIndex, thisPlugin._patchCallbackQuery(span, scope));\n return withActiveSpan(span, () => {\n return originalQuery.apply(connection, arguments);\n });\n }\n };\n };\n }\n _patchCallbackQuery(span, scope) {\n return (originalCallback) => {\n return function(err, _results, _fields) {\n if (err) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err.message\n });\n }\n span.end();\n return withScope(scope, () => originalCallback(...arguments));\n };\n };\n }\n}\n\nexport { MySQLInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "const ATTR_DB_CONNECTION_STRING = \"db.connection_string\";\nconst ATTR_DB_NAME = \"db.name\";\nconst ATTR_DB_STATEMENT = \"db.statement\";\nconst ATTR_DB_SYSTEM = \"db.system\";\nconst ATTR_DB_USER = \"db.user\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\nconst DB_SYSTEM_VALUE_MYSQL = \"mysql\";\n\nexport { ATTR_DB_CONNECTION_STRING, ATTR_DB_NAME, ATTR_DB_STATEMENT, ATTR_DB_SYSTEM, ATTR_DB_USER, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, DB_SYSTEM_VALUE_MYSQL };\n//# sourceMappingURL=semconv.js.map\n", + "function getConfig(config) {\n const resolved = config?.connectionConfig || config || {};\n const { host, port, database, user } = resolved;\n return { host, port, database, user };\n}\nfunction getJDBCString(host, port, database) {\n let jdbcString = `jdbc:mysql://${host || \"localhost\"}`;\n if (typeof port === \"number\") {\n jdbcString += `:${port}`;\n }\n if (typeof database === \"string\") {\n jdbcString += `/${database}`;\n }\n return jdbcString;\n}\nfunction getDbQueryText(query) {\n if (typeof query === \"string\") {\n return query;\n } else {\n return query.sql;\n }\n}\nfunction getSpanName(query) {\n const rawQuery = typeof query === \"object\" ? query.sql : query;\n const firstSpace = rawQuery?.indexOf(\" \");\n if (typeof firstSpace === \"number\" && firstSpace !== -1) {\n return rawQuery?.substring(0, firstSpace);\n }\n return rawQuery;\n}\n\nexport { getConfig, getDbQueryText, getJDBCString, getSpanName };\n//# sourceMappingURL=utils.js.map\n", + "import { MySQLInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Mysql\";\nconst instrumentMysql = generateInstrumentOnce(INTEGRATION_NAME, () => new MySQLInstrumentation({}));\nconst _mysqlIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMysql();\n }\n };\n});\nconst mysqlIntegration = defineIntegration(_mysqlIntegration);\n\nexport { instrumentMysql, mysqlIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, startInactiveSpan, SPAN_KIND, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR } from '@sentry/core';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile.js';\nimport { ATTR_DB_STATEMENT, DB_SYSTEM_VALUE_MYSQL, ATTR_DB_SYSTEM } from './semconv.js';\nimport { getConnectionPrototypeToInstrument, getQueryText, getConnectionAttributes, getSpanName, once } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-mysql2\";\nconst ORIGIN = \"auto.db.otel.mysql2\";\nconst supportedVersions = [\">=1.4.2 <4\"];\nclass MySQL2Instrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n let format;\n function setFormatFunction(moduleExports) {\n if (!format && moduleExports.format) {\n format = moduleExports.format;\n }\n }\n const patch = (ConnectionPrototype) => {\n if (isWrapped(ConnectionPrototype.query)) {\n this._unwrap(ConnectionPrototype, \"query\");\n }\n this._wrap(ConnectionPrototype, \"query\", this._patchQuery(format));\n if (isWrapped(ConnectionPrototype.execute)) {\n this._unwrap(ConnectionPrototype, \"execute\");\n }\n this._wrap(ConnectionPrototype, \"execute\", this._patchQuery(format));\n };\n const unpatch = (ConnectionPrototype) => {\n this._unwrap(ConnectionPrototype, \"query\");\n this._unwrap(ConnectionPrototype, \"execute\");\n };\n return [\n new InstrumentationNodeModuleDefinition(\n \"mysql2\",\n supportedVersions,\n (moduleExports) => {\n setFormatFunction(moduleExports);\n return moduleExports;\n },\n () => {\n },\n [\n new InstrumentationNodeModuleFile(\n \"mysql2/promise.js\",\n supportedVersions,\n (moduleExports) => {\n setFormatFunction(moduleExports);\n return moduleExports;\n },\n () => {\n }\n ),\n new InstrumentationNodeModuleFile(\n \"mysql2/lib/connection.js\",\n supportedVersions,\n (moduleExports) => {\n const ConnectionPrototype = getConnectionPrototypeToInstrument(moduleExports);\n patch(ConnectionPrototype);\n return moduleExports;\n },\n (moduleExports) => {\n if (moduleExports === void 0) return;\n const ConnectionPrototype = getConnectionPrototypeToInstrument(moduleExports);\n unpatch(ConnectionPrototype);\n }\n )\n ]\n )\n ];\n }\n _patchQuery(format) {\n const thisPlugin = this;\n return (originalQuery) => {\n return function query(query, _valuesOrCallback, _callback) {\n let values;\n if (Array.isArray(_valuesOrCallback)) {\n values = _valuesOrCallback;\n } else if (arguments[2]) {\n values = [_valuesOrCallback];\n }\n const attributes = {\n ...getConnectionAttributes(this.config),\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_MYSQL,\n [ATTR_DB_STATEMENT]: getQueryText(query, format, values),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n };\n const span = startInactiveSpan({\n name: getSpanName(query),\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n const endSpan = once((err) => {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n });\n if (arguments.length === 1) {\n if (typeof query.onResult === \"function\") {\n thisPlugin._wrap(query, \"onResult\", thisPlugin._patchCallbackQuery(endSpan));\n }\n const streamableQuery = originalQuery.apply(this, arguments);\n streamableQuery.once(\"error\", (err) => {\n endSpan(err);\n }).once(\"result\", () => {\n endSpan();\n });\n return streamableQuery;\n }\n if (typeof arguments[1] === \"function\") {\n thisPlugin._wrap(arguments, 1, thisPlugin._patchCallbackQuery(endSpan));\n } else if (typeof arguments[2] === \"function\") {\n thisPlugin._wrap(arguments, 2, thisPlugin._patchCallbackQuery(endSpan));\n }\n return originalQuery.apply(this, arguments);\n };\n };\n }\n _patchCallbackQuery(endSpan) {\n return (originalCallback) => {\n return function(...args) {\n endSpan(args[0]);\n return originalCallback(...args);\n };\n };\n }\n}\n\nexport { MySQL2Instrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "const ATTR_DB_CONNECTION_STRING = \"db.connection_string\";\nconst ATTR_DB_NAME = \"db.name\";\nconst ATTR_DB_STATEMENT = \"db.statement\";\nconst ATTR_DB_SYSTEM = \"db.system\";\nconst ATTR_DB_USER = \"db.user\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\nconst DB_SYSTEM_VALUE_MYSQL = \"mysql\";\n\nexport { ATTR_DB_CONNECTION_STRING, ATTR_DB_NAME, ATTR_DB_STATEMENT, ATTR_DB_SYSTEM, ATTR_DB_USER, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, DB_SYSTEM_VALUE_MYSQL };\n//# sourceMappingURL=semconv.js.map\n", + "import { ATTR_NET_PEER_NAME, ATTR_DB_USER, ATTR_DB_NAME, ATTR_DB_CONNECTION_STRING, ATTR_NET_PEER_PORT } from './semconv.js';\n\nfunction getConnectionAttributes(config) {\n const { host, port, database, user } = getConfig(config);\n const attrs = {\n [ATTR_DB_CONNECTION_STRING]: getJDBCString(host, port, database),\n [ATTR_DB_NAME]: database,\n [ATTR_DB_USER]: user,\n [ATTR_NET_PEER_NAME]: host\n };\n const portNumber = parseInt(port, 10);\n if (!isNaN(portNumber)) {\n attrs[ATTR_NET_PEER_PORT] = portNumber;\n }\n return attrs;\n}\nfunction getConfig(config) {\n const { host, port, database, user } = config?.connectionConfig || config || {};\n return { host, port, database, user };\n}\nfunction getJDBCString(host, port, database) {\n let jdbcString = `jdbc:mysql://${host || \"localhost\"}`;\n if (typeof port === \"number\") {\n jdbcString += `:${port}`;\n }\n if (typeof database === \"string\") {\n jdbcString += `/${database}`;\n }\n return jdbcString;\n}\nfunction getQueryText(query, format, values) {\n const [querySql, queryValues] = typeof query === \"string\" ? [query, values] : [query.sql, hasValues(query) ? values || query.values : values];\n try {\n if (format && queryValues) {\n return format(querySql, queryValues);\n } else {\n return querySql;\n }\n } catch {\n return \"Could not determine the query due to an error in formatting\";\n }\n}\nfunction hasValues(obj) {\n return \"values\" in obj;\n}\nfunction getSpanName(query) {\n const rawQuery = typeof query === \"object\" ? query.sql : query;\n const firstSpace = rawQuery?.indexOf(\" \");\n if (typeof firstSpace === \"number\" && firstSpace !== -1) {\n return rawQuery?.substring(0, firstSpace);\n }\n return rawQuery;\n}\nconst once = (fn) => {\n let called = false;\n return (...args) => {\n if (called) return;\n called = true;\n return fn(...args);\n };\n};\nfunction getConnectionPrototypeToInstrument(connection) {\n const connectionPrototype = connection.prototype;\n const basePrototype = Object.getPrototypeOf(connectionPrototype);\n if (typeof basePrototype?.query === \"function\" && typeof basePrototype?.execute === \"function\") {\n return basePrototype;\n }\n return connectionPrototype;\n}\n\nexport { getConnectionAttributes, getConnectionPrototypeToInstrument, getQueryText, getSpanName, once };\n//# sourceMappingURL=utils.js.map\n", + "import { MySQL2Instrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Mysql2\";\nconst instrumentMysql2 = generateInstrumentOnce(INTEGRATION_NAME, () => new MySQL2Instrumentation());\nconst _mysql2Integration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMysql2();\n }\n };\n});\nconst mysql2Integration = defineIntegration(_mysql2Integration);\n\nexport { instrumentMysql2, mysql2Integration };\n//# sourceMappingURL=index.js.map\n", + "import { waitForTracingChannelBinding, defineIntegration, spanToJSON, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_SENTRY_OP, truncate } from '@sentry/core';\nimport * as dc from 'node:diagnostics_channel';\nimport { subscribeRedisDiagnosticChannels } from '@sentry/server-utils';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { getCacheKeySafely, getCacheOperation, shouldConsiderForCache, calculateCacheItemSize, isInCommands, GET_COMMANDS } from '../../../utils/redisCache.js';\nimport { IORedisInstrumentation } from './vendored/ioredis-instrumentation.js';\nimport { RedisInstrumentation } from './vendored/redis-instrumentation.js';\n\nconst INTEGRATION_NAME = \"Redis\";\nlet _redisOptions = {};\nconst cacheResponseHook = (span, redisCommand, cmdArgs, response) => {\n const safeKey = getCacheKeySafely(redisCommand, cmdArgs);\n const cacheOperation = getCacheOperation(redisCommand);\n if (!safeKey || !cacheOperation || !_redisOptions.cachePrefixes || !shouldConsiderForCache(redisCommand, safeKey, _redisOptions.cachePrefixes)) {\n return;\n }\n const spanData = spanToJSON(span).data;\n const networkPeerAddress = spanData[\"net.peer.name\"] ?? spanData[\"server.address\"];\n const networkPeerPort = spanData[\"net.peer.port\"] ?? spanData[\"server.port\"];\n if (networkPeerPort && networkPeerAddress) {\n span.setAttributes({ \"network.peer.address\": networkPeerAddress, \"network.peer.port\": networkPeerPort });\n }\n const cacheItemSize = calculateCacheItemSize(response);\n if (cacheItemSize) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, cacheItemSize);\n }\n if (isInCommands(GET_COMMANDS, redisCommand) && cacheItemSize !== void 0) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_CACHE_HIT, cacheItemSize > 0);\n }\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: cacheOperation,\n [SEMANTIC_ATTRIBUTE_CACHE_KEY]: safeKey\n });\n const spanDescription = safeKey.join(\", \");\n span.updateName(\n _redisOptions.maxCacheKeyLength ? truncate(spanDescription, _redisOptions.maxCacheKeyLength) : spanDescription\n );\n};\nconst instrumentIORedis = generateInstrumentOnce(`${INTEGRATION_NAME}.IORedis`, () => {\n return new IORedisInstrumentation({\n responseHook: cacheResponseHook\n });\n});\nconst instrumentRedisModule = generateInstrumentOnce(`${INTEGRATION_NAME}.Redis`, () => {\n return new RedisInstrumentation({\n responseHook: cacheResponseHook\n });\n});\nconst instrumentRedis = Object.assign(\n () => {\n instrumentIORedis();\n instrumentRedisModule();\n if (dc.tracingChannel) {\n waitForTracingChannelBinding(() => {\n subscribeRedisDiagnosticChannels(dc.tracingChannel, cacheResponseHook);\n });\n }\n },\n { id: INTEGRATION_NAME }\n);\nconst _redisIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n _redisOptions = options;\n instrumentRedis();\n }\n };\n});\nconst redisIntegration = defineIntegration(_redisIntegration);\n\nexport { _redisOptions, cacheResponseHook, instrumentRedis, redisIntegration };\n//# sourceMappingURL=index.js.map\n", + "const SINGLE_ARG_COMMANDS = [\"get\", \"set\", \"setex\"];\nconst GET_COMMANDS = [\"get\", \"mget\"];\nconst SET_COMMANDS = [\"set\", \"setex\"];\nfunction isInCommands(redisCommands, command) {\n return redisCommands.includes(command.toLowerCase());\n}\nfunction getCacheOperation(command) {\n if (isInCommands(GET_COMMANDS, command)) {\n return \"cache.get\";\n } else if (isInCommands(SET_COMMANDS, command)) {\n return \"cache.put\";\n } else {\n return void 0;\n }\n}\nfunction keyHasPrefix(key, prefixes) {\n return prefixes.some((prefix) => key.startsWith(prefix));\n}\nfunction getCacheKeySafely(redisCommand, cmdArgs) {\n try {\n if (cmdArgs.length === 0) {\n return void 0;\n }\n const processArg = (arg) => {\n if (typeof arg === \"string\" || typeof arg === \"number\" || Buffer.isBuffer(arg)) {\n return [arg.toString()];\n } else if (Array.isArray(arg)) {\n return flatten(arg.map((arg2) => processArg(arg2)));\n } else {\n return [\"\"];\n }\n };\n const firstArg = cmdArgs[0];\n if (isInCommands(SINGLE_ARG_COMMANDS, redisCommand) && firstArg != null) {\n return processArg(firstArg);\n }\n return flatten(cmdArgs.map((arg) => processArg(arg)));\n } catch {\n return void 0;\n }\n}\nfunction shouldConsiderForCache(redisCommand, keys, prefixes) {\n if (!getCacheOperation(redisCommand)) {\n return false;\n }\n for (const key of keys) {\n if (keyHasPrefix(key, prefixes)) {\n return true;\n }\n }\n return false;\n}\nfunction calculateCacheItemSize(response) {\n const getSize = (value) => {\n try {\n if (Buffer.isBuffer(value)) return value.byteLength;\n else if (typeof value === \"string\") return value.length;\n else if (typeof value === \"number\") return value.toString().length;\n else if (value === null || value === void 0) return 0;\n return JSON.stringify(value).length;\n } catch {\n return void 0;\n }\n };\n return Array.isArray(response) ? response.reduce((acc, curr) => {\n const size = getSize(curr);\n return typeof size === \"number\" ? acc !== void 0 ? acc + size : size : acc;\n }, 0) : getSize(response);\n}\nfunction flatten(input) {\n const result = [];\n const flattenHelper = (input2) => {\n input2.forEach((el) => {\n if (Array.isArray(el)) {\n flattenHelper(el);\n } else {\n result.push(el);\n }\n });\n };\n flattenHelper(input);\n return result;\n}\n\nexport { GET_COMMANDS, SET_COMMANDS, calculateCacheItemSize, getCacheKeySafely, getCacheOperation, isInCommands, shouldConsiderForCache };\n//# sourceMappingURL=redisCache.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, getActiveSpan, startInactiveSpan, SPAN_KIND, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR } from '@sentry/core';\nimport { defaultDbStatementSerializer } from './redis-common.js';\nimport { ATTR_DB_STATEMENT, DB_SYSTEM_VALUE_REDIS, ATTR_NET_PEER_PORT, ATTR_NET_PEER_NAME, ATTR_DB_CONNECTION_STRING, ATTR_DB_SYSTEM } from './semconv.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-ioredis\";\nconst ORIGIN = \"auto.db.otel.redis\";\nconst SUPPORTED_VERSIONS = [\">=2.0.0 <5.11.0\"];\nfunction endSpan(span, err) {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n}\nclass IORedisInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n \"ioredis\",\n SUPPORTED_VERSIONS,\n (module) => {\n const moduleExports = module[Symbol.toStringTag] === \"Module\" && module.default ? module.default : module;\n if (isWrapped(moduleExports.prototype.sendCommand)) {\n this._unwrap(moduleExports.prototype, \"sendCommand\");\n }\n this._wrap(moduleExports.prototype, \"sendCommand\", this._patchSendCommand());\n if (isWrapped(moduleExports.prototype.connect)) {\n this._unwrap(moduleExports.prototype, \"connect\");\n }\n this._wrap(moduleExports.prototype, \"connect\", this._patchConnection());\n return module;\n },\n (module) => {\n if (module === void 0) return;\n const moduleExports = module[Symbol.toStringTag] === \"Module\" && module.default ? module.default : module;\n this._unwrap(moduleExports.prototype, \"sendCommand\");\n this._unwrap(moduleExports.prototype, \"connect\");\n }\n )\n ];\n }\n _patchSendCommand() {\n const instrumentation = this;\n return (original) => {\n return function(...args) {\n const cmd = args[0];\n if (args.length < 1 || typeof cmd !== \"object\" || !getActiveSpan()) {\n return original.apply(this, args);\n }\n const { host, port } = this.options;\n const attributes = {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_DB_STATEMENT]: defaultDbStatementSerializer(cmd.name, cmd.args),\n [ATTR_DB_CONNECTION_STRING]: `redis://${host}:${port}`,\n [ATTR_NET_PEER_NAME]: host,\n [ATTR_NET_PEER_PORT]: port,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n };\n const span = startInactiveSpan({ name: cmd.name, kind: SPAN_KIND.CLIENT, attributes });\n try {\n const result = original.apply(this, args);\n const origResolve = cmd.resolve;\n cmd.resolve = function(response) {\n instrumentation._callResponseHook(span, cmd, response);\n endSpan(span, null);\n origResolve(response);\n };\n const origReject = cmd.reject;\n cmd.reject = function(err) {\n endSpan(span, err);\n origReject(err);\n };\n return result;\n } catch (error) {\n endSpan(span, error);\n throw error;\n }\n };\n };\n }\n _patchConnection() {\n return (original) => {\n return function(...args) {\n if (!getActiveSpan()) {\n return original.apply(this, args);\n }\n const { host, port } = this.options;\n const attributes = {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_DB_STATEMENT]: \"connect\",\n [ATTR_DB_CONNECTION_STRING]: `redis://${host}:${port}`,\n [ATTR_NET_PEER_NAME]: host,\n [ATTR_NET_PEER_PORT]: port,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n };\n const span = startInactiveSpan({ name: \"connect\", kind: SPAN_KIND.CLIENT, attributes });\n try {\n const result = original.apply(this, args);\n if (result instanceof Promise) {\n return result.then(\n (value) => {\n endSpan(span, null);\n return value;\n },\n (error) => {\n endSpan(span, error);\n return Promise.reject(error);\n }\n );\n }\n endSpan(span, null);\n return result;\n } catch (error) {\n endSpan(span, error);\n throw error;\n }\n };\n };\n }\n _callResponseHook(span, cmd, response) {\n const { responseHook } = this.getConfig();\n if (!responseHook) {\n return;\n }\n try {\n responseHook(span, cmd.name, cmd.args, response);\n } catch {\n }\n }\n}\n\nexport { IORedisInstrumentation };\n//# sourceMappingURL=ioredis-instrumentation.js.map\n", + "const serializationSubsets = [\n {\n regex: /^ECHO/i,\n args: 0\n },\n {\n regex: /^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,\n args: 1\n },\n {\n regex: /^(HSET|HMSET|LSET|LINSERT)/i,\n args: 2\n },\n {\n regex: /^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,\n args: -1\n }\n];\nconst defaultDbStatementSerializer = (cmdName, cmdArgs) => {\n if (Array.isArray(cmdArgs) && cmdArgs.length) {\n const nArgsToSerialize = serializationSubsets.find(({ regex }) => regex.test(cmdName))?.args ?? 0;\n const argsToSerialize = nArgsToSerialize >= 0 ? cmdArgs.slice(0, nArgsToSerialize) : cmdArgs.slice();\n if (cmdArgs.length > argsToSerialize.length) {\n argsToSerialize.push(`[${cmdArgs.length - nArgsToSerialize} other arguments]`);\n }\n return `${cmdName} ${argsToSerialize.join(\" \")}`;\n }\n return cmdName;\n};\n\nexport { defaultDbStatementSerializer };\n//# sourceMappingURL=redis-common.js.map\n", + "const ATTR_DB_CONNECTION_STRING = \"db.connection_string\";\nconst ATTR_DB_STATEMENT = \"db.statement\";\nconst ATTR_DB_SYSTEM = \"db.system\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\nconst DB_SYSTEM_VALUE_REDIS = \"redis\";\n\nexport { ATTR_DB_CONNECTION_STRING, ATTR_DB_STATEMENT, ATTR_DB_SYSTEM, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, DB_SYSTEM_VALUE_REDIS };\n//# sourceMappingURL=semconv.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, startInactiveSpan, SPAN_KIND, getActiveSpan, withActiveSpan, debug, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../../../debug-build.js';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile.js';\nimport { defaultDbStatementSerializer } from './redis-common.js';\nimport { ATTR_DB_STATEMENT, DB_SYSTEM_VALUE_REDIS, ATTR_DB_SYSTEM, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, ATTR_DB_CONNECTION_STRING } from './semconv.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-redis\";\nconst ORIGIN = \"auto.db.otel.redis\";\nconst OTEL_OPEN_SPANS = /* @__PURE__ */ Symbol(\"opentelemetry.instrumentation.redis.open_spans\");\nconst MULTI_COMMAND_OPTIONS = /* @__PURE__ */ Symbol(\"opentelemetry.instrumentation.redis.multi_command_options\");\nfunction endSpan(span, err) {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n}\nfunction runResponseHook(responseHook, span, commandName, commandArgs, response) {\n if (!responseHook) {\n return;\n }\n try {\n responseHook(span, commandName, commandArgs, response);\n } catch {\n }\n}\nfunction removeCredentialsFromDBConnectionStringAttribute(url) {\n if (typeof url !== \"string\" || !url) {\n return void 0;\n }\n try {\n const u = new URL(url);\n u.searchParams.delete(\"user_pwd\");\n u.username = \"\";\n u.password = \"\";\n return u.href;\n } catch (err) {\n DEBUG_BUILD && debug.error(\"failed to sanitize redis connection url\", err);\n }\n return void 0;\n}\nfunction getClientAttributes(options) {\n return {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_NET_PEER_NAME]: options?.socket?.host,\n [ATTR_NET_PEER_PORT]: options?.socket?.port,\n [ATTR_DB_CONNECTION_STRING]: removeCredentialsFromDBConnectionStringAttribute(options?.url),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n };\n}\nconst _RedisInstrumentationV2_V3 = class _RedisInstrumentationV2_V3 extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n \"redis\",\n [\">=2.6.0 <4\"],\n (moduleExports) => {\n if (isWrapped(moduleExports.RedisClient.prototype[\"internal_send_command\"])) {\n this._unwrap(moduleExports.RedisClient.prototype, \"internal_send_command\");\n }\n this._wrap(moduleExports.RedisClient.prototype, \"internal_send_command\", this._getPatchInternalSendCommand());\n return moduleExports;\n },\n (moduleExports) => {\n if (moduleExports === void 0) return;\n this._unwrap(moduleExports.RedisClient.prototype, \"internal_send_command\");\n }\n )\n ];\n }\n _getPatchInternalSendCommand() {\n const instrumentation = this;\n return function internal_send_command(original) {\n return function internal_send_command_trace(cmd) {\n if (arguments.length !== 1 || typeof cmd !== \"object\") {\n return original.apply(this, arguments);\n }\n const attributes = {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_DB_STATEMENT]: defaultDbStatementSerializer(cmd.command, cmd.args),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n };\n if (this.connection_options) {\n attributes[ATTR_NET_PEER_NAME] = this.connection_options.host;\n attributes[ATTR_NET_PEER_PORT] = this.connection_options.port;\n }\n if (this.address) {\n attributes[ATTR_DB_CONNECTION_STRING] = `redis://${this.address}`;\n }\n const span = startInactiveSpan({\n name: `${_RedisInstrumentationV2_V3.COMPONENT}-${cmd.command}`,\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n const originalCallback = arguments[0].callback;\n if (originalCallback) {\n const parentSpan = getActiveSpan();\n arguments[0].callback = function callback(err, reply) {\n runResponseHook(instrumentation.getConfig().responseHook, span, cmd.command, cmd.args, reply);\n endSpan(span, err);\n return withActiveSpan(parentSpan ?? null, () => originalCallback.apply(this, arguments));\n };\n }\n try {\n return original.apply(this, arguments);\n } catch (rethrow) {\n endSpan(span, rethrow);\n throw rethrow;\n }\n };\n };\n }\n};\n_RedisInstrumentationV2_V3.COMPONENT = \"redis\";\nlet RedisInstrumentationV2_V3 = _RedisInstrumentationV2_V3;\nconst _RedisInstrumentationV4_V5 = class _RedisInstrumentationV4_V5 extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return [\n this._getInstrumentationNodeModuleDefinition(\"@redis/client\"),\n this._getInstrumentationNodeModuleDefinition(\"@node-redis/client\")\n ];\n }\n _getInstrumentationNodeModuleDefinition(basePackageName) {\n const commanderModuleFile = new InstrumentationNodeModuleFile(\n `${basePackageName}/dist/lib/commander.js`,\n [\"^1.0.0\"],\n (moduleExports, moduleVersion) => {\n const transformCommandArguments = moduleExports.transformCommandArguments;\n if (!transformCommandArguments) {\n DEBUG_BUILD && debug.error(\"internal instrumentation error, missing transformCommandArguments function\");\n return moduleExports;\n }\n const functionToPatch = moduleVersion?.startsWith(\"1.0.\") ? \"extendWithCommands\" : \"attachCommands\";\n if (isWrapped(moduleExports?.[functionToPatch])) {\n this._unwrap(moduleExports, functionToPatch);\n }\n this._wrap(moduleExports, functionToPatch, this._getPatchExtendWithCommands(transformCommandArguments));\n return moduleExports;\n },\n (moduleExports) => {\n if (isWrapped(moduleExports?.extendWithCommands)) {\n this._unwrap(moduleExports, \"extendWithCommands\");\n }\n if (isWrapped(moduleExports?.attachCommands)) {\n this._unwrap(moduleExports, \"attachCommands\");\n }\n }\n );\n const multiCommanderModule = new InstrumentationNodeModuleFile(\n `${basePackageName}/dist/lib/client/multi-command.js`,\n [\"^1.0.0\", \">=5.0.0 <5.12.0\"],\n (moduleExports) => {\n const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n if (isWrapped(redisClientMultiCommandPrototype?.exec)) {\n this._unwrap(redisClientMultiCommandPrototype, \"exec\");\n }\n this._wrap(redisClientMultiCommandPrototype, \"exec\", this._getPatchMultiCommandsExec());\n if (isWrapped(redisClientMultiCommandPrototype?.execAsPipeline)) {\n this._unwrap(redisClientMultiCommandPrototype, \"execAsPipeline\");\n }\n this._wrap(redisClientMultiCommandPrototype, \"execAsPipeline\", this._getPatchMultiCommandsExec());\n if (isWrapped(redisClientMultiCommandPrototype?.addCommand)) {\n this._unwrap(redisClientMultiCommandPrototype, \"addCommand\");\n }\n this._wrap(redisClientMultiCommandPrototype, \"addCommand\", this._getPatchMultiCommandsAddCommand());\n return moduleExports;\n },\n (moduleExports) => {\n const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n if (isWrapped(redisClientMultiCommandPrototype?.exec)) {\n this._unwrap(redisClientMultiCommandPrototype, \"exec\");\n }\n if (isWrapped(redisClientMultiCommandPrototype?.execAsPipeline)) {\n this._unwrap(redisClientMultiCommandPrototype, \"execAsPipeline\");\n }\n if (isWrapped(redisClientMultiCommandPrototype?.addCommand)) {\n this._unwrap(redisClientMultiCommandPrototype, \"addCommand\");\n }\n }\n );\n const clientIndexModule = new InstrumentationNodeModuleFile(\n `${basePackageName}/dist/lib/client/index.js`,\n [\"^1.0.0\", \">=5.0.0 <5.12.0\"],\n (moduleExports) => {\n const redisClientPrototype = moduleExports?.default?.prototype;\n if (redisClientPrototype?.multi) {\n if (isWrapped(redisClientPrototype?.multi)) {\n this._unwrap(redisClientPrototype, \"multi\");\n }\n this._wrap(redisClientPrototype, \"multi\", this._getPatchRedisClientMulti());\n }\n if (redisClientPrototype?.MULTI) {\n if (isWrapped(redisClientPrototype?.MULTI)) {\n this._unwrap(redisClientPrototype, \"MULTI\");\n }\n this._wrap(redisClientPrototype, \"MULTI\", this._getPatchRedisClientMulti());\n }\n if (isWrapped(redisClientPrototype?.sendCommand)) {\n this._unwrap(redisClientPrototype, \"sendCommand\");\n }\n this._wrap(redisClientPrototype, \"sendCommand\", this._getPatchRedisClientSendCommand());\n if (isWrapped(redisClientPrototype?.connect)) {\n this._unwrap(redisClientPrototype, \"connect\");\n }\n this._wrap(redisClientPrototype, \"connect\", this._getPatchedClientConnect());\n return moduleExports;\n },\n (moduleExports) => {\n const redisClientPrototype = moduleExports?.default?.prototype;\n if (isWrapped(redisClientPrototype?.multi)) {\n this._unwrap(redisClientPrototype, \"multi\");\n }\n if (isWrapped(redisClientPrototype?.MULTI)) {\n this._unwrap(redisClientPrototype, \"MULTI\");\n }\n if (isWrapped(redisClientPrototype?.sendCommand)) {\n this._unwrap(redisClientPrototype, \"sendCommand\");\n }\n if (isWrapped(redisClientPrototype?.connect)) {\n this._unwrap(redisClientPrototype, \"connect\");\n }\n }\n );\n return new InstrumentationNodeModuleDefinition(\n basePackageName,\n [\"^1.0.0\", \">=5.0.0 <5.12.0\"],\n (moduleExports) => moduleExports,\n () => {\n },\n [commanderModuleFile, multiCommanderModule, clientIndexModule]\n );\n }\n _getPatchExtendWithCommands(transformCommandArguments) {\n const plugin = this;\n return function extendWithCommandsPatchWrapper(original) {\n return function extendWithCommandsPatch(config) {\n if (config?.BaseClass?.name !== \"RedisClient\") {\n return original.apply(this, arguments);\n }\n const origExecutor = config.executor;\n config.executor = function(command, args) {\n const redisCommandArguments = transformCommandArguments(command, args).args;\n return plugin._traceClientCommand(origExecutor, this, arguments, redisCommandArguments);\n };\n return original.apply(this, arguments);\n };\n };\n }\n _getPatchMultiCommandsExec() {\n const plugin = this;\n return function execPatchWrapper(original) {\n return function execPatch() {\n const execRes = original.apply(this, arguments);\n if (typeof execRes?.then !== \"function\") {\n DEBUG_BUILD && debug.error(\"non-promise result when patching exec/execAsPipeline\");\n return execRes;\n }\n return execRes.then((redisRes) => {\n const openSpans = this[OTEL_OPEN_SPANS];\n plugin._endSpansWithRedisReplies(openSpans, redisRes);\n return redisRes;\n }).catch((err) => {\n const openSpans = this[OTEL_OPEN_SPANS];\n if (!openSpans) {\n DEBUG_BUILD && debug.error(\"cannot find open spans to end for multi/pipeline\");\n } else {\n const replies = err.constructor.name === \"MultiErrorReply\" ? err.replies : new Array(openSpans.length).fill(err);\n plugin._endSpansWithRedisReplies(openSpans, replies);\n }\n return Promise.reject(err);\n });\n };\n };\n }\n _getPatchMultiCommandsAddCommand() {\n const plugin = this;\n return function addCommandWrapper(original) {\n return function addCommandPatch(args) {\n return plugin._traceClientCommand(original, this, arguments, args);\n };\n };\n }\n _getPatchRedisClientMulti() {\n return function multiPatchWrapper(original) {\n return function multiPatch() {\n const multiRes = original.apply(this, arguments);\n multiRes[MULTI_COMMAND_OPTIONS] = this.options;\n return multiRes;\n };\n };\n }\n _getPatchRedisClientSendCommand() {\n const plugin = this;\n return function sendCommandWrapper(original) {\n return function sendCommandPatch(args) {\n return plugin._traceClientCommand(original, this, arguments, args);\n };\n };\n }\n _getPatchedClientConnect() {\n return function connectWrapper(original) {\n return function patchedConnect() {\n const attributes = getClientAttributes(this.options);\n const span = startInactiveSpan({\n name: `${_RedisInstrumentationV4_V5.COMPONENT}-connect`,\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n const res = withActiveSpan(span, () => original.apply(this));\n return res.then(\n (result) => {\n span.end();\n return result;\n },\n (error) => {\n endSpan(span, error);\n return Promise.reject(error);\n }\n );\n };\n };\n }\n _traceClientCommand(origFunction, origThis, origArguments, redisCommandArguments) {\n const clientOptions = origThis.options || origThis[MULTI_COMMAND_OPTIONS];\n const commandName = redisCommandArguments[0];\n const commandArgs = redisCommandArguments.slice(1);\n const attributes = getClientAttributes(clientOptions);\n const dbStatement = defaultDbStatementSerializer(commandName, commandArgs);\n if (dbStatement != null) {\n attributes[ATTR_DB_STATEMENT] = dbStatement;\n }\n const span = startInactiveSpan({\n name: `${_RedisInstrumentationV4_V5.COMPONENT}-${commandName}`,\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n const res = withActiveSpan(span, () => origFunction.apply(origThis, origArguments));\n if (res instanceof Promise) {\n res.then(\n (redisRes) => {\n this._endSpanWithResponse(span, commandName, commandArgs, redisRes, void 0);\n },\n (err) => {\n this._endSpanWithResponse(span, commandName, commandArgs, null, err);\n }\n );\n } else {\n const redisClientMultiCommand = res;\n redisClientMultiCommand[OTEL_OPEN_SPANS] = redisClientMultiCommand[OTEL_OPEN_SPANS] || [];\n redisClientMultiCommand[OTEL_OPEN_SPANS].push({\n span,\n commandName,\n commandArgs\n });\n }\n return res;\n }\n _endSpansWithRedisReplies(openSpans, replies) {\n if (!openSpans) {\n DEBUG_BUILD && debug.error(\"cannot find open spans to end for redis multi/pipeline\");\n return;\n }\n if (replies.length !== openSpans.length) {\n DEBUG_BUILD && debug.error(\"number of multi command spans does not match response from redis\");\n return;\n }\n for (let i = 0; i < openSpans.length; i++) {\n const { span, commandName, commandArgs } = openSpans[i];\n const currCommandRes = replies[i];\n const [res, err] = currCommandRes instanceof Error ? [null, currCommandRes] : [currCommandRes, void 0];\n this._endSpanWithResponse(span, commandName, commandArgs, res, err);\n }\n }\n _endSpanWithResponse(span, commandName, commandArgs, response, error) {\n if (!error) {\n runResponseHook(this.getConfig().responseHook, span, commandName, commandArgs, response);\n }\n endSpan(span, error);\n }\n};\n_RedisInstrumentationV4_V5.COMPONENT = \"redis\";\nlet RedisInstrumentationV4_V5 = _RedisInstrumentationV4_V5;\nclass RedisInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n this.initialized = false;\n this.instrumentationV2_V3 = new RedisInstrumentationV2_V3(this.getConfig());\n this.instrumentationV4_V5 = new RedisInstrumentationV4_V5(this.getConfig());\n this.initialized = true;\n }\n setConfig(config = {}) {\n super.setConfig(config);\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.setConfig(config);\n this.instrumentationV4_V5.setConfig(config);\n }\n init() {\n }\n getModuleDefinitions() {\n return [...this.instrumentationV2_V3.getModuleDefinitions(), ...this.instrumentationV4_V5.getModuleDefinitions()];\n }\n setTracerProvider(tracerProvider) {\n super.setTracerProvider(tracerProvider);\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.setTracerProvider(tracerProvider);\n this.instrumentationV4_V5.setTracerProvider(tracerProvider);\n }\n enable() {\n super.enable();\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.enable();\n this.instrumentationV4_V5.enable();\n }\n disable() {\n super.disable();\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.disable();\n this.instrumentationV4_V5.disable();\n }\n}\n\nexport { RedisInstrumentation };\n//# sourceMappingURL=redis-instrumentation.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, startInactiveSpan, SPAN_KIND, getActiveSpan, withActiveSpan, SPAN_STATUS_ERROR } from '@sentry/core';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile.js';\nimport { SpanNames } from './enums/SpanNames.js';\nimport { shouldSkipInstrumentation, getSemanticAttributesFromConnection, patchClientConnectCallback, isObjectWithTextString, handleConfigQuery, patchCallback, getErrorMessage, getSemanticAttributesFromPoolConnection, patchCallbackPGPool } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-pg\";\nfunction extractModuleExports(module) {\n return module[Symbol.toStringTag] === \"Module\" ? module.default : module;\n}\nfunction bindCallbackToSpan(parentSpan, callback) {\n return function(...args) {\n return withActiveSpan(parentSpan, () => callback.apply(this, args));\n };\n}\nclass PgInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n const SUPPORTED_PG_VERSIONS = [\">=8.0.3 <9\"];\n const SUPPORTED_PG_POOL_VERSIONS = [\">=2.0.0 <4\"];\n const modulePgNativeClient = new InstrumentationNodeModuleFile(\n \"pg/lib/native/client.js\",\n SUPPORTED_PG_VERSIONS,\n this._patchPgClient.bind(this),\n this._unpatchPgClient.bind(this)\n );\n const modulePgClient = new InstrumentationNodeModuleFile(\n \"pg/lib/client.js\",\n SUPPORTED_PG_VERSIONS,\n this._patchPgClient.bind(this),\n this._unpatchPgClient.bind(this)\n );\n const modulePG = new InstrumentationNodeModuleDefinition(\n \"pg\",\n SUPPORTED_PG_VERSIONS,\n (module) => {\n const moduleExports = extractModuleExports(module);\n this._patchPgClient(moduleExports.Client);\n return module;\n },\n (module) => {\n const moduleExports = extractModuleExports(module);\n this._unpatchPgClient(moduleExports.Client);\n return module;\n },\n [modulePgClient, modulePgNativeClient]\n );\n const modulePGPool = new InstrumentationNodeModuleDefinition(\n \"pg-pool\",\n SUPPORTED_PG_POOL_VERSIONS,\n (module) => {\n const moduleExports = extractModuleExports(module);\n if (isWrapped(moduleExports.prototype.connect)) {\n this._unwrap(moduleExports.prototype, \"connect\");\n }\n this._wrap(moduleExports.prototype, \"connect\", this._getPoolConnectPatch());\n return moduleExports;\n },\n (module) => {\n const moduleExports = extractModuleExports(module);\n if (isWrapped(moduleExports.prototype.connect)) {\n this._unwrap(moduleExports.prototype, \"connect\");\n }\n }\n );\n return [modulePG, modulePGPool];\n }\n _patchPgClient(module) {\n if (!module) {\n return;\n }\n const moduleExports = extractModuleExports(module);\n if (isWrapped(moduleExports.prototype.query)) {\n this._unwrap(moduleExports.prototype, \"query\");\n }\n if (isWrapped(moduleExports.prototype.connect)) {\n this._unwrap(moduleExports.prototype, \"connect\");\n }\n this._wrap(moduleExports.prototype, \"query\", this._getClientQueryPatch());\n this._wrap(moduleExports.prototype, \"connect\", this._getClientConnectPatch());\n return module;\n }\n _unpatchPgClient(module) {\n const moduleExports = extractModuleExports(module);\n if (isWrapped(moduleExports.prototype.query)) {\n this._unwrap(moduleExports.prototype, \"query\");\n }\n if (isWrapped(moduleExports.prototype.connect)) {\n this._unwrap(moduleExports.prototype, \"connect\");\n }\n return module;\n }\n _getClientConnectPatch() {\n const plugin = this;\n return (original) => {\n return function connect(callback) {\n if (shouldSkipInstrumentation() || plugin.getConfig().ignoreConnectSpans) {\n return original.call(this, callback);\n }\n const span = startInactiveSpan({\n name: SpanNames.CONNECT,\n kind: SPAN_KIND.CLIENT,\n attributes: getSemanticAttributesFromConnection(this)\n });\n let cb = callback;\n if (cb) {\n const parentSpan = getActiveSpan();\n cb = patchClientConnectCallback(span, cb);\n if (parentSpan) {\n cb = bindCallbackToSpan(parentSpan, cb);\n }\n }\n const connectResult = withActiveSpan(span, () => {\n return original.call(this, cb);\n });\n return handleConnectResult(span, connectResult);\n };\n };\n }\n _getClientQueryPatch() {\n return (original) => {\n this._diag.debug(\"Patching pg.Client.prototype.query\");\n return function query(...args) {\n if (shouldSkipInstrumentation()) {\n return original.apply(this, args);\n }\n const arg0 = args[0];\n const firstArgIsString = typeof arg0 === \"string\";\n const firstArgIsQueryObjectWithText = isObjectWithTextString(arg0);\n const queryConfig = firstArgIsString ? {\n text: arg0,\n values: Array.isArray(args[1]) ? args[1] : void 0\n } : firstArgIsQueryObjectWithText ? {\n ...arg0,\n name: arg0.name,\n text: arg0.text,\n values: arg0.values ?? (Array.isArray(args[1]) ? args[1] : void 0)\n } : void 0;\n const span = handleConfigQuery.call(this, queryConfig);\n if (args.length > 0) {\n const parentSpan = getActiveSpan();\n if (typeof args[args.length - 1] === \"function\") {\n args[args.length - 1] = patchCallback(span, args[args.length - 1]);\n if (parentSpan) {\n args[args.length - 1] = bindCallbackToSpan(parentSpan, args[args.length - 1]);\n }\n } else if (typeof queryConfig?.callback === \"function\") {\n let callback = patchCallback(span, queryConfig.callback);\n if (parentSpan) {\n callback = bindCallbackToSpan(parentSpan, callback);\n }\n args[0].callback = callback;\n }\n }\n let result;\n try {\n result = original.apply(this, args);\n } catch (e) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: getErrorMessage(e) });\n span.end();\n throw e;\n }\n if (result instanceof Promise) {\n return result.then((result2) => {\n span.end();\n return result2;\n }).catch((error) => {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: getErrorMessage(error) });\n span.end();\n return Promise.reject(error);\n });\n }\n return result;\n };\n };\n }\n _getPoolConnectPatch() {\n const plugin = this;\n return (originalConnect) => {\n return function connect(callback) {\n if (shouldSkipInstrumentation() || plugin.getConfig().ignoreConnectSpans) {\n return originalConnect.call(this, callback);\n }\n const span = startInactiveSpan({\n name: SpanNames.POOL_CONNECT,\n kind: SPAN_KIND.CLIENT,\n attributes: getSemanticAttributesFromPoolConnection(this.options)\n });\n let cb = callback;\n if (cb) {\n const parentSpan = getActiveSpan();\n cb = patchCallbackPGPool(span, cb);\n if (parentSpan) {\n cb = bindCallbackToSpan(parentSpan, cb);\n }\n }\n const connectResult = withActiveSpan(span, () => {\n return originalConnect.call(this, cb);\n });\n return handleConnectResult(span, connectResult);\n };\n };\n }\n}\nfunction handleConnectResult(span, connectResult) {\n if (!(connectResult instanceof Promise)) {\n return connectResult;\n }\n const connectResultPromise = connectResult;\n return connectResultPromise.then((result) => {\n span.end();\n return result;\n }).catch((error) => {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: getErrorMessage(error) });\n span.end();\n return Promise.reject(error);\n });\n}\n\nexport { PgInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "var SpanNames = /* @__PURE__ */ ((SpanNames2) => {\n SpanNames2[\"QUERY_PREFIX\"] = \"pg.query\";\n SpanNames2[\"CONNECT\"] = \"pg.connect\";\n SpanNames2[\"POOL_CONNECT\"] = \"pg-pool.connect\";\n return SpanNames2;\n})(SpanNames || {});\n\nexport { SpanNames };\n//# sourceMappingURL=SpanNames.js.map\n", + "var AttributeNames = /* @__PURE__ */ ((AttributeNames2) => {\n AttributeNames2[\"PG_PLAN\"] = \"db.postgresql.plan\";\n AttributeNames2[\"IDLE_TIMEOUT_MILLIS\"] = \"db.postgresql.idle.timeout.millis\";\n AttributeNames2[\"MAX_CLIENT\"] = \"db.postgresql.max.client\";\n return AttributeNames2;\n})(AttributeNames || {});\n\nexport { AttributeNames };\n//# sourceMappingURL=AttributeNames.js.map\n", + "const ATTR_DB_CONNECTION_STRING = \"db.connection_string\";\nconst ATTR_DB_NAME = \"db.name\";\nconst ATTR_DB_STATEMENT = \"db.statement\";\nconst ATTR_DB_SYSTEM = \"db.system\";\nconst ATTR_DB_USER = \"db.user\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\nconst DB_SYSTEM_VALUE_POSTGRESQL = \"postgresql\";\n\nexport { ATTR_DB_CONNECTION_STRING, ATTR_DB_NAME, ATTR_DB_STATEMENT, ATTR_DB_SYSTEM, ATTR_DB_USER, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, DB_SYSTEM_VALUE_POSTGRESQL };\n//# sourceMappingURL=semconv.js.map\n", + "import { getActiveSpan, SPAN_STATUS_ERROR, startInactiveSpan, SPAN_KIND, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { AttributeNames } from './enums/AttributeNames.js';\nimport { SpanNames } from './enums/SpanNames.js';\nimport { DB_SYSTEM_VALUE_POSTGRESQL, ATTR_NET_PEER_PORT, ATTR_NET_PEER_NAME, ATTR_DB_USER, ATTR_DB_CONNECTION_STRING, ATTR_DB_NAME, ATTR_DB_SYSTEM, ATTR_DB_STATEMENT } from './semconv.js';\n\nconst ORIGIN = \"auto.db.otel.postgres\";\nfunction getQuerySpanName(dbName, queryConfig) {\n if (!queryConfig) return SpanNames.QUERY_PREFIX;\n const command = typeof queryConfig.name === \"string\" && queryConfig.name ? queryConfig.name : parseNormalizedOperationName(queryConfig.text);\n return `${SpanNames.QUERY_PREFIX}:${command}${dbName ? ` ${dbName}` : \"\"}`;\n}\nfunction parseNormalizedOperationName(queryText) {\n const trimmedQuery = queryText.trim();\n const indexOfFirstSpace = trimmedQuery.indexOf(\" \");\n let sqlCommand = indexOfFirstSpace === -1 ? trimmedQuery : trimmedQuery.slice(0, indexOfFirstSpace);\n sqlCommand = sqlCommand.toUpperCase();\n return sqlCommand.endsWith(\";\") ? sqlCommand.slice(0, -1) : sqlCommand;\n}\nfunction parseAndMaskConnectionString(connectionString) {\n try {\n const url = new URL(connectionString);\n url.username = \"\";\n url.password = \"\";\n return url.toString();\n } catch {\n return \"postgresql://localhost:5432/\";\n }\n}\nfunction getConnectionString(params) {\n if (\"connectionString\" in params && params.connectionString) {\n return parseAndMaskConnectionString(params.connectionString);\n }\n const host = params.host || \"localhost\";\n const port = params.port || 5432;\n const database = params.database || \"\";\n return `postgresql://${host}:${port}/${database}`;\n}\nfunction getPort(port) {\n if (Number.isInteger(port)) {\n return port;\n }\n return void 0;\n}\nfunction getSemanticAttributesFromConnection(params) {\n return {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_POSTGRESQL,\n [ATTR_DB_NAME]: params.database,\n [ATTR_DB_CONNECTION_STRING]: getConnectionString(params),\n [ATTR_DB_USER]: params.user,\n [ATTR_NET_PEER_NAME]: params.host,\n // required\n [ATTR_NET_PEER_PORT]: getPort(params.port)\n };\n}\nfunction getSemanticAttributesFromPoolConnection(params) {\n let url;\n try {\n url = params.connectionString ? new URL(params.connectionString) : void 0;\n } catch {\n url = void 0;\n }\n return {\n [AttributeNames.IDLE_TIMEOUT_MILLIS]: params.idleTimeoutMillis,\n [AttributeNames.MAX_CLIENT]: params.maxClient,\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_POSTGRESQL,\n [ATTR_DB_NAME]: url?.pathname.slice(1) ?? params.database,\n [ATTR_DB_CONNECTION_STRING]: getConnectionString(params),\n [ATTR_NET_PEER_NAME]: url?.hostname ?? params.host,\n [ATTR_NET_PEER_PORT]: Number(url?.port) || getPort(params.port),\n [ATTR_DB_USER]: url?.username ?? params.user\n };\n}\nfunction shouldSkipInstrumentation() {\n return getActiveSpan() === void 0;\n}\nfunction handleConfigQuery(queryConfig) {\n const { connectionParameters } = this;\n const dbName = connectionParameters.database;\n const spanName = getQuerySpanName(dbName, queryConfig);\n const span = startInactiveSpan({\n name: spanName,\n kind: SPAN_KIND.CLIENT,\n attributes: {\n ...getSemanticAttributesFromConnection(connectionParameters),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN\n }\n });\n if (!queryConfig) {\n return span;\n }\n if (queryConfig.text) {\n span.setAttribute(ATTR_DB_STATEMENT, queryConfig.text);\n }\n if (typeof queryConfig.name === \"string\") {\n span.setAttribute(AttributeNames.PG_PLAN, queryConfig.name);\n }\n return span;\n}\nfunction patchCallback(span, cb) {\n return function patchedCallback(err, res) {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n cb.call(this, err, res);\n };\n}\nfunction patchCallbackPGPool(span, cb) {\n return function patchedCallback(err, res, done) {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n cb.call(this, err, res, done);\n };\n}\nfunction patchClientConnectCallback(span, cb) {\n return function patchedClientConnectCallback(...args) {\n const err = args[0];\n if (err instanceof Error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n cb.apply(this, args);\n };\n}\nfunction getErrorMessage(e) {\n return typeof e === \"object\" && e !== null && \"message\" in e ? String(e.message) : void 0;\n}\nfunction isObjectWithTextString(it) {\n return typeof it === \"object\" && typeof it?.text === \"string\";\n}\n\nexport { ORIGIN, getConnectionString, getErrorMessage, getQuerySpanName, getSemanticAttributesFromConnection, getSemanticAttributesFromPoolConnection, handleConfigQuery, isObjectWithTextString, parseAndMaskConnectionString, parseNormalizedOperationName, patchCallback, patchCallbackPGPool, patchClientConnectCallback, shouldSkipInstrumentation };\n//# sourceMappingURL=utils.js.map\n", + "import { PgInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Postgres\";\nconst instrumentPostgres = generateInstrumentOnce(\n INTEGRATION_NAME,\n PgInstrumentation,\n (options) => ({\n ignoreConnectSpans: options?.ignoreConnectSpans ?? false\n })\n);\nconst _postgresIntegration = ((options) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentPostgres(options);\n }\n };\n});\nconst postgresIntegration = defineIntegration(_postgresIntegration);\n\nexport { instrumentPostgres, postgresIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { trace, context } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\nimport { InstrumentationNodeModuleFile } from './InstrumentationNodeModuleFile.js';\nimport { ATTR_DB_OPERATION_NAME, ATTR_DB_QUERY_TEXT, ATTR_DB_SYSTEM_NAME, ATTR_DB_RESPONSE_STATUS_CODE, ATTR_ERROR_TYPE } from '@opentelemetry/semantic-conventions';\nimport { SDK_VERSION, debug, replaceExports, startSpanManual, SPAN_STATUS_ERROR, defineIntegration, instrumentPostgresJsSql } from '@sentry/core';\nimport { generateInstrumentOnce, addOriginToSpan } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../debug-build.js';\n\nconst INTEGRATION_NAME = \"PostgresJs\";\nconst SUPPORTED_VERSIONS = [\">=3.0.0 <4\"];\nconst SQL_OPERATION_REGEX = /^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i;\nconst QUERY_FROM_INSTRUMENTED_SQL = /* @__PURE__ */ Symbol.for(\"sentry.query.from.instrumented.sql\");\nconst instrumentPostgresJs = generateInstrumentOnce(\n INTEGRATION_NAME,\n (options) => new PostgresJsInstrumentation({\n requireParentSpan: options?.requireParentSpan ?? true,\n requestHook: options?.requestHook\n })\n);\nclass PostgresJsInstrumentation extends InstrumentationBase {\n constructor(config) {\n super(\"sentry-postgres-js\", SDK_VERSION, config);\n }\n /**\n * Initializes the instrumentation by patching the postgres module.\n * Uses two complementary approaches:\n * 1. Main function wrapper: instruments sql instances created AFTER instrumentation is set up (CJS + ESM)\n * 2. Query.prototype patch: fallback for sql instances created BEFORE instrumentation (CJS only)\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n \"postgres\",\n SUPPORTED_VERSIONS,\n (exports) => {\n try {\n return this._patchPostgres(exports);\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Failed to patch postgres module:\", e);\n return exports;\n }\n },\n (exports) => exports\n );\n [\"src\", \"cf/src\", \"cjs/src\"].forEach((path) => {\n module.files.push(\n new InstrumentationNodeModuleFile(\n `postgres/${path}/query.js`,\n SUPPORTED_VERSIONS,\n this._patchQueryPrototype.bind(this),\n this._unpatchQueryPrototype.bind(this)\n )\n );\n });\n return module;\n }\n /**\n * Patches the postgres module by wrapping the main export function.\n * This intercepts the creation of sql instances and instruments them.\n */\n _patchPostgres(exports) {\n const isFunction = typeof exports === \"function\";\n const Original = isFunction ? exports : exports.default;\n if (typeof Original !== \"function\") {\n DEBUG_BUILD && debug.warn(\"postgres module does not export a function. Skipping instrumentation.\");\n return exports;\n }\n const self = this;\n const WrappedPostgres = function(...args) {\n const sql = Reflect.construct(Original, args);\n if (!sql || typeof sql !== \"function\") {\n DEBUG_BUILD && debug.warn(\"postgres() did not return a valid instance\");\n return sql;\n }\n const config = self.getConfig();\n return instrumentPostgresJsSql(sql, {\n requireParentSpan: config.requireParentSpan,\n requestHook: config.requestHook\n });\n };\n Object.setPrototypeOf(WrappedPostgres, Original);\n Object.setPrototypeOf(WrappedPostgres.prototype, Original.prototype);\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (![\"length\", \"name\", \"prototype\"].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedPostgres, key, descriptor);\n }\n }\n }\n if (isFunction) {\n return WrappedPostgres;\n } else {\n replaceExports(exports, \"default\", WrappedPostgres);\n return exports;\n }\n }\n /**\n * Determines whether a span should be created based on the current context.\n * If `requireParentSpan` is set to true in the configuration, a span will\n * only be created if there is a parent span available.\n */\n _shouldCreateSpans() {\n const config = this.getConfig();\n const hasParentSpan = trace.getSpan(context.active()) !== void 0;\n return hasParentSpan || !config.requireParentSpan;\n }\n /**\n * Extracts DB operation name from SQL query and sets it on the span.\n */\n _setOperationName(span, sanitizedQuery, command) {\n if (command) {\n span.setAttribute(ATTR_DB_OPERATION_NAME, command);\n return;\n }\n const operationMatch = sanitizedQuery?.match(SQL_OPERATION_REGEX);\n if (operationMatch?.[1]) {\n span.setAttribute(ATTR_DB_OPERATION_NAME, operationMatch[1].toUpperCase());\n }\n }\n /**\n * Reconstructs the full SQL query from template strings with PostgreSQL placeholders.\n *\n * For sql`SELECT * FROM users WHERE id = ${123} AND name = ${'foo'}`:\n * strings = [\"SELECT * FROM users WHERE id = \", \" AND name = \", \"\"]\n * returns: \"SELECT * FROM users WHERE id = $1 AND name = $2\"\n */\n _reconstructQuery(strings) {\n if (!strings?.length) {\n return void 0;\n }\n if (strings.length === 1) {\n return strings[0] || void 0;\n }\n return strings.reduce((acc, str, i) => i === 0 ? str : `${acc}$${i}${str}`, \"\");\n }\n /**\n * Sanitize SQL query as per the OTEL semantic conventions\n * https://opentelemetry.io/docs/specs/semconv/database/database-spans/#sanitization-of-dbquerytext\n *\n * PostgreSQL $n placeholders are preserved per OTEL spec - they're parameterized queries,\n * not sensitive literals. Only actual values (strings, numbers, booleans) are sanitized.\n */\n _sanitizeSqlQuery(sqlQuery) {\n if (!sqlQuery) {\n return \"Unknown SQL Query\";\n }\n return sqlQuery.replace(/--.*$/gm, \"\").replace(/\\/\\*[\\s\\S]*?\\*\\//g, \"\").replace(/;\\s*$/, \"\").replace(/\\s+/g, \" \").trim().replace(/\\bX'[0-9A-Fa-f]*'/gi, \"?\").replace(/\\bB'[01]*'/gi, \"?\").replace(/'(?:[^']|'')*'/g, \"?\").replace(/\\b0x[0-9A-Fa-f]+/gi, \"?\").replace(/\\b(?:TRUE|FALSE)\\b/gi, \"?\").replace(/-?\\b\\d+\\.?\\d*[eE][+-]?\\d+\\b/g, \"?\").replace(/-?\\b\\d+\\.\\d+\\b/g, \"?\").replace(/-?\\.\\d+\\b/g, \"?\").replace(/(? {\n addOriginToSpan(span, \"auto.db.postgresjs\");\n span.setAttributes({\n [ATTR_DB_SYSTEM_NAME]: \"postgres\",\n [ATTR_DB_QUERY_TEXT]: sanitizedSqlQuery\n });\n const config = self.getConfig();\n const { requestHook } = config;\n if (requestHook) {\n safeExecuteInTheMiddle(\n () => requestHook(span, sanitizedSqlQuery, void 0),\n (e) => {\n if (e) {\n span.setAttribute(\"sentry.hook.error\", \"requestHook failed\");\n DEBUG_BUILD && debug.error(`Error in requestHook for ${INTEGRATION_NAME} integration:`, e);\n }\n },\n true\n );\n }\n const originalResolve = this.resolve;\n this.resolve = new Proxy(originalResolve, {\n apply: (resolveTarget, resolveThisArg, resolveArgs) => {\n try {\n self._setOperationName(span, sanitizedSqlQuery, resolveArgs?.[0]?.command);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Error ending span in resolve callback:\", e);\n }\n return Reflect.apply(resolveTarget, resolveThisArg, resolveArgs);\n }\n });\n const originalReject = this.reject;\n this.reject = new Proxy(originalReject, {\n apply: (rejectTarget, rejectThisArg, rejectArgs) => {\n try {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: rejectArgs?.[0]?.message || \"unknown_error\"\n });\n span.setAttribute(ATTR_DB_RESPONSE_STATUS_CODE, rejectArgs?.[0]?.code || \"unknown\");\n span.setAttribute(ATTR_ERROR_TYPE, rejectArgs?.[0]?.name || \"unknown\");\n self._setOperationName(span, sanitizedSqlQuery);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error(\"Error ending span in reject callback:\", e);\n }\n return Reflect.apply(rejectTarget, rejectThisArg, rejectArgs);\n }\n });\n try {\n return originalHandle.apply(this, args);\n } catch (e) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: e instanceof Error ? e.message : \"unknown_error\"\n });\n span.end();\n throw e;\n }\n }\n );\n };\n moduleExports.Query.prototype.handle.__sentry_original__ = originalHandle;\n return moduleExports;\n }\n /**\n * Restores the original Query.prototype.handle method.\n */\n _unpatchQueryPrototype(moduleExports) {\n if (moduleExports.Query.prototype.handle.__sentry_original__) {\n moduleExports.Query.prototype.handle = moduleExports.Query.prototype.handle.__sentry_original__;\n }\n return moduleExports;\n }\n}\nconst _postgresJsIntegration = ((options) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentPostgresJs(options);\n }\n };\n});\nconst postgresJsIntegration = defineIntegration(_postgresJsIntegration);\n\nexport { PostgresJsInstrumentation, instrumentPostgresJs, postgresJsIntegration };\n//# sourceMappingURL=postgresjs.js.map\n", + "import { trace, SpanKind, TraceFlags, context } from '@opentelemetry/api';\nimport { defineIntegration, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, consoleSandbox } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { PrismaInstrumentation } from './vendored/instrumentation.js';\n\nconst INTEGRATION_NAME = \"Prisma\";\nfunction isPrismaV6TracingHelper(helper) {\n return !!helper && typeof helper === \"object\" && \"dispatchEngineSpans\" in helper;\n}\nfunction getPrismaTracingHelper() {\n const prismaInstrumentationObject = globalThis.PRISMA_INSTRUMENTATION;\n const prismaTracingHelper = prismaInstrumentationObject && typeof prismaInstrumentationObject === \"object\" && \"helper\" in prismaInstrumentationObject ? prismaInstrumentationObject.helper : void 0;\n return prismaTracingHelper;\n}\nclass SentryPrismaInteropInstrumentation extends PrismaInstrumentation {\n constructor(options) {\n super(options?.instrumentationConfig);\n }\n enable() {\n super.enable();\n const prismaTracingHelper = getPrismaTracingHelper();\n if (isPrismaV6TracingHelper(prismaTracingHelper)) {\n prismaTracingHelper.createEngineSpan = (engineSpanEvent) => {\n const tracer = trace.getTracer(\"prismaV5Compatibility\");\n const initialIdGenerator = tracer._idGenerator;\n if (!initialIdGenerator) {\n consoleSandbox(() => {\n console.warn(\n \"[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!\"\n );\n });\n return;\n }\n try {\n engineSpanEvent.spans.forEach((engineSpan) => {\n const kind = engineSpan.kind === \"client\" ? SpanKind.CLIENT : SpanKind.INTERNAL;\n const parentSpanId = engineSpan.parent_span_id;\n const spanId = engineSpan.span_id;\n const traceId = engineSpan.trace_id;\n const links = engineSpan.links?.map((link) => {\n return {\n context: {\n traceId: link.trace_id,\n spanId: link.span_id,\n traceFlags: TraceFlags.SAMPLED\n }\n };\n });\n const ctx = trace.setSpanContext(context.active(), {\n traceId,\n spanId: parentSpanId,\n traceFlags: TraceFlags.SAMPLED\n });\n context.with(ctx, () => {\n const temporaryIdGenerator = {\n generateTraceId: () => {\n return traceId;\n },\n generateSpanId: () => {\n return spanId;\n }\n };\n tracer._idGenerator = temporaryIdGenerator;\n const span = tracer.startSpan(engineSpan.name, {\n kind,\n links,\n startTime: engineSpan.start_time,\n attributes: engineSpan.attributes\n });\n span.end(engineSpan.end_time);\n tracer._idGenerator = initialIdGenerator;\n });\n });\n } finally {\n tracer._idGenerator = initialIdGenerator;\n }\n };\n }\n }\n}\nconst instrumentPrisma = generateInstrumentOnce(INTEGRATION_NAME, (options) => {\n return new SentryPrismaInteropInstrumentation(options);\n});\nconst prismaIntegration = defineIntegration((options) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentPrisma(options);\n },\n setup(client) {\n if (!getPrismaTracingHelper()) {\n return;\n }\n client.on(\"spanStart\", (span) => {\n const spanJSON = spanToJSON(span);\n if (spanJSON.description?.startsWith(\"prisma:\")) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, \"auto.db.otel.prisma\");\n }\n if ((spanJSON.description === \"prisma:engine:db_query\" || spanJSON.description === \"prisma:client:db_query\") && spanJSON.data[\"db.query.text\"]) {\n span.updateName(spanJSON.data[\"db.query.text\"]);\n }\n if (spanJSON.description === \"prisma:engine:db_query\" && !spanJSON.data[\"db.system\"]) {\n span.setAttribute(\"db.system\", \"prisma\");\n }\n });\n }\n };\n});\n\nexport { instrumentPrisma, prismaIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { ActiveTracingHelper } from './active-tracing-helper.js';\nimport { NAME, VERSION, MODULE_NAME, SUPPORTED_MODULE_VERSIONS } from './constants.js';\nimport { setGlobalTracingHelper, clearGlobalTracingHelper, getGlobalTracingHelper } from './global.js';\n\nclass PrismaInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(NAME, VERSION, config);\n }\n init() {\n const module = new InstrumentationNodeModuleDefinition(MODULE_NAME, SUPPORTED_MODULE_VERSIONS);\n return [module];\n }\n enable() {\n const config = this._config;\n setGlobalTracingHelper(\n new ActiveTracingHelper({\n ignoreSpanTypes: config.ignoreSpanTypes ?? []\n })\n );\n }\n disable() {\n clearGlobalTracingHelper();\n }\n isEnabled() {\n return getGlobalTracingHelper() !== void 0;\n }\n}\n\nexport { PrismaInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { getActiveSpan, startInactiveSpan, startSpanManual, SPAN_KIND, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\n\nconst showAllTraces = process.env.PRISMA_SHOW_ALL_TRACES === \"true\";\nconst nonSampledTraceParent = `00-10-10-00`;\nconst PRISMA_ORIGIN = \"auto.db.otel.prisma\";\nfunction buildSpanAttributes(name, attributes) {\n const merged = {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: PRISMA_ORIGIN\n };\n if (name === \"prisma:engine:db_query\" && merged[\"db.system\"] == null) {\n merged[\"db.system\"] = \"prisma\";\n }\n return merged;\n}\nfunction buildSpanName(name, attributes) {\n const queryText = attributes[\"db.query.text\"];\n if ((name === \"prisma:engine:db_query\" || name === \"prisma:client:db_query\") && typeof queryText === \"string\") {\n return queryText;\n }\n return name;\n}\nclass ActiveTracingHelper {\n constructor({ ignoreSpanTypes }) {\n this.ignoreSpanTypes = ignoreSpanTypes;\n }\n isEnabled() {\n return true;\n }\n getTraceParent(span) {\n const spanContext = (span ?? getActiveSpan())?.spanContext();\n if (spanContext) {\n return `00-${spanContext.traceId}-${spanContext.spanId}-0${spanContext.traceFlags}`;\n }\n return nonSampledTraceParent;\n }\n dispatchEngineSpans(spans) {\n const linkIds = /* @__PURE__ */ new Map();\n const roots = spans.filter((span) => span.parentId === null);\n for (const root of roots) {\n dispatchEngineSpan(root, spans, linkIds, this.ignoreSpanTypes);\n }\n }\n getActiveContext() {\n return getActiveSpan();\n }\n runInChildSpan(nameOrOptions, callback) {\n const options = typeof nameOrOptions === \"string\" ? { name: nameOrOptions } : nameOrOptions;\n if (options.internal && !showAllTraces) {\n return callback();\n }\n const name = `prisma:client:${options.name}`;\n if (shouldIgnoreSpan(name, this.ignoreSpanTypes)) {\n return callback();\n }\n const parentSpan = getActiveSpan();\n const attributes = buildSpanAttributes(name, options.attributes);\n const spanOptions = {\n name: buildSpanName(name, attributes),\n attributes,\n kind: options.kind,\n links: options.links,\n startTime: options.startTime,\n parentSpan\n };\n if (options.active === false) {\n const span = startInactiveSpan(spanOptions);\n return endSpan(span, () => callback(span, parentSpan));\n }\n return startSpanManual(spanOptions, (span) => endSpan(span, () => callback(span, parentSpan)));\n }\n}\nfunction dispatchEngineSpan(engineSpan, allSpans, linkIds, ignoreSpanTypes) {\n if (shouldIgnoreSpan(engineSpan.name, ignoreSpanTypes)) {\n return;\n }\n const attributes = buildSpanAttributes(engineSpan.name, engineSpan.attributes);\n startSpanManual(\n {\n name: buildSpanName(engineSpan.name, attributes),\n attributes,\n kind: engineSpan.kind === \"client\" ? SPAN_KIND.CLIENT : SPAN_KIND.INTERNAL,\n startTime: engineSpan.startTime\n },\n (span) => {\n linkIds.set(engineSpan.id, span.spanContext().spanId);\n if (engineSpan.links) {\n span.addLinks(\n engineSpan.links.flatMap((link) => {\n const linkedId = linkIds.get(link);\n if (!linkedId) {\n return [];\n }\n return {\n context: {\n spanId: linkedId,\n traceId: span.spanContext().traceId,\n traceFlags: span.spanContext().traceFlags\n }\n };\n })\n );\n }\n const children = allSpans.filter((s) => s.parentId === engineSpan.id);\n for (const child of children) {\n dispatchEngineSpan(child, allSpans, linkIds, ignoreSpanTypes);\n }\n span.end(engineSpan.endTime);\n }\n );\n}\nfunction endSpan(span, run) {\n let result;\n try {\n result = run();\n } catch (reason) {\n span.end();\n throw reason;\n }\n if (isPromiseLike(result)) {\n return result.then(\n (value) => {\n span.end();\n return value;\n },\n (reason) => {\n span.end();\n throw reason;\n }\n );\n }\n span.end();\n return result;\n}\nfunction isPromiseLike(value) {\n return value != null && typeof value[\"then\"] === \"function\";\n}\nfunction shouldIgnoreSpan(spanName, ignoreSpanTypes) {\n return ignoreSpanTypes.some((pattern) => typeof pattern === \"string\" ? pattern === spanName : pattern.test(spanName));\n}\n\nexport { ActiveTracingHelper };\n//# sourceMappingURL=active-tracing-helper.js.map\n", + "import { SDK_VERSION } from '@sentry/core';\n\nconst VERSION = SDK_VERSION;\nconst NAME = \"@sentry/instrumentation-prisma\";\nconst MODULE_NAME = \"@prisma/client\";\nconst SUPPORTED_MODULE_VERSIONS = [\">=5.0.0\"];\n\nexport { MODULE_NAME, NAME, SUPPORTED_MODULE_VERSIONS, VERSION };\n//# sourceMappingURL=constants.js.map\n", + "const majorVersion = \"7\";\nconst GLOBAL_INSTRUMENTATION_KEY = \"PRISMA_INSTRUMENTATION\";\nconst GLOBAL_VERSIONED_INSTRUMENTATION_KEY = `V${majorVersion}_PRISMA_INSTRUMENTATION`;\nconst globalThisWithPrismaInstrumentation = globalThis;\nfunction getGlobalTracingHelper() {\n const versionedGlobal = globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY];\n if (versionedGlobal?.helper) {\n return versionedGlobal.helper;\n }\n const fallbackGlobal = globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY];\n return fallbackGlobal?.helper;\n}\nfunction setGlobalTracingHelper(helper) {\n const globalValue = { helper };\n globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY] = globalValue;\n globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY] = globalValue;\n}\nfunction clearGlobalTracingHelper() {\n globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY] = void 0;\n globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY] = void 0;\n}\n\nexport { clearGlobalTracingHelper, getGlobalTracingHelper, setGlobalTracingHelper };\n//# sourceMappingURL=global.js.map\n", + "import * as api from '@opentelemetry/api';\nimport { setHttpServerSpanRouteAttribute } from '../../../../utils/setHttpServerSpanRouteAttribute.js';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, startSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { AttributeNames } from './enums/AttributeNames.js';\nimport { HapiComponentName, handlerPatched } from './internal-types.js';\nimport { getPluginFromInput, isLifecycleExtType, isDirectExtInput, isLifecycleExtEventObj, getPluginName, isPatchableExtMethod, getExtMetadata, getRouteMetadata } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-hapi\";\nclass HapiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return new InstrumentationNodeModuleDefinition(\n HapiComponentName,\n [\">=17.0.0 <22\"],\n (module) => {\n const moduleExports = module[Symbol.toStringTag] === \"Module\" ? module.default : module;\n if (!isWrapped(moduleExports.server)) {\n this._wrap(moduleExports, \"server\", this._getServerPatch.bind(this));\n }\n if (!isWrapped(moduleExports.Server)) {\n this._wrap(moduleExports, \"Server\", this._getServerPatch.bind(this));\n }\n return moduleExports;\n },\n (module) => {\n const moduleExports = module[Symbol.toStringTag] === \"Module\" ? module.default : module;\n this._massUnwrap([moduleExports], [\"server\", \"Server\"]);\n }\n );\n }\n /**\n * Patches the Hapi.server and Hapi.Server functions in order to instrument\n * the server.route, server.ext, and server.register functions via calls to the\n * @function _getServerRoutePatch, @function _getServerExtPatch, and\n * @function _getServerRegisterPatch functions\n * @param original - the original Hapi Server creation function\n */\n _getServerPatch(original) {\n const instrumentation = this;\n const self = this;\n return function server(opts) {\n const newServer = original.apply(this, [opts]);\n self._wrap(newServer, \"route\", (originalRouter) => {\n return instrumentation._getServerRoutePatch.bind(instrumentation)(originalRouter);\n });\n self._wrap(newServer, \"ext\", (originalExtHandler) => {\n return instrumentation._getServerExtPatch.bind(instrumentation)(originalExtHandler);\n });\n self._wrap(newServer, \"register\", instrumentation._getServerRegisterPatch.bind(instrumentation));\n return newServer;\n };\n }\n /**\n * Patches the plugin register function used by the Hapi Server. This function\n * goes through each plugin that is being registered and adds instrumentation\n * via a call to the @function _wrapRegisterHandler function.\n * @param {RegisterFunction} original - the original register function which\n * registers each plugin on the server\n */\n _getServerRegisterPatch(original) {\n const instrumentation = this;\n return function register(pluginInput, options) {\n if (Array.isArray(pluginInput)) {\n for (const pluginObj of pluginInput) {\n const plugin = getPluginFromInput(pluginObj);\n instrumentation._wrapRegisterHandler(plugin);\n }\n } else {\n const plugin = getPluginFromInput(pluginInput);\n instrumentation._wrapRegisterHandler(plugin);\n }\n return original.apply(this, [pluginInput, options]);\n };\n }\n /**\n * Patches the Server.ext function which adds extension methods to the specified\n * point along the request lifecycle. This function accepts the full range of\n * accepted input into the standard Hapi `server.ext` function. For each extension,\n * it adds instrumentation to the handler via a call to the @function _wrapExtMethods\n * function.\n * @param original - the original ext function which adds the extension method to the server\n * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n * for adding this server extension. Else, signifies that the extension was added directly\n */\n _getServerExtPatch(original, pluginName) {\n const instrumentation = this;\n return function ext(...args) {\n if (Array.isArray(args[0])) {\n const eventsList = args[0];\n for (let i = 0; i < eventsList.length; i++) {\n const eventObj = eventsList[i];\n if (isLifecycleExtType(eventObj.type)) {\n const lifecycleEventObj = eventObj;\n const handler = instrumentation._wrapExtMethods(lifecycleEventObj.method, eventObj.type, pluginName);\n lifecycleEventObj.method = handler;\n eventsList[i] = lifecycleEventObj;\n }\n }\n return original.apply(this, args);\n } else if (isDirectExtInput(args)) {\n const extInput = args;\n const method = extInput[1];\n const handler = instrumentation._wrapExtMethods(method, extInput[0], pluginName);\n return original.apply(this, [extInput[0], handler, extInput[2]]);\n } else if (isLifecycleExtEventObj(args[0])) {\n const lifecycleEventObj = args[0];\n const handler = instrumentation._wrapExtMethods(lifecycleEventObj.method, lifecycleEventObj.type, pluginName);\n lifecycleEventObj.method = handler;\n return original.call(this, lifecycleEventObj);\n }\n return original.apply(this, args);\n };\n }\n /**\n * Patches the Server.route function. This function accepts either one or an array\n * of Hapi.ServerRoute objects and adds instrumentation on each route via a call to\n * the @function _wrapRouteHandler function.\n * @param {HapiServerRouteInputMethod} original - the original route function which adds\n * the route to the server\n * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n * for adding this server route. Else, signifies that the route was added directly\n */\n _getServerRoutePatch(original, pluginName) {\n const instrumentation = this;\n return function route(route) {\n if (Array.isArray(route)) {\n for (let i = 0; i < route.length; i++) {\n const newRoute = instrumentation._wrapRouteHandler.call(instrumentation, route[i], pluginName);\n route[i] = newRoute;\n }\n } else {\n route = instrumentation._wrapRouteHandler.call(instrumentation, route, pluginName);\n }\n return original.apply(this, [route]);\n };\n }\n /**\n * Wraps newly registered plugins to add instrumentation to the plugin's clone of\n * the original server. Specifically, wraps the server.route and server.ext functions\n * via calls to @function _getServerRoutePatch and @function _getServerExtPatch\n * @param {Hapi.Plugin} plugin - the new plugin which is being instrumented\n */\n _wrapRegisterHandler(plugin) {\n const instrumentation = this;\n const pluginName = getPluginName(plugin);\n const oldRegister = plugin.register;\n const self = this;\n const newRegisterHandler = function(server, options) {\n self._wrap(server, \"route\", (original) => {\n return instrumentation._getServerRoutePatch.bind(instrumentation)(original, pluginName);\n });\n self._wrap(server, \"ext\", (originalExtHandler) => {\n return instrumentation._getServerExtPatch.bind(instrumentation)(originalExtHandler, pluginName);\n });\n return oldRegister.call(this, server, options);\n };\n plugin.register = newRegisterHandler;\n }\n /**\n * Wraps request extension methods to add instrumentation to each new extension handler.\n * Patches each individual extension in order to create the\n * span and propagate context. It does not create spans when there is no parent span.\n * @param {PatchableExtMethod | PatchableExtMethod[]} method - the request extension\n * handler which is being instrumented\n * @param {Hapi.ServerRequestExtType} extPoint - the point in the Hapi request lifecycle\n * which this extension targets\n * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n * for adding this server route. Else, signifies that the route was added directly\n */\n _wrapExtMethods(method, extPoint, pluginName) {\n const instrumentation = this;\n if (method instanceof Array) {\n for (let i = 0; i < method.length; i++) {\n method[i] = instrumentation._wrapExtMethods(method[i], extPoint);\n }\n return method;\n } else if (isPatchableExtMethod(method)) {\n if (method[handlerPatched] === true) return method;\n method[handlerPatched] = true;\n const newHandler = function(...params) {\n if (api.trace.getSpan(api.context.active()) === void 0) {\n return method.apply(this, params);\n }\n const metadata = getExtMetadata(extPoint, pluginName, method.name);\n return startSpan(\n {\n name: metadata.name,\n op: `${metadata.attributes[AttributeNames.HAPI_TYPE]}.hapi`,\n attributes: {\n ...metadata.attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.hapi\"\n }\n },\n () => method.apply(void 0, params)\n );\n };\n return newHandler;\n }\n return method;\n }\n /**\n * Patches each individual route handler method in order to create the\n * span and propagate context. It does not create spans when there is no parent span.\n * @param {PatchableServerRoute} route - the route handler which is being instrumented\n * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n * for adding this server route. Else, signifies that the route was added directly\n */\n _wrapRouteHandler(route, pluginName) {\n if (route[handlerPatched] === true) return route;\n route[handlerPatched] = true;\n const wrapHandler = (oldHandler) => {\n return function(...params) {\n if (api.trace.getSpan(api.context.active()) === void 0) {\n return oldHandler.call(this, ...params);\n }\n setHttpServerSpanRouteAttribute(route.path);\n const metadata = getRouteMetadata(route, pluginName);\n return startSpan(\n {\n name: metadata.name,\n op: `${metadata.attributes[AttributeNames.HAPI_TYPE]}.hapi`,\n attributes: {\n ...metadata.attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.hapi\"\n }\n },\n () => oldHandler.call(this, ...params)\n );\n };\n };\n if (typeof route.handler === \"function\") {\n route.handler = wrapHandler(route.handler);\n } else if (typeof route.options === \"function\") {\n const oldOptions = route.options;\n route.options = function(server) {\n const options = oldOptions(server);\n if (typeof options.handler === \"function\") {\n options.handler = wrapHandler(options.handler);\n }\n return options;\n };\n } else if (typeof route.options?.handler === \"function\") {\n route.options.handler = wrapHandler(route.options.handler);\n }\n return route;\n }\n}\n\nexport { HapiInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "var AttributeNames = /* @__PURE__ */ ((AttributeNames2) => {\n AttributeNames2[\"HAPI_TYPE\"] = \"hapi.type\";\n AttributeNames2[\"PLUGIN_NAME\"] = \"hapi.plugin.name\";\n AttributeNames2[\"EXT_TYPE\"] = \"server.ext.type\";\n return AttributeNames2;\n})(AttributeNames || {});\n\nexport { AttributeNames };\n//# sourceMappingURL=AttributeNames.js.map\n", + "const HapiComponentName = \"@hapi/hapi\";\nconst handlerPatched = /* @__PURE__ */ Symbol(\"hapi-handler-patched\");\nconst HapiLayerType = {\n ROUTER: \"router\",\n PLUGIN: \"plugin\",\n EXT: \"server.ext\"\n};\nconst HapiLifecycleMethodNames = /* @__PURE__ */ new Set([\n \"onPreAuth\",\n \"onCredentials\",\n \"onPostAuth\",\n \"onPreHandler\",\n \"onPostHandler\",\n \"onPreResponse\",\n \"onRequest\"\n]);\n\nexport { HapiComponentName, HapiLayerType, HapiLifecycleMethodNames, handlerPatched };\n//# sourceMappingURL=internal-types.js.map\n", + "import { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport { ATTR_HTTP_METHOD } from './semconv.js';\nimport { HapiLifecycleMethodNames, HapiLayerType } from './internal-types.js';\nimport { AttributeNames } from './enums/AttributeNames.js';\n\nfunction getPluginName(plugin) {\n if (plugin.name) {\n return plugin.name;\n } else {\n return plugin.pkg.name;\n }\n}\nconst isLifecycleExtType = (variableToCheck) => {\n return typeof variableToCheck === \"string\" && HapiLifecycleMethodNames.has(variableToCheck);\n};\nconst isLifecycleExtEventObj = (variableToCheck) => {\n const event = variableToCheck?.type;\n return event !== void 0 && isLifecycleExtType(event);\n};\nconst isDirectExtInput = (variableToCheck) => {\n return Array.isArray(variableToCheck) && variableToCheck.length <= 3 && isLifecycleExtType(variableToCheck[0]) && typeof variableToCheck[1] === \"function\";\n};\nconst isPatchableExtMethod = (variableToCheck) => {\n return !Array.isArray(variableToCheck);\n};\nconst getRouteMetadata = (route, pluginName) => {\n const attributes = {\n [ATTR_HTTP_ROUTE]: route.path,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_HTTP_METHOD]: route.method\n };\n let name;\n if (pluginName) {\n attributes[AttributeNames.HAPI_TYPE] = HapiLayerType.PLUGIN;\n attributes[AttributeNames.PLUGIN_NAME] = pluginName;\n name = `${pluginName}: route - ${route.path}`;\n } else {\n attributes[AttributeNames.HAPI_TYPE] = HapiLayerType.ROUTER;\n name = `route - ${route.path}`;\n }\n return { attributes, name };\n};\nconst getExtMetadata = (extPoint, pluginName, methodName) => {\n let baseName = `ext - ${extPoint}`;\n if (methodName && methodName !== \"method\") {\n baseName = `ext - ${extPoint} - ${methodName}`;\n }\n if (pluginName) {\n return {\n attributes: {\n [AttributeNames.EXT_TYPE]: extPoint,\n [AttributeNames.HAPI_TYPE]: HapiLayerType.EXT,\n [AttributeNames.PLUGIN_NAME]: pluginName\n },\n name: `${pluginName}: ${baseName}`\n };\n }\n return {\n attributes: {\n [AttributeNames.EXT_TYPE]: extPoint,\n [AttributeNames.HAPI_TYPE]: HapiLayerType.EXT\n },\n name: baseName\n };\n};\nconst getPluginFromInput = (pluginObj) => {\n if (\"plugin\" in pluginObj) {\n if (\"plugin\" in pluginObj.plugin) {\n return pluginObj.plugin.plugin;\n }\n return pluginObj.plugin;\n }\n return pluginObj;\n};\n\nexport { getExtMetadata, getPluginFromInput, getPluginName, getRouteMetadata, isDirectExtInput, isLifecycleExtEventObj, isLifecycleExtType, isPatchableExtMethod };\n//# sourceMappingURL=utils.js.map\n", + "const ATTR_HTTP_METHOD = \"http.method\";\n\nexport { ATTR_HTTP_METHOD };\n//# sourceMappingURL=semconv.js.map\n", + "import { HapiInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration, SDK_VERSION, getIsolationScope, getDefaultIsolationScope, debug, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../../debug-build.js';\n\nconst INTEGRATION_NAME = \"Hapi\";\nconst instrumentHapi = generateInstrumentOnce(INTEGRATION_NAME, () => new HapiInstrumentation());\nconst _hapiIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentHapi();\n }\n };\n});\nconst hapiIntegration = defineIntegration(_hapiIntegration);\nfunction isErrorEvent(event) {\n return !!(event && typeof event === \"object\" && \"error\" in event && event.error);\n}\nfunction sendErrorToSentry(errorData) {\n captureException(errorData, {\n mechanism: {\n type: \"auto.function.hapi\",\n handled: false\n }\n });\n}\nconst hapiErrorPlugin = {\n name: \"SentryHapiErrorPlugin\",\n version: SDK_VERSION,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register: async function(serverArg) {\n const server = serverArg;\n server.events.on({ name: \"request\", channels: [\"error\"] }, (request, event) => {\n if (getIsolationScope() !== getDefaultIsolationScope()) {\n const route = request.route;\n if (route.path) {\n getIsolationScope().setTransactionName(`${route.method.toUpperCase()} ${route.path}`);\n }\n } else {\n DEBUG_BUILD && debug.warn(\"Isolation scope is still the default isolation scope - skipping setting transactionName\");\n }\n if (isErrorEvent(event)) {\n sendErrorToSentry(event.error);\n }\n });\n }\n};\nasync function setupHapiErrorHandler(server) {\n await server.register(hapiErrorPlugin);\n ensureIsWrapped(server.register, \"hapi\");\n}\n\nexport { hapiErrorPlugin, hapiIntegration, instrumentHapi, setupHapiErrorHandler };\n//# sourceMappingURL=index.js.map\n", + "import { ATTR_HTTP_ROUTE, ATTR_HTTP_REQUEST_METHOD } from '@opentelemetry/semantic-conventions';\nimport { defineIntegration, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getIsolationScope, getDefaultIsolationScope, debug, httpRequestToRequestData, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../../debug-build.js';\nimport { AttributeNames } from './constants.js';\nimport { HonoInstrumentation } from './instrumentation.js';\n\nconst INTEGRATION_NAME = \"Hono\";\nfunction addHonoSpanAttributes(span) {\n const attributes = spanToJSON(span).data;\n const type = attributes[AttributeNames.HONO_TYPE];\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n return;\n }\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.hono\",\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.hono`\n });\n const name = attributes[AttributeNames.HONO_NAME];\n if (typeof name === \"string\") {\n span.updateName(name);\n }\n if (getIsolationScope() === getDefaultIsolationScope()) {\n DEBUG_BUILD && debug.warn(\"Isolation scope is default isolation scope - skipping setting transactionName\");\n return;\n }\n const route = attributes[ATTR_HTTP_ROUTE];\n const method = attributes[ATTR_HTTP_REQUEST_METHOD];\n if (typeof route === \"string\" && typeof method === \"string\") {\n getIsolationScope().setTransactionName(`${method} ${route}`);\n }\n}\nconst instrumentHono = generateInstrumentOnce(\n INTEGRATION_NAME,\n () => new HonoInstrumentation({\n responseHook: (span) => {\n addHonoSpanAttributes(span);\n }\n })\n);\nconst _honoIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentHono();\n }\n };\n});\nconst honoIntegration = defineIntegration(_honoIntegration);\nfunction honoRequestHandler() {\n return async function sentryRequestMiddleware(context, next) {\n const normalizedRequest = httpRequestToRequestData(context.req);\n getIsolationScope().setSDKProcessingMetadata({ normalizedRequest });\n await next();\n };\n}\nfunction defaultShouldHandleError(context) {\n const statusCode = context.res.status;\n return statusCode >= 500;\n}\nfunction honoErrorHandler(options) {\n return async function sentryErrorMiddleware(context, next) {\n await next();\n const shouldHandleError = options?.shouldHandleError || defaultShouldHandleError;\n if (shouldHandleError(context)) {\n context.res.sentry = captureException(context.error, {\n mechanism: {\n type: \"auto.middleware.hono\",\n handled: false\n }\n });\n }\n };\n}\nfunction setupHonoErrorHandler(app, options) {\n app.use(honoRequestHandler());\n app.use(honoErrorHandler(options));\n ensureIsWrapped(app.use, \"hono\");\n}\n\nexport { honoIntegration, instrumentHono, setupHonoErrorHandler };\n//# sourceMappingURL=index.js.map\n", + "const AttributeNames = {\n HONO_TYPE: \"hono.type\",\n HONO_NAME: \"hono.name\"\n};\nconst HonoTypes = {\n MIDDLEWARE: \"middleware\",\n REQUEST_HANDLER: \"request_handler\"\n};\n\nexport { AttributeNames, HonoTypes };\n//# sourceMappingURL=constants.js.map\n", + "import { context, trace, SpanStatusCode } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { isThenable } from '@sentry/core';\nimport { AttributeNames, HonoTypes } from './constants.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-hono\";\nconst PACKAGE_VERSION = \"0.0.1\";\nclass HonoInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, PACKAGE_VERSION, config);\n }\n /**\n * Initialize the instrumentation.\n */\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\"hono\", [\">=4.0.0 <5\"], (moduleExports) => this._patch(moduleExports))\n ];\n }\n /**\n * Patches the module exports to instrument Hono.\n */\n _patch(moduleExports) {\n const instrumentation = this;\n class WrappedHono extends moduleExports.Hono {\n constructor(...args) {\n super(...args);\n instrumentation._wrap(this, \"get\", instrumentation._patchHandler());\n instrumentation._wrap(this, \"post\", instrumentation._patchHandler());\n instrumentation._wrap(this, \"put\", instrumentation._patchHandler());\n instrumentation._wrap(this, \"delete\", instrumentation._patchHandler());\n instrumentation._wrap(this, \"options\", instrumentation._patchHandler());\n instrumentation._wrap(this, \"patch\", instrumentation._patchHandler());\n instrumentation._wrap(this, \"all\", instrumentation._patchHandler());\n instrumentation._wrap(this, \"on\", instrumentation._patchOnHandler());\n instrumentation._wrap(this, \"use\", instrumentation._patchMiddlewareHandler());\n }\n }\n try {\n moduleExports.Hono = WrappedHono;\n } catch {\n return { ...moduleExports, Hono: WrappedHono };\n }\n return moduleExports;\n }\n /**\n * Patches the route handler to instrument it.\n */\n _patchHandler() {\n const instrumentation = this;\n return function(original) {\n return function wrappedHandler(...args) {\n if (typeof args[0] === \"string\") {\n const path = args[0];\n if (args.length === 1) {\n return original.apply(this, [path]);\n }\n const handlers = args.slice(1);\n return original.apply(this, [\n path,\n ...handlers.map((handler) => instrumentation._wrapHandler(handler))\n ]);\n }\n return original.apply(\n this,\n args.map((handler) => instrumentation._wrapHandler(handler))\n );\n };\n };\n }\n /**\n * Patches the 'on' handler to instrument it.\n */\n _patchOnHandler() {\n const instrumentation = this;\n return function(original) {\n return function wrappedHandler(...args) {\n const handlers = args.slice(2);\n return original.apply(this, [\n ...args.slice(0, 2),\n ...handlers.map((handler) => instrumentation._wrapHandler(handler))\n ]);\n };\n };\n }\n /**\n * Patches the middleware handler to instrument it.\n */\n _patchMiddlewareHandler() {\n const instrumentation = this;\n return function(original) {\n return function wrappedHandler(...args) {\n if (typeof args[0] === \"string\") {\n const path = args[0];\n if (args.length === 1) {\n return original.apply(this, [path]);\n }\n const handlers = args.slice(1);\n return original.apply(this, [\n path,\n ...handlers.map((handler) => instrumentation._wrapHandler(handler))\n ]);\n }\n return original.apply(\n this,\n args.map((handler) => instrumentation._wrapHandler(handler))\n );\n };\n };\n }\n /**\n * Wraps a handler or middleware handler to apply instrumentation.\n */\n _wrapHandler(handler) {\n const instrumentation = this;\n return function(c, next) {\n if (!instrumentation.isEnabled()) {\n return handler.apply(this, [c, next]);\n }\n const path = c.req.path;\n const span = instrumentation.tracer.startSpan(path);\n return context.with(trace.setSpan(context.active(), span), () => {\n return instrumentation._safeExecute(\n () => {\n const result = handler.apply(this, [c, next]);\n if (isThenable(result)) {\n return result.then((result2) => {\n const type = instrumentation._determineHandlerType(result2);\n span.setAttributes({\n [AttributeNames.HONO_TYPE]: type,\n [AttributeNames.HONO_NAME]: type === HonoTypes.REQUEST_HANDLER ? path : handler.name || \"anonymous\"\n });\n instrumentation.getConfig().responseHook?.(span);\n return result2;\n });\n } else {\n const type = instrumentation._determineHandlerType(result);\n span.setAttributes({\n [AttributeNames.HONO_TYPE]: type,\n [AttributeNames.HONO_NAME]: type === HonoTypes.REQUEST_HANDLER ? path : handler.name || \"anonymous\"\n });\n instrumentation.getConfig().responseHook?.(span);\n return result;\n }\n },\n () => span.end(),\n (error) => {\n instrumentation._handleError(span, error);\n span.end();\n }\n );\n });\n };\n }\n /**\n * Safely executes a function and handles errors.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _safeExecute(execute, onSuccess, onFailure) {\n try {\n const result = execute();\n if (isThenable(result)) {\n result.then(\n () => onSuccess(),\n (error) => onFailure(error)\n );\n } else {\n onSuccess();\n }\n return result;\n } catch (error) {\n onFailure(error);\n throw error;\n }\n }\n /**\n * Determines the handler type based on the result.\n * @param result\n * @private\n */\n _determineHandlerType(result) {\n return result === void 0 ? HonoTypes.MIDDLEWARE : HonoTypes.REQUEST_HANDLER;\n }\n /**\n * Handles errors by setting the span status and recording the exception.\n */\n _handleError(span, error) {\n if (error instanceof Error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error.message\n });\n span.recordException(error);\n }\n }\n}\n\nexport { HonoInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import * as api from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { KoaLayerType } from './types.js';\nimport { SDK_VERSION, startSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getIsolationScope, getDefaultIsolationScope, debug } from '@sentry/core';\nimport { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport { isLayerIgnored, getMiddlewareMetadata } from './utils.js';\nimport { setHttpServerSpanRouteAttribute } from '../../../../utils/setHttpServerSpanRouteAttribute.js';\nimport { DEBUG_BUILD } from '../../../../debug-build.js';\nimport { AttributeNames } from './enums/AttributeNames.js';\nimport { kLayerPatched } from './internal-types.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-koa\";\nclass KoaInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return new InstrumentationNodeModuleDefinition(\n \"koa\",\n [\">=2.0.0 <4\"],\n (module) => {\n const moduleExports = module[Symbol.toStringTag] === \"Module\" ? module.default : module;\n if (moduleExports == null) {\n return moduleExports;\n }\n if (isWrapped(moduleExports.prototype.use)) {\n this._unwrap(moduleExports.prototype, \"use\");\n }\n this._wrap(moduleExports.prototype, \"use\", this._getKoaUsePatch.bind(this));\n return module;\n },\n (module) => {\n const moduleExports = module[Symbol.toStringTag] === \"Module\" ? module.default : module;\n if (moduleExports && isWrapped(moduleExports.prototype.use)) {\n this._unwrap(moduleExports.prototype, \"use\");\n }\n }\n );\n }\n /**\n * Patches the Koa.use function in order to instrument each original\n * middleware layer which is introduced\n * @param {KoaMiddleware} middleware - the original middleware function\n */\n _getKoaUsePatch(original) {\n const patchRouterDispatch = this._patchRouterDispatch.bind(this);\n const patchLayer = this._patchLayer.bind(this);\n return function use(middlewareFunction) {\n const patchedFunction = middlewareFunction.router ? patchRouterDispatch(middlewareFunction) : patchLayer(middlewareFunction, false);\n return original.apply(this, [patchedFunction]);\n };\n }\n /**\n * Patches the dispatch function used by @koa/router. This function\n * goes through each routed middleware and adds instrumentation via a call\n * to the @function _patchLayer function.\n * @param {KoaMiddleware} dispatchLayer - the original dispatch function which dispatches\n * routed middleware\n */\n _patchRouterDispatch(dispatchLayer) {\n const router = dispatchLayer.router;\n const routesStack = router?.stack ?? [];\n for (const pathLayer of routesStack) {\n const path = pathLayer.path;\n const pathStack = pathLayer.stack;\n for (let j = 0; j < pathStack.length; j++) {\n const routedMiddleware = pathStack[j];\n pathStack[j] = this._patchLayer(routedMiddleware, true, path);\n }\n }\n return dispatchLayer;\n }\n /**\n * Patches each individual @param middlewareLayer function in order to create the\n * span and propagate context. It does not create spans when there is no parent span.\n * @param {KoaMiddleware} middlewareLayer - the original middleware function.\n * @param {boolean} isRouter - tracks whether the original middleware function\n * was dispatched by the router originally\n * @param {string?} layerPath - if present, provides additional data from the\n * router about the routed path which the middleware is attached to\n */\n _patchLayer(middlewareLayer, isRouter, layerPath) {\n const layerType = isRouter ? KoaLayerType.ROUTER : KoaLayerType.MIDDLEWARE;\n if (middlewareLayer[kLayerPatched] === true || isLayerIgnored(layerType, this.getConfig())) return middlewareLayer;\n if (middlewareLayer.constructor.name === \"GeneratorFunction\" || middlewareLayer.constructor.name === \"AsyncGeneratorFunction\") {\n return middlewareLayer;\n }\n middlewareLayer[kLayerPatched] = true;\n return (context, next) => {\n const parent = api.trace.getSpan(api.context.active());\n if (parent === void 0) {\n return middlewareLayer(context, next);\n }\n const metadata = getMiddlewareMetadata(context, middlewareLayer, isRouter, layerPath);\n if (context._matchedRoute) {\n setHttpServerSpanRouteAttribute(context._matchedRoute.toString());\n }\n const koaName = metadata.attributes[AttributeNames.KOA_NAME];\n const name = typeof koaName === \"string\" ? koaName || \"< unknown >\" : metadata.name;\n return startSpan(\n {\n name,\n op: `${layerType}.koa`,\n attributes: {\n ...metadata.attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.koa\"\n }\n },\n () => {\n const route = metadata.attributes[ATTR_HTTP_ROUTE];\n if (getIsolationScope() === getDefaultIsolationScope()) {\n DEBUG_BUILD && debug.warn(\"Isolation scope is default isolation scope - skipping setting transactionName\");\n } else if (route) {\n const method = context.request?.method?.toUpperCase() || \"GET\";\n getIsolationScope().setTransactionName(`${method} ${route}`);\n }\n return middlewareLayer(context, next);\n }\n );\n };\n }\n}\n\nexport { KoaInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "var KoaLayerType = /* @__PURE__ */ ((KoaLayerType2) => {\n KoaLayerType2[\"ROUTER\"] = \"router\";\n KoaLayerType2[\"MIDDLEWARE\"] = \"middleware\";\n return KoaLayerType2;\n})(KoaLayerType || {});\n\nexport { KoaLayerType };\n//# sourceMappingURL=types.js.map\n", + "var AttributeNames = /* @__PURE__ */ ((AttributeNames2) => {\n AttributeNames2[\"KOA_TYPE\"] = \"koa.type\";\n AttributeNames2[\"KOA_NAME\"] = \"koa.name\";\n return AttributeNames2;\n})(AttributeNames || {});\n\nexport { AttributeNames };\n//# sourceMappingURL=AttributeNames.js.map\n", + "import { KoaLayerType } from './types.js';\nimport { AttributeNames } from './enums/AttributeNames.js';\nimport { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\n\nconst getMiddlewareMetadata = (context, layer, isRouter, layerPath) => {\n if (isRouter) {\n return {\n attributes: {\n [AttributeNames.KOA_NAME]: layerPath?.toString(),\n [AttributeNames.KOA_TYPE]: KoaLayerType.ROUTER,\n [ATTR_HTTP_ROUTE]: layerPath?.toString()\n },\n name: context._matchedRouteName || `router - ${layerPath}`\n };\n } else {\n return {\n attributes: {\n [AttributeNames.KOA_NAME]: layer.name ?? \"middleware\",\n [AttributeNames.KOA_TYPE]: KoaLayerType.MIDDLEWARE\n },\n name: `middleware - ${layer.name}`\n };\n }\n};\nconst isLayerIgnored = (type, config) => {\n return !!(Array.isArray(config?.ignoreLayersType) && config?.ignoreLayersType?.includes(type));\n};\n\nexport { getMiddlewareMetadata, isLayerIgnored };\n//# sourceMappingURL=utils.js.map\n", + "const kLayerPatched = /* @__PURE__ */ Symbol(\"koa-layer-patched\");\n\nexport { kLayerPatched };\n//# sourceMappingURL=internal-types.js.map\n", + "import { KoaInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Koa\";\nconst instrumentKoa = generateInstrumentOnce(\n INTEGRATION_NAME,\n KoaInstrumentation,\n (options = {}) => {\n return {\n ignoreLayersType: options.ignoreLayersType\n };\n }\n);\nconst _koaIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentKoa(options);\n }\n };\n});\nconst koaIntegration = defineIntegration(_koaIntegration);\nconst setupKoaErrorHandler = (app) => {\n app.use(async (ctx, next) => {\n try {\n await next();\n } catch (error) {\n captureException(error, {\n mechanism: {\n handled: false,\n type: \"auto.middleware.koa\"\n }\n });\n throw error;\n }\n });\n ensureIsWrapped(app.use, \"koa\");\n};\n\nexport { instrumentKoa, koaIntegration, setupKoaErrorHandler };\n//# sourceMappingURL=index.js.map\n", + "var AttributeNames = /* @__PURE__ */ ((AttributeNames2) => {\n AttributeNames2[\"CONNECT_TYPE\"] = \"connect.type\";\n AttributeNames2[\"CONNECT_NAME\"] = \"connect.name\";\n return AttributeNames2;\n})(AttributeNames || {});\nvar ConnectTypes = /* @__PURE__ */ ((ConnectTypes2) => {\n ConnectTypes2[\"MIDDLEWARE\"] = \"middleware\";\n ConnectTypes2[\"REQUEST_HANDLER\"] = \"request_handler\";\n return ConnectTypes2;\n})(ConnectTypes || {});\n\nexport { AttributeNames, ConnectTypes };\n//# sourceMappingURL=AttributeNames.js.map\n", + "import { ConnectTypes, AttributeNames } from './enums/AttributeNames.js';\nimport { SDK_VERSION, isError, SPAN_STATUS_ERROR, startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { setHttpServerSpanRouteAttribute } from '../../../../utils/setHttpServerSpanRouteAttribute.js';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport { addNewStackLayer, replaceCurrentStackRoute, generateRoute } from './utils.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-connect\";\nconst ANONYMOUS_NAME = \"anonymous\";\nclass ConnectInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\"connect\", [\">=3.0.0 <4\"], (moduleExports) => {\n return this._patchConstructor(moduleExports);\n })\n ];\n }\n _patchApp(patchedApp) {\n if (!isWrapped(patchedApp.use)) {\n this._wrap(patchedApp, \"use\", this._patchUse.bind(this));\n }\n if (!isWrapped(patchedApp.handle)) {\n this._wrap(patchedApp, \"handle\", this._patchHandle.bind(this));\n }\n }\n _patchConstructor(original) {\n const patchApp = this._patchApp.bind(this);\n return function(...args) {\n const app = Reflect.apply(original, this, args);\n patchApp(app);\n return app;\n };\n }\n _patchNext(next, span, finishSpan) {\n return function nextFunction(err) {\n if (isError(err)) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n }\n const result = next.apply(this, [err]);\n finishSpan();\n return result;\n };\n }\n _startSpan(routeName, middleWare) {\n const connectType = routeName ? ConnectTypes.REQUEST_HANDLER : ConnectTypes.MIDDLEWARE;\n const connectName = routeName || middleWare.name || ANONYMOUS_NAME;\n return startInactiveSpan({\n name: connectName,\n op: `${connectType}.connect`,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.http.otel.connect\",\n [ATTR_HTTP_ROUTE]: routeName.length > 0 ? routeName : \"/\",\n [AttributeNames.CONNECT_TYPE]: connectType,\n [AttributeNames.CONNECT_NAME]: connectName\n }\n });\n }\n _patchMiddleware(routeName, middleWare) {\n const isEnabled = this.isEnabled.bind(this);\n const startSpan = this._startSpan.bind(this);\n const patchNext = this._patchNext.bind(this);\n const isErrorMiddleware = middleWare.length === 4;\n function patchedMiddleware() {\n if (!isEnabled()) {\n return Reflect.apply(middleWare, this, arguments);\n }\n const [reqArgIdx, resArgIdx, nextArgIdx] = isErrorMiddleware ? [1, 2, 3] : [0, 1, 2];\n const req = arguments[reqArgIdx];\n const res = arguments[resArgIdx];\n const next = arguments[nextArgIdx];\n replaceCurrentStackRoute(req, routeName);\n if (routeName) {\n setHttpServerSpanRouteAttribute(generateRoute(req));\n }\n const span = startSpan(routeName, middleWare);\n let spanFinished = false;\n function finishSpan() {\n if (!spanFinished) {\n spanFinished = true;\n span.end();\n }\n res.removeListener(\"close\", finishSpan);\n }\n res.addListener(\"close\", finishSpan);\n arguments[nextArgIdx] = patchNext(next, span, finishSpan);\n try {\n return Reflect.apply(middleWare, this, arguments);\n } catch (e) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n finishSpan();\n throw e;\n }\n }\n Object.defineProperty(patchedMiddleware, \"length\", {\n value: middleWare.length,\n writable: false,\n configurable: true\n });\n return patchedMiddleware;\n }\n _patchUse(original) {\n const patchMiddleware = this._patchMiddleware.bind(this);\n return function(...args) {\n const middleWare = args[args.length - 1];\n const routeName = args[args.length - 2] || \"\";\n args[args.length - 1] = patchMiddleware(routeName, middleWare);\n return original.apply(this, args);\n };\n }\n _patchHandle(original) {\n const patchOut = this._patchOut.bind(this);\n return function() {\n const [reqIdx, outIdx] = [0, 2];\n const req = arguments[reqIdx];\n const out = arguments[outIdx];\n const completeStack = addNewStackLayer(req);\n if (typeof out === \"function\") {\n arguments[outIdx] = patchOut(out, completeStack);\n }\n return Reflect.apply(original, this, arguments);\n };\n }\n _patchOut(out, completeStack) {\n return function nextFunction(...args) {\n completeStack();\n return Reflect.apply(out, this, args);\n };\n }\n}\n\nexport { ConnectInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "const _LAYERS_STORE_PROPERTY = /* @__PURE__ */ Symbol(\n \"opentelemetry.instrumentation-connect.request-route-stack\"\n);\n\nexport { _LAYERS_STORE_PROPERTY };\n//# sourceMappingURL=internal-types.js.map\n", + "import { debug } from '@sentry/core';\nimport { _LAYERS_STORE_PROPERTY } from './internal-types.js';\nimport { DEBUG_BUILD } from '../../../../debug-build.js';\n\nconst addNewStackLayer = (request) => {\n if (Array.isArray(request[_LAYERS_STORE_PROPERTY]) === false) {\n Object.defineProperty(request, _LAYERS_STORE_PROPERTY, {\n enumerable: false,\n value: []\n });\n }\n request[_LAYERS_STORE_PROPERTY].push(\"/\");\n const stackLength = request[_LAYERS_STORE_PROPERTY].length;\n return () => {\n if (stackLength === request[_LAYERS_STORE_PROPERTY].length) {\n request[_LAYERS_STORE_PROPERTY].pop();\n } else {\n DEBUG_BUILD && debug.warn(\"Connect: Trying to pop the stack multiple time\");\n }\n };\n};\nconst replaceCurrentStackRoute = (request, newRoute) => {\n if (newRoute) {\n request[_LAYERS_STORE_PROPERTY].splice(-1, 1, newRoute);\n }\n};\nconst generateRoute = (request) => {\n return request[_LAYERS_STORE_PROPERTY].reduce((acc, sub) => acc.replace(/\\/+$/, \"\") + sub);\n};\n\nexport { addNewStackLayer, generateRoute, replaceCurrentStackRoute };\n//# sourceMappingURL=utils.js.map\n", + "import { ConnectInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration, captureException } from '@sentry/core';\nimport { generateInstrumentOnce, ensureIsWrapped } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Connect\";\nconst instrumentConnect = generateInstrumentOnce(INTEGRATION_NAME, () => new ConnectInstrumentation());\nconst _connectIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentConnect();\n }\n };\n});\nconst connectIntegration = defineIntegration(_connectIntegration);\nfunction connectErrorMiddleware(err, req, res, next) {\n captureException(err, {\n mechanism: {\n handled: false,\n type: \"auto.middleware.connect\"\n }\n });\n next(err);\n}\nconst setupConnectErrorHandler = (app) => {\n app.use(connectErrorMiddleware);\n ensureIsWrapped(app.use, \"connect\");\n};\n\nexport { connectIntegration, instrumentConnect, setupConnectErrorHandler };\n//# sourceMappingURL=index.js.map\n", + "import { EventEmitter } from 'events';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { ATTR_NET_PEER_PORT, ATTR_NET_PEER_NAME, ATTR_DB_SQL_TABLE, ATTR_DB_USER, DB_SYSTEM_VALUE_MSSQL, ATTR_DB_STATEMENT, ATTR_DB_NAME, ATTR_DB_SYSTEM } from './semconv.js';\nimport { getSpanName, once } from './utils.js';\nimport { SDK_VERSION, startInactiveSpan, SPAN_KIND, withActiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR } from '@sentry/core';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-tedious\";\nconst CURRENT_DATABASE = /* @__PURE__ */ Symbol(\"opentelemetry.instrumentation-tedious.current-database\");\nconst PATCHED_METHODS = [\"callProcedure\", \"execSql\", \"execSqlBatch\", \"execBulkLoad\", \"prepare\", \"execute\"];\nfunction setDatabase(databaseName) {\n Object.defineProperty(this, CURRENT_DATABASE, {\n value: databaseName,\n writable: true\n });\n}\nconst _TediousInstrumentation = class _TediousInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n _TediousInstrumentation.COMPONENT,\n [\">=1.11.0 <20\"],\n (moduleExports) => {\n const ConnectionPrototype = moduleExports.Connection.prototype;\n for (const method of PATCHED_METHODS) {\n if (isWrapped(ConnectionPrototype[method])) {\n this._unwrap(ConnectionPrototype, method);\n }\n this._wrap(ConnectionPrototype, method, this._patchQuery(method));\n }\n if (isWrapped(ConnectionPrototype.connect)) {\n this._unwrap(ConnectionPrototype, \"connect\");\n }\n this._wrap(ConnectionPrototype, \"connect\", this._patchConnect);\n return moduleExports;\n },\n (moduleExports) => {\n if (moduleExports === void 0) return;\n const ConnectionPrototype = moduleExports.Connection.prototype;\n for (const method of PATCHED_METHODS) {\n this._unwrap(ConnectionPrototype, method);\n }\n this._unwrap(ConnectionPrototype, \"connect\");\n }\n )\n ];\n }\n _patchConnect(original) {\n return function patchedConnect() {\n setDatabase.call(this, this.config?.options?.database);\n this.removeListener(\"databaseChange\", setDatabase);\n this.on(\"databaseChange\", setDatabase);\n this.once(\"end\", () => {\n this.removeListener(\"databaseChange\", setDatabase);\n });\n return original.apply(this, arguments);\n };\n }\n _patchQuery(operation) {\n return (originalMethod) => {\n const thisPlugin = this;\n function patchedMethod(request) {\n if (!(request instanceof EventEmitter)) {\n thisPlugin._diag.warn(`Unexpected invocation of patched ${operation} method. Span not recorded`);\n return originalMethod.apply(this, arguments);\n }\n let procCount = 0;\n let statementCount = 0;\n const incrementStatementCount = () => statementCount++;\n const incrementProcCount = () => procCount++;\n const databaseName = this[CURRENT_DATABASE];\n const sql = ((request2) => {\n if (request2.sqlTextOrProcedure === \"sp_prepare\" && request2.parametersByName?.stmt?.value) {\n return request2.parametersByName.stmt.value;\n }\n return request2.sqlTextOrProcedure;\n })(request);\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.db.otel.tedious\",\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_MSSQL,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_NAME]: databaseName,\n // >=4 uses `authentication` object; older versions just userName and password pair\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_USER]: this.config?.userName ?? this.config?.authentication?.options?.userName,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_STATEMENT]: sql,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_SQL_TABLE]: request.table,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_NET_PEER_NAME]: this.config?.server,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_NET_PEER_PORT]: this.config?.options?.port\n };\n const span = startInactiveSpan({\n name: getSpanName(operation, databaseName, sql, request.table),\n kind: SPAN_KIND.CLIENT,\n attributes\n });\n const endSpan = once((err) => {\n request.removeListener(\"done\", incrementStatementCount);\n request.removeListener(\"doneInProc\", incrementStatementCount);\n request.removeListener(\"doneProc\", incrementProcCount);\n request.removeListener(\"error\", endSpan);\n this.removeListener(\"end\", endSpan);\n span.setAttribute(\"tedious.procedure_count\", procCount);\n span.setAttribute(\"tedious.statement_count\", statementCount);\n if (err) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err.message\n });\n }\n span.end();\n });\n request.on(\"done\", incrementStatementCount);\n request.on(\"doneInProc\", incrementStatementCount);\n request.on(\"doneProc\", incrementProcCount);\n request.once(\"error\", endSpan);\n this.on(\"end\", endSpan);\n if (typeof request.callback === \"function\") {\n thisPlugin._wrap(request, \"callback\", thisPlugin._patchCallbackQuery(endSpan));\n } else {\n thisPlugin._diag.error(\"Expected request.callback to be a function\");\n }\n return withActiveSpan(span, () => originalMethod.apply(this, arguments));\n }\n Object.defineProperty(patchedMethod, \"length\", {\n value: originalMethod.length,\n writable: false\n });\n return patchedMethod;\n };\n }\n _patchCallbackQuery(endSpan) {\n return (originalCallback) => {\n return function(err, _rowCount, _rows) {\n endSpan(err);\n return originalCallback.apply(this, arguments);\n };\n };\n }\n};\n_TediousInstrumentation.COMPONENT = \"tedious\";\nlet TediousInstrumentation = _TediousInstrumentation;\n\nexport { TediousInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "const ATTR_DB_NAME = \"db.name\";\nconst ATTR_DB_SQL_TABLE = \"db.sql.table\";\nconst ATTR_DB_STATEMENT = \"db.statement\";\nconst ATTR_DB_SYSTEM = \"db.system\";\nconst ATTR_DB_USER = \"db.user\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\nconst DB_SYSTEM_VALUE_MSSQL = \"mssql\";\n\nexport { ATTR_DB_NAME, ATTR_DB_SQL_TABLE, ATTR_DB_STATEMENT, ATTR_DB_SYSTEM, ATTR_DB_USER, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, DB_SYSTEM_VALUE_MSSQL };\n//# sourceMappingURL=semconv.js.map\n", + "function getSpanName(operation, db, sql, bulkLoadTable) {\n if (operation === \"execBulkLoad\" && bulkLoadTable && db) {\n return `${operation} ${bulkLoadTable} ${db}`;\n }\n if (operation === \"callProcedure\") {\n if (db) {\n return `${operation} ${sql} ${db}`;\n }\n return `${operation} ${sql}`;\n }\n if (db) {\n return `${operation} ${db}`;\n }\n return `${operation}`;\n}\nconst once = (fn) => {\n let called = false;\n return (...args) => {\n if (called) return;\n called = true;\n return fn(...args);\n };\n};\n\nexport { getSpanName, once };\n//# sourceMappingURL=utils.js.map\n", + "import { TediousInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"Tedious\";\nconst instrumentTedious = generateInstrumentOnce(INTEGRATION_NAME, () => new TediousInstrumentation({}));\nconst _tediousIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentTedious();\n }\n };\n});\nconst tediousIntegration = defineIntegration(_tediousIntegration);\n\nexport { instrumentTedious, tediousIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, startSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, startSpanManual, SPAN_STATUS_ERROR } from '@sentry/core';\n\nconst MODULE_NAME = \"generic-pool\";\nconst PACKAGE_NAME = \"@sentry/instrumentation-generic-pool\";\nclass GenericPoolInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n // only used for v2 - v2.3)\n this._isDisabled = false;\n }\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n MODULE_NAME,\n [\">=3.0.0 <4\"],\n (moduleExports) => {\n const Pool = moduleExports.Pool;\n if (isWrapped(Pool.prototype.acquire)) {\n this._unwrap(Pool.prototype, \"acquire\");\n }\n this._wrap(Pool.prototype, \"acquire\", this._acquirePatcher.bind(this));\n return moduleExports;\n },\n (moduleExports) => {\n const Pool = moduleExports.Pool;\n this._unwrap(Pool.prototype, \"acquire\");\n return moduleExports;\n }\n ),\n new InstrumentationNodeModuleDefinition(\n MODULE_NAME,\n [\">=2.4.0 <3\"],\n (moduleExports) => {\n const Pool = moduleExports.Pool;\n if (isWrapped(Pool.prototype.acquire)) {\n this._unwrap(Pool.prototype, \"acquire\");\n }\n this._wrap(Pool.prototype, \"acquire\", this._acquireWithCallbacksPatcher.bind(this));\n return moduleExports;\n },\n (moduleExports) => {\n const Pool = moduleExports.Pool;\n this._unwrap(Pool.prototype, \"acquire\");\n return moduleExports;\n }\n ),\n new InstrumentationNodeModuleDefinition(\n MODULE_NAME,\n [\">=2.0.0 <2.4\"],\n (moduleExports) => {\n this._isDisabled = false;\n if (isWrapped(moduleExports.Pool)) {\n this._unwrap(moduleExports, \"Pool\");\n }\n this._wrap(moduleExports, \"Pool\", this._poolWrapper.bind(this));\n return moduleExports;\n },\n (moduleExports) => {\n this._isDisabled = true;\n return moduleExports;\n }\n )\n ];\n }\n _acquirePatcher(original) {\n return function wrapped_acquire(...args) {\n return startSpan(\n {\n name: \"generic-pool.acquire\",\n attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.db.otel.generic_pool\" }\n },\n () => {\n return original.call(this, ...args);\n }\n );\n };\n }\n _poolWrapper(original) {\n const wrap = this._wrap.bind(this);\n const acquireWithCallbacksPatcher = this._acquireWithCallbacksPatcher.bind(this);\n return function wrapped_pool(...args) {\n const pool = original.apply(this, args);\n wrap(pool, \"acquire\", acquireWithCallbacksPatcher);\n return pool;\n };\n }\n _acquireWithCallbacksPatcher(original) {\n const isDisabled = () => this._isDisabled;\n return function wrapped_acquire(cb, priority) {\n if (isDisabled()) {\n return original.call(this, cb, priority);\n }\n return startSpanManual(\n {\n name: \"generic-pool.acquire\",\n attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.db.otel.generic_pool\" }\n },\n (span) => {\n original.call(\n this,\n (err, client) => {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n }\n span.end();\n if (cb) {\n cb(err, client);\n }\n },\n priority\n );\n }\n );\n };\n }\n}\n\nexport { GenericPoolInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { GenericPoolInstrumentation } from './vendored/instrumentation.js';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = \"GenericPool\";\nconst instrumentGenericPool = generateInstrumentOnce(INTEGRATION_NAME, () => new GenericPoolInstrumentation({}));\nconst _genericPoolIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentGenericPool();\n }\n };\n});\nconst genericPoolIntegration = defineIntegration(_genericPoolIntegration);\n\nexport { genericPoolIntegration, instrumentGenericPool };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION } from '@sentry/core';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile.js';\nimport { getConnectPatch, getPublishPatch, getConsumePatch, getAckPatch, getAckAllPatch, getChannelEmitPatch, getConfirmedPublishPatch } from './patches.js';\nimport { EndOperation } from './types.js';\n\nconst PACKAGE_NAME = \"@sentry/instrumentation-amqplib\";\nconst supportedVersions = [\">=0.5.5 <2\"];\nclass AmqplibInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n init() {\n const channelModelModuleFile = new InstrumentationNodeModuleFile(\n \"amqplib/lib/channel_model.js\",\n supportedVersions,\n this.patchChannelModel.bind(this),\n this.unpatchChannelModel.bind(this)\n );\n const callbackModelModuleFile = new InstrumentationNodeModuleFile(\n \"amqplib/lib/callback_model.js\",\n supportedVersions,\n this.patchChannelModel.bind(this),\n this.unpatchChannelModel.bind(this)\n );\n const connectModuleFile = new InstrumentationNodeModuleFile(\n \"amqplib/lib/connect.js\",\n supportedVersions,\n this.patchConnect.bind(this),\n this.unpatchConnect.bind(this)\n );\n const module = new InstrumentationNodeModuleDefinition(\"amqplib\", supportedVersions, void 0, void 0, [\n channelModelModuleFile,\n connectModuleFile,\n callbackModelModuleFile\n ]);\n return module;\n }\n patchConnect(moduleExports) {\n const unpatchedExports = this.unpatchConnect(moduleExports);\n if (!isWrapped(unpatchedExports.connect)) {\n this._wrap(unpatchedExports, \"connect\", getConnectPatch);\n }\n return unpatchedExports;\n }\n unpatchConnect(moduleExports) {\n if (isWrapped(moduleExports.connect)) {\n this._unwrap(moduleExports, \"connect\");\n }\n return moduleExports;\n }\n patchChannelModel(moduleExports) {\n if (!isWrapped(moduleExports.Channel.prototype.publish)) {\n this._wrap(moduleExports.Channel.prototype, \"publish\", getPublishPatch);\n }\n if (!isWrapped(moduleExports.Channel.prototype.consume)) {\n this._wrap(moduleExports.Channel.prototype, \"consume\", getConsumePatch);\n }\n if (!isWrapped(moduleExports.Channel.prototype.ack)) {\n this._wrap(moduleExports.Channel.prototype, \"ack\", getAckPatch(false, EndOperation.Ack));\n }\n if (!isWrapped(moduleExports.Channel.prototype.nack)) {\n this._wrap(moduleExports.Channel.prototype, \"nack\", getAckPatch(true, EndOperation.Nack));\n }\n if (!isWrapped(moduleExports.Channel.prototype.reject)) {\n this._wrap(moduleExports.Channel.prototype, \"reject\", getAckPatch(true, EndOperation.Reject));\n }\n if (!isWrapped(moduleExports.Channel.prototype.ackAll)) {\n this._wrap(moduleExports.Channel.prototype, \"ackAll\", getAckAllPatch(false, EndOperation.AckAll));\n }\n if (!isWrapped(moduleExports.Channel.prototype.nackAll)) {\n this._wrap(moduleExports.Channel.prototype, \"nackAll\", getAckAllPatch(true, EndOperation.NackAll));\n }\n if (!isWrapped(moduleExports.Channel.prototype.emit)) {\n this._wrap(moduleExports.Channel.prototype, \"emit\", getChannelEmitPatch);\n }\n if (!isWrapped(moduleExports.ConfirmChannel.prototype.publish)) {\n this._wrap(moduleExports.ConfirmChannel.prototype, \"publish\", getConfirmedPublishPatch);\n }\n return moduleExports;\n }\n unpatchChannelModel(moduleExports) {\n if (isWrapped(moduleExports.Channel.prototype.publish)) {\n this._unwrap(moduleExports.Channel.prototype, \"publish\");\n }\n if (isWrapped(moduleExports.Channel.prototype.consume)) {\n this._unwrap(moduleExports.Channel.prototype, \"consume\");\n }\n if (isWrapped(moduleExports.Channel.prototype.ack)) {\n this._unwrap(moduleExports.Channel.prototype, \"ack\");\n }\n if (isWrapped(moduleExports.Channel.prototype.nack)) {\n this._unwrap(moduleExports.Channel.prototype, \"nack\");\n }\n if (isWrapped(moduleExports.Channel.prototype.reject)) {\n this._unwrap(moduleExports.Channel.prototype, \"reject\");\n }\n if (isWrapped(moduleExports.Channel.prototype.ackAll)) {\n this._unwrap(moduleExports.Channel.prototype, \"ackAll\");\n }\n if (isWrapped(moduleExports.Channel.prototype.nackAll)) {\n this._unwrap(moduleExports.Channel.prototype, \"nackAll\");\n }\n if (isWrapped(moduleExports.Channel.prototype.emit)) {\n this._unwrap(moduleExports.Channel.prototype, \"emit\");\n }\n if (isWrapped(moduleExports.ConfirmChannel.prototype.publish)) {\n this._unwrap(moduleExports.ConfirmChannel.prototype, \"publish\");\n }\n return moduleExports;\n }\n}\n\nexport { AmqplibInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "var EndOperation = /* @__PURE__ */ ((EndOperation2) => {\n EndOperation2[\"AutoAck\"] = \"auto ack\";\n EndOperation2[\"Ack\"] = \"ack\";\n EndOperation2[\"AckAll\"] = \"ackAll\";\n EndOperation2[\"Reject\"] = \"reject\";\n EndOperation2[\"Nack\"] = \"nack\";\n EndOperation2[\"NackAll\"] = \"nackAll\";\n EndOperation2[\"ChannelClosed\"] = \"channel closed\";\n EndOperation2[\"ChannelError\"] = \"channel error\";\n EndOperation2[\"InstrumentationTimeout\"] = \"instrumentation timeout\";\n return EndOperation2;\n})(EndOperation || {});\n\nexport { EndOperation };\n//# sourceMappingURL=types.js.map\n", + "import { SpanKind } from '@opentelemetry/api';\nimport { startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getTraceData } from '@sentry/core';\nimport { ATTR_MESSAGING_PROTOCOL, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, ATTR_MESSAGING_SYSTEM, MESSAGING_DESTINATION_KIND_VALUE_TOPIC, ATTR_MESSAGING_CONVERSATION_ID, OLD_ATTR_MESSAGING_MESSAGE_ID, ATTR_MESSAGING_RABBITMQ_ROUTING_KEY, ATTR_MESSAGING_DESTINATION_KIND, ATTR_MESSAGING_DESTINATION, ATTR_MESSAGING_PROTOCOL_VERSION, MESSAGING_OPERATION_VALUE_PROCESS, ATTR_MESSAGING_OPERATION, ATTR_MESSAGING_URL } from './semconv.js';\n\nconst PUBLISHER_ORIGIN = \"auto.amqplib.otel.publisher\";\nconst CONSUMER_ORIGIN = \"auto.amqplib.otel.consumer\";\nconst MESSAGE_STORED_SPAN = /* @__PURE__ */ Symbol(\"opentelemetry.amqplib.message.stored-span\");\nconst CHANNEL_SPANS_NOT_ENDED = /* @__PURE__ */ Symbol(\"opentelemetry.amqplib.channel.spans-not-ended\");\nconst CHANNEL_CONSUME_TIMEOUT_TIMER = /* @__PURE__ */ Symbol(\n \"opentelemetry.amqplib.channel.consumer-timeout-timer\"\n);\nconst CONNECTION_ATTRIBUTES = /* @__PURE__ */ Symbol(\"opentelemetry.amqplib.connection.attributes\");\nconst CHANNEL_IS_CONFIRM_PUBLISHING = /* @__PURE__ */ Symbol(\"sentry.amqplib.channel.is-confirm-publishing\");\nconst normalizeExchange = (exchangeName) => exchangeName !== \"\" ? exchangeName : \"\";\nconst censorPassword = (url) => {\n return url.replace(/:[^:@/]*@/, \":***@\");\n};\nconst getPort = (portFromUrl, resolvedProtocol) => {\n return portFromUrl || (resolvedProtocol === \"AMQP\" ? 5672 : 5671);\n};\nconst getProtocol = (protocolFromUrl) => {\n const resolvedProtocol = protocolFromUrl || \"amqp\";\n const noEndingColon = resolvedProtocol.endsWith(\":\") ? resolvedProtocol.substring(0, resolvedProtocol.length - 1) : resolvedProtocol;\n return noEndingColon.toUpperCase();\n};\nconst getHostname = (hostnameFromUrl) => {\n return hostnameFromUrl || \"localhost\";\n};\nconst getConnectionAttributesFromServer = (conn) => {\n const product = conn.serverProperties.product?.toLowerCase?.();\n if (product) {\n return {\n [ATTR_MESSAGING_SYSTEM]: product\n };\n } else {\n return {};\n }\n};\nconst getConnectionAttributesFromUrl = (url) => {\n const attributes = {\n [ATTR_MESSAGING_PROTOCOL_VERSION]: \"0.9.1\"\n // this is the only protocol supported by the instrumented library\n };\n const resolvedUrl = url || \"amqp://localhost\";\n if (typeof resolvedUrl === \"object\") {\n const connectOptions = resolvedUrl;\n const protocol = getProtocol(connectOptions?.protocol);\n attributes[ATTR_MESSAGING_PROTOCOL] = protocol;\n attributes[ATTR_NET_PEER_NAME] = getHostname(connectOptions?.hostname);\n attributes[ATTR_NET_PEER_PORT] = getPort(connectOptions.port, protocol);\n } else {\n const censoredUrl = censorPassword(resolvedUrl);\n attributes[ATTR_MESSAGING_URL] = censoredUrl;\n try {\n const urlParts = new URL(censoredUrl);\n const protocol = getProtocol(urlParts.protocol);\n attributes[ATTR_MESSAGING_PROTOCOL] = protocol;\n attributes[ATTR_NET_PEER_NAME] = getHostname(urlParts.hostname);\n attributes[ATTR_NET_PEER_PORT] = getPort(urlParts.port ? parseInt(urlParts.port) : void 0, protocol);\n } catch {\n }\n }\n return attributes;\n};\nfunction getHeaderAsString(headers, key) {\n const value = headers?.[key];\n if (value == null) {\n return void 0;\n }\n return Array.isArray(value) ? String(value[0]) : String(value);\n}\nfunction startPublishSpan(exchange, routingKey, channel, options) {\n const normalizedExchange = normalizeExchange(exchange);\n const span = startInactiveSpan({\n name: `publish ${normalizedExchange}`,\n kind: SpanKind.PRODUCER,\n attributes: {\n ...channel.connection[CONNECTION_ATTRIBUTES],\n [ATTR_MESSAGING_DESTINATION]: exchange,\n [ATTR_MESSAGING_DESTINATION_KIND]: MESSAGING_DESTINATION_KIND_VALUE_TOPIC,\n [ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]: routingKey,\n [OLD_ATTR_MESSAGING_MESSAGE_ID]: options?.messageId,\n [ATTR_MESSAGING_CONVERSATION_ID]: options?.correlationId,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: PUBLISHER_ORIGIN\n }\n });\n const modifiedOptions = options ?? {};\n modifiedOptions.headers = modifiedOptions.headers ?? {};\n const traceData = getTraceData({ span });\n if (traceData[\"sentry-trace\"]) {\n modifiedOptions.headers[\"sentry-trace\"] = traceData[\"sentry-trace\"];\n }\n if (traceData.baggage) {\n modifiedOptions.headers[\"baggage\"] = traceData.baggage;\n }\n return { span, modifiedOptions };\n}\nfunction startConsumeSpan(queue, msg, channel) {\n return startInactiveSpan({\n name: `${queue} process`,\n kind: SpanKind.CONSUMER,\n attributes: {\n ...channel?.connection?.[CONNECTION_ATTRIBUTES],\n [ATTR_MESSAGING_DESTINATION]: msg.fields?.exchange,\n [ATTR_MESSAGING_DESTINATION_KIND]: MESSAGING_DESTINATION_KIND_VALUE_TOPIC,\n [ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]: msg.fields?.routingKey,\n [ATTR_MESSAGING_OPERATION]: MESSAGING_OPERATION_VALUE_PROCESS,\n [OLD_ATTR_MESSAGING_MESSAGE_ID]: msg?.properties.messageId,\n [ATTR_MESSAGING_CONVERSATION_ID]: msg?.properties.correlationId,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: CONSUMER_ORIGIN\n }\n });\n}\n\nexport { CHANNEL_CONSUME_TIMEOUT_TIMER, CHANNEL_IS_CONFIRM_PUBLISHING, CHANNEL_SPANS_NOT_ENDED, CONNECTION_ATTRIBUTES, MESSAGE_STORED_SPAN, getConnectionAttributesFromServer, getConnectionAttributesFromUrl, getHeaderAsString, normalizeExchange, startConsumeSpan, startPublishSpan };\n//# sourceMappingURL=utils.js.map\n", + "const ATTR_MESSAGING_SYSTEM = \"messaging.system\";\nconst ATTR_MESSAGING_OPERATION = \"messaging.operation\";\nconst ATTR_NET_PEER_NAME = \"net.peer.name\";\nconst ATTR_NET_PEER_PORT = \"net.peer.port\";\nconst ATTR_MESSAGING_DESTINATION = \"messaging.destination\";\nconst ATTR_MESSAGING_DESTINATION_KIND = \"messaging.destination_kind\";\nconst ATTR_MESSAGING_RABBITMQ_ROUTING_KEY = \"messaging.rabbitmq.routing_key\";\nconst ATTR_MESSAGING_PROTOCOL = \"messaging.protocol\";\nconst ATTR_MESSAGING_PROTOCOL_VERSION = \"messaging.protocol_version\";\nconst ATTR_MESSAGING_URL = \"messaging.url\";\nconst OLD_ATTR_MESSAGING_MESSAGE_ID = \"messaging.message_id\";\nconst ATTR_MESSAGING_CONVERSATION_ID = \"messaging.conversation_id\";\nconst MESSAGING_DESTINATION_KIND_VALUE_TOPIC = \"topic\";\nconst MESSAGING_OPERATION_VALUE_PROCESS = \"process\";\n\nexport { ATTR_MESSAGING_CONVERSATION_ID, ATTR_MESSAGING_DESTINATION, ATTR_MESSAGING_DESTINATION_KIND, ATTR_MESSAGING_OPERATION, ATTR_MESSAGING_PROTOCOL, ATTR_MESSAGING_PROTOCOL_VERSION, ATTR_MESSAGING_RABBITMQ_ROUTING_KEY, ATTR_MESSAGING_SYSTEM, ATTR_MESSAGING_URL, ATTR_NET_PEER_NAME, ATTR_NET_PEER_PORT, MESSAGING_DESTINATION_KIND_VALUE_TOPIC, MESSAGING_OPERATION_VALUE_PROCESS, OLD_ATTR_MESSAGING_MESSAGE_ID };\n//# sourceMappingURL=semconv.js.map\n", + "import { timestampInSeconds, continueTrace, withActiveSpan, SPAN_STATUS_ERROR } from '@sentry/core';\nimport { EndOperation } from './types.js';\nimport { getConnectionAttributesFromUrl, getConnectionAttributesFromServer, CONNECTION_ATTRIBUTES, CHANNEL_IS_CONFIRM_PUBLISHING, startPublishSpan, CHANNEL_SPANS_NOT_ENDED, CHANNEL_CONSUME_TIMEOUT_TIMER, getHeaderAsString, startConsumeSpan, MESSAGE_STORED_SPAN } from './utils.js';\n\nconst CONSUME_TIMEOUT_MS = 1e3 * 60;\nfunction endConsumerSpan(message, isRejected, operation, requeue) {\n const storedSpan = message[MESSAGE_STORED_SPAN];\n if (!storedSpan) {\n return;\n }\n if (isRejected !== false) {\n storedSpan.setStatus({\n code: SPAN_STATUS_ERROR,\n message: operation !== EndOperation.ChannelClosed && operation !== EndOperation.ChannelError ? `${operation} called on message${requeue === true ? \" with requeue\" : requeue === false ? \" without requeue\" : \"\"}` : operation\n });\n }\n storedSpan.end();\n message[MESSAGE_STORED_SPAN] = void 0;\n}\nfunction endAllSpansOnChannel(channel, isRejected, operation, requeue) {\n const spansNotEnded = channel[CHANNEL_SPANS_NOT_ENDED] ?? [];\n spansNotEnded.forEach((msgDetails) => {\n endConsumerSpan(msgDetails.msg, isRejected, operation, requeue);\n });\n channel[CHANNEL_SPANS_NOT_ENDED] = [];\n}\nfunction checkConsumeTimeoutOnChannel(channel) {\n const currentTime = timestampInSeconds();\n const spansNotEnded = channel[CHANNEL_SPANS_NOT_ENDED] ?? [];\n let i;\n for (i = 0; i < spansNotEnded.length; i++) {\n const currMessage = spansNotEnded[i];\n const timeFromConsumeMs = (currentTime - currMessage.timeOfConsume) * 1e3;\n if (timeFromConsumeMs < CONSUME_TIMEOUT_MS) {\n break;\n }\n endConsumerSpan(currMessage.msg, null, EndOperation.InstrumentationTimeout, true);\n }\n spansNotEnded.splice(0, i);\n}\nfunction getConnectPatch(original) {\n return function patchedConnect(url, socketOptions, openCallback) {\n return original.call(this, url, socketOptions, function(err, conn) {\n if (err == null) {\n const urlAttributes = getConnectionAttributesFromUrl(url);\n const serverAttributes = getConnectionAttributesFromServer(conn);\n conn[CONNECTION_ATTRIBUTES] = {\n ...urlAttributes,\n ...serverAttributes\n };\n }\n openCallback.apply(this, arguments);\n });\n };\n}\nfunction getChannelEmitPatch(original) {\n return function emit(eventName) {\n if (eventName === \"close\") {\n endAllSpansOnChannel(this, true, EndOperation.ChannelClosed, void 0);\n const activeTimer = this[CHANNEL_CONSUME_TIMEOUT_TIMER];\n if (activeTimer) {\n clearInterval(activeTimer);\n }\n this[CHANNEL_CONSUME_TIMEOUT_TIMER] = void 0;\n } else if (eventName === \"error\") {\n endAllSpansOnChannel(this, true, EndOperation.ChannelError, void 0);\n }\n return original.apply(this, arguments);\n };\n}\nfunction getAckAllPatch(isRejected, endOperation) {\n return (original) => function ackAll(requeueOrEmpty) {\n endAllSpansOnChannel(this, isRejected, endOperation, requeueOrEmpty);\n return original.apply(this, arguments);\n };\n}\nfunction getAckPatch(isRejected, endOperation) {\n return (original) => function ack(message, allUpToOrRequeue, requeue) {\n const channel = this;\n const requeueResolved = endOperation === EndOperation.Reject ? allUpToOrRequeue : requeue;\n const spansNotEnded = channel[CHANNEL_SPANS_NOT_ENDED] ?? [];\n const msgIndex = spansNotEnded.findIndex((msgDetails) => msgDetails.msg === message);\n if (msgIndex < 0) {\n endConsumerSpan(message, isRejected, endOperation, requeueResolved);\n } else if (endOperation !== EndOperation.Reject && allUpToOrRequeue) {\n for (let i = 0; i <= msgIndex; i++) {\n endConsumerSpan(spansNotEnded[i].msg, isRejected, endOperation, requeueResolved);\n }\n spansNotEnded.splice(0, msgIndex + 1);\n } else {\n endConsumerSpan(message, isRejected, endOperation, requeueResolved);\n spansNotEnded.splice(msgIndex, 1);\n }\n return original.apply(this, arguments);\n };\n}\nfunction getConsumePatch(original) {\n return function consume(queue, onMessage, options) {\n const channel = this;\n if (!Object.prototype.hasOwnProperty.call(channel, CHANNEL_SPANS_NOT_ENDED)) {\n const timer = setInterval(() => {\n checkConsumeTimeoutOnChannel(channel);\n }, CONSUME_TIMEOUT_MS);\n timer.unref();\n channel[CHANNEL_CONSUME_TIMEOUT_TIMER] = timer;\n channel[CHANNEL_SPANS_NOT_ENDED] = [];\n }\n const patchedOnMessage = function(msg) {\n if (!msg) {\n return onMessage.call(this, msg);\n }\n const headers = msg.properties.headers ?? {};\n const sentryTrace = getHeaderAsString(headers, \"sentry-trace\");\n const baggage = getHeaderAsString(headers, \"baggage\");\n continueTrace({ sentryTrace, baggage }, () => {\n const span = startConsumeSpan(queue, msg, channel);\n if (!options?.noAck) {\n channel[CHANNEL_SPANS_NOT_ENDED].push({ msg, timeOfConsume: timestampInSeconds() });\n msg[MESSAGE_STORED_SPAN] = span;\n }\n withActiveSpan(span, () => {\n onMessage.call(this, msg);\n });\n if (options?.noAck) {\n span.end();\n }\n });\n };\n const callArgs = Array.prototype.slice.call(arguments);\n callArgs[1] = patchedOnMessage;\n return original.apply(this, callArgs);\n };\n}\nfunction getConfirmedPublishPatch(original) {\n return function confirmedPublish(exchange, routingKey, content, options, callback) {\n const channel = this;\n const { span, modifiedOptions } = startPublishSpan(exchange, routingKey, channel, options);\n const patchedOnConfirm = function(err, ok) {\n try {\n withActiveSpan(span, () => {\n callback?.call(this, err, ok);\n });\n } finally {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: \"message confirmation has been nack'ed\" });\n }\n span.end();\n }\n };\n const argumentsCopy = [...arguments];\n argumentsCopy[3] = modifiedOptions;\n argumentsCopy[4] = patchedOnConfirm;\n channel[CHANNEL_IS_CONFIRM_PUBLISHING] = true;\n try {\n return original.apply(this, argumentsCopy);\n } finally {\n channel[CHANNEL_IS_CONFIRM_PUBLISHING] = false;\n }\n };\n}\nfunction getPublishPatch(original) {\n return function publish(exchange, routingKey, content, options) {\n if (this[CHANNEL_IS_CONFIRM_PUBLISHING]) {\n return original.apply(this, arguments);\n }\n const channel = this;\n const { span, modifiedOptions } = startPublishSpan(exchange, routingKey, channel, options);\n const argumentsCopy = [...arguments];\n argumentsCopy[3] = modifiedOptions;\n const originalRes = original.apply(this, argumentsCopy);\n span.end();\n return originalRes;\n };\n}\n\nexport { getAckAllPatch, getAckPatch, getChannelEmitPatch, getConfirmedPublishPatch, getConnectPatch, getConsumePatch, getPublishPatch };\n//# sourceMappingURL=patches.js.map\n", + "import { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { AmqplibInstrumentation } from './vendored/instrumentation.js';\n\nconst INTEGRATION_NAME = \"Amqplib\";\nconst instrumentAmqplib = generateInstrumentOnce(INTEGRATION_NAME, () => new AmqplibInstrumentation());\nconst _amqplibIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentAmqplib();\n }\n };\n});\nconst amqplibIntegration = defineIntegration(_amqplibIntegration);\n\nexport { amqplibIntegration, instrumentAmqplib };\n//# sourceMappingURL=index.js.map\n", + "const INTEGRATION_NAME = \"VercelAI\";\n\nexport { INTEGRATION_NAME };\n//# sourceMappingURL=constants.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, getClient, handleCallbackErrors, addNonEnumerableProperty, getActiveSpan, _INTERNAL_getSpanContextForToolCallId, withScope, captureException, _INTERNAL_cleanupToolCallSpanContext } from '@sentry/core';\nimport { INTEGRATION_NAME } from './constants.js';\n\nconst SUPPORTED_VERSIONS = [\">=3.0.0 <7\"];\nconst INSTRUMENTED_METHODS = [\n \"generateText\",\n \"streamText\",\n \"generateObject\",\n \"streamObject\",\n \"embed\",\n \"embedMany\",\n \"rerank\"\n];\nfunction isToolError(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return false;\n }\n const candidate = obj;\n return \"type\" in candidate && \"error\" in candidate && \"toolName\" in candidate && \"toolCallId\" in candidate && candidate.type === \"tool-error\" && candidate.error instanceof Error;\n}\nfunction processToolCallResults(result) {\n if (typeof result !== \"object\" || result === null || !(\"content\" in result)) {\n return;\n }\n const resultObj = result;\n if (!Array.isArray(resultObj.content)) {\n return;\n }\n captureToolErrors(resultObj.content);\n cleanupToolCallSpanContexts(resultObj.content);\n}\nfunction captureToolErrors(content) {\n for (const item of content) {\n if (!isToolError(item)) {\n continue;\n }\n const spanContext = _INTERNAL_getSpanContextForToolCallId(item.toolCallId);\n if (spanContext) {\n withScope((scope) => {\n scope.setContext(\"trace\", {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId\n });\n scope.setTag(\"vercel.ai.tool.name\", item.toolName);\n scope.setTag(\"vercel.ai.tool.callId\", item.toolCallId);\n scope.setLevel(\"error\");\n captureException(item.error, {\n mechanism: {\n type: \"auto.vercelai.otel\",\n handled: false\n }\n });\n });\n } else {\n withScope((scope) => {\n scope.setTag(\"vercel.ai.tool.name\", item.toolName);\n scope.setTag(\"vercel.ai.tool.callId\", item.toolCallId);\n scope.setLevel(\"error\");\n captureException(item.error, {\n mechanism: {\n type: \"auto.vercelai.otel\",\n handled: false\n }\n });\n });\n }\n }\n}\nfunction cleanupToolCallSpanContexts(content) {\n for (const item of content) {\n if (typeof item === \"object\" && item !== null && \"toolCallId\" in item && typeof item.toolCallId === \"string\") {\n _INTERNAL_cleanupToolCallSpanContext(item.toolCallId);\n }\n }\n}\nfunction determineRecordingSettings(integrationRecordingOptions, methodTelemetryOptions, telemetryExplicitlyEnabled, defaultInputsEnabled, defaultOutputsEnabled) {\n const recordInputs = integrationRecordingOptions?.recordInputs !== void 0 ? integrationRecordingOptions.recordInputs : methodTelemetryOptions.recordInputs !== void 0 ? methodTelemetryOptions.recordInputs : telemetryExplicitlyEnabled === true ? true : defaultInputsEnabled;\n const recordOutputs = integrationRecordingOptions?.recordOutputs !== void 0 ? integrationRecordingOptions.recordOutputs : methodTelemetryOptions.recordOutputs !== void 0 ? methodTelemetryOptions.recordOutputs : telemetryExplicitlyEnabled === true ? true : defaultOutputsEnabled;\n return { recordInputs, recordOutputs };\n}\nclass SentryVercelAiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-vercel-ai\", SDK_VERSION, config);\n this._isPatched = false;\n this._callbacks = [];\n }\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\"ai\", SUPPORTED_VERSIONS, this._patch.bind(this));\n return module;\n }\n /**\n * Call the provided callback when the module is patched.\n * If it has already been patched, the callback will be called immediately.\n */\n callWhenPatched(callback) {\n if (this._isPatched) {\n callback();\n } else {\n this._callbacks.push(callback);\n }\n }\n /**\n * Patches module exports to enable Vercel AI telemetry.\n */\n _patch(moduleExports) {\n this._isPatched = true;\n this._callbacks.forEach((callback) => callback());\n this._callbacks = [];\n const generatePatch = (originalMethod) => {\n return new Proxy(originalMethod, {\n apply: (target, thisArg, args) => {\n const existingExperimentalTelemetry = args[0].experimental_telemetry || {};\n const isEnabled = existingExperimentalTelemetry.isEnabled;\n const client = getClient();\n const integration = client?.getIntegrationByName(INTEGRATION_NAME);\n const integrationOptions = integration?.options;\n const genAI = integration ? client?.getDataCollectionOptions().genAI : void 0;\n const { recordInputs, recordOutputs } = determineRecordingSettings(\n integrationOptions,\n existingExperimentalTelemetry,\n isEnabled,\n Boolean(genAI?.inputs),\n Boolean(genAI?.outputs)\n );\n args[0].experimental_telemetry = {\n ...existingExperimentalTelemetry,\n isEnabled: isEnabled !== void 0 ? isEnabled : true,\n recordInputs,\n recordOutputs\n };\n return handleCallbackErrors(\n () => Reflect.apply(target, thisArg, args),\n (error) => {\n if (error && typeof error === \"object\") {\n addNonEnumerableProperty(error, \"_sentry_active_span\", getActiveSpan());\n }\n },\n () => {\n },\n (result) => {\n processToolCallResults(result);\n }\n );\n }\n });\n };\n if (Object.prototype.toString.call(moduleExports) === \"[object Module]\") {\n for (const method of INSTRUMENTED_METHODS) {\n if (moduleExports[method] != null) {\n moduleExports[method] = generatePatch(moduleExports[method]);\n }\n }\n return moduleExports;\n } else {\n const patchedModuleExports = INSTRUMENTED_METHODS.reduce((acc, curr) => {\n if (moduleExports[curr] != null) {\n acc[curr] = generatePatch(moduleExports[curr]);\n }\n return acc;\n }, {});\n return { ...moduleExports, ...patchedModuleExports };\n }\n }\n}\n\nexport { SentryVercelAiInstrumentation, cleanupToolCallSpanContexts, determineRecordingSettings, processToolCallResults };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { defineIntegration, extendIntegration, addVercelAiProcessors } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { vercelAiIntegration } from '@sentry/server-utils';\nimport { INTEGRATION_NAME } from './constants.js';\nimport { SentryVercelAiInstrumentation } from './instrumentation.js';\n\nconst instrumentVercelAi = generateInstrumentOnce(INTEGRATION_NAME, () => new SentryVercelAiInstrumentation({}));\nfunction shouldForceIntegration(client) {\n const modules = client.getIntegrationByName(\"Modules\");\n return !!modules?.getModules?.()?.ai;\n}\nconst _vercelAIIntegration = ((options = {}) => {\n let instrumentation;\n const parentIntegration = vercelAiIntegration(options);\n return extendIntegration(parentIntegration, {\n options,\n setupOnce() {\n instrumentation = instrumentVercelAi();\n },\n afterAllSetup(client) {\n const shouldForce = options.force ?? shouldForceIntegration(client);\n if (shouldForce) {\n addVercelAiProcessors(client);\n } else {\n instrumentation?.callWhenPatched(() => addVercelAiProcessors(client));\n }\n }\n });\n});\nconst vercelAIIntegration = defineIntegration(_vercelAIIntegration);\n\nexport { instrumentVercelAi, vercelAIIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, _INTERNAL_shouldSkipAiProviderWrapping, OPENAI_INTEGRATION_NAME, instrumentOpenAiClient } from '@sentry/core';\n\nconst supportedVersions = [\">=4.0.0 <7\"];\nclass SentryOpenAiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-openai\", SDK_VERSION, config);\n }\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\"openai\", supportedVersions, this._patch.bind(this));\n return module;\n }\n /**\n * Core patch logic applying instrumentation to the OpenAI and AzureOpenAI client constructors.\n */\n _patch(exports) {\n let result = exports;\n result = this._patchClient(result, \"OpenAI\");\n result = this._patchClient(result, \"AzureOpenAI\");\n return result;\n }\n /**\n * Patch logic applying instrumentation to the specified client constructor.\n */\n _patchClient(exports, exportKey) {\n const Original = exports[exportKey];\n if (!Original) {\n return exports;\n }\n const config = this.getConfig();\n const WrappedOpenAI = function(...args) {\n if (_INTERNAL_shouldSkipAiProviderWrapping(OPENAI_INTEGRATION_NAME)) {\n return Reflect.construct(Original, args);\n }\n const instance = Reflect.construct(Original, args);\n return instrumentOpenAiClient(instance, config);\n };\n Object.setPrototypeOf(WrappedOpenAI, Original);\n Object.setPrototypeOf(WrappedOpenAI.prototype, Original.prototype);\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (![\"length\", \"name\", \"prototype\"].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedOpenAI, key, descriptor);\n }\n }\n }\n try {\n exports[exportKey] = WrappedOpenAI;\n } catch {\n Object.defineProperty(exports, exportKey, {\n value: WrappedOpenAI,\n writable: true,\n configurable: true,\n enumerable: true\n });\n }\n if (exports.default === Original) {\n try {\n exports.default = WrappedOpenAI;\n } catch {\n Object.defineProperty(exports, \"default\", {\n value: WrappedOpenAI,\n writable: true,\n configurable: true,\n enumerable: true\n });\n }\n }\n return exports;\n }\n}\n\nexport { SentryOpenAiInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { OPENAI_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryOpenAiInstrumentation } from './instrumentation.js';\n\nconst instrumentOpenAi = generateInstrumentOnce(\n OPENAI_INTEGRATION_NAME,\n (options) => new SentryOpenAiInstrumentation(options)\n);\nconst _openAiIntegration = ((options = {}) => {\n return {\n name: OPENAI_INTEGRATION_NAME,\n setupOnce() {\n instrumentOpenAi(options);\n }\n };\n});\nconst openAIIntegration = defineIntegration(_openAiIntegration);\n\nexport { instrumentOpenAi, openAIIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, _INTERNAL_shouldSkipAiProviderWrapping, ANTHROPIC_AI_INTEGRATION_NAME, instrumentAnthropicAiClient } from '@sentry/core';\n\nconst supportedVersions = [\">=0.19.2 <1.0.0\"];\nclass SentryAnthropicAiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-anthropic-ai\", SDK_VERSION, config);\n }\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n \"@anthropic-ai/sdk\",\n supportedVersions,\n this._patch.bind(this)\n );\n return module;\n }\n /**\n * Core patch logic applying instrumentation to the Anthropic AI client constructor.\n */\n _patch(exports) {\n const Original = exports.Anthropic;\n const config = this.getConfig();\n const WrappedAnthropic = function(...args) {\n if (_INTERNAL_shouldSkipAiProviderWrapping(ANTHROPIC_AI_INTEGRATION_NAME)) {\n return Reflect.construct(Original, args);\n }\n const instance = Reflect.construct(Original, args);\n return instrumentAnthropicAiClient(instance, config);\n };\n Object.setPrototypeOf(WrappedAnthropic, Original);\n Object.setPrototypeOf(WrappedAnthropic.prototype, Original.prototype);\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (![\"length\", \"name\", \"prototype\"].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedAnthropic, key, descriptor);\n }\n }\n }\n try {\n exports.Anthropic = WrappedAnthropic;\n } catch {\n Object.defineProperty(exports, \"Anthropic\", {\n value: WrappedAnthropic,\n writable: true,\n configurable: true,\n enumerable: true\n });\n }\n if (exports.default === Original) {\n try {\n exports.default = WrappedAnthropic;\n } catch {\n Object.defineProperty(exports, \"default\", {\n value: WrappedAnthropic,\n writable: true,\n configurable: true,\n enumerable: true\n });\n }\n }\n return exports;\n }\n}\n\nexport { SentryAnthropicAiInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { ANTHROPIC_AI_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryAnthropicAiInstrumentation } from './instrumentation.js';\n\nconst instrumentAnthropicAi = generateInstrumentOnce(\n ANTHROPIC_AI_INTEGRATION_NAME,\n (options) => new SentryAnthropicAiInstrumentation(options)\n);\nconst _anthropicAIIntegration = ((options = {}) => {\n return {\n name: ANTHROPIC_AI_INTEGRATION_NAME,\n options,\n setupOnce() {\n instrumentAnthropicAi(options);\n }\n };\n});\nconst anthropicAIIntegration = defineIntegration(_anthropicAIIntegration);\n\nexport { anthropicAIIntegration, instrumentAnthropicAi };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { InstrumentationNodeModuleFile } from '../InstrumentationNodeModuleFile.js';\nimport { SDK_VERSION, replaceExports, _INTERNAL_shouldSkipAiProviderWrapping, GOOGLE_GENAI_INTEGRATION_NAME, instrumentGoogleGenAIClient } from '@sentry/core';\n\nconst supportedVersions = [\">=0.10.0 <2\"];\nclass SentryGoogleGenAiInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-google-genai\", SDK_VERSION, config);\n }\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n const module = new InstrumentationNodeModuleDefinition(\n \"@google/genai\",\n supportedVersions,\n (exports) => this._patch(exports),\n (exports) => exports,\n // In CJS, @google/genai re-exports from (dist/node/index.cjs) file.\n // Patching only the root module sometimes misses the real implementation or\n // gets overwritten when that file is loaded. We add a file-level patch so that\n // _patch runs again on the concrete implementation\n [\n new InstrumentationNodeModuleFile(\n \"@google/genai/dist/node/index.cjs\",\n supportedVersions,\n (exports) => this._patch(exports),\n (exports) => exports\n )\n ]\n );\n return module;\n }\n /**\n * Core patch logic applying instrumentation to the Google GenAI client constructor.\n */\n _patch(exports) {\n const Original = exports.GoogleGenAI;\n const config = this.getConfig();\n if (typeof Original !== \"function\") {\n return exports;\n }\n const WrappedGoogleGenAI = function(...args) {\n if (_INTERNAL_shouldSkipAiProviderWrapping(GOOGLE_GENAI_INTEGRATION_NAME)) {\n return Reflect.construct(Original, args);\n }\n const instance = Reflect.construct(Original, args);\n return instrumentGoogleGenAIClient(instance, config);\n };\n Object.setPrototypeOf(WrappedGoogleGenAI, Original);\n Object.setPrototypeOf(WrappedGoogleGenAI.prototype, Original.prototype);\n for (const key of Object.getOwnPropertyNames(Original)) {\n if (![\"length\", \"name\", \"prototype\"].includes(key)) {\n const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (descriptor) {\n Object.defineProperty(WrappedGoogleGenAI, key, descriptor);\n }\n }\n }\n replaceExports(exports, \"GoogleGenAI\", WrappedGoogleGenAI);\n return exports;\n }\n}\n\nexport { SentryGoogleGenAiInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { GOOGLE_GENAI_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryGoogleGenAiInstrumentation } from './instrumentation.js';\n\nconst instrumentGoogleGenAI = generateInstrumentOnce(\n GOOGLE_GENAI_INTEGRATION_NAME,\n (options) => new SentryGoogleGenAiInstrumentation(options)\n);\nconst _googleGenAIIntegration = ((options = {}) => {\n return {\n name: GOOGLE_GENAI_INTEGRATION_NAME,\n setupOnce() {\n instrumentGoogleGenAI(options);\n }\n };\n});\nconst googleGenAIIntegration = defineIntegration(_googleGenAIIntegration);\n\nexport { googleGenAIIntegration, instrumentGoogleGenAI };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { InstrumentationNodeModuleFile } from '../InstrumentationNodeModuleFile.js';\nimport { SDK_VERSION, _INTERNAL_skipAiProviderWrapping, OPENAI_INTEGRATION_NAME, ANTHROPIC_AI_INTEGRATION_NAME, GOOGLE_GENAI_INTEGRATION_NAME, createLangChainCallbackHandler, instrumentLangChainEmbeddings, _INTERNAL_mergeLangChainCallbackHandler } from '@sentry/core';\n\nconst supportedVersions = [\">=0.1.0 <2.0.0\"];\nfunction wrapRunnableMethod(originalMethod, sentryHandler, _methodName) {\n return new Proxy(originalMethod, {\n apply(target, thisArg, args) {\n const optionsIndex = 1;\n let options = args[optionsIndex];\n if (!options || typeof options !== \"object\" || Array.isArray(options)) {\n options = {};\n args[optionsIndex] = options;\n }\n options.callbacks = _INTERNAL_mergeLangChainCallbackHandler(options.callbacks, sentryHandler);\n return Reflect.apply(target, thisArg, args);\n }\n });\n}\nclass SentryLangChainInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-langchain\", SDK_VERSION, config);\n }\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n * We patch the BaseChatModel class methods to inject callbacks\n *\n * We hook into provider packages (@langchain/anthropic, @langchain/openai, etc.)\n * because @langchain/core is often bundled and not loaded as a separate module\n */\n init() {\n const modules = [];\n const providerPackages = [\n \"@langchain/anthropic\",\n \"@langchain/openai\",\n \"@langchain/google-genai\",\n \"@langchain/mistralai\",\n \"@langchain/google-vertexai\",\n \"@langchain/groq\"\n ];\n for (const packageName of providerPackages) {\n modules.push(\n new InstrumentationNodeModuleDefinition(\n packageName,\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports,\n [\n new InstrumentationNodeModuleFile(\n `${packageName}/dist/index.cjs`,\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports\n )\n ]\n )\n );\n }\n modules.push(\n new InstrumentationNodeModuleDefinition(\n \"langchain\",\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports,\n [\n // To catch the CJS build that contains ConfigurableModel / initChatModel for v1\n new InstrumentationNodeModuleFile(\n \"langchain/dist/chat_models/universal.cjs\",\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports\n )\n ]\n )\n );\n return modules;\n }\n /**\n * Core patch logic - patches chat model and embedding methods\n * This is called when a LangChain provider package is loaded\n */\n _patch(exports) {\n _INTERNAL_skipAiProviderWrapping([\n OPENAI_INTEGRATION_NAME,\n ANTHROPIC_AI_INTEGRATION_NAME,\n GOOGLE_GENAI_INTEGRATION_NAME\n ]);\n const config = this.getConfig();\n const sentryHandler = createLangChainCallbackHandler(config);\n this._patchRunnableMethods(exports, sentryHandler);\n this._patchEmbeddingsMethods(exports, config);\n return exports;\n }\n /**\n * Patches chat model methods (invoke, stream, batch) to inject Sentry callbacks\n * Finds a chat model class from the provider package exports and patches its prototype methods\n */\n _patchRunnableMethods(exports, sentryHandler) {\n const knownChatModelNames = [\n \"ChatAnthropic\",\n \"ChatOpenAI\",\n \"ChatGoogleGenerativeAI\",\n \"ChatMistralAI\",\n \"ChatVertexAI\",\n \"ChatGroq\",\n \"ConfigurableModel\"\n ];\n const exportsToPatch = exports.universal_exports ?? exports;\n const chatModelClass = Object.values(exportsToPatch).find((exp) => {\n return typeof exp === \"function\" && knownChatModelNames.includes(exp.name);\n });\n if (!chatModelClass) {\n return;\n }\n const targetProto = chatModelClass.prototype;\n if (targetProto.__sentry_patched__) {\n return;\n }\n targetProto.__sentry_patched__ = true;\n const methodsToPatch = [\"invoke\", \"stream\", \"batch\"];\n for (const methodName of methodsToPatch) {\n const method = targetProto[methodName];\n if (typeof method === \"function\") {\n targetProto[methodName] = wrapRunnableMethod(\n method,\n sentryHandler);\n }\n }\n }\n /**\n * Patches embedding class methods (embedQuery, embedDocuments) to create Sentry spans.\n *\n * Unlike chat models which use LangChain's callback system, the Embeddings base class\n * has no callback support. We wrap the methods directly on the prototype.\n *\n * Instruments any exported class whose prototype has both embedQuery and embedDocuments as functions.\n */\n _patchEmbeddingsMethods(exports, options) {\n const exportsToPatch = exports.universal_exports ?? exports;\n for (const exp of Object.values(exportsToPatch)) {\n if (typeof exp !== \"function\" || !exp.prototype) {\n continue;\n }\n const proto = exp.prototype;\n if (typeof proto.embedQuery !== \"function\" || typeof proto.embedDocuments !== \"function\") {\n continue;\n }\n if (proto.__sentry_patched__) {\n continue;\n }\n proto.__sentry_patched__ = true;\n instrumentLangChainEmbeddings(proto, options);\n }\n }\n}\n\nexport { SentryLangChainInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { LANGCHAIN_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryLangChainInstrumentation } from './instrumentation.js';\n\nconst instrumentLangChain = generateInstrumentOnce(\n LANGCHAIN_INTEGRATION_NAME,\n (options) => new SentryLangChainInstrumentation(options)\n);\nconst _langChainIntegration = ((options = {}) => {\n return {\n name: LANGCHAIN_INTEGRATION_NAME,\n setupOnce() {\n instrumentLangChain(options);\n }\n };\n});\nconst langChainIntegration = defineIntegration(_langChainIntegration);\n\nexport { instrumentLangChain, langChainIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { InstrumentationNodeModuleFile } from '../InstrumentationNodeModuleFile.js';\nimport { SDK_VERSION, getClient, instrumentLangGraph, instrumentCreateReactAgent } from '@sentry/core';\n\nconst supportedVersions = [\">=0.0.0 <2.0.0\"];\nclass SentryLangGraphInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-langgraph\", SDK_VERSION, config);\n }\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n \"@langchain/langgraph\",\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports,\n [\n new InstrumentationNodeModuleFile(\n /**\n * In CJS, LangGraph packages re-export from dist/index.cjs files.\n * Patching only the root module sometimes misses the real implementation or\n * gets overwritten when that file is loaded. We add a file-level patch so that\n * _patch runs again on the concrete implementation\n */\n \"@langchain/langgraph/dist/index.cjs\",\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports\n ),\n new InstrumentationNodeModuleFile(\n /**\n * In CJS, the prebuilt submodule re-exports from dist/prebuilt/index.cjs.\n * We add a file-level patch under the main module so that CJS require()\n * of @langchain/langgraph/prebuilt gets patched.\n */\n \"@langchain/langgraph/dist/prebuilt/index.cjs\",\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports\n )\n ]\n ),\n new InstrumentationNodeModuleDefinition(\n \"@langchain/langgraph/prebuilt\",\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports,\n [\n new InstrumentationNodeModuleFile(\n /**\n * In CJS, the prebuilt submodule re-exports from dist/prebuilt/index.cjs.\n * We add file-level patches so _patch runs on the concrete implementation.\n */\n \"@langchain/langgraph/dist/prebuilt/index.cjs\",\n supportedVersions,\n this._patch.bind(this),\n (exports) => exports\n )\n ]\n )\n ];\n }\n /**\n * Core patch logic applying instrumentation to the LangGraph module.\n */\n _patch(exports) {\n const client = getClient();\n const genAI = client?.getDataCollectionOptions().genAI;\n const options = {\n ...this.getConfig(),\n recordInputs: this.getConfig().recordInputs ?? genAI?.inputs ?? false,\n recordOutputs: this.getConfig().recordOutputs ?? genAI?.outputs ?? false\n };\n if (exports.StateGraph && typeof exports.StateGraph === \"function\") {\n instrumentLangGraph(exports.StateGraph.prototype, options);\n }\n if (exports.createReactAgent && typeof exports.createReactAgent === \"function\") {\n const originalCreateReactAgent = exports.createReactAgent;\n Object.defineProperty(exports, \"createReactAgent\", {\n value: instrumentCreateReactAgent(originalCreateReactAgent, options),\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n return exports;\n }\n}\n\nexport { SentryLangGraphInstrumentation };\n//# sourceMappingURL=instrumentation.js.map\n", + "import { LANGGRAPH_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryLangGraphInstrumentation } from './instrumentation.js';\n\nconst instrumentLangGraph = generateInstrumentOnce(\n LANGGRAPH_INTEGRATION_NAME,\n (options) => new SentryLangGraphInstrumentation(options)\n);\nconst _langGraphIntegration = ((options = {}) => {\n return {\n name: LANGGRAPH_INTEGRATION_NAME,\n setupOnce() {\n instrumentLangGraph(options);\n }\n };\n});\nconst langGraphIntegration = defineIntegration(_langGraphIntegration);\n\nexport { instrumentLangGraph, langGraphIntegration };\n//# sourceMappingURL=index.js.map\n", + "import { InstrumentationBase } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION } from '@sentry/core';\nimport { patchFirestore } from './patches/firestore.js';\nimport { patchFunctions } from './patches/functions.js';\n\nconst firestoreSupportedVersions = [\">=3.0.0 <5\"];\nconst functionsSupportedVersions = [\">=6.0.0 <7\"];\nclass FirebaseInstrumentation extends InstrumentationBase {\n constructor(config = {}) {\n super(\"@sentry/instrumentation-firebase\", SDK_VERSION, config);\n }\n /**\n *\n * @protected\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n init() {\n const modules = [];\n modules.push(patchFirestore(firestoreSupportedVersions, this._wrap, this._unwrap));\n modules.push(patchFunctions(functionsSupportedVersions, this._wrap, this._unwrap));\n return modules;\n }\n}\n\nexport { FirebaseInstrumentation };\n//# sourceMappingURL=firebaseInstrumentation.js.map\n", + "import * as net from 'node:net';\nimport { InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { InstrumentationNodeModuleFile } from '../../../InstrumentationNodeModuleFile.js';\nimport { ATTR_DB_OPERATION_NAME, ATTR_DB_NAMESPACE, ATTR_DB_COLLECTION_NAME, ATTR_DB_SYSTEM_NAME, ATTR_SERVER_ADDRESS, ATTR_SERVER_PORT } from '@opentelemetry/semantic-conventions';\nimport { startSpan, SPAN_KIND, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\n\nfunction patchFirestore(firestoreSupportedVersions, wrap, unwrap) {\n const moduleFirestoreCJS = new InstrumentationNodeModuleDefinition(\n \"@firebase/firestore\",\n firestoreSupportedVersions,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (moduleExports) => wrapMethods(moduleExports, wrap, unwrap)\n );\n const files = [\n \"@firebase/firestore/dist/lite/index.node.cjs.js\",\n \"@firebase/firestore/dist/lite/index.node.mjs.js\",\n \"@firebase/firestore/dist/lite/index.rn.esm2017.js\",\n \"@firebase/firestore/dist/lite/index.cjs.js\"\n ];\n for (const file of files) {\n moduleFirestoreCJS.files.push(\n new InstrumentationNodeModuleFile(\n file,\n firestoreSupportedVersions,\n (moduleExports) => wrapMethods(moduleExports, wrap, unwrap),\n (moduleExports) => unwrapMethods(moduleExports, unwrap)\n )\n );\n }\n return moduleFirestoreCJS;\n}\nfunction wrapMethods(moduleExports, wrap, unwrap) {\n unwrapMethods(moduleExports, unwrap);\n wrap(moduleExports, \"addDoc\", patchAddDoc());\n wrap(moduleExports, \"getDocs\", patchGetDocs());\n wrap(moduleExports, \"setDoc\", patchSetDoc());\n wrap(moduleExports, \"deleteDoc\", patchDeleteDoc());\n return moduleExports;\n}\nfunction unwrapMethods(moduleExports, unwrap) {\n for (const method of [\"addDoc\", \"getDocs\", \"setDoc\", \"deleteDoc\"]) {\n if (isWrapped(moduleExports[method])) {\n unwrap(moduleExports, method);\n }\n }\n return moduleExports;\n}\nfunction patchAddDoc() {\n return function addDoc(original) {\n return function(reference, data) {\n return startFirestoreSpan(\"addDoc\", reference, () => original(reference, data));\n };\n };\n}\nfunction patchDeleteDoc() {\n return function deleteDoc(original) {\n return function(reference) {\n return startFirestoreSpan(\"deleteDoc\", reference.parent || reference, () => original(reference));\n };\n };\n}\nfunction patchGetDocs() {\n return function getDocs(original) {\n return function(reference) {\n return startFirestoreSpan(\"getDocs\", reference, () => original(reference));\n };\n };\n}\nfunction patchSetDoc() {\n return function setDoc(original) {\n return function(reference, data, options) {\n return startFirestoreSpan(\"setDoc\", reference.parent || reference, () => {\n return typeof options !== \"undefined\" ? original(reference, data, options) : original(reference, data);\n });\n };\n };\n}\nfunction startFirestoreSpan(spanName, reference, callback) {\n return startSpan(\n {\n name: `${spanName} ${reference.path}`,\n op: \"db.query\",\n kind: SPAN_KIND.CLIENT,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.firebase.otel.firestore\",\n [ATTR_DB_OPERATION_NAME]: spanName,\n ...buildAttributes(reference)\n }\n },\n callback\n );\n}\nfunction getPortAndAddress(settings) {\n let address;\n let port;\n if (typeof settings.host === \"string\") {\n if (settings.host.startsWith(\"[\")) {\n if (settings.host.endsWith(\"]\")) {\n address = settings.host.replace(/^\\[|\\]$/g, \"\");\n } else if (settings.host.includes(\"]:\")) {\n const lastColonIndex = settings.host.lastIndexOf(\":\");\n if (lastColonIndex !== -1) {\n address = settings.host.slice(1, lastColonIndex).replace(/^\\[|\\]$/g, \"\");\n port = settings.host.slice(lastColonIndex + 1);\n }\n }\n } else {\n if (net.isIPv6(settings.host)) {\n address = settings.host;\n } else {\n const lastColonIndex = settings.host.lastIndexOf(\":\");\n if (lastColonIndex !== -1) {\n address = settings.host.slice(0, lastColonIndex);\n port = settings.host.slice(lastColonIndex + 1);\n } else {\n address = settings.host;\n }\n }\n }\n }\n return {\n address,\n port: port ? parseInt(port, 10) : void 0\n };\n}\nfunction buildAttributes(reference) {\n const firestoreApp = reference.firestore.app;\n const firestoreOptions = firestoreApp.options;\n const json = reference.firestore.toJSON() || {};\n const settings = json.settings || {};\n const attributes = {\n [ATTR_DB_COLLECTION_NAME]: reference.path,\n [ATTR_DB_NAMESPACE]: firestoreApp.name,\n [ATTR_DB_SYSTEM_NAME]: \"firebase.firestore\",\n \"firebase.firestore.type\": reference.type,\n \"firebase.firestore.options.projectId\": firestoreOptions.projectId,\n \"firebase.firestore.options.appId\": firestoreOptions.appId,\n \"firebase.firestore.options.messagingSenderId\": firestoreOptions.messagingSenderId,\n \"firebase.firestore.options.storageBucket\": firestoreOptions.storageBucket\n };\n const { address, port } = getPortAndAddress(settings);\n if (address) {\n attributes[ATTR_SERVER_ADDRESS] = address;\n }\n if (port) {\n attributes[ATTR_SERVER_PORT] = port;\n }\n return attributes;\n}\n\nexport { getPortAndAddress, patchFirestore };\n//# sourceMappingURL=firestore.js.map\n", + "import { InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { InstrumentationNodeModuleFile } from '../../../InstrumentationNodeModuleFile.js';\nimport { startSpanManual, SPAN_KIND, SPAN_STATUS_ERROR, captureException, flush, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\n\nfunction patchFunctions(functionsSupportedVersions, wrap, unwrap) {\n const moduleFunctionsCJS = new InstrumentationNodeModuleDefinition(\"firebase-functions\", functionsSupportedVersions);\n const modulesToInstrument = [\n { name: \"firebase-functions/lib/v2/providers/https.js\", triggerType: \"function\" },\n { name: \"firebase-functions/lib/v2/providers/firestore.js\", triggerType: \"firestore\" },\n { name: \"firebase-functions/lib/v2/providers/scheduler.js\", triggerType: \"scheduler\" },\n { name: \"firebase-functions/lib/v2/storage.js\", triggerType: \"storage\" }\n ];\n modulesToInstrument.forEach(({ name, triggerType }) => {\n moduleFunctionsCJS.files.push(\n new InstrumentationNodeModuleFile(\n name,\n functionsSupportedVersions,\n (moduleExports) => wrapCommonFunctions(moduleExports, wrap, unwrap, triggerType),\n (moduleExports) => unwrapCommonFunctions(moduleExports, unwrap)\n )\n );\n });\n return moduleFunctionsCJS;\n}\nfunction patchV2Functions(triggerType) {\n return function v2FunctionsWrapper(original) {\n return function(...args) {\n const handler = typeof args[0] === \"function\" ? args[0] : args[1];\n const documentOrOptions = typeof args[0] === \"function\" ? void 0 : args[0];\n if (!handler) {\n return original.call(this, ...args);\n }\n const wrappedHandler = async function(...handlerArgs) {\n const functionName = process.env.FUNCTION_TARGET || process.env.K_SERVICE || \"unknown\";\n const attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: \"auto.firebase.otel.functions\",\n \"faas.name\": functionName,\n \"faas.trigger\": triggerType,\n \"faas.provider\": \"firebase\"\n };\n if (process.env.GCLOUD_PROJECT) {\n attributes[\"cloud.project_id\"] = process.env.GCLOUD_PROJECT;\n }\n if (process.env.EVENTARC_CLOUD_EVENT_SOURCE) {\n attributes[\"cloud.event_source\"] = process.env.EVENTARC_CLOUD_EVENT_SOURCE;\n }\n return startSpanManual(\n {\n name: `firebase.function.${triggerType}`,\n op: \"http.request\",\n kind: SPAN_KIND.SERVER,\n attributes\n },\n async (span) => {\n try {\n const result = await handler.apply(this, handlerArgs);\n span.end();\n return result;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR });\n captureException(error, {\n mechanism: {\n type: \"auto.firebase.otel.functions\",\n handled: false\n }\n });\n span.end();\n await flush(2e3);\n throw error;\n }\n }\n );\n };\n if (documentOrOptions) {\n return original.call(this, documentOrOptions, wrappedHandler);\n } else {\n return original.call(this, wrappedHandler);\n }\n };\n };\n}\nfunction wrapCommonFunctions(moduleExports, wrap, unwrap, triggerType) {\n unwrapCommonFunctions(moduleExports, unwrap);\n switch (triggerType) {\n case \"function\":\n wrap(moduleExports, \"onRequest\", patchV2Functions(\"http.request\"));\n wrap(moduleExports, \"onCall\", patchV2Functions(\"http.call\"));\n break;\n case \"firestore\":\n wrap(moduleExports, \"onDocumentCreated\", patchV2Functions(\"firestore.document.created\"));\n wrap(moduleExports, \"onDocumentUpdated\", patchV2Functions(\"firestore.document.updated\"));\n wrap(moduleExports, \"onDocumentDeleted\", patchV2Functions(\"firestore.document.deleted\"));\n wrap(moduleExports, \"onDocumentWritten\", patchV2Functions(\"firestore.document.written\"));\n wrap(moduleExports, \"onDocumentCreatedWithAuthContext\", patchV2Functions(\"firestore.document.created\"));\n wrap(moduleExports, \"onDocumentUpdatedWithAuthContext\", patchV2Functions(\"firestore.document.updated\"));\n wrap(moduleExports, \"onDocumentDeletedWithAuthContext\", patchV2Functions(\"firestore.document.deleted\"));\n wrap(moduleExports, \"onDocumentWrittenWithAuthContext\", patchV2Functions(\"firestore.document.written\"));\n break;\n case \"scheduler\":\n wrap(moduleExports, \"onSchedule\", patchV2Functions(\"scheduler.scheduled\"));\n break;\n case \"storage\":\n wrap(moduleExports, \"onObjectFinalized\", patchV2Functions(\"storage.object.finalized\"));\n wrap(moduleExports, \"onObjectArchived\", patchV2Functions(\"storage.object.archived\"));\n wrap(moduleExports, \"onObjectDeleted\", patchV2Functions(\"storage.object.deleted\"));\n wrap(moduleExports, \"onObjectMetadataUpdated\", patchV2Functions(\"storage.object.metadataUpdated\"));\n break;\n }\n return moduleExports;\n}\nfunction unwrapCommonFunctions(moduleExports, unwrap) {\n const methods = [\n \"onSchedule\",\n \"onRequest\",\n \"onCall\",\n \"onObjectFinalized\",\n \"onObjectArchived\",\n \"onObjectDeleted\",\n \"onObjectMetadataUpdated\",\n \"onDocumentCreated\",\n \"onDocumentUpdated\",\n \"onDocumentDeleted\",\n \"onDocumentWritten\",\n \"onDocumentCreatedWithAuthContext\",\n \"onDocumentUpdatedWithAuthContext\",\n \"onDocumentDeletedWithAuthContext\",\n \"onDocumentWrittenWithAuthContext\"\n ];\n for (const method of methods) {\n if (isWrapped(moduleExports[method])) {\n unwrap(moduleExports, method);\n }\n }\n return moduleExports;\n}\n\nexport { patchFunctions, patchV2Functions };\n//# sourceMappingURL=functions.js.map\n", + "import { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { FirebaseInstrumentation } from './otel/firebaseInstrumentation.js';\n\nconst INTEGRATION_NAME = \"Firebase\";\nconst instrumentFirebase = generateInstrumentOnce(INTEGRATION_NAME, () => new FirebaseInstrumentation());\nconst _firebaseIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentFirebase();\n }\n };\n});\nconst firebaseIntegration = defineIntegration(_firebaseIntegration);\n\nexport { firebaseIntegration, instrumentFirebase };\n//# sourceMappingURL=firebase.js.map\n", + "import { instrumentSentryHttp } from '../http.js';\nimport { instrumentAmqplib, amqplibIntegration } from './amqplib/index.js';\nimport { instrumentAnthropicAi, anthropicAIIntegration } from './anthropic-ai/index.js';\nimport { instrumentConnect, connectIntegration } from './connect/index.js';\nimport { instrumentExpress, expressIntegration } from './express.js';\nimport { instrumentFastifyV3, fastifyIntegration } from './fastify/index.js';\nimport { instrumentFirebase, firebaseIntegration } from './firebase/firebase.js';\nimport { instrumentGenericPool, genericPoolIntegration } from './genericPool/index.js';\nimport { instrumentGoogleGenAI, googleGenAIIntegration } from './google-genai/index.js';\nimport { instrumentGraphql, graphqlIntegration } from './graphql/index.js';\nimport { instrumentHapi, hapiIntegration } from './hapi/index.js';\nimport { instrumentHono, honoIntegration } from './hono/index.js';\nimport { instrumentKafka, kafkaIntegration } from './kafka/index.js';\nimport { instrumentKoa, koaIntegration } from './koa/index.js';\nimport { instrumentLangChain, langChainIntegration } from './langchain/index.js';\nimport { instrumentLangGraph, langGraphIntegration } from './langgraph/index.js';\nimport { instrumentLruMemoizer, lruMemoizerIntegration } from './lrumemoizer/index.js';\nimport { instrumentMongo, mongoIntegration } from './mongo/index.js';\nimport { instrumentMongoose, mongooseIntegration } from './mongoose/index.js';\nimport { instrumentMysql, mysqlIntegration } from './mysql/index.js';\nimport { instrumentMysql2, mysql2Integration } from './mysql2/index.js';\nimport { instrumentOpenAi, openAIIntegration } from './openai/index.js';\nimport { instrumentPostgres, postgresIntegration } from './postgres/index.js';\nimport { instrumentPostgresJs, postgresJsIntegration } from './postgresjs.js';\nimport { prismaIntegration } from './prisma/index.js';\nimport { instrumentRedis, redisIntegration } from './redis/index.js';\nimport { instrumentTedious, tediousIntegration } from './tedious/index.js';\nimport { instrumentVercelAi, vercelAIIntegration } from './vercelai/index.js';\n\nfunction getAutoPerformanceIntegrations() {\n return [\n expressIntegration(),\n fastifyIntegration(),\n graphqlIntegration(),\n // eslint-disable-next-line typescript/no-deprecated\n honoIntegration(),\n mongoIntegration(),\n mongooseIntegration(),\n mysqlIntegration(),\n mysql2Integration(),\n redisIntegration(),\n postgresIntegration(),\n prismaIntegration(),\n hapiIntegration(),\n koaIntegration(),\n connectIntegration(),\n tediousIntegration(),\n genericPoolIntegration(),\n kafkaIntegration(),\n amqplibIntegration(),\n lruMemoizerIntegration(),\n // AI providers\n // LangChain must come first to disable AI provider integrations before they instrument\n langChainIntegration(),\n langGraphIntegration(),\n vercelAIIntegration(),\n openAIIntegration(),\n anthropicAIIntegration(),\n googleGenAIIntegration(),\n postgresJsIntegration(),\n firebaseIntegration()\n ];\n}\nfunction getOpenTelemetryInstrumentationToPreload() {\n return [\n instrumentSentryHttp,\n instrumentExpress,\n instrumentConnect,\n instrumentFastifyV3,\n instrumentHapi,\n instrumentHono,\n instrumentKafka,\n instrumentKoa,\n instrumentLruMemoizer,\n instrumentMongo,\n instrumentMongoose,\n instrumentMysql,\n instrumentMysql2,\n instrumentPostgres,\n instrumentHapi,\n instrumentGraphql,\n instrumentRedis,\n instrumentTedious,\n instrumentGenericPool,\n instrumentAmqplib,\n instrumentLangChain,\n instrumentVercelAi,\n instrumentOpenAi,\n instrumentPostgresJs,\n instrumentFirebase,\n instrumentAnthropicAi,\n instrumentGoogleGenAI,\n instrumentLangGraph\n ];\n}\n\nexport { getAutoPerformanceIntegrations, getOpenTelemetryInstrumentationToPreload };\n//# sourceMappingURL=index.js.map\n", + "let loader;\nlet cached;\nfunction setDiagnosticsChannelInjectionLoader(load) {\n loader = load;\n}\nfunction isDiagnosticsChannelInjectionEnabled() {\n return !!loader;\n}\nfunction resolveDiagnosticsChannelInjection() {\n if (!loader) {\n return void 0;\n }\n return cached ?? (cached = loader());\n}\n\nexport { isDiagnosticsChannelInjectionEnabled, resolveDiagnosticsChannelInjection, setDiagnosticsChannelInjectionLoader };\n//# sourceMappingURL=diagnosticsChannelInjection.js.map\n", + "import { trace, propagation, context } from '@opentelemetry/api';\nimport { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';\nimport { debug } from '@sentry/core';\nimport { setupOpenTelemetryLogger, SentryContextManager, initializeEsmLoader } from '@sentry/node-core';\nimport { SentrySpanProcessor, SentrySampler, getSentryResource, SentryPropagator } from '@sentry/opentelemetry';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { getOpenTelemetryInstrumentationToPreload } from '../integrations/tracing/index.js';\n\nconst MAX_MAX_SPAN_WAIT_DURATION = 1e6;\nfunction initOpenTelemetry(client, options = {}) {\n if (client.getOptions().debug) {\n setupOpenTelemetryLogger();\n }\n const [provider, asyncLocalStorageLookup] = setupOtel(client, options);\n client.traceProvider = provider;\n client.asyncLocalStorageLookup = asyncLocalStorageLookup;\n}\nfunction preloadOpenTelemetry(options = {}) {\n const { debug: debug$1 } = options;\n if (debug$1) {\n debug.enable();\n }\n initializeEsmLoader();\n getPreloadMethods(options.integrations).forEach((fn) => {\n fn();\n if (debug$1) {\n debug.log(`[Sentry] Preloaded ${fn.id} instrumentation`);\n }\n });\n}\nfunction getPreloadMethods(integrationNames) {\n const instruments = getOpenTelemetryInstrumentationToPreload();\n if (!integrationNames) {\n return instruments;\n }\n return instruments.filter((instrumentation) => {\n const id = instrumentation.id;\n return integrationNames.some((integrationName) => id === integrationName || id.startsWith(`${integrationName}.`));\n });\n}\nfunction setupOtel(client, options = {}) {\n const provider = new BasicTracerProvider({\n sampler: new SentrySampler(client),\n resource: getSentryResource(\"node\"),\n forceFlushTimeoutMillis: 500,\n spanProcessors: [\n new SentrySpanProcessor({\n timeout: _clampSpanProcessorTimeout(client.getOptions().maxSpanWaitDuration),\n client\n }),\n ...options.spanProcessors || []\n ]\n });\n trace.setGlobalTracerProvider(provider);\n propagation.setGlobalPropagator(new SentryPropagator());\n const ctxManager = new SentryContextManager();\n context.setGlobalContextManager(ctxManager);\n return [provider, ctxManager.getAsyncLocalStorageLookup()];\n}\nfunction _clampSpanProcessorTimeout(maxSpanWaitDuration) {\n if (maxSpanWaitDuration == null) {\n return void 0;\n }\n if (maxSpanWaitDuration > MAX_MAX_SPAN_WAIT_DURATION) {\n DEBUG_BUILD && debug.warn(`\\`maxSpanWaitDuration\\` is too high, using the maximum value of ${MAX_MAX_SPAN_WAIT_DURATION}`);\n return MAX_MAX_SPAN_WAIT_DURATION;\n } else if (maxSpanWaitDuration <= 0 || Number.isNaN(maxSpanWaitDuration)) {\n DEBUG_BUILD && debug.warn(\"`maxSpanWaitDuration` must be a positive number, using default value instead.\");\n return void 0;\n }\n return maxSpanWaitDuration;\n}\n\nexport { _clampSpanProcessorTimeout, initOpenTelemetry, preloadOpenTelemetry, setupOtel };\n//# sourceMappingURL=initOtel.js.map\n", + "import { applySdkMetadata, hasSpansEnabled } from '@sentry/core';\nimport { init as init$1, validateOpenTelemetrySetup, getDefaultIntegrations as getDefaultIntegrations$1 } from '@sentry/node-core';\nimport { httpIntegration } from '../integrations/http.js';\nimport { nativeNodeFetchIntegration } from '../integrations/node-fetch/index.js';\nimport { getAutoPerformanceIntegrations } from '../integrations/tracing/index.js';\nimport { isDiagnosticsChannelInjectionEnabled, resolveDiagnosticsChannelInjection } from './diagnosticsChannelInjection.js';\nimport { initOpenTelemetry } from './initOtel.js';\n\nfunction getDefaultIntegrationsWithoutPerformance() {\n const nodeCoreIntegrations = getDefaultIntegrations$1();\n return nodeCoreIntegrations.filter((integration) => integration.name !== \"Http\" && integration.name !== \"NodeFetch\").concat(httpIntegration(), nativeNodeFetchIntegration());\n}\nfunction getDefaultIntegrations(options) {\n const integrations = [\n ...getDefaultIntegrationsWithoutPerformance(),\n // We only add performance integrations if tracing is enabled\n // Note that this means that without tracing enabled, e.g. `expressIntegration()` will not be added\n // This means that generally request isolation will work (because that is done by httpIntegration)\n // But `transactionName` will not be set automatically\n ...hasSpansEnabled(options) ? getAutoPerformanceIntegrations() : []\n ];\n if (isDiagnosticsChannelInjectionEnabled() && hasSpansEnabled(options)) {\n const diagnosticsChannelInjection = resolveDiagnosticsChannelInjection();\n if (diagnosticsChannelInjection) {\n const replaced = new Set(diagnosticsChannelInjection.replacedOtelIntegrationNames);\n return [...integrations.filter((i) => !replaced.has(i.name)), ...diagnosticsChannelInjection.integrations];\n }\n }\n return integrations;\n}\nfunction init(options = {}) {\n return _init(options, getDefaultIntegrations);\n}\nfunction _init(options = {}, getDefaultIntegrationsImpl) {\n applySdkMetadata(options, \"node\");\n const diagnosticsChannelInjection = isDiagnosticsChannelInjectionEnabled() && hasSpansEnabled(options) ? resolveDiagnosticsChannelInjection() : void 0;\n if (diagnosticsChannelInjection) {\n diagnosticsChannelInjection.register();\n }\n const client = init$1({\n ...options,\n // Only use Node SDK defaults if none provided\n defaultIntegrations: options.defaultIntegrations ?? getDefaultIntegrationsImpl(options)\n });\n if (client && !options.skipOpenTelemetrySetup) {\n initOpenTelemetry(client, {\n spanProcessors: options.openTelemetrySpanProcessors\n });\n validateOpenTelemetrySetup();\n }\n if (diagnosticsChannelInjection) {\n diagnosticsChannelInjection.detect();\n }\n return client;\n}\nfunction initWithoutDefaultIntegrations(options = {}) {\n return _init(options, () => []);\n}\n\nexport { getDefaultIntegrations, getDefaultIntegrationsWithoutPerformance, init, initWithoutDefaultIntegrations };\n//# sourceMappingURL=index.js.map\n", "import * as Sentry from '@sentry/node'\nimport type { Event } from '@sentry/node'\nimport type { ElideFormatActionOptions } from './options'\n\n// Public DSN — not a secret. Only allows sending events, not reading them.\nconst SENTRY_DSN =\n 'https://b5a33745f4bf36a0f1e66dbcfceaa898@o4510814125228032.ingest.us.sentry.io/4511124523974656'\n\nconst ACTION_VERSION = '1.0.0'\n\nlet telemetryEnabled = false\n\n// Environment variable patterns that could contain secrets.\nconst SENSITIVE_PATTERNS = [\n /token/i,\n /secret/i,\n /password/i,\n /key/i,\n /credential/i,\n /auth/i,\n /^GITHUB_/i,\n /^AWS_/i,\n /^AZURE_/i,\n /^GCP_/i,\n /^NPM_/i,\n /^NODE_AUTH/i\n]\n\n/**\n * Scrub a string of any values that look like they came from sensitive env vars.\n * Replaces any known env var value found in the string with [REDACTED].\n */\nfunction scrubEnvVars(input: string): string {\n let result = input\n for (const [key, value] of Object.entries(process.env)) {\n if (!value || value.length < 8) continue\n if (SENSITIVE_PATTERNS.some(p => p.test(key))) {\n result = result.replaceAll(value, '[REDACTED]')\n }\n }\n return result\n}\n\n/**\n * Scrub an entire Sentry event of sensitive data.\n */\nfunction scrubEvent(event: Event): Event {\n delete event.server_name\n delete event.extra\n delete event.user\n delete event.request\n event.contexts = {}\n event.breadcrumbs = []\n\n if (event.exception?.values) {\n for (const ex of event.exception.values) {\n if (ex.value) {\n ex.value = scrubEnvVars(ex.value)\n }\n }\n }\n\n if (event.message) {\n event.message = scrubEnvVars(event.message)\n }\n\n return event\n}\n\n/**\n * Initialize Sentry telemetry with aggressive scrubbing.\n * Enables error reporting, tracing, and metrics.\n * No environment data, no PII, no secrets — only the error/span and action config tags.\n */\nexport function initTelemetry(\n enabled: boolean,\n options: ElideFormatActionOptions\n): void {\n telemetryEnabled = enabled\n if (!enabled) return\n\n Sentry.init({\n dsn: SENTRY_DSN,\n defaultIntegrations: false,\n environment: 'production',\n release: `format@${ACTION_VERSION}`,\n tracesSampleRate: 1.0,\n beforeSend(event) {\n return scrubEvent(event)\n },\n beforeSendTransaction(event) {\n return scrubEvent(event)\n }\n })\n\n Sentry.setTags({\n formatter: options.formatter,\n mode: options.mode,\n action_version: ACTION_VERSION\n })\n}\n\n/**\n * Report an error to Sentry with optional additional tags.\n */\nexport function reportError(\n err: Error,\n context?: Record\n): void {\n if (!telemetryEnabled) return\n\n Sentry.withScope(scope => {\n if (context) {\n for (const [k, v] of Object.entries(context)) {\n scope.setTag(k, v)\n }\n }\n Sentry.captureException(err)\n })\n}\n\n/**\n * Run an async function inside a Sentry tracing span.\n * If telemetry is disabled, runs the function directly.\n */\nexport async function withSpan(\n name: string,\n op: string,\n fn: () => Promise\n): Promise {\n if (!telemetryEnabled) return fn()\n\n return Sentry.startSpan(\n { name, op, attributes: { 'sentry.origin': 'manual' } },\n async () => fn()\n )\n}\n\n/**\n * Record a metric gauge value (e.g., install duration).\n */\nexport function recordMetric(\n name: string,\n value: number,\n unit: string,\n tags?: Record\n): void {\n if (!telemetryEnabled) return\n Sentry.metrics.gauge(name, value, { unit, tags })\n}\n\n/**\n * Log an informational event to Sentry.\n */\nexport function logEvent(message: string, data?: Record): void {\n if (!telemetryEnabled) return\n Sentry.captureMessage(message, {\n level: 'info',\n tags: data\n })\n}\n\n/**\n * Flush pending Sentry events. Call before process exit.\n */\nexport async function flushTelemetry(): Promise {\n if (!telemetryEnabled) return\n await Sentry.flush(2000)\n}\n", "/**\n * Post-step entry point.\n * Flushes any pending telemetry events before the action exits.\n */\nimport { flushTelemetry } from './telemetry'\n\nflushTelemetry()\n" ], - "mappings": "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,GAMtB,oCAAmC,GAMnC,sCAAqC,GAKrC,uBACO,EAAG,GAAQ,gBAAgB,CACtC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACJ,CAAC,EAQD,IAAM,GAA+B,YAC/B,GAA2B,QAC3B,GAA2B,QAC3B,GAA4B,SAC5B,GAAyB,MACzB,GAAgC,aAChC,GAA8B,WAC9B,GAA0B,OAC1B,GAAgC,aAChC,GAA4B,SAC5B,GAA8B,WAC9B,GAA2B,QAC3B,GAA4B,SAC5B,GAA4B,SAC5B,GAA8B,WAC9B,GAAyB,MACzB,GAA2B,QAC3B,GAA4B,SAC5B,GAA8B,WAC9B,GAA2B,QAC3B,GAA+B,YAC/B,GAA8B,WAC9B,GAA+B,YAC/B,GAA+B,YAC/B,GAA6B,UAC7B,GAA6B,UAC7B,GAA+B,YAC/B,GAA+B,YAC/B,GAA4B,SAC5B,GAA4B,SAC5B,GAA8B,WAC9B,GAA6B,UAC7B,GAAwB,KACxB,GAAgC,aAChC,GAA+B,YAC/B,GAA2B,QAC3B,GAA6B,UAC7B,GAA2B,QAC3B,GAA+B,YAC/B,GAA6B,UAC7B,GAA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", - "debugId": "1EE75D4B9332DFDF64756E2164756E21", + "mappings": "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,GAMtB,oCAAmC,GAMnC,sCAAqC,GAKrC,uBACO,EAAG,GAAQ,gBAAgB,CACtC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACJ,CAAC,EAQD,IAAM,GAA+B,YAC/B,GAA2B,QAC3B,GAA2B,QAC3B,GAA4B,SAC5B,GAAyB,MACzB,GAAgC,aAChC,GAA8B,WAC9B,GAA0B,OAC1B,GAAgC,aAChC,GAA4B,SAC5B,GAA8B,WAC9B,GAA2B,QAC3B,GAA4B,SAC5B,GAA4B,SAC5B,GAA8B,WAC9B,GAAyB,MACzB,GAA2B,QAC3B,GAA4B,SAC5B,GAA8B,WAC9B,GAA2B,QAC3B,GAA+B,YAC/B,GAA8B,WAC9B,GAA+B,YAC/B,GAA+B,YAC/B,GAA6B,UAC7B,GAA6B,UAC7B,GAA+B,YAC/B,GAA+B,YAC/B,GAA4B,SAC5B,GAA4B,SAC5B,GAA8B,WAC9B,GAA6B,UAC7B,GAAwB,KACxB,GAAgC,aAChC,GAA+B,YAC/B,GAA2B,QAC3B,GAA6B,UAC7B,GAA2B,QAC3B,GAA+B,YAC/B,GAA6B,UAC7B,GAA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", + "debugId": "A58B33967BCAFFD364756E2164756E21", "names": [] } \ No newline at end of file diff --git a/package.json b/package.json index 1765fce..8e38f06 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@elide-dev/format", "description": "GitHub Action to check source formatting using Elide", - "version": "1.0.1", + "version": "1.1.0", "author": "Elide Team (https://elide.dev)", "private": true, "homepage": "https://github.com/elide-dev/format", @@ -31,11 +31,12 @@ "dependencies": { "@actions/core": "3.0.1", "@actions/exec": "3.0.0", - "@sentry/node": "^10.46.0" + "@sentry/node": "^10.63.0", + "syntax": "^1.6.3" }, "devDependencies": { - "@biomejs/biome": "^2.4.9", - "@commitlint/cli": "20.5.0", + "@biomejs/biome": "^2.5.2", + "@commitlint/cli": "21.2.0", "@commitlint/config-conventional": "21.2.0", "@types/bun": "latest", "@types/node": "26.1.0", diff --git a/src/command.ts b/src/command.ts index 69d5343..ce7df58 100644 --- a/src/command.ts +++ b/src/command.ts @@ -12,16 +12,23 @@ const CHECK_FLAGS: Record = { ktfmt: ['--dry-run', '--set-exit-if-changed'] } +export const WRITE_FLAGS: Record = { + javaformat: ['-r'], + ktfmt: [] +} + export function buildFormatterArgs( formatter: FormatterName, mode: FormatMode, files: string[], - extraArgs: string[] + extraArgs: string[], + elideFlags: string[] = [] ): string[] { return [ formatter, + ...elideFlags, '--', - ...(mode === 'check' ? CHECK_FLAGS[formatter] : []), + ...(mode === 'check' ? CHECK_FLAGS[formatter] : WRITE_FLAGS[formatter]), ...extraArgs, ...files ] @@ -32,34 +39,39 @@ export async function runFormatter( mode: FormatMode, files: string[], extraArgs: string[], - cwd: string -): Promise { + cwd: string, + elideFlags: string[] = [] +): Promise<{ exitCode: number; stdout: string }> { const tempDir = process.env.RUNNER_TEMP ?? os.tmpdir() const argfilePath = path.join(tempDir, `format-${formatter}.txt`) - let execArgs: string[] - if (formatter === 'ktfmt') { - // ktfmt requires the argfile to be the only argument after `--`, so flags go in the file - const checkFlags = mode === 'check' ? CHECK_FLAGS.ktfmt : [] - writeFileSync( - argfilePath, - [...checkFlags, ...extraArgs, ...files].join('\n'), - 'utf-8' - ) - execArgs = [formatter, '--', `@${argfilePath}`] - } else { - writeFileSync(argfilePath, files.join('\n'), 'utf-8') - execArgs = buildFormatterArgs( - formatter, - mode, - [`@${argfilePath}`], - extraArgs - ) - } + writeFileSync(argfilePath, files.join('\n'), 'utf-8') + const execArgs = buildFormatterArgs( + formatter, + mode, + [`@${argfilePath}`], + extraArgs, + elideFlags + ) + + let capturedStdout = '' + const listeners = + elideFlags.length > 0 + ? { + stdout: (data: Buffer) => { + capturedStdout += data.toString() + } + } + : undefined core.debug(`Running: elide ${formatter} on ${files.length} files`) try { - return await exec.exec('elide', execArgs, { cwd, ignoreReturnCode: true }) + const exitCode = await exec.exec('elide', execArgs, { + cwd, + ignoreReturnCode: true, + listeners + }) + return { exitCode, stdout: capturedStdout } } finally { try { unlinkSync(argfilePath) diff --git a/src/main.ts b/src/main.ts index 8220c37..86cd28d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,11 +1,13 @@ import * as core from '@actions/core' import { readdirSync, statSync } from 'node:fs' import path from 'node:path' +import Syntax from 'syntax' import buildOptions, { buildOptionsFromInputs, - type ElideFormatActionOptions + type ElideFormatActionOptions, + type OutputMode } from './options' -import { runFormatter, type FormatterName } from './command' +import { runFormatter, WRITE_FLAGS, type FormatterName } from './command' import { initTelemetry, reportError, @@ -17,7 +19,8 @@ import { export enum ActionOutputName { RESULT = 'result', - FILES_CHECKED = 'files-checked' + FILES_CHECKED = 'files-checked', + FILES_FAILED = 'files-failed' } export function findFiles( @@ -118,6 +121,168 @@ export function applyExclusions(files: string[], patterns: string[]): string[] { return files.filter(f => !patterns.some(p => matchesExcludePattern(f, p))) } +export function buildElideFlags(opts: ElideFormatActionOptions): string[] { + switch (opts.output_mode) { + case 'file': + return ['--list-files'] + case 'diff': + if (opts.mode !== 'check') return ['--list-files'] + return opts.output_mode_diffs != null + ? [`--list-diffs=${opts.output_mode_diffs}`] + : ['--list-diffs'] + case 'command': + return ['--list-files'] + default: + return [] + } +} + +// Parses file paths from --list-files stdout. The last non-empty line is the +// formatter summary; everything before it is file paths. +export function parseListedFiles(stdout: string): string[] { + const lines = stdout + .split('\n') + .map(l => l.trim()) + .filter(Boolean) + if (lines.length <= 1) return [] + return lines.slice(0, -1) +} + +// Parses diff content from --list-diffs stdout, stripping the trailing summary line. +export function parseDiffOutput(stdout: string): string { + const lines = stdout.split('\n') + let lastNonEmpty = lines.length - 1 + while (lastNonEmpty >= 0 && !lines[lastNonEmpty].trim()) lastNonEmpty-- + return lines.slice(0, lastNonEmpty).join('\n').trimEnd() +} + +// Returns true if stdout looks like unified diff output (---/+++/@@ markers). +// Used to distinguish diff output from file-listing output when elide falls back +// (e.g. --list-diffs=N limit exceeded, or write mode falls back to --list-files). +export function isDiffOutput(stdout: string): boolean { + const lines = stdout.split('\n').filter(l => l.trim()) + return !!( + lines[0]?.startsWith('---') || + lines[1]?.startsWith('+++') || + lines[2]?.startsWith('@@') + ) +} + +function shellQuote(p: string): string { + return `'${p.replace(/'/g, "'\\''")}'` +} + +const MARKUP_COLORS: Record = { + comment: '\x1b[2m', + keyword: '\x1b[34m', + literal: '\x1b[33m' +} + +function applyMarkup(text: string, markup: Record): string { + const ranges: { start: number; end: number; color: string }[] = [] + for (const [type, spans] of Object.entries(markup)) { + const color = MARKUP_COLORS[type] + if (!color || !Array.isArray(spans)) continue + for (const span of spans) { + const [start, end] = span as [number, number] + ranges.push({ start, end, color }) + } + } + ranges.sort((a, b) => a.start - b.start) + let result = '' + let pos = 0 + for (const { start, end, color } of ranges) { + result += text.slice(pos, start) + result += color + text.slice(start, end) + '\x1b[0m' + pos = end + } + return result + text.slice(pos) +} + +function addDiffLineColors(text: string): string { + return text + .split('\n') + .map(line => { + if (line.startsWith('---') || line.startsWith('+++')) return line + if (line.startsWith('@@')) return `\x1b[36m${line}\x1b[0m` + if (line.startsWith('+')) return `\x1b[32m${line}\x1b[0m` + if (line.startsWith('-')) return `\x1b[31m${line}\x1b[0m` + return line + }) + .join('\n') +} + +export function formatDiff( + _formatter: FormatterName, + diffText: string +): string { + try { + const syn = new Syntax({ language: 'diff', cssPrefix: '' }) + syn.richtext(diffText) + return addDiffLineColors(applyMarkup(diffText, syn.markup())) + } catch { + return addDiffLineColors(diffText) + } +} + +export function printOutputModeResult( + outputMode: OutputMode, + formatter: FormatterName, + stdout: string, + customCommand: string | null, + extraArgs: string[] = [] +): void { + if (outputMode === 'none' || !stdout) return + + switch (outputMode) { + case 'file': { + const files = parseListedFiles(stdout) + if (files.length > 0) { + core.info(`Files affected by ${formatter}:`) + for (const f of files) core.info(f) + } + break + } + case 'diff': { + if (isDiffOutput(stdout)) { + const diff = parseDiffOutput(stdout) + if (diff) { + core.info(`Diffs for ${formatter}:`) + core.info(formatDiff(formatter, diff)) + } + } else { + // elide fell back to file listing (write mode, or --list-diffs=N limit exceeded) + const files = parseListedFiles(stdout) + if (files.length > 0) { + core.info(`Files affected by ${formatter}:`) + for (const f of files) core.info(f) + } + } + break + } + case 'command': { + if (customCommand) { + core.info(customCommand) + } else { + const files = parseListedFiles(stdout) + if (files.length > 0) { + const writeFlags = WRITE_FLAGS[formatter] + const args = [ + '--', + ...writeFlags, + ...extraArgs.map(shellQuote), + ...files.map(shellQuote) + ] + core.info( + `Run the following command to fix formatting:\nelide ${formatter} ${args.join(' ')}` + ) + } + } + break + } + } +} + async function writeSummary( formatters: FormatterName[], results: Record, @@ -187,6 +352,8 @@ export async function run( const results: Partial> = {} let totalFiles = 0 + const elideFlags = buildElideFlags(effectiveOptions) + const failedFiles: string[] = [] for (const formatter of formatters) { const resolved = resolveFiles(effectiveOptions, formatter) @@ -205,7 +372,7 @@ export async function run( ? effectiveOptions.gjf_args : effectiveOptions.ktfmt_args - const exitCode: number = await core.group( + const { exitCode, stdout } = await core.group( `Running ${formatter}`, async () => withSpan(`format.${formatter}`, 'format', () => @@ -214,12 +381,23 @@ export async function run( effectiveOptions.mode, files, extraArgs, - effectiveOptions.working_directory + effectiveOptions.working_directory, + elideFlags ) ) ) results[formatter] = exitCode + printOutputModeResult( + effectiveOptions.output_mode, + formatter, + stdout, + effectiveOptions.output_mode_command, + extraArgs + ) + if (effectiveOptions.output_mode === 'file') { + failedFiles.push(...parseListedFiles(stdout)) + } if (exitCode !== 0) { core.error(`${formatter} check failed (exit code ${exitCode})`, { @@ -235,6 +413,9 @@ export async function run( core.setOutput(ActionOutputName.RESULT, success ? 'success' : 'failure') core.setOutput(ActionOutputName.FILES_CHECKED, String(totalFiles)) + if (effectiveOptions.output_mode === 'file') { + core.setOutput(ActionOutputName.FILES_FAILED, failedFiles.join('\n')) + } recordMetric('format.duration_ms', elapsed, 'millisecond', { formatter: effectiveOptions.formatter, diff --git a/src/options.ts b/src/options.ts index 9ac3fa3..c0ed2b3 100644 --- a/src/options.ts +++ b/src/options.ts @@ -10,11 +10,15 @@ export enum OptionName { KTFMT_ARGS = 'ktfmt-args', INCLUDE_KTS = 'include-kts', FAIL_ON_ERROR = 'fail-on-error', - TELEMETRY = 'telemetry' + TELEMETRY = 'telemetry', + OUTPUT_MODE = 'output-mode', + OUTPUT_MODE_DIFFS = 'output-mode-diffs', + OUTPUT_MODE_COMMAND = 'output-mode-command' } export type FormatterChoice = 'javaformat' | 'ktfmt' | 'all' export type FormatMode = 'check' | 'write' +export type OutputMode = 'none' | 'file' | 'diff' | 'command' export interface ElideFormatActionOptions { formatter: FormatterChoice @@ -29,6 +33,9 @@ export interface ElideFormatActionOptions { include_kts: boolean fail_on_error: boolean telemetry: boolean + output_mode: OutputMode + output_mode_diffs: number | null + output_mode_command: string | null } export const defaults: ElideFormatActionOptions = { @@ -41,7 +48,10 @@ export const defaults: ElideFormatActionOptions = { ktfmt_args: [], include_kts: false, fail_on_error: true, - telemetry: true + telemetry: true, + output_mode: 'none', + output_mode_diffs: null, + output_mode_command: null } export function normalizeFormatter(value: string): FormatterChoice { @@ -67,6 +77,19 @@ export function normalizeMode(value: string): FormatMode { } } +export function normalizeOutputMode(value: string): OutputMode { + switch (value.trim().toLowerCase()) { + case 'file': + return 'file' + case 'diff': + return 'diff' + case 'command': + return 'command' + default: + return 'none' + } +} + export function parseArgs(value: string): string[] { return value.trim().split(/\s+/).filter(Boolean) } @@ -97,6 +120,17 @@ function stringInput(name: string, defaultValue?: string): string | undefined { return value || defaultValue || undefined } +function integerInput(name: string): number | null { + const value = core.getInput(name).trim() + if (!value) return null + if (!/^\d+$/.test(value) || parseInt(value, 10) <= 0) { + throw new Error( + `invalid value for '${name}': must be a positive integer, got '${value}'` + ) + } + return parseInt(value, 10) +} + export function buildOptionsFromInputs(): ElideFormatActionOptions { return buildOptions({ formatter: normalizeFormatter( @@ -113,6 +147,11 @@ export function buildOptionsFromInputs(): ElideFormatActionOptions { ktfmt_args: parseArgs(stringInput(OptionName.KTFMT_ARGS, '') ?? ''), include_kts: booleanInput(OptionName.INCLUDE_KTS, false), fail_on_error: booleanInput(OptionName.FAIL_ON_ERROR, true), - telemetry: booleanInput(OptionName.TELEMETRY, true) + telemetry: booleanInput(OptionName.TELEMETRY, true), + output_mode: normalizeOutputMode( + stringInput(OptionName.OUTPUT_MODE, 'none') as string + ), + output_mode_diffs: integerInput(OptionName.OUTPUT_MODE_DIFFS), + output_mode_command: stringInput(OptionName.OUTPUT_MODE_COMMAND) ?? null }) } diff --git a/src/syntax.d.ts b/src/syntax.d.ts new file mode 100644 index 0000000..d047d25 --- /dev/null +++ b/src/syntax.d.ts @@ -0,0 +1,12 @@ +declare module 'syntax' { + interface SyntaxOptions { + language: string + cssPrefix?: string + } + export default class Syntax { + constructor(options: SyntaxOptions) + richtext(text: string): this + html(): string + markup(): Record + } +}